about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixpkgs/.github/CODEOWNERS42
-rw-r--r--nixpkgs/.github/CONTRIBUTING.md19
-rw-r--r--nixpkgs/.github/PULL_REQUEST_TEMPLATE.md6
-rw-r--r--nixpkgs/.github/labeler.yml13
-rw-r--r--nixpkgs/.github/workflows/backport.yml23
-rw-r--r--nixpkgs/.github/workflows/editorconfig.yml29
-rw-r--r--nixpkgs/.github/workflows/manual-nixos.yml1
-rw-r--r--nixpkgs/.github/workflows/manual-nixpkgs.yml1
-rw-r--r--nixpkgs/.github/workflows/merge-staging.yml6
-rw-r--r--nixpkgs/.github/workflows/nixos-manual.yml26
-rw-r--r--nixpkgs/.github/workflows/rebase.yml134
-rw-r--r--nixpkgs/.version2
-rw-r--r--nixpkgs/README.md4
-rw-r--r--nixpkgs/doc/Makefile26
-rw-r--r--nixpkgs/doc/builders/fetchers.chapter.md25
-rw-r--r--nixpkgs/doc/builders/images/appimagetools.section.md2
-rw-r--r--nixpkgs/doc/builders/images/dockertools.section.md4
-rw-r--r--nixpkgs/doc/builders/images/snaptools.section.md4
-rw-r--r--nixpkgs/doc/builders/packages/cataclysm-dda.section.md6
-rw-r--r--nixpkgs/doc/builders/packages/elm.section.md2
-rw-r--r--nixpkgs/doc/builders/packages/firefox.section.md2
-rw-r--r--nixpkgs/doc/builders/packages/opengl.section.md4
-rw-r--r--nixpkgs/doc/builders/packages/steam.section.md23
-rw-r--r--nixpkgs/doc/builders/packages/xorg.section.md8
-rw-r--r--nixpkgs/doc/builders/special/fhs-environments.section.md4
-rw-r--r--nixpkgs/doc/builders/special/mkshell.section.md10
-rw-r--r--nixpkgs/doc/builders/trivial-builders.chapter.md49
-rw-r--r--nixpkgs/doc/contributing/coding-conventions.chapter.md102
-rw-r--r--nixpkgs/doc/contributing/contributing-to-documentation.chapter.md79
-rw-r--r--nixpkgs/doc/contributing/quick-start.chapter.md2
-rw-r--r--nixpkgs/doc/contributing/reviewing-contributions.chapter.md5
-rw-r--r--nixpkgs/doc/contributing/submitting-changes.chapter.md19
-rw-r--r--nixpkgs/doc/default.nix7
-rw-r--r--nixpkgs/doc/functions.xml6
-rw-r--r--nixpkgs/doc/functions/debug.section.md5
-rw-r--r--nixpkgs/doc/functions/debug.xml14
-rw-r--r--nixpkgs/doc/functions/library/attrsets.xml6
-rw-r--r--nixpkgs/doc/functions/nix-gitignore.section.md49
-rw-r--r--nixpkgs/doc/functions/nix-gitignore.xml70
-rw-r--r--nixpkgs/doc/functions/prefer-remote-fetch.section.md17
-rw-r--r--nixpkgs/doc/functions/prefer-remote-fetch.xml21
-rw-r--r--nixpkgs/doc/labelless-link-is-xref.lua24
-rw-r--r--nixpkgs/doc/languages-frameworks/agda.section.md132
-rw-r--r--nixpkgs/doc/languages-frameworks/android.section.md33
-rw-r--r--nixpkgs/doc/languages-frameworks/beam.section.md26
-rw-r--r--nixpkgs/doc/languages-frameworks/bower.section.md2
-rw-r--r--nixpkgs/doc/languages-frameworks/coq.section.md4
-rw-r--r--nixpkgs/doc/languages-frameworks/crystal.section.md4
-rw-r--r--nixpkgs/doc/languages-frameworks/dhall.section.md432
-rw-r--r--nixpkgs/doc/languages-frameworks/dotnet.section.md18
-rw-r--r--nixpkgs/doc/languages-frameworks/emscripten.section.md14
-rw-r--r--nixpkgs/doc/languages-frameworks/gnome.section.md8
-rw-r--r--nixpkgs/doc/languages-frameworks/go.section.md23
-rw-r--r--nixpkgs/doc/languages-frameworks/idris.section.md26
-rw-r--r--nixpkgs/doc/languages-frameworks/index.xml1
-rw-r--r--nixpkgs/doc/languages-frameworks/ios.section.md17
-rw-r--r--nixpkgs/doc/languages-frameworks/lua.section.md56
-rw-r--r--nixpkgs/doc/languages-frameworks/maven.section.md17
-rw-r--r--nixpkgs/doc/languages-frameworks/python.section.md127
-rw-r--r--nixpkgs/doc/languages-frameworks/qt.section.md11
-rw-r--r--nixpkgs/doc/languages-frameworks/r.section.md10
-rw-r--r--nixpkgs/doc/languages-frameworks/ruby.section.md24
-rw-r--r--nixpkgs/doc/languages-frameworks/rust.section.md179
-rw-r--r--nixpkgs/doc/languages-frameworks/texlive.section.md2
-rw-r--r--nixpkgs/doc/languages-frameworks/titanium.section.md8
-rw-r--r--nixpkgs/doc/languages-frameworks/vim.section.md20
-rw-r--r--nixpkgs/doc/manual.xml6
-rw-r--r--nixpkgs/doc/preface.chapter.md2
-rw-r--r--nixpkgs/doc/stdenv/cross-compilation.chapter.md35
-rw-r--r--nixpkgs/doc/stdenv/meta.chapter.md10
-rw-r--r--nixpkgs/doc/stdenv/multiple-output.chapter.md28
-rw-r--r--nixpkgs/doc/stdenv/stdenv.chapter.md146
-rw-r--r--nixpkgs/doc/using/configuration.chapter.md356
-rw-r--r--nixpkgs/doc/using/configuration.xml451
-rw-r--r--nixpkgs/doc/using/overlays.chapter.md149
-rw-r--r--nixpkgs/doc/using/overlays.xml279
-rw-r--r--nixpkgs/doc/using/overrides.chapter.md104
-rw-r--r--nixpkgs/doc/using/overrides.xml145
-rw-r--r--nixpkgs/flake.nix1
-rw-r--r--nixpkgs/lib/attrsets.nix4
-rw-r--r--nixpkgs/lib/customisation.nix8
-rw-r--r--nixpkgs/lib/default.nix5
-rw-r--r--nixpkgs/lib/flake.nix5
-rw-r--r--nixpkgs/lib/licenses.nix16
-rw-r--r--nixpkgs/lib/meta.nix12
-rw-r--r--nixpkgs/lib/modules.nix22
-rw-r--r--nixpkgs/lib/strings.nix10
-rw-r--r--nixpkgs/lib/systems/default.nix15
-rw-r--r--nixpkgs/lib/systems/doubles.nix2
-rw-r--r--nixpkgs/lib/systems/examples.nix15
-rw-r--r--nixpkgs/lib/systems/parse.nix39
-rw-r--r--nixpkgs/lib/systems/platforms.nix16
-rwxr-xr-xnixpkgs/lib/tests/modules.sh3
-rw-r--r--nixpkgs/lib/tests/modules/declare-submoduleWith-modules.nix4
-rw-r--r--nixpkgs/lib/trivial.nix5
-rw-r--r--nixpkgs/lib/types.nix29
-rw-r--r--nixpkgs/maintainers/maintainer-list.nix439
-rw-r--r--nixpkgs/maintainers/scripts/build.nix12
-rw-r--r--nixpkgs/maintainers/scripts/check-hydra-by-maintainer.nix1
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/hydra-report.hs408
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/mark-broken.sh45
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh46
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh15
-rw-r--r--nixpkgs/maintainers/scripts/haskell/transitive-broken-packages.nix16
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/update-cabal2nix-unstable.sh17
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/update-hackage.sh35
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/update-stackage.sh68
-rw-r--r--nixpkgs/maintainers/scripts/pluginupdate.py18
-rw-r--r--nixpkgs/maintainers/scripts/update-luarocks-shell.nix7
-rwxr-xr-xnixpkgs/maintainers/scripts/update.nix18
-rw-r--r--nixpkgs/maintainers/scripts/update.py3
-rw-r--r--nixpkgs/maintainers/team-list.nix41
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/abstractions.section.md80
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/abstractions.xml101
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/config-syntax.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml13
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml8
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/x-windows.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/contributing-to-this-manual.chapter.md13
-rw-r--r--nixpkgs/nixos/doc/manual/contributing-to-this-manual.xml22
-rw-r--r--nixpkgs/nixos/doc/manual/development/building-nixos.chapter.md18
-rw-r--r--nixpkgs/nixos/doc/manual/development/building-nixos.xml33
-rw-r--r--nixpkgs/nixos/doc/manual/development/development.xml3
-rwxr-xr-xnixpkgs/nixos/doc/manual/development/releases.xml366
-rw-r--r--nixpkgs/nixos/doc/manual/development/settings-options.xml12
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml37
-rw-r--r--nixpkgs/nixos/doc/manual/from_md/README.md5
-rw-r--r--nixpkgs/nixos/doc/manual/from_md/configuration/abstractions.section.xml101
-rw-r--r--nixpkgs/nixos/doc/manual/from_md/contributing-to-this-manual.chapter.xml22
-rw-r--r--nixpkgs/nixos/doc/manual/from_md/development/building-nixos.chapter.xml33
-rw-r--r--nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml236
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml8
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/installation/upgrading.xml16
-rw-r--r--nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml11
-rw-r--r--nixpkgs/nixos/doc/manual/manual.xml2
-rwxr-xr-xnixpkgs/nixos/doc/manual/md-to-db.sh33
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/release-notes.xml1
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml8
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml425
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md67
-rw-r--r--nixpkgs/nixos/doc/manual/shell.nix2
-rw-r--r--nixpkgs/nixos/lib/build-vms.nix7
-rw-r--r--nixpkgs/nixos/lib/make-ext4-fs.nix8
-rw-r--r--nixpkgs/nixos/lib/test-driver/test-driver.py59
-rw-r--r--nixpkgs/nixos/lib/testing-python.nix58
-rw-r--r--nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix2
-rw-r--r--nixpkgs/nixos/modules/config/console.nix3
-rw-r--r--nixpkgs/nixos/modules/config/fonts/fontconfig.nix34
-rw-r--r--nixpkgs/nixos/modules/config/malloc.nix7
-rw-r--r--nixpkgs/nixos/modules/config/pulseaudio.nix12
-rw-r--r--nixpkgs/nixos/modules/hardware/opengl.nix3
-rw-r--r--nixpkgs/nixos/modules/hardware/video/ati.nix40
-rw-r--r--nixpkgs/nixos/modules/hardware/video/nvidia.nix4
-rw-r--r--nixpkgs/nixos/modules/hardware/xpadneo.nix2
-rw-r--r--nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix45
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix2
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix94
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix14
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix7
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix10
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix8
-rw-r--r--nixpkgs/nixos/modules/installer/sd-card/sd-image.nix10
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix8
-rw-r--r--nixpkgs/nixos/modules/installer/virtualbox-demo.nix2
-rw-r--r--nixpkgs/nixos/modules/misc/ids.nix10
-rw-r--r--nixpkgs/nixos/modules/module-list.nix56
-rw-r--r--nixpkgs/nixos/modules/profiles/all-hardware.nix60
-rw-r--r--nixpkgs/nixos/modules/profiles/hardened.nix1
-rw-r--r--nixpkgs/nixos/modules/profiles/installation-device.nix8
-rw-r--r--nixpkgs/nixos/modules/programs/atop.nix128
-rw-r--r--nixpkgs/nixos/modules/programs/bash/bash-completion.nix37
-rw-r--r--nixpkgs/nixos/modules/programs/bash/bash.nix45
-rw-r--r--nixpkgs/nixos/modules/programs/bash/ls-colors.nix20
-rw-r--r--nixpkgs/nixos/modules/programs/bash/undistract-me.nix36
-rw-r--r--nixpkgs/nixos/modules/programs/ccache.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/dconf.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/feedbackd.nix32
-rw-r--r--nixpkgs/nixos/modules/programs/file-roller.nix4
-rw-r--r--nixpkgs/nixos/modules/programs/gamemode.nix96
-rw-r--r--nixpkgs/nixos/modules/programs/geary.nix6
-rw-r--r--nixpkgs/nixos/modules/programs/gnome-disks.nix4
-rw-r--r--nixpkgs/nixos/modules/programs/gnome-documents.nix10
-rw-r--r--nixpkgs/nixos/modules/programs/gnome-terminal.nix6
-rw-r--r--nixpkgs/nixos/modules/programs/gpaste.nix8
-rw-r--r--nixpkgs/nixos/modules/programs/noisetorch.nix25
-rw-r--r--nixpkgs/nixos/modules/programs/phosh.nix159
-rw-r--r--nixpkgs/nixos/modules/programs/seahorse.nix6
-rw-r--r--nixpkgs/nixos/modules/programs/sway.nix33
-rw-r--r--nixpkgs/nixos/modules/security/acme.nix2
-rw-r--r--nixpkgs/nixos/modules/security/acme.xml2
-rw-r--r--nixpkgs/nixos/modules/security/apparmor-suid.nix49
-rw-r--r--nixpkgs/nixos/modules/security/apparmor.nix259
-rw-r--r--nixpkgs/nixos/modules/security/apparmor/includes.nix317
-rw-r--r--nixpkgs/nixos/modules/security/apparmor/profiles.nix11
-rw-r--r--nixpkgs/nixos/modules/security/ca.nix13
-rw-r--r--nixpkgs/nixos/modules/security/misc.nix4
-rw-r--r--nixpkgs/nixos/modules/security/pam.nix81
-rw-r--r--nixpkgs/nixos/modules/security/pam_mount.nix25
-rw-r--r--nixpkgs/nixos/modules/security/sudo.nix28
-rw-r--r--nixpkgs/nixos/modules/security/wrappers/default.nix8
-rw-r--r--nixpkgs/nixos/modules/services/audio/alsa.nix16
-rw-r--r--nixpkgs/nixos/modules/services/audio/botamusique.nix114
-rw-r--r--nixpkgs/nixos/modules/services/audio/jack.nix10
-rw-r--r--nixpkgs/nixos/modules/services/audio/mpd.nix13
-rw-r--r--nixpkgs/nixos/modules/services/audio/mpdscribble.nix2
-rw-r--r--nixpkgs/nixos/modules/services/backup/duplicati.nix12
-rw-r--r--nixpkgs/nixos/modules/services/backup/duplicity.nix91
-rw-r--r--nixpkgs/nixos/modules/services/backup/mysql-backup.nix4
-rw-r--r--nixpkgs/nixos/modules/services/backup/postgresql-backup.nix2
-rw-r--r--nixpkgs/nixos/modules/services/backup/syncoid.nix16
-rw-r--r--nixpkgs/nixos/modules/services/cluster/k3s/default.nix3
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/addon-manager.nix2
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix2
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/controller-manager.nix2
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix9
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix4
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix2
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/scheduler.nix2
-rw-r--r--nixpkgs/nixos/modules/services/computing/foldingathome/client.nix10
-rw-r--r--nixpkgs/nixos/modules/services/computing/slurm/slurm.nix4
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix2
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix2
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix13
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix28
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix18
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/jenkins/job-builder.nix64
-rw-r--r--nixpkgs/nixos/modules/services/databases/cassandra.nix411
-rw-r--r--nixpkgs/nixos/modules/services/databases/clickhouse.nix1
-rw-r--r--nixpkgs/nixos/modules/services/databases/couchdb.nix19
-rw-r--r--nixpkgs/nixos/modules/services/databases/firebird.nix26
-rw-r--r--nixpkgs/nixos/modules/services/databases/mysql.nix2
-rw-r--r--nixpkgs/nixos/modules/services/databases/postgresql.nix2
-rw-r--r--nixpkgs/nixos/modules/services/databases/redis.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/bamf.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/flatpak.nix14
-rw-r--r--nixpkgs/nixos/modules/services/desktops/geoclue2.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/at-spi2-core.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/at-spi2-core.nix)14
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/chrome-gnome-shell.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix)12
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/evolution-data-server.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/evolution-data-server.nix)22
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/glib-networking.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/glib-networking.nix)12
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/gnome-initial-setup.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix)16
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/gnome-keyring.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/gnome-keyring.nix)20
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/gnome-online-accounts.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix)12
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/gnome-online-miners.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix)16
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix32
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/gnome-settings-daemon.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix)16
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/gnome-user-share.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/gnome-user-share.nix)16
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/rygel.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/rygel.nix)20
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/sushi.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/sushi.nix)16
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/tracker-miners.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/tracker-miners.nix)12
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome/tracker.nix (renamed from nixpkgs/nixos/modules/services/desktops/gnome3/tracker.nix)12
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix24
-rw-r--r--nixpkgs/nixos/modules/services/desktops/gvfs.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/README.md6
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json1
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json5
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json5
-rw-r--r--nixpkgs/nixos/modules/services/desktops/telepathy.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/tumbler.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/zeitgeist.nix2
-rw-r--r--nixpkgs/nixos/modules/services/development/jupyter/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/development/jupyterhub/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/games/factorio.nix13
-rw-r--r--nixpkgs/nixos/modules/services/games/terraria.nix13
-rw-r--r--nixpkgs/nixos/modules/services/hardware/actkbd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/brltty.nix57
-rw-r--r--nixpkgs/nixos/modules/services/hardware/fancontrol.nix16
-rw-r--r--nixpkgs/nixos/modules/services/hardware/pcscd.nix11
-rw-r--r--nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix110
-rw-r--r--nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix77
-rw-r--r--nixpkgs/nixos/modules/services/hardware/spacenavd.nix3
-rw-r--r--nixpkgs/nixos/modules/services/logging/promtail.nix1
-rw-r--r--nixpkgs/nixos/modules/services/mail/mailman.nix2
-rw-r--r--nixpkgs/nixos/modules/services/mail/mailman.xml6
-rw-r--r--nixpkgs/nixos/modules/services/mail/opendkim.nix2
-rw-r--r--nixpkgs/nixos/modules/services/mail/postfix.nix2
-rw-r--r--nixpkgs/nixos/modules/services/mail/roundcube.nix2
-rw-r--r--nixpkgs/nixos/modules/services/mail/rspamd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/airsonic.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/autorandr.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/bees.nix72
-rw-r--r--nixpkgs/nixos/modules/services/misc/dendrite.nix181
-rw-r--r--nixpkgs/nixos/modules/services/misc/disnix.nix3
-rw-r--r--nixpkgs/nixos/modules/services/misc/duckling.nix39
-rw-r--r--nixpkgs/nixos/modules/services/misc/fstrim.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/geoip-updater.nix306
-rw-r--r--nixpkgs/nixos/modules/services/misc/geoipupdate.nix145
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitea.nix84
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitlab.nix131
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitweb.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/home-assistant.nix77
-rw-r--r--nixpkgs/nixos/modules/services/misc/jellyfin.nix4
-rw-r--r--nixpkgs/nixos/modules/services/misc/mame.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/matrix-synapse.nix50
-rw-r--r--nixpkgs/nixos/modules/services/misc/ombi.nix1
-rw-r--r--nixpkgs/nixos/modules/services/misc/pinnwand.nix69
-rw-r--r--nixpkgs/nixos/modules/services/misc/sdrplay.nix35
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/builds.nix220
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/default.nix198
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/dispatch.nix125
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/git.nix214
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/hg.nix173
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/hub.nix118
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/lists.nix185
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/man.nix122
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/meta.nix211
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/paste.nix133
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/service.nix66
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/sourcehut.xml115
-rw-r--r--nixpkgs/nixos/modules/services/misc/sourcehut/todo.nix161
-rw-r--r--nixpkgs/nixos/modules/services/misc/ssm-agent.nix15
-rw-r--r--nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix96
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/grafana.nix80
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/metricbeat.nix152
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/netdata.nix28
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix8
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix5
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix12
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix18
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix17
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix38
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix18
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix74
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix48
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix38
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix64
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix59
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix26
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix18
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix135
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/adguardhome.nix78
-rw-r--r--nixpkgs/nixos/modules/services/networking/babeld.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/bind.nix95
-rw-r--r--nixpkgs/nixos/modules/services/networking/cjdns.nix14
-rw-r--r--nixpkgs/nixos/modules/services/networking/croc.nix4
-rw-r--r--nixpkgs/nixos/modules/services/networking/gale.nix181
-rw-r--r--nixpkgs/nixos/modules/services/networking/ghostunnel.nix242
-rw-r--r--nixpkgs/nixos/modules/services/networking/hans.nix2
-rwxr-xr-xnixpkgs/nixos/modules/services/networking/hylafax/faxq-wait.sh2
-rw-r--r--nixpkgs/nixos/modules/services/networking/hylafax/options.nix15
-rwxr-xr-xnixpkgs/nixos/modules/services/networking/hylafax/spool.sh6
-rw-r--r--nixpkgs/nixos/modules/services/networking/hylafax/systemd.nix16
-rw-r--r--nixpkgs/nixos/modules/services/networking/kresd.nix19
-rw-r--r--nixpkgs/nixos/modules/services/networking/libreswan.nix145
-rw-r--r--nixpkgs/nixos/modules/services/networking/monero.nix20
-rw-r--r--nixpkgs/nixos/modules/services/networking/mosquitto.nix46
-rw-r--r--nixpkgs/nixos/modules/services/networking/networkmanager.nix105
-rw-r--r--nixpkgs/nixos/modules/services/networking/nsd.nix22
-rw-r--r--nixpkgs/nixos/modules/services/networking/radicale.nix196
-rw-r--r--nixpkgs/nixos/modules/services/networking/searx.nix14
-rw-r--r--nixpkgs/nixos/modules/services/networking/solanum.nix101
-rw-r--r--nixpkgs/nixos/modules/services/networking/ssh/sshd.nix12
-rw-r--r--nixpkgs/nixos/modules/services/networking/supplicant.nix13
-rw-r--r--nixpkgs/nixos/modules/services/networking/unbound.nix253
-rw-r--r--nixpkgs/nixos/modules/services/networking/wireguard.nix136
-rw-r--r--nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix41
-rw-r--r--nixpkgs/nixos/modules/services/networking/yggdrasil.nix5
-rw-r--r--nixpkgs/nixos/modules/services/networking/znc/default.nix35
-rw-r--r--nixpkgs/nixos/modules/services/networking/znc/options.nix2
-rw-r--r--nixpkgs/nixos/modules/services/scheduling/atd.nix11
-rw-r--r--nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix1
-rw-r--r--nixpkgs/nixos/modules/services/security/fail2ban.nix20
-rw-r--r--nixpkgs/nixos/modules/services/security/hologram-agent.nix2
-rw-r--r--nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix5
-rw-r--r--nixpkgs/nixos/modules/services/security/tor.nix10
-rw-r--r--nixpkgs/nixos/modules/services/system/self-deploy.nix172
-rw-r--r--nixpkgs/nixos/modules/services/torrent/transmission.nix126
-rw-r--r--nixpkgs/nixos/modules/services/video/epgstation/default.nix4
-rw-r--r--nixpkgs/nixos/modules/services/video/mirakurun.nix23
-rw-r--r--nixpkgs/nixos/modules/services/wayland/cage.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/bookstack.nix9
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/discourse.nix51
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/engelsystem.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/keycloak.nix286
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/keycloak.xml37
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/mastodon.nix18
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/plausible.nix273
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/plausible.xml51
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/shiori.nix5
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/trilium.nix13
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/tt-rss.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/wordpress.nix4
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix16
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/caddy.nix33
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/molly-brown.nix1
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/nginx/default.nix70
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix12
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/trafficserver.nix318
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/cde.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix23
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.nix (renamed from nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix)301
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml277
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix4
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix6
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix24
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix5
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix9
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/account-service-util.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix18
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix4
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix12
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/window-managers/metacity.nix6
-rw-r--r--nixpkgs/nixos/modules/services/x11/xserver.nix1
-rw-r--r--nixpkgs/nixos/modules/system/activation/top-level.nix4
-rw-r--r--nixpkgs/nixos/modules/system/boot/kexec.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/luksroot.nix107
-rw-r--r--nixpkgs/nixos/modules/system/boot/networkd.nix10
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd.nix2
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems.nix35
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems/zfs.nix1
-rw-r--r--nixpkgs/nixos/modules/tasks/network-interfaces.nix111
-rw-r--r--nixpkgs/nixos/modules/virtualisation/amazon-init.nix10
-rw-r--r--nixpkgs/nixos/modules/virtualisation/containerd.nix56
-rw-r--r--nixpkgs/nixos/modules/virtualisation/containers.nix37
-rw-r--r--nixpkgs/nixos/modules/virtualisation/docker.nix4
-rw-r--r--nixpkgs/nixos/modules/virtualisation/ec2-amis.nix21
-rw-r--r--nixpkgs/nixos/modules/virtualisation/ec2-metadata-fetcher.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/kvmgt.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/libvirtd.nix16
-rw-r--r--nixpkgs/nixos/modules/virtualisation/lxc.nix12
-rw-r--r--nixpkgs/nixos/modules/virtualisation/lxd.nix19
-rw-r--r--nixpkgs/nixos/modules/virtualisation/nixos-containers.nix30
-rw-r--r--nixpkgs/nixos/modules/virtualisation/openstack-metadata-fetcher.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/openvswitch.nix6
-rw-r--r--nixpkgs/nixos/modules/virtualisation/podman-dnsname.nix36
-rw-r--r--nixpkgs/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix34
-rw-r--r--nixpkgs/nixos/modules/virtualisation/podman-network-socket.nix91
-rw-r--r--nixpkgs/nixos/modules/virtualisation/podman.nix65
-rw-r--r--nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix5
-rw-r--r--nixpkgs/nixos/release-combined.nix7
-rw-r--r--nixpkgs/nixos/release.nix30
-rw-r--r--nixpkgs/nixos/tests/acme.nix5
-rw-r--r--nixpkgs/nixos/tests/airsonic.nix32
-rw-r--r--nixpkgs/nixos/tests/all-tests.nix20
-rw-r--r--nixpkgs/nixos/tests/amazon-init-shell.nix40
-rw-r--r--nixpkgs/nixos/tests/apparmor.nix82
-rw-r--r--nixpkgs/nixos/tests/atop.nix236
-rw-r--r--nixpkgs/nixos/tests/bitwarden.nix2
-rw-r--r--nixpkgs/nixos/tests/botamusique.nix47
-rw-r--r--nixpkgs/nixos/tests/brscan5.nix42
-rw-r--r--nixpkgs/nixos/tests/buildbot.nix2
-rw-r--r--nixpkgs/nixos/tests/cage.nix16
-rw-r--r--nixpkgs/nixos/tests/cagebreak.nix76
-rw-r--r--nixpkgs/nixos/tests/calibre-web.nix4
-rw-r--r--nixpkgs/nixos/tests/ceph-multi-node.nix3
-rw-r--r--nixpkgs/nixos/tests/ceph-single-node-bluestore.nix3
-rw-r--r--nixpkgs/nixos/tests/ceph-single-node.nix3
-rw-r--r--nixpkgs/nixos/tests/chromium.nix3
-rw-r--r--nixpkgs/nixos/tests/clickhouse.nix1
-rw-r--r--nixpkgs/nixos/tests/containers-custom-pkgs.nix2
-rw-r--r--nixpkgs/nixos/tests/containers-imperative.nix22
-rw-r--r--nixpkgs/nixos/tests/couchdb.nix38
-rw-r--r--nixpkgs/nixos/tests/custom-ca.nix31
-rw-r--r--nixpkgs/nixos/tests/dendrite.nix99
-rw-r--r--nixpkgs/nixos/tests/discourse.nix2
-rw-r--r--nixpkgs/nixos/tests/docker-tools-overlay.nix2
-rw-r--r--nixpkgs/nixos/tests/docker-tools.nix16
-rw-r--r--nixpkgs/nixos/tests/docker.nix3
-rw-r--r--nixpkgs/nixos/tests/doh-proxy-rust.nix2
-rw-r--r--nixpkgs/nixos/tests/elk.nix40
-rw-r--r--nixpkgs/nixos/tests/fancontrol.nix40
-rw-r--r--nixpkgs/nixos/tests/firefox.nix2
-rw-r--r--nixpkgs/nixos/tests/fontconfig-default-fonts.nix1
-rw-r--r--nixpkgs/nixos/tests/ghostunnel.nix104
-rw-r--r--nixpkgs/nixos/tests/gitdaemon.nix6
-rw-r--r--nixpkgs/nixos/tests/gitlab.nix8
-rw-r--r--nixpkgs/nixos/tests/gnome-xorg.nix (renamed from nixpkgs/nixos/tests/gnome3-xorg.nix)6
-rw-r--r--nixpkgs/nixos/tests/gnome.nix (renamed from nixpkgs/nixos/tests/gnome3.nix)8
-rw-r--r--nixpkgs/nixos/tests/gocd-agent.nix2
-rw-r--r--nixpkgs/nixos/tests/grafana.nix8
-rw-r--r--nixpkgs/nixos/tests/home-assistant.nix16
-rw-r--r--nixpkgs/nixos/tests/installed-tests/default.nix1
-rw-r--r--nixpkgs/nixos/tests/installed-tests/gnome-photos.nix2
-rw-r--r--nixpkgs/nixos/tests/installed-tests/libgdata.nix2
-rw-r--r--nixpkgs/nixos/tests/installed-tests/librsvg.nix9
-rw-r--r--nixpkgs/nixos/tests/installed-tests/pipewire.nix10
-rw-r--r--nixpkgs/nixos/tests/installer.nix15
-rw-r--r--nixpkgs/nixos/tests/ipv6.nix85
-rw-r--r--nixpkgs/nixos/tests/jellyfin.nix171
-rw-r--r--nixpkgs/nixos/tests/kernel-generic.nix2
-rw-r--r--nixpkgs/nixos/tests/keycloak.nix23
-rw-r--r--nixpkgs/nixos/tests/keymap.nix27
-rw-r--r--nixpkgs/nixos/tests/libreswan.nix134
-rw-r--r--nixpkgs/nixos/tests/lightdm.nix2
-rw-r--r--nixpkgs/nixos/tests/lxd.nix4
-rw-r--r--nixpkgs/nixos/tests/make-test-python.nix2
-rw-r--r--nixpkgs/nixos/tests/matomo.nix2
-rw-r--r--nixpkgs/nixos/tests/minecraft-server.nix2
-rw-r--r--nixpkgs/nixos/tests/miniflux.nix12
-rw-r--r--nixpkgs/nixos/tests/mosquitto.nix5
-rw-r--r--nixpkgs/nixos/tests/mysql/mysql-autobackup.nix2
-rw-r--r--nixpkgs/nixos/tests/mysql/mysql-backup.nix2
-rw-r--r--nixpkgs/nixos/tests/mysql/mysql-replication.nix6
-rw-r--r--nixpkgs/nixos/tests/networking.nix6
-rw-r--r--nixpkgs/nixos/tests/nfs/kerberos.nix8
-rw-r--r--nixpkgs/nixos/tests/nginx-variants.nix2
-rw-r--r--nixpkgs/nixos/tests/nginx.nix4
-rw-r--r--nixpkgs/nixos/tests/nixos-generate-config.nix4
-rw-r--r--nixpkgs/nixos/tests/nsd.nix9
-rw-r--r--nixpkgs/nixos/tests/oci-containers.nix2
-rw-r--r--nixpkgs/nixos/tests/opensmtpd-rspamd.nix142
-rw-r--r--nixpkgs/nixos/tests/os-prober.nix8
-rw-r--r--nixpkgs/nixos/tests/pinnwand.nix10
-rw-r--r--nixpkgs/nixos/tests/plausible.nix46
-rw-r--r--nixpkgs/nixos/tests/plotinus.nix2
-rw-r--r--nixpkgs/nixos/tests/podman-dnsname.nix42
-rw-r--r--nixpkgs/nixos/tests/podman-tls-ghostunnel.nix150
-rw-r--r--nixpkgs/nixos/tests/podman.nix38
-rw-r--r--nixpkgs/nixos/tests/pomerium.nix6
-rw-r--r--nixpkgs/nixos/tests/printing.nix3
-rw-r--r--nixpkgs/nixos/tests/prometheus-exporters.nix558
-rw-r--r--nixpkgs/nixos/tests/radicale.nix209
-rw-r--r--nixpkgs/nixos/tests/rspamd.nix5
-rw-r--r--nixpkgs/nixos/tests/rss2email.nix2
-rw-r--r--nixpkgs/nixos/tests/sanoid.nix38
-rw-r--r--nixpkgs/nixos/tests/shadow.nix24
-rw-r--r--nixpkgs/nixos/tests/shiori.nix2
-rw-r--r--nixpkgs/nixos/tests/signal-desktop.nix15
-rw-r--r--nixpkgs/nixos/tests/snapcast.nix4
-rw-r--r--nixpkgs/nixos/tests/sogo.nix2
-rw-r--r--nixpkgs/nixos/tests/solanum.nix89
-rw-r--r--nixpkgs/nixos/tests/sourcehut.nix29
-rw-r--r--nixpkgs/nixos/tests/sudo.nix21
-rw-r--r--nixpkgs/nixos/tests/sway.nix106
-rw-r--r--nixpkgs/nixos/tests/systemd-confinement.nix3
-rw-r--r--nixpkgs/nixos/tests/systemd-networkd.nix1
-rw-r--r--nixpkgs/nixos/tests/trafficserver.nix176
-rw-r--r--nixpkgs/nixos/tests/unbound.nix69
-rw-r--r--nixpkgs/nixos/tests/v2ray.nix2
-rw-r--r--nixpkgs/nixos/tests/virtualbox.nix20
-rw-r--r--nixpkgs/nixos/tests/web-servers/unit-php.nix48
-rw-r--r--nixpkgs/nixos/tests/wiki-js.nix6
-rw-r--r--nixpkgs/nixos/tests/wmderland.nix2
-rw-r--r--nixpkgs/nixos/tests/xandikos.nix8
-rw-r--r--nixpkgs/nixos/tests/yggdrasil.nix2
-rw-r--r--nixpkgs/nixos/tests/zigbee2mqtt.nix6
-rw-r--r--nixpkgs/pkgs/applications/accessibility/dasher/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/MMA/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/a2jmidid/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/adlplug/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/aeolus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/amarok/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ams/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ardour/5.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ardour/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/audio/audacious/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/audacity/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/bjumblr/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/boops/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/bristol/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bsequencer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bshapr/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/bslizr/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/bucklespring/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/audio/cadence/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/callaudiod/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/default.nix129
-rw-r--r--nixpkgs/pkgs/applications/audio/carla/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/cava/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/chuck/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/clementine/default.nix84
-rw-r--r--nixpkgs/pkgs/applications/audio/cmus/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/cmusfm/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/csound/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/diopser/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/audio/distrho/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/drumgizmo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/drumkv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/easytag/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/ecasound/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/eflite/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jack.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faustlive.nix17
-rw-r--r--nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/faustStk/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/flac/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/audio/fluidsynth/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/fmit/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/freewheeling/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ft2-clone/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/giada/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/gnaural/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/goattracker/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/gpodder/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/gradio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/grandorgue/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/gtkpod/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/guitarix/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/audio/gwc/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/helio-workstation/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/helm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/helvum/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/hydrogen/0.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/hydrogen/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/iannix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/industrializer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/jaaa/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-rack/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/jackmix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/japa/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/kid3/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/audio/kmetronome/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/lash/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch3908
-rw-r--r--nixpkgs/pkgs/applications/audio/librespot/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/audio/lingot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/linuxsampler/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/lmms/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/lollypop/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mamba/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/mid2key/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/midas/generic.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/milkytracker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/mimic/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/miniaudicle/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/audio/mmtc/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/moc/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/molot-lite/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/podcast.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/mousai/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/mpg123/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/mpg321/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/munt/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/muse/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/musikcube/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/muso/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ncspot/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/nootka/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/nootka/unstable.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ocenaudio/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/audio/openmpt123/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/opusfile/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/opusfile/disable-cert-store.patch35
-rw-r--r--nixpkgs/pkgs/applications/audio/orca-c/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/osmid/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/padthv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/parlatype/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/patchage/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pavucontrol/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/petrifoo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobar/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobooster/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/picard/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/picoloop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pithos/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/plexamp/default.nix8
-rwxr-xr-xnixpkgs/pkgs/applications/audio/plexamp/update-plexamp.sh54
-rw-r--r--nixpkgs/pkgs/applications/audio/pmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/polyphone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/praat/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/puredata/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qjackctl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidiarp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidinet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidiroute/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qmmp/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qtractor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/quadrafuzz/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/quodlibet/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/audio/quodlibet/quodlibet-feedparser6.patch12
-rw-r--r--nixpkgs/pkgs/applications/audio/r128gain/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/rakarrack/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/reaper/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/renoise/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/rhythmbox/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/rosegarden/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/rymcast/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/samplv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/schismtracker/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/scream/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/seq24/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/seq66/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/setbfree/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sfizz/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/sidplayfp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/snapcast/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/audio/snd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sndpeek/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sonata/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/songrec/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sooperlooper/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sound-juicer/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/audio/soundtracker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/spot/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/spotifyd/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/squeezelite/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/stochas/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/strawberry/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/sublime-music/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/sunvox/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/surge/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/synthv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/tony/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/transcribe/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/audio/traverso/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/tunefish/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/uade123/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/vcv-rack/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/virtual-ans/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/vkeybd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/vmpk/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/audio/vocal/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/audio/whipper/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/audio/whipper/paths.patch32
-rw-r--r--nixpkgs/pkgs/applications/audio/xmp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/yoshimi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ytmdesktop/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/backup/pika-backup/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/backup/vorta/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin.nix9
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix153
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh7
-rw-r--r--nixpkgs/pkgs/applications/blockchains/charge-lnd/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/blockchains/chia/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/blockchains/chia/dependencies.patch13
-rw-r--r--nixpkgs/pkgs/applications/blockchains/electrs.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ethabi.nix23
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ethabi/add-Cargo-lock.patch683
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ethabi/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/blockchains/exodus/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/blockchains/faraday/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/blockchains/go-ethereum.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/miniscript/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch37
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix17
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh2
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh61
-rw-r--r--nixpkgs/pkgs/applications/blockchains/openethereum/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/polkadot/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch15
-rw-r--r--nixpkgs/pkgs/applications/blockchains/stellar-core.nix31
-rw-r--r--nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/blockchains/turbo-geth.nix11
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/amp/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/common.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/editors/apostrophe/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/atom/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/atom/env.nix7
-rw-r--r--nixpkgs/pkgs/applications/editors/bless/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/editors/bluefish/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/bluej/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/bonzomatic/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/deps.json24
-rw-r--r--nixpkgs/pkgs/applications/editors/edbrowse/0001-small-fixes.patch20
-rw-r--r--nixpkgs/pkgs/applications/editors/edbrowse/default.nix78
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix)181
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix)11
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacs2nix.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/emacs2nix.nix)12
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/emacspeak/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/hsc3/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ido-ubiquitous/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/jam-mode/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/libgenerated.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix)111
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix)28
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix)12
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-mac-link/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix)4
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/perl-completion/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/pod-mode/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/pod-mode/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json)8343
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sv-kalender/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix28
-rwxr-xr-xnixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-elpa (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/update-elpa)0
-rwxr-xr-xnixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/update-from-overlay)8
-rwxr-xr-xnixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-melpa (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-melpa.el (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa.el)5
-rwxr-xr-xnixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-org (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/update-org)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/updater-emacs.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/updater-emacs.nix)4
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/zeitgeist/default.nix (renamed from nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix)0
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/generic.nix14
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/macport.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/site-start.el4
-rw-r--r--nixpkgs/pkgs/applications/editors/ghostwriter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/gnome-builder/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/gnome-inform7/default.nix117
-rw-r--r--nixpkgs/pkgs/applications/editors/gnome-latex/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/editors/gobby/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/gophernotes/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/hexdino/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/editors/jove/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/jucipp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/kibi/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/kodestudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/lighttable/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/lite/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/editors/micro/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/nano/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovide/Cargo.lock3292
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix115
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json37
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovim-override.vim7
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/qt.nix3
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/tests.nix135
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/utils.nix63
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/wrapper.nix60
-rw-r--r--nixpkgs/pkgs/applications/editors/netbeans/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/nvi/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/editors/ox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/poke/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch2
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/scite/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/3/common.nix21
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/4/common.nix148
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/4/packages.nix19
-rw-r--r--nixpkgs/pkgs/applications/editors/supertux-editor/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/thonny/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/uivonim/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/editors/uivonim/package.json71
-rw-r--r--nixpkgs/pkgs/applications/editors/uivonim/yarn.lock5062
-rw-r--r--nixpkgs/pkgs/applications/editors/uivonim/yarn.nix5725
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/generic.nix75
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscode.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscodium.nix14
-rw-r--r--nixpkgs/pkgs/applications/editors/zile/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/gis/gmt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix6
-rw-r--r--nixpkgs/pkgs/applications/gis/qmapshack/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix15
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix21
-rw-r--r--nixpkgs/pkgs/applications/graphics/antimony/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/graphics/antimony/mimetype.xml7
-rw-r--r--nixpkgs/pkgs/applications/graphics/avocode/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/darktable/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/emulsion/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/graphics/fbida/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/feh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/fluxus/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/fondo/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/graphics/foxotron/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/freecad/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/glabels/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/gthumb/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/graphics/hydrus/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch22
-rw-r--r--nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/kodelife/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/graphics/krita/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/lazpaint/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/mcomix3/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/megapixels/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/graphics/meme-image-generator/default.nix (renamed from nixpkgs/pkgs/applications/graphics/meme/default.nix)13
-rw-r--r--nixpkgs/pkgs/applications/graphics/nomacs/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/graphics/nufraw/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/nufraw/move-extern-c.patch21
-rw-r--r--nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/openboard/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/pencil/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/pqiv/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/graphics/qvge/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/rx/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/brscan5/default.nix98
-rw-r--r--nixpkgs/pkgs/applications/graphics/shotwell/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/solvespace/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/tev/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/vimiv/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-calendar-tools.nix24
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch90
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch14
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch10
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/kde/baloo-widgets.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/dolphin-plugins.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/dolphin.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/dragon.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/fetch.sh2
-rw-r--r--nixpkgs/pkgs/applications/kde/gwenview.nix5
-rw-r--r--nixpkgs/pkgs/applications/kde/k3b.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kaccounts-providers.nix44
-rw-r--r--nixpkgs/pkgs/applications/kde/kalarm.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kalarmcal.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kcachegrind.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kcalutils.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix5
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenlive/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/kde/khelpcenter.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kio-extras.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kio-gdrive.nix36
-rw-r--r--nixpkgs/pkgs/applications/kde/kldap.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kmail.nix9
-rw-r--r--nixpkgs/pkgs/applications/kde/kmailtransport.nix7
-rw-r--r--nixpkgs/pkgs/applications/kde/kmix.nix6
-rw-r--r--nixpkgs/pkgs/applications/kde/knotes.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/kolourpaint.nix10
-rw-r--r--nixpkgs/pkgs/applications/kde/konqueror.nix8
-rw-r--r--nixpkgs/pkgs/applications/kde/konquest.nix14
-rw-r--r--nixpkgs/pkgs/applications/kde/konsole.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kontactinterface.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/korganizer.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/krfb.nix14
-rw-r--r--nixpkgs/pkgs/applications/kde/ktnef.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kwalletmanager.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/kwave.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/libkdegames.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/srcs.nix1800
-rw-r--r--nixpkgs/pkgs/applications/logging/humioctl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/1password-gui/default.nix127
-rwxr-xr-xnixpkgs/pkgs/applications/misc/1password-gui/update.sh2
-rw-r--r--nixpkgs/pkgs/applications/misc/1password/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/airtame/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/almanah/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/archivy/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/sox/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/authenticator/default.nix99
-rw-r--r--nixpkgs/pkgs/applications/misc/authy/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/base16-universal-manager/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/bemenu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/bibletime/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/darwin.patch19
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/bottles/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/break-time/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/calcurse/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/cheat/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/chrysalis/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/clifm/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/clipcat/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/cointop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/coolreader/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/corectrl/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/misc/cpu-x/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/curaengine/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dasel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dbeaver/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch72
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch39
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch111
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch28
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch32
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch51
-rw-r--r--nixpkgs/pkgs/applications/misc/dockbarx/default.nix95
-rw-r--r--nixpkgs/pkgs/applications/misc/dwmblocks/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/eaglemode/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/effitask/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/elfx86exts/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/feedbackd/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/flavours/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/font-manager/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/misc/free42/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/fuzzel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gcstar/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/geoipupdate/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/get_iplayer/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/getxbook/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/girara/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/gksu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-usage/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch24
-rw-r--r--nixpkgs/pkgs/applications/misc/goldendict/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix156
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsprune/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxlab/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxlab/fix-qttranslations-path.patch17
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxsee/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/gremlin-console/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/grip/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/gummi/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/gxkb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/haunt/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/heimer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/hello/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/houdini/runtime.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/hugo/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/hunter/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/misc/ideamaker/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/imag/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/index-fm/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/iptsd/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/josm/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/jotta-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/jp2a/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/kanboard/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/community.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/keeweb/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/khal/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/kile-wl/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/kile-wl/update-Cargo-lock.diff153
-rw-r--r--nixpkgs/pkgs/applications/misc/kondo/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/kratos/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/latte-dock/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/logseq/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/lscolors/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/makeself/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/mako/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/misc/mediaelch/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/megacmd/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/megasync/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/natural-docs/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/navi/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/navit/default.nix90
-rw-r--r--nixpkgs/pkgs/applications/misc/nimbo/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/nnn/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/notejot/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/numberstation/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/misc/obsidian/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/olifant/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/oneko/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/openbox-menu/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/openlp/lib.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/openrgb/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/opentrack/aruco.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/opentrack/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/misc/orca/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/orca/fix-paths.patch26
-rw-r--r--nixpkgs/pkgs/applications/misc/overmind/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/overmind/deps.nix129
-rw-r--r--nixpkgs/pkgs/applications/misc/pastel/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/pcmanfm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/phoc/default.nix84
-rw-r--r--nixpkgs/pkgs/applications/misc/pipr/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/plank/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/plover/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/misc/polybar/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/pueue/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/pyditz/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/pytrainer/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/qdirstat/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/qlcplus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/reddsaver/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi-power-menu/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/rofimoji/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/rsclock/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/safeeyes/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/sampler/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/sc-im/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/scli/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/sfm/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/skytemple/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/slade/git.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/snapper-gui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/solaar/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/spnavcfg/configure-cfgfile-path.patch100
-rw-r--r--nixpkgs/pkgs/applications/misc/spnavcfg/configure-pidfile-path.patch40
-rw-r--r--nixpkgs/pkgs/applications/misc/spnavcfg/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/stork/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/sunwait/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/surface-control/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix50
-rw-r--r--nixpkgs/pkgs/applications/misc/synergy/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch17
-rw-r--r--nixpkgs/pkgs/applications/misc/taizen/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/tellico/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/tickrs/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/timew-sync-server/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/timewarrior/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/tint2/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/tiramisu/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/todiff/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/tootle/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/tsukae/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/tuir/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/ulauncher/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/upwork/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/visidata/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/xmrig/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/xmrig/donate-level.patch12
-rw-r--r--nixpkgs/pkgs/applications/misc/xneur/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/xplr/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/misc/yambar/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/yokadi/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/core/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/zettlr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/zktree/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/3proxy/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/brave/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/castor/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix69
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix8
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json58
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix778
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/links2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/opera/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix144
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/surf/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix111
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/package.json42
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock3527
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix2840
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/calls/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cawbird/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/cloudflared/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/click/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/fix-home.patch53
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kops/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/lens/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/multus-cni/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json137
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/davmail/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/dropbox/cli.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/flent/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/flexget/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/gui.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/server.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/hpmyroom/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/hydroxide/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/suricata/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json14
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix1016
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix4
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix37
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/db-reencryption-wrapper.py92
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/insync/v3.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/communi/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/senpai/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/tiny/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch35
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch14
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/load_weemoji_path.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/moduledir_from_env.patch21
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix184
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix615
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix530
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix343
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch36
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ncgopher/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/nextdns/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/nym/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/nym/ignore-networking-tests.patch123
-rw-r--r--nixpkgs/pkgs/applications/networking/onionshare/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch5
-rw-r--r--nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch7
-rw-r--r--nixpkgs/pkgs/applications/networking/openbazaar/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/opsdroid/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/retroshare/no-submodules.patch62
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/xd/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/pcloud/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/pjsip/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/remmina/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/seafile-client/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/seaweedfs/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/soju/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/taler/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch48
-rw-r--r--nixpkgs/pkgs/applications/networking/twtxt/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/vnstat/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/weather/meteo/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/wg-bond/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/abiword/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/beamerpresenter/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/office/elementary-planner/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/espanso/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/office/gnumeric/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/office/grisbi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/gtg/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/homebank/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/jabref/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/kmymoney/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/ledger-autosync/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/office/ledger-autosync/fix-ofxparse-dependency.patch13
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix24
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/mendeley/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/mytetra/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/notes-up/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix52
-rw-r--r--nixpkgs/pkgs/applications/office/paperwork/src.nix14
-rw-r--r--nixpkgs/pkgs/applications/office/qownnotes/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/office/scribus/unstable.nix12
-rw-r--r--nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/timeline/default.nix89
-rw-r--r--nixpkgs/pkgs/applications/office/timeular/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch13
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/office/tryton/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/watson/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/wpsoffice/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/zim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/zotero/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/radio/direwolf/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/dump1090/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch12
-rw-r--r--nixpkgs/pkgs/applications/radio/ebook2cw/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/radio/fldigi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix6
-rw-r--r--nixpkgs/pkgs/applications/radio/gqrx/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/minimodem/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/noaa-apt/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/radio/pothos/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/qsstv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/quisk/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/rtl_433/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/radio/sdrplay/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/radio/soapyaudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/soapysdrplay/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/radio/soundmodem/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/svxlink/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/unixcw/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/welle-io/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/kstars/fs-fixes.patch59
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/siril/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/octopus/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sambamba/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samblaster/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dsview/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/base.nix122
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/verilator/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/logic/acgtk/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/logic/coq/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/coq2html/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/logic/elan/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/logic/key/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lean/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/logic/poly/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/why3/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/starspace/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/math/R/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/math/bcal/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/math/cntk/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/math/eukleides/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/science/math/eukleides/use-CC.patch11
-rw-r--r--nixpkgs/pkgs/applications/science/math/gap/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/math/geogebra/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/glsurf/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/gretl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/10.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/11.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/9.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch12
-rw-r--r--nixpkgs/pkgs/applications/science/math/numworks-epsilon/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/science/math/pari/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/science/math/pari/rnfdisc.patch51
-rw-r--r--nixpkgs/pkgs/applications/science/math/pynac/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-3.5-code-output.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-src.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/singular/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/misc/graphia/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/misc/rink/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch16
-rw-r--r--nixpkgs/pkgs/applications/science/misc/snakemake/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/viennarna/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/science/physics/xfitter/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/programming/fdr/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/system/glances/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/st/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch2
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-backup/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-repo/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch16
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-review/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitkraken/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/data.json14
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile8
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock34
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix40
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch22
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile74
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock356
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix512
-rwxr-xr-xnixpkgs/pkgs/applications/version-management/gitlab/update.py8
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix1464
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitoxide/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/version-management/meld/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/mercurial/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock16
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/gemset.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/version-management/sit/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/smartgithg/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/core.nix45
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix22
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/git.nix52
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix18
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix16
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix26
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/man.nix21
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix55
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix21
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix21
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix24
-rw-r--r--nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/subversion/CVE-2020-17525.patch15
-rw-r--r--nixpkgs/pkgs/applications/version-management/subversion/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/yadm/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/video/aegisub/default.nix112
-rw-r--r--nixpkgs/pkgs/applications/video/aegisub/update-ffms2.patch105
-rw-r--r--nixpkgs/pkgs/applications/video/alass/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/avidemux/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/avxsynth/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/video/bombono/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/video/byzanz/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/celluloid/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/video/cinelerra/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/clipgrab/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/video/devede/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/droidcam/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/dvdstyler/default.nix143
-rw-r--r--nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/video/filebot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/freetube/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/gnomecast/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/handbrake/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/video/haruna/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/video/jftui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kino/default.nix95
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch60
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch57
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch11
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch21
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/unwrapped.nix10
-rw-r--r--nixpkgs/pkgs/applications/video/kooha/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/video/lightworks/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/video/makemkv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/manim/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/mplayer/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/video/mplayer/svn-r38199-ffmpeg44fix.patch22
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/youtube-quality.nix39
-rw-r--r--nixpkgs/pkgs/applications/video/mythtv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix39
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix12
-rw-r--r--nixpkgs/pkgs/applications/video/peek/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/pitivi/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/video/prism/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/qmediathekview/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/video/qmplay2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/qstopmotion/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/video/recapp/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/sub-batch/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/ustreamer/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/plugins.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/vlc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/vokoscreen/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/webcamoid/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/wxcam/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/xawtv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/xine-ui/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/video/xscast/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/bochs/bochs_fix_narrowing_conv_warning.patch29
-rw-r--r--nixpkgs/pkgs/applications/virtualization/bochs/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cntr/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/conmon/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/crosvm/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/crun/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/firecracker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/gvisor/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/virtualization/ignite/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix3
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/default.nix146
-rw-r--r--nixpkgs/pkgs/applications/virtualization/railcar/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/runc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix11
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch104
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch104
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch165
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/4.10.nix7
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch63
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff95
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cage/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cardboard/default.nix118
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwl/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix13
-rw-r--r--nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/window-managers/hikari/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/balance-workspace.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/gaps.nix13
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix18
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/status.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/wsr.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/icewm/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/window-managers/kbdd/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/window-managers/leftwm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix22
-rw-r--r--nixpkgs/pkgs/applications/window-managers/phosh/default.nix158
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/river/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix103
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch16
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix14
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/wsr.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/taffybar/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/window-managers/waybox/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/wf-config.nix17
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wio/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/yabar/build.nix4
-rw-r--r--nixpkgs/pkgs/build-support/agda/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/appimage/default.nix4
-rwxr-xr-xnixpkgs/pkgs/build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh49
-rwxr-xr-xnixpkgs/pkgs/build-support/bintools-wrapper/darwin-strip-wrapper.sh78
-rw-r--r--nixpkgs/pkgs/build-support/bintools-wrapper/default.nix65
-rw-r--r--nixpkgs/pkgs/build-support/bintools-wrapper/ld-wrapper.sh26
-rw-r--r--nixpkgs/pkgs/build-support/build-bazel-package/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix12
-rw-r--r--nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c4
-rw-r--r--nixpkgs/pkgs/build-support/build-pecl.nix1
-rw-r--r--nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh28
-rw-r--r--nixpkgs/pkgs/build-support/cc-wrapper/default.nix15
-rw-r--r--nixpkgs/pkgs/build-support/docker/default.nix26
-rw-r--r--nixpkgs/pkgs/build-support/docker/examples.nix27
-rw-r--r--nixpkgs/pkgs/build-support/emacs/wrapper.nix4
-rw-r--r--nixpkgs/pkgs/build-support/fetchdocker/fetchDockerConfig.nix2
-rw-r--r--nixpkgs/pkgs/build-support/fetchdocker/fetchDockerLayer.nix2
-rwxr-xr-xnixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git1
-rw-r--r--nixpkgs/pkgs/build-support/fetchgitea/default.nix7
-rw-r--r--nixpkgs/pkgs/build-support/fetchurl/mirrors.nix5
-rw-r--r--nixpkgs/pkgs/build-support/libredirect/libredirect.c81
-rw-r--r--nixpkgs/pkgs/build-support/libredirect/test.c6
-rw-r--r--nixpkgs/pkgs/build-support/make-desktopitem/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/mkshell/default.nix24
-rw-r--r--nixpkgs/pkgs/build-support/nuke-references/builder.sh29
-rw-r--r--nixpkgs/pkgs/build-support/nuke-references/darwin-sign-fixup.sh5
-rw-r--r--nixpkgs/pkgs/build-support/nuke-references/default.nix28
-rw-r--r--nixpkgs/pkgs/build-support/nuke-references/nuke-refs.sh33
-rw-r--r--nixpkgs/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh5
-rw-r--r--nixpkgs/pkgs/build-support/remove-references-to/default.nix59
-rw-r--r--nixpkgs/pkgs/build-support/remove-references-to/remove-references-to.sh37
-rw-r--r--nixpkgs/pkgs/build-support/replace-secret/replace-secret.nix35
-rwxr-xr-xnixpkgs/pkgs/build-support/replace-secret/replace-secret.py28
-rw-r--r--nixpkgs/pkgs/build-support/replace-secret/test/expected_long_output30
-rw-r--r--nixpkgs/pkgs/build-support/replace-secret/test/expected_short_output4
-rw-r--r--nixpkgs/pkgs/build-support/replace-secret/test/input_file4
-rw-r--r--nixpkgs/pkgs/build-support/replace-secret/test/passwd1
-rw-r--r--nixpkgs/pkgs/build-support/replace-secret/test/rsa27
-rw-r--r--nixpkgs/pkgs/build-support/rust/default-crate-overrides.nix2
-rw-r--r--nixpkgs/pkgs/build-support/rust/default.nix30
-rw-r--r--nixpkgs/pkgs/build-support/rust/hooks/default.nix3
-rw-r--r--nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix167
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.lock83
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.toml8
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/default.nix18
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/src/main.rs9
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix8
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.lock79
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.toml8
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/default.nix21
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/src/main.rs9
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.lock79
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.toml8
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/default.nix21
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/src/main.rs9
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/Cargo.lock682
-rw-r--r--nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix43
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh2
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders.nix62
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/test.nix53
-rwxr-xr-xnixpkgs/pkgs/build-support/trivial-builders/test.sh56
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeDirectReferencesToFile.nix4
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeReferencesToFile.nix4
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/test/sample.nix15
-rw-r--r--nixpkgs/pkgs/build-support/vm/default.nix139
-rw-r--r--nixpkgs/pkgs/build-support/writers/test.nix52
-rw-r--r--nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix10
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix9
-rw-r--r--nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix16
-rw-r--r--nixpkgs/pkgs/data/fonts/cascadia-code/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/edwin/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/inter/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/julia-mono/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/last-resort/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/open-sans/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-two/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix9
-rw-r--r--nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix8
-rw-r--r--nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix28
-rw-r--r--nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix42
-rwxr-xr-xnixpkgs/pkgs/data/misc/cacert/update.sh10
-rw-r--r--nixpkgs/pkgs/data/misc/common-licenses/default.nix28
-rw-r--r--nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix11
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch13
-rw-r--r--nixpkgs/pkgs/data/misc/graphs/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix10
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/pin.json6
-rw-r--r--nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix13
-rw-r--r--nixpkgs/pkgs/data/themes/adapta/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/adwaita-qt/default.nix25
-rw-r--r--nixpkgs/pkgs/data/themes/amber/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/arc/default.nix34
-rw-r--r--nixpkgs/pkgs/data/themes/canta/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/cdetheme/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/equilux-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/jade1/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/kde2/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/lounge/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita/default.nix7
-rw-r--r--nixpkgs/pkgs/data/themes/matcha/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/materia-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/nordic-polar/default.nix35
-rw-r--r--nixpkgs/pkgs/data/themes/nordic/default.nix98
-rw-r--r--nixpkgs/pkgs/data/themes/numix-solarized/default.nix11
-rw-r--r--nixpkgs/pkgs/data/themes/plano/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/qtcurve/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/stilo/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/vimix/default.nix10
-rw-r--r--nixpkgs/pkgs/data/themes/yaru-remix/default.nix28
-rw-r--r--nixpkgs/pkgs/data/themes/yaru/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/zuki/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cdesktopenv/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix60
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/efl/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix25
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix89
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix34
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix36
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix52
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix46
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix53
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix45
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gvc-with-ucm-prePatch.nix17
-rwxr-xr-xnixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/fix-desktop-file-paths.patch50
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-chess/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix39
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-robots/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/swell-foop/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/geary/Bump-client-test-timeout-to-300s.patch10
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix)7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/cheese/default.nix)52
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/file-roller/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix)21
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/ghex/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-books/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-books/default.nix)17
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix)23
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix)25
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/gtk_image_reset_crash.patch17
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix)21
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-connections/default.nix)50
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-documents/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix)19
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix)25
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix85
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix)50
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/polari/make-thumbnailer-wrappable.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/apps/vinagre/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix64
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/caribou/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix69
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/empathy/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/empathy/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/eog/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix)26
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evince/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix)9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix)21
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-session-worker_forward-vars.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-x-session_extra_args.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-x-session_session-wrapper.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/org.gnome.login-screen.gschema.override (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/reset-environment.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix86
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix89
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-common/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-common/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix)16
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix)51
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch)94
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix96
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix)24
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix85
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix)16
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/0001-fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/0001-fix-paths.patch)21
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix)30
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/vendor.conf (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-keyring/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix)75
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-online-miners/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix)18
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-session/ctl.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/ctl.nix)9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-session/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix)29
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix)16
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/global-backlight-helper.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/global-backlight-helper.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix)53
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gmenu.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix)29
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix)19
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-software/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix)63
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-themes-extra/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix)10
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/libgnome-keyring/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix)9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0002-drop-inheritable.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0002-drop-inheritable.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0003-Fix-glitches-in-gala.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0003-Fix-glitches-in-gala.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0007-fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0007-fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix)20
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/drop-inheritable.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/mutter/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix)18
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/nautilus/extension_dir.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/nautilus/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/nautilus/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix)7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/sushi/default.nix)13
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/totem/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix)10
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/core/zenity/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/devtools/anjuta/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/devtools/devhelp/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix)10
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/EasyScreenCast/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/EasyScreenCast/fix-gi-path.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/README.md26
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/appindicator/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/fix_gmenu.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/fix_gmenu.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix57
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/chrome-gnome-shell/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/clipboard-indicator/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix)20
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/clock-override/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/collisions.json42
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/default.nix73
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/disable-unredirect/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/disable-unredirect/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/draw-on-your-screen/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/draw-on-your-screen/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/fix_vte_and_gjs.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/dynamic-panel-transparency/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/dynamic-panel-transparency/default.nix)10
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix29
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/extensions.json450
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/freon/default.nix)6
-rwxr-xr-xnixpkgs/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/installed-tests-path.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/installed-tests-path.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix33
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix40
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/material-shell/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/material-shell/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/mpris-indicator-button/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/noannoyance/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/noannoyance/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/remove-dropdown-arrows/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix)16
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/paths_and_nonexisting_dirs.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/timepp/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix)8
-rwxr-xr-xnixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py284
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/window-is-ready-remover/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/workspace-matrix/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/find-latest-version.py (renamed from nixpkgs/pkgs/desktops/gnome-3/find-latest-version.py)39
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix)11
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/atomix/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/five-or-more/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix68
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix84
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix73
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix)12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix75
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix)10
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix)22
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/games/lightsoff/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix73
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix72
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/tali/default.nix69
-rw-r--r--nixpkgs/pkgs/desktops/gnome/installer.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/installer.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix)43
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix)48
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix)14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-autoar/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix)8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix)79
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-packagekit/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix)18
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch31
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-screensaver/fix-dbus-service-dir.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix)30
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/default.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gpaste/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch)2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gtkhtml/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix)11
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/metacity/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix)11
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/metacity/fix-paths.patch (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix)7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/misc/pomodoro/default.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/update.nix (renamed from nixpkgs/pkgs/desktops/gnome-3/update.nix)4
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/base/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/default.nix3
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/make/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/marco/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-applets/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/pluma/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/granite/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix4
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix17
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kmenuedit.nix4
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kscreenlocker.nix4
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix6
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix24
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-sdk.nix41
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix11
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/srcs.nix416
-rw-r--r--nixpkgs/pkgs/desktops/rox/rox-filer/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/xfce/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix48
-rw-r--r--nixpkgs/pkgs/development/arduino/arduino-cli/default.nix29
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/core.nix53
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch10
-rw-r--r--nixpkgs/pkgs/development/beam-modules/build-erlang-mk.nix76
-rw-r--r--nixpkgs/pkgs/development/beam-modules/build-mix.nix85
-rw-r--r--nixpkgs/pkgs/development/beam-modules/build-rebar3.nix60
-rw-r--r--nixpkgs/pkgs/development/beam-modules/default.nix27
-rw-r--r--nixpkgs/pkgs/development/beam-modules/elixir_ls.nix2
-rw-r--r--nixpkgs/pkgs/development/beam-modules/erlang-ls/default.nix46
-rw-r--r--nixpkgs/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix219
-rw-r--r--nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix3
-rw-r--r--nixpkgs/pkgs/development/beam-modules/mix-release.nix65
-rw-r--r--nixpkgs/pkgs/development/beam-modules/pc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/beam-modules/rebar3-nix/default.nix18
-rw-r--r--nixpkgs/pkgs/development/beam-modules/rebar3-proper/default.nix13
-rw-r--r--nixpkgs/pkgs/development/beam-modules/rebar3-release.nix47
-rw-r--r--nixpkgs/pkgs/development/compilers/acme/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/avian/default.nix43
-rw-r--r--nixpkgs/pkgs/development/compilers/cc65/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/compcert/default.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/copper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/crystal/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/dale/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix11
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch47
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/flutter.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/fsharp41/default.nix126
-rw-r--r--nixpkgs/pkgs/development/compilers/fsharp41/fsharp-GetFileNameWithoutExtension-type-inference.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/fsharp41/fsharp-IsPathRooted-type-inference.patch21
-rw-r--r--nixpkgs/pkgs/development/compilers/fsharp41/fsharp-path-overloads.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/fsharp41/fsharp-string-switchName.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/fstar/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/10/default.nix40
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch306
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/11/default.nix300
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/4.8/default.nix16
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/4.9/default.nix16
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/6/default.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/7/default.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/8/default.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/9/default.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/common/pre-configure.nix9
-rw-r--r--nixpkgs/pkgs/development/compilers/gcc/gnat-cflags-11.patch35
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.4.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/head.nix17
-rw-r--r--nixpkgs/pkgs/development/compilers/ghdl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/gleam/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.14.nix57
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.15.nix60
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.16.nix63
-rw-r--r--nixpkgs/pkgs/development/compilers/go/2-dev.nix62
-rw-r--r--nixpkgs/pkgs/development/compilers/go/binary.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/enterprise-edition.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/halide/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/haxe/default.nix17
-rw-r--r--nixpkgs/pkgs/development/compilers/inform6/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/ispc/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.0-bin.nix80
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.0.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.3.nix161
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.5.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix73
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/README.md24
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/allow_nix_mtime.patch25
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/diagonal-test.patch27
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch87
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch (renamed from nixpkgs/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.0.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch (renamed from nixpkgs/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0003-nix-Skip-chown-tests-broken-in-sandbox.patch27
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch30
-rwxr-xr-xnixpkgs/pkgs/development/compilers/julia/update-1.5.py22
-rw-r--r--nixpkgs/pkgs/development/compilers/koka/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/kotlin/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/ldc/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/bintools/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/10/bintools.nix)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/clang/default.nix46
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch248
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/default.nix33
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch129
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/default.nix177
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libcxx/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/10/libc++/default.nix)25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch99
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/default.nix)51
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/no-threads.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/no-threads.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/wasm.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/wasm.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libunwind/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/lld/default.nix38
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/lldb/default.nix59
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch65
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix86
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch416
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/openmp.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/10/openmp/default.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/bintools/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/11/bintools.nix)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix63
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch235
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix55
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch129
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/default.nix196
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix)39
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch100
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/default.nix)53
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/no-threads.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/no-threads.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/wasm.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/wasm.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix38
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lldb/default.nix59
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch65
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix90
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch417
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix35
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix44
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix23
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/clang/gnu-install-dirs.patch235
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/X86-support-extension.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-X86-support-extension.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/armv7l.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-armv7l.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/codesign.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-codesign.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch71
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/gnu-install-dirs.patch129
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/normalize-var.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/default.nix161
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch100
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix32
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/wasm.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/wasm.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libunwind/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lld/default.nix24
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lldb/default.nix35
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch65
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lldb/procfs.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/12/lldb/lldb-procfs.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/lldb/resource-dir.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix67
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs-polly.patch105
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs.patch417
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/llvm/outputs.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/12/llvm/llvm-outputs.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/clang/default.nix48
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/clang/gnu-install-dirs.patch242
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/gnu-install-dirs.patch103
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/default.nix65
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/libcxx/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/5/libc++/default.nix)23
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/libcxx/gnu-install-dirs.patch72
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/libcxxabi/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/5/libc++abi/default.nix)28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/libcxxabi/gnu-install-dirs.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/lld/default.nix41
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/lldb/default.nix49
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/lldb/gnu-install-dirs.patch76
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix89
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs.patch386
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/openmp.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/5/openmp/default.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/clang/default.nix48
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/clang/gnu-install-dirs.patch258
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/gnu-install-dirs.patch107
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/default.nix65
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/libcxx/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/6/libc++/default.nix)23
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/libcxx/gnu-install-dirs.patch72
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/libcxxabi/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/6/libc++abi/default.nix)28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/libcxxabi/gnu-install-dirs.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/lld/default.nix42
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix49
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/lldb/gnu-install-dirs.patch76
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix80
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs.patch386
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/openmp.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/6/openmp/default.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/bintools/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/7/bintools.nix)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/clang/default.nix47
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/clang/gnu-install-dirs.patch281
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/clang/unwindlib.patch227
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/default.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/gnu-install-dirs.patch117
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/default.nix184
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/libcxx/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/7/libc++/default.nix)30
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/libcxx/gnu-install-dirs.patch72
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/7/libc++abi/default.nix)38
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/gnu-install-dirs.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/libunwind/default.nix53
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/libunwind/gnu-install-dirs.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/lld/default.nix42
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/lldb/default.nix59
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/lldb/gnu-install-dirs.patch76
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix75
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs.patch386
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/openmp.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/7/openmp/default.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/bintools/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/8/bintools.nix)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/clang/default.nix46
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch290
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/clang/xpc.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/8/clang/clang-xpc.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/default.nix28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch117
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/default.nix189
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libcxx/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/8/libc++/default.nix)25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch72
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/default.nix)51
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/no-threads.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/no-threads.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/wasm.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/wasm.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libunwind/default.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/lld/default.nix42
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/lldb/default.nix56
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch81
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix75
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch394
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/openmp.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/8/openmp/default.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/bintools/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/9/bintools.nix)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix44
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/clang/gnu-install-dirs.patch278
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/default.nix33
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/gnu-install-dirs.patch117
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/default.nix189
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libcxx/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/9/libc++/default.nix)25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libcxx/gnu-install-dirs.patch99
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/default.nix (renamed from nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/default.nix)51
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/no-threads.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/no-threads.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/wasm.patch (renamed from nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/libcxxabi-wasm.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libunwind/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/libunwind/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/lld/default.nix38
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/lldb/default.nix51
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/lldb/gnu-install-dirs.patch65
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix81
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs.patch395
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/openmp.nix25
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/9/openmp/default.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/bintools/default.nix29
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix123
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch235
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/clang/purity.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch23
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/armv7l.patch32
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/codesign.patch33
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix113
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch129
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/sanitizers-nongnu.patch412
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/default.nix269
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix54
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxx/gnu-install-dirs.patch100
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix73
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/wasm.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libunwind/default.nix33
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/lld/default.nix44
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/lldb/default.nix131
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/lldb/gnu-install-dirs.patch65
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/lldb/procfs.patch31
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/lldb/resource-dir.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix220
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch105
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch417
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/llvm/outputs.patch26
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/openmp/default.nix35
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/rocm/lld/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix2
-rwxr-xr-xnixpkgs/pkgs/development/compilers/llvm/update-git.py70
-rw-r--r--nixpkgs/pkgs/development/compilers/mezzo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/mono/5.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/mrustc/bootstrap.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/nim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/11.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/12.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/13.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/14.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/15.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/16.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/8.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix32
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix31
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/fix-library-path-jdk8.patch37
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/jre.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/jre_minimal_test1.nix16
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/tests/hello-logging.nix47
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/tests/hello.nix42
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix16
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix21
-rw-r--r--nixpkgs/pkgs/development/compilers/ophis/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/pakcs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/passerine/default.nix22
-rw-r--r--nixpkgs/pkgs/development/compilers/ponyc/default.nix23
-rw-r--r--nixpkgs/pkgs/development/compilers/ponyc/fix-libstdcpp-path.patch14
-rw-r--r--nixpkgs/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch10
-rw-r--r--nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/reason/default.nix38
-rw-r--r--nixpkgs/pkgs/development/compilers/reason/tests/hello/default.nix23
-rw-r--r--nixpkgs/pkgs/development/compilers/reason/tests/hello/dune4
-rw-r--r--nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.opam0
-rw-r--r--nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.re6
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/1_45.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/1_51.nix58
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/1_52.nix59
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/cargo.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix6
-rwxr-xr-xnixpkgs/pkgs/development/compilers/rust/print-hashes.sh1
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/rustc.nix9
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/common.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/scala/2.x.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/scala/dotty.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/solc/0.7.nix78
-rw-r--r--nixpkgs/pkgs/development/compilers/solc/default.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/swi-prolog/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/vala/default.nix17
-rw-r--r--nixpkgs/pkgs/development/compilers/z88dk/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/zasm/default.nix37
-rw-r--r--nixpkgs/pkgs/development/compilers/zig/default.nix44
-rw-r--r--nixpkgs/pkgs/development/compilers/zulu/8.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/zulu/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/zz/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/CoLoR/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/VST/default.nix6
-rw-r--r--nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix46
-rw-r--r--nixpkgs/pkgs/development/coq-modules/autosubst/0001-changes-to-work-with-Coq-8.6.patch134
-rw-r--r--nixpkgs/pkgs/development/coq-modules/autosubst/default.nix25
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix7
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coqeal/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coqprime/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/goedel/default.nix24
-rw-r--r--nixpkgs/pkgs/development/coq-modules/hydra-battles/default.nix29
-rw-r--r--nixpkgs/pkgs/development/coq-modules/interval/default.nix8
-rw-r--r--nixpkgs/pkgs/development/coq-modules/mathcomp-zify/default.nix22
-rw-r--r--nixpkgs/pkgs/development/coq-modules/metalib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix3
-rw-r--r--nixpkgs/pkgs/development/coq-modules/pocklington/default.nix22
-rw-r--r--nixpkgs/pkgs/development/coq-modules/reglang/default.nix25
-rw-r--r--nixpkgs/pkgs/development/coq-modules/relation-algebra/default.nix35
-rw-r--r--nixpkgs/pkgs/development/coq-modules/topology/default.nix38
-rw-r--r--nixpkgs/pkgs/development/coq-modules/zorns-lemma/default.nix38
-rwxr-xr-xnixpkgs/pkgs/development/dotnet-modules/python-language-server/create_deps.sh6
-rw-r--r--nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix14
-rw-r--r--nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix124
-rw-r--r--nixpkgs/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt16
-rw-r--r--nixpkgs/pkgs/development/go-modules/generic/default.nix5
-rw-r--r--nixpkgs/pkgs/development/go-packages/generic/default.nix5
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/HACKING.md270
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix40
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-arm.nix97
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-common.nix404
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-darwin.nix174
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix7
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix2
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix4
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix17
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix3
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml11954
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml5336
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml519
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml2724
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml3282
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix283
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/default.nix31
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/generic-builder.nix21
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix11864
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/lib.nix10
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/make-package-set.nix2
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix4
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/patches/dyre-nix.patch25
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/idris-modules/data.nix25
-rw-r--r--nixpkgs/pkgs/development/idris-modules/default.nix2
-rw-r--r--nixpkgs/pkgs/development/idris-modules/sdl2.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix14
-rw-r--r--nixpkgs/pkgs/development/interpreters/angelscript/default.nix29
-rw-r--r--nixpkgs/pkgs/development/interpreters/cling/default.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/clips/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/babashka.nix14
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/1.12.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix99
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R18.nix34
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R19.nix19
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R20.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R21.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R22.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R23.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R24.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix146
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/development/interpreters/evcxr/default.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/falcon/default.nix18
-rw-r--r--nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/j/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/janet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/joker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/jruby/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/lfe/fix-rebar-config.patch29
-rw-r--r--nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/lfe/no-test-deps.patch13
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/5.4.darwin.patch48
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/default.nix34
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix37
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/liblua.so.patch60
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/lua-dso.make (renamed from nixpkgs/pkgs/development/interpreters/lua-5/lua-5.3-dso.make)6
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/2.0.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/2.1.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/mujs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/build-env.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/default.nix23
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/7.3.nix20
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/7.4.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/8.0.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/generic.nix493
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/php73-darwin-isfinite.patch60
-rw-r--r--nixpkgs/pkgs/development/interpreters/pure/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/conda/default.nix25
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/conda-install-hook.sh27
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/conda-unpack-hook.sh18
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/default.nix15
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh7
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/tests.nix35
-rw-r--r--nixpkgs/pkgs/development/interpreters/quickjs/default.nix32
-rw-r--r--nixpkgs/pkgs/development/interpreters/renpy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/default.nix30
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix11
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix79
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/supercollider/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmtime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/java-modules/postgresql_jdbc/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/CGAL/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2_image/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL_image/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/ace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/alembic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/allegro/5.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/allegro/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/amdvlk/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/amtk/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/apache-activemq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/applet-window-buttons/default.nix41
-rw-r--r--nixpkgs/pkgs/development/libraries/appstream-glib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/appstream/default.nix70
-rw-r--r--nixpkgs/pkgs/development/libraries/apr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/aravis/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/at-spi2-atk/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/atk/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/atkmm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/aubio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/rtaudio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audiofile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/avahi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/avro-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-common/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-io/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/bamf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/beignet/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/belcard/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/belle-sip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/belr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/boringssl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/botan/2.0.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/botan/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/botan/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/box2d/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/bzrtp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/caf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cairomm/1.16.nix74
-rw-r--r--nixpkgs/pkgs/development/libraries/catch/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/cereal/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/cgreen/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/chmlib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/cjose/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/clanlib/default.nix50
-rw-r--r--nixpkgs/pkgs/development/libraries/clutter-gst/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/clutter-gtk/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/clutter/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/cogl/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/ctpl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/cxxopts/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/dbus/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/dconf/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/dee/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/doctest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dqlite/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/drumstick/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch9
-rw-r--r--nixpkgs/pkgs/development/libraries/drumstick/drumstick-plugins.patch4
-rw-r--r--nixpkgs/pkgs/development/libraries/dssi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/editline/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/embree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ethash/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/exempi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/fcft/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/fcl/default.nix45
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/4.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/v2-0001-avcodec-videotoolboxenc-define-TARGET_CPU_ARM64-t.patch35
-rw-r--r--nixpkgs/pkgs/development/libraries/ffms/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/flatbuffers/1.12.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/flatbuffers/2.0.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/flatbuffers/default.nix55
-rw-r--r--nixpkgs/pkgs/development/libraries/flatbuffers/generic.nix46
-rw-r--r--nixpkgs/pkgs/development/libraries/flint/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/flite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/folks/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/macos-atomics.h39
-rw-r--r--nixpkgs/pkgs/development/libraries/freeimage/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/freetds/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/fstrm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gcab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gcr/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/2.4.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/gdk-pixbuf/default.nix50
-rw-r--r--nixpkgs/pkgs/development/libraries/gdl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gegl/4.0.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/gensio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch7
-rw-r--r--nixpkgs/pkgs/development/libraries/geoclue/default.nix80
-rw-r--r--nixpkgs/pkgs/development/libraries/geocode-glib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/geos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/getdata/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/gexiv2/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/gfbgraph/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/ghc_filesystem/default.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/giflib/libungif.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/gjs/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/glib-networking/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/glib/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/glib/link-with-coreservices.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gzbin58063 -> 65492 bytes
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/common.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/info.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/locales.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/glibmm/2.68.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/glibmm/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/gmp/6.x.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gnome-menus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/gnome-video-effects/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch6
-rw-r--r--nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/gobject-introspection/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/goffice/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/gom/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/goocanvas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/goocanvasmm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch47
-rw-r--r--nixpkgs/pkgs/development/libraries/graphene/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/grilo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/grpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gsettings-desktop-schemas/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/gsignond/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gsignond/plugins/lastfm.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gsignond/plugins/mail.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gsignond/plugins/oauth.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gsignond/plugins/sasl.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gsl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gsound/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/gspell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gssdp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-engine-bluecurve/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-frdp/default.nix54
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-sharp/2.0.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/2.x.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/3.x.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/4.x.nix69
-rw-r--r--nixpkgs/pkgs/development/libraries/gtkd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix91
-rw-r--r--nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix90
-rw-r--r--nixpkgs/pkgs/development/libraries/gtksourceview/5.x.nix99
-rw-r--r--nixpkgs/pkgs/development/libraries/gtksourceviewmm/4.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtksourceviewmm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp-av/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp-dlna/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/gvfs/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/herqq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hivex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hotpatch/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hyperscan/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/69.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/igraph/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/imlib/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/irrlicht/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/irrlicht/mac.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/itk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/json-glib/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/jsoncpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/jsonrpc-glib/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/jxrlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--nixpkgs/pkgs/development/libraries/keybinder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/keybinder3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kmsxx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kronosnet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/l-smash/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/lasem/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/lasso/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/leptonica/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/lib2geom/default.nix60
-rw-r--r--nixpkgs/pkgs/development/libraries/libAfterImage/default.nix55
-rw-r--r--nixpkgs/pkgs/development/libraries/libadwaita/default.nix67
-rw-r--r--nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libao/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libaom/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/libass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libavif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libblockdev/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libcanberra/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libccd/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/libcef/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libchamplain/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libchardet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libck/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libco-canonical/default.nix39
-rw-r--r--nixpkgs/pkgs/development/libraries/libcommuni/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcrafter/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libcryptui/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libdazzle/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libdeltachat/default.nix55
-rw-r--r--nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libepc/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libevent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libextractor/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libfaketime/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libfido2/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/libfive/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/libfixposix/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libgda/6.x.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libgda/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libgdamm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libgdata/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libgee/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libgepub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgit2-glib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgksu/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libglvnd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libgpiod/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgrss/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgsf/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libgtop/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libgudev/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/libguestfs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libguestfs/ocaml-4.12.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/libgweather/default.nix64
-rw-r--r--nixpkgs/pkgs/development/libraries/libgxps/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libhandy/0.x.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libhandy/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libheif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libical/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/libidn2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libiio/cmake-fix-libxml2-find-package.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/libiio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libimagequant/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libime/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/libjcat/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/libjwt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/liblinphone/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libmanette/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmediaart/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmikmod/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmwaw/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libndp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libnixxml/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/libnotify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libofx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libopus/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libosmium/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libow/default.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/libpeas/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libplacebo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libportal/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/libpst/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/libqtav/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/librealsense/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/librealsense/py_pybind11_no_external_download.patch39
-rw-r--r--nixpkgs/pkgs/development/libraries/librest/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/librime/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/librsvg/default.nix91
-rw-r--r--nixpkgs/pkgs/development/libraries/librttopo/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/libsecret/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libsigcxx/3.0.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/libsigcxx/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libslirp/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/libsolv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsoundio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsoup/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libspatialite/default.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/libspnav/configure-socket-path.patch47
-rw-r--r--nixpkgs/pkgs/development/libraries/libspnav/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libspotify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsvm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libtgvoip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libthreadar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libubox/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libunique/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libunity/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/libunity/fix-vala.patch44
-rw-r--r--nixpkgs/pkgs/development/libraries/libunwind/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libvdpau-va-gl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt-glib/default.nix44
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libvncserver/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libwnck/3.x.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/libwpe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/libxlsxwriter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxml2/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmlxx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libxslt/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libzapojit/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/lief/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/lime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/lirc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/lmdb/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/lmdbxx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/lucene++/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/lyra/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/malcontent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mapnik/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/matio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mauikit-filebrowsing/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/mauikit/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/md4c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mediastreamer/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/microsoft_gsl/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/mm-common/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mpfi/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/mpich/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/mpich/jsonc-test.patch62
-rw-r--r--nixpkgs/pkgs/development/libraries/mpir/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/mutest/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/mvapich/default.nix73
-rw-r--r--nixpkgs/pkgs/development/libraries/mygui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/nss/3.44.nix144
-rw-r--r--nixpkgs/pkgs/development/libraries/nss/85_security_load-3.44.patch81
-rw-r--r--nixpkgs/pkgs/development/libraries/nss/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/nv-codec-headers/10_x.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/octomap/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/ogre/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openal-soft/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/openbsm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opencl-clang/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/4.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openexr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/openfx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/openldap/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/openmpi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/openscenegraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openslide/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/openssl/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/openvdb/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/openvino/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/oracle-instantclient/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pango/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/pangolin/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/pangomm/2.48.nix65
-rw-r--r--nixpkgs/pkgs/development/libraries/pangomm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/pcaudiolib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pcl/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/pcmsolver/default.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/pcre/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/pcre2/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/physfs/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/apfel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/fastnlo_toolkit/default.nix (renamed from nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix)30
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/pythia/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/yoda/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/pico-sdk/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0.2.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch16
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch20
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch24
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/default.nix56
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix2
-rwxr-xr-xnixpkgs/pkgs/development/libraries/pipewire/update.sh24
-rw-r--r--nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/pmdk/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/polkit/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/poppler/default.nix92
-rw-r--r--nixpkgs/pkgs/development/libraries/portaudio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/portmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/presage/default.nix69
-rw-r--r--nixpkgs/pkgs/development/libraries/presage/fixed-cppunit-detection.patch46
-rw-r--r--nixpkgs/pkgs/development/libraries/proj/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/protobuf/3.15.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/protobuf/3.16.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/pslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/py3c/default.nix36
-rw-r--r--nixpkgs/pkgs/development/libraries/qca-qt5/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qca-qt5/move-project.patch17
-rw-r--r--nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qhull/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/qscintilla/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0003-qtbase-mkspecs.patch54
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch50
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch60
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/qtfeedback/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/quazip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/raft-canonical/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/rarian/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/raylib/default.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/re2/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/readline/8.1.nix (renamed from nixpkgs/pkgs/development/libraries/readline/8.0.nix)12
-rw-r--r--nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/readline/readline-8.1-patches.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rlottie/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/s2n-tls/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix52
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix66
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/benchmark/papi/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/snack/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/sofia-sip/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/spandsp/3.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/spatialite-tools/default.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/spdk/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/speech-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/speechd/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/spice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlite/sqlar.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlite/tools.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlitecpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sundials/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tachyon/darwin.patch31
-rw-r--r--nixpkgs/pkgs/development/libraries/tachyon/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/taglib-extras/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/taglib/default.nix39
-rw-r--r--nixpkgs/pkgs/development/libraries/tbb/default.nix65
-rw-r--r--nixpkgs/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch43
-rw-r--r--nixpkgs/pkgs/development/libraries/template-glib/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/tepl/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/tk/generic.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/totem-pl-parser/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker-miners/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker/default.nix36
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker/fix-docs.patch28
-rw-r--r--nixpkgs/pkgs/development/libraries/ubus/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/uci/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/ucx/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/umockdev/default.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/usrsctp/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/v8/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/vte/2.90.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/vte/default.nix45
-rw-r--r--nixpkgs/pkgs/development/libraries/waffle/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/wasilibc/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/protocols.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/webkitgtk/428774.patch86
-rw-r--r--nixpkgs/pkgs/development/libraries/webkitgtk/default.nix75
-rw-r--r--nixpkgs/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/wiiuse/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/wildmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wiredtiger/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/wlroots/0.12.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/wt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/wxSVG/default.nix45
-rw-r--r--nixpkgs/pkgs/development/libraries/xcb-imdkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/xgboost/default.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/xine-lib/default.nix85
-rw-r--r--nixpkgs/pkgs/development/libraries/xsimd/default.nix56
-rw-r--r--nixpkgs/pkgs/development/libraries/xtensor/default.nix36
-rw-r--r--nixpkgs/pkgs/development/libraries/xtl/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/zchunk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zeitgeist/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/zlib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/README.txt2
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/clwrapper/setup-hook.sh8
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix21
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/agutil.nix42
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arrows.nix31
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-environments.nix44
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-gobject-introspection.nix32
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix22
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/generic-cl.nix56
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix55
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-arguments.nix27
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix14
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix3
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt3
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix230
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/shell.nix2
-rw-r--r--nixpkgs/pkgs/development/lua-modules/overrides.nix2
-rw-r--r--nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix5
-rw-r--r--nixpkgs/pkgs/development/misc/loc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/misc/msp430/mspds/binary.nix35
-rw-r--r--nixpkgs/pkgs/development/misc/msp430/mspds/bsl430.patch51
-rw-r--r--nixpkgs/pkgs/development/misc/msp430/mspds/default.nix56
-rw-r--r--nixpkgs/pkgs/development/misc/umr/default.nix2
-rw-r--r--nixpkgs/pkgs/development/misc/yelp-tools/default.nix36
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/emulator.nix2
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/examples/shell.nix2
-rw-r--r--nixpkgs/pkgs/development/node-packages/default.nix41
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.json3
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.nix13719
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ansiterminal/default.nix31
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/atd/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/awa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bap/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bisect_ppx/default.nix21
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ca-certs-nss/default.nix55
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cairo2/default.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camlimages/4.0.nix41
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camlimages/4.1.2.nix37
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/caqti/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/carton/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/checkseum/default.nix39
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/checkseum/makefile-no-opam.patch12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix72
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix25
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix25
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/mirage.nix3
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix27
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/mirage.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/containers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cooltt/default.nix47
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix16
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/csv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/curly/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dns/certify.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dolmen/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/earlybird/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/eigen/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix3
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/extlib/1.7.7.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/fix/default.nix29
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/default.nix13
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/paf.nix49
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/unix.nix11
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix3
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix5
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/junit/alcotest.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/junit/default.nix26
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/junit/ounit.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/letsencrypt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/llvm/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/luv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix30
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/menhir/generic.nix43
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/menhir/lib.nix29
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/menhir/sdk.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocplib-endian/default.nix22
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/octavius/default.nix29
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/optint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/paf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix41
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix17
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/repr/default.nix17
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/repr/ppx.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/stdcompat/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tls/default.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tls/mirage.nix5
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/uri/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/x509/default.nix4
-rw-r--r--nixpkgs/pkgs/development/octave-modules/audio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/perl-modules/TextBibTeX-use-lib-on-aarch64.patch11
-rw-r--r--nixpkgs/pkgs/development/perl-modules/generic/default.nix6
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix7
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/build-vm.nix6
-rw-r--r--nixpkgs/pkgs/development/pharo/vm/vms.nix3
-rw-r--r--nixpkgs/pkgs/development/php-packages/apcu/default.nix11
-rw-r--r--nixpkgs/pkgs/development/php-packages/apcu_bc/default.nix12
-rw-r--r--nixpkgs/pkgs/development/php-packages/ast/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/composer/1.x.nix32
-rw-r--r--nixpkgs/pkgs/development/php-packages/composer/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/couchbase/default.nix9
-rw-r--r--nixpkgs/pkgs/development/php-packages/deployer/default.nix33
-rw-r--r--nixpkgs/pkgs/development/php-packages/igbinary/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/imagick/default.nix11
-rw-r--r--nixpkgs/pkgs/development/php-packages/mailparse/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/maxminddb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/php-packages/memcached/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/mongodb/default.nix11
-rw-r--r--nixpkgs/pkgs/development/php-packages/oci8/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/pcov/default.nix11
-rw-r--r--nixpkgs/pkgs/development/php-packages/pdlib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/php_excel/default.nix10
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpcbf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpcs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpmd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/pinba/default.nix20
-rw-r--r--nixpkgs/pkgs/development/php-packages/protobuf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/psysh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/pthreads/default.nix28
-rw-r--r--nixpkgs/pkgs/development/php-packages/rdkafka/default.nix5
-rw-r--r--nixpkgs/pkgs/development/php-packages/redis/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/smbclient/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/snuffleupagus/default.nix53
-rw-r--r--nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/swoole/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/xdebug/default.nix7
-rw-r--r--nixpkgs/pkgs/development/php-packages/yaml/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/Babel/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/FormEncode/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Markups/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/Nikola/default.nix137
-rw-r--r--nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/accuweather/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/acoustics/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/adb-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/adblock/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/adext/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/aenum/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/afdko/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-excel/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aio-georss-client/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/aio-georss-gdacs/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioambient/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioamqp/compat-pamqp-3.patch498
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioamqp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiodns/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioguardian/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp-socks/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohue/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiokafka/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiomysql/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopg/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix58
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioshelly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosignal/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosmb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioymaps/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/amply/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/amqtt/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/androidtv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/angr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/angrop/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aniso8601/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansi2html/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix79
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/base.nix78
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/collections.nix77
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/core.nix83
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/legacy.nix (renamed from nixpkgs/pkgs/development/python-modules/ansible/default.nix)4
-rw-r--r--nixpkgs/pkgs/development/python-modules/anytree/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/apipkg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apispec/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/aplpy/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/arrow/1.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/arrow/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/asciimatics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroid/1.6.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroid/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/astropy-healpix/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/astropy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asttokens/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncssh/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix38
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/audioread/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/autobahn/default.nix81
-rw-r--r--nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/automat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/autopep8/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awscrt/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-common/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-core/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-identity/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-billing/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-botservice/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-dns/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-maps/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-servicefabric/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/b2sdk/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports-zoneinfo/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_os/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_tempfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bacpypes/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/beancount/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/behave/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bellows/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bidict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bip_utils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/black/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/blist/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/blspy/default.nix58
-rw-r--r--nixpkgs/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch38
-rw-r--r--nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bpython/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/braintree/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/breezy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/brother/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/btrfs/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/worker.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/cartopy/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/castepxbin/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/catalogue/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/cbor2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cffi/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/chalice/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cheroot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/17.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chiabip158/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/chiapos/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/chiapos/dont_fetch_dependencies.patch31
-rw-r--r--nixpkgs/pkgs/development/python-modules/chiavdf/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/chiavdf/dont_fetch_dependencies.patch14
-rw-r--r--nixpkgs/pkgs/development/python-modules/cirq-core/default.nix98
-rw-r--r--nixpkgs/pkgs/development/python-modules/cirq-google/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/cirq/default.nix110
-rw-r--r--nixpkgs/pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clevercsv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-configfile/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-option-group/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-spinner/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/clldutils/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/clvm-rs/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/clvm-tools/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/clvm/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmd2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cnvkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cock/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/cocotb-bus/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/cocotb/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/colored-traceback/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/commentjson/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/4.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/connect_box/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/connexion/default.nix79
-rw-r--r--nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coqpit/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/coreapi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/coreschema/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/crate/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/croniter/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssutils/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/csvw/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/curtsies/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/cvxpy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-glm/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-image/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-ml/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/databases/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/datadog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/datasette/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/datatable/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/dawg-python/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbus/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch4
-rw-r--r--nixpkgs/pkgs/development/python-modules/debut/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/decopatch/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepdiff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepmerge/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/defusedxml/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/delorean/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/deltachat/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/dendropy/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/denonavr/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/dftfit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/diofant/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/discordpy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/distro/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-anymail/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-configurations/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-haystack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-pipeline/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-rest-auth/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangorestframework-jwt/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/dnspython/1.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/dnspython/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/dogtail/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dotmap/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/drf-jwt/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/drf-nested-routers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/duckdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dulwich/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elementpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elevate/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/elmax/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/enaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/envoy-reader/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/eve/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/evohome-async/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/exchangelib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/execnet/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/explorerscript/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastapi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastpair/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/ffmpeg-python/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/fiona/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/flametree/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-restx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/flufl/lock.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontparts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fpyutils/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/freetype-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/frozenlist/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/fsspec/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/garages-amsterdam/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/gcsfs/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/gensim/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geojson-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-client/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-generic-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/georss-wa-dfes-client/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/get-video-properties/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/ghp-import/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/glcontext/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/glymur/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpapi/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphene/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphite-web/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphql-core/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/graspologic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gst-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gtimelog/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/gym/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/ha-philipsjs/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hatasmota/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/haversine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdate/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdbscan/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hickle/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/hidapi/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hsluv/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpcore/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/humblewx/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/hupper/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/hwi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyperlink/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyppo/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/i-pi/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/i2c-tools/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/icmplib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ics/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/ignite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch39
-rw-r--r--nixpkgs/pkgs/development/python-modules/imageio/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/imap-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imapclient/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/img2pdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imgaug/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-resources/2.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/imread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/incremental/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/inflect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/injector/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/internetarchive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipdb/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipydatawidgets/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipympl/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/irc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/isbnlib/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/iso8601/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/isort/4.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/isort/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/itypes/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_stream/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jq/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch33
-rw-r--r--nixpkgs/pkgs/development/python-modules/json-logging/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonref/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonschema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonstreams/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupytext/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/jxmlease/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyring/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/fix-testsuite.patch14
-rw-r--r--nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/kmapper/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/knack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/labelbox/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/lark-parser/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldaptor/19.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/liblarch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/librosa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightgbm/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/liquidctl/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/llvmlite/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/lmdb/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/localzone/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/locationsharinglib/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/mahotas/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/mahotas/disable-impure-tests.patch76
-rw-r--r--nixpkgs/pkgs/development/python-modules/mail-parser/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/makefun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/mat2/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/matchpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/2.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg7
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg5
-rw-r--r--nixpkgs/pkgs/development/python-modules/matrix-api-async/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/mcstatus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/md-toc/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/mdformat/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/mdit-py-plugins/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/measurement/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mechanicalsoup/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/mercantile/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/meshtastic/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/midiutil/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/mido/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/minikerberos/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/minio/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/mitogen/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlrose/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlxtend/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mne-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mock-services/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/mocket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mockupdb/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/moderngl/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/monty/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/motioneye-client/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/motor/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/moviepy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mox3/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/msal/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/msldap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/multiset/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mutesync/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwoauth/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/myjwt/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch21
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/nassl/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbclassic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbdime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbval/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/ndspy/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/netdisco/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/nilearn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nmigen-boards/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nmigen-soc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nmigen/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/notify-py/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/nuitka/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/numba/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/numcodecs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/ofxparse/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/ondilo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openapi-schema-validator/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/common.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/opsdroid_get_image_size/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/oscrypto/default.nix24
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/osmnx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ovoenergy/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/2.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/parfive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/path.py/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/path.py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathy/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdoc3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/peewee/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/persim/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pglast/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgpy/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgspecial/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonemizer/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pika/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip-tools/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipx/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/plexapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pluggy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plugwise/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pomegranate/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch12
-rw-r--r--nixpkgs/pkgs/development/python-modules/portend/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/powerline-mem-segment/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/ppscore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/prettytable/1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prettytable/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/prison/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/privacyidea/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/psautohint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/psutil/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulsectl/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pur/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pure-eval/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/puremagic/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/purl/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pushbullet/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pwntools/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-canary/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-desmume/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-dmidecode/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-ubjson/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyGithub/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyaftership/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyarrow/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatmo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatspi/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybind11/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybindgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycares/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychannels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyclimacell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyclipper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycron/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycurl/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydbus/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydeconz/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydelijn/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydicom/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyezviz/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyface/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyflume/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyftdi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfuse3/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygatt/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygbm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygls/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygmt/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygobject/3.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygtfs/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygtkspellcheck/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyialarm/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyicu/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyjwt/1.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyjwt/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykdl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykeepass/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykerberos/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint-django/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/1.9.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyls-black/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylutron-caseta/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylxd/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymata-express/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymavlink/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymazda/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymeteireann/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymfy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymodbus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymorphy2/dicts-ru.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymsteams/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymumble/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynacl/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynest2d/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynetbox/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynmea2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynndescent/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynobo/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynvim/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyobihai/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyocr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopencl/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyotgw/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypiserver/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix85
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypresence/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyproj/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt-builder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrituals/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroon/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysma/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmappee/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmf/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmt/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysolr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysonos/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspnego/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/pystray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysvg-py3/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytaglib/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-black/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-console-scripts/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-django/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-html/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-ordering/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-regressions/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-repeat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-services/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/4.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/5.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytestrunner/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-binance/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-engineio/3.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-igraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-language-server/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-lz4/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch18
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-miio/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-snap7/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-socks/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-toolbox/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-velbus/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-vlc/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythonnet/default.nix62
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytmx/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytomlpp/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch-metric-learning/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/bin.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytube/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyu2f/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyusb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvcd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvesync/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvex/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvisa/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebview/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywemo/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywilight/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywizlight/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxb/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxnat/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/qcelemental/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/qcengine/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/radio_beam/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/ramlfications/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/random2/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/reproject/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/resolvelib/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/respx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/retworkx/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/rfc3339-validator/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/rich/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/ripser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/roombapy/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rtoml/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/runway-python/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3fs/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/sacn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic-routing/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix (renamed from nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix)0
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix (renamed from nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix)46
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-tda/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/seabreeze/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/segments/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/selenium/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/seqeval/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-scm/2.nix (renamed from nixpkgs/pkgs/development/python-modules/setuptools_scm/2.nix)0
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix (renamed from nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix)0
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/shap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sievelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/signedjson/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/simpleaudio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sip/4.x.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/sip/5.x.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/sip/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/sipsimple/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/skorch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-dtef/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-eventserver/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-icons/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-rust/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/slimit/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/slixmpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/smart-open/default.nix (renamed from nixpkgs/pkgs/development/python-modules/smart_open/default.nix)8
-rw-r--r--nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/smhi-pkg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snitun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/snscrape/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/soco/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/solo-python/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy-alignments/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy-pkuseg/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py68
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py10
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/legacy.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/models.json596
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/models.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-jinja/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-markdown-parser/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx/2.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx/default.nix96
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/spidev/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/srsly/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/sslyze/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/stack-data/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/staticjinja/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/stem/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/stytra/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/subliminal/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/sumo/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/sunpy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/surepy/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/syncer/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/tables/default.nix87
-rw-r--r--nixpkgs/pkgs/development/python-modules/tablib/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/tappy/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/telfhash/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch30
-rw-r--r--nixpkgs/pkgs/development/python-modules/tempora/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tenacity/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix62
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix62
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/default.nix8
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh25
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch46
-rw-r--r--nixpkgs/pkgs/development/python-modules/tern/0001-Replace-debut-with-debian-inspector.patch40
-rw-r--r--nixpkgs/pkgs/development/python-modules/tern/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/textacy/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/textdistance/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/thinc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tiledb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tilequant/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/timeago/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/tld/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/tls-parser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/token-bucket/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenizers/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchvision/bin.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/tox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tqdm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/treq/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/trollius/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/trollius/tests.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/ttp/default.nix96
-rw-r--r--nixpkgs/pkgs/development/python-modules/ttp/templates.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/twine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twitterapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/txaio/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/txgithub/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/txrequests/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/typed-settings/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/uamqp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/udatetime/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/umap-learn/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/uproot/default.nix61
-rw-r--r--nixpkgs/pkgs/development/python-modules/userpath/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvloop/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/variants/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vdf/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vispy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchdog/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchgod/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/webssh/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/whoosh/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/word2vec/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/wordfreq/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/xdg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xdot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xgboost/default.nix62
-rw-r--r--nixpkgs/pkgs/development/python-modules/xgboost/lib-path-for-python.patch38
-rw-r--r--nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xknx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmlschema/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmlsec/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/yalexs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yangson/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/yeelight/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/yfinance/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zarr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeep/default.nix90
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroconf/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/zipp/1.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zipp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zipstream/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/zulip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/r-modules/default.nix4
-rw-r--r--nixpkgs/pkgs/development/r-modules/generic-builder.nix8
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix18
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/solargraph/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/air/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix38
-rw-r--r--nixpkgs/pkgs/development/tools/ameba/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/checkov/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/codeql/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/flow/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/kcov/default.nix104
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/radare2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/svlint/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tflint/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/async-profiler/0001-Fix-darwin-build.patch27
-rw-r--r--nixpkgs/pkgs/development/tools/async-profiler/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/async/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ats-acc/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/b4/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/backblaze-b2/default.nix32
-rw-r--r--nixpkgs/pkgs/development/tools/bacon/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/bazel-watcher/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/bazelisk/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/boomerang/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/boost-build/darwin-default-toolset.patch12
-rw-r--r--nixpkgs/pkgs/development/tools/boost-build/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/buf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix78
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix34
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json213
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix67
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bmake/fix-localtime-test.patch23
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch14
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bmake/setup-hook.sh10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/conan/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/fac/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/mill/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix266
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar3/global-plugins.patch14
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix118
-rwxr-xr-xnixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap267
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar_ignore_deps.erl43
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar3/skip-plugins.patch54
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/scons/common.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/tup/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/buildkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/bunyan-rs/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/cargo-web/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/castxml/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/chit/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/clang-tools/default.nix12
-rwxr-xr-x[-rw-r--r--]nixpkgs/pkgs/development/tools/clang-tools/wrapper19
-rw-r--r--nixpkgs/pkgs/development/tools/clog-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/cloud-nuke/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix43
-rw-r--r--nixpkgs/pkgs/development/tools/clpm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cmake-language-server/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/cmake-language-server/disable-test-timeouts.patch13
-rw-r--r--nixpkgs/pkgs/development/tools/conftest/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/convco/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/cue/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/database/movine/default.nix54
-rw-r--r--nixpkgs/pkgs/development/tools/database/pgsync/Gemfile.lock4
-rw-r--r--nixpkgs/pkgs/development/tools/database/pgsync/gemset.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/database/webdis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/delve/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/devpi-client/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/devpi-server/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/diesel-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/dockle/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/doctl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix59
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/dot-http/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/dt-schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/earthly/default.nix41
-rw-r--r--nixpkgs/pkgs/development/tools/ecpdap/default.nix37
-rw-r--r--nixpkgs/pkgs/development/tools/electron/default.nix56
-rw-r--r--nixpkgs/pkgs/development/tools/electron/generic.nix4
-rwxr-xr-xnixpkgs/pkgs/development/tools/electron/print-hashes.sh7
-rw-r--r--nixpkgs/pkgs/development/tools/erlang/cuter/default.nix46
-rw-r--r--nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/esbuild/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/evans/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/f2c/default.nix32
-rw-r--r--nixpkgs/pkgs/development/tools/flatpak-builder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/flip-link/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/frugal/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/ghp-import/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/ginkgo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/gir/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/git-aggregator/default.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/git-quick-stats/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/git-series/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/glade/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/go-mockery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/go-task/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/go-toml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/go-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/godot/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch17
-rw-r--r--nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch23
-rw-r--r--nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/gosec/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/hobbes/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/ijq/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/irony-server/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/java/visualvm/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/just/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/kgt/default.nix81
-rw-r--r--nixpkgs/pkgs/development/tools/kind/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/scas/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/krankerl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kubie/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/lazygit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/luaformatter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/metals/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/act/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/autoconf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/autogen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/binutils/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccache/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccache/env-instead-of-compgen.patch18
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccls/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccls/wrapper13
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cli11/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/misc/creduce/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ctags/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ctags/unused-collision.patch246
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cvise/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/d-feet/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/misc/distcc/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/drush/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/fswatch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gdb/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/misc/global/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gob2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/common.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/jiq/default.nix31
-rw-r--r--nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/libtool/libtool2-macos11.patch32
-rw-r--r--nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/misc/mdctags/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/msitools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/opengrok/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ptags/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rtss/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sccache/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/stlink/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix57
-rw-r--r--nixpkgs/pkgs/development/tools/misc/strace/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/misc/svls/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texlab/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tockloader/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tokei/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/unused/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/mix2nix/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/nemiver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/node-webkit/nw12.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/nsis/default.nix31
-rw-r--r--nixpkgs/pkgs/development/tools/nwjs/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/1.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/2.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/open-policy-agent/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/packet-cli/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/pactorio/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/parinfer-rust/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/byacc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/flex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/re2c/default.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tsq.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json8
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json10
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/pax-rs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/picotool/default.nix31
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-from-pypi.sh (renamed from nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-wheel.sh)4
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py72
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix57
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix281
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/pqrs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/profiling/sysprof/capture.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/purescript/spago/spago.nix38
-rwxr-xr-xnixpkgs/pkgs/development/tools/purescript/spago/update.sh7
-rw-r--r--nixpkgs/pkgs/development/tools/py-spy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/pypi2nix/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/qtcreator/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/react-native-debugger/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rebazel/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rgp/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/richgo/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rnix-lsp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/roswell/default.nix38
-rw-r--r--nixpkgs/pkgs/development/tools/rq/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/rtags/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rubocop/Gemfile2
-rw-r--r--nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock32
-rw-r--r--nixpkgs/pkgs/development/tools/rubocop/default.nix18
-rw-r--r--nixpkgs/pkgs/development/tools/rubocop/gemset.nix105
-rw-r--r--nixpkgs/pkgs/development/tools/rust/bindgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-binutils/default.nix33
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/0001-dynamically-patchelf-binaries.patch56
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix56
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch10
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix46
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/probe-run/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/rust/racer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/racerd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/0001-dynamically-patchelf-binaries.patch61
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix56
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rustup/default.nix41
-rw-r--r--nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch423
-rw-r--r--nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/scenebuilder/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/skopeo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/so/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/sqsh/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/stagit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/symfony-cli/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/the-way/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/thrust/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/treefmt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/trunk/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/unity3d/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/unityhub/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/gemset.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/vala-language-server/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/vala-lint/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/vultr-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/wally-cli/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock903
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix18
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-pack/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/wrangler/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/xcbuild/platforms.nix30
-rw-r--r--nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix10
-rwxr-xr-xnixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh40
-rw-r--r--nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js4
-rw-r--r--nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock1388
-rw-r--r--nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix1298
-rw-r--r--nixpkgs/pkgs/development/tools/zls/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/zprint/default.nix49
-rw-r--r--nixpkgs/pkgs/development/web/cog/default.nix8
-rw-r--r--nixpkgs/pkgs/development/web/cypress/default.nix10
-rwxr-xr-xnixpkgs/pkgs/development/web/cypress/update.sh10
-rw-r--r--nixpkgs/pkgs/development/web/deno/default.nix15
-rw-r--r--nixpkgs/pkgs/development/web/deno/librusty_v8.nix10
-rw-r--r--nixpkgs/pkgs/development/web/flyctl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/web/insomnia/default.nix8
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/nodejs.nix1
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v12.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v14.nix8
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v15.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v16.nix4
-rw-r--r--nixpkgs/pkgs/development/web/postman/default.nix12
-rw-r--r--nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/web/valum/default.nix2
-rw-r--r--nixpkgs/pkgs/games/0ad/data.nix1
-rw-r--r--nixpkgs/pkgs/games/0ad/game.nix11
-rw-r--r--nixpkgs/pkgs/games/0ad/rootdir_env.patch39
-rw-r--r--nixpkgs/pkgs/games/0verkill/default.nix4
-rw-r--r--nixpkgs/pkgs/games/adom/default.nix4
-rw-r--r--nixpkgs/pkgs/games/alephone/default.nix6
-rw-r--r--nixpkgs/pkgs/games/alephone/infinity/default.nix4
-rw-r--r--nixpkgs/pkgs/games/amoeba/default.nix4
-rw-r--r--nixpkgs/pkgs/games/anki/bin.nix6
-rw-r--r--nixpkgs/pkgs/games/assaultcube/default.nix2
-rw-r--r--nixpkgs/pkgs/games/augustus/default.nix4
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/git.nix6
-rw-r--r--nixpkgs/pkgs/games/cbonsai/default.nix4
-rw-r--r--nixpkgs/pkgs/games/cdogs-sdl/default.nix4
-rw-r--r--nixpkgs/pkgs/games/chessx/default.nix4
-rw-r--r--nixpkgs/pkgs/games/ckan/default.nix4
-rw-r--r--nixpkgs/pkgs/games/clonehero/default.nix6
-rw-r--r--nixpkgs/pkgs/games/colobot/default.nix11
-rw-r--r--nixpkgs/pkgs/games/cutemaze/default.nix4
-rw-r--r--nixpkgs/pkgs/games/eduke32/default.nix4
-rw-r--r--nixpkgs/pkgs/games/eidolon/default.nix2
-rw-r--r--nixpkgs/pkgs/games/factorio/default.nix4
-rw-r--r--nixpkgs/pkgs/games/factorio/versions.json40
-rw-r--r--nixpkgs/pkgs/games/fheroes2/default.nix45
-rw-r--r--nixpkgs/pkgs/games/freeciv/default.nix4
-rw-r--r--nixpkgs/pkgs/games/freenukum/default.nix2
-rw-r--r--nixpkgs/pkgs/games/freeorion/default.nix72
-rw-r--r--nixpkgs/pkgs/games/freeorion/fix-paths.sh2
-rw-r--r--nixpkgs/pkgs/games/frogatto/data.nix6
-rw-r--r--nixpkgs/pkgs/games/frogatto/default.nix1
-rw-r--r--nixpkgs/pkgs/games/frogatto/engine.nix12
-rw-r--r--nixpkgs/pkgs/games/frotz/default.nix3
-rw-r--r--nixpkgs/pkgs/games/gambatte/default.nix4
-rw-r--r--nixpkgs/pkgs/games/gnuchess/default.nix4
-rw-r--r--nixpkgs/pkgs/games/gscrabble/default.nix4
-rw-r--r--nixpkgs/pkgs/games/gweled/default.nix14
-rw-r--r--nixpkgs/pkgs/games/hedgewars/default.nix6
-rw-r--r--nixpkgs/pkgs/games/iortcw/sp.nix2
-rw-r--r--nixpkgs/pkgs/games/ivan/default.nix4
-rw-r--r--nixpkgs/pkgs/games/ja2-stracciatella/default.nix2
-rw-r--r--nixpkgs/pkgs/games/liquidwar/default.nix5
-rw-r--r--nixpkgs/pkgs/games/lunar-client/default.nix4
-rw-r--r--nixpkgs/pkgs/games/megaglest/default.nix4
-rw-r--r--nixpkgs/pkgs/games/methane/default.nix70
-rw-r--r--nixpkgs/pkgs/games/mindustry/default.nix4
-rw-r--r--nixpkgs/pkgs/games/minecraft-server/default.nix6
-rw-r--r--nixpkgs/pkgs/games/minecraft/default.nix10
-rw-r--r--nixpkgs/pkgs/games/minetest/default.nix6
-rw-r--r--nixpkgs/pkgs/games/nexuiz/default.nix4
-rw-r--r--nixpkgs/pkgs/games/oh-my-git/default.nix4
-rw-r--r--nixpkgs/pkgs/games/opendune/default.nix8
-rw-r--r--nixpkgs/pkgs/games/openjk/default.nix2
-rw-r--r--nixpkgs/pkgs/games/openmw/default.nix38
-rw-r--r--nixpkgs/pkgs/games/openmw/tes3mp.nix184
-rw-r--r--nixpkgs/pkgs/games/openra/default.nix2
-rw-r--r--nixpkgs/pkgs/games/openra/packages.nix2
-rw-r--r--nixpkgs/pkgs/games/openttd/default.nix4
-rw-r--r--nixpkgs/pkgs/games/openxray/default.nix25
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/default.nix8
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/deps.nix344
-rw-r--r--nixpkgs/pkgs/games/papermc/default.nix6
-rw-r--r--nixpkgs/pkgs/games/planetaryannihilation/default.nix4
-rw-r--r--nixpkgs/pkgs/games/portmod/default.nix4
-rw-r--r--nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch25
-rw-r--r--nixpkgs/pkgs/games/privateer/default.nix44
-rw-r--r--nixpkgs/pkgs/games/quake3/quake3e/default.nix6
-rw-r--r--nixpkgs/pkgs/games/quakespasm/vulkan.nix2
-rw-r--r--nixpkgs/pkgs/games/r2mod_cli/default.nix4
-rw-r--r--nixpkgs/pkgs/games/residualvm/default.nix4
-rw-r--r--nixpkgs/pkgs/games/rpg-cli/default.nix25
-rw-r--r--nixpkgs/pkgs/games/runelite/default.nix41
-rw-r--r--nixpkgs/pkgs/games/scummvm/default.nix4
-rw-r--r--nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix6
-rw-r--r--nixpkgs/pkgs/games/shticker-book-unwritten/default.nix3
-rw-r--r--nixpkgs/pkgs/games/shticker-book-unwritten/unwrapped.nix2
-rw-r--r--nixpkgs/pkgs/games/soldat-unstable/default.nix17
-rw-r--r--nixpkgs/pkgs/games/steam-tui/default.nix45
-rw-r--r--nixpkgs/pkgs/games/steam/fhsenv.nix6
-rw-r--r--nixpkgs/pkgs/games/steam/runtime-wrapped.nix2
-rw-r--r--nixpkgs/pkgs/games/steam/runtime.nix4
-rw-r--r--nixpkgs/pkgs/games/stepmania/default.nix4
-rw-r--r--nixpkgs/pkgs/games/stockfish/default.nix8
-rw-r--r--nixpkgs/pkgs/games/super-tux-kart/default.nix46
-rw-r--r--nixpkgs/pkgs/games/system-syzygy/default.nix2
-rw-r--r--nixpkgs/pkgs/games/teeworlds/default.nix4
-rw-r--r--nixpkgs/pkgs/games/terraria-server/default.nix6
-rw-r--r--nixpkgs/pkgs/games/toppler/default.nix3
-rw-r--r--nixpkgs/pkgs/games/torus-trooper/default.nix104
-rw-r--r--nixpkgs/pkgs/games/tumiki-fighters/default.nix97
-rw-r--r--nixpkgs/pkgs/games/ultrastardx/default.nix35
-rw-r--r--nixpkgs/pkgs/games/unvanquished/default.nix191
-rw-r--r--nixpkgs/pkgs/games/vessel/default.nix4
-rw-r--r--nixpkgs/pkgs/games/warzone2100/default.nix4
-rw-r--r--nixpkgs/pkgs/games/xonotic/default.nix4
-rw-r--r--nixpkgs/pkgs/games/xsnow/default.nix28
-rw-r--r--nixpkgs/pkgs/games/zandronum/fmod.nix4
-rw-r--r--nixpkgs/pkgs/games/zod/0002-add-scaling-factor-to-source.patch161
-rw-r--r--nixpkgs/pkgs/games/zod/default.nix148
-rw-r--r--nixpkgs/pkgs/misc/apulse/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/autotiling/default.nix14
-rw-r--r--nixpkgs/pkgs/misc/deepspeech/default.nix34
-rw-r--r--nixpkgs/pkgs/misc/drivers/epson-alc1100/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix3
-rw-r--r--nixpkgs/pkgs/misc/drivers/hplip/3.18.5.nix2
-rw-r--r--nixpkgs/pkgs/misc/drivers/hplip/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/drivers/spacenavd/configure-cfgfile-path.patch63
-rw-r--r--nixpkgs/pkgs/misc/drivers/spacenavd/configure-pidfile-path.patch82
-rw-r--r--nixpkgs/pkgs/misc/drivers/spacenavd/configure-socket-path.patch118
-rw-r--r--nixpkgs/pkgs/misc/drivers/spacenavd/default.nix26
-rw-r--r--nixpkgs/pkgs/misc/emulators/atari++/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/atari800/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/attract-mode/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/caprice32/default.nix5
-rw-r--r--nixpkgs/pkgs/misc/emulators/caprice32/string.patch12
-rw-r--r--nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/cdemu/gui.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/desmume/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/emulationstation/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/epsxe/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/higan/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/kega-fusion/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/maiko/default.nix26
-rw-r--r--nixpkgs/pkgs/misc/emulators/mame/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/emulators/mednafen/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/mgba/default.nix67
-rw-r--r--nixpkgs/pkgs/misc/emulators/nestopia/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/emulators/openmsx/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/pcem/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/pcsx2/default.nix5
-rw-r--r--nixpkgs/pkgs/misc/emulators/ppsspp/default.nix18
-rw-r--r--nixpkgs/pkgs/misc/emulators/proton-caller/default.nix31
-rw-r--r--nixpkgs/pkgs/misc/emulators/punes/default.nix61
-rw-r--r--nixpkgs/pkgs/misc/emulators/reicast/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/retroarch/cores.nix33
-rw-r--r--nixpkgs/pkgs/misc/emulators/retroarch/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/emulators/retroarch/kodi-advanced-launchers.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/rpcs3/default.nix35
-rw-r--r--nixpkgs/pkgs/misc/emulators/ruffle/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/default.nix12
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix326
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/log.patch18
-rw-r--r--nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/emulators/uae/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/vbam/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/emulators/vice/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/base.nix3
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/sources.nix20
-rw-r--r--nixpkgs/pkgs/misc/emulators/yapesdl/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/yuzu/base.nix7
-rw-r--r--nixpkgs/pkgs/misc/emulators/yuzu/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/frescobaldi/default.nix12
-rw-r--r--nixpkgs/pkgs/misc/jackaudio/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/jackaudio/jack1.nix6
-rw-r--r--nixpkgs/pkgs/misc/lightspark/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/lilypond/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/logging/beats/6.x.nix13
-rw-r--r--nixpkgs/pkgs/misc/logging/beats/7.x.nix13
-rw-r--r--nixpkgs/pkgs/misc/scream-receivers/default.nix56
-rw-r--r--nixpkgs/pkgs/misc/screensavers/betterlockscreen/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/screensavers/betterlockscreen/replace-i3lock.patch6
-rw-r--r--nixpkgs/pkgs/misc/screensavers/electricsheep/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/screensavers/vlock/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/sndio/default.nix14
-rw-r--r--nixpkgs/pkgs/misc/solfege/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/t-rec/default.nix37
-rw-r--r--nixpkgs/pkgs/misc/uboot/default.nix4
-rwxr-xr-xnixpkgs/pkgs/misc/uq/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/aliases.nix11
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/default.nix17
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/generated.nix1740
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/overrides.nix40
-rwxr-xr-xnixpkgs/pkgs/misc/vim-plugins/update.py9
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names51
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/vim-utils.nix21
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/default.nix304
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix7
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/python/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/remote-ssh/default.nix12
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch11
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/wakatime/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/bsd/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix644
-rw-r--r--nixpkgs/pkgs/os-specific/bsd/netbsd/no-dynamic-linker.patch16
-rw-r--r--nixpkgs/pkgs/os-specific/bsd/setup-hook.sh (renamed from nixpkgs/pkgs/os-specific/bsd/netbsd/builder.sh)24
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/DarwinTools/sw_vers-CFPriv.patch19
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix169
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh6
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix58
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix193
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libSystem.nix78
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libcharset.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libnetwork.nix20
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libobjc.nix21
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libunwind.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/private-frameworks.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix38
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix15
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix148
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix63
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix67
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix20
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/binutils/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/cctools/port.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/darwin-stubs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix40
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/libtapi/disable-rpath.patch14
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/libtapi/native-clang-tblgen.patch21
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/maloader/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix (renamed from nixpkgs/pkgs/os-specific/darwin/apple-sdk/print-reexports/default.nix)4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/print-reexports/main.c (renamed from nixpkgs/pkgs/os-specific/darwin/apple-sdk/print-reexports/main.c)81
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/print-reexports/setup-hook.sh19
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/signing-utils/auto-sign-hook.sh20
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/signing-utils/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/signing-utils/utils.sh43
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/sigtool/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-plugins/wrapper.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-firmware/cross.patch (renamed from nixpkgs/pkgs/os-specific/linux/alsa-firmware/cross.patch)0
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-firmware/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-firmware/default.nix)0
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-lib/alsa-plugin-conf-multilib.patch (renamed from nixpkgs/pkgs/os-specific/linux/alsa-lib/alsa-plugin-conf-multilib.patch)0
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-lib/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix)0
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-oss/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-oss/default.nix)4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-plugins/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix)4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-plugins/wrapper.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-tools/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-tools/default.nix)8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-topology-conf/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix)0
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-ucm-conf/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix)0
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix (renamed from nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix)4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/anbox/kmod.nix11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/apparmor/default.nix86
-rw-r--r--nixpkgs/pkgs/os-specific/linux/apparmor/fix-rc.apparmor.functions.sh32
-rw-r--r--nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/builder.sh302
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix140
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.12-xstate-fp.patch26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-kcl_str.patch14
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-mtrr.patch27
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-preempt.patch103
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-sep_printf.patch11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch70
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.9-get_user_pages.patch28
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-get_user_pages.patch25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-page_cache_release-put_page.patch16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/patch-samples.patch26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/atop/atop.service.patch10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/atop/atopacct.service.patch7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/atop/default.nix63
-rw-r--r--nixpkgs/pkgs/os-specific/linux/atop/fix-paths.patch48
-rw-r--r--nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bcc/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/default.nix113
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/ndk-version.patch42
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bluez/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bpftool/default.nix30
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bpftools/default.nix38
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/busybox/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/catfs/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/conky/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cpufrequtils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dbus-broker/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dlm/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dpdk/default.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ena/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/eventstat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fatrace/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/sof-firmware/default.nix17
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fuse/common.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fuse/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gradm/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/greetd/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/guvcview/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hdparm/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hid-nintendo/default.nix38
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hwdata/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/i2c-tools/default.nix19
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iproute/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iputils/default.nix23
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iwd/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kbd/default.nix42
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kbd/keymaps.nix36
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kbd/search-paths.patch71
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/generate-config.pl2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/generic.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json32
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.12.nix (renamed from nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix)6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix40
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/perf.nix1
-rwxr-xr-xnixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/klibc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix23
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libselinux/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libsepol/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/logitech-udev-rules/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lsscsi/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lvm2/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lxc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/miraclecast/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mxu11x0/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/netatop/default.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/linux/netatop/fix-paths.patch11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/netatop/netatop.service.patch7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nixos-rebuild/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh62
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix55
-rw-r--r--nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_u2f/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/piper/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pktgen/configure.patch17
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pktgen/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix23
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8812au/default.nix27
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix19
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8821au/default.nix18
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix17
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl88x2bu/default.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix22
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix27
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sssd/default.nix22
-rw-r--r--nixpkgs/pkgs/os-specific/linux/swapview/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix31
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tuxedo-keyboard/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/usbutils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/usbutils/fix-paths.patch9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/veikk-linux-driver/default.nix34
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wpa_supplicant/0001-Implement-read-only-mode-for-ssids.patch130
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix56
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zfs/default.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/windows/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/windows/libgnurx/default.nix5
-rw-r--r--nixpkgs/pkgs/pkgs-lib/formats.nix26
-rw-r--r--nixpkgs/pkgs/pkgs-lib/tests/formats.nix16
-rw-r--r--nixpkgs/pkgs/servers/adguardhome/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/adminer/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/althttpd/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/asterisk/sccp/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/atlassian/confluence.nix4
-rw-r--r--nixpkgs/pkgs/servers/atlassian/jira.nix4
-rw-r--r--nixpkgs/pkgs/servers/bazarr/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/beanstalkd/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/blockbook/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/caddy/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/calibre-web/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/clickhouse/default.nix23
-rw-r--r--nixpkgs/pkgs/servers/computing/slurm/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/consul/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/corosync/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dante/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dendrite/default.nix27
-rw-r--r--nixpkgs/pkgs/servers/dex/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/dico/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/dns/bind/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/coredns/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/dns/dnsdist/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/doh-proxy-rust/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/dns/knot-dns/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/knot-resolver/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/etcd/3.4.nix6
-rw-r--r--nixpkgs/pkgs/servers/etebase/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/fcgiwrap/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/firebird/default.nix154
-rw-r--r--nixpkgs/pkgs/servers/fishnet/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/ftp/bftpd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/ftp/vsftpd/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/gemini/agate/default.nix17
-rw-r--r--nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/gerbera/default.nix128
-rw-r--r--nixpkgs/pkgs/servers/gonic/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/gotty/default.nix28
-rw-r--r--nixpkgs/pkgs/servers/heisenbridge/default.nix28
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/appdaemon.nix106
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/component-packages.nix88
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/default.nix382
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/frontend.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix8
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch12
-rw-r--r--nixpkgs/pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch88
-rw-r--r--nixpkgs/pkgs/servers/http/bozohttpd/default.nix95
-rw-r--r--nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix57
-rw-r--r--nixpkgs/pkgs/servers/http/couchdb/default.nix39
-rw-r--r--nixpkgs/pkgs/servers/http/couchdb/jsapi.patch60
-rw-r--r--nixpkgs/pkgs/servers/http/envoy/default.nix33
-rw-r--r--nixpkgs/pkgs/servers/http/gitlab-pages/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/http/jboss/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/http/jetty/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/http/lighttpd/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/http/mini-httpd/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/generic.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/quic.nix9
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/stable.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/pomerium/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/http/trafficserver/default.nix207
-rw-r--r--nixpkgs/pkgs/servers/http/unit/default.nix16
-rw-r--r--nixpkgs/pkgs/servers/hylafaxplus/default.nix19
-rw-r--r--nixpkgs/pkgs/servers/hylafaxplus/post-patch.sh7
-rw-r--r--nixpkgs/pkgs/servers/irc/inspircd/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/irc/solanum/default.nix20
-rw-r--r--nixpkgs/pkgs/servers/jackett/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/default.nix111
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/node-composition.nix17
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/node-deps.nix13659
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/nuget-deps.nix2268
-rwxr-xr-xnixpkgs/pkgs/servers/jellyfin/update.sh52
-rwxr-xr-xnixpkgs/pkgs/servers/jellyfin/web-update.sh30
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/web.nix81
-rw-r--r--nixpkgs/pkgs/servers/jetbrains/youtrack.nix6
-rw-r--r--nixpkgs/pkgs/servers/keycloak/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/ldap/389/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/lidarr/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/maddy/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mail/clamsmtp/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mail/dkimproxy/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/mail/dspam/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/mail/exim/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mail/opensmtpd/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mail/opensmtpd/filter-rspamd.nix30
-rw-r--r--nixpkgs/pkgs/servers/mail/petidomo/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/mail/popa3d/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mail/postfix/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mail/rspamd/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mail/system-sendmail/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/martin/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mastodon/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mastodon/gemset.nix742
-rw-r--r--nixpkgs/pkgs/servers/mastodon/package.json110
-rw-r--r--nixpkgs/pkgs/servers/mastodon/resolutions.patch33
-rw-r--r--nixpkgs/pkgs/servers/mastodon/source.nix4
-rw-r--r--nixpkgs/pkgs/servers/mastodon/version.nix2
-rw-r--r--nixpkgs/pkgs/servers/mastodon/version.patch2
-rw-r--r--nixpkgs/pkgs/servers/mastodon/yarn.nix2192
-rw-r--r--nixpkgs/pkgs/servers/matrix-appservice-discord/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/default.nix16
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix1800
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json2
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix6
-rwxr-xr-xnixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh6
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix1154
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix32
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/tools/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix2
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix41
-rw-r--r--nixpkgs/pkgs/servers/matterbridge/default.nix18
-rw-r--r--nixpkgs/pkgs/servers/mautrix-signal/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mbtileserver/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/mediatomb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/microserver/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/minio/default.nix40
-rw-r--r--nixpkgs/pkgs/servers/misc/airsonic/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/misc/gobgpd/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/misc/navidrome/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/do-agent/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json18
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock2114
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix1992
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana/default.nix33
-rw-r--r--nixpkgs/pkgs/servers/monitoring/icinga2/default.nix101
-rw-r--r--nixpkgs/pkgs/servers/monitoring/icinga2/etc-icinga2.patch13
-rw-r--r--nixpkgs/pkgs/servers/monitoring/icinga2/no-systemd-service.patch15
-rw-r--r--nixpkgs/pkgs/servers/monitoring/icinga2/no-var-directories.patch66
-rw-r--r--nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/mtail/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix17
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix13
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix16
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter_deps.nix390
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix33
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix11
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter.nix11
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter_deps.nix83
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix18
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter-deps.nix66
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix15
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix22
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix14
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix15
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/prom2json_deps.nix38
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix12
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter_deps.nix793
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix15
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix25
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix12
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix13
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix31
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json53
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix2952
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix10
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix31
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix5
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix8
-rw-r--r--nixpkgs/pkgs/servers/mpd/default.nix14
-rw-r--r--nixpkgs/pkgs/servers/mumsi/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mx-puppet-discord/default.nix48
-rwxr-xr-xnixpkgs/pkgs/servers/mx-puppet-discord/generate.sh21
-rw-r--r--nixpkgs/pkgs/servers/mx-puppet-discord/node-composition.nix17
-rw-r--r--nixpkgs/pkgs/servers/mx-puppet-discord/node-packages.nix3616
-rw-r--r--nixpkgs/pkgs/servers/nas/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/nextcloud/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/nosql/cassandra/generic.nix31
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb2/default.nix23
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-package.json11
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix8
-rw-r--r--nixpkgs/pkgs/servers/nosql/redis/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix3
-rw-r--r--nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/nzbhydra2/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/oauth2-proxy/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/ombi/default.nix31
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.8/module.nix10
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.9/srcs.nix6
-rw-r--r--nixpkgs/pkgs/servers/osrm-backend/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/pies/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/pinnwand/default.nix13
-rw-r--r--nixpkgs/pkgs/servers/plex/raw.nix6
-rw-r--r--nixpkgs/pkgs/servers/pr-tracker/default.nix35
-rw-r--r--nixpkgs/pkgs/servers/prayer/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/pulseaudio/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/pulseaudio/pali.nix4
-rw-r--r--nixpkgs/pkgs/servers/radarr/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/reproxy/default.nix44
-rw-r--r--nixpkgs/pkgs/servers/rippled/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/roon-server/default.nix16
-rw-r--r--nixpkgs/pkgs/servers/routinator/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/rt/default.nix183
-rw-r--r--nixpkgs/pkgs/servers/rt/dont-check-users_groups.patch12
-rw-r--r--nixpkgs/pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch569
-rw-r--r--nixpkgs/pkgs/servers/samba/4.x.nix11
-rw-r--r--nixpkgs/pkgs/servers/search/groonga/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/search/meilisearch/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/shairport-sync/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/shishi/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--nixpkgs/pkgs/servers/simple-http-server/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sonarr/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sozu/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix48
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix8
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix39
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix7
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix8
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/packages.nix9
-rw-r--r--nixpkgs/pkgs/servers/squid/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/tailscale/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/tarssh/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/tautulli/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/teleport/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/teleport/tsh.patch17
-rw-r--r--nixpkgs/pkgs/servers/ttyd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/udpt/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/unfs3/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/unifi/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/unpackerr/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/unpfs/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/ursadb/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix292
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/default.nix53
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch10
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile20
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock362
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix577
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/galene/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix44
-rw-r--r--nixpkgs/pkgs/servers/web-apps/hedgedoc/package.json168
-rw-r--r--nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.lock4415
-rw-r--r--nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.nix3932
-rw-r--r--nixpkgs/pkgs/servers/web-apps/moodle/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/plausible/default.nix92
-rw-r--r--nixpkgs/pkgs/servers/web-apps/plausible/ecto_sql-fix.patch13
-rw-r--r--nixpkgs/pkgs/servers/web-apps/plausible/package.json57
-rw-r--r--nixpkgs/pkgs/servers/web-apps/plausible/tzdata-rebased.patch21
-rwxr-xr-xnixpkgs/pkgs/servers/web-apps/plausible/update.sh67
-rw-r--r--nixpkgs/pkgs/servers/web-apps/plausible/yarn.lock7731
-rw-r--r--nixpkgs/pkgs/servers/web-apps/plausible/yarn.nix8278
-rw-r--r--nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/web-apps/wallabag/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/webmetro/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/overrides.nix6
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/xwayland.nix120
-rw-r--r--nixpkgs/pkgs/servers/xmpp/prosody/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/zoneminder/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/bash/5.1.nix6
-rw-r--r--nixpkgs/pkgs/shells/bash/undistract-me/default.nix79
-rw-r--r--nixpkgs/pkgs/shells/fish/default.nix10
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/forgit.nix6
-rw-r--r--nixpkgs/pkgs/shells/hilbish/default.nix26
-rw-r--r--nixpkgs/pkgs/shells/ion/default.nix13
-rw-r--r--nixpkgs/pkgs/shells/liquidprompt/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/nushell/default.nix17
-rw-r--r--nixpkgs/pkgs/shells/oil/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/oksh/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/powershell/default.nix20
-rw-r--r--nixpkgs/pkgs/shells/zsh/antibody/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-z/default.nix28
-rw-r--r--nixpkgs/pkgs/stdenv/cross/default.nix6
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/default.nix892
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/fixed-xnu-python3.patch41
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix144
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh52
-rw-r--r--nixpkgs/pkgs/stdenv/default.nix1
-rw-r--r--nixpkgs/pkgs/stdenv/freebsd/default.nix8
-rw-r--r--nixpkgs/pkgs/stdenv/generic/default.nix12
-rw-r--r--nixpkgs/pkgs/stdenv/generic/make-derivation.nix2
-rw-r--r--nixpkgs/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix6
-rw-r--r--nixpkgs/pkgs/stdenv/linux/bootstrap-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/stdenv/linux/default.nix18
-rw-r--r--nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools.nix15
-rw-r--r--nixpkgs/pkgs/stdenv/native/default.nix2
-rw-r--r--nixpkgs/pkgs/test/default.nix6
-rw-r--r--nixpkgs/pkgs/test/haskell/default.nix7
-rw-r--r--nixpkgs/pkgs/test/haskell/documentationTarball/default.nix (renamed from nixpkgs/pkgs/test/haskell-documentationTarball/default.nix)0
-rw-r--r--nixpkgs/pkgs/test/haskell/setBuildTarget/Bar.hs4
-rw-r--r--nixpkgs/pkgs/test/haskell/setBuildTarget/Foo.hs4
-rw-r--r--nixpkgs/pkgs/test/haskell/setBuildTarget/Setup.hs2
-rw-r--r--nixpkgs/pkgs/test/haskell/setBuildTarget/default.nix38
-rw-r--r--nixpkgs/pkgs/test/haskell/setBuildTarget/haskell-setBuildTarget.cabal16
-rw-r--r--nixpkgs/pkgs/test/haskell/shellFor/default.nix (renamed from nixpkgs/pkgs/test/haskell-shellFor/default.nix)10
-rw-r--r--nixpkgs/pkgs/test/rust-sysroot/default.nix2
-rw-r--r--nixpkgs/pkgs/test/texlive/default.nix113
-rw-r--r--nixpkgs/pkgs/test/vim/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/X11/caffeine-ng/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/X11/find-cursor/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/hsetroot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/libstrangle/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix45
-rw-r--r--nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix4
-rwxr-xr-xnixpkgs/pkgs/tools/X11/opentabletdriver/update.sh6
-rw-r--r--nixpkgs/pkgs/tools/X11/wpgtk/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/X11/xidlehook/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/X11/xpra/default.nix59
-rw-r--r--nixpkgs/pkgs/tools/X11/xpra/fix-paths.patch13
-rw-r--r--nixpkgs/pkgs/tools/X11/xpra/nvenc.pc11
-rw-r--r--nixpkgs/pkgs/tools/X11/xwallpaper/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/admin/acme.sh/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/admin/ansible/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-nuke/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-vault/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix125
-rw-r--r--nixpkgs/pkgs/tools/admin/chamber/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/admin/clair/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/credhub-cli/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/fioctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/gixy/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/gsutil-disable-updates.patch14
-rw-r--r--nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/admin/intecture/agent.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/intecture/auth.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/intecture/cli.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/lego/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/admin/oci-cli/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/admin/pebble/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/admin/procs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/data.nix178
-rwxr-xr-xnixpkgs/pkgs/tools/admin/pulumi/update.sh42
-rw-r--r--nixpkgs/pkgs/tools/admin/rset/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/admin/rset/paths.patch131
-rw-r--r--nixpkgs/pkgs/tools/admin/salt/pepper/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/simp_le/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/admin/trivy/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/archivers/bomutils/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/archivers/gnutar/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/archivers/p7zip/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/archivers/quickbms/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/archivers/xarchiver/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/archivers/zpaq/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/ffmpeg.patch26
-rw-r--r--nixpkgs/pkgs/tools/audio/alsaequal/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix62
-rw-r--r--nixpkgs/pkgs/tools/audio/botamusique/src.json8
-rw-r--r--nixpkgs/pkgs/tools/audio/darkice/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/gvolicon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/liquidsoap/full.nix10
-rw-r--r--nixpkgs/pkgs/tools/audio/mididings/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/pasystray/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/patray/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/audio/pnmixer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/qastools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/spotdl/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/audio/stt/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/audio/trx/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/tts/default.nix79
-rw-r--r--nixpkgs/pkgs/tools/audio/video2midi/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/volctl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/volumeicon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridge/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch13
-rw-r--r--nixpkgs/pkgs/tools/audio/yabridgectl/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/backup/bacula/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/borgmatic/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/backup/bupstash/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/dar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/duplicati/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/gamerbackup/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/backup/kopia/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/backup/monolith/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/backup/rdedup/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/s3ql/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/backup/sanoid/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/backup/wal-g/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/bluez-alsa/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/bootiso/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/compression/bzip2/1_1.nix2
-rw-r--r--nixpkgs/pkgs/tools/compression/flips/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/compression/imagelol/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/compression/pbzx/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/compression/xar/0001-Add-useless-descriptions-to-AC_DEFINE.patch95
-rw-r--r--nixpkgs/pkgs/tools/compression/xar/0002-Use-pkg-config-for-libxml2.patch89
-rw-r--r--nixpkgs/pkgs/tools/compression/xar/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bees/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/filesystems/blobfuse/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/filesystems/blobfuse/install-adls.patch14
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/filesystems/curlftpfs/fix-rpl_malloc.patch13
-rw-r--r--nixpkgs/pkgs/tools/filesystems/dduper/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/filesystems/irods/common.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sandboxfs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/supertag/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/ajour/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/games/amidst/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/games/gamemode/default.nix104
-rw-r--r--nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch12
-rw-r--r--nixpkgs/pkgs/tools/graphics/agi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/cfdg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/fbv/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/graphics/feedgnuplot/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/graphics/flam3/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/glee/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/glmark2/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/graphics/gmic/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/ldgallery/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/ldgallery/viewer/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/mangohud/default.nix125
-rw-r--r--nixpkgs/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch57
-rw-r--r--nixpkgs/pkgs/tools/graphics/mangohud/opengl32-nix-workaround.patch12
-rw-r--r--nixpkgs/pkgs/tools/graphics/oxipng/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/pikchr/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/pngquant/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/graphics/quirc/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/graphics/resvg/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/shotgun/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix91
-rw-r--r--nixpkgs/pkgs/tools/graphics/svgbob/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/timg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/twilight/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/vips/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/viu/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/vkBasalt/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/xcolor/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/evscript/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix15
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix7
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix6
-rwxr-xr-xnixpkgs/pkgs/tools/inputmethods/fcitx5/update.py5
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/hime/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/interception-tools/fix-udevmon-configuration-job-path.patch32
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/kime/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/android-tools/default.nix46
-rw-r--r--nixpkgs/pkgs/tools/misc/apparix/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/as-tree/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/atuin/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/bash_unit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bat-extras/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/bat/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bepasty/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/bfetch/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/bibutils/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bkyml/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/misc/blflash/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/bottom-rs/cargo-lock.patch (renamed from nixpkgs/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch)819
-rw-r--r--nixpkgs/pkgs/tools/misc/bottom-rs/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/brltty/default.nix83
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/misc/bsp-layout/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/capture/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/castty/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/chafa/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/cicero-tui/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/cloc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/code-minimap/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/cowsay/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/misc/cpulimit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/czkawka/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/dateutils/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/ddccontrol/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/debianutils/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/debootstrap/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/depotdownloader/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix88
-rw-r--r--nixpkgs/pkgs/tools/misc/dgoss/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/dijo/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/discocss/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/diskonaut/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/diskus/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/dua/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/duc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/dust/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/entr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/esphome/default.nix91
-rw-r--r--nixpkgs/pkgs/tools/misc/etcher/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/misc/ethminer/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/eva/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/fd/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/fend/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/fetchutils/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/ffsend/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/foma/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/fontfor/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/fontforge/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fortune/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/freshfetch/Cargo.lock587
-rw-r--r--nixpkgs/pkgs/tools/misc/freshfetch/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/fselect/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/fx_cast/default.nix115
-rw-r--r--nixpkgs/pkgs/tools/misc/fx_cast/node-env.nix567
-rw-r--r--nixpkgs/pkgs/tools/misc/fx_cast/node-packages.nix1706
-rw-r--r--nixpkgs/pkgs/tools/misc/fx_cast/package-lock.json1327
-rw-r--r--nixpkgs/pkgs/tools/misc/fx_cast/package.json41
-rw-r--r--nixpkgs/pkgs/tools/misc/fzf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/g933-utils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/gh-ost/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/goaccess/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/goss/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/misc/gparted/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/grex/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/gringo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/grub/2.0x.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/gwe/default.nix89
-rw-r--r--nixpkgs/pkgs/tools/misc/hacksaw/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/handlr/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/hdf5/1.10.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/heatseeker/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/heimdall/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/hexyl/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/hyperfine/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/i3nator/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/inav-blackbox-tools/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/misc/intermodal/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/ipbt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/jdupes/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/journaldriver/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/kak-lsp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/kalker/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/misc/kodi-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/krapslog/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/licensor/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/logtop/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/loop/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/lorri/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/lsd/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/ltunify/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/macchina/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/mbuffer/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/mc/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/mcfly/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/mdbtools/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/misc/me_cleaner/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/microplane/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/minipro/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/misc/mmv/default.nix55
-rw-r--r--nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mutt-wizard/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/misc/neofetch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/nix-direnv/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/misc/nvfancontrol/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/nvimpager/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/onefetch/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/otfcc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/page/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pastebinit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pazi/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/peep/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pferd/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/pgbadger/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/pistol/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/piston-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/plantuml-server/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix95
-rw-r--r--nixpkgs/pkgs/tools/misc/powerline-rs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/psw/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/qdl/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/rargs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/rename/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/rig/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/routino/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/rpi-imager/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/rw/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/sacad/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/shadowenv/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/shell-hist/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/silicon/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/skim/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/starship/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/staruml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/sutils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/swaglyrics/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/tab-rs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tagref/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tealdeer/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tensorman/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/termplay/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/timidity/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/tlp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/tmuxinator/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/togglesg-download/default.nix46
-rw-r--r--nixpkgs/pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/trash-cli/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch26
-rw-r--r--nixpkgs/pkgs/tools/misc/tremor-rs/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/tydra/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/uwuify/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/vector/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/vivid/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/void/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/vorbisgain/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/wagyu/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/websocat/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/wlc/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/misc/woeusb/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch15
-rw-r--r--nixpkgs/pkgs/tools/misc/xcd/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/xcp/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/xjobs/default.nix65
-rw-r--r--nixpkgs/pkgs/tools/misc/xprite-editor/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/xvfb-run/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/xxv/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/yafetch/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/yle-dl/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ytfzf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch8
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/misc/zellij/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/zoxide/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/zthrottle/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/networking/acme-client/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/anevicon/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/atinout/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/babeld/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/bandwhich/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/bgpq4/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/boringtun/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/networking/bukubrow/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/burpsuite/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/calendar-cli/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/networking/chaos/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/chrony/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/clash/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/corerad/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/crackle/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/test-local-relay.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch139
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch473
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/ddclient/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsmasq/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dogdns/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/drill/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/networking/fastd/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/networking/findomain/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/getmail6/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ghostunnel/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/gnirehtet/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/gobgp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/gping/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/grpcurl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/haproxy/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/httperf/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/httplz/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/inetutils/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/innernet/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/networking/ipinfo/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/isync/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/kapp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/kea/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/libreswan/default.nix146
-rw-r--r--nixpkgs/pkgs/tools/networking/lldpd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/mdk4/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/networking/minidlna/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/miniupnpd/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/modem-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/mozwire/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/mubeng/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/nebula/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/netifd/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/iodine/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/openconnect/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/strongswan/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/vpnc/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/nfstrace/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok-2/default.nix5
-rwxr-xr-xnixpkgs/pkgs/tools/networking/ngrok-2/update.sh1
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok-2/versions.json36
-rw-r--r--nixpkgs/pkgs/tools/networking/notemap/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/networking/nxdomain/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ofono/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/networking/openapi-generator-cli/example.nix31
-rw-r--r--nixpkgs/pkgs/tools/networking/openapi-generator-cli/unstable.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/openconnect/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/networking/openconnect_pa/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/common.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix61
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix57
-rw-r--r--nixpkgs/pkgs/tools/networking/phodav/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/polygraph/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/qrcp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/rshijack/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/s3rs/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/siege/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/slirp4netns/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/sniffglue/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/spiped/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/subfinder/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/networking/subfinder/deps.nix165
-rw-r--r--nixpkgs/pkgs/tools/networking/tcpreplay/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/tdns-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/telepresence2/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/networking/tinyproxy/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/networking/tnat64/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/networking/tox-node/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/tracebox/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/tunnelto/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/unbound/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/urlwatch/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/vde2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/xh/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/nix/nixdoc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-generators/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-install-tools/default.nix67
-rw-r--r--nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/auditwheel/default.nix56
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-about/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-license/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-release/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-update/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/createrepo_c/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/package-management/createrepo_c/fix-bash-completion-path.patch22
-rw-r--r--nixpkgs/pkgs/tools/package-management/createrepo_c/fix-python-install-path.patch14
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/package-management/dpkg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/emplace/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/libdnf/darwin.patch57
-rw-r--r--nixpkgs/pkgs/tools/package-management/libdnf/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/morph/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-doc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-index/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-template/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-update/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nvd/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/package-management/protontricks/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch385
-rw-r--r--nixpkgs/pkgs/tools/package-management/reuse/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/afl/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/b3sum/cargo-lock.patch513
-rw-r--r--nixpkgs/pkgs/tools/security/b3sum/default.nix18
-rwxr-xr-xnixpkgs/pkgs/tools/security/b3sum/update-cargo-lock.sh19
-rw-r--r--nixpkgs/pkgs/tools/security/bettercap/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/clevis/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/security/cosign/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/crunch/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/dnsx/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/doppler/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/eid-mw/default.nix71
-rw-r--r--nixpkgs/pkgs/tools/security/encryptr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/expliot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/exploitdb/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/security/ffuf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/fido2luks/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/gencfsm/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/security/genpass/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/gfshare/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/gitleaks/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/security/gosh/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/security/gpg-tui/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/security/grype/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/hashcat/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/hcxtools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/hologram/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/httpx/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/ipscan/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/jwt-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/kbs2/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/keybase/gui.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/kiterunner/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/security/kubei/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/security/kubesec/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/libacr38u/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/libtpms/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/lynis/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock99
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/gemset.nix184
-rw-r--r--nixpkgs/pkgs/tools/security/nbtscanner/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/security/nuclei/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/oath-toolkit/default.nix41
-rwxr-xr-xnixpkgs/pkgs/tools/security/oath-toolkit/update.sh50
-rw-r--r--nixpkgs/pkgs/tools/security/onioncircuits/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pass/extensions/checkup.nix22
-rw-r--r--nixpkgs/pkgs/tools/security/pass/extensions/import.nix20
-rw-r--r--nixpkgs/pkgs/tools/security/plasma-pass/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/security/prs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/qdigidoc/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch39
-rw-r--r--nixpkgs/pkgs/tools/security/rage/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch19
-rw-r--r--nixpkgs/pkgs/tools/security/rbw/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/security/ripasso/cursive.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/rnp/default.nix56
-rw-r--r--nixpkgs/pkgs/tools/security/rustscan/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/sammler/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/security/sequoia/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/sheesy-cli/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/security/sn0int/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/security/snowcrash/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/security/sshuttle/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/step-ca/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/step-cli/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/sudo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/tboot/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch50
-rw-r--r--nixpkgs/pkgs/tools/security/terrascan/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/tpm2-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/vault/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/vault/vault-bin.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock72
-rw-r--r--nixpkgs/pkgs/tools/security/wpscan/gemset.nix105
-rw-r--r--nixpkgs/pkgs/tools/security/yara/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/system/bottom/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/system/bpytop/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/system/facter/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/fakeroot/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/system/fancy-motd/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/system/freeipmi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/gdu/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/system/gptman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/hwinfo/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/system/kmon/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/logcheck/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/logrotate/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/mq-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix8
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch58
-rw-r--r--nixpkgs/pkgs/tools/system/nq/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/ps_mem/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/retry/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/system/safe-rm/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/system/tre-command/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/wslu/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/system/zenith/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/text/angle-grinder/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/chars/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/choose/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/chroma/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/coloursum/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/dcs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/diffr/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/diffutils/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/each/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/fastmod/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/fst/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch11
-rw-r--r--nixpkgs/pkgs/tools/text/gpt2tc/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/text/groff/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/text/gtranslator/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/text/highlight/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/hottext/default.nix100
-rw-r--r--nixpkgs/pkgs/tools/text/jumanpp/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/link-grammar/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mdcat/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/ocrmypdf/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/opencc/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/poedit/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/text/replace/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/text/ripgrep-all/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/ripgrep/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/text/ruplacer/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/sd/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/shfmt/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/snippetpixie/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/ugrep/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/text/uwc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/wrap/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/xsv/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/lowdown/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/typesetting/satysfi/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/skribilo/default.nix79
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tectonic/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/ted/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/auctex/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix48
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/video/gopro/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/video/rav1e/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/video/swftools/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/virtualization/ovftool/default.nix230
-rw-r--r--nixpkgs/pkgs/tools/virtualization/shipyard/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/wayland/wlrctl/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/wayland/wlsunset/default.nix8
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix68
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix2037
-rw-r--r--nixpkgs/pkgs/top-level/beam-packages.nix76
-rw-r--r--nixpkgs/pkgs/top-level/coq-packages.nix21
-rw-r--r--nixpkgs/pkgs/top-level/darwin-packages.nix155
-rw-r--r--nixpkgs/pkgs/top-level/dotnet-packages.nix505
-rw-r--r--nixpkgs/pkgs/top-level/emacs-packages.nix8
-rw-r--r--nixpkgs/pkgs/top-level/haskell-packages.nix8
-rw-r--r--nixpkgs/pkgs/top-level/make-tarball.nix3
-rw-r--r--nixpkgs/pkgs/top-level/ocaml-packages.nix41
-rw-r--r--nixpkgs/pkgs/top-level/perl-packages.nix291
-rw-r--r--nixpkgs/pkgs/top-level/php-packages.nix112
-rw-r--r--nixpkgs/pkgs/top-level/python-aliases.nix41
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix435
-rw-r--r--nixpkgs/pkgs/top-level/python2-packages.nix16
-rw-r--r--nixpkgs/pkgs/top-level/qt5-packages.nix19
-rw-r--r--nixpkgs/pkgs/top-level/release-haskell.nix313
-rw-r--r--nixpkgs/pkgs/top-level/release-lib.nix2
-rw-r--r--nixpkgs/pkgs/top-level/release-small.nix2
-rw-r--r--nixpkgs/pkgs/top-level/release.nix11
-rw-r--r--nixpkgs/pkgs/top-level/ruby-packages.nix187
-rw-r--r--nixpkgs/pkgs/top-level/stage.nix14
-rw-r--r--nixpkgs/pkgs/top-level/static.nix20
6262 files changed, 212638 insertions, 93999 deletions
diff --git a/nixpkgs/.github/CODEOWNERS b/nixpkgs/.github/CODEOWNERS
index fc116b32d5f3..2f5c5950cdb6 100644
--- a/nixpkgs/.github/CODEOWNERS
+++ b/nixpkgs/.github/CODEOWNERS
@@ -46,6 +46,7 @@
 /nixos/default.nix          @nbp @infinisil
 /nixos/lib/from-env.nix     @nbp @infinisil
 /nixos/lib/eval-config.nix  @nbp @infinisil
+/nixos/doc @ryantm
 /nixos/doc/manual/configuration/abstractions.xml      @nbp
 /nixos/doc/manual/configuration/config-file.xml       @nbp
 /nixos/doc/manual/configuration/config-syntax.xml     @nbp
@@ -71,19 +72,23 @@
 /pkgs/common-updater/scripts/update-source-version    @jtojnar
 
 # Python-related code and docs
-/maintainers/scripts/update-python-libraries	@FRidh
-/pkgs/top-level/python-packages.nix     @FRidh @jonringer
-/pkgs/development/interpreters/python   @FRidh
-/pkgs/development/python-modules        @FRidh @jonringer
-/doc/languages-frameworks/python.section.md     @FRidh
-/pkgs/development/tools/poetry2nix @adisbladis
+/maintainers/scripts/update-python-libraries	              @FRidh
+/pkgs/top-level/python-packages.nix                         @FRidh @jonringer
+/pkgs/development/interpreters/python                       @FRidh
+/pkgs/development/python-modules                            @FRidh @jonringer
+/doc/languages-frameworks/python.section.md                 @FRidh
+/pkgs/development/tools/poetry2nix                          @adisbladis
+/pkgs/development/interpreters/python/hooks                 @FRidh @jonringer @DavHau
+/pkgs/development/interpreters/python/conda                 @DavHau
 
 # Haskell
-/pkgs/development/compilers/ghc                       @cdepillabout @sternenseemann
-/pkgs/development/haskell-modules		      @cdepillabout @sternenseemann
-/pkgs/development/haskell-modules/default.nix	      @cdepillabout @sternenseemann
-/pkgs/development/haskell-modules/generic-builder.nix @cdepillabout @sternenseemann
-/pkgs/development/haskell-modules/hoogle.nix	      @cdepillabout @sternenseemann
+/doc/languages-frameworks/haskell.section.md  @cdepillabout @sternenseemann @maralorn
+/maintainers/scripts/haskell                  @cdepillabout @sternenseemann @maralorn
+/pkgs/development/compilers/ghc               @cdepillabout @sternenseemann @maralorn
+/pkgs/development/haskell-modules             @cdepillabout @sternenseemann @maralorn
+/pkgs/test/haskell                            @cdepillabout @sternenseemann @maralorn
+/pkgs/top-level/release-haskell.nix           @cdepillabout @sternenseemann @maralorn
+/pkgs/top-level/haskell-packages.nix          @cdepillabout @sternenseemann @maralorn
 
 # Perl
 /pkgs/development/interpreters/perl @volth @stigtsp
@@ -177,8 +182,7 @@
 /pkgs/top-level/emacs-packages.nix     @adisbladis
 
 # Neovim
-/pkgs/applications/editors/neovim      @jonringer
-/pkgs/applications/editors/neovim      @teto
+/pkgs/applications/editors/neovim      @jonringer @teto
 
 # VimPlugins
 /pkgs/misc/vim-plugins         @jonringer @softinio
@@ -192,12 +196,12 @@
 /nixos/tests/prometheus-exporters.nix                        @WilliButz
 
 # PHP interpreter, packages, extensions, tests and documentation
-/doc/languages-frameworks/php.section.md @NixOS/php
-/nixos/tests/php                         @NixOS/php
-/pkgs/build-support/build-pecl.nix       @NixOS/php
-/pkgs/development/interpreters/php       @NixOS/php
-/pkgs/development/php-packages           @NixOS/php
-/pkgs/top-level/php-packages.nix         @NixOS/php
+/doc/languages-frameworks/php.section.md          @NixOS/php @aanderse @etu @globin @ma27 @talyz
+/nixos/tests/php                                  @NixOS/php @aanderse @etu @globin @ma27 @talyz
+/pkgs/build-support/build-pecl.nix                @NixOS/php @aanderse @etu @globin @ma27 @talyz
+/pkgs/development/interpreters/php       @jtojnar @NixOS/php @aanderse @etu @globin @ma27 @talyz
+/pkgs/development/php-packages                    @NixOS/php @aanderse @etu @globin @ma27 @talyz
+/pkgs/top-level/php-packages.nix         @jtojnar @NixOS/php @aanderse @etu @globin @ma27 @talyz
 
 # Podman, CRI-O modules and related
 /nixos/modules/virtualisation/containers.nix @NixOS/podman @zowoq
diff --git a/nixpkgs/.github/CONTRIBUTING.md b/nixpkgs/.github/CONTRIBUTING.md
index bc43f80a060a..159b9f843480 100644
--- a/nixpkgs/.github/CONTRIBUTING.md
+++ b/nixpkgs/.github/CONTRIBUTING.md
@@ -59,6 +59,25 @@ Follow these steps to backport a change into a release branch in compliance with
 5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.09`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.09]`.
 6. When the backport pull request is merged and you have the necessary privileges you can also replace the label `9.needs: port to stable` with `8.has: port to stable` on the original pull request. This way maintainers can keep track of missing backports easier.
 
+## Criteria for Backporting changes
+
+Anything that does not cause user or downstream dependency regressions can be backported. This includes:
+- New Packages / Modules
+- Security / Patch updates
+- Version updates which include new functionality (but no breaking changes)
+- Services which require a client to be up-to-date regardless. (E.g. `spotify`, `steam`, or `discord`)
+- Security critical applications (E.g. `firefox`)
+
+## Generating 21.11 Release Notes
+
+Documentation in nixpkgs is transitioning to a markdown-centric workflow. Release notes now require a translation step to convert from markdown to a compatible docbook document.
+
+Steps for updating 21.11 Release notes:
+
+1. Edit `nixos/doc/manual/release-notes/rl-2111.section.md` with the desired changes
+2. Run `./nixos/doc/manual/md-to-db.sh` to render `nixos/doc/manual/from_md/release-notes/rl-2111.section.xml`
+3. Include changes to `rl-2111.section.md` and `rl-2111.section.xml` in the same commit.
+
 ## Reviewing contributions
 
 See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#chap-reviewing-contributions).
diff --git a/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md b/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
index ce630e77e940..1c4d7aa0668e 100644
--- a/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
+++ b/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
@@ -23,6 +23,8 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
 - [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
 - [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review wip"`
 - [ ] Tested execution of all binary files (usually in `./result/bin/`)
-- [ ] Determined the impact on package closure size (by running `nix path-info -S` before and after)
-- [ ] Ensured that relevant documentation is up to date
+- [21.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md#generating-2111-release-notes)
+  - [ ] (Package updates) Added a release notes entry if the change is major or breaking
+  - [ ] (Module updates) Added a release notes entry if the change is significant
+  - [ ] (Module addition) Added a release notes entry if adding a new NixOS module
 - [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).
diff --git a/nixpkgs/.github/labeler.yml b/nixpkgs/.github/labeler.yml
index 1b0392692ed8..5dd885552d62 100644
--- a/nixpkgs/.github/labeler.yml
+++ b/nixpkgs/.github/labeler.yml
@@ -36,11 +36,11 @@
 
 "6.topic: GNOME":
   - doc/languages-frameworks/gnome.section.md
-  - nixos/modules/services/desktops/gnome3/**/*
-  - nixos/modules/services/x11/desktop-managers/gnome3.nix
-  - nixos/tests/gnome3-xorg.nix
-  - nixos/tests/gnome3.nix
-  - pkgs/desktops/gnome-3/**/*
+  - nixos/modules/services/desktops/gnome/**/*
+  - nixos/modules/services/x11/desktop-managers/gnome.nix
+  - nixos/tests/gnome-xorg.nix
+  - nixos/tests/gnome.nix
+  - pkgs/desktops/gnome/**/*
 
 "6.topic: golang":
   - doc/languages-frameworks/go.section.md
@@ -50,10 +50,13 @@
 
 "6.topic: haskell":
   - doc/languages-frameworks/haskell.section.md
+  - maintainers/scripts/haskell/**/*
   - pkgs/development/compilers/ghc/**/*
   - pkgs/development/haskell-modules/**/*
   - pkgs/development/tools/haskell/**/*
+  - pkgs/test/haskell/**/*
   - pkgs/top-level/haskell-packages.nix
+  - pkgs/top-level/release-haskell.nix
 
 "6.topic: kernel":
   - pkgs/build-support/kernel/**/*
diff --git a/nixpkgs/.github/workflows/backport.yml b/nixpkgs/.github/workflows/backport.yml
new file mode 100644
index 000000000000..766b5aa831a3
--- /dev/null
+++ b/nixpkgs/.github/workflows/backport.yml
@@ -0,0 +1,23 @@
+name: Backport
+on:
+  pull_request_target:
+    types: [closed, labeled]
+jobs:
+  backport:
+    name: Backport Pull Request
+    if: github.repository_owner == 'NixOS' && github.event.pull_request.merged == true
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          # required to find all branches
+          fetch-depth: 0
+          ref: ${{ github.event.pull_request.head.sha }}
+      - name: Create backport PRs
+        # should be kept in sync with `version`
+        uses: zeebe-io/backport-action@9b8949dcd4295d364b0939f07d0c7593598d26cd
+        with:
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          github_workspace: ${{ github.workspace }}
+          # should be kept in sync with `uses`
+          version: 9b8949dcd4295d364b0939f07d0c7593598d26cd
diff --git a/nixpkgs/.github/workflows/editorconfig.yml b/nixpkgs/.github/workflows/editorconfig.yml
index c20ed3ab768d..4960e9fd3d23 100644
--- a/nixpkgs/.github/workflows/editorconfig.yml
+++ b/nixpkgs/.github/workflows/editorconfig.yml
@@ -1,7 +1,10 @@
 name: "Checking EditorConfig"
 
+permissions: read-all
+
 on:
-  pull_request:
+  # avoids approving first time contributors
+  pull_request_target:
     branches-ignore:
       - 'release-**'
 
@@ -21,17 +24,23 @@ jobs:
           >> $GITHUB_ENV
         echo 'EOF' >> $GITHUB_ENV
     - uses: actions/checkout@v2
+      with:
+        # pull_request_target checks out the base branch by default
+        ref: refs/pull/${{ github.event.pull_request.number }}/merge
       if: env.PR_DIFF
-    - name: Fetch editorconfig-checker
+    - uses: cachix/install-nix-action@v13
+      if: env.PR_DIFF
+      with:
+        # nixpkgs commit is pinned so that it doesn't break
+        nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/f93ecc4f6bc60414d8b73dbdf615ceb6a2c604df.tar.gz
+    - name: install editorconfig-checker
+      run: nix-env -iA editorconfig-checker -f '<nixpkgs>'
       if: env.PR_DIFF
-      env:
-        ECC_VERSION: "2.3.5"
-        ECC_URL: "https://github.com/editorconfig-checker/editorconfig-checker/releases/download"
-      run: |
-        curl -sSf -O -L -C - "$ECC_URL/$ECC_VERSION/ec-linux-amd64.tar.gz" && \
-        tar xzf ec-linux-amd64.tar.gz && \
-        mv ./bin/ec-linux-amd64 ./bin/editorconfig-checker
     - name: Checking EditorConfig
       if: env.PR_DIFF
       run: |
-        echo "$PR_DIFF" | xargs ./bin/editorconfig-checker -disable-indent-size
+        echo "$PR_DIFF" | xargs editorconfig-checker -disable-indent-size
+    - if: ${{ failure() }}
+      run: |
+        echo "::error :: Hey! It looks like your changes don't follow our editorconfig settings. Read https://editorconfig.org/#download to configure your editor so you never see this error again."
+
diff --git a/nixpkgs/.github/workflows/manual-nixos.yml b/nixpkgs/.github/workflows/manual-nixos.yml
index c885f6f7665c..032a456569d3 100644
--- a/nixpkgs/.github/workflows/manual-nixos.yml
+++ b/nixpkgs/.github/workflows/manual-nixos.yml
@@ -12,6 +12,7 @@ on:
 jobs:
   nixos:
     runs-on: ubuntu-latest
+    if: github.repository_owner == 'NixOS'
     steps:
       - uses: actions/checkout@v2
         with:
diff --git a/nixpkgs/.github/workflows/manual-nixpkgs.yml b/nixpkgs/.github/workflows/manual-nixpkgs.yml
index 6f7ad10efd90..77655c494e06 100644
--- a/nixpkgs/.github/workflows/manual-nixpkgs.yml
+++ b/nixpkgs/.github/workflows/manual-nixpkgs.yml
@@ -12,6 +12,7 @@ on:
 jobs:
   nixpkgs:
     runs-on: ubuntu-latest
+    if: github.repository_owner == 'NixOS'
     steps:
       - uses: actions/checkout@v2
         with:
diff --git a/nixpkgs/.github/workflows/merge-staging.yml b/nixpkgs/.github/workflows/merge-staging.yml
index 1aadef16328a..e499630a083b 100644
--- a/nixpkgs/.github/workflows/merge-staging.yml
+++ b/nixpkgs/.github/workflows/merge-staging.yml
@@ -8,12 +8,13 @@ on:
 
 jobs:
   sync-branch:
-    if: github.repository == 'NixOS/nixpkgs'
+    if: github.repository_owner == 'NixOS'
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v2
 
       - name: Merge master into staging-next
+        id: staging_next
         uses: devmasx/merge-branch@v1.3.1
         with:
           type: now
@@ -22,6 +23,7 @@ jobs:
           github_token: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Merge staging-next into staging
+        id: staging
         uses: devmasx/merge-branch@v1.3.1
         with:
           type: now
@@ -35,5 +37,5 @@ jobs:
         with:
           issue-number: 105153
           body: |
-            An automatic merge [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).
+            An automatic merge${{ (steps.staging_next.outcome == 'failure' && ' from master to staging-next') || ((steps.staging.outcome == 'failure' && ' from staging-next to staging') || '') }} [failed](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }}).
 
diff --git a/nixpkgs/.github/workflows/nixos-manual.yml b/nixpkgs/.github/workflows/nixos-manual.yml
new file mode 100644
index 000000000000..2a1c1c29738e
--- /dev/null
+++ b/nixpkgs/.github/workflows/nixos-manual.yml
@@ -0,0 +1,26 @@
+name: NixOS manual checks
+
+permissions: read-all
+
+on:
+  pull_request_target:
+    branches-ignore:
+      - 'release-**'
+    paths:
+      - 'nixos/**/*.xml'
+      - 'nixos/**/*.md'
+
+jobs:
+  tests:
+    runs-on: ubuntu-latest
+    if: github.repository_owner == 'NixOS'
+    steps:
+    - uses: actions/checkout@v2
+      with:
+        # pull_request_target checks out the base branch by default
+        ref: refs/pull/${{ github.event.pull_request.number }}/merge
+    - uses: cachix/install-nix-action@v12
+    - name: Check DocBook files generated from Markdown are consistent
+      run: |
+        nixos/doc/manual/md-to-db.sh
+        git diff --exit-code
diff --git a/nixpkgs/.github/workflows/rebase.yml b/nixpkgs/.github/workflows/rebase.yml
deleted file mode 100644
index 50d066dd754f..000000000000
--- a/nixpkgs/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,134 +0,0 @@
-on:
-  issue_comment:
-    types:
-      - created
-
-# This action allows people with write access to the repo to rebase a PRs base branch
-# by commenting `/rebase ${branch}` on the PR while avoiding CODEOWNER notifications.
-
-jobs:
-  rebase:
-    runs-on: ubuntu-latest
-    if: github.repository_owner == 'NixOS' && github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
-    steps:
-      - uses: peter-evans/create-or-update-comment@v1
-        with:
-          comment-id: ${{ github.event.comment.id }}
-          reactions: eyes
-      - uses: scherermichael-oss/action-has-permission@1.0.6
-        id: check-write-access
-        with:
-          required-permission: write
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-      - name: check permissions
-        run: |
-          echo "Commenter doesn't have write access to the repo"
-          exit 1
-        if: "! steps.check-write-access.outputs.has-permission"
-      - name: setup
-        run: |
-          curl "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.issue.number }}" 2>/dev/null >pr.json
-          cat <<EOF >>"$GITHUB_ENV"
-          CAN_MODIFY=$(jq -r '.maintainer_can_modify' pr.json)
-          COMMITS=$(jq -r '.commits' pr.json)
-          CURRENT_BASE=$(jq -r '.base.ref' pr.json)
-          PR_BRANCH=$(jq -r '.head.ref' pr.json)
-          COMMENT_BRANCH=$(echo ${{ github.event.comment.body }} | awk "/^\/rebase / {print \$2}")
-          PULL_REQUEST=${{ github.event.issue.number }}
-          EOF
-          rm pr.json
-      - name: check branch
-        env:
-          PERMANENT_BRANCHES: "haskell-updates|master|nixos|nixpkgs|python-unstable|release|staging"
-          VALID_BRANCHES: "haskell-updates|master|python-unstable|release-20.09|staging|staging-20.09|staging-next"
-        run: |
-          message() {
-            cat <<EOF
-          Can't rebase $PR_BRANCH from $CURRENT_BASE onto $COMMENT_BRANCH (PR:$PULL_REQUEST COMMITS:$COMMITS)
-          EOF
-          }
-          if ! [[ "$COMMENT_BRANCH" =~ ^($VALID_BRANCHES)$ ]]; then
-            cat <<EOF
-          Check that the branch from the comment is valid:
-
-          $(message)
-
-          This action can only rebase onto these branches:
-
-          $VALID_BRANCHES
-
-          \`/rebase \${branch}\` must be at the start of the line
-          EOF
-            exit 1
-          fi
-          if [[ "$COMMENT_BRANCH" == "$CURRENT_BASE" ]]; then
-            cat <<EOF
-          Check that the branch from the comment isn't the current base branch:
-
-          $(message)
-          EOF
-            exit 1
-          fi
-          if [[ "$COMMENT_BRANCH" == "$PR_BRANCH" ]]; then
-            cat <<EOF
-          Check that the branch from the comment isn't the current branch:
-
-          $(message)
-          EOF
-            exit 1
-          fi
-          if [[ "$PR_BRANCH" =~ ^($PERMANENT_BRANCHES) ]]; then
-            cat <<EOF
-          Check that the PR branch isn't a permanent branch:
-
-          $(message)
-          EOF
-            exit 1
-          fi
-          if [[ "$CAN_MODIFY" != "true" ]]; then
-            cat <<EOF
-          Check that maintainers can edit the PR branch:
-
-          $(message)
-          EOF
-            exit 1
-          fi
-      - uses: actions/checkout@v2
-        with:
-          fetch-depth: 0
-      - name: rebase pull request
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
-          git config --global user.name "github-actions[bot]"
-          git fetch origin
-          gh pr checkout "$PULL_REQUEST"
-          git rebase \
-            --onto="$(git merge-base origin/"$CURRENT_BASE" origin/"$COMMENT_BRANCH")" \
-            "HEAD~$COMMITS"
-          git push --force
-          curl \
-            -X POST \
-            -H "Accept: application/vnd.github.v3+json" \
-            -H "Authorization: token $GITHUB_TOKEN" \
-            -d "{ \"base\": \"$COMMENT_BRANCH\" }" \
-            "https://api.github.com/repos/${{ github.repository }}/pulls/$PULL_REQUEST"
-          curl \
-            -X PATCH \
-            -H "Accept: application/vnd.github.v3+json" \
-            -H "Authorization: token $GITHUB_TOKEN" \
-            -d '{ "state": "closed" }' \
-            "https://api.github.com/repos/${{ github.repository }}/pulls/$PULL_REQUEST"
-      - uses: peter-evans/create-or-update-comment@v1
-        with:
-          issue-number: ${{ github.event.issue.number }}
-          body: |
-            Rebased, please reopen the pull request to restart CI
-      - uses: peter-evans/create-or-update-comment@v1
-        if: failure()
-        with:
-          issue-number: ${{ github.event.issue.number }}
-          body: |
-            [Failed to rebase](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
diff --git a/nixpkgs/.version b/nixpkgs/.version
index b9b543d4254d..835ab5d1893f 100644
--- a/nixpkgs/.version
+++ b/nixpkgs/.version
@@ -1 +1 @@
-21.05
+21.11
\ No newline at end of file
diff --git a/nixpkgs/README.md b/nixpkgs/README.md
index 8f52d9150053..66025a20c4f2 100644
--- a/nixpkgs/README.md
+++ b/nixpkgs/README.md
@@ -21,10 +21,10 @@
 # Community
 
 * [Discourse Forum](https://discourse.nixos.org/)
-* [IRC - #nixos on freenode.net](irc://irc.freenode.net/#nixos)
+* [Matrix Chat](https://matrix.to/#/#community:nixos.org)
 * [NixOS Weekly](https://weekly.nixos.org/)
 * [Community-maintained wiki](https://nixos.wiki/)
-* [Community-maintained list of ways to get in touch](https://nixos.wiki/wiki/Get_In_Touch#Chat) (Discord, Matrix, Telegram, other IRC channels, etc.)
+* [Community-maintained list of ways to get in touch](https://nixos.wiki/wiki/Get_In_Touch#Chat) (Discord, Telegram, IRC, etc.)
 
 # Other Project Repositories
 
diff --git a/nixpkgs/doc/Makefile b/nixpkgs/doc/Makefile
index 7affbb0bb51c..85d09f3ddc0e 100644
--- a/nixpkgs/doc/Makefile
+++ b/nixpkgs/doc/Makefile
@@ -1,5 +1,15 @@
 MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$' -not -name README.md)))
 
+PANDOC ?= pandoc
+
+pandoc_media_dir = media
+# TODO: Remove raw-attribute when we can get rid of DocBook altogether.
+pandoc_commonmark_enabled_extensions = +attributes+fenced_divs+footnotes+bracketed_spans+definition_lists+pipe_tables+raw_attribute
+pandoc_flags = --extract-media=$(pandoc_media_dir) \
+	--lua-filter=$(PANDOC_LUA_FILTERS_DIR)/diagram-generator.lua \
+	--lua-filter=labelless-link-is-xref.lua \
+	-f commonmark$(pandoc_commonmark_enabled_extensions)+smart
+
 .PHONY: all
 all: validate format out/html/index.html out/epub/manual.epub
 
@@ -39,7 +49,7 @@ out/html/index.html: doc-support/result manual-full.xml style.css highlightjs
 	mkdir -p out/html/highlightjs/
 	cp -r highlightjs out/html/
 
-	cp -r media out/html/
+	cp -r $(pandoc_media_dir) out/html/
 	cp ./overrides.css out/html/
 	cp ./style.css out/html/style.css
 
@@ -54,7 +64,7 @@ out/epub/manual.epub: manual-full.xml
 		doc-support/result/epub.xsl \
 		./manual-full.xml
 
-	cp -r media out/epub/scratch/OEBPS
+	cp -r $(pandoc_media_dir) out/epub/scratch/OEBPS
 	cp ./overrides.css out/epub/scratch/OEBPS
 	cp ./style.css out/epub/scratch/OEBPS
 	mkdir -p out/epub/scratch/OEBPS/images/callouts/
@@ -89,16 +99,12 @@ functions/library/generated: doc-support/result
 	ln -rfs ./doc-support/result/function-docs functions/library/generated
 
 %.section.xml: %.section.md
-	pandoc $^ -t docbook \
-		--extract-media=media \
-		--lua-filter=$(PANDOC_LUA_FILTERS_DIR)/diagram-generator.lua \
-		-f markdown+smart \
+	$(PANDOC) $^ -t docbook \
+		$(pandoc_flags) \
 	| cat  > $@
 
 %.chapter.xml: %.chapter.md
-	pandoc $^ -t docbook \
+	$(PANDOC) $^ -t docbook \
 		--top-level-division=chapter \
-		--extract-media=media \
-		--lua-filter=$(PANDOC_LUA_FILTERS_DIR)/diagram-generator.lua \
-		-f markdown+smart \
+		$(pandoc_flags) \
 	| cat  > $@
diff --git a/nixpkgs/doc/builders/fetchers.chapter.md b/nixpkgs/doc/builders/fetchers.chapter.md
index c70e3020bbfa..30d065344852 100644
--- a/nixpkgs/doc/builders/fetchers.chapter.md
+++ b/nixpkgs/doc/builders/fetchers.chapter.md
@@ -20,59 +20,58 @@ The main difference between `fetchurl` and `fetchzip` is in how they store the c
 
 `fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
 
-
 Other fetcher functions allow you to add source code directly from a VCS such as subversion or git. These are mostly straightforward nambes based on the name of the command used with the VCS system. Because they give you a working repository, they act most like `fetchzip`.
 
-## `fetchsvn`
+## `fetchsvn` {#fetchsvn}
 
 Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `sha256`.
 
-## `fetchgit`
+## `fetchgit` {#fetchgit}
 
 Used with Git. Expects `url` to a Git repo, `rev`, and `sha256`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`.
 
 Additionally the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout.
 
-## `fetchfossil`
+## `fetchfossil` {#fetchfossil}
 
 Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `sha256`.
 
-## `fetchcvs`
+## `fetchcvs` {#fetchcvs}
 
 Used with CVS. Expects `cvsRoot`, `tag`, and `sha256`.
 
-## `fetchhg`
+## `fetchhg` {#fetchhg}
 
 Used with Mercurial. Expects `url`, `rev`, and `sha256`.
 
 A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below.
 
-## `fetchFromGitHub`
+## `fetchFromGitHub` {#fetchfromgithub}
 
 `fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `sha256` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `sha256` is currently preferred.
 
 `fetchFromGitHub` uses `fetchzip` to download the source archive generated by GitHub for the specified revision. If `leaveDotGit`, `deepClone` or `fetchSubmodules` are set to `true`, `fetchFromGitHub` will use `fetchgit` instead. Refer to its section for documentation of these options.
 
-## `fetchFromGitLab`
+## `fetchFromGitLab` {#fetchfromgitlab}
 
 This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
 
-## `fetchFromGitiles`
+## `fetchFromGitiles` {#fetchfromgitiles}
 
 This is used with Gitiles repositories. The arguments expected are similar to fetchgit.
 
-## `fetchFromBitbucket`
+## `fetchFromBitbucket` {#fetchfrombitbucket}
 
 This is used with BitBucket repositories. The arguments expected are very similar to fetchFromGitHub above.
 
-## `fetchFromSavannah`
+## `fetchFromSavannah` {#fetchfromsavannah}
 
 This is used with Savannah repositories. The arguments expected are very similar to fetchFromGitHub above.
 
-## `fetchFromRepoOrCz`
+## `fetchFromRepoOrCz` {#fetchfromrepoorcz}
 
 This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
 
-## `fetchFromSourcehut`
+## `fetchFromSourcehut` {#fetchfromsourcehut}
 
 This is used with sourcehut repositories. The arguments expected are very similar to fetchFromGitHub above. Don't forget the tilde (~) in front of the user name!
diff --git a/nixpkgs/doc/builders/images/appimagetools.section.md b/nixpkgs/doc/builders/images/appimagetools.section.md
index 7ab4e4e9d855..67e63dc5f61a 100644
--- a/nixpkgs/doc/builders/images/appimagetools.section.md
+++ b/nixpkgs/doc/builders/images/appimagetools.section.md
@@ -2,7 +2,7 @@
 
 `pkgs.appimageTools` is a set of functions for extracting and wrapping [AppImage](https://appimage.org/) files. They are meant to be used if traditional packaging from source is infeasible, or it would take too long. To quickly run an AppImage file, `pkgs.appimage-run` can be used as well.
 
-::: warning
+::: {.warning}
 The `appimageTools` API is unstable and may be subject to backwards-incompatible changes in the future.
 :::
 
diff --git a/nixpkgs/doc/builders/images/dockertools.section.md b/nixpkgs/doc/builders/images/dockertools.section.md
index 2d21eb1c2e07..bfe1d17a6067 100644
--- a/nixpkgs/doc/builders/images/dockertools.section.md
+++ b/nixpkgs/doc/builders/images/dockertools.section.md
@@ -1,6 +1,6 @@
 # pkgs.dockerTools {#sec-pkgs-dockerTools}
 
-`pkgs.dockerTools` is a set of functions for creating and manipulating Docker images according to the [ Docker Image Specification v1.2.0 ](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120). Docker itself is not used to perform any of the operations done by these functions.
+`pkgs.dockerTools` is a set of functions for creating and manipulating Docker images according to the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120). Docker itself is not used to perform any of the operations done by these functions.
 
 ## buildImage {#ssec-pkgs-dockerTools-buildImage}
 
@@ -52,7 +52,7 @@ The above example will build a Docker image `redis/latest` from the given base i
 
 > **_NOTE:_** Using this parameter requires the `kvm` device to be available.
 
-- `config` is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the [ Docker Image Specification v1.2.0 ](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
+- `config` is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
 
 After the new layer has been created, its closure (to which `contents`, `config` and `runAsRoot` contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied.
 
diff --git a/nixpkgs/doc/builders/images/snaptools.section.md b/nixpkgs/doc/builders/images/snaptools.section.md
index 9e1403b88285..5f710d2de7fe 100644
--- a/nixpkgs/doc/builders/images/snaptools.section.md
+++ b/nixpkgs/doc/builders/images/snaptools.section.md
@@ -14,7 +14,7 @@ Currently, `makeSnap` does not support creating GUI stubs.
 
 The following expression packages GNU Hello as a Snapcraft snap.
 
-```{#ex-snapTools-buildSnap-hello .nix}
+``` {#ex-snapTools-buildSnap-hello .nix}
 let
   inherit (import <nixpkgs> { }) snapTools hello;
 in snapTools.makeSnap {
@@ -35,7 +35,7 @@ in snapTools.makeSnap {
 
 Graphical programs require many more integrations with the host. This example uses Firefox as an example, because it is one of the most complicated programs we could package.
 
-```{#ex-snapTools-buildSnap-firefox .nix}
+``` {#ex-snapTools-buildSnap-firefox .nix}
 let
   inherit (import <nixpkgs> { }) snapTools firefox;
 in snapTools.makeSnap {
diff --git a/nixpkgs/doc/builders/packages/cataclysm-dda.section.md b/nixpkgs/doc/builders/packages/cataclysm-dda.section.md
index 0f908cb75909..bfeacb47feff 100644
--- a/nixpkgs/doc/builders/packages/cataclysm-dda.section.md
+++ b/nixpkgs/doc/builders/packages/cataclysm-dda.section.md
@@ -1,6 +1,6 @@
 # Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}
 
-## How to install Cataclysm DDA
+## How to install Cataclysm DDA {#how-to-install-cataclysm-dda}
 
 To install the latest stable release of Cataclysm DDA to your profile, execute
 `nix-env -f "<nixpkgs>" -iA cataclysm-dda`. For the curses build (build
@@ -34,7 +34,7 @@ cataclysm-dda.override {
 }
 ```
 
-## Important note for overriding packages
+## Important note for overriding packages {#important-note-for-overriding-packages}
 
 After applying `overrideAttrs`, you need to fix `passthru.pkgs` and
 `passthru.withMods` attributes either manually or by using `attachPkgs`:
@@ -69,7 +69,7 @@ in
 goodExample2.withMods (_: [])    # parallel building enabled
 ```
 
-## Customizing with mods
+## Customizing with mods {#customizing-with-mods}
 
 To install Cataclysm DDA with mods of your choice, you can use `withMods`
 attribute:
diff --git a/nixpkgs/doc/builders/packages/elm.section.md b/nixpkgs/doc/builders/packages/elm.section.md
index 53087c0e9ded..ae223c802da4 100644
--- a/nixpkgs/doc/builders/packages/elm.section.md
+++ b/nixpkgs/doc/builders/packages/elm.section.md
@@ -6,6 +6,6 @@ To start a development environment do
 nix-shell -p elmPackages.elm elmPackages.elm-format
 ```
 
-To update the Elm compiler, see <filename>nixpkgs/pkgs/development/compilers/elm/README.md</filename>.
+To update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`.
 
 To package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix).
diff --git a/nixpkgs/doc/builders/packages/firefox.section.md b/nixpkgs/doc/builders/packages/firefox.section.md
index acf31e188c3e..b7c430db232d 100644
--- a/nixpkgs/doc/builders/packages/firefox.section.md
+++ b/nixpkgs/doc/builders/packages/firefox.section.md
@@ -1,6 +1,6 @@
 # Firefox {#sec-firefox}
 
-## Build wrapped Firefox with extensions and policies
+## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}
 
 The `wrapFirefox` function allows to pass policies, preferences and extension that are available to firefox. With the help of `fetchFirefoxAddon` this allows build a firefox version that already comes with addons pre-installed:
 
diff --git a/nixpkgs/doc/builders/packages/opengl.section.md b/nixpkgs/doc/builders/packages/opengl.section.md
index 6866bf89221a..ee7f3af98cfc 100644
--- a/nixpkgs/doc/builders/packages/opengl.section.md
+++ b/nixpkgs/doc/builders/packages/opengl.section.md
@@ -4,11 +4,11 @@ OpenGL support varies depending on which hardware is used and which drivers are
 
 Broadly, we support both GL vendors: Mesa and NVIDIA.
 
-## NixOS Desktop
+## NixOS Desktop {#nixos-desktop}
 
 The NixOS desktop or other non-headless configurations are the primary target for OpenGL libraries and applications. The current solution for discovering which drivers are available is based on [libglvnd](https://gitlab.freedesktop.org/glvnd/libglvnd). `libglvnd` performs "vendor-neutral dispatch", trying a variety of techniques to find the system's GL implementation. In practice, this will be either via standard GLX for X11 users or EGL for Wayland users, and supporting either NVIDIA or Mesa extensions.
 
-## Nix on GNU/Linux
+## Nix on GNU/Linux {#nix-on-gnulinux}
 
 If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of `libglvnd` and `mesa.drivers` in `LD_LIBRARY_PATH`. For Mesa drivers, the Linux kernel version doesn't have to match nixpkgs.
 
diff --git a/nixpkgs/doc/builders/packages/steam.section.md b/nixpkgs/doc/builders/packages/steam.section.md
index e33f1192f7c0..d7bb6e69d7d9 100644
--- a/nixpkgs/doc/builders/packages/steam.section.md
+++ b/nixpkgs/doc/builders/packages/steam.section.md
@@ -20,6 +20,7 @@ Use `programs.steam.enable = true;` if you want to add steam to systemPackages a
 ## Troubleshooting {#sec-steam-troub}
 
 - **Steam fails to start. What do I do?**
+
   Try to run
 
   ```ShellSession
@@ -32,24 +33,26 @@ Use `programs.steam.enable = true;` if you want to add steam to systemPackages a
 
   - The `newStdcpp` parameter was removed since NixOS 17.09 and should not be needed anymore.
   - Steam ships statically linked with a version of libcrypto that conflics with the one dynamically loaded by radeonsi_dri.so. If you get the error
+
     ```
     steam.sh: line 713: 7842 Segmentation fault (core dumped)
     ```
+
     have a look at [this pull request](https://github.com/NixOS/nixpkgs/pull/20269).
 
 - **Java**
 
   1. There is no java in steam chrootenv by default. If you get a message like
 
-  ```
-  /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
-  ```
+    ```
+    /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
+    ```
 
-  You need to add
+    you need to add
 
-  ```nix
-  steam.override { withJava = true; };
-  ```
+    ```nix
+    steam.override { withJava = true; };
+    ```
 
 ## steam-run {#sec-steam-run}
 
@@ -57,9 +60,9 @@ The FHS-compatible chroot used for steam can also be used to run other linux gam
 
 ```nix
 pkgs.steam.override ({
-          nativeOnly = true;
-          newStdcpp = true;
-        }).run
+  nativeOnly = true;
+  newStdcpp = true;
+}).run
 ```
 
 to your configuration, rebuild, and run the game with
diff --git a/nixpkgs/doc/builders/packages/xorg.section.md b/nixpkgs/doc/builders/packages/xorg.section.md
index be220a25404a..ae885f923467 100644
--- a/nixpkgs/doc/builders/packages/xorg.section.md
+++ b/nixpkgs/doc/builders/packages/xorg.section.md
@@ -2,7 +2,7 @@
 
 The Nix expressions for the X.org packages reside in `pkgs/servers/x11/xorg/default.nix`. This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file `pkgs/servers/x11/xorg/overrides.nix`, in which you can override or add to the derivations produced by the generator.
 
-## Katamari Tarballs
+## Katamari Tarballs {#katamari-tarballs}
 
 X.org upstream releases used to include [katamari](https://en.wiktionary.org/wiki/%E3%81%8B%E3%81%9F%E3%81%BE%E3%82%8A) releases, which included a holistic recommended version for each tarball, up until 7.7. To create a list of tarballs in a katamari release:
 
@@ -14,11 +14,11 @@ cat $(PRINT_PATH=1 nix-prefetch-url $url | tail -n 1) \
   | sort > "tarballs-$release.list"
 ```
 
-## Individual Tarballs
+## Individual Tarballs {#individual-tarballs}
 
 The upstream release process for [X11R7.8](https://x.org/wiki/Releases/7.8/) does not include a planned katamari. Instead, each component of X.org is released as its own tarball. We maintain `pkgs/servers/x11/xorg/tarballs.list` as a list of tarballs for each individual package. This list includes X.org core libraries and protocol descriptions, extra newer X11 interface libraries, like `xorg.libxcb`, and classic utilities which are largely unused but still available if needed, like `xorg.imake`.
 
-## Generating Nix Expressions
+## Generating Nix Expressions {#generating-nix-expressions}
 
 The generator is invoked as follows:
 
@@ -29,6 +29,6 @@ cd pkgs/servers/x11/xorg
 
 For each of the tarballs in the `.list` files, the script downloads it, unpacks it, and searches its `configure.ac` and `*.pc.in` files for dependencies. This information is used to generate `default.nix`. The generator caches downloaded tarballs between runs. Pay close attention to the `NOT FOUND: $NAME` messages at the end of the run, since they may indicate missing dependencies. (Some might be optional dependencies, however.)
 
-## Overriding the Generator
+## Overriding the Generator {#overriding-the-generator}
 
 If the expression for a package requires derivation attributes that the generator cannot figure out automatically (say, `patches` or a `postInstall` hook), you should modify `pkgs/servers/x11/xorg/overrides.nix`.
diff --git a/nixpkgs/doc/builders/special/fhs-environments.section.md b/nixpkgs/doc/builders/special/fhs-environments.section.md
index 512a31cae0f1..146ded532404 100644
--- a/nixpkgs/doc/builders/special/fhs-environments.section.md
+++ b/nixpkgs/doc/builders/special/fhs-environments.section.md
@@ -28,7 +28,7 @@ One can create a simple environment using a `shell.nix` like that:
   name = "simple-x11-env";
   targetPkgs = pkgs: (with pkgs;
     [ udev
-      alsaLib
+      alsa-lib
     ]) ++ (with pkgs.xorg;
     [ libX11
       libXcursor
@@ -36,7 +36,7 @@ One can create a simple environment using a `shell.nix` like that:
     ]);
   multiPkgs = pkgs: (with pkgs;
     [ udev
-      alsaLib
+      alsa-lib
     ]);
   runScript = "bash";
 }).env
diff --git a/nixpkgs/doc/builders/special/mkshell.section.md b/nixpkgs/doc/builders/special/mkshell.section.md
index 1feb75cbd6f7..8a62c50e17dd 100644
--- a/nixpkgs/doc/builders/special/mkshell.section.md
+++ b/nixpkgs/doc/builders/special/mkshell.section.md
@@ -1,15 +1,17 @@
 # pkgs.mkShell {#sec-pkgs-mkShell}
 
-`pkgs.mkShell` is a special kind of derivation that is only useful when using it combined with `nix-shell`. It will in fact fail to instantiate when invoked with `nix-build`.
+`pkgs.mkShell` is a special kind of derivation that is only useful when using
+it combined with `nix-shell`. It will in fact fail to instantiate when invoked
+with `nix-build`.
 
 ## Usage {#sec-pkgs-mkShell-usage}
 
 ```nix
 { pkgs ? import <nixpkgs> {} }:
 pkgs.mkShell {
-  # this will make all the build inputs from hello and gnutar
-  # available to the shell environment
+  # specify which packages to add to the shell environment
+  packages = [ pkgs.gnumake ];
+  # add all the dependencies, of the given packages, to the shell environment
   inputsFrom = with pkgs; [ hello gnutar ];
-  buildInputs = [ pkgs.gnumake ];
 }
 ```
diff --git a/nixpkgs/doc/builders/trivial-builders.chapter.md b/nixpkgs/doc/builders/trivial-builders.chapter.md
index 32944567c053..46620e1b459c 100644
--- a/nixpkgs/doc/builders/trivial-builders.chapter.md
+++ b/nixpkgs/doc/builders/trivial-builders.chapter.md
@@ -37,7 +37,7 @@ This works just like `runCommand`. The only difference is that it also provides
 
 Variant of `runCommand` that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (<1s execution time). It saves on the network roundrip and can speed up a build.
 
-::: note
+::: {.note}
 This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g. just copying some files to a different location or adding symlinks), because there the `system` is usually the same as `builtins.currentSystem`.
 :::
 
@@ -50,3 +50,50 @@ Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `
 ## `symlinkJoin` {#trivial-builder-symlinkJoin}
 
 This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
+
+## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile}
+
+Writes the closure of transitive dependencies to a file.
+
+This produces the equivalent of `nix-store -q --requisites`.
+
+For example,
+
+```nix
+writeReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
+```
+
+produces an output path `/nix/store/<hash>-runtime-deps` containing
+
+```nix
+/nix/store/<hash>-hello-2.10
+/nix/store/<hash>-hi
+/nix/store/<hash>-libidn2-2.3.0
+/nix/store/<hash>-libunistring-0.9.10
+/nix/store/<hash>-glibc-2.32-40
+```
+
+You can see that this includes `hi`, the original input path,
+`hello`, which is a direct reference, but also
+the other paths that are indirectly required to run `hello`.
+
+## `writeDirectReferencesToFile` {#trivial-builder-writeDirectReferencesToFile}
+
+Writes the set of references to the output file, that is, their immediate dependencies.
+
+This produces the equivalent of `nix-store -q --references`.
+
+For example,
+
+```nix
+writeDirectReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
+```
+
+produces an output path `/nix/store/<hash>-runtime-references` containing
+
+```nix
+/nix/store/<hash>-hello-2.10
+```
+
+but none of `hello`'s dependencies, because those are not referenced directly
+by `hi`'s output.
diff --git a/nixpkgs/doc/contributing/coding-conventions.chapter.md b/nixpkgs/doc/contributing/coding-conventions.chapter.md
index eccf4f7436ec..e42ba512b98f 100644
--- a/nixpkgs/doc/contributing/coding-conventions.chapter.md
+++ b/nixpkgs/doc/contributing/coding-conventions.chapter.md
@@ -6,7 +6,7 @@
 
 - Do not use tab characters, i.e. configure your editor to use soft tabs. For instance, use `(setq-default indent-tabs-mode nil)` in Emacs. Everybody has different tab settings so it’s asking for trouble.
 
-- Use `lowerCamelCase` for variable names, not `UpperCamelCase`. Note, this rule does not apply to package attribute names, which instead follow the rules in <xref linkend="sec-package-naming"/>.
+- Use `lowerCamelCase` for variable names, not `UpperCamelCase`. Note, this rule does not apply to package attribute names, which instead follow the rules in [](#sec-package-naming).
 
 - Function calls with attribute set arguments are written as
 
@@ -169,9 +169,19 @@
   })
   ```
 
-- Arguments should be listed in the order they are used, with the exception of `lib`, which always goes first.
+- Unnecessary string conversions should be avoided. Do
+
+  ```nix
+  rev = version;
+  ```
+
+  instead of
 
-- Prefer using the top-level `lib` over its alias `stdenv.lib`. `lib` is unrelated to `stdenv`, and so `stdenv.lib` should only be used as a convenience alias when developing to avoid having to modify the function inputs just to test something out.
+  ```nix
+  rev = "${version}";
+  ```
+
+- Arguments should be listed in the order they are used, with the exception of `lib`, which always goes first.
 
 ## Package naming {#sec-package-naming}
 
@@ -199,7 +209,7 @@ There are a few naming guidelines:
 
 - Dashes in the package name _should_ be preserved in new variable names, rather than converted to underscores or camel cased — e.g., `http-parser` instead of `http_parser` or `httpParser`. The hyphenated style is preferred in all three package names.
 
-- If there are multiple versions of a package, this _should_ be reflected in the variable names in `all-packages.nix`, e.g. `json-c-0-9` and `json-c-0-11`. If there is an obvious “default” version, make an attribute like `json-c = json-c-0-9;`. See also <xref linkend="sec-versioning" />
+- If there are multiple versions of a package, this _should_ be reflected in the variable names in `all-packages.nix`, e.g. `json-c-0-9` and `json-c-0-11`. If there is an obvious “default” version, make an attribute like `json-c = json-c-0-9;`. See also [](#sec-versioning)
 
 ## File naming and organisation {#sec-organisation}
 
@@ -452,9 +462,9 @@ Preferred source hash type is sha256. There are several ways to get it.
 
     For package updates it is enough to change one symbol to make hash fake. For new packages, you can use `lib.fakeSha256`, `lib.fakeSha512` or any other fake hash.
 
-    This is last resort method when reconstructing source URL is non-trivial and `nix-prefetch-url -A` isn't applicable (for example, [one of `kodi` dependencies](https://github.com/NixOS/nixpkgs/blob/d2ab091dd308b99e4912b805a5eb088dd536adb9/pkgs/applications/video/kodi/default.nix#L73")). The easiest way then would be replace hash with a fake one and rebuild. Nix build will fail and error message will contain desired hash.
+    This is last resort method when reconstructing source URL is non-trivial and `nix-prefetch-url -A` isn’t applicable (for example, [one of `kodi` dependencies](https://github.com/NixOS/nixpkgs/blob/d2ab091dd308b99e4912b805a5eb088dd536adb9/pkgs/applications/video/kodi/default.nix#L73)). The easiest way then would be replace hash with a fake one and rebuild. Nix build will fail and error message will contain desired hash.
 
-::: warning
+::: {.warning}
 This method has security problems. Check below for details.
 :::
 
@@ -512,3 +522,83 @@ If you do need to do create this sort of patch file, one way to do so is with gi
     ```ShellSession
     $ git diff > nixpkgs/pkgs/the/package/0001-changes.patch
     ```
+
+If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`:
+
+- `stripLen`: Remove the first `stripLen` components of pathnames in the patch.
+- `extraPrefix`: Prefix pathnames by this string.
+- `excludes`: Exclude files matching this pattern.
+- `includes`: Include only files matching this pattern.
+- `revert`: Revert the patch.
+
+Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `sha256` argument is changed as well.
+
+## Package tests {#sec-package-tests}
+
+Tests are important to ensure quality and make reviews and automatic updates easy.
+
+Nix package tests are a lightweight alternative to [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests). They can be used to create simple integration tests for packages while the module tests are used to test services or programs with a graphical user interface on a NixOS VM. Unittests that are included in the source code of a package should be executed in the `checkPhase`.
+
+### Writing package tests {#ssec-package-tests-writing}
+
+This is an example using the `phoronix-test-suite` package with the current best practices.
+
+Add the tests in `passthru.tests` to the package definition like this:
+
+```nix
+{ stdenv, lib, fetchurl, callPackage }:
+
+stdenv.mkDerivation {
+  …
+
+  passthru.tests = {
+    simple-execution = callPackage ./tests.nix { };
+  };
+
+  meta = { … };
+}
+```
+
+Create `tests.nix` in the package directory:
+
+```nix
+{ runCommand, phoronix-test-suite }:
+
+let
+  inherit (phoronix-test-suite) pname version;
+in
+
+runCommand "${pname}-tests" { meta.timeout = 3; }
+  ''
+    # automatic initial setup to prevent interactive questions
+    ${phoronix-test-suite}/bin/phoronix-test-suite enterprise-setup >/dev/null
+    # get version of installed program and compare with package version
+    if [[ `${phoronix-test-suite}/bin/phoronix-test-suite version` != *"${version}"*  ]]; then
+      echo "Error: program version does not match package version"
+      exit 1
+    fi
+    # run dummy command
+    ${phoronix-test-suite}/bin/phoronix-test-suite dummy_module.dummy-command >/dev/null
+    # needed for Nix to register the command as successful
+    touch $out
+  ''
+```
+
+### Running package tests {#ssec-package-tests-running}
+
+You can run these tests with:
+
+```ShellSession
+$ cd path/to/nixpkgs
+$ nix-build -A phoronix-test-suite.tests
+```
+
+### Examples of package tests {#ssec-package-tests-examples}
+
+Here are examples of package tests:
+
+- [Jasmin compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/jasmin/test-assemble-hello-world/default.nix)
+- [Lobster compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/lobster/test-can-run-hello-world.nix)
+- [Spacy annotation test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/spacy/annotation-test/default.nix)
+- [Libtorch test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/science/math/libtorch/test/default.nix)
+- [Multiple tests for nanopb](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/nanopb/default.nix)
diff --git a/nixpkgs/doc/contributing/contributing-to-documentation.chapter.md b/nixpkgs/doc/contributing/contributing-to-documentation.chapter.md
index 642beba74d61..2f7ae32259c4 100644
--- a/nixpkgs/doc/contributing/contributing-to-documentation.chapter.md
+++ b/nixpkgs/doc/contributing/contributing-to-documentation.chapter.md
@@ -1,13 +1,13 @@
 # Contributing to this documentation {#chap-contributing}
 
-The DocBook sources of the Nixpkgs manual are in the [doc](https://github.com/NixOS/nixpkgs/tree/master/doc) subdirectory of the Nixpkgs repository.
+The sources of the Nixpkgs manual are in the [doc](https://github.com/NixOS/nixpkgs/tree/master/doc) subdirectory of the Nixpkgs repository. The manual is still partially written in DocBook but it is progressively being converted to [Markdown](#sec-contributing-markup).
 
 You can quickly check your edits with `make`:
 
 ```ShellSession
 $ cd /path/to/nixpkgs/doc
 $ nix-shell
-[nix-shell]$ make $makeFlags
+[nix-shell]$ make
 ```
 
 If you experience problems, run `make debug` to help understand the docbook errors.
@@ -22,3 +22,78 @@ $ nix-shell
 ```
 
 If the build succeeds, the manual will be in `./result/share/doc/nixpkgs/manual.html`.
+
+## Syntax {#sec-contributing-markup}
+
+As per [RFC 0072](https://github.com/NixOS/rfcs/pull/72), all new documentation content should be written in [CommonMark](https://commonmark.org/) Markdown dialect.
+
+Additionally, the following syntax extensions are currently used:
+
+- []{#ssec-contributing-markup-anchors}
+  Explicitly defined **anchors** on headings, to allow linking to sections. These should be always used, to ensure the anchors can be linked even when the heading text changes, and to prevent conflicts between [automatically assigned identifiers](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/auto_identifiers.md).
+
+  It uses the widely compatible [header attributes](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/attributes.md) syntax:
+
+  ```markdown
+  ## Syntax {#sec-contributing-markup}
+  ```
+
+- []{#ssec-contributing-markup-anchors-inline}
+  **Inline anchors**, which allow linking arbitrary place in the text (e.g. individual list items, sentences…).
+
+  They are defined using a hybrid of the link syntax with the attributes syntax known from headings, called [bracketed spans](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/bracketed_spans.md):
+
+  ```markdown
+  - []{#ssec-gnome-hooks-glib} `glib` setup hook will populate `GSETTINGS_SCHEMAS_PATH` and then `wrapGAppsHook` will prepend it to `XDG_DATA_DIRS`.
+  ```
+
+- []{#ssec-contributing-markup-automatic-links}
+  If you **omit a link text** for a link pointing to a section, the text will be substituted automatically. For example, `[](#chap-contributing)` will result in [](#chap-contributing).
+
+  This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing).
+
+- []{#ssec-contributing-markup-admonitions}
+  **Admonitions**, set off from the text to bring attention to something.
+
+  It uses pandoc’s [fenced `div`s syntax](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/fenced_divs.md):
+
+  ```markdown
+  ::: {.warning}
+  This is a warning
+  :::
+  ```
+
+  which renders as
+
+  > ::: {.warning}
+  > This is a warning.
+  > :::
+
+  The following are supported:
+
+    - [`caution`](https://tdg.docbook.org/tdg/5.0/caution.html)
+    - [`important`](https://tdg.docbook.org/tdg/5.0/important.html)
+    - [`note`](https://tdg.docbook.org/tdg/5.0/note.html)
+    - [`tip`](https://tdg.docbook.org/tdg/5.0/tip.html)
+    - [`warning`](https://tdg.docbook.org/tdg/5.0/warning.html)
+
+- []{#ssec-contributing-markup-definition-lists}
+  [**Definition lists**](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/definition_lists.md), for defining a group of terms:
+
+  ```markdown
+  pear
+  :   green or yellow bulbous fruit
+
+  watermelon
+  :   green fruit with red flesh
+  ```
+
+  which renders as
+
+  > pear
+  > :   green or yellow bulbous fruit
+  >
+  > watermelon
+  > :   green fruit with red flesh
+
+For contributing to the legacy parts, please see [DocBook: The Definitive Guide](https://tdg.docbook.org/) or the [DocBook rocks! primer](https://web.archive.org/web/20200816233747/https://docbook.rocks/).
diff --git a/nixpkgs/doc/contributing/quick-start.chapter.md b/nixpkgs/doc/contributing/quick-start.chapter.md
index 85c3897221ee..96b30d3822c1 100644
--- a/nixpkgs/doc/contributing/quick-start.chapter.md
+++ b/nixpkgs/doc/contributing/quick-start.chapter.md
@@ -9,7 +9,7 @@ To add a package to Nixpkgs:
    $ cd nixpkgs
    ```
 
-2. Find a good place in the Nixpkgs tree to add the Nix expression for your package. For instance, a library package typically goes into `pkgs/development/libraries/pkgname`, while a web browser goes into `pkgs/applications/networking/browsers/pkgname`. See <xref linkend="sec-organisation" /> for some hints on the tree organisation. Create a directory for your package, e.g.
+2. Find a good place in the Nixpkgs tree to add the Nix expression for your package. For instance, a library package typically goes into `pkgs/development/libraries/pkgname`, while a web browser goes into `pkgs/applications/networking/browsers/pkgname`. See [](#sec-organisation) for some hints on the tree organisation. Create a directory for your package, e.g.
 
    ```ShellSession
    $ mkdir pkgs/development/libraries/libfoo
diff --git a/nixpkgs/doc/contributing/reviewing-contributions.chapter.md b/nixpkgs/doc/contributing/reviewing-contributions.chapter.md
index 0dfe22199c64..3f3ba60947cc 100644
--- a/nixpkgs/doc/contributing/reviewing-contributions.chapter.md
+++ b/nixpkgs/doc/contributing/reviewing-contributions.chapter.md
@@ -1,6 +1,6 @@
 # Reviewing contributions {#chap-reviewing-contributions}
 
-::: warning
+::: {.warning}
 The following section is a draft, and the policy for reviewing is still being discussed in issues such as [#11166](https://github.com/NixOS/nixpkgs/issues/11166) and [#20836](https://github.com/NixOS/nixpkgs/issues/20836).
 :::
 
@@ -35,15 +35,18 @@ Reviewing process:
 - Building the package locally.
   - pull requests are often targeted to the master or staging branch, and building the pull request locally when it is submitted can trigger many source builds.
   - It is possible to rebase the changes on nixos-unstable or nixpkgs-unstable for easier review by running the following commands from a nixpkgs clone.
+
     ```ShellSession
     $ git fetch origin nixos-unstable
     $ git fetch origin pull/PRNUMBER/head
     $ git rebase --onto nixos-unstable BASEBRANCH FETCH_HEAD
     ```
+
     - The first command fetches the nixos-unstable branch.
     - The second command fetches the pull request changes, `PRNUMBER` is the number at the end of the pull request title and `BASEBRANCH` the base branch of the pull request.
     - The third command rebases the pull request changes to the nixos-unstable branch.
   - The [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) tool can be used to review a pull request content in a single command. `PRNUMBER` should be replaced by the number at the end of the pull request title. You can also provide the full github pull request url.
+
     ```ShellSession
     $ nix-shell -p nixpkgs-review --run "nixpkgs-review pr PRNUMBER"
     ```
diff --git a/nixpkgs/doc/contributing/submitting-changes.chapter.md b/nixpkgs/doc/contributing/submitting-changes.chapter.md
index e360dba5abd7..29b8ec493e7f 100644
--- a/nixpkgs/doc/contributing/submitting-changes.chapter.md
+++ b/nixpkgs/doc/contributing/submitting-changes.chapter.md
@@ -71,6 +71,7 @@ Security fixes are submitted in the same way as other changes and thus the same
 - If a new version fixing the vulnerability has been released, update the package;
 - If the security fix comes in the form of a patch and a CVE is available, then add the patch to the Nixpkgs tree, and apply it to the package.
   The name of the patch should be the CVE identifier, so e.g. `CVE-2019-13636.patch`; If a patch is fetched the name needs to be set as well, e.g.:
+
   ```nix
   (fetchpatch {
     name = "CVE-2019-11068.patch";
@@ -89,7 +90,7 @@ There is currently no policy when to remove a package.
 
 Before removing a package, one should try to find a new maintainer or fix smaller issues first.
 
-### Steps to remove a package from Nixpkgs
+### Steps to remove a package from Nixpkgs {#steps-to-remove-a-package-from-nixpkgs}
 
 We use jbidwatcher as an example for a discontinued project here.
 
@@ -100,6 +101,7 @@ We use jbidwatcher as an example for a discontinued project here.
 1. Add an alias for the package name in `pkgs/top-level/aliases.nix` (There is also `pkgs/misc/vim-plugins/aliases.nix`. Package sets typically do not have aliases, so we can't add them there.)
 
     For example in this case:
+
     ```
     jbidwatcher = throw "jbidwatcher was discontinued in march 2021"; # added 2021-03-15
     ```
@@ -238,7 +240,7 @@ The `staging` branch is a development branch where mass-rebuilds go. It should o
 
 ### Staging-next branch {#submitting-changes-staging-next-branch}
 
-The `staging-next` branch is for stabilizing mass-rebuilds submitted to the `staging` branch prior to merging them into `master`. Mass-rebuilds should go via the `staging` branch. It should only see non-breaking commits that are fixing issues blocking it from being merged into the `master ` branch.
+The `staging-next` branch is for stabilizing mass-rebuilds submitted to the `staging` branch prior to merging them into `master`. Mass-rebuilds must go via the `staging` branch. It must only see non-breaking commits that are fixing issues blocking it from being merged into the `master ` branch.
 
 If the branch is already in a broken state, please refrain from adding extra new breakages. Stabilize it for a few days and then merge into master.
 
@@ -248,6 +250,8 @@ For cherry-picking a commit to a stable release branch (“backporting”), use
 
 Add a reason for the backport by using `git cherry-pick -xe <original commit>` instead when it is not obvious from the original commit message. It is not needed when it's a minor version update that includes security and bug fixes but don't add new features or when the commit fixes an otherwise broken package.
 
+For backporting Pull Requests to stable branches, assign label `backport <branch>` to the original Pull Requests and automation should take care of the rest once the Pull Requests is merged.
+
 Here is an example of a cherry-picked commit message with good reason description:
 
 ```
@@ -265,3 +269,14 @@ Other examples of reasons are:
 - Previously the build would fail due to, e.g., `getaddrinfo` not being defined
 - The previous download links were all broken
 - Crash when starting on some X11 systems
+
+#### Acceptable backport criteria
+
+The stable branch does have some changes which cannot be backported. Most notable are breaking changes. The desire is to have stable users be uninterrupted when updating packages.
+
+However, many changes are able to be backported, including:
+- New Packages / Modules
+- Security / Patch updates
+- Version updates which include new functionality (but no breaking changes)
+- Services which require a client to be up-to-date regardless. (E.g. `spotify`, `steam`, or `discord`)
+- Security critical applications (E.g. `firefox`)
diff --git a/nixpkgs/doc/default.nix b/nixpkgs/doc/default.nix
index 25389fa2da7e..ac382ec8519c 100644
--- a/nixpkgs/doc/default.nix
+++ b/nixpkgs/doc/default.nix
@@ -17,10 +17,6 @@ in pkgs.stdenv.mkDerivation {
 
   src = lib.cleanSource ./.;
 
-  makeFlags = [
-    "PANDOC_LUA_FILTERS_DIR=${pkgs.pandoc-lua-filters}/share/pandoc/filters"
-  ];
-
   postPatch = ''
     ln -s ${doc-support} ./doc-support/result
   '';
@@ -37,4 +33,7 @@ in pkgs.stdenv.mkDerivation {
     echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products
     echo "doc manual $dest nixpkgs-manual.epub" >> $out/nix-support/hydra-build-products
   '';
+
+  # Environment variables
+  PANDOC_LUA_FILTERS_DIR = "${pkgs.pandoc-lua-filters}/share/pandoc/filters";
 }
diff --git a/nixpkgs/doc/functions.xml b/nixpkgs/doc/functions.xml
index 5a9240ec800e..dd91d705aa99 100644
--- a/nixpkgs/doc/functions.xml
+++ b/nixpkgs/doc/functions.xml
@@ -8,7 +8,7 @@
  </para>
  <xi:include href="functions/library.xml" />
  <xi:include href="functions/generators.xml" />
- <xi:include href="functions/debug.xml" />
- <xi:include href="functions/prefer-remote-fetch.xml" />
- <xi:include href="functions/nix-gitignore.xml" />
+ <xi:include href="functions/debug.section.xml" />
+ <xi:include href="functions/prefer-remote-fetch.section.xml" />
+ <xi:include href="functions/nix-gitignore.section.xml" />
 </chapter>
diff --git a/nixpkgs/doc/functions/debug.section.md b/nixpkgs/doc/functions/debug.section.md
new file mode 100644
index 000000000000..b2d8589431ab
--- /dev/null
+++ b/nixpkgs/doc/functions/debug.section.md
@@ -0,0 +1,5 @@
+# Debugging Nix Expressions {#sec-debug}
+
+Nix is a unityped, dynamic language, this means every value can potentially appear anywhere. Since it is also non-strict, evaluation order and what ultimately is evaluated might surprise you. Therefore it is important to be able to debug nix expressions.
+
+In the `lib/debug.nix` file you will find a number of functions that help (pretty-)printing values while evaluation is running. You can even specify how deep these values should be printed recursively, and transform them on the fly. Please consult the docstrings in `lib/debug.nix` for usage information.
diff --git a/nixpkgs/doc/functions/debug.xml b/nixpkgs/doc/functions/debug.xml
deleted file mode 100644
index c27421f12e76..000000000000
--- a/nixpkgs/doc/functions/debug.xml
+++ /dev/null
@@ -1,14 +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"
-         xml:id="sec-debug">
- <title>Debugging Nix Expressions</title>
-
- <para>
-  Nix is a unityped, dynamic language, this means every value can potentially appear anywhere. Since it is also non-strict, evaluation order and what ultimately is evaluated might surprise you. Therefore it is important to be able to debug nix expressions.
- </para>
-
- <para>
-  In the <literal>lib/debug.nix</literal> file you will find a number of functions that help (pretty-)printing values while evaluation is runnnig. You can even specify how deep these values should be printed recursively, and transform them on the fly. Please consult the docstrings in <literal>lib/debug.nix</literal> for usage information.
- </para>
-</section>
diff --git a/nixpkgs/doc/functions/library/attrsets.xml b/nixpkgs/doc/functions/library/attrsets.xml
index de8414249abf..ef132514da11 100644
--- a/nixpkgs/doc/functions/library/attrsets.xml
+++ b/nixpkgs/doc/functions/library/attrsets.xml
@@ -166,7 +166,7 @@ lib.attrsets.setAttrByPath [ "a" "b" ] 3
   <xi:include href="./locations.xml" xpointer="lib.attrsets.getAttrFromPath" />
 
   <para>
-   Like <xref linkend="function-library-lib.attrsets.attrByPath" /> except without a default, and it will throw if the value doesn't exist.
+   Like [](#function-library-lib.attrsets.attrByPath) except without a default, and it will throw if the value doesn't exist.
   </para>
 
   <variablelist>
@@ -855,7 +855,7 @@ lib.attrsets.mapAttrs' (name: value: lib.attrsets.nameValuePair ("foo_" + name)
   <title><function>lib.attrsets.mapAttrsToList</function></title>
 
   <subtitle><literal>mapAttrsToList :: (String -> Any -> Any) ->
-   AttrSet -> Any</literal>
+   AttrSet -> [Any]</literal>
   </subtitle>
 
   <xi:include href="./locations.xml" xpointer="lib.attrsets.mapAttrsToList" />
@@ -1480,7 +1480,7 @@ lib.attrsets.zipAttrsWith
   <xi:include href="./locations.xml" xpointer="lib.attrsets.zipAttrs" />
 
   <para>
-   Merge sets of attributes and combine each attribute value in to a list. Similar to <xref linkend="function-library-lib.attrsets.zipAttrsWith" /> where the merge function returns a list of all values.
+   Merge sets of attributes and combine each attribute value in to a list. Similar to [](#function-library-lib.attrsets.zipAttrsWith) where the merge function returns a list of all values.
   </para>
 
   <variablelist>
diff --git a/nixpkgs/doc/functions/nix-gitignore.section.md b/nixpkgs/doc/functions/nix-gitignore.section.md
new file mode 100644
index 000000000000..2fb833b23000
--- /dev/null
+++ b/nixpkgs/doc/functions/nix-gitignore.section.md
@@ -0,0 +1,49 @@
+# pkgs.nix-gitignore {#sec-pkgs-nix-gitignore}
+
+`pkgs.nix-gitignore` is a function that acts similarly to `builtins.filterSource` but also allows filtering with the help of the gitignore format.
+
+## Usage {#sec-pkgs-nix-gitignore-usage}
+
+`pkgs.nix-gitignore` exports a number of functions, but you\'ll most likely need either `gitignoreSource` or `gitignoreSourcePure`. As their first argument, they both accept either 1. a file with gitignore lines or 2. a string with gitignore lines, or 3. a list of either of the two. They will be concatenated into a single big string.
+
+```nix
+{ pkgs ? import <nixpkgs> {} }:
+
+ nix-gitignore.gitignoreSource [] ./source
+     # Simplest version
+
+ nix-gitignore.gitignoreSource "supplemental-ignores\n" ./source
+     # This one reads the ./source/.gitignore and concats the auxiliary ignores
+
+ nix-gitignore.gitignoreSourcePure "ignore-this\nignore-that\n" ./source
+     # Use this string as gitignore, don't read ./source/.gitignore.
+
+ nix-gitignore.gitignoreSourcePure ["ignore-this\nignore-that\n", ~/.gitignore] ./source
+     # It also accepts a list (of strings and paths) that will be concatenated
+     # once the paths are turned to strings via readFile.
+```
+
+These functions are derived from the `Filter` functions by setting the first filter argument to `(_: _: true)`:
+
+```nix
+gitignoreSourcePure = gitignoreFilterSourcePure (_: _: true);
+gitignoreSource = gitignoreFilterSource (_: _: true);
+```
+
+Those filter functions accept the same arguments the `builtins.filterSource` function would pass to its filters, thus `fn: gitignoreFilterSourcePure fn ""` should be extensionally equivalent to `filterSource`. The file is blacklisted if it\'s blacklisted by either your filter or the gitignoreFilter.
+
+If you want to make your own filter from scratch, you may use
+
+```nix
+gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
+```
+
+## gitignore files in subdirectories {#sec-pkgs-nix-gitignore-usage-recursive}
+
+If you wish to use a filter that would search for .gitignore files in subdirectories, just like git does by default, use this function:
+
+```nix
+gitignoreFilterRecursiveSource = filter: patterns: root:
+# OR
+gitignoreRecursiveSource = gitignoreFilterSourcePure (_: _: true);
+```
diff --git a/nixpkgs/doc/functions/nix-gitignore.xml b/nixpkgs/doc/functions/nix-gitignore.xml
deleted file mode 100644
index 37a82b196ccf..000000000000
--- a/nixpkgs/doc/functions/nix-gitignore.xml
+++ /dev/null
@@ -1,70 +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"
-         xml:id="sec-pkgs-nix-gitignore">
- <title>pkgs.nix-gitignore</title>
-
- <para>
-  <function>pkgs.nix-gitignore</function> is a function that acts similarly to <literal>builtins.filterSource</literal> but also allows filtering with the help of the gitignore format.
- </para>
-
- <section xml:id="sec-pkgs-nix-gitignore-usage">
-  <title>Usage</title>
-
-  <para>
-   <literal>pkgs.nix-gitignore</literal> exports a number of functions, but you'll most likely need either <literal>gitignoreSource</literal> or <literal>gitignoreSourcePure</literal>. As their first argument, they both accept either 1. a file with gitignore lines or 2. a string with gitignore lines, or 3. a list of either of the two. They will be concatenated into a single big string.
-  </para>
-
-<programlisting><![CDATA[
-{ pkgs ? import <nixpkgs> {} }:
-
- nix-gitignore.gitignoreSource [] ./source
-     # Simplest version
-
- nix-gitignore.gitignoreSource "supplemental-ignores\n" ./source
-     # This one reads the ./source/.gitignore and concats the auxiliary ignores
-
- nix-gitignore.gitignoreSourcePure "ignore-this\nignore-that\n" ./source
-     # Use this string as gitignore, don't read ./source/.gitignore.
-
- nix-gitignore.gitignoreSourcePure ["ignore-this\nignore-that\n", ~/.gitignore] ./source
-     # It also accepts a list (of strings and paths) that will be concatenated
-     # once the paths are turned to strings via readFile.
-  ]]></programlisting>
-
-  <para>
-   These functions are derived from the <literal>Filter</literal> functions by setting the first filter argument to <literal>(_: _: true)</literal>:
-  </para>
-
-<programlisting><![CDATA[
-gitignoreSourcePure = gitignoreFilterSourcePure (_: _: true);
-gitignoreSource = gitignoreFilterSource (_: _: true);
-  ]]></programlisting>
-
-  <para>
-   Those filter functions accept the same arguments the <literal>builtins.filterSource</literal> function would pass to its filters, thus <literal>fn: gitignoreFilterSourcePure fn ""</literal> should be extensionally equivalent to <literal>filterSource</literal>. The file is blacklisted iff it's blacklisted by either your filter or the gitignoreFilter.
-  </para>
-
-  <para>
-   If you want to make your own filter from scratch, you may use
-  </para>
-
-<programlisting><![CDATA[
-gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
-  ]]></programlisting>
- </section>
-
- <section xml:id="sec-pkgs-nix-gitignore-usage-recursive">
-  <title>gitignore files in subdirectories</title>
-
-  <para>
-   If you wish to use a filter that would search for .gitignore files in subdirectories, just like git does by default, use this function:
-  </para>
-
-<programlisting><![CDATA[
-gitignoreFilterRecursiveSource = filter: patterns: root:
-# OR
-gitignoreRecursiveSource = gitignoreFilterSourcePure (_: _: true);
-  ]]></programlisting>
- </section>
-</section>
diff --git a/nixpkgs/doc/functions/prefer-remote-fetch.section.md b/nixpkgs/doc/functions/prefer-remote-fetch.section.md
new file mode 100644
index 000000000000..8760c100224a
--- /dev/null
+++ b/nixpkgs/doc/functions/prefer-remote-fetch.section.md
@@ -0,0 +1,17 @@
+# prefer-remote-fetch overlay {#sec-prefer-remote-fetch}
+
+`prefer-remote-fetch` is an overlay that download sources on remote builder. This is useful when the evaluating machine has a slow upload while the builder can fetch faster directly from the source. To use it, put the following snippet as a new overlay:
+
+```nix
+self: super:
+  (super.prefer-remote-fetch self super)
+```
+
+A full configuration example for that sets the overlay up for your own account, could look like this
+
+```ShellSession
+$ mkdir ~/.config/nixpkgs/overlays/
+$ cat > ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix <<EOF
+  self: super: super.prefer-remote-fetch self super
+EOF
+```
diff --git a/nixpkgs/doc/functions/prefer-remote-fetch.xml b/nixpkgs/doc/functions/prefer-remote-fetch.xml
deleted file mode 100644
index 94d25d3d3aeb..000000000000
--- a/nixpkgs/doc/functions/prefer-remote-fetch.xml
+++ /dev/null
@@ -1,21 +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"
-         xml:id="sec-prefer-remote-fetch">
- <title>prefer-remote-fetch overlay</title>
-
- <para>
-  <function>prefer-remote-fetch</function> is an overlay that download sources on remote builder. This is useful when the evaluating machine has a slow upload while the builder can fetch faster directly from the source. To use it, put the following snippet as a new overlay:
-<programlisting>
-self: super:
-  (super.prefer-remote-fetch self super)
-</programlisting>
-  A full configuration example for that sets the overlay up for your own account, could look like this
-<screen>
-<prompt>$ </prompt>mkdir ~/.config/nixpkgs/overlays/
-<prompt>$ </prompt>cat &gt; ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix &lt;&lt;EOF
-  self: super: super.prefer-remote-fetch self super
-EOF
-</screen>
- </para>
-</section>
diff --git a/nixpkgs/doc/labelless-link-is-xref.lua b/nixpkgs/doc/labelless-link-is-xref.lua
new file mode 100644
index 000000000000..67569b020916
--- /dev/null
+++ b/nixpkgs/doc/labelless-link-is-xref.lua
@@ -0,0 +1,24 @@
+local function starts_with(start, str)
+  return str:sub(1, #start) == start
+end
+
+local function escape_xml_arg(arg)
+  amps = arg:gsub('&', '&amp;')
+  amps_quotes = amps:gsub('"', '&quot;')
+  amps_quotes_lt = amps_quotes:gsub('<', '&lt;')
+
+  return amps_quotes_lt
+end
+
+function Link(elem)
+  has_no_content = #elem.content == 0
+  targets_anchor = starts_with('#', elem.target)
+  has_no_attributes = elem.title == '' and elem.identifier == '' and #elem.classes == 0 and #elem.attributes == 0
+
+  if has_no_content and targets_anchor and has_no_attributes then
+    -- xref expects idref without the pound-sign
+    target_without_hash = elem.target:sub(2, #elem.target)
+
+    return pandoc.RawInline('docbook', '<xref linkend="' .. escape_xml_arg(target_without_hash) .. '" />')
+  end
+end
diff --git a/nixpkgs/doc/languages-frameworks/agda.section.md b/nixpkgs/doc/languages-frameworks/agda.section.md
index 30a266502bf3..2b7c35f68d3b 100644
--- a/nixpkgs/doc/languages-frameworks/agda.section.md
+++ b/nixpkgs/doc/languages-frameworks/agda.section.md
@@ -1,17 +1,20 @@
 # Agda {#agda}
 
-## How to use Agda
+## How to use Agda {#how-to-use-agda}
 
-Agda can be installed from `agda`:
-```ShellSession
-$ nix-env -iA agda
-```
+Agda is available as the [agda](https://search.nixos.org/packages?channel=unstable&show=agda&from=0&size=30&sort=relevance&query=agda)
+package.
 
-To use Agda with libraries, the `agda.withPackages` function can be used. This function either takes:
+The `agda` package installs an Agda-wrapper, which calls `agda` with `--library-file`
+set to a generated library-file within the nix store, this means your library-file in
+`$HOME/.agda/libraries` will be ignored. By default the agda package installs Agda
+with no libraries, i.e. the generated library-file is empty. To use Agda with libraries,
+the `agda.withPackages` function can be used. This function either takes:
 
 * A list of packages,
 * or a function which returns a list of packages when given the `agdaPackages` attribute set,
 * or an attribute set containing a list of packages and a GHC derivation for compilation (see below).
+* or an attribute set containing a function which returns a list of packages when given the `agdaPackages` attribute set and a GHC derivation for compilation (see below).
 
 For example, suppose we wanted a version of Agda which has access to the standard library. This can be obtained with the expressions:
 
@@ -27,26 +30,86 @@ agda.withPackages (p: [ p.standard-library ])
 
 or can be called as in the [Compiling Agda](#compiling-agda) section.
 
-If you want to use a library in your home directory (for instance if it is a development version) then typecheck it manually (using `agda.withPackages` if necessary) and then override the `src` attribute of the package to point to your local repository.
+If you want to use a different version of a library (for instance a development version)
+override the `src` attribute of the package to point to your local repository
 
-Agda will not by default use these libraries. To tell Agda to use the library we have some options:
+```nix
+agda.withPackages (p: [
+  (p.standard-library.overrideAttrs (oldAttrs: {
+    version = "local version";
+    src = /path/to/local/repo/agda-stdlib;
+  }))
+])
+```
 
-* Call `agda` with the library flag:
-```ShellSession
-$ agda -l standard-library -i . MyFile.agda
+You can also reference a GitHub repository
+
+```nix
+agda.withPackages (p: [
+  (p.standard-library.overrideAttrs (oldAttrs: {
+    version = "1.5";
+    src =  fetchFromGitHub {
+      repo = "agda-stdlib";
+      owner = "agda";
+      rev = "v1.5";
+      sha256 = "16fcb7ssj6kj687a042afaa2gq48rc8abihpm14k684ncihb2k4w";
+    };
+  }))
+])
 ```
-* Write a `my-library.agda-lib` file for the project you are working on which may look like:
+
+If you want to use a library not added to Nixpkgs, you can add a
+dependency to a local library by calling `agdaPackages.mkDerivation`.
+
+```nix
+agda.withPackages (p: [
+  (p.mkDerivation {
+    pname = "your-agda-lib";
+    version = "1.0.0";
+    src = /path/to/your-agda-lib;
+  })
+])
 ```
-name: my-library
-include: .
-depend: standard-library
+
+Again you can reference GitHub
+
+```nix
+agda.withPackages (p: [
+  (p.mkDerivation {
+    pname = "your-agda-lib";
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      repo = "repo";
+      owner = "owner";
+      version = "...";
+      rev = "...";
+      sha256 = "...";
+    };
+  })
+])
 ```
+
+See [Building Agda Packages](#building-agda-packages) for more information on `mkDerivation`.
+
+Agda will not by default use these libraries. To tell Agda to use a library we have some options:
+
+* Call `agda` with the library flag:
+  ```ShellSession
+  $ agda -l standard-library -i . MyFile.agda
+  ```
+* Write a `my-library.agda-lib` file for the project you are working on which may look like:
+  ```
+  name: my-library
+  include: .
+  depend: standard-library
+  ```
 * Create the file `~/.agda/defaults` and add any libraries you want to use by default.
 
 More information can be found in the [official Agda documentation on library management](https://agda.readthedocs.io/en/v2.6.1/tools/package-system.html).
 
-## Compiling Agda
-Agda modules can be compiled with the `--compile` flag. A version of `ghc` with `ieee754` is made available to the Agda program via the `--with-compiler` flag.
+## Compiling Agda {#compiling-agda}
+
+Agda modules can be compiled using the GHC backend with the `--compile` flag. A version of `ghc` with `ieee754` is made available to the Agda program via the `--with-compiler` flag.
 This can be overridden by a different version of `ghc` as follows:
 
 ```nix
@@ -56,7 +119,8 @@ agda.withPackages {
 }
 ```
 
-## Writing Agda packages
+## Writing Agda packages {#writing-agda-packages}
+
 To write a nix derivation for an Agda library, first check that the library has a `*.agda-lib` file.
 
 A derivation can then be written using `agdaPackages.mkDerivation`. This has similar arguments to `stdenv.mkDerivation` with the following additions:
@@ -65,25 +129,48 @@ A derivation can then be written using `agdaPackages.mkDerivation`. This has sim
 * `libraryName` should be the name that appears in the `*.agda-lib` file, defaulting to `pname`.
 * `libraryFile` should be the file name of the `*.agda-lib` file, defaulting to `${libraryName}.agda-lib`.
 
-### Building Agda packages
+Here is an example `default.nix`
+
+```nix
+{ nixpkgs ?  <nixpkgs> }:
+with (import nixpkgs {});
+agdaPackages.mkDerivation {
+  version = "1.0";
+  pname = "my-agda-lib";
+  src = ./.;
+  buildInputs = [
+    agdaPackages.standard-library
+  ];
+}
+```
+
+### Building Agda packages {#building-agda-packages}
+
 The default build phase for `agdaPackages.mkDerivation` simply runs `agda` on the `Everything.agda` file.
 If something else is needed to build the package (e.g. `make`) then the `buildPhase` should be overridden.
 Additionally, a `preBuild` or `configurePhase` can be used if there are steps that need to be done prior to checking the `Everything.agda` file.
 `agda` and the Agda libraries contained in `buildInputs` are made available during the build phase.
 
-### Installing Agda packages
+### Installing Agda packages {#installing-agda-packages}
+
 The default install phase copies Agda source files, Agda interface files (`*.agdai`) and `*.agda-lib` files to the output directory.
 This can be overridden.
 
 By default, Agda sources are files ending on `.agda`, or literate Agda files ending on `.lagda`, `.lagda.tex`, `.lagda.org`, `.lagda.md`, `.lagda.rst`. The list of recognised Agda source extensions can be extended by setting the `extraExtensions` config variable.
 
-## Adding Agda packages to Nixpkgs
+## Adding Agda packages to Nixpkgs {#adding-agda-packages-to-nixpkgs}
 
 To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other Agda libraries, so the top line of the `default.nix` can look like:
+
 ```nix
 { mkDerivation, standard-library, fetchFromGitHub }:
 ```
-and `mkDerivation` should be called instead of `agdaPackages.mkDerivation`. Here is an example skeleton derivation for iowa-stdlib:
+
+Note that the derivation function is called with `mkDerivation` set to `agdaPackages.mkDerivation`, therefore you
+could use a similar set as in your `default.nix` from [Writing Agda Packages](#writing-agda-packages) with
+`agdaPackages.mkDerivation` replaced with `mkDerivation`.
+
+Here is an example skeleton derivation for iowa-stdlib:
 
 ```nix
 mkDerivation {
@@ -101,6 +188,7 @@ mkDerivation {
   '';
 }
 ```
+
 This library has a file called `.agda-lib`, and so we give an empty string to `libraryFile` as nothing precedes `.agda-lib` in the filename. This file contains `name: IAL-1.3`, and so we let `libraryName =  "IAL-1.3"`. This library does not use an `Everything.agda` file and instead has a Makefile, so there is no need to set `everythingFile` and we set a custom `buildPhase`.
 
 When writing an Agda package it is essential to make sure that no `.agda-lib` file gets added to the store as a single file (for example by using `writeText`). This causes Agda to think that the nix store is a Agda library and it will attempt to write to it whenever it typechecks something. See [https://github.com/agda/agda/issues/4613](https://github.com/agda/agda/issues/4613).
diff --git a/nixpkgs/doc/languages-frameworks/android.section.md b/nixpkgs/doc/languages-frameworks/android.section.md
index e7dbbf6f8ec1..28128ead6631 100644
--- a/nixpkgs/doc/languages-frameworks/android.section.md
+++ b/nixpkgs/doc/languages-frameworks/android.section.md
@@ -3,8 +3,8 @@
 The Android build environment provides three major features and a number of
 supporting features.
 
-Deploying an Android SDK installation with plugins
---------------------------------------------------
+## Deploying an Android SDK installation with plugins {#deploying-an-android-sdk-installation-with-plugins}
+
 The first use case is deploying the SDK with a desired set of plugins or subsets
 of an SDK.
 
@@ -136,8 +136,8 @@ in
 androidComposition.platform-tools
 ```
 
-Using predefined Android package compositions
----------------------------------------------
+## Using predefined Android package compositions {#using-predefined-android-package-compositions}
+
 In addition to composing an Android package set manually, it is also possible
 to use a predefined composition that contains all basic packages for a specific
 Android version, such as version 9.0 (API-level 28).
@@ -159,12 +159,13 @@ with import <nixpkgs> {};
 androidenv.androidPkgs_9_0.platform-tools
 ```
 
-Building an Android application
--------------------------------
+## Building an Android application {#building-an-android-application}
+
 In addition to the SDK, it is also possible to build an Ant-based Android
 project and automatically deploy all the Android plugins that a project
 requires.
 
+
 ```nix
 with import <nixpkgs> {};
 
@@ -199,8 +200,8 @@ to build Android apps. An Android APK gets exposed as a build product and can be
 installed on any Android device with a web browser by navigating to the build
 result page.
 
-Spawning emulator instances
----------------------------
+## Spawning emulator instances {#spawning-emulator-instances}
+
 For testing purposes, it can also be quite convenient to automatically generate
 scripts that spawn emulator instances with all desired configuration settings.
 
@@ -241,8 +242,8 @@ androidenv.emulateApp {
 In addition to prebuilt APKs, you can also bind the APK parameter to a
 `buildApp {}` function invocation shown in the previous example.
 
-Notes on environment variables in Android projects
---------------------------------------------------
+## Notes on environment variables in Android projects {#notes-on-environment-variables-in-android-projects}
+
 * `ANDROID_SDK_ROOT` should point to the Android SDK. In your Nix expressions, this should be
   `${androidComposition.androidsdk}/libexec/android-sdk`. Note that `ANDROID_HOME` is deprecated,
   but if you rely on tools that need it, you can export it too.
@@ -300,8 +301,8 @@ This shell.nix includes a shell hook that overwrites local.properties with the c
 sdk.dir and ndk.dir values. This will ensure that the SDK and NDK directories will
 both be correct when you run Android Studio inside nix-shell.
 
-Notes on improving build.gradle compatibility
----------------------------------------------
+## Notes on improving build.gradle compatibility {#notes-on-improving-build.gradle-compatibility}
+
 Ensure that your buildToolsVersion and ndkVersion match what is declared in androidenv.
 If you are using cmake, make sure its declared version is correct too.
 
@@ -321,8 +322,8 @@ android {
 
 ```
 
-Querying the available versions of each plugin
-----------------------------------------------
+## Querying the available versions of each plugin {#querying-the-available-versions-of-each-plugin}
+
 repo.json provides all the options in one file now.
 
 A shell script in the `pkgs/development/mobile/androidenv/` subdirectory can be used to retrieve all
@@ -334,8 +335,8 @@ possible options:
 
 The above command-line instruction queries all package versions in repo.json.
 
-Updating the generated expressions
-----------------------------------
+## Updating the generated expressions {#updating-the-generated-expressions}
+
 repo.json is generated from XML files that the Android Studio package manager uses.
 To update the expressions run the `generate.sh` script that is stored in the
 `pkgs/development/mobile/androidenv/` subdirectory:
diff --git a/nixpkgs/doc/languages-frameworks/beam.section.md b/nixpkgs/doc/languages-frameworks/beam.section.md
index b5d39595c107..348f66d42791 100644
--- a/nixpkgs/doc/languages-frameworks/beam.section.md
+++ b/nixpkgs/doc/languages-frameworks/beam.section.md
@@ -4,13 +4,19 @@
 
 In this document and related Nix expressions, we use the term, _BEAM_, to describe the environment. BEAM is the name of the Erlang Virtual Machine and, as far as we're concerned, from a packaging perspective, all languages that run on the BEAM are interchangeable. That which varies, like the build system, is transparent to users of any given BEAM package, so we make no distinction.
 
+## Available versions and deprecations schedule {#available-versions-and-deprecations-schedule}
+
+### Elixir {#elixir}
+
+nixpkgs follows the [official elixir deprecation schedule](https://hexdocs.pm/elixir/compatibility-and-deprecations.html) and keeps the last 5 released versions of Elixir available.
+
 ## Structure {#beam-structure}
 
 All BEAM-related expressions are available via the top-level `beam` attribute, which includes:
 
-- `interpreters`: a set of compilers running on the BEAM, including multiple Erlang/OTP versions (`beam.interpreters.erlangR19`, etc), Elixir (`beam.interpreters.elixir`) and LFE (Lisp Flavoured Erlang) (`beam.interpreters.lfe`).
+- `interpreters`: a set of compilers running on the BEAM, including multiple Erlang/OTP versions (`beam.interpreters.erlangR22`, etc), Elixir (`beam.interpreters.elixir`) and LFE (Lisp Flavoured Erlang) (`beam.interpreters.lfe`).
 
-- `packages`: a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. `beam.packages.erlangR19`.
+- `packages`: a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. `beam.packages.erlang22`.
 
 The default Erlang compiler, defined by `beam.interpreters.erlang`, is aliased as `erlang`. The default BEAM package set is defined by `beam.packages.erlang` and aliased at the top level as `beamPackages`.
 
@@ -24,12 +30,18 @@ Many Erlang/OTP distributions available in `beam.interpreters` have versions wit
 
 We provide a version of Rebar3, under `rebar3`. We also provide a helper to fetch Rebar3 dependencies from a lockfile under `fetchRebar3Deps`.
 
+We also provide a version on Rebar3 with plugins included, under `rebar3WithPlugins`. This package is a function which takes two arguments: `plugins`, a list of nix derivations to include as plugins (loaded only when specified in `rebar.config`), and `globalPlugins`, which should always be loaded by rebar3. Example: `rebar3WithPlugins { globalPlugins = [beamPackages.pc]; }`.
+
+When adding a new plugin it is important that the `packageName` attribute is the same as the atom used by rebar3 to refer to the plugin.
+
 ### Mix & Erlang.mk {#build-tools-other}
 
 Erlang.mk works exactly as expected. There is a bootstrap process that needs to be run, which is supported by the `buildErlangMk` derivation.
 
 For Elixir applications use `mixRelease` to make a release. See examples for more details.
 
+There is also a `buildMix` helper, whose behavior is closer to that of `buildErlangMk` and `buildRebar3`. The primary difference is that mixRelease makes a release, while buildMix only builds the package, making it useful for libraries and other dependencies.
+
 ## How to Install BEAM Packages {#how-to-install-beam-packages}
 
 BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users. To install any of those builders into your profile, refer to them by their attribute path `beamPackages.rebar3`:
@@ -56,7 +68,7 @@ Erlang.mk functions similarly to Rebar3, except we use `buildErlangMk` instead o
 
 `mixRelease` is used to make a release in the mix sense. Dependencies will need to be fetched with `fetchMixDeps` and passed to it.
 
-#### mixRelease - Elixir Phoenix example
+#### mixRelease - Elixir Phoenix example {#mixrelease---elixir-phoenix-example}
 
 Here is how your `default.nix` file would look.
 
@@ -74,7 +86,7 @@ let
   version = "0.0.1";
   mixEnv = "prod";
 
-  mixDeps = packages.fetchMixDeps {
+  mixFodDeps = packages.fetchMixDeps {
     pname = "mix-deps-${pname}";
     inherit src mixEnv version;
     # nix will complain and tell you the right value to replace this with
@@ -118,7 +130,7 @@ let
 
 
 in packages.mixRelease {
-  inherit src pname version mixEnv mixDeps;
+  inherit src pname version mixEnv mixFodDeps;
   # if you have build time environment variables add them here
   MY_ENV_VAR="my_value";
   preInstall = ''
@@ -136,7 +148,7 @@ Setup will require the following steps:
 - you can now `nix-build .`
 - To run the release, set the `RELEASE_TMP` environment variable to a directory that your program has write access to. It will be used to store the BEAM settings.
 
-#### Example of creating a service for an Elixir - Phoenix project
+#### Example of creating a service for an Elixir - Phoenix project {#example-of-creating-a-service-for-an-elixir---phoenix-project}
 
 In order to create a service with your release, you could add a `service.nix`
 in your project with the following
@@ -216,7 +228,7 @@ mkShell {
 }
 ```
 
-#### Elixir - Phoenix project
+#### Elixir - Phoenix project {#elixir---phoenix-project}
 
 Here is an example `shell.nix`.
 
diff --git a/nixpkgs/doc/languages-frameworks/bower.section.md b/nixpkgs/doc/languages-frameworks/bower.section.md
index f408bd5b2c92..6226dc0702d7 100644
--- a/nixpkgs/doc/languages-frameworks/bower.section.md
+++ b/nixpkgs/doc/languages-frameworks/bower.section.md
@@ -149,7 +149,7 @@ A few notes about [Full example — `default.nix`](#ex-buildBowerComponentsDefau
 
 ## Troubleshooting {#ssec-bower2nix-troubleshooting}
 
-### ENOCACHE errors from buildBowerComponents
+### ENOCACHE errors from buildBowerComponents {#enocache-errors-from-buildbowercomponents}
 
 This means that Bower was looking for a package version which doesn't exist in the generated `bower-packages.nix`.
 
diff --git a/nixpkgs/doc/languages-frameworks/coq.section.md b/nixpkgs/doc/languages-frameworks/coq.section.md
index 5964d46e2f80..0674c5a4702e 100644
--- a/nixpkgs/doc/languages-frameworks/coq.section.md
+++ b/nixpkgs/doc/languages-frameworks/coq.section.md
@@ -1,6 +1,6 @@
 # Coq and coq packages {#sec-language-coq}
 
-## Coq derivation: `coq`
+## Coq derivation: `coq` {#coq-derivation-coq}
 
 The Coq derivation is overridable through the `coq.override overrides`, where overrides is an attribute set which contains the arguments to override. We recommend overriding either of the following
 
@@ -8,7 +8,7 @@ The Coq derivation is overridable through the `coq.override overrides`, where ov
 * `customOCamlPackage` (optional, defaults to `null`, which lets Coq choose a version automatically), which can be set to any of the ocaml packages attribute of `ocaml-ng` (such as `ocaml-ng.ocamlPackages_4_10` which is the default for Coq 8.11 for example).
 * `coq-version` (optional, defaults to the short version e.g. "8.10"), is a version number of the form "x.y" that indicates which Coq's version build behavior to mimic when using a source which is not a release. E.g. `coq.override { version = "d370a9d1328a4e1cdb9d02ee032f605a9d94ec7a"; coq-version = "8.10"; }`.
 
-## Coq packages attribute sets: `coqPackages`
+## Coq packages attribute sets: `coqPackages` {#coq-packages-attribute-sets-coqpackages}
 
 The recommended way of defining a derivation for a Coq library, is to use the `coqPackages.mkCoqDerivation` function, which is essentially a specialization of `mkDerivation` taking into account most of the specifics of Coq libraries. The following attributes are supported:
 
diff --git a/nixpkgs/doc/languages-frameworks/crystal.section.md b/nixpkgs/doc/languages-frameworks/crystal.section.md
index 74790132974a..cbe31f9f0b2f 100644
--- a/nixpkgs/doc/languages-frameworks/crystal.section.md
+++ b/nixpkgs/doc/languages-frameworks/crystal.section.md
@@ -1,10 +1,11 @@
 # Crystal {#crystal}
 
-## Building a Crystal package
+## Building a Crystal package {#building-a-crystal-package}
 
 This section uses [Mint](https://github.com/mint-lang/mint) as an example for how to build a Crystal package.
 
 If the Crystal project has any dependencies, the first step is to get a `shards.nix` file encoding those. Get a copy of the project and go to its root directory such that its `shard.lock` file is in the current directory, then run `crystal2nix` in it
+
 ```bash
 $ git clone https://github.com/mint-lang/mint
 $ cd mint
@@ -15,6 +16,7 @@ $ nix-shell -p crystal2nix --run crystal2nix
 This should have generated a `shards.nix` file.
 
 Next create a Nix file for your derivation and use `pkgs.crystal.buildCrystalPackage` as follows:
+
 ```nix
 with import <nixpkgs> {};
 crystal.buildCrystalPackage rec {
diff --git a/nixpkgs/doc/languages-frameworks/dhall.section.md b/nixpkgs/doc/languages-frameworks/dhall.section.md
new file mode 100644
index 000000000000..d1adcbf736bf
--- /dev/null
+++ b/nixpkgs/doc/languages-frameworks/dhall.section.md
@@ -0,0 +1,432 @@
+# Dhall {#sec-language-dhall}
+
+The Nixpkgs support for Dhall assumes some familiarity with Dhall's language
+support for importing Dhall expressions, which is documented here:
+
+* [`dhall-lang.org` - Installing packages](https://docs.dhall-lang.org/tutorials/Language-Tour.html#installing-packages)
+
+## Remote imports {#ssec-dhall-remote-imports}
+
+Nixpkgs bypasses Dhall's support for remote imports using Dhall's
+semantic integrity checks.  Specifically, any Dhall import can be protected by
+an integrity check like:
+
+```dhall
+https://prelude.dhall-lang.org/v20.1.0/package.dhall
+  sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98
+```
+
+… and if the import is cached then the interpreter will load the import from
+cache instead of fetching the URL.
+
+Nixpkgs uses this trick to add all of a Dhall expression's dependencies into the
+cache so that the Dhall interpreter never needs to resolve any remote URLs.  In
+fact, Nixpkgs uses a Dhall interpreter with remote imports disabled when
+packaging Dhall expressions to enforce that the interpreter never resolves a
+remote import.  This means that Nixpkgs only supports building Dhall expressions
+if all of their remote imports are protected by semantic integrity checks.
+
+Instead of remote imports, Nixpkgs uses Nix to fetch remote Dhall code.  For
+example, the Prelude Dhall package uses `pkgs.fetchFromGitHub` to fetch the
+`dhall-lang` repository containing the Prelude.  Relying exclusively on Nix
+to fetch Dhall code ensures that Dhall packages built using Nix remain pure and
+also behave well when built within a sandbox.
+
+## Packaging a Dhall expression from scratch {#ssec-dhall-packaging-expression}
+
+We can illustrate how Nixpkgs integrates Dhall by beginning from the following
+trivial Dhall expression with one dependency (the Prelude):
+
+```dhall
+-- ./true.dhall
+
+let Prelude = https://prelude.dhall-lang.org/v20.1.0/package.dhall
+
+in  Prelude.Bool.not False
+```
+
+As written, this expression cannot be built using Nixpkgs because the
+expression does not protect the Prelude import with a semantic integrity
+check, so the first step is to freeze the expression using `dhall freeze`,
+like this:
+
+```bash
+$ dhall freeze --inplace ./true.dhall
+```
+
+… which gives us:
+
+```dhall
+-- ./true.dhall
+
+let Prelude =
+      https://prelude.dhall-lang.org/v20.1.0/package.dhall
+        sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98
+
+in  Prelude.Bool.not False
+```
+
+To package that expression, we create a `./true.nix` file containing the
+following specification for the Dhall package:
+
+```nix
+# ./true.nix
+
+{ buildDhallPackage, Prelude }:
+
+buildDhallPackage {
+  name = "true";
+  code = ./true.dhall;
+  dependencies = [ Prelude ];
+  source = true;
+}
+```
+
+… and we complete the build by incorporating that Dhall package into the
+`pkgs.dhallPackages` hierarchy using an overlay, like this:
+
+```nix
+# ./example.nix
+
+let
+  nixpkgs = builtins.fetchTarball {
+    url    = "https://github.com/NixOS/nixpkgs/archive/94b2848559b12a8ed1fe433084686b2a81123c99.tar.gz";
+    sha256 = "1pbl4c2dsaz2lximgd31m96jwbps6apn3anx8cvvhk1gl9rkg107";
+  };
+
+  dhallOverlay = self: super: {
+    true = self.callPackage ./true.nix { };
+  };
+
+  overlay = self: super: {
+    dhallPackages = super.dhallPackages.override (old: {
+      overrides =
+        self.lib.composeExtensions (old.overrides or (_: _: {})) dhallOverlay;
+    });
+  };
+
+  pkgs = import nixpkgs { config = {}; overlays = [ overlay ]; };
+
+in
+  pkgs
+```
+
+… which we can then build using this command:
+
+```bash
+$ nix build --file ./example.nix dhallPackages.true
+```
+
+## Contents of a Dhall package {#ssec-dhall-package-contents}
+
+The above package produces the following directory tree:
+
+```bash
+$ tree -a ./result
+result
+├── .cache
+│   └── dhall
+│       └── 122027abdeddfe8503496adeb623466caa47da5f63abd2bc6fa19f6cfcb73ecfed70
+├── binary.dhall
+└── source.dhall
+```
+
+… where:
+
+* `source.dhall` contains the result of interpreting our Dhall package:
+
+  ```bash
+  $ cat ./result/source.dhall
+  True
+  ```
+
+* The `.cache` subdirectory contains one binary cache product encoding the
+  same result as `source.dhall`:
+
+  ```bash
+  $ dhall decode < ./result/.cache/dhall/122027abdeddfe8503496adeb623466caa47da5f63abd2bc6fa19f6cfcb73ecfed70
+  True
+  ```
+
+* `binary.dhall` contains a Dhall expression which handles fetching and decoding
+  the same cache product:
+
+  ```bash
+  $ cat ./result/binary.dhall
+  missing sha256:27abdeddfe8503496adeb623466caa47da5f63abd2bc6fa19f6cfcb73ecfed70
+  $ cp -r ./result/.cache .cache
+
+  $ chmod -R u+w .cache
+
+  $ XDG_CACHE_HOME=.cache dhall --file ./result/binary.dhall
+  True
+  ```
+
+The `source.dhall` file is only present for packages that specify
+`source = true;`.  By default, Dhall packages omit the `source.dhall` in order
+to conserve disk space when they are used exclusively as dependencies.  For
+example, if we build the Prelude package it will only contain the binary
+encoding of the expression:
+
+```bash
+$ nix build --file ./example.nix dhallPackages.Prelude
+
+$ tree -a result
+result
+├── .cache
+│   └── dhall
+│       └── 122026b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98
+└── binary.dhall
+
+2 directories, 2 files
+```
+
+Typically, you only specify `source = true;` for the top-level Dhall expression
+of interest (such as our example `true.nix` Dhall package).  However, if you
+wish to specify `source = true` for all Dhall packages, then you can amend the
+Dhall overlay like this:
+
+```nix
+  dhallOverrides = self: super: {
+    # Enable source for all Dhall packages
+    buildDhallPackage =
+      args: super.buildDhallPackage (args // { source = true; });
+
+    true = self.callPackage ./true.nix { };
+  };
+```
+
+… and now the Prelude will contain the fully decoded result of interpreting
+the Prelude:
+
+```bash
+$ nix build --file ./example.nix dhallPackages.Prelude
+
+$ tree -a result
+result
+├── .cache
+│   └── dhall
+│       └── 122026b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98
+├── binary.dhall
+└── source.dhall
+
+$ cat ./result/source.dhall
+{ Bool =
+  { and =
+      \(_ : List Bool) ->
+        List/fold Bool _ Bool (\(_ : Bool) -> \(_ : Bool) -> _@1 && _) True
+  , build = \(_ : Type -> _ -> _@1 -> _@2) -> _ Bool True False
+  , even =
+      \(_ : List Bool) ->
+        List/fold Bool _ Bool (\(_ : Bool) -> \(_ : Bool) -> _@1 == _) True
+  , fold =
+      \(_ : Bool) ->
+…
+```
+
+## Packaging functions {#ssec-dhall-packaging-functions}
+
+We already saw an example of using `buildDhallPackage` to create a Dhall
+package from a single file, but most Dhall packages consist of more than one
+file and there are two derived utilities that you may find more useful when
+packaging multiple files:
+
+* `buildDhallDirectoryPackage` - build a Dhall package from a local directory
+
+* `buildDhallGitHubPackage` - build a Dhall package from a GitHub repository
+
+The `buildDhallPackage` is the lowest-level function and accepts the following
+arguments:
+
+* `name`: The name of the derivation
+
+* `dependencies`: Dhall dependencies to build and cache ahead of time
+
+* `code`: The top-level expression to build for this package
+
+  Note that the `code` field accepts an arbitrary Dhall expression.  You're
+  not limited to just a file.
+
+* `source`: Set to `true` to include the decoded result as `source.dhall` in the
+  build product, at the expense of requiring more disk space
+
+* `documentationRoot`: Set to the root directory of the package if you want
+  `dhall-docs` to generate documentation underneath the `docs` subdirectory of
+  the build product
+
+The `buildDhallDirectoryPackage` is a higher-level function implemented in terms
+of `buildDhallPackage` that accepts the following arguments:
+
+* `name`: Same as `buildDhallPackage`
+
+* `dependencies`: Same as `buildDhallPackage`
+
+* `source`: Same as `buildDhallPackage`
+
+* `src`: The directory containing Dhall code that you want to turn into a Dhall
+  package
+
+* `file`: The top-level file (`package.dhall` by default) that is the entrypoint
+  to the rest of the package
+
+* `document`: Set to `true` to generate documentation for the package
+
+The `buildDhallGitHubPackage` is another higher-level function implemented in
+terms of `buildDhallPackage` that accepts the following arguments:
+
+* `name`: Same as `buildDhallPackage`
+
+* `dependencies`: Same as `buildDhallPackage`
+
+* `source`: Same as `buildDhallPackage`
+
+* `owner`: The owner of the repository
+
+* `repo`: The repository name
+
+* `rev`: The desired revision (or branch, or tag)
+
+* `directory`: The subdirectory of the Git repository to package (if a
+  directory other than the root of the repository)
+
+* `file`: The top-level file (`${directory}/package.dhall` by default) that is
+  the entrypoint to the rest of the package
+
+* `document`: Set to `true` to generate documentation for the package
+
+Additionally, `buildDhallGitHubPackage` accepts the same arguments as
+`fetchFromGitHub`, such as `sha256` or `fetchSubmodules`.
+
+## `dhall-to-nixpkgs` {#ssec-dhall-dhall-to-nixpkgs}
+
+You can use the `dhall-to-nixpkgs` command-line utility to automate
+packaging Dhall code.  For example:
+
+```bash
+$ nix-env --install --attr haskellPackages.dhall-nixpkgs
+
+$ nix-env --install --attr nix-prefetch-git  # Used by dhall-to-nixpkgs
+
+$ dhall-to-nixpkgs github https://github.com/Gabriel439/dhall-semver.git
+{ buildDhallGitHubPackage, Prelude }:
+  buildDhallGitHubPackage {
+    name = "dhall-semver";
+    githubBase = "github.com";
+    owner = "Gabriel439";
+    repo = "dhall-semver";
+    rev = "2d44ae605302ce5dc6c657a1216887fbb96392a4";
+    fetchSubmodules = false;
+    sha256 = "0y8shvp8srzbjjpmnsvz9c12ciihnx1szs0yzyi9ashmrjvd0jcz";
+    directory = "";
+    file = "package.dhall";
+    source = false;
+    document = false;
+    dependencies = [ (Prelude.overridePackage { file = "package.dhall"; }) ];
+    }
+```
+
+The utility takes care of automatically detecting remote imports and converting
+them to package dependencies.  You can also use the utility on local
+Dhall directories, too:
+
+```bash
+$ dhall-to-nixpkgs directory ~/proj/dhall-semver
+{ buildDhallDirectoryPackage, Prelude }:
+  buildDhallDirectoryPackage {
+    name = "proj";
+    src = /Users/gabriel/proj/dhall-semver;
+    file = "package.dhall";
+    source = false;
+    document = false;
+    dependencies = [ (Prelude.overridePackage { file = "package.dhall"; }) ];
+    }
+```
+
+## Overriding dependency versions {#ssec-dhall-overriding-dependency-versions}
+
+Suppose that we change our `true.dhall` example expression to depend on an older
+version of the Prelude (19.0.0):
+
+```dhall
+-- ./true.dhall
+
+let Prelude =
+      https://prelude.dhall-lang.org/v19.0.0/package.dhall
+        sha256:eb693342eb769f782174157eba9b5924cf8ac6793897fc36a31ccbd6f56dafe2
+
+in  Prelude.Bool.not False
+```
+
+If we try to rebuild that expression the build will fail:
+
+```
+$ nix build --file ./example.nix dhallPackages.true
+builder for '/nix/store/0f1hla7ff1wiaqyk1r2ky4wnhnw114fi-true.drv' failed with exit code 1; last 10 log lines:
+
+  Dhall was compiled without the 'with-http' flag.
+
+  The requested URL was: https://prelude.dhall-lang.org/v19.0.0/package.dhall
+
+
+  4│       https://prelude.dhall-lang.org/v19.0.0/package.dhall
+  5│         sha256:eb693342eb769f782174157eba9b5924cf8ac6793897fc36a31ccbd6f56dafe2
+
+  /nix/store/rsab4y99h14912h4zplqx2iizr5n4rc2-true.dhall:4:7
+[1 built (1 failed), 0.0 MiB DL]
+error: build of '/nix/store/0f1hla7ff1wiaqyk1r2ky4wnhnw114fi-true.drv' failed
+```
+
+… because the default Prelude selected by Nixpkgs revision
+`94b2848559b12a8ed1fe433084686b2a81123c99is` is version 20.1.0, which doesn't
+have the same integrity check as version 19.0.0.  This means that version
+19.0.0 is not cached and the interpreter is not allowed to fall back to
+importing the URL.
+
+However, we can override the default Prelude version by using `dhall-to-nixpkgs`
+to create a Dhall package for our desired Prelude:
+
+```bash
+$ dhall-to-nixpkgs github https://github.com/dhall-lang/dhall-lang.git \
+    --name Prelude \
+    --directory Prelude \
+    --rev v19.0.0 \
+    > Prelude.nix
+```
+
+… and then referencing that package in our Dhall overlay, by either overriding
+the Prelude globally for all packages, like this:
+
+```bash
+  dhallOverrides = self: super: {
+    true = self.callPackage ./true.nix { };
+
+    Prelude = self.callPackage ./Prelude.nix { };
+  };
+```
+
+… or selectively overriding the Prelude dependency for just the `true` package,
+like this:
+
+```bash
+  dhallOverrides = self: super: {
+    true = self.callPackage ./true.nix {
+      Prelude = self.callPackage ./Prelude.nix { };
+    };
+  };
+```
+
+## Overrides {#ssec-dhall-overrides}
+
+You can override any of the arguments to `buildDhallGitHubPackage` or
+`buildDhallDirectoryPackage` using the `overridePackage` attribute of a package.
+For example, suppose we wanted to selectively enable `source = true` just for the Prelude.  We can do that like this:
+
+```nix
+  dhallOverrides = self: super: {
+    Prelude = super.Prelude.overridePackage { source = true; };
+
+    …
+  };
+```
+
+[semantic-integrity-checks]: https://docs.dhall-lang.org/tutorials/Language-Tour.html#installing-packages
diff --git a/nixpkgs/doc/languages-frameworks/dotnet.section.md b/nixpkgs/doc/languages-frameworks/dotnet.section.md
index 36369fd4e634..1bcb6e45210e 100644
--- a/nixpkgs/doc/languages-frameworks/dotnet.section.md
+++ b/nixpkgs/doc/languages-frameworks/dotnet.section.md
@@ -1,6 +1,6 @@
-# Dotnet
+# Dotnet {#dotnet}
 
-## Local Development Workflow
+## Local Development Workflow {#local-development-workflow}
 
 For local development, it's recommended to use nix-shell to create a dotnet environment:
 
@@ -10,13 +10,13 @@ with import <nixpkgs> {};
 
 mkShell {
   name = "dotnet-env";
-  buildInputs = [
+  packages = [
     dotnet-sdk_3
   ];
 }
 ```
 
-### Using many sdks in a workflow
+### Using many sdks in a workflow {#using-many-sdks-in-a-workflow}
 
 It's very likely that more than one sdk will be needed on a given project. Dotnet provides several different frameworks (E.g dotnetcore, aspnetcore, etc.) as well as many versions for a given framework. Normally, dotnet is able to fetch a framework and install it relative to the executable. However, this would mean writing to the nix store in nixpkgs, which is read-only. To support the many-sdk use case, one can compose an environment using `dotnetCorePackages.combinePackages`:
 
@@ -25,7 +25,7 @@ with import <nixpkgs> {};
 
 mkShell {
   name = "dotnet-env";
-  buildInputs = [
+  packages = [
     (with dotnetCorePackages; combinePackages [
       sdk_3_1
       sdk_3_0
@@ -37,7 +37,7 @@ mkShell {
 
 This will produce a dotnet installation that has the dotnet 3.1, 3.0, and 2.1 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output:
 
-```ShellSesssion
+```ShellSession
 $ dotnet --info
 .NET Core SDK (reflecting any global.json):
  Version:   3.1.101
@@ -60,15 +60,15 @@ $ dotnet --info
   Microsoft.NETCore.App 3.1.1 [/nix/store/iiv98i2jdi226dgh4jzkkj2ww7f8jgpd-dotnet-core-combined/shared/Microsoft.NETCore.App]
 ```
 
-## dotnet-sdk vs dotnetCorePackages.sdk
+## dotnet-sdk vs dotnetCorePackages.sdk {#dotnet-sdk-vs-dotnetcorepackages.sdk}
 
 The `dotnetCorePackages.sdk_X_Y` is preferred over the old dotnet-sdk as both major and minor version are very important for a dotnet environment. If a given minor version isn't present (or was changed), then this will likely break your ability to build a project.
 
-## dotnetCorePackages.sdk vs dotnetCorePackages.net vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore
+## dotnetCorePackages.sdk vs dotnetCorePackages.net vs dotnetCorePackages.netcore vs dotnetCorePackages.aspnetcore {#dotnetcorepackages.sdk-vs-dotnetcorepackages.net-vs-dotnetcorepackages.netcore-vs-dotnetcorepackages.aspnetcore}
 
 The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given version. The `net`, `netcore` and `aspnetcore` packages are meant to serve as minimal runtimes to deploy alongside already built applications. For runtime versions >= .NET 5 `net` is used while `netcore` is used for older .NET Core runtime version.
 
-## Packaging a Dotnet Application
+## Packaging a Dotnet Application {#packaging-a-dotnet-application}
 
 Ideally, we would like to build against the sdk, then only have the dotnet runtime available in the runtime closure.
 
diff --git a/nixpkgs/doc/languages-frameworks/emscripten.section.md b/nixpkgs/doc/languages-frameworks/emscripten.section.md
index d391e038070d..b3ddf0cedaea 100644
--- a/nixpkgs/doc/languages-frameworks/emscripten.section.md
+++ b/nixpkgs/doc/languages-frameworks/emscripten.section.md
@@ -27,16 +27,14 @@ Modes of use of `emscripten`:
     * dev-shell for zlib implementation hacking:
         * `nix-shell -A emscriptenPackages.zlib`
 
-
-## Imperative usage
+## Imperative usage {#imperative-usage}
 
 A few things to note:
 
 * `export EMCC_DEBUG=2` is nice for debugging
 * `~/.emscripten`, the build artifact cache sometimes creates issues and needs to be removed from time to time
 
-
-## Declarative usage
+## Declarative usage {#declarative-usage}
 
 Let's see two different examples from `pkgs/top-level/emscripten-packages.nix`:
 
@@ -50,7 +48,7 @@ A special requirement of the `pkgs.buildEmscriptenPackage` is the `doCheck = tru
 * Use `export EMCC_DEBUG=2` from within a emscriptenPackage's `phase` to get more detailed debug output what is going wrong.
 * ~/.emscripten cache is requiring us to set `HOME=$TMPDIR` in individual phases. This makes compilation slower but also makes it more deterministic.
 
-### Usage 1: pkgs.zlib.override
+### Usage 1: pkgs.zlib.override {#usage-1-pkgs.zlib.override}
 
 This example uses `zlib` from nixpkgs but instead of compiling **C** to **ELF** it compiles **C** to **JS** since we were using `pkgs.zlib.override` and changed stdenv to `pkgs.emscriptenStdenv`. A few adaptions and hacks were set in place to make it working. One advantage is that when `pkgs.zlib` is updated, it will automatically update this package as well. However, this can also be the downside...
 
@@ -110,7 +108,7 @@ See the `zlib` example:
       '';
     });
 
-### Usage 2: pkgs.buildEmscriptenPackage
+### Usage 2: pkgs.buildEmscriptenPackage {#usage-2-pkgs.buildemscriptenpackage}
 
 This `xmlmirror` example features a emscriptenPackage which is defined completely from this context and no `pkgs.zlib.override` is used.
 
@@ -165,7 +163,7 @@ This `xmlmirror` example features a emscriptenPackage which is defined completel
       '';
     };
 
-### Declarative debugging
+### Declarative debugging {#declarative-debugging}
 
 Use `nix-shell -I nixpkgs=/some/dir/nixpkgs -A emscriptenPackages.libz` and from there you can go trough the individual steps. This makes it easy to build a good `unit test` or list the files of the project.
 
@@ -177,7 +175,7 @@ Use `nix-shell -I nixpkgs=/some/dir/nixpkgs -A emscriptenPackages.libz` and from
 6. `buildPhase`
 7. ... happy hacking...
 
-## Summary
+## Summary {#summary}
 
 Using this toolchain makes it easy to leverage `nix` from NixOS, MacOSX or even Windows (WSL+ubuntu+nix). This toolchain is reproducible, behaves like the rest of the packages from nixpkgs and contains a set of well working examples to learn and adapt from.
 
diff --git a/nixpkgs/doc/languages-frameworks/gnome.section.md b/nixpkgs/doc/languages-frameworks/gnome.section.md
index 00bd524b0c50..a1121efe3f07 100644
--- a/nixpkgs/doc/languages-frameworks/gnome.section.md
+++ b/nixpkgs/doc/languages-frameworks/gnome.section.md
@@ -68,7 +68,7 @@ preFixup = ''
 
 Fortunately, there is [`wrapGAppsHook`]{#ssec-gnome-hooks-wrapgappshook}. It works in conjunction with other setup hooks that populate environment variables, and it will then wrap all executables in `bin` and `libexec` directories using said variables.
 
-For convenience, it also adds `dconf.lib` for a GIO module implementing a GSettings backend using `dconf`, `gtk3` for GSettings schemas, and `librsvg` for GdkPixbuf loader to the closure. In case you are packaging a program without a graphical interface, you might want to use [`wrapGAppsNoGuiHook`]{#ssec-gnome-hooks-wrapgappsnoguihook}, which runs the same script as `wrapGAppsHook` but does not bring `gtk3` and `librsvg` into the closure.
+For convenience, it also adds `dconf.lib` for a GIO module implementing a GSettings backend using `dconf`, `gtk3` for GSettings schemas, and `librsvg` for GdkPixbuf loader to the closure. There is also [`wrapGAppsHook4`]{#ssec-gnome-hooks-wrapgappshook4}, which replaces GTK 3 with GTK 4. And in case you are packaging a program without a graphical interface, you might want to use [`wrapGAppsNoGuiHook`]{#ssec-gnome-hooks-wrapgappsnoguihook}, which runs the same script as `wrapGAppsHook` but does not bring `gtk3` and `librsvg` into the closure.
 
 - `wrapGAppsHook` itself will add the package’s `share` directory to `XDG_DATA_DIRS`.
 
@@ -84,11 +84,11 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
 
 - []{#ssec-gnome-hooks-gobject-introspection} `gobject-introspection` setup hook populates `GI_TYPELIB_PATH` variable with `lib/girepository-1.0` directories of dependencies, which is then added to wrapper by `wrapGAppsHook`. It also adds `share` directories of dependencies to `XDG_DATA_DIRS`, which is intended to promote GIR files but it also [pollutes the closures](https://github.com/NixOS/nixpkgs/issues/32790) of packages using `wrapGAppsHook`.
 
-  ::: warning
+  ::: {.warning}
   The setup hook [currently](https://github.com/NixOS/nixpkgs/issues/56943) does not work in expressions with `strictDeps` enabled, like Python packages. In those cases, you will need to disable it with `strictDeps = false;`.
   :::
 
-- []{#ssec-gnome-hooks-gst-grl-plugins} Setup hooks of `gst_all_1.gstreamer` and `gnome3.grilo` will populate the `GST_PLUGIN_SYSTEM_PATH_1_0` and `GRL_PLUGIN_PATH` variables, respectively, which will then be added to the wrapper by `wrapGAppsHook`.
+- []{#ssec-gnome-hooks-gst-grl-plugins} Setup hooks of `gst_all_1.gstreamer` and `grilo` will populate the `GST_PLUGIN_SYSTEM_PATH_1_0` and `GRL_PLUGIN_PATH` variables, respectively, which will then be added to the wrapper by `wrapGAppsHook`.
 
 You can also pass additional arguments to `makeWrapper` using `gappsWrapperArgs` in `preFixup` hook:
 
@@ -105,7 +105,7 @@ preFixup = ''
 
 ## Updating GNOME packages {#ssec-gnome-updating}
 
-Most GNOME package offer [`updateScript`](#var-passthru-updateScript), it is therefore possible to update to latest source tarball by running `nix-shell maintainers/scripts/update.nix --argstr package gnome3.nautilus` or even en masse with `nix-shell maintainers/scripts/update.nix --argstr path gnome3`. Read the package’s `NEWS` file to see what changed.
+Most GNOME package offer [`updateScript`](#var-passthru-updateScript), it is therefore possible to update to latest source tarball by running `nix-shell maintainers/scripts/update.nix --argstr package gnome.nautilus` or even en masse with `nix-shell maintainers/scripts/update.nix --argstr path gnome`. Read the package’s `NEWS` file to see what changed.
 
 ## Frequently encountered issues {#ssec-gnome-common-issues}
 
diff --git a/nixpkgs/doc/languages-frameworks/go.section.md b/nixpkgs/doc/languages-frameworks/go.section.md
index b4228d9d313d..b20a8d0c3549 100644
--- a/nixpkgs/doc/languages-frameworks/go.section.md
+++ b/nixpkgs/doc/languages-frameworks/go.section.md
@@ -44,7 +44,7 @@ pet = buildGoModule rec {
 
 The function `buildGoPackage` builds legacy Go programs, not supporting Go modules.
 
-### Example for `buildGoPackage`
+### Example for `buildGoPackage` {#example-for-buildgopackage}
 
 In the following is an example expression using buildGoPackage, the following arguments are of special significance to the function:
 
@@ -114,21 +114,24 @@ Both `buildGoModule` and `buildGoPackage` can be tweaked to behave slightly diff
 
 ### `buildFlagsArray` and `buildFlags`: {#ex-goBuildFlags-noarray}
 
-These attributes set build flags supported by `go build`. We recommend using `buildFlagsArray`. The most common use case of these attributes is to make the resulting executable aware of its own version. For example:
+These attributes set build flags supported by `go build`. We recommend using `buildFlagsArray`.
 
 ```nix
   buildFlagsArray = [
-    # Note: single quotes are not needed.
-    "-ldflags=-X main.Version=${version} -X main.Commit=${version}"
+    "-tags=release"
   ];
 ```
 
+### `ldflags` {#var-go-ldflags}
+
+Arguments to pass to the Go linker tool via the `-ldflags` argument of `go build`. The most common use case for this argument is to make the resulting executable aware of its own version. For example:
+
 ```nix
-  buildFlagsArray = ''
-    -ldflags=
-    -X main.Version=${version}
-    -X main.Commit=${version}
-  '';
+  ldflags = [
+    "-s" "-w"
+    "-X main.Version=${version}"
+    "-X main.Commit=${version}"
+  ];
 ```
 
 ### `deleteVendor` {#var-go-deleteVendor}
@@ -137,4 +140,4 @@ Removes the pre-existing vendor directory. This should only be used if the depen
 
 ### `subPackages` {#var-go-subPackages}
 
-Limits the builder from building child packages that have not been listed. If <varname>subPackages</varname> is not specified, all child packages will be built.
+Limits the builder from building child packages that have not been listed. If `subPackages` is not specified, all child packages will be built.
diff --git a/nixpkgs/doc/languages-frameworks/idris.section.md b/nixpkgs/doc/languages-frameworks/idris.section.md
index 000e3627d70d..ffdd706eb0b7 100644
--- a/nixpkgs/doc/languages-frameworks/idris.section.md
+++ b/nixpkgs/doc/languages-frameworks/idris.section.md
@@ -1,10 +1,10 @@
 # Idris {#idris}
 
-## Installing Idris
+## Installing Idris {#installing-idris}
 
 The easiest way to get a working idris version is to install the `idris` attribute:
 
-```ShellSesssion
+```ShellSession
 $ # On NixOS
 $ nix-env -i nixos.idris
 $ # On non-NixOS
@@ -21,7 +21,7 @@ self: super: {
 
 And then:
 
-```ShellSesssion
+```ShellSession
 $ # On NixOS
 $ nix-env -iA nixos.myIdris
 $ # On non-NixOS
@@ -29,7 +29,8 @@ $ nix-env -iA nixpkgs.myIdris
 ```
 
 To see all available Idris packages:
-```ShellSesssion
+
+```ShellSession
 $ # On NixOS
 $ nix-env -qaPA nixos.idrisPackages
 $ # On non-NixOS
@@ -37,22 +38,23 @@ $ nix-env -qaPA nixpkgs.idrisPackages
 ```
 
 Similarly, entering a `nix-shell`:
-```ShellSesssion
+
+```ShellSession
 $ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
 ```
 
-## Starting Idris with library support
+## Starting Idris with library support {#starting-idris-with-library-support}
 
 To have access to these libraries in idris, call it with an argument `-p <library name>` for each library:
 
-```ShellSesssion
+```ShellSession
 $ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
 [nix-shell:~]$ idris -p contrib -p pruviloj
 ```
 
 A listing of all available packages the Idris binary has access to is available via `--listlibs`:
 
-```ShellSesssion
+```ShellSession
 $ idris --listlibs
 00prelude-idx.ibc
 pruviloj
@@ -64,7 +66,7 @@ prelude
 00contrib-idx.ibc
 ```
 
-## Building an Idris project with Nix
+## Building an Idris project with Nix {#building-an-idris-project-with-nix}
 
 As an example of how a Nix expression for an Idris package can be created, here is the one for `idrisPackages.yaml`:
 
@@ -105,7 +107,7 @@ build-idris-package  {
 
 Assuming this file is saved as `yaml.nix`, it's buildable using
 
-```ShellSesssion
+```ShellSession
 $ nix-build -E '(import <nixpkgs> {}).idrisPackages.callPackage ./yaml.nix {}'
 ```
 
@@ -121,11 +123,11 @@ with import <nixpkgs> {};
 
 in another file (say `default.nix`) to be able to build it with
 
-```ShellSesssion
+```ShellSession
 $ nix-build -A yaml
 ```
 
-## Passing options to `idris` commands
+## Passing options to `idris` commands {#passing-options-to-idris-commands}
 
 The `build-idris-package` function provides also optional input values to set additional options for the used `idris` commands.
 
diff --git a/nixpkgs/doc/languages-frameworks/index.xml b/nixpkgs/doc/languages-frameworks/index.xml
index 4d07d2b524d7..791afce6f5c6 100644
--- a/nixpkgs/doc/languages-frameworks/index.xml
+++ b/nixpkgs/doc/languages-frameworks/index.xml
@@ -11,6 +11,7 @@
  <xi:include href="bower.section.xml" />
  <xi:include href="coq.section.xml" />
  <xi:include href="crystal.section.xml" />
+ <xi:include href="dhall.section.xml" />
  <xi:include href="emscripten.section.xml" />
  <xi:include href="gnome.section.xml" />
  <xi:include href="go.section.xml" />
diff --git a/nixpkgs/doc/languages-frameworks/ios.section.md b/nixpkgs/doc/languages-frameworks/ios.section.md
index a162e8d19fd3..04b013be12e2 100644
--- a/nixpkgs/doc/languages-frameworks/ios.section.md
+++ b/nixpkgs/doc/languages-frameworks/ios.section.md
@@ -20,8 +20,8 @@ Hydra.
 
 The Xcode build environment implements a number of features.
 
-Deploying a proxy component wrapper exposing Xcode
---------------------------------------------------
+## Deploying a proxy component wrapper exposing Xcode {#deploying-a-proxy-component-wrapper-exposing-xcode}
+
 The first use case is deploying a Nix package that provides symlinks to the Xcode
 installation on the host system. This package can be used as a build input to
 any build function implemented in the Nix expression language that requires
@@ -55,8 +55,8 @@ lrwxr-xr-x  1 sander  staff  61  1 jan  1970 xcodebuild -> /Applications/Xcode.a
 lrwxr-xr-x  1 sander  staff  14  1 jan  1970 xcrun -> /usr/bin/xcrun
 ```
 
-Building an iOS application
----------------------------
+## Building an iOS application {#building-an-ios-application}
+
 We can build an iOS app executable for the simulator, or an IPA/xcarchive file
 for release purposes, e.g. ad-hoc, enterprise or store installations, by
 executing the `xcodeenv.buildApp {}` function:
@@ -99,6 +99,7 @@ xcodeenv.buildApp {
 ```
 
 The above function takes a variety of parameters:
+
 * The `name` and `src` parameters are mandatory and specify the name of the app
   and the location where the source code resides
 * `sdkVersion` specifies which version of the iOS SDK to use.
@@ -151,8 +152,8 @@ the `xcodeenv.composeXcodeWrapper {}` function takes. For example, the
 `xcodeBaseDir` parameter can be overridden to refer to a different Xcode
 version.
 
-Spawning simulator instances
-----------------------------
+## Spawning simulator instances {#spawning-simulator-instances}
+
 In addition to building iOS apps, we can also automatically spawn simulator
 instances:
 
@@ -213,8 +214,8 @@ xcode.simulateApp {
 By providing the result of an `xcode.buildApp {}` function and configuring the
 app bundle id, the app gets deployed automatically and started.
 
-Troubleshooting
----------------
+## Troubleshooting {#troubleshooting}
+
 In some rare cases, it may happen that after a failure, changes are not picked
 up. Most likely, this is caused by a derived data cache that Xcode maintains.
 To wipe it you can run:
diff --git a/nixpkgs/doc/languages-frameworks/lua.section.md b/nixpkgs/doc/languages-frameworks/lua.section.md
index 5935cbd7bd52..ea893ce3a4a7 100644
--- a/nixpkgs/doc/languages-frameworks/lua.section.md
+++ b/nixpkgs/doc/languages-frameworks/lua.section.md
@@ -1,8 +1,8 @@
-# User's Guide to Lua Infrastructure {#users-guide-to-lua-infrastructure}
+# User’s Guide to Lua Infrastructure {#users-guide-to-lua-infrastructure}
 
-## Using Lua
+## Using Lua {#using-lua}
 
-### Overview of Lua
+### Overview of Lua {#overview-of-lua}
 
 Several versions of the Lua interpreter are available: luajit, lua 5.1, 5.2, 5.3.
 The attribute `lua` refers to the default interpreter, it is also possible to refer to specific versions, e.g. `lua5_2` refers to Lua 5.2.
@@ -17,27 +17,31 @@ The main package set contains aliases to these package sets, e.g.
 `luaPackages` refers to `lua5_1.pkgs` and `lua52Packages` to
 `lua5_2.pkgs`.
 
-### Installing Lua and packages
+### Installing Lua and packages {#installing-lua-and-packages}
 
-#### Lua environment defined in separate `.nix` file
+#### Lua environment defined in separate `.nix` file {#lua-environment-defined-in-separate-.nix-file}
 
 Create a file, e.g. `build.nix`, with the following expression
+
 ```nix
 with import <nixpkgs> {};
 
 lua5_2.withPackages (ps: with ps; [ busted luafilesystem ])
 ```
+
 and install it in your profile with
+
 ```shell
 nix-env -if build.nix
 ```
 Now you can use the Lua interpreter, as well as the extra packages (`busted`,
 `luafilesystem`) that you added to the environment.
 
-#### Lua environment defined in `~/.config/nixpkgs/config.nix`
+#### Lua environment defined in `~/.config/nixpkgs/config.nix` {#lua-environment-defined-in-.confignixpkgsconfig.nix}
 
 If you prefer to, you could also add the environment as a package override to the Nixpkgs set, e.g.
 using `config.nix`,
+
 ```nix
 { # ...
 
@@ -46,14 +50,16 @@ using `config.nix`,
   };
 }
 ```
+
 and install it in your profile with
+
 ```shell
 nix-env -iA nixpkgs.myLuaEnv
 ```
 The environment is installed by referring to the attribute, and considering
 the `nixpkgs` channel was used.
 
-#### Lua environment defined in `/etc/nixos/configuration.nix`
+#### Lua environment defined in `/etc/nixos/configuration.nix` {#lua-environment-defined-in-etcnixosconfiguration.nix}
 
 For the sake of completeness, here's another example how to install the environment system-wide.
 
@@ -66,7 +72,7 @@ For the sake of completeness, here's another example how to install the environm
 }
 ```
 
-### How to override a Lua package using overlays?
+### How to override a Lua package using overlays? {#how-to-override-a-lua-package-using-overlays}
 
 Use the following overlay template:
 
@@ -87,18 +93,22 @@ final: prev:
 }
 ```
 
-### Temporary Lua environment with `nix-shell`
+### Temporary Lua environment with `nix-shell` {#temporary-lua-environment-with-nix-shell}
 
 
 There are two methods for loading a shell with Lua packages. The first and recommended method
 is to create an environment with `lua.buildEnv` or `lua.withPackages` and load that. E.g.
+
 ```sh
 $ nix-shell -p 'lua.withPackages(ps: with ps; [ busted luafilesystem ])'
 ```
+
 opens a shell from which you can launch the interpreter
+
 ```sh
 [nix-shell:~] lua
 ```
+
 The other method, which is not recommended, does not create an environment and requires you to list the packages directly,
 
 ```sh
@@ -108,7 +118,7 @@ Again, it is possible to launch the interpreter from the shell.
 The Lua interpreter has the attribute `pkgs` which contains all Lua libraries for that specific interpreter.
 
 
-## Developing with Lua
+## Developing with Lua {#developing-with-lua}
 
 Now that you know how to get a working Lua environment with Nix, it is time
 to go forward and start actually developing with Lua. There are two ways to
@@ -116,7 +126,7 @@ package lua software, either it is on luarocks and most of it can be taken care
 of by the luarocks2nix converter or the packaging has to be done manually.
 Let's present the luarocks way first and the manual one in a second time.
 
-### Packaging a library on luarocks
+### Packaging a library on luarocks {#packaging-a-library-on-luarocks}
 
 [Luarocks.org](www.luarocks.org) is the main repository of lua packages.
 The site proposes two types of packages, the rockspec and the src.rock
@@ -135,10 +145,11 @@ You can try converting luarocks packages to nix packages with the command `nix-s
 Nix rely on luarocks to install lua packages, basically it runs:
 `luarocks make --deps-mode=none --tree $out`
 
-#### Packaging a library manually
+#### Packaging a library manually {#packaging-a-library-manually}
 
 You can develop your package as you usually would, just don't forget to wrap it
 within a `toLuaModule` call, for instance
+
 ```nix
 mynewlib = toLuaModule ( stdenv.mkDerivation { ... });
 ```
@@ -146,16 +157,15 @@ mynewlib = toLuaModule ( stdenv.mkDerivation { ... });
 There is also the `buildLuaPackage` function that can be used when lua modules
 are not packaged for luarocks. You can see a few examples at `pkgs/top-level/lua-packages.nix`.
 
-## Lua Reference
+## Lua Reference {#lua-reference}
 
-### Lua interpreters
+### Lua interpreters {#lua-interpreters}
 
 Versions 5.1, 5.2 and 5.3 of the lua interpreter are available as
 respectively `lua5_1`, `lua5_2` and `lua5_3`. Luajit is available too.
 The Nix expressions for the interpreters can be found in `pkgs/development/interpreters/lua-5`.
 
-
-#### Attributes on lua interpreters packages
+#### Attributes on lua interpreters packages {#attributes-on-lua-interpreters-packages}
 
 Each interpreter has the following attributes:
 
@@ -164,8 +174,7 @@ Each interpreter has the following attributes:
 - `withPackages`. Simpler interface to `buildEnv`.
 - `pkgs`. Set of Lua packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`.
 
-
-#### `buildLuarocksPackage` function
+#### `buildLuarocksPackage` function {#buildluarockspackage-function}
 
 The `buildLuarocksPackage` function is implemented in `pkgs/development/interpreters/lua-5/build-lua-package.nix`
 The following is an example:
@@ -205,16 +214,17 @@ install the package
 
 By default `meta.platforms` is set to the same value as the interpreter unless overridden otherwise.
 
-#### `buildLuaApplication` function
+#### `buildLuaApplication` function {#buildluaapplication-function}
 
 The `buildLuaApplication` function is practically the same as `buildLuaPackage`.
 The difference is that `buildLuaPackage` by default prefixes the names of the packages with the version of the interpreter.
 Because with an application we're not interested in multiple version the prefix is dropped.
 
-#### lua.withPackages function
+#### lua.withPackages function {#lua.withpackages-function}
 
 The `lua.withPackages` takes a function as an argument that is passed the set of lua packages and returns the list of packages to be included in the environment.
 Using the `withPackages` function, the previous example for the luafilesystem environment can be written like this:
+
 ```nix
 with import <nixpkgs> {};
 
@@ -223,6 +233,7 @@ lua.withPackages (ps: [ps.luafilesystem])
 
 `withPackages` passes the correct package set for the specific interpreter version as an argument to the function. In the above example, `ps` equals `luaPackages`.
 But you can also easily switch to using `lua5_2`:
+
 ```nix
 with import <nixpkgs> {};
 
@@ -231,13 +242,12 @@ lua5_2.withPackages (ps: [ps.lua])
 
 Now, `ps` is set to `lua52Packages`, matching the version of the interpreter.
 
-
-### Possible Todos
+### Possible Todos {#possible-todos}
 
 * export/use version specific variables such as `LUA_PATH_5_2`/`LUAROCKS_CONFIG_5_2`
 * let luarocks check for dependencies via exporting the different rocktrees in temporary config
 
-### Lua Contributing guidelines
+### Lua Contributing guidelines {#lua-contributing-guidelines}
 
 Following rules should be respected:
 
diff --git a/nixpkgs/doc/languages-frameworks/maven.section.md b/nixpkgs/doc/languages-frameworks/maven.section.md
index d66931e808d7..f53a6fa8ac22 100644
--- a/nixpkgs/doc/languages-frameworks/maven.section.md
+++ b/nixpkgs/doc/languages-frameworks/maven.section.md
@@ -43,9 +43,9 @@ public class Main {
 
 You find this demo project at https://github.com/fzakaria/nixos-maven-example
 
-## Solving for dependencies
+## Solving for dependencies {#solving-for-dependencies}
 
-### buildMaven with NixOS/mvn2nix-maven-plugin
+### buildMaven with NixOS/mvn2nix-maven-plugin {#buildmaven-with-nixosmvn2nix-maven-plugin}
 
 > ⚠️ Although `buildMaven` is the "blessed" way within nixpkgs, as of 2020, it hasn't seen much activity in quite a while.
 
@@ -82,6 +82,7 @@ This file is then given to the `buildMaven` function, and it returns 2 attribute
     A simple derivation that runs through `mvn compile` & `mvn package` to build the JAR. You may use this as inspiration for more complicated derivations.
 
 Here is an [example](https://github.com/fzakaria/nixos-maven-example/blob/main/build-maven-repository.nix) of building the Maven repository
+
 ```nix
 { pkgs ? import <nixpkgs> { } }:
 with pkgs;
@@ -103,7 +104,8 @@ The benefit over the _double invocation_ as we will see below, is that the _/nix
 │       └── 4.1.3
 │           ├── avalon-framework-4.1.3.jar -> /nix/store/iv5fp3955w3nq28ff9xfz86wvxbiw6n9-avalon-framework-4.1.3.jar
 ```
-### Double Invocation
+
+### Double Invocation {#double-invocation}
 
 > ⚠️ This pattern is the simplest but may cause unnecessary rebuilds due to the output hash changing.
 
@@ -163,7 +165,7 @@ The build will fail, and tell you the expected `outputHash` to place. When you'v
 
 If your package uses _SNAPSHOT_ dependencies or _version ranges_; there is a strong likelihood that over-time your output hash will change since the resolved dependencies may change. Hence this method is less recommended then using `buildMaven`.
 
-## Building a JAR
+## Building a JAR {#building-a-jar}
 
 Regardless of which strategy is chosen above, the step to build the derivation is the same.
 
@@ -201,7 +203,7 @@ in stdenv.mkDerivation rec {
 2 directories, 1 file
 ```
 
-## Runnable JAR
+## Runnable JAR {#runnable-jar}
 
 The previous example builds a `jar` file but that's not a file one can run.
 
@@ -213,7 +215,7 @@ We will use the same repository we built above (either _double invocation_ or _b
 
 The following two methods are more suited to Nix then building an [UberJar](https://imagej.net/Uber-JAR) which may be the more traditional approach.
 
-### CLASSPATH
+### CLASSPATH {#classpath}
 
 > This is ideal if you are providing a derivation for _nixpkgs_ and don't want to patch the project's `pom.xml`.
 
@@ -252,11 +254,12 @@ in stdenv.mkDerivation rec {
 }
 ```
 
-### MANIFEST file via Maven Plugin
+### MANIFEST file via Maven Plugin {#manifest-file-via-maven-plugin}
 
 > This is ideal if you are the project owner and want to change your `pom.xml` to set the CLASSPATH within it.
 
 Augment the `pom.xml` to create a JAR with the following manifest:
+
 ```xml
 <build>
   <plugins>
diff --git a/nixpkgs/doc/languages-frameworks/python.section.md b/nixpkgs/doc/languages-frameworks/python.section.md
index 96ac61ab54c5..54face47d1ed 100644
--- a/nixpkgs/doc/languages-frameworks/python.section.md
+++ b/nixpkgs/doc/languages-frameworks/python.section.md
@@ -1,10 +1,10 @@
 # Python {#python}
 
-## User Guide
+## User Guide {#user-guide}
 
-### Using Python
+### Using Python {#using-python}
 
-#### Overview
+#### Overview {#overview}
 
 Several versions of the Python interpreter are available on Nix, as well as a
 high amount of packages. The attribute `python3` refers to the default
@@ -31,7 +31,7 @@ The main package set contains aliases to these package sets, e.g.
 `pythonPackages` refers to `python.pkgs` and `python38Packages` to
 `python38.pkgs`.
 
-#### Installing Python and packages
+#### Installing Python and packages {#installing-python-and-packages}
 
 The Nix and NixOS manuals explain how packages are generally installed. In the
 case of Python and Nix, it is important to make a distinction between whether the
@@ -62,7 +62,7 @@ Philosphically, this should be familiar to users who are used to a `venv` style
 of development: individual projects create their own Python environments without
 impacting the global environment or each other.
 
-#### Ad-hoc temporary Python environment with `nix-shell`
+#### Ad-hoc temporary Python environment with `nix-shell` {#ad-hoc-temporary-python-environment-with-nix-shell}
 
 The simplest way to start playing with the way nix wraps and sets up Python
 environments is with `nix-shell` at the cmdline. These environments create a
@@ -131,7 +131,7 @@ arbitrary dependencies. This is a good way to get a feel for how the Python
 interpreter and dependencies work in Nix and NixOS, but to do some actual
 development, we'll want to make it a bit more persistent.
 
-##### Running Python scripts and using `nix-shell` as shebang
+##### Running Python scripts and using `nix-shell` as shebang {#running-python-scripts-and-using-nix-shell-as-shebang}
 
 Sometimes, we have a script whose header looks like this:
 
@@ -146,7 +146,7 @@ print(f"The dot product of {a} and {b} is: {np.dot(a, b)}")
 Executing this script requires a `python3` that has `numpy`. Using what we learned
 in the previous section, we could startup a shell and just run it like so:
 
-```ShellSesssion
+```ShellSession
 $ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
 The dot product of [1 2] and [3 4] is: 11
 ```
@@ -203,7 +203,7 @@ of the package versions.
 This is also a great way to ensure the script executes identically on different
 servers.
 
-##### Load environment from `.nix` expression
+##### Load environment from `.nix` expression {#load-environment-from-.nix-expression}
 
 We've now seen how to create an ad-hoc temporary shell session, and how to
 create a single script with Python dependencies, but in the course of normal
@@ -245,7 +245,7 @@ let
     ps.toolz
   ]);
 in mkShell {
-  buildInputs = [
+  packages = [
     pythonEnv
 
     black
@@ -262,7 +262,7 @@ and its Python dependencies, but also tools like `black` or `mypy` and libraries
 like `libffi` the `openssl` in scope. This is generic and can span any number of
 tools or languages across the Nixpkgs ecosystem.
 
-##### Installing environments globally on the system
+##### Installing environments globally on the system {#installing-environments-globally-on-the-system}
 
 Up to now, we've been creating environments scoped to an ad-hoc shell session,
 or a single script, or a single project. This is generally advisable, as it
@@ -315,7 +315,7 @@ If you get a conflict or prefer to keep the setup clean, you can have `nix-env`
 atomically *uninstall* all other imperatively installed packages and replace
 your profile with just `myEnv` by using the `--replace` flag.
 
-##### Environment defined in `/etc/nixos/configuration.nix`
+##### Environment defined in `/etc/nixos/configuration.nix` {#environment-defined-in-etcnixosconfiguration.nix}
 
 For the sake of completeness, here's how to install the environment system-wide
 on NixOS.
@@ -329,7 +329,7 @@ on NixOS.
 }
 ```
 
-### Developing with Python
+### Developing with Python {#developing-with-python}
 
 Above, we were mostly just focused on use cases and what to do to get started
 creating working Python environments in nix.
@@ -338,7 +338,7 @@ Now that you know the basics to be up and running, it is time to take a step
 back and take a deeper look at how Python packages are packaged on Nix. Then,
 we will look at how you can use development mode with your code.
 
-#### Python library packages in Nixpkgs
+#### Python library packages in Nixpkgs {#python-library-packages-in-nixpkgs}
 
 With Nix all packages are built by functions. The main function in Nix for
 building Python libraries is `buildPythonPackage`. Let's see how we can build the
@@ -425,7 +425,7 @@ of `withPackages` we used a `let` expression. You can see that we used
 `toolz` from the Nixpkgs package set this time, but instead took our own version
 that we introduced with the `let` expression.
 
-#### Handling dependencies
+#### Handling dependencies {#handling-dependencies}
 
 Our example, `toolz`, does not have any dependencies on other Python packages or
 system libraries. According to the manual, `buildPythonPackage` uses the
@@ -537,9 +537,10 @@ buildPythonPackage rec {
   };
 }
 ```
+
 Note also the line `doCheck = false;`, we explicitly disabled running the test-suite.
 
-#### Testing Python Packages
+#### Testing Python Packages {#testing-python-packages}
 
 It is highly encouraged to have testing as part of the package build. This
 helps to avoid situations where the package was able to build and install,
@@ -559,10 +560,11 @@ thus can cause issues when a test suite asserts on that behavior.
 as many tests should be enabled as possible. Failing tests can still be
 a good indication that the package is not in a valid state.
 
-#### Using pytest
+#### Using pytest {#using-pytest}
 
 Pytest is the most common test runner for python repositories. A trivial
 test run would be:
+
 ```
   checkInputs = [ pytest ];
   checkPhase = "pytest";
@@ -572,6 +574,7 @@ However, many repositories' test suites do not translate well to nix's build
 sandbox, and will generally need many tests to be disabled.
 
 To filter tests using pytest, one can do the following:
+
 ```
   checkInputs = [ pytest ];
   # avoid tests which need additional data or touch network
@@ -587,19 +590,20 @@ easier than having to create a new package.
 
 `-k` is used to define a predicate for test names. In this example, we are
 filtering out tests which contain `download` or `update` in their test case name.
-Only one `-k` argument is allows, and thus a long predicate should be concatenated
-with "\" and wrapped to the next line.
+Only one `-k` argument is allowed, and thus a long predicate should be concatenated
+with “\\” and wrapped to the next line.
 
-*NOTE:* In pytest==6.0.1, the use of "\" to continue a line (e.g. `-k 'not download \'`) has
+*NOTE:* In pytest==6.0.1, the use of “\\” to continue a line (e.g. `-k 'not download \'`) has
 been removed, in this case, it's recommended to use `pytestCheckHook`.
 
-#### Using pytestCheckHook
+#### Using pytestCheckHook {#using-pytestcheckhook}
 
 `pytestCheckHook` is a convenient hook which will substitute the setuptools
 `test` command for a checkPhase which runs `pytest`. This is also beneficial
 when a package may need many items disabled to run the test suite.
 
 Using the example above, the analagous pytestCheckHook usage would be:
+
 ```
   checkInputs = [ pytestCheckHook ];
 
@@ -637,7 +641,7 @@ Trying to concatenate the related strings to disable tests in a regular checkPha
 would be much harder to read. This also enables us to comment on why specific tests
 are disabled.
 
-#### Using pythonImportsCheck
+#### Using pythonImportsCheck {#using-pythonimportscheck}
 
 Although unit tests are highly prefered to validate correctness of a package, not
 all packages have test suites that can be ran easily, and some have none at all.
@@ -659,7 +663,7 @@ However, this is done in it's own phase, and not dependent on whether `doCheck =
 This can also be useful in verifying that the package doesn't assume commonly
 present packages (e.g. `setuptools`)
 
-### Develop local package
+### Develop local package {#develop-local-package}
 
 As a Python developer you're likely aware of [development mode](http://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode)
 (`python setup.py develop`); instead of installing the package this command
@@ -694,7 +698,7 @@ buildPythonPackage rec {
 It is important to note that due to how development mode is implemented on Nix
 it is not possible to have multiple packages simultaneously in development mode.
 
-### Organising your packages
+### Organising your packages {#organising-your-packages}
 
 So far we discussed how you can use Python on Nix, and how you can develop with
 it. We've looked at how you write expressions to package Python packages, and we
@@ -706,7 +710,7 @@ like to be able to use in different projects. In order to minimise unnecessary
 duplication we now look at how you can maintain a repository with your
 own packages. The important functions here are `import` and `callPackage`.
 
-### Including a derivation using `callPackage`
+### Including a derivation using `callPackage` {#including-a-derivation-using-callpackage}
 
 Earlier we created a Python environment using `withPackages`, and included the
 `toolz` package via a `let` expression.
@@ -756,9 +760,9 @@ don't explicitly define which `python` derivation should be used. In the above
 example we use `buildPythonPackage` that is part of the set `python38Packages`,
 and in this case the `python38` interpreter is automatically used.
 
-## Reference
+## Reference {#reference}
 
-### Interpreters
+### Interpreters {#interpreters}
 
 Versions 2.7, 3.6, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
 respectively `python27`, `python36`, `python37`, `python38` and `python39`. The
@@ -773,11 +777,11 @@ All packages depending on any Python interpreter get appended
 `out/{python.sitePackages}` to `$PYTHONPATH` if such directory
 exists.
 
-#### Missing `tkinter` module standard library
+#### Missing `tkinter` module standard library {#missing-tkinter-module-standard-library}
 
 To reduce closure size the `Tkinter`/`tkinter` is available as a separate package, `pythonPackages.tkinter`.
 
-#### Attributes on interpreters packages
+#### Attributes on interpreters packages {#attributes-on-interpreters-packages}
 
 Each interpreter has the following attributes:
 
@@ -789,7 +793,7 @@ Each interpreter has the following attributes:
 - `executable`. Name of the interpreter executable, e.g. `python3.8`.
 - `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`.
 
-### Optimizations
+### Optimizations {#optimizations}
 
 The Python interpreters are by default not build with optimizations enabled, because
 the builds are in that case not reproducible. To enable optimizations, override the
@@ -806,7 +810,7 @@ let
 in mypython
 ```
 
-### Building packages and applications
+### Building packages and applications {#building-packages-and-applications}
 
 Python libraries and applications that use `setuptools` or
 `distutils` are typically built with respectively the `buildPythonPackage` and
@@ -838,7 +842,7 @@ and the aliases
 * `pkgs.python3Packages` pointing to `pkgs.python38Packages`
 * `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
 
-#### `buildPythonPackage` function
+#### `buildPythonPackage` function {#buildpythonpackage-function}
 
 The `buildPythonPackage` function is implemented in
 `pkgs/development/interpreters/python/mk-python-derivation`
@@ -847,7 +851,7 @@ using setup hooks.
 The following is an example:
 
 ```nix
-{ lib, buildPythonPackage, fetchPypi, hypothesis, setuptools_scm, attrs, py, setuptools, six, pluggy }:
+{ lib, buildPythonPackage, fetchPypi, hypothesis, setuptools-scm, attrs, py, setuptools, six, pluggy }:
 
 buildPythonPackage rec {
   pname = "pytest";
@@ -864,7 +868,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [ hypothesis ];
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ attrs py setuptools six pluggy ];
 
   meta = with lib; {
@@ -890,7 +894,7 @@ e.g. the test runner, should be added to `checkInputs`.
 By default `meta.platforms` is set to the same value
 as the interpreter unless overridden otherwise.
 
-##### `buildPythonPackage` parameters
+##### `buildPythonPackage` parameters {#buildpythonpackage-parameters}
 
 All parameters from `stdenv.mkDerivation` function are still supported. The
 following are specific to `buildPythonPackage`:
@@ -946,7 +950,7 @@ because their behaviour is different:
   `buildPythonPackage` also injects code into and wraps executables with the
   paths included in this list. Items listed in `install_requires` go here.
 
-##### Overriding Python packages
+##### Overriding Python packages {#overriding-python-packages}
 
 The `buildPythonPackage` function has a `overridePythonAttrs` method that can be
 used to override the package. In the following example we create an environment
@@ -974,7 +978,7 @@ with import <nixpkgs> {};
 in python.withPackages(ps: [ps.blaze])).env
 ```
 
-#### `buildPythonApplication` function
+#### `buildPythonApplication` function {#buildpythonapplication-function}
 
 The `buildPythonApplication` function is practically the same as
 `buildPythonPackage`. The main purpose of this function is to build a Python
@@ -1019,7 +1023,7 @@ luigi = callPackage ../applications/networking/cluster/luigi { };
 Since the package is an application, a consumer doesn't need to care about
 Python versions or modules, which is why they don't go in `pythonPackages`.
 
-#### `toPythonApplication` function
+#### `toPythonApplication` function {#topythonapplication-function}
 
 A distinction is made between applications and libraries, however, sometimes a
 package is used as both. In this case the package is added as a library to
@@ -1031,11 +1035,12 @@ The Nix expression shall use `buildPythonPackage` and be called from
 `python-packages.nix`. A reference shall be created from `all-packages.nix` to
 the attribute in `python-packages.nix`, and the `toPythonApplication` shall be
 applied to the reference:
+
 ```nix
 youtube-dl = with pythonPackages; toPythonApplication youtube-dl;
 ```
 
-#### `toPythonModule` function
+#### `toPythonModule` function {#topythonmodule-function}
 
 In some cases, such as bindings, a package is created using
 `stdenv.mkDerivation` and added as attribute in `all-packages.nix`. The Python
@@ -1052,7 +1057,7 @@ opencv = toPythonModule (pkgs.opencv.override {
 
 Do pay attention to passing in the right Python version!
 
-#### `python.buildEnv` function
+#### `python.buildEnv` function {#python.buildenv-function}
 
 Python environments can be created using the low-level `pkgs.buildEnv` function.
 This example shows how to create an environment that has the Pyramid Web Framework.
@@ -1090,8 +1095,8 @@ with import <nixpkgs> {};
 will drop you into a shell where Python will have the
 specified packages in its path.
 
+##### `python.buildEnv` arguments {#python.buildenv-arguments}
 
-##### `python.buildEnv` arguments
 
 * `extraLibs`: List of packages installed inside the environment.
 * `postBuild`: Shell command executed after the build of environment.
@@ -1099,7 +1104,7 @@ specified packages in its path.
 * `permitUserSite`: Skip setting the `PYTHONNOUSERSITE` environment variable in
   wrapped binaries in the environment.
 
-#### `python.withPackages` function
+#### `python.withPackages` function {#python.withpackages-function}
 
 The `python.withPackages` function provides a simpler interface to the `python.buildEnv` functionality.
 It takes a function as an argument that is passed the set of python packages and returns the list
@@ -1141,7 +1146,7 @@ need them, you have to use `python.buildEnv`.
 Python 2 namespace packages may provide `__init__.py` that collide. In that case
 `python.buildEnv` should be used with `ignoreCollisions = true`.
 
-#### Setup hooks
+#### Setup hooks {#setup-hooks}
 
 The following are setup hooks specifically for Python packages. Most of these
 are used in `buildPythonPackage`.
@@ -1166,7 +1171,7 @@ are used in `buildPythonPackage`.
 - `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
   with the `pipInstallHook`.
 
-### Development mode
+### Development mode {#development-mode}
 
 Development or editable mode is supported. To develop Python packages
 `buildPythonPackage` has additional logic inside `shellPhase` to run `pip
@@ -1175,6 +1180,7 @@ install -e . --prefix $TMPDIR/`for the package.
 Warning: `shellPhase` is executed only if `setup.py` exists.
 
 Given a `default.nix`:
+
 ```nix
 with import <nixpkgs> {};
 
@@ -1197,7 +1203,7 @@ nix-shell -p pythonPackages.pyramid zlib libjpeg git
 
 Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked.
 
-### Tools
+### Tools {#tools}
 
 Packages inside nixpkgs are written by hand. However many tools exist in
 community to help save time. No tool is preferred at the moment.
@@ -1209,7 +1215,7 @@ community to help save time. No tool is preferred at the moment.
 - [nixpkgs-pytools](https://github.com/nix-community/nixpkgs-pytools)
 - [poetry2nix](https://github.com/nix-community/poetry2nix)
 
-### Deterministic builds
+### Deterministic builds {#deterministic-builds}
 
 The Python interpreters are now built deterministically. Minor modifications had
 to be made to the interpreters in order to generate deterministic bytecode. This
@@ -1221,7 +1227,7 @@ have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1`
 and [PYTHONHASHSEED=0](https://docs.python.org/3.8/using/cmdline.html#envvar-PYTHONHASHSEED).
 Both are also exported in `nix-shell`.
 
-### Automatic tests
+### Automatic tests {#automatic-tests}
 
 It is recommended to test packages as part of the build process.
 Source distributions (`sdist`) often include test files, but not always.
@@ -1230,7 +1236,7 @@ By default the command `python setup.py test` is run as part of the
 `checkPhase`, but often it is necessary to pass a custom `checkPhase`. An
 example of such a situation is when `py.test` is used.
 
-#### Common issues
+#### Common issues {#common-issues}
 
 * Non-working tests can often be deselected. By default `buildPythonPackage`
   runs `python setup.py test`. Most Python modules follows the standard test
@@ -1247,18 +1253,19 @@ example of such a situation is when `py.test` is used.
     '';
   }
   ```
+
 * Tests that attempt to access `$HOME` can be fixed by using the following
   work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)`
 
-## FAQ
+## FAQ {#faq}
 
-### How to solve circular dependencies?
+### How to solve circular dependencies? {#how-to-solve-circular-dependencies}
 
 Consider the packages `A` and `B` that depend on each other. When packaging `B`,
 a solution is to override package `A` not to depend on `B` as an input. The same
 should also be done when packaging `A`.
 
-### How to override a Python package?
+### How to override a Python package? {#how-to-override-a-python-package}
 
 We can override the interpreter and pass `packageOverrides`. In the following
 example we rename the `pandas` package and build it.
@@ -1316,7 +1323,7 @@ let
 in newpkgs.inkscape
 ```
 
-### `python setup.py bdist_wheel` cannot create .whl
+### `python setup.py bdist_wheel` cannot create .whl {#python-setup.py-bdist_wheel-cannot-create-.whl}
 
 Executing `python setup.py bdist_wheel` in a `nix-shell `fails with
 ```
@@ -1349,7 +1356,7 @@ or unset `SOURCE_DATE_EPOCH`:
 nix-shell --run "unset SOURCE_DATE_EPOCH; python3 setup.py bdist_wheel"
 ```
 
-### `install_data` / `data_files` problems
+### `install_data` / `data_files` problems {#install_data-data_files-problems}
 
 If you get the following error:
 
@@ -1369,7 +1376,7 @@ ${python.interpreter} setup.py install_data --install-dir=$out --root=$out
 sed -i '/ = data\_files/d' setup.py
 ```
 
-###  Rationale of non-existent global site-packages
+### Rationale of non-existent global site-packages {#rationale-of-non-existent-global-site-packages}
 
 On most operating systems a global `site-packages` is maintained. This however
 becomes problematic if you want to run multiple Python versions or have multiple
@@ -1384,7 +1391,7 @@ If you want to create a Python environment for development, then the recommended
 method is to use `nix-shell`, either with or without the `python.buildEnv`
 function.
 
-### How to consume Python modules using pip in a virtual environment like I am used to on other Operating Systems?
+### How to consume Python modules using pip in a virtual environment like I am used to on other Operating Systems? {#how-to-consume-python-modules-using-pip-in-a-virtual-environment-like-i-am-used-to-on-other-operating-systems}
 
 While this approach is not very idiomatic from Nix perspective, it can still be
 useful when dealing with pre-existing projects or in situations where it's not
@@ -1497,7 +1504,7 @@ is executed it will attempt to download the Python modules listed in
 requirements.txt. However these will be cached locally within the `virtualenv`
 folder and not downloaded again.
 
-### How to override a Python package from `configuration.nix`?
+### How to override a Python package from `configuration.nix`? {#how-to-override-a-python-package-from-configuration.nix}
 
 If you need to change a package's attribute(s) from `configuration.nix` you could do:
 
@@ -1535,7 +1542,7 @@ this snippet:
   }
 ```
 
-### How to override a Python package using overlays?
+### How to override a Python package using overlays? {#how-to-override-a-python-package-using-overlays}
 
 Use the following overlay template:
 
@@ -1556,12 +1563,12 @@ self: super: {
 }
 ```
 
-### How to use Intel's MKL with numpy and scipy?
+### How to use Intel’s MKL with numpy and scipy? {#how-to-use-intels-mkl-with-numpy-and-scipy}
 
 MKL can be configured using an overlay. See the section "[Using overlays to
 configure alternatives](#sec-overlays-alternatives-blas-lapack)".
 
-### What inputs do `setup_requires`, `install_requires` and `tests_require` map to?
+### What inputs do `setup_requires`, `install_requires` and `tests_require` map to? {#what-inputs-do-setup_requires-install_requires-and-tests_require-map-to}
 
 In a `setup.py` or `setup.cfg` it is common to declare dependencies:
 
@@ -1569,9 +1576,9 @@ In a `setup.py` or `setup.cfg` it is common to declare dependencies:
 * `install_requires` corresponds to `propagatedBuildInputs`
 * `tests_require` corresponds to `checkInputs`
 
-## Contributing
+## Contributing {#contributing}
 
-### Contributing guidelines
+### Contributing guidelines {#contributing-guidelines}
 
 The following rules are desired to be respected:
 
diff --git a/nixpkgs/doc/languages-frameworks/qt.section.md b/nixpkgs/doc/languages-frameworks/qt.section.md
index 6f8c9626e6de..986deeb0d4b2 100644
--- a/nixpkgs/doc/languages-frameworks/qt.section.md
+++ b/nixpkgs/doc/languages-frameworks/qt.section.md
@@ -90,19 +90,21 @@ stdenv.mkDerivation {
 }
 ```
 
-::: note
+::: {.note}
 `wrapQtAppsHook` ignores files that are non-ELF executables.
 This means that scripts won't be automatically wrapped so you'll need to manually wrap them as previously mentioned.
 An example of when you'd always need to do this is with Python applications that use PyQt.
 :::
 
-## Adding a library to Nixpkgs
+## Adding a library to Nixpkgs {#adding-a-library-to-nixpkgs}
+
 Add Qt libraries to `qt5-packages.nix` to make them available for every
 supported Qt version.
 
 ### Example adding a Qt library {#qt-library-all-packages-nix}
 
 The following represents the contents of `qt5-packages.nix`.
+
 ```nix
 {
   # ...
@@ -126,13 +128,15 @@ stdenv.mkDerivation {
 }
 ```
 
-## Adding an application to Nixpkgs
+## Adding an application to Nixpkgs {#adding-an-application-to-nixpkgs}
+
 Add Qt applications to `qt5-packages.nix`. Add an alias to `all-packages.nix`
 to select the Qt 5 version used for the application.
 
 ### Example adding a Qt application {#qt-application-all-packages-nix}
 
 The following represents the contents of `qt5-packages.nix`.
+
 ```nix
 {
   # ...
@@ -144,6 +148,7 @@ The following represents the contents of `qt5-packages.nix`.
 ```
 
 The following represents the contents of `all-packages.nix`.
+
 ```nix
 {
   # ...
diff --git a/nixpkgs/doc/languages-frameworks/r.section.md b/nixpkgs/doc/languages-frameworks/r.section.md
index c420d112c91e..56e3da64df2a 100644
--- a/nixpkgs/doc/languages-frameworks/r.section.md
+++ b/nixpkgs/doc/languages-frameworks/r.section.md
@@ -1,6 +1,6 @@
 # R {#r}
 
-## Installation
+## Installation {#installation}
 
 Define an environment for R that contains all the libraries that you'd like to
 use by adding the following snippet to your $HOME/.config/nixpkgs/config.nix file:
@@ -31,6 +31,7 @@ output is the name that has to be passed to rWrapper in the code snipped above.
 However, if you'd like to add a file to your project source to make the
 environment available for other contributors, you can create a `default.nix`
 file like so:
+
 ```nix
 with import <nixpkgs> {};
 {
@@ -50,7 +51,7 @@ with import <nixpkgs> {};
 and then run `nix-shell .` to be dropped into a shell with those packages
 available.
 
-## RStudio
+## RStudio {#rstudio}
 
 RStudio uses a standard set of packages and ignores any custom R
 environments or installed packages you may have.  To create a custom
@@ -93,7 +94,7 @@ Executing `nix-shell` will then drop you into an environment equivalent to the
 one above. If you need additional packages just add them to the list and
 re-enter the shell.
 
-## Updating the package set
+## Updating the package set {#updating-the-package-set}
 
 ```bash
 nix-shell generate-shell.nix
@@ -113,8 +114,7 @@ mv bioc-experiment-packages.nix.new bioc-experiment-packages.nix
 
 `generate-r-packages.R <repo>` reads  `<repo>-packages.nix`, therefor the renaming.
 
-
-## Testing if the Nix-expression could be evaluated
+## Testing if the Nix-expression could be evaluated {#testing-if-the-nix-expression-could-be-evaluated}
 
 ```bash
 nix-build test-evaluation.nix --dry-run
diff --git a/nixpkgs/doc/languages-frameworks/ruby.section.md b/nixpkgs/doc/languages-frameworks/ruby.section.md
index c519d79d3daf..36b794458cba 100644
--- a/nixpkgs/doc/languages-frameworks/ruby.section.md
+++ b/nixpkgs/doc/languages-frameworks/ruby.section.md
@@ -1,6 +1,6 @@
 # Ruby {#sec-language-ruby}
 
-## Using Ruby
+## Using Ruby {#using-ruby}
 
 Several versions of Ruby interpreters are available on Nix, as well as over 250 gems and many applications written in Ruby. The attribute `ruby` refers to the default Ruby interpreter, which is currently MRI 2.6. It's also possible to refer to specific versions, e.g. `ruby_2_y`, `jruby`, or `mruby`.
 
@@ -12,7 +12,7 @@ The interpreters have common attributes, namely `gems`, and `withPackages`. So y
 
 Since not all gems have executables like `nokogiri`, it's usually more convenient to use the `withPackages` function like this: `ruby.withPackages (p: with p; [ nokogiri ])`. This will also make sure that the Ruby in your environment will be able to find the gem and it can be used in your Ruby code (for example via `ruby` or `irb` executables) via `require "nokogiri"` as usual.
 
-### Temporary Ruby environment with `nix-shell`
+### Temporary Ruby environment with `nix-shell` {#temporary-ruby-environment-with-nix-shell}
 
 Rather than having a single Ruby environment shared by all Ruby development projects on a system, Nix allows you to create separate environments per project. `nix-shell` gives you the possibility to temporarily load another environment akin to a combined `chruby` or `rvm` and `bundle exec`.
 
@@ -30,7 +30,7 @@ $ nix-shell -p ruby.gems.nokogiri ruby.gems.pry
 
 Again, it's possible to launch the interpreter from the shell. The Ruby interpreter has the attribute `gems` which contains all Ruby gems for that specific interpreter.
 
-#### Load Ruby environment from `.nix` expression
+#### Load Ruby environment from `.nix` expression {#load-ruby-environment-from-.nix-expression}
 
 As explained in the Nix manual, `nix-shell` can also load an expression from a `.nix` file. Say we want to have Ruby 2.6, `nokogori`, and `pry`. Consider a `shell.nix` file with:
 
@@ -45,7 +45,7 @@ What's happening here?
 2. Then we create a Ruby environment with the `withPackages` function.
 3. The `withPackages` function expects us to provide a function as an argument that takes the set of all ruby gems and returns a list of packages to include in the environment. Here, we select the packages `nokogiri` and `pry` from the package set.
 
-#### Execute command with `--run`
+#### Execute command with `--run` {#execute-command-with---run}
 
 A convenient flag for `nix-shell` is `--run`. It executes a command in the `nix-shell`. We can e.g. directly open a `pry` REPL:
 
@@ -65,7 +65,7 @@ Or run a script using this environment:
 $ nix-shell -p "ruby.withPackages (ps: with ps; [ nokogiri pry ])" --run "ruby example.rb"
 ```
 
-#### Using `nix-shell` as shebang
+#### Using `nix-shell` as shebang {#using-nix-shell-as-shebang}
 
 In fact, for the last case, there is a more convenient method. You can add a [shebang](<https://en.wikipedia.org/wiki/Shebang_(Unix)>) to your script specifying which dependencies `nix-shell` needs. With the following shebang, you can just execute `./example.rb`, and it will run with all dependencies.
 
@@ -80,9 +80,9 @@ body = RestClient.get('http://example.com').body
 puts Nokogiri::HTML(body).at('h1').text
 ```
 
-## Developing with Ruby
+## Developing with Ruby {#developing-with-ruby}
 
-### Using an existing Gemfile
+### Using an existing Gemfile {#using-an-existing-gemfile}
 
 In most cases, you'll already have a `Gemfile.lock` listing all your dependencies. This can be used to generate a `gemset.nix` which is used to fetch the gems and combine them into a single environment. The reason why you need to have a separate file for this, is that Nix requires you to have a checksum for each input to your build. Since the `Gemfile.lock` that `bundler` generates doesn't provide us with checksums, we have to first download each gem, calculate its SHA256, and store it in this separate file.
 
@@ -106,7 +106,7 @@ let
     name = "gems-for-some-project";
     gemdir = ./.;
   };
-in mkShell { buildInputs = [ gems gems.wrappedRuby ]; }
+in mkShell { packages = [ gems gems.wrappedRuby ]; }
 ```
 
 With this file in your directory, you can run `nix-shell` to build and use the gems. The important parts here are `bundlerEnv` and `wrappedRuby`.
@@ -120,7 +120,7 @@ One common issue that you might have is that you have Ruby 2.6, but also `bundle
 mkShell { buildInputs = [ gems (lowPrio gems.wrappedRuby) ]; }
 ```
 
-### Gem-specific configurations and workarounds
+### Gem-specific configurations and workarounds {#gem-specific-configurations-and-workarounds}
 
 In some cases, especially if the gem has native extensions, you might need to modify the way the gem is built.
 
@@ -201,7 +201,7 @@ $ nix-shell --run 'ruby -rpg -e "puts PG.library_version"'
 
 Of course for this use-case one could also use overlays since the configuration for `pg` depends on the `postgresql` alias, but for demonstration purposes this has to suffice.
 
-### Adding a gem to the default gemset
+### Adding a gem to the default gemset {#adding-a-gem-to-the-default-gemset}
 
 Now that you know how to get a working Ruby environment with Nix, it's time to go forward and start actually developing with Ruby. We will first have a look at how Ruby gems are packaged on Nix. Then, we will look at how you can use development mode with your code.
 
@@ -215,7 +215,7 @@ To test that it works, you can then try using the gem with:
 NIX_PATH=nixpkgs=$PWD nix-shell -p "ruby.withPackages (ps: with ps; [ name-of-your-gem ])"
 ```
 
-### Packaging applications
+### Packaging applications {#packaging-applications}
 
 A common task is to add a ruby executable to nixpkgs, popular examples would be `chef`, `jekyll`, or `sass`. A good way to do that is to use the `bundlerApp` function, that allows you to make a package that only exposes the listed executables, otherwise the package may cause conflicts through common paths like `bin/rake` or `bin/bundler` that aren't meant to be used.
 
@@ -243,7 +243,7 @@ bundlerApp {
 
 All that's left to do is to generate the corresponding `Gemfile.lock` and `gemset.nix` as described above in the `Using an existing Gemfile` section.
 
-#### Packaging executables that require wrapping
+#### Packaging executables that require wrapping {#packaging-executables-that-require-wrapping}
 
 Sometimes your app will depend on other executables at runtime, and tries to find it through the `PATH` environment variable.
 
diff --git a/nixpkgs/doc/languages-frameworks/rust.section.md b/nixpkgs/doc/languages-frameworks/rust.section.md
index d1a6a566774c..f5c664bec20e 100644
--- a/nixpkgs/doc/languages-frameworks/rust.section.md
+++ b/nixpkgs/doc/languages-frameworks/rust.section.md
@@ -15,7 +15,7 @@ For other versions such as daily builds (beta and nightly),
 use either `rustup` from nixpkgs (which will manage the rust installation in your home directory),
 or use Mozilla's [Rust nightlies overlay](#using-the-rust-nightlies-overlay).
 
-## Compiling Rust applications with Cargo
+## Compiling Rust applications with Cargo {#compiling-rust-applications-with-cargo}
 
 Rust applications are packaged by using the `buildRustPackage` helper from `rustPlatform`:
 
@@ -107,8 +107,56 @@ rustPlatform.buildRustPackage rec {
 }
 ```
 
+### Importing a `Cargo.lock` file {#importing-a-cargo.lock-file}
 
-### Cross compilation
+Using `cargoSha256` or `cargoHash` is tedious when using
+`buildRustPackage` within a project, since it requires that the hash
+is updated after every change to `Cargo.lock`. Therefore,
+`buildRustPackage` also supports vendoring dependencies directly from
+a `Cargo.lock` file using the `cargoLock` argument. For example:
+
+```nix
+rustPlatform.buildRustPackage rec {
+  pname = "myproject";
+  version = "1.0.0";
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+  }
+
+  # ...
+}
+```
+
+This will retrieve the dependencies using fixed-output derivations from
+the specified lockfile.
+
+The output hash of each dependency that uses a git source must be
+specified in the `outputHashes` attribute. For example:
+
+```nix
+rustPlatform.buildRustPackage rec {
+  pname = "myproject";
+  version = "1.0.0";
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "finalfusion-0.14.0" = "17f4bsdzpcshwh74w5z119xjy2if6l2wgyjy56v621skr2r8y904";
+    };
+  }
+
+  # ...
+}
+```
+
+If you do not specify an output hash for a git dependency, building
+the package will fail and inform you of which crate needs to be
+added. To find the correct hash, you can first use `lib.fakeSha256` or
+`lib.fakeHash` as a stub hash. Building the package (and thus the
+vendored dependencies) will then inform you of the correct hash.
+
+### Cross compilation {#cross-compilation}
 
 By default, Rust packages are compiled for the host platform, just like any
 other package is.  The `--target` passed to rust tools is computed from this.
@@ -120,6 +168,7 @@ where they are known to differ. But there are ways to customize the argument:
    name will be used instead.
 
    For example:
+
    ```nix
    import <nixpkgs> {
      crossSystem = (import <nixpkgs/lib>).systems.examples.armhf-embedded // {
@@ -127,7 +176,9 @@ where they are known to differ. But there are ways to customize the argument:
      };
    }
    ```
+
    will result in:
+
    ```shell
    --target thumbv7em-none-eabi
    ```
@@ -140,6 +191,7 @@ where they are known to differ. But there are ways to customize the argument:
    will be used instead.
 
    For example:
+
    ```nix
    import <nixpkgs> {
      crossSystem = (import <nixpkgs/lib>).systems.examples.armhf-embedded // {
@@ -148,7 +200,9 @@ where they are known to differ. But there are ways to customize the argument:
      };
    }
    ```
+
    will result in:
+
    ```shell
    --target /nix/store/asdfasdfsadf-thumb-crazy.json # contains {"foo":"","bar":""}
    ```
@@ -172,7 +226,7 @@ ad-hoc escape hatch to `buildRustPackage` can be removed.
 Note that currently custom targets aren't compiled with `std`, so `cargo test`
 will fail. This can be ignored by adding `doCheck = false;` to your derivation.
 
-### Running package tests
+### Running package tests {#running-package-tests}
 
 When using `buildRustPackage`, the `checkPhase` is enabled by default and runs
 `cargo test` on the package to build. To make sure that we don't compile the
@@ -200,7 +254,7 @@ Another attribute, called `checkFlags`, is used to pass arguments to the test
 binary itself, as stated
 (here)[https://doc.rust-lang.org/cargo/commands/cargo-test.html].
 
-#### Tests relying on the structure of the `target/` directory
+#### Tests relying on the structure of the `target/` directory {#tests-relying-on-the-structure-of-the-target-directory}
 
 Some tests may rely on the structure of the `target/` directory. Those tests
 are likely to fail because we use `cargo --target` during the build. This means that
@@ -210,7 +264,7 @@ rather than in `target/release/`.
 
 This can only be worked around by patching the affected tests accordingly.
 
-#### Disabling package-tests
+#### Disabling package-tests {#disabling-package-tests}
 
 In some instances, it may be necessary to disable testing altogether (with `doCheck = false;`):
 
@@ -224,7 +278,7 @@ The above are just guidelines, and exceptions may be granted on a case-by-case b
 However, please check if it's possible to disable a problematic subset of the
 test suite and leave a comment explaining your reasoning.
 
-#### Setting `test-threads`
+#### Setting `test-threads` {#setting-test-threads}
 
 `buildRustPackage` will use parallel test threads by default,
 sometimes it may be necessary to disable this so the tests run consecutively.
@@ -236,7 +290,7 @@ rustPlatform.buildRustPackage {
 }
 ```
 
-### Building a package in `debug` mode
+### Building a package in `debug` mode {#building-a-package-in-debug-mode}
 
 By default, `buildRustPackage` will use `release` mode for builds. If a package
 should be built in `debug` mode, it can be configured like so:
@@ -250,14 +304,14 @@ rustPlatform.buildRustPackage {
 
 In this scenario, the `checkPhase` will be ran in `debug` mode as well.
 
-### Custom `build`/`install`-procedures
+### Custom `build`/`install`-procedures {#custom-buildinstall-procedures}
 
 Some packages may use custom scripts for building/installing, e.g. with a `Makefile`.
 In these cases, it's recommended to override the `buildPhase`/`installPhase`/`checkPhase`.
 
 Otherwise, some steps may fail because of the modified directory structure of `target/`.
 
-### Building a crate with an absent or out-of-date Cargo.lock file
+### Building a crate with an absent or out-of-date Cargo.lock file {#building-a-crate-with-an-absent-or-out-of-date-cargo.lock-file}
 
 `buildRustPackage` needs a `Cargo.lock` file to get all dependencies in the
 source code in a reproducible way. If it is missing or out-of-date one can use
@@ -273,13 +327,13 @@ rustPlatform.buildRustPackage rec {
 }
 ```
 
-## Compiling non-Rust packages that include Rust code
+## Compiling non-Rust packages that include Rust code {#compiling-non-rust-packages-that-include-rust-code}
 
 Several non-Rust packages incorporate Rust code for performance- or
 security-sensitive parts. `rustPlatform` exposes several functions and
 hooks that can be used to integrate Cargo in non-Rust packages.
 
-### Vendoring of dependencies
+### Vendoring of dependencies {#vendoring-of-dependencies}
 
 Since network access is not allowed in sandboxed builds, Rust crate
 dependencies need to be retrieved using a fetcher. `rustPlatform`
@@ -308,7 +362,38 @@ attributes can also be used:
   the `Cargo.lock`/`Cargo.toml` files need to be patched before
   vendoring.
 
-### Hooks
+If a `Cargo.lock` file is available, you can alternatively use the
+`importCargoLock` function. In contrast to `fetchCargoTarball`, this
+function does not require a hash (unless git dependencies are used)
+and fetches every dependency as a separate fixed-output derivation.
+`importCargoLock` can be used as follows:
+
+```
+cargoDeps = rustPlatform.importCargoLock {
+  lockFile = ./Cargo.lock;
+};
+```
+
+If the `Cargo.lock` file includes git dependencies, then their output
+hashes need to be specified since they are not available through the
+lock file. For example:
+
+```
+cargoDeps = rustPlatform.importCargoLock {
+  lockFile = ./Cargo.lock;
+  outputHashes = {
+    "rand-0.8.3" = "0ya2hia3cn31qa8894s3av2s8j5bjwb6yq92k0jsnlx7jid0jwqa";
+  };
+};
+```
+
+If you do not specify an output hash for a git dependency, building
+`cargoDeps` will fail and inform you of which crate needs to be
+added. To find the correct hash, you can first use `lib.fakeSha256` or
+`lib.fakeHash` as a stub hash. Building `cargoDeps` will then inform
+you of the correct hash.
+
+### Hooks {#hooks}
 
 `rustPlatform` provides the following hooks to automate Cargo builds:
 
@@ -337,9 +422,9 @@ attributes can also be used:
 * `cargoInstallHook`: install binaries and static/shared libraries
   that were built using `cargoBuildHook`.
 
-### Examples
+### Examples {#examples}
 
-#### Python package using `setuptools-rust`
+#### Python package using `setuptools-rust` {#python-package-using-setuptools-rust}
 
 For Python packages using `setuptools-rust`, you can use
 `fetchCargoTarball` and `cargoSetupHook` to retrieve and set up Cargo
@@ -425,7 +510,7 @@ buildPythonPackage rec {
 }
 ```
 
-#### Python package using `maturin`
+#### Python package using `maturin` {#python-package-using-maturin}
 
 Python packages that use [Maturin](https://github.com/PyO3/maturin)
 can be built with `fetchCargoTarball`, `cargoSetupHook`, and
@@ -466,9 +551,9 @@ buildPythonPackage rec {
 }
 ```
 
-## Compiling Rust crates using Nix instead of Cargo
+## Compiling Rust crates using Nix instead of Cargo {#compiling-rust-crates-using-nix-instead-of-cargo}
 
-### Simple operation
+### Simple operation {#simple-operation}
 
 When run, `cargo build` produces a file called `Cargo.lock`,
 containing pinned versions of all dependencies. Nixpkgs contains a
@@ -479,14 +564,15 @@ That Nix expression calls `rustc` directly (hence bypassing Cargo),
 and can be used to compile a crate and all its dependencies. Here is
 an example for a minimal `hello` crate:
 
-
-    $ cargo new hello
-    $ cd hello
-    $ cargo build
+```ShellSession
+$ cargo new hello
+$ cd hello
+$ cargo build
      Compiling hello v0.1.0 (file:///tmp/hello)
-      Finished dev [unoptimized + debuginfo] target(s) in 0.20 secs
-    $ carnix -o hello.nix --src ./. Cargo.lock --standalone
-    $ nix-build hello.nix -A hello_0_1_0
+     Finished dev [unoptimized + debuginfo] target(s) in 0.20 secs
+$ carnix -o hello.nix --src ./. Cargo.lock --standalone
+$ nix-build hello.nix -A hello_0_1_0
+```
 
 Now, the file produced by the call to `carnix`, called `hello.nix`, looks like:
 
@@ -565,7 +651,7 @@ Here, the `libc` crate has no `src` attribute, so `buildRustCrate`
 will fetch it from [crates.io](https://crates.io). A `sha256`
 attribute is still needed for Nix purity.
 
-### Handling external dependencies
+### Handling external dependencies {#handling-external-dependencies}
 
 Some crates require external libraries. For crates from
 [crates.io](https://crates.io), such libraries can be specified in
@@ -624,7 +710,7 @@ with import <nixpkgs> {};
 }
 ```
 
-### Options and phases configuration
+### Options and phases configuration {#options-and-phases-configuration}
 
 Actually, the overrides introduced in the previous section are more
 general. A number of other parameters can be overridden:
@@ -671,7 +757,7 @@ general. A number of other parameters can be overridden:
   };
   ```
 
-### Features
+### Features {#features}
 
 One can also supply features switches. For example, if we want to
 compile `diesel_cli` only with the `postgres` feature, and no default
@@ -686,14 +772,15 @@ features, we would write:
 
 Where `diesel.nix` is the file generated by Carnix, as explained above.
 
+## Setting Up `nix-shell` {#setting-up-nix-shell}
 
-## Setting Up `nix-shell`
 Oftentimes you want to develop code from within `nix-shell`. Unfortunately
 `buildRustCrate` does not support common `nix-shell` operations directly
 (see [this issue](https://github.com/NixOS/nixpkgs/issues/37945))
 so we will use `stdenv.mkDerivation` instead.
 
 Using the example `hello` project above, we want to do the following:
+
 - Have access to `cargo` and `rustc`
 - Have the `openssl` library available to a crate through it's _normal_
   compilation mechanism (`pkg-config`).
@@ -722,13 +809,15 @@ stdenv.mkDerivation {
 ```
 
 You should now be able to run the following:
-```ShellSesssion
+
+```ShellSession
 $ nix-shell --pure
 $ cargo build
 $ cargo test
 ```
 
-### Controlling Rust Version Inside `nix-shell`
+### Controlling Rust Version Inside `nix-shell` {#controlling-rust-version-inside-nix-shell}
+
 To control your rust version (i.e. use nightly) from within `shell.nix` (or
 other nix expressions) you can use the following `shell.nix`
 
@@ -760,6 +849,7 @@ stdenv.mkDerivation {
 ```
 
 Now run:
+
 ```ShellSession
 $ rustc --version
 rustc 1.26.0-nightly (188e693b3 2018-03-26)
@@ -767,31 +857,32 @@ rustc 1.26.0-nightly (188e693b3 2018-03-26)
 
 To see that you are using nightly.
 
-
-## Using the Rust nightlies overlay
+## Using the Rust nightlies overlay {#using-the-rust-nightlies-overlay}
 
 Mozilla provides an overlay for nixpkgs to bring a nightly version of Rust into scope.
 This overlay can _also_ be used to install recent unstable or stable versions
 of Rust, if desired.
 
-### Rust overlay installation
+### Rust overlay installation {#rust-overlay-installation}
 
 You can use this overlay by either changing your local nixpkgs configuration,
 or by adding the overlay declaratively in a nix expression,  e.g. in `configuration.nix`.
-For more information see [#sec-overlays-install](the manual on installing overlays).
+For more information see [the manual on installing overlays](#sec-overlays-install).
 
-#### Imperative rust overlay installation
+#### Imperative rust overlay installation {#imperative-rust-overlay-installation}
 
 Clone [nixpkgs-mozilla](https://github.com/mozilla/nixpkgs-mozilla),
 and create a symbolic link to the file
 [rust-overlay.nix](https://github.com/mozilla/nixpkgs-mozilla/blob/master/rust-overlay.nix)
 in the `~/.config/nixpkgs/overlays` directory.
 
-    $ git clone https://github.com/mozilla/nixpkgs-mozilla.git
-    $ mkdir -p ~/.config/nixpkgs/overlays
-    $ ln -s $(pwd)/nixpkgs-mozilla/rust-overlay.nix ~/.config/nixpkgs/overlays/rust-overlay.nix
+```ShellSession
+$ git clone https://github.com/mozilla/nixpkgs-mozilla.git
+$ mkdir -p ~/.config/nixpkgs/overlays
+$ ln -s $(pwd)/nixpkgs-mozilla/rust-overlay.nix ~/.config/nixpkgs/overlays/rust-overlay.nix
+```
 
-### Declarative rust overlay installation
+### Declarative rust overlay installation {#declarative-rust-overlay-installation}
 
 Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
 
@@ -807,7 +898,7 @@ Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.
 
 Note that this will fetch the latest overlay version when rebuilding your system.
 
-### Rust overlay usage
+### Rust overlay usage {#rust-overlay-usage}
 
 The overlay contains attribute sets corresponding to different versions of the rust toolchain, such as:
 
@@ -821,11 +912,15 @@ For example, you might want to add `latest.rustChannels.stable.rust` to the list
 
 Imperatively, the latest stable version can be installed with the following command:
 
-    $ nix-env -Ai nixpkgs.latest.rustChannels.stable.rust
+```ShellSession
+$ nix-env -Ai nixpkgs.latest.rustChannels.stable.rust
+```
 
 Or using the attribute with nix-shell:
 
-    $ nix-shell -p nixpkgs.latest.rustChannels.stable.rust
+```ShellSession
+$ nix-shell -p nixpkgs.latest.rustChannels.stable.rust
+```
 
 Substitute the `nixpkgs` prefix with `nixos` on NixOS.
 To install the beta or nightly channel, "stable" should be substituted by
diff --git a/nixpkgs/doc/languages-frameworks/texlive.section.md b/nixpkgs/doc/languages-frameworks/texlive.section.md
index c3028731f4e9..6b505cefcc95 100644
--- a/nixpkgs/doc/languages-frameworks/texlive.section.md
+++ b/nixpkgs/doc/languages-frameworks/texlive.section.md
@@ -5,6 +5,7 @@ Since release 15.09 there is a new TeX Live packaging that lives entirely under
 ## User's guide {#sec-language-texlive-user-guide}
 
 - For basic usage just pull `texlive.combined.scheme-basic` for an environment with basic LaTeX support.
+
 - It typically won't work to use separately installed packages together. Instead, you can build a custom set of packages like this:
 
   ```nix
@@ -14,6 +15,7 @@ Since release 15.09 there is a new TeX Live packaging that lives entirely under
   ```
 
 - There are all the schemes, collections and a few thousand packages, as defined upstream (perhaps with tiny differences).
+
 - By default you only get executables and files needed during runtime, and a little documentation for the core packages. To change that, you need to add `pkgFilter` function to `combine`.
 
   ```nix
diff --git a/nixpkgs/doc/languages-frameworks/titanium.section.md b/nixpkgs/doc/languages-frameworks/titanium.section.md
index 57360f034b9f..306ad8662767 100644
--- a/nixpkgs/doc/languages-frameworks/titanium.section.md
+++ b/nixpkgs/doc/languages-frameworks/titanium.section.md
@@ -9,8 +9,8 @@ applications for Android and iOS devices from source code.
 Not all Titanium features supported -- currently, it can only be used to build
 Android and iOS apps.
 
-Building a Titanium app
------------------------
+## Building a Titanium app {#building-a-titanium-app}
+
 We can build a Titanium app from source for Android or iOS and for debugging or
 release purposes by invoking the `titaniumenv.buildApp {}` function:
 
@@ -103,8 +103,8 @@ When `enableWirelessDistribution` has been enabled, you must also provide the
 path of the PHP script (`installURL`) (that is included with the iOS build
 environment) to enable wireless ad-hoc installations.
 
-Emulating or simulating the app
--------------------------------
+## Emulating or simulating the app {#emulating-or-simulating-the-app}
+
 It is also possible to simulate the correspond iOS simulator build by using
 `xcodeenv.simulateApp {}` and emulate an Android APK by using
 `androidenv.emulateApp {}`.
diff --git a/nixpkgs/doc/languages-frameworks/vim.section.md b/nixpkgs/doc/languages-frameworks/vim.section.md
index 5316db9a1375..e170591605cf 100644
--- a/nixpkgs/doc/languages-frameworks/vim.section.md
+++ b/nixpkgs/doc/languages-frameworks/vim.section.md
@@ -12,7 +12,7 @@ At the moment we support three different methods for managing plugins:
 - Pathogen
 - vim-plug
 
-## Custom configuration
+## Custom configuration {#custom-configuration}
 
 Adding custom .vimrc lines can be done using the following code:
 
@@ -56,7 +56,7 @@ neovim-qt.override {
 }
 ```
 
-## Managing plugins with Vim packages
+## Managing plugins with Vim packages {#managing-plugins-with-vim-packages}
 
 To store you plugins in Vim packages (the native Vim plugin manager, see `:help packages`) the following example can be used:
 
@@ -116,7 +116,7 @@ The resulting package can be added to `packageOverrides` in `~/.nixpkgs/config.n
 
 After that you can install your special grafted `myVim` or `myNeovim` packages.
 
-### What if your favourite Vim plugin isn't already packaged?
+### What if your favourite Vim plugin isn’t already packaged? {#what-if-your-favourite-vim-plugin-isnt-already-packaged}
 
 If one of your favourite plugins isn't packaged, you can package it yourself:
 
@@ -154,7 +154,7 @@ in
 }
 ```
 
-## Managing plugins with vim-plug
+## Managing plugins with vim-plug {#managing-plugins-with-vim-plug}
 
 To use [vim-plug](https://github.com/junegunn/vim-plug) to manage your Vim
 plugins the following example can be used:
@@ -183,14 +183,14 @@ neovim.override {
 }
 ```
 
-## Managing plugins with VAM
+## Managing plugins with VAM {#managing-plugins-with-vam}
 
-### Handling dependencies of Vim plugins
+### Handling dependencies of Vim plugins {#handling-dependencies-of-vim-plugins}
 
 VAM introduced .json files supporting dependencies without versioning
 assuming that "using latest version" is ok most of the time.
 
-### Example
+### Example {#example}
 
 First create a vim-scripts file having one plugin name per line. Example:
 
@@ -280,7 +280,7 @@ Sample output2:
 ]
 ```
 
-## Adding new plugins to nixpkgs
+## Adding new plugins to nixpkgs {#adding-new-plugins-to-nixpkgs}
 
 Nix expressions for Vim plugins are stored in [pkgs/misc/vim-plugins](/pkgs/misc/vim-plugins). For the vast majority of plugins, Nix expressions are automatically generated by running [`./update.py`](/pkgs/misc/vim-plugins/update.py). This creates a [generated.nix](/pkgs/misc/vim-plugins/generated.nix) file based on the plugins listed in [vim-plugin-names](/pkgs/misc/vim-plugins/vim-plugin-names). Plugins are listed in alphabetical order in `vim-plugin-names` using the format `[github username]/[repository]`. For example https://github.com/scrooloose/nerdtree becomes `scrooloose/nerdtree`.
 
@@ -298,7 +298,7 @@ To add a new plugin, run `./update.py --add "[owner]/[name]"`. **NOTE**: This sc
 
 Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in `vim-plugin-names` or managed by `update.py` at all, and are included separately in `overrides.nix`. Currently, all these plugins are related to the `coc.nvim` ecosystem of Language Server Protocol integration with vim/neovim.
 
-## Updating plugins in nixpkgs
+## Updating plugins in nixpkgs {#updating-plugins-in-nixpkgs}
 
 Run the update script with a GitHub API token that has at least `public_repo` access. Running the script without the token is likely to result in rate-limiting (429 errors). For steps on creating an API token, please refer to [GitHub's token documentation](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token).
 
@@ -312,7 +312,7 @@ Alternatively, set the number of processes to a lower count to avoid rate-limiti
 ./pkgs/misc/vim-plugins/update.py --proc 1
 ```
 
-## Important repositories
+## Important repositories {#important-repositories}
 
 - [vim-pi](https://bitbucket.org/vimcommunity/vim-pi) is a plugin repository
   from VAM plugin manager meant to be used by others as well used by
diff --git a/nixpkgs/doc/manual.xml b/nixpkgs/doc/manual.xml
index 6ea4addc361a..b43021d85ca5 100644
--- a/nixpkgs/doc/manual.xml
+++ b/nixpkgs/doc/manual.xml
@@ -8,9 +8,9 @@
  <xi:include href="preface.chapter.xml" />
  <part>
   <title>Using Nixpkgs</title>
-  <xi:include href="using/configuration.xml" />
-  <xi:include href="using/overlays.xml" />
-  <xi:include href="using/overrides.xml" />
+  <xi:include href="using/configuration.chapter.xml" />
+  <xi:include href="using/overlays.chapter.xml" />
+  <xi:include href="using/overrides.chapter.xml" />
   <xi:include href="functions.xml" />
  </part>
  <part>
diff --git a/nixpkgs/doc/preface.chapter.md b/nixpkgs/doc/preface.chapter.md
index 64c921c711bf..16f228272b3d 100644
--- a/nixpkgs/doc/preface.chapter.md
+++ b/nixpkgs/doc/preface.chapter.md
@@ -12,7 +12,7 @@ Nixpkgs. If you like to learn more about the Nix package manager and the Nix
 expression language, then you are kindly referred to the [Nix manual](https://nixos.org/nix/manual/).
 The NixOS distribution is documented in the [NixOS manual](https://nixos.org/nixos/manual/).
 
-## Overview of Nixpkgs
+## Overview of Nixpkgs {#overview-of-nixpkgs}
 
 Nix expressions describe how to build packages from source and are collected in
 the [nixpkgs repository](https://github.com/NixOS/nixpkgs). Also included in the
diff --git a/nixpkgs/doc/stdenv/cross-compilation.chapter.md b/nixpkgs/doc/stdenv/cross-compilation.chapter.md
index 3755c13facf5..53522962a5c9 100644
--- a/nixpkgs/doc/stdenv/cross-compilation.chapter.md
+++ b/nixpkgs/doc/stdenv/cross-compilation.chapter.md
@@ -6,7 +6,6 @@
 
 This chapter will be organized in three parts. First, it will describe the basics of how to package software in a way that supports cross-compilation. Second, it will describe how to use Nixpkgs when cross-compiling. Third, it will describe the internal infrastructure supporting cross-compilation.
 
-
 ## Packaging in a cross-friendly manner {#sec-cross-packaging}
 
 ### Platform parameters {#ssec-cross-platform-parameters}
@@ -65,8 +64,8 @@ The exact schema these fields follow is a bit ill-defined due to a long and conv
 
 ### Theory of dependency categorization {#ssec-cross-dependency-categorization}
 
-::: note
-This is a rather philosophical description that isn't very Nixpkgs-specific. For an overview of all the relevant attributes given to `mkDerivation`, see <xref linkend="ssec-stdenv-dependencies"/>. For a description of how everything is implemented, see <xref linkend="ssec-cross-dependency-implementation"/>.
+::: {.note}
+This is a rather philosophical description that isn't very Nixpkgs-specific. For an overview of all the relevant attributes given to `mkDerivation`, see [](#ssec-stdenv-dependencies). For a description of how everything is implemented, see [](#ssec-cross-dependency-implementation).
 :::
 
 In this section we explore the relationship between both runtime and build-time dependencies and the 3 Autoconf platforms.
@@ -81,10 +80,10 @@ Finally, if the depending package is a compiler or other machine-code-producing
 
 Putting this all together, that means we have dependencies in the form "host → target", in at most the following six combinations:
 
+#### Possible dependency types {#possible-dependency-types}
 
-#### Possible dependency types
-| Dependency's host platform | Dependency's target platform |
-| --                         | --                           |
+| Dependency’s host platform | Dependency’s target platform |
+|----------------------------|------------------------------|
 | build                      | build                        |
 | build                      | host                         |
 | build                      | target                       |
@@ -113,15 +112,18 @@ On less powerful machines, it can be inconvenient to cross-compile a package onl
 $ nix-build '<nixpkgs>' -A pkgsCross.raspberryPi.hello
 ```
 
-#### What if my package's build system needs to build a C program to be run under the build environment? {#cross-qa-build-c-program-in-build-environment}
+#### What if my package’s build system needs to build a C program to be run under the build environment? {#cross-qa-build-c-program-in-build-environment}
+
 Add the following to your `mkDerivation` invocation.
+
 ```nix
 depsBuildBuild = [ buildPackages.stdenv.cc ];
 ```
 
-####  My package's testsuite needs to run host platform code. {#cross-testsuite-runs-host-code}
+#### My package’s testsuite needs to run host platform code. {#cross-testsuite-runs-host-code}
 
 Add the following to your `mkDerivation` invocation.
+
 ```nix
 doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
 ```
@@ -134,7 +136,7 @@ Nixpkgs can be instantiated with `localSystem` alone, in which case there is no
 $ nix-build '<nixpkgs>' --arg crossSystem '(import <nixpkgs/lib>).systems.examples.fooBarBaz' -A whatever
 ```
 
-::: note
+::: {.note}
 Eventually we would like to make these platform examples an unnecessary convenience so that
 
 ```ShellSession
@@ -146,7 +148,7 @@ works in the vast majority of cases. The problem today is dependencies on other
 
 While one is free to pass both parameters in full, there's a lot of logic to fill in missing fields. As discussed in the previous section, only one of `system`, `config`, and `parsed` is needed to infer the other two. Additionally, `libc` will be inferred from `parse`. Finally, `localSystem.system` is also _impurely_ inferred based on the platform evaluation occurs. This means it is often not necessary to pass `localSystem` at all, as in the command-line example in the previous paragraph.
 
-::: note
+::: {.note}
 Many sources (manual, wiki, etc) probably mention passing `system`, `platform`, along with the optional `crossSystem` to Nixpkgs: `import <nixpkgs> { system = ..; platform = ..; crossSystem = ..; }`. Passing those two instead of `localSystem` is still supported for compatibility, but is discouraged. Indeed, much of the inference we do for these parameters is motivated by compatibility as much as convenience.
 :::
 
@@ -156,7 +158,7 @@ One would think that `localSystem` and `crossSystem` overlap horribly with the t
 
 ### Implementation of dependencies {#ssec-cross-dependency-implementation}
 
-The categories of dependencies developed in <xref linkend="ssec-cross-dependency-categorization"/> are specified as lists of derivations given to `mkDerivation`, as documented in <xref linkend="ssec-stdenv-dependencies"/>. In short, each list of dependencies for "host → target" of "foo → bar" is called `depsFooBar`, with exceptions for backwards compatibility that `depsBuildHost` is instead called `nativeBuildInputs` and `depsHostTarget` is instead called `buildInputs`. Nixpkgs is now structured so that each `depsFooBar` is automatically taken from `pkgsFooBar`. (These `pkgsFooBar`s are quite new, so there is no special case for `nativeBuildInputs` and `buildInputs`.) For example, `pkgsBuildHost.gcc` should be used at build-time, while `pkgsHostTarget.gcc` should be used at run-time.
+The categories of dependencies developed in [](#ssec-cross-dependency-categorization) are specified as lists of derivations given to `mkDerivation`, as documented in [](#ssec-stdenv-dependencies). In short, each list of dependencies for "host → target" of "foo → bar" is called `depsFooBar`, with exceptions for backwards compatibility that `depsBuildHost` is instead called `nativeBuildInputs` and `depsHostTarget` is instead called `buildInputs`. Nixpkgs is now structured so that each `depsFooBar` is automatically taken from `pkgsFooBar`. (These `pkgsFooBar`s are quite new, so there is no special case for `nativeBuildInputs` and `buildInputs`.) For example, `pkgsBuildHost.gcc` should be used at build-time, while `pkgsHostTarget.gcc` should be used at run-time.
 
 Now, for most of Nixpkgs's history, there were no `pkgsFooBar` attributes, and most packages have not been refactored to use it explicitly. Prior to those, there were just `buildPackages`, `pkgs`, and `targetPackages`. Those are now redefined as aliases to `pkgsBuildHost`, `pkgsHostTarget`, and `pkgsTargetTarget`. It is acceptable, even recommended, to use them for libraries to show that the host platform is irrelevant.
 
@@ -178,7 +180,7 @@ While there are many package sets, and thus many edges, the stages can also be a
 
 In each stage, `pkgsBuildHost` refers to the previous stage, `pkgsBuildBuild` refers to the one before that, and `pkgsHostTarget` refers to the current one, and `pkgsTargetTarget` refers to the next one. When there is no previous or next stage, they instead refer to the current stage. Note how all the invariants regarding the mapping between dependency and depending packages' build host and target platforms are preserved. `pkgsBuildTarget` and `pkgsHostHost` are more complex in that the stage fitting the requirements isn't always a fixed chain of "prevs" and "nexts" away (modulo the "saturating" self-references at the ends). We just special case each instead. All the primary edges are implemented is in `pkgs/stdenv/booter.nix`, and secondarily aliases in `pkgs/top-level/stage.nix`.
 
-::: note
+::: {.note}
 The native stages are bootstrapped in legacy ways that predate the current cross implementation. This is why the bootstrapping stages leading up to the final stages are ignored in the previous paragraph.
 :::
 
@@ -186,6 +188,7 @@ If one looks at the 3 platform triples, one can see that they overlap such that
 ```
 (native, native, native, foreign, foreign)
 ```
+
 If one imagines the saturating self references at the end being replaced with infinite stages, and then overlays those platform triples, one ends up with the infinite tuple:
 ```
 (native..., native, native, native, foreign, foreign, foreign...)
@@ -193,8 +196,8 @@ If one imagines the saturating self references at the end being replaced with in
 One can then imagine any sequence of platforms such that there are bootstrap stages with their 3 platforms determined by "sliding a window" that is the 3 tuple through the sequence. This was the original model for bootstrapping. Without a target platform (assume a better world where all compilers are multi-target and all standard libraries are built in their own derivation), this is sufficient. Conversely if one wishes to cross compile "faster", with a "Canadian Cross" bootstrapping stage where `build != host != target`, more bootstrapping stages are needed since no sliding window provides the pesky `pkgsBuildTarget` package set since it skips the Canadian cross stage's "host".
 
 
-::: note
-It is much better to refer to `buildPackages` than `targetPackages`, or more broadly package sets that do not mention "target". There are three reasons for this.
+::: {.note}
+It is much better to refer to `buildPackages` than `targetPackages`, or more broadly package sets that do not mention “target”. There are three reasons for this.
 
 First, it is because bootstrapping stages do not have a unique `targetPackages`. For example a `(x86-linux, x86-linux, arm-linux)` and `(x86-linux, x86-linux, x86-windows)` package set both have a `(x86-linux, x86-linux, x86-linux)` package set. Because there is no canonical `targetPackages` for such a native (`build == host == target`) package set, we set their `targetPackages`
 
@@ -203,6 +206,6 @@ Second, it is because this is a frequent source of hard-to-follow "infinite recu
 Thirdly, it is because everything target-mentioning only exists to accommodate compilers with lousy build systems that insist on the compiler itself and standard library being built together. Of course that is bad because bigger derivations means longer rebuilds. It is also problematic because it tends to make the standard libraries less like other libraries than they could be, complicating code and build systems alike. Because of the other problems, and because of these innate disadvantages, compilers ought to be packaged another way where possible.
 :::
 
-::: note
-If one explores Nixpkgs, they will see derivations with names like `gccCross`. Such `*Cross` derivations is a holdover from before we properly distinguished between the host and target platforms—the derivation with "Cross" in the name covered the `build = host != target` case, while the other covered the `host = target`, with build platform the same or not based on whether one was using its `.nativeDrv` or `.crossDrv`. This ugliness will disappear soon.
+::: {.note}
+If one explores Nixpkgs, they will see derivations with names like `gccCross`. Such `*Cross` derivations is a holdover from before we properly distinguished between the host and target platforms—the derivation with “Cross” in the name covered the `build = host != target` case, while the other covered the `host = target`, with build platform the same or not based on whether one was using its `.nativeDrv` or `.crossDrv`. This ugliness will disappear soon.
 :::
diff --git a/nixpkgs/doc/stdenv/meta.chapter.md b/nixpkgs/doc/stdenv/meta.chapter.md
index dd9f53258555..f226a725480c 100644
--- a/nixpkgs/doc/stdenv/meta.chapter.md
+++ b/nixpkgs/doc/stdenv/meta.chapter.md
@@ -130,7 +130,7 @@ Attribute Set `lib.platforms` defines [various common lists](https://github.com/
 
 ### `tests` {#var-meta-tests}
 
-::: warning
+::: {.warning}
 This attribute is special in that it is not actually under the `meta` attribute set but rather under the `passthru` attribute set. This is due to how `meta` attributes work, and the fact that they are supposed to contain only metadata, not derivations.
 :::
 
@@ -175,20 +175,20 @@ The `meta.license` attribute should preferably contain a value from `lib.license
 
 Although it’s typically better to indicate the specific license, a few generic options are available:
 
-### `lib.licenses.free`, `"free"`
+### `lib.licenses.free`, `"free"` {#lib.licenses.free-free}
 
 Catch-all for free software licenses not listed above.
 
-### `lib.licenses.unfreeRedistributable`, `"unfree-redistributable"`
+### `lib.licenses.unfreeRedistributable`, `"unfree-redistributable"` {#lib.licenses.unfreeredistributable-unfree-redistributable}
 
 Unfree package that can be redistributed in binary form. That is, it’s legal to redistribute the *output* of the derivation. This means that the package can be included in the Nixpkgs channel.
 
 Sometimes proprietary software can only be redistributed unmodified. Make sure the builder doesn’t actually modify the original binaries; otherwise we’re breaking the license. For instance, the NVIDIA X11 drivers can be redistributed unmodified, but our builder applies `patchelf` to make them work. Thus, its license is `"unfree"` and it cannot be included in the Nixpkgs channel.
 
-### `lib.licenses.unfree`, `"unfree"`
+### `lib.licenses.unfree`, `"unfree"` {#lib.licenses.unfree-unfree}
 
 Unfree package that cannot be redistributed. You can build it yourself, but you cannot redistribute the output of the derivation. Thus it cannot be included in the Nixpkgs channel.
 
-### `lib.licenses.unfreeRedistributableFirmware`, `"unfree-redistributable-firmware"`
+### `lib.licenses.unfreeRedistributableFirmware`, `"unfree-redistributable-firmware"` {#lib.licenses.unfreeredistributablefirmware-unfree-redistributable-firmware}
 
 This package supplies unfree, redistributable firmware. This is a separate value from `unfree-redistributable` because not everybody cares whether firmware is free.
diff --git a/nixpkgs/doc/stdenv/multiple-output.chapter.md b/nixpkgs/doc/stdenv/multiple-output.chapter.md
index 90bc25bef739..d04f83302ac4 100644
--- a/nixpkgs/doc/stdenv/multiple-output.chapter.md
+++ b/nixpkgs/doc/stdenv/multiple-output.chapter.md
@@ -6,7 +6,7 @@ The Nix language allows a derivation to produce multiple outputs, which is simil
 
 The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less.
 
-::: note
+::: {.note}
 The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
 :::
 
@@ -28,7 +28,7 @@ NixOS provides two ways to select the outputs to install for packages listed in
 
 `nix-env` lacks an easy way to select the outputs to install. When installing a package, `nix-env` always installs the outputs listed in `meta.outputsToInstall`, even when the user explicitly selects an output.
 
-::: warning
+::: {.warning}
 `nix-env` silenty disregards the outputs selected by the user, and instead installs the outputs from `meta.outputsToInstall`. For example,
 
 ```ShellSession
@@ -38,7 +38,7 @@ $ nix-env -iA nixpkgs.coreutils.info
 installs the `"out"` output (`coreutils.meta.outputsToInstall` is `[ "out" ]`) instead of the requested `"info"`.
 :::
 
-The only recourse to select an output with `nix-env` is to override the package’s `meta.outputsToInstall`, using the functions described in <xref linkend="chap-overrides" />. For example, the following overlay adds the `"info"` output for the `coreutils` package:
+The only recourse to select an output with `nix-env` is to override the package’s `meta.outputsToInstall`, using the functions described in [](#chap-overrides). For example, the following overlay adds the `"info"` output for the `coreutils` package:
 
 ```nix
 self: super:
@@ -53,7 +53,7 @@ self: super:
 
 In the Nix language the individual outputs can be reached explicitly as attributes, e.g. `coreutils.info`, but the typical case is just using packages as build inputs.
 
-When a multiple-output derivation gets into a build input of another derivation, the `dev` output is added if it exists, otherwise the first output is added. In addition to that, `propagatedBuildOutputs` of that package which by default contain `$outputBin` and `$outputLib` are also added. (See <xref linkend="multiple-output-file-type-groups" />.)
+When a multiple-output derivation gets into a build input of another derivation, the `dev` output is added if it exists, otherwise the first output is added. In addition to that, `propagatedBuildOutputs` of that package which by default contain `$outputBin` and `$outputLib` are also added. (See [](#multiple-output-file-type-groups).)
 
 In some cases it may be desirable to combine different outputs under a single store path. A function `symlinkJoin` can be used to do this. (Note that it may negate some closure size benefits of using a multiple-output package.)
 
@@ -69,8 +69,8 @@ outputs = [ "bin" "dev" "out" "doc" ];
 
 Often such a single line is enough. For each output an equally named environment variable is passed to the builder and contains the path in nix store for that output. Typically you also want to have the main `out` output, as it catches any files that didn’t get elsewhere.
 
-::: note
-There is a special handling of the `debug` output, described at <xref linkend="stdenv-separateDebugInfo" />.
+::: {.note}
+There is a special handling of the `debug` output, described at [](#stdenv-separateDebugInfo).
 :::
 
 ### “Binaries first” {#multiple-output-file-binaries-first-convention}
@@ -85,35 +85,35 @@ The reason for why `glibc` deviates from the convention is because referencing a
 
 The support code currently recognizes some particular kinds of outputs and either instructs the build system of the package to put files into their desired outputs or it moves the files during the fixup phase. Each group of file types has an `outputFoo` variable specifying the output name where they should go. If that variable isn’t defined by the derivation writer, it is guessed – a default output name is defined, falling back to other possibilities if the output isn’t defined.
 
-#### ` $outputDev`
+#### `$outputDev` {#outputdev}
 
 is for development-only files. These include C(++) headers (`include/`), pkg-config (`lib/pkgconfig/`), cmake (`lib/cmake/`) and aclocal files (`share/aclocal/`). They go to `dev` or `out` by default.
 
-#### ` $outputBin`
+#### `$outputBin` {#outputbin}
 
 is meant for user-facing binaries, typically residing in `bin/`. They go to `bin` or `out` by default.
 
-#### ` $outputLib`
+#### `$outputLib` {#outputlib}
 
 is meant for libraries, typically residing in `lib/` and `libexec/`. They go to `lib` or `out` by default.
 
-#### ` $outputDoc`
+#### `$outputDoc` {#outputdoc}
 
 is for user documentation, typically residing in `share/doc/`. It goes to `doc` or `out` by default.
 
-#### ` $outputDevdoc`
+#### `$outputDevdoc` {#outputdevdoc}
 
 is for _developer_ documentation. Currently we count gtk-doc and devhelp books, typically residing in `share/gtk-doc/` and `share/devhelp/`, in there. It goes to `devdoc` or is removed (!) by default. This is because e.g. gtk-doc tends to be rather large and completely unused by nixpkgs users.
 
-#### ` $outputMan`
+#### `$outputMan` {#outputman}
 
 is for man pages (except for section 3), typically residing in `share/man/man[0-9]/`. They go to `man` or `$outputBin` by default.
 
-#### ` $outputDevman`
+#### `$outputDevman` {#outputdevman}
 
 is for section 3 man pages, typically residing in `share/man/man[0-9]/`. They go to `devman` or `$outputMan` by default.
 
-#### ` $outputInfo`
+#### `$outputInfo` {#outputinfo}
 
 is for info pages, typically residing in `share/info/`. They go to `info` or `$outputBin` by default.
 
diff --git a/nixpkgs/doc/stdenv/stdenv.chapter.md b/nixpkgs/doc/stdenv/stdenv.chapter.md
index b23c50e83644..4daeaf7c8c24 100644
--- a/nixpkgs/doc/stdenv/stdenv.chapter.md
+++ b/nixpkgs/doc/stdenv/stdenv.chapter.md
@@ -39,9 +39,9 @@ stdenv.mkDerivation {
 }
 ```
 
-This attribute ensures that the `bin` subdirectories of these packages appear in the `PATH` environment variable during the build, that their `include` subdirectories are searched by the C compiler, and so on. (See <xref linkend="ssec-setup-hooks" /> for details.)
+This attribute ensures that the `bin` subdirectories of these packages appear in the `PATH` environment variable during the build, that their `include` subdirectories are searched by the C compiler, and so on. (See [](#ssec-setup-hooks) for details.)
 
-Often it is necessary to override or modify some aspect of the build. To make this easier, the standard environment breaks the package build into a number of *phases*, all of which can be overridden or modified individually: unpacking the sources, applying patches, configuring, building, and installing. (There are some others; see <xref linkend="sec-stdenv-phases" />.) For instance, a package that doesn’t supply a makefile but instead has to be compiled "manually" could be handled like this:
+Often it is necessary to override or modify some aspect of the build. To make this easier, the standard environment breaks the package build into a number of *phases*, all of which can be overridden or modified individually: unpacking the sources, applying patches, configuring, building, and installing. (There are some others; see [](#sec-stdenv-phases).) For instance, a package that doesn’t supply a makefile but instead has to be compiled "manually" could be handled like this:
 
 ```nix
 stdenv.mkDerivation {
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
 
 (Note the use of `''`-style string literals, which are very convenient for large multi-line script fragments because they don’t need escaping of `"` and `\`, and because indentation is intelligently removed.)
 
-There are many other attributes to customise the build. These are listed in <xref linkend="ssec-stdenv-attributes" />.
+There are many other attributes to customise the build. These are listed in [](#ssec-stdenv-attributes).
 
 While the standard environment provides a generic builder, you can still supply your own build script:
 
@@ -116,9 +116,9 @@ On Linux, `stdenv` also includes the `patchelf` utility.
 
 ## Specifying dependencies {#ssec-stdenv-dependencies}
 
-As described in the Nix manual, almost any `*.drv` store path in a derivation’s attribute set will induce a dependency on that derivation. `mkDerivation`, however, takes a few attributes intended to, between them, include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the `PATH`. That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See <xref linkend="ssec-setup-hooks" /> for details.
+As described in the Nix manual, almost any `*.drv` store path in a derivation’s attribute set will induce a dependency on that derivation. `mkDerivation`, however, takes a few attributes intended to, between them, include all the dependencies of a package. This is done both for structure and consistency, but also so that certain other setup can take place. For example, certain dependencies need their bin directories added to the `PATH`. That is built-in, but other setup is done via a pluggable mechanism that works in conjunction with these dependency attributes. See [](#ssec-setup-hooks) for details.
 
-Dependencies can be broken down along three axes: their host and target platforms relative to the new derivation’s, and whether they are propagated. The platform distinctions are motivated by cross compilation; see <xref linkend="chap-cross" /> for exactly what each platform means. [^footnote-stdenv-ignored-build-platform] But even if one is not cross compiling, the platforms imply whether or not the dependency is needed at run-time or build-time, a concept that makes perfect sense outside of cross compilation. By default, the run-time/build-time distinction is just a hint for mental clarity, but with `strictDeps` set it is mostly enforced even in the native case.
+Dependencies can be broken down along three axes: their host and target platforms relative to the new derivation’s, and whether they are propagated. The platform distinctions are motivated by cross compilation; see [](#chap-cross) for exactly what each platform means. [^footnote-stdenv-ignored-build-platform] But even if one is not cross compiling, the platforms imply whether or not the dependency is needed at run-time or build-time, a concept that makes perfect sense outside of cross compilation. By default, the run-time/build-time distinction is just a hint for mental clarity, but with `strictDeps` set it is mostly enforced even in the native case.
 
 The extension of `PATH` with dependencies, alluded to above, proceeds according to the relative platforms alone. The process is carried out only for dependencies whose host platform matches the new derivation’s build platform i.e. dependencies which run on the platform where the new derivation will be built. [^footnote-stdenv-native-dependencies-in-path] For each dependency \<dep\> of those dependencies, `dep/bin`, if present, is added to the `PATH` environment variable.
 
@@ -175,7 +175,8 @@ Because of the bounds checks, the uncommon cases are `h = t` and `h + 2 = t`. In
 
 Overall, the unifying theme here is that propagation shouldn’t be introducing transitive dependencies involving platforms the depending package is unaware of. \[One can imagine the dependending package asking for dependencies with the platforms it knows about; other platforms it doesn’t know how to ask for. The platform description in that scenario is a kind of unforagable capability.\] The offset bounds checking and definition of `mapOffset` together ensure that this is the case. Discovering a new offset is discovering a new platform, and since those platforms weren’t in the derivation “spec” of the needing package, they cannot be relevant. From a capability perspective, we can imagine that the host and target platforms of a package are the capabilities a package requires, and the depending package must provide the capability to the dependency.
 
-### Variables specifying dependencies
+### Variables specifying dependencies {#variables-specifying-dependencies}
+
 #### `depsBuildBuild` {#var-stdenv-depsBuildBuild}
 
 A list of dependencies whose host and target platforms are the new derivation’s build platform. This means a `-1` host and `-1` target offset from the new derivation’s platforms. These are programs and libraries used at build time that produce programs and libraries also used at build time. If the dependency doesn’t care about the target platform (i.e. isn’t a compiler or similar tool), put it in `nativeBuildInputs` instead. The most common use of this `buildPackages.stdenv.cc`, the default C compiler for this role. That example crops up more than one might think in old commonly used C libraries.
@@ -236,13 +237,13 @@ The propagated equivalent of `depsTargetTarget`. This is prefixed for the same r
 
 ## Attributes {#ssec-stdenv-attributes}
 
-### Variables affecting `stdenv` initialisation
+### Variables affecting `stdenv` initialisation {#variables-affecting-stdenv-initialisation}
 
 #### `NIX_DEBUG` {#var-stdenv-NIX_DEBUG}
 
 A natural number indicating how much information to log. If set to 1 or higher, `stdenv` will print moderate debugging information during the build. In particular, the `gcc` and `ld` wrapper scripts will print out the complete command line passed to the wrapped tools. If set to 6 or higher, the `stdenv` setup script will be run with `set -x` tracing. If set to 7 or higher, the `gcc` and `ld` wrapper scripts will also be run with `set -x` tracing.
 
-### Attributes affecting build properties
+### Attributes affecting build properties {#attributes-affecting-build-properties}
 
 #### `enableParallelBuilding` {#var-stdenv-enableParallelBuilding}
 
@@ -250,7 +251,7 @@ If set to `true`, `stdenv` will pass specific flags to `make` and other build to
 
 Unless set to `false`, some build systems with good support for parallel building including `cmake`, `meson`, and `qmake` will set it to `true`.
 
-### Special variables
+### Special variables {#special-variables}
 
 #### `passthru` {#var-stdenv-passthru}
 
@@ -298,7 +299,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
 The script will be run with `UPDATE_NIX_ATTR_PATH` environment variable set to the attribute path it is supposed to update.
 
-::: note
+::: {.note}
 The script will be usually run from the root of the Nixpkgs repository but you should not rely on that. Also note that the update scripts will be run in parallel by default; you should avoid running `git commit` or any other commands that cannot handle that.
 :::
 
@@ -314,7 +315,7 @@ Each phase can be overridden in its entirety either by setting the environment v
 
 There are a number of variables that control what phases are executed and in what order:
 
-#### Variables affecting phase control
+#### Variables affecting phase control {#variables-affecting-phase-control}
 
 ##### `phases` {#var-stdenv-phases}
 
@@ -354,21 +355,22 @@ Additional phases executed after any of the default phases.
 
 The unpack phase is responsible for unpacking the source code of the package. The default implementation of `unpackPhase` unpacks the source files listed in the `src` environment variable to the current directory. It supports the following files by default:
 
-#### Tar files
+#### Tar files {#tar-files}
 
 These can optionally be compressed using `gzip` (`.tar.gz`, `.tgz` or `.tar.Z`), `bzip2` (`.tar.bz2`, `.tbz2` or `.tbz`) or `xz` (`.tar.xz`, `.tar.lzma` or `.txz`).
 
-#### Zip files
+#### Zip files {#zip-files}
 
 Zip files are unpacked using `unzip`. However, `unzip` is not in the standard environment, so you should add it to `nativeBuildInputs` yourself.
 
-#### Directories in the Nix store
+#### Directories in the Nix store {#directories-in-the-nix-store}
 
 These are simply copied to the current directory. The hash part of the file name is stripped, e.g. `/nix/store/1wydxgby13cz...-my-sources` would be copied to `my-sources`.
 
 Additional file types can be supported by setting the `unpackCmd` variable (see below).
 
-#### Variables controlling the unpack phase
+#### Variables controlling the unpack phase {#variables-controlling-the-unpack-phase}
+
 ##### `srcs` / `src` {#var-stdenv-src}
 
 The list of source files or directories to be unpacked or copied. One of these must be set.
@@ -405,7 +407,7 @@ The unpack phase evaluates the string `$unpackCmd` for any unrecognised file. Th
 
 The patch phase applies the list of patches defined in the `patches` variable.
 
-#### Variables controlling the patch phase
+#### Variables controlling the patch phase {#variables-controlling-the-patch-phase}
 
 ##### `dontPatch` {#var-stdenv-dontPatch}
 
@@ -431,7 +433,7 @@ Hook executed at the end of the patch phase.
 
 The configure phase prepares the source tree for building. The default `configurePhase` runs `./configure` (typically an Autoconf-generated script) if it exists.
 
-#### Variables controlling the configure phase
+#### Variables controlling the configure phase {#variables-controlling-the-configure-phase}
 
 ##### `configureScript` {#var-stdenv-configureScript}
 
@@ -491,7 +493,7 @@ Hook executed at the end of the configure phase.
 
 The build phase is responsible for actually building the package (e.g. compiling it). The default `buildPhase` simply calls `make` if a file named `Makefile`, `makefile` or `GNUmakefile` exists in the current directory (or the `makefile` is explicitly set); otherwise it does nothing.
 
-#### Variables controlling the build phase
+#### Variables controlling the build phase {#variables-controlling-the-build-phase}
 
 ##### `dontBuild` {#var-stdenv-dontBuild}
 
@@ -509,7 +511,7 @@ A list of strings passed as additional flags to `make`. These flags are also use
 makeFlags = [ "PREFIX=$(out)" ];
 ```
 
-::: note
+::: {.note}
 The flags are quoted in bash, but environment variables can be specified by using the make syntax.
 :::
 
@@ -545,7 +547,7 @@ Before and after running `make`, the hooks `preBuild` and `postBuild` are called
 
 The check phase checks whether the package was built correctly by running its test suite. The default `checkPhase` calls `make check`, but only if the `doCheck` variable is enabled.
 
-#### Variables controlling the check phase
+#### Variables controlling the check phase {#variables-controlling-the-check-phase}
 
 ##### `doCheck` {#var-stdenv-doCheck}
 
@@ -557,7 +559,7 @@ doCheck = true;
 
 in the derivation to enable checks. The exception is cross compilation. Cross compiled builds never run tests, no matter how `doCheck` is set, as the newly-built program won’t run on the platform used to build it.
 
-##### `makeFlags` / `makeFlagsArray` / `makefile`
+##### `makeFlags` / `makeFlagsArray` / `makefile` {#makeflags-makeflagsarray-makefile}
 
 See the [build phase](#var-stdenv-makeFlags) for details.
 
@@ -585,13 +587,13 @@ Hook executed at the end of the check phase.
 
 The install phase is responsible for installing the package in the Nix store under `out`. The default `installPhase` creates the directory `$out` and calls `make install`.
 
-#### Variables controlling the install phase
+#### Variables controlling the install phase {#variables-controlling-the-install-phase}
 
 ##### `dontInstall` {#var-stdenv-dontInstall}
 
 Set to true to skip the install phase.
 
-##### `makeFlags` / `makeFlagsArray` / `makefile`
+##### `makeFlags` / `makeFlagsArray` / `makefile` {#makeflags-makeflagsarray-makefile-1}
 
 See the [build phase](#var-stdenv-makeFlags) for details.
 
@@ -624,7 +626,7 @@ The fixup phase performs some (Nix-specific) post-processing actions on the file
 - On Linux, it applies the `patchelf` command to ELF executables and libraries to remove unused directories from the `RPATH` in order to prevent unnecessary runtime dependencies.
 - It rewrites the interpreter paths of shell scripts to paths found in `PATH`. E.g., `/usr/bin/perl` will be rewritten to `/nix/store/some-perl/bin/perl` found in `PATH`.
 
-#### Variables controlling the fixup phase
+#### Variables controlling the fixup phase {#variables-controlling-the-fixup-phase}
 
 ##### `dontFixup` {#var-stdenv-dontFixup}
 
@@ -706,7 +708,7 @@ to `~/.gdbinit`. GDB will then be able to find debug information installed via `
 
 The installCheck phase checks whether the package was installed correctly by running its test suite against the installed directories. The default `installCheck` calls `make installcheck`.
 
-#### Variables controlling the installCheck phase
+#### Variables controlling the installCheck phase {#variables-controlling-the-installcheck-phase}
 
 ##### `doInstallCheck` {#var-stdenv-doInstallCheck}
 
@@ -742,7 +744,7 @@ Hook executed at the end of the installCheck phase.
 
 The distribution phase is intended to produce a source distribution of the package. The default `distPhase` first calls `make dist`, then it copies the resulting source tarballs to `$out/tarballs/`. This phase is only executed if the attribute `doDist` is set.
 
-#### Variables controlling the distribution phase
+#### Variables controlling the distribution phase {#variables-controlling-the-distribution-phase}
 
 ##### `distTarget` {#var-stdenv-distTarget}
 
@@ -879,7 +881,7 @@ The most typical use of the setup hook is actually to add other hooks which are
 
 Packages adding a hook should not hard code a specific hook, but rather choose a variable *relative* to how they are included. Returning to the C compiler wrapper example, if the wrapper itself is an `n` dependency, then it only wants to accumulate flags from `n + 1` dependencies, as only those ones match the compiler’s target platform. The `hostOffset` variable is defined with the current dependency’s host offset `targetOffset` with its target offset, before its setup hook is sourced. Additionally, since most environment hooks don’t care about the target platform, that means the setup hook can append to the right bash array by doing something like
 
-```{.bash}
+```bash
 addEnvHooks "$hostOffset" myBashFunction
 ```
 
@@ -887,47 +889,47 @@ The *existence* of setups hooks has long been documented and packages inside Nix
 
 First, let’s cover some setup hooks that are part of Nixpkgs default stdenv. This means that they are run for every package built using `stdenv.mkDerivation`. Some of these are platform specific, so they may run on Linux but not Darwin or vice-versa.
 
-### `move-docs.sh`
+### `move-docs.sh` {#move-docs.sh}
 
 This setup hook moves any installed documentation to the `/share` subdirectory directory. This includes the man, doc and info directories. This is needed for legacy programs that do not know how to use the `share` subdirectory.
 
-### `compress-man-pages.sh`
+### `compress-man-pages.sh` {#compress-man-pages.sh}
 
 This setup hook compresses any man pages that have been installed. The compression is done using the gzip program. This helps to reduce the installed size of packages.
 
-### `strip.sh`
+### `strip.sh` {#strip.sh}
 
 This runs the strip command on installed binaries and libraries. This removes unnecessary information like debug symbols when they are not needed. This also helps to reduce the installed size of packages.
 
-### `patch-shebangs.sh`
+### `patch-shebangs.sh` {#patch-shebangs.sh}
 
 This setup hook patches installed scripts to use the full path to the shebang interpreter. A shebang interpreter is the first commented line of a script telling the operating system which program will run the script (e.g `#!/bin/bash`). In Nix, we want an exact path to that interpreter to be used. This often replaces `/bin/sh` with a path in the Nix store.
 
-### `audit-tmpdir.sh`
+### `audit-tmpdir.sh` {#audit-tmpdir.sh}
 
 This verifies that no references are left from the install binaries to the directory used to build those binaries. This ensures that the binaries do not need things outside the Nix store. This is currently supported in Linux only.
 
-### `multiple-outputs.sh`
+### `multiple-outputs.sh` {#multiple-outputs.sh}
 
-This setup hook adds configure flags that tell packages to install files into any one of the proper outputs listed in `outputs`. This behavior can be turned off by setting `setOutputFlags` to false in the derivation environment. See <xref linkend="chap-multiple-output" /> for more information.
+This setup hook adds configure flags that tell packages to install files into any one of the proper outputs listed in `outputs`. This behavior can be turned off by setting `setOutputFlags` to false in the derivation environment. See [](#chap-multiple-output) for more information.
 
-### `move-sbin.sh`
+### `move-sbin.sh` {#move-sbin.sh}
 
 This setup hook moves any binaries installed in the `sbin/` subdirectory into `bin/`. In addition, a link is provided from `sbin/` to `bin/` for compatibility.
 
-### `move-lib64.sh`
+### `move-lib64.sh` {#move-lib64.sh}
 
 This setup hook moves any libraries installed in the `lib64/` subdirectory into `lib/`. In addition, a link is provided from `lib64/` to `lib/` for compatibility.
 
-### `move-systemd-user-units.sh`
+### `move-systemd-user-units.sh` {#move-systemd-user-units.sh}
 
 This setup hook moves any systemd user units installed in the `lib/` subdirectory into `share/`. In addition, a link is provided from `share/` to `lib/` for compatibility. This is needed for systemd to find user services when installed into the user profile.
 
-### `set-source-date-epoch-to-latest.sh`
+### `set-source-date-epoch-to-latest.sh` {#set-source-date-epoch-to-latest.sh}
 
 This sets `SOURCE_DATE_EPOCH` to the modification time of the most recent file.
 
-### Bintools Wrapper
+### Bintools Wrapper {#bintools-wrapper}
 
 The Bintools Wrapper wraps the binary utilities for a bunch of miscellaneous purposes. These are GNU Binutils when targetting Linux, and a mix of cctools and GNU binutils for Darwin. \[The “Bintools” name is supposed to be a compromise between “Binutils” and “cctools” not denoting any specific implementation.\] Specifically, the underlying bintools package, and a C standard library (glibc or Darwin’s libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the Bintools Wrapper. Packages typically depend on CC Wrapper, which in turn (at run time) depends on the Bintools Wrapper.
 
@@ -937,7 +939,7 @@ A final task of the setup hook is defining a number of standard environment vari
 
 A problem with this final task is that the Bintools Wrapper is honest and defines `LD` as `ld`. Most packages, however, firstly use the C compiler for linking, secondly use `LD` anyways, defining it as the C compiler, and thirdly, only so define `LD` when it is undefined as a fallback. This triple-threat means Bintools Wrapper will break those packages, as LD is already defined as the actual linker which the package won’t override yet doesn’t want to use. The workaround is to define, just for the problematic package, `LD` as the C compiler. A good way to do this would be `preConfigure = "LD=$CC"`.
 
-### CC Wrapper
+### CC Wrapper {#cc-wrapper}
 
 The CC Wrapper wraps a C toolchain for a bunch of miscellaneous purposes. Specifically, a C compiler (GCC or Clang), wrapped binary tools, and a C standard library (glibc or Darwin’s libSystem, just for the dynamic loader) are all fed in, and dependency finding, hardening (see below), and purity checks for each are handled by the CC Wrapper. Packages typically depend on the CC Wrapper, which in turn (at run-time) depends on the Bintools Wrapper.
 
@@ -971,11 +973,11 @@ The `autoreconfHook` derivation adds `autoreconfPhase`, which runs autoreconf, l
 
 Adds every file named `catalog.xml` found under the `xml/dtd` and `xml/xsl` subdirectories of each build input to the `XML_CATALOG_FILES` environment variable.
 
-### teTeX / TeX Live
+### teTeX / TeX Live {#tetex-tex-live}
 
 Adds the `share/texmf-nix` subdirectory of each build input to the `TEXINPUTS` environment variable.
 
-### Qt 4
+### Qt 4 {#qt-4}
 
 Sets the `QTDIR` environment variable to Qt’s path.
 
@@ -983,13 +985,13 @@ Sets the `QTDIR` environment variable to Qt’s path.
 
 Exports `GDK_PIXBUF_MODULE_FILE` environment variable to the builder. Add librsvg package to `buildInputs` to get svg support. See also the [setup hook description in GNOME platform docs](#ssec-gnome-hooks-gdk-pixbuf).
 
-### GHC
+### GHC {#ghc}
 
 Creates a temporary package database and registers every Haskell build input in it (TODO: how?).
 
-### GNOME platform
+### GNOME platform {#gnome-platform}
 
-Hooks related to GNOME platform and related libraries like GLib, GTK and GStreamer are described in <xref linkend="sec-language-gnome" />.
+Hooks related to GNOME platform and related libraries like GLib, GTK and GStreamer are described in [](#sec-language-gnome).
 
 ### autoPatchelfHook {#setup-hook-autopatchelfhook}
 
@@ -1003,7 +1005,7 @@ By default `autoPatchelf` will fail as soon as any ELF file requires a dependenc
 
 The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories.
 
-### breakpointHook
+### breakpointHook {#breakpointhook}
 
 This hook will make a build pause instead of stopping when a failure happens. It prevents nix from cleaning up the build environment immediately and allows the user to attach to a build environment using the `cntr` command. Upon build error it will print instructions on how to use `cntr`, which can be used to enter the environment for debugging. Installing cntr and running the command will provide shell access to the build sandbox of failed build. At `/var/lib/cntr` the sandboxed filesystem is mounted. All commands and files of the system are still accessible within the shell. To execute commands from the sandbox use the cntr exec subcommand. `cntr` is only supported on Linux-based platforms. To use it first add `cntr` to your `environment.systemPackages` on NixOS or alternatively to the root user on non-NixOS systems. Then in the package that is supposed to be inspected, add `breakpointHook` to `nativeBuildInputs`.
 
@@ -1013,15 +1015,15 @@ nativeBuildInputs = [ breakpointHook ];
 
 When a build failure happens there will be an instruction printed that shows how to attach with `cntr` to the build sandbox.
 
-::: note
-::: title
+::: {.note}
+::: {.title}
 Caution with remote builds
 :::
 
 This won’t work with remote builds as the build environment is on a different machine and can’t be accessed by `cntr`. Remote builds can be turned off by setting `--option builders ''` for `nix-build` or `--builders ''` for `nix build`.
 :::
 
-### installShellFiles
+### installShellFiles {#installshellfiles}
 
 This hook helps with installing manpages and shell completion files. It exposes 2 shell functions `installManPage` and `installShellCompletion` that can be used from your `postInstall` hook.
 
@@ -1047,61 +1049,61 @@ postInstall = ''
 '';
 ```
 
-### libiconv, libintl
+### libiconv, libintl {#libiconv-libintl}
 
 A few libraries automatically add to `NIX_LDFLAGS` their library, making their symbols automatically available to the linker. This includes libiconv and libintl (gettext). This is done to provide compatibility between GNU Linux, where libiconv and libintl are bundled in, and other systems where that might not be the case. Sometimes, this behavior is not desired. To disable this behavior, set `dontAddExtraLibs`.
 
-### validatePkgConfig
+### validatePkgConfig {#validatepkgconfig}
 
 The `validatePkgConfig` hook validates all pkg-config (`.pc`) files in a package. This helps catching some common errors in pkg-config files, such as undefined variables.
 
-### cmake
+### cmake {#cmake}
 
 Overrides the default configure phase to run the CMake command. By default, we use the Make generator of CMake. In addition, dependencies are added automatically to CMAKE_PREFIX_PATH so that packages are correctly detected by CMake. Some additional flags are passed in to give similar behavior to configure-based packages. You can disable this hook’s behavior by setting configurePhase to a custom value, or by setting dontUseCmakeConfigure. cmakeFlags controls flags passed only to CMake. By default, parallel building is enabled as CMake supports parallel building almost everywhere. When Ninja is also in use, CMake will detect that and use the ninja generator.
 
-### xcbuildHook
+### xcbuildHook {#xcbuildhook}
 
 Overrides the build and install phases to run the "xcbuild" command. This hook is needed when a project only comes with build files for the XCode build system. You can disable this behavior by setting buildPhase and configurePhase to a custom value. xcbuildFlags controls flags passed only to xcbuild.
 
-### Meson
+### Meson {#meson}
 
 Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere.
 
-#### Variables controlling Meson
+#### Variables controlling Meson {#variables-controlling-meson}
 
-##### `mesonFlags`
+##### `mesonFlags` {#mesonflags}
 
 Controls the flags passed to meson.
 
-##### `mesonBuildType`
+##### `mesonBuildType` {#mesonbuildtype}
 
 Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to Meson. We default to `plain`.
 
-##### `mesonAutoFeatures`
+##### `mesonAutoFeatures` {#mesonautofeatures}
 
 What value to set [`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `enabled`.
 
-##### `mesonWrapMode`
+##### `mesonWrapMode` {#mesonwrapmode}
 
 What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `nodownload` as we disallow network access.
 
-##### `dontUseMesonConfigure`
+##### `dontUseMesonConfigure` {#dontusemesonconfigure}
 
 Disables using Meson’s `configurePhase`.
 
-### ninja
+### ninja {#ninja}
 
 Overrides the build, install, and check phase to run ninja instead of make. You can disable this behavior with the `dontUseNinjaBuild`, `dontUseNinjaInstall`, and `dontUseNinjaCheck`, respectively. Parallel building is enabled by default in Ninja.
 
-### unzip
+### unzip {#unzip}
 
 This setup hook will allow you to unzip .zip files specified in `$src`. There are many similar packages like `unrar`, `undmg`, etc.
 
-### wafHook
+### wafHook {#wafhook}
 
 Overrides the configure, build, and install phases. This will run the “waf” script used by many projects. If `wafPath` (default `./waf`) doesn’t exist, it will copy the version of waf available in Nixpkgs. `wafFlags` can be used to pass flags to the waf script.
 
-### scons
+### scons {#scons}
 
 Overrides the build, install, and check phases. This uses the scons build system as a replacement for make. scons does not provide a configure phase, so everything is managed at build and install time.
 
@@ -1119,7 +1121,7 @@ Both parameters take a list of flags as strings. The special `"all"` flag can be
 
 The following flags are enabled by default and might require disabling with `hardeningDisable` if the program to package is incompatible.
 
-### `format`
+### `format` {#format}
 
 Adds the `-Wformat -Wformat-security -Werror=format-security` compiler options. At present, this warns about calls to `printf` and `scanf` functions where the format string is not a string literal and there are no format arguments, as in `printf(foo);`. This may be a security hole if the format string came from untrusted input and contains `%n`.
 
@@ -1132,7 +1134,7 @@ This needs to be turned off or fixed for errors similar to:
 cc1plus: some warnings being treated as errors
 ```
 
-### `stackprotector`
+### `stackprotector` {#stackprotector}
 
 Adds the `-fstack-protector-strong --param ssp-buffer-size=4` compiler options. This adds safety checks against stack overwrites rendering many potential code injection attacks into aborting situations. In the best case this turns code injection vulnerabilities into denial of service or into non-issues (depending on the application).
 
@@ -1143,7 +1145,7 @@ bin/blib.a(bios_console.o): In function `bios_handle_cup':
 /tmp/nix-build-ipxe-20141124-5cbdc41.drv-0/ipxe-5cbdc41/src/arch/i386/firmware/pcbios/bios_console.c:86: undefined reference to `__stack_chk_fail'
 ```
 
-### `fortify`
+### `fortify` {#fortify}
 
 Adds the `-O2 -D_FORTIFY_SOURCE=2` compiler options. During code generation the compiler knows a great deal of information about buffer sizes (where possible), and attempts to replace insecure unlimited length buffer function calls with length-limited ones. This is especially useful for old, crufty code. Additionally, format strings in writable memory that contain `%n` are blocked. If an application depends on such a format string, it will need to be worked around.
 
@@ -1164,7 +1166,7 @@ installwatch.c:3751:5: error: conflicting types for '__open_2'
 fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
 ```
 
-### `pic`
+### `pic` {#pic}
 
 Adds the `-fPIC` compiler options. This options adds support for position independent code in shared libraries and thus making ASLR possible.
 
@@ -1177,19 +1179,19 @@ ccbLfRgg.s: Assembler messages:
 ccbLfRgg.s:33: Error: missing or invalid displacement expression `private_key_len@GOTOFF'
 ```
 
-### `strictoverflow`
+### `strictoverflow` {#strictoverflow}
 
 Signed integer overflow is undefined behaviour according to the C standard. If it happens, it is an error in the program as it should check for overflow before it can happen, not afterwards. GCC provides built-in functions to perform arithmetic with overflow checking, which are correct and faster than any custom implementation. As a workaround, the option `-fno-strict-overflow` makes gcc behave as if signed integer overflows were defined.
 
 This flag should not trigger any build or runtime errors.
 
-### `relro`
+### `relro` {#relro}
 
 Adds the `-z relro` linker option. During program load, several ELF memory sections need to be written to by the linker, but can be turned read-only before turning over control to the program. This prevents some GOT (and .dtors) overwrite attacks, but at least the part of the GOT used by the dynamic linker (.got.plt) is still vulnerable.
 
 This flag can break dynamic shared object loading. For instance, the module systems of Xorg and OpenCV are incompatible with this flag. In almost all cases the `bindnow` flag must also be disabled and incompatible programs typically fail with similar errors at runtime.
 
-### `bindnow`
+### `bindnow` {#bindnow}
 
 Adds the `-z bindnow` linker option. During program load, all dynamic symbols are resolved, allowing for the complete GOT to be marked read-only (due to `relro`). This prevents GOT overwrite attacks. For very large applications, this can incur some performance loss during initial load while symbols are resolved, but this shouldn’t be an issue for daemons.
 
@@ -1201,7 +1203,7 @@ intel_drv.so: undefined symbol: vgaHWFreeHWRec
 
 The following flags are disabled by default and should be enabled with `hardeningEnable` for packages that take untrusted input like network services.
 
-### `pie`
+### `pie` {#pie}
 
 Adds the `-fPIE` compiler and `-pie` linker options. Position Independent Executables are needed to take advantage of Address Space Layout Randomization, supported by modern kernel versions. While ASLR can already be enforced for data areas in the stack and heap (brk and mmap), the code areas must be compiled as position-independent. Shared libraries already do this with the `pic` flag, so they gain ASLR automatically, but binary .text regions need to be build with `pie` to gain ASLR. When this happens, ROP attacks are much harder since there are no static locations to bounce off of during a memory corruption attack.
 
diff --git a/nixpkgs/doc/using/configuration.chapter.md b/nixpkgs/doc/using/configuration.chapter.md
new file mode 100644
index 000000000000..932b24237c02
--- /dev/null
+++ b/nixpkgs/doc/using/configuration.chapter.md
@@ -0,0 +1,356 @@
+# Global configuration {#chap-packageconfig}
+
+Nix comes with certain defaults about what packages can and cannot be installed, based on a package's metadata. By default, Nix will prevent installation if any of the following criteria are true:
+
+-   The package is thought to be broken, and has had its `meta.broken` set to `true`.
+
+-   The package isn't intended to run on the given system, as none of its `meta.platforms` match the given system.
+
+-   The package's `meta.license` is set to a license which is considered to be unfree.
+
+-   The package has known security vulnerabilities but has not or can not be updated for some reason, and a list of issues has been entered in to the package's `meta.knownVulnerabilities`.
+
+Note that all this is checked during evaluation already, and the check includes any package that is evaluated. In particular, all build-time dependencies are checked. `nix-env -qa` will (attempt to) hide any packages that would be refused.
+
+Each of these criteria can be altered in the nixpkgs configuration.
+
+The nixpkgs configuration for a NixOS system is set in the `configuration.nix`, as in the following example:
+
+```nix
+{
+  nixpkgs.config = {
+    allowUnfree = true;
+  };
+}
+```
+
+However, this does not allow unfree software for individual users. Their configurations are managed separately.
+
+A user's nixpkgs configuration is stored in a user-specific configuration file located at `~/.config/nixpkgs/config.nix`. For example:
+
+```nix
+{
+  allowUnfree = true;
+}
+```
+
+Note that we are not able to test or build unfree software on Hydra due to policy. Most unfree licenses prohibit us from either executing or distributing the software.
+
+## Installing broken packages {#sec-allow-broken}
+
+There are two ways to try compiling a package which has been marked as broken.
+
+-   For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
+
+    ```ShellSession
+    $ export NIXPKGS_ALLOW_BROKEN=1
+    ```
+
+-   For permanently allowing broken packages to be built, you may add `allowBroken = true;` to your user's configuration file, like this:
+
+    ```nix
+    {
+      allowBroken = true;
+    }
+    ```
+
+
+## Installing packages on unsupported systems {#sec-allow-unsupported-system}
+
+There are also two ways to try compiling a package which has been marked as unsupported for the given system.
+
+-   For allowing the build of an unsupported package once, you can use an environment variable for a single invocation of the nix tools:
+
+    ```ShellSession
+    $ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
+    ```
+
+-   For permanently allowing unsupported packages to be built, you may add `allowUnsupportedSystem = true;` to your user's configuration file, like this:
+
+    ```nix
+    {
+      allowUnsupportedSystem = true;
+    }
+    ```
+
+The difference between a package being unsupported on some system and being broken is admittedly a bit fuzzy. If a program *ought* to work on a certain platform, but doesn't, the platform should be included in `meta.platforms`, but marked as broken with e.g.  `meta.broken = !hostPlatform.isWindows`. Of course, this begs the question of what \"ought\" means exactly. That is left to the package maintainer.
+
+## Installing unfree packages {#sec-allow-unfree}
+
+There are several ways to tweak how Nix handles a package which has been marked as unfree.
+
+-   To temporarily allow all unfree packages, you can use an environment variable for a single invocation of the nix tools:
+
+    ```ShellSession
+    $ export NIXPKGS_ALLOW_UNFREE=1
+    ```
+
+-   It is possible to permanently allow individual unfree packages, while still blocking unfree packages by default using the `allowUnfreePredicate` configuration option in the user configuration file.
+
+    This option is a function which accepts a package as a parameter, and returns a boolean. The following example configuration accepts a package and always returns false:
+
+    ```nix
+    {
+      allowUnfreePredicate = (pkg: false);
+    }
+    ```
+
+    For a more useful example, try the following. This configuration only allows unfree packages named roon-server and visual studio code:
+
+    ```nix
+    {
+      allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+        "roon-server"
+        "vscode"
+      ];
+    }
+    ```
+
+-   It is also possible to allow and block licenses that are specifically acceptable or not acceptable, using `allowlistedLicenses` and `blocklistedLicenses`, respectively.
+
+    The following example configuration allowlists the licenses `amd` and `wtfpl`:
+
+    ```nix
+    {
+      allowlistedLicenses = with lib.licenses; [ amd wtfpl ];
+    }
+    ```
+
+    The following example configuration blocklists the `gpl3Only` and `agpl3Only` licenses:
+
+    ```nix
+    {
+      blocklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ];
+    }
+    ```
+
+    Note that `allowlistedLicenses` only applies to unfree licenses unless `allowUnfree` is enabled. It is not a generic allowlist for all types of licenses. `blocklistedLicenses` applies to all licenses.
+
+A complete list of licenses can be found in the file `lib/licenses.nix` of the nixpkgs tree.
+
+## Installing insecure packages {#sec-allow-insecure}
+
+There are several ways to tweak how Nix handles a package which has been marked as insecure.
+
+-   To temporarily allow all insecure packages, you can use an environment variable for a single invocation of the nix tools:
+
+    ```ShellSession
+    $ export NIXPKGS_ALLOW_INSECURE=1
+    ```
+
+-   It is possible to permanently allow individual insecure packages, while still blocking other insecure packages by default using the `permittedInsecurePackages` configuration option in the user configuration file.
+
+    The following example configuration permits the installation of the hypothetically insecure package `hello`, version `1.2.3`:
+
+    ```nix
+    {
+      permittedInsecurePackages = [
+        "hello-1.2.3"
+      ];
+    }
+    ```
+
+-   It is also possible to create a custom policy around which insecure packages to allow and deny, by overriding the `allowInsecurePredicate` configuration option.
+
+    The `allowInsecurePredicate` option is a function which accepts a package and returns a boolean, much like `allowUnfreePredicate`.
+
+    The following configuration example only allows insecure packages with very short names:
+
+    ```nix
+    {
+      allowInsecurePredicate = pkg: builtins.stringLength (lib.getName pkg) <= 5;
+    }
+    ```
+
+    Note that `permittedInsecurePackages` is only checked if `allowInsecurePredicate` is not specified.
+
+## Modify packages via `packageOverrides` {#sec-modify-via-packageOverrides}
+
+You can define a function called `packageOverrides` in your local `~/.config/nixpkgs/config.nix` to override Nix packages. It must be a function that takes pkgs as an argument and returns a modified set of packages.
+
+```nix
+{
+  packageOverrides = pkgs: rec {
+    foo = pkgs.foo.override { ... };
+  };
+}
+```
+
+## Declarative Package Management {#sec-declarative-package-management}
+
+### Build an environment {#sec-building-environment}
+
+Using `packageOverrides`, it is possible to manage packages declaratively. This means that we can list all of our desired packages within a declarative Nix expression. For example, to have `aspell`, `bc`, `ffmpeg`, `coreutils`, `gdb`, `nixUnstable`, `emscripten`, `jq`, `nox`, and `silver-searcher`, we could use the following in `~/.config/nixpkgs/config.nix`:
+
+```nix
+{
+  packageOverrides = pkgs: with pkgs; {
+    myPackages = pkgs.buildEnv {
+      name = "my-packages";
+      paths = [
+        aspell
+        bc
+        coreutils
+        gdb
+        ffmpeg
+        nixUnstable
+        emscripten
+        jq
+        nox
+        silver-searcher
+      ];
+    };
+  };
+}
+```
+
+To install it into our environment, you can just run `nix-env -iA nixpkgs.myPackages`. If you want to load the packages to be built from a working copy of `nixpkgs` you just run `nix-env -f. -iA myPackages`. To explore what's been installed, just look through `~/.nix-profile/`. You can see that a lot of stuff has been installed. Some of this stuff is useful some of it isn't. Let's tell Nixpkgs to only link the stuff that we want:
+
+```nix
+{
+  packageOverrides = pkgs: with pkgs; {
+    myPackages = pkgs.buildEnv {
+      name = "my-packages";
+      paths = [
+        aspell
+        bc
+        coreutils
+        gdb
+        ffmpeg
+        nixUnstable
+        emscripten
+        jq
+        nox
+        silver-searcher
+      ];
+      pathsToLink = [ "/share" "/bin" ];
+    };
+  };
+}
+```
+
+`pathsToLink` tells Nixpkgs to only link the paths listed which gets rid of the extra stuff in the profile. `/bin` and `/share` are good defaults for a user environment, getting rid of the clutter. If you are running on Nix on MacOS, you may want to add another path as well, `/Applications`, that makes GUI apps available.
+
+### Getting documentation {#sec-getting-documentation}
+
+After building that new environment, look through `~/.nix-profile` to make sure everything is there that we wanted. Discerning readers will note that some files are missing. Look inside `~/.nix-profile/share/man/man1/` to verify this. There are no man pages for any of the Nix tools! This is because some packages like Nix have multiple outputs for things like documentation (see section 4). Let's make Nix install those as well.
+
+```nix
+{
+  packageOverrides = pkgs: with pkgs; {
+    myPackages = pkgs.buildEnv {
+      name = "my-packages";
+      paths = [
+        aspell
+        bc
+        coreutils
+        ffmpeg
+        nixUnstable
+        emscripten
+        jq
+        nox
+        silver-searcher
+      ];
+      pathsToLink = [ "/share/man" "/share/doc" "/bin" ];
+      extraOutputsToInstall = [ "man" "doc" ];
+    };
+  };
+}
+```
+
+This provides us with some useful documentation for using our packages.  However, if we actually want those manpages to be detected by man, we need to set up our environment. This can also be managed within Nix expressions.
+
+```nix
+{
+  packageOverrides = pkgs: with pkgs; rec {
+    myProfile = writeText "my-profile" ''
+      export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin
+      export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man
+    '';
+    myPackages = pkgs.buildEnv {
+      name = "my-packages";
+      paths = [
+        (runCommand "profile" {} ''
+          mkdir -p $out/etc/profile.d
+          cp ${myProfile} $out/etc/profile.d/my-profile.sh
+        '')
+        aspell
+        bc
+        coreutils
+        ffmpeg
+        man
+        nixUnstable
+        emscripten
+        jq
+        nox
+        silver-searcher
+      ];
+      pathsToLink = [ "/share/man" "/share/doc" "/bin" "/etc" ];
+      extraOutputsToInstall = [ "man" "doc" ];
+    };
+  };
+}
+```
+
+For this to work fully, you must also have this script sourced when you are logged in. Try adding something like this to your `~/.profile` file:
+
+```ShellSession
+#!/bin/sh
+if [ -d $HOME/.nix-profile/etc/profile.d ]; then
+  for i in $HOME/.nix-profile/etc/profile.d/*.sh; do
+    if [ -r $i ]; then
+      . $i
+    fi
+  done
+fi
+```
+
+Now just run `source $HOME/.profile` and you can starting loading man pages from your environment.
+
+### GNU info setup {#sec-gnu-info-setup}
+
+Configuring GNU info is a little bit trickier than man pages. To work correctly, info needs a database to be generated. This can be done with some small modifications to our environment scripts.
+
+```nix
+{
+  packageOverrides = pkgs: with pkgs; rec {
+    myProfile = writeText "my-profile" ''
+      export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin
+      export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man
+      export INFOPATH=$HOME/.nix-profile/share/info:/nix/var/nix/profiles/default/share/info:/usr/share/info
+    '';
+    myPackages = pkgs.buildEnv {
+      name = "my-packages";
+      paths = [
+        (runCommand "profile" {} ''
+          mkdir -p $out/etc/profile.d
+          cp ${myProfile} $out/etc/profile.d/my-profile.sh
+        '')
+        aspell
+        bc
+        coreutils
+        ffmpeg
+        man
+        nixUnstable
+        emscripten
+        jq
+        nox
+        silver-searcher
+        texinfoInteractive
+      ];
+      pathsToLink = [ "/share/man" "/share/doc" "/share/info" "/bin" "/etc" ];
+      extraOutputsToInstall = [ "man" "doc" "info" ];
+      postBuild = ''
+        if [ -x $out/bin/install-info -a -w $out/share/info ]; then
+          shopt -s nullglob
+          for i in $out/share/info/*.info $out/share/info/*.info.gz; do
+              $out/bin/install-info $i $out/share/info/dir
+          done
+        fi
+      '';
+    };
+  };
+}
+```
+
+`postBuild` tells Nixpkgs to run a command after building the environment. In this case, `install-info` adds the installed info pages to `dir` which is GNU info's default root node. Note that `texinfoInteractive` is added to the environment to give the `install-info` command.
diff --git a/nixpkgs/doc/using/configuration.xml b/nixpkgs/doc/using/configuration.xml
deleted file mode 100644
index 3ef39733458c..000000000000
--- a/nixpkgs/doc/using/configuration.xml
+++ /dev/null
@@ -1,451 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="chap-packageconfig">
- <title>Global configuration</title>
- <para>
-  Nix comes with certain defaults about what packages can and cannot be installed, based on a package's metadata. By default, Nix will prevent installation if any of the following criteria are true:
- </para>
- <itemizedlist>
-  <listitem>
-   <para>
-    The package is thought to be broken, and has had its <literal>meta.broken</literal> set to <literal>true</literal>.
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    The package isn't intended to run on the given system, as none of its <literal>meta.platforms</literal> match the given system.
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    The package's <literal>meta.license</literal> is set to a license which is considered to be unfree.
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    The package has known security vulnerabilities but has not or can not be updated for some reason, and a list of issues has been entered in to the package's <literal>meta.knownVulnerabilities</literal>.
-   </para>
-  </listitem>
- </itemizedlist>
- <para>
-  Note that all this is checked during evaluation already, and the check includes any package that is evaluated. In particular, all build-time dependencies are checked. <literal>nix-env -qa</literal> will (attempt to) hide any packages that would be refused.
- </para>
- <para>
-  Each of these criteria can be altered in the nixpkgs configuration.
- </para>
- <para>
-  The nixpkgs configuration for a NixOS system is set in the <literal>configuration.nix</literal>, as in the following example:
-<programlisting>
-{
-  nixpkgs.config = {
-    allowUnfree = true;
-  };
-}
-</programlisting>
-  However, this does not allow unfree software for individual users. Their configurations are managed separately.
- </para>
- <para>
-  A user's nixpkgs configuration is stored in a user-specific configuration file located at <filename>~/.config/nixpkgs/config.nix</filename>. For example:
-<programlisting>
-{
-  allowUnfree = true;
-}
-</programlisting>
- </para>
- <para>
-  Note that we are not able to test or build unfree software on Hydra due to policy. Most unfree licenses prohibit us from either executing or distributing the software.
- </para>
- <section xml:id="sec-allow-broken">
-  <title>Installing broken packages</title>
-
-  <para>
-   There are two ways to try compiling a package which has been marked as broken.
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
-<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_BROKEN=1</screen>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     For permanently allowing broken packages to be built, you may add <literal>allowBroken = true;</literal> to your user's configuration file, like this:
-<programlisting>
-{
-  allowBroken = true;
-}
-</programlisting>
-    </para>
-   </listitem>
-  </itemizedlist>
- </section>
- <section xml:id="sec-allow-unsupported-system">
-  <title>Installing packages on unsupported systems</title>
-
-  <para>
-   There are also two ways to try compiling a package which has been marked as unsupported for the given system.
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     For allowing the build of an unsupported package once, you can use an environment variable for a single invocation of the nix tools:
-<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1</screen>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     For permanently allowing unsupported packages to be built, you may add <literal>allowUnsupportedSystem = true;</literal> to your user's configuration file, like this:
-<programlisting>
-{
-  allowUnsupportedSystem = true;
-}
-</programlisting>
-    </para>
-   </listitem>
-  </itemizedlist>
-
-  <para>
-   The difference between a package being unsupported on some system and being broken is admittedly a bit fuzzy. If a program <emphasis>ought</emphasis> to work on a certain platform, but doesn't, the platform should be included in <literal>meta.platforms</literal>, but marked as broken with e.g. <literal>meta.broken = !hostPlatform.isWindows</literal>. Of course, this begs the question of what "ought" means exactly. That is left to the package maintainer.
-  </para>
- </section>
- <section xml:id="sec-allow-unfree">
-  <title>Installing unfree packages</title>
-
-  <para>
-   There are several ways to tweak how Nix handles a package which has been marked as unfree.
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     To temporarily allow all unfree packages, you can use an environment variable for a single invocation of the nix tools:
-<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_UNFREE=1</screen>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It is possible to permanently allow individual unfree packages, while still blocking unfree packages by default using the <literal>allowUnfreePredicate</literal> configuration option in the user configuration file.
-    </para>
-    <para>
-     This option is a function which accepts a package as a parameter, and returns a boolean. The following example configuration accepts a package and always returns false:
-<programlisting>
-{
-  allowUnfreePredicate = (pkg: false);
-}
-</programlisting>
-    </para>
-    <para>
-     For a more useful example, try the following. This configuration only allows unfree packages named roon-server and visual studio code:
-<programlisting>
-{
-  allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
-    "roon-server"
-    "vscode"
-  ];
-}
-</programlisting>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It is also possible to allow and block licenses that are specifically acceptable or not acceptable, using <literal>allowlistedLicenses</literal> and <literal>blocklistedLicenses</literal>, respectively.
-    </para>
-    <para>
-     The following example configuration allowlists the licenses <literal>amd</literal> and <literal>wtfpl</literal>:
-<programlisting>
-{
-  allowlistedLicenses = with lib.licenses; [ amd wtfpl ];
-}
-</programlisting>
-    </para>
-    <para>
-     The following example configuration blocklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
-<programlisting>
-{
-  blocklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ];
-}
-</programlisting>
-    </para>
-    <para>
-     Note that <literal>allowlistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic allowlist for all types of licenses. <literal>blocklistedLicenses</literal> applies to all licenses.
-    </para>
-   </listitem>
-  </itemizedlist>
-
-  <para>
-   A complete list of licenses can be found in the file <filename>lib/licenses.nix</filename> of the nixpkgs tree.
-  </para>
- </section>
- <section xml:id="sec-allow-insecure">
-  <title>Installing insecure packages</title>
-
-  <para>
-   There are several ways to tweak how Nix handles a package which has been marked as insecure.
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     To temporarily allow all insecure packages, you can use an environment variable for a single invocation of the nix tools:
-<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_INSECURE=1</screen>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It is possible to permanently allow individual insecure packages, while still blocking other insecure packages by default using the <literal>permittedInsecurePackages</literal> configuration option in the user configuration file.
-    </para>
-    <para>
-     The following example configuration permits the installation of the hypothetically insecure package <literal>hello</literal>, version <literal>1.2.3</literal>:
-<programlisting>
-{
-  permittedInsecurePackages = [
-    "hello-1.2.3"
-  ];
-}
-</programlisting>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It is also possible to create a custom policy around which insecure packages to allow and deny, by overriding the <literal>allowInsecurePredicate</literal> configuration option.
-    </para>
-    <para>
-     The <literal>allowInsecurePredicate</literal> option is a function which accepts a package and returns a boolean, much like <literal>allowUnfreePredicate</literal>.
-    </para>
-    <para>
-     The following configuration example only allows insecure packages with very short names:
-<programlisting>
-{
-  allowInsecurePredicate = pkg: builtins.stringLength (lib.getName pkg) &lt;= 5;
-}
-</programlisting>
-    </para>
-    <para>
-     Note that <literal>permittedInsecurePackages</literal> is only checked if <literal>allowInsecurePredicate</literal> is not specified.
-    </para>
-   </listitem>
-  </itemizedlist>
- </section>
-<!--============================================================-->
- <section xml:id="sec-modify-via-packageOverrides">
-  <title>Modify packages via <literal>packageOverrides</literal></title>
-
-  <para>
-   You can define a function called <varname>packageOverrides</varname> in your local <filename>~/.config/nixpkgs/config.nix</filename> to override Nix packages. It must be a function that takes pkgs as an argument and returns a modified set of packages.
-<programlisting>
-{
-  packageOverrides = pkgs: rec {
-    foo = pkgs.foo.override { ... };
-  };
-}
-</programlisting>
-  </para>
- </section>
- <section xml:id="sec-declarative-package-management">
-  <title>Declarative Package Management</title>
-
-  <section xml:id="sec-building-environment">
-   <title>Build an environment</title>
-
-   <para>
-    Using <literal>packageOverrides</literal>, it is possible to manage packages declaratively. This means that we can list all of our desired packages within a declarative Nix expression. For example, to have <literal>aspell</literal>, <literal>bc</literal>, <literal>ffmpeg</literal>, <literal>coreutils</literal>, <literal>gdb</literal>, <literal>nixUnstable</literal>, <literal>emscripten</literal>, <literal>jq</literal>, <literal>nox</literal>, and <literal>silver-searcher</literal>, we could use the following in <filename>~/.config/nixpkgs/config.nix</filename>:
-   </para>
-
-<screen>
-{
-  packageOverrides = pkgs: with pkgs; {
-    myPackages = pkgs.buildEnv {
-      name = "my-packages";
-      paths = [
-        aspell
-        bc
-        coreutils
-        gdb
-        ffmpeg
-        nixUnstable
-        emscripten
-        jq
-        nox
-        silver-searcher
-      ];
-    };
-  };
-}
-</screen>
-
-   <para>
-    To install it into our environment, you can just run <literal>nix-env -iA nixpkgs.myPackages</literal>. If you want to load the packages to be built from a working copy of <literal>nixpkgs</literal> you just run <literal>nix-env -f. -iA myPackages</literal>. To explore what's been installed, just look through <filename>~/.nix-profile/</filename>. You can see that a lot of stuff has been installed. Some of this stuff is useful some of it isn't. Let's tell Nixpkgs to only link the stuff that we want:
-   </para>
-
-<screen>
-{
-  packageOverrides = pkgs: with pkgs; {
-    myPackages = pkgs.buildEnv {
-      name = "my-packages";
-      paths = [
-        aspell
-        bc
-        coreutils
-        gdb
-        ffmpeg
-        nixUnstable
-        emscripten
-        jq
-        nox
-        silver-searcher
-      ];
-      pathsToLink = [ "/share" "/bin" ];
-    };
-  };
-}
-</screen>
-
-   <para>
-    <literal>pathsToLink</literal> tells Nixpkgs to only link the paths listed which gets rid of the extra stuff in the profile. <filename>/bin</filename> and <filename>/share</filename> are good defaults for a user environment, getting rid of the clutter. If you are running on Nix on MacOS, you may want to add another path as well, <filename>/Applications</filename>, that makes GUI apps available.
-   </para>
-  </section>
-
-  <section xml:id="sec-getting-documentation">
-   <title>Getting documentation</title>
-
-   <para>
-    After building that new environment, look through <filename>~/.nix-profile</filename> to make sure everything is there that we wanted. Discerning readers will note that some files are missing. Look inside <filename>~/.nix-profile/share/man/man1/</filename> to verify this. There are no man pages for any of the Nix tools! This is because some packages like Nix have multiple outputs for things like documentation (see section 4). Let's make Nix install those as well.
-   </para>
-
-<screen>
-{
-  packageOverrides = pkgs: with pkgs; {
-    myPackages = pkgs.buildEnv {
-      name = "my-packages";
-      paths = [
-        aspell
-        bc
-        coreutils
-        ffmpeg
-        nixUnstable
-        emscripten
-        jq
-        nox
-        silver-searcher
-      ];
-      pathsToLink = [ "/share/man" "/share/doc" "/bin" ];
-      extraOutputsToInstall = [ "man" "doc" ];
-    };
-  };
-}
-</screen>
-
-   <para>
-    This provides us with some useful documentation for using our packages. However, if we actually want those manpages to be detected by man, we need to set up our environment. This can also be managed within Nix expressions.
-   </para>
-
-<screen>
-{
-  packageOverrides = pkgs: with pkgs; rec {
-    myProfile = writeText "my-profile" ''
-      export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin
-      export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man
-    '';
-    myPackages = pkgs.buildEnv {
-      name = "my-packages";
-      paths = [
-        (runCommand "profile" {} ''
-          mkdir -p $out/etc/profile.d
-          cp ${myProfile} $out/etc/profile.d/my-profile.sh
-        '')
-        aspell
-        bc
-        coreutils
-        ffmpeg
-        man
-        nixUnstable
-        emscripten
-        jq
-        nox
-        silver-searcher
-      ];
-      pathsToLink = [ "/share/man" "/share/doc" "/bin" "/etc" ];
-      extraOutputsToInstall = [ "man" "doc" ];
-    };
-  };
-}
-</screen>
-
-   <para>
-    For this to work fully, you must also have this script sourced when you are logged in. Try adding something like this to your <filename>~/.profile</filename> file:
-   </para>
-
-<screen>
-#!/bin/sh
-if [ -d $HOME/.nix-profile/etc/profile.d ]; then
-  for i in $HOME/.nix-profile/etc/profile.d/*.sh; do
-    if [ -r $i ]; then
-      . $i
-    fi
-  done
-fi
-</screen>
-
-   <para>
-    Now just run <literal>source $HOME/.profile</literal> and you can starting loading man pages from your environment.
-   </para>
-  </section>
-
-  <section xml:id="sec-gnu-info-setup">
-   <title>GNU info setup</title>
-
-   <para>
-    Configuring GNU info is a little bit trickier than man pages. To work correctly, info needs a database to be generated. This can be done with some small modifications to our environment scripts.
-   </para>
-
-<screen>
-{
-  packageOverrides = pkgs: with pkgs; rec {
-    myProfile = writeText "my-profile" ''
-      export PATH=$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/sbin:/bin:/usr/sbin:/usr/bin
-      export MANPATH=$HOME/.nix-profile/share/man:/nix/var/nix/profiles/default/share/man:/usr/share/man
-      export INFOPATH=$HOME/.nix-profile/share/info:/nix/var/nix/profiles/default/share/info:/usr/share/info
-    '';
-    myPackages = pkgs.buildEnv {
-      name = "my-packages";
-      paths = [
-        (runCommand "profile" {} ''
-          mkdir -p $out/etc/profile.d
-          cp ${myProfile} $out/etc/profile.d/my-profile.sh
-        '')
-        aspell
-        bc
-        coreutils
-        ffmpeg
-        man
-        nixUnstable
-        emscripten
-        jq
-        nox
-        silver-searcher
-        texinfoInteractive
-      ];
-      pathsToLink = [ "/share/man" "/share/doc" "/share/info" "/bin" "/etc" ];
-      extraOutputsToInstall = [ "man" "doc" "info" ];
-      postBuild = ''
-        if [ -x $out/bin/install-info -a -w $out/share/info ]; then
-          shopt -s nullglob
-          for i in $out/share/info/*.info $out/share/info/*.info.gz; do
-              $out/bin/install-info $i $out/share/info/dir
-          done
-        fi
-      '';
-    };
-  };
-}
-</screen>
-
-   <para>
-    <literal>postBuild</literal> tells Nixpkgs to run a command after building the environment. In this case, <literal>install-info</literal> adds the installed info pages to <literal>dir</literal> which is GNU info's default root node. Note that <literal>texinfoInteractive</literal> is added to the environment to give the <literal>install-info</literal> command.
-   </para>
-  </section>
- </section>
-</chapter>
diff --git a/nixpkgs/doc/using/overlays.chapter.md b/nixpkgs/doc/using/overlays.chapter.md
new file mode 100644
index 000000000000..037580583b6b
--- /dev/null
+++ b/nixpkgs/doc/using/overlays.chapter.md
@@ -0,0 +1,149 @@
+# Overlays {#chap-overlays}
+
+This chapter describes how to extend and change Nixpkgs using overlays.  Overlays are used to add layers in the fixed-point used by Nixpkgs to compose the set of all packages.
+
+Nixpkgs can be configured with a list of overlays, which are applied in order. This means that the order of the overlays can be significant if multiple layers override the same package.
+
+## Installing overlays {#sec-overlays-install}
+
+The list of overlays can be set either explicitly in a Nix expression, or through `<nixpkgs-overlays>` or user configuration files.
+
+### Set overlays in NixOS or Nix expressions {#sec-overlays-argument}
+
+On a NixOS system the value of the `nixpkgs.overlays` option, if present, is passed to the system Nixpkgs directly as an argument. Note that this does not affect the overlays for non-NixOS operations (e.g.  `nix-env`), which are [looked up](#sec-overlays-lookup) independently.
+
+The list of overlays can be passed explicitly when importing nixpkgs, for example `import <nixpkgs> { overlays = [ overlay1 overlay2 ]; }`.
+
+NOTE: DO NOT USE THIS in nixpkgs. Further overlays can be added by calling the `pkgs.extend` or `pkgs.appendOverlays`, although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
+
+### Install overlays via configuration lookup {#sec-overlays-lookup}
+
+The list of overlays is determined as follows.
+
+1.  First, if an [`overlays` argument](#sec-overlays-argument) to the Nixpkgs function itself is given, then that is used and no path lookup will be performed.
+
+2.  Otherwise, if the Nix path entry `<nixpkgs-overlays>` exists, we look for overlays at that path, as described below.
+
+    See the section on `NIX_PATH` in the Nix manual for more details on how to set a value for `<nixpkgs-overlays>.`
+
+3.  If one of `~/.config/nixpkgs/overlays.nix` and `~/.config/nixpkgs/overlays/` exists, then we look for overlays at that path, as described below. It is an error if both exist.
+
+If we are looking for overlays at a path, then there are two cases:
+
+-   If the path is a file, then the file is imported as a Nix expression and used as the list of overlays.
+
+-   If the path is a directory, then we take the content of the directory, order it lexicographically, and attempt to interpret each as an overlay by:
+
+    -   Importing the file, if it is a `.nix` file.
+
+    -   Importing a top-level `default.nix` file, if it is a directory.
+
+Because overlays that are set in NixOS configuration do not affect non-NixOS operations such as `nix-env`, the `overlays.nix` option provides a convenient way to use the same overlays for a NixOS system configuration and user configuration: the same file can be used as `overlays.nix` and imported as the value of `nixpkgs.overlays`.
+
+## Defining overlays {#sec-overlays-definition}
+
+Overlays are Nix functions which accept two arguments, conventionally called `self` and `super`, and return a set of packages. For example, the following is a valid overlay.
+
+```nix
+self: super:
+
+{
+  boost = super.boost.override {
+    python = self.python3;
+  };
+  rr = super.callPackage ./pkgs/rr {
+    stdenv = self.stdenv_32bit;
+  };
+}
+```
+
+The first argument (`self`) corresponds to the final package set. You should use this set for the dependencies of all packages specified in your overlay. For example, all the dependencies of `rr` in the example above come from `self`, as well as the overridden dependencies used in the `boost` override.
+
+The second argument (`super`) corresponds to the result of the evaluation of the previous stages of Nixpkgs. It does not contain any of the packages added by the current overlay, nor any of the following overlays. This set should be used either to refer to packages you wish to override, or to access functions defined in Nixpkgs. For example, the original recipe of `boost` in the above example, comes from `super`, as well as the `callPackage` function.
+
+The value returned by this function should be a set similar to `pkgs/top-level/all-packages.nix`, containing overridden and/or new packages.
+
+Overlays are similar to other methods for customizing Nixpkgs, in particular the `packageOverrides` attribute described in [](#sec-modify-via-packageOverrides). Indeed, `packageOverrides` acts as an overlay with only the `super` argument. It is therefore appropriate for basic use, but overlays are more powerful and easier to distribute.
+
+## Using overlays to configure alternatives {#sec-overlays-alternatives}
+
+Certain software packages have different implementations of the same interface. Other distributions have functionality to switch between these. For example, Debian provides [DebianAlternatives](https://wiki.debian.org/DebianAlternatives).  Nixpkgs has what we call `alternatives`, which are configured through overlays.
+
+### BLAS/LAPACK {#sec-overlays-alternatives-blas-lapack}
+
+In Nixpkgs, we have multiple implementations of the BLAS/LAPACK numerical linear algebra interfaces. They are:
+
+-   [OpenBLAS](https://www.openblas.net/)
+
+    The Nixpkgs attribute is `openblas` for ILP64 (integer width = 64 bits) and `openblasCompat` for LP64 (integer width = 32 bits).  `openblasCompat` is the default.
+
+-   [LAPACK reference](http://www.netlib.org/lapack/) (also provides BLAS)
+
+    The Nixpkgs attribute is `lapack-reference`.
+
+-   [Intel MKL](https://software.intel.com/en-us/mkl) (only works on the x86_64 architecture, unfree)
+
+    The Nixpkgs attribute is `mkl`.
+
+-   [BLIS](https://github.com/flame/blis)
+
+    BLIS, available through the attribute `blis`, is a framework for linear algebra kernels. In addition, it implements the BLAS interface.
+
+-   [AMD BLIS/LIBFLAME](https://developer.amd.com/amd-aocl/blas-library/) (optimized for modern AMD x86_64 CPUs)
+
+    The AMD fork of the BLIS library, with attribute `amd-blis`, extends BLIS with optimizations for modern AMD CPUs. The changes are usually submitted to the upstream BLIS project after some time. However, AMD BLIS typically provides some performance improvements on AMD Zen CPUs. The complementary AMD LIBFLAME library, with attribute `amd-libflame`, provides a LAPACK implementation.
+
+Introduced in [PR #83888](https://github.com/NixOS/nixpkgs/pull/83888), we are able to override the `blas` and `lapack` packages to use different implementations, through the `blasProvider` and `lapackProvider` argument. This can be used to select a different provider. BLAS providers will have symlinks in `$out/lib/libblas.so.3` and `$out/lib/libcblas.so.3` to their respective BLAS libraries.  Likewise, LAPACK providers will have symlinks in `$out/lib/liblapack.so.3` and `$out/lib/liblapacke.so.3` to their respective LAPACK libraries. For example, Intel MKL is both a BLAS and LAPACK provider. An overlay can be created to use Intel MKL that looks like:
+
+```nix
+self: super:
+
+{
+  blas = super.blas.override {
+    blasProvider = self.mkl;
+  };
+
+  lapack = super.lapack.override {
+    lapackProvider = self.mkl;
+  };
+}
+```
+
+This overlay uses Intel's MKL library for both BLAS and LAPACK interfaces. Note that the same can be accomplished at runtime using `LD_LIBRARY_PATH` of `libblas.so.3` and `liblapack.so.3`. For instance:
+
+```ShellSession
+$ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
+```
+
+Intel MKL requires an `openmp` implementation when running with multiple processors. By default, `mkl` will use Intel's `iomp` implementation if no other is specified, but this is a runtime-only dependency and binary compatible with the LLVM implementation. To use that one instead, Intel recommends users set it with `LD_PRELOAD`. Note that `mkl` is only available on `x86_64-linux` and `x86_64-darwin`. Moreover, Hydra is not building and distributing pre-compiled binaries using it.
+
+For BLAS/LAPACK switching to work correctly, all packages must depend on `blas` or `lapack`. This ensures that only one BLAS/LAPACK library is used at one time. There are two versions of BLAS/LAPACK currently in the wild, `LP64` (integer size = 32 bits) and `ILP64` (integer size = 64 bits). Some software needs special flags or patches to work with `ILP64`. You can check if `ILP64` is used in Nixpkgs with `blas.isILP64` and `lapack.isILP64`. Some software does NOT work with `ILP64`, and derivations need to specify an assertion to prevent this. You can prevent `ILP64` from being used with the following:
+
+```nix
+{ stdenv, blas, lapack, ... }:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+stdenv.mkDerivation {
+  ...
+}
+```
+
+### Switching the MPI implementation {#sec-overlays-alternatives-mpi}
+
+All programs that are built with [MPI](https://en.wikipedia.org/wiki/Message_Passing_Interface) support use the generic attribute `mpi` as an input. At the moment Nixpkgs natively provides two different MPI implementations:
+
+-   [Open MPI](https://www.open-mpi.org/) (default), attribute name
+    `openmpi`
+
+-   [MPICH](https://www.mpich.org/), attribute name `mpich`
+
+To provide MPI enabled applications that use `MPICH`, instead of the default `Open MPI`, simply use the following overlay:
+
+```nix
+self: super:
+
+{
+  mpi = self.mpich;
+}
+```
diff --git a/nixpkgs/doc/using/overlays.xml b/nixpkgs/doc/using/overlays.xml
deleted file mode 100644
index 8f12aad2adad..000000000000
--- a/nixpkgs/doc/using/overlays.xml
+++ /dev/null
@@ -1,279 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="chap-overlays">
- <title>Overlays</title>
- <para>
-  This chapter describes how to extend and change Nixpkgs using overlays. Overlays are used to add layers in the fixed-point used by Nixpkgs to compose the set of all packages.
- </para>
- <para>
-  Nixpkgs can be configured with a list of overlays, which are applied in order. This means that the order of the overlays can be significant if multiple layers override the same package.
- </para>
-<!--============================================================-->
- <section xml:id="sec-overlays-install">
-  <title>Installing overlays</title>
-
-  <para>
-   The list of overlays can be set either explicitly in a Nix expression, or through <literal>&lt;nixpkgs-overlays></literal> or user configuration files.
-  </para>
-
-  <section xml:id="sec-overlays-argument">
-   <title>Set overlays in NixOS or Nix expressions</title>
-
-   <para>
-    On a NixOS system the value of the <literal>nixpkgs.overlays</literal> option, if present, is passed to the system Nixpkgs directly as an argument. Note that this does not affect the overlays for non-NixOS operations (e.g. <literal>nix-env</literal>), which are <link xlink:href="#sec-overlays-lookup">looked</link> up independently.
-   </para>
-
-   <para>
-    The list of overlays can be passed explicitly when importing nixpkgs, for example <literal>import &lt;nixpkgs> { overlays = [ overlay1 overlay2 ]; }</literal>.
-   </para>
-
-   <para>
-    NOTE: DO NOT USE THIS in nixpkgs. Further overlays can be added by calling the <literal>pkgs.extend</literal> or <literal>pkgs.appendOverlays</literal>, although it is often preferable to avoid these functions, because they recompute the Nixpkgs fixpoint, which is somewhat expensive to do.
-   </para>
-  </section>
-
-  <section xml:id="sec-overlays-lookup">
-   <title>Install overlays via configuration lookup</title>
-
-   <para>
-    The list of overlays is determined as follows.
-   </para>
-
-   <para>
-    <orderedlist>
-     <listitem>
-      <para>
-       First, if an <link xlink:href="#sec-overlays-argument"><varname>overlays</varname> argument</link> to the Nixpkgs function itself is given, then that is used and no path lookup will be performed.
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       Otherwise, if the Nix path entry <literal>&lt;nixpkgs-overlays></literal> exists, we look for overlays at that path, as described below.
-      </para>
-      <para>
-       See the section on <literal>NIX_PATH</literal> in the Nix manual for more details on how to set a value for <literal>&lt;nixpkgs-overlays>.</literal>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       If one of <filename>~/.config/nixpkgs/overlays.nix</filename> and <filename>~/.config/nixpkgs/overlays/</filename> exists, then we look for overlays at that path, as described below. It is an error if both exist.
-      </para>
-     </listitem>
-    </orderedlist>
-   </para>
-
-   <para>
-    If we are looking for overlays at a path, then there are two cases:
-    <itemizedlist>
-     <listitem>
-      <para>
-       If the path is a file, then the file is imported as a Nix expression and used as the list of overlays.
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       If the path is a directory, then we take the content of the directory, order it lexicographically, and attempt to interpret each as an overlay by:
-       <itemizedlist>
-        <listitem>
-         <para>
-          Importing the file, if it is a <literal>.nix</literal> file.
-         </para>
-        </listitem>
-        <listitem>
-         <para>
-          Importing a top-level <filename>default.nix</filename> file, if it is a directory.
-         </para>
-        </listitem>
-       </itemizedlist>
-      </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-
-   <para>
-    Because overlays that are set in NixOS configuration do not affect non-NixOS operations such as <literal>nix-env</literal>, the <filename>overlays.nix</filename> option provides a convenient way to use the same overlays for a NixOS system configuration and user configuration: the same file can be used as <filename>overlays.nix</filename> and imported as the value of <literal>nixpkgs.overlays</literal>.
-   </para>
-
-<!-- TODO: Example of sharing overlays between NixOS configuration
-     and configuration lookup. Also reference the example
-     from the sec-overlays-argument paragraph about NixOS.
- -->
-  </section>
- </section>
-<!--============================================================-->
- <section xml:id="sec-overlays-definition">
-  <title>Defining overlays</title>
-
-  <para>
-   Overlays are Nix functions which accept two arguments, conventionally called <varname>self</varname> and <varname>super</varname>, and return a set of packages. For example, the following is a valid overlay.
-  </para>
-
-<programlisting>
-self: super:
-
-{
-  boost = super.boost.override {
-    python = self.python3;
-  };
-  rr = super.callPackage ./pkgs/rr {
-    stdenv = self.stdenv_32bit;
-  };
-}
-</programlisting>
-
-  <para>
-   The first argument (<varname>self</varname>) corresponds to the final package set. You should use this set for the dependencies of all packages specified in your overlay. For example, all the dependencies of <varname>rr</varname> in the example above come from <varname>self</varname>, as well as the overridden dependencies used in the <varname>boost</varname> override.
-  </para>
-
-  <para>
-   The second argument (<varname>super</varname>) corresponds to the result of the evaluation of the previous stages of Nixpkgs. It does not contain any of the packages added by the current overlay, nor any of the following overlays. This set should be used either to refer to packages you wish to override, or to access functions defined in Nixpkgs. For example, the original recipe of <varname>boost</varname> in the above example, comes from <varname>super</varname>, as well as the <varname>callPackage</varname> function.
-  </para>
-
-  <para>
-   The value returned by this function should be a set similar to <filename>pkgs/top-level/all-packages.nix</filename>, containing overridden and/or new packages.
-  </para>
-
-  <para>
-   Overlays are similar to other methods for customizing Nixpkgs, in particular the <literal>packageOverrides</literal> attribute described in <xref linkend="sec-modify-via-packageOverrides"/>. Indeed, <literal>packageOverrides</literal> acts as an overlay with only the <varname>super</varname> argument. It is therefore appropriate for basic use, but overlays are more powerful and easier to distribute.
-  </para>
- </section>
- <section xml:id="sec-overlays-alternatives">
-  <title>Using overlays to configure alternatives</title>
-
-  <para>
-   Certain software packages have different implementations of the same interface. Other distributions have functionality to switch between these. For example, Debian provides <link
-     xlink:href="https://wiki.debian.org/DebianAlternatives">DebianAlternatives</link>. Nixpkgs has what we call <literal>alternatives</literal>, which are configured through overlays.
-  </para>
-
-  <section xml:id="sec-overlays-alternatives-blas-lapack">
-   <title>BLAS/LAPACK</title>
-
-   <para>
-    In Nixpkgs, we have multiple implementations of the BLAS/LAPACK numerical linear algebra interfaces. They are:
-   </para>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      <link xlink:href="https://www.openblas.net/">OpenBLAS</link>
-     </para>
-     <para>
-      The Nixpkgs attribute is <literal>openblas</literal> for ILP64 (integer width = 64 bits) and <literal>openblasCompat</literal> for LP64 (integer width = 32 bits). <literal>openblasCompat</literal> is the default.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="http://www.netlib.org/lapack/">LAPACK reference</link> (also provides BLAS)
-     </para>
-     <para>
-      The Nixpkgs attribute is <literal>lapack-reference</literal>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link
-           xlink:href="https://software.intel.com/en-us/mkl">Intel MKL</link> (only works on the x86_64 architecture, unfree)
-     </para>
-     <para>
-      The Nixpkgs attribute is <literal>mkl</literal>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link
-           xlink:href="https://github.com/flame/blis">BLIS</link>
-     </para>
-     <para>
-      BLIS, available through the attribute <literal>blis</literal>, is a framework for linear algebra kernels. In addition, it implements the BLAS interface.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link
-           xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
-     </para>
-     <para>
-      The AMD fork of the BLIS library, with attribute <literal>amd-blis</literal>, extends BLIS with optimizations for modern AMD CPUs. The changes are usually submitted to the upstream BLIS project after some time. However, AMD BLIS typically provides some performance improvements on AMD Zen CPUs. The complementary AMD LIBFLAME library, with attribute <literal>amd-libflame</literal>, provides a LAPACK implementation.
-     </para>
-    </listitem>
-   </itemizedlist>
-
-   <para>
-    Introduced in <link
-       xlink:href="https://github.com/NixOS/nixpkgs/pull/83888">PR #83888</link>, we are able to override the <literal>blas</literal> and <literal>lapack</literal> packages to use different implementations, through the <literal>blasProvider</literal> and <literal>lapackProvider</literal> argument. This can be used to select a different provider. BLAS providers will have symlinks in <literal>$out/lib/libblas.so.3</literal> and <literal>$out/lib/libcblas.so.3</literal> to their respective BLAS libraries. Likewise, LAPACK providers will have symlinks in <literal>$out/lib/liblapack.so.3</literal> and <literal>$out/lib/liblapacke.so.3</literal> to their respective LAPACK libraries. For example, Intel MKL is both a BLAS and LAPACK provider. An overlay can be created to use Intel MKL that looks like:
-   </para>
-
-<programlisting>
-self: super:
-
-{
-  blas = super.blas.override {
-    blasProvider = self.mkl;
-  };
-
-  lapack = super.lapack.override {
-    lapackProvider = self.mkl;
-  };
-}
-</programlisting>
-
-   <para>
-    This overlay uses Intel’s MKL library for both BLAS and LAPACK interfaces. Note that the same can be accomplished at runtime using <literal>LD_LIBRARY_PATH</literal> of <literal>libblas.so.3</literal> and <literal>liblapack.so.3</literal>. For instance:
-   </para>
-
-<screen>
-<prompt>$ </prompt>LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
-</screen>
-
-   <para>
-    Intel MKL requires an <literal>openmp</literal> implementation when running with multiple processors. By default, <literal>mkl</literal> will use Intel’s <literal>iomp</literal> implementation if no other is specified, but this is a runtime-only dependency and binary compatible with the LLVM implementation. To use that one instead, Intel recommends users set it with <literal>LD_PRELOAD</literal>. Note that <literal>mkl</literal> is only available on <literal>x86_64-linux</literal> and <literal>x86_64-darwin</literal>. Moreover, Hydra is not building and distributing pre-compiled binaries using it.
-   </para>
-
-   <para>
-    For BLAS/LAPACK switching to work correctly, all packages must depend on <literal>blas</literal> or <literal>lapack</literal>. This ensures that only one BLAS/LAPACK library is used at one time. There are two versions of BLAS/LAPACK currently in the wild, <literal>LP64</literal> (integer size = 32 bits) and <literal>ILP64</literal> (integer size = 64 bits). Some software needs special flags or patches to work with <literal>ILP64</literal>. You can check if <literal>ILP64</literal> is used in Nixpkgs with <varname>blas.isILP64</varname> and <varname>lapack.isILP64</varname>. Some software does NOT work with <literal>ILP64</literal>, and derivations need to specify an assertion to prevent this. You can prevent <literal>ILP64</literal> from being used with the following:
-   </para>
-
-<programlisting>
-{ stdenv, blas, lapack, ... }:
-
-assert (!blas.isILP64) &amp;&amp; (!lapack.isILP64);
-
-stdenv.mkDerivation {
-  ...
-}
-</programlisting>
-  </section>
-
-  <section xml:id="sec-overlays-alternatives-mpi">
-   <title>Switching the MPI implementation</title>
-
-   <para>
-    All programs that are built with <link xlink:href="https://en.wikipedia.org/wiki/Message_Passing_Interface">MPI</link> support use the generic attribute <varname>mpi</varname> as an input. At the moment Nixpkgs natively provides two different MPI implementations:
-    <itemizedlist>
-     <listitem>
-      <para>
-       <link xlink:href="https://www.open-mpi.org/">Open MPI</link> (default), attribute name <varname>openmpi</varname>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       <link xlink:href="https://www.mpich.org/">MPICH</link>, attribute name <varname>mpich</varname>
-      </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-
-   <para>
-    To provide MPI enabled applications that use <literal>MPICH</literal>, instead of the default <literal>Open MPI</literal>, simply use the following overlay:
-   </para>
-
-<programlisting>
-self: super:
-
-{
-  mpi = self.mpich;
-}
-     </programlisting>
-  </section>
- </section>
-</chapter>
diff --git a/nixpkgs/doc/using/overrides.chapter.md b/nixpkgs/doc/using/overrides.chapter.md
new file mode 100644
index 000000000000..66e5103531a9
--- /dev/null
+++ b/nixpkgs/doc/using/overrides.chapter.md
@@ -0,0 +1,104 @@
+# Overriding {#chap-overrides}
+
+Sometimes one wants to override parts of `nixpkgs`, e.g. derivation attributes, the results of derivations.
+
+These functions are used to make changes to packages, returning only single packages. [Overlays](#chap-overlays), on the other hand, can be used to combine the overridden packages across the entire package set of Nixpkgs.
+
+## &lt;pkg&gt;.override {#sec-pkg-override}
+
+The function `override` is usually available for all the derivations in the nixpkgs expression (`pkgs`).
+
+It is used to override the arguments passed to a function.
+
+Example usages:
+
+```nix
+pkgs.foo.override { arg1 = val1; arg2 = val2; ... }
+```
+
+<!-- TODO: move below programlisting to a new section about extending and overlays and reference it -->
+
+```nix
+import pkgs.path { overlays = [ (self: super: {
+  foo = super.foo.override { barSupport = true ; };
+  })]};
+```
+
+```nix
+mypkg = pkgs.callPackage ./mypkg.nix {
+  mydep = pkgs.mydep.override { ... };
+  }
+```
+
+In the first example, `pkgs.foo` is the result of a function call with some default arguments, usually a derivation. Using `pkgs.foo.override` will call the same function with the given new arguments.
+
+## &lt;pkg&gt;.overrideAttrs {#sec-pkg-overrideAttrs}
+
+The function `overrideAttrs` allows overriding the attribute set passed to a `stdenv.mkDerivation` call, producing a new derivation based on the original one. This function is available on all derivations produced by the `stdenv.mkDerivation` function, which is most packages in the nixpkgs expression `pkgs`.
+
+Example usage:
+
+```nix
+helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
+  separateDebugInfo = true;
+});
+```
+
+In the above example, the `separateDebugInfo` attribute is overridden to be true, thus building debug info for `helloWithDebug`, while all other attributes will be retained from the original `hello` package.
+
+The argument `oldAttrs` is conventionally used to refer to the attr set originally passed to `stdenv.mkDerivation`.
+
+::: {.note}
+Note that `separateDebugInfo` is processed only by the `stdenv.mkDerivation` function, not the generated, raw Nix derivation. Thus, using `overrideDerivation` will not work in this case, as it overrides only the attributes of the final derivation. It is for this reason that `overrideAttrs` should be preferred in (almost) all cases to `overrideDerivation`, i.e. to allow using `stdenv.mkDerivation` to process input arguments, as well as the fact that it is easier to use (you can use the same attribute names you see in your Nix code, instead of the ones generated (e.g. `buildInputs` vs `nativeBuildInputs`), and it involves less typing).
+:::
+
+## &lt;pkg&gt;.overrideDerivation {#sec-pkg-overrideDerivation}
+
+::: {.warning}
+You should prefer `overrideAttrs` in almost all cases, see its documentation for the reasons why. `overrideDerivation` is not deprecated and will continue to work, but is less nice to use and does not have as many abilities as `overrideAttrs`.
+:::
+
+::: {.warning}
+Do not use this function in Nixpkgs as it evaluates a Derivation before modifying it, which breaks package abstraction and removes error-checking of function arguments. In addition, this evaluation-per-function application incurs a performance penalty, which can become a problem if many overrides are used. It is only intended for ad-hoc customisation, such as in `~/.config/nixpkgs/config.nix`.
+:::
+
+The function `overrideDerivation` creates a new derivation based on an existing one by overriding the original's attributes with the attribute set produced by the specified function. This function is available on all derivations defined using the `makeOverridable` function. Most standard derivation-producing functions, such as `stdenv.mkDerivation`, are defined using this function, which means most packages in the nixpkgs expression, `pkgs`, have this function.
+
+Example usage:
+
+```nix
+mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
+  name = "sed-4.2.2-pre";
+  src = fetchurl {
+    url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
+    sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
+  };
+  patches = [];
+});
+```
+
+In the above example, the `name`, `src`, and `patches` of the derivation will be overridden, while all other attributes will be retained from the original derivation.
+
+The argument `oldAttrs` is used to refer to the attribute set of the original derivation.
+
+::: {.note}
+A package's attributes are evaluated *before* being modified by the `overrideDerivation` function. For example, the `name` attribute reference in `url = "mirror://gnu/hello/${name}.tar.gz";` is filled-in *before* the `overrideDerivation` function modifies the attribute set. This means that overriding the `name` attribute, in this example, *will not* change the value of the `url` attribute. Instead, we need to override both the `name` *and* `url` attributes.
+:::
+
+## lib.makeOverridable {#sec-lib-makeOverridable}
+
+The function `lib.makeOverridable` is used to make the result of a function easily customizable. This utility only makes sense for functions that accept an argument set and return an attribute set.
+
+Example usage:
+
+```nix
+f = { a, b }: { result = a+b; };
+c = lib.makeOverridable f { a = 1; b = 2; };
+```
+
+The variable `c` is the value of the `f` function applied with some default arguments. Hence the value of `c.result` is `3`, in this example.
+
+The variable `c` however also has some additional functions, like
+[c.override](#sec-pkg-override) which can be used to override the
+default arguments. In this example the value of
+`(c.override { a = 4; }).result` is 6.
diff --git a/nixpkgs/doc/using/overrides.xml b/nixpkgs/doc/using/overrides.xml
deleted file mode 100644
index c9d36ddb2d7b..000000000000
--- a/nixpkgs/doc/using/overrides.xml
+++ /dev/null
@@ -1,145 +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"
-         xml:id="chap-overrides">
- <title>Overriding</title>
- <para>
-  Sometimes one wants to override parts of <literal>nixpkgs</literal>, e.g. derivation attributes, the results of derivations.
- </para>
- <para>
-  These functions are used to make changes to packages, returning only single packages. <link xlink:href="#chap-overlays">Overlays</link>, on the other hand, can be used to combine the overridden packages across the entire package set of Nixpkgs.
- </para>
- <section xml:id="sec-pkg-override">
-  <title>&lt;pkg&gt;.override</title>
-
-  <para>
-   The function <varname>override</varname> is usually available for all the derivations in the nixpkgs expression (<varname>pkgs</varname>).
-  </para>
-
-  <para>
-   It is used to override the arguments passed to a function.
-  </para>
-
-  <para>
-   Example usages:
-<programlisting>pkgs.foo.override { arg1 = val1; arg2 = val2; ... }</programlisting>
-<!-- TODO: move below programlisting to a new section about extending and overlays
-           and reference it
-  -->
-<programlisting>
-import pkgs.path { overlays = [ (self: super: {
-  foo = super.foo.override { barSupport = true ; };
-  })]};
-</programlisting>
-<programlisting>
-mypkg = pkgs.callPackage ./mypkg.nix {
-  mydep = pkgs.mydep.override { ... };
-  }
-</programlisting>
-  </para>
-
-  <para>
-   In the first example, <varname>pkgs.foo</varname> is the result of a function call with some default arguments, usually a derivation. Using <varname>pkgs.foo.override</varname> will call the same function with the given new arguments.
-  </para>
- </section>
- <section xml:id="sec-pkg-overrideAttrs">
-  <title>&lt;pkg&gt;.overrideAttrs</title>
-
-  <para>
-   The function <varname>overrideAttrs</varname> allows overriding the attribute set passed to a <varname>stdenv.mkDerivation</varname> call, producing a new derivation based on the original one. This function is available on all derivations produced by the <varname>stdenv.mkDerivation</varname> function, which is most packages in the nixpkgs expression <varname>pkgs</varname>.
-  </para>
-
-  <para>
-   Example usage:
-<programlisting>
-helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
-  separateDebugInfo = true;
-});
-</programlisting>
-  </para>
-
-  <para>
-   In the above example, the <varname>separateDebugInfo</varname> attribute is overridden to be true, thus building debug info for <varname>helloWithDebug</varname>, while all other attributes will be retained from the original <varname>hello</varname> package.
-  </para>
-
-  <para>
-   The argument <varname>oldAttrs</varname> is conventionally used to refer to the attr set originally passed to <varname>stdenv.mkDerivation</varname>.
-  </para>
-
-  <note>
-   <para>
-    Note that <varname>separateDebugInfo</varname> is processed only by the <varname>stdenv.mkDerivation</varname> function, not the generated, raw Nix derivation. Thus, using <varname>overrideDerivation</varname> will not work in this case, as it overrides only the attributes of the final derivation. It is for this reason that <varname>overrideAttrs</varname> should be preferred in (almost) all cases to <varname>overrideDerivation</varname>, i.e. to allow using <varname>stdenv.mkDerivation</varname> to process input arguments, as well as the fact that it is easier to use (you can use the same attribute names you see in your Nix code, instead of the ones generated (e.g. <varname>buildInputs</varname> vs <varname>nativeBuildInputs</varname>), and it involves less typing).
-   </para>
-  </note>
- </section>
- <section xml:id="sec-pkg-overrideDerivation">
-  <title>&lt;pkg&gt;.overrideDerivation</title>
-
-  <warning>
-   <para>
-    You should prefer <varname>overrideAttrs</varname> in almost all cases, see its documentation for the reasons why. <varname>overrideDerivation</varname> is not deprecated and will continue to work, but is less nice to use and does not have as many abilities as <varname>overrideAttrs</varname>.
-   </para>
-  </warning>
-
-  <warning>
-   <para>
-    Do not use this function in Nixpkgs as it evaluates a Derivation before modifying it, which breaks package abstraction and removes error-checking of function arguments. In addition, this evaluation-per-function application incurs a performance penalty, which can become a problem if many overrides are used. It is only intended for ad-hoc customisation, such as in <filename>~/.config/nixpkgs/config.nix</filename>.
-   </para>
-  </warning>
-
-  <para>
-   The function <varname>overrideDerivation</varname> creates a new derivation based on an existing one by overriding the original's attributes with the attribute set produced by the specified function. This function is available on all derivations defined using the <varname>makeOverridable</varname> function. Most standard derivation-producing functions, such as <varname>stdenv.mkDerivation</varname>, are defined using this function, which means most packages in the nixpkgs expression, <varname>pkgs</varname>, have this function.
-  </para>
-
-  <para>
-   Example usage:
-<programlisting>
-mySed = pkgs.gnused.overrideDerivation (oldAttrs: {
-  name = "sed-4.2.2-pre";
-  src = fetchurl {
-    url = ftp://alpha.gnu.org/gnu/sed/sed-4.2.2-pre.tar.bz2;
-    sha256 = "11nq06d131y4wmf3drm0yk502d2xc6n5qy82cg88rb9nqd2lj41k";
-  };
-  patches = [];
-});
-</programlisting>
-  </para>
-
-  <para>
-   In the above example, the <varname>name</varname>, <varname>src</varname>, and <varname>patches</varname> of the derivation will be overridden, while all other attributes will be retained from the original derivation.
-  </para>
-
-  <para>
-   The argument <varname>oldAttrs</varname> is used to refer to the attribute set of the original derivation.
-  </para>
-
-  <note>
-   <para>
-    A package's attributes are evaluated *before* being modified by the <varname>overrideDerivation</varname> function. For example, the <varname>name</varname> attribute reference in <varname>url = "mirror://gnu/hello/${name}.tar.gz";</varname> is filled-in *before* the <varname>overrideDerivation</varname> function modifies the attribute set. This means that overriding the <varname>name</varname> attribute, in this example, *will not* change the value of the <varname>url</varname> attribute. Instead, we need to override both the <varname>name</varname> *and* <varname>url</varname> attributes.
-   </para>
-  </note>
- </section>
- <section xml:id="sec-lib-makeOverridable">
-  <title>lib.makeOverridable</title>
-
-  <para>
-   The function <varname>lib.makeOverridable</varname> is used to make the result of a function easily customizable. This utility only makes sense for functions that accept an argument set and return an attribute set.
-  </para>
-
-  <para>
-   Example usage:
-<programlisting>
-f = { a, b }: { result = a+b; };
-c = lib.makeOverridable f { a = 1; b = 2; };
-</programlisting>
-  </para>
-
-  <para>
-   The variable <varname>c</varname> is the value of the <varname>f</varname> function applied with some default arguments. Hence the value of <varname>c.result</varname> is <literal>3</literal>, in this example.
-  </para>
-
-  <para>
-   The variable <varname>c</varname> however also has some additional functions, like <link linkend="sec-pkg-override">c.override</link> which can be used to override the default arguments. In this example the value of <varname>(c.override { a = 4; }).result</varname> is 6.
-  </para>
- </section>
-</chapter>
diff --git a/nixpkgs/flake.nix b/nixpkgs/flake.nix
index 537f91ee5e71..5237cae86f18 100644
--- a/nixpkgs/flake.nix
+++ b/nixpkgs/flake.nix
@@ -18,6 +18,7 @@
         "aarch64-linux"
         "armv6l-linux"
         "armv7l-linux"
+        "aarch64-darwin"
       ];
 
       forAllSystems = f: lib.genAttrs systems (system: f system);
diff --git a/nixpkgs/lib/attrsets.nix b/nixpkgs/lib/attrsets.nix
index 0ce3aaeca452..5c787940cb0c 100644
--- a/nixpkgs/lib/attrsets.nix
+++ b/nixpkgs/lib/attrsets.nix
@@ -243,6 +243,10 @@ rec {
   /* Call a function for each attribute in the given set and return
      the result in a list.
 
+     Type:
+       mapAttrsToList ::
+         (String -> a -> b) -> AttrSet -> [b]
+
      Example:
        mapAttrsToList (name: value: name + value)
           { x = "a"; y = "b"; }
diff --git a/nixpkgs/lib/customisation.nix b/nixpkgs/lib/customisation.nix
index 37a7951896b0..c17cb0d0f8e5 100644
--- a/nixpkgs/lib/customisation.nix
+++ b/nixpkgs/lib/customisation.nix
@@ -219,16 +219,17 @@ rec {
 
   /* Like the above, but aims to support cross compilation. It's still ugly, but
      hopefully it helps a little bit. */
-  makeScopeWithSplicing = splicePackages: newScope: otherSplices: keep: f:
+  makeScopeWithSplicing = splicePackages: newScope: otherSplices: keep: extra: f:
     let
-      spliced = splicePackages {
+      spliced0 = splicePackages {
         pkgsBuildBuild = otherSplices.selfBuildBuild;
         pkgsBuildHost = otherSplices.selfBuildHost;
         pkgsBuildTarget = otherSplices.selfBuildTarget;
         pkgsHostHost = otherSplices.selfHostHost;
         pkgsHostTarget = self; # Not `otherSplices.selfHostTarget`;
         pkgsTargetTarget = otherSplices.selfTargetTarget;
-      } // keep self;
+      };
+      spliced = extra spliced0 // spliced0 // keep self;
       self = f self // {
         newScope = scope: newScope (spliced // scope);
         callPackage = newScope spliced; # == self.newScope {};
@@ -239,6 +240,7 @@ rec {
           newScope
           otherSplices
           keep
+          extra
           (lib.fixedPoints.extends g f);
         packages = f;
       };
diff --git a/nixpkgs/lib/default.nix b/nixpkgs/lib/default.nix
index 50320669e280..ccae0bbc3ab4 100644
--- a/nixpkgs/lib/default.nix
+++ b/nixpkgs/lib/default.nix
@@ -66,8 +66,9 @@ let
       stringLength sub substring tail trace;
     inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
       bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
-      importJSON importTOML warn info showWarnings nixpkgsVersion version mod compare
-      splitByAndCompare functionArgs setFunctionArgs isFunction toHexString toBaseDigits;
+      importJSON importTOML warn warnIf info showWarnings nixpkgsVersion version
+      mod compare splitByAndCompare functionArgs setFunctionArgs isFunction
+      toHexString toBaseDigits;
     inherit (self.fixedPoints) fix fix' converge extends composeExtensions
       composeManyExtensions makeExtensible makeExtensibleWithCustomName;
     inherit (self.attrsets) attrByPath hasAttrByPath setAttrByPath
diff --git a/nixpkgs/lib/flake.nix b/nixpkgs/lib/flake.nix
new file mode 100644
index 000000000000..f05bd40960a8
--- /dev/null
+++ b/nixpkgs/lib/flake.nix
@@ -0,0 +1,5 @@
+{
+  description = "Library of low-level helper functions for nix expressions.";
+
+  outputs = { self }: { lib = import ./lib; };
+}
diff --git a/nixpkgs/lib/licenses.nix b/nixpkgs/lib/licenses.nix
index 88d598d92079..3c4323e3d960 100644
--- a/nixpkgs/lib/licenses.nix
+++ b/nixpkgs/lib/licenses.nix
@@ -346,6 +346,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) ({
     fullName = "Unspecified free software license";
   };
 
+  ftl = spdx {
+    spdxId = "FTL";
+    fullName = "Freetype Project License";
+  };
+
   g4sl = {
     fullName = "Geant4 Software License";
     url = "https://geant4.web.cern.ch/geant4/license/LICENSE.html";
@@ -734,6 +739,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) ({
     free = false;
   };
 
+  stk = {
+    shortName = "stk";
+    fullName = "Synthesis Tool Kit 4.3";
+    url = https://github.com/thestk/stk/blob/master/LICENSE;
+  };
+
   tcltk = spdx {
     spdxId = "TCL";
     fullName = "TCL/TK License";
@@ -760,6 +771,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) ({
     # channel and NixOS images.
   };
 
+  unicode-dfs-2015 = spdx {
+    spdxId = "Unicode-DFS-2015";
+    fullName = "Unicode License Agreement - Data Files and Software (2015)";
+  };
+
   unicode-dfs-2016 = spdx {
     spdxId = "Unicode-DFS-2016";
     fullName = "Unicode License Agreement - Data Files and Software (2016)";
diff --git a/nixpkgs/lib/meta.nix b/nixpkgs/lib/meta.nix
index 2e83c4247ddf..bc04394dcf0b 100644
--- a/nixpkgs/lib/meta.nix
+++ b/nixpkgs/lib/meta.nix
@@ -87,4 +87,16 @@ rec {
         then { system = elem; }
         else { parsed = elem; };
     in lib.matchAttrs pattern platform;
+
+  /* Check if a package is available on a given platform.
+
+     A package is available on a platform if both
+
+       1. One of `meta.platforms` pattern matches the given platform.
+
+       2. None of `meta.badPlatforms` pattern matches the given platform.
+  */
+  availableOn = platform: pkg:
+    lib.any (platformMatch platform) pkg.meta.platforms &&
+    lib.all (elem: !platformMatch platform elem) (pkg.meta.badPlatforms or []);
 }
diff --git a/nixpkgs/lib/modules.nix b/nixpkgs/lib/modules.nix
index d3f10944e708..99b9a8a31eac 100644
--- a/nixpkgs/lib/modules.nix
+++ b/nixpkgs/lib/modules.nix
@@ -23,6 +23,7 @@ let
     isAttrs
     isBool
     isFunction
+    isList
     isString
     length
     mapAttrs
@@ -37,7 +38,7 @@ let
     setAttrByPath
     toList
     types
-    warn
+    warnIf
     ;
   inherit (lib.options)
     isOption
@@ -127,7 +128,7 @@ rec {
         let collected = collectModules
           (specialArgs.modulesPath or "")
           (modules ++ [ internalModule ])
-          ({ inherit lib options config; } // specialArgs);
+          ({ inherit lib options config specialArgs; } // specialArgs);
         in mergeModules prefix (reverseList collected);
 
       options = merged.matchedOptions;
@@ -188,6 +189,9 @@ rec {
       loadModule = args: fallbackFile: fallbackKey: m:
         if isFunction m || isAttrs m then
           unifyModuleSyntax fallbackFile fallbackKey (applyIfFunction fallbackKey m args)
+        else if isList m then
+          let defs = [{ file = fallbackFile; value = m; }]; in
+          throw "Module imports can't be nested lists. Perhaps you meant to remove one level of lists? Definitions: ${showDefs defs}"
         else unifyModuleSyntax (toString m) (toString m) (applyIfFunction (toString m) (import m) args);
 
       /*
@@ -295,13 +299,11 @@ rec {
       # a module will resolve strictly the attributes used as argument but
       # not their values.  The values are forwarding the result of the
       # evaluation of the option.
-      requiredArgs = builtins.attrNames (lib.functionArgs f);
       context = name: ''while evaluating the module argument `${name}' in "${key}":'';
-      extraArgs = builtins.listToAttrs (map (name: {
-        inherit name;
-        value = builtins.addErrorContext (context name)
-          (args.${name} or config._module.args.${name});
-      }) requiredArgs);
+      extraArgs = builtins.mapAttrs (name: _:
+        builtins.addErrorContext (context name)
+          (args.${name} or config._module.args.${name})
+      ) (lib.functionArgs f);
 
       # Note: we append in the opposite order such that we can add an error
       # context on the explicited arguments of "args" too. This update
@@ -516,8 +518,8 @@ rec {
       value = if opt ? apply then opt.apply res.mergedValue else res.mergedValue;
 
       warnDeprecation =
-        if opt.type.deprecationMessage == null then id
-        else warn "The type `types.${opt.type.name}' of option `${showOption loc}' defined in ${showFiles opt.declarations} is deprecated. ${opt.type.deprecationMessage}";
+        warnIf (opt.type.deprecationMessage != null)
+          "The type `types.${opt.type.name}' of option `${showOption loc}' defined in ${showFiles opt.declarations} is deprecated. ${opt.type.deprecationMessage}";
 
     in warnDeprecation opt //
       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
diff --git a/nixpkgs/lib/strings.nix b/nixpkgs/lib/strings.nix
index 5010d9159cb8..49fa0196a0b2 100644
--- a/nixpkgs/lib/strings.nix
+++ b/nixpkgs/lib/strings.nix
@@ -606,7 +606,7 @@ rec {
      This function will fail if the input string is longer than the
      requested length.
 
-     Type: fixedWidthString :: int -> string -> string
+     Type: fixedWidthString :: int -> string -> string -> string
 
      Example:
        fixedWidthString 5 "0" (toString 15)
@@ -644,8 +644,8 @@ rec {
   floatToString = float: let
     result = toString float;
     precise = float == fromJSON result;
-  in if precise then result
-    else lib.warn "Imprecise conversion from float to string ${result}" result;
+  in lib.warnIf (!precise) "Imprecise conversion from float to string ${result}"
+    result;
 
   /* Check whether a value can be coerced to a string */
   isCoercibleToString = x:
@@ -659,7 +659,7 @@ rec {
      Example:
        isStorePath "/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11/bin/python"
        => false
-       isStorePath "/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11/"
+       isStorePath "/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11"
        => true
        isStorePath pkgs.python
        => true
@@ -667,7 +667,7 @@ rec {
        => false
   */
   isStorePath = x:
-    if isCoercibleToString x then
+    if !(isList x) && isCoercibleToString x then
       let str = toString x; in
       substring 0 1 str == "/"
       && dirOf str == storeDir
diff --git a/nixpkgs/lib/systems/default.nix b/nixpkgs/lib/systems/default.nix
index 21b00374da47..70ec98b03c16 100644
--- a/nixpkgs/lib/systems/default.nix
+++ b/nixpkgs/lib/systems/default.nix
@@ -41,6 +41,19 @@ rec {
         else if final.isNetBSD              then "nblibc"
         # TODO(@Ericson2314) think more about other operating systems
         else                                     "native/impure";
+      # Choose what linker we wish to use by default. Someday we might also
+      # choose the C compiler, runtime library, C++ standard library, etc. in
+      # this way, nice and orthogonally, and deprecate `useLLVM`. But due to
+      # the monolithic GCC build we cannot actually make those choices
+      # independently, so we are just doing `linker` and keeping `useLLVM` for
+      # now.
+      linker =
+        /**/ if final.useLLVM or false      then "lld"
+        else if final.isDarwin              then "cctools"
+        # "bfd" and "gold" both come from GNU binutils. The existance of Gold
+        # is why we use the more obscure "bfd" and not "binutils" for this
+        # choice.
+        else                                     "bfd";
       extensions = {
         sharedLibrary =
           /**/ if final.isDarwin  then ".dylib"
@@ -118,7 +131,7 @@ rec {
         else null;
       # The canonical name for this attribute is darwinSdkVersion, but some
       # platforms define the old name "sdkVer".
-      darwinSdkVersion = final.sdkVer or "10.12";
+      darwinSdkVersion = final.sdkVer or (if final.isAarch64 then "11.0" else "10.12");
       darwinMinVersion = final.darwinSdkVersion;
       darwinMinVersionVariable =
         if final.isMacOS then "MACOSX_DEPLOYMENT_TARGET"
diff --git a/nixpkgs/lib/systems/doubles.nix b/nixpkgs/lib/systems/doubles.nix
index 6f638be585b1..c6d90ba9850d 100644
--- a/nixpkgs/lib/systems/doubles.nix
+++ b/nixpkgs/lib/systems/doubles.nix
@@ -96,5 +96,5 @@ in {
 
   embedded      = filterDoubles predicates.isNone;
 
-  mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux"];
+  mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux" "aarch64-darwin"];
 }
diff --git a/nixpkgs/lib/systems/examples.nix b/nixpkgs/lib/systems/examples.nix
index 9c0013c39778..6a8f4e091aae 100644
--- a/nixpkgs/lib/systems/examples.nix
+++ b/nixpkgs/lib/systems/examples.nix
@@ -70,6 +70,15 @@ rec {
     useAndroidPrebuilt = true;
   };
 
+  aarch64-android = {
+    config = "aarch64-unknown-linux-android";
+    sdkVer = "30";
+    ndkVer = "21";
+    libc = "bionic";
+    useAndroidPrebuilt = false;
+    useLLVM = true;
+  };
+
   scaleway-c1 = armv7l-hf-multiplatform // platforms.scaleway-c1;
 
   pogoplug4 = {
@@ -231,6 +240,12 @@ rec {
     useiOSPrebuilt = true;
   };
 
+  aarch64-darwin = {
+    config = "aarch64-apple-darwin";
+    xcodePlatform = "MacOSX";
+    platform = {};
+  };
+
   #
   # Windows
   #
diff --git a/nixpkgs/lib/systems/parse.nix b/nixpkgs/lib/systems/parse.nix
index a06ac0d11f74..2b789fd8ecb3 100644
--- a/nixpkgs/lib/systems/parse.nix
+++ b/nixpkgs/lib/systems/parse.nix
@@ -121,15 +121,28 @@ rec {
     js       = { bits = 32; significantByte = littleEndian; family = "js"; };
   };
 
-  # Determine where two CPUs are compatible with each other. That is,
-  # can we run code built for system b on system a? For that to
-  # happen, then the set of all possible possible programs that system
-  # b accepts must be a subset of the set of all programs that system
-  # a accepts. This compatibility relation forms a category where each
-  # CPU is an object and each arrow from a to b represents
-  # compatibility. CPUs with multiple modes of Endianness are
-  # isomorphic while all CPUs are endomorphic because any program
-  # built for a CPU can run on that CPU.
+  # GNU build systems assume that older NetBSD architectures are using a.out.
+  gnuNetBSDDefaultExecFormat = cpu:
+    if (cpu.family == "x86" && cpu.bits == 32) ||
+       (cpu.family == "arm" && cpu.bits == 32) ||
+       (cpu.family == "sparc" && cpu.bits == 32)
+    then execFormats.aout
+    else execFormats.elf;
+
+  # Determine when two CPUs are compatible with each other. That is,
+  # can code built for system B run on system A? For that to happen,
+  # the programs that system B accepts must be a subset of the
+  # programs that system A accepts.
+  #
+  # We have the following properties of the compatibility relation,
+  # which must be preserved when adding compatibility information for
+  # additional CPUs.
+  # - (reflexivity)
+  #   Every CPU is compatible with itself.
+  # - (transitivity)
+  #   If A is compatible with B and B is compatible with C then A is compatible with C.
+  # - (compatible under multiple endianness)
+  #   CPUs with multiple modes of endianness are pairwise compatible.
   isCompatible = a: b: with cpuTypes; lib.any lib.id [
     # x86
     (b == i386 && isCompatible a i486)
@@ -271,7 +284,7 @@ rec {
 
   kernels = with execFormats; with kernelFamilies; setTypes types.openKernel {
     # TODO(@Ericson2314): Don't want to mass-rebuild yet to keeping 'darwin' as
-    # the nnormalized name for macOS.
+    # the normalized name for macOS.
     macos    = { execFormat = macho;   families = { inherit darwin; }; name = "darwin"; };
     ios      = { execFormat = macho;   families = { inherit darwin; }; };
     freebsd  = { execFormat = elf;     families = { inherit bsd; }; };
@@ -458,8 +471,12 @@ rec {
     else "${cpu.name}-${kernel.name}";
 
   tripleFromSystem = { cpu, vendor, kernel, abi, ... } @ sys: assert isSystem sys; let
+    optExecFormat =
+      lib.optionalString (kernel.name == "netbsd" &&
+                          gnuNetBSDDefaultExecFormat cpu != kernel.execFormat)
+        kernel.execFormat.name;
     optAbi = lib.optionalString (abi != abis.unknown) "-${abi.name}";
-  in "${cpu.name}-${vendor.name}-${kernel.name}${optAbi}";
+  in "${cpu.name}-${vendor.name}-${kernel.name}${optExecFormat}${optAbi}";
 
   ################################################################################
 
diff --git a/nixpkgs/lib/systems/platforms.nix b/nixpkgs/lib/systems/platforms.nix
index f46e9c826a5c..92285346f754 100644
--- a/nixpkgs/lib/systems/platforms.nix
+++ b/nixpkgs/lib/systems/platforms.nix
@@ -375,6 +375,13 @@ rec {
     };
   };
 
+  apple-m1 = {
+    gcc = {
+      arch = "armv8.3-a+crypto+sha2+aes+crc+fp16+lse+simd+ras+rdm+rcpc";
+      cpu = "apple-a13";
+    };
+  };
+
   ##
   ## MIPS
   ##
@@ -474,11 +481,11 @@ rec {
   riscv-multiplatform = {
     linux-kernel = {
       name = "riscv-multiplatform";
-      target = "vmlinux";
+      target = "Image";
       autoModules = true;
       baseConfig = "defconfig";
+      DTB = true;
       extraConfig = ''
-        FTRACE n
         SERIAL_OF_PLATFORM y
       '';
     };
@@ -495,7 +502,10 @@ rec {
         else if lib.versionOlder version "6" then sheevaplug
         else if lib.versionOlder version "7" then raspberrypi
         else armv7l-hf-multiplatform
-    else if platform.isAarch64 then aarch64-multiplatform
+
+    else if platform.isAarch64 then
+      if platform.isDarwin then apple-m1
+      else aarch64-multiplatform
 
     else if platform.isRiscV then riscv-multiplatform
 
diff --git a/nixpkgs/lib/tests/modules.sh b/nixpkgs/lib/tests/modules.sh
index 2eddeec07b1a..2e57c2f8e2a1 100755
--- a/nixpkgs/lib/tests/modules.sh
+++ b/nixpkgs/lib/tests/modules.sh
@@ -175,6 +175,9 @@ checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshort
 ## submoduleWith should merge all modules in one swoop
 checkConfigOutput "true" config.submodule.inner ./declare-submoduleWith-modules.nix
 checkConfigOutput "true" config.submodule.outer ./declare-submoduleWith-modules.nix
+# Should also be able to evaluate the type name (which evaluates freeformType,
+# which evaluates all the modules defined by the type)
+checkConfigOutput "submodule" options.submodule.type.description ./declare-submoduleWith-modules.nix
 
 ## Paths should be allowed as values and work as expected
 checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix
diff --git a/nixpkgs/lib/tests/modules/declare-submoduleWith-modules.nix b/nixpkgs/lib/tests/modules/declare-submoduleWith-modules.nix
index 4736ab41751b..a8b82d176881 100644
--- a/nixpkgs/lib/tests/modules/declare-submoduleWith-modules.nix
+++ b/nixpkgs/lib/tests/modules/declare-submoduleWith-modules.nix
@@ -8,9 +8,6 @@
             default = false;
           };
         }
-        {
-          outer = true;
-        }
       ];
     };
     default = {};
@@ -25,6 +22,7 @@
     })
     {
       inner = true;
+      outer = true;
     }
   ];
 }
diff --git a/nixpkgs/lib/trivial.nix b/nixpkgs/lib/trivial.nix
index be6d0115f5b8..e1581f1e91d6 100644
--- a/nixpkgs/lib/trivial.nix
+++ b/nixpkgs/lib/trivial.nix
@@ -171,7 +171,7 @@ rec {
      On each release the first letter is bumped and a new animal is chosen
      starting with that new letter.
   */
-  codeName = "Okapi";
+  codeName = "Porcupine";
 
   /* Returns the current nixpkgs version suffix as string. */
   versionSuffix =
@@ -297,12 +297,15 @@ rec {
   # Usage:
   # {
   #   foo = lib.warn "foo is deprecated" oldFoo;
+  #   bar = lib.warnIf (bar == "") "Empty bar is deprecated" bar;
   # }
   #
   # TODO: figure out a clever way to integrate location information from
   # something like __unsafeGetAttrPos.
 
   warn = msg: builtins.trace "warning: ${msg}";
+  warnIf = cond: msg: if cond then warn msg else id;
+
   info = msg: builtins.trace "INFO: ${msg}";
 
   showWarnings = warnings: res: lib.fold (w: x: warn w x) res warnings;
diff --git a/nixpkgs/lib/types.nix b/nixpkgs/lib/types.nix
index d0a8e96149d7..f47a1f92de72 100644
--- a/nixpkgs/lib/types.nix
+++ b/nixpkgs/lib/types.nix
@@ -147,9 +147,13 @@ rec {
     , # The deprecation message to display when this type is used by an option
       # If null, the type isn't deprecated
       deprecationMessage ? null
+    , # The types that occur in the definition of this type. This is used to
+      # issue deprecation warnings recursively. Can also be used to reuse
+      # nested types
+      nestedTypes ? {}
     }:
     { _type = "option-type";
-      inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor deprecationMessage;
+      inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor deprecationMessage nestedTypes;
       description = if description == null then name else description;
     };
 
@@ -256,14 +260,14 @@ rec {
         };
         u8 = unsign 8 256;
         u16 = unsign 16 65536;
-        # the biggest int a 64-bit Nix accepts is 2^63 - 1 (9223372036854775808), for a 32-bit Nix it is 2^31 - 1 (2147483647)
-        # the smallest int a 64-bit Nix accepts is -2^63 (-9223372036854775807), for a 32-bit Nix it is -2^31 (-2147483648)
-        # u32 = unsign 32 4294967296;
+        # the biggest int Nix accepts is 2^63 - 1 (9223372036854775808)
+        # the smallest int Nix accepts is -2^63 (-9223372036854775807)
+        u32 = unsign 32 4294967296;
         # u64 = unsign 64 18446744073709551616;
 
         s8 = sign 8 256;
         s16 = sign 16 65536;
-        # s32 = sign 32 4294967296;
+        s32 = sign 32 4294967296;
       };
 
     # Alias of u16 for a port number
@@ -337,7 +341,7 @@ rec {
     };
 
     shellPackage = package // {
-      check = x: (package.check x) && (hasAttr "shellPath" x);
+      check = x: isDerivation x && hasAttr "shellPath" x;
     };
 
     path = mkOptionType {
@@ -365,6 +369,7 @@ rec {
       getSubModules = elemType.getSubModules;
       substSubModules = m: listOf (elemType.substSubModules m);
       functor = (defaultFunctor name) // { wrapped = elemType; };
+      nestedTypes.elemType = elemType;
     };
 
     nonEmptyListOf = elemType:
@@ -389,6 +394,7 @@ rec {
       getSubModules = elemType.getSubModules;
       substSubModules = m: attrsOf (elemType.substSubModules m);
       functor = (defaultFunctor name) // { wrapped = elemType; };
+      nestedTypes.elemType = elemType;
     };
 
     # A version of attrsOf that's lazy in its values at the expense of
@@ -413,6 +419,7 @@ rec {
       getSubModules = elemType.getSubModules;
       substSubModules = m: lazyAttrsOf (elemType.substSubModules m);
       functor = (defaultFunctor name) // { wrapped = elemType; };
+      nestedTypes.elemType = elemType;
     };
 
     # TODO: drop this in the future:
@@ -421,6 +428,7 @@ rec {
       deprecationMessage = "Mixing lists with attribute values is no longer"
         + " possible; please use `types.attrsOf` instead. See"
         + " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation.";
+      nestedTypes.elemType = elemType;
     };
 
     # Value of given type but with no merging (i.e. `uniq list`s are not concatenated).
@@ -433,6 +441,7 @@ rec {
       getSubModules = elemType.getSubModules;
       substSubModules = m: uniq (elemType.substSubModules m);
       functor = (defaultFunctor name) // { wrapped = elemType; };
+      nestedTypes.elemType = elemType;
     };
 
     # Null or value of ...
@@ -451,6 +460,7 @@ rec {
       getSubModules = elemType.getSubModules;
       substSubModules = m: nullOr (elemType.substSubModules m);
       functor = (defaultFunctor name) // { wrapped = elemType; };
+      nestedTypes.elemType = elemType;
     };
 
     functionTo = elemType: mkOptionType {
@@ -535,6 +545,9 @@ rec {
         substSubModules = m: submoduleWith (attrs // {
           modules = m;
         });
+        nestedTypes = lib.optionalAttrs (freeformType != null) {
+          freeformType = freeformType;
+        };
         functor = defaultFunctor name // {
           type = types.submoduleWith;
           payload = {
@@ -596,6 +609,8 @@ rec {
            then functor.type mt1 mt2
            else null;
       functor = (defaultFunctor name) // { wrapped = [ t1 t2 ]; };
+      nestedTypes.left = t1;
+      nestedTypes.right = t2;
     };
 
     # Any of the types in the given list
@@ -627,6 +642,8 @@ rec {
         substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m);
         typeMerge = t1: t2: null;
         functor = (defaultFunctor name) // { wrapped = finalType; };
+        nestedTypes.coercedType = coercedType;
+        nestedTypes.finalType = finalType;
       };
 
     # Obsolete alternative to configOf.  It takes its option
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix
index ee12b1a24db3..3dbc1902b71c 100644
--- a/nixpkgs/maintainers/maintainer-list.nix
+++ b/nixpkgs/maintainers/maintainer-list.nix
@@ -64,6 +64,16 @@
       fingerprint = "F466 A548 AD3F C1F1 8C88  4576 8702 7528 B006 D66D";
     }];
   };
+  _0xbe7a = {
+    email = "nix@be7a.de";
+    name = "Bela Stoyan";
+    github = "0xbe7a";
+    githubId = 6232980;
+    keys = [{
+      longkeyid = "rsa4096/0x6510870A77F49A99";
+      fingerprint = "2536 9E86 1AA5 9EB7 4C47  B138 6510 870A 77F4 9A99";
+    }];
+  };
   _1000101 = {
     email = "b1000101@pm.me";
     github = "1000101";
@@ -290,6 +300,12 @@
     githubId = 335271;
     name = "James Alexander Feldman-Crough";
   };
+  afontain = {
+    email = "antoine.fontaine@epfl.ch";
+    github = "necessarily-equal";
+    githubId = 59283660;
+    name = "Antoine Fontaine";
+  };
   aforemny = {
     email = "aforemny@posteo.de";
     github = "aforemny";
@@ -428,6 +444,12 @@
     githubId = 782180;
     name = "Alex Vorobiev";
   };
+  alex-eyre = {
+    email = "A.Eyre@sms.ed.ac.uk";
+    github = "alex-eyre";
+    githubId = 38869148;
+    name = "Alex Eyre";
+  };
   algorith = {
     email = "dries_van_daele@telenet.be";
     name = "Dries Van Daele";
@@ -1316,6 +1338,12 @@
     github = "bmilanov";
     githubId = 30090366;
   };
+  bmwalters = {
+    name = "Bradley Walters";
+    email = "oss@walters.app";
+    github = "bmwalters";
+    githubId = 4380777;
+  };
   bobakker = {
     email = "bobakk3r@gmail.com";
     github = "bobakker";
@@ -1382,12 +1410,6 @@
     githubId = 302429;
     name = "Marton Boros";
   };
-  branwright1 = {
-    email = "branwright@protonmail.com";
-    github = "branwright1";
-    githubId = 71175207;
-    name = "Brandon Wright";
-  };
   bramd = {
     email = "bram@bramd.nl";
     github = "bramd";
@@ -1522,6 +1544,12 @@
     githubId = 510553;
     name = "Jos van Bakel";
   };
+  c4605 = {
+    email = "bolasblack@gmail.com";
+    github = "bolasblack";
+    githubId = 382011;
+    name = "c4605";
+  };
   caadar = {
     email = "v88m@posteo.net";
     github = "caadar";
@@ -2177,6 +2205,12 @@
     githubId = 990767;
     name = "Daniel Olsen";
   };
+  daneads = {
+    email = "me@daneads.com";
+    github = "daneads";
+    githubId = 24708079;
+    name = "Dan Eads";
+  };
   danharaj = {
     email = "dan@obsidian.systems";
     github = "danharaj";
@@ -2397,6 +2431,12 @@
     githubId = 896182;
     name = "devhell";
   };
+  devins2518 = {
+    email = "drsingh2518@icloud.com";
+    github = "devins2518";
+    githubId = 17111639;
+    name = "Devin Singh";
+  };
   dezgeg = {
     email = "tuomas.tynkkynen@iki.fi";
     github = "dezgeg";
@@ -2439,6 +2479,12 @@
     githubId = 8404455;
     name = "Diego Lelis";
   };
+  diogox = {
+    name = "Diogo Xavier";
+    email = "13244408+diogox@users.noreply.github.com";
+    github = "diogox";
+    githubId = 13244408;
+  };
   dipinhora = {
     email = "dipinhora+github@gmail.com";
     github = "dipinhora";
@@ -2493,6 +2539,12 @@
     githubId = 1316469;
     name = "Naomi Morse";
   };
+  dlesl = {
+    email = "dlesl@dlesl.com";
+    github = "dlesl";
+    githubId = 28980797;
+    name = "David Leslie";
+  };
   dmalikov = {
     email = "malikov.d.y@gmail.com";
     github = "dmalikov";
@@ -2625,6 +2677,16 @@
     githubId = 10198051;
     name = "Drew Risinger";
   };
+  drupol = {
+    name = "Pol Dellaiera";
+    email = "pol.dellaiera@protonmail.com";
+    github = "drupol";
+    githubId = 252042;
+    keys = [{
+      longkeyid = "ed25519/0x0AAF2901E8040715";
+      fingerprint = "85F3 72DF 4AF3 EF13 ED34  72A3 0AAF 2901 E804 0715";
+    }];
+  };
   dschrempf = {
     name = "Dominik Schrempf";
     email = "dominik.schrempf@gmail.com";
@@ -2995,6 +3057,16 @@
     githubId = 147284;
     name = "Jason Felice";
   };
+  erdnaxe = {
+    email = "erdnaxe@crans.org";
+    github = "erdnaxe";
+    githubId = 2663216;
+    name = "Alexandre Iooss";
+    keys = [{
+      longkeyid = "rsa4096/0x6C79278F3FCDCC02";
+      fingerprint = "2D37 1AD2 7E2B BC77 97E1  B759 6C79 278F 3FCD CC02";
+    }];
+  };
   ericbmerritt = {
     email = "eric@afiniate.com";
     github = "ericbmerritt";
@@ -3029,6 +3101,12 @@
       fingerprint = "F178 B4B4 6165 6D1B 7C15  B55D 4029 3358 C7B9 326B";
     }];
   };
+  erikbackman = {
+    email = "contact@ebackman.net";
+    github = "erikbackman";
+    githubId = 46724898;
+    name = "Erik Backman";
+  };
   erikryb = {
     email = "erik.rybakken@math.ntnu.no";
     github = "erikryb";
@@ -3107,6 +3185,16 @@
     githubId = 2147649;
     name = "Euan Kemp";
   };
+  evalexpr = {
+    name = "Jonathan Wilkins";
+    email = "nixos@wilkins.tech";
+    github = "evalexpr";
+    githubId = 23485511;
+    keys = [{
+      longkeyid = "rsa4096/0x2D1D402E17763DD6";
+      fingerprint = "8129 5B85 9C5A F703 C2F4  1E29 2D1D 402E 1776 3DD6";
+    }];
+  };
   evanjs = {
     email = "evanjsx@gmail.com";
     github = "evanjs";
@@ -3317,6 +3405,12 @@
     githubId = 10799507;
     name = "Karl Fischer";
   };
+  fitzgibbon = {
+    name = "Niall FitzGibbon";
+    email = "fitzgibbon.niall@gmail.com";
+    github = "fitzgibbon";
+    githubId = 617048;
+  };
   Flakebi = {
     email = "flakebi@t-online.de";
     github = "Flakebi";
@@ -3477,6 +3571,12 @@
     githubId = 1943632;
     name = "fro_ozen";
   };
+  frogamic = {
+    email = "frogamic@protonmail.com";
+    github = "frogamic";
+    githubId = 10263813;
+    name = "Dominic Shelton";
+  };
   Frostman = {
     email = "me@slukjanov.name";
     github = "Frostman";
@@ -3551,6 +3651,12 @@
     githubId = 606000;
     name = "Gabriel Adomnicai";
   };
+  Gabriel439 = {
+    email = "Gabriel439@gmail.com";
+    github = "Gabriel439";
+    githubId = 1313787;
+    name = "Gabriel Gonzalez";
+  };
   gal_bolle = {
     email = "florent.becker@ens-lyon.org";
     github = "FlorentBecker";
@@ -3611,6 +3717,12 @@
     githubId = 10353047;
     name = "Tobias Happ";
   };
+  gfrascadorio = {
+    email = "gfrascadorio@tutanota.com";
+    github = "gfrascadorio";
+    githubId = 37602871;
+    name = "Galois";
+  };
   ggpeti = {
     email = "ggpeti@gmail.com";
     github = "ggpeti";
@@ -3675,12 +3787,6 @@
     githubId = 1447245;
     name = "Robin Gloster";
   };
-  gnidorah = {
-    email = "gnidorah@users.noreply.github.com";
-    github = "gnidorah";
-    githubId = 12064730;
-    name = "gnidorah";
-  };
   gnxlxnxx = {
     email = "gnxlxnxx@web.de";
     github = "gnxlxnxx";
@@ -3991,6 +4097,16 @@
     githubId = 19825977;
     name = "Hiren Shah";
   };
+  hiro98 = {
+    email = "hiro@protagon.space";
+    github = "vale981";
+    githubId = 4025991;
+    name = "Valentin Boettcher";
+    keys = [{
+      longkeyid = "rsa2048/0xC22D4DE4D7B32D19";
+      fingerprint = "45A9 9917 578C D629 9F5F  B5B4 C22D 4DE4 D7B3 2D19";
+    }];
+  };
   hjones2199 = {
     email = "hjones2199@gmail.com";
     github = "hjones2199";
@@ -4047,6 +4163,12 @@
     githubId = 362833;
     name = "Hongchang Wu";
   };
+  hoppla20 = {
+    email = "privat@vincentcui.de";
+    github = "hoppla20";
+    githubId = 25618740;
+    name = "Vincent Cui";
+  };
   hoverbear = {
     email = "operator+nix@hoverbear.org";
     github = "hoverbear";
@@ -4095,6 +4217,12 @@
     githubId = 12491746;
     name = "Masato Yonekawa";
   };
+  hyzual = {
+    email = "hyzual@gmail.com";
+    github = "Hyzual";
+    githubId = 2051507;
+    name = "Joris Masson";
+  };
   hzeller = {
     email = "h.zeller@acm.org";
     github = "hzeller";
@@ -4249,6 +4377,16 @@
     githubId = 54999;
     name = "Ariel Nunez";
   };
+  irenes = {
+    name = "Irene Knapp";
+    email = "ireneista@gmail.com";
+    github = "IreneKnapp";
+    githubId = 157678;
+    keys = [{
+      longkeyid = "rsa4096/0xDBF252AFFB2619FD";
+      fingerprint = "E864 BDFA AB55 36FD C905  5195 DBF2 52AF FB26 19FD";
+    }];
+  };
   ironpinguin = {
     email = "michele@catalano.de";
     github = "ironpinguin";
@@ -4313,16 +4451,6 @@
     githubId = 41924494;
     name = "Ivar";
   };
-  ivegotasthma = {
-    email = "ivegotasthma@protonmail.com";
-    github = "ivegotasthma";
-    githubId = 2437675;
-    name = "John Doe";
-    keys = [{
-      longkeyid = "rsa4096/09AC52AEA87817A4";
-      fingerprint = "4008 2A5B 56A4 79B9 83CB  95FD 09AC 52AE A878 17A4";
-    }];
-  };
   ixmatus = {
     email = "parnell@digitalmentat.com";
     github = "ixmatus";
@@ -4697,6 +4825,12 @@
     githubId = 587870;
     name = "Jonathan Mettes";
   };
+  jo1gi = {
+    email = "joakimholm@protonmail.com";
+    github = "jo1gi";
+    githubId = 26695750;
+    name = "Joakim Holm";
+  };
   joachifm = {
     email = "joachifm@fastmail.fm";
     github = "joachifm";
@@ -4955,7 +5089,7 @@
     name = "Julien Dehos";
   };
   julm = {
-    email = "julm+nix@sourcephile.fr";
+    email = "julm+nixpkgs@sourcephile.fr";
     github = "ju1m";
     githubId = 21160136;
     name = "Julien Moutinho";
@@ -5108,6 +5242,16 @@
     githubId = 37185887;
     name = "Calvin Kim";
   };
+  kennyballou = {
+    email = "kb@devnulllabs.io";
+    github = "kennyballou";
+    githubId = 2186188;
+    name = "Kenny Ballou";
+    keys = [{
+      longkeyid = "rsa4096/0xB0CAA28A02958308";
+      fingerprint = "932F 3E8E 1C0F 4A98 95D7  B8B8 B0CA A28A 0295 8308";
+    }];
+  };
   kentjames = {
     email = "jameschristopherkent@gmail.com";
     github = "kentjames";
@@ -5138,6 +5282,12 @@
     githubId = 546087;
     name = "Kristoffer K. Føllesdal";
   };
+  kho-dialga = {
+    email = "ivandashenyou@gmail.com";
+    github = "kho-dialga";
+    githubId = 55767703;
+    name = "Iván Brito";
+    };
   khumba = {
     email = "bog@khumba.net";
     github = "khumba";
@@ -5453,6 +5603,12 @@
     }];
     name = "Las Safin";
   };
+  l3af = {
+    email = "L3afMeAlon3@gmail.com";
+    github = "L3afMe";
+    githubId = 72546287;
+    name = "L3af";
+  };
   laikq = {
     email = "gwen@quasebarth.de";
     github = "laikq";
@@ -5644,6 +5800,12 @@
     githubId = 6652840;
     name = "Jade";
   };
+  lgcl = {
+    email = "dev@lgcl.de";
+    name = "Leon Vack";
+    github = "LogicalOverflow";
+    githubId = 5919957;
+  };
   lheckemann = {
     email = "git@sphalerite.org";
     github = "lheckemann";
@@ -5830,6 +5992,12 @@
     githubId = 10626;
     name = "Andreas Wagner";
   };
+  lromor = {
+    email = "leonardo.romor@gmail.com";
+    github = "lromor";
+    githubId = 1597330;
+    name = "Leonardo Romor";
+  };
   lrworth = {
     email = "luke@worth.id.au";
     name = "Luke Worth";
@@ -6036,6 +6204,12 @@
     githubId = 2914269;
     name = "Malo Bourgon";
   };
+  malvo = {
+    email = "malte@malvo.org";
+    github = "malte-v";
+    githubId = 34393802;
+    name = "Malte Voos";
+  };
   malyn = {
     email = "malyn@strangeGizmo.com";
     github = "malyn";
@@ -6134,11 +6308,11 @@
       fingerprint = "B573 5118 0375 A872 FBBF  7770 B629 036B E399 EEE9";
     }];
   };
-  mausch = {
-    email = "mauricioscheffer@gmail.com";
-    github = "mausch";
-    githubId = 95194;
-    name = "Mauricio Scheffer";
+  masipcat = {
+    email = "jordi@masip.cat";
+    github = "masipcat";
+    githubId = 775189;
+    name = "Jordi Masip";
   };
   matejc = {
     email = "cotman.matej@gmail.com";
@@ -6164,6 +6338,12 @@
     githubId = 11810057;
     name = "Matt Snider";
   };
+  mattchrist = {
+    email = "nixpkgs-matt@christ.systems";
+    github = "mattchrist";
+    githubId = 952712;
+    name = "Matt Christ";
+  };
   matthewbauer = {
     email = "mjbauer95@gmail.com";
     github = "matthewbauer";
@@ -6194,6 +6374,12 @@
     githubId = 136037;
     name = "Matthew Maurer";
   };
+  mausch = {
+    email = "mauricioscheffer@gmail.com";
+    github = "mausch";
+    githubId = 95194;
+    name = "Mauricio Scheffer";
+  };
   maxdamantus = {
     email = "maxdamantus@gmail.com";
     github = "Maxdamantus";
@@ -6324,6 +6510,16 @@
       fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94";
     }];
   };
+  mdsp = {
+    github = "Mdsp9070";
+    githubId = 44469426;
+    name = "Matheus de Souza Pessanha";
+    email = "matheus_pessanha2001@outlook.com";
+    keys = [{
+      longkeyid = "rsa4096/6DFD656220A3B849";
+      fingerprint = "2D4D 488F 17FB FF75 664E  C016 6DFD 6562 20A3 B849";
+    }];
+  };
   meatcar = {
     email = "nixpkgs@denys.me";
     github = "meatcar";
@@ -6376,10 +6572,10 @@
     email = "softs@metabarcoding.org";
     name = "Celine Mercier";
   };
-  metadark = {
+  kira-bruneau = {
     email = "kira.bruneau@pm.me";
     name = "Kira Bruneau";
-    github = "metadark";
+    github = "kira-bruneau";
     githubId = 382041;
   };
   meutraa = {
@@ -6505,6 +6701,16 @@
     githubId = 1387206;
     name = "Mike Sperber";
   };
+  mikroskeem = {
+    email = "mikroskeem@mikroskeem.eu";
+    github = "mikroskeem";
+    githubId = 3490861;
+    name = "Mark Vainomaa";
+    keys = [{
+      longkeyid = "rsa4096/0xDA015B05B5A11B22";
+      fingerprint = "DB43 2895 CF68 F0CE D4B7  EF60 DA01 5B05 B5A1 1B22";
+    }];
+  };
   milesbreslin = {
     email = "milesbreslin@gmail.com";
     github = "milesbreslin";
@@ -6921,6 +7127,12 @@
     githubId = 5047140;
     name = "Victor Collod";
   };
+  musfay = {
+    email = "musfay@protonmail.com";
+    github = "musfay";
+    githubId = 33374965;
+    name = "Mustafa Çalışkan";
+  };
   mupdt = {
     email = "nix@pdtpartners.com";
     github = "mupdt";
@@ -6963,12 +7175,6 @@
     githubId = 1222539;
     name = "Roman Naumann";
   };
-  nand0p = {
-    email = "nando@hex7.com";
-    github = "nand0p";
-    githubId = 1916245;
-    name = "Fernando Jose Pando";
-  };
   nasirhm = {
     email = "nasirhussainm14@gmail.com";
     github = "nasirhm";
@@ -7031,6 +7237,12 @@
     githubId = 628342;
     name = "Tim Steinbach";
   };
+  netcrns = {
+    email = "jason.wing@gmx.de";
+    github = "netcrns";
+    githubId = 34162313;
+    name = "Jason Wing";
+  };
   netixx = {
     email = "dev.espinetfrancois@gmail.com";
     github = "netixx";
@@ -7065,6 +7277,22 @@
     githubId = 10180857;
     name = "Anmol Sethi";
   };
+  nicbk = {
+    email = "nicolas@nicbk.com";
+    github = "nicbk";
+    githubId = 77309427;
+    name = "Nicolás Kennedy";
+    keys = [{
+      longkeyid = "rsa4096/0xC061089EFEBF7A35";
+      fingerprint = "7BC1 77D9 C222 B1DC FB2F  0484 C061 089E FEBF 7A35";
+    }];
+  };
+  nichtsfrei = {
+    email = "philipp.eder@posteo.net";
+    github = "nichtsfrei";
+    githubId = 1665818;
+    name = "Philipp Eder";
+  };
   nickhu = {
     email = "me@nickhu.co.uk";
     github = "nickhu";
@@ -7133,12 +7361,22 @@
     githubId = 3159451;
     name = "Nicolas Schneider";
   };
-  nipav = {
+  nkpvk = {
     email = "niko.pavlinek@gmail.com";
-    github = "nipav";
+    github = "nkpvk";
     githubId = 16385648;
     name = "Niko Pavlinek";
   };
+  nixbitcoin = {
+    email = "nixbitcoin@i2pmail.org";
+    github = "nixbitcoin";
+    githubId = 45737139;
+    name = "nixbitcoindev";
+    keys = [{
+      longkeyid = "rsa4096/0xDD11F9AD5308B3BA";
+      fingerprint = "577A 3452 7F3E 2A85 E80F  E164 DD11 F9AD 5308 B3BA";
+    }];
+  };
   nixinator = {
     email = "33lockdown33@protonmail.com";
     github = "nixinator";
@@ -7193,6 +7431,12 @@
     githubId = 40049608;
     name = "Andy Chun";
   };
+  noreferences = {
+    email = "norkus@norkus.net";
+    github = "noreferences";
+    githubId = 13085275;
+    name = "Juozas Norkus";
+  };
   norfair = {
     email = "syd@cs-syd.eu";
     github = "NorfairKing";
@@ -7245,6 +7489,12 @@
     githubId = 1839979;
     name = "Niklas Thörne";
   };
+  nullx76 = {
+    email = "nix@xirion.net";
+    github = "NULLx76";
+    githubId = 1809198;
+    name = "Victor Roest";
+  };
   numinit = {
     email = "me@numin.it";
     github = "numinit";
@@ -7331,6 +7581,12 @@
     githubId = 20923;
     name = "Erik Timan";
   };
+  olebedev = {
+    email = "ole6edev@gmail.com";
+    github = "olebedev";
+    githubId = 848535;
+    name = "Oleg Lebedev";
+  };
   olejorgenb = {
     email = "olejorgenb@yahoo.no";
     github = "olejorgenb";
@@ -7361,6 +7617,18 @@
     githubId = 1538622;
     name = "Michael Reilly";
   };
+  onixie = {
+    email = "onixie@gmail.com";
+    github = "onixie";
+    githubId = 817073;
+    name = "Yc. Shen";
+  };
+  onsails = {
+    email = "andrey@onsails.com";
+    github = "onsails";
+    githubId = 107261;
+    name = "Andrey Kuznetsov";
+  };
   onny = {
     email = "onny@project-insanity.org";
     github = "onny";
@@ -7623,12 +7891,6 @@
     githubId = 152312;
     name = "Periklis Tsirakidis";
   };
-  pesterhazy = {
-    email = "pesterhazy@gmail.com";
-    github = "pesterhazy";
-    githubId = 106328;
-    name = "Paulus Esterhazy";
-  };
   petabyteboy = {
     email = "milan@petabyte.dev";
     github = "petabyteboy";
@@ -7985,6 +8247,12 @@
     githubId = 406946;
     name = "Valentin Lorentz";
   };
+  proofofkeags = {
+    email = "keagan.mcclelland@gmail.com";
+    github = "ProofOfKeags";
+    githubId = 4033651;
+    name = "Keagan McClelland";
+  };
   protoben = {
     email = "protob3n@gmail.com";
     github = "protoben";
@@ -8189,6 +8457,12 @@
     githubId = 1891350;
     name = "Michael Raskin";
   };
+  ratsclub = {
+    email = "victor@freire.dev.br";
+    github = "ratsclub";
+    githubId = 25647735;
+    name = "Victor Freire";
+  };
   ravloony = {
     email = "ravloony@gmail.com";
     name = "Tom Macdonald";
@@ -8331,6 +8605,12 @@
     githubId = 6047658;
     name = "Ryan Horiguchi";
   };
+  ribose-jeffreylau = {
+    name = "Jeffrey Lau";
+    email = "jeffrey.lau@ribose.com";
+    github = "ribose-jeffreylau";
+    githubId = 2649467;
+  };
   richardipsum = {
     email = "richardipsum@fastmail.co.uk";
     github = "richardipsum";
@@ -8401,6 +8681,12 @@
     githubId = 449990;
     name = "Cedric Cellier";
   };
+  rkitover = {
+    email = "rkitover@gmail.com";
+    github = "rkitover";
+    githubId = 77611;
+    name = "Rafael Kitover";
+  };
   rkoe = {
     email = "rk@simple-is-better.org";
     github = "rkoe";
@@ -8542,10 +8828,14 @@
     }];
   };
   roosemberth = {
-    email = "roosembert.palacios+nixpkgs@gmail.com";
+    email = "roosembert.palacios+nixpkgs@posteo.ch";
     github = "roosemberth";
     githubId = 3621083;
     name = "Roosembert (Roosemberth) Palacios";
+    keys = [{
+      longkeyid = "rsa2048/0xCAAAECE5C2242BB7";
+      fingerprint = "78D9 1871 D059 663B 6117  7532 CAAA ECE5 C224 2BB7";
+    }];
   };
   rople380 = {
     name = "rople380";
@@ -8587,6 +8877,12 @@
     githubId = 221121;
     name = "Robert P. Seaton";
   };
+  rraval = {
+    email = "ronuk.raval@gmail.com";
+    github = "rraval";
+    githubId = 373566;
+    name = "Ronuk Raval";
+  };
   rszibele = {
     email = "richard@szibele.com";
     github = "rszibele";
@@ -8623,6 +8919,12 @@
     githubId = 506953;
     name = "Ruud van Asseldonk";
   };
+  rvarago = {
+    email = "rafael.varago@gmail.com";
+    github = "rvarago";
+    githubId = 7365864;
+    name = "Rafael Varago";
+  };
   rvl = {
     email = "dev+nix@rodney.id.au";
     github = "rvl";
@@ -9027,6 +9329,12 @@
     githubId = 1443459;
     name = "Sheena Artrip";
   };
+  sheepforce = {
+    email = "phillip.seeber@googlemail.com";
+    github = "sheepforce";
+    githubId = 16844216;
+    name = "Phillip Seeber";
+  };
   sheganinans = {
     email = "sheganinans@gmail.com";
     github = "sheganinans";
@@ -9385,6 +9693,12 @@
     githubId = 1699155;
     name = "Steve Elliott";
   };
+  stelcodes = {
+    email = "stel@stel.codes";
+    github = "stelcodes";
+    githubId = 22163194;
+    name = "Stel Abrego";
+  };
   stephank = {
     email = "nix@stephank.nl";
     github = "stephank";
@@ -9807,6 +10121,12 @@
     githubId = 27386;
     name = "Milan Svoboda";
   };
+  tfc = {
+    email = "jacek@galowicz.de";
+    github = "tfc";
+    githubId = 29044;
+    name = "Jacek Galowicz";
+  };
   tg-x = {
     email = "*@tg-x.net";
     github = "tg-x";
@@ -10305,6 +10625,12 @@
     githubId = 2212422;
     name = "uwap";
   };
+  V = {
+    name = "V";
+    email = "v@anomalous.eu";
+    github = "deviant";
+    githubId = 68829907;
+  };
   va1entin = {
     email = "github@valentinsblog.com";
     github = "va1entin";
@@ -10515,7 +10841,12 @@
     githubId = 45292658;
     name = "Julius Schmitt";
   };
-
+  vojta001 = {
+    email = "vojtech.kane@gmail.com";
+    github = "vojta001";
+    githubId = 7038383;
+    name = "Vojta Káně";
+  };
   volhovm = {
     email = "volhovm.cs@gmail.com";
     github = "volhovm";
@@ -11358,6 +11689,16 @@
     github = "pulsation";
     githubId = 1838397;
   };
+  ydlr = {
+    name = "ydlr";
+    email = "ydlr@ydlr.io";
+    github = "ydlr";
+    githubId = 58453832;
+    keys = [{
+      longkeyid = "rsa4096/0x43AB44130A29AD9D";
+      fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4";
+    }];
+  };
   zane = {
     name = "Zane van Iperen";
     email = "zane@zanevaniperen.com";
@@ -11368,6 +11709,12 @@
       fingerprint = "61AE D40F 368B 6F26 9DAE  3892 6861 6B2D 8AC4 DCC5";
     }];
   };
+  zeri = {
+    name = "zeri";
+    email = "68825133+zeri42@users.noreply.github.com";
+    github = "zeri42";
+    githubId = 68825133;
+  };
   zseri = {
     name = "zseri";
     email = "zseri.devel@ytrizja.de";
diff --git a/nixpkgs/maintainers/scripts/build.nix b/nixpkgs/maintainers/scripts/build.nix
index bc4355d0aa8e..ca401700b4a6 100644
--- a/nixpkgs/maintainers/scripts/build.nix
+++ b/nixpkgs/maintainers/scripts/build.nix
@@ -1,10 +1,18 @@
-{ maintainer }:
+{ maintainer
+, localSystem ? { system = args.system or builtins.currentSystem; }
+, system ? localSystem.system
+, crossSystem ? localSystem
+, ...
+}@args:
 
 # based on update.nix
 # nix-build build.nix --argstr maintainer <yourname>
 
+# to build for aarch64-linux using boot.binfmt.emulatedSystems:
+# nix-build build.nix --argstr maintainer <yourname> --argstr system aarch64-linux
+
 let
-  pkgs = import ./../../default.nix {};
+  pkgs = import ./../../default.nix (removeAttrs args [ "maintainer" ]);
   maintainer_ = pkgs.lib.maintainers.${maintainer};
   packagesWith = cond: return: set:
     (pkgs.lib.flatten
diff --git a/nixpkgs/maintainers/scripts/check-hydra-by-maintainer.nix b/nixpkgs/maintainers/scripts/check-hydra-by-maintainer.nix
index cecf65ec66dc..326aae47f8c5 100644
--- a/nixpkgs/maintainers/scripts/check-hydra-by-maintainer.nix
+++ b/nixpkgs/maintainers/scripts/check-hydra-by-maintainer.nix
@@ -48,6 +48,7 @@ let
 in
 pkgs.stdenv.mkDerivation {
   name = "nixpkgs-update-script";
+  buildInputs = [ pkgs.hydra-check ];
   buildCommand = ''
     echo ""
     echo "----------------------------------------------------------------"
diff --git a/nixpkgs/maintainers/scripts/haskell/hydra-report.hs b/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
new file mode 100755
index 000000000000..fd6430d43c9a
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
@@ -0,0 +1,408 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -p "haskellPackages.ghcWithPackages (p: [p.aeson p.req])"
+#! nix-shell -p hydra-unstable
+#! nix-shell -i runhaskell
+
+{-
+
+The purpose of this script is
+
+1) download the state of the nixpkgs/haskell-updates job from hydra (with get-report)
+2) print a summary of the state suitable for pasting into a github comment (with ping-maintainers)
+3) print a list of broken packages suitable for pasting into configuration-hackage2nix.yaml
+
+Because step 1) is quite expensive and takes roughly ~5 minutes the result is cached in a json file in XDG_CACHE.
+
+-}
+{-# LANGUAGE BlockArguments #-}
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE MultiWayIf #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TupleSections #-}
+{-# OPTIONS_GHC -Wall #-}
+
+import Control.Monad (forM_, (<=<))
+import Control.Monad.Trans (MonadIO (liftIO))
+import Data.Aeson (
+   FromJSON,
+   ToJSON,
+   decodeFileStrict',
+   eitherDecodeStrict',
+   encodeFile,
+ )
+import Data.Foldable (Foldable (toList), foldl')
+import Data.List.NonEmpty (NonEmpty, nonEmpty)
+import qualified Data.List.NonEmpty as NonEmpty
+import Data.Map.Strict (Map)
+import qualified Data.Map.Strict as Map
+import Data.Maybe (fromMaybe, mapMaybe)
+import Data.Monoid (Sum (Sum, getSum))
+import Data.Sequence (Seq)
+import qualified Data.Sequence as Seq
+import Data.Set (Set)
+import qualified Data.Set as Set
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Data.Text.Encoding (encodeUtf8)
+import Data.Time (defaultTimeLocale, formatTime, getCurrentTime)
+import Data.Time.Clock (UTCTime)
+import GHC.Generics (Generic)
+import Network.HTTP.Req (
+   GET (GET),
+   NoReqBody (NoReqBody),
+   defaultHttpConfig,
+   header,
+   https,
+   jsonResponse,
+   req,
+   responseBody,
+   responseTimeout,
+   runReq,
+   (/:),
+ )
+import System.Directory (XdgDirectory (XdgCache), getXdgDirectory)
+import System.Environment (getArgs)
+import System.Process (readProcess)
+import Prelude hiding (id)
+
+newtype JobsetEvals = JobsetEvals
+   { evals :: Seq Eval
+   }
+   deriving (Generic, ToJSON, FromJSON, Show)
+
+newtype Nixpkgs = Nixpkgs {revision :: Text}
+   deriving (Generic, ToJSON, FromJSON, Show)
+
+newtype JobsetEvalInputs = JobsetEvalInputs {nixpkgs :: Nixpkgs}
+   deriving (Generic, ToJSON, FromJSON, Show)
+
+data Eval = Eval
+   { id :: Int
+   , jobsetevalinputs :: JobsetEvalInputs
+   }
+   deriving (Generic, ToJSON, FromJSON, Show)
+
+data Build = Build
+   { job :: Text
+   , buildstatus :: Maybe Int
+   , finished :: Int
+   , id :: Int
+   , nixname :: Text
+   , system :: Text
+   , jobsetevals :: Seq Int
+   }
+   deriving (Generic, ToJSON, FromJSON, Show)
+
+main :: IO ()
+main = do
+   args <- getArgs
+   case args of
+      ["get-report"] -> getBuildReports
+      ["ping-maintainers"] -> printMaintainerPing
+      ["mark-broken-list"] -> printMarkBrokenList
+      _ -> putStrLn "Usage: get-report | ping-maintainers | mark-broken-list"
+
+reportFileName :: IO FilePath
+reportFileName = getXdgDirectory XdgCache "haskell-updates-build-report.json"
+
+showT :: Show a => a -> Text
+showT = Text.pack . show
+
+getBuildReports :: IO ()
+getBuildReports = runReq defaultHttpConfig do
+   evalMay <- Seq.lookup 0 . evals <$> myReq (https "hydra.nixos.org" /: "jobset" /: "nixpkgs" /: "haskell-updates" /: "evals") mempty
+   eval@Eval{id} <- maybe (liftIO $ fail "No Evalution found") pure evalMay
+   liftIO . putStrLn $ "Fetching evaluation " <> show id <> " from Hydra. This might take a few minutes..."
+   buildReports :: Seq Build <- myReq (https "hydra.nixos.org" /: "eval" /: showT id /: "builds") (responseTimeout 600000000)
+   liftIO do
+      fileName <- reportFileName
+      putStrLn $ "Finished fetching all builds from Hydra, saving report as " <> fileName
+      now <- getCurrentTime
+      encodeFile fileName (eval, now, buildReports)
+  where
+   myReq query option = responseBody <$> req GET query NoReqBody jsonResponse (header "User-Agent" "hydra-report.hs/v1 (nixpkgs;maintainers/scripts/haskell)" <> option)
+
+hydraEvalCommand :: FilePath
+hydraEvalCommand = "hydra-eval-jobs"
+
+hydraEvalParams :: [String]
+hydraEvalParams = ["-I", ".", "pkgs/top-level/release-haskell.nix"]
+
+handlesCommand :: FilePath
+handlesCommand = "nix-instantiate"
+
+handlesParams :: [String]
+handlesParams = ["--eval", "--strict", "--json", "-"]
+
+handlesExpression :: String
+handlesExpression = "with import ./. {}; with lib; zipAttrsWith (_: builtins.head) (mapAttrsToList (_: v: if v ? github then { \"${v.email}\" = v.github; } else {}) (import maintainers/maintainer-list.nix))"
+
+-- | This newtype is used to parse a Hydra job output from @hydra-eval-jobs@.
+-- The only field we are interested in is @maintainers@, which is why this
+-- is just a newtype.
+--
+-- Note that there are occassionally jobs that don't have a maintainers
+-- field, which is why this has to be @Maybe Text@.
+newtype Maintainers = Maintainers { maintainers :: Maybe Text }
+  deriving stock (Generic, Show)
+  deriving anyclass (FromJSON, ToJSON)
+
+-- | This is a 'Map' from Hydra job name to maintainer email addresses.
+--
+-- It has values similar to the following:
+--
+-- @@
+--  fromList
+--    [ ("arion.aarch64-linux", Maintainers (Just "robert@example.com"))
+--    , ("bench.x86_64-linux", Maintainers (Just ""))
+--    , ("conduit.x86_64-linux", Maintainers (Just "snoy@man.com, web@ber.com"))
+--    , ("lens.x86_64-darwin", Maintainers (Just "ek@category.com"))
+--    ]
+-- @@
+--
+-- Note that Hydra jobs without maintainers will have an empty string for the
+-- maintainer list.
+type HydraJobs = Map Text Maintainers
+
+-- | Map of email addresses to GitHub handles.
+-- This is built from the file @../../maintainer-list.nix@.
+--
+-- It has values similar to the following:
+--
+-- @@
+--  fromList
+--    [ ("robert@example.com", "rob22")
+--    , ("ek@category.com", "edkm")
+--    ]
+-- @@
+type EmailToGitHubHandles = Map Text Text
+
+-- | Map of Hydra jobs to maintainer GitHub handles.
+--
+-- It has values similar to the following:
+--
+-- @@
+--  fromList
+--    [ ("arion.aarch64-linux", ["rob22"])
+--    , ("conduit.x86_64-darwin", ["snoyb", "webber"])
+--    ]
+-- @@
+type MaintainerMap = Map Text (NonEmpty Text)
+
+-- | Generate a mapping of Hydra job names to maintainer GitHub handles.
+getMaintainerMap :: IO MaintainerMap
+getMaintainerMap = do
+   hydraJobs :: HydraJobs <-
+      readJSONProcess hydraEvalCommand hydraEvalParams "" "Failed to decode hydra-eval-jobs output: "
+   handlesMap :: EmailToGitHubHandles <-
+      readJSONProcess handlesCommand handlesParams handlesExpression "Failed to decode nix output for lookup of github handles: "
+   pure $ Map.mapMaybe (splitMaintainersToGitHubHandles handlesMap) hydraJobs
+   where
+   -- Split a comma-spearated string of Maintainers into a NonEmpty list of
+   -- GitHub handles.
+   splitMaintainersToGitHubHandles
+      :: EmailToGitHubHandles -> Maintainers -> Maybe (NonEmpty Text)
+   splitMaintainersToGitHubHandles handlesMap (Maintainers maint) =
+      nonEmpty .  mapMaybe (`Map.lookup` handlesMap) .  Text.splitOn ", " $ fromMaybe "" maint
+
+-- | Run a process that produces JSON on stdout and and decode the JSON to a
+-- data type.
+--
+-- If the JSON-decoding fails, throw the JSON-decoding error.
+readJSONProcess
+   :: FromJSON a
+   => FilePath -- ^ Filename of executable.
+   -> [String] -- ^ Arguments
+   -> String -- ^ stdin to pass to the process
+   -> String -- ^ String to prefix to JSON-decode error.
+   -> IO a
+readJSONProcess exe args input err = do
+   output <- readProcess exe args input
+   let eitherDecodedOutput = eitherDecodeStrict' . encodeUtf8 . Text.pack $ output
+   case eitherDecodedOutput of
+     Left decodeErr -> error $ err <> decodeErr <> "\nRaw: '" <> take 1000 output <> "'"
+     Right decodedOutput -> pure decodedOutput
+
+-- BuildStates are sorted by subjective importance/concerningness
+data BuildState
+  = Failed
+  | DependencyFailed
+  | OutputLimitExceeded
+  | Unknown (Maybe Int)
+  | TimedOut
+  | Canceled
+  | HydraFailure
+  | Unfinished
+  | Success
+  deriving stock (Show, Eq, Ord)
+
+icon :: BuildState -> Text
+icon = \case
+   Failed -> ":x:"
+   DependencyFailed -> ":heavy_exclamation_mark:"
+   OutputLimitExceeded -> ":warning:"
+   Unknown x -> "unknown code " <> showT x
+   TimedOut -> ":hourglass::no_entry_sign:"
+   Canceled -> ":no_entry_sign:"
+   Unfinished -> ":hourglass_flowing_sand:"
+   HydraFailure -> ":construction:"
+   Success -> ":heavy_check_mark:"
+
+platformIcon :: Platform -> Text
+platformIcon (Platform x) = case x of
+   "x86_64-linux" -> ":penguin:"
+   "aarch64-linux" -> ":iphone:"
+   "x86_64-darwin" -> ":apple:"
+   _ -> x
+
+data BuildResult = BuildResult {state :: BuildState, id :: Int} deriving (Show, Eq, Ord)
+newtype Platform = Platform {platform :: Text} deriving (Show, Eq, Ord)
+newtype Table row col a = Table (Map (row, col) a)
+type StatusSummary = Map Text (Table Text Platform BuildResult, Set Text)
+
+instance (Ord row, Ord col, Semigroup a) => Semigroup (Table row col a) where
+   Table l <> Table r = Table (Map.unionWith (<>) l r)
+instance (Ord row, Ord col, Semigroup a) => Monoid (Table row col a) where
+   mempty = Table Map.empty
+instance Functor (Table row col) where
+   fmap f (Table a) = Table (fmap f a)
+instance Foldable (Table row col) where
+   foldMap f (Table a) = foldMap f a
+
+buildSummary :: MaintainerMap -> Seq Build -> StatusSummary
+buildSummary maintainerMap = foldl (Map.unionWith unionSummary) Map.empty . fmap toSummary
+  where
+   unionSummary (Table l, l') (Table r, r') = (Table $ Map.union l r, l' <> r')
+   toSummary Build{finished, buildstatus, job, id, system} = Map.singleton name (Table (Map.singleton (set, Platform system) (BuildResult state id)), maintainers)
+     where
+      state :: BuildState
+      state = case (finished, buildstatus) of
+         (0, _) -> Unfinished
+         (_, Just 0) -> Success
+         (_, Just 1) -> Failed
+         (_, Just 2) -> DependencyFailed
+         (_, Just 3) -> HydraFailure
+         (_, Just 4) -> Canceled
+         (_, Just 7) -> TimedOut
+         (_, Just 11) -> OutputLimitExceeded
+         (_, i) -> Unknown i
+      packageName = fromMaybe job (Text.stripSuffix ("." <> system) job)
+      splitted = nonEmpty $ Text.splitOn "." packageName
+      name = maybe packageName NonEmpty.last splitted
+      set = maybe "" (Text.intercalate "." . NonEmpty.init) splitted
+      maintainers = maybe mempty (Set.fromList . toList) (Map.lookup job maintainerMap)
+
+readBuildReports :: IO (Eval, UTCTime, Seq Build)
+readBuildReports = do
+   file <- reportFileName
+   fromMaybe (error $ "Could not decode " <> file) <$> decodeFileStrict' file
+
+sep :: Text
+sep = " | "
+joinTable :: [Text] -> Text
+joinTable t = sep <> Text.intercalate sep t <> sep
+
+type NumSummary = Table Platform BuildState Int
+
+printTable :: (Ord rows, Ord cols) => Text -> (rows -> Text) -> (cols -> Text) -> (entries -> Text) -> Table rows cols entries -> [Text]
+printTable name showR showC showE (Table mapping) = joinTable <$> (name : map showC cols) : replicate (length cols + sepsInName + 1) "---" : map printRow rows
+  where
+   sepsInName = Text.count "|" name
+   printRow row = showR row : map (\col -> maybe "" showE (Map.lookup (row, col) mapping)) cols
+   rows = toList $ Set.fromList (fst <$> Map.keys mapping)
+   cols = toList $ Set.fromList (snd <$> Map.keys mapping)
+
+printJob :: Int -> Text -> (Table Text Platform BuildResult, Text) -> [Text]
+printJob evalId name (Table mapping, maintainers) =
+   if length sets <= 1
+      then map printSingleRow sets
+      else ["- [ ] " <> makeJobSearchLink "" name <> " " <> maintainers] <> map printRow sets
+  where
+   printRow set = "  - " <> printState set <> " " <> makeJobSearchLink set (if Text.null set then "toplevel" else set)
+   printSingleRow set = "- [ ] " <> printState set <> " " <> makeJobSearchLink set (makePkgName set) <> " " <> maintainers
+   makePkgName set = (if Text.null set then "" else set <> ".") <> name
+   printState set = Text.intercalate " " $ map (\pf -> maybe "" (label pf) $ Map.lookup (set, pf) mapping) platforms
+   makeJobSearchLink set linkLabel= makeSearchLink evalId linkLabel (makePkgName set)
+   sets = toList $ Set.fromList (fst <$> Map.keys mapping)
+   platforms = toList $ Set.fromList (snd <$> Map.keys mapping)
+   label pf (BuildResult s i) = "[[" <> platformIcon pf <> icon s <> "]](https://hydra.nixos.org/build/" <> showT i <> ")"
+
+makeSearchLink :: Int -> Text -> Text -> Text
+makeSearchLink evalId linkLabel query = "[" <> linkLabel <> "](" <> "https://hydra.nixos.org/eval/" <> showT evalId <> "?filter=" <> query <> ")"
+
+statusToNumSummary :: StatusSummary -> NumSummary
+statusToNumSummary = fmap getSum . foldMap (fmap Sum . jobTotals)
+
+jobTotals :: (Table Text Platform BuildResult, a) -> Table Platform BuildState Int
+jobTotals (Table mapping, _) = getSum <$> Table (Map.foldMapWithKey (\(_, platform) (BuildResult buildstate _) -> Map.singleton (platform, buildstate) (Sum 1)) mapping)
+
+details :: Text -> [Text] -> [Text]
+details summary content = ["<details><summary>" <> summary <> " </summary>", ""] <> content <> ["</details>", ""]
+
+printBuildSummary :: Eval -> UTCTime -> StatusSummary -> Text
+printBuildSummary
+   Eval{id, jobsetevalinputs = JobsetEvalInputs{nixpkgs = Nixpkgs{revision}}}
+   fetchTime
+   summary =
+      Text.unlines $
+         headline <> totals
+            <> optionalList "#### Maintained packages with build failure" (maintainedList fails)
+            <> optionalList "#### Maintained packages with failed dependency" (maintainedList failedDeps)
+            <> optionalList "#### Maintained packages with unknown error" (maintainedList unknownErr)
+            <> optionalHideableList "#### Unmaintained packages with build failure" (unmaintainedList fails)
+            <> optionalHideableList "#### Unmaintained packages with failed dependency" (unmaintainedList failedDeps)
+            <> optionalHideableList "#### Unmaintained packages with unknown error" (unmaintainedList unknownErr)
+            <> footer
+     where
+      footer = ["*Report generated with [maintainers/scripts/haskell/hydra-report.hs](https://github.com/NixOS/nixpkgs/blob/haskell-updates/maintainers/scripts/haskell/hydra-report.sh)*"]
+      totals =
+         [ "#### Build summary"
+         , ""
+         ]
+            <> printTable "Platform" (\x -> makeSearchLink id (platform x <> " " <> platformIcon x) ("." <> platform x)) (\x -> showT x <> " " <> icon x) showT (statusToNumSummary summary)
+      headline =
+         [ "### [haskell-updates build report from hydra](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates)"
+         , "*evaluation ["
+            <> showT id
+            <> "](https://hydra.nixos.org/eval/"
+            <> showT id
+            <> ") of nixpkgs commit ["
+            <> Text.take 7 revision
+            <> "](https://github.com/NixOS/nixpkgs/commits/"
+            <> revision
+            <> ") as of "
+            <> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime)
+            <> "*"
+         ]
+      jobsByState predicate = Map.filter (predicate . foldl' min Success . fmap state . fst) summary
+      fails = jobsByState (== Failed)
+      failedDeps = jobsByState (== DependencyFailed)
+      unknownErr = jobsByState (\x -> x > DependencyFailed && x < TimedOut)
+      withMaintainer = Map.mapMaybe (\(x, m) -> (x,) <$> nonEmpty (Set.toList m))
+      withoutMaintainer = Map.mapMaybe (\(x, m) -> if Set.null m then Just x else Nothing)
+      optionalList heading list = if null list then mempty else [heading] <> list
+      optionalHideableList heading list = if null list then mempty else [heading] <> details (showT (length list) <> " job(s)") list
+      maintainedList = showMaintainedBuild <=< Map.toList . withMaintainer
+      unmaintainedList = showBuild <=< Map.toList . withoutMaintainer
+      showBuild (name, table) = printJob id name (table, "")
+      showMaintainedBuild (name, (table, maintainers)) = printJob id name (table, Text.intercalate " " (fmap ("@" <>) (toList maintainers)))
+
+printMaintainerPing :: IO ()
+printMaintainerPing = do
+   maintainerMap <- getMaintainerMap
+   (eval, fetchTime, buildReport) <- readBuildReports
+   putStrLn (Text.unpack (printBuildSummary eval fetchTime (buildSummary maintainerMap buildReport)))
+
+printMarkBrokenList :: IO ()
+printMarkBrokenList = do
+   (_, _, buildReport) <- readBuildReports
+   forM_ buildReport \Build{buildstatus, job} ->
+      case (buildstatus, Text.splitOn "." job) of
+         (Just 1, ["haskellPackages", name, "x86_64-linux"]) -> putStrLn $ "  - " <> Text.unpack name
+         _ -> pure ()
diff --git a/nixpkgs/maintainers/scripts/haskell/mark-broken.sh b/nixpkgs/maintainers/scripts/haskell/mark-broken.sh
new file mode 100755
index 000000000000..ddf2b1243b1b
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/mark-broken.sh
@@ -0,0 +1,45 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils git -I nixpkgs=.
+
+# This script uses the data pulled with
+# maintainers/scripts/haskell/hydra-report.hs get-report to produce a list of
+# failing builds that get written to the hackage2nix config. Then
+# hackage-packages.nix gets regenerated and transitive-broken packages get
+# marked as dont-distribute in the config as well.
+# This should disable builds for most failing jobs in the haskell-updates jobset.
+
+set -euo pipefail
+
+broken_config="pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml"
+
+tmpfile=$(mktemp)
+trap "rm ${tmpfile}" 0
+
+echo "Remember that you need to manually run 'maintainers/scripts/haskell/hydra-report.hs get-report' sometime before running this script."
+echo "Generating a list of broken builds and displaying for manual confirmation ..."
+maintainers/scripts/haskell/hydra-report.hs mark-broken-list | sort -i > $tmpfile
+
+$EDITOR $tmpfile
+
+tail -n +3 "$broken_config" >> "$tmpfile"
+
+cat > "$broken_config" << EOF
+broken-packages:
+  # These packages don't compile.
+EOF
+
+sort -iu "$tmpfile" >> "$broken_config"
+maintainers/scripts/haskell/regenerate-hackage-packages.sh
+maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
+maintainers/scripts/haskell/regenerate-hackage-packages.sh
+
+if [[ "${1:-}" == "--do-commit" ]]; then
+git add $broken_config
+git add pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+git add pkgs/development/haskell-modules/hackage-packages.nix
+git commit -F - << EOF
+hackage2nix: Mark failing builds broken
+
+This commit has been generated by maintainers/scripts/haskell/mark-broken.sh
+EOF
+fi
diff --git a/nixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh b/nixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh
new file mode 100755
index 000000000000..e7f91f2d79d1
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh
@@ -0,0 +1,46 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nix -I nixpkgs=.
+
+# This script is used to regenerate nixpkgs' Haskell package set, using the
+# tool hackage2nix from the nixos/cabal2nix repo. hackage2nix looks at the
+# config files in pkgs/development/haskell-modules/configuration-hackage2nix
+# and generates a Nix expression for package version specified there, using the
+# Cabal files from the Hackage database (available under all-cabal-hashes) and
+# its companion tool cabal2nix.
+#
+# Related scripts are update-hackage.sh, for updating the snapshot of the
+# Hackage database used by hackage2nix, and update-cabal2nix-unstable.sh,
+# for updating the version of hackage2nix used to perform this task.
+
+set -euo pipefail
+
+HACKAGE2NIX="${HACKAGE2NIX:-hackage2nix}"
+
+# To prevent hackage2nix fails because of encoding.
+# See: https://github.com/NixOS/nixpkgs/pull/122023
+export LC_ALL=C.UTF-8
+
+extraction_derivation='with import ./. {}; runCommand "unpacked-cabal-hashes" { } "tar xf ${all-cabal-hashes} --strip-components=1 --one-top-level=$out"'
+unpacked_hackage="$(nix-build -E "$extraction_derivation" --no-out-link)"
+config_dir=pkgs/development/haskell-modules/configuration-hackage2nix
+
+echo "Starting hackage2nix to regenerate pkgs/development/haskell-modules/hackage-packages.nix ..."
+"$HACKAGE2NIX" \
+   --hackage "$unpacked_hackage" \
+   --preferred-versions <(for n in "$unpacked_hackage"/*/preferred-versions; do cat "$n"; echo; done) \
+   --nixpkgs "$PWD" \
+   --config "$config_dir/main.yaml" \
+   --config "$config_dir/stackage.yaml" \
+   --config "$config_dir/broken.yaml" \
+   --config "$config_dir/transitive-broken.yaml"
+
+if [[ "${1:-}" == "--do-commit" ]]; then
+git add pkgs/development/haskell-modules/hackage-packages.nix
+git commit -F - << EOF
+hackage-packages.nix: Regenerate based on current config
+
+This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh
+EOF
+fi
+
+echo "Regeneration of hackage-packages.nix finished."
diff --git a/nixpkgs/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh b/nixpkgs/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
new file mode 100755
index 000000000000..64ec998bf6b1
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
@@ -0,0 +1,15 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils nix gnused -I nixpkgs=.
+
+config_file=pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+
+cat > $config_file << EOF
+# This file is automatically generated by
+# maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
+# It is supposed to list all haskellPackages that cannot evaluate because they
+# depend on a dependency marked as broken.
+dont-distribute-packages:
+EOF
+
+echo "Regenerating list of transitive broken packages ..."
+echo -e $(nix-instantiate --eval --strict maintainers/scripts/haskell/transitive-broken-packages.nix) | sed 's/\"//' | sort -i >> $config_file
diff --git a/nixpkgs/maintainers/scripts/haskell/transitive-broken-packages.nix b/nixpkgs/maintainers/scripts/haskell/transitive-broken-packages.nix
new file mode 100644
index 000000000000..d4ddaa957658
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/transitive-broken-packages.nix
@@ -0,0 +1,16 @@
+let
+  nixpkgs = import ../../..;
+  inherit (nixpkgs {}) pkgs lib;
+  getEvaluating = x:
+    builtins.attrNames (
+      lib.filterAttrs (
+        _: v: (builtins.tryEval (v.outPath or null)).success && lib.isDerivation v && !v.meta.broken
+      ) x
+    );
+  brokenDeps = lib.subtractLists
+    (getEvaluating pkgs.haskellPackages)
+    (getEvaluating (nixpkgs { config.allowBroken = true; }).haskellPackages);
+in
+''
+  ${lib.concatMapStringsSep "\n" (x: "  - ${x}") brokenDeps}
+''
diff --git a/nixpkgs/maintainers/scripts/haskell/update-cabal2nix-unstable.sh b/nixpkgs/maintainers/scripts/haskell/update-cabal2nix-unstable.sh
new file mode 100755
index 000000000000..415837045602
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/update-cabal2nix-unstable.sh
@@ -0,0 +1,17 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p coreutils curl jq gnused haskellPackages.cabal2nix-unstable -I nixpkgs=.
+
+# Updates cabal2nix-unstable to the latest master of the nixos/cabal2nix repository.
+# See regenerate-hackage-packages.sh for details on the purpose of this script.
+
+set -euo pipefail
+
+# fetch current master HEAD from Github
+head_info="$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/NixOS/cabal2nix/branches/master)"
+# extract commit hash
+commit="$(jq -r .commit.sha <<< "$head_info")"
+# extract commit timestamp and convert to date
+date="$(date "--date=$(jq -r .commit.commit.committer.date <<< "$head_info")" +%F)"
+# generate nix expression from cabal file, replacing the version with the commit date
+echo '# This file defines cabal2nix-unstable, used by maintainers/scripts/haskell/regenerate-hackage-packages.sh.' > pkgs/development/haskell-modules/cabal2nix-unstable.nix
+cabal2nix "https://github.com/NixOS/cabal2nix/archive/$commit.tar.gz" | sed -e 's/version = ".*"/version = "'"unstable-$date"'"/' >> pkgs/development/haskell-modules/cabal2nix-unstable.nix
diff --git a/nixpkgs/maintainers/scripts/haskell/update-hackage.sh b/nixpkgs/maintainers/scripts/haskell/update-hackage.sh
new file mode 100755
index 000000000000..a7cfecbbb0fe
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/update-hackage.sh
@@ -0,0 +1,35 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p nix curl jq nix-prefetch-github git gnused -I nixpkgs=.
+
+# See regenerate-hackage-packages.sh for details on the purpose of this script.
+
+set -euo pipefail
+
+pin_file=pkgs/data/misc/hackage/pin.json
+current_commit="$(jq -r .commit $pin_file)"
+old_date="$(jq -r .msg $pin_file | sed 's/Update from Hackage at //')"
+git_info="$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/commercialhaskell/all-cabal-hashes/branches/hackage)"
+head_commit="$(echo "$git_info" | jq -r .commit.sha)"
+commit_msg="$(echo "$git_info" | jq -r .commit.commit.message)"
+new_date="$(echo "$commit_msg" | sed 's/Update from Hackage at //')"
+
+if [ "$current_commit" != "$head_commit" ]; then
+   url="https://github.com/commercialhaskell/all-cabal-hashes/archive/$head_commit.tar.gz"
+   hash="$(nix-prefetch-url "$url")"
+   jq -n \
+     --arg commit "$head_commit" \
+     --arg hash "$hash" \
+     --arg url "$url" \
+     --arg commit_msg "$commit_msg" \
+     '{commit: $commit, url: $url, sha256: $hash, msg: $commit_msg}' \
+     > $pin_file
+fi
+
+if [[ "${1:-}" == "--do-commit" ]]; then
+git add pkgs/data/misc/hackage/pin.json
+git commit -F - << EOF
+all-cabal-hashes: $old_date -> $new_date
+
+This commit has been generated by maintainers/scripts/haskell/update-hackage.sh
+EOF
+fi
diff --git a/nixpkgs/maintainers/scripts/haskell/update-stackage.sh b/nixpkgs/maintainers/scripts/haskell/update-stackage.sh
new file mode 100755
index 000000000000..db336bf12da3
--- /dev/null
+++ b/nixpkgs/maintainers/scripts/haskell/update-stackage.sh
@@ -0,0 +1,68 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p nix curl jq nix-prefetch-github git gnused gnugrep -I nixpkgs=.
+
+set -eu -o pipefail
+
+tmpfile=$(mktemp "update-stackage.XXXXXXX")
+# shellcheck disable=SC2064
+
+stackage_config="pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml"
+
+trap "rm ${tmpfile} ${tmpfile}.new" 0
+touch "$tmpfile" "$tmpfile.new" # Creating files here so that trap creates no errors.
+
+curl -L -s "https://stackage.org/nightly/cabal.config" >"$tmpfile"
+old_version=$(grep "# Stackage Nightly" $stackage_config | sed -E 's/.*([0-9]{4}-[0-9]{2}-[0-9]{2}).*/\1/')
+version=$(sed -rn "s/^--.*http:..(www.)?stackage.org.snapshot.nightly-//p" "$tmpfile")
+
+if [[ "$old_version" == "$version" ]]; then
+   echo "No new stackage version"
+   exit 0 # Nothing to do
+fi
+
+# Create a simple yaml version of the file.
+sed -r \
+    -e '/^--/d' \
+    -e 's|^constraints:||' \
+    -e 's|^ +|  - |' \
+    -e 's|,$||' \
+    -e '/installed$/d' \
+    -e '/^$/d' \
+    < "${tmpfile}" | sort --ignore-case >"${tmpfile}.new"
+
+cat > $stackage_config << EOF
+# Stackage Nightly $version
+# This file is auto-generated by
+# maintainers/scripts/haskell/update-stackage.sh
+default-package-overrides:
+EOF
+
+# Drop restrictions on some tools where we always want the latest version.
+sed -r \
+    -e '/ cabal-install /d' \
+    -e '/ cabal2nix /d' \
+    -e '/ cabal2spec /d' \
+    -e '/ distribution-nixpkgs /d' \
+    -e '/ git-annex /d' \
+    -e '/ hindent /d' \
+    -e '/ hledger/d' \
+    -e '/ hlint /d' \
+    -e '/ hoogle /d' \
+    -e '/ hopenssl /d' \
+    -e '/ jailbreak-cabal /d' \
+    -e '/ json-autotype/d' \
+    -e '/ language-nix /d' \
+    -e '/ shake /d' \
+    -e '/ ShellCheck /d' \
+    -e '/ stack /d' \
+    -e '/ weeder /d' \
+    < "${tmpfile}.new" >> $stackage_config
+
+if [[ "${1:-}" == "--do-commit" ]]; then
+git add $stackage_config
+git commit -F - << EOF
+Stackage Nightly: $old_version -> $version
+
+This commit has been generated by maintainers/scripts/haskell/update-stackage.sh
+EOF
+fi
diff --git a/nixpkgs/maintainers/scripts/pluginupdate.py b/nixpkgs/maintainers/scripts/pluginupdate.py
index e7a183952b08..91c5214d1539 100644
--- a/nixpkgs/maintainers/scripts/pluginupdate.py
+++ b/nixpkgs/maintainers/scripts/pluginupdate.py
@@ -13,6 +13,7 @@ import http
 import json
 import os
 import subprocess
+import logging
 import sys
 import time
 import traceback
@@ -34,6 +35,14 @@ ATOM_ENTRY = "{http://www.w3.org/2005/Atom}entry"  # " vim gets confused here
 ATOM_LINK = "{http://www.w3.org/2005/Atom}link"  # "
 ATOM_UPDATED = "{http://www.w3.org/2005/Atom}updated"  # "
 
+LOG_LEVELS = {
+    logging.getLevelName(level): level for level in [
+        logging.DEBUG, logging.INFO, logging.WARN, logging.ERROR ]
+}
+
+log = logging.getLogger()
+log.addHandler(logging.StreamHandler())
+
 
 def retry(ExceptionToCheck: Any, tries: int = 4, delay: float = 3, backoff: float = 2):
     """Retry calling the decorated function using an exponential backoff.
@@ -235,6 +244,7 @@ def prefetch_plugin(
     alias: Optional[str],
     cache: "Optional[Cache]" = None,
 ) -> Tuple[Plugin, Dict[str, str]]:
+    log.info("Prefetching plugin %s", repo_name)
     repo = Repo(user, repo_name, branch, alias)
     commit, date = repo.latest_commit()
     has_submodules = repo.has_submodules()
@@ -464,6 +474,11 @@ def parse_args(editor: Editor):
         "--no-commit", "-n", action="store_true", default=False,
         help="Whether to autocommit changes"
     )
+    parser.add_argument(
+        "--debug", "-d", choices=LOG_LEVELS.keys(),
+        default=logging.getLevelName(logging.WARN),
+        help="Adjust log level"
+    )
     return parser.parse_args()
 
 
@@ -503,6 +518,9 @@ def update_plugins(editor: Editor):
     """The main entry function of this module. All input arguments are grouped in the `Editor`."""
 
     args = parse_args(editor)
+    log.setLevel(LOG_LEVELS[args.debug])
+
+    log.info("Start updating plugins")
     nixpkgs_repo = git.Repo(editor.root, search_parent_directories=True)
     update = get_update(args.input_file, args.outfile, args.proc, editor)
 
diff --git a/nixpkgs/maintainers/scripts/update-luarocks-shell.nix b/nixpkgs/maintainers/scripts/update-luarocks-shell.nix
index 23a940b3691b..d3f342b07a96 100644
--- a/nixpkgs/maintainers/scripts/update-luarocks-shell.nix
+++ b/nixpkgs/maintainers/scripts/update-luarocks-shell.nix
@@ -2,8 +2,11 @@
 }:
 with nixpkgs;
 mkShell {
-  buildInputs = [
-    bash luarocks-nix nix-prefetch-scripts parallel
+  packages = [
+    bash
+    luarocks-nix
+    nix-prefetch-scripts
+    parallel
   ];
   LUAROCKS_NIXPKGS_PATH = toString nixpkgs.path;
 }
diff --git a/nixpkgs/maintainers/scripts/update.nix b/nixpkgs/maintainers/scripts/update.nix
index 1305e0947c72..7435cf64425c 100755
--- a/nixpkgs/maintainers/scripts/update.nix
+++ b/nixpkgs/maintainers/scripts/update.nix
@@ -1,5 +1,6 @@
 { package ? null
 , maintainer ? null
+, predicate ? null
 , path ? null
 , max-workers ? null
 , include-overlays ? false
@@ -69,6 +70,11 @@ let
    */
   packagesWith = packagesWithPath [];
 
+  /* Recursively find all packages in `pkgs` with updateScript matching given predicate.
+   */
+  packagesWithUpdateScriptMatchingPredicate = cond:
+    packagesWith (path: pkg: builtins.hasAttr "updateScript" pkg && cond path pkg);
+
   /* Recursively find all packages in `pkgs` with updateScript by given maintainer.
    */
   packagesWithUpdateScriptAndMaintainer = maintainer':
@@ -79,7 +85,7 @@ let
         else
           builtins.getAttr maintainer' lib.maintainers;
     in
-      packagesWith (path: pkg: builtins.hasAttr "updateScript" pkg &&
+      packagesWithUpdateScriptMatchingPredicate (path: pkg:
                          (if builtins.hasAttr "maintainers" pkg.meta
                            then (if builtins.isList pkg.meta.maintainers
                                    then builtins.elem maintainer pkg.meta.maintainers
@@ -120,6 +126,8 @@ let
   packages =
     if package != null then
       [ (packageByName package pkgs) ]
+    else if predicate != null then
+      packagesWithUpdateScriptMatchingPredicate predicate pkgs
     else if maintainer != null then
       packagesWithUpdateScriptAndMaintainer maintainer pkgs
     else if path != null then
@@ -135,11 +143,15 @@ let
     to run all update scripts for all packages that lists \`garbas\` as a maintainer
     and have \`updateScript\` defined, or:
 
-        % nix-shell maintainers/scripts/update.nix --argstr package gnome3.nautilus
+        % nix-shell maintainers/scripts/update.nix --argstr package gnome.nautilus
 
     to run update script for specific package, or
 
-        % nix-shell maintainers/scripts/update.nix --argstr path gnome3
+        % nix-shell maintainers/scripts/update.nix --arg predicate '(path: pkg: builtins.isList pkg.updateScript && builtins.length pkg.updateScript >= 1 && (let script = builtins.head pkg.updateScript; in builtins.isAttrs script && script.name == "gnome-update-script"))'
+
+    to run update script for all packages matching given predicate, or
+
+        % nix-shell maintainers/scripts/update.nix --argstr path gnome
 
     to run update script for all package under an attribute path.
 
diff --git a/nixpkgs/maintainers/scripts/update.py b/nixpkgs/maintainers/scripts/update.py
index 8cc2bcbd67c9..eb26a472e926 100644
--- a/nixpkgs/maintainers/scripts/update.py
+++ b/nixpkgs/maintainers/scripts/update.py
@@ -39,6 +39,9 @@ async def run_update_script(nixpkgs_root: str, merge_lock: asyncio.Lock, temp_di
     if temp_dir is not None:
         worktree, _branch = temp_dir
 
+        # Ensure the worktree is clean before update.
+        await check_subprocess('git', 'reset', '--hard', '--quiet', 'HEAD', cwd=worktree)
+
         # Update scripts can use $(dirname $0) to get their location but we want to run
         # their clones in the git worktree, not in the main nixpkgs repo.
         update_script_command = map(lambda arg: re.sub(r'^{0}'.format(re.escape(nixpkgs_root)), worktree, arg), update_script_command)
diff --git a/nixpkgs/maintainers/team-list.nix b/nixpkgs/maintainers/team-list.nix
index cb30b2e01380..3e6843f0e573 100644
--- a/nixpkgs/maintainers/team-list.nix
+++ b/nixpkgs/maintainers/team-list.nix
@@ -48,6 +48,14 @@ with lib.maintainers; {
     scope = "Maintain Cinnamon desktop environment and applications made by the LinuxMint team.";
   };
 
+  chia = {
+    members = [
+      atemu
+      lourkeur
+    ];
+    scope = "Maintain the Chia blockchain and its dependencies";
+  };
+
   deshaw = {
     # Verify additions to this team with at least one already existing member of the team.
     members = [
@@ -66,10 +74,19 @@ with lib.maintainers; {
   };
 
   freedesktop = {
-    members = [ jtojnar worldofpeace ];
+    members = [ jtojnar ];
     scope = "Maintain Freedesktop.org packages for graphical desktop.";
   };
 
+  gcc = {
+    members = [
+      synthetica
+      vcunat
+      ericson2314
+    ];
+    scope = "Maintain GCC (GNU Compiler Collection) compilers";
+  };
+
   golang = {
     members = [
       c00w
@@ -89,13 +106,21 @@ with lib.maintainers; {
     members = [
       hedning
       jtojnar
-      worldofpeace
       dasj19
       maxeaubrey
     ];
     scope = "Maintain GNOME desktop environment and platform.";
   };
 
+  haskell = {
+    members = [
+      maralorn
+      cdepillabout
+      sternenseemann
+    ];
+    scope = "Maintain Haskell packages and infrastructure.";
+  };
+
   home-assistant = {
     members = [
       fab
@@ -110,7 +135,6 @@ with lib.maintainers; {
     members = [
       mmilata
       petabyteboy
-      prusnak
       ryantm
     ];
     scope = "Maintain Jitsi.";
@@ -131,11 +155,11 @@ with lib.maintainers; {
   matrix = {
     members = [
       ma27
-      pacien
       fadenb
       mguentner
       ekleog
       ralith
+      mjlbach
     ];
     scope = "Maintain the ecosystem around Matrix, a decentralized messenger.";
   };
@@ -170,4 +194,13 @@ with lib.maintainers; {
     ];
     scope = "Maintain SageMath and the dependencies that are likely to break it.";
   };
+
+  serokell = {
+    # Verify additions by approval of an already existing member of the team.
+    members = [
+      balsoft
+      mkaito
+    ];
+    scope = "Group registration for Serokell employees who collectively maintain packages.";
+  };
 }
diff --git a/nixpkgs/nixos/doc/manual/configuration/abstractions.section.md b/nixpkgs/nixos/doc/manual/configuration/abstractions.section.md
new file mode 100644
index 000000000000..bf26e4c51ed3
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/configuration/abstractions.section.md
@@ -0,0 +1,80 @@
+# Abstractions {#sec-module-abstractions}
+
+If you find yourself repeating yourself over and over, it’s time to abstract. Take, for instance, this Apache HTTP Server configuration:
+
+```nix
+{
+  services.httpd.virtualHosts =
+    { "blog.example.org" = {
+        documentRoot = "/webroot/blog.example.org";
+        adminAddr = "alice@example.org";
+        forceSSL = true;
+        enableACME = true;
+        enablePHP = true;
+      };
+      "wiki.example.org" = {
+        documentRoot = "/webroot/wiki.example.org";
+        adminAddr = "alice@example.org";
+        forceSSL = true;
+        enableACME = true;
+        enablePHP = true;
+      };
+    };
+}
+```
+
+It defines two virtual hosts with nearly identical configuration; the only difference is the document root directories. To prevent this duplication, we can use a `let`:
+```nix
+let
+  commonConfig =
+    { adminAddr = "alice@example.org";
+      forceSSL = true;
+      enableACME = true;
+    };
+in
+{
+  services.httpd.virtualHosts =
+    { "blog.example.org" = (commonConfig // { documentRoot = "/webroot/blog.example.org"; });
+      "wiki.example.org" = (commonConfig // { documentRoot = "/webroot/wiki.example.com"; });
+    };
+}
+```
+
+The `let commonConfig = ...` defines a variable named `commonConfig`. The `//` operator merges two attribute sets, so the configuration of the second virtual host is the set `commonConfig` extended with the document root option.
+
+You can write a `let` wherever an expression is allowed. Thus, you also could have written:
+
+```nix
+{
+  services.httpd.virtualHosts =
+    let commonConfig = ...; in
+    { "blog.example.org" = (commonConfig // { ... })
+      "wiki.example.org" = (commonConfig // { ... })
+    };
+}
+```
+
+but not `{ let commonConfig = ...; in ...; }` since attributes (as opposed to attribute values) are not expressions.
+
+**Functions** provide another method of abstraction. For instance, suppose that we want to generate lots of different virtual hosts, all with identical configuration except for the document root. This can be done as follows:
+
+```nix
+{
+  services.httpd.virtualHosts =
+    let
+      makeVirtualHost = webroot:
+        { documentRoot = webroot;
+          adminAddr = "alice@example.org";
+          forceSSL = true;
+          enableACME = true;
+        };
+    in
+      { "example.org" = (makeVirtualHost "/webroot/example.org");
+        "example.com" = (makeVirtualHost "/webroot/example.com");
+        "example.gov" = (makeVirtualHost "/webroot/example.gov");
+        "example.nl" = (makeVirtualHost "/webroot/example.nl");
+      };
+}
+```
+
+Here, `makeVirtualHost` is a function that takes a single argument `webroot` and returns the configuration for a virtual host. That function is then called for several names to produce the list of virtual host configurations.
diff --git a/nixpkgs/nixos/doc/manual/configuration/abstractions.xml b/nixpkgs/nixos/doc/manual/configuration/abstractions.xml
deleted file mode 100644
index df9ff2615e1a..000000000000
--- a/nixpkgs/nixos/doc/manual/configuration/abstractions.xml
+++ /dev/null
@@ -1,101 +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-module-abstractions">
- <title>Abstractions</title>
-
- <para>
-  If you find yourself repeating yourself over and over, it’s time to
-  abstract. Take, for instance, this Apache HTTP Server configuration:
-<programlisting>
-{
-  <xref linkend="opt-services.httpd.virtualHosts"/> =
-    { "blog.example.org" = {
-        documentRoot = "/webroot/blog.example.org";
-        adminAddr = "alice@example.org";
-        forceSSL = true;
-        enableACME = true;
-        enablePHP = true;
-      };
-      "wiki.example.org" = {
-        documentRoot = "/webroot/wiki.example.org";
-        adminAddr = "alice@example.org";
-        forceSSL = true;
-        enableACME = true;
-        enablePHP = true;
-      };
-    };
-}
-</programlisting>
-  It defines two virtual hosts with nearly identical configuration; the only
-  difference is the document root directories. To prevent this
-  duplication, we can use a <literal>let</literal>:
-<programlisting>
-let
-  commonConfig =
-    { adminAddr = "alice@example.org";
-      forceSSL = true;
-      enableACME = true;
-    };
-in
-{
-  <xref linkend="opt-services.httpd.virtualHosts"/> =
-    { "blog.example.org" = (commonConfig // { documentRoot = "/webroot/blog.example.org"; });
-      "wiki.example.org" = (commonConfig // { documentRoot = "/webroot/wiki.example.com"; });
-    };
-}
-</programlisting>
-  The <literal>let commonConfig = <replaceable>...</replaceable></literal>
-  defines a variable named <literal>commonConfig</literal>. The
-  <literal>//</literal> operator merges two attribute sets, so the
-  configuration of the second virtual host is the set
-  <literal>commonConfig</literal> extended with the document root option.
- </para>
-
- <para>
-  You can write a <literal>let</literal> wherever an expression is allowed.
-  Thus, you also could have written:
-<programlisting>
-{
-  <xref linkend="opt-services.httpd.virtualHosts"/> =
-    let commonConfig = <replaceable>...</replaceable>; in
-    { "blog.example.org" = (commonConfig // { <replaceable>...</replaceable> })
-      "wiki.example.org" = (commonConfig // { <replaceable>...</replaceable> })
-    };
-}
-</programlisting>
-  but not <literal>{ let commonConfig = <replaceable>...</replaceable>; in
-  <replaceable>...</replaceable>; }</literal> since attributes (as opposed to
-  attribute values) are not expressions.
- </para>
-
- <para>
-  <emphasis>Functions</emphasis> provide another method of abstraction. For
-  instance, suppose that we want to generate lots of different virtual hosts,
-  all with identical configuration except for the document root. This can be done
-  as follows:
-<programlisting>
-{
-  <xref linkend="opt-services.httpd.virtualHosts"/> =
-    let
-      makeVirtualHost = webroot:
-        { documentRoot = webroot;
-          adminAddr = "alice@example.org";
-          forceSSL = true;
-          enableACME = true;
-        };
-    in
-      { "example.org" = (makeVirtualHost "/webroot/example.org");
-        "example.com" = (makeVirtualHost "/webroot/example.com");
-        "example.gov" = (makeVirtualHost "/webroot/example.gov");
-        "example.nl" = (makeVirtualHost "/webroot/example.nl");
-      };
-}
-</programlisting>
-  Here, <varname>makeVirtualHost</varname> is a function that takes a single
-  argument <literal>webroot</literal> and returns the configuration for a virtual
-  host. That function is then called for several names to produce the list of
-  virtual host configurations.
- </para>
-</section>
diff --git a/nixpkgs/nixos/doc/manual/configuration/config-syntax.xml b/nixpkgs/nixos/doc/manual/configuration/config-syntax.xml
index 5526dea247c0..a374c6a87074 100644
--- a/nixpkgs/nixos/doc/manual/configuration/config-syntax.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/config-syntax.xml
@@ -19,7 +19,7 @@ xlink:href="https://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
   constructs useful in NixOS configuration files.
  </para>
  <xi:include href="config-file.xml" />
- <xi:include href="abstractions.xml" />
+ <xi:include href="../from_md/configuration/abstractions.section.xml" />
  <xi:include href="modularity.xml" />
  <xi:include href="summary.xml" />
 </chapter>
diff --git a/nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml b/nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml
index 3695a5ff445a..9aa9be86a061 100644
--- a/nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml
@@ -178,9 +178,9 @@ GPU1:
        Core Next</link> (GCN) GPUs are supported through either radv, which is
        part of <package>mesa</package>, or the <package>amdvlk</package> package.
        Adding the <package>amdvlk</package> package to
-       <xref linkend="opt-hardware.opengl.extraPackages"/> makes both drivers
-       available for applications and lets them choose. A specific driver can
-       be forced as follows:
+       <xref linkend="opt-hardware.opengl.extraPackages"/> makes amdvlk the
+       default driver and hides radv and lavapipe from the device list. A
+       specific driver can be forced as follows:
 
        <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
          pkgs.<package>amdvlk</package>
@@ -191,10 +191,9 @@ GPU1:
          pkgs.driversi686Linux.<package>amdvlk</package>
        ];
 
-       # For amdvlk
-       <xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
-          "/run/opengl-driver/share/vulkan/icd.d/amd_icd64.json";
-       # For radv
+       # Force radv
+       <xref linkend="opt-environment.variables"/>.AMD_VULKAN_ICD = "RADV";
+       # Or
        <xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
          "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
        </programlisting>
diff --git a/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml b/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml
index 7b89b4092be7..45e85dbf3dfd 100644
--- a/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml
@@ -7,8 +7,12 @@
 
  <para>
   IPv6 is enabled by default. Stateless address autoconfiguration is used to
-  automatically assign IPv6 addresses to all interfaces. You can disable IPv6
-  support globally by setting:
+  automatically assign IPv6 addresses to all interfaces, and Privacy
+  Extensions (RFC 4946) are enabled by default. You can adjust the default
+  for this by setting <xref linkend="opt-networking.tempAddresses"/>.
+  This option may be overridden on a per-interface basis by
+  <xref linkend="opt-networking.interfaces._name_.tempAddress"/>.
+  You can disable IPv6 support globally by setting:
 <programlisting>
 <xref linkend="opt-networking.enableIPv6"/> = false;
 </programlisting>
diff --git a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
index 757174c52632..e72193897068 100644
--- a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
@@ -25,7 +25,7 @@
 <programlisting>
 <xref linkend="opt-services.xserver.desktopManager.plasma5.enable"/> = true;
 <xref linkend="opt-services.xserver.desktopManager.xfce.enable"/> = true;
-<xref linkend="opt-services.xserver.desktopManager.gnome3.enable"/> = true;
+<xref linkend="opt-services.xserver.desktopManager.gnome.enable"/> = true;
 <xref linkend="opt-services.xserver.desktopManager.mate.enable"/> = true;
 <xref linkend="opt-services.xserver.windowManager.xmonad.enable"/> = true;
 <xref linkend="opt-services.xserver.windowManager.twm.enable"/> = true;
diff --git a/nixpkgs/nixos/doc/manual/contributing-to-this-manual.chapter.md b/nixpkgs/nixos/doc/manual/contributing-to-this-manual.chapter.md
new file mode 100644
index 000000000000..26813d1042d6
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/contributing-to-this-manual.chapter.md
@@ -0,0 +1,13 @@
+# Contributing to this manual {#chap-contributing}
+
+The DocBook and CommonMark sources of NixOS' manual are in the [nixos/doc/manual](https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual) subdirectory of the [Nixpkgs](https://github.com/NixOS/nixpkgs) repository.
+
+You can quickly check your edits with the following:
+
+```ShellSession
+$ cd /path/to/nixpkgs
+$ ./nixos/doc/manual/md-to-db.sh
+$ nix-build nixos/release.nix -A manual.x86_64-linux
+```
+
+If the build succeeds, the manual will be in `./result/share/doc/nixos/index.html`.
diff --git a/nixpkgs/nixos/doc/manual/contributing-to-this-manual.xml b/nixpkgs/nixos/doc/manual/contributing-to-this-manual.xml
deleted file mode 100644
index 137e04bb313b..000000000000
--- a/nixpkgs/nixos/doc/manual/contributing-to-this-manual.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="chap-contributing">
- <title>Contributing to this manual</title>
- <para>
-  The DocBook sources of NixOS' manual are in the <filename
-xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual">
-nixos/doc/manual</filename> subdirectory of the <link
-xlink:href="https://github.com/NixOS/nixpkgs">Nixpkgs</link> repository.
- </para>
- <para>
-  You can quickly check your edits with the following:
- </para>
-<screen>
-<prompt>$ </prompt>cd /path/to/nixpkgs
-<prompt>$ </prompt>nix-build nixos/release.nix -A manual.x86_64-linux
-</screen>
- <para>
-  If the build succeeds, the manual will be in
-  <filename>./result/share/doc/nixos/index.html</filename>.
- </para>
-</chapter>
diff --git a/nixpkgs/nixos/doc/manual/development/building-nixos.chapter.md b/nixpkgs/nixos/doc/manual/development/building-nixos.chapter.md
new file mode 100644
index 000000000000..699a75f41152
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/development/building-nixos.chapter.md
@@ -0,0 +1,18 @@
+# Building Your Own NixOS CD {#sec-building-cd}
+Building a NixOS CD is as easy as configuring your own computer. The idea is to use another module which will replace your `configuration.nix` to configure the system that would be installed on the CD.
+
+Default CD/DVD configurations are available inside `nixos/modules/installer/cd-dvd`
+
+```ShellSession
+$ git clone https://github.com/NixOS/nixpkgs.git
+$ cd nixpkgs/nixos
+$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix default.nix
+```
+
+Before burning your CD/DVD, you can check the content of the image by mounting anywhere like suggested by the following command:
+
+```ShellSession
+# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso</screen>
+```
+
+If you want to customize your NixOS CD in more detail, or generate other kinds of images, you might want to check out [nixos-generators](https://github.com/nix-community/nixos-generators). This can also be a good starting point when you want to use Nix to build a 'minimal' image that doesn't include a NixOS installation.
diff --git a/nixpkgs/nixos/doc/manual/development/building-nixos.xml b/nixpkgs/nixos/doc/manual/development/building-nixos.xml
deleted file mode 100644
index d58b6354d1d3..000000000000
--- a/nixpkgs/nixos/doc/manual/development/building-nixos.xml
+++ /dev/null
@@ -1,33 +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-building-cd">
- <title>Building Your Own NixOS CD</title>
- <para>
-  Building a NixOS CD is as easy as configuring your own computer. The idea is
-  to use another module which will replace your
-  <filename>configuration.nix</filename> to configure the system that would be
-  installed on the CD.
- </para>
- <para>
-  Default CD/DVD configurations are available inside
-  <filename>nixos/modules/installer/cd-dvd</filename>.
-<screen>
-<prompt>$ </prompt>git clone https://github.com/NixOS/nixpkgs.git
-<prompt>$ </prompt>cd nixpkgs/nixos
-<prompt>$ </prompt>nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix default.nix</screen>
- </para>
- <para>
-  Before burning your CD/DVD, you can check the content of the image by
-  mounting anywhere like suggested by the following command:
-<screen>
-<prompt># </prompt>mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso</screen>
- </para>
- <para>
- If you want to customize your NixOS CD in more detail, or generate other kinds
- of images, you might want to check out <link
- xlink:href="https://github.com/nix-community/nixos-generators">nixos-generators</link>. This can also be a good starting point when you want to use Nix to build a
- 'minimal' image that doesn't include a NixOS installation.
- </para>
-</chapter>
diff --git a/nixpkgs/nixos/doc/manual/development/development.xml b/nixpkgs/nixos/doc/manual/development/development.xml
index 43f511b3e96b..eb505567962c 100644
--- a/nixpkgs/nixos/doc/manual/development/development.xml
+++ b/nixpkgs/nixos/doc/manual/development/development.xml
@@ -13,8 +13,7 @@
  <xi:include href="writing-modules.xml" />
  <xi:include href="building-parts.xml" />
  <xi:include href="writing-documentation.xml" />
- <xi:include href="building-nixos.xml" />
+ <xi:include href="../from_md/development/building-nixos.chapter.xml" />
  <xi:include href="nixos-tests.xml" />
  <xi:include href="testing-installer.xml" />
- <xi:include href="releases.xml" />
 </part>
diff --git a/nixpkgs/nixos/doc/manual/development/releases.xml b/nixpkgs/nixos/doc/manual/development/releases.xml
deleted file mode 100755
index cd68a428a6fb..000000000000
--- a/nixpkgs/nixos/doc/manual/development/releases.xml
+++ /dev/null
@@ -1,366 +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-releases">
- <title>Releases</title>
- <section xml:id="release-process">
-  <title>Release process</title>
-
-  <para>
-   Going through an example of releasing NixOS 19.09:
-  </para>
-
-  <section xml:id="one-month-before-the-beta">
-   <title>One month before the beta</title>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      Create an announcement on <link xlink:href="https://discourse.nixos.org">Discourse</link> as a warning about upcoming beta <quote>feature freeze</quote> in a month. <link xlink:href="https://discourse.nixos.org/t/nixos-19-09-feature-freeze/3707">See this post as an example</link>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Discuss with Eelco Dolstra and the community (via IRC, ML) about what will reach the deadline. Any issue or Pull Request targeting the release should be included in the release milestone.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove attributes that we know we will not be able to support, especially if there is a stable alternative. E.g. Check that our Linux kernels’ <link xlink:href="https://www.kernel.org/category/releases.html">projected end-of-life</link> are after our release projected end-of-life.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </section>
-
-  <section xml:id="at-beta-release-time">
-   <title>At beta release time</title>
-
-   <orderedlist>
-    <listitem>
-     <para>
-      From the master branch run:
-     </para>
-<programlisting>
-git checkout -b release-19.09
-</programlisting>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-9c798092bac0caeb5c52d509be0ca263R69">Bump the <literal>system.defaultChannel</literal> attribute in <literal>nixos/modules/misc/version.nix</literal></link>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-831e8d9748240fb23e6734fdc2a6d16eR15">Update <literal>versionSuffix</literal> in <literal>nixos/release.nix</literal></link>
-     </para>
-    </listitem>
-   </orderedlist>
-
-   <para>
-    To get the commit count, use the following command:
-   </para>
-
-<programlisting>
-git rev-list --count release-19.09
-</programlisting>
-
-   <orderedlist>
-    <listitem>
-     <para>
-      Edit changelog at <literal>nixos/doc/manual/release-notes/rl-1909.xml</literal>.
-     </para>
-     <itemizedlist>
-      <listitem>
-       <para>
-        Get all new NixOS modules:
-       </para>
-<programlisting>
-git diff release-19.03..release-19.09 nixos/modules/module-list.nix | grep ^+
-</programlisting>
-      </listitem>
-      <listitem>
-       <para>
-        Note systemd, kernel, glibc, desktop environment, and Nix upgrades.
-       </para>
-      </listitem>
-     </itemizedlist>
-    </listitem>
-    <listitem>
-     <para>
-      Tag the release:
-     </para>
-<programlisting>
-git tag --annotate --message="Release 19.09-beta" 19.09-beta
-git push upstream 19.09-beta
-</programlisting>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-2bc0e46110b507d6d5a344264ef15adaR1">On the <literal>master</literal> branch, increment the <literal>.version</literal> file</link>
-     </para>
-<programlisting>
-echo -n "20.03" > .version
-</programlisting>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-03f3d41b68f62079c55001f1a1c55c1dR137">Update <literal>codeName</literal> in <literal>lib/trivial.nix</literal></link> This will be the name for the next release.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-e7ee5ff686cdcc513ca089d6e5682587R11">Create a new release notes file for the upcoming release + 1</link>, in our case this is <literal>rl-2003.xml</literal>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Contact the infrastructure team to create the necessary Hydra Jobsets.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixos-org-configurations/blob/master/channels.nix">Create a channel at https://nixos.org/channels by creating a PR to nixos-org-configurations, changing <literal>channels.nix</literal></link>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Get all Hydra jobsets for the release to have their first evaluation.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create an issue for tracking Zero Hydra Failures progress. ZHF is an effort to get build failures down to zero.</link>
-     </para>
-    </listitem>
-   </orderedlist>
-  </section>
-
-  <section xml:id="during-beta">
-   <title>During Beta</title>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      Monitor the master branch for bugfixes and minor updates and cherry-pick them to the release branch.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </section>
-
-  <section xml:id="before-the-final-release">
-   <title>Before the final release</title>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      Re-check that the release notes are complete.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Release Nix (currently only Eelco Dolstra can do that). <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix">Make sure fallback is updated.</link>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e">Update README.md with new stable NixOS version information.</link>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Change <literal>stableBranch</literal> to <literal>true</literal> in Hydra and wait for the channel to update.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </section>
-
-  <section xml:id="at-final-release-time">
-   <title>At final release time</title>
-
-   <orderedlist>
-    <listitem>
-     <para>
-      Update <xref linkend="sec-upgrading" /> section of the manual to match new stable release version.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Update <literal>rl-1909.xml</literal> with the release date.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Tag the final release
-     </para>
-<programlisting>
-git tag --annotate --message="Release 19.09" 19.09
-git push upstream 19.09
-</programlisting>
-    </listitem>
-    <listitem>
-     <para>
-      Update <link xlink:href="https://github.com/NixOS/nixos-homepage">nixos-homepage</link> for the release.
-     </para>
-     <orderedlist>
-      <listitem>
-       <para>
-        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/Makefile#L1">Update <literal>NIXOS_SERIES</literal> in the <literal>Makefile</literal></link>.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/nixos-release.tt#L1">Update <literal>nixos-release.tt</literal> with the new NixOS version</link>.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/flake.nix#L10">Update the <literal>flake.nix</literal> input <literal>released-nixpkgs</literal> to 19.09</link>.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Run <literal>./update.sh</literal> (this updates flake.lock to updated channel).
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/a5626c71c03a2dd69086564e56f1a230a2bb177a/logo/nixos-logo-19.09-loris-lores.png">Add a compressed version of the NixOS logo for 19.09</link>.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <link xlink:href="https://github.com/NixOS/nixos-homepage/commit/a5626c71c03a2dd69086564e56f1a230a2bb177a#diff-9cdc6434d3e4fd93a6e5bb0a531a7c71R5">Compose a news item for the website RSS feed</link>.
-       </para>
-      </listitem>
-     </orderedlist>
-    </listitem>
-    <listitem>
-     <para>
-      Create a new topic on <link xlink:href="https://discourse.nixos.org/">the Discourse instance</link> to announce the release.
-     </para>
-    </listitem>
-   </orderedlist>
-
-   <para>
-    You should include the following information:
-   </para>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      Number of commits for the release:
-     </para>
-<programlisting>
-bash git log release-19.03..release-19.09 --format=%an | wc -l
-</programlisting>
-    </listitem>
-    <listitem>
-     <para>
-      Commits by contributor:
-     </para>
-<programlisting>
-git shortlog --summary --numbered release-19.03..release-19.09
-</programlisting>
-    </listitem>
-   </itemizedlist>
-
-   <para>
-    Best to check how the previous post was formulated to see what needs to be included.
-   </para>
-  </section>
- </section>
- <section xml:id="release-management-team">
-  <title>Release Management Team</title>
-
-  <para>
-   For each release there are two release managers. After each release the release manager having managed two releases steps down and the release management team of the last release appoints a new release manager.
-  </para>
-
-  <para>
-   This makes sure a release management team always consists of one release manager who already has managed one release and one release manager being introduced to their role, making it easier to pass on knowledge and experience.
-  </para>
-
-  <para>
-   Release managers for the current NixOS release are tracked by GitHub team <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
-  </para>
-
-  <para>
-   A release manager’s role and responsibilities are:
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     manage the release process
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     start discussions about features and changes for a given release
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     create a roadmap
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     release in cooperation with Eelco Dolstra
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     decide which bug fixes, features, etc… get backported after a release
-    </para>
-   </listitem>
-  </itemizedlist>
- </section>
- <section xml:id="release-schedule">
-  <title>Release schedule</title>
-
-  <informaltable>
-   <tgroup cols="2">
-    <colspec align="left" />
-    <colspec align="left" />
-    <thead>
-     <row>
-      <entry>
-            Date
-          </entry>
-      <entry>
-            Event
-          </entry>
-     </row>
-    </thead>
-    <tbody>
-     <row>
-      <entry>
-            2016-07-25
-          </entry>
-      <entry>
-            Send email to nix-dev about upcoming branch-off
-          </entry>
-     </row>
-     <row>
-      <entry>
-            2016-09-01
-          </entry>
-      <entry><literal>release-16.09</literal> branch and corresponding jobsets are created,
-            change freeze
-          </entry>
-     </row>
-     <row>
-      <entry>
-            2016-09-30
-          </entry>
-      <entry>
-            NixOS 16.09 released
-          </entry>
-     </row>
-    </tbody>
-   </tgroup>
-  </informaltable>
- </section>
-</chapter>
diff --git a/nixpkgs/nixos/doc/manual/development/settings-options.xml b/nixpkgs/nixos/doc/manual/development/settings-options.xml
index 7795d7c80445..7292cac62b70 100644
--- a/nixpkgs/nixos/doc/manual/development/settings-options.xml
+++ b/nixpkgs/nixos/doc/manual/development/settings-options.xml
@@ -50,7 +50,7 @@
        </varlistentry>
        <varlistentry>
          <term>
-           <varname>pkgs.formats.ini</varname> { <replaceable>listsAsDuplicateKeys</replaceable> ? false, ... }
+           <varname>pkgs.formats.ini</varname> { <replaceable>listsAsDuplicateKeys</replaceable> ? false, <replaceable>listToValue</replaceable> ? null, ... }
          </term>
          <listitem>
            <para>
@@ -66,6 +66,16 @@
                    </para>
                  </listitem>
                </varlistentry>
+               <varlistentry>
+                 <term>
+                   <varname>listToValue</varname>
+                 </term>
+                 <listitem>
+                   <para>
+                     A function for turning a list of values into a single value.
+                   </para>
+                 </listitem>
+               </varlistentry>
              </variablelist>
             It returns a set with INI-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
            </para>
diff --git a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
index 5a95436915fa..e372c66410de 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
+++ b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -274,8 +274,29 @@ start_all()
     </term>
     <listitem>
      <para>
-      Execute a shell command, raising an exception if the exit status is not
-      zero, otherwise returning the standard output.
+      Execute a shell command, raising an exception if the exit status
+      is not zero, otherwise returning the standard output. Commands
+      are run with <literal>set -euo pipefail</literal> set:
+      <itemizedlist>
+        <listitem>
+          <para>
+            If several commands are separated by <literal>;</literal>
+            and one fails, the command as a whole will fail.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            For pipelines, the last non-zero exit status will be
+            returned (if there is one, zero will be returned
+            otherwise).
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            Dereferencing unset variables fail the command.
+          </para>
+        </listitem>
+      </itemizedlist>
      </para>
     </listitem>
    </varlistentry>
@@ -436,6 +457,18 @@ machine.systemctl("list-jobs --no-pager", "any-user") # spawns a shell for `any-
      </para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term>
+     <methodname>shell_interact</methodname>
+    </term>
+    <listitem>
+     <para>
+      Allows you to directly interact with the guest shell.
+      This should only be used during test development, not in production tests.
+      Killing the interactive session with <literal>Ctrl-d</literal> or <literal>Ctrl-c</literal> also ends the guest session.
+     </para>
+    </listitem>
+   </varlistentry>
   </variablelist>
  </para>
 
diff --git a/nixpkgs/nixos/doc/manual/from_md/README.md b/nixpkgs/nixos/doc/manual/from_md/README.md
new file mode 100644
index 000000000000..cc6d08ca0a15
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/from_md/README.md
@@ -0,0 +1,5 @@
+This directory is temporarily needed while we transition the manual to CommonMark. It stores the output of the ../md-to-db.sh script that converts CommonMark files back to DocBook.
+
+We are choosing to convert the Markdown to DocBook at authoring time instead of manual building time, because we do not want the pandoc toolchain to become part of the NixOS closure.
+
+Do not edit the DocBook files inside this directory or its subdirectories. Instead, edit the corresponding .md file in the normal manual directories, and run ../md-to-db.sh to update the file here.
diff --git a/nixpkgs/nixos/doc/manual/from_md/configuration/abstractions.section.xml b/nixpkgs/nixos/doc/manual/from_md/configuration/abstractions.section.xml
new file mode 100644
index 000000000000..c71e23e34adf
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/from_md/configuration/abstractions.section.xml
@@ -0,0 +1,101 @@
+<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-module-abstractions">
+  <title>Abstractions</title>
+  <para>
+    If you find yourself repeating yourself over and over, it’s time to
+    abstract. Take, for instance, this Apache HTTP Server configuration:
+  </para>
+  <programlisting language="bash">
+{
+  services.httpd.virtualHosts =
+    { &quot;blog.example.org&quot; = {
+        documentRoot = &quot;/webroot/blog.example.org&quot;;
+        adminAddr = &quot;alice@example.org&quot;;
+        forceSSL = true;
+        enableACME = true;
+        enablePHP = true;
+      };
+      &quot;wiki.example.org&quot; = {
+        documentRoot = &quot;/webroot/wiki.example.org&quot;;
+        adminAddr = &quot;alice@example.org&quot;;
+        forceSSL = true;
+        enableACME = true;
+        enablePHP = true;
+      };
+    };
+}
+</programlisting>
+  <para>
+    It defines two virtual hosts with nearly identical configuration;
+    the only difference is the document root directories. To prevent
+    this duplication, we can use a <literal>let</literal>:
+  </para>
+  <programlisting language="bash">
+let
+  commonConfig =
+    { adminAddr = &quot;alice@example.org&quot;;
+      forceSSL = true;
+      enableACME = true;
+    };
+in
+{
+  services.httpd.virtualHosts =
+    { &quot;blog.example.org&quot; = (commonConfig // { documentRoot = &quot;/webroot/blog.example.org&quot;; });
+      &quot;wiki.example.org&quot; = (commonConfig // { documentRoot = &quot;/webroot/wiki.example.com&quot;; });
+    };
+}
+</programlisting>
+  <para>
+    The <literal>let commonConfig = ...</literal> defines a variable
+    named <literal>commonConfig</literal>. The <literal>//</literal>
+    operator merges two attribute sets, so the configuration of the
+    second virtual host is the set <literal>commonConfig</literal>
+    extended with the document root option.
+  </para>
+  <para>
+    You can write a <literal>let</literal> wherever an expression is
+    allowed. Thus, you also could have written:
+  </para>
+  <programlisting language="bash">
+{
+  services.httpd.virtualHosts =
+    let commonConfig = ...; in
+    { &quot;blog.example.org&quot; = (commonConfig // { ... })
+      &quot;wiki.example.org&quot; = (commonConfig // { ... })
+    };
+}
+</programlisting>
+  <para>
+    but not <literal>{ let commonConfig = ...; in ...; }</literal> since
+    attributes (as opposed to attribute values) are not expressions.
+  </para>
+  <para>
+    <emphasis role="strong">Functions</emphasis> provide another method
+    of abstraction. For instance, suppose that we want to generate lots
+    of different virtual hosts, all with identical configuration except
+    for the document root. This can be done as follows:
+  </para>
+  <programlisting language="bash">
+{
+  services.httpd.virtualHosts =
+    let
+      makeVirtualHost = webroot:
+        { documentRoot = webroot;
+          adminAddr = &quot;alice@example.org&quot;;
+          forceSSL = true;
+          enableACME = true;
+        };
+    in
+      { &quot;example.org&quot; = (makeVirtualHost &quot;/webroot/example.org&quot;);
+        &quot;example.com&quot; = (makeVirtualHost &quot;/webroot/example.com&quot;);
+        &quot;example.gov&quot; = (makeVirtualHost &quot;/webroot/example.gov&quot;);
+        &quot;example.nl&quot; = (makeVirtualHost &quot;/webroot/example.nl&quot;);
+      };
+}
+</programlisting>
+  <para>
+    Here, <literal>makeVirtualHost</literal> is a function that takes a
+    single argument <literal>webroot</literal> and returns the
+    configuration for a virtual host. That function is then called for
+    several names to produce the list of virtual host configurations.
+  </para>
+</section>
diff --git a/nixpkgs/nixos/doc/manual/from_md/contributing-to-this-manual.chapter.xml b/nixpkgs/nixos/doc/manual/from_md/contributing-to-this-manual.chapter.xml
new file mode 100644
index 000000000000..a9b0c6a5eefa
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/from_md/contributing-to-this-manual.chapter.xml
@@ -0,0 +1,22 @@
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="chap-contributing">
+  <title>Contributing to this manual</title>
+  <para>
+    The DocBook and CommonMark sources of NixOS’ manual are in the
+    <link xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/doc/manual">nixos/doc/manual</link>
+    subdirectory of the
+    <link xlink:href="https://github.com/NixOS/nixpkgs">Nixpkgs</link>
+    repository.
+  </para>
+  <para>
+    You can quickly check your edits with the following:
+  </para>
+  <programlisting>
+$ cd /path/to/nixpkgs
+$ ./nixos/doc/manual/md-to-db.sh
+$ nix-build nixos/release.nix -A manual.x86_64-linux
+</programlisting>
+  <para>
+    If the build succeeds, the manual will be in
+    <literal>./result/share/doc/nixos/index.html</literal>.
+  </para>
+</chapter>
diff --git a/nixpkgs/nixos/doc/manual/from_md/development/building-nixos.chapter.xml b/nixpkgs/nixos/doc/manual/from_md/development/building-nixos.chapter.xml
new file mode 100644
index 000000000000..ceb744447dab
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/from_md/development/building-nixos.chapter.xml
@@ -0,0 +1,33 @@
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-building-cd">
+  <title>Building Your Own NixOS CD</title>
+  <para>
+    Building a NixOS CD is as easy as configuring your own computer. The
+    idea is to use another module which will replace your
+    <literal>configuration.nix</literal> to configure the system that
+    would be installed on the CD.
+  </para>
+  <para>
+    Default CD/DVD configurations are available inside
+    <literal>nixos/modules/installer/cd-dvd</literal>
+  </para>
+  <programlisting>
+$ git clone https://github.com/NixOS/nixpkgs.git
+$ cd nixpkgs/nixos
+$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix default.nix
+</programlisting>
+  <para>
+    Before burning your CD/DVD, you can check the content of the image
+    by mounting anywhere like suggested by the following command:
+  </para>
+  <programlisting>
+# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso&lt;/screen&gt;
+</programlisting>
+  <para>
+    If you want to customize your NixOS CD in more detail, or generate
+    other kinds of images, you might want to check out
+    <link xlink:href="https://github.com/nix-community/nixos-generators">nixos-generators</link>.
+    This can also be a good starting point when you want to use Nix to
+    build a <quote>minimal</quote> image that doesn’t include a NixOS
+    installation.
+  </para>
+</chapter>
diff --git a/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
new file mode 100644
index 000000000000..070e7b142937
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -0,0 +1,236 @@
+<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="release-21.11">
+  <title>Release 21.11 (<quote>?</quote>, 2021.11/??)</title>
+  <para>
+    In addition to numerous new and upgraded packages, this release has
+    the following highlights:
+  </para>
+  <itemizedlist spacing="compact">
+    <listitem>
+      <para>
+        Support is planned until the end of April 2022, handing over to
+        22.05.
+      </para>
+    </listitem>
+  </itemizedlist>
+  <section xml:id="highlights">
+    <title>Highlights</title>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          PHP now defaults to PHP 8.0, updated from 7.4.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section xml:id="new-services">
+    <title>New Services</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          <link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
+          a GeoIP database updater from MaxMind. Available as
+          <link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://sr.ht">sourcehut</link>, a
+          collection of tools useful for software development. Available
+          as
+          <link xlink:href="options.html#opt-services.sourcehut.enable">services.sourcehut</link>.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section xml:id="backward-incompatibilities">
+    <title>Backward Incompatibilities</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          The <literal>staticjinja</literal> package has been upgraded
+          from 1.0.4 to 2.0.0
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>services.geoip-updater</literal> was broken and has
+          been replaced by
+          <link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          PHP 7.3 is no longer supported due to upstream not supporting
+          this version for the entire lifecycle of the 21.11 release.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Those making use of <literal>buildBazelPackage</literal> will
+          need to regenerate the fetch hashes (preferred), or set
+          <literal>fetchConfigured = false;</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          fsharp41 has been removed in preference to use the latest
+          dotnet-sdk
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The following F#-related packages have been removed for being
+          unmaintaned. Please use <literal>fetchNuGet</literal> for
+          specific packages.
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              ExtCore
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Fake
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Fantomas
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsCheck
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsCheck262
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsCheckNunit
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpAutoComplete
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpCompilerCodeDom
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpCompilerService
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpCompilerTools
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpCore302
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpCore3125
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpCore4001
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpCore4117
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpData
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpData225
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpDataSQLProvider
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FSharpFormatting
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsLexYacc
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsLexYacc706
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsLexYaccRuntime
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsPickler
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              FsUnit
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Projekt
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Suave
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              UnionArgParser
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              ExcelDnaRegistration
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              MathNetNumerics
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section xml:id="other-notable-changes">
+    <title>Other Notable Changes</title>
+    <para>
+    </para>
+  </section>
+</section>
diff --git a/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml b/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml
index 43f69b923d14..63d1d52b01b2 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml
@@ -84,12 +84,12 @@ nixpkgs https://nixos.org/channels/nixpkgs-unstable</screen>
    </para>
    <para>
     You'll need <literal>nixos-generate-config</literal> and
-    <literal>nixos-install</literal> and we'll throw in some man pages and
-    <literal>nixos-enter</literal> just in case you want to chroot into your
-    NixOS partition. They are installed by default on NixOS, but you don't have
+    <literal>nixos-install</literal>, but this also makes some man pages
+    and <literal>nixos-enter</literal> available, just in case you want to chroot into your
+    NixOS partition. NixOS installs these by default, but you don't have
     NixOS yet..
    </para>
-<screen><prompt>$ </prompt>nix-env -f '&lt;nixpkgs/nixos&gt;' --arg configuration {} -iA config.system.build.{nixos-generate-config,nixos-install,nixos-enter,manual.manpages}</screen>
+   <screen><prompt>$ </prompt>nix-env -f '&lt;nixpkgs>' -iA nixos-install-tools</screen>
   </listitem>
   <listitem>
    <note>
diff --git a/nixpkgs/nixos/doc/manual/installation/installing.xml b/nixpkgs/nixos/doc/manual/installation/installing.xml
index 02f6bd6bed4e..f03b9443d23b 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing.xml
@@ -46,6 +46,12 @@
    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>
 
diff --git a/nixpkgs/nixos/doc/manual/installation/upgrading.xml b/nixpkgs/nixos/doc/manual/installation/upgrading.xml
index 15ba5db9a37b..960d4fa9a436 100644
--- a/nixpkgs/nixos/doc/manual/installation/upgrading.xml
+++ b/nixpkgs/nixos/doc/manual/installation/upgrading.xml
@@ -14,7 +14,7 @@
     <para>
      <emphasis>Stable channels</emphasis>, such as
      <literal
-    xlink:href="https://nixos.org/channels/nixos-20.09">nixos-20.09</literal>.
+    xlink:href="https://nixos.org/channels/nixos-21.05">nixos-21.05</literal>.
      These only get conservative bug fixes and package upgrades. For instance,
      a channel update may cause the Linux kernel on your system to be upgraded
      from 4.19.34 to 4.19.38 (a minor bug fix), but not from
@@ -38,7 +38,7 @@
     <para>
      <emphasis>Small channels</emphasis>, such as
      <literal
-    xlink:href="https://nixos.org/channels/nixos-20.09-small">nixos-20.09-small</literal>
+    xlink:href="https://nixos.org/channels/nixos-21.05-small">nixos-21.05-small</literal>
      or
      <literal
     xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
@@ -63,8 +63,8 @@
  <para>
   When you first install NixOS, you’re automatically subscribed to the NixOS
   channel that corresponds to your installation source. For instance, if you
-  installed from a 20.09 ISO, you will be subscribed to the
-  <literal>nixos-20.09</literal> channel. To see which NixOS channel you’re
+  installed from a 21.05 ISO, you will be subscribed to the
+  <literal>nixos-21.05</literal> channel. To see which NixOS channel you’re
   subscribed to, run the following as root:
 <screen>
 <prompt># </prompt>nix-channel --list | grep nixos
@@ -75,13 +75,13 @@ nixos https://nixos.org/channels/nixos-unstable
 <prompt># </prompt>nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
 </screen>
   (Be sure to include the <literal>nixos</literal> parameter at the end.) For
-  instance, to use the NixOS 20.09 stable channel:
+  instance, to use the NixOS 21.05 stable channel:
 <screen>
-<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.09 nixos
+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
 </screen>
   If you have a server, you may want to use the “small” channel instead:
 <screen>
-<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.09-small nixos
+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
 </screen>
   And if you want to live on the bleeding edge:
 <screen>
@@ -132,7 +132,7 @@ nixos https://nixos.org/channels/nixos-unstable
    kernel, initrd or kernel modules.
    You can also specify a channel explicitly, e.g.
 <programlisting>
-<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-20.09;
+<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-21.05;
 </programlisting>
   </para>
  </section>
diff --git a/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml b/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml
index d0ff81c1dbb3..2e1069828c1b 100644
--- a/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml
@@ -91,6 +91,10 @@
     <option>--flake</option> <replaceable>flake-uri</replaceable>
    </arg>
 
+   <arg>
+    <option>--override-input</option> <replaceable>input-name</replaceable> <replaceable>flake-uri</replaceable>
+   </arg>
+
    <sbr />
 
    <arg>
@@ -402,10 +406,9 @@
     </term>
     <listitem>
      <para>
-      Equivalent to <option>--no-build-nix</option>
-      <option>--show-trace</option>. This option is useful if you call
-      <command>nixos-rebuild</command> frequently (e.g. if you’re hacking on
-      a NixOS module).
+      Equivalent to <option>--no-build-nix</option>. This option is
+      useful if you call <command>nixos-rebuild</command> frequently
+      (e.g. if you’re hacking on a NixOS module).
      </para>
     </listitem>
    </varlistentry>
diff --git a/nixpkgs/nixos/doc/manual/manual.xml b/nixpkgs/nixos/doc/manual/manual.xml
index db9e7313831d..158b3507a58e 100644
--- a/nixpkgs/nixos/doc/manual/manual.xml
+++ b/nixpkgs/nixos/doc/manual/manual.xml
@@ -19,6 +19,6 @@
   <xi:include href="./generated/options-db.xml"
                 xpointer="configuration-variable-list" />
  </appendix>
- <xi:include href="contributing-to-this-manual.xml" />
+ <xi:include href="./from_md/contributing-to-this-manual.chapter.xml" />
  <xi:include href="release-notes/release-notes.xml" />
 </book>
diff --git a/nixpkgs/nixos/doc/manual/md-to-db.sh b/nixpkgs/nixos/doc/manual/md-to-db.sh
new file mode 100755
index 000000000000..fc4be7da22ba
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/md-to-db.sh
@@ -0,0 +1,33 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -I nixpkgs=channel:nixpkgs-unstable -i bash -p pandoc
+
+# This script is temporarily needed while we transition the manual to
+# CommonMark. It converts the .md files in the regular manual folder
+# into DocBook files in the from_md folder.
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+pushd $DIR
+
+OUT="$DIR/from_md"
+mapfile -t MD_FILES < <(find . -type f -regex '.*\.md$')
+
+for mf in ${MD_FILES[*]}; do
+  if [ "${mf: -11}" == ".section.md" ]; then
+    mkdir -p $(dirname "$OUT/$mf")
+    pandoc "$mf" -t docbook \
+      --extract-media=media \
+      -f markdown+smart \
+    | cat  > "$OUT/${mf%".section.md"}.section.xml"
+  fi
+
+  if [ "${mf: -11}" == ".chapter.md" ]; then
+    mkdir -p $(dirname "$OUT/$mf")
+    pandoc "$mf" -t docbook \
+      --top-level-division=chapter \
+      --extract-media=media \
+      -f markdown+smart \
+    | cat  > "$OUT/${mf%".chapter.md"}.chapter.xml"
+  fi
+done
+
+popd
diff --git a/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml b/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml
index e083d51406c7..6d7899f6dcdb 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml
@@ -8,6 +8,7 @@
   This section lists the release notes for each stable version of NixOS and
   current unstable revision.
  </para>
+ <xi:include href="../from_md/release-notes/rl-2111.section.xml" />
  <xi:include href="rl-2105.xml" />
  <xi:include href="rl-2009.xml" />
  <xi:include href="rl-2003.xml" />
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml
index 4102fe206e19..0dae49c636f6 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-1909.xml
@@ -83,10 +83,10 @@
       like games.
       <itemizedlist>
       <para>This can be achieved with the following options which the desktop manager default enables, excluding <literal>games</literal>.</para>
-      <listitem><para><xref linkend="opt-services.gnome3.core-os-services.enable"/></para></listitem>
-      <listitem><para><xref linkend="opt-services.gnome3.core-shell.enable"/></para></listitem>
-      <listitem><para><xref linkend="opt-services.gnome3.core-utilities.enable"/></para></listitem>
-      <listitem><para><xref linkend="opt-services.gnome3.games.enable"/></para></listitem>
+      <listitem><para><option>services.gnome3.core-os-services.enable</option></para></listitem>
+      <listitem><para><option>services.gnome3.core-shell.enable</option></para></listitem>
+      <listitem><para><option>services.gnome3.core-utilities.enable</option></para></listitem>
+      <listitem><para><option>services.gnome3.games.enable</option></para></listitem>
       </itemizedlist>
       With these options we hope to give users finer grained control over their systems. Prior to this change you'd either have to manually
       disable options or use <option>environment.gnome3.excludePackages</option> which only excluded the optional applications.
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
index 5fbef88c4a5c..54abbb6e38e4 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
@@ -3,8 +3,11 @@
          xmlns:xi="http://www.w3.org/2001/XInclude"
          version="5.0"
          xml:id="sec-release-21.05">
- <title>Release 21.05 (“Okapi”, 2021.05/??)</title>
+ <title>Release 21.05 (“Okapi”, 2021.05/31)</title>
 
+ <para>
+  Support is planned until the end of December 2021, handing over to 21.11.
+ </para>
  <section xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -18,82 +21,81 @@
   </para>
 
   <itemizedlist>
+
    <listitem>
     <para>
-     Support is planned until the end of December 2021, handing over to 21.11.
-    </para>
-   </listitem>
-   <listitem>
-    <para>The default Linux kernel was updated to the 5.10 LTS series, coming from the 5.4 LTS series.</para>
-   </listitem>
-   <listitem>
-    <para>GNOME desktop environment was upgraded to 3.38, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.38/">release notes</link>.</para>
-   </listitem>
-   <listitem>
-    <para>
-     <link xlink:href="https://www.gnuradio.org/">GNURadio</link> 3.8 was
-     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
-     packaged, along with a rewrite to the Nix expressions, allowing users to
-     override the features upstream supports selecting to compile or not to.
-     Additionally, the attribute <code>gnuradio</code> and <code>gnuradio3_7</code>
-     now point to an externally wrapped by default derivations, that allow you to
-     also add `extraPythonPackages` to the Python interpreter used by GNURadio.
-     Missing environmental variables needed for operational GUI were also added
-     (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     <link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
-     <code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
-     function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
-     <code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
-     defined with <code>gnuradio.callPackage</code> and some packages that depend
-     on gnuradio are defined with this as well.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     <link xlink:href="https://www.privoxy.org/">Privoxy</link> has been updated
-     to version 3.0.32 (See <link xlink:href="https://lists.privoxy.org/pipermail/privoxy-announce/2021-February/000007.html">announcement</link>).
-     Compared to the previous release, Privoxy has gained support for HTTPS
-     inspection (still experimental), Brotli decompression, several new filters
-     and lots of bug fixes, including security ones. In addition, the package
-     is now built with compression and external filters support, which were
-     previously disabled.
-    </para>
-    <para>
-     Regarding the NixOS module, new options for HTTPS inspection have been added
-     and <option>services.privoxy.extraConfig</option> has been replaced by the new
-     <xref linkend="opt-services.privoxy.settings"/>
-     (See <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 0042</link>
-     for the motivation).
+     Core version changes:
     </para>
+    <itemizedlist>
+     <listitem>
+      <para>
+       gcc: 9.3.0 -> 10.3.0
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       glibc: 2.30 -> 2.32
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+        default linux: 5.4 -> 5.10, all supported kernels available
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+        mesa: 20.1.7 -> 21.0.1
+      </para>
+     </listitem>
+    </itemizedlist>
    </listitem>
    <listitem>
     <para>
-     Python optimizations were disabled again. Builds with optimizations enabled
-     are not reproducible. Optimizations can now be enabled with an option.
+     Desktop Environments:
     </para>
+    <itemizedlist>
+     <listitem>
+      <para>
+        GNOME: 3.36 -> 40, see its <link xlink:href="https://help.gnome.org/misc/release-notes/40.0/">release notes</link>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+        Plasma5: 5.18.5 -> 5.21.3
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+        kdeApplications: 20.08.1 -> 20.12.3
+      </para>
+     </listitem>
+      <listitem>
+       <para>
+         cinnamon: 4.6 -> 4.8.1
+      </para>
+     </listitem>
+    </itemizedlist>
    </listitem>
+
    <listitem>
     <para>
-     <link xlink:href="https://kodi.tv/">Kodi</link> has been updated to version 19.0 "Matrix". See
-     the <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link> for
-     further details.
+     Programming Languages and Frameworks:
     </para>
+    <itemizedlist>
+
+     <listitem>
+      <para>
+       Python optimizations were disabled again. Builds with optimizations enabled
+       are not reproducible. Optimizations can now be enabled with an option.
+      </para>
+     </listitem>
+
+    </itemizedlist>
    </listitem>
    <listitem>
-    <para>
-     The <option>services.packagekit.backend</option> option has been removed as
-     it only supported a single setting which would always be the default.
-     Instead new <link
-     xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC
-     0042</link> compliant <xref linkend="opt-services.packagekit.settings"/>
-     and <xref linkend="opt-services.packagekit.vendorSettings"/> options have
-     been introduced.
-    </para>
+    <para>The <package>linux_latest</package> kernel was updated to the 5.12 series. It currently is not officially supported for use with the zfs filesystem. If you use zfs, you should use a different kernel version (either the LTS kernel, or track a specific one). </para>
    </listitem>
+
   </itemizedlist>
  </section>
 
@@ -110,6 +112,20 @@
 
   <itemizedlist>
    <listitem>
+    <para>
+     <link xlink:href="https://www.gnuradio.org/">GNURadio</link> 3.8 was
+     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
+     packaged, along with a rewrite to the Nix expressions, allowing users to
+     override the features upstream supports selecting to compile or not to.
+     Additionally, the attribute <code>gnuradio</code> and <code>gnuradio3_7</code>
+     now point to an externally wrapped by default derivations, that allow you to
+     also add `extraPythonPackages` to the Python interpreter used by GNURadio.
+     Missing environmental variables needed for operational GUI were also added
+     (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
+    </para>
+   </listitem>
+
+   <listitem>
      <para>
        <link xlink:href="https://www.keycloak.org/">Keycloak</link>,
        an open source identity and access management server with
@@ -139,6 +155,11 @@
        section of the NixOS manual</link> for more information.
      </para>
    </listitem>
+   <listitem>
+     <para>
+       <xref linkend="opt-services.nebula.networks" /> <link xlink:href="https://github.com/slackhq/nebula">Nebula VPN</link>
+     </para>
+   </listitem>
   </itemizedlist>
 
  </section>
@@ -157,6 +178,10 @@
 
   <itemizedlist>
    <listitem>
+    <para>GNOME desktop environment was upgraded to 40, see the release notes for <link xlink:href="https://help.gnome.org/misc/release-notes/40.0/">40.0</link> and <link xlink:href="https://help.gnome.org/misc/release-notes/3.38/">3.38</link>. The <code>gnome3</code> attribute set has been renamed to <code>gnome</code> and so have been the NixOS options.</para>
+   </listitem>
+
+   <listitem>
     <para>
      If you are using <option>services.udev.extraRules</option> to assign
      custom names to network interfaces, this may stop working due to a change
@@ -172,6 +197,12 @@
      It was broken since the switch to cgroups-v2.
     </para>
    </listitem>
+   <listitem>
+    <para>
+      The <literal>linuxPackages.ati_drivers_x11</literal> kernel modules have been removed.
+     The drivers only supported kernels prior to 4.2, and thus have become obsolete.
+    </para>
+   </listitem>
     <listitem>
       <para>
         The <literal>systemConfig</literal> kernel parameter is no longer added to boot loader entries. It has been unused since September 2010, but if do have a system generation from that era, you will now be unable to boot into them.
@@ -265,6 +296,24 @@
    </listitem>
    <listitem>
      <para>
+       The <literal>mediatomb</literal> service is
+       now using by default the new and maintained fork
+       <literal>gerbera</literal> package instead of the unmaintained
+       <literal>mediatomb</literal> package. If you want to keep the old
+       behavior, you must declare it with:
+       <programlisting>
+       services.mediatomb.package = pkgs.mediatomb;
+       </programlisting>
+       One new option <literal>openFirewall</literal> has been introduced which
+       defaults to false. If you relied on the service declaration to add the
+       firewall rules itself before, you should now declare it with:
+       <programlisting>
+       services.mediatomb.openFirewall = true;
+       </programlisting>
+     </para>
+   </listitem>
+   <listitem>
+     <para>
        xfsprogs was update from 4.19 to 5.11. It now enables reflink support by default on filesystem creation.
        Support for reflinks was added with an experimental status to kernel 4.9 and deemed stable in kernel 4.16.
        If you want to be able to mount XFS filesystems created with this release of xfsprogs on kernel releases older than those, you need to format them
@@ -324,7 +373,18 @@
    </listitem>
    <listitem>
     <para>
-      <literal>vim</literal> switched to Python 3, dropping all Python 2 support.
+      <literal>vim</literal> and <literal>neovim</literal> switched to Python 3, dropping all Python 2 support.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <link linkend="opt-networking.wireguard.interfaces">networking.wireguard.interfaces.&lt;name&gt;.generatePrivateKeyFile</link>,
+     which is off by default, had a <literal>chmod</literal> race condition
+     fixed. As an aside, the parent directory's permissions were widened,
+     and the key files were made owner-writable.
+     This only affects newly created keys.
+     However, if the exact permissions are important for your setup, read
+     <link xlink:href="https://github.com/NixOS/nixpkgs/pull/121294">#121294</link>.
     </para>
    </listitem>
    <listitem>
@@ -344,6 +404,15 @@
    </listitem>
    <listitem>
     <para>
+     The WireGuard module gained a new option
+     <option>networking.wireguard.interfaces.&lt;name&gt;.peers.*.dynamicEndpointRefreshSeconds</option>
+     that implements refreshing the IP of DNS-based endpoints periodically
+     (which WireGuard itself
+     <link xlink:href="https://lists.zx2c4.com/pipermail/wireguard/2017-November/002028.html">cannot do</link>).
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      MariaDB has been updated to 10.5.
      Before you upgrade, it would be best to take a backup of your database and read
      <link xlink:href="https://mariadb.com/kb/en/upgrading-from-mariadb-104-to-mariadb-105/#incompatible-changes-between-104-and-105">
@@ -374,7 +443,7 @@
     </para>
     <programlisting>
       TMPDIR=$(mktemp -d)
-      slaptest -f /path/to/slapd.conf $TMPDIR
+      slaptest -f /path/to/slapd.conf -F $TMPDIR
       slapcat -F $TMPDIR -n0 -H 'ldap:///???(!(objectClass=olcSchemaConfig))'
     </programlisting>
     <para>
@@ -519,7 +588,7 @@ http://some.json-exporter.host:7979/probe?target=https://example.com/some/json/e
        <programlisting>
 self: super:
 {
- mpi = super.mpich;
+  mpi = super.mpich;
 }
        </programlisting>
      </para>
@@ -682,10 +751,56 @@ environment.systemPackages = [
    </listitem>
    <listitem>
      <para>
+       The <package>kbdKeymaps</package> package was removed since dvp and neo
+       are now included in <package>kbd</package>.
+
+       If you want to use the Programmer Dvorak Keyboard Layout, you have to use
+       <literal>dvorak-programmer</literal> in <option>console.keyMap</option>
+       now instead of <literal>dvp</literal>.
+       In <option>services.xserver.xkbVariant</option> it's still <literal>dvp</literal>.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
        The <package>babeld</package> service is now being run as an unprivileged user. To achieve that the module configures
        <literal>skip-kernel-setup true</literal> and takes care of setting forwarding and rp_filter sysctls by itself as well
        as for each interface in <varname>services.babeld.interfaces</varname>.
      </para>
+    </listitem>
+   <listitem>
+     <para>
+      The <option>services.zigbee2mqtt.config</option> option has been renamed to <option>services.zigbee2mqtt.settings</option> and
+      now follows <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 0042</link>.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <package>yadm</package> dotfile manager has been updated from 2.x to 3.x, which has new (XDG) default locations for some data/state files. Most yadm commands will fail and print a legacy path warning (which describes how to upgrade/migrate your repository). If you have scripts, daemons, scheduled jobs, shell profiles, etc. that invoke yadm, expect them to fail or misbehave until you perform this migration and prepare accordingly.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Instead of determining <option>services.radicale.package</option>
+     automatically based on <option>system.stateVersion</option>, the latest
+     version is always used because old versions are not officially supported.
+    </para>
+    <para>
+     Furthermore, Radicale's systemd unit was hardened which might break some
+     deployments.  In particular, a non-default
+     <literal>filesystem_folder</literal> has to be added to
+     <option>systemd.services.radicale.serviceConfig.ReadWritePaths</option> if
+     the deprecated <option>services.radicale.config</option> is used.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     In the <option>security.acme</option> module, use of <literal>--reuse-key</literal>
+     parameter for Lego has been removed. It was introduced for HKPK, but this security
+     feature is now deprecated. It is a better security practice to rotate key pairs
+     instead of always keeping the same. If you need to keep this parameter, you can add
+     it back using <literal>extraLegoRenewFlags</literal> as an option for the
+     appropriate certificate.
+    </para>
    </listitem>
   </itemizedlist>
  </section>
@@ -706,6 +821,85 @@ environment.systemPackages = [
      for details.
     </para>
    </listitem>
+
+   <listitem>
+    <para>
+     <link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
+     <code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
+     function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
+     <code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
+     defined with <code>gnuradio.callPackage</code> and some packages that depend
+     on gnuradio are defined with this as well.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <link xlink:href="https://www.privoxy.org/">Privoxy</link> has been updated
+     to version 3.0.32 (See <link xlink:href="https://lists.privoxy.org/pipermail/privoxy-announce/2021-February/000007.html">announcement</link>).
+     Compared to the previous release, Privoxy has gained support for HTTPS
+     inspection (still experimental), Brotli decompression, several new filters
+     and lots of bug fixes, including security ones. In addition, the package
+     is now built with compression and external filters support, which were
+     previously disabled.
+    </para>
+    <para>
+     Regarding the NixOS module, new options for HTTPS inspection have been added
+     and <option>services.privoxy.extraConfig</option> has been replaced by the new
+     <xref linkend="opt-services.privoxy.settings"/>
+     (See <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 0042</link>
+     for the motivation).
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <link xlink:href="https://kodi.tv/">Kodi</link> has been updated to version 19.1 "Matrix". See
+     the <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link> for
+     further details.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <option>services.packagekit.backend</option> option has been removed as
+     it only supported a single setting which would always be the default.
+     Instead new <link
+     xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC
+     0042</link> compliant <xref linkend="opt-services.packagekit.settings"/>
+     and <xref linkend="opt-services.packagekit.vendorSettings"/> options have
+     been introduced.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      <link xlink:href="https://nginx.org">Nginx</link> has been updated to stable version 1.20.0.
+      Now nginx uses the zlib-ng library by default.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     KDE Gear (formerly KDE Applications) is upgraded to 21.04, see its
+     <link xlink:href="https://kde.org/announcements/gear/21.04/">release
+     notes</link> for details.
+    </para>
+    <para>
+     The <code>kdeApplications</code> package set is now <code>kdeGear</code>,
+     in keeping with the new name. The old name remains for compatibility, but
+     it is deprecated.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <link xlink:href="https://libreswan.org/">Libreswan</link> has been updated
+     to version 4.4. The package now includes example configurations and manual
+     pages by default. The NixOS module has been changed to use the upstream
+     systemd units and write the configuration in the <literal>/etc/ipsec.d/
+     </literal> directory. In addition, two new options have been added to
+     specify connection policies
+     (<xref linkend="opt-services.libreswan.policies"/>)
+     and disable send/receive redirects
+     (<xref linkend="opt-services.libreswan.disableRedirects"/>).
+    </para>
+   </listitem>
+
    <listitem>
     <para>
      The Mailman NixOS module (<literal>services.mailman</literal>) has a new
@@ -747,6 +941,29 @@ environment.systemPackages = [
     </para>
    </listitem>
    <listitem>
+     <para>
+       The <literal>mediatomb</literal> service
+       declares new options. It also adapts existing options so the
+       configuration generation is now lazy. The existing option
+       <literal>customCfg</literal> (defaults to false), when enabled, stops
+       the service configuration generation completely. It then expects the
+       users to provide their own correct configuration at the right location
+       (whereas the configuration was generated and not used at all before).
+       The new option <literal>transcodingOption</literal> (defaults to no)
+       allows a generated configuration. It makes the mediatomb service pulls
+       the necessary runtime dependencies in the nix store (whereas it was
+       generated with hardcoded values before). The new option
+       <literal>mediaDirectories</literal> allows the users to declare autoscan
+       media directories from their nixos configuration:
+       <programlisting>
+       services.mediatomb.mediaDirectories = [
+         { path = "/var/lib/mediatomb/pictures"; recursive = false; hidden-files = false; }
+         { path = "/var/lib/mediatomb/audio"; recursive = true; hidden-files = false; }
+       ];
+       </programlisting>
+     </para>
+   </listitem>
+   <listitem>
     <para>
      The Unbound DNS resolver service (<literal>services.unbound</literal>) has been refactored to allow reloading, control sockets and to fix startup ordering issues.
     </para>
@@ -801,6 +1018,23 @@ environment.systemPackages = [
      default in the CLI tooling which in turn enables us to use
      <literal>unbound-control</literal> without passing a custom configuration location.
     </para>
+
+    <para>
+     The module has also been reworked to be <link
+     xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC
+     0042</link> compliant. As such,
+     <option>sevices.unbound.extraConfig</option> has been removed and replaced
+     by <xref linkend="opt-services.unbound.settings"/>. <option>services.unbound.interfaces</option>
+     has been renamed to <option>services.unbound.settings.server.interface</option>.
+    </para>
+
+    <para>
+     <option>services.unbound.forwardAddresses</option> and
+     <option>services.unbound.allowedAccess</option> have also been changed to
+     use the new settings interface. You can follow the instructions when
+     executing <literal>nixos-rebuild</literal> to upgrade your configuration to
+     use the new interface.
+    </para>
    </listitem>
    <listitem>
     <para>
@@ -827,7 +1061,8 @@ environment.systemPackages = [
      PulseAudio was upgraded to 14.0, with changes to the handling of default sinks.
      See its <link xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/14.0/">release notes</link>.
     </para>
-
+   </listitem>
+   <listitem>
     <para>
      GNOME users may wish to delete their <literal>~/.config/pulse</literal> due to the changes to stream routing
      logic. See <link xlink:href="https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832">PulseAudio bug 832</link>
@@ -865,8 +1100,25 @@ environment.systemPackages = [
     </para>
    </listitem>
    <listitem>
+    <para>
+     The <literal>security.apparmor</literal> module,
+     for the <link xlink:href="https://gitlab.com/apparmor/apparmor/-/wikis/Documentation">AppArmor</link>
+     Mandatory Access Control system,
+     has been substantialy improved along with related tools,
+     so that module maintainers can now more easily write AppArmor profiles for NixOS.
+     The most notable change on the user-side is the new option <xref linkend="opt-security.apparmor.policies"/>,
+     replacing the previous <literal>profiles</literal> option
+     to provide a way to disable a profile
+     and to select whether to confine in enforce mode (default)
+     or in complain mode (see <literal>journalctl -b --grep apparmor</literal>).
+     Security-minded users may also want to enable <xref linkend="opt-security.apparmor.killUnconfinedConfinables"/>,
+     at the cost of having some of their processes killed
+     when updating to a NixOS version introducing new AppArmor profiles.
+    </para>
+   </listitem>
+   <listitem>
      <para>
-       The GNOME desktop manager once again installs <package>gnome3.epiphany</package> by default.
+       The GNOME desktop manager once again installs <package>gnome.epiphany</package> by default.
      </para>
    </listitem>
    <listitem>
@@ -972,6 +1224,43 @@ environment.systemPackages = [
      PostgreSQL 9.5 is scheduled EOL during the 21.05 life cycle and has been removed.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     <link xlink:href="https://www.xfce.org/">Xfce4</link> relies on
+     GIO/GVfs for userspace virtual filesystem access in applications
+     like <link xlink:href="https://docs.xfce.org/xfce/thunar/">thunar</link> and
+     <link xlink:href="https://docs.xfce.org/apps/gigolo/">gigolo</link>.
+     For that to work, the gvfs nixos service is enabled by default,
+     and it can be configured with the specific package that provides
+     GVfs. Until now Xfce4 was setting it to use a lighter version of
+     GVfs (without support for samba). To avoid conflicts with other
+     desktop environments this setting has been dropped. Users that
+     still want it should add the following to their system
+     configuration:
+     <programlisting>
+<xref linkend="opt-services.gvfs.package" /> = pkgs.gvfs.override { samba = null; };
+     </programlisting>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The newly enabled <literal>systemd-pstore.service</literal> now automatically evacuates crashdumps and panic logs from the persistent storage to <literal>/var/lib/systemd/pstore</literal>.
+     This prevents NVRAM from filling up, which ensures the latest diagnostic data is always stored and alleviates problems with writing new boot configurations.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Nixpkgs now contains <link xlink:href="https://github.com/NixOS/nixpkgs/pull/118232">automatically packaged GNOME Shell extensions</link> from the <link xlink:href="https://extensions.gnome.org/">GNOME Extensions</link> portal. You can find them, filed by their UUID, under <literal>gnome38Extensions</literal> attribute for GNOME 3.38 and under <literal>gnome40Extensions</literal> for GNOME 40. Finally, the <literal>gnomeExtensions</literal> attribute contains extensions for the latest GNOME Shell version in Nixpkgs, listed under a more human-friendly name. The unqualified attribute scope also contains manually packaged extensions. Note that the automatically packaged extensions are provided for convenience and are not checked or guaranteed to work.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Erlang/OTP versions older than R21 got dropped. We also dropped the cuter package, as it was purely an example of how to build a package.
+     We also dropped <literal>lfe_1_2</literal> as it could not build with R21+.
+     Moving forward, we expect to only support 3 yearly releases of OTP.
+    </para>
+   </listitem>
+
   </itemizedlist>
  </section>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md b/nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md
new file mode 100644
index 000000000000..c1fde5a032b4
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -0,0 +1,67 @@
+# Release 21.11 (“?”, 2021.11/??) {#release-21.11}
+
+In addition to numerous new and upgraded packages, this release has the following highlights:
+
+* Support is planned until the end of April 2022, handing over to 22.05.
+
+## Highlights
+
+* PHP now defaults to PHP 8.0, updated from 7.4.
+
+## New Services
+
+* [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP
+  database updater from MaxMind. Available as
+  [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
+
+* [sourcehut](https://sr.ht), a collection of tools useful for software
+  development. Available as
+  [services.sourcehut](options.html#opt-services.sourcehut.enable).
+
+## Backward Incompatibilities
+
+* The `staticjinja` package has been upgraded from 1.0.4 to 2.0.0
+
+* `services.geoip-updater` was broken and has been replaced by
+  [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
+
+* PHP 7.3 is no longer supported due to upstream not supporting this
+  version for the entire lifecycle of the 21.11 release.
+
+* Those making use of `buildBazelPackage` will need to regenerate the fetch
+  hashes (preferred), or set `fetchConfigured = false;`.
+
+* fsharp41 has been removed in preference to use the latest dotnet-sdk
+
+* The following F#-related packages have been removed for being unmaintaned.
+  Please use `fetchNuGet` for specific packages.
+  - ExtCore
+  - Fake
+  - Fantomas
+  - FsCheck
+  - FsCheck262
+  - FsCheckNunit
+  - FSharpAutoComplete
+  - FSharpCompilerCodeDom
+  - FSharpCompilerService
+  - FSharpCompilerTools
+  - FSharpCore302
+  - FSharpCore3125
+  - FSharpCore4001
+  - FSharpCore4117
+  - FSharpData
+  - FSharpData225
+  - FSharpDataSQLProvider
+  - FSharpFormatting
+  - FsLexYacc
+  - FsLexYacc706
+  - FsLexYaccRuntime
+  - FsPickler
+  - FsUnit
+  - Projekt
+  - Suave
+  - UnionArgParser
+  - ExcelDnaRegistration
+  - MathNetNumerics
+
+## Other Notable Changes
diff --git a/nixpkgs/nixos/doc/manual/shell.nix b/nixpkgs/nixos/doc/manual/shell.nix
index cc3609d750e0..e5ec9b8f97f7 100644
--- a/nixpkgs/nixos/doc/manual/shell.nix
+++ b/nixpkgs/nixos/doc/manual/shell.nix
@@ -4,5 +4,5 @@ in
 pkgs.mkShell {
   name = "nixos-manual";
 
-  buildInputs = with pkgs; [ xmlformat jing xmloscopy ruby ];
+  packages = with pkgs; [ xmlformat jing xmloscopy ruby ];
 }
diff --git a/nixpkgs/nixos/lib/build-vms.nix b/nixpkgs/nixos/lib/build-vms.nix
index ebbb0296bef6..064e44f643b2 100644
--- a/nixpkgs/nixos/lib/build-vms.nix
+++ b/nixpkgs/nixos/lib/build-vms.nix
@@ -36,6 +36,13 @@ rec {
         [ ../modules/virtualisation/qemu-vm.nix
           ../modules/testing/test-instrumentation.nix # !!! should only get added for automated test runs
           { key = "no-manual"; documentation.nixos.enable = false; }
+          { key = "no-revision";
+            # Make the revision metadata constant, in order to avoid needless retesting.
+            # The human version (e.g. 21.05-pre) is left as is, because it is useful
+            # for external modules that test with e.g. nixosTest and rely on that
+            # version number.
+            config.system.nixos.revision = "constant-nixos-revision";
+          }
           { key = "nodes"; _module.args.nodes = nodes; }
         ] ++ optional minimal ../modules/testing/minimal-kernel.nix;
     };
diff --git a/nixpkgs/nixos/lib/make-ext4-fs.nix b/nixpkgs/nixos/lib/make-ext4-fs.nix
index 33dbc8f5ec46..416beeb32f2f 100644
--- a/nixpkgs/nixos/lib/make-ext4-fs.nix
+++ b/nixpkgs/nixos/lib/make-ext4-fs.nix
@@ -74,11 +74,9 @@ pkgs.stdenv.mkDerivation {
         return 1
       fi
 
-      echo "Resizing to minimum allowed size"
-      resize2fs -M $img
-
-      # And a final fsck, because of the previous truncating.
-      fsck.ext4 -n -f $img
+      # We may want to shrink the file system and resize the image to
+      # get rid of the unnecessary slack here--but see
+      # https://github.com/NixOS/nixpkgs/issues/125121 for caveats.
 
       if [ ${builtins.toString compressImage} ]; then
         echo "Compressing image"
diff --git a/nixpkgs/nixos/lib/test-driver/test-driver.py b/nixpkgs/nixos/lib/test-driver/test-driver.py
index 7800a49e4107..9c97ce383437 100644
--- a/nixpkgs/nixos/lib/test-driver/test-driver.py
+++ b/nixpkgs/nixos/lib/test-driver/test-driver.py
@@ -3,6 +3,7 @@ from contextlib import contextmanager, _GeneratorContextManager
 from queue import Queue, Empty
 from typing import Tuple, Any, Callable, Dict, Iterator, Optional, List, Iterable
 from xml.sax.saxutils import XMLGenerator
+from colorama import Style
 import queue
 import io
 import _thread
@@ -20,6 +21,7 @@ import shutil
 import socket
 import subprocess
 import sys
+import telnetlib
 import tempfile
 import time
 import traceback
@@ -127,18 +129,18 @@ def create_vlan(vlan_nr: str) -> Tuple[str, str, "subprocess.Popen[bytes]", Any]
     return (vlan_nr, vde_socket, vde_process, fd)
 
 
-def retry(fn: Callable) -> None:
+def retry(fn: Callable, timeout: int = 900) -> None:
     """Call the given function repeatedly, with 1 second intervals,
     until it returns True or a timeout is reached.
     """
 
-    for _ in range(900):
+    for _ in range(timeout):
         if fn(False):
             return
         time.sleep(1)
 
     if not fn(True):
-        raise Exception("action timed out")
+        raise Exception(f"action timed out after {timeout} seconds")
 
 
 class Logger:
@@ -151,6 +153,8 @@ class Logger:
         self.xml.startDocument()
         self.xml.startElement("logfile", attrs={})
 
+        self._print_serial_logs = True
+
     def close(self) -> None:
         self.xml.endElement("logfile")
         self.xml.endDocument()
@@ -174,15 +178,21 @@ class Logger:
         self.drain_log_queue()
         self.log_line(message, attributes)
 
-    def enqueue(self, message: Dict[str, str]) -> None:
-        self.queue.put(message)
+    def log_serial(self, message: str, machine: str) -> None:
+        self.enqueue({"msg": message, "machine": machine, "type": "serial"})
+        if self._print_serial_logs:
+            eprint(Style.DIM + "{} # {}".format(machine, message) + Style.RESET_ALL)
+
+    def enqueue(self, item: Dict[str, str]) -> None:
+        self.queue.put(item)
 
     def drain_log_queue(self) -> None:
         try:
             while True:
                 item = self.queue.get_nowait()
-                attributes = {"machine": item["machine"], "type": "serial"}
-                self.log_line(self.sanitise(item["msg"]), attributes)
+                msg = self.sanitise(item["msg"])
+                del item["msg"]
+                self.log_line(msg, item)
         except Empty:
             pass
 
@@ -307,8 +317,9 @@ class Machine:
             start_command += "-cdrom " + args["cdrom"] + " "
 
         if "usb" in args:
+            # https://github.com/qemu/qemu/blob/master/docs/usb2.txt
             start_command += (
-                "-device piix3-usb-uhci -drive "
+                "-device usb-ehci -drive "
                 + "id=usbdisk,file="
                 + args["usb"]
                 + ",if=none,readonly "
@@ -327,6 +338,9 @@ class Machine:
     def log(self, msg: str) -> None:
         self.logger.log(msg, {"machine": self.name})
 
+    def log_serial(self, msg: str) -> None:
+        self.logger.log_serial(msg, self.name)
+
     def nested(self, msg: str, attrs: Dict[str, str] = {}) -> _GeneratorContextManager:
         my_attrs = {"machine": self.name}
         my_attrs.update(attrs)
@@ -427,7 +441,7 @@ class Machine:
     def execute(self, command: str) -> Tuple[int, str]:
         self.connect()
 
-        out_command = "( {} ); echo '|!=EOF' $?\n".format(command)
+        out_command = "( set -euo pipefail; {} ); echo '|!=EOF' $?\n".format(command)
         self.shell.send(out_command.encode())
 
         output = ""
@@ -442,6 +456,16 @@ class Machine:
                 return (status_code, output)
             output += chunk
 
+    def shell_interact(self) -> None:
+        """Allows you to interact with the guest shell
+
+        Should only be used during test development, not in the production test."""
+        self.connect()
+        self.log("Terminal is ready (there is no prompt):")
+        telnet = telnetlib.Telnet()
+        telnet.sock = self.shell  # type: ignore
+        telnet.interact()
+
     def succeed(self, *commands: str) -> str:
         """Execute each command and check that it succeeds."""
         output = ""
@@ -735,6 +759,7 @@ class Machine:
         shell_path = os.path.join(self.state_dir, "shell")
         self.shell_socket = create_socket(shell_path)
 
+        display_available = any(x in os.environ for x in ["DISPLAY", "WAYLAND_DISPLAY"])
         qemu_options = (
             " ".join(
                 [
@@ -744,7 +769,7 @@ class Machine:
                     "-device virtio-serial",
                     "-device virtconsole,chardev=shell",
                     "-device virtio-rng-pci",
-                    "-serial stdio" if "DISPLAY" in os.environ else "-nographic",
+                    "-serial stdio" if display_available else "-nographic",
                 ]
             )
             + " "
@@ -783,8 +808,7 @@ class Machine:
                 # Ignore undecodable bytes that may occur in boot menus
                 line = _line.decode(errors="ignore").replace("\r", "").rstrip()
                 self.last_lines.put(line)
-                eprint("{} # {}".format(self.name, line))
-                self.logger.enqueue({"msg": line, "machine": self.name})
+                self.log_serial(line)
 
         _thread.start_new_thread(process_serial_output, ())
 
@@ -883,7 +907,6 @@ class Machine:
 def create_machine(args: Dict[str, Any]) -> Machine:
     global log
     args["log"] = log
-    args["redirectSerial"] = os.environ.get("USE_SERIAL", "0") == "1"
     return Machine(args)
 
 
@@ -926,6 +949,16 @@ def run_tests() -> None:
             machine.execute("sync")
 
 
+def serial_stdout_on() -> None:
+    global log
+    log._print_serial_logs = True
+
+
+def serial_stdout_off() -> None:
+    global log
+    log._print_serial_logs = False
+
+
 @contextmanager
 def subtest(name: str) -> Iterator[None]:
     with log.nested(name):
diff --git a/nixpkgs/nixos/lib/testing-python.nix b/nixpkgs/nixos/lib/testing-python.nix
index 6192be1cd053..715482e87304 100644
--- a/nixpkgs/nixos/lib/testing-python.nix
+++ b/nixpkgs/nixos/lib/testing-python.nix
@@ -25,13 +25,21 @@ rec {
       name = "nixos-test-driver";
 
       nativeBuildInputs = [ makeWrapper ];
-      buildInputs = [ (python3.withPackages (p: [ p.ptpython ])) ];
+      buildInputs = [ (python3.withPackages (p: [ p.ptpython p.colorama ])) ];
       checkInputs = with python3Packages; [ pylint black mypy ];
 
       dontUnpack = true;
 
       preferLocalBuild = true;
 
+      buildPhase = ''
+        python <<EOF
+        from pydoc import importfile
+        with open('driver-exports', 'w') as fp:
+          fp.write(','.join(dir(importfile('${testDriverScript}'))))
+        EOF
+      '';
+
       doCheck = true;
       checkPhase = ''
         mypy --disallow-untyped-defs \
@@ -50,12 +58,19 @@ rec {
 
           wrapProgram $out/bin/nixos-test-driver \
             --prefix PATH : "${lib.makeBinPath [ qemu_pkg vde2 netpbm coreutils ]}" \
+
+          install -m 0644 -vD driver-exports $out/nix-support/driver-exports
         '';
     };
 
   # Run an automated test suite in the given virtual network.
-  # `driver' is the script that runs the network.
-  runTests = driver:
+  runTests = {
+    # the script that runs the network
+    driver,
+    # a source position in the format of builtins.unsafeGetAttrPos
+    # for meta.position
+    pos,
+  }:
     stdenv.mkDerivation {
       name = "vm-test-run-${driver.testName}";
 
@@ -68,7 +83,11 @@ rec {
           LOGFILE=/dev/null tests='exec(os.environ["testScript"])' ${driver}/bin/nixos-test-driver
         '';
 
-      passthru = driver.passthru;
+      passthru = driver.passthru // {
+        inherit driver;
+      };
+
+      inherit pos;
     };
 
 
@@ -79,6 +98,11 @@ rec {
       # Skip linting (mainly intended for faster dev cycles)
     , skipLint ? false
     , passthru ? {}
+    , # For meta.position
+      pos ? # position used in error messages and for meta.position
+        (if t.meta.description or null != null
+          then builtins.unsafeGetAttrPos "description" t.meta
+          else builtins.unsafeGetAttrPos "testScript" t)
     , ...
     } @ t:
     let
@@ -106,7 +130,13 @@ rec {
               {
                 virtualisation.qemu.package = qemu_pkg;
               }
-            );
+            ) ++ [(
+              {
+                # Ensure we do not use aliases. Ideally this is only set
+                # when the test framework is used by Nixpkgs NixOS tests.
+                nixpkgs.config.allowAliases = false;
+              }
+            )];
           };
 
           # FIXME: get this pkg from the module system
@@ -131,12 +161,10 @@ rec {
                   "it's currently ${toString testNameLen} characters long.")
             else
               "nixos-test-driver-${name}";
-
-          warn = if skipLint then lib.warn "Linting is disabled!" else lib.id;
         in
-        warn (runCommand testDriverName
+        lib.warnIf skipLint "Linting is disabled" (runCommand testDriverName
           {
-            buildInputs = [ makeWrapper ];
+            nativeBuildInputs = [ makeWrapper ];
             testScript = testScript';
             preferLocalBuild = true;
             testName = name;
@@ -149,7 +177,10 @@ rec {
 
             echo -n "$testScript" > $out/test-script
             ${lib.optionalString (!skipLint) ''
-              ${python3Packages.black}/bin/black --check --diff $out/test-script
+              PYFLAKES_BUILTINS="$(
+                echo -n ${lib.escapeShellArg (lib.concatStringsSep "," nodeHostNames)},
+                < ${lib.escapeShellArg "${testDriver}/nix-support/driver-exports"}
+              )" ${python3Packages.pyflakes}/bin/pyflakes $out/test-script
             ''}
 
             ln -s ${testDriver}/bin/nixos-test-driver $out/bin/
@@ -165,8 +196,7 @@ rec {
               --add-flags "''${vms[*]}" \
               ${lib.optionalString enableOCR "--prefix PATH : '${ocrProg}/bin'"} \
               --set tests 'start_all(); join_all();' \
-              --set VLANS '${toString vlans}' \
-              ${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"}
+              --set VLANS '${toString vlans}'
           ''); # "
 
       passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
@@ -176,13 +206,15 @@ rec {
       driver = mkDriver null;
       driverInteractive = mkDriver pkgs.qemu;
 
-      test = passMeta (runTests driver);
+      test = passMeta (runTests { inherit driver pos; });
 
       nodeNames = builtins.attrNames driver.nodes;
       invalidNodeNames = lib.filter
         (node: builtins.match "^[A-z_]([A-z0-9_]+)?$" node == null)
         nodeNames;
 
+      nodeHostNames = map (c: c.config.system.name) (lib.attrValues driver.nodes);
+
     in
     if lib.length invalidNodeNames > 0 then
       throw ''
diff --git a/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
index 653744986d13..677aff4421e0 100644
--- a/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
+++ b/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
@@ -41,7 +41,7 @@ in {
 
     sizeMB = mkOption {
       type = with types; either (enum [ "auto" ]) int;
-      default = "auto";
+      default = if config.ec2.hvm then 2048 else 8192;
       example = 8192;
       description = "The size in MB of the image";
     };
diff --git a/nixpkgs/nixos/modules/config/console.nix b/nixpkgs/nixos/modules/config/console.nix
index 84ad76246fdb..5be7f06c05d9 100644
--- a/nixpkgs/nixos/modules/config/console.nix
+++ b/nixpkgs/nixos/modules/config/console.nix
@@ -82,8 +82,7 @@ in
 
     packages = mkOption {
       type = types.listOf types.package;
-      default = with pkgs.kbdKeymaps; [ dvp neo ];
-      defaultText = "with pkgs.kbdKeymaps; [ dvp neo ]";
+      default = [ ];
       description = ''
         List of additional packages that provide console fonts, keymaps and
         other resources for virtual consoles use.
diff --git a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
index 6e7b8c4b88a2..72827c5abaae 100644
--- a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
@@ -448,6 +448,40 @@ in
     (mkIf cfg.enable {
       environment.systemPackages    = [ pkgs.fontconfig ];
       environment.etc.fonts.source  = "${fontconfigEtc}/etc/fonts/";
+      security.apparmor.includes."abstractions/fonts" = ''
+        # fonts.conf
+        r ${pkg.out}/etc/fonts/fonts.conf,
+
+        # fontconfig default config files
+        r ${pkg.out}/etc/fonts/conf.d/*.conf,
+
+        # 00-nixos-cache.conf
+        r ${cacheConf},
+
+        # 10-nixos-rendering.conf
+        r ${renderConf},
+
+        # 50-user.conf
+        ${optionalString cfg.includeUserConf ''
+        r ${pkg.out}/etc/fonts/conf.d.bak/50-user.conf,
+        ''}
+
+        # local.conf (indirect priority 51)
+        ${optionalString (cfg.localConf != "") ''
+        r ${localConf},
+        ''}
+
+        # 52-nixos-default-fonts.conf
+        r ${defaultFontsConf},
+
+        # 53-no-bitmaps.conf
+        r ${rejectBitmaps},
+
+        ${optionalString (!cfg.allowType1) ''
+        # 53-nixos-reject-type1.conf
+        r ${rejectType1},
+        ''}
+      '';
     })
     (mkIf cfg.enable {
       fonts.fontconfig.confPackages = [ confPkg ];
diff --git a/nixpkgs/nixos/modules/config/malloc.nix b/nixpkgs/nixos/modules/config/malloc.nix
index a3eb55d8a42e..fc35993b5a81 100644
--- a/nixpkgs/nixos/modules/config/malloc.nix
+++ b/nixpkgs/nixos/modules/config/malloc.nix
@@ -87,5 +87,12 @@ in
     environment.etc."ld-nix.so.preload".text = ''
       ${providerLibPath}
     '';
+    security.apparmor.includes = {
+      "abstractions/base" = ''
+        r /etc/ld-nix.so.preload,
+        r ${config.environment.etc."ld-nix.so.preload".source},
+        mr ${providerLibPath},
+      '';
+    };
   };
 }
diff --git a/nixpkgs/nixos/modules/config/pulseaudio.nix b/nixpkgs/nixos/modules/config/pulseaudio.nix
index 0266bbfb121d..3f7ae109e8c2 100644
--- a/nixpkgs/nixos/modules/config/pulseaudio.nix
+++ b/nixpkgs/nixos/modules/config/pulseaudio.nix
@@ -17,9 +17,9 @@ let
   binary = "${getBin overriddenPackage}/bin/pulseaudio";
   binaryNoDaemon = "${binary} --daemonize=no";
 
-  # Forces 32bit pulseaudio and alsaPlugins to be built/supported for apps
+  # Forces 32bit pulseaudio and alsa-plugins to be built/supported for apps
   # using 32bit alsa on 64bit linux.
-  enable32BitAlsaPlugins = cfg.support32Bit && stdenv.isx86_64 && (pkgs.pkgsi686Linux.alsaLib != null && pkgs.pkgsi686Linux.libpulseaudio != null);
+  enable32BitAlsaPlugins = cfg.support32Bit && stdenv.isx86_64 && (pkgs.pkgsi686Linux.alsa-lib != null && pkgs.pkgsi686Linux.libpulseaudio != null);
 
 
   myConfigFile =
@@ -62,18 +62,18 @@ let
   # plugin.
   alsaConf = writeText "asound.conf" (''
     pcm_type.pulse {
-      libs.native = ${pkgs.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;
+      libs.native = ${pkgs.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;
       ${lib.optionalString enable32BitAlsaPlugins
-     "libs.32Bit = ${pkgs.pkgsi686Linux.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;"}
+     "libs.32Bit = ${pkgs.pkgsi686Linux.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;"}
     }
     pcm.!default {
       type pulse
       hint.description "Default Audio Device (via PulseAudio)"
     }
     ctl_type.pulse {
-      libs.native = ${pkgs.alsaPlugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;
+      libs.native = ${pkgs.alsa-plugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;
       ${lib.optionalString enable32BitAlsaPlugins
-     "libs.32Bit = ${pkgs.pkgsi686Linux.alsaPlugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;"}
+     "libs.32Bit = ${pkgs.pkgsi686Linux.alsa-plugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;"}
     }
     ctl.!default {
       type pulse
diff --git a/nixpkgs/nixos/modules/hardware/opengl.nix b/nixpkgs/nixos/modules/hardware/opengl.nix
index 061528f4b1b5..a50b5d32c358 100644
--- a/nixpkgs/nixos/modules/hardware/opengl.nix
+++ b/nixpkgs/nixos/modules/hardware/opengl.nix
@@ -63,8 +63,7 @@ in
         description = ''
           On 64-bit systems, whether to support Direct Rendering for
           32-bit applications (such as Wine).  This is currently only
-          supported for the <literal>nvidia</literal> and
-          <literal>ati_unfree</literal> drivers, as well as
+          supported for the <literal>nvidia</literal> as well as
           <literal>Mesa</literal>.
         '';
       };
diff --git a/nixpkgs/nixos/modules/hardware/video/ati.nix b/nixpkgs/nixos/modules/hardware/video/ati.nix
deleted file mode 100644
index 06d3ea324d8d..000000000000
--- a/nixpkgs/nixos/modules/hardware/video/ati.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-# This module provides the proprietary ATI X11 / OpenGL drivers.
-
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  drivers = config.services.xserver.videoDrivers;
-
-  enabled = elem "ati_unfree" drivers;
-
-  ati_x11 = config.boot.kernelPackages.ati_drivers_x11;
-
-in
-
-{
-
-  config = mkIf enabled {
-
-    nixpkgs.config.xorg.abiCompat = "1.17";
-
-    services.xserver.drivers = singleton
-      { name = "fglrx"; modules = [ ati_x11 ]; display = true; };
-
-    hardware.opengl.package = ati_x11;
-    hardware.opengl.package32 = pkgs.pkgsi686Linux.linuxPackages.ati_drivers_x11.override { libsOnly = true; kernel = null; };
-    hardware.opengl.setLdLibraryPath = true;
-
-    environment.systemPackages = [ ati_x11 ];
-
-    boot.extraModulePackages = [ ati_x11 ];
-
-    boot.blacklistedKernelModules = [ "radeon" ];
-
-    environment.etc.ati.source = "${ati_x11}/etc/ati";
-
-  };
-
-}
diff --git a/nixpkgs/nixos/modules/hardware/video/nvidia.nix b/nixpkgs/nixos/modules/hardware/video/nvidia.nix
index 97accc7b99a0..2be9da8f42a1 100644
--- a/nixpkgs/nixos/modules/hardware/video/nvidia.nix
+++ b/nixpkgs/nixos/modules/hardware/video/nvidia.nix
@@ -92,7 +92,7 @@ in
       example = "PCI:4:0:0";
       description = ''
         Bus ID of the AMD APU. You can find it using lspci; for example if lspci
-	shows the AMD APU at "04:00.0", set this option to "PCI:4:0:0".
+        shows the AMD APU at "04:00.0", set this option to "PCI:4:0:0".
       '';
     };
 
@@ -159,7 +159,7 @@ in
       description = ''
         The NVIDIA X11 derivation to use.
       '';
-      example = "config.boot.kernelPackages.nvidiaPackages.legacy340";
+      example = "config.boot.kernelPackages.nvidiaPackages.legacy_340";
     };
   };
 
diff --git a/nixpkgs/nixos/modules/hardware/xpadneo.nix b/nixpkgs/nixos/modules/hardware/xpadneo.nix
index d504697e61fd..dbc4ba212560 100644
--- a/nixpkgs/nixos/modules/hardware/xpadneo.nix
+++ b/nixpkgs/nixos/modules/hardware/xpadneo.nix
@@ -24,6 +24,6 @@ in
   };
 
   meta = {
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix b/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix
index 44962d202fe1..eecbe32fea49 100644
--- a/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix
+++ b/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix
@@ -6,28 +6,33 @@ let
   im = config.i18n.inputMethod;
   cfg = im.fcitx5;
   fcitx5Package = pkgs.fcitx5-with-addons.override { inherit (cfg) addons; };
-in
-  {
-    options = {
-      i18n.inputMethod.fcitx5 = {
-        addons = mkOption {
-          type = with types; listOf package;
-          default = [];
-          example = with pkgs; [ fcitx5-rime ];
-          description = ''
-            Enabled Fcitx5 addons.
-          '';
-        };
+in {
+  options = {
+    i18n.inputMethod.fcitx5 = {
+      addons = mkOption {
+        type = with types; listOf package;
+        default = [];
+        example = with pkgs; [ fcitx5-rime ];
+        description = ''
+          Enabled Fcitx5 addons.
+        '';
       };
     };
+  };
 
-    config = mkIf (im.enabled == "fcitx5") {
-      i18n.inputMethod.package = fcitx5Package;
+  config = mkIf (im.enabled == "fcitx5") {
+    i18n.inputMethod.package = fcitx5Package;
 
-      environment.variables = {
-        GTK_IM_MODULE = "fcitx";
-        QT_IM_MODULE = "fcitx";
-        XMODIFIERS = "@im=fcitx";
-      };
+    environment.variables = {
+      GTK_IM_MODULE = "fcitx";
+      QT_IM_MODULE = "fcitx";
+      XMODIFIERS = "@im=fcitx";
+    };
+
+    systemd.user.services.fcitx5-daemon = {
+      enable = true;
+      script = "${fcitx5Package}/bin/fcitx5";
+      wantedBy = [ "graphical-session.target" ];
     };
-  }
+  };
+}
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix b/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
index 803bae4212ef..12ad8a4ae004 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
@@ -9,7 +9,7 @@ with lib;
 
   isoImage.edition = "gnome";
 
-  services.xserver.desktopManager.gnome3 = {
+  services.xserver.desktopManager.gnome = {
     # Add firefox to favorite-apps
     favoriteAppsOverride = ''
       [org.gnome.shell]
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
index 1418420afcd9..c2836b5a9a1b 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -162,12 +162,14 @@ let
   isolinuxCfg = concatStringsSep "\n"
     ([ baseIsolinuxCfg ] ++ optional config.boot.loader.grub.memtest86.enable isolinuxMemtest86Entry);
 
+  refindBinary = if targetArch == "x64" || targetArch == "aa64" then "refind_${targetArch}.efi" else null;
+
   # Setup instructions for rEFInd.
   refind =
-    if targetArch == "x64" then
+    if refindBinary != null then
       ''
       # Adds rEFInd to the ISO.
-      cp -v ${pkgs.refind}/share/refind/refind_x64.efi $out/EFI/boot/
+      cp -v ${pkgs.refind}/share/refind/${refindBinary} $out/EFI/boot/
       ''
     else
       "# No refind for ${targetArch}"
@@ -180,13 +182,32 @@ let
     # Menu configuration
     #
 
+    # Search using a "marker file"
+    search --set=root --file /EFI/nixos-installer-image
+
     insmod gfxterm
     insmod png
     set gfxpayload=keep
+    set gfxmode=${concatStringsSep "," [
+      # GRUB will use the first valid mode listed here.
+      # `auto` will sometimes choose the smallest valid mode it detects.
+      # So instead we'll list a lot of possibly valid modes :/
+      #"3840x2160"
+      #"2560x1440"
+      "1920x1080"
+      "1366x768"
+      "1280x720"
+      "1024x768"
+      "800x600"
+      "auto"
+    ]}
 
     # Fonts can be loaded?
     # (This font is assumed to always be provided as a fallback by NixOS)
-    if loadfont (hd0)/EFI/boot/unicode.pf2; then
+    if loadfont (\$root)/EFI/boot/unicode.pf2; then
+      set with_fonts=true
+    fi
+    if [ "\$textmode" != "true" -a "\$with_fonts" == "true" ]; then
       # Use graphical term, it can be either with background image or a theme.
       # input is "console", while output is "gfxterm".
       # This enables "serial" input and output only when possible.
@@ -207,11 +228,11 @@ let
     ${ # When there is a theme configured, use it, otherwise use the background image.
     if config.isoImage.grubTheme != null then ''
       # Sets theme.
-      set theme=(hd0)/EFI/boot/grub-theme/theme.txt
+      set theme=(\$root)/EFI/boot/grub-theme/theme.txt
       # Load theme fonts
-      $(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (hd0)/EFI/boot/grub-theme/%P\n")
+      $(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (\$root)/EFI/boot/grub-theme/%P\n")
     '' else ''
-      if background_image (hd0)/EFI/boot/efi-background.png; then
+      if background_image (\$root)/EFI/boot/efi-background.png; then
         # Black background means transparent background when there
         # is a background image set... This seems undocumented :(
         set color_normal=black/black
@@ -228,9 +249,15 @@ let
   # Notes about grub:
   #  * Yes, the grubMenuCfg has to be repeated in all submenus. Otherwise you
   #    will get white-on-black console-like text on sub-menus. *sigh*
-  efiDir = pkgs.runCommand "efi-directory" {} ''
+  efiDir = pkgs.runCommand "efi-directory" {
+    nativeBuildInputs = [ pkgs.buildPackages.grub2_efi ];
+    strictDeps = true;
+  } ''
     mkdir -p $out/EFI/boot/
 
+    # Add a marker so GRUB can find the filesystem.
+    touch $out/EFI/nixos-installer-image
+
     # ALWAYS required modules.
     MODULES="fat iso9660 part_gpt part_msdos \
              normal boot linux configfile loopback chain halt \
@@ -258,12 +285,14 @@ let
 
     # Make our own efi program, we can't rely on "grub-install" since it seems to
     # probe for devices, even with --skip-fs-probe.
-    ${grubPkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/boot${targetArch}.efi -p /EFI/boot -O ${grubPkgs.grub2_efi.grubTarget} \
+    grub-mkimage --directory=${grubPkgs.grub2_efi}/lib/grub/${grubPkgs.grub2_efi.grubTarget} -o $out/EFI/boot/boot${targetArch}.efi -p /EFI/boot -O ${grubPkgs.grub2_efi.grubTarget} \
       $MODULES
     cp ${grubPkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/
 
     cat <<EOF > $out/EFI/boot/grub.cfg
 
+    set with_fonts=false
+    set textmode=false
     # If you want to use serial for "terminal_*" commands, you need to set one up:
     #   Example manual configuration:
     #    → serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
@@ -273,8 +302,28 @@ let
     export with_serial
     clear
     set timeout=10
+
+    # This message will only be viewable when "gfxterm" is not used.
+    echo ""
+    echo "Loading graphical boot menu..."
+    echo ""
+    echo "Press 't' to use the text boot menu on this console..."
+    echo ""
+
     ${grubMenuCfg}
 
+    hiddenentry 'Text mode' --hotkey 't' {
+      loadfont (\$root)/EFI/boot/unicode.pf2
+      set textmode=true
+      terminal_output gfxterm console
+    }
+    hiddenentry 'GUI mode' --hotkey 'g' {
+      $(find ${config.isoImage.grubTheme} -iname '*.pf2' -printf "loadfont (\$root)/EFI/boot/grub-theme/%P\n")
+      set textmode=false
+      terminal_output gfxterm
+    }
+
+
     # If the parameter iso_path is set, append the findiso parameter to the kernel
     # line. We need this to allow the nixos iso to be booted from grub directly.
     if [ \''${iso_path} ] ; then
@@ -337,11 +386,17 @@ let
       }
     }
 
-    menuentry 'rEFInd' --class refind {
-      # UUID is hard-coded in the derivation.
+    ${lib.optionalString (refindBinary != null) ''
+    # GRUB apparently cannot do "chainloader" operations on "CD".
+    if [ "\$root" != "cd0" ]; then
+      # Force root to be the FAT partition
+      # Otherwise it breaks rEFInd's boot
       search --set=root --no-floppy --fs-uuid 1234-5678
-      chainloader (\$root)/EFI/boot/refind_x64.efi
-    }
+      menuentry 'rEFInd' --class refind {
+        chainloader (\$root)/EFI/boot/${refindBinary}
+      }
+    fi
+    ''}
     menuentry 'Firmware Setup' --class settings {
       fwsetup
       clear
@@ -357,7 +412,10 @@ let
     ${refind}
   '';
 
-  efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools pkgs.libfaketime ]; }
+  efiImg = pkgs.runCommand "efi-image_eltorito" {
+    nativeBuildInputs = [ pkgs.buildPackages.mtools pkgs.buildPackages.libfaketime pkgs.buildPackages.dosfstools ];
+    strictDeps = true;
+  }
     # Be careful about determinism: du --apparent-size,
     #   dates (cp -p, touch, mcopy -m, faketime for label), IDs (mkfs.vfat -i)
     ''
@@ -366,7 +424,9 @@ let
       mkdir ./boot
       cp -p "${config.boot.kernelPackages.kernel}/${config.system.boot.loader.kernelFile}" \
         "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}" ./boot/
-      touch --date=@0 ./EFI ./boot
+
+      # Rewrite dates for everything in the FS
+      find . -exec touch --date=2000-01-01 {} +
 
       usage_size=$(du -sb --apparent-size . | tr -cd '[:digit:]')
       # Make the image 110% as big as the files need to make up for FAT overhead
@@ -377,10 +437,10 @@ let
       echo "Usage size: $usage_size"
       echo "Image size: $image_size"
       truncate --size=$image_size "$out"
-      ${pkgs.libfaketime}/bin/faketime "2000-01-01 00:00:00" ${pkgs.dosfstools}/sbin/mkfs.vfat -i 12345678 -n EFIBOOT "$out"
+      faketime "2000-01-01 00:00:00" mkfs.vfat -i 12345678 -n EFIBOOT "$out"
       mcopy -psvm -i "$out" ./EFI ./boot ::
       # Verify the FAT partition.
-      ${pkgs.dosfstools}/sbin/fsck.vfat -vn "$out"
+      fsck.vfat -vn "$out"
     ''; # */
 
   # Name used by UEFI for architectures.
@@ -389,6 +449,8 @@ let
       "ia32"
     else if pkgs.stdenv.isx86_64 then
       "x64"
+    else if pkgs.stdenv.isAarch32 then
+      "arm"
     else if pkgs.stdenv.isAarch64 then
       "aa64"
     else
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
deleted file mode 100644
index 79db1fa29bc4..000000000000
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ config, ... }:
-{
-  imports = [
-    ../sd-card/sd-image-raspberrypi4-installer.nix
-  ];
-  config = {
-    warnings = [
-      ''
-      .../cd-dvd/sd-image-raspberrypi4.nix is deprecated and will eventually be removed.
-      Please switch to .../sd-card/sd-image-raspberrypi4-installer.nix, instead.
-      ''
-    ];
-  };
-}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix
index 96ebb7537da3..165e2aac27b4 100644
--- a/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix
@@ -18,13 +18,6 @@
   # - ttyAMA0: for QEMU's -machine virt
   boot.kernelParams = ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
 
-  boot.initrd.availableKernelModules = [
-    # Allows early (earlier) modesetting for the Raspberry Pi
-    "vc4" "bcm2835_dma" "i2c_bcm2835"
-    # Allows early (earlier) modesetting for Allwinner SoCs
-    "sun4i_drm" "sun8i_drm_hdmi" "sun8i_mixer"
-  ];
-
   sdImage = {
     populateFirmwareCommands = let
       configTxt = pkgs.writeText "config.txt" ''
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix
deleted file mode 100644
index 59423e40b64c..000000000000
--- a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4-installer.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  imports = [
-    ../../profiles/installation-device.nix
-    ./sd-image-raspberrypi4.nix
-  ];
-
-  # the installation media is also the installation target,
-  # so we don't want to provide the installation configuration.nix.
-  installer.cloneConfig = false;
-}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix
deleted file mode 100644
index 35a12c5382f7..000000000000
--- a/nixpkgs/nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-# To build, use:
-# nix-build nixos -I nixos-config=nixos/modules/installer/sd-card/sd-image-raspberrypi4.nix -A config.system.build.sdImage
-{ config, lib, pkgs, ... }:
-
-{
-  imports = [ ./sd-image-aarch64.nix ];
-  boot.kernelPackages = pkgs.linuxPackages_rpi4;
-}
diff --git a/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix b/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
index b811ae07eb03..d0fe79903d34 100644
--- a/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
+++ b/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
@@ -29,6 +29,7 @@ in
   imports = [
     (mkRemovedOptionModule [ "sdImage" "bootPartitionID" ] "The FAT partition for SD image now only holds the Raspberry Pi firmware files. Use firmwarePartitionID to configure that partition's ID.")
     (mkRemovedOptionModule [ "sdImage" "bootSize" ] "The boot files for SD image have been moved to the main ext4 partition. The FAT partition now only holds the Raspberry Pi firmware files. Changing its size may not be required.")
+    ../../profiles/all-hardware.nix
   ];
 
   options.sdImage = {
@@ -126,6 +127,13 @@ in
       '';
     };
 
+    expandOnBoot = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Whether to configure the sd image to expand it's partition on boot.
+      '';
+    };
   };
 
   config = {
@@ -215,7 +223,7 @@ in
       '';
     }) {};
 
-    boot.postBootCommands = ''
+    boot.postBootCommands = lib.mkIf config.sdImage.expandOnBoot ''
       # On the first boot do some maintenance tasks
       if [ -f /nix-path-registration ]; then
         set -euo pipefail
diff --git a/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
index 6b1f54beee2e..801e28cec44a 100644
--- a/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
 {
-  x86_64-linux = "/nix/store/iwfs2bfcy7lqwhri94p2i6jc87ih55zk-nix-2.3.10";
-  i686-linux = "/nix/store/a3ccfvy9i5n418d5v0bir330kbcz3vj8-nix-2.3.10";
-  aarch64-linux = "/nix/store/bh5g6cv7bv35iz853d3xv2sphn51ybmb-nix-2.3.10";
-  x86_64-darwin = "/nix/store/8c98r6zlwn2d40qm7jnnrr2rdlqviszr-nix-2.3.10";
+  x86_64-linux = "/nix/store/d1ppfhjhdwcsb4npfzyifv5z8i00fzsk-nix-2.3.11";
+  i686-linux = "/nix/store/c6ikndcrzwpfn2sb5b9xb1f17p9b8iga-nix-2.3.11";
+  aarch64-linux = "/nix/store/fb0lfrn0m8s197d264jzd64vhz9c8zbx-nix-2.3.11";
+  x86_64-darwin = "/nix/store/qvb86ffv08q3r66qbd6nqifz425lyyhf-nix-2.3.11";
 }
diff --git a/nixpkgs/nixos/modules/installer/virtualbox-demo.nix b/nixpkgs/nixos/modules/installer/virtualbox-demo.nix
index af3e1aecca71..2768e17590b3 100644
--- a/nixpkgs/nixos/modules/installer/virtualbox-demo.nix
+++ b/nixpkgs/nixos/modules/installer/virtualbox-demo.nix
@@ -44,7 +44,7 @@ with lib;
 
   # Enable GDM/GNOME by uncommenting above two lines and two lines below.
   # services.xserver.displayManager.gdm.enable = true;
-  # services.xserver.desktopManager.gnome3.enable = true;
+  # services.xserver.desktopManager.gnome.enable = true;
 
   # Set your time zone.
   # time.timeZone = "Europe/Amsterdam";
diff --git a/nixpkgs/nixos/modules/misc/ids.nix b/nixpkgs/nixos/modules/misc/ids.nix
index d19f6b4e00c5..b08c3cacf3a3 100644
--- a/nixpkgs/nixos/modules/misc/ids.nix
+++ b/nixpkgs/nixos/modules/misc/ids.nix
@@ -252,7 +252,7 @@ in
       postsrsd = 220;
       opendkim = 221;
       dspam = 222;
-      gale = 223;
+      # gale = 223; removed 2021-06-10
       matrix-synapse = 224;
       rspamd = 225;
       # rmilter = 226; # unused, removed 2019-08-22
@@ -300,7 +300,7 @@ in
       #pdns-recursor = 269; # dynamically allocated as of 2020-20-18
       #kresd = 270; # switched to "knot-resolver" with dynamic ID
       rpc = 271;
-      geoip = 272;
+      #geoip = 272; # new module uses DynamicUser
       fcron = 273;
       sonarr = 274;
       radarr = 275;
@@ -315,7 +315,7 @@ in
       restya-board = 284;
       mighttpd2 = 285;
       hass = 286;
-      monero = 287;
+      #monero = 287; # dynamically allocated as of 2021-05-08
       ceph = 288;
       duplicati = 289;
       monetdb = 290;
@@ -562,7 +562,7 @@ in
       postsrsd = 220;
       opendkim = 221;
       dspam = 222;
-      gale = 223;
+      # gale = 223; removed 2021-06-10
       matrix-synapse = 224;
       rspamd = 225;
       # rmilter = 226; # unused, removed 2019-08-22
@@ -617,7 +617,7 @@ in
       restya-board = 284;
       mighttpd2 = 285;
       hass = 286;
-      monero = 287;
+      # monero = 287; # dynamically allocated as of 2021-05-08
       ceph = 288;
       duplicati = 289;
       monetdb = 290;
diff --git a/nixpkgs/nixos/modules/module-list.nix b/nixpkgs/nixos/modules/module-list.nix
index 9a4c25f72c57..bbe468ef872c 100644
--- a/nixpkgs/nixos/modules/module-list.nix
+++ b/nixpkgs/nixos/modules/module-list.nix
@@ -76,7 +76,6 @@
   ./hardware/wooting.nix
   ./hardware/uinput.nix
   ./hardware/video/amdgpu-pro.nix
-  ./hardware/video/ati.nix
   ./hardware/video/capture/mwprocapture.nix
   ./hardware/video/bumblebee.nix
   ./hardware/video/displaylink.nix
@@ -114,6 +113,9 @@
   ./programs/autojump.nix
   ./programs/bandwhich.nix
   ./programs/bash/bash.nix
+  ./programs/bash/bash-completion.nix
+  ./programs/bash/ls-colors.nix
+  ./programs/bash/undistract-me.nix
   ./programs/bash-my-aws.nix
   ./programs/bcc.nix
   ./programs/browserpass.nix
@@ -130,12 +132,14 @@
   ./programs/droidcam.nix
   ./programs/environment.nix
   ./programs/evince.nix
+  ./programs/feedbackd.nix
   ./programs/file-roller.nix
   ./programs/firejail.nix
   ./programs/fish.nix
   ./programs/flexoptix-app.nix
   ./programs/freetds.nix
   ./programs/fuse.nix
+  ./programs/gamemode.nix
   ./programs/geary.nix
   ./programs/gnome-disks.nix
   ./programs/gnome-documents.nix
@@ -159,10 +163,12 @@
   ./programs/neovim.nix
   ./programs/nm-applet.nix
   ./programs/npm.nix
+  ./programs/noisetorch.nix
   ./programs/oblogout.nix
   ./programs/partition-manager.nix
   ./programs/plotinus.nix
   ./programs/proxychains.nix
+  ./programs/phosh.nix
   ./programs/qt5ct.nix
   ./programs/screen.nix
   ./programs/sedutil.nix
@@ -206,7 +212,6 @@
   ./rename.nix
   ./security/acme.nix
   ./security/apparmor.nix
-  ./security/apparmor-suid.nix
   ./security/audit.nix
   ./security/auditd.nix
   ./security/ca.nix
@@ -234,6 +239,7 @@
   ./services/amqp/activemq/default.nix
   ./services/amqp/rabbitmq.nix
   ./services/audio/alsa.nix
+  ./services/audio/botamusique.nix
   ./services/audio/jack.nix
   ./services/audio/icecast.nix
   ./services/audio/jmusicbot.nix
@@ -334,21 +340,21 @@
   ./services/desktops/malcontent.nix
   ./services/desktops/pipewire/pipewire.nix
   ./services/desktops/pipewire/pipewire-media-session.nix
-  ./services/desktops/gnome3/at-spi2-core.nix
-  ./services/desktops/gnome3/chrome-gnome-shell.nix
-  ./services/desktops/gnome3/evolution-data-server.nix
-  ./services/desktops/gnome3/glib-networking.nix
-  ./services/desktops/gnome3/gnome-initial-setup.nix
-  ./services/desktops/gnome3/gnome-keyring.nix
-  ./services/desktops/gnome3/gnome-online-accounts.nix
-  ./services/desktops/gnome3/gnome-online-miners.nix
-  ./services/desktops/gnome3/gnome-remote-desktop.nix
-  ./services/desktops/gnome3/gnome-settings-daemon.nix
-  ./services/desktops/gnome3/gnome-user-share.nix
-  ./services/desktops/gnome3/rygel.nix
-  ./services/desktops/gnome3/sushi.nix
-  ./services/desktops/gnome3/tracker.nix
-  ./services/desktops/gnome3/tracker-miners.nix
+  ./services/desktops/gnome/at-spi2-core.nix
+  ./services/desktops/gnome/chrome-gnome-shell.nix
+  ./services/desktops/gnome/evolution-data-server.nix
+  ./services/desktops/gnome/glib-networking.nix
+  ./services/desktops/gnome/gnome-initial-setup.nix
+  ./services/desktops/gnome/gnome-keyring.nix
+  ./services/desktops/gnome/gnome-online-accounts.nix
+  ./services/desktops/gnome/gnome-online-miners.nix
+  ./services/desktops/gnome/gnome-remote-desktop.nix
+  ./services/desktops/gnome/gnome-settings-daemon.nix
+  ./services/desktops/gnome/gnome-user-share.nix
+  ./services/desktops/gnome/rygel.nix
+  ./services/desktops/gnome/sushi.nix
+  ./services/desktops/gnome/tracker.nix
+  ./services/desktops/gnome/tracker-miners.nix
   ./services/desktops/neard.nix
   ./services/desktops/profile-sync-daemon.nix
   ./services/desktops/system-config-printer.nix
@@ -394,6 +400,7 @@
   ./services/hardware/ratbagd.nix
   ./services/hardware/sane.nix
   ./services/hardware/sane_extra_backends/brscan4.nix
+  ./services/hardware/sane_extra_backends/brscan5.nix
   ./services/hardware/sane_extra_backends/dsseries.nix
   ./services/hardware/spacenavd.nix
   ./services/hardware/tcsd.nix
@@ -469,8 +476,10 @@
   ./services/misc/cgminer.nix
   ./services/misc/confd.nix
   ./services/misc/couchpotato.nix
+  ./services/misc/dendrite.nix
   ./services/misc/devmon.nix
   ./services/misc/dictd.nix
+  ./services/misc/duckling.nix
   ./services/misc/dwm-status.nix
   ./services/misc/dysnomia.nix
   ./services/misc/disnix.nix
@@ -486,7 +495,7 @@
   ./services/misc/freeswitch.nix
   ./services/misc/fstrim.nix
   ./services/misc/gammu-smsd.nix
-  ./services/misc/geoip-updater.nix
+  ./services/misc/geoipupdate.nix
   ./services/misc/gitea.nix
   #./services/misc/gitit.nix
   ./services/misc/gitlab.nix
@@ -542,10 +551,12 @@
   ./services/misc/ripple-data-api.nix
   ./services/misc/serviio.nix
   ./services/misc/safeeyes.nix
+  ./services/misc/sdrplay.nix
   ./services/misc/sickbeard.nix
   ./services/misc/siproxd.nix
   ./services/misc/snapper.nix
   ./services/misc/sonarr.nix
+  ./services/misc/sourcehut
   ./services/misc/spice-vdagentd.nix
   ./services/misc/ssm-agent.nix
   ./services/misc/sssd.nix
@@ -585,6 +596,7 @@
   ./services/monitoring/loki.nix
   ./services/monitoring/longview.nix
   ./services/monitoring/mackerel-agent.nix
+  ./services/monitoring/metricbeat.nix
   ./services/monitoring/monit.nix
   ./services/monitoring/munin.nix
   ./services/monitoring/nagios.nix
@@ -633,6 +645,7 @@
   ./services/network-filesystems/xtreemfs.nix
   ./services/network-filesystems/ceph.nix
   ./services/networking/3proxy.nix
+  ./services/networking/adguardhome.nix
   ./services/networking/amuled.nix
   ./services/networking/aria2.nix
   ./services/networking/asterisk.nix
@@ -681,9 +694,9 @@
   ./services/networking/flannel.nix
   ./services/networking/freenet.nix
   ./services/networking/freeradius.nix
-  ./services/networking/gale.nix
   ./services/networking/gateone.nix
   ./services/networking/gdomap.nix
+  ./services/networking/ghostunnel.nix
   ./services/networking/git-daemon.nix
   ./services/networking/gnunet.nix
   ./services/networking/go-neb.nix
@@ -799,6 +812,7 @@
   ./services/networking/smartdns.nix
   ./services/networking/smokeping.nix
   ./services/networking/softether.nix
+  ./services/networking/solanum.nix
   ./services/networking/spacecookie.nix
   ./services/networking/spiped.nix
   ./services/networking/squid.nix
@@ -890,6 +904,7 @@
   ./services/system/kerberos/default.nix
   ./services/system/nscd.nix
   ./services/system/saslauthd.nix
+  ./services/system/self-deploy.nix
   ./services/system/uptimed.nix
   ./services/torrent/deluge.nix
   ./services/torrent/flexget.nix
@@ -936,6 +951,7 @@
   ./services/web-apps/nextcloud.nix
   ./services/web-apps/nexus.nix
   ./services/web-apps/plantuml-server.nix
+  ./services/web-apps/plausible.nix
   ./services/web-apps/pgpkeyserver-lite.nix
   ./services/web-apps/matomo.nix
   ./services/web-apps/moinmoin.nix
@@ -975,6 +991,7 @@
   ./services/web-servers/shellinabox.nix
   ./services/web-servers/tomcat.nix
   ./services/web-servers/traefik.nix
+  ./services/web-servers/trafficserver.nix
   ./services/web-servers/ttyd.nix
   ./services/web-servers/uwsgi.nix
   ./services/web-servers/varnish/default.nix
@@ -1102,6 +1119,7 @@
   ./virtualisation/openvswitch.nix
   ./virtualisation/parallels-guest.nix
   ./virtualisation/podman.nix
+  ./virtualisation/podman-network-socket-ghostunnel.nix
   ./virtualisation/qemu-guest-agent.nix
   ./virtualisation/railcar.nix
   ./virtualisation/spice-usb-redirection.nix
diff --git a/nixpkgs/nixos/modules/profiles/all-hardware.nix b/nixpkgs/nixos/modules/profiles/all-hardware.nix
index d460c52dbefd..797fcddb8c90 100644
--- a/nixpkgs/nixos/modules/profiles/all-hardware.nix
+++ b/nixpkgs/nixos/modules/profiles/all-hardware.nix
@@ -37,6 +37,9 @@ in
       # drives.
       "uas"
 
+      # SD cards.
+      "sdhci_pci"
+
       # Firewire support.  Not tested.
       "ohci1394" "sbp2"
 
@@ -46,11 +49,66 @@ in
       # VMware support.
       "mptspi" "vmxnet3" "vsock"
     ] ++ lib.optional platform.isx86 "vmw_balloon"
-    ++ lib.optionals (!platform.isAarch64) [ # not sure where else they're missing
+    ++ lib.optionals (!platform.isAarch64 && !platform.isAarch32) [ # not sure where else they're missing
       "vmw_vmci" "vmwgfx" "vmw_vsock_vmci_transport"
 
       # Hyper-V support.
       "hv_storvsc"
+    ] ++ lib.optionals (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
+      # Most of the following falls into two categories:
+      #  - early KMS / early display
+      #  - early storage (e.g. USB) support
+
+      # Allows using framebuffer configured by the initial boot firmware
+      "simplefb"
+
+      # Allwinner support
+
+      # Required for early KMS
+      "sun4i-drm"
+      "sun8i-mixer" # Audio, but required for kms
+
+      # PWM for the backlight
+      "pwm-sun4i"
+
+      # Broadcom
+
+      "vc4"
+    ] ++ lib.optionals pkgs.stdenv.isAarch64 [
+      # Most of the following falls into two categories:
+      #  - early KMS / early display
+      #  - early storage (e.g. USB) support
+
+      # Broadcom
+
+      "pcie-brcmstb"
+
+      # Rockchip
+      "dw-hdmi"
+      "dw-mipi-dsi"
+      "rockchipdrm"
+      "rockchip-rga"
+      "phy-rockchip-pcie"
+      "pcie-rockchip-host"
+
+      # Misc. uncategorized hardware
+
+      # Used for some platform's integrated displays
+      "panel-simple"
+      "pwm-bl"
+
+      # Power supply drivers, some platforms need them for USB
+      "axp20x-ac-power"
+      "axp20x-battery"
+      "pinctrl-axp209"
+      "mp8859"
+
+      # USB drivers
+      "xhci-pci-renesas"
+
+      # Misc "weak" dependencies
+      "analogix-dp"
+      "analogix-anx6345" # For DP or eDP (e.g. integrated display)
     ];
 
   # Include lots of firmware.
diff --git a/nixpkgs/nixos/modules/profiles/hardened.nix b/nixpkgs/nixos/modules/profiles/hardened.nix
index 00aafc6831b2..3f8f78f012a7 100644
--- a/nixpkgs/nixos/modules/profiles/hardened.nix
+++ b/nixpkgs/nixos/modules/profiles/hardened.nix
@@ -36,6 +36,7 @@ with lib;
   security.virtualisation.flushL1DataCache = mkDefault "always";
 
   security.apparmor.enable = mkDefault true;
+  security.apparmor.killUnconfinedConfinables = mkDefault true;
 
   boot.kernelParams = [
     # Slab/slub sanity checks, redzoning, and poisoning
diff --git a/nixpkgs/nixos/modules/profiles/installation-device.nix b/nixpkgs/nixos/modules/profiles/installation-device.nix
index 7dc493fb495d..8e3aa20daa65 100644
--- a/nixpkgs/nixos/modules/profiles/installation-device.nix
+++ b/nixpkgs/nixos/modules/profiles/installation-device.nix
@@ -99,5 +99,13 @@ with lib;
     # because we have the firewall enabled. This makes installs from the
     # console less cumbersome if the machine has a public IP.
     networking.firewall.logRefusedConnections = mkDefault false;
+
+    # Prevent installation media from evacuating persistent storage, as their
+    # var directory is not persistent and it would thus result in deletion of
+    # those entries.
+    environment.etc."systemd/pstore.conf".text = ''
+      [PStore]
+      Unlink=no
+    '';
   };
 }
diff --git a/nixpkgs/nixos/modules/programs/atop.nix b/nixpkgs/nixos/modules/programs/atop.nix
index 7ef8d687ca17..b45eb16e3eaf 100644
--- a/nixpkgs/nixos/modules/programs/atop.nix
+++ b/nixpkgs/nixos/modules/programs/atop.nix
@@ -1,6 +1,6 @@
 # Global configuration for atop.
 
-{ config, lib, ... }:
+{ config, lib, pkgs, ... }:
 
 with lib;
 
@@ -12,11 +12,85 @@ in
 
   options = {
 
-    programs.atop = {
+    programs.atop = rec {
 
+      enable = mkEnableOption "Atop";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.atop;
+        defaultText = "pkgs.atop";
+        description = ''
+          Which package to use for Atop.
+        '';
+      };
+
+      netatop = {
+        enable = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Whether to install and enable the netatop kernel module.
+            Note: this sets the kernel taint flag "O" for loading out-of-tree modules.
+          '';
+        };
+        package = mkOption {
+          type = types.package;
+          default = config.boot.kernelPackages.netatop;
+          defaultText = "config.boot.kernelPackages.netatop";
+          description = ''
+            Which package to use for netatop.
+          '';
+        };
+      };
+
+      atopgpu.enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to install and enable the atopgpud daemon to get information about
+          NVIDIA gpus.
+        '';
+      };
+
+      setuidWrapper.enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to install a setuid wrapper for Atop. This is required to use some of
+          the features as non-root user (e.g.: ipc information, netatop, atopgpu).
+          Atop tries to drop the root privileges shortly after starting.
+        '';
+      };
+
+      atopService.enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable the atop service responsible for storing statistics for
+          long-term analysis.
+        '';
+      };
+      atopRotateTimer.enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable the atop-rotate timer, which restarts the atop service
+          daily to make sure the data files are rotate.
+        '';
+      };
+      atopacctService.enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable the atopacct service which manages process accounting.
+          This allows Atop to gather data about processes that disappeared in between
+          two refresh intervals.
+        '';
+      };
       settings = mkOption {
         type = types.attrs;
-        default = {};
+        default = { };
         example = {
           flags = "a1f";
           interval = 5;
@@ -25,12 +99,50 @@ in
           Parameters to be written to <filename>/etc/atoprc</filename>.
         '';
       };
-
     };
   };
 
-  config = mkIf (cfg.settings != {}) {
-    environment.etc.atoprc.text =
-      concatStrings (mapAttrsToList (n: v: "${n} ${toString v}\n") cfg.settings);
-  };
+  config = mkIf cfg.enable (
+    let
+      atop =
+        if cfg.atopgpu.enable then
+          (cfg.package.override { withAtopgpu = true; })
+        else
+          cfg.package;
+    in
+    {
+      environment.etc = mkIf (cfg.settings != { }) {
+        atoprc.text = concatStrings
+          (mapAttrsToList
+            (n: v: ''
+              ${n} ${toString v}
+            '')
+            cfg.settings);
+      };
+      environment.systemPackages = [ atop (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
+      boot.extraModulePackages = [ (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
+      systemd =
+        let
+          mkSystemd = type: cond: name: restartTriggers: {
+            ${name} = lib.mkIf cond {
+              inherit restartTriggers;
+              wantedBy = [ (if type == "services" then "multi-user.target" else if type == "timers" then "timers.target" else null) ];
+            };
+          };
+          mkService = mkSystemd "services";
+          mkTimer = mkSystemd "timers";
+        in
+        {
+          packages = [ atop (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
+          services =
+            mkService cfg.atopService.enable "atop" [ atop ]
+            // mkService cfg.atopacctService.enable "atopacct" [ atop ]
+            // mkService cfg.netatop.enable "netatop" [ cfg.netatop.package ]
+            // mkService cfg.atopgpu.enable "atopgpu" [ atop ];
+          timers = mkTimer cfg.atopRotateTimer.enable "atop-rotate" [ atop ];
+        };
+      security.wrappers =
+        lib.mkIf cfg.setuidWrapper.enable { atop = { source = "${atop}/bin/atop"; }; };
+    }
+  );
 }
diff --git a/nixpkgs/nixos/modules/programs/bash/bash-completion.nix b/nixpkgs/nixos/modules/programs/bash/bash-completion.nix
new file mode 100644
index 000000000000..f07b1b636ef9
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/bash/bash-completion.nix
@@ -0,0 +1,37 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  enable = config.programs.bash.enableCompletion;
+in
+{
+  options = {
+    programs.bash.enableCompletion = mkEnableOption "Bash completion for all interactive bash shells" // {
+      default = true;
+    };
+  };
+
+  config = mkIf enable {
+    programs.bash.promptPluginInit = ''
+      # Check whether we're running a version of Bash that has support for
+      # programmable completion. If we do, enable all modules installed in
+      # the system and user profile in obsolete /etc/bash_completion.d/
+      # directories. Bash loads completions in all
+      # $XDG_DATA_DIRS/bash-completion/completions/
+      # on demand, so they do not need to be sourced here.
+      if shopt -q progcomp &>/dev/null; then
+        . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh"
+        nullglobStatus=$(shopt -p nullglob)
+        shopt -s nullglob
+        for p in $NIX_PROFILES; do
+          for m in "$p/etc/bash_completion.d/"*; do
+            . $m
+          done
+        done
+        eval "$nullglobStatus"
+        unset nullglobStatus p m
+      fi
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/bash/bash.nix b/nixpkgs/nixos/modules/programs/bash/bash.nix
index 1b3254b54a59..908ab34b08d0 100644
--- a/nixpkgs/nixos/modules/programs/bash/bash.nix
+++ b/nixpkgs/nixos/modules/programs/bash/bash.nix
@@ -11,31 +11,6 @@ let
 
   cfg = config.programs.bash;
 
-  bashCompletion = optionalString cfg.enableCompletion ''
-    # Check whether we're running a version of Bash that has support for
-    # programmable completion. If we do, enable all modules installed in
-    # the system and user profile in obsolete /etc/bash_completion.d/
-    # directories. Bash loads completions in all
-    # $XDG_DATA_DIRS/bash-completion/completions/
-    # on demand, so they do not need to be sourced here.
-    if shopt -q progcomp &>/dev/null; then
-      . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh"
-      nullglobStatus=$(shopt -p nullglob)
-      shopt -s nullglob
-      for p in $NIX_PROFILES; do
-        for m in "$p/etc/bash_completion.d/"*; do
-          . $m
-        done
-      done
-      eval "$nullglobStatus"
-      unset nullglobStatus p m
-    fi
-  '';
-
-  lsColors = optionalString cfg.enableLsColors ''
-    eval "$(${pkgs.coreutils}/bin/dircolors -b)"
-  '';
-
   bashAliases = concatStringsSep "\n" (
     mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
       (filterAttrs (k: v: v != null) cfg.shellAliases)
@@ -123,20 +98,13 @@ in
         type = types.lines;
       };
 
-      enableCompletion = mkOption {
-        default = true;
-        description = ''
-          Enable Bash completion for all interactive bash shells.
-        '';
-        type = types.bool;
-      };
-
-      enableLsColors = mkOption {
-        default = true;
+      promptPluginInit = mkOption {
+        default = "";
         description = ''
-          Enable extra colors in directory listings.
+          Shell script code used to initialise bash prompt plugins.
         '';
-        type = types.bool;
+        type = types.lines;
+        internal = true;
       };
 
     };
@@ -167,8 +135,7 @@ in
         set +h
 
         ${cfg.promptInit}
-        ${bashCompletion}
-        ${lsColors}
+        ${cfg.promptPluginInit}
         ${bashAliases}
 
         ${cfge.interactiveShellInit}
diff --git a/nixpkgs/nixos/modules/programs/bash/ls-colors.nix b/nixpkgs/nixos/modules/programs/bash/ls-colors.nix
new file mode 100644
index 000000000000..254ee14c477d
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/bash/ls-colors.nix
@@ -0,0 +1,20 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  enable = config.programs.bash.enableLsColors;
+in
+{
+  options = {
+    programs.bash.enableLsColors = mkEnableOption "extra colors in directory listings" // {
+      default = true;
+    };
+  };
+
+  config = mkIf enable {
+    programs.bash.promptPluginInit = ''
+      eval "$(${pkgs.coreutils}/bin/dircolors -b)"
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/bash/undistract-me.nix b/nixpkgs/nixos/modules/programs/bash/undistract-me.nix
new file mode 100644
index 000000000000..0e6465e048a1
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/bash/undistract-me.nix
@@ -0,0 +1,36 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.bash.undistractMe;
+in
+{
+  options = {
+    programs.bash.undistractMe = {
+      enable = mkEnableOption "notifications when long-running terminal commands complete";
+
+      playSound = mkEnableOption "notification sounds when long-running terminal commands complete";
+
+      timeout = mkOption {
+        default = 10;
+        description = ''
+          Number of seconds it would take for a command to be considered long-running.
+        '';
+        type = types.int;
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    programs.bash.promptPluginInit = ''
+      export LONG_RUNNING_COMMAND_TIMEOUT=${toString cfg.timeout}
+      export UDM_PLAY_SOUND=${if cfg.playSound then "1" else "0"}
+      . "${pkgs.undistract-me}/etc/profile.d/undistract-me.sh"
+    '';
+  };
+
+  meta = {
+    maintainers = with maintainers; [ kira-bruneau ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/ccache.nix b/nixpkgs/nixos/modules/programs/ccache.nix
index 3c9e64932f16..d672e1da017a 100644
--- a/nixpkgs/nixos/modules/programs/ccache.nix
+++ b/nixpkgs/nixos/modules/programs/ccache.nix
@@ -17,7 +17,7 @@ in {
       type = types.listOf types.str;
       description = "Nix top-level packages to be compiled using CCache";
       default = [];
-      example = [ "wxGTK30" "qt48" "ffmpeg_3_3" "libav_all" ];
+      example = [ "wxGTK30" "ffmpeg" "libav_all" ];
     };
   };
 
diff --git a/nixpkgs/nixos/modules/programs/dconf.nix b/nixpkgs/nixos/modules/programs/dconf.nix
index ec85cb9d18c9..298abac8afa9 100644
--- a/nixpkgs/nixos/modules/programs/dconf.nix
+++ b/nixpkgs/nixos/modules/programs/dconf.nix
@@ -54,6 +54,8 @@ in
 
     services.dbus.packages = [ pkgs.dconf ];
 
+    systemd.packages = [ pkgs.dconf ];
+
     # For dconf executable
     environment.systemPackages = [ pkgs.dconf ];
 
diff --git a/nixpkgs/nixos/modules/programs/feedbackd.nix b/nixpkgs/nixos/modules/programs/feedbackd.nix
new file mode 100644
index 000000000000..bb14489a6f4d
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/feedbackd.nix
@@ -0,0 +1,32 @@
+{ pkgs, lib, config, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.feedbackd;
+in {
+  options = {
+    programs.feedbackd = {
+      enable = mkEnableOption ''
+        Whether to enable the feedbackd D-BUS service and udev rules.
+
+        Your user needs to be in the `feedbackd` group to trigger effects.
+      '';
+      package = mkOption {
+        description = ''
+          Which feedbackd package to use.
+        '';
+        type = types.package;
+        default = pkgs.feedbackd;
+      };
+    };
+  };
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    services.dbus.packages = [ cfg.package ];
+    services.udev.packages = [ cfg.package ];
+
+    users.groups.feedbackd = {};
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/file-roller.nix b/nixpkgs/nixos/modules/programs/file-roller.nix
index 64f6a94e7641..b939d59909c0 100644
--- a/nixpkgs/nixos/modules/programs/file-roller.nix
+++ b/nixpkgs/nixos/modules/programs/file-roller.nix
@@ -30,9 +30,9 @@ with lib;
 
   config = mkIf config.programs.file-roller.enable {
 
-    environment.systemPackages = [ pkgs.gnome3.file-roller ];
+    environment.systemPackages = [ pkgs.gnome.file-roller ];
 
-    services.dbus.packages = [ pkgs.gnome3.file-roller ];
+    services.dbus.packages = [ pkgs.gnome.file-roller ];
 
   };
 
diff --git a/nixpkgs/nixos/modules/programs/gamemode.nix b/nixpkgs/nixos/modules/programs/gamemode.nix
new file mode 100644
index 000000000000..03949bf98df6
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/gamemode.nix
@@ -0,0 +1,96 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.gamemode;
+  settingsFormat = pkgs.formats.ini { };
+  configFile = settingsFormat.generate "gamemode.ini" cfg.settings;
+in
+{
+  options = {
+    programs.gamemode = {
+      enable = mkEnableOption "GameMode to optimise system performance on demand";
+
+      enableRenice = mkEnableOption "CAP_SYS_NICE on gamemoded to support lowering process niceness" // {
+        default = true;
+      };
+
+      settings = mkOption {
+        type = settingsFormat.type;
+        default = {};
+        description = ''
+          System-wide configuration for GameMode (/etc/gamemode.ini).
+          See gamemoded(8) man page for available settings.
+        '';
+        example = literalExample ''
+          {
+            general = {
+              renice = 10;
+            };
+
+            # Warning: GPU optimisations have the potential to damage hardware
+            gpu = {
+              apply_gpu_optimisations = "accept-responsibility";
+              gpu_device = 0;
+              amd_performance_level = "high";
+            };
+
+            custom = {
+              start = "''${pkgs.libnotify}/bin/notify-send 'GameMode started'";
+              end = "''${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
+            };
+          }
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment = {
+      systemPackages = [ pkgs.gamemode ];
+      etc."gamemode.ini".source = configFile;
+    };
+
+    security = {
+      polkit.enable = true;
+      wrappers = mkIf cfg.enableRenice {
+        gamemoded = {
+          source = "${pkgs.gamemode}/bin/gamemoded";
+          capabilities = "cap_sys_nice+ep";
+        };
+      };
+    };
+
+    systemd = {
+      packages = [ pkgs.gamemode ];
+      user.services.gamemoded = {
+        # The upstream service already defines this, but doesn't get applied.
+        # See https://github.com/NixOS/nixpkgs/issues/81138
+        wantedBy = [ "default.target" ];
+
+        # Use pkexec from the security wrappers to allow users to
+        # run libexec/cpugovctl & libexec/gpuclockctl as root with
+        # the the actions defined in share/polkit-1/actions.
+        #
+        # This uses a link farm to make sure other wrapped executables
+        # aren't included in PATH.
+        environment.PATH = mkForce (pkgs.linkFarm "pkexec" [
+          {
+            name = "pkexec";
+            path = "${config.security.wrapperDir}/pkexec";
+          }
+        ]);
+
+        serviceConfig.ExecStart = mkIf cfg.enableRenice [
+          "" # Tell systemd to clear the existing ExecStart list, to prevent appending to it.
+          "${config.security.wrapperDir}/gamemoded"
+        ];
+      };
+    };
+  };
+
+  meta = {
+    maintainers = with maintainers; [ kira-bruneau ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/geary.nix b/nixpkgs/nixos/modules/programs/geary.nix
index 5e441a75cb60..407680c30dc3 100644
--- a/nixpkgs/nixos/modules/programs/geary.nix
+++ b/nixpkgs/nixos/modules/programs/geary.nix
@@ -15,10 +15,10 @@ in {
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ pkgs.gnome3.geary ];
+    environment.systemPackages = [ pkgs.gnome.geary ];
     programs.dconf.enable = true;
-    services.gnome3.gnome-keyring.enable = true;
-    services.gnome3.gnome-online-accounts.enable = true;
+    services.gnome.gnome-keyring.enable = true;
+    services.gnome.gnome-online-accounts.enable = true;
   };
 }
 
diff --git a/nixpkgs/nixos/modules/programs/gnome-disks.nix b/nixpkgs/nixos/modules/programs/gnome-disks.nix
index 80dc2983ea50..4b128b471265 100644
--- a/nixpkgs/nixos/modules/programs/gnome-disks.nix
+++ b/nixpkgs/nixos/modules/programs/gnome-disks.nix
@@ -41,9 +41,9 @@ with lib;
 
   config = mkIf config.programs.gnome-disks.enable {
 
-    environment.systemPackages = [ pkgs.gnome3.gnome-disk-utility ];
+    environment.systemPackages = [ pkgs.gnome.gnome-disk-utility ];
 
-    services.dbus.packages = [ pkgs.gnome3.gnome-disk-utility ];
+    services.dbus.packages = [ pkgs.gnome.gnome-disk-utility ];
 
   };
 
diff --git a/nixpkgs/nixos/modules/programs/gnome-documents.nix b/nixpkgs/nixos/modules/programs/gnome-documents.nix
index 9dd53483055c..43ad3163efd8 100644
--- a/nixpkgs/nixos/modules/programs/gnome-documents.nix
+++ b/nixpkgs/nixos/modules/programs/gnome-documents.nix
@@ -13,7 +13,7 @@ with lib;
   # Added 2019-08-09
   imports = [
     (mkRenamedOptionModule
-      [ "services" "gnome3" "gnome-documents" "enable" ]
+      [ "services" "gnome" "gnome-documents" "enable" ]
       [ "programs" "gnome-documents" "enable" ])
   ];
 
@@ -41,13 +41,13 @@ with lib;
 
   config = mkIf config.programs.gnome-documents.enable {
 
-    environment.systemPackages = [ pkgs.gnome3.gnome-documents ];
+    environment.systemPackages = [ pkgs.gnome.gnome-documents ];
 
-    services.dbus.packages = [ pkgs.gnome3.gnome-documents ];
+    services.dbus.packages = [ pkgs.gnome.gnome-documents ];
 
-    services.gnome3.gnome-online-accounts.enable = true;
+    services.gnome.gnome-online-accounts.enable = true;
 
-    services.gnome3.gnome-online-miners.enable = true;
+    services.gnome.gnome-online-miners.enable = true;
 
   };
 
diff --git a/nixpkgs/nixos/modules/programs/gnome-terminal.nix b/nixpkgs/nixos/modules/programs/gnome-terminal.nix
index f2617e5bc038..71a6b217880c 100644
--- a/nixpkgs/nixos/modules/programs/gnome-terminal.nix
+++ b/nixpkgs/nixos/modules/programs/gnome-terminal.nix
@@ -28,9 +28,9 @@ in
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ pkgs.gnome3.gnome-terminal ];
-    services.dbus.packages = [ pkgs.gnome3.gnome-terminal ];
-    systemd.packages = [ pkgs.gnome3.gnome-terminal ];
+    environment.systemPackages = [ pkgs.gnome.gnome-terminal ];
+    services.dbus.packages = [ pkgs.gnome.gnome-terminal ];
+    systemd.packages = [ pkgs.gnome.gnome-terminal ];
 
     programs.bash.vteIntegration = true;
     programs.zsh.vteIntegration = true;
diff --git a/nixpkgs/nixos/modules/programs/gpaste.nix b/nixpkgs/nixos/modules/programs/gpaste.nix
index 8bc52c28d814..cff2fb8d0034 100644
--- a/nixpkgs/nixos/modules/programs/gpaste.nix
+++ b/nixpkgs/nixos/modules/programs/gpaste.nix
@@ -27,10 +27,10 @@ with lib;
 
   ###### implementation
   config = mkIf config.programs.gpaste.enable {
-    environment.systemPackages = [ pkgs.gnome3.gpaste ];
-    services.dbus.packages = [ pkgs.gnome3.gpaste ];
-    systemd.packages = [ pkgs.gnome3.gpaste ];
+    environment.systemPackages = [ pkgs.gnome.gpaste ];
+    services.dbus.packages = [ pkgs.gnome.gpaste ];
+    systemd.packages = [ pkgs.gnome.gpaste ];
     # gnome-control-center crashes in Keyboard Shortcuts pane without the GSettings schemas.
-    services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ];
+    services.xserver.desktopManager.gnome.sessionPath = [ pkgs.gnome.gpaste ];
   };
 }
diff --git a/nixpkgs/nixos/modules/programs/noisetorch.nix b/nixpkgs/nixos/modules/programs/noisetorch.nix
new file mode 100644
index 000000000000..5f3b0c8f5d1e
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/noisetorch.nix
@@ -0,0 +1,25 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let cfg = config.programs.noisetorch;
+in {
+  options.programs.noisetorch = {
+    enable = mkEnableOption "noisetorch + setcap wrapper";
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.noisetorch;
+      description = ''
+        The noisetorch package to use.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    security.wrappers.noisetorch = {
+      source = "${cfg.package}/bin/noisetorch";
+      capabilities = "cap_sys_resource=+ep";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/phosh.nix b/nixpkgs/nixos/modules/programs/phosh.nix
new file mode 100644
index 000000000000..1f50065f7818
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/phosh.nix
@@ -0,0 +1,159 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.phosh;
+
+  # Based on https://source.puri.sm/Librem5/librem5-base/-/blob/4596c1056dd75ac7f043aede07887990fd46f572/default/sm.puri.OSK0.desktop
+  oskItem = pkgs.makeDesktopItem {
+    name = "sm.puri.OSK0";
+    type = "Application";
+    desktopName = "On-screen keyboard";
+    exec = "${pkgs.squeekboard}/bin/squeekboard";
+    categories = "GNOME;Core;";
+    extraEntries = ''
+      OnlyShowIn=GNOME;
+      NoDisplay=true
+      X-GNOME-Autostart-Phase=Panel
+      X-GNOME-Provides=inputmethod
+      X-GNOME-Autostart-Notify=true
+      X-GNOME-AutoRestart=true
+    '';
+  };
+
+  phocConfigType = types.submodule {
+    options = {
+      xwayland = mkOption {
+        description = ''
+          Whether to enable XWayland support.
+
+          To start XWayland immediately, use `immediate`.
+        '';
+        type = types.enum [ "true" "false" "immediate" ];
+        default = "false";
+      };
+      cursorTheme = mkOption {
+        description = ''
+          Cursor theme to use in Phosh.
+        '';
+        type = types.str;
+        default = "default";
+      };
+      outputs = mkOption {
+        description = ''
+          Output configurations.
+        '';
+        type = types.attrsOf phocOutputType;
+        default = {
+          DSI-1 = {
+            scale = 2;
+          };
+        };
+      };
+    };
+  };
+
+  phocOutputType = types.submodule {
+    options = {
+      modeline = mkOption {
+        description = ''
+          One or more modelines.
+        '';
+        type = types.either types.str (types.listOf types.str);
+        default = [];
+        example = [
+          "87.25 720 776 848  976 1440 1443 1453 1493 -hsync +vsync"
+          "65.13 768 816 896 1024 1024 1025 1028 1060 -HSync +VSync"
+        ];
+      };
+      mode = mkOption {
+        description = ''
+          Default video mode.
+        '';
+        type = types.nullOr types.str;
+        default = null;
+        example = "768x1024";
+      };
+      scale = mkOption {
+        description = ''
+          Display scaling factor.
+        '';
+        type = types.nullOr types.ints.unsigned;
+        default = null;
+        example = 2;
+      };
+      rotate = mkOption {
+        description = ''
+          Screen transformation.
+        '';
+        type = types.enum [
+          "90" "180" "270" "flipped" "flipped-90" "flipped-180" "flipped-270" null
+        ];
+        default = null;
+      };
+    };
+  };
+
+  optionalKV = k: v: if v == null then "" else "${k} = ${builtins.toString v}";
+
+  renderPhocOutput = name: output: let
+    modelines = if builtins.isList output.modeline
+      then output.modeline
+      else [ output.modeline ];
+    renderModeline = l: "modeline = ${l}";
+  in ''
+    [output:${name}]
+    ${concatStringsSep "\n" (map renderModeline modelines)}
+    ${optionalKV "mode" output.mode}
+    ${optionalKV "scale" output.scale}
+    ${optionalKV "rotate" output.rotate}
+  '';
+
+  renderPhocConfig = phoc: let
+    outputs = mapAttrsToList renderPhocOutput phoc.outputs;
+  in ''
+    [core]
+    xwayland = ${phoc.xwayland}
+    ${concatStringsSep "\n" outputs}
+    [cursor]
+    theme = ${phoc.cursorTheme}
+  '';
+in {
+  options = {
+    programs.phosh = {
+      enable = mkEnableOption ''
+        Whether to enable, Phosh, related packages and default configurations.
+      '';
+      phocConfig = mkOption {
+        description = ''
+          Configurations for the Phoc compositor.
+        '';
+        type = types.oneOf [ types.lines types.path phocConfigType ];
+        default = {};
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [
+      pkgs.phoc
+      pkgs.phosh
+      pkgs.squeekboard
+      oskItem
+    ];
+
+    programs.feedbackd.enable = true;
+
+    security.pam.services.phosh = {};
+
+    services.gnome.core-shell.enable = true;
+    services.gnome.core-os-services.enable = true;
+    services.xserver.displayManager.sessionPackages = [ pkgs.phosh ];
+
+    environment.etc."phosh/phoc.ini".source =
+      if builtins.isPath cfg.phocConfig then cfg.phocConfig
+      else if builtins.isString cfg.phocConfig then pkgs.writeText "phoc.ini" cfg.phocConfig
+      else pkgs.writeText "phoc.ini" (renderPhocConfig cfg.phocConfig);
+  };
+}
diff --git a/nixpkgs/nixos/modules/programs/seahorse.nix b/nixpkgs/nixos/modules/programs/seahorse.nix
index b229d2a2c0db..c0a356bff57c 100644
--- a/nixpkgs/nixos/modules/programs/seahorse.nix
+++ b/nixpkgs/nixos/modules/programs/seahorse.nix
@@ -31,14 +31,14 @@ with lib;
 
   config = mkIf config.programs.seahorse.enable {
 
-    programs.ssh.askPassword = mkDefault "${pkgs.gnome3.seahorse}/libexec/seahorse/ssh-askpass";
+    programs.ssh.askPassword = mkDefault "${pkgs.gnome.seahorse}/libexec/seahorse/ssh-askpass";
 
     environment.systemPackages = [
-      pkgs.gnome3.seahorse
+      pkgs.gnome.seahorse
     ];
 
     services.dbus.packages = [
-      pkgs.gnome3.seahorse
+      pkgs.gnome.seahorse
     ];
 
   };
diff --git a/nixpkgs/nixos/modules/programs/sway.nix b/nixpkgs/nixos/modules/programs/sway.nix
index 107e783c0c21..3c09d9f00fd5 100644
--- a/nixpkgs/nixos/modules/programs/sway.nix
+++ b/nixpkgs/nixos/modules/programs/sway.nix
@@ -31,6 +31,7 @@ let
     extraOptions = cfg.extraOptions;
     withBaseWrapper = cfg.wrapperFeatures.base;
     withGtkWrapper = cfg.wrapperFeatures.gtk;
+    isNixOS = true;
   };
 in {
   options.programs.sway = {
@@ -38,9 +39,8 @@ in {
       Sway, the i3-compatible tiling Wayland compositor. You can manually launch
       Sway by executing "exec sway" on a TTY. Copy /etc/sway/config to
       ~/.config/sway/config to modify the default configuration. See
-      https://github.com/swaywm/sway/wiki and "man 5 sway" for more information.
-      Please have a look at the "extraSessionCommands" example for running
-      programs natively under Wayland'';
+      <link xlink:href="https://github.com/swaywm/sway/wiki" /> and
+      "man 5 sway" for more information'';
 
     wrapperFeatures = mkOption {
       type = wrapperOptions;
@@ -55,16 +55,20 @@ in {
       type = types.lines;
       default = "";
       example = ''
+        # SDL:
         export SDL_VIDEODRIVER=wayland
-        # needs qt5.qtwayland in systemPackages
-        export QT_QPA_PLATFORM=wayland
+        # QT (needs qt5.qtwayland in systemPackages):
+        export QT_QPA_PLATFORM=wayland-egl
         export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
         # Fix for some Java AWT applications (e.g. Android Studio),
         # use this if they aren't displayed properly:
         export _JAVA_AWT_WM_NONREPARENTING=1
       '';
       description = ''
-        Shell commands executed just before Sway is started.
+        Shell commands executed just before Sway is started. See
+        <link xlink:href="https://github.com/swaywm/sway/wiki/Running-programs-natively-under-wayland" />
+        and <link xlink:href="https://github.com/swaywm/wlroots/blob/master/docs/env_vars.md" />
+        for some useful environment variables.
       '';
     };
 
@@ -94,13 +98,15 @@ in {
       '';
       example = literalExample ''
         with pkgs; [
-          xwayland
           i3status i3status-rust
           termite rofi light
         ]
       '';
       description = ''
-        Extra packages to be installed system wide.
+        Extra packages to be installed system wide. See
+        <link xlink:href="https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway" /> and
+        <link xlink:href="https://github.com/swaywm/sway/wiki/i3-Migration-Guide#common-x11-apps-used-on-i3-with-wayland-alternatives" />
+        for a list of useful software.
       '';
     };
 
@@ -120,8 +126,11 @@ in {
       systemPackages = [ swayPackage ] ++ cfg.extraPackages;
       etc = {
         "sway/config".source = mkOptionDefault "${swayPackage}/etc/sway/config";
-        #"sway/security.d".source = mkOptionDefault "${swayPackage}/etc/sway/security.d/";
-        #"sway/config.d".source = mkOptionDefault "${swayPackage}/etc/sway/config.d/";
+        "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
+          # Import the most important environment variables into the D-Bus and systemd
+          # user environments (e.g. required for screen sharing and Pinentry prompts):
+          exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
+        '';
       };
     };
     security.pam.services.swaylock = {};
@@ -131,7 +140,9 @@ in {
     # To make a Sway session available if a display manager like SDDM is enabled:
     services.xserver.displayManager.sessionPackages = [ swayPackage ];
     programs.xwayland.enable = mkDefault true;
+    # For screen sharing (this option only has an effect with xdg.portal.enable):
+    xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
   };
 
-  meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];
+  meta.maintainers = with lib.maintainers; [ primeos colemickens ];
 }
diff --git a/nixpkgs/nixos/modules/security/acme.nix b/nixpkgs/nixos/modules/security/acme.nix
index eb3599b924d7..c0250171109f 100644
--- a/nixpkgs/nixos/modules/security/acme.nix
+++ b/nixpkgs/nixos/modules/security/acme.nix
@@ -152,7 +152,7 @@ let
     );
     renewOpts = escapeShellArgs (
       commonOpts
-      ++ [ "renew" "--reuse-key" ]
+      ++ [ "renew" ]
       ++ optionals data.ocspMustStaple [ "--must-staple" ]
       ++ data.extraLegoRenewFlags
     );
diff --git a/nixpkgs/nixos/modules/security/acme.xml b/nixpkgs/nixos/modules/security/acme.xml
index a78ff05f2eaa..8249da948c6d 100644
--- a/nixpkgs/nixos/modules/security/acme.xml
+++ b/nixpkgs/nixos/modules/security/acme.xml
@@ -194,7 +194,7 @@ services.httpd = {
   <para>
    This is useful if you want to generate a wildcard certificate, since
    ACME servers will only hand out wildcard certs over DNS validation.
-   There a number of supported DNS providers and servers you can utilise,
+   There are a number of supported DNS providers and servers you can utilise,
    see the <link xlink:href="https://go-acme.github.io/lego/dns/">lego docs</link>
    for provider/server specific configuration values. For the sake of these
    docs, we will provide a fully self-hosted example using bind.
diff --git a/nixpkgs/nixos/modules/security/apparmor-suid.nix b/nixpkgs/nixos/modules/security/apparmor-suid.nix
deleted file mode 100644
index 6c479e070e2b..000000000000
--- a/nixpkgs/nixos/modules/security/apparmor-suid.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ config, lib, pkgs, ... }:
-let
-  cfg = config.security.apparmor;
-in
-with lib;
-{
-  imports = [
-    (mkRenamedOptionModule [ "security" "virtualization" "flushL1DataCache" ] [ "security" "virtualisation" "flushL1DataCache" ])
-  ];
-
-  options.security.apparmor.confineSUIDApplications = mkOption {
-    type = types.bool;
-    default = true;
-    description = ''
-      Install AppArmor profiles for commonly-used SUID application
-      to mitigate potential privilege escalation attacks due to bugs
-      in such applications.
-
-      Currently available profiles: ping
-    '';
-  };
-
-  config = mkIf (cfg.confineSUIDApplications) {
-    security.apparmor.profiles = [ (pkgs.writeText "ping" ''
-      #include <tunables/global>
-      /run/wrappers/bin/ping {
-        #include <abstractions/base>
-        #include <abstractions/consoles>
-        #include <abstractions/nameservice>
-
-        capability net_raw,
-        capability setuid,
-        network inet raw,
-
-        ${pkgs.stdenv.cc.libc.out}/lib/*.so mr,
-        ${pkgs.libcap.lib}/lib/libcap.so* mr,
-        ${pkgs.attr.out}/lib/libattr.so* mr,
-
-        ${pkgs.iputils}/bin/ping mixr,
-
-        #/etc/modules.conf r,
-
-        ## Site-specific additions and overrides. See local/README for details.
-        ##include <local/bin.ping>
-      }
-    '') ];
-  };
-
-}
diff --git a/nixpkgs/nixos/modules/security/apparmor.nix b/nixpkgs/nixos/modules/security/apparmor.nix
index cfc65b347bc6..be1b0362fc13 100644
--- a/nixpkgs/nixos/modules/security/apparmor.nix
+++ b/nixpkgs/nixos/modules/security/apparmor.nix
@@ -1,59 +1,216 @@
 { config, lib, pkgs, ... }:
 
+with lib;
+
 let
-  inherit (lib) mkIf mkOption types concatMapStrings;
+  inherit (builtins) attrNames head map match readFile;
+  inherit (lib) types;
+  inherit (config.environment) etc;
   cfg = config.security.apparmor;
+  mkDisableOption = name: mkEnableOption name // {
+    default = true;
+    example = false;
+  };
+  enabledPolicies = filterAttrs (n: p: p.enable) cfg.policies;
 in
 
 {
-   options = {
-     security.apparmor = {
-       enable = mkOption {
-         type = types.bool;
-         default = false;
-         description = "Enable the AppArmor Mandatory Access Control system.";
-       };
-       profiles = mkOption {
-         type = types.listOf types.path;
-         default = [];
-         description = "List of files containing AppArmor profiles.";
-       };
-       packages = mkOption {
-         type = types.listOf types.package;
-         default = [];
-         description = "List of packages to be added to apparmor's include path";
-       };
-     };
-   };
-
-   config = mkIf cfg.enable {
-     environment.systemPackages = [ pkgs.apparmor-utils ];
-
-     boot.kernelParams = [ "apparmor=1" "security=apparmor" ];
-
-     systemd.services.apparmor = let
-       paths = concatMapStrings (s: " -I ${s}/etc/apparmor.d")
-         ([ pkgs.apparmor-profiles ] ++ cfg.packages);
-     in {
-       after = [ "local-fs.target" ];
-       before = [ "sysinit.target" ];
-       wantedBy = [ "multi-user.target" ];
-       unitConfig = {
-         DefaultDependencies = "no";
-       };
-       serviceConfig = {
-         Type = "oneshot";
-         RemainAfterExit = "yes";
-         ExecStart = map (p:
-           ''${pkgs.apparmor-parser}/bin/apparmor_parser -rKv ${paths} "${p}"''
-         ) cfg.profiles;
-         ExecStop = map (p:
-           ''${pkgs.apparmor-parser}/bin/apparmor_parser -Rv "${p}"''
-         ) cfg.profiles;
-         ExecReload = map (p:
-           ''${pkgs.apparmor-parser}/bin/apparmor_parser --reload ${paths} "${p}"''
-         ) cfg.profiles;
-       };
-     };
-   };
+  imports = [
+    (mkRemovedOptionModule [ "security" "apparmor" "confineSUIDApplications" ] "Please use the new options: `security.apparmor.policies.<policy>.enable'.")
+    (mkRemovedOptionModule [ "security" "apparmor" "profiles" ] "Please use the new option: `security.apparmor.policies'.")
+    apparmor/includes.nix
+    apparmor/profiles.nix
+  ];
+
+  options = {
+    security.apparmor = {
+      enable = mkEnableOption ''
+        the AppArmor Mandatory Access Control system.
+
+        If you're enabling this module on a running system,
+        note that a reboot will be required to activate AppArmor in the kernel.
+
+        Also, beware that enabling this module privileges stability over security
+        by not trying to kill unconfined but newly confinable running processes by default,
+        though it would be needed because AppArmor can only confine new
+        or already confined processes of an executable.
+        This killing would for instance be necessary when upgrading to a NixOS revision
+        introducing for the first time an AppArmor profile for the executable
+        of a running process.
+
+        Enable <xref linkend="opt-security.apparmor.killUnconfinedConfinables"/>
+        if you want this service to do such killing
+        by sending a <literal>SIGTERM</literal> to those running processes'';
+      policies = mkOption {
+        description = ''
+          AppArmor policies.
+        '';
+        type = types.attrsOf (types.submodule ({ name, config, ... }: {
+          options = {
+            enable = mkDisableOption "loading of the profile into the kernel";
+            enforce = mkDisableOption "enforcing of the policy or only complain in the logs";
+            profile = mkOption {
+              description = "The policy of the profile.";
+              type = types.lines;
+              apply = pkgs.writeText name;
+            };
+          };
+        }));
+        default = {};
+      };
+      includes = mkOption {
+        type = types.attrsOf types.lines;
+        default = {};
+        description = ''
+          List of paths to be added to AppArmor's searched paths
+          when resolving <literal>include</literal> directives.
+        '';
+        apply = mapAttrs pkgs.writeText;
+      };
+      packages = mkOption {
+        type = types.listOf types.package;
+        default = [];
+        description = "List of packages to be added to AppArmor's include path";
+      };
+      enableCache = mkEnableOption ''
+        caching of AppArmor policies
+        in <literal>/var/cache/apparmor/</literal>.
+
+        Beware that AppArmor policies almost always contain Nix store paths,
+        and thus produce at each change of these paths
+        a new cached version accumulating in the cache'';
+      killUnconfinedConfinables = mkEnableOption ''
+        killing of processes which have an AppArmor profile enabled
+        (in <xref linkend="opt-security.apparmor.policies"/>)
+        but are not confined (because AppArmor can only confine new processes).
+
+        This is only sending a gracious <literal>SIGTERM</literal> signal to the processes,
+        not a <literal>SIGKILL</literal>.
+
+        Beware that due to a current limitation of AppArmor,
+        only profiles with exact paths (and no name) can enable such kills'';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = map (policy:
+      { assertion = match ".*/.*" policy == null;
+        message = "`security.apparmor.policies.\"${policy}\"' must not contain a slash.";
+        # Because, for instance, aa-remove-unknown uses profiles_names_list() in rc.apparmor.functions
+        # which does not recurse into sub-directories.
+      }
+    ) (attrNames cfg.policies);
+
+    environment.systemPackages = [
+      pkgs.apparmor-utils
+      pkgs.apparmor-bin-utils
+    ];
+    environment.etc."apparmor.d".source = pkgs.linkFarm "apparmor.d" (
+      # It's important to put only enabledPolicies here and not all cfg.policies
+      # because aa-remove-unknown reads profiles from all /etc/apparmor.d/*
+      mapAttrsToList (name: p: { inherit name; path = p.profile; }) enabledPolicies ++
+      mapAttrsToList (name: path: { inherit name path; }) cfg.includes
+    );
+    environment.etc."apparmor/parser.conf".text = ''
+        ${if cfg.enableCache then "write-cache" else "skip-cache"}
+        cache-loc /var/cache/apparmor
+        Include /etc/apparmor.d
+      '' +
+      concatMapStrings (p: "Include ${p}/etc/apparmor.d\n") cfg.packages;
+    # For aa-logprof
+    environment.etc."apparmor/apparmor.conf".text = ''
+    '';
+    # For aa-logprof
+    environment.etc."apparmor/severity.db".source = pkgs.apparmor-utils + "/etc/apparmor/severity.db";
+    environment.etc."apparmor/logprof.conf".source = pkgs.runCommand "logprof.conf" {
+      header = ''
+        [settings]
+          # /etc/apparmor.d/ is read-only on NixOS
+          profiledir = /var/cache/apparmor/logprof
+          inactive_profiledir = /etc/apparmor.d/disable
+          # Use: journalctl -b --since today --grep audit: | aa-logprof
+          logfiles = /dev/stdin
+
+          parser = ${pkgs.apparmor-parser}/bin/apparmor_parser
+          ldd = ${pkgs.glibc.bin}/bin/ldd
+          logger = ${pkgs.util-linux}/bin/logger
+
+          # customize how file ownership permissions are presented
+          # 0 - off
+          # 1 - default of what ever mode the log reported
+          # 2 - force the new permissions to be user
+          # 3 - force all perms on the rule to be user
+          default_owner_prompt = 1
+
+          custom_includes = /etc/apparmor.d ${concatMapStringsSep " " (p: "${p}/etc/apparmor.d") cfg.packages}
+
+        [qualifiers]
+          ${pkgs.runtimeShell} = icnu
+          ${pkgs.bashInteractive}/bin/sh = icnu
+          ${pkgs.bashInteractive}/bin/bash = icnu
+          ${config.users.defaultUserShell} = icnu
+      '';
+      footer = "${pkgs.apparmor-utils}/etc/apparmor/logprof.conf";
+      passAsFile = [ "header" ];
+    } ''
+      cp $headerPath $out
+      sed '1,/\[qualifiers\]/d' $footer >> $out
+    '';
+
+    boot.kernelParams = [ "apparmor=1" "security=apparmor" ];
+
+    systemd.services.apparmor = {
+      after = [
+        "local-fs.target"
+        "systemd-journald-audit.socket"
+      ];
+      before = [ "sysinit.target" ];
+      wantedBy = [ "multi-user.target" ];
+      unitConfig = {
+        Description="Load AppArmor policies";
+        DefaultDependencies = "no";
+        ConditionSecurity = "apparmor";
+      };
+      # Reloading instead of restarting enables to load new AppArmor profiles
+      # without necessarily restarting all services which have Requires=apparmor.service
+      reloadIfChanged = true;
+      restartTriggers = [
+        etc."apparmor/parser.conf".source
+        etc."apparmor.d".source
+      ];
+      serviceConfig = let
+        killUnconfinedConfinables = pkgs.writeShellScript "apparmor-kill" ''
+          set -eu
+          ${pkgs.apparmor-bin-utils}/bin/aa-status --json |
+          ${pkgs.jq}/bin/jq --raw-output '.processes | .[] | .[] | select (.status == "unconfined") | .pid' |
+          xargs --verbose --no-run-if-empty --delimiter='\n' \
+          kill
+        '';
+        commonOpts = p: "--verbose --show-cache ${optionalString (!p.enforce) "--complain "}${p.profile}";
+        in {
+        Type = "oneshot";
+        RemainAfterExit = "yes";
+        ExecStartPre = "${pkgs.apparmor-utils}/bin/aa-teardown";
+        ExecStart = mapAttrsToList (n: p: "${pkgs.apparmor-parser}/bin/apparmor_parser --add ${commonOpts p}") enabledPolicies;
+        ExecStartPost = optional cfg.killUnconfinedConfinables killUnconfinedConfinables;
+        ExecReload =
+          # Add or replace into the kernel profiles in enabledPolicies
+          # (because AppArmor can do that without stopping the processes already confined).
+          mapAttrsToList (n: p: "${pkgs.apparmor-parser}/bin/apparmor_parser --replace ${commonOpts p}") enabledPolicies ++
+          # Remove from the kernel any profile whose name is not
+          # one of the names within the content of the profiles in enabledPolicies
+          # (indirectly read from /etc/apparmor.d/*, without recursing into sub-directory).
+          # Note that this does not remove profiles dynamically generated by libvirt.
+          [ "${pkgs.apparmor-utils}/bin/aa-remove-unknown" ] ++
+          # Optionaly kill the processes which are unconfined but now have a profile loaded
+          # (because AppArmor can only start to confine new processes).
+          optional cfg.killUnconfinedConfinables killUnconfinedConfinables;
+        ExecStop = "${pkgs.apparmor-utils}/bin/aa-teardown";
+        CacheDirectory = [ "apparmor" "apparmor/logprof" ];
+        CacheDirectoryMode = "0700";
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ julm ];
 }
diff --git a/nixpkgs/nixos/modules/security/apparmor/includes.nix b/nixpkgs/nixos/modules/security/apparmor/includes.nix
new file mode 100644
index 000000000000..e3dd410b3bb5
--- /dev/null
+++ b/nixpkgs/nixos/modules/security/apparmor/includes.nix
@@ -0,0 +1,317 @@
+{ config, lib, pkgs, ... }:
+let
+  inherit (builtins) attrNames hasAttr isAttrs;
+  inherit (lib) getLib;
+  inherit (config.environment) etc;
+  # Utility to generate an AppArmor rule
+  # only when the given path exists in config.environment.etc
+  etcRule = arg:
+    let go = { path ? null, mode ? "r", trail ? "" }:
+      lib.optionalString (hasAttr path etc)
+        "${mode} ${config.environment.etc.${path}.source}${trail},";
+    in if isAttrs arg
+    then go arg
+    else go { path = arg; };
+in
+{
+# FIXME: most of the etcRule calls below have been
+# written systematically by converting from apparmor-profiles's profiles
+# without testing nor deep understanding of their uses,
+# and thus may need more rules or can have less rules;
+# this remains to be determined case by case,
+# some may even be completely useless.
+config.security.apparmor.includes = {
+  # This one is included by <tunables/global>
+  # which is usualy included before any profile.
+  "abstractions/tunables/alias" = ''
+    alias /bin -> /run/current-system/sw/bin,
+    alias /lib/modules -> /run/current-system/kernel/lib/modules,
+    alias /sbin -> /run/current-system/sw/sbin,
+    alias /usr -> /run/current-system/sw,
+  '';
+  "abstractions/audio" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/audio"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      "asound.conf"
+      "esound/esd.conf"
+      "libao.conf"
+      { path = "pulse";  trail = "/"; }
+      { path = "pulse";  trail = "/**"; }
+      { path = "sound";  trail = "/"; }
+      { path = "sound";  trail = "/**"; }
+      { path = "alsa/conf.d";  trail = "/"; }
+      { path = "alsa/conf.d";  trail = "/*"; }
+      "openal/alsoft.conf"
+      "wildmidi/wildmidi.conf"
+    ];
+  "abstractions/authentication" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/authentication"
+    # Defined in security.pam
+    include <abstractions/pam>
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      "nologin"
+      "securetty"
+      { path = "security";  trail = "/*"; }
+      "shadow"
+      "gshadow"
+      "pwdb.conf"
+      "default/passwd"
+      "login.defs"
+    ];
+  "abstractions/base" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/base"
+    r ${pkgs.stdenv.cc.libc}/share/locale/**,
+    r ${pkgs.stdenv.cc.libc}/share/locale.alias,
+    ${lib.optionalString (pkgs.glibcLocales != null) "r ${pkgs.glibcLocales}/lib/locale/locale-archive,"}
+    ${etcRule "localtime"}
+    r ${pkgs.tzdata}/share/zoneinfo/**,
+    r ${pkgs.stdenv.cc.libc}/share/i18n/**,
+  '';
+  "abstractions/bash" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/bash"
+
+    # bash inspects filesystems at startup
+    # and /etc/mtab is linked to /proc/mounts
+    @{PROC}/mounts
+
+    # system-wide bash configuration
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      "profile.dos"
+      "profile"
+      "profile.d"
+      { path = "profile.d";  trail = "/*"; }
+      "bashrc"
+      "bash.bashrc"
+      "bash.bashrc.local"
+      "bash_completion"
+      "bash_completion.d"
+      { path = "bash_completion.d";  trail = "/*"; }
+      # bash relies on system-wide readline configuration
+      "inputrc"
+      # run out of /etc/bash.bashrc
+      "DIR_COLORS"
+    ];
+  "abstractions/consoles" = ''
+     include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/consoles"
+  '';
+  "abstractions/cups-client" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/cpus-client"
+    ${etcRule "cups/cups-client.conf"}
+  '';
+  "abstractions/dbus-session-strict" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/dbus-session-strict"
+    ${etcRule "machine-id"}
+  '';
+  "abstractions/dconf" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/dconf"
+    ${etcRule { path = "dconf";  trail = "/**"; }}
+  '';
+  "abstractions/dri-common" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/dri-common"
+    ${etcRule "drirc"}
+  '';
+  # The config.fonts.fontconfig NixOS module adds many files to /etc/fonts/
+  # by symlinking them but without exporting them outside of its NixOS module,
+  # those are therefore added there to this "abstractions/fonts".
+  "abstractions/fonts" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/fonts"
+    ${etcRule { path = "fonts";  trail = "/**"; }}
+  '';
+  "abstractions/gnome" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/gnome"
+    include <abstractions/fonts>
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      { path = "gnome";  trail = "/gtkrc*"; }
+      { path = "gtk";  trail = "/*"; }
+      { path = "gtk-2.0";  trail = "/*"; }
+      { path = "gtk-3.0";  trail = "/*"; }
+      "orbitrc"
+      { path = "pango";  trail = "/*"; }
+      { path = "/etc/gnome-vfs-2.0";  trail = "/modules/"; }
+      { path = "/etc/gnome-vfs-2.0";  trail = "/modules/*"; }
+      "papersize"
+      { path = "cups";  trail = "/lpoptions"; }
+      { path = "gnome";  trail = "/defaults.list"; }
+      { path = "xdg";  trail = "/{,*-}mimeapps.list"; }
+      "xdg/mimeapps.list"
+    ];
+  "abstractions/kde" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/kde"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      { path = "qt3";  trail = "/kstylerc"; }
+      { path = "qt3";  trail = "/qt_plugins_3.3rc"; }
+      { path = "qt3";  trail = "/qtrc"; }
+      "kderc"
+      { path = "kde3";  trail = "/*"; }
+      "kde4rc"
+      { path = "xdg";  trail = "/kdeglobals"; }
+      { path = "xdg";  trail = "/Trolltech.conf"; }
+    ];
+  "abstractions/kerberosclient" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/kerberosclient"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+    { path = "krb5.keytab"; mode="rk"; }
+    "krb5.conf"
+    "krb5.conf.d"
+    { path = "krb5.conf.d";  trail = "/*"; }
+
+    # config files found via strings on libs
+    "krb.conf"
+    "krb.realms"
+    "srvtab"
+    ];
+  "abstractions/ldapclient" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/ldapclient"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      "ldap.conf"
+      "ldap.secret"
+      { path = "openldap";  trail = "/*"; }
+      { path = "openldap";  trail = "/cacerts/*"; }
+      { path = "sasl2";  trail = "/*"; }
+    ];
+  "abstractions/likewise" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/likewise"
+  '';
+  "abstractions/mdns" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/mdns"
+    ${etcRule "nss_mdns.conf"}
+  '';
+  "abstractions/nameservice" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nameservice"
+
+    # Many programs wish to perform nameservice-like operations, such as
+    # looking up users by name or id, groups by name or id, hosts by name
+    # or IP, etc. These operations may be performed through files, dns,
+    # NIS, NIS+, LDAP, hesiod, wins, etc. Allow them all here.
+    mr ${getLib pkgs.nss}/lib/libnss_*.so*,
+    mr ${getLib pkgs.nss}/lib64/libnss_*.so*,
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      "group"
+      "host.conf"
+      "hosts"
+      "nsswitch.conf"
+      "gai.conf"
+      "passwd"
+      "protocols"
+
+      # libtirpc (used for NIS/YP login) needs this
+      "netconfig"
+
+      "resolv.conf"
+
+      { path = "samba";  trail = "/lmhosts"; }
+      "services"
+
+      "default/nss"
+
+      # libnl-3-200 via libnss-gw-name
+      { path = "libnl";  trail = "/classid"; }
+      { path = "libnl-3";  trail = "/classid"; }
+    ];
+  "abstractions/nis" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nis"
+  '';
+  "abstractions/nvidia" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/nvidia"
+    ${etcRule "vdpau_wrapper.cfg"}
+  '';
+  "abstractions/opencl-common" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/opencl-common"
+    ${etcRule { path = "OpenCL";  trail = "/**"; }}
+  '';
+  "abstractions/opencl-mesa" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/opencl-mesa"
+    ${etcRule "default/drirc"}
+  '';
+  "abstractions/openssl" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/openssl"
+    ${etcRule { path = "ssl";  trail = "/openssl.cnf"; }}
+  '';
+  "abstractions/p11-kit" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/p11-kit"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      { path = "pkcs11";  trail = "/"; }
+      { path = "pkcs11";  trail = "/pkcs11.conf"; }
+      { path = "pkcs11";  trail = "/modules/"; }
+      { path = "pkcs11";  trail = "/modules/*"; }
+    ];
+  "abstractions/perl" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/perl"
+    ${etcRule { path = "perl";  trail = "/**"; }}
+  '';
+  "abstractions/php" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/php"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      { path = "php";  trail = "/**/"; }
+      { path = "php5";  trail = "/**/"; }
+      { path = "php7";  trail = "/**/"; }
+      { path = "php";  trail = "/**.ini"; }
+      { path = "php5";  trail = "/**.ini"; }
+      { path = "php7";  trail = "/**.ini"; }
+    ];
+  "abstractions/postfix-common" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/postfix-common"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      "mailname"
+      { path = "postfix";  trail = "/*.cf"; }
+      "postfix/main.cf"
+      "postfix/master.cf"
+    ];
+  "abstractions/python" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/python"
+  '';
+  "abstractions/qt5" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/qt5"
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      { path = "xdg";  trail = "/QtProject/qtlogging.ini"; }
+      { path = "xdg/QtProject";  trail = "/qtlogging.ini"; }
+      "xdg/QtProject/qtlogging.ini"
+    ];
+  "abstractions/samba" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/samba"
+    ${etcRule { path = "samba";  trail = "/*"; }}
+  '';
+  "abstractions/ssl_certs" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/ssl_certs"
+
+    # For the NixOS module: security.acme
+    r /var/lib/acme/*/cert.pem,
+    r /var/lib/acme/*/chain.pem,
+    r /var/lib/acme/*/fullchain.pem,
+
+    '' + lib.concatMapStringsSep "\n" etcRule [
+      "ssl/certs/ca-certificates.crt"
+      "ssl/certs/ca-bundle.crt"
+      "pki/tls/certs/ca-bundle.crt"
+
+      { path = "ssl/trust";  trail = "/"; }
+      { path = "ssl/trust";  trail = "/*"; }
+      { path = "ssl/trust/anchors";  trail = "/"; }
+      { path = "ssl/trust/anchors";  trail = "/**"; }
+      { path = "pki/trust";  trail = "/"; }
+      { path = "pki/trust";  trail = "/*"; }
+      { path = "pki/trust/anchors";  trail = "/"; }
+      { path = "pki/trust/anchors";  trail = "/**"; }
+    ];
+  "abstractions/ssl_keys" = ''
+    # security.acme NixOS module
+    r /var/lib/acme/*/full.pem,
+    r /var/lib/acme/*/key.pem,
+  '';
+  "abstractions/vulkan" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/vulkan"
+    ${etcRule { path = "vulkan/icd.d";  trail = "/"; }}
+    ${etcRule { path = "vulkan/icd.d";  trail = "/*.json"; }}
+  '';
+  "abstractions/winbind" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/winbind"
+    ${etcRule { path = "samba";  trail = "/smb.conf"; }}
+    ${etcRule { path = "samba";  trail = "/dhcp.conf"; }}
+  '';
+  "abstractions/X" = ''
+    include "${pkgs.apparmor-profiles}/etc/apparmor.d/abstractions/X"
+    ${etcRule { path = "X11/cursors";  trail = "/"; }}
+    ${etcRule { path = "X11/cursors";  trail = "/**"; }}
+  '';
+};
+}
diff --git a/nixpkgs/nixos/modules/security/apparmor/profiles.nix b/nixpkgs/nixos/modules/security/apparmor/profiles.nix
new file mode 100644
index 000000000000..8eb630b5a48a
--- /dev/null
+++ b/nixpkgs/nixos/modules/security/apparmor/profiles.nix
@@ -0,0 +1,11 @@
+{ config, lib, pkgs, ... }:
+let apparmor = config.security.apparmor; in
+{
+config.security.apparmor.packages = [ pkgs.apparmor-profiles ];
+config.security.apparmor.policies."bin.ping".profile = lib.mkIf apparmor.policies."bin.ping".enable ''
+  include "${pkgs.iputils.apparmor}/bin.ping"
+  include "${pkgs.inetutils.apparmor}/bin.ping"
+  # Note that including those two profiles in the same profile
+  # would not work if the second one were to re-include <tunables/global>.
+'';
+}
diff --git a/nixpkgs/nixos/modules/security/ca.nix b/nixpkgs/nixos/modules/security/ca.nix
index 1c4ee421fc56..7df86e71423f 100644
--- a/nixpkgs/nixos/modules/security/ca.nix
+++ b/nixpkgs/nixos/modules/security/ca.nix
@@ -10,15 +10,10 @@ let
     blacklist = cfg.caCertificateBlacklist;
   };
 
-  caCertificates = pkgs.runCommand "ca-certificates.crt"
-    { files =
-        cfg.certificateFiles ++
-        [ (builtins.toFile "extra.crt" (concatStringsSep "\n" cfg.certificates)) ];
-      preferLocalBuild = true;
-     }
-    ''
-      cat $files > $out
-    '';
+  caCertificates = pkgs.runCommand "ca-certificates.crt" {
+    files = cfg.certificateFiles ++ [ (builtins.toFile "extra.crt" (concatStringsSep "\n" cfg.certificates)) ];
+    preferLocalBuild = true;
+  } "awk 1 $files > $out";  # awk ensures a newline between each pair of consecutive files
 
 in
 
diff --git a/nixpkgs/nixos/modules/security/misc.nix b/nixpkgs/nixos/modules/security/misc.nix
index d51dbbb77f71..e7abc1e0d597 100644
--- a/nixpkgs/nixos/modules/security/misc.nix
+++ b/nixpkgs/nixos/modules/security/misc.nix
@@ -7,6 +7,10 @@ with lib;
     maintainers = [ maintainers.joachifm ];
   };
 
+  imports = [
+    (lib.mkRenamedOptionModule [ "security" "virtualization" "flushL1DataCache" ] [ "security" "virtualisation" "flushL1DataCache" ])
+  ];
+
   options = {
     security.allowUserNamespaces = mkOption {
       type = types.bool;
diff --git a/nixpkgs/nixos/modules/security/pam.nix b/nixpkgs/nixos/modules/security/pam.nix
index 103cf2050123..3cde7e951551 100644
--- a/nixpkgs/nixos/modules/security/pam.nix
+++ b/nixpkgs/nixos/modules/security/pam.nix
@@ -433,7 +433,7 @@ let
                 ("auth optional ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so" +
                  " kwalletd=${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5")}
               ${optionalString cfg.enableGnomeKeyring
-                "auth optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so"}
+                "auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so"}
               ${optionalString cfg.gnupg.enable
                 "auth optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"
                 + optionalString cfg.gnupg.storeOnly " store-only"
@@ -471,7 +471,7 @@ let
           ${optionalString config.krb5.enable
               "password sufficient ${pam_krb5}/lib/security/pam_krb5.so use_first_pass"}
           ${optionalString cfg.enableGnomeKeyring
-              "password optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so use_authtok"}
+              "password optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so use_authtok"}
 
           # Session management.
           ${optionalString cfg.setEnvironment ''
@@ -512,7 +512,7 @@ let
               ("session optional ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so" +
                " kwalletd=${pkgs.plasma5Packages.kwallet.bin}/bin/kwalletd5")}
           ${optionalString (cfg.enableGnomeKeyring)
-              "session optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start"}
+              "session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start"}
           ${optionalString cfg.gnupg.enable
               "session optional ${pkgs.pam_gnupg}/lib/security/pam_gnupg.so"
               + optionalString cfg.gnupg.noAutostart " no-autostart"
@@ -895,6 +895,81 @@ in
         runuser-l = { rootOK = true; unixAuth = false; };
       };
 
+    security.apparmor.includes."abstractions/pam" = let
+      isEnabled = test: fold or false (map test (attrValues config.security.pam.services));
+      in
+      lib.concatMapStringsSep "\n"
+        (name: "r ${config.environment.etc."pam.d/${name}".source},")
+        (attrNames config.security.pam.services) +
+      ''
+      mr ${getLib pkgs.pam}/lib/security/pam_filter/*,
+      mr ${getLib pkgs.pam}/lib/security/pam_*.so,
+      r ${getLib pkgs.pam}/lib/security/,
+      '' +
+      optionalString use_ldap ''
+         mr ${pam_ldap}/lib/security/pam_ldap.so,
+      '' +
+      optionalString config.services.sssd.enable ''
+        mr ${pkgs.sssd}/lib/security/pam_sss.so,
+      '' +
+      optionalString config.krb5.enable ''
+        mr ${pam_krb5}/lib/security/pam_krb5.so,
+        mr ${pam_ccreds}/lib/security/pam_ccreds.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.googleOsLoginAccountVerification)) ''
+        mr ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so,
+        mr ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_admin.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.googleOsLoginAuthentication)) ''
+        mr ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so,
+      '' +
+      optionalString (config.security.pam.enableSSHAgentAuth
+                     && isEnabled (cfg: cfg.sshAgentAuth)) ''
+        mr ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.fprintAuth)) ''
+        mr ${pkgs.fprintd}/lib/security/pam_fprintd.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.u2fAuth)) ''
+        mr ${pkgs.pam_u2f}/lib/security/pam_u2f.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.usbAuth)) ''
+        mr ${pkgs.pam_usb}/lib/security/pam_usb.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.oathAuth)) ''
+        "mr ${pkgs.oathToolkit}/lib/security/pam_oath.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.yubicoAuth)) ''
+        mr ${pkgs.yubico-pam}/lib/security/pam_yubico.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.duoSecurity.enable)) ''
+        mr ${pkgs.duo-unix}/lib/security/pam_duo.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.otpwAuth)) ''
+        mr ${pkgs.otpw}/lib/security/pam_otpw.so,
+      '' +
+      optionalString config.security.pam.enableEcryptfs ''
+        mr ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.pamMount)) ''
+        mr ${pkgs.pam_mount}/lib/security/pam_mount.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.enableGnomeKeyring)) ''
+        mr ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.startSession)) ''
+        mr ${pkgs.systemd}/lib/security/pam_systemd.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.enableAppArmor)
+                     && config.security.apparmor.enable) ''
+        mr ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so,
+      '' +
+      optionalString (isEnabled (cfg: cfg.enableKwallet)) ''
+        mr ${pkgs.plasma5Packages.kwallet-pam}/lib/security/pam_kwallet5.so,
+      '' +
+      optionalString config.virtualisation.lxc.lxcfs.enable ''
+        mr ${pkgs.lxc}/lib/security/pam_cgfs.so
+      '';
   };
 
 }
diff --git a/nixpkgs/nixos/modules/security/pam_mount.nix b/nixpkgs/nixos/modules/security/pam_mount.nix
index 9a0143c155c5..e25ace38f57f 100644
--- a/nixpkgs/nixos/modules/security/pam_mount.nix
+++ b/nixpkgs/nixos/modules/security/pam_mount.nix
@@ -29,6 +29,28 @@ in
           xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
         '';
       };
+
+      additionalSearchPaths = mkOption {
+        type = types.listOf types.package;
+        default = [];
+        example = literalExample "[ pkgs.bindfs ]";
+        description = ''
+          Additional programs to include in the search path of pam_mount.
+          Useful for example if you want to use some FUSE filesystems like bindfs.
+        '';
+      };
+
+      fuseMountOptions = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = literalExample ''
+          [ "nodev" "nosuid" "force-user=%(USER)" "gid=%(USERGID)" "perms=0700" "chmod-deny" "chown-deny" "chgrp-deny" ]
+        '';
+        description = ''
+          Global mount options that apply to every FUSE volume.
+          You can define volume-specific options in the volume definitions.
+        '';
+      };
     };
 
   };
@@ -60,11 +82,12 @@ in
           <!-- if activated, requires ofl from hxtools to be present -->
           <logout wait="0" hup="no" term="no" kill="no" />
           <!-- set PATH variable for pam_mount module -->
-          <path>${pkgs.util-linux}/bin</path>
+          <path>${makeBinPath ([ pkgs.util-linux ] ++ cfg.additionalSearchPaths)}</path>
           <!-- create mount point if not present -->
           <mkmountpoint enable="1" remove="true" />
 
           <!-- specify the binaries to be called -->
+          <fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ${concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])}</fusemount>
           <cryptmount>${pkgs.pam_mount}/bin/mount.crypt %(VOLUME) %(MNTPT)</cryptmount>
           <cryptumount>${pkgs.pam_mount}/bin/umount.crypt %(MNTPT)</cryptumount>
           <pmvarrun>${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>
diff --git a/nixpkgs/nixos/modules/security/sudo.nix b/nixpkgs/nixos/modules/security/sudo.nix
index cc3ff3d11b91..2e73f8f4f311 100644
--- a/nixpkgs/nixos/modules/security/sudo.nix
+++ b/nixpkgs/nixos/modules/security/sudo.nix
@@ -61,6 +61,17 @@ in
         '';
       };
 
+    security.sudo.execWheelOnly = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Only allow members of the <code>wheel</code> group to execute sudo by
+        setting the executable's permissions accordingly.
+        This prevents users that are not members of <code>wheel</code> from
+        exploiting vulnerabilities in sudo such as CVE-2021-3156.
+      '';
+    };
+
     security.sudo.configFile = mkOption {
       type = types.lines;
       # Note: if syntax errors are detected in this file, the NixOS
@@ -216,9 +227,20 @@ in
         ${cfg.extraConfig}
       '';
 
-    security.wrappers = {
-      sudo.source = "${cfg.package.out}/bin/sudo";
-      sudoedit.source = "${cfg.package.out}/bin/sudoedit";
+    security.wrappers = let
+      owner = "root";
+      group = if cfg.execWheelOnly then "wheel" else "root";
+      setuid = true;
+      permissions = if cfg.execWheelOnly then "u+rx,g+x" else "u+rx,g+x,o+x";
+    in {
+      sudo = {
+        source = "${cfg.package.out}/bin/sudo";
+        inherit owner group setuid permissions;
+      };
+      sudoedit = {
+        source = "${cfg.package.out}/bin/sudoedit";
+        inherit owner group setuid permissions;
+      };
     };
 
     environment.systemPackages = [ sudo ];
diff --git a/nixpkgs/nixos/modules/security/wrappers/default.nix b/nixpkgs/nixos/modules/security/wrappers/default.nix
index 3cbf22fea7a9..1e65f4515155 100644
--- a/nixpkgs/nixos/modules/security/wrappers/default.nix
+++ b/nixpkgs/nixos/modules/security/wrappers/default.nix
@@ -171,6 +171,14 @@ in
       export PATH="${wrapperDir}:$PATH"
     '';
 
+    security.apparmor.includes."nixos/security.wrappers" = ''
+      include "${pkgs.apparmorRulesFromClosure { name="security.wrappers"; } [
+        securityWrapper
+        pkgs.stdenv.cc.cc
+        pkgs.stdenv.cc.libc
+      ]}"
+    '';
+
     ###### setcap activation script
     system.activationScripts.wrappers =
       lib.stringAfter [ "specialfs" "users" ]
diff --git a/nixpkgs/nixos/modules/services/audio/alsa.nix b/nixpkgs/nixos/modules/services/audio/alsa.nix
index aff3fe2ba42d..0d743ed31da8 100644
--- a/nixpkgs/nixos/modules/services/audio/alsa.nix
+++ b/nixpkgs/nixos/modules/services/audio/alsa.nix
@@ -5,7 +5,7 @@ with lib;
 
 let
 
-  inherit (pkgs) alsaUtils;
+  inherit (pkgs) alsa-utils;
 
   pulseaudioEnabled = config.hardware.pulseaudio.enable;
 
@@ -88,13 +88,13 @@ in
 
   config = mkIf config.sound.enable {
 
-    environment.systemPackages = [ alsaUtils ];
+    environment.systemPackages = [ alsa-utils ];
 
     environment.etc = mkIf (!pulseaudioEnabled && config.sound.extraConfig != "")
       { "asound.conf".text = config.sound.extraConfig; };
 
     # ALSA provides a udev rule for restoring volume settings.
-    services.udev.packages = [ alsaUtils ];
+    services.udev.packages = [ alsa-utils ];
 
     boot.kernelModules = optional config.sound.enableOSSEmulation "snd_pcm_oss";
 
@@ -107,7 +107,7 @@ in
           Type = "oneshot";
           RemainAfterExit = true;
           ExecStart = "${pkgs.coreutils}/bin/mkdir -p /var/lib/alsa";
-          ExecStop = "${alsaUtils}/sbin/alsactl store --ignore";
+          ExecStop = "${alsa-utils}/sbin/alsactl store --ignore";
         };
       };
 
@@ -115,16 +115,16 @@ in
       enable = true;
       bindings = [
         # "Mute" media key
-        { keys = [ 113 ]; events = [ "key" ];       command = "${alsaUtils}/bin/amixer -q set Master toggle"; }
+        { keys = [ 113 ]; events = [ "key" ];       command = "${alsa-utils}/bin/amixer -q set Master toggle"; }
 
         # "Lower Volume" media key
-        { keys = [ 114 ]; events = [ "key" "rep" ]; command = "${alsaUtils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}- unmute"; }
+        { keys = [ 114 ]; events = [ "key" "rep" ]; command = "${alsa-utils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}- unmute"; }
 
         # "Raise Volume" media key
-        { keys = [ 115 ]; events = [ "key" "rep" ]; command = "${alsaUtils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}+ unmute"; }
+        { keys = [ 115 ]; events = [ "key" "rep" ]; command = "${alsa-utils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}+ unmute"; }
 
         # "Mic Mute" media key
-        { keys = [ 190 ]; events = [ "key" ];       command = "${alsaUtils}/bin/amixer -q set Capture toggle"; }
+        { keys = [ 190 ]; events = [ "key" ];       command = "${alsa-utils}/bin/amixer -q set Capture toggle"; }
       ];
     };
 
diff --git a/nixpkgs/nixos/modules/services/audio/botamusique.nix b/nixpkgs/nixos/modules/services/audio/botamusique.nix
new file mode 100644
index 000000000000..14614d2dd161
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/audio/botamusique.nix
@@ -0,0 +1,114 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.botamusique;
+
+  format = pkgs.formats.ini {};
+  configFile = format.generate "botamusique.ini" cfg.settings;
+in
+{
+  meta.maintainers = with lib.maintainers; [ hexa ];
+
+  options.services.botamusique = {
+    enable = mkEnableOption "botamusique, a bot to play audio streams on mumble";
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.botamusique;
+      description = "The botamusique package to use.";
+    };
+
+    settings = mkOption {
+      type = with types; submodule {
+        freeformType = format.type;
+        options = {
+          server.host = mkOption {
+            type = types.str;
+            default = "localhost";
+            example = "mumble.example.com";
+            description = "Hostname of the mumble server to connect to.";
+          };
+
+          server.port = mkOption {
+            type = types.port;
+            default = 64738;
+            description = "Port of the mumble server to connect to.";
+          };
+
+          bot.username = mkOption {
+            type = types.str;
+            default = "botamusique";
+            description = "Name the bot should appear with.";
+          };
+
+          bot.comment = mkOption {
+            type = types.str;
+            default = "Hi, I'm here to play radio, local music or youtube/soundcloud music. Have fun!";
+            description = "Comment displayed for the bot.";
+          };
+        };
+      };
+      default = {};
+      description = ''
+        Your <filename>configuration.ini</filename> as a Nix attribute set. Look up
+        possible options in the <link xlink:href="https://github.com/azlux/botamusique/blob/master/configuration.example.ini">configuration.example.ini</link>.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.botamusique = {
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      unitConfig.Documentation = "https://github.com/azlux/botamusique/wiki";
+
+      environment.HOME = "/var/lib/botamusique";
+
+      serviceConfig = {
+        ExecStart = "${cfg.package}/bin/botamusique --config ${configFile}";
+        Restart = "always"; # the bot exits when the server connection is lost
+
+        # Hardening
+        CapabilityBoundingSet = [ "" ];
+        DynamicUser = true;
+        IPAddressDeny = [
+          "link-local"
+          "multicast"
+        ];
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        ProcSubset = "pid";
+        PrivateDevices = true;
+        PrivateUsers = true;
+        PrivateTmp = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictAddressFamilies = [
+          "AF_INET"
+          "AF_INET6"
+        ];
+        StateDirectory = "botamusique";
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged"
+          "~@resources"
+        ];
+        UMask = "0077";
+        WorkingDirectory = "/var/lib/botamusique";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/audio/jack.nix b/nixpkgs/nixos/modules/services/audio/jack.nix
index bee97dbfc6b3..d0a95b87ee1b 100644
--- a/nixpkgs/nixos/modules/services/audio/jack.nix
+++ b/nixpkgs/nixos/modules/services/audio/jack.nix
@@ -8,7 +8,7 @@ let
   pcmPlugin = cfg.jackd.enable && cfg.alsa.enable;
   loopback = cfg.jackd.enable && cfg.loopback.enable;
 
-  enable32BitAlsaPlugins = cfg.alsa.support32Bit && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.alsaLib != null;
+  enable32BitAlsaPlugins = cfg.alsa.support32Bit && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.alsa-lib != null;
 
   umaskNeeded = versionOlder cfg.jackd.package.version "1.9.12";
   bridgeNeeded = versionAtLeast cfg.jackd.package.version "1.9.12";
@@ -129,9 +129,9 @@ in {
     (mkIf pcmPlugin {
       sound.extraConfig = ''
         pcm_type.jack {
-          libs.native = ${pkgs.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;
+          libs.native = ${pkgs.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;
           ${lib.optionalString enable32BitAlsaPlugins
-          "libs.32Bit = ${pkgs.pkgsi686Linux.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;"}
+          "libs.32Bit = ${pkgs.pkgsi686Linux.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;"}
         }
         pcm.!default {
           @func getenv
@@ -234,7 +234,7 @@ in {
 
       environment = {
         systemPackages = [ cfg.jackd.package ];
-        etc."alsa/conf.d/50-jack.conf".source = "${pkgs.alsaPlugins}/etc/alsa/conf.d/50-jack.conf";
+        etc."alsa/conf.d/50-jack.conf".source = "${pkgs.alsa-plugins}/etc/alsa/conf.d/50-jack.conf";
         variables.JACK_PROMISCUOUS_SERVER = "jackaudio";
       };
 
@@ -290,5 +290,5 @@ in {
 
   ];
 
-  meta.maintainers = [ maintainers.gnidorah ];
+  meta.maintainers = [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/audio/mpd.nix b/nixpkgs/nixos/modules/services/audio/mpd.nix
index eee6c5f423d5..e33e860d883d 100644
--- a/nixpkgs/nixos/modules/services/audio/mpd.nix
+++ b/nixpkgs/nixos/modules/services/audio/mpd.nix
@@ -233,14 +233,15 @@ in {
         {
           User = "${cfg.user}";
           ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon /run/mpd/mpd.conf";
-          ExecStartPre = pkgs.writeShellScript "mpd-start-pre" ''
+          ExecStartPre = pkgs.writeShellScript "mpd-start-pre" (''
             set -euo pipefail
             install -m 600 ${mpdConf} /run/mpd/mpd.conf
-            ${optionalString (cfg.credentials != [])
-            "${pkgs.replace}/bin/replace-literal -fe ${
-              concatStringsSep " -a " (imap0 (i: c: "\"{{password-${toString i}}}\" \"$(cat ${c.passwordFile})\"") cfg.credentials)
-            } /run/mpd/mpd.conf"}
-          '';
+          '' + optionalString (cfg.credentials != [])
+            (concatStringsSep "\n"
+              (imap0
+                (i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'')
+                cfg.credentials))
+          );
           RuntimeDirectory = "mpd";
           Type = "notify";
           LimitRTPRIO = 50;
diff --git a/nixpkgs/nixos/modules/services/audio/mpdscribble.nix b/nixpkgs/nixos/modules/services/audio/mpdscribble.nix
index 642d8743935f..1368543ae1a4 100644
--- a/nixpkgs/nixos/modules/services/audio/mpdscribble.nix
+++ b/nixpkgs/nixos/modules/services/audio/mpdscribble.nix
@@ -59,7 +59,7 @@ let
 
   replaceSecret = secretFile: placeholder: targetFile:
     optionalString (secretFile != null) ''
-      ${pkgs.replace}/bin/replace-literal -ef ${placeholder} "$(cat ${secretFile})" ${targetFile}'';
+      ${pkgs.replace-secret}/bin/replace-secret '${placeholder}' '${secretFile}' '${targetFile}' '';
 
   preStart = pkgs.writeShellScript "mpdscribble-pre-start" ''
     cp -f "${cfgTemplate}" "${cfgFile}"
diff --git a/nixpkgs/nixos/modules/services/backup/duplicati.nix b/nixpkgs/nixos/modules/services/backup/duplicati.nix
index 0ff720c5897d..cf5aebdecd28 100644
--- a/nixpkgs/nixos/modules/services/backup/duplicati.nix
+++ b/nixpkgs/nixos/modules/services/backup/duplicati.nix
@@ -54,11 +54,13 @@ in
       };
     };
 
-    users.users.duplicati = lib.optionalAttrs (cfg.user == "duplicati") {
-      uid = config.ids.uids.duplicati;
-      home = "/var/lib/duplicati";
-      createHome = true;
-      group = "duplicati";
+    users.users = lib.optionalAttrs (cfg.user == "duplicati") {
+      duplicati = {
+        uid = config.ids.uids.duplicati;
+        home = "/var/lib/duplicati";
+        createHome = true;
+        group = "duplicati";
+      };
     };
     users.groups.duplicati.gid = config.ids.gids.duplicati;
 
diff --git a/nixpkgs/nixos/modules/services/backup/duplicity.nix b/nixpkgs/nixos/modules/services/backup/duplicity.nix
index a8d564248623..1f6883ed02b7 100644
--- a/nixpkgs/nixos/modules/services/backup/duplicity.nix
+++ b/nixpkgs/nixos/modules/services/backup/duplicity.nix
@@ -1,16 +1,17 @@
-{ config, lib, pkgs, ...}:
+{ config, lib, pkgs, ... }:
 
 with lib;
-
 let
   cfg = config.services.duplicity;
 
   stateDirectory = "/var/lib/duplicity";
 
-  localTarget = if hasPrefix "file://" cfg.targetUrl
+  localTarget =
+    if hasPrefix "file://" cfg.targetUrl
     then removePrefix "file://" cfg.targetUrl else null;
 
-in {
+in
+{
   options.services.duplicity = {
     enable = mkEnableOption "backups with duplicity";
 
@@ -24,7 +25,7 @@ in {
 
     include = mkOption {
       type = types.listOf types.str;
-      default = [];
+      default = [ ];
       example = [ "/home" ];
       description = ''
         List of paths to include into the backups. See the FILE SELECTION
@@ -35,7 +36,7 @@ in {
 
     exclude = mkOption {
       type = types.listOf types.str;
-      default = [];
+      default = [ ];
       description = ''
         List of paths to exclude from backups. See the FILE SELECTION section in
         <citerefentry><refentrytitle>duplicity</refentrytitle>
@@ -82,14 +83,60 @@ in {
 
     extraFlags = mkOption {
       type = types.listOf types.str;
-      default = [];
-      example = [ "--full-if-older-than" "1M" ];
+      default = [ ];
+      example = [ "--backend-retry-delay" "100" ];
       description = ''
         Extra command-line flags passed to duplicity. See
         <citerefentry><refentrytitle>duplicity</refentrytitle>
         <manvolnum>1</manvolnum></citerefentry>.
       '';
     };
+
+    fullIfOlderThan = mkOption {
+      type = types.str;
+      default = "never";
+      example = "1M";
+      description = ''
+        If <literal>"never"</literal> (the default) always do incremental
+        backups (the first backup will be a full backup, of course).  If
+        <literal>"always"</literal> always do full backups.  Otherwise, this
+        must be a string representing a duration. Full backups will be made
+        when the latest full backup is older than this duration. If this is not
+        the case, an incremental backup is performed.
+      '';
+    };
+
+    cleanup = {
+      maxAge = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "6M";
+        description = ''
+          If non-null, delete all backup sets older than the given time.  Old backup sets
+          will not be deleted if backup sets newer than time depend on them.
+        '';
+      };
+      maxFull = mkOption {
+        type = types.nullOr types.int;
+        default = null;
+        example = 2;
+        description = ''
+          If non-null, delete all backups sets that are older than the count:th last full
+          backup (in other words, keep the last count full backups and
+          associated incremental sets).
+        '';
+      };
+      maxIncr = mkOption {
+        type = types.nullOr types.int;
+        default = null;
+        example = 1;
+        description = ''
+          If non-null, delete incremental sets of all backups sets that are
+          older than the count:th last full backup (in other words, keep only
+          old full backups and not their increments).
+        '';
+      };
+    };
   };
 
   config = mkIf cfg.enable {
@@ -99,18 +146,26 @@ in {
 
         environment.HOME = stateDirectory;
 
-        serviceConfig = {
-          ExecStart = ''
-            ${pkgs.duplicity}/bin/duplicity ${escapeShellArgs (
-              [
-                cfg.root
-                cfg.targetUrl
-                "--archive-dir" stateDirectory
-              ]
+        script =
+          let
+            target = escapeShellArg cfg.targetUrl;
+            extra = escapeShellArgs ([ "--archive-dir" stateDirectory ] ++ cfg.extraFlags);
+            dup = "${pkgs.duplicity}/bin/duplicity";
+          in
+          ''
+            set -x
+            ${dup} cleanup ${target} --force ${extra}
+            ${lib.optionalString (cfg.cleanup.maxAge != null) "${dup} remove-older-than ${lib.escapeShellArg cfg.cleanup.maxAge} ${target} --force ${extra}"}
+            ${lib.optionalString (cfg.cleanup.maxFull != null) "${dup} remove-all-but-n-full ${toString cfg.cleanup.maxFull} ${target} --force ${extra}"}
+            ${lib.optionalString (cfg.cleanup.maxIncr != null) "${dup} remove-all-incr-but-n-full ${toString cfg.cleanup.maxIncr} ${target} --force ${extra}"}
+            exec ${dup} ${if cfg.fullIfOlderThan == "always" then "full" else "incr"} ${lib.escapeShellArgs (
+              [ cfg.root cfg.targetUrl ]
               ++ concatMap (p: [ "--include" p ]) cfg.include
               ++ concatMap (p: [ "--exclude" p ]) cfg.exclude
-              ++ cfg.extraFlags)}
+              ++ (lib.optionals (cfg.fullIfOlderThan != "never" && cfg.fullIfOlderThan != "always") [ "--full-if-older-than" cfg.fullIfOlderThan ])
+              )} ${extra}
           '';
+        serviceConfig = {
           PrivateTmp = true;
           ProtectSystem = "strict";
           ProtectHome = "read-only";
@@ -130,7 +185,7 @@ in {
     assertions = singleton {
       # Duplicity will fail if the last file selection option is an include. It
       # is not always possible to detect but this simple case can be caught.
-      assertion = cfg.include != [] -> cfg.exclude != [] || cfg.extraFlags != [];
+      assertion = cfg.include != [ ] -> cfg.exclude != [ ] || cfg.extraFlags != [ ];
       message = ''
         Duplicity will fail if you only specify included paths ("Because the
         default is to include all files, the expression is redundant. Exiting
diff --git a/nixpkgs/nixos/modules/services/backup/mysql-backup.nix b/nixpkgs/nixos/modules/services/backup/mysql-backup.nix
index 506ded5e9e8c..9fca21002733 100644
--- a/nixpkgs/nixos/modules/services/backup/mysql-backup.nix
+++ b/nixpkgs/nixos/modules/services/backup/mysql-backup.nix
@@ -4,7 +4,7 @@ with lib;
 
 let
 
-  inherit (pkgs) mysql gzip;
+  inherit (pkgs) mariadb gzip;
 
   cfg = config.services.mysqlBackup;
   defaultUser = "mysqlbackup";
@@ -20,7 +20,7 @@ let
   '';
   backupDatabaseScript = db: ''
     dest="${cfg.location}/${db}.gz"
-    if ${mysql}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then
+    if ${mariadb}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then
       mv $dest.tmp $dest
       echo "Backed up to $dest"
     else
diff --git a/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix b/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix
index f4bd3aa447e5..9da2d522a68d 100644
--- a/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix
+++ b/nixpkgs/nixos/modules/services/backup/postgresql-backup.nix
@@ -48,7 +48,7 @@ in {
 
       startAt = mkOption {
         default = "*-*-* 01:15:00";
-        type = types.str;
+        type = with types; either (listOf str) str;
         description = ''
           This option defines (see <literal>systemd.time</literal> for format) when the
           databases should be dumped.
diff --git a/nixpkgs/nixos/modules/services/backup/syncoid.nix b/nixpkgs/nixos/modules/services/backup/syncoid.nix
index e72e3fa59cf9..b764db1f14e4 100644
--- a/nixpkgs/nixos/modules/services/backup/syncoid.nix
+++ b/nixpkgs/nixos/modules/services/backup/syncoid.nix
@@ -197,14 +197,14 @@ in {
                ])) (attrValues cfg.commands);
         after = [ "zfs.target" ];
         serviceConfig = {
-          ExecStartPre = (map (pool: lib.escapeShellArgs [
-            "+/run/booted-system/sw/bin/zfs" "allow"
-            cfg.user "hold,send" pool
-          ]) (getPools "source")) ++
-          (map (pool: lib.escapeShellArgs [
-            "+/run/booted-system/sw/bin/zfs" "allow"
-            cfg.user "create,mount,receive,rollback" pool
-          ]) (getPools "target"));
+          ExecStartPre = let
+            allowCmd = permissions: pool: lib.escapeShellArgs [
+              "+/run/booted-system/sw/bin/zfs" "allow"
+              cfg.user (concatStringsSep "," permissions) pool
+            ];
+          in
+            (map (allowCmd [ "hold" "send" "snapshot" "destroy" ]) (getPools "source")) ++
+            (map (allowCmd [ "create" "mount" "receive" "rollback" ]) (getPools "target"));
           User = cfg.user;
           Group = cfg.group;
         };
diff --git a/nixpkgs/nixos/modules/services/cluster/k3s/default.nix b/nixpkgs/nixos/modules/services/cluster/k3s/default.nix
index 5ab0286a38a8..300c182406ce 100644
--- a/nixpkgs/nixos/modules/services/cluster/k3s/default.nix
+++ b/nixpkgs/nixos/modules/services/cluster/k3s/default.nix
@@ -81,11 +81,14 @@ in
     # supporting it, or their bundled containerd
     systemd.enableUnifiedCgroupHierarchy = false;
 
+    environment.systemPackages = [ config.services.k3s.package ];
+
     systemd.services.k3s = {
       description = "k3s service";
       after = [ "network.service" "firewall.service" ] ++ (optional cfg.docker "docker.service");
       wants = [ "network.service" "firewall.service" ];
       wantedBy = [ "multi-user.target" ];
+      path = optional config.boot.zfs.enabled config.boot.zfs.package;
       serviceConfig = {
         # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197
         Type = if cfg.role == "agent" then "exec" else "notify";
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/addon-manager.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/addon-manager.nix
index f55079300b15..1378b5ccfb7a 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/addon-manager.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/addon-manager.nix
@@ -62,7 +62,7 @@ in
       '';
     };
 
-    enable = mkEnableOption "Whether to enable Kubernetes addon manager.";
+    enable = mkEnableOption "Kubernetes addon manager.";
   };
 
   ###### implementation
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
index a5b132154766..f1531caa7544 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/apiserver.nix
@@ -145,7 +145,7 @@ in
     extraOpts = mkOption {
       description = "Kubernetes apiserver extra command line options.";
       default = "";
-      type = str;
+      type = separatedString " ";
     };
 
     extraSANs = mkOption {
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/controller-manager.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/controller-manager.nix
index a99ef6640e97..0c81fa9ae492 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/controller-manager.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/controller-manager.nix
@@ -38,7 +38,7 @@ in
     extraOpts = mkOption {
       description = "Kubernetes controller manager extra command line options.";
       default = "";
-      type = str;
+      type = separatedString " ";
     };
 
     featureGates = mkOption {
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix
index 19edc338bba1..33d217ba60ed 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/default.nix
@@ -7,12 +7,12 @@ let
 
   defaultContainerdConfigFile = pkgs.writeText "containerd.toml" ''
     version = 2
-    root = "/var/lib/containerd/daemon"
-    state = "/var/run/containerd/daemon"
+    root = "/var/lib/containerd"
+    state = "/run/containerd"
     oom_score = 0
 
     [grpc]
-      address = "/var/run/containerd/containerd.sock"
+      address = "/run/containerd/containerd.sock"
 
     [plugins."io.containerd.grpc.v1.cri"]
       sandbox_image = "pause:latest"
@@ -48,8 +48,9 @@ let
         cluster = "local";
         user = name;
       };
-      current-context = "local";
+      name = "local";
     }];
+    current-context = "local";
   });
 
   caCert = secret "ca";
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
index b5346b1cd44d..fcfcc8435477 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -134,7 +134,7 @@ in
     containerRuntimeEndpoint = mkOption {
       description = "Endpoint at which to find the container runtime api interface/socket";
       type = str;
-      default = "unix:///var/run/containerd/containerd.sock";
+      default = "unix:///run/containerd/containerd.sock";
     };
 
     enable = mkEnableOption "Kubernetes kubelet.";
@@ -142,7 +142,7 @@ in
     extraOpts = mkOption {
       description = "Kubernetes kubelet extra command line options.";
       default = "";
-      type = str;
+      type = separatedString " ";
     };
 
     featureGates = mkOption {
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix
index 86d1dc2439bd..7aa449f9aa21 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/proxy.nix
@@ -25,7 +25,7 @@ in
     extraOpts = mkOption {
       description = "Kubernetes proxy extra command line options.";
       default = "";
-      type = str;
+      type = separatedString " ";
     };
 
     featureGates = mkOption {
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/scheduler.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/scheduler.nix
index 5f6113227d9d..454c689759df 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/scheduler.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/scheduler.nix
@@ -21,7 +21,7 @@ in
     extraOpts = mkOption {
       description = "Kubernetes scheduler extra command line options.";
       default = "";
-      type = str;
+      type = separatedString " ";
     };
 
     featureGates = mkOption {
diff --git a/nixpkgs/nixos/modules/services/computing/foldingathome/client.nix b/nixpkgs/nixos/modules/services/computing/foldingathome/client.nix
index 9f99af48c48a..fbef6a04b16d 100644
--- a/nixpkgs/nixos/modules/services/computing/foldingathome/client.nix
+++ b/nixpkgs/nixos/modules/services/computing/foldingathome/client.nix
@@ -49,6 +49,15 @@ in
       '';
     };
 
+    daemonNiceLevel = mkOption {
+      type = types.ints.between (-20) 19;
+      default = 0;
+      description = ''
+        Daemon process priority for FAHClient.
+        0 is the default Unix process priority, 19 is the lowest.
+      '';
+    };
+
     extraArgs = mkOption {
       type = types.listOf types.str;
       default = [];
@@ -70,6 +79,7 @@ in
       serviceConfig = {
         DynamicUser = true;
         StateDirectory = "foldingathome";
+        Nice = cfg.daemonNiceLevel;
         WorkingDirectory = "%S/foldingathome";
       };
     };
diff --git a/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix b/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
index 0b52f8afed83..a3dee94e2dc5 100644
--- a/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
@@ -403,9 +403,7 @@ in
       requires = [ "munged.service" "mysql.service" ];
 
       preStart = ''
-        cp ${slurmdbdConf} ${configPath}
-        chmod 600 ${configPath}
-        chown ${cfg.user} ${configPath}
+        install -m 600 -o ${cfg.user} -T ${slurmdbdConf} ${configPath}
         ${optionalString (cfg.dbdserver.storagePassFile != null) ''
           echo "StoragePass=$(cat ${cfg.dbdserver.storagePassFile})" \
             >> ${configPath}
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
index a49f5f8100dc..f668e69e5df7 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -283,5 +283,5 @@ in {
     '')
   ];
 
-  meta.maintainers = with lib.maintainers; [ nand0p mic92 lopsided98 ];
+  meta.maintainers = with lib.maintainers; [ mic92 lopsided98 ];
 }
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 7b8a35f54bfa..708b3e1cc182 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -191,6 +191,6 @@ in {
     };
   };
 
-  meta.maintainers = with lib.maintainers; [ nand0p ];
+  meta.maintainers = with lib.maintainers; [ ];
 
 }
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix
index b0045409ae60..b8982d757db9 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix
@@ -76,7 +76,7 @@ let
       };
 
       tags = mkOption {
-        type = types.attrsOf types.str;
+        type = types.attrsOf (types.either types.str (types.listOf types.str));
         default = {};
         example = { queue = "default"; docker = "true"; ruby2 ="true"; };
         description = ''
@@ -230,18 +230,21 @@ in
         ##     don't end up in the Nix store.
         preStart = let
           sshDir = "${cfg.dataDir}/.ssh";
-          tagStr = lib.concatStringsSep "," (lib.mapAttrsToList (name: value: "${name}=${value}") cfg.tags);
+          tagStr = name: value:
+            if lib.isList value
+            then lib.concatStringsSep "," (builtins.map (v: "${name}=${v}") value)
+            else "${name}=${value}";
+          tagsStr = lib.concatStringsSep "," (lib.mapAttrsToList tagStr cfg.tags);
         in
           optionalString (cfg.privateSshKeyPath != null) ''
             mkdir -m 0700 -p "${sshDir}"
-            cp -f "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
-            chmod 600 "${sshDir}"/id_rsa
+            install -m600 "${toString cfg.privateSshKeyPath}" "${sshDir}/id_rsa"
           '' + ''
             cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
             token="$(cat ${toString cfg.tokenPath})"
             name="${cfg.name}"
             shell="${cfg.shell}"
-            tags="${tagStr}"
+            tags="${tagsStr}"
             build-path="${cfg.dataDir}/builds"
             hooks-path="${cfg.hooksPath}"
             ${cfg.extraConfig}
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
index 9f9b86ee61cb..2f0b573e8721 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
@@ -37,15 +37,22 @@ let
         description = ''
           Number of tasks to perform simultaneously.
 
-          A task is a single derivation build or an evaluation.
+          A task is a single derivation build, an evaluation or an effect run.
           At minimum, you need 2 concurrent tasks for <literal>x86_64-linux</literal>
           in your cluster, to allow for import from derivation.
 
           <literal>concurrentTasks</literal> can be around the CPU core count or lower if memory is
           the bottleneck.
+
+          The optimal value depends on the resource consumption characteristics of your workload,
+          including memory usage and in-task parallelism. This is typically determined empirically.
+
+          When scaling, it is generally better to have a double-size machine than two machines,
+          because each split of resources causes inefficiencies; particularly with regards
+          to build latency because of extra downloads.
         '';
-        type = types.int;
-        default = 4;
+        type = types.either types.ints.positive (types.enum [ "auto" ]);
+        default = "auto";
       };
       workDirectory = mkOption {
         description = ''
@@ -186,7 +193,18 @@ in
       # even shortly after the previous lookup. This *also* applies to the daemon.
       narinfo-cache-negative-ttl = 0
     '';
-    services.hercules-ci-agent.tomlFile =
-      format.generate "hercules-ci-agent.toml" cfg.settings;
+    services.hercules-ci-agent = {
+      tomlFile =
+        format.generate "hercules-ci-agent.toml" cfg.settings;
+
+      settings.labels = {
+        agent.source =
+          if options.services.hercules-ci-agent.package.highestPrio == (lib.modules.mkOptionDefault { }).priority
+          then "nixpkgs"
+          else lib.mkOptionDefault "override";
+        pkgs.version = pkgs.lib.version;
+        lib.version = lib.version;
+      };
+    };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
index e8a42e59de0d..06c174e7d376 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
@@ -68,7 +68,23 @@ in
     # Trusted user allows simplified configuration and better performance
     # when operating in a cluster.
     nix.trustedUsers = [ config.systemd.services.hercules-ci-agent.serviceConfig.User ];
-    services.hercules-ci-agent.settings.nixUserIsTrusted = true;
+    services.hercules-ci-agent = {
+      settings = {
+        nixUserIsTrusted = true;
+        labels =
+          let
+            mkIfNotNull = x: mkIf (x != null) x;
+          in
+          {
+            nixos.configurationRevision = mkIfNotNull config.system.configurationRevision;
+            nixos.release = config.system.nixos.release;
+            nixos.label = mkIfNotNull config.system.nixos.label;
+            nixos.codeName = config.system.nixos.codeName;
+            nixos.tags = config.system.nixos.tags;
+            nixos.systemName = mkIfNotNull config.system.name;
+          };
+      };
+    };
 
     users.users.hercules-ci-agent = {
       home = cfg.settings.baseDirectory;
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/jenkins/job-builder.nix b/nixpkgs/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
index 5d1bfe4ec407..536d394b3fd4 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
@@ -165,6 +165,42 @@ in {
           '';
         in
           ''
+            joinByString()
+            {
+                local separator="$1"
+                shift
+                local first="$1"
+                shift
+                printf "%s" "$first" "''${@/#/$separator}"
+            }
+
+            # Map a relative directory path in the output from
+            # jenkins-job-builder (jobname) to the layout expected by jenkins:
+            # each directory level gets prepended "jobs/".
+            getJenkinsJobDir()
+            {
+                IFS='/' read -ra input_dirs <<< "$1"
+                printf "jobs/"
+                joinByString "/jobs/" "''${input_dirs[@]}"
+            }
+
+            # The inverse of getJenkinsJobDir (remove the "jobs/" prefixes)
+            getJobname()
+            {
+                IFS='/' read -ra input_dirs <<< "$1"
+                local i=0
+                local nelem=''${#input_dirs[@]}
+                for e in "''${input_dirs[@]}"; do
+                    if [ $((i % 2)) -eq 1 ]; then
+                        printf "$e"
+                        if [ $i -lt $(( nelem - 1 )) ]; then
+                            printf "/"
+                        fi
+                    fi
+                    i=$((i + 1))
+                done
+            }
+
             rm -rf ${jobBuilderOutputDir}
             cur_decl_jobs=/run/jenkins-job-builder/declarative-jobs
             rm -f "$cur_decl_jobs"
@@ -172,27 +208,27 @@ in {
             # Create / update jobs
             mkdir -p ${jobBuilderOutputDir}
             for inputFile in ${yamlJobsFile} ${concatStringsSep " " jsonJobsFiles}; do
-                HOME="${jenkinsCfg.home}" "${pkgs.jenkins-job-builder}/bin/jenkins-jobs" --ignore-cache test -o "${jobBuilderOutputDir}" "$inputFile"
+                HOME="${jenkinsCfg.home}" "${pkgs.jenkins-job-builder}/bin/jenkins-jobs" --ignore-cache test --config-xml -o "${jobBuilderOutputDir}" "$inputFile"
             done
 
-            for file in "${jobBuilderOutputDir}/"*; do
-                test -f "$file" || continue
-                jobname="$(basename $file)"
-                jobdir="${jenkinsCfg.home}/jobs/$jobname"
+            find "${jobBuilderOutputDir}" -type f -name config.xml | while read -r f; do echo "$(dirname "$f")"; done | sort | while read -r dir; do
+                jobname="$(realpath --relative-to="${jobBuilderOutputDir}" "$dir")"
+                jenkinsjobname=$(getJenkinsJobDir "$jobname")
+                jenkinsjobdir="${jenkinsCfg.home}/$jenkinsjobname"
                 echo "Creating / updating job \"$jobname\""
-                mkdir -p "$jobdir"
-                touch "$jobdir/${ownerStamp}"
-                cp "$file" "$jobdir/config.xml"
-                echo "$jobname" >> "$cur_decl_jobs"
+                mkdir -p "$jenkinsjobdir"
+                touch "$jenkinsjobdir/${ownerStamp}"
+                cp "$dir"/config.xml "$jenkinsjobdir/config.xml"
+                echo "$jenkinsjobname" >> "$cur_decl_jobs"
             done
 
             # Remove stale jobs
-            for file in "${jenkinsCfg.home}"/jobs/*/${ownerStamp}; do
-                test -f "$file" || continue
-                jobdir="$(dirname $file)"
-                jobname="$(basename "$jobdir")"
-                grep --quiet --line-regexp "$jobname" "$cur_decl_jobs" 2>/dev/null && continue
+            find "${jenkinsCfg.home}" -type f -name "${ownerStamp}" | while read -r f; do echo "$(dirname "$f")"; done | sort --reverse | while read -r dir; do
+                jenkinsjobname="$(realpath --relative-to="${jenkinsCfg.home}" "$dir")"
+                grep --quiet --line-regexp "$jenkinsjobname" "$cur_decl_jobs" 2>/dev/null && continue
+                jobname=$(getJobname "$jenkinsjobname")
                 echo "Deleting stale job \"$jobname\""
+                jobdir="${jenkinsCfg.home}/$jenkinsjobname"
                 rm -rf "$jobdir"
             done
           '' + (if cfg.accessUser != "" then reloadScript else "");
diff --git a/nixpkgs/nixos/modules/services/databases/cassandra.nix b/nixpkgs/nixos/modules/services/databases/cassandra.nix
index d55a7db39150..820be5085de9 100644
--- a/nixpkgs/nixos/modules/services/databases/cassandra.nix
+++ b/nixpkgs/nixos/modules/services/databases/cassandra.nix
@@ -1,79 +1,108 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
+  inherit (lib)
+    concatStringsSep
+    flip
+    literalExample
+    optionalAttrs
+    optionals
+    recursiveUpdate
+    mkEnableOption
+    mkIf
+    mkOption
+    types
+    versionAtLeast
+    ;
+
   cfg = config.services.cassandra;
+
   defaultUser = "cassandra";
-  cassandraConfig = flip recursiveUpdate cfg.extraConfig
-    ({ commitlog_sync = "batch";
-       commitlog_sync_batch_window_in_ms = 2;
-       start_native_transport = cfg.allowClients;
-       cluster_name = cfg.clusterName;
-       partitioner = "org.apache.cassandra.dht.Murmur3Partitioner";
-       endpoint_snitch = "SimpleSnitch";
-       data_file_directories = [ "${cfg.homeDir}/data" ];
-       commitlog_directory = "${cfg.homeDir}/commitlog";
-       saved_caches_directory = "${cfg.homeDir}/saved_caches";
-     } // (lib.optionalAttrs (cfg.seedAddresses != []) {
-       seed_provider = [{
-         class_name = "org.apache.cassandra.locator.SimpleSeedProvider";
-         parameters = [ { seeds = concatStringsSep "," cfg.seedAddresses; } ];
-       }];
-     }) // (lib.optionalAttrs (lib.versionAtLeast cfg.package.version "3") {
-       hints_directory = "${cfg.homeDir}/hints";
-     })
-    );
-  cassandraConfigWithAddresses = cassandraConfig //
-    ( if cfg.listenAddress == null
-        then { listen_interface = cfg.listenInterface; }
-        else { listen_address = cfg.listenAddress; }
-    ) // (
-      if cfg.rpcAddress == null
-        then { rpc_interface = cfg.rpcInterface; }
-        else { rpc_address = cfg.rpcAddress; }
-    );
-  cassandraEtc = pkgs.stdenv.mkDerivation
-    { name = "cassandra-etc";
-      cassandraYaml = builtins.toJSON cassandraConfigWithAddresses;
-      cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh";
-      cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig;
-      passAsFile = [ "extraEnvSh" ];
-      inherit (cfg) extraEnvSh;
-      buildCommand = ''
-        mkdir -p "$out"
-
-        echo "$cassandraYaml" > "$out/cassandra.yaml"
-        ln -s "$cassandraLogbackConfig" "$out/logback.xml"
-
-        ( cat "$cassandraEnvPkg"
-          echo "# lines from services.cassandra.extraEnvSh: "
-          cat "$extraEnvShPath"
-        ) > "$out/cassandra-env.sh"
-
-        # Delete default JMX Port, otherwise we can't set it using env variable
-        sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh"
-
-        # Delete default password file
-        sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh"
-      '';
-    };
-  defaultJmxRolesFile = builtins.foldl'
-     (left: right: left + right) ""
-     (map (role: "${role.username} ${role.password}") cfg.jmxRoles);
-  fullJvmOptions = cfg.jvmOpts
-    ++ lib.optionals (cfg.jmxRoles != []) [
+
+  cassandraConfig = flip recursiveUpdate cfg.extraConfig (
+    {
+      commitlog_sync = "batch";
+      commitlog_sync_batch_window_in_ms = 2;
+      start_native_transport = cfg.allowClients;
+      cluster_name = cfg.clusterName;
+      partitioner = "org.apache.cassandra.dht.Murmur3Partitioner";
+      endpoint_snitch = "SimpleSnitch";
+      data_file_directories = [ "${cfg.homeDir}/data" ];
+      commitlog_directory = "${cfg.homeDir}/commitlog";
+      saved_caches_directory = "${cfg.homeDir}/saved_caches";
+    } // optionalAttrs (cfg.seedAddresses != [ ]) {
+      seed_provider = [
+        {
+          class_name = "org.apache.cassandra.locator.SimpleSeedProvider";
+          parameters = [{ seeds = concatStringsSep "," cfg.seedAddresses; }];
+        }
+      ];
+    } // optionalAttrs (versionAtLeast cfg.package.version "3") {
+      hints_directory = "${cfg.homeDir}/hints";
+    }
+  );
+
+  cassandraConfigWithAddresses = cassandraConfig // (
+    if cfg.listenAddress == null
+    then { listen_interface = cfg.listenInterface; }
+    else { listen_address = cfg.listenAddress; }
+  ) // (
+    if cfg.rpcAddress == null
+    then { rpc_interface = cfg.rpcInterface; }
+    else { rpc_address = cfg.rpcAddress; }
+  );
+
+  cassandraEtc = pkgs.stdenv.mkDerivation {
+    name = "cassandra-etc";
+
+    cassandraYaml = builtins.toJSON cassandraConfigWithAddresses;
+    cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh";
+    cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig;
+
+    passAsFile = [ "extraEnvSh" ];
+    inherit (cfg) extraEnvSh;
+
+    buildCommand = ''
+      mkdir -p "$out"
+
+      echo "$cassandraYaml" > "$out/cassandra.yaml"
+      ln -s "$cassandraLogbackConfig" "$out/logback.xml"
+
+      ( cat "$cassandraEnvPkg"
+        echo "# lines from services.cassandra.extraEnvSh: "
+        cat "$extraEnvShPath"
+      ) > "$out/cassandra-env.sh"
+
+      # Delete default JMX Port, otherwise we can't set it using env variable
+      sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh"
+
+      # Delete default password file
+      sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh"
+    '';
+  };
+
+  defaultJmxRolesFile =
+    builtins.foldl'
+      (left: right: left + right) ""
+      (map (role: "${role.username} ${role.password}") cfg.jmxRoles);
+
+  fullJvmOptions =
+    cfg.jvmOpts
+    ++ optionals (cfg.jmxRoles != [ ]) [
       "-Dcom.sun.management.jmxremote.authenticate=true"
       "-Dcom.sun.management.jmxremote.password.file=${cfg.jmxRolesFile}"
-    ]
-    ++ lib.optionals cfg.remoteJmx [
+    ] ++ optionals cfg.remoteJmx [
       "-Djava.rmi.server.hostname=${cfg.rpcAddress}"
     ];
-in {
+
+in
+{
   options.services.cassandra = {
+
     enable = mkEnableOption ''
       Apache Cassandra – Scalable and highly available database.
     '';
+
     clusterName = mkOption {
       type = types.str;
       default = "Test Cluster";
@@ -83,16 +112,19 @@ in {
         another. All nodes in a cluster must have the same value.
       '';
     };
+
     user = mkOption {
       type = types.str;
       default = defaultUser;
       description = "Run Apache Cassandra under this user.";
     };
+
     group = mkOption {
       type = types.str;
       default = defaultUser;
       description = "Run Apache Cassandra under this group.";
     };
+
     homeDir = mkOption {
       type = types.path;
       default = "/var/lib/cassandra";
@@ -100,6 +132,7 @@ in {
         Home directory for Apache Cassandra.
       '';
     };
+
     package = mkOption {
       type = types.package;
       default = pkgs.cassandra;
@@ -109,17 +142,19 @@ in {
         The Apache Cassandra package to use.
       '';
     };
+
     jvmOpts = mkOption {
       type = types.listOf types.str;
-      default = [];
+      default = [ ];
       description = ''
         Populate the JVM_OPT environment variable.
       '';
     };
+
     listenAddress = mkOption {
       type = types.nullOr types.str;
       default = "127.0.0.1";
-      example = literalExample "null";
+      example = null;
       description = ''
         Address or interface to bind to and tell other Cassandra nodes
         to connect to. You _must_ change this if you want multiple
@@ -136,6 +171,7 @@ in {
         Setting listen_address to 0.0.0.0 is always wrong.
       '';
     };
+
     listenInterface = mkOption {
       type = types.nullOr types.str;
       default = null;
@@ -146,10 +182,11 @@ in {
         supported.
       '';
     };
+
     rpcAddress = mkOption {
       type = types.nullOr types.str;
       default = "127.0.0.1";
-      example = literalExample "null";
+      example = null;
       description = ''
         The address or interface to bind the native transport server to.
 
@@ -167,6 +204,7 @@ in {
         internet. Firewall it if needed.
       '';
     };
+
     rpcInterface = mkOption {
       type = types.nullOr types.str;
       default = null;
@@ -176,6 +214,7 @@ in {
         correspond to a single address, IP aliasing is not supported.
       '';
     };
+
     logbackConfig = mkOption {
       type = types.lines;
       default = ''
@@ -197,6 +236,7 @@ in {
         XML logback configuration for cassandra
       '';
     };
+
     seedAddresses = mkOption {
       type = types.listOf types.str;
       default = [ "127.0.0.1" ];
@@ -207,6 +247,7 @@ in {
         Set to 127.0.0.1 for a single node cluster.
       '';
     };
+
     allowClients = mkOption {
       type = types.bool;
       default = true;
@@ -219,16 +260,19 @@ in {
         <literal>extraConfig</literal>.
       '';
     };
+
     extraConfig = mkOption {
       type = types.attrs;
-      default = {};
+      default = { };
       example =
-        { commitlog_sync_batch_window_in_ms = 3;
+        {
+          commitlog_sync_batch_window_in_ms = 3;
         };
       description = ''
         Extra options to be merged into cassandra.yaml as nix attribute set.
       '';
     };
+
     extraEnvSh = mkOption {
       type = types.lines;
       default = "";
@@ -237,48 +281,53 @@ in {
         Extra shell lines to be appended onto cassandra-env.sh.
       '';
     };
+
     fullRepairInterval = mkOption {
       type = types.nullOr types.str;
       default = "3w";
-      example = literalExample "null";
+      example = null;
       description = ''
-          Set the interval how often full repairs are run, i.e.
-          <literal>nodetool repair --full</literal> is executed. See
-          https://cassandra.apache.org/doc/latest/operating/repair.html
-          for more information.
+        Set the interval how often full repairs are run, i.e.
+        <literal>nodetool repair --full</literal> is executed. See
+        https://cassandra.apache.org/doc/latest/operating/repair.html
+        for more information.
 
-          Set to <literal>null</literal> to disable full repairs.
-        '';
+        Set to <literal>null</literal> to disable full repairs.
+      '';
     };
+
     fullRepairOptions = mkOption {
       type = types.listOf types.str;
-      default = [];
+      default = [ ];
       example = [ "--partitioner-range" ];
       description = ''
-          Options passed through to the full repair command.
-        '';
+        Options passed through to the full repair command.
+      '';
     };
+
     incrementalRepairInterval = mkOption {
       type = types.nullOr types.str;
       default = "3d";
-      example = literalExample "null";
+      example = null;
       description = ''
-          Set the interval how often incremental repairs are run, i.e.
-          <literal>nodetool repair</literal> is executed. See
-          https://cassandra.apache.org/doc/latest/operating/repair.html
-          for more information.
+        Set the interval how often incremental repairs are run, i.e.
+        <literal>nodetool repair</literal> is executed. See
+        https://cassandra.apache.org/doc/latest/operating/repair.html
+        for more information.
 
-          Set to <literal>null</literal> to disable incremental repairs.
-        '';
+        Set to <literal>null</literal> to disable incremental repairs.
+      '';
     };
+
     incrementalRepairOptions = mkOption {
       type = types.listOf types.str;
-      default = [];
+      default = [ ];
       example = [ "--partitioner-range" ];
       description = ''
-          Options passed through to the incremental repair command.
-        '';
+        Options passed through to the incremental repair command.
+      '';
     };
+
     maxHeapSize = mkOption {
       type = types.nullOr types.str;
       default = null;
@@ -299,6 +348,7 @@ in {
         expensive GC will be (usually).
       '';
     };
+
     heapNewSize = mkOption {
       type = types.nullOr types.str;
       default = null;
@@ -322,6 +372,7 @@ in {
         100 MB per physical CPU core.
       '';
     };
+
     mallocArenaMax = mkOption {
       type = types.nullOr types.int;
       default = null;
@@ -330,6 +381,7 @@ in {
         Set this to control the amount of arenas per-thread in glibc.
       '';
     };
+
     remoteJmx = mkOption {
       type = types.bool;
       default = false;
@@ -341,6 +393,7 @@ in {
         See: https://wiki.apache.org/cassandra/JmxSecurity
       '';
     };
+
     jmxPort = mkOption {
       type = types.int;
       default = 7199;
@@ -351,8 +404,9 @@ in {
         Firewall it if needed.
       '';
     };
+
     jmxRoles = mkOption {
-      default = [];
+      default = [ ];
       description = ''
         Roles that are allowed to access the JMX (e.g. nodetool)
         BEWARE: The passwords will be stored world readable in the nix-store.
@@ -375,11 +429,13 @@ in {
         };
       });
     };
+
     jmxRolesFile = mkOption {
       type = types.nullOr types.path;
-      default = if (lib.versionAtLeast cfg.package.version "3.11")
-                then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile
-                else null;
+      default =
+        if versionAtLeast cfg.package.version "3.11"
+        then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile
+        else null;
       example = "/var/lib/cassandra/jmx.password";
       description = ''
         Specify your own jmx roles file.
@@ -391,102 +447,115 @@ in {
   };
 
   config = mkIf cfg.enable {
-    assertions =
-      [ { assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null);
-          message = "You have to set either listenAddress or listenInterface";
-        }
-        { assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null);
-          message = "You have to set either rpcAddress or rpcInterface";
-        }
-        { assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null);
-          message = "If you set either of maxHeapSize or heapNewSize you have to set both";
-        }
-        { assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null;
-          message = ''
-            If you want JMX available remotely you need to set a password using
-            <literal>jmxRoles</literal> or <literal>jmxRolesFile</literal> if
-            using Cassandra older than v3.11.
-          '';
-        }
-      ];
+    assertions = [
+      {
+        assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null);
+        message = "You have to set either listenAddress or listenInterface";
+      }
+      {
+        assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null);
+        message = "You have to set either rpcAddress or rpcInterface";
+      }
+      {
+        assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null);
+        message = "If you set either of maxHeapSize or heapNewSize you have to set both";
+      }
+      {
+        assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null;
+        message = ''
+          If you want JMX available remotely you need to set a password using
+          <literal>jmxRoles</literal> or <literal>jmxRolesFile</literal> if
+          using Cassandra older than v3.11.
+        '';
+      }
+    ];
     users = mkIf (cfg.user == defaultUser) {
-      extraUsers.${defaultUser} =
-        {  group = cfg.group;
-           home = cfg.homeDir;
-           createHome = true;
-           uid = config.ids.uids.cassandra;
-           description = "Cassandra service user";
-        };
-      extraGroups.${defaultUser}.gid = config.ids.gids.cassandra;
+      users.${defaultUser} = {
+        group = cfg.group;
+        home = cfg.homeDir;
+        createHome = true;
+        uid = config.ids.uids.cassandra;
+        description = "Cassandra service user";
+      };
+      groups.${defaultUser}.gid = config.ids.gids.cassandra;
     };
 
-    systemd.services.cassandra =
-      { description = "Apache Cassandra service";
-        after = [ "network.target" ];
-        environment =
-          { CASSANDRA_CONF = "${cassandraEtc}";
-            JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions;
-            MAX_HEAP_SIZE = toString cfg.maxHeapSize;
-            HEAP_NEWSIZE = toString cfg.heapNewSize;
-            MALLOC_ARENA_MAX = toString cfg.mallocArenaMax;
-            LOCAL_JMX = if cfg.remoteJmx then "no" else "yes";
-            JMX_PORT = toString cfg.jmxPort;
-          };
-        wantedBy = [ "multi-user.target" ];
-        serviceConfig =
-          { User = cfg.user;
-            Group = cfg.group;
-            ExecStart = "${cfg.package}/bin/cassandra -f";
-            SuccessExitStatus = 143;
-          };
+    systemd.services.cassandra = {
+      description = "Apache Cassandra service";
+      after = [ "network.target" ];
+      environment = {
+        CASSANDRA_CONF = "${cassandraEtc}";
+        JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions;
+        MAX_HEAP_SIZE = toString cfg.maxHeapSize;
+        HEAP_NEWSIZE = toString cfg.heapNewSize;
+        MALLOC_ARENA_MAX = toString cfg.mallocArenaMax;
+        LOCAL_JMX = if cfg.remoteJmx then "no" else "yes";
+        JMX_PORT = toString cfg.jmxPort;
+      };
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${cfg.package}/bin/cassandra -f";
+        SuccessExitStatus = 143;
       };
+    };
 
-    systemd.services.cassandra-full-repair =
-      { description = "Perform a full repair on this Cassandra node";
-        after = [ "cassandra.service" ];
-        requires = [ "cassandra.service" ];
-        serviceConfig =
-          { User = cfg.user;
-            Group = cfg.group;
-            ExecStart =
-              lib.concatStringsSep " "
-                ([ "${cfg.package}/bin/nodetool" "repair" "--full"
-                 ] ++ cfg.fullRepairOptions);
-          };
+    systemd.services.cassandra-full-repair = {
+      description = "Perform a full repair on this Cassandra node";
+      after = [ "cassandra.service" ];
+      requires = [ "cassandra.service" ];
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart =
+          concatStringsSep " "
+            ([
+              "${cfg.package}/bin/nodetool"
+              "repair"
+              "--full"
+            ] ++ cfg.fullRepairOptions);
       };
+    };
+
     systemd.timers.cassandra-full-repair =
       mkIf (cfg.fullRepairInterval != null) {
         description = "Schedule full repairs on Cassandra";
         wantedBy = [ "timers.target" ];
-        timerConfig =
-          { OnBootSec = cfg.fullRepairInterval;
-            OnUnitActiveSec = cfg.fullRepairInterval;
-            Persistent = true;
-          };
+        timerConfig = {
+          OnBootSec = cfg.fullRepairInterval;
+          OnUnitActiveSec = cfg.fullRepairInterval;
+          Persistent = true;
+        };
       };
 
-    systemd.services.cassandra-incremental-repair =
-      { description = "Perform an incremental repair on this cassandra node.";
-        after = [ "cassandra.service" ];
-        requires = [ "cassandra.service" ];
-        serviceConfig =
-          { User = cfg.user;
-            Group = cfg.group;
-            ExecStart =
-              lib.concatStringsSep " "
-                ([ "${cfg.package}/bin/nodetool" "repair"
-                 ] ++ cfg.incrementalRepairOptions);
-          };
+    systemd.services.cassandra-incremental-repair = {
+      description = "Perform an incremental repair on this cassandra node.";
+      after = [ "cassandra.service" ];
+      requires = [ "cassandra.service" ];
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart =
+          concatStringsSep " "
+            ([
+              "${cfg.package}/bin/nodetool"
+              "repair"
+            ] ++ cfg.incrementalRepairOptions);
       };
+    };
+
     systemd.timers.cassandra-incremental-repair =
       mkIf (cfg.incrementalRepairInterval != null) {
         description = "Schedule incremental repairs on Cassandra";
         wantedBy = [ "timers.target" ];
-        timerConfig =
-          { OnBootSec = cfg.incrementalRepairInterval;
-            OnUnitActiveSec = cfg.incrementalRepairInterval;
-            Persistent = true;
-          };
+        timerConfig = {
+          OnBootSec = cfg.incrementalRepairInterval;
+          OnUnitActiveSec = cfg.incrementalRepairInterval;
+          Persistent = true;
+        };
       };
   };
+
+  meta.maintainers = with lib.maintainers; [ roberth ];
 }
diff --git a/nixpkgs/nixos/modules/services/databases/clickhouse.nix b/nixpkgs/nixos/modules/services/databases/clickhouse.nix
index 27440fec4e10..f2f4e9d25542 100644
--- a/nixpkgs/nixos/modules/services/databases/clickhouse.nix
+++ b/nixpkgs/nixos/modules/services/databases/clickhouse.nix
@@ -42,6 +42,7 @@ with lib;
         User = "clickhouse";
         Group = "clickhouse";
         ConfigurationDirectory = "clickhouse-server";
+        AmbientCapabilities = "CAP_SYS_NICE";
         StateDirectory = "clickhouse";
         LogsDirectory = "clickhouse";
         ExecStart = "${pkgs.clickhouse}/bin/clickhouse-server --config-file=${pkgs.clickhouse}/etc/clickhouse-server/config.xml";
diff --git a/nixpkgs/nixos/modules/services/databases/couchdb.nix b/nixpkgs/nixos/modules/services/databases/couchdb.nix
index c99a7529213d..6cc29cd717ec 100644
--- a/nixpkgs/nixos/modules/services/databases/couchdb.nix
+++ b/nixpkgs/nixos/modules/services/databases/couchdb.nix
@@ -4,24 +4,17 @@ with lib;
 
 let
   cfg = config.services.couchdb;
-  useVersion2 = strings.versionAtLeast (strings.getVersion cfg.package) "2.0";
   configFile = pkgs.writeText "couchdb.ini" (
     ''
       [couchdb]
       database_dir = ${cfg.databaseDir}
       uri_file = ${cfg.uriFile}
       view_index_dir = ${cfg.viewIndexDir}
-    '' + (if cfg.adminPass != null then
-    ''
+    '' + (optionalString (cfg.adminPass != null) ''
       [admins]
       ${cfg.adminUser} = ${cfg.adminPass}
-    '' else
-    "") + (if useVersion2 then
-    ''
+    '' + ''
       [chttpd]
-    '' else
-    ''
-      [httpd]
     '') +
     ''
       port = ${toString cfg.port}
@@ -30,8 +23,7 @@ let
       [log]
       file = ${cfg.logFile}
     '');
-  executable = if useVersion2 then "${cfg.package}/bin/couchdb"
-    else ''${cfg.package}/bin/couchdb -a ${configFile} -a ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} -a ${cfg.configFile}'';
+  executable = "${cfg.package}/bin/couchdb";
 
 in {
 
@@ -177,8 +169,7 @@ in {
 
     environment.systemPackages = [ cfg.package ];
 
-    services.couchdb.configFile = mkDefault
-      (if useVersion2 then "/var/lib/couchdb/local.ini" else "/var/lib/couchdb/couchdb.ini");
+    services.couchdb.configFile = mkDefault "/var/lib/couchdb/local.ini";
 
     systemd.tmpfiles.rules = [
       "d '${dirOf cfg.uriFile}' - ${cfg.user} ${cfg.group} - -"
@@ -195,7 +186,7 @@ in {
         touch ${cfg.configFile}
       '';
 
-      environment = mkIf useVersion2 {
+      environment = {
         # we are actually specifying 4 configuration files:
         # 1. the preinstalled default.ini
         # 2. the module configuration
diff --git a/nixpkgs/nixos/modules/services/databases/firebird.nix b/nixpkgs/nixos/modules/services/databases/firebird.nix
index ed47f647edd3..0815487d4a1f 100644
--- a/nixpkgs/nixos/modules/services/databases/firebird.nix
+++ b/nixpkgs/nixos/modules/services/databases/firebird.nix
@@ -43,17 +43,15 @@ in
       enable = mkEnableOption "the Firebird super server";
 
       package = mkOption {
-        default = pkgs.firebirdSuper;
-        defaultText = "pkgs.firebirdSuper";
+        default = pkgs.firebird;
+        defaultText = "pkgs.firebird";
         type = types.package;
-        /*
-          Example: <code>package = pkgs.firebirdSuper.override { icu =
-            pkgs.icu; };</code> which is not recommended for compatibility
-            reasons. See comments at the firebirdSuper derivation
-        */
-
+        example = ''
+          <code>package = pkgs.firebird_3;</code>
+        '';
         description = ''
-          Which firebird derivation to use.
+          Which Firebird package to be installed: <code>pkgs.firebird_3</code>
+          For SuperServer use override: <code>pkgs.firebird_3.override { superServer = true; };</code>
         '';
       };
 
@@ -74,7 +72,7 @@ in
       };
 
       baseDir = mkOption {
-        default = "/var/db/firebird"; # ubuntu is using /var/lib/firebird/2.1/data/.. ?
+        default = "/var/lib/firebird";
         type = types.str;
         description = ''
           Location containing data/ and system/ directories.
@@ -111,6 +109,14 @@ in
                 cp ${firebird}/security2.fdb "${systemDir}"
             fi
 
+            if ! test -e "${systemDir}/security3.fdb"; then
+                cp ${firebird}/security3.fdb "${systemDir}"
+            fi
+
+            if ! test -e "${systemDir}/security4.fdb"; then
+                cp ${firebird}/security4.fdb "${systemDir}"
+            fi
+
             chmod -R 700         "${dataDir}" "${systemDir}" /var/log/firebird
           '';
 
diff --git a/nixpkgs/nixos/modules/services/databases/mysql.nix b/nixpkgs/nixos/modules/services/databases/mysql.nix
index cf105daeb04e..2d8d613ed88e 100644
--- a/nixpkgs/nixos/modules/services/databases/mysql.nix
+++ b/nixpkgs/nixos/modules/services/databases/mysql.nix
@@ -34,7 +34,7 @@ in
 
       package = mkOption {
         type = types.package;
-        example = literalExample "pkgs.mysql";
+        example = literalExample "pkgs.mariadb";
         description = "
           Which MySQL derivation to use. MariaDB packages are supported too.
         ";
diff --git a/nixpkgs/nixos/modules/services/databases/postgresql.nix b/nixpkgs/nixos/modules/services/databases/postgresql.nix
index fdc05312ece0..effc9182472e 100644
--- a/nixpkgs/nixos/modules/services/databases/postgresql.nix
+++ b/nixpkgs/nixos/modules/services/databases/postgresql.nix
@@ -159,7 +159,7 @@ in
                 For more information on how to specify the target
                 and on which privileges exist, see the
                 <link xlink:href="https://www.postgresql.org/docs/current/sql-grant.html">GRANT syntax</link>.
-                The attributes are used as <code>GRANT ''${attrName} ON ''${attrValue}</code>.
+                The attributes are used as <code>GRANT ''${attrValue} ON ''${attrName}</code>.
               '';
               example = literalExample ''
                 {
diff --git a/nixpkgs/nixos/modules/services/databases/redis.nix b/nixpkgs/nixos/modules/services/databases/redis.nix
index 7ec10c0eb5ab..c4d51958e239 100644
--- a/nixpkgs/nixos/modules/services/databases/redis.nix
+++ b/nixpkgs/nixos/modules/services/databases/redis.nix
@@ -331,7 +331,7 @@ in {
         PrivateMounts = true;
         # System Call Filtering
         SystemCallArchitectures = "native";
-        SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @privileged @raw-io @reboot @resources @setuid @swap";
+        SystemCallFilter = "~@cpu-emulation @debug @keyring @memlock @mount @obsolete @privileged @resources @setuid";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/desktops/bamf.nix b/nixpkgs/nixos/modules/services/desktops/bamf.nix
index 4b35146d0844..37121c219a37 100644
--- a/nixpkgs/nixos/modules/services/desktops/bamf.nix
+++ b/nixpkgs/nixos/modules/services/desktops/bamf.nix
@@ -6,7 +6,7 @@ with lib;
 
 {
   meta = {
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 
   ###### interface
diff --git a/nixpkgs/nixos/modules/services/desktops/flatpak.nix b/nixpkgs/nixos/modules/services/desktops/flatpak.nix
index d0f6b66328a4..7da92cc9f264 100644
--- a/nixpkgs/nixos/modules/services/desktops/flatpak.nix
+++ b/nixpkgs/nixos/modules/services/desktops/flatpak.nix
@@ -15,18 +15,6 @@ in {
   options = {
     services.flatpak = {
       enable = mkEnableOption "flatpak";
-
-      guiPackages = mkOption {
-        internal = true;
-        type = types.listOf types.package;
-        default = [];
-        example = literalExample "[ pkgs.gnome3.gnome-software ]";
-        description = ''
-          Packages that provide an interface for flatpak
-          (like gnome-software) that will be automatically available
-          to all users when flatpak is enabled.
-        '';
-      };
     };
   };
 
@@ -40,7 +28,7 @@ in {
       }
     ];
 
-    environment.systemPackages = [ pkgs.flatpak ] ++ cfg.guiPackages;
+    environment.systemPackages = [ pkgs.flatpak ];
 
     services.dbus.packages = [ pkgs.flatpak ];
 
diff --git a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
index 0dc0643afbc9..e9ec787e5ada 100644
--- a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
@@ -266,5 +266,5 @@ in
       } // mapAttrs' appConfigToINICompatible cfg.appConfig);
   };
 
-  meta.maintainers = with lib.maintainers; [ worldofpeace ];
+  meta.maintainers = with lib.maintainers; [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/at-spi2-core.nix b/nixpkgs/nixos/modules/services/desktops/gnome/at-spi2-core.nix
index 492242e3296d..1268a9d49b82 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/at-spi2-core.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/at-spi2-core.nix
@@ -12,9 +12,17 @@ with lib;
 
   ###### interface
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "at-spi2-core" "enable" ]
+      [ "services" "gnome" "at-spi2-core" "enable" ]
+    )
+  ];
+
   options = {
 
-    services.gnome3.at-spi2-core = {
+    services.gnome.at-spi2-core = {
 
       enable = mkOption {
         type = types.bool;
@@ -36,13 +44,13 @@ with lib;
   ###### implementation
 
   config = mkMerge [
-    (mkIf config.services.gnome3.at-spi2-core.enable {
+    (mkIf config.services.gnome.at-spi2-core.enable {
       environment.systemPackages = [ pkgs.at-spi2-core ];
       services.dbus.packages = [ pkgs.at-spi2-core ];
       systemd.packages = [ pkgs.at-spi2-core ];
     })
 
-    (mkIf (!config.services.gnome3.at-spi2-core.enable) {
+    (mkIf (!config.services.gnome.at-spi2-core.enable) {
       environment.variables.NO_AT_BRIDGE = "1";
     })
   ];
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix b/nixpkgs/nixos/modules/services/desktops/gnome/chrome-gnome-shell.nix
index 3c7f217b18df..15c5bfbd8210 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/chrome-gnome-shell.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/chrome-gnome-shell.nix
@@ -8,9 +8,17 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "chrome-gnome-shell" "enable" ]
+      [ "services" "gnome" "chrome-gnome-shell" "enable" ]
+    )
+  ];
+
   ###### interface
   options = {
-    services.gnome3.chrome-gnome-shell.enable = mkEnableOption ''
+    services.gnome.chrome-gnome-shell.enable = mkEnableOption ''
       Chrome GNOME Shell native host connector, a DBus service
       allowing to install GNOME Shell extensions from a web browser.
     '';
@@ -18,7 +26,7 @@ with lib;
 
 
   ###### implementation
-  config = mkIf config.services.gnome3.chrome-gnome-shell.enable {
+  config = mkIf config.services.gnome.chrome-gnome-shell.enable {
     environment.etc = {
       "chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
       "opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = "${pkgs.chrome-gnome-shell}/etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/evolution-data-server.nix b/nixpkgs/nixos/modules/services/desktops/gnome/evolution-data-server.nix
index 749f12b86bc8..ef5ad797c278 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/evolution-data-server.nix
@@ -10,11 +10,23 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "evolution-data-server" "enable" ]
+      [ "services" "gnome" "evolution-data-server" "enable" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "evolution-data-server" "plugins" ]
+      [ "services" "gnome" "evolution-data-server" "plugins" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.evolution-data-server = {
+    services.gnome.evolution-data-server = {
       enable = mkEnableOption "Evolution Data Server, a collection of services for storing addressbooks and calendars.";
       plugins = mkOption {
         type = types.listOf types.package;
@@ -38,10 +50,10 @@ with lib;
 
   config =
     let
-      bundle = pkgs.evolutionWithPlugins.override { inherit (config.services.gnome3.evolution-data-server) plugins; };
+      bundle = pkgs.evolutionWithPlugins.override { inherit (config.services.gnome.evolution-data-server) plugins; };
     in
     mkMerge [
-      (mkIf config.services.gnome3.evolution-data-server.enable {
+      (mkIf config.services.gnome.evolution-data-server.enable {
         environment.systemPackages = [ bundle ];
 
         services.dbus.packages = [ bundle ];
@@ -49,11 +61,11 @@ with lib;
         systemd.packages = [ bundle ];
       })
       (mkIf config.programs.evolution.enable {
-        services.gnome3.evolution-data-server = {
+        services.gnome.evolution-data-server = {
           enable = true;
           plugins = [ pkgs.evolution ] ++ config.programs.evolution.plugins;
         };
-        services.gnome3.gnome-keyring.enable = true;
+        services.gnome.gnome-keyring.enable = true;
       })
     ];
 }
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/glib-networking.nix b/nixpkgs/nixos/modules/services/desktops/gnome/glib-networking.nix
index 7e667b6b1f04..4288b6b5de61 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/glib-networking.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/glib-networking.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "glib-networking" "enable" ]
+      [ "services" "gnome" "glib-networking" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.glib-networking = {
+    services.gnome.glib-networking = {
 
       enable = mkEnableOption "network extensions for GLib";
 
@@ -24,7 +32,7 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.glib-networking.enable {
+  config = mkIf config.services.gnome.glib-networking.enable {
 
     services.dbus.packages = [ pkgs.glib-networking ];
 
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-initial-setup.nix
index c391ad9694c9..9e9771cf5415 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-initial-setup.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-initial-setup.nix
@@ -48,11 +48,19 @@ in
     maintainers = teams.gnome.members;
   };
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "gnome-initial-setup" "enable" ]
+      [ "services" "gnome" "gnome-initial-setup" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.gnome-initial-setup = {
+    services.gnome.gnome-initial-setup = {
 
       enable = mkEnableOption "GNOME Initial Setup, a Simple, easy, and safe way to prepare a new system";
 
@@ -63,16 +71,16 @@ in
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.gnome-initial-setup.enable {
+  config = mkIf config.services.gnome.gnome-initial-setup.enable {
 
     environment.systemPackages = [
-      pkgs.gnome3.gnome-initial-setup
+      pkgs.gnome.gnome-initial-setup
     ]
     ++ optional (versionOlder config.system.stateVersion "20.03") createGisStampFilesAutostart
     ;
 
     systemd.packages = [
-      pkgs.gnome3.gnome-initial-setup
+      pkgs.gnome.gnome-initial-setup
     ];
 
     systemd.user.targets."gnome-session".wants = [
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-keyring.nix b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-keyring.nix
index 2916a3c82b34..cda44bab8bfa 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-keyring.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-keyring.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "gnome-keyring" "enable" ]
+      [ "services" "gnome" "gnome-keyring" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.gnome-keyring = {
+    services.gnome.gnome-keyring = {
 
       enable = mkOption {
         type = types.bool;
@@ -33,18 +41,18 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.gnome-keyring.enable {
+  config = mkIf config.services.gnome.gnome-keyring.enable {
 
-    environment.systemPackages = [ pkgs.gnome3.gnome-keyring ];
+    environment.systemPackages = [ pkgs.gnome.gnome-keyring ];
 
-    services.dbus.packages = [ pkgs.gnome3.gnome-keyring pkgs.gcr ];
+    services.dbus.packages = [ pkgs.gnome.gnome-keyring pkgs.gcr ];
 
-    xdg.portal.extraPortals = [ pkgs.gnome3.gnome-keyring ];
+    xdg.portal.extraPortals = [ pkgs.gnome.gnome-keyring ];
 
     security.pam.services.login.enableGnomeKeyring = true;
 
     security.wrappers.gnome-keyring-daemon = {
-      source = "${pkgs.gnome3.gnome-keyring}/bin/gnome-keyring-daemon";
+      source = "${pkgs.gnome.gnome-keyring}/bin/gnome-keyring-daemon";
       capabilities = "cap_ipc_lock=ep";
     };
 
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-online-accounts.nix
index 3f9ced5e86b1..01f7e3695cf0 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-online-accounts.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "gnome-online-accounts" "enable" ]
+      [ "services" "gnome" "gnome-online-accounts" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.gnome-online-accounts = {
+    services.gnome.gnome-online-accounts = {
 
       enable = mkOption {
         type = types.bool;
@@ -32,7 +40,7 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.gnome-online-accounts.enable {
+  config = mkIf config.services.gnome.gnome-online-accounts.enable {
 
     environment.systemPackages = [ pkgs.gnome-online-accounts ];
 
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-online-miners.nix
index 39d669e8b30f..5f9039f68c4e 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-online-miners.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "gnome-online-miners" "enable" ]
+      [ "services" "gnome" "gnome-online-miners" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.gnome-online-miners = {
+    services.gnome.gnome-online-miners = {
 
       enable = mkOption {
         type = types.bool;
@@ -32,11 +40,11 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.gnome-online-miners.enable {
+  config = mkIf config.services.gnome.gnome-online-miners.enable {
 
-    environment.systemPackages = [ pkgs.gnome3.gnome-online-miners ];
+    environment.systemPackages = [ pkgs.gnome.gnome-online-miners ];
 
-    services.dbus.packages = [ pkgs.gnome3.gnome-online-miners ];
+    services.dbus.packages = [ pkgs.gnome.gnome-online-miners ];
 
   };
 
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix
new file mode 100644
index 000000000000..b5573d2fc21b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix
@@ -0,0 +1,32 @@
+# Remote desktop daemon using Pipewire.
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+  meta = {
+    maintainers = teams.gnome.members;
+  };
+
+  # Added 2021-05-07
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "gnome-remote-desktop" "enable" ]
+      [ "services" "gnome" "gnome-remote-desktop" "enable" ]
+    )
+  ];
+
+  ###### interface
+  options = {
+    services.gnome.gnome-remote-desktop = {
+      enable = mkEnableOption "Remote Desktop support using Pipewire";
+    };
+  };
+
+  ###### implementation
+  config = mkIf config.services.gnome.gnome-remote-desktop.enable {
+    services.pipewire.enable = true;
+
+    systemd.packages = [ pkgs.gnome.gnome-remote-desktop ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-settings-daemon.nix
index 1c33ed064a19..05b5c86ddcb3 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-settings-daemon.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-settings-daemon.nix
@@ -6,7 +6,7 @@ with lib;
 
 let
 
-  cfg = config.services.gnome3.gnome-settings-daemon;
+  cfg = config.services.gnome.gnome-settings-daemon;
 
 in
 
@@ -20,13 +20,19 @@ in
     (mkRemovedOptionModule
       ["services" "gnome3" "gnome-settings-daemon" "package"]
       "")
+
+    # Added 2021-05-07
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "gnome-settings-daemon" "enable" ]
+      [ "services" "gnome" "gnome-settings-daemon" "enable" ]
+    )
   ];
 
   ###### interface
 
   options = {
 
-    services.gnome3.gnome-settings-daemon = {
+    services.gnome.gnome-settings-daemon = {
 
       enable = mkEnableOption "GNOME Settings Daemon";
 
@@ -40,15 +46,15 @@ in
   config = mkIf cfg.enable {
 
     environment.systemPackages = [
-      pkgs.gnome3.gnome-settings-daemon
+      pkgs.gnome.gnome-settings-daemon
     ];
 
     services.udev.packages = [
-      pkgs.gnome3.gnome-settings-daemon
+      pkgs.gnome.gnome-settings-daemon
     ];
 
     systemd.packages = [
-      pkgs.gnome3.gnome-settings-daemon
+      pkgs.gnome.gnome-settings-daemon
     ];
 
     systemd.user.targets."gnome-session-initialized".wants = [
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-user-share.nix b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-user-share.nix
index f2fe8b41a9e2..38256af309cc 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-user-share.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/gnome-user-share.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  imports = [
+    # Added 2021-05-07
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "gnome-user-share" "enable" ]
+      [ "services" "gnome" "gnome-user-share" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.gnome-user-share = {
+    services.gnome.gnome-user-share = {
 
       enable = mkEnableOption "GNOME User Share, a user-level file sharing service for GNOME";
 
@@ -25,14 +33,14 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.gnome-user-share.enable {
+  config = mkIf config.services.gnome.gnome-user-share.enable {
 
     environment.systemPackages = [
-      pkgs.gnome3.gnome-user-share
+      pkgs.gnome.gnome-user-share
     ];
 
     systemd.packages = [
-      pkgs.gnome3.gnome-user-share
+      pkgs.gnome.gnome-user-share
     ];
 
   };
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/rygel.nix b/nixpkgs/nixos/modules/services/desktops/gnome/rygel.nix
index 917a1d6541e0..7ea9778fc408 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/rygel.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/rygel.nix
@@ -8,9 +8,17 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  imports = [
+    # Added 2021-05-07
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "rygel" "enable" ]
+      [ "services" "gnome" "rygel" "enable" ]
+    )
+  ];
+
   ###### interface
   options = {
-    services.gnome3.rygel = {
+    services.gnome.rygel = {
       enable = mkOption {
         default = false;
         description = ''
@@ -24,13 +32,13 @@ with lib;
   };
 
   ###### implementation
-  config = mkIf config.services.gnome3.rygel.enable {
-    environment.systemPackages = [ pkgs.gnome3.rygel ];
+  config = mkIf config.services.gnome.rygel.enable {
+    environment.systemPackages = [ pkgs.gnome.rygel ];
 
-    services.dbus.packages = [ pkgs.gnome3.rygel ];
+    services.dbus.packages = [ pkgs.gnome.rygel ];
 
-    systemd.packages = [ pkgs.gnome3.rygel ];
+    systemd.packages = [ pkgs.gnome.rygel ];
 
-    environment.etc."rygel.conf".source = "${pkgs.gnome3.rygel}/etc/rygel.conf";
+    environment.etc."rygel.conf".source = "${pkgs.gnome.rygel}/etc/rygel.conf";
   };
 }
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/sushi.nix b/nixpkgs/nixos/modules/services/desktops/gnome/sushi.nix
index 83b17365d5dd..3133a3a0d985 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/sushi.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/sushi.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  imports = [
+    # Added 2021-05-07
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "sushi" "enable" ]
+      [ "services" "gnome" "sushi" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.sushi = {
+    services.gnome.sushi = {
 
       enable = mkOption {
         type = types.bool;
@@ -31,11 +39,11 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.sushi.enable {
+  config = mkIf config.services.gnome.sushi.enable {
 
-    environment.systemPackages = [ pkgs.gnome3.sushi ];
+    environment.systemPackages = [ pkgs.gnome.sushi ];
 
-    services.dbus.packages = [ pkgs.gnome3.sushi ];
+    services.dbus.packages = [ pkgs.gnome.sushi ];
 
   };
 
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/tracker-miners.nix b/nixpkgs/nixos/modules/services/desktops/gnome/tracker-miners.nix
index f2af40249271..c9101f0caa63 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/tracker-miners.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/tracker-miners.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  imports = [
+    # Added 2021-05-07
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "tracker-miners" "enable" ]
+      [ "services" "gnome" "tracker-miners" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.tracker-miners = {
+    services.gnome.tracker-miners = {
 
       enable = mkOption {
         type = types.bool;
@@ -31,7 +39,7 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.tracker-miners.enable {
+  config = mkIf config.services.gnome.tracker-miners.enable {
 
     environment.systemPackages = [ pkgs.tracker-miners ];
 
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/tracker.nix b/nixpkgs/nixos/modules/services/desktops/gnome/tracker.nix
index cd196e385539..29d9662b0b8f 100644
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/tracker.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gnome/tracker.nix
@@ -10,11 +10,19 @@ with lib;
     maintainers = teams.gnome.members;
   };
 
+  imports = [
+    # Added 2021-05-07
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "tracker" "enable" ]
+      [ "services" "gnome" "tracker" "enable" ]
+    )
+  ];
+
   ###### interface
 
   options = {
 
-    services.gnome3.tracker = {
+    services.gnome.tracker = {
 
       enable = mkOption {
         type = types.bool;
@@ -32,7 +40,7 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.services.gnome3.tracker.enable {
+  config = mkIf config.services.gnome.tracker.enable {
 
     environment.systemPackages = [ pkgs.tracker ];
 
diff --git a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix b/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix
deleted file mode 100644
index 164a0a44f8c8..000000000000
--- a/nixpkgs/nixos/modules/services/desktops/gnome3/gnome-remote-desktop.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-# Remote desktop daemon using Pipewire.
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-{
-  meta = {
-    maintainers = teams.gnome.members;
-  };
-
-  ###### interface
-  options = {
-    services.gnome3.gnome-remote-desktop = {
-      enable = mkEnableOption "Remote Desktop support using Pipewire";
-    };
-  };
-
-  ###### implementation
-  config = mkIf config.services.gnome3.gnome-remote-desktop.enable {
-    services.pipewire.enable = true;
-
-    systemd.packages = [ pkgs.gnome3.gnome-remote-desktop ];
-  };
-}
diff --git a/nixpkgs/nixos/modules/services/desktops/gvfs.nix b/nixpkgs/nixos/modules/services/desktops/gvfs.nix
index 250ea6d4575f..966a4d38662b 100644
--- a/nixpkgs/nixos/modules/services/desktops/gvfs.nix
+++ b/nixpkgs/nixos/modules/services/desktops/gvfs.nix
@@ -34,7 +34,7 @@ in
       # gvfs can be built with multiple configurations
       package = mkOption {
         type = types.package;
-        default = pkgs.gnome3.gvfs;
+        default = pkgs.gnome.gvfs;
         description = "Which GVfs package to use.";
       };
 
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/README.md b/nixpkgs/nixos/modules/services/desktops/pipewire/README.md
deleted file mode 100644
index 87288a81cfe1..000000000000
--- a/nixpkgs/nixos/modules/services/desktops/pipewire/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Updating
-
-1. Update the version & hash in pkgs/development/libraries/pipewire/default.nix
-2. run `nix build -f /path/to/nixpkgs/checkout pipewire pipewire.mediaSession`
-3. copy all JSON files from result/etc/pipewire and result-mediaSession/etc/pipewire/media-session.d to this directory
-4. add new files to the module config and passthru tests
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
index bd00571bc35b..6d1c23e82569 100644
--- a/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
@@ -9,7 +9,7 @@
       ],
       "actions": {
         "update-props": {
-          "bluez5.reconnect-profiles": [
+          "bluez5.auto-connect": [
             "hfp_hf",
             "hsp_hs",
             "a2dp_sink"
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json
index 62e59935dbe5..24906e767d6d 100644
--- a/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/media-session.conf.json
@@ -59,6 +59,7 @@
     "with-pulseaudio": [
       "with-audio",
       "bluez5",
+      "logind",
       "restore-stream",
       "streams-follow-default"
     ]
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
index 3e776fe75a2c..17bbbdef1179 100644
--- a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-pulse.conf.json
@@ -30,7 +30,10 @@
       "args": {
         "server.address": [
           "unix:native"
-        ]
+        ],
+        "vm.overrides": {
+          "pulse.min.quantum": "1024/48000"
+        }
       }
     }
   ],
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json
index bae87dd66377..a9330f54f4f7 100644
--- a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.conf.json
@@ -2,7 +2,10 @@
   "context.properties": {
     "link.max-buffers": 16,
     "core.daemon": true,
-    "core.name": "pipewire-0"
+    "core.name": "pipewire-0",
+    "vm.overrides": {
+      "default.clock.min-quantum": 1024
+    }
   },
   "context.spa-libs": {
     "audio.convert.*": "audioconvert/libspa-audioconvert",
diff --git a/nixpkgs/nixos/modules/services/desktops/telepathy.nix b/nixpkgs/nixos/modules/services/desktops/telepathy.nix
index 8c50d860e5bb..b5f6a5fcbcfd 100644
--- a/nixpkgs/nixos/modules/services/desktops/telepathy.nix
+++ b/nixpkgs/nixos/modules/services/desktops/telepathy.nix
@@ -39,7 +39,7 @@ with lib;
     services.dbus.packages = [ pkgs.telepathy-mission-control ];
 
     # Enable runtime optional telepathy in gnome-shell
-    services.xserver.desktopManager.gnome3.sessionPath = with pkgs; [
+    services.xserver.desktopManager.gnome.sessionPath = with pkgs; [
       telepathy-glib
       telepathy-logger
     ];
diff --git a/nixpkgs/nixos/modules/services/desktops/tumbler.nix b/nixpkgs/nixos/modules/services/desktops/tumbler.nix
index a09079517f04..8d9248cb9839 100644
--- a/nixpkgs/nixos/modules/services/desktops/tumbler.nix
+++ b/nixpkgs/nixos/modules/services/desktops/tumbler.nix
@@ -19,7 +19,7 @@ in
   ];
 
   meta = {
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 
   ###### interface
diff --git a/nixpkgs/nixos/modules/services/desktops/zeitgeist.nix b/nixpkgs/nixos/modules/services/desktops/zeitgeist.nix
index cf7dd5fe3a13..fb0218da3045 100644
--- a/nixpkgs/nixos/modules/services/desktops/zeitgeist.nix
+++ b/nixpkgs/nixos/modules/services/desktops/zeitgeist.nix
@@ -7,7 +7,7 @@ with lib;
 {
 
   meta = {
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 
   ###### interface
diff --git a/nixpkgs/nixos/modules/services/development/jupyter/default.nix b/nixpkgs/nixos/modules/services/development/jupyter/default.nix
index 6a5fd6b2940e..21b84b3bcdaa 100644
--- a/nixpkgs/nixos/modules/services/development/jupyter/default.nix
+++ b/nixpkgs/nixos/modules/services/development/jupyter/default.nix
@@ -131,7 +131,7 @@ in {
             env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
                     ipykernel
                     pandas
-                    scikitlearn
+                    scikit-learn
                   ]));
           in {
             displayName = "Python 3 for machine learning";
diff --git a/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix b/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
index f1dcab68b000..a1df4468cfff 100644
--- a/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
+++ b/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
@@ -117,7 +117,7 @@ in {
             env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
                     ipykernel
                     pandas
-                    scikitlearn
+                    scikit-learn
                   ]));
           in {
             displayName = "Python 3 for machine learning";
diff --git a/nixpkgs/nixos/modules/services/games/factorio.nix b/nixpkgs/nixos/modules/services/games/factorio.nix
index a1aa5739d06b..3cb142757927 100644
--- a/nixpkgs/nixos/modules/services/games/factorio.nix
+++ b/nixpkgs/nixos/modules/services/games/factorio.nix
@@ -35,10 +35,10 @@ let
     auto_pause = true;
     only_admins_can_pause_the_game = true;
     autosave_only_on_server = true;
-    admins = [];
     non_blocking_saving = cfg.nonBlockingSaving;
   } // cfg.extraSettings;
   serverSettingsFile = pkgs.writeText "server-settings.json" (builtins.toJSON (filterAttrsRecursive (n: v: v != null) serverSettings));
+  serverAdminsFile = pkgs.writeText "server-adminlist.json" (builtins.toJSON cfg.admins);
   modDir = pkgs.factorio-utils.mkModDirDrv cfg.mods;
 in
 {
@@ -52,6 +52,16 @@ in
           The port to which the service should bind.
         '';
       };
+
+      admins = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "username" ];
+        description = ''
+          List of player names which will be admin.
+        '';
+      };
+
       openFirewall = mkOption {
         type = types.bool;
         default = false;
@@ -234,6 +244,7 @@ in
           "--start-server=${mkSavePath cfg.saveName}"
           "--server-settings=${serverSettingsFile}"
           (optionalString (cfg.mods != []) "--mod-directory=${modDir}")
+          (optionalString (cfg.admins != []) "--server-adminlist=${serverAdminsFile}")
         ];
 
         # Sandboxing
diff --git a/nixpkgs/nixos/modules/services/games/terraria.nix b/nixpkgs/nixos/modules/services/games/terraria.nix
index 34c8ff137d6a..9e8e5ae8759a 100644
--- a/nixpkgs/nixos/modules/services/games/terraria.nix
+++ b/nixpkgs/nixos/modules/services/games/terraria.nix
@@ -111,6 +111,13 @@ in
         default     = false;
         description = "Disables automatic Universal Plug and Play.";
       };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Wheter to open ports in the firewall";
+      };
+
       dataDir = mkOption {
         type        = types.str;
         default     = "/var/lib/terraria";
@@ -151,5 +158,11 @@ in
         ${pkgs.coreutils}/bin/chgrp terraria ${cfg.dataDir}/terraria.sock
       '';
     };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.port ];
+      allowedUDPPorts = [ cfg.port ];
+    };
+
   };
 }
diff --git a/nixpkgs/nixos/modules/services/hardware/actkbd.nix b/nixpkgs/nixos/modules/services/hardware/actkbd.nix
index daa407ca1f0e..f7770f85da33 100644
--- a/nixpkgs/nixos/modules/services/hardware/actkbd.nix
+++ b/nixpkgs/nixos/modules/services/hardware/actkbd.nix
@@ -75,7 +75,7 @@ in
         type = types.listOf (types.submodule bindingCfg);
         default = [];
         example = lib.literalExample ''
-          [ { keys = [ 113 ]; events = [ "key" ]; command = "''${pkgs.alsaUtils}/bin/amixer -q set Master toggle"; }
+          [ { keys = [ 113 ]; events = [ "key" ]; command = "''${pkgs.alsa-utils}/bin/amixer -q set Master toggle"; }
           ]
         '';
         description = ''
diff --git a/nixpkgs/nixos/modules/services/hardware/brltty.nix b/nixpkgs/nixos/modules/services/hardware/brltty.nix
index 1266e8f81e5b..730560175327 100644
--- a/nixpkgs/nixos/modules/services/hardware/brltty.nix
+++ b/nixpkgs/nixos/modules/services/hardware/brltty.nix
@@ -5,6 +5,19 @@ with lib;
 let
   cfg = config.services.brltty;
 
+  targets = [
+    "default.target" "multi-user.target"
+    "rescue.target" "emergency.target"
+  ];
+
+  genApiKey = pkgs.writers.writeDash "generate-brlapi-key" ''
+    if ! test -f /etc/brlapi.key; then
+      echo -n generating brlapi key...
+      ${pkgs.brltty}/bin/brltty-genkey -f /etc/brlapi.key
+      echo done
+    fi
+  '';
+
 in {
 
   options = {
@@ -18,33 +31,27 @@ in {
   };
 
   config = mkIf cfg.enable {
-
-    systemd.services.brltty = {
-      description = "Braille Device Support";
-      unitConfig = {
-        Documentation = "http://mielke.cc/brltty/";
-        DefaultDependencies = "no";
-        RequiresMountsFor = "${pkgs.brltty}/var/lib/brltty";
-      };
-      serviceConfig = {
-        ExecStart = "${pkgs.brltty}/bin/brltty --no-daemon";
-        Type = "notify";
-        TimeoutStartSec = 5;
-        TimeoutStopSec = 10;
-        Restart = "always";
-        RestartSec = 30;
-        Nice = -10;
-        OOMScoreAdjust = -900;
-        ProtectHome = "read-only";
-        ProtectSystem = "full";
-        SystemCallArchitectures = "native";
-      };
-      wants = [ "systemd-udev-settle.service" ];
-      after = [ "local-fs.target" "systemd-udev-settle.service" ];
-      before = [ "sysinit.target" ];
-      wantedBy = [ "sysinit.target" ];
+    users.users.brltty = {
+      description = "BRLTTY daemon user";
+      group = "brltty";
+    };
+    users.groups = {
+      brltty = { };
+      brlapi = { };
     };
 
+    systemd.services."brltty@".serviceConfig =
+      { ExecStartPre = "!${genApiKey}"; };
+
+    # Install all upstream-provided files
+    systemd.packages = [ pkgs.brltty ];
+    systemd.tmpfiles.packages = [ pkgs.brltty ];
+    services.udev.packages = [ pkgs.brltty ];
+    environment.systemPackages = [ pkgs.brltty ];
+
+    # Add missing WantedBys (see issue #81138)
+    systemd.paths.brltty.wantedBy = targets;
+    systemd.paths."brltty@".wantedBy = targets;
   };
 
 }
diff --git a/nixpkgs/nixos/modules/services/hardware/fancontrol.nix b/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
index e1ce11a5aef6..5574c5a132e5 100644
--- a/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
+++ b/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
@@ -6,21 +6,21 @@ let
   cfg = config.hardware.fancontrol;
   configFile = pkgs.writeText "fancontrol.conf" cfg.config;
 
-in{
+in
+{
   options.hardware.fancontrol = {
     enable = mkEnableOption "software fan control (requires fancontrol.config)";
 
     config = mkOption {
-      default = null;
-      type = types.nullOr types.lines;
-      description = "Fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
+      type = types.lines;
+      description = "Required fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
       example = ''
         # Configuration file generated by pwmconfig
         INTERVAL=10
         DEVPATH=hwmon3=devices/virtual/thermal/thermal_zone2 hwmon4=devices/platform/f71882fg.656
         DEVNAME=hwmon3=soc_dts1 hwmon4=f71869a
         FCTEMPS=hwmon4/device/pwm1=hwmon3/temp1_input
-        FCFANS= hwmon4/device/pwm1=hwmon4/device/fan1_input
+        FCFANS=hwmon4/device/pwm1=hwmon4/device/fan1_input
         MINTEMP=hwmon4/device/pwm1=35
         MAXTEMP=hwmon4/device/pwm1=65
         MINSTART=hwmon4/device/pwm1=150
@@ -30,16 +30,18 @@ in{
   };
 
   config = mkIf cfg.enable {
+
     systemd.services.fancontrol = {
-      unitConfig.Documentation = "man:fancontrol(8)";
+      documentation = [ "man:fancontrol(8)" ];
       description = "software fan control";
       wantedBy = [ "multi-user.target" ];
       after = [ "lm_sensors.service" ];
 
       serviceConfig = {
-        Type = "simple";
         ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}";
       };
     };
   };
+
+  meta.maintainers = [ maintainers.evils ];
 }
diff --git a/nixpkgs/nixos/modules/services/hardware/pcscd.nix b/nixpkgs/nixos/modules/services/hardware/pcscd.nix
index 54b6693f85a0..4fc1e351f503 100644
--- a/nixpkgs/nixos/modules/services/hardware/pcscd.nix
+++ b/nixpkgs/nixos/modules/services/hardware/pcscd.nix
@@ -50,6 +50,7 @@ in
 
     environment.etc."reader.conf".source = cfgFile;
 
+    environment.systemPackages = [ pkgs.pcsclite ];
     systemd.packages = [ (getBin pkgs.pcsclite) ];
 
     systemd.sockets.pcscd.wantedBy = [ "sockets.target" ];
@@ -57,6 +58,16 @@ in
     systemd.services.pcscd = {
       environment.PCSCLITE_HP_DROPDIR = pluginEnv;
       restartTriggers = [ "/etc/reader.conf" ];
+
+      # If the cfgFile is empty and not specified (in which case the default
+      # /etc/reader.conf is assumed), pcscd will happily start going through the
+      # entire confdir (/etc in our case) looking for a config file and try to
+      # parse everything it finds. Doesn't take a lot of imagination to see how
+      # well that works. It really shouldn't do that to begin with, but to work
+      # around it, we force the path to the cfgFile.
+      #
+      # https://github.com/NixOS/nixpkgs/issues/121088
+      serviceConfig.ExecStart = [ "" "${getBin pkgs.pcsclite}/bin/pcscd -f -x -c ${cfgFile}" ];
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
new file mode 100644
index 000000000000..89b5ff0e0282
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5.nix
@@ -0,0 +1,110 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.hardware.sane.brscan5;
+
+  netDeviceList = attrValues cfg.netDevices;
+
+  etcFiles = pkgs.callPackage ./brscan5_etc_files.nix { netDevices = netDeviceList; };
+
+  netDeviceOpts = { name, ... }: {
+
+    options = {
+
+      name = mkOption {
+        type = types.str;
+        description = ''
+          The friendly name you give to the network device. If undefined,
+          the name of attribute will be used.
+        '';
+
+        example = literalExample "office1";
+      };
+
+      model = mkOption {
+        type = types.str;
+        description = ''
+          The model of the network device.
+        '';
+
+        example = literalExample "ADS-1200";
+      };
+
+      ip = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The ip address of the device. If undefined, you will have to
+          provide a nodename.
+        '';
+
+        example = literalExample "192.168.1.2";
+      };
+
+      nodename = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The node name of the device. If undefined, you will have to
+          provide an ip.
+        '';
+
+        example = literalExample "BRW0080927AFBCE";
+      };
+
+    };
+
+
+    config =
+      { name = mkDefault name;
+      };
+  };
+
+in
+
+{
+  options = {
+
+    hardware.sane.brscan5.enable =
+      mkEnableOption "the Brother brscan5 sane backend";
+
+    hardware.sane.brscan5.netDevices = mkOption {
+      default = {};
+      example =
+        { office1 = { model = "MFC-7860DW"; ip = "192.168.1.2"; };
+          office2 = { model = "MFC-7860DW"; nodename = "BRW0080927AFBCE"; };
+        };
+      type = with types; attrsOf (submodule netDeviceOpts);
+      description = ''
+        The list of network devices that will be registered against the brscan5
+        sane backend.
+      '';
+    };
+  };
+
+  config = mkIf (config.hardware.sane.enable && cfg.enable) {
+
+    hardware.sane.extraBackends = [
+      pkgs.brscan5
+    ];
+
+    environment.etc."opt/brother/scanner/brscan5" =
+      { source = "${etcFiles}/etc/opt/brother/scanner/brscan5"; };
+    environment.etc."opt/brother/scanner/models" =
+      { source = "${etcFiles}/etc/opt/brother/scanner/brscan5/models"; };
+    environment.etc."sane.d/dll.d/brother5.conf".source = "${pkgs.brscan5}/etc/sane.d/dll.d/brother.conf";
+
+    assertions = [
+      { assertion = all (x: !(null != x.ip && null != x.nodename)) netDeviceList;
+        message = ''
+          When describing a network device as part of the attribute list
+          `hardware.sane.brscan5.netDevices`, only one of its `ip` or `nodename`
+          attribute should be specified, not both!
+        '';
+      }
+    ];
+
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix
new file mode 100644
index 000000000000..432f0316a4fa
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix
@@ -0,0 +1,77 @@
+{ stdenv, lib, brscan5, netDevices ? [] }:
+
+/*
+
+Testing
+-------
+From nixpkgs repo
+
+No net devices:
+
+~~~
+nix-build -E 'let pkgs = import ./. {};
+                  brscan5-etc-files = pkgs.callPackage (import ./nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix) {};
+              in brscan5-etc-files'
+~~~
+
+Two net devices:
+
+~~~
+nix-build -E 'let pkgs = import ./. {};
+                  brscan5-etc-files = pkgs.callPackage (import ./nixos/modules/services/hardware/sane_extra_backends/brscan5_etc_files.nix) {};
+              in brscan5-etc-files.override {
+                   netDevices = [
+                     {name="a"; model="ADS-1200"; nodename="BRW0080927AFBCE";}
+                     {name="b"; model="ADS-1200"; ip="192.168.1.2";}
+                   ];
+              }'
+~~~
+
+*/
+
+let
+
+  addNetDev = nd: ''
+    brsaneconfig5 -a \
+    name="${nd.name}" \
+    model="${nd.model}" \
+    ${if (lib.hasAttr "nodename" nd && nd.nodename != null) then
+      ''nodename="${nd.nodename}"'' else
+      ''ip="${nd.ip}"''}'';
+  addAllNetDev = xs: lib.concatStringsSep "\n" (map addNetDev xs);
+in
+
+stdenv.mkDerivation {
+
+  name = "brscan5-etc-files";
+  version = "1.2.6-0";
+  src = "${brscan5}/opt/brother/scanner/brscan5";
+
+  nativeBuildInputs = [ brscan5 ];
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    TARGET_DIR="$out/etc/opt/brother/scanner/brscan5"
+    mkdir -p "$TARGET_DIR"
+    cp -rp "./models" "$TARGET_DIR"
+    cp -rp "./brscan5.ini" "$TARGET_DIR"
+    cp -rp "./brsanenetdevice.cfg" "$TARGET_DIR"
+
+    export NIX_REDIRECTS="/etc/opt/brother/scanner/brscan5/=$TARGET_DIR/"
+
+    printf '${addAllNetDev netDevices}\n'
+
+    ${addAllNetDev netDevices}
+  '';
+
+  dontInstall = true;
+
+  meta = with lib; {
+    description = "Brother brscan5 sane backend driver etc files";
+    homepage = "https://www.brother.com";
+    platforms = platforms.linux;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ mattchrist ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/hardware/spacenavd.nix b/nixpkgs/nixos/modules/services/hardware/spacenavd.nix
index cecc4d6f029b..74725dd23d25 100644
--- a/nixpkgs/nixos/modules/services/hardware/spacenavd.nix
+++ b/nixpkgs/nixos/modules/services/hardware/spacenavd.nix
@@ -13,13 +13,12 @@ in {
   };
 
   config = mkIf cfg.enable {
-    systemd.services.spacenavd = {
+    systemd.user.services.spacenavd = {
       description = "Daemon for the Spacenavigator 6DOF mice by 3Dconnexion";
       after = [ "syslog.target" ];
       wantedBy = [ "graphical.target" ];
       serviceConfig = {
         ExecStart = "${pkgs.spacenavd}/bin/spacenavd -d -l syslog";
-        StandardError = "syslog";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/logging/promtail.nix b/nixpkgs/nixos/modules/services/logging/promtail.nix
index 19b12daa4152..34211687dc1d 100644
--- a/nixpkgs/nixos/modules/services/logging/promtail.nix
+++ b/nixpkgs/nixos/modules/services/logging/promtail.nix
@@ -40,6 +40,7 @@ in {
 
       serviceConfig = {
         Restart = "on-failure";
+        TimeoutStopSec = 10;
 
         ExecStart = "${pkgs.grafana-loki}/bin/promtail -config.file=${prettyJSON cfg.configuration} ${escapeShellArgs cfg.extraFlags}";
 
diff --git a/nixpkgs/nixos/modules/services/mail/mailman.nix b/nixpkgs/nixos/modules/services/mail/mailman.nix
index 64fb30d41567..0c5b4ac20236 100644
--- a/nixpkgs/nixos/modules/services/mail/mailman.nix
+++ b/nixpkgs/nixos/modules/services/mail/mailman.nix
@@ -318,6 +318,7 @@ in {
         before = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ];
         requiredBy = [ "mailman.service" "mailman-web-setup.service" "mailman-uwsgi.service" "hyperkitty.service" ];
         path = with pkgs; [ jq ];
+        serviceConfig.Type = "oneshot";
         script = ''
           mailmanDir=/var/lib/mailman
           mailmanWebDir=/var/lib/mailman-web
@@ -350,7 +351,6 @@ in {
           mv "$mailmanCfgTmp" "$mailmanCfg"
         '';
         serviceConfig = {
-          Type = "oneshot";
           # RemainAfterExit makes restartIfChanged work for this service, so
           # downstream services will get updated automatically when things like
           # services.mailman.hyperkitty.baseUrl change.  Otherwise users have to
diff --git a/nixpkgs/nixos/modules/services/mail/mailman.xml b/nixpkgs/nixos/modules/services/mail/mailman.xml
index 8da491ccbe9f..27247fb064f2 100644
--- a/nixpkgs/nixos/modules/services/mail/mailman.xml
+++ b/nixpkgs/nixos/modules/services/mail/mailman.xml
@@ -31,11 +31,11 @@
     <link linkend="opt-services.mailman.enable">enable</link> = true;
     <link linkend="opt-services.mailman.serve.enable">serve.enable</link> = true;
     <link linkend="opt-services.mailman.hyperkitty.enable">hyperkitty.enable</link> = true;
-    <link linkend="opt-services.mailman.hyperkitty.enable">webHosts</link> = ["lists.example.org"];
-    <link linkend="opt-services.mailman.hyperkitty.enable">siteOwner</link> = "mailman@example.org";
+    <link linkend="opt-services.mailman.webHosts">webHosts</link> = ["lists.example.org"];
+    <link linkend="opt-services.mailman.siteOwner">siteOwner</link> = "mailman@example.org";
   };
   <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">services.nginx.virtualHosts."lists.example.org".enableACME</link> = true;
-  <link linkend="opt-services.mailman.hyperkitty.enable">networking.firewall.allowedTCPPorts</link> = [ 25 80 443 ];
+  <link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 25 80 443 ];
 }</programlisting>
     </para>
     <para>
diff --git a/nixpkgs/nixos/modules/services/mail/opendkim.nix b/nixpkgs/nixos/modules/services/mail/opendkim.nix
index 9bf6f338d93e..beff57613afc 100644
--- a/nixpkgs/nixos/modules/services/mail/opendkim.nix
+++ b/nixpkgs/nixos/modules/services/mail/opendkim.nix
@@ -134,7 +134,7 @@ in {
         ReadWritePaths = [ cfg.keyPath ];
 
         AmbientCapabilities = [];
-        CapabilityBoundingSet = [];
+        CapabilityBoundingSet = "";
         DevicePolicy = "closed";
         LockPersonality = true;
         MemoryDenyWriteExecute = true;
diff --git a/nixpkgs/nixos/modules/services/mail/postfix.nix b/nixpkgs/nixos/modules/services/mail/postfix.nix
index 8e5bed5fcb87..35639e1bbc83 100644
--- a/nixpkgs/nixos/modules/services/mail/postfix.nix
+++ b/nixpkgs/nixos/modules/services/mail/postfix.nix
@@ -773,7 +773,7 @@ in
         };
 
       services.postfix.config = (mapAttrs (_: v: mkDefault v) {
-        compatibility_level  = "9999";
+        compatibility_level  = pkgs.postfix.version;
         mail_owner           = cfg.user;
         default_privs        = "nobody";
 
diff --git a/nixpkgs/nixos/modules/services/mail/roundcube.nix b/nixpkgs/nixos/modules/services/mail/roundcube.nix
index ee7aa7e22fb9..f9b63000473c 100644
--- a/nixpkgs/nixos/modules/services/mail/roundcube.nix
+++ b/nixpkgs/nixos/modules/services/mail/roundcube.nix
@@ -7,7 +7,7 @@ let
   fpm = config.services.phpfpm.pools.roundcube;
   localDB = cfg.database.host == "localhost";
   user = cfg.database.username;
-  phpWithPspell = pkgs.php.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled);
+  phpWithPspell = pkgs.php74.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled);
 in
 {
   options.services.roundcube = {
diff --git a/nixpkgs/nixos/modules/services/mail/rspamd.nix b/nixpkgs/nixos/modules/services/mail/rspamd.nix
index 2f9d28195bd8..473ddd52357d 100644
--- a/nixpkgs/nixos/modules/services/mail/rspamd.nix
+++ b/nixpkgs/nixos/modules/services/mail/rspamd.nix
@@ -410,7 +410,7 @@ in
         StateDirectoryMode = "0700";
 
         AmbientCapabilities = [];
-        CapabilityBoundingSet = [];
+        CapabilityBoundingSet = "";
         DevicePolicy = "closed";
         LockPersonality = true;
         NoNewPrivileges = true;
diff --git a/nixpkgs/nixos/modules/services/misc/airsonic.nix b/nixpkgs/nixos/modules/services/misc/airsonic.nix
index 5cc2ff7f4bd1..a572f1f6d6f5 100644
--- a/nixpkgs/nixos/modules/services/misc/airsonic.nix
+++ b/nixpkgs/nixos/modules/services/misc/airsonic.nix
@@ -118,7 +118,7 @@ in {
       '';
       serviceConfig = {
         ExecStart = ''
-          ${pkgs.jre}/bin/java -Xmx${toString cfg.maxMemory}m \
+          ${pkgs.jre8}/bin/java -Xmx${toString cfg.maxMemory}m \
           -Dairsonic.home=${cfg.home} \
           -Dserver.address=${cfg.listenAddress} \
           -Dserver.port=${toString cfg.port} \
diff --git a/nixpkgs/nixos/modules/services/misc/autorandr.nix b/nixpkgs/nixos/modules/services/misc/autorandr.nix
index dfb418af6ede..95cee5046e81 100644
--- a/nixpkgs/nixos/modules/services/misc/autorandr.nix
+++ b/nixpkgs/nixos/modules/services/misc/autorandr.nix
@@ -48,5 +48,5 @@ in {
 
   };
 
-  meta.maintainers = with maintainers; [ gnidorah ];
+  meta.maintainers = with maintainers; [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/misc/bees.nix b/nixpkgs/nixos/modules/services/misc/bees.nix
index b0ed2d5c2862..6b8cae84642f 100644
--- a/nixpkgs/nixos/modules/services/misc/bees.nix
+++ b/nixpkgs/nixos/modules/services/misc/bees.nix
@@ -57,7 +57,7 @@ let
     };
     options.extraOptions = mkOption {
       type = listOf str;
-      default = [];
+      default = [ ];
       description = ''
         Extra command-line options passed to the daemon. See upstream bees documentation.
       '';
@@ -67,7 +67,8 @@ let
     };
   };
 
-in {
+in
+{
 
   options.services.beesd = {
     filesystems = mkOption {
@@ -87,37 +88,42 @@ in {
     };
   };
   config = {
-    systemd.services = mapAttrs' (name: fs: nameValuePair "beesd@${name}" {
-      description = "Block-level BTRFS deduplication for %i";
-      after = [ "sysinit.target" ];
+    systemd.services = mapAttrs'
+      (name: fs: nameValuePair "beesd@${name}" {
+        description = "Block-level BTRFS deduplication for %i";
+        after = [ "sysinit.target" ];
 
-      serviceConfig = let
-        configOpts = [
-          fs.spec
-          "verbosity=${toString fs.verbosity}"
-          "idxSizeMB=${toString fs.hashTableSizeMB}"
-          "workDir=${fs.workDir}"
-        ];
-        configOptsStr = escapeShellArgs configOpts;
-      in {
-        # Values from https://github.com/Zygo/bees/blob/v0.6.1/scripts/beesd%40.service.in
-        ExecStart = "${pkgs.bees}/bin/bees-service-wrapper run ${configOptsStr} -- --no-timestamps ${escapeShellArgs fs.extraOptions}";
-        ExecStopPost = "${pkgs.bees}/bin/bees-service-wrapper cleanup ${configOptsStr}";
-        CPUAccounting = true;
-        CPUWeight = 12;
-        IOSchedulingClass = "idle";
-        IOSchedulingPriority = 7;
-        IOWeight = 10;
-        KillMode = "control-group";
-        KillSignal = "SIGTERM";
-        MemoryAccounting = true;
-        Nice = 19;
-        Restart = "on-abnormal";
-        StartupCPUWeight = 25;
-        StartupIOWeight = 25;
-        SyslogIdentifier = "bees"; # would otherwise be "bees-service-wrapper"
-      };
-      wantedBy = ["multi-user.target"];
-    }) cfg.filesystems;
+        serviceConfig =
+          let
+            configOpts = [
+              fs.spec
+              "verbosity=${toString fs.verbosity}"
+              "idxSizeMB=${toString fs.hashTableSizeMB}"
+              "workDir=${fs.workDir}"
+            ];
+            configOptsStr = escapeShellArgs configOpts;
+          in
+          {
+            # Values from https://github.com/Zygo/bees/blob/v0.6.5/scripts/beesd@.service.in
+            ExecStart = "${pkgs.bees}/bin/bees-service-wrapper run ${configOptsStr} -- --no-timestamps ${escapeShellArgs fs.extraOptions}";
+            ExecStopPost = "${pkgs.bees}/bin/bees-service-wrapper cleanup ${configOptsStr}";
+            CPUAccounting = true;
+            CPUSchedulingPolicy = "batch";
+            CPUWeight = 12;
+            IOSchedulingClass = "idle";
+            IOSchedulingPriority = 7;
+            IOWeight = 10;
+            KillMode = "control-group";
+            KillSignal = "SIGTERM";
+            MemoryAccounting = true;
+            Nice = 19;
+            Restart = "on-abnormal";
+            StartupCPUWeight = 25;
+            StartupIOWeight = 25;
+            SyslogIdentifier = "beesd"; # would otherwise be "bees-service-wrapper"
+          };
+        wantedBy = [ "multi-user.target" ];
+      })
+      cfg.filesystems;
   };
 }
diff --git a/nixpkgs/nixos/modules/services/misc/dendrite.nix b/nixpkgs/nixos/modules/services/misc/dendrite.nix
new file mode 100644
index 000000000000..c967fc3a362a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/dendrite.nix
@@ -0,0 +1,181 @@
+{ config, lib, pkgs, ... }:
+let
+  cfg = config.services.dendrite;
+  settingsFormat = pkgs.formats.yaml { };
+  configurationYaml = settingsFormat.generate "dendrite.yaml" cfg.settings;
+  workingDir = "/var/lib/dendrite";
+in
+{
+  options.services.dendrite = {
+    enable = lib.mkEnableOption "matrix.org dendrite";
+    httpPort = lib.mkOption {
+      type = lib.types.nullOr lib.types.port;
+      default = 8008;
+      description = ''
+        The port to listen for HTTP requests on.
+      '';
+    };
+    httpsPort = lib.mkOption {
+      type = lib.types.nullOr lib.types.port;
+      default = null;
+      description = ''
+        The port to listen for HTTPS requests on.
+      '';
+    };
+    tlsCert = lib.mkOption {
+      type = lib.types.nullOr lib.types.path;
+      example = "/var/lib/dendrite/server.cert";
+      default = null;
+      description = ''
+        The path to the TLS certificate.
+
+        <programlisting>
+          nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
+        </programlisting>
+      '';
+    };
+    tlsKey = lib.mkOption {
+      type = lib.types.nullOr lib.types.path;
+      example = "/var/lib/dendrite/server.key";
+      default = null;
+      description = ''
+        The path to the TLS key.
+
+        <programlisting>
+          nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
+        </programlisting>
+      '';
+    };
+    environmentFile = lib.mkOption {
+      type = lib.types.nullOr lib.types.path;
+      example = "/var/lib/dendrite/registration_secret";
+      default = null;
+      description = ''
+        Environment file as defined in <citerefentry>
+        <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
+        </citerefentry>.
+        Secrets may be passed to the service without adding them to the world-readable
+        Nix store, by specifying placeholder variables as the option value in Nix and
+        setting these variables accordingly in the environment file. Currently only used
+        for the registration secret to allow secure registration when
+        client_api.registration_disabled is true.
+
+        <programlisting>
+          # snippet of dendrite-related config
+          services.dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET";
+        </programlisting>
+
+        <programlisting>
+          # content of the environment file
+          REGISTRATION_SHARED_SECRET=verysecretpassword
+        </programlisting>
+
+        Note that this file needs to be available on the host on which
+        <literal>dendrite</literal> is running.
+      '';
+    };
+    settings = lib.mkOption {
+      type = lib.types.submodule {
+        freeformType = settingsFormat.type;
+        options.global = {
+          server_name = lib.mkOption {
+            type = lib.types.str;
+            example = "example.com";
+            description = ''
+              The domain name of the server, with optional explicit port.
+              This is used by remote servers to connect to this server.
+              This is also the last part of your UserID.
+            '';
+          };
+          private_key = lib.mkOption {
+            type = lib.types.path;
+            example = "${workingDir}/matrix_key.pem";
+            description = ''
+              The path to the signing private key file, used to sign
+              requests and events.
+
+              <programlisting>
+                nix-shell -p dendrite --command "generate-keys --private-key matrix_key.pem"
+              </programlisting>
+            '';
+          };
+          trusted_third_party_id_servers = lib.mkOption {
+            type = lib.types.listOf lib.types.str;
+            example = [ "matrix.org" ];
+            default = [ "matrix.org" "vector.im" ];
+            description = ''
+              Lists of domains that the server will trust as identity
+              servers to verify third party identifiers such as phone
+              numbers and email addresses
+            '';
+          };
+        };
+        options.client_api = {
+          registration_disabled = lib.mkOption {
+            type = lib.types.bool;
+            default = true;
+            description = ''
+              Whether to disable user registration to the server
+              without the shared secret.
+            '';
+          };
+        };
+      };
+      default = { };
+      description = ''
+        Configuration for dendrite, see:
+        <link xlink:href="https://github.com/matrix-org/dendrite/blob/master/dendrite-config.yaml"/>
+        for available options with which to populate settings.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    assertions = [{
+      assertion = cfg.httpsPort != null -> (cfg.tlsCert != null && cfg.tlsKey != null);
+      message = ''
+        If Dendrite is configured to use https, tlsCert and tlsKey must be provided.
+
+        nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
+      '';
+    }];
+
+    systemd.services.dendrite = {
+      description = "Dendrite Matrix homeserver";
+      after = [
+        "network.target"
+      ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "simple";
+        DynamicUser = true;
+        StateDirectory = "dendrite";
+        WorkingDirectory = workingDir;
+        RuntimeDirectory = "dendrite";
+        RuntimeDirectoryMode = "0700";
+        EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
+        ExecStartPre =
+          if (cfg.environmentFile != null) then ''
+            ${pkgs.envsubst}/bin/envsubst \
+              -i ${configurationYaml} \
+              -o /run/dendrite/dendrite.yaml
+          '' else ''
+            ${pkgs.coreutils}/bin/cp ${configurationYaml} /run/dendrite/dendrite.yaml
+          '';
+        ExecStart = lib.strings.concatStringsSep " " ([
+          "${pkgs.dendrite}/bin/dendrite-monolith-server"
+          "--config /run/dendrite/dendrite.yaml"
+        ] ++ lib.optionals (cfg.httpPort != null) [
+          "--http-bind-address :${builtins.toString cfg.httpPort}"
+        ] ++ lib.optionals (cfg.httpsPort != null) [
+          "--https-bind-address :${builtins.toString cfg.httpsPort}"
+          "--tls-cert ${cfg.tlsCert}"
+          "--tls-key ${cfg.tlsKey}"
+        ]);
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        Restart = "on-failure";
+      };
+    };
+  };
+  meta.maintainers = lib.teams.matrix.members;
+}
diff --git a/nixpkgs/nixos/modules/services/misc/disnix.nix b/nixpkgs/nixos/modules/services/misc/disnix.nix
index 41483d80a2dd..24a259bb4d2b 100644
--- a/nixpkgs/nixos/modules/services/misc/disnix.nix
+++ b/nixpkgs/nixos/modules/services/misc/disnix.nix
@@ -37,7 +37,7 @@ in
       enableProfilePath = mkEnableOption "exposing the Disnix profiles in the system's PATH";
 
       profiles = mkOption {
-        type = types.listOf types.string;
+        type = types.listOf types.str;
         default = [ "default" ];
         example = [ "default" ];
         description = "Names of the Disnix profiles to expose in the system's PATH";
@@ -53,6 +53,7 @@ in
 
     environment.systemPackages = [ pkgs.disnix ] ++ optional cfg.useWebServiceInterface pkgs.DisnixWebService;
     environment.variables.PATH = lib.optionals cfg.enableProfilePath (map (profileName: "/nix/var/nix/profiles/disnix/${profileName}/bin" ) cfg.profiles);
+    environment.variables.DISNIX_REMOTE_CLIENT = lib.optionalString (cfg.enableMultiUser) "disnix-client";
 
     services.dbus.enable = true;
     services.dbus.packages = [ pkgs.disnix ];
diff --git a/nixpkgs/nixos/modules/services/misc/duckling.nix b/nixpkgs/nixos/modules/services/misc/duckling.nix
new file mode 100644
index 000000000000..77d2a92380b0
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/duckling.nix
@@ -0,0 +1,39 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.duckling;
+in {
+  options = {
+    services.duckling = {
+      enable = mkEnableOption "duckling";
+
+      port = mkOption {
+        type = types.port;
+        default = 8080;
+        description = ''
+          Port on which duckling will run.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.duckling = {
+      description = "Duckling server service";
+      wantedBy    = [ "multi-user.target" ];
+      after       = [ "network.target" ];
+
+      environment = {
+        PORT = builtins.toString cfg.port;
+      };
+
+      serviceConfig = {
+        ExecStart = "${pkgs.haskellPackages.duckling}/bin/duckling-example-exe --no-access-log --no-error-log";
+        Restart = "always";
+        DynamicUser = true;
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/fstrim.nix b/nixpkgs/nixos/modules/services/misc/fstrim.nix
index 5258f5acb410..a9fc04b46f0a 100644
--- a/nixpkgs/nixos/modules/services/misc/fstrim.nix
+++ b/nixpkgs/nixos/modules/services/misc/fstrim.nix
@@ -42,5 +42,5 @@ in {
 
   };
 
-  meta.maintainers = with maintainers; [ gnidorah ];
+  meta.maintainers = with maintainers; [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/misc/geoip-updater.nix b/nixpkgs/nixos/modules/services/misc/geoip-updater.nix
deleted file mode 100644
index baf0a8d73d19..000000000000
--- a/nixpkgs/nixos/modules/services/misc/geoip-updater.nix
+++ /dev/null
@@ -1,306 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.geoip-updater;
-
-  dbBaseUrl = "https://geolite.maxmind.com/download/geoip/database";
-
-  randomizedTimerDelaySec = "3600";
-
-  # Use writeScriptBin instead of writeScript, so that argv[0] (logged to the
-  # journal) doesn't include the long nix store path hash. (Prefixing the
-  # ExecStart= command with '@' doesn't work because we start a shell (new
-  # process) that creates a new argv[0].)
-  geoip-updater = pkgs.writeScriptBin "geoip-updater" ''
-    #!${pkgs.runtimeShell}
-    skipExisting=0
-    debug()
-    {
-        echo "<7>$@"
-    }
-    info()
-    {
-        echo "<6>$@"
-    }
-    error()
-    {
-        echo "<3>$@"
-    }
-    die()
-    {
-        error "$@"
-        exit 1
-    }
-    waitNetworkOnline()
-    {
-        ret=1
-        for i in $(seq 6); do
-            curl_out=$("${pkgs.curl.bin}/bin/curl" \
-                --silent --fail --show-error --max-time 60 "${dbBaseUrl}" 2>&1)
-            if [ $? -eq 0 ]; then
-                debug "Server is reachable (try $i)"
-                ret=0
-                break
-            else
-                debug "Server is unreachable (try $i): $curl_out"
-                sleep 10
-            fi
-        done
-        return $ret
-    }
-    dbFnameTmp()
-    {
-        dburl=$1
-        echo "${cfg.databaseDir}/.$(basename "$dburl")"
-    }
-    dbFnameTmpDecompressed()
-    {
-        dburl=$1
-        echo "${cfg.databaseDir}/.$(basename "$dburl")" | sed 's/\.\(gz\|xz\)$//'
-    }
-    dbFname()
-    {
-        dburl=$1
-        echo "${cfg.databaseDir}/$(basename "$dburl")" | sed 's/\.\(gz\|xz\)$//'
-    }
-    downloadDb()
-    {
-        dburl=$1
-        curl_out=$("${pkgs.curl.bin}/bin/curl" \
-            --silent --fail --show-error --max-time 900 -L -o "$(dbFnameTmp "$dburl")" "$dburl" 2>&1)
-        if [ $? -ne 0 ]; then
-            error "Failed to download $dburl: $curl_out"
-            return 1
-        fi
-    }
-    decompressDb()
-    {
-        fn=$(dbFnameTmp "$1")
-        ret=0
-        case "$fn" in
-            *.gz)
-                cmd_out=$("${pkgs.gzip}/bin/gzip" --decompress --force "$fn" 2>&1)
-                ;;
-            *.xz)
-                cmd_out=$("${pkgs.xz.bin}/bin/xz" --decompress --force "$fn" 2>&1)
-                ;;
-            *)
-                cmd_out=$(echo "File \"$fn\" is neither a .gz nor .xz file")
-                false
-                ;;
-        esac
-        if [ $? -ne 0 ]; then
-            error "$cmd_out"
-            ret=1
-        fi
-    }
-    atomicRename()
-    {
-        dburl=$1
-        mv "$(dbFnameTmpDecompressed "$dburl")" "$(dbFname "$dburl")"
-    }
-    removeIfNotInConfig()
-    {
-        # Arg 1 is the full path of an installed DB.
-        # If the corresponding database is not specified in the NixOS config we
-        # remove it.
-        db=$1
-        for cdb in ${lib.concatStringsSep " " cfg.databases}; do
-            confDb=$(echo "$cdb" | sed 's/\.\(gz\|xz\)$//')
-            if [ "$(basename "$db")" = "$(basename "$confDb")" ]; then
-                return 0
-            fi
-        done
-        rm "$db"
-        if [ $? -eq 0 ]; then
-            debug "Removed $(basename "$db") (not listed in services.geoip-updater.databases)"
-        else
-            error "Failed to remove $db"
-        fi
-    }
-    removeUnspecifiedDbs()
-    {
-        for f in "${cfg.databaseDir}/"*; do
-            test -f "$f" || continue
-            case "$f" in
-                *.dat|*.mmdb|*.csv)
-                    removeIfNotInConfig "$f"
-                    ;;
-                *)
-                    debug "Not removing \"$f\" (unknown file extension)"
-                    ;;
-            esac
-        done
-    }
-    downloadAndInstall()
-    {
-        dburl=$1
-        if [ "$skipExisting" -eq 1 -a -f "$(dbFname "$dburl")" ]; then
-            debug "Skipping existing file: $(dbFname "$dburl")"
-            return 0
-        fi
-        downloadDb "$dburl" || return 1
-        decompressDb "$dburl" || return 1
-        atomicRename "$dburl" || return 1
-        info "Updated $(basename "$(dbFname "$dburl")")"
-    }
-    for arg in "$@"; do
-        case "$arg" in
-            --skip-existing)
-                skipExisting=1
-                info "Option --skip-existing is set: not updating existing databases"
-                ;;
-            *)
-                error "Unknown argument: $arg";;
-        esac
-    done
-    waitNetworkOnline || die "Network is down (${dbBaseUrl} is unreachable)"
-    test -d "${cfg.databaseDir}" || die "Database directory (${cfg.databaseDir}) doesn't exist"
-    debug "Starting update of GeoIP databases in ${cfg.databaseDir}"
-    all_ret=0
-    for db in ${lib.concatStringsSep " \\\n        " cfg.databases}; do
-        downloadAndInstall "${dbBaseUrl}/$db" || all_ret=1
-    done
-    removeUnspecifiedDbs || all_ret=1
-    if [ $all_ret -eq 0 ]; then
-        info "Completed GeoIP database update in ${cfg.databaseDir}"
-    else
-        error "Completed GeoIP database update in ${cfg.databaseDir}, with error(s)"
-    fi
-    # Hack to work around systemd journal race:
-    # https://github.com/systemd/systemd/issues/2913
-    sleep 2
-    exit $all_ret
-  '';
-
-in
-
-{
-  options = {
-    services.geoip-updater = {
-      enable = mkOption {
-        default = false;
-        type = types.bool;
-        description = ''
-          Whether to enable periodic downloading of GeoIP databases from
-          maxmind.com. You might want to enable this if you, for instance, use
-          ntopng or Wireshark.
-        '';
-      };
-
-      interval = mkOption {
-        type = types.str;
-        default = "weekly";
-        description = ''
-          Update the GeoIP databases at this time / interval.
-          The format is described in
-          <citerefentry><refentrytitle>systemd.time</refentrytitle>
-          <manvolnum>7</manvolnum></citerefentry>.
-          To prevent load spikes on maxmind.com, the timer interval is
-          randomized by an additional delay of ${randomizedTimerDelaySec}
-          seconds. Setting a shorter interval than this is not recommended.
-        '';
-      };
-
-      databaseDir = mkOption {
-        type = types.path;
-        default = "/var/lib/geoip-databases";
-        description = ''
-          Directory that will contain GeoIP databases.
-        '';
-      };
-
-      databases = mkOption {
-        type = types.listOf types.str;
-        default = [
-          "GeoLiteCountry/GeoIP.dat.gz"
-          "GeoIPv6.dat.gz"
-          "GeoLiteCity.dat.xz"
-          "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"
-          "asnum/GeoIPASNum.dat.gz"
-          "asnum/GeoIPASNumv6.dat.gz"
-          "GeoLite2-Country.mmdb.gz"
-          "GeoLite2-City.mmdb.gz"
-        ];
-        description = ''
-          Which GeoIP databases to update. The full URL is ${dbBaseUrl}/ +
-          <literal>the_database</literal>.
-        '';
-      };
-
-    };
-
-  };
-
-  config = mkIf cfg.enable {
-
-    assertions = [
-      { assertion = (builtins.filter
-          (x: builtins.match ".*\\.(gz|xz)$" x == null) cfg.databases) == [];
-        message = ''
-          services.geoip-updater.databases supports only .gz and .xz databases.
-
-          Current value:
-          ${toString cfg.databases}
-
-          Offending element(s):
-          ${toString (builtins.filter (x: builtins.match ".*\\.(gz|xz)$" x == null) cfg.databases)};
-        '';
-      }
-    ];
-
-    users.users.geoip = {
-      group = "root";
-      description = "GeoIP database updater";
-      uid = config.ids.uids.geoip;
-    };
-
-    systemd.timers.geoip-updater =
-      { description = "GeoIP Updater Timer";
-        partOf = [ "geoip-updater.service" ];
-        wantedBy = [ "timers.target" ];
-        timerConfig.OnCalendar = cfg.interval;
-        timerConfig.Persistent = "true";
-        timerConfig.RandomizedDelaySec = randomizedTimerDelaySec;
-      };
-
-    systemd.services.geoip-updater = {
-      description = "GeoIP Updater";
-      after = [ "network-online.target" "nss-lookup.target" ];
-      wants = [ "network-online.target" ];
-      preStart = ''
-        mkdir -p "${cfg.databaseDir}"
-        chmod 755 "${cfg.databaseDir}"
-        chown geoip:root "${cfg.databaseDir}"
-      '';
-      serviceConfig = {
-        ExecStart = "${geoip-updater}/bin/geoip-updater";
-        User = "geoip";
-        PermissionsStartOnly = true;
-      };
-    };
-
-    systemd.services.geoip-updater-setup = {
-      description = "GeoIP Updater Setup";
-      after = [ "network-online.target" "nss-lookup.target" ];
-      wants = [ "network-online.target" ];
-      wantedBy = [ "multi-user.target" ];
-      conflicts = [ "geoip-updater.service" ];
-      preStart = ''
-        mkdir -p "${cfg.databaseDir}"
-        chmod 755 "${cfg.databaseDir}"
-        chown geoip:root "${cfg.databaseDir}"
-      '';
-      serviceConfig = {
-        ExecStart = "${geoip-updater}/bin/geoip-updater --skip-existing";
-        User = "geoip";
-        PermissionsStartOnly = true;
-        # So it won't be (needlessly) restarted:
-        RemainAfterExit = true;
-      };
-    };
-
-  };
-}
diff --git a/nixpkgs/nixos/modules/services/misc/geoipupdate.nix b/nixpkgs/nixos/modules/services/misc/geoipupdate.nix
new file mode 100644
index 000000000000..5d87be928d98
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/geoipupdate.nix
@@ -0,0 +1,145 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.geoipupdate;
+in
+{
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "geoip-updater" ] "services.geoip-updater has been removed, use services.geoipupdate instead.")
+  ];
+
+  options = {
+    services.geoipupdate = {
+      enable = lib.mkEnableOption ''
+        periodic downloading of GeoIP databases using
+        <productname>geoipupdate</productname>.
+      '';
+
+      interval = lib.mkOption {
+        type = lib.types.str;
+        default = "weekly";
+        description = ''
+          Update the GeoIP databases at this time / interval.
+          The format is described in
+          <citerefentry><refentrytitle>systemd.time</refentrytitle>
+          <manvolnum>7</manvolnum></citerefentry>.
+        '';
+      };
+
+      settings = lib.mkOption {
+        description = ''
+          <productname>geoipupdate</productname> configuration
+          options. See
+          <link xlink:href="https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md" />
+          for a full list of available options.
+        '';
+        type = lib.types.submodule {
+          freeformType =
+            with lib.types;
+            let
+              type = oneOf [str int bool];
+            in
+              attrsOf (either type (listOf type));
+
+          options = {
+
+            AccountID = lib.mkOption {
+              type = lib.types.int;
+              description = ''
+                Your MaxMind account ID.
+              '';
+            };
+
+            EditionIDs = lib.mkOption {
+              type = with lib.types; listOf (either str int);
+              example = [
+                "GeoLite2-ASN"
+                "GeoLite2-City"
+                "GeoLite2-Country"
+              ];
+              description = ''
+                List of database edition IDs. This includes new string
+                IDs like <literal>GeoIP2-City</literal> and old
+                numeric IDs like <literal>106</literal>.
+              '';
+            };
+
+            LicenseKey = lib.mkOption {
+              type = lib.types.path;
+              description = ''
+                A file containing the <productname>MaxMind</productname>
+                license key.
+              '';
+            };
+
+            DatabaseDirectory = lib.mkOption {
+              type = lib.types.path;
+              default = "/var/lib/GeoIP";
+              example = "/run/GeoIP";
+              description = ''
+                The directory to store the database files in. The
+                directory will be automatically created, the owner
+                changed to <literal>geoip</literal> and permissions
+                set to world readable. This applies if the directory
+                already exists as well, so don't use a directory with
+                sensitive contents.
+              '';
+            };
+
+          };
+        };
+      };
+    };
+
+  };
+
+  config = lib.mkIf cfg.enable {
+
+    services.geoipupdate.settings = {
+      LockFile = "/run/geoipupdate/.lock";
+    };
+
+    systemd.services.geoipupdate = {
+      description = "GeoIP Updater";
+      after = [ "network-online.target" "nss-lookup.target" ];
+      wants = [ "network-online.target" ];
+      startAt = cfg.interval;
+      serviceConfig = {
+        ExecStartPre =
+          let
+            geoipupdateKeyValue = lib.generators.toKeyValue {
+              mkKeyValue = lib.flip lib.generators.mkKeyValueDefault " " rec {
+                mkValueString = v: with builtins;
+                  if isInt           v then toString v
+                  else if isString   v then v
+                  else if true  ==   v then "1"
+                  else if false ==   v then "0"
+                  else if isList     v then lib.concatMapStringsSep " " mkValueString v
+                  else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
+              };
+            };
+
+            geoipupdateConf = pkgs.writeText "discourse.conf" (geoipupdateKeyValue cfg.settings);
+
+            script = ''
+              mkdir -p "${cfg.settings.DatabaseDirectory}"
+              chmod 755 "${cfg.settings.DatabaseDirectory}"
+              chown geoip "${cfg.settings.DatabaseDirectory}"
+
+              cp ${geoipupdateConf} /run/geoipupdate/GeoIP.conf
+              ${pkgs.replace-secret}/bin/replace-secret '${cfg.settings.LicenseKey}' \
+                                                        '${cfg.settings.LicenseKey}' \
+                                                        /run/geoipupdate/GeoIP.conf
+            '';
+          in
+            "+${pkgs.writeShellScript "start-pre-full-privileges" script}";
+        ExecStart = "${pkgs.geoipupdate}/bin/geoipupdate -f /run/geoipupdate/GeoIP.conf";
+        User = "geoip";
+        DynamicUser = true;
+        ReadWritePaths = cfg.settings.DatabaseDirectory;
+        RuntimeDirectory = "geoipupdate";
+        RuntimeDirectoryMode = 0700;
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/gitea.nix b/nixpkgs/nixos/modules/services/misc/gitea.nix
index 434e2d2429b5..95369ff7ee48 100644
--- a/nixpkgs/nixos/modules/services/misc/gitea.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitea.nix
@@ -477,47 +477,49 @@ in
       in ''
         # copy custom configuration and generate a random secret key if needed
         ${optionalString (cfg.useWizard == false) ''
-          cp -f ${configFile} ${runConfig}
-
-          if [ ! -e ${secretKey} ]; then
-              ${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey}
-          fi
-
-          # Migrate LFS_JWT_SECRET filename
-          if [[ -e ${oldLfsJwtSecret} && ! -e ${lfsJwtSecret} ]]; then
-              mv ${oldLfsJwtSecret} ${lfsJwtSecret}
-          fi
-
-          if [ ! -e ${oauth2JwtSecret} ]; then
-              ${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret}
-          fi
-
-          if [ ! -e ${lfsJwtSecret} ]; then
-              ${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret}
-          fi
-
-          if [ ! -e ${internalToken} ]; then
-              ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken}
-          fi
-
-          SECRETKEY="$(head -n1 ${secretKey})"
-          DBPASS="$(head -n1 ${cfg.database.passwordFile})"
-          OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})"
-          LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})"
-          INTERNALTOKEN="$(head -n1 ${internalToken})"
-          ${if (cfg.mailerPasswordFile == null) then ''
-            MAILERPASSWORD="#mailerpass#"
-          '' else ''
-            MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)"
-          ''}
-          sed -e "s,#secretkey#,$SECRETKEY,g" \
-              -e "s,#dbpass#,$DBPASS,g" \
-              -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \
-              -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \
-              -e "s,#internaltoken#,$INTERNALTOKEN,g" \
-              -e "s,#mailerpass#,$MAILERPASSWORD,g" \
-              -i ${runConfig}
-          chmod 640 ${runConfig} ${secretKey} ${oauth2JwtSecret} ${lfsJwtSecret} ${internalToken}
+          function gitea_setup {
+            cp -f ${configFile} ${runConfig}
+
+            if [ ! -e ${secretKey} ]; then
+                ${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey}
+            fi
+
+            # Migrate LFS_JWT_SECRET filename
+            if [[ -e ${oldLfsJwtSecret} && ! -e ${lfsJwtSecret} ]]; then
+                mv ${oldLfsJwtSecret} ${lfsJwtSecret}
+            fi
+
+            if [ ! -e ${oauth2JwtSecret} ]; then
+                ${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret}
+            fi
+
+            if [ ! -e ${lfsJwtSecret} ]; then
+                ${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret}
+            fi
+
+            if [ ! -e ${internalToken} ]; then
+                ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken}
+            fi
+
+            SECRETKEY="$(head -n1 ${secretKey})"
+            DBPASS="$(head -n1 ${cfg.database.passwordFile})"
+            OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})"
+            LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})"
+            INTERNALTOKEN="$(head -n1 ${internalToken})"
+            ${if (cfg.mailerPasswordFile == null) then ''
+              MAILERPASSWORD="#mailerpass#"
+            '' else ''
+              MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)"
+            ''}
+            sed -e "s,#secretkey#,$SECRETKEY,g" \
+                -e "s,#dbpass#,$DBPASS,g" \
+                -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \
+                -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \
+                -e "s,#internaltoken#,$INTERNALTOKEN,g" \
+                -e "s,#mailerpass#,$MAILERPASSWORD,g" \
+                -i ${runConfig}
+          }
+          (umask 027; gitea_setup)
         ''}
 
         # update all hooks' binary paths
diff --git a/nixpkgs/nixos/modules/services/misc/gitlab.nix b/nixpkgs/nixos/modules/services/misc/gitlab.nix
index f86653f3ead2..b4fc4bf4b2cc 100644
--- a/nixpkgs/nixos/modules/services/misc/gitlab.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitlab.nix
@@ -145,7 +145,7 @@ let
     };
   };
 
-  gitlabEnv = {
+  gitlabEnv = cfg.packages.gitlab.gitlabEnv // {
     HOME = "${cfg.statePath}/home";
     PUMA_PATH = "${cfg.statePath}/";
     GITLAB_PATH = "${cfg.packages.gitlab}/share/gitlab/";
@@ -155,6 +155,7 @@ let
     GITLAB_REDIS_CONFIG_FILE = pkgs.writeText "redis.yml" (builtins.toJSON redisConfig);
     prometheus_multiproc_dir = "/run/gitlab";
     RAILS_ENV = "production";
+    MALLOC_ARENA_MAX = "2";
   };
 
   gitlab-rake = pkgs.stdenv.mkDerivation {
@@ -588,7 +589,7 @@ in {
           the DB. If you change or lose this key you will be unable to
           access variables stored in database.
 
-          Make sure the secret is at least 30 characters and all random,
+          Make sure the secret is at least 32 characters and all random,
           no regular words or you'll be exposed to dictionary attacks.
 
           This should be a string, not a nix path, since nix paths are
@@ -604,7 +605,7 @@ in {
           the DB. If you change or lose this key you will be unable to
           access variables stored in database.
 
-          Make sure the secret is at least 30 characters and all random,
+          Make sure the secret is at least 32 characters and all random,
           no regular words or you'll be exposed to dictionary attacks.
 
           This should be a string, not a nix path, since nix paths are
@@ -620,7 +621,7 @@ in {
           tokens. If you change or lose this key, users which have 2FA
           enabled for login won't be able to login anymore.
 
-          Make sure the secret is at least 30 characters and all random,
+          Make sure the secret is at least 32 characters and all random,
           no regular words or you'll be exposed to dictionary attacks.
 
           This should be a string, not a nix path, since nix paths are
@@ -652,6 +653,105 @@ in {
         description = "Extra configuration to merge into shell-config.yml";
       };
 
+      puma.workers = mkOption {
+        type = types.int;
+        default = 2;
+        apply = x: builtins.toString x;
+        description = ''
+          The number of worker processes Puma should spawn. This
+          controls the amount of parallel Ruby code can be
+          executed. GitLab recommends <quote>Number of CPU cores -
+          1</quote>, but at least two.
+
+          <note>
+            <para>
+              Each worker consumes quite a bit of memory, so
+              be careful when increasing this.
+            </para>
+          </note>
+        '';
+      };
+
+      puma.threadsMin = mkOption {
+        type = types.int;
+        default = 0;
+        apply = x: builtins.toString x;
+        description = ''
+          The minimum number of threads Puma should use per
+          worker.
+
+          <note>
+            <para>
+              Each thread consumes memory and contributes to Global VM
+              Lock contention, so be careful when increasing this.
+            </para>
+          </note>
+        '';
+      };
+
+      puma.threadsMax = mkOption {
+        type = types.int;
+        default = 4;
+        apply = x: builtins.toString x;
+        description = ''
+          The maximum number of threads Puma should use per
+          worker. This limits how many threads Puma will automatically
+          spawn in response to requests. In contrast to workers,
+          threads will never be able to run Ruby code in parallel, but
+          give higher IO parallelism.
+
+          <note>
+            <para>
+              Each thread consumes memory and contributes to Global VM
+              Lock contention, so be careful when increasing this.
+            </para>
+          </note>
+        '';
+      };
+
+      sidekiq.memoryKiller.enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether the Sidekiq MemoryKiller should be turned
+          on. MemoryKiller kills Sidekiq when its memory consumption
+          exceeds a certain limit.
+
+          See <link xlink:href="https://docs.gitlab.com/ee/administration/operations/sidekiq_memory_killer.html"/>
+          for details.
+        '';
+      };
+
+      sidekiq.memoryKiller.maxMemory = mkOption {
+        type = types.int;
+        default = 2000;
+        apply = x: builtins.toString (x * 1024);
+        description = ''
+          The maximum amount of memory, in MiB, a Sidekiq worker is
+          allowed to consume before being killed.
+        '';
+      };
+
+      sidekiq.memoryKiller.graceTime = mkOption {
+        type = types.int;
+        default = 900;
+        apply = x: builtins.toString x;
+        description = ''
+          The time MemoryKiller waits after noticing excessive memory
+          consumption before killing Sidekiq.
+        '';
+      };
+
+      sidekiq.memoryKiller.shutdownWait = mkOption {
+        type = types.int;
+        default = 30;
+        apply = x: builtins.toString x;
+        description = ''
+          The time allowed for all jobs to finish before Sidekiq is
+          killed forcefully.
+        '';
+      };
+
       extraConfig = mkOption {
         type = types.attrs;
         default = {};
@@ -852,7 +952,7 @@ in {
       path = with pkgs; [
         jq
         openssl
-        replace
+        replace-secret
         git
       ];
       serviceConfig = {
@@ -894,8 +994,7 @@ in {
           ${optionalString cfg.smtp.enable ''
               install -m u=rw ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
               ${optionalString (cfg.smtp.passwordFile != null) ''
-                  smtp_password=$(<'${cfg.smtp.passwordFile}')
-                  replace-literal -e '@smtpPassword@' "$smtp_password" '${cfg.statePath}/config/initializers/smtp_settings.rb'
+                  replace-secret '@smtpPassword@' '${cfg.smtp.passwordFile}' '${cfg.statePath}/config/initializers/smtp_settings.rb'
               ''}
           ''}
 
@@ -993,7 +1092,11 @@ in {
       ] ++ optional (cfg.databaseHost == "") "postgresql.service";
       wantedBy = [ "gitlab.target" ];
       partOf = [ "gitlab.target" ];
-      environment = gitlabEnv;
+      environment = gitlabEnv // (optionalAttrs cfg.sidekiq.memoryKiller.enable {
+        SIDEKIQ_MEMORY_KILLER_MAX_RSS = cfg.sidekiq.memoryKiller.maxMemory;
+        SIDEKIQ_MEMORY_KILLER_GRACE_TIME = cfg.sidekiq.memoryKiller.graceTime;
+        SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT = cfg.sidekiq.memoryKiller.shutdownWait;
+      });
       path = with pkgs; [
         postgresqlPackage
         git
@@ -1005,13 +1108,15 @@ in {
         # Needed for GitLab project imports
         gnutar
         gzip
+
+        procps # Sidekiq MemoryKiller
       ];
       serviceConfig = {
         Type = "simple";
         User = cfg.user;
         Group = cfg.group;
         TimeoutSec = "infinity";
-        Restart = "on-failure";
+        Restart = "always";
         WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
         ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production";
       };
@@ -1145,7 +1250,13 @@ in {
         TimeoutSec = "infinity";
         Restart = "on-failure";
         WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
-        ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/puma -C ${cfg.statePath}/config/puma.rb -e production";
+        ExecStart = concatStringsSep " " [
+          "${cfg.packages.gitlab.rubyEnv}/bin/puma"
+          "-e production"
+          "-C ${cfg.statePath}/config/puma.rb"
+          "-w ${cfg.puma.workers}"
+          "-t ${cfg.puma.threadsMin}:${cfg.puma.threadsMax}"
+        ];
       };
 
     };
diff --git a/nixpkgs/nixos/modules/services/misc/gitweb.nix b/nixpkgs/nixos/modules/services/misc/gitweb.nix
index ca21366b7796..13396bf2eb02 100644
--- a/nixpkgs/nixos/modules/services/misc/gitweb.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitweb.nix
@@ -54,6 +54,6 @@ in
 
   };
 
-  meta.maintainers = with maintainers; [ gnidorah ];
+  meta.maintainers = with maintainers; [ ];
 
 }
diff --git a/nixpkgs/nixos/modules/services/misc/home-assistant.nix b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
index 0590f54ae60e..1e33381de24c 100644
--- a/nixpkgs/nixos/modules/services/misc/home-assistant.nix
+++ b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
@@ -245,22 +245,86 @@ in {
         rm -f "${cfg.configDir}/ui-lovelace.yaml"
         ln -s ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
       '');
-      serviceConfig = {
-        ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
+      serviceConfig = let
+        # List of capabilities to equip home-assistant with, depending on configured components
+        capabilities = [
+          # Empty string first, so we will never accidentally have an empty capability bounding set
+          # https://github.com/NixOS/nixpkgs/issues/120617#issuecomment-830685115
+          ""
+        ] ++ (unique (optionals (useComponent "bluetooth_tracker" || useComponent "bluetooth_le_tracker") [
+          # Required for interaction with hci devices and bluetooth sockets
+          # https://www.home-assistant.io/integrations/bluetooth_le_tracker/#rootless-setup-on-core-installs
+          "CAP_NET_ADMIN"
+          "CAP_NET_RAW"
+        ] ++ lib.optionals (useComponent "emulated_hue") [
+          # Alexa looks for the service on port 80
+          # https://www.home-assistant.io/integrations/emulated_hue
+          "CAP_NET_BIND_SERVICE"
+        ] ++ lib.optionals (useComponent "nmap_tracker") [
+          # https://www.home-assistant.io/integrations/nmap_tracker#linux-capabilities
+          "CAP_NET_ADMIN"
+          "CAP_NET_BIND_SERVICE"
+          "CAP_NET_RAW"
+        ]));
+      in {
+        ExecStart = "${package}/bin/hass --runner --config '${cfg.configDir}'";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         User = "hass";
         Group = "hass";
         Restart = "on-failure";
+        RestartForceExitStatus = "100";
+        SuccessExitStatus = "100";
+        KillSignal = "SIGINT";
+
+        # Hardening
+        AmbientCapabilities = capabilities;
+        CapabilityBoundingSet = capabilities;
+        DeviceAllow = [
+          "char-ttyACM rw"
+          "char-ttyAMA rw"
+          "char-ttyUSB rw"
+        ];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateTmp = true;
+        PrivateUsers = false; # prevents gaining capabilities in the host namespace
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProcSubset = "all";
         ProtectSystem = "strict";
+        RemoveIPC = true;
         ReadWritePaths = let
+          # Allow rw access to explicitly configured paths
           cfgPath = [ "config" "homeassistant" "allowlist_external_dirs" ];
           value = attrByPath cfgPath [] cfg;
           allowPaths = if isList value then value else singleton value;
         in [ "${cfg.configDir}" ] ++ allowPaths;
-        KillSignal = "SIGINT";
-        PrivateTmp = true;
-        RemoveIPC = true;
-        AmbientCapabilities = "cap_net_raw,cap_net_admin+eip";
+        RestrictAddressFamilies = [
+          "AF_INET"
+          "AF_INET6"
+          "AF_NETLINK"
+          "AF_UNIX"
+        ] ++ optionals (useComponent "bluetooth_tracker" || useComponent "bluetooth_le_tracker") [
+          "AF_BLUETOOTH"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SupplementaryGroups = [ "dialout" ];
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged"
+        ];
+        UMask = "0077";
       };
       path = [
         "/run/wrappers" # needed for ping
@@ -278,7 +342,6 @@ in {
       home = cfg.configDir;
       createHome = true;
       group = "hass";
-      extraGroups = [ "dialout" ];
       uid = config.ids.uids.hass;
     };
 
diff --git a/nixpkgs/nixos/modules/services/misc/jellyfin.nix b/nixpkgs/nixos/modules/services/misc/jellyfin.nix
index c1b45864041b..6d64acc02910 100644
--- a/nixpkgs/nixos/modules/services/misc/jellyfin.nix
+++ b/nixpkgs/nixos/modules/services/misc/jellyfin.nix
@@ -92,9 +92,7 @@ in
         SystemCallErrorNumber = "EPERM";
         SystemCallFilter = [
           "@system-service"
-
-          "~@chown" "~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@module"
-          "~@obsolete" "~@privileged" "~@setuid"
+          "~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@obsolete" "~@privileged" "~@setuid"
         ];
       };
     };
diff --git a/nixpkgs/nixos/modules/services/misc/mame.nix b/nixpkgs/nixos/modules/services/misc/mame.nix
index 34a471ea4fe0..4b9a04be7c29 100644
--- a/nixpkgs/nixos/modules/services/misc/mame.nix
+++ b/nixpkgs/nixos/modules/services/misc/mame.nix
@@ -63,5 +63,5 @@ in
     };
   };
 
-  meta.maintainers = with lib.maintainers; [ gnidorah ];
+  meta.maintainers = with lib.maintainers; [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix b/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
index 8e3fa60206c2..dff587453042 100644
--- a/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
@@ -86,7 +86,9 @@ account_threepid_delegates:
   ${optionalString (cfg.account_threepid_delegates.email != null) "email: ${cfg.account_threepid_delegates.email}"}
   ${optionalString (cfg.account_threepid_delegates.msisdn != null) "msisdn: ${cfg.account_threepid_delegates.msisdn}"}
 
-room_invite_state_types: ${builtins.toJSON cfg.room_invite_state_types}
+room_prejoin_state:
+  disable_default_event_types: ${boolToString cfg.room_prejoin_state.disable_default_event_types}
+  additional_event_types: ${builtins.toJSON cfg.room_prejoin_state.additional_event_types}
 ${optionalString (cfg.macaroon_secret_key != null) ''
   macaroon_secret_key: "${cfg.macaroon_secret_key}"
 ''}
@@ -577,11 +579,28 @@ in {
           Delegate SMS sending to this local process (https://localhost:8090)
         '';
       };
-      room_invite_state_types = mkOption {
+      room_prejoin_state.additional_event_types = mkOption {
+        default = [];
         type = types.listOf types.str;
-        default = ["m.room.join_rules" "m.room.canonical_alias" "m.room.avatar" "m.room.name"];
         description = ''
-          A list of event types that will be included in the room_invite_state
+          Additional events to share with users who received an invite.
+        '';
+      };
+      room_prejoin_state.disable_default_event_types = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Whether to disable the default state-event types for users invited to a room.
+          These are:
+
+          <itemizedlist>
+          <listitem><para>m.room.join_rules</para></listitem>
+          <listitem><para>m.room.canonical_alias</para></listitem>
+          <listitem><para>m.room.avatar</para></listitem>
+          <listitem><para>m.room.encryption</para></listitem>
+          <listitem><para>m.room.name</para></listitem>
+          <listitem><para>m.room.create</para></listitem>
+          </itemizedlist>
         '';
       };
       macaroon_secret_key = mkOption {
@@ -680,12 +699,12 @@ in {
     ];
 
     users.users.matrix-synapse = {
-        group = "matrix-synapse";
-        home = cfg.dataDir;
-        createHome = true;
-        shell = "${pkgs.bash}/bin/bash";
-        uid = config.ids.uids.matrix-synapse;
-      };
+      group = "matrix-synapse";
+      home = cfg.dataDir;
+      createHome = true;
+      shell = "${pkgs.bash}/bin/bash";
+      uid = config.ids.uids.matrix-synapse;
+    };
 
     users.groups.matrix-synapse = {
       gid = config.ids.gids.matrix-synapse;
@@ -707,6 +726,10 @@ in {
         User = "matrix-synapse";
         Group = "matrix-synapse";
         WorkingDirectory = cfg.dataDir;
+        ExecStartPre = [ ("+" + (pkgs.writeShellScript "matrix-synapse-fix-permissions" ''
+          chown matrix-synapse:matrix-synapse ${cfg.dataDir}/homeserver.signing.key
+          chmod 0600 ${cfg.dataDir}/homeserver.signing.key
+        '')) ];
         ExecStart = ''
           ${cfg.package}/bin/homeserver \
             ${ concatMapStringsSep "\n  " (x: "--config-path ${x} \\") ([ configFile ] ++ cfg.extraConfigFiles) }
@@ -714,6 +737,7 @@ in {
         '';
         ExecReload = "${pkgs.util-linux}/bin/kill -HUP $MAINPID";
         Restart = "on-failure";
+        UMask = "0077";
       };
     };
   };
@@ -728,6 +752,12 @@ in {
       <nixpkgs/nixos/tests/matrix-synapse.nix>
     '')
     (mkRemovedOptionModule [ "services" "matrix-synapse" "web_client" ] "")
+    (mkRemovedOptionModule [ "services" "matrix-synapse" "room_invite_state_types" ] ''
+      You may add additional event types via
+      `services.matrix-synapse.room_prejoin_state.additional_event_types` and
+      disable the default events via
+      `services.matrix-synapse.room_prejoin_state.disable_default_event_types`.
+    '')
   ];
 
   meta.doc = ./matrix-synapse.xml;
diff --git a/nixpkgs/nixos/modules/services/misc/ombi.nix b/nixpkgs/nixos/modules/services/misc/ombi.nix
index 83f433e0be4a..b5882168e519 100644
--- a/nixpkgs/nixos/modules/services/misc/ombi.nix
+++ b/nixpkgs/nixos/modules/services/misc/ombi.nix
@@ -70,6 +70,7 @@ in {
 
     users.users = mkIf (cfg.user == "ombi") {
       ombi = {
+        isSystemUser = true;
         group = cfg.group;
         home = cfg.dataDir;
       };
diff --git a/nixpkgs/nixos/modules/services/misc/pinnwand.nix b/nixpkgs/nixos/modules/services/misc/pinnwand.nix
index aa1ee5cfaa77..cbc796c9a7c8 100644
--- a/nixpkgs/nixos/modules/services/misc/pinnwand.nix
+++ b/nixpkgs/nixos/modules/services/misc/pinnwand.nix
@@ -24,55 +24,80 @@ in
         Your <filename>pinnwand.toml</filename> as a Nix attribute set. Look up
         possible options in the <link xlink:href="https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example">pinnwand.toml-example</link>.
       '';
-      default = {
-        # https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example
-        database_uri = "sqlite:///var/lib/pinnwand/pinnwand.db";
-        preferred_lexeres = [];
-        paste_size = 262144;
-        paste_help = ''
-          <p>Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.</p><p>People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.</p>
-        '';
-        footer = ''
-          View <a href="//github.com/supakeen/pinnwand" target="_BLANK">source code</a>, the <a href="/removal">removal</a> or <a href="/expiry">expiry</a> stories, or read the <a href="/about">about</a> page.
-        '';
-      };
+      default = {};
     };
   };
 
   config = mkIf cfg.enable {
-    systemd.services.pinnwand = {
-      description = "Pinnwannd HTTP Server";
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
+    services.pinnwand.settings = {
+      database_uri = mkDefault "sqlite:////var/lib/pinnwand/pinnwand.db";
+      paste_size = mkDefault 262144;
+      paste_help = mkDefault ''
+        <p>Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.</p><p>People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.</p>
+      '';
+      footer = mkDefault ''
+        View <a href="//github.com/supakeen/pinnwand" target="_BLANK">source code</a>, the <a href="/removal">removal</a> or <a href="/expiry">expiry</a> stories, or read the <a href="/about">about</a> page.
+      '';
+    };
+
+    systemd.services = let
+      hardeningOptions = {
+        User = "pinnwand";
+        DynamicUser = true;
 
-      unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/";
-      serviceConfig = {
-        ExecStart = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile} http --port ${toString(cfg.port)}";
         StateDirectory = "pinnwand";
         StateDirectoryMode = "0700";
 
         AmbientCapabilities = [];
         CapabilityBoundingSet = "";
         DevicePolicy = "closed";
-        DynamicUser = true;
         LockPersonality = true;
         MemoryDenyWriteExecute = true;
         PrivateDevices = true;
         PrivateUsers = true;
+        ProcSubset = "pid";
         ProtectClock = true;
         ProtectControlGroups = true;
-        ProtectKernelLogs = true;
         ProtectHome = true;
         ProtectHostname = true;
+        ProtectKernelLogs = true;
         ProtectKernelModules = true;
         ProtectKernelTunables = true;
-        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        ProtectProc = "invisible";
+        RestrictAddressFamilies = [
+          "AF_UNIX"
+          "AF_INET"
+          "AF_INET6"
+        ];
         RestrictNamespaces = true;
         RestrictRealtime = true;
         SystemCallArchitectures = "native";
         SystemCallFilter = "@system-service";
         UMask = "0077";
       };
+
+      command = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile}";
+    in {
+      pinnwand = {
+        description = "Pinnwannd HTTP Server";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+
+        unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/";
+
+        serviceConfig = {
+          ExecStart = "${command} http --port ${toString(cfg.port)}";
+        } // hardeningOptions;
+      };
+
+      pinnwand-reaper = {
+        description = "Pinnwand Reaper";
+        startAt = "daily";
+
+        serviceConfig = {
+          ExecStart = "${command} -vvvv reap";  # verbosity increased to show number of deleted pastes
+        } // hardeningOptions;
+      };
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/misc/sdrplay.nix b/nixpkgs/nixos/modules/services/misc/sdrplay.nix
new file mode 100644
index 000000000000..2801108f0828
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sdrplay.nix
@@ -0,0 +1,35 @@
+{ config, lib, pkgs, ... }:
+with lib;
+{
+  options.services.sdrplayApi = {
+    enable = mkOption {
+      default = false;
+      example = true;
+      description = ''
+        Whether to enable the SDRplay API service and udev rules.
+
+        <note><para>
+          To enable integration with SoapySDR and GUI applications like gqrx create an overlay containing
+          <literal>soapysdr-with-plugins = super.soapysdr.override { extraPackages = [ super.soapysdrplay ]; };</literal>
+        </para></note>
+      '';
+      type = lib.types.bool;
+    };
+  };
+
+  config = mkIf config.services.sdrplayApi.enable {
+    systemd.services.sdrplayApi = {
+      description = "SDRplay API Service";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.sdrplay}/bin/sdrplay_apiService";
+        DynamicUser = true;
+        Restart = "on-failure";
+        RestartSec = "1s";
+      };
+    };
+    services.udev.packages = [ pkgs.sdrplay ];
+
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/builds.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/builds.nix
new file mode 100644
index 000000000000..e228665784e0
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/builds.nix
@@ -0,0 +1,220 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  scfg = cfg.builds;
+  rcfg = config.services.redis;
+  iniKey = "builds.sr.ht";
+
+  drv = pkgs.sourcehut.buildsrht;
+in
+{
+  options.services.sourcehut.builds = {
+    user = mkOption {
+      type = types.str;
+      default = "buildsrht";
+      description = ''
+        User for builds.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5002;
+      description = ''
+        Port on which the "builds" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "builds.sr.ht";
+      description = ''
+        PostgreSQL database name for builds.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/buildsrht";
+      description = ''
+        State path for builds.sr.ht.
+      '';
+    };
+
+    enableWorker = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Run workers for builds.sr.ht.
+        Perform manually on machine: `cd ${scfg.statePath}/images; docker build -t qemu -f qemu/Dockerfile .`
+      '';
+    };
+
+    images = mkOption {
+      type = types.attrsOf (types.attrsOf (types.attrsOf types.package));
+      default = { };
+      example = lib.literalExample ''(let
+          # Pinning unstable to allow usage with flakes and limit rebuilds.
+          pkgs_unstable = builtins.fetchGit {
+              url = "https://github.com/NixOS/nixpkgs";
+              rev = "ff96a0fa5635770390b184ae74debea75c3fd534";
+              ref = "nixos-unstable";
+          };
+          image_from_nixpkgs = pkgs_unstable: (import ("${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") {
+            pkgs = (import pkgs_unstable {});
+          });
+        in
+        {
+          nixos.unstable.x86_64 = image_from_nixpkgs pkgs_unstable;
+        }
+      )'';
+      description = ''
+        Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2.
+      '';
+    };
+
+  };
+
+  config = with scfg; let
+    image_dirs = lib.lists.flatten (
+      lib.attrsets.mapAttrsToList
+        (distro: revs:
+          lib.attrsets.mapAttrsToList
+            (rev: archs:
+              lib.attrsets.mapAttrsToList
+                (arch: image:
+                  pkgs.runCommandNoCC "buildsrht-images" { } ''
+                    mkdir -p $out/${distro}/${rev}/${arch}
+                    ln -s ${image}/*.qcow2 $out/${distro}/${rev}/${arch}/root.img.qcow2
+                  '')
+                archs)
+            revs)
+        scfg.images);
+    image_dir_pre = pkgs.symlinkJoin {
+      name = "builds.sr.ht-worker-images-pre";
+      paths = image_dirs ++ [
+        "${pkgs.sourcehut.buildsrht}/lib/images"
+      ];
+    };
+    image_dir = pkgs.runCommandNoCC "builds.sr.ht-worker-images" { } ''
+      mkdir -p $out/images
+      cp -Lr ${image_dir_pre}/* $out/images
+    '';
+  in
+  lib.mkIf (cfg.enable && elem "builds" cfg.services) {
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          extraGroups = lib.optionals cfg.builds.enableWorker [ "docker" ];
+          description = "builds.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0755 ${user} ${user} -"
+      ] ++ (lib.optionals cfg.builds.enableWorker
+        [ "d ${statePath}/logs 0775 ${user} ${user} - -" ]
+      );
+
+      services = {
+        buildsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey
+          {
+            after = [ "postgresql.service" "network.target" ];
+            requires = [ "postgresql.service" ];
+            wantedBy = [ "multi-user.target" ];
+
+            description = "builds.sr.ht website service";
+
+            serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+
+            # Hack to bypass this hack: https://git.sr.ht/~sircmpwn/core.sr.ht/tree/master/item/srht-update-profiles#L6
+          } // { preStart = " "; };
+
+        buildsrht-worker = {
+          enable = scfg.enableWorker;
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+          partOf = [ "buildsrht.service" ];
+          description = "builds.sr.ht worker service";
+          path = [ pkgs.openssh pkgs.docker ];
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Group = "nginx";
+            Restart = "always";
+          };
+          serviceConfig.ExecStart = "${pkgs.sourcehut.buildsrht}/bin/builds.sr.ht-worker";
+        };
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL builds.sr.ht is being served at (protocol://domain)
+      "builds.sr.ht".origin = mkDefault "http://builds.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "builds.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "builds.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "builds.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "builds.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # builds.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "builds.sr.ht".oauth-client-id = mkDefault null;
+      "builds.sr.ht".oauth-client-secret = mkDefault null;
+      # The redis connection used for the celery worker
+      "builds.sr.ht".redis = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/3";
+      # The shell used for ssh
+      "builds.sr.ht".shell = mkDefault "runner-shell";
+      # Register the builds.sr.ht dispatcher
+      "git.sr.ht::dispatch".${builtins.unsafeDiscardStringContext "${pkgs.sourcehut.buildsrht}/bin/buildsrht-keys"} = mkDefault "${user}:${user}";
+
+      # Location for build logs, images, and control command
+    } // lib.attrsets.optionalAttrs scfg.enableWorker {
+      # Default worker stores logs that are accessible via this address:port
+      "builds.sr.ht::worker".name = mkDefault "127.0.0.1:5020";
+      "builds.sr.ht::worker".buildlogs = mkDefault "${scfg.statePath}/logs";
+      "builds.sr.ht::worker".images = mkDefault "${image_dir}/images";
+      "builds.sr.ht::worker".controlcmd = mkDefault "${image_dir}/images/control";
+      "builds.sr.ht::worker".timeout = mkDefault "3m";
+    };
+
+    services.nginx.virtualHosts."logs.${cfg.originBase}" =
+      if scfg.enableWorker then {
+        listen = with builtins; let address = split ":" cfg.settings."builds.sr.ht::worker".name;
+        in [{ addr = elemAt address 0; port = lib.toInt (elemAt address 2); }];
+        locations."/logs".root = "${scfg.statePath}";
+      } else { };
+
+    services.nginx.virtualHosts."builds.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.buildsrht}/${pkgs.sourcehut.python.sitePackages}/buildsrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
new file mode 100644
index 000000000000..9c812d6b043c
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
@@ -0,0 +1,198 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  settingsFormat = pkgs.formats.ini { };
+
+  # Specialized python containing all the modules
+  python = pkgs.sourcehut.python.withPackages (ps: with ps; [
+    gunicorn
+    # Sourcehut services
+    srht
+    buildsrht
+    dispatchsrht
+    gitsrht
+    hgsrht
+    hubsrht
+    listssrht
+    mansrht
+    metasrht
+    pastesrht
+    todosrht
+  ]);
+in
+{
+  imports =
+    [
+      ./git.nix
+      ./hg.nix
+      ./hub.nix
+      ./todo.nix
+      ./man.nix
+      ./meta.nix
+      ./paste.nix
+      ./builds.nix
+      ./lists.nix
+      ./dispatch.nix
+      (mkRemovedOptionModule [ "services" "sourcehut" "nginx" "enable" ] ''
+        The sourcehut module supports `nginx` as a local reverse-proxy by default and doesn't
+        support other reverse-proxies officially.
+
+        However it's possible to use an alternative reverse-proxy by
+
+          * disabling nginx
+          * adjusting the relevant settings for server addresses and ports directly
+
+        Further details about this can be found in the `Sourcehut`-section of the NixOS-manual.
+      '')
+    ];
+
+  options.services.sourcehut = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable sourcehut - git hosting, continuous integration, mailing list, ticket tracking,
+        task dispatching, wiki and account management services
+      '';
+    };
+
+    services = mkOption {
+      type = types.nonEmptyListOf (types.enum [ "builds" "dispatch" "git" "hub" "hg" "lists" "man" "meta" "paste" "todo" ]);
+      default = [ "man" "meta" "paste" ];
+      example = [ "builds" "dispatch" "git" "hub" "hg" "lists" "man" "meta" "paste" "todo" ];
+      description = ''
+        Services to enable on the sourcehut network.
+      '';
+    };
+
+    originBase = mkOption {
+      type = types.str;
+      default = with config.networking; hostName + lib.optionalString (domain != null) ".${domain}";
+      description = ''
+        Host name used by reverse-proxy and for default settings. Will host services at git."''${originBase}". For example: git.sr.ht
+      '';
+    };
+
+    address = mkOption {
+      type = types.str;
+      default = "127.0.0.1";
+      description = ''
+        Address to bind to.
+      '';
+    };
+
+    python = mkOption {
+      internal = true;
+      type = types.package;
+      default = python;
+      description = ''
+        The python package to use. It should contain references to the *srht modules and also
+        gunicorn.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "/var/lib/sourcehut";
+      description = ''
+        Root state path for the sourcehut network. If left as the default value
+        this directory will automatically be created before the sourcehut server
+        starts, otherwise the sysadmin is responsible for ensuring the
+        directory exists with appropriate ownership and permissions.
+      '';
+    };
+
+    settings = mkOption {
+      type = lib.types.submodule {
+        freeformType = settingsFormat.type;
+      };
+      default = { };
+      description = ''
+        The configuration for the sourcehut network.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions =
+      [
+        {
+          assertion = with cfgIni.webhooks; private-key != null && stringLength private-key == 44;
+          message = "The webhook's private key must be defined and of a 44 byte length.";
+        }
+
+        {
+          assertion = hasAttrByPath [ "meta.sr.ht" "origin" ] cfgIni && cfgIni."meta.sr.ht".origin != null;
+          message = "meta.sr.ht's origin must be defined.";
+        }
+      ];
+
+    virtualisation.docker.enable = true;
+    environment.etc."sr.ht/config.ini".source =
+      settingsFormat.generate "sourcehut-config.ini" (mapAttrsRecursive
+        (
+          path: v: if v == null then "" else v
+        )
+        cfg.settings);
+
+    environment.systemPackages = [ pkgs.sourcehut.coresrht ];
+
+    # PostgreSQL server
+    services.postgresql.enable = mkOverride 999 true;
+    # Mail server
+    services.postfix.enable = mkOverride 999 true;
+    # Cron daemon
+    services.cron.enable = mkOverride 999 true;
+    # Redis server
+    services.redis.enable = mkOverride 999 true;
+    services.redis.bind = mkOverride 999 "127.0.0.1";
+
+    services.sourcehut.settings = {
+      # The name of your network of sr.ht-based sites
+      "sr.ht".site-name = mkDefault "sourcehut";
+      # The top-level info page for your site
+      "sr.ht".site-info = mkDefault "https://sourcehut.org";
+      # {{ site-name }}, {{ site-blurb }}
+      "sr.ht".site-blurb = mkDefault "the hacker's forge";
+      # If this != production, we add a banner to each page
+      "sr.ht".environment = mkDefault "development";
+      # Contact information for the site owners
+      "sr.ht".owner-name = mkDefault "Drew DeVault";
+      "sr.ht".owner-email = mkDefault "sir@cmpwn.com";
+      # The source code for your fork of sr.ht
+      "sr.ht".source-url = mkDefault "https://git.sr.ht/~sircmpwn/srht";
+      # A secret key to encrypt session cookies with
+      "sr.ht".secret-key = mkDefault null;
+      "sr.ht".global-domain = mkDefault null;
+
+      # Outgoing SMTP settings
+      mail.smtp-host = mkDefault null;
+      mail.smtp-port = mkDefault null;
+      mail.smtp-user = mkDefault null;
+      mail.smtp-password = mkDefault null;
+      mail.smtp-from = mkDefault null;
+      # Application exceptions are emailed to this address
+      mail.error-to = mkDefault null;
+      mail.error-from = mkDefault null;
+      # Your PGP key information (DO NOT mix up pub and priv here)
+      # You must remove the password from your secret key, if present.
+      # You can do this with gpg --edit-key [key-id], then use the passwd
+      # command and do not enter a new password.
+      mail.pgp-privkey = mkDefault null;
+      mail.pgp-pubkey = mkDefault null;
+      mail.pgp-key-id = mkDefault null;
+
+      # base64-encoded Ed25519 key for signing webhook payloads. This should be
+      # consistent for all *.sr.ht sites, as we'll use this key to verify signatures
+      # from other sites in your network.
+      #
+      # Use the srht-webhook-keygen command to generate a key.
+      webhooks.private-key = mkDefault null;
+    };
+  };
+  meta.doc = ./sourcehut.xml;
+  meta.maintainers = with maintainers; [ tomberek ];
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/dispatch.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/dispatch.nix
new file mode 100644
index 000000000000..a9db17bebe8e
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/dispatch.nix
@@ -0,0 +1,125 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  scfg = cfg.dispatch;
+  iniKey = "dispatch.sr.ht";
+
+  drv = pkgs.sourcehut.dispatchsrht;
+in
+{
+  options.services.sourcehut.dispatch = {
+    user = mkOption {
+      type = types.str;
+      default = "dispatchsrht";
+      description = ''
+        User for dispatch.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5005;
+      description = ''
+        Port on which the "dispatch" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "dispatch.sr.ht";
+      description = ''
+        PostgreSQL database name for dispatch.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/dispatchsrht";
+      description = ''
+        State path for dispatch.sr.ht.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "dispatch" cfg.services) {
+
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          description = "dispatch.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0750 ${user} ${user} -"
+      ];
+
+      services.dispatchsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+        after = [ "postgresql.service" "network.target" ];
+        requires = [ "postgresql.service" ];
+        wantedBy = [ "multi-user.target" ];
+
+        description = "dispatch.sr.ht website service";
+
+        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL dispatch.sr.ht is being served at (protocol://domain)
+      "dispatch.sr.ht".origin = mkDefault "http://dispatch.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "dispatch.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "dispatch.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "dispatch.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "dispatch.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # dispatch.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "dispatch.sr.ht".oauth-client-id = mkDefault null;
+      "dispatch.sr.ht".oauth-client-secret = mkDefault null;
+
+      # Github Integration
+      "dispatch.sr.ht::github".oauth-client-id = mkDefault null;
+      "dispatch.sr.ht::github".oauth-client-secret = mkDefault null;
+
+      # Gitlab Integration
+      "dispatch.sr.ht::gitlab".enabled = mkDefault null;
+      "dispatch.sr.ht::gitlab".canonical-upstream = mkDefault "gitlab.com";
+      "dispatch.sr.ht::gitlab".repo-cache = mkDefault "./repo-cache";
+      # "dispatch.sr.ht::gitlab"."gitlab.com" = mkDefault "GitLab:application id:secret";
+    };
+
+    services.nginx.virtualHosts."dispatch.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.dispatchsrht}/${pkgs.sourcehut.python.sitePackages}/dispatchsrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/git.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/git.nix
new file mode 100644
index 000000000000..99b9aec06123
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/git.nix
@@ -0,0 +1,214 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  scfg = cfg.git;
+  iniKey = "git.sr.ht";
+
+  rcfg = config.services.redis;
+  drv = pkgs.sourcehut.gitsrht;
+in
+{
+  options.services.sourcehut.git = {
+    user = mkOption {
+      type = types.str;
+      visible = false;
+      internal = true;
+      readOnly = true;
+      default = "git";
+      description = ''
+        User for git.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5001;
+      description = ''
+        Port on which the "git" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "git.sr.ht";
+      description = ''
+        PostgreSQL database name for git.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/gitsrht";
+      description = ''
+        State path for git.sr.ht.
+      '';
+    };
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.git;
+      example = literalExample "pkgs.gitFull";
+      description = ''
+        Git package for git.sr.ht. This can help silence collisions.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "git" cfg.services) {
+    # sshd refuses to run with `Unsafe AuthorizedKeysCommand ... bad ownership or modes for directory /nix/store`
+    environment.etc."ssh/gitsrht-dispatch" = {
+      mode = "0755";
+      text = ''
+        #! ${pkgs.stdenv.shell}
+        ${cfg.python}/bin/gitsrht-dispatch "$@"
+      '';
+    };
+
+    # Needs this in the $PATH when sshing into the server
+    environment.systemPackages = [ cfg.git.package ];
+
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          # https://stackoverflow.com/questions/22314298/git-push-results-in-fatal-protocol-error-bad-line-length-character-this
+          # Probably could use gitsrht-shell if output is restricted to just parameters...
+          shell = pkgs.bash;
+          description = "git.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services = {
+      cron.systemCronJobs = [ "*/20 * * * * ${cfg.python}/bin/gitsrht-periodic" ];
+      fcgiwrap.enable = true;
+
+      openssh.authorizedKeysCommand = ''/etc/ssh/gitsrht-dispatch "%u" "%h" "%t" "%k"'';
+      openssh.authorizedKeysCommandUser = "root";
+      openssh.extraConfig = ''
+        PermitUserEnvironment SRHT_*
+      '';
+
+      postgresql = {
+        authentication = ''
+          local ${database} ${user} trust
+        '';
+        ensureDatabases = [ database ];
+        ensureUsers = [
+          {
+            name = user;
+            ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+          }
+        ];
+      };
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        # /var/log is owned by root
+        "f /var/log/git-srht-shell 0644 ${user} ${user} -"
+
+        "d ${statePath} 0750 ${user} ${user} -"
+        "d ${cfg.settings."${iniKey}".repos} 2755 ${user} ${user} -"
+      ];
+
+      services = {
+        gitsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+          after = [ "redis.service" "postgresql.service" "network.target" ];
+          requires = [ "redis.service" "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          # Needs internally to create repos at the very least
+          path = [ pkgs.git ];
+          description = "git.sr.ht website service";
+
+          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+        };
+
+        gitsrht-webhooks = {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "git.sr.ht webhooks service";
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Restart = "always";
+          };
+
+          serviceConfig.ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
+        };
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL git.sr.ht is being served at (protocol://domain)
+      "git.sr.ht".origin = mkDefault "http://git.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "git.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "git.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "git.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "git.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # The redis connection used for the webhooks worker
+      "git.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1";
+
+      # A post-update script which is installed in every git repo.
+      "git.sr.ht".post-update-script = mkDefault "${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
+
+      # git.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "git.sr.ht".oauth-client-id = mkDefault null;
+      "git.sr.ht".oauth-client-secret = mkDefault null;
+      # Path to git repositories on disk
+      "git.sr.ht".repos = mkDefault "/var/lib/git";
+
+      "git.sr.ht".outgoing-domain = mkDefault "http://git.${cfg.originBase}";
+
+      # The authorized keys hook uses this to dispatch to various handlers
+      # The format is a program to exec into as the key, and the user to match as the
+      # value. When someone tries to log in as this user, this program is executed
+      # and is expected to omit an AuthorizedKeys file.
+      #
+      # Discard of the string context is in order to allow derivation-derived strings.
+      # This is safe if the relevant package is installed which will be the case if the setting is utilized.
+      "git.sr.ht::dispatch".${builtins.unsafeDiscardStringContext "${pkgs.sourcehut.gitsrht}/bin/gitsrht-keys"} = mkDefault "${user}:${user}";
+    };
+
+    services.nginx.virtualHosts."git.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.gitsrht}/${pkgs.sourcehut.python.sitePackages}/gitsrht";
+      extraConfig = ''
+            location = /authorize {
+            proxy_pass http://${cfg.address}:${toString port};
+            proxy_pass_request_body off;
+            proxy_set_header Content-Length "";
+            proxy_set_header X-Original-URI $request_uri;
+        }
+            location ~ ^/([^/]+)/([^/]+)/(HEAD|info/refs|objects/info/.*|git-upload-pack).*$ {
+                auth_request /authorize;
+                root /var/lib/git;
+                fastcgi_pass unix:/run/fcgiwrap.sock;
+                fastcgi_param SCRIPT_FILENAME ${pkgs.git}/bin/git-http-backend;
+                fastcgi_param PATH_INFO $uri;
+                fastcgi_param GIT_PROJECT_ROOT $document_root;
+                fastcgi_read_timeout 500s;
+                include ${pkgs.nginx}/conf/fastcgi_params;
+                gzip off;
+            }
+      '';
+
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/hg.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/hg.nix
new file mode 100644
index 000000000000..5cd36bb04550
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/hg.nix
@@ -0,0 +1,173 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  scfg = cfg.hg;
+  iniKey = "hg.sr.ht";
+
+  rcfg = config.services.redis;
+  drv = pkgs.sourcehut.hgsrht;
+in
+{
+  options.services.sourcehut.hg = {
+    user = mkOption {
+      type = types.str;
+      internal = true;
+      readOnly = true;
+      default = "hg";
+      description = ''
+        User for hg.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5010;
+      description = ''
+        Port on which the "hg" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "hg.sr.ht";
+      description = ''
+        PostgreSQL database name for hg.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/hgsrht";
+      description = ''
+        State path for hg.sr.ht.
+      '';
+    };
+
+    cloneBundles = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories).
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "hg" cfg.services) {
+    # In case it ever comes into being
+    environment.etc."ssh/hgsrht-dispatch" = {
+      mode = "0755";
+      text = ''
+        #! ${pkgs.stdenv.shell}
+        ${cfg.python}/bin/gitsrht-dispatch $@
+      '';
+    };
+
+    environment.systemPackages = [ pkgs.mercurial ];
+
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          # Assuming hg.sr.ht needs this too
+          shell = pkgs.bash;
+          description = "hg.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services = {
+      cron.systemCronJobs = [ "*/20 * * * * ${cfg.python}/bin/hgsrht-periodic" ]
+        ++ optional cloneBundles "0 * * * * ${cfg.python}/bin/hgsrht-clonebundles";
+
+      openssh.authorizedKeysCommand = ''/etc/ssh/hgsrht-dispatch "%u" "%h" "%t" "%k"'';
+      openssh.authorizedKeysCommandUser = "root";
+      openssh.extraConfig = ''
+        PermitUserEnvironment SRHT_*
+      '';
+
+      postgresql = {
+        authentication = ''
+          local ${database} ${user} trust
+        '';
+        ensureDatabases = [ database ];
+        ensureUsers = [
+          {
+            name = user;
+            ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+          }
+        ];
+      };
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        # /var/log is owned by root
+        "f /var/log/hg-srht-shell 0644 ${user} ${user} -"
+
+        "d ${statePath} 0750 ${user} ${user} -"
+        "d ${cfg.settings."${iniKey}".repos} 2755 ${user} ${user} -"
+      ];
+
+      services.hgsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+        after = [ "redis.service" "postgresql.service" "network.target" ];
+        requires = [ "redis.service" "postgresql.service" ];
+        wantedBy = [ "multi-user.target" ];
+
+        path = [ pkgs.mercurial ];
+        description = "hg.sr.ht website service";
+
+        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL hg.sr.ht is being served at (protocol://domain)
+      "hg.sr.ht".origin = mkDefault "http://hg.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "hg.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "hg.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "hg.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # The redis connection used for the webhooks worker
+      "hg.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1";
+      # A post-update script which is installed in every mercurial repo.
+      "hg.sr.ht".changegroup-script = mkDefault "${cfg.python}/bin/hgsrht-hook-changegroup";
+      # hg.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "hg.sr.ht".oauth-client-id = mkDefault null;
+      "hg.sr.ht".oauth-client-secret = mkDefault null;
+      # Path to mercurial repositories on disk
+      "hg.sr.ht".repos = mkDefault "/var/lib/hg";
+      # Path to the srht mercurial extension
+      # (defaults to where the hgsrht code is)
+      # "hg.sr.ht".srhtext = mkDefault null;
+      # .hg/store size (in MB) past which the nightly job generates clone bundles.
+      # "hg.sr.ht".clone_bundle_threshold = mkDefault 50;
+      # Path to hg-ssh (if not in $PATH)
+      # "hg.sr.ht".hg_ssh = mkDefault /path/to/hg-ssh;
+
+      # The authorized keys hook uses this to dispatch to various handlers
+      # The format is a program to exec into as the key, and the user to match as the
+      # value. When someone tries to log in as this user, this program is executed
+      # and is expected to omit an AuthorizedKeys file.
+      #
+      # Uncomment the relevant lines to enable the various sr.ht dispatchers.
+      "hg.sr.ht::dispatch"."/run/current-system/sw/bin/hgsrht-keys" = mkDefault "${user}:${user}";
+    };
+
+    # TODO: requires testing and addition of hg-specific requirements
+    services.nginx.virtualHosts."hg.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.hgsrht}/${pkgs.sourcehut.python.sitePackages}/hgsrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/hub.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/hub.nix
new file mode 100644
index 000000000000..be3ea21011c7
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/hub.nix
@@ -0,0 +1,118 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  scfg = cfg.hub;
+  iniKey = "hub.sr.ht";
+
+  drv = pkgs.sourcehut.hubsrht;
+in
+{
+  options.services.sourcehut.hub = {
+    user = mkOption {
+      type = types.str;
+      default = "hubsrht";
+      description = ''
+        User for hub.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5014;
+      description = ''
+        Port on which the "hub" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "hub.sr.ht";
+      description = ''
+        PostgreSQL database name for hub.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/hubsrht";
+      description = ''
+        State path for hub.sr.ht.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "hub" cfg.services) {
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          description = "hub.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0750 ${user} ${user} -"
+      ];
+
+      services.hubsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+        after = [ "postgresql.service" "network.target" ];
+        requires = [ "postgresql.service" ];
+        wantedBy = [ "multi-user.target" ];
+
+        description = "hub.sr.ht website service";
+
+        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL hub.sr.ht is being served at (protocol://domain)
+      "hub.sr.ht".origin = mkDefault "http://hub.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "hub.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "hub.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "hub.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "hub.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # hub.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "hub.sr.ht".oauth-client-id = mkDefault null;
+      "hub.sr.ht".oauth-client-secret = mkDefault null;
+    };
+
+    services.nginx.virtualHosts."${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.hubsrht}/${pkgs.sourcehut.python.sitePackages}/hubsrht";
+    };
+    services.nginx.virtualHosts."hub.${cfg.originBase}" = {
+      globalRedirect = "${cfg.originBase}";
+      forceSSL = true;
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/lists.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/lists.nix
new file mode 100644
index 000000000000..7b1fe9fd4630
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/lists.nix
@@ -0,0 +1,185 @@
+# Email setup is fairly involved, useful references:
+# https://drewdevault.com/2018/08/05/Local-mail-server.html
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  scfg = cfg.lists;
+  iniKey = "lists.sr.ht";
+
+  rcfg = config.services.redis;
+  drv = pkgs.sourcehut.listssrht;
+in
+{
+  options.services.sourcehut.lists = {
+    user = mkOption {
+      type = types.str;
+      default = "listssrht";
+      description = ''
+        User for lists.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5006;
+      description = ''
+        Port on which the "lists" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "lists.sr.ht";
+      description = ''
+        PostgreSQL database name for lists.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/listssrht";
+      description = ''
+        State path for lists.sr.ht.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "lists" cfg.services) {
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          extraGroups = [ "postfix" ];
+          description = "lists.sr.ht user";
+        };
+      };
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0750 ${user} ${user} -"
+      ];
+
+      services = {
+        listssrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "lists.sr.ht website service";
+
+          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+        };
+
+        listssrht-process = {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "lists.sr.ht process service";
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Restart = "always";
+            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.process worker --loglevel=info";
+          };
+        };
+
+        listssrht-lmtp = {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "lists.sr.ht process service";
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Restart = "always";
+            ExecStart = "${cfg.python}/bin/listssrht-lmtp";
+          };
+        };
+
+
+        listssrht-webhooks = {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "lists.sr.ht webhooks service";
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Restart = "always";
+            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
+          };
+        };
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL lists.sr.ht is being served at (protocol://domain)
+      "lists.sr.ht".origin = mkDefault "http://lists.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "lists.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "lists.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "lists.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "lists.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # lists.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "lists.sr.ht".oauth-client-id = mkDefault null;
+      "lists.sr.ht".oauth-client-secret = mkDefault null;
+      # Outgoing email for notifications generated by users
+      "lists.sr.ht".notify-from = mkDefault "CHANGEME@example.org";
+      # The redis connection used for the webhooks worker
+      "lists.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/2";
+      # The redis connection used for the celery worker
+      "lists.sr.ht".redis = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/4";
+      # Network-key
+      "lists.sr.ht".network-key = mkDefault null;
+      # Allow creation
+      "lists.sr.ht".allow-new-lists = mkDefault "no";
+      # Posting Domain
+      "lists.sr.ht".posting-domain = mkDefault "lists.${cfg.originBase}";
+
+      # Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
+      # Alternatively, specify IP:PORT and an SMTP server will be run instead.
+      "lists.sr.ht::worker".sock = mkDefault "/tmp/lists.sr.ht-lmtp.sock";
+      # The lmtp daemon will make the unix socket group-read/write for users in this
+      # group.
+      "lists.sr.ht::worker".sock-group = mkDefault "postfix";
+      "lists.sr.ht::worker".reject-url = mkDefault "https://man.sr.ht/lists.sr.ht/etiquette.md";
+      "lists.sr.ht::worker".reject-mimetypes = mkDefault "text/html";
+
+    };
+
+    services.nginx.virtualHosts."lists.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.listssrht}/${pkgs.sourcehut.python.sitePackages}/listssrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/man.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/man.nix
new file mode 100644
index 000000000000..7693396d187c
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/man.nix
@@ -0,0 +1,122 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  scfg = cfg.man;
+  iniKey = "man.sr.ht";
+
+  drv = pkgs.sourcehut.mansrht;
+in
+{
+  options.services.sourcehut.man = {
+    user = mkOption {
+      type = types.str;
+      default = "mansrht";
+      description = ''
+        User for man.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5004;
+      description = ''
+        Port on which the "man" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "man.sr.ht";
+      description = ''
+        PostgreSQL database name for man.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/mansrht";
+      description = ''
+        State path for man.sr.ht.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "man" cfg.services) {
+    assertions =
+      [
+        {
+          assertion = hasAttrByPath [ "git.sr.ht" "oauth-client-id" ] cfgIni;
+          message = "man.sr.ht needs access to git.sr.ht.";
+        }
+      ];
+
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          description = "man.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0750 ${user} ${user} -"
+      ];
+
+      services.mansrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+        after = [ "postgresql.service" "network.target" ];
+        requires = [ "postgresql.service" ];
+        wantedBy = [ "multi-user.target" ];
+
+        description = "man.sr.ht website service";
+
+        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL man.sr.ht is being served at (protocol://domain)
+      "man.sr.ht".origin = mkDefault "http://man.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "man.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "man.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "man.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "man.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # man.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "man.sr.ht".oauth-client-id = mkDefault null;
+      "man.sr.ht".oauth-client-secret = mkDefault null;
+    };
+
+    services.nginx.virtualHosts."man.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.mansrht}/${pkgs.sourcehut.python.sitePackages}/mansrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/meta.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/meta.nix
new file mode 100644
index 000000000000..56127a824eb4
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/meta.nix
@@ -0,0 +1,211 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  scfg = cfg.meta;
+  iniKey = "meta.sr.ht";
+
+  rcfg = config.services.redis;
+  drv = pkgs.sourcehut.metasrht;
+in
+{
+  options.services.sourcehut.meta = {
+    user = mkOption {
+      type = types.str;
+      default = "metasrht";
+      description = ''
+        User for meta.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5000;
+      description = ''
+        Port on which the "meta" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "meta.sr.ht";
+      description = ''
+        PostgreSQL database name for meta.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/metasrht";
+      description = ''
+        State path for meta.sr.ht.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "meta" cfg.services) {
+    assertions =
+      [
+        {
+          assertion = with cfgIni."meta.sr.ht::billing"; enabled == "yes" -> (stripe-public-key != null && stripe-secret-key != null);
+          message = "If meta.sr.ht::billing is enabled, the keys should be defined.";
+        }
+      ];
+
+    users = {
+      users = {
+        ${user} = {
+          isSystemUser = true;
+          group = user;
+          description = "meta.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.cron.systemCronJobs = [ "0 0 * * * ${cfg.python}/bin/metasrht-daily" ];
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0750 ${user} ${user} -"
+      ];
+
+      services = {
+        metasrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "meta.sr.ht website service";
+
+          preStart = ''
+            # Configure client(s) as "preauthorized"
+            ${concatMapStringsSep "\n\n"
+              (attr: ''
+                if ! test -e "${statePath}/${attr}.oauth" || [ "$(cat ${statePath}/${attr}.oauth)" != "${cfgIni."${attr}".oauth-client-id}" ]; then
+                  # Configure ${attr}'s OAuth client as "preauthorized"
+                  psql ${database} \
+                    -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${cfgIni."${attr}".oauth-client-id}'"
+
+                  printf "%s" "${cfgIni."${attr}".oauth-client-id}" > "${statePath}/${attr}.oauth"
+                fi
+              '')
+              (builtins.attrNames (filterAttrs
+                (k: v: !(hasInfix "::" k) && builtins.hasAttr "oauth-client-id" v && v.oauth-client-id != null)
+                cfg.settings))}
+          '';
+
+          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+        };
+
+        metasrht-api = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "meta.sr.ht api service";
+
+          preStart = ''
+            # Configure client(s) as "preauthorized"
+            ${concatMapStringsSep "\n\n"
+              (attr: ''
+                if ! test -e "${statePath}/${attr}.oauth" || [ "$(cat ${statePath}/${attr}.oauth)" != "${cfgIni."${attr}".oauth-client-id}" ]; then
+                  # Configure ${attr}'s OAuth client as "preauthorized"
+                  psql ${database} \
+                    -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${cfgIni."${attr}".oauth-client-id}'"
+
+                  printf "%s" "${cfgIni."${attr}".oauth-client-id}" > "${statePath}/${attr}.oauth"
+                fi
+              '')
+              (builtins.attrNames (filterAttrs
+                (k: v: !(hasInfix "::" k) && builtins.hasAttr "oauth-client-id" v && v.oauth-client-id != null)
+                cfg.settings))}
+          '';
+
+          serviceConfig.ExecStart = "${pkgs.sourcehut.metasrht}/bin/metasrht-api -b :${toString (port + 100)}";
+        };
+
+        metasrht-webhooks = {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "meta.sr.ht webhooks service";
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Restart = "always";
+            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
+          };
+
+        };
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL meta.sr.ht is being served at (protocol://domain)
+      "meta.sr.ht".origin = mkDefault "https://meta.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "meta.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "meta.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "meta.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "meta.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # If "yes", the user will be sent the stock sourcehut welcome emails after
+      # signup (requires cron to be configured properly). These are specific to the
+      # sr.ht instance so you probably want to patch these before enabling this.
+      "meta.sr.ht".welcome-emails = mkDefault "no";
+
+      # The redis connection used for the webhooks worker
+      "meta.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/6";
+
+      # If "no", public registration will not be permitted.
+      "meta.sr.ht::settings".registration = mkDefault "no";
+      # Where to redirect new users upon registration
+      "meta.sr.ht::settings".onboarding-redirect = mkDefault "https://meta.${cfg.originBase}";
+      # How many invites each user is issued upon registration (only applicable if
+      # open registration is disabled)
+      "meta.sr.ht::settings".user-invites = mkDefault 5;
+
+      # Origin URL for API, 100 more than web
+      "meta.sr.ht".api-origin = mkDefault "http://localhost:5100";
+
+      # You can add aliases for the client IDs of commonly used OAuth clients here.
+      #
+      # Example:
+      "meta.sr.ht::aliases" = mkDefault { };
+      # "meta.sr.ht::aliases"."git.sr.ht" = 12345;
+
+      # "yes" to enable the billing system
+      "meta.sr.ht::billing".enabled = mkDefault "no";
+      # Get your keys at https://dashboard.stripe.com/account/apikeys
+      "meta.sr.ht::billing".stripe-public-key = mkDefault null;
+      "meta.sr.ht::billing".stripe-secret-key = mkDefault null;
+    };
+
+    services.nginx.virtualHosts."meta.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.metasrht}/${pkgs.sourcehut.python.sitePackages}/metasrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/paste.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/paste.nix
new file mode 100644
index 000000000000..b2d5151969ea
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/paste.nix
@@ -0,0 +1,133 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  scfg = cfg.paste;
+  iniKey = "paste.sr.ht";
+
+  rcfg = config.services.redis;
+  drv = pkgs.sourcehut.pastesrht;
+in
+{
+  options.services.sourcehut.paste = {
+    user = mkOption {
+      type = types.str;
+      default = "pastesrht";
+      description = ''
+        User for paste.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5011;
+      description = ''
+        Port on which the "paste" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "paste.sr.ht";
+      description = ''
+        PostgreSQL database name for paste.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/pastesrht";
+      description = ''
+        State path for pastesrht.sr.ht.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "paste" cfg.services) {
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          description = "paste.sr.ht user";
+        };
+      };
+
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0750 ${user} ${user} -"
+      ];
+
+      services = {
+        pastesrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "paste.sr.ht website service";
+
+          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+        };
+
+        pastesrht-webhooks = {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "paste.sr.ht webhooks service";
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Restart = "always";
+            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
+          };
+
+        };
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL paste.sr.ht is being served at (protocol://domain)
+      "paste.sr.ht".origin = mkDefault "http://paste.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "paste.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "paste.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "paste.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "paste.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # paste.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "paste.sr.ht".oauth-client-id = mkDefault null;
+      "paste.sr.ht".oauth-client-secret = mkDefault null;
+      "paste.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/5";
+    };
+
+    services.nginx.virtualHosts."paste.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.pastesrht}/${pkgs.sourcehut.python.sitePackages}/pastesrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/service.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/service.nix
new file mode 100644
index 000000000000..65b4ad020f9a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/service.nix
@@ -0,0 +1,66 @@
+{ config, pkgs, lib }:
+serviceCfg: serviceDrv: iniKey: attrs:
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings."${iniKey}";
+  pgSuperUser = config.services.postgresql.superUser;
+
+  setupDB = pkgs.writeScript "${serviceDrv.pname}-gen-db" ''
+    #! ${cfg.python}/bin/python
+    from ${serviceDrv.pname}.app import db
+    db.create()
+  '';
+in
+with serviceCfg; with lib; recursiveUpdate
+{
+  environment.HOME = statePath;
+  path = [ config.services.postgresql.package ] ++ (attrs.path or [ ]);
+  restartTriggers = [ config.environment.etc."sr.ht/config.ini".source ];
+  serviceConfig = {
+    Type = "simple";
+    User = user;
+    Group = user;
+    Restart = "always";
+    WorkingDirectory = statePath;
+  } // (if (cfg.statePath == "/var/lib/sourcehut/${serviceDrv.pname}") then {
+          StateDirectory = [ "sourcehut/${serviceDrv.pname}" ];
+        } else {})
+  ;
+
+  preStart = ''
+    if ! test -e ${statePath}/db; then
+      # Setup the initial database
+      ${setupDB}
+
+      # Set the initial state of the database for future database upgrades
+      if test -e ${cfg.python}/bin/${serviceDrv.pname}-migrate; then
+        # Run alembic stamp head once to tell alembic the schema is up-to-date
+        ${cfg.python}/bin/${serviceDrv.pname}-migrate stamp head
+      fi
+
+      printf "%s" "${serviceDrv.version}" > ${statePath}/db
+    fi
+
+    # Update copy of each users' profile to the latest
+    # See https://lists.sr.ht/~sircmpwn/sr.ht-admins/<20190302181207.GA13778%40cirno.my.domain>
+    if ! test -e ${statePath}/webhook; then
+      # Update ${iniKey}'s users' profile copy to the latest
+      ${cfg.python}/bin/srht-update-profiles ${iniKey}
+
+      touch ${statePath}/webhook
+    fi
+
+    ${optionalString (builtins.hasAttr "migrate-on-upgrade" cfgIni && cfgIni.migrate-on-upgrade == "yes") ''
+      if [ "$(cat ${statePath}/db)" != "${serviceDrv.version}" ]; then
+        # Manage schema migrations using alembic
+        ${cfg.python}/bin/${serviceDrv.pname}-migrate -a upgrade head
+
+        # Mark down current package version
+        printf "%s" "${serviceDrv.version}" > ${statePath}/db
+      fi
+    ''}
+
+    ${attrs.preStart or ""}
+  '';
+}
+  (builtins.removeAttrs attrs [ "path" "preStart" ])
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/sourcehut.xml b/nixpkgs/nixos/modules/services/misc/sourcehut/sourcehut.xml
new file mode 100644
index 000000000000..ab9a8c6cb4be
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/sourcehut.xml
@@ -0,0 +1,115 @@
+<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="module-services-sourcehut">
+ <title>Sourcehut</title>
+ <para>
+  <link xlink:href="https://sr.ht.com/">Sourcehut</link> is an open-source,
+  self-hostable software development platform. The server setup can be automated using
+  <link linkend="opt-services.sourcehut.enable">services.sourcehut</link>.
+ </para>
+
+ <section xml:id="module-services-sourcehut-basic-usage">
+  <title>Basic usage</title>
+  <para>
+   Sourcehut is a Python and Go based set of applications.
+   <literal><link linkend="opt-services.sourcehut.enable">services.sourcehut</link></literal>
+   by default will use
+   <literal><link linkend="opt-services.nginx.enable">services.nginx</link></literal>,
+   <literal><link linkend="opt-services.nginx.enable">services.redis</link></literal>,
+   <literal><link linkend="opt-services.nginx.enable">services.cron</link></literal>,
+   and
+   <literal><link linkend="opt-services.postgresql.enable">services.postgresql</link></literal>.
+  </para>
+
+  <para>
+   A very basic configuration may look like this:
+<programlisting>
+{ pkgs, ... }:
+let
+  fqdn =
+    let
+      join = hostName: domain: hostName + optionalString (domain != null) ".${domain}";
+    in join config.networking.hostName config.networking.domain;
+in {
+
+  networking = {
+    <link linkend="opt-networking.hostName">hostName</link> = "srht";
+    <link linkend="opt-networking.domain">domain</link> = "tld";
+    <link linkend="opt-networking.firewall.allowedTCPPorts">firewall.allowedTCPPorts</link> = [ 22 80 443 ];
+  };
+
+  services.sourcehut = {
+    <link linkend="opt-services.sourcehut.enable">enable</link> = true;
+    <link linkend="opt-services.sourcehut.originBase">originBase</link> = fqdn;
+    <link linkend="opt-services.sourcehut.services">services</link> = [ "meta" "man" "git" ];
+    <link linkend="opt-services.sourcehut.settings">settings</link> = {
+        "sr.ht" = {
+          environment = "production";
+          global-domain = fqdn;
+          origin = "https://${fqdn}";
+          # Produce keys with srht-keygen from <package>sourcehut.coresrht</package>.
+          network-key = "SECRET";
+          service-key = "SECRET";
+        };
+        webhooks.private-key= "SECRET";
+    };
+  };
+
+  <link linkend="opt-security.acme.certs._name_.extraDomainNames">security.acme.certs."${fqdn}".extraDomainNames</link> = [
+    "meta.${fqdn}"
+    "man.${fqdn}"
+    "git.${fqdn}"
+  ];
+
+  services.nginx = {
+    <link linkend="opt-services.nginx.enable">enable</link> = true;
+    # only recommendedProxySettings are strictly required, but the rest make sense as well.
+    <link linkend="opt-services.nginx.recommendedTlsSettings">recommendedTlsSettings</link> = true;
+    <link linkend="opt-services.nginx.recommendedOptimisation">recommendedOptimisation</link> = true;
+    <link linkend="opt-services.nginx.recommendedGzipSettings">recommendedGzipSettings</link> = true;
+    <link linkend="opt-services.nginx.recommendedProxySettings">recommendedProxySettings</link> = true;
+
+    # Settings to setup what certificates are used for which endpoint.
+    <link linkend="opt-services.nginx.virtualHosts">virtualHosts</link> = {
+      <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">"${fqdn}".enableACME</link> = true;
+      <link linkend="opt-services.nginx.virtualHosts._name_.useACMEHost">"meta.${fqdn}".useACMEHost</link> = fqdn:
+      <link linkend="opt-services.nginx.virtualHosts._name_.useACMEHost">"man.${fqdn}".useACMEHost</link> = fqdn:
+      <link linkend="opt-services.nginx.virtualHosts._name_.useACMEHost">"git.${fqdn}".useACMEHost</link> = fqdn:
+    };
+  };
+}
+</programlisting>
+  </para>
+
+  <para>
+   The <literal>hostName</literal> option is used internally to configure the nginx
+   reverse-proxy. The <literal>settings</literal> attribute set is
+   used by the configuration generator and the result is placed in <literal>/etc/sr.ht/config.ini</literal>.
+  </para>
+ </section>
+
+ <section xml:id="module-services-sourcehut-configuration">
+  <title>Configuration</title>
+
+  <para>
+   All configuration parameters are also stored in
+   <literal>/etc/sr.ht/config.ini</literal> which is generated by
+   the module and linked from the store to ensure that all values from <literal>config.ini</literal>
+   can be modified by the module.
+  </para>
+
+ </section>
+
+ <section xml:id="module-services-sourcehut-httpd">
+  <title>Using an alternative webserver as reverse-proxy (e.g. <literal>httpd</literal>)</title>
+  <para>
+   By default, <package>nginx</package> is used as reverse-proxy for <package>sourcehut</package>.
+   However, it's possible to use e.g. <package>httpd</package> by explicitly disabling
+   <package>nginx</package> using <xref linkend="opt-services.nginx.enable" /> and fixing the
+   <literal>settings</literal>.
+  </para>
+</section>
+
+</chapter>
diff --git a/nixpkgs/nixos/modules/services/misc/sourcehut/todo.nix b/nixpkgs/nixos/modules/services/misc/sourcehut/todo.nix
new file mode 100644
index 000000000000..aec773b06692
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/sourcehut/todo.nix
@@ -0,0 +1,161 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.sourcehut;
+  cfgIni = cfg.settings;
+  scfg = cfg.todo;
+  iniKey = "todo.sr.ht";
+
+  rcfg = config.services.redis;
+  drv = pkgs.sourcehut.todosrht;
+in
+{
+  options.services.sourcehut.todo = {
+    user = mkOption {
+      type = types.str;
+      default = "todosrht";
+      description = ''
+        User for todo.sr.ht.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 5003;
+      description = ''
+        Port on which the "todo" module should listen.
+      '';
+    };
+
+    database = mkOption {
+      type = types.str;
+      default = "todo.sr.ht";
+      description = ''
+        PostgreSQL database name for todo.sr.ht.
+      '';
+    };
+
+    statePath = mkOption {
+      type = types.path;
+      default = "${cfg.statePath}/todosrht";
+      description = ''
+        State path for todo.sr.ht.
+      '';
+    };
+  };
+
+  config = with scfg; lib.mkIf (cfg.enable && elem "todo" cfg.services) {
+    users = {
+      users = {
+        "${user}" = {
+          isSystemUser = true;
+          group = user;
+          extraGroups = [ "postfix" ];
+          description = "todo.sr.ht user";
+        };
+      };
+      groups = {
+        "${user}" = { };
+      };
+    };
+
+    services.postgresql = {
+      authentication = ''
+        local ${database} ${user} trust
+      '';
+      ensureDatabases = [ database ];
+      ensureUsers = [
+        {
+          name = user;
+          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
+        }
+      ];
+    };
+
+    systemd = {
+      tmpfiles.rules = [
+        "d ${statePath} 0750 ${user} ${user} -"
+      ];
+
+      services = {
+        todosrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "todo.sr.ht website service";
+
+          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
+        };
+
+       todosrht-lmtp = {
+         after = [ "postgresql.service" "network.target" ];
+         bindsTo = [ "postgresql.service" ];
+         wantedBy = [ "multi-user.target" ];
+
+         description = "todo.sr.ht process service";
+         serviceConfig = {
+           Type = "simple";
+           User = user;
+           Restart = "always";
+           ExecStart = "${cfg.python}/bin/todosrht-lmtp";
+         };
+       };
+
+        todosrht-webhooks = {
+          after = [ "postgresql.service" "network.target" ];
+          requires = [ "postgresql.service" ];
+          wantedBy = [ "multi-user.target" ];
+
+          description = "todo.sr.ht webhooks service";
+          serviceConfig = {
+            Type = "simple";
+            User = user;
+            Restart = "always";
+            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
+          };
+
+        };
+      };
+    };
+
+    services.sourcehut.settings = {
+      # URL todo.sr.ht is being served at (protocol://domain)
+      "todo.sr.ht".origin = mkDefault "http://todo.${cfg.originBase}";
+      # Address and port to bind the debug server to
+      "todo.sr.ht".debug-host = mkDefault "0.0.0.0";
+      "todo.sr.ht".debug-port = mkDefault port;
+      # Configures the SQLAlchemy connection string for the database.
+      "todo.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
+      # Set to "yes" to automatically run migrations on package upgrade.
+      "todo.sr.ht".migrate-on-upgrade = mkDefault "yes";
+      # todo.sr.ht's OAuth client ID and secret for meta.sr.ht
+      # Register your client at meta.example.org/oauth
+      "todo.sr.ht".oauth-client-id = mkDefault null;
+      "todo.sr.ht".oauth-client-secret = mkDefault null;
+      # Outgoing email for notifications generated by users
+      "todo.sr.ht".notify-from = mkDefault "CHANGEME@example.org";
+      # The redis connection used for the webhooks worker
+      "todo.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1";
+      # Network-key
+      "todo.sr.ht".network-key = mkDefault null;
+
+      # Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
+      # Alternatively, specify IP:PORT and an SMTP server will be run instead.
+      "todo.sr.ht::mail".sock = mkDefault "/tmp/todo.sr.ht-lmtp.sock";
+      # The lmtp daemon will make the unix socket group-read/write for users in this
+      # group.
+      "todo.sr.ht::mail".sock-group = mkDefault "postfix";
+
+      "todo.sr.ht::mail".posting-domain = mkDefault "todo.${cfg.originBase}";
+    };
+
+    services.nginx.virtualHosts."todo.${cfg.originBase}" = {
+      forceSSL = true;
+      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
+      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
+      locations."/static".root = "${pkgs.sourcehut.todosrht}/${pkgs.sourcehut.python.sitePackages}/todosrht";
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/ssm-agent.nix b/nixpkgs/nixos/modules/services/misc/ssm-agent.nix
index e50b07e0b862..c29d03d199bf 100644
--- a/nixpkgs/nixos/modules/services/misc/ssm-agent.nix
+++ b/nixpkgs/nixos/modules/services/misc/ssm-agent.nix
@@ -22,8 +22,8 @@ in {
     package = mkOption {
       type = types.path;
       description = "The SSM agent package to use";
-      default = pkgs.ssm-agent;
-      defaultText = "pkgs.ssm-agent";
+      default = pkgs.ssm-agent.override { overrideEtc = false; };
+      defaultText = "pkgs.ssm-agent.override { overrideEtc = false; }";
     };
   };
 
@@ -37,8 +37,10 @@ in {
       serviceConfig = {
         ExecStart = "${cfg.package}/bin/amazon-ssm-agent";
         KillMode = "process";
-        Restart = "on-failure";
-        RestartSec = "15min";
+        # We want this restating pretty frequently. It could be our only means
+        # of accessing the instance.
+        Restart = "always";
+        RestartSec = "1min";
       };
     };
 
@@ -62,5 +64,10 @@ in {
       isNormalUser = true;
       group = "ssm-user";
     };
+
+    environment.etc."amazon/ssm/seelog.xml".source = "${cfg.package}/seelog.xml.template";
+
+    environment.etc."amazon/ssm/amazon-ssm-agent.json".source =  "${cfg.package}/etc/amazon/ssm/amazon-ssm-agent.json.template";
+
   };
 }
diff --git a/nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix b/nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix
index cd987eb76c76..4458da1346b7 100644
--- a/nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix
+++ b/nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix
@@ -5,29 +5,17 @@ with lib;
 let
   cfg = config.services.zigbee2mqtt;
 
-  configJSON = pkgs.writeText "configuration.json"
-    (builtins.toJSON (recursiveUpdate defaultConfig cfg.config));
-  configFile = pkgs.runCommand "configuration.yaml" { preferLocalBuild = true; } ''
-    ${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out
-  '';
+  format = pkgs.formats.yaml { };
+  configFile = format.generate "zigbee2mqtt.yaml" cfg.settings;
 
-  # the default config contains all required settings,
-  # so the service starts up without crashing.
-  defaultConfig = {
-    homeassistant = false;
-    permit_join = false;
-    mqtt = {
-      base_topic = "zigbee2mqtt";
-      server = "mqtt://localhost:1883";
-    };
-    serial.port = "/dev/ttyACM0";
-    # put device configuration into separate file because configuration.yaml
-    # is copied from the store on startup
-    devices = "devices.yaml";
-  };
 in
 {
-  meta.maintainers = with maintainers; [ sweber ];
+  meta.maintainers = with maintainers; [ sweber hexa ];
+
+  imports = [
+    # Remove warning before the 21.11 release
+    (mkRenamedOptionModule [ "services" "zigbee2mqtt" "config" ] [ "services" "zigbee2mqtt" "settings" ])
+  ];
 
   options.services.zigbee2mqtt = {
     enable = mkEnableOption "enable zigbee2mqtt service";
@@ -37,7 +25,11 @@ in
       default = pkgs.zigbee2mqtt.override {
         dataDir = cfg.dataDir;
       };
-      defaultText = "pkgs.zigbee2mqtt";
+      defaultText = literalExample ''
+        pkgs.zigbee2mqtt {
+          dataDir = services.zigbee2mqtt.dataDir
+        }
+      '';
       type = types.package;
     };
 
@@ -47,9 +39,9 @@ in
       type = types.path;
     };
 
-    config = mkOption {
+    settings = mkOption {
+      type = format.type;
       default = {};
-      type = with types; nullOr attrs;
       example = literalExample ''
         {
           homeassistant = config.services.home-assistant.enable;
@@ -61,11 +53,28 @@ in
       '';
       description = ''
         Your <filename>configuration.yaml</filename> as a Nix attribute set.
+        Check the <link xlink:href="https://www.zigbee2mqtt.io/information/configuration.html">documentation</link>
+        for possible options.
       '';
     };
   };
 
   config = mkIf (cfg.enable) {
+
+    # preset config values
+    services.zigbee2mqtt.settings = {
+      homeassistant = mkDefault config.services.home-assistant.enable;
+      permit_join = mkDefault false;
+      mqtt = {
+        base_topic = mkDefault "zigbee2mqtt";
+        server = mkDefault "mqtt://localhost:1883";
+      };
+      serial.port = mkDefault "/dev/ttyACM0";
+      # reference device configuration, that is kept in a separate file
+      # to prevent it being overwritten in the units ExecStartPre script
+      devices = mkDefault "devices.yaml";
+    };
+
     systemd.services.zigbee2mqtt = {
       description = "Zigbee2mqtt Service";
       wantedBy = [ "multi-user.target" ];
@@ -76,10 +85,48 @@ in
         User = "zigbee2mqtt";
         WorkingDirectory = cfg.dataDir;
         Restart = "on-failure";
+
+        # Hardening
+        CapabilityBoundingSet = "";
+        DeviceAllow = [
+          config.services.zigbee2mqtt.settings.serial.port
+        ];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = false;
+        NoNewPrivileges = true;
+        PrivateDevices = false; # prevents access to /dev/serial, because it is set 0700 root:root
+        PrivateUsers = true;
+        PrivateTmp = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProcSubset = "pid";
         ProtectSystem = "strict";
         ReadWritePaths = cfg.dataDir;
-        PrivateTmp = true;
         RemoveIPC = true;
+        RestrictAddressFamilies = [
+          "AF_INET"
+          "AF_INET6"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SupplementaryGroups = [
+          "dialout"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged"
+          "~@resources"
+        ];
+        UMask = "0077";
       };
       preStart = ''
         cp --no-preserve=mode ${configFile} "${cfg.dataDir}/configuration.yaml"
@@ -90,7 +137,6 @@ in
       home = cfg.dataDir;
       createHome = true;
       group = "zigbee2mqtt";
-      extraGroups = [ "dialout" ];
       uid = config.ids.uids.zigbee2mqtt;
     };
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/grafana.nix b/nixpkgs/nixos/modules/services/monitoring/grafana.nix
index 86e306ab404a..b243e24591e6 100644
--- a/nixpkgs/nixos/modules/services/monitoring/grafana.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/grafana.nix
@@ -42,6 +42,9 @@ let
     AUTH_ANONYMOUS_ENABLED = boolToString cfg.auth.anonymous.enable;
     AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name;
     AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
+    AUTH_GOOGLE_ENABLED = boolToString cfg.auth.google.enable;
+    AUTH_GOOGLE_ALLOW_SIGN_UP = boolToString cfg.auth.google.allowSignUp;
+    AUTH_GOOGLE_CLIENT_ID = cfg.auth.google.clientId;
 
     ANALYTICS_REPORTING_ENABLED = boolToString cfg.analytics.reporting.enable;
 
@@ -334,11 +337,16 @@ in {
       defaultText = "pkgs.grafana";
       type = types.package;
     };
+
     declarativePlugins = mkOption {
       type = with types; nullOr (listOf path);
       default = null;
       description = "If non-null, then a list of packages containing Grafana plugins to install. If set, plugins cannot be manually installed.";
       example = literalExample "with pkgs.grafanaPlugins; [ grafana-piechart-panel ]";
+      # Make sure each plugin is added only once; otherwise building
+      # the link farm fails, since the same path is added multiple
+      # times.
+      apply = x: if isList x then lib.unique x else x;
     };
 
     dataDir = mkOption {
@@ -528,23 +536,46 @@ in {
       };
     };
 
-    auth.anonymous = {
-      enable = mkOption {
-        description = "Whether to allow anonymous access.";
-        default = false;
-        type = types.bool;
-      };
-      org_name = mkOption {
-        description = "Which organization to allow anonymous access to.";
-        default = "Main Org.";
-        type = types.str;
+    auth = {
+      anonymous = {
+        enable = mkOption {
+          description = "Whether to allow anonymous access.";
+          default = false;
+          type = types.bool;
+        };
+        org_name = mkOption {
+          description = "Which organization to allow anonymous access to.";
+          default = "Main Org.";
+          type = types.str;
+        };
+        org_role = mkOption {
+          description = "Which role anonymous users have in the organization.";
+          default = "Viewer";
+          type = types.str;
+        };
       };
-      org_role = mkOption {
-        description = "Which role anonymous users have in the organization.";
-        default = "Viewer";
-        type = types.str;
+      google = {
+        enable = mkOption {
+          description = "Whether to allow Google OAuth2.";
+          default = false;
+          type = types.bool;
+        };
+        allowSignUp = mkOption {
+          description = "Whether to allow sign up with Google OAuth2.";
+          default = false;
+          type = types.bool;
+        };
+        clientId = mkOption {
+          description = "Google OAuth2 client ID.";
+          default = "";
+          type = types.str;
+        };
+        clientSecretFile = mkOption {
+          description = "Google OAuth2 client secret.";
+          default = null;
+          type = types.nullOr types.path;
+        };
       };
-
     };
 
     analytics.reporting = {
@@ -609,17 +640,28 @@ in {
         QT_QPA_PLATFORM = "offscreen";
       } // mapAttrs' (n: v: nameValuePair "GF_${n}" (toString v)) envOptions;
       script = ''
+        set -o errexit -o pipefail -o nounset -o errtrace
+        shopt -s inherit_errexit
+
+        ${optionalString (cfg.auth.google.clientSecretFile != null) ''
+          GF_AUTH_GOOGLE_CLIENT_SECRET="$(<${escapeShellArg cfg.auth.google.clientSecretFile})"
+          export GF_AUTH_GOOGLE_CLIENT_SECRET
+        ''}
         ${optionalString (cfg.database.passwordFile != null) ''
-          export GF_DATABASE_PASSWORD="$(cat ${escapeShellArg cfg.database.passwordFile})"
+          GF_DATABASE_PASSWORD="$(<${escapeShellArg cfg.database.passwordFile})"
+          export GF_DATABASE_PASSWORD
         ''}
         ${optionalString (cfg.security.adminPasswordFile != null) ''
-          export GF_SECURITY_ADMIN_PASSWORD="$(cat ${escapeShellArg cfg.security.adminPasswordFile})"
+          GF_SECURITY_ADMIN_PASSWORD="$(<${escapeShellArg cfg.security.adminPasswordFile})"
+          export GF_SECURITY_ADMIN_PASSWORD
         ''}
         ${optionalString (cfg.security.secretKeyFile != null) ''
-          export GF_SECURITY_SECRET_KEY="$(cat ${escapeShellArg cfg.security.secretKeyFile})"
+          GF_SECURITY_SECRET_KEY="$(<${escapeShellArg cfg.security.secretKeyFile})"
+          export GF_SECURITY_SECRET_KEY
         ''}
         ${optionalString (cfg.smtp.passwordFile != null) ''
-          export GF_SMTP_PASSWORD="$(cat ${escapeShellArg cfg.smtp.passwordFile})"
+          GF_SMTP_PASSWORD="$(<${escapeShellArg cfg.smtp.passwordFile})"
+          export GF_SMTP_PASSWORD
         ''}
         ${optionalString cfg.provision.enable ''
           export GF_PATHS_PROVISIONING=${provisionConfDir};
diff --git a/nixpkgs/nixos/modules/services/monitoring/metricbeat.nix b/nixpkgs/nixos/modules/services/monitoring/metricbeat.nix
new file mode 100644
index 000000000000..b285559eaa9b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/metricbeat.nix
@@ -0,0 +1,152 @@
+{ config, lib, pkgs, ... }:
+
+let
+  inherit (lib)
+    attrValues
+    literalExample
+    mkEnableOption
+    mkIf
+    mkOption
+    types
+    ;
+  cfg = config.services.metricbeat;
+
+  settingsFormat = pkgs.formats.yaml {};
+
+in
+{
+  options = {
+
+    services.metricbeat = {
+
+      enable = mkEnableOption "metricbeat";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.metricbeat;
+        defaultText = literalExample "pkgs.metricbeat";
+        example = literalExample "pkgs.metricbeat7";
+        description = ''
+          The metricbeat package to use
+        '';
+      };
+
+      modules = mkOption {
+        description = ''
+          Metricbeat modules are responsible for reading metrics from the various sources.
+
+          This is like <literal>services.metricbeat.settings.metricbeat.modules</literal>,
+          but structured as an attribute set. This has the benefit that multiple
+          NixOS modules can contribute settings to a single metricbeat module.
+
+          A module can be specified multiple times by choosing a different <literal>&lt;name></literal>
+          for each, but setting <xref linkend="opt-services.metricbeat.modules._name_.module"/> to the same value.
+
+          See <link xlink:href="https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html"/>.
+        '';
+        default = {};
+        type = types.attrsOf (types.submodule ({ name, ... }: {
+          freeformType = settingsFormat.type;
+          options = {
+            module = mkOption {
+              type = types.str;
+              default = name;
+              defaultText = literalExample ''<name>'';
+              description = ''
+                The name of the module.
+
+                Look for the value after <literal>module:</literal> on the individual
+                module pages linked from <link xlink:href="https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html"/>.
+              '';
+            };
+          };
+        }));
+        example = {
+          system = {
+            metricsets = ["cpu" "load" "memory" "network" "process" "process_summary" "uptime" "socket_summary"];
+            enabled = true;
+            period = "10s";
+            processes = [".*"];
+            cpu.metrics = ["percentages" "normalized_percentages"];
+            core.metrics = ["percentages"];
+          };
+        };
+      };
+
+      settings = mkOption {
+        type = types.submodule {
+          freeformType = settingsFormat.type;
+          options = {
+
+            name = mkOption {
+              type = types.str;
+              default = "";
+              description = ''
+                Name of the beat. Defaults to the hostname.
+                See <link xlink:href="https://www.elastic.co/guide/en/beats/metricbeat/current/configuration-general-options.html#_name"/>.
+              '';
+            };
+
+            tags = mkOption {
+              type = types.listOf types.str;
+              default = [];
+              description = ''
+                Tags to place on the shipped metrics.
+                See <link xlink:href="https://www.elastic.co/guide/en/beats/metricbeat/current/configuration-general-options.html#_tags_2"/>.
+              '';
+            };
+
+            metricbeat.modules = mkOption {
+              type = types.listOf settingsFormat.type;
+              default = [];
+              internal = true;
+              description = ''
+                The metric collecting modules. Use <xref linkend="opt-services.metricbeat.modules"/> instead.
+
+                See <link xlink:href="https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html"/>.
+              '';
+            };
+          };
+        };
+        default = {};
+        description = ''
+          Configuration for metricbeat. See <link xlink:href="https://www.elastic.co/guide/en/beats/metricbeat/current/configuring-howto-metricbeat.html"/> for supported values.
+        '';
+      };
+
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    assertions = [
+      {
+        # empty modules would cause a failure at runtime
+        assertion = cfg.settings.metricbeat.modules != [];
+        message = "services.metricbeat: You must configure one or more modules.";
+      }
+    ];
+
+    services.metricbeat.settings.metricbeat.modules = attrValues cfg.modules;
+
+    systemd.services.metricbeat = {
+      description = "metricbeat metrics shipper";
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = ''
+          ${cfg.package}/bin/metricbeat \
+            -c ${settingsFormat.generate "metricbeat.yml" cfg.settings} \
+            --path.data $STATE_DIRECTORY \
+            --path.logs $LOGS_DIRECTORY \
+            ;
+        '';
+        Restart = "always";
+        DynamicUser = true;
+        ProtectSystem = "strict";
+        ProtectHome = "tmpfs";
+        StateDirectory = "metricbeat";
+        LogsDirectory = "metricbeat";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/netdata.nix b/nixpkgs/nixos/modules/services/monitoring/netdata.nix
index 007024c04ce5..561ce3eec625 100644
--- a/nixpkgs/nixos/modules/services/monitoring/netdata.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/netdata.nix
@@ -8,6 +8,7 @@ let
   wrappedPlugins = pkgs.runCommand "wrapped-plugins" { preferLocalBuild = true; } ''
     mkdir -p $out/libexec/netdata/plugins.d
     ln -s /run/wrappers/bin/apps.plugin $out/libexec/netdata/plugins.d/apps.plugin
+    ln -s /run/wrappers/bin/cgroup-network $out/libexec/netdata/plugins.d/cgroup-network
     ln -s /run/wrappers/bin/freeipmi.plugin $out/libexec/netdata/plugins.d/freeipmi.plugin
     ln -s /run/wrappers/bin/perf.plugin $out/libexec/netdata/plugins.d/perf.plugin
     ln -s /run/wrappers/bin/slabinfo.plugin $out/libexec/netdata/plugins.d/slabinfo.plugin
@@ -26,6 +27,10 @@ let
       "web files owner" = "root";
       "web files group" = "root";
     };
+    "plugin:cgroups" = {
+      "script to get cgroup network interfaces" = "${wrappedPlugins}/libexec/netdata/plugins.d/cgroup-network";
+      "use unified cgroups" = "yes";
+    };
   };
   mkConfig = generators.toINI {} (recursiveUpdate localConfig cfg.config);
   configFile = pkgs.writeText "netdata.conf" (if cfg.configText != null then cfg.configText else mkConfig);
@@ -149,8 +154,9 @@ in {
       description = "Real time performance monitoring";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      path = (with pkgs; [ curl gawk which ]) ++ lib.optional cfg.python.enable
-        (pkgs.python3.withPackages cfg.python.extraPackages);
+      path = (with pkgs; [ curl gawk iproute2 which ])
+        ++ lib.optional cfg.python.enable (pkgs.python3.withPackages cfg.python.extraPackages)
+        ++ lib.optional config.virtualisation.libvirtd.enable (config.virtualisation.libvirtd.package);
       environment = {
         PYTHONPATH = "${cfg.package}/libexec/netdata/python.d/python_modules";
       } // lib.optionalAttrs (!cfg.enableAnalyticsReporting) {
@@ -191,6 +197,8 @@ in {
           "CAP_SYS_PTRACE"        # is required for apps plugin
           "CAP_SYS_RESOURCE"      # is required for ebpf plugin
           "CAP_NET_RAW"           # is required for fping app
+          "CAP_SYS_CHROOT"        # is required for cgroups plugin
+          "CAP_SETUID"            # is required for cgroups and cgroups-network plugins
         ];
         # Sandboxing
         ProtectSystem = "full";
@@ -208,7 +216,15 @@ in {
       capabilities = "cap_dac_read_search,cap_sys_ptrace+ep";
       owner = cfg.user;
       group = cfg.group;
-      permissions = "u+rx,g+rx,o-rwx";
+      permissions = "u+rx,g+x,o-rwx";
+    };
+
+    security.wrappers."cgroup-network" = {
+      source = "${cfg.package}/libexec/netdata/plugins.d/cgroup-network.org";
+      capabilities = "cap_setuid+ep";
+      owner = cfg.user;
+      group = cfg.group;
+      permissions = "u+rx,g+x,o-rwx";
     };
 
     security.wrappers."freeipmi.plugin" = {
@@ -216,7 +232,7 @@ in {
       capabilities = "cap_dac_override,cap_fowner+ep";
       owner = cfg.user;
       group = cfg.group;
-      permissions = "u+rx,g+rx,o-rwx";
+      permissions = "u+rx,g+x,o-rwx";
     };
 
     security.wrappers."perf.plugin" = {
@@ -224,7 +240,7 @@ in {
       capabilities = "cap_sys_admin+ep";
       owner = cfg.user;
       group = cfg.group;
-      permissions = "u+rx,g+rx,o-rx";
+      permissions = "u+rx,g+x,o-rwx";
     };
 
     security.wrappers."slabinfo.plugin" = {
@@ -232,7 +248,7 @@ in {
       capabilities = "cap_dac_override+ep";
       owner = cfg.user;
       group = cfg.group;
-      permissions = "u+rx,g+rx,o-rx";
+      permissions = "u+rx,g+x,o-rwx";
     };
 
     security.pam.loginLimits = [
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
index bd74e1a9cdb5..e08f23d8eb04 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
@@ -112,7 +112,7 @@ let
           http://tools.ietf.org/html/rfc4366#section-3.1
         '';
       };
-      name = mkOpt types.string ''
+      name = mkOpt types.str ''
         Name of the remote read config, which if specified must be unique among remote read configs.
         The name will be used in metrics and logging in place of a generated value to help users distinguish between
         remote read configs.
@@ -174,7 +174,7 @@ let
       write_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
         List of remote write relabel configurations.
       '';
-      name = mkOpt types.string ''
+      name = mkOpt types.str ''
         Name of the remote write config, which if specified must be unique among remote write configs.
         The name will be used in metrics and logging in place of a generated value to help users distinguish between
         remote write configs.
@@ -386,6 +386,10 @@ let
         List of relabel configurations.
       '';
 
+      metric_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
+        List of metric relabel configurations.
+      '';
+
       sample_limit = mkDefOpt types.int "0" ''
         Per-scrape limit on number of scraped samples that will be accepted.
         If more than this number of samples are present after metric relabelling
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
index e0c5ceccfcc9..46015c9ec1ef 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -34,6 +34,7 @@ let
     "fritzbox"
     "json"
     "jitsi"
+    "kea"
     "keylight"
     "knot"
     "lnd"
@@ -47,18 +48,22 @@ let
     "node"
     "openldap"
     "openvpn"
+    "pihole"
     "postfix"
     "postgres"
+    "process"
     "py-air-control"
     "redis"
     "rspamd"
     "rtl_433"
+    "script"
     "snmp"
     "smokeping"
     "sql"
     "surfboard"
     "systemd"
     "tor"
+    "unbound"
     "unifi"
     "unifi-poller"
     "varnish"
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
index 972632b5a24a..16c2920751d9 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
@@ -41,12 +41,12 @@ in
     serviceConfig = {
       ExecStart = ''
         ${pkgs.prometheus-bind-exporter}/bin/bind_exporter \
-          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
-          -bind.pid-file /var/run/named/named.pid \
-          -bind.timeout ${toString cfg.bindTimeout} \
-          -bind.stats-url ${cfg.bindURI} \
-          -bind.stats-version ${cfg.bindVersion} \
-          -bind.stats-groups ${concatStringsSep "," cfg.bindGroups} \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --bind.pid-file /var/run/named/named.pid \
+          --bind.timeout ${toString cfg.bindTimeout} \
+          --bind.stats-url ${cfg.bindURI} \
+          --bind.stats-version ${cfg.bindVersion} \
+          --bind.stats-groups ${concatStringsSep "," cfg.bindGroups} \
           ${concatStringsSep " \\\n  " cfg.extraFlags}
       '';
     };
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
index a3b2b92bc347..a7f4d3e096fe 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
@@ -41,11 +41,11 @@ in
     };
 
     logFormat = mkOption {
-      type = types.str;
-      default = "logger:stderr";
-      example = "logger:syslog?appname=bob&local=7 or logger:stdout?json=true";
+      type = types.enum [ "logfmt" "json" ];
+      default = "logfmt";
+      example = "json";
       description = ''
-        Set the log target and format.
+        Set the log format.
       '';
     };
 
@@ -59,16 +59,16 @@ in
   };
   serviceOpts = let
     collectSettingsArgs = if (cfg.collectdBinary.enable) then ''
-      -collectd.listen-address ${cfg.collectdBinary.listenAddress}:${toString cfg.collectdBinary.port} \
-      -collectd.security-level ${cfg.collectdBinary.securityLevel} \
+      --collectd.listen-address ${cfg.collectdBinary.listenAddress}:${toString cfg.collectdBinary.port} \
+      --collectd.security-level ${cfg.collectdBinary.securityLevel} \
     '' else "";
   in {
     serviceConfig = {
       ExecStart = ''
         ${pkgs.prometheus-collectd-exporter}/bin/collectd_exporter \
-          -log.format ${escapeShellArg cfg.logFormat} \
-          -log.level ${cfg.logLevel} \
-          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --log.format ${escapeShellArg cfg.logFormat} \
+          --log.level ${cfg.logLevel} \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
           ${collectSettingsArgs} \
           ${concatStringsSep " \\\n  " cfg.extraFlags}
       '';
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
index aba3533e4395..472652fe8a7a 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
@@ -35,13 +35,28 @@ in
         {
           <xref linkend="opt-services.prometheus.exporters.dovecot.enable" /> = true;
           <xref linkend="opt-services.prometheus.exporters.dovecot.socketPath" /> = "/var/run/dovecot2/old-stats";
+          <xref linkend="opt-services.dovecot2.mailPlugins.globally.enable" /> = [ "old_stats" ];
           <xref linkend="opt-services.dovecot2.extraConfig" /> = '''
-            mail_plugins = $mail_plugins old_stats
             service old-stats {
               unix_listener old-stats {
                 user = dovecot-exporter
                 group = dovecot-exporter
+                mode = 0660
               }
+              fifo_listener old-stats-mail {
+                mode = 0660
+                user = dovecot
+                group = dovecot
+              }
+              fifo_listener old-stats-user {
+                mode = 0660
+                user = dovecot
+                group = dovecot
+              }
+            }
+            plugin {
+              old_stats_refresh = 30 secs
+              old_stats_track_cmds = yes
             }
           ''';
         }
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
new file mode 100644
index 000000000000..b6cd89c3866b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
@@ -0,0 +1,38 @@
+{ config
+, lib
+, pkgs
+, options
+}:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.kea;
+in {
+  port = 9547;
+  extraOpts = {
+    controlSocketPaths = mkOption {
+      type = types.listOf types.str;
+      example = literalExample ''
+        [
+          "/run/kea/kea-dhcp4.socket"
+          "/run/kea/kea-dhcp6.socket"
+        ]
+      '';
+      description = ''
+        Paths to kea control sockets
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-kea-exporter}/bin/kea-exporter \
+          --address ${cfg.listenAddress} \
+          --port ${toString cfg.port} \
+          ${concatStringsSep " \\n" cfg.controlSocketPaths}
+      '';
+      SupplementaryGroups = [ "kea" ];
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
index 18c5c4dd1623..7e196149fbb3 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
@@ -112,6 +112,24 @@ let
       '';
       description = ''
         List of servers that should be probed.
+
+        <emphasis>Note:</emphasis> if your mailserver has <citerefentry>
+        <refentrytitle>rspamd</refentrytitle><manvolnum>8</manvolnum></citerefentry> configured,
+        it can happen that emails from this exporter are marked as spam.
+
+        It's possible to work around the issue with a config like this:
+        <programlisting>
+        {
+          <link linkend="opt-services.rspamd.locals._name_.text">services.rspamd.locals."multimap.conf".text</link> = '''
+            ALLOWLIST_PROMETHEUS {
+              filter = "email:domain:tld";
+              type = "from";
+              map = "''${pkgs.writeText "allowmap" "domain.tld"}";
+              score = -100.0;
+            }
+          ''';
+        }
+        </programlisting>
       '';
     };
   };
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
new file mode 100644
index 000000000000..21c2e5eab4ca
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
@@ -0,0 +1,74 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.pihole;
+in
+{
+  port = 9617;
+  extraOpts = {
+    apiToken = mkOption {
+      type = types.str;
+      default = "";
+      example = "580a770cb40511eb85290242ac130003580a770cb40511eb85290242ac130003";
+      description = ''
+        pi-hole API token which can be used instead of a password
+      '';
+    };
+    interval = mkOption {
+      type = types.str;
+      default = "10s";
+      example = "30s";
+      description = ''
+        How often to scrape new data
+      '';
+    };
+    password = mkOption {
+      type = types.str;
+      default = "";
+      example = "password";
+      description = ''
+        The password to login into pihole. An api token can be used instead.
+      '';
+    };
+    piholeHostname = mkOption {
+      type = types.str;
+      default = "pihole";
+      example = "127.0.0.1";
+      description = ''
+        Hostname or address where to find the pihole webinterface
+      '';
+    };
+    piholePort = mkOption {
+      type = types.port;
+      default = "80";
+      example = "443";
+      description = ''
+        The port pihole webinterface is reachable on
+      '';
+    };
+    protocol = mkOption {
+      type = types.enum [ "http" "https" ];
+      default = "http";
+      example = "https";
+      description = ''
+        The protocol which is used to connect to pihole
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.bash}/bin/bash -c "${pkgs.prometheus-pihole-exporter}/bin/pihole-exporter \
+          -interval ${cfg.interval} \
+          ${optionalString (cfg.apiToken != "") "-pihole_api_token ${cfg.apiToken}"} \
+          -pihole_hostname ${cfg.piholeHostname} \
+          ${optionalString (cfg.password != "") "-pihole_password ${cfg.password}"} \
+          -pihole_port ${toString cfg.piholePort} \
+          -pihole_protocol ${cfg.protocol} \
+          -port ${toString cfg.port}"
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
new file mode 100644
index 000000000000..e3b3d18367fd
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
@@ -0,0 +1,48 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.process;
+  configFile = pkgs.writeText "process-exporter.yaml" (builtins.toJSON cfg.settings);
+in
+{
+  port = 9256;
+  extraOpts = {
+    settings.process_names = mkOption {
+      type = types.listOf types.anything;
+      default = {};
+      example = literalExample ''
+        {
+          process_names = [
+            # Remove nix store path from process name
+            { name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
+          ];
+        }
+      '';
+      description = ''
+        All settings expressed as an Nix attrset.
+
+        Check the official documentation for the corresponding YAML
+        settings that can all be used here: <link xlink:href="https://github.com/ncabatoff/process-exporter" />
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      DynamicUser = false;
+      ExecStart = ''
+        ${pkgs.prometheus-process-exporter}/bin/process-exporter \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --config.path ${configFile} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+      NoNewPrivileges = true;
+      ProtectHome = true;
+      ProtectSystem = true;
+      ProtectKernelTunables = true;
+      ProtectKernelModules = true;
+      ProtectControlGroups = true;
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
index 78fe120e4d93..994670a376e7 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
@@ -5,21 +5,19 @@ with lib;
 let
   cfg = config.services.prometheus.exporters.rspamd;
 
-  prettyJSON = conf:
-    pkgs.runCommand "rspamd-exporter-config.yml" { } ''
-      echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq '.' > $out
-    '';
+  mkFile = conf:
+    pkgs.writeText "rspamd-exporter-config.yml" (builtins.toJSON conf);
 
   generateConfig = extraLabels: {
     metrics = (map (path: {
-      name = "rspamd_${replaceStrings [ "." " " ] [ "_" "_" ] path}";
-      path = "$.${path}";
+      name = "rspamd_${replaceStrings [ "[" "." " " "]" "\\" "'" ] [ "_" "_" "_" "" "" "" ] path}";
+      path = "{ .${path} }";
       labels = extraLabels;
     }) [
-      "actions.'add header'"
-      "actions.'no action'"
-      "actions.'rewrite subject'"
-      "actions.'soft reject'"
+      "actions['add\\ header']"
+      "actions['no\\ action']"
+      "actions['rewrite\\ subject']"
+      "actions['soft\\ reject']"
       "actions.greylist"
       "actions.reject"
       "bytes_allocated"
@@ -40,18 +38,18 @@ let
     ]) ++ [{
       name = "rspamd_statfiles";
       type = "object";
-      path = "$.statfiles[*]";
+      path = "{.statfiles[*]}";
       labels = recursiveUpdate {
-        symbol = "$.symbol";
-        type = "$.type";
+        symbol = "{.symbol}";
+        type = "{.type}";
       } extraLabels;
       values = {
-        revision = "$.revision";
-        size = "$.size";
-        total = "$.total";
-        used = "$.used";
-        languages = "$.languages";
-        users = "$.users";
+        revision = "{.revision}";
+        size = "{.size}";
+        total = "{.total}";
+        used = "{.used}";
+        languages = "{.languages}";
+        users = "{.users}";
       };
     }];
   };
@@ -76,7 +74,7 @@ in
   };
   serviceOpts.serviceConfig.ExecStart = ''
     ${pkgs.prometheus-json-exporter}/bin/json_exporter \
-      --config.file ${prettyJSON (generateConfig cfg.extraLabels)} \
+      --config.file ${mkFile (generateConfig cfg.extraLabels)} \
       --web.listen-address "${cfg.listenAddress}:${toString cfg.port}" \
       ${concatStringsSep " \\\n  " cfg.extraFlags}
   '';
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
new file mode 100644
index 000000000000..104ab859f2ee
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
@@ -0,0 +1,64 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.script;
+  configFile = pkgs.writeText "script-exporter.yaml" (builtins.toJSON cfg.settings);
+in
+{
+  port = 9172;
+  extraOpts = {
+    settings.scripts = mkOption {
+      type = with types; listOf (submodule {
+        options = {
+          name = mkOption {
+            type = str;
+            example = "sleep";
+            description = "Name of the script.";
+          };
+          script = mkOption {
+            type = str;
+            example = "sleep 5";
+            description = "Shell script to execute when metrics are requested.";
+          };
+          timeout = mkOption {
+            type = nullOr int;
+            default = null;
+            example = 60;
+            description = "Optional timeout for the script in seconds.";
+          };
+        };
+      });
+      example = literalExample ''
+        {
+          scripts = [
+            { name = "sleep"; script = "sleep 5"; }
+          ];
+        }
+      '';
+      description = ''
+        All settings expressed as an Nix attrset.
+
+        Check the official documentation for the corresponding YAML
+        settings that can all be used here: <link xlink:href="https://github.com/adhocteam/script_exporter#sample-configuration" />
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-script-exporter}/bin/script_exporter \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --config.file ${configFile} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+      NoNewPrivileges = true;
+      ProtectHome = true;
+      ProtectSystem = "strict";
+      ProtectKernelTunables = true;
+      ProtectKernelModules = true;
+      ProtectControlGroups = true;
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
new file mode 100644
index 000000000000..56a559531c14
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
@@ -0,0 +1,59 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.unbound;
+in
+{
+  port = 9167;
+  extraOpts = {
+    fetchType = mkOption {
+      # TODO: add shm when upstream implemented it
+      type = types.enum [ "tcp" "uds" ];
+      default = "uds";
+      description = ''
+        Which methods the exporter uses to get the information from unbound.
+      '';
+    };
+
+    telemetryPath = mkOption {
+      type = types.str;
+      default = "/metrics";
+      description = ''
+        Path under which to expose metrics.
+      '';
+    };
+
+    controlInterface = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "/run/unbound/unbound.socket";
+      description = ''
+        Path to the unbound socket for uds mode or the control interface port for tcp mode.
+
+        Example:
+          uds-mode: /run/unbound/unbound.socket
+          tcp-mode: 127.0.0.1:8953
+      '';
+    };
+  };
+
+  serviceOpts = mkMerge ([{
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-unbound-exporter}/bin/unbound-telemetry \
+          ${cfg.fetchType} \
+          --bind ${cfg.listenAddress}:${toString cfg.port} \
+          --path ${cfg.telemetryPath} \
+          ${optionalString (cfg.controlInterface != null) "--control-interface ${cfg.controlInterface}"} \
+          ${toString cfg.extraFlags}
+      '';
+    };
+  }] ++ [
+    (mkIf config.services.unbound.enable {
+      after = [ "unbound.service" ];
+      requires = [ "unbound.service" ];
+    })
+  ]);
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix
index 44b15cb2034c..980c93c9c478 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/xmpp-alerts.nix
@@ -4,21 +4,29 @@ with lib;
 
 let
   cfg = config.services.prometheus.xmpp-alerts;
-
-  configFile = pkgs.writeText "prometheus-xmpp-alerts.yml" (builtins.toJSON cfg.configuration);
-
+  settingsFormat = pkgs.formats.yaml {};
+  configFile = settingsFormat.generate "prometheus-xmpp-alerts.yml" cfg.settings;
 in
-
 {
-  options.services.prometheus.xmpp-alerts = {
+  imports = [
+    (mkRenamedOptionModule
+      [ "services" "prometheus" "xmpp-alerts" "configuration" ]
+      [ "services" "prometheus" "xmpp-alerts" "settings" ])
+  ];
 
+  options.services.prometheus.xmpp-alerts = {
     enable = mkEnableOption "XMPP Web hook service for Alertmanager";
 
-    configuration = mkOption {
-      type = types.attrs;
-      description = "Configuration as attribute set which will be converted to YAML";
-    };
+    settings = mkOption {
+      type = settingsFormat.type;
+      default = {};
 
+      description = ''
+        Configuration for prometheus xmpp-alerts, see
+        <link xlink:href="https://github.com/jelmer/prometheus-xmpp-alerts/blob/master/xmpp-alerts.yml.example"/>
+        for supported values.
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix b/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix
index 4b6f85e4a2c9..8cf314fe63a5 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/davfs2.nix
@@ -70,6 +70,24 @@ in
       };
     };
 
+    security.wrappers."mount.davfs" = {
+      program = "mount.davfs";
+      source = "${pkgs.davfs2}/bin/mount.davfs";
+      owner = "root";
+      group = cfg.davGroup;
+      setuid = true;
+      permissions = "u+rx,g+x";
+    };
+
+    security.wrappers."umount.davfs" = {
+      program = "umount.davfs";
+      source = "${pkgs.davfs2}/bin/umount.davfs";
+      owner = "root";
+      group = cfg.davGroup;
+      setuid = true;
+      permissions = "u+rx,g+x";
+    };
+
   };
 
 }
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix b/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
index 33e851210bc6..06a36eb30c29 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
@@ -3,43 +3,10 @@
 with lib;
 
 let
-
   cfg = config.services.netatalk;
-
-  extmapFile = pkgs.writeText "extmap.conf" cfg.extmap;
-
-  afpToString = x: if builtins.typeOf x == "bool"
-                   then boolToString x
-                   else toString x;
-
-  volumeConfig = name:
-    let vol = getAttr name cfg.volumes; in
-    "[${name}]\n " + (toString (
-       map
-         (key: "${key} = ${afpToString (getAttr key vol)}\n")
-         (attrNames vol)
-    ));
-
-  afpConf = ''[Global]
-    extmap file = ${extmapFile}
-    afp port = ${toString cfg.port}
-
-    ${cfg.extraConfig}
-
-    ${if cfg.homes.enable then ''[Homes]
-    ${optionalString (cfg.homes.path != "") "path = ${cfg.homes.path}"}
-    basedir regex = ${cfg.homes.basedirRegex}
-    ${cfg.homes.extraConfig}
-    '' else ""}
-
-     ${toString (map volumeConfig (attrNames cfg.volumes))}
-  '';
-
-  afpConfFile = pkgs.writeText "afp.conf" afpConf;
-
-in
-
-{
+  settingsFormat = pkgs.formats.ini { };
+  afpConfFile = settingsFormat.generate "afp.conf" cfg.settings;
+in {
   options = {
     services.netatalk = {
 
@@ -51,61 +18,24 @@ in
         description = "TCP port to be used for AFP.";
       };
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        example = "uam list = uams_guest.so";
-        description = ''
-          Lines of configuration to add to the <literal>[Global]</literal> section.
-          See <literal>man apf.conf</literal> for more information.
-        '';
-      };
-
-      homes = {
-        enable = mkOption {
-          type = types.bool;
-          default = false;
-          description = "Enable sharing of the UNIX server user home directories.";
-        };
-
-        path = mkOption {
-          type = types.str;
-          default = "";
-          example = "afp-data";
-          description = "Share not the whole user home but this subdirectory path.";
-        };
-
-        basedirRegex = mkOption {
-          example = "/home";
-          type = types.str;
-          description = "Regex which matches the parent directory of the user homes.";
-        };
-
-        extraConfig = mkOption {
-          type = types.lines;
-          default = "";
-          description = ''
-            Lines of configuration to add to the <literal>[Homes]</literal> section.
-            See <literal>man apf.conf</literal> for more information.
-          '';
-         };
-      };
-
-      volumes = mkOption {
+      settings = mkOption {
+        inherit (settingsFormat) type;
         default = { };
-        type = types.attrsOf (types.attrsOf types.unspecified);
-        description =
-          ''
-            Set of AFP volumes to export.
-            See <literal>man apf.conf</literal> for more information.
-          '';
-        example = literalExample ''
-          { srv =
-             { path = "/srv";
-               "read only" = true;
-               "hosts allow" = "10.1.0.0/16 10.2.1.100 2001:0db8:1234::/48";
-             };
-          }
+        example = {
+          Global = { "uam list" = "uams_guest.so"; };
+          Homes = {
+            path = "afp-data";
+            "basedir regex" = "/home";
+          };
+          example-volume = {
+            path = "/srv/volume";
+            "read only" = true;
+          };
+        };
+        description = ''
+          Configuration for Netatalk. See
+          <citerefentry><refentrytitle>afp.conf</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry>.
         '';
       };
 
@@ -114,18 +44,33 @@ in
         default = "";
         description = ''
           File name extension mappings.
-          See <literal>man extmap.conf</literal> for more information.
+          See <citerefentry><refentrytitle>extmap.conf</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry>. for more information.
         '';
       };
 
     };
   };
 
+  imports = (map (option:
+    mkRemovedOptionModule [ "services" "netatalk" option ]
+    "This option was removed in favor of `services.netatalk.settings`.") [
+      "extraConfig"
+      "homes"
+      "volumes"
+    ]);
+
   config = mkIf cfg.enable {
 
+    services.netatalk.settings.Global = {
+      "afp port" = toString cfg.port;
+      "extmap file" = "${pkgs.writeText "extmap.conf" cfg.extmap}";
+    };
+
     systemd.services.netatalk = {
       description = "Netatalk AFP fileserver for Macintosh clients";
-      unitConfig.Documentation = "man:afp.conf(5) man:netatalk(8) man:afpd(8) man:cnid_metad(8) man:cnid_dbd(8)";
+      unitConfig.Documentation =
+        "man:afp.conf(5) man:netatalk(8) man:afpd(8) man:cnid_metad(8) man:cnid_dbd(8)";
       after = [ "network.target" "avahi-daemon.service" ];
       wantedBy = [ "multi-user.target" ];
 
@@ -135,12 +80,12 @@ in
         Type = "forking";
         GuessMainPID = "no";
         PIDFile = "/run/lock/netatalk";
-        ExecStartPre = "${pkgs.coreutils}/bin/mkdir -m 0755 -p /var/lib/netatalk/CNID";
-        ExecStart  = "${pkgs.netatalk}/sbin/netatalk -F ${afpConfFile}";
+        ExecStart = "${pkgs.netatalk}/sbin/netatalk -F ${afpConfFile}";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP  $MAINPID";
-        ExecStop   = "${pkgs.coreutils}/bin/kill -TERM $MAINPID";
+        ExecStop = "${pkgs.coreutils}/bin/kill -TERM $MAINPID";
         Restart = "always";
         RestartSec = 1;
+        StateDirectory = [ "netatalk/CNID" ];
       };
 
     };
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix b/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix
index c68039c79e2b..800ef448d376 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/samba-wsdd.nix
@@ -117,7 +117,7 @@ in {
         PrivateMounts = true;
         # System Call Filtering
         SystemCallArchitectures = "native";
-        SystemCallFilter = "~@clock @cpu-emulation @debug @module @mount @obsolete @privileged @raw-io @reboot @resources @swap";
+        SystemCallFilter = "~@cpu-emulation @debug @mount @obsolete @privileged @resources";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/networking/adguardhome.nix b/nixpkgs/nixos/modules/services/networking/adguardhome.nix
new file mode 100644
index 000000000000..4388ef2b7e57
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/adguardhome.nix
@@ -0,0 +1,78 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.adguardhome;
+
+  args = concatStringsSep " " ([
+    "--no-check-update"
+    "--pidfile /run/AdGuardHome/AdGuardHome.pid"
+    "--work-dir /var/lib/AdGuardHome/"
+    "--config /var/lib/AdGuardHome/AdGuardHome.yaml"
+    "--host ${cfg.host}"
+    "--port ${toString cfg.port}"
+  ] ++ cfg.extraArgs);
+
+in
+{
+  options.services.adguardhome = with types; {
+    enable = mkEnableOption "AdGuard Home network-wide ad blocker";
+
+    host = mkOption {
+      default = "0.0.0.0";
+      type = str;
+      description = ''
+        Host address to bind HTTP server to.
+      '';
+    };
+
+    port = mkOption {
+      default = 3000;
+      type = port;
+      description = ''
+        Port to serve HTTP pages on.
+      '';
+    };
+
+    openFirewall = mkOption {
+      default = false;
+      type = bool;
+      description = ''
+        Open ports in the firewall for the AdGuard Home web interface. Does not
+        open the port needed to access the DNS resolver.
+      '';
+    };
+
+    extraArgs = mkOption {
+      default = [ ];
+      type = listOf str;
+      description = ''
+        Extra command line parameters to be passed to the adguardhome binary.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.adguardhome = {
+      description = "AdGuard Home: Network-level blocker";
+      after = [ "syslog.target" "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      unitConfig = {
+        StartLimitIntervalSec = 5;
+        StartLimitBurst = 10;
+      };
+      serviceConfig = {
+        DynamicUser = true;
+        ExecStart = "${pkgs.adguardhome}/bin/adguardhome ${args}";
+        AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
+        Restart = "always";
+        RestartSec = 10;
+        RuntimeDirectory = "AdGuardHome";
+        StateDirectory = "AdGuardHome";
+      };
+    };
+
+    networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/networking/babeld.nix b/nixpkgs/nixos/modules/services/networking/babeld.nix
index 97dca002a007..5e14283179ac 100644
--- a/nixpkgs/nixos/modules/services/networking/babeld.nix
+++ b/nixpkgs/nixos/modules/services/networking/babeld.nix
@@ -32,6 +32,8 @@ in
 
 {
 
+  meta.maintainers = with maintainers; [ hexa ];
+
   ###### interface
 
   options = {
diff --git a/nixpkgs/nixos/modules/services/networking/bind.nix b/nixpkgs/nixos/modules/services/networking/bind.nix
index e507e8ce9eeb..20eef2c3455b 100644
--- a/nixpkgs/nixos/modules/services/networking/bind.nix
+++ b/nixpkgs/nixos/modules/services/networking/bind.nix
@@ -8,32 +8,37 @@ let
 
   bindUser = "named";
 
-  bindZoneOptions = {
-    name = mkOption {
-      type = types.str;
-      description = "Name of the zone.";
-    };
-    master = mkOption {
-      description = "Master=false means slave server";
-      type = types.bool;
-    };
-    file = mkOption {
-      type = types.either types.str types.path;
-      description = "Zone file resource records contain columns of data, separated by whitespace, that define the record.";
-    };
-    masters = mkOption {
-      type = types.listOf types.str;
-      description = "List of servers for inclusion in stub and secondary zones.";
-    };
-    slaves = mkOption {
-      type = types.listOf types.str;
-      description = "Addresses who may request zone transfers.";
-      default = [];
-    };
-    extraConfig = mkOption {
-      type = types.str;
-      description = "Extra zone config to be appended at the end of the zone section.";
-      default = "";
+  bindZoneCoerce = list: builtins.listToAttrs (lib.forEach list (zone: { name = zone.name; value = zone; }));
+
+  bindZoneOptions = { name, config, ... }: {
+    options = {
+      name = mkOption {
+        type = types.str;
+        default = name;
+        description = "Name of the zone.";
+      };
+      master = mkOption {
+        description = "Master=false means slave server";
+        type = types.bool;
+      };
+      file = mkOption {
+        type = types.either types.str types.path;
+        description = "Zone file resource records contain columns of data, separated by whitespace, that define the record.";
+      };
+      masters = mkOption {
+        type = types.listOf types.str;
+        description = "List of servers for inclusion in stub and secondary zones.";
+      };
+      slaves = mkOption {
+        type = types.listOf types.str;
+        description = "Addresses who may request zone transfers.";
+        default = [ ];
+      };
+      extraConfig = mkOption {
+        type = types.str;
+        description = "Extra zone config to be appended at the end of the zone section.";
+        default = "";
+      };
     };
   };
 
@@ -84,7 +89,7 @@ let
                 ${extraConfig}
               };
             '')
-          cfg.zones }
+          (attrValues cfg.zones) }
     '';
 
 in
@@ -100,7 +105,7 @@ in
       enable = mkEnableOption "BIND domain name server";
 
       cacheNetworks = mkOption {
-        default = ["127.0.0.0/24"];
+        default = [ "127.0.0.0/24" ];
         type = types.listOf types.str;
         description = "
           What networks are allowed to use us as a resolver.  Note
@@ -112,7 +117,7 @@ in
       };
 
       blockedNetworks = mkOption {
-        default = [];
+        default = [ ];
         type = types.listOf types.str;
         description = "
           What networks are just blocked.
@@ -136,7 +141,7 @@ in
       };
 
       listenOn = mkOption {
-        default = ["any"];
+        default = [ "any" ];
         type = types.listOf types.str;
         description = "
           Interfaces to listen on.
@@ -144,7 +149,7 @@ in
       };
 
       listenOnIpv6 = mkOption {
-        default = ["any"];
+        default = [ "any" ];
         type = types.listOf types.str;
         description = "
           Ipv6 interfaces to listen on.
@@ -152,19 +157,20 @@ in
       };
 
       zones = mkOption {
-        default = [];
-        type = types.listOf (types.submodule [ { options = bindZoneOptions; } ]);
+        default = [ ];
+        type = with types; coercedTo (listOf attrs) bindZoneCoerce (attrsOf (types.submodule bindZoneOptions));
         description = "
           List of zones we claim authority over.
         ";
-        example = [{
-          name = "example.com";
-          master = false;
-          file = "/var/dns/example.com";
-          masters = ["192.168.0.1"];
-          slaves = [];
-          extraConfig = "";
-        }];
+        example = {
+          "example.com" = {
+            master = false;
+            file = "/var/dns/example.com";
+            masters = [ "192.168.0.1" ];
+            slaves = [ ];
+            extraConfig = "";
+          };
+        };
       };
 
       extraConfig = mkOption {
@@ -206,7 +212,8 @@ in
     networking.resolvconf.useLocalResolver = mkDefault true;
 
     users.users.${bindUser} =
-      { uid = config.ids.uids.bind;
+      {
+        uid = config.ids.uids.bind;
         description = "BIND daemon user";
       };
 
@@ -226,9 +233,9 @@ in
       '';
 
       serviceConfig = {
-        ExecStart  = "${pkgs.bind.out}/sbin/named -u ${bindUser} ${optionalString cfg.ipv4Only "-4"} -c ${cfg.configFile} -f";
+        ExecStart = "${pkgs.bind.out}/sbin/named -u ${bindUser} ${optionalString cfg.ipv4Only "-4"} -c ${cfg.configFile} -f";
         ExecReload = "${pkgs.bind.out}/sbin/rndc -k '/etc/bind/rndc.key' reload";
-        ExecStop   = "${pkgs.bind.out}/sbin/rndc -k '/etc/bind/rndc.key' stop";
+        ExecStop = "${pkgs.bind.out}/sbin/rndc -k '/etc/bind/rndc.key' stop";
       };
 
       unitConfig.Documentation = "man:named(8)";
diff --git a/nixpkgs/nixos/modules/services/networking/cjdns.nix b/nixpkgs/nixos/modules/services/networking/cjdns.nix
index e9a0e5af1a47..f1a504b3e3f4 100644
--- a/nixpkgs/nixos/modules/services/networking/cjdns.nix
+++ b/nixpkgs/nixos/modules/services/networking/cjdns.nix
@@ -12,8 +12,18 @@ let
   { ... }:
   { options =
     { password = mkOption {
-      type = types.str;
-      description = "Authorized password to the opposite end of the tunnel.";
+        type = types.str;
+        description = "Authorized password to the opposite end of the tunnel.";
+      };
+      login = mkOption {
+        default = "";
+        type = types.str;
+        description = "(optional) name your peer has for you";
+      };
+      peerName = mkOption {
+        default = "";
+        type = types.str;
+        description = "(optional) human-readable name for peer";
       };
       publicKey = mkOption {
         type = types.str;
diff --git a/nixpkgs/nixos/modules/services/networking/croc.nix b/nixpkgs/nixos/modules/services/networking/croc.nix
index b218fab2196d..9466adf71d8c 100644
--- a/nixpkgs/nixos/modules/services/networking/croc.nix
+++ b/nixpkgs/nixos/modules/services/networking/croc.nix
@@ -72,9 +72,7 @@ in
         RuntimeDirectoryMode = "700";
         SystemCallFilter = [
           "@system-service"
-          "~@aio" "~@chown" "~@keyring" "~@memlock"
-          "~@privileged" "~@resources" "~@setuid"
-          "~@sync" "~@timer"
+          "~@aio" "~@keyring" "~@memlock" "~@privileged" "~@resources" "~@setuid" "~@sync" "~@timer"
         ];
         SystemCallArchitectures = "native";
         SystemCallErrorNumber = "EPERM";
diff --git a/nixpkgs/nixos/modules/services/networking/gale.nix b/nixpkgs/nixos/modules/services/networking/gale.nix
deleted file mode 100644
index cb954fd836bc..000000000000
--- a/nixpkgs/nixos/modules/services/networking/gale.nix
+++ /dev/null
@@ -1,181 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.gale;
-  # we convert the path to a string to avoid it being copied to the nix store,
-  # otherwise users could read the private key as all files in the store are
-  # world-readable
-  keyPath = toString cfg.keyPath;
-  # ...but we refer to the pubkey file using a path so that we can ensure the
-  # config gets rebuilt if the public key changes (we can assume the private key
-  # will never change without the public key having changed)
-  gpubFile = cfg.keyPath + "/${cfg.domain}.gpub";
-  home = "/var/lib/gale";
-  keysPrepared = cfg.keyPath != null && lib.pathExists cfg.keyPath;
-in
-{
-  options = {
-    services.gale = {
-      enable = mkEnableOption "the Gale messaging daemon";
-
-      user = mkOption {
-        default = "gale";
-        type = types.str;
-        description = "Username for the Gale daemon.";
-      };
-
-      group = mkOption {
-        default = "gale";
-        type = types.str;
-        description = "Group name for the Gale daemon.";
-      };
-
-      setuidWrapper = mkOption {
-        default = null;
-        description = "Configuration for the Gale gksign setuid wrapper.";
-      };
-
-      domain = mkOption {
-        default = "";
-        type = types.str;
-        description = "Domain name for the Gale system.";
-      };
-
-      keyPath = mkOption {
-        default = null;
-        type = types.nullOr types.path;
-        description = ''
-          Directory containing the key pair for this Gale domain.  The expected
-          filename will be taken from the domain option with ".gpri" and ".gpub"
-          appended.
-        '';
-      };
-
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = ''
-          Additional text to be added to <filename>/etc/gale/conf</filename>.
-        '';
-      };
-    };
-  };
-
-  config = mkMerge [
-    (mkIf cfg.enable {
-       assertions = [{
-         assertion = cfg.domain != "";
-         message = "A domain must be set for Gale.";
-       }];
-
-       warnings = mkIf (!keysPrepared) [
-         "You must run gale-install in order to generate a domain key."
-       ];
-
-       system.activationScripts.gale = mkIf cfg.enable (
-         stringAfter [ "users" "groups" ] ''
-           chmod 755 ${home}
-           mkdir -m 0777 -p ${home}/auth/cache
-           mkdir -m 1777 -p ${home}/auth/local # GALE_DOMAIN.gpub
-           mkdir -m 0700 -p ${home}/auth/private # ROOT.gpub
-           mkdir -m 0755 -p ${home}/auth/trusted # ROOT
-           mkdir -m 0700 -p ${home}/.gale
-           mkdir -m 0700 -p ${home}/.gale/auth
-           mkdir -m 0700 -p ${home}/.gale/auth/private # GALE_DOMAIN.gpri
-
-           ln -sf ${pkgs.gale}/etc/gale/auth/trusted/ROOT "${home}/auth/trusted/ROOT"
-           chown ${cfg.user}:${cfg.group} ${home} ${home}/auth ${home}/auth/*
-           chown ${cfg.user}:${cfg.group} ${home}/.gale ${home}/.gale/auth ${home}/.gale/auth/private
-         ''
-       );
-
-       environment = {
-         etc = {
-           "gale/auth".source = home + "/auth"; # symlink /var/lib/gale/auth
-           "gale/conf".text = ''
-             GALE_USER ${cfg.user}
-             GALE_DOMAIN ${cfg.domain}
-             ${cfg.extraConfig}
-           '';
-         };
-
-         systemPackages = [ pkgs.gale ];
-       };
-
-       users.users.${cfg.user} = {
-         description = "Gale daemon";
-         uid = config.ids.uids.gale;
-         group = cfg.group;
-         home = home;
-         createHome = true;
-       };
-
-       users.groups = [{
-         name = cfg.group;
-         gid = config.ids.gids.gale;
-       }];
-    })
-    (mkIf (cfg.enable && keysPrepared) {
-       assertions = [
-         {
-           assertion = cfg.keyPath != null
-                    && lib.pathExists (cfg.keyPath + "/${cfg.domain}.gpub");
-           message = "Couldn't find a Gale public key for ${cfg.domain}.";
-         }
-         {
-           assertion = cfg.keyPath != null
-                    && lib.pathExists (cfg.keyPath + "/${cfg.domain}.gpri");
-           message = "Couldn't find a Gale private key for ${cfg.domain}.";
-         }
-       ];
-
-       services.gale.setuidWrapper = {
-         program = "gksign";
-         source = "${pkgs.gale}/bin/gksign";
-         owner = cfg.user;
-         group = cfg.group;
-         setuid = true;
-         setgid = false;
-       };
-
-       security.wrappers.gksign = cfg.setuidWrapper;
-
-       systemd.services.gale-galed = {
-         description = "Gale messaging daemon";
-         wantedBy = [ "multi-user.target" ];
-         wants = [ "gale-gdomain.service" ];
-         after = [ "network.target" ];
-
-         preStart = ''
-           install -m 0640 -o ${cfg.user} -g ${cfg.group} ${keyPath}/${cfg.domain}.gpri "${home}/.gale/auth/private/"
-           install -m 0644 -o ${cfg.user} -g ${cfg.group} ${gpubFile} "${home}/.gale/auth/private/${cfg.domain}.gpub"
-           install -m 0644 -o ${cfg.user} -g ${cfg.group} ${gpubFile} "${home}/auth/local/${cfg.domain}.gpub"
-         '';
-
-         serviceConfig = {
-           Type = "forking";
-           ExecStart = "@${pkgs.gale}/bin/galed galed";
-           User = cfg.user;
-           Group = cfg.group;
-           PermissionsStartOnly = true;
-         };
-       };
-
-       systemd.services.gale-gdomain = {
-         description = "Gale AKD daemon";
-         wantedBy = [ "multi-user.target" ];
-         requires = [ "gale-galed.service" ];
-         after = [ "gale-galed.service" ];
-
-         serviceConfig = {
-           Type = "forking";
-           ExecStart = "@${pkgs.gale}/bin/gdomain gdomain";
-           User = cfg.user;
-           Group = cfg.group;
-         };
-       };
-    })
-  ];
-}
diff --git a/nixpkgs/nixos/modules/services/networking/ghostunnel.nix b/nixpkgs/nixos/modules/services/networking/ghostunnel.nix
new file mode 100644
index 000000000000..58a51df6cca2
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/ghostunnel.nix
@@ -0,0 +1,242 @@
+{ config, lib, pkgs, ... }:
+let
+  inherit (lib)
+    attrValues
+    concatMap
+    concatStringsSep
+    escapeShellArg
+    literalExample
+    mapAttrs'
+    mkDefault
+    mkEnableOption
+    mkIf
+    mkOption
+    nameValuePair
+    optional
+    types
+    ;
+
+  mainCfg = config.services.ghostunnel;
+
+  module = { config, name, ... }:
+    {
+      options = {
+
+        listen = mkOption {
+          description = ''
+            Address and port to listen on (can be HOST:PORT, unix:PATH).
+          '';
+          type = types.str;
+        };
+
+        target = mkOption {
+          description = ''
+            Address to forward connections to (can be HOST:PORT or unix:PATH).
+          '';
+          type = types.str;
+        };
+
+        keystore = mkOption {
+          description = ''
+            Path to keystore (combined PEM with cert/key, or PKCS12 keystore).
+
+            NB: storepass is not supported because it would expose credentials via <code>/proc/*/cmdline</code>.
+
+            Specify this or <code>cert</code> and <code>key</code>.
+          '';
+          type = types.nullOr types.str;
+          default = null;
+        };
+
+        cert = mkOption {
+          description = ''
+            Path to certificate (PEM with certificate chain).
+
+            Not required if <code>keystore</code> is set.
+          '';
+          type = types.nullOr types.str;
+          default = null;
+        };
+
+        key = mkOption {
+          description = ''
+            Path to certificate private key (PEM with private key).
+
+            Not required if <code>keystore</code> is set.
+          '';
+          type = types.nullOr types.str;
+          default = null;
+        };
+
+        cacert = mkOption {
+          description = ''
+            Path to CA bundle file (PEM/X509). Uses system trust store if <code>null</code>.
+          '';
+          type = types.nullOr types.str;
+        };
+
+        disableAuthentication = mkOption {
+          description = ''
+            Disable client authentication, no client certificate will be required.
+          '';
+          type = types.bool;
+          default = false;
+        };
+
+        allowAll = mkOption {
+          description = ''
+            If true, allow all clients, do not check client cert subject.
+          '';
+          type = types.bool;
+          default = false;
+        };
+
+        allowCN = mkOption {
+          description = ''
+            Allow client if common name appears in the list.
+          '';
+          type = types.listOf types.str;
+          default = [];
+        };
+
+        allowOU = mkOption {
+          description = ''
+            Allow client if organizational unit name appears in the list.
+          '';
+          type = types.listOf types.str;
+          default = [];
+        };
+
+        allowDNS = mkOption {
+          description = ''
+            Allow client if DNS subject alternative name appears in the list.
+          '';
+          type = types.listOf types.str;
+          default = [];
+        };
+
+        allowURI = mkOption {
+          description = ''
+            Allow client if URI subject alternative name appears in the list.
+          '';
+          type = types.listOf types.str;
+          default = [];
+        };
+
+        extraArguments = mkOption {
+          description = "Extra arguments to pass to <code>ghostunnel server</code>";
+          type = types.separatedString " ";
+          default = "";
+        };
+
+        unsafeTarget = mkOption {
+          description = ''
+            If set, does not limit target to localhost, 127.0.0.1, [::1], or UNIX sockets.
+
+            This is meant to protect against accidental unencrypted traffic on
+            untrusted networks.
+          '';
+          type = types.bool;
+          default = false;
+        };
+
+        # Definitions to apply at the root of the NixOS configuration.
+        atRoot = mkOption {
+          internal = true;
+        };
+      };
+
+      # Clients should not be authenticated with the public root certificates
+      # (afaict, it doesn't make sense), so we only provide that default when
+      # client cert auth is disabled.
+      config.cacert = mkIf config.disableAuthentication (mkDefault null);
+
+      config.atRoot = {
+        assertions = [
+          { message = ''
+              services.ghostunnel.servers.${name}: At least one access control flag is required.
+              Set at least one of:
+                - services.ghostunnel.servers.${name}.disableAuthentication
+                - services.ghostunnel.servers.${name}.allowAll
+                - services.ghostunnel.servers.${name}.allowCN
+                - services.ghostunnel.servers.${name}.allowOU
+                - services.ghostunnel.servers.${name}.allowDNS
+                - services.ghostunnel.servers.${name}.allowURI
+            '';
+            assertion = config.disableAuthentication
+              || config.allowAll
+              || config.allowCN != []
+              || config.allowOU != []
+              || config.allowDNS != []
+              || config.allowURI != []
+              ;
+          }
+        ];
+
+        systemd.services."ghostunnel-server-${name}" = {
+          after = [ "network.target" ];
+          wants = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+          serviceConfig = {
+            Restart = "always";
+            AmbientCapabilities = ["CAP_NET_BIND_SERVICE"];
+            DynamicUser = true;
+            LoadCredential = optional (config.keystore != null) "keystore:${config.keystore}"
+              ++ optional (config.cert != null) "cert:${config.cert}"
+              ++ optional (config.key != null) "key:${config.key}"
+              ++ optional (config.cacert != null) "cacert:${config.cacert}";
+           };
+          script = concatStringsSep " " (
+            [ "${mainCfg.package}/bin/ghostunnel" ]
+            ++ optional (config.keystore != null) "--keystore=$CREDENTIALS_DIRECTORY/keystore"
+            ++ optional (config.cert != null) "--cert=$CREDENTIALS_DIRECTORY/cert"
+            ++ optional (config.key != null) "--key=$CREDENTIALS_DIRECTORY/key"
+            ++ optional (config.cacert != null) "--cacert=$CREDENTIALS_DIRECTORY/cacert"
+            ++ [
+              "server"
+              "--listen ${config.listen}"
+              "--target ${config.target}"
+            ] ++ optional config.allowAll "--allow-all"
+              ++ map (v: "--allow-cn=${escapeShellArg v}") config.allowCN
+              ++ map (v: "--allow-ou=${escapeShellArg v}") config.allowOU
+              ++ map (v: "--allow-dns=${escapeShellArg v}") config.allowDNS
+              ++ map (v: "--allow-uri=${escapeShellArg v}") config.allowURI
+              ++ optional config.disableAuthentication "--disable-authentication"
+              ++ optional config.unsafeTarget "--unsafe-target"
+              ++ [ config.extraArguments ]
+          );
+        };
+      };
+    };
+
+in
+{
+
+  options = {
+    services.ghostunnel.enable = mkEnableOption "ghostunnel";
+
+    services.ghostunnel.package = mkOption {
+      description = "The ghostunnel package to use.";
+      type = types.package;
+      default = pkgs.ghostunnel;
+      defaultText = literalExample ''pkgs.ghostunnel'';
+    };
+
+    services.ghostunnel.servers = mkOption {
+      description = ''
+        Server mode ghostunnels (TLS listener -> plain TCP/UNIX target)
+      '';
+      type = types.attrsOf (types.submodule module);
+      default = {};
+    };
+  };
+
+  config = mkIf mainCfg.enable {
+    assertions = lib.mkMerge (map (v: v.atRoot.assertions) (attrValues mainCfg.servers));
+    systemd = lib.mkMerge (map (v: v.atRoot.systemd) (attrValues mainCfg.servers));
+  };
+
+  meta.maintainers = with lib.maintainers; [
+    roberth
+  ];
+}
diff --git a/nixpkgs/nixos/modules/services/networking/hans.nix b/nixpkgs/nixos/modules/services/networking/hans.nix
index 8334dc68d623..84147db00f61 100644
--- a/nixpkgs/nixos/modules/services/networking/hans.nix
+++ b/nixpkgs/nixos/modules/services/networking/hans.nix
@@ -141,5 +141,5 @@ in
     };
   };
 
-  meta.maintainers = with maintainers; [ gnidorah ];
+  meta.maintainers = with maintainers; [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/networking/hylafax/faxq-wait.sh b/nixpkgs/nixos/modules/services/networking/hylafax/faxq-wait.sh
index 8c39e9d20c18..1826aa30e627 100755
--- a/nixpkgs/nixos/modules/services/networking/hylafax/faxq-wait.sh
+++ b/nixpkgs/nixos/modules/services/networking/hylafax/faxq-wait.sh
@@ -1,4 +1,4 @@
-#! @shell@ -e
+#! @runtimeShell@ -e
 
 # skip this if there are no modems at all
 if ! stat -t "@spoolAreaPath@"/etc/config.* >/dev/null 2>&1
diff --git a/nixpkgs/nixos/modules/services/networking/hylafax/options.nix b/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
index 7f18c0d39ab4..74960e69b9ac 100644
--- a/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
+++ b/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
@@ -3,7 +3,7 @@
 let
 
   inherit (lib.options) literalExample mkEnableOption mkOption;
-  inherit (lib.types) bool enum int lines attrsOf nullOr path str submodule;
+  inherit (lib.types) bool enum ints lines attrsOf nullOr path str submodule;
   inherit (lib.modules) mkDefault mkIf mkMerge;
 
   commonDescr = ''
@@ -18,7 +18,6 @@ let
   '';
 
   str1 = lib.types.addCheck str (s: s!="");  # non-empty string
-  int1 = lib.types.addCheck int (i: i>0);  # positive integer
 
   configAttrType =
     # Options in HylaFAX configuration files can be
@@ -27,7 +26,7 @@ let
     # This type definition resolves all
     # those types into a list of strings.
     let
-      inherit (lib.types) attrsOf coercedTo listOf;
+      inherit (lib.types) attrsOf coercedTo int listOf;
       innerType = coercedTo bool (x: if x then "Yes" else "No")
         (coercedTo int (toString) str);
     in
@@ -290,7 +289,7 @@ in
       '';
     };
     faxcron.infoDays = mkOption {
-      type = int1;
+      type = ints.positive;
       default = 30;
       description = ''
         Set the expiration time for data in the
@@ -298,7 +297,7 @@ in
       '';
     };
     faxcron.logDays = mkOption {
-      type = int1;
+      type = ints.positive;
       default = 30;
       description = ''
         Set the expiration time for
@@ -306,7 +305,7 @@ in
       '';
     };
     faxcron.rcvDays = mkOption {
-      type = int1;
+      type = ints.positive;
       default = 7;
       description = ''
         Set the expiration time for files in
@@ -343,7 +342,7 @@ in
       '';
     };
     faxqclean.doneqMinutes = mkOption {
-      type = int1;
+      type = ints.positive;
       default = 15;
       example = literalExample "24*60";
       description = ''
@@ -353,7 +352,7 @@ in
       '';
     };
     faxqclean.docqMinutes = mkOption {
-      type = int1;
+      type = ints.positive;
       default = 60;
       example = literalExample "24*60";
       description = ''
diff --git a/nixpkgs/nixos/modules/services/networking/hylafax/spool.sh b/nixpkgs/nixos/modules/services/networking/hylafax/spool.sh
index 31e930e8c597..8b723df77df9 100755
--- a/nixpkgs/nixos/modules/services/networking/hylafax/spool.sh
+++ b/nixpkgs/nixos/modules/services/networking/hylafax/spool.sh
@@ -1,4 +1,4 @@
-#! @shell@ -e
+#! @runtimeShell@ -e
 
 # The following lines create/update the HylaFAX spool directory:
 # Subdirectories/files with persistent data are kept,
@@ -80,7 +80,7 @@ touch clientlog faxcron.lastrun xferfaxlog
 chown @faxuser@:@faxgroup@ clientlog faxcron.lastrun xferfaxlog
 
 # create symlinks for frozen directories/files
-lnsym --target-directory=. "@hylafax@"/spool/{COPYRIGHT,bin,config}
+lnsym --target-directory=. "@hylafaxplus@"/spool/{COPYRIGHT,bin,config}
 
 # create empty temporary directories
 update --mode=0700 -d client dev status
@@ -93,7 +93,7 @@ install -d "@spoolAreaPath@/etc"
 cd "@spoolAreaPath@/etc"
 
 # create symlinks to all files in template's etc
-lnsym --target-directory=. "@hylafax@/spool/etc"/*
+lnsym --target-directory=. "@hylafaxplus@/spool/etc"/*
 
 # set LOCKDIR in setup.cache
 sed --regexp-extended 's|^(UUCP_LOCKDIR=).*$|\1'"'@lockPath@'|g" --in-place setup.cache
diff --git a/nixpkgs/nixos/modules/services/networking/hylafax/systemd.nix b/nixpkgs/nixos/modules/services/networking/hylafax/systemd.nix
index f63f7c97ad1c..4506bbbc5eb7 100644
--- a/nixpkgs/nixos/modules/services/networking/hylafax/systemd.nix
+++ b/nixpkgs/nixos/modules/services/networking/hylafax/systemd.nix
@@ -13,11 +13,10 @@ let
     # creates hylafax config file,
     # makes sure "Include" is listed *first*
     let
-      mkLines = conf:
-        (lib.concatLists
-        (lib.flip lib.mapAttrsToList conf
-        (k: map (v: "${k}: ${v}")
-      )));
+      mkLines = lib.flip lib.pipe [
+        (lib.mapAttrsToList (key: map (val: "${key}: ${val}")))
+        lib.concatLists
+      ];
       include = mkLines { Include = conf.Include or []; };
       other = mkLines ( conf // { Include = []; } );
     in
@@ -48,13 +47,12 @@ let
     name = "hylafax-setup-spool.sh";
     src = ./spool.sh;
     isExecutable = true;
-    inherit (pkgs.stdenv) shell;
-    hylafax = pkgs.hylafaxplus;
     faxuser = "uucp";
     faxgroup = "uucp";
     lockPath = "/var/lock";
     inherit globalConfigPath modemConfigPath;
     inherit (cfg) sendmailPath spoolAreaPath userAccessFile;
+    inherit (pkgs) hylafaxplus runtimeShell;
   };
 
   waitFaxqScript = pkgs.substituteAll {
@@ -64,8 +62,8 @@ let
     src = ./faxq-wait.sh;
     isExecutable = true;
     timeoutSec = toString 10;
-    inherit (pkgs.stdenv) shell;
     inherit (cfg) spoolAreaPath;
+    inherit (pkgs) runtimeShell;
   };
 
   sockets.hylafax-hfaxd = {
@@ -108,8 +106,10 @@ let
         PrivateDevices = true;  # breaks /dev/tty...
         PrivateNetwork = true;
         PrivateTmp = true;
+        #ProtectClock = true;  # breaks /dev/tty... (why?)
         ProtectControlGroups = true;
         #ProtectHome = true;  # breaks custom spool dirs
+        ProtectKernelLogs = true;
         ProtectKernelModules = true;
         ProtectKernelTunables = true;
         #ProtectSystem = "strict";  # breaks custom spool dirs
diff --git a/nixpkgs/nixos/modules/services/networking/kresd.nix b/nixpkgs/nixos/modules/services/networking/kresd.nix
index 3f9be6172f1b..6882a315f616 100644
--- a/nixpkgs/nixos/modules/services/networking/kresd.nix
+++ b/nixpkgs/nixos/modules/services/networking/kresd.nix
@@ -29,8 +29,6 @@ let
     + concatMapStrings (mkListen "doh2") cfg.listenDoH
     + cfg.extraConfig
   );
-
-  package = pkgs.knot-resolver;
 in {
   meta.maintainers = [ maintainers.vcunat /* upstream developer */ ];
 
@@ -58,6 +56,15 @@ in {
         and give commands interactively to kresd@1.service.
       '';
     };
+    package = mkOption {
+      type = types.package;
+      description = "
+        knot-resolver package to use.
+      ";
+      default = pkgs.knot-resolver;
+      defaultText = "pkgs.knot-resolver";
+      example = literalExample "pkgs.knot-resolver.override { extraFeatures = true; }";
+    };
     extraConfig = mkOption {
       type = types.lines;
       default = "";
@@ -108,6 +115,8 @@ in {
   config = mkIf cfg.enable {
     environment.etc."knot-resolver/kresd.conf".source = configFile; # not required
 
+    networking.resolvconf.useLocalResolver = mkDefault true;
+
     users.users.knot-resolver =
       { isSystemUser = true;
         group = "knot-resolver";
@@ -115,7 +124,7 @@ in {
       };
     users.groups.knot-resolver.gid = null;
 
-    systemd.packages = [ package ]; # the units are patched inside the package a bit
+    systemd.packages = [ cfg.package ]; # the units are patched inside the package a bit
 
     systemd.targets.kresd = { # configure units started by default
       wantedBy = [ "multi-user.target" ];
@@ -123,8 +132,8 @@ in {
         ++ map (i: "kresd@${toString i}.service") (range 1 cfg.instances);
     };
     systemd.services."kresd@".serviceConfig = {
-      ExecStart = "${package}/bin/kresd --noninteractive "
-        + "-c ${package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}";
+      ExecStart = "${cfg.package}/bin/kresd --noninteractive "
+        + "-c ${cfg.package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}";
       # Ensure /run/knot-resolver exists
       RuntimeDirectory = "knot-resolver";
       RuntimeDirectoryMode = "0770";
diff --git a/nixpkgs/nixos/modules/services/networking/libreswan.nix b/nixpkgs/nixos/modules/services/networking/libreswan.nix
index 81bc4e1cf95c..1f0423ac3d84 100644
--- a/nixpkgs/nixos/modules/services/networking/libreswan.nix
+++ b/nixpkgs/nixos/modules/services/networking/libreswan.nix
@@ -9,21 +9,22 @@ let
   libexec = "${pkgs.libreswan}/libexec/ipsec";
   ipsec = "${pkgs.libreswan}/sbin/ipsec";
 
-  trim = chars: str: let
-      nonchars = filter (x : !(elem x.value chars))
-                  (imap0 (i: v: {ind = i; value = v;}) (stringToCharacters str));
-    in
-      if length nonchars == 0 then ""
-      else substring (head nonchars).ind (add 1 (sub (last nonchars).ind (head nonchars).ind)) str;
+  trim = chars: str:
+  let
+    nonchars = filter (x : !(elem x.value chars))
+               (imap0 (i: v: {ind = i; value = v;}) (stringToCharacters str));
+  in
+    if length nonchars == 0 then ""
+    else substring (head nonchars).ind (add 1 (sub (last nonchars).ind (head nonchars).ind)) str;
   indent = str: concatStrings (concatMap (s: ["  " (trim [" " "\t"] s) "\n"]) (splitString "\n" str));
   configText = indent (toString cfg.configSetup);
   connectionText = concatStrings (mapAttrsToList (n: v:
     ''
       conn ${n}
       ${indent v}
-
     '') cfg.connections);
-  configFile = pkgs.writeText "ipsec.conf"
+
+  configFile = pkgs.writeText "ipsec-nixos.conf"
     ''
       config setup
       ${configText}
@@ -31,6 +32,11 @@ let
       ${connectionText}
     '';
 
+  policyFiles = mapAttrs' (name: text:
+    { name = "ipsec.d/policies/${name}";
+      value.source = pkgs.writeText "ipsec-policy-${name}" text;
+    }) cfg.policies;
+
 in
 
 {
@@ -41,41 +47,71 @@ in
 
     services.libreswan = {
 
-      enable = mkEnableOption "libreswan ipsec service";
+      enable = mkEnableOption "Libreswan IPsec service";
 
       configSetup = mkOption {
         type = types.lines;
         default = ''
             protostack=netkey
-            nat_traversal=yes
             virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10
         '';
         example = ''
             secretsfile=/root/ipsec.secrets
             protostack=netkey
-            nat_traversal=yes
             virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10
         '';
-        description = "Options to go in the 'config setup' section of the libreswan ipsec configuration";
+        description = "Options to go in the 'config setup' section of the Libreswan IPsec configuration";
       };
 
       connections = mkOption {
         type = types.attrsOf types.lines;
         default = {};
-        example = {
-          myconnection = ''
-            auto=add
-            left=%defaultroute
-            leftid=@user
-
-            right=my.vpn.com
-
-            ikev2=no
-            ikelifetime=8h
-          '';
-        };
-        description = "A set of connections to define for the libreswan ipsec service";
+        example = literalExample ''
+          { myconnection = '''
+              auto=add
+              left=%defaultroute
+              leftid=@user
+
+              right=my.vpn.com
+
+              ikev2=no
+              ikelifetime=8h
+            ''';
+          }
+        '';
+        description = "A set of connections to define for the Libreswan IPsec service";
+      };
+
+      policies = mkOption {
+        type = types.attrsOf types.lines;
+        default = {};
+        example = literalExample ''
+          { private-or-clear = '''
+              # Attempt opportunistic IPsec for the entire Internet
+              0.0.0.0/0
+              ::/0
+            ''';
+          }
+        '';
+        description = ''
+          A set of policies to apply to the IPsec connections.
+
+          <note><para>
+            The policy name must match the one of connection it needs to apply to.
+          </para></note>
+        '';
       };
+
+      disableRedirects = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to disable send and accept redirects for all nework interfaces.
+          See the Libreswan <link xlink:href="https://libreswan.org/wiki/FAQ#Why_is_it_recommended_to_disable_send_redirects_in_.2Fproc.2Fsys.2Fnet_.3F">
+          FAQ</link> page for why this is recommended.
+        '';
+      };
+
     };
 
   };
@@ -85,43 +121,38 @@ in
 
   config = mkIf cfg.enable {
 
+    # Install package, systemd units, etc.
     environment.systemPackages = [ pkgs.libreswan pkgs.iproute2 ];
+    systemd.packages = [ pkgs.libreswan ];
+    systemd.tmpfiles.packages = [ pkgs.libreswan ];
+
+    # Install configuration files
+    environment.etc = {
+      "ipsec.secrets".source = "${pkgs.libreswan}/etc/ipsec.secrets";
+      "ipsec.conf".source = "${pkgs.libreswan}/etc/ipsec.conf";
+      "ipsec.d/01-nixos.conf".source = configFile;
+    } // policyFiles;
+
+    # Create NSS database directory
+    systemd.tmpfiles.rules = [ "d /var/lib/ipsec/nss 755 root root -" ];
 
     systemd.services.ipsec = {
       description = "Internet Key Exchange (IKE) Protocol Daemon for IPsec";
-      path = [
-        "${pkgs.libreswan}"
-        "${pkgs.iproute2}"
-        "${pkgs.procps}"
-        "${pkgs.nssTools}"
-        "${pkgs.iptables}"
-        "${pkgs.nettools}"
-      ];
-
-      wants = [ "network-online.target" ];
-      after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
-
-      serviceConfig = {
-        Type = "simple";
-        Restart = "always";
-        EnvironmentFile = "-${pkgs.libreswan}/etc/sysconfig/pluto";
-        ExecStartPre = [
-          "${libexec}/addconn --config ${configFile} --checkconfig"
-          "${libexec}/_stackmanager start"
-          "${ipsec} --checknss"
-          "${ipsec} --checknflog"
-        ];
-        ExecStart = "${libexec}/pluto --config ${configFile} --nofork \$PLUTO_OPTIONS";
-        ExecStop = "${libexec}/whack --shutdown";
-        ExecStopPost = [
-          "${pkgs.iproute2}/bin/ip xfrm policy flush"
-          "${pkgs.iproute2}/bin/ip xfrm state flush"
-          "${ipsec} --stopnflog"
-        ];
-        ExecReload = "${libexec}/whack --listen";
-      };
-
+      restartTriggers = [ configFile ] ++ mapAttrsToList (n: v: v.source) policyFiles;
+      path = with pkgs; [
+        libreswan
+        iproute2
+        procps
+        nssTools
+        iptables
+        nettools
+      ];
+      preStart = optionalString cfg.disableRedirects ''
+        # Disable send/receive redirects
+        echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
+        echo 0 | tee /proc/sys/net/ipv{4,6}/conf/*/accept_redirects
+      '';
     };
 
   };
diff --git a/nixpkgs/nixos/modules/services/networking/monero.nix b/nixpkgs/nixos/modules/services/networking/monero.nix
index fde3293fc131..952d1d47ca67 100644
--- a/nixpkgs/nixos/modules/services/networking/monero.nix
+++ b/nixpkgs/nixos/modules/services/networking/monero.nix
@@ -4,7 +4,6 @@ with lib;
 
 let
   cfg     = config.services.monero;
-  dataDir = "/var/lib/monero";
 
   listToConf = option: list:
     concatMapStrings (value: "${option}=${value}\n") list;
@@ -53,11 +52,19 @@ in
 
       enable = mkEnableOption "Monero node daemon";
 
+      dataDir = mkOption {
+        type = types.str;
+        default = "/var/lib/monero";
+        description = ''
+          The directory where Monero stores its data files.
+        '';
+      };
+
       mining.enable = mkOption {
         type = types.bool;
         default = false;
         description = ''
-          Whether to mine moneroj.
+          Whether to mine monero.
         '';
       };
 
@@ -198,15 +205,14 @@ in
   config = mkIf cfg.enable {
 
     users.users.monero = {
-      uid  = config.ids.uids.monero;
+      isSystemUser = true;
+      group = "monero";
       description = "Monero daemon user";
-      home = dataDir;
+      home = cfg.dataDir;
       createHome = true;
     };
 
-    users.groups.monero = {
-      gid = config.ids.gids.monero;
-    };
+    users.groups.monero = { };
 
     systemd.services.monero = {
       description = "monero daemon";
diff --git a/nixpkgs/nixos/modules/services/networking/mosquitto.nix b/nixpkgs/nixos/modules/services/networking/mosquitto.nix
index 10b49d9b2206..8e814ffd0b9b 100644
--- a/nixpkgs/nixos/modules/services/networking/mosquitto.nix
+++ b/nixpkgs/nixos/modules/services/networking/mosquitto.nix
@@ -20,8 +20,7 @@ let
     acl_file ${aclFile}
     persistence true
     allow_anonymous ${boolToString cfg.allowAnonymous}
-    bind_address ${cfg.host}
-    port ${toString cfg.port}
+    listener ${toString cfg.port} ${cfg.host}
     ${passwordConf}
     ${listenerConf}
     ${cfg.extraConf}
@@ -233,15 +232,50 @@ in
         ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${mosquittoConf}";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
 
-        ProtectSystem = "strict";
-        ProtectHome = true;
+        # Hardening
+        CapabilityBoundingSet = "";
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
         PrivateDevices = true;
         PrivateTmp = true;
-        ReadWritePaths = "${cfg.dataDir}";
+        PrivateUsers = true;
+        ProtectClock = true;
         ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
         ProtectKernelModules = true;
         ProtectKernelTunables = true;
-        NoNewPrivileges = true;
+        ProtectProc = "invisible";
+        ProcSubset = "pid";
+        ProtectSystem = "strict";
+        ReadWritePaths = [
+          cfg.dataDir
+          "/tmp"  # mosquitto_passwd creates files in /tmp before moving them
+        ];
+        ReadOnlyPaths = with cfg.ssl; lib.optionals (enable) [
+          certfile
+          keyfile
+          cafile
+        ];
+        RemoveIPC = true;
+        RestrictAddressFamilies = [
+          "AF_UNIX"  # for sd_notify() call
+          "AF_INET"
+          "AF_INET6"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged"
+          "~@resources"
+        ];
+        UMask = "0077";
       };
       preStart = ''
         rm -f ${cfg.dataDir}/passwd
diff --git a/nixpkgs/nixos/modules/services/networking/networkmanager.nix b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
index 135f29be58c0..064018057cdb 100644
--- a/nixpkgs/nixos/modules/services/networking/networkmanager.nix
+++ b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
@@ -22,36 +22,51 @@ let
 
   enableIwd = cfg.wifi.backend == "iwd";
 
-  configFile = pkgs.writeText "NetworkManager.conf" ''
-    [main]
-    plugins=keyfile
-    dhcp=${cfg.dhcp}
-    dns=${cfg.dns}
-    # If resolvconf is disabled that means that resolv.conf is managed by some other module.
-    rc-manager=${if config.networking.resolvconf.enable then "resolvconf" else "unmanaged"}
-
-    [keyfile]
-    ${optionalString (cfg.unmanaged != [])
-      ''unmanaged-devices=${lib.concatStringsSep ";" cfg.unmanaged}''}
-
-    [logging]
-    level=${cfg.logLevel}
-    audit=${lib.boolToString config.security.audit.enable}
-
-    [connection]
-    ipv6.ip6-privacy=2
-    ethernet.cloned-mac-address=${cfg.ethernet.macAddress}
-    wifi.cloned-mac-address=${cfg.wifi.macAddress}
-    ${optionalString (cfg.wifi.powersave != null)
-      ''wifi.powersave=${if cfg.wifi.powersave then "3" else "2"}''}
-
-    [device]
-    wifi.scan-rand-mac-address=${if cfg.wifi.scanRandMacAddress then "yes" else "no"}
-    wifi.backend=${cfg.wifi.backend}
-
-    ${cfg.extraConfig}
+  mkValue = v:
+    if v == true then "yes"
+    else if v == false then "no"
+    else if lib.isInt v then toString v
+    else v;
+
+  mkSection = name: attrs: ''
+    [${name}]
+    ${
+      lib.concatStringsSep "\n"
+        (lib.mapAttrsToList
+          (k: v: "${k}=${mkValue v}")
+          (lib.filterAttrs
+            (k: v: v != null)
+            attrs))
+    }
   '';
 
+  configFile = pkgs.writeText "NetworkManager.conf" (lib.concatStringsSep "\n" [
+    (mkSection "main" {
+      plugins = "keyfile";
+      dhcp = cfg.dhcp;
+      dns = cfg.dns;
+      # If resolvconf is disabled that means that resolv.conf is managed by some other module.
+      rc-manager =
+        if config.networking.resolvconf.enable then "resolvconf"
+        else "unmanaged";
+    })
+    (mkSection "keyfile" {
+      unmanaged-devices =
+        if cfg.unmanaged == [] then null
+        else lib.concatStringsSep ";" cfg.unmanaged;
+    })
+    (mkSection "logging" {
+      audit = config.security.audit.enable;
+      level = cfg.logLevel;
+    })
+    (mkSection "connection" cfg.connectionConfig)
+    (mkSection "device" {
+      "wifi.scan-rand-mac-address" = cfg.wifi.scanRandMacAddress;
+      "wifi.backend" = cfg.wifi.backend;
+    })
+    cfg.extraConfig
+  ]);
+
   /*
     [network-manager]
     Identity=unix-group:networkmanager
@@ -154,6 +169,28 @@ in {
         '';
       };
 
+      connectionConfig = mkOption {
+        type = with types; attrsOf (nullOr (oneOf [
+          bool
+          int
+          str
+        ]));
+        default = {};
+        description = ''
+          Configuration for the [connection] section of NetworkManager.conf.
+          Refer to
+          <link xlink:href="https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html">
+            https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#id-1.2.3.11
+          </link>
+          or
+          <citerefentry>
+            <refentrytitle>NetworkManager.conf</refentrytitle>
+            <manvolnum>5</manvolnum>
+          </citerefentry>
+          for more information.
+        '';
+      };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
@@ -482,6 +519,18 @@ in {
       (mkIf enableIwd {
         wireless.iwd.enable = true;
       })
+
+      {
+        networkmanager.connectionConfig = {
+          "ipv6.ip6-privacy" = 2;
+          "ethernet.cloned-mac-address" = cfg.ethernet.macAddress;
+          "wifi.cloned-mac-address" = cfg.wifi.macAddress;
+          "wifi.powersave" =
+            if cfg.wifi.powersave == null then null
+            else if cfg.wifi.powersave then 3
+            else 2;
+        };
+      }
     ];
 
     boot.kernelModules = [ "ctr" ];
diff --git a/nixpkgs/nixos/modules/services/networking/nsd.nix b/nixpkgs/nixos/modules/services/networking/nsd.nix
index f33c350a257a..2ac0a8c7922e 100644
--- a/nixpkgs/nixos/modules/services/networking/nsd.nix
+++ b/nixpkgs/nixos/modules/services/networking/nsd.nix
@@ -20,6 +20,15 @@ let
 
   mkZoneFileName = name: if name == "." then "root" else name;
 
+  # replaces include: directives for keys with fake keys for nsd-checkconf
+  injectFakeKeys = keys: concatStrings
+    (mapAttrsToList
+      (keyName: keyOptions: ''
+        fakeKey="$(${pkgs.bind}/bin/tsig-keygen -a ${escapeShellArgs [ keyOptions.algorithm keyName ]} | grep -oP "\s*secret \"\K.*(?=\";)")"
+        sed "s@^\s*include:\s*\"${stateDir}/private/${keyName}\"\$@secret: $fakeKey@" -i $out/nsd.conf
+      '')
+      keys);
+
   nsdEnv = pkgs.buildEnv {
     name = "nsd-env";
 
@@ -34,9 +43,9 @@ let
         echo "|- checking zone '$out/zones/$zoneFile'"
         ${nsdPkg}/sbin/nsd-checkzone "$zoneFile" "$zoneFile" || {
           if grep -q \\\\\\$ "$zoneFile"; then
-            echo zone "$zoneFile" contains escaped dollar signes \\\$
-            echo Escaping them is not needed any more. Please make shure \
-                 to unescape them where they prefix a variable name
+            echo zone "$zoneFile" contains escaped dollar signs \\\$
+            echo Escaping them is not needed any more. Please make sure \
+                 to unescape them where they prefix a variable name.
           fi
 
           exit 1
@@ -44,7 +53,14 @@ let
       done
 
       echo "checking configuration file"
+      # Save original config file including key references...
+      cp $out/nsd.conf{,.orig}
+      # ...inject mock keys into config
+      ${injectFakeKeys cfg.keys}
+      # ...do the checkconf
       ${nsdPkg}/sbin/nsd-checkconf $out/nsd.conf
+      # ... and restore original config file.
+      mv $out/nsd.conf{.orig,}
     '';
   };
 
diff --git a/nixpkgs/nixos/modules/services/networking/radicale.nix b/nixpkgs/nixos/modules/services/networking/radicale.nix
index 5af035fd59e0..8c632c319d3c 100644
--- a/nixpkgs/nixos/modules/services/networking/radicale.nix
+++ b/nixpkgs/nixos/modules/services/networking/radicale.nix
@@ -3,56 +3,103 @@
 with lib;
 
 let
-
   cfg = config.services.radicale;
 
-  confFile = pkgs.writeText "radicale.conf" cfg.config;
-
-  defaultPackage = if versionAtLeast config.system.stateVersion "20.09" then {
-    pkg = pkgs.radicale3;
-    text = "pkgs.radicale3";
-  } else if versionAtLeast config.system.stateVersion "17.09" then {
-    pkg = pkgs.radicale2;
-    text = "pkgs.radicale2";
-  } else {
-    pkg = pkgs.radicale1;
-    text = "pkgs.radicale1";
+  format = pkgs.formats.ini {
+    listToValue = concatMapStringsSep ", " (generators.mkValueStringDefault { });
   };
-in
 
-{
+  pkg = if isNull cfg.package then
+    pkgs.radicale
+  else
+    cfg.package;
+
+  confFile = if cfg.settings == { } then
+    pkgs.writeText "radicale.conf" cfg.config
+  else
+    format.generate "radicale.conf" cfg.settings;
+
+  rightsFile = format.generate "radicale.rights" cfg.rights;
 
-  options = {
-    services.radicale.enable = mkOption {
-      type = types.bool;
-      default = false;
+  bindLocalhost = cfg.settings != { } && !hasAttrByPath [ "server" "hosts" ] cfg.settings;
+
+in {
+  options.services.radicale = {
+    enable = mkEnableOption "Radicale CalDAV and CardDAV server";
+
+    package = mkOption {
+      description = "Radicale package to use.";
+      # Default cannot be pkgs.radicale because non-null values suppress
+      # warnings about incompatible configuration and storage formats.
+      type = with types; nullOr package // { inherit (package) description; };
+      default = null;
+      defaultText = "pkgs.radicale";
+    };
+
+    config = mkOption {
+      type = types.str;
+      default = "";
       description = ''
-          Enable Radicale CalDAV and CardDAV server.
+        Radicale configuration, this will set the service
+        configuration file.
+        This option is mutually exclusive with <option>settings</option>.
+        This option is deprecated.  Use <option>settings</option> instead.
       '';
     };
 
-    services.radicale.package = mkOption {
-      type = types.package;
-      default = defaultPackage.pkg;
-      defaultText = defaultPackage.text;
+    settings = mkOption {
+      type = format.type;
+      default = { };
       description = ''
-        Radicale package to use. This defaults to version 1.x if
-        <literal>system.stateVersion &lt; 17.09</literal>, version 2.x if
-        <literal>17.09 ≤ system.stateVersion &lt; 20.09</literal>, and
-        version 3.x otherwise.
+        Configuration for Radicale. See
+        <link xlink:href="https://radicale.org/3.0.html#documentation/configuration" />.
+        This option is mutually exclusive with <option>config</option>.
+      '';
+      example = literalExample ''
+        server = {
+          hosts = [ "0.0.0.0:5232" "[::]:5232" ];
+        };
+        auth = {
+          type = "htpasswd";
+          htpasswd_filename = "/etc/radicale/users";
+          htpasswd_encryption = "bcrypt";
+        };
+        storage = {
+          filesystem_folder = "/var/lib/radicale/collections";
+        };
       '';
     };
 
-    services.radicale.config = mkOption {
-      type = types.str;
-      default = "";
+    rights = mkOption {
+      type = format.type;
       description = ''
-        Radicale configuration, this will set the service
-        configuration file.
+        Configuration for Radicale's rights file. See
+        <link xlink:href="https://radicale.org/3.0.html#documentation/authentication-and-rights" />.
+        This option only works in conjunction with <option>settings</option>.
+        Setting this will also set <option>settings.rights.type</option> and
+        <option>settings.rights.file</option> to approriate values.
+      '';
+      default = { };
+      example = literalExample ''
+        root = {
+          user = ".+";
+          collection = "";
+          permissions = "R";
+        };
+        principal = {
+          user = ".+";
+          collection = "{user}";
+          permissions = "RW";
+        };
+        calendars = {
+          user = ".+";
+          collection = "{user}/[^/]+";
+          permissions = "rw";
+        };
       '';
     };
 
-    services.radicale.extraArgs = mkOption {
+    extraArgs = mkOption {
       type = types.listOf types.str;
       default = [];
       description = "Extra arguments passed to the Radicale daemon.";
@@ -60,33 +107,94 @@ in
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ cfg.package ];
+    assertions = [
+      {
+        assertion = cfg.settings == { } || cfg.config == "";
+        message = ''
+          The options services.radicale.config and services.radicale.settings
+          are mutually exclusive.
+        '';
+      }
+    ];
 
-    users.users.radicale =
-      { uid = config.ids.uids.radicale;
-        description = "radicale user";
-        home = "/var/lib/radicale";
-        createHome = true;
-      };
+    warnings = optional (isNull cfg.package && versionOlder config.system.stateVersion "17.09") ''
+      The configuration and storage formats of your existing Radicale
+      installation might be incompatible with the newest version.
+      For upgrade instructions see
+      https://radicale.org/2.1.html#documentation/migration-from-1xx-to-2xx.
+      Set services.radicale.package to suppress this warning.
+    '' ++ optional (isNull cfg.package && versionOlder config.system.stateVersion "20.09") ''
+      The configuration format of your existing Radicale installation might be
+      incompatible with the newest version.  For upgrade instructions see
+      https://github.com/Kozea/Radicale/blob/3.0.6/NEWS.md#upgrade-checklist.
+      Set services.radicale.package to suppress this warning.
+    '' ++ optional (cfg.config != "") ''
+      The option services.radicale.config is deprecated.
+      Use services.radicale.settings instead.
+    '';
+
+    services.radicale.settings.rights = mkIf (cfg.rights != { }) {
+      type = "from_file";
+      file = toString rightsFile;
+    };
+
+    environment.systemPackages = [ pkg ];
+
+    users.users.radicale.uid = config.ids.uids.radicale;
 
-    users.groups.radicale =
-      { gid = config.ids.gids.radicale; };
+    users.groups.radicale.gid = config.ids.gids.radicale;
 
     systemd.services.radicale = {
       description = "A Simple Calendar and Contact Server";
       after = [ "network.target" ];
+      requires = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
         ExecStart = concatStringsSep " " ([
-          "${cfg.package}/bin/radicale" "-C" confFile
+          "${pkg}/bin/radicale" "-C" confFile
         ] ++ (
           map escapeShellArg cfg.extraArgs
         ));
         User = "radicale";
         Group = "radicale";
+        StateDirectory = "radicale/collections";
+        StateDirectoryMode = "0750";
+        # Hardening
+        CapabilityBoundingSet = [ "" ];
+        DeviceAllow = [ "/dev/stdin" ];
+        DevicePolicy = "strict";
+        IPAddressAllow = mkIf bindLocalhost "localhost";
+        IPAddressDeny = mkIf bindLocalhost "any";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        ReadWritePaths = lib.optional
+          (hasAttrByPath [ "storage" "filesystem_folder" ] cfg.settings)
+          cfg.settings.storage.filesystem_folder;
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
+        UMask = "0027";
       };
     };
   };
 
-  meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ];
+  meta.maintainers = with lib.maintainers; [ aneeshusa infinisil dotlambda ];
 }
diff --git a/nixpkgs/nixos/modules/services/networking/searx.nix b/nixpkgs/nixos/modules/services/networking/searx.nix
index a515e4a3dc3b..04f7d7e31f46 100644
--- a/nixpkgs/nixos/modules/services/networking/searx.nix
+++ b/nixpkgs/nixos/modules/services/networking/searx.nix
@@ -4,23 +4,25 @@ with lib;
 
 let
   runDir = "/run/searx";
+
   cfg = config.services.searx;
 
+  settingsFile = pkgs.writeText "settings.yml"
+    (builtins.toJSON cfg.settings);
+
   generateConfig = ''
     cd ${runDir}
 
     # write NixOS settings as JSON
-    cat <<'EOF' > settings.yml
-      ${builtins.toJSON cfg.settings}
-    EOF
+    (
+      umask 077
+      cp --no-preserve=mode ${settingsFile} settings.yml
+    )
 
     # substitute environment variables
     env -0 | while IFS='=' read -r -d ''' n v; do
       sed "s#@$n@#$v#g" -i settings.yml
     done
-
-    # set strict permissions
-    chmod 400 settings.yml
   '';
 
   settingType = with types; (oneOf
diff --git a/nixpkgs/nixos/modules/services/networking/solanum.nix b/nixpkgs/nixos/modules/services/networking/solanum.nix
new file mode 100644
index 000000000000..b6496fb8b35a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/solanum.nix
@@ -0,0 +1,101 @@
+{ config, lib, pkgs, ... }:
+
+let
+  inherit (lib) mkEnableOption mkIf mkOption types;
+  inherit (pkgs) solanum;
+  cfg = config.services.solanum;
+
+  configFile = pkgs.writeText "solanum.conf" cfg.config;
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.solanum = {
+
+      enable = mkEnableOption "Solanum IRC daemon";
+
+      config = mkOption {
+        type = types.str;
+        default = ''
+          serverinfo {
+            name = "irc.example.com";
+            sid = "1ix";
+            description = "irc!";
+
+            vhost = "0.0.0.0";
+            vhost6 = "::";
+          };
+
+          listen {
+            host = "0.0.0.0";
+            port = 6667;
+          };
+
+          auth {
+            user = "*@*";
+            class = "users";
+            flags = exceed_limit;
+          };
+          channel {
+            default_split_user_count = 0;
+          };
+        '';
+        description = ''
+          Solanum IRC daemon configuration file.
+          check <link xlink:href="https://github.com/solanum-ircd/solanum/blob/main/doc/reference.conf"/> for all options.
+        '';
+      };
+
+      openFilesLimit = mkOption {
+        type = types.int;
+        default = 1024;
+        description = ''
+          Maximum number of open files. Limits the clients and server connections.
+        '';
+      };
+
+      motd = mkOption {
+        type = types.nullOr types.lines;
+        default = null;
+        description = ''
+          Solanum MOTD text.
+
+          Solanum will read its MOTD from <literal>/etc/solanum/ircd.motd</literal>.
+          If set, the value of this option will be written to this path.
+        '';
+      };
+
+    };
+
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable (lib.mkMerge [
+    {
+      systemd.services.solanum = {
+        description = "Solanum IRC daemon";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig = {
+          ExecStart   = "${solanum}/bin/solanum -foreground -logfile /dev/stdout -configfile ${configFile} -pidfile /run/solanum/ircd.pid";
+          DynamicUser = true;
+          User = "solanum";
+          StateDirectory = "solanum";
+          RuntimeDirectory = "solanum";
+          LimitNOFILE = "${toString cfg.openFilesLimit}";
+        };
+      };
+
+    }
+
+    (mkIf (cfg.motd != null) {
+      environment.etc."solanum/ircd.motd".text = cfg.motd;
+    })
+  ]);
+}
diff --git a/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix b/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
index 174c80f73d2d..b3fe496e41c0 100644
--- a/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
@@ -122,6 +122,15 @@ in
         '';
       };
 
+      sftpServerExecutable = mkOption {
+        type = types.str;
+        example = "internal-sftp";
+        description = ''
+          The sftp server executable.  Can be a path or "internal-sftp" to use
+          the sftp server built into the sshd binary.
+        '';
+      };
+
       sftpFlags = mkOption {
         type = with types; listOf str;
         default = [];
@@ -397,6 +406,7 @@ in
     });
 
     services.openssh.moduliFile = mkDefault "${cfgc.package}/etc/ssh/moduli";
+    services.openssh.sftpServerExecutable = mkDefault "${cfgc.package}/libexec/sftp-server";
 
     environment.etc = authKeysFiles //
       { "ssh/moduli".source = cfg.moduliFile;
@@ -516,7 +526,7 @@ in
         ''}
 
         ${optionalString cfg.allowSFTP ''
-          Subsystem sftp ${cfgc.package}/libexec/sftp-server ${concatStringsSep " " cfg.sftpFlags}
+          Subsystem sftp ${cfg.sftpServerExecutable} ${concatStringsSep " " cfg.sftpFlags}
         ''}
 
         PermitRootLogin ${cfg.permitRootLogin}
diff --git a/nixpkgs/nixos/modules/services/networking/supplicant.nix b/nixpkgs/nixos/modules/services/networking/supplicant.nix
index 20704be9b36f..4f4b5cef3741 100644
--- a/nixpkgs/nixos/modules/services/networking/supplicant.nix
+++ b/nixpkgs/nixos/modules/services/networking/supplicant.nix
@@ -44,19 +44,10 @@ let
 
         preStart = ''
           ${optionalString (suppl.configFile.path!=null) ''
-            touch -a ${suppl.configFile.path}
-            chmod 600 ${suppl.configFile.path}
+            (umask 077 && touch -a "${suppl.configFile.path}")
           ''}
           ${optionalString suppl.userControlled.enable ''
-            if ! test -e ${suppl.userControlled.socketDir}; then
-                mkdir -m 0770 -p ${suppl.userControlled.socketDir}
-                chgrp ${suppl.userControlled.group} ${suppl.userControlled.socketDir}
-            fi
-
-            if test "$(stat --printf '%G' ${suppl.userControlled.socketDir})" != "${suppl.userControlled.group}"; then
-                echo "ERROR: bad ownership on ${suppl.userControlled.socketDir}" >&2
-                exit 1
-            fi
+            install -dm770 -g "${suppl.userControlled.group}" "${suppl.userControlled.socketDir}"
           ''}
         '';
 
diff --git a/nixpkgs/nixos/modules/services/networking/unbound.nix b/nixpkgs/nixos/modules/services/networking/unbound.nix
index 622c3d8ea434..09aef9a1dcf1 100644
--- a/nixpkgs/nixos/modules/services/networking/unbound.nix
+++ b/nixpkgs/nixos/modules/services/networking/unbound.nix
@@ -4,51 +4,28 @@ with lib;
 let
   cfg = config.services.unbound;
 
-  stateDir = "/var/lib/unbound";
-
-  access = concatMapStringsSep "\n  " (x: "access-control: ${x} allow") cfg.allowedAccess;
-
-  interfaces = concatMapStringsSep "\n  " (x: "interface: ${x}") cfg.interfaces;
-
-  isLocalAddress = x: substring 0 3 x == "::1" || substring 0 9 x == "127.0.0.1";
-
-  forward =
-    optionalString (any isLocalAddress cfg.forwardAddresses) ''
-      do-not-query-localhost: no
-    ''
-    + optionalString (cfg.forwardAddresses != []) ''
-      forward-zone:
-        name: .
-    ''
-    + concatMapStringsSep "\n" (x: "    forward-addr: ${x}") cfg.forwardAddresses;
-
-  rootTrustAnchorFile = "${stateDir}/root.key";
-
-  trustAnchor = optionalString cfg.enableRootTrustAnchor
-    "auto-trust-anchor-file: ${rootTrustAnchorFile}";
-
-  confFile = pkgs.writeText "unbound.conf" ''
-    server:
-      ip-freebind: yes
-      directory: "${stateDir}"
-      username: unbound
-      chroot: ""
-      pidfile: ""
-      # when running under systemd there is no need to daemonize
-      do-daemonize: no
-      ${interfaces}
-      ${access}
-      ${trustAnchor}
-    ${lib.optionalString (cfg.localControlSocketPath != null) ''
-      remote-control:
-        control-enable: yes
-        control-interface: ${cfg.localControlSocketPath}
-    ''}
-    ${cfg.extraConfig}
-    ${forward}
-  '';
-in
-{
+  yesOrNo = v: if v then "yes" else "no";
+
+  toOption = indent: n: v: "${indent}${toString n}: ${v}";
+
+  toConf = indent: n: v:
+    if builtins.isFloat v then (toOption indent n (builtins.toJSON v))
+    else if isInt v       then (toOption indent n (toString v))
+    else if isBool v      then (toOption indent n (yesOrNo v))
+    else if isString v    then (toOption indent n v)
+    else if isList v      then (concatMapStringsSep "\n" (toConf indent n) v)
+    else if isAttrs v     then (concatStringsSep "\n" (
+                                  ["${indent}${n}:"] ++ (
+                                    mapAttrsToList (toConf "${indent}  ") v
+                                  )
+                                ))
+    else throw (traceSeq v "services.unbound.settings: unexpected type");
+
+  confFile = pkgs.writeText "unbound.conf" (concatStringsSep "\n" ((mapAttrsToList (toConf "") cfg.settings) ++ [""]));
+
+  rootTrustAnchorFile = "${cfg.stateDir}/root.key";
+
+in {
 
   ###### interface
 
@@ -64,25 +41,30 @@ in
         description = "The unbound package to use";
       };
 
-      allowedAccess = mkOption {
-        default = [ "127.0.0.0/24" ];
-        type = types.listOf types.str;
-        description = "What networks are allowed to use unbound as a resolver.";
+      user = mkOption {
+        type = types.str;
+        default = "unbound";
+        description = "User account under which unbound runs.";
       };
 
-      interfaces = mkOption {
-        default = [ "127.0.0.1" ] ++ optional config.networking.enableIPv6 "::1";
-        type = types.listOf types.str;
-        description =  ''
-          What addresses the server should listen on. This supports the interface syntax documented in
-          <citerefentry><refentrytitle>unbound.conf</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
-        '';
+      group = mkOption {
+        type = types.str;
+        default = "unbound";
+        description = "Group under which unbound runs.";
       };
 
-      forwardAddresses = mkOption {
-        default = [];
-        type = types.listOf types.str;
-        description = "What servers to forward queries to.";
+      stateDir = mkOption {
+        default = "/var/lib/unbound";
+        description = "Directory holding all state for unbound to run.";
+      };
+
+      resolveLocalQueries = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether unbound should resolve local queries (i.e. add 127.0.0.1 to
+          /etc/resolv.conf).
+        '';
       };
 
       enableRootTrustAnchor = mkOption {
@@ -106,23 +88,66 @@ in
           and group will be <literal>nogroup</literal>.
 
           Users that should be permitted to access the socket must be in the
-          <literal>unbound</literal> group.
+          <literal>config.services.unbound.group</literal> group.
 
           If this option is <literal>null</literal> remote control will not be
-          configured at all. Unbounds default values apply.
+          enabled. Unbounds default values apply.
         '';
       };
 
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
+      settings = mkOption {
+        default = {};
+        type = with types; submodule {
+
+          freeformType = let
+            validSettingsPrimitiveTypes = oneOf [ int str bool float ];
+            validSettingsTypes = oneOf [ validSettingsPrimitiveTypes (listOf validSettingsPrimitiveTypes) ];
+            settingsType = oneOf [ str (attrsOf validSettingsTypes) ];
+          in attrsOf (oneOf [ settingsType (listOf settingsType) ])
+              // { description = ''
+                unbound.conf configuration type. The format consist of an attribute
+                set of settings. Each settings can be either one value, a list of
+                values or an attribute set. The allowed values are integers,
+                strings, booleans or floats.
+              '';
+            };
+
+          options = {
+            remote-control.control-enable = mkOption {
+              type = bool;
+              default = false;
+              internal = true;
+            };
+          };
+        };
+        example = literalExample ''
+          {
+            server = {
+              interface = [ "127.0.0.1" ];
+            };
+            forward-zone = [
+              {
+                name = ".";
+                forward-addr = "1.1.1.1@853#cloudflare-dns.com";
+              }
+              {
+                name = "example.org.";
+                forward-addr = [
+                  "1.1.1.1@853#cloudflare-dns.com"
+                  "1.0.0.1@853#cloudflare-dns.com"
+                ];
+              }
+            ];
+            remote-control.control-enable = true;
+          };
+        '';
         description = ''
-          Extra unbound config. See
-          <citerefentry><refentrytitle>unbound.conf</refentrytitle><manvolnum>8
-          </manvolnum></citerefentry>.
+          Declarative Unbound configuration
+          See the <citerefentry><refentrytitle>unbound.conf</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry> manpage for a list of
+          available options.
         '';
       };
-
     };
   };
 
@@ -130,23 +155,56 @@ in
 
   config = mkIf cfg.enable {
 
+    services.unbound.settings = {
+      server = {
+        directory = mkDefault cfg.stateDir;
+        username = cfg.user;
+        chroot = ''""'';
+        pidfile = ''""'';
+        # when running under systemd there is no need to daemonize
+        do-daemonize = false;
+        interface = mkDefault ([ "127.0.0.1" ] ++ (optional config.networking.enableIPv6 "::1"));
+        access-control = mkDefault ([ "127.0.0.0/8 allow" ] ++ (optional config.networking.enableIPv6 "::1/128 allow"));
+        auto-trust-anchor-file = mkIf cfg.enableRootTrustAnchor rootTrustAnchorFile;
+        tls-cert-bundle = mkDefault "/etc/ssl/certs/ca-certificates.crt";
+        # prevent race conditions on system startup when interfaces are not yet
+        # configured
+        ip-freebind = mkDefault true;
+      };
+      remote-control = {
+        control-enable = mkDefault false;
+        control-interface = mkDefault ([ "127.0.0.1" ] ++ (optional config.networking.enableIPv6 "::1"));
+        server-key-file = mkDefault "${cfg.stateDir}/unbound_server.key";
+        server-cert-file = mkDefault "${cfg.stateDir}/unbound_server.pem";
+        control-key-file = mkDefault "${cfg.stateDir}/unbound_control.key";
+        control-cert-file = mkDefault "${cfg.stateDir}/unbound_control.pem";
+      } // optionalAttrs (cfg.localControlSocketPath != null) {
+        control-enable = true;
+        control-interface = cfg.localControlSocketPath;
+      };
+    };
+
     environment.systemPackages = [ cfg.package ];
 
-    users.users.unbound = {
-      description = "unbound daemon user";
-      isSystemUser = true;
-      group = lib.mkIf (cfg.localControlSocketPath != null) (lib.mkDefault "unbound");
+    users.users = mkIf (cfg.user == "unbound") {
+      unbound = {
+        description = "unbound daemon user";
+        isSystemUser = true;
+        group = cfg.group;
+      };
     };
 
-    # We need a group so that we can give users access to the configured
-    # control socket. Unbound allows access to the socket only to the unbound
-    # user and the primary group.
-    users.groups = lib.mkIf (cfg.localControlSocketPath != null) {
+    users.groups = mkIf (cfg.group == "unbound") {
       unbound = {};
     };
 
-    networking.resolvconf.useLocalResolver = mkDefault true;
+    networking = mkIf cfg.resolveLocalQueries {
+      resolvconf = {
+        useLocalResolver = mkDefault true;
+      };
 
+      networkmanager.dns = "unbound";
+    };
 
     environment.etc."unbound/unbound.conf".source = confFile;
 
@@ -156,8 +214,15 @@ in
       before = [ "nss-lookup.target" ];
       wantedBy = [ "multi-user.target" "nss-lookup.target" ];
 
-      preStart = lib.mkIf cfg.enableRootTrustAnchor ''
-        ${cfg.package}/bin/unbound-anchor -a ${rootTrustAnchorFile} || echo "Root anchor updated!"
+      path = mkIf cfg.settings.remote-control.control-enable [ pkgs.openssl ];
+
+      preStart = ''
+        ${optionalString cfg.enableRootTrustAnchor ''
+          ${cfg.package}/bin/unbound-anchor -a ${rootTrustAnchorFile} || echo "Root anchor updated!"
+        ''}
+        ${optionalString cfg.settings.remote-control.control-enable ''
+          ${cfg.package}/bin/unbound-control-setup -d ${cfg.stateDir}
+        ''}
       '';
 
       restartTriggers = [
@@ -181,8 +246,8 @@ in
           "CAP_SYS_RESOURCE"
         ];
 
-        User = "unbound";
-        Group = lib.mkIf (cfg.localControlSocketPath != null) (lib.mkDefault "unbound");
+        User = cfg.user;
+        Group = cfg.group;
 
         MemoryDenyWriteExecute = true;
         NoNewPrivileges = true;
@@ -211,9 +276,29 @@ in
         RestrictNamespaces = true;
         LockPersonality = true;
         RestrictSUIDSGID = true;
+
+        Restart = "on-failure";
+        RestartSec = "5s";
       };
     };
-    # If networkmanager is enabled, ask it to interface with unbound.
-    networking.networkmanager.dns = "unbound";
   };
+
+  imports = [
+    (mkRenamedOptionModule [ "services" "unbound" "interfaces" ] [ "services" "unbound" "settings" "server" "interface" ])
+    (mkChangedOptionModule [ "services" "unbound" "allowedAccess" ] [ "services" "unbound" "settings" "server" "access-control" ] (
+      config: map (value: "${value} allow") (getAttrFromPath [ "services" "unbound" "allowedAccess" ] config)
+    ))
+    (mkRemovedOptionModule [ "services" "unbound" "forwardAddresses" ] ''
+      Add a new setting:
+      services.unbound.settings.forward-zone = [{
+        name = ".";
+        forward-addr = [ # Your current services.unbound.forwardAddresses ];
+      }];
+      If any of those addresses are local addresses (127.0.0.1 or ::1), you must
+      also set services.unbound.settings.server.do-not-query-localhost to false.
+    '')
+    (mkRemovedOptionModule [ "services" "unbound" "extraConfig" ] ''
+      You can use services.unbound.settings to add any configuration you want.
+    '')
+  ];
 }
diff --git a/nixpkgs/nixos/modules/services/networking/wireguard.nix b/nixpkgs/nixos/modules/services/networking/wireguard.nix
index 34c869345357..2b51770a5aa1 100644
--- a/nixpkgs/nixos/modules/services/networking/wireguard.nix
+++ b/nixpkgs/nixos/modules/services/networking/wireguard.nix
@@ -198,7 +198,32 @@ let
         example = "demo.wireguard.io:12913";
         type = with types; nullOr str;
         description = ''Endpoint IP or hostname of the peer, followed by a colon,
-        and then a port number of the peer.'';
+        and then a port number of the peer.
+
+        Warning for endpoints with changing IPs:
+        The WireGuard kernel side cannot perform DNS resolution.
+        Thus DNS resolution is done once by the <literal>wg</literal> userspace
+        utility, when setting up WireGuard. Consequently, if the IP address
+        behind the name changes, WireGuard will not notice.
+        This is especially common for dynamic-DNS setups, but also applies to
+        any other DNS-based setup.
+        If you do not use IP endpoints, you likely want to set
+        <option>networking.wireguard.dynamicEndpointRefreshSeconds</option>
+        to refresh the IPs periodically.
+        '';
+      };
+
+      dynamicEndpointRefreshSeconds = mkOption {
+        default = 0;
+        example = 5;
+        type = with types; int;
+        description = ''
+          Periodically re-execute the <literal>wg</literal> utility every
+          this many seconds in order to let WireGuard notice DNS / hostname
+          changes.
+
+          Setting this to <literal>0</literal> disables periodic reexecution.
+        '';
       };
 
       persistentKeepalive = mkOption {
@@ -219,17 +244,6 @@ let
 
   };
 
-  generatePathUnit = name: values:
-    assert (values.privateKey == null);
-    assert (values.privateKeyFile != null);
-    nameValuePair "wireguard-${name}"
-      {
-        description = "WireGuard Tunnel - ${name} - Private Key";
-        requiredBy = [ "wireguard-${name}.service" ];
-        before = [ "wireguard-${name}.service" ];
-        pathConfig.PathExists = values.privateKeyFile;
-      };
-
   generateKeyServiceUnit = name: values:
     assert values.generatePrivateKeyFile;
     nameValuePair "wireguard-${name}-key"
@@ -246,22 +260,31 @@ let
         };
 
         script = ''
-          mkdir --mode 0644 -p "${dirOf values.privateKeyFile}"
+          set -e
+
+          # If the parent dir does not already exist, create it.
+          # Otherwise, does nothing, keeping existing permisions intact.
+          mkdir -p --mode 0755 "${dirOf values.privateKeyFile}"
+
           if [ ! -f "${values.privateKeyFile}" ]; then
-            touch "${values.privateKeyFile}"
-            chmod 0600 "${values.privateKeyFile}"
-            wg genkey > "${values.privateKeyFile}"
-            chmod 0400 "${values.privateKeyFile}"
+            # Write private key file with atomically-correct permissions.
+            (set -e; umask 077; wg genkey > "${values.privateKeyFile}")
           fi
         '';
       };
 
-  generatePeerUnit = { interfaceName, interfaceCfg, peer }:
+  peerUnitServiceName = interfaceName: publicKey: dynamicRefreshEnabled:
     let
       keyToUnitName = replaceChars
         [ "/" "-"    " "     "+"     "="      ]
         [ "-" "\\x2d" "\\x20" "\\x2b" "\\x3d" ];
-      unitName = keyToUnitName peer.publicKey;
+      unitName = keyToUnitName publicKey;
+      refreshSuffix = optionalString dynamicRefreshEnabled "-refresh";
+    in
+      "wireguard-${interfaceName}-peer-${unitName}${refreshSuffix}";
+
+  generatePeerUnit = { interfaceName, interfaceCfg, peer }:
+    let
       psk =
         if peer.presharedKey != null
           then pkgs.writeText "wg-psk" peer.presharedKey
@@ -270,7 +293,12 @@ let
       dst = interfaceCfg.interfaceNamespace;
       ip = nsWrap "ip" src dst;
       wg = nsWrap "wg" src dst;
-    in nameValuePair "wireguard-${interfaceName}-peer-${unitName}"
+      dynamicRefreshEnabled = peer.dynamicEndpointRefreshSeconds != 0;
+      # We generate a different name (a `-refresh` suffix) when `dynamicEndpointRefreshSeconds`
+      # to avoid that the same service switches `Type` (`oneshot` vs `simple`),
+      # with the intent to make scripting more obvious.
+      serviceName = peerUnitServiceName interfaceName peer.publicKey dynamicRefreshEnabled;
+    in nameValuePair serviceName
       {
         description = "WireGuard Peer - ${interfaceName} - ${peer.publicKey}";
         requires = [ "wireguard-${interfaceName}.service" ];
@@ -280,36 +308,59 @@ let
         environment.WG_ENDPOINT_RESOLUTION_RETRIES = "infinity";
         path = with pkgs; [ iproute2 wireguard-tools ];
 
-        serviceConfig = {
-          Type = "oneshot";
-          RemainAfterExit = true;
-        };
+        serviceConfig =
+          if !dynamicRefreshEnabled
+            then
+              {
+                Type = "oneshot";
+                RemainAfterExit = true;
+              }
+            else
+              {
+                Type = "simple"; # re-executes 'wg' indefinitely
+                # Note that `Type = "oneshot"` services with `RemainAfterExit = true`
+                # cannot be used with systemd timers (see `man systemd.timer`),
+                # which is why `simple` with a loop is the best choice here.
+                # It also makes starting and stopping easiest.
+              };
 
         script = let
-          wg_setup = "${wg} set ${interfaceName} peer ${peer.publicKey}" +
-            optionalString (psk != null) " preshared-key ${psk}" +
-            optionalString (peer.endpoint != null) " endpoint ${peer.endpoint}" +
-            optionalString (peer.persistentKeepalive != null) " persistent-keepalive ${toString peer.persistentKeepalive}" +
-            optionalString (peer.allowedIPs != []) " allowed-ips ${concatStringsSep "," peer.allowedIPs}";
+          wg_setup = concatStringsSep " " (
+            [ ''${wg} set ${interfaceName} peer "${peer.publicKey}"'' ]
+            ++ optional (psk != null) ''preshared-key "${psk}"''
+            ++ optional (peer.endpoint != null) ''endpoint "${peer.endpoint}"''
+            ++ optional (peer.persistentKeepalive != null) ''persistent-keepalive "${toString peer.persistentKeepalive}"''
+            ++ optional (peer.allowedIPs != []) ''allowed-ips "${concatStringsSep "," peer.allowedIPs}"''
+          );
           route_setup =
             optionalString interfaceCfg.allowedIPsAsRoutes
               (concatMapStringsSep "\n"
                 (allowedIP:
-                  "${ip} route replace ${allowedIP} dev ${interfaceName} table ${interfaceCfg.table}"
+                  ''${ip} route replace "${allowedIP}" dev "${interfaceName}" table "${interfaceCfg.table}"''
                 ) peer.allowedIPs);
         in ''
           ${wg_setup}
           ${route_setup}
+
+          ${optionalString (peer.dynamicEndpointRefreshSeconds != 0) ''
+            # Re-execute 'wg' periodically to notice DNS / hostname changes.
+            # Note this will not time out on transient DNS failures such as DNS names
+            # because we have set 'WG_ENDPOINT_RESOLUTION_RETRIES=infinity'.
+            # Also note that 'wg' limits its maximum retry delay to 20 seconds as of writing.
+            while ${wg_setup}; do
+              sleep "${toString peer.dynamicEndpointRefreshSeconds}";
+            done
+          ''}
         '';
 
         postStop = let
           route_destroy = optionalString interfaceCfg.allowedIPsAsRoutes
             (concatMapStringsSep "\n"
               (allowedIP:
-                "${ip} route delete ${allowedIP} dev ${interfaceName} table ${interfaceCfg.table}"
+                ''${ip} route delete "${allowedIP}" dev "${interfaceName}" table "${interfaceCfg.table}"''
               ) peer.allowedIPs);
         in ''
-          ${wg} set ${interfaceName} peer ${peer.publicKey} remove
+          ${wg} set "${interfaceName}" peer "${peer.publicKey}" remove
           ${route_destroy}
         '';
       };
@@ -345,23 +396,25 @@ let
 
           ${values.preSetup}
 
-          ${ipPreMove} link add dev ${name} type wireguard
-          ${optionalString (values.interfaceNamespace != null && values.interfaceNamespace != values.socketNamespace) "${ipPreMove} link set ${name} netns ${ns}"}
+          ${ipPreMove} link add dev "${name}" type wireguard
+          ${optionalString (values.interfaceNamespace != null && values.interfaceNamespace != values.socketNamespace) ''${ipPreMove} link set "${name}" netns "${ns}"''}
 
           ${concatMapStringsSep "\n" (ip:
-            "${ipPostMove} address add ${ip} dev ${name}"
+            ''${ipPostMove} address add "${ip}" dev "${name}"''
           ) values.ips}
 
-          ${wg} set ${name} private-key ${privKey} ${
-            optionalString (values.listenPort != null) " listen-port ${toString values.listenPort}"}
+          ${concatStringsSep " " (
+            [ ''${wg} set "${name}" private-key "${privKey}"'' ]
+            ++ optional (values.listenPort != null) ''listen-port "${toString values.listenPort}"''
+          )}
 
-          ${ipPostMove} link set up dev ${name}
+          ${ipPostMove} link set up dev "${name}"
 
           ${values.postSetup}
         '';
 
         postStop = ''
-          ${ipPostMove} link del dev ${name}
+          ${ipPostMove} link del dev "${name}"
           ${values.postShutdown}
         '';
       };
@@ -371,7 +424,7 @@ let
       nsList = filter (ns: ns != null) [ src dst ];
       ns = last nsList;
     in
-      if (length nsList > 0 && ns != "init") then "ip netns exec ${ns} ${cmd}" else cmd;
+      if (length nsList > 0 && ns != "init") then ''ip netns exec "${ns}" "${cmd}"'' else cmd;
 in
 
 {
@@ -445,9 +498,6 @@ in
       // (mapAttrs' generateKeyServiceUnit
       (filterAttrs (name: value: value.generatePrivateKeyFile) cfg.interfaces));
 
-    systemd.paths = mapAttrs' generatePathUnit
-      (filterAttrs (name: value: value.privateKeyFile != null) cfg.interfaces);
-
   });
 
 }
diff --git a/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix b/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
index 61482596763a..c0a4ce40760a 100644
--- a/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
@@ -3,6 +3,10 @@
 with lib;
 
 let
+  package = if cfg.allowAuxiliaryImperativeNetworks
+    then pkgs.wpa_supplicant_ro_ssids
+    else pkgs.wpa_supplicant;
+
   cfg = config.networking.wireless;
   configFile = if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable then pkgs.writeText "wpa_supplicant.conf" ''
     ${optionalString cfg.userControlled.enable ''
@@ -38,6 +42,11 @@ in {
         description = ''
           The interfaces <command>wpa_supplicant</command> will use. If empty, it will
           automatically use all wireless interfaces.
+          <warning><para>
+            The automatic discovery of interfaces does not work reliably on boot:
+            it may fail and leave the system without network. When possible, specify
+            a known interface name.
+          </para></warning>
         '';
       };
 
@@ -47,6 +56,16 @@ in {
         description = "Force a specific wpa_supplicant driver.";
       };
 
+      allowAuxiliaryImperativeNetworks = mkEnableOption "support for imperative & declarative networks" // {
+        description = ''
+          Whether to allow configuring networks "imperatively" (e.g. via
+          <package>wpa_supplicant_gui</package>) and declaratively via
+          <xref linkend="opt-networking.wireless.networks" />.
+
+          Please note that this adds a custom patch to <package>wpa_supplicant</package>.
+        '';
+      };
+
       networks = mkOption {
         type = types.attrsOf (types.submodule {
           options = {
@@ -211,9 +230,17 @@ in {
       message = ''options networking.wireless."${name}".{psk,pskRaw,auth} are mutually exclusive'';
     });
 
-    environment.systemPackages =  [ pkgs.wpa_supplicant ];
+    warnings =
+      optional (cfg.interfaces == [] && config.systemd.services.wpa_supplicant.wantedBy != [])
+      ''
+        No network interfaces for wpa_supplicant have been configured: the service
+        may randomly fail to start at boot. You should specify at least one using the option
+        networking.wireless.interfaces.
+      '';
+
+    environment.systemPackages = [ package ];
 
-    services.dbus.packages = [ pkgs.wpa_supplicant ];
+    services.dbus.packages = [ package ];
     services.udev.packages = [ pkgs.crda ];
 
     # FIXME: start a separate wpa_supplicant instance per interface.
@@ -230,13 +257,17 @@ in {
       wantedBy = [ "multi-user.target" ];
       stopIfChanged = false;
 
-      path = [ pkgs.wpa_supplicant ];
+      path = [ package ];
 
-      script = ''
+      script = let
+        configStr = if cfg.allowAuxiliaryImperativeNetworks
+          then "-c /etc/wpa_supplicant.conf -I ${configFile}"
+          else "-c ${configFile}";
+      in ''
         if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]
         then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
         fi
-        iface_args="-s -u -D${cfg.driver} -c ${configFile}"
+        iface_args="-s -u -D${cfg.driver} ${configStr}"
         ${if ifaces == [] then ''
           for i in $(cd /sys/class/net && echo *); do
             DEVTYPE=
diff --git a/nixpkgs/nixos/modules/services/networking/yggdrasil.nix b/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
index a71c635c9f6e..47a7152f6fe6 100644
--- a/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
+++ b/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
@@ -64,7 +64,7 @@ in {
         type = types.str;
         default = "root";
         example = "wheel";
-        description = "Group to grant acces to the Yggdrasil control socket.";
+        description = "Group to grant access to the Yggdrasil control socket.";
       };
 
       openMulticastPort = mkOption {
@@ -122,12 +122,11 @@ in {
     system.activationScripts.yggdrasil = mkIf cfg.persistentKeys ''
       if [ ! -e ${keysPath} ]
       then
-        mkdir -p ${builtins.dirOf keysPath}
+        mkdir --mode=700 -p ${builtins.dirOf keysPath}
         ${binYggdrasil} -genconf -json \
           | ${pkgs.jq}/bin/jq \
               'to_entries|map(select(.key|endswith("Key")))|from_entries' \
           > ${keysPath}
-        chmod 600 ${keysPath}
       fi
     '';
 
diff --git a/nixpkgs/nixos/modules/services/networking/znc/default.nix b/nixpkgs/nixos/modules/services/networking/znc/default.nix
index a7315896c506..aa79ed27dcef 100644
--- a/nixpkgs/nixos/modules/services/networking/znc/default.nix
+++ b/nixpkgs/nixos/modules/services/networking/znc/default.nix
@@ -103,8 +103,8 @@ in
       };
 
       dataDir = mkOption {
-        default = "/var/lib/znc/";
-        example = "/home/john/.znc/";
+        default = "/var/lib/znc";
+        example = "/home/john/.znc";
         type = types.path;
         description = ''
           The state directory for ZNC. The config and the modules will be linked
@@ -258,6 +258,34 @@ in
         ExecStart = "${pkgs.znc}/bin/znc --foreground --datadir ${cfg.dataDir} ${escapeShellArgs cfg.extraFlags}";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
+        # Hardening
+        CapabilityBoundingSet = [ "" ];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        ReadWritePaths = [ cfg.dataDir ];
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
+        UMask = "0027";
       };
       preStart = ''
         mkdir -p ${cfg.dataDir}/configs
@@ -271,9 +299,8 @@ in
         # Ensure essential files exist.
         if [[ ! -f ${cfg.dataDir}/configs/znc.conf ]]; then
             echo "No znc.conf file found in ${cfg.dataDir}. Creating one now."
-            cp --no-clobber ${cfg.configFile} ${cfg.dataDir}/configs/znc.conf
+            cp --no-preserve=ownership --no-clobber ${cfg.configFile} ${cfg.dataDir}/configs/znc.conf
             chmod u+rw ${cfg.dataDir}/configs/znc.conf
-            chown ${cfg.user} ${cfg.dataDir}/configs/znc.conf
         fi
 
         if [[ ! -f ${cfg.dataDir}/znc.pem ]]; then
diff --git a/nixpkgs/nixos/modules/services/networking/znc/options.nix b/nixpkgs/nixos/modules/services/networking/znc/options.nix
index 048dbd738630..7a43b45fabba 100644
--- a/nixpkgs/nixos/modules/services/networking/znc/options.nix
+++ b/nixpkgs/nixos/modules/services/networking/znc/options.nix
@@ -44,7 +44,7 @@ let
       modules = mkOption {
         type = types.listOf types.str;
         default = [ "simple_away" ];
-        example = literalExample "[ simple_away sasl ]";
+        example = literalExample ''[ "simple_away" "sasl" ]'';
         description = ''
           ZNC network modules to load.
         '';
diff --git a/nixpkgs/nixos/modules/services/scheduling/atd.nix b/nixpkgs/nixos/modules/services/scheduling/atd.nix
index cefe72b0e999..37f6651ec4cf 100644
--- a/nixpkgs/nixos/modules/services/scheduling/atd.nix
+++ b/nixpkgs/nixos/modules/services/scheduling/atd.nix
@@ -81,14 +81,9 @@ in
         jobdir=/var/spool/atjobs
         etcdir=/etc/at
 
-        for dir in "$spooldir" "$jobdir" "$etcdir"; do
-          if [ ! -d "$dir" ]; then
-              mkdir -p "$dir"
-              chown atd:atd "$dir"
-          fi
-        done
-        chmod 1770 "$spooldir" "$jobdir"
-        ${if cfg.allowEveryone then ''chmod a+rwxt "$spooldir" "$jobdir" '' else ""}
+        install -dm755 -o atd -g atd "$etcdir"
+        spool_and_job_dir_perms=${if cfg.allowEveryone then "1777" else "1770"}
+        install -dm"$spool_and_job_dir_perms" -o atd -g atd "$spooldir" "$jobdir"
         if [ ! -f "$etcdir"/at.deny ]; then
             touch "$etcdir"/at.deny
             chown root:atd "$etcdir"/at.deny
diff --git a/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix b/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix
index a04bc883bf0f..bed59dbf821f 100644
--- a/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix
+++ b/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix
@@ -121,7 +121,6 @@ in {
         EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
         ExecStart = "${bitwarden_rs}/bin/bitwarden_rs";
         LimitNOFILE = "1048576";
-        LimitNPROC = "64";
         PrivateTmp = "true";
         PrivateDevices = "true";
         ProtectHome = "true";
diff --git a/nixpkgs/nixos/modules/services/security/fail2ban.nix b/nixpkgs/nixos/modules/services/security/fail2ban.nix
index b901b19cf318..0c24972823dd 100644
--- a/nixpkgs/nixos/modules/services/security/fail2ban.nix
+++ b/nixpkgs/nixos/modules/services/security/fail2ban.nix
@@ -62,6 +62,22 @@ in
         description = "The firewall package used by fail2ban service.";
       };
 
+      extraPackages = mkOption {
+        default = [];
+        type = types.listOf types.package;
+        example = lib.literalExample "[ pkgs.ipset ]";
+        description = ''
+          Extra packages to be made available to the fail2ban service. The example contains
+          the packages needed by the `iptables-ipset-proto6` action.
+        '';
+      };
+
+      maxretry = mkOption {
+        default = 3;
+        type = types.ints.unsigned;
+        description = "Number of failures before a host gets banned.";
+      };
+
       banaction = mkOption {
         default = "iptables-multiport";
         type = types.str;
@@ -243,7 +259,7 @@ in
       restartTriggers = [ fail2banConf jailConf pathsConf ];
       reloadIfChanged = true;
 
-      path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ];
+      path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ] ++ cfg.extraPackages;
 
       unitConfig.Documentation = "man:fail2ban(1)";
 
@@ -291,7 +307,7 @@ in
       ''}
       # Miscellaneous options
       ignoreip    = 127.0.0.1/8 ${optionalString config.networking.enableIPv6 "::1"} ${concatStringsSep " " cfg.ignoreIP}
-      maxretry    = 3
+      maxretry    = ${toString cfg.maxretry}
       backend     = systemd
       # Actions
       banaction   = ${cfg.banaction}
diff --git a/nixpkgs/nixos/modules/services/security/hologram-agent.nix b/nixpkgs/nixos/modules/services/security/hologram-agent.nix
index e37334b3cf5e..e29267e50003 100644
--- a/nixpkgs/nixos/modules/services/security/hologram-agent.nix
+++ b/nixpkgs/nixos/modules/services/security/hologram-agent.nix
@@ -54,5 +54,5 @@ in {
 
   };
 
-  meta.maintainers = with lib.maintainers; [ nand0p ];
+  meta.maintainers = with lib.maintainers; [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix b/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix
index 553638ad4965..d82ddb894ea5 100644
--- a/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix
+++ b/nixpkgs/nixos/modules/services/security/oauth2_proxy_nginx.nix
@@ -23,7 +23,8 @@ in
   config.services.oauth2_proxy = mkIf (cfg.virtualHosts != [] && (hasPrefix "127.0.0.1:" cfg.proxy)) {
     enable = true;
   };
-  config.services.nginx = mkMerge ((optional (cfg.virtualHosts != []) {
+  config.services.nginx = mkIf config.services.oauth2_proxy.enable (mkMerge
+  ((optional (cfg.virtualHosts != []) {
     recommendedProxySettings = true; # needed because duplicate headers
   }) ++ (map (vhost: {
     virtualHosts.${vhost} = {
@@ -60,5 +61,5 @@ in
       '';
 
     };
-  }) cfg.virtualHosts));
+  }) cfg.virtualHosts)));
 }
diff --git a/nixpkgs/nixos/modules/services/security/tor.nix b/nixpkgs/nixos/modules/services/security/tor.nix
index 54c2c2dea23a..9e8f18e93c85 100644
--- a/nixpkgs/nixos/modules/services/security/tor.nix
+++ b/nixpkgs/nixos/modules/services/security/tor.nix
@@ -170,7 +170,7 @@ let
     else if k == "ServerTransportPlugin" then
       optionalString (v.transports != []) "${concatStringsSep "," v.transports} exec ${v.exec}"
     else if k == "HidServAuth" then
-      concatMapStringsSep "\n${k} " (settings: settings.onion + " " settings.auth) v
+      v.onion + " " + v.auth
     else generators.mkValueStringDefault {} v;
   genTorrc = settings:
     generators.toKeyValue {
@@ -715,7 +715,7 @@ in
               (submodule {
                 options = {
                   onion = mkOption {
-                    type = strMatching "[a-z2-7]{16}(\\.onion)?";
+                    type = strMatching "[a-z2-7]{16}\\.onion";
                     description = "Onion address.";
                     example = "xxxxxxxxxxxxxxxx.onion";
                   };
@@ -726,6 +726,12 @@ in
                 };
               })
             ]);
+            example = [
+              {
+                onion = "xxxxxxxxxxxxxxxx.onion";
+                auth = "xxxxxxxxxxxxxxxxxxxxxx";
+              }
+            ];
           };
           options.HiddenServiceNonAnonymousMode = optionBool "HiddenServiceNonAnonymousMode";
           options.HiddenServiceStatistics = optionBool "HiddenServiceStatistics";
diff --git a/nixpkgs/nixos/modules/services/system/self-deploy.nix b/nixpkgs/nixos/modules/services/system/self-deploy.nix
new file mode 100644
index 000000000000..33d15e08f4aa
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/system/self-deploy.nix
@@ -0,0 +1,172 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.self-deploy;
+
+  workingDirectory = "/var/lib/nixos-self-deploy";
+  repositoryDirectory = "${workingDirectory}/repo";
+  outPath = "${workingDirectory}/system";
+
+  gitWithRepo = "git -C ${repositoryDirectory}";
+
+  renderNixArgs = args:
+    let
+      toArg = key: value:
+        if builtins.isString value
+        then " --argstr ${lib.escapeShellArg key} ${lib.escapeShellArg value}"
+        else " --arg ${lib.escapeShellArg key} ${lib.escapeShellArg (toString value)}";
+    in
+    lib.concatStrings (lib.mapAttrsToList toArg args);
+
+  isPathType = x: lib.strings.isCoercibleToString x && builtins.substring 0 1 (toString x) == "/";
+
+in
+{
+  options.services.self-deploy = {
+    enable = lib.mkEnableOption "self-deploy";
+
+    nixFile = lib.mkOption {
+      type = lib.types.path;
+
+      default = "/default.nix";
+
+      description = ''
+        Path to nix file in repository. Leading '/' refers to root of
+        git repository.
+      '';
+    };
+
+    nixAttribute = lib.mkOption {
+      type = with lib.types; nullOr str;
+
+      default = null;
+
+      description = ''
+        Attribute of `nixFile` that builds the current system.
+      '';
+    };
+
+    nixArgs = lib.mkOption {
+      type = lib.types.attrs;
+
+      default = { };
+
+      description = ''
+        Arguments to `nix-build` passed as `--argstr` or `--arg` depending on
+        the type.
+      '';
+    };
+
+    switchCommand = lib.mkOption {
+      type = lib.types.enum [ "boot" "switch" "dry-activate" "test" ];
+
+      default = "switch";
+
+      description = ''
+        The `switch-to-configuration` subcommand used.
+      '';
+    };
+
+    repository = lib.mkOption {
+      type = with lib.types; oneOf [ path str ];
+
+      description = ''
+        The repository to fetch from. Must be properly formatted for git.
+
+        If this value is set to a path (must begin with `/`) then it's
+        assumed that the repository is local and the resulting service
+        won't wait for the network to be up.
+
+        If the repository will be fetched over SSH, you must add an
+        entry to `programs.ssh.knownHosts` for the SSH host for the fetch
+        to be successful.
+      '';
+    };
+
+    sshKeyFile = lib.mkOption {
+      type = with lib.types; nullOr path;
+
+      default = null;
+
+      description = ''
+        Path to SSH private key used to fetch private repositories over
+        SSH.
+      '';
+    };
+
+    branch = lib.mkOption {
+      type = lib.types.str;
+
+      default = "master";
+
+      description = ''
+        Branch to track
+
+        Technically speaking any ref can be specified here, as this is
+        passed directly to a `git fetch`, but for the use-case of
+        continuous deployment you're likely to want to specify a branch.
+      '';
+    };
+
+    startAt = lib.mkOption {
+      type = with lib.types; either str (listOf str);
+
+      default = "hourly";
+
+      description = ''
+        The schedule on which to run the `self-deploy` service. Format
+        specified by `systemd.time 7`.
+
+        This value can also be a list of `systemd.time 7` formatted
+        strings, in which case the service will be started on multiple
+        schedules.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services.self-deploy = {
+      wantedBy = [ "multi-user.target" ];
+
+      requires = lib.mkIf (!(isPathType cfg.repository)) [ "network-online.target" ];
+
+      environment.GIT_SSH_COMMAND = lib.mkIf (!(isNull cfg.sshKeyFile))
+        "${pkgs.openssh}/bin/ssh -i ${lib.escapeShellArg cfg.sshKeyFile}";
+
+      restartIfChanged = false;
+
+      path = with pkgs; [
+        git
+        nix
+        systemd
+      ];
+
+      script = ''
+        if [ ! -e ${repositoryDirectory} ]; then
+          mkdir --parents ${repositoryDirectory}
+          git init ${repositoryDirectory}
+        fi
+
+        ${gitWithRepo} fetch ${lib.escapeShellArg cfg.repository} ${lib.escapeShellArg cfg.branch}
+
+        ${gitWithRepo} checkout FETCH_HEAD
+
+        nix-build${renderNixArgs cfg.nixArgs} ${lib.cli.toGNUCommandLineShell { } {
+          attr = cfg.nixAttribute;
+          out-link = outPath;
+        }} ${lib.escapeShellArg "${repositoryDirectory}${cfg.nixFile}"}
+
+        ${lib.optionalString (cfg.switchCommand != "test")
+          "nix-env --profile /nix/var/nix/profiles/system --set ${outPath}"}
+
+        ${outPath}/bin/switch-to-configuration ${cfg.switchCommand}
+
+        rm ${outPath}
+
+        ${gitWithRepo} gc --prune=all
+
+        ${lib.optionalString (cfg.switchCommand == "boot") "systemctl reboot"}
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/torrent/transmission.nix b/nixpkgs/nixos/modules/services/torrent/transmission.nix
index 7bec073e26f7..34a5219c9594 100644
--- a/nixpkgs/nixos/modules/services/torrent/transmission.nix
+++ b/nixpkgs/nixos/modules/services/torrent/transmission.nix
@@ -5,7 +5,7 @@ with lib;
 let
   cfg = config.services.transmission;
   inherit (config.environment) etc;
-  apparmor = config.security.apparmor.enable;
+  apparmor = config.security.apparmor;
   rootDir = "/run/transmission";
   homeDir = "/var/lib/transmission";
   settingsDir = ".config/transmission-daemon";
@@ -184,8 +184,8 @@ in
 
     systemd.services.transmission = {
       description = "Transmission BitTorrent Service";
-      after = [ "network.target" ] ++ optional apparmor "apparmor.service";
-      requires = optional apparmor "apparmor.service";
+      after = [ "network.target" ] ++ optional apparmor.enable "apparmor.service";
+      requires = optional apparmor.enable "apparmor.service";
       wantedBy = [ "multi-user.target" ];
       environment.CURL_CA_BUNDLE = etc."ssl/certs/ca-certificates.crt".source;
 
@@ -358,95 +358,39 @@ in
       })
     ];
 
-    security.apparmor.profiles = mkIf apparmor [
-      (pkgs.writeText "apparmor-transmission-daemon" ''
-        include <tunables/global>
-
-        ${pkgs.transmission}/bin/transmission-daemon {
-          include <abstractions/base>
-          include <abstractions/nameservice>
-
-          # NOTE: https://github.com/NixOS/nixpkgs/pull/93457
-          # will remove the need for these by fixing <abstractions/base>
-          r ${etc."hosts".source},
-          r /etc/ld-nix.so.preload,
-          ${lib.optionalString (builtins.hasAttr "ld-nix.so.preload" etc) ''
-            r ${etc."ld-nix.so.preload".source},
-            ${concatMapStrings (p: optionalString (p != "") ("mr ${p},\n"))
-              (splitString "\n" config.environment.etc."ld-nix.so.preload".text)}
-          ''}
-          r ${etc."ssl/certs/ca-certificates.crt".source},
-          r ${pkgs.tzdata}/share/zoneinfo/**,
-          r ${pkgs.stdenv.cc.libc}/share/i18n/**,
-          r ${pkgs.stdenv.cc.libc}/share/locale/**,
-
-          mr ${getLib pkgs.stdenv.cc.cc}/lib/*.so*,
-          mr ${getLib pkgs.stdenv.cc.libc}/lib/*.so*,
-          mr ${getLib pkgs.attr}/lib/libattr*.so*,
-          mr ${getLib pkgs.c-ares}/lib/libcares*.so*,
-          mr ${getLib pkgs.curl}/lib/libcurl*.so*,
-          mr ${getLib pkgs.keyutils}/lib/libkeyutils*.so*,
-          mr ${getLib pkgs.libcap}/lib/libcap*.so*,
-          mr ${getLib pkgs.libevent}/lib/libevent*.so*,
-          mr ${getLib pkgs.libgcrypt}/lib/libgcrypt*.so*,
-          mr ${getLib pkgs.libgpgerror}/lib/libgpg-error*.so*,
-          mr ${getLib pkgs.libkrb5}/lib/lib*.so*,
-          mr ${getLib pkgs.libssh2}/lib/libssh2*.so*,
-          mr ${getLib pkgs.lz4}/lib/liblz4*.so*,
-          mr ${getLib pkgs.nghttp2}/lib/libnghttp2*.so*,
-          mr ${getLib pkgs.openssl}/lib/libcrypto*.so*,
-          mr ${getLib pkgs.openssl}/lib/libssl*.so*,
-          mr ${getLib pkgs.systemd}/lib/libsystemd*.so*,
-          mr ${getLib pkgs.util-linuxMinimal.out}/lib/libblkid.so*,
-          mr ${getLib pkgs.util-linuxMinimal.out}/lib/libmount.so*,
-          mr ${getLib pkgs.util-linuxMinimal.out}/lib/libuuid.so*,
-          mr ${getLib pkgs.xz}/lib/liblzma*.so*,
-          mr ${getLib pkgs.zlib}/lib/libz*.so*,
-
-          r @{PROC}/sys/kernel/random/uuid,
-          r @{PROC}/sys/vm/overcommit_memory,
-          # @{pid} is not a kernel variable yet but a regexp
-          #r @{PROC}/@{pid}/environ,
-          r @{PROC}/@{pid}/mounts,
-          rwk /tmp/tr_session_id_*,
-          r /run/systemd/resolve/stub-resolv.conf,
-
-          r ${pkgs.openssl.out}/etc/**,
-          r ${config.systemd.services.transmission.environment.CURL_CA_BUNDLE},
-          r ${pkgs.transmission}/share/transmission/**,
-
-          owner rw ${cfg.home}/${settingsDir}/**,
-          rw ${cfg.settings.download-dir}/**,
-          ${optionalString cfg.settings.incomplete-dir-enabled ''
-            rw ${cfg.settings.incomplete-dir}/**,
-          ''}
-          ${optionalString cfg.settings.watch-dir-enabled ''
-            rw ${cfg.settings.watch-dir}/**,
-          ''}
-          profile dirs {
-            rw ${cfg.settings.download-dir}/**,
-            ${optionalString cfg.settings.incomplete-dir-enabled ''
-              rw ${cfg.settings.incomplete-dir}/**,
-            ''}
-            ${optionalString cfg.settings.watch-dir-enabled ''
-              rw ${cfg.settings.watch-dir}/**,
-            ''}
-          }
-
-          ${optionalString (cfg.settings.script-torrent-done-enabled &&
-                            cfg.settings.script-torrent-done-filename != "") ''
-            # Stack transmission_directories profile on top of
-            # any existing profile for script-torrent-done-filename
-            # FIXME: to be tested as I'm not sure it works well with NoNewPrivileges=
-            # https://gitlab.com/apparmor/apparmor/-/wikis/AppArmorStacking#seccomp-and-no_new_privs
-            px ${cfg.settings.script-torrent-done-filename} -> &@{dirs},
-          ''}
+    security.apparmor.policies."bin.transmission-daemon".profile = ''
+      include "${pkgs.transmission.apparmor}/bin.transmission-daemon"
+    '';
+    security.apparmor.includes."local/bin.transmission-daemon" = ''
+      r ${config.systemd.services.transmission.environment.CURL_CA_BUNDLE},
+
+      owner rw ${cfg.home}/${settingsDir}/**,
+      rw ${cfg.settings.download-dir}/**,
+      ${optionalString cfg.settings.incomplete-dir-enabled ''
+        rw ${cfg.settings.incomplete-dir}/**,
+      ''}
+      ${optionalString cfg.settings.watch-dir-enabled ''
+        rw ${cfg.settings.watch-dir}/**,
+      ''}
+      profile dirs {
+        rw ${cfg.settings.download-dir}/**,
+        ${optionalString cfg.settings.incomplete-dir-enabled ''
+          rw ${cfg.settings.incomplete-dir}/**,
+        ''}
+        ${optionalString cfg.settings.watch-dir-enabled ''
+          rw ${cfg.settings.watch-dir}/**,
+        ''}
+      }
 
-          # FIXME: enable customizing using https://github.com/NixOS/nixpkgs/pull/93457
-          # include <local/transmission-daemon>
-        }
-      '')
-    ];
+      ${optionalString (cfg.settings.script-torrent-done-enabled &&
+                        cfg.settings.script-torrent-done-filename != "") ''
+        # Stack transmission_directories profile on top of
+        # any existing profile for script-torrent-done-filename
+        # FIXME: to be tested as I'm not sure it works well with NoNewPrivileges=
+        # https://gitlab.com/apparmor/apparmor/-/wikis/AppArmorStacking#seccomp-and-no_new_privs
+        px ${cfg.settings.script-torrent-done-filename} -> &@{dirs},
+      ''}
+    '';
   };
 
   meta.maintainers = with lib.maintainers; [ julm ];
diff --git a/nixpkgs/nixos/modules/services/video/epgstation/default.nix b/nixpkgs/nixos/modules/services/video/epgstation/default.nix
index 8d6d431fa55a..b13393c8983a 100644
--- a/nixpkgs/nixos/modules/services/video/epgstation/default.nix
+++ b/nixpkgs/nixos/modules/services/video/epgstation/default.nix
@@ -27,7 +27,7 @@ let
 
     # NOTE: Use password authentication, since mysqljs does not yet support auth_socket
     if [ ! -e /var/lib/epgstation/db-created ]; then
-      ${pkgs.mysql}/bin/mysql -e \
+      ${pkgs.mariadb}/bin/mysql -e \
         "GRANT ALL ON \`${cfg.database.name}\`.* TO '${username}'@'localhost' IDENTIFIED by '$DB_PASSWORD';"
       touch /var/lib/epgstation/db-created
     fi
@@ -224,7 +224,7 @@ in
 
     services.mysql = {
       enable = mkDefault true;
-      package = mkDefault pkgs.mysql;
+      package = mkDefault pkgs.mariadb;
       ensureDatabases = [ cfg.database.name ];
       # FIXME: enable once mysqljs supports auth_socket
       # ensureUsers = [ {
diff --git a/nixpkgs/nixos/modules/services/video/mirakurun.nix b/nixpkgs/nixos/modules/services/video/mirakurun.nix
index ce1dabe6bfa1..6ea73fa5c679 100644
--- a/nixpkgs/nixos/modules/services/video/mirakurun.nix
+++ b/nixpkgs/nixos/modules/services/video/mirakurun.nix
@@ -8,6 +8,18 @@ let
   username = config.users.users.mirakurun.name;
   groupname = config.users.users.mirakurun.group;
   settingsFmt = pkgs.formats.yaml {};
+
+  polkitRule = pkgs.writeTextDir "share/polkit-1/rules.d/10-mirakurun.rules" ''
+    polkit.addRule(function (action, subject) {
+      if (
+        (action.id == "org.debian.pcsc-lite.access_pcsc" ||
+          action.id == "org.debian.pcsc-lite.access_card") &&
+        subject.user == "${username}"
+      ) {
+        return polkit.Result.YES;
+      }
+    });
+  '';
 in
   {
     options = {
@@ -48,6 +60,15 @@ in
           '';
         };
 
+        allowSmartCardAccess = mkOption {
+          type = types.bool;
+          default = true;
+          description = ''
+            Install polkit rules to allow Mirakurun to access smart card readers
+            which is commonly used along with tuner devices.
+          '';
+        };
+
         serverSettings = mkOption {
           type = settingsFmt.type;
           default = {};
@@ -110,7 +131,7 @@ in
     };
 
     config = mkIf cfg.enable {
-      environment.systemPackages = [ mirakurun ];
+      environment.systemPackages = [ mirakurun ] ++ optional cfg.allowSmartCardAccess polkitRule;
       environment.etc = {
         "mirakurun/server.yml".source = settingsFmt.generate "server.yml" cfg.serverSettings;
         "mirakurun/tuners.yml" = mkIf (cfg.tunerSettings != null) {
diff --git a/nixpkgs/nixos/modules/services/wayland/cage.nix b/nixpkgs/nixos/modules/services/wayland/cage.nix
index 14d84c4ce0f9..2e71abb69fc4 100644
--- a/nixpkgs/nixos/modules/services/wayland/cage.nix
+++ b/nixpkgs/nixos/modules/services/wayland/cage.nix
@@ -93,6 +93,6 @@ in {
     systemd.defaultUnit = "graphical.target";
   };
 
-  meta.maintainers = with lib.maintainers; [ matthewbauer flokli ];
+  meta.maintainers = with lib.maintainers; [ matthewbauer ];
 
 }
diff --git a/nixpkgs/nixos/modules/services/web-apps/bookstack.nix b/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
index 83d05ffbad9a..34a31af9c9da 100644
--- a/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
@@ -292,6 +292,8 @@ in {
         WorkingDirectory = "${bookstack}";
       };
       script = ''
+        # set permissions
+        umask 077
         # create .env file
         echo "
         APP_KEY=base64:$(head -n1 ${cfg.appKeyFile})
@@ -317,13 +319,14 @@ in {
         ${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "SESSION_SECURE_COOKIE=true"}
         ${toString cfg.extraConfig}
         " > "${cfg.dataDir}/.env"
-        # set permissions
-        chmod 700 "${cfg.dataDir}/.env"
 
         # migrate db
         ${pkgs.php}/bin/php artisan migrate --force
 
-        # create caches
+        # clear & create caches (needed in case of update)
+        ${pkgs.php}/bin/php artisan cache:clear
+        ${pkgs.php}/bin/php artisan config:clear
+        ${pkgs.php}/bin/php artisan view:clear
         ${pkgs.php}/bin/php artisan config:cache
         ${pkgs.php}/bin/php artisan route:cache
         ${pkgs.php}/bin/php artisan view:cache
diff --git a/nixpkgs/nixos/modules/services/web-apps/discourse.nix b/nixpkgs/nixos/modules/services/web-apps/discourse.nix
index 00b58d502574..49958fc6190c 100644
--- a/nixpkgs/nixos/modules/services/web-apps/discourse.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/discourse.nix
@@ -5,11 +5,16 @@ let
 
   cfg = config.services.discourse;
 
+  # Keep in sync with https://github.com/discourse/discourse_docker/blob/master/image/base/Dockerfile#L5
+  upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13;
+
   postgresqlPackage = if config.services.postgresql.enable then
                         config.services.postgresql.package
                       else
                         pkgs.postgresql;
 
+  postgresqlVersion = lib.getVersion postgresqlPackage;
+
   # We only want to create a database if we're actually going to connect to it.
   databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == null;
 
@@ -263,6 +268,17 @@ in
             Discourse database user.
           '';
         };
+
+        ignorePostgresqlVersion = lib.mkOption {
+          type = lib.types.bool;
+          default = false;
+          description = ''
+            Whether to allow other versions of PostgreSQL than the
+            recommended one. Only effective when
+            <option>services.discourse.database.createLocally</option>
+            is enabled.
+          '';
+        };
       };
 
       redis = {
@@ -398,6 +414,14 @@ in
               How OpenSSL checks the certificate, see http://api.rubyonrails.org/classes/ActionMailer/Base.html
             '';
           };
+
+          forceTLS = lib.mkOption {
+            type = lib.types.bool;
+            default = false;
+            description = ''
+              Force implicit TLS as per RFC 8314 3.3.
+            '';
+          };
         };
 
         incoming = {
@@ -497,6 +521,12 @@ in
         assertion = cfg.hostname != "";
         message = "Could not automatically determine hostname, set service.discourse.hostname manually.";
       }
+      {
+        assertion = cfg.database.ignorePostgresqlVersion || (databaseActuallyCreateLocally -> upstreamPostgresqlVersion == postgresqlVersion);
+        message = "The PostgreSQL version recommended for use with Discourse is ${upstreamPostgresqlVersion}, you're using ${postgresqlVersion}. "
+                  + "Either update your PostgreSQL package to the correct version or set services.discourse.database.ignorePostgresqlVersion. "
+                  + "See https://nixos.org/manual/nixos/stable/index.html#module-postgresql for details on how to upgrade PostgreSQL.";
+      }
     ];
 
 
@@ -530,6 +560,7 @@ in
       smtp_authentication = cfg.mail.outgoing.authentication;
       smtp_enable_start_tls = cfg.mail.outgoing.enableStartTLSAuto;
       smtp_openssl_verify_mode = cfg.mail.outgoing.opensslVerifyMode;
+      smtp_force_tls = cfg.mail.outgoing.forceTLS;
 
       load_mini_profiler = true;
       mini_profiler_snapshots_period = 0;
@@ -542,8 +573,8 @@ in
 
       redis_host = cfg.redis.host;
       redis_port = 6379;
-      redis_slave_host = null;
-      redis_slave_port = 6379;
+      redis_replica_host = null;
+      redis_replica_port = 6379;
       redis_db = cfg.redis.dbNumber;
       redis_password = cfg.redis.passwordFile;
       redis_skip_client_commands = false;
@@ -552,8 +583,8 @@ in
       message_bus_redis_enabled = false;
       message_bus_redis_host = "localhost";
       message_bus_redis_port = 6379;
-      message_bus_redis_slave_host = null;
-      message_bus_redis_slave_port = 6379;
+      message_bus_redis_replica_host = null;
+      message_bus_redis_replica_port = 6379;
       message_bus_redis_db = 0;
       message_bus_redis_password = null;
       message_bus_redis_skip_client_commands = false;
@@ -606,6 +637,7 @@ in
       allowed_theme_repos = null;
       enable_email_sync_demon = false;
       max_digests_enqueued_per_30_mins_per_site = 10000;
+      cluster_name = null;
     };
 
     services.redis.enable = lib.mkDefault (cfg.redis.host == "localhost");
@@ -661,12 +693,13 @@ in
       ];
       path = cfg.package.runtimeDeps ++ [
         postgresqlPackage
-        pkgs.replace
+        pkgs.replace-secret
         cfg.package.rake
       ];
       environment = cfg.package.runtimeEnv // {
         UNICORN_TIMEOUT = builtins.toString cfg.unicornTimeout;
         UNICORN_SIDEKIQS = builtins.toString cfg.sidekiqProcesses;
+        MALLOC_ARENA_MAX = "2";
       };
 
       preStart =
@@ -688,10 +721,7 @@ in
 
           mkSecretReplacement = file:
             lib.optionalString (file != null) ''
-              (
-                  password=$(<'${file}')
-                  replace-literal -fe '${file}' "$password" /run/discourse/config/discourse.conf
-              )
+              replace-secret '${file}' '${file}' /run/discourse/config/discourse.conf
             '';
         in ''
           set -o errexit -o pipefail -o nounset -o errtrace
@@ -713,11 +743,12 @@ in
                   cfg.siteSettings
                   "/run/discourse/config/nixos_site_settings.json"
               }
-              install -T -m 0400 -o discourse ${discourseConf} /run/discourse/config/discourse.conf
+              install -T -m 0600 -o discourse ${discourseConf} /run/discourse/config/discourse.conf
               ${mkSecretReplacement cfg.database.passwordFile}
               ${mkSecretReplacement cfg.mail.outgoing.passwordFile}
               ${mkSecretReplacement cfg.redis.passwordFile}
               ${mkSecretReplacement cfg.secretKeyBaseFile}
+              chmod 0400 /run/discourse/config/discourse.conf
           )
 
           discourse-rake db:migrate >>/var/log/discourse/db_migration.log
diff --git a/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix b/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix
index 2e755ae9d523..b87fecae65f2 100644
--- a/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix
@@ -89,7 +89,7 @@ in {
     # create database
     services.mysql = mkIf cfg.createDatabase {
       enable = true;
-      package = mkDefault pkgs.mysql;
+      package = mkDefault pkgs.mariadb;
       ensureUsers = [{
         name = "engelsystem";
         ensurePermissions = { "engelsystem.*" = "ALL PRIVILEGES"; };
diff --git a/nixpkgs/nixos/modules/services/web-apps/keycloak.nix b/nixpkgs/nixos/modules/services/web-apps/keycloak.nix
index a93e93279331..dc66c2966564 100644
--- a/nixpkgs/nixos/modules/services/web-apps/keycloak.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/keycloak.nix
@@ -54,6 +54,7 @@ in
 
     frontendUrl = lib.mkOption {
       type = lib.types.str;
+      apply = x: if lib.hasSuffix "/" x then x else x + "/";
       example = "keycloak.example.com/auth";
       description = ''
         The public URL used as base for all frontend requests. Should
@@ -84,105 +85,126 @@ in
       '';
     };
 
-    certificatePrivateKeyBundle = lib.mkOption {
+    sslCertificate = lib.mkOption {
       type = lib.types.nullOr lib.types.path;
       default = null;
       example = "/run/keys/ssl_cert";
       description = ''
-        The path to a PEM formatted bundle of the private key and
-        certificate to use for TLS connections.
+        The path to a PEM formatted certificate to use for TLS/SSL
+        connections.
 
         This should be a string, not a Nix path, since Nix paths are
         copied into the world-readable Nix store.
       '';
     };
 
-    databaseType = lib.mkOption {
-      type = lib.types.enum [ "mysql" "postgresql" ];
-      default = "postgresql";
-      example = "mysql";
+    sslCertificateKey = lib.mkOption {
+      type = lib.types.nullOr lib.types.path;
+      default = null;
+      example = "/run/keys/ssl_key";
       description = ''
-        The type of database Keycloak should connect to.
-      '';
-    };
+        The path to a PEM formatted private key to use for TLS/SSL
+        connections.
 
-    databaseHost = lib.mkOption {
-      type = lib.types.str;
-      default = "localhost";
-      description = ''
-        Hostname of the database to connect to.
+        This should be a string, not a Nix path, since Nix paths are
+        copied into the world-readable Nix store.
       '';
     };
 
-    databasePort =
-      let
-        dbPorts = {
-          postgresql = 5432;
-          mysql = 3306;
-        };
-      in
-        lib.mkOption {
-          type = lib.types.port;
-          default = dbPorts.${cfg.databaseType};
-          description = ''
-            Port of the database to connect to.
-          '';
-        };
+    database = {
+      type = lib.mkOption {
+        type = lib.types.enum [ "mysql" "postgresql" ];
+        default = "postgresql";
+        example = "mysql";
+        description = ''
+          The type of database Keycloak should connect to.
+        '';
+      };
 
-    databaseUseSSL = lib.mkOption {
-      type = lib.types.bool;
-      default = cfg.databaseHost != "localhost";
-      description = ''
-        Whether the database connection should be secured by SSL /
-        TLS.
-      '';
-    };
+      host = lib.mkOption {
+        type = lib.types.str;
+        default = "localhost";
+        description = ''
+          Hostname of the database to connect to.
+        '';
+      };
 
-    databaseCaCert = lib.mkOption {
-      type = lib.types.nullOr lib.types.path;
-      default = null;
-      description = ''
-        The SSL / TLS CA certificate that verifies the identity of the
-        database server.
+      port =
+        let
+          dbPorts = {
+            postgresql = 5432;
+            mysql = 3306;
+          };
+        in
+          lib.mkOption {
+            type = lib.types.port;
+            default = dbPorts.${cfg.database.type};
+            description = ''
+              Port of the database to connect to.
+            '';
+          };
 
-        Required when PostgreSQL is used and SSL is turned on.
+      useSSL = lib.mkOption {
+        type = lib.types.bool;
+        default = cfg.database.host != "localhost";
+        description = ''
+          Whether the database connection should be secured by SSL /
+          TLS.
+        '';
+      };
 
-        For MySQL, if left at <literal>null</literal>, the default
-        Java keystore is used, which should suffice if the server
-        certificate is issued by an official CA.
-      '';
-    };
+      caCert = lib.mkOption {
+        type = lib.types.nullOr lib.types.path;
+        default = null;
+        description = ''
+          The SSL / TLS CA certificate that verifies the identity of the
+          database server.
 
-    databaseCreateLocally = lib.mkOption {
-      type = lib.types.bool;
-      default = true;
-      description = ''
-        Whether a database should be automatically created on the
-        local host. Set this to false if you plan on provisioning a
-        local database yourself. This has no effect if
-        services.keycloak.databaseHost is customized.
-      '';
-    };
+          Required when PostgreSQL is used and SSL is turned on.
 
-    databaseUsername = lib.mkOption {
-      type = lib.types.str;
-      default = "keycloak";
-      description = ''
-        Username to use when connecting to an external or manually
-        provisioned database; has no effect when a local database is
-        automatically provisioned.
-      '';
-    };
+          For MySQL, if left at <literal>null</literal>, the default
+          Java keystore is used, which should suffice if the server
+          certificate is issued by an official CA.
+        '';
+      };
 
-    databasePasswordFile = lib.mkOption {
-      type = lib.types.path;
-      example = "/run/keys/db_password";
-      description = ''
-        File containing the database password.
+      createLocally = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        description = ''
+          Whether a database should be automatically created on the
+          local host. Set this to false if you plan on provisioning a
+          local database yourself. This has no effect if
+          services.keycloak.database.host is customized.
+        '';
+      };
 
-        This should be a string, not a Nix path, since Nix paths are
-        copied into the world-readable Nix store.
-      '';
+      username = lib.mkOption {
+        type = lib.types.str;
+        default = "keycloak";
+        description = ''
+          Username to use when connecting to an external or manually
+          provisioned database; has no effect when a local database is
+          automatically provisioned.
+
+          To use this with a local database, set <xref
+          linkend="opt-services.keycloak.database.createLocally" /> to
+          <literal>false</literal> and create the database and user
+          manually. The database should be called
+          <literal>keycloak</literal>.
+        '';
+      };
+
+      passwordFile = lib.mkOption {
+        type = lib.types.path;
+        example = "/run/keys/db_password";
+        description = ''
+          File containing the database password.
+
+          This should be a string, not a Nix path, since Nix paths are
+          copied into the world-readable Nix store.
+        '';
+      };
     };
 
     package = lib.mkOption {
@@ -255,12 +277,12 @@ in
   config =
     let
       # We only want to create a database if we're actually going to connect to it.
-      databaseActuallyCreateLocally = cfg.databaseCreateLocally && cfg.databaseHost == "localhost";
-      createLocalPostgreSQL = databaseActuallyCreateLocally && cfg.databaseType == "postgresql";
-      createLocalMySQL = databaseActuallyCreateLocally && cfg.databaseType == "mysql";
+      databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == "localhost";
+      createLocalPostgreSQL = databaseActuallyCreateLocally && cfg.database.type == "postgresql";
+      createLocalMySQL = databaseActuallyCreateLocally && cfg.database.type == "mysql";
 
       mySqlCaKeystore = pkgs.runCommandNoCC "mysql-ca-keystore" {} ''
-        ${pkgs.jre}/bin/keytool -importcert -trustcacerts -alias MySQLCACert -file ${cfg.databaseCaCert} -keystore $out -storepass notsosecretpassword -noprompt
+        ${pkgs.jre}/bin/keytool -importcert -trustcacerts -alias MySQLCACert -file ${cfg.database.caCert} -keystore $out -storepass notsosecretpassword -noprompt
       '';
 
       keycloakConfig' = builtins.foldl' lib.recursiveUpdate {
@@ -276,11 +298,11 @@ in
         };
         "subsystem=datasources"."data-source=KeycloakDS" = {
           max-pool-size = "20";
-          user-name = if databaseActuallyCreateLocally then "keycloak" else cfg.databaseUsername;
+          user-name = if databaseActuallyCreateLocally then "keycloak" else cfg.database.username;
           password = "@db-password@";
         };
       } [
-        (lib.optionalAttrs (cfg.databaseType == "postgresql") {
+        (lib.optionalAttrs (cfg.database.type == "postgresql") {
           "subsystem=datasources" = {
             "jdbc-driver=postgresql" = {
               driver-module-name = "org.postgresql";
@@ -288,16 +310,16 @@ in
               driver-xa-datasource-class-name = "org.postgresql.xa.PGXADataSource";
             };
             "data-source=KeycloakDS" = {
-              connection-url = "jdbc:postgresql://${cfg.databaseHost}:${builtins.toString cfg.databasePort}/keycloak";
+              connection-url = "jdbc:postgresql://${cfg.database.host}:${builtins.toString cfg.database.port}/keycloak";
               driver-name = "postgresql";
-              "connection-properties=ssl".value = lib.boolToString cfg.databaseUseSSL;
-            } // (lib.optionalAttrs (cfg.databaseCaCert != null) {
-              "connection-properties=sslrootcert".value = cfg.databaseCaCert;
+              "connection-properties=ssl".value = lib.boolToString cfg.database.useSSL;
+            } // (lib.optionalAttrs (cfg.database.caCert != null) {
+              "connection-properties=sslrootcert".value = cfg.database.caCert;
               "connection-properties=sslmode".value = "verify-ca";
             });
           };
         })
-        (lib.optionalAttrs (cfg.databaseType == "mysql") {
+        (lib.optionalAttrs (cfg.database.type == "mysql") {
           "subsystem=datasources" = {
             "jdbc-driver=mysql" = {
               driver-module-name = "com.mysql";
@@ -305,22 +327,22 @@ in
               driver-class-name = "com.mysql.jdbc.Driver";
             };
             "data-source=KeycloakDS" = {
-              connection-url = "jdbc:mysql://${cfg.databaseHost}:${builtins.toString cfg.databasePort}/keycloak";
+              connection-url = "jdbc:mysql://${cfg.database.host}:${builtins.toString cfg.database.port}/keycloak";
               driver-name = "mysql";
-              "connection-properties=useSSL".value = lib.boolToString cfg.databaseUseSSL;
-              "connection-properties=requireSSL".value = lib.boolToString cfg.databaseUseSSL;
-              "connection-properties=verifyServerCertificate".value = lib.boolToString cfg.databaseUseSSL;
+              "connection-properties=useSSL".value = lib.boolToString cfg.database.useSSL;
+              "connection-properties=requireSSL".value = lib.boolToString cfg.database.useSSL;
+              "connection-properties=verifyServerCertificate".value = lib.boolToString cfg.database.useSSL;
               "connection-properties=characterEncoding".value = "UTF-8";
               valid-connection-checker-class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker";
               validate-on-match = true;
               exception-sorter-class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter";
-            } // (lib.optionalAttrs (cfg.databaseCaCert != null) {
+            } // (lib.optionalAttrs (cfg.database.caCert != null) {
               "connection-properties=trustCertificateKeyStoreUrl".value = "file:${mySqlCaKeystore}";
               "connection-properties=trustCertificateKeyStorePassword".value = "notsosecretpassword";
             });
           };
         })
-        (lib.optionalAttrs (cfg.certificatePrivateKeyBundle != null) {
+        (lib.optionalAttrs (cfg.sslCertificate != null && cfg.sslCertificateKey != null) {
           "socket-binding-group=standard-sockets"."socket-binding=https".port = cfg.httpsPort;
           "core-service=management"."security-realm=UndertowRealm"."server-identity=ssl" = {
             keystore-path = "/run/keycloak/ssl/certificate_private_key_bundle.p12";
@@ -531,7 +553,9 @@ in
 
       jbossCliScript = pkgs.writeText "jboss-cli-script" (mkJbossScript keycloakConfig');
 
-      keycloakConfig = pkgs.runCommandNoCC "keycloak-config" {} ''
+      keycloakConfig = pkgs.runCommandNoCC "keycloak-config" {
+        nativeBuildInputs = [ cfg.package ];
+      } ''
         export JBOSS_BASE_DIR="$(pwd -P)";
         export JBOSS_MODULEPATH="${cfg.package}/modules";
         export JBOSS_LOG_DIR="$JBOSS_BASE_DIR/log";
@@ -541,11 +565,11 @@ in
 
         mkdir -p {deployments,ssl}
 
-        "${cfg.package}/bin/standalone.sh"&
+        standalone.sh&
 
         attempt=1
         max_attempts=30
-        while ! ${cfg.package}/bin/jboss-cli.sh --connect ':read-attribute(name=server-state)'; do
+        while ! jboss-cli.sh --connect ':read-attribute(name=server-state)'; do
             if [[ "$attempt" == "$max_attempts" ]]; then
                 echo "ERROR: Could not connect to Keycloak after $attempt attempts! Failing.." >&2
                 exit 1
@@ -555,7 +579,7 @@ in
             (( attempt++ ))
         done
 
-        ${cfg.package}/bin/jboss-cli.sh --connect --file=${jbossCliScript} --echo-command
+        jboss-cli.sh --connect --file=${jbossCliScript} --echo-command
 
         cp configuration/standalone.xml $out
       '';
@@ -564,8 +588,8 @@ in
 
         assertions = [
           {
-            assertion = (cfg.databaseUseSSL && cfg.databaseType == "postgresql") -> (cfg.databaseCaCert != null);
-            message = "A CA certificate must be specified (in 'services.keycloak.databaseCaCert') when PostgreSQL is used with SSL";
+            assertion = (cfg.database.useSSL && cfg.database.type == "postgresql") -> (cfg.database.caCert != null);
+            message = "A CA certificate must be specified (in 'services.keycloak.database.caCert') when PostgreSQL is used with SSL";
           }
         ];
 
@@ -575,6 +599,7 @@ in
           after = [ "postgresql.service" ];
           before = [ "keycloak.service" ];
           bindsTo = [ "postgresql.service" ];
+          path = [ config.services.postgresql.package ];
           serviceConfig = {
             Type = "oneshot";
             RemainAfterExit = true;
@@ -582,13 +607,15 @@ in
             Group = "postgres";
           };
           script = ''
-            set -eu
+            set -o errexit -o pipefail -o nounset -o errtrace
+            shopt -s inherit_errexit
 
-            PSQL=${config.services.postgresql.package}/bin/psql
+            create_role="$(mktemp)"
+            trap 'rm -f "$create_role"' ERR EXIT
 
-            db_password="$(<'${cfg.databasePasswordFile}')"
-            $PSQL -tAc "SELECT 1 FROM pg_roles WHERE rolname='keycloak'" | grep -q 1 || $PSQL -tAc "CREATE ROLE keycloak WITH LOGIN PASSWORD '$db_password' CREATEDB"
-            $PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = 'keycloak'" | grep -q 1 || $PSQL -tAc 'CREATE DATABASE "keycloak" OWNER "keycloak"'
+            echo "CREATE ROLE keycloak WITH LOGIN PASSWORD '$(<'${cfg.database.passwordFile}')' CREATEDB" > "$create_role"
+            psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='keycloak'" | grep -q 1 || psql -tA --file="$create_role"
+            psql -tAc "SELECT 1 FROM pg_database WHERE datname = 'keycloak'" | grep -q 1 || psql -tAc 'CREATE DATABASE "keycloak" OWNER "keycloak"'
           '';
         };
 
@@ -596,6 +623,7 @@ in
           after = [ "mysql.service" ];
           before = [ "keycloak.service" ];
           bindsTo = [ "mysql.service" ];
+          path = [ config.services.mysql.package ];
           serviceConfig = {
             Type = "oneshot";
             RemainAfterExit = true;
@@ -603,13 +631,14 @@ in
             Group = config.services.mysql.group;
           };
           script = ''
-            set -eu
+            set -o errexit -o pipefail -o nounset -o errtrace
+            shopt -s inherit_errexit
 
-            db_password="$(<'${cfg.databasePasswordFile}')"
+            db_password="$(<'${cfg.database.passwordFile}')"
             ( echo "CREATE USER IF NOT EXISTS 'keycloak'@'localhost' IDENTIFIED BY '$db_password';"
               echo "CREATE DATABASE keycloak CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
               echo "GRANT ALL PRIVILEGES ON keycloak.* TO 'keycloak'@'localhost';"
-            ) | ${config.services.mysql.package}/bin/mysql -N
+            ) | mysql -N
           '';
         };
 
@@ -627,6 +656,11 @@ in
             after = databaseServices;
             bindsTo = databaseServices;
             wantedBy = [ "multi-user.target" ];
+            path = with pkgs; [
+              cfg.package
+              openssl
+              replace-secret
+            ];
             environment = {
               JBOSS_LOG_DIR = "/var/log/keycloak";
               JBOSS_BASE_DIR = "/run/keycloak";
@@ -635,29 +669,38 @@ in
             serviceConfig = {
               ExecStartPre = let
                 startPreFullPrivileges = ''
-                  set -eu
+                  set -o errexit -o pipefail -o nounset -o errtrace
+                  shopt -s inherit_errexit
 
-                  install -T -m 0400 -o keycloak -g keycloak '${cfg.databasePasswordFile}' /run/keycloak/secrets/db_password
-                '' + lib.optionalString (cfg.certificatePrivateKeyBundle != null) ''
-                  install -T -m 0400 -o keycloak -g keycloak '${cfg.certificatePrivateKeyBundle}' /run/keycloak/secrets/ssl_cert_pk_bundle
+                  umask u=rwx,g=,o=
+
+                  install -T -m 0400 -o keycloak -g keycloak '${cfg.database.passwordFile}' /run/keycloak/secrets/db_password
+                '' + lib.optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
+                  install -T -m 0400 -o keycloak -g keycloak '${cfg.sslCertificate}' /run/keycloak/secrets/ssl_cert
+                  install -T -m 0400 -o keycloak -g keycloak '${cfg.sslCertificateKey}' /run/keycloak/secrets/ssl_key
                 '';
                 startPre = ''
-                  set -eu
+                  set -o errexit -o pipefail -o nounset -o errtrace
+                  shopt -s inherit_errexit
+
+                  umask u=rwx,g=,o=
 
                   install -m 0600 ${cfg.package}/standalone/configuration/*.properties /run/keycloak/configuration
                   install -T -m 0600 ${keycloakConfig} /run/keycloak/configuration/standalone.xml
 
-                  db_password="$(</run/keycloak/secrets/db_password)"
-                  ${pkgs.replace}/bin/replace-literal -fe '@db-password@' "$db_password" /run/keycloak/configuration/standalone.xml
+                  replace-secret '@db-password@' '/run/keycloak/secrets/db_password' /run/keycloak/configuration/standalone.xml
 
                   export JAVA_OPTS=-Djboss.server.config.user.dir=/run/keycloak/configuration
-                  ${cfg.package}/bin/add-user-keycloak.sh -u admin -p '${cfg.initialAdminPassword}'
-                '' + lib.optionalString (cfg.certificatePrivateKeyBundle != null) ''
+                  add-user-keycloak.sh -u admin -p '${cfg.initialAdminPassword}'
+                '' + lib.optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
                   pushd /run/keycloak/ssl/
-                  cat /run/keycloak/secrets/ssl_cert_pk_bundle <(echo) /etc/ssl/certs/ca-certificates.crt > allcerts.pem
-                  ${pkgs.openssl}/bin/openssl pkcs12 -export -in /run/keycloak/secrets/ssl_cert_pk_bundle -chain \
-                                                     -name "${cfg.frontendUrl}" -out certificate_private_key_bundle.p12 \
-                                                     -CAfile allcerts.pem -passout pass:notsosecretpassword
+                  cat /run/keycloak/secrets/ssl_cert <(echo) \
+                      /run/keycloak/secrets/ssl_key <(echo) \
+                      /etc/ssl/certs/ca-certificates.crt \
+                      > allcerts.pem
+                  openssl pkcs12 -export -in /run/keycloak/secrets/ssl_cert -inkey /run/keycloak/secrets/ssl_key -chain \
+                                 -name "${cfg.frontendUrl}" -out certificate_private_key_bundle.p12 \
+                                 -CAfile allcerts.pem -passout pass:notsosecretpassword
                   popd
                 '';
               in [
@@ -685,8 +728,9 @@ in
 
         services.postgresql.enable = lib.mkDefault createLocalPostgreSQL;
         services.mysql.enable = lib.mkDefault createLocalMySQL;
-        services.mysql.package = lib.mkIf createLocalMySQL pkgs.mysql;
+        services.mysql.package = lib.mkIf createLocalMySQL pkgs.mariadb;
       };
 
   meta.doc = ./keycloak.xml;
+  meta.maintainers = [ lib.maintainers.talyz ];
 }
diff --git a/nixpkgs/nixos/modules/services/web-apps/keycloak.xml b/nixpkgs/nixos/modules/services/web-apps/keycloak.xml
index ca5e223eee46..7ba656c20f16 100644
--- a/nixpkgs/nixos/modules/services/web-apps/keycloak.xml
+++ b/nixpkgs/nixos/modules/services/web-apps/keycloak.xml
@@ -41,31 +41,31 @@
        <productname>PostgreSQL</productname> or
        <productname>MySQL</productname>. Which one is used can be
        configured in <xref
-       linkend="opt-services.keycloak.databaseType" />. The selected
+       linkend="opt-services.keycloak.database.type" />. The selected
        database will automatically be enabled and a database and role
        created unless <xref
-       linkend="opt-services.keycloak.databaseHost" /> is changed from
+       linkend="opt-services.keycloak.database.host" /> is changed from
        its default of <literal>localhost</literal> or <xref
-       linkend="opt-services.keycloak.databaseCreateLocally" /> is set
+       linkend="opt-services.keycloak.database.createLocally" /> is set
        to <literal>false</literal>.
      </para>
 
      <para>
        External database access can also be configured by setting
-       <xref linkend="opt-services.keycloak.databaseHost" />, <xref
-       linkend="opt-services.keycloak.databaseUsername" />, <xref
-       linkend="opt-services.keycloak.databaseUseSSL" /> and <xref
-       linkend="opt-services.keycloak.databaseCaCert" /> as
+       <xref linkend="opt-services.keycloak.database.host" />, <xref
+       linkend="opt-services.keycloak.database.username" />, <xref
+       linkend="opt-services.keycloak.database.useSSL" /> and <xref
+       linkend="opt-services.keycloak.database.caCert" /> as
        appropriate. Note that you need to manually create a database
        called <literal>keycloak</literal> and allow the configured
        database user full access to it.
      </para>
 
      <para>
-       <xref linkend="opt-services.keycloak.databasePasswordFile" />
+       <xref linkend="opt-services.keycloak.database.passwordFile" />
        must be set to the path to a file containing the password used
-       to log in to the database. If <xref linkend="opt-services.keycloak.databaseHost" />
-       and <xref linkend="opt-services.keycloak.databaseCreateLocally" />
+       to log in to the database. If <xref linkend="opt-services.keycloak.database.host" />
+       and <xref linkend="opt-services.keycloak.database.createLocally" />
        are kept at their defaults, the database role
        <literal>keycloak</literal> with that password is provisioned
        on the local database instance.
@@ -115,17 +115,17 @@
      </para>
 
      <para>
-       For HTTPS support, a TLS certificate and private key is
-       required. They should be <link
+       HTTPS support requires a TLS/SSL certificate and a private key,
+       both <link
        xlink:href="https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail">PEM
-       formatted</link> and concatenated into a single file. The path
-       to this file should be configured in
-       <xref linkend="opt-services.keycloak.certificatePrivateKeyBundle" />.
+       formatted</link>. Their paths should be set through <xref
+       linkend="opt-services.keycloak.sslCertificate" /> and <xref
+       linkend="opt-services.keycloak.sslCertificateKey" />.
      </para>
 
      <warning>
        <para>
-         The path should be provided as a string, not a Nix path,
+         The paths should be provided as a strings, not a Nix paths,
          since Nix paths are copied into the world readable Nix store.
        </para>
      </warning>
@@ -195,8 +195,9 @@ services.keycloak = {
   <link linkend="opt-services.keycloak.initialAdminPassword">initialAdminPassword</link> = "e6Wcm0RrtegMEHl";  # change on first login
   <link linkend="opt-services.keycloak.frontendUrl">frontendUrl</link> = "https://keycloak.example.com/auth";
   <link linkend="opt-services.keycloak.forceBackendUrlToFrontendUrl">forceBackendUrlToFrontendUrl</link> = true;
-  <link linkend="opt-services.keycloak.certificatePrivateKeyBundle">certificatePrivateKeyBundle</link> = "/run/keys/ssl_cert";
-  <link linkend="opt-services.keycloak.databasePasswordFile">databasePasswordFile</link> = "/run/keys/db_password";
+  <link linkend="opt-services.keycloak.sslCertificate">sslCertificate</link> = "/run/keys/ssl_cert";
+  <link linkend="opt-services.keycloak.sslCertificateKey">sslCertificateKey</link> = "/run/keys/ssl_key";
+  <link linkend="opt-services.keycloak.database.passwordFile">database.passwordFile</link> = "/run/keys/db_password";
 };
 </programlisting>
      </para>
diff --git a/nixpkgs/nixos/modules/services/web-apps/mastodon.nix b/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
index 661320b5d00a..5e24bd06ffdb 100644
--- a/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
@@ -31,7 +31,7 @@ let
   // (if cfg.smtp.authenticate then { SMTP_LOGIN  = cfg.smtp.user; } else {})
   // cfg.extraConfig;
 
-  systemCallsList = [ "@clock" "@cpu-emulation" "@debug" "@keyring" "@module" "@mount" "@obsolete" "@raw-io" "@reboot" "@resources" "@setuid" "@swap" ];
+  systemCallsList = [ "@clock" "@cpu-emulation" "@debug" "@keyring" "@module" "@mount" "@obsolete" "@raw-io" "@reboot" "@setuid" "@swap" ];
 
   cfgService = {
     # User and group
@@ -434,7 +434,7 @@ in {
         Type = "oneshot";
         WorkingDirectory = cfg.package;
         # System Call Filtering
-        SystemCallFilter = "~" + lib.concatStringsSep " " systemCallsList;
+        SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
       } // cfgService;
 
       after = [ "network.target" ];
@@ -448,10 +448,10 @@ in {
                 join pg_namespace s on s.oid = c.relnamespace \
                 where s.nspname not in ('pg_catalog', 'pg_toast', 'information_schema') \
                 and s.nspname not like 'pg_temp%';" | sed -n 3p` -eq 0 ]; then
-          SAFETY_ASSURED=1 rake db:schema:load
-          rake db:seed
+          SAFETY_ASSURED=1 rails db:schema:load
+          rails db:seed
         else
-          rake db:migrate
+          rails db:migrate
         fi
       '';
       path = [ cfg.package pkgs.postgresql ];
@@ -461,7 +461,7 @@ in {
         EnvironmentFile = "/var/lib/mastodon/.secrets_env";
         WorkingDirectory = cfg.package;
         # System Call Filtering
-        SystemCallFilter = "~" + lib.concatStringsSep " " systemCallsList;
+        SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
       } // cfgService;
       after = [ "mastodon-init-dirs.service" "network.target" ] ++ (if databaseActuallyCreateLocally then [ "postgresql.service" ] else []);
       wantedBy = [ "multi-user.target" ];
@@ -487,7 +487,7 @@ in {
         RuntimeDirectory = "mastodon-streaming";
         RuntimeDirectoryMode = "0750";
         # System Call Filtering
-        SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@privileged" ]);
+        SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@privileged" "@resources" ]);
       } // cfgService;
     };
 
@@ -511,7 +511,7 @@ in {
         RuntimeDirectory = "mastodon-web";
         RuntimeDirectoryMode = "0750";
         # System Call Filtering
-        SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@privileged" ]);
+        SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ]);
       } // cfgService;
       path = with pkgs; [ file imagemagick ffmpeg ];
     };
@@ -532,7 +532,7 @@ in {
         EnvironmentFile = "/var/lib/mastodon/.secrets_env";
         WorkingDirectory = cfg.package;
         # System Call Filtering
-        SystemCallFilter = "~" + lib.concatStringsSep " " (systemCallsList ++ [ "@privileged" ]);
+        SystemCallFilter = "~" + lib.concatStringsSep " " systemCallsList;
       } // cfgService;
       path = with pkgs; [ file imagemagick ffmpeg ];
     };
diff --git a/nixpkgs/nixos/modules/services/web-apps/plausible.nix b/nixpkgs/nixos/modules/services/web-apps/plausible.nix
new file mode 100644
index 000000000000..caf5ba466dfe
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/plausible.nix
@@ -0,0 +1,273 @@
+{ lib, pkgs, config, ... }:
+
+with lib;
+
+let
+  cfg = config.services.plausible;
+
+  # FIXME consider using LoadCredential as soon as it actually works.
+  envSecrets = ''
+    export ADMIN_USER_PWD="$(<${cfg.adminUser.passwordFile})"
+    export SECRET_KEY_BASE="$(<${cfg.server.secretKeybaseFile})"
+    ${optionalString (cfg.mail.smtp.passwordFile != null) ''
+      export SMTP_USER_PWD="$(<${cfg.mail.smtp.passwordFile})"
+    ''}
+  '';
+in {
+  options.services.plausible = {
+    enable = mkEnableOption "plausible";
+
+    adminUser = {
+      name = mkOption {
+        default = "admin";
+        type = types.str;
+        description = ''
+          Name of the admin user that plausible will created on initial startup.
+        '';
+      };
+
+      email = mkOption {
+        type = types.str;
+        example = "admin@localhost";
+        description = ''
+          Email-address of the admin-user.
+        '';
+      };
+
+      passwordFile = mkOption {
+        type = types.either types.str types.path;
+        description = ''
+          Path to the file which contains the password of the admin user.
+        '';
+      };
+
+      activate = mkEnableOption "activating the freshly created admin-user";
+    };
+
+    database = {
+      clickhouse = {
+        setup = mkEnableOption "creating a clickhouse instance" // { default = true; };
+        url = mkOption {
+          default = "http://localhost:8123/default";
+          type = types.str;
+          description = ''
+            The URL to be used to connect to <package>clickhouse</package>.
+          '';
+        };
+      };
+      postgres = {
+        setup = mkEnableOption "creating a postgresql instance" // { default = true; };
+        dbname = mkOption {
+          default = "plausible";
+          type = types.str;
+          description = ''
+            Name of the database to use.
+          '';
+        };
+        socket = mkOption {
+          default = "/run/postgresql";
+          type = types.str;
+          description = ''
+            Path to the UNIX domain-socket to communicate with <package>postgres</package>.
+          '';
+        };
+      };
+    };
+
+    server = {
+      disableRegistration = mkOption {
+        default = true;
+        type = types.bool;
+        description = ''
+          Whether to prohibit creating an account in plausible's UI.
+        '';
+      };
+      secretKeybaseFile = mkOption {
+        type = types.either types.path types.str;
+        description = ''
+          Path to the secret used by the <literal>phoenix</literal>-framework. Instructions
+          how to generate one are documented in the
+          <link xlink:href="https://hexdocs.pm/phoenix/Mix.Tasks.Phx.Gen.Secret.html#content">
+          framework docs</link>.
+        '';
+      };
+      port = mkOption {
+        default = 8000;
+        type = types.port;
+        description = ''
+          Port where the service should be available.
+        '';
+      };
+      baseUrl = mkOption {
+        type = types.str;
+        description = ''
+          Public URL where plausible is available.
+        '';
+      };
+    };
+
+    mail = {
+      email = mkOption {
+        default = "hello@plausible.local";
+        type = types.str;
+        description = ''
+          The email id to use for as <emphasis>from</emphasis> address of all communications
+          from Plausible.
+        '';
+      };
+      smtp = {
+        hostAddr = mkOption {
+          default = "localhost";
+          type = types.str;
+          description = ''
+            The host address of your smtp server.
+          '';
+        };
+        hostPort = mkOption {
+          default = 25;
+          type = types.port;
+          description = ''
+            The port of your smtp server.
+          '';
+        };
+        user = mkOption {
+          default = null;
+          type = types.nullOr types.str;
+          description = ''
+            The username/email in case SMTP auth is enabled.
+          '';
+        };
+        passwordFile = mkOption {
+          default = null;
+          type = with types; nullOr (either str path);
+          description = ''
+            The path to the file with the password in case SMTP auth is enabled.
+          '';
+        };
+        enableSSL = mkEnableOption "SSL when connecting to the SMTP server";
+        retries = mkOption {
+          type = types.ints.unsigned;
+          default = 2;
+          description = ''
+            Number of retries to make until mailer gives up.
+          '';
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      { assertion = cfg.adminUser.activate -> cfg.database.postgres.setup;
+        message = ''
+          Unable to automatically activate the admin-user if no locally managed DB for
+          postgres (`services.plausible.database.postgres.setup') is enabled!
+        '';
+      }
+    ];
+
+    services.postgresql = mkIf cfg.database.postgres.setup {
+      enable = true;
+    };
+
+    services.clickhouse = mkIf cfg.database.clickhouse.setup {
+      enable = true;
+    };
+
+    systemd.services = mkMerge [
+      {
+        plausible = {
+          inherit (pkgs.plausible.meta) description;
+          documentation = [ "https://plausible.io/docs/self-hosting" ];
+          wantedBy = [ "multi-user.target" ];
+          after = optional cfg.database.postgres.setup "plausible-postgres.service";
+          requires = optional cfg.database.clickhouse.setup "clickhouse.service"
+            ++ optionals cfg.database.postgres.setup [
+              "postgresql.service"
+              "plausible-postgres.service"
+            ];
+
+          environment = {
+            # NixOS specific option to avoid that it's trying to write into its store-path.
+            # See also https://github.com/lau/tzdata#data-directory-and-releases
+            TZDATA_DIR = "/var/lib/plausible/elixir_tzdata";
+
+            # Configuration options from
+            # https://plausible.io/docs/self-hosting-configuration
+            PORT = toString cfg.server.port;
+            DISABLE_REGISTRATION = boolToString cfg.server.disableRegistration;
+
+            RELEASE_TMP = "/var/lib/plausible/tmp";
+
+            ADMIN_USER_NAME = cfg.adminUser.name;
+            ADMIN_USER_EMAIL = cfg.adminUser.email;
+
+            DATABASE_SOCKET_DIR = cfg.database.postgres.socket;
+            DATABASE_NAME = cfg.database.postgres.dbname;
+            CLICKHOUSE_DATABASE_URL = cfg.database.clickhouse.url;
+
+            BASE_URL = cfg.server.baseUrl;
+
+            MAILER_EMAIL = cfg.mail.email;
+            SMTP_HOST_ADDR = cfg.mail.smtp.hostAddr;
+            SMTP_HOST_PORT = toString cfg.mail.smtp.hostPort;
+            SMTP_RETRIES = toString cfg.mail.smtp.retries;
+            SMTP_HOST_SSL_ENABLED = boolToString cfg.mail.smtp.enableSSL;
+
+            SELFHOST = "true";
+          } // (optionalAttrs (cfg.mail.smtp.user != null) {
+            SMTP_USER_NAME = cfg.mail.smtp.user;
+          });
+
+          path = [ pkgs.plausible ]
+            ++ optional cfg.database.postgres.setup config.services.postgresql.package;
+
+          serviceConfig = {
+            DynamicUser = true;
+            PrivateTmp = true;
+            WorkingDirectory = "/var/lib/plausible";
+            StateDirectory = "plausible";
+            ExecStartPre = "@${pkgs.writeShellScript "plausible-setup" ''
+              ${envSecrets}
+              ${pkgs.plausible}/createdb.sh
+              ${pkgs.plausible}/migrate.sh
+              ${optionalString cfg.adminUser.activate ''
+                if ! ${pkgs.plausible}/init-admin.sh | grep 'already exists'; then
+                  psql -d plausible <<< "UPDATE users SET email_verified=true;"
+                fi
+              ''}
+            ''} plausible-setup";
+            ExecStart = "@${pkgs.writeShellScript "plausible" ''
+              ${envSecrets}
+              plausible start
+            ''} plausible";
+          };
+        };
+      }
+      (mkIf cfg.database.postgres.setup {
+        # `plausible' requires the `citext'-extension.
+        plausible-postgres = {
+          after = [ "postgresql.service" ];
+          bindsTo = [ "postgresql.service" ];
+          requiredBy = [ "plausible.service" ];
+          partOf = [ "plausible.service" ];
+          serviceConfig.Type = "oneshot";
+          unitConfig.ConditionPathExists = "!/var/lib/plausible/.db-setup";
+          script = ''
+            mkdir -p /var/lib/plausible/
+            PSQL() {
+              /run/wrappers/bin/sudo -Hu postgres ${config.services.postgresql.package}/bin/psql --port=5432 "$@"
+            }
+            PSQL -tAc "CREATE ROLE plausible WITH LOGIN;"
+            PSQL -tAc "CREATE DATABASE plausible WITH OWNER plausible;"
+            PSQL -d plausible -tAc "CREATE EXTENSION IF NOT EXISTS citext;"
+            touch /var/lib/plausible/.db-setup
+          '';
+        };
+      })
+    ];
+  };
+
+  meta.maintainers = with maintainers; [ ma27 ];
+  meta.doc = ./plausible.xml;
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/plausible.xml b/nixpkgs/nixos/modules/services/web-apps/plausible.xml
new file mode 100644
index 000000000000..92a571b9fbdb
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/plausible.xml
@@ -0,0 +1,51 @@
+<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="module-services-plausible">
+ <title>Plausible</title>
+ <para>
+  <link xlink:href="https://plausible.io/">Plausible</link> is a privacy-friendly alternative to
+  Google analytics.
+ </para>
+ <section xml:id="module-services-plausible-basic-usage">
+  <title>Basic Usage</title>
+  <para>
+   At first, a secret key is needed to be generated. This can be done with e.g.
+   <screen><prompt>$ </prompt>openssl rand -base64 64</screen>
+  </para>
+  <para>
+   After that, <package>plausible</package> can be deployed like this:
+<programlisting>{
+  services.plausible = {
+    <link linkend="opt-services.plausible.enable">enable</link> = true;
+    adminUser = {
+      <link linkend="opt-services.plausible.adminUser.activate">activate</link> = true; <co xml:id='ex-plausible-cfg-activate' />
+      <link linkend="opt-services.plausible.adminUser.email">email</link> = "admin@localhost";
+      <link linkend="opt-services.plausible.adminUser.passwordFile">passwordFile</link> = "/run/secrets/plausible-admin-pwd";
+    };
+    server = {
+      <link linkend="opt-services.plausible.server.baseUrl">baseUrl</link> = "http://analytics.example.org";
+      <link linkend="opt-services.plausible.server.secretKeybaseFile">secretKeybaseFile</link> = "/run/secrets/plausible-secret-key-base"; <co xml:id='ex-plausible-cfg-secretbase' />
+    };
+  };
+}</programlisting>
+   <calloutlist>
+    <callout arearefs='ex-plausible-cfg-activate'>
+     <para>
+      <varname>activate</varname> is used to skip the email verification of the admin-user that's
+      automatically created by <package>plausible</package>. This is only supported if
+      <package>postgresql</package> is configured by the module. This is done by default, but
+      can be turned off with <xref linkend="opt-services.plausible.database.postgres.setup" />.
+     </para>
+    </callout>
+    <callout arearefs='ex-plausible-cfg-secretbase'>
+     <para>
+      <varname>secretKeybaseFile</varname> is a path to the file which contains the secret generated
+      with <package>openssl</package> as described above.
+     </para>
+    </callout>
+   </calloutlist>
+  </para>
+ </section>
+</chapter>
diff --git a/nixpkgs/nixos/modules/services/web-apps/shiori.nix b/nixpkgs/nixos/modules/services/web-apps/shiori.nix
index 8f96dd9b5dd7..a15bb9744a9c 100644
--- a/nixpkgs/nixos/modules/services/web-apps/shiori.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/shiori.nix
@@ -86,10 +86,7 @@ in {
         SystemCallErrorNumber = "EPERM";
         SystemCallFilter = [
           "@system-service"
-
-          "~@chown" "~@cpu-emulation" "~@debug" "~@keyring" "~@memlock"
-          "~@module" "~@obsolete" "~@privileged" "~@raw-io"
-          "~@resources" "~@setuid"
+          "~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@obsolete" "~@privileged" "~@resources" "~@setuid"
         ];
       };
     };
diff --git a/nixpkgs/nixos/modules/services/web-apps/trilium.nix b/nixpkgs/nixos/modules/services/web-apps/trilium.nix
index 3a6ea02676aa..35383c992fe8 100644
--- a/nixpkgs/nixos/modules/services/web-apps/trilium.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/trilium.nix
@@ -9,6 +9,7 @@ let
 
     # Disable automatically generating desktop icon
     noDesktopIcon=true
+    noBackup=${lib.boolToString cfg.noBackup}
 
     [Network]
     # host setting is relevant only for web deployments - set the host on which the server will listen
@@ -28,7 +29,7 @@ in
       type = types.str;
       default = "/var/lib/trilium";
       description = ''
-        The directory storing the nodes database and the configuration.
+        The directory storing the notes database and the configuration.
       '';
     };
 
@@ -40,6 +41,14 @@ in
       '';
     };
 
+    noBackup = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Disable periodic database backups.
+      '';
+    };
+
     host = mkOption {
       type = types.str;
       default = "127.0.0.1";
@@ -85,7 +94,7 @@ in
 
   config = lib.mkIf cfg.enable (lib.mkMerge [
   {
-    meta.maintainers = with lib.maintainers; [ ];
+    meta.maintainers = with lib.maintainers; [ fliegendewurst ];
 
     users.groups.trilium = {};
     users.users.trilium = {
diff --git a/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix b/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix
index 6a29f10d1195..b78487cc9281 100644
--- a/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix
@@ -644,7 +644,7 @@ let
 
     services.mysql = mkIf mysqlLocal {
       enable = true;
-      package = mkDefault pkgs.mysql;
+      package = mkDefault pkgs.mariadb;
       ensureDatabases = [ cfg.database.name ];
       ensureUsers = [
         {
diff --git a/nixpkgs/nixos/modules/services/web-apps/wordpress.nix b/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
index f251cfe32db6..775ecb3acaf0 100644
--- a/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
@@ -61,8 +61,10 @@ let
     ?>
   '';
 
-  secretsVars = [ "AUTH_KEY" "SECURE_AUTH_KEY" "LOOGGED_IN_KEY" "NONCE_KEY" "AUTH_SALT" "SECURE_AUTH_SALT" "LOGGED_IN_SALT" "NONCE_SALT" ];
+  secretsVars = [ "AUTH_KEY" "SECURE_AUTH_KEY" "LOGGED_IN_KEY" "NONCE_KEY" "AUTH_SALT" "SECURE_AUTH_SALT" "LOGGED_IN_SALT" "NONCE_SALT" ];
   secretsScript = hostStateDir: ''
+    # The match in this line is not a typo, see https://github.com/NixOS/nixpkgs/pull/124839
+    grep -q "LOOGGED_IN_KEY" "${hostStateDir}/secret-keys.php" && rm "${hostStateDir}/secret-keys.php"
     if ! test -e "${hostStateDir}/secret-keys.php"; then
       umask 0177
       echo "<?php" >> "${hostStateDir}/secret-keys.php"
diff --git a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
index b2bb5055cd4c..a7b93c9c4598 100644
--- a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -15,11 +15,9 @@ let
   apachectl = pkgs.runCommand "apachectl" { meta.priority = -1; } ''
     mkdir -p $out/bin
     cp ${pkg}/bin/apachectl $out/bin/apachectl
-    sed -i $out/bin/apachectl -e 's|$HTTPD -t|$HTTPD -t -f ${httpdConf}|'
+    sed -i $out/bin/apachectl -e 's|$HTTPD -t|$HTTPD -t -f /etc/httpd/httpd.conf|'
   '';
 
-  httpdConf = cfg.configFile;
-
   php = cfg.phpPackage.override { apacheHttpd = pkg; };
 
   phpModuleName = let
@@ -682,6 +680,8 @@ in
       }) (filter (hostOpts: hostOpts.useACMEHost == null) acmeEnabledVhosts);
     in listToAttrs acmePairs;
 
+    # httpd requires a stable path to the configuration file for reloads
+    environment.etc."httpd/httpd.conf".source = cfg.configFile;
     environment.systemPackages = [
       apachectl
       pkg
@@ -753,6 +753,7 @@ in
         wants = concatLists (map (certName: [ "acme-finished-${certName}.target" ]) dependentCertNames);
         after = [ "network.target" ] ++ map (certName: "acme-selfsigned-${certName}.service") dependentCertNames;
         before = map (certName: "acme-${certName}.service") dependentCertNames;
+        restartTriggers = [ cfg.configFile ];
 
         path = [ pkg pkgs.coreutils pkgs.gnugrep ];
 
@@ -771,9 +772,9 @@ in
           '';
 
         serviceConfig = {
-          ExecStart = "@${pkg}/bin/httpd httpd -f ${httpdConf}";
-          ExecStop = "${pkg}/bin/httpd -f ${httpdConf} -k graceful-stop";
-          ExecReload = "${pkg}/bin/httpd -f ${httpdConf} -k graceful";
+          ExecStart = "@${pkg}/bin/httpd httpd -f /etc/httpd/httpd.conf";
+          ExecStop = "${pkg}/bin/httpd -f /etc/httpd/httpd.conf -k graceful-stop";
+          ExecReload = "${pkg}/bin/httpd -f /etc/httpd/httpd.conf -k graceful";
           User = cfg.user;
           Group = cfg.group;
           Type = "forking";
@@ -800,6 +801,7 @@ in
       # certs are updated _after_ config has been reloaded.
       before = sslTargets;
       after = sslServices;
+      restartTriggers = [ cfg.configFile ];
       # Block reloading if not all certs exist yet.
       # Happens when config changes add new vhosts/certs.
       unitConfig.ConditionPathExists = map (certName: certs.${certName}.directory + "/fullchain.pem") dependentCertNames;
@@ -807,7 +809,7 @@ in
         Type = "oneshot";
         TimeoutSec = 60;
         ExecCondition = "/run/current-system/systemd/bin/systemctl -q is-active httpd.service";
-        ExecStartPre = "${pkg}/bin/httpd -f ${httpdConf} -t";
+        ExecStartPre = "${pkg}/bin/httpd -f /etc/httpd/httpd.conf -t";
         ExecStart = "/run/current-system/systemd/bin/systemctl reload httpd.service";
       };
     };
diff --git a/nixpkgs/nixos/modules/services/web-servers/caddy.nix b/nixpkgs/nixos/modules/services/web-servers/caddy.nix
index 6ecfc113ca26..955b9756406d 100644
--- a/nixpkgs/nixos/modules/services/web-servers/caddy.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/caddy.nix
@@ -63,6 +63,18 @@ in {
       '';
     };
 
+    user = mkOption {
+      default = "caddy";
+      type = types.str;
+      description = "User account under which caddy runs.";
+    };
+
+    group = mkOption {
+      default = "caddy";
+      type = types.str;
+      description = "Group account under which caddy runs.";
+    };
+
     adapter = mkOption {
       default = "caddyfile";
       example = "nginx";
@@ -123,8 +135,8 @@ in {
         ExecStart = "${cfg.package}/bin/caddy run --config ${configJSON}";
         ExecReload = "${cfg.package}/bin/caddy reload --config ${configJSON}";
         Type = "simple";
-        User = "caddy";
-        Group = "caddy";
+        User = cfg.user;
+        Group = cfg.group;
         Restart = "on-abnormal";
         AmbientCapabilities = "cap_net_bind_service";
         CapabilityBoundingSet = "cap_net_bind_service";
@@ -142,13 +154,18 @@ in {
       };
     };
 
-    users.users.caddy = {
-      group = "caddy";
-      uid = config.ids.uids.caddy;
-      home = cfg.dataDir;
-      createHome = true;
+    users.users = optionalAttrs (cfg.user == "caddy") {
+      caddy = {
+        group = cfg.group;
+        uid = config.ids.uids.caddy;
+        home = cfg.dataDir;
+        createHome = true;
+      };
+    };
+
+    users.groups = optionalAttrs (cfg.group == "caddy") {
+      caddy.gid = config.ids.gids.caddy;
     };
 
-    users.groups.caddy.gid = config.ids.uids.caddy;
   };
 }
diff --git a/nixpkgs/nixos/modules/services/web-servers/molly-brown.nix b/nixpkgs/nixos/modules/services/web-servers/molly-brown.nix
index e0587f3b4716..58db9b9beda0 100644
--- a/nixpkgs/nixos/modules/services/web-servers/molly-brown.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/molly-brown.nix
@@ -41,7 +41,6 @@ in {
 
         As an example:
         <programlisting>
-        security.acme.certs."example.com".allowKeysForGroup = true;
         systemd.services.molly-brown.serviceConfig.SupplementaryGroups =
           [ config.security.acme.certs."example.com".group ];
         </programlisting>
diff --git a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index 18e1263fef5e..ebb3c38d6c25 100644
--- a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -154,9 +154,9 @@ let
 
       ${optionalString (cfg.recommendedProxySettings) ''
         proxy_redirect          off;
-        proxy_connect_timeout   60;
-        proxy_send_timeout      60;
-        proxy_read_timeout      60;
+        proxy_connect_timeout   ${cfg.proxyTimeout};
+        proxy_send_timeout      ${cfg.proxyTimeout};
+        proxy_read_timeout      ${cfg.proxyTimeout};
         proxy_http_version      1.1;
         include ${recommendedProxyConfig};
       ''}
@@ -230,13 +230,13 @@ let
 
         defaultListen =
           if vhost.listen != [] then vhost.listen
-          else ((optionals hasSSL (
-            singleton                    { addr = "0.0.0.0"; port = 443; ssl = true; }
-            ++ optional enableIPv6 { addr = "[::]";    port = 443; ssl = true; }
-          )) ++ optionals (!onlySSL) (
-            singleton                    { addr = "0.0.0.0"; port = 80;  ssl = false; }
-            ++ optional enableIPv6 { addr = "[::]";    port = 80;  ssl = false; }
-          ));
+          else optionals (hasSSL || vhost.rejectSSL) (
+            singleton { addr = "0.0.0.0"; port = 443; ssl = true; }
+            ++ optional enableIPv6 { addr = "[::]"; port = 443; ssl = true; }
+          ) ++ optionals (!onlySSL) (
+            singleton { addr = "0.0.0.0"; port = 80; ssl = false; }
+            ++ optional enableIPv6 { addr = "[::]"; port = 80; ssl = false; }
+          );
 
         hostListen =
           if vhost.forceSSL
@@ -303,6 +303,9 @@ let
           ${optionalString (hasSSL && vhost.sslTrustedCertificate != null) ''
             ssl_trusted_certificate ${vhost.sslTrustedCertificate};
           ''}
+          ${optionalString vhost.rejectSSL ''
+            ssl_reject_handshake on;
+          ''}
 
           ${mkBasicAuth vhostName vhost}
 
@@ -401,6 +404,15 @@ in
         ";
       };
 
+      proxyTimeout = mkOption {
+        type = types.str;
+        default = "60s";
+        example = "20s";
+        description = "
+          Change the proxy related timeouts in recommendedProxySettings.
+        ";
+      };
+
       package = mkOption {
         default = pkgs.nginxStable;
         defaultText = "pkgs.nginxStable";
@@ -762,20 +774,27 @@ in
       }
 
       {
-        assertion = all (conf: with conf;
-          !(addSSL && (onlySSL || enableSSL)) &&
-          !(forceSSL && (onlySSL || enableSSL)) &&
-          !(addSSL && forceSSL)
+        assertion = all (host: with host;
+          count id [ addSSL (onlySSL || enableSSL) forceSSL rejectSSL ] <= 1
         ) (attrValues virtualHosts);
         message = ''
           Options services.nginx.service.virtualHosts.<name>.addSSL,
-          services.nginx.virtualHosts.<name>.onlySSL and services.nginx.virtualHosts.<name>.forceSSL
-          are mutually exclusive.
+          services.nginx.virtualHosts.<name>.onlySSL,
+          services.nginx.virtualHosts.<name>.forceSSL and
+          services.nginx.virtualHosts.<name>.rejectSSL are mutually exclusive.
+        '';
+      }
+
+      {
+        assertion = any (host: host.rejectSSL) (attrValues virtualHosts) -> versionAtLeast cfg.package.version "1.19.4";
+        message = ''
+          services.nginx.virtualHosts.<name>.rejectSSL requires nginx version
+          1.19.4 or above; see the documentation for services.nginx.package.
         '';
       }
 
       {
-        assertion = all (conf: !(conf.enableACME && conf.useACMEHost != null)) (attrValues virtualHosts);
+        assertion = all (host: !(host.enableACME && host.useACMEHost != null)) (attrValues virtualHosts);
         message = ''
           Options services.nginx.service.virtualHosts.<name>.enableACME and
           services.nginx.virtualHosts.<name>.useACMEHost are mutually exclusive.
@@ -819,28 +838,38 @@ in
         # Logs directory and mode
         LogsDirectory = "nginx";
         LogsDirectoryMode = "0750";
+        # Proc filesystem
+        ProcSubset = "pid";
+        ProtectProc = "invisible";
+        # New file permissions
+        UMask = "0027"; # 0640 / 0750
         # Capabilities
         AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ];
         CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ];
         # Security
         NoNewPrivileges = true;
-        # Sandboxing
+        # Sandboxing (sorted by occurrence in https://www.freedesktop.org/software/systemd/man/systemd.exec.html)
         ProtectSystem = "strict";
         ProtectHome = mkDefault true;
         PrivateTmp = true;
         PrivateDevices = true;
         ProtectHostname = true;
+        ProtectClock = true;
         ProtectKernelTunables = true;
         ProtectKernelModules = true;
+        ProtectKernelLogs = true;
         ProtectControlGroups = true;
         RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
         LockPersonality = true;
         MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules);
         RestrictRealtime = true;
         RestrictSUIDSGID = true;
+        RemoveIPC = true;
         PrivateMounts = true;
         # System Call Filtering
         SystemCallArchitectures = "native";
+        SystemCallFilter = "~@cpu-emulation @debug @keyring @ipc @mount @obsolete @privileged @setuid";
       };
     };
 
@@ -848,8 +877,9 @@ in
       source = configFile;
     };
 
-    # postRun hooks on cert renew can't be used to restart Nginx since renewal
-    # runs as the unprivileged acme user. sslTargets are added to wantedBy + before
+    # This service waits for all certificates to be available
+    # before reloading nginx configuration.
+    # sslTargets are added to wantedBy + before
     # which allows the acme-finished-$cert.target to signify the successful updating
     # of certs end-to-end.
     systemd.services.nginx-config-reload = let
diff --git a/nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix b/nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix
index f7fb07bb7975..11bf2a309ea8 100644
--- a/nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/nginx/gitweb.nix
@@ -89,6 +89,6 @@ in
 
   };
 
-  meta.maintainers = with maintainers; [ gnidorah ];
+  meta.maintainers = with maintainers; [ ];
 
 }
diff --git a/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix
index 1f5fe6a368c1..1c7d40244797 100644
--- a/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -118,6 +118,18 @@ with lib;
       '';
     };
 
+    rejectSSL = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to listen for and reject all HTTPS connections to this vhost. Useful in
+        <link linkend="opt-services.nginx.virtualHosts._name_.default">default</link>
+        server blocks to avoid serving the certificate for another vhost. Uses the
+        <literal>ssl_reject_handshake</literal> directive available in nginx versions
+        1.19.4 and above.
+      '';
+    };
+
     sslCertificate = mkOption {
       type = types.path;
       example = "/var/host.cert";
diff --git a/nixpkgs/nixos/modules/services/web-servers/trafficserver.nix b/nixpkgs/nixos/modules/services/web-servers/trafficserver.nix
new file mode 100644
index 000000000000..db0e2ac0bd05
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-servers/trafficserver.nix
@@ -0,0 +1,318 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.trafficserver;
+  user = config.users.users.trafficserver.name;
+  group = config.users.groups.trafficserver.name;
+
+  getManualUrl = name: "https://docs.trafficserver.apache.org/en/latest/admin-guide/files/${name}.en.html";
+  getConfPath = name: "${pkgs.trafficserver}/etc/trafficserver/${name}";
+
+  yaml = pkgs.formats.yaml { };
+
+  fromYAML = f:
+    let
+      jsonFile = pkgs.runCommand "in.json"
+        {
+          nativeBuildInputs = [ pkgs.remarshal ];
+        } ''
+        yaml2json < "${f}" > "$out"
+      '';
+    in
+    builtins.fromJSON (builtins.readFile jsonFile);
+
+  mkYamlConf = name: cfg:
+    if cfg != null then {
+      "trafficserver/${name}.yaml".source = yaml.generate "${name}.yaml" cfg;
+    } else {
+      "trafficserver/${name}.yaml".text = "";
+    };
+
+  mkRecordLines = path: value:
+    if isAttrs value then
+      lib.mapAttrsToList (n: v: mkRecordLines (path ++ [ n ]) v) value
+    else if isInt value then
+      "CONFIG ${concatStringsSep "." path} INT ${toString value}"
+    else if isFloat value then
+      "CONFIG ${concatStringsSep "." path} FLOAT ${toString value}"
+    else
+      "CONFIG ${concatStringsSep "." path} STRING ${toString value}";
+
+  mkRecordsConfig = cfg: concatStringsSep "\n" (flatten (mkRecordLines [ ] cfg));
+  mkPluginConfig = cfg: concatStringsSep "\n" (map (p: "${p.path} ${p.arg}") cfg);
+in
+{
+  options.services.trafficserver = {
+    enable = mkEnableOption "Apache Traffic Server";
+
+    cache = mkOption {
+      type = types.lines;
+      default = "";
+      example = "dest_domain=example.com suffix=js action=never-cache";
+      description = ''
+        Caching rules that overrule the origin's caching policy.
+
+        Consult the <link xlink:href="${getManualUrl "cache.config"}">upstream
+        documentation</link> for more details.
+      '';
+    };
+
+    hosting = mkOption {
+      type = types.lines;
+      default = "";
+      example = "domain=example.com volume=1";
+      description = ''
+        Partition the cache according to origin server or domain
+
+        Consult the <link xlink:href="${getManualUrl "hosting.config"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+
+    ipAllow = mkOption {
+      type = types.nullOr yaml.type;
+      default = fromYAML (getConfPath "ip_allow.yaml");
+      defaultText = "upstream defaults";
+      example = literalExample {
+        ip_allow = [{
+          apply = "in";
+          ip_addrs = "127.0.0.1";
+          action = "allow";
+          methods = "ALL";
+        }];
+      };
+      description = ''
+        Control client access to Traffic Server and Traffic Server connections
+        to upstream servers.
+
+        Consult the <link xlink:href="${getManualUrl "ip_allow.yaml"}">upstream
+        documentation</link> for more details.
+      '';
+    };
+
+    logging = mkOption {
+      type = types.nullOr yaml.type;
+      default = fromYAML (getConfPath "logging.yaml");
+      defaultText = "upstream defaults";
+      example = literalExample { };
+      description = ''
+        Configure logs.
+
+        Consult the <link xlink:href="${getManualUrl "logging.yaml"}">upstream
+        documentation</link> for more details.
+      '';
+    };
+
+    parent = mkOption {
+      type = types.lines;
+      default = "";
+      example = ''
+        dest_domain=. method=get parent="p1.example:8080; p2.example:8080" round_robin=true
+      '';
+      description = ''
+        Identify the parent proxies used in an cache hierarchy.
+
+        Consult the <link xlink:href="${getManualUrl "parent.config"}">upstream
+        documentation</link> for more details.
+      '';
+    };
+
+    plugins = mkOption {
+      default = [ ];
+
+      description = ''
+        Controls run-time loadable plugins available to Traffic Server, as
+        well as their configuration.
+
+        Consult the <link xlink:href="${getManualUrl "plugin.config"}">upstream
+        documentation</link> for more details.
+      '';
+
+      type = with types;
+        listOf (submodule {
+          options.path = mkOption {
+            type = str;
+            example = "xdebug.so";
+            description = ''
+              Path to plugin. The path can either be absolute, or relative to
+              the plugin directory.
+            '';
+          };
+          options.arg = mkOption {
+            type = str;
+            default = "";
+            example = "--header=ATS-My-Debug";
+            description = "arguments to pass to the plugin";
+          };
+        });
+    };
+
+    records = mkOption {
+      type = with types;
+        let valueType = (attrsOf (oneOf [ int float str valueType ])) // {
+          description = "Traffic Server records value";
+        };
+        in
+        valueType;
+      default = { };
+      example = literalExample { proxy.config.proxy_name = "my_server"; };
+      description = ''
+        List of configurable variables used by Traffic Server.
+
+        Consult the <link xlink:href="${getManualUrl "records.config"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+
+    remap = mkOption {
+      type = types.lines;
+      default = "";
+      example = "map http://from.example http://origin.example";
+      description = ''
+        URL remapping rules used by Traffic Server.
+
+        Consult the <link xlink:href="${getManualUrl "remap.config"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+
+    splitDns = mkOption {
+      type = types.lines;
+      default = "";
+      example = ''
+        dest_domain=internal.corp.example named="255.255.255.255:212 255.255.255.254" def_domain=corp.example search_list="corp.example corp1.example"
+        dest_domain=!internal.corp.example named=255.255.255.253
+      '';
+      description = ''
+        Specify the DNS server that Traffic Server should use under specific
+        conditions.
+
+        Consult the <link xlink:href="${getManualUrl "splitdns.config"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+
+    sslMulticert = mkOption {
+      type = types.lines;
+      default = "";
+      example = "dest_ip=* ssl_cert_name=default.pem";
+      description = ''
+        Configure SSL server certificates to terminate the SSL sessions.
+
+        Consult the <link xlink:href="${getManualUrl "ssl_multicert.config"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+
+    sni = mkOption {
+      type = types.nullOr yaml.type;
+      default = null;
+      example = literalExample {
+        sni = [{
+          fqdn = "no-http2.example.com";
+          https = "off";
+        }];
+      };
+      description = ''
+        Configure aspects of TLS connection handling for both inbound and
+        outbound connections.
+
+        Consult the <link xlink:href="${getManualUrl "sni.yaml"}">upstream
+        documentation</link> for more details.
+      '';
+    };
+
+    storage = mkOption {
+      type = types.lines;
+      default = "/var/cache/trafficserver 256M";
+      example = "/dev/disk/by-id/XXXXX volume=1";
+      description = ''
+        List all the storage that make up the Traffic Server cache.
+
+        Consult the <link xlink:href="${getManualUrl "storage.config"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+
+    strategies = mkOption {
+      type = types.nullOr yaml.type;
+      default = null;
+      description = ''
+        Specify the next hop proxies used in an cache hierarchy and the
+        algorithms used to select the next proxy.
+
+        Consult the <link xlink:href="${getManualUrl "strategies.yaml"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+
+    volume = mkOption {
+      type = types.nullOr yaml.type;
+      default = "";
+      example = "volume=1 scheme=http size=20%";
+      description = ''
+        Manage cache space more efficiently and restrict disk usage by
+        creating cache volumes of different sizes.
+
+        Consult the <link xlink:href="${getManualUrl "volume.config"}">
+        upstream documentation</link> for more details.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.etc = {
+      "trafficserver/cache.config".text = cfg.cache;
+      "trafficserver/hosting.config".text = cfg.hosting;
+      "trafficserver/parent.config".text = cfg.parent;
+      "trafficserver/plugin.config".text = mkPluginConfig cfg.plugins;
+      "trafficserver/records.config".text = mkRecordsConfig cfg.records;
+      "trafficserver/remap.config".text = cfg.remap;
+      "trafficserver/splitdns.config".text = cfg.splitDns;
+      "trafficserver/ssl_multicert.config".text = cfg.sslMulticert;
+      "trafficserver/storage.config".text = cfg.storage;
+      "trafficserver/volume.config".text = cfg.volume;
+    } // (mkYamlConf "ip_allow" cfg.ipAllow)
+    // (mkYamlConf "logging" cfg.logging)
+    // (mkYamlConf "sni" cfg.sni)
+    // (mkYamlConf "strategies" cfg.strategies);
+
+    environment.systemPackages = [ pkgs.trafficserver ];
+    systemd.packages = [ pkgs.trafficserver ];
+
+    # Traffic Server does privilege handling independently of systemd, and
+    # therefore should be started as root
+    systemd.services.trafficserver = {
+      enable = true;
+      wantedBy = [ "multi-user.target" ];
+    };
+
+    # These directories can't be created by systemd because:
+    #
+    #   1. Traffic Servers starts as root and switches to an unprivileged user
+    #      afterwards. The runtime directories defined below are assumed to be
+    #      owned by that user.
+    #   2. The bin/trafficserver script assumes these directories exist.
+    systemd.tmpfiles.rules = [
+      "d '/run/trafficserver' - ${user} ${group} - -"
+      "d '/var/cache/trafficserver' - ${user} ${group} - -"
+      "d '/var/lib/trafficserver' - ${user} ${group} - -"
+      "d '/var/log/trafficserver' - ${user} ${group} - -"
+    ];
+
+    services.trafficserver = {
+      records.proxy.config.admin.user_id = user;
+      records.proxy.config.body_factory.template_sets_dir =
+        "${pkgs.trafficserver}/etc/trafficserver/body_factory";
+    };
+
+    users.users.trafficserver = {
+      description = "Apache Traffic Server";
+      isSystemUser = true;
+      inherit group;
+    };
+    users.groups.trafficserver = { };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/cde.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/cde.nix
index 2d9504fb5f1e..3f1575a0ca63 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/cde.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/cde.nix
@@ -68,5 +68,5 @@ in {
     }];
   };
 
-  meta.maintainers = [ maintainers.gnidorah ];
+  meta.maintainers = [ ];
 }
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index 14dcf009a7d1..d201c1a5334b 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -26,7 +26,7 @@ in
       sessionPath = mkOption {
         default = [];
         type = types.listOf types.package;
-        example = literalExample "[ pkgs.gnome3.gpaste ]";
+        example = literalExample "[ pkgs.gnome.gpaste ]";
         description = ''
           Additional list of packages to be added to the session search path.
           Useful for GSettings-conditional autostart.
@@ -94,8 +94,8 @@ in
         xapps
       ];
       services.cinnamon.apps.enable = mkDefault true;
-      services.gnome3.glib-networking.enable = true;
-      services.gnome3.gnome-keyring.enable = true;
+      services.gnome.glib-networking.enable = true;
+      services.gnome.gnome-keyring.enable = true;
       services.gvfs.enable = true;
       services.udisks2.enable = true;
       services.upower.enable = mkDefault config.powerManagement.enable;
@@ -110,7 +110,7 @@ in
       programs.dconf.enable = true;
 
       # Enable org.a11y.Bus
-      services.gnome3.at-spi2-core.enable = true;
+      services.gnome.at-spi2-core.enable = true;
 
       # Fix lockscreen
       security.pam.services = {
@@ -128,6 +128,7 @@ in
         cinnamon-session
         cinnamon-desktop
         cinnamon-menus
+        cinnamon-translations
 
         # utils needed by some scripts
         killall
@@ -135,19 +136,22 @@ in
         # session requirements
         cinnamon-screensaver
         # cinnamon-killer-daemon: provided by cinnamon-common
-        gnome3.networkmanagerapplet # session requirement - also nm-applet not needed
+        gnome.networkmanagerapplet # session requirement - also nm-applet not needed
+
+        # For a polkit authentication agent
+        polkit_gnome
 
         # packages
         nemo
         cinnamon-control-center
         cinnamon-settings-daemon
-        gnome3.libgnomekbd
+        gnome.libgnomekbd
         orca
 
         # theme
-        gnome3.adwaita-icon-theme
+        gnome.adwaita-icon-theme
         hicolor-icon-theme
-        gnome3.gnome-themes-extra
+        gnome.gnome-themes-extra
         gtk3.out
         mint-artwork
         mint-themes
@@ -192,8 +196,9 @@ in
       programs.evince.enable = mkDefault true;
       programs.file-roller.enable = mkDefault true;
 
-      environment.systemPackages = (with pkgs // pkgs.gnome3 // pkgs.cinnamon; pkgs.gnome3.removePackagesByName [
+      environment.systemPackages = (with pkgs // pkgs.gnome // pkgs.cinnamon; pkgs.gnome.removePackagesByName [
         # cinnamon team apps
+        bulky
         blueberry
         warpinator
 
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
index f5559eb53541..6ee5b0fc54f7 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
@@ -19,7 +19,7 @@ in
   # E.g., if Plasma 5 is enabled, it supersedes xterm.
   imports = [
     ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix
-    ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix
+    ./lxqt.nix ./enlightenment.nix ./gnome.nix ./kodi.nix
     ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
     ./cinnamon.nix
   ];
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.nix
index 99e6edfba26e..b0859321a525 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.nix
@@ -4,8 +4,8 @@ with lib;
 
 let
 
-  cfg = config.services.xserver.desktopManager.gnome3;
-  serviceCfg = config.services.gnome3;
+  cfg = config.services.xserver.desktopManager.gnome;
+  serviceCfg = config.services.gnome;
 
   # Prioritize nautilus by default when opening directories
   mimeAppsList = pkgs.writeTextFile {
@@ -23,7 +23,7 @@ let
   '';
 
   nixos-gsettings-desktop-schemas = let
-    defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome3.gnome-shell ];
+    defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ];
   in
   pkgs.runCommand "nixos-gsettings-desktop-schemas" { preferLocalBuild = true; }
     ''
@@ -33,10 +33,10 @@ let
         (pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n")
         (defaultPackages ++ cfg.extraGSettingsOverridePackages)}
 
-     cp -f ${pkgs.gnome3.gnome-shell}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+     cp -f ${pkgs.gnome.gnome-shell}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
 
      ${optionalString flashbackEnabled ''
-       cp -f ${pkgs.gnome3.gnome-flashback}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+       cp -f ${pkgs.gnome.gnome-flashback}/share/gsettings-schemas/*/glib-2.0/schemas/*.gschema.override $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
      ''}
 
      chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
@@ -56,20 +56,87 @@ let
     '';
 
   flashbackEnabled = cfg.flashback.enableMetacity || length cfg.flashback.customSessions > 0;
+  flashbackWms = optional cfg.flashback.enableMetacity {
+    wmName = "metacity";
+    wmLabel = "Metacity";
+    wmCommand = "${pkgs.gnome.metacity}/bin/metacity";
+    enableGnomePanel = true;
+  } ++ cfg.flashback.customSessions;
 
-  notExcluded = pkg: mkDefault (!(lib.elem pkg config.environment.gnome3.excludePackages));
+  notExcluded = pkg: mkDefault (!(lib.elem pkg config.environment.gnome.excludePackages));
 
 in
 
 {
 
   meta = {
+    doc = ./gnome.xml;
     maintainers = teams.gnome.members;
   };
 
+  imports = [
+    # Added 2021-05-07
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "core-os-services" "enable" ]
+      [ "services" "gnome" "core-os-services" "enable" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "core-shell" "enable" ]
+      [ "services" "gnome" "core-shell" "enable" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "core-utilities" "enable" ]
+      [ "services" "gnome" "core-utilities" "enable" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "core-developer-tools" "enable" ]
+      [ "services" "gnome" "core-developer-tools" "enable" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "games" "enable" ]
+      [ "services" "gnome" "games" "enable" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "gnome3" "experimental-features" "realtime-scheduling" ]
+      [ "services" "gnome" "experimental-features" "realtime-scheduling" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "gnome3" "enable" ]
+      [ "services" "xserver" "desktopManager" "gnome" "enable" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "gnome3" "sessionPath" ]
+      [ "services" "xserver" "desktopManager" "gnome" "sessionPath" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "gnome3" "favoriteAppsOverride" ]
+      [ "services" "xserver" "desktopManager" "gnome" "favoriteAppsOverride" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "gnome3" "extraGSettingsOverrides" ]
+      [ "services" "xserver" "desktopManager" "gnome" "extraGSettingsOverrides" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "gnome3" "extraGSettingsOverridePackages" ]
+      [ "services" "xserver" "desktopManager" "gnome" "extraGSettingsOverridePackages" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "gnome3" "debug" ]
+      [ "services" "xserver" "desktopManager" "gnome" "debug" ]
+    )
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "gnome3" "flashback" ]
+      [ "services" "xserver" "desktopManager" "gnome" "flashback" ]
+    )
+    (mkRenamedOptionModule
+      [ "environment" "gnome3" "excludePackages" ]
+      [ "environment" "gnome" "excludePackages" ]
+    )
+  ];
+
   options = {
 
-    services.gnome3 = {
+    services.gnome = {
       core-os-services.enable = mkEnableOption "essential services for GNOME3";
       core-shell.enable = mkEnableOption "GNOME Shell services";
       core-utilities.enable = mkEnableOption "GNOME core utilities";
@@ -109,24 +176,24 @@ in
       };
     };
 
-    services.xserver.desktopManager.gnome3 = {
+    services.xserver.desktopManager.gnome = {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = "Enable Gnome 3 desktop manager.";
+        description = "Enable GNOME desktop manager.";
       };
 
       sessionPath = mkOption {
         default = [];
         type = types.listOf types.package;
-        example = literalExample "[ pkgs.gnome3.gpaste ]";
+        example = literalExample "[ pkgs.gnome.gpaste ]";
         description = ''
           Additional list of packages to be added to the session search path.
           Useful for GNOME Shell extensions or GSettings-conditional autostart.
 
           Note that this should be a last resort; patching the package is preferred (see GPaste).
         '';
-        apply = list: list ++ [ pkgs.gnome3.gnome-shell pkgs.gnome3.gnome-shell-extensions ];
+        apply = list: list ++ [ pkgs.gnome.gnome-shell pkgs.gnome.gnome-shell-extensions ];
       };
 
       favoriteAppsOverride = mkOption {
@@ -161,14 +228,14 @@ in
           type = types.listOf (types.submodule {
             options = {
               wmName = mkOption {
-                type = types.str;
-                description = "The filename-compatible name of the window manager to use.";
+                type = types.strMatching "[a-zA-Z0-9_-]+";
+                description = "A unique identifier for the window manager.";
                 example = "xmonad";
               };
 
               wmLabel = mkOption {
                 type = types.str;
-                description = "The pretty name of the window manager to use.";
+                description = "The name of the window manager to show in the session chooser.";
                 example = "XMonad";
               };
 
@@ -177,17 +244,35 @@ in
                 description = "The executable of the window manager to use.";
                 example = "\${pkgs.haskellPackages.xmonad}/bin/xmonad";
               };
+
+              enableGnomePanel = mkOption {
+                type = types.bool;
+                default = true;
+                example = "false";
+                description = "Whether to enable the GNOME panel in this session.";
+              };
             };
           });
           default = [];
           description = "Other GNOME Flashback sessions to enable.";
         };
+
+        panelModulePackages = mkOption {
+          default = [ pkgs.gnome.gnome-applets ];
+          type = types.listOf types.path;
+          description = ''
+            Packages containing modules that should be made available to <literal>gnome-panel</literal> (usually for applets).
+
+            If you're packaging something to use here, please install the modules in <literal>$out/lib/gnome-panel/modules</literal>.
+          '';
+          example = literalExample "[ pkgs.gnome.gnome-applets ]";
+        };
       };
     };
 
-    environment.gnome3.excludePackages = mkOption {
+    environment.gnome.excludePackages = mkOption {
       default = [];
-      example = literalExample "[ pkgs.gnome3.totem ]";
+      example = literalExample "[ pkgs.gnome.totem ]";
       type = types.listOf types.package;
       description = "Which packages gnome should exclude from the default environment";
     };
@@ -198,16 +283,16 @@ in
     (mkIf (cfg.enable || flashbackEnabled) {
       # Seed our configuration into nixos-generate-config
       system.nixos-generate-config.desktopConfiguration = [''
-        # Enable the GNOME 3 Desktop Environment.
+        # Enable the GNOME Desktop Environment.
         services.xserver.displayManager.gdm.enable = true;
-        services.xserver.desktopManager.gnome3.enable = true;
+        services.xserver.desktopManager.gnome.enable = true;
       ''];
 
-      services.gnome3.core-os-services.enable = true;
-      services.gnome3.core-shell.enable = true;
-      services.gnome3.core-utilities.enable = mkDefault true;
+      services.gnome.core-os-services.enable = true;
+      services.gnome.core-shell.enable = true;
+      services.gnome.core-utilities.enable = mkDefault true;
 
-      services.xserver.displayManager.sessionPackages = [ pkgs.gnome3.gnome-session.sessions ];
+      services.xserver.displayManager.sessionPackages = [ pkgs.gnome.gnome-session.sessions ];
 
       environment.extraInit = ''
         ${concatMapStrings (p: ''
@@ -229,40 +314,37 @@ in
       # Override GSettings schemas
       environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
 
-       # If gnome3 is installed, build vim for gtk3 too.
+       # If gnome is installed, build vim for gtk3 too.
       nixpkgs.config.vim.gui = "gtk3";
-
-      # Install gnome-software if flatpak is enabled
-      services.flatpak.guiPackages = [
-        pkgs.gnome3.gnome-software
-      ];
     })
 
     (mkIf flashbackEnabled {
-      services.xserver.displayManager.sessionPackages =  map
-        (wm: pkgs.gnome3.gnome-flashback.mkSessionForWm {
-          inherit (wm) wmName wmLabel wmCommand;
-        }) (optional cfg.flashback.enableMetacity {
-              wmName = "metacity";
-              wmLabel = "Metacity";
-              wmCommand = "${pkgs.gnome3.metacity}/bin/metacity";
-            } ++ cfg.flashback.customSessions);
+      services.xserver.displayManager.sessionPackages =
+        let
+          wmNames = map (wm: wm.wmName) flashbackWms;
+          namesAreUnique = lib.unique wmNames == wmNames;
+        in
+          assert (assertMsg namesAreUnique "Flashback WM names must be unique.");
+          map
+            (wm:
+              pkgs.gnome.gnome-flashback.mkSessionForWm {
+                inherit (wm) wmName wmLabel wmCommand enableGnomePanel;
+                inherit (cfg.flashback) panelModulePackages;
+              }
+            ) flashbackWms;
 
       security.pam.services.gnome-flashback = {
         enableGnomeKeyring = true;
       };
 
-      systemd.packages = with pkgs.gnome3; [
+      systemd.packages = with pkgs.gnome; [
         gnome-flashback
-      ] ++ (map
-        (wm: gnome-flashback.mkSystemdTargetForWm {
-          inherit (wm) wmName;
-        }) cfg.flashback.customSessions);
-
-        # gnome-panel needs these for menu applet
-        environment.sessionVariables.XDG_DATA_DIRS = [ "${pkgs.gnome3.gnome-flashback}/share" ];
-        # TODO: switch to sessionVariables (resolve conflict)
-        environment.variables.XDG_CONFIG_DIRS = [ "${pkgs.gnome3.gnome-flashback}/etc/xdg" ];
+      ] ++ map gnome-flashback.mkSystemdTargetForWm flashbackWms;
+
+      # gnome-panel needs these for menu applet
+      environment.sessionVariables.XDG_DATA_DIRS = [ "${pkgs.gnome.gnome-flashback}/share" ];
+      # TODO: switch to sessionVariables (resolve conflict)
+      environment.variables.XDG_CONFIG_DIRS = [ "${pkgs.gnome.gnome-flashback}/etc/xdg" ];
     })
 
     (mkIf serviceCfg.core-os-services.enable {
@@ -273,13 +355,14 @@ in
       services.accounts-daemon.enable = true;
       services.dleyna-renderer.enable = mkDefault true;
       services.dleyna-server.enable = mkDefault true;
-      services.gnome3.at-spi2-core.enable = true;
-      services.gnome3.evolution-data-server.enable = true;
-      services.gnome3.gnome-keyring.enable = true;
-      services.gnome3.gnome-online-accounts.enable = mkDefault true;
-      services.gnome3.gnome-online-miners.enable = true;
-      services.gnome3.tracker-miners.enable = mkDefault true;
-      services.gnome3.tracker.enable = mkDefault true;
+      services.power-profiles-daemon.enable = mkDefault true;
+      services.gnome.at-spi2-core.enable = true;
+      services.gnome.evolution-data-server.enable = true;
+      services.gnome.gnome-keyring.enable = true;
+      services.gnome.gnome-online-accounts.enable = mkDefault true;
+      services.gnome.gnome-online-miners.enable = true;
+      services.gnome.tracker-miners.enable = mkDefault true;
+      services.gnome.tracker.enable = mkDefault true;
       services.hardware.bolt.enable = mkDefault true;
       services.packagekit.enable = mkDefault true;
       services.udisks2.enable = true;
@@ -307,23 +390,23 @@ in
 
     (mkIf serviceCfg.core-shell.enable {
       services.colord.enable = mkDefault true;
-      services.gnome3.chrome-gnome-shell.enable = mkDefault true;
-      services.gnome3.glib-networking.enable = true;
-      services.gnome3.gnome-initial-setup.enable = mkDefault true;
-      services.gnome3.gnome-remote-desktop.enable = mkDefault true;
-      services.gnome3.gnome-settings-daemon.enable = true;
-      services.gnome3.gnome-user-share.enable = mkDefault true;
-      services.gnome3.rygel.enable = mkDefault true;
+      services.gnome.chrome-gnome-shell.enable = mkDefault true;
+      services.gnome.glib-networking.enable = true;
+      services.gnome.gnome-initial-setup.enable = mkDefault true;
+      services.gnome.gnome-remote-desktop.enable = mkDefault true;
+      services.gnome.gnome-settings-daemon.enable = true;
+      services.gnome.gnome-user-share.enable = mkDefault true;
+      services.gnome.rygel.enable = mkDefault true;
       services.gvfs.enable = true;
       services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
       services.telepathy.enable = mkDefault true;
 
-      systemd.packages = with pkgs.gnome3; [
+      systemd.packages = with pkgs.gnome; [
         gnome-session
         gnome-shell
       ];
 
-      services.udev.packages = with pkgs.gnome3; [
+      services.udev.packages = with pkgs.gnome; [
         # Force enable KMS modifiers for devices that require them.
         # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1443
         mutter
@@ -332,7 +415,7 @@ in
       services.avahi.enable = mkDefault true;
 
       xdg.portal.extraPortals = [
-        pkgs.gnome3.gnome-shell
+        pkgs.gnome.gnome-shell
       ];
 
       services.geoclue2.enable = mkDefault true;
@@ -359,16 +442,16 @@ in
       ];
 
       # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
-      environment.systemPackages = with pkgs.gnome3; [
+      environment.systemPackages = with pkgs.gnome; [
         adwaita-icon-theme
         gnome-backgrounds
         gnome-bluetooth
         gnome-color-manager
         gnome-control-center
-        gnome-getting-started-docs
         gnome-shell
         gnome-shell-extensions
         gnome-themes-extra
+        pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
         pkgs.nixos-artwork.wallpapers.simple-dark-gray
         pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom
         pkgs.gnome-user-docs
@@ -385,12 +468,12 @@ in
     # Enable soft realtime scheduling, only supported on wayland
     (mkIf serviceCfg.experimental-features.realtime-scheduling {
       security.wrappers.".gnome-shell-wrapped" = {
-        source = "${pkgs.gnome3.gnome-shell}/bin/.gnome-shell-wrapped";
+        source = "${pkgs.gnome.gnome-shell}/bin/.gnome-shell-wrapped";
         capabilities = "cap_sys_nice=ep";
       };
 
       systemd.user.services.gnome-shell-wayland = let
-        gnomeShellRT = with pkgs.gnome3; pkgs.runCommand "gnome-shell-rt" {} ''
+        gnomeShellRT = with pkgs.gnome; pkgs.runCommand "gnome-shell-rt" {} ''
           mkdir -p $out/bin/
           cp ${gnome-shell}/bin/gnome-shell $out/bin
           sed -i "s@${gnome-shell}/bin/@${config.security.wrapperDir}/@" $out/bin/gnome-shell
@@ -405,43 +488,51 @@ in
 
     # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-utilities.bst
     (mkIf serviceCfg.core-utilities.enable {
-      environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
-        baobab
-        cheese
-        eog
-        epiphany
-        gedit
-        gnome-calculator
-        gnome-calendar
-        gnome-characters
-        gnome-clocks
-        gnome-contacts
-        gnome-font-viewer
-        gnome-logs
-        gnome-maps
-        gnome-music
-        pkgs.gnome-photos
-        gnome-screenshot
-        gnome-system-monitor
-        gnome-weather
-        nautilus
-        pkgs.gnome-connections
-        simple-scan
-        totem
-        yelp
-      ] config.environment.gnome3.excludePackages);
+      environment.systemPackages =
+        with pkgs.gnome;
+        removePackagesByName
+          ([
+            baobab
+            cheese
+            eog
+            epiphany
+            gedit
+            gnome-calculator
+            gnome-calendar
+            gnome-characters
+            gnome-clocks
+            gnome-contacts
+            gnome-font-viewer
+            gnome-logs
+            gnome-maps
+            gnome-music
+            pkgs.gnome-photos
+            gnome-screenshot
+            gnome-system-monitor
+            gnome-weather
+            nautilus
+            pkgs.gnome-connections
+            simple-scan
+            totem
+            yelp
+          ] ++ lib.optionals config.services.flatpak.enable [
+            # Since PackageKit Nix support is not there yet,
+            # only install gnome-software if flatpak is enabled.
+            gnome-software
+          ])
+          config.environment.gnome.excludePackages;
 
       # Enable default program modules
       # Since some of these have a corresponding package, we only
       # enable that program module if the package hasn't been excluded
-      # through `environment.gnome3.excludePackages`
-      programs.evince.enable = notExcluded pkgs.gnome3.evince;
-      programs.file-roller.enable = notExcluded pkgs.gnome3.file-roller;
-      programs.geary.enable = notExcluded pkgs.gnome3.geary;
-      programs.gnome-disks.enable = notExcluded pkgs.gnome3.gnome-disk-utility;
-      programs.gnome-terminal.enable = notExcluded pkgs.gnome3.gnome-terminal;
-      programs.seahorse.enable = notExcluded pkgs.gnome3.seahorse;
-      services.gnome3.sushi.enable = notExcluded pkgs.gnome3.sushi;
+      # through `environment.gnome.excludePackages`
+      programs.evince.enable = notExcluded pkgs.gnome.evince;
+      programs.file-roller.enable = notExcluded pkgs.gnome.file-roller;
+      programs.geary.enable = notExcluded pkgs.gnome.geary;
+      programs.gnome-disks.enable = notExcluded pkgs.gnome.gnome-disk-utility;
+      programs.gnome-terminal.enable = notExcluded pkgs.gnome.gnome-terminal;
+      programs.seahorse.enable = notExcluded pkgs.gnome.seahorse;
+      services.gnome.sushi.enable = notExcluded pkgs.gnome.sushi;
 
       # Let nautilus find extensions
       # TODO: Create nautilus-with-extensions package
@@ -456,7 +547,7 @@ in
     })
 
     (mkIf serviceCfg.games.enable {
-      environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
+      environment.systemPackages = (with pkgs.gnome; removePackagesByName [
         aisleriot
         atomix
         five-or-more
@@ -476,12 +567,12 @@ in
         quadrapassel
         swell-foop
         tali
-      ] config.environment.gnome3.excludePackages);
+      ] config.environment.gnome.excludePackages);
     })
 
     # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
     (mkIf serviceCfg.core-developer-tools.enable {
-      environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
+      environment.systemPackages = (with pkgs.gnome; removePackagesByName [
         dconf-editor
         devhelp
         pkgs.gnome-builder
@@ -490,9 +581,9 @@ in
         # in default configurations.
         # https://github.com/NixOS/nixpkgs/issues/60908
         /* gnome-boxes */
-      ] config.environment.gnome3.excludePackages);
+      ] config.environment.gnome.excludePackages);
 
-      services.sysprof.enable = true;
+      services.sysprof.enable = notExcluded pkgs.sysprof;
     })
   ];
 
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml
new file mode 100644
index 000000000000..6c53bacacb32
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.xml
@@ -0,0 +1,277 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xml:id="chap-gnome">
+ <title>GNOME Desktop</title>
+ <para>
+  GNOME provides a simple, yet full-featured desktop environment with a focus on productivity. Its Mutter compositor supports both Wayland and X server, and the GNOME Shell user interface is fully customizable by extensions.
+ </para>
+
+ <section xml:id="sec-gnome-enable">
+  <title>Enabling GNOME</title>
+
+  <para>
+   All of the core apps, optional apps, games, and core developer tools from GNOME are available.
+  </para>
+
+  <para>
+   To enable the GNOME desktop use:
+  </para>
+
+<programlisting>
+<xref linkend="opt-services.xserver.desktopManager.gnome.enable"/> = true;
+<xref linkend="opt-services.xserver.displayManager.gdm.enable"/> = true;
+</programlisting>
+
+  <note>
+   <para>
+    While it is not strictly necessary to use GDM as the display manager with GNOME, it is recommended, as some features such as screen lock <link xlink:href="#sec-gnome-faq-can-i-use-lightdm-with-gnome">might not work</link> without it.
+   </para>
+  </note>
+
+  <para>
+   The default applications used in NixOS are very minimal, inspired by the defaults used in <link xlink:href="https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/40.0/elements/core/meta-gnome-core-utilities.bst">gnome-build-meta</link>.
+  </para>
+
+  <section xml:id="sec-gnome-without-the-apps">
+   <title>GNOME without the apps</title>
+
+   <para>
+    If you’d like to only use the GNOME desktop and not the apps, you can disable them with:
+   </para>
+
+<programlisting>
+<xref linkend="opt-services.gnome.core-utilities.enable"/> = false;
+</programlisting>
+
+   <para>
+    and none of them will be installed.
+   </para>
+
+   <para>
+    If you’d only like to omit a subset of the core utilities, you can use <xref linkend="opt-environment.gnome.excludePackages"/>.
+    Note that this mechanism can only exclude core utilities, games and core developer tools.
+   </para>
+  </section>
+
+  <section xml:id="sec-gnome-disabling-services">
+   <title>Disabling GNOME services</title>
+
+   <para>
+    It is also possible to disable many of the <link xlink:href="https://github.com/NixOS/nixpkgs/blob/b8ec4fd2a4edc4e30d02ba7b1a2cc1358f3db1d5/nixos/modules/services/x11/desktop-managers/gnome.nix#L329-L348">core services</link>. For example, if you do not need indexing files, you can disable Tracker with:
+   </para>
+
+<programlisting>
+<xref linkend="opt-services.gnome.tracker-miners.enable"/> = false;
+<xref linkend="opt-services.gnome.tracker.enable"/> = false;
+</programlisting>
+
+   <para>
+    Note, however, that doing so is not supported and might break some applications. Notably, GNOME Music cannot work without Tracker.
+   </para>
+  </section>
+
+  <section xml:id="sec-gnome-games">
+   <title>GNOME games</title>
+
+   <para>
+    You can install all of the GNOME games with:
+   </para>
+
+<programlisting>
+<xref linkend="opt-services.gnome.games.enable"/> = true;
+</programlisting>
+  </section>
+
+  <section xml:id="sec-gnome-core-developer-tools">
+   <title>GNOME core developer tools</title>
+
+   <para>
+    You can install GNOME core developer tools with:
+   </para>
+
+<programlisting>
+<xref linkend="opt-services.gnome.core-developer-tools.enable"/> = true;
+</programlisting>
+  </section>
+ </section>
+
+ <section xml:id="sec-gnome-enable-flashback">
+  <title>Enabling GNOME Flashback</title>
+
+  <para>
+   GNOME Flashback provides a desktop environment based on the classic GNOME 2 architecture. You can enable the default GNOME Flashback session, which uses the Metacity window manager, with:
+  </para>
+
+<programlisting>
+<xref linkend="opt-services.xserver.desktopManager.gnome.flashback.enableMetacity"/> = true;
+</programlisting>
+
+  <para>
+   It is also possible to create custom sessions that replace Metacity with a different window manager using <xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions"/>.
+  </para>
+
+  <para>
+   The following example uses <literal>xmonad</literal> window manager:
+  </para>
+
+<programlisting>
+<xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions"/> = [
+  {
+    wmName = "xmonad";
+    wmLabel = "XMonad";
+    wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad";
+    enableGnomePanel = false;
+  }
+];
+</programlisting>
+
+ </section>
+ <section xml:id="sec-gnome-gdm">
+  <title>GDM</title>
+
+  <para>
+   If you want to use GNOME Wayland session on Nvidia hardware, you need to enable:
+  </para>
+
+<programlisting>
+<xref linkend="opt-services.xserver.displayManager.gdm.nvidiaWayland"/> = true;
+</programlisting>
+
+  <para>
+   as the default configuration will forbid this.
+  </para>
+ </section>
+
+ <section xml:id="sec-gnome-icons-and-gtk-themes">
+  <title>Icons and GTK Themes</title>
+
+  <para>
+   Icon themes and GTK themes don’t require any special option to install in NixOS.
+  </para>
+
+  <para>
+   You can add them to <xref linkend="opt-environment.systemPackages"/> and switch to them with GNOME Tweaks.
+   If you’d like to do this manually in dconf, change the values of the following keys:
+  </para>
+
+<programlisting>
+/org/gnome/desktop/interface/gtk-theme
+/org/gnome/desktop/interface/icon-theme
+</programlisting>
+
+  <para>
+   in <literal>dconf-editor</literal>
+  </para>
+ </section>
+
+ <section xml:id="sec-gnome-shell-extensions">
+  <title>Shell Extensions</title>
+
+  <para>
+   Most Shell extensions are packaged under the <literal>gnomeExtensions</literal> attribute.
+   Some packages that include Shell extensions, like <literal>gnome.gpaste</literal>, don’t have their extension decoupled under this attribute.
+  </para>
+
+  <para>
+   You can install them like any other package:
+  </para>
+
+<programlisting>
+<xref linkend="opt-environment.systemPackages"/> = [
+  gnomeExtensions.dash-to-dock
+  gnomeExtensions.gsconnect
+  gnomeExtensions.mpris-indicator-button
+];
+</programlisting>
+
+  <para>
+   Unfortunately, we lack a way for these to be managed in a completely declarative way.
+   So you have to enable them manually with an Extensions application.
+   It is possible to use a <link xlink:href="#sec-gnome-gsettings-overrides">GSettings override</link> for this on <literal>org.gnome.shell.enabled-extensions</literal>, but that will only influence the default value.
+  </para>
+ </section>
+
+ <section xml:id="sec-gnome-gsettings-overrides">
+  <title>GSettings Overrides</title>
+
+  <para>
+   Majority of software building on the GNOME platform use GLib’s <link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html">GSettings</link> system to manage runtime configuration. For our purposes, the system consists of XML schemas describing the individual configuration options, stored in the package, and a settings backend, where the values of the settings are stored. On NixOS, like on most Linux distributions, dconf database is used as the backend.
+  </para>
+
+  <para>
+   <link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html#id-1.4.19.2.9.25">GSettings vendor overrides</link> can be used to adjust the default values for settings of the GNOME desktop and apps by replacing the default values specified in the XML schemas. Using overrides will allow you to pre-seed user settings before you even start the session.
+  </para>
+
+  <warning>
+   <para>
+    Overrides really only change the default values for GSettings keys so if you or an application changes the setting value, the value set by the override will be ignored. Until <link xlink:href="https://github.com/NixOS/nixpkgs/issues/54150">NixOS’s dconf module implements changing values</link>, you will either need to keep that in mind and clear the setting from the backend using <literal>dconf reset</literal> command when that happens, or use the <link xlink:href="https://nix-community.github.io/home-manager/options.html#opt-dconf.settings">module from home-manager</link>.
+   </para>
+  </warning>
+
+  <para>
+   You can override the default GSettings values using the <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides"/> option.
+  </para>
+
+  <para>
+   Take note that whatever packages you want to override GSettings for, you need to add them to
+   <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages"/>.
+  </para>
+
+  <para>
+   You can use <literal>dconf-editor</literal> tool to explore which GSettings you can set.
+  </para>
+
+  <section xml:id="sec-gnome-gsettings-overrides-example">
+   <title>Example</title>
+
+<programlisting>
+services.xserver.desktopManager.gnome = {
+  <link xlink:href="#opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides">extraGSettingsOverrides</link> = ''
+    # Change default background
+    [org.gnome.desktop.background]
+    picture-uri='file://${pkgs.nixos-artwork.wallpapers.mosaic-blue.gnomeFilePath}'
+
+    # Favorite apps in gnome-shell
+    [org.gnome.shell]
+    favorite-apps=['org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop']
+  '';
+
+  <link xlink:href="#opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages">extraGSettingsOverridePackages</link> = [
+    pkgs.gsettings-desktop-schemas # for org.gnome.desktop
+    pkgs.gnome.gnome-shell # for org.gnome.shell
+  ];
+};
+</programlisting>
+  </section>
+ </section>
+
+ <section xml:id="sec-gnome-faq">
+  <title>Frequently Asked Questions</title>
+
+  <section xml:id="sec-gnome-faq-can-i-use-lightdm-with-gnome">
+   <title>Can I use LightDM with GNOME?</title>
+
+   <para>
+    Yes you can, and any other display-manager in NixOS.
+   </para>
+
+   <para>
+    However, it doesn’t work correctly for the Wayland session of GNOME Shell yet, and
+    won’t be able to lock your screen.
+   </para>
+
+   <para>
+    See <link xlink:href="https://github.com/NixOS/nixpkgs/issues/56342">this issue.</link>
+   </para>
+  </section>
+
+  <section xml:id="sec-gnome-faq-nixos-rebuild-switch-kills-session">
+   <title>Why does <literal>nixos-rebuild switch</literal> sometimes kill my session?</title>
+
+   <para>
+    This is a known <link xlink:href="https://github.com/NixOS/nixpkgs/issues/44344">issue</link> without any workarounds.
+    If you are doing a fairly large upgrade, it is probably safer to use <literal>nixos-rebuild boot</literal>.
+   </para>
+  </section>
+ </section>
+</chapter>
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix
index bf53082b267d..71dfad5c7ca0 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix
@@ -51,15 +51,15 @@ in
     environment.systemPackages =
       pkgs.lxqt.preRequisitePackages ++
       pkgs.lxqt.corePackages ++
-      (pkgs.gnome3.removePackagesByName
+      (pkgs.gnome.removePackagesByName
         pkgs.lxqt.optionalPackages
         config.environment.lxqt.excludePackages);
 
     # Link some extra directories in /run/current-system/software/share
     environment.pathsToLink = [ "/share" ];
 
+    # virtual file systems support for PCManFM-QT
     services.gvfs.enable = true;
-    services.gvfs.package = pkgs.gvfs;
 
     services.upower.enable = config.powerManagement.enable;
   };
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix
index f236c14fcf3e..19ab9edb7324 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix
@@ -76,7 +76,7 @@ in
 
     environment.systemPackages =
       pkgs.mate.basePackages ++
-      (pkgs.gnome3.removePackagesByName
+      (pkgs.gnome.removePackagesByName
         pkgs.mate.extraPackages
         config.environment.mate.excludePackages) ++
       [
@@ -97,8 +97,8 @@ in
     # Mate uses this for printing
     programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
 
-    services.gnome3.at-spi2-core.enable = true;
-    services.gnome3.gnome-keyring.enable = true;
+    services.gnome.at-spi2-core.enable = true;
+    services.gnome.gnome-keyring.enable = true;
     services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
     services.gvfs.enable = true;
     services.upower.enable = config.powerManagement.enable;
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 195da75e7443..e492073b80ff 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -43,7 +43,7 @@ in
       sessionPath = mkOption {
         default = [];
         type = types.listOf types.package;
-        example = literalExample "[ pkgs.gnome3.gpaste ]";
+        example = literalExample "[ pkgs.gnome.gpaste ]";
         description = ''
           Additional list of packages to be added to the session search path.
           Useful for GSettings-conditional autostart.
@@ -142,12 +142,12 @@ in
       ];
       services.pantheon.apps.enable = mkDefault true;
       services.pantheon.contractor.enable = mkDefault true;
-      services.gnome3.at-spi2-core.enable = true;
-      services.gnome3.evolution-data-server.enable = true;
-      services.gnome3.glib-networking.enable = true;
-      services.gnome3.gnome-keyring.enable = true;
+      services.gnome.at-spi2-core.enable = true;
+      services.gnome.evolution-data-server.enable = true;
+      services.gnome.glib-networking.enable = true;
+      services.gnome.gnome-keyring.enable = true;
       services.gvfs.enable = true;
-      services.gnome3.rygel.enable = mkDefault true;
+      services.gnome.rygel.enable = mkDefault true;
       services.gsignond.enable = mkDefault true;
       services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ];
       services.udisks2.enable = true;
@@ -177,7 +177,7 @@ in
         desktop-file-utils
         glib
         gnome-menus
-        gnome3.adwaita-icon-theme
+        gnome.adwaita-icon-theme
         gtk3.out
         hicolor-icon-theme
         lightlocker
@@ -213,10 +213,10 @@ in
         elementary-settings-daemon
         pantheon-agent-geoclue2
         pantheon-agent-polkit
-      ]) ++ (gnome3.removePackagesByName [
-        gnome3.geary
-        gnome3.epiphany
-        gnome3.gnome-font-viewer
+      ]) ++ (gnome.removePackagesByName [
+        gnome.geary
+        gnome.epiphany
+        gnome.gnome-font-viewer
       ] config.environment.pantheon.excludePackages);
 
       programs.evince.enable = mkDefault true;
@@ -265,7 +265,7 @@ in
     })
 
     (mkIf serviceCfg.apps.enable {
-      environment.systemPackages = (with pkgs.pantheon; pkgs.gnome3.removePackagesByName [
+      environment.systemPackages = (with pkgs.pantheon; pkgs.gnome.removePackagesByName [
         elementary-calculator
         elementary-calendar
         elementary-camera
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 44ee079b8173..b6be524aea66 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -8,7 +8,7 @@ let
   cfg = xcfg.desktopManager.plasma5;
 
   libsForQt5 = pkgs.plasma5Packages;
-  inherit (libsForQt5) kdeApplications kdeFrameworks plasma5;
+  inherit (libsForQt5) kdeGear kdeFrameworks plasma5;
   inherit (pkgs) writeText;
 
   pulseaudio = config.hardware.pulseaudio;
@@ -213,7 +213,7 @@ in
 
       environment.systemPackages =
         with libsForQt5;
-        with plasma5; with kdeApplications; with kdeFrameworks;
+        with plasma5; with kdeGear; with kdeFrameworks;
         [
           frameworkintegration
           kactivities
@@ -316,6 +316,7 @@ in
         ++ lib.optionals config.hardware.bluetooth.enable [ bluedevil bluez-qt pkgs.openobex pkgs.obexftp ]
         ++ lib.optional config.networking.networkmanager.enable plasma-nm
         ++ lib.optional config.hardware.pulseaudio.enable plasma-pa
+        ++ lib.optional config.services.pipewire.pulse.enable plasma-pa
         ++ lib.optional config.powerManagement.enable powerdevil
         ++ lib.optional config.services.colord.enable pkgs.colord-kde
         ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
index fc7f7bea4e44..bbfdea2225b5 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -9,7 +9,7 @@ in
 {
 
   meta = {
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 
   imports = [
@@ -74,8 +74,8 @@ in
       glib # for gsettings
       gtk3.out # gtk-update-icon-cache
 
-      gnome3.gnome-themes-extra
-      gnome3.adwaita-icon-theme
+      gnome.gnome-themes-extra
+      gnome.adwaita-icon-theme
       hicolor-icon-theme
       tango-icon-theme
       xfce4-icon-theme
@@ -149,9 +149,8 @@ in
     security.polkit.enable = true;
     services.accounts-daemon.enable = true;
     services.upower.enable = config.powerManagement.enable;
-    services.gnome3.glib-networking.enable = true;
+    services.gnome.glib-networking.enable = true;
     services.gvfs.enable = true;
-    services.gvfs.package = pkgs.xfce.gvfs;
     services.tumbler.enable = true;
     services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
     services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/account-service-util.nix b/nixpkgs/nixos/modules/services/x11/display-managers/account-service-util.nix
index 2b08c62d0ad1..dec5c06cb3ca 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/account-service-util.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/account-service-util.nix
@@ -39,6 +39,6 @@ python3.pkgs.buildPythonApplication {
   '';
 
   meta = with lib; {
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
index f79eb64b5a6a..e1b9a21eb9f0 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
@@ -5,7 +5,7 @@ with lib;
 let
 
   cfg = config.services.xserver.displayManager;
-  gdm = pkgs.gnome3.gdm;
+  gdm = pkgs.gnome.gdm;
 
   xSessionWrapper = if (cfg.setupCommands == "") then null else
     pkgs.writeScript "gdm-x-session-wrapper" ''
@@ -154,14 +154,14 @@ in
     ] ++ optionals config.hardware.pulseaudio.enable [
       "d /run/gdm/.config/pulse 0711 gdm gdm"
       "L+ /run/gdm/.config/pulse/${pulseConfig.name} - - - - ${pulseConfig}"
-    ] ++ optionals config.services.gnome3.gnome-initial-setup.enable [
+    ] ++ optionals config.services.gnome.gnome-initial-setup.enable [
       # Create stamp file for gnome-initial-setup to prevent it starting in GDM.
       "f /run/gdm/.config/gnome-initial-setup-done 0711 gdm gdm - yes"
     ];
 
     # Otherwise GDM will not be able to start correctly and display Wayland sessions
-    systemd.packages = with pkgs.gnome3; [ gdm gnome-session gnome-shell ];
-    environment.systemPackages = [ pkgs.gnome3.adwaita-icon-theme ];
+    systemd.packages = with pkgs.gnome; [ gdm gnome-session gnome-shell ];
+    environment.systemPackages = [ pkgs.gnome.adwaita-icon-theme ];
 
     systemd.services.display-manager.wants = [
       # Because sd_login_monitor_new requires /run/systemd/machines
@@ -208,7 +208,7 @@ in
       EnvironmentFile = "-/etc/locale.conf";
     };
 
-    systemd.services.display-manager.path = [ pkgs.gnome3.gnome-session ];
+    systemd.services.display-manager.path = [ pkgs.gnome.gnome-session ];
 
     # Allow choosing an user account
     services.accounts-daemon.enable = true;
@@ -218,14 +218,14 @@ in
     # We duplicate upstream's udev rules manually to make wayland with nvidia configurable
     services.udev.extraRules = ''
       # disable Wayland on Cirrus chipsets
-      ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="${gdm}/libexec/gdm-disable-wayland"
+      ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false"
       # disable Wayland on Hi1710 chipsets
-      ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="${gdm}/libexec/gdm-disable-wayland"
+      ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false"
       ${optionalString (!cfg.gdm.nvidiaWayland) ''
-        DRIVER=="nvidia", RUN+="${gdm}/libexec/gdm-disable-wayland"
+        DRIVER=="nvidia", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false"
       ''}
       # disable Wayland when modesetting is disabled
-      IMPORT{cmdline}="nomodeset", RUN+="${gdm}/libexec/gdm-disable-wayland"
+      IMPORT{cmdline}="nomodeset", RUN+="${gdm}/libexec/gdm-runtime-config set daemon WaylandEnable false"
     '';
 
     systemd.user.services.dbus.wantedBy = [ "default.target" ];
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
index 129df139c61a..ecd46a9ee6d2 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/enso-os.nix
@@ -34,8 +34,8 @@ in {
       theme = {
         package = mkOption {
           type = types.package;
-          default = pkgs.gnome3.gnome-themes-extra;
-          defaultText = "pkgs.gnome3.gnome-themes-extra";
+          default = pkgs.gnome.gnome-themes-extra;
+          defaultText = "pkgs.gnome.gnome-themes-extra";
           description = ''
             The package path that contains the theme given in the name option.
           '';
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
index 9c1dc1d1c12d..fe5a16bc60f1 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/gtk.nix
@@ -47,8 +47,8 @@ in
 
         package = mkOption {
           type = types.package;
-          default = pkgs.gnome3.gnome-themes-extra;
-          defaultText = "pkgs.gnome3.gnome-themes-extra";
+          default = pkgs.gnome.gnome-themes-extra;
+          defaultText = "pkgs.gnome.gnome-themes-extra";
           description = ''
             The package path that contains the theme given in the name option.
           '';
@@ -68,8 +68,8 @@ in
 
         package = mkOption {
           type = types.package;
-          default = pkgs.gnome3.adwaita-icon-theme;
-          defaultText = "pkgs.gnome3.adwaita-icon-theme";
+          default = pkgs.gnome.adwaita-icon-theme;
+          defaultText = "pkgs.gnome.adwaita-icon-theme";
           description = ''
             The package path that contains the icon theme given in the name option.
           '';
@@ -89,8 +89,8 @@ in
 
         package = mkOption {
           type = types.package;
-          default = pkgs.gnome3.adwaita-icon-theme;
-          defaultText = "pkgs.gnome3.adwaita-icon-theme";
+          default = pkgs.gnome.adwaita-icon-theme;
+          defaultText = "pkgs.gnome.adwaita-icon-theme";
           description = ''
             The package path that contains the cursor theme given in the name option.
           '';
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
index 9bc9e2bf6162..76f16646cf5e 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
@@ -11,7 +11,7 @@ let
 in
 {
   meta = {
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 
   options = {
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
index 2dafee9e36e3..3d497c9f25ee 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -70,7 +70,7 @@ let
 in
 {
   meta = {
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 
   # Note: the order in which lightdm greeter modules are imported
diff --git a/nixpkgs/nixos/modules/services/x11/window-managers/metacity.nix b/nixpkgs/nixos/modules/services/x11/window-managers/metacity.nix
index 5175fd7f3b1f..600afe759b2c 100644
--- a/nixpkgs/nixos/modules/services/x11/window-managers/metacity.nix
+++ b/nixpkgs/nixos/modules/services/x11/window-managers/metacity.nix
@@ -5,7 +5,7 @@ with lib;
 let
 
   cfg = config.services.xserver.windowManager.metacity;
-  inherit (pkgs) gnome3;
+  inherit (pkgs) gnome;
 in
 
 {
@@ -18,12 +18,12 @@ in
     services.xserver.windowManager.session = singleton
       { name = "metacity";
         start = ''
-          ${gnome3.metacity}/bin/metacity &
+          ${gnome.metacity}/bin/metacity &
           waitPID=$!
         '';
       };
 
-    environment.systemPackages = [ gnome3.metacity ];
+    environment.systemPackages = [ gnome.metacity ];
 
   };
 
diff --git a/nixpkgs/nixos/modules/services/x11/xserver.nix b/nixpkgs/nixos/modules/services/x11/xserver.nix
index 35bd4dabb673..4dde4476d2c4 100644
--- a/nixpkgs/nixos/modules/services/x11/xserver.nix
+++ b/nixpkgs/nixos/modules/services/x11/xserver.nix
@@ -666,6 +666,7 @@ in
     # The default max inotify watches is 8192.
     # Nowadays most apps require a good number of inotify watches,
     # the value below is used by default on several other distros.
+    boot.kernel.sysctl."fs.inotify.max_user_instances" = mkDefault 524288;
     boot.kernel.sysctl."fs.inotify.max_user_watches" = mkDefault 524288;
 
     systemd.defaultUnit = mkIf cfg.autorun "graphical.target";
diff --git a/nixpkgs/nixos/modules/system/activation/top-level.nix b/nixpkgs/nixos/modules/system/activation/top-level.nix
index 9dbca4e33f38..6751ca3f2ee7 100644
--- a/nixpkgs/nixos/modules/system/activation/top-level.nix
+++ b/nixpkgs/nixos/modules/system/activation/top-level.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, modules, baseModules, ... }:
+{ config, lib, pkgs, modules, baseModules, specialArgs, ... }:
 
 with lib;
 
@@ -13,7 +13,7 @@ let
   # !!! fix this
   children = mapAttrs (childName: childConfig:
       (import ../../../lib/eval-config.nix {
-        inherit baseModules;
+        inherit baseModules specialArgs;
         system = config.nixpkgs.initialSystem;
         modules =
            (optionals childConfig.inheritParentConfig modules)
diff --git a/nixpkgs/nixos/modules/system/boot/kexec.nix b/nixpkgs/nixos/modules/system/boot/kexec.nix
index 27a8e0217c55..03312aa26edc 100644
--- a/nixpkgs/nixos/modules/system/boot/kexec.nix
+++ b/nixpkgs/nixos/modules/system/boot/kexec.nix
@@ -1,7 +1,7 @@
 { pkgs, lib, ... }:
 
 {
-  config = lib.mkIf (lib.any (lib.meta.platformMatch pkgs.stdenv.hostPlatform) pkgs.kexectools.meta.platforms) {
+  config = lib.mkIf (lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.kexectools) {
     environment.systemPackages = [ pkgs.kexectools ];
 
     systemd.services.prepare-kexec =
diff --git a/nixpkgs/nixos/modules/system/boot/luksroot.nix b/nixpkgs/nixos/modules/system/boot/luksroot.nix
index fa14d86e253d..8c82b4bcf5db 100644
--- a/nixpkgs/nixos/modules/system/boot/luksroot.nix
+++ b/nixpkgs/nixos/modules/system/boot/luksroot.nix
@@ -140,24 +140,27 @@ let
     umount /crypt-ramfs 2>/dev/null
   '';
 
-  openCommand = name': { name, device, header, keyFile, keyFileSize, keyFileOffset, allowDiscards, yubikey, gpgCard, fido2, fallbackToPassword, preOpenCommands, postOpenCommands,... }: assert name' == name;
+  openCommand = name: dev: assert name == dev.name;
   let
-    csopen   = "cryptsetup luksOpen ${device} ${name} ${optionalString allowDiscards "--allow-discards"} ${optionalString (header != null) "--header=${header}"}";
-    cschange = "cryptsetup luksChangeKey ${device} ${optionalString (header != null) "--header=${header}"}";
+    csopen = "cryptsetup luksOpen ${dev.device} ${dev.name}"
+           + optionalString dev.allowDiscards " --allow-discards"
+           + optionalString dev.bypassWorkqueues " --perf-no_read_workqueue --perf-no_write_workqueue"
+           + optionalString (dev.header != null) " --header=${dev.header}";
+    cschange = "cryptsetup luksChangeKey ${dev.device} ${optionalString (dev.header != null) "--header=${dev.header}"}";
   in ''
     # Wait for luksRoot (and optionally keyFile and/or header) to appear, e.g.
     # if on a USB drive.
-    wait_target "device" ${device} || die "${device} is unavailable"
+    wait_target "device" ${dev.device} || die "${dev.device} is unavailable"
 
-    ${optionalString (header != null) ''
-      wait_target "header" ${header} || die "${header} is unavailable"
+    ${optionalString (dev.header != null) ''
+      wait_target "header" ${dev.header} || die "${dev.header} is unavailable"
     ''}
 
     do_open_passphrase() {
         local passphrase
 
         while true; do
-            echo -n "Passphrase for ${device}: "
+            echo -n "Passphrase for ${dev.device}: "
             passphrase=
             while true; do
                 if [ -e /crypt-ramfs/passphrase ]; then
@@ -166,7 +169,7 @@ let
                     break
                 else
                     # ask cryptsetup-askpass
-                    echo -n "${device}" > /crypt-ramfs/device
+                    echo -n "${dev.device}" > /crypt-ramfs/device
 
                     # and try reading it from /dev/console with a timeout
                     IFS= read -t 1 -r passphrase
@@ -182,7 +185,7 @@ let
                     fi
                 fi
             done
-            echo -n "Verifying passphrase for ${device}..."
+            echo -n "Verifying passphrase for ${dev.device}..."
             echo -n "$passphrase" | ${csopen} --key-file=-
             if [ $? == 0 ]; then
                 echo " - success"
@@ -202,13 +205,13 @@ let
 
     # LUKS
     open_normally() {
-        ${if (keyFile != null) then ''
-        if wait_target "key file" ${keyFile}; then
-            ${csopen} --key-file=${keyFile} \
-              ${optionalString (keyFileSize != null) "--keyfile-size=${toString keyFileSize}"} \
-              ${optionalString (keyFileOffset != null) "--keyfile-offset=${toString keyFileOffset}"}
+        ${if (dev.keyFile != null) then ''
+        if wait_target "key file" ${dev.keyFile}; then
+            ${csopen} --key-file=${dev.keyFile} \
+              ${optionalString (dev.keyFileSize != null) "--keyfile-size=${toString dev.keyFileSize}"} \
+              ${optionalString (dev.keyFileOffset != null) "--keyfile-offset=${toString dev.keyFileOffset}"}
         else
-            ${if fallbackToPassword then "echo" else "die"} "${keyFile} is unavailable"
+            ${if dev.fallbackToPassword then "echo" else "die"} "${dev.keyFile} is unavailable"
             echo " - failing back to interactive password prompt"
             do_open_passphrase
         fi
@@ -217,7 +220,7 @@ let
         ''}
     }
 
-    ${optionalString (luks.yubikeySupport && (yubikey != null)) ''
+    ${optionalString (luks.yubikeySupport && (dev.yubikey != null)) ''
     # YubiKey
     rbtohex() {
         ( od -An -vtx1 | tr -d ' \n' )
@@ -243,16 +246,16 @@ let
         local new_response
         local new_k_luks
 
-        mount -t ${yubikey.storage.fsType} ${yubikey.storage.device} /crypt-storage || \
+        mount -t ${dev.yubikey.storage.fsType} ${dev.yubikey.storage.device} /crypt-storage || \
           die "Failed to mount YubiKey salt storage device"
 
-        salt="$(cat /crypt-storage${yubikey.storage.path} | sed -n 1p | tr -d '\n')"
-        iterations="$(cat /crypt-storage${yubikey.storage.path} | sed -n 2p | tr -d '\n')"
+        salt="$(cat /crypt-storage${dev.yubikey.storage.path} | sed -n 1p | tr -d '\n')"
+        iterations="$(cat /crypt-storage${dev.yubikey.storage.path} | sed -n 2p | tr -d '\n')"
         challenge="$(echo -n $salt | openssl-wrap dgst -binary -sha512 | rbtohex)"
-        response="$(ykchalresp -${toString yubikey.slot} -x $challenge 2>/dev/null)"
+        response="$(ykchalresp -${toString dev.yubikey.slot} -x $challenge 2>/dev/null)"
 
         for try in $(seq 3); do
-            ${optionalString yubikey.twoFactor ''
+            ${optionalString dev.yubikey.twoFactor ''
             echo -n "Enter two-factor passphrase: "
             k_user=
             while true; do
@@ -278,9 +281,9 @@ let
             ''}
 
             if [ ! -z "$k_user" ]; then
-                k_luks="$(echo -n $k_user | pbkdf2-sha512 ${toString yubikey.keyLength} $iterations $response | rbtohex)"
+                k_luks="$(echo -n $k_user | pbkdf2-sha512 ${toString dev.yubikey.keyLength} $iterations $response | rbtohex)"
             else
-                k_luks="$(echo | pbkdf2-sha512 ${toString yubikey.keyLength} $iterations $response | rbtohex)"
+                k_luks="$(echo | pbkdf2-sha512 ${toString dev.yubikey.keyLength} $iterations $response | rbtohex)"
             fi
 
             echo -n "$k_luks" | hextorb | ${csopen} --key-file=-
@@ -302,7 +305,7 @@ let
         [ "$opened" == false ] && die "Maximum authentication errors reached"
 
         echo -n "Gathering entropy for new salt (please enter random keys to generate entropy if this blocks for long)..."
-        for i in $(seq ${toString yubikey.saltLength}); do
+        for i in $(seq ${toString dev.yubikey.saltLength}); do
             byte="$(dd if=/dev/random bs=1 count=1 2>/dev/null | rbtohex)";
             new_salt="$new_salt$byte";
             echo -n .
@@ -310,25 +313,25 @@ let
         echo "ok"
 
         new_iterations="$iterations"
-        ${optionalString (yubikey.iterationStep > 0) ''
-        new_iterations="$(($new_iterations + ${toString yubikey.iterationStep}))"
+        ${optionalString (dev.yubikey.iterationStep > 0) ''
+        new_iterations="$(($new_iterations + ${toString dev.yubikey.iterationStep}))"
         ''}
 
         new_challenge="$(echo -n $new_salt | openssl-wrap dgst -binary -sha512 | rbtohex)"
 
-        new_response="$(ykchalresp -${toString yubikey.slot} -x $new_challenge 2>/dev/null)"
+        new_response="$(ykchalresp -${toString dev.yubikey.slot} -x $new_challenge 2>/dev/null)"
 
         if [ ! -z "$k_user" ]; then
-            new_k_luks="$(echo -n $k_user | pbkdf2-sha512 ${toString yubikey.keyLength} $new_iterations $new_response | rbtohex)"
+            new_k_luks="$(echo -n $k_user | pbkdf2-sha512 ${toString dev.yubikey.keyLength} $new_iterations $new_response | rbtohex)"
         else
-            new_k_luks="$(echo | pbkdf2-sha512 ${toString yubikey.keyLength} $new_iterations $new_response | rbtohex)"
+            new_k_luks="$(echo | pbkdf2-sha512 ${toString dev.yubikey.keyLength} $new_iterations $new_response | rbtohex)"
         fi
 
         echo -n "$new_k_luks" | hextorb > /crypt-ramfs/new_key
         echo -n "$k_luks" | hextorb | ${cschange} --key-file=- /crypt-ramfs/new_key
 
         if [ $? == 0 ]; then
-            echo -ne "$new_salt\n$new_iterations" > /crypt-storage${yubikey.storage.path}
+            echo -ne "$new_salt\n$new_iterations" > /crypt-storage${dev.yubikey.storage.path}
         else
             echo "Warning: Could not update LUKS key, current challenge persists!"
         fi
@@ -338,7 +341,7 @@ let
     }
 
     open_with_hardware() {
-        if wait_yubikey ${toString yubikey.gracePeriod}; then
+        if wait_yubikey ${toString dev.yubikey.gracePeriod}; then
             do_open_yubikey
         else
             echo "No YubiKey found, falling back to non-YubiKey open procedure"
@@ -347,7 +350,7 @@ let
     }
     ''}
 
-    ${optionalString (luks.gpgSupport && (gpgCard != null)) ''
+    ${optionalString (luks.gpgSupport && (dev.gpgCard != null)) ''
 
     do_open_gpg_card() {
         # Make all of these local to this function
@@ -355,12 +358,12 @@ let
         local pin
         local opened
 
-        gpg --import /gpg-keys/${device}/pubkey.asc > /dev/null 2> /dev/null
+        gpg --import /gpg-keys/${dev.device}/pubkey.asc > /dev/null 2> /dev/null
 
         gpg --card-status > /dev/null 2> /dev/null
 
         for try in $(seq 3); do
-            echo -n "PIN for GPG Card associated with device ${device}: "
+            echo -n "PIN for GPG Card associated with device ${dev.device}: "
             pin=
             while true; do
                 if [ -e /crypt-ramfs/passphrase ]; then
@@ -382,8 +385,8 @@ let
                     fi
                 fi
             done
-            echo -n "Verifying passphrase for ${device}..."
-            echo -n "$pin" | gpg -q --batch --passphrase-fd 0 --pinentry-mode loopback -d /gpg-keys/${device}/cryptkey.gpg 2> /dev/null | ${csopen} --key-file=- > /dev/null 2> /dev/null
+            echo -n "Verifying passphrase for ${dev.device}..."
+            echo -n "$pin" | gpg -q --batch --passphrase-fd 0 --pinentry-mode loopback -d /gpg-keys/${dev.device}/cryptkey.gpg 2> /dev/null | ${csopen} --key-file=- > /dev/null 2> /dev/null
             if [ $? == 0 ]; then
                 echo " - success"
                 ${if luks.reusePassphrases then ''
@@ -403,7 +406,7 @@ let
     }
 
     open_with_hardware() {
-        if wait_gpgcard ${toString gpgCard.gracePeriod}; then
+        if wait_gpgcard ${toString dev.gpgCard.gracePeriod}; then
             do_open_gpg_card
         else
             echo "No GPG Card found, falling back to normal open procedure"
@@ -412,15 +415,15 @@ let
     }
     ''}
 
-    ${optionalString (luks.fido2Support && (fido2.credential != null)) ''
+    ${optionalString (luks.fido2Support && (dev.fido2.credential != null)) ''
 
     open_with_hardware() {
       local passsphrase
 
-        ${if fido2.passwordLess then ''
+        ${if dev.fido2.passwordLess then ''
           export passphrase=""
         '' else ''
-          read -rsp "FIDO2 salt for ${device}: " passphrase
+          read -rsp "FIDO2 salt for ${dev.device}: " passphrase
           echo
         ''}
         ${optionalString (lib.versionOlder kernelPackages.kernel.version "5.4") ''
@@ -428,7 +431,7 @@ let
           echo "Please move your mouse to create needed randomness."
         ''}
           echo "Waiting for your FIDO2 device..."
-          fido2luks open ${device} ${name} ${fido2.credential} --await-dev ${toString fido2.gracePeriod} --salt string:$passphrase
+          fido2luks open ${dev.device} ${dev.name} ${dev.fido2.credential} --await-dev ${toString dev.fido2.gracePeriod} --salt string:$passphrase
         if [ $? -ne 0 ]; then
           echo "No FIDO2 key found, falling back to normal open procedure"
           open_normally
@@ -437,16 +440,16 @@ let
     ''}
 
     # commands to run right before we mount our device
-    ${preOpenCommands}
+    ${dev.preOpenCommands}
 
-    ${if (luks.yubikeySupport && (yubikey != null)) || (luks.gpgSupport && (gpgCard != null)) || (luks.fido2Support && (fido2.credential != null)) then ''
+    ${if (luks.yubikeySupport && (dev.yubikey != null)) || (luks.gpgSupport && (dev.gpgCard != null)) || (luks.fido2Support && (dev.fido2.credential != null)) then ''
     open_with_hardware
     '' else ''
     open_normally
     ''}
 
     # commands to run right after we mounted our device
-    ${postOpenCommands}
+    ${dev.postOpenCommands}
   '';
 
   askPass = pkgs.writeScriptBin "cryptsetup-askpass" ''
@@ -621,6 +624,17 @@ in
             '';
           };
 
+          bypassWorkqueues = mkOption {
+            default = false;
+            type = types.bool;
+            description = ''
+              Whether to bypass dm-crypt's internal read and write workqueues.
+              Enabling this should improve performance on SSDs; see
+              <link xlink:href="https://wiki.archlinux.org/index.php/Dm-crypt/Specialties#Disable_workqueue_for_increased_solid_state_drive_(SSD)_performance">here</link>
+              for more information. Needs Linux 5.9 or later.
+            '';
+          };
+
           fallbackToPassword = mkOption {
             default = false;
             type = types.bool;
@@ -833,6 +847,11 @@ in
         { assertion = !(luks.fido2Support && luks.yubikeySupport);
           message = "FIDO2 and YubiKey may not be used at the same time.";
         }
+
+        { assertion = any (dev: dev.bypassWorkqueues) (attrValues luks.devices)
+                      -> versionAtLeast kernelPackages.kernel.version "5.9";
+          message = "boot.initrd.luks.devices.<name>.bypassWorkqueues is not supported for kernels older than 5.9";
+        }
       ];
 
     # actually, sbp2 driver is the one enabling the DMA attack, but this needs to be tested
diff --git a/nixpkgs/nixos/modules/system/boot/networkd.nix b/nixpkgs/nixos/modules/system/boot/networkd.nix
index bbdd5a407060..1de58b3d2c4a 100644
--- a/nixpkgs/nixos/modules/system/boot/networkd.nix
+++ b/nixpkgs/nixos/modules/system/boot/networkd.nix
@@ -716,10 +716,17 @@ let
           "NTP"
           "EmitSIP"
           "SIP"
+          "EmitPOP3"
+          "POP3"
+          "EmitSMTP"
+          "SMTP"
+          "EmitLPR"
+          "LPR"
           "EmitRouter"
           "EmitTimezone"
           "Timezone"
           "SendOption"
+          "SendVendorOption"
         ])
         (assertInt "PoolOffset")
         (assertMinimum "PoolOffset" 0)
@@ -728,6 +735,9 @@ let
         (assertValueOneOf "EmitDNS" boolValues)
         (assertValueOneOf "EmitNTP" boolValues)
         (assertValueOneOf "EmitSIP" boolValues)
+        (assertValueOneOf "EmitPOP3" boolValues)
+        (assertValueOneOf "EmitSMTP" boolValues)
+        (assertValueOneOf "EmitLPR" boolValues)
         (assertValueOneOf "EmitRouter" boolValues)
         (assertValueOneOf "EmitTimezone" boolValues)
       ];
diff --git a/nixpkgs/nixos/modules/system/boot/systemd.nix b/nixpkgs/nixos/modules/system/boot/systemd.nix
index 484a455683aa..1d6f46f1d17f 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd.nix
+++ b/nixpkgs/nixos/modules/system/boot/systemd.nix
@@ -90,6 +90,7 @@ let
       "systemd-fsck@.service"
       "systemd-fsck-root.service"
       "systemd-remount-fs.service"
+      "systemd-pstore.service"
       "local-fs.target"
       "local-fs-pre.target"
       "remote-fs.target"
@@ -1185,6 +1186,7 @@ in
     systemd.targets.remote-fs.unitConfig.X-StopOnReconfiguration = true;
     systemd.targets.network-online.wantedBy = [ "multi-user.target" ];
     systemd.services.systemd-importd.environment = proxy_env;
+    systemd.services.systemd-pstore.wantedBy = [ "sysinit.target" ]; # see #81138
 
     # Don't bother with certain units in containers.
     systemd.services.systemd-remount-fs.unitConfig.ConditionVirtualization = "!container";
diff --git a/nixpkgs/nixos/modules/tasks/filesystems.nix b/nixpkgs/nixos/modules/tasks/filesystems.nix
index e468cb880039..065d6cc95d18 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems.nix
@@ -272,10 +272,10 @@ in
         wants = [ "local-fs.target" "remote-fs.target" ];
       };
 
-    # Emit systemd services to format requested filesystems.
     systemd.services =
-      let
 
+    # Emit systemd services to format requested filesystems.
+      let
         formatDevice = fs:
           let
             mountPoint' = "${escapeSystemdPath fs.mountPoint}.mount";
@@ -302,8 +302,35 @@ in
             unitConfig.DefaultDependencies = false; # needed to prevent a cycle
             serviceConfig.Type = "oneshot";
           };
-
-      in listToAttrs (map formatDevice (filter (fs: fs.autoFormat) fileSystems));
+      in listToAttrs (map formatDevice (filter (fs: fs.autoFormat) fileSystems)) // {
+    # Mount /sys/fs/pstore for evacuating panic logs and crashdumps from persistent storage onto the disk using systemd-pstore.
+    # This cannot be done with the other special filesystems because the pstore module (which creates the mount point) is not loaded then.
+    # Since the pstore filesystem is usually empty right after mounting because the backend isn't registered yet, and a path unit cannot detect files inside of it, the same service waits for that to happen. systemd's restart mechanism can't be used here because the first failure also fails all dependent units.
+        "mount-pstore" = {
+          serviceConfig = {
+            Type = "oneshot";
+            ExecStart = "${pkgs.util-linux}/bin/mount -t pstore -o nosuid,noexec,nodev pstore /sys/fs/pstore";
+            ExecStartPost = pkgs.writeShellScript "wait-for-pstore.sh" ''
+              set -eu
+              TRIES=0
+              while [ $TRIES -lt 20 ] && [ "$(cat /sys/module/pstore/parameters/backend)" = "(null)" ]; do
+                sleep 0.1
+                TRIES=$((TRIES+1))
+              done
+            '';
+            RemainAfterExit = true;
+          };
+          unitConfig = {
+            ConditionPathIsMountPoint = "!/sys/fs/pstore";
+            ConditionVirtualization = "!container";
+            DefaultDependencies = false; # needed to prevent a cycle
+          };
+          after = [ "modprobe@pstore.service" ];
+          requires = [ "modprobe@pstore.service" ];
+          before = [ "systemd-pstore.service" ];
+          wantedBy = [ "systemd-pstore.service" ];
+        };
+      };
 
     systemd.tmpfiles.rules = [
       "d /run/keys 0750 root ${toString config.ids.gids.keys}"
diff --git a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
index 21c30305188b..376d6530f363 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
@@ -103,6 +103,7 @@ in
         readOnly = true;
         type = types.package;
         default = if config.boot.zfs.enableUnstable then pkgs.zfsUnstable else pkgs.zfs;
+        defaultText = "if config.boot.zfs.enableUnstable then pkgs.zfsUnstable else pkgs.zfs";
         description = "Configured ZFS userland tools package.";
       };
 
diff --git a/nixpkgs/nixos/modules/tasks/network-interfaces.nix b/nixpkgs/nixos/modules/tasks/network-interfaces.nix
index f501f85b2a92..879f077332e3 100644
--- a/nixpkgs/nixos/modules/tasks/network-interfaces.nix
+++ b/nixpkgs/nixos/modules/tasks/network-interfaces.nix
@@ -144,33 +144,20 @@ let
       };
 
       tempAddress = mkOption {
-        type = types.enum [ "default" "enabled" "disabled" ];
-        default = if cfg.enableIPv6 then "default" else "disabled";
-        defaultText = literalExample ''if cfg.enableIPv6 then "default" else "disabled"'';
+        type = types.enum (lib.attrNames tempaddrValues);
+        default = cfg.tempAddresses;
+        defaultText = literalExample ''config.networking.tempAddresses'';
         description = ''
           When IPv6 is enabled with SLAAC, this option controls the use of
-          temporary address (aka privacy extensions). This is used to reduce tracking.
-          The three possible values are:
-
-          <itemizedlist>
-           <listitem>
-            <para>
-             <literal>"default"</literal> to generate temporary addresses and use
-             them by default;
-            </para>
-           </listitem>
-           <listitem>
-            <para>
-             <literal>"enabled"</literal> to generate temporary addresses but keep
-             using the standard EUI-64 ones by default;
-            </para>
-           </listitem>
-           <listitem>
-            <para>
-             <literal>"disabled"</literal> to completely disable temporary addresses.
-            </para>
-           </listitem>
-          </itemizedlist>
+          temporary address (aka privacy extensions) on this
+          interface. This is used to reduce tracking.
+
+          See also the global option
+          <xref linkend="opt-networking.tempAddresses"/>, which
+          applies to all interfaces where this is not set.
+
+          Possible values are:
+          ${tempaddrDoc}
         '';
       };
 
@@ -366,6 +353,32 @@ let
 
   isHexString = s: all (c: elem c hexChars) (stringToCharacters (toLower s));
 
+  tempaddrValues = {
+    disabled = {
+      sysctl = "0";
+      description = "completely disable IPv6 temporary addresses";
+    };
+    enabled = {
+      sysctl = "1";
+      description = "generate IPv6 temporary addresses but still use EUI-64 addresses as source addresses";
+    };
+    default = {
+      sysctl = "2";
+      description = "generate IPv6 temporary addresses and use these as source addresses in routing";
+    };
+  };
+  tempaddrDoc = ''
+    <itemizedlist>
+     ${concatStringsSep "\n" (mapAttrsToList (name: { description, ... }: ''
+       <listitem>
+         <para>
+           <literal>"${name}"</literal> to ${description};
+         </para>
+       </listitem>
+     '') tempaddrValues)}
+    </itemizedlist>
+  '';
+
 in
 
 {
@@ -1039,6 +1052,21 @@ in
       '';
     };
 
+    networking.tempAddresses = mkOption {
+      default = if cfg.enableIPv6 then "default" else "disabled";
+      type = types.enum (lib.attrNames tempaddrValues);
+      description = ''
+        Whether to enable IPv6 Privacy Extensions for interfaces not
+        configured explicitly in
+        <xref linkend="opt-networking.interfaces._name_.tempAddress" />.
+
+        This sets the ipv6.conf.*.use_tempaddr sysctl for all
+        interfaces. Possible values are:
+
+        ${tempaddrDoc}
+      '';
+    };
+
   };
 
 
@@ -1098,7 +1126,7 @@ in
       // listToAttrs (forEach interfaces
         (i: let
           opt = i.tempAddress;
-          val = { disabled = 0; enabled = 1; default = 2; }.${opt};
+          val = tempaddrValues.${opt}.sysctl;
          in nameValuePair "net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr" val));
 
     # Capabilities won't work unless we have at-least a 4.3 Linux
@@ -1111,6 +1139,21 @@ in
     } else {
       ping.source = "${pkgs.iputils.out}/bin/ping";
     };
+    security.apparmor.policies."bin.ping".profile = lib.mkIf config.security.apparmor.policies."bin.ping".enable (lib.mkAfter ''
+      /run/wrappers/bin/ping {
+        include <abstractions/base>
+        include <nixos/security.wrappers>
+        rpx /run/wrappers/wrappers.*/ping,
+      }
+      /run/wrappers/wrappers.*/ping {
+        include <abstractions/base>
+        include <nixos/security.wrappers>
+        r /run/wrappers/wrappers.*/ping.real,
+        mrpx ${config.security.wrappers.ping.source},
+        capability net_raw,
+        capability setpcap,
+      }
+    '');
 
     # Set the host and domain names in the activation script.  Don't
     # clear it if it's not configured in the NixOS configuration,
@@ -1188,9 +1231,11 @@ in
       (pkgs.writeTextFile rec {
         name = "ipv6-privacy-extensions.rules";
         destination = "/etc/udev/rules.d/98-${name}";
-        text = ''
+        text = let
+          sysctl-value = tempaddrValues.${cfg.tempAddresses}.sysctl;
+        in ''
           # enable and prefer IPv6 privacy addresses by default
-          ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.bash}/bin/sh -c 'echo 2 > /proc/sys/net/ipv6/conf/%k/use_tempaddr'"
+          ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.bash}/bin/sh -c 'echo ${sysctl-value} > /proc/sys/net/ipv6/conf/%k/use_tempaddr'"
         '';
       })
       (pkgs.writeTextFile rec {
@@ -1199,15 +1244,13 @@ in
         text = concatMapStrings (i:
           let
             opt = i.tempAddress;
-            val = if opt == "disabled" then 0 else 1;
-            msg = if opt == "disabled"
-                  then "completely disable IPv6 privacy addresses"
-                  else "enable IPv6 privacy addresses but prefer EUI-64 addresses";
+            val = tempaddrValues.${opt}.sysctl;
+            msg = tempaddrValues.${opt}.description;
           in
           ''
             # override to ${msg} for ${i.name}
-            ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr=${toString val}"
-          '') (filter (i: i.tempAddress != "default") interfaces);
+            ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr=${val}"
+          '') (filter (i: i.tempAddress != cfg.tempAddresses) interfaces);
       })
     ] ++ lib.optional (cfg.wlanInterfaces != {})
       (pkgs.writeTextFile {
diff --git a/nixpkgs/nixos/modules/virtualisation/amazon-init.nix b/nixpkgs/nixos/modules/virtualisation/amazon-init.nix
index be83607c0af7..4f2f8df90eb8 100644
--- a/nixpkgs/nixos/modules/virtualisation/amazon-init.nix
+++ b/nixpkgs/nixos/modules/virtualisation/amazon-init.nix
@@ -16,6 +16,16 @@ let
 
     userData=/etc/ec2-metadata/user-data
 
+    # Check if user-data looks like a shell script and execute it with the
+    # runtime shell if it does. Otherwise treat it as a nixos configuration
+    # expression
+    if IFS= LC_ALL=C read -rN2 shebang < $userData && [ "$shebang" = '#!' ]; then
+      # NB: we cannot chmod the $userData file, this is why we execute it via
+      # `pkgs.runtimeShell`. This means we have only limited support for shell
+      # scripts compatible with the `pkgs.runtimeShell`.
+      exec ${pkgs.runtimeShell} $userData
+    fi
+
     if [ -s "$userData" ]; then
       # If the user-data looks like it could be a nix expression,
       # copy it over. Also, look for a magic three-hash comment and set
diff --git a/nixpkgs/nixos/modules/virtualisation/containerd.nix b/nixpkgs/nixos/modules/virtualisation/containerd.nix
index 194276d16958..c7ceb816a311 100644
--- a/nixpkgs/nixos/modules/virtualisation/containerd.nix
+++ b/nixpkgs/nixos/modules/virtualisation/containerd.nix
@@ -1,10 +1,20 @@
 { pkgs, lib, config, ... }:
 let
   cfg = config.virtualisation.containerd;
-  containerdConfigChecked = pkgs.runCommand "containerd-config-checked.toml" { nativeBuildInputs = [pkgs.containerd]; } ''
-    containerd -c ${cfg.configFile} config dump >/dev/null
-    ln -s ${cfg.configFile} $out
+
+  configFile = if cfg.configFile == null then
+    settingsFormat.generate "containerd.toml" cfg.settings
+  else
+    cfg.configFile;
+
+  containerdConfigChecked = pkgs.runCommand "containerd-config-checked.toml" {
+    nativeBuildInputs = [ pkgs.containerd ];
+  } ''
+    containerd -c ${configFile} config dump >/dev/null
+    ln -s ${configFile} $out
   '';
+
+  settingsFormat = pkgs.formats.toml {};
 in
 {
 
@@ -13,10 +23,21 @@ in
 
     configFile = lib.mkOption {
       default = null;
-      description = "path to containerd config file";
+      description = ''
+       Path to containerd config file.
+       Setting this option will override any configuration applied by the settings option.
+      '';
       type = nullOr path;
     };
 
+    settings = lib.mkOption {
+      type = settingsFormat.type;
+      default = {};
+      description = ''
+        Verbatim lines to add to containerd.toml
+      '';
+    };
+
     args = lib.mkOption {
       default = {};
       description = "extra args to append to the containerd cmdline";
@@ -25,9 +46,19 @@ in
   };
 
   config = lib.mkIf cfg.enable {
-    virtualisation.containerd.args.config = lib.mkIf (cfg.configFile != null) (toString containerdConfigChecked);
+    warnings = lib.optional (cfg.configFile != null) ''
+      `virtualisation.containerd.configFile` is deprecated. use `virtualisation.containerd.settings` instead.
+    '';
 
-    environment.systemPackages = [pkgs.containerd];
+    virtualisation.containerd = {
+      args.config = toString containerdConfigChecked;
+      settings = {
+        plugins.cri.containerd.snapshotter = lib.mkIf config.boot.zfs.enabled "zfs";
+        plugins.cri.cni.bin_dir = lib.mkDefault "${pkgs.cni-plugins}/bin";
+      };
+    };
+
+    environment.systemPackages = [ pkgs.containerd ];
 
     systemd.services.containerd = {
       description = "containerd - container runtime";
@@ -37,16 +68,14 @@ in
         containerd
         runc
         iptables
-      ];
+      ] ++ lib.optional config.boot.zfs.enabled config.boot.zfs.package;
       serviceConfig = {
         ExecStart = ''${pkgs.containerd}/bin/containerd ${lib.concatStringsSep " " (lib.cli.toGNUCommandLine {} cfg.args)}'';
         Delegate = "yes";
         KillMode = "process";
         Type = "notify";
         Restart = "always";
-        RestartSec = "5";
-        StartLimitBurst = "8";
-        StartLimitIntervalSec = "120s";
+        RestartSec = "10";
 
         # "limits" defined below are adopted from upstream: https://github.com/containerd/containerd/blob/master/containerd.service
         LimitNPROC = "infinity";
@@ -54,6 +83,13 @@ in
         LimitNOFILE = "infinity";
         TasksMax = "infinity";
         OOMScoreAdjust = "-999";
+
+        StateDirectory = "containerd";
+        RuntimeDirectory = "containerd";
+      };
+      unitConfig = {
+        StartLimitBurst = "16";
+        StartLimitIntervalSec = "120s";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/virtualisation/containers.nix b/nixpkgs/nixos/modules/virtualisation/containers.nix
index 3974caf2233b..84824e2f90f0 100644
--- a/nixpkgs/nixos/modules/virtualisation/containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/containers.nix
@@ -48,6 +48,35 @@ in
       description = "containers.conf configuration";
     };
 
+    containersConf.cniPlugins = mkOption {
+      type = types.listOf types.package;
+      defaultText = ''
+        [
+          pkgs.cni-plugins
+        ]
+      '';
+      example = lib.literalExample ''
+        [
+          pkgs.cniPlugins.dnsname
+        ]
+      '';
+      description = ''
+        CNI plugins to install on the system.
+      '';
+    };
+
+    storage.settings = mkOption {
+      type = toml.type;
+      default = {
+        storage = {
+          driver = "overlay";
+          graphroot = "/var/lib/containers/storage";
+          runroot = "/run/containers/storage";
+        };
+      };
+      description = "storage.conf configuration";
+    };
+
     registries = {
       search = mkOption {
         type = types.listOf types.str;
@@ -97,8 +126,11 @@ in
   };
 
   config = lib.mkIf cfg.enable {
+
+    virtualisation.containers.containersConf.cniPlugins = [ pkgs.cni-plugins ];
+
     virtualisation.containers.containersConf.settings = {
-      network.cni_plugin_dirs = [ "${pkgs.cni-plugins}/bin/" ];
+      network.cni_plugin_dirs = map (p: "${lib.getBin p}/bin") cfg.containersConf.cniPlugins;
       engine = {
         init_path = "${pkgs.catatonit}/bin/catatonit";
       } // lib.optionalAttrs cfg.ociSeccompBpfHook.enable {
@@ -109,6 +141,9 @@ in
     environment.etc."containers/containers.conf".source =
       toml.generate "containers.conf" cfg.containersConf.settings;
 
+    environment.etc."containers/storage.conf".source =
+      toml.generate "storage.conf" cfg.storage.settings;
+
     environment.etc."containers/registries.conf".source = toml.generate "registries.conf" {
       registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
     };
diff --git a/nixpkgs/nixos/modules/virtualisation/docker.nix b/nixpkgs/nixos/modules/virtualisation/docker.nix
index 3eb0de3a8559..29f133786d8d 100644
--- a/nixpkgs/nixos/modules/virtualisation/docker.nix
+++ b/nixpkgs/nixos/modules/virtualisation/docker.nix
@@ -150,6 +150,10 @@ in
 
   config = mkIf cfg.enable (mkMerge [{
       boot.kernelModules = [ "bridge" "veth" ];
+      boot.kernel.sysctl = {
+        "net.ipv4.conf.all.forwarding" = mkOverride 98 true;
+        "net.ipv4.conf.default.forwarding" = mkOverride 98 true;
+      };
       environment.systemPackages = [ cfg.package ]
         ++ optional cfg.enableNvidia pkgs.nvidia-docker;
       users.groups.docker.gid = config.ids.gids.docker;
diff --git a/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix b/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix
index 892af513b032..d38f41ab39d7 100644
--- a/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix
+++ b/nixpkgs/nixos/modules/virtualisation/ec2-amis.nix
@@ -348,5 +348,24 @@ let self = {
   "20.09".ap-east-1.hvm-ebs = "ami-0c42f97e5b1fda92f";
   "20.09".sa-east-1.hvm-ebs = "ami-021637976b094959d";
 
-  latest = self."20.09";
+  # 21.05.740.aa576357673
+  "21.05".eu-west-1.hvm-ebs = "ami-048dbc738074a3083";
+  "21.05".eu-west-2.hvm-ebs = "ami-0234cf81fec68315d";
+  "21.05".eu-west-3.hvm-ebs = "ami-020e459baf709107d";
+  "21.05".eu-central-1.hvm-ebs = "ami-0857d5d1309ab8b77";
+  "21.05".eu-north-1.hvm-ebs = "ami-05403e3ae53d3716f";
+  "21.05".us-east-1.hvm-ebs = "ami-0d3002ba40b5b9897";
+  "21.05".us-east-2.hvm-ebs = "ami-069a0ca1bde6dea52";
+  "21.05".us-west-1.hvm-ebs = "ami-0b415460a84bcf9bc";
+  "21.05".us-west-2.hvm-ebs = "ami-093cba49754abd7f8";
+  "21.05".ca-central-1.hvm-ebs = "ami-065c13e1d52d60b33";
+  "21.05".ap-southeast-1.hvm-ebs = "ami-04f570c70ff9b665e";
+  "21.05".ap-southeast-2.hvm-ebs = "ami-02a3d1df595df5ef6";
+  "21.05".ap-northeast-1.hvm-ebs = "ami-027836fddb5c56012";
+  "21.05".ap-northeast-2.hvm-ebs = "ami-0edacd41dc7700c39";
+  "21.05".ap-south-1.hvm-ebs = "ami-0b279b5bb55288059";
+  "21.05".ap-east-1.hvm-ebs = "ami-06dc98082bc55c1fc";
+  "21.05".sa-east-1.hvm-ebs = "ami-04737dd49b98936c6";
+
+  latest = self."21.05";
 }; in self
diff --git a/nixpkgs/nixos/modules/virtualisation/ec2-metadata-fetcher.nix b/nixpkgs/nixos/modules/virtualisation/ec2-metadata-fetcher.nix
index dca5c2abd4e0..760f024f33fb 100644
--- a/nixpkgs/nixos/modules/virtualisation/ec2-metadata-fetcher.nix
+++ b/nixpkgs/nixos/modules/virtualisation/ec2-metadata-fetcher.nix
@@ -71,7 +71,7 @@
   }
 
   wget_imds -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path
-  wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data && chmod 600 "$metaDir/user-data"
+  (umask 077 && wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data)
   wget_imds -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname
   wget_imds -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
 ''
diff --git a/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix b/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix
index a3656c307f96..b3bcfff19807 100644
--- a/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix
+++ b/nixpkgs/nixos/modules/virtualisation/hyperv-guest.nix
@@ -56,6 +56,8 @@ in {
     systemd = {
       packages = [ config.boot.kernelPackages.hyperv-daemons.lib ];
 
+      services.hv-vss.unitConfig.ConditionPathExists = [ "/dev/vmbus/hv_vss" ];
+
       targets.hyperv-daemons = {
         wantedBy = [ "multi-user.target" ];
       };
diff --git a/nixpkgs/nixos/modules/virtualisation/kvmgt.nix b/nixpkgs/nixos/modules/virtualisation/kvmgt.nix
index e08ad3446281..72bd2c24e566 100644
--- a/nixpkgs/nixos/modules/virtualisation/kvmgt.nix
+++ b/nixpkgs/nixos/modules/virtualisation/kvmgt.nix
@@ -82,5 +82,5 @@ in {
     };
   };
 
-  meta.maintainers = with maintainers; [ gnidorah ];
+  meta.maintainers = with maintainers; [ ];
 }
diff --git a/nixpkgs/nixos/modules/virtualisation/libvirtd.nix b/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
index f43c44f5dcab..f45f1802d91c 100644
--- a/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
@@ -11,9 +11,10 @@ let
     auth_unix_rw = "polkit"
     ${cfg.extraConfig}
   '';
+  ovmfFilePrefix = if pkgs.stdenv.isAarch64 then "AAVMF" else "OVMF";
   qemuConfigFile = pkgs.writeText "qemu.conf" ''
     ${optionalString cfg.qemuOvmf ''
-      nvram = ["/run/libvirt/nix-ovmf/OVMF_CODE.fd:/run/libvirt/nix-ovmf/OVMF_VARS.fd"]
+      nvram = [ "/run/libvirt/nix-ovmf/${ovmfFilePrefix}_CODE.fd:/run/libvirt/nix-ovmf/${ovmfFilePrefix}_VARS.fd" ]
     ''}
     ${optionalString (!cfg.qemuRunAsRoot) ''
       user = "qemu-libvirtd"
@@ -154,12 +155,19 @@ in {
 
   config = mkIf cfg.enable {
 
+    assertions = [
+      {
+        assertion = config.security.polkit.enable;
+        message = "The libvirtd module currently requires Polkit to be enabled ('security.polkit.enable = true').";
+      }
+    ];
+
     environment = {
       # this file is expected in /etc/qemu and not sysconfdir (/var/lib)
       etc."qemu/bridge.conf".text = lib.concatMapStringsSep "\n" (e:
         "allow ${e}") cfg.allowedBridges;
       systemPackages = with pkgs; [ libressl.nc iptables cfg.package cfg.qemuPackage ];
-      etc.ethertypes.source = "${pkgs.iptables}/etc/ethertypes";
+      etc.ethertypes.source = "${pkgs.ebtables}/etc/ethertypes";
     };
 
     boot.kernelModules = [ "tun" ];
@@ -206,8 +214,8 @@ in {
         done
 
         ${optionalString cfg.qemuOvmf ''
-          ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_CODE.fd /run/${dirName}/nix-ovmf/
-          ln -s --force ${pkgs.OVMF.fd}/FV/OVMF_VARS.fd /run/${dirName}/nix-ovmf/
+          ln -s --force ${pkgs.OVMF.fd}/FV/${ovmfFilePrefix}_CODE.fd /run/${dirName}/nix-ovmf/
+          ln -s --force ${pkgs.OVMF.fd}/FV/${ovmfFilePrefix}_VARS.fd /run/${dirName}/nix-ovmf/
         ''}
       '';
 
diff --git a/nixpkgs/nixos/modules/virtualisation/lxc.nix b/nixpkgs/nixos/modules/virtualisation/lxc.nix
index f484d5ee59a8..0f8b22a45df0 100644
--- a/nixpkgs/nixos/modules/virtualisation/lxc.nix
+++ b/nixpkgs/nixos/modules/virtualisation/lxc.nix
@@ -74,9 +74,13 @@ in
     systemd.tmpfiles.rules = [ "d /var/lib/lxc/rootfs 0755 root root -" ];
 
     security.apparmor.packages = [ pkgs.lxc ];
-    security.apparmor.profiles = [
-      "${pkgs.lxc}/etc/apparmor.d/lxc-containers"
-      "${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-start"
-    ];
+    security.apparmor.policies = {
+      "bin.lxc-start".profile = ''
+        include ${pkgs.lxc}/etc/apparmor.d/usr.bin.lxc-start
+      '';
+      "lxc-containers".profile = ''
+        include ${pkgs.lxc}/etc/apparmor.d/lxc-containers
+      '';
+    };
   };
 }
diff --git a/nixpkgs/nixos/modules/virtualisation/lxd.nix b/nixpkgs/nixos/modules/virtualisation/lxd.nix
index 96e8d68ae50e..cde29f7bf59c 100644
--- a/nixpkgs/nixos/modules/virtualisation/lxd.nix
+++ b/nixpkgs/nixos/modules/virtualisation/lxd.nix
@@ -97,11 +97,17 @@ in {
     # does a bunch of unrelated things.
     systemd.tmpfiles.rules = [ "d /var/lib/lxc/rootfs 0755 root root -" ];
 
-    security.apparmor.packages = [ cfg.lxcPackage ];
-    security.apparmor.profiles = [
-      "${cfg.lxcPackage}/etc/apparmor.d/lxc-containers"
-      "${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start"
-    ];
+    security.apparmor = {
+      packages = [ cfg.lxcPackage ];
+      policies = {
+        "bin.lxc-start".profile = ''
+          include ${cfg.lxcPackage}/etc/apparmor.d/usr.bin.lxc-start
+        '';
+        "lxc-containers".profile = ''
+          include ${cfg.lxcPackage}/etc/apparmor.d/lxc-containers
+        '';
+      };
+    };
 
     # TODO: remove once LXD gets proper support for cgroupsv2
     # (currently most of the e.g. CPU accounting stuff doesn't work)
@@ -169,5 +175,8 @@ in {
       "net.ipv6.neigh.default.gc_thresh3" = 8192;
       "kernel.keys.maxkeys" = 2000;
     };
+
+    boot.kernelModules = [ "veth" "xt_comment" "xt_CHECKSUM" "xt_MASQUERADE" ]
+      ++ optionals (!config.networking.nftables.enable) [ "iptable_mangle" ];
   };
 }
diff --git a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
index 7a1f11ce40d6..f3f318412df1 100644
--- a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
@@ -35,6 +35,9 @@ let
       ''
         #! ${pkgs.runtimeShell} -e
 
+        # Exit early if we're asked to shut down.
+        trap "exit 0" SIGRTMIN+3
+
         # Initialise the container side of the veth pair.
         if [ -n "$HOST_ADDRESS" ]   || [ -n "$HOST_ADDRESS6" ]  ||
            [ -n "$LOCAL_ADDRESS" ]  || [ -n "$LOCAL_ADDRESS6" ] ||
@@ -60,8 +63,12 @@ let
 
         ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
 
-        # Start the regular stage 1 script.
-        exec "$1"
+        # Start the regular stage 2 script.
+        # We source instead of exec to not lose an early stop signal, which is
+        # also the only _reliable_ shutdown signal we have since early stop
+        # does not execute ExecStop* commands.
+        set +e
+        . "$1"
       ''
     );
 
@@ -127,12 +134,16 @@ let
       ''}
 
       # Run systemd-nspawn without startup notification (we'll
-      # wait for the container systemd to signal readiness).
+      # wait for the container systemd to signal readiness)
+      # Kill signal handling means systemd-nspawn will pass a system-halt signal
+      # to the container systemd when it receives SIGTERM for container shutdown;
+      # containerInit and stage2 have to handle this as well.
       exec ${config.systemd.package}/bin/systemd-nspawn \
         --keep-unit \
         -M "$INSTANCE" -D "$root" $extraFlags \
         $EXTRA_NSPAWN_FLAGS \
         --notify-ready=yes \
+        --kill-signal=SIGRTMIN+3 \
         --bind-ro=/nix/store \
         --bind-ro=/nix/var/nix/db \
         --bind-ro=/nix/var/nix/daemon-socket \
@@ -259,13 +270,10 @@ let
     Slice = "machine.slice";
     Delegate = true;
 
-    # Hack: we don't want to kill systemd-nspawn, since we call
-    # "machinectl poweroff" in preStop to shut down the
-    # container cleanly. But systemd requires sending a signal
-    # (at least if we want remaining processes to be killed
-    # after the timeout). So send an ignored signal.
+    # We rely on systemd-nspawn turning a SIGTERM to itself into a shutdown
+    # signal (SIGRTMIN+3) for the inner container.
     KillMode = "mixed";
-    KillSignal = "WINCH";
+    KillSignal = "TERM";
 
     DevicePolicy = "closed";
     DeviceAllow = map (d: "${d.node} ${d.modifier}") cfg.allowedDevices;
@@ -420,7 +428,7 @@ let
       extraVeths = {};
       additionalCapabilities = [];
       ephemeral = false;
-      timeoutStartSec = "15s";
+      timeoutStartSec = "1min";
       allowedDevices = [];
       hostAddress = null;
       hostAddress6 = null;
@@ -747,8 +755,6 @@ in
 
       postStart = postStartScript dummyConfig;
 
-      preStop = "machinectl poweroff $INSTANCE";
-
       restartIfChanged = false;
 
       serviceConfig = serviceDirectives dummyConfig;
diff --git a/nixpkgs/nixos/modules/virtualisation/openstack-metadata-fetcher.nix b/nixpkgs/nixos/modules/virtualisation/openstack-metadata-fetcher.nix
index 8c191397cf9a..133cd4c0e9f9 100644
--- a/nixpkgs/nixos/modules/virtualisation/openstack-metadata-fetcher.nix
+++ b/nixpkgs/nixos/modules/virtualisation/openstack-metadata-fetcher.nix
@@ -15,7 +15,7 @@
   }
 
   wget_imds -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path
-  wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data && chmod 600 "$metaDir/user-data"
+  (umask 077 && wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data)
   wget_imds -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname
   wget_imds -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
 ''
diff --git a/nixpkgs/nixos/modules/virtualisation/openvswitch.nix b/nixpkgs/nixos/modules/virtualisation/openvswitch.nix
index c6a3ceddc3e0..ccf32641df62 100644
--- a/nixpkgs/nixos/modules/virtualisation/openvswitch.nix
+++ b/nixpkgs/nixos/modules/virtualisation/openvswitch.nix
@@ -66,9 +66,7 @@ in {
     };
 
   in (mkMerge [{
-
-    environment.systemPackages = [ cfg.package pkgs.ipsecTools ];
-
+    environment.systemPackages = [ cfg.package ];
     boot.kernelModules = [ "tun" "openvswitch" ];
 
     boot.extraModulePackages = [ cfg.package ];
@@ -146,6 +144,8 @@ in {
 
   }
   (mkIf (cfg.ipsec && (versionOlder cfg.package.version "2.6.0")) {
+    environment.systemPackages = [ pkgs.ipsecTools ];
+
     services.racoon.enable = true;
     services.racoon.configPath = "${runDir}/ipsec/etc/racoon/racoon.conf";
 
diff --git a/nixpkgs/nixos/modules/virtualisation/podman-dnsname.nix b/nixpkgs/nixos/modules/virtualisation/podman-dnsname.nix
new file mode 100644
index 000000000000..beef19755079
--- /dev/null
+++ b/nixpkgs/nixos/modules/virtualisation/podman-dnsname.nix
@@ -0,0 +1,36 @@
+{ config, lib, pkgs, ... }:
+let
+  inherit (lib)
+    mkOption
+    mkIf
+    types
+    ;
+
+  cfg = config.virtualisation.podman;
+
+in
+{
+  options = {
+    virtualisation.podman = {
+
+      defaultNetwork.dnsname.enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable DNS resolution in the default podman network.
+        '';
+      };
+
+    };
+  };
+
+  config = {
+    virtualisation.containers.containersConf.cniPlugins = mkIf cfg.defaultNetwork.dnsname.enable [ pkgs.dnsname-cni ];
+    virtualisation.podman.defaultNetwork.extraPlugins =
+      lib.optional cfg.defaultNetwork.dnsname.enable {
+        type = "dnsname";
+        domainName = "dns.podman";
+        capabilities.aliases = true;
+      };
+  };
+}
diff --git a/nixpkgs/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix b/nixpkgs/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix
new file mode 100644
index 000000000000..a0e7e433164a
--- /dev/null
+++ b/nixpkgs/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix
@@ -0,0 +1,34 @@
+{ config, lib, pkg, ... }:
+let
+  inherit (lib)
+    mkOption
+    types
+    ;
+
+  cfg = config.virtualisation.podman.networkSocket;
+
+in
+{
+  options.virtualisation.podman.networkSocket = {
+    server = mkOption {
+      type = types.enum [ "ghostunnel" ];
+    };
+  };
+
+  config = lib.mkIf (cfg.enable && cfg.server == "ghostunnel") {
+
+    services.ghostunnel = {
+      enable = true;
+      servers."podman-socket" = {
+        inherit (cfg.tls) cert key cacert;
+        listen = "${cfg.listenAddress}:${toString cfg.port}";
+        target = "unix:/run/podman/podman.sock";
+        allowAll = lib.mkDefault true;
+      };
+    };
+    systemd.services.ghostunnel-server-podman-socket.serviceConfig.SupplementaryGroups = ["podman"];
+
+  };
+
+  meta.maintainers = lib.teams.podman.members ++ [ lib.maintainers.roberth ];
+}
diff --git a/nixpkgs/nixos/modules/virtualisation/podman-network-socket.nix b/nixpkgs/nixos/modules/virtualisation/podman-network-socket.nix
new file mode 100644
index 000000000000..1429164630b3
--- /dev/null
+++ b/nixpkgs/nixos/modules/virtualisation/podman-network-socket.nix
@@ -0,0 +1,91 @@
+{ config, lib, pkg, ... }:
+let
+  inherit (lib)
+    mkOption
+    types
+    ;
+
+  cfg = config.virtualisation.podman.networkSocket;
+
+in
+{
+  options.virtualisation.podman.networkSocket = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Make the Podman and Docker compatibility API available over the network
+        with TLS client certificate authentication.
+
+        This allows Docker clients to connect with the equivalents of the Docker
+        CLI <code>-H</code> and <code>--tls*</code> family of options.
+
+        For certificate setup, see https://docs.docker.com/engine/security/protect-access/
+
+        This option is independent of <xref linkend="opt-virtualisation.podman.dockerSocket.enable"/>.
+      '';
+    };
+
+    server = mkOption {
+      type = types.enum [];
+      description = ''
+        Choice of TLS proxy server.
+      '';
+      example = "ghostunnel";
+    };
+
+    openFirewall = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to open the port in the firewall.
+      '';
+    };
+
+    tls.cacert = mkOption {
+      type = types.path;
+      description = ''
+        Path to CA certificate to use for client authentication.
+      '';
+    };
+
+    tls.cert = mkOption {
+      type = types.path;
+      description = ''
+        Path to certificate describing the server.
+      '';
+    };
+
+    tls.key = mkOption {
+      type = types.path;
+      description = ''
+        Path to the private key corresponding to the server certificate.
+
+        Use a string for this setting. Otherwise it will be copied to the Nix
+        store first, where it is readable by any system process.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 2376;
+      description = ''
+        TCP port number for receiving TLS connections.
+      '';
+    };
+    listenAddress = mkOption {
+      type = types.str;
+      default = "0.0.0.0";
+      description = ''
+        Interface address for receiving TLS connections.
+      '';
+    };
+  };
+
+  config = {
+    networking.firewall.allowedTCPPorts =
+      lib.optional (cfg.enable && cfg.openFirewall) cfg.port;
+  };
+
+  meta.maintainers = lib.teams.podman.members ++ [ lib.maintainers.roberth ];
+}
diff --git a/nixpkgs/nixos/modules/virtualisation/podman.nix b/nixpkgs/nixos/modules/virtualisation/podman.nix
index d6421d488b8b..e245004e04a6 100644
--- a/nixpkgs/nixos/modules/virtualisation/podman.nix
+++ b/nixpkgs/nixos/modules/virtualisation/podman.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, pkgs, ... }:
 let
   cfg = config.virtualisation.podman;
   toml = pkgs.formats.toml { };
+  json = pkgs.formats.json { };
 
   inherit (lib) mkOption types;
 
@@ -22,9 +23,24 @@ let
     done
   '';
 
+  net-conflist = pkgs.runCommand "87-podman-bridge.conflist" {
+    nativeBuildInputs = [ pkgs.jq ];
+    extraPlugins = builtins.toJSON cfg.defaultNetwork.extraPlugins;
+    jqScript = ''
+      . + { "plugins": (.plugins + $extraPlugins) }
+    '';
+  } ''
+    jq <${cfg.package}/etc/cni/net.d/87-podman-bridge.conflist \
+      --argjson extraPlugins "$extraPlugins" \
+      "$jqScript" \
+      >$out
+  '';
+
 in
 {
   imports = [
+    ./podman-dnsname.nix
+    ./podman-network-socket.nix
     (lib.mkRenamedOptionModule [ "virtualisation" "podman" "libpod" ] [ "virtualisation" "containers" "containersConf" ])
   ];
 
@@ -46,6 +62,20 @@ in
         '';
       };
 
+    dockerSocket.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Make the Podman socket available in place of the Docker socket, so
+        Docker tools can find the Podman socket.
+
+        Podman implements the Docker API.
+
+        Users must be in the <code>podman</code> group in order to connect. As
+        with Docker, members of this group can gain root access.
+      '';
+    };
+
     dockerCompat = mkOption {
       type = types.bool;
       default = false;
@@ -84,6 +114,13 @@ in
       '';
     };
 
+    defaultNetwork.extraPlugins = lib.mkOption {
+      type = types.listOf json.type;
+      default = [];
+      description = ''
+        Extra CNI plugin configurations to add to podman's default network.
+      '';
+    };
 
   };
 
@@ -92,7 +129,7 @@ in
       environment.systemPackages = [ cfg.package ]
         ++ lib.optional cfg.dockerCompat dockerCompat;
 
-      environment.etc."cni/net.d/87-podman-bridge.conflist".source = utils.copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
+      environment.etc."cni/net.d/87-podman-bridge.conflist".source = net-conflist;
 
       virtualisation.containers = {
         enable = true; # Enable common /etc/containers configuration
@@ -111,14 +148,36 @@ in
       };
 
       systemd.sockets.podman.wantedBy = [ "sockets.target" ];
+      systemd.sockets.podman.socketConfig.SocketGroup = "podman";
 
-      systemd.tmpfiles.packages = [ cfg.package ];
+      systemd.tmpfiles.packages = [
+        # The /run/podman rule interferes with our podman group, so we remove
+        # it and let the systemd socket logic take care of it.
+        (pkgs.runCommand "podman-tmpfiles-nixos" { package = cfg.package; } ''
+          mkdir -p $out/lib/tmpfiles.d/
+          grep -v 'D! /run/podman 0700 root root' \
+            <$package/lib/tmpfiles.d/podman.conf \
+            >$out/lib/tmpfiles.d/podman.conf
+        '') ];
+
+      systemd.tmpfiles.rules =
+        lib.optionals cfg.dockerSocket.enable [
+          "L! /run/docker.sock - - - - /run/podman/podman.sock"
+        ];
+
+      users.groups.podman = {};
 
       assertions = [
         {
           assertion = cfg.dockerCompat -> !config.virtualisation.docker.enable;
           message = "Option dockerCompat conflicts with docker";
         }
+        {
+          assertion = cfg.dockerSocket.enable -> !config.virtualisation.docker.enable;
+          message = ''
+            The options virtualisation.podman.dockerSocket.enable and virtualisation.docker.enable conflict, because only one can serve the socket.
+          '';
+        }
       ];
     }
   ]);
diff --git a/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix b/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix
index 6a735f451a7e..3824d0c168f7 100644
--- a/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix
+++ b/nixpkgs/nixos/modules/virtualisation/qemu-guest-agent.nix
@@ -30,9 +30,12 @@ in {
       systemd.services.qemu-guest-agent = {
         description = "Run the QEMU Guest Agent";
         serviceConfig = {
-          ExecStart = "${cfg.package}/bin/qemu-ga";
+          ExecStart = "${cfg.package}/bin/qemu-ga --statedir /run/qemu-ga";
           Restart = "always";
           RestartSec = 0;
+          # Runtime directory and mode
+          RuntimeDirectory = "qemu-ga";
+          RuntimeDirectoryMode = "0755";
         };
       };
     }
diff --git a/nixpkgs/nixos/release-combined.nix b/nixpkgs/nixos/release-combined.nix
index ea82adf09ad1..ee3f3d19174e 100644
--- a/nixpkgs/nixos/release-combined.nix
+++ b/nixpkgs/nixos/release-combined.nix
@@ -70,8 +70,8 @@ in rec {
         (onFullSupported "nixos.tests.firefox")
         (onFullSupported "nixos.tests.firewall")
         (onFullSupported "nixos.tests.fontconfig-default-fonts")
-        (onFullSupported "nixos.tests.gnome3")
-        (onFullSupported "nixos.tests.gnome3-xorg")
+        (onFullSupported "nixos.tests.gnome")
+        (onFullSupported "nixos.tests.gnome-xorg")
         (onSystems ["x86_64-linux"] "nixos.tests.hibernate")
         (onFullSupported "nixos.tests.i3wm")
         (onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSimple")
@@ -90,7 +90,7 @@ in rec {
         (onFullSupported "nixos.tests.keymap.azerty")
         (onFullSupported "nixos.tests.keymap.colemak")
         (onFullSupported "nixos.tests.keymap.dvorak")
-        (onFullSupported "nixos.tests.keymap.dvp")
+        (onFullSupported "nixos.tests.keymap.dvorak-programmer")
         (onFullSupported "nixos.tests.keymap.neo")
         (onFullSupported "nixos.tests.keymap.qwertz")
         (onFullSupported "nixos.tests.latestKernel.login")
@@ -147,6 +147,7 @@ in rec {
         (onFullSupported "nixos.tests.sddm.default")
         (onFullSupported "nixos.tests.shadow")
         (onFullSupported "nixos.tests.simple")
+        (onFullSupported "nixos.tests.sway")
         (onFullSupported "nixos.tests.switchTest")
         (onFullSupported "nixos.tests.udisks2")
         (onFullSupported "nixos.tests.xfce")
diff --git a/nixpkgs/nixos/release.nix b/nixpkgs/nixos/release.nix
index 327a259de7fa..2367e79e4ad0 100644
--- a/nixpkgs/nixos/release.nix
+++ b/nixpkgs/nixos/release.nix
@@ -138,7 +138,7 @@ in rec {
   # Build the initial ramdisk so Hydra can keep track of its size over time.
   initialRamdisk = buildFromConfig ({ ... }: { }) (config: config.system.build.initialRamdisk);
 
-  netboot = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeNetboot {
+  netboot = forMatchingSystems supportedSystems (system: makeNetboot {
     module = ./modules/installer/netboot/netboot-minimal.nix;
     inherit system;
   });
@@ -186,11 +186,6 @@ in rec {
     inherit system;
   });
 
-  sd_image_raspberrypi4 = forMatchingSystems [ "aarch64-linux" ] (system: makeSdImage {
-    module = ./modules/installer/sd-card/sd-image-raspberrypi4-installer.nix;
-    inherit system;
-  });
-
   # A bootable VirtualBox virtual appliance as an OVA file (i.e. packaged OVF).
   ova = forMatchingSystems [ "x86_64-linux" ] (system:
 
@@ -224,6 +219,25 @@ in rec {
   );
 
 
+  # Test job for https://github.com/NixOS/nixpkgs/issues/121354 to test
+  # automatic sizing without blocking the channel.
+  amazonImageAutomaticSize = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
+
+    with import ./.. { inherit system; };
+
+    hydraJob ((import lib/eval-config.nix {
+      inherit system;
+      modules =
+        [ configuration
+          versionModule
+          ./maintainers/scripts/ec2/amazon-image.nix
+          ({ ... }: { amazonImage.sizeMB = "auto"; })
+        ];
+    }).config.system.build.amazonImage)
+
+  );
+
+
   # Ensure that all packages used by the minimal NixOS config end up in the channel.
   dummy = forAllSystems (system: pkgs.runCommand "dummy"
     { toplevel = (import lib/eval-config.nix {
@@ -304,10 +318,10 @@ in rec {
         services.xserver.desktopManager.xfce.enable = true;
       });
 
-    gnome3 = makeClosure ({ ... }:
+    gnome = makeClosure ({ ... }:
       { services.xserver.enable = true;
         services.xserver.displayManager.gdm.enable = true;
-        services.xserver.desktopManager.gnome3.enable = true;
+        services.xserver.desktopManager.gnome.enable = true;
       });
 
     pantheon = makeClosure ({ ... }:
diff --git a/nixpkgs/nixos/tests/acme.nix b/nixpkgs/nixos/tests/acme.nix
index 99dd8ec6fd3c..fe8c4af3ea21 100644
--- a/nixpkgs/nixos/tests/acme.nix
+++ b/nixpkgs/nixos/tests/acme.nix
@@ -245,7 +245,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
           )
           for line in subject_data.lower().split("\n"):
               if "subject" in line:
-                  print(f"First subject in fullchain.pem: ", line)
+                  print(f"First subject in fullchain.pem: {line}")
                   assert cert_name.lower() in line
                   return
 
@@ -392,14 +392,11 @@ in import ./make-test-python.nix ({ lib, ... }: {
           # Check the key hash before and after adding an alias. It should not change.
           # The previous test reverts the ed384 change
           webserver.wait_for_unit("acme-finished-a.example.test.target")
-          keyhash_old = webserver.succeed("md5sum /var/lib/acme/a.example.test/key.pem")
           switch_to(webserver, "nginx-aliases")
           webserver.wait_for_unit("acme-finished-a.example.test.target")
           check_issuer(webserver, "a.example.test", "pebble")
           check_connection(client, "a.example.test")
           check_connection(client, "b.example.test")
-          keyhash_new = webserver.succeed("md5sum /var/lib/acme/a.example.test/key.pem")
-          assert keyhash_old == keyhash_new
 
       with subtest("Can request certificates for vhost + aliases (apache-httpd)"):
           try:
diff --git a/nixpkgs/nixos/tests/airsonic.nix b/nixpkgs/nixos/tests/airsonic.nix
new file mode 100644
index 000000000000..59bd84877c61
--- /dev/null
+++ b/nixpkgs/nixos/tests/airsonic.nix
@@ -0,0 +1,32 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "airsonic";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ sumnerevans ];
+  };
+
+  machine =
+    { pkgs, ... }:
+    {
+      services.airsonic = {
+        enable = true;
+        maxMemory = 800;
+      };
+
+      # Airsonic is a Java application, and unfortunately requires a significant
+      # amount of memory.
+      virtualisation.memorySize = 1024;
+    };
+
+  testScript = ''
+    def airsonic_is_up(_) -> bool:
+        return machine.succeed("curl --fail http://localhost:4040/login")
+
+
+    machine.start()
+    machine.wait_for_unit("airsonic.service")
+    machine.wait_for_open_port(4040)
+
+    with machine.nested("Waiting for UI to work"):
+        retry(airsonic_is_up)
+  '';
+})
diff --git a/nixpkgs/nixos/tests/all-tests.nix b/nixpkgs/nixos/tests/all-tests.nix
index 3aefa82301c0..d8fcbde6bc0c 100644
--- a/nixpkgs/nixos/tests/all-tests.nix
+++ b/nixpkgs/nixos/tests/all-tests.nix
@@ -24,8 +24,12 @@ in
   _3proxy = handleTest ./3proxy.nix {};
   acme = handleTest ./acme.nix {};
   agda = handleTest ./agda.nix {};
+  airsonic = handleTest ./airsonic.nix {};
+  amazon-init-shell = handleTest ./amazon-init-shell.nix {};
   ammonite = handleTest ./ammonite.nix {};
+  apparmor = handleTest ./apparmor.nix {};
   atd = handleTest ./atd.nix {};
+  atop = handleTest ./atop.nix {};
   avahi = handleTest ./avahi.nix {};
   avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
   awscli = handleTest ./awscli.nix { };
@@ -43,6 +47,7 @@ in
   boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
   boot-stage1 = handleTest ./boot-stage1.nix {};
   borgbackup = handleTest ./borgbackup.nix {};
+  botamusique = handleTest ./botamusique.nix {};
   buildbot = handleTest ./buildbot.nix {};
   buildkite-agents = handleTest ./buildkite-agents.nix {};
   caddy = handleTest ./caddy.nix {};
@@ -88,6 +93,7 @@ in
   custom-ca = handleTest ./custom-ca.nix {};
   croc = handleTest ./croc.nix {};
   deluge = handleTest ./deluge.nix {};
+  dendrite = handleTest ./dendrite.nix {};
   dhparams = handleTest ./dhparams.nix {};
   discourse = handleTest ./discourse.nix {};
   dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
@@ -130,14 +136,15 @@ in
   fsck = handleTest ./fsck.nix {};
   ft2-clone = handleTest ./ft2-clone.nix {};
   gerrit = handleTest ./gerrit.nix {};
+  ghostunnel = handleTest ./ghostunnel.nix {};
   gitdaemon = handleTest ./gitdaemon.nix {};
   gitea = handleTest ./gitea.nix {};
   gitlab = handleTest ./gitlab.nix {};
   gitolite = handleTest ./gitolite.nix {};
   gitolite-fcgiwrap = handleTest ./gitolite-fcgiwrap.nix {};
   glusterfs = handleTest ./glusterfs.nix {};
-  gnome3 = handleTest ./gnome3.nix {};
-  gnome3-xorg = handleTest ./gnome3-xorg.nix {};
+  gnome = handleTest ./gnome.nix {};
+  gnome-xorg = handleTest ./gnome-xorg.nix {};
   go-neb = handleTest ./go-neb.nix {};
   gobgpd = handleTest ./gobgpd.nix {};
   gocd-agent = handleTest ./gocd-agent.nix {};
@@ -212,6 +219,7 @@ in
   latestKernel.login = handleTest ./login.nix { latestKernel = true; };
   leaps = handleTest ./leaps.nix {};
   lidarr = handleTest ./lidarr.nix {};
+  libreswan = handleTest ./libreswan.nix {};
   lightdm = handleTest ./lightdm.nix {};
   limesurvey = handleTest ./limesurvey.nix {};
   locate = handleTest ./locate.nix {};
@@ -297,6 +305,7 @@ in
   openarena = handleTest ./openarena.nix {};
   openldap = handleTest ./openldap.nix {};
   opensmtpd = handleTest ./opensmtpd.nix {};
+  opensmtpd-rspamd = handleTest ./opensmtpd-rspamd.nix {};
   openssh = handleTest ./openssh.nix {};
   openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
   openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
@@ -316,16 +325,18 @@ in
   pgjwt = handleTest ./pgjwt.nix {};
   pgmanage = handleTest ./pgmanage.nix {};
   php = handleTest ./php {};
-  php73 = handleTest ./php { php = pkgs.php73; };
   php74 = handleTest ./php { php = pkgs.php74; };
   php80 = handleTest ./php { php = pkgs.php80; };
   pinnwand = handleTest ./pinnwand.nix {};
   plasma5 = handleTest ./plasma5.nix {};
+  plausible = handleTest ./plausible.nix {};
   pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
   plikd = handleTest ./plikd.nix {};
   plotinus = handleTest ./plotinus.nix {};
   podgrab = handleTest ./podgrab.nix {};
   podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
+  podman-dnsname = handleTestOn ["x86_64-linux"] ./podman-dnsname.nix {};
+  podman-tls-ghostunnel = handleTestOn ["x86_64-linux"] ./podman-tls-ghostunnel.nix {};
   pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
   postfix = handleTest ./postfix.nix {};
   postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
@@ -376,6 +387,7 @@ in
   snapcast = handleTest ./snapcast.nix {};
   snapper = handleTest ./snapper.nix {};
   sogo = handleTest ./sogo.nix {};
+  solanum = handleTest ./solanum.nix {};
   solr = handleTest ./solr.nix {};
   sonarr = handleTest ./sonarr.nix {};
   spacecookie = handleTest ./spacecookie.nix {};
@@ -385,6 +397,7 @@ in
   sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
   strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
   sudo = handleTest ./sudo.nix {};
+  sway = handleTest ./sway.nix {};
   switchTest = handleTest ./switch-test.nix {};
   sympa = handleTest ./sympa.nix {};
   syncthing = handleTest ./syncthing.nix {};
@@ -413,6 +426,7 @@ in
   # traefik test relies on docker-containers
   trac = handleTest ./trac.nix {};
   traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {};
+  trafficserver = handleTest ./trafficserver.nix {};
   transmission = handleTest ./transmission.nix {};
   trezord = handleTest ./trezord.nix {};
   trickster = handleTest ./trickster.nix {};
diff --git a/nixpkgs/nixos/tests/amazon-init-shell.nix b/nixpkgs/nixos/tests/amazon-init-shell.nix
new file mode 100644
index 000000000000..f9268b2f3a00
--- /dev/null
+++ b/nixpkgs/nixos/tests/amazon-init-shell.nix
@@ -0,0 +1,40 @@
+# This test verifies that the amazon-init service can treat the `user-data` ec2
+# metadata file as a shell script. If amazon-init detects that `user-data` is a
+# script (based on the presence of the shebang #! line) it executes it and
+# exits.
+# Note that other tests verify that amazon-init can treat user-data as a nixos
+# configuration expression.
+
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+makeTest {
+  name = "amazon-init";
+  meta = with maintainers; {
+    maintainers = [ urbas ];
+  };
+  machine = { ... }:
+  {
+    imports = [ ../modules/profiles/headless.nix ../modules/virtualisation/amazon-init.nix ];
+    services.openssh.enable = true;
+    networking.hostName = "";
+    environment.etc."ec2-metadata/user-data" = {
+      text = ''
+        #!/usr/bin/bash
+
+        echo successful > /tmp/evidence
+      '';
+    };
+  };
+  testScript = ''
+    # To wait until amazon-init terminates its run
+    unnamed.wait_for_unit("amazon-init.service")
+
+    unnamed.succeed("grep -q successful /tmp/evidence")
+  '';
+}
diff --git a/nixpkgs/nixos/tests/apparmor.nix b/nixpkgs/nixos/tests/apparmor.nix
new file mode 100644
index 000000000000..c6daa8e67de3
--- /dev/null
+++ b/nixpkgs/nixos/tests/apparmor.nix
@@ -0,0 +1,82 @@
+import ./make-test-python.nix ({ pkgs, ... } : {
+  name = "apparmor";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ julm ];
+  };
+
+  machine =
+    { lib, pkgs, config, ... }:
+    with lib;
+    {
+      security.apparmor.enable = mkDefault true;
+    };
+
+  testScript =
+    ''
+      machine.wait_for_unit("multi-user.target")
+
+      with subtest("AppArmor profiles are loaded"):
+          machine.succeed("systemctl status apparmor.service")
+
+      # AppArmor securityfs
+      with subtest("AppArmor securityfs is mounted"):
+          machine.succeed("mountpoint -q /sys/kernel/security")
+          machine.succeed("cat /sys/kernel/security/apparmor/profiles")
+
+      # Test apparmorRulesFromClosure by:
+      # 1. Prepending a string of the relevant packages' name and version on each line.
+      # 2. Sorting according to those strings.
+      # 3. Removing those prepended strings.
+      # 4. Using `diff` against the expected output.
+      with subtest("apparmorRulesFromClosure"):
+          machine.succeed(
+              "${pkgs.diffutils}/bin/diff ${pkgs.writeText "expected.rules" ''
+                  mr ${pkgs.bash}/lib/**.so*,
+                  r ${pkgs.bash},
+                  r ${pkgs.bash}/etc/**,
+                  r ${pkgs.bash}/lib/**,
+                  r ${pkgs.bash}/share/**,
+                  x ${pkgs.bash}/foo/**,
+                  mr ${pkgs.glibc}/lib/**.so*,
+                  r ${pkgs.glibc},
+                  r ${pkgs.glibc}/etc/**,
+                  r ${pkgs.glibc}/lib/**,
+                  r ${pkgs.glibc}/share/**,
+                  x ${pkgs.glibc}/foo/**,
+                  mr ${pkgs.libcap}/lib/**.so*,
+                  r ${pkgs.libcap},
+                  r ${pkgs.libcap}/etc/**,
+                  r ${pkgs.libcap}/lib/**,
+                  r ${pkgs.libcap}/share/**,
+                  x ${pkgs.libcap}/foo/**,
+                  mr ${pkgs.libcap.lib}/lib/**.so*,
+                  r ${pkgs.libcap.lib},
+                  r ${pkgs.libcap.lib}/etc/**,
+                  r ${pkgs.libcap.lib}/lib/**,
+                  r ${pkgs.libcap.lib}/share/**,
+                  x ${pkgs.libcap.lib}/foo/**,
+                  mr ${pkgs.libidn2.out}/lib/**.so*,
+                  r ${pkgs.libidn2.out},
+                  r ${pkgs.libidn2.out}/etc/**,
+                  r ${pkgs.libidn2.out}/lib/**,
+                  r ${pkgs.libidn2.out}/share/**,
+                  x ${pkgs.libidn2.out}/foo/**,
+                  mr ${pkgs.libunistring}/lib/**.so*,
+                  r ${pkgs.libunistring},
+                  r ${pkgs.libunistring}/etc/**,
+                  r ${pkgs.libunistring}/lib/**,
+                  r ${pkgs.libunistring}/share/**,
+                  x ${pkgs.libunistring}/foo/**,
+              ''} ${pkgs.runCommand "actual.rules" { preferLocalBuild = true; } ''
+                  ${pkgs.gnused}/bin/sed -e 's:^[^ ]* ${builtins.storeDir}/[^,/-]*-\([^/,]*\):\1 \0:' ${
+                      pkgs.apparmorRulesFromClosure {
+                        name = "ping";
+                        additionalRules = ["x $path/foo/**"];
+                      } [ pkgs.libcap ]
+                  } |
+                  ${pkgs.coreutils}/bin/sort -n -k1 |
+                  ${pkgs.gnused}/bin/sed -e 's:^[^ ]* ::' >$out
+              ''}"
+          )
+    '';
+})
diff --git a/nixpkgs/nixos/tests/atop.nix b/nixpkgs/nixos/tests/atop.nix
new file mode 100644
index 000000000000..1f8b005041f0
--- /dev/null
+++ b/nixpkgs/nixos/tests/atop.nix
@@ -0,0 +1,236 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+let assertions = rec {
+  path = program: path: ''
+    with subtest("The path of ${program} should be ${path}"):
+        p = machine.succeed("type -p \"${program}\" | head -c -1")
+        assert p == "${path}", f"${program} is {p}, expected ${path}"
+  '';
+  unit = name: state: ''
+    with subtest("Unit ${name} should be ${state}"):
+        if "${state}" == "active":
+            machine.wait_for_unit("${name}")
+        else:
+            machine.require_unit_state("${name}", "${state}")
+  '';
+  version = ''
+    import re
+
+    with subtest("binary should report the correct version"):
+        pkgver = "${pkgs.atop.version}"
+        ver = re.sub(r'(?s)^Version: (\d\.\d\.\d).*', r'\1', machine.succeed("atop -V"))
+        assert ver == pkgver, f"Version is `{ver}`, expected `{pkgver}`"
+  '';
+  atoprc = contents:
+    if builtins.stringLength contents > 0 then ''
+      with subtest("/etc/atoprc should have the correct contents"):
+          f = machine.succeed("cat /etc/atoprc")
+          assert f == "${contents}", f"/etc/atoprc contents: '{f}', expected '${contents}'"
+    '' else ''
+      with subtest("/etc/atoprc should not be present"):
+          machine.succeed("test ! -e /etc/atoprc")
+    '';
+  wrapper = present:
+    if present then path "atop" "/run/wrappers/bin/atop" + ''
+      with subtest("Wrapper should be setuid root"):
+          stat = machine.succeed("stat --printf '%a %u' /run/wrappers/bin/atop")
+          assert stat == "4511 0", f"Wrapper stat is {stat}, expected '4511 0'"
+    ''
+    else path "atop" "/run/current-system/sw/bin/atop";
+  atopService = present:
+    if present then
+      unit "atop.service" "active"
+      + ''
+        with subtest("atop.service should write some data to /var/log/atop"):
+
+            def has_data_files(last: bool) -> bool:
+                files = int(machine.succeed("ls -1 /var/log/atop | wc -l"))
+                if files == 0:
+                    machine.log("Did not find at least one 1 data file")
+                    if not last:
+                        machine.log("Will retry...")
+                    return False
+                return True
+
+            with machine.nested("Waiting for data files"):
+                retry(has_data_files)
+      '' else unit "atop.service" "inactive";
+  atopRotateTimer = present:
+    unit "atop-rotate.timer" (if present then "active" else "inactive");
+  atopacctService = present:
+    if present then
+      unit "atopacct.service" "active"
+      + ''
+        with subtest("atopacct.service should enable process accounting"):
+            machine.wait_until_succeeds("test -f /run/pacct_source")
+
+        with subtest("atopacct.service should write data to /run/pacct_shadow.d"):
+
+            def has_data_files(last: bool) -> bool:
+                files = int(machine.succeed("ls -1 /run/pacct_shadow.d | wc -l"))
+                if files == 0:
+                    machine.log("Did not find at least one 1 data file")
+                    if not last:
+                        machine.log("Will retry...")
+                    return False
+                return True
+
+            with machine.nested("Waiting for data files"):
+                retry(has_data_files)
+      '' else unit "atopacct.service" "inactive";
+  netatop = present:
+    if present then
+      unit "netatop.service" "active"
+      + ''
+        with subtest("The netatop kernel module should be loaded"):
+            out = machine.succeed("modprobe -n -v netatop")
+            assert out == "", f"Module should be loaded already, but modprobe would have done {out}."
+      '' else ''
+      with subtest("The netatop kernel module should be absent"):
+          machine.fail("modprobe -n -v netatop")
+    '';
+  atopgpu = present:
+    if present then
+      (unit "atopgpu.service" "active") + (path "atopgpud" "/run/current-system/sw/bin/atopgpud")
+    else (unit "atopgpu.service" "inactive") + ''
+      with subtest("atopgpud should not be present"):
+          machine.fail("type -p atopgpud")
+    '';
+};
+in
+{
+  name = "atop";
+
+  justThePackage = makeTest {
+    name = "atop-justThePackage";
+    machine = {
+      environment.systemPackages = [ pkgs.atop ];
+    };
+    testScript = with assertions; builtins.concatStringsSep "\n" [
+      version
+      (atoprc "")
+      (wrapper false)
+      (atopService false)
+      (atopRotateTimer false)
+      (atopacctService false)
+      (netatop false)
+      (atopgpu false)
+    ];
+  };
+  defaults = makeTest {
+    name = "atop-defaults";
+    machine = {
+      programs.atop = {
+        enable = true;
+      };
+    };
+    testScript = with assertions; builtins.concatStringsSep "\n" [
+      version
+      (atoprc "")
+      (wrapper false)
+      (atopService true)
+      (atopRotateTimer true)
+      (atopacctService true)
+      (netatop false)
+      (atopgpu false)
+    ];
+  };
+  minimal = makeTest {
+    name = "atop-minimal";
+    machine = {
+      programs.atop = {
+        enable = true;
+        atopService.enable = false;
+        atopRotateTimer.enable = false;
+        atopacctService.enable = false;
+      };
+    };
+    testScript = with assertions; builtins.concatStringsSep "\n" [
+      version
+      (atoprc "")
+      (wrapper false)
+      (atopService false)
+      (atopRotateTimer false)
+      (atopacctService false)
+      (netatop false)
+      (atopgpu false)
+    ];
+  };
+  netatop = makeTest {
+    name = "atop-netatop";
+    machine = {
+      programs.atop = {
+        enable = true;
+        netatop.enable = true;
+      };
+    };
+    testScript = with assertions; builtins.concatStringsSep "\n" [
+      version
+      (atoprc "")
+      (wrapper false)
+      (atopService true)
+      (atopRotateTimer true)
+      (atopacctService true)
+      (netatop true)
+      (atopgpu false)
+    ];
+  };
+  atopgpu = makeTest {
+    name = "atop-atopgpu";
+    machine = {
+      nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
+        "cudatoolkit"
+      ];
+
+      programs.atop = {
+        enable = true;
+        atopgpu.enable = true;
+      };
+    };
+    testScript = with assertions; builtins.concatStringsSep "\n" [
+      version
+      (atoprc "")
+      (wrapper false)
+      (atopService true)
+      (atopRotateTimer true)
+      (atopacctService true)
+      (netatop false)
+      (atopgpu true)
+    ];
+  };
+  everything = makeTest {
+    name = "atop-everthing";
+    machine = {
+      nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) [
+        "cudatoolkit"
+      ];
+
+      programs.atop = {
+        enable = true;
+        settings = {
+          flags = "faf1";
+          interval = 2;
+        };
+        setuidWrapper.enable = true;
+        netatop.enable = true;
+        atopgpu.enable = true;
+      };
+    };
+    testScript = with assertions; builtins.concatStringsSep "\n" [
+      version
+      (atoprc "flags faf1\\ninterval 2\\n")
+      (wrapper true)
+      (atopService true)
+      (atopRotateTimer true)
+      (atopacctService true)
+      (netatop true)
+      (atopgpu true)
+    ];
+  };
+}
diff --git a/nixpkgs/nixos/tests/bitwarden.nix b/nixpkgs/nixos/tests/bitwarden.nix
index 3813a1f70f96..f64cf171f01f 100644
--- a/nixpkgs/nixos/tests/bitwarden.nix
+++ b/nixpkgs/nixos/tests/bitwarden.nix
@@ -42,7 +42,7 @@ let
                 GRANT ALL ON `bitwarden`.* TO 'bitwardenuser'@'localhost';
                 FLUSH PRIVILEGES;
               '';
-              package = pkgs.mysql;
+              package = pkgs.mariadb;
             };
 
             services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
diff --git a/nixpkgs/nixos/tests/botamusique.nix b/nixpkgs/nixos/tests/botamusique.nix
new file mode 100644
index 000000000000..ccb105dc142f
--- /dev/null
+++ b/nixpkgs/nixos/tests/botamusique.nix
@@ -0,0 +1,47 @@
+import ./make-test-python.nix ({ pkgs, lib, ...} :
+
+{
+  name = "botamusique";
+  meta.maintainers = with lib.maintainers; [ hexa ];
+
+  nodes = {
+    machine = { config, ... }: {
+      services.murmur = {
+        enable = true;
+        registerName = "NixOS tests";
+      };
+
+      services.botamusique = {
+        enable = true;
+        settings = {
+          server = {
+            channel = "NixOS tests";
+          };
+          bot = {
+            version = false;
+            auto_check_update = false;
+          };
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("murmur.service")
+    machine.wait_for_unit("botamusique.service")
+
+    machine.sleep(10)
+
+    machine.wait_until_succeeds(
+        "journalctl -u murmur.service -e | grep -q '<1:botamusique(-1)> Authenticated'"
+    )
+
+    with subtest("Check systemd hardening"):
+        output = machine.execute("systemctl show botamusique.service")[1]
+        machine.log(output)
+        output = machine.execute("systemd-analyze security botamusique.service")[1]
+        machine.log(output)
+  '';
+})
diff --git a/nixpkgs/nixos/tests/brscan5.nix b/nixpkgs/nixos/tests/brscan5.nix
new file mode 100644
index 000000000000..715191b383cb
--- /dev/null
+++ b/nixpkgs/nixos/tests/brscan5.nix
@@ -0,0 +1,42 @@
+# integration tests for brscan5 sane driver
+#
+
+import ./make-test-python.nix ({ pkgs, ...} : {
+  name = "brscan5";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ mattchrist ];
+  };
+
+  machine = { pkgs, ... }:
+    {
+      nixpkgs.config.allowUnfree = true;
+      hardware.sane = {
+        enable = true;
+        brscan5 = {
+          enable = true;
+          netDevices = {
+            "a" = { model="ADS-1200"; nodename="BRW0080927AFBCE"; };
+            "b" = { model="ADS-1200"; ip="192.168.1.2"; };
+          };
+        };
+      };
+    };
+
+  testScript = ''
+    # sane loads libsane-brother5.so.1 successfully, and scanimage doesn't die
+    strace = machine.succeed('strace scanimage -L 2>&1').split("\n")
+    regexp = 'openat\(.*libsane-brother5.so.1", O_RDONLY|O_CLOEXEC\) = \d\d*$'
+    assert len([x for x in strace if re.match(regexp,x)]) > 0
+
+    # module creates a config
+    cfg = machine.succeed('cat /etc/opt/brother/scanner/brscan5/brsanenetdevice.cfg')
+    assert 'DEVICE=a , "ADS-1200" , 0x4f9:0x459 , NODENAME=BRW0080927AFBCE' in cfg
+    assert 'DEVICE=b , "ADS-1200" , 0x4f9:0x459 , IP-ADDRESS=192.168.1.2' in cfg
+
+    # scanimage lists the two network scanners
+    scanimage = machine.succeed("scanimage -L")
+    print(scanimage)
+    assert """device `brother5:net1;dev0' is a Brother b ADS-1200""" in scanimage
+    assert """device `brother5:net1;dev1' is a Brother a ADS-1200""" in scanimage
+  '';
+})
diff --git a/nixpkgs/nixos/tests/buildbot.nix b/nixpkgs/nixos/tests/buildbot.nix
index 11f9fbef635e..977c728835f0 100644
--- a/nixpkgs/nixos/tests/buildbot.nix
+++ b/nixpkgs/nixos/tests/buildbot.nix
@@ -109,5 +109,5 @@ import ./make-test-python.nix {
         bbworker.fail("nc -z bbmaster 8011")
   '';
 
-  meta.maintainers = with pkgs.lib.maintainers; [ nand0p ];
+  meta.maintainers = with pkgs.lib.maintainers; [ ];
 } {}
diff --git a/nixpkgs/nixos/tests/cage.nix b/nixpkgs/nixos/tests/cage.nix
index 1ae07b6fd2ff..e6bef374d303 100644
--- a/nixpkgs/nixos/tests/cage.nix
+++ b/nixpkgs/nixos/tests/cage.nix
@@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
 {
   name = "cage";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ matthewbauer flokli ];
+    maintainers = [ matthewbauer ];
   };
 
   machine = { ... }:
@@ -13,19 +13,13 @@ import ./make-test-python.nix ({ pkgs, ...} :
     services.cage = {
       enable = true;
       user = "alice";
-      program = "${pkgs.xterm}/bin/xterm -cm -pc"; # disable color and bold to make OCR easier
+      # Disable color and bold and use a larger font to make OCR easier:
+      program = "${pkgs.xterm}/bin/xterm -cm -pc -fa Monospace -fs 24";
     };
 
-    # this needs a fairly recent kernel, otherwise:
-    #   [backend/drm/util.c:215] Unable to add DRM framebuffer: No such file or directory
-    #   [backend/drm/legacy.c:15] Virtual-1: Failed to set CRTC: No such file or directory
-    #   [backend/drm/util.c:215] Unable to add DRM framebuffer: No such file or directory
-    #   [backend/drm/legacy.c:15] Virtual-1: Failed to set CRTC: No such file or directory
-    #   [backend/drm/drm.c:618] Failed to initialize renderer on connector 'Virtual-1': initial page-flip failed
-    #   [backend/drm/drm.c:701] Failed to initialize renderer for plane
-    boot.kernelPackages = pkgs.linuxPackages_latest;
-
     virtualisation.memorySize = 1024;
+    # Need to switch to a different GPU driver than the default one (-vga std) so that Cage can launch:
+    virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
   };
 
   enableOCR = true;
diff --git a/nixpkgs/nixos/tests/cagebreak.nix b/nixpkgs/nixos/tests/cagebreak.nix
index 87f43cc3c321..242e59f5d7ab 100644
--- a/nixpkgs/nixos/tests/cagebreak.nix
+++ b/nixpkgs/nixos/tests/cagebreak.nix
@@ -17,56 +17,27 @@ in
   let
     alice = config.users.users.alice;
   in {
+    # Automatically login on tty1 as a normal user:
     imports = [ ./common/user-account.nix ];
+    services.getty.autologinUser = "alice";
+    programs.bash.loginShellInit = ''
+      if [ "$(tty)" = "/dev/tty1" ]; then
+        set -e
 
-    environment.systemPackages = [ pkgs.cagebreak pkgs.wallutils ];
-    services.xserver = {
-      enable = true;
-      displayManager.autoLogin = {
-        enable = true;
-        user = alice.name;
-      };
-    };
-    services.xserver.windowManager.session = lib.singleton {
-      manage = "desktop";
-      name = "cagebreak";
-      start = ''
-        export XDG_RUNTIME_DIR="/run/user/${toString alice.uid}"
-        ${pkgs.cagebreak}/bin/cagebreak &
-        waitPID=$!
-      '';
-    };
+        mkdir -p ~/.config/cagebreak
+        cp -f ${cagebreakConfigfile} ~/.config/cagebreak/config
 
-    systemd.services.setupCagebreakConfig = {
-      wantedBy = [ "multi-user.target" ];
-      before = [ "multi-user.target" ];
-      environment = {
-        HOME = alice.home;
-      };
-      unitConfig = {
-        type = "oneshot";
-        RemainAfterExit = true;
-        user = alice.name;
-      };
-      script = ''
-        cd $HOME
-        CONFFILE=$HOME/.config/cagebreak/config
-        mkdir -p $(dirname $CONFFILE)
-        cp ${cagebreakConfigfile} $CONFFILE
-      '';
-    };
+        cagebreak
+      fi
+    '';
 
-    # Copied from cage:
-    # this needs a fairly recent kernel, otherwise:
-    #   [backend/drm/util.c:215] Unable to add DRM framebuffer: No such file or directory
-    #   [backend/drm/legacy.c:15] Virtual-1: Failed to set CRTC: No such file or directory
-    #   [backend/drm/util.c:215] Unable to add DRM framebuffer: No such file or directory
-    #   [backend/drm/legacy.c:15] Virtual-1: Failed to set CRTC: No such file or directory
-    #   [backend/drm/drm.c:618] Failed to initialize renderer on connector 'Virtual-1': initial page-flip failed
-    #   [backend/drm/drm.c:701] Failed to initialize renderer for plane
-    boot.kernelPackages = pkgs.linuxPackages_latest;
+    hardware.opengl.enable = true;
+    programs.xwayland.enable = true;
+    environment.systemPackages = [ pkgs.cagebreak pkgs.wayland-utils ];
 
     virtualisation.memorySize = 1024;
+    # Need to switch to a different GPU driver than the default one (-vga std) so that Cagebreak can launch:
+    virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
   };
 
   enableOCR = true;
@@ -80,14 +51,15 @@ in
     machine.wait_for_file("${XDG_RUNTIME_DIR}/wayland-0")
 
     with subtest("ensure wayland works with wayinfo from wallutils"):
-        machine.succeed("env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} wayinfo")
+        print(machine.succeed("env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} wayland-info"))
 
-    with subtest("ensure xwayland works with xterm"):
-        machine.send_key("ctrl-t")
-        machine.send_key("t")
-        machine.wait_until_succeeds("pgrep xterm")
-        machine.wait_for_text("${user.name}@machine")
-        machine.screenshot("screen")
-        machine.send_key("ctrl-d")
+    # TODO: Fix the XWayland test (log the cagebreak output to debug):
+    # with subtest("ensure xwayland works with xterm"):
+    #     machine.send_key("ctrl-t")
+    #     machine.send_key("t")
+    #     machine.wait_until_succeeds("pgrep xterm")
+    #     machine.wait_for_text("${user.name}@machine")
+    #     machine.screenshot("screen")
+    #     machine.send_key("ctrl-d")
   '';
 })
diff --git a/nixpkgs/nixos/tests/calibre-web.nix b/nixpkgs/nixos/tests/calibre-web.nix
index 4f73b3311124..0af997317fcd 100644
--- a/nixpkgs/nixos/tests/calibre-web.nix
+++ b/nixpkgs/nixos/tests/calibre-web.nix
@@ -36,7 +36,7 @@ import ./make-test-python.nix (
           default.wait_for_unit("calibre-web.service")
           default.wait_for_open_port(${toString defaultPort})
           default.succeed(
-              "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep -q 'Basic Configuration'"
+              "curl --fail 'http://localhost:${toString defaultPort}/basicconfig' | grep 'Basic Configuration'"
           )
 
           customized.succeed(
@@ -46,7 +46,7 @@ import ./make-test-python.nix (
           customized.wait_for_unit("calibre-web.service")
           customized.wait_for_open_port(${toString port})
           customized.succeed(
-              "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep -q test-book"
+              "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep test-book"
           )
         '';
       }
diff --git a/nixpkgs/nixos/tests/ceph-multi-node.nix b/nixpkgs/nixos/tests/ceph-multi-node.nix
index 4e6d644f96c8..33736e27b984 100644
--- a/nixpkgs/nixos/tests/ceph-multi-node.nix
+++ b/nixpkgs/nixos/tests/ceph-multi-node.nix
@@ -37,7 +37,7 @@ let
 
   generateHost = { pkgs, cephConfig, networkConfig, ... }: {
     virtualisation = {
-      memorySize = 512;
+      memorySize = 1024;
       emptyDiskImages = [ 20480 ];
       vlans = [ 1 ];
     };
@@ -120,6 +120,7 @@ let
     )
     monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
     monA.succeed("ceph mon enable-msgr2")
+    monA.succeed("ceph config set mon auth_allow_insecure_global_id_reclaim false")
 
     # Can't check ceph status until a mon is up
     monA.succeed("ceph -s | grep 'mon: 1 daemons'")
diff --git a/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix b/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
index cc873e8aee57..f706d4d56fcf 100644
--- a/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
+++ b/nixpkgs/nixos/tests/ceph-single-node-bluestore.nix
@@ -34,7 +34,7 @@ let
 
   generateHost = { pkgs, cephConfig, networkConfig, ... }: {
     virtualisation = {
-      memorySize = 512;
+      memorySize = 1024;
       emptyDiskImages = [ 20480 20480 20480 ];
       vlans = [ 1 ];
     };
@@ -95,6 +95,7 @@ let
     )
     monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
     monA.succeed("ceph mon enable-msgr2")
+    monA.succeed("ceph config set mon auth_allow_insecure_global_id_reclaim false")
 
     # Can't check ceph status until a mon is up
     monA.succeed("ceph -s | grep 'mon: 1 daemons'")
diff --git a/nixpkgs/nixos/tests/ceph-single-node.nix b/nixpkgs/nixos/tests/ceph-single-node.nix
index 19919371a3ca..d1d56ea6708c 100644
--- a/nixpkgs/nixos/tests/ceph-single-node.nix
+++ b/nixpkgs/nixos/tests/ceph-single-node.nix
@@ -34,7 +34,7 @@ let
 
   generateHost = { pkgs, cephConfig, networkConfig, ... }: {
     virtualisation = {
-      memorySize = 512;
+      memorySize = 1024;
       emptyDiskImages = [ 20480 20480 20480 ];
       vlans = [ 1 ];
     };
@@ -95,6 +95,7 @@ let
     )
     monA.wait_for_unit("ceph-mon-${cfg.monA.name}")
     monA.succeed("ceph mon enable-msgr2")
+    monA.succeed("ceph config set mon auth_allow_insecure_global_id_reclaim false")
 
     # Can't check ceph status until a mon is up
     monA.succeed("ceph -s | grep 'mon: 1 daemons'")
diff --git a/nixpkgs/nixos/tests/chromium.nix b/nixpkgs/nixos/tests/chromium.nix
index 8429d932ae69..60ecf986d6ee 100644
--- a/nixpkgs/nixos/tests/chromium.nix
+++ b/nixpkgs/nixos/tests/chromium.nix
@@ -54,7 +54,8 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
     in "${pkgs.xdotool}/bin/xdotool ${xdoScript}";
   in ''
     import shlex
-    from contextlib import contextmanager, _GeneratorContextManager
+    import re
+    from contextlib import contextmanager
 
 
     # Run as user alice
diff --git a/nixpkgs/nixos/tests/clickhouse.nix b/nixpkgs/nixos/tests/clickhouse.nix
index 98d8b4b46525..017f2ee35dab 100644
--- a/nixpkgs/nixos/tests/clickhouse.nix
+++ b/nixpkgs/nixos/tests/clickhouse.nix
@@ -4,6 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
   machine = {
     services.clickhouse.enable = true;
+    virtualisation.memorySize = 4096;
   };
 
   testScript =
diff --git a/nixpkgs/nixos/tests/containers-custom-pkgs.nix b/nixpkgs/nixos/tests/containers-custom-pkgs.nix
index c050e49bc29d..1627a2c70c3c 100644
--- a/nixpkgs/nixos/tests/containers-custom-pkgs.nix
+++ b/nixpkgs/nixos/tests/containers-custom-pkgs.nix
@@ -30,5 +30,5 @@ in {
   };
 
   # This test only consists of evaluating the test machine
-  testScript = "";
+  testScript = "pass";
 })
diff --git a/nixpkgs/nixos/tests/containers-imperative.nix b/nixpkgs/nixos/tests/containers-imperative.nix
index 0ff0d3f95452..1dcccfc306a3 100644
--- a/nixpkgs/nixos/tests/containers-imperative.nix
+++ b/nixpkgs/nixos/tests/containers-imperative.nix
@@ -111,6 +111,26 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           machine.succeed(f"nixos-container stop {id1}")
           machine.succeed(f"nixos-container start {id1}")
 
+      # clear serial backlog for next tests
+      machine.succeed("logger eat console backlog 3ea46eb2-7f82-4f70-b810-3f00e3dd4c4d")
+      machine.wait_for_console_text(
+          "eat console backlog 3ea46eb2-7f82-4f70-b810-3f00e3dd4c4d"
+      )
+
+      with subtest("Stop a container early"):
+          machine.succeed(f"nixos-container stop {id1}")
+          machine.succeed(f"nixos-container start {id1} &")
+          machine.wait_for_console_text("Stage 2")
+          machine.succeed(f"nixos-container stop {id1}")
+          machine.wait_for_console_text(f"Container {id1} exited successfully")
+          machine.succeed(f"nixos-container start {id1}")
+
+      with subtest("Stop a container without machined (regression test for #109695)"):
+          machine.systemctl("stop systemd-machined")
+          machine.succeed(f"nixos-container stop {id1}")
+          machine.wait_for_console_text(f"Container {id1} has been shut down")
+          machine.succeed(f"nixos-container start {id1}")
+
       with subtest("tmpfiles are present"):
           machine.log("creating container tmpfiles")
           machine.succeed(
@@ -142,6 +162,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           machine.fail(
               "nixos-container create b0rk --config-file ${brokenCfg}"
           )
-          machine.succeed(f"test ! -e /var/lib/containers/b0rk")
+          machine.succeed("test ! -e /var/lib/containers/b0rk")
     '';
 })
diff --git a/nixpkgs/nixos/tests/couchdb.nix b/nixpkgs/nixos/tests/couchdb.nix
index d038ee7d890d..049532481b15 100644
--- a/nixpkgs/nixos/tests/couchdb.nix
+++ b/nixpkgs/nixos/tests/couchdb.nix
@@ -24,8 +24,6 @@ with lib;
   };
 
   nodes = {
-    couchdb1 = makeNode pkgs.couchdb testuser testpass;
-    couchdb2 = makeNode pkgs.couchdb2 testuser testpass;
     couchdb3 = makeNode pkgs.couchdb3 testuser testpass;
   };
 
@@ -41,42 +39,6 @@ with lib;
   in ''
     start_all()
 
-    couchdb1.wait_for_unit("couchdb.service")
-    couchdb1.wait_until_succeeds(
-        "${curlJqCheck "" "GET" "" ".couchdb" "Welcome"}"
-    )
-    couchdb1.wait_until_succeeds(
-        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "2"}"
-    )
-    couchdb1.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
-    couchdb1.succeed(
-        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "3"}"
-    )
-    couchdb1.succeed(
-        "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
-    )
-    couchdb1.succeed(
-        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "2"}"
-    )
-
-    couchdb2.wait_for_unit("couchdb.service")
-    couchdb2.wait_until_succeeds(
-        "${curlJqCheck "" "GET" "" ".couchdb" "Welcome"}"
-    )
-    couchdb2.wait_until_succeeds(
-        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "0"}"
-    )
-    couchdb2.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
-    couchdb2.succeed(
-        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "1"}"
-    )
-    couchdb2.succeed(
-        "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
-    )
-    couchdb2.succeed(
-        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "0"}"
-    )
-
     couchdb3.wait_for_unit("couchdb.service")
     couchdb3.wait_until_succeeds(
         "${curlJqCheck testlogin "GET" "" ".couchdb" "Welcome"}"
diff --git a/nixpkgs/nixos/tests/custom-ca.nix b/nixpkgs/nixos/tests/custom-ca.nix
index 67f7b3ff1f16..26f29a3e68fe 100644
--- a/nixpkgs/nixos/tests/custom-ca.nix
+++ b/nixpkgs/nixos/tests/custom-ca.nix
@@ -92,20 +92,34 @@ in
         { onlySSL = true;
           sslCertificate = "${example-good-cert}/server.crt";
           sslCertificateKey = "${example-good-cert}/server.key";
-          locations."/".extraConfig = "return 200 'It works!';";
+          locations."/".extraConfig = ''
+            add_header Content-Type text/plain;
+            return 200 'It works!';
+          '';
         };
       services.nginx.virtualHosts."bad.example.com" =
         { onlySSL = true;
           sslCertificate = "${example-bad-cert}/server.crt";
           sslCertificateKey = "${example-bad-cert}/server.key";
-          locations."/".extraConfig = "return 200 'It does not work!';";
+          locations."/".extraConfig = ''
+            add_header Content-Type text/plain;
+            return 200 'It does not work!';
+          '';
         };
 
-      environment.systemPackages = with pkgs;
-        [ xdotool firefox chromium falkon midori ];
+      environment.systemPackages = with pkgs; [
+        xdotool
+        # Firefox was disabled here, because we needed to disable p11-kit support in nss,
+        # which is why it will not use the system certificate store for the time being.
+        # firefox
+        chromium
+        falkon
+        midori
+      ];
     };
 
   testScript = ''
+    from typing import Tuple
     def execute_as(user: str, cmd: str) -> Tuple[int, str]:
         """
         Run a shell command as a specific user.
@@ -138,7 +152,14 @@ in
     with subtest("Unknown CA is untrusted in curl"):
         machine.fail("curl -fv https://bad.example.com")
 
-    browsers = ["firefox", "chromium", "falkon", "midori"]
+    browsers = [
+      # Firefox was disabled here, because we needed to disable p11-kit support in nss,
+      # which is why it will not use the system certificate store for the time being.
+      # "firefox",
+      "chromium",
+      "falkon",
+      "midori"
+    ]
     errors = ["Security Risk", "not private", "Certificate Error", "Security"]
 
     machine.wait_for_x()
diff --git a/nixpkgs/nixos/tests/dendrite.nix b/nixpkgs/nixos/tests/dendrite.nix
new file mode 100644
index 000000000000..a444c9b20018
--- /dev/null
+++ b/nixpkgs/nixos/tests/dendrite.nix
@@ -0,0 +1,99 @@
+import ./make-test-python.nix (
+  { pkgs, ... }:
+    let
+      homeserverUrl = "http://homeserver:8008";
+
+      private_key = pkgs.runCommand "matrix_key.pem" {
+        buildInputs = [ pkgs.dendrite ];
+      } "generate-keys --private-key $out";
+    in
+      {
+        name = "dendrite";
+        meta = with pkgs.lib; {
+          maintainers = teams.matrix.members;
+        };
+
+        nodes = {
+          homeserver = { pkgs, ... }: {
+            services.dendrite = {
+              enable = true;
+              settings = {
+                global.server_name = "test-dendrite-server.com";
+                global.private_key = private_key;
+                client_api.registration_disabled = false;
+              };
+            };
+
+            networking.firewall.allowedTCPPorts = [ 8008 ];
+          };
+
+          client = { pkgs, ... }: {
+            environment.systemPackages = [
+              (
+                pkgs.writers.writePython3Bin "do_test"
+                  { libraries = [ pkgs.python3Packages.matrix-nio ]; } ''
+                  import asyncio
+
+                  from nio import AsyncClient
+
+
+                  async def main() -> None:
+                      # Connect to dendrite
+                      client = AsyncClient("http://homeserver:8008", "alice")
+
+                      # Register as user alice
+                      response = await client.register("alice", "my-secret-password")
+
+                      # Log in as user alice
+                      response = await client.login("my-secret-password")
+
+                      # Create a new room
+                      response = await client.room_create(federate=False)
+                      room_id = response.room_id
+
+                      # Join the room
+                      response = await client.join(room_id)
+
+                      # Send a message to the room
+                      response = await client.room_send(
+                          room_id=room_id,
+                          message_type="m.room.message",
+                          content={
+                              "msgtype": "m.text",
+                              "body": "Hello world!"
+                          }
+                      )
+
+                      # Sync responses
+                      response = await client.sync(timeout=30000)
+
+                      # Check the message was received by dendrite
+                      last_message = response.rooms.join[room_id].timeline.events[-1].body
+                      assert last_message == "Hello world!"
+
+                      # Leave the room
+                      response = await client.room_leave(room_id)
+
+                      # Close the client
+                      await client.close()
+
+                  asyncio.get_event_loop().run_until_complete(main())
+                ''
+              )
+            ];
+          };
+        };
+
+        testScript = ''
+          start_all()
+
+          with subtest("start the homeserver"):
+              homeserver.wait_for_unit("dendrite.service")
+              homeserver.wait_for_open_port(8008)
+
+          with subtest("ensure messages can be exchanged"):
+              client.succeed("do_test")
+        '';
+
+      }
+)
diff --git a/nixpkgs/nixos/tests/discourse.nix b/nixpkgs/nixos/tests/discourse.nix
index 3c965550fe0a..2ed6fb957c20 100644
--- a/nixpkgs/nixos/tests/discourse.nix
+++ b/nixpkgs/nixos/tests/discourse.nix
@@ -51,6 +51,8 @@ import ./make-test-python.nix (
 
         environment.systemPackages = [ pkgs.jq ];
 
+        services.postgresql.package = pkgs.postgresql_13;
+
         services.discourse = {
           enable = true;
           inherit admin;
diff --git a/nixpkgs/nixos/tests/docker-tools-overlay.nix b/nixpkgs/nixos/tests/docker-tools-overlay.nix
index 98eb72866156..6781388e639b 100644
--- a/nixpkgs/nixos/tests/docker-tools-overlay.nix
+++ b/nixpkgs/nixos/tests/docker-tools-overlay.nix
@@ -4,7 +4,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
 {
   name = "docker-tools-overlay";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ lnl7 ];
+    maintainers = [ lnl7 roberth ];
   };
 
   nodes = {
diff --git a/nixpkgs/nixos/tests/docker-tools.nix b/nixpkgs/nixos/tests/docker-tools.nix
index 96662b4540cc..4c3c26980aa2 100644
--- a/nixpkgs/nixos/tests/docker-tools.nix
+++ b/nixpkgs/nixos/tests/docker-tools.nix
@@ -3,7 +3,7 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "docker-tools";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ lnl7 ];
+    maintainers = [ lnl7 roberth ];
   };
 
   nodes = {
@@ -20,6 +20,20 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
     docker.wait_for_unit("sockets.target")
 
+    with subtest("includeStorePath"):
+        with subtest("assumption"):
+            docker.succeed("${examples.helloOnRoot} | docker load")
+            docker.succeed("docker run --rm hello | grep -i hello")
+            docker.succeed("docker image rm hello:latest")
+        with subtest("includeStorePath = false; breaks example"):
+            docker.succeed("${examples.helloOnRootNoStore} | docker load")
+            docker.fail("docker run --rm hello | grep -i hello")
+            docker.succeed("docker image rm hello:latest")
+        with subtest("includeStorePath = false; works with mounted store"):
+            docker.succeed("${examples.helloOnRootNoStore} | docker load")
+            docker.succeed("docker run --rm --volume ${builtins.storeDir}:${builtins.storeDir}:ro hello | grep -i hello")
+            docker.succeed("docker image rm hello:latest")
+
     with subtest("Ensure Docker images use a stable date by default"):
         docker.succeed(
             "docker load --input='${examples.bash}'"
diff --git a/nixpkgs/nixos/tests/docker.nix b/nixpkgs/nixos/tests/docker.nix
index 58e33535ed31..dee7480eb4a9 100644
--- a/nixpkgs/nixos/tests/docker.nix
+++ b/nixpkgs/nixos/tests/docker.nix
@@ -45,5 +45,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
 
     # Must match version 4 times to ensure client and server git commits and versions are correct
     docker.succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "4" ]')
+    docker.succeed("systemctl restart systemd-sysctl")
+    docker.succeed("grep 1 /proc/sys/net/ipv4/conf/all/forwarding")
+    docker.succeed("grep 1 /proc/sys/net/ipv4/conf/default/forwarding")
   '';
 })
diff --git a/nixpkgs/nixos/tests/doh-proxy-rust.nix b/nixpkgs/nixos/tests/doh-proxy-rust.nix
index ca150cafab50..23f8616849c3 100644
--- a/nixpkgs/nixos/tests/doh-proxy-rust.nix
+++ b/nixpkgs/nixos/tests/doh-proxy-rust.nix
@@ -38,6 +38,6 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
     machine.wait_for_unit("doh-proxy-rust.service")
     machine.wait_for_open_port(53)
     machine.wait_for_open_port(3000)
-    machine.succeed(f"curl --fail '{url}?dns={query}' | grep -qF {bin_ip}")
+    machine.succeed(f"curl --fail '{url}?dns={query}' | grep -F {bin_ip}")
   '';
 })
diff --git a/nixpkgs/nixos/tests/elk.nix b/nixpkgs/nixos/tests/elk.nix
index fee350de65b5..2a1a4cba2956 100644
--- a/nixpkgs/nixos/tests/elk.nix
+++ b/nixpkgs/nixos/tests/elk.nix
@@ -56,6 +56,24 @@ let
                 '');
               };
 
+              metricbeat = {
+                enable = true;
+                package = elk.metricbeat;
+                modules.system = {
+                  metricsets = ["cpu" "load" "memory" "network" "process" "process_summary" "uptime" "socket_summary"];
+                  enabled = true;
+                  period = "5s";
+                  processes = [".*"];
+                  cpu.metrics = ["percentages" "normalized_percentages"];
+                  core.metrics = ["percentages"];
+                };
+                settings = {
+                  output.elasticsearch = {
+                    hosts = ["127.0.0.1:9200"];
+                  };
+                };
+              };
+
               logstash = {
                 enable = true;
                 package = elk.logstash;
@@ -135,6 +153,16 @@ let
           )
 
 
+      def has_metricbeat():
+          dictionary = {"query": {"match": {"event.dataset": {"query": "system.cpu"}}}}
+          return (
+              "curl --silent --show-error '${esUrl}/_search' "
+              + "-H 'Content-Type: application/json' "
+              + "-d '{}' ".format(json.dumps(dictionary))
+              + "| jq '.hits.total > 0'"
+          )
+
+
       start_all()
 
       one.wait_for_unit("elasticsearch.service")
@@ -161,6 +189,12 @@ let
               "curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green"
           )
 
+      with subtest("Metricbeat is running"):
+          one.wait_for_unit("metricbeat.service")
+
+      with subtest("Metricbeat metrics arrive in elasticsearch"):
+          one.wait_until_succeeds(has_metricbeat() + " | tee /dev/console | grep 'true'")
+
       with subtest("Logstash messages arive in elasticsearch"):
           one.wait_until_succeeds(total_hits("flowers") + " | grep -v 0")
           one.wait_until_succeeds(total_hits("dragons") + " | grep 0")
@@ -178,7 +212,7 @@ let
           one.systemctl("stop logstash")
           one.systemctl("start elasticsearch-curator")
           one.wait_until_succeeds(
-              '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep -q ^'
+              '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep ^'
           )
     '';
   }) {};
@@ -190,12 +224,14 @@ in pkgs.lib.mapAttrs mkElkTest {
       logstash      = pkgs.logstash6;
       kibana        = pkgs.kibana6;
       journalbeat   = pkgs.journalbeat6;
+      metricbeat    = pkgs.metricbeat6;
     }
     else {
       elasticsearch = pkgs.elasticsearch6-oss;
       logstash      = pkgs.logstash6-oss;
       kibana        = pkgs.kibana6-oss;
       journalbeat   = pkgs.journalbeat6;
+      metricbeat    = pkgs.metricbeat6;
     };
   ELK-7 =
     if enableUnfree
@@ -204,11 +240,13 @@ in pkgs.lib.mapAttrs mkElkTest {
       logstash      = pkgs.logstash7;
       kibana        = pkgs.kibana7;
       journalbeat   = pkgs.journalbeat7;
+      metricbeat    = pkgs.metricbeat7;
     }
     else {
       elasticsearch = pkgs.elasticsearch7-oss;
       logstash      = pkgs.logstash7-oss;
       kibana        = pkgs.kibana7-oss;
       journalbeat   = pkgs.journalbeat7;
+      metricbeat    = pkgs.metricbeat7;
     };
 }
diff --git a/nixpkgs/nixos/tests/fancontrol.nix b/nixpkgs/nixos/tests/fancontrol.nix
index 356cd57ffa1a..296c68026415 100644
--- a/nixpkgs/nixos/tests/fancontrol.nix
+++ b/nixpkgs/nixos/tests/fancontrol.nix
@@ -1,28 +1,34 @@
 import ./make-test-python.nix ({ pkgs, ... } : {
   name = "fancontrol";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ evils ];
+  };
 
-  machine =
-    { ... }:
-    { hardware.fancontrol.enable = true;
-      hardware.fancontrol.config = ''
-        INTERVAL=42
-        DEVPATH=hwmon1=devices/platform/dummy
-        DEVNAME=hwmon1=dummy
-        FCTEMPS=hwmon1/device/pwm1=hwmon1/device/temp1_input
-        FCFANS=hwmon1/device/pwm1=hwmon1/device/fan1_input
-        MINTEMP=hwmon1/device/pwm1=25
-        MAXTEMP=hwmon1/device/pwm1=65
-        MINSTART=hwmon1/device/pwm1=150
-        MINSTOP=hwmon1/device/pwm1=0
-      '';
+  machine = { ... }: {
+    imports = [ ../modules/profiles/minimal.nix ];
+    hardware.fancontrol.enable = true;
+    hardware.fancontrol.config = ''
+      INTERVAL=42
+      DEVPATH=hwmon1=devices/platform/dummy
+      DEVNAME=hwmon1=dummy
+      FCTEMPS=hwmon1/device/pwm1=hwmon1/device/temp1_input
+      FCFANS=hwmon1/device/pwm1=hwmon1/device/fan1_input
+      MINTEMP=hwmon1/device/pwm1=25
+      MAXTEMP=hwmon1/device/pwm1=65
+      MINSTART=hwmon1/device/pwm1=150
+      MINSTOP=hwmon1/device/pwm1=0
+    '';
     };
 
   # This configuration cannot be valid for the test VM, so it's expected to get an 'outdated' error.
   testScript = ''
     start_all()
-    machine.wait_for_unit("fancontrol.service")
-    machine.wait_until_succeeds(
-        "journalctl -eu fancontrol | grep 'Configuration appears to be outdated'"
+    # can't wait for unit fancontrol.service because it doesn't become active due to invalid config
+    # fancontrol.service is WantedBy multi-user.target
+    machine.wait_for_unit("multi-user.target")
+    machine.succeed(
+        "journalctl -eu fancontrol | tee /dev/stderr | grep 'Configuration appears to be outdated'"
     )
+    machine.shutdown()
   '';
 })
diff --git a/nixpkgs/nixos/tests/firefox.nix b/nixpkgs/nixos/tests/firefox.nix
index 4262f5443bf8..2e27ac302af5 100644
--- a/nixpkgs/nixos/tests/firefox.nix
+++ b/nixpkgs/nixos/tests/firefox.nix
@@ -46,7 +46,7 @@ import ./make-test-python.nix ({ pkgs, esr ? false, ... }: {
 
       systemd.services.audio-recorder = {
         description = "Record NixOS test audio to /tmp/record.wav";
-        script = "${pkgs.alsaUtils}/bin/arecord -D recorder -f S16_LE -r48000 /tmp/record.wav";
+        script = "${pkgs.alsa-utils}/bin/arecord -D recorder -f S16_LE -r48000 /tmp/record.wav";
       };
 
     };
diff --git a/nixpkgs/nixos/tests/fontconfig-default-fonts.nix b/nixpkgs/nixos/tests/fontconfig-default-fonts.nix
index 68c6ac9e9c83..58d0f6227cc7 100644
--- a/nixpkgs/nixos/tests/fontconfig-default-fonts.nix
+++ b/nixpkgs/nixos/tests/fontconfig-default-fonts.nix
@@ -4,7 +4,6 @@ import ./make-test-python.nix ({ lib, ... }:
 
   meta.maintainers = with lib.maintainers; [
     jtojnar
-    worldofpeace
   ];
 
   machine = { config, pkgs, ... }: {
diff --git a/nixpkgs/nixos/tests/ghostunnel.nix b/nixpkgs/nixos/tests/ghostunnel.nix
new file mode 100644
index 000000000000..a82cff8082b7
--- /dev/null
+++ b/nixpkgs/nixos/tests/ghostunnel.nix
@@ -0,0 +1,104 @@
+{ pkgs, ... }: import ./make-test-python.nix {
+
+  nodes = {
+    backend = { pkgs, ... }: {
+      services.nginx.enable = true;
+      services.nginx.virtualHosts."backend".root = pkgs.runCommand "webroot" {} ''
+        mkdir $out
+        echo hi >$out/hi.txt
+      '';
+      networking.firewall.allowedTCPPorts = [ 80 ];
+    };
+    service = { ... }: {
+      services.ghostunnel.enable = true;
+      services.ghostunnel.servers."plain-old" = {
+        listen = "0.0.0.0:443";
+        cert = "/root/service-cert.pem";
+        key = "/root/service-key.pem";
+        disableAuthentication = true;
+        target = "backend:80";
+        unsafeTarget = true;
+      };
+      services.ghostunnel.servers."client-cert" = {
+        listen = "0.0.0.0:1443";
+        cert = "/root/service-cert.pem";
+        key = "/root/service-key.pem";
+        cacert = "/root/ca.pem";
+        target = "backend:80";
+        allowCN = ["client"];
+        unsafeTarget = true;
+      };
+      networking.firewall.allowedTCPPorts = [ 443 1443 ];
+    };
+    client = { pkgs, ... }: {
+      environment.systemPackages = [
+        pkgs.curl
+      ];
+    };
+  };
+
+  testScript = ''
+
+    # prepare certificates
+
+    def cmd(command):
+      print(f"+{command}")
+      r = os.system(command)
+      if r != 0:
+        raise Exception(f"Command {command} failed with exit code {r}")
+
+    # Create CA
+    cmd("${pkgs.openssl}/bin/openssl genrsa -out ca-key.pem 4096")
+    cmd("${pkgs.openssl}/bin/openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -subj '/C=NL/ST=Zuid-Holland/L=The Hague/O=Stevige Balken en Planken B.V./OU=OpSec/CN=Certificate Authority' -out ca.pem")
+
+    # Create service
+    cmd("${pkgs.openssl}/bin/openssl genrsa -out service-key.pem 4096")
+    cmd("${pkgs.openssl}/bin/openssl req -subj '/CN=service' -sha256 -new -key service-key.pem -out service.csr")
+    cmd("echo subjectAltName = DNS:service,IP:127.0.0.1 >> extfile.cnf")
+    cmd("echo extendedKeyUsage = serverAuth >> extfile.cnf")
+    cmd("${pkgs.openssl}/bin/openssl x509 -req -days 365 -sha256 -in service.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out service-cert.pem -extfile extfile.cnf")
+
+    # Create client
+    cmd("${pkgs.openssl}/bin/openssl genrsa -out client-key.pem 4096")
+    cmd("${pkgs.openssl}/bin/openssl req -subj '/CN=client' -new -key client-key.pem -out client.csr")
+    cmd("echo extendedKeyUsage = clientAuth > extfile-client.cnf")
+    cmd("${pkgs.openssl}/bin/openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile-client.cnf")
+
+    cmd("ls -al")
+
+    start_all()
+
+    # Configuration
+    service.copy_from_host("ca.pem", "/root/ca.pem")
+    service.copy_from_host("service-cert.pem", "/root/service-cert.pem")
+    service.copy_from_host("service-key.pem", "/root/service-key.pem")
+    client.copy_from_host("ca.pem", "/root/ca.pem")
+    client.copy_from_host("service-cert.pem", "/root/service-cert.pem")
+    client.copy_from_host("client-cert.pem", "/root/client-cert.pem")
+    client.copy_from_host("client-key.pem", "/root/client-key.pem")
+
+    backend.wait_for_unit("nginx.service")
+    service.wait_for_unit("multi-user.target")
+    service.wait_for_unit("multi-user.target")
+    client.wait_for_unit("multi-user.target")
+
+    # Check assumptions before the real test
+    client.succeed("bash -c 'diff <(curl -v --no-progress-meter http://backend/hi.txt) <(echo hi)'")
+
+    # Plain old simple TLS can connect, ignoring cert
+    client.succeed("bash -c 'diff <(curl -v --no-progress-meter --insecure https://service/hi.txt) <(echo hi)'")
+
+    # Plain old simple TLS provides correct signature with its cert
+    client.succeed("bash -c 'diff <(curl -v --no-progress-meter --cacert /root/ca.pem https://service/hi.txt) <(echo hi)'")
+
+    # Client can authenticate with certificate
+    client.succeed("bash -c 'diff <(curl -v --no-progress-meter --cert /root/client-cert.pem --key /root/client-key.pem --cacert /root/ca.pem https://service:1443/hi.txt) <(echo hi)'")
+
+    # Client must authenticate with certificate
+    client.fail("bash -c 'diff <(curl -v --no-progress-meter --cacert /root/ca.pem https://service:1443/hi.txt) <(echo hi)'")
+  '';
+
+  meta.maintainers = with pkgs.lib.maintainers; [
+    roberth
+  ];
+}
diff --git a/nixpkgs/nixos/tests/gitdaemon.nix b/nixpkgs/nixos/tests/gitdaemon.nix
index d0156fb9a49f..bb07b6e97b7f 100644
--- a/nixpkgs/nixos/tests/gitdaemon.nix
+++ b/nixpkgs/nixos/tests/gitdaemon.nix
@@ -18,6 +18,11 @@ in {
 
         environment.systemPackages = [ pkgs.git ];
 
+        systemd.tmpfiles.rules = [
+          # type path mode user group age arg
+          " d    /git 0755 root root  -   -"
+        ];
+
         services.gitDaemon = {
           enable = true;
           basePath = "/git";
@@ -35,7 +40,6 @@ in {
 
     with subtest("create project.git"):
         server.succeed(
-            "mkdir /git",
             "git init --bare /git/project.git",
             "touch /git/project.git/git-daemon-export-ok",
         )
diff --git a/nixpkgs/nixos/tests/gitlab.nix b/nixpkgs/nixos/tests/gitlab.nix
index 582f5faf9bc0..696ebabb5806 100644
--- a/nixpkgs/nixos/tests/gitlab.nix
+++ b/nixpkgs/nixos/tests/gitlab.nix
@@ -57,9 +57,9 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
           };
         };
         secrets = {
-          secretFile = pkgs.writeText "secret" "r8X9keSKynU7p4aKlh4GO1Bo77g5a7vj";
-          otpFile = pkgs.writeText "otpsecret" "Zu5hGx3YvQx40DvI8WoZJQpX2paSDOlG";
-          dbFile = pkgs.writeText "dbsecret" "lsGltKWTejOf6JxCVa7nLDenzkO9wPLR";
+          secretFile = pkgs.writeText "secret" "Aig5zaic";
+          otpFile = pkgs.writeText "otpsecret" "Riew9mue";
+          dbFile = pkgs.writeText "dbsecret" "we2quaeZ";
           jwsFile = pkgs.runCommand "oidcKeyBase" {} "${pkgs.openssl}/bin/openssl genrsa 2048 > $out";
         };
       };
@@ -102,7 +102,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
       # `doSetup` is is true.
       test = doSetup: ''
         gitlab.succeed(
-            "curl -isSf http://gitlab | grep -i location | grep -q http://gitlab/users/sign_in"
+            "curl -isSf http://gitlab | grep -i location | grep http://gitlab/users/sign_in"
         )
         gitlab.succeed(
             "${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2"
diff --git a/nixpkgs/nixos/tests/gnome3-xorg.nix b/nixpkgs/nixos/tests/gnome-xorg.nix
index 0d05c12384f3..55f9c90c20a0 100644
--- a/nixpkgs/nixos/tests/gnome3-xorg.nix
+++ b/nixpkgs/nixos/tests/gnome-xorg.nix
@@ -1,5 +1,5 @@
 import ./make-test-python.nix ({ pkgs, lib, ...} : {
-  name = "gnome3-xorg";
+  name = "gnome-xorg";
   meta = with lib; {
     maintainers = teams.gnome.members;
   };
@@ -21,8 +21,8 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
         };
       };
 
-      services.xserver.desktopManager.gnome3.enable = true;
-      services.xserver.desktopManager.gnome3.debug = true;
+      services.xserver.desktopManager.gnome.enable = true;
+      services.xserver.desktopManager.gnome.debug = true;
       services.xserver.displayManager.defaultSession = "gnome-xorg";
 
       virtualisation.memorySize = 1024;
diff --git a/nixpkgs/nixos/tests/gnome3.nix b/nixpkgs/nixos/tests/gnome.nix
index 7e301be49d10..e8d18a41bd06 100644
--- a/nixpkgs/nixos/tests/gnome3.nix
+++ b/nixpkgs/nixos/tests/gnome.nix
@@ -1,5 +1,5 @@
 import ./make-test-python.nix ({ pkgs, lib, ...} : {
-  name = "gnome3";
+  name = "gnome";
   meta = with lib; {
     maintainers = teams.gnome.members;
   };
@@ -20,13 +20,13 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
         };
       };
 
-      services.xserver.desktopManager.gnome3.enable = true;
-      services.xserver.desktopManager.gnome3.debug = true;
+      services.xserver.desktopManager.gnome.enable = true;
+      services.xserver.desktopManager.gnome.debug = true;
 
       environment.systemPackages = [
         (pkgs.makeAutostartItem {
           name = "org.gnome.Terminal";
-          package = pkgs.gnome3.gnome-terminal;
+          package = pkgs.gnome.gnome-terminal;
         })
       ];
 
diff --git a/nixpkgs/nixos/tests/gocd-agent.nix b/nixpkgs/nixos/tests/gocd-agent.nix
index 75edf43ee295..686d0b971d30 100644
--- a/nixpkgs/nixos/tests/gocd-agent.nix
+++ b/nixpkgs/nixos/tests/gocd-agent.nix
@@ -42,7 +42,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
         "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].uuid"
     )
     agent.succeed(
-        "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep -q Idle"
+        "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep Idle"
     )
   '';
 })
diff --git a/nixpkgs/nixos/tests/grafana.nix b/nixpkgs/nixos/tests/grafana.nix
index 4ba091b893f4..174d664d8772 100644
--- a/nixpkgs/nixos/tests/grafana.nix
+++ b/nixpkgs/nixos/tests/grafana.nix
@@ -74,7 +74,7 @@ in {
         declarativePlugins.wait_for_unit("grafana.service")
         declarativePlugins.wait_for_open_port(3000)
         declarativePlugins.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/plugins | grep -q grafana-clock-panel"
+            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/plugins | grep grafana-clock-panel"
         )
         declarativePlugins.shutdown()
 
@@ -82,7 +82,7 @@ in {
         sqlite.wait_for_unit("grafana.service")
         sqlite.wait_for_open_port(3000)
         sqlite.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost"
         )
         sqlite.shutdown()
 
@@ -92,7 +92,7 @@ in {
         postgresql.wait_for_open_port(3000)
         postgresql.wait_for_open_port(5432)
         postgresql.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost"
         )
         postgresql.shutdown()
 
@@ -102,7 +102,7 @@ in {
         mysql.wait_for_open_port(3000)
         mysql.wait_for_open_port(3306)
         mysql.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep testadmin\@localhost"
         )
         mysql.shutdown()
   '';
diff --git a/nixpkgs/nixos/tests/home-assistant.nix b/nixpkgs/nixos/tests/home-assistant.nix
index 3b7295324a18..c75dd248ecb3 100644
--- a/nixpkgs/nixos/tests/home-assistant.nix
+++ b/nixpkgs/nixos/tests/home-assistant.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
 
 let
   configDir = "/var/lib/foobar";
@@ -6,9 +6,7 @@ let
   mqttPassword = "secret";
 in {
   name = "home-assistant";
-  meta = with pkgs.lib; {
-    maintainers = with maintainers; [ dotlambda ];
-  };
+  meta.maintainers = lib.teams.home-assistant.members;
 
   nodes.hass = { pkgs, ... }: {
     environment.systemPackages = with pkgs; [ mosquitto ];
@@ -47,6 +45,10 @@ in {
           payload_on = "let_there_be_light";
           payload_off = "off";
         }];
+        emulated_hue = {
+          host_ip = "127.0.0.1";
+          listen_port = 80;
+        };
         logger = {
           default = "info";
           logs."homeassistant.components.mqtt" = "debug";
@@ -82,6 +84,9 @@ in {
         hass.succeed(
             "mosquitto_pub -V mqttv5 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -m let_there_be_light"
         )
+    with subtest("Check that capabilities are passed for emulated_hue to bind to port 80"):
+        hass.wait_for_open_port(80)
+        hass.succeed("curl --fail http://localhost:80/description.xml")
     with subtest("Print log to ease debugging"):
         output_log = hass.succeed("cat ${configDir}/home-assistant.log")
         print("\n### home-assistant.log ###\n")
@@ -93,5 +98,8 @@ in {
     # example line: 2020-06-20 10:01:32 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home-assistant/test: b'let_there_be_light'
     with subtest("Check we received the mosquitto message"):
         assert "let_there_be_light" in output_log
+
+    with subtest("Check systemd unit hardening"):
+        hass.log(hass.succeed("systemd-analyze security home-assistant.service"))
   '';
 })
diff --git a/nixpkgs/nixos/tests/installed-tests/default.nix b/nixpkgs/nixos/tests/installed-tests/default.nix
index e5d7009bb7b9..6c2846a1636b 100644
--- a/nixpkgs/nixos/tests/installed-tests/default.nix
+++ b/nixpkgs/nixos/tests/installed-tests/default.nix
@@ -97,6 +97,7 @@ in
   gsconnect = callInstalledTest ./gsconnect.nix {};
   ibus = callInstalledTest ./ibus.nix {};
   libgdata = callInstalledTest ./libgdata.nix {};
+  librsvg = callInstalledTest ./librsvg.nix {};
   glib-testing = callInstalledTest ./glib-testing.nix {};
   libjcat = callInstalledTest ./libjcat.nix {};
   libxmlb = callInstalledTest ./libxmlb.nix {};
diff --git a/nixpkgs/nixos/tests/installed-tests/gnome-photos.nix b/nixpkgs/nixos/tests/installed-tests/gnome-photos.nix
index 05e7ccb65ad5..bcb6479ee89c 100644
--- a/nixpkgs/nixos/tests/installed-tests/gnome-photos.nix
+++ b/nixpkgs/nixos/tests/installed-tests/gnome-photos.nix
@@ -7,7 +7,7 @@ makeInstalledTest {
 
   testConfig = {
     programs.dconf.enable = true;
-    services.gnome3.at-spi2-core.enable = true; # needed for dogtail
+    services.gnome.at-spi2-core.enable = true; # needed for dogtail
     environment.systemPackages = with pkgs; [
       # gsettings tool with access to gsettings-desktop-schemas
       (stdenv.mkDerivation {
diff --git a/nixpkgs/nixos/tests/installed-tests/libgdata.nix b/nixpkgs/nixos/tests/installed-tests/libgdata.nix
index f11a7bc1bc51..b0d39c042be4 100644
--- a/nixpkgs/nixos/tests/installed-tests/libgdata.nix
+++ b/nixpkgs/nixos/tests/installed-tests/libgdata.nix
@@ -6,6 +6,6 @@ makeInstalledTest {
   testConfig = {
     # # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyTlsBackend) for ‘gio-tls-backend’
     # Bail out! libgdata:ERROR:../gdata/tests/common.c:134:gdata_test_init: assertion failed (child_error == NULL): TLS support is not available (g-tls-error-quark, 0)
-    services.gnome3.glib-networking.enable = true;
+    services.gnome.glib-networking.enable = true;
   };
 }
diff --git a/nixpkgs/nixos/tests/installed-tests/librsvg.nix b/nixpkgs/nixos/tests/installed-tests/librsvg.nix
new file mode 100644
index 000000000000..378e7cce3ff4
--- /dev/null
+++ b/nixpkgs/nixos/tests/installed-tests/librsvg.nix
@@ -0,0 +1,9 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+  tested = pkgs.librsvg;
+
+  testConfig = {
+    virtualisation.memorySize = 2047;
+  };
+}
diff --git a/nixpkgs/nixos/tests/installed-tests/pipewire.nix b/nixpkgs/nixos/tests/installed-tests/pipewire.nix
index f4154b5d2fd7..b04265658fcf 100644
--- a/nixpkgs/nixos/tests/installed-tests/pipewire.nix
+++ b/nixpkgs/nixos/tests/installed-tests/pipewire.nix
@@ -2,4 +2,14 @@
 
 makeInstalledTest {
   tested = pkgs.pipewire;
+  testConfig = {
+    hardware.pulseaudio.enable = false;
+    services.pipewire = {
+      enable = true;
+      pulse.enable = true;
+      jack.enable = true;
+      alsa.enable = true;
+      alsa.support32Bit = true;
+    };
+  };
 }
diff --git a/nixpkgs/nixos/tests/installer.nix b/nixpkgs/nixos/tests/installer.nix
index 904ec17229e1..48f0f5934255 100644
--- a/nixpkgs/nixos/tests/installer.nix
+++ b/nixpkgs/nixos/tests/installer.nix
@@ -75,7 +75,7 @@ let
     else ''
       def assemble_qemu_flags():
           flags = "-cpu max"
-          ${if system == "x86_64-linux"
+          ${if (system == "x86_64-linux" || system == "i686-linux")
             then ''flags += " -m 1024"''
             else ''flags += " -m 768 -enable-kvm -machine virt,gic-version=host"''
           }
@@ -294,7 +294,7 @@ let
           # the same during and after installation.
           virtualisation.emptyDiskImages = [ 512 ];
           virtualisation.bootDevice =
-            if grubVersion == 1 then "/dev/sdb" else "/dev/vdb";
+            if grubVersion == 1 then "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive2" else "/dev/vdb";
           virtualisation.qemu.diskInterface =
             if grubVersion == 1 then "scsi" else "virtio";
 
@@ -695,22 +695,23 @@ in {
   };
 
   # Test a basic install using GRUB 1.
-  grub1 = makeInstallerTest "grub1" {
+  grub1 = makeInstallerTest "grub1" rec {
     createPartitions = ''
       machine.succeed(
-          "flock /dev/sda parted --script /dev/sda -- mklabel msdos"
+          "flock ${grubDevice} parted --script ${grubDevice} -- mklabel msdos"
           + " mkpart primary linux-swap 1M 1024M"
           + " mkpart primary ext2 1024M -1s",
           "udevadm settle",
-          "mkswap /dev/sda1 -L swap",
+          "mkswap ${grubDevice}-part1 -L swap",
           "swapon -L swap",
-          "mkfs.ext3 -L nixos /dev/sda2",
+          "mkfs.ext3 -L nixos ${grubDevice}-part2",
           "mount LABEL=nixos /mnt",
           "mkdir -p /mnt/tmp",
       )
     '';
     grubVersion = 1;
-    grubDevice = "/dev/sda";
+    # /dev/sda is not stable, even when the SCSI disk number is.
+    grubDevice = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive1";
   };
 
   # Test using labels to identify volumes in grub
diff --git a/nixpkgs/nixos/tests/ipv6.nix b/nixpkgs/nixos/tests/ipv6.nix
index f9d6d82b54ac..75faa6f60201 100644
--- a/nixpkgs/nixos/tests/ipv6.nix
+++ b/nixpkgs/nixos/tests/ipv6.nix
@@ -8,12 +8,34 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
   };
 
   nodes =
-    # Remove the interface configuration provided by makeTest so that the
-    # interfaces are all configured implicitly
-    { client = { ... }: { networking.interfaces = lib.mkForce {}; };
+    {
+      # We use lib.mkForce here to remove the interface configuration
+      # provided by makeTest, so that the interfaces are all configured
+      # implicitly.
+
+      # This client should use privacy extensions fully, having a
+      # completely-default network configuration.
+      client_defaults.networking.interfaces = lib.mkForce {};
+
+      # Both of these clients should obtain temporary addresses, but
+      # not use them as the default source IP. We thus run the same
+      # checks against them — but the configuration resulting in this
+      # behaviour is different.
+
+      # Here, by using an altered default value for the global setting...
+      client_global_setting = {
+        networking.interfaces = lib.mkForce {};
+        networking.tempAddresses = "enabled";
+      };
+      # and here, by setting this on the interface explicitly.
+      client_interface_setting = {
+        networking.tempAddresses = "disabled";
+        networking.interfaces = lib.mkForce {
+          eth1.tempAddress = "enabled";
+        };
+      };
 
       server =
-        { ... }:
         { services.httpd.enable = true;
           services.httpd.adminAddr = "foo@example.org";
           networking.firewall.allowedTCPPorts = [ 80 ];
@@ -40,9 +62,12 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
       # Start the router first so that it respond to router solicitations.
       router.wait_for_unit("radvd")
 
+      clients = [client_defaults, client_global_setting, client_interface_setting]
+
       start_all()
 
-      client.wait_for_unit("network.target")
+      for client in clients:
+          client.wait_for_unit("network.target")
       server.wait_for_unit("network.target")
       server.wait_for_unit("httpd.service")
 
@@ -64,28 +89,42 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
 
 
       with subtest("Loopback address can be pinged"):
-          client.succeed("ping -c 1 ::1 >&2")
-          client.fail("ping -c 1 ::2 >&2")
+          client_defaults.succeed("ping -c 1 ::1 >&2")
+          client_defaults.fail("ping -c 1 2001:db8:: >&2")
 
       with subtest("Local link addresses can be obtained and pinged"):
-          client_ip = wait_for_address(client, "eth1", "link")
-          server_ip = wait_for_address(server, "eth1", "link")
-          client.succeed(f"ping -c 1 {client_ip}%eth1 >&2")
-          client.succeed(f"ping -c 1 {server_ip}%eth1 >&2")
+          for client in clients:
+              client_ip = wait_for_address(client, "eth1", "link")
+              server_ip = wait_for_address(server, "eth1", "link")
+              client.succeed(f"ping -c 1 {client_ip}%eth1 >&2")
+              client.succeed(f"ping -c 1 {server_ip}%eth1 >&2")
 
       with subtest("Global addresses can be obtained, pinged, and reached via http"):
-          client_ip = wait_for_address(client, "eth1", "global")
-          server_ip = wait_for_address(server, "eth1", "global")
-          client.succeed(f"ping -c 1 {client_ip} >&2")
-          client.succeed(f"ping -c 1 {server_ip} >&2")
-          client.succeed(f"curl --fail -g http://[{server_ip}]")
-          client.fail(f"curl --fail -g http://[{client_ip}]")
-
-      with subtest("Privacy extensions: Global temporary address can be obtained and pinged"):
-          ip = wait_for_address(client, "eth1", "global", temporary=True)
+          for client in clients:
+              client_ip = wait_for_address(client, "eth1", "global")
+              server_ip = wait_for_address(server, "eth1", "global")
+              client.succeed(f"ping -c 1 {client_ip} >&2")
+              client.succeed(f"ping -c 1 {server_ip} >&2")
+              client.succeed(f"curl --fail -g http://[{server_ip}]")
+              client.fail(f"curl --fail -g http://[{client_ip}]")
+
+      with subtest(
+          "Privacy extensions: Global temporary address is used as default source address"
+      ):
+          ip = wait_for_address(client_defaults, "eth1", "global", temporary=True)
           # Default route should have "src <temporary address>" in it
-          client.succeed(f"ip r g ::2 | grep {ip}")
-
-      # TODO: test reachability of a machine on another network.
+          client_defaults.succeed(f"ip route get 2001:db8:: | grep 'src {ip}'")
+
+      for client, setting_desc in (
+          (client_global_setting, "global"),
+          (client_interface_setting, "interface"),
+      ):
+          with subtest(f'Privacy extensions: "enabled" through {setting_desc} setting)'):
+              # We should be obtaining both a temporary address and an EUI-64 address...
+              ip = wait_for_address(client, "eth1", "global")
+              assert "ff:fe" in ip
+              ip_temp = wait_for_address(client, "eth1", "global", temporary=True)
+              # But using the EUI-64 one.
+              client.succeed(f"ip route get 2001:db8:: | grep 'src {ip}'")
     '';
 })
diff --git a/nixpkgs/nixos/tests/jellyfin.nix b/nixpkgs/nixos/tests/jellyfin.nix
index 65360624d487..cae31a719258 100644
--- a/nixpkgs/nixos/tests/jellyfin.nix
+++ b/nixpkgs/nixos/tests/jellyfin.nix
@@ -1,16 +1,155 @@
-import ./make-test-python.nix ({ lib, ...}:
-
-{
-  name = "jellyfin";
-  meta.maintainers = with lib.maintainers; [ minijackson ];
-
-  machine =
-    { ... }:
-    { services.jellyfin.enable = true; };
-
-  testScript = ''
-    machine.wait_for_unit("jellyfin.service")
-    machine.wait_for_open_port(8096)
-    machine.succeed("curl --fail http://localhost:8096/")
-  '';
-})
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+  {
+    name = "jellyfin";
+    meta.maintainers = with lib.maintainers; [ minijackson ];
+
+    machine =
+      { ... }:
+      {
+        services.jellyfin.enable = true;
+        environment.systemPackages = with pkgs; [ ffmpeg ];
+      };
+
+    # Documentation of the Jellyfin API: https://api.jellyfin.org/
+    # Beware, this link can be resource intensive
+    testScript =
+      let
+        payloads = {
+          auth = pkgs.writeText "auth.json" (builtins.toJSON {
+            Username = "jellyfin";
+          });
+          empty = pkgs.writeText "empty.json" (builtins.toJSON { });
+        };
+      in
+      ''
+        import json
+        from urllib.parse import urlencode
+
+        machine.wait_for_unit("jellyfin.service")
+        machine.wait_for_open_port(8096)
+        machine.succeed("curl --fail http://localhost:8096/")
+
+        machine.wait_until_succeeds("curl --fail http://localhost:8096/health | grep Healthy")
+
+        auth_header = 'MediaBrowser Client="NixOS Integration Tests", DeviceId="1337", Device="Apple II", Version="20.09"'
+
+
+        def api_get(path):
+            return f"curl --fail 'http://localhost:8096{path}' -H 'X-Emby-Authorization:{auth_header}'"
+
+
+        def api_post(path, json_file=None):
+            if json_file:
+                return f"curl --fail -X post 'http://localhost:8096{path}' -d '@{json_file}' -H Content-Type:application/json -H 'X-Emby-Authorization:{auth_header}'"
+            else:
+                return f"curl --fail -X post 'http://localhost:8096{path}' -H 'X-Emby-Authorization:{auth_header}'"
+
+
+        with machine.nested("Wizard completes"):
+            machine.wait_until_succeeds(api_get("/Startup/Configuration"))
+            machine.succeed(api_get("/Startup/FirstUser"))
+            machine.succeed(api_post("/Startup/Complete"))
+
+        with machine.nested("Can login"):
+            auth_result = machine.succeed(
+                api_post(
+                    "/Users/AuthenticateByName",
+                    "${payloads.auth}",
+                )
+            )
+            auth_result = json.loads(auth_result)
+            auth_token = auth_result["AccessToken"]
+            auth_header += f", Token={auth_token}"
+
+            sessions_result = machine.succeed(api_get("/Sessions"))
+            sessions_result = json.loads(sessions_result)
+
+            this_session = [
+                session for session in sessions_result if session["DeviceId"] == "1337"
+            ]
+            if len(this_session) != 1:
+                raise Exception("Session not created")
+
+            me = machine.succeed(api_get("/Users/Me"))
+            me = json.loads(me)["Id"]
+
+        with machine.nested("Can add library"):
+            tempdir = machine.succeed("mktemp -d -p /var/lib/jellyfin").strip()
+            machine.succeed(f"chmod 755 '{tempdir}'")
+
+            # Generate a dummy video that we can test later
+            videofile = f"{tempdir}/Big Buck Bunny (2008) [1080p].mkv"
+            machine.succeed(f"ffmpeg -f lavfi -i testsrc2=duration=5 '{videofile}'")
+
+            add_folder_query = urlencode(
+                {
+                    "name": "My Library",
+                    "collectionType": "Movies",
+                    "paths": tempdir,
+                    "refreshLibrary": "true",
+                }
+            )
+
+            machine.succeed(
+                api_post(
+                    f"/Library/VirtualFolders?{add_folder_query}",
+                    "${payloads.empty}",
+                )
+            )
+
+
+        def is_refreshed(_):
+            folders = machine.succeed(api_get("/Library/VirtualFolders"))
+            folders = json.loads(folders)
+            print(folders)
+            return all(folder["RefreshStatus"] == "Idle" for folder in folders)
+
+
+        retry(is_refreshed)
+
+        with machine.nested("Can identify videos"):
+            items = []
+
+            # For some reason, having the folder refreshed doesn't mean the
+            # movie was scanned
+            def has_movie(_):
+                global items
+
+                items = machine.succeed(
+                    api_get(f"/Users/{me}/Items?IncludeItemTypes=Movie&Recursive=true")
+                )
+                items = json.loads(items)["Items"]
+
+                return len(items) == 1
+
+            retry(has_movie)
+
+            video = items[0]["Id"]
+
+            item_info = machine.succeed(api_get(f"/Users/{me}/Items/{video}"))
+            item_info = json.loads(item_info)
+
+            if item_info["Name"] != "Big Buck Bunny":
+                raise Exception("Jellyfin failed to properly identify file")
+
+        with machine.nested("Can read videos"):
+            media_source_id = item_info["MediaSources"][0]["Id"]
+
+            machine.succeed(
+                "ffmpeg"
+                + f" -headers 'X-Emby-Authorization:{auth_header}'"
+                + f" -i http://localhost:8096/Videos/{video}/master.m3u8?mediaSourceId={media_source_id}"
+                + " /tmp/test.mkv"
+            )
+
+            duration = machine.succeed(
+                "ffprobe /tmp/test.mkv"
+                + " -show_entries format=duration"
+                + " -of compact=print_section=0:nokey=1"
+            )
+
+            if duration.strip() != "5.000000":
+                raise Exception("Downloaded video has wrong duration")
+      '';
+  })
diff --git a/nixpkgs/nixos/tests/kernel-generic.nix b/nixpkgs/nixos/tests/kernel-generic.nix
index 17089141e9e4..cb23bb2fc2d4 100644
--- a/nixpkgs/nixos/tests/kernel-generic.nix
+++ b/nixpkgs/nixos/tests/kernel-generic.nix
@@ -31,7 +31,7 @@ with pkgs; {
   linux_4_19 = makeKernelTest "4.19" linuxPackages_4_19;
   linux_5_4 = makeKernelTest "5.4" linuxPackages_5_4;
   linux_5_10 = makeKernelTest "5.10" linuxPackages_5_10;
-  linux_5_11 = makeKernelTest "5.11" linuxPackages_5_11;
+  linux_5_12 = makeKernelTest "5.12" linuxPackages_5_12;
 
   linux_testing = makeKernelTest "testing" linuxPackages_testing;
 }
diff --git a/nixpkgs/nixos/tests/keycloak.nix b/nixpkgs/nixos/tests/keycloak.nix
index 45d8677af567..fc321b8902f1 100644
--- a/nixpkgs/nixos/tests/keycloak.nix
+++ b/nixpkgs/nixos/tests/keycloak.nix
@@ -3,7 +3,8 @@
 # client using their Keycloak login.
 
 let
-  frontendUrl = "http://keycloak/auth";
+  certs = import ./common/acme/server/snakeoil-certs.nix;
+  frontendUrl = "https://${certs.domain}/auth";
   initialAdminPassword = "h4IhoJFnt2iQIR9";
 
   keycloakTest = import ./make-test-python.nix (
@@ -17,11 +18,27 @@ let
       nodes = {
         keycloak = { ... }: {
           virtualisation.memorySize = 1024;
+
+          security.pki.certificateFiles = [
+            certs.ca.cert
+          ];
+
+          networking.extraHosts = ''
+            127.0.0.1 ${certs.domain}
+          '';
+
           services.keycloak = {
             enable = true;
-            inherit frontendUrl databaseType initialAdminPassword;
-            databasePasswordFile = pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH";
+            inherit frontendUrl initialAdminPassword;
+            sslCertificate = certs.${certs.domain}.cert;
+            sslCertificateKey = certs.${certs.domain}.key;
+            database = {
+              type = databaseType;
+              username = "bogus";
+              passwordFile = pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH";
+            };
           };
+
           environment.systemPackages = with pkgs; [
             xmlstarlet
             libtidy
diff --git a/nixpkgs/nixos/tests/keymap.nix b/nixpkgs/nixos/tests/keymap.nix
index 09d5d2a6c9e1..a18a05f90c6d 100644
--- a/nixpkgs/nixos/tests/keymap.nix
+++ b/nixpkgs/nixos/tests/keymap.nix
@@ -107,17 +107,32 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
       altgr.expect = [ "~"       "#"       "{"       "["       "|"       ];
     };
 
-    extraConfig.console.keyMap = "azerty/fr";
+    extraConfig.console.keyMap = "fr";
     extraConfig.services.xserver.layout = "fr";
   };
 
+  bone = {
+    tests = {
+      layer1.qwerty = [ "f"           "j"                     ];
+      layer1.expect = [ "e"           "n"                     ];
+      layer2.qwerty = [ "shift-f"     "shift-j"     "shift-6" ];
+      layer2.expect = [ "E"           "N"           "$"       ];
+      layer3.qwerty = [ "caps_lock-d" "caps_lock-f"           ];
+      layer3.expect = [ "{"           "}"                     ];
+    };
+
+    extraConfig.console.keyMap = "bone";
+    extraConfig.services.xserver.layout = "de";
+    extraConfig.services.xserver.xkbVariant = "bone";
+  };
+
   colemak = {
     tests = {
       homerow.qwerty = [ "a" "s" "d" "f" "j" "k" "l" "semicolon" ];
       homerow.expect = [ "a" "r" "s" "t" "n" "e" "i" "o"         ];
     };
 
-    extraConfig.console.keyMap = "colemak/colemak";
+    extraConfig.console.keyMap = "colemak";
     extraConfig.services.xserver.layout = "us";
     extraConfig.services.xserver.xkbVariant = "colemak";
   };
@@ -129,9 +144,13 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
       symbols.qwerty = [ "q" "w" "e" "minus" "equal" ];
       symbols.expect = [ "'" "," "." "["     "]"     ];
     };
+
+    extraConfig.console.keyMap = "dvorak";
+    extraConfig.services.xserver.layout = "us";
+    extraConfig.services.xserver.xkbVariant = "dvorak";
   };
 
-  dvp = {
+  dvorak-programmer = {
     tests = {
       homerow.qwerty = [ "a" "s" "d" "f" "j" "k" "l" "semicolon" ];
       homerow.expect = [ "a" "o" "e" "u" "h" "t" "n" "s"         ];
@@ -142,6 +161,7 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
       symbols.expect = [ "&" "[" "{" "}" "(" "=" "*" ")" "+" "]" "!" ];
     };
 
+    extraConfig.console.keyMap = "dvorak-programmer";
     extraConfig.services.xserver.layout = "us";
     extraConfig.services.xserver.xkbVariant = "dvp";
   };
@@ -156,6 +176,7 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
       layer3.expect = [ "{"           "}"                     ];
     };
 
+    extraConfig.console.keyMap = "neo";
     extraConfig.services.xserver.layout = "de";
     extraConfig.services.xserver.xkbVariant = "neo";
   };
diff --git a/nixpkgs/nixos/tests/libreswan.nix b/nixpkgs/nixos/tests/libreswan.nix
new file mode 100644
index 000000000000..17ae60af8eed
--- /dev/null
+++ b/nixpkgs/nixos/tests/libreswan.nix
@@ -0,0 +1,134 @@
+# This test sets up a host-to-host IPsec VPN between Alice and Bob, each on its
+# own network and with Eve as the only route between each other. We check that
+# Eve can eavesdrop the plaintext traffic between Alice and Bob, but once they
+# enable the secure tunnel Eve's spying becomes ineffective.
+
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+let
+
+  # IPsec tunnel between Alice and Bob
+  tunnelConfig = {
+    services.libreswan.enable = true;
+    services.libreswan.connections.tunnel =
+      ''
+        leftid=@alice
+        left=fd::a
+        rightid=@bob
+        right=fd::b
+        authby=secret
+        auto=add
+      '';
+    environment.etc."ipsec.d/tunnel.secrets" =
+      { text = ''@alice @bob : PSK "j1JbIi9WY07rxwcNQ6nbyThKCf9DGxWOyokXIQcAQUnafsNTUJxfsxwk9WYK8fHj"'';
+        mode = "600";
+      };
+  };
+
+  # Common network setup
+  baseNetwork = {
+    # shared hosts file
+    extraHosts = lib.mkVMOverride ''
+      fd::a alice
+      fd::b bob
+      fd::e eve
+    '';
+    # remove all automatic addresses
+    useDHCP = false;
+    interfaces.eth1.ipv4.addresses = lib.mkVMOverride [];
+    interfaces.eth2.ipv4.addresses = lib.mkVMOverride [];
+    # open a port for testing
+    firewall.allowedUDPPorts = [ 1234 ];
+  };
+
+  # Adds an address and route from a to b via Eve
+  addRoute = a: b: {
+    interfaces.eth1.ipv6.addresses =
+      [ { address = a; prefixLength = 64; } ];
+    interfaces.eth1.ipv6.routes =
+      [ { address = b; prefixLength = 128; via = "fd::e"; } ];
+  };
+
+in
+
+{
+  name = "libreswan";
+  meta = with lib.maintainers; {
+    maintainers = [ rnhmjoj ];
+  };
+
+  # Our protagonist
+  nodes.alice = { ... }: {
+    virtualisation.vlans = [ 1 ];
+    networking = baseNetwork // addRoute "fd::a" "fd::b";
+  } // tunnelConfig;
+
+  # Her best friend
+  nodes.bob = { ... }: {
+    virtualisation.vlans = [ 2 ];
+    networking = baseNetwork // addRoute "fd::b" "fd::a";
+  } // tunnelConfig;
+
+  # The malicious network operator
+  nodes.eve = { ... }: {
+    virtualisation.vlans = [ 1 2 ];
+    networking = lib.mkMerge
+      [ baseNetwork
+        { interfaces.br0.ipv6.addresses =
+            [ { address = "fd::e"; prefixLength = 64; } ];
+          bridges.br0.interfaces = [ "eth1" "eth2" ];
+        }
+      ];
+    environment.systemPackages = [ pkgs.tcpdump ];
+    boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
+  };
+
+  testScript =
+    ''
+      def alice_to_bob(msg: str):
+          """
+          Sends a message as Alice to Bob
+          """
+          bob.execute("nc -lu ::0 1234 >/tmp/msg &")
+          alice.sleep(1)
+          alice.succeed(f"echo '{msg}' | nc -uw 0 bob 1234")
+          bob.succeed(f"grep '{msg}' /tmp/msg")
+
+
+      def eavesdrop():
+          """
+          Starts eavesdropping on Alice and Bob
+          """
+          match = "src host alice and dst host bob"
+          eve.execute(f"tcpdump -i br0 -c 1 -Avv {match} >/tmp/log &")
+
+
+      start_all()
+
+      with subtest("Network is up"):
+          alice.wait_until_succeeds("ping -c1 bob")
+
+      with subtest("Eve can eavesdrop cleartext traffic"):
+          eavesdrop()
+          alice_to_bob("I secretly love turnip")
+          eve.sleep(1)
+          eve.succeed("grep turnip /tmp/log")
+
+      with subtest("Libreswan is ready"):
+          alice.wait_for_unit("ipsec")
+          bob.wait_for_unit("ipsec")
+          alice.succeed("ipsec verify 1>&2")
+
+      with subtest("Alice and Bob can start the tunnel"):
+          alice.execute("ipsec auto --start tunnel &")
+          bob.succeed("ipsec auto --start tunnel")
+          # apparently this is needed to "wake" the tunnel
+          bob.execute("ping -c1 alice")
+
+      with subtest("Eve no longer can eavesdrop"):
+          eavesdrop()
+          alice_to_bob("Just kidding, I actually like rhubarb")
+          eve.sleep(1)
+          eve.fail("grep rhubarb /tmp/log")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/lightdm.nix b/nixpkgs/nixos/tests/lightdm.nix
index 9611bdbdafec..e98230ecb179 100644
--- a/nixpkgs/nixos/tests/lightdm.nix
+++ b/nixpkgs/nixos/tests/lightdm.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix ({ pkgs, ...} : {
   name = "lightdm";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ aszlig worldofpeace ];
+    maintainers = [ aszlig ];
   };
 
   machine = { ... }: {
diff --git a/nixpkgs/nixos/tests/lxd.nix b/nixpkgs/nixos/tests/lxd.nix
index ab56b75c02e4..889ca9598e3f 100644
--- a/nixpkgs/nixos/tests/lxd.nix
+++ b/nixpkgs/nixos/tests/lxd.nix
@@ -96,6 +96,7 @@ in {
         ## limits.cpu ##
 
         machine.succeed("lxc config set test limits.cpu 1")
+        machine.succeed("lxc restart test")
 
         # Since Alpine doesn't have `nproc` pre-installed, we've gotta resort
         # to the primal methods
@@ -105,6 +106,7 @@ in {
         )
 
         machine.succeed("lxc config set test limits.cpu 2")
+        machine.succeed("lxc restart test")
 
         assert (
             "2"
@@ -115,6 +117,7 @@ in {
         ## limits.memory ##
 
         machine.succeed("lxc config set test limits.memory 64MB")
+        machine.succeed("lxc restart test")
 
         assert (
             "MemTotal:          62500 kB"
@@ -122,6 +125,7 @@ in {
         )
 
         machine.succeed("lxc config set test limits.memory 128MB")
+        machine.succeed("lxc restart test")
 
         assert (
             "MemTotal:         125000 kB"
diff --git a/nixpkgs/nixos/tests/make-test-python.nix b/nixpkgs/nixos/tests/make-test-python.nix
index 89897fe7e61b..7a96f538d8d7 100644
--- a/nixpkgs/nixos/tests/make-test-python.nix
+++ b/nixpkgs/nixos/tests/make-test-python.nix
@@ -1,6 +1,6 @@
 f: {
   system ? builtins.currentSystem,
-  pkgs ? import ../.. { inherit system; config = {}; },
+  pkgs ? import ../.. { inherit system; },
   ...
 } @ args:
 
diff --git a/nixpkgs/nixos/tests/matomo.nix b/nixpkgs/nixos/tests/matomo.nix
index 2bea237c8bdd..f6b0845749cd 100644
--- a/nixpkgs/nixos/tests/matomo.nix
+++ b/nixpkgs/nixos/tests/matomo.nix
@@ -18,7 +18,7 @@ let
       };
       services.mysql = {
         enable = true;
-        package = pkgs.mysql;
+        package = pkgs.mariadb;
       };
       services.nginx.enable = true;
     };
diff --git a/nixpkgs/nixos/tests/minecraft-server.nix b/nixpkgs/nixos/tests/minecraft-server.nix
index e6e0bca972a9..dbe2cd6d56fe 100644
--- a/nixpkgs/nixos/tests/minecraft-server.nix
+++ b/nixpkgs/nixos/tests/minecraft-server.nix
@@ -24,7 +24,7 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
       };
     };
 
-    virtualisation.memorySize = 2048;
+    virtualisation.memorySize = 2047;
   };
 
   testScript = ''
diff --git a/nixpkgs/nixos/tests/miniflux.nix b/nixpkgs/nixos/tests/miniflux.nix
index 797a2787d1aa..9a25a9e77cc9 100644
--- a/nixpkgs/nixos/tests/miniflux.nix
+++ b/nixpkgs/nixos/tests/miniflux.nix
@@ -48,23 +48,23 @@ with lib;
 
     default.wait_for_unit("miniflux.service")
     default.wait_for_open_port(${toString defaultPort})
-    default.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK")
+    default.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep OK")
     default.succeed(
-        "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'"
+        "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'"
     )
 
     withoutSudo.wait_for_unit("miniflux.service")
     withoutSudo.wait_for_open_port(${toString defaultPort})
-    withoutSudo.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep -q OK")
+    withoutSudo.succeed("curl --fail 'http://localhost:${toString defaultPort}/healthcheck' | grep OK")
     withoutSudo.succeed(
-        "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep -q '\"is_admin\":true'"
+        "curl 'http://localhost:${toString defaultPort}/v1/me' -u '${defaultUsername}:${defaultPassword}' -H Content-Type:application/json | grep '\"is_admin\":true'"
     )
 
     customized.wait_for_unit("miniflux.service")
     customized.wait_for_open_port(${toString port})
-    customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep -q OK")
+    customized.succeed("curl --fail 'http://localhost:${toString port}/healthcheck' | grep OK")
     customized.succeed(
-        "curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep -q '\"is_admin\":true'"
+        "curl 'http://localhost:${toString port}/v1/me' -u '${username}:${password}' -H Content-Type:application/json | grep '\"is_admin\":true'"
     )
   '';
 })
diff --git a/nixpkgs/nixos/tests/mosquitto.nix b/nixpkgs/nixos/tests/mosquitto.nix
index 308c1396013d..e29bd559ed9b 100644
--- a/nixpkgs/nixos/tests/mosquitto.nix
+++ b/nixpkgs/nixos/tests/mosquitto.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
 
 let
   port = 1888;
@@ -30,6 +30,9 @@ in {
           ];
         };
       };
+
+      # disable private /tmp for this test
+      systemd.services.mosquitto.serviceConfig.PrivateTmp = lib.mkForce false;
     };
 
     client1 = client;
diff --git a/nixpkgs/nixos/tests/mysql/mysql-autobackup.nix b/nixpkgs/nixos/tests/mysql/mysql-autobackup.nix
index 65576e52a537..b0ec7daaf054 100644
--- a/nixpkgs/nixos/tests/mysql/mysql-autobackup.nix
+++ b/nixpkgs/nixos/tests/mysql/mysql-autobackup.nix
@@ -8,7 +8,7 @@ import ./../make-test-python.nix ({ pkgs, lib, ... }:
     { pkgs, ... }:
     {
       services.mysql.enable = true;
-      services.mysql.package = pkgs.mysql;
+      services.mysql.package = pkgs.mariadb;
       services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
 
       services.automysqlbackup.enable = true;
diff --git a/nixpkgs/nixos/tests/mysql/mysql-backup.nix b/nixpkgs/nixos/tests/mysql/mysql-backup.nix
index d428fb6c16e6..269fddc66e1d 100644
--- a/nixpkgs/nixos/tests/mysql/mysql-backup.nix
+++ b/nixpkgs/nixos/tests/mysql/mysql-backup.nix
@@ -10,7 +10,7 @@ import ./../make-test-python.nix ({ pkgs, ... } : {
       services.mysql = {
         enable = true;
         initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
-        package = pkgs.mysql;
+        package = pkgs.mariadb;
       };
 
       services.mysqlBackup = {
diff --git a/nixpkgs/nixos/tests/mysql/mysql-replication.nix b/nixpkgs/nixos/tests/mysql/mysql-replication.nix
index ad84c801ea10..a52372ca47ce 100644
--- a/nixpkgs/nixos/tests/mysql/mysql-replication.nix
+++ b/nixpkgs/nixos/tests/mysql/mysql-replication.nix
@@ -17,7 +17,7 @@ in
 
       {
         services.mysql.enable = true;
-        services.mysql.package = pkgs.mysql;
+        services.mysql.package = pkgs.mariadb;
         services.mysql.replication.role = "master";
         services.mysql.replication.slaveHost = "%";
         services.mysql.replication.masterUser = replicateUser;
@@ -31,7 +31,7 @@ in
 
       {
         services.mysql.enable = true;
-        services.mysql.package = pkgs.mysql;
+        services.mysql.package = pkgs.mariadb;
         services.mysql.replication.role = "slave";
         services.mysql.replication.serverId = 2;
         services.mysql.replication.masterHost = nodes.master.config.networking.hostName;
@@ -44,7 +44,7 @@ in
 
       {
         services.mysql.enable = true;
-        services.mysql.package = pkgs.mysql;
+        services.mysql.package = pkgs.mariadb;
         services.mysql.replication.role = "slave";
         services.mysql.replication.serverId = 3;
         services.mysql.replication.masterHost = nodes.master.config.networking.hostName;
diff --git a/nixpkgs/nixos/tests/networking.nix b/nixpkgs/nixos/tests/networking.nix
index 1ea61f99a951..c8756207f27b 100644
--- a/nixpkgs/nixos/tests/networking.nix
+++ b/nixpkgs/nixos/tests/networking.nix
@@ -511,7 +511,7 @@ let
             machine.sleep(10)
             residue = machine.succeed("ip tuntap list")
             assert (
-                residue is ""
+                residue == ""
             ), "Some virtual interface has not been properly cleaned:\n{}".format(residue)
       '';
     };
@@ -665,10 +665,10 @@ let
             ipv4Residue = machine.succeed("ip -4 route list dev eth0 | head -n-3").strip()
             ipv6Residue = machine.succeed("ip -6 route list dev eth0 | head -n-3").strip()
             assert (
-                ipv4Residue is ""
+                ipv4Residue == ""
             ), "The IPv4 routing table has not been properly cleaned:\n{}".format(ipv4Residue)
             assert (
-                ipv6Residue is ""
+                ipv6Residue == ""
             ), "The IPv6 routing table has not been properly cleaned:\n{}".format(ipv6Residue)
       '';
     };
diff --git a/nixpkgs/nixos/tests/nfs/kerberos.nix b/nixpkgs/nixos/tests/nfs/kerberos.nix
index 75d1210496b0..5684131f671b 100644
--- a/nixpkgs/nixos/tests/nfs/kerberos.nix
+++ b/nixpkgs/nixos/tests/nfs/kerberos.nix
@@ -88,8 +88,8 @@ in
           "kdb5_util create -s -r NFS.TEST -P master_key",
           "systemctl restart kadmind.service kdc.service",
       )
-      server.wait_for_unit(f"kadmind.service")
-      server.wait_for_unit(f"kdc.service")
+      server.wait_for_unit("kadmind.service")
+      server.wait_for_unit("kdc.service")
 
       # create principals
       server.succeed(
@@ -102,8 +102,8 @@ in
       # add principals to server keytab
       server.succeed("kadmin.local ktadd nfs/server.nfs.test")
       server.succeed("systemctl start rpc-gssd.service rpc-svcgssd.service")
-      server.wait_for_unit(f"rpc-gssd.service")
-      server.wait_for_unit(f"rpc-svcgssd.service")
+      server.wait_for_unit("rpc-gssd.service")
+      server.wait_for_unit("rpc-svcgssd.service")
 
       client.wait_for_unit("network-online.target")
 
diff --git a/nixpkgs/nixos/tests/nginx-variants.nix b/nixpkgs/nixos/tests/nginx-variants.nix
index ca4655391bc5..a535030663bd 100644
--- a/nixpkgs/nixos/tests/nginx-variants.nix
+++ b/nixpkgs/nixos/tests/nginx-variants.nix
@@ -29,5 +29,5 @@ builtins.listToAttrs (
         };
       }
     )
-    [ "nginxStable" "nginxUnstable" "nginxShibboleth" "openresty" "tengine" ]
+    [ "nginxStable" "nginxMainline" "nginxShibboleth" "openresty" "tengine" ]
 )
diff --git a/nixpkgs/nixos/tests/nginx.nix b/nixpkgs/nixos/tests/nginx.nix
index 5686afcd043e..d9d073822a14 100644
--- a/nixpkgs/nixos/tests/nginx.nix
+++ b/nixpkgs/nixos/tests/nginx.nix
@@ -56,11 +56,11 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       };
 
       specialisation.reloadRestartSystem.configuration = {
-        services.nginx.package = pkgs.nginxUnstable;
+        services.nginx.package = pkgs.nginxMainline;
       };
 
       specialisation.reloadWithErrorsSystem.configuration = {
-        services.nginx.package = pkgs.nginxUnstable;
+        services.nginx.package = pkgs.nginxMainline;
         services.nginx.virtualHosts."!@$$(#*%".locations."~@#*$*!)".proxyPass = ";;;";
       };
     };
diff --git a/nixpkgs/nixos/tests/nixos-generate-config.nix b/nixpkgs/nixos/tests/nixos-generate-config.nix
index 7bf8d4da7b6d..1dadf4992ed0 100644
--- a/nixpkgs/nixos/tests/nixos-generate-config.nix
+++ b/nixpkgs/nixos/tests/nixos-generate-config.nix
@@ -14,7 +14,7 @@ import ./make-test-python.nix ({ lib, ... } : {
     system.nixos-generate-config.desktopConfiguration = [''
       # DESKTOP
       services.xserver.displayManager.gdm.enable = true;
-      services.xserver.desktopManager.gnome3.enable = true;
+      services.xserver.desktopManager.gnome.enable = true;
     ''];
   };
   testScript = ''
@@ -35,7 +35,7 @@ import ./make-test-python.nix ({ lib, ... } : {
 
     # Test if the Perl variable $desktopConfiguration is spliced correctly
     machine.succeed(
-        "grep 'services\\.xserver\\.desktopManager\\.gnome3\\.enable = true;' /etc/nixos/configuration.nix"
+        "grep 'services\\.xserver\\.desktopManager\\.gnome\\.enable = true;' /etc/nixos/configuration.nix"
     )
   '';
 })
diff --git a/nixpkgs/nixos/tests/nsd.nix b/nixpkgs/nixos/tests/nsd.nix
index a558ee0a4254..7387f4f1dfa1 100644
--- a/nixpkgs/nixos/tests/nsd.nix
+++ b/nixpkgs/nixos/tests/nsd.nix
@@ -43,6 +43,10 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
       services.nsd.enable = true;
       services.nsd.rootServer = true;
       services.nsd.interfaces = lib.mkForce [];
+      services.nsd.keys."tsig.example.com." = {
+        algorithm = "hmac-sha256";
+        keyFile = pkgs.writeTextFile { name = "tsig.example.com."; text = "aR3FJA92+bxRSyosadsJ8Aeeav5TngQW/H/EF9veXbc="; };
+      };
       services.nsd.zones."example.com.".data = ''
         @ SOA ns.example.com noc.example.com 666 7200 3600 1209600 3600
         ipv4 A 1.2.3.4
@@ -51,6 +55,7 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
         ns A 192.168.0.1
         ns AAAA dead:beef::1
       '';
+      services.nsd.zones."example.com.".provideXFR = [ "0.0.0.0 tsig.example.com." ];
       services.nsd.zones."deleg.example.com.".data = ''
         @ SOA ns.example.com noc.example.com 666 7200 3600 1209600 3600
         @ A 9.8.7.6
@@ -71,6 +76,10 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
     clientv6.wait_for_unit("network.target")
     server.wait_for_unit("nsd.service")
 
+    with subtest("server tsig.example.com."):
+        expected_tsig = "  secret: \"aR3FJA92+bxRSyosadsJ8Aeeav5TngQW/H/EF9veXbc=\"\n"
+        tsig=server.succeed("cat /var/lib/nsd/private/tsig.example.com.")
+        assert expected_tsig == tsig, f"Expected /var/lib/nsd/private/tsig.example.com. to contain '{expected_tsig}', but found '{tsig}'"
 
     def assert_host(type, rr, query, expected):
         self = clientv4 if type == 4 else clientv6
diff --git a/nixpkgs/nixos/tests/oci-containers.nix b/nixpkgs/nixos/tests/oci-containers.nix
index 0dfc7ffb276b..68077e3540a5 100644
--- a/nixpkgs/nixos/tests/oci-containers.nix
+++ b/nixpkgs/nixos/tests/oci-containers.nix
@@ -12,7 +12,7 @@ let
     name = "oci-containers-${backend}";
 
     meta = {
-      maintainers = with lib.maintainers; [ adisbladis benley mkaito ];
+      maintainers = with lib.maintainers; [ adisbladis benley ] ++ lib.teams.serokell.members;
     };
 
     nodes = {
diff --git a/nixpkgs/nixos/tests/opensmtpd-rspamd.nix b/nixpkgs/nixos/tests/opensmtpd-rspamd.nix
new file mode 100644
index 000000000000..9cb2624e6c4e
--- /dev/null
+++ b/nixpkgs/nixos/tests/opensmtpd-rspamd.nix
@@ -0,0 +1,142 @@
+import ./make-test-python.nix {
+  name = "opensmtpd-rspamd";
+
+  nodes = {
+    smtp1 = { pkgs, ... }: {
+      imports = [ common/user-account.nix ];
+      networking = {
+        firewall.allowedTCPPorts = [ 25 143 ];
+        useDHCP = false;
+        interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+          { address = "192.168.1.1"; prefixLength = 24; }
+        ];
+      };
+      environment.systemPackages = [ pkgs.opensmtpd ];
+      services.opensmtpd = {
+        enable = true;
+        extraServerArgs = [ "-v" ];
+        serverConfiguration = ''
+          listen on 0.0.0.0
+          action dovecot_deliver mda \
+            "${pkgs.dovecot}/libexec/dovecot/deliver -d %{user.username}"
+          match from any for local action dovecot_deliver
+
+          action do_relay relay
+          # DO NOT DO THIS IN PRODUCTION!
+          # Setting up authentication requires a certificate which is painful in
+          # a test environment, but THIS WOULD BE DANGEROUS OUTSIDE OF A
+          # WELL-CONTROLLED ENVIRONMENT!
+          match from any for any action do_relay
+        '';
+      };
+      services.dovecot2 = {
+        enable = true;
+        enableImap = true;
+        mailLocation = "maildir:~/mail";
+        protocols = [ "imap" ];
+      };
+    };
+
+    smtp2 = { pkgs, ... }: {
+      imports = [ common/user-account.nix ];
+      virtualisation.memorySize = 512;
+      networking = {
+        firewall.allowedTCPPorts = [ 25 143 ];
+        useDHCP = false;
+        interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+          { address = "192.168.1.2"; prefixLength = 24; }
+        ];
+      };
+      environment.systemPackages = [ pkgs.opensmtpd ];
+      services.rspamd = {
+        enable = true;
+        locals."worker-normal.inc".text = ''
+          bind_socket = "127.0.0.1:11333";
+        '';
+      };
+      services.opensmtpd = {
+        enable = true;
+        extraServerArgs = [ "-v" ];
+        serverConfiguration = ''
+          filter rspamd proc-exec "${pkgs.opensmtpd-filter-rspamd}/bin/filter-rspamd"
+          listen on 0.0.0.0 filter rspamd
+          action dovecot_deliver mda \
+            "${pkgs.dovecot}/libexec/dovecot/deliver -d %{user.username}"
+          match from any for local action dovecot_deliver
+        '';
+      };
+      services.dovecot2 = {
+        enable = true;
+        enableImap = true;
+        mailLocation = "maildir:~/mail";
+        protocols = [ "imap" ];
+      };
+    };
+
+    client = { pkgs, ... }: {
+      networking = {
+        useDHCP = false;
+        interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+          { address = "192.168.1.3"; prefixLength = 24; }
+        ];
+      };
+      environment.systemPackages = let
+        sendTestMail = pkgs.writeScriptBin "send-a-test-mail" ''
+          #!${pkgs.python3.interpreter}
+          import smtplib, sys
+
+          with smtplib.SMTP('192.168.1.1') as smtp:
+            smtp.sendmail('alice@[192.168.1.1]', 'bob@[192.168.1.2]', """
+              From: alice@smtp1
+              To: bob@smtp2
+              Subject: Test
+
+              Hello World
+              Here goes the spam test
+              XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
+            """)
+        '';
+
+        checkMailBounced = pkgs.writeScriptBin "check-mail-bounced" ''
+          #!${pkgs.python3.interpreter}
+          import imaplib
+
+          with imaplib.IMAP4('192.168.1.1', 143) as imap:
+            imap.login('alice', 'foobar')
+            imap.select()
+            status, refs = imap.search(None, 'ALL')
+            assert status == 'OK'
+            assert len(refs) == 1
+            status, msg = imap.fetch(refs[0], 'BODY[TEXT]')
+            assert status == 'OK'
+            content = msg[0][1]
+            print("===> content:", content)
+            assert b"An error has occurred while attempting to deliver a message" in content
+        '';
+      in [ sendTestMail checkMailBounced ];
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    client.wait_for_unit("network-online.target")
+    smtp1.wait_for_unit("opensmtpd")
+    smtp2.wait_for_unit("opensmtpd")
+    smtp2.wait_for_unit("rspamd")
+    smtp2.wait_for_unit("dovecot2")
+
+    # To prevent sporadic failures during daemon startup, make sure
+    # services are listening on their ports before sending requests
+    smtp1.wait_for_open_port(25)
+    smtp2.wait_for_open_port(25)
+    smtp2.wait_for_open_port(143)
+    smtp2.wait_for_open_port(11333)
+
+    client.succeed("send-a-test-mail")
+    smtp1.wait_until_fails("smtpctl show queue | egrep .")
+    client.succeed("check-mail-bounced >&2")
+  '';
+
+  meta.timeout = 1800;
+}
diff --git a/nixpkgs/nixos/tests/os-prober.nix b/nixpkgs/nixos/tests/os-prober.nix
index f778d30bdc06..3cc38ebe3471 100644
--- a/nixpkgs/nixos/tests/os-prober.nix
+++ b/nixpkgs/nixos/tests/os-prober.nix
@@ -69,6 +69,9 @@ in {
       imports = [ ../modules/profiles/installation-device.nix
                   ../modules/profiles/base.nix ];
       virtualisation.memorySize = 1300;
+      # To add the secondary disk:
+      virtualisation.qemu.options = [ "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio" ];
+
       # The test cannot access the network, so any packages
       # nixos-rebuild needs must be included in the VM.
       system.extraDependencies = with pkgs;
@@ -95,11 +98,6 @@ in {
   });
 
   testScript = ''
-    # hack to add the secondary disk
-    os.environ[
-        "QEMU_OPTS"
-    ] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio"
-
     machine.start()
     machine.succeed("udevadm settle")
     machine.wait_for_unit("multi-user.target")
diff --git a/nixpkgs/nixos/tests/pinnwand.nix b/nixpkgs/nixos/tests/pinnwand.nix
index 0c583e1104de..0391c4133111 100644
--- a/nixpkgs/nixos/tests/pinnwand.nix
+++ b/nixpkgs/nixos/tests/pinnwand.nix
@@ -61,7 +61,7 @@ in
     client.wait_until_succeeds("ping -c1 server")
 
     # make sure pinnwand is listening
-    server.wait_until_succeeds("ss -lnp | grep ${toString port}")
+    server.wait_for_open_port(${toString port})
 
     # send the contents of /etc/machine-id
     response = client.succeed("steck paste /etc/machine-id")
@@ -75,6 +75,12 @@ in
         if line.startswith("Removal link:"):
             removal_link = line.split(":", 1)[1]
 
+
+    # start the reaper, it shouldn't do anything meaningful here
+    server.systemctl("start pinnwand-reaper.service")
+    server.wait_until_fails("systemctl is-active -q pinnwand-reaper.service")
+    server.log(server.execute("journalctl -u pinnwand-reaper -e --no-pager")[1])
+
     # check whether paste matches what we sent
     client.succeed(f"curl {raw_url} > /tmp/machine-id")
     client.succeed("diff /tmp/machine-id /etc/machine-id")
@@ -82,5 +88,7 @@ in
     # remove paste and check that it's not available any more
     client.succeed(f"curl {removal_link}")
     client.fail(f"curl --fail {raw_url}")
+
+    server.log(server.succeed("systemd-analyze security pinnwand"))
   '';
 })
diff --git a/nixpkgs/nixos/tests/plausible.nix b/nixpkgs/nixos/tests/plausible.nix
new file mode 100644
index 000000000000..45e11f0270e6
--- /dev/null
+++ b/nixpkgs/nixos/tests/plausible.nix
@@ -0,0 +1,46 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "plausible";
+  meta = with lib.maintainers; {
+    maintainers = [ ma27 ];
+  };
+
+  machine = { pkgs, ... }: {
+    virtualisation.memorySize = 4096;
+    services.plausible = {
+      enable = true;
+      adminUser = {
+        email = "admin@example.org";
+        passwordFile = "${pkgs.writeText "pwd" "foobar"}";
+        activate = true;
+      };
+      server = {
+        baseUrl = "http://localhost:8000";
+        secretKeybaseFile = "${pkgs.writeText "dont-try-this-at-home" "nannannannannannannannannannannannannannannannannannannan_batman!"}";
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("plausible.service")
+    machine.wait_for_open_port(8000)
+
+    machine.succeed("curl -f localhost:8000 >&2")
+
+    csrf_token = machine.succeed(
+        "curl -c /tmp/cookies localhost:8000/login | grep '_csrf_token' | sed -E 's,.*value=\"(.*)\".*,\\1,g'"
+    )
+
+    machine.succeed(
+        f"curl -b /tmp/cookies -f -X POST localhost:8000/login -F email=admin@example.org -F password=foobar -F _csrf_token={csrf_token.strip()} -D headers"
+    )
+
+    # By ensuring that the user is redirected to the dashboard after login, we
+    # also make sure that the automatic verification of the module works.
+    machine.succeed(
+        "[[ $(grep 'location: ' headers | cut -d: -f2- | xargs echo) == /sites* ]]"
+    )
+
+    machine.shutdown()
+  '';
+})
diff --git a/nixpkgs/nixos/tests/plotinus.nix b/nixpkgs/nixos/tests/plotinus.nix
index 39a4234dbf73..ddd6a4c11946 100644
--- a/nixpkgs/nixos/tests/plotinus.nix
+++ b/nixpkgs/nixos/tests/plotinus.nix
@@ -9,7 +9,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
     { imports = [ ./common/x11.nix ];
       programs.plotinus.enable = true;
-      environment.systemPackages = [ pkgs.gnome3.gnome-calculator pkgs.xdotool ];
+      environment.systemPackages = [ pkgs.gnome.gnome-calculator pkgs.xdotool ];
     };
 
   testScript = ''
diff --git a/nixpkgs/nixos/tests/podman-dnsname.nix b/nixpkgs/nixos/tests/podman-dnsname.nix
new file mode 100644
index 000000000000..dd352f754dcf
--- /dev/null
+++ b/nixpkgs/nixos/tests/podman-dnsname.nix
@@ -0,0 +1,42 @@
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+  let
+    inherit (pkgs) writeTextDir python3 curl;
+    webroot = writeTextDir "index.html" "<h1>Hi</h1>";
+  in
+  {
+    name = "podman-dnsname";
+    meta = {
+      maintainers = with lib.maintainers; [ roberth ] ++ lib.teams.podman.members;
+    };
+
+    nodes = {
+      podman = { pkgs, ... }: {
+        virtualisation.podman.enable = true;
+        virtualisation.podman.defaultNetwork.dnsname.enable = true;
+      };
+    };
+
+    testScript = ''
+      podman.wait_for_unit("sockets.target")
+
+      with subtest("DNS works"): # also tests inter-container tcp routing
+        podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
+        podman.succeed(
+          "podman run -d --name=webserver -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin -w ${webroot} scratchimg ${python3}/bin/python -m http.server 8000"
+        )
+        podman.succeed("podman ps | grep webserver")
+        podman.succeed("""
+          for i in `seq 0 120`; do
+            podman run --rm --name=client -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg ${curl}/bin/curl http://webserver:8000 >/dev/console \
+              && exit 0
+            sleep 0.5
+          done
+          exit 1
+        """)
+        podman.succeed("podman stop webserver")
+        podman.succeed("podman rm webserver")
+
+    '';
+  }
+)
diff --git a/nixpkgs/nixos/tests/podman-tls-ghostunnel.nix b/nixpkgs/nixos/tests/podman-tls-ghostunnel.nix
new file mode 100644
index 000000000000..0e687b199b26
--- /dev/null
+++ b/nixpkgs/nixos/tests/podman-tls-ghostunnel.nix
@@ -0,0 +1,150 @@
+/*
+  This test runs podman as a backend for the Docker CLI.
+ */
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+
+  let gen-ca = pkgs.writeScript "gen-ca" ''
+    # Create CA
+    PATH="${pkgs.openssl}/bin:$PATH"
+    openssl genrsa -out ca-key.pem 4096
+    openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -subj '/C=NL/ST=Zuid-Holland/L=The Hague/O=Stevige Balken en Planken B.V./OU=OpSec/CN=Certificate Authority' -out ca.pem
+
+    # Create service
+    openssl genrsa -out podman-key.pem 4096
+    openssl req -subj '/CN=podman' -sha256 -new -key podman-key.pem -out service.csr
+    echo subjectAltName = DNS:podman,IP:127.0.0.1 >> extfile.cnf
+    echo extendedKeyUsage = serverAuth >> extfile.cnf
+    openssl x509 -req -days 365 -sha256 -in service.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out podman-cert.pem -extfile extfile.cnf
+
+    # Create client
+    openssl genrsa -out client-key.pem 4096
+    openssl req -subj '/CN=client' -new -key client-key.pem -out client.csr
+    echo extendedKeyUsage = clientAuth > extfile-client.cnf
+    openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile-client.cnf
+
+    # Create CA 2
+    PATH="${pkgs.openssl}/bin:$PATH"
+    openssl genrsa -out ca-2-key.pem 4096
+    openssl req -new -x509 -days 365 -key ca-2-key.pem -sha256 -subj '/C=NL/ST=Zuid-Holland/L=The Hague/O=Stevige Balken en Planken B.V./OU=OpSec/CN=Certificate Authority' -out ca-2.pem
+
+    # Create client signed by CA 2
+    openssl genrsa -out client-2-key.pem 4096
+    openssl req -subj '/CN=client' -new -key client-2-key.pem -out client-2.csr
+    echo extendedKeyUsage = clientAuth > extfile-client.cnf
+    openssl x509 -req -days 365 -sha256 -in client-2.csr -CA ca-2.pem -CAkey ca-2-key.pem -CAcreateserial -out client-2-cert.pem -extfile extfile-client.cnf
+
+    '';
+  in
+  {
+    name = "podman-tls-ghostunnel";
+    meta = {
+      maintainers = lib.teams.podman.members ++ [ lib.maintainers.roberth ];
+    };
+
+    nodes = {
+      podman =
+        { pkgs, ... }:
+        {
+          virtualisation.podman.enable = true;
+          virtualisation.podman.dockerSocket.enable = true;
+          virtualisation.podman.networkSocket = {
+            enable = true;
+            openFirewall = true;
+            server = "ghostunnel";
+            tls.cert = "/root/podman-cert.pem";
+            tls.key = "/root/podman-key.pem";
+            tls.cacert = "/root/ca.pem";
+          };
+
+          environment.systemPackages = [
+            pkgs.docker-client
+          ];
+
+          users.users.alice = {
+            isNormalUser = true;
+            home = "/home/alice";
+            description = "Alice Foobar";
+            extraGroups = ["podman"];
+          };
+
+        };
+
+      client = { ... }: {
+        environment.systemPackages = [
+          # Installs the docker _client_ only
+          # Normally, you'd want `virtualisation.docker.enable = true;`.
+          pkgs.docker-client
+        ];
+        environment.variables.DOCKER_HOST = "podman:2376";
+        environment.variables.DOCKER_TLS_VERIFY = "1";
+      };
+    };
+
+    testScript = ''
+      import shlex
+
+
+      def su_cmd(user, cmd):
+          cmd = shlex.quote(cmd)
+          return f"su {user} -l -c {cmd}"
+
+      def cmd(command):
+        print(f"+{command}")
+        r = os.system(command)
+        if r != 0:
+          raise Exception(f"Command {command} failed with exit code {r}")
+
+      start_all()
+      cmd("${gen-ca}")
+
+      podman.copy_from_host("ca.pem", "/root/ca.pem")
+      podman.copy_from_host("podman-cert.pem", "/root/podman-cert.pem")
+      podman.copy_from_host("podman-key.pem", "/root/podman-key.pem")
+
+      client.copy_from_host("ca.pem", "/root/.docker/ca.pem")
+      # client.copy_from_host("podman-cert.pem", "/root/podman-cert.pem")
+      client.copy_from_host("client-cert.pem", "/root/.docker/cert.pem")
+      client.copy_from_host("client-key.pem", "/root/.docker/key.pem")
+
+      # TODO (ghostunnel): add file watchers so the restart isn't necessary
+      podman.succeed("systemctl reset-failed && systemctl restart ghostunnel-server-podman-socket.service")
+
+      podman.wait_for_unit("sockets.target")
+      podman.wait_for_unit("ghostunnel-server-podman-socket.service")
+
+      with subtest("Create default network"):
+          podman.succeed("docker network create default")
+
+      with subtest("Root docker cli also works"):
+          podman.succeed("docker version")
+
+      with subtest("A podman member can also still use the docker cli"):
+          podman.succeed(su_cmd("alice", "docker version"))
+
+      with subtest("Run container remotely via docker cli"):
+          client.succeed("docker version")
+
+          # via socket would be nicer
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
+
+          client.succeed(
+            "docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+          )
+          client.succeed("docker ps | grep sleeping")
+          podman.succeed("docker ps | grep sleeping")
+          client.succeed("docker stop sleeping")
+          client.succeed("docker rm sleeping")
+
+      with subtest("Clients without cert will be denied"):
+          client.succeed("rm /root/.docker/{cert,key}.pem")
+          client.fail("docker version")
+
+      with subtest("Clients with wrong cert will be denied"):
+          client.copy_from_host("client-2-cert.pem", "/root/.docker/cert.pem")
+          client.copy_from_host("client-2-key.pem", "/root/.docker/key.pem")
+          client.fail("docker version")
+
+    '';
+  }
+)
diff --git a/nixpkgs/nixos/tests/podman.nix b/nixpkgs/nixos/tests/podman.nix
index 6078a936edea..7eae575fd7f0 100644
--- a/nixpkgs/nixos/tests/podman.nix
+++ b/nixpkgs/nixos/tests/podman.nix
@@ -13,10 +13,23 @@ import ./make-test-python.nix (
         {
           virtualisation.podman.enable = true;
 
+          # To test docker socket support
+          virtualisation.podman.dockerSocket.enable = true;
+          environment.systemPackages = [
+            pkgs.docker-client
+          ];
+
           users.users.alice = {
             isNormalUser = true;
             home = "/home/alice";
             description = "Alice Foobar";
+            extraGroups = [ "podman" ];
+          };
+
+          users.users.mallory = {
+            isNormalUser = true;
+            home = "/home/mallory";
+            description = "Mallory Foobar";
           };
 
         };
@@ -26,9 +39,9 @@ import ./make-test-python.nix (
       import shlex
 
 
-      def su_cmd(cmd):
+      def su_cmd(cmd, user = "alice"):
           cmd = shlex.quote(cmd)
-          return f"su alice -l -c {cmd}"
+          return f"su {user} -l -c {cmd}"
 
 
       podman.wait_for_unit("sockets.target")
@@ -105,6 +118,27 @@ import ./make-test-python.nix (
           assert pid == "1"
           pid = podman.succeed("podman run --rm --init busybox readlink /proc/self").strip()
           assert pid == "2"
+
+      with subtest("A podman member can use the docker cli"):
+          podman.succeed(su_cmd("docker version"))
+
+      with subtest("Run container via docker cli"):
+          podman.succeed("docker network create default")
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
+          podman.succeed(
+            "docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+          )
+          podman.succeed("docker ps | grep sleeping")
+          podman.succeed("podman ps | grep sleeping")
+          podman.succeed("docker stop sleeping")
+          podman.succeed("docker rm sleeping")
+          podman.succeed("docker network rm default")
+
+      with subtest("A podman non-member can not use the docker cli"):
+          podman.fail(su_cmd("docker version", user="mallory"))
+
+      # TODO: add docker-compose test
+
     '';
   }
 )
diff --git a/nixpkgs/nixos/tests/pomerium.nix b/nixpkgs/nixos/tests/pomerium.nix
index 531b6212711f..7af828326448 100644
--- a/nixpkgs/nixos/tests/pomerium.nix
+++ b/nixpkgs/nixos/tests/pomerium.nix
@@ -88,15 +88,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
 
     with subtest("no authentication required"):
         pomerium.succeed(
-            "curl --resolve my.website:80:127.0.0.1 http://my.website | grep -q 'hello world'"
+            "curl --resolve my.website:80:127.0.0.1 http://my.website | grep 'hello world'"
         )
 
     with subtest("login required"):
         pomerium.succeed(
-            "curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep -q pom-auth"
+            "curl -I --resolve login.required:80:127.0.0.1 http://login.required | grep pom-auth"
         )
         pomerium.succeed(
-            "curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep -q 'hello I am login page'"
+            "curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep 'hello I am login page'"
         )
   '';
 })
diff --git a/nixpkgs/nixos/tests/printing.nix b/nixpkgs/nixos/tests/printing.nix
index 6a1801fb2884..badcb99a57af 100644
--- a/nixpkgs/nixos/tests/printing.nix
+++ b/nixpkgs/nixos/tests/printing.nix
@@ -50,7 +50,6 @@ in {
   testScript = ''
     import os
     import re
-    import sys
 
     start_all()
 
@@ -64,7 +63,7 @@ in {
     ):
         serviceClient.sleep(20)
         socketActivatedClient.wait_until_succeeds(
-            "systemctl status ensure-printers | grep -q -E 'code=exited, status=0/SUCCESS'"
+            "systemctl show ensure-printers | grep -q -E 'code=exited ; status=0'"
         )
 
 
diff --git a/nixpkgs/nixos/tests/prometheus-exporters.nix b/nixpkgs/nixos/tests/prometheus-exporters.nix
index 9aa430c25a4f..69a9a6b23218 100644
--- a/nixpkgs/nixos/tests/prometheus-exporters.nix
+++ b/nixpkgs/nixos/tests/prometheus-exporters.nix
@@ -1,65 +1,65 @@
 { system ? builtins.currentSystem
-, config ? {}
+, config ? { }
 , pkgs ? import ../.. { inherit system config; }
 }:
 
 let
   inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
   inherit (pkgs.lib) concatStringsSep maintainers mapAttrs mkMerge
-                     removeSuffix replaceChars singleton splitString;
+    removeSuffix replaceChars singleton splitString;
 
-/*
- * The attrset `exporterTests` contains one attribute
- * for each exporter test. Each of these attributes
- * is expected to be an attrset containing:
- *
- *  `exporterConfig`:
- *    this attribute set contains config for the exporter itself
- *
- *  `exporterTest`
- *    this attribute set contains test instructions
- *
- *  `metricProvider` (optional)
- *    this attribute contains additional machine config
- *
- *  `nodeName` (optional)
- *    override an incompatible testnode name
- *
- *  Example:
- *    exporterTests.<exporterName> = {
- *      exporterConfig = {
- *        enable = true;
- *      };
- *      metricProvider = {
- *        services.<metricProvider>.enable = true;
- *      };
- *      exporterTest = ''
- *        wait_for_unit("prometheus-<exporterName>-exporter.service")
- *        wait_for_open_port("1234")
- *        succeed("curl -sSf 'localhost:1234/metrics'")
- *      '';
- *    };
- *
- *  # this would generate the following test config:
- *
- *    nodes.<exporterName> = {
- *      services.prometheus.<exporterName> = {
- *        enable = true;
- *      };
- *      services.<metricProvider>.enable = true;
- *    };
- *
- *    testScript = ''
- *      <exporterName>.start()
- *      <exporterName>.wait_for_unit("prometheus-<exporterName>-exporter.service")
- *      <exporterName>.wait_for_open_port("1234")
- *      <exporterName>.succeed("curl -sSf 'localhost:1234/metrics'")
- *      <exporterName>.shutdown()
- *    '';
- */
+  /*
+    * The attrset `exporterTests` contains one attribute
+    * for each exporter test. Each of these attributes
+    * is expected to be an attrset containing:
+    *
+    *  `exporterConfig`:
+    *    this attribute set contains config for the exporter itself
+    *
+    *  `exporterTest`
+    *    this attribute set contains test instructions
+    *
+    *  `metricProvider` (optional)
+    *    this attribute contains additional machine config
+    *
+    *  `nodeName` (optional)
+    *    override an incompatible testnode name
+    *
+    *  Example:
+    *    exporterTests.<exporterName> = {
+    *      exporterConfig = {
+    *        enable = true;
+    *      };
+    *      metricProvider = {
+    *        services.<metricProvider>.enable = true;
+    *      };
+    *      exporterTest = ''
+    *        wait_for_unit("prometheus-<exporterName>-exporter.service")
+    *        wait_for_open_port("1234")
+    *        succeed("curl -sSf 'localhost:1234/metrics'")
+    *      '';
+    *    };
+    *
+    *  # this would generate the following test config:
+    *
+    *    nodes.<exporterName> = {
+    *      services.prometheus.<exporterName> = {
+    *        enable = true;
+    *      };
+    *      services.<metricProvider>.enable = true;
+    *    };
+    *
+    *    testScript = ''
+    *      <exporterName>.start()
+    *      <exporterName>.wait_for_unit("prometheus-<exporterName>-exporter.service")
+    *      <exporterName>.wait_for_open_port("1234")
+    *      <exporterName>.succeed("curl -sSf 'localhost:1234/metrics'")
+    *      <exporterName>.shutdown()
+    *    '';
+  */
 
   exporterTests = {
-     apcupsd = {
+    apcupsd = {
       exporterConfig = {
         enable = true;
       };
@@ -71,7 +71,7 @@ let
         wait_for_open_port(3551)
         wait_for_unit("prometheus-apcupsd-exporter.service")
         wait_for_open_port(9162)
-        succeed("curl -sSf http://localhost:9162/metrics | grep -q 'apcupsd_info'")
+        succeed("curl -sSf http://localhost:9162/metrics | grep 'apcupsd_info'")
       '';
     };
 
@@ -85,7 +85,7 @@ let
         wait_for_unit("prometheus-artifactory-exporter.service")
         wait_for_open_port(9531)
         succeed(
-            "curl -sSf http://localhost:9531/metrics | grep -q 'artifactory_up'"
+            "curl -sSf http://localhost:9531/metrics | grep 'artifactory_up'"
         )
       '';
     };
@@ -106,7 +106,7 @@ let
         wait_for_unit("prometheus-bind-exporter.service")
         wait_for_open_port(9119)
         succeed(
-            "curl -sSf http://localhost:9119/metrics | grep -q 'bind_query_recursions_total 0'"
+            "curl -sSf http://localhost:9119/metrics | grep 'bind_query_recursions_total 0'"
         )
       '';
     };
@@ -135,7 +135,7 @@ let
         wait_for_unit("prometheus-bird-exporter.service")
         wait_for_open_port(9324)
         wait_until_succeeds(
-            "curl -sSf http://localhost:9324/metrics | grep -q 'MyObviousTestString'"
+            "curl -sSf http://localhost:9324/metrics | grep 'MyObviousTestString'"
         )
       '';
     };
@@ -154,7 +154,7 @@ let
         wait_for_unit("prometheus-bitcoin-exporter.service")
         wait_for_unit("bitcoind-default.service")
         wait_for_open_port(9332)
-        succeed("curl -sSf http://localhost:9332/metrics | grep -q '^bitcoin_blocks '")
+        succeed("curl -sSf http://localhost:9332/metrics | grep '^bitcoin_blocks '")
       '';
     };
 
@@ -172,7 +172,7 @@ let
         wait_for_unit("prometheus-blackbox-exporter.service")
         wait_for_open_port(9115)
         succeed(
-            "curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep -q 'probe_success 1'"
+            "curl -sSf 'http://localhost:9115/probe?target=localhost&module=icmp_v6' | grep 'probe_success 1'"
         )
       '';
     };
@@ -192,20 +192,21 @@ let
           "plugin":"testplugin",
           "time":DATE
         }]
-        ''; in ''
-        wait_for_unit("prometheus-collectd-exporter.service")
-        wait_for_open_port(9103)
-        succeed(
-            'echo \'${postData}\'> /tmp/data.json'
-        )
-        succeed('sed -ie "s DATE $(date +%s) " /tmp/data.json')
-        succeed(
-            "curl -sSfH 'Content-Type: application/json' -X POST --data @/tmp/data.json localhost:9103/collectd"
-        )
-        succeed(
-            "curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'"
-        )
-      '';
+      ''; in
+        ''
+          wait_for_unit("prometheus-collectd-exporter.service")
+          wait_for_open_port(9103)
+          succeed(
+              'echo \'${postData}\'> /tmp/data.json'
+          )
+          succeed('sed -ie "s DATE $(date +%s) " /tmp/data.json')
+          succeed(
+              "curl -sSfH 'Content-Type: application/json' -X POST --data @/tmp/data.json localhost:9103/collectd"
+          )
+          succeed(
+              "curl -sSf localhost:9103/metrics | grep 'collectd_testplugin_gauge{instance=\"testhost\"} 23'"
+          )
+        '';
     };
 
     dnsmasq = {
@@ -219,7 +220,7 @@ let
       exporterTest = ''
         wait_for_unit("prometheus-dnsmasq-exporter.service")
         wait_for_open_port(9153)
-        succeed("curl -sSf http://localhost:9153/metrics | grep -q 'dnsmasq_leases 0'")
+        succeed("curl -sSf http://localhost:9153/metrics | grep 'dnsmasq_leases 0'")
       '';
     };
 
@@ -234,7 +235,7 @@ let
         wait_for_unit("prometheus-domain-exporter.service")
         wait_for_open_port(9222)
         succeed(
-            "curl -sSf 'http://localhost:9222/probe?target=nixos.org' | grep -q 'domain_probe_success 0'"
+            "curl -sSf 'http://localhost:9222/probe?target=nixos.org' | grep 'domain_probe_success 0'"
         )
       '';
     };
@@ -253,12 +254,13 @@ let
         wait_for_unit("prometheus-dovecot-exporter.service")
         wait_for_open_port(9166)
         succeed(
-            "curl -sSf http://localhost:9166/metrics | grep -q 'dovecot_up{scope=\"global\"} 1'"
+            "curl -sSf http://localhost:9166/metrics | grep 'dovecot_up{scope=\"global\"} 1'"
         )
       '';
     };
 
-    fritzbox = { # TODO add proper test case
+    fritzbox = {
+      # TODO add proper test case
       exporterConfig = {
         enable = true;
       };
@@ -266,7 +268,7 @@ let
         wait_for_unit("prometheus-fritzbox-exporter.service")
         wait_for_open_port(9133)
         succeed(
-            "curl -sSf http://localhost:9133/metrics | grep -q 'fritzbox_exporter_collect_errors 0'"
+            "curl -sSf http://localhost:9133/metrics | grep 'fritzbox_exporter_collect_errors 0'"
         )
       '';
     };
@@ -288,9 +290,9 @@ let
         wait_for_unit("prometheus-jitsi-exporter.service")
         wait_for_open_port(9700)
         wait_until_succeeds(
-            'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"'
+            'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep "key=participants"'
         )
-        succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'")
+        succeed("curl -sSf 'localhost:9700/metrics' | grep 'jitsi_participants 0'")
       '';
     };
 
@@ -300,7 +302,7 @@ let
         url = "http://localhost";
         configFile = pkgs.writeText "json-exporter-conf.json" (builtins.toJSON {
           metrics = [
-            { name = "json_test_metric"; path = "$.test"; }
+            { name = "json_test_metric"; path = "{ .test }"; }
           ];
         });
       };
@@ -319,7 +321,58 @@ let
         wait_for_unit("prometheus-json-exporter.service")
         wait_for_open_port(7979)
         succeed(
-            "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep -q 'json_test_metric 1'"
+            "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep 'json_test_metric 1'"
+        )
+      '';
+    };
+
+    kea = {
+      exporterConfig = {
+        enable = true;
+        controlSocketPaths = [
+          "/run/kea/kea-dhcp6.sock"
+        ];
+      };
+      metricProvider = {
+        users.users.kea = {
+          isSystemUser = true;
+        };
+        users.groups.kea = {};
+
+        systemd.services.prometheus-kea-exporter.after = [ "kea-dhcp6.service" ];
+
+        systemd.services.kea-dhcp6 = let
+          configFile = pkgs.writeText "kea-dhcp6.conf" (builtins.toJSON {
+            Dhcp6 = {
+              "control-socket" = {
+                "socket-type" = "unix";
+                "socket-name" = "/run/kea/kea-dhcp6.sock";
+              };
+            };
+          });
+        in
+        {
+          after = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+
+          serviceConfig = {
+            DynamicUser = false;
+            User = "kea";
+            Group = "kea";
+            ExecStart = "${pkgs.kea}/bin/kea-dhcp6 -c ${configFile}";
+            StateDirectory = "kea";
+            RuntimeDirectory = "kea";
+            UMask = "0007";
+          };
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("kea-dhcp6.service")
+        wait_for_file("/run/kea/kea-dhcp6.sock")
+        wait_for_unit("prometheus-kea-exporter.service")
+        wait_for_open_port(9547)
+        succeed(
+            "curl --fail localhost:9547/metrics | grep 'packets_received_total'"
         )
       '';
     };
@@ -332,13 +385,48 @@ let
         services.knot = {
           enable = true;
           extraArgs = [ "-v" ];
+          extraConfig = ''
+            server:
+              listen: 127.0.0.1@53
+
+            template:
+              - id: default
+                global-module: mod-stats
+                dnssec-signing: off
+                zonefile-sync: -1
+                journal-db: /var/lib/knot/journal
+                kasp-db: /var/lib/knot/kasp
+                timer-db: /var/lib/knot/timer
+                zonefile-load: difference
+                storage: ${pkgs.buildEnv {
+                  name = "foo";
+                  paths = [
+                    (pkgs.writeTextDir "test.zone" ''
+                      @ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
+                      @       NS      ns1
+                      @       NS      ns2
+                      ns1     A       192.168.0.1
+                    '')
+                  ];
+                }}
+
+            mod-stats:
+              - id: custom
+                edns-presence: on
+                query-type: on
+
+            zone:
+              - domain: test
+                file: test.zone
+                module: mod-stats/custom
+          '';
         };
       };
       exporterTest = ''
         wait_for_unit("knot.service")
         wait_for_unit("prometheus-knot-exporter.service")
         wait_for_open_port(9433)
-        succeed("curl -sSf 'localhost:9433' | grep -q 'knot_server_zone_count 0.0'")
+        succeed("curl -sSf 'localhost:9433' | grep 'knot_server_zone_count 1.0'")
       '';
     };
 
@@ -353,10 +441,10 @@ let
         wait_for_unit("prometheus-keylight-exporter.service")
         wait_for_open_port(9288)
         succeed(
-            "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep -q '400'"
+            "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep '400'"
         )
         succeed(
-            "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep -q '500'"
+            "curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep '500'"
         )
       '';
     };
@@ -369,27 +457,27 @@ let
       };
       metricProvider = {
         systemd.services.prometheus-lnd-exporter.serviceConfig.DynamicUser = false;
-        services.bitcoind.enable = true;
-        services.bitcoind.extraConfig = ''
+        services.bitcoind.main.enable = true;
+        services.bitcoind.main.extraConfig = ''
           rpcauth=bitcoinrpc:e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7
           bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
           bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
         '';
         systemd.services.lnd = {
           serviceConfig.ExecStart = ''
-          ${pkgs.lnd}/bin/lnd \
-            --datadir=/var/lib/lnd \
-            --tlscertpath=/var/lib/lnd/tls.cert \
-            --tlskeypath=/var/lib/lnd/tls.key \
-            --logdir=/var/log/lnd \
-            --bitcoin.active \
-            --bitcoin.mainnet \
-            --bitcoin.node=bitcoind \
-            --bitcoind.rpcuser=bitcoinrpc \
-            --bitcoind.rpcpass=hunter2 \
-            --bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 \
-            --bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 \
-            --readonlymacaroonpath=/var/lib/lnd/readonly.macaroon
+            ${pkgs.lnd}/bin/lnd \
+              --datadir=/var/lib/lnd \
+              --tlscertpath=/var/lib/lnd/tls.cert \
+              --tlskeypath=/var/lib/lnd/tls.key \
+              --logdir=/var/log/lnd \
+              --bitcoin.active \
+              --bitcoin.mainnet \
+              --bitcoin.node=bitcoind \
+              --bitcoind.rpcuser=bitcoinrpc \
+              --bitcoind.rpcpass=hunter2 \
+              --bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 \
+              --bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 \
+              --readonlymacaroonpath=/var/lib/lnd/readonly.macaroon
           '';
           serviceConfig.StateDirectory = "lnd";
           wantedBy = [ "multi-user.target" ];
@@ -401,7 +489,7 @@ let
         wait_for_open_port(10009)
         wait_for_unit("prometheus-lnd-exporter.service")
         wait_for_open_port(9092)
-        succeed("curl -sSf localhost:9092/metrics | grep -q '^promhttp_metric_handler'")
+        succeed("curl -sSf localhost:9092/metrics | grep '^promhttp_metric_handler'")
       '';
     };
 
@@ -411,14 +499,14 @@ let
         configuration = {
           monitoringInterval = "2s";
           mailCheckTimeout = "10s";
-          servers = [ {
+          servers = [{
             name = "testserver";
             server = "localhost";
             port = 25;
             from = "mail-exporter@localhost";
             to = "mail-exporter@localhost";
             detectionDir = "/var/spool/mail/mail-exporter/new";
-          } ];
+          }];
         };
       };
       metricProvider = {
@@ -443,7 +531,7 @@ let
         wait_for_unit("prometheus-mail-exporter.service")
         wait_for_open_port(9225)
         wait_until_succeeds(
-            "curl -sSf http://localhost:9225/metrics | grep -q 'mail_deliver_success{configname=\"testserver\"} 1'"
+            "curl -sSf http://localhost:9225/metrics | grep 'mail_deliver_success{configname=\"testserver\"} 1'"
         )
       '';
     };
@@ -483,7 +571,7 @@ let
         wait_for_unit("prometheus-mikrotik-exporter.service")
         wait_for_open_port(9436)
         succeed(
-            "curl -sSf http://localhost:9436/metrics | grep -q 'mikrotik_scrape_collector_success{device=\"router\"} 0'"
+            "curl -sSf http://localhost:9436/metrics | grep 'mikrotik_scrape_collector_success{device=\"router\"} 0'"
         )
       '';
     };
@@ -508,7 +596,7 @@ let
         wait_for_unit("prometheus-modemmanager-exporter.service")
         wait_for_open_port(9539)
         succeed(
-            "curl -sSf http://localhost:9539/metrics | grep -q 'modemmanager_info'"
+            "curl -sSf http://localhost:9539/metrics | grep 'modemmanager_info'"
         )
       '';
     };
@@ -520,15 +608,17 @@ let
         url = "http://localhost";
       };
       metricProvider = {
-        systemd.services.nc-pwfile = let
-          passfile = (pkgs.writeText "pwfile" "snakeoilpw");
-        in {
-          requiredBy = [ "prometheus-nextcloud-exporter.service" ];
-          before = [ "prometheus-nextcloud-exporter.service" ];
-          serviceConfig.ExecStart = ''
-            ${pkgs.coreutils}/bin/install -o nextcloud-exporter -m 0400 ${passfile} /var/nextcloud-pwfile
-          '';
-        };
+        systemd.services.nc-pwfile =
+          let
+            passfile = (pkgs.writeText "pwfile" "snakeoilpw");
+          in
+          {
+            requiredBy = [ "prometheus-nextcloud-exporter.service" ];
+            before = [ "prometheus-nextcloud-exporter.service" ];
+            serviceConfig.ExecStart = ''
+              ${pkgs.coreutils}/bin/install -o nextcloud-exporter -m 0400 ${passfile} /var/nextcloud-pwfile
+            '';
+          };
         services.nginx = {
           enable = true;
           virtualHosts."localhost" = {
@@ -544,7 +634,7 @@ let
         wait_for_unit("nginx.service")
         wait_for_unit("prometheus-nextcloud-exporter.service")
         wait_for_open_port(9205)
-        succeed("curl -sSf http://localhost:9205/metrics | grep -q 'nextcloud_up 1'")
+        succeed("curl -sSf http://localhost:9205/metrics | grep 'nextcloud_up 1'")
       '';
     };
 
@@ -563,7 +653,7 @@ let
         wait_for_unit("nginx.service")
         wait_for_unit("prometheus-nginx-exporter.service")
         wait_for_open_port(9113)
-        succeed("curl -sSf http://localhost:9113/metrics | grep -q 'nginx_up 1'")
+        succeed("curl -sSf http://localhost:9113/metrics | grep 'nginx_up 1'")
       '';
     };
 
@@ -585,7 +675,7 @@ let
                 syslog = {
                   listen_address = "udp://127.0.0.1:10000";
                   format = "rfc3164";
-                  tags = ["nginx"];
+                  tags = [ "nginx" ];
                 };
               };
             }
@@ -618,12 +708,12 @@ let
         succeed("curl http://localhost")
         execute("sleep 1")
         succeed(
-            "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep -q 1"
+            "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep 1"
         )
         succeed("curl http://localhost:81")
         execute("sleep 1")
         succeed(
-            "curl -sSf http://localhost:9117/metrics | grep 'syslogger_http_response_count_total' | grep -q 1"
+            "curl -sSf http://localhost:9117/metrics | grep 'syslogger_http_response_count_total' | grep 1"
         )
       '';
     };
@@ -636,7 +726,7 @@ let
         wait_for_unit("prometheus-node-exporter.service")
         wait_for_open_port(9100)
         succeed(
-            "curl -sSf http://localhost:9100/metrics | grep -q 'node_exporter_build_info{.\\+} 1'"
+            "curl -sSf http://localhost:9100/metrics | grep 'node_exporter_build_info{.\\+} 1'"
         )
       '';
     };
@@ -696,7 +786,7 @@ let
         wait_for_open_port(389)
         wait_for_open_port(9330)
         wait_until_succeeds(
-            "curl -sSf http://localhost:9330/metrics | grep -q 'openldap_scrape{result=\"ok\"} 1'"
+            "curl -sSf http://localhost:9330/metrics | grep 'openldap_scrape{result=\"ok\"} 1'"
         )
       '';
     };
@@ -705,10 +795,10 @@ let
       exporterConfig = {
         enable = true;
         group = "openvpn";
-        statusPaths = ["/run/openvpn-test"];
+        statusPaths = [ "/run/openvpn-test" ];
       };
       metricProvider = {
-        users.groups.openvpn = {};
+        users.groups.openvpn = { };
         services.openvpn.servers.test = {
           config = ''
             dev tun
@@ -722,7 +812,7 @@ let
       exporterTest = ''
         wait_for_unit("openvpn-test.service")
         wait_for_unit("prometheus-openvpn-exporter.service")
-        succeed("curl -sSf http://localhost:9176/metrics | grep -q 'openvpn_up{.*} 1'")
+        succeed("curl -sSf http://localhost:9176/metrics | grep 'openvpn_up{.*} 1'")
       '';
     };
 
@@ -738,9 +828,9 @@ let
         wait_for_file("/var/lib/postfix/queue/public/showq")
         wait_for_open_port(9154)
         succeed(
-            "curl -sSf http://localhost:9154/metrics | grep -q 'postfix_smtpd_connects_total 0'"
+            "curl -sSf http://localhost:9154/metrics | grep 'postfix_smtpd_connects_total 0'"
         )
-        succeed("curl -sSf http://localhost:9154/metrics | grep -q 'postfix_up{.*} 1'")
+        succeed("curl -sSf http://localhost:9154/metrics | grep 'postfix_up{.*} 1'")
       '';
     };
 
@@ -757,20 +847,39 @@ let
         wait_for_open_port(9187)
         wait_for_unit("postgresql.service")
         succeed(
-            "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'"
+            "curl -sSf http://localhost:9187/metrics | grep 'pg_exporter_last_scrape_error 0'"
         )
-        succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'")
+        succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 1'")
         systemctl("stop postgresql.service")
         succeed(
-            "curl -sSf http://localhost:9187/metrics | grep -qv 'pg_exporter_last_scrape_error 0'"
+            "curl -sSf http://localhost:9187/metrics | grep -v 'pg_exporter_last_scrape_error 0'"
         )
-        succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 0'")
+        succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 0'")
         systemctl("start postgresql.service")
         wait_for_unit("postgresql.service")
         succeed(
-            "curl -sSf http://localhost:9187/metrics | grep -q 'pg_exporter_last_scrape_error 0'"
+            "curl -sSf http://localhost:9187/metrics | grep 'pg_exporter_last_scrape_error 0'"
+        )
+        succeed("curl -sSf http://localhost:9187/metrics | grep 'pg_up 1'")
+      '';
+    };
+
+    process = {
+      exporterConfig = {
+        enable = true;
+        settings.process_names = [
+          # Remove nix store path from process name
+          { name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P<Wrapped>[^ /]*) (?P<Args>.*)" ]; }
+        ];
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-process-exporter.service")
+        wait_for_open_port(9256)
+        wait_until_succeeds(
+            "curl -sSf localhost:9256/metrics | grep -q '{}'".format(
+                'namedprocess_namegroup_cpu_seconds_total{groupname="process-exporter '
+            )
         )
-        succeed("curl -sSf http://localhost:9187/metrics | grep -q 'pg_up 1'")
       '';
     };
 
@@ -784,7 +893,7 @@ let
         wait_for_unit("prometheus-py-air-control-exporter.service")
         wait_for_open_port(9896)
         succeed(
-            "curl -sSf http://localhost:9896/metrics | grep -q 'py_air_control_sampling_error_total'"
+            "curl -sSf http://localhost:9896/metrics | grep 'py_air_control_sampling_error_total'"
         )
       '';
     };
@@ -799,7 +908,7 @@ let
         wait_for_unit("prometheus-redis-exporter.service")
         wait_for_open_port(6379)
         wait_for_open_port(9121)
-        wait_until_succeeds("curl -sSf localhost:9121/metrics | grep -q 'redis_up 1'")
+        wait_until_succeeds("curl -sSf localhost:9121/metrics | grep 'redis_up 1'")
       '';
     };
 
@@ -817,7 +926,7 @@ let
         wait_for_open_port(11334)
         wait_for_open_port(7980)
         wait_until_succeeds(
-            "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'"
+            "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep 'rspamd_scanned{host=\"rspamd\"} 0'"
         )
       '';
     };
@@ -828,46 +937,66 @@ let
       };
       metricProvider = {
         # Mock rtl_433 binary to return a dummy metric stream.
-        nixpkgs.overlays = [ (self: super: {
-          rtl_433 = self.runCommand "rtl_433" {} ''
-            mkdir -p "$out/bin"
-            cat <<EOF > "$out/bin/rtl_433"
-            #!/bin/sh
-            while true; do
-              printf '{"time" : "2020-04-26 13:37:42", "model" : "zopieux", "id" : 55, "channel" : 3, "temperature_C" : 18.000}\n'
-              sleep 4
-            done
-            EOF
-            chmod +x "$out/bin/rtl_433"
-          '';
-        }) ];
+        nixpkgs.overlays = [
+          (self: super: {
+            rtl_433 = self.runCommand "rtl_433" { } ''
+              mkdir -p "$out/bin"
+              cat <<EOF > "$out/bin/rtl_433"
+              #!/bin/sh
+              while true; do
+                printf '{"time" : "2020-04-26 13:37:42", "model" : "zopieux", "id" : 55, "channel" : 3, "temperature_C" : 18.000}\n'
+                sleep 4
+              done
+              EOF
+              chmod +x "$out/bin/rtl_433"
+            '';
+          })
+        ];
       };
       exporterTest = ''
         wait_for_unit("prometheus-rtl_433-exporter.service")
         wait_for_open_port(9550)
         wait_until_succeeds(
-            "curl -sSf localhost:9550/metrics | grep -q '{}'".format(
+            "curl -sSf localhost:9550/metrics | grep '{}'".format(
                 'rtl_433_temperature_celsius{channel="3",id="55",location="",model="zopieux"} 18'
             )
         )
       '';
     };
 
+    script = {
+      exporterConfig = {
+        enable = true;
+        settings.scripts = [
+          { name = "success"; script = "sleep 1"; }
+        ];
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-script-exporter.service")
+        wait_for_open_port(9172)
+        wait_until_succeeds(
+            "curl -sSf 'localhost:9172/probe?name=success' | grep -q '{}'".format(
+                'script_success{script="success"} 1'
+            )
+        )
+      '';
+    };
+
     smokeping = {
       exporterConfig = {
         enable = true;
-        hosts = ["127.0.0.1"];
+        hosts = [ "127.0.0.1" ];
       };
       exporterTest = ''
         wait_for_unit("prometheus-smokeping-exporter.service")
         wait_for_open_port(9374)
         wait_until_succeeds(
-            "curl -sSf localhost:9374/metrics | grep '{}' | grep -qv ' 0$'".format(
+            "curl -sSf localhost:9374/metrics | grep '{}' | grep -v ' 0$'".format(
                 'smokeping_requests_total{host="127.0.0.1",ip="127.0.0.1"} '
             )
         )
         wait_until_succeeds(
-            "curl -sSf localhost:9374/metrics | grep -q '{}'".format(
+            "curl -sSf localhost:9374/metrics | grep '{}'".format(
                 'smokeping_response_ttl{host="127.0.0.1",ip="127.0.0.1"}'
             )
         )
@@ -885,7 +1014,7 @@ let
       exporterTest = ''
         wait_for_unit("prometheus-snmp-exporter.service")
         wait_for_open_port(9116)
-        succeed("curl -sSf localhost:9116/metrics | grep -q 'snmp_request_errors_total 0'")
+        succeed("curl -sSf localhost:9116/metrics | grep 'snmp_request_errors_total 0'")
       '';
     };
 
@@ -929,7 +1058,7 @@ let
       exporterTest = ''
         wait_for_unit("prometheus-sql-exporter.service")
         wait_for_open_port(9237)
-        succeed("curl http://localhost:9237/metrics | grep -c 'sql_points{' | grep -q 2")
+        succeed("curl http://localhost:9237/metrics | grep -c 'sql_points{' | grep 2")
       '';
     };
 
@@ -952,7 +1081,7 @@ let
         wait_for_open_port(80)
         wait_for_unit("prometheus-surfboard-exporter.service")
         wait_for_open_port(9239)
-        succeed("curl -sSf localhost:9239/metrics | grep -q 'surfboard_up 1'")
+        succeed("curl -sSf localhost:9239/metrics | grep 'surfboard_up 1'")
       '';
     };
 
@@ -965,7 +1094,7 @@ let
         wait_for_unit("prometheus-systemd-exporter.service")
         wait_for_open_port(9558)
         succeed(
-            "curl -sSf localhost:9558/metrics | grep -q '{}'".format(
+            "curl -sSf localhost:9558/metrics | grep '{}'".format(
                 'systemd_unit_state{name="basic.target",state="active",type="target"} 1'
             )
         )
@@ -980,30 +1109,53 @@ let
         # Note: this does not connect the test environment to the Tor network.
         # Client, relay, bridge or exit connectivity are disabled by default.
         services.tor.enable = true;
-        services.tor.controlPort = 9051;
+        services.tor.settings.ControlPort = 9051;
       };
       exporterTest = ''
         wait_for_unit("tor.service")
         wait_for_open_port(9051)
         wait_for_unit("prometheus-tor-exporter.service")
         wait_for_open_port(9130)
-        succeed("curl -sSf localhost:9130/metrics | grep -q 'tor_version{.\\+} 1'")
+        succeed("curl -sSf localhost:9130/metrics | grep 'tor_version{.\\+} 1'")
       '';
     };
 
     unifi-poller = {
       nodeName = "unifi_poller";
       exporterConfig.enable = true;
-      exporterConfig.controllers = [ { } ];
+      exporterConfig.controllers = [{ }];
       exporterTest = ''
         wait_for_unit("prometheus-unifi-poller-exporter.service")
         wait_for_open_port(9130)
         succeed(
-            "curl -sSf localhost:9130/metrics | grep -q 'unifipoller_build_info{.\\+} 1'"
+            "curl -sSf localhost:9130/metrics | grep 'unifipoller_build_info{.\\+} 1'"
         )
       '';
     };
 
+    unbound = {
+      exporterConfig = {
+        enable = true;
+        fetchType = "uds";
+        controlInterface = "/run/unbound/unbound.ctl";
+      };
+      metricProvider = {
+        services.unbound = {
+          enable = true;
+          localControlSocketPath = "/run/unbound/unbound.ctl";
+        };
+        systemd.services.prometheus-unbound-exporter.serviceConfig = {
+          SupplementaryGroups = [ "unbound" ];
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("unbound.service")
+        wait_for_unit("prometheus-unbound-exporter.service")
+        wait_for_open_port(9167)
+        succeed("curl -sSf localhost:9167/metrics | grep 'unbound_up 1'")
+      '';
+    };
+
     varnish = {
       exporterConfig = {
         enable = true;
@@ -1029,58 +1181,64 @@ let
         wait_for_unit("prometheus-varnish-exporter.service")
         wait_for_open_port(6081)
         wait_for_open_port(9131)
-        succeed("curl -sSf http://localhost:9131/metrics | grep -q 'varnish_up 1'")
+        succeed("curl -sSf http://localhost:9131/metrics | grep 'varnish_up 1'")
       '';
     };
 
-    wireguard = let snakeoil = import ./wireguard/snakeoil-keys.nix; in {
-      exporterConfig.enable = true;
-      metricProvider = {
-        networking.wireguard.interfaces.wg0 = {
-          ips = [ "10.23.42.1/32" "fc00::1/128" ];
-          listenPort = 23542;
+    wireguard = let snakeoil = import ./wireguard/snakeoil-keys.nix; in
+      {
+        exporterConfig.enable = true;
+        metricProvider = {
+          networking.wireguard.interfaces.wg0 = {
+            ips = [ "10.23.42.1/32" "fc00::1/128" ];
+            listenPort = 23542;
 
-          inherit (snakeoil.peer0) privateKey;
+            inherit (snakeoil.peer0) privateKey;
 
-          peers = singleton {
-            allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ];
+            peers = singleton {
+              allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ];
 
-            inherit (snakeoil.peer1) publicKey;
+              inherit (snakeoil.peer1) publicKey;
+            };
           };
+          systemd.services.prometheus-wireguard-exporter.after = [ "wireguard-wg0.service" ];
         };
-        systemd.services.prometheus-wireguard-exporter.after = [ "wireguard-wg0.service" ];
+        exporterTest = ''
+          wait_for_unit("prometheus-wireguard-exporter.service")
+          wait_for_open_port(9586)
+          wait_until_succeeds(
+              "curl -sSf http://localhost:9586/metrics | grep '${snakeoil.peer1.publicKey}'"
+          )
+        '';
       };
-      exporterTest = ''
-        wait_for_unit("prometheus-wireguard-exporter.service")
-        wait_for_open_port(9586)
-        wait_until_succeeds(
-            "curl -sSf http://localhost:9586/metrics | grep '${snakeoil.peer1.publicKey}'"
-        )
-      '';
-    };
   };
 in
-mapAttrs (exporter: testConfig: (makeTest (let
-  nodeName = testConfig.nodeName or exporter;
+mapAttrs
+  (exporter: testConfig: (makeTest (
+    let
+      nodeName = testConfig.nodeName or exporter;
 
-in {
-  name = "prometheus-${exporter}-exporter";
+    in
+    {
+      name = "prometheus-${exporter}-exporter";
 
-  nodes.${nodeName} = mkMerge [{
-    services.prometheus.exporters.${exporter} = testConfig.exporterConfig;
-  } testConfig.metricProvider or {}];
+      nodes.${nodeName} = mkMerge [{
+        services.prometheus.exporters.${exporter} = testConfig.exporterConfig;
+      } testConfig.metricProvider or { }];
 
-  testScript = ''
-    ${nodeName}.start()
-    ${concatStringsSep "\n" (map (line:
-      if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")")
-      then line
-      else "${nodeName}.${line}"
-    ) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}
-    ${nodeName}.shutdown()
-  '';
+      testScript = ''
+        ${nodeName}.start()
+        ${concatStringsSep "\n" (map (line:
+          if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")")
+          then line
+          else "${nodeName}.${line}"
+        ) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}
+        ${nodeName}.shutdown()
+      '';
 
-  meta = with maintainers; {
-    maintainers = [ willibutz elseym ];
-  };
-}))) exporterTests
+      meta = with maintainers; {
+        maintainers = [ willibutz elseym ];
+      };
+    }
+  )))
+  exporterTests
diff --git a/nixpkgs/nixos/tests/radicale.nix b/nixpkgs/nixos/tests/radicale.nix
index 1d3679c82a20..5101628a682c 100644
--- a/nixpkgs/nixos/tests/radicale.nix
+++ b/nixpkgs/nixos/tests/radicale.nix
@@ -1,140 +1,95 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
 let
   user = "someuser";
   password = "some_password";
-  port = builtins.toString 5232;
+  port = "5232";
+  filesystem_folder = "/data/radicale";
+
+  cli = "${pkgs.calendar-cli}/bin/calendar-cli --caldav-user ${user} --caldav-pass ${password}";
+in {
+  name = "radicale3";
+  meta.maintainers = with lib.maintainers; [ dotlambda ];
 
-  common = { pkgs, ... }: {
+  machine = { pkgs, ... }: {
     services.radicale = {
       enable = true;
-      config = ''
-        [auth]
-        type = htpasswd
-        htpasswd_filename = /etc/radicale/htpasswd
-        htpasswd_encryption = bcrypt
-
-        [storage]
-        filesystem_folder = /tmp/collections
-      '';
+      settings = {
+        auth = {
+          type = "htpasswd";
+          htpasswd_filename = "/etc/radicale/users";
+          htpasswd_encryption = "bcrypt";
+        };
+        storage = {
+          inherit filesystem_folder;
+          hook = "git add -A && (git diff --cached --quiet || git commit -m 'Changes by '%(user)s)";
+        };
+        logging.level = "info";
+      };
+      rights = {
+        principal = {
+          user = ".+";
+          collection = "{user}";
+          permissions = "RW";
+        };
+        calendars = {
+          user = ".+";
+          collection = "{user}/[^/]+";
+          permissions = "rw";
+        };
+      };
     };
+    systemd.services.radicale.path = [ pkgs.git ];
+    environment.systemPackages = [ pkgs.git ];
+    systemd.tmpfiles.rules = [ "d ${filesystem_folder} 0750 radicale radicale -" ];
     # WARNING: DON'T DO THIS IN PRODUCTION!
     # This puts unhashed secrets directly into the Nix store for ease of testing.
-    environment.etc."radicale/htpasswd".source = pkgs.runCommand "htpasswd" {} ''
+    environment.etc."radicale/users".source = pkgs.runCommand "htpasswd" {} ''
       ${pkgs.apacheHttpd}/bin/htpasswd -bcB "$out" ${user} ${password}
     '';
   };
-
-in
-
-  import ./make-test-python.nix ({ lib, ... }@args: {
-    name = "radicale";
-    meta.maintainers = with lib.maintainers; [ aneeshusa infinisil ];
-
-    nodes = rec {
-      radicale = radicale1; # Make the test script read more nicely
-      radicale1 = lib.recursiveUpdate (common args) {
-        nixpkgs.overlays = [
-          (self: super: {
-            radicale1 = super.radicale1.overrideAttrs (oldAttrs: {
-              propagatedBuildInputs = with self.pythonPackages;
-                (oldAttrs.propagatedBuildInputs or []) ++ [ passlib ];
-            });
-          })
-        ];
-        system.stateVersion = "17.03";
-      };
-      radicale1_export = lib.recursiveUpdate radicale1 {
-        services.radicale.extraArgs = [
-          "--export-storage" "/tmp/collections-new"
-        ];
-        system.stateVersion = "17.03";
-      };
-      radicale2_verify = lib.recursiveUpdate radicale2 {
-        services.radicale.extraArgs = [ "--debug" "--verify-storage" ];
-        system.stateVersion = "17.09";
-      };
-      radicale2 = lib.recursiveUpdate (common args) {
-        system.stateVersion = "17.09";
-      };
-      radicale3 = lib.recursiveUpdate (common args) {
-        system.stateVersion = "20.09";
-      };
-    };
-
-    # This tests whether the web interface is accessible to an authenticated user
-    testScript = { nodes }: let
-      switchToConfig = nodeName: let
-        newSystem = nodes.${nodeName}.config.system.build.toplevel;
-      in "${newSystem}/bin/switch-to-configuration test";
-    in ''
-      with subtest("Check Radicale 1 functionality"):
-          radicale.succeed(
-              "${switchToConfig "radicale1"} >&2"
-          )
-          radicale.wait_for_unit("radicale.service")
-          radicale.wait_for_open_port(${port})
-          radicale.succeed(
-              "curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/"
-          )
-
-      with subtest("Export data in Radicale 2 format"):
-          radicale.succeed("systemctl stop radicale")
-          radicale.succeed("ls -al /tmp/collections")
-          radicale.fail("ls -al /tmp/collections-new")
-
-      with subtest("Radicale exits immediately after exporting storage"):
-          radicale.succeed(
-              "${switchToConfig "radicale1_export"} >&2"
-          )
-          radicale.wait_until_fails("systemctl status radicale")
-          radicale.succeed("ls -al /tmp/collections")
-          radicale.succeed("ls -al /tmp/collections-new")
-
-      with subtest("Verify data in Radicale 2 format"):
-          radicale.succeed("rm -r /tmp/collections/${user}")
-          radicale.succeed("mv /tmp/collections-new/collection-root /tmp/collections")
-          radicale.succeed(
-              "${switchToConfig "radicale2_verify"} >&2"
-          )
-          radicale.wait_until_fails("systemctl status radicale")
-
-          (retcode, logs) = radicale.execute("journalctl -u radicale -n 10")
-          assert (
-              retcode == 0 and "Verifying storage" in logs
-          ), "Radicale 2 didn't verify storage"
-          assert (
-              "failed" not in logs and "exception" not in logs
-          ), "storage verification failed"
-
-      with subtest("Check Radicale 2 functionality"):
-          radicale.succeed(
-              "${switchToConfig "radicale2"} >&2"
-          )
-          radicale.wait_for_unit("radicale.service")
-          radicale.wait_for_open_port(${port})
-
-          (retcode, output) = radicale.execute(
-              "curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/"
-          )
-          assert (
-              retcode == 0 and "VCALENDAR" in output
-          ), "Could not read calendar from Radicale 2"
-
-          radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
-
-      with subtest("Check Radicale 3 functionality"):
-          radicale.succeed(
-              "${switchToConfig "radicale3"} >&2"
-          )
-          radicale.wait_for_unit("radicale.service")
-          radicale.wait_for_open_port(${port})
-
-          (retcode, output) = radicale.execute(
-              "curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/"
-          )
-          assert (
-              retcode == 0 and "VCALENDAR" in output
-          ), "Could not read calendar from Radicale 3"
-
-          radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
-    '';
+  testScript = ''
+    machine.wait_for_unit("radicale.service")
+    machine.wait_for_open_port(${port})
+
+    machine.succeed("sudo -u radicale git -C ${filesystem_folder} init")
+    machine.succeed(
+        "sudo -u radicale git -C ${filesystem_folder} config --local user.email radicale@example.com"
+    )
+    machine.succeed(
+        "sudo -u radicale git -C ${filesystem_folder} config --local user.name radicale"
+    )
+
+    with subtest("Test calendar and event creation"):
+        machine.succeed(
+            "${cli} --caldav-url http://localhost:${port}/${user} calendar create cal"
+        )
+        machine.succeed("test -d ${filesystem_folder}/collection-root/${user}/cal")
+        machine.succeed('test -z "$(ls ${filesystem_folder}/collection-root/${user}/cal)"')
+        machine.succeed(
+            "${cli} --caldav-url http://localhost:${port}/${user}/cal calendar add 2021-04-23 testevent"
+        )
+        machine.succeed('test -n "$(ls ${filesystem_folder}/collection-root/${user}/cal)"')
+        (status, stdout) = machine.execute(
+            "sudo -u radicale git -C ${filesystem_folder} log --format=oneline | wc -l"
+        )
+        assert status == 0, "git log failed"
+        assert stdout == "3\n", "there should be exactly 3 commits"
+
+    with subtest("Test rights file"):
+        machine.fail(
+            "${cli} --caldav-url http://localhost:${port}/${user} calendar create sub/cal"
+        )
+        machine.fail(
+            "${cli} --caldav-url http://localhost:${port}/otheruser calendar create cal"
+        )
+
+    with subtest("Test web interface"):
+        machine.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
+
+    with subtest("Test security"):
+        output = machine.succeed("systemd-analyze security radicale.service")
+        machine.log(output)
+        assert output[-9:-1] == "SAFE :-}"
+  '';
 })
diff --git a/nixpkgs/nixos/tests/rspamd.nix b/nixpkgs/nixos/tests/rspamd.nix
index f0ccfe7ea0e6..3fd55444fd8a 100644
--- a/nixpkgs/nixos/tests/rspamd.nix
+++ b/nixpkgs/nixos/tests/rspamd.nix
@@ -25,6 +25,7 @@ let
     machine = {
       services.rspamd.enable = true;
       networking.enableIPv6 = enableIPv6;
+      virtualisation.memorySize = 1024;
     };
     testScript = ''
       start_all()
@@ -68,6 +69,7 @@ in
           group = "rspamd";
         }];
       };
+      virtualisation.memorySize = 1024;
     };
 
     testScript = ''
@@ -116,6 +118,7 @@ in
           '';
         };
       };
+      virtualisation.memorySize = 1024;
     };
 
     testScript = ''
@@ -221,6 +224,7 @@ in
           rspamd_logger.infox(rspamd_config, 'Work dammit!!!')
         '';
       };
+      virtualisation.memorySize = 1024;
     };
     testScript = ''
       ${initMachine}
@@ -287,6 +291,7 @@ in
         postfix.enable = true;
         workers.rspamd_proxy.type = "rspamd_proxy";
       };
+      virtualisation.memorySize = 1024;
     };
     testScript = ''
       ${initMachine}
diff --git a/nixpkgs/nixos/tests/rss2email.nix b/nixpkgs/nixos/tests/rss2email.nix
index d62207a417b8..f32326feb50f 100644
--- a/nixpkgs/nixos/tests/rss2email.nix
+++ b/nixpkgs/nixos/tests/rss2email.nix
@@ -1,5 +1,5 @@
 import ./make-test-python.nix {
-  name = "opensmtpd";
+  name = "rss2email";
 
   nodes = {
     server = { pkgs, ... }: {
diff --git a/nixpkgs/nixos/tests/sanoid.nix b/nixpkgs/nixos/tests/sanoid.nix
index da6d4c9ffe82..c691bfc08ef7 100644
--- a/nixpkgs/nixos/tests/sanoid.nix
+++ b/nixpkgs/nixos/tests/sanoid.nix
@@ -33,14 +33,22 @@ in {
 
           autosnap = true;
         };
-        datasets."pool/test".useTemplate = [ "test" ];
+        datasets."pool/sanoid".useTemplate = [ "test" ];
+        extraArgs = [ "--verbose" ];
       };
 
       services.syncoid = {
         enable = true;
         sshKey = "/var/lib/syncoid/id_ecdsa";
-        commonArgs = [ "--no-sync-snap" ];
-        commands."pool/test".target = "root@target:pool/test";
+        commands = {
+          # Sync snapshot taken by sanoid
+          "pool/sanoid" = {
+            target = "root@target:pool/sanoid";
+            extraArgs = [ "--no-sync-snap" ];
+          };
+          # Take snapshot and sync
+          "pool/syncoid".target = "root@target:pool/syncoid";
+        };
       };
     };
     target = { ... }: {
@@ -54,18 +62,19 @@ in {
 
   testScript = ''
     source.succeed(
-        "mkdir /tmp/mnt",
+        "mkdir /mnt",
         "parted --script /dev/vdb -- mklabel msdos mkpart primary 1024M -1s",
         "udevadm settle",
-        "zpool create pool /dev/vdb1",
-        "zfs create -o mountpoint=legacy pool/test",
-        "mount -t zfs pool/test /tmp/mnt",
+        "zpool create pool -R /mnt /dev/vdb1",
+        "zfs create pool/sanoid",
+        "zfs create pool/syncoid",
         "udevadm settle",
     )
     target.succeed(
+        "mkdir /mnt",
         "parted --script /dev/vdb -- mklabel msdos mkpart primary 1024M -1s",
         "udevadm settle",
-        "zpool create pool /dev/vdb1",
+        "zpool create pool -R /mnt /dev/vdb1",
         "udevadm settle",
     )
 
@@ -76,16 +85,15 @@ in {
         "chown -R syncoid:syncoid /var/lib/syncoid/",
     )
 
-    source.succeed("touch /tmp/mnt/test.txt")
+    # Take snapshot with sanoid
+    source.succeed("touch /mnt/pool/sanoid/test.txt")
     source.systemctl("start --wait sanoid.service")
 
+    # Sync snapshots
     target.wait_for_open_port(22)
+    source.succeed("touch /mnt/pool/syncoid/test.txt")
     source.systemctl("start --wait syncoid.service")
-    target.succeed(
-        "mkdir /tmp/mnt",
-        "zfs set mountpoint=legacy pool/test",
-        "mount -t zfs pool/test /tmp/mnt",
-    )
-    target.succeed("cat /tmp/mnt/test.txt")
+    target.succeed("cat /mnt/pool/sanoid/test.txt")
+    target.succeed("cat /mnt/pool/syncoid/test.txt")
   '';
 })
diff --git a/nixpkgs/nixos/tests/shadow.nix b/nixpkgs/nixos/tests/shadow.nix
index c51961e1fc68..dd2a575b1935 100644
--- a/nixpkgs/nixos/tests/shadow.nix
+++ b/nixpkgs/nixos/tests/shadow.nix
@@ -36,9 +36,9 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
 
     with subtest("Normal login"):
         shadow.send_key("alt-f2")
-        shadow.wait_until_succeeds(f"[ $(fgconsole) = 2 ]")
-        shadow.wait_for_unit(f"getty@tty2.service")
-        shadow.wait_until_succeeds(f"pgrep -f 'agetty.*tty2'")
+        shadow.wait_until_succeeds("[ $(fgconsole) = 2 ]")
+        shadow.wait_for_unit("getty@tty2.service")
+        shadow.wait_until_succeeds("pgrep -f 'agetty.*tty2'")
         shadow.wait_until_tty_matches(2, "login: ")
         shadow.send_chars("emma\n")
         shadow.wait_until_tty_matches(2, "login: emma")
@@ -60,9 +60,9 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
 
     with subtest("Change password"):
         shadow.send_key("alt-f3")
-        shadow.wait_until_succeeds(f"[ $(fgconsole) = 3 ]")
-        shadow.wait_for_unit(f"getty@tty3.service")
-        shadow.wait_until_succeeds(f"pgrep -f 'agetty.*tty3'")
+        shadow.wait_until_succeeds("[ $(fgconsole) = 3 ]")
+        shadow.wait_for_unit("getty@tty3.service")
+        shadow.wait_until_succeeds("pgrep -f 'agetty.*tty3'")
         shadow.wait_until_tty_matches(3, "login: ")
         shadow.send_chars("emma\n")
         shadow.wait_until_tty_matches(3, "login: emma")
@@ -78,9 +78,9 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
         shadow.send_chars("${password3}\n")
         shadow.sleep(2)
         shadow.send_key("alt-f4")
-        shadow.wait_until_succeeds(f"[ $(fgconsole) = 4 ]")
-        shadow.wait_for_unit(f"getty@tty4.service")
-        shadow.wait_until_succeeds(f"pgrep -f 'agetty.*tty4'")
+        shadow.wait_until_succeeds("[ $(fgconsole) = 4 ]")
+        shadow.wait_for_unit("getty@tty4.service")
+        shadow.wait_until_succeeds("pgrep -f 'agetty.*tty4'")
         shadow.wait_until_tty_matches(4, "login: ")
         shadow.send_chars("emma\n")
         shadow.wait_until_tty_matches(4, "login: emma")
@@ -106,9 +106,9 @@ in import ./make-test-python.nix ({ pkgs, ... }: {
 
     with subtest("nologin shell"):
         shadow.send_key("alt-f5")
-        shadow.wait_until_succeeds(f"[ $(fgconsole) = 5 ]")
-        shadow.wait_for_unit(f"getty@tty5.service")
-        shadow.wait_until_succeeds(f"pgrep -f 'agetty.*tty5'")
+        shadow.wait_until_succeeds("[ $(fgconsole) = 5 ]")
+        shadow.wait_for_unit("getty@tty5.service")
+        shadow.wait_until_succeeds("pgrep -f 'agetty.*tty5'")
         shadow.wait_until_tty_matches(5, "login: ")
         shadow.send_chars("layla\n")
         shadow.wait_until_tty_matches(5, "login: layla")
diff --git a/nixpkgs/nixos/tests/shiori.nix b/nixpkgs/nixos/tests/shiori.nix
index a5771262c6f2..418bee43c939 100644
--- a/nixpkgs/nixos/tests/shiori.nix
+++ b/nixpkgs/nixos/tests/shiori.nix
@@ -28,7 +28,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...}:
     machine.wait_for_unit("shiori.service")
     machine.wait_for_open_port(8080)
     machine.succeed("curl --fail http://localhost:8080/")
-    machine.succeed("curl --fail --location http://localhost:8080/ | grep -qi shiori")
+    machine.succeed("curl --fail --location http://localhost:8080/ | grep -i shiori")
 
     with subtest("login"):
         auth_json = machine.succeed(
diff --git a/nixpkgs/nixos/tests/signal-desktop.nix b/nixpkgs/nixos/tests/signal-desktop.nix
index c424288e00a9..42485cd0da7e 100644
--- a/nixpkgs/nixos/tests/signal-desktop.nix
+++ b/nixpkgs/nixos/tests/signal-desktop.nix
@@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
 {
   name = "signal-desktop";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ flokli ];
+    maintainers = [ flokli primeos ];
   };
 
   machine = { ... }:
@@ -16,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
 
     services.xserver.enable = true;
     test-support.displayManager.auto.user = "alice";
-    environment.systemPackages = [ pkgs.signal-desktop ];
+    environment.systemPackages = with pkgs; [ signal-desktop file ];
     virtualisation.memorySize = 1024;
   };
 
@@ -39,5 +39,16 @@ import ./make-test-python.nix ({ pkgs, ...} :
     machine.wait_for_text("Signal")
     machine.wait_for_text("File Edit View Window Help")
     machine.screenshot("signal_desktop")
+
+    # Test if the database is encrypted to prevent these issues:
+    # - https://github.com/NixOS/nixpkgs/issues/108772
+    # - https://github.com/NixOS/nixpkgs/pull/117555
+    print(machine.succeed("su - alice -c 'file ~/.config/Signal/sql/db.sqlite'"))
+    machine.succeed(
+        "su - alice -c 'file ~/.config/Signal/sql/db.sqlite' | grep 'db.sqlite: data'"
+    )
+    machine.fail(
+        "su - alice -c 'file ~/.config/Signal/sql/db.sqlite' | grep -e SQLite -e database"
+    )
   '';
 })
diff --git a/nixpkgs/nixos/tests/snapcast.nix b/nixpkgs/nixos/tests/snapcast.nix
index ef35d586c9c8..8d960b4cc069 100644
--- a/nixpkgs/nixos/tests/snapcast.nix
+++ b/nixpkgs/nixos/tests/snapcast.nix
@@ -72,10 +72,10 @@ in {
         )
 
     with subtest("test a connection"):
-        client.execute("systemd-run snapclient -h server -p ${toString port}")
+        client.execute("systemd-run --unit=snapcast-client snapclient -h server -p ${toString port}")
         server.wait_until_succeeds(
             "journalctl -o cat -u snapserver.service | grep -q 'Hello from'"
         )
-        client.wait_until_succeeds("journalctl -o cat -u run-\* | grep -q ${toString bufferSize}")
+        client.wait_until_succeeds("journalctl -o cat -u snapcast-client | grep -q 'buffer: ${toString bufferSize}'")
   '';
 })
diff --git a/nixpkgs/nixos/tests/sogo.nix b/nixpkgs/nixos/tests/sogo.nix
index 3f600b4cd555..acdad8d0f473 100644
--- a/nixpkgs/nixos/tests/sogo.nix
+++ b/nixpkgs/nixos/tests/sogo.nix
@@ -10,7 +10,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
       services.mysql = {
         enable = true;
-        package = pkgs.mysql;
+        package = pkgs.mariadb;
         ensureDatabases = [ "sogo" ];
         ensureUsers = [{
           name = "sogo";
diff --git a/nixpkgs/nixos/tests/solanum.nix b/nixpkgs/nixos/tests/solanum.nix
new file mode 100644
index 000000000000..aabfb906aa81
--- /dev/null
+++ b/nixpkgs/nixos/tests/solanum.nix
@@ -0,0 +1,89 @@
+let
+  clients = [
+    "ircclient1"
+    "ircclient2"
+  ];
+  server = "solanum";
+  ircPort = 6667;
+  channel = "nixos-cat";
+  iiDir = "/tmp/irc";
+in
+
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "solanum";
+  nodes = {
+    "${server}" = {
+      networking.firewall.allowedTCPPorts = [ ircPort ];
+      services.solanum = {
+        enable = true;
+      };
+    };
+  } // lib.listToAttrs (builtins.map (client: lib.nameValuePair client {
+    imports = [
+      ./common/user-account.nix
+    ];
+
+    systemd.services.ii = {
+      requires = [ "network.target" ];
+      wantedBy = [ "default.target" ];
+
+      serviceConfig = {
+        Type = "simple";
+        ExecPreStartPre = "mkdir -p ${iiDir}";
+        ExecStart = ''
+          ${lib.getBin pkgs.ii}/bin/ii -n ${client} -s ${server} -i ${iiDir}
+        '';
+        User = "alice";
+      };
+    };
+  }) clients);
+
+  testScript =
+    let
+      msg = client: "Hello, my name is ${client}";
+      clientScript = client: [
+        ''
+          ${client}.wait_for_unit("network.target")
+          ${client}.systemctl("start ii")
+          ${client}.wait_for_unit("ii")
+          ${client}.wait_for_file("${iiDir}/${server}/out")
+        ''
+        # wait until first PING from server arrives before joining,
+        # so we don't try it too early
+        ''
+          ${client}.wait_until_succeeds("grep 'PING' ${iiDir}/${server}/out")
+        ''
+        # join ${channel}
+        ''
+          ${client}.succeed("echo '/j #${channel}' > ${iiDir}/${server}/in")
+          ${client}.wait_for_file("${iiDir}/${server}/#${channel}/in")
+        ''
+        # send a greeting
+        ''
+          ${client}.succeed(
+              "echo '${msg client}' > ${iiDir}/${server}/#${channel}/in"
+          )
+        ''
+        # check that all greetings arrived on all clients
+      ] ++ builtins.map (other: ''
+        ${client}.succeed(
+            "grep '${msg other}$' ${iiDir}/${server}/#${channel}/out"
+        )
+      '') clients;
+
+      # foldl', but requires a non-empty list instead of a start value
+      reduce = f: list:
+        builtins.foldl' f (builtins.head list) (builtins.tail list);
+    in ''
+      start_all()
+      ${server}.systemctl("status solanum")
+      ${server}.wait_for_open_port(${toString ircPort})
+
+      # run clientScript for all clients so that every list
+      # entry is executed by every client before advancing
+      # to the next one.
+    '' + lib.concatStrings
+      (reduce
+        (lib.zipListsWith (cs: c: cs + c))
+        (builtins.map clientScript clients));
+})
diff --git a/nixpkgs/nixos/tests/sourcehut.nix b/nixpkgs/nixos/tests/sourcehut.nix
new file mode 100644
index 000000000000..b56a14ebf85e
--- /dev/null
+++ b/nixpkgs/nixos/tests/sourcehut.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+{
+  name = "sourcehut";
+
+  meta.maintainers = [ pkgs.lib.maintainers.tomberek ];
+
+  machine = { config, pkgs, ... }: {
+    virtualisation.memorySize = 2048;
+    networking.firewall.allowedTCPPorts = [ 80 ];
+
+    services.sourcehut = {
+      enable = true;
+      services = [ "meta" ];
+      originBase = "sourcehut";
+      settings."sr.ht".service-key =   "8888888888888888888888888888888888888888888888888888888888888888";
+      settings."sr.ht".network-key = "0000000000000000000000000000000000000000000=";
+      settings.webhooks.private-key = "0000000000000000000000000000000000000000000=";
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("multi-user.target")
+    machine.wait_for_unit("metasrht.service")
+    machine.wait_for_open_port(5000)
+    machine.succeed("curl -sL http://localhost:5000 | grep meta.sourcehut")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/sudo.nix b/nixpkgs/nixos/tests/sudo.nix
index 2a85c490665a..4885d6e17b82 100644
--- a/nixpkgs/nixos/tests/sudo.nix
+++ b/nixpkgs/nixos/tests/sudo.nix
@@ -10,7 +10,7 @@ in
       maintainers = [ lschuermann ];
     };
 
-    machine =
+    nodes.machine =
       { lib, ... }:
       with lib;
       {
@@ -48,6 +48,19 @@ in
         };
       };
 
+    nodes.strict = { ... }: {
+      users.users = {
+        admin = { isNormalUser = true; extraGroups = [ "wheel" ]; };
+        noadmin = { isNormalUser = true; };
+      };
+
+      security.sudo = {
+        enable = true;
+        wheelNeedsPassword = false;
+        execWheelOnly = true;
+      };
+    };
+
     testScript =
       ''
         with subtest("users in wheel group should have passwordless sudo"):
@@ -79,5 +92,11 @@ in
 
         with subtest("users in group 'barfoo' should not be able to keep their environment"):
             machine.fail("sudo -u test3 sudo -n -E -u root true")
+
+        with subtest("users in wheel should be able to run sudo despite execWheelOnly"):
+            strict.succeed('su - admin -c "sudo -u root true"')
+
+        with subtest("non-wheel users should be unable to run sudo thanks to execWheelOnly"):
+            strict.fail('su - noadmin -c "sudo --help"')
       '';
   })
diff --git a/nixpkgs/nixos/tests/sway.nix b/nixpkgs/nixos/tests/sway.nix
new file mode 100644
index 000000000000..0985e0b4308b
--- /dev/null
+++ b/nixpkgs/nixos/tests/sway.nix
@@ -0,0 +1,106 @@
+import ./make-test-python.nix ({ pkgs, lib, ...} :
+
+{
+  name = "sway";
+  meta = {
+    maintainers = with lib.maintainers; [ primeos synthetica ];
+  };
+
+  machine = { config, ... }: {
+    # Automatically login on tty1 as a normal user:
+    imports = [ ./common/user-account.nix ];
+    services.getty.autologinUser = "alice";
+
+    environment = {
+      # For glinfo and wayland-info:
+      systemPackages = with pkgs; [ mesa-demos wayland-utils ];
+      # Use a fixed SWAYSOCK path (for swaymsg):
+      variables."SWAYSOCK" = "/tmp/sway-ipc.sock";
+      # For convenience:
+      shellAliases = {
+        test-x11 = "glinfo | head -n 3 | tee /tmp/test-x11.out && touch /tmp/test-x11-exit-ok";
+        test-wayland = "wayland-info | tee /tmp/test-wayland.out && touch /tmp/test-wayland-exit-ok";
+      };
+    };
+
+    # Automatically configure and start Sway when logging in on tty1:
+    programs.bash.loginShellInit = ''
+      if [ "$(tty)" = "/dev/tty1" ]; then
+        set -e
+
+        mkdir -p ~/.config/sway
+        sed s/Mod4/Mod1/ /etc/sway/config > ~/.config/sway/config
+
+        sway --validate
+        sway && touch /tmp/sway-exit-ok
+      fi
+    '';
+
+    programs.sway.enable = true;
+
+    # To test pinentry via gpg-agent:
+    programs.gnupg.agent.enable = true;
+
+    virtualisation.memorySize = 1024;
+    # Need to switch to a different GPU driver than the default one (-vga std) so that Sway can launch:
+    virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
+  };
+
+  enableOCR = true;
+
+  testScript = { nodes, ... }: ''
+    start_all()
+    machine.wait_for_unit("multi-user.target")
+
+    # To check the version:
+    print(machine.succeed("sway --version"))
+
+    # Wait for Sway to complete startup:
+    machine.wait_for_file("/run/user/1000/wayland-1")
+    machine.wait_for_file("/tmp/sway-ipc.sock")
+
+    # Test XWayland:
+    machine.succeed(
+        "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY=invalid alacritty'"
+    )
+    machine.wait_for_text("alice@machine")
+    machine.send_chars("test-x11\n")
+    machine.wait_for_file("/tmp/test-x11-exit-ok")
+    print(machine.succeed("cat /tmp/test-x11.out"))
+    machine.screenshot("alacritty_glinfo")
+    machine.succeed("pkill alacritty")
+
+    # Start a terminal (Alacritty) on workspace 3:
+    machine.send_key("alt-3")
+    machine.succeed(
+        "su - alice -c 'swaymsg exec WINIT_UNIX_BACKEND=wayland DISPLAY=invalid alacritty'"
+    )
+    machine.wait_for_text("alice@machine")
+    machine.send_chars("test-wayland\n")
+    machine.wait_for_file("/tmp/test-wayland-exit-ok")
+    print(machine.succeed("cat /tmp/test-wayland.out"))
+    machine.screenshot("alacritty_wayland_info")
+    machine.send_key("alt-shift-q")
+    machine.wait_until_fails("pgrep alacritty")
+
+    # Test gpg-agent starting pinentry-gnome3 via D-Bus (tests if
+    # $WAYLAND_DISPLAY is correctly imported into the D-Bus user env):
+    machine.succeed(
+        "su - alice -c 'swaymsg -- exec gpg --no-tty --yes --quick-generate-key test'"
+    )
+    machine.wait_until_succeeds("pgrep --exact gpg")
+    machine.wait_for_text("Passphrase")
+    machine.screenshot("gpg_pinentry")
+    machine.send_key("alt-shift-q")
+    machine.wait_until_fails("pgrep --exact gpg")
+
+    # Test swaynag:
+    machine.send_key("alt-shift-e")
+    machine.wait_for_text("You pressed the exit shortcut.")
+    machine.screenshot("sway_exit")
+
+    # Exit Sway and verify process exit status 0:
+    machine.succeed("su - alice -c 'swaymsg exit || true'")
+    machine.wait_for_file("/tmp/sway-exit-ok")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/systemd-confinement.nix b/nixpkgs/nixos/tests/systemd-confinement.nix
index d04e4a3f867c..e6a308f46d27 100644
--- a/nixpkgs/nixos/tests/systemd-confinement.nix
+++ b/nixpkgs/nixos/tests/systemd-confinement.nix
@@ -59,7 +59,8 @@ import ./make-test-python.nix {
                   "chroot-exec chown 65534 /bin",
               )
               machine.succeed(
-                  'test "$(chroot-exec id -u)" = 0', "chroot-exec chown 0 /bin",
+                  'test "$(chroot-exec id -u)" = 0',
+                  "chroot-exec chown 0 /bin",
               )
         '';
       }
diff --git a/nixpkgs/nixos/tests/systemd-networkd.nix b/nixpkgs/nixos/tests/systemd-networkd.nix
index 4f2cb75f5a0c..7faeae3704ec 100644
--- a/nixpkgs/nixos/tests/systemd-networkd.nix
+++ b/nixpkgs/nixos/tests/systemd-networkd.nix
@@ -6,7 +6,6 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
       networking.firewall.enable = false;
       virtualisation.vlans = [ 1 ];
       environment.systemPackages = with pkgs; [ wireguard-tools ];
-      boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ];
       systemd.network = {
         enable = true;
         netdevs = {
diff --git a/nixpkgs/nixos/tests/trafficserver.nix b/nixpkgs/nixos/tests/trafficserver.nix
new file mode 100644
index 000000000000..3979a1b4a482
--- /dev/null
+++ b/nixpkgs/nixos/tests/trafficserver.nix
@@ -0,0 +1,176 @@
+# verifies:
+#   1. Traffic Server is able to start
+#   2. Traffic Server spawns traffic_crashlog upon startup
+#   3. Traffic Server proxies HTTP requests according to URL remapping rules
+#      in 'services.trafficserver.remap'
+#   4. Traffic Server applies per-map settings specified with the conf_remap
+#      plugin
+#   5. Traffic Server caches HTTP responses
+#   6. Traffic Server processes HTTP PUSH requests
+#   7. Traffic Server can load the healthchecks plugin
+#   8. Traffic Server logs HTTP traffic as configured
+#
+# uses:
+#   - bin/traffic_manager
+#   - bin/traffic_server
+#   - bin/traffic_crashlog
+#   - bin/traffic_cache_tool
+#   - bin/traffic_ctl
+#   - bin/traffic_logcat
+#   - bin/traffic_logstats
+#   - bin/tspush
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "trafficserver";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ midchildan ];
+  };
+
+  nodes = {
+    ats = { pkgs, lib, config, ... }: let
+      user = config.users.users.trafficserver.name;
+      group = config.users.groups.trafficserver.name;
+      healthchecks = pkgs.writeText "healthchecks.conf" ''
+        /status /tmp/ats.status text/plain 200 500
+      '';
+    in {
+      services.trafficserver.enable = true;
+
+      services.trafficserver.records = {
+        proxy.config.http.server_ports = "80 80:ipv6";
+        proxy.config.hostdb.host_file.path = "/etc/hosts";
+        proxy.config.log.max_space_mb_headroom = 0;
+        proxy.config.http.push_method_enabled = 1;
+
+        # check that cache storage is usable before accepting traffic
+        proxy.config.http.wait_for_cache = 2;
+      };
+
+      services.trafficserver.plugins = [
+        { path = "healthchecks.so"; arg = toString healthchecks; }
+        { path = "xdebug.so"; }
+      ];
+
+      services.trafficserver.remap = ''
+        map http://httpbin.test http://httpbin
+        map http://pristine-host-hdr.test http://httpbin \
+          @plugin=conf_remap.so \
+          @pparam=proxy.config.url_remap.pristine_host_hdr=1
+        map http://ats/tspush http://httpbin/cache \
+          @plugin=conf_remap.so \
+          @pparam=proxy.config.http.cache.required_headers=0
+      '';
+
+      services.trafficserver.storage = ''
+        /dev/vdb volume=1
+      '';
+
+      networking.firewall.allowedTCPPorts = [ 80 ];
+      virtualisation.emptyDiskImages = [ 256 ];
+      services.udev.extraRules = ''
+        KERNEL=="vdb", OWNER="${user}", GROUP="${group}"
+      '';
+    };
+
+    httpbin = { pkgs, lib, ... }: let
+      python = pkgs.python3.withPackages
+        (ps: with ps; [ httpbin gunicorn gevent ]);
+    in {
+      systemd.services.httpbin = {
+        enable = true;
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig = {
+          ExecStart = "${python}/bin/gunicorn -b 0.0.0.0:80 httpbin:app -k gevent";
+        };
+      };
+
+      networking.firewall.allowedTCPPorts = [ 80 ];
+    };
+
+    client = { pkgs, lib, ... }: {
+      environment.systemPackages = with pkgs; [ curl ];
+    };
+  };
+
+  testScript = { nodes, ... }: let
+    sampleFile = pkgs.writeText "sample.txt" ''
+      It's the season of White Album.
+    '';
+  in ''
+    import json
+    import re
+
+    ats.wait_for_unit("trafficserver")
+    ats.wait_for_open_port(80)
+    httpbin.wait_for_unit("httpbin")
+    httpbin.wait_for_open_port(80)
+
+    with subtest("Traffic Server is running"):
+        out = ats.succeed("traffic_ctl server status")
+        assert out.strip() == "Proxy -- on"
+
+    with subtest("traffic_crashlog is running"):
+        ats.succeed("pgrep -f traffic_crashlog")
+
+    with subtest("basic remapping works"):
+        out = client.succeed("curl -vv -H 'Host: httpbin.test' http://ats/headers")
+        assert json.loads(out)["headers"]["Host"] == "httpbin"
+
+    with subtest("conf_remap plugin works"):
+        out = client.succeed(
+            "curl -vv -H 'Host: pristine-host-hdr.test' http://ats/headers"
+        )
+        assert json.loads(out)["headers"]["Host"] == "pristine-host-hdr.test"
+
+    with subtest("caching works"):
+        out = client.succeed(
+            "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null"
+        )
+        assert "X-Cache: miss" in out
+
+        out = client.succeed(
+            "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null"
+        )
+        assert "X-Cache: hit-fresh" in out
+
+    with subtest("pushing to cache works"):
+        url = "http://ats/tspush"
+
+        ats.succeed(f"echo {url} > /tmp/urls.txt")
+        out = ats.succeed(
+            f"tspush -f '${sampleFile}' -u {url}"
+        )
+        assert "HTTP/1.0 201 Created" in out, "cache push failed"
+
+        out = ats.succeed(
+            "traffic_cache_tool --spans /etc/trafficserver/storage.config find --input /tmp/urls.txt"
+        )
+        assert "Span: /dev/vdb" in out, "cache not stored on disk"
+
+        out = client.succeed(f"curl {url}").strip()
+        expected = (
+            open("${sampleFile}").read().strip()
+        )
+        assert out == expected, "cache content mismatch"
+
+    with subtest("healthcheck plugin works"):
+        out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'")
+        assert out.strip() == "500"
+
+        ats.succeed("touch /tmp/ats.status")
+
+        out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'")
+        assert out.strip() == "200"
+
+    with subtest("logging works"):
+        access_log_path = "/var/log/trafficserver/squid.blog"
+        ats.wait_for_file(access_log_path)
+
+        out = ats.succeed(f"traffic_logcat {access_log_path}").split("\n")[0]
+        expected = "^\S+ \S+ \S+ TCP_MISS/200 \S+ GET http://httpbin/headers - DIRECT/httpbin application/json$"
+        assert re.fullmatch(expected, out) is not None, "no matching logs"
+
+        out = json.loads(ats.succeed(f"traffic_logstats -jf {access_log_path}"))
+        assert out["total"]["error.total"]["req"] == "0", "unexpected log stat"
+  '';
+})
diff --git a/nixpkgs/nixos/tests/unbound.nix b/nixpkgs/nixos/tests/unbound.nix
index ca9718ac633e..fcfa222299c8 100644
--- a/nixpkgs/nixos/tests/unbound.nix
+++ b/nixpkgs/nixos/tests/unbound.nix
@@ -61,13 +61,16 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
 
         services.unbound = {
           enable = true;
-          interfaces = [ "192.168.0.1" "fd21::1" "::1" "127.0.0.1" ];
-          allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ];
-          extraConfig = ''
-            server:
-              local-data: "example.local. IN A 1.2.3.4"
-              local-data: "example.local. IN AAAA abcd::eeff"
-          '';
+          settings = {
+            server = {
+              interface = [ "192.168.0.1" "fd21::1" "::1" "127.0.0.1" ];
+              access-control = [ "192.168.0.0/24 allow" "fd21::/64 allow" "::1 allow" "127.0.0.0/8 allow" ];
+              local-data = [
+                ''"example.local. IN A 1.2.3.4"''
+                ''"example.local. IN AAAA abcd::eeff"''
+              ];
+            };
+          };
         };
       };
 
@@ -90,19 +93,25 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
 
         services.unbound = {
           enable = true;
-          allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ];
-          interfaces = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2"
-                         "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853"
-                         "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ];
-          forwardAddresses = [
-            (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address
-            (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address
-          ];
-          extraConfig = ''
-            server:
-              tls-service-pem: ${cert}/cert.pem
-              tls-service-key: ${cert}/key.pem
-          '';
+          settings = {
+            server = {
+              interface = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2"
+                            "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853"
+                            "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ];
+              access-control = [ "192.168.0.0/24 allow" "fd21::/64 allow" "::1 allow" "127.0.0.0/8 allow" ];
+              tls-service-pem = "${cert}/cert.pem";
+              tls-service-key = "${cert}/key.pem";
+            };
+            forward-zone = [
+              {
+                name = ".";
+                forward-addr = [
+                  (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address
+                  (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address
+                ];
+              }
+            ];
+          };
         };
       };
 
@@ -122,12 +131,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
 
         services.unbound = {
           enable = true;
-          allowedAccess = [ "::1" "127.0.0.0/8" ];
-          interfaces = [ "::1" "127.0.0.1" ];
+          settings = {
+            server = {
+              interface = [ "::1" "127.0.0.1" ];
+              access-control = [ "::1 allow" "127.0.0.0/8 allow" ];
+            };
+            include = "/etc/unbound/extra*.conf";
+          };
           localControlSocketPath = "/run/unbound/unbound.ctl";
-          extraConfig = ''
-            include: "/etc/unbound/extra*.conf"
-          '';
         };
 
         users.users = {
@@ -143,12 +154,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
           unauthorizeduser = { isSystemUser = true; };
         };
 
+        # Used for testing configuration reloading
         environment.etc = {
           "unbound-extra1.conf".text = ''
             forward-zone:
-              name: "example.local."
-              forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv6.addresses).address}
-              forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv4.addresses).address}
+            name: "example.local."
+            forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv6.addresses).address}
+            forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv4.addresses).address}
           '';
           "unbound-extra2.conf".text = ''
             auth-zone:
@@ -180,7 +192,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
 
     testScript = { nodes, ... }: ''
       import typing
-      import json
 
       zone = "example.local."
       records = [("AAAA", "abcd::eeff"), ("A", "1.2.3.4")]
diff --git a/nixpkgs/nixos/tests/v2ray.nix b/nixpkgs/nixos/tests/v2ray.nix
index f1b2570cc860..4808e149d31e 100644
--- a/nixpkgs/nixos/tests/v2ray.nix
+++ b/nixpkgs/nixos/tests/v2ray.nix
@@ -3,7 +3,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: let
   v2rayUser = {
     # A random UUID.
     id = "a6a46834-2150-45f8-8364-0f6f6ab32384";
-    alterId = 4;
+    alterId = 0; # Non-zero support will be disabled in the future.
   };
 
   # 1080 [http proxy] -> 1081 [vmess] -> direct
diff --git a/nixpkgs/nixos/tests/virtualbox.nix b/nixpkgs/nixos/tests/virtualbox.nix
index 0a7369b0fa2a..09314d93b7d0 100644
--- a/nixpkgs/nixos/tests/virtualbox.nix
+++ b/nixpkgs/nixos/tests/virtualbox.nix
@@ -226,18 +226,16 @@ let
 
 
       def create_vm_${name}():
-          # fmt: off
-          vbm(f"createvm --name ${name} ${createFlags}")
-          vbm(f"modifyvm ${name} ${vmFlags}")
-          vbm(f"setextradata ${name} VBoxInternal/PDM/HaltOnReset 1")
-          vbm(f"storagectl ${name} ${controllerFlags}")
-          vbm(f"storageattach ${name} ${diskFlags}")
-          vbm(f"sharedfolder add ${name} ${sharedFlags}")
-          vbm(f"sharedfolder add ${name} ${nixstoreFlags}")
+          vbm("createvm --name ${name} ${createFlags}")
+          vbm("modifyvm ${name} ${vmFlags}")
+          vbm("setextradata ${name} VBoxInternal/PDM/HaltOnReset 1")
+          vbm("storagectl ${name} ${controllerFlags}")
+          vbm("storageattach ${name} ${diskFlags}")
+          vbm("sharedfolder add ${name} ${sharedFlags}")
+          vbm("sharedfolder add ${name} ${nixstoreFlags}")
           cleanup_${name}()
 
           ${mkLog "$HOME/VirtualBox VMs/${name}/Logs/VBox.log" "HOST-${name}"}
-          # fmt: on
 
 
       def destroy_vm_${name}():
@@ -259,9 +257,7 @@ let
 
       def wait_for_ip_${name}(interface):
           property = f"/VirtualBox/GuestInfo/Net/{interface}/V4/IP"
-          # fmt: off
           getip = f"VBoxManage guestproperty get ${name} {property} | sed -n -e 's/^Value: //p'"
-          # fmt: on
 
           ip = machine.succeed(
               ru(
@@ -394,9 +390,7 @@ let
 
       machine.wait_for_x()
 
-      # fmt: off
       ${mkLog "$HOME/.config/VirtualBox/VBoxSVC.log" "HOST-SVC"}
-      # fmt: on
 
       ${testScript}
       # (keep black happy)
diff --git a/nixpkgs/nixos/tests/web-servers/unit-php.nix b/nixpkgs/nixos/tests/web-servers/unit-php.nix
index 24d6f5f16a72..00512b506cc2 100644
--- a/nixpkgs/nixos/tests/web-servers/unit-php.nix
+++ b/nixpkgs/nixos/tests/web-servers/unit-php.nix
@@ -1,6 +1,6 @@
 import ../make-test-python.nix ({pkgs, ...}:
- let
-    testdir = pkgs.writeTextDir "www/info.php" "<?php phpinfo();";
+let
+  testdir = pkgs.writeTextDir "www/info.php" "<?php phpinfo();";
 
 in {
   name = "unit-php-test";
@@ -9,37 +9,27 @@ in {
   machine = { config, lib, pkgs, ... }: {
     services.unit = {
       enable = true;
-      config = ''
-        {
-          "listeners": {
-            "*:9074": {
-              "application": "php_74"
-            }
-          },
-          "applications": {
-            "php_74": {
-              "type": "php 7.4",
-              "processes": 1,
-              "user": "testuser",
-              "group": "testgroup",
-              "root": "${testdir}/www",
-              "index": "info.php",
-              "options": {
-                "file": "${pkgs.unit.usedPhp74}/lib/php.ini"
-              }
-            }
-          }
-        }
-      '';
+      config = pkgs.lib.strings.toJSON {
+        listeners."*:9080".application = "php_80";
+        applications.php_80 = {
+          type = "php 8.0";
+          processes = 1;
+          user = "testuser";
+          group = "testgroup";
+          root = "${testdir}/www";
+          index = "info.php";
+          options.file = "${pkgs.unit.usedPhp80}/lib/php.ini";
+        };
+      };
     };
     users = {
       users.testuser = {
-        isNormalUser = false;
-        uid = 1074;
+        isSystemUser = true;
+        uid = 1080;
         group = "testgroup";
       };
       groups.testgroup = {
-        gid= 1074;
+        gid = 1080;
       };
     };
   };
@@ -47,8 +37,8 @@ in {
     machine.wait_for_unit("unit.service")
 
     # Check so we get an evaluated PHP back
-    response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9074/")
-    assert "PHP Version ${pkgs.unit.usedPhp74.version}" in response, "PHP version not detected"
+    response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9080/")
+    assert "PHP Version ${pkgs.unit.usedPhp80.version}" in response, "PHP version not detected"
 
     # Check so we have database and some other extensions loaded
     for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
diff --git a/nixpkgs/nixos/tests/wiki-js.nix b/nixpkgs/nixos/tests/wiki-js.nix
index 9aa87d15366b..783887d2dcaa 100644
--- a/nixpkgs/nixos/tests/wiki-js.nix
+++ b/nixpkgs/nixos/tests/wiki-js.nix
@@ -119,7 +119,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
 
     with subtest("Setup"):
         result = machine.succeed(
-            "set -o pipefail; curl -sSf localhost:3000/finalize -X POST -d "
+            "curl -sSf localhost:3000/finalize -X POST -d "
             + "@${payloads.finalize} -H 'Content-Type: application/json' "
             + "| jq .ok | xargs echo"
         )
@@ -132,7 +132,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
 
     with subtest("Base functionality"):
         auth = machine.succeed(
-            "set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+            "curl -sSf localhost:3000/graphql -X POST "
             + "-d @${payloads.login} -H 'Content-Type: application/json' "
             + "| jq '.[0].data.authentication.login.jwt' | xargs echo"
         ).strip()
@@ -140,7 +140,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
         assert auth
 
         create = machine.succeed(
-            "set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+            "curl -sSf localhost:3000/graphql -X POST "
             + "-d @${payloads.content} -H 'Content-Type: application/json' "
             + f"-H 'Authorization: Bearer {auth}' "
             + "| jq '.[0].data.pages.create.responseResult.succeeded'|xargs echo"
diff --git a/nixpkgs/nixos/tests/wmderland.nix b/nixpkgs/nixos/tests/wmderland.nix
index d121ed98b7ac..6de0cd9212ee 100644
--- a/nixpkgs/nixos/tests/wmderland.nix
+++ b/nixpkgs/nixos/tests/wmderland.nix
@@ -1,6 +1,6 @@
 import ./make-test-python.nix ({ pkgs, ...} : {
   name = "wmderland";
-  meta = with pkgs.stdenv.lib.maintainers; {
+  meta = with pkgs.lib.maintainers; {
     maintainers = [ takagiy ];
   };
 
diff --git a/nixpkgs/nixos/tests/xandikos.nix b/nixpkgs/nixos/tests/xandikos.nix
index 48c770a3d168..69d78ee21e76 100644
--- a/nixpkgs/nixos/tests/xandikos.nix
+++ b/nixpkgs/nixos/tests/xandikos.nix
@@ -44,7 +44,7 @@ import ./make-test-python.nix (
             xandikos_default.wait_for_open_port(8080)
             xandikos_default.succeed("curl --fail http://localhost:8080/")
             xandikos_default.succeed(
-                "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos"
+                "curl -s --fail --location http://localhost:8080/ | grep -i Xandikos"
             )
             xandikos_client.wait_for_unit("network.target")
             xandikos_client.fail("curl --fail http://xandikos_default:8080/")
@@ -55,15 +55,15 @@ import ./make-test-python.nix (
             xandikos_proxy.wait_for_open_port(8080)
             xandikos_proxy.succeed("curl --fail http://localhost:8080/")
             xandikos_proxy.succeed(
-                "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos"
+                "curl -s --fail --location http://localhost:8080/ | grep -i Xandikos"
             )
             xandikos_client.wait_for_unit("network.target")
             xandikos_client.fail("curl --fail http://xandikos_proxy:8080/")
             xandikos_client.succeed(
-                "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -qi Xandikos"
+                "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -i Xandikos"
             )
             xandikos_client.succeed(
-                "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -qi Xandikos"
+                "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -i Xandikos"
             )
       '';
     }
diff --git a/nixpkgs/nixos/tests/yggdrasil.nix b/nixpkgs/nixos/tests/yggdrasil.nix
index 0b58ad29aa2b..0e75ed54db28 100644
--- a/nixpkgs/nixos/tests/yggdrasil.nix
+++ b/nixpkgs/nixos/tests/yggdrasil.nix
@@ -147,7 +147,7 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
       # If Alice can talk to Carol, then Bob's outbound peering and Carol's
       # local peering have succeeded and everybody is connected.
       alice.wait_until_succeeds(f"ping -c 1 {carol_ip6}")
-      alice.succeed(f"ping -c 1 ${bobIp6}")
+      alice.succeed("ping -c 1 ${bobIp6}")
 
       bob.succeed("ping -c 1 ${aliceIp6}")
       bob.succeed(f"ping -c 1 {carol_ip6}")
diff --git a/nixpkgs/nixos/tests/zigbee2mqtt.nix b/nixpkgs/nixos/tests/zigbee2mqtt.nix
index b7bb21f9227a..98aadbb699bd 100644
--- a/nixpkgs/nixos/tests/zigbee2mqtt.nix
+++ b/nixpkgs/nixos/tests/zigbee2mqtt.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
 
   {
     machine = { pkgs, ... }:
@@ -6,6 +6,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
         services.zigbee2mqtt = {
           enable = true;
         };
+
+        systemd.services.zigbee2mqtt.serviceConfig.DevicePolicy = lib.mkForce "auto";
       };
 
     testScript = ''
@@ -14,6 +16,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
       machine.succeed(
           "journalctl -eu zigbee2mqtt | grep \"Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyACM0'\""
       )
+
+      machine.log(machine.succeed("systemd-analyze security zigbee2mqtt.service"))
     '';
   }
 )
diff --git a/nixpkgs/pkgs/applications/accessibility/dasher/default.nix b/nixpkgs/pkgs/applications/accessibility/dasher/default.nix
index fe0d8fe86346..328ff2c5c570 100644
--- a/nixpkgs/pkgs/applications/accessibility/dasher/default.nix
+++ b/nixpkgs/pkgs/applications/accessibility/dasher/default.nix
@@ -1,22 +1,33 @@
-{ stdenv, lib, fetchFromGitHub
-, autoreconfHook, pkg-config, wrapGAppsHook
-, glib, gtk3, expat, gnome-doc-utils, which
-, at-spi2-core, dbus
-, libxslt, libxml2
-, speechSupport ? true, speechd ? null
+{ stdenv
+, lib
+, fetchFromGitLab
+, autoreconfHook
+, pkg-config
+, wrapGAppsHook
+, glib
+, gtk3
+, expat
+, itstool
+, gnome-doc-utils
+, which
+, at-spi2-core
+, dbus
+, libxslt
+, libxml2
+, speechSupport ? true
+, speechd
 }:
 
-assert speechSupport -> speechd != null;
-
 stdenv.mkDerivation {
   pname = "dasher";
-  version = "2018-04-03";
+  version = "unstable-2021-04-25";
 
-  src = fetchFromGitHub {
-    owner = "dasher-project";
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
     repo = "dasher";
-    rev = "9ab12462e51d17a38c0ddc7f7ffe1cb5fe83b627";
-    sha256 = "1r9xn966nx3pv2bidd6i3pxmprvlw6insnsb38zabmac609h9d9s";
+    rev = "90c753b87564fa3f42cb2d04e1eb6662dc8e0f8f";
+    sha256 = "sha256-aM05CV68pCRlhfIPyhuHWeRL+tDroB3fVsoX08OU8hY=";
   };
 
   prePatch = ''
@@ -33,23 +44,27 @@ stdenv.mkDerivation {
     # doc generation
     gnome-doc-utils
     which
-    libxslt libxml2
+    libxslt
+    libxml2
   ];
 
   buildInputs = [
     glib
     gtk3
     expat
+    itstool
     # at-spi2 needs dbus to be recognized by pkg-config
-    at-spi2-core dbus
+    at-spi2-core
+    dbus
   ] ++ lib.optional speechSupport speechd;
 
+  enableParallelBuilding = true;
+
   meta = {
-    homepage = "http://www.inference.org.uk/dasher/";
+    homepage = "https://www.inference.org.uk/dasher/";
     description = "Information-efficient text-entry interface, driven by natural continuous pointing gestures";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [ lib.maintainers.Profpatsch ];
     platforms = lib.platforms.all;
   };
-
 }
diff --git a/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix b/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix
index 2ff36bb68333..9e18904ff659 100644
--- a/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix
+++ b/nixpkgs/pkgs/applications/accessibility/mousetweaks/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config
-, glib, gtk3, gnome3, gsettings-desktop-schemas, wrapGAppsHook
+, glib, gtk3, gnome, gsettings-desktop-schemas, wrapGAppsHook
 , libX11, libXtst, libXfixes, libXcursor
 }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix b/nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix
index 08042a7701b9..71a0823f78d3 100644
--- a/nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix
+++ b/nixpkgs/pkgs/applications/accessibility/squeekboard/default.nix
@@ -4,7 +4,7 @@
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , glib
 , gtk3
 , wayland
@@ -18,14 +18,14 @@
 
 stdenv.mkDerivation rec {
   pname = "squeekboard";
-  version = "unstable-2021-03-09";
+  version = "1.13.0";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
     owner = "Librem5";
     repo = pname;
-    rev = "bffd212e102bf71a94c599aac0359a8d30d19008";
-    sha256 = "1j10zhyb8wyrcbryfj6f3drn9b0l9x0l7hnhy2imnjbfbnwwm4w7";
+    rev = "v${version}";
+    sha256 = "0xyd6ickbaqvrr8a7ak6j1ziqjk05jlnganjrdv43p74nnjyqr8y";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
       cat Cargo.toml.in Cargo.deps > Cargo.toml
     '';
     name = "${pname}-${version}";
-    sha256 = "1qaqiaxqc4x2x5bd31na4c49vbjwrmz5clmgli7733dv55rxxias";
+    sha256 = "096skk7vmr93axcf0qj7kyr8hm1faj0nkmd349g8mnzwd68a9npz";
   };
 
   nativeBuildInputs = [
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3
-    gnome3.gnome-desktop
+    gnome.gnome-desktop
     wayland
     wayland-protocols
     libxml2
diff --git a/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix b/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix
index 025563f98bee..9b9649cf9f8a 100644
--- a/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix
+++ b/nixpkgs/pkgs/applications/audio/CHOWTapeModel/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib
+{ alsa-lib
 , curl
 , fetchFromGitHub
 , freeglut
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     curl
     freeglut
     freetype
diff --git a/nixpkgs/pkgs/applications/audio/MMA/default.nix b/nixpkgs/pkgs/applications/audio/MMA/default.nix
index 25cb96965092..3034de750cf9 100644
--- a/nixpkgs/pkgs/applications/audio/MMA/default.nix
+++ b/nixpkgs/pkgs/applications/audio/MMA/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, python3, alsaUtils, timidity }:
+{ lib, stdenv, fetchurl, makeWrapper, python3, alsa-utils, timidity }:
 
   stdenv.mkDerivation rec {
   version = "20.12";
@@ -10,13 +10,13 @@
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ python3 alsaUtils timidity ];
+  buildInputs = [ python3 alsa-utils timidity ];
 
   patchPhase = ''
-    sed -i 's@/usr/bin/aplaymidi@/${alsaUtils}/bin/aplaymidi@g' mma-splitrec
-    sed -i 's@/usr/bin/aplaymidi@/${alsaUtils}/bin/aplaymidi@g' util/mma-splitrec.py
-    sed -i 's@/usr/bin/arecord@/${alsaUtils}/bin/arecord@g' mma-splitrec
-    sed -i 's@/usr/bin/arecord@/${alsaUtils}/bin/arecord@g' util/mma-splitrec.py
+    sed -i 's@/usr/bin/aplaymidi@/${alsa-utils}/bin/aplaymidi@g' mma-splitrec
+    sed -i 's@/usr/bin/aplaymidi@/${alsa-utils}/bin/aplaymidi@g' util/mma-splitrec.py
+    sed -i 's@/usr/bin/arecord@/${alsa-utils}/bin/arecord@g' mma-splitrec
+    sed -i 's@/usr/bin/arecord@/${alsa-utils}/bin/arecord@g' util/mma-splitrec.py
     sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' mma-splitrec
     sed -i 's@/usr/bin/timidity@/${timidity}/bin/timidity@g' util/mma-splitrec.py
     find . -type f | xargs sed -i 's@/usr/bin/env python@${python3.interpreter}@g'
diff --git a/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix b/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
index 4f76178a29d0..eafbfec96648 100644
--- a/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
+++ b/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, pkg-config, alsaLib, dbus, libjack2
+{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, pkg-config, alsa-lib, dbus, libjack2
 , python3Packages , meson, ninja }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper meson ninja ];
-  buildInputs = [ alsaLib dbus libjack2 ] ++
+  buildInputs = [ alsa-lib dbus libjack2 ] ++
                 (with python3Packages; [ python dbus-python ]);
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/audio/adlplug/default.nix b/nixpkgs/pkgs/applications/audio/adlplug/default.nix
index ecc429de6b2b..9b0fe1d80ff3 100644
--- a/nixpkgs/pkgs/applications/audio/adlplug/default.nix
+++ b/nixpkgs/pkgs/applications/audio/adlplug/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libjack2, alsaLib
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libjack2, alsa-lib
 , freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
 , fetchpatch, fmt
 , adlplugChip ? "-DADLplug_CHIP=OPL3"
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ adlplugChip "-DADLplug_USE_SYSTEM_FMT=ON" ];
 
   buildInputs = [
-    libjack2 alsaLib freetype libX11 libXrandr libXinerama libXext
+    libjack2 alsa-lib freetype libX11 libXrandr libXinerama libXext
     libXcursor
   ];
   nativeBuildInputs = [ cmake pkg-config fmt ];
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     homepage = src.meta.homepage;
     license = licenses.boost;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/aeolus/default.nix b/nixpkgs/pkgs/applications/audio/aeolus/default.nix
index 000108b6de1f..d8ef7d2b4fa5 100644
--- a/nixpkgs/pkgs/applications/audio/aeolus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/aeolus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libclthreads, zita-alsa-pcmi, alsaLib, libjack2
+{ lib, stdenv, fetchurl, libclthreads, zita-alsa-pcmi, alsa-lib, libjack2
 , libclxclient, libX11, libXft, readline
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    libclthreads zita-alsa-pcmi alsaLib libjack2 libclxclient
+    libclthreads zita-alsa-pcmi alsa-lib libjack2 libclxclient
     libX11 libXft readline
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix b/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
index 418426530bfe..00fde01859c8 100644
--- a/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, jack2, minixml, pkg-config }:
+{ lib, stdenv, fetchurl, alsa-lib, jack2, minixml, pkg-config }:
 
 stdenv.mkDerivation rec {
   name =  packageName + "-" + version ;
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib minixml jack2 ];
+  buildInputs = [ alsa-lib minixml jack2 ];
 
   meta = with lib; {
     description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
diff --git a/nixpkgs/pkgs/applications/audio/amarok/default.nix b/nixpkgs/pkgs/applications/audio/amarok/default.nix
index c75adb11ed49..10d1bb9ca656 100644
--- a/nixpkgs/pkgs/applications/audio/amarok/default.nix
+++ b/nixpkgs/pkgs/applications/audio/amarok/default.nix
@@ -3,7 +3,7 @@
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
 , fftw, phonon, plasma-framework, threadweaver
-, curl, ffmpeg_3, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
+, curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
 }:
 
 mkDerivation rec {
@@ -23,7 +23,7 @@ mkDerivation rec {
     qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
     karchive kcmutils kconfig kdnssd kguiaddons kinit kirigami2 knewstuff knotifyconfig ktexteditor kwindowsystem
     phonon plasma-framework threadweaver
-    curl fftw ffmpeg_3 gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
+    curl fftw ffmpeg gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
     pcre snappy taglib taglib_extras
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/ams/default.nix b/nixpkgs/pkgs/applications/audio/ams/default.nix
index 188584b8e732..388d8b44dcf5 100644
--- a/nixpkgs/pkgs/applications/audio/ams/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ams/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchgit
 , automake
-, alsaLib
+, alsa-lib
 , ladspaH
 , libjack2
 , fftw
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     ladspaH
     libjack2
     fftw
diff --git a/nixpkgs/pkgs/applications/audio/ardour/5.nix b/nixpkgs/pkgs/applications/audio/ardour/5.nix
index 9e8c075bfb07..b25f9339da13 100644
--- a/nixpkgs/pkgs/applications/audio/ardour/5.nix
+++ b/nixpkgs/pkgs/applications/audio/ardour/5.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchgit
-, alsaLib
+, alsa-lib
 , aubio
 , boost
 , cairomm
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     aubio
     boost
     cairomm
diff --git a/nixpkgs/pkgs/applications/audio/ardour/default.nix b/nixpkgs/pkgs/applications/audio/ardour/default.nix
index b66432640710..8ebf4bf0fc4b 100644
--- a/nixpkgs/pkgs/applications/audio/ardour/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ardour/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchgit
-, alsaLib
+, alsa-lib
 , aubio
 , boost
 , cairomm
@@ -8,7 +8,7 @@
 , curl
 , dbus
 , doxygen
-, ffmpeg_3
+, ffmpeg
 , fftw
 , fftwSinglePrec
 , flac
@@ -56,13 +56,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "ardour";
-  version = "6.5";
+  version = "6.7";
 
   # don't fetch releases from the GitHub mirror, they are broken
   src = fetchgit {
     url = "git://git.ardour.org/ardour/ardour.git";
     rev = version;
-    sha256 = "0sd38hchyr16biq9hcxha4ljy3pf0yhcgn90i5zfqcznnc57ildx";
+    sha256 = "19jc29fjwgvqbg3gnmy50mrz8mh5x4nwddglasvwx83nc87qwllx";
   };
 
   patches = [
@@ -82,14 +82,14 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     aubio
     boost
     cairomm
     cppunit
     curl
     dbus
-    ffmpeg_3
+    ffmpeg
     fftw
     fftwSinglePrec
     flac
@@ -148,8 +148,8 @@ stdenv.mkDerivation rec {
     sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
     patchShebangs ./tools/
     substituteInPlace libs/ardour/video_tools_paths.cc \
-      --replace 'ffmpeg_exe = X_("");' 'ffmpeg_exe = X_("${ffmpeg_3}/bin/ffmpeg");' \
-      --replace 'ffprobe_exe = X_("");' 'ffprobe_exe = X_("${ffmpeg_3}/bin/ffprobe");'
+      --replace 'ffmpeg_exe = X_("");' 'ffmpeg_exe = X_("${ffmpeg}/bin/ffmpeg");' \
+      --replace 'ffprobe_exe = X_("");' 'ffprobe_exe = X_("${ffmpeg}/bin/ffprobe");'
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/audio/audacious/default.nix b/nixpkgs/pkgs/applications/audio/audacious/default.nix
index 82a2303e26b3..db6e03f47417 100644
--- a/nixpkgs/pkgs/applications/audio/audacious/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audacious/default.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, fetchurl, fetchpatch,
   gettext, pkg-config,
   qtbase,
-  alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
+  alsa-lib, curl, faad2, ffmpeg, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
   libcddb, libcdio, libcdio-paranoia, libcue, libjack2, libmad, libmms, libmodplug,
   libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
   libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
@@ -29,7 +29,7 @@ mkDerivation rec {
     qtbase
 
     # Plugin dependencies
-    alsaLib curl faad2 ffmpeg flac fluidsynth gdk-pixbuf lame libbs2b libcddb
+    alsa-lib curl faad2 ffmpeg flac fluidsynth gdk-pixbuf lame libbs2b libcddb
     libcdio libcdio-paranoia libcue libjack2 libmad libmms libmodplug libmowgli
     libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
     libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
diff --git a/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix
index 36320a01061f..354bc0ebd764 100644
--- a/nixpkgs/pkgs/applications/audio/audacity/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -15,9 +15,10 @@
 , lilv
 , serd
 , sord
+, sqlite
 , sratom
 , suil
-, alsaLib
+, alsa-lib
 , libsndfile
 , soxr
 , flac
@@ -28,53 +29,65 @@
 , ffmpeg
 , soundtouch
 , pcre /*, portaudio - given up fighting their portaudio.patch */
-, at-spi2-core ? null
-, dbus ? null
-, epoxy ? null
-, libXdmcp ? null
-, libXtst ? null
-, libpthreadstubs ? null
-, libselinux ? null
-, libsepol ? null
-, libxkbcommon ? null
-, utillinux ? null
+, linuxHeaders
+, at-spi2-core
+, dbus
+, epoxy
+, libXdmcp
+, libXtst
+, libpthreadstubs
+, libselinux
+, libsepol
+, libxkbcommon
+, util-linux
 }:
 
 # TODO
-# - as of 2.4.2, GTK2 is still the recommended version ref https://www.audacityteam.org/download/source/ check if that changes in future versions
-# - detach sbsms
+# 1. as of 3.0.2, GTK2 is still the recommended version ref https://www.audacityteam.org/download/source/ check if that changes in future versions
+# 2. detach sbsms
 
+let
+  inherit (lib) optionals;
+
+  wxGTK' = wxGTK.overrideAttrs (oldAttrs: rec {
+    src = fetchFromGitHub {
+      owner = "audacity";
+      repo = "wxWidgets";
+      rev = "07e7d832c7a337aedba3537b90b2c98c4d8e2985";
+      sha256 = "1mawnkcrmqj98jp0jxlnh9xkc950ca033ccb51c7035pzmi9if9a";
+      fetchSubmodules = true;
+    };
+  });
+
+in
 stdenv.mkDerivation rec {
   pname = "audacity";
-  version = "2.4.2";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "audacity";
     repo = "audacity";
     rev = "Audacity-${version}";
-    sha256 = "sha256-hpRTo5B0EMyzORopsNPOgv6mohBkwJfWfCLnPvFmdFI=";
+    sha256 = "035qq2ff16cdl2cb9iply2bfjmhfl1dpscg79x6c9l0i9m8k41zj";
   };
 
   patches = [
     (fetchpatch {
-      url = "https://github.com/audacity/audacity/commit/a070b5d8a8ba10fb86edba6aeb8fdab0f66ba408.patch";
-      sha256 = "sha256-8UZupGcN+/tytAhyy5T1P0nufvsQPeyLgOUMGt7l8Oc=";
+      url = "https://github.com/audacity/audacity/pull/831/commits/007852e51fcbb5f1f359d112f28b8984a604dac6.patch";
+      sha256 = "0zp2iydd46analda9cfnbmzdkjphz5m7dynrdj5qdnmq6j3px9fw";
       name = "audacity_xdg_paths.patch";
     })
   ];
 
-  # this file *should* be generated by cmake but as of 2.4.2 isn't yet
   postPatch = ''
     touch src/RevisionIdent.h
-  '';
 
-  # workaround for a broken cmake. Drop it with a later version to see if it works.
-  # https://github.com/NixOS/nixpkgs/issues/94905
-  cmakeFlags = lib.optional stdenv.isLinux "-DCMAKE_OSX_ARCHITECTURES=";
+    substituteInPlace src/FileNames.cpp \
+      --replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
+  '';
 
   # audacity only looks for ffmpeg at runtime, so we need to link it in manually
   NIX_LDFLAGS = toString [
-    # ffmpeg
     "-lavcodec"
     "-lavdevice"
     "-lavfilter"
@@ -86,10 +99,17 @@ stdenv.mkDerivation rec {
     "-lswscale"
   ];
 
-  nativeBuildInputs = [ cmake gettext pkg-config python3 ];
+  nativeBuildInputs = [
+    cmake
+    gettext
+    pkg-config
+    python3
+  ] ++ optionals stdenv.isLinux [
+    linuxHeaders
+  ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     expat
     ffmpeg
     file
@@ -107,12 +127,13 @@ stdenv.mkDerivation rec {
     sord
     soundtouch
     soxr
+    sqlite
     sratom
     suil
     twolame
-    wxGTK
-    wxGTK.gtk
-  ] ++ lib.optionals stdenv.isLinux [
+    wxGTK'
+    wxGTK'.gtk
+  ] ++ optionals stdenv.isLinux [
     at-spi2-core
     dbus
     epoxy
@@ -122,7 +143,7 @@ stdenv.mkDerivation rec {
     libxkbcommon
     libselinux
     libsepol
-    utillinux
+    util-linux
   ];
 
   doCheck = false; # Test fails
diff --git a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
index fca3eaf223e9..a66a5e6c9dc4 100644
--- a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
+++ b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, freetype, gdk-pixbuf
+{ stdenv, fetchurl, alsa-lib, bzip2, cairo, dpkg, freetype, gdk-pixbuf
 , wrapGAppsHook, gtk2, gtk3, harfbuzz, jdk, lib, xorg
-, libbsd, libjack2, libpng, ffmpeg_3
+, libbsd, libjack2, libpng, ffmpeg
 , libxkbcommon
 , makeWrapper, pixman, autoPatchelfHook
 , xdg-utils, zenity, zlib }:
@@ -22,13 +22,13 @@ stdenv.mkDerivation rec {
   dontWrapGApps = true; # we only want $gappsWrapperArgs here
 
   buildInputs = with xorg; [
-    alsaLib bzip2.out cairo freetype gdk-pixbuf gtk2 gtk3 harfbuzz libX11 libXau
+    alsa-lib bzip2.out cairo freetype gdk-pixbuf gtk2 gtk3 harfbuzz libX11 libXau
     libXcursor libXdmcp libXext libXfixes libXrender libbsd libjack2 libpng libxcb
     libxkbfile pixman xcbutil xcbutilwm zlib
   ];
 
   binPath = lib.makeBinPath [
-    xdg-utils zenity ffmpeg_3
+    xdg-utils zenity ffmpeg
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 28b5ef438e22..b041d7e19102 100644
--- a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, alsaLib, cairo, dpkg, freetype
+{ stdenv, fetchurl, alsa-lib, cairo, dpkg, freetype
 , gdk-pixbuf, glib, gtk3, lib, xorg
-, libglvnd, libjack2, ffmpeg_3
+, libglvnd, libjack2, ffmpeg
 , libxkbcommon, xdg-utils, zlib, pulseaudio
 , wrapGAppsHook, makeWrapper }:
 
@@ -24,11 +24,11 @@ stdenv.mkDerivation rec {
   dontWrapGApps = true; # we only want $gappsWrapperArgs here
 
   buildInputs = with xorg; [
-    alsaLib cairo freetype gdk-pixbuf glib gtk3 libxcb xcbutil xcbutilwm zlib libXtst libxkbcommon pulseaudio libjack2 libX11 libglvnd libXcursor stdenv.cc.cc.lib
+    alsa-lib cairo freetype gdk-pixbuf glib gtk3 libxcb xcbutil xcbutilwm zlib libXtst libxkbcommon pulseaudio libjack2 libX11 libglvnd libXcursor stdenv.cc.cc.lib
   ];
 
   binPath = lib.makeBinPath [
-    xdg-utils ffmpeg_3
+    xdg-utils ffmpeg
   ];
 
   ldLibraryPath = lib.strings.makeLibraryPath buildInputs;
diff --git a/nixpkgs/pkgs/applications/audio/bjumblr/default.nix b/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
index 104c795c11e7..ce81415cd5db 100644
--- a/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, libX11, cairo, lv2, pkg-config, libsndfile }:
 
 stdenv.mkDerivation rec {
-  pname = "BJumblr";
-  version = "1.4.2";
+  pname = "bjumblr";
+  version = "1.6.6";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
-    repo = pname;
+    repo = "BJumblr";
     rev = version;
-    sha256 = "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v";
+    sha256 = "1nbxi54023vck3qgmr385cjzinmdnvz62ywb6bcksmc3shl080mg";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/boops/default.nix b/nixpkgs/pkgs/applications/audio/boops/default.nix
new file mode 100644
index 000000000000..b1b91aaf9de0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/boops/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, xorg, cairo, lv2, libsndfile, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "boops";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = "BOops";
+    rev = version;
+    sha256 = "sha256-7eNvt8PxIZCp83Y5XX5fBolBon4j+HPtu8wrgG8Miok=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    xorg.libX11 cairo lv2 libsndfile
+  ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/sjaehn/BOops";
+    description = "Sound glitch effect sequencer LV2 plugin";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/bristol/default.nix b/nixpkgs/pkgs/applications/audio/bristol/default.nix
index e86341a608e3..0c9248b5f0bc 100644
--- a/nixpkgs/pkgs/applications/audio/bristol/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bristol/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, libjack2, pkg-config, libpulseaudio, xorg }:
+{ lib, stdenv, fetchurl, alsa-lib, libjack2, pkg-config, libpulseaudio, xorg }:
 
 stdenv.mkDerivation  rec {
   pname = "bristol";
@@ -11,7 +11,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    alsaLib libjack2 libpulseaudio xorg.libX11 xorg.libXext
+    alsa-lib libjack2 libpulseaudio xorg.libX11 xorg.libXext
     xorg.xorgproto
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/bsequencer/default.nix b/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
index 58b48a581ae1..8fb646855952 100644
--- a/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }:
 
 stdenv.mkDerivation rec {
-  pname = "BSEQuencer";
+  pname = "bsequencer";
   version = "1.8.8";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
-    repo = pname;
+    repo = "BSEQuencer";
     rev = version;
     sha256 = "sha256-OArIMf0XP9CKDdb3H4s8jMzVRjoLFQDPmTS9rS2KW3w=";
   };
diff --git a/nixpkgs/pkgs/applications/audio/bshapr/default.nix b/nixpkgs/pkgs/applications/audio/bshapr/default.nix
index de8566709c1a..728c60b2e86f 100644
--- a/nixpkgs/pkgs/applications/audio/bshapr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bshapr/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }:
 
 stdenv.mkDerivation rec {
-  pname = "BShapr";
-  version = "0.12";
+  pname = "bshapr";
+  version = "0.13";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
-    repo = pname;
+    repo = "BShapr";
     rev = "v${version}";
-    sha256 = "sha256-2DySlD5ZTxeQ2U++Dr67bek5oVbAiOHCxM6S5rTTZN0=";
+    sha256 = "sha256-9I4DPRl6i/VL8Etw3qLGZkP45BGsbxFxNOvRy3B3I+M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/bslizr/default.nix b/nixpkgs/pkgs/applications/audio/bslizr/default.nix
index 3d8e0c8f356f..df81e0960b31 100644
--- a/nixpkgs/pkgs/applications/audio/bslizr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bslizr/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, pkg-config }:
 
 stdenv.mkDerivation rec {
-  pname = "BSlizr";
-  version = "1.2.12";
+  pname = "bslizr";
+  version = "1.2.16";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
-    repo = pname;
+    repo = "BSlizr";
     rev = version;
-    sha256 = "sha256-vPkcgG+pAfjsPRMyxdMRUxWGch+RG+pdaAcekP5pKEA=";
+    sha256 = "sha256-5DvVkTz79CLvZMZ3XnI0COIfxnhERDSvzbVoJAcqNRI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/bucklespring/default.nix b/nixpkgs/pkgs/applications/audio/bucklespring/default.nix
new file mode 100644
index 000000000000..ee363c5c32e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bucklespring/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, legacy ? false
+, libinput
+
+, pkg-config
+, makeWrapper
+
+, openal
+, alure
+, libXtst
+, libX11
+}:
+
+let
+  inherit (lib) optionals;
+in
+stdenv.mkDerivation rec {
+  pname = "bucklespring";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "zevv";
+    repo = pname;
+    rev = version;
+    sha256 = "114dib4npb7r1z2zd1fwsx71xbf9r6psxqd7n7590cwz1w3r51mz";
+  };
+
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+
+  buildInputs = [ openal alure ]
+    ++ optionals (legacy) [ libXtst libX11 ]
+    ++ optionals (!legacy) [ libinput ];
+
+  makeFlags = optionals (!legacy) [ "libinput=1" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/wav
+    cp -r $src/wav $out/share/.
+    install -D ./buckle.desktop $out/share/applications/buckle.desktop
+    install -D ./buckle $out/bin/buckle
+    wrapProgram $out/bin/buckle --add-flags "-p $out/share/wav"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Nostalgia bucklespring keyboard sound";
+    longDescription = ''
+      When built with libinput (wayland or bare console),
+      users need to be in the input group to use this:
+      <code>users.users.alice.extraGroups = [ "input" ];</code>
+    '';
+    homepage = "https://github.com/zevv/bucklespring";
+    license = licenses.gpl2Only;
+    platforms  = platforms.unix;
+    maintainers = [ maintainers.evils ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/cadence/default.nix b/nixpkgs/pkgs/applications/audio/cadence/default.nix
index 2d3ac0c314ea..62bf32eb71d0 100644
--- a/nixpkgs/pkgs/applications/audio/cadence/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cadence/default.nix
@@ -98,7 +98,7 @@ mkDerivation rec {
     homepage = "https://github.com/falkTX/Cadence/";
     description = "Collection of tools useful for audio production";
     license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ worldofpeace ];
+    maintainers = with lib.maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/callaudiod/default.nix b/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
index 6529cd860c8a..0cc1ccd2aca5 100644
--- a/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
+++ b/nixpkgs/pkgs/applications/audio/callaudiod/default.nix
@@ -5,7 +5,7 @@
 , ninja
 , pkg-config
 , glib
-, alsaLib
+, alsa-lib
 , libpulseaudio
 }:
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     libpulseaudio
     glib
   ];
diff --git a/nixpkgs/pkgs/applications/audio/cantata/default.nix b/nixpkgs/pkgs/applications/audio/cantata/default.nix
index 8f02e8da8934..45482c4de007 100644
--- a/nixpkgs/pkgs/applications/audio/cantata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cantata/default.nix
@@ -1,22 +1,42 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
-, qtbase, qtsvg, qttools, perl
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qtbase
+, qtsvg
+, qttools
+, perl
 
-# Cantata doesn't build with cdparanoia enabled so we disable that
-# default for now until I (or someone else) figure it out.
-, withCdda ? false, cdparanoia
-, withCddb ? false, libcddb
-, withLame ? false, lame
-, withMusicbrainz ? false, libmusicbrainz5
+  # Cantata doesn't build with cdparanoia enabled so we disable that
+  # default for now until I (or someone else) figure it out.
+, withCdda ? false
+, cdparanoia
+, withCddb ? false
+, libcddb
+, withLame ? false
+, lame
+, withMusicbrainz ? false
+, libmusicbrainz5
 
-, withTaglib ? true, taglib, taglib_extras
-, withHttpStream ? true, qtmultimedia
-, withReplaygain ? true, ffmpeg_3, speex, mpg123
-, withMtp ? true, libmtp
+, withTaglib ? true
+, taglib
+, taglib_extras
+, withHttpStream ? true
+, qtmultimedia
+, withReplaygain ? true
+, ffmpeg
+, speex
+, mpg123
+, withMtp ? true
+, libmtp
 , withOnlineServices ? true
-, withDevices ? true, udisks2
+, withDevices ? true
+, udisks2
 , withDynamic ? true
 , withHttpServer ? true
-, withLibVlc ? false, libvlc
+, withLibVlc ? false
+, libvlc
 , withStreams ? true
 }:
 
@@ -31,22 +51,39 @@ assert withReplaygain -> withTaglib;
 assert withLibVlc -> withHttpStream;
 
 let
-  version = "2.4.2";
-  pname = "cantata";
-  fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
-  fstats = x: map (fstat x);
+  fstat = x: fn:
+    "-DENABLE_${fn}=${if x then "ON" else "OFF"}";
 
   withUdisks = (withTaglib && withDevices);
 
-  perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);
+  options = [
+    { names = [ "CDDB" ]; enable = withCddb; pkgs = [ libcddb ]; }
+    { names = [ "CDPARANOIA" ]; enable = withCdda; pkgs = [ cdparanoia ]; }
+    { names = [ "DEVICES_SUPPORT" ]; enable = withDevices; pkgs = [ ]; }
+    { names = [ "DYNAMIC" ]; enable = withDynamic; pkgs = [ ]; }
+    { names = [ "FFMPEG" "MPG123" "SPEEXDSP" ]; enable = withReplaygain; pkgs = [ ffmpeg speex mpg123 ]; }
+    { names = [ "HTTPS_SUPPORT" ]; enable = true; pkgs = [ ]; }
+    { names = [ "HTTP_SERVER" ]; enable = withHttpServer; pkgs = [ ]; }
+    { names = [ "HTTP_STREAM_PLAYBACK" ]; enable = withHttpStream; pkgs = [ qtmultimedia ]; }
+    { names = [ "LAME" ]; enable = withLame; pkgs = [ lame ]; }
+    { names = [ "LIBVLC" ]; enable = withLibVlc; pkgs = [ libvlc ]; }
+    { names = [ "MTP" ]; enable = withMtp; pkgs = [ libmtp ]; }
+    { names = [ "MUSICBRAINZ" ]; enable = withMusicbrainz; pkgs = [ libmusicbrainz5 ]; }
+    { names = [ "ONLINE_SERVICES" ]; enable = withOnlineServices; pkgs = [ ]; }
+    { names = [ "STREAMS" ]; enable = withStreams; pkgs = [ ]; }
+    { names = [ "TAGLIB" "TAGLIB_EXTRAS" ]; enable = withTaglib; pkgs = [ taglib taglib_extras ]; }
+    { names = [ "UDISKS2" ]; enable = withUdisks; pkgs = [ udisks2 ]; }
+  ];
 
-in mkDerivation {
-  name = "${pname}-${version}";
+in
+mkDerivation rec {
+  pname = "cantata";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
-    owner  = "CDrummond";
-    repo   = "cantata";
-    rev    = "v${version}";
+    owner = "CDrummond";
+    repo = "cantata";
+    rev = "v${version}";
     sha256 = "15qfx9bpfdplxxs08inwf2j8kvf7g5cln5sv1wj1l2l41vbf1mjr";
   };
 
@@ -61,46 +98,24 @@ in mkDerivation {
     patchShebangs playlists
   '';
 
-  buildInputs = [ qtbase qtsvg perl' ]
-    ++ lib.optionals withTaglib [ taglib taglib_extras ]
-    ++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
-    ++ lib.optional  withHttpStream qtmultimedia
-    ++ lib.optional  withCdda cdparanoia
-    ++ lib.optional  withCddb libcddb
-    ++ lib.optional  withLame lame
-    ++ lib.optional  withMtp libmtp
-    ++ lib.optional  withMusicbrainz libmusicbrainz5
-    ++ lib.optional  withUdisks udisks2
-    ++ lib.optional  withLibVlc libvlc;
+  buildInputs = [
+    qtbase
+    qtsvg
+    (perl.withPackages (ppkgs: with ppkgs; [ URI ]))
+  ]
+  ++ lib.flatten (builtins.catAttrs "pkgs" (builtins.filter (e: e.enable) options));
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
 
-  cmakeFlags = lib.flatten [
-    (fstats withTaglib        [ "TAGLIB" "TAGLIB_EXTRAS" ])
-    (fstats withReplaygain    [ "FFMPEG" "MPG123" "SPEEXDSP" ])
-    (fstat withHttpStream     "HTTP_STREAM_PLAYBACK")
-    (fstat withCdda           "CDPARANOIA")
-    (fstat withCddb           "CDDB")
-    (fstat withLame           "LAME")
-    (fstat withMtp            "MTP")
-    (fstat withMusicbrainz    "MUSICBRAINZ")
-    (fstat withOnlineServices "ONLINE_SERVICES")
-    (fstat withDynamic        "DYNAMIC")
-    (fstat withDevices        "DEVICES_SUPPORT")
-    (fstat withHttpServer     "HTTP_SERVER")
-    (fstat withLibVlc         "LIBVLC")
-    (fstat withStreams        "STREAMS")
-    (fstat withUdisks         "UDISKS2")
-    "-DENABLE_HTTPS_SUPPORT=ON"
-  ];
+  cmakeFlags = lib.flatten (map (e: map (f: fstat e.enable f) e.names) options);
 
   meta = with lib; {
-    homepage    = "https://github.com/cdrummond/cantata";
     description = "A graphical client for MPD";
-    license     = licenses.gpl3;
+    homepage = "https://github.com/cdrummond/cantata";
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
-    # Technically Cantata can run on Windows so if someone wants to
+    # Technically, Cantata should run on Darwin/Windows so if someone wants to
     # bother figuring that one out, be my guest.
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/carla/default.nix b/nixpkgs/pkgs/applications/audio/carla/default.nix
index a9c0ffdfb641..38514e40d000 100644
--- a/nixpkgs/pkgs/applications/audio/carla/default.nix
+++ b/nixpkgs/pkgs/applications/audio/carla/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib, file, fluidsynth, ffmpeg_3, jack2,
+{ lib, stdenv, fetchFromGitHub, alsa-lib, file, fluidsynth, jack2,
   liblo, libpulseaudio, libsndfile, pkg-config, python3Packages,
   which, withFrontend ? true,
   withQt ? true, qtbase ? null, wrapQtAppsHook ? null,
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ] ++ optional withFrontend pyqt5;
 
   buildInputs = [
-    file liblo alsaLib fluidsynth ffmpeg_3 jack2 libpulseaudio libsndfile
+    file liblo alsa-lib fluidsynth jack2 libpulseaudio libsndfile
   ] ++ optional withQt qtbase
     ++ optional withGtk2 gtk2
     ++ optional withGtk3 gtk3;
diff --git a/nixpkgs/pkgs/applications/audio/cava/default.nix b/nixpkgs/pkgs/applications/audio/cava/default.nix
index d024128c821a..cc431ff46b9c 100644
--- a/nixpkgs/pkgs/applications/audio/cava/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cava/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, alsaLib, fftw,
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, alsa-lib, fftw,
   libpulseaudio, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "cava";
-  version = "0.7.3";
+  version = "0.7.4";
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     fftw
     libpulseaudio
     ncurses
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "karlstav";
     repo = "cava";
     rev = version;
-    sha256 = "04j5hb29hivcbk542sfsx9m57dbnj2s6qpvy9fs488zvgjbgxrai";
+    sha256 = "sha256-BlHGst34aUgQcXcuQG43VnKUTclCxfQmWRa6iCud8dc=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/audio/chuck/default.nix b/nixpkgs/pkgs/applications/audio/chuck/default.nix
index f30b5dba5b6b..e051d8585b5c 100644
--- a/nixpkgs/pkgs/applications/audio/chuck/default.nix
+++ b/nixpkgs/pkgs/applications/audio/chuck/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, alsaLib, bison, flex, libsndfile, which
+{ stdenv, lib, fetchurl, alsa-lib, bison, flex, libsndfile, which
 , AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel
 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ flex bison which ];
 
   buildInputs = [ libsndfile ]
-    ++ lib.optional (!stdenv.isDarwin) alsaLib
+    ++ lib.optional (!stdenv.isDarwin) alsa-lib
     ++ lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ];
 
   patches = [ ./darwin-limits.patch ];
diff --git a/nixpkgs/pkgs/applications/audio/clementine/default.nix b/nixpkgs/pkgs/applications/audio/clementine/default.nix
index b84b4e6aa9a4..550100574db4 100644
--- a/nixpkgs/pkgs/applications/audio/clementine/default.nix
+++ b/nixpkgs/pkgs/applications/audio/clementine/default.nix
@@ -1,8 +1,49 @@
-{ lib, mkDerivation, fetchFromGitHub, fetchpatch, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
-, qtbase, qtx11extras
-, taglib, fftw, glew, qjson, sqlite, libgpod, libplist, usbmuxd, libmtp
-, libpulseaudio, gvfs, libcdio, libechonest, libspotify, pcre, projectm, protobuf
-, qca2, pkg-config, sparsehash, config, makeWrapper, gst_plugins }:
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, boost
+, cmake
+, chromaprint
+, gettext
+, gst_all_1
+, liblastfm
+, qtbase
+, qtx11extras
+, qttools
+, taglib
+, fftw
+, glew
+, qjson
+, sqlite
+, libgpod
+, libplist
+, usbmuxd
+, libmtp
+, libpulseaudio
+, gvfs
+, libcdio
+, libechonest
+, libspotify
+, pcre
+, projectm
+, protobuf
+, qca2
+, pkg-config
+, sparsehash
+, config
+, makeWrapper
+, gst_plugins
+
+, util-linux
+, libunwind
+, libselinux
+, elfutils
+, libsepol
+, orc
+
+, alsa-lib
+}:
 
 let
   withIpod = config.clementine.ipod or false;
@@ -22,9 +63,26 @@ let
 
   patches = [
     ./clementine-spotify-blob.patch
+    (fetchpatch {
+      # "short-term" fix for execution on wayland (1.4.0rc1-131-g2179027a6)
+      # for https://github.com/clementine-player/Clementine/issues/6587
+      url = "https://github.com/clementine-player/Clementine/commit/2179027a6d97530c857e43be873baacd696ff332.patch";
+      sha256 = "0344bfcyvjim5ph8w4km6zkg96rj5g9ybp9x14qgyw2gkdksimn6";
+    })
   ];
 
-  nativeBuildInputs = [ cmake pkg-config makeWrapper ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    makeWrapper
+
+    util-linux
+    libunwind
+    libselinux
+    elfutils
+    libsepol
+    orc
+  ];
 
   buildInputs = [
     boost
@@ -45,13 +103,16 @@ let
     qjson
     qtbase
     qtx11extras
+    qttools
     sqlite
     taglib
+
+    alsa-lib
   ]
-  ++ lib.optionals (withIpod) [libgpod libplist usbmuxd]
-  ++ lib.optionals (withMTP) [libmtp]
-  ++ lib.optionals (withCD) [libcdio]
-  ++ lib.optionals (withCloud) [sparsehash];
+  ++ lib.optionals (withIpod) [ libgpod libplist usbmuxd ]
+  ++ lib.optionals (withMTP) [ libmtp ]
+  ++ lib.optionals (withCD) [ libcdio ]
+  ++ lib.optionals (withCloud) [ sparsehash ];
 
   postPatch = ''
     sed -i src/CMakeLists.txt \
@@ -131,4 +192,5 @@ let
     };
   };
 
-in free
+in
+free
diff --git a/nixpkgs/pkgs/applications/audio/cmus/default.nix b/nixpkgs/pkgs/applications/audio/cmus/default.nix
index bfa8317c9f90..ea7ad1015be9 100644
--- a/nixpkgs/pkgs/applications/audio/cmus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cmus/default.nix
@@ -1,12 +1,12 @@
 { config, lib, stdenv, fetchFromGitHub, runCommand, ncurses, pkg-config
 , libiconv, CoreAudio, AudioUnit
 
-, alsaSupport ? stdenv.isLinux, alsaLib ? null
+, alsaSupport ? stdenv.isLinux, alsa-lib ? null
 # simple fallback for everyone else
 , aoSupport ? !stdenv.isLinux, libao ? null
 , jackSupport ? false, libjack ? null
 , samplerateSupport ? jackSupport, libsamplerate ? null
-, ossSupport ? false, alsaOss ? null
+, ossSupport ? false, alsa-oss ? null
 , pulseaudioSupport ? config.pulseaudio or false, libpulseaudio ? null
 , mprisSupport ? stdenv.isLinux, systemd ? null
 
@@ -55,11 +55,11 @@ let
 
   opts = [
     # Audio output
-    (mkFlag alsaSupport       "CONFIG_ALSA=y"       alsaLib)
+    (mkFlag alsaSupport       "CONFIG_ALSA=y"       alsa-lib)
     (mkFlag aoSupport         "CONFIG_AO=y"         libao)
     (mkFlag jackSupport       "CONFIG_JACK=y"       libjack)
     (mkFlag samplerateSupport "CONFIG_SAMPLERATE=y" libsamplerate)
-    (mkFlag ossSupport        "CONFIG_OSS=y"        alsaOss)
+    (mkFlag ossSupport        "CONFIG_OSS=y"        alsa-oss)
     (mkFlag pulseaudioSupport "CONFIG_PULSE=y"      libpulseaudio)
     (mkFlag mprisSupport      "CONFIG_MPRIS=y"      systemd)
 
diff --git a/nixpkgs/pkgs/applications/audio/cmusfm/default.nix b/nixpkgs/pkgs/applications/audio/cmusfm/default.nix
index 79f78452c4ca..4cf91c698be7 100644
--- a/nixpkgs/pkgs/applications/audio/cmusfm/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cmusfm/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, libnotify, gdk-pixbuf }:
 
 stdenv.mkDerivation {
-  version = "2020-07-23";
+  version = "2021-05-19";
   pname = "cmusfm-unstable";
   src = fetchFromGitHub {
     owner = "Arkq";
     repo = "cmusfm";
-    rev = "73df3e64d8aa3b5053b639615b8f81d512420e52";
-    sha256 = "1p9i65v8hda9bsps4hm9m2b7aw9ivk4ncllg8svyp455gn5v8xx6";
+    rev = "a1f9f37c5819ca8a5b48e6185c2ec7ad478b9f1a";
+    sha256 = "19akgvh9gl99xvpmzgqv88w2mnnln7k6290dr5rn3h6a1ihvllaw";
   };
   # building
   configureFlags = [ "--enable-libnotify" ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
       + Inside cmus run `:set status_display_program=cmusfm` to set up cmusfm
     '';
     homepage = "https://github.com/Arkq/cmusfm/";
-    maintainers = with lib.maintainers; [ CharlesHD ];
+    maintainers = with lib.maintainers; [ CharlesHD mudri ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix b/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix
index bcad36e2da98..5eb71cbe04f3 100644
--- a/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix
@@ -12,7 +12,7 @@
 , file
 , cairo
 , gettext
-, gnome3
+, gnome
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
     gtk3
     cairo
     gettext
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ] ++ (with gst_all_1; [
     gstreamer
     gst-plugins-good
diff --git a/nixpkgs/pkgs/applications/audio/csound/default.nix b/nixpkgs/pkgs/applications/audio/csound/default.nix
index a63f75184940..13de229452e5 100644
--- a/nixpkgs/pkgs/applications/audio/csound/default.nix
+++ b/nixpkgs/pkgs/applications/audio/csound/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, libsndfile, libsamplerate, flex, bison, boost, gettext
-, alsaLib ? null
+, alsa-lib ? null
 , libpulseaudio ? null
 , libjack2 ? null
 , liblo ? null
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake flex bison gettext ];
   buildInputs = [ libsndfile libsamplerate boost ]
     ++ builtins.filter (optional: optional != null) [
-      alsaLib libpulseaudio libjack2
+      alsa-lib libpulseaudio libjack2
       liblo ladspa-sdk fluidsynth eigen
       curl tcltk fltk ];
 
diff --git a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
index 9eda63331128..c1cecc13ec56 100644
--- a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
@@ -17,7 +17,7 @@
 , aacSupport ? true, faad2 ? null
 , opusSupport ? true, opusfile ? null
 , wavpackSupport ? false, wavpack ? null
-, ffmpegSupport ? false, ffmpeg_3 ? null
+, ffmpegSupport ? false, ffmpeg ? null
 , apeSupport ? true, yasm ? null
 # misc plugins
 , zipSupport ? true, libzip ? null
@@ -25,7 +25,7 @@
 , hotkeysSupport ? true, libX11 ? null
 , osdSupport ? true, dbus ? null
 # output plugins
-, alsaSupport ? true, alsaLib ? null
+, alsaSupport ? true, alsa-lib ? null
 , pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
 # effect plugins
 , resamplerSupport ? true, libsamplerate ? null
@@ -45,12 +45,12 @@ assert cdaSupport -> (libcdio != null && libcddb != null);
 assert aacSupport -> faad2 != null;
 assert opusSupport -> opusfile != null;
 assert zipSupport -> libzip != null;
-assert ffmpegSupport -> ffmpeg_3 != null;
+assert ffmpegSupport -> ffmpeg != null;
 assert apeSupport -> yasm != null;
 assert artworkSupport -> imlib2 != null;
 assert hotkeysSupport -> libX11 != null;
 assert osdSupport -> dbus != null;
-assert alsaSupport -> alsaLib != null;
+assert alsaSupport -> alsa-lib != null;
 assert pulseSupport -> libpulseaudio != null;
 assert resamplerSupport -> libsamplerate != null;
 assert overloadSupport -> zlib != null;
@@ -79,12 +79,12 @@ stdenv.mkDerivation rec {
     ++ optional aacSupport faad2
     ++ optional opusSupport opusfile
     ++ optional zipSupport libzip
-    ++ optional ffmpegSupport ffmpeg_3
+    ++ optional ffmpegSupport ffmpeg
     ++ optional apeSupport yasm
     ++ optional artworkSupport imlib2
     ++ optional hotkeysSupport libX11
     ++ optional osdSupport dbus
-    ++ optional alsaSupport alsaLib
+    ++ optional alsaSupport alsa-lib
     ++ optional pulseSupport libpulseaudio
     ++ optional resamplerSupport libsamplerate
     ++ optional overloadSupport zlib
diff --git a/nixpkgs/pkgs/applications/audio/diopser/default.nix b/nixpkgs/pkgs/applications/audio/diopser/default.nix
new file mode 100644
index 000000000000..339eae1a7ca9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/diopser/default.nix
@@ -0,0 +1,76 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
+, libjack2, alsa-lib, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
+}:
+
+let
+
+  # Derived from subprojects/function2.wrap
+  function2 = rec {
+    version = "4.1.0";
+    src = fetchFromGitHub {
+      owner = "Naios";
+      repo = "function2";
+      rev = version;
+      hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk=";
+    };
+  };
+
+  juce = rec {
+    version = "unstable-2021-04-07";
+    src = fetchFromGitHub {
+      owner = "juce-framework";
+      repo = "JUCE";
+      rev = "1a5fb5992a1a4e28e998708ed8dce2cc864a30d7";
+      sha256= "1ri7w4sz3sy5xilibg53ls9526fx7jwbv8rc54ccrqfhxqyin308";
+    };
+  };
+
+
+in  stdenv.mkDerivation rec {
+  pname = "diopser";
+  version = "unstable-2021-5-13";
+
+  src = fetchFromGitHub {
+    owner = "robbert-vdh";
+    repo = pname;
+    fetchSubmodules = true;
+    rev = "d5fdc92f1caf5a828e071dac99e106e58f06d84d";
+    sha256 = "06y1h895yxh44gp4vxzrna59lf7nlfw7aacd3kk4l1g56jhy9pdx";
+  };
+
+  postUnpack = ''
+    (
+      cd "$sourceRoot"
+      cp -R --no-preserve=mode,ownership ${function2.src} function2
+      cp -R --no-preserve=mode,ownership ${juce.src} JUCE
+      sed -i 's@CPMAddPackage("gh:juce-framework/JUCE.*@add_subdirectory(JUCE)@g' CMakeLists.txt
+      sed -i 's@CPMAddPackage("gh:Naios/function2.*@add_subdirectory(function2)@g' CMakeLists.txt
+      patchShebangs .
+    )
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/vst3
+    cp -r Diopser_artefacts/Release/VST3/Diopser.vst3 $out/lib/vst3
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [
+    libjack2 alsa-lib freetype libX11 libXrandr libXinerama libXext
+    libXcursor
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
+  ];
+
+  meta = with lib; {
+    description = "A totally original phase rotation plugin";
+    homepage = "https://github.com/robbert-vdh/diopser";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/distrho/default.nix b/nixpkgs/pkgs/applications/audio/distrho/default.nix
index 35825833330d..258eec83724e 100644
--- a/nixpkgs/pkgs/applications/audio/distrho/default.nix
+++ b/nixpkgs/pkgs/applications/audio/distrho/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, alsaLib
+, alsa-lib
 , fetchFromGitHub
 , fftwFloat
 , freetype
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config meson ninja ];
 
   buildInputs = rpathLibs ++ [
-    alsaLib
+    alsa-lib
     freetype
     libGL
     libX11
diff --git a/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix b/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
index 80b2cff3ce03..649c0f39097f 100644
--- a/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
+++ b/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
@@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with pkgs; [
-    python3Packages.numpy flac vorbis-tools ffmpeg_3 faad2 lame
+    python3Packages.numpy flac vorbis-tools ffmpeg faad2 lame
   ];
 
   # There are no tests
diff --git a/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix b/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
index 4f3d2a6a4dcd..a07dca699d79 100644
--- a/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -2,17 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "dragonfly-reverb";
-  version = "3.2.1";
+  version = "3.2.5";
 
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
     rev = version;
-    sha256 = "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa";
+    sha256 = "14kia9wjs0nqfx4psnr3vf4x6hihkf80gb0mjzmdnnnk4cnrdydm";
     fetchSubmodules = true;
   };
 
-  patchPhase = ''
+  postPatch = ''
     patchShebangs dpf/utils/generate-ttl.sh
   '';
 
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     mkdir -p $out/lib/lv2/
     mkdir -p $out/lib/vst/
@@ -31,13 +32,14 @@ stdenv.mkDerivation rec {
       cp -a $bin-vst.so $out/lib/vst/
       cp -a $bin.lv2/   $out/lib/lv2/ ;
     done
+    runHook postInstall
   '';
 
   meta = with lib; {
     homepage = "https://github.com/michaelwillis/dragonfly-reverb";
     description = "A hall-style reverb based on freeverb3 algorithms";
     maintainers = [ maintainers.magnetophon ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = ["x86_64-linux"];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix b/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix
index ef4970a16080..7dd78e513181 100644
--- a/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix
+++ b/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
+{ lib, stdenv, fetchurl, alsa-lib, expat, glib, libjack2, libXext, libX11, libpng
 , libpthreadstubs, libsmf, libsndfile, lv2, pkg-config, zita-resampler
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
-    alsaLib expat glib libjack2 libXext libX11 libpng libpthreadstubs
+    alsa-lib expat glib libjack2 libXext libX11 libpng libpthreadstubs
     libsmf libsndfile lv2 zita-resampler
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/drumkv1/default.nix b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
index c175804a026b..e15e4550e0e5 100644
--- a/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl, pkg-config, libjack2, alsaLib, libsndfile, liblo, lv2, qt5 }:
+{ mkDerivation, lib, fetchurl, pkg-config, libjack2, alsa-lib, libsndfile, liblo, lv2, qt5 }:
 
 mkDerivation rec {
   pname = "drumkv1";
@@ -9,7 +9,7 @@ mkDerivation rec {
     sha256 = "1bzkaz7sqx1pvirja8zm7i2ckzl5ad6xspr4840389ik3l8qpnr5";
   };
 
-  buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
+  buildInputs = [ libjack2 alsa-lib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/audio/easytag/default.nix b/nixpkgs/pkgs/applications/audio/easytag/default.nix
index 65c871640ef5..d55fd7ff0cb6 100644
--- a/nixpkgs/pkgs/applications/audio/easytag/default.nix
+++ b/nixpkgs/pkgs/applications/audio/easytag/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, intltool, gtk3, glib, libid3tag, id3lib, taglib
 , libvorbis, libogg, opusfile, flac, itstool, libxml2, gsettings-desktop-schemas
-, gnome3, wrapGAppsHook
+, gnome, wrapGAppsHook
 }:
 
 let
@@ -19,13 +19,13 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config intltool itstool libxml2 wrapGAppsHook ];
   buildInputs = [
     gtk3 glib libid3tag id3lib taglib libvorbis libogg opusfile flac
-    gsettings-desktop-schemas gnome3.adwaita-icon-theme
+    gsettings-desktop-schemas gnome.adwaita-icon-theme
   ];
 
   doCheck = false; # fails 1 out of 9 tests
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/applications/audio/ecasound/default.nix b/nixpkgs/pkgs/applications/audio/ecasound/default.nix
index e2ec9bf8ab2c..47db22016485 100644
--- a/nixpkgs/pkgs/applications/audio/ecasound/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ecasound/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchurl
 , pkg-config
-, alsaLib
+, alsa-lib
 , audiofile
 , libjack2
 , liblo
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     audiofile
     libjack2
     liblo
diff --git a/nixpkgs/pkgs/applications/audio/eflite/default.nix b/nixpkgs/pkgs/applications/audio/eflite/default.nix
index 6a974abb8aa8..0c48c582c4fc 100644
--- a/nixpkgs/pkgs/applications/audio/eflite/default.nix
+++ b/nixpkgs/pkgs/applications/audio/eflite/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, flite, alsaLib, debug ? false }:
+{ lib, stdenv, fetchurl, fetchpatch, flite, alsa-lib, debug ? false }:
 
 stdenv.mkDerivation rec {
   pname = "eflite";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "088p9w816s02s64grfs28gai3lnibzdjb9d1jwxzr8smbs2qbbci";
   };
 
-  buildInputs = [ flite alsaLib ];
+  buildInputs = [ flite alsa-lib ];
 
   configureFlags = [
     "flite_dir=${flite}"
diff --git a/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix b/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix
index 7858da25b7c5..b3255126205a 100644
--- a/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ensemble-chorus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fltk, alsaLib, freetype, libXrandr, libXinerama, libXcursor, lv2, libjack2, cmake, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, fltk, alsa-lib, freetype, libXrandr, libXinerama, libXcursor, lv2, libjack2, cmake, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "ensemble-chorus";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [
-    fltk alsaLib freetype libXrandr libXinerama libXcursor lv2 libjack2
+    fltk alsa-lib freetype libXrandr libXinerama libXcursor lv2 libjack2
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2.nix b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
index 051caf120fa2..995618af4ce5 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
@@ -20,13 +20,13 @@ with lib.strings;
 
 let
 
-  version = "unstable-2020-08-27";
+  version = "2.30.5";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
-    rev = "c10f316fa90f338e248787ebf55e3795c3a0d70e";
-    sha256 = "068pm04ddafbsj2r8akdpqyzb0m8mp9ql0rgi83hcqs4ndr8v7sb";
+    rev = version;
+    sha256 = "0cs52w4rwaj5d8pjak4cxsg02sxvx4y07592nc3ck81clqjmszmm";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix b/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix
index 8ac26e488b37..111d1c9e5574 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix
@@ -1,5 +1,5 @@
 { faust
-, alsaLib
+, alsa-lib
 , qt4
 }:
 
@@ -8,7 +8,7 @@ faust.wrapWithBuildEnv {
   baseName = "faust2alqt";
 
   propagatedBuildInputs = [
-    alsaLib
+    alsa-lib
     qt4
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix b/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix
index 6af5af9bbafb..bb6121a5d70b 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix
@@ -1,5 +1,5 @@
 { faust
-, alsaLib
+, alsa-lib
 , atk
 , cairo
 , fontconfig
@@ -15,7 +15,7 @@ faust.wrapWithBuildEnv {
   baseName = "faust2alsa";
 
   propagatedBuildInputs = [
-    alsaLib
+    alsa-lib
     atk
     cairo
     fontconfig
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
index ab2450f1e529..bd213bfcadbe 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
@@ -1,7 +1,7 @@
 { faust
 , gtk2
 , jack2
-, alsaLib
+, alsa-lib
 , opencv
 , libsndfile
 , which
@@ -19,7 +19,7 @@ faust.wrapWithBuildEnv {
   propagatedBuildInputs = [
     gtk2
     jack2
-    alsaLib
+    alsa-lib
     opencv
     libsndfile
     which
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
index f6bc4d485fdd..6bebd97ddd24 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
@@ -2,7 +2,7 @@
 , jack2
 , qt4
 , libsndfile
-, alsaLib
+, alsa-lib
 , which
 }:
 
@@ -19,7 +19,7 @@ faust.wrapWithBuildEnv {
     jack2
     qt4
     libsndfile
-    alsaLib
+    alsa-lib
     which
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
index 20afb6fd7617..46d63c84314b 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
@@ -1,22 +1,24 @@
 { lib, stdenv, fetchFromGitHub
-, llvm, qt48Full, qrencode, libmicrohttpd_0_9_70, libjack2, alsaLib, faust, curl
-, bc, coreutils, which, libsndfile, pkg-config
+, llvm_10, qt5, qrencode, libmicrohttpd, libjack2, alsa-lib, faust, curl
+, bc, coreutils, which, libsndfile, pkg-config, libxcb
 }:
 
 stdenv.mkDerivation rec {
   pname = "faustlive";
-  version = "unstable-dev-2020-08-03";
+  version = "2.5.5";
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faustlive";
-    rev = "c16565dc1b616ac0aad7c303c1997fa9e57177ab";
-    sha256 = "1ys661lp1xwz21vy12kwkg248jvjq1z9w433knkh0ldyy2igvmd5";
+    rev = version;
+    sha256 = "0qbn05nq170ckycwalkk5fppklc4g457mapr7p7ryrhc1hwzffm9";
     fetchSubmodules = true;
   };
 
+  nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook ];
+
   buildInputs = [
-    llvm qt48Full qrencode libmicrohttpd_0_9_70 libjack2 alsaLib faust curl
-    bc coreutils which libsndfile pkg-config
+    llvm_10 qt5.qtbase qrencode libmicrohttpd libjack2 alsa-lib faust curl
+    bc coreutils which libsndfile libxcb
   ];
 
   makeFlags = [ "PREFIX=$(out)" ];
@@ -39,5 +41,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://faust.grame.fr/";
     license = licenses.gpl3;
+    maintainers = with maintainers; [ magnetophon ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix b/nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix
new file mode 100644
index 000000000000..f55cee957c77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faustPhysicalModeling/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  pname = "faustPhysicalModeling";
+  version = "2.20.2";
+
+  src = fetchFromGitHub {
+    owner = "grame-cncm";
+    repo = "faust";
+    rev = version;
+    sha256 = "1mm93ba26b7q69hvabzalg30dh8pl858nj4m2bb57pznnp09lq9a";
+  };
+
+  buildInputs = [ faust2jaqt faust2lv2 ];
+
+  buildPhase = ''
+    cd examples/physicalModeling
+
+    for f in *MIDI.dsp; do
+      faust2jaqt -time -vec -double -midi -nvoices 16 -t 99999 $f
+      faust2lv2  -time -vec -double -gui -nvoices 16 -t 99999 $f
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2 $out/bin
+    mv *.lv2/ $out/lib/lv2
+    for f in $(find . -executable -type f); do
+      cp $f $out/bin/
+    done
+  '';
+
+  meta = with lib; {
+    description = "The physical models included with faust compiled as jack standalone and lv2 instruments";
+    homepage = "https://github.com/grame-cncm/faust/tree/master-dev/examples/physicalModeling";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ magnetophon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/faustStk/default.nix b/nixpkgs/pkgs/applications/audio/faustStk/default.nix
new file mode 100644
index 000000000000..85ebb1d9a021
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faustStk/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+
+stdenv.mkDerivation rec {
+  pname = "faustPhhysicalModeling";
+  version = "2.20.2";
+
+  src = fetchFromGitHub {
+    owner = "grame-cncm";
+    repo = "faust";
+    rev = version;
+    sha256 = "1mm93ba26b7q69hvabzalg30dh8pl858nj4m2bb57pznnp09lq9a";
+  };
+
+  buildInputs = [ faust2jaqt faust2lv2 ];
+
+  buildPhase = ''
+    cd examples/physicalModeling/faust-stk
+
+    for f in *.dsp; do
+      faust2jaqt -time -vec  -midi -nvoices 8 -t 99999 $f
+      faust2lv2  -time -vec -double -gui -nvoices 32 -t 99999 $f
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2 $out/bin
+    mv *.lv2/ $out/lib/lv2
+    for f in $(find . -executable -type f); do
+      cp $f $out/bin/
+    done
+  '';
+  meta = with lib; {
+    description = "The physical modeling instruments included with faust, compiled as jack standalone and lv2 instruments";
+    homepage = "https://ccrma.stanford.edu/~rmichon/faustSTK/";
+    license = licenses.stk;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ magnetophon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/flac/default.nix b/nixpkgs/pkgs/applications/audio/flac/default.nix
index b4e4af9f5169..0b1a2edc3baa 100644
--- a/nixpkgs/pkgs/applications/audio/flac/default.nix
+++ b/nixpkgs/pkgs/applications/audio/flac/default.nix
@@ -1,13 +1,22 @@
-{ lib, stdenv, fetchurl, libogg }:
+{ lib, stdenv, fetchurl, fetchpatch, libogg }:
 
 stdenv.mkDerivation rec {
-  name = "flac-1.3.3";
+  pname = "flac";
+  version = "1.3.3";
 
   src = fetchurl {
-    url = "http://downloads.xiph.org/releases/flac/${name}.tar.xz";
+    url = "http://downloads.xiph.org/releases/flac/${pname}-${version}.tar.xz";
     sha256 = "0j0p9sf56a2fm2hkjnf7x3py5ir49jyavg4q5zdyd7bcf6yq4gi1";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2020-0499.patch";
+      url = "https://github.com/xiph/flac/commit/2e7931c27eb15e387da440a37f12437e35b22dd4.patch";
+      sha256 = "160qzq9ms5addz7sx06pnyjjkqrffr54r4wd8735vy4x008z71ah";
+    })
+  ];
+
   buildInputs = [ libogg ];
 
   #doCheck = true; # takes lots of time
diff --git a/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix b/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
index a1fee315d44b..1a6471397de6 100644
--- a/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
+++ b/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, pkg-config, cmake
-, alsaLib, glib, libjack2, libsndfile, libpulseaudio
+, alsa-lib, glib, libjack2, libsndfile, libpulseaudio
 , AudioUnit, CoreAudio, CoreMIDI, CoreServices
 , version ? "2"
 }:
@@ -33,7 +33,7 @@ stdenv.mkDerivation  {
   nativeBuildInputs = [ pkg-config cmake ];
 
   buildInputs = [ glib libsndfile libpulseaudio libjack2 ]
-    ++ lib.optionals stdenv.isLinux [ alsaLib ]
+    ++ lib.optionals stdenv.isLinux [ alsa-lib ]
     ++ lib.optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreMIDI CoreServices ];
 
   cmakeFlags = [ "-Denable-framework=off" ];
diff --git a/nixpkgs/pkgs/applications/audio/fmit/default.nix b/nixpkgs/pkgs/applications/audio/fmit/default.nix
index b91c72a5c754..967c984bc50d 100644
--- a/nixpkgs/pkgs/applications/audio/fmit/default.nix
+++ b/nixpkgs/pkgs/applications/audio/fmit/default.nix
@@ -1,9 +1,9 @@
 { lib, mkDerivation, fetchFromGitHub, fftw, qtbase, qtmultimedia, qmake, itstool, wrapQtAppsHook
-, alsaSupport ? true, alsaLib ? null
+, alsaSupport ? true, alsa-lib ? null
 , jackSupport ? false, libjack2 ? null
 , portaudioSupport ? false, portaudio ? null }:
 
-assert alsaSupport -> alsaLib != null;
+assert alsaSupport -> alsa-lib != null;
 assert jackSupport -> libjack2 != null;
 assert portaudioSupport -> portaudio != null;
 
@@ -22,7 +22,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ qmake itstool wrapQtAppsHook ];
   buildInputs = [ fftw qtbase qtmultimedia ]
-    ++ optionals alsaSupport [ alsaLib ]
+    ++ optionals alsaSupport [ alsa-lib ]
     ++ optionals jackSupport [ libjack2 ]
     ++ optionals portaudioSupport [ portaudio ];
 
diff --git a/nixpkgs/pkgs/applications/audio/freewheeling/default.nix b/nixpkgs/pkgs/applications/audio/freewheeling/default.nix
index 7bd063d9f53e..75e44d8c4fad 100644
--- a/nixpkgs/pkgs/applications/audio/freewheeling/default.nix
+++ b/nixpkgs/pkgs/applications/audio/freewheeling/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, gnutls, freetype
-, SDL, SDL_gfx, SDL_ttf, liblo, libxml2, alsaLib, libjack2, libvorbis
+, SDL, SDL_gfx, SDL_ttf, liblo, libxml2, alsa-lib, libjack2, libvorbis
 , libSM, libsndfile, libogg, libtool
 }:
 let
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config autoreconfHook libtool ];
   buildInputs = [
     freetype SDL SDL_gfx SDL_ttf
-    liblo libxml2 libjack2 alsaLib libvorbis libsndfile libogg libSM
+    liblo libxml2 libjack2 alsa-lib libvorbis libsndfile libogg libSM
     (gnutls.overrideAttrs (oldAttrs: {
       configureFlags = oldAttrs.configureFlags ++ [ "--enable-openssl-compatibility" ];
     }))
diff --git a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
index 8391a7509995..5155a91e725e 100644
--- a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , cmake
 , nixosTests
-, alsaLib
+, alsa-lib
 , SDL2
 , libiconv
 , CoreAudio
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.46";
+  version = "1.47";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "sha256-Y6FgIbNCsxnM/B2bEB7oufBjU1BnBYaz7/oysWttIOc=";
+    sha256 = "sha256-KLHJROOtRPtGHBYEMByY7LG6FY4vES6WndCiz7okan8=";
   };
 
   # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ SDL2 ]
-    ++ lib.optional stdenv.isLinux alsaLib
+    ++ lib.optional stdenv.isLinux alsa-lib
     ++ lib.optionals stdenv.isDarwin [
          libiconv
          CoreAudio
diff --git a/nixpkgs/pkgs/applications/audio/giada/default.nix b/nixpkgs/pkgs/applications/audio/giada/default.nix
index c9b3216edef9..b49335298e01 100644
--- a/nixpkgs/pkgs/applications/audio/giada/default.nix
+++ b/nixpkgs/pkgs/applications/audio/giada/default.nix
@@ -7,7 +7,7 @@
 , libsamplerate
 , libsndfile
 , jack2
-, alsaLib
+, alsa-lib
 , libpulseaudio
 , libXpm
 , libXinerama
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     rtmidi
     libXpm
     jack2
-    alsaLib
+    alsa-lib
     libpulseaudio
     libXinerama
     libXcursor
diff --git a/nixpkgs/pkgs/applications/audio/gnaural/default.nix b/nixpkgs/pkgs/applications/audio/gnaural/default.nix
new file mode 100644
index 000000000000..10c199d94b69
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gnaural/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, pkg-config, libsndfile, portaudio, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "gnaural";
+  version = "20110606";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${pname}_${version}.tar.xz";
+    hash = "sha256-0a09DUMfHEIGYuIYSBGJalBiIHIgejr/KVDXCFgKBb8=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk2 libsndfile portaudio ];
+
+  postInstall = ''
+    mkdir -p $out/share/applications
+    substitute \
+      $out/share/gnome/apps/Multimedia/gnaural.desktop \
+      $out/share/applications/gnaural.desktop \
+      --replace \
+        "/usr/share/gnaural/pixmaps/gnaural-icon.png" \
+        "$out/share/gnaural/pixmaps/gnaural-icon.png" \
+
+    rm -rf $out/share/gnome
+  '';
+
+  meta = with lib; {
+    description = "Programmable auditory binaural-beat synthesizer";
+    homepage = "http://gnaural.sourceforge.net/";
+    maintainers = with maintainers; [ ehmry ];
+    license = with licenses; [ gpl2Only ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
index 6524700ae156..a053dda46a3b 100644
--- a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -8,8 +8,10 @@
 , python3
 , pkg-config
 , glib
-, libhandy_0
+, libhandy
 , gtk3
+, appstream-glib
+, desktop-file-utils
 , dbus
 , openssl
 , sqlite
@@ -19,20 +21,20 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-podcasts";
-  version = "0.4.8";
+  version = "0.4.9";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "podcasts";
     rev = version;
-    sha256 = "0y2332zjq7vf1v38wzwz98fs19vpzy9kl7y0xbdzqr303l59hjb1";
+    sha256 = "1ah59ac3xm3sqai8zhil8ar30pviw83cm8in1n4id77rv24xkvgm";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-GInRA/V61r42spb/JYlM8+mATSkmOxdm2zHPRWaKcck=";
+    sha256 = "1iihpfvkli09ysn46cnif53xizkwzk0m91bljmlzsygp3ip5i5yw";
   };
 
   nativeBuildInputs = [
@@ -49,9 +51,11 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    appstream-glib
+    desktop-file-utils
     glib
     gtk3
-    libhandy_0
+    libhandy
     dbus
     openssl
     sqlite
diff --git a/nixpkgs/pkgs/applications/audio/goattracker/default.nix b/nixpkgs/pkgs/applications/audio/goattracker/default.nix
index 30bb4099233c..743417570c16 100644
--- a/nixpkgs/pkgs/applications/audio/goattracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/goattracker/default.nix
@@ -27,16 +27,16 @@ let
 in stdenv.mkDerivation rec {
   inherit pname;
   version = if isStereo
-    then "2.76"  # stereo
-    else "2.75"; # normal
+    then "2.77"  # stereo
+    else "2.76"; # normal
 
   src = fetchurl {
     url = "mirror://sourceforge/goattracker2/GoatTracker_${version}${optionalString isStereo "_Stereo"}.zip";
     sha256 = if isStereo
-      then "12cz3780x5k047jqdv69n6rjgbfiwv67z850kfl4i37lxja432l7"  # stereo
-      else "1km97nl7qvk6qc5l5j69wncbm76hf86j47sgzgr968423g0bxxlk"; # normal
+      then "1hiig2d152sv9kazwz33i56x1c54h5sh21ipkqnp6qlnwj8x1ksy"  # stereo
+      else "0d7a3han4jw4bwiba3j87racswaajgl3pj4sb5lawdqdxicv3dn1"; # normal
   };
-  sourceRoot = (if isStereo then "gt2stereo/trunk" else "goattrk2") + "/src";
+  sourceRoot = "src";
 
   nativeBuildInputs = [ copyDesktopItems unzip imagemagick ];
   buildInputs = [ SDL ];
diff --git a/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
index 9d891d302349..74286073b904 100644
--- a/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
+++ b/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, alsaLib, atk, at-spi2-atk, cairo, cups, dbus, dpkg, expat, fontconfig, freetype
+{ lib, stdenv, alsa-lib, atk, at-spi2-atk, cairo, cups, dbus, dpkg, expat, fontconfig, freetype
 , fetchurl, GConf, gdk-pixbuf, glib, gtk2, gtk3, libpulseaudio, makeWrapper, nspr
 , nss, pango, udev, xorg
 }:
@@ -7,7 +7,7 @@ let
   version = "4.7.1";
 
   deps = [
-    alsaLib
+    alsa-lib
     atk
     at-spi2-atk
     cairo
diff --git a/nixpkgs/pkgs/applications/audio/gpodder/default.nix b/nixpkgs/pkgs/applications/audio/gpodder/default.nix
index 229050654cd5..681c6ffe2810 100644
--- a/nixpkgs/pkgs/applications/audio/gpodder/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gpodder/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, python3, python3Packages, intltool
-, glibcLocales, gnome3, gtk3, wrapGAppsHook
+, glibcLocales, gnome, gtk3, wrapGAppsHook
 , gobject-introspection
 }:
 
@@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
   buildInputs = [
     python3
     gobject-introspection
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   checkInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/applications/audio/gradio/default.nix b/nixpkgs/pkgs/applications/audio/gradio/default.nix
index 1e0fc40b5331..9e2187f4a8fd 100644
--- a/nixpkgs/pkgs/applications/audio/gradio/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gradio/default.nix
@@ -55,7 +55,6 @@ in stdenv.mkDerivation {
     gsettings-desktop-schemas
   ] ++ gst_plugins;
 
-  enableParallelBuilding = true;
   postInstall = ''
     glib-compile-schemas "$out"/share/glib-2.0/schemas
   '';
diff --git a/nixpkgs/pkgs/applications/audio/grandorgue/default.nix b/nixpkgs/pkgs/applications/audio/grandorgue/default.nix
index 2d660bc736c1..30c6e57188ab 100644
--- a/nixpkgs/pkgs/applications/audio/grandorgue/default.nix
+++ b/nixpkgs/pkgs/applications/audio/grandorgue/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchsvn, cmake, gcc, pkg-config, fftwFloat, alsaLib
+{ lib, stdenv, fetchsvn, cmake, gcc, pkg-config, fftwFloat, alsa-lib
 , zlib, wavpack, wxGTK31, udev, jackaudioSupport ? false, libjack2
 , includeDemo ? true }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ pkg-config fftwFloat alsaLib zlib wavpack wxGTK31 udev ]
+  buildInputs = [ pkg-config fftwFloat alsa-lib zlib wavpack wxGTK31 udev ]
     ++ lib.optional jackaudioSupport libjack2;
 
   cmakeFlags = lib.optional (!jackaudioSupport) [
diff --git a/nixpkgs/pkgs/applications/audio/gtkpod/default.nix b/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
index f39558c1571d..61484bc2fbb1 100644
--- a/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, wrapGAppsHook, intltool, libgpod, curl, flac,
-  gnome3, gtk3, gettext, perlPackages, flex, libid3tag, gdl,
+  gnome, gtk3, gettext, perlPackages, flex, libid3tag, gdl,
   libvorbis, gdk-pixbuf }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     curl gettext
     flex libgpod libid3tag flac libvorbis gtk3 gdk-pixbuf
-    gdl gnome3.adwaita-icon-theme gnome3.anjuta
+    gdl gnome.adwaita-icon-theme gnome.anjuta
   ] ++ (with perlPackages; [ perl XMLParser ]);
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/guitarix/default.nix b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
index 7f41fa6c5f95..f90cae115b4e 100644
--- a/nixpkgs/pkgs/applications/audio/guitarix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchurl
+, fetchpatch
 , avahi
 , bluez
 , boost
@@ -10,7 +11,7 @@
 , glib
 , glib-networking
 , glibmm
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 , gtk3
 , gtkmm3
@@ -41,13 +42,22 @@ in
 
 stdenv.mkDerivation rec {
   pname = "guitarix";
-  version = "0.41.0";
+  version = "0.42.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
-    sha256 = "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0";
+    sha256 = "101c2hdpipj3s6rmva5wf3q9hfjv7bkyzi7s8sgaiys8f7h4czkr";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "guitarix-gcc11.patch";
+      url = "https://github.com/brummer10/guitarix/commit/d8f003484c57d808682025dfb07a7a1fb848afdc.patch";
+      stripLen = 1;
+      sha256 = "1qhlbf18cn6m9jdz3741nrdfqvznjna3daqmn9l10k5nd3asy4il";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     hicolor-icon-theme
@@ -68,7 +78,7 @@ stdenv.mkDerivation rec {
     glib
     glib-networking.out
     glibmm
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gsettings-desktop-schemas
     gtk3
     gtkmm3
diff --git a/nixpkgs/pkgs/applications/audio/gwc/default.nix b/nixpkgs/pkgs/applications/audio/gwc/default.nix
index d6e7c0807a37..aeb64b92c88a 100644
--- a/nixpkgs/pkgs/applications/audio/gwc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gwc/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
-, alsaLib
+, alsa-lib
 , libpulseaudio
 , gtk2
 , hicolor-icon-theme
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gwc";
-  version = "0.22-04";
+  version = "0.22-05";
 
   src = fetchFromGitHub {
     owner = "AlisterH";
     repo = pname;
     rev = version;
-    sha256 = "0xvfra32dchnnyf9kj5s5xmqhln8jdrc9f0040hjr2dsb58y206p";
+    sha256 = "sha256-FHKu5qAyRyMxXdWYTCeAc6Q4J+NOaU1SGgoTbe0PiFE=";
   };
 
   nativeBuildInputs = [
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     libpulseaudio
     gtk2
     hicolor-icon-theme
diff --git a/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix b/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
index d71d40f401c4..5e8747f76566 100644
--- a/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "GxPlugins.lv2";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchFromGitHub {
     owner = "brummer10";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11iv7bwvvspm74pisqvcpsxpg9xi6b08hq4i8q67mri4mvy9hmal";
+    sha256 = "02fksl8wr443ygwgcd1c2zab8kp67a6ps12k71ysqx7szv4zq877";
     fetchSubmodules = true;
   };
 
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/brummer10/GxPlugins.lv2";
     description = "A set of extra lv2 plugins from the guitarix project";
     maintainers = [ maintainers.magnetophon ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix b/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
index bb92682b141f..012838eb436d 100644
--- a/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
+++ b/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
@@ -1,23 +1,23 @@
 { lib, stdenv, fetchFromGitHub
-, alsaLib, freetype, xorg, curl, libGL, libjack2, gnome3
+, alsa-lib, freetype, xorg, curl, libGL, libjack2, gnome
 , pkg-config, makeWrapper
 }:
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.4";
+  version = "3.6";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-zXsDu/xi7OV6VtnZK9ZJ8uwPeA5uTgNpAQsqe90iwG4=";
+    sha256 = "sha256-qW39g6rQ5VPQ3Hx9NmwLbpZiITnzFZDZlcLkE+pJKPc=";
   };
 
   buildInputs = [
-    alsaLib freetype xorg.libX11 xorg.libXext xorg.libXinerama xorg.libXrandr
-    xorg.libXcursor xorg.libXcomposite curl libGL libjack2 gnome3.zenity
+    alsa-lib freetype xorg.libX11 xorg.libXext xorg.libXinerama xorg.libXrandr
+    xorg.libXcursor xorg.libXcomposite curl libGL libjack2 gnome.zenity
   ];
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     install -Dm755 build/Helio $out/bin
-    wrapProgram $out/bin/Helio --prefix PATH ":" ${gnome3.zenity}/bin
+    wrapProgram $out/bin/Helio --prefix PATH ":" ${gnome.zenity}/bin
 
     mkdir -p $out/share
     cp -r ../Deployment/Linux/Debian/x64/usr/share/* $out/share
diff --git a/nixpkgs/pkgs/applications/audio/helm/default.nix b/nixpkgs/pkgs/applications/audio/helm/default.nix
index 172f134907c5..86497e090f43 100644
--- a/nixpkgs/pkgs/applications/audio/helm/default.nix
+++ b/nixpkgs/pkgs/applications/audio/helm/default.nix
@@ -3,7 +3,7 @@
 , fetchpatch
 , xorg
 , freetype
-, alsaLib
+, alsa-lib
 , curl
 , libjack2
 , lv2
@@ -26,7 +26,7 @@
   buildInputs = [
     xorg.libX11 xorg.libXcomposite xorg.libXcursor xorg.libXext
     xorg.libXinerama xorg.libXrender xorg.libXrandr
-    freetype alsaLib curl libjack2 pkg-config libGLU libGL lv2
+    freetype alsa-lib curl libjack2 pkg-config libGLU libGL lv2
   ];
 
   CXXFLAGS = "-DHAVE_LROUND";
diff --git a/nixpkgs/pkgs/applications/audio/helvum/default.nix b/nixpkgs/pkgs/applications/audio/helvum/default.nix
new file mode 100644
index 000000000000..1ecf9c56e861
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/helvum/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitLab
+, makeDesktopItem
+, copyDesktopItems
+, rustPlatform
+, pkg-config
+, clang
+, libclang
+, glib
+, gtk4
+, pipewire
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "helvum";
+  version = "0.2.0";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "ryuukyu";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-sQ4epL3QNOLHuR/dr/amHgiaxV/1SWeb3eijnjAAR3w=";
+  };
+
+  cargoSha256 = "sha256-uNTSU06Fz/ud04K40e98rb7o/uAht0DsiJOXeHX72vw=";
+
+  nativeBuildInputs = [ clang copyDesktopItems pkg-config ];
+  buildInputs = [ glib gtk4 pipewire ];
+
+  LIBCLANG_PATH = "${libclang.lib}/lib";
+
+  desktopItems = makeDesktopItem {
+    name = "Helvum";
+    exec = pname;
+    desktopName = "Helvum";
+    genericName = "Helvum";
+    categories = "AudioVideo;";
+  };
+
+  meta = with lib; {
+    description = "A GTK patchbay for pipewire";
+    homepage = "https://gitlab.freedesktop.org/ryuukyu/helvum";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fufexan ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix b/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
index b887615a30fc..c539a316422a 100644
--- a/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchzip, cmake, pkg-config, lv2, alsaLib, libjack2,
+{ lib, stdenv, fetchFromGitHub, fetchzip, cmake, pkg-config, lv2, alsa-lib, libjack2,
   freetype, libX11, gtk3, pcre, libpthreadstubs, libXdmcp, libxkbcommon,
   epoxy, at-spi2-core, dbus, curl, fftwFloat }:
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = [ lv2 alsaLib libjack2 freetype libX11 gtk3 pcre
+  buildInputs = [ lv2 alsa-lib libjack2 freetype libX11 gtk3 pcre
     libpthreadstubs libXdmcp libxkbcommon epoxy at-spi2-core dbus curl fftwFloat ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/audio/hydrogen/0.nix b/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
index 1746715b834f..ad3566571b0c 100644
--- a/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
+++ b/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, cmake
-, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+, alsa-lib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [
-    alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+    alsa-lib boost glib lash libjack2 libarchive libsndfile lrdf qt4
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/hydrogen/default.nix b/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
index 490591ec9e62..319ee7a5f984 100644
--- a/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
+++ b/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, wrapQtAppsHook
-, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
+, alsa-lib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
 , qtbase, qttools, qtxmlpatterns
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
   buildInputs = [
-    alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
+    alsa-lib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
     qtbase qttools qtxmlpatterns
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/iannix/default.nix b/nixpkgs/pkgs/applications/audio/iannix/default.nix
index 304f67e85aaf..f37150994fc4 100644
--- a/nixpkgs/pkgs/applications/audio/iannix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/iannix/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub, alsaLib, pkg-config, qtbase, qtscript, qmake
+{ mkDerivation, lib, fetchFromGitHub, alsa-lib, pkg-config, qtbase, qtscript, qmake
 }:
 
 mkDerivation rec {
@@ -13,7 +13,7 @@ mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
-  buildInputs = [ alsaLib qtbase qtscript ];
+  buildInputs = [ alsa-lib qtbase qtscript ];
 
   qmakeFlags = [ "PREFIX=/" ];
 
diff --git a/nixpkgs/pkgs/applications/audio/industrializer/default.nix b/nixpkgs/pkgs/applications/audio/industrializer/default.nix
index f638eba3210e..91f7175e391a 100644
--- a/nixpkgs/pkgs/applications/audio/industrializer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/industrializer/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchurl
-, alsaLib
+, alsa-lib
 , audiofile
 , autoconf
 , automake
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     audiofile
     autoconf
     automake
diff --git a/nixpkgs/pkgs/applications/audio/jaaa/default.nix b/nixpkgs/pkgs/applications/audio/jaaa/default.nix
index 035e15abb23f..48ffd5df5157 100644
--- a/nixpkgs/pkgs/applications/audio/jaaa/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jaaa/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, libclthreads, libclxclient, libX11, libXft, libXrender, fftwFloat, libjack2, zita-alsa-pcmi }:
+{ lib, stdenv, fetchurl, alsa-lib, libclthreads, libclxclient, libX11, libXft, libXrender, fftwFloat, libjack2, zita-alsa-pcmi }:
 
 stdenv.mkDerivation rec {
   pname = "jaaa";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib libclthreads libclxclient libX11 libXft libXrender fftwFloat libjack2 zita-alsa-pcmi
+    alsa-lib libclthreads libclxclient libX11 libXft libXrender fftwFloat libjack2 zita-alsa-pcmi
   ];
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/applications/audio/jack-rack/default.nix b/nixpkgs/pkgs/applications/audio/jack-rack/default.nix
index ec62cb04c85e..520b55e96da5 100644
--- a/nixpkgs/pkgs/applications/audio/jack-rack/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jack-rack/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, libjack2, ladspaH, gtk2, alsaLib, libxml2, lrdf }:
+{ lib, stdenv, fetchurl, pkg-config, libjack2, ladspaH, gtk2, alsa-lib, libxml2, lrdf }:
 stdenv.mkDerivation rec {
   name = "jack-rack-1.4.7";
   src = fetchurl {
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
     sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045";
   };
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libjack2 ladspaH gtk2 alsaLib libxml2 lrdf ];
+  buildInputs = [ libjack2 ladspaH gtk2 alsa-lib libxml2 lrdf ];
   NIX_LDFLAGS = "-ldl -lm -lpthread";
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/audio/jackmix/default.nix b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
index eecafe9e501f..e9d2abee91cd 100644
--- a/nixpkgs/pkgs/applications/audio/jackmix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub, pkg-config, sconsPackages, qtbase, lash, libjack2, jack ? libjack2, alsaLib }:
+{ mkDerivation, lib, fetchFromGitHub, pkg-config, sconsPackages, qtbase, lash, libjack2, jack ? libjack2, alsa-lib }:
 
 mkDerivation rec {
   pname = "jackmix";
@@ -18,7 +18,7 @@ mkDerivation rec {
     qtbase
     lash
     jack
-    alsaLib
+    alsa-lib
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/japa/default.nix b/nixpkgs/pkgs/applications/audio/japa/default.nix
index f45395eefa68..016f515ce13c 100644
--- a/nixpkgs/pkgs/applications/audio/japa/default.nix
+++ b/nixpkgs/pkgs/applications/audio/japa/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl,   alsaLib, libjack2, fftwFloat, libclthreads, libclxclient, libX11,  libXft, zita-alsa-pcmi, }:
+{ lib, stdenv, fetchurl,   alsa-lib, libjack2, fftwFloat, libclthreads, libclxclient, libX11,  libXft, zita-alsa-pcmi, }:
 
 stdenv.mkDerivation rec {
   version = "0.9.2";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1zmi4wg23hwsypg3h6y3qb72cbrihqcs19qrbzgs5a67d13q4897";
   };
 
-  buildInputs = [ alsaLib libjack2 fftwFloat libclthreads libclxclient libX11 libXft zita-alsa-pcmi ];
+  buildInputs = [ alsa-lib libjack2 fftwFloat libclthreads libclxclient libX11 libXft zita-alsa-pcmi ];
 
   preConfigure = ''
     cd ./source/
diff --git a/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix b/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
index 4409437ebf20..6e5cc0d51916 100644
--- a/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
+++ b/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, faust, meson, ninja, pkg-config
-, boost, cairo, fftw, gnome3, ladspa-sdk, libxcb, lv2, xcbutilwm
+, boost, cairo, fftw, gnome, ladspa-sdk, libxcb, lv2, xcbutilwm
 , zita-convolver, zita-resampler
  }:
 
diff --git a/nixpkgs/pkgs/applications/audio/kid3/default.nix b/nixpkgs/pkgs/applications/audio/kid3/default.nix
index abfc9e7fe1e9..7f8015e71437 100644
--- a/nixpkgs/pkgs/applications/audio/kid3/default.nix
+++ b/nixpkgs/pkgs/applications/audio/kid3/default.nix
@@ -6,7 +6,7 @@
 , cmake
 , docbook_xml_dtd_45
 , docbook_xsl
-, ffmpeg_3
+, ffmpeg
 , flac
 , id3lib
 , libogg
@@ -31,21 +31,22 @@ stdenv.mkDerivation rec {
   version = "3.8.6";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ce+MWCJzAnN+u+07f0dvn0jnbqiUlS2RbcM9nAj5bgg=";
+    url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+    hash = "sha256-R4gAWlCw8RezhYbw1XDo+wdp797IbLoM3wqHwr+ul6k=";
   };
 
   nativeBuildInputs = [
     cmake
+    docbook_xml_dtd_45
+    docbook_xsl
     pkg-config
+    python3
     wrapQtAppsHook
   ];
   buildInputs = [
     automoc4
     chromaprint
-    docbook_xml_dtd_45
-    docbook_xsl
-    ffmpeg_3
+    ffmpeg
     flac
     id3lib
     libogg
@@ -53,7 +54,6 @@ stdenv.mkDerivation rec {
     libxslt
     mp4v2
     phonon
-    python3
     qtbase
     qtmultimedia
     qtquickcontrols
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://kid3.kde.org/";
     description = "A simple and powerful audio tag editor";
     longDescription = ''
       If you want to easily tag multiple MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC,
@@ -101,7 +102,6 @@ stdenv.mkDerivation rec {
       - Edit synchronized lyrics and event timing codes, import and export
         LRC files.
     '';
-    homepage = "http://kid3.sourceforge.net/";
     license = licenses.lgpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/kmetronome/default.nix b/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
index 02353fcf4f51..70b06e72fba8 100644
--- a/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
+++ b/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, qttools, alsaLib, drumstick, qtbase, qtsvg }:
+{ lib, stdenv, fetchurl, cmake, pkg-config, qttools, alsa-lib, drumstick, qtbase, qtsvg }:
 
 stdenv.mkDerivation rec {
   pname = "kmetronome";
-  version = "1.0.1";
+  version = "1.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0bzm6vzlm32kjrgn1nvp096b2d41ybys2sk145nhy992wg56v32s";
+    sha256 = "1ln0nm24w6bj7wc8cay08j5azzznigd39cbbw3h4skg6fxd8p0s7";
   };
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
 
-  buildInputs = [ alsaLib drumstick qtbase qtsvg ];
+  buildInputs = [ alsa-lib drumstick qtbase qtsvg ];
 
   dontWrapQtApps = true;
 
diff --git a/nixpkgs/pkgs/applications/audio/lash/default.nix b/nixpkgs/pkgs/applications/audio/lash/default.nix
index 74bbeb9b7bb7..6c8ea6528f9b 100644
--- a/nixpkgs/pkgs/applications/audio/lash/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lash/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, gtk2, libjack2, libuuid, libxml2
+{ lib, stdenv, fetchurl, alsa-lib, gtk2, libjack2, libuuid, libxml2
 , makeWrapper, pkg-config, readline }:
 
 assert libuuid != null;
@@ -16,7 +16,7 @@ stdenv.mkDerivation  rec {
   patches = [ ./socket.patch ./gcc-47.patch ];
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
-  buildInputs = [ alsaLib gtk2 libjack2 libxml2 readline ];
+  buildInputs = [ alsa-lib gtk2 libjack2 libxml2 readline ];
   propagatedBuildInputs = [ libuuid ];
   NIX_LDFLAGS = "-lm -lpthread -luuid";
 
diff --git a/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch b/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch
index 129ba96987ab..0c2af8f80c60 100644
--- a/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch
+++ b/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch
@@ -1,137 +1,3817 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 533b47d..9c9c2f6 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -932,7 +932,7 @@ dependencies = [
+--- source/Cargo.lock	1970-01-01 01:00:01.000000000 +0100
++++ ../nix-build-librespot-0.1.6.drv-0/source/Cargo.lock	2021-04-27 19:07:38.535244188 +0200
+@@ -4,2784 +4,2782 @@
+ name = "aes"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9"
+ dependencies = [
+- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aes-soft",
++ "aesni",
++ "block-cipher-trait",
+ ]
+ 
+ [[package]]
+ name = "aes-ctr"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee"
+ dependencies = [
+- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aes-soft",
++ "aesni",
++ "ctr",
++ "stream-cipher",
+ ]
+ 
+ [[package]]
+ name = "aes-soft"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d"
+ dependencies = [
+- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-cipher-trait",
++ "byteorder",
++ "opaque-debug",
+ ]
+ 
+ [[package]]
+ name = "aesni"
+ version = "0.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100"
+ dependencies = [
+- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-cipher-trait",
++ "opaque-debug",
++ "stream-cipher",
+ ]
+ 
+ [[package]]
+ name = "alga"
+ version = "0.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2"
+ dependencies = [
+- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "approx",
++ "num-complex",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "alsa"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32"
+ dependencies = [
+- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "alsa-sys",
++ "bitflags 0.9.1",
++ "libc",
++ "nix",
+ ]
+ 
+ [[package]]
+ name = "alsa-sys"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "approx"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
+ dependencies = [
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "arc-swap"
+ version = "0.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
+ 
+ [[package]]
+ name = "atty"
+ version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+ dependencies = [
+- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "autocfg"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+ 
+ [[package]]
+ name = "autocfg"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+ 
+ [[package]]
+ name = "base64"
+ version = "0.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "safemem",
+ ]
+ 
+ [[package]]
+ name = "base64"
+ version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+ 
+ [[package]]
+ name = "bindgen"
+ version = "0.53.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "cexpr",
++ "cfg-if",
++ "clang-sys",
++ "lazy_static",
++ "lazycell",
++ "peeking_take_while",
++ "proc-macro2 1.0.19",
++ "quote 1.0.7",
++ "regex",
++ "rustc-hash",
++ "shlex",
+ ]
+ 
+ [[package]]
+ name = "bit-set"
+ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
+ dependencies = [
+- "bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bit-vec",
+ ]
+ 
+ [[package]]
+ name = "bit-vec"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3"
+ 
+ [[package]]
+ name = "bitflags"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+ 
+ [[package]]
+ name = "bitflags"
+ version = "0.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
+ 
+ [[package]]
+ name = "bitflags"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+ 
+ [[package]]
+ name = "block-buffer"
+ version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
+ dependencies = [
+- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-padding",
++ "byte-tools",
++ "byteorder",
++ "generic-array",
+ ]
+ 
+ [[package]]
+ name = "block-cipher-trait"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774"
+ dependencies = [
+- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array",
+ ]
+ 
+ [[package]]
+ name = "block-modes"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529"
+ dependencies = [
+- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-cipher-trait",
++ "block-padding",
+ ]
+ 
+ [[package]]
+ name = "block-padding"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
+ dependencies = [
+- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byte-tools",
+ ]
+ 
+ [[package]]
+ name = "byte-tools"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+ 
+ [[package]]
+ name = "byteorder"
+ version = "1.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+ 
+ [[package]]
+ name = "bytes"
+ version = "0.4.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "iovec",
+ ]
+ 
+ [[package]]
+ name = "cc"
+ version = "1.0.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+ 
+ [[package]]
+ name = "cexpr"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+ dependencies = [
+- "nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nom",
+ ]
+ 
+ [[package]]
+ name = "cfg-if"
+ version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+ 
+ [[package]]
+ name = "chrono"
+ version = "0.4.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
+ dependencies = [
+- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer",
++ "num-traits",
++ "time",
+ ]
+ 
+ [[package]]
+ name = "clang-sys"
+ version = "0.29.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
+ dependencies = [
+- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glob",
++ "libc",
++ "libloading 0.5.2",
+ ]
+ 
+ [[package]]
+ name = "cloudabi"
+ version = "0.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
+ ]
+ 
+ [[package]]
+ name = "core-foundation-sys"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "coreaudio-rs"
+ version = "0.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "coreaudio-sys",
+ ]
+ 
+ [[package]]
+ name = "coreaudio-sys"
+ version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4"
+ dependencies = [
+- "bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bindgen",
+ ]
+ 
+ [[package]]
+ name = "cpal"
+ version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e"
+ dependencies = [
+- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "alsa-sys",
++ "core-foundation-sys",
++ "coreaudio-rs",
++ "lazy_static",
++ "libc",
++ "stdweb",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-deque"
+ version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+ dependencies = [
+- "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch",
++ "crossbeam-utils 0.7.2",
++ "maybe-uninit",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-epoch"
+ version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "cfg-if",
++ "crossbeam-utils 0.7.2",
++ "lazy_static",
++ "maybe-uninit",
++ "memoffset",
++ "scopeguard",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-queue"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+ dependencies = [
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-queue"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "crossbeam-utils 0.7.2",
++ "maybe-uninit",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-utils"
+ version = "0.6.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "lazy_static",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-utils"
+ version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "cfg-if",
++ "lazy_static",
+ ]
+ 
+ [[package]]
+ name = "crypto-mac"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
+ dependencies = [
+- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array",
++ "subtle",
+ ]
+ 
+ [[package]]
+ name = "ctr"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736"
+ dependencies = [
+- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-cipher-trait",
++ "stream-cipher",
+ ]
+ 
+ [[package]]
+ name = "digest"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
+ dependencies = [
+- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array",
+ ]
+ 
+ [[package]]
+ name = "dns-sd"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "env_logger"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
+ dependencies = [
+- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty",
++ "humantime",
++ "log 0.4.11",
++ "termcolor",
+ ]
+ 
+ [[package]]
+ name = "error-chain"
+ version = "0.12.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd"
+ dependencies = [
+- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+ 
+ [[package]]
+ name = "fake-simd"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+ 
+ [[package]]
+ name = "fnv"
+ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+ 
+ [[package]]
+ name = "fuchsia-cprng"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+ 
+ [[package]]
+ name = "fuchsia-zircon"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "fuchsia-zircon-sys",
+ ]
+ 
+ [[package]]
+ name = "fuchsia-zircon-sys"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+ 
+ [[package]]
+ name = "futures"
+ version = "0.1.29"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
+ 
+ [[package]]
+ name = "futures-channel"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+ dependencies = [
+- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-core",
+ ]
+ 
+ [[package]]
+ name = "futures-core"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
+ 
+ [[package]]
+ name = "futures-cpupool"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "num_cpus",
+ ]
+ 
+ [[package]]
+ name = "futures-executor"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+ dependencies = [
+- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-core",
++ "futures-task",
++ "futures-util",
+ ]
+ 
+ [[package]]
+ name = "futures-macro"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+ dependencies = [
+- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro-hack",
++ "proc-macro2 1.0.19",
++ "quote 1.0.7",
++ "syn 1.0.35",
+ ]
+ 
+ [[package]]
+ name = "futures-sink"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+ 
+ [[package]]
+ name = "futures-task"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+ dependencies = [
+- "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "once_cell",
+ ]
+ 
+ [[package]]
+ name = "futures-util"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+ dependencies = [
+- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-core",
++ "futures-macro",
++ "futures-task",
++ "pin-project",
++ "pin-utils",
++ "proc-macro-hack",
++ "proc-macro-nested",
++ "slab 0.4.2",
+ ]
+ 
+ [[package]]
+ name = "gcc"
+ version = "0.3.55"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+ 
+ [[package]]
+ name = "generic-array"
+ version = "0.12.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
+ dependencies = [
+- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "typenum",
+ ]
+ 
+ [[package]]
+ name = "getopts"
+ version = "0.2.21"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+ dependencies = [
+- "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width",
+ ]
+ 
+ [[package]]
+ name = "getrandom"
+ version = "0.1.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "wasi",
+ ]
+ 
+ [[package]]
+ name = "glib"
+ version = "0.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-task",
++ "futures-util",
++ "glib-sys",
++ "gobject-sys",
++ "lazy_static",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "glib-sys"
+ version = "0.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "glob"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+ 
+ [[package]]
+ name = "gobject-sys"
+ version = "0.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
+ dependencies = [
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "gstreamer"
+ version = "0.15.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "cfg-if",
++ "futures-channel",
++ "futures-core",
++ "futures-util",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "lazy_static",
++ "libc",
++ "muldiv",
++ "num-rational",
++ "paste",
+ ]
+ 
+ [[package]]
+ name = "gstreamer-app"
+ version = "0.15.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "futures-core",
++ "futures-sink",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-app-sys",
++ "gstreamer-base",
++ "gstreamer-sys",
++ "lazy_static",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "gstreamer-app-sys"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167"
+ dependencies = [
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "gstreamer-base"
+ version = "0.15.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "glib",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer",
++ "gstreamer-base-sys",
++ "gstreamer-sys",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "gstreamer-base-sys"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed"
+ dependencies = [
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys",
++ "gobject-sys",
++ "gstreamer-sys",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "gstreamer-sys"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db"
+ dependencies = [
+- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "hermit-abi"
+ version = "0.1.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "hex"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
+ 
+ [[package]]
+ name = "hmac"
+ version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
+ dependencies = [
+- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crypto-mac",
++ "digest",
+ ]
+ 
+ [[package]]
+ name = "hostname"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "match_cfg",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "httparse"
+ version = "1.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+ 
+ [[package]]
+ name = "humantime"
+ version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+ dependencies = [
+- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quick-error",
+ ]
+ 
+ [[package]]
+ name = "hyper"
+ version = "0.11.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7"
+ dependencies = [
+- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.9.3",
++ "bytes",
++ "futures",
++ "futures-cpupool",
++ "httparse",
++ "iovec",
++ "language-tags",
++ "log 0.4.11",
++ "mime",
++ "net2",
++ "percent-encoding",
++ "relay",
++ "time",
++ "tokio-core",
++ "tokio-io",
++ "tokio-proto",
++ "tokio-service",
++ "unicase",
++ "want",
+ ]
+ 
+ [[package]]
+ name = "hyper-proxy"
+ version = "0.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "hyper",
++ "tokio-core",
++ "tokio-io",
+ ]
+ 
+ [[package]]
+ name = "idna"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
+ ]
+ 
+ [[package]]
+ name = "if-addrs"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48"
+ dependencies = [
+- "if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "if-addrs-sys",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "if-addrs-sys"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea"
+ dependencies = [
+- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "iovec"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "itoa"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+ 
+ [[package]]
+ name = "jack"
+ version = "0.5.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df"
+ dependencies = [
+- "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 0.7.0",
++ "jack-sys",
++ "lazy_static",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "jack-sys"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
++ "libc",
++ "libloading 0.4.3",
+ ]
+ 
+ [[package]]
+ name = "kernel32-sys"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+ 
+ [[package]]
+ name = "language-tags"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+ 
+ [[package]]
+ name = "lazy_static"
+ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ 
+ [[package]]
+ name = "lazycell"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
+ 
+ [[package]]
+ name = "lewton"
+ version = "0.9.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "ogg",
++ "smallvec 0.6.13",
+ ]
+ 
+ [[package]]
+ name = "libc"
+ version = "0.2.73"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
+ 
+ [[package]]
+ name = "libloading"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "lazy_static",
++ "winapi 0.2.8",
+ ]
+ 
+ [[package]]
+ name = "libloading"
+ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
+ dependencies = [
+- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "libm"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
+ 
+ [[package]]
+ name = "libmdns"
+ version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "futures",
++ "hostname",
++ "if-addrs",
++ "log 0.4.11",
++ "multimap",
++ "net2",
++ "quick-error",
++ "rand 0.7.3",
++ "tokio-core",
+ ]
+ 
+ [[package]]
+ name = "libpulse-sys"
+ version = "0.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
  
  [[package]]
  name = "librespot"
--version = "0.1.2"
-+version = "0.1.3"
- dependencies = [
-  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-  "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -940,12 +940,12 @@ dependencies = [
-  "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
-  "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-audio 0.1.2",
-- "librespot-connect 0.1.2",
-- "librespot-core 0.1.2",
-- "librespot-metadata 0.1.2",
-- "librespot-playback 0.1.2",
-- "librespot-protocol 0.1.2",
-+ "librespot-audio 0.1.3",
-+ "librespot-connect 0.1.3",
-+ "librespot-core 0.1.3",
-+ "librespot-metadata 0.1.3",
-+ "librespot-playback 0.1.3",
-+ "librespot-protocol 0.1.3",
-  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -961,7 +961,7 @@ dependencies = [
+-version = "0.1.5"
++version = "0.1.6"
+ dependencies = [
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.5",
+- "librespot-connect 0.1.5",
+- "librespot-core 0.1.5",
+- "librespot-metadata 0.1.5",
+- "librespot-playback 0.1.5",
+- "librespot-protocol 0.1.5",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.10.1",
++ "env_logger",
++ "futures",
++ "getopts",
++ "hex",
++ "hyper",
++ "librespot-audio",
++ "librespot-connect",
++ "librespot-core",
++ "librespot-metadata",
++ "librespot-playback",
++ "librespot-protocol",
++ "log 0.4.11",
++ "num-bigint",
++ "protobuf",
++ "rand 0.7.3",
++ "rpassword",
++ "sha-1",
++ "tokio-core",
++ "tokio-io",
++ "tokio-process",
++ "tokio-signal",
++ "url",
+ ]
  
  [[package]]
  name = "librespot-audio"
--version = "0.1.2"
-+version = "0.1.3"
- dependencies = [
-  "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -969,7 +969,7 @@ dependencies = [
-  "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-  "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-  "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-core 0.1.2",
-+ "librespot-core 0.1.3",
-  "librespot-tremor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -980,7 +980,7 @@ dependencies = [
+-version = "0.1.5"
++version = "0.1.6"
+ dependencies = [
+- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.5",
+- "librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aes-ctr",
++ "bit-set",
++ "byteorder",
++ "bytes",
++ "futures",
++ "lewton",
++ "librespot-core",
++ "librespot-tremor",
++ "log 0.4.11",
++ "num-bigint",
++ "num-traits",
++ "tempfile",
++ "vorbis",
+ ]
  
  [[package]]
  name = "librespot-connect"
--version = "0.1.2"
-+version = "0.1.3"
- dependencies = [
-  "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -990,9 +990,9 @@ dependencies = [
-  "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
-  "libmdns 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-core 0.1.2",
-- "librespot-playback 0.1.2",
-- "librespot-protocol 0.1.2",
-+ "librespot-core 0.1.3",
-+ "librespot-playback 0.1.3",
-+ "librespot-protocol 0.1.3",
-  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1007,7 +1007,7 @@ dependencies = [
+-version = "0.1.5"
++version = "0.1.6"
+ dependencies = [
+- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.5",
+- "librespot-playback 0.1.5",
+- "librespot-protocol 0.1.5",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aes-ctr",
++ "base64 0.10.1",
++ "block-modes",
++ "dns-sd",
++ "futures",
++ "hmac",
++ "hyper",
++ "libmdns",
++ "librespot-core",
++ "librespot-playback",
++ "librespot-protocol",
++ "log 0.4.11",
++ "num-bigint",
++ "protobuf",
++ "rand 0.7.3",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "sha-1",
++ "tokio-core",
++ "url",
+ ]
  
  [[package]]
  name = "librespot-core"
--version = "0.1.2"
-+version = "0.1.3"
- dependencies = [
-  "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1020,7 +1020,7 @@ dependencies = [
-  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
-  "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
-  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-protocol 0.1.2",
-+ "librespot-protocol 0.1.3",
-  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-  "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1043,12 +1043,12 @@ dependencies = [
+-version = "0.1.5"
++version = "0.1.6"
+ dependencies = [
+- "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-protocol 0.1.5",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aes",
++ "base64 0.10.1",
++ "byteorder",
++ "bytes",
++ "error-chain",
++ "futures",
++ "hmac",
++ "httparse",
++ "hyper",
++ "hyper-proxy",
++ "lazy_static",
++ "librespot-protocol",
++ "log 0.4.11",
++ "num-bigint",
++ "num-integer",
++ "num-traits",
++ "pbkdf2",
++ "protobuf",
++ "rand 0.7.3",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "sha-1",
++ "shannon",
++ "tokio-codec",
++ "tokio-core",
++ "tokio-io",
++ "url",
++ "uuid",
++ "vergen",
+ ]
  
  [[package]]
  name = "librespot-metadata"
--version = "0.1.2"
-+version = "0.1.3"
+-version = "0.1.5"
++version = "0.1.6"
  dependencies = [
-  "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-  "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-core 0.1.2",
-- "librespot-protocol 0.1.2",
-+ "librespot-core 0.1.3",
-+ "librespot-protocol 0.1.3",
-  "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1056,7 +1056,7 @@ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.5",
+- "librespot-protocol 0.1.5",
+- "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "futures",
++ "librespot-core",
++ "librespot-protocol",
++ "linear-map",
++ "log 0.4.11",
++ "protobuf",
+ ]
  
  [[package]]
  name = "librespot-playback"
--version = "0.1.2"
-+version = "0.1.3"
- dependencies = [
-  "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-  "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1068,9 +1068,9 @@ dependencies = [
-  "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
-  "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
-  "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-- "librespot-audio 0.1.2",
-- "librespot-core 0.1.2",
-- "librespot-metadata 0.1.2",
-+ "librespot-audio 0.1.3",
-+ "librespot-core 0.1.3",
-+ "librespot-metadata 0.1.3",
-  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
-  "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-  "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -1081,7 +1081,7 @@ dependencies = [
+-version = "0.1.5"
++version = "0.1.6"
+ dependencies = [
+- "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.5",
+- "librespot-core 0.1.5",
+- "librespot-metadata 0.1.5",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "alsa",
++ "byteorder",
++ "cpal",
++ "futures",
++ "glib",
++ "gstreamer",
++ "gstreamer-app",
++ "jack",
++ "libc",
++ "libpulse-sys",
++ "librespot-audio",
++ "librespot-core",
++ "librespot-metadata",
++ "log 0.4.11",
++ "portaudio-rs",
++ "rodio",
++ "sdl2",
++ "shell-words",
++ "zerocopy",
+ ]
  
  [[package]]
  name = "librespot-protocol"
--version = "0.1.2"
-+version = "0.1.3"
+-version = "0.1.5"
++version = "0.1.6"
+ dependencies = [
+- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glob",
++ "protobuf",
++ "protobuf-codegen",
++ "protobuf-codegen-pure",
+ ]
+ 
+ [[package]]
+ name = "librespot-tremor"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe"
+ dependencies = [
+- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
++ "ogg-sys",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "linear-map"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee"
+ 
+ [[package]]
+ name = "lock_api"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+ dependencies = [
+- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard",
+ ]
+ 
+ [[package]]
+ name = "log"
+ version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+ dependencies = [
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.11",
+ ]
+ 
+ [[package]]
+ name = "log"
+ version = "0.4.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
+ ]
+ 
+ [[package]]
+ name = "match_cfg"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+ 
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+ 
+ [[package]]
+ name = "matrixmultiply"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f"
+ dependencies = [
+- "rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rawpointer",
+ ]
+ 
+ [[package]]
+ name = "maybe-uninit"
+ version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+ 
+ [[package]]
+ name = "memchr"
+ version = "2.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+ 
+ [[package]]
+ name = "memoffset"
+ version = "0.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
+ ]
+ 
+ [[package]]
+ name = "mime"
+ version = "0.3.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+ 
+ [[package]]
+ name = "mio"
+ version = "0.6.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "libc",
++ "log 0.4.11",
++ "miow 0.2.1",
++ "net2",
++ "slab 0.4.2",
++ "winapi 0.2.8",
+ ]
+ 
+ [[package]]
+ name = "mio-named-pipes"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
+ dependencies = [
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.11",
++ "mio",
++ "miow 0.3.5",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "mio-uds"
+ version = "0.6.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
+ dependencies = [
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec",
++ "libc",
++ "mio",
+ ]
+ 
+ [[package]]
+ name = "miow"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
+ ]
+ 
+ [[package]]
+ name = "miow"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
+ dependencies = [
+- "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "socket2",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "muldiv"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
+ 
+ [[package]]
+ name = "multimap"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce"
+ dependencies = [
+- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
+ ]
+ 
+ [[package]]
+ name = "nalgebra"
+ version = "0.18.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2"
+ dependencies = [
+- "alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "alga",
++ "approx",
++ "generic-array",
++ "matrixmultiply",
++ "num-complex",
++ "num-rational",
++ "num-traits",
++ "rand 0.6.5",
++ "typenum",
+ ]
+ 
+ [[package]]
+ name = "net2"
+ version = "0.2.34"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "nix"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32"
+ dependencies = [
+- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 0.9.1",
++ "cfg-if",
++ "libc",
++ "void",
+ ]
+ 
+ [[package]]
+ name = "nom"
+ version = "5.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+ dependencies = [
+- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr",
++ "version_check",
+ ]
+ 
+ [[package]]
+ name = "num"
+ version = "0.1.42"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
+ dependencies = [
+- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer",
++ "num-iter",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-bigint"
+ version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "num-integer",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-complex"
+ version = "0.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-integer"
+ version = "0.1.43"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-iter"
+ version = "0.1.41"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "num-integer",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-rational"
+ version = "0.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "num-integer",
++ "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-traits"
+ version = "0.2.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+ dependencies = [
+- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0",
++ "libm",
+ ]
+ 
+ [[package]]
+ name = "num_cpus"
+ version = "1.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+ dependencies = [
+- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "ogg"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+ 
+ [[package]]
+ name = "ogg-sys"
+ version = "0.0.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2"
+ dependencies = [
+- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gcc",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "once_cell"
+ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+ 
+ [[package]]
+ name = "opaque-debug"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
+ 
+ [[package]]
+ name = "parking_lot"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+ dependencies = [
+- "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api",
++ "parking_lot_core",
++ "rustc_version",
+ ]
+ 
+ [[package]]
+ name = "parking_lot_core"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "cloudabi",
++ "libc",
++ "redox_syscall",
++ "rustc_version",
++ "smallvec 0.6.13",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "paste"
+ version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+ dependencies = [
+- "paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "paste-impl",
++ "proc-macro-hack",
+ ]
+ 
+ [[package]]
+ name = "paste-impl"
+ version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+ dependencies = [
+- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro-hack",
+ ]
+ 
+ [[package]]
+ name = "pbkdf2"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9"
+ dependencies = [
+- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.9.3",
++ "byteorder",
++ "crypto-mac",
++ "hmac",
++ "rand 0.5.6",
++ "sha2",
++ "subtle",
+ ]
+ 
+ [[package]]
+ name = "peeking_take_while"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+ 
+ [[package]]
+ name = "percent-encoding"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+ 
+ [[package]]
+ name = "pin-project"
+ version = "0.4.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
+ dependencies = [
+- "pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pin-project-internal",
+ ]
+ 
+ [[package]]
+ name = "pin-project-internal"
+ version = "0.4.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
+ dependencies = [
+- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.19",
++ "quote 1.0.7",
++ "syn 1.0.35",
+ ]
+ 
+ [[package]]
+ name = "pin-utils"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+ 
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+ 
+ [[package]]
+ name = "portaudio-rs"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "libc",
++ "portaudio-sys",
+ ]
+ 
+ [[package]]
+ name = "portaudio-sys"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "ppv-lite86"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+ 
+ [[package]]
+ name = "proc-macro-hack"
+ version = "0.5.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
+ 
+ [[package]]
+ name = "proc-macro-nested"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+ 
+ [[package]]
+ name = "proc-macro2"
+ version = "0.4.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+ dependencies = [
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0",
+ ]
+ 
+ [[package]]
+ name = "proc-macro2"
+ version = "1.0.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+ dependencies = [
+- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.1",
+ ]
+ 
+ [[package]]
+ name = "protobuf"
+ version = "2.14.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485"
+ 
+ [[package]]
+ name = "protobuf-codegen"
+ version = "2.14.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c"
+ dependencies = [
+- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "protobuf",
+ ]
+ 
+ [[package]]
+ name = "protobuf-codegen-pure"
+ version = "2.14.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440"
+ dependencies = [
+- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "protobuf",
++ "protobuf-codegen",
+ ]
+ 
+ [[package]]
+ name = "quick-error"
+ version = "1.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+ 
+ [[package]]
+ name = "quote"
+ version = "0.6.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+ dependencies = [
+- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30",
+ ]
+ 
+ [[package]]
+ name = "quote"
+ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+ dependencies = [
+- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.19",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.3.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand 0.4.6",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+ dependencies = [
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.3.1",
++ "rdrand",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.3.1",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "libc",
++ "rand_chacha 0.1.1",
++ "rand_core 0.4.2",
++ "rand_hc 0.1.0",
++ "rand_isaac",
++ "rand_jitter",
++ "rand_os",
++ "rand_pcg",
++ "rand_xorshift",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand"
+ version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+ dependencies = [
+- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
++ "libc",
++ "rand_chacha 0.2.2",
++ "rand_core 0.5.1",
++ "rand_hc 0.2.0",
+ ]
+ 
+ [[package]]
+ name = "rand_chacha"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "rand_chacha"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+ dependencies = [
+- "ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86",
++ "rand_core 0.5.1",
+ ]
+ 
+ [[package]]
+ name = "rand_core"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+ dependencies = [
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2",
+ ]
+ 
+ [[package]]
+ name = "rand_core"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+ 
+ [[package]]
+ name = "rand_core"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+ dependencies = [
+- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
+ ]
+ 
+ [[package]]
+ name = "rand_hc"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "rand_hc"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+ dependencies = [
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1",
+ ]
+ 
+ [[package]]
+ name = "rand_isaac"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "rand_jitter"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand_core 0.4.2",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand_os"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.4.2",
++ "rdrand",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rand_pcg"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7",
++ "rand_core 0.4.2",
+ ]
+ 
+ [[package]]
+ name = "rand_xorshift"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "rawpointer"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+ 
+ [[package]]
+ name = "rdrand"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+ 
+ [[package]]
+ name = "redox_syscall"
+ version = "0.1.57"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+ 
+ [[package]]
+ name = "regex"
+ version = "1.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+ dependencies = [
+- "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax",
+ ]
+ 
+ [[package]]
+ name = "regex-syntax"
+ version = "0.6.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+ 
+ [[package]]
+ name = "relay"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
+ ]
+ 
+ [[package]]
+ name = "remove_dir_all"
+ version = "0.5.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+ dependencies = [
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "rodio"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d"
+ dependencies = [
+- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cpal",
++ "lazy_static",
++ "nalgebra",
+ ]
+ 
+ [[package]]
+ name = "rpassword"
+ version = "3.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "libc",
++ "winapi 0.2.8",
+ ]
+ 
+ [[package]]
+ name = "rustc-hash"
+ version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+ 
+ [[package]]
+ name = "rustc_version"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+ dependencies = [
+- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver",
+ ]
+ 
+ [[package]]
+ name = "ryu"
+ version = "1.0.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+ 
+ [[package]]
+ name = "safemem"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+ 
+ [[package]]
+ name = "scoped-tls"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
+ 
+ [[package]]
+ name = "scopeguard"
+ version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+ 
+ [[package]]
+ name = "sdl2"
+ version = "0.32.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "lazy_static",
++ "libc",
++ "num",
++ "rand 0.6.5",
++ "sdl2-sys",
+ ]
+ 
+ [[package]]
+ name = "sdl2-sys"
+ version = "0.32.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "semver"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+ dependencies = [
+- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver-parser",
+ ]
+ 
+ [[package]]
+ name = "semver-parser"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+ 
+ [[package]]
+ name = "serde"
+ version = "1.0.114"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+ 
+ [[package]]
+ name = "serde_derive"
+ version = "1.0.114"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+ dependencies = [
+- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.19",
++ "quote 1.0.7",
++ "syn 1.0.35",
+ ]
+ 
+ [[package]]
+ name = "serde_json"
+ version = "1.0.56"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
+ dependencies = [
+- "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa",
++ "ryu",
++ "serde",
+ ]
+ 
+ [[package]]
+ name = "sha-1"
+ version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
+ dependencies = [
+- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-buffer",
++ "digest",
++ "fake-simd",
++ "opaque-debug",
+ ]
+ 
+ [[package]]
+ name = "sha2"
+ version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
+ dependencies = [
+- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-buffer",
++ "digest",
++ "fake-simd",
++ "opaque-debug",
+ ]
+ 
+ [[package]]
+ name = "shannon"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+ 
+ [[package]]
+ name = "shell-words"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a"
+ 
+ [[package]]
+ name = "shlex"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+ 
+ [[package]]
+ name = "signal-hook-registry"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
+ dependencies = [
+- "arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arc-swap",
++ "libc",
+ ]
+ 
+ [[package]]
+ name = "slab"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
+ 
+ [[package]]
+ name = "slab"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+ 
+ [[package]]
+ name = "smallvec"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013"
+ 
+ [[package]]
+ name = "smallvec"
+ version = "0.6.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
+ dependencies = [
+- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "maybe-uninit",
+ ]
+ 
+ [[package]]
+ name = "socket2"
+ version = "0.3.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "stdweb"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e"
+ 
+ [[package]]
+ name = "stream-cipher"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c"
+ dependencies = [
+- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array",
+ ]
+ 
+ [[package]]
+ name = "subtle"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
+ 
+ [[package]]
+ name = "syn"
+ version = "0.15.44"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+ dependencies = [
+- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30",
++ "quote 0.6.13",
++ "unicode-xid 0.1.0",
+ ]
+ 
+ [[package]]
+ name = "syn"
+ version = "1.0.35"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0"
+ dependencies = [
+- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.19",
++ "quote 1.0.7",
++ "unicode-xid 0.2.1",
+ ]
+ 
+ [[package]]
+ name = "synstructure"
+ version = "0.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
+ dependencies = [
+- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30",
++ "quote 0.6.13",
++ "syn 0.15.44",
++ "unicode-xid 0.1.0",
+ ]
+ 
+ [[package]]
+ name = "take"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5"
+ 
+ [[package]]
+ name = "tempfile"
+ version = "3.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
+- "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "rand 0.7.3",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "termcolor"
+ version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+ dependencies = [
+- "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util",
+ ]
+ 
+ [[package]]
+ name = "time"
+ version = "0.1.43"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "tinyvec"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+ 
+ [[package]]
+ name = "tokio"
+ version = "0.1.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "mio",
++ "num_cpus",
++ "tokio-codec",
++ "tokio-current-thread",
++ "tokio-executor",
++ "tokio-fs",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-sync",
++ "tokio-tcp",
++ "tokio-threadpool",
++ "tokio-timer",
++ "tokio-udp",
++ "tokio-uds",
+ ]
+ 
+ [[package]]
+ name = "tokio-codec"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "tokio-io",
+ ]
+ 
+ [[package]]
+ name = "tokio-core"
+ version = "0.1.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "iovec",
++ "log 0.4.11",
++ "mio",
++ "scoped-tls",
++ "tokio",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-timer",
+ ]
+ 
+ [[package]]
+ name = "tokio-current-thread"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "tokio-executor",
+ ]
+ 
+ [[package]]
+ name = "tokio-executor"
+ version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
+ dependencies = [
+- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.2",
++ "futures",
+ ]
+ 
+ [[package]]
+ name = "tokio-fs"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "tokio-io",
++ "tokio-threadpool",
+ ]
+ 
+ [[package]]
+ name = "tokio-io"
+ version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "log 0.4.11",
+ ]
+ 
+ [[package]]
+ name = "tokio-process"
+ version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43"
+ dependencies = [
+- "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-queue 0.1.2",
++ "futures",
++ "lazy_static",
++ "libc",
++ "log 0.4.11",
++ "mio",
++ "mio-named-pipes",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-signal",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "tokio-proto"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "log 0.3.9",
++ "net2",
++ "rand 0.3.23",
++ "slab 0.3.0",
++ "smallvec 0.2.1",
++ "take",
++ "tokio-core",
++ "tokio-io",
++ "tokio-service",
+ ]
+ 
+ [[package]]
+ name = "tokio-reactor"
+ version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
+ dependencies = [
+- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.2",
++ "futures",
++ "lazy_static",
++ "log 0.4.11",
++ "mio",
++ "num_cpus",
++ "parking_lot",
++ "slab 0.4.2",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-sync",
+ ]
+ 
+ [[package]]
+ name = "tokio-service"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
+ ]
+ 
+ [[package]]
+ name = "tokio-signal"
+ version = "0.2.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "libc",
++ "mio",
++ "mio-uds",
++ "signal-hook-registry",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-reactor",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "tokio-sync"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
+ dependencies = [
+- "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv",
++ "futures",
+ ]
+ 
+ [[package]]
+ name = "tokio-tcp"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "iovec",
++ "mio",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+ 
+ [[package]]
+ name = "tokio-threadpool"
+ version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
+ dependencies = [
+- "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque",
++ "crossbeam-queue 0.2.3",
++ "crossbeam-utils 0.7.2",
++ "futures",
++ "lazy_static",
++ "log 0.4.11",
++ "num_cpus",
++ "slab 0.4.2",
++ "tokio-executor",
+ ]
+ 
+ [[package]]
+ name = "tokio-timer"
+ version = "0.2.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
+ dependencies = [
+- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.2",
++ "futures",
++ "slab 0.4.2",
++ "tokio-executor",
+ ]
+ 
+ [[package]]
+ name = "tokio-udp"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "log 0.4.11",
++ "mio",
++ "tokio-codec",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+ 
+ [[package]]
+ name = "tokio-uds"
+ version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "iovec",
++ "libc",
++ "log 0.4.11",
++ "mio",
++ "mio-uds",
++ "tokio-codec",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+ 
+ [[package]]
+ name = "try-lock"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2"
+ 
+ [[package]]
+ name = "typenum"
+ version = "1.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
+ 
+ [[package]]
+ name = "unicase"
+ version = "2.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+ dependencies = [
+- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+ 
+ [[package]]
+ name = "unicode-bidi"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
+ ]
+ 
+ [[package]]
+ name = "unicode-normalization"
+ version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+ dependencies = [
+- "tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tinyvec",
+ ]
+ 
+ [[package]]
+ name = "unicode-width"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+ 
+ [[package]]
+ name = "unicode-xid"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+ 
+ [[package]]
+ name = "unicode-xid"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+ 
+ [[package]]
+ name = "url"
+ version = "1.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+ dependencies = [
+- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna",
++ "matches",
++ "percent-encoding",
+ ]
+ 
+ [[package]]
+ name = "uuid"
+ version = "0.7.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
+ dependencies = [
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.6.5",
+ ]
+ 
+ [[package]]
+ name = "vergen"
+ version = "3.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1",
++ "chrono",
+ ]
+ 
+ [[package]]
+ name = "version_check"
+ version = "0.9.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+ 
+ [[package]]
+ name = "void"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+ 
+ [[package]]
+ name = "vorbis"
+ version = "0.0.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776"
+ dependencies = [
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "ogg-sys",
++ "vorbis-sys",
++ "vorbisfile-sys",
+ ]
+ 
+ [[package]]
+ name = "vorbis-sys"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4"
+ dependencies = [
+- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gcc",
++ "libc",
++ "ogg-sys",
++ "pkg-config",
+ ]
+ 
+ [[package]]
+ name = "vorbisfile-sys"
+ version = "0.0.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1"
+ dependencies = [
+- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gcc",
++ "libc",
++ "ogg-sys",
++ "pkg-config",
++ "vorbis-sys",
+ ]
+ 
+ [[package]]
+ name = "want"
+ version = "0.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1"
+ dependencies = [
+- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "log 0.4.11",
++ "try-lock",
+ ]
+ 
+ [[package]]
+ name = "wasi"
+ version = "0.9.0+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+ 
+ [[package]]
+ name = "winapi"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+ 
+ [[package]]
+ name = "winapi"
+ version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+ dependencies = [
+- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
+ ]
+ 
+ [[package]]
+ name = "winapi-build"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+ 
+ [[package]]
+ name = "winapi-i686-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+ 
+ [[package]]
+ name = "winapi-util"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+ dependencies = [
+- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9",
+ ]
+ 
+ [[package]]
+ name = "winapi-x86_64-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+ [[package]]
+ name = "ws2_32-sys"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+ 
+ [[package]]
+ name = "zerocopy"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056"
+ dependencies = [
+- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "zerocopy-derive",
+ ]
+ 
+ [[package]]
+ name = "zerocopy-derive"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5"
  dependencies = [
-  "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+-[metadata]
+-"checksum aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9"
+-"checksum aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee"
+-"checksum aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d"
+-"checksum aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100"
+-"checksum alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2"
+-"checksum alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32"
+-"checksum alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58"
+-"checksum approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
+-"checksum arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
+-"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+-"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+-"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+-"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+-"checksum bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
+-"checksum bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
+-"checksum bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3"
+-"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+-"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
+-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+-"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
+-"checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774"
+-"checksum block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529"
+-"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
+-"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+-"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+-"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+-"checksum cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+-"checksum cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+-"checksum chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
+-"checksum clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
+-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+-"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
+-"checksum coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491"
+-"checksum coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4"
+-"checksum cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e"
+-"checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+-"checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+-"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+-"checksum crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+-"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+-"checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+-"checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
+-"checksum ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736"
+-"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
+-"checksum dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087"
+-"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
+-"checksum error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd"
+-"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+-"checksum fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+-"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
+-"checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+-"checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
+-"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+-"checksum futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+-"checksum futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+-"checksum futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+-"checksum futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+-"checksum futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+-"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+-"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
+-"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+-"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+-"checksum glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0"
+-"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
+-"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+-"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
+-"checksum gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163"
+-"checksum gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)" = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9"
+-"checksum gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167"
+-"checksum gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)" = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12"
+-"checksum gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed"
+-"checksum gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db"
+-"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+-"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
+-"checksum hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
+-"checksum hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+-"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+-"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+-"checksum hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)" = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7"
+-"checksum hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece"
+-"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+-"checksum if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48"
+-"checksum if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea"
+-"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+-"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+-"checksum jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df"
+-"checksum jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3"
+-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+-"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+-"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
+-"checksum lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0"
+-"checksum libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)" = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
+-"checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9"
+-"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
+-"checksum libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
+-"checksum libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e"
+-"checksum libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac"
+-"checksum librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe"
+-"checksum linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee"
+-"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+-"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+-"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+-"checksum match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+-"checksum matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f"
+-"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+-"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+-"checksum memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+-"checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+-"checksum mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
+-"checksum mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
+-"checksum mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
+-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+-"checksum miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
+-"checksum muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
+-"checksum multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce"
+-"checksum nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2"
+-"checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
+-"checksum nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32"
+-"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+-"checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
+-"checksum num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
+-"checksum num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
+-"checksum num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+-"checksum num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
+-"checksum num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
+-"checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+-"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+-"checksum ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15"
+-"checksum ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2"
+-"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+-"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
+-"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+-"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+-"checksum paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+-"checksum paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+-"checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9"
+-"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+-"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+-"checksum pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
+-"checksum pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
+-"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+-"checksum pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+-"checksum portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562"
+-"checksum portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5"
+-"checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+-"checksum proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
+-"checksum proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+-"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+-"checksum proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)" = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+-"checksum protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485"
+-"checksum protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c"
+-"checksum protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440"
+-"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+-"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+-"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+-"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
+-"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+-"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+-"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+-"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+-"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+-"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+-"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+-"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+-"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+-"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+-"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+-"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+-"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+-"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+-"checksum rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+-"checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+-"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+-"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+-"checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
+-"checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+-"checksum rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d"
+-"checksum rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e"
+-"checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+-"checksum ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+-"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+-"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
+-"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+-"checksum sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b"
+-"checksum sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)" = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86"
+-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+-"checksum serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+-"checksum serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+-"checksum serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)" = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
+-"checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
+-"checksum sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
+-"checksum shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561"
+-"checksum shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a"
+-"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+-"checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
+-"checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
+-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+-"checksum smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013"
+-"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
+-"checksum socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+-"checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e"
+-"checksum stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c"
+-"checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
+-"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+-"checksum syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0"
+-"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
+-"checksum take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5"
+-"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+-"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+-"checksum time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+-"checksum tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+-"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
+-"checksum tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
+-"checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71"
+-"checksum tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
+-"checksum tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
+-"checksum tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
+-"checksum tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
+-"checksum tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43"
+-"checksum tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389"
+-"checksum tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
+-"checksum tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
+-"checksum tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12"
+-"checksum tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
+-"checksum tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
+-"checksum tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
+-"checksum tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
+-"checksum tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
+-"checksum tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
+-"checksum try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2"
+-"checksum typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
+-"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+-"checksum unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+-"checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+-"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+-"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+-"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
+-"checksum vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb"
+-"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+-"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+-"checksum vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776"
+-"checksum vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4"
+-"checksum vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1"
+-"checksum want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1"
+-"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+-"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+-"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+-"checksum zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056"
+-"checksum zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5"
++ "proc-macro2 0.4.30",
++ "syn 0.15.44",
++ "synstructure",
++]
diff --git a/nixpkgs/pkgs/applications/audio/librespot/default.nix b/nixpkgs/pkgs/applications/audio/librespot/default.nix
index 13aa4fe5bc27..61f709b33e15 100644
--- a/nixpkgs/pkgs/applications/audio/librespot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/librespot/default.nix
@@ -1,21 +1,20 @@
 { lib, fetchFromGitHub, rustPlatform, pkg-config, openssl, withRodio ? true
-, withALSA ? true, alsaLib ? null, withPulseAudio ? false, libpulseaudio ? null
+, withALSA ? true, alsa-lib ? null, withPulseAudio ? false, libpulseaudio ? null
 , withPortAudio ? false, portaudio ? null }:
 
 rustPlatform.buildRustPackage rec {
   pname = "librespot";
-  version = "0.1.3";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "librespot-org";
     repo = "librespot";
     rev = "v${version}";
-    sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5";
+    sha256 = "153i9n3qwmmwc29f62cz8nbqrlry16iygvibm1sdnvpf0s6wk5f3";
   };
 
-  cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d";
-
   cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "11d64rpq4b5rdxk5wx0hhzgc6mvs6h2br0w3kfncfklp67vn3v4v";
 
   cargoBuildFlags = with lib; [
     "--no-default-features"
@@ -31,7 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ] ++ lib.optional withALSA alsaLib
+  buildInputs = [ openssl ] ++ lib.optional withALSA alsa-lib
     ++ lib.optional withPulseAudio libpulseaudio
     ++ lib.optional withPortAudio portaudio;
 
diff --git a/nixpkgs/pkgs/applications/audio/lingot/default.nix b/nixpkgs/pkgs/applications/audio/lingot/default.nix
index 17a28315f192..22cab165ccf1 100644
--- a/nixpkgs/pkgs/applications/audio/lingot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lingot/default.nix
@@ -4,7 +4,7 @@
 , intltool
 , gtk3
 , wrapGAppsHook
-, alsaLib
+, alsa-lib
 , libjack2
 , libpulseaudio
 , fftw
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3
-    alsaLib
+    alsa-lib
     libpulseaudio
     fftw
   ] ++ lib.optional jackSupport libjack2;
diff --git a/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix b/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix
index 1daeb2cf3791..1c33bff5b76e 100644
--- a/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix
+++ b/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, autoconf, automake, bison, libtool, pkg-config, which
-, alsaLib, asio, libjack2, libgig, libsndfile, lv2 }:
+, alsa-lib, asio, libjack2, libgig, libsndfile, lv2 }:
 
 stdenv.mkDerivation rec {
   pname = "linuxsampler";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
-    sha256 = "1gijf50x5xbpya5dj3v2mzj7azx4qk9p012csgddp73f0qi0n190";
+    sha256 = "sha256-xNFjxrrC0B8Oj10HIQ1AmI7pO34HuYRyyUaoB2MDmYw=";
   };
 
   preConfigure = ''
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake bison libtool pkg-config which ];
 
-  buildInputs = [ alsaLib asio libjack2 libgig libsndfile lv2 ];
+  buildInputs = [ alsa-lib asio libjack2 libgig libsndfile lv2 ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/applications/audio/lmms/default.nix b/nixpkgs/pkgs/applications/audio/lmms/default.nix
index 11a7d0cf3c6f..f791ad51bf9c 100644
--- a/nixpkgs/pkgs/applications/audio/lmms/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lmms/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, cmake, pkg-config, alsaLib ? null, fftwFloat, fltk13
+{ lib, fetchFromGitHub, cmake, pkg-config, alsa-lib ? null, fftwFloat, fltk13
 , fluidsynth_1 ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
 , libsamplerate, libsoundio ? null, libsndfile, libvorbis ? null, portaudio ? null
 , qtbase, qtx11extras, qttools, SDL ? null, mkDerivation }:
@@ -18,7 +18,7 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake qttools pkg-config ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     fftwFloat
     fltk13
     fluidsynth_1
diff --git a/nixpkgs/pkgs/applications/audio/lollypop/default.nix b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
index 9ae05fb571b0..860a621847da 100644
--- a/nixpkgs/pkgs/applications/audio/lollypop/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
@@ -106,7 +106,7 @@ python3.pkgs.buildPythonApplication rec  {
     description = "A modern music player for GNOME";
     homepage = "https://wiki.gnome.org/Apps/Lollypop";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ worldofpeace lovesegfault ];
+    maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/mamba/default.nix b/nixpkgs/pkgs/applications/audio/mamba/default.nix
index 022b41007c14..6f518dac9ca7 100644
--- a/nixpkgs/pkgs/applications/audio/mamba/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mamba/default.nix
@@ -1,11 +1,12 @@
 { lib, stdenv
 , fetchFromGitHub
 , pkg-config
+, xxd
 , cairo
 , fluidsynth
 , libX11
 , libjack2
-, alsaLib
+, alsa-lib
 , liblo
 , libsigcxx
 , libsmf
@@ -13,18 +14,18 @@
 
 stdenv.mkDerivation rec {
   pname = "mamba";
-  version = "1.8";
+  version = "2.2";
 
   src = fetchFromGitHub {
     owner = "brummer10";
     repo = "Mamba";
     rev = "v${version}";
-    sha256 = "049gvdvvv3hkh1b47h0bia02g1p71agwh6g7q0n4yxz4d81b8kha";
+    sha256 = "1885qxyfkpslzk0aaaaws0x73b10h9nbr04jkk7xhkya25gf280m";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ cairo fluidsynth libX11 libjack2 alsaLib liblo libsigcxx libsmf ];
+  nativeBuildInputs = [ pkg-config xxd ];
+  buildInputs = [ cairo fluidsynth libX11 libjack2 alsa-lib liblo libsigcxx libsmf ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
diff --git a/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix b/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
index 82f9b70c6181..e6b21dff2dc5 100644
--- a/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, SDL, alsaLib, autoreconfHook, gtk2, libjack2, ladspaH
+{ lib, stdenv, fetchFromGitHub, makeWrapper, SDL, alsa-lib, autoreconfHook, gtk2, libjack2, ladspaH
 , ladspaPlugins, libsamplerate, libsndfile, pkg-config, libpulseaudio, lame
 , vorbis-tools }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   preAutoreconf = "(cd docgen && sh gendocs.sh)";
 
   buildInputs = [
-    SDL alsaLib gtk2 libjack2 ladspaH libsamplerate libsndfile libpulseaudio
+    SDL alsa-lib gtk2 libjack2 ladspaH libsamplerate libsndfile libpulseaudio
   ];
 
   configureFlags = [ "--with-default-ladspa-path=${ladspaPlugins}/lib/ladspa" ];
diff --git a/nixpkgs/pkgs/applications/audio/mid2key/default.nix b/nixpkgs/pkgs/applications/audio/mid2key/default.nix
index 2e72a011921c..5db17b99d1c3 100644
--- a/nixpkgs/pkgs/applications/audio/mid2key/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mid2key/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, libX11, libXi, libXtst, xorgproto }:
+{ lib, stdenv, fetchurl, alsa-lib, libX11, libXi, libXtst, xorgproto }:
 
 stdenv.mkDerivation rec {
   name = "mid2key-r1";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   unpackPhase = "tar xvzf $src";
 
-  buildInputs = [ alsaLib libX11 libXi libXtst xorgproto ];
+  buildInputs = [ alsa-lib libX11 libXi libXtst xorgproto ];
 
   buildPhase = "make";
 
diff --git a/nixpkgs/pkgs/applications/audio/midas/generic.nix b/nixpkgs/pkgs/applications/audio/midas/generic.nix
index 8f2e29ee95b4..93a215e46b1b 100644
--- a/nixpkgs/pkgs/applications/audio/midas/generic.nix
+++ b/nixpkgs/pkgs/applications/audio/midas/generic.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, libX11, libXext, alsaLib, freetype, brand, type, version, homepage, url, sha256, ... }:
+{ stdenv, fetchurl, lib, libX11, libXext, alsa-lib, freetype, brand, type, version, homepage, url, sha256, ... }:
 stdenv.mkDerivation rec {
   inherit type;
   baseName = "${type}-Edit";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     libPath = lib.makeLibraryPath [
       libX11           # libX11.so.6
       libXext          # libXext.so.6
-      alsaLib          # libasound.so.2
+      alsa-lib          # libasound.so.2
       freetype         # libfreetype.so.6
       stdenv.cc.cc.lib # libstdc++.so.6
     ];
diff --git a/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix b/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
index bff9e807b436..6a5626d98a69 100644
--- a/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
+++ b/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
@@ -56,7 +56,7 @@ in stdenv.mkDerivation {
     description = "Convert MIDI Files to Piano Sheet Music for two hands";
     homepage = "http://midisheetmusic.com";
     license = licenses.gpl2;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/milkytracker/default.nix b/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
index b43694eb9c05..ce29a587d232 100644
--- a/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, makeWrapper
-, SDL2, alsaLib, libjack2, lhasa, perl, rtmidi, zlib, zziplib }:
+, SDL2, alsa-lib, libjack2, lhasa, perl, rtmidi, zlib, zziplib }:
 
 stdenv.mkDerivation rec {
   version = "1.03.00";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
 
-  buildInputs = [ SDL2 alsaLib libjack2 lhasa perl rtmidi zlib zziplib ];
+  buildInputs = [ SDL2 alsa-lib libjack2 lhasa perl rtmidi zlib zziplib ];
 
   # Somehow this does not get set automatically
   cmakeFlags = [ "-DSDL2MAIN_LIBRARY=${SDL2}/lib/libSDL2.so" ];
diff --git a/nixpkgs/pkgs/applications/audio/mimic/default.nix b/nixpkgs/pkgs/applications/audio/mimic/default.nix
index 57af7a469a09..5ed51a998959 100644
--- a/nixpkgs/pkgs/applications/audio/mimic/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mimic/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, autoreconfHook, fetchFromGitHub, pkg-config
-, alsaLib, libtool, icu
+, alsa-lib, libtool, icu
 , pulseaudioSupport ? config.pulseaudio or false, libpulseaudio }:
 
 stdenv.mkDerivation rec {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     libtool
     icu
   ] ++ lib.optional pulseaudioSupport libpulseaudio;
diff --git a/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix b/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix
new file mode 100644
index 000000000000..90821b014764
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchurl
+, bison
+, flex
+, which
+, alsa-lib
+, libsndfile
+, qt4
+, qscintilla
+, libpulseaudio
+, libjack2
+, audioBackend ? "pulse" # "pulse", "alsa", or "jack"
+}:
+
+stdenv.mkDerivation rec {
+  pname = "miniaudicle";
+  version = "1.3.5.2";
+
+  src = fetchurl {
+    url = "https://audicle.cs.princeton.edu/mini/release/files/miniAudicle-${version}.tgz";
+    hash = "sha256-dakDz69uHbKZFj8z67CubmRXEQ5X6GuYqlCXXvLzqSI=";
+  };
+
+  sourceRoot = "miniAudicle-${version}/src";
+
+  postPatch = ''
+    substituteInPlace miniAudicle.pro \
+      --replace "/usr/local" $out
+  '';
+
+  nativeBuildInputs = [
+    bison
+    flex
+    which
+  ];
+
+  buildInputs = [
+    alsa-lib
+    libsndfile
+    qt4
+    qscintilla
+  ] ++ lib.optional (audioBackend == "pulse") libpulseaudio
+    ++ lib.optional (audioBackend == "jack")  libjack2;
+
+  buildFlags = [ "linux-${audioBackend}" ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A light-weight integrated development environment for the ChucK digital audio programming language";
+    homepage = "https://audicle.cs.princeton.edu/mini/";
+    downloadPage = "https://audicle.cs.princeton.edu/mini/linux/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+    broken = stdenv.isDarwin; # not attempted
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mmtc/default.nix b/nixpkgs/pkgs/applications/audio/mmtc/default.nix
index 4bd922c8fb6f..fc5a2e9b0350 100644
--- a/nixpkgs/pkgs/applications/audio/mmtc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mmtc/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0ag87hgdg6fvk80fgznba0xjlcajks5w5s6y8lvwhz9irn2kq2rz";
   };
 
-  cargoSha256 = "06xqh0mqbik00qyg8mn1ddbn15v3pdwvh1agghg22xgx53kmnxb3";
+  cargoSha256 = "0lkx0zj9xc0rlrq91l4wydzp430hxlrqyq7ii8wq2fcan8ln22lv";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/audio/moc/default.nix b/nixpkgs/pkgs/applications/audio/moc/default.nix
index 51d197fb0e0d..1d26782b6ae0 100644
--- a/nixpkgs/pkgs/applications/audio/moc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/moc/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, pkg-config
 , ncurses, db , popt, libtool
 # Sound sub-systems
-, alsaSupport ? true, alsaLib
+, alsaSupport ? true, alsa-lib
 , pulseSupport ? true, libpulseaudio, autoreconfHook
 , jackSupport ? true, libjack2
 , ossSupport ? true
@@ -14,11 +14,10 @@
 , musepackSupport ? true, libmpc, libmpcdec, taglib
 , vorbisSupport ? true, libvorbis
 , speexSupport ? true, speex
-, ffmpegSupport ? true, ffmpeg_3
+, ffmpegSupport ? true, ffmpeg
 , sndfileSupport ? true, libsndfile
 , wavpackSupport ? true, wavpack
 # Misc
-, withffmpeg4 ? false, ffmpeg_4
 , curlSupport ? true, curl
 , samplerateSupport ? true, libsamplerate
 , withDebug ? false
@@ -39,7 +38,7 @@ in stdenv.mkDerivation rec {
   };
 
   patches = []
-    ++ opt withffmpeg4 ./moc-ffmpeg4.patch
+    ++ opt ffmpegSupport ./moc-ffmpeg4.patch
     ++ opt pulseSupport ./pulseaudio.patch;
 
   nativeBuildInputs = [ pkg-config ]
@@ -47,7 +46,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses db popt libtool ]
     # Sound sub-systems
-    ++ opt alsaSupport alsaLib
+    ++ opt alsaSupport alsa-lib
     ++ opt pulseSupport libpulseaudio
     ++ opt jackSupport libjack2
     # Audio formats
@@ -60,8 +59,7 @@ in stdenv.mkDerivation rec {
     ++ lib.optionals musepackSupport [ libmpc libmpcdec taglib ]
     ++ opt vorbisSupport libvorbis
     ++ opt speexSupport speex
-    ++ opt (ffmpegSupport && !withffmpeg4) ffmpeg_3
-    ++ opt (ffmpegSupport && withffmpeg4) ffmpeg_4
+    ++ opt ffmpegSupport ffmpeg
     ++ opt sndfileSupport libsndfile
     ++ opt wavpackSupport wavpack
     # Misc
diff --git a/nixpkgs/pkgs/applications/audio/molot-lite/default.nix b/nixpkgs/pkgs/applications/audio/molot-lite/default.nix
index d30b6bcad2fb..c44f597ef30c 100644
--- a/nixpkgs/pkgs/applications/audio/molot-lite/default.nix
+++ b/nixpkgs/pkgs/applications/audio/molot-lite/default.nix
@@ -1,35 +1,31 @@
-{ lib, stdenv, fetchurl, unzip, lv2 }:
+{ lib, stdenv, fetchFromGitHub, lv2 }:
+
+stdenv.mkDerivation rec {
 
-stdenv.mkDerivation {
   pname = "molot-lite";
-  version = "unstable-2014-04-23";
+  version = "1.0.0";
 
-  src = fetchurl {
-    # fetchzip does not accept urls that do not end with .zip.
-    url = "https://sourceforge.net/p/molot/code/ci/c4eddc426f8d5821e8ebcf1d67265365e4c8c52a/tree/molot_src.zip?format=raw";
-    sha256 = "1c47dwfgrmn9459px8s5zikcqyr0777v226qzcxlr6azlcjwr51b";
+  src = fetchFromGitHub {
+    owner = "magnetophon";
+    repo = pname;
+    rev = version;
+    sha256 = "0xbvicfk1rgp01nlg6hlym9bnygry0nrbv88mv7w6hnacvl63ba4";
   };
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [ lv2 ];
 
-  unpackPhase = ''
-    unzip $src
-  '';
-
-  buildPhase = ''
-    make -C Molot_Mono_Lite
-    make -C Molot_Stereo_Lite
-  '';
+  makeFlags = [ "INSTALL_DIR=$out/lib/lv2" ];
 
   installPhase = ''
+    runHook preInstall
     make install INSTALL_DIR=$out/lib/lv2 -C Molot_Mono_Lite
     make install INSTALL_DIR=$out/lib/lv2 -C Molot_Stereo_Lite
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Stereo and mono audio signal dynamic range compressor in LV2 format";
-    homepage = "https://sourceforge.net/projects/molot/";
+    homepage = "https://github.com/magnetophon/molot-lite";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/default.nix b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
index 0acc1545a8d0..0deecaec7ff6 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
@@ -21,6 +21,8 @@ lib.makeScope newScope (self: with self; {
 
   mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { };
 
+  mopidy-podcast = callPackage ./podcast.nix { };
+
   mopidy-scrobbler = callPackage ./scrobbler.nix { };
 
   mopidy-somafm = callPackage ./somafm.nix { };
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/podcast.nix b/nixpkgs/pkgs/applications/audio/mopidy/podcast.nix
new file mode 100644
index 000000000000..8a5c4ec2b3d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/podcast.nix
@@ -0,0 +1,31 @@
+{ lib, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mopidy-podcast";
+  version = "3.0.0";
+
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-Podcast";
+    sha256 = "1z2b523yvdpcf8p7m7kczrvaw045lmxzhq4qj00dflxa2yw61qxr";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+    python3Packages.cachetools
+    python3Packages.uritools
+  ];
+
+  checkInputs = with python3Packages; [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tkem/mopidy-podcast";
+    description = "Mopidy extension for browsing and playing podcasts";
+    license = licenses.asl20;
+    maintainers = [
+      maintainers.daneads
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mousai/default.nix b/nixpkgs/pkgs/applications/audio/mousai/default.nix
index 502842c7aa73..687546624b0a 100644
--- a/nixpkgs/pkgs/applications/audio/mousai/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mousai/default.nix
@@ -7,8 +7,8 @@
 , glib
 , gobject-introspection
 , gst_all_1
-, gtk3
-, libhandy
+, gtk4
+, libadwaita
 , librsvg
 , meson
 , ninja
@@ -18,7 +18,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mousai";
-  version = "0.3.1";
+  version = "0.4.1";
 
   format = "other";
 
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "SeaDve";
     repo = "Mousai";
     rev = "v${version}";
-    sha256 = "0x57dci0prhlj79h74yh79cazn48rn0bckz5j3z4njk4fwc3fvfx";
+    sha256 = "sha256-AfR5n1dIm9X5OoPiikQEhHBFQq0rmQH4h7cCJ2yXoXI=";
   };
 
   postPatch = ''
@@ -38,7 +38,7 @@ python3.pkgs.buildPythonApplication rec {
     desktop-file-utils
     gettext
     glib
-    gtk3
+    gtk4
     meson
     ninja
     pkg-config
@@ -50,8 +50,8 @@ python3.pkgs.buildPythonApplication rec {
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
     gst_all_1.gst-plugins-good
-    gtk3
-    libhandy
+    gtk4
+    libadwaita
     librsvg
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/mpg123/default.nix b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
index 153e8b9940b3..8f9489befc59 100644
--- a/nixpkgs/pkgs/applications/audio/mpg123/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchurl
 , makeWrapper
-, alsaLib
+, alsa-lib
 , perl
 , withConplay ? !stdenv.targetPlatform.isWindows
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = lib.optionals withConplay [ makeWrapper ];
 
   buildInputs = lib.optionals withConplay [ perl ]
-    ++ lib.optionals (!stdenv.isDarwin && !stdenv.targetPlatform.isWindows) [ alsaLib ];
+    ++ lib.optionals (!stdenv.isDarwin && !stdenv.targetPlatform.isWindows) [ alsa-lib ];
 
   configureFlags = lib.optional
     (stdenv.hostPlatform ? mpg123)
diff --git a/nixpkgs/pkgs/applications/audio/mpg321/default.nix b/nixpkgs/pkgs/applications/audio/mpg321/default.nix
index 37f647a4a478..03aee52f2a90 100644
--- a/nixpkgs/pkgs/applications/audio/mpg321/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mpg321/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, fetchpatch, libao, libmad, libid3tag, zlib, alsaLib
+{lib, stdenv, fetchurl, fetchpatch, libao, libmad, libid3tag, zlib, alsa-lib
 # Specify default libao output plugin to use (e.g. "alsa", "pulse" …).
 # If null, it will use the libao system default.
 , defaultAudio ? null
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
          "--with-default-audio=${defaultAudio}");
 
   buildInputs = [libao libid3tag libmad zlib]
-    ++ lib.optional stdenv.isLinux alsaLib;
+    ++ lib.optional stdenv.isLinux alsa-lib;
 
   installTargets = [ "install" "install-man" ];
 
diff --git a/nixpkgs/pkgs/applications/audio/munt/default.nix b/nixpkgs/pkgs/applications/audio/munt/default.nix
index 0efe034034ac..773a9178c0bc 100644
--- a/nixpkgs/pkgs/applications/audio/munt/default.nix
+++ b/nixpkgs/pkgs/applications/audio/munt/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, alsaLib, makeDesktopItem, libjack2 }:
+{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, alsa-lib, makeDesktopItem, libjack2 }:
 
 let
   desktopItem = makeDesktopItem rec {
@@ -26,13 +26,13 @@ in mkDerivation rec {
   dontFixCmake = true;
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ qtbase alsaLib libjack2 ];
+  buildInputs = [ qtbase alsa-lib libjack2 ];
 
   meta = with lib; {
     description = "Multi-platform software synthesiser emulating Roland MT-32, CM-32L, CM-64 and LAPC-I devices";
     homepage = "http://munt.sourceforge.net/";
     license = with licenses; [ lgpl21 gpl3 ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/muse/default.nix b/nixpkgs/pkgs/applications/audio/muse/default.nix
index 22d66b18ddd8..f5a6bafe792c 100644
--- a/nixpkgs/pkgs/applications/audio/muse/default.nix
+++ b/nixpkgs/pkgs/applications/audio/muse/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, qttools, wrapQtAppsHook
-, alsaLib, dssi, fluidsynth, ladspaH, lash, libinstpatch, libjack2, liblo
+, alsa-lib, dssi, fluidsynth, ladspaH, lash, libinstpatch, libjack2, liblo
 , libsamplerate, libsndfile, lilv, lrdf, lv2, qtsvg, rtaudio, rubberband, sord
 }:
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config qttools wrapQtAppsHook ];
 
   buildInputs = [
-    alsaLib dssi fluidsynth ladspaH lash libinstpatch libjack2 liblo
+    alsa-lib dssi fluidsynth ladspaH lash libinstpatch libjack2 liblo
     libsamplerate libsndfile lilv lrdf lv2 qtsvg rtaudio rubberband sord
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/musescore/default.nix b/nixpkgs/pkgs/applications/audio/musescore/default.nix
index b43b770b24f9..c2a2e7b96031 100644
--- a/nixpkgs/pkgs/applications/audio/musescore/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
-, alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
+, alsa-lib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
 , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects
 , qtquickcontrols2, qtscript, qtsvg, qttools
 , qtwebengine, qtxmlpatterns
@@ -35,7 +35,7 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [
-    alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
+    alsa-lib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
     portaudio portmidi # tesseract
     qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2
     qtscript qtsvg qttools qtwebengine qtxmlpatterns
diff --git a/nixpkgs/pkgs/applications/audio/musikcube/default.nix b/nixpkgs/pkgs/applications/audio/musikcube/default.nix
index 4a80ea09878c..2824832ef604 100644
--- a/nixpkgs/pkgs/applications/audio/musikcube/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musikcube/default.nix
@@ -1,10 +1,10 @@
 { cmake
 , pkg-config
-, alsaLib
+, alsa-lib
 , boost
 , curl
 , fetchFromGitHub
-, ffmpeg_3
+, ffmpeg
 , lame
 , libev
 , libmicrohttpd
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "musikcube";
-  version = "0.96.5";
+  version = "0.96.7";
 
   src = fetchFromGitHub {
     owner = "clangen";
     repo = pname;
     rev = version;
-    sha256 = "sha256-GxMQPP8i/NWvduf10f+xVyuG666pChj9RsiF4jfygyY=";
+    sha256 = "1y00vwn1h10cfflxrm5bk271ak9gilhjycgi44hlkkhmf5bdgn35";
   };
 
   nativeBuildInputs = [
@@ -31,10 +31,10 @@ stdenv.mkDerivation rec {
     pkg-config
   ];
   buildInputs = [
-    alsaLib
+    alsa-lib
     boost
     curl
-    ffmpeg_3
+    ffmpeg
     lame
     libev
     libmicrohttpd
diff --git a/nixpkgs/pkgs/applications/audio/muso/default.nix b/nixpkgs/pkgs/applications/audio/muso/default.nix
index 436afac7df29..15c61196d43e 100644
--- a/nixpkgs/pkgs/applications/audio/muso/default.nix
+++ b/nixpkgs/pkgs/applications/audio/muso/default.nix
@@ -1,5 +1,5 @@
-{ lib, fetchFromGitHub, rustPlatform
-, pkg-config, wrapGAppsHook
+{ lib, stdenv, fetchFromGitHub, rustPlatform
+, pkg-config, wrapGAppsHook, CoreServices
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -14,6 +14,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
+  buildInputs = lib.optional stdenv.isDarwin CoreServices;
 
   preConfigure = ''
     substituteInPlace lib/utils.rs \
@@ -25,7 +26,7 @@ rustPlatform.buildRustPackage rec {
     cp share/* $out/share/muso/
   '';
 
-  cargoSha256 = "06jgk54r3f8gq6iylv5rgsawss3hc5kmvk02y4gl8iwfnw4xrvmg";
+  cargoSha256 = "1hgdzyz005244f2mh97js9ga0a6s2hcd6iydz07f1hmhsh1j2bwy";
 
   meta = with lib; {
     description = "An automatic music sorter (based on ID3 tags)";
diff --git a/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix b/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix
index c0fa2722878f..fee5dc88403f 100644
--- a/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-+qv2FXyMsbJKBZryduFi+p+aO5zTgQxDuRKIYMk4Ohs=";
   };
 
+  enableParallelBuilding = true;
   configureFlags = [ "BOOST_LIB_SUFFIX=" ]
     ++ optional outputsSupport "--enable-outputs"
     ++ optional visualizerSupport "--enable-visualizer --with-fftw"
diff --git a/nixpkgs/pkgs/applications/audio/ncspot/default.nix b/nixpkgs/pkgs/applications/audio/ncspot/default.nix
index f67169fd495d..0a887ebaf3db 100644
--- a/nixpkgs/pkgs/applications/audio/ncspot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ncspot/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl, libiconv
-, withALSA ? true, alsaLib ? null
+, withALSA ? true, alsa-lib ? null
 , withPulseAudio ? false, libpulseaudio ? null
 , withPortAudio ? false, portaudio ? null
 , withMPRIS ? false, dbus ? null
@@ -14,16 +14,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.6.0";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "0j4ax3yh0l8v5bd5i3ijd8ys27dcrh7byigjip52mw1qlqfnh8wk";
+    sha256 = "0lfly3d8pag78pabmna4i6xjwzi65dx1mwfmsk7nx64brq3iypbq";
   };
 
-  cargoSha256 = "022q6rlac97dr6l7rd9xalgx0w257r364i1pij080qx8rk97msb9";
+  cargoSha256 = "0a6d41ll90fza6k3lixjqzwxim98q6zbkqa3zvxvs7q5ydzg8nsp";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = [ ncurses openssl ]
     ++ lib.optional stdenv.isDarwin libiconv
-    ++ lib.optional withALSA alsaLib
+    ++ lib.optional withALSA alsa-lib
     ++ lib.optional withPulseAudio libpulseaudio
     ++ lib.optional withPortAudio portaudio
     ++ lib.optional withMPRIS dbus;
diff --git a/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix b/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
index a8f90ef34efd..bf7d680ff157 100644
--- a/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
+++ b/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, rustPlatform, lib, alsaLib, pkg-config, openssl }:
+{ fetchFromGitHub, rustPlatform, lib, alsa-lib, pkg-config, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "netease-music-tui";
@@ -14,9 +14,9 @@ rustPlatform.buildRustPackage rec {
   cargoPatches = [ ./cargo-lock.patch ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib openssl ];
+  buildInputs = [ alsa-lib openssl ];
 
-  cargoSha256 = "0f06wc7h2zjipifvxsskxvihjf6mykrjrm7yk0zf98ra079bc9g9";
+  cargoSha256 = "1pca0sz4rz8qls6k2vhf70ixhnvgk81c4hbx81q3pv106g5k205f";
 
   meta = with lib; {
     homepage = "https://github.com/betta-cyber/netease-music-tui";
diff --git a/nixpkgs/pkgs/applications/audio/nootka/default.nix b/nixpkgs/pkgs/applications/audio/nootka/default.nix
index 11424c0be181..8b2284f9b30a 100644
--- a/nixpkgs/pkgs/applications/audio/nootka/default.nix
+++ b/nixpkgs/pkgs/applications/audio/nootka/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake
-, alsaLib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch, qtbase
+, alsa-lib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch, qtbase
 }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [
-    alsaLib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch qtbase
+    alsa-lib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch qtbase
   ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/audio/nootka/unstable.nix b/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
index aa49daaa1e71..edfb19483646 100644
--- a/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
+++ b/nixpkgs/pkgs/applications/audio/nootka/unstable.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake
-, alsaLib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch
+, alsa-lib, fftwSinglePrec, libjack2, libpulseaudio, libvorbis, soundtouch
 , qtbase, qtdeclarative, qtquickcontrols2
 }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [
-    alsaLib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch
+    alsa-lib fftwSinglePrec libjack2 libpulseaudio libvorbis soundtouch
     qtbase qtdeclarative qtquickcontrols2
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix b/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
index d770396a6ad3..7ad1e319bffe 100644
--- a/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ocenaudio/default.nix
@@ -5,27 +5,27 @@
 , dpkg
 , qt5
 , libjack2
-, alsaLib
+, alsa-lib
 , bzip2
 , libpulseaudio }:
 
 stdenv.mkDerivation rec {
   pname = "ocenaudio";
-  version = "3.10.2";
+  version = "3.10.6";
 
   src = fetchurl {
     url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
-    sha256 = "sha256-mmo6/zc/3R8ptXfY01RKUOLgmDhWTHiYBMlGqpdMTAo=";
+    sha256 = "0fgvm1xw2kgrqj3w6slpfxbb3pw9k8i0dz16q9d5d8gyyvr2mh8g";
   };
 
-
   nativeBuildInputs = [
     autoPatchelfHook
     qt5.qtbase
+    qt5.wrapQtAppsHook
     libjack2
     libpulseaudio
     bzip2
-    alsaLib
+    alsa-lib
   ];
 
   buildInputs = [ dpkg ];
@@ -33,7 +33,6 @@ stdenv.mkDerivation rec {
   dontUnpack = true;
   dontBuild = true;
   dontStrip = true;
-  dontWrapQtApps = true;
 
   installPhase = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/applications/audio/openmpt123/default.nix b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
index 7f412d528db0..a5ea91141c39 100644
--- a/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
+++ b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
@@ -2,14 +2,14 @@
 , usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
 
 let
-  version = "0.5.6";
+  version = "0.5.8";
 in stdenv.mkDerivation {
   pname = "openmpt123";
   inherit version;
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    sha256 = "sha256-F96ngrM0wUb0rNlIx8Mf/dKvyJnrNH6+Ab4WBup59Lg=";
+    sha256 = "sha256-KeLCEXS3P2fyul7naAjWLxgrEw5PcE7i2a6Cg5gtis0=";
   };
 
   enableParallelBuilding = true;
@@ -25,7 +25,7 @@ in stdenv.mkDerivation {
     description = "A cross-platform command-line based module file player";
     homepage = "https://lib.openmpt.org/libopenmpt/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/opusfile/default.nix b/nixpkgs/pkgs/applications/audio/opusfile/default.nix
index e4f7e6ca6b46..a6683904cb1d 100644
--- a/nixpkgs/pkgs/applications/audio/opusfile/default.nix
+++ b/nixpkgs/pkgs/applications/audio/opusfile/default.nix
@@ -1,23 +1,27 @@
 { lib, stdenv, fetchurl, pkg-config, openssl, libogg, libopus }:
 
 stdenv.mkDerivation rec {
-  name = "opusfile-0.12";
+  pname = "opusfile";
+  version = "0.12";
   src = fetchurl {
-    url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
+    url = "http://downloads.xiph.org/releases/opus/opusfile-${version}.tar.gz";
     sha256 = "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl libogg ];
   propagatedBuildInputs = [ libopus ];
-  patches = [ ./include-multistream.patch ];
+  patches = [ ./include-multistream.patch ]
+    # fixes problem with openssl 1.1 dependency
+    # see https://github.com/xiph/opusfile/issues/13
+    ++ lib.optionals stdenv.hostPlatform.isWindows [ ./disable-cert-store.patch ];
   configureFlags = [ "--disable-examples" ];
 
   meta = with lib; {
     description = "High-level API for decoding and seeking in .opus files";
     homepage = "https://www.opus-codec.org/";
     license = licenses.bsd3;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ taeer ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/opusfile/disable-cert-store.patch b/nixpkgs/pkgs/applications/audio/opusfile/disable-cert-store.patch
new file mode 100644
index 000000000000..e0a7dd4fe3df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/opusfile/disable-cert-store.patch
@@ -0,0 +1,35 @@
+diff --git a/src/http.c b/src/http.c
+index bd08562..3a3592c 100644
+--- a/src/http.c
++++ b/src/http.c
+@@ -327,10 +327,12 @@ static int op_poll_win32(struct pollfd *_fds,nfds_t _nfds,int _timeout){
+ typedef ptrdiff_t ssize_t;
+ #  endif
+ 
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ /*Load certificates from the built-in certificate store.*/
+ int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx);
+ #  define SSL_CTX_set_default_verify_paths \
+  SSL_CTX_set_default_verify_paths_win32
++#endif
+ 
+ # else
+ /*Normal Berkeley sockets.*/
+diff --git a/src/wincerts.c b/src/wincerts.c
+index 409a4e0..c355952 100644
+--- a/src/wincerts.c
++++ b/src/wincerts.c
+@@ -33,6 +33,8 @@
+ # include <openssl/err.h>
+ # include <openssl/x509.h>
+ 
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
+ static int op_capi_new(X509_LOOKUP *_lu){
+   HCERTSTORE h_store;
+   h_store=CertOpenStore(CERT_STORE_PROV_SYSTEM_A,0,0,
+@@ -171,3 +173,4 @@ int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx){
+ }
+ 
+ #endif
++#endif
diff --git a/nixpkgs/pkgs/applications/audio/orca-c/default.nix b/nixpkgs/pkgs/applications/audio/orca-c/default.nix
index 4cd5d52613ad..2c3a8fb1390f 100644
--- a/nixpkgs/pkgs/applications/audio/orca-c/default.nix
+++ b/nixpkgs/pkgs/applications/audio/orca-c/default.nix
@@ -1,31 +1,35 @@
-{ lib, stdenv, fetchFromGitHub, ncurses, portmidi }:
+{ lib, stdenv, fetchgit, ncurses, portmidi }:
 stdenv.mkDerivation {
   pname = "orca-c";
 
-  version = "git-2020-05-01";
+  version = "git-2021-02-13";
 
-  src = fetchFromGitHub {
-    owner = "hundredrabbits";
-    repo = "Orca-c";
-    rev = "d7a3b169c5ed0b06a9ad0fdb3057704da9a0b6ce";
-    sha256 = "101y617a295hzwr98ykvza1sycxlk29kzxn2ybjwc718r0alkbzz";
+  src = fetchgit {
+    url = "https://git.sr.ht/~rabbits/orca";
+    rev = "5ba56ca67baae3db140f8b7a2b2fc46bbac5602f";
+    sha256 = "sha256-bbIH0kyHRTcMGXV3WdBQIH1br0FyIzKKL88wqpGZ0NY=";
   };
 
   buildInputs = [ ncurses portmidi ];
 
-  patchPhase = ''
+  postPatch = ''
     patchShebangs tool
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     install build/orca $out/bin/orca
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "An esoteric programming language designed to quickly create procedural sequencers";
-    homepage = "https://github.com/hundredrabbits/Orca-c";
+    homepage = "https://git.sr.ht/~rabbits/orca";
     license = licenses.mit;
     platforms = platforms.all;
+    maintainers = with maintainers; [ netcrns ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/osmid/default.nix b/nixpkgs/pkgs/applications/audio/osmid/default.nix
index f16b146e616a..1a65826dca33 100644
--- a/nixpkgs/pkgs/applications/audio/osmid/default.nix
+++ b/nixpkgs/pkgs/applications/audio/osmid/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , cmake
-, alsaLib
+, alsa-lib
 , libX11
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ alsaLib libX11 ];
+  buildInputs = [ alsa-lib libX11 ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/audio/padthv1/default.nix b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
index f238a6876099..90e80f13ac48 100644
--- a/nixpkgs/pkgs/applications/audio/padthv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, pkg-config, libjack2, alsaLib, libsndfile, liblo, lv2, qt5, fftwFloat, mkDerivation }:
+{ lib, fetchurl, pkg-config, libjack2, alsa-lib, libsndfile, liblo, lv2, qt5, fftwFloat, mkDerivation }:
 
 mkDerivation rec {
   pname = "padthv1";
@@ -9,7 +9,7 @@ mkDerivation rec {
     sha256 = "1karrprb3ijrbiwpr43rl3nxnzc33lnmwrd1832psgr3flnr9fp5";
   };
 
-  buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftwFloat ];
+  buildInputs = [ libjack2 alsa-lib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftwFloat ];
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/audio/parlatype/default.nix b/nixpkgs/pkgs/applications/audio/parlatype/default.nix
index acffe9464fa6..7b448cc69af7 100644
--- a/nixpkgs/pkgs/applications/audio/parlatype/default.nix
+++ b/nixpkgs/pkgs/applications/audio/parlatype/default.nix
@@ -48,7 +48,6 @@ stdenv.mkDerivation rec {
   '';
 
   doCheck = false;
-  enableParallelBuilding = true;
 
   buildPhase = ''
     export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
diff --git a/nixpkgs/pkgs/applications/audio/patchage/default.nix b/nixpkgs/pkgs/applications/audio/patchage/default.nix
index 573b2262e73d..f37cf8c5b32d 100644
--- a/nixpkgs/pkgs/applications/audio/patchage/default.nix
+++ b/nixpkgs/pkgs/applications/audio/patchage/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, alsaLib, boost, dbus-glib, fetchsvn, ganv, glibmm
+{ lib, stdenv, alsa-lib, boost, dbus-glib, fetchsvn, ganv, glibmm
 , gtkmm2, libjack2, pkg-config, python2, wafHook
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [
-    alsaLib boost dbus-glib ganv glibmm gtkmm2 libjack2
+    alsa-lib boost dbus-glib ganv glibmm gtkmm2 libjack2
     pkg-config python2 wafHook
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix b/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
index 31d9292675e5..c7f12a8df6cc 100644
--- a/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, fetchpatch, lib, stdenv, pkg-config, intltool, libpulseaudio,
-gtkmm3 , libcanberra-gtk3, gnome3, wrapGAppsHook }:
+gtkmm3 , libcanberra-gtk3, gnome, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "pavucontrol";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   })];
 
   buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3
-                  gnome3.adwaita-icon-theme ];
+                  gnome.adwaita-icon-theme ];
 
   nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
 
diff --git a/nixpkgs/pkgs/applications/audio/petrifoo/default.nix b/nixpkgs/pkgs/applications/audio/petrifoo/default.nix
index fb29f9b13e2b..f76720aff907 100644
--- a/nixpkgs/pkgs/applications/audio/petrifoo/default.nix
+++ b/nixpkgs/pkgs/applications/audio/petrifoo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, cmake, gtk2, libjack2, libgnomecanvas
+{ lib, stdenv, fetchurl, alsa-lib, cmake, gtk2, libjack2, libgnomecanvas
 , libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2
 , pkg-config, openssl }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ alsaLib gtk2 libjack2 libgnomecanvas libpthreadstubs
+  buildInputs = [ alsa-lib gtk2 libjack2 libgnomecanvas libpthreadstubs
                   libsamplerate libsndfile libtool libxml2 openssl ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/pianobar/default.nix b/nixpkgs/pkgs/applications/audio/pianobar/default.nix
index 0abc933d6286..c5ef0352503f 100644
--- a/nixpkgs/pkgs/applications/audio/pianobar/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pianobar/default.nix
@@ -1,16 +1,17 @@
-{ fetchurl, lib, stdenv, pkg-config, libao, json_c, libgcrypt, ffmpeg_3, curl }:
+{ fetchurl, lib, stdenv, pkg-config, libao, json_c, libgcrypt, ffmpeg, curl }:
 
 stdenv.mkDerivation rec {
-  name = "pianobar-2020.11.28";
+  pname = "pianobar";
+  version = "2020.11.28";
 
   src = fetchurl {
-    url = "http://6xq.net/projects/pianobar/${name}.tar.bz2";
+    url = "https://6xq.net/projects/pianobar/${pname}-${version}.tar.bz2";
     sha256 = "1znlwybfpxsjqr1jmr8j0ci8wzmpzmk2yxb0qcx9w9a8nnbgnfv5";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    libao json_c libgcrypt ffmpeg_3 curl
+    libao json_c libgcrypt ffmpeg curl
   ];
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/applications/audio/pianobooster/default.nix b/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
index f1d35d7e78e0..2c58ecc5dcbb 100644
--- a/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, qttools
-, alsaLib, ftgl, libGLU, libjack2, qtbase, rtmidi, wrapQtAppsHook
+, alsa-lib, ftgl, libGLU, libjack2, qtbase, rtmidi, wrapQtAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config qttools wrapQtAppsHook ];
 
-  buildInputs = [ alsaLib ftgl libGLU libjack2 qtbase rtmidi ];
+  buildInputs = [ alsa-lib ftgl libGLU libjack2 qtbase rtmidi ];
 
   cmakeFlags = [
     "-DOpenGL_GL_PREFERENCE=GLVND"
diff --git a/nixpkgs/pkgs/applications/audio/picard/default.nix b/nixpkgs/pkgs/applications/audio/picard/default.nix
index 785c334e1523..49aa0ba47147 100644
--- a/nixpkgs/pkgs/applications/audio/picard/default.nix
+++ b/nixpkgs/pkgs/applications/audio/picard/default.nix
@@ -1,4 +1,9 @@
-{ lib, python3Packages, fetchFromGitHub, gettext, chromaprint, qt5
+{ lib
+, python3Packages
+, fetchFromGitHub
+, gettext
+, chromaprint
+, qt5
 , enablePlayback ? true
 , gst_all_1
 }:
@@ -10,43 +15,45 @@ let
   else
     pythonPackages.pyqt5
   ;
-in pythonPackages.buildPythonApplication rec {
+in
+pythonPackages.buildPythonApplication rec {
   pname = "picard";
-  version = "2.5.6";
+  version = "2.6.3";
 
   src = fetchFromGitHub {
     owner = "metabrainz";
     repo = pname;
     rev = "release-${version}";
-    sha256 = "1mkbg44bm642mlpfxsdlw947var6a3sf9m6c897b4n0742hsdkbc";
+    sha256 = "sha256-bSqGgRXqHGjT+OYCEafsT/btVe+n91+L0kB8fnrywss=";
   };
 
   nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
-    ++ lib.optionals (pyqt5.multimediaEnabled) [
-      qt5.qtmultimedia.bin
-      gst_all_1.gstreamer
-      gst_all_1.gst-vaapi
-      gst_all_1.gst-libav
-      gst_all_1.gst-plugins-base
-      gst_all_1.gst-plugins-good
-    ]
+  ++ lib.optionals (pyqt5.multimediaEnabled) [
+    qt5.qtmultimedia.bin
+    gst_all_1.gst-libav
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-vaapi
+    gst_all_1.gstreamer
+  ]
   ;
 
   propagatedBuildInputs = with pythonPackages; [
-    pyqt5
-    mutagen
     chromaprint
-    discid
     dateutil
+    discid
+    fasteners
+    mutagen
+    pyqt5
   ];
 
   # In order to spare double wrapping, we use:
   preFixup = ''
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   ''
-    + lib.optionalString (pyqt5.multimediaEnabled) ''
-      makeWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
-    ''
+  + lib.optionalString (pyqt5.multimediaEnabled) ''
+    makeWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  ''
   ;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/picoloop/default.nix b/nixpkgs/pkgs/applications/audio/picoloop/default.nix
index 519888982ce4..bd956963a468 100644
--- a/nixpkgs/pkgs/applications/audio/picoloop/default.nix
+++ b/nixpkgs/pkgs/applications/audio/picoloop/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libpulseaudio, SDL2, SDL2_image, SDL2_ttf, alsaLib, libjack2 }:
+{ lib, stdenv, fetchFromGitHub, libpulseaudio, SDL2, SDL2_image, SDL2_ttf, alsa-lib, libjack2 }:
 
 stdenv.mkDerivation rec {
   pname = "picoloop";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     SDL2.dev
     SDL2_image
     SDL2_ttf
-    alsaLib
+    alsa-lib
     libjack2
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/pithos/default.nix b/nixpkgs/pkgs/applications/audio/pithos/default.nix
index 939b53c44fb1..01c969c3d8e0 100644
--- a/nixpkgs/pkgs/applications/audio/pithos/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pithos/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, meson, ninja, pkg-config, appstream-glib
-, wrapGAppsHook, pythonPackages, gtk3, gnome3, gobject-introspection
+, wrapGAppsHook, pythonPackages, gtk3, gnome, gobject-introspection
 , libnotify, libsecret, gst_all_1 }:
 
 pythonPackages.buildPythonApplication rec {
@@ -23,7 +23,7 @@ pythonPackages.buildPythonApplication rec {
   nativeBuildInputs = [ meson ninja pkg-config appstream-glib wrapGAppsHook ];
 
   propagatedBuildInputs =
-    [ gtk3 gobject-introspection libnotify libsecret gnome3.adwaita-icon-theme ] ++
+    [ gtk3 gobject-introspection libnotify libsecret gnome.adwaita-icon-theme ] ++
     (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad ]) ++
     (with pythonPackages; [ pygobject3 pylast ]);
 
diff --git a/nixpkgs/pkgs/applications/audio/plexamp/default.nix b/nixpkgs/pkgs/applications/audio/plexamp/default.nix
index 47b74cc865b4..a7289cc35c81 100644
--- a/nixpkgs/pkgs/applications/audio/plexamp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/plexamp/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "plexamp";
-  version = "3.4.4";
+  version = "3.4.7";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
     name="${pname}-${version}.AppImage";
-    sha256 = "1iz6qi12ljafb49l73rba5rwi5sdbd8ck5h2r6jiy260lgr2iiyk";
+    sha512 = "+jmx4X9KiK1Tv2Cjb/445MY9G2b7pLdKxFtBFMaQwRhqTItA33MfHqKBwmytmbEhxhy0LDTU2woJvEMPQCmnvg==";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -29,10 +29,12 @@ in appimageTools.wrapType2 {
       --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
+  passthru.updateScript = ./update-plexamp.sh;
+
   meta = with lib; {
     description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
     homepage = "https://plexamp.com/";
-    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/26";
+    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/29";
     license = licenses.unfree;
     maintainers = with maintainers; [ killercup synthetica ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/audio/plexamp/update-plexamp.sh b/nixpkgs/pkgs/applications/audio/plexamp/update-plexamp.sh
new file mode 100755
index 000000000000..b6b8def1e310
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/plexamp/update-plexamp.sh
@@ -0,0 +1,54 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -p yq bash curl bc ripgrep
+#! nix-shell -i bash
+
+set -Eeuxo pipefail
+
+cleanup() {
+    rm -rf "$TMPDIR"
+}
+
+trap cleanup EXIT
+
+ROOT="$(dirname "$(readlink -f "$0")")"
+if [ ! -f "$ROOT/default.nix" ]; then
+  echo "ERROR: cannot find default.nix in $ROOT"
+  exit 1
+fi
+
+if [ "$(basename "$ROOT")" != plexamp ]; then
+  echo "ERROR: folder not named plexamp"
+  exit 1
+fi
+
+TMPDIR="$(mktemp -d)"
+
+VERSION_FILE="$TMPDIR/version.yml"
+VERSION_URL="https://plexamp.plex.tv/plexamp.plex.tv/desktop/latest-linux.yml"
+curl "$VERSION_URL" -o "$VERSION_FILE"
+
+VERSION="$(yq -r .version "$VERSION_FILE")"
+SHA512="$(yq -r .sha512 "$VERSION_FILE")"
+
+DEFAULT_NIX="$ROOT/default.nix"
+WORKING_NIX="$TMPDIR/default.nix"
+cp "$DEFAULT_NIX" "$WORKING_NIX"
+
+sed -i "s@version = .*;@version = \"$VERSION\";@g" "$WORKING_NIX"
+
+if diff "$DEFAULT_NIX" "$WORKING_NIX"; then
+  echo "WARNING: no changes"
+  exit 0
+fi
+
+# update sha hash (convenietly provided)
+sed -i "s@sha.* = .*;@sha512 = \"$SHA512\";@g" "$WORKING_NIX"
+
+# update the changelog ("just" increment the number)
+CHANGELOG_URL=$(rg --only-matching 'changelog = "(.+)";' --replace '$1' $WORKING_NIX)
+CHANGELOG_NUMBER=$(rg --only-matching '.*/([0-9]+)' --replace '$1' <<< $CHANGELOG_URL)
+NEXT_CHANGELOG=$(($CHANGELOG_NUMBER + 1))
+NEXT_URL=$(rg --only-matching '(.*)/[0-9]+' --replace "\$1/$NEXT_CHANGELOG" <<< $CHANGELOG_URL)
+sed -i "s@changelog = \".*\";@changelog = \"$NEXT_URL\";@" $WORKING_NIX
+
+mv $WORKING_NIX $DEFAULT_NIX
diff --git a/nixpkgs/pkgs/applications/audio/pmidi/default.nix b/nixpkgs/pkgs/applications/audio/pmidi/default.nix
index 28e9788acbf2..43f38ff84ed0 100644
--- a/nixpkgs/pkgs/applications/audio/pmidi/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pmidi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib
+{ lib, stdenv, fetchurl, alsa-lib
 , version ? "1.7.1"
 , sourceSha256 ? "051mv6f13c8y13c1iv3279k1hhzpz4fm9sfczhgp9sim2bjdj055"
 }:
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = sourceSha256;
   };
 
-  buildInputs = [ alsaLib ];
+  buildInputs = [ alsa-lib ];
 
   meta = with lib; {
     homepage = "https://www.parabola.me.uk/alsa/pmidi.html";
diff --git a/nixpkgs/pkgs/applications/audio/polyphone/default.nix b/nixpkgs/pkgs/applications/audio/polyphone/default.nix
index a331952aa81d..4656db7257eb 100644
--- a/nixpkgs/pkgs/applications/audio/polyphone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/polyphone/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, qmake, pkg-config, alsaLib, libjack2, portaudio, libogg, flac, libvorbis, rtmidi, qtsvg }:
+{ lib, mkDerivation, fetchFromGitHub, qmake, pkg-config, alsa-lib, libjack2, portaudio, libogg, flac, libvorbis, rtmidi, qtsvg }:
 
 mkDerivation rec {
   version = "2.2.0";
@@ -12,7 +12,7 @@ mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     libjack2
     portaudio
     libogg
diff --git a/nixpkgs/pkgs/applications/audio/praat/default.nix b/nixpkgs/pkgs/applications/audio/praat/default.nix
index 1d3fd534dd21..239b62a40266 100644
--- a/nixpkgs/pkgs/applications/audio/praat/default.nix
+++ b/nixpkgs/pkgs/applications/audio/praat/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, gtk2, pkg-config }:
+{ lib, stdenv, fetchurl, alsa-lib, gtk2, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "praat";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib gtk2 ];
+  buildInputs = [ alsa-lib gtk2 ];
 
   meta = {
     description = "Doing phonetics by computer";
diff --git a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
index 72e8ba135dd3..22b2a355b5e7 100644
--- a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , cmake
 , nixosTests
-, alsaLib
+, alsa-lib
 , SDL2
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ SDL2 ] ++ lib.optional stdenv.isLinux alsaLib;
+  buildInputs = [ SDL2 ] ++ lib.optional stdenv.isLinux alsa-lib;
 
   passthru.tests = {
     pt2-clone-opens = nixosTests.pt2-clone;
diff --git a/nixpkgs/pkgs/applications/audio/puredata/default.nix b/nixpkgs/pkgs/applications/audio/puredata/default.nix
index 9bc6903e51b8..ebdc0388b965 100644
--- a/nixpkgs/pkgs/applications/audio/puredata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/puredata/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, autoreconfHook, gettext, makeWrapper
-, alsaLib, libjack2, tk, fftw
+, alsa-lib, libjack2, tk, fftw
 }:
 
 stdenv.mkDerivation  rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ autoreconfHook gettext makeWrapper ];
 
-  buildInputs = [ alsaLib libjack2 fftw ];
+  buildInputs = [ alsa-lib libjack2 fftw ];
 
   configureFlags = [
     "--enable-alsa"
diff --git a/nixpkgs/pkgs/applications/audio/qjackctl/default.nix b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
index 586dfeae7331..7196829afa0e 100644
--- a/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
@@ -1,5 +1,5 @@
 { lib, mkDerivation, fetchFromGitHub
-, pkg-config, cmake, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras
+, pkg-config, cmake, alsa-lib, libjack2, dbus, qtbase, qttools, qtx11extras
 # Enable jack session support
 , jackSession ? false
 }:
@@ -21,7 +21,7 @@ mkDerivation rec {
     qtbase
     qtx11extras
     qttools
-    alsaLib
+    alsa-lib
     libjack2
     dbus
   ];
diff --git a/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix b/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
index 4fa165a05a9c..618062dc2f37 100644
--- a/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
@@ -5,7 +5,7 @@
 , lv2
 , pkg-config
 , qt5
-, alsaLib
+, alsa-lib
 , libjack2
 }:
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     lv2
     libjack2
   ] ++ (with qt5; [
diff --git a/nixpkgs/pkgs/applications/audio/qmidinet/default.nix b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
index ea5430a82a2f..51772cc135b5 100644
--- a/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl, pkg-config, qtbase, qttools, alsaLib, libjack2 }:
+{ mkDerivation, lib, fetchurl, pkg-config, qtbase, qttools, alsa-lib, libjack2 }:
 
 mkDerivation rec {
   version = "0.9.1";
@@ -11,7 +11,7 @@ mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  buildInputs = [  qtbase qttools alsaLib libjack2 ];
+  buildInputs = [  qtbase qttools alsa-lib libjack2 ];
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix b/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix
index e24824985fa7..35aea5bd086b 100644
--- a/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, qt4, alsaLib }:
+{ lib, stdenv, fetchurl, pkg-config, qt4, alsa-lib }:
 
 stdenv.mkDerivation rec {
   version = "0.4.0";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ qt4 alsaLib ];
+  buildInputs = [ qt4 alsa-lib ];
 
   meta = with lib; {
     description = "MIDI event processor and router";
diff --git a/nixpkgs/pkgs/applications/audio/qmmp/default.nix b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
index 25263f2a2cbd..25d7857c3539 100644
--- a/nixpkgs/pkgs/applications/audio/qmmp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
@@ -4,9 +4,9 @@
 , curl, libmms
 # input plugins
 , libmad, taglib, libvorbis, libogg, flac, libmpcdec, libmodplug, libsndfile
-, libcdio, cdparanoia, libcddb, faad2, ffmpeg_3, wildmidi
+, libcdio, cdparanoia, libcddb, faad2, ffmpeg, wildmidi
 # output plugins
-, alsaLib, libpulseaudio
+, alsa-lib, libpulseaudio
 # effect plugins
 , libsamplerate
 }:
@@ -44,19 +44,19 @@ mkDerivation rec {
       curl libmms
       # input plugins
       libmad taglib libvorbis libogg flac libmpcdec libmodplug libsndfile
-      libcdio cdparanoia libcddb faad2 ffmpeg_3 wildmidi
+      libcdio cdparanoia libcddb faad2 ffmpeg wildmidi
       # output plugins
-      alsaLib libpulseaudio
+      alsa-lib libpulseaudio
       # effect plugins
       libsamplerate
     ];
 
   meta = with lib; {
     description = "Qt-based audio player that looks like Winamp";
-    homepage = "http://qmmp.ylsoftware.com/";
-    license = licenses.gpl2;
+    homepage = "https://qmmp.ylsoftware.com/";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
-    repositories.svn = "http://qmmp.googlecode.com/svn/";
+    repositories.svn = "https://svn.code.sf.net/p/qmmp-dev/code";
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/qsynth/default.nix b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
index 417c478e9e5c..6d75c32a6667 100644
--- a/nixpkgs/pkgs/applications/audio/qsynth/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, alsaLib, fluidsynth, libjack2, autoconf, pkg-config
+{ lib, fetchurl, alsa-lib, fluidsynth, libjack2, autoconf, pkg-config
 , mkDerivation, qtbase, qttools, qtx11extras
 }:
 
@@ -13,7 +13,7 @@ mkDerivation  rec {
 
   nativeBuildInputs = [ autoconf pkg-config ];
 
-  buildInputs = [ alsaLib fluidsynth libjack2 qtbase qttools qtx11extras ];
+  buildInputs = [ alsa-lib fluidsynth libjack2 qtbase qttools qtx11extras ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/applications/audio/qtractor/default.nix b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
index f19d0f70fdf4..b1d0928b86a0 100644
--- a/nixpkgs/pkgs/applications/audio/qtractor/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib
+{ alsa-lib
 , aubio
 , cmake
 , dssi
@@ -45,7 +45,7 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     aubio
     dssi
     flac
diff --git a/nixpkgs/pkgs/applications/audio/quadrafuzz/default.nix b/nixpkgs/pkgs/applications/audio/quadrafuzz/default.nix
new file mode 100644
index 000000000000..1432c0b81011
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/quadrafuzz/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchFromGitHub, boost, cairo, lv2, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "quadrafuzz";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "jpcima";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1kjsf7il9krihwlrq08gk2xvil4b4q5zd87nnm103hby2w7ws7z1";
+    fetchSubmodules = true;
+  };
+
+  postPatch = ''
+    patchShebangs ./dpf/utils/generate-ttl.sh
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    boost cairo lv2
+  ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/lib/lv2
+    cp -r bin/quadrafuzz.lv2/ $out/lib/lv2
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/jpcima/quadrafuzz";
+    description = "Multi-band fuzz distortion plugin";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/quodlibet/default.nix b/nixpkgs/pkgs/applications/audio/quodlibet/default.nix
index 2110a0deb242..24f9f057b65a 100644
--- a/nixpkgs/pkgs/applications/audio/quodlibet/default.nix
+++ b/nixpkgs/pkgs/applications/audio/quodlibet/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome3, gtk3, gdk-pixbuf, librsvg,
-  tag ? "", xvfb_run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme,
+{ lib, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome, gtk3, gdk-pixbuf, librsvg,
+  tag ? "", xvfb-run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme,
   gst_all_1, withGstPlugins ? true,
-  xineBackend ? false, xineLib,
+  xineBackend ? false, xine-lib,
   withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false,
   webkitgtk ? null,
   keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }:
@@ -9,21 +9,19 @@
 let optionals = lib.optionals; in
 python3.pkgs.buildPythonApplication rec {
   pname = "quodlibet${tag}";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchurl {
     url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
-    sha256 = "1q17ckblfa4fcs7wsjwsq1dj7360ymrdyjkyqmj864wzlqkw1rd2";
+    sha256 = "sha256-oDMY0nZ+SVlVF2PQqH+tl3OHr3EmCP5XJxQXaiS782c=";
   };
 
-  patches = [ ./quodlibet-feedparser6.patch ];
-
   nativeBuildInputs = [ wrapGAppsHook gettext ];
 
-  checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb_run dbus.daemon glibcLocales ]);
+  checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb-run dbus.daemon glibcLocales ]);
 
-  buildInputs = [ gnome3.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ]
-    ++ (if xineBackend then [ xineLib ] else with gst_all_1;
+  buildInputs = [ gnome.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ]
+    ++ (if xineBackend then [ xine-lib ] else with gst_all_1;
     [ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]);
 
   propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo mutagen gst-python feedparser ]
@@ -50,8 +48,6 @@ python3.pkgs.buildPythonApplication rec {
 
   checkPhase = ''
     runHook preCheck
-    # newer gettext spews some warnings which fail the tests
-    substituteInPlace tests/test_po.py --replace "strict=True" "strict=False"
     # otherwise tests can't find the app icons; instead of creating index.theme from scratch
     # I re-used the one from hicolor-icon-theme which seems to work
     cp "${hicolor-icon-theme}/share/icons/hicolor/index.theme" quodlibet/images/hicolor
diff --git a/nixpkgs/pkgs/applications/audio/quodlibet/quodlibet-feedparser6.patch b/nixpkgs/pkgs/applications/audio/quodlibet/quodlibet-feedparser6.patch
deleted file mode 100644
index 41c6c75cea25..000000000000
--- a/nixpkgs/pkgs/applications/audio/quodlibet/quodlibet-feedparser6.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Support feedparser 6, based on https://github.com/quodlibet/quodlibet/pull/3464
-
---- a/quodlibet/browsers/audiofeeds.py
-+++ b/quodlibet/browsers/audiofeeds.py
-@@ -137,7 +137,4 @@ class Feed(list):
-     def parse(self):
-         try:
--            if not self._check_feed():
--                return False
--
-             doc = feedparser.parse(self.uri)
-         except Exception as e:
diff --git a/nixpkgs/pkgs/applications/audio/r128gain/default.nix b/nixpkgs/pkgs/applications/audio/r128gain/default.nix
index 3044acb32649..96053d08d00f 100644
--- a/nixpkgs/pkgs/applications/audio/r128gain/default.nix
+++ b/nixpkgs/pkgs/applications/audio/r128gain/default.nix
@@ -3,7 +3,7 @@
 , genericUpdater
 , substituteAll
 , common-updater-scripts
-, ffmpeg_3
+, ffmpeg
 , python3Packages
 , sox
 }:
@@ -20,12 +20,10 @@ python3Packages.buildPythonApplication rec {
   };
 
   patches = [
-    (
-      substituteAll {
-        src = ./ffmpeg-location.patch;
-        ffmpeg = ffmpeg_3;
-      }
-    )
+    (substituteAll {
+      src = ./ffmpeg-location.patch;
+      inherit ffmpeg;
+    })
   ];
 
   propagatedBuildInputs = with python3Packages; [ crcmod ffmpeg-python mutagen tqdm ];
diff --git a/nixpkgs/pkgs/applications/audio/rakarrack/default.nix b/nixpkgs/pkgs/applications/audio/rakarrack/default.nix
index 8b5dd869e82e..6d5d1ca860d0 100644
--- a/nixpkgs/pkgs/applications/audio/rakarrack/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rakarrack/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, alsaUtils, fltk, libjack2, libXft,
+{ lib, stdenv, fetchurl, alsa-lib, alsa-utils, fltk, libjack2, libXft,
 libXpm, libjpeg, libpng, libsamplerate, libsndfile, zlib }:
 
 stdenv.mkDerivation  rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation  rec {
 
   patches = [ ./fltk-path.patch ];
 
-  buildInputs = [ alsaLib alsaUtils fltk libjack2 libXft libXpm libjpeg
+  buildInputs = [ alsa-lib alsa-utils fltk libjack2 libXft libXpm libjpeg
     libpng libsamplerate libsndfile zlib ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/reaper/default.nix b/nixpkgs/pkgs/applications/audio/reaper/default.nix
index 19def55a15c2..705685811ff2 100644
--- a/nixpkgs/pkgs/applications/audio/reaper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/reaper/default.nix
@@ -3,11 +3,13 @@
 , autoPatchelfHook
 , makeWrapper
 
-, alsaLib
+, alsa-lib
 , gtk3
 , lame
 , ffmpeg
 , vlc
+, xdg-utils
+, which
 
 , jackSupport ? true, libjack2
 , pulseaudioSupport ? config.pulseaudio or true, libpulseaudio
@@ -15,17 +17,22 @@
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "6.25";
+  version = "6.28";
 
   src = fetchurl {
     url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
-    sha256 = "0i1idlr4ar28wvwcvwn9hqzb63kki1x1995cr87a9slxfa7zcshb";
+    hash = "sha256-38HSjR+rQWPzMOjq1abLn/MP3DCz5YzBg0v2kBsQmR4=";
   };
 
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeWrapper
+    xdg-utils # Required for desktop integration
+    which
+  ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     stdenv.cc.cc.lib # reaper and libSwell need libstdc++.so.6
     gtk3
   ];
@@ -41,7 +48,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    XDG_DATA_HOME="$out/share" ./install-reaper.sh \
+    HOME="$out/share" XDG_DATA_HOME="$out/share" ./install-reaper.sh \
       --install $out/opt \
       --integrate-user-desktop
     rm $out/opt/REAPER/uninstall-reaper.sh
diff --git a/nixpkgs/pkgs/applications/audio/renoise/default.nix b/nixpkgs/pkgs/applications/audio/renoise/default.nix
index fd9a9f00502d..acd1d80c86d5 100644
--- a/nixpkgs/pkgs/applications/audio/renoise/default.nix
+++ b/nixpkgs/pkgs/applications/audio/renoise/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsaLib
+{ lib, stdenv, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsa-lib
 , mpg123, releasePath ? null }:
 
 with lib;
@@ -14,7 +14,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "renoise";
-  version = "3.3.1";
+  version = "3.3.2";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
@@ -24,13 +24,13 @@ stdenv.mkDerivation rec {
               "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
               "https://web.archive.org/web/https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
           ];
-          sha256 = "05baicks5dx278z2dx6h5n2vabsn64niwqssgys36xy469l9m1h0";
+          sha256 = "0d9pnrvs93d4bwbfqxwyr3lg3k6gnzmp81m95gglzwdzczxkw38k";
         }
         else
           releasePath
     else throw "Platform is not supported. Use instalation native to your platform https://www.renoise.com/";
 
-  buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ];
+  buildInputs = [ alsa-lib libjack2 libX11 libXcursor libXext libXrandr ];
 
   installPhase = ''
     cp -r Resources $out
diff --git a/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix b/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix
index 173741484fd4..65499f58630e 100644
--- a/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix
@@ -6,7 +6,7 @@
 , intltool
 , libpeas
 , libsoup
-, gnome3
+, gnome
 , totem-pl-parser
 , tdb
 , json-glib
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
     gtk3
     libpeas
     totem-pl-parser
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
 
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
@@ -51,7 +51,7 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
index b95e5fdc76d2..38d8a8769628 100644
--- a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake, makedepend, perl, pkg-config, qttools, wrapQtAppsHook
-, dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2, alsaLib
+, dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2, alsa-lib
 , liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
 
 stdenv.mkDerivation (rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation (rec {
     lirc
     lrdf
     qtbase
-    alsaLib
+    alsa-lib
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/rymcast/default.nix b/nixpkgs/pkgs/applications/audio/rymcast/default.nix
new file mode 100644
index 000000000000..92d3151c835c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/rymcast/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchzip, autoPatchelfHook, makeWrapper
+, alsa-lib, curl, gtk3, webkitgtk, zenity }:
+
+stdenv.mkDerivation rec {
+  pname = "rymcast";
+  version = "1.0.6";
+
+  src = fetchzip {
+    url = "https://www.inphonik.com/files/rymcast/rymcast-${version}-linux-x64.tar.gz";
+    hash = "sha256:0vjjhfrwdibjjgz3awbg30qxkjrzc4cya1f4pigwjh3r0vvrq0ga";
+    stripRoot = false;
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+
+  buildInputs = [ alsa-lib curl gtk3 stdenv.cc.cc.lib webkitgtk zenity ];
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp RYMCast "$out/bin/"
+    wrapProgram "$out/bin/RYMCast" \
+      --set PATH "${lib.makeBinPath [ zenity ]}"
+  '';
+
+  meta = with lib; {
+    description = "Player for Mega Drive/Genesis VGM files";
+    homepage = "https://www.inphonik.com/products/rymcast-genesis-vgm-player/";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ astsmtl ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/samplv1/default.nix b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
index 8f0a48081215..8c7070516862 100644
--- a/nixpkgs/pkgs/applications/audio/samplv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchurl, pkg-config, libjack2
-, alsaLib, liblo, libsndfile, lv2, qtbase, qttools
+, alsa-lib, liblo, libsndfile, lv2, qtbase, qttools
 , rubberband
 }:
 
@@ -14,7 +14,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ qttools pkg-config ];
 
-  buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qtbase rubberband ];
+  buildInputs = [ libjack2 alsa-lib liblo libsndfile lv2 qtbase rubberband ];
 
   meta = with lib; {
     description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
diff --git a/nixpkgs/pkgs/applications/audio/schismtracker/default.nix b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
index 3b5708529e06..ba193f70194d 100644
--- a/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
@@ -1,29 +1,35 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
 , autoreconfHook
-, alsaLib, python, SDL }:
+, alsa-lib
+, python
+, SDL
+}:
 
 stdenv.mkDerivation rec {
   pname = "schismtracker";
-  version = "20200412";
+  version = "20210525";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1n6cgjiw3vkv7a1h1nki5syyjxjb6icknr9s049w2jrag10bxssn";
+    sha256 = "06ybkbqry7f7lmzgwb9s7ipafshl5gdj98lcjsjkcbnywj8r9b3h";
   };
 
-  configureFlags = [ "--enable-dependency-tracking" ];
+  configureFlags = [ "--enable-dependency-tracking" ]
+    ++ lib.optional stdenv.isDarwin "--disable-sdltest";
 
   nativeBuildInputs = [ autoreconfHook python ];
 
-  buildInputs = [ SDL ] ++ lib.optional stdenv.isLinux alsaLib;
+  buildInputs = [ SDL ] ++ lib.optional stdenv.isLinux alsa-lib;
 
   meta = with lib; {
     description = "Music tracker application, free reimplementation of Impulse Tracker";
     homepage = "http://schismtracker.org/";
-    license = licenses.gpl2;
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ ftrvxmtrx ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/scream/default.nix b/nixpkgs/pkgs/applications/audio/scream/default.nix
new file mode 100644
index 000000000000..fb0ba9408d9e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/scream/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, config, fetchFromGitHub, cmake, pkg-config
+, alsaSupport ? stdenv.isLinux, alsa-lib
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "scream";
+  version = "3.6";
+
+  src = fetchFromGitHub {
+    owner = "duncanthrax";
+    repo = pname;
+    rev = version;
+    sha256 = "01k2zhfb781gfj3apmcjqbm5m05m6pvnh7fb5k81zwvqibai000v";
+  };
+
+  buildInputs = lib.optional pulseSupport libpulseaudio
+    ++ lib.optional alsaSupport alsa-lib;
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  cmakeFlags = [
+    "-DPULSEAUDIO_ENABLE=${if pulseSupport then "ON" else "OFF"}"
+    "-DALSA_ENABLE=${if alsaSupport then "ON" else "OFF"}"
+  ];
+
+  cmakeDir = "../Receivers/unix";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    set +o pipefail
+
+    # Programs exit with code 1 when testing help, so grep for a string
+    $out/bin/scream -h 2>&1 | grep -q Usage:
+  '';
+
+  meta = with lib; {
+    description = "Audio receiver for the Scream virtual network sound card";
+    homepage = "https://github.com/duncanthrax/scream";
+    license = licenses.mspl;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ arcnmx ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/seq24/default.nix b/nixpkgs/pkgs/applications/audio/seq24/default.nix
index 84eebfac6956..f586a1592f9c 100644
--- a/nixpkgs/pkgs/applications/audio/seq24/default.nix
+++ b/nixpkgs/pkgs/applications/audio/seq24/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, gtkmm2, libjack2, pkg-config }:
+{ lib, stdenv, fetchurl, alsa-lib, gtkmm2, libjack2, pkg-config }:
 
 stdenv.mkDerivation  rec {
   pname = "seq24";
@@ -11,7 +11,7 @@ stdenv.mkDerivation  rec {
 
   patches = [ ./mutex_no_nameclash.patch ];
 
-  buildInputs = [ alsaLib gtkmm2 libjack2 ];
+  buildInputs = [ alsa-lib gtkmm2 libjack2 ];
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/seq66/default.nix b/nixpkgs/pkgs/applications/audio/seq66/default.nix
index 71d70c2dd580..0132b9679004 100644
--- a/nixpkgs/pkgs/applications/audio/seq66/default.nix
+++ b/nixpkgs/pkgs/applications/audio/seq66/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, qttools, which
-, alsaLib, libjack2, liblo, qtbase
+, alsa-lib, libjack2, liblo, qtbase
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkg-config qttools which ];
 
-  buildInputs = [ alsaLib libjack2 liblo qtbase ];
+  buildInputs = [ alsa-lib libjack2 liblo qtbase ];
 
   postPatch = ''
     for d in libseq66/include libseq66/src libsessions/include libsessions/src seq_qt5/src seq_rtmidi/include seq_rtmidi/src Seqtool/src; do
diff --git a/nixpkgs/pkgs/applications/audio/setbfree/default.nix b/nixpkgs/pkgs/applications/audio/setbfree/default.nix
index 613abbf3c128..67851611f76e 100644
--- a/nixpkgs/pkgs/applications/audio/setbfree/default.nix
+++ b/nixpkgs/pkgs/applications/audio/setbfree/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, alsaLib, freetype, ftgl, libjack2, libX11, lv2
+{ lib, stdenv, fetchzip, alsa-lib, freetype, ftgl, libjack2, libX11, lv2
 , libGLU, libGL, pkg-config, ttf_bitstream_vera
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    alsaLib freetype ftgl libjack2 libX11 lv2 libGLU libGL
+    alsa-lib freetype ftgl libjack2 libX11 lv2 libGLU libGL
     ttf_bitstream_vera
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/sfizz/default.nix b/nixpkgs/pkgs/applications/audio/sfizz/default.nix
index 153e52c82e17..702f5c3982a2 100644
--- a/nixpkgs/pkgs/applications/audio/sfizz/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sfizz/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , libjack2, libsndfile, xorg, freetype, libxkbcommon
-, cairo, glib, gnome3, flac, libogg, libvorbis, libopus
+, cairo, glib, gnome, flac, libogg, libvorbis, libopus
 , cmake, pkg-config
 }:
 
@@ -35,14 +35,14 @@ stdenv.mkDerivation rec {
     libxkbcommon
     cairo
     glib
-    gnome3.zenity
+    gnome.zenity
     freetype
   ];
   nativeBuildInputs = [ cmake pkg-config ];
 
   postPatch = ''
   substituteInPlace editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
-    --replace '"/usr/bin/zenity' '"${gnome3.zenity}/bin/zenity'
+    --replace '"/usr/bin/zenity' '"${gnome.zenity}/bin/zenity'
   '';
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix b/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
index 65f21c136121..4f7e43ca004b 100644
--- a/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
@@ -6,7 +6,7 @@
 , pkg-config
 , libsidplayfp
 , alsaSupport ? stdenv.hostPlatform.isLinux
-, alsaLib
+, alsa-lib
 , pulseSupport ? stdenv.hostPlatform.isLinux
 , libpulseaudio
 , out123Support ? stdenv.hostPlatform.isDarwin
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook perl pkg-config ];
 
   buildInputs = [ libsidplayfp ]
-    ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional pulseSupport libpulseaudio
     ++ lib.optional out123Support mpg123;
 
diff --git a/nixpkgs/pkgs/applications/audio/snapcast/default.nix b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
index 18d073caba71..0299f66191ed 100644
--- a/nixpkgs/pkgs/applications/audio/snapcast/default.nix
+++ b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkg-config
-, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr
+, alsa-lib, asio, avahi, boost17x, flac, libogg, libvorbis, soxr
 , nixosTests }:
 
 let
@@ -34,20 +34,21 @@ in
 
 stdenv.mkDerivation rec {
   pname = "snapcast";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner  = "badaix";
     repo   = "snapcast";
     rev    = "v${version}";
-    sha256 = "13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g";
+    sha256 = "064pcpr5dsv9hncqkrnxriva4xjv1vcxhvc69h1an8x8vn4dwgmf";
   };
 
-  nativeBuildInputs = [ cmake pkg-config boost170.dev ];
+  nativeBuildInputs = [ cmake pkg-config ];
   # snapcast also supports building against tremor but as we have libogg, that's
   # not needed
   buildInputs = [
-    alsaLib asio avahi flac libogg libvorbis
+    boost17x
+    alsa-lib asio avahi flac libogg libvorbis
     aixlog popl soxr
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/snd/default.nix b/nixpkgs/pkgs/applications/audio/snd/default.nix
index 164f266462a8..4881360b82e6 100644
--- a/nixpkgs/pkgs/applications/audio/snd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/snd/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config
-, alsaLib, fftw, gsl, motif, xorg
+, alsa-lib, fftw, gsl, motif, xorg
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ alsaLib fftw gsl motif ]
+  buildInputs = [ alsa-lib fftw gsl motif ]
     ++ (with xorg; [ libXext libXft libXpm libXt ]);
 
   configureFlags = [ "--with-motif" ];
diff --git a/nixpkgs/pkgs/applications/audio/sndpeek/default.nix b/nixpkgs/pkgs/applications/audio/sndpeek/default.nix
index a8dfe759d625..39f706d1f24c 100644
--- a/nixpkgs/pkgs/applications/audio/sndpeek/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sndpeek/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libsndfile, freeglut, alsaLib, mesa, libGLU, libX11, libXmu
+{ lib, stdenv, fetchurl, libsndfile, freeglut, alsa-lib, mesa, libGLU, libX11, libXmu
 , libXext, libXi }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     freeglut
-    alsaLib
+    alsa-lib
     mesa
     libGLU
     libsndfile
diff --git a/nixpkgs/pkgs/applications/audio/sonata/default.nix b/nixpkgs/pkgs/applications/audio/sonata/default.nix
index 83af7985dbe2..9eae394488e2 100644
--- a/nixpkgs/pkgs/applications/audio/sonata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonata/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, wrapGAppsHook, gettext
-, python3Packages, gnome3, gtk3, glib, gdk-pixbuf, gsettings-desktop-schemas, gobject-introspection }:
+, python3Packages, gnome, gtk3, glib, gdk-pixbuf, gsettings-desktop-schemas, gobject-introspection }:
 
 let
   inherit (python3Packages) buildPythonApplication isPy3k dbus-python pygobject3 mpd2 setuptools;
@@ -24,7 +24,7 @@ in buildPythonApplication rec {
 
   buildInputs = [
     glib
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gsettings-desktop-schemas
     gtk3
     gdk-pixbuf
diff --git a/nixpkgs/pkgs/applications/audio/songrec/default.nix b/nixpkgs/pkgs/applications/audio/songrec/default.nix
new file mode 100644
index 000000000000..2928771b3ec7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/songrec/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, gtk3
+, openssl
+, alsa-lib
+, pkg-config
+, ffmpeg
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "songrec";
+  version = "0.1.8";
+
+  src = fetchFromGitHub {
+    owner = "marin-m";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-6siGLegNgvLdP7engwpKmhzWYqBXcMsfaXhJJ1tIqJg=";
+  };
+
+  cargoSha256 = "sha256-H4qJYcFjip71EVTGw50goj0HjKN9fmjQZqQDhaSKlaQ=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ alsa-lib gtk3 openssl ffmpeg ];
+
+  meta = with lib; {
+    description = "An open-source Shazam client for Linux, written in Rust";
+    homepage = "https://github.com/marin-m/SongRec";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tcbravo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix b/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
index b88165f693a3..711444651c33 100644
--- a/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, boost, bzip2, fftw, fftwFloat, libfishsound
+{ lib, stdenv, fetchurl, alsa-lib, boost, bzip2, fftw, fftwFloat, libfishsound
 , libid3tag, liblo, libmad, liboggz, libpulseaudio, libsamplerate
 , libsndfile, lrdf, opusfile, portaudio, rubberband, serd, sord, capnproto
 , wrapQtAppsHook, pkg-config
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ alsaLib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo
+    [ alsa-lib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo
       libmad liboggz libpulseaudio libsamplerate libsndfile lrdf opusfile
       portaudio rubberband serd sord capnproto
     ];
diff --git a/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix b/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
index f2df119fcc68..43254e6c2b0e 100644
--- a/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -1,6 +1,6 @@
 # TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
 
-{ lib, stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
+{ lib, stdenv, fetchurl, alsa-lib, bzip2, fftw, libjack2, libX11, liblo
 , libmad, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
 , libsndfile, pkg-config, libpulseaudio, qtbase, qtsvg, redland
 , rubberband, serd, sord, vamp-plugin-sdk, fftwFloat
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
   buildInputs =
     [ libsndfile qtbase qtsvg fftw fftwFloat bzip2 lrdf rubberband
-      libsamplerate vamp-plugin-sdk alsaLib librdf_raptor librdf_rasqal redland
+      libsamplerate vamp-plugin-sdk alsa-lib librdf_raptor librdf_rasqal redland
       serd
       sord
       # optional
diff --git a/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix b/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
index 135c042d538a..1cad71ae2973 100644
--- a/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
@@ -14,7 +14,7 @@
 , rubberband
 , gettext
 , ncurses
-, alsaLib
+, alsa-lib
 , fftw
 }:
 
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     rubberband
     gettext
     ncurses
-    alsaLib
+    alsa-lib
     fftw
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix b/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
index 740757a639e3..c03b48c436bf 100644
--- a/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
@@ -1,31 +1,61 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, gtk3, intltool, itstool, libxml2, brasero
-, libcanberra-gtk3, gnome3, gst_all_1, libmusicbrainz5, libdiscid, isocodes
-, gsettings-desktop-schemas, wrapGAppsHook }:
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, glib
+, gtk3
+, itstool
+, libxml2
+, brasero
+, libcanberra-gtk3
+, gnome
+, gst_all_1
+, libmusicbrainz5
+, libdiscid
+, isocodes
+, gsettings-desktop-schemas
+, wrapGAppsHook
+}:
 
-let
+stdenv.mkDerivation rec {
   pname = "sound-juicer";
-  version = "3.24.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "3.38.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "08d5d81rz9sj3m5paw8fwbgxmhlbr7bcjdzpmzj832qvg8smydxf";
   };
 
-  nativeBuildInputs = [ pkg-config intltool itstool libxml2 wrapGAppsHook ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    itstool
+    libxml2
+    wrapGAppsHook
+  ];
+
   buildInputs = [
-    glib gtk3 brasero libcanberra-gtk3 gnome3.adwaita-icon-theme
-    gsettings-desktop-schemas libmusicbrainz5 libdiscid isocodes
-    gst_all_1.gstreamer gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
+    glib
+    gtk3
+    brasero
+    libcanberra-gtk3
+    gnome.adwaita-icon-theme
+    gsettings-desktop-schemas
+    libmusicbrainz5
+    libdiscid
+    isocodes
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
     gst_all_1.gst-libav
   ];
 
-  NIX_CFLAGS_COMPILE="-Wno-error=format-nonliteral";
-
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
@@ -34,7 +64,7 @@ in stdenv.mkDerivation rec {
     description = "A Gnome CD Ripper";
     homepage = "https://wiki.gnome.org/Apps/SoundJuicer";
     maintainers = [ maintainers.bdimcheff ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/soundtracker/default.nix b/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
index 71fc763a5c5d..3dc9089b241f 100644
--- a/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
@@ -3,7 +3,7 @@
 , pkg-config
 , autoconf
 , gtk2
-, alsaLib
+, alsa-lib
 , SDL
 , jack2
 , audiofile
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     jack2
     audiofile
     goocanvas
-  ] ++ lib.optional stdenv.isLinux alsaLib;
+  ] ++ lib.optional stdenv.isLinux alsa-lib;
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/applications/audio/spot/default.nix b/nixpkgs/pkgs/applications/audio/spot/default.nix
new file mode 100644
index 000000000000..2859a2e942e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spot/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, gettext
+, python3
+, desktop-file-utils
+, rustPlatform
+, pkg-config
+, glib
+, libhandy
+, gtk3
+, openssl
+, alsa-lib
+, libpulseaudio
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "spot";
+  version = "0.1.14";
+
+  src = fetchFromGitHub {
+    owner = "xou816";
+    repo = "spot";
+    rev = version;
+    sha256 = "eHhbm1amTx3ngqsP32uDEdrhrBeurMftg5SToTQGX9o=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-jY7pWoY9IJi5hHVRS1gQKb+Vmfc+wxHvoAwupOtXXQs=";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    meson
+    ninja
+    pkg-config
+    python3 # for meson postinstall script
+    gtk3 # for gtk-update-icon-cache
+    glib # for glib-compile-schemas
+    desktop-file-utils
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    libhandy
+    openssl
+    alsa-lib
+    libpulseaudio
+  ];
+
+  postPatch = ''
+    chmod +x build-aux/cargo.sh
+    patchShebangs build-aux/cargo.sh build-aux/meson/postinstall.py
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "Native Spotify client for the GNOME desktop";
+    homepage = "https://github.com/xou816/spot";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix b/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
index 211e45f7b177..629cc4bd1160 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
    pname = "spotify-qt";
-   version = "3.5";
+   version = "3.6";
 
    src = fetchFromGitHub {
       owner = "kraxarn";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1bgd0q4sbbww3lbrx2zwgaz0sl7qh195s4kvgsq16gv7ij82bskn";
+      sha256 = "mKHyE6ZffMYYRLMpzMX53chyJyWxhTAaGvtBI3l6wkI=";
    };
 
    buildInputs = [ libxcb qtbase qtsvg ];
diff --git a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix b/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
index 78972effc4d0..86873802bfa5 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "082y5m2vglzx9kdc2088zynz0njcnljnb0y170igmlsxq9wkrgg2";
   };
 
-  cargoSha256 = "100c7x603qyhav3p24clwfal4ngh0258x9lqsi84kcj4wq2f3i8f";
+  cargoSha256 = "1khn6fx13qlfpqwnw7ysgan5h4nrg2qnzn2p74vn7jic3mqc3sax";
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config python3 ];
   buildInputs = [ ]
diff --git a/nixpkgs/pkgs/applications/audio/spotify/default.nix b/nixpkgs/pkgs/applications/audio/spotify/default.nix
index 3be5af2755be..db0f69c80abe 100644
--- a/nixpkgs/pkgs/applications/audio/spotify/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify/default.nix
@@ -1,6 +1,6 @@
-{ fetchurl, lib, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
+{ fetchurl, lib, stdenv, squashfsTools, xorg, alsa-lib, makeWrapper, openssl, freetype
 , glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify
-, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
+, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg, curl, zlib, gnome
 , at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
 }:
 
@@ -20,7 +20,7 @@ let
   rev = "46";
 
   deps = [
-    alsaLib
+    alsa-lib
     atk
     at-spi2-atk
     at-spi2-core
@@ -29,7 +29,7 @@ let
     curl
     dbus
     expat
-    ffmpeg_3
+    ffmpeg
     fontconfig
     freetype
     gdk-pixbuf
@@ -127,8 +127,8 @@ stdenv.mkDerivation {
       ln -s ${nspr.out}/lib/libnspr4.so $libdir/libnspr4.so
       ln -s ${nspr.out}/lib/libplc4.so $libdir/libplc4.so
 
-      ln -s ${ffmpeg_3.out}/lib/libavcodec.so* $libdir
-      ln -s ${ffmpeg_3.out}/lib/libavformat.so* $libdir
+      ln -s ${ffmpeg.out}/lib/libavcodec.so* $libdir
+      ln -s ${ffmpeg.out}/lib/libavformat.so* $libdir
 
       rpath="$out/share/spotify:$libdir"
 
@@ -139,7 +139,7 @@ stdenv.mkDerivation {
       librarypath="${lib.makeLibraryPath deps}:$libdir"
       wrapProgram $out/share/spotify/spotify \
         --prefix LD_LIBRARY_PATH : "$librarypath" \
-        --prefix PATH : "${gnome3.zenity}/bin"
+        --prefix PATH : "${gnome.zenity}/bin"
 
       # fix Icon line in the desktop file (#48062)
       sed -i "s:^Icon=.*:Icon=spotify-client:" "$out/share/spotify/spotify.desktop"
diff --git a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
index 3c4370d1614e..e9de6cb3cf78 100644
--- a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, rustPackages, pkg-config, openssl
-, withALSA ? true, alsaLib
+, withALSA ? true, alsa-lib
 , withPulseAudio ? false, libpulseaudio
 , withPortAudio ? false, portaudio
 , withMpris ? false
@@ -18,7 +18,7 @@ rustPackages.rustPlatform.buildRustPackage rec {
     sha256 = "1a578h13iv8gqmskzlncfr42jlg5gp0zfcizv4wbd48y9hl8fh2l";
   };
 
-  cargoSha256 = "1sm5yfgjx5xfnqqh1v8ycwzxw4kl6dq5gcvsdnc4h1cj3pdhbpcc";
+  cargoSha256 = "07dxfc0csrnfl01p9vdrqvca9f574svlf37dk3dz8p6q08ki0n1z";
 
   cargoBuildFlags = [
     "--no-default-features"
@@ -29,7 +29,7 @@ rustPackages.rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ openssl ]
-    ++ lib.optional withALSA alsaLib
+    ++ lib.optional withALSA alsa-lib
     ++ lib.optional withPulseAudio libpulseaudio
     ++ lib.optional withPortAudio portaudio
     ++ lib.optional (withMpris || withKeyring) dbus;
diff --git a/nixpkgs/pkgs/applications/audio/squeezelite/default.nix b/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
index 6bb3bef8a50c..31fe69b00de5 100644
--- a/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
+++ b/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub
-, alsaLib, flac, libmad, libvorbis, mpg123
+, alsa-lib, flac, libmad, libvorbis, mpg123
 , dsdSupport ? true
 , faad2Support ? true, faad2
-, ffmpegSupport ? true, ffmpeg_3
+, ffmpegSupport ? true, ffmpeg
 , opusSupport ? true, opusfile
 , resampleSupport ? true, soxr
 , sslSupport ? true, openssl
@@ -33,9 +33,9 @@ in stdenv.mkDerivation {
     sha256 = "024ypr1da2r079k3hgiifzd3d3wcfprhbl5zdm40zm0c7frzmr8i";
   };
 
-  buildInputs = [ alsaLib flac libmad libvorbis mpg123 ]
+  buildInputs = [ alsa-lib flac libmad libvorbis mpg123 ]
     ++ optional faad2Support faad2
-    ++ optional ffmpegSupport ffmpeg_3
+    ++ optional ffmpegSupport ffmpeg
     ++ optional opusSupport opusfile
     ++ optional resampleSupport soxr
     ++ optional sslSupport openssl;
diff --git a/nixpkgs/pkgs/applications/audio/stochas/default.nix b/nixpkgs/pkgs/applications/audio/stochas/default.nix
index 0c50cda8e6c0..d295689716b2 100644
--- a/nixpkgs/pkgs/applications/audio/stochas/default.nix
+++ b/nixpkgs/pkgs/applications/audio/stochas/default.nix
@@ -1,21 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libX11, libXrandr, libXinerama, libXext, libXcursor, freetype, alsaLib, libjack2 }:
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libX11, libXrandr, libXinerama, libXext, libXcursor, freetype, alsa-lib, libjack2 }:
 
 stdenv.mkDerivation rec {
   pname = "stochas";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchFromGitHub {
     owner = "surge-synthesizer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b26mbj727dnygavz4kihnhmnnvwsr9l145w6kydq7bd7nwiw7lq";
+    sha256 = "1z8q53qfigw6wwbvpca92b9pf9d0mv3nyb0fmszz5ikj3pcybi7m";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [
-    libX11 libXrandr libXinerama libXext libXcursor freetype alsaLib libjack2
+    libX11 libXrandr libXinerama libXext libXcursor freetype alsa-lib libjack2
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/strawberry/default.nix b/nixpkgs/pkgs/applications/audio/strawberry/default.nix
index 76ed0e9cc1fe..5a5671ec7730 100644
--- a/nixpkgs/pkgs/applications/audio/strawberry/default.nix
+++ b/nixpkgs/pkgs/applications/audio/strawberry/default.nix
@@ -4,7 +4,7 @@
 , fetchFromGitHub
 , cmake
 , pkg-config
-, alsaLib
+, alsa-lib
 , boost
 , chromaprint
 , fftw
@@ -45,7 +45,7 @@ mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     boost
     chromaprint
     fftw
@@ -82,10 +82,6 @@ mkDerivation rec {
     util-linux
   ];
 
-  cmakeFlags = [
-    "-DUSE_SYSTEM_TAGLIB=ON"
-  ];
-
   postInstall = ''
     qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
   '';
diff --git a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
index 15963faf06b4..3d25ec3cdbb0 100644
--- a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
@@ -1,12 +1,11 @@
 { fetchFromGitLab
-, fetchpatch
 , lib
 , python3Packages
 , gobject-introspection
 , gtk3
 , pango
 , wrapGAppsHook
-, xvfb_run
+, xvfb-run
 , chromecastSupport ? false
 , serverSupport ? false
 , keyringSupport ? true
@@ -16,26 +15,16 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sublime-music";
-  version = "0.11.11";
+  version = "0.11.12";
   format = "pyproject";
 
   src = fetchFromGitLab {
     owner = "sublime-music";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-r4Tn/7CGDny8Aa4kF4PM5ZKMYthMJ7801X3zPdvXh4Q=";
+    sha256 = "sha256-fcEdpht+xKJRTaD3gKoRdf6O2SAPlZHZ61Jy8bdTKjs=";
   };
 
-  patches = [
-    # Switch to poetry-core:
-    # https://gitlab.com/sublime-music/sublime-music/-/merge_requests/60
-    (fetchpatch {
-      name = "use-poetry-core.patch";
-      url = "https://gitlab.com/sublime-music/sublime-music/-/commit/9b0af19dbdfdcc5a0fa23e73bb34c7135a8c2855.patch";
-      sha256 = "sha256-cXG0RvrnBpme6yKWM0nfqMqoK0qPT6spflJ9AaaslVg=";
-    })
-  ];
-
   nativeBuildInputs = [
     gobject-introspection
     python3Packages.poetry-core
@@ -77,7 +66,7 @@ python3Packages.buildPythonApplication rec {
     pytest
     pytest-cov
   ];
-  checkPhase = "${xvfb_run}/bin/xvfb-run pytest";
+  checkPhase = "${xvfb-run}/bin/xvfb-run pytest";
 
   # Also run the python import check for sanity
   pythonImportsCheck = [ "sublime_music" ];
diff --git a/nixpkgs/pkgs/applications/audio/sunvox/default.nix b/nixpkgs/pkgs/applications/audio/sunvox/default.nix
index ef7133630b5e..7c5c378d2faf 100644
--- a/nixpkgs/pkgs/applications/audio/sunvox/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sunvox/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchurl, unzip, alsaLib, libX11, libXi, SDL2 }:
+{ lib, stdenv, fetchurl, unzip, alsa-lib, libX11, libXi, SDL2 }:
 
 let
-  libPath = lib.makeLibraryPath [ stdenv.cc.cc alsaLib libX11 libXi SDL2 ];
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc alsa-lib libX11 libXi SDL2 ];
   arch =
     if stdenv.isAarch64
     then "arm64"
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.warmplace.ru/soft/sunvox/sunvox-${version}.zip";
-    sha256 = "0lqzr68n2c6aifw2vbyars91wn1chmgb9xfdk463g4vjqiava3ih";
+    sha256 = "10lqbm1grw0sqasx7i6528cishv5ksdf9zbb3ygxd8c1iwaxzhb9";
   };
 
   nativeBuildInputs = [ unzip ];
@@ -44,7 +44,5 @@ stdenv.mkDerivation rec {
     homepage = "http://www.warmplace.ru/soft/sunvox/";
     maintainers = with maintainers; [ puffnfresh ];
     platforms = [ "i686-linux" "x86_64-linux" ];
-    # hash mismatch
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/surge/default.nix b/nixpkgs/pkgs/applications/audio/surge/default.nix
index ed15d49cfe03..849b07d67e12 100644
--- a/nixpkgs/pkgs/applications/audio/surge/default.nix
+++ b/nixpkgs/pkgs/applications/audio/surge/default.nix
@@ -1,41 +1,46 @@
-{ lib, stdenv, fetchFromGitHub, cmake, git, pkg-config, python3
+{ stdenv, lib, fetchurl, fetchFromGitHub, cmake, git, pkg-config, python3
 , cairo, libsndfile, libxcb, libxkbcommon, xcbutil, xcbutilcursor, xcbutilkeysyms, zenity
+, curl, rsync
 }:
 
 stdenv.mkDerivation rec {
   pname = "surge";
-  version = "1.8.1";
+  version = "1.9.0";
 
-  src = fetchFromGitHub {
-    owner = "surge-synthesizer";
-    repo = pname;
-    rev = "release_${version}";
-    sha256 = "0lla860g7zgn9n1zgy14g4j72d5n5y7isyxz2w5xy2fzdpdg24ql";
-    leaveDotGit = true; # for SURGE_VERSION
-    fetchSubmodules = true;
+  src = fetchurl {
+    url = "https://github.com/surge-synthesizer/releases/releases/download/${version}/SurgeSrc_${version}.tgz";
+    sha256 = "00af4lfcipl0rn0dn4gfipx7nbk8ym1mrmji8v0ar98frsrpxg4k";
   };
 
+  extraContent = fetchFromGitHub {
+    owner = "surge-synthesizer";
+    repo = "surge-extra-content";
+    # rev from: https://github.com/surge-synthesizer/surge/blob/release_1.8.1/cmake/stage-extra-content.cmake#L6
+    # or: https://github.com/surge-synthesizer/surge/blob/main/cmake/stage-extra-content.cmake
+    # SURGE_EXTRA_CONTENT_HASH
+    rev = "afc591cc06d9adc3dc8dc515a55c66873fa10296";
+    sha256 = "1wqv86l70nwlrb10n47rib80f47a96j9qqg8w5dv46ys1sq2nz7z";
+  };
   nativeBuildInputs = [ cmake git pkg-config python3 ];
-  buildInputs = [ cairo libsndfile libxcb libxkbcommon xcbutil xcbutilcursor xcbutilkeysyms zenity ];
+  buildInputs = [ cairo libsndfile libxcb libxkbcommon xcbutil xcbutilcursor xcbutilkeysyms zenity curl rsync ];
 
   postPatch = ''
     substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
     substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
-    substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
-    patchShebangs scripts/linux/emit-vector-piggy
-    patchShebangs scripts/linux/generate-lv2-ttl
+    patchShebangs scripts/linux/
+    cp -r $extraContent/Skins/ resources/data/skins
   '';
 
+
   installPhase = ''
-    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/share/surge
-    cp -r surge_products/Surge.lv2 $out/lib/lv2/
-    cp -r surge_products/Surge.vst3 $out/lib/vst3/
-    cp -r ../resources/data/* $out/share/surge/
+    cd ..
+    cmake --build build --config Release --target install-everything-global
   '';
 
   doInstallCheck = true;
   installCheckPhase = ''
-    cd ..
+    export HOME=$(mktemp -d)
+    export SURGE_DISABLE_NETWORK_TESTS=TRUE
     build/surge-headless
   '';
 
diff --git a/nixpkgs/pkgs/applications/audio/synthv1/default.nix b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
index 50e16c355e2b..eecf8caee379 100644
--- a/nixpkgs/pkgs/applications/audio/synthv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl, pkg-config, qtbase, qttools, libjack2, alsaLib, liblo, lv2 }:
+{ mkDerivation, lib, fetchurl, pkg-config, qtbase, qttools, libjack2, alsa-lib, liblo, lv2 }:
 
 mkDerivation rec {
   pname = "synthv1";
@@ -9,7 +9,7 @@ mkDerivation rec {
     sha256 = "047y2l7ipzv00ly54f074v6p043xjml7vz0svc7z81bhx74vs0ix";
   };
 
-  buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ];
+  buildInputs = [ qtbase qttools libjack2 alsa-lib liblo lv2 ];
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/audio/tony/default.nix b/nixpkgs/pkgs/applications/audio/tony/default.nix
index d8265c3161bc..aa18a5e397e4 100644
--- a/nixpkgs/pkgs/applications/audio/tony/default.nix
+++ b/nixpkgs/pkgs/applications/audio/tony/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, wrapQtAppsHook
-, alsaLib, boost, bzip2, fftw, fftwFloat, libX11, libfishsound, libid3tag
+, alsa-lib, boost, bzip2, fftw, fftwFloat, libX11, libfishsound, libid3tag
 , libjack2, liblo, libmad, libogg, liboggz, libpulseaudio, libsamplerate
 , libsndfile, lrdf, opusfile, qtbase, qtsvg, rubberband, serd, sord
 }:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
 
   buildInputs = [
-    alsaLib boost bzip2 fftw fftwFloat libX11 libfishsound libid3tag
+    alsa-lib boost bzip2 fftw fftwFloat libX11 libfishsound libid3tag
     libjack2 liblo libmad libogg liboggz libpulseaudio libsamplerate
     libsndfile lrdf opusfile qtbase qtsvg rubberband serd sord
   ];
diff --git a/nixpkgs/pkgs/applications/audio/transcribe/default.nix b/nixpkgs/pkgs/applications/audio/transcribe/default.nix
new file mode 100644
index 000000000000..9061c38f19c3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/transcribe/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchzip, lib, wrapGAppsHook, alsa-lib, atk, cairo, gdk-pixbuf
+, glib, gst_all_1,  gtk3, libSM, libX11, libpng12, pango, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "transcribe";
+  version = "9.00";
+
+  src = if stdenv.hostPlatform.system == "x86_64-linux" then
+    fetchzip {
+      url = "https://www.seventhstring.com/xscribe/downlo/xscsetup-9.00.0.tar.gz";
+      sha256 = "0mgjx0hnps3jmc2d9hkskxbmwcqf7f9jx595j5sc501br1l84sdf";
+    }
+  else throw "Platform not supported";
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  buildInputs = with gst_all_1; [ gst-plugins-base gst-plugins-good
+    gst-plugins-bad gst-plugins-ugly ];
+
+  dontPatchELF = true;
+
+  libPath = with gst_all_1; lib.makeLibraryPath [
+    stdenv.cc.cc glib gtk3 atk pango cairo gdk-pixbuf alsa-lib
+    libX11 libSM libpng12 gstreamer gst-plugins-base zlib
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/libexec $out/share/doc
+    cp transcribe $out/libexec
+    cp xschelp.htb readme_gtk.html $out/share/doc
+    cp -r gtkicons $out/share/icons
+    ln -s $out/share/doc/xschelp.htb $out/libexec
+    patchelf \
+      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+      $out/libexec/transcribe
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+      --prefix LD_LIBRARY_PATH : "${libPath}"
+    )
+  '';
+
+  postFixup = ''
+    ln -s $out/libexec/transcribe $out/bin/
+  '';
+
+  meta = with lib; {
+    description = "Software to help transcribe recorded music";
+    longDescription = ''
+      The Transcribe! application is an assistant for people who want
+      to work out a piece of music from a recording, in order to write
+      it out, or play it themselves, or both. It doesn't do the
+      transcribing for you, but it is essentially a specialised player
+      program which is optimised for the purpose of transcription. It
+      has many transcription-specific features not found on
+      conventional music players.
+    '';
+    homepage = "https://www.seventhstring.com/xscribe/";
+    license = licenses.unfree;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/traverso/default.nix b/nixpkgs/pkgs/applications/audio/traverso/default.nix
index 71a91dc3105e..698a03b4a713 100644
--- a/nixpkgs/pkgs/applications/audio/traverso/default.nix
+++ b/nixpkgs/pkgs/applications/audio/traverso/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchurl, cmake, pkg-config
-, alsaLib, fftw, flac, lame, libjack2, libmad, libpulseaudio
+, alsa-lib, fftw, flac, lame, libjack2, libmad, libpulseaudio
 , libsamplerate, libsndfile, libvorbis, portaudio, qtbase, wavpack
 }:
 mkDerivation {
@@ -12,7 +12,7 @@ mkDerivation {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ alsaLib fftw flac.dev libjack2 lame
+  buildInputs = [ alsa-lib fftw flac.dev libjack2 lame
                   libmad libpulseaudio libsamplerate.dev libsndfile.dev libvorbis
                   portaudio qtbase wavpack ];
 
diff --git a/nixpkgs/pkgs/applications/audio/tunefish/default.nix b/nixpkgs/pkgs/applications/audio/tunefish/default.nix
index 6dc1eb339627..df7564abcf02 100644
--- a/nixpkgs/pkgs/applications/audio/tunefish/default.nix
+++ b/nixpkgs/pkgs/applications/audio/tunefish/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, python3
-, alsaLib, curl, freetype, gtk3, libGL, libX11, libXext, libXinerama, webkitgtk
+, alsa-lib, curl, freetype, gtk3, libGL, libX11, libXext, libXinerama, webkitgtk
 }:
 
 stdenv.mkDerivation {
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkg-config python3 ];
-  buildInputs = [ alsaLib curl freetype gtk3 libGL libX11 libXext libXinerama webkitgtk ];
+  buildInputs = [ alsa-lib curl freetype gtk3 libGL libX11 libXext libXinerama webkitgtk ];
 
   postPatch = ''
     patchShebangs src/tunefish4/generate-lv2-ttl.py
diff --git a/nixpkgs/pkgs/applications/audio/uade123/default.nix b/nixpkgs/pkgs/applications/audio/uade123/default.nix
index 368731c52b3b..271f9f912ea8 100644
--- a/nixpkgs/pkgs/applications/audio/uade123/default.nix
+++ b/nixpkgs/pkgs/applications/audio/uade123/default.nix
@@ -19,7 +19,7 @@ in stdenv.mkDerivation {
     description = "Plays old Amiga tunes through UAE emulation and cloned m68k-assembler Eagleplayer API";
     homepage = "http://zakalwe.fi/uade/";
     license = licenses.gpl2;
-    maintainers = [ lib.maintainers.gnidorah ];
-    platforms = lib.platforms.unix;
+    maintainers = [ ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix b/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix
index 9c748929d625..eb590c22bbfc 100644
--- a/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix
@@ -14,14 +14,14 @@ stdenv.mkDerivation rec {
   # this is what upstream calls the package, see:
   # https://github.com/ryukau/LV2Plugins#uhhyou-plugins-lv2
   pname = "uhhyou.lv2";
-  version = "unstable-2020-07-31";
+  version = "unstable-2021-02-08";
 
   src = fetchFromGitHub {
     owner = "ryukau";
     repo =  "LV2Plugins";
-    rev = "6189be67acaeb95452f8adab73a731d94a7b6f47";
+    rev = "df67460fc344f94db4306d4ee21e4207e657bbee";
     fetchSubmodules = true;
-    sha256 = "049gigx2s89z8vf17gscs00c150lmcdwya311nbrwa18fz4bx242";
+    sha256 = "1a23av35cw26zgq93yzmmw35084hsj29cb7sb04j2silv5qisila";
   };
 
   nativeBuildInputs = [ pkg-config python3 ];
@@ -31,8 +31,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   prePatch = ''
-    patchShebangs generate-ttl.sh
-    cp patch/NanoVG.cpp lib/DPF/dgl/src/NanoVG.cpp
+    patchShebangs generate-ttl.sh patch.sh patch/apply.sh
   '';
 
   enableParallelBuilding = true;
@@ -41,6 +40,7 @@ stdenv.mkDerivation rec {
     description = "Audio plugins for Linux";
     longDescription = ''
       Plugin List:
+      - CollidingCombSynth
       - CubicPadSynth
       - EnvelopedSine
       - EsPhaser
diff --git a/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
index c7e24b926c09..789b97507a18 100644
--- a/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, makeWrapper, fetchzip, fetchFromGitHub, pkg-config
-, alsaLib, curl, glew, glfw, gtk2-x11, jansson, libjack2, libXext, libXi
+, alsa-lib, curl, glew, glfw, gtk2-x11, jansson, libjack2, libXext, libXi
 , libzip, rtaudio, rtmidi, speex, libsamplerate }:
 
 let
@@ -75,7 +75,7 @@ with lib; stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
-  buildInputs = [ alsaLib curl glew glfw gtk2-x11 jansson libjack2 libsamplerate libzip rtaudio rtmidi speex ];
+  buildInputs = [ alsa-lib curl glew glfw gtk2-x11 jansson libjack2 libsamplerate libzip rtaudio rtmidi speex ];
 
   buildFlags = [ "Rack" ];
 
diff --git a/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix b/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix
index 1cb9c0f18bff..c1e41e41284d 100644
--- a/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix
+++ b/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix
@@ -3,7 +3,7 @@
 , libX11
 , libXi
 , libGL
-, alsaLib
+, alsa-lib
 , SDL2
 , autoPatchelfHook
 }:
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     libX11
     libXi
     libGL
-    alsaLib
+    alsa-lib
     SDL2
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/vkeybd/default.nix b/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
index 943bd0d8032b..ec6391562174 100644
--- a/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, libX11, makeWrapper, tcl, tk }:
+{ lib, stdenv, fetchurl, alsa-lib, libX11, makeWrapper, tcl, tk }:
 
 stdenv.mkDerivation  rec {
   pname = "vkeybd";
@@ -10,7 +10,7 @@ stdenv.mkDerivation  rec {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ alsaLib libX11 tcl tk ];
+  buildInputs = [ alsa-lib libX11 tcl tk ];
 
   configurePhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/applications/audio/vmpk/default.nix b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
index dfae5d40e114..45142568f980 100644
--- a/nixpkgs/pkgs/applications/audio/vmpk/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
@@ -5,16 +5,21 @@
 
 mkDerivation rec {
   pname = "vmpk";
-  version = "0.7.2";
+  version = "0.8.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "5oLrjQADg59Mxpb0CNLQAE574IOSYLDLJNaQ/9q2cMQ=";
+    sha256 = "1kv256j13adk4ib7r464gsl4vjhih820bq37ddhqfyfd07wh53a2";
   };
 
   nativeBuildInputs = [ cmake pkg-config qttools docbook-xsl-nons ];
 
-  buildInputs = [ qtx11extras drumstick ];
+  buildInputs = [ drumstick qtx11extras ];
+
+  postInstall = ''
+    # vmpk drumstickLocales looks here:
+    ln -s ${drumstick}/share/drumstick $out/share/
+  '';
 
   meta = with lib; {
     description = "Virtual MIDI Piano Keyboard";
diff --git a/nixpkgs/pkgs/applications/audio/vocal/default.nix b/nixpkgs/pkgs/applications/audio/vocal/default.nix
index 8c4493166749..f06f950f13fc 100644
--- a/nixpkgs/pkgs/applications/audio/vocal/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vocal/default.nix
@@ -1,5 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , cmake
 , ninja
@@ -61,13 +63,22 @@ stdenv.mkDerivation rec {
     glib-networking
   ];
 
+  patches = [
+    # granite 6.0.0 removed about dialogs
+    # see: https://github.com/needle-and-thread/vocal/issues/483
+    (fetchpatch {
+      name = "remove-about.patch";
+      url = "https://raw.githubusercontent.com/archlinux/svntogit-community/03543ffdb6cd52ce1a8293f3303225b3afac2431/trunk/remove-about.patch";
+      sha256 = "sha256-yGD7BYOTmqs4h+Odh/mB3fI1HM7GDO6F+QaHpRUD5p4=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = pname;
     };
   };
 
-
   meta = with lib; {
     description = "The podcast client for the modern free desktop";
     longDescription = ''
@@ -75,7 +86,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/needle-and-thread/vocal";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/whipper/default.nix b/nixpkgs/pkgs/applications/audio/whipper/default.nix
index 3405cf99ddd3..e96a6bfef208 100644
--- a/nixpkgs/pkgs/applications/audio/whipper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/whipper/default.nix
@@ -1,55 +1,64 @@
-{ lib, fetchFromGitHub, python3, cdparanoia, cdrdao, flac
-, sox, accuraterip-checksum, libsndfile, util-linux, substituteAll }:
+{ lib
+, python3
+, fetchFromGitHub
+, libcdio-paranoia
+, cdrdao
+, libsndfile
+, flac
+, sox
+, util-linux
+}:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  bins = [ libcdio-paranoia cdrdao flac sox util-linux ];
+in python3.pkgs.buildPythonApplication rec {
   pname = "whipper";
-  version = "0.9.1.dev7+g${lib.substring 0 7 src.rev}";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "whipper-team";
     repo = "whipper";
-    rev = "9e95f0604fa30ab06445fe46e3bc93bba6092a05";
-    sha256 = "1c2qldw9vxpvdfh5wl6mfcd7zzz3v8r86ffqll311lcp2zin33dg";
+    rev = "v${version}";
+    sha256 = "00cq03cy5dyghmibsdsq5sdqv3bzkzhshsng74bpnb5lasxp3ia5";
   };
 
-  pythonPath = with python3.pkgs; [
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools-scm
+    docutils
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
     musicbrainzngs
     mutagen
     pycdio
     pygobject3
-    requests
     ruamel_yaml
-    setuptools
-    setuptools_scm
+    discid
+    pillow
   ];
 
   buildInputs = [ libsndfile ];
 
   checkInputs = with python3.pkgs; [
     twisted
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      inherit cdparanoia;
-    })
-  ];
+  ] ++ bins;
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [ accuraterip-checksum cdrdao util-linux flac sox ])
+    "--prefix" "PATH" ":" (lib.makeBinPath bins)
   ];
 
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
   '';
 
-  # some tests require internet access
-  # https://github.com/JoeLametta/whipper/issues/291
-  doCheck = false;
-
-  preCheck = ''
-    HOME=$TMPDIR
+  checkPhase = ''
+    runHook preCheck
+    # disable tests that require internet access
+    # https://github.com/JoeLametta/whipper/issues/291
+    substituteInPlace whipper/test/test_common_accurip.py \
+      --replace "test_AccurateRipResponse" "dont_test_AccurateRipResponse"
+    HOME=$TMPDIR ${python3.interpreter} -m unittest discover
+    runHook postCheck
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/whipper/paths.patch b/nixpkgs/pkgs/applications/audio/whipper/paths.patch
deleted file mode 100644
index 14b5384330da..000000000000
--- a/nixpkgs/pkgs/applications/audio/whipper/paths.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/whipper/program/cdparanoia.py
-+++ b/whipper/program/cdparanoia.py
-@@ -280,10 +280,10 @@
- 
-         bufsize = 1024
-         if self._overread:
--            argv = ["cd-paranoia", "--stderr-progress",
-+            argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
-                     "--sample-offset=%d" % self._offset, "--force-overread", ]
-         else:
--            argv = ["cd-paranoia", "--stderr-progress",
-+            argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
-                     "--sample-offset=%d" % self._offset, ]
-         if self._device:
-             argv.extend(["--force-cdrom-device", self._device, ])
-@@ -560,7 +560,7 @@
- 
- def getCdParanoiaVersion():
-     getter = common.VersionGetter('cd-paranoia',
--                                  ["cd-paranoia", "-V"],
-+                                  ["@cdparanoia@/bin/cdparanoia", "-V"],
-                                   _VERSION_RE,
-                                   "%(version)s %(release)s")
- 
-@@ -585,7 +585,7 @@
-     def __init__(self, device=None):
-         # cdparanoia -A *always* writes cdparanoia.log
-         self.cwd = tempfile.mkdtemp(suffix='.whipper.cache')
--        self.command = ['cd-paranoia', '-A']
-+        self.command = ['@cdparanoia@/bin/cdparanoia', '-A']
-         if device:
-             self.command += ['-d', device]
diff --git a/nixpkgs/pkgs/applications/audio/xmp/default.nix b/nixpkgs/pkgs/applications/audio/xmp/default.nix
index b6accf1993a7..6158f33713a0 100644
--- a/nixpkgs/pkgs/applications/audio/xmp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/xmp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, alsaLib, libxmp }:
+{ lib, stdenv, fetchurl, pkg-config, alsa-lib, libxmp }:
 
 stdenv.mkDerivation rec {
   name = "xmp-4.1.0";
@@ -16,5 +16,5 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib libxmp ];
+  buildInputs = [ alsa-lib libxmp ];
 }
diff --git a/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix b/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
index b994f197e67b..0802a79df04a 100644
--- a/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
+++ b/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, autoconf, automake, dssi, gtk2, libjack2,
+{ lib, stdenv, fetchurl, alsa-lib, autoconf, automake, dssi, gtk2, libjack2,
 ladspaH, ladspaPlugins, liblo, pkg-config }:
 
 stdenv.mkDerivation  rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation  rec {
     sha256 = "00nwv2pqjbmxqdc6xdm0cljq6z05lv4y6bibmhz1kih9lm0lklnk";
   };
 
-  buildInputs = [ alsaLib autoconf automake dssi gtk2 libjack2 ladspaH
+  buildInputs = [ alsa-lib autoconf automake dssi gtk2 libjack2 ladspaH
     ladspaPlugins liblo pkg-config ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/yoshimi/default.nix b/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
index e9e191112f9b..dfb6a419c3d5 100644
--- a/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
+++ b/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub , alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
+{ lib, stdenv, fetchFromGitHub , alsa-lib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
 , libjack2, libsndfile, libXdmcp, readline, lv2, libGLU, libGL, minixml, pkg-config, zlib, xorg
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation  rec {
     sha256 = "0bgcc5fbgwpdjircq00wlii30pakf45yzligpbnf02a554hh4j01";
   };
   buildInputs = [
-    alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL
+    alsa-lib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL
     minixml zlib xorg.libpthreadstubs pcre
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/ytmdesktop/default.nix b/nixpkgs/pkgs/applications/audio/ytmdesktop/default.nix
new file mode 100644
index 000000000000..be2b85199b7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ytmdesktop/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchurl, appimageTools, }:
+
+let
+  pname = "ytmdesktop";
+  version = "1.13.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/ytmdesktop/ytmdesktop/releases/download/v${version}/YouTube-Music-Desktop-App-${version}.AppImage";
+    sha256 = "0f5l7hra3m3q9zd0ngc9dj4mh1lk0rgicvh9idpd27wr808vy28v";
+  };
+
+  appimageContents = appimageTools.extract { inherit name src; };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+
+    install -m 444 \
+        -D ${appimageContents}/youtube-music-desktop-app.desktop \
+        -t $out/share/applications
+    substituteInPlace \
+        $out/share/applications/youtube-music-desktop-app.desktop \
+        --replace 'Exec=AppRun' 'Exec=${pname}'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "A Desktop App for YouTube Music";
+    homepage = "https://ytmdesktop.app/";
+    license = licenses.cc0;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lgcl ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix b/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix
index 4b094864607c..db6fc7d33812 100644
--- a/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix
+++ b/nixpkgs/pkgs/applications/audio/zita-ajbridge/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, libjack2, zita-alsa-pcmi, zita-resampler }:
+{ lib, stdenv, fetchurl, alsa-lib, libjack2, zita-alsa-pcmi, zita-resampler }:
 
 stdenv.mkDerivation rec {
   name = "zita-ajbridge-0.8.4";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0g5v0l0zmqh049mhv62n8s5bpm0yrlby7mkxxhs5qwadp8v4w9mw";
   };
 
-  buildInputs = [ alsaLib libjack2 zita-alsa-pcmi zita-resampler ];
+  buildInputs = [ alsa-lib libjack2 zita-alsa-pcmi zita-resampler ];
 
   preConfigure = ''
     cd ./source/
diff --git a/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix b/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
index 3d5f392205f9..986e3215b93f 100644
--- a/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -16,7 +16,7 @@
 
   # Optional dependencies
 , alsaSupport ? true
-, alsaLib
+, alsa-lib
 , dssiSupport ? false
 , dssi
 , ladspaH
@@ -70,7 +70,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake makeWrapper pkg-config ];
 
   buildInputs = [ fftw liblo minixml zlib ]
-    ++ lib.optionals alsaSupport [ alsaLib ]
+    ++ lib.optionals alsaSupport [ alsa-lib ]
     ++ lib.optionals dssiSupport [ dssi ladspaH ]
     ++ lib.optionals jackSupport [ libjack2 ]
     ++ lib.optionals lashSupport [ lash ]
@@ -111,7 +111,7 @@ in stdenv.mkDerivation rec {
       else "https://zynaddsubfx.sourceforge.io";
 
     license = licenses.gpl2;
-    maintainers = with maintainers; [ goibhniu metadark ];
+    maintainers = with maintainers; [ goibhniu kira-bruneau ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix b/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
index 0096cc97ddbd..9dd5b583817d 100644
--- a/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
+++ b/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation rec {
     description = "The Zest Framework used in ZynAddSubFX's UI";
     homepage = "https://github.com/mruby-zest";
     license = licenses.lgpl21;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
index 4ab491cb9a9d..ccd121f5da70 100644
--- a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
+++ b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
@@ -12,7 +12,7 @@
 , coreutils
 , libsoup
 , libsecret
-, libhandy_0
+, libhandy
 , wrapGAppsHook
 , libgpgerror
 , json-glib
@@ -21,14 +21,14 @@
 
 stdenv.mkDerivation rec {
   pname = "deja-dup";
-  version = "42.6";
+  version = "42.7";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = pname;
     rev = version;
-    sha256 = "0grwlfakrnr9ij7h8lsfazlws6qix8pl50dr94cpxnnbjga9xn9z";
+    sha256 = "1q66wccnph78cp1r5mln2iq4bcqdrrchxq3c1pjrzkmzwc6l93gz";
   };
 
   patches = [
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     glib
     gtk3
     libsecret
-    libhandy_0
+    libhandy
     libgpgerror
     json-glib
   ];
diff --git a/nixpkgs/pkgs/applications/backup/pika-backup/default.nix b/nixpkgs/pkgs/applications/backup/pika-backup/default.nix
index f04a5a2d8bfb..fd6c0f0cf835 100644
--- a/nixpkgs/pkgs/applications/backup/pika-backup/default.nix
+++ b/nixpkgs/pkgs/applications/backup/pika-backup/default.nix
@@ -19,20 +19,20 @@
 
 stdenv.mkDerivation rec {
   pname = "pika-backup";
-  version = "0.2.3";
+  version = "0.3.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "pika-backup";
     rev = "v${version}";
-    sha256 = "sha256-jy22eyuzM2y7vByT3TOlAUuTKtPepkB9iiHQT1YGQ88=";
+    sha256 = "sha256-dKVyvB4s1MZHri0dFJDBUXQKsi2KgP30ZhsJ486M+og=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    sha256 = "1ndcpgw18w3l5f7vv5vw8lxhgd5y1zxfarwnyfx13m7kcv8m3vyj";
+    sha256 = "1vsh8vqgmfady82d7wfxkknmrp7mq7nizpif2zwg3kqbl964mp3y";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/backup/vorta/default.nix b/nixpkgs/pkgs/applications/backup/vorta/default.nix
index c37bf0f20f79..fc56d6c54001 100644
--- a/nixpkgs/pkgs/applications/backup/vorta/default.nix
+++ b/nixpkgs/pkgs/applications/backup/vorta/default.nix
@@ -2,6 +2,7 @@
 , python3
 , fetchFromGitHub
 , wrapQtAppsHook
+, borgbackup
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -30,7 +31,10 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = false;
 
   preFixup = ''
-    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+    makeWrapperArgs+=(
+      "''${qtWrapperArgs[@]}"
+      --prefix PATH : ${lib.makeBinPath [ borgbackup ]}
+    )
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix
index 7ff2804ba799..5d6775f729aa 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-gold.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , openssl
 , boost
+, libb2
 , libevent
 , autoreconfHook
 , db4
@@ -21,13 +22,13 @@ with lib;
 stdenv.mkDerivation rec {
 
   pname = "bitcoin" + toString (optional (!withGui) "d") + "-gold";
-  version = "0.15.2";
+  version = "0.17.3";
 
   src = fetchFromGitHub {
     owner = "BTCGPU";
     repo = "BTCGPU";
     rev = "v${version}";
-    sha256 = "0grd1cd8d2nsrxl27la85kcan09z73fn70ncr9km4iccaj5pg12h";
+    sha256 = "sha256-1tFoUNsCPJkHSmNRl5gE3n2EQD6RZSry1zIM5hiTzEI=";
   };
 
   nativeBuildInputs = [
@@ -45,6 +46,7 @@ stdenv.mkDerivation rec {
     db4
     zeromq
     libsodium
+    libb2
   ] ++ optionals withGui [
     qtbase
     qttools
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
index 04c906aefb2c..f1825b0cbda8 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
@@ -7,13 +7,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
-  version = "1.9.0.1";
+  version = "1.9.1.1";
 
   src = fetchFromGitHub {
     owner = "bitcoinunlimited";
     repo = "bitcoinunlimited";
     rev = "BCHunlimited${version}";
-    sha256 = "018a22zbvjqky0whizmgxzscmna0sh2xqgyw02yjk8qj4yi0zp8c";
+    sha256 = "sha256-K15SI1F/xI4SkX4a41QHLn89YaHCgrlv+wcbkpwGKhI=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook python3 ]
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
index b241fcc49ee7..162a5ddee1a3 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
@@ -16,13 +16,14 @@
 , python3
 , qrencode
 , libevent
+, nixosTests
 , withGui
 , withWallet ? true
 }:
 
 with lib;
 let
-  version = "0.21.0";
+  version = "0.21.1";
   majorMinorVersion = versions.majorMinor version;
   desktop = fetchurl {
     url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorMinorVersion}/debian/bitcoin-qt.desktop";
@@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
       "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
       "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
     ];
-    sha256 = "1a91202c62ee49fb64d57a52b8d6d01cd392fffcbef257b573800f9289655f37";
+    sha256 = "caff23449220cf45753f312cefede53a9eac64000bb300797916526236b6a1e0";
   };
 
   nativeBuildInputs =
@@ -81,6 +82,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    smoke-test = nixosTests.bitcoind;
+  };
+
   meta = {
     description = "Peer-to-peer electronic cash system";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
index 6952d9c00729..7b6e3918da58 100644
--- a/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "btcpayserver";
-  version = "1.0.7.2";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hxpbzc4l1zxrcvmdm93vvphhksfwd0mw2dv6h8vi4451p77dhd9";
+    sha256 = "sha256-cCm4CZdVtjO2nj69CgRCrcwO0lAbiQVD6KocOj4CSdY=";
   };
 
   nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
index b579fc8f7f89..20b97972107e 100644
--- a/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -95,6 +95,21 @@
     sha256 = "1vb7ahafcd3lcbiiz552aisilwm1yq3j600gkf1wik8vhvsk02fs";
   })
   (fetchNuGet {
+    name = "Fido2.AspNet";
+    version = "2.0.1";
+    sha256 = "1d6bjyck3mlhb9b4c75xhzr2pcs47vdqg2ayi5wnjh1aszyam3nq";
+  })
+  (fetchNuGet {
+    name = "Fido2.Models";
+    version = "2.0.1";
+    sha256 = "0llpzkik82n5gpgjawx181j85d2lizimkbdkxj1wyrjvxb2xbg3q";
+  })
+  (fetchNuGet {
+    name = "Fido2";
+    version = "2.0.1";
+    sha256 = "1s829n970lxngbhac9lvarwa9n9hqxr79kwv8i12amnmg6ir8ny5";
+  })
+  (fetchNuGet {
     name = "Google.Api.Gax.Rest";
     version = "2.5.0";
     sha256 = "1zkjl5zh6qwdz4qmnxnk5877pas638i2qi25znilhqqf3mrkp0rp";
@@ -150,6 +165,11 @@
     sha256 = "1gllp58vdbql2ybwf05i2178x7p4g8zyyk64317d1pyss5217g7r";
   })
   (fetchNuGet {
+    name = "libsodium";
+    version = "1.0.18";
+    sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn";
+  })
+  (fetchNuGet {
     name = "McMaster.NETCore.Plugins.Mvc";
     version = "1.3.1";
     sha256 = "1dh58ijwn6q6id0jpzr4hpfl0y4ak43zq4m8rsi5j2qv8vasq1mi";
@@ -361,6 +381,11 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Caching.Abstractions";
+    version = "2.2.0";
+    sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Abstractions";
     version = "3.1.4";
     sha256 = "09f96pvpyzylpdaiw3lsvr7p6rs4i21mmhsxl6pkivg5lpfb79sk";
   })
@@ -390,6 +415,11 @@
     sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "3.1.5";
+    sha256 = "03jwqjrfyx11ax19bq84c28qzaiyj4whrx7vayy4hr7sv0p28h8k";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.Configuration.Binder";
     version = "2.0.0";
     sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc";
@@ -400,6 +430,11 @@
     sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "3.1.5";
+    sha256 = "0310pvrwbbqak7k4s32syryqxlkwli8w8bwlpnqmz42svh2302wv";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
     version = "2.1.0";
     sha256 = "0xx3idb1l5y1da5zynlys5gyarijmw5pc9hgci8xdxbrcv6rzbjb";
@@ -430,6 +465,11 @@
     sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "3.1.5";
+    sha256 = "1i7zm8ghgxwp655anyfm910qm7rcpvrz48fxjyzw9w63hj4sv6bk";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.DependencyInjection.Abstractions";
     version = "2.0.0";
     sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz";
@@ -445,6 +485,11 @@
     sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "3.1.5";
+    sha256 = "1wkf8ajh4pj6g3wwd18g3hjc3lqqny8052rl373ddcardxrs2gvn";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.DependencyInjection";
     version = "2.0.0";
     sha256 = "018izzgykaqcliwarijapgki9kp2c560qv8qsxdjywr7byws5apq";
@@ -540,6 +585,11 @@
     sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "3.1.5";
+    sha256 = "0lr22hlf52csrna9ly2lbz3y1agfgdlg7rvsqjg7ik488dhkmhji";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.Logging.Filter";
     version = "1.1.2";
     sha256 = "1pip87q89376xxpi3r5pf9vxhqxx21qrp179fbldbkr2m1577k9m";
@@ -560,6 +610,11 @@
     sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Options.ConfigurationExtensions";
+    version = "3.1.5";
+    sha256 = "10w78fj2jpmghvprz6b046xcr68zzp6x550a7m1iivn0h7a3l7pi";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.Options";
     version = "2.0.0";
     sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh";
@@ -570,6 +625,11 @@
     sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "3.1.5";
+    sha256 = "0rhqyqa7vhlmz2g0250zhypaayvckx4dv89micdg521cpvr5arpr";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.PlatformAbstractions";
     version = "1.1.0";
     sha256 = "0r4j8v2vvp3kalvb11ny9cvpls3nrvqj0c81rxbkh99ynd2dbscp";
@@ -591,10 +651,35 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Primitives";
+    version = "2.2.0";
+    sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
     version = "3.1.4";
     sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "3.1.5";
+    sha256 = "0n2pk1sy8ikd29282sx4ps9r1wnhzgg4nwmkka9ypjizd8lkkk2m";
+  })
+  (fetchNuGet {
+    name = "Microsoft.IdentityModel.JsonWebTokens";
+    version = "6.6.0";
+    sha256 = "06z5a1jpqpdd1pix85is7kkpn4v0l4an909skji2p8gm09p5sfyv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.IdentityModel.Logging";
+    version = "6.6.0";
+    sha256 = "1mpkx544cbxws1a22zwxbp3lqqamcc3x915l23spsxqvgr02jjrq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.IdentityModel.Tokens";
+    version = "6.6.0";
+    sha256 = "0h5vbsd5x9cf7nqyrwn7d7y1axhf1zz0jr9prvi4xpxawa3kajyj";
+  })
+  (fetchNuGet {
     name = "Microsoft.NET.Test.Sdk";
     version = "16.6.1";
     sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
@@ -671,8 +756,8 @@
   })
   (fetchNuGet {
     name = "NBitcoin.Altcoins";
-    version = "2.0.28";
-    sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
+    version = "2.0.31";
+    sha256 = "13gcfsxpfq8slmsvgzf6iv581x7n535zq0p9c88bqs5p88r6lygm";
   })
   (fetchNuGet {
     name = "NBitcoin";
@@ -695,14 +780,19 @@
     sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
   })
   (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.77";
+    sha256 = "0ykz4ii6lh6gdlz6z264wnib5pfnmq9q617qqbg0f04mq654jygb";
+  })
+  (fetchNuGet {
     name = "NBitpayClient";
     version = "1.0.0.39";
     sha256 = "1sgwradg7jnb4n3chwqfkximj1qhgl3r23p0sifmaa0kql2hlira";
   })
   (fetchNuGet {
     name = "NBXplorer.Client";
-    version = "3.0.20";
-    sha256 = "1mwa6ncmg5r6q7yn6skm9dgqm631c7r7nadcg9mvbw81113h0xxy";
+    version = "3.0.21";
+    sha256 = "1asri2wsjq3ljf2p4r4x52ba9cirh8ccc5ysxpnv4cvladkdazbi";
   })
   (fetchNuGet {
     name = "NETStandard.Library";
@@ -785,6 +875,11 @@
     sha256 = "0qk3hb8s521c2gy4k3m1i6fhpr133mnw9w85cwsy9j7ghxyca1nv";
   })
   (fetchNuGet {
+    name = "NSec.Cryptography";
+    version = "20.2.0";
+    sha256 = "19slji51v8s8i4836nqqg7qb3i3p4ahqahz0fbb3gwpp67pn6izx";
+  })
+  (fetchNuGet {
     name = "NuGet.Frameworks";
     version = "5.0.0";
     sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
@@ -795,6 +890,21 @@
     sha256 = "0f4gs31z8dwfvd246nrv3m0qkxzav37hxynx2maykza017khynyf";
   })
   (fetchNuGet {
+    name = "PeterO.Cbor";
+    version = "4.1.3";
+    sha256 = "0882i3bhhx2yag2m4lbdsgngjwaj9ff4v0ab9zb839i4r77aq1yn";
+  })
+  (fetchNuGet {
+    name = "PeterO.Numbers";
+    version = "1.6.0";
+    sha256 = "04kfdkfr600h69g67g6izbn57bxqjamvaadyw3p9gjsc0wrivi98";
+  })
+  (fetchNuGet {
+    name = "PeterO.URIUtility";
+    version = "1.0.0";
+    sha256 = "04ihfbk2lf0smznwfb62h57qknls5jyxirdz72g5wn9h1dcgkdac";
+  })
+  (fetchNuGet {
     name = "Pomelo.EntityFrameworkCore.MySql";
     version = "3.1.1";
     sha256 = "1jvv2q7pmh5wzsfjim7iby4r1scb30kgj9w6sbm2dp60i6vm32dx";
@@ -805,11 +915,6 @@
     sha256 = "1w6s9wjbsyvq8cnqknkdzm9chnv0g5gcsrq5i94zp6br9vg7c627";
   })
   (fetchNuGet {
-    name = "Portable.BouncyCastle";
-    version = "1.8.1.3";
-    sha256 = "1lv1ljaz8df835jgmp3ny1xgqqjf1s9f25baw7bf8d24qlf25i2g";
-  })
-  (fetchNuGet {
     name = "QRCoder";
     version = "1.4.1";
     sha256 = "1xgwhpqrm4ycnj8nk4ibxfwkmkiwc5i15l1za3ci5alghlpcb6ch";
@@ -1165,6 +1270,11 @@
     sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
   })
   (fetchNuGet {
+    name = "System.IdentityModel.Tokens.Jwt";
+    version = "6.6.0";
+    sha256 = "17i6a43g1fksq9xy77dgsz54klz71pz062pb58lqx8h06p1818h1";
+  })
+  (fetchNuGet {
     name = "System.Interactive.Async";
     version = "3.1.1";
     sha256 = "03iq20gq0n2b2sdzs5jhxf46nzkfgvzip6q5248vka2rcvn1yanh";
@@ -1241,10 +1351,20 @@
   })
   (fetchNuGet {
     name = "System.Memory";
+    version = "4.5.1";
+    sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
     version = "4.5.3";
     sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
   })
   (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.4";
+    sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
+  })
+  (fetchNuGet {
     name = "System.Net.Http";
     version = "4.3.0";
     sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
@@ -1411,6 +1531,11 @@
   })
   (fetchNuGet {
     name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.1";
+    sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
     version = "4.5.2";
     sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
   })
@@ -1530,6 +1655,11 @@
     sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
   })
   (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.7.0";
+    sha256 = "00797sqbba8lys486ifxblz9j52m29kidclvmqpk531820k55x9j";
+  })
+  (fetchNuGet {
     name = "System.Security.Cryptography.Csp";
     version = "4.3.0";
     sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
@@ -1790,11 +1920,6 @@
     sha256 = "0m41dxzc3hh0f4j1k4q915pvcq6zr0hv1pj6b3sayrn8vjhk64qb";
   })
   (fetchNuGet {
-    name = "U2F.Core";
-    version = "1.0.4";
-    sha256 = "0mk32yyihigp9njs54z411fswgzr6x3kw134c7ylwy2d2wmq2n9b";
-  })
-  (fetchNuGet {
     name = "WindowsAzure.Storage";
     version = "9.3.3";
     sha256 = "14b0b0nj85yvyn0h8ghr3kj6di2nkbzjxc2q98f1wcr0151xvdfx";
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh b/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh
index 1f7dbedd0204..9debe6780f23 100755
--- a/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh
@@ -2,5 +2,10 @@
 set -euo pipefail
 
 scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+cd "$scriptDir"
 
-"$scriptDir"/../nbxplorer/util/update-common.sh btcpayserver "$scriptDir"/deps.nix
+echo "Updating nbxplorer"
+../nbxplorer/update.sh
+echo
+echo "Updating btcpayserver"
+../nbxplorer/util/update-common.sh btcpayserver deps.nix
diff --git a/nixpkgs/pkgs/applications/blockchains/charge-lnd/default.nix b/nixpkgs/pkgs/applications/blockchains/charge-lnd/default.nix
new file mode 100644
index 000000000000..3707b0741b6f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/charge-lnd/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "charge-lnd";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "accumulator";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m1ic69aj2vlnjlp4ckan8n67r01nfysvq4w6nny32wjkr0zvphr";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    aiorpcx
+    colorama
+    googleapis-common-protos
+    grpcio
+    protobuf
+    six
+    termcolor
+  ];
+
+  postInstall = ''
+    install README.md charge.config.example -Dt $out/share/doc/charge-lnd
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/charge-lnd --help > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "Simple policy-based fee manager for lightning network daemon";
+    homepage = "https://github.com/accumulator/charge-lnd";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ mmilata ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/chia/default.nix b/nixpkgs/pkgs/applications/blockchains/chia/default.nix
new file mode 100644
index 000000000000..22bb3d445ada
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/chia/default.nix
@@ -0,0 +1,70 @@
+{ lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "chia";
+  version = "1.1.7";
+
+  src = fetchFromGitHub {
+    owner = "Chia-Network";
+    repo = "chia-blockchain";
+    rev = version;
+    sha256 = "05hcckkv3vhz172w9kp5lh4srakizx1l383dijs50vgx2bj30m8v";
+  };
+
+  patches = [
+    # tweak version requirements to what's available in Nixpkgs
+    ./dependencies.patch
+  ];
+
+  nativeBuildInputs = [
+    python3Packages.setuptools-scm
+  ];
+
+  # give a hint to setuptools-scm on package version
+  SETUPTOOLS_SCM_PRETEND_VERSION = "v${version}";
+
+  propagatedBuildInputs = with python3Packages; [
+    aiohttp
+    aiosqlite
+    bitstring
+    blspy
+    chiapos
+    chiavdf
+    chiabip158
+    click
+    clvm
+    clvm-rs
+    clvm-tools
+    colorlog
+    concurrent-log-handler
+    cryptography
+    dnspython
+    keyrings-cryptfile
+    pyyaml
+    setproctitle
+    setuptools # needs pkg_resources at runtime
+    sortedcontainers
+    websockets
+  ];
+
+  checkInputs = [
+    python3Packages.pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_spend_through_n"
+    "test_spend_zero_coin"
+  ];
+
+  preCheck = ''
+    export HOME=`mktemp -d`
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.chia.net/";
+    description = "Chia is a modern cryptocurrency built from scratch, designed to be efficient, decentralized, and secure.";
+    license = with licenses; [ asl20 ];
+    maintainers = teams.chia.members;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/chia/dependencies.patch b/nixpkgs/pkgs/applications/blockchains/chia/dependencies.patch
new file mode 100644
index 000000000000..d9575d1d392c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/chia/dependencies.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index c5cf95db..b783a9e6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -8,7 +8,7 @@ dependencies = [
+     "clvm==0.9.6",
+     "clvm_rs==0.1.7",
+     "clvm_tools==0.4.3",
+-    "aiohttp==3.7.4",  # HTTP server for full node rpc
++    "aiohttp==3.7.4.post0",  # HTTP server for full node rpc
+     "aiosqlite==0.17.0",  # asyncio wrapper for sqlite, to store blocks
+     "bitstring==3.1.7",  # Binary data management library
+     "colorlog==5.0.1",  # Adds color to logs
diff --git a/nixpkgs/pkgs/applications/blockchains/electrs.nix b/nixpkgs/pkgs/applications/blockchains/electrs.nix
index 30742f8d7199..af0346196a32 100644
--- a/nixpkgs/pkgs/applications/blockchains/electrs.nix
+++ b/nixpkgs/pkgs/applications/blockchains/electrs.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   # needed for librocksdb-sys
   nativeBuildInputs = [ llvmPackages.clang ];
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   cargoSha256 = "1rqpadlr9r4z2z825li6vi5a21hivc3bsn5ibxshrdrwiycyyxz8";
 
diff --git a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
index 597db2ae8ffb..4f61be7dcee5 100644
--- a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "4.0.8";
+  version = "4.0.11";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "sha256-swU4CnX2BxL3ILH/sXux8ZHMo5nAPLQOIiWmr4C8BOQ=";
+    sha256 = "sha256-GzpYwytkWZBEIVmsOmK5RTJ7lPUfDeC1204FbK4O+XQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/ethabi.nix b/nixpkgs/pkgs/applications/blockchains/ethabi.nix
deleted file mode 100644
index 8cf3295ccab3..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/ethabi.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, fetchFromGitHub, rustPlatform }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "ethabi";
-  version = "11.0.0";
-
-  src = fetchFromGitHub {
-    owner = "paritytech";
-    repo = "ethabi";
-    rev = "v${version}";
-    sha256 = "1gqd3vwsvv1wvi659qcdywgmh41swblpwmmxb033k8irw581dwq4";
-  };
-
-  cargoSha256 = "1hx8qw51rl7sn9jmnclw0hc4rx619hf78hpaih5mvny3k0zgiwpm";
-
-  meta = with lib; {
-    description = "Ethereum function call encoding (ABI) utility";
-    homepage = "https://github.com/ethcore/ethabi/";
-    maintainers = [ maintainers.dbrock ];
-    license = licenses.gpl3;
-    inherit version;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/blockchains/ethabi/add-Cargo-lock.patch b/nixpkgs/pkgs/applications/blockchains/ethabi/add-Cargo-lock.patch
new file mode 100644
index 000000000000..57725d28288a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/ethabi/add-Cargo-lock.patch
@@ -0,0 +1,683 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..05e3f0f
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,677 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "anyhow"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
++
++[[package]]
++name = "arrayvec"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "bitvec"
++version = "0.17.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c"
++dependencies = [
++ "either",
++ "radium",
++]
++
++[[package]]
++name = "block-buffer"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
++dependencies = [
++ "block-padding",
++ "generic-array",
++]
++
++[[package]]
++name = "block-padding"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
++
++[[package]]
++name = "byte-slice-cast"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3"
++
++[[package]]
++name = "byteorder"
++version = "1.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
++
++[[package]]
++name = "bytes"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "clap"
++version = "2.33.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "crunchy"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
++
++[[package]]
++name = "digest"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
++dependencies = [
++ "generic-array",
++]
++
++[[package]]
++name = "either"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++
++[[package]]
++name = "ethabi"
++version = "13.0.0"
++dependencies = [
++ "anyhow",
++ "ethereum-types",
++ "hex",
++ "hex-literal",
++ "paste",
++ "serde",
++ "serde_json",
++ "sha3",
++ "thiserror",
++ "uint",
++]
++
++[[package]]
++name = "ethabi-cli"
++version = "13.0.0"
++dependencies = [
++ "anyhow",
++ "ethabi",
++ "hex",
++ "itertools",
++ "sha3",
++ "structopt",
++]
++
++[[package]]
++name = "ethabi-contract"
++version = "11.0.0"
++
++[[package]]
++name = "ethabi-derive"
++version = "13.0.0"
++dependencies = [
++ "anyhow",
++ "ethabi",
++ "heck",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "ethabi-tests"
++version = "0.1.1"
++dependencies = [
++ "ethabi",
++ "ethabi-contract",
++ "ethabi-derive",
++ "hex",
++ "hex-literal",
++]
++
++[[package]]
++name = "ethbloom"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22a621dcebea74f2a6f2002d0a885c81ccf6cbdf86760183316a7722b5707ca4"
++dependencies = [
++ "crunchy",
++ "fixed-hash",
++ "impl-rlp",
++ "impl-serde",
++ "tiny-keccak",
++]
++
++[[package]]
++name = "ethereum-types"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05dc5f0df4915fa6dff7f975a8366ecfaaa8959c74235469495153e7bb1b280e"
++dependencies = [
++ "ethbloom",
++ "fixed-hash",
++ "impl-rlp",
++ "impl-serde",
++ "primitive-types",
++ "uint",
++]
++
++[[package]]
++name = "fixed-hash"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c"
++dependencies = [
++ "byteorder",
++ "rand",
++ "rustc-hex",
++ "static_assertions",
++]
++
++[[package]]
++name = "generic-array"
++version = "0.14.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
++dependencies = [
++ "typenum",
++ "version_check",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "heck"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
++dependencies = [
++ "unicode-segmentation",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "hex"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
++
++[[package]]
++name = "hex-literal"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8"
++
++[[package]]
++name = "impl-codec"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53"
++dependencies = [
++ "parity-scale-codec",
++]
++
++[[package]]
++name = "impl-rlp"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808"
++dependencies = [
++ "rlp",
++]
++
++[[package]]
++name = "impl-serde"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6f"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++
++[[package]]
++name = "keccak"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7"
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "libc"
++version = "0.2.94"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
++
++[[package]]
++name = "opaque-debug"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
++
++[[package]]
++name = "parity-scale-codec"
++version = "1.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4b26b16c7687c3075982af47719e481815df30bc544f7a6690763a25ca16e9d"
++dependencies = [
++ "arrayvec",
++ "bitvec",
++ "byte-slice-cast",
++ "serde",
++]
++
++[[package]]
++name = "paste"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
++
++[[package]]
++name = "primitive-types"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b3824ae2c5e27160113b9e029a10ec9e3f0237bad8029f69c7724393c9fdefd8"
++dependencies = [
++ "fixed-hash",
++ "impl-codec",
++ "impl-rlp",
++ "impl-serde",
++ "uint",
++]
++
++[[package]]
++name = "proc-macro-error"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
++dependencies = [
++ "proc-macro-error-attr",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-error-attr"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "radium"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac"
++
++[[package]]
++name = "rand"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
++dependencies = [
++ "libc",
++ "rand_chacha",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rlp"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8"
++dependencies = [
++ "bytes",
++ "rustc-hex",
++]
++
++[[package]]
++name = "rustc-hex"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
++
++[[package]]
++name = "ryu"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++
++[[package]]
++name = "serde"
++version = "1.0.125"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.125"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.64"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "sha3"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
++dependencies = [
++ "block-buffer",
++ "digest",
++ "keccak",
++ "opaque-debug",
++]
++
++[[package]]
++name = "static_assertions"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[package]]
++name = "structopt"
++version = "0.3.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c"
++dependencies = [
++ "clap",
++ "lazy_static",
++ "structopt-derive",
++]
++
++[[package]]
++name = "structopt-derive"
++version = "0.4.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90"
++dependencies = [
++ "heck",
++ "proc-macro-error",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.72"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "tiny-keccak"
++version = "2.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
++dependencies = [
++ "crunchy",
++]
++
++[[package]]
++name = "typenum"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06"
++
++[[package]]
++name = "uint"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e11fe9a9348741cf134085ad57c249508345fe16411b3d7fb4ff2da2f1d6382e"
++dependencies = [
++ "byteorder",
++ "crunchy",
++ "hex",
++ "static_assertions",
++]
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
++
++[[package]]
++name = "unicode-width"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "version_check"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
++
++[[package]]
++name = "wasi"
++version = "0.10.2+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/applications/blockchains/ethabi/default.nix b/nixpkgs/pkgs/applications/blockchains/ethabi/default.nix
new file mode 100644
index 000000000000..e2598ba22db1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/ethabi/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ethabi";
+  version = "13.0.0";
+
+  src = fetchFromGitHub {
+    owner = "rust-ethereum";
+    repo = "ethabi";
+    rev = "v${version}";
+    sha256 = "sha256-bl46CSVP1MMYI3tkVAHFrjMFwTt8QoleZCV9pMIMZyc=";
+  };
+
+  cargoSha256 = "sha256-Jz0uEP2/ZjLS+GbCp7lNyJQdFDjTSFthjBdC/Z4tkTs=";
+
+  cargoPatches = [ ./add-Cargo-lock.patch ];
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
+
+  meta = with lib; {
+    description = "Ethereum function call encoding (ABI) utility";
+    homepage = "https://github.com/rust-ethereum/ethabi";
+    maintainers = [ maintainers.dbrock ];
+    license = licenses.asl20;
+    inherit version;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
index 72af1af9536d..08eeac760c0f 100644
--- a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchurl, unzip, glib, systemd, nss, nspr, gtk3-x11, pango,
-atk, cairo, gdk-pixbuf, xorg, xorg_sys_opengl, util-linux, alsaLib, dbus, at-spi2-atk,
+atk, cairo, gdk-pixbuf, xorg, xorg_sys_opengl, util-linux, alsa-lib, dbus, at-spi2-atk,
 cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core, libxkbcommon, mesa }:
 
 stdenv.mkDerivation rec {
   pname = "exodus";
-  version = "21.1.18";
+  version = "21.1.29";
 
   src = fetchurl {
     url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
-    sha256 = "sha256-cc0m1gOwIY4M0ljSSdj8WaQfU/ikGI1Zlf8gGDdht4Q=";
+    sha256 = "sha256-Qdiyjutzt8r1tIfcW7/AtSuOpf1Un5TeHoeZx5uQthM=";
   };
 
   sourceRoot = ".";
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
       util-linux
       xorg.libXrandr
       xorg.libXScrnSaver
-      alsaLib
+      alsa-lib
       dbus.lib
       at-spi2-atk
       at-spi2-core
diff --git a/nixpkgs/pkgs/applications/blockchains/faraday/default.nix b/nixpkgs/pkgs/applications/blockchains/faraday/default.nix
new file mode 100644
index 000000000000..90d76e29b6b6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/faraday/default.nix
@@ -0,0 +1,27 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "faraday";
+  version = "0.2.3-alpha";
+
+  src = fetchFromGitHub {
+    owner = "lightninglabs";
+    repo = "faraday";
+    rev = "v${version}";
+    sha256 = "16cqaslsbwda23b5n0sfppybd3ma4ch545100ydxrwac4zhrq4kq";
+  };
+
+  vendorSha256 = "1hh99nfprlmhkc36arg3w1kxby59i2l7n258cp40niv7bjn37hrq";
+
+  subPackages = [ "cmd/frcli" "cmd/faraday" ];
+
+  meta = with lib; {
+    description = "LND Channel Management Tools";
+    homepage = "https://github.com/lightninglabs/faraday";
+    license = licenses.mit;
+    maintainers = with maintainers; [ proofofkeags ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
index 73e067b5b559..4310f809bacd 100644
--- a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
+++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
@@ -8,17 +8,17 @@ let
 
 in buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PJaJ9fCva9UUBcQrnVa2c7dk4koi6AyX6bj3JStUMwM=";
+    sha256 = "sha256-85aUR7MvaPeRilC+4oj6XW2IEUvxRUsVz63tQ/Jc7xw=";
   };
 
   runVend = true;
-  vendorSha256 = "sha256-qLpwrV9NkmUO0yoK2/gwb5oe/lky/w/P0QVoFSTNuMU=";
+  vendorSha256 = "sha256-8zhVQ8FUdzog7h9RBfuq8uBp0zjulXbDOLAPljp4deA=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 2dea189dca40..298ae39716bb 100644
--- a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.24.0";
+  version = "2.26.1";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    sha256 = "1xdqj825vwh3kg35v7568zr1jhvldb4wcazzgzcaawkr4qzfdb2n";
+    sha256 = "0zbzqq3c0q45dz4vvgfbvqcgda7413mnwixi7yi78qb9mp8zxkhy";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/blockchains/miniscript/default.nix b/nixpkgs/pkgs/applications/blockchains/miniscript/default.nix
new file mode 100644
index 000000000000..0520101c4cc7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/miniscript/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "miniscript";
+  version = "unstable-2020-12-01";
+
+  src = fetchFromGitHub {
+    owner = "sipa";
+    repo = pname;
+    rev = "02682a398a35b410571b10cde7f39837141ddad6";
+    sha256 = "079jz4g88cfzfm9a6ykby9haxwcs033c1288mgr8cl2hw4qd2sjl";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp miniscript $out/bin/miniscript
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description     = "Compiler and inspector for the miniscript Bitcoin policy language";
+    longDescription = "Miniscript is a language for writing (a subset of) Bitcoin Scripts in a structured way, enabling analysis, composition, generic signing and more.";
+    homepage        = "http://bitcoin.sipa.be/miniscript/";
+    license         = licenses.mit;
+    platforms       = platforms.linux;
+    maintainers     = with maintainers; [ RaghavSood jb55 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
index 5f430bc8869e..59e09939e800 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -17,22 +17,15 @@
 
 with lib;
 
-let
-  arch = if stdenv.isx86_64  then "x86-64"
-    else if stdenv.isi686    then "i686"
-    else if stdenv.isAarch64 then "armv8-a"
-    else throw "unsupported architecture";
-in
-
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.17.1.9";
+  version = "0.17.2.2";
 
   src = fetchFromGitHub {
     owner  = "monero-project";
     repo   = "monero-gui";
     rev    = "v${version}";
-    sha256 = "0143mmxk0jfb5pmjlx6v0knvf8v49kmkpjxlp6rw8lwnlf71xadn";
+    sha256 = "1k3grbd3wydy5gv6d8x35skv1v97lhh6awd9i87im9lz4kn8ywkd";
   };
 
   nativeBuildInputs = [
@@ -58,7 +51,10 @@ stdenv.mkDerivation rec {
     chmod -R +w source/monero
   '';
 
-  patches = [ ./move-log-file.patch ];
+  patches = [
+    ./move-log-file.patch
+    ./use-system-libquirc.patch
+  ];
 
   postPatch = ''
     # set monero-gui version
@@ -69,17 +65,15 @@ stdenv.mkDerivation rec {
     substituteInPlace src/daemon/DaemonManager.cpp \
       --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin'
 
-    # only build external deps, *not* the full monero
+    # 1: only build external deps, *not* the full monero
+    # 2: use nixpkgs libraries
     substituteInPlace CMakeLists.txt \
       --replace 'add_subdirectory(monero)' \
-                'add_subdirectory(monero EXCLUDE_FROM_ALL)'
-
-    # use nixpkgs quirc
-    substituteInPlace CMakeLists.txt \
+                'add_subdirectory(monero EXCLUDE_FROM_ALL)' \
       --replace 'add_subdirectory(external)' ""
   '';
 
-  cmakeFlags = [ "-DARCH=${arch}" ];
+  cmakeFlags = [ "-DARCH=default" ];
 
   desktopItem = makeDesktopItem {
     name = "monero-wallet-gui";
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch b/nixpkgs/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch
new file mode 100644
index 000000000000..b60057294b10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch
@@ -0,0 +1,37 @@
+diff --git a/src/QR-Code-scanner/CMakeLists.txt b/src/QR-Code-scanner/CMakeLists.txt
+index 15e288df..2e9b3305 100644
+--- a/src/QR-Code-scanner/CMakeLists.txt
++++ b/src/QR-Code-scanner/CMakeLists.txt
+@@ -1,11 +1,18 @@
++find_library(QUIRC_LIBRARY quirc REQUIRED)
++find_path(QUIRC_INCLUDE_DIR quirc.h REQUIRED)
++
+ add_library(qrdecoder STATIC
+     Decoder.cpp
+ )
++target_include_directories(qrdecoder
++    PUBLIC
++        ${QUIRC_INCLUDE_DIR}
++)
+ target_link_libraries(qrdecoder
+     PUBLIC
+         Qt5::Gui
+     PRIVATE
+-        quirc
++        ${QUIRC_LIBRARY}
+ )
+ 
+ if(WITH_SCANNER)
+diff --git a/src/QR-Code-scanner/Decoder.cpp b/src/QR-Code-scanner/Decoder.cpp
+index 1bb99140..353ca189 100644
+--- a/src/QR-Code-scanner/Decoder.cpp
++++ b/src/QR-Code-scanner/Decoder.cpp
+@@ -30,7 +30,7 @@
+ 
+ #include <limits>
+ 
+-#include "quirc.h"
++#include <quirc.h>
+ 
+ QrDecoder::QrDecoder()
+     : m_qr(quirc_new())
diff --git a/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
index 3be8b908c7a2..2a12bfe872b6 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
@@ -17,13 +17,13 @@ assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
 
 stdenv.mkDerivation rec {
   pname = "monero";
-  version = "0.17.1.9";
+  version = "0.17.2.0";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "0jqss4csvkcrhrmaa3vrnyv6yiwqpbfw7037clx9xcfm4qrrfiwy";
+    sha256 = "0jwlmrpzisvw1c06cvd5b3s3hd4w0pa1qmrypfwah67qj3x6hnb6";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix b/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
index 17e884c5794e..d8867da5fd56 100644
--- a/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "MyCrypto";
-  version = "1.7.13";
-  sha256 = "15m21n68lxnz6fxwf1bb3cxg5qi6nrwcnqymiw8s9wizvv575vj7";
+  version = "1.7.16";
+  hash = "sha256-fvV/dT9tj8/d/kjM0dVj3IC/O7Y/yG8fscDCzUBwHKI=";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/mycryptohq/mycrypto/releases/download/${version}/linux-x86-64_${version}_MyCrypto.AppImage";
-    inherit sha256;
+    inherit hash;
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
index ffa061edc727..7e279b226961 100644
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "nbxplorer";
-  version = "2.1.49";
+  version = "2.1.51";
 
   src = fetchFromGitHub {
     owner = "dgarage";
     repo = "NBXplorer";
     rev = "v${version}";
-    sha256 = "0xg5gbq6rbzgsbgwf94qcy2b0m5kdspi6hc5a64smaj9i7i0136l";
+    sha256 = "sha256-tvuuoDZCSDFa8gAVyH+EP1DLtdPfbkr+w5lSxZkzZXg=";
   };
 
   nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
index b0bf85f623f7..de75ad228d3a 100644
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -181,18 +181,23 @@
   })
   (fetchNuGet {
     name = "NBitcoin.Altcoins";
-    version = "2.0.28";
-    sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
+    version = "2.0.31";
+    sha256 = "13gcfsxpfq8slmsvgzf6iv581x7n535zq0p9c88bqs5p88r6lygm";
   })
   (fetchNuGet {
     name = "NBitcoin.TestFramework";
-    version = "2.0.21";
-    sha256 = "1k26fkss6d7x2yqlid31z5i04b5dmlbbbwijg9c8i3d996i1z7sq";
+    version = "2.0.22";
+    sha256 = "1zwhjy6xppl01jhkgl7lqjsmi8crny4qq22ml20cz8l437j1zi4n";
   })
   (fetchNuGet {
     name = "NBitcoin";
-    version = "5.0.73";
-    sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
+    version = "5.0.76";
+    sha256 = "0q3ilmsrw9ip1s38qmfs4qi02xvccmy1naafffn5yxj08q0n1p79";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.77";
+    sha256 = "0ykz4ii6lh6gdlz6z264wnib5pfnmq9q617qqbg0f04mq654jygb";
   })
   (fetchNuGet {
     name = "NETStandard.Library";
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
index 1402d1cd1eb8..14b1687dffff 100755
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
@@ -6,7 +6,7 @@ set -euo pipefail
 # Expects $pkgSrc to contain a single .sln file.
 
 pkgSrc=$1
-depsFile=$2
+depsFile=$(realpath "$2")
 
 sln=$(cd "$pkgSrc"; find * -maxdepth 0 -name '*.sln' | head -1)
 [[ $sln ]] || { echo "No .sln file in $pkgSrc" ; exit 1; }
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
index c69168ccbbb1..7a9262bf4833 100755
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
@@ -1,16 +1,16 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3
+#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3 git gnupg
 set -euo pipefail
 
 # This script uses the following env vars:
 # getVersionFromTags
-# onlyCreateDeps
+# refetch
 
 pkgName=$1
 depsFile=$2
 
 : ${getVersionFromTags:=}
-: ${onlyCreateDeps:=}
+: ${refetch:=}
 
 scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
 nixpkgs=$(realpath "$scriptDir"/../../../../..)
@@ -29,23 +29,46 @@ getLatestVersionTag() {
     | sort -V | tail -1 | sed 's|^v||'
 }
 
-if [[ ! $onlyCreateDeps ]]; then
-  oldVersion=$(evalNixpkgs "$pkgName.version")
-  if [[ $getVersionFromTags ]]; then
-    newVersion=$(getLatestVersionTag)
-  else
-    newVersion=$(curl -s "https://api.github.com/repos/$(getRepo)/releases" | jq -r '.[0].name')
-  fi
-
-  if [[ $newVersion == $oldVersion ]]; then
-    echo "nixpkgs already has the latest version $newVersion"
-    echo "Run this script with env var onlyCreateDeps=1 to recreate "$(basename "$depsFile")
-    exit 0
-  else
-    echo "Updating $pkgName: $oldVersion -> $newVersion"
-    (cd "$nixpkgs" && update-source-version "$pkgName" "$newVersion")
-  fi
+oldVersion=$(evalNixpkgs "$pkgName.version")
+if [[ $getVersionFromTags ]]; then
+  newVersion=$(getLatestVersionTag)
+else
+  newVersion=$(curl -s "https://api.github.com/repos/$(getRepo)/releases" | jq -r '.[0].name')
 fi
 
+if [[ $newVersion == $oldVersion && ! $refetch ]]; then
+  echo "nixpkgs already has the latest version $newVersion"
+  echo "Run this script with env var refetch=1 to re-verify the content hash via GPG"
+  echo "and to recreate $(basename "$depsFile"). This is useful for reviewing a version update."
+  exit 0
+fi
+
+# Fetch release and GPG-verify the content hash
+tmpdir=$(mktemp -d /tmp/$pkgName-verify-gpg.XXX)
+repo=$tmpdir/repo
+trap "rm -rf $tmpdir" EXIT
+git clone --depth 1 --branch v${newVersion} -c advice.detachedHead=false https://github.com/$(getRepo) $repo
+export GNUPGHOME=$tmpdir
+# Fetch Nicolas Dorier's key (64-bit key ID: 6618763EF09186FE)
+gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys AB4CFA9895ACA0DBE27F6B346618763EF09186FE 2> /dev/null
+echo
+echo "Verifying commit"
+git -C $repo verify-commit HEAD
+rm -rf $repo/.git
+newHash=$(nix hash-path $repo)
+rm -rf $tmpdir
+echo
+
+# Update pkg version and hash
+echo "Updating $pkgName: $oldVersion -> $newVersion"
+if [[ $newVersion == $oldVersion ]]; then
+  # Temporarily set a source version that doesn't equal $newVersion so that $newHash
+  # is always updated in the next call to update-source-version.
+  (cd "$nixpkgs" && update-source-version "$pkgName" "0" "0000000000000000000000000000000000000000000000000000")
+fi
+(cd "$nixpkgs" && update-source-version "$pkgName" "$newVersion" "$newHash")
+echo
+
+# Create deps file
 storeSrc="$(nix-build "$nixpkgs" -A $pkgName.src --no-out-link)"
 . "$scriptDir"/create-deps.sh "$storeSrc" "$depsFile"
diff --git a/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
index 82b6f2c1adb7..b4b5d13f1407 100644
--- a/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
@@ -10,26 +10,20 @@
 , darwin
 }:
 
-rustPlatform.buildRustPackage rec {
+rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
   pname = "openethereum";
-  version = "3.2.4";
+  version = "3.2.5";
 
   src = fetchFromGitHub {
     owner = "openethereum";
     repo = "openethereum";
     rev = "v${version}";
-    sha256 = "143w0b0ff1s73qzr844l25w90d2y2z0b3w2fr5kkbc1wsnpcq7jp";
+    sha256 = "1g48fkznvr9fs3j9zy2d9pcwnahmyghxg2b9bsn2mxpyczmfqrki";
   };
 
-  cargoSha256 = "1gm02pcfll362add8a0dcb0sk0mag8z0q23b87yb6fs870bqvhib";
+  cargoSha256 = "02nlm5ariv4dr6b3rckzs7hw1xrl83yvhimrzb0g5l0j0sxh1nhc";
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
-  nativeBuildInputs = [
-    cmake
-    llvmPackages.clang
-    llvmPackages.libclang
-    pkg-config
-  ];
+  nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isLinux [ systemd ]
diff --git a/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix b/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix
index a878bbf2e3e3..8b7d706c013a 100644
--- a/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix
+++ b/nixpkgs/pkgs/applications/blockchains/parity-ui/env.nix
@@ -1,11 +1,11 @@
-{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk2, atk, pango, freetype, fontconfig
+{ stdenv, lib, zlib, glib, alsa-lib, dbus, gtk2, atk, pango, freetype, fontconfig
 , libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
 , nss, xorg, libcap, systemd, libnotify, libsecret, gnome2 }:
 
 let
   packages = [
     stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3
-    fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr nss
+    fontconfig gdk-pixbuf cairo cups expat libgpgerror alsa-lib nspr nss
     xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
     xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
     xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
diff --git a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
index abe7ab56431c..105686777db2 100644
--- a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,20 +7,20 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "0.8.30";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot";
     rev = "v${version}";
-    sha256 = "sha256-9GCk1gqlQJhuoiKRi7J1qcJlZjlq2ObGicp5tGGDhrY=";
+    sha256 = "sha256-BxBrgcAJm6KM6ha494xlwiLYOSAr71gDFgqlH5RPqMM=";
   };
 
-  cargoSha256 = "sha256-pWqbcargCEkisdGnj08VQdRqjocR7zZhWukhYjfZDqI=";
+  cargoSha256 = "131fkdazcspblzblmd9nhkymwn7qh6lhaqvi1jqnsq4951l9f4ms";
 
   nativeBuildInputs = [ clang ];
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
   PROTOC = "${protobuf}/bin/protoc";
 
   # NOTE: We don't build the WASM runtimes since this would require a more
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
     description = "Polkadot Node Implementation";
     homepage = "https://polkadot.network";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ akru andresilva asymmetric RaghavSood ];
+    maintainers = with maintainers; [ akru andresilva asymmetric FlorianFranzen RaghavSood ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch b/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch
deleted file mode 100644
index 57d66ce5919a..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/stellar-core-dirty-version.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Subject: Prevent "-dirty" from being erroneously added to the version
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index d36d1a3..00048fc 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -28,7 +28,7 @@ always:
- # Always rebuild because .git/HEAD is a symbolic ref one can't depend on
- StellarCoreVersion.h: always
- 	@vers=$$(cd "$(srcdir)" \
--		&& git describe --always --dirty --tags 2>/dev/null \
-+		&& git describe --always --tags 2>/dev/null \
- 		|| echo "$(PACKAGE) $(VERSION)"); \
- 	    echo "#define STELLAR_CORE_VERSION \"$$vers\"" > $@~
- 	@if cmp -s $@~ $@; then rm -f $@~; else \
diff --git a/nixpkgs/pkgs/applications/blockchains/stellar-core.nix b/nixpkgs/pkgs/applications/blockchains/stellar-core.nix
index ceb48bf6aa4d..197453599b28 100644
--- a/nixpkgs/pkgs/applications/blockchains/stellar-core.nix
+++ b/nixpkgs/pkgs/applications/blockchains/stellar-core.nix
@@ -1,31 +1,30 @@
-{ lib, stdenv, fetchgit, autoconf, libtool, automake, pkg-config, git
-, bison, flex, postgresql }:
+{ lib, stdenv, fetchFromGitHub, autoconf, libtool, automake, pkg-config, git
+, bison, flex, postgresql, ripgrep }:
 
-let
+stdenv.mkDerivation rec {
   pname = "stellar-core";
-  version = "0.5.1";
+  version = "17.0.0";
 
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
-
-  src = fetchgit {
-    url = "https://github.com/stellar/stellar-core.git";
-    rev = "refs/tags/v${version}";
-    sha256 = "0ldw3qr0sajgam38z2w2iym0214ial6iahbzx3b965cw92n8n88z";
+  src = fetchFromGitHub {
+    owner = "stellar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ngl8yjqb8xzhdwzlxzzxf14q2hgwy2ysb17sn5380rrn0jswin1";
     fetchSubmodules = true;
-    leaveDotGit = true;
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ autoconf automake libtool git ];
+  nativeBuildInputs = [ automake autoconf git libtool pkg-config ripgrep ];
 
   propagatedBuildInputs = [ bison flex postgresql ];
 
-  patches = [ ./stellar-core-dirty-version.patch ];
-
   preConfigure = ''
+    # Due to https://github.com/NixOS/nixpkgs/issues/8567 we cannot rely on
+    # having the .git directory present, so directly provide the version
+    substituteInPlace src/Makefile.am --replace '$$vers' '${pname} ${version}';
+
     # Everything needs to be staged in git because the build uses
     # `git ls-files` to search for source files to compile.
+    git init
     git add .
 
     ./autogen.sh
diff --git a/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix b/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
index 68b83aff88dc..585f01290bba 100644
--- a/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , fetchurl
 , appimageTools
 , tor
@@ -7,12 +8,21 @@
 
 let
   pname = "trezor-suite";
-  version = "21.2.2";
+  version = "21.5.1";
   name = "${pname}-${version}";
 
+  suffix = {
+    aarch64-linux = "linux-arm64";
+    x86_64-linux  = "linux-x86_64";
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
   src = fetchurl {
-    url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-linux-x86_64.AppImage";
-    sha256 = "0dj3azx9jvxchrpm02w6nkcis6wlnc6df04z7xc6f66fwn6r3kkw";
+    url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
+    # sha512 hashes are obtained from latest-linux-arm64.yml and latest-linux.yml
+    sha512 = {
+      aarch64-linux = "sha512-nqwfonWySc+wBSJjC8BW9vm+v5zHbKqbbrTTRmoZdEYBJg2SthMtTULNLVpXaX9NHxr6guZnOWdBlzVk2dQkfQ==";
+      x86_64-linux  = "sha512-tfvdNXsjMe8YXJwTuujz4tKTdfsCuR/9VECF8EkcRP95YM7vuDV8dumru1jKtdiv0gaS1GT3SPEeAfmczY5jGg==";
+    }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -49,6 +59,6 @@ appimageTools.wrapType2 rec {
     homepage = "https://suite.trezor.io";
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "aarch64-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix b/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix
index 3c56e0bbb2be..b1548212a694 100644
--- a/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix
+++ b/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix
@@ -2,28 +2,29 @@
 
 buildGoModule rec {
   pname = "turbo-geth";
-  version = "2021.02.01";
+  version = "2021.05.02";
 
   src = fetchFromGitHub {
     owner = "ledgerwatch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9z0Hogu/VgGxvgQMKIImv+qyTqTmR40JS4NNIOk5EZI=";
+    sha256 = "sha256-7sTRAAlKZOdwi/LRbIEDKWpBe1ol8pZfEf2KIC4s0xk=";
   };
 
-  vendorSha256 = "sha256-Ho68+SzYELQN4DE57LNSXeHIu43zAOb7HK/jx7PFdXk=";
+  vendorSha256 = "1d0ahdb2b5v8nxq3kdxw151phnyv6habb8kr8qjaq3kyhcnyk6ng";
   runVend = true;
 
   subPackages = [
     "cmd/tg"
-    "cmd/restapi"
+    "cmd/evm"
     "cmd/rpcdaemon"
+    "cmd/rlpdump"
   ];
 
   meta = with lib; {
     homepage = "https://github.com/ledgerwatch/turbo-geth/";
     description = "Ethereum node and geth fork focused on scalability and modularity";
-    license = with licenses; [ lgpl3 gpl3 ];
+    license = with licenses; [ lgpl3Plus gpl3Plus ];
     maintainers = with maintainers; [ xwvvvvwx ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
index be9ba0f75616..7ca4da69d077 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
@@ -20,7 +20,7 @@
 , polkit
 , accountsservice
 , gtk-doc
-, gnome3
+, gnome
 , gobject-introspection
 , vala
 , fetchpatch
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     autoconf
     automake
     yelp-tools
-    gnome3.yelp-xsl
+    gnome.yelp-xsl
     gobject-introspection
     gtk-doc
     intltool
@@ -142,6 +142,6 @@ stdenv.mkDerivation rec {
     description = "A cross-desktop display manager";
     platforms = platforms.linux;
     license = licenses.gpl3;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/amp/default.nix b/nixpkgs/pkgs/applications/editors/amp/default.nix
index 5f8c56592f6d..7f4081a399e7 100644
--- a/nixpkgs/pkgs/applications/editors/amp/default.nix
+++ b/nixpkgs/pkgs/applications/editors/amp/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0l1vpcfq6jrq2dkrmsa4ghwdpp7c54f46gz3n7nk0i41b12hnigw";
   };
 
-  cargoSha256 = "09v991rl2w4c4jh7ga7q1lk6wyl2vr71j5cpniij8mcvszrz78qf";
+  cargoSha256 = "19r3xvysragmf02zk2l5s2hjg92gxdygsh52y7za81x443lvjyvq";
 
   nativeBuildInputs = [ cmake pkg-config python3 ];
   buildInputs = [ openssl xorg.libxcb libgit2 ] ++ lib.optionals stdenv.isDarwin
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/common.nix b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
index 678d6a0a3532..42e3b7588afb 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/common.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
@@ -1,6 +1,6 @@
 { channel, pname, version, build ? null, sha256Hash }:
 
-{ alsaLib
+{ alsa-lib
 , bash
 , buildFHSUserEnv
 , cacert
@@ -121,7 +121,7 @@ let
           libXrandr
 
           # For Android emulator
-          alsaLib
+          alsa-lib
           dbus
           expat
           libpulseaudio
@@ -145,7 +145,7 @@ let
         ]}"
 
       # AS launches LLDBFrontend with a custom LD_LIBRARY_PATH
-      wrapProgram $out/bin/lldb/bin/LLDBFrontend --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
+      wrapProgram $(find $out -name LLDBFrontend) --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
         ncurses5
         zlib
       ]}"
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
index 466dfb2516e1..e0cf5138310a 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -9,18 +9,17 @@ let
     inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "4.1.3.0"; # "Android Studio 4.1.3"
-    build = "201.7199119";
-    sha256Hash = "06xwgk7bwcmljka8xa56cfwwg858r0bl0xp2jb9hdnkwljf796gm";
+    version = "4.2.1.0"; # "Android Studio 4.2.1"
+    build = "202.7351085";
+    sha256Hash = "074y6i0h8zamjgvvs882im44clds3g6aq8rssl7sq1wx6hrn5q36";
   };
   betaVersion = {
-    version = "4.2.0.22"; # "Android Studio 4.2 Beta 6"
-    build = "202.7188722";
-    sha256Hash = "0mzwkx1csx194wzg7dc1cii3c16wbmlbq1jdv9ly4nmdxlvc2rxb";
+    version = "2020.3.1.16"; # "Android Studio Arctic Fox (2020.3.1) Beta 1"
+    sha256Hash = "0mp1cmxkqc022nv8cggywbwcf8lp6r802nh8hcw5j00hcdnhkcq0";
   };
   latestVersion = { # canary & dev
-    version = "2020.3.1.10"; # "Android Studio Arctic Fox (2020.3.1) Canary 10"
-    sha256Hash = "15xxyjjjy5pnimc66dcwnqb7z4lq7ll4fl401a3br5ca4d1hpgsj";
+    version = "2021.1.1.1"; # "Android Studio Bumblebee (2021.1.1) Canary 1"
+    sha256Hash = "0aavmk8byw817356jm28rl998gcp3zm7x3fq14hm2awzhk5jaklm";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/nixpkgs/pkgs/applications/editors/apostrophe/default.nix b/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
index 9dafc055bcb0..851c3ea1c2f0 100644
--- a/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
+++ b/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitLab, meson, ninja, cmake
 , wrapGAppsHook, pkg-config, desktop-file-utils
 , appstream-glib, pythonPackages, glib, gobject-introspection
-, gtk3, webkitgtk, glib-networking, gnome3, gspell, texlive
+, gtk3, webkitgtk, glib-networking, gnome, gspell, texlive
 , shared-mime-info, libhandy
 }:
 
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
     appstream-glib wrapGAppsHook ];
 
   buildInputs = [ glib pythonEnv gobject-introspection gtk3
-    gnome3.adwaita-icon-theme webkitgtk gspell texlive
+    gnome.adwaita-icon-theme webkitgtk gspell texlive
     glib-networking libhandy ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/editors/atom/default.nix b/nixpkgs/pkgs/applications/editors/atom/default.nix
index 875f8612fde6..03a46479871f 100644
--- a/nixpkgs/pkgs/applications/editors/atom/default.nix
+++ b/nixpkgs/pkgs/applications/editors/atom/default.nix
@@ -3,14 +3,14 @@
 let
   versions = {
     atom = {
-      version = "1.54.0";
-      sha256 = "sha256-21AURgomEjuiTzeJ4MIx0mkyVi0b0mVdmFsFGNLXRP4";
+      version = "1.57.0";
+      sha256 = "1jzxjvaljk8p3gzjvs5bn3d128x37pcgn6by7srhs9qclc5j2664";
     };
 
     atom-beta = {
-      version = "1.55.0";
+      version = "1.58.0";
       beta = 0;
-      sha256 = "sha256-PICkTt54cPkDJVnXBTtSHUQVbmosOpZfVAiD5A3/n+Q=";
+      sha256 = "0amhilmpiwn2jfn0nrcrhzminqdp3xm5p3w3ldc3qk761pn3lbpd";
       broken = true;
     };
   };
diff --git a/nixpkgs/pkgs/applications/editors/atom/env.nix b/nixpkgs/pkgs/applications/editors/atom/env.nix
index 53150e0ad61f..253518b276b1 100644
--- a/nixpkgs/pkgs/applications/editors/atom/env.nix
+++ b/nixpkgs/pkgs/applications/editors/atom/env.nix
@@ -1,17 +1,18 @@
-{ stdenv, lib, zlib, glib, alsaLib, dbus, gtk3, atk, pango, freetype, fontconfig
+{ stdenv, lib, zlib, glib, alsa-lib, dbus, gtk3, atk, pango, freetype, fontconfig
 , libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
 , gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
-, at-spi2-core, libdbusmenu, mesa
+, at-spi2-core, libdbusmenu, libdrm, mesa
 }:
 
 let
   packages = [
     stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype libgnome-keyring3
-    fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr gconf nss
+    fontconfig gdk-pixbuf cairo cups expat libgpgerror alsa-lib nspr gconf nss
     xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
     xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
     xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
     xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core libdbusmenu
+    libdrm
     mesa # required for libgbm
   ];
 
diff --git a/nixpkgs/pkgs/applications/editors/bless/default.nix b/nixpkgs/pkgs/applications/editors/bless/default.nix
index 24fc8440bbd7..e613747aeab1 100644
--- a/nixpkgs/pkgs/applications/editors/bless/default.nix
+++ b/nixpkgs/pkgs/applications/editors/bless/default.nix
@@ -1,73 +1,58 @@
 { lib, stdenv
 , fetchFromGitHub
-, autoreconfHook
 , pkg-config
 , mono
+, meson
+, ninja
 , gtk-sharp-2_0
 , gettext
 , makeWrapper
 , glib
 , gtk2-x11
-, gnome2
+, libxslt
+, docbook_xsl
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "bless";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "afrantzis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04ra2mcx3pkhzbhcz0zwfmbpqj6cwisrypi6xbc2d6pxd4hdafn1";
+    hash = "sha256-rS+vJX0y9v1TiPsRfABroHiTuENQKEOxNsyKwagRuHM=";
   };
 
+  postPatch = ''
+    sed "s|get_option('tests')|false|g" -i meson.build
+    patchShebangs .
+  '';
+
   buildInputs = [
     gtk-sharp-2_0
     mono
     # runtime only deps
     glib
     gtk2-x11
-    gnome2.libglade
   ];
 
   nativeBuildInputs = [
     pkg-config
-    autoreconfHook
+    meson
+    ninja
     gettext
     makeWrapper
+    libxslt
+    docbook_xsl
+    python3
   ];
 
-  configureFlags = [
-    # scrollkeeper is a gnome2 package, so it must be old and we shouldn't really support it
-    # NOTE: that sadly doesn't turn off the compilation of the manual with scrollkeeper, so we have to fake the binaries below
-    "--without-scrollkeeper"
-  ];
-
-  autoreconfPhase = ''
-    mkdir _bin
-
-    # this fakes the scrollkeeper commands, to keep the build happy
-    for f in scrollkeeper-preinstall scrollkeeper-update; do
-      echo "true" > ./_bin/$f
-      chmod +x ./_bin/$f
-    done
-
-    export PATH="$PWD/_bin:$PATH"
-
-    # and it also wants to install that file
-    touch ./doc/user/bless-manual.omf
-
-    # patch mono path
-    sed "s|^mono|${mono}/bin/mono|g" -i src/bless-script.in
-
-    ./autogen.sh
-    '';
-
   preFixup = ''
-    MPATH="${gtk-sharp-2_0}/lib/mono/gtk-sharp-2.0:${glib.out}/lib:${gtk2-x11}/lib:${gnome2.libglade}/lib:${gtk-sharp-2_0}/lib"
-    wrapProgram $out/bin/bless --prefix MONO_PATH : "$MPATH" --prefix LD_LIBRARY_PATH : "$MPATH"
-    '';
+    MPATH="${gtk-sharp-2_0}/lib/mono/gtk-sharp-2.0:${glib.out}/lib:${gtk2-x11}/lib:${gtk-sharp-2_0}/lib"
+    wrapProgram $out/bin/bless --prefix MONO_PATH : "$MPATH" --prefix LD_LIBRARY_PATH : "$MPATH" --prefix PATH : ${lib.makeBinPath [ mono ]}
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/afrantzis/bless";
diff --git a/nixpkgs/pkgs/applications/editors/bluefish/default.nix b/nixpkgs/pkgs/applications/editors/bluefish/default.nix
index 59d1f11312dc..3a5436d4f32d 100644
--- a/nixpkgs/pkgs/applications/editors/bluefish/default.nix
+++ b/nixpkgs/pkgs/applications/editors/bluefish/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, intltool, wrapGAppsHook, pkg-config , gtk, libxml2
-, enchant, gucharmap, python3, gnome3
+, enchant, gucharmap, python3, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ intltool pkg-config wrapGAppsHook ];
-  buildInputs = [ gnome3.adwaita-icon-theme gtk libxml2
+  buildInputs = [ gnome.adwaita-icon-theme gtk libxml2
     enchant gucharmap python3 ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/bluej/default.nix b/nixpkgs/pkgs/applications/editors/bluej/default.nix
index 9b28de9440fc..a34d6983b2f4 100644
--- a/nixpkgs/pkgs/applications/editors/bluej/default.nix
+++ b/nixpkgs/pkgs/applications/editors/bluej/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bluej";
-  version = "5.0.0";
+  version = "5.0.1";
   src = fetchurl {
     # We use the deb here. First instinct might be to go for the "generic" JAR
     # download, but that is actually a graphical installer that is much harder
     # to unpack than the deb.
     url = "https://www.bluej.org/download/files/BlueJ-linux-${builtins.replaceStrings ["."] [""] version}.deb";
-    sha256 = "sha256-U81FIf67Qm/86+hA9iUCHt61dxiZsTkkequlVjft6/0=";
+    sha256 = "sha256-KhNhJ2xsw1g2yemwP6NQmJvk4cxZAQQNPEUBuLso5qM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix b/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix
index 9ccd549693bb..5b1fc966dd9b 100644
--- a/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix
+++ b/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , cmake, makeWrapper
-, alsaLib, fontconfig, mesa_glu, libXcursor, libXinerama, libXrandr, xorg
+, alsa-lib, fontconfig, mesa_glu, libXcursor, libXinerama, libXrandr, xorg
 }:
 
 stdenv.mkDerivation rec {
@@ -16,12 +16,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake makeWrapper ];
   buildInputs = [
-    alsaLib fontconfig mesa_glu
+    alsa-lib fontconfig mesa_glu
     libXcursor libXinerama libXrandr xorg.xinput xorg.libXi xorg.libXext
   ];
 
   postFixup = ''
-    wrapProgram $out/bin/bonzomatic --prefix LD_LIBRARY_PATH : "${alsaLib}/lib"
+    wrapProgram $out/bin/bonzomatic --prefix LD_LIBRARY_PATH : "${alsa-lib}/lib"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/default.nix b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
index cdf327441482..f6e6283338d3 100644
--- a/nixpkgs/pkgs/applications/editors/cudatext/default.nix
+++ b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.131.0";
+  version = "1.133.5";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "1zq17yi5zn4hdgrrn3c3cdk6s38fv36r66dl0dqz2z8jjd6vy4p3";
+    sha256 = "sha256-0QWYitlOS3x7BQpFTYDAjIgkw83IkRFfA/slyEvQUnw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/deps.json b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
index 05490b9d6fc4..7866f2dd2725 100644
--- a/nixpkgs/pkgs/applications/editors/cudatext/deps.json
+++ b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
@@ -11,33 +11,33 @@
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2021.04.01",
-    "sha256": "12sncivsv6pvwflzzy12rpn1fjiq64n2n3bcj7630xxlrbygkhxb"
+    "rev": "2021.05.16",
+    "sha256": "sha256-oQW0M8Sx1bC+keOWivXwlD5SDKJuO5Sk/3HiO9HvJtY="
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2021.04.09",
-    "sha256": "1ldr2z88zywn0ccgs17vfhq55ibihjcmfjjxcqsjifrbm0y6wipp"
+    "rev": "2021.05.31",
+    "sha256": "sha256-4B6/I0CH9gfslwUbCTTI4kycgTHUjLGtVrCctfO6gRo="
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
-    "rev": "2021.04.01",
-    "sha256": "1g6zp9d7vwjisad3y1mfnk1jcbjqxp3yimm0sh1655al6qwn886m"
+    "rev": "2021.05.03",
+    "sha256": "sha256-zns83XA2SslHRGqa3iro0phIBlz5/neJ34TTYAKhX5Q="
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2021.03.16",
-    "sha256": "159s1rpl829bmaa4bllqhjm8z0vji1ncsd6hw2s8z8hz28n905k8"
+    "rev": "2021.05.27",
+    "sha256": "sha256-D0UBK69V28Izs9FgevtvX6vyDU7KpfIGJqcqpWaxU9E="
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2021.04.01",
-    "sha256": "1hq9hbv81mcymjcms97wcwcfqfpxis6h6v5m0syyih4r53khv0az"
+    "rev": "2021.05.27",
+    "sha256": "sha256-1zhSB6bgeW5G6RAZvhznNTpRk0uEDZnLXsk+cgElKLw="
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2021.02.18",
-    "sha256": "0fy6bmpdcl2aa8pb7zban6midkfwdj99x14hdghrv7cp8l4gcsg5"
+    "rev": "2021.04.16",
+    "sha256": "sha256-HN3Lr3uDCyNk+8+J09ivyC0LZxQ6x6SaUH4swZJBFkM="
   },
   "Emmet-Pascal": {
     "owner": "Alexey-T",
diff --git a/nixpkgs/pkgs/applications/editors/edbrowse/0001-small-fixes.patch b/nixpkgs/pkgs/applications/editors/edbrowse/0001-small-fixes.patch
new file mode 100644
index 000000000000..433b884cc5de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/edbrowse/0001-small-fixes.patch
@@ -0,0 +1,20 @@
+diff -Naur source.old/src/makefile source/src/makefile
+--- source.old/src/makefile	1969-12-31 21:00:01.000000000 -0300
++++ source/src/makefile	2021-06-07 18:58:48.851231787 -0300
+@@ -101,14 +101,14 @@
+ 
+ #  need packages nodejs and libnode-dev
+ js_hello_v8 : js_hello_v8.cpp
+-	g++ -I/usr/include/v8 js_hello_v8.cpp -lv8 -lstdc++ -o js_hello_v8
++	$(CXX) -I/usr/include/v8 js_hello_v8.cpp -lv8 -lstdc++ -o js_hello_v8
+ 
+ HELLOEXTRA = stringfile.o messages.o msg-strings.o startwindow.o ebrc.o format.o http.o isup.o fetchmail.o sendmail.o plugin.o buffers.o dbstubs.o html.o decorate.o html-tidy.o css.o
+ js_hello_moz : js_hello_moz.o $(HELLOEXTRA) jseng-moz.o
+ 	$(CC) js_hello_moz.o $(HELLOEXTRA) jseng-moz.o $(LDFLAGS) -lmozjs-$(SMV) -lstdc++ -o $@
+ 
+ js_hello_quick : js_hello_quick.c
+-	gcc $(CFLAGS) js_hello_quick.c stringfile.o messages.o msg-strings.o ebrc.o format.o -o js_hello_quick -L/usr/local/lib/quickjs -lquickjs -lm -ldl -lpthread -latomic
++	$(CC) $(CFLAGS) js_hello_quick.c stringfile.o messages.o msg-strings.o ebrc.o format.o -o js_hello_quick $(QUICKJS_LDFLAGS) -lm -lpthread
+ 
+ hello: js_hello_duk js_hello_v8 js_hello_moz js_hello_quick
+ 
diff --git a/nixpkgs/pkgs/applications/editors/edbrowse/default.nix b/nixpkgs/pkgs/applications/editors/edbrowse/default.nix
index 86cc81a58c26..5b37b86556b7 100644
--- a/nixpkgs/pkgs/applications/editors/edbrowse/default.nix
+++ b/nixpkgs/pkgs/applications/editors/edbrowse/default.nix
@@ -1,41 +1,79 @@
-{ lib, stdenv, fetchFromGitHub, duktape, curl, pcre, readline, openssl, perl, html-tidy }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, curl
+, duktape
+, html-tidy
+, openssl
+, pcre
+, perl
+, pkg-config
+, quickjs
+, readline
+, which
+}:
 
 stdenv.mkDerivation rec {
   pname = "edbrowse";
-  version = "3.7.7";
+  version = "3.8.0";
 
-  buildInputs = [ curl pcre readline openssl duktape perl html-tidy ];
+  src = fetchFromGitHub {
+    owner = "CMB";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-ZXxzQBAmu7kM3sjqg/rDLBXNucO8sFRFKXV8UxQVQZU=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    which
+  ];
+  buildInputs = [
+    curl
+    duktape
+    html-tidy
+    openssl
+    pcre
+    perl
+    quickjs
+    readline
+  ];
+
+  patches = [
+    # Fixes some small annoyances on src/makefile
+    ./0001-small-fixes.patch
+  ];
 
   postPatch = ''
-    for i in ./tools/*.pl
-    do
-      substituteInPlace $i --replace "/usr/bin/perl" "${perl}/bin/perl"
+    substituteInPlace src/makefile --replace\
+      '-L/usr/local/lib/quickjs' '-L${quickjs}/lib/quickjs'
+    for i in $(find ./tools/ -type f ! -name '*.c'); do
+      patchShebangs $i
     done
   '';
 
   makeFlags = [
     "-C" "src"
-    "prefix=${placeholder "out"}"
+    "PREFIX=${placeholder "out"}"
   ];
 
-  src = fetchFromGitHub {
-    owner = "CMB";
-    repo = "edbrowse";
-    rev = "v${version}";
-    sha256 = "0cw9d60mdhwna57r1vxn53s8gl81rr3cxnvm769ifq3xyh49vfcf";
-  };
   meta = with lib; {
+    homepage = "https://edbrowse.org/";
     description = "Command Line Editor Browser";
     longDescription = ''
-      Edbrowse is a combination editor, browser, and mail client that is 100% text based.
-      The interface is similar to /bin/ed, though there are many more features, such as editing multiple files simultaneously, and rendering html.
-      This program was originally written for blind users, but many sighted users have taken advantage of the unique scripting capabilities of this program, which can be found nowhere else.
-      A batch job, or cron job, can access web pages on the internet, submit forms, and send email, with no human intervention whatsoever.
-      edbrowse can also tap into databases through odbc. It was primarily written by Karl Dahlke.
-      '';
+      Edbrowse is a combination editor, browser, and mail client that is 100%
+      text based. The interface is similar to /bin/ed, though there are many
+      more features, such as editing multiple files simultaneously, and
+      rendering html. This program was originally written for blind users, but
+      many sighted users have taken advantage of the unique scripting
+      capabilities of this program, which can be found nowhere else. A batch
+      job, or cron job, can access web pages on the internet, submit forms, and
+      send email, with no human intervention whatsoever. edbrowse can also tap
+      into databases through odbc. It was primarily written by Karl Dahlke.
+    '';
     license = licenses.gpl1Plus;
-    homepage = "https://edbrowse.org/";
     maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
     platforms = platforms.linux;
   };
 }
+# TODO: send the patch to upstream developers
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
deleted file mode 100644
index 412ed59f2ac7..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, stdenv, fetchgit, emacs }:
-
-stdenv.mkDerivation {
-  name = "sunrise-commander-6r435";
-
-  src = fetchgit {
-    url = "https://github.com/escherdragon/sunrise-commander.git";
-    rev = "7a44ca7abd9fe79f87934c78d00dc2a91419a4f1";
-    sha256 = "2909beccc9daaa79e70876ac6547088c2459b624c364dda1886fe4d7adc7708b";
-  };
-
-  buildInputs = [ emacs ];
-
-  buildPhase = ''
-    emacs -L . --batch -f batch-byte-compile *.el
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/emacs/site-lisp
-    install *.el* $out/share/emacs/site-lisp
-  '';
-
-  meta = {
-    description = "Two-pane file manager for Emacs based on Dired and inspired by MC";
-    homepage = "http://www.emacswiki.org/emacs/Sunrise_Commander";
-    license = lib.licenses.gpl3Plus;
-
-    platforms = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix
deleted file mode 100644
index 237c05c5fa76..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ lib, stdenv, fetchurl, emacs, texinfo }:
-
-stdenv.mkDerivation rec {
-  name = "tramp-2.4.2";
-  src = fetchurl {
-    url = "mirror://gnu/tramp/${name}.tar.gz";
-    sha256 = "082nwvi99y0bvpl1yhn4yjc8a613jh1pdck253lxn062lkcxxw61";
-  };
-  buildInputs = [ emacs texinfo ];
-  meta = {
-    description = "Transparently access remote files from Emacs. Newer versions than built-in.";
-    homepage = "https://www.gnu.org/software/tramp";
-    license = lib.licenses.gpl3Plus;
-    platforms = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
new file mode 100644
index 000000000000..658a18c05867
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, emacs, lib }:
+
+stdenv.mkDerivation {
+  pname = "apheleia";
+  version = "2021-05-23";
+
+  src = fetchFromGitHub {
+    owner = "raxod502";
+    repo = "apheleia";
+    rev = "f865c165dac606187a66b2b25a57d5099b452120";
+    sha256 = "sha256-n37jJsNOGhSjUtQysG3NVIjjayhbOa52iTXBc8SyKXE=";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -L . --batch -f batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Reformat buffer stably";
+    homepage = "https://github.com/raxod502/apheleia";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ leungbk ];
+    platforms = emacs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
index 18dcef129cc2..18dcef129cc2 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedet/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix
index 3af53cda492f..3af53cda492f 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
index ce85e9be4e9a..ce85e9be4e9a 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index 76ca43aac8d3..946cef998c1e 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -238,10 +238,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "13.0.11";
+        version = "13.0.12";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-13.0.11.tar";
-          sha256 = "0sy4f1n38q58vyzw5l0f80ci3j99rb25gbwj0frl0pglfmgzl44k";
+          url = "https://elpa.gnu.org/packages/auctex-13.0.12.tar";
+          sha256 = "0fx3l6yyq63mlnapxiqpdhi5l314r3aj63404nly6hcdvc28g9nm";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -636,6 +636,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    consult = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "consult";
+        ename = "consult";
+        version = "0.8";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/consult-0.8.tar";
+          sha256 = "0vkq8dsj6k3gsdhiyg6ccv49fqgjw6f0db4wjsvm5zbkadjvlm86";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/consult.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     context-coloring = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "context-coloring";
@@ -655,10 +670,10 @@
       elpaBuild {
         pname = "corfu";
         ename = "corfu";
-        version = "0.4";
+        version = "0.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/corfu-0.4.tar";
-          sha256 = "0yaspx58w02n3liqy5i4lm6lk5f1fm6v5lfrzp7xaqnngq1f4gbj";
+          url = "https://elpa.gnu.org/packages/corfu-0.8.tar";
+          sha256 = "1qrrky1g4k5vw56435dgkwnmnri7i51gkydd76as3l0ixm4pnp05";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -816,6 +831,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    devdocs = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "devdocs";
+        ename = "devdocs";
+        version = "0.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/devdocs-0.1.tar";
+          sha256 = "1ps2jpp1ckq9839l63p6npqrf85b8zb5akwvjvv7fkm8nvspdkil";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/devdocs.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     dict-tree = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA, trie }:
       elpaBuild {
         pname = "dict-tree";
@@ -906,16 +936,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    dismal = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+    dismal = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "dismal";
         ename = "dismal";
-        version = "1.5";
+        version = "1.5.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dismal-1.5.tar";
-          sha256 = "1vhs6w6c2klsrfjpw8vr5c4gwiw83ppdjhsn2la0fvkm60jmc476";
+          url = "https://elpa.gnu.org/packages/dismal-1.5.2.tar";
+          sha256 = "0pl5cnziilm4ps1xzh1fa8irazn7vcp9nsxnxcvjqbkflpcpq5c7";
         };
-        packageRequires = [ cl-lib ];
+        packageRequires = [ cl-lib emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/dismal.html";
           license = lib.licenses.free;
@@ -985,10 +1015,10 @@
       elpaBuild {
         pname = "ebdb";
         ename = "ebdb";
-        version = "0.6.22";
+        version = "0.6.23";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ebdb-0.6.22.tar";
-          sha256 = "0dljl21n6508c7ash7l6zgxhpn2wdfzga0va63d4k9nwnqmkvsgz";
+          url = "https://elpa.gnu.org/packages/ebdb-0.6.23.tar";
+          sha256 = "0j3jvy9s606qjqcmcjzgck3dp8bhpgly2g00wnswzcgk4makdzld";
         };
         packageRequires = [ cl-lib emacs seq ];
         meta = {
@@ -1045,10 +1075,10 @@
       elpaBuild {
         pname = "eev";
         ename = "eev";
-        version = "20210102";
+        version = "20210607";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/eev-20210102.tar";
-          sha256 = "14vpgcncmzzbv8v78v221hdhigvk00vqiizwd8dy0b7hqz6gl0rq";
+          url = "https://elpa.gnu.org/packages/eev-20210607.tar";
+          sha256 = "0avd58m8630s4d3ys9g84csscdmf2y1swwwkgzjkrrq8q0j5yd3l";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1148,10 +1178,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.11";
+        version = "1.12";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.11.tar";
-          sha256 = "0s1mpapvcivy25zbhw6ghpg0ym23vb4dsrz876rl4z2rfyckxral";
+          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.12.tar";
+          sha256 = "0jzpzif4vrjg5hl0hxg4aqvi6nv56cxa1w0amnkgcz4hsscxkvwm";
         };
         packageRequires = [];
         meta = {
@@ -1159,16 +1189,21 @@
           license = lib.licenses.free;
         };
       }) {};
-    emms = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, seq }:
+    emms = callPackage ({ cl-lib ? null
+                        , elpaBuild
+                        , fetchurl
+                        , lib
+                        , nadvice
+                        , seq }:
       elpaBuild {
         pname = "emms";
         ename = "emms";
-        version = "7.1";
+        version = "7.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/emms-7.1.tar";
-          sha256 = "1dng8dy0w0wsdvvnjnrllwv5a8wq3kj20jik994b7prdx5dn6y52";
+          url = "https://elpa.gnu.org/packages/emms-7.2.tar";
+          sha256 = "11vqqh9rnzibsfw7wx62rgzl8i8ldpf0hv1sj43nhl5c6dlc8d5z";
         };
-        packageRequires = [ cl-lib seq ];
+        packageRequires = [ cl-lib nadvice seq ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/emms.html";
           license = lib.licenses.free;
@@ -1236,10 +1271,10 @@
       elpaBuild {
         pname = "excorporate";
         ename = "excorporate";
-        version = "0.9.6";
+        version = "1.0.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/excorporate-0.9.6.tar";
-          sha256 = "0ljav8g1npg0a36x1xxpfs2gvk622fh3si95s3w2vmwa27ynirzj";
+          url = "https://elpa.gnu.org/packages/excorporate-1.0.0.tar";
+          sha256 = "1g0wc2kp15ra323b4rxvdh58q9c4h7m20grw6a0cs53m7l9xi62f";
         };
         packageRequires = [
           cl-lib
@@ -1733,6 +1768,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    isearch-mb = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "isearch-mb";
+        ename = "isearch-mb";
+        version = "0.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/isearch-mb-0.3.tar";
+          sha256 = "01yq1skc6rm9yp80vz2fhh9lbkdb9nhf57h424mrkycdky2w50mx";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/isearch-mb.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     iterators = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "iterators";
@@ -1967,10 +2017,10 @@
       elpaBuild {
         pname = "leaf";
         ename = "leaf";
-        version = "4.4.4";
+        version = "4.4.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/leaf-4.4.4.tar";
-          sha256 = "1npg06zmy21kg2qsqgfm03l7vjib697i96awypcdb0hw5mvmc1a1";
+          url = "https://elpa.gnu.org/packages/leaf-4.4.8.tar";
+          sha256 = "0h0ksmgrhn29ci6z8y54dbbzcqlvfs1ra0kmf226gz0dqzk45vb3";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2098,6 +2148,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    marginalia = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "marginalia";
+        ename = "marginalia";
+        version = "0.6";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/marginalia-0.6.tar";
+          sha256 = "05pwaz9643shxnv63l6r9m2c0qf1nc1hy6jiqw01bkvvgg8g4jag";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/marginalia.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     markchars = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "markchars";
@@ -2256,10 +2321,10 @@
       elpaBuild {
         pname = "modus-themes";
         ename = "modus-themes";
-        version = "1.3.2";
+        version = "1.4.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-themes-1.3.2.tar";
-          sha256 = "085zi3ckf4s1kjskqb04b78rgrhbdhrrp74yksb5w0hl58bd8rsc";
+          url = "https://elpa.gnu.org/packages/modus-themes-1.4.0.tar";
+          sha256 = "0ssckl06jk08vaq4g7sxpzvc3ybm339fzbn9qw21w82v1l60rzpm";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2539,10 +2604,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.4.5";
+        version = "9.4.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-9.4.5.tar";
-          sha256 = "0h5qhrd984vf17qc227wz68191xfgbpq32dyhw0lcz2d9i0pl3xk";
+          url = "https://elpa.gnu.org/packages/org-9.4.6.tar";
+          sha256 = "1k49ymsi77366as2wi4kzv2f1xnbwpb47iw7iw07yxwlhmm7vskq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2764,10 +2829,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "1.0.2";
+        version = "1.0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/posframe-1.0.2.tar";
-          sha256 = "19a1dkjyw9m74aamyqrsvzrdwshngqpmjzdngx6v5nifvcilrlnk";
+          url = "https://elpa.gnu.org/packages/posframe-1.0.3.tar";
+          sha256 = "0c3lnrydsysv8j25brgc0cckf1hz54yhkginncmw81y1ia43rqmx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2824,10 +2889,10 @@
       elpaBuild {
         pname = "pyim";
         ename = "pyim";
-        version = "3.7.1";
+        version = "3.7.9";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/pyim-3.7.1.tar";
-          sha256 = "0k73f1qdl51qshnvycjassdh70id5gp5qi5wz7k4zyl8pbampiyd";
+          url = "https://elpa.gnu.org/packages/pyim-3.7.9.tar";
+          sha256 = "00ff1izdwcy53dcwpdn18wwndnw2jsw4bhg8gkqaa60xm468xzkl";
         };
         packageRequires = [ async emacs xr ];
         meta = {
@@ -3320,10 +3385,10 @@
       elpaBuild {
         pname = "shell-command-plus";
         ename = "shell-command+";
-        version = "2.1.0";
+        version = "2.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/shell-command+-2.1.0.tar";
-          sha256 = "1jyrnv89989bi03m5h8dj0cllsw3rvyxkiyfrh9v6gpxjwfy8lmq";
+          url = "https://elpa.gnu.org/packages/shell-command+-2.2.0.tar";
+          sha256 = "1ms2xk7xfgd3ngwm90hnmlxwpvyb167bislc2wr3ilfrirbbw476";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3714,10 +3779,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.5.0.4";
+        version = "2.5.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.5.0.4.tar";
-          sha256 = "0yk4ckk45gkjp24nfywz49j8pazq33m6pga3lirb5h6zc8an5z24";
+          url = "https://elpa.gnu.org/packages/tramp-2.5.0.5.tar";
+          sha256 = "1dclxffynfacvwi2scpda35sxjb42603yyf2p0477qa9b0i4xha0";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3759,10 +3824,10 @@
       elpaBuild {
         pname = "transient";
         ename = "transient";
-        version = "0.3.2";
+        version = "0.3.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/transient-0.3.2.tar";
-          sha256 = "10zqa245dn6z689z7ap6nx6q9s95whzgybpwl2slpmnawxix2q6i";
+          url = "https://elpa.gnu.org/packages/transient-0.3.4.tar";
+          sha256 = "1m71w52cr8f9wm6lybfa003w408lkrl6q9whs53hpp3pl5phhfvb";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3950,10 +4015,10 @@
       elpaBuild {
         pname = "vertico";
         ename = "vertico";
-        version = "0.6";
+        version = "0.11";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/vertico-0.6.tar";
-          sha256 = "19f6ffljraikz83nc2y9q83zjc4cfyzn9rnwm18lwh6sjsydz6kk";
+          url = "https://elpa.gnu.org/packages/vertico-0.11.tar";
+          sha256 = "0hzwddkac85i449173az8crlksj9ivrqf969r81kbr45ksgr1ij6";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4073,10 +4138,10 @@
       elpaBuild {
         pname = "webfeeder";
         ename = "webfeeder";
-        version = "1.1.1";
+        version = "1.1.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/webfeeder-1.1.1.tar";
-          sha256 = "09caj12hfdfhlbcsmjyhw728w1f7yq13hdslh793yvfqv83ipvc4";
+          url = "https://elpa.gnu.org/packages/webfeeder-1.1.2.tar";
+          sha256 = "1l128q424qsq9jv2wk8cv4zli71rk34q5kgwa9axdz0d27p9l6v4";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
index 034b698137b6..02a9a6e65622 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
@@ -5,8 +5,9 @@
 To update the list of packages from MELPA,
 
 1. Run `./update-elpa`.
-2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacs.pkgs.elpaPackages`.
-3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
+2. Check for evaluation errors:
+     `nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages`.
+3. Run `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
 
 ## Update from overlay
 
@@ -15,8 +16,8 @@ Alternatively, run the following command:
 ./update-from-overlay
 
 It will update both melpa and elpa packages using
-https://github.com/nix-community/emacs-overlay. It's almost
-instantenous and formats commits for you.
+https://github.com/nix-community/emacs-overlay. It's almost instantenous and
+formats commits for you.
 
 */
 
@@ -30,7 +31,7 @@ self: let
     });
   };
 
-  elpaBuild = import ../../../build-support/emacs/elpa.nix {
+  elpaBuild = import ../../../../build-support/emacs/elpa.nix {
     inherit lib stdenv texinfo writeText;
     inherit (self) emacs;
   };
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/emacs2nix.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacs2nix.nix
index e29a19713bdd..5d4c438bce90 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/emacs2nix.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacs2nix.nix
@@ -1,16 +1,16 @@
 let
-  pkgs = import ../../../.. { };
+  pkgs = import ../../../../.. { };
 
   src = pkgs.fetchgit {
     url = "https://github.com/ttuegel/emacs2nix.git";
     fetchSubmodules = true;
-    rev = "b815a9323c1f58f6c163a1f968939c57a8b6cfa0";
-    sha256 = "183xlmhjmj4z2zssc0pw990h7bf3bam8zqswnf1zcsyp8z7yrl5g";
+    rev = "860da04ca91cbb69c9b881a54248d16bdaaf9923";
+    sha256 = "1r3xmyk9rfgx7ln69dk8mgbnh3awcalm3r1c5ia2shlsrymvv1df";
   };
+in
+pkgs.mkShell {
 
-in pkgs.mkShell {
-
-  buildInputs = [
+  packages = [
     pkgs.bash
   ];
 
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/emacspeak/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix
index f2ae3712cac4..f2ae3712cac4 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/emacspeak/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix
index a92471a9493b..a92471a9493b 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
new file mode 100644
index 000000000000..74fc1a179219
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, emacs, emacsPackages, lib }:
+
+let
+  runtimeDeps = with emacsPackages; [
+    evil
+    markdown-mode
+  ];
+in
+stdenv.mkDerivation {
+  pname = "evil-markdown";
+  version = "2020-06-01";
+
+  src = fetchFromGitHub {
+    owner = "Somelauw";
+    repo = "evil-markdown";
+    rev = "064fe9b4767470472356d20bdd08e2f30ebbc9ac";
+    sha256 = "sha256-Kt2wxG1XCFowavVWtj0urM/yURKegonpZcxTy/+CrJY=";
+  };
+
+  buildInputs = [
+    emacs
+  ] ++ runtimeDeps;
+
+  propagatedUserEnvPkgs = runtimeDeps;
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -L . --batch -f batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Vim-like keybindings for markdown-mode";
+    homepage = "https://github.com/Somelauw/evil-markdown";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ leungbk ];
+    platforms = emacs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix
index fdb28f447192..fdb28f447192 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
new file mode 100644
index 000000000000..1b4da6340dc2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, emacs, lib }:
+
+stdenv.mkDerivation {
+  pname = "git-undo";
+  version = "2019-10-13";
+
+  src = fetchFromGitHub {
+    owner = "jwiegley";
+    repo = "git-undo-el";
+    rev = "cf31e38e7889e6ade7d2d2b9f8719fd44f52feb5";
+    sha256 = "sha256-cVkK9EF6qQyVV3uVqnBEjF8e9nEx/8ixnM8PvxqCyYE=";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -L . --batch -f batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Revert region to most recent Git-historical version";
+    homepage = "https://github.com/jwiegley/git-undo-el";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ leungbk ];
+    platforms = emacs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
index 0678492500d6..0678492500d6 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/hsc3/default.nix
index 3b20326d96f5..3b20326d96f5 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/hsc3/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ido-ubiquitous/default.nix
index eaa0f2c2a5b1..eaa0f2c2a5b1 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ido-ubiquitous/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix
new file mode 100644
index 000000000000..64cfbde98b77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, emacs, lib }:
+
+stdenv.mkDerivation {
+  pname = "isearch-plus";
+  version = "2021-01-01";
+
+  src = fetchFromGitHub {
+    owner = "emacsmirror";
+    repo = "isearch-plus";
+    rev = "376a8f9f8a9666d7e61d125abcdb645847cb8619";
+    sha256 = "sha256-Kd5vpu+mI1tJPcsu7EpnnBcPVdVAijkAeTz+bLB3WlQ=";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -L . --batch -f batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Extensions to isearch";
+    homepage = "https://www.emacswiki.org/emacs/download/isearch%2b.el";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ leungbk ];
+    platforms = emacs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
new file mode 100644
index 000000000000..0db28255f70c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, emacs, lib }:
+
+stdenv.mkDerivation {
+  pname = "isearch-prop";
+  version = "2019-05-01";
+
+  src = fetchFromGitHub {
+    owner = "emacsmirror";
+    repo = "isearch-prop";
+    rev = "4a2765f835dd115d472142da05215c4c748809f4";
+    sha256 = "sha256-A1Kt4nm7iRV9J5yaLupwiNL5g7ddZvQs79dggmqZ7Rk=";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -L . --batch -f batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Search text- or overlay-property contexts";
+    homepage = "https://www.emacswiki.org/emacs/download/isearch-prop.el";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ leungbk ];
+    platforms = emacs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jam-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix
index 0fd698ad2c16..0fd698ad2c16 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/jam-mode/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/libgenerated.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix
index 2ddafc4796c0..2ddafc4796c0 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/libgenerated.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/libgenerated.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index ef67cdbf61aa..7ccd96a9ca08 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/manual-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -3,20 +3,25 @@
   elisp-ffi = melpaBuild rec {
     pname = "elisp-ffi";
     version = "1.0.0";
+
     src = pkgs.fetchFromGitHub {
       owner = "skeeto";
       repo = "elisp-ffi";
       rev = version;
       sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22";
     };
+
     buildInputs = [ pkgs.libffi ];
+
     preBuild = "make";
+
     recipe = pkgs.writeText "recipe" ''
       (elisp-ffi
       :repo "skeeto/elisp-ffi"
       :fetcher github
       :files ("ffi-glue" "ffi.el"))
     '';
+
     meta = {
       description = "Emacs Lisp Foreign Function Interface";
       longDescription = ''
@@ -65,54 +70,55 @@
     };
   };
 
-  emacspeak = callPackage ./emacspeak {};
-
-  ess-R-object-popup =
-    callPackage ./ess-R-object-popup { };
-
-  font-lock-plus = callPackage ./font-lock-plus { };
-
   ghc-mod = melpaBuild {
     pname = "ghc";
     version = pkgs.haskellPackages.ghc-mod.version;
+
     src = pkgs.haskellPackages.ghc-mod.src;
+
     packageRequires = [ haskell-mode ];
+
     propagatedUserEnvPkgs = [ pkgs.haskellPackages.ghc-mod ];
+
     recipe = pkgs.writeText "recipe" ''
       (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
     '';
+
     fileSpecs = [ "elisp/*.el" ];
+
     meta = {
       description = "An extension of haskell-mode that provides completion of symbols and documentation browsing";
       license = bsd3;
     };
   };
 
+  git-undo = callPackage ./git-undo { };
+
   haskell-unicode-input-method = melpaBuild {
     pname = "emacs-haskell-unicode-input-method";
     version = "20110905.2307";
+
     src = pkgs.fetchFromGitHub {
       owner = "roelvandijk";
       repo = "emacs-haskell-unicode-input-method";
       rev = "d8d168148c187ed19350bb7a1a190217c2915a63";
       sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78";
     };
+
     recipe = pkgs.writeText "recipe" ''
       (emacs-haskell-unicode-input-method
        :repo "roelvandijk/emacs-haskell-unicode-input-method"
        :fetcher github)
     '';
+
     packageRequires = [];
+
     meta = {
       homepage = "https://melpa.org/#haskell-unicode-input-method/";
       license = lib.licenses.free;
     };
   };
 
-  helm-words = callPackage ./helm-words { };
-
-  jam-mode = callPackage ./jam-mode { };
-
   llvm-mode = trivialBuild {
     pname = "llvm-mode";
     inherit (pkgs.llvmPackages.llvm) src version;
@@ -140,6 +146,7 @@
     };
 
     patches = [
+      # Fix: avatar loading when imagemagick support is not available
       (pkgs.fetchpatch {
         url = "https://github.com/alphapapa/matrix-client.el/commit/5f49e615c7cf2872f48882d3ee5c4a2bff117d07.patch";
         sha256 = "07bvid7s1nv1377p5n61q46yww3m1w6bw4vnd4iyayw3fby1lxbm";
@@ -177,9 +184,6 @@
 
   };
 
-  org-mac-link =
-    callPackage ./org-mac-link { };
-
   ott-mode = self.trivialBuild {
     pname = "ott-mod";
 
@@ -193,11 +197,28 @@
     };
   };
 
-  perl-completion =
-    callPackage ./perl-completion { };
+  # Packages made the classical callPackage way
+
+  emacspeak = callPackage ./emacspeak { };
+
+  ess-R-object-popup = callPackage ./ess-R-object-popup { };
+
+  font-lock-plus = callPackage ./font-lock-plus { };
+
+  helm-words = callPackage ./helm-words { };
+
+  jam-mode = callPackage ./jam-mode { };
+
+  nano-theme = callPackage ./nano-theme { };
+
+  org-mac-link = callPackage ./org-mac-link { };
+
+  perl-completion = callPackage ./perl-completion { };
 
   pod-mode = callPackage ./pod-mode { };
 
+  power-mode = callPackage ./power-mode { };
+
   railgun = callPackage ./railgun { };
 
   structured-haskell-mode = self.shm;
@@ -206,51 +227,59 @@
 
   tramp = callPackage ./tramp { };
 
+  youtube-dl = callPackage ./youtube-dl { };
+
   zeitgeist = callPackage ./zeitgeist { };
 
   # From old emacsPackages (pre emacsPackagesNg)
   cedet = callPackage ./cedet { };
   cedille = callPackage ./cedille { cedille = pkgs.cedille; };
-  colorThemeSolarized = callPackage ./color-theme-solarized { };
-  emacsSessionManagement = callPackage ./session-management-for-emacs { };
+  color-theme-solarized = callPackage ./color-theme-solarized { };
+  session-management-for-emacs = callPackage ./session-management-for-emacs { };
   hsc3-mode = callPackage ./hsc3 { };
   ido-ubiquitous = callPackage ./ido-ubiquitous { };
   prolog-mode = callPackage ./prolog { };
-  rectMark = callPackage ./rect-mark { };
-  sunriseCommander = callPackage ./sunrise-commander { };
+  rect-mark = callPackage ./rect-mark { };
+  sunrise-commander = callPackage ./sunrise-commander { };
+
+  # camelCase aliases for some of the kebab-case expressions above
+  colorThemeSolarized = color-theme-solarized;
+  emacsSessionManagement = session-management-for-emacs;
+  rectMark = rect-mark;
+  sunriseCommander = sunrise-commander;
 
   # Legacy aliases, these try to mostly map to melpa stable because it's
   # closer to the old outdated package infra.
   #
   # Ideally this should be dropped some time during/after 20.03
+
+  autoComplete = self.melpaStablePackages.auto-complete;
   bbdb3 = self.melpaStablePackages.bbdb;
-  jade = self.jade-mode;
-  # scalaMode2 = null;  # No clear mapping as of now
-  flymakeCursor = self.melpaStablePackages.flymake-cursor;
+  colorTheme = self.color-theme;
   cryptol = self.melpaStablePackages.cryptol-mode;
+  d = self.melpaStablePackages.d-mode;
+  emacsw3m = self.w3m;
+  erlangMode = self.melpaStablePackages.erlang;
+  flymakeCursor = self.melpaStablePackages.flymake-cursor;
+  graphvizDot = self.melpaStablePackages.graphviz-dot-mode;
+  haskellMode = self.melpaStablePackages.haskell-mode;
+  hsc3Mode = self.hsc3-mode;
+  idris = self.melpaStablePackages.idris-mode;
+  jade = self.jade-mode;
+  js2 = self.melpaStablePackages.js2-mode;
+  loremIpsum = self.lorem-ipsum;
+  markdownMode = self.melpaStablePackages.markdown-mode;
   maudeMode = self.maude-mode;
   phpMode = self.melpaStablePackages.php-mode;
-  idris = self.melpaStablePackages.idris-mode;
+  prologMode = self.prolog-mode;
+  proofgeneral = self.melpaStablePackages.proof-general;
+  proofgeneral_HEAD = self.proof-general;
   rainbowDelimiters = self.melpaStablePackages.rainbow-delimiters;
-  colorTheme = self.color-theme;
   sbtMode = self.melpaStablePackages.sbt-mode;
-  markdownMode = self.melpaStablePackages.markdown-mode;
   scalaMode1 = self.melpaStablePackages.scala-mode;
-  prologMode = self.prolog-mode;
-  hsc3Mode = self.hsc3-mode;
-  graphvizDot = self.melpaStablePackages.graphviz-dot-mode;
-  proofgeneral_HEAD = self.proof-general;
-  proofgeneral = self.melpaStablePackages.proof-general;
-  haskellMode = self.melpaStablePackages.haskell-mode;
-  writeGood = self.melpaStablePackages.writegood-mode;
-  erlangMode = self.melpaStablePackages.erlang;
-  d = self.melpaStablePackages.d-mode;
-  autoComplete = self.melpaStablePackages.auto-complete;
-  tuaregMode = self.melpaStablePackages.tuareg;
+  # scalaMode2 = null;  # No clear mapping as of now
   structuredHaskellMode = self.melpaStablePackages.shm;
+  tuaregMode = self.melpaStablePackages.tuareg;
+  writeGood = self.melpaStablePackages.writegood-mode;
   xmlRpc = self.melpaStablePackages.xml-rpc;
-  emacsw3m = self.w3m;
-  loremIpsum = self.lorem-ipsum;
-  js2 = self.melpaStablePackages.js2-mode;
-
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
index e5e2bac964f3..051759cb8c74 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
@@ -4,11 +4,11 @@
 
 To update the list of packages from MELPA,
 
-1. Run ./update-melpa
+1. Run `./update-melpa`
 2. Check for evaluation errors:
-env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacs.pkgs..melpaStablePackages
-env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacs.pkgs..melpaPackages
-3. `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json`
+     env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
+     env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
+3. Run `git commit -m "melpa-packages $(date -Idate)" recipes-archive-melpa.json`
 
 ## Update from overlay
 
@@ -17,8 +17,8 @@ Alternatively, run the following command:
 ./update-from-overlay
 
 It will update both melpa and elpa packages using
-https://github.com/nix-community/emacs-overlay. It's almost
-instantenous and formats commits for you.
+https://github.com/nix-community/emacs-overlay. It's almost instantenous and
+formats commits for you.
 
 */
 
@@ -80,8 +80,8 @@ let
 
         auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: {
           buildInputs = old.buildInputs ++ [ pkgs.llvmPackages.llvm ];
-          CFLAGS = "-I${pkgs.llvmPackages.clang}/include";
-          LDFLAGS = "-L${pkgs.llvmPackages.clang}/lib";
+          CFLAGS = "-I${pkgs.llvmPackages.libclang.lib}/include";
+          LDFLAGS = "-L${pkgs.llvmPackages.libclang.lib}/lib";
         });
 
         # part of a larger package
@@ -116,6 +116,13 @@ let
           stripDebugList = [ "share" ];
         });
 
+        erlang = super.erlang.overrideAttrs (attrs: {
+          buildInputs = attrs.buildInputs ++ [
+            pkgs.perl
+            pkgs.ncurses
+          ];
+        });
+
         # https://github.com/syl20bnr/evil-escape/pull/86
         evil-escape = super.evil-escape.overrideAttrs (attrs: {
           postPatch = ''
@@ -188,7 +195,7 @@ let
           dontUseCmakeBuildDir = true;
           doCheck = true;
           packageRequires = [ self.emacs ];
-          nativeBuildInputs = [ pkgs.cmake pkgs.llvmPackages.llvm pkgs.llvmPackages.clang ];
+          nativeBuildInputs = [ pkgs.cmake pkgs.llvmPackages.llvm pkgs.llvmPackages.libclang ];
         });
 
         # tries to write a log file to $HOME
@@ -362,6 +369,7 @@ let
         zmq = super.zmq.overrideAttrs (old: {
           stripDebugList = [ "share" ];
           preBuild = ''
+            export EZMQ_LIBDIR=$(mktemp -d)
             make
           '';
           nativeBuildInputs = [
@@ -372,7 +380,7 @@ let
             (pkgs.zeromq.override { enableDrafts = true; })
           ];
           postInstall = ''
-            mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
+            mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-*
             rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
             rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
           '';
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix
new file mode 100644
index 000000000000..4a436339ebc4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, emacs, lib }:
+
+stdenv.mkDerivation {
+  pname = "mu4e-patch";
+  version = "2019-05-09";
+
+  src = fetchFromGitHub {
+    owner = "seanfarley";
+    repo = "mu4e-patch";
+    rev = "522da46c1653b1cacc79cde91d6534da7ae9517d";
+    sha256 = "sha256-1lV4dDuCdyCUXi/In2DzYJPEHuAc9Jfbz2ZecNZwn4I=";
+  };
+
+  buildInputs = [
+    emacs
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -L . --batch -f batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Colorize patch emails in mu4e";
+    homepage = "https://github.com/seanfarley/mu4e-patch";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ leungbk ];
+    platforms = emacs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
new file mode 100644
index 000000000000..8034f41a72d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, emacs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nano-theme";
+  version = "2021-06-05";
+
+  src = fetchFromGitHub {
+    owner = "rougier";
+    repo  = pname;
+    rev = "99ff1c5e78296a073c6e63b966045e0d83a136e7";
+    hash = "sha256-IDVnl4J4hx2mlLaiA+tKxxRGcIyBULr2HBeY/GMHD90=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/emacs/site-lisp
+    install *.el $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/rougier/nano-theme";
+    description = "GNU Emacs / N Λ N O Theme";
+    inherit (emacs.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
index 0114f4dc1801..b70032982c01 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "20210412";
+        version = "20210607";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20210412.tar";
-          sha256 = "17hj4y0c9hjqqa7inzjadz9z64vh621lm4cb0asm13r7d1v186yf";
+          url = "https://orgmode.org/elpa/org-20210607.tar";
+          sha256 = "178z9bnzcdaymnwxf0kkw1yzlzkj5dmdjjwdklc9qb9iv6rckfji";
         };
         packageRequires = [];
         meta = {
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "org-plus-contrib";
         ename = "org-plus-contrib";
-        version = "20210412";
+        version = "20210607";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20210412.tar";
-          sha256 = "162nl1a62l9d4nazply93sx4lih11845z87hxmpfd0n7i7s290mh";
+          url = "https://orgmode.org/elpa/org-plus-contrib-20210607.tar";
+          sha256 = "03liivgfcmp0lh6p57bh2gyn85n3sc4p91y374kq8kzc7fzrgzyr";
         };
         packageRequires = [];
         meta = {
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-mac-link/default.nix
index 600e44eb8abe..600e44eb8abe 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-mac-link/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix
index b60af0e9334b..dcddbe71af8b 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix
@@ -5,8 +5,8 @@
 To update the list of packages from Org (ELPA),
 
 1. Run `./update-org`.
-2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacs.pkgs.orgPackages`.
-3. `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
+2. Check for evaluation errors: `nix-instantiate ../../../../.. -A emacs.pkgs.orgPackages`.
+3. Run `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
 
 */
 
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/perl-completion/default.nix
index e14e5ed8cc23..e14e5ed8cc23 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/perl-completion/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/pod-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/pod-mode/default.nix
index 549633b7dfbd..549633b7dfbd 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/pod-mode/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/pod-mode/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
new file mode 100644
index 000000000000..035c906c8ab3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, emacs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "power-mode";
+  version = "2021-06-06";
+
+  src = fetchFromGitHub {
+    owner = "elizagamedev";
+    repo  = "power-mode.el";
+    rev = "940e0aa36220f863e8f43840b4ed634b464fbdbb";
+    hash = "sha256-Wy8o9QTWqvH9cP7xsTpF5QSd4mWNIPXJTadoADKeHWY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/emacs/site-lisp
+    install *.el $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/rougier/nano-theme";
+    description = "Imbue Emacs with power!";
+    inherit (emacs.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
index deac73a194ed..deac73a194ed 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
index 240a2f29edf3..240a2f29edf3 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index b24f79ed2608..1429040e4158 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
@@ -31,20 +31,20 @@
   "url": "https://git.sr.ht/~zge/nullpointer-emacs",
   "unstable": {
    "version": [
-    20201121,
-    1210
+    20210512,
+    1001
    ],
-   "commit": "996f822a7c6a7ff7caf49ee537e92c0d01be1f9c",
-   "sha256": "0fij6gz4188g7dr3gip1w5bc1947j45gf2xc2xl8gyg6hb9c7ycq"
+   "commit": "655846fd3ce772950d30167b4b9be6ce64502ae7",
+   "sha256": "0y4v72pmjjly2kxrrwks2z35qbc76109pnqpj637fpjr190c468l"
   },
   "stable": {
    "version": [
     0,
     4,
-    1
+    2
    ],
-   "commit": "996f822a7c6a7ff7caf49ee537e92c0d01be1f9c",
-   "sha256": "0fij6gz4188g7dr3gip1w5bc1947j45gf2xc2xl8gyg6hb9c7ycq"
+   "commit": "655846fd3ce772950d30167b4b9be6ce64502ae7",
+   "sha256": "0y4v72pmjjly2kxrrwks2z35qbc76109pnqpj637fpjr190c468l"
   }
  },
  {
@@ -198,19 +198,19 @@
   "repo": "ymarco/auto-activating-snippets",
   "unstable": {
    "version": [
-    20210316,
-    2027
+    20210605,
+    1143
    ],
-   "commit": "e2b3edafd7aafa8c47833a70984d7404c607626c",
-   "sha256": "0xg651vfjnq5dywg855wf7ld34gnfspql4b0b0413kydhh15fmxi"
+   "commit": "118ed7fc948b6d91eea727df35a1639521bf5fdb",
+   "sha256": "0qnsyvvb0knarvd4lvnzazf8y756iwx435zswym5lwsw5v847l8d"
   },
   "stable": {
    "version": [
-    0,
-    2
+    1,
+    0
    ],
-   "commit": "ffafc54e02475b9e7f7bcbe1d8ed3f11bcb4b542",
-   "sha256": "054sfzvm1ihaxy4hnhl424y5py8k7wi73rb0lqvbi4v8iphihzhr"
+   "commit": "3076cefea0f6ae9d7757f13c27b5602e007b58ec",
+   "sha256": "1psy6qpqxh6dm2ix7pwqdcq0rbiy6hyd830g76jk4wvj4spm5rpf"
   }
  },
  {
@@ -221,11 +221,11 @@
   "repo": "mkjunker/abc-mode",
   "unstable": {
    "version": [
-    20171020,
-    1019
+    20210508,
+    1552
    ],
-   "commit": "15691b32431b50f9106cb9fa50ee7244957a8ac8",
-   "sha256": "089l4rmxrnm4fmrbgw98rjigy3hzkx4lkw9hv8gn36cv2fp61h71"
+   "commit": "80fa954787b57d14e21e19bd65e52abab1686f4a",
+   "sha256": "0x7y2r5kijzg33jqlwym8lw1ivx00j3g7lzbl171wzyy3qn15bk5"
   },
   "stable": {
    "version": [
@@ -279,11 +279,11 @@
   "repo": "jdtsmith/abridge-diff",
   "unstable": {
    "version": [
-    20200917,
-    1754
+    20210519,
+    322
    ],
-   "commit": "3015630a2fcb2d0f8dc532da4549fad060579b8d",
-   "sha256": "1kwwnba9kvmknrkyznhi7ykkcacggi9q7haplbxf02l6a46652lv"
+   "commit": "fb1fe91ab8ec75dcd52130c38f13759f19d20fe9",
+   "sha256": "05fqxsk0fk6llc5sgk4gqnpx4xy598nyl2kkjv6rhld2xjaps3q9"
   },
   "stable": {
    "version": [
@@ -310,8 +310,8 @@
     "flymake",
     "maude-mode"
    ],
-   "commit": "c9b7a2af3232aad8a51138194544c9a427cf46ca",
-   "sha256": "0h8assjgwwcgnqhlndsc86z9lc1nzlglhvhzxdnkz2ksk90n85q1"
+   "commit": "3b332ec1e941874f220897e5c0e0a6df762ca28d",
+   "sha256": "0m7v87w2akdpgr360gyjiw0p5sc6ms3y9bccwi9j4jz4gnlix6l5"
   },
   "stable": {
    "version": [
@@ -510,15 +510,15 @@
   "repo": "atilaneves/ac-dcd",
   "unstable": {
    "version": [
-    20210329,
-    1928
+    20210428,
+    1556
    ],
    "deps": [
     "auto-complete",
     "flycheck-dmd-dub"
    ],
-   "commit": "56cdead8c9d2ca64db1f24c59d005ba8b3780bd5",
-   "sha256": "1z38mg76376xac3rnamzhhmx4h4yzn89xycx7kk51vkcjffjzvg6"
+   "commit": "56d9817159acdebdbb3d5499c7e9379d29af0cd4",
+   "sha256": "0p5cjs156ac1x3fsxnb4kc6bd4z09kdkwkyav9ryw5nkrdzv0bd6"
   },
   "stable": {
    "version": [
@@ -1036,15 +1036,15 @@
    "version": [
     2,
     4,
-    0
+    1
    ],
    "deps": [
     "ac-php-core",
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
-   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   }
  },
  {
@@ -1073,7 +1073,7 @@
    "version": [
     2,
     4,
-    0
+    1
    ],
    "deps": [
     "dash",
@@ -1083,8 +1083,8 @@
     "s",
     "xcscope"
    ],
-   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
-   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   }
  },
  {
@@ -1597,17 +1597,17 @@
  },
  {
   "ename": "acme-theme",
-  "commit": "0bf14d91ff89556671b175d5f7e71066f27cb73d",
-  "sha256": "0zsrqvhly3si2qkvc4rhki89r2z185l684wf7j9kx32fgaaqanac",
+  "commit": "1b9a64eee8e5b3f75f873654fd6102fc4aaf5e10",
+  "sha256": "09079yjzc9dk052r5fjq9sxps2yld6rl36k6f58xj2rvghzdsbwc",
   "fetcher": "github",
-  "repo": "ianpan870102/acme-emacs-theme",
+  "repo": "ianyepan/acme-emacs-theme",
   "unstable": {
    "version": [
-    20200724,
-    1833
+    20210430,
+    302
    ],
-   "commit": "e416ec678be72eb1aed3de3d88a8a9e3ee7315ca",
-   "sha256": "0y98il3gsnhm586hr1qdmif4r6v1987fzl82wgx75g8kiy5shbrj"
+   "commit": "7c408d111c5e451ecb8fdd5f76cf7d8074aec793",
+   "sha256": "16qxspzlf0bvw36ff4qnrn5p7mc5sf923ba0ar04cr87bfqgyak4"
   },
   "stable": {
    "version": [
@@ -1786,11 +1786,11 @@
   "repo": "louabill/ado-mode",
   "unstable": {
    "version": [
-    20210219,
-    1548
+    20210510,
+    1902
    ],
-   "commit": "438e2b9ca1ce9fd1043998359dfe5a32a0ddb6d0",
-   "sha256": "1fpk7lc5z9v8an9x8j1v3l2pkbg93368qv23jzsqs84r3ndw5b7k"
+   "commit": "4832a51c2e94e969a99817ccdd13d656344d0afc",
+   "sha256": "0iyijlyj1d7k5m9mk3blb4wlam652487jhayrmgfy25snqd8b0sm"
   },
   "stable": {
    "version": [
@@ -1856,6 +1856,24 @@
   }
  },
  {
+  "ename": "affe",
+  "commit": "84b0a313d4246b6e0c0541300a62c4ed37a71cbf",
+  "sha256": "1x0w6zl8ivv2lbj3qncqmvgh09p8q5zljhqxylsi3kc13xkv9d0p",
+  "fetcher": "github",
+  "repo": "minad/affe",
+  "unstable": {
+   "version": [
+    20210603,
+    1139
+   ],
+   "deps": [
+    "consult"
+   ],
+   "commit": "dee51350e1d7d3cfbfb12069dea9246454a3df31",
+   "sha256": "1dpzwwbkwxmkh430hk3w9p6z1rwns5znzbar071h95gi7phyhm2x"
+  }
+ },
+ {
   "ename": "afternoon-theme",
   "commit": "583256b7fa48501c8bfad305d76d2e16b6441539",
   "sha256": "13xgdw8px58sxpl7nyhkcdxwqdpp13i8wghvlb3l4471plw3vqgj",
@@ -1911,25 +1929,30 @@
   "repo": "agda/agda",
   "unstable": {
    "version": [
-    20210220,
-    2039
+    20210505,
+    1142
    ],
    "deps": [
     "annotation",
     "eri"
    ],
-   "commit": "3e079614f2b4810ff5920ae69a389da91c855217",
-   "sha256": "1jn0kp33b77lskhi02d0jm0rpcgxhrpxdj82bmr7vi7m199p5jn0"
+   "commit": "044843c5281a7bdb9479317793a75c8c0fcfadd9",
+   "sha256": "04lirb2p1h46c1l84ysdnr2jxvzsdw1zv6jhm7h8ybgzmaa65b6m"
   },
   "stable": {
    "version": [
     2,
     6,
     1,
-    3
+    3,
+    20210605
    ],
-   "commit": "e5486b79cc78689e3fd07b6c924d0085063915ea",
-   "sha256": "1zl7c0rb5rg867a431apxlzj2flg3hjidamqa5prc1bzpmfaywyz"
+   "deps": [
+    "annotation",
+    "eri"
+   ],
+   "commit": "ab805592a0ae7066fbd5fa5f47e933194fce878f",
+   "sha256": "19ld12x4is0nx52i05zv20js0zysx3bljbdn2nr65vy11dq2cyyp"
   }
  },
  {
@@ -2015,11 +2038,11 @@
   "url": "https://bitbucket.org/agriggio/ahg",
   "unstable": {
    "version": [
-    20200304,
-    741
+    20210412,
+    847
    ],
-   "commit": "0ece48646ef7a8c813005934cc13f984b9998707",
-   "sha256": "0ypck79bmv4pa8l555kgij69jbpkv4fz9w91qs30lacjmrj0nha5"
+   "commit": "77bc2a628df006dcd2dc359ac12acdf8091a1356",
+   "sha256": "1wmvz9d40aznqh2y078v8k7n3l66m48vnf873vifi8rwg6158kqh"
   }
  },
  {
@@ -2287,6 +2310,32 @@
   }
  },
  {
+  "ename": "alectryon",
+  "commit": "4f7b6099b9167840602515f10ab02e70defbee1e",
+  "sha256": "0q1dsnrjak49dlmwkns79n996ip6zsdsv4k2ifgd9r8fd9yxki22",
+  "fetcher": "github",
+  "repo": "cpitclaudel/alectryon",
+  "unstable": {
+   "version": [
+    20210518,
+    1550
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "df5664e71c1026af4aaf69e6b227d427a728e7c6",
+   "sha256": "1czy3sbwm6lfrgdbj0y12q4n70w6zg8g3y27iz1zr4y20hhcp2zk"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "55fc849cdb7a05bbaab6f9359386d8830bdcfb87",
+   "sha256": "0v5jfmqcvridh8z7y8i5hklybfxicgmbnambi21ml34px3p9fldc"
+  }
+ },
+ {
   "ename": "alert",
   "commit": "113953825ac4ff98d90a5375eb48d8b7bfa224e7",
   "sha256": "0x3cvczq09jvshz435jw2fjm69457x2wxdvvbbjq46nfnybhi118",
@@ -2378,23 +2427,20 @@
   "repo": "domtronn/all-the-icons.el",
   "unstable": {
    "version": [
-    20210411,
-    1650
+    20210603,
+    1604
    ],
-   "commit": "07a4f7315bf5dd609f95e18390a9707b5a29fe9c",
-   "sha256": "0z0bqs2cqwndkjaiv301l1n4i1g7h6v89cl95inilfxxkyxhbzig"
+   "commit": "facbde4a7be292bf9490932cbe403b443273f45d",
+   "sha256": "0lwgvgnqf7vihglm0c5bwsxbl4x7f641289cji5s7jwy2dbsqk7g"
   },
   "stable": {
    "version": [
-    4,
+    5,
     0,
-    1
-   ],
-   "deps": [
-    "memoize"
+    0
    ],
-   "commit": "d363bb3e73909be013fcf35e1458bb654ec5bbaa",
-   "sha256": "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"
+   "commit": "facbde4a7be292bf9490932cbe403b443273f45d",
+   "sha256": "0lwgvgnqf7vihglm0c5bwsxbl4x7f641289cji5s7jwy2dbsqk7g"
   }
  },
  {
@@ -2405,14 +2451,14 @@
   "repo": "wyuenho/all-the-icons-dired",
   "unstable": {
    "version": [
-    20210411,
-    1226
+    20210422,
+    921
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "07f035d2f6df4f1e840572784a96f5b407a74680",
-   "sha256": "134p5wz5jgbwfri6ihwf4p8xxbdmwwzpkklxn195gl46r2zqnnwx"
+   "commit": "a294f45ec2c338e1255ae2dd98b19f3f143204e6",
+   "sha256": "1m3gqsgybx57qhdlswbn92cnsz9w10sqfzs2lnja63hzwzwxjg92"
   }
  },
  {
@@ -2504,28 +2550,28 @@
   "repo": "seagle0128/all-the-icons-ivy-rich",
   "unstable": {
    "version": [
-    20210405,
-    1824
+    20210605,
+    1700
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "e7775f85a2bb9c13a4c55417ae8d6f16477e3ca0",
-   "sha256": "0jys6kvwgkf04cyzxh5r2g38qfcpqas4qqyqqkmp8z8vc68fnwz0"
+   "commit": "e0eba9cb8f8c85c0b63434f6117f9fa232d8a890",
+   "sha256": "05a53s7v1vy688gwnn01p3flqlhznp2m0k1mg8ax4hjygyc05l8q"
   },
   "stable": {
    "version": [
     1,
-    4,
+    5,
     1
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "e918b23d55313a7464d8cb5d45eb917249638e32",
-   "sha256": "1wz3dgn8cggdkijzm7qf13g3s9gmz6v895bjck7sdhmr5mbr28a4"
+   "commit": "0138c7e7f3b7a6c09665e45a6dd2168359efd47c",
+   "sha256": "0nbbkasbklxf62rx9mc5w37r014vdbbg3vm5dy03hxzvq3y1yrpn"
   }
  },
  {
@@ -3104,11 +3150,11 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20210322,
-    1739
+    20210519,
+    1401
    ],
-   "commit": "54ac759facadacbfea5c1e7c2975e2da6434cdda",
-   "sha256": "18pr4bympwl6c2a1bsk4s8ixg4l7ykcxfh1bk42vvbcqnbmvd7dw"
+   "commit": "b22f594f3b813b12e442860344d2feb39d944b53",
+   "sha256": "1911j82vw8pp58byc41v2fhbjvr3l9rdjqa46gs757xssh0g8jal"
   },
   "stable": {
    "version": [
@@ -3146,18 +3192,19 @@
     20200914,
     644
    ],
-   "commit": "3e079614f2b4810ff5920ae69a389da91c855217",
-   "sha256": "1jn0kp33b77lskhi02d0jm0rpcgxhrpxdj82bmr7vi7m199p5jn0"
+   "commit": "044843c5281a7bdb9479317793a75c8c0fcfadd9",
+   "sha256": "04lirb2p1h46c1l84ysdnr2jxvzsdw1zv6jhm7h8ybgzmaa65b6m"
   },
   "stable": {
    "version": [
     2,
     6,
     1,
-    3
+    3,
+    20210605
    ],
-   "commit": "e5486b79cc78689e3fd07b6c924d0085063915ea",
-   "sha256": "1zl7c0rb5rg867a431apxlzj2flg3hjidamqa5prc1bzpmfaywyz"
+   "commit": "ab805592a0ae7066fbd5fa5f47e933194fce878f",
+   "sha256": "19ld12x4is0nx52i05zv20js0zysx3bljbdn2nr65vy11dq2cyyp"
   }
  },
  {
@@ -3444,11 +3491,11 @@
   "repo": "emacs-php/apache-mode",
   "unstable": {
    "version": [
-    20190711,
-    1111
+    20210519,
+    1931
    ],
-   "commit": "a66dc1f246cd4ce0960773989bc43188f0394948",
-   "sha256": "0d0wc2zhwxy6ag8hh6g6k7dqpxf5yilxkaziy26pp5khryb7j7p9"
+   "commit": "f2c11aac2f5fc598123e04f4604bea248689a117",
+   "sha256": "1hcgfp4gav0dzjw38sl35b58hb2rlpmlckvam8fsqlxgszv50cza"
   },
   "stable": {
    "version": [
@@ -3468,11 +3515,11 @@
   "repo": "dieter-wilhelm/apdl-mode",
   "unstable": {
    "version": [
-    20201024,
-    1900
+    20210423,
+    1115
    ],
-   "commit": "178af26baac72890fca1904aa9e9c90bc1668a4c",
-   "sha256": "1mkhjp9i4zhbxj72915g6b976dz7jmzyn2ma9x6n85psi3v7ldk1"
+   "commit": "5e9de43494cc307a3b43b0eebf774c03670a4582",
+   "sha256": "00lz9mcxcmlgnnbc05b49arxa2fcckjhsxdcqi66v66zn9h8kr13"
   },
   "stable": {
    "version": [
@@ -3644,11 +3691,11 @@
   "repo": "waymondo/apropospriate-theme",
   "unstable": {
    "version": [
-    20210408,
-    1935
+    20210514,
+    1710
    ],
-   "commit": "a21c143b7cc92a0d8402955d079fc78c4140c2ff",
-   "sha256": "04zs9785b7j16gcgbi26xcl6bhmclprz5pj1jzb40igy7f2kwyqs"
+   "commit": "b17a8ce0686848ffd7c6d20aa66bf2e97b7ce3e5",
+   "sha256": "0lba49k05kvx63yxcc3nqmiy2bbp7cl81zfap346kwgwss9fbgx5"
   },
   "stable": {
    "version": [
@@ -3775,11 +3822,11 @@
   "repo": "motform/arduino-cli-mode",
   "unstable": {
    "version": [
-    20210321,
-    1641
+    20210511,
+    653
    ],
-   "commit": "1724860a6a930a539472bb56bc3cae0e317dc055",
-   "sha256": "184phkylr4ax586glx7qx2f8yfdbbjx94vwq698z2yxs4jphni91"
+   "commit": "a93de7e8fef202163df4657f2ab522b57f70f202",
+   "sha256": "1jmwjz1ldr0lgh3vvpn8y6qzpqzavmdqcgf9jz4sx0v8nd5hr4pn"
   }
  },
  {
@@ -3790,14 +3837,14 @@
   "repo": "stardiviner/arduino-mode",
   "unstable": {
    "version": [
-    20210216,
-    926
+    20210527,
+    1341
    ],
    "deps": [
     "spinner"
    ],
-   "commit": "969b49ef6c954a067b3cbca43a4cdc1c04b1a62a",
-   "sha256": "0cjygkddlla2ygiyn506mwqjfn52lqpwfbv1fbwcqljvfspc65am"
+   "commit": "d7c87812c205bc01c8c8a7ab02f201b6138c7e57",
+   "sha256": "08hjyxz187hc07d0g8s7z7d3pa2z9f8lwdzramki95gm27q08n4y"
   }
  },
  {
@@ -4031,11 +4078,11 @@
   "repo": "jwiegley/emacs-async",
   "unstable": {
    "version": [
-    20210117,
-    718
+    20210501,
+    1527
    ],
-   "commit": "d7e7f79ee42311a0187aa2ab4f4e2f8843fa28da",
-   "sha256": "11r6jzqyywgzxmpq2z97j3ni5b1sv6z5lrjmkqip396bxmw9zxm1"
+   "commit": "9a8cd0c3d5c120bfa03187c54dba6e33f6e3ca19",
+   "sha256": "1s2gdilaf38m2dg6nm4kcz5n4n455a9127pl4cbz9lg7mp3l2pg5"
   },
   "stable": {
    "version": [
@@ -4237,8 +4284,8 @@
   "repo": "jyp/attrap",
   "unstable": {
    "version": [
-    20210407,
-    1826
+    20210426,
+    1348
    ],
    "deps": [
     "dash",
@@ -4246,8 +4293,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "4b088698ec81f7cd0f715b30e280b37e3881b91d",
-   "sha256": "1jil04a69fx946vh6f81x3ki84jmmdfz7g3c9v4phddz58clb1sb"
+   "commit": "a5bc695af27349ae6fe4541a581e6fd449d2a026",
+   "sha256": "06j1cpqmplh1xy5aal8fk7r8s42jf3zlk92mh3lll9knx81xix9q"
   },
   "stable": {
    "version": [
@@ -4414,6 +4461,62 @@
   }
  },
  {
+  "ename": "auth-source-keytar",
+  "commit": "4ba6f96ca2e20dcd75cf239370243bd8e484f851",
+  "sha256": "1wizylkfzsbkavqr7m88vnwgrikj8hd6v01x06k1c5kpwdggvyqv",
+  "fetcher": "github",
+  "repo": "emacs-grammarly/auth-source-keytar",
+  "unstable": {
+   "version": [
+    20210516,
+    556
+   ],
+   "deps": [
+    "keytar",
+    "s"
+   ],
+   "commit": "9ecdd6226b50a1a04675b65589e6cc36fd3aea2c",
+   "sha256": "04vr0i4y9i96vm1pliac8snnvlwqzafy7xrq39wpvhvd99qr4845"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    3
+   ],
+   "deps": [
+    "keytar",
+    "s"
+   ],
+   "commit": "6edf8ec86d74f1e9853da23052291cc28d2df8bc",
+   "sha256": "0vj2rfm516w9b4l0jwj6m9z1liqmddfmschsz2hc9i0zg1y312l5"
+  }
+ },
+ {
+  "ename": "auth-source-kwallet",
+  "commit": "047cc780e55a0f574afaf7fa0d94c31ed86cb57f",
+  "sha256": "1fz63fdfw3cm8k59nxnbsaiylbs0nn5f250fwwfh51bknrqj3vin",
+  "fetcher": "github",
+  "repo": "vaartis/auth-source-kwallet",
+  "unstable": {
+   "version": [
+    20210605,
+    1032
+   ],
+   "commit": "053ed5e964acaf6f16a1708c36d812eeb7c1817d",
+   "sha256": "0jqn49wqhg3qh6m76zc65z37kaw562laifjjj8lhi9g3f86sldsp"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "commit": "1309cfcd00264a2bb8e0d1b435d4d03e3e02f314",
+   "sha256": "182wks10k0z1h24lkqx2rrs78f33rzarcq4s0r69cc6w67vj0fra"
+  }
+ },
+ {
   "ename": "auth-source-pass",
   "commit": "6e63342b442794ead4d8bed803b0924d9cd26dc4",
   "sha256": "10l3kbffy08fh0krwvh4gn75k37criv2ma5hgkadvq1s2p5ps8r6",
@@ -4424,8 +4527,8 @@
     20210210,
     1908
    ],
-   "commit": "468bba286fc20d739ed7724ec884357907ac8bda",
-   "sha256": "1pazl19rd4fvnfi9i2ssaygby5pw2a821aysy8jswsij57lw40dy"
+   "commit": "fa8b964494c1ef42035fad340ff5f29fcdbed21c",
+   "sha256": "0fn30iy1jy0kh09652a0fn7zg93cf3xvs2bz28lml7knj2hbqi2r"
   },
   "stable": {
    "version": [
@@ -4502,26 +4605,26 @@
   "repo": "emacscollective/auto-compile",
   "unstable": {
    "version": [
-    20201122,
-    1157
+    20210518,
+    1020
    ],
    "deps": [
     "packed"
    ],
-   "commit": "4952a1a1cadf1bdf7018610a71f8c3acb67962c2",
-   "sha256": "17p7jmr8qd3hgx79iiljsi2kpy24g8v2ynxiz023wanasxr6bdc6"
+   "commit": "3af0b02393ca4f207f1e454161f7bd8a747f3051",
+   "sha256": "1h2iv14ppj5pqbnb7z7xvw1jm3cmis10jpqnd6miax1s6jlm8z0r"
   },
   "stable": {
    "version": [
     1,
     6,
-    1
+    2
    ],
    "deps": [
     "packed"
    ],
-   "commit": "f8619d1616b523918323914ec77bfbee2c559781",
-   "sha256": "1qcszjjqkq811p8pafjx0knm4giv7dls4x1xamhzbndjz0d022kz"
+   "commit": "ec4c700f5a7d6af6992b50d7b309c8d9a7c07a7c",
+   "sha256": "0b3g81hwaz0qjlzfhqfx0k60injbfka965mc5y4dzlrph00x7slm"
   }
  },
  {
@@ -5008,11 +5111,11 @@
   "repo": "jcs-elpa/auto-rename-tag",
   "unstable": {
    "version": [
-    20201012,
-    630
+    20210418,
+    1758
    ],
-   "commit": "88c5236280ff8212ff5c74f3e2e654c1a288dbf2",
-   "sha256": "0q584zrqyz8cc8ib5rll44qvf30xsrjnmdz7yipzqjbvciv6kh7g"
+   "commit": "8dbf13b344f6d5eba5c4876b18905d30b3118bb9",
+   "sha256": "1nlwg78d60w6xjpqhrc49nxxvjaxj07wb036rb5jsng9yb6r94m9"
   },
   "stable": {
    "version": [
@@ -5079,26 +5182,26 @@
   "repo": "ncaq/auto-sudoedit",
   "unstable": {
    "version": [
-    20200427,
-    635
+    20210522,
+    612
    ],
    "deps": [
     "f"
    ],
-   "commit": "0ad8247fdd0f1d747cd1ff73adb6b5efcecc7f3b",
-   "sha256": "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"
+   "commit": "0dec9e632f1f3208f0da2f94b57efa1aae9ce2ab",
+   "sha256": "1isk9106lpdh45l41n2v8q8m9vcfb4biy9dv87rkks58nysrxy3z"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "f"
    ],
-   "commit": "0ad8247fdd0f1d747cd1ff73adb6b5efcecc7f3b",
-   "sha256": "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"
+   "commit": "738fd22452f00fa05daf200f997cb5db2531a211",
+   "sha256": "1rhdvrj2rjbvl7vkb0wcp6krqxcaigl7jk9z8yvhx6s4cm2qli6q"
   }
  },
  {
@@ -5216,14 +5319,14 @@
   "url": "https://git.sr.ht/~zge/autocrypt",
   "unstable": {
    "version": [
-    20210411,
-    1759
+    20210412,
+    1127
    ],
    "deps": [
     "cl-generic"
    ],
-   "commit": "39c06eb4020c38de8f282340449691210cc23bb8",
-   "sha256": "0gvdjgfnisx1acy5jmzs82yngmnmiimq1ralbvw9a28knlsdbnig"
+   "commit": "5b55f8d37545e9c441788627c17e350d7edf4055",
+   "sha256": "0b06xnjkgwjpxl96mdi674pmvdaiwncifi1a30wxhl1dwr7kr084"
   }
  },
  {
@@ -5273,36 +5376,6 @@
   }
  },
  {
-  "ename": "autopair",
-  "commit": "4150455d424326667390f72f6edd22b274d9fa01",
-  "sha256": "0l2ypsj3dkasm0lj9jmnaqjs3rv97ldfw8cmayv77mzfd6lhjmh3",
-  "fetcher": "github",
-  "repo": "joaotavora/autopair",
-  "unstable": {
-   "version": [
-    20160304,
-    1237
-   ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "2b6d72bccb0ebba6e7e711528872b898b0c65b0a",
-   "sha256": "09p56vi5zgm2djglimwyhv4n4gyydjndzn46vg9qzzlxvvmw66i1"
-  },
-  "stable": {
-   "version": [
-    0,
-    6,
-    1
-   ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "2d1eb81d12f71248ad305e70cceddf08d4fe2b39",
-   "sha256": "0g6kd1r0wizamw26bhp5jkvpsd98rcybkfchc622b9v5b89a07nq"
-  }
- },
- {
   "ename": "autotest",
   "commit": "5fc2c4a590cbeccfb43003972a78f5d76ec4a9e7",
   "sha256": "0f46m5pc40i531dzfnhkcn192dcs1q20y083c1c0wg2zhjcdr5iy",
@@ -5313,8 +5386,8 @@
     20190331,
     2230
    ],
-   "commit": "74e1fcbeca25734235afec9c6a4d0cf73736b62c",
-   "sha256": "0yrcsr4360v222klahbccfq3vb4kp5xdsibydwircv36xhxplzq3"
+   "commit": "2d76365d2aa13543121d5c623df465adb68b76f7",
+   "sha256": "1n247g5dq73rkxf0wys5lsbvma44y5qlh577s3rcx7l0yrylwdry"
   }
  },
  {
@@ -5350,8 +5423,8 @@
     "cl-lib",
     "dash"
    ],
-   "commit": "69488c71dfc182cf2e7be2d745037f230ade678e",
-   "sha256": "0l3xsnp5j46jcjc1nkfbfg0pyzdi94rn0h5idfpqikj6f3ralh10"
+   "commit": "8ec0c27a73b2d0a335eda63fde695a101e2956b2",
+   "sha256": "1m2r5fg5r4gqhim5l1g5937ngkc2hvidb5kr8r4pffcg8xv8djgn"
   },
   "stable": {
    "version": [
@@ -5405,11 +5478,11 @@
   "repo": "avkoval/avk-emacs-themes",
   "unstable": {
    "version": [
-    20201223,
-    750
+    20210521,
+    1051
    ],
-   "commit": "d5471776c01a2bdf2a1fa255a79447489cf68e65",
-   "sha256": "1m1s7fzl8hxzkx0672l62jpkak0v8vdyb7l6nmw9648rww78gzyl"
+   "commit": "7b9b6517873c4d4d73e6e34ca56c54062db60759",
+   "sha256": "0vah74474x9wby36hxi7jpmlr3q1zra33lkidvxf4xh9nsliqnqn"
   }
  },
  {
@@ -5457,8 +5530,8 @@
     "avy",
     "embark"
    ],
-   "commit": "a005eef82a63950927a68a5ef79b33d25245687b",
-   "sha256": "1dy01y87bqjddsdjqhmp6m144azn72yswsj0prywm5alxypck9lg"
+   "commit": "ef609bf15368a68c4eb3c46fd8cc1bb623b6b83e",
+   "sha256": "0ddh7zqgaq07534l6m3wjvbcj23a01h3x7scd4pl5rj6wyxqwv76"
   },
   "stable": {
    "version": [
@@ -5698,11 +5771,11 @@
   "repo": "juergenhoetzel/babel",
   "unstable": {
    "version": [
-    20201210,
-    1626
+    20210520,
+    501
    ],
-   "commit": "5db131f1edb85a31202fd77ed2fb8f68c0233845",
-   "sha256": "0s1p3w62hmpk1ifr0ciwhxfwdi5m48qqr4glqqbkfbhr8yv60r2h"
+   "commit": "1f68c175e8a3223f37858167239051e9ab9e540c",
+   "sha256": "1b13pfxabfcl8p3j6bw6c5m2njzignab4p6fzxfmfpsvrq5yjzfz"
   },
   "stable": {
    "version": [
@@ -5775,11 +5848,11 @@
   "repo": "mschuldt/backlight.el",
   "unstable": {
    "version": [
-    20200813,
-    1839
+    20210513,
+    129
    ],
-   "commit": "38fcb9256c3bf7300a41332fa7f9feffc4e2db9a",
-   "sha256": "0982il82v10yclm87b06ghwv4cglw03ia0zs4m838ag6zg8a08jg"
+   "commit": "b6826a60440d8bf440618e3cdafb40158de920e6",
+   "sha256": "0nj5l0wwza1j908n9k0896b972b84s401szkgb0acf4fs834vc0w"
   }
  },
  {
@@ -5944,30 +6017,6 @@
   }
  },
  {
-  "ename": "bang",
-  "commit": "d9830cce42339243091f4463490954a8a955c65f",
-  "sha256": "1dx1130095ij09ix20jyqradkjw9gpdfpw0d9f3krrx6xjqfn2sk",
-  "fetcher": "git",
-  "url": "https://git.sr.ht/~zge/bang",
-  "unstable": {
-   "version": [
-    20210405,
-    1640
-   ],
-   "commit": "b5252a77aed6d1c533367fde0f11d6901bf23d96",
-   "sha256": "1m0wmcm1akdk19vf132y1g6wjdx9kgschf66qgggd97gl50za5ab"
-  },
-  "stable": {
-   "version": [
-    1,
-    0,
-    3
-   ],
-   "commit": "e02338331463461a85144c0ce6b9b877bd3a7567",
-   "sha256": "1rvgmkl950zrakczk9libws29c9l2hklw49m3xb4swa14kz1r639"
-  }
- },
- {
   "ename": "banner-comment",
   "commit": "4bb69f15cb6be38a86abf4d15450a29c9a819068",
   "sha256": "0i5nkfdwfr9mcir2ijdhw563azmr5p7hyl6rfy1r04fzs8j7w2pc",
@@ -6043,11 +6092,11 @@
   "repo": "belak/base16-emacs",
   "unstable": {
    "version": [
-    20210406,
-    1956
+    20210506,
+    1530
    ],
-   "commit": "b35d21ae0d46856416b64851ccbb5e44ee9498d0",
-   "sha256": "04vs50a5wh0ziq34hh9li5d84nv39p3akaync1i9sbmr4kxkhr1l"
+   "commit": "59692942f34b9be0447a7766ad03115d04e79874",
+   "sha256": "1la7671sz666in8zx35j517sbj2y4jyasnj0x9yxh5n4g5qdrnbp"
   },
   "stable": {
    "version": [
@@ -6200,6 +6249,36 @@
   }
  },
  {
+  "ename": "battery-notifier",
+  "commit": "ef16b4c37ad80b034f0ed682f644cb5056743e53",
+  "sha256": "11rr22gxp1xad73vk4svx5zyssfhffzphgam4pylv4zjbrx38826",
+  "fetcher": "github",
+  "repo": "jasonmj/battery-notifier",
+  "unstable": {
+   "version": [
+    20210521,
+    1238
+   ],
+   "deps": [
+    "alert"
+   ],
+   "commit": "ae2043db954e131d9de7347ab1a6107fd07e8893",
+   "sha256": "1w2cymf9yd3siijplb6vrcxwqhqsqii8bnxki7vqb1s16v7ciczz"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    2
+   ],
+   "deps": [
+    "alert"
+   ],
+   "commit": "ae2043db954e131d9de7347ab1a6107fd07e8893",
+   "sha256": "1w2cymf9yd3siijplb6vrcxwqhqsqii8bnxki7vqb1s16v7ciczz"
+  }
+ },
+ {
   "ename": "battle-haxe",
   "commit": "75781ee881a8f3215ab40d47273c8a9d1fed7949",
   "sha256": "02x7hchk3jninas4mybn98m09wn1bfqqdjfq45b6rgw1am6mvvwz",
@@ -6224,27 +6303,18 @@
   }
  },
  {
-  "ename": "bazel-mode",
-  "commit": "10f3918c55426c8c4754ef0dfccf19300e516012",
-  "sha256": "1gylmwlhzg6kgj9936799ppahbhicrxn2zpbr3417qycib84nl8x",
+  "ename": "bazel",
+  "commit": "249b57810b6a8ebeb043cc912dafbefc75551bdf",
+  "sha256": "0v479f5d7ylars00jyipy7ncj9ybbjabmbbdkvsl8mgiq8m64aan",
   "fetcher": "github",
   "repo": "bazelbuild/emacs-bazel-mode",
   "unstable": {
    "version": [
-    20210410,
-    1645
-   ],
-   "commit": "fd1a8c53fabdf2ee1ada9338b3feb08d154ccbc9",
-   "sha256": "1jrla85sbj0cbrqifqhc6zx66bhagb6r62hwhgdc4vh3srmadiqx"
-  },
-  "stable": {
-   "version": [
-    1,
-    0,
-    0
+    20210605,
+    906
    ],
-   "commit": "6103da2dd9c9461e35a45fc0544ddf33410baa25",
-   "sha256": "0lbiih6lj7qf2h1l2nxcwfkhdzccrs01lcdqsyhp5hysp0zdcr66"
+   "commit": "667554f76696a3cbb50c4c01b121c1aef882195a",
+   "sha256": "169x8d52hkb30w2c4ww7lpipdin5406nm2i95fbbxs1sz1068b8r"
   }
  },
  {
@@ -6517,11 +6587,11 @@
   "repo": "DamienCassou/beginend",
   "unstable": {
    "version": [
-    20210320,
-    1115
+    20210504,
+    341
    ],
-   "commit": "18d0bbde367dfe259d697d1c589e3040d69797ee",
-   "sha256": "13gdlaiqi3jnavwrwj5ic9aqycfvbzw8d4v0413nwzag35bz4mpl"
+   "commit": "4b4e4808dc3248ea61b3d8bdd7c6b73edd3b6902",
+   "sha256": "0cx8k5vvqkhkaa9ay4cnb2gshi8118zq87ddbxmffai6ryj2lg7b"
   },
   "stable": {
    "version": [
@@ -6830,14 +6900,14 @@
   "repo": "cpitclaudel/biblio.el",
   "unstable": {
    "version": [
-    20200416,
-    1407
+    20210418,
+    406
    ],
    "deps": [
     "biblio-core"
    ],
-   "commit": "242c3f3ac1198b1e969e2a34d6348354a9d83345",
-   "sha256": "0m1ih8p7s3335wah1wzaiipqphvjd88nyig582ja3ra6xkvazf00"
+   "commit": "517ec18f00f91b61481214b178f7ae0b8fbc499b",
+   "sha256": "0m5vpyj6312rc3xq8lrr1g2hyl26adzwvjxb3jqrm7bvqvs4i5zp"
   },
   "stable": {
    "version": [
@@ -6877,16 +6947,16 @@
   "repo": "cpitclaudel/biblio.el",
   "unstable": {
    "version": [
-    20210311,
-    2310
+    20210418,
+    406
    ],
    "deps": [
     "dash",
     "let-alist",
     "seq"
    ],
-   "commit": "242c3f3ac1198b1e969e2a34d6348354a9d83345",
-   "sha256": "0m1ih8p7s3335wah1wzaiipqphvjd88nyig582ja3ra6xkvazf00"
+   "commit": "517ec18f00f91b61481214b178f7ae0b8fbc499b",
+   "sha256": "0m5vpyj6312rc3xq8lrr1g2hyl26adzwvjxb3jqrm7bvqvs4i5zp"
   },
   "stable": {
    "version": [
@@ -6917,8 +6987,8 @@
     "a",
     "pdf-tools"
    ],
-   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
-   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
+   "commit": "246120647e28a27506ca0894ba98e371086881fd",
+   "sha256": "15gqzj4h0w33w38i8ihl74iy7aqxlds97gm93r72z69pm2l1d7dm"
   }
  },
  {
@@ -6966,14 +7036,25 @@
   "repo": "bdarcus/bibtex-actions",
   "unstable": {
    "version": [
-    20210411,
-    1846
+    20210607,
+    1230
+   ],
+   "deps": [
+    "bibtex-completion"
+   ],
+   "commit": "07a3c64b12673b722a21c932eb85c595dea0c863",
+   "sha256": "0afnb0aa3msnvg2p4pjdcliccsfhaa7pp7bx76h3sfvv4648kki5"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
    ],
    "deps": [
     "bibtex-completion"
    ],
-   "commit": "516cbdb63810bcb571e41436e2c568c328fc8980",
-   "sha256": "0n3byfv1khn2lr9c1r619gc52993hf01nwl5c7ih7nmrr5q3rckk"
+   "commit": "c18b1ad05168597a3cbaee67775d15d2ebb737f4",
+   "sha256": "0x45wq2nw753dz6694li3f0zmjm0rljmrr5rvj2qrhgqldlwn6zn"
   }
  },
  {
@@ -6995,8 +7076,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "9870333cdd4a54b309e2709af647cda6f4070a42",
-   "sha256": "02cpg60hif4rz6va2ynh3wc9dwj0nyig4fa0l6jchmzz8v2zvf86"
+   "commit": "9f6ea920a49457d85096caa0e61f086a42b2908e",
+   "sha256": "0dqf2anmjlgcz7xn4q2pw8cfmhwdhdg4fm8q41vhrp60ymbc6dik"
   },
   "stable": {
    "version": [
@@ -7201,8 +7282,8 @@
    "deps": [
     "seq"
    ],
-   "commit": "9cec78c685dbca51ab9d1014eb535a541083effc",
-   "sha256": "065cqvdjdb5w60b7ga7q51920ib5vpz63zq9s68q0fjwb55q3k8z"
+   "commit": "52f1c11b01a5f7e7a470a73dec4c3335dea4124b",
+   "sha256": "00kjjr28bvimbdhg016n0g6ws1lix87c1bic1xb3nk0bvnbkpwfp"
   },
   "stable": {
    "version": [
@@ -7273,11 +7354,19 @@
   "repo": "Wilfred/bison-mode",
   "unstable": {
    "version": [
-    20200226,
-    47
+    20210527,
+    717
    ],
-   "commit": "675df47193accaf30ca44e142523b2b3bb122979",
-   "sha256": "08yg51pzpry5gy29fdbrrb7s5j5c5fxsrhgy0ncp0vl082fs1bv9"
+   "commit": "4f2e20394a475931409618c1635e9c9f1cf07d9c",
+   "sha256": "0rh4kjfapgnvv6yc3ps0n8y9nbrpdi5gs541j2axvqx97hhv8an9"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "commit": "1193903e36adf6770b673c3936ac0fbdac609b95",
+   "sha256": "0v1vqc22nfhq2c09j0xiyd0yplimf1gy3m5zlgl33dijhh6wxv8n"
   }
  },
  {
@@ -7609,11 +7698,11 @@
   "repo": "joodland/bm",
   "unstable": {
    "version": [
-    20201116,
-    2341
+    20210421,
+    1351
    ],
-   "commit": "dc69eb6e431151d3942cb812b7161e6f23c28c07",
-   "sha256": "0gxj8m8q4md1kaay5ymsyynw5990apnqxa6lw73y8w1py785drmn"
+   "commit": "9a31c61f44e6f1033ca43bd7f3eb33ffdb2ca595",
+   "sha256": "0iizqcbxm8yjv1fz2lhn23vbyzmmc8g6xazk0glv9mrldmmppgn5"
   },
   "stable": {
    "version": [
@@ -7658,8 +7747,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "d88eef69ae66ea1ffa21a65317afe84c9ddb0814",
-   "sha256": "1bci2w8drwgcli9hqg55izaxpwq4fvqdigvlrfc0524s7021ij24"
+   "commit": "2d1ee12f3ba6e75841066bf429d7bf836d4b89d7",
+   "sha256": "1hls8463fl8ndbfry1x4pimx2fz1b9zl3b6wfgcrb3jw3p4ys86x"
   },
   "stable": {
    "version": [
@@ -7840,8 +7929,8 @@
   "repo": "jyp/boon",
   "unstable": {
    "version": [
-    20210323,
-    1341
+    20210518,
+    1244
    ],
    "deps": [
     "dash",
@@ -7849,8 +7938,8 @@
     "multiple-cursors",
     "pcre2el"
    ],
-   "commit": "17a7a9219a5a9b7156f58f7f30227fc2b79b6020",
-   "sha256": "1jcvz9vy5sz9bysrlg2b9d3732zab8hmg8hg5ghwjx5kgxl2yfzh"
+   "commit": "db1cbdcdfb3ea246d0d0090534d998f7c9c19f4f",
+   "sha256": "1saij86j2br814lp7yl4qpy2kaywdxlv08wxph464npx1rykykk3"
   },
   "stable": {
    "version": [
@@ -7874,29 +7963,28 @@
   "repo": "emacscollective/borg",
   "unstable": {
    "version": [
-    20210330,
-    1213
+    20210530,
+    1158
    ],
    "deps": [
     "epkg",
     "magit"
    ],
-   "commit": "7f6642c297044ffa10a287a5a74748ce0b3f8c27",
-   "sha256": "1alr4wx5ldr07ifkdansgvrvdbwqs9zli99flbjq5zjwwy5f142a"
+   "commit": "e2263534e16ed8bbc935ee466f6ad2acbe9c603e",
+   "sha256": "169sdgi476hnxxv0s9qfi8cply9q7gb8i1hli4i74ynlrhc9wfq7"
   },
   "stable": {
    "version": [
     3,
-    1,
-    2
+    2,
+    0
    ],
    "deps": [
-    "dash",
     "epkg",
     "magit"
    ],
-   "commit": "3f9fc2281e9ae873873998782c98c57c5ebb0555",
-   "sha256": "1k889m4095lm97lphcwcrsl53vhgas7iha594mmk8cs7sm5csjy1"
+   "commit": "e2263534e16ed8bbc935ee466f6ad2acbe9c603e",
+   "sha256": "169sdgi476hnxxv0s9qfi8cply9q7gb8i1hli4i74ynlrhc9wfq7"
   }
  },
  {
@@ -8068,25 +8156,25 @@
   "url": "https://bitbucket.org/MikeWoolley/brf-mode",
   "unstable": {
    "version": [
-    20210325,
-    2154
+    20210509,
+    1534
    ],
    "deps": [
     "fringe-helper"
    ],
-   "commit": "733a44bc491d9d28f9eefc2550616e97b1419cee",
-   "sha256": "0dfd3w3g31fjzqvzn57xw3whr60fy8yj8hnga8b4n9698dihw0bn"
+   "commit": "9e66643e1153133508bb1d63a21f3bd8f46908fd",
+   "sha256": "1z5gwmdifrr5r3gmv1dw44vad08cvdfndv555pb8bdksnd9jm130"
   },
   "stable": {
    "version": [
     1,
-    19
+    20
    ],
    "deps": [
     "fringe-helper"
    ],
-   "commit": "0024b1a276c43fde0d85011b51b5aaf1f201da64",
-   "sha256": "1nnhb0vyx5f3f7h2fsg2p7656kcsk7ahrndxrhs7a77svnr426lb"
+   "commit": "9d6b6797c465589ca39a1020d7af5775f5ddc801",
+   "sha256": "1jpsrsc4qi2yiwxccdagxz1gj9fgzaxnd5fszgdmwvsgzqwfasvh"
   }
  },
  {
@@ -8136,16 +8224,16 @@
   "repo": "rmuslimov/browse-at-remote",
   "unstable": {
    "version": [
-    20210405,
-    430
+    20210603,
+    802
    ],
    "deps": [
     "cl-lib",
     "f",
     "s"
    ],
-   "commit": "e02ad2189c87da33f80bf4967a968772ce3e4431",
-   "sha256": "0vn53zlwmhi4d6i81840i9pmrs8w4j6az2p0b4hw99xvk68grfiz"
+   "commit": "cef26f2c063f2473af42d0e126c8613fe2f709e4",
+   "sha256": "094gbvpf9vy95ij7li9vb17nyhi1grh9mbv1csydb9y157baw03v"
   },
   "stable": {
    "version": [
@@ -8382,6 +8470,21 @@
   }
  },
  {
+  "ename": "buffer-env",
+  "commit": "40651886215933432e77c680aea22bdee932fa9c",
+  "sha256": "18ab7jwr1w16vlgrgxsnb3dfvkfy9vs3szl9k9npckgzyar97y5m",
+  "fetcher": "github",
+  "repo": "astoff/buffer-env",
+  "unstable": {
+   "version": [
+    20210520,
+    1616
+   ],
+   "commit": "32c1cfdf06dfa7bdbd79aba8066064212672e755",
+   "sha256": "1mbrsakg7mbrr4szi7ha5hcfr88i79p5bn59dh7v6ywa357brmky"
+  }
+ },
+ {
   "ename": "buffer-flip",
   "commit": "3924870cac1392a7eaeeda34b92614c26c674d63",
   "sha256": "0ka9ynj528yp1p31hbhm89627v6dpwspybly806n92vxavxrn098",
@@ -8460,6 +8563,39 @@
   }
  },
  {
+  "ename": "buffer-ring",
+  "commit": "f6a145814144e6386efa9f96b43cf81d59a1091f",
+  "sha256": "0ch8pgiq1d90d06zxa5xvkvy18nwxlp7mfaymd6ldq20vgks07x9",
+  "fetcher": "github",
+  "repo": "countvajhula/buffer-ring",
+  "unstable": {
+   "version": [
+    20210529,
+    2059
+   ],
+   "deps": [
+    "dynaring",
+    "ht",
+    "s"
+   ],
+   "commit": "30572b4d8fff519c4996078a5ad743583fb22b0e",
+   "sha256": "1xg6kbjj4fccsr5awnh3ba9x33qznnala3kmnfwpmj94rd72whiy"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "dynaring",
+    "ht",
+    "s"
+   ],
+   "commit": "30572b4d8fff519c4996078a5ad743583fb22b0e",
+   "sha256": "1xg6kbjj4fccsr5awnh3ba9x33qznnala3kmnfwpmj94rd72whiy"
+  }
+ },
+ {
   "ename": "buffer-sets",
   "commit": "61d07bbe7201fc991c7ab7ee6299a89d63ddb5e5",
   "sha256": "1xj9fn2x4kbx8kp999wvz1j68znp7j81zl6rnbaipbx7hjpqrsin",
@@ -9059,6 +9195,21 @@
   }
  },
  {
+  "ename": "c-eval",
+  "commit": "0a62a92eb2142d0a08a18a966ee99fa62d1392af",
+  "sha256": "13rgaisjy6x3szknlp3f5ama3y9l5yhlx3q17kjzdv7bs56kzcbq",
+  "fetcher": "github",
+  "repo": "lassik/emacs-c-eval",
+  "unstable": {
+   "version": [
+    20210603,
+    1716
+   ],
+   "commit": "f79be8354a3c01fddbf38b731aa8934421cef22f",
+   "sha256": "1qpi5j2h9q4khp3kbk4ybsg4mp2cp5kws5fz7bjpxz4iz0s8mbx7"
+  }
+ },
+ {
   "ename": "c0-mode",
   "commit": "268115452d9c22a6f2627cec1eb122b47e85b88c",
   "sha256": "0s3h4b3lpz4jsk222yyfdxh780dvykhaqgyv6r3ambz95vrmmpl4",
@@ -9429,21 +9580,21 @@
   "repo": "chenyanming/calibredb.el",
   "unstable": {
    "version": [
-    20210321,
-    944
+    20210603,
+    323
    ],
    "deps": [
     "dash",
     "s",
     "transient"
    ],
-   "commit": "a3b04c0c37b1e8ceff2472e21a3579e64e944528",
-   "sha256": "04fzskx066v5091467da3plsxkqx3acbaqmk282k8cdaxsnr4ifd"
+   "commit": "cb93563d0ec9e0c653210bc574f9546d1e7db437",
+   "sha256": "10dymcd17ili5r6ydiz7bj0q81y5fh0s1d64m4acfa8xfsi7zx55"
   },
   "stable": {
    "version": [
     2,
-    8,
+    10,
     0
    ],
    "deps": [
@@ -9451,8 +9602,8 @@
     "s",
     "transient"
    ],
-   "commit": "a62d7de582b16490b1af5add7b24a67022be531b",
-   "sha256": "19gc05k2p1l8wlkrqij9cw6d61hzknd6a9n64kzlpi87cpbav3lv"
+   "commit": "933140a3227ee61cfccf3cf0c567b5c9e64f1ded",
+   "sha256": "0s26a2fy1xldd0q57avds7zn0h7lkis2hjh9zmm1qhwn8409hys9"
   }
  },
  {
@@ -9634,15 +9785,14 @@
   "repo": "kwrooijen/cargo.el",
   "unstable": {
    "version": [
-    20210327,
-    1821
+    20210422,
+    657
    ],
    "deps": [
-    "markdown-mode",
-    "rust-mode"
+    "markdown-mode"
    ],
-   "commit": "4846373bf1ed6268f1a1d9f9c489f8740351d8bb",
-   "sha256": "0y4wxddjp055kisv7yx6zs9bzggw65b08aa1g3y0vlaafrps8bga"
+   "commit": "0174599fd1c1b429042c7ca67c3d45f07441a43d",
+   "sha256": "0qm6cgzsr86s1rcvqpv8x5b3r1v7nq7z8il8ci4vlw9hk0wg65a2"
   },
   "stable": {
    "version": [
@@ -9658,6 +9808,21 @@
   }
  },
  {
+  "ename": "cargo-mode",
+  "commit": "48a13236086dad5b88834a27465bd77b1ee499b6",
+  "sha256": "1cpxhgxsnf6lmw8z2g1vxczs7pi9mk1xx1776726hajj4g8cx4p1",
+  "fetcher": "github",
+  "repo": "ayrat555/cargo-mode",
+  "unstable": {
+   "version": [
+    20210605,
+    1003
+   ],
+   "commit": "b98ea60ddec30eac174012671ee09e125748a193",
+   "sha256": "03vdinqm1hlbcflvks54ff9hqnjdzxih5bxnkm363s7mpr070d0d"
+  }
+ },
+ {
   "ename": "caroline-theme",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "178nxcz73lmvnjcr6x6as25d8m5knc21jpr66b4rg0rmlmhchkal",
@@ -9683,8 +9848,8 @@
     20210221,
     1516
    ],
-   "commit": "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0",
-   "sha256": "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"
+   "commit": "53967a3f4b2ac742ab8fd6b639c87cbb0229d5f8",
+   "sha256": "0pvvwxi7qbbg9h9hax6ispz69h0wk4c0adc26dyj1a2dpdxz2r5p"
   }
  },
  {
@@ -9729,8 +9894,8 @@
   "repo": "cask/cask",
   "unstable": {
    "version": [
-    20210410,
-    2057
+    20210528,
+    1605
    ],
    "deps": [
     "ansi",
@@ -9741,27 +9906,26 @@
     "s",
     "shut-up"
    ],
-   "commit": "dce91052dc8fae386a1898fd88d554b5cb527fdc",
-   "sha256": "1j853gbdc50s1csvsi2a0f6i2vakgnd8afb97qkkj5alpwq8883p"
+   "commit": "daee4bec9c7d96a165366f7edeaa4616837bf432",
+   "sha256": "062hsgb4315wvydygvygjywi4wp8xri3h0gj4n5dmy884578hhjl"
   },
   "stable": {
    "version": [
     0,
     8,
-    6
+    7
    ],
    "deps": [
     "ansi",
     "cl-lib",
-    "dash",
     "epl",
     "f",
     "package-build",
     "s",
     "shut-up"
    ],
-   "commit": "610894d57f467a55fb146ade4d6f8173e4e9579b",
-   "sha256": "1y12m5sjgws4a4bikr8d1ccysy55j7xx3cp1qii4pw62bkf9y2bq"
+   "commit": "9600dd9a341c61ac006c0a44912e13f3810f3c54",
+   "sha256": "0aqc3p7i00rbdgj2cjil71c8wqq9ard637fnpdq1ny6wnb8kblm7"
   }
  },
  {
@@ -9937,11 +10101,11 @@
   "repo": "skk-dev/ddskk",
   "unstable": {
    "version": [
-    20210403,
-    1958
+    20210501,
+    820
    ],
-   "commit": "a266f70eb99ffb657b7821c2e1de49f5184a59ed",
-   "sha256": "0j1gcsi40yrfy9saqjdhxnwsvmqf32l9mnwfvhbbfxm82ddhwxnk"
+   "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
+   "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
   }
  },
  {
@@ -9989,8 +10153,8 @@
     20200904,
     1431
    ],
-   "commit": "a266f70eb99ffb657b7821c2e1de49f5184a59ed",
-   "sha256": "0j1gcsi40yrfy9saqjdhxnwsvmqf32l9mnwfvhbbfxm82ddhwxnk"
+   "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
+   "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
   }
  },
  {
@@ -10124,15 +10288,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20210309,
-    1822
+    20210507,
+    1633
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "df972095135de90b47413190f61ec4f5af33f9f1",
-   "sha256": "0is51bc9zd9lr0y59md2ci4ddlfylp5jb9hwyll9r6j8gn3lrzza"
+   "commit": "9c7c936e4e1de6f4f4095d70e43c9ae738d05086",
+   "sha256": "0h0v3yiz9qis99l83x588b94va13jzanfwacmgvq29ygp0a87n65"
   },
   "stable": {
    "version": [
@@ -10259,8 +10423,8 @@
     20171115,
     2108
    ],
-   "commit": "02478862ea707ed51223c1d5d2d8cd8d61d2915d",
-   "sha256": "0vf94pkd2slwkrgv93yqh2qb2y72bzya9nq5gmqd0g08nb6kdmjx"
+   "commit": "35b67c8380bb284c9c59914d967ee157a62311b8",
+   "sha256": "1579n0m13l7ghw5g4b0iffrcvgsh5pk3abk29rrskq736i0h007s"
   },
   "stable": {
    "version": [
@@ -10378,16 +10542,16 @@
   "repo": "Alexander-Miller/cfrs",
   "unstable": {
    "version": [
-    20210217,
-    1848
+    20210529,
+    1123
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "7c42f2c82c7ae689f3ef291b066688c58ab96298",
-   "sha256": "1x8y4cc1cgln4qv6yzhsiqgnziilg5fh07bvg9ygcjmdhvnhsvcm"
+   "commit": "e16a01012545d378150432fa10684a2a7d1cc2d1",
+   "sha256": "1pj0l0jqgx3bixklllppgm6pwyfd0dc1ik5cs9x1azb1qdgf8kjs"
   },
   "stable": {
    "version": [
@@ -10460,14 +10624,14 @@
   "repo": "damon-kwok/chapel-mode",
   "unstable": {
    "version": [
-    20200920,
-    501
+    20210513,
+    457
    ],
    "deps": [
     "hydra"
    ],
-   "commit": "a99319a43b0a2bf9621a1f61a519ea102ec65783",
-   "sha256": "0p91lwm2bymx5yw2ni0b0iaxmy26mnwvg6g6xp9yaxnr477q5wkn"
+   "commit": "39fd24bb7cf44808200354ac0496be4fc4fddd9a",
+   "sha256": "1482n2wwlgwf2dbn4kx4mcl0ylcl66yf9s8gkqcpszfdpw672kfh"
   },
   "stable": {
    "version": [
@@ -10564,11 +10728,11 @@
   "repo": "davep/cheat-sh.el",
   "unstable": {
    "version": [
-    20200226,
-    1021
+    20210607,
+    1307
    ],
-   "commit": "52293c366044e44c8f6b648a312433345e4718ad",
-   "sha256": "098b70gvyr74ygzbpyfvpn2zzlij47bzvqqj89igh10s4lxj0lzb"
+   "commit": "33bae22feae8d3375739c6bdef08d0dcdf47ee42",
+   "sha256": "0blyhgdk0li5slkhlj689jdal6d1qr4g2acz8i0jm4kvgysjilb5"
   },
   "stable": {
    "version": [
@@ -10695,6 +10859,21 @@
   }
  },
  {
+  "ename": "chembalance",
+  "commit": "780449de5166ddfc2a87ecaf4127f18bf4e7f81f",
+  "sha256": "14qqqzq5xj18f46pibdyfbypffd7xdimazcgv7mshbg5kyyryr73",
+  "fetcher": "github",
+  "repo": "sergiruiztrepat/chembalance",
+  "unstable": {
+   "version": [
+    20210601,
+    1653
+   ],
+   "commit": "ae36c823ca151f1dc6144ec96b2f5e98181c0dbb",
+   "sha256": "1n01h4lwfcm0skf0pgh7p87bmk4x3r6qsr5jcgm1ldafsx35x60g"
+  }
+ },
+ {
   "ename": "cherry-blossom-theme",
   "commit": "401ae22f11f7ee808eb696a4c1f869cd824702c0",
   "sha256": "1i3kafj3m7iij5mr0vhg45zdnkl9pg9ndrq0b0i3k3mw7d5siq7w",
@@ -10870,59 +11049,55 @@
  },
  {
   "ename": "chronometrist",
-  "commit": "9031f880b8646bf9a4be61f3057dc6a3c50393e8",
-  "sha256": "1xjxq257iwjd3zzwqicjqs3mdrkg9x299sm7wfx53dac14d7sa9g",
-  "fetcher": "github",
-  "repo": "contrapunctus-1/chronometrist",
+  "commit": "1cead898505916ff42bbc5c2d978df55dc09da69",
+  "sha256": "1nvgbddhci7bpznq2s3yakk3qpd1f8fzskrf3klnc88d5v6xj3qi",
+  "fetcher": "git",
+  "url": "https://tildegit.org/contrapunctus/chronometrist.git",
   "unstable": {
    "version": [
-    20210211,
-    601
+    20210603,
+    1656
    ],
    "deps": [
-    "anaphora",
     "dash",
-    "s",
     "seq",
     "ts"
    ],
-   "commit": "d1b42bbf0d134ee6ed6f423956a355ba0a7ac968",
-   "sha256": "1k7r5rc6vzrnhp9j5bkv45yzqz7zbqrkiry4fzc8w6f36pcw862f"
+   "commit": "5c5b7fc5e72e2322af2cac14745c7adaab1d56cf",
+   "sha256": "104n79hj8649h90g8kh3i4rfyk1alq0skpjv8jjpbz0cybhp7n53"
   },
   "stable": {
    "version": [
     0,
-    6,
-    5
+    8,
+    1
    ],
    "deps": [
-    "anaphora",
     "dash",
-    "s",
     "seq",
     "ts"
    ],
-   "commit": "d1b42bbf0d134ee6ed6f423956a355ba0a7ac968",
-   "sha256": "1k7r5rc6vzrnhp9j5bkv45yzqz7zbqrkiry4fzc8w6f36pcw862f"
+   "commit": "e9164ecca1e2f43676e5a071aca7644177866deb",
+   "sha256": "0fp0p1sv7jpam2vbgkv2yg7lsdlxa02213ka06cn8rb54lw7k702"
   }
  },
  {
   "ename": "chronometrist-goal",
-  "commit": "61031b9ab0c0dedf88e6947ae2ad8d4ad0351210",
-  "sha256": "0hcww5qy167fiwwkj33pj8fdc89b61mb767gz85ya5r6d5nd4si3",
-  "fetcher": "github",
-  "repo": "contrapunctus-1/chronometrist-goal",
+  "commit": "d5c27f29f3ab4633e6a1d69b3a82e47ba216bf39",
+  "sha256": "05z9jwjf9py0bfxgilh2x05pqjyg9zamf4zl6s6fb7fiz7mfm9k5",
+  "fetcher": "git",
+  "url": "https://tildegit.org/contrapunctus/chronometrist-goal.git",
   "unstable": {
    "version": [
-    20210104,
-    336
+    20210510,
+    1831
    ],
    "deps": [
     "alert",
     "chronometrist"
    ],
-   "commit": "7a878bd3709b9638caff17b5f49b27c03b06862a",
-   "sha256": "1gyz0cfq7sqqrcj8d5ikm6xqmbg3njhmbi291fs5jr8bdqrcbbmg"
+   "commit": "6cb939d160f5d5966d7853aa23f3ed7c7ef9df44",
+   "sha256": "05jcn67fzf349h3vqvfrwhklan0i037mp0nq53wghfzapv1m7lv8"
   },
   "stable": {
    "version": [
@@ -10939,6 +11114,36 @@
   }
  },
  {
+  "ename": "chronometrist-key-values",
+  "commit": "1cead898505916ff42bbc5c2d978df55dc09da69",
+  "sha256": "0xh06qd76na7vxr4v8v5nn37vq4v3v6cbbyzvrbg90nmkki0hhwr",
+  "fetcher": "git",
+  "url": "https://tildegit.org/contrapunctus/chronometrist.git",
+  "unstable": {
+   "version": [
+    20210603,
+    1656
+   ],
+   "deps": [
+    "chronometrist"
+   ],
+   "commit": "5c5b7fc5e72e2322af2cac14745c7adaab1d56cf",
+   "sha256": "104n79hj8649h90g8kh3i4rfyk1alq0skpjv8jjpbz0cybhp7n53"
+  },
+  "stable": {
+   "version": [
+    0,
+    8,
+    1
+   ],
+   "deps": [
+    "chronometrist"
+   ],
+   "commit": "e9164ecca1e2f43676e5a071aca7644177866deb",
+   "sha256": "0fp0p1sv7jpam2vbgkv2yg7lsdlxa02213ka06cn8rb54lw7k702"
+  }
+ },
+ {
   "ename": "chronos",
   "commit": "53648c5699fc03e50774270f9560c727e2c22873",
   "sha256": "1fwpll0mk6pc37qagbq3b3z32d2qwz993nxp9pjw4qbmlnq6sy9d",
@@ -10994,8 +11199,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20210408,
-    1212
+    20210524,
+    832
    ],
    "deps": [
     "clojure-mode",
@@ -11006,14 +11211,14 @@
     "sesman",
     "spinner"
    ],
-   "commit": "fd2bb0c64eb3590cffa91188644d1e40fbbc634b",
-   "sha256": "0mhscf5cpcqs68c863ns6rbjwr1p71wb7kp80ds5qzar8x2k2qwn"
+   "commit": "8f51546c0efb36226c4bae7d65465b0e0aa8c06f",
+   "sha256": "0bn1k34a0dr85c0jj3cb3w8afbhb5iy7whdddkfpa5fkrhc77acf"
   },
   "stable": {
    "version": [
     1,
-    0,
-    0
+    1,
+    1
    ],
    "deps": [
     "clojure-mode",
@@ -11024,8 +11229,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "140b062e62165e536dcdb878a00f492a1d5b3518",
-   "sha256": "143kh9k34yk0g6kdlkma6g432kmb2r9r1lhyq4irsw6d3vaql7dj"
+   "commit": "8b3dabeefa8a3352d7a30a9fd9027c05a4c4f6e2",
+   "sha256": "0psd8zrhs5w1cfmksd5sjgy9xzfs9i9zp55g97rp7zp6y5als0lx"
   }
  },
  {
@@ -11198,14 +11403,14 @@
   "repo": "jorgenschaefer/circe",
   "unstable": {
    "version": [
-    20210323,
-    1704
+    20210601,
+    801
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e67e2d1149ebf3e79cd2162e78802af3ed5f82da",
-   "sha256": "0jrpa8kndq2v69nr9jva970q0n3662x2g0chg89nd2d3gbv693mw"
+   "commit": "c0b2f997b3b73640d635ee84627bb8cf36c9adfe",
+   "sha256": "1kjfch0fhq67iivad56s071c8qlsssdsdg83h5v9iz2x4jipm0wa"
   },
   "stable": {
    "version": [
@@ -11546,6 +11751,21 @@
   }
  },
  {
+  "ename": "clhs",
+  "commit": "8db8f451b28ff1ff4bdab5883138a2bc8964973e",
+  "sha256": "0089c3p37dzf02sk3vwj11x6pyincqh4gil38g76i5p989vjrc50",
+  "fetcher": "gitlab",
+  "repo": "sam-s/clhs",
+  "unstable": {
+   "version": [
+    20210428,
+    1911
+   ],
+   "commit": "7b106c4fb5a6388ab753f94740f6dfadcdeedcbb",
+   "sha256": "06jwk5i445y800xizp7nv3yzxxfyll6485n4h6vd5xvrpnq3kqxa"
+  }
+ },
+ {
   "ename": "click-mode",
   "commit": "1859bb26e3efd66394d7d9f4d2296cbeeaf5ba4d",
   "sha256": "1p5dz4a74w5zxdlw17h5z9dglapia4p29880liw3bif2c7dzkg0r",
@@ -11600,14 +11820,14 @@
   "repo": "redguardtoo/cliphist",
   "unstable": {
    "version": [
-    20210301,
-    748
+    20210426,
+    245
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "1ef50459fa6044c4d571cec0009368948bcf5fc5",
-   "sha256": "0xba2gxwy1y8zl9nvga186873icvwfi0yan3qbw2vdkpzry5ifhk"
+   "commit": "0d02d72fb63453ff5623b26234a63f66090da7ac",
+   "sha256": "033z367nmfh6mc1k8kv2m3xsxjw44hnvgiai2n7fp4h9jdv5j8h8"
   },
   "stable": {
    "version": [
@@ -11705,8 +11925,8 @@
   "repo": "clojure-emacs/clj-refactor.el",
   "unstable": {
    "version": [
-    20210407,
-    724
+    20210518,
+    1305
    ],
    "deps": [
     "cider",
@@ -11719,8 +11939,8 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "9f88174878d62e3906be5b04b8ba7788e6ca4570",
-   "sha256": "155lhb3myzxpxnnp257p3rxhgw9xmr3l2h39gj23q5sr0hhsnm5s"
+   "commit": "ae2f6344eaf66c872ebc4a87a389f34434ad7a3d",
+   "sha256": "064pnj9wyhfx02cczmp9ah00ng5v9ps7mhn6mbs6vldv9cfrsvr7"
   },
   "stable": {
    "version": [
@@ -11967,20 +12187,20 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20210322,
-    704
+    20210505,
+    712
    ],
-   "commit": "a14671e03c867c9d759ee9e59cdc5cecbf271245",
-   "sha256": "1jnqwcspm7c3v33wywvm605hsf6vp29ym3smy2jaq8j5vwywi8k3"
+   "commit": "33f267ac182afe8fa82cc321e9f515c0397e35f6",
+   "sha256": "1v5gqpkw63h4h1c5kyw8dwg08famp89vbgi789yb32md5819l52s"
   },
   "stable": {
    "version": [
     5,
-    12,
+    13,
     0
    ],
-   "commit": "3dc12d3a54ab17dee2db36c8fc48eb9598a17c5e",
-   "sha256": "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"
+   "commit": "0e886656c83e6e8771f748ec698bb173adcb0968",
+   "sha256": "1ikl29rygr1habcsglz07m4ihd4ivi732kkzg8q676ihf367wa9i"
   }
  },
  {
@@ -11997,20 +12217,20 @@
    "deps": [
     "clojure-mode"
    ],
-   "commit": "a14671e03c867c9d759ee9e59cdc5cecbf271245",
-   "sha256": "1jnqwcspm7c3v33wywvm605hsf6vp29ym3smy2jaq8j5vwywi8k3"
+   "commit": "33f267ac182afe8fa82cc321e9f515c0397e35f6",
+   "sha256": "1v5gqpkw63h4h1c5kyw8dwg08famp89vbgi789yb32md5819l52s"
   },
   "stable": {
    "version": [
     5,
-    12,
+    13,
     0
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "3dc12d3a54ab17dee2db36c8fc48eb9598a17c5e",
-   "sha256": "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"
+   "commit": "0e886656c83e6e8771f748ec698bb173adcb0968",
+   "sha256": "1ikl29rygr1habcsglz07m4ihd4ivi732kkzg8q676ihf367wa9i"
   }
  },
  {
@@ -12117,26 +12337,26 @@
   "repo": "emacscollective/closql",
   "unstable": {
    "version": [
-    20200704,
-    2124
+    20210530,
+    1136
    ],
    "deps": [
     "emacsql-sqlite"
    ],
-   "commit": "1d5e9cbb69bc2992eaafa1bc084343efbd3e0c4c",
-   "sha256": "1s3pb8zn3ypc2pvkp7g7wvml02m06lk9d7c29pq1yqn9f5sisrcg"
+   "commit": "1b0e5bfef95de49bf669c54a15571386f10f4705",
+   "sha256": "01l4w3wc7rm7mca8pbkyz0yrks4z8i00ppy5c4bmrnn6akf7h9ih"
   },
   "stable": {
    "version": [
     1,
     0,
-    4
+    5
    ],
    "deps": [
     "emacsql-sqlite"
    ],
-   "commit": "c864c1fadfea4a05fff29cb60891b7a32ac88c78",
-   "sha256": "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"
+   "commit": "1b0e5bfef95de49bf669c54a15571386f10f4705",
+   "sha256": "01l4w3wc7rm7mca8pbkyz0yrks4z8i00ppy5c4bmrnn6akf7h9ih"
   }
  },
  {
@@ -12263,8 +12483,8 @@
   "repo": "atilaneves/cmake-ide",
   "unstable": {
    "version": [
-    20201027,
-    1947
+    20210603,
+    1522
    ],
    "deps": [
     "cl-lib",
@@ -12272,8 +12492,8 @@
     "s",
     "seq"
    ],
-   "commit": "2330f91e51e6cf8a46ce595be3deb0feda223f75",
-   "sha256": "0y5wbnf1pkzi7jvbvfhybwvbymg13fknpsyychb6f9mdkzcmik4j"
+   "commit": "9b1100bd8d65b961b7478f9c011f0f6eb8cfcdd9",
+   "sha256": "1lr9cz856hqb3qz5fq6qqc2a55mfgdrh451np5m2bf2ljw0d67nh"
   },
   "stable": {
    "version": [
@@ -12300,19 +12520,17 @@
     20210104,
     1831
    ],
-   "commit": "b1c739ad8bcacae6d66d88514102dcd4423c2dcb",
-   "sha256": "1jwkscld38b6b6f4w3hw1m9dgdvcvbbwwfx2dd5v7548mp3wpxrj"
+   "commit": "05d8a586fa4eb6256b8b80a0f7f084e8c5d3c8e6",
+   "sha256": "11vxpkf8y9n0kxyfgkbyrq76b0g4xjl2rriyj2d59s3xlx27gqjp"
   },
   "stable": {
    "version": [
     3,
     20,
-    0,
-    -1,
-    5
+    3
    ],
-   "commit": "fab7fe7ef5a5462952297611c1dd668a603e3a36",
-   "sha256": "12v6v1hpw0ykkikj4qid3m4m7sb164rgpx6fxin4hvsm20pjcrd4"
+   "commit": "13d112ea03f2b068da1f7ac3239a42a6cff94eda",
+   "sha256": "1rn9gzjcg1km9pbyipkfgzq8jvsmwwa2zkmra5yksfwq2094apnh"
   }
  },
  {
@@ -12464,11 +12682,11 @@
   "repo": "astoff/code-cells.el",
   "unstable": {
    "version": [
-    20210111,
-    744
+    20210529,
+    1452
    ],
-   "commit": "d03621b1033cc33054e30169517c57d020c13050",
-   "sha256": "0c2agyg28lqsmkkjcnhx8wdn531lh0zsy37q939wf231lpl4asvj"
+   "commit": "2e40770d7963dcbb52ac45dcd83c0537fda5e188",
+   "sha256": "1m6csmg7y99ihw6nhknnr6wqamf5y5j931gfbsrhbar2hh8wjx5m"
   }
  },
  {
@@ -12684,14 +12902,14 @@
   "repo": "ankurdave/color-identifiers-mode",
   "unstable": {
    "version": [
-    20201216,
-    2223
+    20210607,
+    1842
    ],
    "deps": [
     "dash"
    ],
-   "commit": "ca52e957254a07411c06716d2155968375943a12",
-   "sha256": "01g1x652gckzhihgiqx7jx58fd0ilv0yialfh3f8l1fsqw6cggqc"
+   "commit": "fa42b60f9e84995a8109a49798c0b4c618fc1ed3",
+   "sha256": "12ybgh8yzi62lw0c7yakgvfdx45sr11szyqdlf58n2pbkz9sxkmv"
   },
   "stable": {
    "version": [
@@ -12827,11 +13045,11 @@
   "repo": "purcell/color-theme-sanityinc-tomorrow",
   "unstable": {
    "version": [
-    20210107,
-    2111
+    20210528,
+    2344
    ],
-   "commit": "1445a556af9da3681ae0e7e7242352e9fe39fe73",
-   "sha256": "1d6wxzw1wf378jzvlzfsdq5gqq2i196lr8dszj4df472vsiw1hqi"
+   "commit": "c1a1091e39ecd69822e1494d8b6f0bbcb21eb9b1",
+   "sha256": "01afmfisii9cyri198s2g9rivkisfn6d3g40nyi0sgsx14jbyddz"
   },
   "stable": {
    "version": [
@@ -13271,11 +13489,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20210411,
-    2221
+    20210606,
+    135
    ],
-   "commit": "4037e82cf82b459b6a1d8529f2a3bb3e310fbdf7",
-   "sha256": "0hqm4529cng2zwj5nlm9b5k1yngf0viywmrq7k052g3fpx21b4l2"
+   "commit": "e0f8c9ad754bdc2c02318f4baf433886c7aa83e3",
+   "sha256": "1wqwcggjzmqihdgs3bm23fbv2cxpbh9cjvnzgdj01vbgh4ccqkfh"
   },
   "stable": {
    "version": [
@@ -13516,8 +13734,8 @@
   "repo": "cpitclaudel/company-coq",
   "unstable": {
    "version": [
-    20210324,
-    1603
+    20210420,
+    215
    ],
    "deps": [
     "cl-lib",
@@ -13526,7 +13744,7 @@
     "dash",
     "yasnippet"
    ],
-   "commit": "7423ee253951a439b2491e1cd2ea8bb876d25cb7",
+   "commit": "6a23da61e4008f54cf1b713f8b8bffd37887e172",
    "sha256": "15rd9ga4ydhl6ljzdg26a3kcaqlhaygp67507wrrf8j3801ivks4"
   },
   "stable": {
@@ -13554,26 +13772,26 @@
   "repo": "redguardtoo/company-ctags",
   "unstable": {
    "version": [
-    20201121,
-    1116
+    20210528,
+    1311
    ],
    "deps": [
     "company"
    ],
-   "commit": "b089a1e645cd14971c93397549b237ef63495adf",
-   "sha256": "045na4qi4n4w8vibjnxqd308ksgazx9ziy5x7ir7b4cklvkifvml"
+   "commit": "26f0a906a646b4885984e068a2046c3a1d0578eb",
+   "sha256": "0ix5zjwfjj4cbx61qy9d0rfbsmk5kgvm9r2v2r76qa39wx3dys82"
   },
   "stable": {
    "version": [
     0,
     0,
-    4
+    5
    ],
    "deps": [
     "company"
    ],
-   "commit": "ba4d2577fbbe5ad7bb978838e3e3177f8a56e8f8",
-   "sha256": "0cy48my9d02v7wa40dw5x6djyjjacddj9p0pgdvr1rg70lqxii45"
+   "commit": "26f0a906a646b4885984e068a2046c3a1d0578eb",
+   "sha256": "0ix5zjwfjj4cbx61qy9d0rfbsmk5kgvm9r2v2r76qa39wx3dys82"
   }
  },
  {
@@ -13690,15 +13908,15 @@
   "repo": "dunn/company-emoji",
   "unstable": {
    "version": [
-    20201212,
-    2325
+    20210427,
+    2151
    ],
    "deps": [
     "cl-lib",
     "company"
    ],
-   "commit": "4ba7dc60ba67f736e698a5fa0b754b866f36a646",
-   "sha256": "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"
+   "commit": "90594eb58b20fb937cfd4e946efcc446ee630e6f",
+   "sha256": "08dx812vg92bkwp0ham40rv3x9648x7y5bmbvphcc71s9knfgxcz"
   },
   "stable": {
    "version": [
@@ -13945,15 +14163,15 @@
    "version": [
     1,
     1,
-    0
+    1
    ],
    "deps": [
     "cl-lib",
     "company",
     "irony"
    ],
-   "commit": "52aca45bcd0f2cb0648fcafa2bbb4f8ad4b2fee7",
-   "sha256": "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"
+   "commit": "9ca8f35ef268c0b0cffd49efa687685b373f09fe",
+   "sha256": "1d3jw0d4zymznri86a5iixyxnw16jzkkrbhrh657ys73189c1c73"
   }
  },
  {
@@ -14041,8 +14259,8 @@
     "lean-mode",
     "s"
    ],
-   "commit": "5a2a36356e73c74a42e49fad19a71f4f12929a90",
-   "sha256": "18lswxxwvp85yzg1kc9vxn4dpmxmj40j6g64c8ns83nb7hw9lszg"
+   "commit": "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44",
+   "sha256": "1bkv5zs38ijawvavbba0fdf2flb6fiwici3qi99ws8wvwhnbkws2"
   }
  },
  {
@@ -14155,16 +14373,16 @@
   "repo": "sasanidas/maxima",
   "unstable": {
    "version": [
-    20201207,
-    2204
+    20210520,
+    2034
    ],
    "deps": [
     "company",
     "maxima",
     "seq"
    ],
-   "commit": "5e80033e6fa9089d5cd6fa93f6484b544f2ba059",
-   "sha256": "0qh19a3yi5cccj01wxrlyaw1zcaxvpjhxc5qk3mf4f1l8gm1sfi2"
+   "commit": "74e10d5dedb16f74efc28299c98dd7db9a4392d6",
+   "sha256": "1r04mbn33y515b9fwr2x9rcbkvriz753dc0rasb8ca59klp1p5cv"
   },
   "stable": {
    "version": [
@@ -14306,6 +14524,25 @@
   }
  },
  {
+  "ename": "company-org-block",
+  "commit": "564ba95530adedd74f24d329672de7df9cf7afd9",
+  "sha256": "1l29mz5y6ldrd9kcs7fxjd7chm1gbfbs9mcv3xsfgbcyhicqmrjf",
+  "fetcher": "github",
+  "repo": "xenodium/company-org-block",
+  "unstable": {
+   "version": [
+    20210607,
+    1202
+   ],
+   "deps": [
+    "company",
+    "org"
+   ],
+   "commit": "e2742dea77b356ee11a1200263d48eed79f5fe43",
+   "sha256": "194kjkpaca7k60hxs96mah416fdn5mfbsa4wgrpc3cprlrbyp8jr"
+  }
+ },
+ {
   "ename": "company-php",
   "commit": "ac283f1b65c3ba6278e9d3236e5a19734e42b123",
   "sha256": "1gnhklfkg17vxfx7fw65lr4nr07jx71y84mhs9zszwcr9p840hh5",
@@ -14328,15 +14565,15 @@
    "version": [
     2,
     4,
-    0
+    1
    ],
    "deps": [
     "ac-php-core",
     "cl-lib",
     "company"
    ],
-   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
-   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   }
  },
  {
@@ -14354,8 +14591,8 @@
     "company",
     "phpactor"
    ],
-   "commit": "80788a817b0257363c1eee11a57cc0f873f0eef1",
-   "sha256": "1w4zxp6j77xd9qcz9skpj8jbl8ink1fgdd5f1dhx0486g882mi2l"
+   "commit": "debf66848c6099415c731b179dcd47e96db3b50b",
+   "sha256": "0i5g4gh5i5y8wsrqw89lwi2s2sn67pvvj2y6p7lnyv0i201v5bs8"
   },
   "stable": {
    "version": [
@@ -14455,15 +14692,15 @@
   "repo": "tumashu/company-posframe",
   "unstable": {
    "version": [
-    20210331,
-    325
+    20210419,
+    607
    ],
    "deps": [
     "company",
     "posframe"
    ],
-   "commit": "a28f38213a2a30ce68fdb0b124cadc68ebbcb24f",
-   "sha256": "1ys40y62c0aqs8nlyhnkahb67slh0i4dpvxvj8mcvcmp68aiih3f"
+   "commit": "c7a820a35ff132aaec53c81e05afc829de39eb68",
+   "sha256": "0fyc7c4r4jfa5y0x9lfcqlx0qazg1d4il5p0bdw4hdcpjd2h26ys"
   },
   "stable": {
    "version": [
@@ -14494,8 +14731,8 @@
     "company",
     "prescient"
    ],
-   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
-   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
+   "commit": "4a0f5405798cfcb98ea005078ef2e2d490e922c4",
+   "sha256": "04rz8mypgslb0la4wgj3na5c8p28s9lghq4nykcb28nhcxwfvz8n"
   },
   "stable": {
    "version": [
@@ -14537,15 +14774,15 @@
   "repo": "company-mode/company-quickhelp",
   "unstable": {
    "version": [
-    20210329,
-    1602
+    20210515,
+    2212
    ],
    "deps": [
     "company",
     "pos-tip"
    ],
-   "commit": "8c667a9d7c06782340ebe91cd94f490e44dd2547",
-   "sha256": "0vmypqlh2b1qjbrp0mw2c1ikdpm2d02chpqc1qps9j27yvv6y27w"
+   "commit": "530b29380f0f95ae338cbe089693d786e6f53d86",
+   "sha256": "0w2xj9k50j96x81l767ah1m17pcjsbfk91mndm4w25p30kd1g8j4"
   },
   "stable": {
    "version": [
@@ -14621,15 +14858,15 @@
   "repo": "TheBB/company-reftex",
   "unstable": {
    "version": [
-    20201116,
-    1605
+    20210418,
+    1316
    ],
    "deps": [
     "company",
     "s"
    ],
-   "commit": "291c283c8a015fd7cbaa99f836e1a721f1e2c832",
-   "sha256": "0qwmjqcpi10lwsrppifjyr041hmgqb86nxpb970rb1m3n9p5rnk0"
+   "commit": "42eb98c6504e65989635d95ab81b65b9d5798e76",
+   "sha256": "0x5zhhy70cdhbark2vm364bazg2mbwlhy7123qyq02knsjdwwqrl"
   }
  },
  {
@@ -14749,8 +14986,8 @@
     "company",
     "solidity-mode"
    ],
-   "commit": "b83354943626ea7c50011d5806b17be17077d1c4",
-   "sha256": "0h4fyyv2k44x67nwqflh3zpazfkcf5zbgdzwjxbwjgvvxm1hdqlx"
+   "commit": "383ac144727c716c65989c079ae76127e25144c3",
+   "sha256": "1q4b8623mygzp3qwy5bmb3hipzjfri9007x0ilq3i7k5bs34jz9r"
   },
   "stable": {
    "version": [
@@ -14775,17 +15012,16 @@
   "repo": "nathankot/company-sourcekit",
   "unstable": {
    "version": [
-    20170126,
-    1153
+    20210430,
+    2155
    ],
    "deps": [
     "company",
     "dash",
-    "dash-functional",
     "sourcekit"
    ],
-   "commit": "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781",
-   "sha256": "1g8a4fgy2c5nqk8gysbnzn5jvfw6ynmfhc6j3hkrbswgf9188v5n"
+   "commit": "a1860ad4dd3a542acd2fa0dfac2a388cbdf4af0c",
+   "sha256": "18pv1hcilj7kndr7a29jjskp21khh1sd0wy01h8y8y9mf70kikg6"
   },
   "stable": {
    "version": [
@@ -15132,14 +15368,14 @@
   "repo": "mkcms/compiler-explorer.el",
   "unstable": {
    "version": [
-    20210212,
-    2218
+    20210513,
+    409
    ],
    "deps": [
     "request"
    ],
-   "commit": "13dd0d44590dbf513aa0d70b518a3d2b1644179c",
-   "sha256": "0qwsajgwl28r4kpfxr5vzqwzspcjg0bb0n7cln8fp55bbq8wprq7"
+   "commit": "70cae42f0d624b6ce03b55c35ba9a6c2318a827d",
+   "sha256": "0k2249iyjrgghsp6yy7qrlc7n7m7b5vp44mda40d3058jv6ryxgi"
   },
   "stable": {
    "version": [
@@ -15162,11 +15398,11 @@
   "repo": "muffinmad/emacs-completions-frame",
   "unstable": {
    "version": [
-    20201123,
-    1213
+    20210430,
+    640
    ],
-   "commit": "95e0845fdac5412a511ca15b12189ed9487a64a7",
-   "sha256": "1mz7dxa4bhay4h2kh1f4g4dwsfswidlhiy11s4a6l3zjqjj8hklb"
+   "commit": "860e5b97730df7ef5c34584ad164bc69c561db84",
+   "sha256": "026qzq1ddk1acqsgbsd2nk2g5gm9ml2sq31rnsdapzaj4rxa192w"
   }
  },
  {
@@ -15461,56 +15697,121 @@
  },
  {
   "ename": "consult",
-  "commit": "a0f3b8b11eb8f9adf182ab62fcb276b52bc26f19",
-  "sha256": "17zriam6hgz19ms78c9zh0hvb4b6h5hinrinbmbb2jcwi4cykxs3",
+  "commit": "5a141c728f28e53b9f92ccbbff07c2af1dde3706",
+  "sha256": "02z6h0x346230ayncsb8phks9mmjdq5mj9ja68380hl6gkic3407",
   "fetcher": "github",
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20210411,
-    2120
+    20210606,
+    1237
    ],
-   "commit": "812204b647b1f45cc9d04d7d2f565061940f5e70",
-   "sha256": "11jpmswhx5x69wsrl5mg9wmxm49hqkdn2r9swz9z7hikk7485mx8"
+   "commit": "ae905501bcdb8fdda0d10a0846d575fd2a38e6d7",
+   "sha256": "1jz4j27irxknfbcxsn8phhhaiwyc2z9gnyrj03ah1v57i0i9g79c"
   },
   "stable": {
    "version": [
     0,
-    6
+    8
    ],
-   "commit": "3184edd6ccf9cfb300511feb297b9012ce902bbe",
-   "sha256": "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"
+   "commit": "e538f168d9d16c926d92c19d6131298962b778a9",
+   "sha256": "1460818fb6y086vgn1mzmrwhpa5jswlwi4v71zr86cg6y7yg4248"
   }
  },
  {
   "ename": "consult-flycheck",
-  "commit": "1a1fbbfebeb88dab2d032e994ec21c976f059d22",
-  "sha256": "0gf7nb2zylmm53xszd53qp7byvlppd2j9lh61p8syanjssqy4j67",
+  "commit": "5a141c728f28e53b9f92ccbbff07c2af1dde3706",
+  "sha256": "1cwbm7qsni8ycasx2v20yd1749lmlhf98kz28i1p8m0yqkjc3my0",
   "fetcher": "github",
-  "repo": "minad/consult",
+  "repo": "minad/consult-flycheck",
   "unstable": {
    "version": [
-    20210410,
-    1355
+    20210530,
+    202
    ],
    "deps": [
     "consult",
     "flycheck"
    ],
-   "commit": "812204b647b1f45cc9d04d7d2f565061940f5e70",
-   "sha256": "11jpmswhx5x69wsrl5mg9wmxm49hqkdn2r9swz9z7hikk7485mx8"
+   "commit": "92b259e6a8ebe6439f67d3d7ffa44b7e64b76478",
+   "sha256": "15lihfdjdp5ynmq0g8wkq8dhb2jdlvfcqbb2ap588igi5vax3glz"
   },
   "stable": {
    "version": [
     0,
-    6
+    8
    ],
    "deps": [
     "consult",
     "flycheck"
    ],
-   "commit": "3184edd6ccf9cfb300511feb297b9012ce902bbe",
-   "sha256": "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"
+   "commit": "92b259e6a8ebe6439f67d3d7ffa44b7e64b76478",
+   "sha256": "15lihfdjdp5ynmq0g8wkq8dhb2jdlvfcqbb2ap588igi5vax3glz"
+  }
+ },
+ {
+  "ename": "consult-ghq",
+  "commit": "513921c684fbab5ff57e47c509a89b15d7d3a5ce",
+  "sha256": "091018x5y28lbffjrb75a5r2cvprlhz0jdj371nlyvrpsdgdfs4f",
+  "fetcher": "github",
+  "repo": "tomoya/consult-ghq",
+  "unstable": {
+   "version": [
+    20210606,
+    2047
+   ],
+   "deps": [
+    "affe",
+    "consult"
+   ],
+   "commit": "c8619d66bd8f8728e43ed15096078b89eb4d2083",
+   "sha256": "1zrxigf7bnx6l9lv2xvnn3ba6c9dndijw1vlnli56cv215i0r4f6"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    4
+   ],
+   "deps": [
+    "affe",
+    "consult"
+   ],
+   "commit": "c8619d66bd8f8728e43ed15096078b89eb4d2083",
+   "sha256": "1zrxigf7bnx6l9lv2xvnn3ba6c9dndijw1vlnli56cv215i0r4f6"
+  }
+ },
+ {
+  "ename": "consult-lsp",
+  "commit": "c2d4a871be8f52fcfd24c3823382a983d9dcce46",
+  "sha256": "0qrillb8yg8lzilbf40y8c9jpf8jyhfdry2xp6d9mlfnkrdc1qr0",
+  "fetcher": "github",
+  "repo": "gagbo/consult-lsp",
+  "unstable": {
+   "version": [
+    20210428,
+    1515
+   ],
+   "deps": [
+    "consult",
+    "f",
+    "lsp-mode"
+   ],
+   "commit": "12989949cc21a1173206f688d56a1e798073a4c3",
+   "sha256": "0g3bpi53x6gr9631kzidbv4596bvdbxlr8y84ln40iwx5j8w6s7p"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "consult",
+    "f",
+    "lsp-mode"
+   ],
+   "commit": "c4c0426b58946578ac1806a60258d2b275d5b524",
+   "sha256": "11lrnv5ssiwwdvdib05nz070yc3w9lfcqikgnl3bq8gbcrm9zjf4"
   }
  },
  {
@@ -15521,27 +15822,27 @@
   "url": "https://codeberg.org/jao/consult-notmuch.git",
   "unstable": {
    "version": [
-    20210312,
-    2201
+    20210519,
+    57
    ],
    "deps": [
     "consult",
     "notmuch"
    ],
-   "commit": "67cf219fcce211237347a783ce6982402341d5fd",
-   "sha256": "03amdvzj09dsdjc7y6xvxn429by9vzyv5wghyairn9n0rf8c3r1m"
+   "commit": "71aa3b8ee6cd3cd07313b74353ac29fdfde0e7b0",
+   "sha256": "1wfghhyv89fcnjznvjwriwdpksr3yijr5lg0xihc7vssz05c7qpr"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
    "deps": [
     "consult",
     "notmuch"
    ],
-   "commit": "0bcdad24c8cc4ac530fcafd90ab728ed5dfbf0ed",
-   "sha256": "1s9glbwdwk29pp5nj4ab6giakhjqx4rcy4zbf7ml7h83qi59sd68"
+   "commit": "5cc6684f6e9cbeb23a06280a1cc9332658d37514",
+   "sha256": "1s1imciy8yb3kkgbdsqsvlv0j40sm94lvv9z5kq58w6n9c2dmb48"
   }
  },
  {
@@ -15570,16 +15871,15 @@
   "url": "https://codeberg.org/jao/espotify",
   "unstable": {
    "version": [
-    20210411,
-    1305
+    20210605,
+    1502
    ],
    "deps": [
     "consult",
-    "espotify",
-    "marginalia"
+    "espotify"
    ],
-   "commit": "22b81067ebcaef2cea633f967a4b55454af9326a",
-   "sha256": "0b93a8km80r1c3gbinnsigkkq8yc127jwrqj8s8z130b79ch91hn"
+   "commit": "3d62a3319ab03a810030058d3fb368b28dfd82d5",
+   "sha256": "0hj3nczmqmgiwsvh664rs34j63wl325x6nar21p1a84h5ximpkxq"
   }
  },
  {
@@ -15895,15 +16195,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210404,
-    1716
+    20210509,
+    830
    ],
    "deps": [
     "ivy",
     "swiper"
    ],
-   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
-   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
+   "commit": "040d458bce4a88f37359192061bcea5ebe87007c",
+   "sha256": "0lgpawrsvihksm9cx462qa1hsmxhhv1qp0h1f9m4wn1jrcrq7r24"
   },
   "stable": {
    "version": [
@@ -16127,14 +16427,14 @@
   "repo": "CsBigDataHub/counsel-fd",
   "unstable": {
    "version": [
-    20200902,
-    2147
+    20210606,
+    1724
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "533d70f229abc73b013668bd03f7486effa1e369",
-   "sha256": "0iz0blxbi0zcilyg4a5aqzggy1b0rdygw5q45szp9hbzzqdb5wfg"
+   "commit": "e9513a3c7f6cdbdf038f951e828e631c0455e7d4",
+   "sha256": "005l1is12jq35nn1ap87a7p74qin26zpgbk599619lh9vai157ww"
   }
  },
  {
@@ -16207,14 +16507,32 @@
   "stable": {
    "version": [
     1,
-    0,
-    0
+    1
    ],
    "deps": [
+    "ivy",
     "swiper"
    ],
-   "commit": "33d709f5b73a68093ec9414c774844d5f4983aee",
-   "sha256": "120i4j4bw3v1ybcwrfpn0v7jphhk7hhlp738m60fck97p9lwfyy0"
+   "commit": "8cadd2e96470402ede4881b4e955872976443689",
+   "sha256": "1chfrzkqfsw1rlwkb3k7v827fwipg0cish22rr3sxxydxr7kysx5"
+  }
+ },
+ {
+  "ename": "counsel-mairix",
+  "commit": "2ca80edc78250911b84e806f750d5474e7d93e86",
+  "sha256": "1i535x0xw9sj602l70sabg6y5mxzff5wlr0gpfqw9by5g7q79w95",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~ane/counsel-mairix",
+  "unstable": {
+   "version": [
+    20210422,
+    649
+   ],
+   "deps": [
+    "ivy"
+   ],
+   "commit": "39fa2ad10a5f899cb3f3275f9a6ebd166c51216a",
+   "sha256": "1z5qn9k68413jr946dy53l02zk2b1qx6wl5w3gp0jh34i3b6yk2y"
   }
  },
  {
@@ -16387,14 +16705,14 @@
   "repo": "masasam/emacs-counsel-tramp",
   "unstable": {
    "version": [
-    20190616,
-    122
+    20210518,
+    1153
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "719b38ba2242cc1c6d1d79cab106c8c8b1afa775",
-   "sha256": "1jjgyps59xiyqdi392cfbx19n0znw3kj3fxbc5v3l56i3qm24bd4"
+   "commit": "76719eebb791920272c69e75e234f05a815bb5c2",
+   "sha256": "0pcymxi54b2jmr2k2cibak0nmcnr42spjwsavwr8598kgvkfk488"
   },
   "stable": {
    "version": [
@@ -16547,6 +16865,21 @@
   }
  },
  {
+  "ename": "cowsay",
+  "commit": "1731327f28b2b47285a526b3ddd322d5b4a862e8",
+  "sha256": "0f2iq8jd2w5bcsv4yksyj7l50g9yvi28dhjx29dyxlywbj0nqz98",
+  "fetcher": "github",
+  "repo": "lassik/emacs-cowsay",
+  "unstable": {
+   "version": [
+    20210510,
+    1540
+   ],
+   "commit": "d8a72a311c6875f1aef6a30b3d23a1b02df75941",
+   "sha256": "0sczdlhpqs0pgka426ngvvcf01c6lvgk2aykajc5b2zgxywkfg40"
+  }
+ },
+ {
   "ename": "cp5022x",
   "commit": "761fcb0ff07d9746d68e9946c8b46e50c67cd1d8",
   "sha256": "0v1jhkix01l299m67jag43rnps68m19zy83vvdglxa8dj3naz5dl",
@@ -16724,6 +17057,33 @@
   }
  },
  {
+  "ename": "create-link",
+  "commit": "80b967b973240c5124957180819aeacac66271bb",
+  "sha256": "0ypj1sd9jabr5mmrpwibsahrchxs28kp4xv1yjk5pqwyz0r08a8b",
+  "fetcher": "github",
+  "repo": "kijimaD/create-link",
+  "unstable": {
+   "version": [
+    20210601,
+    1327
+   ],
+   "commit": "771a405e262c98b802e2c5302306aed802d8233e",
+   "sha256": "0kcv3jjygjvz75irjdddgakw8b0ckm5gqasrb2341zgqms7l9rfr"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "request",
+    "w3m"
+   ],
+   "commit": "fbc4e8eeec845f7d1610c52b81c0c7a4e961b991",
+   "sha256": "0h1ih1jsywhxhy91yjkz9464j79ma3mp73lxnfww71rwfd0wamyj"
+  }
+ },
+ {
   "ename": "creds",
   "commit": "81b032049ccc3837e8693f010b39716912f76bba",
   "sha256": "0n11xxaf93bbc9ih25wj09zzw4sj32wb99qig4zcy8bpkl5y3llk",
@@ -17258,11 +17618,11 @@
   "repo": "raxod502/ctrlf",
   "unstable": {
    "version": [
-    20210404,
-    1704
+    20210418,
+    2044
    ],
-   "commit": "45026a8655fb170004959f83b984589224cc156e",
-   "sha256": "0ij830jpkrp29rrpapmr9cglnjsdiycp3j620sd10s069wavbmcr"
+   "commit": "dbe83710d06bc39315f1455f6f21479f3747c0aa",
+   "sha256": "0nl7mh1i9pw039gd0ma6xrv499aw2vs3a1fm1bxz71hh13jmbd4c"
   },
   "stable": {
    "version": [
@@ -17463,11 +17823,11 @@
   "repo": "lassik/emacs-currency-convert",
   "unstable": {
    "version": [
-    20201017,
-    1817
+    20210427,
+    2032
    ],
-   "commit": "0b12614956085444d73c47bc308c02cef0f64f97",
-   "sha256": "0abpkcn2mcg0c4nycannwz9skvl6w7zgvbh1rx30qw0wl0i5svdm"
+   "commit": "12805ea66aa8421de5eedda39d23f709de634460",
+   "sha256": "1p304k3s0iawsrlpndc9vrjxm1vv4nlkv0fb51x8pmcqw5ivy1dg"
   }
  },
  {
@@ -17488,10 +17848,10 @@
    "version": [
     1,
     0,
-    3
+    4
    ],
-   "commit": "2d7c5547e4b0da361b1533d2ff30e3f62f4b682c",
-   "sha256": "1d1mz0j51i09g2fn25iik7wk0cc9i6ps8qviik73fy7ivvxjn0vp"
+   "commit": "d82441c85773bec2bc41eb3c5778659f0be31a61",
+   "sha256": "0qi40qgya3k028sgmqhqslgdfkxq9iv3wpzhz6x87j0xqv32jd55"
   }
  },
  {
@@ -17532,26 +17892,26 @@
   "repo": "tom-tan/cwl-mode",
   "unstable": {
    "version": [
-    20171205,
-    945
+    20210510,
+    1150
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "bdeb9c0734126f940db80bfb8b1dc735dab671c7",
-   "sha256": "0x9rvyhgy7ijq2r9pin94jz7nisrw6z91jch7d27lkhrmyb1rwk3"
+   "commit": "23a333119efaac78453cba95d316109805bd6aec",
+   "sha256": "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"
   },
   "stable": {
    "version": [
     0,
     2,
-    5
+    6
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "bdeb9c0734126f940db80bfb8b1dc735dab671c7",
-   "sha256": "0x9rvyhgy7ijq2r9pin94jz7nisrw6z91jch7d27lkhrmyb1rwk3"
+   "commit": "23a333119efaac78453cba95d316109805bd6aec",
+   "sha256": "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"
   }
  },
  {
@@ -17690,17 +18050,17 @@
     20190111,
     2150
    ],
-   "commit": "8cef4203124241911f63dc171f5536665f324507",
-   "sha256": "0qm605xkr294yrmrkzsqq9bhdqyg9nxiwxwg1br6hzcj01wvgjqf"
+   "commit": "7b018126aefb100a4f00aeba121688e8a168ee22",
+   "sha256": "0wxjnxic06kkdjlsd0r0afpms26rhdyskv2f4nj7gabiz1m341gm"
   },
   "stable": {
    "version": [
     0,
     29,
-    22
+    23
    ],
-   "commit": "3e470fcc3a4e9a33b66d5db6ab761c773888a1ea",
-   "sha256": "1fbi0ladg9c37hw3js72i72nza8hfjzm5c8w95c6bmzsl22lszwi"
+   "commit": "17670781083e3ccfedb1af4adcec614d4599eef9",
+   "sha256": "1yri0ay0p3p80h9ypq692470y1b99y4hk468zqlmfzb87yv8vv7j"
   }
  },
  {
@@ -17842,11 +18202,11 @@
   "repo": "rails-to-cosmos/danneskjold-theme",
   "unstable": {
    "version": [
-    20210407,
-    1942
+    20210429,
+    657
    ],
-   "commit": "cd45635155aa6bae941156043217ce11531deca9",
-   "sha256": "1j2fr8gcy5pxzvaf3xh9z2k6bsdbw5z0a2ciys1zy8629sfx6w83"
+   "commit": "e4d1f2c76245fe9d0d07133a841e789d139df28d",
+   "sha256": "1ii3cgf4hlclwaraisxksv98mmhajx517i60p1cgd7vapznn2b6v"
   }
  },
  {
@@ -17898,8 +18258,8 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20210405,
-    1739
+    20210519,
+    1554
    ],
    "deps": [
     "bui",
@@ -17911,8 +18271,8 @@
     "posframe",
     "s"
    ],
-   "commit": "2cb49bb2ec22a7d6d4fd403bd4e2cc468f512501",
-   "sha256": "0zymjabd6xpsdy3jr72rag8dmd7c1hsr1d973yjmvwj1awh9d0dd"
+   "commit": "cc395e066755c7513d4862f5639f3d162b3bd30f",
+   "sha256": "0nmpldvkhgi668zpn5wym6rfvsdnib9ny2snzwsrrfgqa70lmky6"
   },
   "stable": {
    "version": [
@@ -18129,8 +18489,8 @@
   "repo": "bradyt/dart-server",
   "unstable": {
    "version": [
-    20190817,
-    1254
+    20210501,
+    1445
    ],
    "deps": [
     "cl-lib",
@@ -18138,8 +18498,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "aba838e8ee2f30309f366e8a91c17616549003ce",
-   "sha256": "0lwss1s1n2kfy0i8nwwfmz5fnw137zkhjs6zv81piniad6hrmn1l"
+   "commit": "75562baf9a89b7e314bc2f795f6ecdc5d1f2cc8c",
+   "sha256": "06v4gbckfgdl7hbppgv15ynsxq37qqdw1h8yzicwjqgylma0if1y"
   },
   "stable": {
    "version": [
@@ -18165,11 +18525,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20210330,
-    1544
+    20210602,
+    1928
    ],
-   "commit": "b9286a84975874b10493f1cb4ea051c501f51273",
-   "sha256": "13qmv5h2fvy1aqcc3xg7am3phpraw4jliz6qjcx0fjfshndkh5xl"
+   "commit": "aab346ed9d8f0f7ea033029c9688810353052e7e",
+   "sha256": "0vq8sgbil17llimaar4j5ar07g17q8ir3a7hfpmv9572ah1zqpw9"
   },
   "stable": {
    "version": [
@@ -18244,8 +18604,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "b9286a84975874b10493f1cb4ea051c501f51273",
-   "sha256": "13qmv5h2fvy1aqcc3xg7am3phpraw4jliz6qjcx0fjfshndkh5xl"
+   "commit": "aab346ed9d8f0f7ea033029c9688810353052e7e",
+   "sha256": "0vq8sgbil17llimaar4j5ar07g17q8ir3a7hfpmv9572ah1zqpw9"
   },
   "stable": {
    "version": [
@@ -18268,14 +18628,14 @@
   "repo": "emacs-dashboard/emacs-dashboard",
   "unstable": {
    "version": [
-    20210325,
-    757
+    20210427,
+    705
    ],
    "deps": [
     "page-break-lines"
    ],
-   "commit": "00f1dc84d3fbaf439d23645aa531eee59e28f688",
-   "sha256": "0afn7p79na8351gimmjrj2z4y3slyvsrinm8gx7qphflz2a13m2z"
+   "commit": "9983aa0838ce5a2219ef4b674e6b37de41b5b585",
+   "sha256": "1mi1jn5gknvs7xjgj2v4dcq7z1a7xknksgfqi66bby7cl6cr3hqd"
   },
   "stable": {
    "version": [
@@ -18607,15 +18967,15 @@
   "repo": "skk-dev/ddskk",
   "unstable": {
    "version": [
-    20210112,
-    2013
+    20210522,
+    348
    ],
    "deps": [
     "ccc",
     "cdb"
    ],
-   "commit": "a266f70eb99ffb657b7821c2e1de49f5184a59ed",
-   "sha256": "0j1gcsi40yrfy9saqjdhxnwsvmqf32l9mnwfvhbbfxm82ddhwxnk"
+   "commit": "ce0517127586e26f95f94f45d22a832f40a28321",
+   "sha256": "1qx99sigzmj4fc5wcaqs6wnyzsrzcqg73czn5aknxqkzd1whsk3a"
   }
  },
  {
@@ -18657,29 +19017,29 @@
   "repo": "Wilfred/deadgrep",
   "unstable": {
    "version": [
-    20210219,
-    748
+    20210510,
+    416
    ],
    "deps": [
     "dash",
     "s",
     "spinner"
    ],
-   "commit": "ca16c37ffa5caa5f698bc049012489a2e3071bcc",
-   "sha256": "055yxchqbqp4pbw9w9phibnp0a2qw1jsb1a5xbfc558phi2vbxdd"
+   "commit": "83e7812cda2673884b3d4d218757c7489f817fbb",
+   "sha256": "1fiwr55s4aq38kyai9k77lb7j0kk53bcrrhd8sw0yqb65a1n363i"
   },
   "stable": {
    "version": [
     0,
-    9
+    10
    ],
    "deps": [
     "dash",
     "s",
     "spinner"
    ],
-   "commit": "411a6973580b3503535ba58e405035bde2392903",
-   "sha256": "05xsf2axlxdsv8aivd7qyb0ipf9cp95y9f0sf0kaqpc1rn6i79ps"
+   "commit": "647523452d57e94cec6ebc28e35d3e88487d82dc",
+   "sha256": "1lb17pisy0zfz9ixawf8rld34m47zil96r3khlv32vzpi84f9x1a"
   }
  },
  {
@@ -18839,11 +19199,11 @@
   "repo": "ideasman42/emacs-default-font-presets",
   "unstable": {
    "version": [
-    20201227,
-    2319
+    20210418,
+    924
    ],
-   "commit": "e5aad0510139cca42b37614d3599951ac0a28ccc",
-   "sha256": "0kp3ngmdwip7c4c9mvw1l04p13gjjfaigwdiaycbzd5jzlgdh6rq"
+   "commit": "81ef9d54000617ce98c40b4627eca64e076ff11d",
+   "sha256": "14l1m8jaqranj01fr040l2g560gbpbnd4sha4x4rcs2gc99sjqxx"
   }
  },
  {
@@ -19213,11 +19573,11 @@
   "repo": "lassik/emacs-desktop-mail-user-agent",
   "unstable": {
    "version": [
-    20210309,
-    1355
+    20210519,
+    1008
    ],
-   "commit": "64d0a75491414b119e044ea8fdf771753491a8cc",
-   "sha256": "0gkx1sdplnnihfvqj2cwnfdcd08s13zxv3in3a68fi8w2l6cn7ki"
+   "commit": "caac672ef7e4ddced960fa31cef3a6ba5d7ab451",
+   "sha256": "13wwbwynnsj3hj6riv3gzxhqrhbw4yc7gibcxakphk2b9r3c4k77"
   },
   "stable": {
    "version": [
@@ -19269,17 +19629,32 @@
  },
  {
   "ename": "devdocs",
-  "commit": "35763febad20f29320d459394f810668db6c3353",
-  "sha256": "14vab71fy5i1ccmzgfdg37lfs1ix3qwhcyk9lvbahcmwnbnimlzm",
+  "commit": "19d1adfa91593cc32a3ce94d47f4c32102408488",
+  "sha256": "1hizgj4fn3m986ri6zhx0a2dp0qkvm24farb4gcwf19p3ii70470",
   "fetcher": "github",
-  "repo": "xuchunyang/DevDocs.el",
+  "repo": "astoff/devdocs.el",
   "unstable": {
    "version": [
-    20170731,
-    850
+    20210606,
+    933
+   ],
+   "commit": "07fc164a680d02de2a7af983adb5e726cbfd7fc0",
+   "sha256": "1ldd4h9r7wiqgynxwlqf6hg5m2whzaczlhxmbch7i60rd72wwvrj"
+  }
+ },
+ {
+  "ename": "devdocs-browser",
+  "commit": "6c13d0ea72261c4835b5f1983a1f3ee1e066f743",
+  "sha256": "0gqvjn0arrxdc7lbqrpak9l83ampsbdlbzmi1fk02i431yv89rpc",
+  "fetcher": "github",
+  "repo": "blahgeek/emacs-devdocs-browser",
+  "unstable": {
+   "version": [
+    20210601,
+    1447
    ],
-   "commit": "a2d51e824f0cc48a9dd611cc740bc8b86143e611",
-   "sha256": "0nzh7pgvj4cs5d29lrrmbas29xdslgqzsqjmpapzqzbnrgprnbx8"
+   "commit": "d3702670eb361715e41440eb699523b3f4c60bee",
+   "sha256": "1mv0d67y6m1wi779lc0mnpylqiw3cnaj0rkj199fxh91nkc6vk27"
   }
  },
  {
@@ -19323,11 +19698,11 @@
   "repo": "redguardtoo/dianyou",
   "unstable": {
    "version": [
-    20191120,
-    39
+    20210525,
+    1517
    ],
-   "commit": "da7443a680bd8db75884355314e9352cd8c68d05",
-   "sha256": "099iiwp52rfnxgwhiaxdaridhcjdp3qchmskxmb1j5dz757c6w1c"
+   "commit": "f77d9e76be5d8022fa6ee5426144f13f38dd09f2",
+   "sha256": "08pwp1pv8c3klingl0qpymdh9ybqrjj47rdd191vhah2ahn5bs1g"
   },
   "stable": {
    "version": [
@@ -19492,14 +19867,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20210410,
-    130
+    20210523,
+    11
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8f4c2358ac00e32d261f7e77b29af60adfdf0e41",
-   "sha256": "1grd6pzbirdq42qcwxis3q97cxlx6r3m20lqg0lb77vk6k75y619"
+   "commit": "d4340608c2d6d8b81aad8e690d0265799aba16f3",
+   "sha256": "1haqmaaj6ajqqfdni6gn3nmqaif8jqrpdnr84m3zjddsdw5zlcsk"
   },
   "stable": {
    "version": [
@@ -19562,8 +19937,8 @@
    "deps": [
     "transient"
    ],
-   "commit": "fdb37bb696aaec6cb2bcece3760866760e68edc4",
-   "sha256": "1ig7hk9vhlym91gzk4s6h2a6aj425nln29m6f2hpq9jh3qicgh9i"
+   "commit": "96861493f95fe88118942bbe64954142250d6c24",
+   "sha256": "13dda1883pkji4nf44mx9xiys6rgirw12si9fnazsviiqycjaf1b"
   },
   "stable": {
    "version": [
@@ -19884,8 +20259,8 @@
    "deps": [
     "treeview"
    ],
-   "commit": "1f88a9ddda0b431c79564f91d470e8e308ed3c32",
-   "sha256": "1pxkxlpbbm4si5z8gx7lbqaw2qvf6h3qc1qxsp6s47h10nrpi9kk"
+   "commit": "53dc9dae71d1be3a7a925332a53e72d2bd05366b",
+   "sha256": "0hgcargxbl58f4im57c1zqwnfxl52lfv78s8l69njjggvdki0hz1"
   }
  },
  {
@@ -20233,11 +20608,11 @@
   "repo": "thomp/dired-launch",
   "unstable": {
    "version": [
-    20200430,
-    1625
+    20210510,
+    2137
    ],
-   "commit": "95a411f6d4bb5eec4ef8fdbba9f038ddf60da81f",
-   "sha256": "0rz8d9lj2zbipz6cwrlw2a3z9y4rybbmz73h73l1i7fjg9q1kqm4"
+   "commit": "757c82e888d80e5746ccb8654ba58389fa7dc0eb",
+   "sha256": "0la6xgl3lr5pjs3x5y0l1g66cjdilnw6m0h526chgq140265yg3l"
   }
  },
  {
@@ -20491,14 +20866,14 @@
   "repo": "jojojames/dired-sidebar",
   "unstable": {
    "version": [
-    20210301,
-    2158
+    20210411,
+    2315
    ],
    "deps": [
     "dired-subtree"
    ],
-   "commit": "92e7f77ec65c2089d75edb63ca312f55e3033be0",
-   "sha256": "0ad9r63jp257z95jb5537nbw64q6shdg4m5cmlx8asb7fp2wgsf8"
+   "commit": "79d8187da373b573a2d5385ca868553bb73e0005",
+   "sha256": "0b1f6ddhn8z4q790d370zhyqrn4mlqk7i6901sld52m14zigd72j"
   },
   "stable": {
    "version": [
@@ -20604,6 +20979,37 @@
   }
  },
  {
+  "ename": "dired-view-data",
+  "commit": "4a3f94025604a6efc529891d4bc78293f0a11a98",
+  "sha256": "00gc7qa278nfyxhpx9h765m62i1g6z5ambcg0kgksl8k0571xqj3",
+  "fetcher": "github",
+  "repo": "ShuguangSun/dired-view-data",
+  "unstable": {
+   "version": [
+    20210529,
+    600
+   ],
+   "deps": [
+    "ess",
+    "ess-view-data"
+   ],
+   "commit": "c865c34536d9c3140ce647f03c8b7498b46e935c",
+   "sha256": "0xca6kjr9qf7w9hz63hfai2hl055cdp5gm8nldr1xjv5gk42765h"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "ess",
+    "ess-view-data"
+   ],
+   "commit": "c865c34536d9c3140ce647f03c8b7498b46e935c",
+   "sha256": "0xca6kjr9qf7w9hz63hfai2hl055cdp5gm8nldr1xjv5gk42765h"
+  }
+ },
+ {
   "ename": "diredc",
   "commit": "abaea37c792e6593665dc536e8803e0f591f7359",
   "sha256": "09wfizmqp2njb2xi532qixs5syccmadpc5bbm55i7xfqrr52d7zy",
@@ -20611,11 +21017,14 @@
   "repo": "Boruch-Baum/emacs-diredc",
   "unstable": {
    "version": [
-    20210316,
-    1841
+    20210603,
+    2349
    ],
-   "commit": "dd945de3e0c66a164f003a96d473376b58fc6dc7",
-   "sha256": "1d4rdrc827nnb9p56la1sd9nzwjbxbnr8fgmcgardlz3qw97j3q1"
+   "deps": [
+    "key-assist"
+   ],
+   "commit": "43159042ca788be74c387cc59ba3fffc57079993",
+   "sha256": "01r6sk2zlj3mf39vczaybhpzzmv379vvi85mc4gygif24m102sg3"
   },
   "stable": {
    "version": [
@@ -20680,14 +21089,14 @@
   "repo": "wbolster/emacs-direnv",
   "unstable": {
    "version": [
-    20210117,
-    1213
+    20210419,
+    1851
    ],
    "deps": [
     "dash"
    ],
-   "commit": "381176f301dea8414a5a395c0d6546507838f6ce",
-   "sha256": "0hmj5m3wiqwdmjzxbzkf4sg8gaswdv5rv6jqgqvz3h9sm17fnps7"
+   "commit": "4b94393a9adf677c7c037215e233eef5fbca553d",
+   "sha256": "14whrhi6hgzadrw9z9k2sh2800483xs1h611avz4x68c8d2jfj5k"
   },
   "stable": {
    "version": [
@@ -20802,11 +21211,11 @@
   "repo": "purcell/disable-mouse",
   "unstable": {
    "version": [
-    20200304,
-    2159
+    20210512,
+    2114
    ],
-   "commit": "a8318f5f21716316053cc092ab9abb43cb681fe0",
-   "sha256": "0z9749hd3x1z2sf3lyzx2rrcfarixmfg0hnc5xsckkgyb7gbn6hq"
+   "commit": "cae3be9dd012727b40ad3b511731191f79cebe42",
+   "sha256": "0zx3ihhxhjvhsi08khyx8fdhw2kg065zhhicqc587jsabk0wzj6f"
   },
   "stable": {
    "version": [
@@ -21455,8 +21864,8 @@
   "repo": "Silex/docker.el",
   "unstable": {
    "version": [
-    20210404,
-    1000
+    20210516,
+    1958
    ],
    "deps": [
     "dash",
@@ -21466,8 +21875,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "ba55e1e52c20daa0063ccabce2ccc973d58b1669",
-   "sha256": "1r0fjdn7qrb3in8lgwihxi9zdzc325l21f8cs00mbipflss20si4"
+   "commit": "bc2dc09edea167d4fdf022aa263bad71932bb0c4",
+   "sha256": "009qxd0q77pzq2xvm060zswy0amga9cdcc1h3zf2mhn2cw64ydic"
   },
   "stable": {
    "version": [
@@ -21571,14 +21980,14 @@
   "repo": "emacs-pe/docker-tramp.el",
   "unstable": {
    "version": [
-    20170207,
-    325
+    20210526,
+    748
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8e2b671eff7a81af43b76d9dfcf94ddaa8333a23",
-   "sha256": "1lgjvrss25d4hwgygr1amsbkh1l4kgpsdjpxxpyfgil1542haan1"
+   "commit": "aaee11cedf7b4c31700f24a1fd88dcef9c2a7c3d",
+   "sha256": "120sxrifn82hhrqhqdy0dhnni353vwzkkd5x7inqg1wpzsxjwhzl"
   },
   "stable": {
    "version": [
@@ -21661,14 +22070,14 @@
   "repo": "jcs-elpa/docstr",
   "unstable": {
    "version": [
-    20210410,
-    1249
+    20210417,
+    1315
    ],
    "deps": [
     "s"
    ],
-   "commit": "67a219425d1fe9a29ad3beae0677d5ca0047bd53",
-   "sha256": "0irqfn5cxb8gkxvdmikmjz2j9km6k7057r7yw5aypgaxm89a404x"
+   "commit": "f6dcb378bb69c23d58978d5bc1e37c4ae160d278",
+   "sha256": "055b24cskxp0wy74synnnsmfnzbavmazyackq0qfnfbkqryrzfml"
   },
   "stable": {
    "version": [
@@ -21810,30 +22219,30 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20210330,
-    1522
+    20210606,
+    1532
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "669cac3839271f84ccfed06eddaad206224ca831",
-   "sha256": "1p5w5qbz6dgsk1dcy4fspdqwh03h4cxs175ng6zm6590dk0xs5bb"
+   "commit": "1660910b758251608c17e1a0e27ff862e345daab",
+   "sha256": "1apbh9kp1qk3klx65imbhmxxnf8ax0hzzcdwj4n6qpm7s6bk1gc3"
   },
   "stable": {
    "version": [
     3,
-    0,
-    0
+    1,
+    1
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "b44955841a301f4930b054e912fa4c1a700d426d",
-   "sha256": "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"
+   "commit": "5cb0ff7a3878b218486fe7ef9b3c83cb226dd03e",
+   "sha256": "1dkgh87sv25mdlzdfihp6gp0asvwplx9yrn7nfsqzsfc3kpajkck"
   }
  },
  {
@@ -21863,14 +22272,14 @@
   "repo": "hlissner/emacs-doom-themes",
   "unstable": {
    "version": [
-    20210322,
-    1750
+    20210604,
+    1922
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4199e74db170200995ee8dfbb55ffae004d6e219",
-   "sha256": "0vfhnywww560rf0b7h2gc9w4x4738xwq12c8qi9y267110zg62mz"
+   "commit": "b2c0ea0f0778a6ea85b87e1b87916572e98e1fe7",
+   "sha256": "1rjhmjsszms4rlqq368f717ds4kmdjblkgd2ww830d7sy5h5rb6n"
   },
   "stable": {
    "version": [
@@ -22013,11 +22422,11 @@
   "repo": "gustavopuche/doxy-graph-mode",
   "unstable": {
    "version": [
-    20200807,
-    646
+    20210604,
+    723
    ],
-   "commit": "2685c28e7a725614c23345195c3b85e505be2a1b",
-   "sha256": "0a4kil5v88wkki3r4jjc9ackv2z7ik0qgn4bdv75baskig8f8qjy"
+   "commit": "88af6ef4bc9c8918b66c7774f0a115b2addc310e",
+   "sha256": "0adis4gprh7gzi1nm274gqgzr794fsq4zfjfwz3nh96agc8h8g7j"
   }
  },
  {
@@ -22114,11 +22523,11 @@
   "repo": "dracula/emacs",
   "unstable": {
    "version": [
-    20210220,
-    1358
+    20210518,
+    657
    ],
-   "commit": "b5e50ed1e30ee054fb6a0827e78382b038e83c46",
-   "sha256": "0bdlcvx95r0hwxpvdfac6xjcs59jn4mi29yny7bjz3x463czidcy"
+   "commit": "aa72f3d5c4d49cc0fb581d2f4eac528cf0278a11",
+   "sha256": "1ay4i606rjcr55ky54sxyvh6ac4s4ilr1i3pykvavdgmrzy3ij89"
   },
   "stable": {
    "version": [
@@ -22197,6 +22606,21 @@
   }
  },
  {
+  "ename": "dream-theme",
+  "commit": "21d32adebc711ffcff2633c5ec4ba4fe58dcb0b5",
+  "sha256": "1lbfassmf2b6ibi3szp5p1q57nabj133bgwfnlf21svhb85zax05",
+  "fetcher": "github",
+  "repo": "djcb/dream-theme",
+  "unstable": {
+   "version": [
+    20210419,
+    605
+   ],
+   "commit": "0c27f05544b90e41338f79ea923044b358a323c6",
+   "sha256": "1dnfisa6smrnjxm6yvb3w57skz4i8akigvzr8lsh1zr7by821wl0"
+  }
+ },
+ {
   "ename": "drill-instructor-AZIK-force",
   "commit": "fb5ee8a113b98e8df8368c5e17c6d762decf8f5b",
   "sha256": "1bb698r11m58csd2rm17fmiw691p25npphzqgjiiqbn4vx35ja7f",
@@ -22377,11 +22801,11 @@
   "repo": "jscheid/dtrt-indent",
   "unstable": {
    "version": [
-    20210307,
-    2140
+    20210423,
+    745
    ],
-   "commit": "37529fc7a98564164c87103e5107a6dca32b0e44",
-   "sha256": "1h2j25b6qayydl841zwbh73fw1177xgskrqm27cqmfx0bcpx7qq3"
+   "commit": "9714f2c5f1c9b7c21e732df8c15a870a88caba84",
+   "sha256": "1aygba84si1g8kx12hscwa6m3c3946r0vbk93p9izib9fkbgngw6"
   },
   "stable": {
    "version": [
@@ -22467,8 +22891,8 @@
     "popup",
     "s"
    ],
-   "commit": "8bc195000e17ce6c72755a8fb55ca0fcd36add76",
-   "sha256": "0dc31yy4r41nwwv57dzbd6zgwddizqh4q4qagpqx645l509s7k7i"
+   "commit": "8f70acbe164553b225476fed55019ecddcf0bbd6",
+   "sha256": "08g417yf4byhhldvcbkmhrlm7iaylkv0cbcg1c701dyfngxn01y2"
   },
   "stable": {
    "version": [
@@ -22512,17 +22936,46 @@
     20210213,
     757
    ],
-   "commit": "65404cf973aa7ffc0e9dd7d05c9dd3709c7db2d4",
-   "sha256": "13v4i59f0m5syjz49g5xh4nnr7k2wck0nf0pc5hgsv6g61gkpwvj"
+   "commit": "ac3a66e0f7d3577b27cc5d5f2399163bfbe11828",
+   "sha256": "1grll7h2hv906bik224qn9fldmq4lhnlfcif1lg4grr3f4nhl1wc"
   },
   "stable": {
    "version": [
     2,
     8,
-    4
+    5
+   ],
+   "commit": "e84ba5230f6afacb12f022937138a752f1c301b6",
+   "sha256": "0a1jj6njzsfjgklsirs6a79079wg4jhy6n888vg3dgp44awwq5jn"
+  }
+ },
+ {
+  "ename": "dune-format",
+  "commit": "82368b9bf29492002918a2d77023ff2ef0b9917c",
+  "sha256": "00fc7vbxqzx4q2azs26s2jyw3rhfwv3jplh3hk5fiqvrxd0krpix",
+  "fetcher": "github",
+  "repo": "purcell/emacs-dune-format",
+  "unstable": {
+   "version": [
+    20210505,
+    108
+   ],
+   "deps": [
+    "reformatter"
+   ],
+   "commit": "eda7a16ae378e7c482c11228c43ef32b893a1520",
+   "sha256": "0z39a1c227si435j3k8vkf4q6l01jdf70x69dywsmnrkcrcvrbf8"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
    ],
-   "commit": "b6a3f66fb15378fc7170e94778f4d2c0b142ad92",
-   "sha256": "1p3r197cfb96675n2s7mbggndqspcxxmk9lkncirixm3k7ww36l1"
+   "deps": [
+    "reformatter"
+   ],
+   "commit": "eda7a16ae378e7c482c11228c43ef32b893a1520",
+   "sha256": "0z39a1c227si435j3k8vkf4q6l01jdf70x69dywsmnrkcrcvrbf8"
   }
  },
  {
@@ -22572,11 +23025,11 @@
   "stable": {
    "version": [
     1,
-    0,
-    1
+    1,
+    0
    ],
-   "commit": "66d92f592b35fd168f23d7c58d698a1ed2dcaa0a",
-   "sha256": "1pfz1wwrdpdkd29309dryy7ficl1h1rfmgv7fbpy9p33vs9mdi9p"
+   "commit": "61c5718ba64ace4c9e29de18aa2690ecc3f0f258",
+   "sha256": "14nd544ispfj165ys6lv9bpy41p9j8kf4lwy73qigr4c7qlf43by"
   }
  },
  {
@@ -22587,14 +23040,14 @@
   "repo": "harsman/dyalog-mode",
   "unstable": {
    "version": [
-    20200822,
-    1536
+    20210413,
+    810
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f42e49b9dd7ab41f08361185cc25509f19b949a8",
-   "sha256": "1cqaa12pycwiv4cj100n8326f3yg59xgww3lk2l6x7841n7g7szm"
+   "commit": "697a84194766708d2607e8ba48a552e383c6523e",
+   "sha256": "1afcfqf9z1d67va9cdi2fxpr1l1nrgkksxh5g7h8ggqkml2ks8hn"
   }
  },
  {
@@ -22654,11 +23107,11 @@
   "repo": "zellerin/dynamic-graphs",
   "unstable": {
    "version": [
-    20200902,
-    1238
+    20210430,
+    352
    ],
-   "commit": "ba3fdf2cf0e5e1e952a1961a03dfb7f61a4ab0e7",
-   "sha256": "0cyngkba93swhgklh88r5czlvimc0pa9blg02cwz3mjwj5r558bl"
+   "commit": "f7239e381de56af5d6ff8e0d6ab31a78d3e3da58",
+   "sha256": "1v3p0ycm3yh8gvpbr96ml89470piam25qyhrwrkin228k17949br"
   }
  },
  {
@@ -22701,6 +23154,48 @@
   }
  },
  {
+  "ename": "dynaring",
+  "commit": "39e854aa623f34e9e2770ae8ccfe86a956f84479",
+  "sha256": "0vwhl9msvn4ss5jkcmmn14hcphc514sp1b5h90j0n4wzw1pma9wi",
+  "fetcher": "github",
+  "repo": "countvajhula/dynaring",
+  "unstable": {
+   "version": [
+    20210603,
+    2331
+   ],
+   "commit": "d3cc361b70b5dc4542624ced9c326523939ca021",
+   "sha256": "02mz2dfqfycw64z2906f9dvl5x6qb53xbhkn3hf5205hcg58w5zh"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "d640a557e3e7197cebb56365ad3552ffda39b838",
+   "sha256": "1fd17xryl2pkdlalc9jgwdkgl2mgks83wh5s8wilvwb21y8g306l"
+  }
+ },
+ {
+  "ename": "dyncloze",
+  "commit": "4725983cb1d5d2c5ad1dda162050973516196323",
+  "sha256": "173z9skkmpmjw0h5z1dcdlplihjz9yszn1h20p53w9sicif58i1c",
+  "fetcher": "github",
+  "repo": "ahyatt/emacs-dyncloze",
+  "unstable": {
+   "version": [
+    20210405,
+    212
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "38aac1a38017a707b4c539a7932cc8f6cd8f1a77",
+   "sha256": "05i0a1680a79xvawa93iip10ln6bkrnvzqh3a2lica4hfx0hsi0x"
+  }
+ },
+ {
   "ename": "e2ansi",
   "commit": "5e655a3fdfae80ea120cdb2ce84dd4fd36f9a71e",
   "sha256": "0ns1sldipx5kyqpi0bw79kdmhi1ry5glwxfzfx8r01hbbkf0cc94",
@@ -23097,26 +23592,26 @@
   "repo": "knu/easy-kill-extras.el",
   "unstable": {
    "version": [
-    20180920,
-    1334
+    20210529,
+    945
    ],
    "deps": [
     "easy-kill"
    ],
-   "commit": "b8ce8350cc86e0229f195082557970cd51def960",
-   "sha256": "1f8db92zzk8g8yyj0g334mdbgqmzrs8xamm1d24jai1289hm29xa"
+   "commit": "74e9d0fcafc38d5f24e6209671a552bc1ba5a867",
+   "sha256": "0yxfsp4zzzw9v4swgslsr4v35hs04sczskfyfdvw8wk0aahxcwrx"
   },
   "stable": {
    "version": [
     0,
     9,
-    6
+    10
    ],
    "deps": [
     "easy-kill"
    ],
-   "commit": "b8ce8350cc86e0229f195082557970cd51def960",
-   "sha256": "1f8db92zzk8g8yyj0g334mdbgqmzrs8xamm1d24jai1289hm29xa"
+   "commit": "74e9d0fcafc38d5f24e6209671a552bc1ba5a867",
+   "sha256": "0yxfsp4zzzw9v4swgslsr4v35hs04sczskfyfdvw8wk0aahxcwrx"
   }
  },
  {
@@ -23183,26 +23678,26 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20210407,
-    2146
+    20210607,
+    2206
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "bd1c9dcda79f734f6302e7c81ee0f13106a3a9e1",
-   "sha256": "1bd6hqiq178h1z8x0hjyrxg6l0h2inkzmrg6fadfj3ly1hbs5157"
+   "commit": "7e49d7e1eaeca755c0086a81967673eb5b45d175",
+   "sha256": "0n6p460nmy6h6sc29j1nmhb6zcbbk7qczab6pz96hyxp1cj9g5gy"
   },
   "stable": {
    "version": [
     2,
-    30,
+    32,
     1
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "6a3351c4bee70517facf0eac457a17a1efc21144",
-   "sha256": "0ppp6a8qyllh1kjrh8fa8dvhv98wnq0w742mzh8gahkjbrsjdwcj"
+   "commit": "3142de8d64789c611e553667cac3bb84428d004c",
+   "sha256": "1xgpdw0sxl2c9dn6x6fk0rqpqlqxsjlj0vyag611blj600br7dqr"
   }
  },
  {
@@ -24031,8 +24526,8 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20210410,
-    1942
+    20210526,
+    1751
    ],
    "deps": [
     "eldoc",
@@ -24041,8 +24536,8 @@
     "project",
     "xref"
    ],
-   "commit": "8a5598d06a0539492ec30fc90201a263ea6a03e6",
-   "sha256": "0jlqskw08zlqhckhz64w2c0a14kk100lmnadwf4li5h2b2clmr7l"
+   "commit": "e498cb171bb07ec36880a2494aafc8acb1cc34ca",
+   "sha256": "1q2rg6kk16h0wv70p2x1rg5cjmn0w0gc3phriwdd7iwn842dsrb7"
   },
   "stable": {
    "version": [
@@ -24099,28 +24594,28 @@
   "repo": "non-Jedi/eglot-jl",
   "unstable": {
    "version": [
-    20200726,
-    741
+    20210415,
+    1207
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
-   "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
+   "commit": "49f170e01c5a107c2cb662c00544d827eaa2c4d8",
+   "sha256": "1bmp517zfsspxlj0k67q15ladiphjha45zgnq3djs631mvr9bfaw"
   },
   "stable": {
    "version": [
     2,
     1,
-    0
+    1
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "84cff9d6ef1643f3eac6c9d620cc1e380a9847d9",
-   "sha256": "1g3k3ym0hx97dk3sv1kz3vq0p1s1zw6r34ynhwm31y954miwyvm4"
+   "commit": "49f170e01c5a107c2cb662c00544d827eaa2c4d8",
+   "sha256": "1bmp517zfsspxlj0k67q15ladiphjha45zgnq3djs631mvr9bfaw"
   }
  },
  {
@@ -24192,8 +24687,8 @@
   "repo": "millejoh/emacs-ipython-notebook",
   "unstable": {
    "version": [
-    20210330,
-    1531
+    20210522,
+    1036
    ],
    "deps": [
     "anaphora",
@@ -24204,8 +24699,8 @@
     "websocket",
     "with-editor"
    ],
-   "commit": "608c3cbfd58a626aab3cea6aa5b31d8a4032cf10",
-   "sha256": "103sg5wzzr7zp0x181nardc8r63cyx1f7s1l5drig5dwzp4dnd60"
+   "commit": "09af85821e4fce64675d5287fe9f3a6847d1c5d2",
+   "sha256": "12b8idh2mpd37nrc8ricr4s4hz4wgnp7cy1298qcpxl00xx99dqw"
   },
   "stable": {
    "version": [
@@ -24368,11 +24863,11 @@
   "repo": "dimitri/el-get",
   "unstable": {
    "version": [
-    20200912,
-    1653
+    20210606,
+    911
    ],
-   "commit": "84dd1837f9ac80a329ab0c2de6859777f445f8ff",
-   "sha256": "098x17hg9dc28s7g50mxhv6m6fgch1xp1di7rplkg7w1dfphpc5a"
+   "commit": "52df810e538243d07f2a317ad36e351b440a75e0",
+   "sha256": "0s9107bss982v4njwkfyi4gismg402xcrqkq9c2hrwhyr6pny4w0"
   },
   "stable": {
    "version": [
@@ -24575,36 +25070,6 @@
   }
  },
  {
-  "ename": "el-x",
-  "commit": "0346f6349cf39a0414cd055b06d8ed193f4972d4",
-  "sha256": "1721d9mljlcbdwb5b9934q7a48y30x6706pp4bjvgys0r64dml5g",
-  "fetcher": "github",
-  "repo": "sigma/el-x",
-  "unstable": {
-   "version": [
-    20140111,
-    2201
-   ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "e7c333d4fc31a90f4dca951efe21129164b42605",
-   "sha256": "00wp2swrmalcifx9fsvhz9pgbf6ixvn8dpz1lq6k6pj9h24pq7wh"
-  },
-  "stable": {
-   "version": [
-    0,
-    3,
-    1
-   ],
-   "deps": [
-    "cl-lib"
-   ],
-   "commit": "e96541c1f32e0a3aca4ad0a0eb382bd898250163",
-   "sha256": "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"
-  }
- },
- {
   "ename": "el2markdown",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "1bpfddcvg9wgc5g14clj6wyiw8rsh45rgibvlmyan2m0gmwvmqx6",
@@ -24702,11 +25167,11 @@
   "repo": "Mstrodl/elcord",
   "unstable": {
    "version": [
-    20210323,
-    2234
+    20210524,
+    1611
    ],
-   "commit": "25531186c10b74a10ee24990f9e967296cc70342",
-   "sha256": "14lk3whvj45ilb7mv60dfpxhbw3jsddglz0mq5vhdgy6n8wkcpa9"
+   "commit": "afe8f31e2b9f78d13b22a695b7cf9c373656b85e",
+   "sha256": "09yk4xvsdd5mvrzx4kdfyi2bkbdykjg80hcxvjamh967s6vinzjb"
   }
  },
  {
@@ -24745,26 +25210,26 @@
  },
  {
   "ename": "eldev",
-  "commit": "dd7ae513905a4e4cc23078239ecf2d5f346f1226",
-  "sha256": "11vxhssii5h5c3qm8iwg8d5zrxas3nzl391h9dl83v9h1pg98kg1",
+  "commit": "7152d735c59f2f0cb7a218fe706c33bee5d9bfb5",
+  "sha256": "1zhahxxpi71955yhr3dfj3kjvn49g7ghjs6969rwbq6znx6ykckx",
   "fetcher": "github",
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20210410,
-    1721
+    20210530,
+    1641
    ],
-   "commit": "635744890ba2d55d9569a66cb72b13870418a513",
-   "sha256": "1hlsnd9ppw18p0kbjgf2g5xwikipjkzzqcvql63pn9ds5zr1gn6q"
+   "commit": "e9af76aa8fd9ce5b7010b7322a73341828cfe690",
+   "sha256": "1wryp568bl5p0s78va2pgh9aiskhphmva20zmk1jg0qjxim58grv"
   },
   "stable": {
    "version": [
     0,
-    8,
+    9,
     1
    ],
-   "commit": "c4f9b7ff4d12c59cc80b4a67f856601ba7cff2cd",
-   "sha256": "19s45hdhcg5l608awfxvmhd61xzp7dd5pvviv89xzzksx74l1188"
+   "commit": "70167056fd81e8477b0a5508cf7e28d7a48a2367",
+   "sha256": "1jfj4f5w20qd12k6ygv0jazn2x9pxjrmqmlmibppc4ybrhhgmg0s"
   }
  },
  {
@@ -24894,6 +25359,21 @@
   }
  },
  {
+  "ename": "electric-cursor",
+  "commit": "639747f3e5b2f8753478826a69b27727e1738d04",
+  "sha256": "12rlgyp9r4dgp0mid95rx0p5ygpxjzhvlxkmidlzakyirc1i0jlw",
+  "fetcher": "github",
+  "repo": "duckwork/electric-cursor",
+  "unstable": {
+   "version": [
+    20210501,
+    2107
+   ],
+   "commit": "e20c6f6e85c020e472ef05b12af7a12bbae65dbf",
+   "sha256": "0x1bhpb86bhkyyg28w81jw124l6zcbbqmf8i3fx28sc14q4y1gsd"
+  }
+ },
+ {
   "ename": "electric-operator",
   "commit": "906cdf8647524bb76f644373cf8b65397d9053a5",
   "sha256": "043bkpvvk42lmkll5jnz4q8i0m44y4wdxvkz6hiqhqcp1rv03nw2",
@@ -24932,11 +25412,11 @@
   "repo": "xwl/electric-spacing",
   "unstable": {
    "version": [
-    20210313,
-    1118
+    20210430,
+    1714
    ],
-   "commit": "fb1437a3386f55440abdbe7c107c86e5b028bdc5",
-   "sha256": "00pmp1596p24i7pasmm080aly8ifinp9hbvia2l4jf8mbfg2ndlw"
+   "commit": "800e09af7b0cd5d78d22f857dbce10fb080637df",
+   "sha256": "0ykndvbbx8rvaxppmkngyrzp1x6fghj9xv55i847kpzx1c6gs4fc"
   }
  },
  {
@@ -25034,11 +25514,11 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20210309,
-    2323
+    20210606,
+    1130
    ],
-   "commit": "e29c8b91450bd42d90041231f769c4e5fe5070da",
-   "sha256": "12m4q8zfmn6g0kz2v3vmch4kbmivxshj9xk58j2f3f3c8fvk6567"
+   "commit": "243add9e74003cd5718f33482b7bb8b4fe140fb5",
+   "sha256": "1lw8g9narlygqd7ypgbyvm4n12qxigzywglsjw6yjcry70p00kl3"
   },
   "stable": {
    "version": [
@@ -25099,8 +25579,8 @@
   "repo": "remyhonig/elfeed-org",
   "unstable": {
    "version": [
-    20181015,
-    1100
+    20210510,
+    1219
    ],
    "deps": [
     "cl-lib",
@@ -25109,8 +25589,8 @@
     "org",
     "s"
    ],
-   "commit": "77b6bbf222487809813de260447d31c4c59902c9",
-   "sha256": "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"
+   "commit": "268efdd0121fa61f63b722c30e0951c5d31224a4",
+   "sha256": "0krfklh3hyc72m9llz3j7pmf63n4spwlgi88b237vcml9rhlda5b"
   }
  },
  {
@@ -25121,15 +25601,15 @@
   "repo": "fasheng/elfeed-protocol",
   "unstable": {
    "version": [
-    20210401,
-    100
+    20210430,
+    846
    ],
    "deps": [
     "cl-lib",
     "elfeed"
    ],
-   "commit": "2b2aaf2f3b92e7c27827e0f280598cb52db558e0",
-   "sha256": "1nffhs0mnc0j87wfk6siw3zaj6p1dm1hxz55p54v9895x8c5bakv"
+   "commit": "5e17d4280f5f8019c3f8962a710c9b3e633f41ff",
+   "sha256": "0kv6svwg1h0wcj7z89xs20a9wns7v67af9m9rir3m8f47iyy70gr"
   },
   "stable": {
    "version": [
@@ -25153,26 +25633,26 @@
   "repo": "sp1ff/elfeed-score",
   "unstable": {
    "version": [
-    20210302,
-    2051
+    20210605,
+    2212
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "f59cbc38c83007e160722347c8cb5438d5fe13a0",
-   "sha256": "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"
+   "commit": "dd4a0ceded6200fe2367a2de7b0e45d7fb5b4909",
+   "sha256": "17hf6b5db4d0cm1996z4sl00y4c8gl3rga97xxp2bmwbhdr7kaxw"
   },
   "stable": {
    "version": [
     0,
     7,
-    7
+    9
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "f59cbc38c83007e160722347c8cb5438d5fe13a0",
-   "sha256": "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"
+   "commit": "dd4a0ceded6200fe2367a2de7b0e45d7fb5b4909",
+   "sha256": "17hf6b5db4d0cm1996z4sl00y4c8gl3rga97xxp2bmwbhdr7kaxw"
   }
  },
  {
@@ -25190,8 +25670,8 @@
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "e29c8b91450bd42d90041231f769c4e5fe5070da",
-   "sha256": "12m4q8zfmn6g0kz2v3vmch4kbmivxshj9xk58j2f3f3c8fvk6567"
+   "commit": "243add9e74003cd5718f33482b7bb8b4fe140fb5",
+   "sha256": "1lw8g9narlygqd7ypgbyvm4n12qxigzywglsjw6yjcry70p00kl3"
   },
   "stable": {
    "version": [
@@ -25208,6 +25688,21 @@
   }
  },
  {
+  "ename": "elforth",
+  "commit": "1376c32763d883526f7e7dafa1fdad0740ac6302",
+  "sha256": "05jmvf89p7pa181hbpg4y7f7la8lpdxh8kk04rq4hja86nmdidr7",
+  "fetcher": "github",
+  "repo": "lassik/elforth",
+  "unstable": {
+   "version": [
+    20210522,
+    928
+   ],
+   "commit": "2d8540434a28e7edaa04a992c3c362832b2fd61e",
+   "sha256": "0p4d6blqa3g6mpbn00vqysshga4i93l2s6i7nm2ckg4zrrn27pl5"
+  }
+ },
+ {
   "ename": "elgrep",
   "commit": "0d9ab623b2d634936a79ff6f4b98b31825d44b6d",
   "sha256": "0b8dma52zv57sh1jbrabfy6k5lzixs7f541s8dsqyrg0fzlq460j",
@@ -25459,14 +25954,14 @@
   "repo": "purcell/elisp-slime-nav",
   "unstable": {
    "version": [
-    20200304,
-    2201
+    20210510,
+    528
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9ab52362600af9f97f1590f05a295538025170b3",
-   "sha256": "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"
+   "commit": "8588d80d414aee1fafce5b9da0e913612ee0bcdd",
+   "sha256": "0bpa0wv2qbll34bvdm31w541zavad6h344csa160z6da3ksihs2i"
   },
   "stable": {
    "version": [
@@ -25488,14 +25983,14 @@
   "repo": "elixir-editors/emacs-elixir",
   "unstable": {
    "version": [
-    20210324,
-    1605
+    20210509,
+    2353
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "0212b06f079f4965b6032bbbe7f86876575770de",
-   "sha256": "0n9b901kzk95r28a17amx25xyffvxbfrxw62sakrn0q3pbq988s2"
+   "commit": "6bbc1e5ac46064613c982cedc60566ed077e7a58",
+   "sha256": "051pxppp7bdxjjr56p48khi5vfwf5kj7vvyddr66pfw5fwdpd86m"
   },
   "stable": {
    "version": [
@@ -25567,8 +26062,8 @@
   "repo": "jcollard/elm-mode",
   "unstable": {
    "version": [
-    20210224,
-    2314
+    20210525,
+    152
    ],
    "deps": [
     "dash",
@@ -25576,8 +26071,8 @@
     "reformatter",
     "s"
    ],
-   "commit": "e9fcf9cc2779cf7f5ae7ee4be339164b26755c69",
-   "sha256": "05g3r5hc6slaca8g7n6i6bk9lpq9jsb2kv2q5v8nbz96abqg56zm"
+   "commit": "f2e2d0053f3272d9fc0c2e16c8d17d97724cf524",
+   "sha256": "1gaddxw63d5fna43d7kc3px9sbd2knbjga0lx2zz0lsbcjr54pzr"
   },
   "stable": {
    "version": [
@@ -25866,20 +26361,20 @@
   "repo": "redguardtoo/elpa-mirror",
   "unstable": {
    "version": [
-    20210325,
-    1219
+    20210509,
+    439
    ],
-   "commit": "2d50b2861ab0ba6a2a518de44823869fb4b14dfc",
-   "sha256": "0x0sfim9l5xl4fysy61w7migf504ynnmnraiwisdxl9bap7iraw9"
+   "commit": "193dd942cd74f71d94067f48249427676ba7dec8",
+   "sha256": "0hwsy780x1kw1c9k1xrbrbip6l62fa41czal0nnqr9li0brig7d7"
   },
   "stable": {
    "version": [
     2,
     1,
-    4
+    6
    ],
-   "commit": "47f194c77830946c66bc6ffecdecadc5a3191402",
-   "sha256": "00c33b0k5rw66xbzv1ggz1ai1yaqa705vqb25b54sirwr0s37wly"
+   "commit": "abc8d7b7de12e4eb06efa2dbb1cc77a714f14479",
+   "sha256": "0p5jbdbl7bmx94fj7qyqqsy0clvkzjgczbgvhx4ay9wyq83wdaav"
   }
  },
  {
@@ -26242,20 +26737,20 @@
   "repo": "emacscollective/elx",
   "unstable": {
    "version": [
-    20210228,
-    2103
+    20210504,
+    1306
    ],
-   "commit": "de9d42c86fc3e71239492f64bf4ed7325b056363",
-   "sha256": "0778izaq1hjcc9i7d0v3p9xb08y6bwj9brcmpyd2yj3lfajbhxdx"
+   "commit": "53d257db92fb72ade8ea1b91dc6839c21563119e",
+   "sha256": "1qccz8z0410xhygrfy62h1j3553avdcb7m61ps6b6y74nz615l1r"
   },
   "stable": {
    "version": [
     1,
-    3,
-    2
+    4,
+    0
    ],
-   "commit": "f9f810ffcd3cce7ed15848c72ce299609ec09414",
-   "sha256": "1p3zpg4p4a1cn13sg3hsa33gs1bdra1mlmxkagx883p3808i5qha"
+   "commit": "53d257db92fb72ade8ea1b91dc6839c21563119e",
+   "sha256": "1qccz8z0410xhygrfy62h1j3553avdcb7m61ps6b6y74nz615l1r"
   }
  },
  {
@@ -26266,14 +26761,14 @@
   "repo": "tecosaur/emacs-everywhere",
   "unstable": {
    "version": [
-    20210303,
-    1507
+    20210422,
+    1053
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "99997af93310128cc95b8ddceacb448daed2403a",
-   "sha256": "03syfvwsbrrmghdav3xkmpjvdfh1q1qr880a6f6wkri9iazg021g"
+   "commit": "64ba2e3f3096f48928f7be06ed690069b96add22",
+   "sha256": "1cjzrckbxcl1ahhnnk78778yxsrhwb725cwjbx6i8y6jxwbddpqj"
   }
  },
  {
@@ -26563,11 +27058,11 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210411,
-    1954
+    20210607,
+    1506
    ],
-   "commit": "a005eef82a63950927a68a5ef79b33d25245687b",
-   "sha256": "1dy01y87bqjddsdjqhmp6m144azn72yswsj0prywm5alxypck9lg"
+   "commit": "ef609bf15368a68c4eb3c46fd8cc1bb623b6b83e",
+   "sha256": "0ddh7zqgaq07534l6m3wjvbcj23a01h3x7scd4pl5rj6wyxqwv76"
   },
   "stable": {
    "version": [
@@ -26586,15 +27081,15 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210411,
-    1808
+    20210525,
+    1515
    ],
    "deps": [
     "consult",
     "embark"
    ],
-   "commit": "a005eef82a63950927a68a5ef79b33d25245687b",
-   "sha256": "1dy01y87bqjddsdjqhmp6m144azn72yswsj0prywm5alxypck9lg"
+   "commit": "ef609bf15368a68c4eb3c46fd8cc1bb623b6b83e",
+   "sha256": "0ddh7zqgaq07534l6m3wjvbcj23a01h3x7scd4pl5rj6wyxqwv76"
   },
   "stable": {
    "version": [
@@ -26761,27 +27256,29 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20210407,
-    1604
+    20210607,
+    1450
    ],
    "deps": [
     "cl-lib",
+    "nadvice",
     "seq"
    ],
-   "commit": "f79343bf03f6ece09638ec27eeb831c0abe59667",
-   "sha256": "1ki2hd38fxvd4112bhgfifr3raar3yz345h9hya7dn8aw9hscr14"
+   "commit": "c360a8934c1e07ddab4e12d28800d362d254ccbd",
+   "sha256": "02aikwki7932dldhnsq8ndca59spbc4g2kjfal3sw16lklfw0sfa"
   },
   "stable": {
    "version": [
-    6,
-    3
+    7,
+    2
    ],
    "deps": [
     "cl-lib",
+    "nadvice",
     "seq"
    ],
-   "commit": "a2738fe1a9013f641eeba31300e828e88b468b14",
-   "sha256": "0r2krmrhmwqcw3sdmy7z9rw4l222ja4jz8an8av11qjhpacr8v98"
+   "commit": "b0173b6b4c5b66a4706cb82c9b50a179bf159a0f",
+   "sha256": "1scppj8wkiml4dgsg4540hdd8mv9ghcp2r17b647az0ccxwp73qm"
   }
  },
  {
@@ -27365,15 +27862,15 @@
   "repo": "purcell/envrc",
   "unstable": {
    "version": [
-    20210207,
-    810
+    20210516,
+    2143
    ],
    "deps": [
     "inheritenv",
     "seq"
    ],
-   "commit": "110a221f8205655a31fa51bffd45e1e9da056ffc",
-   "sha256": "1zjqkp701nlc0cldqxwj97jflz3imv1nzpq2sqjm4ir45lwp8jci"
+   "commit": "8a9a142cf9d35e62a70d9d100a946f78fe0b066a",
+   "sha256": "0nqqx4qlw75lmbn0v927sg3xyjkk86ihw1q3rdbbn59va41grds4"
   },
   "stable": {
    "version": [
@@ -27486,6 +27983,19 @@
    ],
    "commit": "99d3a4b6973d5b09864e0af7425a61f99c19b90a",
    "sha256": "0k6isn6szbwc6jc7kzfq82p8w737z7iyn2yi9aqf6j54a6xa5aka"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "0d5d80dd0c76f0d46a3565d940a2b0ed955dfd0a",
+   "sha256": "0bfab8yh2r08vqgnk81avw9n46fda5jb4fcm0h2y8f1lv6jgnfy0"
   }
  },
  {
@@ -27496,27 +28006,26 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20210227,
-    1459
+    20210530,
+    1147
    ],
    "deps": [
     "closql"
    ],
-   "commit": "245157564b9bd1575480044c8b24007b2090dacb",
-   "sha256": "1bdbwbrrz4brkmg50808vsj70d5yaxb1a71n014nx1a09wnw1hmj"
+   "commit": "8ee60b65bff02ef606d489b83e2def9922e9623d",
+   "sha256": "03zsysj78w43q902wi9dhck64q9va247avr6fhdw8ynf2lvb78d3"
   },
   "stable": {
    "version": [
     3,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
-    "closql",
-    "dash"
+    "closql"
    ],
-   "commit": "ca211c5225aa550374d77629dd9b87e2b0b0d992",
-   "sha256": "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"
+   "commit": "8ee60b65bff02ef606d489b83e2def9922e9623d",
+   "sha256": "03zsysj78w43q902wi9dhck64q9va247avr6fhdw8ynf2lvb78d3"
   }
  },
  {
@@ -27753,11 +28262,11 @@
   "repo": "kidd/erc-image.el",
   "unstable": {
    "version": [
-    20180522,
-    1424
+    20210604,
+    753
    ],
-   "commit": "82fb3871f02e24b1e880770b9a3d187aab43d0f0",
-   "sha256": "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"
+   "commit": "883084f0801d46a5ccf183e51ae9a734755bbb97",
+   "sha256": "081c8pjmpwnmqah7dbpkj20bk7ln57g4n7c1zxzdlsz80pxnfay4"
   }
  },
  {
@@ -27821,24 +28330,6 @@
   }
  },
  {
-  "ename": "erc-status-sidebar",
-  "commit": "29631de8ec4140a8e35cc500902b58115faa3955",
-  "sha256": "04qh70ih74vbavq7ccwj1ixpd8s3g8rck9bxv6zhm1yv34bslw5d",
-  "fetcher": "github",
-  "repo": "drewbarbs/erc-status-sidebar",
-  "unstable": {
-   "version": [
-    20200907,
-    1307
-   ],
-   "deps": [
-    "seq"
-   ],
-   "commit": "87210a3ccc16a86e6b5992744b68daabed3b2d11",
-   "sha256": "1gb8lzsi3clbass40sllfwf8akzlgb2k93wqlw1lf4gfb9shx08v"
-  }
- },
- {
   "ename": "erc-terminal-notifier",
   "commit": "f2ba978b1ba63fac3b7f1e9776ddc3b054455ac4",
   "sha256": "0vrxkg62qr3ki8n9mdn02sdni5fkj79fpkn0drx0a4kqp0nrrj7c",
@@ -28152,18 +28643,19 @@
     20200914,
     644
    ],
-   "commit": "3e079614f2b4810ff5920ae69a389da91c855217",
-   "sha256": "1jn0kp33b77lskhi02d0jm0rpcgxhrpxdj82bmr7vi7m199p5jn0"
+   "commit": "044843c5281a7bdb9479317793a75c8c0fcfadd9",
+   "sha256": "04lirb2p1h46c1l84ysdnr2jxvzsdw1zv6jhm7h8ybgzmaa65b6m"
   },
   "stable": {
    "version": [
     2,
     6,
     1,
-    3
+    3,
+    20210605
    ],
-   "commit": "e5486b79cc78689e3fd07b6c924d0085063915ea",
-   "sha256": "1zl7c0rb5rg867a431apxlzj2flg3hjidamqa5prc1bzpmfaywyz"
+   "commit": "ab805592a0ae7066fbd5fa5f47e933194fce878f",
+   "sha256": "19ld12x4is0nx52i05zv20js0zysx3bljbdn2nr65vy11dq2cyyp"
   }
  },
  {
@@ -28177,18 +28669,17 @@
     20210315,
     1640
    ],
-   "commit": "165f8fe9354aaf23c166b5c54f352b3024da9bd3",
-   "sha256": "102dbzpfcysq7pinli2jcdff1mxh2af0s79qmia1wfm8jmzh0zhf"
+   "commit": "a8969ec16a91c0e1ac56a438d81069d288662518",
+   "sha256": "0wp6sf8rw73waws47av68d4sdd28qix74n53c4fpdc4c2xq3j3h6"
   },
   "stable": {
    "version": [
     24,
     0,
-    -1,
-    1
+    2
    ],
-   "commit": "655bd1a27673720bcee187e9fd9f07d739860ad3",
-   "sha256": "00k0x24diq2z24582bjk65c07ky1kf5h1zihs06ndl782i5cqjfa"
+   "commit": "82f97b9d3d639ed87175aeed75747eb6594170ab",
+   "sha256": "065kc9p30jam23grpm7dwxjf76n6g1hzdrq9q1irr3qmw1rr0240"
   }
  },
  {
@@ -28199,14 +28690,14 @@
   "repo": "k32/erlstack-mode",
   "unstable": {
    "version": [
-    20190812,
-    1117
+    20210419,
+    1917
    ],
    "deps": [
     "dash"
    ],
-   "commit": "d0a67fb6f91cef02376e71b4b4669b071ebd9737",
-   "sha256": "10b77q2qwwlvj56g9yd6d9lkmk184mjf6x3067vvqs40xiv9bsgl"
+   "commit": "ca264bca24cdaa8b2bac57882716f03f633e42b0",
+   "sha256": "0541q21srscy8x7w4f8vbag1nsjksv9i1wi6sq5xjqnrl0piyv4k"
   },
   "stable": {
    "version": [
@@ -28757,11 +29248,11 @@
   "repo": "akreisher/eshell-syntax-highlighting",
   "unstable": {
    "version": [
-    20210223,
-    936
+    20210429,
+    413
    ],
-   "commit": "eeace52ebb2c730f3665fb235017cd57dc6050a2",
-   "sha256": "1anlan2ldvx0qzj44dhb44flcs3h0d57v79qzn21jpy4d0y0m3kq"
+   "commit": "32d2568ebeb42553a30dda77e03c0e2ec8854199",
+   "sha256": "0my99472i5zdlhcv95jhfv58ph28gaw159p2llp4wv13acryin56"
   },
   "stable": {
    "version": [
@@ -28875,26 +29366,26 @@
   "repo": "aaronjensen/eslintd-fix",
   "unstable": {
    "version": [
-    20210114,
-    1448
+    20210513,
+    425
    ],
    "deps": [
     "dash"
    ],
-   "commit": "5f9daecd4a02418515070b8084cb06e2251e2119",
-   "sha256": "0px94k7ms0wpxyyj0qfn82hz59822yn7i1851h0ld1rs8mh0rhwk"
+   "commit": "5488db4436fc312386fdb123289d7fc5f099702b",
+   "sha256": "1pipb0l1l3rp3jf1bcd1h3k02ckh2x8x2h9y4bn4cq8xm6bsygvy"
   },
   "stable": {
    "version": [
     1,
-    1,
+    2,
     0
    ],
    "deps": [
     "dash"
    ],
-   "commit": "97e8aa9b106e3e4b3a44c775ca972bdd2feda9ec",
-   "sha256": "1g6bv58m1052x2f5ffs17ryyqv0ay8vii5bwqs7dyfhlpppsn6c8"
+   "commit": "5488db4436fc312386fdb123289d7fc5f099702b",
+   "sha256": "1pipb0l1l3rp3jf1bcd1h3k02ckh2x8x2h9y4bn4cq8xm6bsygvy"
   }
  },
  {
@@ -28927,8 +29418,8 @@
     20210405,
     1808
    ],
-   "commit": "22b81067ebcaef2cea633f967a4b55454af9326a",
-   "sha256": "0b93a8km80r1c3gbinnsigkkq8yc127jwrqj8s8z130b79ch91hn"
+   "commit": "3d62a3319ab03a810030058d3fb368b28dfd82d5",
+   "sha256": "0hj3nczmqmgiwsvh664rs34j63wl325x6nar21p1a84h5ximpkxq"
   }
  },
  {
@@ -28939,11 +29430,11 @@
   "repo": "dgutov/espresso-theme",
   "unstable": {
    "version": [
-    20181025,
-    826
+    20210505,
+    1957
    ],
-   "commit": "d2fa034eb833bf37cc6842017070725e0da9b046",
-   "sha256": "0fds36w6l2aaa88wjkd2ck561i0wwpxgz5ldadhbi5lvfwj9386m"
+   "commit": "580f673729f02aa07070c5300bedf24733d56e74",
+   "sha256": "1fxnsz0v7hizs7wf8pjfm7jwbrm9vg5gvxv1a6ixgfajka79amfw"
   }
  },
  {
@@ -29040,11 +29531,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20210403,
-    520
+    20210520,
+    2146
    ],
-   "commit": "b501beec408b66e2f2a8c4f3117e0c84ee1b0262",
-   "sha256": "03rd1qp9d8br36cynxm73ajac0f2kyyjnffnciix3vf7w5lpsily"
+   "commit": "f62f460e3c55e5e7ad5941225e7884b0e1656131",
+   "sha256": "0i5i59pbga10s4yml5vi4fbbxmaqgf8fx4caj3mfgd8dkrkxblgp"
   },
   "stable": {
    "version": [
@@ -29106,8 +29597,8 @@
    "deps": [
     "ess"
    ],
-   "commit": "554bdc7d6c7fafc5b8a886690970b5145276a3f5",
-   "sha256": "0v4cj8d44a52h3r8k4yhr84xalfwrkwpdn3c5m44x7xp36s6zgbn"
+   "commit": "f6731eb26dc0fc5b7ca1fa881a5f9100f8fcf494",
+   "sha256": "0pvjk5a5v03qnasqsja30bywb4c481x9agf1rfcwbqsva7p97wiy"
   },
   "stable": {
    "version": [
@@ -29208,26 +29699,27 @@
   "repo": "ShuguangSun/ess-view-data",
   "unstable": {
    "version": [
-    20210326,
-    1431
+    20210603,
+    1412
    ],
    "deps": [
     "csv-mode",
     "ess"
    ],
-   "commit": "283251e8ac19ac0c0f89a4b0f0eb38482167e52b",
-   "sha256": "0kp94y27csj08868rbiwdfzgjx9q71j7d0whpqhsh27qhc189crq"
+   "commit": "845412ba57efab1a28fbaf0dcdbe76bdab03f828",
+   "sha256": "0m5wmxi4zq3xy9jsg7d2318iyn9g6fpzqiraq0810fbmrdl4dda4"
   },
   "stable": {
    "version": [
     1,
-    2
+    3
    ],
    "deps": [
+    "csv-mode",
     "ess"
    ],
-   "commit": "99ddbceaa54941a5e8438eadb0210fd16470e581",
-   "sha256": "1crbrzphs49ghkx3rv952wbdv483rwfblryv8bx8lgpxv5gkar9w"
+   "commit": "845412ba57efab1a28fbaf0dcdbe76bdab03f828",
+   "sha256": "0m5wmxi4zq3xy9jsg7d2318iyn9g6fpzqiraq0810fbmrdl4dda4"
   }
  },
  {
@@ -29245,8 +29737,8 @@
     "cl-lib",
     "s"
    ],
-   "commit": "fa1413737b8d5173a4db8c18d8de9ac798365d53",
-   "sha256": "1barvpcxw9v0gy16drcrmq2izmasm0icahnzrpyzdfnvcmvp3al7"
+   "commit": "5169dd7fc8765a7377b0ab93aa63b7f0f934689a",
+   "sha256": "0mn9pffw7kzdzwv3jkhygdkmlqax9fsrbjznbck90ydiv095fmp6"
   },
   "stable": {
    "version": [
@@ -29283,10 +29775,14 @@
    "version": [
     0,
     3,
-    5
+    7
+   ],
+   "deps": [
+    "cl-lib",
+    "kv"
    ],
-   "commit": "68efaa4a7e9841b9bf2b80ea4841ee07d7bd68f9",
-   "sha256": "16jn404vfmsvm12wrf8iczqlgdf2iycbxrvalvzxnm2gr5dfzp7z"
+   "commit": "9f96449f6059cb75491dc812ddeb1b6200ec6740",
+   "sha256": "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"
   }
  },
  {
@@ -29374,8 +29870,8 @@
     "f",
     "xterm-color"
    ],
-   "commit": "05fdbd336a888a0f4068578a6d385d8bf812a4e8",
-   "sha256": "0ln1agcgr607n5akm0ax659g11kfbik7cq8ssnqpr3z7riiv95dm"
+   "commit": "c9cfccef03e730f7ab2b407aada3df15ace1fe32",
+   "sha256": "1ip1mcry2mryr3gzina16c7m2pw71klx1ldbfv8w7rv8fsx2dsma"
   },
   "stable": {
    "version": [
@@ -29630,15 +30126,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20210411,
-    2050
+    20210527,
+    2107
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "d998a8195e404b01e2ea62a455c3dec74d0823c3",
-   "sha256": "0d4839nqdhr858nzb2cqj3wak2g8ynm5l8ak3467p1k9sn4d487a"
+   "commit": "ad47644eea5e351269f5bead18e713768d96f207",
+   "sha256": "1bcdrvrrjq9r75cfrxziq84slrjm8gbbhbm72hqjfzka6zcnr39g"
   },
   "stable": {
    "version": [
@@ -29832,15 +30328,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20210401,
-    1012
+    20210607,
+    1954
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "f2be91297029ae002d15e23510f9f686d848d7a8",
-   "sha256": "0ikb3ic84bxj9rzvkjhcvzgiwjpwmhfi6xli5yh03li7qdqsg5j5"
+   "commit": "86b02f84a8df0ddd6216cb85d49bedd6ee2ab747",
+   "sha256": "0vh0wdzz9idfinbfd3mynlp88lgq5j9wk8c3pc5a1is6g3jpj938"
   },
   "stable": {
    "version": [
@@ -29949,15 +30445,15 @@
   "repo": "cute-jumper/evil-embrace.el",
   "unstable": {
    "version": [
-    20160519,
-    1829
+    20210418,
+    2038
    ],
    "deps": [
     "embrace",
     "evil-surround"
    ],
-   "commit": "4379adea032b25e359d01a36301b4a5afdd0d1b7",
-   "sha256": "0rj1ippc6yi560xalhd91r7a00lk3d0jk13w464myznkpnasfw3a"
+   "commit": "464e8ec52ff78edf3c9060143fc375f6ce5f275f",
+   "sha256": "1bga1idxj8mg5xpl7k4ymwaniyba2x13lf8yihyh713s5238fdmd"
   },
   "stable": {
    "version": [
@@ -30411,13 +30907,13 @@
    "version": [
     2,
     3,
-    10
+    11
    ],
    "deps": [
     "evil"
    ],
-   "commit": "b24a7232a2de114cb09774111c2ff8462451894f",
-   "sha256": "14nrc46290q54y7wv25251f2kqc0z8i9byl09xkgjijqldl9vdxa"
+   "commit": "a0c5bd1fe89119b94ffb0a266d2969434e7ec4c1",
+   "sha256": "1990g1b6v0i7jaiv35bdssdn601rjifzg4fy9s3sxk0drqm1xiss"
   }
  },
  {
@@ -30533,11 +31029,11 @@
   "repo": "redguardtoo/evil-nerd-commenter",
   "unstable": {
    "version": [
-    20210311,
-    37
+    20210528,
+    1009
    ],
-   "commit": "b8ac35fe019df5602c31912f65303a3d8ad0066c",
-   "sha256": "1vyl8lidhjph7k86n8q09mwqpasaxsmwb8vi5i2gcd6klds9hg0d"
+   "commit": "c0f49e4e87300720b8e8a8296d92b8386956c7a2",
+   "sha256": "0ci3hjzgwayz9nvmwg5vbmvn80cz0lsppghi511cbr3cdf8xkkv4"
   },
   "stable": {
    "version": [
@@ -30566,25 +31062,28 @@
  },
  {
   "ename": "evil-numbers",
-  "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
-  "sha256": "1lpmkklwjdf7ayhv99g9zh3l9hzrwm0hr0ijvbc7yz3n398zn1b2",
+  "commit": "00d26e91412c9132287ea0019afc29abfc4fb171",
+  "sha256": "0g02z6jp448lm7dyicxpm53k11f7wgjzn39zgla6p7gg6nmz5hpc",
   "fetcher": "github",
-  "repo": "cofi/evil-numbers",
+  "repo": "juliapath/evil-numbers",
   "unstable": {
    "version": [
-    20140606,
-    1251
+    20210605,
+    431
+   ],
+   "deps": [
+    "evil"
    ],
-   "commit": "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e",
-   "sha256": "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"
+   "commit": "cd23a7b458d73dc49434a3cf90d3d0caceb5811d",
+   "sha256": "1naxciaq1ci1ajs4if45wjy5qf8bgkxazyvl1kywrj299wi2qdv9"
   },
   "stable": {
    "version": [
     0,
-    4
+    6
    ],
-   "commit": "8834eb2e8bd93561a706363946701d0d90546a9f",
-   "sha256": "13jg2xbh4p02x1nj77b6csb93hh56c1nv8kslcq2hjj3caipk4m8"
+   "commit": "13294fdbd1928dec2a87ee71294dec28aeefe280",
+   "sha256": "1aqc054i30v9g5w96vni1m0f4w54gxl6sh3hsk1m8zd11krcms6r"
   }
  },
  {
@@ -30657,14 +31156,14 @@
   "repo": "mamapanda/evil-owl",
   "unstable": {
    "version": [
-    20210408,
-    32
+    20210416,
+    1700
    ],
    "deps": [
     "evil"
    ],
-   "commit": "949ab1331ed9ff65d04930b215e033ef19f3696e",
-   "sha256": "1nkqxpzczlpw7yn8jjr9lqs2izdbw86x7nz0y67x9yy49aj19v6q"
+   "commit": "a41a6d28e26052b25f3d21da37ccf1d8fde1e6aa",
+   "sha256": "15yp158krz3znixgxgcblmsfh0dbxc6bf7fig8757vnmjcwlpqrv"
   },
   "stable": {
    "version": [
@@ -30964,15 +31463,15 @@
   "repo": "hlissner/evil-snipe",
   "unstable": {
    "version": [
-    20200531,
-    1008
+    20210607,
+    420
    ],
    "deps": [
     "cl-lib",
     "evil"
    ],
-   "commit": "6dcac7f2516c6137a2de532fc2c052f242559ee3",
-   "sha256": "1faimkch2s08kbrwh3j77y0n5inrjr7vphy0xdl402bv0d20h8nq"
+   "commit": "9bd7345476174dfc6eeaa700a505e45b155ddb83",
+   "sha256": "1p7v9pnbyc4mhpkvmyl9vr825grqnfyl0h203sbnb1vnw15bbnbp"
   },
   "stable": {
    "version": [
@@ -31064,8 +31563,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "346d4d85fcf1f9517e9c4991c1efe68b4130f93a",
-   "sha256": "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"
+   "commit": "4706987bc01a552343848da49b4951bd54374643",
+   "sha256": "0v2v58pchr5icdpvg4k6vblxhgjk09wi7f54hs1dj0f6rgvpxmx5"
   },
   "stable": {
    "version": [
@@ -31155,8 +31654,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "d998a8195e404b01e2ea62a455c3dec74d0823c3",
-   "sha256": "0d4839nqdhr858nzb2cqj3wak2g8ynm5l8ak3467p1k9sn4d487a"
+   "commit": "ad47644eea5e351269f5bead18e713768d96f207",
+   "sha256": "1bcdrvrrjq9r75cfrxziq84slrjm8gbbhbm72hqjfzka6zcnr39g"
   },
   "stable": {
    "version": [
@@ -31179,15 +31678,15 @@
   "repo": "iyefrat/evil-tex",
   "unstable": {
    "version": [
-    20201103,
-    1410
+    20210510,
+    1809
    ],
    "deps": [
     "auctex",
     "evil"
    ],
-   "commit": "5f0d6fb11bce66d32c27c765e93557f6ca89cc7d",
-   "sha256": "1856liiy75w3r6s5ss6hnzcrypymfp6fpnw0i6ybrw351fkw4k9w"
+   "commit": "87445d4d2339436179e792609bfbff0eaf056a9c",
+   "sha256": "014bwsnry6v07n9cv194gsiwny0jp6rxs5gl4dhqfwq9hbj74p84"
   },
   "stable": {
    "version": [
@@ -31944,11 +32443,11 @@
   "repo": "extemporelang/extempore-emacs-mode",
   "unstable": {
    "version": [
-    20210316,
-    205
+    20210512,
+    2350
    ],
-   "commit": "81d79cb2f611aef10fd7b05f6d47977a66502a08",
-   "sha256": "0bmpmiaz32id2yplfp2vmg3bjbfypg8k0mac8m7v6jclaprw3mal"
+   "commit": "eb2dee8860f3d761e949d7c2ee8e2e469ac1cf51",
+   "sha256": "0ivb3c00jlqblzjxw36z3nmqqvv2djyzk69yhlzjw2nl2r2xmhnd"
   }
  },
  {
@@ -32098,11 +32597,11 @@
   "repo": "ieure/exwm-mff",
   "unstable": {
    "version": [
-    20201003,
-    1651
+    20210603,
+    1723
    ],
-   "commit": "0d428aca46b8c251dc04d412832e6e7b6e910872",
-   "sha256": "0g4jvnygcn91kzay0dvahkmf7813cizfc3lhyx1mvi6riz9li3l7"
+   "commit": "89206f2e3189f589c27c56bd2b6203e906ee7100",
+   "sha256": "0ipmapyd4jmpnk34wk9kfbvqnl04x74yg2pmj298wqa61ylw1n9j"
   },
   "stable": {
    "version": [
@@ -32140,39 +32639,30 @@
   "repo": "tumashu/exwm-x",
   "unstable": {
    "version": [
-    20210411,
-    1120
+    20210419,
+    950
    ],
    "deps": [
     "async",
-    "bind-key",
     "cl-lib",
-    "counsel",
-    "exwm",
-    "ivy",
-    "swiper",
-    "switch-window"
+    "exwm"
    ],
-   "commit": "7bc7a930998117a714cf1f2940dcab12bcac9b73",
-   "sha256": "1zs2sixp77q6dd9pdsk3w4y3nj1iz8j74q7nn5rsdmk0ja8i9sws"
+   "commit": "2ab026f407b011a8e8380c889990e85e69cb3a4e",
+   "sha256": "05jilbhpbbqbgpxhy11yadmal4gsh8bh1fffxkz8b5k8dpajc634"
   },
   "stable": {
    "version": [
-    1,
-    9,
-    0
+    2,
+    0,
+    2
    ],
    "deps": [
-    "bind-key",
+    "async",
     "cl-lib",
-    "counsel",
-    "exwm",
-    "ivy",
-    "swiper",
-    "switch-window"
+    "exwm"
    ],
-   "commit": "88c8b70be678ce0e9fa31e191ffd3f76bbfee61f",
-   "sha256": "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"
+   "commit": "8fd00a0ca586e1c80d08209919f1414b448bc228",
+   "sha256": "0h248mma7kky30jr9bbhmp95wchl2cx5p6kh0gxmzpbc247dn2cc"
   }
  },
  {
@@ -32232,8 +32722,20 @@
   "repo": "Wilfred/ez-query-replace.el",
   "unstable": {
    "version": [
-    20170814,
-    1321
+    20210525,
+    2222
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "3202cf4644ed3b6549284c3816b90bb230970a5b",
+   "sha256": "1xsvwf7g7c3v4p59svmahhn9pkr6zgp6vyr6dyvfy24mgaqw4jzv"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
    ],
    "deps": [
     "dash",
@@ -32447,19 +32949,19 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20210331,
-    233
+    20210602,
+    1952
    ],
-   "commit": "ef7efae7a86979e9267f9a600ef1482e0f6a2aa3",
-   "sha256": "0dl9i2l8186ir56v9vx32rw30pj9xgd7zhf24y6sqfjxn80hkdz8"
+   "commit": "45f2faef92ee23738b86f4f8d0a433ad729a5ca8",
+   "sha256": "0slvrgw508388il24wlx9g0bf32anpk6rbhmb2r99anq2vhn4b4g"
   },
   "stable": {
    "version": [
     2,
-    17
+    20
    ],
-   "commit": "2db5c559ca7356189083fb698a053bb1fee922a9",
-   "sha256": "1gk2dxmxv0sgkng7zgakz0gq9i0zh3wrwzsi785s338vjyypwm3g"
+   "commit": "45f2faef92ee23738b86f4f8d0a433ad729a5ca8",
+   "sha256": "0slvrgw508388il24wlx9g0bf32anpk6rbhmb2r99anq2vhn4b4g"
   }
  },
  {
@@ -32800,11 +33302,11 @@
   "repo": "yqrashawn/fd-dired",
   "unstable": {
    "version": [
-    20210311,
-    321
+    20210605,
+    1057
    ],
-   "commit": "7d18938751d047eef18bfb5975195419f0d1e2d3",
-   "sha256": "0182hg9iayz371lv4flls3gwsvn7bad027h5bn7lizvxxmgg3c6s"
+   "commit": "c223aee30af7dc7f52fb20045226ed9f49f4ec49",
+   "sha256": "14dzn3ggq8vb6qb5babngrpgsb29k6y8ficgzwwd9wfd5npynrpa"
   },
   "stable": {
    "version": [
@@ -32926,11 +33428,7 @@
     1942
    ],
    "commit": "59ab02344f569069b9899a3a5ffdca4a30093df4",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 262 ms\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 704 ms\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 1035 ms\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 2286 ms\nerror: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503\n"
-   ]
+   "sha256": "1vh6n2sg89g43sidymk22wjzjh71wgbajshhh7y3f6zf8xs94mmz"
   },
   "stable": {
    "version": [
@@ -33072,9 +33570,20 @@
   "ename": "filetree",
   "commit": "b4714ecde7200de934165d8e3b7f94ab5d711fa6",
   "sha256": "0d8ryxq7xa95av36fc25dxrrdxbm69iik22q52fjl9pzivrzlz58",
-  "error": "Not in archive",
   "fetcher": "github",
-  "repo": "knpatel401/filetree"
+  "repo": "knpatel401/filetree",
+  "unstable": {
+   "version": [
+    20210514,
+    1614
+   ],
+   "deps": [
+    "dash",
+    "helm"
+   ],
+   "commit": "08c0ea22f304f9777cd96e9b86f7c6e5331e82d8",
+   "sha256": "1phqiisabqsfkmslajl012lc0bf5y0vkgrcjavbwzf52hj7kn982"
+  }
  },
  {
   "ename": "fill-column-indicator",
@@ -33233,11 +33742,11 @@
   "repo": "ShuguangSun/find-dupes-dired",
   "unstable": {
    "version": [
-    20210204,
-    49
+    20210426,
+    835
    ],
-   "commit": "3c9783589e43717b682c9e37dd229839735402e8",
-   "sha256": "1wd7n08cf1mnd7czca3mcsfyh4nlkl36arhc3lnh7lzi98nyd0zv"
+   "commit": "904225a3f89bbd3b44ea097a282ec6ca7945f7f1",
+   "sha256": "0bf3qnzhv7z71f4h9l0cq6mllkfmc81655qwbzakw3gqqmn8kyr3"
   },
   "stable": {
    "version": [
@@ -33256,20 +33765,20 @@
   "repo": "redguardtoo/find-file-in-project",
   "unstable": {
    "version": [
-    20210323,
-    118
+    20210427,
+    1205
    ],
-   "commit": "595c6ac9d5e5b2dc138b472a40bc85c7f20a56c0",
-   "sha256": "1fqg4jg3x7vrcap46vbncazzjaj6yan57rdmi2n8xbhmw3jcc8z9"
+   "commit": "3bf010d2be073d499de5ffdaa98f48bf8a3dd21e",
+   "sha256": "0zpckqcx4fbjni1f0c6wzi1356ab06j33himfgkhvyl1bn4w5jna"
   },
   "stable": {
    "version": [
     6,
     0,
-    3
+    7
    ],
-   "commit": "6a6328c59a96b09e771cbcc5f4188f20d0757aca",
-   "sha256": "17l5b9nibhfymyndppq0avbdr2rh20527fyr1q5i1c3xkn4d6wvp"
+   "commit": "2f44af320b4e62053c5b6b523f69a8f16eaaa1c9",
+   "sha256": "1qkfijqr839y605ssyalr2v9n6b86hr64mxikc96lx6nzdyjyyl0"
   }
  },
  {
@@ -33496,11 +34005,11 @@
   "url": "https://depp.brause.cc/firestarter.git",
   "unstable": {
    "version": [
-    20200506,
-    1311
+    20210508,
+    1626
    ],
-   "commit": "d26bfaaf231a801f7bccf4c5edb51a521ddb7694",
-   "sha256": "19hmdfrdwiqpsamxsh0zixhgmbkm5pw7p4y4rn0z4k3k0spxajx5"
+   "commit": "76070c9074aa363350abe6ad06143e90b3e12ab1",
+   "sha256": "0agw50yrv2hylqqq8c4cjwl3hwfyfsbk74mpys8mi9lsycfw1sg9"
   },
   "stable": {
    "version": [
@@ -33951,15 +34460,15 @@
   "repo": "wanderlust/flim",
   "unstable": {
    "version": [
-    20210324,
-    1102
+    20210529,
+    1253
    ],
    "deps": [
     "apel",
     "oauth2"
    ],
-   "commit": "ddf5b6eceb73d7dbf6ff3a2d5281a2957cc2b836",
-   "sha256": "1pf7jg0psirjm2s84hcmjxkhd5s8vlgprn1miykxks2yxkvk01xf"
+   "commit": "02735dede6603987e8309a76d0bc7a9ff9a5a227",
+   "sha256": "1jy2wsm1xc6iaxa449wwz14ky4yiaxd8g05ry59r9pf60cpxxy1h"
   }
  },
  {
@@ -34346,14 +34855,14 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20210213,
-    1822
+    20210605,
+    1713
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "8cd2e747c3f3c1a0879f66b42db090b2878af508",
-   "sha256": "0m6s8kjk1xpr9pp1s7r39mmm5ry2sa05ync3vjr4kr2m7s5fqchh"
+   "commit": "8c45988a12e7c149b17d7edb84e6dfc33bb7b288",
+   "sha256": "1lsfz3yi3i1mqmq6p9x6fx26wrlqihsaz3yk5g50yv6jqvfr1g79"
   }
  },
  {
@@ -34895,15 +35404,15 @@
   "repo": "atilaneves/flycheck-dmd-dub",
   "unstable": {
    "version": [
-    20210329,
-    1926
+    20210412,
+    1608
    ],
    "deps": [
     "f",
     "flycheck"
    ],
-   "commit": "0799b16872829405e9da4e806ffffa42ad51fa36",
-   "sha256": "07jip6x59h439m714kx0fs6xfqi9p7yfl47js2py0q51hr51k2ij"
+   "commit": "818bfed45ac8597b6ad568c71eb9428138a125c8",
+   "sha256": "19xgj1z1b6m30syq2ps99v1gk76prmvh27nqj83nbqz57nqa0vjb"
   },
   "stable": {
    "version": [
@@ -35012,14 +35521,14 @@
   "repo": "lbolla/emacs-flycheck-elixir",
   "unstable": {
    "version": [
-    20180810,
-    642
+    20210413,
+    612
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "11998d7e3e63a33453e934d25b3673f7c558e579",
-   "sha256": "1hdbg0hvb6hwzjma9mxy0h888c8j2z4g38gwixrdixzbw5727r75"
+   "commit": "b57a77a21d6cf9621b3387831cba34135c4fa35d",
+   "sha256": "10y2z3w2hjycy0hx8zbhma88i2v9fs5xs7pwz3k56jnv95ipjmpy"
   }
  },
  {
@@ -35220,25 +35729,25 @@
   "url": "https://git.umaneti.net/flycheck-grammalecte/",
   "unstable": {
    "version": [
-    20210106,
-    1422
+    20210504,
+    1852
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "69f1f276057dadc7aaa8d1669d68ab17986e5b37",
-   "sha256": "0ih0nakal36is0dci82gx4ijrvnpz9jpw1adprfara2cf8dx4rk6"
+   "commit": "f488739aea2ef5c8d39bd28083dd72fdfee46e02",
+   "sha256": "18yiv09hzbclf9rjp61lxlia2m1qbvmwkiqxxs9jjpac28x7ypjf"
   },
   "stable": {
    "version": [
     1,
-    3
+    4
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "69f1f276057dadc7aaa8d1669d68ab17986e5b37",
-   "sha256": "0ih0nakal36is0dci82gx4ijrvnpz9jpw1adprfara2cf8dx4rk6"
+   "commit": "f488739aea2ef5c8d39bd28083dd72fdfee46e02",
+   "sha256": "18yiv09hzbclf9rjp61lxlia2m1qbvmwkiqxxs9jjpac28x7ypjf"
   }
  },
  {
@@ -35256,8 +35765,8 @@
     "flycheck",
     "grammarly"
    ],
-   "commit": "192109f43ca5508709a49875ff5f99c25b7f1696",
-   "sha256": "0ymnypijbivncjncs57dsn096wjccl7vwslv2pa8fl9hjl4y34r0"
+   "commit": "8321fc98a0809cad17e37ca924d364423c37b8c0",
+   "sha256": "1pga651wnvw3czqshn731nx0cdaf157v7v1c5n7kh95lc2r3jmn3"
   },
   "stable": {
    "version": [
@@ -35767,8 +36276,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "a285d849e6e227b79bef98f575ecfa43a70661da",
-   "sha256": "1wdv7iv3lmrpxxdas1p3grkpi08c4ipjfg170nfd2fy9nhr8iy38"
+   "commit": "2f5f7502c1e422c1df5b347b8142d67d5cd5caa7",
+   "sha256": "11bhblr96s8a19sb7lnzrwgihqjcwdnajxr6kiplgqd0wsh2h07v"
   },
   "stable": {
    "version": [
@@ -35922,27 +36431,27 @@
   "repo": "purcell/flycheck-package",
   "unstable": {
    "version": [
-    20200304,
-    2151
+    20210509,
+    2323
    ],
    "deps": [
     "flycheck",
     "package-lint"
    ],
-   "commit": "303f9e0708292937a668e1145f5eaa19d7d374e2",
-   "sha256": "0xav8x3vs7i8kvvhnq86scahjzv6m9mnpiibapflc995wqs4yq02"
+   "commit": "ecd03f83790611888d693c684d719e033f69cb40",
+   "sha256": "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"
   },
   "stable": {
    "version": [
     0,
-    13
+    14
    ],
    "deps": [
     "flycheck",
     "package-lint"
    ],
-   "commit": "e867b83dc84f1f8870eea069a71fa2a24cbcd5c9",
-   "sha256": "1b7javiqbcfzh1xkrjld9f5xrmld69gvnjz72mqpqmzbilfvmdpq"
+   "commit": "ecd03f83790611888d693c684d719e033f69cb40",
+   "sha256": "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"
   }
  },
  {
@@ -36081,8 +36590,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "039a6c9d0324208d4f4b006693c16248fcf5519b",
-   "sha256": "1sr1n7gv5n22w018z5nxfnknjqmk2lc8h2flv4d2f23aihlss9h3"
+   "commit": "ca00e018ecb9ebea4dde7f17eadb95d755ea88ab",
+   "sha256": "0j2klnv15v2gqnly5vgdrdrkccsza9mwz5c87i6qgnfawmnsh32d"
   },
   "stable": {
    "version": [
@@ -36269,14 +36778,14 @@
   "repo": "msherry/flycheck-pycheckers",
   "unstable": {
    "version": [
-    20200828,
-    1814
+    20210414,
+    2023
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "e8ce874eea4bba13aead8eb8e0262e94fb51f25e",
-   "sha256": "0i98viqm5plifaw3qdf2sxnk70l32qnkr82gl6j561vqhycxjq40"
+   "commit": "771fb9a66223287fcd4998b5f6d32d8c602bd91c",
+   "sha256": "1p4fys8hb89dfqqrzrwqdglxxm50g4x5na2hgzvkq1n0ss617rdj"
   },
   "stable": {
    "version": [
@@ -36843,11 +37352,11 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20210213,
-    1822
+    20210411,
+    2342
    ],
-   "commit": "8cd2e747c3f3c1a0879f66b42db090b2878af508",
-   "sha256": "0m6s8kjk1xpr9pp1s7r39mmm5ry2sa05ync3vjr4kr2m7s5fqchh"
+   "commit": "8c45988a12e7c149b17d7edb84e6dfc33bb7b288",
+   "sha256": "1lsfz3yi3i1mqmq6p9x6fx26wrlqihsaz3yk5g50yv6jqvfr1g79"
   }
  },
  {
@@ -37149,8 +37658,8 @@
    "deps": [
     "grammarly"
    ],
-   "commit": "f09caa56254e6c639993afba29f5a4b8b9f9c73e",
-   "sha256": "0djjxnmy2bkkc6nyl5iq3axnp0marpzpnb8cgh79w1fch300avrf"
+   "commit": "bc7c7e74013816ea06463ff85627bdc08ad60d9a",
+   "sha256": "0yj0mqyg0c87kvxz21y0wmfx97lwvym6qm3sdppgkff5fwppyj91"
   },
   "stable": {
    "version": [
@@ -37936,8 +38445,8 @@
     20210124,
     1143
    ],
-   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
-   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
+   "commit": "404233604439117301562deadc952fe82cb02120",
+   "sha256": "131yv9524yl7bwn9pd86pfjwjphv66lakfa9d293m4pq9mmg87s6"
   },
   "stable": {
    "version": [
@@ -37964,8 +38473,8 @@
     "avy-menu",
     "flyspell-correct"
    ],
-   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
-   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
+   "commit": "404233604439117301562deadc952fe82cb02120",
+   "sha256": "131yv9524yl7bwn9pd86pfjwjphv66lakfa9d293m4pq9mmg87s6"
   },
   "stable": {
    "version": [
@@ -37996,8 +38505,8 @@
     "flyspell-correct",
     "helm"
    ],
-   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
-   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
+   "commit": "404233604439117301562deadc952fe82cb02120",
+   "sha256": "131yv9524yl7bwn9pd86pfjwjphv66lakfa9d293m4pq9mmg87s6"
   },
   "stable": {
    "version": [
@@ -38028,8 +38537,8 @@
     "flyspell-correct",
     "ivy"
    ],
-   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
-   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
+   "commit": "404233604439117301562deadc952fe82cb02120",
+   "sha256": "131yv9524yl7bwn9pd86pfjwjphv66lakfa9d293m4pq9mmg87s6"
   },
   "stable": {
    "version": [
@@ -38060,8 +38569,8 @@
     "flyspell-correct",
     "popup"
    ],
-   "commit": "d19a090b978a249fc8f6d8b14309a5705a6bb483",
-   "sha256": "1p9s1qcqk834r0lkqzch8gb7c8qrpvbhxfyb44bgjd9qcw0kzr3s"
+   "commit": "404233604439117301562deadc952fe82cb02120",
+   "sha256": "131yv9524yl7bwn9pd86pfjwjphv66lakfa9d293m4pq9mmg87s6"
   },
   "stable": {
    "version": [
@@ -38428,11 +38937,11 @@
   "repo": "Fuco1/fontify-face",
   "unstable": {
    "version": [
-    20180420,
-    1624
+    20210503,
+    1956
    ],
-   "commit": "30ec0134f04d2b156bbc772e94edfa1a31ef0a58",
-   "sha256": "1i7hc436230dn68q2r7das7rgg8x0j3h43sv23krrg4qr0n0v07y"
+   "commit": "d1386c88ccc77ccfb40b888ff90d6181325d14f8",
+   "sha256": "1fi8sa7d6p6zgpvrnmpl85jfxqnl43053krb4h2lw0cgxd2wbd1v"
   },
   "stable": {
    "version": [
@@ -38455,8 +38964,8 @@
     20191004,
     1850
    ],
-   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
-   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
+   "commit": "246120647e28a27506ca0894ba98e371086881fd",
+   "sha256": "15gqzj4h0w33w38i8ihl74iy7aqxlds97gm93r72z69pm2l1d7dm"
   }
  },
  {
@@ -38527,14 +39036,14 @@
  },
  {
   "ename": "forge",
-  "commit": "58c5ca46286712b2aa43e07bb5dcbc8b5eb321e8",
-  "sha256": "1ykpjgbi2yak9ww54wnm1gxj9zff2ggldg9msg3219r8frzjcnjv",
+  "commit": "6cee0395aa57874032cb75c9f3f71e62bd139235",
+  "sha256": "0a1yvdxx43zq9ivwmg34wyybkw4vhgzd2c54cchsbrbr972x9522",
   "fetcher": "github",
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20210406,
-    1356
+    20210525,
+    1345
    ],
    "deps": [
     "closql",
@@ -38546,13 +39055,13 @@
     "markdown-mode",
     "transient"
    ],
-   "commit": "ab3be5a703f319e6de7e76ed292d20deb60cb2d7",
-   "sha256": "1flpxzmxyz94vl0y2mw437nmcsls1fncapa75kqnbbcf641nidhy"
+   "commit": "551e51511e25505d14e05699a1707fd57e394a9a",
+   "sha256": "139pndj9l9aifnvv2ak5zwf5gzwhp3m6dfpw1avf4vkh1zywzwa0"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
@@ -38560,14 +39069,13 @@
     "dash",
     "emacsql-sqlite",
     "ghub",
-    "graphql",
     "let-alist",
     "magit",
-    "magit-popup",
-    "markdown-mode"
+    "markdown-mode",
+    "transient"
    ],
-   "commit": "f5fc99935e2059ddede9766ce4bb96d99dcd203b",
-   "sha256": "0jipyqj3r4gkdwpcy0m5ij7x510r2admi8fbzwfysqyrwahs60nv"
+   "commit": "551e51511e25505d14e05699a1707fd57e394a9a",
+   "sha256": "139pndj9l9aifnvv2ak5zwf5gzwhp3m6dfpw1avf4vkh1zywzwa0"
   }
  },
  {
@@ -38578,11 +39086,11 @@
   "url": "https://depp.brause.cc/form-feed.git",
   "unstable": {
    "version": [
-    20201116,
-    1108
+    20210508,
+    1627
    ],
-   "commit": "26a52410db56fab9888b24b7622d74a2779c719d",
-   "sha256": "17xg7l6d509ngpdmx56z7mqr2iiyslyb3fhhlccifmnlxbvcr15g"
+   "commit": "ac1f0ef30a11979f5dfe12d8c05a666739e486ff",
+   "sha256": "1rrsnc6qwbqk091v1xinfn48fc0gbi3l5fy9hyafgl4zdx5ia2bg"
   },
   "stable": {
    "version": [
@@ -38602,15 +39110,15 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20210315,
-    640
+    20210604,
+    1107
    ],
    "deps": [
     "inheritenv",
     "language-id"
    ],
-   "commit": "94239d35944830ce009d01ac3369e0d61f9723c2",
-   "sha256": "1q27yr916vhk0ah1406vs540f8hpp8bca1f118xwhyj1fw3yrbaw"
+   "commit": "82f68e5d1f0641d7a050db02ab2c0a7d3888f358",
+   "sha256": "0761qmkza4sbl1k0vj4q18zm9p148h7131dq46wwajyxbmrxlxja"
   },
   "stable": {
    "version": [
@@ -38741,20 +39249,20 @@
  },
  {
   "ename": "fountain-mode",
-  "commit": "12589d1eb14bfc87d2e6f2a5ff8f5fb66b574a56",
-  "sha256": "1i55gcjy8ycr1ww2fh1a2j0bchx1bsfs0zd6v4cv5zdgy7vw6840",
+  "commit": "27cc1d093ce12b559a4266184fb9077c9810d542",
+  "sha256": "1jmb5xm0d1wffw3gj0idv114dzs845n41312dvghv7bblbxyd7bj",
   "fetcher": "github",
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20210411,
-    1308
+    20210523,
+    1327
    ],
    "deps": [
     "seq"
    ],
-   "commit": "3416d8cbf17af8b6f9118ae1963f203bf9b2509d",
-   "sha256": "1a9w6l46fs3dq52vih5dlm3163iy3dghz08d7c5xfg17c1b98yg8"
+   "commit": "77f3ce6b646868210f91b6a80fcaaa77297ed341",
+   "sha256": "1f0mzrn237kv2p5bz58km4b7a46shzm1v7n4a6ksyfd3n7cqas85"
   },
   "stable": {
    "version": [
@@ -39037,8 +39545,8 @@
     20210201,
     731
    ],
-   "commit": "752fe042ba3153473cd149875388c8dd9b4a8a26",
-   "sha256": "0x4sp6n6dksa8vps465i8sqvdzacr7hrxd4jlxj9gqkcspalrjgy"
+   "commit": "d5dc811fc892d78e042394bb4a1342dea2480b5c",
+   "sha256": "0n1w3rycc5cpqvhw6d1dzkwjdy1xx7bps7d994l4hcpdfx5c25lx"
   },
   "stable": {
    "version": [
@@ -39250,8 +39758,8 @@
   "repo": "thefrontside/frontmacs",
   "unstable": {
    "version": [
-    20210206,
-    2008
+    20210515,
+    1811
    ],
    "deps": [
     "add-node-modules-path",
@@ -39263,8 +39771,8 @@
     "tide",
     "web-mode"
    ],
-   "commit": "2b0e27a2f5fa18079b00753b3bf9635818e11f71",
-   "sha256": "0cv0vrz8mv7b8hm3ac8l7zjscavsxix0wiv646n5vx03282zfgpk"
+   "commit": "f11fea0cf3b92eddf1d083e0ce1abfc396f06631",
+   "sha256": "0gqlb541pka3bqpl9kn672az203yirjnqq4s4ac32i1ai83w5821"
   }
  },
  {
@@ -39365,14 +39873,14 @@
   "repo": "factor/factor",
   "unstable": {
    "version": [
-    20210323,
-    1426
+    20210602,
+    1531
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "43dfeb07bd3932f9d42c2b964413001cf32f0d50",
-   "sha256": "16an39w1ycbw90d6l0d2mcvyndah1j21b2jf7iwnqipwsac9f1qm"
+   "commit": "b989a860d1d6191bb9c5911ac77ed0931424eaeb",
+   "sha256": "1w0hyfspi3kahj2lk1bzj3ny3r8bb0cj4yfjizzbfc1pz9dlkpkp"
   },
   "stable": {
    "version": [
@@ -39706,11 +40214,11 @@
   "repo": "bling/fzf.el",
   "unstable": {
    "version": [
-    20210101,
-    1358
+    20210508,
+    1516
    ],
-   "commit": "c84beb96b959c0a20d70dad3bb9e3bc275a5b001",
-   "sha256": "1qb49qw0lyb2v3yn4jzq8fyq45akrl4078kg2q38g3gh9n29wf52"
+   "commit": "23c09c9c0417c7de67a8965d9b506d0cc7aea7a2",
+   "sha256": "0c4cz1kyanqswz5ww8aql96hqxg8p8lwwwygw061rq2ycmkl54nk"
   },
   "stable": {
    "version": [
@@ -39855,11 +40363,11 @@
   "repo": "wavexx/gcode-mode.el",
   "unstable": {
    "version": [
-    20201218,
-    2109
+    20210522,
+    1025
    ],
-   "commit": "a1e2c6cbf4e364991ab2209d5cd5a3b698d459d9",
-   "sha256": "0x6aqh415gbn9x7qyb74zmw5v1ghi7y0lknlbdccxx3j62fmmv8w"
+   "commit": "1f83845af4102efc5e5856b55bd5ad165b2f0cdd",
+   "sha256": "0lrsnl08npknif66chs3spy6pnblx3mbxxw1dii8a7zcj2s0ripv"
   }
  },
  {
@@ -39971,23 +40479,19 @@
   "repo": "emacs-geiser/geiser",
   "unstable": {
    "version": [
-    20210410,
-    2304
+    20210428,
+    1942
    ],
-   "commit": "aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 278 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 535 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 1141 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 2003 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503\n"
-   ]
+   "commit": "4099dce8f5f17cce8f292cdf0bc1bf2e5cb6975c",
+   "sha256": "0s02443pxi49c8hmkk3g489ngb5bl95inraq3jabb6dh7gyxgkag"
   },
   "stable": {
    "version": [
     0,
-    12
+    16
    ],
-   "commit": "adc5c4ab5ff33cf94cb3fcd892bb9503b5fa2aa2",
-   "sha256": "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"
+   "commit": "803dfeb9414ed7b99c5d567170f32c97cafa1114",
+   "sha256": "16jqni4s2yxszhkbb83fkgflygbxzx01cmq2qq40p4ihbvwm0gb0"
   }
  },
  {
@@ -39998,18 +40502,25 @@
   "repo": "emacs-geiser/chez",
   "unstable": {
    "version": [
-    20210405,
-    1922
+    20210421,
+    120
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "03da1c17253856d8713bc5a25140cb5002c9c188",
+   "sha256": "0cc1z5z5cpvxa5f3n8kvms0wxlybzcg4l1bh3rwv1l1sb0lk1xzx"
+  },
+  "stable": {
+   "version": [
+    0,
+    16
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "4cb7f2667ea1c53da53f0144910fbbd67bccbf4d",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 257 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 677 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 1142 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 2316 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503\n"
-   ]
+   "commit": "03da1c17253856d8713bc5a25140cb5002c9c188",
+   "sha256": "0cc1z5z5cpvxa5f3n8kvms0wxlybzcg4l1bh3rwv1l1sb0lk1xzx"
   }
  },
  {
@@ -40020,18 +40531,25 @@
   "repo": "emacs-geiser/chibi",
   "unstable": {
    "version": [
-    20210405,
-    1924
+    20210421,
+    123
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "6f59291d8d1dc92ffd3f53f919d8cab4bf50b7d3",
+   "sha256": "0r92iay5cw7jqyd8cy2mm02y0sl89flp4asbz6ca9l818micphfn"
+  },
+  "stable": {
+   "version": [
+    0,
+    16
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "54e7f384618c73d8fb675b5289d443a8ee3e4dc8",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 250 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 530 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 1321 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 2133 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503\n"
-   ]
+   "commit": "6f59291d8d1dc92ffd3f53f919d8cab4bf50b7d3",
+   "sha256": "0r92iay5cw7jqyd8cy2mm02y0sl89flp4asbz6ca9l818micphfn"
   }
  },
  {
@@ -40042,18 +40560,25 @@
   "repo": "emacs-geiser/chicken",
   "unstable": {
    "version": [
-    20210405,
-    1931
+    20210421,
+    127
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "ceab39c89607f55cba88e5606ba5eb37c7df5260",
+   "sha256": "0klssx0vhj48868p36nkn22qh2k4188gpvi3c2pjk9lb7d5356xj"
+  },
+  "stable": {
+   "version": [
+    0,
+    16
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "47be5b43b35d3bf35b0f668b4c08715ea41fb97d",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 302 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 546 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 1206 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 2316 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503\n"
-   ]
+   "commit": "ceab39c89607f55cba88e5606ba5eb37c7df5260",
+   "sha256": "0klssx0vhj48868p36nkn22qh2k4188gpvi3c2pjk9lb7d5356xj"
   }
  },
  {
@@ -40064,18 +40589,25 @@
   "repo": "emacs-geiser/gambit",
   "unstable": {
    "version": [
-    20210405,
-    1925
+    20210421,
+    124
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "3294c944d1c3b79db44ed14b133129fec454bd60",
+   "sha256": "1vwr0iv7pznr7n6j76i90n306mhq5pxdj8b2f7l5mb32m442w2w9"
+  },
+  "stable": {
+   "version": [
+    0,
+    16
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "0ee4156640988497779345452c3aa0417356e606",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 251 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 559 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 1131 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 2010 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503\n"
-   ]
+   "commit": "3294c944d1c3b79db44ed14b133129fec454bd60",
+   "sha256": "1vwr0iv7pznr7n6j76i90n306mhq5pxdj8b2f7l5mb32m442w2w9"
   }
  },
  {
@@ -40098,14 +40630,10 @@
   "stable": {
    "version": [
     0,
-    0,
-    2
-   ],
-   "deps": [
-    "geiser"
+    14
    ],
-   "commit": "9e7ed54e5629f759660569bc7efc3d75dbabbc5f",
-   "sha256": "0rxncnzx7qgcpvc8nz0sd8r0hwrplazzraahdwhbpq0q6z8ywqgg"
+   "commit": "362f1d1189c090ece8b94f6a51680f74b1ff40f9",
+   "sha256": "1gsvl0r6r385lkv0z4gkxirz9as6k0ghmk402zsyz8gvdpl0f3jw"
   }
  },
  {
@@ -40116,36 +40644,54 @@
   "repo": "emacs-geiser/guile",
   "unstable": {
    "version": [
-    20210405,
-    1917
+    20210508,
+    1838
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "93ef7101fdfcc7eac6f465b4b9788c384a323c14",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 250 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 632 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 1153 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 2774 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503\n"
-   ]
+   "commit": "8dda28f4f1758221f84f5cb5dc5b5ca5fd56caa9",
+   "sha256": "0iw23nlgqppf6f00ly50m8lq85n9mv244pw3whxv0hynfjxr2ic0"
+  },
+  "stable": {
+   "version": [
+    0,
+    17
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "8dda28f4f1758221f84f5cb5dc5b5ca5fd56caa9",
+   "sha256": "0iw23nlgqppf6f00ly50m8lq85n9mv244pw3whxv0hynfjxr2ic0"
   }
  },
  {
   "ename": "geiser-kawa",
-  "commit": "68690d6b011c95197af6b5a87cc21c4dbe97ff00",
-  "sha256": "0gzzab0v93vd9n14s1bya0frf3dagh0gbwg1an4mapg7gjz9ffdg",
+  "commit": "8e3f52b2b0dbd2ace92ec33caa3afc51e5c5e5cf",
+  "sha256": "0rvcpcf8znbndzm481a3477dw61rih1ifj3z2pwv33z6al6lwlh4",
   "fetcher": "gitlab",
-  "repo": "spellcard199/geiser-kawa",
+  "repo": "emacs-geiser/kawa",
   "unstable": {
    "version": [
-    20200507,
-    1305
+    20210427,
+    1626
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "3d999a33deedd62dae60f3f7cedfbdb715587ea7",
+   "sha256": "1i4ywb4ggq884p2lbpmp6y53l8ys5ajma7sk21zxi1jx28nb01nm"
+  },
+  "stable": {
+   "version": [
+    0,
+    14
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "b96c008e9c3b8dc210d8b536ee7b76b8690c8af6",
-   "sha256": "0j2djjgfd4hd2k60ymgxzpsy52ks6hxpd4rr81z5nh9fdg9axhrs"
+   "commit": "f76b53dbc1465dbd799e29bdcd2be34cc1603f50",
+   "sha256": "1i4ywb4ggq884p2lbpmp6y53l8ys5ajma7sk21zxi1jx28nb01nm"
   }
  },
  {
@@ -40163,11 +40709,18 @@
     "geiser"
    ],
    "commit": "d17394f577aaa2854a74a1a0039cb8f73378b400",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 286 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 541 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 1159 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 2059 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503\n"
-   ]
+   "sha256": "0w80ifs5d49ss81j34lnq91x2sbkc44i2xswkcwx23rh62p4jvyc"
+  },
+  "stable": {
+   "version": [
+    0,
+    14
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "d17394f577aaa2854a74a1a0039cb8f73378b400",
+   "sha256": "0w80ifs5d49ss81j34lnq91x2sbkc44i2xswkcwx23rh62p4jvyc"
   }
  },
  {
@@ -40178,18 +40731,54 @@
   "repo": "emacs-geiser/racket",
   "unstable": {
    "version": [
-    20210405,
-    1929
+    20210421,
+    125
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "22e56ce80389544d3872cf4beb4008fb514b2218",
+   "sha256": "1aqsvmk1hi7kc3j4h8xlza7c6rwm71v98fv5wpw8kmyj9vsp49wx"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "a87fd449cc6c7b0b17a0b08268e78d3f038f3351",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 346 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 544 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 1082 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 2114 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503\n"
-   ]
+   "commit": "42376b74ae0ad84d02c26560dfd9181493dcccd7",
+   "sha256": "1aqsvmk1hi7kc3j4h8xlza7c6rwm71v98fv5wpw8kmyj9vsp49wx"
+  }
+ },
+ {
+  "ename": "geiser-stklos",
+  "commit": "6530db79aafe4ac4cefa01f77a8cc1e259385171",
+  "sha256": "0bbxxxvzp4dd22lrlmg0lnishvqj1pcm82scds27nrkzrcdycs8s",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/stklos",
+  "unstable": {
+   "version": [
+    20210503,
+    944
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "0e3a0570354c03c0cfa25da82fb34ad2e81c1981",
+   "sha256": "1g31cibl88g1vjfvw4z80ywxpnxy5lijhs754qdcnx36maragh07"
+  },
+  "stable": {
+   "version": [
+    1,
+    6
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "0e3a0570354c03c0cfa25da82fb34ad2e81c1981",
+   "sha256": "1g31cibl88g1vjfvw4z80ywxpnxy5lijhs754qdcnx36maragh07"
   }
  },
  {
@@ -40349,8 +40938,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20210329,
-    817
+    20210530,
+    402
    ],
    "deps": [
     "dash",
@@ -40358,8 +40947,8 @@
     "magit",
     "s"
    ],
-   "commit": "63ca93be02f830f8d65905ebde72d60a2280687a",
-   "sha256": "08s7q7br8a68gs7w55g6i4g0d6ky2mksl1ws8iigiavkh64sihkb"
+   "commit": "f1bdc47ab2bb29c2a0a385aaa9a5f0f6d543ffb5",
+   "sha256": "1qcw5kzcw9g41hqg0gnq3k6i4ygfgrlghadmfzdnf7dbk93ngl4g"
   }
  },
  {
@@ -40593,11 +41182,11 @@
   "repo": "rcoedo/emacs-ghq",
   "unstable": {
    "version": [
-    20160803,
-    1557
+    20210504,
+    902
    ],
-   "commit": "aae4b8cb22fd6c24d2c9e3962c7e8e9dac6d9825",
-   "sha256": "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"
+   "commit": "582bd6daa505d04c7cc06d6c82ed8aee0624bfbe",
+   "sha256": "0lb3ic0s32ipvdka8y8grkfi8jb8j821g815v9dnslj7hzh07g2j"
   },
   "stable": {
    "version": [
@@ -40617,28 +41206,28 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20210327,
-    1647
+    20210531,
+    2006
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "2273c3b49a08cde0498b3b2cfae6c764629a4c93",
-   "sha256": "1pg46ycllg900cd8q5bsgv9b9mcc0bm0z5g2bw9gf5nnbw556jla"
+   "commit": "e9a819c9c997b8e752eeb4a3fcd1a7b55ab8da47",
+   "sha256": "1c92q4hrax9gfrw35qi3slr7man006v5vqzp6hi2an5haw2cz4x2"
   },
   "stable": {
    "version": [
     3,
     5,
-    1
+    3
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "5fae5e31586a11a2025168030e0eb3876502611c",
-   "sha256": "0i19h9zl8wky1296f0d7dcx9dpfmfixinnaf4l1w1bf4p2xmyfiw"
+   "commit": "ae59388adbba32fa00e39f3323fe69367739ee6f",
+   "sha256": "1sn7rzfkm75vj3whhisrjk1s34lz6hc08hmf4nnznbdvyimnd013"
   }
  },
  {
@@ -40684,19 +41273,15 @@
     656
    ],
    "commit": "fa81e915c256271fa10b807a2935d5eaa4700dff",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 272 ms\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 546 ms\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 1078 ms\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 2648 ms\nerror: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503\n"
-   ]
+   "sha256": "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"
   },
   "stable": {
    "version": [
     1,
-    1
+    2
    ],
-   "commit": "9522f7e41d07b59afe21e28abbf186f78be3eab6",
-   "sha256": "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"
+   "commit": "fa81e915c256271fa10b807a2935d5eaa4700dff",
+   "sha256": "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"
   }
  },
  {
@@ -40707,11 +41292,11 @@
   "repo": "csrhodes/gift-mode",
   "unstable": {
    "version": [
-    20180530,
-    1235
+    20210528,
+    1459
    ],
-   "commit": "b0441ae6e02f343be3b611a2d4b40495ecd932f0",
-   "sha256": "0dwpmvjsczcdzwhjvpfxrkfha513538z8wq3gr3l1zc1kdggx2bk"
+   "commit": "c93354e8fe1173b22f398f17b127875807f15b87",
+   "sha256": "1d974s7i2hi8yxdng2l02pfn2vkv65jzk5lm9p6if2myf5xbwis5"
   }
  },
  {
@@ -40987,29 +41572,30 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210328,
-    1730
+    20210525,
+    844
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
-   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
+   "commit": "4a8646a30df99bbafc95d4f21a0b2bf0a6f6566f",
+   "sha256": "0y3wzvyaxn5zybjak77r1cngaqqm462s3d4f1cwmzvrnpv99f3r9"
   },
   "stable": {
    "version": [
-    2,
-    90,
-    1
+    3,
+    0,
+    0
    ],
    "deps": [
     "dash",
+    "transient",
     "with-editor"
    ],
-   "commit": "791901b2f1d26fa0a383147fe77948a9abc753da",
-   "sha256": "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4"
+   "commit": "c3bbc9b9425f3370690cabb11bd35b9040773fdc",
+   "sha256": "0dbp3gx43ipxv8zg9m0hfhksz85rnkikaq35rx705qqz6xq6xq9m"
   }
  },
  {
@@ -41089,11 +41675,11 @@
   "repo": "emacsorphanage/git-gutter",
   "unstable": {
    "version": [
-    20210127,
-    1100
+    20210511,
+    427
    ],
-   "commit": "cca61a1c6b0c0fd6ecb1b0366711c618581eabb6",
-   "sha256": "1q6qrrxa3mf3pkkqr8piaij3yrgqh48xrrn3a442wn2i427q63kc"
+   "commit": "d050abdd7f5a46c9cfbec2953d2fca90095e2857",
+   "sha256": "1bx44spbhags7d2jjfcvanian36vkw1cw186zy7vl2nqwf9hfa95"
   },
   "stable": {
    "version": [
@@ -41206,16 +41792,16 @@
   "repo": "akirak/git-identity.el",
   "unstable": {
    "version": [
-    20201223,
-    948
+    20210430,
+    1603
    ],
    "deps": [
     "dash",
     "f",
     "hydra"
    ],
-   "commit": "1c35e1693bbb7de41a8aac820a080a7299c13c17",
-   "sha256": "136j6gbpg8qx6ry1ryh4aal41b3c8pz7g2xisyipjj6p9lmykvqi"
+   "commit": "5b1191f79f1845d7144bd2a49ad25c49866456aa",
+   "sha256": "06ybkpaqicx3q5hdjz99v3isj1jhrpmg55wf054dzx6wpjy8na21"
   },
   "stable": {
    "version": [
@@ -41279,11 +41865,11 @@
   "repo": "sshaw/git-link",
   "unstable": {
    "version": [
-    20210318,
-    313
+    20210504,
+    2207
    ],
-   "commit": "2b510cf3f28bed842853294fc4ee23c7f8b6435a",
-   "sha256": "0c5p5llxlgi09lymjnh0jpp36v5vfmi6rjb77123gcnsqi0031wn"
+   "commit": "0d2fd02c160cf2a09ca4b5b4ffa544833df5afed",
+   "sha256": "1ryb5hfdfv5iaakv74h5wnwislbc4b9ihjc32cy9sc4gizjvrrmp"
   },
   "stable": {
    "version": [
@@ -41390,14 +41976,14 @@
   "repo": "pidu/git-timemachine",
   "unstable": {
    "version": [
-    20200603,
-    701
+    20210528,
+    908
    ],
    "deps": [
     "transient"
    ],
-   "commit": "8d675750e921a047707fcdc36d84f8439b19a907",
-   "sha256": "1ppids836gdk5j8cli8wkzkjb85f4s1s550v5xpxyyq75rj1bnsr"
+   "commit": "3381797bcbf906b18dff654a2361032d2d01b4a3",
+   "sha256": "05pyjhi26charkjy0mhvigd72rvb4s1s8imycfynf0fmjy7f7n7x"
   },
   "stable": {
    "version": [
@@ -41480,20 +42066,20 @@
   "repo": "magit/git-modes",
   "unstable": {
    "version": [
-    20180318,
-    1956
+    20210528,
+    1854
    ],
-   "commit": "14adca24eb6b0b4e311ad144c5d41972c6b044b2",
-   "sha256": "1z3xyjlbxni98hqdnd46lg89dcmcaqjsv73wv16ia4z6lrkhv5dp"
+   "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
+   "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
   },
   "stable": {
    "version": [
     1,
-    2,
-    8
+    3,
+    1
    ],
-   "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
-   "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+   "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
+   "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
   }
  },
  {
@@ -41528,20 +42114,20 @@
   "repo": "magit/git-modes",
   "unstable": {
    "version": [
-    20180318,
-    1956
+    20210528,
+    1856
    ],
-   "commit": "14adca24eb6b0b4e311ad144c5d41972c6b044b2",
-   "sha256": "1z3xyjlbxni98hqdnd46lg89dcmcaqjsv73wv16ia4z6lrkhv5dp"
+   "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
+   "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
   },
   "stable": {
    "version": [
     1,
-    2,
-    8
+    3,
+    1
    ],
-   "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
-   "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+   "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
+   "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
   }
  },
  {
@@ -41816,20 +42402,20 @@
   "repo": "magit/git-modes",
   "unstable": {
    "version": [
-    20180318,
-    1956
+    20210528,
+    1856
    ],
-   "commit": "14adca24eb6b0b4e311ad144c5d41972c6b044b2",
-   "sha256": "1z3xyjlbxni98hqdnd46lg89dcmcaqjsv73wv16ia4z6lrkhv5dp"
+   "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
+   "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
   },
   "stable": {
    "version": [
     1,
-    2,
-    8
+    3,
+    1
    ],
-   "commit": "55468314a5f6b77d2c96be62c7005ac94545e217",
-   "sha256": "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"
+   "commit": "433e1c57a63c88855fc41a942e29d7bc8c9c16c7",
+   "sha256": "0br3nwr2mjywysqn83npf45qpqii3xqzdggg5fd47r9vqqj6mc55"
   }
  },
  {
@@ -41978,26 +42564,26 @@
   "repo": "TxGVNN/gitlab-pipeline",
   "unstable": {
    "version": [
-    20210322,
-    439
+    20210601,
+    1339
    ],
    "deps": [
     "ghub"
    ],
-   "commit": "089400ac1d411a2b58cf1a64f28911079d5c898f",
-   "sha256": "0zck5488fswqcl7ahknm6nan5al8db73p2jbxnwcv2cxcia81qza"
+   "commit": "2404f9cf0a064aabea975adada250895c385e057",
+   "sha256": "00i6q4pggaq97xgvi2ifanh0lx8nq5gbi4r2gy596635x26a55zq"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "ghub"
    ],
-   "commit": "ecb3a2277f6a1c7fed73f9381834724c143c85da",
-   "sha256": "1nqrim3fpgf5npzl14sd0h6dlhi925hns2f75l4arrhbcjgcn984"
+   "commit": "078f72d52e840907aa4c568468ce25758f20eb15",
+   "sha256": "0y2dkw7dwk1g4q0z1bjycj7sv47pvna6h7kwh8padn5l4fiy0hkd"
   }
  },
  {
@@ -42418,11 +43004,11 @@
   "repo": "emacsorphanage/gnuplot",
   "unstable": {
    "version": [
-    20210104,
-    1052
+    20210526,
+    1848
    ],
-   "commit": "116cad8e09024223f97e81b0a4503cef20de9bf5",
-   "sha256": "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"
+   "commit": "07a80272b86c081b40602ec0b080571f3269749d",
+   "sha256": "1d50b5vwnzca16g7hs2i0357lx9x5rvivdb5hdi0ngf6sb8d1afk"
   },
   "stable": {
    "version": [
@@ -42543,11 +43129,11 @@
   "repo": "unhammer/gnus-recent",
   "unstable": {
    "version": [
-    20210115,
-    1107
+    20210604,
+    720
    ],
-   "commit": "52f05e7431b5ce5487e8a990eb2ad01cade973bc",
-   "sha256": "178b8l2f5ykrq1yllg9rmn1vsyp3aqslrga1gxx1rc4grx22x31z"
+   "commit": "09b9e96f8e0ab006d9cfe8f5ab000ce7e50ef4de",
+   "sha256": "0qsnfiqcivy7czg2j7kdsifz7p5nid1zvw6zdnaihghzdxa1w1ia"
   },
   "stable": {
    "version": [
@@ -42718,30 +43304,6 @@
   }
  },
  {
-  "ename": "go-capf",
-  "commit": "be3dc9ae83c9d11a4f04f79775b17c5a2b86e96d",
-  "sha256": "0k6s65bf8iwkpr93agw9hqaxfckqi43lanffdic6j4vjrk4inlwz",
-  "fetcher": "git",
-  "url": "https://git.sr.ht/~zge/go-capf",
-  "unstable": {
-   "version": [
-    20200814,
-    1046
-   ],
-   "commit": "acc353135f390245453f0d90f5846f67b0a84952",
-   "sha256": "1hb8glprzpm94bsyx2mnv9w6b825y451agpqh2ry8ngydbc1llhi"
-  },
-  "stable": {
-   "version": [
-    1,
-    1,
-    0
-   ],
-   "commit": "de3b668b83a73da5ce189c536a58aa1d4f5d492c",
-   "sha256": "1y1dscqyd2jx5irj5pcy7sspzzp0nsy2j4zaqhln2snffpqa3hmf"
-  }
- },
- {
   "ename": "go-complete",
   "commit": "4df81abbf3b16f06fa327c1626bef1245ea77758",
   "sha256": "0dl0ibw145f84kd709r5i2kaw07z1sjzn3dmsiqn8dncspcf2vb4",
@@ -42963,8 +43525,8 @@
     "cl-lib",
     "go-mode"
    ],
-   "commit": "49a538028e63dbe20f428c52d91f09b70b564626",
-   "sha256": "1zmpbna0picp8iyscrqgvxz5pbkbpapzij0vprkqzfznvihn926n"
+   "commit": "34974346d1f74fa835d745514c9fe9afccce8dae",
+   "sha256": "1h0vyp3xbz6xx6warxi23w8kjjgkr0x1lr6r9a2qiz2rywn8jlxf"
   },
   "stable": {
    "version": [
@@ -43056,11 +43618,11 @@
   "repo": "dominikh/go-mode.el",
   "unstable": {
    "version": [
-    20210201,
-    1458
+    20210509,
+    2353
    ],
-   "commit": "49a538028e63dbe20f428c52d91f09b70b564626",
-   "sha256": "1zmpbna0picp8iyscrqgvxz5pbkbpapzij0vprkqzfznvihn926n"
+   "commit": "34974346d1f74fa835d745514c9fe9afccce8dae",
+   "sha256": "1h0vyp3xbz6xx6warxi23w8kjjgkr0x1lr6r9a2qiz2rywn8jlxf"
   },
   "stable": {
    "version": [
@@ -43179,8 +43741,8 @@
    "deps": [
     "go-mode"
    ],
-   "commit": "49a538028e63dbe20f428c52d91f09b70b564626",
-   "sha256": "1zmpbna0picp8iyscrqgvxz5pbkbpapzij0vprkqzfznvihn926n"
+   "commit": "34974346d1f74fa835d745514c9fe9afccce8dae",
+   "sha256": "1h0vyp3xbz6xx6warxi23w8kjjgkr0x1lr6r9a2qiz2rywn8jlxf"
   },
   "stable": {
    "version": [
@@ -43296,11 +43858,11 @@
   "repo": "lorniu/go-translate",
   "unstable": {
    "version": [
-    20201203,
-    203
+    20210527,
+    1257
    ],
-   "commit": "ea63d0ad9816aa1c478c66bd1ff9978e8330d3cb",
-   "sha256": "0v3w3ffls9h4vpalmkvswsrdcny3z1g7p9gdp75lw6pc9xkmkgnz"
+   "commit": "7a9b7978057bf747ed06fa6c9d2f30047714aa05",
+   "sha256": "1wydx9ak09dfmvqvvkdd5zdzablj8rhisk3im1f41a4hgiba80hr"
   },
   "stable": {
    "version": [
@@ -43337,8 +43899,8 @@
     20210102,
     515
    ],
-   "commit": "02a402b2323e025f77e89cf56d5e678e31a2d2f6",
-   "sha256": "07xxj1wqxjvzlqp41xj9jz1jfbb8h4578xmbfaqi4isljbadj04k"
+   "commit": "fcbd45f78b85500f66f323bd19994941832c28d1",
+   "sha256": "1akrm884nbqjf4l5667cfdxn8xawb2fkri40hv7k8w0pl9cjbamx"
   },
   "stable": {
    "version": [
@@ -43474,8 +44036,8 @@
     20180221,
     2015
    ],
-   "commit": "83fdc39ff7b56453e3793356bcff3070b9b96445",
-   "sha256": "0ms3rs5hvpnm9bxbr5f9743i7hn2bbmqdmvzxq6nmi0f24ypv1l3"
+   "commit": "6edffad5e6160f5949cdefc81710b2706fbcd4f6",
+   "sha256": "1n7lrr3282q3li4f06afms444qy13rfd316za0drqihakwyki2jk"
   }
  },
  {
@@ -43519,20 +44081,20 @@
   "repo": "io12/good-scroll.el",
   "unstable": {
    "version": [
-    20210404,
-    321
+    20210607,
+    339
    ],
-   "commit": "fb01f121c4c77db3e6750303894d57b31e410b14",
-   "sha256": "0jz4p6xa8nb36g96a8pbhpc4l16jzwryddlw2c442vmkngwy9s1j"
+   "commit": "b4233500bbbdb64758283ba8a4b7cef5a85181a2",
+   "sha256": "05k03bycwpgs9wf9rh4rxfp38lhzr46c8zpvkd5qr6zwb1nnvr00"
   },
   "stable": {
    "version": [
-    0,
-    3,
-    0
+    1,
+    1,
+    1
    ],
-   "commit": "a4e80bbf83872fa6c8ace5197693d2f81c4ff1cd",
-   "sha256": "0bh3wbaiavz033isgl0m7crjhfsb0gxsgsnh54aph7pdrffci0r6"
+   "commit": "61aa3b57d572e6a46a1415b66dbc4b80c33bfb73",
+   "sha256": "0zprygv94rp1hdq7qxcmp3ns04j6l28y9w5hp087mhfbr1v5y54m"
   }
  },
  {
@@ -43561,8 +44123,8 @@
     20180130,
     1736
    ],
-   "commit": "845e4f9a15a794071457e74c1fa99be2c68d75fe",
-   "sha256": "130bjw6bpizf0wq48d8n1cvgpdrq31d8ryd6wmah8a5vbwnczf6y"
+   "commit": "9c8784ded344f6a35d1e1550385002f613a0c788",
+   "sha256": "1n1pk876yicv9hvwmja3hs6i7s25nv626p3gxsp9278yb933ml2m"
   }
  },
  {
@@ -43777,11 +44339,11 @@
   "url": "https://depp.brause.cc/gotham-theme.git",
   "unstable": {
    "version": [
-    20210318,
-    2207
+    20210508,
+    1632
    ],
-   "commit": "51876a72dbe5a16aeadde2e885da6bbf75909bd1",
-   "sha256": "042cpdl7srfj1ha3z27xj03bzp3vrz6ql4x0zzvjxsyj08z1q80y"
+   "commit": "8a97fb8a68cef8e431c972b3d5713b637e21dd7e",
+   "sha256": "1ldywxhbb34pj7p4rhhzlavwqci9i35i4f8cnyi1w5b1469v1x9f"
   },
   "stable": {
    "version": [
@@ -43825,11 +44387,11 @@
   "repo": "emacs-evil/goto-chg",
   "unstable": {
    "version": [
-    20201101,
-    1029
+    20210508,
+    1632
    ],
-   "commit": "2af612153bc9f5bed135d25abe62f46ddaa9027f",
-   "sha256": "1awmvihqgw6kspx192bcp9xp56xqbma90wlhxfxmidx3bvxghwpv"
+   "commit": "3ce1389fea12edde4e343bc7d54c8da97a1a6136",
+   "sha256": "13v9d97ypkfa3g0x64psk29hpicl4djk35iwxhvw080bagrn5gls"
   },
   "stable": {
    "version": [
@@ -43921,14 +44483,14 @@
     "magit-popup",
     "s"
    ],
-   "commit": "52c75aa6b3d8eeacfede11b314e20514ca7c75a4",
-   "sha256": "1a2nzbxhqwpjxfm4sr1l2pyjxhvfwd3ralxmldgsdpssqx64lvsn"
+   "commit": "da0ae769e70e1af16865c3fadb25e9132d089dc6",
+   "sha256": "09kdlz6h31yasi1rv7759m40zb12vj6llv70pqh9swrpii2nmdzp"
   },
   "stable": {
    "version": [
     0,
-    24,
-    1
+    26,
+    0
    ],
    "deps": [
     "dash",
@@ -43936,8 +44498,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "f49dcf5ec6e16562de30674b36b18e6bdcd47411",
-   "sha256": "1slw2pawlcx9zfvsazsir2kj32g30b80c7a0yiqyrd7cv1hjnr8g"
+   "commit": "34586b6650fb19689755570628a558ca9ea7946a",
+   "sha256": "0a7bnw01j4fbhga5x00v5bbk38j2q7mg7ablz6kswlmarqwr4fm6"
   }
  },
  {
@@ -43987,11 +44549,11 @@
   "repo": "xuchunyang/grab-mac-link.el",
   "unstable": {
    "version": [
-    20200712,
-    428
+    20210511,
+    1303
    ],
-   "commit": "9b47cbe126a0735fa447a3c5e1e8ba80a7ef8d26",
-   "sha256": "1hx3a6sfc3ah3xgwii0l0jvshgbw0fjwsyrmb4sri0k8cla7fwin"
+   "commit": "2c722016ca01bd4265d57c4a7d55712c94cf4ea5",
+   "sha256": "1019304mw72swkw1dkhbcrfl0acg6gj0m1cwg2w8d89dba2ddbw8"
   },
   "stable": {
    "version": [
@@ -44096,8 +44658,8 @@
     20160504,
     911
    ],
-   "commit": "26da902d1158c0312628d57578109be54eca2415",
-   "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
+   "commit": "99eaf70720e4a6337fbd5acb68ae45cc1779bdc4",
+   "sha256": "1jpfyqnqd8nj0g8xbiw4ar2qzxx3pvhwibr6hdzhyy9mmc4yzdgk"
   },
   "stable": {
    "version": [
@@ -44156,8 +44718,8 @@
     "s",
     "websocket"
    ],
-   "commit": "e11a5a67307f05e08812be190b23460a1bf97687",
-   "sha256": "10ral5vipq3jvg3l8l2vgia97dpsjzkjvidp63n5z6mpjdwblka1"
+   "commit": "175e68d7ce9fd4c44d1eb808954cf0ba66b59599",
+   "sha256": "1ylynb295p5c26ayb8kdxqfbj9z61vinnd6bdlwsynr1wncbwyy4"
   },
   "stable": {
    "version": [
@@ -44296,6 +44858,38 @@
   }
  },
  {
+  "ename": "graphql-doc",
+  "commit": "54bd4ea32fb912c51735243fa8f609890516fad9",
+  "sha256": "1szibk2ragp0pbbzw6bw1jmbpdbc6llj4cmd20wz8lvjwp3p1qss",
+  "fetcher": "github",
+  "repo": "ifitzpatrick/graphql-doc.el",
+  "unstable": {
+   "version": [
+    20210530,
+    221
+   ],
+   "deps": [
+    "promise",
+    "request"
+   ],
+   "commit": "a60a646413fce528ecf42be3ee111b3f92d9f95b",
+   "sha256": "168yqaygyvrw05kip10azdcjsczahrsflg43vl6ki7ii6x595b5s"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "deps": [
+    "promise",
+    "request"
+   ],
+   "commit": "1623cdd887846057200579cfddc0fa1815d1af9c",
+   "sha256": "0nqx88ng72vvz1vl7hj1m77ncf9i0d4l3n1bab0kp90fmrgxa69p"
+  }
+ },
+ {
   "ename": "graphql-mode",
   "commit": "3850073e6706d4d8151bc6ab12963a19deae8be9",
   "sha256": "074dc8fgbrikb5inv837n9bpmz1ami7aaxsqcci1f94x3iw8i74i",
@@ -44534,11 +45128,11 @@
   "repo": "seagle0128/grip-mode",
   "unstable": {
    "version": [
-    20200725,
-    725
+    20210515,
+    1548
    ],
-   "commit": "98d566db769b865f102a0c6802a08ebce8ae5e7f",
-   "sha256": "0dh0a2msrbr31lzrp9b0xrp78g4h02qcsxjjzgmqyb6fqzhbr3kd"
+   "commit": "02b7a8109fa1ae248e61c91da3bd8676f8d2e175",
+   "sha256": "0rd8nasnlc01wb4lkzpk3xrwj9lx2n4gsq7h4nc0irnbfy8phy1s"
   },
   "stable": {
    "version": [
@@ -44585,27 +45179,28 @@
   "repo": "mbezjak/emacs-groovy-imports",
   "unstable": {
    "version": [
-    20161003,
-    851
+    20210505,
+    1807
    ],
    "deps": [
     "pcache",
     "s"
    ],
-   "commit": "e56d7dda617555ec6205644d32ffddf2e1fa43d9",
-   "sha256": "060zxl2y4p50g5fwgplgx07h5akfplp49rkv5cx09rqlcyzqhqwa"
+   "commit": "a60c3202973e3185091db623d960f71840a22205",
+   "sha256": "1bsmf64ycmfnsb0r0nyaky1h3x2fpr4qyck3ihw16pa6d7spaw8c"
   },
   "stable": {
    "version": [
     1,
-    0
+    0,
+    1
    ],
    "deps": [
     "pcache",
     "s"
    ],
-   "commit": "e56d7dda617555ec6205644d32ffddf2e1fa43d9",
-   "sha256": "060zxl2y4p50g5fwgplgx07h5akfplp49rkv5cx09rqlcyzqhqwa"
+   "commit": "a60c3202973e3185091db623d960f71840a22205",
+   "sha256": "1bsmf64ycmfnsb0r0nyaky1h3x2fpr4qyck3ihw16pa6d7spaw8c"
   }
  },
  {
@@ -44616,15 +45211,15 @@
   "repo": "Groovy-Emacs-Modes/groovy-emacs-modes",
   "unstable": {
    "version": [
-    20191031,
-    2256
+    20210510,
+    317
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "26da902d1158c0312628d57578109be54eca2415",
-   "sha256": "113s9znqrdi9zm045hi3ws5ixrd0bzxfy3wr8lzxq9r3jbv67iz2"
+   "commit": "99eaf70720e4a6337fbd5acb68ae45cc1779bdc4",
+   "sha256": "1jpfyqnqd8nj0g8xbiw4ar2qzxx3pvhwibr6hdzhyy9mmc4yzdgk"
   },
   "stable": {
    "version": [
@@ -44725,14 +45320,14 @@
   "repo": "greduan/emacs-theme-gruvbox",
   "unstable": {
    "version": [
-    20210105,
-    1136
+    20210606,
+    1419
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "0013c68458ae62fe1dc4bbbb23f6a54a9d41e398",
-   "sha256": "197r166c4pj0kc2v65rip93pcmmnm4li2jvagvajblang1svr2v0"
+   "commit": "c2ae5e3fff39f78f23109d90fdf36b3b189df511",
+   "sha256": "1vx3grgnnb5mamig3cd882pvcbqpni3kglrjawgdc96wwiv1krbg"
   },
   "stable": {
    "version": [
@@ -44878,8 +45473,8 @@
     20200416,
     2136
    ],
-   "commit": "4462a5ab071ec001734e92d1ac2e5fa9721b94bd",
-   "sha256": "0v2h846k9xv47am66nv4piqhvn74xijhp2bq84v3wpls4msvfk70"
+   "commit": "e0653e4a654b7800dc15f7e1a06a956b77d2aabe",
+   "sha256": "0aclxzxsh0ixibnw86d8gcyq5yzbfqzmz02rh2djk7l27yg50f10"
   },
   "stable": {
    "version": [
@@ -44887,7 +45482,7 @@
     0,
     4
    ],
-   "commit": "4462a5ab071ec001734e92d1ac2e5fa9721b94bd",
+   "commit": "a60af277fbb52306c17663074cf9954dd6cea024",
    "sha256": "0v2h846k9xv47am66nv4piqhvn74xijhp2bq84v3wpls4msvfk70"
   }
  },
@@ -45057,14 +45652,14 @@
   "repo": "wbolster/emacs-gvariant",
   "unstable": {
    "version": [
-    20190513,
-    1005
+    20210507,
+    1310
    ],
    "deps": [
     "parsec"
    ],
-   "commit": "b162867c03ead58784c47996ae329355ecea2869",
-   "sha256": "0yqgj3zcpmga9v085l98yr02k8bhgd4bzshmyjl1x98s50n207jp"
+   "commit": "f2e87076845800cbaaeed67f175ad4e4a9c01e37",
+   "sha256": "1m6gwplzps0hykzszh0vh4rs48hcfi99vxb4i870y46lq2y8x2xb"
   },
   "stable": {
    "version": [
@@ -45158,14 +45753,14 @@
   "repo": "hhvm/hack-mode",
   "unstable": {
    "version": [
-    20210410,
-    134
+    20210519,
+    108
    ],
    "deps": [
     "s"
    ],
-   "commit": "8b59e20197ddab21d41d8828ff5ab298bde18294",
-   "sha256": "01iwdpm8nzr8fiqz8shvlwj8cl0r1d5jw77kkfx33vai0nh8m94y"
+   "commit": "f9315be69954b95b6a3ceaa37f31a88f8369a59f",
+   "sha256": "060cp88snnp9059b382nkfbj8b5p5wm360vjrcrpny08d0dfj7pj"
   },
   "stable": {
    "version": [
@@ -45458,14 +46053,14 @@
   "repo": "rolandwalker/hardhat",
   "unstable": {
    "version": [
-    20160414,
-    1413
+    20210515,
+    1422
    ],
    "deps": [
     "ignoramus"
    ],
-   "commit": "9038a49ab55cd4c502cf7f07ed0d1b9b6bc3626e",
-   "sha256": "0j9z46j777y3ljpai5czdlwl07f0irp4fsk4677n11ndyqm1amb5"
+   "commit": "908cb130be3d56921a3687a00b974ba5eef3a11f",
+   "sha256": "0cxa43kydsfdlmqfkj99walhzxcmc9bdvkdmlqnbyq6fc6cv7ipx"
   },
   "stable": {
    "version": [
@@ -45606,11 +46201,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20210407,
-    214
+    20210507,
+    2243
    ],
-   "commit": "426e28bbee7853734664d75a7e5f960c6c15ee67",
-   "sha256": "01qrrbb2rgr780xna4a1ncv92y8af76kvj0hjdl3qa1mdn0ypc3j"
+   "commit": "b35e8547b67f3d2c4d38ec7e7e516e3c0925352f",
+   "sha256": "1z6x28gv47vdi2a06p1w390a40ll1b1g2dhxhzpn998r6b1d8zxm"
   },
   "stable": {
    "version": [
@@ -45940,16 +46535,16 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20210409,
-    1016
+    20210607,
+    1026
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "4f16ec21f5ac4d0b9e36768c27abd453a959388d",
-   "sha256": "07v5gr61pvm5nh8xfi79i7ps6hjicm07zkg98m14z424dc8x6kl4"
+   "commit": "a92156303021e0ec91a904e16a994d8e1ccd78f7",
+   "sha256": "1lxmp0a7wk7wqb6qcy1zn9sr47vakgxzn0j8yyvdv1vps4hz9wk0"
   },
   "stable": {
    "version": [
@@ -46242,8 +46837,8 @@
     "cl-lib",
     "helm"
    ],
-   "commit": "9870333cdd4a54b309e2709af647cda6f4070a42",
-   "sha256": "02cpg60hif4rz6va2ynh3wc9dwj0nyig4fa0l6jchmzz8v2zvf86"
+   "commit": "9f6ea920a49457d85096caa0e61f086a42b2908e",
+   "sha256": "0dqf2anmjlgcz7xn4q2pw8cfmhwdhdg4fm8q41vhrp60ymbc6dik"
   },
   "stable": {
    "version": [
@@ -46848,14 +47443,14 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20210324,
-    1445
+    20210606,
+    1857
    ],
    "deps": [
     "async"
    ],
-   "commit": "4f16ec21f5ac4d0b9e36768c27abd453a959388d",
-   "sha256": "07v5gr61pvm5nh8xfi79i7ps6hjicm07zkg98m14z424dc8x6kl4"
+   "commit": "a92156303021e0ec91a904e16a994d8e1ccd78f7",
+   "sha256": "1lxmp0a7wk7wqb6qcy1zn9sr47vakgxzn0j8yyvdv1vps4hz9wk0"
   },
   "stable": {
    "version": [
@@ -47933,14 +48528,14 @@
   "url": "https://framagit.org/steckerhalter/helm-google.git",
   "unstable": {
    "version": [
-    20180606,
-    520
+    20210527,
+    900
    ],
    "deps": [
     "helm"
    ],
-   "commit": "48e91a73d5f48c39d7a219022a24440cff548e1a",
-   "sha256": "05xj6bkr330glh56n8c63297zqh1cmlhxlyxpr04srjraifyzba1"
+   "commit": "27834161391c350ef790062391cb7eab1d59fb62",
+   "sha256": "1rb1pmzr6szg8jjm43dndnk99v4i5zb1wp24rs9w8zmhygdn8jf4"
   }
  },
  {
@@ -48391,8 +48986,8 @@
     "helm",
     "lean-mode"
    ],
-   "commit": "5a2a36356e73c74a42e49fad19a71f4f12929a90",
-   "sha256": "18lswxxwvp85yzg1kc9vxn4dpmxmj40j6g64c8ns83nb7hw9lszg"
+   "commit": "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44",
+   "sha256": "1bkv5zs38ijawvavbba0fdf2flb6fiwici3qi99ws8wvwhnbkws2"
   }
  },
  {
@@ -48538,16 +49133,16 @@
   "repo": "emacs-lsp/helm-lsp",
   "unstable": {
    "version": [
-    20210226,
-    2027
+    20210419,
+    2014
    ],
    "deps": [
     "dash",
     "helm",
     "lsp-mode"
    ],
-   "commit": "74a02f89088484c42ffc184ece338b73abd4d6f6",
-   "sha256": "1p130xj03wh3pqwf1bb3xl86pqnv1kpmn90mwfg0g52jwl0grv6b"
+   "commit": "c2c6974dadfac459b1a69a1217441283874cea92",
+   "sha256": "0xpz9qrcbxknnncqf0hw7hs9k6sv9dckzsf081k2zmsks3l5qh4p"
   },
   "stable": {
    "version": [
@@ -49210,15 +49805,15 @@
   "repo": "tumashu/helm-posframe",
   "unstable": {
    "version": [
-    20200512,
-    1146
+    20210412,
+    1147
    ],
    "deps": [
     "helm",
     "posframe"
    ],
-   "commit": "b107e64eedef6292c49d590f30d320c29b64190b",
-   "sha256": "09y98ij4wkqh771ahwi3b7nsg6yb2b69n94v3ad41kp4q0c2rscd"
+   "commit": "2412e5b3c584c7683982a7e9cfa10a67427f2567",
+   "sha256": "0k4lmgvrxm4lswafc3fb8aab3ax0gnkkq64vg3vmiry85kih2cqb"
   }
  },
  {
@@ -50170,14 +50765,14 @@
   "repo": "emacsorphanage/helm-swoop",
   "unstable": {
    "version": [
-    20200814,
-    448
+    20210426,
+    547
    ],
    "deps": [
     "helm"
    ],
-   "commit": "1f7d3cf0d742b199e4ce13fcb8b19c977a44611e",
-   "sha256": "1r03d3ivmi0r5knsrlfx2cq5jljjl36h2l5n0mbs3sc6iad9wz20"
+   "commit": "1b3285791f1dc1fde548fe67aec07214d698fd57",
+   "sha256": "0wgi7pk2s4syi3fc8l60zcnz34f8ik9y558la0d5ryci4fssrl7i"
   },
   "stable": {
    "version": [
@@ -50453,14 +51048,14 @@
   "repo": "emacs-helm/helm-wikipedia",
   "unstable": {
    "version": [
-    20200630,
-    504
+    20210525,
+    717
    ],
    "deps": [
     "helm"
    ],
-   "commit": "a6c8b1d1ab5dc0a69cb44bb5f3eb6792ef091147",
-   "sha256": "1him1sqdl15qfjqrkgmnhligwqc6a9liiqndssa1law3bd36c2jb"
+   "commit": "c242c74efaeda2ffbafd281ee6bceae1a42507bb",
+   "sha256": "17210p61q6g1rx8a3gacbrv69c4n92h5ajh28yw5ya23c275dnkb"
   }
  },
  {
@@ -50858,17 +51453,17 @@
  },
  {
   "ename": "hide-lines",
-  "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
-  "sha256": "18h5ygi6idpb5wjlmjjvjmwcw7xiljkfxdvq7pm8wnw75p705x4d",
+  "commit": "b61ab7d6dba6b0ca42d5647237ad15ca74177a88",
+  "sha256": "15hfxcq839i668jv89skq4qz8zdz6xwszgdjb1sfj7gi2fhw0xb7",
   "fetcher": "github",
-  "repo": "emacsorphanage/hide-lines",
+  "repo": "vapniks/hide-lines",
   "unstable": {
    "version": [
-    20151127,
-    1840
+    20210513,
+    1636
    ],
-   "commit": "331122bf19361130351cfe55968c2a7820329eb3",
-   "sha256": "183l0sx8zn3jv1fqa3xj7a6fd792sp50jyhm50j3hy7c54m4capf"
+   "commit": "f0828c15e50db5eddb905de783e7683b04d1eca3",
+   "sha256": "1pw0wp1pzy6snycvz12nj0q7jxxj07h3lqas184w44nhrira7qhj"
   },
   "stable": {
    "version": [
@@ -51037,10 +51632,10 @@
    "version": [
     0,
     1,
-    5
+    6
    ],
-   "commit": "9cc03c7136b56c04ea053fbe08a3a4a6af26b90e",
-   "sha256": "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"
+   "commit": "4420bdda419875dacb065468aafe273b2022580e",
+   "sha256": "0a9nn1jnbgv93kz1iz5iay34d0p7lkpd8ic619ysk8qcksc0yn2i"
   }
  },
  {
@@ -51195,23 +51790,20 @@
   "url": "https://git.sr.ht/~tsdh/highlight-parentheses.el",
   "unstable": {
    "version": [
-    20210410,
-    1932
+    20210420,
+    1924
    ],
-   "commit": "fdabfda5f6300f8dd4d2a62c49359605798cc001",
-   "sha256": "0x833ahd5m4rlqrgr7n5xj477vbs7mmp267in22hw0cxi9aan08q"
+   "commit": "891538de31524956136e1419e1206af0c8befe02",
+   "sha256": "08l5gb73ibs1mmfifnks5gxrcg8x8azw9g10jj2f8vn8viwwa7m0"
   },
   "stable": {
    "version": [
     2,
     0,
-    0
-   ],
-   "deps": [
-    "cl-lib"
+    2
    ],
-   "commit": "e18f2c2b240d7586ff7ffdc2881079e2dd8944ca",
-   "sha256": "1agdsqn3g18s9nicp23mlwvshxqskkbfzs9lgjmzxsa5628rxixc"
+   "commit": "fdabfda5f6300f8dd4d2a62c49359605798cc001",
+   "sha256": "0x833ahd5m4rlqrgr7n5xj477vbs7mmp267in22hw0cxi9aan08q"
   }
  },
  {
@@ -51605,6 +52197,21 @@
   }
  },
  {
+  "ename": "hl-prog-extra",
+  "commit": "d4ababc787d4dd173c65cc1b4b4a0fc0bb6e6d07",
+  "sha256": "1dgjskhz1jq01j19dmy8d3fzrg1d8jzrycdsxmkjlc2h05285wkg",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-hl-prog-extra",
+  "unstable": {
+   "version": [
+    20210422,
+    56
+   ],
+   "commit": "42dee82058e49a7eae5490af2b6b4147600e87ed",
+   "sha256": "1csvhvjzhq1w9384i9n78qv8x0c2y8mdqig6fa2k5qi84cgsh8zp"
+  }
+ },
+ {
   "ename": "hl-sentence",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "16sjfs0nnpwzj1cqfna9vhmxgznwwhb2qdmjci25hlgrdxwwyahs",
@@ -51634,20 +52241,20 @@
   "repo": "tarsius/hl-todo",
   "unstable": {
    "version": [
-    20210117,
-    1140
+    20210504,
+    1406
    ],
-   "commit": "4d18ccde596aef84ef278aa60144390ab41f0046",
-   "sha256": "0r9yz485g393yh4nh1a8nqhk1yxjapq2dzjs3l13ld34hql776yc"
+   "commit": "57378bd4511887a815725a7850e1ff2c6e9fda16",
+   "sha256": "0bdwdp8d0g7n0kv6l4h7alya3z6fsfi618dzw5x8f2az3r87yg8y"
   },
   "stable": {
    "version": [
     3,
-    1,
-    2
+    3,
+    0
    ],
-   "commit": "3bba4591c54951d2abab113ec5e58a6319808ca9",
-   "sha256": "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"
+   "commit": "57378bd4511887a815725a7850e1ff2c6e9fda16",
+   "sha256": "0bdwdp8d0g7n0kv6l4h7alya3z6fsfi618dzw5x8f2az3r87yg8y"
   }
  },
  {
@@ -51734,16 +52341,16 @@
   "repo": "thanhvg/emacs-hnreader",
   "unstable": {
    "version": [
-    20210319,
-    527
+    20210518,
+    428
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "ae52af1424ccde2b20e88ff8c589eb772162a560",
-   "sha256": "12h1lvm6bwdln7jnl1adl1vqgi603yvsvb4dbg9yvy1np8b6mj7r"
+   "commit": "0bda35e6b2063ddecca2fe2b0dd21f46a3391de3",
+   "sha256": "04d784b39f9g1klxkwm7a89h8vkl8cmlnb4h0pgnagl1h5ch96pf"
   }
  },
  {
@@ -52412,11 +53019,11 @@
   "repo": "humanoid-colors/emacs-humanoid-themes",
   "unstable": {
    "version": [
-    20210106,
-    2120
+    20210525,
+    2259
    ],
-   "commit": "c1f9989bcecd1d93a2d7469d6b5c812bd35fe0f3",
-   "sha256": "180hj0ww30kjr4nrnlp5r59xr6qpi7xhw19cp91syqhclzylkpqr"
+   "commit": "9b4587417f2583c503f84f3b1e994d7934e57bdd",
+   "sha256": "1dpanfa8qpy9l2i2pw5w95lqsw06944qbcz8c9fgpj2s3nchhkpi"
   }
  },
  {
@@ -52530,11 +53137,11 @@
   "repo": "Riyyi/emacs-hybrid-reverse",
   "unstable": {
    "version": [
-    20210325,
-    2311
+    20210527,
+    2324
    ],
-   "commit": "81e6651203ef666af4ddc63dc726cfb1443fe16b",
-   "sha256": "0m7k91kwhy8v602li3rfzmcb4qb443w2iv8qh38ncsl0l6bsc982"
+   "commit": "4cad8a17f6c9d98a628d78fe358d589b03172b57",
+   "sha256": "0xwl0fycygzwsrv4vrph6q6hy0550j3z1ir9ahfc7fjl091k192x"
   }
  },
  {
@@ -52669,14 +53276,14 @@
   "repo": "ieure/hyperspace-el",
   "unstable": {
    "version": [
-    20190908,
-    550
+    20210603,
+    1825
    ],
    "deps": [
     "s"
    ],
-   "commit": "a7ea085baf4a51cac0513cb57216677722938781",
-   "sha256": "004bdas6339af8zzb2agc27vb86wwbxxinp1n4fhswnlb2llr18c"
+   "commit": "c4c363c140250ba6b775516082063878975a6154",
+   "sha256": "13nvp7hzynrddws3x7f7p4529arn3m7km7ma4226mc7mbpfbjgi1"
   },
   "stable": {
    "version": [
@@ -52886,11 +53493,11 @@
   "repo": "jojojames/ibuffer-sidebar",
   "unstable": {
    "version": [
-    20210215,
-    1849
+    20210508,
+    836
    ],
-   "commit": "59e20690fc4f5ccd751e7a13a60664b97f053a1c",
-   "sha256": "1z6japr7n950222x33jinb34z7j6n5spj9cn8nq8f8yf8rgp6n2j"
+   "commit": "fb685e1e43db979e25713081d8ae4073453bbd5e",
+   "sha256": "04x87gngmvyj4nfq1dm3h9jr6b0kvikxsg1533kdkz9k72khs3n3"
   }
  },
  {
@@ -52984,11 +53591,11 @@
   "repo": "oantolin/icomplete-vertical",
   "unstable": {
    "version": [
-    20210411,
-    1913
+    20210603,
+    1343
    ],
-   "commit": "a258ff1033dd3d3cb894a039ac13ff3a85b96f57",
-   "sha256": "1r6cpq6nm3hhxhim4i0alcwmrvq17n7gh5dri9lfpcq6c7wqf0qi"
+   "commit": "3bee30b374226deecde8a5cbbc6ca8471c303348",
+   "sha256": "1c7riqgm5fi13kb2k7qfykr0zsx3hkwyzgcxh4kqnd1y5w54pgs2"
   },
   "stable": {
    "version": [
@@ -53007,27 +53614,27 @@
   "repo": "plandes/icsql",
   "unstable": {
    "version": [
-    20210304,
-    1843
+    20210605,
+    1658
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "759a63d373681e09d71e0f5522d063a811d7127e",
-   "sha256": "191cwfjrcv2yvgh0f6n0f2s64w6r2v19vvc41x4g1x48szzrzbg2"
+   "commit": "bc7c5f27f9d804613759a1d1357166f9ccecbe0e",
+   "sha256": "1g3wy9jjlag4ma610kdqnb0f2sy1032m5q419ankh5fv0gfxlwbl"
   },
   "stable": {
    "version": [
     0,
-    6
+    7
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "bc600ecb6e6134e98dfb67f10301bde5a4e07adf",
-   "sha256": "0j27iiwgzysd9ymb4nc0m1300sqz0gqmri7ky9zfgv2g5gpjs4w0"
+   "commit": "bc7c5f27f9d804613759a1d1357166f9ccecbe0e",
+   "sha256": "1g3wy9jjlag4ma610kdqnb0f2sy1032m5q419ankh5fv0gfxlwbl"
   }
  },
  {
@@ -53217,29 +53824,27 @@
   "repo": "DarwinAwardWinner/ido-completing-read-plus",
   "unstable": {
    "version": [
-    20210206,
-    1750
+    20210529,
+    1318
    ],
    "deps": [
-    "cl-lib",
     "memoize",
     "seq"
    ],
-   "commit": "36a8bb93a59a16c8d5a5163c8cfde3770a1052df",
-   "sha256": "03v0d93fwp5k2n8mmkj3szqm80ilbzkqqdaz5v1v2ar0p4sajl8v"
+   "commit": "49e7967ea8c0ab0a206b40d70fc19be115083fa1",
+   "sha256": "0amjz5l586w6qbhjr32gzcbg2d94k904h5is0030zgy2qswphnfn"
   },
   "stable": {
    "version": [
     4,
-    13
+    14
    ],
    "deps": [
-    "cl-lib",
     "memoize",
-    "s"
+    "seq"
    ],
-   "commit": "41b42779e22c064192b95e4de855ff7ebad45af6",
-   "sha256": "088b50iajgj602wsm1280gn5pqirycazndhs27r1li5d84fm1nvj"
+   "commit": "c97f0d0c314fe4b49a3c1e58144e97c72926172c",
+   "sha256": "05s2a7ncw53w6713cqsr6n20ax2g99h4hr1qsp400l05vzp1m531"
   }
  },
  {
@@ -53591,11 +54196,11 @@
   "repo": "victorhge/iedit",
   "unstable": {
    "version": [
-    20210402,
-    854
+    20210606,
+    1026
    ],
-   "commit": "ff68c2065316aa5fb72662428f8d5812ec8da83a",
-   "sha256": "1c5qxms26q2pd5g7p8zayqbbgypjix5ayk074kk07a4km4wx31h8"
+   "commit": "94650d77719a554cdcebfc6e26a731de87e14483",
+   "sha256": "029z9j3anb948mbmh6ai8asxgfim8193ymm41c7crqzga9p4ivc7"
   },
   "stable": {
    "version": [
@@ -53631,11 +54236,11 @@
   "repo": "jrosdahl/iflipb",
   "unstable": {
    "version": [
-    20201128,
-    833
+    20210515,
+    829
    ],
-   "commit": "4a5f051d4850024343663bdaec6f0bdff7cd930e",
-   "sha256": "07lx4nmmya6kxcvapadj002fvyjkz0c7wpca1bx2pzs2j6z6mfw2"
+   "commit": "94f12bb6d2e03690562647b5fbb7b6672ac83e37",
+   "sha256": "1flpzvrnp3ilkal6xidmajipzhn9yzwkw8nwnl25bl9m4kjl129v"
   },
   "stable": {
    "version": [
@@ -53654,11 +54259,11 @@
   "repo": "rolandwalker/ignoramus",
   "unstable": {
    "version": [
-    20210108,
-    2026
+    20210515,
+    1422
    ],
-   "commit": "6a6578816ff7af8851f7db36b3465fa9d2c759c5",
-   "sha256": "04cl5y3ba8bip7fkz8dsxx5m7dc97qx6214fgxj16i0kyxpwfnbl"
+   "commit": "e509e134eeb81617414e5381b610108c967dbc45",
+   "sha256": "0f9fad3d1kf9r5560kgidkipildd7hnwiqv8siv22yd3axqi62dw"
   },
   "stable": {
    "version": [
@@ -53846,11 +54451,11 @@
   "repo": "QiangF/imbot",
   "unstable": {
    "version": [
-    20210319,
-    126
+    20210423,
+    731
    ],
-   "commit": "0fdc71bfa66ecc1f8a54cdcd2458eb47eab41ecd",
-   "sha256": "1ibd9i75x6gb0nprbdi0giklllfwsmvghi3fm19qm7hiw3kg9j3m"
+   "commit": "01bf1e1101ac9cd34bfda7016ce0f82f97a3de35",
+   "sha256": "08w76awwg1g7n67b2rvbwg0i366zshqnhvlp6zyfagjg2bz5gdmf"
   }
  },
  {
@@ -53915,11 +54520,11 @@
   "repo": "bmag/imenu-list",
   "unstable": {
    "version": [
-    20210411,
-    1703
+    20210420,
+    1200
    ],
-   "commit": "1447cdc8c0268e332fb4adc0c643702245d31bde",
-   "sha256": "1fhfxwwf622mjl3slnzyj0zzmbx15qhq6xv8p7fpw88dx1dki113"
+   "commit": "76f2335ee6f2f066d87fe4e4729219d70c9bc70d",
+   "sha256": "0b7q6h7ky7n20w1p471fmnwyfmc59c9ihgnl72m11dnciiz325wa"
   },
   "stable": {
    "version": [
@@ -54089,8 +54694,8 @@
    "deps": [
     "impatient-mode"
    ],
-   "commit": "9ad16da9f78ae242b0a6fb1de388d5f4f1264207",
-   "sha256": "0h665wxnz3l97dxgk2rw3v0sdhb2lr30iqmf4q304wk7ljxg6lig"
+   "commit": "60ae30d07b857c074e2918680805cb37249de0ad",
+   "sha256": "0brj34ijgsgkbawp097wjwiaka2b082aypl5pal0298mpk97zxq0"
   },
   "stable": {
    "version": [
@@ -54203,11 +54808,11 @@
   "repo": "jcs-elpa/indent-control",
   "unstable": {
    "version": [
-    20210404,
-    727
+    20210508,
+    309
    ],
-   "commit": "5048c685e7071631dbad52988dbf91ffc67a4af3",
-   "sha256": "0clj2rm5lsyd6c3087j0z5ndg20pji5c7yqd6r1jnpclrvvwb04w"
+   "commit": "044291cf063a86927dae50dffdb2b0e2e3f9199b",
+   "sha256": "0hiwq5nzh42f5ynjlhq9vlcgq8pmgcgbi9w5c5gczdl0s7cxv6l7"
   },
   "stable": {
    "version": [
@@ -54418,8 +55023,8 @@
    "deps": [
     "clojure-mode"
    ],
-   "commit": "c3ff2f40fdcedf3357cde868c278474767b65adb",
-   "sha256": "0ljxpjhm3v0wb851zfqvkr5cv4hblg29rz3a5lw48jwz9ijpapq9"
+   "commit": "a2cebf5362fe583538dda8dcf6348a8d73b462a2",
+   "sha256": "0sfn6x08i7sd2k6z4swpd8hxaab3ly0gfyapcaq768chi0grr0gw"
   },
   "stable": {
    "version": [
@@ -54511,11 +55116,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20210314,
-    123
+    20210607,
+    2336
    ],
-   "commit": "c6990a60c740b2d69495e34e95b29f13014b3cde",
-   "sha256": "05nz7hvly47n7d945gdb1x8xgzla5r9k629if81rgjh99w24dpgc"
+   "commit": "03dd9c9d4e3f94f5519a786804d3ef9d3a09ef9f",
+   "sha256": "1xjaqh3m32lbc6avccv5clz1q2ra4pcl58wwlzkg0yhkxn7r750i"
   },
   "stable": {
    "version": [
@@ -54564,11 +55169,11 @@
   "repo": "dakra/info-beamer.el",
   "unstable": {
    "version": [
-    20180604,
-    2122
+    20210427,
+    1033
    ],
-   "commit": "97db34d23cb05b23e50c15875ee84f5d3236e0db",
-   "sha256": "0z1cya3mhgh5ibj3dgwzii1fkbzsq7zjjzg6hfdv3pd4a7722qlx"
+   "commit": "6b4cc29f1aec72d8e23b2c25a99cdd84e6cdc92b",
+   "sha256": "064igpiip1b037rs32z8w1g3w7rywyhabi1h92p1zkx3gjlqgpp2"
   },
   "stable": {
    "version": [
@@ -54789,11 +55394,11 @@
   "repo": "zonuexe/init-open-recentf.el",
   "unstable": {
    "version": [
-    20200321,
-    737
+    20210528,
+    1902
    ],
-   "commit": "369304d6adb6875948c4534419c4f303ac23c4f6",
-   "sha256": "1i41xcjj0kdhn7m29jb5gq2j2cyxn424y4lwx6s3fjj1ckx808ii"
+   "commit": "c019ea85a9c589815b0af60153858d09bcef130e",
+   "sha256": "12jwz0ssfxz1z55fb7v978xz8pwnclnqnzq5pqggzb06zkfxx7iv"
   },
   "stable": {
    "version": [
@@ -54860,11 +55465,11 @@
   "repo": "ideasman42/emacs-inkpot-theme",
   "unstable": {
    "version": [
-    20210109,
-    1112
+    20210427,
+    1337
    ],
-   "commit": "e8ae7b2345b8b21dd866fc043906ceecd40832c7",
-   "sha256": "19fxqb6x05480wa4dp4mv2a6cw5sgc8bsm3syqpbhmflymfvxnsy"
+   "commit": "7c3a0a76fa00db41a4d3d990cc98a1c6b088df3d",
+   "sha256": "17x0afwfcr4k0nmliqajswmvaiglk1xl33r3j215w214xp6dqrp2"
   }
  },
  {
@@ -55124,30 +55729,6 @@
   }
  },
  {
-  "ename": "interleave",
-  "commit": "6c43d4aaaf4fca17f2bc0ee90a21c51071886ae2",
-  "sha256": "18b3fpxn07y5abkcnaw9is9ihdhik7xjdj6kzl1pz958lk9f4hfy",
-  "fetcher": "github",
-  "repo": "rudolfochrist/interleave",
-  "unstable": {
-   "version": [
-    20191129,
-    958
-   ],
-   "commit": "e1791a96a2633a9f5ea99fc0a20ebacedcefdaaa",
-   "sha256": "1biysf8cqfw4q7d2dnlisviign3n5knvrb0g6zdalzv8pnd1cxqr"
-  },
-  "stable": {
-   "version": [
-    1,
-    1,
-    0
-   ],
-   "commit": "6b28363eac939227c6cdc8a73a1d3ea5b002442d",
-   "sha256": "1qs6j9cz152wfy54c5d1a558l0df6wxv3djlvfl2mx58wf0sk73h"
-  }
- },
- {
   "ename": "interval-list",
   "commit": "afee0fed80f4fa444116b12653c034d760f5f1fb",
   "sha256": "0926z3lxkmpxalpq7hj355cjzbgpdiw7z4s8xdrpa1pi818d35zf",
@@ -55403,15 +55984,15 @@
   "stable": {
    "version": [
     1,
-    4,
+    5,
     0
    ],
    "deps": [
     "cl-lib",
     "json"
    ],
-   "commit": "e630c497f973fa4d1f0fd0e0fd87fb9d18666986",
-   "sha256": "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"
+   "commit": "b9c64abf81e73860e39ecd82dfa00cca90b53d99",
+   "sha256": "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"
   }
  },
  {
@@ -55713,11 +56294,11 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210404,
-    1241
+    20210602,
+    1349
    ],
-   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
-   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
+   "commit": "040d458bce4a88f37359192061bcea5ebe87007c",
+   "sha256": "0lgpawrsvihksm9cx462qa1hsmxhhv1qp0h1f9m4wn1jrcrq7r24"
   },
   "stable": {
    "version": [
@@ -55744,8 +56325,8 @@
     "avy",
     "ivy"
    ],
-   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
-   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
+   "commit": "040d458bce4a88f37359192061bcea5ebe87007c",
+   "sha256": "0lgpawrsvihksm9cx462qa1hsmxhhv1qp0h1f9m4wn1jrcrq7r24"
   },
   "stable": {
    "version": [
@@ -55777,8 +56358,8 @@
     "cl-lib",
     "swiper"
    ],
-   "commit": "9870333cdd4a54b309e2709af647cda6f4070a42",
-   "sha256": "02cpg60hif4rz6va2ynh3wc9dwj0nyig4fa0l6jchmzz8v2zvf86"
+   "commit": "9f6ea920a49457d85096caa0e61f086a42b2908e",
+   "sha256": "0dqf2anmjlgcz7xn4q2pw8cfmhwdhdg4fm8q41vhrp60ymbc6dik"
   },
   "stable": {
    "version": [
@@ -55847,16 +56428,16 @@
   "repo": "jixiuf/ivy-dired-history",
   "unstable": {
    "version": [
-    20170626,
-    556
+    20210418,
+    1444
    ],
    "deps": [
     "cl-lib",
     "counsel",
     "ivy"
    ],
-   "commit": "c9c67ea1ee5e68443f0e6006ba162d6c8d868b69",
-   "sha256": "1lim9zi57w011df5zppb18yjkaxkgfy796pc6i01p4dl32x0rpfv"
+   "commit": "1ffa9b705c52a9d5b03c97150addb4f746c08380",
+   "sha256": "1li8vh94w1mkwqbh1f0i1mmv5advrbh1183vpjc2zbmmk02pynkf"
   },
   "stable": {
    "version": [
@@ -56112,8 +56693,8 @@
     "hydra",
     "ivy"
    ],
-   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
-   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
+   "commit": "040d458bce4a88f37359192061bcea5ebe87007c",
+   "sha256": "0lgpawrsvihksm9cx462qa1hsmxhhv1qp0h1f9m4wn1jrcrq7r24"
   },
   "stable": {
    "version": [
@@ -56156,28 +56737,30 @@
   "repo": "ROCKTAKEY/ivy-migemo",
   "unstable": {
    "version": [
-    20210206,
-    919
+    20210425,
+    613
    ],
    "deps": [
     "ivy",
-    "migemo"
+    "migemo",
+    "nadvice"
    ],
-   "commit": "9cdf3823b3303d69c0c77dfee91136817da12aea",
-   "sha256": "0nxk1i208zm6p666920gh1nmrfhfqglhgs07b5ir4b7mz3m5caab"
+   "commit": "a2ce15abe6a30fae63ed457ab25a80455704f28e",
+   "sha256": "18j3h2ndrw92gpbd9q5ji6q8qrwqmzw2xw8yds8f0fd8aybkw8zz"
   },
   "stable": {
    "version": [
     1,
-    1,
+    4,
     0
    ],
    "deps": [
     "ivy",
-    "migemo"
+    "migemo",
+    "nadvice"
    ],
-   "commit": "fc4f44750466ba9385e3313c85adf83a8e55a1fa",
-   "sha256": "0lax72js89k5g007ra6ngy9gnphny4bgjggnl9d3j3mizw9cynvn"
+   "commit": "2d44f7bbc1eb5f95162db889b889488b65bc0042",
+   "sha256": "14jmxg56w6jxz9i4wllbr18c25ximdrbi8w4qcc8lxr9yjlakl15"
   }
  },
  {
@@ -56279,15 +56862,15 @@
   "repo": "tumashu/ivy-posframe",
   "unstable": {
    "version": [
-    20210410,
-    530
+    20210426,
+    2144
    ],
    "deps": [
     "ivy",
     "posframe"
    ],
-   "commit": "7f1ab7890040c4b8dc4e9645c824cd35210e1121",
-   "sha256": "053irrmqvlzs7597grsq0fn06w3apqkgma45xv5pfb2wqin2kx2w"
+   "commit": "084cc59ea2cd62afaa51445ada3d00404749a541",
+   "sha256": "170z5akdwxzrn0b4cbk6v8a3dqz229b7pj9n0534y1a7ydvcyv9h"
   },
   "stable": {
    "version": [
@@ -56311,15 +56894,15 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20210227,
-    600
+    20210425,
+    1720
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
-   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
+   "commit": "4a0f5405798cfcb98ea005078ef2e2d490e922c4",
+   "sha256": "04rz8mypgslb0la4wgj3na5c8p28s9lghq4nykcb28nhcxwfvz8n"
   },
   "stable": {
    "version": [
@@ -56477,8 +57060,8 @@
     "espotify",
     "ivy"
    ],
-   "commit": "22b81067ebcaef2cea633f967a4b55454af9326a",
-   "sha256": "0b93a8km80r1c3gbinnsigkkq8yc127jwrqj8s8z130b79ch91hn"
+   "commit": "3d62a3319ab03a810030058d3fb368b28dfd82d5",
+   "sha256": "0hj3nczmqmgiwsvh664rs34j63wl325x6nar21p1a84h5ximpkxq"
   }
  },
  {
@@ -56747,11 +57330,11 @@
   "url": "https://depp.brause.cc/jammer.git",
   "unstable": {
    "version": [
-    20200506,
-    1247
+    20210508,
+    1633
    ],
-   "commit": "5d9bb7b953bd9daed9ca15bf27428db4301d60f8",
-   "sha256": "03gzbixxrbf1m9p19j0q72q2wi22viss28kf15az5a0891w10vck"
+   "commit": "a780e4c2adb2e85a4daadcefd1a2b189d761872f",
+   "sha256": "0s2piak1iyxj06z3hhywkrnrq5i1ppjcl5v55fys900fnyqzzgjy"
   },
   "stable": {
    "version": [
@@ -57059,8 +57642,8 @@
     "auto-complete",
     "jedi-core"
    ],
-   "commit": "3a9c503c35359d6bca6ff90c384c104c8743cdab",
-   "sha256": "1rx3qiicgg9p0chbfx8v1aypk93p6r5wlkia0b2sqr796r7xdn35"
+   "commit": "e942a0e410cbb2a214c9cb30aaf0e47eb0895b78",
+   "sha256": "1c4nqgg1w2qv0mhpi6hhz3xr5kk4bbxc951fhik6dpi2c2w8p73s"
   },
   "stable": {
    "version": [
@@ -57084,16 +57667,16 @@
   "repo": "tkf/emacs-jedi",
   "unstable": {
    "version": [
-    20210202,
-    856
+    20210503,
+    1315
    ],
    "deps": [
     "cl-lib",
     "epc",
     "python-environment"
    ],
-   "commit": "3a9c503c35359d6bca6ff90c384c104c8743cdab",
-   "sha256": "1rx3qiicgg9p0chbfx8v1aypk93p6r5wlkia0b2sqr796r7xdn35"
+   "commit": "e942a0e410cbb2a214c9cb30aaf0e47eb0895b78",
+   "sha256": "1c4nqgg1w2qv0mhpi6hhz3xr5kk4bbxc951fhik6dpi2c2w8p73s"
   },
   "stable": {
    "version": [
@@ -57316,17 +57899,17 @@
  },
  {
   "ename": "jetbrains-darcula-theme",
-  "commit": "f4b9f64cae9ab15388352e0d93f34f7e73dbe201",
-  "sha256": "1d31aw9nmgj7m5hvj0qq290v1cfn12ljlvnc6f25g7003a68fv9z",
+  "commit": "e13051402c177efee0e9e3296f20beb1ec4a63fb",
+  "sha256": "0wfg2477mixndwhj9i1b6j9gl2avh9cyzapxdi0qpw862qk6g0fv",
   "fetcher": "github",
-  "repo": "ianpan870102/jetbrains-darcula-emacs-theme",
+  "repo": "ianyepan/jetbrains-darcula-emacs-theme",
   "unstable": {
    "version": [
-    20200927,
-    1317
+    20210602,
+    1430
    ],
-   "commit": "7a934115238d7b80df230a5ba7a70d866bc18c66",
-   "sha256": "087fj39m7gmi3bx2q983afal3738rc5zxnfs4d4c72z065z7gsss"
+   "commit": "f57c359044ff1fa90db62a60b6691ff8d65c82f3",
+   "sha256": "17wd6yzhjdw5j3bpn6bnga5nkwdnqgk8nprqiavsir4ghkzw2h46"
   },
   "stable": {
    "version": [
@@ -57459,11 +58042,11 @@
   "repo": "Michael-Allan/Java_Mode_Tamed",
   "unstable": {
    "version": [
-    20210404,
-    1924
+    20210512,
+    2301
    ],
-   "commit": "9e7b841083c7bb1c76772e8a58428d59ea2fd0f4",
-   "sha256": "0l3qcnbdh7n4racd2b548h1f8plz1r78n1crcnsqnl7gpxxn1fmk"
+   "commit": "c3548cac4c4d2caffb750391b2d7d88c3892d139",
+   "sha256": "06328yfj7g575dyxa7a17hwbas3ly45hikrax6qzy64zsakp9gx2"
   }
  },
  {
@@ -57638,8 +58221,8 @@
     20180807,
     1352
    ],
-   "commit": "2cb7131e9cda6179541cfc7e3703c426ef3f8024",
-   "sha256": "1na2n607bdp5l9wg74i77rbd6wq6z4mcw2yp1b66xkzgmjhpndj6"
+   "commit": "516abed166d687aa8b197973315bd6ea0900fb62",
+   "sha256": "0l0hk6lfn6rvfxjmnkyigc0qqh6k1jbfg4i3g2s2d994hihdynhp"
   },
   "stable": {
    "version": [
@@ -57829,14 +58412,14 @@
   "repo": "mooz/js2-mode",
   "unstable": {
    "version": [
-    20201220,
-    1718
+    20210414,
+    2241
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "29979e5f3301796ba606759e39ee0b1b6a2a24f3",
-   "sha256": "1pvdzinxfd3b08d92cf5v0fk88dzlyw5r5g3hablh6gcfc9i57xx"
+   "commit": "b891edecedf30be6321e2f109fdfeb25b0edad27",
+   "sha256": "179vkwr57nibc148b961g1aim052v65qsva44imxibkm9h0n32w9"
   },
   "stable": {
    "version": [
@@ -58053,11 +58636,11 @@
   "url": "https://gitea.petton.fr/nico/json-process-client.git",
   "unstable": {
    "version": [
-    20190827,
-    1858
+    20210525,
+    733
    ],
-   "commit": "422606a7bf08d13646e3db4f6c2bddb69bd61dec",
-   "sha256": "16fyb0gwm4llwbmg12m4r9r8h540hcvhrsnlly6cry60h9p8dpc1"
+   "commit": "373b2cc7e3d26dc00594e0b2c1bb66815aad2826",
+   "sha256": "0f6vimdzg28j1jsr31ma0wf6y18jamv8znn4fwvf7pdd51hdn36x"
   },
   "stable": {
    "version": [
@@ -58194,26 +58777,26 @@
   "repo": "tminor/jsonnet-mode",
   "unstable": {
    "version": [
-    20210407,
-    2013
+    20210527,
+    1557
    ],
    "deps": [
     "dash"
    ],
-   "commit": "9bb6f86dfe6418ccccb929e8a03fb4bb24a9ac0e",
-   "sha256": "1rx7kr4pdhrmpcm5rm0h9kawk7czgdy1w5z3w4a2jw0v442bhx44"
+   "commit": "54a89b0aaba7a68782008c5e1ab00d5ec757316a",
+   "sha256": "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"
   },
   "stable": {
    "version": [
     0,
     1,
-    2
+    3
    ],
    "deps": [
     "dash"
    ],
-   "commit": "e93a1f55e5f9bc2b34b025c6f7a60a6f159268d1",
-   "sha256": "0vi7415n90d1z2ww1hld0gdp6v7z4rd6f70h476dp2x4hydk293i"
+   "commit": "54a89b0aaba7a68782008c5e1ab00d5ec757316a",
+   "sha256": "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"
   }
  },
  {
@@ -58369,7 +58952,7 @@
     0,
     0,
     -1,
-    5
+    6
    ],
    "deps": [
     "dash",
@@ -58378,8 +58961,8 @@
     "spinner",
     "vterm"
    ],
-   "commit": "34498596550b0f819106db8dd6e80dd01332c345",
-   "sha256": "05hrvidpgsinvq7n56c3kfk23x561djchsa10vybjk027fqfvlwb"
+   "commit": "03b4296ba7151963eb3c850f3314b02644101f51",
+   "sha256": "1jgs0pz8bzqg8116kyw3z7jwbf6karrl89ks028q091ylc00nm8b"
   }
  },
  {
@@ -58396,19 +58979,19 @@
    "deps": [
     "vterm"
    ],
-   "commit": "b8a749f19bef179c58068d3fa5cd53c3db5d1ecf",
-   "sha256": "1bp3dc915zq1qd7zycz8bdjq4pz172r3zbzjn8k4rsw0lz9j6w88"
+   "commit": "d57448466c11833d4fd67f5dbbea9cb9a07a74e2",
+   "sha256": "0v7l4jxq71vcw3sjs476smbw9ln6xfrq7n3vzw26apzkrplizqyy"
   },
   "stable": {
    "version": [
     0,
-    11
+    13
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "06ee45bffb6e711278a7af5207899d2b4316706c",
-   "sha256": "1zwhbwm285gqy9bfhlaaa9wp3lz959i3d1s41msl70jxbrnjz7pw"
+   "commit": "b8a749f19bef179c58068d3fa5cd53c3db5d1ecf",
+   "sha256": "1bp3dc915zq1qd7zycz8bdjq4pz172r3zbzjn8k4rsw0lz9j6w88"
   }
  },
  {
@@ -58543,8 +59126,8 @@
   "repo": "nnicandro/emacs-jupyter",
   "unstable": {
    "version": [
-    20210407,
-    212
+    20210422,
+    1451
    ],
    "deps": [
     "cl-lib",
@@ -58552,8 +59135,8 @@
     "websocket",
     "zmq"
    ],
-   "commit": "7735d2b8fb32434992467f0d4d9d59c1a1a5dc0c",
-   "sha256": "12q70b249yygqr30l1vhgxzlbfxkcil9xaixzj8zy3xbd3vsjdns"
+   "commit": "1f0612eb936d36abab0f27b09cca691e81fc6e74",
+   "sha256": "1mpch20iahijlgwg8bjpjg7bm9hd2wyskqbknafw8jkwyj7dvng2"
   },
   "stable": {
    "version": [
@@ -58633,14 +59216,14 @@
   "repo": "TxGVNN/emacs-k8s-mode",
   "unstable": {
    "version": [
-    20210219,
-    1317
+    20210414,
+    1543
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "0df142ac98bcd072dd7017053c9c9c476345aeef",
-   "sha256": "1nxcp1hq9d1j7whfak60j4dmzsfmq2mgmdxxvlj3az7p7vannd2v"
+   "commit": "14f08627d5bc320fee5bd9926e9aabe6956f514e",
+   "sha256": "1rfglmslhv3i71fgsqs8gjcnkff06lnp0b9s182rsnfz29dnzd1a"
   },
   "stable": {
    "version": [
@@ -58842,14 +59425,14 @@
   "repo": "chenyanming/kana",
   "unstable": {
    "version": [
-    20201012,
-    1415
+    20210531,
+    1427
    ],
    "deps": [
     "dash"
    ],
-   "commit": "b93cdbf72a1c818d1a48530ef20c5dec64d7945e",
-   "sha256": "1ikpwghvqjf3bc60xmils2prx99lm1x326mw4gic8n7z9kasqizd"
+   "commit": "d3d550aad67ef8625b3860598bf3622f5b2a7d32",
+   "sha256": "0d5qnqhvnxw5009mq34jnnc19r01y4kz0ypnv1mby80g8jz2gl62"
   }
  },
  {
@@ -58924,28 +59507,28 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20210403,
-    749
+    20210605,
+    1117
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "367429c39e330cf2b87e8af0ca7c8883baa21ea3",
-   "sha256": "0hj21jmkcsjv7rxpfq6n77jsmm894rfgsdn80qymh6nyxznq93ym"
+   "commit": "7eb08e47bc5f227c72c318ff327c689ab54a7620",
+   "sha256": "181vnz6ancqhb13w9890pbplnw6lzbzcx3xkg4li9fk10lab72zk"
   },
   "stable": {
    "version": [
     1,
     6,
-    2
+    4
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "5694f27f6e17bf2d840fa04728d392b5df77e20c",
-   "sha256": "1c5hdr654f012lj3ssxsavbnij0i109nykwcsgl2c2pb9yxqr5rw"
+   "commit": "c50bc11fdd42dc98ff806d1fc7cd94619c0ab7bb",
+   "sha256": "08ypmv43vjk1l409n894jxplnja6nicn2k3qwhwaf9qxhz0yxpjr"
   }
  },
  {
@@ -59035,11 +59618,11 @@
   "repo": "carldotac/kdeconnect.el",
   "unstable": {
    "version": [
-    20201019,
-    2211
+    20210519,
+    2016
    ],
-   "commit": "0f84d916bece8cc4dbfc67a95851f560c5e8e47b",
-   "sha256": "16hyrhq4nydszfpvbjqjjx7kp0w0a9ajw9ybsklgg36074dxip2y"
+   "commit": "4977af8cb5fdc21da770f3ee43ad7823f2937da3",
+   "sha256": "16615kvyg3azla1niiz5d2zdlj4mv5kpyscna7w7r1jkzbysc2zd"
   }
  },
  {
@@ -59122,11 +59705,11 @@
   "repo": "Boruch-Baum/emacs-key-assist",
   "unstable": {
    "version": [
-    20201109,
-    1358
+    20210415,
+    227
    ],
-   "commit": "7fd89c306c975a1fa3ab16ba7a4d3b102130a868",
-   "sha256": "1m1p3iydn5s3dlmjv751ligbwxkg472rhcbk80q2y1lnwjsnbhdy"
+   "commit": "fae7ce265db3bcfd1c6153eb051afd8789e61a4b",
+   "sha256": "16gi43wgqqjqljnmjwap8lng1p4davv8prvpip034qw9v6vjmm2p"
   },
   "stable": {
    "version": [
@@ -59266,20 +59849,20 @@
   "repo": "tarsius/keycast",
   "unstable": {
    "version": [
-    20210123,
-    1149
+    20210521,
+    828
    ],
-   "commit": "a3a0798349adf3e33277091fa8dee63173b68edf",
-   "sha256": "08n4lfd6zb0qwpaw48q7p1mi6rn5rzja02113fphz7ra2kapbpva"
+   "commit": "a12ef1fb480b56c34c92f48fc7f7aa8a1d7c4c4b",
+   "sha256": "0093v1c5nl2bh1lvccqq6fzpgjald3yypp87dsim982aywl2vlv1"
   },
   "stable": {
    "version": [
     1,
-    0,
-    4
+    1,
+    0
    ],
-   "commit": "16d9961d15536054632be1eff75fd0fb1a4420f8",
-   "sha256": "1g9arjdhdpvsw47ny9gi5k758ya37yza4mr0rhbf02yvrqyfsrgr"
+   "commit": "a12ef1fb480b56c34c92f48fc7f7aa8a1d7c4c4b",
+   "sha256": "0093v1c5nl2bh1lvccqq6fzpgjald3yypp87dsim982aywl2vlv1"
   }
  },
  {
@@ -59491,6 +60074,30 @@
   }
  },
  {
+  "ename": "keytar",
+  "commit": "4ba6f96ca2e20dcd75cf239370243bd8e484f851",
+  "sha256": "1bm0kxrbkkk3c4zljf9azfm22msknkvrcns1j1r2hczjqdviay28",
+  "fetcher": "github",
+  "repo": "emacs-grammarly/keytar",
+  "unstable": {
+   "version": [
+    20210523,
+    403
+   ],
+   "commit": "8d2a5ec4a7fe766a62037b05f26a8f36fff45c06",
+   "sha256": "1rszkzpr22dy9yr54k2pz6p2j6lbgvy189f6ki8gmlsqzdyxmssk"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    2
+   ],
+   "commit": "17972320ef140bd56e551842d89f5d8c2d979f83",
+   "sha256": "06r84kcg7ig1xky01sa3kyw4iam5wzag4qpp2rm3q9rad246pjr0"
+  }
+ },
+ {
   "ename": "keyword-search",
   "commit": "8ecdc51938f2300bf005e2d1b1819e0fa59e0bd7",
   "sha256": "0wvci1v8pblfbdslfzpi46c149y8pi49kza9jf33jzhj357lp5qa",
@@ -59709,8 +60316,8 @@
     20210318,
     2106
    ],
-   "commit": "53b655b0ef4bdfe8bf81a2bef8f09179a4917076",
-   "sha256": "095z6dkqz6iw28ighqbl2c60i6bm6qyrkxl93yg9b31cd6yzlzin"
+   "commit": "3894a454ee03ede25e920759e6ac2df040ff3431",
+   "sha256": "1crqrmzxhm21psv5mkbzn3h2syrgszx50i4kd4n92f56dq7s8i4b"
   },
   "stable": {
    "version": [
@@ -60060,16 +60667,16 @@
   "repo": "chrisbarrett/kubernetes-el",
   "unstable": {
    "version": [
-    20210219,
-    625
+    20210604,
+    909
    ],
    "deps": [
     "dash",
     "magit",
     "magit-popup"
    ],
-   "commit": "de4ff6ccdf58a939908d384efe9cf06b2bcabe12",
-   "sha256": "0nz34h601him6x1a6fkvzvr4r3f5d55cz520ddsmin9zwpq7rlhq"
+   "commit": "93d7b4d1b079b3cf1fbe3949154b6a1bc06904ef",
+   "sha256": "0xz35j38ph1l870zrdd0r2xycxq65pbq1a1hi270q4mikpai85gb"
   },
   "stable": {
    "version": [
@@ -60101,8 +60708,8 @@
     "evil",
     "kubernetes"
    ],
-   "commit": "de4ff6ccdf58a939908d384efe9cf06b2bcabe12",
-   "sha256": "0nz34h601him6x1a6fkvzvr4r3f5d55cz520ddsmin9zwpq7rlhq"
+   "commit": "93d7b4d1b079b3cf1fbe3949154b6a1bc06904ef",
+   "sha256": "0xz35j38ph1l870zrdd0r2xycxq65pbq1a1hi270q4mikpai85gb"
   },
   "stable": {
    "version": [
@@ -60252,28 +60859,29 @@
   "repo": "tecosaur/LaTeX-auto-activating-snippets",
   "unstable": {
    "version": [
-    20210327,
-    1230
+    20210607,
+    1851
    ],
    "deps": [
     "aas",
     "auctex",
     "yasnippet"
    ],
-   "commit": "654ea30aa0263e85891ddcabc0b7a0f0144b9e27",
-   "sha256": "1z5pw9xhp4gh156n9n3yq92zm6z8gw2ik7nfrvgnip2v3yr31pfb"
+   "commit": "9d6f4448347fcf48d0fed51eba16423c9254c212",
+   "sha256": "0kfivjdjhlrbrn1z6i51y36s6f4qj386iy1jpcbvv33xa0lh5ksi"
   },
   "stable": {
    "version": [
-    0,
-    2
+    1,
+    0
    ],
    "deps": [
     "aas",
+    "auctex",
     "yasnippet"
    ],
-   "commit": "94be7523159ee261077a33094775c7f73218a900",
-   "sha256": "0qyj4xwsxhn78akkv08ka9k47aa3jssd4mgws7ccbnqj68fv78gg"
+   "commit": "e9bc939237bed4ce50d3d403120f7206c835ea4a",
+   "sha256": "1z2r52x9fsjm1y2m8n0fm9ymd0dx798iw5b3x79fkhnrrw4wfq0s"
   }
  },
  {
@@ -60353,16 +60961,16 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20210407,
-    1529
+    20210520,
+    1737
    ],
    "deps": [
     "eglot",
     "highlight",
     "math-symbol-lists"
    ],
-   "commit": "8609ec2101777362f45df493c593e0e125fe0824",
-   "sha256": "142v2yccbh5aiwy6xzxnz9656p9zj3j2vmmyy70x7vxn2jair3bl"
+   "commit": "63796ccadcc9147c5badd9a87f626611f63e3c4c",
+   "sha256": "1iwgi7jm20qwxlfa7klkz5zmdfxa14psly6xsl29i37j9p6146sb"
   }
  },
  {
@@ -60444,6 +61052,24 @@
   }
  },
  {
+  "ename": "langtool-ignore-fonts",
+  "commit": "9792610d9325ce5f0cc7d07a621755d8fadd90c3",
+  "sha256": "1vivb57kyd3gnigf8j1xhnpn3d6jxcs5rb3699qyc18w1zk4y154",
+  "fetcher": "github",
+  "repo": "cjl8zf/langtool-ignore-fonts",
+  "unstable": {
+   "version": [
+    20210526,
+    2340
+   ],
+   "deps": [
+    "langtool"
+   ],
+   "commit": "c3291c85b733b9047653cbb1f525655394610bdb",
+   "sha256": "1pmpnpbl1xanprmikawcy9v4441q3381mmyp1v0mgf0dyzg871m6"
+  }
+ },
+ {
   "ename": "language-detection",
   "commit": "ed2b68d0a11e5db0e7f2f5cbb2eb93c298bcb765",
   "sha256": "1c613dj6j05idqyjd6ix7llw04d0327aicac04cicrb006km3r51",
@@ -60850,11 +61476,11 @@
   "repo": "conao3/leaf.el",
   "unstable": {
    "version": [
-    20210316,
-    1822
+    20210603,
+    1518
    ],
-   "commit": "ab5cc26b56a6a53a3338ebfde17b746522c2c14c",
-   "sha256": "1ds545sh8hg2vg5l7fm4v6z31lzax14ivdni3a37278jfx82xxrx"
+   "commit": "af0d4d8daaa323c34502d3cbea85ec8f70b06c00",
+   "sha256": "0p4smpfld1ky07cy5qn8kqpbqw5ymrn8valkpx4c519lj6pb9rn6"
   },
   "stable": {
    "version": [
@@ -60974,14 +61600,14 @@
   "repo": "conao3/leaf-tree.el",
   "unstable": {
    "version": [
-    20200412,
-    2355
+    20210503,
+    531
    ],
    "deps": [
     "imenu-list"
    ],
-   "commit": "22f6c116cf1465c28d4a35d8a4587a8b614be175",
-   "sha256": "1bgjhrpq6a239v8vfi6i9qcbyrg76mpy4yykkb5da8hlp23idwy7"
+   "commit": "8126baf45c881fd4a692c2d74f9cc2eb15170401",
+   "sha256": "1vb5id0y9002yabkxijfi0l8vbibbd863kq4qk3gqax9dgbld481"
   },
   "stable": {
    "version": [
@@ -61004,8 +61630,8 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20210406,
-    1038
+    20210502,
+    2049
    ],
    "deps": [
     "dash",
@@ -61013,8 +61639,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "5a2a36356e73c74a42e49fad19a71f4f12929a90",
-   "sha256": "18lswxxwvp85yzg1kc9vxn4dpmxmj40j6g64c8ns83nb7hw9lszg"
+   "commit": "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44",
+   "sha256": "1bkv5zs38ijawvavbba0fdf2flb6fiwici3qi99ws8wvwhnbkws2"
   }
  },
  {
@@ -61065,11 +61691,11 @@
   "repo": "pfitaxel/learn-ocaml.el",
   "unstable": {
    "version": [
-    20210209,
-    4
+    20210527,
+    1449
    ],
-   "commit": "ac7e2887baebedd51afbadc9e4c6f7b59351b0bb",
-   "sha256": "0v6nw2yqy8lhwssq2myx91jjlsg8d97f60yhrpjk3qc62037q60b"
+   "commit": "b8ba2a0bf56b751f077f13137a1904d66061a4d0",
+   "sha256": "0cc9s00flbih3kkbkan7xfqlv5qq9j4cz52ljj4xyxbf51r2lh0z"
   }
  },
  {
@@ -61080,14 +61706,14 @@
   "repo": "DamienCassou/ledger-import",
   "unstable": {
    "version": [
-    20210108,
-    728
+    20210419,
+    818
    ],
    "deps": [
     "ledger-mode"
    ],
-   "commit": "d1eda3ccafbfabbcc51be364146e31450f11745f",
-   "sha256": "0w6qgqmcv1nyrgjqrb1ah4wj94rn7zn00g0kib4vmc83wcnmyrjb"
+   "commit": "f77adf79ce67524c3e08546448ac88ea1a665b64",
+   "sha256": "1zgv3sxg1dwg7dgy0cl5df6nkxp79cg906hskxsdx6yfplxvi4px"
   },
   "stable": {
    "version": [
@@ -61110,11 +61736,11 @@
   "repo": "ledger/ledger-mode",
   "unstable": {
    "version": [
-    20210329,
-    2024
+    20210516,
+    2045
    ],
-   "commit": "3b0fa5c22bd196dbe31a19f4b2ebbdf8f4081b20",
-   "sha256": "1igg1dmsn90crggm11xnlhrc36szr3dfc4463dn65cagwlck3g3k"
+   "commit": "19b84dc7664ea069e1a9fd446daf699574c44986",
+   "sha256": "0mq5wzx8vzaljwy9qszsa0ibzk1lr9kfwk9f956h69n4dfl6ig85"
   },
   "stable": {
    "version": [
@@ -61347,11 +61973,11 @@
   "repo": "fniessen/emacs-leuven-theme",
   "unstable": {
    "version": [
-    20201207,
-    2103
+    20210602,
+    709
    ],
-   "commit": "a1154d65bf33ae34ea944b9e59d95b601fea7169",
-   "sha256": "0ibh09iz1m2m752rkk9dbyvmczrzv401gi4k18vlh67hz7vd5la0"
+   "commit": "b8b5076d643046008ea1496559acdd4ddfdb649a",
+   "sha256": "16rfyjk0cp487ra6v5c1cmf106ixipr9b71zfp0bwm35wa2mvdic"
   },
   "stable": {
    "version": [
@@ -61420,19 +62046,19 @@
   "repo": "rvirding/lfe",
   "unstable": {
    "version": [
-    20201007,
-    2214
+    20210603,
+    1241
    ],
-   "commit": "5677410abffa1d1bc66b867be8918f1423fd586b",
-   "sha256": "1lcyd7gh2d72vx47dh375d50qcf7xnx888xrx76yc5zfx2df4p80"
+   "commit": "1feb8af64c977946b6184b7d63b436c49dbeb52d",
+   "sha256": "0vxpkvp8fsi52zb2sqqd9xfdndyxb59hqg8qkpdfsdwszxngfij5"
   },
   "stable": {
    "version": [
-    1,
-    3
+    2,
+    0
    ],
-   "commit": "d8337516ab09edd4b281a27ac85684b81cdeb8bd",
-   "sha256": "0pgwi0h0d34353m39jin8dxw4yykgfcg90k6pc4qkjyrg40hh4l6"
+   "commit": "76eaf432f768b45393e404c1bd1861a08c19de3b",
+   "sha256": "0vxpkvp8fsi52zb2sqqd9xfdndyxb59hqg8qkpdfsdwszxngfij5"
   }
  },
  {
@@ -61503,11 +62129,11 @@
   "repo": "merrickluo/liberime",
   "unstable": {
    "version": [
-    20201106,
-    858
+    20210526,
+    623
    ],
-   "commit": "8d4d1d4f2924dc560bce1d79680df36dcc086d49",
-   "sha256": "0gk2y14lsfc9nw31xhrxqvlf834l8kyjnsqi7rhfk2sl6j1p669v"
+   "commit": "4a6da0f6ab9b43651f3fcc73412e3480b9403caa",
+   "sha256": "04ag7icqqdhz40fi91fx4bxx8j6vw2774gw1fbppbks3sasimyy0"
   },
   "stable": {
    "version": [
@@ -61670,21 +62296,17 @@
     20210303,
     1751
    ],
-   "commit": "d029f4d1738dad616df1a56b570cdf1e725cd967",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 286 ms\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 612 ms\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 1232 ms\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 2325 ms\nerror: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503\n"
-   ]
+   "commit": "be7ff92e4dfb06ed51baaa10157d9a1ee1cd666a",
+   "sha256": "067i605hk3qy01106l90bbl91ivr3zqv2yqr41jf5pfysafykx4x"
   },
   "stable": {
    "version": [
     0,
-    12,
+    17,
     0
    ],
-   "commit": "70d42b3922d152e8be946c2415151d0551b591d4",
-   "sha256": "17k0v1nfcsq5kdfk05cdkh8nbbi5bqniydqcr6whzw3aawnjryyc"
+   "commit": "ec97fdf14ce7a65398ecc2755654db46a3ef3b14",
+   "sha256": "067i605hk3qy01106l90bbl91ivr3zqv2yqr41jf5pfysafykx4x"
   }
  },
  {
@@ -61695,26 +62317,28 @@
   "repo": "jcs-elpa/line-reminder",
   "unstable": {
    "version": [
-    20210216,
-    1451
+    20210531,
+    743
    ],
    "deps": [
+    "fringe-helper",
     "indicators"
    ],
-   "commit": "bc488bbdba2172629183891758cfa9466a64182f",
-   "sha256": "1993rwd9bgr1lqxgxzwp6h2r57ljsbjh5r08f57jaalanjp4iq55"
+   "commit": "1856034d0ed8ce41a29a1ea051184ee7c2f3e276",
+   "sha256": "0ni73ybrg21l63hs51pixkxf77bl288hzji03bm8v1hzsm72vxxs"
   },
   "stable": {
    "version": [
     0,
-    4,
-    5
+    5,
+    0
    ],
    "deps": [
+    "fringe-helper",
     "indicators"
    ],
-   "commit": "bc488bbdba2172629183891758cfa9466a64182f",
-   "sha256": "1993rwd9bgr1lqxgxzwp6h2r57ljsbjh5r08f57jaalanjp4iq55"
+   "commit": "4d73b84a84227b01b7fbc6f717f6c380682cde2f",
+   "sha256": "0qkgmg60jfcwfsc693x9c066vgbclgqwzkqbmjrc32kcs57zhvni"
   }
  },
  {
@@ -61728,8 +62352,8 @@
     20180219,
     1024
    ],
-   "commit": "a49afb9c168eaf8aaaf94f0c631b7b74db9a1d82",
-   "sha256": "0213ppx15rdb5cxg7w8978880fzv3dh2m9p6idkmlfj7bndfd411"
+   "commit": "68e59d0fff1eb76c7b1a72c438f344c251115e81",
+   "sha256": "1ipqf3qfgzcrrp6xwgxb6wkk8a6ii5jx5im5gfhghdhy45z2m3ii"
   },
   "stable": {
    "version": [
@@ -61996,11 +62620,11 @@
   "repo": "lispunion/emacs-lisp-local",
   "unstable": {
    "version": [
-    20210307,
-    1545
+    20210605,
+    1347
    ],
-   "commit": "3a3237a5c25db9526dfbe1b3ac1e7125f8f459b0",
-   "sha256": "1nm2kmilhk2hm9nfd1f6drhlpwkpk31s1072y8im16ci7i13lig4"
+   "commit": "22e221c9330d2b5dc07e8b2caa34c83ac7c20b0d",
+   "sha256": "10dflrabhn974k9lr4jvib5vs7v45hj9skryc4wjc09wzz5qphpk"
   },
   "stable": {
    "version": [
@@ -62031,8 +62655,8 @@
  },
  {
   "ename": "lispy",
-  "commit": "29a704fede83b02e19c2ad213485f0f651931753",
-  "sha256": "1c8gz46ab5f07dljv2chr0i5lini81wl3zx4zw8xjysb4a5dp05v",
+  "commit": "45a02d8edf65ccf5929b8508294588507adaaf83",
+  "sha256": "0s0rjfy344pyxnbgmkbil38vy32iwkw3n50j30pl3ivnqm1wa3rz",
   "fetcher": "github",
   "repo": "abo-abo/lispy",
   "unstable": {
@@ -62314,14 +62938,14 @@
   "repo": "sulami/literate-calc-mode.el",
   "unstable": {
    "version": [
-    20210324,
-    1547
+    20210528,
+    815
    ],
    "deps": [
     "s"
    ],
-   "commit": "211eec1e8b03503a53fa3eb4528375f36972f759",
-   "sha256": "1kawczbjdvjzyz3fflp1ij0vi9qcrl0yhrv7knx9j1zh187jp7z7"
+   "commit": "29bb40a7150b6cfe1a96948ae1f36e9c107eb759",
+   "sha256": "1dznafcfwmd52jakkzzk3dhji55aal7hsfkglr3051fz8pkz7xfx"
   }
  },
  {
@@ -62361,11 +62985,11 @@
   "repo": "jingtaozf/literate-elisp",
   "unstable": {
    "version": [
-    20210318,
-    350
+    20210605,
+    1238
    ],
-   "commit": "6979fc6369d55519d52ca1e8f7d80d73ce54c383",
-   "sha256": "180lsghxcjrn21c79jl7g9kkvd4lf4xabgbwbqlck7barfj256jv"
+   "commit": "41f0946037b50323901ce708c1af82e59a334433",
+   "sha256": "1hjb1f835xq5jgq4s0dpr85vs5cap001lxv9n02l198gb2qppq6k"
   },
   "stable": {
    "version": [
@@ -62458,20 +63082,20 @@
   "repo": "donkirkby/live-py-plugin",
   "unstable": {
    "version": [
-    20210411,
-    244
+    20210413,
+    205
    ],
-   "commit": "23b4308caddf02cc0312ebe4d971e3bfab22f3f8",
-   "sha256": "1zfqdbbknjdg73g1jdy758dln6hgi1rq6j0xpyasyasj169j1nxh"
+   "commit": "c191b149f93ed473f3900e506cfc762d53145237",
+   "sha256": "0likjz2q0pbs3cbqczdfhh6k0c1j8y6j32cxkcpjm9wakp1vzxq2"
   },
   "stable": {
    "version": [
     4,
-    3,
+    4,
     0
    ],
-   "commit": "c6d3d34bae62f1d5e986625db74f2076af258900",
-   "sha256": "1d022chhib61ghrf847f2w9baqiscpp1s2qvj9i84zmk7bndjvag"
+   "commit": "26d51013e75ddedd5eb8600a0a3dd035319f9d3f",
+   "sha256": "10p4ijx4l56ikb10416bmdwfxbcyqfa29kk1nf48gibxyvdlwdby"
   }
  },
  {
@@ -62572,26 +63196,26 @@
   "url": "https://git.sr.ht/~tarsius/llama",
   "unstable": {
    "version": [
-    20210201,
-    837
+    20210525,
+    2005
    ],
    "deps": [
     "seq"
    ],
-   "commit": "f2f1476e88153b167bf4ce755f7455fcb3f98458",
-   "sha256": "0qnzbamf763h8fwjsn7i47a1amb8nixl25zw58jh4hhl470czi2f"
+   "commit": "2694b2aeb1c87bb2ad8b0f611ca438c30f5eaeae",
+   "sha256": "1xihy4xnvxvwwzy50z7msm9fkplsyy2kvi6zzlpgs8bad6aamg5f"
   },
   "stable": {
    "version": [
     0,
     1,
-    0
+    1
    ],
    "deps": [
     "seq"
    ],
-   "commit": "2027ce79165bf40314ad838c282920c53b5d7eae",
-   "sha256": "1jnll9xaxfwwvs0xjpdz8y6xlrsckm3a8ri5ml8k3fp81yby9as5"
+   "commit": "2694b2aeb1c87bb2ad8b0f611ca438c30f5eaeae",
+   "sha256": "1xihy4xnvxvwwzy50z7msm9fkplsyy2kvi6zzlpgs8bad6aamg5f"
   }
  },
  {
@@ -63027,6 +63651,40 @@
   }
  },
  {
+  "ename": "loopy",
+  "commit": "7f4e68f6feb5d0082580cc28f6184a6091e7c117",
+  "sha256": "1w4416vjbbba80bhcalpvr9ram1ijk3y9687525p3wicrfylx9s3",
+  "fetcher": "github",
+  "repo": "okamsn/loopy",
+  "unstable": {
+   "version": [
+    20210601,
+    133
+   ],
+   "commit": "50494b545b9a909fc6570216230beda1ebeedf36",
+   "sha256": "0wag0hhpak0i1k2bmzz896jkpadrmacj1m0bbb3y7rrl9sw1dcqg"
+  }
+ },
+ {
+  "ename": "loopy-dash",
+  "commit": "7f4e68f6feb5d0082580cc28f6184a6091e7c117",
+  "sha256": "0hk4c415wp4dqx1xjs246p8hqn15iamj8xiig2cla1f24zd7kd28",
+  "fetcher": "github",
+  "repo": "okamsn/loopy",
+  "unstable": {
+   "version": [
+    20210601,
+    129
+   ],
+   "deps": [
+    "dash",
+    "loopy"
+   ],
+   "commit": "50494b545b9a909fc6570216230beda1ebeedf36",
+   "sha256": "0wag0hhpak0i1k2bmzz896jkpadrmacj1m0bbb3y7rrl9sw1dcqg"
+  }
+ },
+ {
   "ename": "lorem-ipsum",
   "commit": "0c09f9b82430992d119d9148314c758f067832cd",
   "sha256": "0p62yifbrknjn8z0613wy2aaknj44liyrgbknhpa0qn0d4fcrp4h",
@@ -63090,8 +63748,8 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20210406,
-    2012
+    20210601,
+    420
    ],
    "deps": [
     "dap-mode",
@@ -63102,14 +63760,14 @@
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "10e309acc31648ec9bf7ffeef0fc2ad16b2a8584",
-   "sha256": "1wm0lxllazfxrrv4cgalcnsf7g88g1cwz7b69dxfgirlcybcw9il"
+   "commit": "7ef909a1c9e0e1c924b43637899e0d53b0d1b00f",
+   "sha256": "1vsfs0jpk7fdfb3zmpxs3f7fy0s7d9b8jha5p7y6g0afhxz4iqn1"
   },
   "stable": {
    "version": [
     1,
     18,
-    0
+    5
    ],
    "deps": [
     "dap-mode",
@@ -63120,8 +63778,8 @@
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "f3b70ec0e6adf3a51e15f9a3effb182c2363493d",
-   "sha256": "0iyp844wnvxjrp860dgkr10qrfsaj2rcssj8dv93hhv8pg91fhsk"
+   "commit": "90a06dfc23750c3861628256a4af4e3b00b2e23d",
+   "sha256": "1cabxsz7gbjywhsqjqp32vdgycg2mq21mdxvwbfcs6k0cf319dwh"
   }
  },
  {
@@ -63132,15 +63790,15 @@
   "repo": "emacs-lsp/lsp-docker",
   "unstable": {
    "version": [
-    20210404,
-    1717
+    20210529,
+    621
    ],
    "deps": [
     "dash",
     "lsp-mode"
    ],
-   "commit": "5a9c7e39905756d6cd58b686f6aa203f31c2271c",
-   "sha256": "1v9nqr6xpq6hqpaw8k5gx3nvxk7yjmkwyprw2009ckgb84icl8hi"
+   "commit": "fa304ea402ac492e97bee14496a41afa8508cc5e",
+   "sha256": "0y0z4ind08jj93qsxgvi5zqa5f8lnamg8fv2dvkgipx1qvq25r4c"
   }
  },
  {
@@ -63183,8 +63841,8 @@
   "repo": "emacs-grammarly/lsp-grammarly",
   "unstable": {
    "version": [
-    20210404,
-    645
+    20210523,
+    403
    ],
    "deps": [
     "grammarly",
@@ -63193,25 +63851,24 @@
     "request",
     "s"
    ],
-   "commit": "aa2e70eec5755651ed6c9d9f4063542634760c91",
-   "sha256": "0qisz5117ifravbwvnaq2ci62v3sxl2dd1bd9giacscvshx2hw2c"
+   "commit": "f34f0d50a91a82ab9c49e2cf5ddcb42a98cc2ede",
+   "sha256": "1hqilkbxa63gkl6sc8km6j0m4lxindf184c1zl91h4sfh4kg67zb"
   },
   "stable": {
    "version": [
     0,
     2,
-    1
+    2
    ],
    "deps": [
     "grammarly",
     "ht",
-    "keytar",
     "lsp-mode",
     "request",
     "s"
    ],
-   "commit": "739a7efc7de6e2b0eca9e72268790431a0fb3185",
-   "sha256": "1ksa685ggp9z0zndscwy9azxjibxd9l79qzvh50i7mz4x9xzdjbd"
+   "commit": "984037557b7e445183453faffc965fbe56df12f2",
+   "sha256": "12q3j0sgsgm73m3i0sw72dzkqa55zn0dbqjgp0g2wryhfhg0zq1p"
   }
  },
  {
@@ -63259,16 +63916,16 @@
   "repo": "emacs-lsp/lsp-ivy",
   "unstable": {
    "version": [
-    20210407,
-    856
+    20210518,
+    2034
    ],
    "deps": [
     "dash",
     "ivy",
     "lsp-mode"
    ],
-   "commit": "4dcb63533558a83de4a1b830835687e69474cd88",
-   "sha256": "0y2116lqalipgc841kz4gangnx9xmihg3x28gv8n6myslphc45ma"
+   "commit": "bccd86028e669f5a1cad78364775fe7a0741ff93",
+   "sha256": "0c1vpriamxnlb8hfnp4cfdkwd4y4gq6zdvhb93gvlf4mh3qmjcd6"
   },
   "stable": {
    "version": [
@@ -63292,8 +63949,8 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20210309,
-    1856
+    20210520,
+    1747
    ],
    "deps": [
     "dap-mode",
@@ -63305,8 +63962,8 @@
     "request",
     "treemacs"
    ],
-   "commit": "542aaf16d6d3a410b0e41861d80f3fd6b5be7bb9",
-   "sha256": "07kpx8gx9v9v6zhpl7kyg3q4dgpkxk1n089cn1hdxr5vapw7xac9"
+   "commit": "b6f14d8ae3cddcbacacf245aeef46e5407e5b401",
+   "sha256": "1xb051wgllmfm87bw4kiznfbsv54jqr9q02h2zy9np74n51q6jp7"
   },
   "stable": {
    "version": [
@@ -63355,26 +64012,26 @@
   "repo": "fredcamps/lsp-jedi",
   "unstable": {
    "version": [
-    20200812,
-    1826
+    20210602,
+    1925
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "10c782261b20ad459f5d2785592c4f46f7088126",
-   "sha256": "0rip6fq5mwk2lsa0wwr573mx4myqvc8a7v4mqalmqxgwzcv9w7vb"
+   "commit": "ab265f7fb26f4fa0385158a9f9d3649b606d2e23",
+   "sha256": "013vmhcxz7648jxxhk69rr0v5br2839517l72fwzk770l02mc6si"
   },
   "stable": {
    "version": [
+    1,
     0,
-    0,
-    1
+    0
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "10c782261b20ad459f5d2785592c4f46f7088126",
-   "sha256": "0rip6fq5mwk2lsa0wwr573mx4myqvc8a7v4mqalmqxgwzcv9w7vb"
+   "commit": "a6a6dcfbab69caee0b88dbe4244772e0bea5531a",
+   "sha256": "0l2dawi7avzb9i1wfff4kdfbz9s7vp4443y7x3va0jrsn3v33485"
   }
  },
  {
@@ -63385,28 +64042,28 @@
   "repo": "non-Jedi/lsp-julia",
   "unstable": {
    "version": [
-    20210329,
-    1551
+    20210530,
+    2152
    ],
    "deps": [
     "julia-mode",
     "lsp-mode"
    ],
-   "commit": "81f7de5b9fe8e8e0e1e3a3ccc677f052edad140d",
-   "sha256": "1hwkx5ssix2si7jpsbfcg1i65v3z265l39158qjm31cxf8pk52dw"
+   "commit": "d4a7a27d6ac7c6831b4f493dd89f82fa0c75bdf5",
+   "sha256": "1rkf2ibjilf023fv68ql4bray8bdnl2biq5zmn1qk5pdp988iq4j"
   },
   "stable": {
    "version": [
     0,
-    3,
+    5,
     0
    ],
    "deps": [
     "julia-mode",
     "lsp-mode"
    ],
-   "commit": "72e26d0c1d34e3dd16ff6427af883bd0136015d3",
-   "sha256": "0f4zmvn13x468p6vpfixx3ghlrygdgdyx8xpb7nx232pv38156dn"
+   "commit": "d4a7a27d6ac7c6831b4f493dd89f82fa0c75bdf5",
+   "sha256": "1rkf2ibjilf023fv68ql4bray8bdnl2biq5zmn1qk5pdp988iq4j"
   }
  },
  {
@@ -63417,26 +64074,56 @@
   "repo": "ROCKTAKEY/lsp-latex",
   "unstable": {
    "version": [
-    20210110,
-    1914
+    20210607,
+    1206
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "5fc536f24dc659f998bc673129d9e7c4b20d297c",
-   "sha256": "1k34zpg6f3i1pb68zh6fc7azd4hmbclnjpad1893q2zhqwxqdwz8"
+   "commit": "a5de6b7166935af4a1e05d254fc1a44600518066",
+   "sha256": "0i5mbz7mwnax7jwv9c1bkwp5jwqrvwvh51fgwkmnz0kpjxhzfpsm"
   },
   "stable": {
    "version": [
+    2,
+    0,
+    0
+   ],
+   "deps": [
+    "lsp-mode"
+   ],
+   "commit": "1c60c2d331baf778bd8a3ac9d5688516398ae323",
+   "sha256": "1nm03yn02ja867d9ba3n980v86kcd5varzng1lhzv7fr7akv5j13"
+  }
+ },
+ {
+  "ename": "lsp-ltex",
+  "commit": "47faf55fd4876b28258173b7012eb413ab69a1be",
+  "sha256": "063yy68sy05gzcfp5bsk0mjh7g9x76r1c0qx0i8zw3r2a50g6llq",
+  "fetcher": "github",
+  "repo": "emacs-languagetool/lsp-ltex",
+  "unstable": {
+   "version": [
+    20210405,
+    1702
+   ],
+   "deps": [
+    "lsp-mode"
+   ],
+   "commit": "0fd8baec7e5f92d74b8b80d02c926d32332d86bd",
+   "sha256": "04jx5bknns1fyany1x8wzs6yx9qxzwrwj8m1iardxy8la3jp6ncd"
+  },
+  "stable": {
+   "version": [
+    0,
     1,
-    3,
     0
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "969846d5d0c9a9d1fc8deae30a0f664607f06e72",
-   "sha256": "1dz9yib9g7a5b1yipxjc6mqq9ffkpkm2icpj6xzanfdnc1ymj7c9"
+   "commit": "5546970c7949d498947e4b6a281707feb2aee928",
+   "sha256": "0s7v43jmpbjjxvfp9s51kc5d9mk3kf5mwvc4iwbvrzpi0ar4vfdy"
   }
  },
  {
@@ -63447,8 +64134,8 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20210410,
-    615
+    20210529,
+    752
    ],
    "deps": [
     "dap-mode",
@@ -63457,28 +64144,30 @@
     "ht",
     "lsp-mode",
     "lsp-treemacs",
+    "scala-mode",
     "treemacs"
    ],
-   "commit": "a603e9ec3d5f926774a8facb045f33eaa6df9037",
-   "sha256": "1pxfvmkk64v0sd7ghwj3dmhf7bbfh8wk2apxvckdq76l1wrd8izs"
+   "commit": "4c11fe47ef3c71a2fc7cd67a055ea0bc5883a0c6",
+   "sha256": "16laslmvsamvcn58gsi6hfs53p12q0nz7zx993ipa2xhy6n04hcg"
   },
   "stable": {
    "version": [
     1,
-    1,
+    2,
     0
    ],
    "deps": [
     "dap-mode",
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lsp-mode",
+    "lsp-treemacs",
+    "scala-mode",
     "treemacs"
    ],
-   "commit": "efefcc0e936ec463f0d19b6cae7c8336dcd186e4",
-   "sha256": "01396r17ipmp0s5k5njm8m4vqw0g1sj9rq6dpkxv7wbad1c4izmx"
+   "commit": "5aea52dfe08b8f5936ea3982be6c25339f652eba",
+   "sha256": "0ca5xq1l3lscx36pcdnpy2axgyikjrl18naqr140kr1y500sy37s"
   }
  },
  {
@@ -63489,8 +64178,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20210410,
-    1801
+    20210605,
+    1854
    ],
    "deps": [
     "dash",
@@ -63500,8 +64189,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "65fb3e8d071406c4596dcc13e3f0230e1f730ec6",
-   "sha256": "1cdhgmqzg9dj491jqwfnqjdjkl4ki3gkpfn386mb5hwfl5aiv5pf"
+   "commit": "7b75d6bf01bed9ccb108cf1406d0e2af29d7e39b",
+   "sha256": "1lbb3bpizibpnw77bgdf8j2303gwh2133n8s518frmz6gcb7kz8s"
   },
   "stable": {
    "version": [
@@ -63649,16 +64338,16 @@
   "repo": "emacs-lsp/lsp-pyright",
   "unstable": {
    "version": [
-    20210220,
-    1714
+    20210513,
+    1022
    ],
    "deps": [
     "dash",
     "ht",
     "lsp-mode"
    ],
-   "commit": "65fb14128127fb1ddf68dd4cb3140d6c7911a093",
-   "sha256": "0qhs4cv01b7aqq5r6bk91xgwsp8yg1bpn68xk90iirsxlgfb1ffq"
+   "commit": "71a79760938d2132923fbff58dc25301892b1654",
+   "sha256": "0si9qca8lml2hd8zj420dmks4cwzfidq14h3xfczhvrshhsc0mny"
   }
  },
  {
@@ -63669,26 +64358,45 @@
   "repo": "emacs-lsp/lsp-python-ms",
   "unstable": {
    "version": [
-    20210405,
-    1922
+    20210513,
+    1019
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "8d228b0f6dde3a4d1327650c17b21539ff4a08ee",
-   "sha256": "1kjif1vhm9fcxcyid14n9lw7mkq1yshf2ai1nk76bdnar45w9860"
+   "commit": "4eb78c43046fceb53a66ccd24c85601bdb87ed17",
+   "sha256": "10d949gb3v7flnkb5khk11dcmfnlr4h02yfj8g3b0ihr1zr7c958"
   },
   "stable": {
    "version": [
     0,
     7,
-    0
+    2
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "7a502e6c09456cbe8b5f6c64883c79f5ce08e5a9",
-   "sha256": "0rkxhm9lmvsalyzq96452cgpn5cqljw7b9d9xcxkkl2cwz1745f3"
+   "commit": "5856c08d6393c10951f39b993a8d7bf2d506b44f",
+   "sha256": "0m55i7w1am55c7p35il3i06d4za8z5qamfwb8nki5zhiacw26bkw"
+  }
+ },
+ {
+  "ename": "lsp-rescript",
+  "commit": "62f9e44d874b7f3611b3c35fcd3276a209a1741a",
+  "sha256": "0q961r4yc4y1avhv5px77xxqnj1z9d8a2k9d3acy3qbnz27wlw4r",
+  "fetcher": "github",
+  "repo": "jjlee/lsp-rescript",
+  "unstable": {
+   "version": [
+    20210519,
+    1101
+   ],
+   "deps": [
+    "lsp-mode",
+    "rescript-mode"
+   ],
+   "commit": "aac9673855314a1f34037eb785bccbd3f66d7695",
+   "sha256": "0jyn471mdklhw1il6bbnv5drrl0raiyh17p1qi6rdn20ywi1dbx7"
   }
  },
  {
@@ -63739,8 +64447,8 @@
    "deps": [
     "lsp-mode"
    ],
-   "commit": "aafa9878a3df2f08e5a9c846d91fd53350ce3c99",
-   "sha256": "1la4mfaykd6vi7d0nw45a2ia8zwr8xflqhc4a9rmdl8biyrp47kj"
+   "commit": "ae4aa8705cc3a27ed86f1e7ee04d5c8f0522d8c0",
+   "sha256": "0q3dji9qy0aj7ai43xjcpb4hy6kvscrpr8r5cb9137g34zc0pd9x"
   }
  },
  {
@@ -63751,14 +64459,14 @@
   "repo": "merrickluo/lsp-tailwindcss",
   "unstable": {
    "version": [
-    20210330,
-    323
+    20210605,
+    315
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "5df10c36d3162982f5100b8c66af957dd05712cf",
-   "sha256": "0vl5gajg1w5qrzafvkqrbkb9dlja4ina2i3gs6pfv1jrn473h8p7"
+   "commit": "77ebadcb7decd953c069b421a7ab18188295e4b6",
+   "sha256": "0s34djc945zbzykazrd7k8gizbfws3xp8rjdbnplg4996k1c71n1"
   }
  },
  {
@@ -63769,8 +64477,8 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20210411,
-    1507
+    20210502,
+    1804
    ],
    "deps": [
     "dash",
@@ -63779,8 +64487,8 @@
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "4cfb46d7fe69cc537a8a86389c5d8d9fd3fbfabe",
-   "sha256": "0ca20xdmk0c5w3hpimly6pl355sjvzjaq3nwfaw3p6qr9sx1sy9w"
+   "commit": "f360d54fa68a00baec228d9582bc67c1a327d757",
+   "sha256": "0wbni6njz98c23pns4wxg4mq26zrvpyxh0qcz0a4l46zdn1962vm"
   },
   "stable": {
    "version": [
@@ -63807,16 +64515,16 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20210330,
-    428
+    20210604,
+    1158
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "efae00eb6a733d5271cb33e9d92c3d8c2fa98dde",
-   "sha256": "01y5yl16kvhmwziza08q88l1dva76nzbm6ln0qymalfkxipjcxrn"
+   "commit": "c4ffa7abf6706d591300c608c51d2b72178848ad",
+   "sha256": "1qr7is4k5w6dcfkcvg7crna6r26lqmb02v08i3yggq09qd01c08g"
   },
   "stable": {
    "version": [
@@ -63914,6 +64622,21 @@
   }
  },
  {
+  "ename": "lux-mode",
+  "commit": "ca88d6e55ea272698f26e6d8ff66a3e57b7689ee",
+  "sha256": "0n0964gr5cac6k0zwfi9slyh2gsccmp7kipvjarvsj5nhx8khxb2",
+  "fetcher": "github",
+  "repo": "hawk/lux",
+  "unstable": {
+   "version": [
+    20210607,
+    1130
+   ],
+   "commit": "b5391e8dc088d95d8f131f49982d5c7cbaa23677",
+   "sha256": "08bfjg51ydznfk8w7hwznzyybl42mqa5l0pvb4xapqcq2na3d3yf"
+  }
+ },
+ {
   "ename": "lv",
   "commit": "5114349617617673d5055fe28cb8f8c86cf41f83",
   "sha256": "1lkm40rwpj9hmckng9bz5g4jbx9g9i3wlqgl6rq0m6i14syr69v4",
@@ -64273,40 +64996,40 @@
  },
  {
   "ename": "magit",
-  "commit": "15a5916ec8e9062e41b1dd7d4f5535a86c2170a3",
-  "sha256": "1bcv0yv5l51j3xyli9rq3zqjkf0b9w7yd0kykfmy1dp1hx39qf8r",
+  "commit": "4158066a2c75cf0bff128bd2dc1073472c32b1f4",
+  "sha256": "1hrh90qd47s6q6grr6rp2y7kfqq8bzhdfpyq2saihrric91s1rqz",
   "fetcher": "github",
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210411,
-    2036
+    20210531,
+    1524
    ],
    "deps": [
     "dash",
     "git-commit",
+    "magit-section",
     "transient",
     "with-editor"
    ],
-   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
-   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
+   "commit": "4a8646a30df99bbafc95d4f21a0b2bf0a6f6566f",
+   "sha256": "0y3wzvyaxn5zybjak77r1cngaqqm462s3d4f1cwmzvrnpv99f3r9"
   },
   "stable": {
    "version": [
-    2,
-    90,
-    1
+    3,
+    0,
+    0
    ],
    "deps": [
-    "async",
     "dash",
-    "ghub",
     "git-commit",
-    "magit-popup",
+    "magit-section",
+    "transient",
     "with-editor"
    ],
-   "commit": "791901b2f1d26fa0a383147fe77948a9abc753da",
-   "sha256": "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4"
+   "commit": "c3bbc9b9425f3370690cabb11bd35b9040773fdc",
+   "sha256": "0dbp3gx43ipxv8zg9m0hfhksz85rnkikaq35rx705qqz6xq6xq9m"
   }
  },
  {
@@ -64317,28 +65040,28 @@
   "repo": "magit/magit-annex",
   "unstable": {
    "version": [
-    20210210,
-    2312
+    20210525,
+    2331
    ],
    "deps": [
     "cl-lib",
     "magit"
    ],
-   "commit": "870174f23faa00b003b3eb63452228511c2da597",
-   "sha256": "156d0gd0a2cx9rn0zb9i96s3l62rys1dpxcdix2j6aix6iv669ql"
+   "commit": "17e5e60b59eac3cf5938c1b22c29458c0d694b0a",
+   "sha256": "0ak4chfn95p2vj3y0wiyimj609a4jfzrfpsc1kn0is1jv3dlkl6c"
   },
   "stable": {
    "version": [
     1,
-    7,
-    1
+    8,
+    0
    ],
    "deps": [
     "cl-lib",
     "magit"
    ],
-   "commit": "21cb2927d672cc6bf631d8373a361b1766ccf004",
-   "sha256": "07r0d2i1hws63wfv1jys63r3lmrl4ywwi76gi7srwhzhqdr1af0n"
+   "commit": "17e5e60b59eac3cf5938c1b22c29458c0d694b0a",
+   "sha256": "0ak4chfn95p2vj3y0wiyimj609a4jfzrfpsc1kn0is1jv3dlkl6c"
   }
  },
  {
@@ -64469,14 +65192,15 @@
   "repo": "emacsorphanage/magit-gerrit",
   "unstable": {
    "version": [
-    20160226,
-    930
+    20210414,
+    1334
    ],
    "deps": [
-    "magit"
+    "magit",
+    "transient"
    ],
-   "commit": "ece6f369694aca17f3ac166ed2801b432acfe20d",
-   "sha256": "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"
+   "commit": "31f5ce30e374716818df7deb0cdbf462ef67e679",
+   "sha256": "08pwdjknd7407922w7gli76ji87zqj9j87sinhzjc38cnlhvm77n"
   },
   "stable": {
    "version": [
@@ -64566,26 +65290,26 @@
   "repo": "magit/magit-imerge",
   "unstable": {
    "version": [
-    20200516,
-    2029
+    20210525,
+    2326
    ],
    "deps": [
     "magit"
    ],
-   "commit": "a6130871e5f4421618e66d9254d0b5df9f3a1ef2",
-   "sha256": "1zrgqcxp2jshp52m0sa73kk071hvisqlrk79k9is6smkjss97s8c"
+   "commit": "cf3b4646aa0205e8d7f47e45165fe6403d6440f5",
+   "sha256": "1j96vg9kc03vxxq4r5a7v4di88pvbb5i01n8js06lgs9qzl097k7"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "magit"
    ],
-   "commit": "5b45efa65317886640c339d1c71d2b9e00e98b77",
-   "sha256": "02597aq00fq7b9284kq7s55ddrjb6xhh1l280gq3czi75658d3db"
+   "commit": "cf3b4646aa0205e8d7f47e45165fe6403d6440f5",
+   "sha256": "1j96vg9kc03vxxq4r5a7v4di88pvbb5i01n8js06lgs9qzl097k7"
   }
  },
  {
@@ -64628,15 +65352,28 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210124,
-    1829
+    20210525,
+    814
    ],
    "deps": [
     "libgit",
     "magit"
    ],
-   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
-   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
+   "commit": "4a8646a30df99bbafc95d4f21a0b2bf0a6f6566f",
+   "sha256": "0y3wzvyaxn5zybjak77r1cngaqqm462s3d4f1cwmzvrnpv99f3r9"
+  },
+  "stable": {
+   "version": [
+    3,
+    0,
+    0
+   ],
+   "deps": [
+    "libgit",
+    "magit"
+   ],
+   "commit": "c3bbc9b9425f3370690cabb11bd35b9040773fdc",
+   "sha256": "0dbp3gx43ipxv8zg9m0hfhksz85rnkikaq35rx705qqz6xq6xq9m"
   }
  },
  {
@@ -64698,14 +65435,14 @@
   "repo": "dickmao/magit-patch-changelog",
   "unstable": {
    "version": [
-    20200217,
-    1202
+    20210607,
+    1635
    ],
    "deps": [
     "magit"
    ],
-   "commit": "876c780bdb676b6ece64861704e199b94f33cf71",
-   "sha256": "0wkjh9s67vs90lysdx3gjyrax9mlbzfvs563pzr6ab3l4p5pgnsw"
+   "commit": "5cd99a6336ad4b60e9e8ce766b8a9c0395289775",
+   "sha256": "17s5268kcqhgd141fvjqnn2wrny7v03yz940k2whr383l1253k6v"
   }
  },
  {
@@ -64784,23 +65521,26 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210224,
-    1417
+    20210525,
+    844
    ],
    "deps": [
     "dash"
    ],
-   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
-   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
+   "commit": "4a8646a30df99bbafc95d4f21a0b2bf0a6f6566f",
+   "sha256": "0y3wzvyaxn5zybjak77r1cngaqqm462s3d4f1cwmzvrnpv99f3r9"
   },
   "stable": {
    "version": [
-    2,
-    90,
-    1
+    3,
+    0,
+    0
    ],
-   "commit": "791901b2f1d26fa0a383147fe77948a9abc753da",
-   "sha256": "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4"
+   "deps": [
+    "dash"
+   ],
+   "commit": "c3bbc9b9425f3370690cabb11bd35b9040773fdc",
+   "sha256": "0dbp3gx43ipxv8zg9m0hfhksz85rnkikaq35rx705qqz6xq6xq9m"
   }
  },
  {
@@ -64835,26 +65575,28 @@
   "repo": "emacsorphanage/magit-svn",
   "unstable": {
    "version": [
-    20190821,
-    1455
+    20210426,
+    2114
    ],
    "deps": [
-    "magit"
+    "magit",
+    "transient"
    ],
-   "commit": "2cff1a30a30f2b3963342a7d185ec13fc12279c3",
-   "sha256": "0c4bn9wjjwb0f6hzh7d6vz33lrf75kal62329drzmbh1sla2s3h3"
+   "commit": "350493217afdb7637564e089f475909adecd9208",
+   "sha256": "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd"
   },
   "stable": {
    "version": [
     2,
     2,
-    2
+    3
    ],
    "deps": [
-    "magit"
+    "magit",
+    "transient"
    ],
-   "commit": "99601f47f47a421576809595ca7463fd010760b1",
-   "sha256": "00lsfkmsz26pz1paqn73skgx747250vc2pa0n8n0h7ywxj9dkzvb"
+   "commit": "350493217afdb7637564e089f475909adecd9208",
+   "sha256": "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd"
   }
  },
  {
@@ -64865,26 +65607,26 @@
   "repo": "magit/magit-tbdiff",
   "unstable": {
    "version": [
-    20210327,
-    350
+    20210525,
+    2329
    ],
    "deps": [
     "magit"
    ],
-   "commit": "99cb9c0501f0f1ea7ec3ebf0fb398f3d36cddafb",
-   "sha256": "189c4hrgbrwx44nidf4xv30yyb2y7lid57by0fn9hyi21nbk2gmx"
+   "commit": "fef1b7772fe192c434089b67644ff93765e384d4",
+   "sha256": "1g5nsg6zb3jrm7w1ssawv109ai2l7dpnd1dqrjsry2dnx1mxd212"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "magit"
    ],
-   "commit": "4273bfab1d2b620d68d890fbaaa78c56cf210059",
-   "sha256": "0d1cn0nshxnvgjvl9j7wsai75pvsxmrmkdj57xdpyggwxgcpl1m4"
+   "commit": "fef1b7772fe192c434089b67644ff93765e384d4",
+   "sha256": "1g5nsg6zb3jrm7w1ssawv109ai2l7dpnd1dqrjsry2dnx1mxd212"
   }
  },
  {
@@ -65076,8 +65818,8 @@
   "repo": "p3r7/magrant",
   "unstable": {
    "version": [
-    20210328,
-    956
+    20210514,
+    1322
    ],
    "deps": [
     "dash",
@@ -65086,8 +65828,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "afb563e66fc1639feda22845049492e09cf65327",
-   "sha256": "0k3fx44xdnvlqmszqs6aj6b436s1y7grpyx52k0rbgmxf5w2c05x"
+   "commit": "79661be21cc8e9faf1ac93adb1f86f9b7a8b110d",
+   "sha256": "00hl22bl9cbivwdilzqrz9kf3qcixbc15x263cv1nn9ppba4arhw"
   }
  },
  {
@@ -65580,19 +66322,19 @@
   "repo": "minad/marginalia",
   "unstable": {
    "version": [
-    20210409,
-    2305
+    20210605,
+    1213
    ],
-   "commit": "668265af921285c726b2239dae32459bd1064d03",
-   "sha256": "1kl516mzcpdam787x5k55s0crspacvxnz2zqz5m32b13xl2pr847"
+   "commit": "4c6272ffc4836de052c8b06f681b0e700cb01602",
+   "sha256": "0l4sl4w4yq3hkpvvw7w1mh046f95bkg1c3av07kwk9cm038rwhvg"
   },
   "stable": {
    "version": [
     0,
-    4
+    6
    ],
-   "commit": "e741b243b30f6cfe85e568cc551acff9a1e5e74f",
-   "sha256": "0piwzxp1zmwp876kyca0xcgyxgn8bn4wh5fnn88dkvdzi8mcgmkh"
+   "commit": "ca9a5e35913569d66d34193a87d8511b2bb9d2b2",
+   "sha256": "1lisns2vghmqlg8wiv6jy15cfgnc8j83khz0vfnmrjwgcmjw3bbz"
   }
  },
  {
@@ -65700,11 +66442,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20210405,
-    1349
+    20210530,
+    1825
    ],
-   "commit": "ac9ea26b941eef512a3c206375a6404625c229ed",
-   "sha256": "0nszqrx6nfdzlib3w6l5pmzmgnrwzmvzlz7hv46x4iqzyxjg2jsn"
+   "commit": "58f2d22526ac1e4abd4ee1afff8624d2dd3123d3",
+   "sha256": "1k17zpx05yafxfsw89dlkymqc5xajzv28qby12kdhwwlsbarqvd0"
   },
   "stable": {
    "version": [
@@ -65716,35 +66458,6 @@
   }
  },
  {
-  "ename": "markdown-mode+",
-  "commit": "ca7bf43ef8893bf04e9658390e306ef69e80a156",
-  "sha256": "1535kcj9nmcgmk2448jxc0jmnqy7f50cw2ngffjq5w8bfhgf7q00",
-  "fetcher": "github",
-  "repo": "milkypostman/markdown-mode-plus",
-  "unstable": {
-   "version": [
-    20170320,
-    2104
-   ],
-   "deps": [
-    "markdown-mode"
-   ],
-   "commit": "411d079f4430a33c34ec0bbcb1535fe1145a2509",
-   "sha256": "0427cxvykmz8kz1gnn27yc9c4z8djyy6m9qz6wbd4np1cgqlmly2"
-  },
-  "stable": {
-   "version": [
-    0,
-    8
-   ],
-   "deps": [
-    "markdown-mode"
-   ],
-   "commit": "f35e63284c5caed19b29501730e134018a78e441",
-   "sha256": "1adl36fj506kgfw40gpagzsd7aypfdvy60141raggd5844i6y96r"
-  }
- },
- {
   "ename": "markdown-preview-eww",
   "commit": "d9b3ad97a193c41068ca184b4835fa7a7a0ebc9c",
   "sha256": "0j6924f84is41dspib68y5lnz1f8nm7pqyhv47alxra50cjrpxnx",
@@ -65767,8 +66480,8 @@
   "repo": "ancane/markdown-preview-mode",
   "unstable": {
    "version": [
-    20210207,
-    2114
+    20210516,
+    936
    ],
    "deps": [
     "cl-lib",
@@ -65776,14 +66489,14 @@
     "web-server",
     "websocket"
    ],
-   "commit": "01af98ac1adcc9cb247fbc6c80fb159c30360ee6",
-   "sha256": "0n6ywxq12jqacdpah350ha6gqryxsh0iix93m0xnyy34dq2by4rc"
+   "commit": "dde87b96de9e81dd01d174da67ef68687b3a5eb5",
+   "sha256": "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"
   },
   "stable": {
    "version": [
     0,
     9,
-    2
+    4
    ],
    "deps": [
     "cl-lib",
@@ -65791,8 +66504,8 @@
     "web-server",
     "websocket"
    ],
-   "commit": "f98d9114ca87e3e8e5ce70e601d13061eda15415",
-   "sha256": "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"
+   "commit": "dde87b96de9e81dd01d174da67ef68687b3a5eb5",
+   "sha256": "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"
   }
  },
  {
@@ -65803,16 +66516,16 @@
   "repo": "ardumont/markdown-toc",
   "unstable": {
    "version": [
-    20200517,
-    1233
+    20210515,
+    902
    ],
    "deps": [
     "dash",
     "markdown-mode",
     "s"
    ],
-   "commit": "9565eeaa1d26bc0ab83eb65bd30470888f724044",
-   "sha256": "1l49hi4nwralx5kg4aqjj2b592y71ba4i91vmlzk5rrcjmdnc6b0"
+   "commit": "86a4a2b092b0f23b9edb3ee0ab7da483b7f10a5b",
+   "sha256": "0n1fzla3dkscz70fy81fsbiyi2hj7swjy7zvxprhn36jjkb6b5hf"
   },
   "stable": {
    "version": [
@@ -66129,11 +66842,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20210410,
-    1340
+    20210504,
+    1439
    ],
-   "commit": "587ad073069e8c932388d6f4ab8e7689b52bc6ad",
-   "sha256": "1lnwax7m105h9djvbyhwcxg6av9i04myq02dxhb1gw64w6i3vas8"
+   "commit": "c5824936cc7c2d24aeaac40010669f4eec89a239",
+   "sha256": "0rccwkglyw9hnab5mzhrzfrldlvi9c8ivygdh54jzfjlzcgwddv9"
   }
  },
  {
@@ -66212,15 +66925,15 @@
   "repo": "sasanidas/maxima",
   "unstable": {
    "version": [
-    20210124,
-    2005
+    20210526,
+    1525
    ],
    "deps": [
     "s",
     "test-simple"
    ],
-   "commit": "5e80033e6fa9089d5cd6fa93f6484b544f2ba059",
-   "sha256": "0qh19a3yi5cccj01wxrlyaw1zcaxvpjhxc5qk3mf4f1l8gm1sfi2"
+   "commit": "74e10d5dedb16f74efc28299c98dd7db9a4392d6",
+   "sha256": "1r04mbn33y515b9fwr2x9rcbkvriz753dc0rasb8ca59klp1p5cv"
   },
   "stable": {
    "version": [
@@ -66460,16 +67173,16 @@
   "repo": "mopemope/meghanada-emacs",
   "unstable": {
    "version": [
-    20200628,
-    247
+    20210505,
+    652
    ],
    "deps": [
     "company",
     "flycheck",
     "yasnippet"
    ],
-   "commit": "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2",
-   "sha256": "1cplw3x94xc2yqvvimkjgppbb36mnj8n3gcx0k2gy7zwzdvzg4c6"
+   "commit": "6c57e8a0ae27e2929bb12572cf33059cd4ecbc04",
+   "sha256": "1wq4x80lqzlpixy701xncvmz0jwk1zgp1kpz1z7wgl5i0jnb1516"
   },
   "stable": {
    "version": [
@@ -66650,16 +67363,16 @@
   "repo": "DogLooksGood/meow",
   "unstable": {
    "version": [
-    20210410,
-    1837
+    20210606,
+    1056
    ],
    "deps": [
     "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "6eb10d223fb7e0d87ac7ab7063fdb3951934e94c",
-   "sha256": "0b1s51yfklm52j2g0gnrwdahr1jql1fv93sn7inm5c1ygx3agc7c"
+   "commit": "1cf2508f8e95311aa9ca405f899c3596cf8c2bc7",
+   "sha256": "12xzq9sxczjppqpx75bny2dp647m3f9ww6zf9a22rgmmspzkk5cx"
   }
  },
  {
@@ -66673,16 +67386,18 @@
     20210408,
     1014
    ],
-   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
-   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
+   "commit": "7d929be2e9c1ae1a32e680591c5a224a96198e47",
+   "sha256": "0gpis7r2c7sppk4fx6alq9g2asva71xj05fjjq60zg87paimfdx4"
   },
   "stable": {
    "version": [
     4,
-    1
+    2,
+    -4,
+    412
    ],
-   "commit": "ab02f60994c81166820791b5f465f467d752b8dc",
-   "sha256": "1lsrn6739736gr72c83hnxdynqmvjbs8pq3spb74v39k7xixmh99"
+   "commit": "fe7380bb13ff91f8ed5cfbfea6a6ca01ee1ef88c",
+   "sha256": "0dlrxss3i1z584l0dack8v3pf02bimx8bydqkj3bfiljqsi912v1"
   }
  },
  {
@@ -66700,8 +67415,22 @@
     "auto-complete",
     "merlin"
    ],
-   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
-   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
+   "commit": "7d929be2e9c1ae1a32e680591c5a224a96198e47",
+   "sha256": "0gpis7r2c7sppk4fx6alq9g2asva71xj05fjjq60zg87paimfdx4"
+  },
+  "stable": {
+   "version": [
+    4,
+    2,
+    -4,
+    412
+   ],
+   "deps": [
+    "auto-complete",
+    "merlin"
+   ],
+   "commit": "fe7380bb13ff91f8ed5cfbfea6a6ca01ee1ef88c",
+   "sha256": "0dlrxss3i1z584l0dack8v3pf02bimx8bydqkj3bfiljqsi912v1"
   }
  },
  {
@@ -66719,8 +67448,22 @@
     "company",
     "merlin"
    ],
-   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
-   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
+   "commit": "7d929be2e9c1ae1a32e680591c5a224a96198e47",
+   "sha256": "0gpis7r2c7sppk4fx6alq9g2asva71xj05fjjq60zg87paimfdx4"
+  },
+  "stable": {
+   "version": [
+    4,
+    2,
+    -4,
+    412
+   ],
+   "deps": [
+    "company",
+    "merlin"
+   ],
+   "commit": "fe7380bb13ff91f8ed5cfbfea6a6ca01ee1ef88c",
+   "sha256": "0dlrxss3i1z584l0dack8v3pf02bimx8bydqkj3bfiljqsi912v1"
   }
  },
  {
@@ -66767,8 +67510,22 @@
     "iedit",
     "merlin"
    ],
-   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
-   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
+   "commit": "7d929be2e9c1ae1a32e680591c5a224a96198e47",
+   "sha256": "0gpis7r2c7sppk4fx6alq9g2asva71xj05fjjq60zg87paimfdx4"
+  },
+  "stable": {
+   "version": [
+    4,
+    2,
+    -4,
+    412
+   ],
+   "deps": [
+    "iedit",
+    "merlin"
+   ],
+   "commit": "fe7380bb13ff91f8ed5cfbfea6a6ca01ee1ef88c",
+   "sha256": "0dlrxss3i1z584l0dack8v3pf02bimx8bydqkj3bfiljqsi912v1"
   }
  },
  {
@@ -66779,14 +67536,14 @@
   "repo": "abrochard/mermaid-mode",
   "unstable": {
    "version": [
-    20210329,
-    2328
+    20210505,
+    1635
    ],
    "deps": [
     "f"
    ],
-   "commit": "b650649a9f28629154a041ef187c21c5128530f2",
-   "sha256": "0pffhrxw91p82gkyhf3bwcs910pjw8f7y94lsyqz5jzs469b0lcy"
+   "commit": "562ffe86cad91627e2b94b8684818562c3ad2b5d",
+   "sha256": "0g90fy27ivjaad1wp6rg8jx8dm44vb6zmsrlchzpwcyhkxs7zv8l"
   }
  },
  {
@@ -66797,11 +67554,11 @@
   "repo": "wentasah/meson-mode",
   "unstable": {
    "version": [
-    20210321,
-    1136
+    20210513,
+    1354
    ],
-   "commit": "88717d5256d4cf47a85756dc5e204ea23eec165d",
-   "sha256": "1y8j8qgy6pw80ja4ppzkdrcnq3k6qwzc1i81g7399rkpbj62kd53"
+   "commit": "69fdb63b59ec7d1acd427cb7de7219c18af46f40",
+   "sha256": "1q2p31nv7xr1s8w54yyyz7vlflbnb4p63jx6960vrk2c9ppi43d8"
   },
   "stable": {
    "version": [
@@ -66963,20 +67720,20 @@
   "repo": "org2blog/org2blog",
   "unstable": {
    "version": [
-    20191018,
-    242
+    20210422,
+    326
    ],
-   "commit": "c7f72a87952ed16323fce968462af897235f1719",
-   "sha256": "0v8zkzai5gfzng9dpkikwf60rvsr1148y5nb7hw65961xms855s4"
+   "commit": "543813e0acceb55653d876302a5d5741879fb717",
+   "sha256": "1w0pfz5dbhqglb5w3c2g4ww2c32nbsir8gqnsh69pa43h9q1msz1"
   },
   "stable": {
    "version": [
     1,
     1,
-    10
+    11
    ],
-   "commit": "19aa8a17428d6ee42f54e464c26eeab17a6478ab",
-   "sha256": "198ahgxji0kh6ynygrrdvllj9fwcqrnma4sd8msj2aq18xij9glr"
+   "commit": "c1b386f3522054f063f4ac60730397ed1f724478",
+   "sha256": "0d0s9hxjvv39n1rik894yh7d20aw120r6cadyp4hqw4n24j8cs5q"
   }
  },
  {
@@ -67020,11 +67777,11 @@
   "repo": "kazu-yamamoto/Mew",
   "unstable": {
    "version": [
-    20210131,
-    740
+    20210416,
+    33
    ],
-   "commit": "8c6bc6bf9562beb74b3b4fda47b2fe473139eb1c",
-   "sha256": "0bf30kkrmi0qw8i0viv1dnvrd52a66rp6vcklidrnv4dh5b782n8"
+   "commit": "380d6059fa9f102e736969d086749980820a9e0e",
+   "sha256": "03fxicfl7yvxj6ac636544km1khhmrjqi97r0smwqfxvlm2gs037"
   },
   "stable": {
    "version": [
@@ -67043,11 +67800,11 @@
   "repo": "sggutier/mexican-holidays",
   "unstable": {
    "version": [
-    20200622,
-    132
+    20210604,
+    1421
    ],
-   "commit": "5b5dd6e71505e8938bac9e9733b30bd394631923",
-   "sha256": "04d4148nq3lmrpkxvzzkn88j30iv2l2466ps035x7v8hc83wxnjw"
+   "commit": "8e28907ea69f2c0ed9aad9f3b99664ca147379d0",
+   "sha256": "0mly44x0nq26pw8v98k3nnlc8ca1mn20jcqj5k5gzdbp6k49lkxa"
   }
  },
  {
@@ -67058,8 +67815,8 @@
   "repo": "danielsz/meyvn-el",
   "unstable": {
    "version": [
-    20210130,
-    2016
+    20210606,
+    1501
    ],
    "deps": [
     "cider",
@@ -67069,8 +67826,8 @@
     "projectile",
     "s"
    ],
-   "commit": "a49731f39020b7c7626ba12e4c7b2f1c17a69341",
-   "sha256": "13m1qym94qvy197ngd8lyn8nzfsbxbr5ss29mkbvaidhi13jdrwa"
+   "commit": "ddba1d60d6729bbeeefd0f76dac4e6c20e848f67",
+   "sha256": "1c454baagnvbg79yia5vwk51n0fp031rz0xhgawk70lrfjbc8256"
   },
   "stable": {
    "version": [
@@ -67089,11 +67846,11 @@
   "repo": "purpleidea/mgmt",
   "unstable": {
    "version": [
-    20200104,
-    108
+    20210131,
+    2152
    ],
-   "commit": "76ede10e0a0433d8aae6b3b4e132ca9dcce5ca75",
-   "sha256": "1n6avpk8ggpjqiin1qrwc3g1rjgq902cgks1kfd2r82bkri2sq1q"
+   "commit": "48fa796ab1669dc275b8c99238fff6c83ad2fcc6",
+   "sha256": "0rn7ahpj2kjkmy7gq4fj0n99af70xxxykyjqsza1nnizxfgmrpwj"
   },
   "stable": {
    "version": [
@@ -67480,14 +68237,11 @@
   "repo": "tarsius/minions",
   "unstable": {
    "version": [
-    20201204,
-    1051
-   ],
-   "deps": [
-    "dash"
+    20210603,
+    2150
    ],
-   "commit": "4a81446e13f5bfb514e593d0e1c5253a60113301",
-   "sha256": "19gwv9dn6g3jv12qq1h4fal2adsawrszyfkd62x99rlfa81ixg6d"
+   "commit": "aed285155dc8f073d766e752520ec599e77ce8b7",
+   "sha256": "1qxszcx9n1yfc9j9ihvrdwb57n19w03600z3v4z2ybxap1y0nq3v"
   },
   "stable": {
    "version": [
@@ -67624,11 +68378,11 @@
   "repo": "ayrat555/mix.el",
   "unstable": {
    "version": [
-    20210105,
-    1821
+    20210605,
+    1015
    ],
-   "commit": "39a7d3e35769086c0008389b3975dd90b91b657c",
-   "sha256": "0f74wb9f1j47qc0xhhn23i8nrsyznhngwvdrg62ixdzdz9z0z5hh"
+   "commit": "bfe61ed4e7dd8cfc0bb2603fbac3eb44b32438bf",
+   "sha256": "0wfjgkz08zsdl24b71x7ync05qnnh46grs8ahdn8s9j35q9kxqvf"
   }
  },
  {
@@ -67643,11 +68397,7 @@
     1900
    ],
    "commit": "519e05f74825abf04b7d2e0e38ec040d013a125a",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 301 ms\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 515 ms\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 1011 ms\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 2434 ms\nerror: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503\n"
-   ]
+   "sha256": "1yf21gm4ziplmgx8yn7jqq45mwfiindbrman7fc5b9ifq78x9ryn"
   },
   "stable": {
    "version": [
@@ -67678,6 +68428,30 @@
   }
  },
  {
+  "ename": "mlscroll",
+  "commit": "7f37b0e3fb8ee6770ea9320ce759bf8cf2ba2292",
+  "sha256": "1a0n6jxx0a71yjrdlly0bckly5pkz5mlqg5x9cmvq687mqv7mhkc",
+  "fetcher": "github",
+  "repo": "jdtsmith/mlscroll",
+  "unstable": {
+   "version": [
+    20210601,
+    2158
+   ],
+   "commit": "db502020ffe6bc65576b93527a20c0bf3df562da",
+   "sha256": "0gw6xw38x8h72gbvhmddgzijs4xvkrgs6c7v552db56hrlsj9lhp"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "commit": "5811cb564727f74eb0c8b8b075e6dc982e6ac5f6",
+   "sha256": "1wj71kz9zdp1rb2lmxrfrrwjg7wb4yjgsaqmhv2l4hyq97pzr0nm"
+  }
+ },
+ {
   "ename": "mmm-jinja2",
   "commit": "721b9a6f16fb8efd4d339ac7953cc07d7a234b53",
   "sha256": "0zg4psrgikb8644x3vmsns0id71ni9fcpm591zn16b4j64llvgsi",
@@ -67983,20 +68757,20 @@
   "repo": "tarsius/mode-line-debug",
   "unstable": {
    "version": [
-    20201118,
-    1530
+    20210525,
+    2014
    ],
-   "commit": "1848f94fe7bb7a0a11e976d1d64922a5b69a5cfc",
-   "sha256": "1jlcrymj1ssfrnz017916bm32918wkypzz0m57xixmng06x375g2"
+   "commit": "41184eb66a3205abcc32a885780004207df86dbd",
+   "sha256": "0qnrvddbka8klmihfaydpkwrigrjmbabxnm0vkybdqwzx619hwyi"
   },
   "stable": {
    "version": [
     1,
-    3,
-    0
+    4,
+    1
    ],
-   "commit": "6d2c9c14f6a3835f4d54091ea241fd436da18ef0",
-   "sha256": "0y5bkbl6achfdpk4pjyan2hy8y45mvhrzwkf1mz5j4lwr476g18l"
+   "commit": "41184eb66a3205abcc32a885780004207df86dbd",
+   "sha256": "0qnrvddbka8klmihfaydpkwrigrjmbabxnm0vkybdqwzx619hwyi"
   }
  },
  {
@@ -68010,8 +68784,8 @@
     20210215,
     2345
    ],
-   "commit": "02b1da6278e43cc9cc0356110cc6bfbb37eb8241",
-   "sha256": "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"
+   "commit": "8454a5ef404c6f4fe954a10da6ce4fd4311decfa",
+   "sha256": "01aq4bgris8v7q0yfyz1928q4rh9mba3b799zw2df8slqiigbf8i"
   }
  },
  {
@@ -68118,24 +68892,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20210411,
-    751
+    20210607,
+    917
    ],
-   "commit": "3c9b98f61e9b781f756ac7a329005156406cae5a",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 250 ms\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 595 ms\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 1101 ms\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 2792 ms\nerror: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503\n"
-   ]
+   "commit": "a2c8796fcbcbdd332165e02476c6de5799996d31",
+   "sha256": "0p9yzj70kx3s740dl7k3vwwkr1g9zxsirwl83n1nvswc4csgv20j"
   },
   "stable": {
    "version": [
     1,
-    2,
-    3
+    4,
+    0
    ],
-   "commit": "0a36239baf908585cdf32c6188eb86713d9bf6c6",
-   "sha256": "1l392hz6zs6wg06x2zxnk7s0h5cpmvbkcynh68gjmqjj84l7mqrk"
+   "commit": "15c973f716378084a937e777f86182741fd9b697",
+   "sha256": "0p9yzj70kx3s740dl7k3vwwkr1g9zxsirwl83n1nvswc4csgv20j"
   }
  },
  {
@@ -68170,11 +68940,11 @@
   "repo": "sergiruiztrepat/molar-mass",
   "unstable": {
    "version": [
-    20210324,
-    1832
+    20210519,
+    1342
    ],
-   "commit": "5b7d1d0004d27580e980fe8532658cd09174342e",
-   "sha256": "18s2np5wflbg0y6ffnjcbljyh3b5qsnjkma6dcl3razfr55mzmgn"
+   "commit": "838db1486a2dc5a3774eb195d62fbcdef71a63f7",
+   "sha256": "1n9wv5k7l80wr5pcphr694x414sbwpil3kxyia5ifqz4l7b9ildk"
   }
  },
  {
@@ -68290,11 +69060,11 @@
   "repo": "ananthakumaran/monky",
   "unstable": {
    "version": [
-    20201226,
-    1950
+    20210417,
+    12
    ],
-   "commit": "e04632277ef24acacc029ae29db1fadc458ae83b",
-   "sha256": "0xzn9fgxvbpgx5wky8vdhd3bw7hy6h6hngx7l8a0qspg560r7hz1"
+   "commit": "72c7cd21b7b995c476e938fd0b92a494aa25c3a7",
+   "sha256": "03khwadd3x3s9wrggdfjj8cff0nr64fj6hzc9yqbn2baxfkgrn8l"
   },
   "stable": {
    "version": [
@@ -68469,20 +69239,20 @@
   "repo": "tarsius/moody",
   "unstable": {
    "version": [
-    20210114,
-    850
+    20210522,
+    1100
    ],
-   "commit": "2a29baa0cb6e364c5acbbf590a6d7c936c4378ae",
-   "sha256": "0l6cgr2969flhkdkiycqppvblpsn0qkdp19r406jpqbc1ql394lj"
+   "commit": "392c77174ace6c57921f237f41eaa4c3a83ac303",
+   "sha256": "0b4kg4dxy4ywwin96vz6x3rpvgr718y5rgrdarmwym9wv1qz0a0c"
   },
   "stable": {
    "version": [
     0,
     5,
-    4
+    5
    ],
-   "commit": "f6bebfe6fe51b728ebd013b7084becad23cabad3",
-   "sha256": "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"
+   "commit": "392c77174ace6c57921f237f41eaa4c3a83ac303",
+   "sha256": "0b4kg4dxy4ywwin96vz6x3rpvgr718y5rgrdarmwym9wv1qz0a0c"
   }
  },
  {
@@ -68502,11 +69272,11 @@
   "stable": {
    "version": [
     1,
-    5,
+    6,
     0
    ],
-   "commit": "d0076ea22b2afc4c3faeea2138e836b1c8f08988",
-   "sha256": "0hz525xmv6kslss3yn8ibj6bi2xp442knad0030px7giia6y1pf6"
+   "commit": "f94cf84138a81212ffe856599834f7824a1b6e95",
+   "sha256": "0rdvcv8hwrxxbb9s8sfx5331a08kdk28x8chnnq3pj58pxqvagy3"
   }
  },
  {
@@ -68828,8 +69598,8 @@
     20210306,
     1053
    ],
-   "commit": "1ddec765e033d22079627dc14a06a204134e1b28",
-   "sha256": "0is1il0xws1k31p67s4xvpql7qm4rrv23fj2szdmfdds9f7qpp18"
+   "commit": "d031469630c70188c20598c0f3a3c3c46c6c7a14",
+   "sha256": "13mbkpzfdy136y5w6ns73qy1fsxwqzsvnnfcid2x7rrrqbxrcm5r"
   },
   "stable": {
    "version": [
@@ -69141,16 +69911,16 @@
   "repo": "yaruopooner/msvc",
   "unstable": {
    "version": [
-    20191211,
-    540
+    20210503,
+    1856
    ],
    "deps": [
     "ac-clang",
     "cedet",
     "cl-lib"
    ],
-   "commit": "9fe50e5961fa63fc5cf7326370f441993e9d5cfc",
-   "sha256": "133pidan95qyn78gdhfxlyk8x5f28rm5rwb9wdw1gpjy4l72q22f"
+   "commit": "122dc9cb7f145f12dac7b117a48fceb38b279432",
+   "sha256": "0ch9kvqvyirv8asqd5w2g3yb7h15741aavzm5hlmy8sj3l7q22jz"
   },
   "stable": {
    "version": [
@@ -69380,15 +70150,16 @@
   "repo": "lordpretzel/mu4e-views",
   "unstable": {
    "version": [
-    20210228,
-    1556
+    20210601,
+    1402
    ],
    "deps": [
+    "esxml",
     "ht",
     "xwidgets-reuse"
    ],
-   "commit": "1a0ceeb874e2a56b3ebe06c8375221031bb90a5c",
-   "sha256": "0v7d899pvpwvvp9x0yaskhjf1c6bjmqajk2mclfkykadrh89z61j"
+   "commit": "c7f2398612218407e72b174f02b26cf2916eba22",
+   "sha256": "0irvzwfrrqzk8pcq1m3w9s21v2y0h6f5jrvsv88knz0ki1bdkbai"
   },
   "stable": {
    "version": [
@@ -69426,27 +70197,31 @@
   "repo": "mihaiolteanu/mugur",
   "unstable": {
    "version": [
-    20200831,
-    702
+    20210503,
+    1516
    ],
    "deps": [
     "anaphora",
+    "cl-lib",
+    "dash",
     "s"
    ],
-   "commit": "34dfba027bf11e4cca2c547ce80b73d7324c7ba6",
-   "sha256": "011qr9jc90arg3y8y49hjmv94968ym81a36db0dvxyf08hspz006"
+   "commit": "b84752c391c5fe515960f77c80d08f313df57f33",
+   "sha256": "0la8lqr3wgizmnwnpys9mwrj1qi0al0gx6kxhlfwf9jr5gbdg9np"
   },
   "stable": {
    "version": [
-    1,
+    2,
     0
    ],
    "deps": [
     "anaphora",
+    "cl-lib",
+    "dash",
     "s"
    ],
-   "commit": "34dfba027bf11e4cca2c547ce80b73d7324c7ba6",
-   "sha256": "011qr9jc90arg3y8y49hjmv94968ym81a36db0dvxyf08hspz006"
+   "commit": "b8ebfd18a579b834d062082a8018f73561a0cde1",
+   "sha256": "0a7yd9y6nfyxz9qc84yrn8ii2z6359vhj8if3bx6b0hi8g03m4xl"
   }
  },
  {
@@ -69481,14 +70256,14 @@
   "repo": "ReanGD/emacs-multi-compile",
   "unstable": {
    "version": [
-    20200913,
-    8
+    20210604,
+    140
    ],
    "deps": [
     "dash"
    ],
-   "commit": "508b524aa880e0ca6695f0d5543ee7659f2dea7c",
-   "sha256": "0g5ja8ra6kyfpvkavy9diiwjasc4v2z80yi98kahi5nckfp90kvc"
+   "commit": "948ee25878c509d0f9ba8715b209eae79143b76e",
+   "sha256": "0lgp64pgblidm4jyr3wlv5xq2x81znzi0xvqm8h0f8af9jzl2b38"
   }
  },
  {
@@ -69680,8 +70455,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "7b13b03c995e13ad86e499d40ec49c4dc281f889",
-   "sha256": "1fysnjbh0dai1bzx4122fp4qhbyn82m8hh3smd0xhwphjwrbnl57"
+   "commit": "616fbdd3696f99d85660ad57ebbb0c44d6c7f426",
+   "sha256": "10raq8p881zzz7si3wfpcgdnwyl8y7y9rgw28akyigjyq8knl6kf"
   },
   "stable": {
    "version": [
@@ -69874,8 +70649,8 @@
     20181002,
     1617
    ],
-   "commit": "ffa40235b7dabb6c6c165f64f32a963cde8031f0",
-   "sha256": "0ximk0aan7jqn5x7fk4pj35bxhi6zaspvyxrmac9kxaiz8znwffr"
+   "commit": "223723d9ceeb2878b884e83abb8ca74ad2e42081",
+   "sha256": "1sl7kfg5w73cw9mv4x1m497dg27h42zgx2ywl4s8fmx2k9f2pq1q"
   }
  },
  {
@@ -70482,11 +71257,11 @@
   "repo": "rolandwalker/nav-flash",
   "unstable": {
    "version": [
-    20191204,
-    1427
+    20210510,
+    2035
    ],
-   "commit": "dbb91216637e0a1e8bfd59aa883c75d45db70daf",
-   "sha256": "0f8dsxgk1a994clwkii9hv2ibvkf38kbvgd4sp3w1sf4vy12z5n5"
+   "commit": "d76314802273153c2c38156250d75f95ca352482",
+   "sha256": "006ghb4xrpp82wlshqmpsj0yh5vq8il6wl5v8f1cyy1vd21yl285"
   },
   "stable": {
    "version": [
@@ -70860,6 +71635,20 @@
    ],
    "commit": "a968a923aad07ab15fb35deb79ac95581a427b4c",
    "sha256": "1mb55bbsb32gxms488pjw9fsqiic2qfmwkhm3pwcgy194723vcaa"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "company",
+    "f",
+    "markdown-mode",
+    "s"
+   ],
+   "commit": "3f86d26fb2006e82c673a5bf122594820a4842d8",
+   "sha256": "0xsljyirv7iwfclxzlj8h274pps02ni3bdwwlpjcmffz8v1fh3l5"
   }
  },
  {
@@ -71117,8 +71906,8 @@
     20210318,
     1654
    ],
-   "commit": "a4d9d69442c9edac3f2cacabd2a7401dbefe7ff3",
-   "sha256": "1h828cxjacfqlhm719w2kwh91i0r1lai6wswpp7wp21wvvp28v5r"
+   "commit": "7e9ad5a617a26641988445503e235c68fa21b611",
+   "sha256": "1wy06kphgljlcnl55qx5g8hzcv9bnfrrp22pfsxpyawlrmmgxp1j"
   }
  },
  {
@@ -71132,8 +71921,8 @@
     20181024,
     1439
    ],
-   "commit": "ce700488e01af33bc478bc986e261e306180b993",
-   "sha256": "0xraqmi9cx8z2wdwk2d8z9yr0b0csx7xwv012k531zqmhk81srpq"
+   "commit": "8fa4d05fea5140f80ff5f4629d19c6ce0d6f5cca",
+   "sha256": "0dn53fjq4dl8szpjqxn91md0xvr4sa458j1p0w8vgskc0iibzn4c"
   },
   "stable": {
    "version": [
@@ -71231,11 +72020,11 @@
   "repo": "NixOS/nix-mode",
   "unstable": {
    "version": [
-    20210124,
-    204
+    20210523,
+    326
    ],
-   "commit": "0023fc5b100ec0c939ffe699d1a7d1afcf1f417a",
-   "sha256": "1fjf16dah95i3vlxk63rlixskgq18kn69fyg6dgpiw7pm98kjviy"
+   "commit": "e4844f7a711c8d7dceb82b6b841a1e8485e12586",
+   "sha256": "0g05qa926xkayd79n2zi9ypd4m5245jjxwv2vp4hqn2cl76pnpak"
   },
   "stable": {
    "version": [
@@ -71248,6 +72037,21 @@
   }
  },
  {
+  "ename": "nix-modeline",
+  "commit": "6257a28862614c40db5ca933338e69faf7999eab",
+  "sha256": "0c3hr7l3d7qz83hgf3d4i171aya36qmfyvc5qzq7x0qdhiwavjpz",
+  "fetcher": "github",
+  "repo": "ocelot-project/nix-modeline",
+  "unstable": {
+   "version": [
+    20210405,
+    742
+   ],
+   "commit": "ecda866b960321bb82deac26af45918e172ef0ba",
+   "sha256": "1yq1lyg4ix45n4cbqml36grmk6v1ici6dpdvr5yy56lv2zxbjrc4"
+  }
+ },
+ {
   "ename": "nix-sandbox",
   "commit": "66be755a6566e8c0cfb5aafa50de29b434023c7a",
   "sha256": "13zr0jbc6if2wvyiplay2gkd5548imfm38x1qy1dw6m2vhbzwp0k",
@@ -71388,26 +72192,6 @@
   }
  },
  {
-  "ename": "nm",
-  "commit": "cdad6565e83dd79db538d3b6a45e932864246da2",
-  "sha256": "004rjbrkc7jalbd8ih170sy97w2g16k3whqrqwywh09pzrzb05kw",
-  "fetcher": "github",
-  "repo": "tjim/nevermore",
-  "unstable": {
-   "version": [
-    20151110,
-    1910
-   ],
-   "deps": [
-    "company",
-    "notmuch",
-    "peg"
-   ],
-   "commit": "5a3f29174b3a4b2b2e7a700a862f3b16a942687e",
-   "sha256": "1skbjmyikzyiic470sngskggs05r35m8vzm69wbmrjapczginnak"
-  }
- },
- {
   "ename": "nndiscourse",
   "commit": "1d6a236cd3ff51f2d4cfca114b2791c8ac7411e8",
   "sha256": "03kfb8c7knnd1n5sxxpldmscbwi5lrnsyh6w2ji4pvaq5xhmrlxb",
@@ -71528,26 +72312,26 @@
   "repo": "emacscollective/no-littering",
   "unstable": {
    "version": [
-    20210124,
-    1559
+    20210605,
+    1753
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "57357e15643158b4e0d9b3b4f70a82f5fc73178a",
-   "sha256": "1kbbbx1agzcxc5n1b6cavdx3wjxz6mgi9rafja8mk8cyaaiz0rkd"
+   "commit": "a6c8e0575766eb573a7add103836d578bd205962",
+   "sha256": "1r8rarcp0q0rl19kc6q7lll0djkvf3iw17rrsjswsq3z9fyq8iyr"
   },
   "stable": {
    "version": [
     1,
     2,
-    1
+    2
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "96ed5b8ecad8bcdcd212aacd9957276be3cf128e",
-   "sha256": "00chkzpjcdll907vpzfzmf9p3jprisnr8i0h1x5gixidwbfc2whi"
+   "commit": "57357e15643158b4e0d9b3b4f70a82f5fc73178a",
+   "sha256": "1kbbbx1agzcxc5n1b6cavdx3wjxz6mgi9rafja8mk8cyaaiz0rkd"
   }
  },
  {
@@ -71573,16 +72357,15 @@
   "repo": "thomp/noaa",
   "unstable": {
    "version": [
-    20190202,
-    1634
+    20210606,
+    2050
    ],
    "deps": [
-    "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "ebc6a4a1cc56c01d2bb882e4a40934a6a1f4e9ca",
-   "sha256": "04zhhz8v6bx627g1vhvd0s8bl5g3d6a1mfgf7pb13627npsvbrdx"
+   "commit": "e2a4870fd5f8e37956d9317b74317d99f17b87ad",
+   "sha256": "1djlfvnmzcjva1s4pjhr4hhmqmd30mm48933lpgy3pnwp7gq910x"
   }
  },
  {
@@ -71834,20 +72617,20 @@
   "url": "https://git.notmuchmail.org/git/notmuch",
   "unstable": {
    "version": [
-    20210205,
-    1412
+    20210605,
+    1839
    ],
-   "commit": "1459217e17e94277495c5c644b5a4ca1651c9452",
-   "sha256": "1p1g816ansbq388pqclckcjs0cgl38p0gc77rrgmab3mccdvib2r"
+   "commit": "6f0f83660e222cfdd05b05ad134763a7ab26f097",
+   "sha256": "0rs37inh95c1r91mjjwf1kssmxq8mliblzvdjypijps13fxk7m60"
   },
   "stable": {
    "version": [
     0,
-    31,
-    4
+    32,
+    1
    ],
-   "commit": "3a3208bb7b8bfca1c0bcaa5b45b6ef71aa768612",
-   "sha256": "04q9zwy6mpck82zk70xnx2knh2jmqhf676703kjw0fbvdrzw9qik"
+   "commit": "b580009e2bc69efb019983bf2f7dc5052c19545a",
+   "sha256": "06r0hdz8mxnzag74md62a9m6c2zm0fxn45n4n1c26j5cmrys7j16"
   }
  },
  {
@@ -71917,26 +72700,26 @@
   "url": "https://git.sr.ht/~tarsius/notmuch-maildir",
   "unstable": {
    "version": [
-    20201028,
-    1330
+    20210416,
+    1043
    ],
    "deps": [
     "notmuch"
    ],
-   "commit": "9f3e8bbce4c8c6cd80fb71b92d315d4f3334b450",
-   "sha256": "1rrd3ymc7k8irq1w4496h4whks7lnfam7ibfwgcra074ligfrs4p"
+   "commit": "e34c470521e83c3100f0d6eb9e7402ae35e19321",
+   "sha256": "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
     "notmuch"
    ],
-   "commit": "8c641d9688f20262c9dac59901aaecd2a21525d7",
-   "sha256": "1nh7vkxhwb2cmm8g7gxh3rc6lcfqlhsbf82vi3lsbdq008p1b3kh"
+   "commit": "e34c470521e83c3100f0d6eb9e7402ae35e19321",
+   "sha256": "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"
   }
  },
  {
@@ -71961,14 +72744,14 @@
    "version": [
     0,
     3,
-    3
+    4
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "0ece7ccbf79c074a3e4fbad1d1fa06647093f8e4",
-   "sha256": "116klnjyggwfwvs9nqhpv97m00k63q6lg41ph41kywsqkfy42dlk"
+   "commit": "b3c7cc28e95fe25ce7b443e5f49e2e45360944a3",
+   "sha256": "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"
   }
  },
  {
@@ -71979,11 +72762,11 @@
   "repo": "muirmanders/emacs-nova-theme",
   "unstable": {
    "version": [
-    20200826,
-    1803
+    20210512,
+    1802
    ],
-   "commit": "279e165171558930f56d8d5cfc83e1bb6560e452",
-   "sha256": "0rwqnqkbasgp80cgsz0pp1gbg2w7803lh7z02565p193mrvfwr3b"
+   "commit": "1498f756a4c1c9ea9740cd3208f74d071283b930",
+   "sha256": "0jbk5wwv5dfcp4y19azl3jjcjlzr1547w1g1grq6kwpc69r5x2bf"
   }
  },
  {
@@ -72018,15 +72801,15 @@
   "repo": "shaneikennedy/npm.el",
   "unstable": {
    "version": [
-    20200812,
-    1850
+    20210601,
+    1122
    ],
    "deps": [
     "jest",
     "transient"
    ],
-   "commit": "26d5cf79dfd1a2a74a66c44de129483d26354345",
-   "sha256": "0akjjb5xqpzg784qi6hbjfjm335mixqszzrxwz69ggl50iy9s6rk"
+   "commit": "d14d654c025d8f75f678503c98cd8682e69341cd",
+   "sha256": "0a54s7l01z5s5vasysxfysnzc2smn6r5pq01a6a3vqyaq3hz4khi"
   },
   "stable": {
    "version": [
@@ -72131,6 +72914,18 @@
    ],
    "commit": "a5508d9958c2148c04ec32d7b3a9f72423e4b0aa",
    "sha256": "1d1snvxbdv0mh48jmi6dx0yr4hmblcq1aajxb1z56714702ycdgj"
+  },
+  "stable": {
+   "version": [
+    0,
+    9,
+    0
+   ],
+   "deps": [
+    "org-roam"
+   ],
+   "commit": "c150603a25445d65b7b08d658793a6019fd763ea",
+   "sha256": "0qip0vhyvif5az7zph1m41gwamz84v01ay9qzicydzbizhzp4n5i"
   }
  },
  {
@@ -72326,28 +73121,27 @@
   "repo": "douglasdavis/numpydoc.el",
   "unstable": {
    "version": [
-    20210305,
-    2006
+    20210523,
+    1746
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "ddd7d54fc66ace3a56ff839ccd1993e2f40a7412",
-   "sha256": "0zbqnraynz25gj3ca1iqvn36xkgh8x24hzk3pm1c6ga395xpq0ki"
+   "commit": "dcbc06429084e209f081a8c6318b46c1c9ff7309",
+   "sha256": "0bggm5ssxpj49km8q8z9hj351garl1xydz1dya7r0yvz12y6wn5g"
   },
   "stable": {
    "version": [
     0,
-    2,
-    0
+    4
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "1549f362fda96b75760f20cee9b471362823ef4e",
-   "sha256": "1d5ff42fifssb38qvmhr8p6rvgak7z1mjhandirla05bjb4cramp"
+   "commit": "b8efad7723a0c1d5738d74c7ce56ea962726a74f",
+   "sha256": "11y73fwn4ca6pll5vb1p04l08z48kj2ldks3qavqj4pamdcm698d"
   }
  },
  {
@@ -72531,16 +73325,16 @@
   "repo": "astahlman/ob-async",
   "unstable": {
    "version": [
-    20200921,
-    205
+    20210428,
+    2052
    ],
    "deps": [
     "async",
     "dash",
     "org"
    ],
-   "commit": "de1cd6c93242a4cb8773bbe115b7be3d4dd6b97e",
-   "sha256": "12n6fvjiwkf02aypvj5zrbjrxhz2p0rcq2k3mfz5ravyarpvrybp"
+   "commit": "9aac486073f5c356ada20e716571be33a350a982",
+   "sha256": "0k0jcha7cckj8dc2cc1a6m2yhagsl5bmlnr3p8x3g8ij1axk533h"
   },
   "stable": {
    "version": [
@@ -72583,11 +73377,11 @@
   "repo": "corpix/ob-blockdiag.el",
   "unstable": {
    "version": [
-    20190720,
-    1858
+    20210412,
+    1541
    ],
-   "commit": "272fafcf3bc37f9de41b11beb6a33e0dbf0a1909",
-   "sha256": "0gi7vnh5fchbjb7hp7yi08z2vqkmhjrg64ssir358qxqambxvrxb"
+   "commit": "c3794bf7bdb8fdb3db90db41619dda4e7d3dd7b9",
+   "sha256": "14lw5y8djl9ff71layshz4rrmknp4kisv9lak26d9lh1l2z69fi6"
   },
   "stable": {
    "version": [
@@ -72858,28 +73652,28 @@
   "repo": "frederic-santos/ob-ess-julia",
   "unstable": {
    "version": [
-    20201109,
-    911
+    20210414,
+    1444
    ],
    "deps": [
     "ess",
     "julia-mode"
    ],
-   "commit": "b97ebf19c3d68ff946584e78ab7943f8a691ebe5",
-   "sha256": "1g9p3i6iwhgh6wj1k326lswms59nx4n1dyb7rr1qia1d0y3k1zym"
+   "commit": "147e9e7fe55c41dd77171417e92af40db3530b84",
+   "sha256": "00wplflc4pp0ffhnkya19cqm3ihz8mybfj2ywk3ii2d9x08kjnp3"
   },
   "stable": {
    "version": [
     1,
     0,
-    0
+    3
    ],
    "deps": [
     "ess",
     "julia-mode"
    ],
-   "commit": "337df3eefd85c01020fe08eae3ddcf3ec3e4ac2d",
-   "sha256": "0pk4b6zg08nacds129frk3qwn0mlm4sg03gihyn42fd8iq16mjzf"
+   "commit": "147e9e7fe55c41dd77171417e92af40db3530b84",
+   "sha256": "00wplflc4pp0ffhnkya19cqm3ihz8mybfj2ywk3ii2d9x08kjnp3"
   }
  },
  {
@@ -73031,6 +73825,35 @@
   }
  },
  {
+  "ename": "ob-julia-vterm",
+  "commit": "6e5f9703d8d4f9e5272db5be2c2bd89dfd27f32a",
+  "sha256": "0bkjqln8pi6j0lq5ch68v2r2rb2zbdch3g63kqjwskadgsypgfpj",
+  "fetcher": "github",
+  "repo": "shg/ob-julia-vterm.el",
+  "unstable": {
+   "version": [
+    20210418,
+    2306
+   ],
+   "deps": [
+    "julia-vterm"
+   ],
+   "commit": "3e7ff901687c320869c5e17e3273185af68e8cd6",
+   "sha256": "0i155p3k2xf0p00xazqjw4llylb13svgad9a9m6as6lcvrvc0zsp"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "julia-vterm"
+   ],
+   "commit": "5893d75cdb9e687b98b99b3675165f4edf0083a6",
+   "sha256": "12ya7dn7fd0szm6pi68f7h4cyb5cy56cfs43nl9f4v8v2qvlyh5y"
+  }
+ },
+ {
   "ename": "ob-kotlin",
   "commit": "7aa74d349eb55aafddfc4327b6160ae2da80d689",
   "sha256": "19g4s9dnipg9aa360mp0affmnslm6h7byg595rnaz6rz25a3qdpx",
@@ -73173,14 +73996,14 @@
   "repo": "Lompik/ob-nim",
   "unstable": {
    "version": [
-    20170809,
-    1830
+    20210601,
+    1807
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "bf1642cb93f0a898804dc13fd9408d2964403bd2",
-   "sha256": "1xgi863wn1pvlsajmldd706k1dk7d7pa6b9nbgsh34kzchvhd75s"
+   "commit": "6fd060a3ecd38be37e4ec2261cd65760a3c35a91",
+   "sha256": "12sinii7i917v1f3czvmc0rrwk3ksr1ls7wv4yvv9f8jdkzr0msm"
   }
  },
  {
@@ -73593,20 +74416,20 @@
   "repo": "ocaml-ppx/ocamlformat",
   "unstable": {
    "version": [
-    20201204,
-    945
+    20210601,
+    901
    ],
-   "commit": "fd078c3a37cb679dfffe890995a4e6a1f63ece15",
-   "sha256": "0vq3nnjk76i947wjmfddbr1fs6m8dkddlrqcdsvsf2xw2xfpsfvs"
+   "commit": "be14af363e9338e86173c2d96732f59b3c76e73e",
+   "sha256": "10q2xd4mqdi9h6dbjfx5081l8sc025rgkxsz9hwm93yrb5xw1rwd"
   },
   "stable": {
    "version": [
     0,
-    17,
+    18,
     0
    ],
-   "commit": "bfd6bbe95c614d1d982244c4fd0ba494275d2245",
-   "sha256": "0vy69sjl184czpwbhcbgzyh8kgj6n3jq8ckllcbwic859aq8lqvn"
+   "commit": "3697f0f92854a681fd1156fe4f6fb97d060da1d8",
+   "sha256": "0n6363km8xr81pvyk453n6h2mb0256c5yxw3p1li4dn83f3lwxr1"
   }
  },
  {
@@ -73790,30 +74613,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20210405,
-    820
+    20210521,
+    1311
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "1150feb761047e241af1c5e67333665e729a4a63",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 298 ms\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 617 ms\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 1257 ms\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 2660 ms\nerror: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503\n"
-   ]
+   "commit": "fe1feb913bf69b1e854053e3f07026c14c6c91dc",
+   "sha256": "0w4x18srwhznd4xicr2sk7m3lhzgw6pyza7skar5i4n7y30q38xp"
   },
   "stable": {
    "version": [
     3,
-    17,
-    0
+    20,
+    1
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "e880c4f65ad20e22ab845fc2918ca74cc37bf39a",
-   "sha256": "197fn08xhk6cbvi4hqf51v40x0ki5n8h1896g3bpl4fasfy5zicp"
+   "commit": "fe1feb913bf69b1e854053e3f07026c14c6c91dc",
+   "sha256": "0w4x18srwhznd4xicr2sk7m3lhzgw6pyza7skar5i4n7y30q38xp"
   }
  },
  {
@@ -73918,20 +74737,20 @@
   "repo": "rnkn/olivetti",
   "unstable": {
    "version": [
-    20210202,
-    709
+    20210510,
+    100
    ],
-   "commit": "61d26644fd9dd2d45b80b9b82f5f930ed17530d0",
-   "sha256": "1nvnahwjqs9i2cinkpwg689lg134wp7l6f9f1k1jwn0dh1amqmvp"
+   "commit": "4a0719021625ece4def8f18d28f86a681bee7d28",
+   "sha256": "1qggyq7yxg25k9iyyx5bsv8zmh1z14gdybc1d4qkyc905395jn0l"
   },
   "stable": {
    "version": [
     1,
     11,
-    3
+    4
    ],
-   "commit": "a2dbd3dc4e7000fec29febbd089cd4558a7322b9",
-   "sha256": "0zcph7l0hxisbvsyzb1dw3paq5a5sjp5lrq5nq9zggvgc6zvx7sh"
+   "commit": "6902410cd857385a3c1aa20ba391901a78d2740b",
+   "sha256": "1pw1zc0pdwwi9dv8fypfxgn6xbfvm88qzhss880lspialff1wcxn"
   }
  },
  {
@@ -74371,6 +75190,29 @@
   }
  },
  {
+  "ename": "openfoam",
+  "commit": "f184e09d370d563852da2028b9c2546d6fc162c0",
+  "sha256": "09i02kqgw3mqvwzj4p23p66rpy30ziz4gxczs8p47l6ilw5j69rz",
+  "fetcher": "github",
+  "repo": "ralph-schleicher/emacs-openfoam",
+  "unstable": {
+   "version": [
+    20210508,
+    1903
+   ],
+   "commit": "1623aa8d9f72128cc007f84b108d2f6c6205c330",
+   "sha256": "14s0sfsy6gif6rfs39ryzwqkp150m9jbz2mna5aj7hiny46gjskf"
+  },
+  "stable": {
+   "version": [
+    0,
+    13
+   ],
+   "commit": "7808319de0326aa293636df6c213467c279ff1ea",
+   "sha256": "14s0sfsy6gif6rfs39ryzwqkp150m9jbz2mna5aj7hiny46gjskf"
+  }
+ },
+ {
   "ename": "opensource",
   "commit": "ec4255a403e912a14a7013ea96f554d3588dfc30",
   "sha256": "17gi20s2vi7m75qqaff907x1g8ja5ny90klldpqmj258m2j6a6my",
@@ -74486,19 +75328,19 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20210407,
-    1548
+    20210603,
+    1335
    ],
-   "commit": "87ab7e47e343285f7afd42779c78551332b8fd84",
-   "sha256": "117lwgw5z980pay656pmgyfqdpvi0cxj69x3c7dcmz451n57ap9j"
+   "commit": "e85084e733d6eb50893974fc5fd569b944a5010c",
+   "sha256": "1lmjmp0iwp8n9nrqvygav7y2fxxwqpv4kk2wy2gg4bi056arbx5a"
   },
   "stable": {
    "version": [
     0,
-    5
+    6
    ],
-   "commit": "c6432b086f9c8ccb50b3656ba5895750f2a15541",
-   "sha256": "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c"
+   "commit": "d13f47df7327aa3d91434ec160567658ec5f81c2",
+   "sha256": "1javw5n3h3iv7f433b2ack49aka1jdpp8yxnaahzg5qbvr80hnay"
   }
  },
  {
@@ -74509,26 +75351,20 @@
   "repo": "zonuexe/ordinal.el",
   "unstable": {
    "version": [
-    20190104,
-    1421
-   ],
-   "deps": [
-    "cl-lib"
+    20210519,
+    1442
    ],
-   "commit": "75af95abbac3e30c4dd804411cb3e867c741a747",
-   "sha256": "04zhw4a3l8a8sz4w5l04hjr63hdrq9icjcc2mn893rixrw1i7l9m"
+   "commit": "a7f378306290b6807fb6b87cee3ef79b31cec711",
+   "sha256": "1na9xn3cwdxmhfzrgv6n103cx9zjnmd0y874pvwnmpc67rq9yk2p"
   },
   "stable": {
    "version": [
+    1,
     0,
-    0,
-    1
-   ],
-   "deps": [
-    "cl-lib"
+    0
    ],
-   "commit": "75af95abbac3e30c4dd804411cb3e867c741a747",
-   "sha256": "04zhw4a3l8a8sz4w5l04hjr63hdrq9icjcc2mn893rixrw1i7l9m"
+   "commit": "a7f378306290b6807fb6b87cee3ef79b31cec711",
+   "sha256": "1na9xn3cwdxmhfzrgv6n103cx9zjnmd0y874pvwnmpc67rq9yk2p"
   }
  },
  {
@@ -74655,15 +75491,26 @@
   "repo": "eyeinsky/org-anki",
   "unstable": {
    "version": [
-    20201220,
-    2144
+    20210603,
+    1352
    ],
    "deps": [
-    "ox-slimhtml",
     "request"
    ],
-   "commit": "efa9e3aa2d768c00440f745192aba6672b28d086",
-   "sha256": "009n23gcgyfylp4q6igj67r606syq2r43s86g12xkl3vmc14929b"
+   "commit": "03c1ca90a7f2583074f020619c7cb92a783fb375",
+   "sha256": "1pwgs9xm6i0cqhrwpl60y3xbd0k64nr48kfa83x3yk9x38i6ddp0"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    2
+   ],
+   "deps": [
+    "request"
+   ],
+   "commit": "03c1ca90a7f2583074f020619c7cb92a783fb375",
+   "sha256": "1pwgs9xm6i0cqhrwpl60y3xbd0k64nr48kfa83x3yk9x38i6ddp0"
   }
  },
  {
@@ -74674,14 +75521,14 @@
   "repo": "awth13/org-appear",
   "unstable": {
    "version": [
-    20210401,
-    2114
+    20210605,
+    904
    ],
    "deps": [
     "org"
    ],
-   "commit": "2380562fbec8a17ec193891da755a502a2ccd252",
-   "sha256": "14b1x446zwdsqy8lvmz3iw1byaq1rn92v19ib5zyk18g9lf9ma7i"
+   "commit": "cf87546d6458d36492a89661a1e097e5596aa26a",
+   "sha256": "18p8s0syqhqpk21ylbk8np3srknhi4ckxfxn7i4jkscsy8282lcb"
   }
  },
  {
@@ -74883,8 +75730,8 @@
   "stable": {
    "version": [
     0,
-    2,
-    21
+    3,
+    0
    ],
    "deps": [
     "dash",
@@ -74894,8 +75741,8 @@
     "org",
     "s"
    ],
-   "commit": "a88d39e364757594c6b3830cc36f342ee0d1b8ab",
-   "sha256": "1axzhb9k1i8l9rksk14bb04v4q4mx498f5psnalxwvn0563ngs5r"
+   "commit": "9f4ec4a981bfc5eebff993c3ad49a4bed26aebd1",
+   "sha256": "1sgckvpjdaig9r2clcvs6ckgf2kx7amikkpq26y30jbnfnbskf0v"
   }
  },
  {
@@ -74906,14 +75753,14 @@
   "repo": "Kungsgeten/org-brain",
   "unstable": {
    "version": [
-    20210108,
-    1512
+    20210515,
+    1814
    ],
    "deps": [
     "org"
    ],
-   "commit": "e9b9b3e5bb3c63cecb1367df49205c346d9c050a",
-   "sha256": "0j1f75p40p033acnkds2mxhqx5wilmlhak8cgn196x6y8j1ra7d8"
+   "commit": "a9ca42cb8d1325a4e928716384a0bdb53ea2ad41",
+   "sha256": "0gp00wbp56g58fz6x4w70lhhwyy3ffxj8hhf5qfrz1wg264n23jy"
   }
  },
  {
@@ -75011,14 +75858,14 @@
   "repo": "Chobbes/org-chef",
   "unstable": {
    "version": [
-    20200729,
-    2021
+    20210508,
+    110
    ],
    "deps": [
     "org"
    ],
-   "commit": "5b461ed7d458cdcbff0af5013fbdbe88cbfb13a4",
-   "sha256": "171ybf5n6a6ab3ycghc2z016qxbgqyj13kkcdsfqy0691wx7dcqb"
+   "commit": "a97232b4706869ecae16a1352487a99bc3cf97af",
+   "sha256": "1j4zjp0w7f17y0vddi39fj13iga0pfh5bgi66lwwghb18w0isgng"
   }
  },
  {
@@ -75337,16 +76184,16 @@
   "repo": "phillord/org-drill",
   "unstable": {
    "version": [
-    20200412,
-    1812
+    20210427,
+    2003
    ],
    "deps": [
     "org",
     "persist",
     "seq"
    ],
-   "commit": "35c1ce349949cc213f3076799211210f49431850",
-   "sha256": "06hc98z4sml7jrwm5zvbsw5x6q5jpa335almzkh6h85g1p8syfsn"
+   "commit": "bf8fe812d44a3ce3e84361fb39b8ef28ca10fd0c",
+   "sha256": "079x6rcz50rpw0vdq5q2kjpixz95k9f3j9dwk91r5111vvr428w3"
   },
   "stable": {
    "version": [
@@ -75456,14 +76303,14 @@
   "repo": "eschulte/org-ehtml",
   "unstable": {
    "version": [
-    20150506,
-    2358
+    20210428,
+    1547
    ],
    "deps": [
     "web-server"
    ],
-   "commit": "9df85de1a0fe1e7b2d6c000777c1a0c0217f92d0",
-   "sha256": "0kqvwqmwnwg2h7r38fpjg6qlkcj9v8011df8nmsgs1w1mfdvnjsq"
+   "commit": "b4f97edf4150870b84d7ee8508088c0d375eaa83",
+   "sha256": "124fq9k7qmjvn5hp9i2b4xmrm9z18zhbc9j1rv68wpdqf0kqxkcd"
   }
  },
  {
@@ -75580,11 +76427,11 @@
   "repo": "harrybournis/org-fancy-priorities",
   "unstable": {
    "version": [
-    20180328,
-    2331
+    20210427,
+    900
    ],
-   "commit": "819bb993b71e7253cefef7047306ab4e0f9d0a86",
-   "sha256": "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"
+   "commit": "44532ab8c25eb2c0028eecca7acd9e8ea8e2ff30",
+   "sha256": "1cvlyq5p505vx9gcqgvhj7qan1qhq859c2fv7a44kfs0093cb9fz"
   }
  },
  {
@@ -75595,26 +76442,41 @@
   "repo": "io12/org-fragtog",
   "unstable": {
    "version": [
-    20201231,
-    505
+    20210514,
+    1608
    ],
    "deps": [
     "org"
    ],
-   "commit": "0151cabc7aa9f244f82e682b87713b344d780c23",
-   "sha256": "1szkx3n9gk6799rxv0jb3096pn2ssz82536x9a98xqwbimy4kvn6"
+   "commit": "bed49744ed27ff205539a14fd51e2977852c49e5",
+   "sha256": "0cw8903nw0mrn9kppwlypsb6h9m54zrb6y969yj0gnkza6gqy36c"
   },
   "stable": {
    "version": [
     0,
     3,
-    1
+    2
    ],
    "deps": [
     "org"
    ],
-   "commit": "0151cabc7aa9f244f82e682b87713b344d780c23",
-   "sha256": "1szkx3n9gk6799rxv0jb3096pn2ssz82536x9a98xqwbimy4kvn6"
+   "commit": "bed49744ed27ff205539a14fd51e2977852c49e5",
+   "sha256": "0cw8903nw0mrn9kppwlypsb6h9m54zrb6y969yj0gnkza6gqy36c"
+  }
+ },
+ {
+  "ename": "org-gamedb",
+  "commit": "ca995957e201a1df81839ac326807d789f05a5e1",
+  "sha256": "0r6m78spjfk8vpgki747al3klms1g9ql9b7spvirlqykaw9nmrb6",
+  "fetcher": "github",
+  "repo": "repelliuss/org-gamedb",
+  "unstable": {
+   "version": [
+    20210525,
+    2338
+   ],
+   "commit": "f283b6f6a7e8ad090405be57202caa3d3c424447",
+   "sha256": "1sxjxh4yrb7zf4k17sa2wyxsf70krl3mg1jp6qs8qn37gyn2x3d4"
   }
  },
  {
@@ -75625,8 +76487,8 @@
   "repo": "kidd/org-gcal.el",
   "unstable": {
    "version": [
-    20210407,
-    57
+    20210421,
+    2203
    ],
    "deps": [
     "alert",
@@ -75634,8 +76496,8 @@
     "request",
     "request-deferred"
    ],
-   "commit": "161465b9448a6413466f1dfe77844f5591fbdeae",
-   "sha256": "0pwi537cg1yb76bwx2sn1w8vkjgsjq38f7lbqvd159g9rbng7v21"
+   "commit": "4c2616a4f85adc77b91aa054bb10e76b06f706d5",
+   "sha256": "0isw9inxbdrf5rwqhjasbbz8av9sn56nwz7xxksr69nk5mv7zm17"
   },
   "stable": {
    "version": [
@@ -75752,8 +76614,8 @@
     "org-agenda-property",
     "org-edna"
    ],
-   "commit": "8d7acda24a00ef94fd14a4e2ebe2606009eb46e9",
-   "sha256": "1h9gfy2assjl2l9dfyp40ypkdm541cisx84vnapjnr6i1bxsvdck"
+   "commit": "034edc545335ecc0da20b4f1bb4aa9f048454afe",
+   "sha256": "0yhnrz7kcq81842sv7zf58fqc6wiy4ckcjyqy8m6bn2z6rwpj655"
   },
   "stable": {
    "version": [
@@ -75779,28 +76641,28 @@
   "repo": "marcIhm/org-id-cleanup",
   "unstable": {
    "version": [
-    20210320,
-    1023
+    20210326,
+    1711
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "0877bd57f95ad96a342505a6ecef0c15977f6bd6",
-   "sha256": "02q343sznbw1ma9zcxnpa7sy37s85ph9phpg479pfz5c51kji09h"
+   "commit": "2cb87624238281b438cda67ed375c56403524489",
+   "sha256": "1xmbrrp1zyvij18v3rqmini6w9i6v7dl4fp103ph6wznav8x0jbl"
   },
   "stable": {
    "version": [
     1,
-    5,
-    7
+    6,
+    1
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "0877bd57f95ad96a342505a6ecef0c15977f6bd6",
-   "sha256": "02q343sznbw1ma9zcxnpa7sy37s85ph9phpg479pfz5c51kji09h"
+   "commit": "2cb87624238281b438cda67ed375c56403524489",
+   "sha256": "1xmbrrp1zyvij18v3rqmini6w9i6v7dl4fp103ph6wznav8x0jbl"
   }
  },
  {
@@ -75835,30 +76697,30 @@
   "repo": "marcIhm/org-index",
   "unstable": {
    "version": [
-    20210320,
-    1013
+    20210602,
+    358
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "47dda7d3dce11e8ab9a3847f8c6a1cbb8345f861",
-   "sha256": "1s1y0xlin1yx716awzbq6lvzz5c3c5i9qvacgm006bypg8qlmz1a"
+   "commit": "40716a4cfd36304b4a16977020b1e82870faec15",
+   "sha256": "1wncx69rqlvx9pnr5mlwn9i00nrfhi1icxv0zpc7z2kzf03wn930"
   },
   "stable": {
    "version": [
     7,
-    1,
-    6
+    2,
+    1
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "47dda7d3dce11e8ab9a3847f8c6a1cbb8345f861",
-   "sha256": "1s1y0xlin1yx716awzbq6lvzz5c3c5i9qvacgm006bypg8qlmz1a"
+   "commit": "1ee39e4f8616199ad8e5cb6b2d6b410e75857ecd",
+   "sha256": "06mf8s68mw6fcdpvdddcvy2x8z6zyisfvgh4sdrpz2z5j03v7qd7"
   }
  },
  {
@@ -75875,8 +76737,8 @@
    "deps": [
     "org"
    ],
-   "commit": "f9a3321712626d2f43a8849203ceb089cf8233b1",
-   "sha256": "195bzlfqf91f7prv4xh1x1p5xnyygr0mzwqxbsw2apc0haaz6ajk"
+   "commit": "b2dfbf41efac55edacde8a8a6bd0275418de6454",
+   "sha256": "1gs62qjllsz23qbs9zq767c8xxvxwknl1x6r4ixx9090j7bsrhpd"
   },
   "stable": {
    "version": [
@@ -75918,16 +76780,16 @@
   "repo": "ahungry/org-jira",
   "unstable": {
    "version": [
-    20210330,
-    246
+    20210527,
+    1629
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "c8b2e592150c05ab53af8ee155ac169f58b963ee",
-   "sha256": "1rid2dl3r7p4c0sag9xcd74rj15pxapvrii286ilipkak6yhg2z2"
+   "commit": "a01f0453667f9baccf0b8a514e9c9f0a9fb9fb6e",
+   "sha256": "1gn2sflvcc4gvgci3m12d16mjrwxywrd8vvrs7s87k0cf7yl74vf"
   },
   "stable": {
    "version": [
@@ -75958,8 +76820,8 @@
    "deps": [
     "org"
    ],
-   "commit": "043bb9e26f75066dc1787cdc9265daca7a14dd4e",
-   "sha256": "0x4fvxdrllih2n643v3wgq0rl72dyhk11xqi2l1h718iaz4kqi5i"
+   "commit": "5f253a880e1919ef4b98f0d91f271a8b522eaae5",
+   "sha256": "1cirbb5x29qnf59qkcfsjw467xx02vl4f17iqd4qqxwaarwkyq30"
   },
   "stable": {
    "version": [
@@ -76149,14 +77011,14 @@
   "repo": "dfeich/org-listcruncher",
   "unstable": {
    "version": [
-    20210304,
-    1602
+    20210503,
+    802
    ],
    "deps": [
     "seq"
    ],
-   "commit": "b0269843f317b6715dbde8a4e955aac9c38cbdb6",
-   "sha256": "1ywwngjqfvppxbb0dghqzr0kg9dxyqidjgjrh4ncc0zc9iamcx2w"
+   "commit": "50c06445a837c6677da035f72dbe0f973d9e10a7",
+   "sha256": "1nw5wd781a5nh5csvsr6ycjpji66k8vkvw8z1sfa0p8xsbln9rk9"
   }
  },
  {
@@ -76264,15 +77126,15 @@
    "version": [
     5,
     6,
-    1
+    2
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "4fe1f194a8eba00858b78d611ad8a7f14392722d",
-   "sha256": "1p1k5zmc0dklbvnck0zhsxqmndask822ikaa40d1ik105w1vx3bz"
+   "commit": "5aeed6d0f7f878b20483975200df43b6fc7f32f9",
+   "sha256": "102lrlf25i30xbpszr1mh6mkxd6wwgbwg32dafccxm4dmj3v9hqq"
   }
  },
  {
@@ -76325,14 +77187,14 @@
   "repo": "jeremy-compostella/org-msg",
   "unstable": {
    "version": [
-    20210409,
-    1813
+    20210518,
+    2355
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "e57af9c057d97d14536cef08aca7a19bdf194830",
-   "sha256": "19m1y686jppl1j7ibigw1h6n518swgdcfgrk84r1nvd7x83vd8v0"
+   "commit": "4c92c627b6cfb234fd257b714a5dbfc72d7af8d2",
+   "sha256": "0mln6324jb8p77pkbiaflmdj8h9m9wvmabgadhi6kh2jp4dhijql"
   }
  },
  {
@@ -76954,14 +77816,14 @@
   "repo": "Fuco1/org-radiobutton",
   "unstable": {
    "version": [
-    20180612,
-    1028
+    20210519,
+    1225
    ],
    "deps": [
     "dash"
    ],
-   "commit": "4182aafbe5ae1bdfb0b07efa435bdba8bbd7199d",
-   "sha256": "0jm5ijs4pjzvlzpqk3k9qqcvaza2lmz2c0fcxf1g357v643bmaj4"
+   "commit": "4ba26bbd26102c45c234bc6ce9a8e9c655c6a0a2",
+   "sha256": "0zhf4yfs6a50b5lq4yp9cmm6sv1j94hak6c353df76nssg4vbil5"
   }
  },
  {
@@ -77022,32 +77884,28 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20210405,
-    1309
+    20210507,
+    1615
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "4d8a63cba537705f4ecf3f45838e3cfc83fa2369",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 327 ms\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 591 ms\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 1200 ms\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 2118 ms\nerror: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503\n"
-   ]
+   "commit": "4538c06fab9a7259aa1fb40e93a43dcfacef27c1",
+   "sha256": "1w6zvgfcyjqlxy4s13h7w66vv0fcid57s6vigzgnzi666w86fdyh"
   },
   "stable": {
    "version": [
     3,
-    7,
+    9,
     0
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "d404eb13d9e34354c081870ebdd69711937682b3",
-   "sha256": "1vzn0l8ig4rzh5h8j7kxn8kslqrij97qqv98fbnlwmrw4z87v8dr"
+   "commit": "4538c06fab9a7259aa1fb40e93a43dcfacef27c1",
+   "sha256": "1w6zvgfcyjqlxy4s13h7w66vv0fcid57s6vigzgnzi666w86fdyh"
   }
  },
  {
@@ -77158,8 +78016,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20210324,
-    1337
+    20210510,
+    1614
    ],
    "deps": [
     "bibtex-completion",
@@ -77174,8 +78032,8 @@
     "pdf-tools",
     "s"
    ],
-   "commit": "3ca9beb744621f007d932deb8a4197467012c23a",
-   "sha256": "1n262rsmil2n7dilf711gs8rciv8gd7wf3vadb0zcbkbn703jbk9"
+   "commit": "8aa2bb45268f660956151547533689d4ec30378d",
+   "sha256": "0ihjjmysldxx8n3q7mi06p5ydxknxy347c9lf3gnlgzcc776a49v"
   },
   "stable": {
    "version": [
@@ -77230,15 +78088,15 @@
   "repo": "akirak/org-reverse-datetree",
   "unstable": {
    "version": [
-    20201128,
-    706
+    20210531,
+    1929
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "be24274dd62cd3c586cbea99c8f73db251bf319d",
-   "sha256": "1kjydjj2bwrvvckxh1c31gk1h09j876jg7rbyv0jb0kzfim79d2j"
+   "commit": "e7a7109e4c34811d471bf685b710234564a556f6",
+   "sha256": "10p35q5l9racfqp92xcqard7n75gpqw6l5zjgbybswnkzvdjzd8c"
   },
   "stable": {
    "version": [
@@ -77301,8 +78159,8 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20210411,
-    650
+    20210513,
+    804
    ],
    "deps": [
     "dash",
@@ -77312,14 +78170,14 @@
     "org",
     "s"
    ],
-   "commit": "997ddcbf4b0373bb449d09f1db6cf5de6983de5e",
-   "sha256": "0dh325syjn1dkblydbdxqqy24pbyk4h3rcmr8506lycyz1xg2m2k"
+   "commit": "8ad141403065bebd5a72f0ef53cf5ef8f2034419",
+   "sha256": "126s444r0baylrmxw1z0lkbx7f40srk3wwk55li7is225qz2jlmb"
   },
   "stable": {
    "version": [
     1,
     2,
-    3
+    4
    ],
    "deps": [
     "dash",
@@ -77329,8 +78187,8 @@
     "org",
     "s"
    ],
-   "commit": "cc01cf346e2d832f78694320947e0788c92f49b9",
-   "sha256": "0n8c0yxqb62i39kn0d5x83s96vwc0nbg0sx5hplffnbkfbj88bba"
+   "commit": "9065f6a999b98d4b495e3d8fa1fa4424eddd25a8",
+   "sha256": "10jrnjq65lpg1x8d7lqc537yai9m6pdnfbzwr87fcyv6f8yii8xn"
   }
  },
  {
@@ -77341,29 +78199,31 @@
   "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20210330,
-    852
+    20210602,
+    2113
    ],
    "deps": [
     "bibtex-completion",
     "org-ref",
     "org-roam"
    ],
-   "commit": "8d80bf980776df6ead53e917eb482ec8e309a1d7",
-   "sha256": "1rricy4kxny78cvryrfxcjb656ryq3rgx4na5d5kks8xhdjsckwf"
+   "commit": "f7b5be2ce0b43dd4d842484fc0ec37fdc8526907",
+   "sha256": "1cqx2izzchwd6yi0gmskdb0kiqjwk2m7rgk074bzzq0dzbpl180j"
   },
   "stable": {
    "version": [
     0,
-    5,
-    0
+    6,
+    0,
+    -1
    ],
    "deps": [
     "bibtex-completion",
+    "org-ref",
     "org-roam"
    ],
-   "commit": "81b6fedf99996a78199067e61935964dea9389ee",
-   "sha256": "1xb7nskz73dfa2rgwmf4s3iq10f43zagggia3ddhx109wmy2m9a9"
+   "commit": "03b3a843fdbba428b29faa932661bc74fd66e29b",
+   "sha256": "17ds31cdq4prlknbjhhcjz17sim26yx8iws1scg4xcffxnb1s39r"
   }
  },
  {
@@ -77374,8 +78234,8 @@
   "repo": "org-roam/org-roam-server",
   "unstable": {
    "version": [
-    20210321,
-    1040
+    20210521,
+    1055
    ],
    "deps": [
     "dash",
@@ -77385,8 +78245,8 @@
     "s",
     "simple-httpd"
    ],
-   "commit": "2122a61e9e9be205355c7e2c1e4b65986d6985a5",
-   "sha256": "05fh2065hl17vqsph5kgraaq303q2j48aqvll2mdpl666rhdlws8"
+   "commit": "a0f82bf41e318d4ef606a26f54054262ed6c3441",
+   "sha256": "06j8wabbxay9h8ca4pbv5xgjygfzbb3kbk4icni3lrfj6izsp3i4"
   },
   "stable": {
    "version": [
@@ -77432,8 +78292,8 @@
   "repo": "tyler-dodge/org-runbook",
   "unstable": {
    "version": [
-    20210102,
-    1627
+    20210502,
+    1732
    ],
    "deps": [
     "dash",
@@ -77444,8 +78304,8 @@
     "s",
     "seq"
    ],
-   "commit": "a05dcf6b9674406a9d616b53b4f199a3f87b3f2a",
-   "sha256": "0bj91c8zz804zclhl5ay8k2sjw9pi9mrkrjcmcs2h36klcb1x4qn"
+   "commit": "3206b4ea40614ba87a1b12f66ad0f84354bcdafb",
+   "sha256": "0b2gs6hm8k25539m7hxbhh5jza37mdfv3z763r130fxj3b646v01"
   },
   "stable": {
    "version": [
@@ -77511,11 +78371,11 @@
   "repo": "lordnik22/org-shoplist",
   "unstable": {
    "version": [
-    20201003,
-    1235
+    20210514,
+    1041
    ],
-   "commit": "de2d0ba7a2177921b15468417f1de1b00e076895",
-   "sha256": "14l0212xy0mkp5w6xpl7h59idr7kjrimn67fzrdvxxbqwn7i9nyx"
+   "commit": "1c534662719222e315d970e2fa871d222f80ea87",
+   "sha256": "1m6a37bw60xjkqaffzk1kjpcy76i5dd17925hzz2fbbhlxkac67x"
   }
  },
  {
@@ -77537,8 +78397,8 @@
     "org-super-agenda",
     "s"
    ],
-   "commit": "67fe1b5c6c879e14d34c34eec2190e9719046b6c",
-   "sha256": "00danbc1w5wd3gj0sdas26ip3lyxcsapq9ly4kbaprrxbf187b56"
+   "commit": "1b37069e47d1ea4745eacdf2dec2bdad756ee235",
+   "sha256": "0sf406dz4mkpaqaql3z8xs6jcksxasa5j7xkk79a9xnbanaxhzaq"
   },
   "stable": {
    "version": [
@@ -77639,7 +78499,7 @@
    "version": [
     3,
     0,
-    0
+    2
    ],
    "deps": [
     "dash",
@@ -77647,8 +78507,8 @@
     "org-ml",
     "s"
    ],
-   "commit": "1cc854e814f86bc35f536563837a97a832a06122",
-   "sha256": "1wp3d3b1wdw8v5drwbrfxrbq8psf82bs9cwjin2psfgb4n1166dy"
+   "commit": "40c8870b2ab93dde33994f46c0531b3978e25fde",
+   "sha256": "05c1hgzq69lnw59x1w5bybrdhnyli8d9pzjczixklrrahmx4ig8k"
   }
  },
  {
@@ -77722,11 +78582,11 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20210329,
-    848
+    20210606,
+    1806
    ],
-   "commit": "c000cdff0cf3c10ac756bd7c5b5729965cfce876",
-   "sha256": "0vff4wh9vlkzix47kxqxabcl29glnxbmmpmppkp6cfk42zb6sw1g"
+   "commit": "0bd38b604405ba8e6ba00dd32ce4773eb02eb901",
+   "sha256": "1d9kdcdiz600swcy318hd56l751w2qyafdibnkzfkhjzw63c2hwh"
   },
   "stable": {
    "version": [
@@ -77947,15 +78807,15 @@
   "repo": "stardiviner/org-tag-beautify",
   "unstable": {
    "version": [
-    20210304,
-    1124
+    20210527,
+    1130
    ],
    "deps": [
     "all-the-icons",
     "org-pretty-tags"
    ],
-   "commit": "e655ced70140cbec8fe12f9207614ca2b3a6c37c",
-   "sha256": "0853avvi2qpr19ca6c9ix8ls7r2r5v5f38nzkr4lbindmmxl6kpv"
+   "commit": "20193bf9b07efba03fdd5ffb2852cd43fcd88051",
+   "sha256": "0diccvg4gx9djayihd1hp39q5n2s8cahck93s5r58vk0d4jlcyyk"
   }
  },
  {
@@ -78325,11 +79185,11 @@
   "repo": "cadadr/elisp",
   "unstable": {
    "version": [
-    20200919,
-    1348
+    20210414,
+    1844
    ],
-   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
-   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
+   "commit": "246120647e28a27506ca0894ba98e371086881fd",
+   "sha256": "15gqzj4h0w33w38i8ihl74iy7aqxlds97gm93r72z69pm2l1d7dm"
   }
  },
  {
@@ -78466,7 +79326,7 @@
   "stable": {
    "version": [
     2,
-    4,
+    5,
     4
    ],
    "deps": [
@@ -78508,8 +79368,8 @@
   "repo": "org2blog/org2blog",
   "unstable": {
    "version": [
-    20200817,
-    1842
+    20210422,
+    339
    ],
    "deps": [
     "htmlize",
@@ -78517,14 +79377,14 @@
     "metaweblog",
     "xml-rpc"
    ],
-   "commit": "c7f72a87952ed16323fce968462af897235f1719",
-   "sha256": "0v8zkzai5gfzng9dpkikwf60rvsr1148y5nb7hw65961xms855s4"
+   "commit": "543813e0acceb55653d876302a5d5741879fb717",
+   "sha256": "1w0pfz5dbhqglb5w3c2g4ww2c32nbsir8gqnsh69pa43h9q1msz1"
   },
   "stable": {
    "version": [
     1,
     1,
-    10
+    11
    ],
    "deps": [
     "htmlize",
@@ -78532,8 +79392,8 @@
     "metaweblog",
     "xml-rpc"
    ],
-   "commit": "19aa8a17428d6ee42f54e464c26eeab17a6478ab",
-   "sha256": "198ahgxji0kh6ynygrrdvllj9fwcqrnma4sd8msj2aq18xij9glr"
+   "commit": "c1b386f3522054f063f4ac60730397ed1f724478",
+   "sha256": "0d0s9hxjvv39n1rik894yh7d20aw120r6cadyp4hqw4n24j8cs5q"
   }
  },
  {
@@ -78757,28 +79617,28 @@
   "repo": "magit/orgit",
   "unstable": {
    "version": [
-    20210309,
-    1906
+    20210525,
+    1956
    ],
    "deps": [
     "magit",
     "org"
    ],
-   "commit": "609fd0ccfb5268704b5bc7d7ac1014d4960b9707",
-   "sha256": "00rmp5pbn7bn4mrfzlkh9dc5m80qw72bs5jxdss9sk38v1gvxbr3"
+   "commit": "26242895ef1642bf30c63683fb224fdba25e0853",
+   "sha256": "1xd58yqqsb79lgxkhxs4s50jq8f3639k6fhlza9hsy53apfczkal"
   },
   "stable": {
    "version": [
     1,
-    6,
-    3
+    7,
+    0
    ],
    "deps": [
     "magit",
     "org"
    ],
-   "commit": "ac9b1a42863a864fde9d225890ef5464bffdc646",
-   "sha256": "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"
+   "commit": "26242895ef1642bf30c63683fb224fdba25e0853",
+   "sha256": "1xd58yqqsb79lgxkhxs4s50jq8f3639k6fhlza9hsy53apfczkal"
   }
  },
  {
@@ -78789,8 +79649,8 @@
   "repo": "magit/orgit-forge",
   "unstable": {
    "version": [
-    20200621,
-    2144
+    20210525,
+    1957
    ],
    "deps": [
     "forge",
@@ -78798,14 +79658,14 @@
     "org",
     "orgit"
    ],
-   "commit": "051d92661ef12b67ffadb231324806d87d1e6a54",
-   "sha256": "0x8wmqp9x2c7qv0ipj2rvjf7bc7z0pn8s253gjxpxmakz3l8wnyk"
+   "commit": "ea2a1cf9d337901b413e9df258b8e07af55c00f6",
+   "sha256": "07ia3b6bfilnpify93kq5g10xhh794v5pmc9cmmb312c3qyqi7b4"
   },
   "stable": {
    "version": [
     0,
     1,
-    0
+    1
    ],
    "deps": [
     "forge",
@@ -78813,8 +79673,8 @@
     "org",
     "orgit"
    ],
-   "commit": "63a19d1df1434e583aac1329ba4dcfa2ee59d7c1",
-   "sha256": "1vd7wnas53z0985if22sv0wpww2dp0g8b0z9hwlzdhlcrsjay5fz"
+   "commit": "ea2a1cf9d337901b413e9df258b8e07af55c00f6",
+   "sha256": "07ia3b6bfilnpify93kq5g10xhh794v5pmc9cmmb312c3qyqi7b4"
   }
  },
  {
@@ -78899,8 +79759,8 @@
     20201129,
     604
    ],
-   "commit": "5c065aa584d18257a58cd7c5439df5ce23d989c3",
-   "sha256": "1pmkkihnrch7z705mc94dmr8bxb4mgg7c5iirmrar4hhg84l13q2"
+   "commit": "5aec071702c21dcc777e75b575d3875141688e46",
+   "sha256": "13405irnpwb1fgwv5d9mwywpbvb6d7smmi7nsd140l0i0m7anx1c"
   },
   "stable": {
    "version": [
@@ -79052,6 +79912,29 @@
   }
  },
  {
+  "ename": "orthodox-christian-new-calendar-holidays",
+  "commit": "cd5dfee78c2afb49e59e65b62f2cbe584f3b8e7c",
+  "sha256": "05k9yj8695m86vwacsrr0cddcyh9jhdpnv6hiv43g6shniq2458n",
+  "fetcher": "github",
+  "repo": "cmchittom/orthodox-christian-new-calendar-holidays",
+  "unstable": {
+   "version": [
+    20210507,
+    1619
+   ],
+   "commit": "c0ba49bb01d037ce8800aa04db06f454ef043cb6",
+   "sha256": "07ck6slz0z484lywdymh719pfmxhvfsb1cvk2bdbrx4xq89sqwq6"
+  },
+  "stable": {
+   "version": [
+    1,
+    3
+   ],
+   "commit": "bcb858f607b0d833e1581e0630446ecc576eefd6",
+   "sha256": "1b6ms822j075fciijpwywzn675hbqqbaylz5iy3czlwypjg1slhh"
+  }
+ },
+ {
   "ename": "osa",
   "commit": "df18def95ae792387da2e21f1050cfc25af772fb",
   "sha256": "1knzkwvdq9wwy2x7kgl1nf0p564247l2y82ms77r0j5vfqhsfd9s",
@@ -79276,19 +80159,20 @@
   "repo": "emacsorphanage/osx-trash",
   "unstable": {
    "version": [
-    20160520,
-    1300
+    20210419,
+    2229
    ],
-   "commit": "0f1dc052d0a750b8c75f14530a4897f5d4324b4e",
-   "sha256": "0f4md49175iyrgzv4pijf7qbxyddcm2yscrrlh91pg410la7fysk"
+   "commit": "af74a2055a15bf4182d8196600f7decd66eec634",
+   "sha256": "09960kif9gnfmic4iyv9d28577j6zsiji9fdrxcnhh6586hz70ri"
   },
   "stable": {
    "version": [
     0,
-    2
+    2,
+    1
    ],
-   "commit": "529619b84d21e18a38ec5255eb40f6b8ede38b2a",
-   "sha256": "1n44wdffkw14si9kb7bpkp6d9cjwjrvksfh22y9549dhs1vav6qq"
+   "commit": "af74a2055a15bf4182d8196600f7decd66eec634",
+   "sha256": "09960kif9gnfmic4iyv9d28577j6zsiji9fdrxcnhh6586hz70ri"
   }
  },
  {
@@ -79347,20 +80231,20 @@
   "repo": "tarsius/outline-minor-faces",
   "unstable": {
    "version": [
-    20210214,
-    1715
+    20210530,
+    1259
    ],
-   "commit": "bb6db842e4fc2ed4d635001938ebafe93925f48c",
-   "sha256": "0h54wdsh6g0wmqf356s6br08hq29p6cdrsd14q9w6qaxhmfzbs7m"
+   "commit": "942bd43ea7099984e9ebccf48db70af345d4b6bf",
+   "sha256": "0xnzwb1ybhq38qgd3ml18565bbagfx6yzcfndc5d4ll7bzij6jbh"
   },
   "stable": {
    "version": [
     0,
     2,
-    3
+    4
    ],
-   "commit": "a34602b59063dd22ca6877466b85b2728f03c242",
-   "sha256": "1k3zfcmlwfby7yixjdxfynhys2kyhggg0n3d251a9frzrkyg6gxb"
+   "commit": "942bd43ea7099984e9ebccf48db70af345d4b6bf",
+   "sha256": "0xnzwb1ybhq38qgd3ml18565bbagfx6yzcfndc5d4ll7bzij6jbh"
   }
  },
  {
@@ -79633,8 +80517,8 @@
    "deps": [
     "org"
    ],
-   "commit": "e931362e641f97d17dc738d22bb461e54045786d",
-   "sha256": "045kci7xvlp0kg8gmplnybc7ydv66hkl88dxgd113ac7ipf9zir7"
+   "commit": "efb74df1179702e19ce531f84993ac5b5039075f",
+   "sha256": "0sxwbqk6sm8qfpbcxhclin21k6xx5286df57rr0m72xrqqpdsw1p"
   }
  },
  {
@@ -79651,8 +80535,8 @@
    "deps": [
     "org"
    ],
-   "commit": "a79dc519cd28c000ebca4254a4744ce2b9b82168",
-   "sha256": "1ffpslv58kzw9nhrfv2cp42vq0pdx5gm1bk20g6k697ijiz1r1jj"
+   "commit": "545d2e1547fdc48a5757152d19233effa11d9ee2",
+   "sha256": "1mv0x345rn85cyq0qm4kz22ymxbaa4r9lhnp7n2d2cp0cn23m9zv"
   },
   "stable": {
    "version": [
@@ -79690,15 +80574,15 @@
   "repo": "jkitchin/ox-clip",
   "unstable": {
    "version": [
-    20210323,
-    2145
+    20210528,
+    2059
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "2095537695135c7f1bc19db043925eb7d482907b",
-   "sha256": "0pingsmmdpw9g88rri7rkw8ajp1f982vx9rh97nfn51ppr94ihbw"
+   "commit": "05a14d56bbffe569d86f20b49ae31ed2ac7d1101",
+   "sha256": "14z5pghli7d3rkq3xmbjpssskx3zgwqwypb59wcprkyw8pl66rfp"
   }
  },
  {
@@ -79823,14 +80707,14 @@
   "repo": "kaushalmodi/ox-hugo",
   "unstable": {
    "version": [
-    20210330,
-    1758
+    20210518,
+    108
    ],
    "deps": [
     "org"
    ],
-   "commit": "7a93b0f4b3e8e240d9451f1fa5704acfc494e9aa",
-   "sha256": "0dvhc559r9jhc8d91mv5an3vfklrfyfrpr32dqvphgk1i85kqvw4"
+   "commit": "074c3abf0a6aa5d671da1a39a20137140ba41d24",
+   "sha256": "1a134x8pmgas5k1m769clk3yhrzdh4n0cwmh23bf22avk6n3bz8z"
   },
   "stable": {
    "version": [
@@ -80139,14 +81023,14 @@
   "repo": "0x60df/ox-qmd",
   "unstable": {
    "version": [
-    20201205,
-    721
+    20210529,
+    1012
    ],
    "deps": [
     "org"
    ],
-   "commit": "de78970b85dfd342b49f9956f350c6f7d0a13050",
-   "sha256": "1fggy2b6yklgm66zmyqcmib0aklilh99f51vxyifrhjlsrvinz1v"
+   "commit": "7e69c04626f8d35756f3b049bd7836fb751f7734",
+   "sha256": "14hdjkyyh4714vsc4amkdfhdda94gpaz7hy702ygmyfx0il1v92a"
   }
  },
  {
@@ -80157,22 +81041,25 @@
   "repo": "DarkBuffalo/ox-report",
   "unstable": {
    "version": [
-    20210219,
-    2023
+    20210604,
+    1436
    ],
    "deps": [
     "org-msg"
    ],
-   "commit": "7e135fb51f252ab1ec5a31e05a1c7e638b656b85",
-   "sha256": "1lg00p7nr3y5wjm7r53c93gx0ycqjgsrj4w5jxw6fzrdacqdnsz9"
+   "commit": "9354a9687f7175d26c854204878b2fe545c069b5",
+   "sha256": "15jqcwmcpcb8vczzd50jasz46db9667yqcmzd4v4ahnxhvvb2vfb"
   },
   "stable": {
    "version": [
     0,
-    2
+    4
+   ],
+   "deps": [
+    "org-msg"
    ],
-   "commit": "ebd57eda69466735d7fc8f52831490176e1f144b",
-   "sha256": "1xhyvc1v5hdgki2sbdpajhhq8ydgym5q1cywcaxwbbmpjxi5sd64"
+   "commit": "1e730396b8b7aa5101b3e3f538d6d4c15514f415",
+   "sha256": "1firb26xnci1qprb4v4p3cp9vnmmp5bvsm3154gy0n2jr0hzvbjj"
   }
  },
  {
@@ -80183,14 +81070,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20210411,
-    1138
+    20210515,
+    1007
    ],
    "deps": [
     "org"
    ],
-   "commit": "58540c7dde7dbf4e922209d7fb3e6739570f49b5",
-   "sha256": "10v9bs5jksrliisb3yf37hm2dk3iqjf12yfpf6a26zjvxsaxah4n"
+   "commit": "826b01beb434d38e415d3001908baf5994c6d669",
+   "sha256": "0q8ygsd2r2yg1k5z9j7bbq2hl43hjjdpws0k4rsx19l786ssg7yq"
   }
  },
  {
@@ -80617,14 +81504,14 @@
   "repo": "melpa/package-build",
   "unstable": {
    "version": [
-    20210318,
-    1411
+    20210421,
+    1333
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "0f13dd6655f6d4ff71b77c6d2c93727e5f43b254",
-   "sha256": "0l4qwz2s63r26y5v02yrpncjdiyspw7pill0bjjlcawvxffykw9i"
+   "commit": "b4eec13201093070a12f37396afce83eb6771df5",
+   "sha256": "1kr9iwsrpxbalhjz91pqplwkb44msdl2qv4rwsbapz8z8hs4xzji"
   },
   "stable": {
    "version": [
@@ -80661,27 +81548,27 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20210326,
-    241
+    20210528,
+    2348
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "16e589114cc1f2514d95a58d53e1ae7c2ce941b4",
-   "sha256": "03bcnxd39r9k63zwb6gnqrhs0q629izakj2hmhk83hiy1131v7jl"
+   "commit": "10b6f3aab4f7c014ce339694255cf2c6dfd2bdea",
+   "sha256": "0ps3v3v4279rbma8fscrpm13dimv2d93hgbq3fqcq4j9kfd25jzq"
   },
   "stable": {
    "version": [
     0,
-    13
+    15
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
-   "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
+   "commit": "cfe5aa2c8eeb2f6df38cf97a2315ac8f8ae41696",
+   "sha256": "1cn713g90zyjfq225yvg14c1qshslpi4466m3w102l5g57p8xv44"
   }
  },
  {
@@ -80692,25 +81579,40 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20210110,
-    2231
+    20210530,
+    319
    ],
    "deps": [
     "package-lint"
    ],
-   "commit": "16e589114cc1f2514d95a58d53e1ae7c2ce941b4",
-   "sha256": "03bcnxd39r9k63zwb6gnqrhs0q629izakj2hmhk83hiy1131v7jl"
+   "commit": "10b6f3aab4f7c014ce339694255cf2c6dfd2bdea",
+   "sha256": "0ps3v3v4279rbma8fscrpm13dimv2d93hgbq3fqcq4j9kfd25jzq"
   },
   "stable": {
    "version": [
     0,
-    13
+    15
    ],
    "deps": [
     "package-lint"
    ],
-   "commit": "9e28a5cd08e94db0ba4fb8847fa970c98316facc",
-   "sha256": "03pim9ijqmjqyv0qlkap5jw47iv9qsw1d7s2p9vrqjnpf4jxcq70"
+   "commit": "cfe5aa2c8eeb2f6df38cf97a2315ac8f8ae41696",
+   "sha256": "1cn713g90zyjfq225yvg14c1qshslpi4466m3w102l5g57p8xv44"
+  }
+ },
+ {
+  "ename": "package-loading-notifier",
+  "commit": "9d7c94da6374291527055e47dcbf55cc7a6edf39",
+  "sha256": "0ha47s60dkbi7n2a6ynnva6nh3fl7dyv7c7hkjr8d1lcc2jpdi8d",
+  "fetcher": "github",
+  "repo": "tttuuu888/package-loading-notifier",
+  "unstable": {
+   "version": [
+    20210603,
+    1138
+   ],
+   "commit": "8fd10303e19a2a1e8b5544ce8c34c8466af5d08a",
+   "sha256": "11d9mc9ca9bn9x3by8fqcan2c8wn85d8xnmkfvzxcmw7dz87kis2"
   }
  },
  {
@@ -80781,20 +81683,20 @@
   "repo": "emacscollective/packed",
   "unstable": {
    "version": [
-    20201120,
-    2047
+    20210503,
+    2046
    ],
-   "commit": "47437da7839394b079699eb4cfcc00627ab2df8e",
-   "sha256": "0hp80n3mxnkssq431h9b9xlz21dqkyzjsajylrnbfvqqwqh293qk"
+   "commit": "ed63b4803899c3719aeeba461e249c473e5b26f0",
+   "sha256": "06blk8parnpq3qi6y5628q3v59c8dyi41glb289a0l16248qwphk"
   },
   "stable": {
    "version": [
     3,
     0,
-    2
+    3
    ],
-   "commit": "3b96dedb404f614479c1b321fac3e4bf11ba0782",
-   "sha256": "0fbv8ryxjz1ndfv4ximmr5m1rd9xkmi8dp0x14r8g5wiy9959asb"
+   "commit": "ed63b4803899c3719aeeba461e249c473e5b26f0",
+   "sha256": "06blk8parnpq3qi6y5628q3v59c8dyi41glb289a0l16248qwphk"
   }
  },
  {
@@ -81128,8 +82030,8 @@
     20200510,
     5
    ],
-   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
-   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
+   "commit": "246120647e28a27506ca0894ba98e371086881fd",
+   "sha256": "15gqzj4h0w33w38i8ihl74iy7aqxlds97gm93r72z69pm2l1d7dm"
   }
  },
  {
@@ -81248,14 +82150,14 @@
   "repo": "purcell/paredit-everywhere",
   "unstable": {
    "version": [
-    20180506,
-    849
+    20210510,
+    531
    ],
    "deps": [
     "paredit"
    ],
-   "commit": "f04c522e6b088a11255a95cb1e6a08198b4d6537",
-   "sha256": "1jp6wk4zkfcma4akchbdh8wg5fi0i74m4cgnqnmvbyzwkbj6sf0q"
+   "commit": "b81e5d5356c85001a71640941b469aea9cf2e309",
+   "sha256": "0qnm020npchrazj6na79ccwjhr7j1gm7n0yksqxzciram1lfggjk"
   },
   "stable": {
    "version": [
@@ -81357,11 +82259,11 @@
   "repo": "justinbarclay/parinfer-rust-mode",
   "unstable": {
    "version": [
-    20210325,
-    1714
+    20210413,
+    2
    ],
-   "commit": "a92e39e86ec24fbc536c68765b4af6f4c6ff24c5",
-   "sha256": "1l4xvyx4r7ld7d8k18x4khagiivp5a7m647zv7fvg7ivhkq2crqd"
+   "commit": "c2c1bbec6cc7dad4f546868aa07609b8d58a78f8",
+   "sha256": "0az4qp118vsqzgsl87wgszzq91qzqkpabifd8qrr2li3sizsn049"
   },
   "stable": {
    "version": [
@@ -81487,13 +82389,13 @@
    "version": [
     0,
     1,
-    3
+    4
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8f0c266d8b9b0ee5fcf9b80c518644b2849ff3b3",
-   "sha256": "1zwdh3dwqvw9z79mxgf9kf1l2c0pb32sknhrs7ppca613nk9c58j"
+   "commit": "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26",
+   "sha256": "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"
   }
  },
  {
@@ -81644,11 +82546,11 @@
   "repo": "vandrlexay/emacs-password-genarator",
   "unstable": {
    "version": [
-    20210327,
-    1140
+    20210425,
+    2227
    ],
-   "commit": "de391a83e6a11f810f0141b7b4758dd978478234",
-   "sha256": "10yh56jlvnn01swb4pfq2gqpj2shxfp716fzij8c2c0hi52rgnbz"
+   "commit": "c1da9790d594bc745cdbcc8003153e408aa92a5f",
+   "sha256": "0nwfdf5ik7d11l2h2fg4pszifv3fncpxjzs933gj91mvjy2wrw98"
   }
  },
  {
@@ -81682,8 +82584,8 @@
     "s",
     "with-editor"
    ],
-   "commit": "918992c19231b33b3d4a3288a7288a620e608cb4",
-   "sha256": "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"
+   "commit": "4e73cdc4c376ad61d2e4858bc87cf01eab0dd403",
+   "sha256": "0pvn8djsm8bvx2msrfvm12b778w9yl7sw517l2x0bdm48apz3ifx"
   },
   "stable": {
    "version": [
@@ -82201,21 +83103,21 @@
  },
  {
   "ename": "pdf-tools",
-  "commit": "8e3d53913f4e8a618e125fa9c1efb3787fbf002d",
-  "sha256": "1hnc8cci00mw78h7d7gs8smzrgihqz871sdc9hfvamb7iglmdlxw",
+  "commit": "10a057a573123c7093159e662fafdc97c2dd4a02",
+  "sha256": "1x0yd86r3iybpiq7ypln1fy0cl55wznkcgvqszzqjdrnlpqs0abc",
   "fetcher": "github",
-  "repo": "politza/pdf-tools",
+  "repo": "vedang/pdf-tools",
   "unstable": {
    "version": [
-    20200512,
-    1524
+    20210531,
+    1613
    ],
    "deps": [
     "let-alist",
     "tablist"
    ],
-   "commit": "c510442ab89c8a9e9881230eeb364f4663f59e76",
-   "sha256": "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"
+   "commit": "5f77dae43eb8f71e52e10ba8cf994883f74c3fb7",
+   "sha256": "0hzqcnxi66d0c3dq7y3dn28f3yri4zcx46yylhy0xnm3f1yja0rm"
   },
   "stable": {
    "version": [
@@ -82545,6 +83447,24 @@
   }
  },
  {
+  "ename": "persp-mode-project-bridge",
+  "commit": "fa5d72aad13e1f7e1863deb5487a6ebc9eb09e1f",
+  "sha256": "0h7k03z91h7qx0kgdy5nam886730w9llmrbaajcz801892ddkn3a",
+  "fetcher": "github",
+  "repo": "CIAvash/persp-mode-project-bridge",
+  "unstable": {
+   "version": [
+    20210524,
+    656
+   ],
+   "deps": [
+    "persp-mode"
+   ],
+   "commit": "c8a2b76c4972c1e00648def5a9b59a2942bd462a",
+   "sha256": "1fzvz7f86azffyqrqx3jiwj54b739p2adb5yp9cilbfwkkqyff0v"
+  }
+ },
+ {
   "ename": "persp-mode-projectile-bridge",
   "commit": "2c049b0067b70577511114dc8abac0a00a9e0588",
   "sha256": "169mpikixa33ljmh2n9sm186yibrik3f5p8m1hcisnzdsc3wgxmp",
@@ -82606,25 +83526,25 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20210401,
-    1950
+    20210523,
+    2254
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "dd2a380ac71edf1321a6462f14668baf99879e80",
-   "sha256": "0l9i7ky25d9ii04w2brgxc8dk2rky50naba8lbfqi7hcc34z8pp6"
+   "commit": "b37c6756700a167742c8ab06fa5a850d9d94f4bd",
+   "sha256": "1ciab9xz4lbnnnx9407bagyf10dv6h9nalzm2wj6w6x7kckb4105"
   },
   "stable": {
    "version": [
     2,
-    14
+    15
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2f2b59e693f08b8d9c81062fca25e6076b6e7f8d",
-   "sha256": "04r5h5zs5r6s22p5ynhpr860r2r552z9pyf4kbabfg1gz9jag7yp"
+   "commit": "dd2a380ac71edf1321a6462f14668baf99879e80",
+   "sha256": "0l9i7ky25d9ii04w2brgxc8dk2rky50naba8lbfqi7hcc34z8pp6"
   }
  },
  {
@@ -83065,11 +83985,11 @@
   "repo": "emacs-php/php-mode",
   "unstable": {
    "version": [
-    20210310,
-    1724
+    20210519,
+    1728
    ],
-   "commit": "a2bca9be4c34a9dc38393602cb2708df24587838",
-   "sha256": "1rc67f3jzjhqykcn16s2ibviibxmr7b9y2c20hdwg49r41ax4f9v"
+   "commit": "9561a6c0a92a3d7c00e7e57972f42cb5be775898",
+   "sha256": "189imf8dvmsfhcy0p9f8a7l0z8dfdsnialk58f4p1l06p67s21df"
   },
   "stable": {
    "version": [
@@ -83181,8 +84101,8 @@
   "repo": "emacs-php/phpactor.el",
   "unstable": {
    "version": [
-    20210311,
-    1615
+    20210517,
+    1838
    ],
    "deps": [
     "async",
@@ -83190,8 +84110,8 @@
     "f",
     "php-runtime"
    ],
-   "commit": "80788a817b0257363c1eee11a57cc0f873f0eef1",
-   "sha256": "1w4zxp6j77xd9qcz9skpj8jbl8ink1fgdd5f1dhx0486g882mi2l"
+   "commit": "debf66848c6099415c731b179dcd47e96db3b50b",
+   "sha256": "0i5g4gh5i5y8wsrqw89lwi2s2sn67pvvj2y6p7lnyv0i201v5bs8"
   },
   "stable": {
    "version": [
@@ -83525,11 +84445,11 @@
   "repo": "EricCrosson/pine-script-mode",
   "unstable": {
    "version": [
-    20181110,
-    151
+    20210605,
+    1527
    ],
-   "commit": "f7892d373e30df0b2e8d2191e4ddb2064a92dd3c",
-   "sha256": "1zxmc2l41h28rl058lrfr8c26hjzqmp37ii8r29mpsm03hsw30fh"
+   "commit": "e465c0264958cbed0fb29dad2b30b9f18fbf1064",
+   "sha256": "0crc2q5mzflyz13zx0ghsf2kdmj67lcqb2vnnsw0z2sk7wafrz2i"
   },
   "stable": {
    "version": [
@@ -83807,10 +84727,10 @@
  },
  {
   "ename": "plain-theme",
-  "commit": "d4bd77883375b229e344384e42c3603ca096891c",
-  "sha256": "0igncivhnzzirglmz451czx69cwshjkigqvqddj0a77b1cwszfw8",
+  "commit": "d25eb506b358a3c89c950e66200ea52fe3ca9133",
+  "sha256": "16i60lp0af15sw4fbsj37yd4hs6i212smili9mjaqgiai7wxqv4f",
   "fetcher": "github",
-  "repo": "yegortimoshenko/plain-theme",
+  "repo": "abelianring/plain-theme",
   "unstable": {
    "version": [
     20171124,
@@ -83928,26 +84848,28 @@
   "repo": "ZachMassia/PlatformIO-Mode",
   "unstable": {
    "version": [
-    20161210,
-    1339
+    20210511,
+    957
    ],
    "deps": [
+    "async",
     "projectile"
    ],
-   "commit": "1466aed132a77f48fcb31938d64abb1a1e58ec42",
-   "sha256": "1lfkp7df8as9gspynkyhz4dbm95kbngyba1ymg6ql67adyv79v1i"
+   "commit": "f4fd8932995a8aed80eab14e54232010c2889012",
+   "sha256": "1m6qmqp124idja9dq8gj8pzajxf40lm1adrnd24hbp26wh9pvc54"
   },
   "stable": {
    "version": [
     0,
-    2,
-    2
+    3,
+    0
    ],
    "deps": [
+    "async",
     "projectile"
    ],
-   "commit": "470a80c1d764a6e1680a2b41ca5a847869a07a27",
-   "sha256": "1nznbkl06cdq4pyqmvkp9jynsjibn0fd6ai4mggz6ggcwzcixbf0"
+   "commit": "e7bde6fec31b57ffe1c0a98cd29477d5baea30f3",
+   "sha256": "0ian50v9vaz7kqzn20bhqadq50h0l3zhjkmniinpz4q9klh7drh9"
   }
  },
  {
@@ -84515,21 +85437,6 @@
   }
  },
  {
-  "ename": "pointback",
-  "commit": "5f2a50f62475639af011c99c6cc38928b74b3b0a",
-  "sha256": "198q511hixvzc13b3ih89xs9g47rdvbiixn5baqakpmpx3a12hz4",
-  "fetcher": "github",
-  "repo": "emacsorphanage/pointback",
-  "unstable": {
-   "version": [
-    20100210,
-    1552
-   ],
-   "commit": "e3a02c1784d81b5a1d2477338d049af581ed19f8",
-   "sha256": "016cjy5pnnqccjqb0njqc9jq6kf6p165nlki83b8c0sj75yxghav"
-  }
- },
- {
   "ename": "poke-line",
   "commit": "e608228443b10d1cd883ed8044b624480647ed17",
   "sha256": "1j94pzhp1wsaa4nipbfx3bdapvf38h6g352dxakw38jimqyp6cvw",
@@ -84764,14 +85671,14 @@
   "repo": "polymode/poly-rst",
   "unstable": {
    "version": [
-    20200316,
-    1315
+    20210418,
+    1009
    ],
    "deps": [
     "polymode"
    ],
-   "commit": "8530f56fbdce01bcf4004839ff54e4156282c2b5",
-   "sha256": "088wzagwxpf2j67wb1i6agqfa944sahh2fm8my2m50spbbd9ymhl"
+   "commit": "e71f2ae6a00683cdb8006f953e5db0673043e144",
+   "sha256": "1jhj1hrb998p9n6bjfdnmsinf0rd5wspm9gwsrdb0k6il897h7lf"
   },
   "stable": {
    "version": [
@@ -84875,11 +85782,11 @@
   "repo": "polymode/polymode",
   "unstable": {
    "version": [
-    20200606,
-    1106
+    20210521,
+    1131
    ],
-   "commit": "9f4fa7971634f560e83d44b30aefc4d76d261943",
-   "sha256": "1dp3688kj89r2ywv4zwrji2qv1b0y1cj3dwhzxx1ihb9vx0bjwjn"
+   "commit": "7d1f822f0833b43326cc9253dc8a3e267ad4b376",
+   "sha256": "15gyqf9vs3yxls8l830ik5rdhvd0wiybqpi0yxnfpd6g9pcajm6w"
   },
   "stable": {
    "version": [
@@ -85000,8 +85907,8 @@
     "yafolding",
     "yasnippet"
    ],
-   "commit": "91ca19b2a93029a393f8873e273777b553d308e1",
-   "sha256": "07sn00k8krsb0bikbbypznvwrk13k4jdk6d66iai0a66s9dr84ys"
+   "commit": "3c011744e81263dab6a4b20e96ad1d290ef9d320",
+   "sha256": "15ach67d9n8csbsabm6lhmhli9f397pjpf6vk1rn59bfqrhdakmn"
   },
   "stable": {
    "version": [
@@ -85078,11 +85985,11 @@
   "repo": "karthink/popper",
   "unstable": {
    "version": [
-    20210326,
-    2042
+    20210602,
+    847
    ],
-   "commit": "096078acea59df6109906641e9dd44893ed4f6a2",
-   "sha256": "1cvb40ad3zazfqjzwqgz4bnn9a2pl8yi52b0qfd56ccp32b24n91"
+   "commit": "2be084a77cc2bc79ea7dc23edada161f4ff6dfdb",
+   "sha256": "118sbcm6qavckxva81vamrs98dj38yv0qccqqj4p3a4q7brfi8cw"
   }
  },
  {
@@ -85178,15 +86085,16 @@
   "stable": {
    "version": [
     0,
-    6
+    6,
+    1
    ],
    "deps": [
     "dash",
     "flx-ido",
     "popup"
    ],
-   "commit": "c5e2e69adbd3a630e4cb750965a1aee8c10c1f09",
-   "sha256": "0vn0jli0ya7xnapifkgzynbnh3rpnzb82j5k9bla2j4miqfc6cg8"
+   "commit": "b00c4d503cbbaf01c136b1647329e6a6257d012c",
+   "sha256": "0q081lw6zqzpbmscpk1yzyfpalr9ld5qwh962dwwy04rc5f0aq3s"
   }
  },
  {
@@ -85337,11 +86245,11 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20210410,
-    528
+    20210604,
+    647
    ],
-   "commit": "ae3c4ddfce698f4e24a0fcab938267e41e74da90",
-   "sha256": "1agzfliz6vk9zwvl0gm074xwzlywqrhkva9nz3d3581cjfanxqd1"
+   "commit": "3257a52e3599bc1d5c9a4b646d36d7a49b0dd025",
+   "sha256": "13p7122100ywg6dc32wq0hvcn52x8djxq6vgcmdpdsdy7k4fkxwc"
   },
   "stable": {
    "version": [
@@ -85432,14 +86340,14 @@
   "repo": "milkypostman/powerline",
   "unstable": {
    "version": [
-    20210317,
-    110
+    20210527,
+    1953
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "cfff1cfe63793ea1a8bcfcae50c296558384cf08",
-   "sha256": "12s3mp2dyslq1ilah64gpz7a2j0ca9yls7wvj9kcmjca1931s8s3"
+   "commit": "cfba2aa9cfa190e7720900f01a946e1e78aac7e2",
+   "sha256": "1ljyp3a1dhak2h89yabjpf88037c7yhk4naxach1p86x3brwk68q"
   },
   "stable": {
    "version": [
@@ -85620,11 +86528,11 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20210411,
-    2007
+    20210425,
+    1720
    ],
-   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
-   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
+   "commit": "4a0f5405798cfcb98ea005078ef2e2d490e922c4",
+   "sha256": "04rz8mypgslb0la4wgj3na5c8p28s9lghq4nykcb28nhcxwfvz8n"
   },
   "stable": {
    "version": [
@@ -85688,15 +86596,15 @@
   "repo": "jscheid/prettier.el",
   "unstable": {
    "version": [
-    20210313,
-    1047
+    20210606,
+    1152
    ],
    "deps": [
     "iter2",
     "nvm"
    ],
-   "commit": "5232b886bb6a4fb3848d63db1bcfcb30487a180f",
-   "sha256": "0sbka039sccqip36y98s1b5z6rd5w5q0jzl5kbdq4wmzi7j823ri"
+   "commit": "e38d21a885e234af9ea6b03f499c487175570571",
+   "sha256": "1c7n43xi1sjprqn0xhd1hfdr39ipqiw1r8w76qbm3xx04h9bccy8"
   },
   "stable": {
    "version": [
@@ -86253,26 +87161,26 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20210407,
-    707
+    20210607,
+    1513
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "513228f473910128efcad13f46dfc22a74976675",
-   "sha256": "19yblhr88affwmlrfmf3bi7wypf2abgy56xfxgisvwx5d5xi6v25"
+   "commit": "155fdb44176347c9599357c7935993033260a930",
+   "sha256": "040g4frdjabpa8ddhag81dx3kphh5kp3iv34x4zsbkhb6gryd5zf"
   },
   "stable": {
    "version": [
     2,
-    3,
+    4,
     0
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "18f694931f0afe8b33e34731914e8bae81107b55",
-   "sha256": "0jgnj5il4ynbqgpvy41y6xwwdwnd8m7vsx2f8y8dlwnczr0a022r"
+   "commit": "bbb7b8d4c498e88046e4e6227990626f2b5dbe1b",
+   "sha256": "0w2s1mxbi8qqv0k34q0jj368n0p764rz72grdzzrmdlc96bbd03s"
   }
  },
  {
@@ -86522,16 +87430,16 @@
   "repo": "waymondo/projector.el",
   "unstable": {
    "version": [
-    20190703,
-    1418
+    20210421,
+    1728
    ],
    "deps": [
     "alert",
     "cl-lib",
     "projectile"
    ],
-   "commit": "bad51a81fbcae9aabe47dafc2499ba27cd7308be",
-   "sha256": "0xiwn58wqm15kvbx0pi2zmh8gc1f06zncxki03bwry4nfpqxr2d0"
+   "commit": "7bbee0ef70817d52339119d4517dbbcbab930de6",
+   "sha256": "0zmng37fl8df1d3i66fbkjssv0x0hq74x68p1j01gb8sfayw4dgf"
   }
  },
  {
@@ -86664,11 +87572,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20210408,
-    1454
+    20210607,
+    1422
    ],
-   "commit": "d0acb626eba17023c55b002921870d60e48527a5",
-   "sha256": "0yn66lxx906nry53dr7msjfha2i85yiq2zw8g25d7y1f3mhjsjpz"
+   "commit": "bc86736abb728ec0d28abc90ef0adae21d29a66a",
+   "sha256": "00cga3n9nj2xa3ivb0fdkkdx3k11fp4879y188738631yd1x2lsa"
   },
   "stable": {
    "version": [
@@ -86771,19 +87679,17 @@
     20200619,
     1742
    ],
-   "commit": "ee04809540c098718121e092107fbc0abc231725",
-   "sha256": "053j9j2axr2x7837xcvfgmdl3ddbw2px3fzflbna52fnk9bh2wkc"
+   "commit": "4644980d818ec9d987f74c74b1a1d45de9ab01fd",
+   "sha256": "1mzblak9s46wsfh3l1798k9pjwbddnz030y0cfx831lfpr20227b"
   },
   "stable": {
    "version": [
-    4,
-    0,
-    0,
-    -1,
+    3,
+    17,
     2
    ],
-   "commit": "6c61c1e63b9be3c36db6bed19032dfc0d63aadda",
-   "sha256": "1910pnpy0mfzqga4mv52ybjfbxrbdflgb6nsh2vbpbpsv4jl58dq"
+   "commit": "70db61a91bae270dca5db2f9837deea11118b148",
+   "sha256": "08a7rnflhklbabqm5yyz2nwyzzfbh24miiy3wsxphaanjz4xr6yi"
   }
  },
  {
@@ -87085,26 +87991,26 @@
   "repo": "hlissner/emacs-pug-mode",
   "unstable": {
    "version": [
-    20180513,
-    2126
+    20210503,
+    147
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "685fd3414d89736bf232f5d1a6bed9e0353b98fe",
-   "sha256": "06qy9bgizc68k57avrbcl2qd2kyb8s17gr6rvxdbjknk6i55dgp4"
+   "commit": "d08090485eb8c0488a7d2fbf63680dc0880c7d2f",
+   "sha256": "1f6bhdr1a72x94dlz2i1fwwln8crc2mbpc2iq23hvsbsfmj7xfzp"
   },
   "stable": {
    "version": [
     1,
     0,
-    7
+    8
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "96718f802dad3acd5a3f770b1452b81e39f77d92",
-   "sha256": "1jqj3qfc4686v09am869ls1k3jwy397646cql4a8dg7crjdpf023"
+   "commit": "d08090485eb8c0488a7d2fbf63680dc0880c7d2f",
+   "sha256": "1f6bhdr1a72x94dlz2i1fwwln8crc2mbpc2iq23hvsbsfmj7xfzp"
   }
  },
  {
@@ -87184,11 +88090,11 @@
   "url": "https://depp.brause.cc/punpun-theme.git",
   "unstable": {
    "version": [
-    20200506,
-    1241
+    20210508,
+    1635
    ],
-   "commit": "57c2c87b72336e5dee2165c6b0010022f6e7e51d",
-   "sha256": "03agwvk14rzxglmw5y43v3sy5hhpr5w6iimpf623hxwzfgl3f6xl"
+   "commit": "7026684cd568cb691af3ced5de14c375fe6f5a1a",
+   "sha256": "1nwvlp93l5lj259mchd1a2glq3jxd0h1vazsbjqfi07hsg86xjp0"
   }
  },
  {
@@ -87627,15 +88533,15 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20210319,
-    1102
+    20210607,
+    427
    ],
    "deps": [
     "async",
     "xr"
    ],
-   "commit": "f48c3edee78ba5f020bcb42830db99a14761f176",
-   "sha256": "1ld3bqvfrda6fa4dv3g0wilznrdrsv544sr370sn3a9xlmy4fwp9"
+   "commit": "eaf331f67ad3d6ea5b63c92bcd0cfc0134466b53",
+   "sha256": "0prrkn2yaj6wm2hn17jgfxb1vz58mdm3ivmqsncrfhl1vdll73jm"
   },
   "stable": {
    "version": [
@@ -87658,11 +88564,11 @@
   "repo": "tumashu/pyim-basedict",
   "unstable": {
    "version": [
-    20210311,
-    159
+    20210517,
+    43
    ],
-   "commit": "7495c974ada99f9fed96d8e85d8b97dabce9532c",
-   "sha256": "02asrh0adgjc5nn1ps7dq5zr38hkscnzc04sdpyjzvnmfcqsw7qb"
+   "commit": "86f6de3e3a1523eb278bd3afe7c4ceba2a0e2972",
+   "sha256": "07jrp0n5cfhlfhjjfkiqrc3aadjx1vn33dw1f39snqhqly4x4yq8"
   },
   "stable": {
    "version": [
@@ -87675,21 +88581,39 @@
   }
  },
  {
-  "ename": "pyim-cangjie5dict",
-  "commit": "abad9b91bcf2dd29255a98ddcfd4b17d8847ecd5",
-  "sha256": "13sbbiqqpdplm36pa3zyqakbvlkvh7wvm7pmn0li6hnm56dwydg8",
+  "ename": "pyim-cangjiedict",
+  "commit": "a82ac773bb9bc36727314d1eb5a75610ec9ca694",
+  "sha256": "0ma99y1ijpdqrmypmj108ny7bfj9ylryav7hj7dnp9gj4b1bhxhh",
   "fetcher": "github",
-  "repo": "p1uxtar/pyim-cangjie5dict",
+  "repo": "p1uxtar/pyim-cangjiedict",
   "unstable": {
    "version": [
-    20170730,
-    246
+    20210507,
+    928
+   ],
+   "deps": [
+    "pyim"
+   ],
+   "commit": "455e20e90044a1fcd6c4b45252745fa233e0107d",
+   "sha256": "0dv5l8cpccvc7jsc4qdijnz76dp2rznmcnkkn3w75xw46ai8chnk"
+  }
+ },
+ {
+  "ename": "pyim-smzmdict",
+  "commit": "8bad2e8162f5a44bdbe1117efa31133ae7814489",
+  "sha256": "104kxd8d2b7rch0pfsdz5w98rskx1sl6fx0lqspcilir9k9my1cc",
+  "fetcher": "github",
+  "repo": "p1uxtar/pyim-smzmdict",
+  "unstable": {
+   "version": [
+    20210505,
+    1445
    ],
    "deps": [
     "pyim"
    ],
-   "commit": "c8618590780b818db1a67a29bc47c5d25903517a",
-   "sha256": "0p49h2kn8wy3b51zahzyc1cy24h3b44cg5yjpmv4w23dhsr4zlz8"
+   "commit": "fcddbde17a04d174c7353548056524687f7be8d2",
+   "sha256": "1mi4a8sizlplys93lac34d3fv8338lbk3hfg3n45vp14wvfvpjnq"
   }
  },
  {
@@ -87700,14 +88624,14 @@
   "repo": "tumashu/pyim-wbdict",
   "unstable": {
    "version": [
-    20210111,
-    923
+    20210504,
+    1144
    ],
    "deps": [
     "pyim"
    ],
-   "commit": "62a1bd8b6070463e872137cf8eba50122b180e2c",
-   "sha256": "03zh5sdqc32q8an8k59csc95sczcs38ganxrg3lp2i2vn5ykza7h"
+   "commit": "da51e226bca9be2ed6175298489be64e45492759",
+   "sha256": "0nl1yi3zf4pp7cksprmigm119dcp1d2477k4jdm10z7zfcq2p6r0"
   },
   "stable": {
    "version": [
@@ -87779,8 +88703,17 @@
     20210411,
     1931
    ],
-   "commit": "38d15c98316359c7b0b190f2245a3b2e2bf62109",
-   "sha256": "1iipx981kz25iznb2p90a3cag71abw6np96r0mf99g44z8ghaapd"
+   "commit": "6c7bc2b576a705fcc7bc52494163e9a1a240ea80",
+   "sha256": "1m4swr0v998c6iq589mzx6glq7g2gc109469wcsjyi9j4cv7qgkr"
+  },
+  "stable": {
+   "version": [
+    2,
+    8,
+    3
+   ],
+   "commit": "735c958d3b36fb5d343b7bcb81b1055a430cb042",
+   "sha256": "1m8f8qv88bvqbviszwf0n4ch5dpyqa33067ampy706cpg7mwjvn0"
   }
  },
  {
@@ -87826,15 +88759,15 @@
   "repo": "dakra/pyramid.el",
   "unstable": {
    "version": [
-    20181212,
-    1204
+    20210427,
+    1032
    ],
    "deps": [
     "pythonic",
     "tablist"
    ],
-   "commit": "f0687b8aee3e685b55e2c66b16211e02ac5f9d94",
-   "sha256": "18kqqdk7yifcjmn11jgsqxvzr6izcgify1d8gm504sxw2qqc3q0i"
+   "commit": "66f54f4a9cc9fa81edf768ab433d5b3c5517363c",
+   "sha256": "0sijy6nk46yw21j49x5n93za2zjzqqrfmjm7dz3z3gj7jknk27i9"
   },
   "stable": {
    "version": [
@@ -87899,28 +88832,28 @@
   "repo": "wbolster/emacs-python-black",
   "unstable": {
    "version": [
-    20200324,
-    930
+    20210511,
+    1545
    ],
    "deps": [
     "dash",
     "reformatter"
    ],
-   "commit": "a11ca73f6dfcdc125d27ff184496d66bdbd71326",
-   "sha256": "1jv2fwlf7q8l5npqcpr05xzqmfqlx6xmjn0zphh9rx6dd2dpdma9"
+   "commit": "6b6ab71d2762b6da703f8d1d3d964b712a98939e",
+   "sha256": "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "dash",
     "reformatter"
    ],
-   "commit": "706d317f0874d7c5b5a3d844698bcfb8b1fe253e",
-   "sha256": "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"
+   "commit": "6b6ab71d2762b6da703f8d1d3d964b712a98939e",
+   "sha256": "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m"
   }
  },
  {
@@ -88014,6 +88947,36 @@
   }
  },
  {
+  "ename": "python-isort",
+  "commit": "8b359787b5f0113793714fd9710fde831e7afee3",
+  "sha256": "0svkcb68r3x1ajhrhhlnj71v33qp3pliv3if1mww19x970r69lmy",
+  "fetcher": "github",
+  "repo": "wyuenho/emacs-python-isort",
+  "unstable": {
+   "version": [
+    20210603,
+    2153
+   ],
+   "deps": [
+    "reformatter"
+   ],
+   "commit": "339814df22b87eebca02137e581f65d6283fce97",
+   "sha256": "094nqaf60cw3kch2hka5jbbrc5b6v3z6np98w3y6690yxwx7wmz4"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "reformatter"
+   ],
+   "commit": "4ba3dd75e7dd9f953d8b7c0b9c4c6d1b1c263047",
+   "sha256": "0lnl4byf93ibl2g353z9pzarvqwc1q732fz5gj11gv4yfp8p6xif"
+  }
+ },
+ {
   "ename": "python-mode",
   "commit": "82861e1ab114451af5e1106d53195afd3605448a",
   "sha256": "1m7c6c97xpr5mrbyzhcl2cy7ykdz5yjj90mrakd4lknnsbcq205k",
@@ -88021,24 +88984,20 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20210408,
-    800
+    20210601,
+    1845
    ],
-   "commit": "710ffadeb43136d400de0a4c9e4a94c8b7ff36f0",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 326 ms\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 558 ms\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 1272 ms\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 2702 ms\nerror: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503\n"
-   ]
+   "commit": "198ba8e15e848825b2215e9fc363f06d8c173a28",
+   "sha256": "1z6vnbnqvn20gs131d0rjncr4nk11amahvmfaffkhiwmpsl1b3gv"
   },
   "stable": {
    "version": [
     6,
-    2,
-    3
+    3,
+    0
    ],
-   "commit": "a0a534639bc6142c2c2f44bd7ca5878ad5f79518",
-   "sha256": "0sj2hfjwpcdg9djsgl3y5aa3gnvl4s87477x6a9d14m11db3p7ml"
+   "commit": "906b0a107f7bcfe6e32bcfedb977e6f0f99fda59",
+   "sha256": "1vym8nlpwv9ym7yixldjxp999b26a9pr4z0pka28fldxykfccwq0"
   }
  },
  {
@@ -88180,11 +89139,11 @@
   "repo": "jorgenschaefer/pyvenv",
   "unstable": {
    "version": [
-    20201227,
-    1623
+    20210527,
+    829
    ],
-   "commit": "9b3678bc29192d2dba64df90fbdb17393ef8d877",
-   "sha256": "1pxinj6gc0mga0sl7y5ys3xsy94c33cbgahw418c36lhj8xxx21n"
+   "commit": "045ff9476dac26086a04538d9b7ba186aa8f0fd1",
+   "sha256": "1y5jqqqh0df75qydw3h7rx24pv5z628ci8ymdksn5khl1qp5041x"
   },
   "stable": {
    "version": [
@@ -88371,8 +89330,8 @@
     "leaf",
     "quelpa"
    ],
-   "commit": "eacc544b93f6fdc3be69a6ffbf960380a63fc715",
-   "sha256": "0ka2qk1y7byrq4rbmyhr06kfgc76afpmpdcxk3nf4g3krgi778dw"
+   "commit": "cc13df4a6c6cdf1dea558be5b6e99b6e8d8b4065",
+   "sha256": "0jiwdz1psfkha17by281ii0adjschld0hwl439bawgvzpw1a0zi2"
   },
   "stable": {
    "version": [
@@ -88669,15 +89628,15 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20210328,
-    2038
+    20210604,
+    1431
    ],
    "deps": [
     "faceup",
     "pos-tip"
    ],
-   "commit": "045a871d61e930c2eea8647822df39b8319018e1",
-   "sha256": "0lpy4nmn21jzmf54avkl9yr8j6w62aqmi5yhmssfhq3x0l5srsjq"
+   "commit": "4b46a818c08820e04d25df7fe830e80ea82e1126",
+   "sha256": "0kr1sd819rvyfw34g6sqcnygkllcx07ccc5zc773kn0ngiqd0zvn"
   }
  },
  {
@@ -88742,11 +89701,11 @@
   "repo": "istib/rainbow-blocks",
   "unstable": {
    "version": [
-    20171025,
-    1438
+    20210412,
+    1937
    ],
-   "commit": "dd435d7bb34ff6f162a5f315df308b90b7e9f842",
-   "sha256": "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"
+   "commit": "ae5c11cd3dc64039c5e65c9f1804aceba5b3b209",
+   "sha256": "17ar9k2352h6cnvcknq945lna3illln87r1vf4ll1aa798azizpb"
   },
   "stable": {
    "version": [
@@ -88766,20 +89725,20 @@
   "repo": "Fanael/rainbow-delimiters",
   "unstable": {
    "version": [
-    20200827,
-    321
+    20210515,
+    1254
    ],
-   "commit": "f43d48a24602be3ec899345a3326ed0247b960c6",
-   "sha256": "1lm1nwm3hg7nss9i8ar1265ziiyn4ckmc4fvn5zwnqq96hxmdk7x"
+   "commit": "d576e6694ad3a3e88b2bb1363305b38fa364c149",
+   "sha256": "0sw5zjpg8xg0ri550vmblfm0h0ra56vh0vsxwglk24w29flvn18m"
   },
   "stable": {
    "version": [
     2,
     1,
-    4
+    5
    ],
-   "commit": "455bcee19c92bf85db0ba7e926f0b5a176b69865",
-   "sha256": "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"
+   "commit": "7919681b0d883502155d5b26e791fec15da6aeca",
+   "sha256": "179mzsd8nvlr0ym9zf9fgdngsgxj3kdgbjblynliirsyk05ssrwc"
   }
  },
  {
@@ -88866,26 +89825,26 @@
   "repo": "Raku/raku-mode",
   "unstable": {
    "version": [
-    20200902,
-    2139
+    20210412,
+    2342
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "8a6e17f1749c084251d19c3d58b9c1495891db6d",
-   "sha256": "1nxv5x9ywm9zzzl69ssvvxf0lphjqjfazf5qcd3qpv4w5rqa1s3b"
+   "commit": "7496ad3a03bed613c259405ec8839ae02950fdb1",
+   "sha256": "002pkw4wx6l64c1apg6n1psq4ckp9129yj3xqkjp68ji5nz2l3bw"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "e0639c89a3a29e9196e298951da6c3a79fb944e8",
-   "sha256": "02zn1sm86srwdzdkhw53ll0h41a9hwh6c8lan72530zysjrm4x1i"
+   "commit": "7496ad3a03bed613c259405ec8839ae02950fdb1",
+   "sha256": "002pkw4wx6l64c1apg6n1psq4ckp9129yj3xqkjp68ji5nz2l3bw"
   }
  },
  {
@@ -89046,6 +90005,30 @@
   }
  },
  {
+  "ename": "rbs-mode",
+  "commit": "c8bd3d8bf771c4d5d45cf1e00a08d54941924357",
+  "sha256": "0cdd7sypbpgr9j5ydj17pqgdb2rfm2563rwyvi0p2k2xd305bcgb",
+  "fetcher": "github",
+  "repo": "ybiquitous/rbs-mode",
+  "unstable": {
+   "version": [
+    20210430,
+    135
+   ],
+   "commit": "fd766a943d5f1f0624e10ffce096b9aaba14a5f4",
+   "sha256": "1gl5wqdyaqvdv0557idycfzgr5gvzvlv11jwccq43v6dmvydam15"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    1
+   ],
+   "commit": "ad36bb138cec7396f029821d0cf755a8bc663260",
+   "sha256": "143wz47446dahp5zx9vvhjrqjadzgz4apzlvwhdbs7dgs8bgs7r7"
+  }
+ },
+ {
   "ename": "rbt",
   "commit": "ca7241985be1e8a26a454b8136a537040b7ae801",
   "sha256": "1mrb6v8zybvhh242vvq0kdvg6cvws7gabfhcydrw5g2njhyqkygm",
@@ -89183,14 +90166,14 @@
   "repo": "aaron-em/rcirc-styles.el",
   "unstable": {
    "version": [
-    20160207,
-    250
+    20210414,
+    1712
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f313bf6a7470bed314b27c7a40558cb787d7bc67",
-   "sha256": "1kwn33rxaqik5jls66c2indvswhwmxdmd60n7a1h9siqm5qhy9d6"
+   "commit": "dd06ec5fa455131788bbc885fcfaaec16b08f13b",
+   "sha256": "116qvavvw72vkahknb7g7w7knaximw3m1pq6hic7h13xj8xqxz2w"
   },
   "stable": {
    "version": [
@@ -89266,14 +90249,14 @@
   "repo": "johnmastro/react-snippets.el",
   "unstable": {
    "version": [
-    20181002,
-    1046
+    20210430,
+    1510
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "87ccb640d265fe799583ab55605b84d113223694",
-   "sha256": "0zs78mn37ngy86blmp2xfy7jr5p0s6r0qq6z3z924amrhy5bwdqc"
+   "commit": "969c21734dab638057fe9e284f6a51edcc3407c9",
+   "sha256": "0sdh2qaa6fb11y3h8xy0f6frisan2bkxrk68r89bq875g21z8jfr"
   },
   "stable": {
    "version": [
@@ -89303,6 +90286,21 @@
   }
  },
  {
+  "ename": "read-only-cfg",
+  "commit": "e837603be6a3b84d50ab90b6172386d1bdd8f3e6",
+  "sha256": "03zwk5lba9lgichwcz38iqr6jry8qvwnz6c5bxzmzyxckb9c7nj5",
+  "fetcher": "github",
+  "repo": "pfchen/read-only-cfg",
+  "unstable": {
+   "version": [
+    20210517,
+    749
+   ],
+   "commit": "c128c9412f768adf89ff5c4ad433cf0beab6656a",
+   "sha256": "11zj4ysmacvz82j1siqlcp30i05my20lscls8wkdjl75g9d2b12l"
+  }
+ },
+ {
   "ename": "readline-complete",
   "commit": "0cf3b56dae7669b34df9d2abe2d78164cbf064c9",
   "sha256": "1qymk5ypv6ljk8x49z4jcifz7c2dqcg5181f4hqh67g1byvj2277",
@@ -89348,16 +90346,16 @@
   "repo": "realgud/realgud",
   "unstable": {
    "version": [
-    20210411,
-    1241
+    20210522,
+    2151
    ],
    "deps": [
     "load-relative",
     "loc-changes",
     "test-simple"
    ],
-   "commit": "a854b8d4344e4606e77c7e73cc414991e53253d5",
-   "sha256": "0f5av8ldmh54cmqzniifl853mz9mdg6wn3i0wbm7v1m6d79nli88"
+   "commit": "7a70b27614c488be274898d0141ec82feb3a8d5a",
+   "sha256": "116f94sslg1cd5cy5w25ygazdwrrlh85pfib7692a180vk6kz8g6"
   },
   "stable": {
    "version": [
@@ -89440,15 +90438,15 @@
   "repo": "realgud/realgud-lldb",
   "unstable": {
    "version": [
-    20190912,
-    1335
+    20210417,
+    1434
    ],
    "deps": [
     "load-relative",
     "realgud"
    ],
-   "commit": "47cb0178fdde50a9d9151ab45806b41007cd758a",
-   "sha256": "11vaiq7c4iaypsgs4x4sdfycjailba36qh0pwgdprmiyf8swy8hq"
+   "commit": "abffd0d2d23f6c87be5dc5d36e948af92de5df86",
+   "sha256": "1zjrjgs9vjaqsf5h9sxw1pf2f9sfngx1gxp37lb8myan52qmhlz1"
   },
   "stable": {
    "version": [
@@ -89586,15 +90584,15 @@
   "repo": "realgud/realgud-trepan-ni",
   "unstable": {
    "version": [
-    20200722,
-    1118
+    20210513,
+    2237
    ],
    "deps": [
     "load-relative",
     "realgud"
    ],
-   "commit": "6e38cf838c7b47b5f1353d00901b939ffa36d707",
-   "sha256": "0qwzvaarl2vr6ca0kd9k195f5nbnkdjsrwrkhxggjqsk7v1hq6x2"
+   "commit": "0ec088ea343835e24ae73da09bea96bfb02a3130",
+   "sha256": "109v1kc29qqgabzjq9118jyw800zhl9yxykmgfl1zrpiyq6disz4"
   },
   "stable": {
    "version": [
@@ -89744,11 +90742,11 @@
   "repo": "ncaq/recentf-remove-sudo-tramp-prefix",
   "unstable": {
    "version": [
-    20180205,
-    556
+    20210509,
+    43
    ],
-   "commit": "84bbac534cb114d8d11b86790435b65d36e99e68",
-   "sha256": "0lnnh28qax4qk9n9sng7sgb0w0mnjc8abnch3bd0ba9g5x28z8bx"
+   "commit": "c462344739867f35d39c8794c358b4c4b5af7dcc",
+   "sha256": "1bpf9bqnhwb6gcr6gxi2fgr03fdh0s7k0k3pgy543dpafhlzm2ac"
   }
  },
  {
@@ -89807,15 +90805,11 @@
   "repo": "ideasman42/emacs-recomplete",
   "unstable": {
    "version": [
-    20210404,
-    716
+    20210418,
+    925
    ],
-   "commit": "802c85b02d99bce4cf540ed4b716eaa39df45c4a",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 301 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 505 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 1324 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 2228 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503\n"
-   ]
+   "commit": "ef800da3ff3112baa71ad20e84c752f7a56c90b9",
+   "sha256": "18m8djkbyykb6cxqayl2v3ap206jkng3w8ah6qr4bixqynkx4yg1"
   }
  },
  {
@@ -89932,8 +90926,8 @@
   "repo": "thanhvg/emacs-reddigg",
   "unstable": {
    "version": [
-    20210301,
-    2307
+    20210603,
+    2305
    ],
    "deps": [
     "ht",
@@ -89941,8 +90935,8 @@
     "promise",
     "request"
    ],
-   "commit": "196200eeccc4e821c5200c2e04429aeaafe4d536",
-   "sha256": "06q6vb0gxq323zhrq3im7xadgxgb9b8h0bxqak8xfmcnny0mcjlr"
+   "commit": "1a6eaf3d1a5e44205399526c0f425281b8d9ccc3",
+   "sha256": "070zghnrh4ywndk6bz1vd750g2nxj4rd42gphymyz8x7kazqqh1j"
   }
  },
  {
@@ -90112,17 +91106,17 @@
  },
  {
   "ename": "reformatter",
-  "commit": "58de8cf8864867f7b3969f3a048a4844837078b4",
-  "sha256": "0z4wa0bmhz55c54vx7qxkl9x7ix20mmgygv91sqll68l10g63l0c",
+  "commit": "82368b9bf29492002918a2d77023ff2ef0b9917c",
+  "sha256": "127nss62cn24xj4hmmf6axxyy0ygx84dz0k8dc0xm1642gdndl58",
   "fetcher": "github",
-  "repo": "purcell/reformatter.el",
+  "repo": "purcell/emacs-reformatter",
   "unstable": {
    "version": [
-    20200814,
-    435
+    20210510,
+    522
    ],
-   "commit": "576d339aa80f40c6053592988001bdb285c1cf21",
-   "sha256": "1hdr5vr5xzlpj5xyapgbm9drrham6r776lmj8sjqaqrdffgxj8dh"
+   "commit": "e02a9ea94287f4195edeeab3033e017a56872f5b",
+   "sha256": "1dlm24gjplfdx3cv2j6jslwgfryh0mvcyccljrwq8rzw8svgs8ac"
   },
   "stable": {
    "version": [
@@ -90186,20 +91180,20 @@
   "repo": "zonuexe/region-convert.el",
   "unstable": {
    "version": [
-    20181221,
-    528
+    20210519,
+    1655
    ],
-   "commit": "a50a0828a989fc1788a32946249a3758793156b3",
-   "sha256": "07hbqc7ilhyhqa7hw8fxh76ma9qkr4djlc6gbz06c1hknbi1gxs9"
+   "commit": "cb3ab0417d7b74e5edd34bf23a70737fc7bf1d3a",
+   "sha256": "1czg5252yrd8l66g7d69yh7ady9i1d0ghj9ypg6psvh37fcg3w31"
   },
   "stable": {
    "version": [
+    1,
     0,
-    2,
     0
    ],
-   "commit": "173c86b4b3fc187d54bcd85b4d7df27a5ee24965",
-   "sha256": "1paljjwr6sfl835m24vj2j4x3zdh3whwayj6dvyfarbhhcwbwphj"
+   "commit": "cb3ab0417d7b74e5edd34bf23a70737fc7bf1d3a",
+   "sha256": "1czg5252yrd8l66g7d69yh7ady9i1d0ghj9ypg6psvh37fcg3w31"
   }
  },
  {
@@ -90323,14 +91317,14 @@
   "repo": "torgeir/remark-mode.el",
   "unstable": {
    "version": [
-    20191103,
-    1825
+    20210504,
+    1238
    ],
    "deps": [
     "markdown-mode"
    ],
-   "commit": "e80a1b78304045dec3eceffb6c8cbaf2b6c7b57a",
-   "sha256": "1l06hh728p9gnlliz1nq9qg641gyxfzb7mlz8x88bmvb0wyzyr8r"
+   "commit": "9f15285445fdb53e720ffe72f5cf05231d340906",
+   "sha256": "0mgkcdagj4n47nahsxnk7l1b4v15cbwqaac4fr8809jvis1rfx5g"
   }
  },
  {
@@ -90705,6 +91699,21 @@
   }
  },
  {
+  "ename": "rescript-mode",
+  "commit": "d561116c1da2439da7368a83b5d481962f51280e",
+  "sha256": "0cjh418qipa3i3g02p1axdqblchc482gcs0nzn1xx9k26yfa6yy5",
+  "fetcher": "github",
+  "repo": "jjlee/rescript-mode",
+  "unstable": {
+   "version": [
+    20210506,
+    2101
+   ],
+   "commit": "964a62f907bf786cec6a60719d17244b2958ac62",
+   "sha256": "16r1bp6dv6s1k8pkxpf1wpk2rh7qd059z97naik60qa26rdwpa4w"
+  }
+ },
+ {
   "ename": "resize-window",
   "commit": "601a8d8f9046db6c4d50af983a11fa2501304028",
   "sha256": "0h1hlj50hc97wxqpnmvg6w3qhdd9nbnb8r8v39ylv87zqjcmlp8l",
@@ -90765,11 +91774,11 @@
   "repo": "pashky/restclient.el",
   "unstable": {
    "version": [
-    20200901,
-    1442
+    20210511,
+    1331
    ],
-   "commit": "abc307b965bf6720bc466281f2e204cd5ce37dc3",
-   "sha256": "0dv9was6ycwwyfabr8z71wcc3hbqnxgwbdqkdkx0iaccq2xyj07b"
+   "commit": "2cc1fd3496f57288de3f97c27a5f018284db2d23",
+   "sha256": "0zpdkrj2kka85x56qh266vd1rc1kxh4cwv1gbdxcfpkpckn3xg0l"
   }
  },
  {
@@ -90787,8 +91796,8 @@
     "helm",
     "restclient"
    ],
-   "commit": "abc307b965bf6720bc466281f2e204cd5ce37dc3",
-   "sha256": "0dv9was6ycwwyfabr8z71wcc3hbqnxgwbdqkdkx0iaccq2xyj07b"
+   "commit": "2cc1fd3496f57288de3f97c27a5f018284db2d23",
+   "sha256": "0zpdkrj2kka85x56qh266vd1rc1kxh4cwv1gbdxcfpkpckn3xg0l"
   }
  },
  {
@@ -90799,25 +91808,25 @@
   "repo": "simenheg/restclient-test.el",
   "unstable": {
    "version": [
-    20180106,
-    2046
+    20210422,
+    1815
    ],
    "deps": [
     "restclient"
    ],
-   "commit": "4518561bc9661fedacb6fb352e9677207f45c418",
-   "sha256": "0hbilpn77w0vykga9p4dkwaygipyna7mwn24y2kwfcahcr39pqjb"
+   "commit": "3c6661d087526510a04ea9de421c5869a1a1d061",
+   "sha256": "0bpvxv8bc671pa0sm4v8pqyla3i99y05mgpbgcjd8pdsfhiwjw7j"
   },
   "stable": {
    "version": [
     0,
-    2
+    3
    ],
    "deps": [
     "restclient"
    ],
-   "commit": "a21e41b905b423e762eeb4da3a236c8b1aea8c49",
-   "sha256": "1lan49723rpzg1q7w8x3iggazwl4zirq5l8nhpb8m5hmg21a4kih"
+   "commit": "3c6661d087526510a04ea9de421c5869a1a1d061",
+   "sha256": "0bpvxv8bc671pa0sm4v8pqyla3i99y05mgpbgcjd8pdsfhiwjw7j"
   }
  },
  {
@@ -90984,11 +91993,11 @@
   "repo": "kmuto/review-el",
   "unstable": {
    "version": [
-    20201019,
-    104
+    20210516,
+    503
    ],
-   "commit": "e6a2a10d4544cd2d5893e44dc534681af8db4fea",
-   "sha256": "0l16jn39hsadnzkz9yz7fwzwa544w3gvnm2r71g8piqca0as01qy"
+   "commit": "4f64f0ce1fe3a59389a1462dc26d6ba89d44d51c",
+   "sha256": "05w3n8hv5wclgwy58wbnximkf7xi6anp8vpxh523dplzxd77b5q6"
   }
  },
  {
@@ -91014,11 +92023,11 @@
   "repo": "galdor/rfc-mode",
   "unstable": {
    "version": [
-    20201121,
-    544
+    20210510,
+    1104
    ],
-   "commit": "21c966a02cdd4783dc6ea50b807589abc405d929",
-   "sha256": "1g8j80nklf14a178qhb7im01zrw84gmix4gcdn5l45194q6ngifk"
+   "commit": "b885d6bd2b3be69a2413c4dc5cc34344d821cba2",
+   "sha256": "0qqvab5n5y70mv9dq06xnqmpxy9pr994k3b83kw70pq43gb03nxd"
   },
   "stable": {
    "version": [
@@ -91142,29 +92151,28 @@
   "repo": "zonuexe/right-click-context",
   "unstable": {
    "version": [
-    20190528,
-    1832
+    20210519,
+    1713
    ],
    "deps": [
-    "cl-lib",
     "ordinal",
     "popup"
    ],
-   "commit": "4b1a2cd2b3eaea2393d3696a36da8f42e386c23d",
-   "sha256": "1y0sa1k8pc8g6mzsqv3n34v2ziyvlr6l74409kh8673lp5r7cx1f"
+   "commit": "c3c9d36ffbc9fb2bc7c2c4b75291dbcdb1c5f531",
+   "sha256": "1yvdiwjdqaacxf0vbk40im0znhbpndlh1xxl72g7sn79r9bfiq5w"
   },
   "stable": {
    "version": [
     0,
-    3,
+    4,
     0
    ],
    "deps": [
-    "cl-lib",
+    "ordinal",
     "popup"
    ],
-   "commit": "db92245cc494c295afa7c23ef1e1d9f76c20a27e",
-   "sha256": "109l1qj3k87iz3g89j9xf5gdrflr63lagp1qz7cz1p1ji4lycb4k"
+   "commit": "c3c9d36ffbc9fb2bc7c2c4b75291dbcdb1c5f531",
+   "sha256": "1yvdiwjdqaacxf0vbk40im0znhbpndlh1xxl72g7sn79r9bfiq5w"
   }
  },
  {
@@ -91203,6 +92211,15 @@
    ],
    "commit": "d0cc3599129db735c23abe74d0876286a2fd6b6a",
    "sha256": "1g0na5zjsy4600jzi5zr752nggndbwkr6ihxcmq1w82w0b3600rv"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "9df603a5c63ae38ec776e27dc93d3618e2b0fabe",
+   "sha256": "1qp338v1cwlikkzclbnxy2i4g2lad88qc6aakmla9f8x22gvlpi1"
   }
  },
  {
@@ -91428,14 +92445,14 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20210328,
-    1228
+    20210608,
+    17
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "0bc2645d140f65215a42f2b9365f1983cc949c6c",
-   "sha256": "0ff8zminjpgyi2lp2pmjh7cc7bgb15hii2r89zmy5xkq47slr2j4"
+   "commit": "bcddba77ba11b46f94730708fff2215f4b620428",
+   "sha256": "04az3rk7h606pv2l16wf2bmad9nqb7nx6r7cwap90dvnfjn56a3y"
   },
   "stable": {
    "version": [
@@ -91458,11 +92475,11 @@
   "repo": "kopoli/robot-mode",
   "unstable": {
    "version": [
-    20201208,
-    1959
+    20210425,
+    1925
    ],
-   "commit": "e8ca45ea811a4c6758fa1a086d8f89b8812653ca",
-   "sha256": "0iji80p1llvp93s42cgyffx0py9j1kjk3bjycajcy1hxsha240xl"
+   "commit": "e7e9c4d4750d048ad771fa735621ad813fa9c128",
+   "sha256": "127lydk66n90ih39q8gxzb44rss2xllb7bn3ygxrf5m5vvl9w5rj"
   }
  },
  {
@@ -92085,11 +93102,11 @@
   "repo": "bard/emacs-run-command",
   "unstable": {
    "version": [
-    20210323,
-    1742
+    20210529,
+    1505
    ],
-   "commit": "92b70a1ed0aa9bdbed3915efe47b3ba92fe2cb74",
-   "sha256": "1jvclzlr9lhvb05zdnqw2l3y2m1nca2m5z8m1a7rmq9bk1wwl4pa"
+   "commit": "ce2d69feeffb9ef9815ef5b5e32f236763197a10",
+   "sha256": "132gsmgqnfzx8q0f4gchjzhm3wqm5frjrsb8q9cmqsa5y2g7qjmf"
   }
  },
  {
@@ -92100,11 +93117,11 @@
   "repo": "ideasman42/emacs-run-stuff",
   "unstable": {
    "version": [
-    20210308,
-    453
+    20210522,
+    243
    ],
-   "commit": "e5ee96c50c350cf860982b7b5deff1ed8d488c8a",
-   "sha256": "0g60kk49dbn331z06gpi3c8pqjsb780iwd07bl87bgbcxcpa2fg9"
+   "commit": "767eea8928b92da032aca7c8a429b1cced46781d",
+   "sha256": "0pdjhvma0hsd8slz240bavpyzvn9mdna7lsrd1ddw3nf8xjibczq"
   }
  },
  {
@@ -92191,11 +93208,11 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20210226,
-    1106
+    20210423,
+    1157
    ],
-   "commit": "e9e9e32c4f82a9b895543c120b327ab5536ec42b",
-   "sha256": "0f63lms4arkqj6161v2787dgfra23a01vi82s9dcylk9z6bqyz4v"
+   "commit": "494d59f92cbe12533eb89b202fc4f5342afcd543",
+   "sha256": "1g9hch2h3lqdx7ffabikl2ss98akhfpw5las6g5qwyj1l2lcrjbr"
   },
   "stable": {
    "version": [
@@ -92238,22 +93255,22 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20210328,
-    1426
+    20210502,
+    1646
    ],
    "deps": [
     "dash",
     "f",
-    "ht",
     "let-alist",
     "markdown-mode",
+    "project",
     "s",
     "seq",
     "spinner",
     "xterm-color"
    ],
-   "commit": "07d4d9af2c169d6cce6e2117628dfa3192937fb0",
-   "sha256": "1hv059nac1czpv367bs42qqw8lf6phpbzbiyk90n6mq996cinwrq"
+   "commit": "ed68fd3bb410869e1a4ce3943b5913ea88d9b509",
+   "sha256": "0896m5ajlq90pp7ds6iw7plqkffm6k01v3rfqfhb3qwd92nxgcf0"
   }
  },
  {
@@ -92288,11 +93305,11 @@
   "repo": "Kungsgeten/ryo-modal",
   "unstable": {
    "version": [
-    20201117,
-    1903
+    20210523,
+    757
    ],
-   "commit": "f14479e277ac7db75bf6756e0589941f84fdd749",
-   "sha256": "16q1b1dvdh0s7jd58x48m11c925f97lnlm1xn6z1iz8c0bxgqqjm"
+   "commit": "ab6417d8e546f1836618ee72d074ec65431ebc80",
+   "sha256": "1yy0jr7n55qbraxif2zhgmyr31jd5sd62jyhd3cg327vl5ga1ajg"
   }
  },
  {
@@ -92303,11 +93320,11 @@
   "repo": "magnars/s.el",
   "unstable": {
    "version": [
-    20180406,
-    808
+    20210603,
+    736
    ],
-   "commit": "3a5166c81ac9e50eaccf5490c5c632f93452287e",
-   "sha256": "131z1g43xh6z20069s6lccm08srwhwgpbiwb7fp2h29pxp41g30z"
+   "commit": "e1710af8d058faca32529d1129deb5d57871385a",
+   "sha256": "1zm9zqa1479kn74a1hbs7jc8rli7vzz5hk8k2rqpi34yf569yjhj"
   },
   "stable": {
    "version": [
@@ -92672,8 +93689,8 @@
    "deps": [
     "cider"
    ],
-   "commit": "27f35778de9509067716a7bed14306787334a589",
-   "sha256": "01a6cvk3ycg0z1qg30rqsnx49drmdfpgd78mhf2m6avvagzf8l9s"
+   "commit": "c813d94ee8d0a85dd33d0c5dbae832c24cf37e4f",
+   "sha256": "0r0c6h7nikb4181a06bs88sqnqa68jw2f550q2zz34khl7zpr2s6"
   },
   "stable": {
    "version": [
@@ -92696,11 +93713,11 @@
   "repo": "hvesalai/emacs-sbt-mode",
   "unstable": {
    "version": [
-    20210409,
-    1528
+    20210416,
+    1845
    ],
-   "commit": "9a6a8e47b657adeada41c445c9fcda301dbdb9b3",
-   "sha256": "1h8iqamz5crflhjpxfzgjxspwwkks8cp9m3bf4b42jqsffqkypnb"
+   "commit": "e29464a82bf706ef921f4e0052ce04fc74c34c84",
+   "sha256": "1r6n1hcpcy6icy8qs98gafqavmwx4z6v4rnknvrfnnynmrv2ajvr"
   },
   "stable": {
    "version": [
@@ -92723,8 +93740,8 @@
     20200830,
     301
    ],
-   "commit": "5078c5c5e22f509338d20b7ae448b2bbe02e08f9",
-   "sha256": "03brsgbhsaynjc8xp5wpmla6cf0v4r7qc5hg0jdbp2ihnwp17i2f"
+   "commit": "393a5f2be890c1e90b3d5f331ce1bf34dad09742",
+   "sha256": "16y5njqb9v58fmsp9nn38wvzx71jgy0di2m8933a8dkirddi324v"
   }
  },
  {
@@ -92753,11 +93770,11 @@
   "repo": "hvesalai/emacs-scala-mode",
   "unstable": {
    "version": [
-    20210409,
-    1441
+    20210414,
+    1126
    ],
-   "commit": "6966328dbfcbd1dfb166ff46e5deb9a68379cdf1",
-   "sha256": "0pmix0km9b7r28jxh31ig1h5j9vvvz4871irzlavzn7kl3qiqwgw"
+   "commit": "598cb680f321d9609295aa9b4679040cc703b602",
+   "sha256": "0ryr6jhl0irhaii6cz9nlly8rn4c6h5pnax6xzn9iszl8f7xgphs"
   },
   "stable": {
    "version": [
@@ -93107,11 +94124,11 @@
   "repo": "ideasman42/emacs-scroll-on-drag",
   "unstable": {
    "version": [
-    20201013,
-    123
+    20210418,
+    1318
    ],
-   "commit": "ad94790492d0d66686f3457cea1caeba8bbbdc51",
-   "sha256": "1b725iz5xhqki33jydq9vrxvrbfraxq2q79jdbrjy548rbsxzyjf"
+   "commit": "157637ba6b6cbe7a21c57f9eefb8a94fffa0085e",
+   "sha256": "195ckjmh65z4qg1afs5acz66r6xvc2g91mfnncz12kv7p8bxwrxx"
   }
  },
  {
@@ -93122,11 +94139,11 @@
   "repo": "ideasman42/emacs-scroll-on-jump",
   "unstable": {
    "version": [
-    20210103,
-    2120
+    20210426,
+    1226
    ],
-   "commit": "69c86542a148222a7571506a2515fc52529d209d",
-   "sha256": "00qddxcax55pmfai7083w08mgz6c3876jb5p7fas4j5h417c09yb"
+   "commit": "30dc5f5e50fa702eb65756304f0fe406daec2397",
+   "sha256": "02w52rcs8gkf58yig55wn6198b7g6zy6ppp5mjh7k1l07cf2kmay"
   }
  },
  {
@@ -93216,6 +94233,21 @@
   }
  },
  {
+  "ename": "sculpture-themes",
+  "commit": "408a269ccf0d938c3248880c5220b5b0b979f271",
+  "sha256": "1zyiki3raldp4wnhjsnfc5rzs6pycbagfp7qjjjxz1qgqig36wbw",
+  "fetcher": "github",
+  "repo": "t-e-r-m/sculpture-themes",
+  "unstable": {
+   "version": [
+    20210530,
+    624
+   ],
+   "commit": "1da2b3501f3732b4a58d28b502e356226a43a96f",
+   "sha256": "198rjkyv876h7mbs73h8dq4lx5xhl66p7xrpvb23v0vk4vw0q5vz"
+  }
+ },
+ {
   "ename": "sdcv",
   "commit": "173e233b2dacaaf54d92f3bcc06e54d068520dd4",
   "sha256": "1bj3b17sjd9fha686g6w191l4p8a1p8sb9br65xf54n6nd9bmv7a",
@@ -93527,11 +94559,11 @@
   "repo": "raxod502/selectrum",
   "unstable": {
    "version": [
-    20210411,
-    1153
+    20210530,
+    245
    ],
-   "commit": "35665560c217fc7c39ec7ef006edc6d556a4d3cf",
-   "sha256": "1w2iiparzs88z2zg8ylqdidgn6qb73x68hjl53yfqqgvrz8krs2f"
+   "commit": "a19bbe94de492bf504399c093cfc5695eb630fa8",
+   "sha256": "0jhc0qn3q7npsixj1b1cmplxdvpy30745h32y0ybyydahqc3yc30"
   },
   "stable": {
    "version": [
@@ -93550,15 +94582,15 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20210411,
-    2007
+    20210425,
+    1720
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
-   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
+   "commit": "4a0f5405798cfcb98ea005078ef2e2d490e922c4",
+   "sha256": "04rz8mypgslb0la4wgj3na5c8p28s9lghq4nykcb28nhcxwfvz8n"
   },
   "stable": {
    "version": [
@@ -93615,15 +94647,15 @@
   "repo": "wanderlust/semi",
   "unstable": {
    "version": [
-    20210214,
-    853
+    20210529,
+    1313
    ],
    "deps": [
     "apel",
     "flim"
    ],
-   "commit": "20d75302509b5fba9849e74b61c1ce93e5819864",
-   "sha256": "14qy9k64fi8asd4ka9hv5v0aa7mkdnx6252n02gldg760janr7xl"
+   "commit": "95259568446f32c1af56dfc27e3614815322a1bf",
+   "sha256": "09xld1vpxdz1kvw039g7hk89p2d8pi95j9hgls6iviwzs6ni41yl"
   }
  },
  {
@@ -93735,15 +94767,28 @@
   "repo": "twlz0ne/separedit.el",
   "unstable": {
    "version": [
-    20210403,
-    1354
+    20210521,
+    1050
    ],
    "deps": [
     "dash",
     "edit-indirect"
    ],
-   "commit": "588a5dba2b38e57b88870efbc0cd2482202f28c8",
-   "sha256": "1m3kb6lvdr8manvlvi2avhba94lw16lvxy9p7vksk1gsmdmkgc0j"
+   "commit": "900fdc33b647e92d0f464872da1b12d724de7d43",
+   "sha256": "1ji8qjg3qsxprsqjp4hks999f0rfqnl3nyj08hr4vra5nqk6x4cg"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "deps": [
+    "dash",
+    "edit-indirect"
+   ],
+   "commit": "424b0f260a1bca20cd9359c42a0bc64a1a5e1928",
+   "sha256": "1i85mbnh6ijycsgxiknzvkimxag72cxg8asg3d1g4bakv3gp32rr"
   }
  },
  {
@@ -93754,11 +94799,11 @@
   "repo": "brannala/sequed",
   "unstable": {
    "version": [
-    20210315,
-    2012
+    20210417,
+    28
    ],
-   "commit": "50c5dca413a12fe2d8a89eae833f10967c2f38d2",
-   "sha256": "16hsjk04xw88ddr2gbwlb4v8didqmk7ffwphp1iqy3a02wf4kif6"
+   "commit": "b28e20bf3e0ec7c56c705632e38ab842083d9c49",
+   "sha256": "09bw3kjr32z8hlhrczl8i3h4yavdcmfx6bk7qxsyhn1f0vmskh03"
   }
  },
  {
@@ -94048,14 +95093,14 @@
   "url": "https://depp.brause.cc/shackle.git",
   "unstable": {
    "version": [
-    20201116,
-    1428
+    20210508,
+    1637
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1c88d2a2fdd2efb3e990da69d6fedeaee5ff71a2",
-   "sha256": "15adhf4iqcmirngcbq5gnn80yxg4hp9kyiccwn23hqq4az05pfyx"
+   "commit": "4ef05b117c87e1f0d97e0ee74fd2f0bfd07a49b1",
+   "sha256": "12x2b133a7npl2bibgsi5rr73cg77g1dljdwg4l49ipp7g4dsmcb"
   },
   "stable": {
    "version": [
@@ -94108,11 +95153,11 @@
   "repo": "arturovm/shades-of-purple-emacs",
   "unstable": {
    "version": [
-    20210213,
-    1939
+    20210506,
+    1448
    ],
-   "commit": "96c58f2421165d67f300cc5014715fc0517e8f8c",
-   "sha256": "17cnwc235wm6la3wh1wcrs621jqzka7xnrrbcsk4kv8fnidi81n4"
+   "commit": "e9d2ac081ae657b1ad6a30b9f53e8572479deb80",
+   "sha256": "0s3ga5ap1m9xfm20hnaanh4vvvkfv6d5h5mxia1sn526349lnpw5"
   }
  },
  {
@@ -94123,11 +95168,11 @@
   "repo": "Shopify/shadowenv.el",
   "unstable": {
    "version": [
-    20210216,
-    2031
+    20210512,
+    1625
    ],
-   "commit": "e4563469fe20b9e6e63d7b19c86ac8b8b615df1d",
-   "sha256": "1p7a4lps2w6dnc5i1fiwx22ij4in70a0h0bl5bp7ab5ba6l22kaw"
+   "commit": "dbcef650b906fec62608d5e4e3075bf251e675e1",
+   "sha256": "0qnqp06vb2ikkwy0p10x3s7mil6c948w42mx4c72cdz36m116zc0"
   }
  },
  {
@@ -94201,29 +95246,14 @@
   "repo": "sebasmonia/sharper",
   "unstable": {
    "version": [
-    20210328,
-    1533
+    20210523,
+    1821
    ],
    "deps": [
     "transient"
    ],
-   "commit": "70ae6071478f3e451ed9318d67a5d024c01235e0",
-   "sha256": "1fw2qn88b84v0fkaigyyipyvvhhllkw1s1h6fgv2xl2h19i8r0gd"
-  }
- },
- {
-  "ename": "shell-command",
-  "commit": "ae489be43b1aee93614e40f492ebdf0b98a3fbc1",
-  "sha256": "01nviashfr64wm78zi3vrqrqdqgsamp76d9kasxv0b7fqmfx7yjk",
-  "fetcher": "github",
-  "repo": "emacsorphanage/shell-command",
-  "unstable": {
-   "version": [
-    20090830,
-    1040
-   ],
-   "commit": "7e22125f746ce9ffbe9b0282d62f4b4bbbe672bd",
-   "sha256": "1my2i26a03z8xyyacsnl5wdylnbhhvazn23bpy639d3l4x4l7jzw"
+   "commit": "08277b6c30568adfbe438c9f2a1d6c3db4b7ebeb",
+   "sha256": "1n0nc3g57kl5d4zh0k0gis70kd05yb2pv7kw8akmdp9q7hxs6m93"
   }
  },
  {
@@ -94331,11 +95361,11 @@
   "repo": "DamienCassou/shell-switcher",
   "unstable": {
    "version": [
-    20161029,
-    552
+    20210509,
+    1045
    ],
-   "commit": "28a7f753dd7addd2933510526f52620cb5a22048",
-   "sha256": "1x7rrf56hjasciim8rj29vfngwis4pr3mhclvxd4sbmhz9y66wm0"
+   "commit": "ed74b20fa12935be0068765f5bc8de97b92a8020",
+   "sha256": "18ynh2j3mq206lqgkd7zmxzxh3661w9nbawkwvgkk2qi3837xrbr"
   },
   "stable": {
    "version": [
@@ -94434,11 +95464,11 @@
   "repo": "deech/shen-elisp",
   "unstable": {
    "version": [
-    20180915,
-    2028
+    20210530,
+    349
    ],
-   "commit": "73b74c8d6e3a2ea34b667d177d9f130765bfe501",
-   "sha256": "1ym048cmkghx373fb7n5m6r73q5nfa62m10mqr4nzhsizgyzdbrn"
+   "commit": "dabb829d0d86f454ceb3b0846cdfc11af1f91cc7",
+   "sha256": "1h7v3bbljkw7lsxz4ijvw47c6fj070j0p268v4il2xh2mzw1nhjm"
   },
   "stable": {
    "version": [
@@ -94528,11 +95558,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20210329,
-    149
+    20210606,
+    124
    ],
-   "commit": "8bab3dc89d36b55ba26ae5941f294c57805d24b2",
-   "sha256": "15kp2lsfci6p8wkrda12m4vf12p13xd9x5rh3ypc6yvz1snypgyy"
+   "commit": "0e18a7e96c8e425ac7c2e69aa26fa6a1e8e6e51a",
+   "sha256": "1jxp447d8xnk4ixpni7rsph7fd3p58ydmi39yrx201hbqh15jxiz"
   }
  },
  {
@@ -94718,15 +95748,15 @@
   "repo": "chenyanming/shrface",
   "unstable": {
    "version": [
-    20210321,
-    844
+    20210506,
+    358
    ],
    "deps": [
     "language-detection",
     "org"
    ],
-   "commit": "a73268705e3558ee91dc05674c5c3bed7fe28202",
-   "sha256": "1jjs0pclv0ya4d65wzafkvgb7lmg7f13jj0pihs1ch507fyiw3gp"
+   "commit": "935cfc793c7380732915c88302c06271d9fc5cee",
+   "sha256": "0i4qsz59598cd707fm7cjqvczwa6fmgi6fjyknn2wm58hh3yjldi"
   },
   "stable": {
    "version": [
@@ -94927,11 +95957,11 @@
   "repo": "rnkn/side-notes",
   "unstable": {
    "version": [
-    20210201,
-    724
+    20210502,
+    935
    ],
-   "commit": "3993e8de44c141420efbec3cdb4c5620b862a200",
-   "sha256": "1ivm2xr7mc8hp7g1l6l3a4mm5byn2cp7m6bv2g222997xbpk0il5"
+   "commit": "ca73cec33880322c5bbab407825d502d87f4cf0f",
+   "sha256": "1qnrk8kib4rndgbljqxq7cmskgxwcc9d8wdbdr3mgkgbg08xv5gq"
   },
   "stable": {
    "version": [
@@ -95060,14 +96090,14 @@
   "repo": "vapniks/simple-call-tree",
   "unstable": {
    "version": [
-    20180224,
-    2056
+    20210608,
+    33
    ],
    "deps": [
     "anaphora"
    ],
-   "commit": "20059eb5549408def76aeb03d0d20839903dedef",
-   "sha256": "0gvhn2r7h6jz7a3i3a8gwlmghv1xfzj0sdib25kz645iylazji4h"
+   "commit": "d776c801d773e535d1647524e2c4f63b200d8ef1",
+   "sha256": "1jh1h09l4vkzj40l8nskkilbggfl889l3rhi8b70jm4yvmk9np62"
   }
  },
  {
@@ -95379,14 +96409,14 @@
   "repo": "purcell/skewer-less",
   "unstable": {
    "version": [
-    20160828,
-    2021
+    20210510,
+    532
    ],
    "deps": [
     "skewer-mode"
    ],
-   "commit": "8ce9d030e18133319181d5dabe3e905c8ca5fd6b",
-   "sha256": "1hkk9si9z9zd2x2cv2gs0z423prlwlhq847irypz2dm1bnm5dzrx"
+   "commit": "baa973581c2ab7326db65803df97d1a7382b6564",
+   "sha256": "0md6gghgp8hn296fjwc3ikliw7p412v20917v0kqqlisdskizfbx"
   },
   "stable": {
    "version": [
@@ -95575,15 +96605,15 @@
   "repo": "slime/slime",
   "unstable": {
    "version": [
-    20210214,
-    2243
+    20210512,
+    1220
    ],
    "deps": [
     "cl-lib",
     "macrostep"
    ],
-   "commit": "68c58c0194ff03cd147fcec99f0ee90ba9178875",
-   "sha256": "0lammq7116hm79nldxlghi978m7bldccfdc9vy1rlfjj4mhnrlq0"
+   "commit": "bdda756a5667a537497a35f5a0fc5b7c28bf3bd3",
+   "sha256": "0xm3fdwla8axag1zpc7361mgyjpf1qg907l86w4v8ald8z4qcvl9"
   },
   "stable": {
    "version": [
@@ -95638,28 +96668,28 @@
   "repo": "cl-docker-images/slime-docker",
   "unstable": {
    "version": [
-    20210124,
-    2145
+    20210426,
+    1422
    ],
    "deps": [
     "docker-tramp",
     "slime"
    ],
-   "commit": "903470fe3860402794a4f268c1efffd44a30f273",
-   "sha256": "089yskdbkr7k25sns5vms7f0hqdbpnjg3ih95nhia1nghxcqj482"
+   "commit": "c7d073720f2bd8e9f72a20309fff2afa4c4e798d",
+   "sha256": "03jm0964qqggqia2fkvqgrx8r4knj1qgqr8vimr0x4q2j73lj12a"
   },
   "stable": {
    "version": [
     0,
     8,
-    2
+    3
    ],
    "deps": [
     "docker-tramp",
     "slime"
    ],
-   "commit": "903470fe3860402794a4f268c1efffd44a30f273",
-   "sha256": "089yskdbkr7k25sns5vms7f0hqdbpnjg3ih95nhia1nghxcqj482"
+   "commit": "c7d073720f2bd8e9f72a20309fff2afa4c4e798d",
+   "sha256": "03jm0964qqggqia2fkvqgrx8r4knj1qgqr8vimr0x4q2j73lj12a"
   }
  },
  {
@@ -95793,6 +96823,21 @@
   }
  },
  {
+  "ename": "slurm-mode",
+  "commit": "efd5910f51ffe2fa220ddd98dad57373e5dcfbf5",
+  "sha256": "0riqk45zj6zxssw3xqn3w2azd7qa80sm15bi11l9hxaxyk530g56",
+  "fetcher": "github",
+  "repo": "ffevotte/slurm.el",
+  "unstable": {
+   "version": [
+    20210519,
+    1109
+   ],
+   "commit": "589826fbb07f625b23c322df1cc16377c4fe6f66",
+   "sha256": "12plxmslrpx4b2aqh66zdhrmf41a6n6iaqbvsx42dk04caxfjp7m"
+  }
+ },
+ {
   "ename": "sly",
   "commit": "4a916e44049cf8c5616c7394389ef91e2a2b3e21",
   "sha256": "1pylaiy016yiyvd27m38wymw1k3bq7sfsd2d23idrgybc8miqqp6",
@@ -95800,11 +96845,11 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20210303,
-    1148
+    20210604,
+    937
    ],
-   "commit": "5966d68727898fa6130fb6bb02208f70aa8d5ce3",
-   "sha256": "00yk9g0gi4gsa99n2gsq41mkwgvmih52mngmk4g8ajzxsv0pbwq0"
+   "commit": "c783ba6576b554f3fc15a70bf30d225f277d1863",
+   "sha256": "1lwghrqw81dr7mhx8i92nn4xhamnpqwdvmzx1lg1fzy7g5qx7fl6"
   },
   "stable": {
    "version": [
@@ -96007,11 +97052,11 @@
   "repo": "malsyned/smart-dash",
   "unstable": {
    "version": [
-    20201202,
-    1616
+    20210427,
+    1709
    ],
-   "commit": "b4a298572e7acc3f39a908997fdcfa356bac0591",
-   "sha256": "1lkld9g53064wz2m3xxpjpf8vs75fa8kxxnvgpipvzq55sl1j9v7"
+   "commit": "bc740889dd81e7dc8a90a33d1f075f21aba9b2d3",
+   "sha256": "0kadfyvvzfk66d5k263j8cykqh9lbwrdqizs2mag6ahnadpahhyy"
   }
  },
  {
@@ -96100,14 +97145,14 @@
   "repo": "Malabarba/smart-mode-line",
   "unstable": {
    "version": [
-    20190527,
-    1156
+    20210428,
+    1641
    ],
    "deps": [
     "rich-minority"
    ],
-   "commit": "999be065b195f2eddb4e1b629f99038d832d44b7",
-   "sha256": "0jyvyn7pkqvyyv1rga3i10f4cwfbb0miacbib8lsrrhayrnal186"
+   "commit": "744ee1a9479a7901cedd6f0d59e6c6c86b20a78d",
+   "sha256": "18bf6f5yd8gympf5z8fs904qnjjdijapxpincjbpiyb2429yb34a"
   },
   "stable": {
    "version": [
@@ -96154,8 +97199,8 @@
     "powerline",
     "smart-mode-line"
    ],
-   "commit": "999be065b195f2eddb4e1b629f99038d832d44b7",
-   "sha256": "0jyvyn7pkqvyyv1rga3i10f4cwfbb0miacbib8lsrrhayrnal186"
+   "commit": "744ee1a9479a7901cedd6f0d59e6c6c86b20a78d",
+   "sha256": "18bf6f5yd8gympf5z8fs904qnjjdijapxpincjbpiyb2429yb34a"
   },
   "stable": {
    "version": [
@@ -96252,11 +97297,11 @@
   "url": "https://git.genehack.net/genehack/smart-tab.git",
   "unstable": {
    "version": [
-    20200416,
-    2228
+    20210530,
+    1743
    ],
-   "commit": "67bf4f93f8afca61a3dc4f6c7a34b0b8ca9ede21",
-   "sha256": "1ws49lbafch1rb6g0j9k5h30c9shk3vvqhbjkf4qvhaqii94lgml"
+   "commit": "2f1b4073904805c8454ebc9bc967b23836a2d577",
+   "sha256": "0fflc9f3gwf1kl3rplfb4dr10j167l85z2hwy77b4gbjzd7lp502"
   }
  },
  {
@@ -96308,15 +97353,15 @@
   "repo": "Fuco1/smartparens",
   "unstable": {
    "version": [
-    20210330,
-    850
+    20210529,
+    1129
    ],
    "deps": [
     "cl-lib",
     "dash"
    ],
-   "commit": "25f4d6d1b732f4deabf922059d22a0a7dc04bd0a",
-   "sha256": "0jaa81fk6376fpxx6k4c9nsv0dhsyk23v9c5jbhkqj3zkf1dcj4x"
+   "commit": "911cc896a0f2eb8b5fbdd6fc8331523ad9889a3a",
+   "sha256": "12g7q86ncawikvxr87p7vda21pbfiwi3kr3rgkm7b1lx3zabwcai"
   },
   "stable": {
    "version": [
@@ -96495,6 +97540,48 @@
   }
  },
  {
+  "ename": "smithers",
+  "commit": "147ae745350bd331d43c5a29e2cc4b56481c66a8",
+  "sha256": "07hv94qgkxxbanx0v7x7m18cy7f2jxraqyc83xycizlq4dx1k2vh",
+  "fetcher": "gitlab",
+  "repo": "mtekman/smithers.el",
+  "unstable": {
+   "version": [
+    20210531,
+    2232
+   ],
+   "deps": [
+    "dash",
+    "org"
+   ],
+   "commit": "db9ed12a8d2c131b6d37b4e7aff01b8e3cec81a6",
+   "sha256": "1rk1x096akhn5rip8vp2lf0yyyybqwq3w75vkmkg4dcb9cbrwz1q"
+  }
+ },
+ {
+  "ename": "sml-basis",
+  "commit": "043c253879bbc159c4867e58d4741ba2e9b8bb91",
+  "sha256": "1q0q2xg6hzmm34hfb2p4s81wa2n4ydr48ar3mi7f4r03cy0b2p5z",
+  "fetcher": "github",
+  "repo": "lassik/emacs-sml-basis",
+  "unstable": {
+   "version": [
+    20210518,
+    2040
+   ],
+   "commit": "c048d575e30a20ec825fd0c5eb9c8a4428a43298",
+   "sha256": "1zj4gjs57imr69lv6lq72vnp5qbvlry0yb4zw1cad19mzlfszyz1"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "c048d575e30a20ec825fd0c5eb9c8a4428a43298",
+   "sha256": "1zj4gjs57imr69lv6lq72vnp5qbvlry0yb4zw1cad19mzlfszyz1"
+  }
+ },
+ {
   "ename": "sml-modeline",
   "commit": "4728fce21f03c95bcc2b562648e99c537fb09cd8",
   "sha256": "00kz03ixkfnm4id8dd8aij2rhakzd4arzd790jdac1y3yyd5pp3y",
@@ -96778,15 +97865,15 @@
   "repo": "SpringHan/sniem",
   "unstable": {
    "version": [
-    20210410,
-    1115
+    20210605,
+    1242
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "7518cf3e1d6ca67e9ee8d9d1e930e1866f460c92",
-   "sha256": "05ncmknzrqsx8l3c1r3lm4b810m6hnrixbbzkik2brnyzqpqfphj"
+   "commit": "54005eb19dfab02f38074e696fa8d247b59a2ad8",
+   "sha256": "18ynqkf98rjyzl48l5399g49x9gdmsj0wyc4jp7mly7xrv51zblx"
   }
  },
  {
@@ -96962,26 +98049,26 @@
   "repo": "hlissner/emacs-solaire-mode",
   "unstable": {
    "version": [
-    20210327,
-    2155
+    20210601,
+    1921
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9d143db85428c5a7798e429f3b8abd2bf3f80747",
-   "sha256": "1g5cph02m07dxpmzd72xrzm56l62zdngis6xgz385zdfj67vi9a2"
+   "commit": "2298fd806d28daf511eb7836b23775e7df1f65e2",
+   "sha256": "1jfl0nhnv3ljagdlpsi2d7mhcrm8rww8crnhzad5zimzwc48nlcq"
   },
   "stable": {
    "version": [
-    1,
-    1,
-    2
+    2,
+    0,
+    0
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4ac324ccb0b751be80ce64449553462eafab4f32",
-   "sha256": "1klyzqrlsgx8q89zx1kn5z6wnpv1dmvbglldpv1y74hxhzi6ryps"
+   "commit": "59efa9c52ec407161f741e67071813c3c1901680",
+   "sha256": "0aigavrqfi2dy4q5vrfs48n5k7839gqnafq7mp14cmcbrzcwadrd"
   }
  },
  {
@@ -96992,14 +98079,14 @@
   "repo": "bbatsov/solarized-emacs",
   "unstable": {
    "version": [
-    20210202,
-    1730
+    20210519,
+    925
    ],
    "deps": [
     "dash"
    ],
-   "commit": "4d4b004460271e310ca45606d24a60e95ca3151d",
-   "sha256": "1fjvi10asfz5qya91swma2k9w7a79kh7a3lik23gdqzxs0swmn4g"
+   "commit": "e626b1889d8c945806e959e451f08633d948f8a7",
+   "sha256": "1nz04q681slnzcqzc6lcckmv72h017616l1j7q4aalf2dqkn529z"
   },
   "stable": {
    "version": [
@@ -97031,8 +98118,8 @@
     "flycheck",
     "solidity-mode"
    ],
-   "commit": "b83354943626ea7c50011d5806b17be17077d1c4",
-   "sha256": "0h4fyyv2k44x67nwqflh3zpazfkcf5zbgdzwjxbwjgvvxm1hdqlx"
+   "commit": "383ac144727c716c65989c079ae76127e25144c3",
+   "sha256": "1q4b8623mygzp3qwy5bmb3hipzjfri9007x0ilq3i7k5bs34jz9r"
   },
   "stable": {
    "version": [
@@ -97056,11 +98143,11 @@
   "repo": "ethereum/emacs-solidity",
   "unstable": {
    "version": [
-    20210331,
-    1709
+    20210505,
+    1704
    ],
-   "commit": "b83354943626ea7c50011d5806b17be17077d1c4",
-   "sha256": "0h4fyyv2k44x67nwqflh3zpazfkcf5zbgdzwjxbwjgvvxm1hdqlx"
+   "commit": "383ac144727c716c65989c079ae76127e25144c3",
+   "sha256": "1q4b8623mygzp3qwy5bmb3hipzjfri9007x0ilq3i7k5bs34jz9r"
   },
   "stable": {
    "version": [
@@ -97178,11 +98265,11 @@
   "repo": "mssola/soria",
   "unstable": {
    "version": [
-    20210201,
-    1830
+    20210426,
+    1433
    ],
-   "commit": "f765f193ccaf4ad438e1d9be842efd2f4394efa4",
-   "sha256": "1p6kzsci8hgccpjcy6swwa6yk741l6ay48rb35gmf03j04abszm0"
+   "commit": "12d3472e6823ff1bdc1591984367e2ed769afcb7",
+   "sha256": "1vyg73svawi8g1mq6v5y5g9hw0vnks2nhbwdkbn6d53b7bcr0hpx"
   },
   "stable": {
    "version": [
@@ -97210,35 +98297,6 @@
   }
  },
  {
-  "ename": "sos",
-  "commit": "e8acf595ef51c928b4b41a9fea171fbfd40c080d",
-  "sha256": "1sny4wa2746fi9p18js0y9fm2f9ix7yblqyqa36ibkfj4b50hvxi",
-  "fetcher": "github",
-  "repo": "emacsattic/sos",
-  "unstable": {
-   "version": [
-    20141215,
-    403
-   ],
-   "deps": [
-    "org"
-   ],
-   "commit": "1573adca912b88b5010d99a25c83a5b2313bd39c",
-   "sha256": "19jwnny0v6ppakpaaxv9qhr6353mksh9kxiz61kp4h12n6sfrb7p"
-  },
-  "stable": {
-   "version": [
-    0,
-    1
-   ],
-   "deps": [
-    "org"
-   ],
-   "commit": "c3906ca6872f460c0bdd276410519308626313f1",
-   "sha256": "0b5w3vdr8llg3hqd22gnc6b6y089lq6vfk0ajkws6gfldz2gg2v1"
-  }
- },
- {
   "ename": "sotclojure",
   "commit": "3a2ccef8af91eada4449d9cd4bda6bd28272722e",
   "sha256": "12byqjzg0pffqyq958265qq8yxxmf3iyy4m7zib492qcj8ccy090",
@@ -97381,16 +98439,15 @@
   "repo": "nathankot/company-sourcekit",
   "unstable": {
    "version": [
-    20180101,
-    834
+    20210430,
+    2155
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "request"
    ],
-   "commit": "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781",
-   "sha256": "1g8a4fgy2c5nqk8gysbnzn5jvfw6ynmfhc6j3hkrbswgf9188v5n"
+   "commit": "a1860ad4dd3a542acd2fa0dfac2a388cbdf4af0c",
+   "sha256": "18pv1hcilj7kndr7a29jjskp21khh1sd0wy01h8y8y9mf70kikg6"
   },
   "stable": {
    "version": [
@@ -97706,11 +98763,11 @@
   "repo": "condy0919/spdx.el",
   "unstable": {
    "version": [
-    20210306,
-    1600
+    20210415,
+    1821
    ],
-   "commit": "b9f49bab9551e8ca1232582acffdd0a90aaa35f3",
-   "sha256": "0k9dlkxns8yhv1yzfjlr5gkfc26ihhqjfsjchqg9fvfxqnd39pic"
+   "commit": "86c223a2db529768fd815dc0635ed432c1a215e8",
+   "sha256": "1bz6186w83xmajnw489dc1la7b6gly9vrp40mh58gknk5fjdx86w"
   }
  },
  {
@@ -97748,11 +98805,11 @@
   "repo": "brailcom/speechd-el",
   "unstable": {
    "version": [
-    20200706,
-    1236
+    20210607,
+    2032
    ],
-   "commit": "058f91b4d1b0350221218656202ea80cd6827d65",
-   "sha256": "0c9k68mnwm7hhd9mj6f3p8k83kmd67rgzcr27791mnjfkhipynvb"
+   "commit": "2ffae385139936a03e1d1a96993d3bf5f9509bbf",
+   "sha256": "1kwg74qy66kwhsl2pqn4cvkrqrfdvyyaz13h4h1bqpxckb1dc05z"
   }
  },
  {
@@ -97837,15 +98894,11 @@
   "repo": "ideasman42/emacs-spell-fu",
   "unstable": {
    "version": [
-    20210328,
-    413
+    20210415,
+    1326
    ],
-   "commit": "c566ed568aae0a73202a51e97a73c5e4af0053d2",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 265 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 703 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 1251 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 2299 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503\n"
-   ]
+   "commit": "fae15427a1027e5eafdff7e5627cd399f73dbc37",
+   "sha256": "05xarav1dw4315rh4qchvf6p9vsdyg09nm9rc6k657n4r8ip725c"
   }
  },
  {
@@ -98382,11 +99435,11 @@
   "repo": "srcery-colors/srcery-emacs",
   "unstable": {
    "version": [
-    20210201,
-    1444
+    20210601,
+    1247
    ],
-   "commit": "760dc6cb854383ab087d9b924de7273deddefe6a",
-   "sha256": "15anfzsfgddrlskppk068dzlz4zkg7xyk9727a7hwg4845126q6w"
+   "commit": "58dd21cd63e4a2eed15e0082c2547069363f107b",
+   "sha256": "128ri2g7jjgpacvaxhwwv4f2h3kdzf5vv3p01yqbs23m8mri8d9w"
   },
   "stable": {
    "version": [
@@ -98429,11 +99482,11 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20210325,
-    445
+    20210528,
+    2053
    ],
-   "commit": "633a0ff419438987f6271ff5a5da26307950a3cd",
-   "sha256": "070p4wyphhm7115afvq7lhxkb69c7l7fz3q5nkwbpjsdp5s8isns"
+   "commit": "c4ff94490dd8124e633f907f94955b30b7a4d8d4",
+   "sha256": "065n3x1mzhjgkyvy5j3fgqa75npxqp1dq05xgac9pqgcr2j09mi6"
   },
   "stable": {
    "version": [
@@ -98546,11 +99599,11 @@
   "repo": "jhgorrell/ssh-config-mode-el",
   "unstable": {
    "version": [
-    20210401,
-    243
+    20210517,
+    1925
    ],
-   "commit": "6d4f8d12c6a7e7ff776271f3656be5f3ba5a784e",
-   "sha256": "1pxpm24rlrrdzmy129c6naz9zxfsjrk6hgx3qcizd25kq86sfy4g"
+   "commit": "ff9a15ec150baef21d7d8c6f79c5602e56825391",
+   "sha256": "1nvsxj616lgciysmvzpwfpq7dv0alkv2ma4gi9b4j3vjwm0rzbry"
   }
  },
  {
@@ -98857,16 +99910,16 @@
     20200606,
     1308
    ],
-   "commit": "6af99af232c90d1629ac71be500eef2241245c81",
-   "sha256": "03wl804pacmzr2gjdz6ssq0l03hs68hadlgjdn6hinp2k0r90pxw"
+   "commit": "311caea3f11330a42a37efe078305b4ce42e53ae",
+   "sha256": "1hfr36xb24y829pcd4maw206lyhrb3qwxxzj6gwh3a0nw8s1sr1m"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
-   "commit": "11aa5944459e464a96f41d934e23da5320c13333",
-   "sha256": "0nc388hi362rks9q60yvs2gbbf9v6qp031c0linv29wdqvavwva1"
+   "commit": "68f949852ab7f0e8bb52c6a6fc2ece2a74ded824",
+   "sha256": "129mms7gd0kxqcg3gb2rp5f61420ldlhb0iwslkm7iv64kbxzww1"
   }
  },
  {
@@ -98907,11 +99960,11 @@
   "repo": "motform/stimmung-themes",
   "unstable": {
    "version": [
-    20210331,
-    1140
+    20210430,
+    839
    ],
-   "commit": "0dc71ec178c3dab8973c90758fa730c70df01554",
-   "sha256": "0glp3h5anrsvm89zs99gdyp3rpc0g41va30nxw5pn02yv7cqz7hd"
+   "commit": "eac0f54da5ff116622a6448b68057b45c337f2de",
+   "sha256": "0b7glyq3z98vi7f79zg0phqm6ibc30lq2m4mwy22gg0941rr2zja"
   }
  },
  {
@@ -99340,30 +100393,6 @@
   }
  },
  {
-  "ename": "sudden-death",
-  "commit": "3f20f389a2d7ddf49ca64d945b41584a7c120faf",
-  "sha256": "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh",
-  "fetcher": "github",
-  "repo": "yewton/sudden-death.el",
-  "unstable": {
-   "version": [
-    20180217,
-    23
-   ],
-   "commit": "791a63d3f4df192e71f4232a9a4c5588f4b43dfb",
-   "sha256": "0z3adwd6ymapkdniny3ax2i3wzxp11g6in4bghbcr9bfdxcsf7ps"
-  },
-  "stable": {
-   "version": [
-    0,
-    2,
-    1
-   ],
-   "commit": "791a63d3f4df192e71f4232a9a4c5588f4b43dfb",
-   "sha256": "0z3adwd6ymapkdniny3ax2i3wzxp11g6in4bghbcr9bfdxcsf7ps"
-  }
- },
- {
   "ename": "sudo-edit",
   "commit": "3b08d4bbdb23b988db5ed7cb5a2a925b7c2e242e",
   "sha256": "10vz7q8m0l2dyhiy9r9nj17qlwyv032glshzljzhm1n20w8y1fq4",
@@ -99784,6 +100813,36 @@
   }
  },
  {
+  "ename": "sway",
+  "commit": "4c2d1eec09d5f69fbec99c6d190cc78882d8a74c",
+  "sha256": "00jysn6x6n54xpj6vwrp582p001bjbkjilqs4gsxs5r829cr3zyw",
+  "fetcher": "github",
+  "repo": "thblt/sway.el",
+  "unstable": {
+   "version": [
+    20210501,
+    2201
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "8a4d9cc1a469efa707cf67b57b752f28547e331e",
+   "sha256": "0x5w3f07dsgbl7qlcqpmpm3831lrv5jx59g7xnv25giwc3w21d2d"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    4
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "8a4d9cc1a469efa707cf67b57b752f28547e331e",
+   "sha256": "0x5w3f07dsgbl7qlcqpmpm3831lrv5jx59g7xnv25giwc3w21d2d"
+  }
+ },
+ {
   "ename": "sweet-theme",
   "commit": "a149448c38504bdf6f782a10cb1440da9102990f",
   "sha256": "1ca56disxyr30anvpqahh33s062y35w003yxi1rhdrknka2cnl5q",
@@ -99855,15 +100914,15 @@
   "stable": {
    "version": [
     0,
-    2
+    3
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "swift-mode"
    ],
-   "commit": "661e6fe419948419da4abf916b193b331b80a3be",
-   "sha256": "08w9h12y54aj2q6k48p9fglacppb5mlqh18h43n45hd7rcph3j93"
+   "commit": "ed36ea3d8cd80159f7f90b144c4503411b74ae3e",
+   "sha256": "0bcrnslqhgz122mv6br6w848a3x3g4jkz1pkdpb4726xssfzz8zk"
   }
  },
  {
@@ -99874,26 +100933,26 @@
   "repo": "swift-emacs/swift-mode",
   "unstable": {
    "version": [
-    20210410,
-    723
+    20210518,
+    728
    ],
    "deps": [
     "seq"
    ],
-   "commit": "fd3c824c3622aef4ad29983667f34ebad91e9f69",
-   "sha256": "1s60j7778n8vl53capi1bs5mbb1g2vwaaa4y7wdv6ajrlxh95a5x"
+   "commit": "4a5f57722e06dad3bbbb1a496ef7d1b732ac7c46",
+   "sha256": "05x6xy29dym9pn8kssiwhn34c1vwxgsb9jnfq6n0ii5inlw0vx2g"
   },
   "stable": {
    "version": [
     8,
-    1,
-    1
+    2,
+    0
    ],
    "deps": [
     "seq"
    ],
-   "commit": "e65a80a659c74d0a62b00dff183a0f7fc8385ce1",
-   "sha256": "18i6m2zys0nc9j29f7bkzjcfp7rcaycr473ykhprsfikfcgwkj3y"
+   "commit": "fd3c824c3622aef4ad29983667f34ebad91e9f69",
+   "sha256": "1s60j7778n8vl53capi1bs5mbb1g2vwaaa4y7wdv6ajrlxh95a5x"
   }
  },
  {
@@ -99904,8 +100963,8 @@
   "repo": "michael.sanders/swift-playground-mode",
   "unstable": {
    "version": [
-    20190730,
-    1707
+    20190717,
+    2223
    ],
    "deps": [
     "seq"
@@ -99958,14 +101017,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210404,
-    1302
+    20210521,
+    1319
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
-   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
+   "commit": "040d458bce4a88f37359192061bcea5ebe87007c",
+   "sha256": "0lgpawrsvihksm9cx462qa1hsmxhhv1qp0h1f9m4wn1jrcrq7r24"
   },
   "stable": {
    "version": [
@@ -100169,32 +101228,32 @@
  },
  {
   "ename": "sxiv",
-  "commit": "1b3da730053c1f45e67fefb2e9bfce222cc38628",
-  "sha256": "0jj0bzw365227anvg9zqy78zdfczfvqlac47kjdyziqmj958yhh8",
-  "fetcher": "gitlab",
-  "repo": "contrapunctus/sxiv.el",
+  "commit": "7a9ad1ddf9387323c8c3a48f7e1443be01f95440",
+  "sha256": "1yiwdrg3cgxpjijk7hxl7dv7q9l3sk0ga2896110yc2f2prjm9fc",
+  "fetcher": "git",
+  "url": "https://tildegit.org/contrapunctus/sxiv",
   "unstable": {
    "version": [
-    20200803,
-    1431
+    20210514,
+    918
    ],
    "deps": [
     "dash"
    ],
-   "commit": "9eb6a121bfdf64433cd8ac7985d2c82b590b5abb",
-   "sha256": "0fjzzynlmqxxrr4520rh7ds0gip6l8cbmrgp7ghrgm07830arpcj"
+   "commit": "a531a7596e307a218beb8ff77893eeae61284f6e",
+   "sha256": "0gimq172pp143jckfhhyw319n3vpjvlkadm0vhypycas9i89mcg0"
   },
   "stable": {
    "version": [
     0,
-    3,
-    3
+    4,
+    1
    ],
    "deps": [
     "dash"
    ],
-   "commit": "9eb6a121bfdf64433cd8ac7985d2c82b590b5abb",
-   "sha256": "0fjzzynlmqxxrr4520rh7ds0gip6l8cbmrgp7ghrgm07830arpcj"
+   "commit": "a531a7596e307a218beb8ff77893eeae61284f6e",
+   "sha256": "0gimq172pp143jckfhhyw319n3vpjvlkadm0vhypycas9i89mcg0"
   }
  },
  {
@@ -100225,14 +101284,14 @@
   "repo": "wolray/symbol-overlay",
   "unstable": {
    "version": [
-    20210118,
-    807
+    20210422,
+    2110
    ],
    "deps": [
     "seq"
    ],
-   "commit": "5bcd6d7e3f3b6501ccec3e6c378f33f7e7488c99",
-   "sha256": "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"
+   "commit": "4231a36e39b7393d639e9cdef19f311d780deeab",
+   "sha256": "0q2x39s3g5kmjf5q47qpqcnzdscnj112dfd7qqb2z0iq0sh2nbrd"
   },
   "stable": {
    "version": [
@@ -100247,6 +101306,21 @@
   }
  },
  {
+  "ename": "symbolist",
+  "commit": "967f1819c8d3a6ead5cc5bb7a577be07dabdbe5e",
+  "sha256": "1i940i77agy7c1rv7cqarxcbgjwvjnl05gwi0k2n45pzb91pvgld",
+  "fetcher": "github",
+  "repo": "lassik/emacs-symbolist",
+  "unstable": {
+   "version": [
+    20210503,
+    1220
+   ],
+   "commit": "f600e07fe06c19b67f917a8839bbcd6c78f1fbd4",
+   "sha256": "02x71kdnkhyzscc2bxayv55qfanqy0hm7rckq4mqhxbryjz7qcab"
+  }
+ },
+ {
   "ename": "symbolword-mode",
   "commit": "be2018e0206c3f39c1b67e83000b030d70a72ceb",
   "sha256": "1fs1irnmlbrn76b4gdsy0v65nz8av85iqm0b7g9nm2rm8azcr050",
@@ -100280,8 +101354,8 @@
   "repo": "countvajhula/symex.el",
   "unstable": {
    "version": [
-    20210408,
-    1839
+    20210528,
+    406
    ],
    "deps": [
     "evil",
@@ -100293,8 +101367,8 @@
     "seq",
     "undo-tree"
    ],
-   "commit": "feaf6d847bbff6642cd3c4926899eee3cbac261b",
-   "sha256": "1k4b8aqwglgavj3rsjj0macmppjsgb5ykpl388434crn067rlfpz"
+   "commit": "1b6466e75295bbf7847253dfb6bf580b1c68eb9f",
+   "sha256": "1rbb7zl45x9xkf05601j05vq3f3hj0nh3rbv16a3n8d0ab5qnvhr"
   },
   "stable": {
    "version": [
@@ -100672,11 +101746,11 @@
   "repo": "fritzgrabo/tab-bar-echo-area",
   "unstable": {
    "version": [
-    20210315,
-    1609
+    20210525,
+    2204
    ],
-   "commit": "d2ff6b1acb553bf1546e730640397b9e33ca5279",
-   "sha256": "1agjb68bjfjzgacrip2mjwzfdbvj3xn8cs3f6q5kdjg5v7lg9c9h"
+   "commit": "2196e76cb6f11e6ae0f35ac8259dfb755ea60336",
+   "sha256": "1xifgdwqpf0ccmdxhdr9zxzqsa769984xs4343v657171f53flz4"
   }
  },
  {
@@ -100687,14 +101761,14 @@
   "repo": "fritzgrabo/tab-bar-groups",
   "unstable": {
    "version": [
-    20210321,
-    2129
+    20210526,
+    2044
    ],
    "deps": [
     "s"
    ],
-   "commit": "b83315c9a63ba2f6bbeaaa449a3b78b84a87ec1c",
-   "sha256": "03pc85g5f5ys0s45ccg3z7dni4cxngs3532xf9ng94a421yhxmkr"
+   "commit": "63af8dced377a346b4559145b2e6e1767263f916",
+   "sha256": "16628wjk14h99z9i822xjv8fkxra6n65nafm3cr3ci86qd00j7a2"
   }
  },
  {
@@ -100911,11 +101985,11 @@
   "repo": "tmalsburg/tango-plus-theme",
   "unstable": {
    "version": [
-    20201103,
-    903
+    20210505,
+    1051
    ],
-   "commit": "07ee34725bc19fc1679effb262a014dbc6311aa2",
-   "sha256": "1flm1vq5fxmix0y6vnikbqr2v4q4idvzj26ilgq7pgx3m9d2q0gi"
+   "commit": "f31d282a70b0eb24470935438af59de96ddace2e",
+   "sha256": "1f3kxc9l0f4r7fxhrz77lghn4847f3b7dk8j84sn6d5zr436by8n"
   }
  },
  {
@@ -100941,11 +102015,11 @@
   "repo": "11111000000/tao-theme-emacs",
   "unstable": {
    "version": [
-    20201222,
-    602
+    20210417,
+    626
    ],
-   "commit": "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408",
-   "sha256": "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"
+   "commit": "d5ccf6f53d65e80083acdfb0bced6bcd678c6ea9",
+   "sha256": "1wgk0xngamwgh242wfmxizi5r1ji5dxmr8s542g3p7rgfv5w0qs8"
   },
   "stable": {
    "version": [
@@ -100965,11 +102039,11 @@
   "repo": "saf-dmitry/taskpaper-mode",
   "unstable": {
    "version": [
-    20210310,
-    1632
+    20210415,
+    1322
    ],
-   "commit": "d6edb345f31a13918d603d44b90a4ce30b34632b",
-   "sha256": "0jx095yjpsh28r6a23w2fxqv0rysbwz49c22vri2s8hzw011m55p"
+   "commit": "1c0028d6c406cf4884e6aa35313e82041b7e857f",
+   "sha256": "0gv1iychm7xzdf99l1kiyvqfdhl9s8g900jjq7bj2kkd3r3c22ki"
   },
   "stable": {
    "version": [
@@ -101013,20 +102087,20 @@
    "deps": [
     "cider"
    ],
-   "commit": "331e14b838a42adebbd325f80f60830fa0915d76",
-   "sha256": "1jpig982z0lbbnv2167q4lfv8dhhpg698gi6i7184lrjxr7dxqw7"
+   "commit": "82f343bac637e62f31152d72086c7facd4dfea27",
+   "sha256": "0bdai4gwz8nyc26gmb10z6pq6r2gw04iflzsc476xrp56d2abgbc"
   },
   "stable": {
    "version": [
     2,
-    0,
-    3
+    3,
+    0
    ],
    "deps": [
     "cider"
    ],
-   "commit": "ce85fd9bcd008031a605ea8913577f452b49e352",
-   "sha256": "06dm6gdh10jbmyjr0y96s06qi3k12phq522pviis68qm7v2ryr47"
+   "commit": "5da72b601cb9f052f35e88c41f1a18b326c03791",
+   "sha256": "1hhwyh4qkmhc303sf4qsarpczyqihh45z2xb96m2ra5zlqnklcpp"
   }
  },
  {
@@ -101156,28 +102230,28 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20210409,
-    2343
+    20210607,
+    1622
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "88e10161e1aa2a7c83ebc41ba8492d84d8e64e26",
-   "sha256": "010jlhbidl3vny9z4dp4mhix827p2aa76ja2v822sdlszcb8vh9x"
+   "commit": "0fcca201db99fbe93e8b0fd404dc00fd55cd658a",
+   "sha256": "0nqx5sddfa9442dgsssp022rfarznnq69gclj4h5kk726rkf9cid"
   },
   "stable": {
    "version": [
     0,
     7,
-    22
+    24
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "3ed57544faf0fdd17dd8762126466b15dc471f8f",
-   "sha256": "1frljw1gipsr9l6cpb1skwi5b566x9yx3dhcc7bxfq11inh7bc74"
+   "commit": "9187e6e3d903474645f3e64806bc62ef687ec205",
+   "sha256": "1ra04cp49zzx8vy8aswd00l46ixyc44sxh1s3nw880b4ywzxmc6j"
   }
  },
  {
@@ -101295,20 +102369,20 @@
   "repo": "clarete/templatel",
   "unstable": {
    "version": [
-    20210327,
-    2307
+    20210425,
+    2215
    ],
-   "commit": "dd7e76919f36da9f8efe7f9e3d84098f3c7c6644",
-   "sha256": "0apv1r756d984a47d9pvqzgcs652fdwy3swf4js9dki3nzljy756"
+   "commit": "3ee3761d9dd30b1c6af74dc393d43b9a91a75951",
+   "sha256": "1c58m2x4frwqxbi8n884c4l69pfwzdxsrig8p35y7mbywlwf1s2l"
   },
   "stable": {
    "version": [
     0,
     1,
-    5
+    6
    ],
-   "commit": "971153aa43addf88bfe0922bcac19cb0edd3f86d",
-   "sha256": "0ldb01sxzrvchjy160karvmksinicw3d14jazriy84dxks8i6w8a"
+   "commit": "8374097a129b2cd13c449568f95ee7380b36b307",
+   "sha256": "03n7amd2mfr4jmc4s1ar5ckm86knr7qarxxlkdhbnw3svy5kbc57"
   }
  },
  {
@@ -101419,22 +102493,22 @@
  },
  {
   "ename": "term-alert",
-  "commit": "0d77aee0b1b2eb7834436bdfa339f95cb97da140",
-  "sha256": "02qvfhklysfk1fd4ibdngf4crp9k5ab11zgg90hi1sp429a53f3m",
+  "commit": "8bcf021a68579f1b9c02dc959c525de0c6ca1fb0",
+  "sha256": "1hk1gzszqc3ijzarzi9d5hiw8ya19qp5jyb7alnsx7sn9pw6a612",
   "fetcher": "github",
-  "repo": "CallumCameron/term-alert",
+  "repo": "calliecameron/term-alert",
   "unstable": {
    "version": [
-    20161119,
-    945
+    20210414,
+    1638
    ],
    "deps": [
     "alert",
     "f",
     "term-cmd"
    ],
-   "commit": "1166c39cc3fb1cb7808eb8955b7f9f6094a306cd",
-   "sha256": "1hbyiwqv9waynf8gm3c717mph0p9mfi2x1wfpvdzzr25r0fz8xr0"
+   "commit": "ca1b48ad911bc972b049f48fe0531e702dbc553c",
+   "sha256": "0jnv1011y521pc4rrjyrv1la6r1q2sb120lxf1nbns17wv86d0cd"
   },
   "stable": {
    "version": [
@@ -101452,21 +102526,21 @@
  },
  {
   "ename": "term-cmd",
-  "commit": "e08ea89cf193414cce5073fc9c312f2b382bc842",
-  "sha256": "0pbz9fy9rjfpzspwq78ggf1wcvjslwvj8fvc05w4g56ydza0gqi4",
+  "commit": "8bcf021a68579f1b9c02dc959c525de0c6ca1fb0",
+  "sha256": "0jcn77hcjykvd1778948pj2qr03n1w4q8alz50gnlwg3y031y92y",
   "fetcher": "github",
-  "repo": "CallumCameron/term-cmd",
+  "repo": "calliecameron/term-cmd",
   "unstable": {
    "version": [
-    20160517,
-    1045
+    20210417,
+    1447
    ],
    "deps": [
     "dash",
     "f"
    ],
-   "commit": "552aa58965aab9b78e46934462bafe54c0396ffb",
-   "sha256": "0l5xk8npc23c716fjckd65xq83hjwnvpyxixc9brxfz4ybngzwhy"
+   "commit": "281b9a6d864ca85dc1451dc46baca98f48dc3f60",
+   "sha256": "1knijk9l8ipb882h8awwx18lh3q1yy13dyjp5gm36nw06212qxx2"
   },
   "stable": {
    "version": [
@@ -101613,11 +102687,11 @@
   "repo": "davidshepherd7/terminal-here",
   "unstable": {
    "version": [
-    20201230,
-    1219
+    20210605,
+    1453
    ],
-   "commit": "cb561b5feb37a03a1c35708c3eebf9b51b01f7a0",
-   "sha256": "02vmy0xbssqvs97f7ypmk50hiyb7qdsbrmmnlf3mlm55c2abk73s"
+   "commit": "e0e89344624fadf080f6770132ebdd7991355fdd",
+   "sha256": "11hvyvnbr6skw6czwk8gjw9v08azf8s2kafqh5jb1nlznfghcr11"
   },
   "stable": {
    "version": [
@@ -101755,20 +102829,20 @@
   "repo": "TxGVNN/terraform-doc",
   "unstable": {
    "version": [
-    20210322,
-    837
+    20210514,
+    737
    ],
-   "commit": "77181c75cbde5954542688659cd4f2352ed29fbe",
-   "sha256": "1bcwja7hm11hxd1nmf1z93hkzcvkkpxavvbivg6j336ygzr1r82g"
+   "commit": "5d35efbf2c1619d9385ef00ed74e9de1ea7cf32d",
+   "sha256": "11df5606hiqgglxi6xrrljwh70h2wgkib447ggvs2r3f2jayilr4"
   },
   "stable": {
    "version": [
     1,
-    0,
-    1
+    1,
+    0
    ],
-   "commit": "d609290021ea7f2d10caadffc9131663838f8ad4",
-   "sha256": "1gvydmi37d7jxibn7nfg1rhb6phfn3kgrlmq250g7321g15j1q3v"
+   "commit": "77181c75cbde5954542688659cd4f2352ed29fbe",
+   "sha256": "1bcwja7hm11hxd1nmf1z93hkzcvkkpxavvbivg6j336ygzr1r82g"
   }
  },
  {
@@ -102247,18 +103321,18 @@
     20200212,
     1903
    ],
-   "commit": "9c6323483c9feaa9ffba8ceb98f54281733ed50c",
-   "sha256": "0qjx9arygjh7h3wjrfcwc7jw1jxah2jf6wfinprv7b6jg1n8k6vy"
+   "commit": "a67ce1533462256ff418027a3aa56516a1139d02",
+   "sha256": "0f20x4bklq32lcwa2ihnlnb6ri884xx7dyhg62yqz9y4w8filhhv"
   },
   "stable": {
    "version": [
     2021,
-    3,
-    15,
+    6,
+    7,
     0
    ],
-   "commit": "6d68811e7ee75f8e0b450b9b1778bfad2c44c715",
-   "sha256": "16yixl9qq6zh47zjnad9rv2vbjq936ms212j0wfdax7qhg094af8"
+   "commit": "ec71afa89573c92de4a2a2ab87a51bd9021f5819",
+   "sha256": "0h3b89nb8sshhc52fxsgpdiqr85mfg1rpzp69qmiiwx1yz0b66wi"
   }
  },
  {
@@ -102314,20 +103388,20 @@
    "deps": [
     "haskell-mode"
    ],
-   "commit": "4f7bbb325631968d6e7b82b25ece810959d4b87f",
-   "sha256": "1p4w48zz25fym40l3wijr06qfd4drhkynbhf2nx2yh766yv8icmg"
+   "commit": "cfc231660a642b2451f874824365931419ab45a0",
+   "sha256": "06wqsljigm7hvycvg4p5rilivr8g7im300jlnm1r463dc1d12kjh"
   },
   "stable": {
    "version": [
     1,
     7,
-    2
+    4
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "223b0f4388dce62c82eb2fb86cf1351d42aef198",
-   "sha256": "0k93i9smhw5bws2xiybha15g26mwyq0zj6xzxccwh0bfpl76xzqq"
+   "commit": "652d7a4e374d3c171278e6bdfccfa41c7621d4d3",
+   "sha256": "11590ifnh9ynwcfv31f5m59wr6ckrm3xi2g40wvk4ddxslj4yxnh"
   }
  },
  {
@@ -102338,8 +103412,8 @@
   "repo": "ananthakumaran/tide",
   "unstable": {
    "version": [
-    20210327,
-    1928
+    20210517,
+    507
    ],
    "deps": [
     "cl-lib",
@@ -102348,14 +103422,14 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "ad6fa78911d5d7e85c0851c0c1afc01f3cbde7c1",
-   "sha256": "1b815gxmn31x5b59mmlv5di72mz3vdm19crrpcnvb18vl2ak2vw3"
+   "commit": "c593153373d05b56ae56b0ca3a6752ee86708aaa",
+   "sha256": "0mrzk9ngmqg0p9hgirlvs08wxcc9vm3hibpy8khgclb8gzxjrs57"
   },
   "stable": {
    "version": [
     4,
-    0,
-    2
+    2,
+    3
    ],
    "deps": [
     "cl-lib",
@@ -102364,8 +103438,8 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "dafb6befd83e5eea2e2c7f79ab89bc4877001b6d",
-   "sha256": "1n2dihpl53a48jis3l4rry581wpr5lxjd433drlkaa4lqgx8cw67"
+   "commit": "2a3ac4f38472d66e2d8a6bbe5dadb52bc008acbd",
+   "sha256": "1fj2fghiycnzds2zxfxgj1d9mdzsvs9rvl9bwy2f1vwawqk1m48w"
   }
  },
  {
@@ -102556,6 +103630,21 @@
   }
  },
  {
+  "ename": "timu-spacegrey-theme",
+  "commit": "1bebe80350df731711bc526ca9fe942410211220",
+  "sha256": "1hl91gdj52zp8w4c6zp4bzkizj3x7ssr6wl465qq3fw1k5wp8l7n",
+  "fetcher": "gitlab",
+  "repo": "aimebertrand/timu-spacegrey-theme",
+  "unstable": {
+   "version": [
+    20210607,
+    1412
+   ],
+   "commit": "34a4499fac484c369774e356373b1f4994d65176",
+   "sha256": "11cjyiwi87rv9lj09810aazxgphdhpxpfhbhzr64176vqgmb8khr"
+  }
+ },
+ {
   "ename": "tinkerer",
   "commit": "8a28e1dfe987287bac7c45f83ae6e754bc13e345",
   "sha256": "0qh6pzjn98jlpxcm9zf25ga0y3d3v53275a9zgswyhz33mafd7pd",
@@ -102726,10 +103815,10 @@
   "repo": "snosov1/toc-org",
   "unstable": {
    "version": [
-    20210323,
-    1256
+    20210421,
+    657
    ],
-   "commit": "c4c61c5a382f94a3a4537e254243006dec2dcca4",
+   "commit": "df4ad6ff15e3b02f6322305638a441a636b9b37e",
    "sha256": "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"
   },
   "stable": {
@@ -102824,8 +103913,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "74e1fcbeca25734235afec9c6a4d0cf73736b62c",
-   "sha256": "0yrcsr4360v222klahbccfq3vb4kp5xdsibydwircv36xhxplzq3"
+   "commit": "2d76365d2aa13543121d5c623df465adb68b76f7",
+   "sha256": "1n247g5dq73rkxf0wys5lsbvma44y5qlh577s3rcx7l0yrylwdry"
   }
  },
  {
@@ -103124,8 +104213,8 @@
    "deps": [
     "w32-ime"
    ],
-   "commit": "809215eccfe8ff33d461c7ff980ed64c621a84bb",
-   "sha256": "1915v2x45cx9ydb53aw98da00wmqymn96af0wan9k46527ck54lg"
+   "commit": "92591f7c0b94f8b1875f1078d1ba3be40848f0b8",
+   "sha256": "0r5cmj8ih8n7m37fqwyymmd0swyxr6g124cw9cz24ri0dyiwi73k"
   },
   "stable": {
    "version": [
@@ -103190,11 +104279,11 @@
   "repo": "jorgenschaefer/circe",
   "unstable": {
    "version": [
-    20201101,
-    1045
+    20210528,
+    754
    ],
-   "commit": "e67e2d1149ebf3e79cd2162e78802af3ed5f82da",
-   "sha256": "0jrpa8kndq2v69nr9jva970q0n3662x2g0chg89nd2d3gbv693mw"
+   "commit": "c0b2f997b3b73640d635ee84627bb8cf36c9adfe",
+   "sha256": "1kjfch0fhq67iivad56s071c8qlsssdsdg83h5v9iz2x4jipm0wa"
   },
   "stable": {
    "version": [
@@ -103249,11 +104338,11 @@
   "repo": "raghavgautam/tramp-hdfs",
   "unstable": {
    "version": [
-    20201001,
-    2022
+    20210526,
+    339
    ],
-   "commit": "822c7b8a5bfca97544817d04e8a4ff1ffbaf4267",
-   "sha256": "0kxxdpmr9h0kqsylh8aj8m5arwf4m5yrkcadjssa76drhdlhcirl"
+   "commit": "aa93bdbb3d5619c262ce53af1981edcd2a0705e5",
+   "sha256": "1ar1565qhw6wx76p5p7dyb5k0lplnfbf866x2mc6kn9vydmb29za"
   }
  },
  {
@@ -103297,20 +104386,20 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20210315,
-    1902
+    20210530,
+    2252
    ],
-   "commit": "cc16a5eaa73617a281b0bbf71b24432c38994e30",
-   "sha256": "15ah0h7i96wn4w5321gydr6pxahb8mc8dk58b9paqv06klp5q2cd"
+   "commit": "a96818c93a10d9ef9bb14e5c0b9fdc1a808b13b9",
+   "sha256": "1mvccsfalnr4ybsgqazxcw62vfhigxg61y6v98k2fqncnmsbripa"
   },
   "stable": {
    "version": [
     0,
     3,
-    0
+    4
    ],
-   "commit": "9ca983bab26d1a8e189a8c44471d9575284b268d",
-   "sha256": "0g694ydmb9zjn99hxgfjd3m73kpmnkbrgqhr73b4crbxza5sl29c"
+   "commit": "b47e9d7d769437e279628d801a95c173c4ff26b4",
+   "sha256": "16z0j69sk7k51sd1vri3y2v0xjj0w7wpf5mmwnsxp8y6d3m0yjbv"
   }
  },
  {
@@ -103671,8 +104760,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210411,
-    1031
+    20210606,
+    1918
    ],
    "deps": [
     "ace-window",
@@ -103684,8 +104773,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   },
   "stable": {
    "version": [
@@ -103721,8 +104810,8 @@
     "all-the-icons",
     "treemacs"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   }
  },
  {
@@ -103733,15 +104822,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210107,
-    1251
+    20210419,
+    1753
    ],
    "deps": [
     "evil",
     "treemacs"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   },
   "stable": {
    "version": [
@@ -103764,14 +104853,14 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210107,
-    1251
+    20210605,
+    1118
    ],
    "deps": [
     "treemacs"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   },
   "stable": {
    "version": [
@@ -103802,8 +104891,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   },
   "stable": {
    "version": [
@@ -103835,8 +104924,8 @@
     "persp-mode",
     "treemacs"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   },
   "stable": {
    "version": [
@@ -103868,8 +104957,8 @@
     "perspective",
     "treemacs"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   }
  },
  {
@@ -103887,8 +104976,8 @@
     "projectile",
     "treemacs"
    ],
-   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
-   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
+   "commit": "c2b0beaeb0383c3e6cbc453d6c42cdbc87c6da5e",
+   "sha256": "1plbkalmqi94ikb61yzbs07cr18my1s5p9fli4yd4qkw4mbwc3s4"
   },
   "stable": {
    "version": [
@@ -103988,26 +105077,26 @@
  },
  {
   "ename": "tron-legacy-theme",
-  "commit": "975e93e060f50a1fd00a6ba1566a9386271bdfd6",
-  "sha256": "08cfhnkb62121h6dksw9c0d38vxm38dfbfww7c8kj491is0w63f4",
+  "commit": "f217fe20e19e1c3e249857c4fdde7a7cfde76c36",
+  "sha256": "1xy6n2rdga2if1slkqs6xdl2h8kf8h92xb03a3k99gznmgxdzcxw",
   "fetcher": "github",
-  "repo": "ianpan870102/tron-legacy-emacs-theme",
+  "repo": "ianyepan/tron-legacy-emacs-theme",
   "unstable": {
    "version": [
-    20210315,
-    712
+    20210420,
+    1201
    ],
-   "commit": "4d543fbb9cb2098af1be0f5b10e1e4cd5245a9d0",
-   "sha256": "0fyprvi4s331r6a54xa4dljw0k330kiyhzcfnnjhbsqxc86264pz"
+   "commit": "e7d16ebe4a824e7d7766fb34ffe4ea3b002f3d23",
+   "sha256": "15njpd9923rl07lq4mxs611glgnw3qyr21wk6xak6n1cminvy81g"
   },
   "stable": {
    "version": [
     2,
-    5,
+    6,
     0
    ],
-   "commit": "cdc052b044448654109bfb7d9b3d8bbfcf49042d",
-   "sha256": "0q1i2q6pkld8rz938yj9g68a55041d9vnps05nn4v1l8rx1x8jif"
+   "commit": "74e0cf066392c6fa99327e42b24caf4ed2fc414f",
+   "sha256": "1vc50y7a248f0b4bk6mawb6f7n5dd6skrln8asall2m834bzzg37"
   }
  },
  {
@@ -104225,14 +105314,14 @@
   "repo": "ocaml/tuareg",
   "unstable": {
    "version": [
-    20210320,
-    1929
+    20210605,
+    1629
    ],
    "deps": [
     "caml"
    ],
-   "commit": "37a673020152ae0dbcaa250118b155d84e448f68",
-   "sha256": "0b9bnfwcnxkwjrdb4vm7y8wznqz4z990pv1s473gs97l7p04b1j9"
+   "commit": "24c1a1adbe51d93f681e72442fa73f885eb33776",
+   "sha256": "1cp6g117kfmwfqb7sq4y4jx8ggp29f4hz2kz5g3355s8zhjlld2y"
   },
   "stable": {
    "version": [
@@ -104474,8 +105563,8 @@
     20201002,
     1109
    ],
-   "commit": "1043025d42602d560949955410d3afa2562130ee",
-   "sha256": "1p25fjmv9g0a980zvr4bpjj56xksaziynf4h6cvc6wiw08a9xbcw"
+   "commit": "b369d7d2518fa11760ac3908a383405350cd51d2",
+   "sha256": "186bpvqxx87kp3857mq0mzn1ddsvzmpijix810k6bdz8522x7zdw"
   },
   "stable": {
    "version": [
@@ -104783,28 +105872,28 @@
   "repo": "undercover-el/undercover.el",
   "unstable": {
    "version": [
-    20210123,
-    2157
+    20210602,
+    2119
    ],
    "deps": [
     "dash",
     "shut-up"
    ],
-   "commit": "c36a7366aa080558125fa651ed6a28d5df735b37",
-   "sha256": "0qji4738q0yx2n0xrpk12q2akx8rgsvpfgnnfxrnk8xiywjfrqwz"
+   "commit": "1d3587f1fad66a747688f36636b67b33b73447d3",
+   "sha256": "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"
   },
   "stable": {
    "version": [
     0,
     8,
-    0
+    1
    ],
    "deps": [
     "dash",
     "shut-up"
    ],
-   "commit": "0bc3583065e49647db47d8a595fec13cb517d12f",
-   "sha256": "19d3373fy635vbfwr1yhxirwqn68qzny9byv74smxws4ly04mr02"
+   "commit": "1d3587f1fad66a747688f36636b67b33b73447d3",
+   "sha256": "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"
   }
  },
  {
@@ -104886,15 +105975,11 @@
   "repo": "ideasman42/emacs-undo-fu",
   "unstable": {
    "version": [
-    20200701,
-    1435
+    20210418,
+    920
    ],
-   "commit": "7cbc3f852bcc1a22ce279cf36c89328841692493",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 296 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 553 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 1293 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 2555 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503\n"
-   ]
+   "commit": "e0ad06b5ef2ac2733dad2ad48e3957b5c36edfa5",
+   "sha256": "0xix4ghri62xdqlh48pydhih1zsnfsy7ncrk6w2wrnz4fa033pia"
   }
  },
  {
@@ -104905,15 +105990,11 @@
   "repo": "ideasman42/emacs-undo-fu-session",
   "unstable": {
    "version": [
-    20210407,
-    326
+    20210418,
+    920
    ],
-   "commit": "b2d8874bc8ce892a6702b4136626bd65e0ad7760",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 283 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 562 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 1339 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 2016 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503\n"
-   ]
+   "commit": "243d93b4c7c1224e7067cd323f64d23dfdfe7c0e",
+   "sha256": "1gdx6kir0a0v7q2ai59miibch9hccqlnx2y88qswfpqr9pf7z6vm"
   }
  },
  {
@@ -104939,14 +106020,14 @@
   "repo": "emacsorphanage/undohist",
   "unstable": {
    "version": [
-    20200120,
-    1328
+    20210517,
+    411
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6c905772e6aa9969fd9ca500d2fe93e114130fe6",
-   "sha256": "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"
+   "commit": "56c6f58873f8ebb743e4dc5aff143744720375bd",
+   "sha256": "1ayf2rgw0y0qa65s585408nxdqpq6vgyz8l015crk72l6hv35l8n"
   },
   "stable": {
    "version": [
@@ -105778,11 +106859,11 @@
   "repo": "ideasman42/emacs-utimeclock",
   "unstable": {
    "version": [
-    20210124,
-    138
+    20210418,
+    1050
    ],
-   "commit": "d4b2014c5684b33ff73b4940bdff7b1138c1f85d",
-   "sha256": "00cx125pq6jad1v8pxq016hzg6wz1d06l4pc6z9r60l89y2m9hm2"
+   "commit": "21e74953a88ea5a0a17b86a951bf649dc9a0eaf4",
+   "sha256": "14hn22ld61l4w4livl83fjf4w59kzwn9qy2pc94p05qpgp8x2hy8"
   }
  },
  {
@@ -105793,14 +106874,14 @@
   "repo": "diml/utop",
   "unstable": {
    "version": [
-    20210404,
-    318
+    20210607,
+    1941
    ],
    "deps": [
     "tuareg"
    ],
-   "commit": "711c24661ce625070f8981fab9c6f31ce72b0a52",
-   "sha256": "0xwc14blqzrsyp7mzza0vavbp622a86bz9na8dks5zir2fgmmaxm"
+   "commit": "bac3946079a98df00f31656dc10c6c9f1a8bc422",
+   "sha256": "1wbmr0n384501i97x0akcfwcigklwqgwvhdwgxw6zxxn5wdg60b2"
   },
   "stable": {
    "version": [
@@ -105858,15 +106939,15 @@
   "repo": "damon-kwok/v-mode",
   "unstable": {
    "version": [
-    20200823,
-    535
+    20210425,
+    411
    ],
    "deps": [
     "dash",
     "hydra"
    ],
-   "commit": "d97fb8de5ab19359029dec1195f3d5b87aeb27b1",
-   "sha256": "1rhk9bcrn43gv0cz92cbvhhjvbifyq7lkdg3hcrla87b2dm4rp3l"
+   "commit": "96ca8dad3a3a402a44bf9066591fe27fa2e4fd9a",
+   "sha256": "08n577b8xr1pv2mdzqzdbkd5j0pih7zd4z4p5y5w4hq72mcid43q"
   }
  },
  {
@@ -106000,11 +107081,11 @@
   "repo": "arthurgleckler/validate-html",
   "unstable": {
    "version": [
-    20210131,
-    1704
+    20210420,
+    2344
    ],
-   "commit": "39890f7d00579954a660fc3b1c0195231325efd6",
-   "sha256": "0xb1gnf0f408z9p6iscb9g5c5xj2d460gyzk1mr0wjm847b9cs42"
+   "commit": "748e874d50c3a95c61590ae293778e26de05c5f9",
+   "sha256": "0b2b5dm85jwgkqvga23r3vfya07vxv2n7a3a6r1pxpk8asqlw41c"
   }
  },
  {
@@ -106263,14 +107344,14 @@
   "repo": "justbur/emacs-vdiff",
   "unstable": {
    "version": [
-    20201103,
-    1427
+    20210426,
+    155
    ],
    "deps": [
     "hydra"
    ],
-   "commit": "007e44be19d068fd6b49874b6e9b8df8b1f552bd",
-   "sha256": "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"
+   "commit": "84b8243d9f5d8082b05794dbc998d43dbdd7676a",
+   "sha256": "0lv9d9g8lnc3rzqi4v9iqr1ck5df8d52yh81cxzy7x2375b2mfgm"
   },
   "stable": {
    "version": [
@@ -106487,20 +107568,20 @@
   "repo": "federicotdn/verb",
   "unstable": {
    "version": [
-    20210402,
-    1621
+    20210525,
+    2135
    ],
-   "commit": "f9e69bf42eb8108aeee020ed3f58f456e042967f",
-   "sha256": "1hycs3aaqw6ss3ccbjd8p3fpb4aslm9hk3b9cwqnz4lxcxvqbfvj"
+   "commit": "9e3e8a1edd82f7d056d3744f9e40cf8a5bac4ecc",
+   "sha256": "1kjzglpyrf1vbsb5gjcwmi5b38fvn5rx95yc8fwbizgisx70abkc"
   },
   "stable": {
    "version": [
     2,
-    13,
-    1
+    14,
+    0
    ],
-   "commit": "91827971f655936d8a8df95c9d2f39eaee667c97",
-   "sha256": "1bvvj25shkasy4b14ifkvh195w401xggmhjkflld5frzp7pm6zvp"
+   "commit": "0d7f7d36f6ae8130a9bd40845f156a3e3b30eb49",
+   "sha256": "1bpfxfgq5q022rx592wkigj5chq8ihry8lgrni4rsqbbmbrc1h4b"
   }
  },
  {
@@ -106984,19 +108065,19 @@
   "repo": "joostkremers/visual-fill-column",
   "unstable": {
    "version": [
-    20210404,
-    2152
+    20210419,
+    857
    ],
-   "commit": "6854932d7fe689caf5cbc1ab65271fcfd46590bd",
-   "sha256": "02ijylplnv8qzh6r2ci6h4sdm61vn0d2iajmbqyn91hs0695661j"
+   "commit": "6fa9e7912af412533aec0da8b8f62c227f9f3f54",
+   "sha256": "1wfww6bqdphv871in80fc84ml8gkl04il6w51z2ycx99km8b723l"
   },
   "stable": {
    "version": [
     2,
-    2
+    4
    ],
-   "commit": "68784162d758fbe6a91d04e9caa8f05683fb6ba9",
-   "sha256": "1wjb4zm9mx07v0qx2fxmclg4pg0ssgnf8lp89wc56kmc0s40jhii"
+   "commit": "6fa9e7912af412533aec0da8b8f62c227f9f3f54",
+   "sha256": "1wfww6bqdphv871in80fc84ml8gkl04il6w51z2ycx99km8b723l"
   }
  },
  {
@@ -107007,14 +108088,14 @@
   "repo": "benma/visual-regexp.el",
   "unstable": {
    "version": [
-    20190414,
-    814
+    20210502,
+    2019
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "3e3ed81a3cbadef1f1f4cb16f9112a58641d70ca",
-   "sha256": "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"
+   "commit": "48457d42a5e0fe10fa3a9c15854f1f127ade09b5",
+   "sha256": "1z2cz6f8ymzrb7fdmw6824y7n5y7rmac5ljl03a6csdhp1yz5c2z"
   },
   "stable": {
    "version": [
@@ -107106,11 +108187,11 @@
   "repo": "blak3mill3r/vmd-mode",
   "unstable": {
    "version": [
-    20200727,
-    701
+    20210524,
+    27
    ],
-   "commit": "31655a41caf006c3dd64d6e57f6c4488098f8bce",
-   "sha256": "1pnx977pm305kr0zakwy1wkdfpk09rilwx8rmai4459lyz0sa8j9"
+   "commit": "b2bdf2ab54f8fc37780e6b473e4ad69c0e9ff4a6",
+   "sha256": "0wraiy5v0h1j4i31fr1b83k613c01pajq2436f93r485c2529pzp"
   }
  },
  {
@@ -107189,11 +108270,11 @@
   "repo": "jcs-elpa/vs-dark-theme",
   "unstable": {
    "version": [
-    20201025,
-    1148
+    20210427,
+    727
    ],
-   "commit": "3d087e1c48872b5b623ac72c85a9bd3d80ec02cd",
-   "sha256": "1j326w78drqsr4bxq2sjfnf3ax3hwk1k63flbqj8vfq5w1pc5iy0"
+   "commit": "5a826e6ea3e9edd9241e3253ce97333955c8ae1a",
+   "sha256": "0q94crd6m6m000gjxwv92jz9rphmnr5wg7jzf6yig1hlhfqjgw9v"
   },
   "stable": {
    "version": [
@@ -107212,11 +108293,11 @@
   "repo": "jcs-elpa/vs-light-theme",
   "unstable": {
    "version": [
-    20201025,
-    1148
+    20210427,
+    727
    ],
-   "commit": "4e6501118bafb62ecfca8797b6c6d81310d95fd2",
-   "sha256": "17n9c6fj70rgrc63g72vdxnv8xjnqa6w0rrvh6ih3z2xmky91b2a"
+   "commit": "e324120248c1d513a6516edff250d161f876aad9",
+   "sha256": "1jw9cbbvm76ijvcrkkn27r3n6qw14jxbirdc0bryv4k12yiwla9m"
   },
   "stable": {
    "version": [
@@ -107244,26 +108325,26 @@
  },
  {
   "ename": "vscode-dark-plus-theme",
-  "commit": "0e7e489ea5cee3b1d2b6b5295cf95f3e1d9d6c60",
-  "sha256": "001xhi87dsh75sd0vg26v4w78rf1p8bhj1zhn3w7j255817xvcgd",
+  "commit": "f2397ff679c9f3b03bdead7b31a0dabc1e2f8d97",
+  "sha256": "0pwmv26cassw5d5h8p82i6jm8vd85m1ffb7i31w72w1s8x5y3j31",
   "fetcher": "github",
-  "repo": "ianpan870102/vscode-dark-plus-emacs-theme",
+  "repo": "ianyepan/vscode-dark-plus-emacs-theme",
   "unstable": {
    "version": [
-    20210331,
-    1541
+    20210530,
+    629
    ],
-   "commit": "3c349f64ff8f12348b865b8c6896db05386cdc49",
-   "sha256": "0f2dlgjczy45dygyw6was5m74fldrbf3l29bss370qcaj3h2bm3z"
+   "commit": "961c8c1fdd7eb874d4e2ce386d5e6d1f318b5b72",
+   "sha256": "1dga7yhb5pnqj5d86pvzbabrq05xj1ppx6g0hinhm8z6m8h6y540"
   },
   "stable": {
    "version": [
-    1,
-    5,
+    2,
+    0,
     0
    ],
-   "commit": "c64d5f7088f1295df0bd8f1dc87a532e00647fbe",
-   "sha256": "09a6plb2dqayj4m456ldh43a654jbkg8zjiky7bkj5m0kpdc5426"
+   "commit": "41772165b3b1195a7e86747ea5b316b16be4c7ef",
+   "sha256": "1vcaqvhdgr91pr7kqskbscs8awm8jp6dkh79h6w36i9ipmc4l4hl"
   }
  },
  {
@@ -107304,14 +108385,14 @@
   "repo": "jixiuf/vterm-toggle",
   "unstable": {
    "version": [
-    20210313,
-    305
+    20210531,
+    1453
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "a0429842e6197a6ec83c0de30701127a4edb9e92",
-   "sha256": "1h0ssi84b0amhdjxjw6xyjb525d67b4jx0qpqk3fr08s9c87z8k9"
+   "commit": "afe60b814d9d045b968f4a464bbedb241b35392b",
+   "sha256": "007spqyc474k8fxi6l3s0jh8dg18d9b07wvz3lvbyrgdqwdw2a0p"
   }
  },
  {
@@ -107405,8 +108486,8 @@
     "s",
     "versuri"
    ],
-   "commit": "16f9d9ee4744f4170ab9eab361783e3e32e3b627",
-   "sha256": "19pfxdg4kmvir6fgn9i4mqqlqk7lq77170kva6avxz12jz36i22r"
+   "commit": "43b9364042922950f612ac57d8c526921a01b291",
+   "sha256": "14432mnm5lvccb9x3fymzi53kxfh2if92c5q14llz6pbbif8x3vh"
   },
   "stable": {
    "version": [
@@ -107432,20 +108513,21 @@
   "repo": "d12frosted/vulpea",
   "unstable": {
    "version": [
-    20210329,
-    605
+    20210503,
+    624
    ],
    "deps": [
     "org",
     "org-roam",
     "s"
    ],
-   "commit": "b394b82cb463f67932dae0fbe3a67daa4d647ea6",
-   "sha256": "0ssh12jrqfk7llfcfdf6dn9pq0hiqi5f7zp75v1j56qfpijzcbl0"
+   "commit": "0f73528e603b1901cbe36eccd536a9113ef0439d",
+   "sha256": "030aglgmph8p9qi160ws6qv288mkwpyhhj0m946q72y7hmsc5xxp"
   },
   "stable": {
    "version": [
     0,
+    1,
     1
    ],
    "deps": [
@@ -107453,8 +108535,8 @@
     "org-roam",
     "s"
    ],
-   "commit": "4088c95bdd64ca1afbc59bacee571c7260988175",
-   "sha256": "03kynwkl4q91xz9wsmyx8g3aqgls1r8p5dxhixg586sr9xr4xck0"
+   "commit": "c4f39b853c54cbfab48876812012e040b56838ee",
+   "sha256": "1dgmxbdvyb9vdha2swg4ahai6xvfvlr7d03y3c2c3db2jbr00aw5"
   }
  },
  {
@@ -107524,11 +108606,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20210409,
-    626
+    20210606,
+    2300
    ],
-   "commit": "8bab3dc89d36b55ba26ae5941f294c57805d24b2",
-   "sha256": "15kp2lsfci6p8wkrda12m4vf12p13xd9x5rh3ypc6yvz1snypgyy"
+   "commit": "0e18a7e96c8e425ac7c2e69aa26fa6a1e8e6e51a",
+   "sha256": "1jxp447d8xnk4ixpni7rsph7fd3p58ydmi39yrx201hbqh15jxiz"
   }
  },
  {
@@ -107698,15 +108780,15 @@
   "repo": "cmpitg/wand",
   "unstable": {
    "version": [
-    20200302,
-    1536
+    20210511,
+    725
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "731b5ca33269fe563239bff16da6c41489432b80",
-   "sha256": "0r5mbslwf3x0mrndz65w4pp88xii019zg5p6x214zxpr87s75zdp"
+   "commit": "08c3d9156517a31dd98ea64bfc269fae730b643c",
+   "sha256": "18xgi1anficjl6cnhhv197zbrnb0p63pnj8gshvixb6fr4ybw8k0"
   }
  },
  {
@@ -107837,19 +108919,20 @@
   "repo": "bnbeckwith/wc-mode",
   "unstable": {
    "version": [
-    20200108,
-    1841
+    20210418,
+    47
    ],
-   "commit": "79107d1130e8be3e1db4619373b98045b4fd9033",
-   "sha256": "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"
+   "commit": "63be1433b8a63cdc3239cc751e36360429c42b51",
+   "sha256": "1wzgb4z2qyyv223x5fc7ff2fn5xpz4s7lr1q1y33q8878a7w9d45"
   },
   "stable": {
    "version": [
     1,
-    4
+    4,
+    1
    ],
-   "commit": "79107d1130e8be3e1db4619373b98045b4fd9033",
-   "sha256": "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"
+   "commit": "63be1433b8a63cdc3239cc751e36360429c42b51",
+   "sha256": "1wzgb4z2qyyv223x5fc7ff2fn5xpz4s7lr1q1y33q8878a7w9d45"
   }
  },
  {
@@ -108116,6 +109199,36 @@
   }
  },
  {
+  "ename": "weblio",
+  "commit": "eb75b14af27dbadba064b601ed06fd6124be3a8b",
+  "sha256": "0zgcnq6f978aly36xdzk5fzwsm6qymcscbxsmpmjkhhkggl24ll7",
+  "fetcher": "github",
+  "repo": "pzel/weblio",
+  "unstable": {
+   "version": [
+    20210511,
+    2105
+   ],
+   "deps": [
+    "request"
+   ],
+   "commit": "ba0b745c3c11a93eaac826f74232f9eefbbae7a1",
+   "sha256": "00agkipgf6hc1bsrq460lydql8f04y42h4lh764k1fwg7x1a8pm2"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    3
+   ],
+   "deps": [
+    "request"
+   ],
+   "commit": "ba0b745c3c11a93eaac826f74232f9eefbbae7a1",
+   "sha256": "00agkipgf6hc1bsrq460lydql8f04y42h4lh764k1fwg7x1a8pm2"
+  }
+ },
+ {
   "ename": "weblogger",
   "commit": "e8ccb10a5d1f4db3b20f96dee3c14ee64f4674e2",
   "sha256": "0k0l715lnqb0a4hlkfjkyhr8i1jaml8z2xzhal7ryhjgvf8xinvs",
@@ -108141,14 +109254,14 @@
   "repo": "emacs-love/weblorg",
   "unstable": {
    "version": [
-    20210410,
-    421
+    20210526,
+    129
    ],
    "deps": [
     "templatel"
    ],
-   "commit": "66bf957ace451ad0140e77d2fea235aefcd9ae26",
-   "sha256": "0qjrwpdi1zg8xbi9xnq5kpiw8dns1g899jh9vrsfqmkvr9vsm220"
+   "commit": "ffea6a93f5d35fed8532f1187463a27eb46bff0a",
+   "sha256": "185crf3dgfqjq58s2bvdmvff5vmy73v4m4l2d17iwjyw3ifji5a8"
   },
   "stable": {
    "version": [
@@ -108327,11 +109440,11 @@
   "repo": "jstaursky/weyland-yutani-theme",
   "unstable": {
    "version": [
-    20210331,
-    1857
+    20210530,
+    1418
    ],
-   "commit": "998c171becf2e589e65aae0283ebfee90c03d6df",
-   "sha256": "18zbawhrv9904frg686hlvqr4zqx62ay85igrwm8fr41wipxxhz6"
+   "commit": "a56c56de048900409d271f91fd08a408fd9bf32e",
+   "sha256": "0nblkcz52qvfkf4q3yb7drv0rbpkqgzv3clwb6vkvwz13s29b6my"
   }
  },
  {
@@ -108501,20 +109614,20 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20210407,
-    28
+    20210601,
+    252
    ],
-   "commit": "5fb30301cb3b4fca5a0e1ce8ec1ef59290b79199",
-   "sha256": "1wgygby4zwlbx6ry6asraaixl169qdz092zgk1brvg63w7f8vkkb"
+   "commit": "fc29864395fdaf688e2ef5111831663bad89a020",
+   "sha256": "1adv32z8dmpygbrk14l1pj2535c10ncv8znfzgi1s908ds20kad1"
   },
   "stable": {
    "version": [
     3,
     5,
-    1
+    2
    ],
-   "commit": "c0608e812a8d1bc7aefeacdfaeb56a7272eabf44",
-   "sha256": "1g07i6hyv9glhk6xq1z9vn81vi2f0byy7dp3rg4gw22sm6f6d1al"
+   "commit": "5fb30301cb3b4fca5a0e1ce8ec1ef59290b79199",
+   "sha256": "1wgygby4zwlbx6ry6asraaixl169qdz092zgk1brvg63w7f8vkkb"
   }
  },
  {
@@ -108613,11 +109726,11 @@
   "repo": "purcell/whitespace-cleanup-mode",
   "unstable": {
    "version": [
-    20200304,
-    2227
+    20210510,
+    533
    ],
-   "commit": "3c5a7161c0dd0caa65e9a61640b06aff101be848",
-   "sha256": "1i4xnl178lbaqnrxxk9qxzz3v0krj4wawh8zyprh2xirgxqspks8"
+   "commit": "b108b73ddf8f7e747d5a20a681560171e02ad037",
+   "sha256": "13il7yi6j0cd995xzadbilhg50zcvzbpcqvivh9r1qbqq3q5aw1y"
   },
   "stable": {
    "version": [
@@ -108660,19 +109773,19 @@
   "repo": "lassik/emacs-whois",
   "unstable": {
    "version": [
-    20200715,
-    1715
+    20210429,
+    805
    ],
-   "commit": "11d01c483ab3ba78b6ea1e195bda65b5e35f2d4c",
-   "sha256": "14w1cchij7i8a9m9z71dsz76aphidmvp8lbai4gaxxi4qiyvkcn3"
+   "commit": "6ce65ec5c992b1e1cb538610f1c3708e9d467c39",
+   "sha256": "0cz5c0zy4lz0534nfr2xf7p0d09ppcfdmry4335gx19vz47fj60n"
   },
   "stable": {
    "version": [
     0,
-    2
+    3
    ],
-   "commit": "7cc7e2734ec823bed6eb923387b3b33a1cde0c86",
-   "sha256": "0d8q8as85fjn2v65i25xv9bzg03mlk4jhxrbqrcg5ywjiv5i2ljg"
+   "commit": "6ce65ec5c992b1e1cb538610f1c3708e9d467c39",
+   "sha256": "0cz5c0zy4lz0534nfr2xf7p0d09ppcfdmry4335gx19vz47fj60n"
   }
  },
  {
@@ -108834,15 +109947,15 @@
   "repo": "progfolio/wikinforg",
   "unstable": {
    "version": [
-    20210126,
-    405
+    20210602,
+    1459
    ],
    "deps": [
     "org",
     "wikinfo"
    ],
-   "commit": "2eb31ab00e4c8ad53dc15234f29527b9f0f54d71",
-   "sha256": "0sghvnvbbv3d7kdvcv2dbbzbv38b3jjzbrhjv6fn5lynyr929vqr"
+   "commit": "3aecd23e68b9117a03c65fafa85a0805b58609d1",
+   "sha256": "0m1fj06x9r941k2842v2091xbff89wp704ifrcdgb6zbksx5d8i2"
   }
  },
  {
@@ -109012,27 +110125,27 @@
   "repo": "bmag/emacs-purpose",
   "unstable": {
    "version": [
-    20210411,
-    1700
+    20210423,
+    454
    ],
    "deps": [
     "imenu-list",
     "let-alist"
    ],
-   "commit": "dc4f8a00a8b0c1cf6242e1bf47f82e08c508a51e",
-   "sha256": "0h5s448dgpqi24fpmkbalw4w96jf9ny5gar8qjw0kqmcfxxny9b0"
+   "commit": "1a556294131a78b557f88bd28d42b43d5c6bd79a",
+   "sha256": "15v3225irmgg6zsv4h3zyqrbcgx9kbr6rzx5v5hgf9h16fgibi8j"
   },
   "stable": {
    "version": [
     1,
-    7
+    8
    ],
    "deps": [
     "imenu-list",
     "let-alist"
    ],
-   "commit": "a302340e183d20baa4445858d321f43449298829",
-   "sha256": "1dpy8hkjn87wbdkzyabhay4jx4dgc0ab2flyf0rjq1qaazk393sc"
+   "commit": "8f84defbb4d80ecaada37a2bbde2c1d8699f98af",
+   "sha256": "1bq0s56wj6ibyh625zfnisy8yniz72dpg4mcgq55azsbnd4fblqq"
   }
  },
  {
@@ -109211,8 +110324,8 @@
     20210405,
     1410
    ],
-   "commit": "4b4a8f05401bd08092518ddccdf35461f1124f5a",
-   "sha256": "16aknbzmh3a4lb0bzkljl70yx8v8g74vfji4h4iqvx013vwvqyp2"
+   "commit": "c67784cc0c44dc7c590f1f1f5a979a36b1e8c11d",
+   "sha256": "0pisq1b2yjfplv64xn33lw38ymmpr8wah84pfnwvzqnlfsn5s1hs"
   }
  },
  {
@@ -109253,23 +110366,20 @@
   "repo": "magit/with-editor",
   "unstable": {
    "version": [
-    20210319,
-    1930
+    20210524,
+    1654
    ],
-   "commit": "ebcbd3b137154e6c5a2b976bacbb89d48ddfa242",
-   "sha256": "0qir7kzvnlchpvmpl8gj11yqly6j5m260mmxny9xxwx0dzwaya4k"
+   "commit": "5519b6a67ecd66865b4fdd5447425eee900c54f4",
+   "sha256": "1bmvkrfnjzrf0ch2mh75cv784mzs64i4f44l91xysapjqv46lfqn"
   },
   "stable": {
    "version": [
     3,
     0,
-    2
-   ],
-   "deps": [
-    "async"
+    4
    ],
-   "commit": "6735180e73e787b79535c245b162249b70dbf841",
-   "sha256": "0hw6i5r3adkm4988badi94825lywkrh3sddiff4z04kj1nj15d0k"
+   "commit": "5519b6a67ecd66865b4fdd5447425eee900c54f4",
+   "sha256": "1bmvkrfnjzrf0ch2mh75cv784mzs64i4f44l91xysapjqv46lfqn"
   }
  },
  {
@@ -109359,23 +110469,19 @@
   "repo": "DarwinAwardWinner/with-simulated-input",
   "unstable": {
    "version": [
-    20200509,
-    2010
+    20210527,
+    2320
    ],
-   "commit": "228732caf5272dd25e5c8acb2c6c86b0ac29ece8",
-   "sha256": "08j0ab7i0fk3d9d805mzwszlc82afr1sjw7isnx8k35d90cnmf3d"
+   "commit": "0f43fe46d4ab098c18a90b9df18cb96bab8e4a35",
+   "sha256": "0im6a1nr75mgz13zjavwycd5zsm5ysz5flbsmka7i8bkn2js1fm1"
   },
   "stable": {
    "version": [
-    2,
-    4
-   ],
-   "deps": [
-    "s",
-    "seq"
+    3,
+    0
    ],
-   "commit": "3d881793521c5618cdb0968a85879e0e49da7fca",
-   "sha256": "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"
+   "commit": "ee4d2b75fd99bac3de40675b0a0e03529718f59f",
+   "sha256": "0n8h84whsh0aph8xhn9plprix9f6bysgvarz2anz7kwns19js6s4"
   }
  },
  {
@@ -109580,8 +110686,8 @@
   "repo": "abo-abo/worf",
   "unstable": {
    "version": [
-    20210309,
-    1513
+    20210504,
+    1132
    ],
    "deps": [
     "ace-link",
@@ -109589,8 +110695,8 @@
     "swiper",
     "zoutline"
    ],
-   "commit": "fff12d4d3bb1ddf70cd0abb78aecd9133b367990",
-   "sha256": "1fbi0rv9pvh9bf72fjc3pfql9xfnw7zif0rsw0r2gn4sdn7202id"
+   "commit": "c99ef5478183d0ab56b0abe943206491c802e003",
+   "sha256": "1qbs5dvqcip7y77f8sdyr7zw64vgxlybj4isi7x841j4z7kh5m11"
   },
   "stable": {
    "version": [
@@ -109630,11 +110736,11 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20210402,
-    1450
+    20210511,
+    1128
    ],
-   "commit": "b182bf853ec408de014ba35527177c7cab90d620",
-   "sha256": "11rmv6wc7brw1la73y9dvmmx2pqaxxwm4087qkgr9vjg5h02k67d"
+   "commit": "f74a58f3cfb2e94cee4c4527b2f7aeb8fa5ab46c",
+   "sha256": "0m50xxi5nz08byxjdp5k20d075anv88lsdk1z2q66y2jqaqbxian"
   },
   "stable": {
    "version": [
@@ -109740,20 +110846,20 @@
   "repo": "bnbeckwith/writegood-mode",
   "unstable": {
    "version": [
-    20180525,
-    1343
+    20210418,
+    110
    ],
-   "commit": "b71757ec337e226909fb0422f0224e31acc71733",
-   "sha256": "038gliy6l931r02bf2dbhmp188sgk1rq46ngg9nhf5q5rkf3pi8p"
+   "commit": "ed42d918d98826ad88928b7af9f2597502afc6b0",
+   "sha256": "1nwngnddlkcvix7qx39fadab7hqzg8snb0k63kwpr8v57lyrm48z"
   },
   "stable": {
    "version": [
     2,
     0,
-    3
+    4
    ],
-   "commit": "b71757ec337e226909fb0422f0224e31acc71733",
-   "sha256": "038gliy6l931r02bf2dbhmp188sgk1rq46ngg9nhf5q5rkf3pi8p"
+   "commit": "ed42d918d98826ad88928b7af9f2597502afc6b0",
+   "sha256": "1nwngnddlkcvix7qx39fadab7hqzg8snb0k63kwpr8v57lyrm48z"
   }
  },
  {
@@ -109873,8 +110979,8 @@
     20210316,
     156
    ],
-   "commit": "d66e6808367048b7694383cf545102e7cad6ba8c",
-   "sha256": "0ahz85n49x2579hpzir2xsqwm0mwlv9x2h91haq0w0l73llnj35q"
+   "commit": "2e57f792edc371e7105ee388f878d52d5801f5de",
+   "sha256": "0qyx41yawaamfs8k3dr7b48kf09snlklja0pa1n8nw80q355w94p"
   },
   "stable": {
    "version": [
@@ -109894,11 +111000,11 @@
   "repo": "ag91/writer-word-goals",
   "unstable": {
    "version": [
-    20210405,
-    1155
+    20210503,
+    656
    ],
-   "commit": "77435ca396e7cc2685f4962e959070dbe1f70db1",
-   "sha256": "0kblcf1qfa06bwqm6pwwdmmpcipn3yjcjw09hmryipzhgf97zfxa"
+   "commit": "ef94f78b2c4e4fcf1a59d492637cbc84396cb032",
+   "sha256": "0xf2nvwvag21ds566r90rlf98hf80mz3zj2svhwmqrj6nm70p6z3"
   }
  },
  {
@@ -109979,26 +111085,26 @@
   "repo": "skeeto/x86-lookup",
   "unstable": {
    "version": [
-    20210409,
-    2313
+    20210412,
+    2022
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "5e194fdac8a1e12d87b8ed4edeb887eb5543c34d",
-   "sha256": "0f76qsb8hiryfgwkpymw5sicbmz1p48s0dxai1fmjlvaimrw56mm"
+   "commit": "1573d61cc4457737b94624598a891c837fb52c16",
+   "sha256": "16y13bwsfx4mm8p1n09f4443kh03hl7jvfvkbwdrm6dlbywiqq8m"
   },
   "stable": {
    "version": [
     1,
     2,
-    0
+    1
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "609b2ba70dc5a246ac9b4b5f89eb5ef4331519bf",
-   "sha256": "19zgq7mcc3wx847xc911fibvphbsws99m2l3k54xdjp8mb5qfdzm"
+   "commit": "1573d61cc4457737b94624598a891c837fb52c16",
+   "sha256": "16y13bwsfx4mm8p1n09f4443kh03hl7jvfvkbwdrm6dlbywiqq8m"
   }
  },
  {
@@ -110054,11 +111160,11 @@
   "repo": "xahlee/xah-fly-keys",
   "unstable": {
    "version": [
-    20210404,
-    2149
+    20210520,
+    540
    ],
-   "commit": "1caaf974574298700d0671e7f8f4bc5652b10fcf",
-   "sha256": "0pafihkaajan3k28394vf1g9q3ihwywmc62zbh1b0ycj23lgjcii"
+   "commit": "3022cbf1e0b16c4fe632d03bd49832afac12510c",
+   "sha256": "0bv9r4kak8gjwcvws1vygdr9ppfyi9m34y5a5alm606y8qmzjxs6"
   }
  },
  {
@@ -110099,11 +111205,11 @@
   "repo": "xahlee/xah-math-input",
   "unstable": {
    "version": [
-    20210403,
-    2312
+    20210419,
+    1833
    ],
-   "commit": "bc1ff04a11be7c3b728aa012324377305d48e087",
-   "sha256": "0q9civwf4mxapmq6hzrf3wimc7pfp28yipx007abchwimpdxvwws"
+   "commit": "6ccd3ca21aa71a2c1f831fabbdfc9e32c02e180d",
+   "sha256": "1bibdx0sawgsdzdiivy4x7rf4s5hnz2ypllwz9sk2fdmjyv8d08c"
   }
  },
  {
@@ -110159,11 +111265,11 @@
   "url": "https://depp.brause.cc/xbm-life.git",
   "unstable": {
    "version": [
-    20201116,
-    1119
+    20210508,
+    1640
    ],
-   "commit": "c5f442b152c46e5f31632e87be5c3a3c157a5ab1",
-   "sha256": "1481g835hk0j296jvjyawjcyj6lkvsjwz01r329i5bzhyvyn6lm5"
+   "commit": "ec6abb0182068294a379cb49ad5346b1d757457d",
+   "sha256": "19xh1pzh5kgfjjckg73ljylv14912an536rl04jahaxfknf4ypm6"
   },
   "stable": {
    "version": [
@@ -110250,20 +111356,19 @@
   "repo": "dandavison/xenops",
   "unstable": {
    "version": [
-    20210103,
-    1339
+    20210504,
+    1106
    ],
    "deps": [
     "aio",
     "auctex",
     "avy",
     "dash",
-    "dash-functional",
     "f",
     "s"
    ],
-   "commit": "5812aa55a816bb66d90443a6a634069d9fbfecf1",
-   "sha256": "1nwhrbpqgbcv1467zyjwww6r04k965fkrkc5v3iqzkg88ld43sj0"
+   "commit": "4994ae4a660ee94d341ce1905c12b4cf39fee574",
+   "sha256": "0cqvz8bkpjc4fmdn10zq70q3bvixx25yn13ihxygsdi1mjmn30fh"
   }
  },
  {
@@ -110560,11 +111665,7 @@
     1123
    ],
    "commit": "8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 322 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 540 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 1079 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 2268 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503\n"
-   ]
+   "sha256": "07i9x2f1mgfr3d5v507ln5z8mh59zdzqv53yyyrcbhvr7j9vi1p3"
   }
  },
  {
@@ -110859,11 +111960,20 @@
   "repo": "zkry/yaml.el",
   "unstable": {
    "version": [
-    20210406,
-    156
+    20210604,
+    1500
+   ],
+   "commit": "5b352258f50ec9d2e7ff8bd16323a24fb484b52b",
+   "sha256": "1zaj7w0jfzz7iwsnd8ql3pxgiw108dx0ggk2q5rqxdz5902hksqs"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    2
    ],
-   "commit": "d8ac09e8cad7f67339e19c53e77da1cd0ff98d36",
-   "sha256": "0wkrvhb5yhb38sf7w1njxij1x0pfxp56hn97j2bk4w58dz94fxir"
+   "commit": "5b352258f50ec9d2e7ff8bd16323a24fb484b52b",
+   "sha256": "1zaj7w0jfzz7iwsnd8ql3pxgiw108dx0ggk2q5rqxdz5902hksqs"
   }
  },
  {
@@ -110874,26 +111984,26 @@
   "repo": "knu/yaml-imenu.el",
   "unstable": {
    "version": [
-    20201023,
-    1524
+    20210530,
+    251
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "fa37d9bf8a09af144980a42cc22891b1555a12ae",
-   "sha256": "08v2wxdcp5f43vl8976bn3lsiqkaph4driczgc0bw9p495fljb2p"
+   "commit": "01741205fb33d2ed511502d1cd65a711e07a3117",
+   "sha256": "1z8yzi322y8wnvci77xp7fb7x5l3z8zy1ng4zaa1z856va8x2971"
   },
   "stable": {
    "version": [
     1,
     0,
-    2
+    3
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "fa37d9bf8a09af144980a42cc22891b1555a12ae",
-   "sha256": "08v2wxdcp5f43vl8976bn3lsiqkaph4driczgc0bw9p495fljb2p"
+   "commit": "01741205fb33d2ed511502d1cd65a711e07a3117",
+   "sha256": "1z8yzi322y8wnvci77xp7fb7x5l3z8zy1ng4zaa1z856va8x2971"
   }
  },
  {
@@ -110904,11 +112014,11 @@
   "repo": "yoshiki/yaml-mode",
   "unstable": {
    "version": [
-    20201109,
-    1026
+    20210508,
+    1641
    ],
-   "commit": "fc5e1c58f94472944c4aa838f00f6adcac6fa992",
-   "sha256": "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"
+   "commit": "3a57058468211f3cb18e71aecc630dcacb87636b",
+   "sha256": "1p09vzl6miafjhl9aw67day304wc27g72b0vcbr3barfgczypzsa"
   },
   "stable": {
    "version": [
@@ -111032,11 +112142,11 @@
   "repo": "binjo/yara-mode",
   "unstable": {
    "version": [
-    20200916,
-    1341
+    20210520,
+    1318
    ],
-   "commit": "03976d2c01e1295e179f279f73c0cea117ccba32",
-   "sha256": "1r3l6fbzihj4ac1pzk35kgl78p6cnbbzh6hnq5l9rp2crc0615v9"
+   "commit": "345cf782926414f92f57d7f1b129974dc38a545b",
+   "sha256": "0n3cnxxwm3rgzpgqy1kkv6fhqzqw3gnj1p9anp5vdhss8fdad7s3"
   }
  },
  {
@@ -111108,11 +112218,11 @@
   "repo": "emacsorphanage/yascroll",
   "unstable": {
    "version": [
-    20210108,
-    1826
+    20210427,
+    645
    ],
-   "commit": "b9061340cc15a3ace3ca8c6e54512b481c71acf1",
-   "sha256": "1vr0p3q5pnnqpdfvnz29v8sjsldp22hghqb16gmj7l0n2xnlvyv3"
+   "commit": "bd20a61ab7cd610625137c051c7f15e7404b7829",
+   "sha256": "0mxl8qxj9vdr8cg9xkh2v901n8m1drk0wzf4di34vkgkmrlkigyg"
   },
   "stable": {
    "version": [
@@ -111192,14 +112302,13 @@
   "stable": {
    "version": [
     0,
-    23
+    24
    ],
    "deps": [
-    "s",
     "yasnippet"
    ],
-   "commit": "e5ebfcdb38eb79a6d6705107d07f7bab2e2b5c38",
-   "sha256": "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"
+   "commit": "be823d7e1a1a46454d60a9f3dabb16b68b5dd853",
+   "sha256": "0ak0drxlg3m2v4ya5chpgl82rcl7ic2nmnybhpw1qk51mcmv643y"
   }
  },
  {
@@ -111472,11 +112581,11 @@
   "repo": "ryuslash/yoshi-theme",
   "unstable": {
    "version": [
-    20210324,
-    1847
+    20210509,
+    520
    ],
-   "commit": "4ea0f4d8128951432169b1e6db3dd4ac42492e93",
-   "sha256": "177zh0d6ax9j1fdv569b0adnb873b2913b9pmj26y8ipsbg4iwa6"
+   "commit": "9a26f361083ed1d0dd56e659fae913ffea51c739",
+   "sha256": "1da39wyb8zhpyvqxld19cna0jdjhpdiwsmac6ari7nw8i8dvbbhw"
   },
   "stable": {
    "version": [
@@ -111545,30 +112654,30 @@
   "repo": "tuedachu/ytdl",
   "unstable": {
    "version": [
-    20201017,
-    1024
+    20210506,
+    914
    ],
    "deps": [
     "async",
     "dash",
     "transient"
    ],
-   "commit": "8ef80b85f766cc1f93a932e64604998cfe7f6f03",
-   "sha256": "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"
+   "commit": "23da64f5c38b8cb83dbbadf704171b86cc0fa937",
+   "sha256": "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"
   },
   "stable": {
    "version": [
     1,
     3,
-    5
+    6
    ],
    "deps": [
     "async",
     "dash",
     "transient"
    ],
-   "commit": "8ef80b85f766cc1f93a932e64604998cfe7f6f03",
-   "sha256": "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"
+   "commit": "23da64f5c38b8cb83dbbadf704171b86cc0fa937",
+   "sha256": "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"
   }
  },
  {
@@ -111880,15 +112989,15 @@
   "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20210409,
-    2126
+    20210602,
+    841
    ],
    "deps": [
     "ace-window",
     "deft"
    ],
-   "commit": "c21705202180d16fa9f3a652e6e3af9ddc868a3b",
-   "sha256": "1ghrbz9azzddmgidbiqg3c0mqidgsjhryy03id0ln3bnv1z51vwn"
+   "commit": "b71f24d382887aeefde9c47fb6aa521d0ebeb806",
+   "sha256": "09wy2gllacry2n0cp52fakaa36lnd1mnbb26zysdjxh0429siy4a"
   },
   "stable": {
    "version": [
@@ -111942,11 +113051,11 @@
   "repo": "ziglang/zig-mode",
   "unstable": {
    "version": [
-    20201022,
-    955
+    20210605,
+    513
    ],
-   "commit": "6f10653cc17b9c74150ac2f6833eaaaf55488398",
-   "sha256": "00mz9z181ppr6ad9614k24vlzi4b6flqzzwc1f8vlp7ixnk9i47g"
+   "commit": "0babe7ec524f59d57c01e2fc66294d1afa01f5eb",
+   "sha256": "0balv7ggz10izjw7r6z9vx17qq88229jdzpsjas6z37gk61bfngk"
   }
  },
  {
@@ -112012,14 +113121,14 @@
   "repo": "nnicandro/emacs-zmq",
   "unstable": {
    "version": [
-    20210402,
-    2340
+    20210424,
+    1943
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "0a186a732b78aeb86599ea8123b36c4885789c7d",
-   "sha256": "0i6ghqwh35gnyz5b8ipbk030byibcmiy207pvplgszz39sjjjfp6"
+   "commit": "790033363cf0e78c616cfe117a2f681381e96f29",
+   "sha256": "0vssi5d02s7f9rhsgqnbh4ql2nvjcc4hsrmihwrk1ij50pn927yj"
   },
   "stable": {
    "version": [
@@ -112048,8 +113157,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "e795739ec182d217ffaf3c595819c308911540ee",
-   "sha256": "108bw2k255rkngfkp5iff1frsirc06j70ar1gcrh9lc3fcxdawlp"
+   "commit": "57d89fc1e17d94a8e9f3365b0d647a80520cc4a8",
+   "sha256": "0vbpc5lav8pw7caa4442z15a5s1l9wzjv68dgrbjnjvpn6yz3pay"
   }
  },
  {
@@ -112107,14 +113216,14 @@
   "url": "https://depp.brause.cc/zone-nyan.git",
   "unstable": {
    "version": [
-    20200506,
-    1207
+    20210508,
+    1642
    ],
    "deps": [
     "esxml"
    ],
-   "commit": "253a0484ea5076c0f485c561a3f8370ba560f4f2",
-   "sha256": "094kn0yxgzl9c39qm12h9cp6yia2rhaxwf9zmq2lk5x93nnss6m5"
+   "commit": "38b6e9f1f5871e9166b00a1db44680caa56773be",
+   "sha256": "10zb1ffq98jxzzym1ss9ly9ydbkrqynlkwn6s2hbc3h0av5ymmaq"
   },
   "stable": {
    "version": [
@@ -112287,20 +113396,30 @@
   "repo": "fvdbeek/emacs-zotero",
   "unstable": {
    "version": [
-    20210406,
-    2204
+    20210512,
+    820
+   ],
+   "deps": [
+    "ht",
+    "oauth",
+    "s"
+   ],
+   "commit": "15eb7a8d099c93440f0a8920499633103f00fc83",
+   "sha256": "13mrssrkcjrrpc470rjpb3mwjfdsyvr4i8niqza54rzk0zxj2m95"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    2
    ],
    "deps": [
     "ht",
     "oauth",
     "s"
    ],
-   "commit": "bee8196c5db26b75abc1359a5a7cb8a2b1f192ad",
-   "error": [
-    "exited abnormally with code 1\n",
-    "",
-    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 324 ms\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 632 ms\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 1159 ms\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 2278 ms\nerror: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503\n"
-   ]
+   "commit": "15eb7a8d099c93440f0a8920499633103f00fc83",
+   "sha256": "13mrssrkcjrrpc470rjpb3mwjfdsyvr4i8niqza54rzk0zxj2m95"
   }
  },
  {
@@ -112318,8 +113437,8 @@
     "deferred",
     "request"
    ],
-   "commit": "a760009b9ecfa0b3362e77a6b44453821768d02e",
-   "sha256": "0vfdpgb0ln3xrx4i32mqisaj7qm2yx73rhagx6adr8hjw78gysfy"
+   "commit": "45961801f9e0350d7457d0d84c5004f63aed9070",
+   "sha256": "18hi6m2ngl9yz599q5bhifafi4vz1adc06bjl0bhb3rs62vbkwk2"
   },
   "stable": {
    "version": [
@@ -112395,6 +113514,24 @@
   }
  },
  {
+  "ename": "zprint-format",
+  "commit": "54457e29def6ecfdf96f599e6a007f5ebee485b9",
+  "sha256": "1flb1i5byp6s8fj1vpgm5wc43f8hld7rg940m20a40ysr1x35szk",
+  "fetcher": "github",
+  "repo": "dpassen/zprint-format",
+  "unstable": {
+   "version": [
+    20210602,
+    146
+   ],
+   "deps": [
+    "reformatter"
+   ],
+   "commit": "6051a5709ea6182974d7239f26e04c9731e04447",
+   "sha256": "1in5cyrj0kn1fdfcw7iaxhsxx5hn3r3r0aiida8p9dvkx8kq540l"
+  }
+ },
+ {
   "ename": "zprint-mode",
   "commit": "188d40daec1ff86dcfa807a91eb77a1281de3951",
   "sha256": "1dwf941plwxib96n4g95pm51hhhaq643djn1hps8s7yyrzz77czz",
@@ -112417,14 +113554,14 @@
   "repo": "fourier/ztree",
   "unstable": {
    "version": [
-    20210409,
-    1841
+    20210415,
+    1947
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c9ad9136d52ca5a81475693864e255d29448f43f",
-   "sha256": "03i5pa3nfdz6g0yrdk7r2qcn679w0s85cc5kcmgrwlnhdzakgr80"
+   "commit": "f05677f9696e573c8c607e8876fb4a0cccbc491f",
+   "sha256": "1kav7xiarm0dgvgxf49qqcy2jp388b51x3qb92dyd3i73n6bk09j"
   }
  },
  {
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix
index 1275c51b99e3..1275c51b99e3 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
index 61749a89fde4..61749a89fde4 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
new file mode 100644
index 000000000000..8e29fd48c833
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, emacs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sunrise-commander";
+  version = "0.0.0-unstable=2021-04-23";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "db880fbea03d2db00db1398c91918c3c6f0392e3";
+    hash = "sha256-IGHCKYQaGUapaA9vxq0xO58KCpBPOiQpHqrEaHK0usE=";
+  };
+
+  buildInputs = [
+    emacs
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -q --no-splash --directory=. --batch --file=batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/emacs/site-lisp
+    install *.el* $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/sunrise-commander/sunrise-commander/";
+    description = "Orthodox (two-pane) file manager for Emacs";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sv-kalender/default.nix
index ea871ccf414f..ea871ccf414f 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/sv-kalender/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sv-kalender/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix
new file mode 100644
index 000000000000..72dbf7a0f476
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, stdenv
+, fetchurl
+, emacs
+, texinfo
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tramp";
+  version = "2.5.0";
+
+  src = fetchurl {
+    url = "mirror://gnu/tramp/${pname}-${version}.tar.gz";
+    sha256 = "sha256-w+6HJA8kFb75Z+7vM1zDnzOnkSSIXKnLVyCcEh+nMGY=";
+  };
+
+  buildInputs = [
+    emacs
+    texinfo
+  ];
+
+  meta = {
+    homepage = "https://www.gnu.org/software/tramp";
+    description = "Transparently access remote files from Emacs. Newer versions than built-in.";
+    license = lib.licenses.gpl3Plus;
+    inherit (emacs.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/update-elpa b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-elpa
index ba2964b2ead0..ba2964b2ead0 100755
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/update-elpa
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-elpa
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/update-from-overlay b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
index 886019716d49..41cde07a211c 100755
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/update-from-overlay
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
@@ -8,14 +8,14 @@ export NIXPKGS_ALLOW_BROKEN=1
 # You can use this to avoid running lengthy code generation jobs locally
 
 curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/elpa/elpa-generated.nix
-nix-instantiate ../../../.. -A emacs.pkgs.elpaPackages --show-trace
+nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages --show-trace
 git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacs.pkgs.elpa-packages: $(date --iso)" -- elpa-generated.nix
 
 curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/org/org-generated.nix
-nix-instantiate ../../../.. -A emacs.pkgs.orgPackages --show-trace
+nix-instantiate ../../../../../ -A emacs.pkgs.orgPackages --show-trace
 git diff --exit-code org-generated.nix > /dev/null || git commit -m "emacs.pkgs.org-packages: $(date --iso)" -- org-generated.nix
 
 curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json
-nix-instantiate --show-trace ../../../../ -A emacs.pkgs.melpaStablePackages
-nix-instantiate --show-trace ../../../../ -A emacs.pkgs.melpaPackages
+nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
+nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
 git diff --exit-code recipes-archive-melpa.json > /dev/null || git commit -m "emacs.pkgs.melpa-packages: $(date --iso)" -- recipes-archive-melpa.json
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-melpa
index 5c636416a5e6..5c636416a5e6 100755
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-melpa
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa.el b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-melpa.el
index b315777620ed..c8c1bfee566b 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/update-melpa.el
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-melpa.el
@@ -99,7 +99,10 @@ return Promise to resolve in that process."
             ("github"    (list "nix-prefetch-url"
                                "--unpack" (concat "https://github.com/" repo "/archive/" commit ".tar.gz")))
             ("gitlab"    (list "nix-prefetch-url"
-                               "--unpack" (concat "https://gitlab.com/" repo "/repository/archive.tar.gz?ref=" commit)))
+                               "--unpack" (concat "https://gitlab.com/api/v4/projects/"
+                                                  (url-hexify-string repo)
+                                                  "/repository/archive.tar.gz?ref="
+                                                  commit)))
             ("bitbucket" (list "nix-prefetch-hg"
                                (concat "https://bitbucket.com/" repo) commit))
             ("hg"        (list "nix-prefetch-hg"
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/update-org b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-org
index 2119a1672287..2119a1672287 100755
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/update-org
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/update-org
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/updater-emacs.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/updater-emacs.nix
index 4c321065445c..0f69da2384d5 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/updater-emacs.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/updater-emacs.nix
@@ -1,5 +1,5 @@
 let
-  pkgs = import ../../../.. {};
+  pkgs = import ../../../../.. {};
 
   emacsEnv = pkgs.emacs.pkgs.withPackages (epkgs: let
 
@@ -29,7 +29,7 @@ let
   in [ promise semaphore ]);
 
 in pkgs.mkShell {
-  buildInputs = [
+  packages = [
     pkgs.git
     pkgs.nix
     pkgs.bash
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
new file mode 100644
index 000000000000..c99693463a64
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, emacs, lib }:
+
+stdenv.mkDerivation {
+  pname = "youtube-dl";
+  version = "2018-10-12";
+
+  src = fetchFromGitHub {
+    owner = "skeeto";
+    repo = "youtube-dl-emacs";
+    rev = "af877b5bc4f01c04fccfa7d47a2c328926f20ef4";
+    sha256 = "sha256-Etl95rcoRACDPjcTPQqYK2L+w8OZbOrTrRT0JadMdH4=";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    runHook preBuild
+    emacs -L . --batch -f batch-byte-compile *.el
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Emacs frontend to the youtube-dl utility";
+    homepage = "https://github.com/skeeto/youtube-dl-emacs";
+    license = lib.licenses.unlicense;
+    maintainers = with lib.maintainers; [ leungbk ];
+    platforms = emacs.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/zeitgeist/default.nix
index 67bf7b500ff7..67bf7b500ff7 100644
--- a/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/zeitgeist/default.nix
diff --git a/nixpkgs/pkgs/applications/editors/emacs/generic.nix b/nixpkgs/pkgs/applications/editors/emacs/generic.nix
index 6726790d50fe..1bae0a0c9702 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/generic.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/generic.nix
@@ -7,9 +7,9 @@
   , patches ? [ ]
 }:
 { stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm
-, Xaw3d, libXcursor,  pkg-config, gettext, libXft, dbus, libpng, libjpeg, libungif
+, Xaw3d, libXcursor,  pkg-config, gettext, libXft, dbus, libpng, libjpeg, giflib
 , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
-, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
+, alsa-lib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
 , jansson, harfbuzz
 , dontRecurseIntoAttrs ,emacsPackagesFor
 , libgccjit, targetPlatform, makeWrapper # native-comp params
@@ -94,8 +94,8 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
         ]));
     in ''
       substituteInPlace lisp/emacs-lisp/comp.el --replace \
-        "(defcustom comp-native-driver-options nil" \
-        "(defcustom comp-native-driver-options '(${backendPath})"
+        "(defcustom native-comp-driver-options nil" \
+        "(defcustom native-comp-driver-options '(${backendPath})"
     ''))
     ""
   ];
@@ -105,10 +105,10 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
     ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
 
   buildInputs =
-    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext jansson harfbuzz.dev ]
+    [ ncurses gconf libxml2 gnutls alsa-lib acl gpm gettext jansson harfbuzz.dev ]
     ++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
     ++ lib.optionals withX
-      [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff libXft
+      [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg giflib libtiff libXft
         gconf cairo ]
     ++ lib.optionals (withX || withNS) [ librsvg ]
     ++ lib.optionals withImageMagick [ imagemagick ]
@@ -175,7 +175,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
           (comp-trampoline-compile (intern (pop argv))))"
     mkdir -p $out/share/emacs/native-lisp
     $out/bin/emacs --batch \
-      --eval "(add-to-list 'comp-eln-load-path \"$out/share/emacs/native-lisp\")" \
+      --eval "(add-to-list 'native-comp-eln-load-path \"$out/share/emacs/native-lisp\")" \
       -f batch-native-compile $out/share/emacs/site-lisp/site-start.el
   '';
 
diff --git a/nixpkgs/pkgs/applications/editors/emacs/macport.nix b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
index b8fcc678faa1..8c395219aeb3 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/macport.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
@@ -5,20 +5,20 @@
 
 stdenv.mkDerivation rec {
   pname = "emacs";
-  version = "27.1";
+  version = "27.2";
 
   emacsName = "emacs-${version}";
-  macportVersion = "8.0";
+  macportVersion = "8.2";
   name = "emacs-mac-${version}-${macportVersion}";
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${emacsName}.tar.xz";
-    sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+    sha256 = "1ff182gjw9wqsbx1kj5gl2r5pbqhp4ar54g04j33fgz6g17cr9xl";
   };
 
   macportSrc = fetchurl {
     url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
-    sha256 = "0rjk82k9qp1g701pfd4f0q2myzvsnp9q8xzphlxwi5yzwbs91kjq";
+    sha256 = "1bgm2g3ky7rkj1l27wnmyzqsqxzjng7y9bf72ym37wiyhyi2a9za";
   };
 
   hiresSrc = fetchurl {
diff --git a/nixpkgs/pkgs/applications/editors/emacs/site-start.el b/nixpkgs/pkgs/applications/editors/emacs/site-start.el
index 01a6422d731f..3f9ec25d99f0 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/site-start.el
+++ b/nixpkgs/pkgs/applications/editors/emacs/site-start.el
@@ -47,11 +47,11 @@ least specific (the system profile)"
 ;;; Set up native-comp load path.
 (when (featurep 'comp)
   ;; Append native-comp subdirectories from `NIX_PROFILES'.
-  (setq comp-eln-load-path
+  (setq native-comp-eln-load-path
         (append (mapcar (lambda (profile-dir)
                           (concat profile-dir "/share/emacs/native-lisp/"))
                         (nix--profile-paths))
-                comp-eln-load-path)))
+                native-comp-eln-load-path)))
 
 ;;; Make `woman' find the man pages
 (defvar woman-manpath)
diff --git a/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix b/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
index 2249009af777..d23b42811b89 100644
--- a/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
+++ b/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "ghostwriter";
-  version = "2.0.0-rc5";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "wereturtle";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Gc0/AHxxJd5Cq3dBQ0Xy2TF78CBmQFYUzm4s7q1aHEE=";
+    sha256 = "sha256-bNVhYwX60F3lrP9UmZSntfz83vbmHe9tu/4nUgzUWR4=";
   };
 
   nativeBuildInputs = [ qmake pkg-config qttools ];
diff --git a/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
index da7b70cecd2a..998341d6bb52 100644
--- a/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
@@ -6,7 +6,7 @@
 , docbook_xml_dtd_43
 , fetchurl
 , flatpak
-, gnome3
+, gnome
 , libgit2-glib
 , gobject-introspection
 , glade
@@ -34,16 +34,16 @@
 , webkitgtk
 , wrapGAppsHook
 , dbus
-, xvfb_run
+, xvfb-run
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-builder";
-  version = "3.38.2";
+  version = "3.40.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "jFNco64yoZC1TZbTIHGVf+wBYYQHo2JRiMZFHngzYTs=";
+    sha256 = "16kikslvcfjqj4q3j857mq9i8cyd965b3lvfzcwijc91x3ylr15j";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     ctags
     flatpak
-    gnome3.devhelp
+    gnome.devhelp
     glade
     libgit2-glib
     libpeas
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
 
   checkInputs = [
     dbus
-    xvfb_run
+    xvfb-run
   ];
 
   outputs = [ "out" "devdoc" ];
@@ -99,7 +99,6 @@ stdenv.mkDerivation rec {
   '';
 
   mesonFlags = [
-    "-Dpython_libprefix=${python3.libPrefix}"
     "-Ddocs=true"
 
     # Making the build system correctly detect clang header and library paths
@@ -135,7 +134,10 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  passthru.updateScript = gnome3.updateScript { packageName = pname; };
+  passthru.updateScript = gnome.updateScript {
+    packageName = pname;
+    versionPolicy = "odd-unstable";
+  };
 
   meta = with lib; {
     description = "An IDE for writing GNOME-based software";
diff --git a/nixpkgs/pkgs/applications/editors/gnome-inform7/default.nix b/nixpkgs/pkgs/applications/editors/gnome-inform7/default.nix
new file mode 100644
index 000000000000..534466db8d78
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/gnome-inform7/default.nix
@@ -0,0 +1,117 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, python3, perl, bison
+, texinfo, desktop-file-utils, wrapGAppsHook, docbook2x, docbook-xsl-nons
+, inform7, gettext, libossp_uuid, gtk3, gobject-introspection, vala, gtk-doc
+, webkitgtk, gtksourceview3, gspell, libxml2, goocanvas2, libplist, glib
+, gst_all_1 }:
+
+# Neither gnome-inform7 nor its dependencies ratify and chimara have tagged releases in the GTK3 branch yet.
+
+let
+  ratify = (stdenv.mkDerivation {
+    pname = "ratify";
+    version = "unstable-2021-02-21";
+    src = fetchFromGitHub {
+      owner = "ptomato";
+      repo = "ratify";
+      rev = "f4d2d60ec73d5588e953650b3879e69a727f30ca";
+      sha256 = "eRh/9pYvdfbdbdJQ7pYMLq5p91I+rtyb/AqEGfakjKs=";
+    };
+    nativeBuildInputs = [
+      meson
+      ninja
+      pkg-config
+      docbook2x
+      docbook-xsl-nons
+    ];
+    buildInputs = [
+      gtk3
+      gobject-introspection
+      vala gtk-doc
+      wrapGAppsHook
+    ];
+  });
+
+  chimara = (stdenv.mkDerivation {
+    pname = "chimara";
+    version = "unstable-2021-04-06";
+    src = fetchFromGitHub {
+      owner = "chimara";
+      repo = "Chimara";
+      rev = "9934b142af508c75c0f1eed597990f39495b1af4";
+      sha256 = "aRz1XX8XaSLTBIrMIIMS3QNMm6Msi+slrZ6+KYlyRMo=";
+    };
+    nativeBuildInputs = [
+      meson
+      ninja
+      pkg-config
+      perl
+      bison
+      texinfo
+      python3
+      glib
+      wrapGAppsHook
+    ];
+    buildInputs = [
+      gtk3
+      gobject-introspection
+      vala
+      gtk-doc
+      gst_all_1.gstreamer
+      gst_all_1.gst-plugins-base
+      gst_all_1.gst-plugins-good
+      gst_all_1.gst-plugins-bad
+      glib
+    ];
+    preConfigure = ''
+      patchShebangs build-aux/meson_post_install.py
+    '';
+  });
+
+in stdenv.mkDerivation {
+  pname = "gnome-inform7";
+  version = "unstable-2021-04-06";
+  src = fetchFromGitHub {
+    owner = "ptomato";
+    repo = "gnome-inform7";
+    # build from revision in the GTK3 branch as mainline requires webkit-1.0
+    rev = "c37e045c159692aae2e4e79b917e5f96cfefa66a";
+    sha256 = "Q4xoITs3AYXhvpWaABRAvJaUWTtUl8lYQ1k9zX7FrNw=";
+  };
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    inform7
+    python3
+    desktop-file-utils
+    wrapGAppsHook
+  ];
+  buildInputs = [
+    gettext
+    libossp_uuid
+    gtk3
+    gtksourceview3
+    gspell
+    webkitgtk
+    libxml2
+    goocanvas2
+    libplist
+    ratify
+    chimara
+  ];
+  preConfigure = ''
+    cp ${inform7}/libexec/ni ./src/ni
+    patchShebangs build-aux/* src/generate-resource-xml.{py,sh}
+  '';
+
+  meta = with lib; {
+    description = "Inform 7 for the Gnome platform";
+    longDescription = ''
+      This version of Inform 7 for the Gnome platform was created by Philip Chimento, based on a design by Graham Nelson and Andrew Hunter.
+    '';
+    homepage = "https://github.com/ptomato/gnome-inform7";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.fitzgibbon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix b/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix
index 7967b78f13c2..8fc6feecd57c 100644
--- a/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix
@@ -1,21 +1,49 @@
-{ lib, stdenv, fetchurl, wrapGAppsHook, gsettings-desktop-schemas, gspell, gtksourceview4, libgee
-, tepl, amtk, gnome3, glib, pkg-config, intltool, itstool, libxml2 }:
-let
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, gtk-doc
+, vala
+, gobject-introspection
+, wrapGAppsHook
+, gsettings-desktop-schemas
+, gspell
+, gtksourceview4
+, libgee
+, tepl
+, amtk
+, gnome
+, glib
+, pkg-config
+, intltool
+, itstool
+, libxml2
+}:
+
+stdenv.mkDerivation rec {
   version = "3.38.0";
   pname = "gnome-latex";
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8";
   };
 
-  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
-  configureFlags = ["--disable-dconf-migration"];
+  patches = [
+    # Fix build with latest tepl.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/Archive/gnome-latex/commit/e1b01186f8a4e5d3fee4c9ccfbedd6d098517df9.patch";
+      sha256 = "H8cbp5hDZoXytEdKE2D/oYHNKIbEFwxQoEaC4JMfGHY=";
+    })
+  ];
 
   nativeBuildInputs = [
     pkg-config
+    autoreconfHook
+    gtk-doc
+    vala
+    gobject-introspection
     wrapGAppsHook
     itstool
     intltool
@@ -23,7 +51,7 @@ in stdenv.mkDerivation {
 
   buildInputs = [
     amtk
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     glib
     gsettings-desktop-schemas
     gspell
@@ -33,9 +61,18 @@ in stdenv.mkDerivation {
     tepl
   ];
 
+  configureFlags = [
+    "--disable-dconf-migration"
+  ];
+
   doCheck = true;
 
-  passthru.updateScript = gnome3.updateScript { packageName = pname; };
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+  passthru.updateScript = gnome.updateScript {
+    packageName = pname;
+    versionPolicy = "odd-unstable";
+  };
 
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/GNOME-LaTeX";
diff --git a/nixpkgs/pkgs/applications/editors/gobby/default.nix b/nixpkgs/pkgs/applications/editors/gobby/default.nix
index 27047f8e95a8..35e96c89dad5 100644
--- a/nixpkgs/pkgs/applications/editors/gobby/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gobby/default.nix
@@ -1,6 +1,6 @@
 { avahiSupport ? false # build support for Avahi in libinfinity
 , lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config, wrapGAppsHook, yelp-tools
-, gtkmm3, gsasl, gtksourceview3, libxmlxx, libinfinity, intltool, itstool, gnome3 }:
+, gtkmm3, gsasl, gtksourceview3, libxmlxx, libinfinity, intltool, itstool, gnome }:
 
 let
   libinf = libinfinity.override { gtkWidgets = true; inherit avahiSupport; };
diff --git a/nixpkgs/pkgs/applications/editors/gophernotes/default.nix b/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
index 161acb54bbad..468b3ff03838 100644
--- a/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
@@ -21,6 +21,5 @@ buildGoModule rec {
     homepage = "https://github.com/gopherdata/gophernotes";
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/hexdino/default.nix b/nixpkgs/pkgs/applications/editors/hexdino/default.nix
index f92a4557ac7a..82119ae91d18 100644
--- a/nixpkgs/pkgs/applications/editors/hexdino/default.nix
+++ b/nixpkgs/pkgs/applications/editors/hexdino/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage {
     sha256 = "11mz07735gxqfamjcjjmxya6swlvr1p77sgd377zjcmd6z54gwyf";
   };
 
-  cargoSha256 = "06ghcd4j751mdkzwb88nqwk8la4zdb137y0iqrkpykkfx0as43x3";
+  cargoSha256 = "1hpndmpk1zlfvb4r95m13yvnsbjkwgw4pb9ala2d5yzfp38225nm";
 
   buildInputs = [ ncurses ];
 
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
index 1da4a24b3eae..e72d2df43a93 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
@@ -1,8 +1,7 @@
 { lib, stdenv, callPackage, fetchurl
-, jdk, cmake, libxml2, zlib, python3, ncurses5
-, dotnet-sdk_3
+, jdk, cmake, zlib, python3
+, dotnet-sdk_5
 , autoPatchelfHook
-, glib
 , libdbusmenu
 , vmopts ? null
 }:
@@ -197,7 +196,7 @@ let
       patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
         rm -rf lib/ReSharperHost/linux-x64/dotnet
         mkdir -p lib/ReSharperHost/linux-x64/dotnet/
-        ln -s ${dotnet-sdk_3}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
+        ln -s ${dotnet-sdk_5}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
       '');
     });
 
@@ -243,12 +242,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.2"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "1qq2k14pf2qy93y1xchlv08vvx99zcml8bdcx3h6jnjz6d7gz0px"; /* updated by script */
+      sha256 = "1zx9qwjx7hwjq25y474yj7sxvp9bqnq9l53afs6d4h6131lhjkcz"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -256,12 +255,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.2"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "11am11lkrhgfianr1apkkl4mn8gcsf6p1vz47y7lz4rfm05ac4gj"; /* updated by script */
+      sha256 = "1znb4m7sv7xqi1mq3yw0m51m06wfwmhhxmvck0xkv8s0cfg18qim"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -269,12 +268,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.2"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "1hxid7k5b26hiwwdxbvhi1fzhlrvm1xsd5gb0vj0g5zw658y2lzz"; /* updated by script */
+      sha256 = "0g20r7yn4r2h08wv3i8bnnma8x4jljixsbmfml8kixk0pzfhv4px"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -282,12 +281,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.2"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "1d7m39rzdgh2fyx50rpifqfsdmvfpi04hjp52pl76m35gyb5hsvs"; /* updated by script */
+      sha256 = "03i5f6p0abr9yfs9fg90fg7hb1a7zar9q4d4iiag30cmndwpslg2"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -295,12 +294,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.2"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "062kaph42xs5hc01sbmry4cm7nkyjks43qr5m7pbj5a2bgd7zzgx"; /* updated by script */
+      sha256 = "0mw4acaik1bkr7gqbwgs3i8f8px8zw95hm1zxgd5gd5kh88n17x5"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -321,12 +320,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.2"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "052m7mqa1s548my0gda9y2mysi2ijq27c9b3bskrwqsf1pm5ry63"; /* updated by script */
+      sha256 = "02s75fqd9hfh302zha4jw6qynpgm9nkrlq7s78nk3fc3d3hw8v5y"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -334,12 +333,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.1"; /* updated by script */
     description = "PyCharm Community Edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1iiglh7s2zm37kj6hzlzxb1jnzh2p0j1f2zzhg3nqyrrakfbyq3h"; /* updated by script */
+      sha256 = "04bs9sz872b0h1zzax23irvj6q5wxnzp6fl4f177j94kh4116cqh"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -347,12 +346,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.1"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1n3b4mdygzal7w88gwka5wh5jp09bh2zmm4n5rz9s7hr2srz71mz"; /* updated by script */
+      sha256 = "0wc9j7nilakmm7scf7a71zb3k9vixgih05ni3n3pp4iznvwb3nxg"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -360,12 +359,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2021.1.1"; /* updated by script */
+    version = "2021.1.3"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "00kdbsjw9hmq7x94pjscslv0b412g8l0jbvyi7jiyay8xc6wiaaj"; /* updated by script */
+      sha256 = "0k2vpndpachq6g767v2dwfa3xc8mssv0i7wwpm05dgqirpn4n0dw"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -373,12 +372,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.1"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "12mkb51x1w5wbx436pfnfzcad10qd53y43n0p4l2zg9yx985gm7v"; /* updated by script */
+      sha256 = "05sfjf5523idsl7byc7400r4xqv1d65gpmkh5x0lbgf1k3bx2wlm"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -386,12 +385,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.2"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "15i521qj2b0y1viqr0xx815ckpq359j6nars4xxq8xvy7cg729yc"; /* updated by script */
+      sha256 = "0q4hn6npm0c30v23d30dnphd6wajif0im1b9vjwa121lqi997l34"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm RELEASE";
diff --git a/nixpkgs/pkgs/applications/editors/jove/default.nix b/nixpkgs/pkgs/applications/editors/jove/default.nix
index 0b60b9474bd6..c2625271665f 100644
--- a/nixpkgs/pkgs/applications/editors/jove/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jove/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jove";
-  version = "4.17.3.6";
+  version = "4.17.3.7";
 
   src = fetchFromGitHub {
     owner = "jonmacs";
     repo = "jove";
     rev = version;
-    sha256 = "sha256-uQRNKV06ipOHrOsvsceqIFGGlRv5qOQy18q0tFkR6Kg=";
+    sha256 = "sha256-fD87FIWZlfJE2tVX+0QaiGGqu+tJFHheXe1guJR/Hxg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/editors/jucipp/default.nix b/nixpkgs/pkgs/applications/editors/jucipp/default.nix
index 7304219e2369..140bf04c9f36 100644
--- a/nixpkgs/pkgs/applications/editors/jucipp/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jucipp/default.nix
@@ -56,8 +56,8 @@ stdenv.mkDerivation rec {
     e = "\");";
     v = lib.getVersion llvmPackages.clang;
   in
-    p+llvmPackages.libcxx+"/include/c++/v1"+e
-    +p+llvmPackages.clang-unwrapped+"/lib/clang/"+v+"/include/"+e
+    p+llvmPackages.libcxx.dev+"/include/c++/v1"+e
+    +p+llvmPackages.clang-unwrapped.lib+"/lib/clang/"+v+"/include/"+e
     +p+glibc.dev+"/include"+e;
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
index 2ca24cf661a0..fb1287ba490b 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
@@ -34,13 +34,13 @@ self: super: {
 
   kak-ansi = stdenv.mkDerivation rec {
     pname = "kak-ansi";
-    version = "0.2.3";
+    version = "0.2.4";
 
     src = fetchFromGitHub {
       owner = "eraserhd";
       repo = "kak-ansi";
       rev = "v${version}";
-      sha256 = "pO7M3MjKMJQew9O20KALEvsXLuCKPYGGTtuN/q/kj8Q=";
+      sha256 = "kFjTYFy0KF5WWEHU4hHFAnD/03/d3ptjqMMbTSaGImE=";
     };
 
     installPhase = ''
diff --git a/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix b/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix
index b54015de7b8f..8894707643ad 100644
--- a/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix
+++ b/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
 
   buildInputs = [
     kdevelop-pg-qt
-    llvmPackages.llvm llvmPackages.clang-unwrapped
+    llvmPackages.llvm llvmPackages.libclang
   ];
 
   propagatedBuildInputs = [
@@ -37,7 +37,7 @@ mkDerivation rec {
   # https://cgit.kde.org/kdevelop.git/commit/?id=716372ae2e8dff9c51e94d33443536786e4bd85b
   # required as nixos seems to be unable to find CLANG_BUILTIN_DIR
   cmakeFlags = [
-    "-DCLANG_BUILTIN_DIR=${llvmPackages.clang-unwrapped}/lib/clang/${lib.getVersion llvmPackages.clang}/include"
+    "-DCLANG_BUILTIN_DIR=${llvmPackages.libclang.lib}/lib/clang/${lib.getVersion llvmPackages.clang}/include"
   ];
 
   dontWrapQtApps = true;
diff --git a/nixpkgs/pkgs/applications/editors/kibi/default.nix b/nixpkgs/pkgs/applications/editors/kibi/default.nix
index 337a46c0ec6b..2020729d81c5 100644
--- a/nixpkgs/pkgs/applications/editors/kibi/default.nix
+++ b/nixpkgs/pkgs/applications/editors/kibi/default.nix
@@ -7,7 +7,7 @@ rustPlatform.buildRustPackage rec {
   pname = "kibi";
   version = "0.2.2";
 
-  cargoSha256 = "sha256-8iEUOLFwHBLS0HQL/oLnv6lcV3V9Hm4jMqXkqPvIF9E=";
+  cargoSha256 = "sha256-ebUCkcUACganeq5U0XU4VIGClKDZGhUw6K3WBgTUUUw=";
 
   src = fetchFromGitHub {
     owner = "ilai-deutel";
diff --git a/nixpkgs/pkgs/applications/editors/kodestudio/default.nix b/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
index aa7b7b194486..38fb55ecf7bf 100644
--- a/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
 , # Patchelf dependencies:
-  alsaLib, atomEnv, boehmgc, flac, libogg, libvorbis, libXScrnSaver, libGLU, libGL
+  alsa-lib, atomEnv, boehmgc, flac, libogg, libvorbis, libXScrnSaver, libGLU, libGL
 , openssl, xorg, zlib
 }:
 
@@ -57,7 +57,7 @@ in
           $out/kodestudio
       patchelf \
           --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib:${xorg.libXinerama}/lib:${xorg.libX11}/lib:${alsaLib}/lib:${libGL}/lib:${libGLU}/lib:${openssl.out}/lib" \
+          --set-rpath ".:${stdenv.cc.libc}/lib:${xorg.libXinerama}/lib:${xorg.libX11}/lib:${alsa-lib}/lib:${libGL}/lib:${libGLU}/lib:${openssl.out}/lib" \
           $out/resources/app/extensions/krom/Krom/linux/Krom
       patchelf \
           --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
diff --git a/nixpkgs/pkgs/applications/editors/lighttable/default.nix b/nixpkgs/pkgs/applications/editors/lighttable/default.nix
index 52acc8ee50b8..b19b1ac2b68d 100644
--- a/nixpkgs/pkgs/applications/editors/lighttable/default.nix
+++ b/nixpkgs/pkgs/applications/editors/lighttable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, zlib, glib, alsaLib, makeDesktopItem
+{ stdenv, lib, fetchurl, zlib, glib, alsa-lib, makeDesktopItem
 , dbus, gtk2, atk, pango, freetype, fontconfig, libgnome-keyring3, gdk-pixbuf
 , cairo, cups, expat, libgpgerror, nspr, gnome2, nss, xorg, systemd, libnotify
 }:
@@ -6,7 +6,7 @@
 let
   libPath = lib.makeLibraryPath [
       stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3 nss
-      fontconfig gdk-pixbuf cairo cups expat libgpgerror alsaLib nspr gnome2.GConf
+      fontconfig gdk-pixbuf cairo cups expat libgpgerror alsa-lib nspr gnome2.GConf
       xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
       xorg.libXcomposite xorg.libXi xorg.libXfixes libnotify xorg.libXrandr
       xorg.libXcursor
diff --git a/nixpkgs/pkgs/applications/editors/lite/default.nix b/nixpkgs/pkgs/applications/editors/lite/default.nix
index a313ea18212f..5ed1603ba8a8 100644
--- a/nixpkgs/pkgs/applications/editors/lite/default.nix
+++ b/nixpkgs/pkgs/applications/editors/lite/default.nix
@@ -4,6 +4,7 @@
 , lua52Packages
 , pkg-config
 , makeWrapper
+, openlibm
 } :
 
 stdenv.mkDerivation rec {
@@ -19,7 +20,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
 
-  buildInputs = [ SDL2 lua52Packages.lua ];
+  buildInputs = [ SDL2 lua52Packages.lua openlibm ];
 
   postPatch = ''
     # use system Lua 5.2
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
     # extracted and adapted from build.sh
     CC=$NIX_CC/bin/cc
     CFLAGS="-Wall -O3 -g -std=gnu11 -Isrc -DLUA_USE_POPEN $(pkg-config --cflags lua sdl2)"
-    LDFLAGS="$(pkg-config --libs lua sdl2)"
+    LDFLAGS="$(pkg-config --libs lua sdl2 openlibm)"
     for f in $(find src -name "*.c"); do
       $CC -c $CFLAGS $f -o "''${f//\//_}.o"
     done
diff --git a/nixpkgs/pkgs/applications/editors/micro/default.nix b/nixpkgs/pkgs/applications/editors/micro/default.nix
index f3506b0cb985..c7cb8be2fa61 100644
--- a/nixpkgs/pkgs/applications/editors/micro/default.nix
+++ b/nixpkgs/pkgs/applications/editors/micro/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "micro";
-  version = "2.0.8";
+  version = "2.0.9";
 
   src = fetchFromGitHub {
     owner = "zyedidia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1b51fvc9hrjfl8acr3yybp66xfll7d43412qwi76wxwarn06gkci";
+    sha256 = "sha256-8QtucdamxVwHuuhQhVQuvTNbqY5p97LKSB23617p4ow=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
   subPackages = [ "cmd/micro" ];
 
-  vendorSha256 = "19iqvl63g9y6gkzfmv87rrgj4c4y6ngh467ss94rzrhaybj2b2d8";
+  vendorSha256 = "sha256-bkD125ePdKcVgmNilOMZgUK6A8KWxaBOGKs8AvvIboI=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/zyedidia/micro/v2/internal/util.Version=${version} -X github.com/zyedidia/micro/v2/internal/util.CommitHash=${src.rev}" ];
 
diff --git a/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix b/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
index 90879b352e18..a48b5eae3de3 100644
--- a/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
+++ b/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, swt, jdk, makeWrapper, alsaLib, jack2, fluidsynth, libpulseaudio }:
+{ lib, stdenv, fetchurl, swt, jdk, makeWrapper, alsa-lib, jack2, fluidsynth, libpulseaudio }:
 
 let metadata = assert stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux";
   if stdenv.hostPlatform.system == "i686-linux" then
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
 
     wrapProgram $out/bin/tuxguitar \
       --set JAVA "${jdk}/bin/java" \
-      --prefix LD_LIBRARY_PATH : "$out/lib/:${lib.makeLibraryPath [ swt alsaLib jack2 fluidsynth libpulseaudio ]}" \
+      --prefix LD_LIBRARY_PATH : "$out/lib/:${lib.makeLibraryPath [ swt alsa-lib jack2 fluidsynth libpulseaudio ]}" \
       --prefix CLASSPATH : "${swt}/jars/swt.jar:$out/lib/tuxguitar.jar:$out/lib/itext.jar"
   '';
 
diff --git a/nixpkgs/pkgs/applications/editors/nano/default.nix b/nixpkgs/pkgs/applications/editors/nano/default.nix
index b55252855662..1a92ca3decbb 100644
--- a/nixpkgs/pkgs/applications/editors/nano/default.nix
+++ b/nixpkgs/pkgs/applications/editors/nano/default.nix
@@ -16,11 +16,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "5.6.1";
+  version = "5.7";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "02cbxqizbdlfwnz8dpq4fbzmdi4yk6fv0cragvpa0748w1cp03bn";
+    sha256 = "1ynarilx0ca0a5h6hl5bf276cymyy8s9wr5l24vyy7f15v683cfl";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/nixpkgs/pkgs/applications/editors/neovim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/default.nix
index 3e5de3d5fc15..1b4835064f96 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/default.nix
@@ -6,7 +6,7 @@
 
 # now defaults to false because some tests can be flaky (clipboard etc)
 , doCheck ? false
-, nodejs ? null, fish ? null, python ? null
+, nodejs ? null, fish ? null, python3 ? null
 }:
 
 with lib;
@@ -19,7 +19,7 @@ let
       ]
     ));
 
-  pyEnv = python.withPackages(ps: [ ps.pynvim ps.msgpack ]);
+  pyEnv = python3.withPackages(ps: with ps; [ pynvim msgpack ]);
 
   # FIXME: this is verry messy and strange.
   # see https://github.com/NixOS/nixpkgs/pull/80528
diff --git a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
index 8e86683f9bfe..c82829bc1090 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1cc3yk04v9icdjr5cn58mqc3ba1wqmlzhf9ly7biy9m8yk30w9y0";
   };
 
-  cargoSha256 = "1fyn8nsabzrfl9ykf2gk2p8if0yjp6k0ybrmp0pw67pbwaxpb9ym";
+  cargoSha256 = "0z6hhahxdc6d7nzqvc8jlxn1frsc39va8z5pmwfmmq5z61ahk90z";
 
   buildInputs = [ gtk webkitgtk ];
 
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovide/Cargo.lock b/nixpkgs/pkgs/applications/editors/neovim/neovide/Cargo.lock
new file mode 100644
index 000000000000..4e37d0fbfa10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovide/Cargo.lock
@@ -0,0 +1,3292 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9fe5e32de01730eb1f6b7f5b51c17e03e2325bf40a74f754f04f130043affff"
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
+name = "ahash"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29661b60bec623f0586702976ff4d0c9942dcb6723161c2df0eea78455cfedfb"
+dependencies = [
+ "const-random",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "andrew"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b7f09f89872c2b6b29e319377b1fbe91c6f5947df19a25596e121cf19a7b35e"
+dependencies = [
+ "bitflags",
+ "line_drawing",
+ "rusttype 0.7.9",
+ "walkdir",
+ "xdg",
+ "xml-rs",
+]
+
+[[package]]
+name = "andrew"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c4afb09dd642feec8408e33f92f3ffc4052946f6b20f32fb99c1f58cd4fa7cf"
+dependencies = [
+ "bitflags",
+ "rusttype 0.9.2",
+ "walkdir",
+ "xdg",
+ "xml-rs",
+]
+
+[[package]]
+name = "android_log-sys"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8052e2d8aabbb8d556d6abbcce2a22b9590996c5f849b9c7ce4544a2e3b984e"
+
+[[package]]
+name = "ansi_term"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
+
+[[package]]
+name = "approx"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "ash"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c69a8137596e84c22d57f3da1b5de1d4230b1742a710091c85f4d7ce50f00f38"
+dependencies = [
+ "libloading 0.6.7",
+]
+
+[[package]]
+name = "ash-window"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "905c4ca25f752e7ab3c3e8f2882625f876e4c3ea5feffbc83f81d697e043afd6"
+dependencies = [
+ "ash",
+ "raw-window-handle",
+ "raw-window-metal",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "autocfg"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+
+[[package]]
+name = "autocfg"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+
+[[package]]
+name = "bindgen"
+version = "0.55.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75b13ce559e6433d360c26305643803cb52cfbabbc2b9c47ce04a58493dfb443"
+dependencies = [
+ "bitflags",
+ "cexpr",
+ "cfg-if 0.1.10",
+ "clang-sys",
+ "clap",
+ "env_logger",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "which 3.1.1",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+dependencies = [
+ "byteorder",
+ "iovec",
+]
+
+[[package]]
+name = "bytes"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
+
+[[package]]
+name = "calloop"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7aa2097be53a00de9e8fc349fea6d76221f398f5c4fa550d420669906962d160"
+dependencies = [
+ "mio",
+ "mio-extras",
+ "nix 0.14.1",
+]
+
+[[package]]
+name = "calloop"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b036167e76041694579972c28cf4877b4f92da222560ddb49008937b6a6727c"
+dependencies = [
+ "log",
+ "nix 0.18.0",
+]
+
+[[package]]
+name = "cargo-husky"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad"
+
+[[package]]
+name = "cc"
+version = "1.0.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
+
+[[package]]
+name = "cexpr"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+dependencies = [
+ "nom 5.1.2",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+dependencies = [
+ "libc",
+ "num-integer",
+ "num-traits",
+ "time",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "clang-sys"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "853eda514c284c2287f4bf20ae614f8781f40a81d32ecda6e91449304dfe077c"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading 0.7.0",
+]
+
+[[package]]
+name = "clap"
+version = "2.33.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags",
+ "strsim 0.8.0",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "cmake"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c49e86fc36d5704151f5996b7b3795385f50ce09e3be0f47a0cfde869681cf8"
+dependencies = [
+ "bitflags",
+ "block",
+ "core-foundation 0.7.0",
+ "core-graphics 0.19.2",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c54201c07dcf3a5ca33fececb8042aed767ee4bfd5a0235a8ceabcda956044b2"
+dependencies = [
+ "bitflags",
+ "block",
+ "cocoa-foundation",
+ "core-foundation 0.9.1",
+ "core-graphics 0.22.2",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832"
+dependencies = [
+ "bitflags",
+ "block",
+ "cocoa-foundation",
+ "core-foundation 0.9.1",
+ "core-graphics 0.22.2",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
+dependencies = [
+ "bitflags",
+ "block",
+ "core-foundation 0.9.1",
+ "core-graphics-types",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "const-random"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4"
+dependencies = [
+ "const-random-macro",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40"
+dependencies = [
+ "getrandom 0.2.2",
+ "lazy_static",
+ "proc-macro-hack",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
+dependencies = [
+ "core-foundation-sys 0.7.0",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
+dependencies = [
+ "core-foundation-sys 0.8.2",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+
+[[package]]
+name = "core-graphics"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923"
+dependencies = [
+ "bitflags",
+ "core-foundation 0.7.0",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "269f35f69b542b80e736a20a89a05215c0ce80c2c03c514abb2e318b78379d86"
+dependencies = [
+ "bitflags",
+ "core-foundation 0.9.1",
+ "core-graphics-types",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+dependencies = [
+ "bitflags",
+ "core-foundation 0.9.1",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-text"
+version = "19.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
+dependencies = [
+ "core-foundation 0.9.1",
+ "core-graphics 0.22.2",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-video-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828"
+dependencies = [
+ "cfg-if 0.1.10",
+ "core-foundation-sys 0.7.0",
+ "core-graphics 0.19.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e"
+dependencies = [
+ "cfg-if 0.1.10",
+ "crossbeam-channel 0.4.4",
+ "crossbeam-deque 0.7.3",
+ "crossbeam-epoch 0.8.2",
+ "crossbeam-queue",
+ "crossbeam-utils 0.7.2",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
+dependencies = [
+ "crossbeam-utils 0.7.2",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.4",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+dependencies = [
+ "crossbeam-epoch 0.8.2",
+ "crossbeam-utils 0.7.2",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-epoch 0.9.4",
+ "crossbeam-utils 0.8.4",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+dependencies = [
+ "autocfg 1.0.1",
+ "cfg-if 0.1.10",
+ "crossbeam-utils 0.7.2",
+ "lazy_static",
+ "maybe-uninit",
+ "memoffset 0.5.6",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52fb27eab85b17fbb9f6fd667089e07d6a2eb8743d02639ee7f6a7a7729c9c94"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.4",
+ "lazy_static",
+ "memoffset 0.6.3",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+dependencies = [
+ "cfg-if 0.1.10",
+ "crossbeam-utils 0.7.2",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg 1.0.1",
+ "cfg-if 0.1.10",
+ "lazy_static",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4feb231f0d4d6af81aed15928e58ecf5816aa62a2393e2c82f46973e92a9a278"
+dependencies = [
+ "autocfg 1.0.1",
+ "cfg-if 1.0.0",
+ "lazy_static",
+]
+
+[[package]]
+name = "crossfire"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8434f61eb40fc72030b18a370f7a06b428d27de66b0281977967216312b14dc7"
+dependencies = [
+ "async-trait",
+ "crossbeam",
+ "futures 0.3.15",
+]
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "curl"
+version = "0.4.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adba2012502267c1fdde381e0e3acc44bf8be96b2f7d455089dcc2c8ad2f67bd"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.43+curl-7.76.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a802c7a9828b7d139efaed1bc92471ab6681ed86d19a105605f5eadcb0837d11"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "darling"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "strsim 0.9.3",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
+dependencies = [
+ "darling_core",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "deflate"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
+dependencies = [
+ "adler32",
+ "byteorder",
+]
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "derive-new"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "difference"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+
+[[package]]
+name = "dirs"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
+dependencies = [
+ "cfg-if 0.1.10",
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "dlib"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76"
+dependencies = [
+ "libloading 0.6.7",
+]
+
+[[package]]
+name = "dlib"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+dependencies = [
+ "libloading 0.7.0",
+]
+
+[[package]]
+name = "downcast"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d"
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
+[[package]]
+name = "dwrote"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "winapi 0.3.9",
+ "wio",
+]
+
+[[package]]
+name = "either"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "euclid"
+version = "0.20.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bb7ef65b3777a325d1eeefefab5b6d4959da54747e33bd6258e789640f307ad"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "expat-sys"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa"
+dependencies = [
+ "cmake",
+ "pkg-config",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall 0.2.8",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crc32fast",
+ "libc",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "flexi_logger"
+version = "0.14.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "515fb7f6541dafe542c87c12a7ab6a52190cccb6c348b5951ef62d9978189ae8"
+dependencies = [
+ "chrono",
+ "glob",
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "float-ord"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "font-kit"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f9042cb45150fb2b2a012fc03d0f1d2071f18e90397b9d2a5ec8ade8464bf20"
+dependencies = [
+ "bitflags",
+ "byteorder",
+ "core-foundation 0.9.1",
+ "core-graphics 0.22.2",
+ "core-text",
+ "dirs",
+ "dwrote",
+ "float-ord",
+ "freetype",
+ "lazy_static",
+ "libc",
+ "log",
+ "pathfinder_geometry",
+ "pathfinder_simd",
+ "servo-fontconfig",
+ "walkdir",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "fragile"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69a039c3498dc930fe810151a34ba0c1c70b02b8625035592e74432f678591f2"
+
+[[package]]
+name = "freetype"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6"
+dependencies = [
+ "freetype-sys",
+ "libc",
+]
+
+[[package]]
+name = "freetype-sys"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
+dependencies = [
+ "cmake",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "fuchsia-zircon"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+dependencies = [
+ "bitflags",
+ "fuchsia-zircon-sys",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+[[package]]
+name = "futures"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
+
+[[package]]
+name = "futures"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
+dependencies = [
+ "autocfg 1.0.1",
+ "proc-macro-hack",
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
+
+[[package]]
+name = "futures-task"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
+
+[[package]]
+name = "futures-util"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
+dependencies = [
+ "autocfg 1.0.1",
+ "futures 0.1.31",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite 0.2.6",
+ "pin-utils",
+ "proc-macro-hack",
+ "proc-macro-nested",
+ "slab",
+ "tokio-io",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.10.2+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gif"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af"
+dependencies = [
+ "color_quant",
+ "lzw",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "harfbuzz"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "776caa9519beb53f697d578b6777eebd1262265c84ae797620b7f8f9b3648d91"
+dependencies = [
+ "harfbuzz-sys",
+]
+
+[[package]]
+name = "harfbuzz-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf8c27ca13930dc4ffe474880040fe9e0f03c2121600dc9c95423624cab3e467"
+dependencies = [
+ "cc",
+ "core-graphics 0.22.2",
+ "core-text",
+ "foreign-types",
+ "freetype",
+ "pkg-config",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead"
+dependencies = [
+ "ahash",
+ "autocfg 0.1.7",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "image"
+version = "0.22.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08ed2ada878397b045454ac7cfb011d73132c59f31a955d230bd1f1c2e68eb4a"
+dependencies = [
+ "byteorder",
+ "gif",
+ "jpeg-decoder",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+ "png",
+ "scoped_threadpool",
+ "tiff",
+]
+
+[[package]]
+name = "inflate"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff"
+dependencies = [
+ "adler32",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "iovec"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "libc"
+version = "0.2.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
+
+[[package]]
+name = "libloading"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "libloading"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "line_drawing"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cc7ad3d82c845bdb5dde34ffdcc7a5fb4d2996e1e1ee0f19c33bc80e15196b9"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "lru"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237"
+dependencies = [
+ "hashbrown",
+]
+
+[[package]]
+name = "lzw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
+[[package]]
+name = "memchr"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
+
+[[package]]
+name = "memmap"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
+dependencies = [
+ "autocfg 1.0.1",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d"
+dependencies = [
+ "autocfg 1.0.1",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
+dependencies = [
+ "adler",
+ "autocfg 1.0.1",
+]
+
+[[package]]
+name = "mio"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
+dependencies = [
+ "cfg-if 0.1.10",
+ "fuchsia-zircon",
+ "fuchsia-zircon-sys",
+ "iovec",
+ "kernel32-sys",
+ "libc",
+ "log",
+ "miow 0.2.2",
+ "net2",
+ "slab",
+ "winapi 0.2.8",
+]
+
+[[package]]
+name = "mio-extras"
+version = "2.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
+dependencies = [
+ "lazycell",
+ "log",
+ "mio",
+ "slab",
+]
+
+[[package]]
+name = "mio-named-pipes"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
+dependencies = [
+ "log",
+ "mio",
+ "miow 0.3.7",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "mio-uds"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
+dependencies = [
+ "iovec",
+ "libc",
+ "mio",
+]
+
+[[package]]
+name = "miow"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
+dependencies = [
+ "kernel32-sys",
+ "net2",
+ "winapi 0.2.8",
+ "ws2_32-sys",
+]
+
+[[package]]
+name = "miow"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "mockall"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01458f8a19b10cb28195290942e3149161c75acf67ebc8fbf714ab67a2b943bc"
+dependencies = [
+ "cfg-if 0.1.10",
+ "downcast",
+ "fragile",
+ "lazy_static",
+ "mockall_derive",
+ "predicates",
+ "predicates-tree",
+]
+
+[[package]]
+name = "mockall_derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a673cb441f78cd9af4f5919c28576a3cc325fb6b54e42f7047dacce3c718c17b"
+dependencies = [
+ "cfg-if 0.1.10",
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "ndk"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a356cafe20aee088789830bfea3a61336e84ded9e545e00d3869ce95dcb80c"
+dependencies = [
+ "jni-sys",
+ "ndk-sys 0.1.0",
+ "num_enum",
+]
+
+[[package]]
+name = "ndk"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eb167c1febed0a496639034d0c76b3b74263636045db5489eee52143c246e73"
+dependencies = [
+ "jni-sys",
+ "ndk-sys 0.2.1",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-glue"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1730ee2e3de41c3321160a6da815f008c4006d71b095880ea50e17cf52332b8"
+dependencies = [
+ "android_log-sys",
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk 0.1.0",
+ "ndk-sys 0.1.0",
+]
+
+[[package]]
+name = "ndk-glue"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdf399b8b7a39c6fb153c4ec32c72fd5fe789df24a647f229c239aa7adb15241"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk 0.2.1",
+ "ndk-macro",
+ "ndk-sys 0.2.1",
+]
+
+[[package]]
+name = "ndk-macro"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d"
+dependencies = [
+ "darling",
+ "proc-macro-crate",
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "ndk-sys"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b2820aca934aba5ed91c79acc72b6a44048ceacc5d36c035ed4e051f12d887d"
+
+[[package]]
+name = "ndk-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c44922cb3dbb1c70b5e5f443d63b64363a898564d739ba5198e3a9138442868d"
+
+[[package]]
+name = "neovide"
+version = "0.7.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "cargo-husky",
+ "cfg-if 0.1.10",
+ "crossfire",
+ "derive-new",
+ "dirs",
+ "euclid",
+ "flexi_logger",
+ "font-kit",
+ "futures 0.3.15",
+ "image",
+ "lazy_static",
+ "log",
+ "lru",
+ "mockall",
+ "neovide-derive",
+ "nvim-rs",
+ "parking_lot 0.10.2",
+ "pin-project",
+ "rand",
+ "rmpv",
+ "rust-embed",
+ "sdl2-sys",
+ "skia-safe",
+ "skribo",
+ "skulpin",
+ "tokio",
+ "unicode-segmentation",
+ "which 4.1.0",
+ "winapi 0.3.9",
+ "winres",
+]
+
+[[package]]
+name = "neovide-derive"
+version = "0.1.0"
+dependencies = [
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "net2"
+version = "0.2.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
+dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "nix"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce"
+dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if 0.1.10",
+ "libc",
+ "void",
+]
+
+[[package]]
+name = "nix"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055"
+dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if 0.1.10",
+ "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
+dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+dependencies = [
+ "memchr",
+ "version_check",
+]
+
+[[package]]
+name = "nom"
+version = "6.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
+dependencies = [
+ "memchr",
+ "version_check",
+]
+
+[[package]]
+name = "normalize-line-endings"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+
+[[package]]
+name = "num-derive"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "syn 0.15.44",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+dependencies = [
+ "autocfg 1.0.1",
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+dependencies = [
+ "autocfg 1.0.1",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
+dependencies = [
+ "autocfg 1.0.1",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+dependencies = [
+ "autocfg 1.0.1",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4"
+dependencies = [
+ "derivative",
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "nvim-rs"
+version = "0.1.1-alpha.0"
+source = "git+https://github.com/kethku/nvim-rs#109feea9e345fcbb2674384b0d6914ba4b8fc61e"
+dependencies = [
+ "async-trait",
+ "futures 0.3.15",
+ "log",
+ "pin-project",
+ "rmp",
+ "rmpv",
+ "tokio",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98"
+dependencies = [
+ "autocfg 1.0.1",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "ordered-float"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f923fb806c46266c02ab4a5b239735c144bdeda724a50ed058e5226f594cde3"
+dependencies = [
+ "ttf-parser",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
+dependencies = [
+ "lock_api 0.3.4",
+ "parking_lot_core 0.7.2",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
+dependencies = [
+ "instant",
+ "lock_api 0.4.4",
+ "parking_lot_core 0.8.3",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
+dependencies = [
+ "cfg-if 0.1.10",
+ "cloudabi",
+ "libc",
+ "redox_syscall 0.1.57",
+ "smallvec",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
+dependencies = [
+ "cfg-if 1.0.0",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.8",
+ "smallvec",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "pathfinder_geometry"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3"
+dependencies = [
+ "log",
+ "pathfinder_simd",
+]
+
+[[package]]
+name = "pathfinder_simd"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b451513912d6b3440e443aa75a73ab22203afedc4a90df8526d008c0f86f7cb3"
+dependencies = [
+ "rustc_version",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pin-project"
+version = "0.4.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "0.4.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
+
+[[package]]
+name = "png"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283"
+dependencies = [
+ "bitflags",
+ "crc32fast",
+ "deflate",
+ "inflate",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "predicates"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df"
+dependencies = [
+ "difference",
+ "float-cmp",
+ "normalize-line-endings",
+ "predicates-core",
+ "regex",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15f553275e5721409451eb85e15fd9a860a6e5ab4496eb215987502b5f5391f2"
+dependencies = [
+ "predicates-core",
+ "treeline",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
+dependencies = [
+ "toml",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+
+[[package]]
+name = "proc-macro-nested"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
+dependencies = [
+ "unicode-xid 0.2.2",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+dependencies = [
+ "proc-macro2 1.0.26",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "raw-window-metal"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cd21ed1cdef7f1b1579b972148ba6058b5b545959a14d91ea83c4f0ea9f289b"
+dependencies = [
+ "cocoa 0.24.0",
+ "core-graphics 0.22.2",
+ "objc",
+ "raw-window-handle",
+]
+
+[[package]]
+name = "rayon"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
+dependencies = [
+ "autocfg 1.0.1",
+ "crossbeam-deque 0.8.0",
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
+dependencies = [
+ "crossbeam-channel 0.5.1",
+ "crossbeam-deque 0.8.0",
+ "crossbeam-utils 0.8.4",
+ "lazy_static",
+ "num_cpus",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
+dependencies = [
+ "getrandom 0.2.2",
+ "redox_syscall 0.2.8",
+]
+
+[[package]]
+name = "regex"
+version = "1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+
+[[package]]
+name = "rmp"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f55e5fa1446c4d5dd1f5daeed2a4fe193071771a2636274d0d7a3b082aa7ad6"
+dependencies = [
+ "byteorder",
+ "num-traits",
+]
+
+[[package]]
+name = "rmpv"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c760afe11955e16121e36485b6b828326c3f0eaff1c31758d96dbeb5cf09fd5"
+dependencies = [
+ "num-traits",
+ "rmp",
+]
+
+[[package]]
+name = "rust-embed"
+version = "5.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fe1fe6aac5d6bb9e1ffd81002340363272a7648234ec7bdfac5ee202cb65523"
+dependencies = [
+ "rust-embed-impl",
+ "rust-embed-utils",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-impl"
+version = "5.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ed91c41c42ef7bf687384439c312e75e0da9c149b0390889b94de3c7d9d9e66"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "rust-embed-utils",
+ "syn 1.0.72",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-utils"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a512219132473ab0a77b52077059f1c47ce4af7fbdc94503e9862a34422876d"
+dependencies = [
+ "walkdir",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rusttype"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "310942406a39981bed7e12b09182a221a29e0990f3e7e0c971f131922ed135d5"
+dependencies = [
+ "rusttype 0.8.3",
+]
+
+[[package]]
+name = "rusttype"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f61411055101f7b60ecf1041d87fb74205fb20b0c7a723f07ef39174cf6b4c0"
+dependencies = [
+ "approx",
+ "ordered-float",
+ "stb_truetype",
+]
+
+[[package]]
+name = "rusttype"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc7c727aded0be18c5b80c1640eae0ac8e396abf6fa8477d96cb37d18ee5ec59"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
+dependencies = [
+ "lazy_static",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
+
+[[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "sdl2"
+version = "0.34.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deecbc3fa9460acff5a1e563e05cb5f31bba0aa0c214bb49a43db8159176d54b"
+dependencies = [
+ "bitflags",
+ "lazy_static",
+ "libc",
+ "raw-window-handle",
+ "sdl2-sys",
+]
+
+[[package]]
+name = "sdl2-sys"
+version = "0.34.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41a29aa21f175b5a41a6e26da572d5e5d1ee5660d35f9f9d0913e8a802098f74"
+dependencies = [
+ "cfg-if 0.1.10",
+ "cmake",
+ "flate2",
+ "libc",
+ "tar",
+ "unidiff",
+ "version-compare",
+]
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "serde"
+version = "1.0.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
+
+[[package]]
+name = "serde_json"
+version = "1.0.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "servo-fontconfig"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c"
+dependencies = [
+ "libc",
+ "servo-fontconfig-sys",
+]
+
+[[package]]
+name = "servo-fontconfig-sys"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388"
+dependencies = [
+ "expat-sys",
+ "freetype-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "shlex"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "skia-bindings"
+version = "0.35.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e158e83da2315e0b82eaf21e8aa771b9d32c7fd92ce56f247a8c63be8acc7a3e"
+dependencies = [
+ "bindgen",
+ "cc",
+ "curl",
+ "flate2",
+ "heck",
+ "regex",
+ "serde_json",
+ "tar",
+ "toml",
+]
+
+[[package]]
+name = "skia-safe"
+version = "0.35.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85dd8abb714b094d5cb22b53aecc5d23aaa7219067d2347fbc9a7c3bc5118633"
+dependencies = [
+ "bitflags",
+ "lazy_static",
+ "skia-bindings",
+]
+
+[[package]]
+name = "skribo"
+version = "0.1.0"
+source = "git+https://github.com/linebender/skribo#62fabc1257e4ba4460a7e32087026e85e694ecc6"
+dependencies = [
+ "font-kit",
+ "harfbuzz",
+ "harfbuzz-sys",
+ "log",
+ "pathfinder_geometry",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "skulpin"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d11f1c75af5e20eaa1dd985692b42b697b49f3581eb8088526688120a951b1ad"
+dependencies = [
+ "log",
+ "skulpin-app-winit",
+ "skulpin-renderer",
+ "skulpin-renderer-sdl2",
+ "skulpin-renderer-winit",
+]
+
+[[package]]
+name = "skulpin-app-winit"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf156763a67080ce9a8965bba2b1c7cdee9f51f4e1fdb2b3ef6dcf7d9fbf63f"
+dependencies = [
+ "log",
+ "skulpin-renderer",
+ "skulpin-renderer-winit",
+]
+
+[[package]]
+name = "skulpin-renderer"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19f77569926563e91b3e8a5b1b77d192be6a8db8e3f0c4e05e887843998dd47e"
+dependencies = [
+ "ash",
+ "log",
+ "skia-bindings",
+ "skia-safe",
+]
+
+[[package]]
+name = "skulpin-renderer-sdl2"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2391513a1fcb62aad9e95fa0c7ab2ecaf0565dd68fee8bf096f1ed9a25abf936"
+dependencies = [
+ "ash-window",
+ "log",
+ "raw-window-handle",
+ "sdl2",
+ "skulpin-renderer",
+]
+
+[[package]]
+name = "skulpin-renderer-winit"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc972e8252690259199c00f3e0a307082c6b666e57b72d629cf608e0396a0f01"
+dependencies = [
+ "ash-window",
+ "log",
+ "raw-window-handle",
+ "skulpin-renderer",
+ "winit 0.22.2",
+ "winit 0.23.0",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
+
+[[package]]
+name = "smallvec"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "421c8dc7acf5cb205b88160f8b4cc2c5cfabe210e43b2f80f009f4c1ef910f1d"
+dependencies = [
+ "andrew 0.2.1",
+ "bitflags",
+ "dlib 0.4.2",
+ "lazy_static",
+ "memmap",
+ "nix 0.14.1",
+ "wayland-client 0.23.6",
+ "wayland-protocols 0.23.6",
+]
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4750c76fd5d3ac95fa3ed80fe667d6a3d8590a960e5b575b98eea93339a80b80"
+dependencies = [
+ "andrew 0.3.1",
+ "bitflags",
+ "calloop 0.6.5",
+ "dlib 0.4.2",
+ "lazy_static",
+ "log",
+ "memmap2",
+ "nix 0.18.0",
+ "wayland-client 0.28.5",
+ "wayland-cursor",
+ "wayland-protocols 0.28.5",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "stb_truetype"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f77b6b07e862c66a9f3e62a07588fee67cd90a9135a2b942409f195507b4fb51"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "strsim"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+
+[[package]]
+name = "syn"
+version = "0.15.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "unicode-xid 0.2.2",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "tiff"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7b7c2cfc4742bd8a32f2e614339dd8ce30dbcf676bb262bd63a2327bc5df57d"
+dependencies = [
+ "byteorder",
+ "lzw",
+ "num-derive",
+ "num-traits",
+]
+
+[[package]]
+name = "time"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "tokio"
+version = "0.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092"
+dependencies = [
+ "bytes 0.5.6",
+ "fnv",
+ "iovec",
+ "lazy_static",
+ "libc",
+ "memchr",
+ "mio",
+ "mio-named-pipes",
+ "mio-uds",
+ "num_cpus",
+ "pin-project-lite 0.1.12",
+ "signal-hook-registry",
+ "slab",
+ "tokio-macros",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "tokio-io"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
+dependencies = [
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "log",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "syn 1.0.72",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "treeline"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
+
+[[package]]
+name = "ttf-parser"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+
+[[package]]
+name = "unidiff"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8a62719acf1933bfdbeb73a657ecd9ecece70b405125267dd549e2e2edc232c"
+dependencies = [
+ "encoding_rs",
+ "lazy_static",
+ "regex",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version-compare"
+version = "0.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
+
+[[package]]
+name = "version_check"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
+
+[[package]]
+name = "void"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+
+[[package]]
+name = "walkdir"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+dependencies = [
+ "same-file",
+ "winapi 0.3.9",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+
+[[package]]
+name = "wayland-client"
+version = "0.23.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af1080ebe0efabcf12aef2132152f616038f2d7dcbbccf7b2d8c5270fe14bcda"
+dependencies = [
+ "bitflags",
+ "calloop 0.4.4",
+ "downcast-rs",
+ "libc",
+ "mio",
+ "nix 0.14.1",
+ "wayland-commons 0.23.6",
+ "wayland-scanner 0.23.6",
+ "wayland-sys 0.23.6",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.28.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ca44d86554b85cf449f1557edc6cc7da935cc748c8e4bf1c507cbd43bae02c"
+dependencies = [
+ "bitflags",
+ "downcast-rs",
+ "libc",
+ "nix 0.20.0",
+ "scoped-tls",
+ "wayland-commons 0.28.5",
+ "wayland-scanner 0.28.5",
+ "wayland-sys 0.28.5",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.23.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb66b0d1a27c39bbce712b6372131c6e25149f03ffb0cd017cf8f7de8d66dbdb"
+dependencies = [
+ "nix 0.14.1",
+ "wayland-sys 0.23.6",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.28.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bd75ae380325dbcff2707f0cd9869827ea1d2d6d534cff076858d3f0460fd5a"
+dependencies = [
+ "nix 0.20.0",
+ "once_cell",
+ "smallvec",
+ "wayland-sys 0.28.5",
+]
+
+[[package]]
+name = "wayland-cursor"
+version = "0.28.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b37e5455ec72f5de555ec39b5c3704036ac07c2ecd50d0bffe02d5fe2d4e65ab"
+dependencies = [
+ "nix 0.20.0",
+ "wayland-client 0.28.5",
+ "xcursor",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.23.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6cc286643656742777d55dc8e70d144fa4699e426ca8e9d4ef454f4bf15ffcf9"
+dependencies = [
+ "bitflags",
+ "wayland-client 0.23.6",
+ "wayland-commons 0.23.6",
+ "wayland-scanner 0.23.6",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.28.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95df3317872bcf9eec096c864b69aa4769a1d5d6291a5b513f8ba0af0efbd52c"
+dependencies = [
+ "bitflags",
+ "wayland-client 0.28.5",
+ "wayland-commons 0.28.5",
+ "wayland-scanner 0.28.5",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.23.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93b02247366f395b9258054f964fe293ddd019c3237afba9be2ccbe9e1651c3d"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.28.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "389d680d7bd67512dc9c37f39560224327038deb0f0e8d33f870900441b68720"
+dependencies = [
+ "proc-macro2 1.0.26",
+ "quote 1.0.9",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.23.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d94e89a86e6d6d7c7c9b19ebf48a03afaac4af6bc22ae570e9a24124b75358f4"
+dependencies = [
+ "dlib 0.4.2",
+ "lazy_static",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.28.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2907bd297eef464a95ba9349ea771611771aa285b932526c633dc94d5400a8e2"
+dependencies = [
+ "dlib 0.5.0",
+ "lazy_static",
+ "pkg-config",
+]
+
+[[package]]
+name = "which"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "which"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe"
+dependencies = [
+ "either",
+ "libc",
+]
+
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "winit"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e4ccbf7ddb6627828eace16cacde80fc6bf4dbb3469f88487262a02cf8e7862"
+dependencies = [
+ "bitflags",
+ "cocoa 0.20.2",
+ "core-foundation 0.7.0",
+ "core-graphics 0.19.2",
+ "core-video-sys",
+ "dispatch",
+ "instant",
+ "lazy_static",
+ "libc",
+ "log",
+ "mio",
+ "mio-extras",
+ "ndk 0.1.0",
+ "ndk-glue 0.1.0",
+ "ndk-sys 0.1.0",
+ "objc",
+ "parking_lot 0.10.2",
+ "percent-encoding",
+ "raw-window-handle",
+ "smithay-client-toolkit 0.6.6",
+ "wayland-client 0.23.6",
+ "winapi 0.3.9",
+ "x11-dl",
+]
+
+[[package]]
+name = "winit"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5bc559da567d8aa671bbcd08304d49e982c7bf2cb91e10288b9188931c1b772"
+dependencies = [
+ "bitflags",
+ "cocoa 0.23.0",
+ "core-foundation 0.9.1",
+ "core-graphics 0.22.2",
+ "core-video-sys",
+ "dispatch",
+ "instant",
+ "lazy_static",
+ "libc",
+ "log",
+ "mio",
+ "mio-extras",
+ "ndk 0.2.1",
+ "ndk-glue 0.2.1",
+ "ndk-sys 0.2.1",
+ "objc",
+ "parking_lot 0.11.1",
+ "percent-encoding",
+ "raw-window-handle",
+ "smithay-client-toolkit 0.12.3",
+ "wayland-client 0.28.5",
+ "winapi 0.3.9",
+ "x11-dl",
+]
+
+[[package]]
+name = "winres"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff4fb510bbfe5b8992ff15f77a2e6fe6cf062878f0eda00c0f44963a807ca5dc"
+dependencies = [
+ "toml",
+]
+
+[[package]]
+name = "wio"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "ws2_32-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bf981e3a5b3301209754218f962052d4d9ee97e478f4d26d4a6eced34c1fef8"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "maybe-uninit",
+ "pkg-config",
+]
+
+[[package]]
+name = "xattr"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "xcursor"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a9a231574ae78801646617cefd13bfe94be907c0e4fa979cfd8b770aa3c5d08"
+dependencies = [
+ "nom 6.1.2",
+]
+
+[[package]]
+name = "xdg"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
+
+[[package]]
+name = "xml-rs"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix b/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
new file mode 100644
index 000000000000..c0a544873297
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
@@ -0,0 +1,115 @@
+{ rustPlatform
+, runCommand
+, lib
+, fetchFromGitHub
+, fetchgit
+, makeWrapper
+, pkg-config
+, python2
+, expat
+, openssl
+, SDL2
+, vulkan-loader
+, fontconfig
+, ninja
+, gn
+, llvmPackages
+, makeFontsConf
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "neovide";
+  version = "20210515";
+
+  src =
+    let
+      repo = fetchFromGitHub {
+        owner = "Kethku";
+        repo = "neovide";
+        rev = "0b976c3d28bbd24e6c83a2efc077aa96dde1e9eb";
+        sha256 = "sha256-asaOxcAenKdy/yJvch3HFfgnrBnQagL02UpWYnz7sa8=";
+      };
+    in
+    runCommand "source" { } ''
+      cp -R ${repo} $out
+      chmod -R +w $out
+      # Reasons for patching Cargo.toml:
+      # - I got neovide built with latest compatible skia-save version 0.35.1
+      #   and I did not try to get it with 0.32.1 working. Changing the skia
+      #   version is time consuming, because of manual dependecy tracking and
+      #   long compilation runs.
+      sed -i $out/Cargo.toml \
+        -e '/skia-safe/s;0.32.1;0.35.1;'
+      cp ${./Cargo.lock} $out/Cargo.lock
+    '';
+
+  cargoSha256 = "sha256-XMPRM3BAfCleS0LXQv03A3lQhlUhAP8/9PdVbAUnfG0=";
+
+  SKIA_OFFLINE_SOURCE_DIR =
+    let
+      repo = fetchFromGitHub {
+        owner = "rust-skia";
+        repo = "skia";
+        # see rust-skia/Cargo.toml#package.metadata skia
+        rev = "m86-0.35.0";
+        sha256 = "sha256-uTSgtiEkbE9e08zYOkRZyiHkwOLr/FbBYkr2d+NZ8J0=";
+      };
+      # The externals for skia are taken from skia/DEPS
+      externals = lib.mapAttrs (n: v: fetchgit v) (lib.importJSON ./skia-externals.json);
+    in
+    runCommand "source" { } (''
+      cp -R ${repo} $out
+      chmod -R +w $out
+
+      mkdir -p $out/third_party/externals
+      cd $out/third_party/externals
+    '' + (builtins.concatStringsSep "\n" (lib.mapAttrsToList (name: value: "cp -ra ${value} ${name}") externals)));
+
+  SKIA_OFFLINE_NINJA_COMMAND = "${ninja}/bin/ninja";
+  SKIA_OFFLINE_GN_COMMAND = "${gn}/bin/gn";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+
+  # test needs a valid fontconfig file
+  FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
+
+  nativeBuildInputs = [
+    pkg-config
+    makeWrapper
+    python2 # skia-bindings
+    llvmPackages.clang # skia
+  ];
+
+  # All tests passes but at the end cargo prints for unknown reason:
+  #   error: test failed, to rerun pass '--bin neovide'
+  # Increasing the loglevel did not help. In a nix-shell environment
+  # the failure do not occure.
+  doCheck = false;
+
+  buildInputs = [
+    expat
+    openssl
+    SDL2
+    fontconfig
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/neovide \
+      --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+  '';
+
+  postInstall = ''
+    for n in 16x16 32x32 48x48 256x256; do
+      install -m444 -D "assets/neovide-$n.png" \
+        "$out/share/icons/hicolor/$n/apps/neovide.png"
+    done
+    install -m444 -Dt $out/share/icons/hicolor/scalable/apps assets/neovide.svg
+    install -m444 -Dt $out/share/applications assets/neovide.desktop
+  '';
+
+  meta = with lib; {
+    description = "This is a simple graphical user interface for Neovim.";
+    homepage = "https://github.com/Kethku/neovide";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ ck3d ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json b/nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json
new file mode 100644
index 000000000000..be1fdb181c2c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json
@@ -0,0 +1,37 @@
+{
+  "expat": {
+    "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git",
+    "rev": "e976867fb57a0cd87e3b0fe05d59e0ed63c6febb",
+    "sha256": "sha256-akSh/Vo7s7m/7qePamGA7oiHEHT3D6JhCFMc27CgDFI="
+  },
+  "libjpeg-turbo": {
+    "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git",
+    "rev": "64fc43d52351ed52143208ce6a656c03db56462b",
+    "sha256": "sha256-rk22wE83hxKbtZLhGwUIF4J816jHvWovgICdrKZi2Ig="
+  },
+  "icu": {
+    "url": "https://chromium.googlesource.com/chromium/deps/icu.git",
+    "rev": "dbd3825b31041d782c5b504c59dcfb5ac7dda08c",
+    "sha256": "sha256-voMH+TdNx3dBHeH5Oky5OYmmLGJ2u+WrMrmAkjXJRTE="
+  },
+  "zlib": {
+    "url": "https://chromium.googlesource.com/chromium/src/third_party/zlib",
+    "rev": "eaf99a4e2009b0e5759e6070ad1760ac1dd75461",
+    "sha256": "sha256-B4PgeSVBU/MSkPkXTu9jPIa37dNJPm2HpmiVf6XuOGE="
+  },
+  "harfbuzz": {
+    "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
+    "rev": "3a74ee528255cc027d84b204a87b5c25e47bff79",
+    "sha256": "sha256-/4UdoUj0bxj6+EfNE8ofjtWOn2VkseEfvdFah5rwwBM="
+  },
+  "libpng": {
+    "url": "https://skia.googlesource.com/third_party/libpng.git",
+    "rev": "386707c6d19b974ca2e3db7f5c61873813c6fe44",
+    "sha256": "sha256-67kf5MBsnBBi0bOfX/RKL52xpaCWm/ampltAI+EeQ+c="
+  },
+  "libgifcodec": {
+    "url": "https://skia.googlesource.com/libgifcodec",
+    "rev": "d06d2a6d42baf6c0c91cacc28df2542a911d05fe",
+    "sha256": "sha256-ke1X5iyj2ah2NqGVdFv8GuoRAzXg1aCeTdZwUM8wvCI="
+  }
+}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovim-override.vim b/nixpkgs/pkgs/applications/editors/neovim/neovim-override.vim
new file mode 100644
index 000000000000..34a1a8f1f432
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovim-override.vim
@@ -0,0 +1,7 @@
+" configuration generated by NIX
+set nocompatible
+
+set packpath^=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-vim-pack-dir
+set runtimepath^=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-vim-pack-dir
+
+:help ale
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix b/nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix
index d925ddd2a528..0a4d17d997b5 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovim-qt.nix
@@ -1,5 +1,5 @@
 { lib, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
-, msgpack, neovim, pythonPackages, qtbase }:
+, msgpack, neovim, python3Packages, qtbase }:
 
 mkDerivation rec {
   pname = "neovim-qt-unwrapped";
@@ -20,7 +20,7 @@ mkDerivation rec {
   buildInputs = [
     neovim.unwrapped # only used to generate help tags at build time
     qtbase
-  ] ++ (with pythonPackages; [
+  ] ++ (with python3Packages; [
     jinja2 python msgpack
   ]);
 
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix b/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix
index 867e22751284..2b1281ae21be 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix
@@ -1,11 +1,14 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib
+, fetchFromGitHub
+, python3
+, neovim
+}:
 
 with lib;
 
-pythonPackages.buildPythonApplication rec {
+with python3.pkgs; buildPythonApplication rec {
   pname = "neovim-remote";
   version = "2.4.0";
-  disabled = !pythonPackages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "mhinz";
@@ -14,12 +17,24 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0jlw0qksak4bdzddpsj74pm2f2bgpj3cwrlspdjjy0j9qzg0mpl9";
   };
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = [
     pynvim
     psutil
     setuptools
   ];
 
+  checkInputs = [
+    neovim
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # these tests get stuck and never return
+    "test_escape_filenames_properly"
+    "test_escape_single_quotes_in_filenames"
+    "test_escape_double_quotes_in_filenames"
+  ];
+
   meta = {
     description = "A tool that helps controlling nvim processes from a terminal";
     homepage = "https://github.com/mhinz/neovim-remote/";
diff --git a/nixpkgs/pkgs/applications/editors/neovim/qt.nix b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
index 5210b6b67c8b..1da7e7e966e3 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/qt.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
-, msgpack, neovim, pythonPackages, qtbase, neovim-qt-unwrapped }:
+{ stdenv, makeWrapper, neovim, neovim-qt-unwrapped }:
 
 let
   unwrapped = neovim-qt-unwrapped;
diff --git a/nixpkgs/pkgs/applications/editors/neovim/tests.nix b/nixpkgs/pkgs/applications/editors/neovim/tests.nix
new file mode 100644
index 000000000000..f9d0d659b73c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/tests.nix
@@ -0,0 +1,135 @@
+{ vimUtils, vim_configurable, writeText, neovim, vimPlugins
+, lib, fetchFromGitHub, neovimUtils, wrapNeovimUnstable
+, neovim-unwrapped
+, fetchFromGitLab
+, pkgs
+}:
+let
+  inherit (vimUtils) buildVimPluginFrom2Nix;
+  inherit (neovimUtils) makeNeovimConfig;
+
+  packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
+
+  plugins = with vimPlugins; [
+    {
+      plugin = vim-obsession;
+      config = ''
+        map <Leader>$ <Cmd>Obsession<CR>
+      '';
+    }
+  ];
+
+  nvimConfNix = makeNeovimConfig {
+    inherit plugins;
+    customRC = ''
+      " just a comment
+    '';
+  };
+
+  nvimAutoDisableWrap = makeNeovimConfig { };
+
+  nvimConfDontWrap = makeNeovimConfig {
+    inherit plugins;
+    customRC = ''
+      " just a comment
+    '';
+  };
+
+  wrapNeovim2 = suffix: config:
+    wrapNeovimUnstable neovim-unwrapped (config // {
+      extraName = suffix;
+    });
+
+  nmt = fetchFromGitLab {
+    owner = "rycee";
+    repo = "nmt";
+    rev = "d2cc8c1042b1c2511f68f40e2790a8c0e29eeb42";
+    sha256 = "1ykcvyx82nhdq167kbnpgwkgjib8ii7c92y3427v986n2s5lsskc";
+  };
+
+  runTest = neovim-drv: buildCommand:
+    pkgs.runCommandLocal "test-${neovim-drv.name}" ({
+      nativeBuildInputs = [ ];
+      meta.platforms = neovim-drv.meta.platforms;
+    }) (''
+      source ${nmt}/bash-lib/assertions.sh
+      vimrc="${writeText "init.vim" neovim-drv.initRc}"
+      vimrcGeneric="$out/patched.vim"
+      mkdir $out
+      ${pkgs.perl}/bin/perl -pe "s|\Q$NIX_STORE\E/[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" < "$vimrc" > "$vimrcGeneric"
+    '' + buildCommand);
+
+in
+  pkgs.recurseIntoAttrs (
+rec {
+  vim_empty_config = vimUtils.vimrcFile { beforePlugins = ""; customRC = ""; };
+
+  ### neovim tests
+  ##################
+  nvim_with_plugins = wrapNeovim2 "-with-plugins" nvimConfNix;
+
+  nvim_via_override = neovim.override {
+    extraName = "-via-override";
+    configure = {
+      packages.foo.start = [ vimPlugins.ale ];
+      customRC = ''
+        :help ale
+      '';
+    };
+  };
+
+  nvim_with_aliases = neovim.override {
+    extraName = "-with-aliases";
+    vimAlias = true;
+    viAlias = true;
+  };
+
+  # nixpkgs should detect that no wrapping is necessary
+  nvimShouldntWrap = wrapNeovim2 "-should-not-wrap" nvimAutoDisableWrap;
+
+  # this will generate a neovimRc content but we disable wrapping
+  nvimDontWrap = wrapNeovim2 "-forced-nowrap" (makeNeovimConfig {
+    wrapRc = false;
+    customRC = ''
+      " this shouldn't trigger the creation of an init.vim
+    '';
+  });
+
+  force-nowrap = runTest nvimDontWrap ''
+      ! grep "-u" ${nvimDontWrap}/bin/nvim
+  '';
+
+  nvim_via_override-test = runTest nvim_via_override ''
+      assertFileContent \
+        "$vimrcGeneric" \
+        "${./neovim-override.vim}"
+  '';
+
+
+  checkAliases = runTest nvim_with_aliases ''
+      folder=${nvim_with_aliases}/bin
+      assertFileExists "$folder/vi"
+      assertFileExists "$folder/vim"
+  '';
+
+  # having no RC generated should autodisable init.vim wrapping
+  nvim_autowrap = runTest nvim_via_override ''
+      ! grep "-u" ${nvimShouldntWrap}/bin/nvim
+  '';
+
+
+  # system remote plugin manifest should be generated, deoplete should be usable
+  # without the user having to do `UpdateRemotePlugins`. To test, launch neovim
+  # and do `:call deoplete#enable()`. It will print an error if the remote
+  # plugin is not registered.
+  test_nvim_with_remote_plugin = neovim.override {
+    extraName = "-pathogen-remote";
+    configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ];
+  };
+
+  # only neovim makes use of `requiredPlugins`, test this here
+  test_nvim_with_vim_nix_using_pathogen = neovim.override {
+    extraName = "-pathogen";
+    configure.pathogen.pluginNames = [ "vim-nix" ];
+  };
+})
diff --git a/nixpkgs/pkgs/applications/editors/neovim/utils.nix b/nixpkgs/pkgs/applications/editors/neovim/utils.nix
index d992ccd3f6a4..c753d2cca2c1 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/utils.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/utils.nix
@@ -4,7 +4,6 @@
 , neovim-unwrapped
 , bundlerEnv
 , ruby
-, pythonPackages
 , python3Packages
 , writeText
 , wrapNeovimUnstable
@@ -30,6 +29,11 @@ let
     , withNodeJs ? false
     , withRuby ? true
 
+    # expects a list of plugin configuration
+    # expects { plugin=far-vim; config = "let g:far#source='rg'"; optional = false; }
+    , plugins ? []
+    # forwarded to configure.customRC
+    , customRC ? ""
     # same values as in vimUtils.vimrcContent
     , configure ? { }
 
@@ -45,14 +49,26 @@ let
         '';
       };
 
-      requiredPlugins = vimUtils.requiredPlugins configure;
-      getDeps = attrname: map (plugin: plugin.${attrname} or (_: [ ]));
+      # transform all plugins into an attrset
+      pluginsNormalized = map (x: if x ? plugin then { optional = false; } // x else { plugin = x; optional = false;}) plugins;
 
-      pluginPython2Packages = getDeps "pythonDependencies" requiredPlugins;
-      python2Env = pythonPackages.python.withPackages (ps:
-        [ ps.pynvim ]
-        ++ (extraPython2Packages ps)
-        ++ (lib.concatMap (f: f ps) pluginPython2Packages));
+
+      configurePatched = configure // {
+        customRC = pluginRc + customRC + (configure.customRC or "");
+      };
+
+      # A function to get the configuration string (if any) from an element of 'plugins'
+      pluginConfig = p:
+        if (p.config or "") != "" then ''
+          " ${p.plugin.pname or p.plugin.name} {{{
+          ${p.config}
+          " }}}
+        '' else "";
+
+      pluginRc = lib.concatMapStrings pluginConfig pluginsNormalized;
+
+      requiredPlugins = vimUtils.requiredPlugins configurePatched;
+      getDeps = attrname: map (plugin: plugin.${attrname} or (_: [ ]));
 
       pluginPython3Packages = getDeps "python3Dependencies" requiredPlugins;
       python3Env = python3Packages.python.withPackages (ps:
@@ -65,11 +81,11 @@ let
       # add to nvim's 'embedded rc' this:
       #    let g:<key>_host_prog=$out/bin/nvim-<key>
       # Or this:
-      #    let g:loaded_${prog}_provider=1
+      #    let g:loaded_${prog}_provider=0
       # While the latter tells nvim that this provider is not available
       hostprog_check_table = {
         node = withNodeJs;
-        python = withPython2;
+        python = false;
         python3 = withPython3;
         ruby = withRuby;
       };
@@ -96,14 +112,16 @@ let
           "--suffix" "PATH" ":" binPath
         ];
 
-      manifestRc = vimUtils.vimrcContent (configure // { customRC = ""; });
-      neovimRcContent = vimUtils.vimrcContent configure;
+
+      manifestRc = vimUtils.vimrcContent (configurePatched // { customRC = ""; }) ;
+      neovimRcContent = vimUtils.vimrcContent configurePatched;
     in
-    args // {
+    assert withPython2 -> throw "Python2 support has been removed from neovim, please remove withPython2 and extraPython2Packages.";
+
+    builtins.removeAttrs args ["plugins"] // {
       wrapperArgs = makeWrapperArgs;
       inherit neovimRcContent;
       inherit manifestRc;
-      inherit python2Env;
       inherit python3Env;
       inherit withNodeJs;
     } // lib.optionalAttrs withRuby {
@@ -114,13 +132,13 @@ let
       if withProg then
         "let g:${prog}_host_prog='${placeholder "out"}/bin/nvim-${prog}'"
       else
-        "let g:loaded_${prog}_provider=1"
+        "let g:loaded_${prog}_provider=0"
     ;
 
   # to keep backwards compatibility
   legacyWrapper = neovim: {
     extraMakeWrapperArgs ? ""
-    , withPython ? true
+    , withPython ? false
     /* the function you would have passed to python.withPackages */
     , extraPythonPackages ? (_: [])
     /* the function you would have passed to python.withPackages */
@@ -130,6 +148,7 @@ let
     , vimAlias ? false
     , viAlias ? false
     , configure ? {}
+    , extraName ? ""
   }:
     let
       /* for compatibility with passing extraPythonPackages as a list; added 2018-07-11 */
@@ -138,20 +157,18 @@ let
       else funOrList);
 
       res = makeNeovimConfig {
-        withPython2 = withPython;
-        extraPythonPackages = compatFun extraPythonPackages;
         inherit withPython3;
         extraPython3Packages = compatFun extraPython3Packages;
         inherit withNodeJs withRuby viAlias vimAlias;
         inherit configure;
+        inherit extraName;
       };
     in
+    assert withPython -> throw "Python2 support has been removed from neovim, please remove withPython and extraPythonPackages.";
+
     wrapNeovimUnstable neovim (res // {
-      wrapperArgs = lib.escapeShellArgs (
-        res.wrapperArgs ++ lib.optionals (configure != {}) [
-          "--add-flags" "-u ${writeText "init.vim" res.neovimRcContent}"
-        ]) + " " + extraMakeWrapperArgs
-      ;
+      wrapperArgs = lib.escapeShellArgs res.wrapperArgs + extraMakeWrapperArgs;
+      wrapRc = (configure != {});
   });
 in
 {
diff --git a/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
index 66127980bf67..96b61a43cca0 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
@@ -3,8 +3,8 @@
 , bundlerEnv, ruby
 , nodejs
 , nodePackages
-, pythonPackages
 , python3Packages
+, callPackage
 }:
 with lib;
 
@@ -12,31 +12,45 @@ neovim:
 
 let
   wrapper = {
-      # should contain all args but the binary
-      wrapperArgs ? ""
+      extraName ? ""
+    # should contain all args but the binary. Can be either a string or list
+    , wrapperArgs ? []
     , manifestRc ? null
-    , withPython2 ? true, python2Env ? null
+    , withPython2 ? false
     , withPython3 ? true,  python3Env ? null
     , withNodeJs ? false
     , rubyEnv ? null
     , vimAlias ? false
     , viAlias ? false
+
+    # additional argument not generated by makeNeovimConfig
+    # it will append "-u <customRc>" to the wrapped arguments
+    # set to false if you want to control where to save the generated config
+    # (e.g., in ~/.config/init.vim or project/.nvimrc)
+    , wrapRc ? true
+    , neovimRcContent ? ""
     , ...
-  }:
+  }@args:
   let
 
-  # If configure != {}, we can't generate the rplugin.vim file with e.g
-  # NVIM_SYSTEM_RPLUGIN_MANIFEST *and* NVIM_RPLUGIN_MANIFEST env vars set in
-  # the wrapper. That's why only when configure != {} (tested both here and
-  # when postBuild is evaluated), we call makeWrapper once to generate a
-  # wrapper with most arguments we need, excluding those that cause problems to
-  # generate rplugin.vim, but still required for the final wrapper.
-  finalMakeWrapperArgs =
-    [ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim" ] ++
-      [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ];
+    wrapperArgsStr = if isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs;
+
+    # If configure != {}, we can't generate the rplugin.vim file with e.g
+    # NVIM_SYSTEM_RPLUGIN_MANIFEST *and* NVIM_RPLUGIN_MANIFEST env vars set in
+    # the wrapper. That's why only when configure != {} (tested both here and
+    # when postBuild is evaluated), we call makeWrapper once to generate a
+    # wrapper with most arguments we need, excluding those that cause problems to
+    # generate rplugin.vim, but still required for the final wrapper.
+    finalMakeWrapperArgs =
+      [ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim" ]
+      ++ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ]
+      ++ optionals wrapRc [ "--add-flags" "-u ${writeText "init.vim" neovimRcContent}" ]
+      ;
   in
+  assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env.";
+
   symlinkJoin {
-      name = "neovim-${lib.getVersion neovim}";
+      name = "neovim-${lib.getVersion neovim}${extraName}";
       # Remove the symlinks created by symlinkJoin which we need to perform
       # extra actions upon
       postBuild = lib.optionalString stdenv.isLinux ''
@@ -44,9 +58,6 @@ let
         substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
           --replace 'Name=Neovim' 'Name=WrappedNeovim'
       ''
-      + optionalString withPython2 ''
-        makeWrapper ${python2Env}/bin/python $out/bin/nvim-python --unset PYTHONPATH
-      ''
       + optionalString withPython3 ''
         makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
       ''
@@ -68,7 +79,7 @@ let
       in ''
         echo "Generating remote plugin manifest"
         export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim
-        makeWrapper ${lib.escapeShellArgs manifestWrapperArgs} ${wrapperArgs}
+        makeWrapper ${lib.escapeShellArgs manifestWrapperArgs} ${wrapperArgsStr}
 
         # Some plugins assume that the home directory is accessible for
         # initializing caches, temporary files, etc. Even if the plugin isn't
@@ -98,7 +109,8 @@ let
       '')
       + ''
         rm $out/bin/nvim
-        makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgs}
+        touch $out/rplugin.vim
+        makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr}
       '';
 
     paths = [ neovim ];
@@ -106,7 +118,13 @@ let
     preferLocalBuild = true;
 
     nativeBuildInputs = [ makeWrapper ];
-    passthru = { unwrapped = neovim; };
+    passthru = {
+      unwrapped = neovim;
+      initRc = neovimRcContent;
+
+      tests = callPackage ./tests.nix {
+      };
+    };
 
     meta = neovim.meta // {
       # To prevent builds on hydra
diff --git a/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
index 8931ddc37990..00497eebacf9 100644
--- a/nixpkgs/pkgs/applications/editors/netbeans/default.nix
+++ b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "12.3";
+  version = "12.4";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    sha512 = "2fy696qrfbdkzmq4cwd6l7v6rsc0bf9akh61w3azc544bq3vxl3v6s31hvg3ba0nsh0jv3nbdrk6jp1l4hwgcg9zg7kf2012a1vv2nk";
+    sha512 = "2jwfyq5ik0pwjd61mh0dhyw4xgpzfmgsjc947xg84n7xmns4mzgb8k5ggrss6hgqiqk7jl3psv7v837c2dxk1xdrdnkzs31cg9symbs";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/applications/editors/nvi/default.nix b/nixpkgs/pkgs/applications/editors/nvi/default.nix
index 328aad29efab..38aea982633c 100644
--- a/nixpkgs/pkgs/applications/editors/nvi/default.nix
+++ b/nixpkgs/pkgs/applications/editors/nvi/default.nix
@@ -1,56 +1,39 @@
-{ fetchurl, lib, stdenv, ncurses }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses, db }:
 
-stdenv.mkDerivation {
-  name = "nvi-1.79";
+stdenv.mkDerivation rec {
+  pname = "nvi";
+  version = "1.81.6";
 
   src = fetchurl {
-    urls =
-      [ "ftp://ftp.eenet.ee/pub/cpan/src/misc/nvi-1.79.tar.gz"
-        "ftp://ftp.saintjoe.edu/pub/CPAN/src/misc/nvi-1.79.tar.gz"
-        "ftp://ftp.free.fr/.mirrors1/ftp.netbsd.org/packages/distfiles/nvi-1.79.tar.gz"
-      ];
-    sha256 = "0cvf56rbylz7ksny6g2256sjg8yrsxrmbpk82r64rhi53sm8fnvm";
+    url = "https://deb.debian.org/debian/pool/main/n/nvi/nvi_${version}.orig.tar.gz";
+    sha256 = "13cp9iz017bk6ryi05jn7drbv7a5dyr201zqd3r4r8srj644ihwb";
   };
 
-  buildInputs = [ ncurses ];
+  patches = [
+    # Fix runtime error with modern versions of db.
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/nvi/raw/f33/f/nvi-03-db4.patch";
+      sha256 = "1vpnly3dcldwl8gwl0jrh5yh0vhgbdhsh6xn7lnwhrawlvk6d55y";
+    })
 
-  # nvi tries to write to a usual tmp directory (/var/tmp),
-  # so we will force it to use /tmp.
-  patchPhase = ''
-    sed -i build/configure \
-      -e s@vi_cv_path_preserve=no@vi_cv_path_preserve=/tmp/vi.recover@ \
-      -e s@/var/tmp@@ \
-      -e s@-lcurses@-lncurses@
-  '';
-
-  configurePhase = ''
-    mkdir mybuild
-    cd mybuild
-    ../build/configure --prefix=$out --disable-curses
-  '';
+    # Fix build with Glibc.
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/nvi/raw/f33/f/nvi-20-glibc_has_grantpt.patch";
+      sha256 = "1ypqj263wh53m5rgiag5c4gy1rksj2waginny1lcj34n72p2dsml";
+    })
+  ];
 
-  installPhase = ''
-    mkdir -p $out/bin $out/share/vi/catalog
-    for a in dutch english french german ru_SU.KOI8-R spanish swedish; do
-      cp ../catalog/$a $out/share/vi/catalog
-    done
-    cp nvi $out/bin/nvi
-    ln -s $out/bin/nvi $out/bin/vi
-    ln -s $out/bin/nvi $out/bin/ex
-    ln -s $out/bin/nvi $out/bin/view
+  buildInputs = [ ncurses db ];
 
-    mkdir -p $out/share/man/man1
-    cp ../docs/USD.doc/vi.man/vi.1 $out/share/man/man1/nvi.1
-    ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/vi
-    ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/ex
-    ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/view
-    ln -s $out/bin/{,vi-}nvi # create a symlink so that all vi(m) users will find it
+  preConfigure = ''
+    cd build.unix
   '';
+  configureScript = "../dist/configure";
+  configureFlags = [ "vi_cv_path_preserve=/tmp" ];
 
-  meta = {
-    homepage = "http://www.bostic.com/vi/";
+  meta = with lib; {
     description = "The Berkeley Vi Editor";
-    license = lib.licenses.free;
-    broken = true; # since 2020-02-08
+    license = licenses.free;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/ox/default.nix b/nixpkgs/pkgs/applications/editors/ox/default.nix
index aa3f22a26261..0888bc7cea32 100644
--- a/nixpkgs/pkgs/applications/editors/ox/default.nix
+++ b/nixpkgs/pkgs/applications/editors/ox/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "18iffnmvax6mbnhypf7yma98y5q2zlsyp9q18f92fdwz426r33p0";
   };
 
-  cargoSha256 = "0v0a1dl9rq5qyy9xwnb59w62qr9db3y3zlmnp60wafvj70zi9zxs";
+  cargoSha256 = "0m5vglm58myf50vbb7m6gd3srk3n93afg70lz63i2kciqkkwsnjl";
 
   meta = with lib; {
     description = "An independent Rust text editor that runs in your terminal";
diff --git a/nixpkgs/pkgs/applications/editors/poke/default.nix b/nixpkgs/pkgs/applications/editors/poke/default.nix
index a8435eb1e6ba..f0b8c43546d8 100644
--- a/nixpkgs/pkgs/applications/editors/poke/default.nix
+++ b/nixpkgs/pkgs/applications/editors/poke/default.nix
@@ -66,7 +66,7 @@ in stdenv.mkDerivation rec {
     description = "Interactive, extensible editor for binary data";
     homepage = "http://www.jemarch.net/poke";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres metadark ];
+    maintainers = with maintainers; [ AndersonTorres kira-bruneau ];
     platforms = platforms.unix;
     changelog = "https://git.savannah.gnu.org/cgit/poke.git/plain/ChangeLog?h=releases/poke-${version}";
   };
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch b/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch
index 402abdd85636..700ed754d2bb 100644
--- a/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch
+++ b/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch
@@ -7,7 +7,7 @@ index ec12a3a1ff..8c81b633ae 100644
     // we need to add in the associated libclang headers as
     // they are not discovered / used by default during compilation
 -   FilePath llvmPath = s_libraryPath.parent().parent();
-+   FilePath llvmPath("@clang@");
++   FilePath llvmPath("@libclang@");
     boost::format fmt("%1%/lib/clang/%2%/include");
     fmt % llvmPath.absolutePath() % version.asString();
     std::string includePath = fmt.str();
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/default.nix b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
index 00d0259a7a9b..76d9c2e594b2 100644
--- a/nixpkgs/pkgs/applications/editors/rstudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
@@ -42,8 +42,8 @@ mkDerivation rec {
   postPatch = ''
     substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}
     substituteInPlace src/cpp/core/libclang/LibClang.cpp \
-      --replace '@clang@' ${llvmPackages.clang.cc} \
-      --replace '@libclang.so@' ${llvmPackages.clang.cc.lib}/lib/libclang.so
+      --replace '@libclang@' ${llvmPackages.libclang.lib} \
+      --replace '@libclang.so@' ${llvmPackages.libclang.lib}/lib/libclang.so
   '';
 
   ginSrc = fetchurl {
diff --git a/nixpkgs/pkgs/applications/editors/scite/default.nix b/nixpkgs/pkgs/applications/editors/scite/default.nix
index 3d6ec9ece9c7..ab0fef9be268 100644
--- a/nixpkgs/pkgs/applications/editors/scite/default.nix
+++ b/nixpkgs/pkgs/applications/editors/scite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "scite";
-  version = "4.0.5";
+  version = "5.0.2";
 
   src = fetchurl {
-    url = "https://www.scintilla.org/scite405.tgz";
-    sha256 = "0h16wk2986nkkhhdv5g4lxlcn02qwyja24x1r6vf02r1hf46b9q2";
+    url = "https://www.scintilla.org/scite502.tgz";
+    sha256 = "00n2gr915f7kvp2250dzn6n0p6lhr6qdlm1m7y2xi6qrrky0bpan";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -15,6 +15,8 @@ stdenv.mkDerivation {
 
   buildPhase = ''
     make
+    cd ../../lexilla/src
+    make
     cd ../../scite/gtk
     make prefix=$out/
   '';
diff --git a/nixpkgs/pkgs/applications/editors/sublime/3/common.nix b/nixpkgs/pkgs/applications/editors/sublime/3/common.nix
index cc8b835c137c..e353f4f5652f 100644
--- a/nixpkgs/pkgs/applications/editors/sublime/3/common.nix
+++ b/nixpkgs/pkgs/applications/editors/sublime/3/common.nix
@@ -2,7 +2,6 @@
 
 { fetchurl, lib, stdenv, xorg, glib, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
 , pkexecPath ? "/run/wrappers/bin/pkexec"
-, writeScript, common-updater-scripts, curl, gnugrep
 , openssl, bzip2, bash, unzip, zip
 }:
 
@@ -128,26 +127,6 @@ in stdenv.mkDerivation (rec {
     done
   '';
 
-  passthru.updateScript = writeScript "${pname}-update-script" ''
-    #!${stdenv.shell}
-    set -o errexit
-    PATH=${lib.makeBinPath [ common-updater-scripts curl gnugrep ]}
-
-    latestVersion=$(curl -s ${versionUrl})
-
-    if [[ "${buildVersion}" = "$latestVersion" ]]; then
-        echo "The new version same as the old version."
-        exit 0
-    fi
-
-    for platform in ${lib.concatStringsSep " " meta.platforms}; do
-        # The script will not perform an update when the version attribute is up to date from previous platform run
-        # We need to clear it before each run
-        update-source-version ${packageAttribute}.${primaryBinary} 0 0000000000000000000000000000000000000000000000000000000000000000 --file=${versionFile} --version-key=buildVersion --system=$platform
-        update-source-version ${packageAttribute}.${primaryBinary} $latestVersion --file=${versionFile} --version-key=buildVersion --system=$platform
-    done
-  '';
-
   meta = with lib; {
     description = "Sophisticated text editor for code, markup and prose";
     homepage = "https://www.sublimetext.com/";
diff --git a/nixpkgs/pkgs/applications/editors/sublime/4/common.nix b/nixpkgs/pkgs/applications/editors/sublime/4/common.nix
new file mode 100644
index 000000000000..97299bef3ac4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/sublime/4/common.nix
@@ -0,0 +1,148 @@
+{ buildVersion, aarch64sha256, x64sha256, dev ? false }:
+
+{ fetchurl, stdenv, lib, xorg, glib, libglvnd, glibcLocales, gtk3, cairo, pango, makeWrapper, wrapGAppsHook
+, writeShellScript, common-updater-scripts, curl
+, openssl, bzip2, bash, unzip, zip
+}:
+
+let
+  pname = "sublimetext4";
+  packageAttribute = "sublime4${lib.optionalString dev "-dev"}";
+  binaries = [ "sublime_text" "plugin_host-3.3" "plugin_host-3.8" "crash_reporter" ];
+  primaryBinary = "sublime_text";
+  primaryBinaryAliases = [ "subl" "sublime" "sublime4" ];
+  downloadUrl = "https://download.sublimetext.com/sublime_text_build_${buildVersion}_${arch}.tar.xz";
+  versionUrl = "https://download.sublimetext.com/latest/${if dev then "dev" else "stable"}";
+  versionFile = builtins.toString ./packages.nix;
+  archSha256 = {
+    "aarch64-linux" = aarch64sha256;
+    "x86_64-linux" = x64sha256;
+  }.${stdenv.hostPlatform.system};
+  arch = {
+    "aarch64-linux" = "arm64";
+    "x86_64-linux" = "x64";
+  }.${stdenv.hostPlatform.system};
+
+  libPath = lib.makeLibraryPath [ xorg.libX11 xorg.libXtst glib libglvnd openssl gtk3 cairo pango ];
+in let
+  binaryPackage = stdenv.mkDerivation {
+    pname = "${pname}-bin";
+    version = buildVersion;
+
+    src = fetchurl {
+      url = downloadUrl;
+      sha256 = archSha256;
+    };
+
+    dontStrip = true;
+    dontPatchELF = true;
+    buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
+    nativeBuildInputs = [ zip unzip makeWrapper wrapGAppsHook ];
+
+    # make exec.py in Default.sublime-package use own bash with an LD_PRELOAD instead of "/bin/bash"
+    patchPhase = ''
+      runHook prePatch
+
+      # TODO: Should not be necessary even in 3
+      mkdir Default.sublime-package-fix
+      ( cd Default.sublime-package-fix
+        unzip -q ../Packages/Default.sublime-package
+        substituteInPlace "exec.py" --replace \
+          "[\"/bin/bash\"" \
+          "[\"$out/sublime_bash\""
+        zip -q ../Packages/Default.sublime-package **/*
+      )
+      rm -r Default.sublime-package-fix
+
+      runHook postPatch
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+
+      for binary in ${ builtins.concatStringsSep " " binaries }; do
+        patchelf \
+          --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${lib.optionalString stdenv.is64bit "64"} \
+          $binary
+      done
+
+      # Rewrite pkexec argument. Note that we cannot delete bytes in binary.
+      sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary}
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out
+      cp -r * $out/
+
+      # We can't just call /usr/bin/env bash because a relocation error occurs
+      # when trying to run a build from within Sublime Text
+      ln -s ${bash}/bin/bash $out/sublime_bash
+
+      runHook postInstall
+    '';
+
+    dontWrapGApps = true; # non-standard location, need to wrap the executables manually
+
+    postFixup = ''
+      sed -i 's#/usr/bin/pkexec#pkexec\x00\x00\x00\x00\x00\x00\x00\x00\x00#g' "$out/${primaryBinary}"
+
+      wrapProgram $out/${primaryBinary} \
+        --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
+        "''${gappsWrapperArgs[@]}"
+    '';
+  };
+in stdenv.mkDerivation (rec {
+  inherit pname;
+  version = buildVersion;
+
+  phases = [ "installPhase" ];
+
+  ${primaryBinary} = binaryPackage;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
+  '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + ''
+    mkdir -p "$out/share/applications"
+    substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
+    for directory in ''$${primaryBinary}/Icon/*; do
+      size=$(basename $directory)
+      mkdir -p "$out/share/icons/hicolor/$size/apps"
+      ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps
+    done
+  '';
+
+  passthru.updateScript = writeShellScript "${pname}-update-script" ''
+    set -o errexit
+    PATH=${lib.makeBinPath [ common-updater-scripts curl ]}
+
+    latestVersion=$(curl -s ${versionUrl})
+
+    if [[ "${buildVersion}" = "$latestVersion" ]]; then
+        echo "The new version same as the old version."
+        exit 0
+    fi
+
+    for platform in ${lib.concatStringsSep " " meta.platforms}; do
+        # The script will not perform an update when the version attribute is up to date from previous platform run
+        # We need to clear it before each run
+        update-source-version ${packageAttribute}.${primaryBinary} 0 0000000000000000000000000000000000000000000000000000000000000000 --file=${versionFile} --version-key=buildVersion --system=$platform
+        update-source-version ${packageAttribute}.${primaryBinary} $latestVersion --file=${versionFile} --version-key=buildVersion --system=$platform
+    done
+  '';
+
+  meta = with lib; {
+    description = "Sophisticated text editor for code, markup and prose";
+    homepage = "https://www.sublimetext.com/";
+    maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ];
+    license = licenses.unfree;
+    platforms = [ "aarch64-linux" "x86_64-linux" ];
+  };
+})
diff --git a/nixpkgs/pkgs/applications/editors/sublime/4/packages.nix b/nixpkgs/pkgs/applications/editors/sublime/4/packages.nix
new file mode 100644
index 000000000000..b7c3887cc084
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/sublime/4/packages.nix
@@ -0,0 +1,19 @@
+{ callPackage }:
+
+let
+  common = opts: callPackage (import ./common.nix opts);
+in
+  {
+    sublime4 = common {
+      buildVersion = "4107";
+      x64sha256 = "05ar7qd1d880442bx4w32mapsib7j27g9l96q2v2s7591r9fgnf7";
+      aarch64sha256 = "4MzwhZ17c6cYtlwPA+SBiey6GiVruADXOLJAeJlMrgM=";
+    } {};
+
+    sublime4-dev = common {
+      buildVersion = "4106";
+      dev = true;
+      x64sha256 = "09jnn52zb0mjxpj5xz4sixl34cr6j60x46c2dj1m0dlgxap0sh8x";
+      aarch64sha256 = "7blbeSZI0V6q89jMM+zi2ODEdoc1b3Am8F2b2jLr5O8=";
+    } {};
+  }
diff --git a/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix b/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
index 6e3580a563cc..ec713d99371b 100644
--- a/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
+++ b/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
     description = "Level editor for SuperTux";
     homepage = "https://github.com/SuperTux/supertux-editor";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ mathnerd314 ];
     platforms = platforms.linux;
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
index 12b9c638c4c1..a51056130806 100644
--- a/nixpkgs/pkgs/applications/editors/texstudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MFCQwhdF+WCTqDt4q5qw431y/zqEy9vHudcUYb4BYNQ=";
+    sha256 = "0h5g1sirsy1f2xlq85c1ik1s52gycfipy9yx0flgaw8m4wmhz26v";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/editors/thonny/default.nix b/nixpkgs/pkgs/applications/editors/thonny/default.nix
index 39aefe3fa163..fa71a612fa8c 100644
--- a/nixpkgs/pkgs/applications/editors/thonny/default.nix
+++ b/nixpkgs/pkgs/applications/editors/thonny/default.nix
@@ -4,13 +4,13 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "thonny";
-  version = "3.3.2";
+  version = "3.3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pzy7v48x4ip8v6aqm8hl5ywx7xiqbsfypxxifih8gnlangp1n8y";
+    sha256 = "0ga0pqvq3nglr4jgh8ajv0bv8c7q09h1jh6q6r5cwqa49fawkr02";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/applications/editors/uivonim/default.nix b/nixpkgs/pkgs/applications/editors/uivonim/default.nix
new file mode 100644
index 000000000000..0a04ddb7be5b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/uivonim/default.nix
@@ -0,0 +1,73 @@
+{ lib, mkYarnPackage, fetchFromGitHub, electron, makeWrapper }:
+
+mkYarnPackage rec {
+  pname = "uivonim";
+  version = "unstable-2021-05-24";
+
+  src = fetchFromGitHub {
+    owner = "smolck";
+    repo = pname;
+    rev = "ac027b4575b7e1adbedde1e27e44240289eebe39";
+    sha256 = "1b6k834qan8vhcdqmrs68pbvh4b59g9bx5126k5hjha6v3asd8pj";
+  };
+
+  # The spectron dependency has to be removed manually from package.json,
+  # because it requires electron-chromedriver, which wants to download stuff.
+  # It is also good to remove the electron-builder bloat.
+  packageJSON = ./package.json;
+  yarnLock = ./yarn.lock;
+  yarnNix = ./yarn.nix;
+
+  yarnPreBuild = ''
+    # workaround for missing opencollective-postinstall
+    mkdir -p $TMPDIR/bin
+    touch $TMPDIR/bin/opencollective-postinstall
+    chmod +x $TMPDIR/bin/opencollective-postinstall
+    export PATH=$PATH:$TMPDIR/bin
+
+    export ELECTRON_SKIP_BINARY_DOWNLOAD=1
+  '';
+
+  # We build (= webpack) uivonim in a separate package,
+  # because this requires devDependencies that we do not
+  # wish to bundle (because they add 250M to the closure size).
+  build = mkYarnPackage {
+    name = "uivonim-build-${version}";
+    inherit version src packageJSON yarnLock yarnNix yarnPreBuild distPhase;
+
+    yarnFlags = [ "--offline" ];
+
+    buildPhase = ''
+      yarn build:prod
+    '';
+
+    installPhase = ''
+      mv deps/uivonim/build $out
+    '';
+  };
+
+  # The --production flag disables the devDependencies.
+  yarnFlags = [ "--offline" "--production" ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    dir=$out/libexec/uivonim/node_modules/uivonim/
+    # need to copy instead of symlink because
+    # otherwise electron won't find the node_modules
+    cp -ra ${build} $dir/build
+    makeWrapper ${electron}/bin/electron $out/bin/uivonim \
+      --set NODE_ENV production \
+      --add-flags $dir/build/main/main.js
+  '';
+
+  distPhase = ":"; # disable useless $out/tarballs directory
+
+  meta = with lib; {
+    homepage = "https://github.com/smolck/uivonim";
+    description = "Cross-platform GUI for neovim based on electron";
+    maintainers = with maintainers; [ gebner ];
+    platforms = platforms.unix;
+    license = licenses.agpl3Only;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/uivonim/package.json b/nixpkgs/pkgs/applications/editors/uivonim/package.json
new file mode 100644
index 000000000000..da458093a002
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/uivonim/package.json
@@ -0,0 +1,71 @@
+{
+  "name": "uivonim",
+  "author": "smolck",
+  "license": "AGPL-3.0-only",
+  "version": "0.28.0",
+  "description": "Extensible Neovim GUI forked from Veonim",
+  "main": "build/main/main.js",
+  "scripts": {
+    "dev": "npm run build && electron build/main/main.js",
+    "prod": "npm run build:prod && NODE_ENV=production electron build/main/main.js",
+    "prod:start": "NODE_ENV=production electron build/main/main.js",
+    "build": "node tools/build.js",
+    "build:prod": "node tools/build-prod.js",
+    "check-types": "tsc -p src/tsconfig.json --noEmit",
+    "package": "npm run build:prod && electron-builder",
+    "test": "mocha \"test/unit/**/*.js\"",
+    "test:e2e": "mocha test/e2e -t 0",
+    "test:e2e:snapshot": "npm run test:e2e -- --snapshot",
+    "test:integration": "mocha test/integration -t 10000",
+    "test:watch": "npm run test -- -w",
+    "test:integration:watch": "npm run test:integration -- -w",
+    "gen:font-sizes": "electron tools/font-sizer/index.js",
+    "unused-exports": "ts-unused-exports src/tsconfig.json"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/smolck/uivonim.git"
+  },
+  "bugs": {
+    "url": "https://github.com/smolck/uivonim/issues"
+  },
+  "homepage": "https://github.com/smolck/uivonim",
+  "dependencies": {
+    "feather-icons": "^4.28.0",
+    "fuzzaldrin-plus": "^0.6.0",
+    "highlight.js": "^10.7.2",
+    "inferno": "^7.4.8",
+    "marked": "^2.0.5",
+    "neovim": "^4.10.0",
+    "ts-node": "^10.0.0"
+  },
+  "devDependencies": {
+    "@babel/cli": "^7.14.3",
+    "@babel/core": "^7.14.3",
+    "@babel/plugin-proposal-class-properties": "^7.13.0",
+    "@babel/plugin-proposal-object-rest-spread": "^7.14.2",
+    "@babel/plugin-transform-modules-commonjs": "^7.14.0",
+    "@babel/preset-typescript": "^7.13.0",
+    "@medv/finder": "^2.0.0",
+    "@types/fuzzaldrin-plus": "^0.6.1",
+    "@types/marked": "^2.0.3",
+    "@types/node": "^15.6.0",
+    "@types/webgl2": "0.0.6",
+    "babel-loader": "^8.2.2",
+    "babel-plugin-inferno": "^6.2.0",
+    "babel-plugin-syntax-jsx": "^6.18.0",
+    "electron": "^12.0.9",
+    "electron-devtools-installer": "^3.2.0",
+    "fs-extra": "^10.0.0",
+    "mocha": "^8.4.0",
+    "path-browserify": "^1.0.1",
+    "prettier": "2.3.0",
+    "proxyquire": "^2.1.3",
+    "ts-loader": "^9.2.2",
+    "ts-unused-exports": "^7.0.3",
+    "ttypescript": "^1.5.12",
+    "typescript": "^4.2.4",
+    "webpack": "^5.37.1",
+    "webpack-cli": "^4.7.0"
+  }
+}
diff --git a/nixpkgs/pkgs/applications/editors/uivonim/yarn.lock b/nixpkgs/pkgs/applications/editors/uivonim/yarn.lock
new file mode 100644
index 000000000000..f89a3dbdc5ec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/uivonim/yarn.lock
@@ -0,0 +1,5062 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"7zip-bin@~5.1.1":
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876"
+  integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==
+
+"@babel/cli@^7.14.3":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.3.tgz#9f6c8aee12e8660df879610f19a8010958b26a6f"
+  integrity sha512-zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A==
+  dependencies:
+    commander "^4.0.1"
+    convert-source-map "^1.1.0"
+    fs-readdir-recursive "^1.1.0"
+    glob "^7.0.0"
+    make-dir "^2.1.0"
+    slash "^2.0.0"
+    source-map "^0.5.0"
+  optionalDependencies:
+    "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents"
+    chokidar "^3.4.0"
+
+"@babel/code-frame@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
+  integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
+  dependencies:
+    "@babel/highlight" "^7.12.13"
+
+"@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919"
+  integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==
+
+"@babel/core@^7.14.3":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38"
+  integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/generator" "^7.14.3"
+    "@babel/helper-compilation-targets" "^7.13.16"
+    "@babel/helper-module-transforms" "^7.14.2"
+    "@babel/helpers" "^7.14.0"
+    "@babel/parser" "^7.14.3"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.2"
+    convert-source-map "^1.7.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.2"
+    json5 "^2.1.2"
+    semver "^6.3.0"
+    source-map "^0.5.0"
+
+"@babel/generator@^7.14.2", "@babel/generator@^7.14.3":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
+  integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
+  dependencies:
+    "@babel/types" "^7.14.2"
+    jsesc "^2.5.1"
+    source-map "^0.5.0"
+
+"@babel/helper-annotate-as-pure@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
+  integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-compilation-targets@^7.13.16":
+  version "7.13.16"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c"
+  integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==
+  dependencies:
+    "@babel/compat-data" "^7.13.15"
+    "@babel/helper-validator-option" "^7.12.17"
+    browserslist "^4.14.5"
+    semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.13.0":
+  version "7.14.1"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz#1fe11b376f3c41650ad9fedc665b0068722ea76c"
+  integrity sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.12.13"
+    "@babel/helper-function-name" "^7.12.13"
+    "@babel/helper-member-expression-to-functions" "^7.13.12"
+    "@babel/helper-optimise-call-expression" "^7.12.13"
+    "@babel/helper-replace-supers" "^7.13.12"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+
+"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
+  integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
+  dependencies:
+    "@babel/helper-get-function-arity" "^7.12.13"
+    "@babel/template" "^7.12.13"
+    "@babel/types" "^7.14.2"
+
+"@babel/helper-get-function-arity@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
+  integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-member-expression-to-functions@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
+  integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==
+  dependencies:
+    "@babel/types" "^7.13.12"
+
+"@babel/helper-module-imports@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
+  integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==
+  dependencies:
+    "@babel/types" "^7.13.12"
+
+"@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
+  integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
+  dependencies:
+    "@babel/helper-module-imports" "^7.13.12"
+    "@babel/helper-replace-supers" "^7.13.12"
+    "@babel/helper-simple-access" "^7.13.12"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+    "@babel/helper-validator-identifier" "^7.14.0"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.2"
+
+"@babel/helper-optimise-call-expression@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
+  integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
+  integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
+
+"@babel/helper-replace-supers@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804"
+  integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==
+  dependencies:
+    "@babel/helper-member-expression-to-functions" "^7.13.12"
+    "@babel/helper-optimise-call-expression" "^7.12.13"
+    "@babel/traverse" "^7.13.0"
+    "@babel/types" "^7.13.12"
+
+"@babel/helper-simple-access@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
+  integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
+  dependencies:
+    "@babel/types" "^7.13.12"
+
+"@babel/helper-split-export-declaration@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
+  integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-validator-identifier@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
+  integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
+
+"@babel/helper-validator-option@^7.12.17":
+  version "7.12.17"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
+  integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
+
+"@babel/helpers@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
+  integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
+  dependencies:
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.14.0"
+    "@babel/types" "^7.14.0"
+
+"@babel/highlight@^7.12.13":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
+  integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.14.0"
+    chalk "^2.0.0"
+    js-tokens "^4.0.0"
+
+"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298"
+  integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==
+
+"@babel/plugin-proposal-class-properties@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37"
+  integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-proposal-object-rest-spread@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc"
+  integrity sha512-hBIQFxwZi8GIp934+nj5uV31mqclC1aYDhctDu5khTi9PCCUOczyy0b34W0oE9U/eJXiqQaKyVsmjeagOaSlbw==
+  dependencies:
+    "@babel/compat-data" "^7.14.0"
+    "@babel/helper-compilation-targets" "^7.13.16"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-transform-parameters" "^7.14.2"
+
+"@babel/plugin-syntax-jsx@^7":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15"
+  integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+  integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-typescript@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474"
+  integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-modules-commonjs@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161"
+  integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.14.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-simple-access" "^7.13.12"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-parameters@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31"
+  integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-typescript@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853"
+  integrity sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-typescript" "^7.12.13"
+
+"@babel/preset-typescript@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a"
+  integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-validator-option" "^7.12.17"
+    "@babel/plugin-transform-typescript" "^7.13.0"
+
+"@babel/template@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
+  integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/parser" "^7.12.13"
+    "@babel/types" "^7.12.13"
+
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
+  integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/generator" "^7.14.2"
+    "@babel/helper-function-name" "^7.14.2"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+    "@babel/parser" "^7.14.2"
+    "@babel/types" "^7.14.2"
+    debug "^4.1.0"
+    globals "^11.1.0"
+
+"@babel/types@^7", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3"
+  integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.14.0"
+    to-fast-properties "^2.0.0"
+
+"@develar/schema-utils@~2.6.5":
+  version "2.6.5"
+  resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6"
+  integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==
+  dependencies:
+    ajv "^6.12.0"
+    ajv-keywords "^3.4.1"
+
+"@discoveryjs/json-ext@^0.5.0":
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752"
+  integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==
+
+"@electron/get@^1.0.1", "@electron/get@^1.12.4":
+  version "1.12.4"
+  resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab"
+  integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==
+  dependencies:
+    debug "^4.1.1"
+    env-paths "^2.2.0"
+    fs-extra "^8.1.0"
+    got "^9.6.0"
+    progress "^2.0.3"
+    semver "^6.2.0"
+    sumchecker "^3.0.1"
+  optionalDependencies:
+    global-agent "^2.0.2"
+    global-tunnel-ng "^2.7.1"
+
+"@electron/remote@^1.0.4":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-1.1.0.tgz#167d119c7c03c7778b556fdc4f1f38a44b23f1c2"
+  integrity sha512-yr8gZTkIgJYKbFqExI4QZqMSjn1kL/us9Dl46+TH1EZdhgRtsJ6HDfdsIxu0QEc6Hv+DMAXs69rgquH+8FDk4w==
+
+"@electron/universal@1.0.5":
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37"
+  integrity sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag==
+  dependencies:
+    "@malept/cross-spawn-promise" "^1.1.0"
+    asar "^3.0.3"
+    debug "^4.3.1"
+    dir-compare "^2.4.0"
+    fs-extra "^9.0.1"
+
+"@malept/cross-spawn-promise@^1.1.0":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d"
+  integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==
+  dependencies:
+    cross-spawn "^7.0.1"
+
+"@malept/flatpak-bundler@^0.4.0":
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858"
+  integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==
+  dependencies:
+    debug "^4.1.1"
+    fs-extra "^9.0.0"
+    lodash "^4.17.15"
+    tmp-promise "^3.0.2"
+
+"@medv/finder@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@medv/finder/-/finder-2.0.0.tgz#699b7141393aa815f120b38f54f92ad212225902"
+  integrity sha512-gV4jOsGpiWNDGd8Dw7tod1Fc9Gc7StaOT4oZ/6srHRWtsHU+HYWzmkYsa3Qy/z0e9tY1WpJ9wWdBFGskfbzoug==
+
+"@msgpack/msgpack@^1.9.3":
+  version "1.12.2"
+  resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-1.12.2.tgz#6a22e99a49b131a8789053d0b0903834552da36f"
+  integrity sha512-Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==
+
+"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents":
+  version "2.1.8-no-fsevents"
+  resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b"
+  integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w==
+  dependencies:
+    anymatch "^2.0.0"
+    async-each "^1.0.1"
+    braces "^2.3.2"
+    glob-parent "^3.1.0"
+    inherits "^2.0.3"
+    is-binary-path "^1.0.0"
+    is-glob "^4.0.0"
+    normalize-path "^3.0.0"
+    path-is-absolute "^1.0.0"
+    readdirp "^2.2.1"
+    upath "^1.1.1"
+
+"@sindresorhus/is@^0.14.0":
+  version "0.14.0"
+  resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
+  integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
+
+"@sindresorhus/is@^4.0.0":
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.1.tgz#d26729db850fa327b7cacc5522252194404226f5"
+  integrity sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==
+
+"@szmarczak/http-timer@^1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
+  integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
+  dependencies:
+    defer-to-connect "^1.0.1"
+
+"@szmarczak/http-timer@^4.0.5":
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152"
+  integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==
+  dependencies:
+    defer-to-connect "^2.0.0"
+
+"@tsconfig/node10@^1.0.7":
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.7.tgz#1eb1de36c73478a2479cc661ef5af1c16d86d606"
+  integrity sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==
+
+"@tsconfig/node12@^1.0.7":
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.7.tgz#677bd9117e8164dc319987dd6ff5fc1ba6fbf18b"
+  integrity sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==
+
+"@tsconfig/node14@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.0.tgz#5bd046e508b1ee90bc091766758838741fdefd6e"
+  integrity sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==
+
+"@tsconfig/node16@^1.0.1":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.1.tgz#a6ca6a9a0ff366af433f42f5f0e124794ff6b8f1"
+  integrity sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==
+
+"@types/cacheable-request@^6.0.1":
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976"
+  integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==
+  dependencies:
+    "@types/http-cache-semantics" "*"
+    "@types/keyv" "*"
+    "@types/node" "*"
+    "@types/responselike" "*"
+
+"@types/debug@^4.1.5":
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"
+  integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
+
+"@types/eslint-scope@^3.7.0":
+  version "3.7.0"
+  resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86"
+  integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==
+  dependencies:
+    "@types/eslint" "*"
+    "@types/estree" "*"
+
+"@types/eslint@*":
+  version "7.2.10"
+  resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917"
+  integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==
+  dependencies:
+    "@types/estree" "*"
+    "@types/json-schema" "*"
+
+"@types/estree@*", "@types/estree@^0.0.47":
+  version "0.0.47"
+  resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4"
+  integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==
+
+"@types/fs-extra@^9.0.11":
+  version "9.0.11"
+  resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87"
+  integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==
+  dependencies:
+    "@types/node" "*"
+
+"@types/fuzzaldrin-plus@^0.6.1":
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/@types/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.1.tgz#818d00303d3f83190cdcf9d4496eded40d05576f"
+  integrity sha512-UFGM/hVBPlttAqSDMbYdupckngYNY/DAYBPHrHw4Pl2bK3mPwSabhkRHK1uK9udi5KZG/qX7D6z1/Jo5smTJFw==
+
+"@types/glob@^7.1.1":
+  version "7.1.3"
+  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
+  integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
+  dependencies:
+    "@types/minimatch" "*"
+    "@types/node" "*"
+
+"@types/http-cache-semantics@*":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a"
+  integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==
+
+"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
+  version "7.0.7"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
+  integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
+
+"@types/json5@^0.0.29":
+  version "0.0.29"
+  resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
+  integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
+
+"@types/keyv@*":
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7"
+  integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/marked@^2.0.3":
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/@types/marked/-/marked-2.0.3.tgz#c8ea93684e530cc3b667d3e7226556dd0844ad1f"
+  integrity sha512-lbhSN1rht/tQ+dSWxawCzGgTfxe9DB31iLgiT1ZVT5lshpam/nyOA1m3tKHRoNPctB2ukSL22JZI5Fr+WI/zYg==
+
+"@types/minimatch@*":
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21"
+  integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
+
+"@types/node@*", "@types/node@^15.6.0":
+  version "15.6.0"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.0.tgz#f0ddca5a61e52627c9dcb771a6039d44694597bc"
+  integrity sha512-gCYSfQpy+LYhOFTKAeE8BkyGqaxmlFxe+n4DKM6DR0wzw/HISUE/hAmkC/KT8Sw5PCJblqg062b3z9gucv3k0A==
+
+"@types/node@^14.6.2":
+  version "14.14.44"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz#df7503e6002847b834371c004b372529f3f85215"
+  integrity sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==
+
+"@types/plist@^3.0.1":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01"
+  integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==
+  dependencies:
+    "@types/node" "*"
+    xmlbuilder ">=11.0.1"
+
+"@types/puppeteer-core@^5.4.0":
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/@types/puppeteer-core/-/puppeteer-core-5.4.0.tgz#880a7917b4ede95cbfe2d5e81a558cfcb072c0fb"
+  integrity sha512-yqRPuv4EFcSkTyin6Yy17pN6Qz2vwVwTCJIDYMXbE3j8vTPhv0nCQlZOl5xfi0WHUkqvQsjAR8hAfjeMCoetwg==
+  dependencies:
+    "@types/puppeteer" "*"
+
+"@types/puppeteer@*":
+  version "5.4.3"
+  resolved "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-5.4.3.tgz#cdca84aa7751d77448d8a477dbfa0af1f11485f2"
+  integrity sha512-3nE8YgR9DIsgttLW+eJf6mnXxq8Ge+27m5SU3knWmrlfl6+KOG0Bf9f7Ua7K+C4BnaTMAh3/UpySqdAYvrsvjg==
+  dependencies:
+    "@types/node" "*"
+
+"@types/responselike@*", "@types/responselike@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
+  integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==
+  dependencies:
+    "@types/node" "*"
+
+"@types/verror@^1.10.3":
+  version "1.10.4"
+  resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz#805c0612b3a0c124cf99f517364142946b74ba3b"
+  integrity sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg==
+
+"@types/webgl2@0.0.6":
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6"
+  integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ==
+
+"@types/which@^1.3.2":
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf"
+  integrity sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==
+
+"@types/yargs-parser@*":
+  version "20.2.0"
+  resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9"
+  integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==
+
+"@types/yargs@^16.0.1":
+  version "16.0.1"
+  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.1.tgz#5fc5d41f69762e00fbecbc8d4bf9dea47d8726f4"
+  integrity sha512-x4HABGLyzr5hKUzBC9dvjciOTm11WVH1NWonNjGgxapnTHu5SWUqyqn0zQ6Re0yQU0lsQ6ztLCoMAKDGZflyxA==
+  dependencies:
+    "@types/yargs-parser" "*"
+
+"@types/yauzl@^2.9.1":
+  version "2.9.1"
+  resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af"
+  integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==
+  dependencies:
+    "@types/node" "*"
+
+"@ungap/promise-all-settled@1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
+  integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
+
+"@wdio/config@6.12.1":
+  version "6.12.1"
+  resolved "https://registry.yarnpkg.com/@wdio/config/-/config-6.12.1.tgz#86d987b505d8ca85ec11471830d2ba296dab3bcf"
+  integrity sha512-V5hTIW5FNlZ1W33smHF4Rd5BKjGW2KeYhyXDQfXHjqLCeRiirZ9fABCo9plaVQDnwWSUMWYaAaIAifV82/oJCQ==
+  dependencies:
+    "@wdio/logger" "6.10.10"
+    deepmerge "^4.0.0"
+    glob "^7.1.2"
+
+"@wdio/logger@6.10.10":
+  version "6.10.10"
+  resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-6.10.10.tgz#1e07cf32a69606ddb94fa9fd4b0171cb839a5980"
+  integrity sha512-2nh0hJz9HeZE0VIEMI+oPgjr/Q37ohrR9iqsl7f7GW5ik+PnKYCT9Eab5mR1GNMG60askwbskgGC1S9ygtvrSw==
+  dependencies:
+    chalk "^4.0.0"
+    loglevel "^1.6.0"
+    loglevel-plugin-prefix "^0.8.4"
+    strip-ansi "^6.0.0"
+
+"@wdio/protocols@6.12.0":
+  version "6.12.0"
+  resolved "https://registry.yarnpkg.com/@wdio/protocols/-/protocols-6.12.0.tgz#e40850be62c42c82dd2c486655d6419cd9ec1e3e"
+  integrity sha512-UhTBZxClCsM3VjaiDp4DoSCnsa7D1QNmI2kqEBfIpyNkT3GcZhJb7L+nL0fTkzCwi7+/uLastb3/aOwH99gt0A==
+
+"@wdio/repl@6.11.0":
+  version "6.11.0"
+  resolved "https://registry.yarnpkg.com/@wdio/repl/-/repl-6.11.0.tgz#5b1eab574b6b89f7f7c383e7295c06af23c3818e"
+  integrity sha512-FxrFKiTkFyELNGGVEH1uijyvNY7lUpmff6x+FGskFGZB4uSRs0rxkOMaEjxnxw7QP1zgQKr2xC7GyO03gIGRGg==
+  dependencies:
+    "@wdio/utils" "6.11.0"
+
+"@wdio/utils@6.11.0":
+  version "6.11.0"
+  resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-6.11.0.tgz#878c2500efb1a325bf5a66d2ff3d08162f976e8c"
+  integrity sha512-vf0sOQzd28WbI26d6/ORrQ4XKWTzSlWLm9W/K/eJO0NASKPEzR+E+Q2kaa+MJ4FKXUpjbt+Lxfo+C26TzBk7tg==
+  dependencies:
+    "@wdio/logger" "6.10.10"
+
+"@webassemblyjs/ast@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f"
+  integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==
+  dependencies:
+    "@webassemblyjs/helper-numbers" "1.11.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+
+"@webassemblyjs/floating-point-hex-parser@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c"
+  integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==
+
+"@webassemblyjs/helper-api-error@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4"
+  integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==
+
+"@webassemblyjs/helper-buffer@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642"
+  integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==
+
+"@webassemblyjs/helper-numbers@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9"
+  integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==
+  dependencies:
+    "@webassemblyjs/floating-point-hex-parser" "1.11.0"
+    "@webassemblyjs/helper-api-error" "1.11.0"
+    "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/helper-wasm-bytecode@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1"
+  integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==
+
+"@webassemblyjs/helper-wasm-section@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b"
+  integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.0"
+    "@webassemblyjs/helper-buffer" "1.11.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+    "@webassemblyjs/wasm-gen" "1.11.0"
+
+"@webassemblyjs/ieee754@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf"
+  integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==
+  dependencies:
+    "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b"
+  integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==
+  dependencies:
+    "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf"
+  integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==
+
+"@webassemblyjs/wasm-edit@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78"
+  integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.0"
+    "@webassemblyjs/helper-buffer" "1.11.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+    "@webassemblyjs/helper-wasm-section" "1.11.0"
+    "@webassemblyjs/wasm-gen" "1.11.0"
+    "@webassemblyjs/wasm-opt" "1.11.0"
+    "@webassemblyjs/wasm-parser" "1.11.0"
+    "@webassemblyjs/wast-printer" "1.11.0"
+
+"@webassemblyjs/wasm-gen@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe"
+  integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+    "@webassemblyjs/ieee754" "1.11.0"
+    "@webassemblyjs/leb128" "1.11.0"
+    "@webassemblyjs/utf8" "1.11.0"
+
+"@webassemblyjs/wasm-opt@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978"
+  integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.0"
+    "@webassemblyjs/helper-buffer" "1.11.0"
+    "@webassemblyjs/wasm-gen" "1.11.0"
+    "@webassemblyjs/wasm-parser" "1.11.0"
+
+"@webassemblyjs/wasm-parser@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754"
+  integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.0"
+    "@webassemblyjs/helper-api-error" "1.11.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.11.0"
+    "@webassemblyjs/ieee754" "1.11.0"
+    "@webassemblyjs/leb128" "1.11.0"
+    "@webassemblyjs/utf8" "1.11.0"
+
+"@webassemblyjs/wast-printer@1.11.0":
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e"
+  integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==
+  dependencies:
+    "@webassemblyjs/ast" "1.11.0"
+    "@xtuc/long" "4.2.2"
+
+"@webpack-cli/configtest@^1.0.3":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz#204bcff87cda3ea4810881f7ea96e5f5321b87b9"
+  integrity sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==
+
+"@webpack-cli/info@^1.2.4":
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz#7381fd41c9577b2d8f6c2594fad397ef49ad5573"
+  integrity sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==
+  dependencies:
+    envinfo "^7.7.3"
+
+"@webpack-cli/serve@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz#f84fd07bcacefe56ce762925798871092f0f228e"
+  integrity sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==
+
+"@xtuc/ieee754@^1.2.0":
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+  integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+"@xtuc/long@4.2.2":
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+  integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
+acorn@^8.2.1:
+  version "8.2.4"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0"
+  integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==
+
+agent-base@5:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
+  integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==
+
+ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+  integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4, ajv@^6.12.5:
+  version "6.12.6"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
+ansi-align@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
+  integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==
+  dependencies:
+    string-width "^3.0.0"
+
+ansi-colors@4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+
+ansi-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-regex@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+
+ansi-regex@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+  integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
+ansi-styles@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+  dependencies:
+    color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
+anymatch@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+  integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
+  dependencies:
+    micromatch "^3.1.4"
+    normalize-path "^2.1.1"
+
+anymatch@~3.1.1:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
+app-builder-bin@3.5.13:
+  version "3.5.13"
+  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e"
+  integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==
+
+app-builder-lib@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.5.tgz#d49f49dc2d9fd225249e4ae7e30add2996e7062f"
+  integrity sha512-lLEDvJuLdc4IVyADJK6t4qEIjRhOUj4p19B1RS/8pN/oAb8X5Qe1t3Einbsi4oFBJBweH2LIygnSAwumjQh9iA==
+  dependencies:
+    "7zip-bin" "~5.1.1"
+    "@develar/schema-utils" "~2.6.5"
+    "@electron/universal" "1.0.5"
+    "@malept/flatpak-bundler" "^0.4.0"
+    async-exit-hook "^2.0.1"
+    bluebird-lst "^1.0.9"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
+    chromium-pickle-js "^0.2.0"
+    debug "^4.3.2"
+    ejs "^3.1.6"
+    electron-publish "22.11.5"
+    fs-extra "^10.0.0"
+    hosted-git-info "^4.0.2"
+    is-ci "^3.0.0"
+    isbinaryfile "^4.0.8"
+    js-yaml "^4.1.0"
+    lazy-val "^1.0.5"
+    minimatch "^3.0.4"
+    read-config-file "6.2.0"
+    sanitize-filename "^1.6.3"
+    semver "^7.3.5"
+    temp-file "^3.4.0"
+
+archiver-utils@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2"
+  integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==
+  dependencies:
+    glob "^7.1.4"
+    graceful-fs "^4.2.0"
+    lazystream "^1.0.0"
+    lodash.defaults "^4.2.0"
+    lodash.difference "^4.5.0"
+    lodash.flatten "^4.4.0"
+    lodash.isplainobject "^4.0.6"
+    lodash.union "^4.6.0"
+    normalize-path "^3.0.0"
+    readable-stream "^2.0.0"
+
+archiver@^5.0.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba"
+  integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==
+  dependencies:
+    archiver-utils "^2.1.0"
+    async "^3.2.0"
+    buffer-crc32 "^0.2.1"
+    readable-stream "^3.6.0"
+    readdir-glob "^1.0.0"
+    tar-stream "^2.2.0"
+    zip-stream "^4.1.0"
+
+arg@^4.1.0:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+  integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+arr-diff@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+  integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+  integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+  integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
+array-unique@^0.3.2:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+  integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+
+asar@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz#1fef03c2d6d2de0cbad138788e4f7ae03b129c7b"
+  integrity sha512-k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==
+  dependencies:
+    chromium-pickle-js "^0.2.0"
+    commander "^5.0.0"
+    glob "^7.1.6"
+    minimatch "^3.0.4"
+  optionalDependencies:
+    "@types/glob" "^7.1.1"
+
+assert-plus@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+  integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+
+assign-symbols@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+  integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
+async-each@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
+  integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
+
+async-exit-hook@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3"
+  integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==
+
+async@0.9.x:
+  version "0.9.2"
+  resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+  integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
+
+async@^2.6.0:
+  version "2.6.3"
+  resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
+  integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
+  dependencies:
+    lodash "^4.17.14"
+
+async@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
+  integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
+
+at-least-node@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
+atob@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+babel-loader@^8.2.2:
+  version "8.2.2"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
+  integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
+  dependencies:
+    find-cache-dir "^3.3.1"
+    loader-utils "^1.4.0"
+    make-dir "^3.1.0"
+    schema-utils "^2.6.5"
+
+babel-plugin-dynamic-import-node@^2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+  integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+  dependencies:
+    object.assign "^4.1.0"
+
+babel-plugin-inferno@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-inferno/-/babel-plugin-inferno-6.2.0.tgz#d98e4a675f72b47501a747f34b5170114da187e2"
+  integrity sha512-an1v65RWlOLqn9SxA3kgLLhgz8QIZx+Y/244JOFPNMarHgOwOnCg2knY8kA1qATFL8wiZeDRgUpiSw/nylULrw==
+  dependencies:
+    "@babel/plugin-syntax-jsx" "^7"
+    "@babel/types" "^7"
+
+babel-plugin-syntax-jsx@^6.18.0:
+  version "6.18.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
+  integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
+
+balanced-match@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.3.1, base64-js@^1.5.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+base@^0.11.1:
+  version "0.11.2"
+  resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+  integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+  dependencies:
+    cache-base "^1.0.1"
+    class-utils "^0.3.5"
+    component-emitter "^1.2.1"
+    define-property "^1.0.0"
+    isobject "^3.0.1"
+    mixin-deep "^1.2.0"
+    pascalcase "^0.1.1"
+
+big.js@^5.2.2:
+  version "5.2.2"
+  resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+  integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+binary-extensions@^1.0.0:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+  integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+bl@^4.0.3:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+  dependencies:
+    buffer "^5.5.0"
+    inherits "^2.0.4"
+    readable-stream "^3.4.0"
+
+bluebird-lst@^1.0.9:
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c"
+  integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==
+  dependencies:
+    bluebird "^3.5.5"
+
+bluebird@^3.5.5:
+  version "3.7.2"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+  integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
+boolean@^3.0.1:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.3.tgz#0fee0c9813b66bef25a8a6a904bb46736d05f024"
+  integrity sha512-EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA==
+
+boxen@^5.0.0:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b"
+  integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==
+  dependencies:
+    ansi-align "^3.0.0"
+    camelcase "^6.2.0"
+    chalk "^4.1.0"
+    cli-boxes "^2.2.1"
+    string-width "^4.2.0"
+    type-fest "^0.20.2"
+    widest-line "^3.1.0"
+    wrap-ansi "^7.0.0"
+
+brace-expansion@^1.1.7:
+  version "1.1.11"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+  dependencies:
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
+
+braces@^2.3.1, braces@^2.3.2:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+  integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+  dependencies:
+    arr-flatten "^1.1.0"
+    array-unique "^0.3.2"
+    extend-shallow "^2.0.1"
+    fill-range "^4.0.0"
+    isobject "^3.0.1"
+    repeat-element "^1.1.2"
+    snapdragon "^0.8.1"
+    snapdragon-node "^2.0.1"
+    split-string "^3.0.2"
+    to-regex "^3.0.1"
+
+braces@^3.0.1, braces@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
+browser-stdout@1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+  integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
+
+browserslist@^4.14.5:
+  version "4.16.6"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+  integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
+  dependencies:
+    caniuse-lite "^1.0.30001219"
+    colorette "^1.2.2"
+    electron-to-chromium "^1.3.723"
+    escalade "^3.1.1"
+    node-releases "^1.1.71"
+
+buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3:
+  version "0.2.13"
+  resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+  integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+
+buffer-equal@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe"
+  integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74=
+
+buffer-from@^1.0.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+buffer@^5.1.0, buffer@^5.2.1, buffer@^5.5.0:
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+  dependencies:
+    base64-js "^1.3.1"
+    ieee754 "^1.1.13"
+
+builder-util-runtime@8.7.6:
+  version "8.7.6"
+  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324"
+  integrity sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==
+  dependencies:
+    debug "^4.3.2"
+    sax "^1.2.4"
+
+builder-util@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.5.tgz#08836d00e6bef39bdffd8a66fb07d2d5021b9c3c"
+  integrity sha512-ur9ksncYOnJg/VuJz3PdsBQHeg9tjdOC2HVj8mQ0WNcn/H3MO4tnwKBOWWikPDiWEjeBSvFUmYBnGFkRiUNkww==
+  dependencies:
+    "7zip-bin" "~5.1.1"
+    "@types/debug" "^4.1.5"
+    "@types/fs-extra" "^9.0.11"
+    app-builder-bin "3.5.13"
+    bluebird-lst "^1.0.9"
+    builder-util-runtime "8.7.6"
+    chalk "^4.1.1"
+    debug "^4.3.2"
+    fs-extra "^10.0.0"
+    is-ci "^3.0.0"
+    js-yaml "^4.1.0"
+    source-map-support "^0.5.19"
+    stat-mode "^1.0.0"
+    temp-file "^3.4.0"
+
+cache-base@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+  integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+  dependencies:
+    collection-visit "^1.0.0"
+    component-emitter "^1.2.1"
+    get-value "^2.0.6"
+    has-value "^1.0.0"
+    isobject "^3.0.1"
+    set-value "^2.0.0"
+    to-object-path "^0.3.0"
+    union-value "^1.0.0"
+    unset-value "^1.0.0"
+
+cacheable-lookup@^5.0.3:
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
+  integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
+
+cacheable-request@^6.0.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
+  integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
+  dependencies:
+    clone-response "^1.0.2"
+    get-stream "^5.1.0"
+    http-cache-semantics "^4.0.0"
+    keyv "^3.0.0"
+    lowercase-keys "^2.0.0"
+    normalize-url "^4.1.0"
+    responselike "^1.0.2"
+
+cacheable-request@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58"
+  integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==
+  dependencies:
+    clone-response "^1.0.2"
+    get-stream "^5.1.0"
+    http-cache-semantics "^4.0.0"
+    keyv "^4.0.0"
+    lowercase-keys "^2.0.0"
+    normalize-url "^4.1.0"
+    responselike "^2.0.0"
+
+call-bind@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+  dependencies:
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.2"
+
+camelcase@^6.0.0, camelcase@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
+  integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
+
+caniuse-lite@^1.0.30001219:
+  version "1.0.30001222"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz#2789b8487282cbbe1700924f53951303d28086a9"
+  integrity sha512-rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==
+
+chalk@^2.0.0, chalk@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
+
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
+  integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+chokidar@3.5.1, chokidar@^3.4.0:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
+  integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
+  dependencies:
+    anymatch "~3.1.1"
+    braces "~3.0.2"
+    glob-parent "~5.1.0"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.5.0"
+  optionalDependencies:
+    fsevents "~2.3.1"
+
+chownr@^1.1.1:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+  integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+chrome-launcher@^0.13.1:
+  version "0.13.4"
+  resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.13.4.tgz#4c7d81333c98282899c4e38256da23e00ed32f73"
+  integrity sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==
+  dependencies:
+    "@types/node" "*"
+    escape-string-regexp "^1.0.5"
+    is-wsl "^2.2.0"
+    lighthouse-logger "^1.0.0"
+    mkdirp "^0.5.3"
+    rimraf "^3.0.2"
+
+chrome-trace-event@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
+  integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+
+chromium-pickle-js@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205"
+  integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=
+
+ci-info@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+  integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
+ci-info@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a"
+  integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ==
+
+class-utils@^0.3.5:
+  version "0.3.6"
+  resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+  integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+  dependencies:
+    arr-union "^3.1.0"
+    define-property "^0.2.5"
+    isobject "^3.0.0"
+    static-extend "^0.1.1"
+
+classnames@^2.2.5:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
+  integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
+
+cli-boxes@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
+  integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
+
+cli-truncate@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086"
+  integrity sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==
+  dependencies:
+    slice-ansi "^1.0.0"
+    string-width "^2.0.0"
+
+cliui@^7.0.2:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+  dependencies:
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^7.0.0"
+
+clone-deep@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+  integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+  dependencies:
+    is-plain-object "^2.0.4"
+    kind-of "^6.0.2"
+    shallow-clone "^3.0.0"
+
+clone-response@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
+  integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
+  dependencies:
+    mimic-response "^1.0.0"
+
+collection-visit@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+  integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+  dependencies:
+    map-visit "^1.0.0"
+    object-visit "^1.0.0"
+
+color-convert@^1.9.0, color-convert@^1.9.1:
+  version "1.9.3"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+  dependencies:
+    color-name "1.1.3"
+
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
+color-name@1.1.3, color-name@^1.0.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.5.2:
+  version "1.5.5"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
+  integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
+  dependencies:
+    color-name "^1.0.0"
+    simple-swizzle "^0.2.2"
+
+color@3.0.x:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
+  integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==
+  dependencies:
+    color-convert "^1.9.1"
+    color-string "^1.5.2"
+
+colorette@^1.2.1, colorette@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+  integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
+
+colornames@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96"
+  integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=
+
+colors@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+  integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
+
+colors@^1.2.1:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
+  integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
+
+colorspace@1.1.x:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5"
+  integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==
+  dependencies:
+    color "3.0.x"
+    text-hex "1.0.x"
+
+commander@2.9.0:
+  version "2.9.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
+  integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=
+  dependencies:
+    graceful-readlink ">= 1.0.0"
+
+commander@^2.20.0:
+  version "2.20.3"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@^4.0.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+  integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+
+commander@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+  integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
+commander@^7.0.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
+commondir@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+  integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+
+component-emitter@^1.2.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
+compress-commons@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.0.tgz#25ec7a4528852ccd1d441a7d4353cd0ece11371b"
+  integrity sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==
+  dependencies:
+    buffer-crc32 "^0.2.13"
+    crc32-stream "^4.0.1"
+    normalize-path "^3.0.0"
+    readable-stream "^3.6.0"
+
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+concat-stream@^1.6.2:
+  version "1.6.2"
+  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+  dependencies:
+    buffer-from "^1.0.0"
+    inherits "^2.0.3"
+    readable-stream "^2.2.2"
+    typedarray "^0.0.6"
+
+config-chain@^1.1.11:
+  version "1.1.12"
+  resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
+  integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
+  dependencies:
+    ini "^1.3.4"
+    proto-list "~1.2.1"
+
+configstore@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
+  integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
+  dependencies:
+    dot-prop "^5.2.0"
+    graceful-fs "^4.1.2"
+    make-dir "^3.0.0"
+    unique-string "^2.0.0"
+    write-file-atomic "^3.0.0"
+    xdg-basedir "^4.0.0"
+
+convert-source-map@^1.1.0, convert-source-map@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+  integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+  dependencies:
+    safe-buffer "~5.1.1"
+
+copy-descriptor@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
+core-js@^3.1.3, core-js@^3.6.5:
+  version "3.11.3"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.11.3.tgz#2835b1f4d10f6d0400bf820cfe6fe64ad067dd3f"
+  integrity sha512-DFEW9BllWw781Op5KdYGtXfj3s9Cmykzt16bY6elaVuqXHCUwF/5pv0H3IJ7/I3BGjK7OeU+GrjD1ChCkBJPuA==
+
+core-util-is@1.0.2, core-util-is@~1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+crc-32@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208"
+  integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==
+  dependencies:
+    exit-on-epipe "~1.0.1"
+    printj "~1.1.0"
+
+crc32-stream@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
+  integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
+  dependencies:
+    crc-32 "^1.2.0"
+    readable-stream "^3.4.0"
+
+crc@^3.8.0:
+  version "3.8.0"
+  resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6"
+  integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==
+  dependencies:
+    buffer "^5.1.0"
+
+create-require@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+  integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+cross-spawn@^7.0.1, cross-spawn@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
+crypto-random-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+  integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
+css-shorthand-properties@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz#1c808e63553c283f289f2dd56fcee8f3337bd935"
+  integrity sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==
+
+css-value@^0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea"
+  integrity sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=
+
+debug@4, debug@4.3.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+  dependencies:
+    ms "2.1.2"
+
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
+  version "2.6.9"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+  dependencies:
+    ms "2.0.0"
+
+debug@^4.3.2:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+  dependencies:
+    ms "2.1.2"
+
+decamelize@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
+  integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
+
+decode-uri-component@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+decompress-response@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+  integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
+  dependencies:
+    mimic-response "^1.0.0"
+
+decompress-response@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
+  integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
+  dependencies:
+    mimic-response "^3.1.0"
+
+deep-extend@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+deepmerge@^4.0.0:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+  integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
+defer-to-connect@^1.0.1:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
+  integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
+
+defer-to-connect@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
+  integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
+
+define-properties@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+  dependencies:
+    object-keys "^1.0.12"
+
+define-property@^0.2.5:
+  version "0.2.5"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+  integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+  dependencies:
+    is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+  integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+  dependencies:
+    is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+  dependencies:
+    is-descriptor "^1.0.2"
+    isobject "^3.0.1"
+
+detect-node@^2.0.4:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79"
+  integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==
+
+dev-null@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/dev-null/-/dev-null-0.1.1.tgz#5a205ce3c2b2ef77b6238d6ba179eb74c6a0e818"
+  integrity sha1-WiBc48Ky73e2I41roXnrdMag6Bg=
+
+devtools-protocol@0.0.818844:
+  version "0.0.818844"
+  resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.818844.tgz#d1947278ec85b53e4c8ca598f607a28fa785ba9e"
+  integrity sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==
+
+devtools@6.12.1:
+  version "6.12.1"
+  resolved "https://registry.yarnpkg.com/devtools/-/devtools-6.12.1.tgz#f0298c6d6f46d8d3b751dd8fa4a0c7bc76e1268f"
+  integrity sha512-JyG46suEiZmld7/UVeogkCWM0zYGt+2ML/TI+SkEp+bTv9cs46cDb0pKF3glYZJA7wVVL2gC07Ic0iCxyJEnCQ==
+  dependencies:
+    "@wdio/config" "6.12.1"
+    "@wdio/logger" "6.10.10"
+    "@wdio/protocols" "6.12.0"
+    "@wdio/utils" "6.11.0"
+    chrome-launcher "^0.13.1"
+    edge-paths "^2.1.0"
+    puppeteer-core "^5.1.0"
+    ua-parser-js "^0.7.21"
+    uuid "^8.0.0"
+
+diagnostics@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a"
+  integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==
+  dependencies:
+    colorspace "1.1.x"
+    enabled "1.0.x"
+    kuler "1.0.x"
+
+diff@5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
+  integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
+
+diff@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+  integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+dir-compare@^2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631"
+  integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==
+  dependencies:
+    buffer-equal "1.0.0"
+    colors "1.0.3"
+    commander "2.9.0"
+    minimatch "3.0.4"
+
+dmg-builder@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.5.tgz#0df9843def73a217097956982fa21bb4d6a5836e"
+  integrity sha512-91Shh9+OK9RwBlBURxvhSnQNibEh/JYNAnMOfFguyNbasSfF50Jme4b3dgsQrHTTTfkFijcvzykPPFAZofQs6g==
+  dependencies:
+    app-builder-lib "22.11.5"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
+    fs-extra "^10.0.0"
+    iconv-lite "^0.6.2"
+    js-yaml "^4.1.0"
+  optionalDependencies:
+    dmg-license "^1.0.9"
+
+dmg-license@^1.0.9:
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz#a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f"
+  integrity sha512-Rq6qMDaDou2+aPN2SYy0x7LDznoJ/XaG6oDcH5wXUp+WRWQMUYE6eM+F+nex+/LSXOp1uw4HLFoed0YbfU8R/Q==
+  dependencies:
+    "@types/plist" "^3.0.1"
+    "@types/verror" "^1.10.3"
+    ajv "^6.10.0"
+    cli-truncate "^1.1.0"
+    crc "^3.8.0"
+    iconv-corefoundation "^1.1.6"
+    plist "^3.0.1"
+    smart-buffer "^4.0.2"
+    verror "^1.10.0"
+
+dot-prop@^5.2.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+  integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+  dependencies:
+    is-obj "^2.0.0"
+
+dotenv-expand@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
+  integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
+
+dotenv@^9.0.2:
+  version "9.0.2"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05"
+  integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==
+
+duplexer3@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+  integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
+
+edge-paths@^2.1.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/edge-paths/-/edge-paths-2.2.1.tgz#d2d91513225c06514aeac9843bfce546abbf4391"
+  integrity sha512-AI5fC7dfDmCdKo3m5y7PkYE8m6bMqR6pvVpgtrZkkhcJXFLelUgkjrhk3kXXx8Kbw2cRaTT4LkOR7hqf39KJdw==
+  dependencies:
+    "@types/which" "^1.3.2"
+    which "^2.0.2"
+
+ejs@^3.1.6:
+  version "3.1.6"
+  resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
+  integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
+  dependencies:
+    jake "^10.6.1"
+
+electron-builder@^22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.5.tgz#914d8183e1bab7cda43ef1d67fc3d17314c7e242"
+  integrity sha512-QIhzrmSLNteItRvmAjwNpsya08oZeOJIrxFww/Alkjcwnrn5Xgog2qf3Xfa3ocuNUQIwb+mMzZrzqnPu0Mamyg==
+  dependencies:
+    "@types/yargs" "^16.0.1"
+    app-builder-lib "22.11.5"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
+    chalk "^4.1.1"
+    dmg-builder "22.11.5"
+    fs-extra "^10.0.0"
+    is-ci "^3.0.0"
+    lazy-val "^1.0.5"
+    read-config-file "6.2.0"
+    update-notifier "^5.1.0"
+    yargs "^17.0.1"
+
+electron-chromedriver@^12.0.0:
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/electron-chromedriver/-/electron-chromedriver-12.0.0.tgz#55bdc451b938b384642d613a05eadacb1fe476ee"
+  integrity sha512-zOs98o9+20Er8Q44z06h90VldwrJaoRCieW3Q8WkdDjA3cMRU5mlmm1kGDhPLMeYNuhq6e39aGMVH/IBFD97HQ==
+  dependencies:
+    "@electron/get" "^1.12.4"
+    extract-zip "^2.0.0"
+
+electron-devtools-installer@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-3.2.0.tgz#acc48d24eb7033fe5af284a19667e73b78d406d0"
+  integrity sha512-t3UczsYugm4OAbqvdImMCImIMVdFzJAHgbwHpkl5jmfu1izVgUcP/mnrPqJIpEeCK1uZGpt+yHgWEN+9EwoYhQ==
+  dependencies:
+    rimraf "^3.0.2"
+    semver "^7.2.1"
+    tslib "^2.1.0"
+    unzip-crx-3 "^0.2.0"
+
+electron-publish@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.5.tgz#2fcd3280c4267e70e4aa15003c9b7dc34923320e"
+  integrity sha512-peN4tEP80Kb6reuwKKvSu9p/XUWpx/7x747u5NSg7Kg2axBjzdMtX5ZqBThfPtJWJhSWZ7PEYWmNyUCfdQl2Ag==
+  dependencies:
+    "@types/fs-extra" "^9.0.11"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
+    chalk "^4.1.1"
+    fs-extra "^10.0.0"
+    lazy-val "^1.0.5"
+    mime "^2.5.2"
+
+electron-to-chromium@^1.3.723:
+  version "1.3.727"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf"
+  integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg==
+
+electron@^12.0.9:
+  version "12.0.9"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.9.tgz#d582afa8f6fc0c429606f0961a4c89b376994823"
+  integrity sha512-p5aEt1tIh/PYjwN+6MHTc5HtW529XR9r4Qlj9PPcSb5ubkotSsS0BtWJoRPhDenSAN8sgHk3sbZLxXPJtdnRYA==
+  dependencies:
+    "@electron/get" "^1.0.1"
+    "@types/node" "^14.6.2"
+    extract-zip "^1.0.3"
+
+emoji-regex@^7.0.1:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emojis-list@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+  integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+enabled@1.0.x:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93"
+  integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=
+  dependencies:
+    env-variable "0.0.x"
+
+encodeurl@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+
+end-of-stream@^1.1.0, end-of-stream@^1.4.1:
+  version "1.4.4"
+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+  dependencies:
+    once "^1.4.0"
+
+enhanced-resolve@^5.0.0, enhanced-resolve@^5.8.0:
+  version "5.8.0"
+  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz#d9deae58f9d3773b6a111a5a46831da5be5c9ac0"
+  integrity sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==
+  dependencies:
+    graceful-fs "^4.2.4"
+    tapable "^2.2.0"
+
+env-paths@^2.2.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+  integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+
+env-variable@0.0.x:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808"
+  integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==
+
+envinfo@^7.7.3:
+  version "7.8.1"
+  resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
+  integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
+
+es-module-lexer@^0.4.0:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e"
+  integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==
+
+es6-error@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
+  integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
+
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-goat@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
+  integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
+
+escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+eslint-scope@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^4.1.1"
+
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+
+events@^3.2.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+  integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+execa@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376"
+  integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==
+  dependencies:
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.0"
+    human-signals "^2.1.0"
+    is-stream "^2.0.0"
+    merge-stream "^2.0.0"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
+    strip-final-newline "^2.0.0"
+
+exit-on-epipe@~1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
+  integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==
+
+expand-brackets@^2.1.4:
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+  integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+  dependencies:
+    debug "^2.3.3"
+    define-property "^0.2.5"
+    extend-shallow "^2.0.1"
+    posix-character-classes "^0.1.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
+extend-shallow@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+  integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+  dependencies:
+    is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+  integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+  dependencies:
+    assign-symbols "^1.0.0"
+    is-extendable "^1.0.1"
+
+extglob@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+  integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+  dependencies:
+    array-unique "^0.3.2"
+    define-property "^1.0.0"
+    expand-brackets "^2.1.4"
+    extend-shallow "^2.0.1"
+    fragment-cache "^0.2.1"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
+extract-zip@^1.0.3:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927"
+  integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==
+  dependencies:
+    concat-stream "^1.6.2"
+    debug "^2.6.9"
+    mkdirp "^0.5.4"
+    yauzl "^2.10.0"
+
+extract-zip@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
+  integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+  dependencies:
+    debug "^4.1.1"
+    get-stream "^5.1.0"
+    yauzl "^2.10.0"
+  optionalDependencies:
+    "@types/yauzl" "^2.9.1"
+
+extsprintf@^1.2.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+
+fast-deep-equal@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+  integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+
+fast-deep-equal@^3.1.1:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-json-stable-stringify@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-safe-stringify@^2.0.4:
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
+  integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
+
+fastest-levenshtein@^1.0.12:
+  version "1.0.12"
+  resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
+  integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+
+fd-slicer@~1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+  integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
+  dependencies:
+    pend "~1.2.0"
+
+feather-icons@^4.28.0:
+  version "4.28.0"
+  resolved "https://registry.yarnpkg.com/feather-icons/-/feather-icons-4.28.0.tgz#e1892a401fe12c4559291770ff6e68b0168e760f"
+  integrity sha512-gRdqKESXRBUZn6Nl0VBq2wPHKRJgZz7yblrrc2lYsS6odkNFDnA4bqvrlEVRUPjE1tFax+0TdbJKZ31ziJuzjg==
+  dependencies:
+    classnames "^2.2.5"
+    core-js "^3.1.3"
+
+fecha@^2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd"
+  integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==
+
+filelist@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b"
+  integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==
+  dependencies:
+    minimatch "^3.0.4"
+
+fill-keys@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz#9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20"
+  integrity sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=
+  dependencies:
+    is-object "~1.0.1"
+    merge-descriptors "~1.0.0"
+
+fill-range@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+  integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+  dependencies:
+    extend-shallow "^2.0.1"
+    is-number "^3.0.0"
+    repeat-string "^1.6.1"
+    to-regex-range "^2.1.0"
+
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+  dependencies:
+    to-regex-range "^5.0.1"
+
+find-cache-dir@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+  integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
+  dependencies:
+    commondir "^1.0.1"
+    make-dir "^3.0.2"
+    pkg-dir "^4.1.0"
+
+find-up@5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+  dependencies:
+    locate-path "^6.0.0"
+    path-exists "^4.0.0"
+
+find-up@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+  dependencies:
+    locate-path "^5.0.0"
+    path-exists "^4.0.0"
+
+flat@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
+  integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
+
+for-in@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+  integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+fragment-cache@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+  integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+  dependencies:
+    map-cache "^0.2.2"
+
+fs-constants@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+  integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+
+fs-extra@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
+  integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
+  dependencies:
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
+
+fs-extra@^8.1.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+  integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+  dependencies:
+    graceful-fs "^4.2.0"
+    jsonfile "^4.0.0"
+    universalify "^0.1.0"
+
+fs-extra@^9.0.0, fs-extra@^9.0.1:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+  dependencies:
+    at-least-node "^1.0.0"
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
+
+fs-readdir-recursive@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
+  integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==
+
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@~2.3.1:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+fuzzaldrin-plus@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.0.tgz#832f6489fbe876769459599c914a670ec22947ee"
+  integrity sha1-gy9kifvodnaUWVmckUpnDsIpR+4=
+
+gensync@^1.0.0-beta.2:
+  version "1.0.0-beta.2"
+  resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+  integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-caller-file@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.0.2:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+  dependencies:
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
+
+get-port@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193"
+  integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==
+
+get-stream@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+  integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+  dependencies:
+    pump "^3.0.0"
+
+get-stream@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+  dependencies:
+    pump "^3.0.0"
+
+get-stream@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+get-value@^2.0.3, get-value@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+  integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+glob-parent@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+  integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
+  dependencies:
+    is-glob "^3.1.0"
+    path-dirname "^1.0.0"
+
+glob-parent@~5.1.0:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob-to-regexp@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+  integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@7.1.6, glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.0.4"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
+global-agent@^2.0.2:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc"
+  integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==
+  dependencies:
+    boolean "^3.0.1"
+    core-js "^3.6.5"
+    es6-error "^4.1.1"
+    matcher "^3.0.0"
+    roarr "^2.15.3"
+    semver "^7.3.2"
+    serialize-error "^7.0.1"
+
+global-dirs@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
+  integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==
+  dependencies:
+    ini "2.0.0"
+
+global-tunnel-ng@^2.7.1:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f"
+  integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==
+  dependencies:
+    encodeurl "^1.0.2"
+    lodash "^4.17.10"
+    npm-conf "^1.1.3"
+    tunnel "^0.0.6"
+
+globals@^11.1.0:
+  version "11.12.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globalthis@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b"
+  integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==
+  dependencies:
+    define-properties "^1.1.3"
+
+got@^11.0.2, got@^11.8.0:
+  version "11.8.2"
+  resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599"
+  integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==
+  dependencies:
+    "@sindresorhus/is" "^4.0.0"
+    "@szmarczak/http-timer" "^4.0.5"
+    "@types/cacheable-request" "^6.0.1"
+    "@types/responselike" "^1.0.0"
+    cacheable-lookup "^5.0.3"
+    cacheable-request "^7.0.1"
+    decompress-response "^6.0.0"
+    http2-wrapper "^1.0.0-beta.5.2"
+    lowercase-keys "^2.0.0"
+    p-cancelable "^2.0.0"
+    responselike "^2.0.0"
+
+got@^9.6.0:
+  version "9.6.0"
+  resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
+  integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
+  dependencies:
+    "@sindresorhus/is" "^0.14.0"
+    "@szmarczak/http-timer" "^1.1.2"
+    cacheable-request "^6.0.0"
+    decompress-response "^3.3.0"
+    duplexer3 "^0.1.4"
+    get-stream "^4.1.0"
+    lowercase-keys "^1.0.1"
+    mimic-response "^1.0.1"
+    p-cancelable "^1.0.0"
+    to-readable-stream "^1.0.0"
+    url-parse-lax "^3.0.0"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
+  version "4.2.6"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+  integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
+
+"graceful-readlink@>= 1.0.0":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
+  integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
+
+grapheme-splitter@^1.0.2:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
+  integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
+
+growl@1.10.5:
+  version "1.10.5"
+  resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
+  integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
+has-value@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+  integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+  dependencies:
+    get-value "^2.0.3"
+    has-values "^0.1.4"
+    isobject "^2.0.0"
+
+has-value@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+  integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+  dependencies:
+    get-value "^2.0.6"
+    has-values "^1.0.0"
+    isobject "^3.0.0"
+
+has-values@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+  integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+  integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+  dependencies:
+    is-number "^3.0.0"
+    kind-of "^4.0.0"
+
+has-yarn@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
+  integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
+
+has@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+  dependencies:
+    function-bind "^1.1.1"
+
+he@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+highlight.js@^10.7.2:
+  version "10.7.2"
+  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360"
+  integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg==
+
+hosted-git-info@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961"
+  integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==
+  dependencies:
+    lru-cache "^6.0.0"
+
+http-cache-semantics@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
+  integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
+
+http2-wrapper@^1.0.0-beta.5.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
+  integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
+  dependencies:
+    quick-lru "^5.1.1"
+    resolve-alpn "^1.0.0"
+
+https-proxy-agent@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b"
+  integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==
+  dependencies:
+    agent-base "5"
+    debug "4"
+
+human-signals@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+iconv-corefoundation@^1.1.6:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a"
+  integrity sha512-1NBe55C75bKGZaY9UHxvXG3G0gEp0ziht7quhuFrW3SPgZDw9HI6qvYXRSV5M/Eupyu8ljuJ6Cba+ec15PZ4Xw==
+  dependencies:
+    cli-truncate "^1.1.0"
+    node-addon-api "^1.6.3"
+
+iconv-lite@^0.6.2:
+  version "0.6.2"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
+  integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3.0.0"
+
+ieee754@^1.1.13:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+immediate@~3.0.5:
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
+  integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
+
+import-lazy@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
+  integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
+
+import-local@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
+  integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
+  dependencies:
+    pkg-dir "^4.2.0"
+    resolve-cwd "^3.0.0"
+
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+inferno-shared@7.4.8:
+  version "7.4.8"
+  resolved "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-7.4.8.tgz#2b554a36683b770339008749096d9704846dd337"
+  integrity sha512-I0jnqsBcQvGJ7hqZF3vEzspQ80evViCe8joP3snWkPXPElk9WBVGLBHX5tHwuFuXv6wW4zeVVA4kBRAs47B+NQ==
+
+inferno-vnode-flags@7.4.8:
+  version "7.4.8"
+  resolved "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-7.4.8.tgz#275d70e3c8b2b3f4eb56041cc9b8c832ce1fb26d"
+  integrity sha512-wOUeO7Aho8VH+s2V2K/53KwS0DtQFgT7TdzPE/s6P26ZIxQj+vt7oTJqzXn+xjRIjnfkTLm2eQ8qfInOWCu1rw==
+
+inferno@^7.4.8:
+  version "7.4.8"
+  resolved "https://registry.yarnpkg.com/inferno/-/inferno-7.4.8.tgz#0d5504753e79903b0e4bbeff76fc11fd0b9ffe92"
+  integrity sha512-4XwGe5Kd0QkSaM/jqAQWjM0GfDLv+KujcWm5zbIow80G1tOEnZurQqhyF8u6m/HX3SnrCi+njlVdtPKDJXQiDw==
+  dependencies:
+    inferno-shared "7.4.8"
+    inferno-vnode-flags "7.4.8"
+    opencollective-postinstall "^2.0.3"
+
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+  dependencies:
+    once "^1.3.0"
+    wrappy "1"
+
+inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ini@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+  integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
+ini@^1.3.4, ini@~1.3.0:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+interpret@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
+  integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
+
+is-accessor-descriptor@^0.1.6:
+  version "0.1.6"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+  integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+  dependencies:
+    kind-of "^6.0.0"
+
+is-arrayish@^0.3.1:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-binary-path@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+  integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
+  dependencies:
+    binary-extensions "^1.0.0"
+
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+  dependencies:
+    binary-extensions "^2.0.0"
+
+is-buffer@^1.1.5:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-ci@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+  integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+  dependencies:
+    ci-info "^2.0.0"
+
+is-ci@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"
+  integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==
+  dependencies:
+    ci-info "^3.1.1"
+
+is-core-module@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887"
+  integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==
+  dependencies:
+    has "^1.0.3"
+
+is-data-descriptor@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+  integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+  dependencies:
+    kind-of "^6.0.0"
+
+is-descriptor@^0.1.0:
+  version "0.1.6"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+  dependencies:
+    is-accessor-descriptor "^0.1.6"
+    is-data-descriptor "^0.1.4"
+    kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+  dependencies:
+    is-accessor-descriptor "^1.0.0"
+    is-data-descriptor "^1.0.0"
+    kind-of "^6.0.2"
+
+is-docker@^2.0.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+  integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+  integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+  dependencies:
+    is-plain-object "^2.0.4"
+
+is-extglob@^2.1.0, is-extglob@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+  integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
+  dependencies:
+    is-extglob "^2.1.0"
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+  dependencies:
+    is-extglob "^2.1.1"
+
+is-installed-globally@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
+  integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
+  dependencies:
+    global-dirs "^3.0.0"
+    is-path-inside "^3.0.2"
+
+is-npm@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
+  integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==
+
+is-number@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+  integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-obj@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+  integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+is-object@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
+  integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+
+is-path-inside@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+is-plain-obj@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
+  integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+  integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+  dependencies:
+    isobject "^3.0.1"
+
+is-stream@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+  integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
+is-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+  integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+
+is-typedarray@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-windows@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+  integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+is-wsl@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+  integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+  dependencies:
+    is-docker "^2.0.0"
+
+is-yarn-global@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
+  integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
+
+isarray@1.0.0, isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isbinaryfile@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf"
+  integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==
+
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isobject@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+  integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+  dependencies:
+    isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+  integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
+jake@^10.6.1:
+  version "10.8.2"
+  resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"
+  integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==
+  dependencies:
+    async "0.9.x"
+    chalk "^2.4.2"
+    filelist "^1.0.1"
+    minimatch "^3.0.4"
+
+jest-worker@^26.6.2:
+  version "26.6.2"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+  integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^7.0.0"
+
+js-tokens@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f"
+  integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==
+  dependencies:
+    argparse "^2.0.1"
+
+js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
+jsesc@^2.5.1:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+json-buffer@3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
+  integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
+
+json-buffer@3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+  integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+json-parse-better-errors@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+  integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stringify-safe@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+
+json5@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+  integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+  dependencies:
+    minimist "^1.2.0"
+
+json5@^2.1.2, json5@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+  dependencies:
+    minimist "^1.2.5"
+
+jsonfile@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+  integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
+jsonfile@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+  dependencies:
+    universalify "^2.0.0"
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
+jszip@^3.1.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz#839b72812e3f97819cc13ac4134ffced95dd6af9"
+  integrity sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==
+  dependencies:
+    lie "~3.3.0"
+    pako "~1.0.2"
+    readable-stream "~2.3.6"
+    set-immediate-shim "~1.0.1"
+
+keyv@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
+  integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
+  dependencies:
+    json-buffer "3.0.0"
+
+keyv@^4.0.0:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254"
+  integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==
+  dependencies:
+    json-buffer "3.0.1"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+  dependencies:
+    is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+  integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+  dependencies:
+    is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+  integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+kuler@1.0.x:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6"
+  integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==
+  dependencies:
+    colornames "^1.1.1"
+
+latest-version@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
+  integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
+  dependencies:
+    package-json "^6.3.0"
+
+lazy-val@^1.0.4, lazy-val@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d"
+  integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==
+
+lazystream@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
+  integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=
+  dependencies:
+    readable-stream "^2.0.5"
+
+lie@~3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
+  integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
+  dependencies:
+    immediate "~3.0.5"
+
+lighthouse-logger@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz#b76d56935e9c137e86a04741f6bb9b2776e886ca"
+  integrity sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==
+  dependencies:
+    debug "^2.6.8"
+    marky "^1.2.0"
+
+loader-runner@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
+  integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
+
+loader-utils@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+  integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
+  dependencies:
+    big.js "^5.2.2"
+    emojis-list "^3.0.0"
+    json5 "^1.0.1"
+
+locate-path@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+  dependencies:
+    p-locate "^4.1.0"
+
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+  dependencies:
+    p-locate "^5.0.0"
+
+lodash.clonedeep@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
+lodash.defaults@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
+  integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
+
+lodash.difference@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
+  integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=
+
+lodash.flatten@^4.4.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
+  integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
+
+lodash.isobject@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
+  integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=
+
+lodash.isplainobject@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+  integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+
+lodash.merge@^4.6.1:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash.omit@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
+  integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
+
+lodash.union@^4.6.0:
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
+  integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
+
+lodash.zip@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020"
+  integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=
+
+lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
+  integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
+  dependencies:
+    chalk "^4.0.0"
+
+logform@^1.9.1:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/logform/-/logform-1.10.0.tgz#c9d5598714c92b546e23f4e78147c40f1e02012e"
+  integrity sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==
+  dependencies:
+    colors "^1.2.1"
+    fast-safe-stringify "^2.0.4"
+    fecha "^2.3.3"
+    ms "^2.1.1"
+    triple-beam "^1.2.0"
+
+loglevel-plugin-prefix@^0.8.4:
+  version "0.8.4"
+  resolved "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644"
+  integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==
+
+loglevel@^1.6.0:
+  version "1.7.1"
+  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
+  integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
+
+lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
+  integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
+
+lowercase-keys@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
+  integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
+make-dir@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+  integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+  dependencies:
+    pify "^4.0.1"
+    semver "^5.6.0"
+
+make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+  dependencies:
+    semver "^6.0.0"
+
+make-error@^1.1.1:
+  version "1.3.6"
+  resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+  integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+map-cache@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+  integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+map-visit@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+  integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+  dependencies:
+    object-visit "^1.0.0"
+
+marked@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.5.tgz#2d15c759b9497b0e7b5b57f4c2edabe1002ef9e7"
+  integrity sha512-yfCEUXmKhBPLOzEC7c+tc4XZdIeTdGoRCZakFMkCxodr7wDXqoapIME4wjcpBPJLNyUnKJ3e8rb8wlAgnLnaDw==
+
+marky@^1.2.0:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.2.tgz#4456765b4de307a13d263a69b0c79bf226e68323"
+  integrity sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==
+
+matcher@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca"
+  integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==
+  dependencies:
+    escape-string-regexp "^4.0.0"
+
+merge-descriptors@~1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
+
+merge-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+micromatch@^3.1.10, micromatch@^3.1.4:
+  version "3.1.10"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+  integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+  dependencies:
+    arr-diff "^4.0.0"
+    array-unique "^0.3.2"
+    braces "^2.3.1"
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    extglob "^2.0.4"
+    fragment-cache "^0.2.1"
+    kind-of "^6.0.2"
+    nanomatch "^1.2.9"
+    object.pick "^1.3.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.2"
+
+micromatch@^4.0.0:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.2.3"
+
+mime-db@1.47.0:
+  version "1.47.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
+  integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==
+
+mime-types@^2.1.27:
+  version "2.1.30"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
+  integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==
+  dependencies:
+    mime-db "1.47.0"
+
+mime@^2.5.2:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
+  integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
+
+mimic-fn@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+mimic-response@^1.0.0, mimic-response@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+  integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+
+mimic-response@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
+  integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
+
+minimatch@3.0.4, minimatch@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimist@^1.2.0, minimist@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+mixin-deep@^1.2.0:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+  dependencies:
+    for-in "^1.0.2"
+    is-extendable "^1.0.1"
+
+mkdirp-classic@^0.5.2:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
+
+mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4:
+  version "0.5.5"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+  dependencies:
+    minimist "^1.2.5"
+
+mocha@^8.4.0:
+  version "8.4.0"
+  resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff"
+  integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==
+  dependencies:
+    "@ungap/promise-all-settled" "1.1.2"
+    ansi-colors "4.1.1"
+    browser-stdout "1.3.1"
+    chokidar "3.5.1"
+    debug "4.3.1"
+    diff "5.0.0"
+    escape-string-regexp "4.0.0"
+    find-up "5.0.0"
+    glob "7.1.6"
+    growl "1.10.5"
+    he "1.2.0"
+    js-yaml "4.0.0"
+    log-symbols "4.0.0"
+    minimatch "3.0.4"
+    ms "2.1.3"
+    nanoid "3.1.20"
+    serialize-javascript "5.0.1"
+    strip-json-comments "3.1.1"
+    supports-color "8.1.1"
+    which "2.0.2"
+    wide-align "1.1.3"
+    workerpool "6.1.0"
+    yargs "16.2.0"
+    yargs-parser "20.2.4"
+    yargs-unparser "2.0.0"
+
+module-not-found-error@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0"
+  integrity sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=
+
+ms@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.2, ms@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@2.1.3:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+nanoid@3.1.20:
+  version "3.1.20"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
+  integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
+
+nanomatch@^1.2.9:
+  version "1.2.13"
+  resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+  integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+  dependencies:
+    arr-diff "^4.0.0"
+    array-unique "^0.3.2"
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    fragment-cache "^0.2.1"
+    is-windows "^1.0.2"
+    kind-of "^6.0.2"
+    object.pick "^1.3.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
+neo-async@^2.6.2:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+  integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+neovim@^4.10.0:
+  version "4.10.0"
+  resolved "https://registry.yarnpkg.com/neovim/-/neovim-4.10.0.tgz#82066c3236271d82dc16277e7a75aa254e974877"
+  integrity sha512-MMtsyjCPYXy45I8TZTz0iYJUIJhaDSO0zfHOJeidGuLUCeY6WLQiwZteJ9tmCveNWMjT1r2QO9nq135mUDgbtw==
+  dependencies:
+    "@msgpack/msgpack" "^1.9.3"
+    lodash.defaults "^4.2.0"
+    lodash.omit "^4.5.0"
+    semver "^7.1.1"
+    winston "3.1.0"
+
+node-addon-api@^1.6.3:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
+  integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
+
+node-fetch@^2.6.1:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
+  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+
+node-releases@^1.1.71:
+  version "1.1.71"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
+  integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
+
+normalize-path@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+  integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+  dependencies:
+    remove-trailing-separator "^1.0.1"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-url@^4.1.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
+  integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
+
+npm-conf@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
+  integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==
+  dependencies:
+    config-chain "^1.1.11"
+    pify "^3.0.0"
+
+npm-run-path@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+  dependencies:
+    path-key "^3.0.0"
+
+object-copy@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+  integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+  dependencies:
+    copy-descriptor "^0.1.0"
+    define-property "^0.2.5"
+    kind-of "^3.0.3"
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object-visit@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+  integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+  dependencies:
+    isobject "^3.0.0"
+
+object.assign@^4.1.0:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    has-symbols "^1.0.1"
+    object-keys "^1.1.1"
+
+object.pick@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+  integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+  dependencies:
+    isobject "^3.0.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+  dependencies:
+    wrappy "1"
+
+one-time@0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e"
+  integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=
+
+onetime@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+  dependencies:
+    mimic-fn "^2.1.0"
+
+opencollective-postinstall@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
+  integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
+
+p-cancelable@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
+  integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
+
+p-cancelable@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
+  integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
+
+p-limit@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+  dependencies:
+    p-try "^2.0.0"
+
+p-limit@^3.0.2, p-limit@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
+p-locate@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+  dependencies:
+    p-limit "^2.2.0"
+
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+  dependencies:
+    p-limit "^3.0.2"
+
+p-try@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+package-json@^6.3.0:
+  version "6.5.0"
+  resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0"
+  integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==
+  dependencies:
+    got "^9.6.0"
+    registry-auth-token "^4.0.0"
+    registry-url "^5.0.0"
+    semver "^6.2.0"
+
+pako@~1.0.2:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+  integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+pascalcase@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+  integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
+path-browserify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
+  integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+
+path-dirname@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+  integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
+
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-key@^3.0.0, path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+
+pend@~1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+  integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
+  integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==
+
+pify@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+  integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+
+pify@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+  integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+  integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+  dependencies:
+    find-up "^4.0.0"
+
+plist@^3.0.1:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz#74bbf011124b90421c22d15779cee60060ba95bc"
+  integrity sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==
+  dependencies:
+    base64-js "^1.5.1"
+    xmlbuilder "^9.0.7"
+    xmldom "^0.5.0"
+
+posix-character-classes@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
+prepend-http@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
+  integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
+
+prettier@2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18"
+  integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==
+
+printj@~1.1.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"
+  integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==
+
+process-nextick-args@~2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+progress@^2.0.1, progress@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+proto-list@~1.2.1:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+  integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
+
+proxy-from-env@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
+proxyquire@^2.1.3:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.1.3.tgz#2049a7eefa10a9a953346a18e54aab2b4268df39"
+  integrity sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==
+  dependencies:
+    fill-keys "^1.0.2"
+    module-not-found-error "^1.0.1"
+    resolve "^1.11.1"
+
+pump@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+  dependencies:
+    end-of-stream "^1.1.0"
+    once "^1.3.1"
+
+punycode@^2.1.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+pupa@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
+  integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
+  dependencies:
+    escape-goat "^2.0.0"
+
+puppeteer-core@^5.1.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-5.5.0.tgz#dfb6266efe5a933cbf1a368d27025a6fd4f5a884"
+  integrity sha512-tlA+1n+ziW/Db03hVV+bAecDKse8ihFRXYiEypBe9IlLRvOCzYFG6qrCMBYK34HO/Q/Ecjc+tvkHRAfLVH+NgQ==
+  dependencies:
+    debug "^4.1.0"
+    devtools-protocol "0.0.818844"
+    extract-zip "^2.0.0"
+    https-proxy-agent "^4.0.0"
+    node-fetch "^2.6.1"
+    pkg-dir "^4.2.0"
+    progress "^2.0.1"
+    proxy-from-env "^1.0.0"
+    rimraf "^3.0.2"
+    tar-fs "^2.0.0"
+    unbzip2-stream "^1.3.3"
+    ws "^7.2.3"
+
+quick-lru@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+  integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+randombytes@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+  integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+  dependencies:
+    safe-buffer "^5.1.0"
+
+rc@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+  dependencies:
+    deep-extend "^0.6.0"
+    ini "~1.3.0"
+    minimist "^1.2.0"
+    strip-json-comments "~2.0.1"
+
+read-config-file@6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz#71536072330bcd62ba814f91458b12add9fc7ade"
+  integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==
+  dependencies:
+    dotenv "^9.0.2"
+    dotenv-expand "^5.1.0"
+    js-yaml "^4.1.0"
+    json5 "^2.2.0"
+    lazy-val "^1.0.4"
+
+readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6:
+  version "2.3.7"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+  dependencies:
+    core-util-is "~1.0.0"
+    inherits "~2.0.3"
+    isarray "~1.0.0"
+    process-nextick-args "~2.0.0"
+    safe-buffer "~5.1.1"
+    string_decoder "~1.1.1"
+    util-deprecate "~1.0.1"
+
+readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+readdir-glob@^1.0.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4"
+  integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==
+  dependencies:
+    minimatch "^3.0.4"
+
+readdirp@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+  integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+  dependencies:
+    graceful-fs "^4.1.11"
+    micromatch "^3.1.10"
+    readable-stream "^2.0.2"
+
+readdirp@~3.5.0:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
+  integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
+  dependencies:
+    picomatch "^2.2.1"
+
+rechoir@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca"
+  integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==
+  dependencies:
+    resolve "^1.9.0"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+  integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+  dependencies:
+    extend-shallow "^3.0.2"
+    safe-regex "^1.1.0"
+
+registry-auth-token@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250"
+  integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==
+  dependencies:
+    rc "^1.2.8"
+
+registry-url@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
+  integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
+  dependencies:
+    rc "^1.2.8"
+
+remove-trailing-separator@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+repeat-element@^1.1.2:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
+  integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
+
+repeat-string@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+resolve-alpn@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.1.2.tgz#30b60cfbb0c0b8dc897940fe13fe255afcdd4d28"
+  integrity sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA==
+
+resolve-cwd@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+  integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+  dependencies:
+    resolve-from "^5.0.0"
+
+resolve-from@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+  integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve-url@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+
+resolve@>=1.9.0, resolve@^1.11.1, resolve@^1.9.0:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+  dependencies:
+    is-core-module "^2.2.0"
+    path-parse "^1.0.6"
+
+responselike@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
+  integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
+  dependencies:
+    lowercase-keys "^1.0.0"
+
+responselike@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723"
+  integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==
+  dependencies:
+    lowercase-keys "^2.0.0"
+
+resq@^1.9.1:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/resq/-/resq-1.10.0.tgz#40b5e3515ff984668e6b6b7c2401f282b08042ea"
+  integrity sha512-hCUd0xMalqtPDz4jXIqs0M5Wnv/LZXN8h7unFOo4/nvExT9dDPbhwd3udRxLlp0HgBnHcV009UlduE9NZi7A6w==
+  dependencies:
+    fast-deep-equal "^2.0.1"
+
+ret@~0.1.10:
+  version "0.1.15"
+  resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
+rgb2hex@0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.2.3.tgz#8aa464c517b8a26c7a79d767dabaec2b49ee78ec"
+  integrity sha512-clEe0m1xv+Tva1B/TOepuIcvLAxP0U+sCDfgt1SX1HmI2Ahr5/Cd/nzJM1e78NKVtWdoo0s33YehpFA8UfIShQ==
+
+rimraf@^3.0.0, rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
+roarr@^2.15.3:
+  version "2.15.4"
+  resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
+  integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==
+  dependencies:
+    boolean "^3.0.1"
+    detect-node "^2.0.4"
+    globalthis "^1.0.1"
+    json-stringify-safe "^5.0.1"
+    semver-compare "^1.0.0"
+    sprintf-js "^1.1.2"
+
+safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-regex@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+  integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+  dependencies:
+    ret "~0.1.10"
+
+"safer-buffer@>= 2.1.2 < 3.0.0":
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sanitize-filename@^1.6.3:
+  version "1.6.3"
+  resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
+  integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
+  dependencies:
+    truncate-utf8-bytes "^1.0.0"
+
+sax@^1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+schema-utils@^2.6.5:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
+  integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
+  dependencies:
+    "@types/json-schema" "^7.0.5"
+    ajv "^6.12.4"
+    ajv-keywords "^3.5.2"
+
+schema-utils@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef"
+  integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==
+  dependencies:
+    "@types/json-schema" "^7.0.6"
+    ajv "^6.12.5"
+    ajv-keywords "^3.5.2"
+
+semver-compare@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
+  integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
+
+semver-diff@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
+  integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==
+  dependencies:
+    semver "^6.3.0"
+
+semver@^5.6.0:
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+  dependencies:
+    lru-cache "^6.0.0"
+
+serialize-error@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18"
+  integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==
+  dependencies:
+    type-fest "^0.13.1"
+
+serialize-error@^8.0.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67"
+  integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==
+  dependencies:
+    type-fest "^0.20.2"
+
+serialize-javascript@5.0.1, serialize-javascript@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
+  integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
+  dependencies:
+    randombytes "^2.1.0"
+
+set-immediate-shim@~1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
+  integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
+
+set-value@^2.0.0, set-value@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+  dependencies:
+    extend-shallow "^2.0.1"
+    is-extendable "^0.1.1"
+    is-plain-object "^2.0.3"
+    split-string "^3.0.1"
+
+shallow-clone@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+  integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+  dependencies:
+    kind-of "^6.0.2"
+
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+signal-exit@^3.0.2, signal-exit@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+  integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
+simple-swizzle@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+  integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+  dependencies:
+    is-arrayish "^0.3.1"
+
+slash@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+  integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+
+slice-ansi@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
+  integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==
+  dependencies:
+    is-fullwidth-code-point "^2.0.0"
+
+smart-buffer@^4.0.2:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
+  integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==
+
+snapdragon-node@^2.0.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+  integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+  dependencies:
+    define-property "^1.0.0"
+    isobject "^3.0.0"
+    snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+  integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+  dependencies:
+    kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+  version "0.8.2"
+  resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+  integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+  dependencies:
+    base "^0.11.1"
+    debug "^2.2.0"
+    define-property "^0.2.5"
+    extend-shallow "^2.0.1"
+    map-cache "^0.2.2"
+    source-map "^0.5.6"
+    source-map-resolve "^0.5.0"
+    use "^3.1.0"
+
+source-list-map@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+  integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
+source-map-resolve@^0.5.0:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+  integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+  dependencies:
+    atob "^2.1.2"
+    decode-uri-component "^0.2.0"
+    resolve-url "^0.2.1"
+    source-map-url "^0.4.0"
+    urix "^0.1.0"
+
+source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.19:
+  version "0.5.19"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+  integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+
+source-map@^0.5.0, source-map@^0.5.6:
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@^0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+source-map@~0.7.2:
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+spectron@^14.0.0:
+  version "14.0.0"
+  resolved "https://registry.yarnpkg.com/spectron/-/spectron-14.0.0.tgz#c8160e38c30dcda39734f3e8e809162dc0805d14"
+  integrity sha512-88GM7D1eLiTxjByjtY7lxU7CJcQ92kX1x0WfnADaIXqqYRLbI1KlIWxXz1Xm5UxuMJh5N847K0NONG49mvZtuw==
+  dependencies:
+    "@electron/remote" "^1.0.4"
+    dev-null "^0.1.1"
+    electron-chromedriver "^12.0.0"
+    got "^11.8.0"
+    split "^1.0.1"
+    webdriverio "^6.9.1"
+
+split-string@^3.0.1, split-string@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+  integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+  dependencies:
+    extend-shallow "^3.0.0"
+
+split@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
+  integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
+  dependencies:
+    through "2"
+
+sprintf-js@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
+  integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
+
+stack-trace@0.0.x:
+  version "0.0.10"
+  resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+  integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
+
+stat-mode@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465"
+  integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==
+
+static-extend@^0.1.1:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+  integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+  dependencies:
+    define-property "^0.2.5"
+    object-copy "^0.1.0"
+
+"string-width@^1.0.2 || 2", string-width@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+  dependencies:
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^4.0.0"
+
+string-width@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+  dependencies:
+    emoji-regex "^7.0.1"
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^5.1.0"
+
+string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.0"
+
+string_decoder@^1.1.1, string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
+
+strip-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+  dependencies:
+    ansi-regex "^3.0.0"
+
+strip-ansi@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+  dependencies:
+    ansi-regex "^4.1.0"
+
+strip-ansi@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+  dependencies:
+    ansi-regex "^5.0.0"
+
+strip-bom@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+  integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+strip-final-newline@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-json-comments@3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+strip-json-comments@~2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+
+sumchecker@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42"
+  integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==
+  dependencies:
+    debug "^4.1.0"
+
+supports-color@8.1.1:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+  dependencies:
+    has-flag "^4.0.0"
+
+supports-color@^5.3.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
+
+supports-color@^7.0.0, supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
+
+tapable@^2.1.1, tapable@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b"
+  integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==
+
+tar-fs@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+  integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
+  dependencies:
+    chownr "^1.1.1"
+    mkdirp-classic "^0.5.2"
+    pump "^3.0.0"
+    tar-stream "^2.1.4"
+
+tar-stream@^2.1.4, tar-stream@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+  integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+  dependencies:
+    bl "^4.0.3"
+    end-of-stream "^1.4.1"
+    fs-constants "^1.0.0"
+    inherits "^2.0.3"
+    readable-stream "^3.1.1"
+
+temp-file@^3.4.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7"
+  integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==
+  dependencies:
+    async-exit-hook "^2.0.1"
+    fs-extra "^10.0.0"
+
+terser-webpack-plugin@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673"
+  integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==
+  dependencies:
+    jest-worker "^26.6.2"
+    p-limit "^3.1.0"
+    schema-utils "^3.0.0"
+    serialize-javascript "^5.0.1"
+    source-map "^0.6.1"
+    terser "^5.5.1"
+
+terser@^5.5.1:
+  version "5.7.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693"
+  integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==
+  dependencies:
+    commander "^2.20.0"
+    source-map "~0.7.2"
+    source-map-support "~0.5.19"
+
+text-hex@1.0.x:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
+  integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
+
+through@2, through@^2.3.8:
+  version "2.3.8"
+  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+tmp-promise@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a"
+  integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA==
+  dependencies:
+    tmp "^0.2.0"
+
+tmp@^0.2.0:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
+  integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+  dependencies:
+    rimraf "^3.0.0"
+
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-object-path@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+  integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+  dependencies:
+    kind-of "^3.0.2"
+
+to-readable-stream@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
+  integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
+
+to-regex-range@^2.1.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+  integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+  dependencies:
+    is-number "^3.0.0"
+    repeat-string "^1.6.1"
+
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+  dependencies:
+    is-number "^7.0.0"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+  integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+  dependencies:
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    regex-not "^1.0.2"
+    safe-regex "^1.1.0"
+
+triple-beam@^1.2.0, triple-beam@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
+  integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
+
+truncate-utf8-bytes@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
+  integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys=
+  dependencies:
+    utf8-byte-length "^1.0.1"
+
+ts-loader@^9.2.2:
+  version "9.2.2"
+  resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.2.tgz#416333900621c82d5eb1b1f6dea4114111f096bf"
+  integrity sha512-hNIhGTQHtNKjOzR2ZtQ2OSVbXPykOae+zostf1IlHCf61Mt41GMJurKNqrYUbzHgpmj6UWRu8eBfb7q0XliV0g==
+  dependencies:
+    chalk "^4.1.0"
+    enhanced-resolve "^5.0.0"
+    micromatch "^4.0.0"
+    semver "^7.3.4"
+
+ts-node@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.0.0.tgz#05f10b9a716b0b624129ad44f0ea05dac84ba3be"
+  integrity sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==
+  dependencies:
+    "@tsconfig/node10" "^1.0.7"
+    "@tsconfig/node12" "^1.0.7"
+    "@tsconfig/node14" "^1.0.0"
+    "@tsconfig/node16" "^1.0.1"
+    arg "^4.1.0"
+    create-require "^1.1.0"
+    diff "^4.0.1"
+    make-error "^1.1.1"
+    source-map-support "^0.5.17"
+    yn "3.1.1"
+
+ts-unused-exports@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/ts-unused-exports/-/ts-unused-exports-7.0.3.tgz#37a06d103d9d5b8619807dbd50d89f698e8cebf1"
+  integrity sha512-D0VdTiTfrmZM7tViQEMuzG0+giU5z5crn4vjK+f1dnxTKcNx23Vc2lpMgd1vP3lYrwnvJofZmCnvEuJ7XUeV2Q==
+  dependencies:
+    chalk "^4.0.0"
+    tsconfig-paths "^3.9.0"
+
+tsconfig-paths@^3.9.0:
+  version "3.9.0"
+  resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b"
+  integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==
+  dependencies:
+    "@types/json5" "^0.0.29"
+    json5 "^1.0.1"
+    minimist "^1.2.0"
+    strip-bom "^3.0.0"
+
+tslib@^2.1.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
+  integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
+
+ttypescript@^1.5.12:
+  version "1.5.12"
+  resolved "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.12.tgz#27a8356d7d4e719d0075a8feb4df14b52384f044"
+  integrity sha512-1ojRyJvpnmgN9kIHmUnQPlEV1gq+VVsxVYjk/NfvMlHSmYxjK5hEvOOU2MQASrbekTUiUM7pR/nXeCc8bzvMOQ==
+  dependencies:
+    resolve ">=1.9.0"
+
+tunnel@^0.0.6:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
+  integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
+
+type-fest@^0.13.1:
+  version "0.13.1"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
+  integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+typedarray-to-buffer@^3.1.5:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+  integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+  dependencies:
+    is-typedarray "^1.0.0"
+
+typedarray@^0.0.6:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
+typescript@^4.2.4:
+  version "4.2.4"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
+  integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==
+
+ua-parser-js@^0.7.21:
+  version "0.7.28"
+  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31"
+  integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==
+
+unbzip2-stream@^1.3.3:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+  integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
+  dependencies:
+    buffer "^5.2.1"
+    through "^2.3.8"
+
+union-value@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+  dependencies:
+    arr-union "^3.1.0"
+    get-value "^2.0.6"
+    is-extendable "^0.1.1"
+    set-value "^2.0.1"
+
+unique-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+  integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+  dependencies:
+    crypto-random-string "^2.0.0"
+
+universalify@^0.1.0:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+universalify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
+unset-value@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+  integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+  dependencies:
+    has-value "^0.3.1"
+    isobject "^3.0.0"
+
+unzip-crx-3@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz#d5324147b104a8aed9ae8639c95521f6f7cda292"
+  integrity sha512-0+JiUq/z7faJ6oifVB5nSwt589v1KCduqIJupNVDoWSXZtWDmjDGO3RAEOvwJ07w90aoXoP4enKsR7ecMrJtWQ==
+  dependencies:
+    jszip "^3.1.0"
+    mkdirp "^0.5.1"
+    yaku "^0.16.6"
+
+upath@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
+  integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+
+update-notifier@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"
+  integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==
+  dependencies:
+    boxen "^5.0.0"
+    chalk "^4.1.0"
+    configstore "^5.0.1"
+    has-yarn "^2.1.0"
+    import-lazy "^2.1.0"
+    is-ci "^2.0.0"
+    is-installed-globally "^0.4.0"
+    is-npm "^5.0.0"
+    is-yarn-global "^0.3.0"
+    latest-version "^5.1.0"
+    pupa "^2.1.1"
+    semver "^7.3.4"
+    semver-diff "^3.1.1"
+    xdg-basedir "^4.0.0"
+
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+  dependencies:
+    punycode "^2.1.0"
+
+urix@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
+url-parse-lax@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
+  integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
+  dependencies:
+    prepend-http "^2.0.0"
+
+use@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+  integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+utf8-byte-length@^1.0.1:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
+  integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=
+
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+uuid@^8.0.0:
+  version "8.3.2"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+v8-compile-cache@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+verror@^1.10.0:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+  dependencies:
+    assert-plus "^1.0.0"
+    core-util-is "1.0.2"
+    extsprintf "^1.2.0"
+
+watchpack@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7"
+  integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==
+  dependencies:
+    glob-to-regexp "^0.4.1"
+    graceful-fs "^4.1.2"
+
+webdriver@6.12.1:
+  version "6.12.1"
+  resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-6.12.1.tgz#30eee65340ea5124aa564f99a4dbc7d2f965b308"
+  integrity sha512-3rZgAj9o2XHp16FDTzvUYaHelPMSPbO1TpLIMUT06DfdZjNYIzZiItpIb/NbQDTPmNhzd9cuGmdI56WFBGY2BA==
+  dependencies:
+    "@wdio/config" "6.12.1"
+    "@wdio/logger" "6.10.10"
+    "@wdio/protocols" "6.12.0"
+    "@wdio/utils" "6.11.0"
+    got "^11.0.2"
+    lodash.merge "^4.6.1"
+
+webdriverio@^6.9.1:
+  version "6.12.1"
+  resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-6.12.1.tgz#5b6f1167373bd7a154419d8a930ef1ffda9d0537"
+  integrity sha512-Nx7ge0vTWHVIRUbZCT+IuMwB5Q0Q5nLlYdgnmmJviUKLuc3XtaEBkYPTbhHWHgSBXsPZMIc023vZKNkn+6iyeQ==
+  dependencies:
+    "@types/puppeteer-core" "^5.4.0"
+    "@wdio/config" "6.12.1"
+    "@wdio/logger" "6.10.10"
+    "@wdio/repl" "6.11.0"
+    "@wdio/utils" "6.11.0"
+    archiver "^5.0.0"
+    atob "^2.1.2"
+    css-shorthand-properties "^1.1.1"
+    css-value "^0.0.1"
+    devtools "6.12.1"
+    fs-extra "^9.0.1"
+    get-port "^5.1.1"
+    grapheme-splitter "^1.0.2"
+    lodash.clonedeep "^4.5.0"
+    lodash.isobject "^3.0.2"
+    lodash.isplainobject "^4.0.6"
+    lodash.zip "^4.2.0"
+    minimatch "^3.0.4"
+    puppeteer-core "^5.1.0"
+    resq "^1.9.1"
+    rgb2hex "0.2.3"
+    serialize-error "^8.0.0"
+    webdriver "6.12.1"
+
+webpack-cli@^4.7.0:
+  version "4.7.0"
+  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz#3195a777f1f802ecda732f6c95d24c0004bc5a35"
+  integrity sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==
+  dependencies:
+    "@discoveryjs/json-ext" "^0.5.0"
+    "@webpack-cli/configtest" "^1.0.3"
+    "@webpack-cli/info" "^1.2.4"
+    "@webpack-cli/serve" "^1.4.0"
+    colorette "^1.2.1"
+    commander "^7.0.0"
+    execa "^5.0.0"
+    fastest-levenshtein "^1.0.12"
+    import-local "^3.0.2"
+    interpret "^2.2.0"
+    rechoir "^0.7.0"
+    v8-compile-cache "^2.2.0"
+    webpack-merge "^5.7.3"
+
+webpack-merge@^5.7.3:
+  version "5.7.3"
+  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213"
+  integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==
+  dependencies:
+    clone-deep "^4.0.1"
+    wildcard "^2.0.0"
+
+webpack-sources@^2.1.1:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac"
+  integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==
+  dependencies:
+    source-list-map "^2.0.1"
+    source-map "^0.6.1"
+
+webpack@^5.37.1:
+  version "5.37.1"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.37.1.tgz#2deb5acd350583c1ab9338471f323381b0b0c14b"
+  integrity sha512-btZjGy/hSjCAAVHw+cKG+L0M+rstlyxbO2C+BOTaQ5/XAnxkDrP5sVbqWhXgo4pL3X2dcOib6rqCP20Zr9PLow==
+  dependencies:
+    "@types/eslint-scope" "^3.7.0"
+    "@types/estree" "^0.0.47"
+    "@webassemblyjs/ast" "1.11.0"
+    "@webassemblyjs/wasm-edit" "1.11.0"
+    "@webassemblyjs/wasm-parser" "1.11.0"
+    acorn "^8.2.1"
+    browserslist "^4.14.5"
+    chrome-trace-event "^1.0.2"
+    enhanced-resolve "^5.8.0"
+    es-module-lexer "^0.4.0"
+    eslint-scope "^5.1.1"
+    events "^3.2.0"
+    glob-to-regexp "^0.4.1"
+    graceful-fs "^4.2.4"
+    json-parse-better-errors "^1.0.2"
+    loader-runner "^4.2.0"
+    mime-types "^2.1.27"
+    neo-async "^2.6.2"
+    schema-utils "^3.0.0"
+    tapable "^2.1.1"
+    terser-webpack-plugin "^5.1.1"
+    watchpack "^2.0.0"
+    webpack-sources "^2.1.1"
+
+which@2.0.2, which@^2.0.1, which@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
+wide-align@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+  dependencies:
+    string-width "^1.0.2 || 2"
+
+widest-line@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
+  integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==
+  dependencies:
+    string-width "^4.0.0"
+
+wildcard@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
+  integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
+
+winston-transport@^4.2.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"
+  integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==
+  dependencies:
+    readable-stream "^2.3.7"
+    triple-beam "^1.2.0"
+
+winston@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz#80724376aef164e024f316100d5b178d78ac5331"
+  integrity sha512-FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg==
+  dependencies:
+    async "^2.6.0"
+    diagnostics "^1.1.1"
+    is-stream "^1.1.0"
+    logform "^1.9.1"
+    one-time "0.0.4"
+    readable-stream "^2.3.6"
+    stack-trace "0.0.x"
+    triple-beam "^1.3.0"
+    winston-transport "^4.2.0"
+
+workerpool@6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b"
+  integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==
+
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write-file-atomic@^3.0.0:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+  integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
+  dependencies:
+    imurmurhash "^0.1.4"
+    is-typedarray "^1.0.0"
+    signal-exit "^3.0.2"
+    typedarray-to-buffer "^3.1.5"
+
+ws@^7.2.3:
+  version "7.4.5"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1"
+  integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==
+
+xdg-basedir@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
+  integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+
+xmlbuilder@>=11.0.1:
+  version "15.1.1"
+  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
+  integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
+
+xmlbuilder@^9.0.7:
+  version "9.0.7"
+  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
+  integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
+
+xmldom@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e"
+  integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==
+
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yaku@^0.16.6:
+  version "0.16.7"
+  resolved "https://registry.yarnpkg.com/yaku/-/yaku-0.16.7.tgz#1d195c78aa9b5bf8479c895b9504fd4f0847984e"
+  integrity sha1-HRlceKqbW/hHnIlblQT9TwhHmE4=
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yargs-parser@20.2.4, yargs-parser@^20.2.2:
+  version "20.2.4"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
+  integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+
+yargs-unparser@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
+  integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
+  dependencies:
+    camelcase "^6.0.0"
+    decamelize "^4.0.0"
+    flat "^5.0.2"
+    is-plain-obj "^2.1.0"
+
+yargs@16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.0"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
+
+yargs@^17.0.1:
+  version "17.0.1"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb"
+  integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.0"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
+
+yauzl@^2.10.0:
+  version "2.10.0"
+  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+  integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
+  dependencies:
+    buffer-crc32 "~0.2.3"
+    fd-slicer "~1.1.0"
+
+yn@3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+  integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zip-stream@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79"
+  integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==
+  dependencies:
+    archiver-utils "^2.1.0"
+    compress-commons "^4.1.0"
+    readable-stream "^3.6.0"
diff --git a/nixpkgs/pkgs/applications/editors/uivonim/yarn.nix b/nixpkgs/pkgs/applications/editors/uivonim/yarn.nix
new file mode 100644
index 000000000000..aa2b10eac22a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/uivonim/yarn.nix
@@ -0,0 +1,5725 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "7zip_bin___7zip_bin_5.1.1.tgz";
+      path = fetchurl {
+        name = "7zip_bin___7zip_bin_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz";
+        sha1 = "9274ec7460652f9c632c59addf24efb1684ef876";
+      };
+    }
+    {
+      name = "_babel_cli___cli_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_cli___cli_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.3.tgz";
+        sha1 = "9f6c8aee12e8660df879610f19a8010958b26a6f";
+      };
+    }
+    {
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
+      };
+    }
+    {
+      name = "_babel_compat_data___compat_data_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_compat_data___compat_data_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz";
+        sha1 = "a901128bce2ad02565df95e6ecbf195cf9465919";
+      };
+    }
+    {
+      name = "_babel_core___core_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_core___core_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz";
+        sha1 = "5395e30405f0776067fbd9cf0884f15bfb770a38";
+      };
+    }
+    {
+      name = "_babel_generator___generator_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_generator___generator_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz";
+        sha1 = "0c2652d91f7bddab7cccc6ba8157e4f40dcedb91";
+      };
+    }
+    {
+      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz";
+        sha1 = "0f58e86dfc4bb3b1fcd7db806570e177d439b6ab";
+      };
+    }
+    {
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.13.16.tgz";
+      path = fetchurl {
+        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.13.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz";
+        sha1 = "6e91dccf15e3f43e5556dffe32d860109887563c";
+      };
+    }
+    {
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.1.tgz";
+      path = fetchurl {
+        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz";
+        sha1 = "1fe11b376f3c41650ad9fedc665b0068722ea76c";
+      };
+    }
+    {
+      name = "_babel_helper_function_name___helper_function_name_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_helper_function_name___helper_function_name_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz";
+        sha1 = "397688b590760b6ef7725b5f0860c82427ebaac2";
+      };
+    }
+    {
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
+      };
+    }
+    {
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz";
+        sha1 = "dfe368f26d426a07299d8d6513821768216e6d72";
+      };
+    }
+    {
+      name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
+        sha1 = "c6a369a6f3621cb25da014078684da9196b61977";
+      };
+    }
+    {
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz";
+        sha1 = "ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5";
+      };
+    }
+    {
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
+      };
+    }
+    {
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
+        sha1 = "806526ce125aed03373bc416a828321e3a6a33af";
+      };
+    }
+    {
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz";
+        sha1 = "6442f4c1ad912502481a564a7386de0c77ff3804";
+      };
+    }
+    {
+      name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
+        sha1 = "dd6c538afb61819d205a012c31792a39c7a5eaf6";
+      };
+    }
+    {
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
+      };
+    }
+    {
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha1 = "d26cad8a47c65286b15df1547319a5d0bcf27288";
+      };
+    }
+    {
+      name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
+      path = fetchurl {
+        name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha1 = "d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831";
+      };
+    }
+    {
+      name = "_babel_helpers___helpers_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_helpers___helpers_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz";
+        sha1 = "ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62";
+      };
+    }
+    {
+      name = "_babel_highlight___highlight_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_highlight___highlight_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha1 = "3197e375711ef6bf834e67d0daec88e4f46113cf";
+      };
+    }
+    {
+      name = "_babel_parser___parser_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_parser___parser_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz";
+        sha1 = "9b530eecb071fd0c93519df25c5ff9f14759f298";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
+        sha1 = "146376000b94efd001e57a40a88a525afaab9f37";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz";
+        sha1 = "e17d418f81cc103fedd4ce037e181c8056225abc";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz";
+        sha1 = "044fb81ebad6698fe62c478875575bcbb9b70f15";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz";
+        sha1 = "9dff111ca64154cef0f4dc52cf843d9f12ce4474";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz";
+        sha1 = "52bc199cb581e0992edba0f0f80356467587f161";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz";
+        sha1 = "e4290f72e0e9e831000d066427c4667098decc31";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz";
+        sha1 = "4a498e1f3600342d2a9e61f60131018f55774853";
+      };
+    }
+    {
+      name = "_babel_preset_typescript___preset_typescript_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_preset_typescript___preset_typescript_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz";
+        sha1 = "ab107e5f050609d806fbb039bec553b33462c60a";
+      };
+    }
+    {
+      name = "_babel_template___template_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
+      };
+    }
+    {
+      name = "_babel_traverse___traverse_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_traverse___traverse_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz";
+        sha1 = "9201a8d912723a831c2679c7ebbf2fe1416d765b";
+      };
+    }
+    {
+      name = "_babel_types___types_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_types___types_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz";
+        sha1 = "4208ae003107ef8a057ea8333e56eb64d2f6a2c3";
+      };
+    }
+    {
+      name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+      path = fetchurl {
+        name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz";
+        sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6";
+      };
+    }
+    {
+      name = "_discoveryjs_json_ext___json_ext_0.5.2.tgz";
+      path = fetchurl {
+        name = "_discoveryjs_json_ext___json_ext_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz";
+        sha1 = "8f03a22a04de437254e8ce8cc84ba39689288752";
+      };
+    }
+    {
+      name = "_electron_get___get_1.12.4.tgz";
+      path = fetchurl {
+        name = "_electron_get___get_1.12.4.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz";
+        sha1 = "a5971113fc1bf8fa12a8789dc20152a7359f06ab";
+      };
+    }
+    {
+      name = "_electron_remote___remote_1.1.0.tgz";
+      path = fetchurl {
+        name = "_electron_remote___remote_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/remote/-/remote-1.1.0.tgz";
+        sha1 = "167d119c7c03c7778b556fdc4f1f38a44b23f1c2";
+      };
+    }
+    {
+      name = "_electron_universal___universal_1.0.5.tgz";
+      path = fetchurl {
+        name = "_electron_universal___universal_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz";
+        sha1 = "b812340e4ef21da2b3ee77b2b4d35c9b86defe37";
+      };
+    }
+    {
+      name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz";
+      path = fetchurl {
+        name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz";
+        sha1 = "504af200af6b98e198bce768bc1730c6936ae01d";
+      };
+    }
+    {
+      name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz";
+      path = fetchurl {
+        name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz";
+        sha1 = "e8a32c30a95d20c2b1bb635cc580981a06389858";
+      };
+    }
+    {
+      name = "_medv_finder___finder_2.0.0.tgz";
+      path = fetchurl {
+        name = "_medv_finder___finder_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@medv/finder/-/finder-2.0.0.tgz";
+        sha1 = "699b7141393aa815f120b38f54f92ad212225902";
+      };
+    }
+    {
+      name = "_msgpack_msgpack___msgpack_1.12.2.tgz";
+      path = fetchurl {
+        name = "_msgpack_msgpack___msgpack_1.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-1.12.2.tgz";
+        sha1 = "6a22e99a49b131a8789053d0b0903834552da36f";
+      };
+    }
+    {
+      name = "_nicolo_ribaudo_chokidar_2___chokidar_2_2.1.8_no_fsevents.tgz";
+      path = fetchurl {
+        name = "_nicolo_ribaudo_chokidar_2___chokidar_2_2.1.8_no_fsevents.tgz";
+        url  = "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz";
+        sha1 = "da7c3996b8e6e19ebd14d82eaced2313e7769f9b";
+      };
+    }
+    {
+      name = "_sindresorhus_is___is_0.14.0.tgz";
+      path = fetchurl {
+        name = "_sindresorhus_is___is_0.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz";
+        sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea";
+      };
+    }
+    {
+      name = "_sindresorhus_is___is_4.0.1.tgz";
+      path = fetchurl {
+        name = "_sindresorhus_is___is_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.1.tgz";
+        sha1 = "d26729db850fa327b7cacc5522252194404226f5";
+      };
+    }
+    {
+      name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+      path = fetchurl {
+        name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
+        sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421";
+      };
+    }
+    {
+      name = "_szmarczak_http_timer___http_timer_4.0.5.tgz";
+      path = fetchurl {
+        name = "_szmarczak_http_timer___http_timer_4.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz";
+        sha1 = "bfbd50211e9dfa51ba07da58a14cdfd333205152";
+      };
+    }
+    {
+      name = "_tsconfig_node10___node10_1.0.7.tgz";
+      path = fetchurl {
+        name = "_tsconfig_node10___node10_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.7.tgz";
+        sha1 = "1eb1de36c73478a2479cc661ef5af1c16d86d606";
+      };
+    }
+    {
+      name = "_tsconfig_node12___node12_1.0.7.tgz";
+      path = fetchurl {
+        name = "_tsconfig_node12___node12_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.7.tgz";
+        sha1 = "677bd9117e8164dc319987dd6ff5fc1ba6fbf18b";
+      };
+    }
+    {
+      name = "_tsconfig_node14___node14_1.0.0.tgz";
+      path = fetchurl {
+        name = "_tsconfig_node14___node14_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.0.tgz";
+        sha1 = "5bd046e508b1ee90bc091766758838741fdefd6e";
+      };
+    }
+    {
+      name = "_tsconfig_node16___node16_1.0.1.tgz";
+      path = fetchurl {
+        name = "_tsconfig_node16___node16_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.1.tgz";
+        sha1 = "a6ca6a9a0ff366af433f42f5f0e124794ff6b8f1";
+      };
+    }
+    {
+      name = "_types_cacheable_request___cacheable_request_6.0.1.tgz";
+      path = fetchurl {
+        name = "_types_cacheable_request___cacheable_request_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz";
+        sha1 = "5d22f3dded1fd3a84c0bbeb5039a7419c2c91976";
+      };
+    }
+    {
+      name = "_types_debug___debug_4.1.5.tgz";
+      path = fetchurl {
+        name = "_types_debug___debug_4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz";
+        sha1 = "b14efa8852b7768d898906613c23f688713e02cd";
+      };
+    }
+    {
+      name = "_types_eslint_scope___eslint_scope_3.7.0.tgz";
+      path = fetchurl {
+        name = "_types_eslint_scope___eslint_scope_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz";
+        sha1 = "4792816e31119ebd506902a482caec4951fabd86";
+      };
+    }
+    {
+      name = "_types_eslint___eslint_7.2.10.tgz";
+      path = fetchurl {
+        name = "_types_eslint___eslint_7.2.10.tgz";
+        url  = "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz";
+        sha1 = "4b7a9368d46c0f8cd5408c23288a59aa2394d917";
+      };
+    }
+    {
+      name = "_types_estree___estree_0.0.47.tgz";
+      path = fetchurl {
+        name = "_types_estree___estree_0.0.47.tgz";
+        url  = "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz";
+        sha1 = "d7a51db20f0650efec24cd04994f523d93172ed4";
+      };
+    }
+    {
+      name = "_types_fs_extra___fs_extra_9.0.11.tgz";
+      path = fetchurl {
+        name = "_types_fs_extra___fs_extra_9.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz";
+        sha1 = "8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87";
+      };
+    }
+    {
+      name = "_types_fuzzaldrin_plus___fuzzaldrin_plus_0.6.1.tgz";
+      path = fetchurl {
+        name = "_types_fuzzaldrin_plus___fuzzaldrin_plus_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.1.tgz";
+        sha1 = "818d00303d3f83190cdcf9d4496eded40d05576f";
+      };
+    }
+    {
+      name = "_types_glob___glob_7.1.3.tgz";
+      path = fetchurl {
+        name = "_types_glob___glob_7.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz";
+        sha1 = "e6ba80f36b7daad2c685acd9266382e68985c183";
+      };
+    }
+    {
+      name = "_types_http_cache_semantics___http_cache_semantics_4.0.0.tgz";
+      path = fetchurl {
+        name = "_types_http_cache_semantics___http_cache_semantics_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz";
+        sha1 = "9140779736aa2655635ee756e2467d787cfe8a2a";
+      };
+    }
+    {
+      name = "_types_json_schema___json_schema_7.0.7.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
+      };
+    }
+    {
+      name = "_types_json5___json5_0.0.29.tgz";
+      path = fetchurl {
+        name = "_types_json5___json5_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
+      };
+    }
+    {
+      name = "_types_keyv___keyv_3.1.1.tgz";
+      path = fetchurl {
+        name = "_types_keyv___keyv_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz";
+        sha1 = "e45a45324fca9dab716ab1230ee249c9fb52cfa7";
+      };
+    }
+    {
+      name = "_types_marked___marked_2.0.3.tgz";
+      path = fetchurl {
+        name = "_types_marked___marked_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/marked/-/marked-2.0.3.tgz";
+        sha1 = "c8ea93684e530cc3b667d3e7226556dd0844ad1f";
+      };
+    }
+    {
+      name = "_types_minimatch___minimatch_3.0.4.tgz";
+      path = fetchurl {
+        name = "_types_minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "f0ec25dbf2f0e4b18647313ac031134ca5b24b21";
+      };
+    }
+    {
+      name = "_types_node___node_15.6.0.tgz";
+      path = fetchurl {
+        name = "_types_node___node_15.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-15.6.0.tgz";
+        sha1 = "f0ddca5a61e52627c9dcb771a6039d44694597bc";
+      };
+    }
+    {
+      name = "_types_node___node_14.14.44.tgz";
+      path = fetchurl {
+        name = "_types_node___node_14.14.44.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz";
+        sha1 = "df7503e6002847b834371c004b372529f3f85215";
+      };
+    }
+    {
+      name = "_types_plist___plist_3.0.2.tgz";
+      path = fetchurl {
+        name = "_types_plist___plist_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz";
+        sha1 = "61b3727bba0f5c462fe333542534a0c3e19ccb01";
+      };
+    }
+    {
+      name = "_types_puppeteer_core___puppeteer_core_5.4.0.tgz";
+      path = fetchurl {
+        name = "_types_puppeteer_core___puppeteer_core_5.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/puppeteer-core/-/puppeteer-core-5.4.0.tgz";
+        sha1 = "880a7917b4ede95cbfe2d5e81a558cfcb072c0fb";
+      };
+    }
+    {
+      name = "_types_puppeteer___puppeteer_5.4.3.tgz";
+      path = fetchurl {
+        name = "_types_puppeteer___puppeteer_5.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-5.4.3.tgz";
+        sha1 = "cdca84aa7751d77448d8a477dbfa0af1f11485f2";
+      };
+    }
+    {
+      name = "_types_responselike___responselike_1.0.0.tgz";
+      path = fetchurl {
+        name = "_types_responselike___responselike_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz";
+        sha1 = "251f4fe7d154d2bad125abe1b429b23afd262e29";
+      };
+    }
+    {
+      name = "_types_verror___verror_1.10.4.tgz";
+      path = fetchurl {
+        name = "_types_verror___verror_1.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz";
+        sha1 = "805c0612b3a0c124cf99f517364142946b74ba3b";
+      };
+    }
+    {
+      name = "_types_webgl2___webgl2_0.0.6.tgz";
+      path = fetchurl {
+        name = "_types_webgl2___webgl2_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz";
+        sha1 = "1ea2db791362bd8521548d664dbd3c5311cdf4b6";
+      };
+    }
+    {
+      name = "_types_which___which_1.3.2.tgz";
+      path = fetchurl {
+        name = "_types_which___which_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz";
+        sha1 = "9c246fc0c93ded311c8512df2891fb41f6227fdf";
+      };
+    }
+    {
+      name = "_types_yargs_parser___yargs_parser_20.2.0.tgz";
+      path = fetchurl {
+        name = "_types_yargs_parser___yargs_parser_20.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz";
+        sha1 = "dd3e6699ba3237f0348cd085e4698780204842f9";
+      };
+    }
+    {
+      name = "_types_yargs___yargs_16.0.1.tgz";
+      path = fetchurl {
+        name = "_types_yargs___yargs_16.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.1.tgz";
+        sha1 = "5fc5d41f69762e00fbecbc8d4bf9dea47d8726f4";
+      };
+    }
+    {
+      name = "_types_yauzl___yauzl_2.9.1.tgz";
+      path = fetchurl {
+        name = "_types_yauzl___yauzl_2.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz";
+        sha1 = "d10f69f9f522eef3cf98e30afb684a1e1ec923af";
+      };
+    }
+    {
+      name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
+      path = fetchurl {
+        name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz";
+        sha1 = "aa58042711d6e3275dd37dc597e5d31e8c290a44";
+      };
+    }
+    {
+      name = "_wdio_config___config_6.12.1.tgz";
+      path = fetchurl {
+        name = "_wdio_config___config_6.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@wdio/config/-/config-6.12.1.tgz";
+        sha1 = "86d987b505d8ca85ec11471830d2ba296dab3bcf";
+      };
+    }
+    {
+      name = "_wdio_logger___logger_6.10.10.tgz";
+      path = fetchurl {
+        name = "_wdio_logger___logger_6.10.10.tgz";
+        url  = "https://registry.yarnpkg.com/@wdio/logger/-/logger-6.10.10.tgz";
+        sha1 = "1e07cf32a69606ddb94fa9fd4b0171cb839a5980";
+      };
+    }
+    {
+      name = "_wdio_protocols___protocols_6.12.0.tgz";
+      path = fetchurl {
+        name = "_wdio_protocols___protocols_6.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/@wdio/protocols/-/protocols-6.12.0.tgz";
+        sha1 = "e40850be62c42c82dd2c486655d6419cd9ec1e3e";
+      };
+    }
+    {
+      name = "_wdio_repl___repl_6.11.0.tgz";
+      path = fetchurl {
+        name = "_wdio_repl___repl_6.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@wdio/repl/-/repl-6.11.0.tgz";
+        sha1 = "5b1eab574b6b89f7f7c383e7295c06af23c3818e";
+      };
+    }
+    {
+      name = "_wdio_utils___utils_6.11.0.tgz";
+      path = fetchurl {
+        name = "_wdio_utils___utils_6.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@wdio/utils/-/utils-6.11.0.tgz";
+        sha1 = "878c2500efb1a325bf5a66d2ff3d08162f976e8c";
+      };
+    }
+    {
+      name = "_webassemblyjs_ast___ast_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_ast___ast_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz";
+        sha1 = "a5aa679efdc9e51707a4207139da57920555961f";
+      };
+    }
+    {
+      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz";
+        sha1 = "34d62052f453cd43101d72eab4966a022587947c";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_api_error___helper_api_error_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_api_error___helper_api_error_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz";
+        sha1 = "aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_buffer___helper_buffer_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_buffer___helper_buffer_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz";
+        sha1 = "d026c25d175e388a7dbda9694e91e743cbe9b642";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_numbers___helper_numbers_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_numbers___helper_numbers_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz";
+        sha1 = "7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz";
+        sha1 = "85fdcda4129902fe86f81abf7e7236953ec5a4e1";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz";
+        sha1 = "9ce2cc89300262509c801b4af113d1ca25c1a75b";
+      };
+    }
+    {
+      name = "_webassemblyjs_ieee754___ieee754_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_ieee754___ieee754_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz";
+        sha1 = "46975d583f9828f5d094ac210e219441c4e6f5cf";
+      };
+    }
+    {
+      name = "_webassemblyjs_leb128___leb128_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_leb128___leb128_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz";
+        sha1 = "f7353de1df38aa201cba9fb88b43f41f75ff403b";
+      };
+    }
+    {
+      name = "_webassemblyjs_utf8___utf8_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_utf8___utf8_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz";
+        sha1 = "86e48f959cf49e0e5091f069a709b862f5a2cadf";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_edit___wasm_edit_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_edit___wasm_edit_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz";
+        sha1 = "ee4a5c9f677046a210542ae63897094c2027cb78";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_gen___wasm_gen_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_gen___wasm_gen_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz";
+        sha1 = "3cdb35e70082d42a35166988dda64f24ceb97abe";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_opt___wasm_opt_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_opt___wasm_opt_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz";
+        sha1 = "1638ae188137f4bb031f568a413cd24d32f92978";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_parser___wasm_parser_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_parser___wasm_parser_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz";
+        sha1 = "3e680b8830d5b13d1ec86cc42f38f3d4a7700754";
+      };
+    }
+    {
+      name = "_webassemblyjs_wast_printer___wast_printer_1.11.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wast_printer___wast_printer_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz";
+        sha1 = "680d1f6a5365d6d401974a8e949e05474e1fab7e";
+      };
+    }
+    {
+      name = "_webpack_cli_configtest___configtest_1.0.3.tgz";
+      path = fetchurl {
+        name = "_webpack_cli_configtest___configtest_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz";
+        sha1 = "204bcff87cda3ea4810881f7ea96e5f5321b87b9";
+      };
+    }
+    {
+      name = "_webpack_cli_info___info_1.2.4.tgz";
+      path = fetchurl {
+        name = "_webpack_cli_info___info_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz";
+        sha1 = "7381fd41c9577b2d8f6c2594fad397ef49ad5573";
+      };
+    }
+    {
+      name = "_webpack_cli_serve___serve_1.4.0.tgz";
+      path = fetchurl {
+        name = "_webpack_cli_serve___serve_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz";
+        sha1 = "f84fd07bcacefe56ce762925798871092f0f228e";
+      };
+    }
+    {
+      name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+      path = fetchurl {
+        name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+        sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
+      };
+    }
+    {
+      name = "_xtuc_long___long_4.2.2.tgz";
+      path = fetchurl {
+        name = "_xtuc_long___long_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz";
+        sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d";
+      };
+    }
+    {
+      name = "acorn___acorn_8.2.4.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_8.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz";
+        sha1 = "caba24b08185c3b56e3168e97d15ed17f4d31fd0";
+      };
+    }
+    {
+      name = "agent_base___agent_base_5.1.1.tgz";
+      path = fetchurl {
+        name = "agent_base___agent_base_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz";
+        sha1 = "e8fb3f242959db44d63be665db7a8e739537a32c";
+      };
+    }
+    {
+      name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+      path = fetchurl {
+        name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
+      };
+    }
+    {
+      name = "ajv___ajv_6.12.6.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
+      };
+    }
+    {
+      name = "ansi_align___ansi_align_3.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_align___ansi_align_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
+        sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
+      };
+    }
+    {
+      name = "ansi_colors___ansi_colors_4.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_colors___ansi_colors_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_4.1.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_5.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_3.2.1.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_4.3.0.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
+      };
+    }
+    {
+      name = "anymatch___anymatch_2.0.0.tgz";
+      path = fetchurl {
+        name = "anymatch___anymatch_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+        sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+      };
+    }
+    {
+      name = "anymatch___anymatch_3.1.2.tgz";
+      path = fetchurl {
+        name = "anymatch___anymatch_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
+        sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
+      };
+    }
+    {
+      name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
+      path = fetchurl {
+        name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz";
+        sha1 = "6dd7f4de34a4e408806f99b8c7d6ef1601305b7e";
+      };
+    }
+    {
+      name = "app_builder_lib___app_builder_lib_22.11.5.tgz";
+      path = fetchurl {
+        name = "app_builder_lib___app_builder_lib_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.5.tgz";
+        sha1 = "d49f49dc2d9fd225249e4ae7e30add2996e7062f";
+      };
+    }
+    {
+      name = "archiver_utils___archiver_utils_2.1.0.tgz";
+      path = fetchurl {
+        name = "archiver_utils___archiver_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz";
+        sha1 = "e8a460e94b693c3e3da182a098ca6285ba9249e2";
+      };
+    }
+    {
+      name = "archiver___archiver_5.3.0.tgz";
+      path = fetchurl {
+        name = "archiver___archiver_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz";
+        sha1 = "dd3e097624481741df626267564f7dd8640a45ba";
+      };
+    }
+    {
+      name = "arg___arg_4.1.3.tgz";
+      path = fetchurl {
+        name = "arg___arg_4.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz";
+        sha1 = "269fc7ad5b8e42cb63c896d5666017261c144089";
+      };
+    }
+    {
+      name = "argparse___argparse_2.0.1.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
+        sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
+      };
+    }
+    {
+      name = "arr_diff___arr_diff_4.0.0.tgz";
+      path = fetchurl {
+        name = "arr_diff___arr_diff_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    }
+    {
+      name = "arr_flatten___arr_flatten_1.1.0.tgz";
+      path = fetchurl {
+        name = "arr_flatten___arr_flatten_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+      };
+    }
+    {
+      name = "arr_union___arr_union_3.1.0.tgz";
+      path = fetchurl {
+        name = "arr_union___arr_union_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    }
+    {
+      name = "array_unique___array_unique_0.3.2.tgz";
+      path = fetchurl {
+        name = "array_unique___array_unique_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    }
+    {
+      name = "asar___asar_3.0.3.tgz";
+      path = fetchurl {
+        name = "asar___asar_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz";
+        sha1 = "1fef03c2d6d2de0cbad138788e4f7ae03b129c7b";
+      };
+    }
+    {
+      name = "assert_plus___assert_plus_1.0.0.tgz";
+      path = fetchurl {
+        name = "assert_plus___assert_plus_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    }
+    {
+      name = "assign_symbols___assign_symbols_1.0.0.tgz";
+      path = fetchurl {
+        name = "assign_symbols___assign_symbols_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    }
+    {
+      name = "async_each___async_each_1.0.3.tgz";
+      path = fetchurl {
+        name = "async_each___async_each_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz";
+        sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf";
+      };
+    }
+    {
+      name = "async_exit_hook___async_exit_hook_2.0.1.tgz";
+      path = fetchurl {
+        name = "async_exit_hook___async_exit_hook_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz";
+        sha1 = "8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3";
+      };
+    }
+    {
+      name = "async___async_0.9.2.tgz";
+      path = fetchurl {
+        name = "async___async_0.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+      };
+    }
+    {
+      name = "async___async_2.6.3.tgz";
+      path = fetchurl {
+        name = "async___async_2.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
+        sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
+      };
+    }
+    {
+      name = "async___async_3.2.0.tgz";
+      path = fetchurl {
+        name = "async___async_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz";
+        sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720";
+      };
+    }
+    {
+      name = "at_least_node___at_least_node_1.0.0.tgz";
+      path = fetchurl {
+        name = "at_least_node___at_least_node_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
+      };
+    }
+    {
+      name = "atob___atob_2.1.2.tgz";
+      path = fetchurl {
+        name = "atob___atob_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+        sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+      };
+    }
+    {
+      name = "babel_loader___babel_loader_8.2.2.tgz";
+      path = fetchurl {
+        name = "babel_loader___babel_loader_8.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz";
+        sha1 = "9363ce84c10c9a40e6c753748e1441b60c8a0b81";
+      };
+    }
+    {
+      name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
+      path = fetchurl {
+        name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha1 = "84fda19c976ec5c6defef57f9427b3def66e17a3";
+      };
+    }
+    {
+      name = "babel_plugin_inferno___babel_plugin_inferno_6.2.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_inferno___babel_plugin_inferno_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-inferno/-/babel-plugin-inferno-6.2.0.tgz";
+        sha1 = "d98e4a675f72b47501a747f34b5170114da187e2";
+      };
+    }
+    {
+      name = "babel_plugin_syntax_jsx___babel_plugin_syntax_jsx_6.18.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_syntax_jsx___babel_plugin_syntax_jsx_6.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz";
+        sha1 = "0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946";
+      };
+    }
+    {
+      name = "balanced_match___balanced_match_1.0.2.tgz";
+      path = fetchurl {
+        name = "balanced_match___balanced_match_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
+      };
+    }
+    {
+      name = "base64_js___base64_js_1.5.1.tgz";
+      path = fetchurl {
+        name = "base64_js___base64_js_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz";
+        sha1 = "1b1b440160a5bf7ad40b650f095963481903930a";
+      };
+    }
+    {
+      name = "base___base_0.11.2.tgz";
+      path = fetchurl {
+        name = "base___base_0.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+        sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+      };
+    }
+    {
+      name = "big.js___big.js_5.2.2.tgz";
+      path = fetchurl {
+        name = "big.js___big.js_5.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
+        sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
+      };
+    }
+    {
+      name = "binary_extensions___binary_extensions_1.13.1.tgz";
+      path = fetchurl {
+        name = "binary_extensions___binary_extensions_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz";
+        sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65";
+      };
+    }
+    {
+      name = "binary_extensions___binary_extensions_2.2.0.tgz";
+      path = fetchurl {
+        name = "binary_extensions___binary_extensions_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha1 = "75f502eeaf9ffde42fc98829645be4ea76bd9e2d";
+      };
+    }
+    {
+      name = "bl___bl_4.1.0.tgz";
+      path = fetchurl {
+        name = "bl___bl_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz";
+        sha1 = "451535264182bec2fbbc83a62ab98cf11d9f7b3a";
+      };
+    }
+    {
+      name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
+      path = fetchurl {
+        name = "bluebird_lst___bluebird_lst_1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz";
+        sha1 = "a64a0e4365658b9ab5fe875eb9dfb694189bb41c";
+      };
+    }
+    {
+      name = "bluebird___bluebird_3.7.2.tgz";
+      path = fetchurl {
+        name = "bluebird___bluebird_3.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
+        sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
+      };
+    }
+    {
+      name = "boolean___boolean_3.0.3.tgz";
+      path = fetchurl {
+        name = "boolean___boolean_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/boolean/-/boolean-3.0.3.tgz";
+        sha1 = "0fee0c9813b66bef25a8a6a904bb46736d05f024";
+      };
+    }
+    {
+      name = "boxen___boxen_5.0.1.tgz";
+      path = fetchurl {
+        name = "boxen___boxen_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz";
+        sha1 = "657528bdd3f59a772b8279b831f27ec2c744664b";
+      };
+    }
+    {
+      name = "brace_expansion___brace_expansion_1.1.11.tgz";
+      path = fetchurl {
+        name = "brace_expansion___brace_expansion_1.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+      };
+    }
+    {
+      name = "braces___braces_2.3.2.tgz";
+      path = fetchurl {
+        name = "braces___braces_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+        sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+      };
+    }
+    {
+      name = "braces___braces_3.0.2.tgz";
+      path = fetchurl {
+        name = "braces___braces_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
+        sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
+      };
+    }
+    {
+      name = "browser_stdout___browser_stdout_1.3.1.tgz";
+      path = fetchurl {
+        name = "browser_stdout___browser_stdout_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz";
+        sha1 = "baa559ee14ced73452229bad7326467c61fabd60";
+      };
+    }
+    {
+      name = "browserslist___browserslist_4.16.6.tgz";
+      path = fetchurl {
+        name = "browserslist___browserslist_4.16.6.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz";
+        sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2";
+      };
+    }
+    {
+      name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+      path = fetchurl {
+        name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
+        sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
+      };
+    }
+    {
+      name = "buffer_equal___buffer_equal_1.0.0.tgz";
+      path = fetchurl {
+        name = "buffer_equal___buffer_equal_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz";
+        sha1 = "59616b498304d556abd466966b22eeda3eca5fbe";
+      };
+    }
+    {
+      name = "buffer_from___buffer_from_1.1.1.tgz";
+      path = fetchurl {
+        name = "buffer_from___buffer_from_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+      };
+    }
+    {
+      name = "buffer___buffer_5.7.1.tgz";
+      path = fetchurl {
+        name = "buffer___buffer_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz";
+        sha1 = "ba62e7c13133053582197160851a8f648e99eed0";
+      };
+    }
+    {
+      name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
+      path = fetchurl {
+        name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz";
+        sha1 = "4b43c96db2bd494ced7694bcd7674934655e8324";
+      };
+    }
+    {
+      name = "builder_util___builder_util_22.11.5.tgz";
+      path = fetchurl {
+        name = "builder_util___builder_util_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.5.tgz";
+        sha1 = "08836d00e6bef39bdffd8a66fb07d2d5021b9c3c";
+      };
+    }
+    {
+      name = "cache_base___cache_base_1.0.1.tgz";
+      path = fetchurl {
+        name = "cache_base___cache_base_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+        sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+      };
+    }
+    {
+      name = "cacheable_lookup___cacheable_lookup_5.0.4.tgz";
+      path = fetchurl {
+        name = "cacheable_lookup___cacheable_lookup_5.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz";
+        sha1 = "5a6b865b2c44357be3d5ebc2a467b032719a7005";
+      };
+    }
+    {
+      name = "cacheable_request___cacheable_request_6.1.0.tgz";
+      path = fetchurl {
+        name = "cacheable_request___cacheable_request_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz";
+        sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912";
+      };
+    }
+    {
+      name = "cacheable_request___cacheable_request_7.0.1.tgz";
+      path = fetchurl {
+        name = "cacheable_request___cacheable_request_7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz";
+        sha1 = "062031c2856232782ed694a257fa35da93942a58";
+      };
+    }
+    {
+      name = "call_bind___call_bind_1.0.2.tgz";
+      path = fetchurl {
+        name = "call_bind___call_bind_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
+        sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
+      };
+    }
+    {
+      name = "camelcase___camelcase_6.2.0.tgz";
+      path = fetchurl {
+        name = "camelcase___camelcase_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz";
+        sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809";
+      };
+    }
+    {
+      name = "caniuse_lite___caniuse_lite_1.0.30001222.tgz";
+      path = fetchurl {
+        name = "caniuse_lite___caniuse_lite_1.0.30001222.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz";
+        sha1 = "2789b8487282cbbe1700924f53951303d28086a9";
+      };
+    }
+    {
+      name = "chalk___chalk_2.4.2.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+      };
+    }
+    {
+      name = "chalk___chalk_4.1.1.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
+        sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
+      };
+    }
+    {
+      name = "chokidar___chokidar_3.5.1.tgz";
+      path = fetchurl {
+        name = "chokidar___chokidar_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz";
+        sha1 = "ee9ce7bbebd2b79f49f304799d5468e31e14e68a";
+      };
+    }
+    {
+      name = "chownr___chownr_1.1.4.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
+        sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
+      };
+    }
+    {
+      name = "chrome_launcher___chrome_launcher_0.13.4.tgz";
+      path = fetchurl {
+        name = "chrome_launcher___chrome_launcher_0.13.4.tgz";
+        url  = "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.13.4.tgz";
+        sha1 = "4c7d81333c98282899c4e38256da23e00ed32f73";
+      };
+    }
+    {
+      name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
+      path = fetchurl {
+        name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz";
+        sha1 = "1015eced4741e15d06664a957dbbf50d041e26ac";
+      };
+    }
+    {
+      name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
+      path = fetchurl {
+        name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz";
+        sha1 = "04a106672c18b085ab774d983dfa3ea138f22205";
+      };
+    }
+    {
+      name = "ci_info___ci_info_2.0.0.tgz";
+      path = fetchurl {
+        name = "ci_info___ci_info_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
+        sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
+      };
+    }
+    {
+      name = "ci_info___ci_info_3.1.1.tgz";
+      path = fetchurl {
+        name = "ci_info___ci_info_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz";
+        sha1 = "9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a";
+      };
+    }
+    {
+      name = "class_utils___class_utils_0.3.6.tgz";
+      path = fetchurl {
+        name = "class_utils___class_utils_0.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+        sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+      };
+    }
+    {
+      name = "classnames___classnames_2.3.1.tgz";
+      path = fetchurl {
+        name = "classnames___classnames_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz";
+        sha1 = "dfcfa3891e306ec1dad105d0e88f4417b8535e8e";
+      };
+    }
+    {
+      name = "cli_boxes___cli_boxes_2.2.1.tgz";
+      path = fetchurl {
+        name = "cli_boxes___cli_boxes_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz";
+        sha1 = "ddd5035d25094fce220e9cab40a45840a440318f";
+      };
+    }
+    {
+      name = "cli_truncate___cli_truncate_1.1.0.tgz";
+      path = fetchurl {
+        name = "cli_truncate___cli_truncate_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz";
+        sha1 = "2b2dfd83c53cfd3572b87fc4d430a808afb04086";
+      };
+    }
+    {
+      name = "cliui___cliui_7.0.4.tgz";
+      path = fetchurl {
+        name = "cliui___cliui_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz";
+        sha1 = "a0265ee655476fc807aea9df3df8df7783808b4f";
+      };
+    }
+    {
+      name = "clone_deep___clone_deep_4.0.1.tgz";
+      path = fetchurl {
+        name = "clone_deep___clone_deep_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz";
+        sha1 = "c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387";
+      };
+    }
+    {
+      name = "clone_response___clone_response_1.0.2.tgz";
+      path = fetchurl {
+        name = "clone_response___clone_response_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz";
+        sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+      };
+    }
+    {
+      name = "collection_visit___collection_visit_1.0.0.tgz";
+      path = fetchurl {
+        name = "collection_visit___collection_visit_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    }
+    {
+      name = "color_convert___color_convert_1.9.3.tgz";
+      path = fetchurl {
+        name = "color_convert___color_convert_1.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+      };
+    }
+    {
+      name = "color_convert___color_convert_2.0.1.tgz";
+      path = fetchurl {
+        name = "color_convert___color_convert_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
+        sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
+      };
+    }
+    {
+      name = "color_name___color_name_1.1.3.tgz";
+      path = fetchurl {
+        name = "color_name___color_name_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    }
+    {
+      name = "color_name___color_name_1.1.4.tgz";
+      path = fetchurl {
+        name = "color_name___color_name_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+      };
+    }
+    {
+      name = "color_string___color_string_1.5.5.tgz";
+      path = fetchurl {
+        name = "color_string___color_string_1.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz";
+        sha1 = "65474a8f0e7439625f3d27a6a19d89fc45223014";
+      };
+    }
+    {
+      name = "color___color_3.0.0.tgz";
+      path = fetchurl {
+        name = "color___color_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz";
+        sha1 = "d920b4328d534a3ac8295d68f7bd4ba6c427be9a";
+      };
+    }
+    {
+      name = "colorette___colorette_1.2.2.tgz";
+      path = fetchurl {
+        name = "colorette___colorette_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
+        sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
+      };
+    }
+    {
+      name = "colornames___colornames_1.1.1.tgz";
+      path = fetchurl {
+        name = "colornames___colornames_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz";
+        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
+      };
+    }
+    {
+      name = "colors___colors_1.0.3.tgz";
+      path = fetchurl {
+        name = "colors___colors_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz";
+        sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+      };
+    }
+    {
+      name = "colors___colors_1.4.0.tgz";
+      path = fetchurl {
+        name = "colors___colors_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz";
+        sha1 = "c50491479d4c1bdaed2c9ced32cf7c7dc2360f78";
+      };
+    }
+    {
+      name = "colorspace___colorspace_1.1.2.tgz";
+      path = fetchurl {
+        name = "colorspace___colorspace_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz";
+        sha1 = "e0128950d082b86a2168580796a0aa5d6c68d8c5";
+      };
+    }
+    {
+      name = "commander___commander_2.9.0.tgz";
+      path = fetchurl {
+        name = "commander___commander_2.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
+        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+      };
+    }
+    {
+      name = "commander___commander_2.20.3.tgz";
+      path = fetchurl {
+        name = "commander___commander_2.20.3.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+      };
+    }
+    {
+      name = "commander___commander_4.1.1.tgz";
+      path = fetchurl {
+        name = "commander___commander_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz";
+        sha1 = "9fd602bd936294e9e9ef46a3f4d6964044b18068";
+      };
+    }
+    {
+      name = "commander___commander_5.1.0.tgz";
+      path = fetchurl {
+        name = "commander___commander_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz";
+        sha1 = "46abbd1652f8e059bddaef99bbdcb2ad9cf179ae";
+      };
+    }
+    {
+      name = "commander___commander_7.2.0.tgz";
+      path = fetchurl {
+        name = "commander___commander_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz";
+        sha1 = "a36cb57d0b501ce108e4d20559a150a391d97ab7";
+      };
+    }
+    {
+      name = "commondir___commondir_1.0.1.tgz";
+      path = fetchurl {
+        name = "commondir___commondir_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    }
+    {
+      name = "component_emitter___component_emitter_1.3.0.tgz";
+      path = fetchurl {
+        name = "component_emitter___component_emitter_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
+      };
+    }
+    {
+      name = "compress_commons___compress_commons_4.1.0.tgz";
+      path = fetchurl {
+        name = "compress_commons___compress_commons_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.0.tgz";
+        sha1 = "25ec7a4528852ccd1d441a7d4353cd0ece11371b";
+      };
+    }
+    {
+      name = "concat_map___concat_map_0.0.1.tgz";
+      path = fetchurl {
+        name = "concat_map___concat_map_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    }
+    {
+      name = "concat_stream___concat_stream_1.6.2.tgz";
+      path = fetchurl {
+        name = "concat_stream___concat_stream_1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+      };
+    }
+    {
+      name = "config_chain___config_chain_1.1.12.tgz";
+      path = fetchurl {
+        name = "config_chain___config_chain_1.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
+        sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+      };
+    }
+    {
+      name = "configstore___configstore_5.0.1.tgz";
+      path = fetchurl {
+        name = "configstore___configstore_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz";
+        sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96";
+      };
+    }
+    {
+      name = "convert_source_map___convert_source_map_1.7.0.tgz";
+      path = fetchurl {
+        name = "convert_source_map___convert_source_map_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
+      };
+    }
+    {
+      name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+      path = fetchurl {
+        name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    }
+    {
+      name = "core_js___core_js_3.11.3.tgz";
+      path = fetchurl {
+        name = "core_js___core_js_3.11.3.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.11.3.tgz";
+        sha1 = "2835b1f4d10f6d0400bf820cfe6fe64ad067dd3f";
+      };
+    }
+    {
+      name = "core_util_is___core_util_is_1.0.2.tgz";
+      path = fetchurl {
+        name = "core_util_is___core_util_is_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    }
+    {
+      name = "crc_32___crc_32_1.2.0.tgz";
+      path = fetchurl {
+        name = "crc_32___crc_32_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz";
+        sha1 = "cb2db6e29b88508e32d9dd0ec1693e7b41a18208";
+      };
+    }
+    {
+      name = "crc32_stream___crc32_stream_4.0.2.tgz";
+      path = fetchurl {
+        name = "crc32_stream___crc32_stream_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz";
+        sha1 = "c922ad22b38395abe9d3870f02fa8134ed709007";
+      };
+    }
+    {
+      name = "crc___crc_3.8.0.tgz";
+      path = fetchurl {
+        name = "crc___crc_3.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz";
+        sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6";
+      };
+    }
+    {
+      name = "create_require___create_require_1.1.1.tgz";
+      path = fetchurl {
+        name = "create_require___create_require_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz";
+        sha1 = "c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333";
+      };
+    }
+    {
+      name = "cross_spawn___cross_spawn_7.0.3.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
+      };
+    }
+    {
+      name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+      path = fetchurl {
+        name = "crypto_random_string___crypto_random_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
+        sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5";
+      };
+    }
+    {
+      name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
+      path = fetchurl {
+        name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz";
+        sha1 = "1c808e63553c283f289f2dd56fcee8f3337bd935";
+      };
+    }
+    {
+      name = "css_value___css_value_0.0.1.tgz";
+      path = fetchurl {
+        name = "css_value___css_value_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz";
+        sha1 = "5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea";
+      };
+    }
+    {
+      name = "debug___debug_4.3.1.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
+        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
+      };
+    }
+    {
+      name = "debug___debug_2.6.9.tgz";
+      path = fetchurl {
+        name = "debug___debug_2.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+      };
+    }
+    {
+      name = "debug___debug_4.3.2.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
+        sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
+      };
+    }
+    {
+      name = "decamelize___decamelize_4.0.0.tgz";
+      path = fetchurl {
+        name = "decamelize___decamelize_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz";
+        sha1 = "aa472d7bf660eb15f3494efd531cab7f2a709837";
+      };
+    }
+    {
+      name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+      path = fetchurl {
+        name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    }
+    {
+      name = "decompress_response___decompress_response_3.3.0.tgz";
+      path = fetchurl {
+        name = "decompress_response___decompress_response_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
+        sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+      };
+    }
+    {
+      name = "decompress_response___decompress_response_6.0.0.tgz";
+      path = fetchurl {
+        name = "decompress_response___decompress_response_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz";
+        sha1 = "ca387612ddb7e104bd16d85aab00d5ecf09c66fc";
+      };
+    }
+    {
+      name = "deep_extend___deep_extend_0.6.0.tgz";
+      path = fetchurl {
+        name = "deep_extend___deep_extend_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+      };
+    }
+    {
+      name = "deepmerge___deepmerge_4.2.2.tgz";
+      path = fetchurl {
+        name = "deepmerge___deepmerge_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz";
+        sha1 = "44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955";
+      };
+    }
+    {
+      name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
+      path = fetchurl {
+        name = "defer_to_connect___defer_to_connect_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
+        sha1 = "331ae050c08dcf789f8c83a7b81f0ed94f4ac591";
+      };
+    }
+    {
+      name = "defer_to_connect___defer_to_connect_2.0.1.tgz";
+      path = fetchurl {
+        name = "defer_to_connect___defer_to_connect_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz";
+        sha1 = "8016bdb4143e4632b77a3449c6236277de520587";
+      };
+    }
+    {
+      name = "define_properties___define_properties_1.1.3.tgz";
+      path = fetchurl {
+        name = "define_properties___define_properties_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+      };
+    }
+    {
+      name = "define_property___define_property_0.2.5.tgz";
+      path = fetchurl {
+        name = "define_property___define_property_0.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    }
+    {
+      name = "define_property___define_property_1.0.0.tgz";
+      path = fetchurl {
+        name = "define_property___define_property_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    }
+    {
+      name = "define_property___define_property_2.0.2.tgz";
+      path = fetchurl {
+        name = "define_property___define_property_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+        sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+      };
+    }
+    {
+      name = "detect_node___detect_node_2.0.5.tgz";
+      path = fetchurl {
+        name = "detect_node___detect_node_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz";
+        sha1 = "9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79";
+      };
+    }
+    {
+      name = "dev_null___dev_null_0.1.1.tgz";
+      path = fetchurl {
+        name = "dev_null___dev_null_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/dev-null/-/dev-null-0.1.1.tgz";
+        sha1 = "5a205ce3c2b2ef77b6238d6ba179eb74c6a0e818";
+      };
+    }
+    {
+      name = "devtools_protocol___devtools_protocol_0.0.818844.tgz";
+      path = fetchurl {
+        name = "devtools_protocol___devtools_protocol_0.0.818844.tgz";
+        url  = "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.818844.tgz";
+        sha1 = "d1947278ec85b53e4c8ca598f607a28fa785ba9e";
+      };
+    }
+    {
+      name = "devtools___devtools_6.12.1.tgz";
+      path = fetchurl {
+        name = "devtools___devtools_6.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/devtools/-/devtools-6.12.1.tgz";
+        sha1 = "f0298c6d6f46d8d3b751dd8fa4a0c7bc76e1268f";
+      };
+    }
+    {
+      name = "diagnostics___diagnostics_1.1.1.tgz";
+      path = fetchurl {
+        name = "diagnostics___diagnostics_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz";
+        sha1 = "cab6ac33df70c9d9a727490ae43ac995a769b22a";
+      };
+    }
+    {
+      name = "diff___diff_5.0.0.tgz";
+      path = fetchurl {
+        name = "diff___diff_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz";
+        sha1 = "7ed6ad76d859d030787ec35855f5b1daf31d852b";
+      };
+    }
+    {
+      name = "diff___diff_4.0.2.tgz";
+      path = fetchurl {
+        name = "diff___diff_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz";
+        sha1 = "60f3aecb89d5fae520c11aa19efc2bb982aade7d";
+      };
+    }
+    {
+      name = "dir_compare___dir_compare_2.4.0.tgz";
+      path = fetchurl {
+        name = "dir_compare___dir_compare_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz";
+        sha1 = "785c41dc5f645b34343a4eafc50b79bac7f11631";
+      };
+    }
+    {
+      name = "dmg_builder___dmg_builder_22.11.5.tgz";
+      path = fetchurl {
+        name = "dmg_builder___dmg_builder_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.5.tgz";
+        sha1 = "0df9843def73a217097956982fa21bb4d6a5836e";
+      };
+    }
+    {
+      name = "dmg_license___dmg_license_1.0.9.tgz";
+      path = fetchurl {
+        name = "dmg_license___dmg_license_1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz";
+        sha1 = "a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f";
+      };
+    }
+    {
+      name = "dot_prop___dot_prop_5.3.0.tgz";
+      path = fetchurl {
+        name = "dot_prop___dot_prop_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz";
+        sha1 = "90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88";
+      };
+    }
+    {
+      name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
+      path = fetchurl {
+        name = "dotenv_expand___dotenv_expand_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz";
+        sha1 = "3fbaf020bfd794884072ea26b1e9791d45a629f0";
+      };
+    }
+    {
+      name = "dotenv___dotenv_9.0.2.tgz";
+      path = fetchurl {
+        name = "dotenv___dotenv_9.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz";
+        sha1 = "dacc20160935a37dea6364aa1bef819fb9b6ab05";
+      };
+    }
+    {
+      name = "duplexer3___duplexer3_0.1.4.tgz";
+      path = fetchurl {
+        name = "duplexer3___duplexer3_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
+        sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+      };
+    }
+    {
+      name = "edge_paths___edge_paths_2.2.1.tgz";
+      path = fetchurl {
+        name = "edge_paths___edge_paths_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/edge-paths/-/edge-paths-2.2.1.tgz";
+        sha1 = "d2d91513225c06514aeac9843bfce546abbf4391";
+      };
+    }
+    {
+      name = "ejs___ejs_3.1.6.tgz";
+      path = fetchurl {
+        name = "ejs___ejs_3.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz";
+        sha1 = "5bfd0a0689743bb5268b3550cceeebbc1702822a";
+      };
+    }
+    {
+      name = "electron_builder___electron_builder_22.11.5.tgz";
+      path = fetchurl {
+        name = "electron_builder___electron_builder_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.5.tgz";
+        sha1 = "914d8183e1bab7cda43ef1d67fc3d17314c7e242";
+      };
+    }
+    {
+      name = "electron_chromedriver___electron_chromedriver_12.0.0.tgz";
+      path = fetchurl {
+        name = "electron_chromedriver___electron_chromedriver_12.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-chromedriver/-/electron-chromedriver-12.0.0.tgz";
+        sha1 = "55bdc451b938b384642d613a05eadacb1fe476ee";
+      };
+    }
+    {
+      name = "electron_devtools_installer___electron_devtools_installer_3.2.0.tgz";
+      path = fetchurl {
+        name = "electron_devtools_installer___electron_devtools_installer_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-3.2.0.tgz";
+        sha1 = "acc48d24eb7033fe5af284a19667e73b78d406d0";
+      };
+    }
+    {
+      name = "electron_publish___electron_publish_22.11.5.tgz";
+      path = fetchurl {
+        name = "electron_publish___electron_publish_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.5.tgz";
+        sha1 = "2fcd3280c4267e70e4aa15003c9b7dc34923320e";
+      };
+    }
+    {
+      name = "electron_to_chromium___electron_to_chromium_1.3.727.tgz";
+      path = fetchurl {
+        name = "electron_to_chromium___electron_to_chromium_1.3.727.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz";
+        sha1 = "857e310ca00f0b75da4e1db6ff0e073cc4a91ddf";
+      };
+    }
+    {
+      name = "electron___electron_12.0.9.tgz";
+      path = fetchurl {
+        name = "electron___electron_12.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/electron/-/electron-12.0.9.tgz";
+        sha1 = "d582afa8f6fc0c429606f0961a4c89b376994823";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_7.0.3.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_8.0.0.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+      };
+    }
+    {
+      name = "emojis_list___emojis_list_3.0.0.tgz";
+      path = fetchurl {
+        name = "emojis_list___emojis_list_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz";
+        sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78";
+      };
+    }
+    {
+      name = "enabled___enabled_1.0.2.tgz";
+      path = fetchurl {
+        name = "enabled___enabled_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz";
+        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+      };
+    }
+    {
+      name = "encodeurl___encodeurl_1.0.2.tgz";
+      path = fetchurl {
+        name = "encodeurl___encodeurl_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    }
+    {
+      name = "end_of_stream___end_of_stream_1.4.4.tgz";
+      path = fetchurl {
+        name = "end_of_stream___end_of_stream_1.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
+      };
+    }
+    {
+      name = "enhanced_resolve___enhanced_resolve_5.8.0.tgz";
+      path = fetchurl {
+        name = "enhanced_resolve___enhanced_resolve_5.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz";
+        sha1 = "d9deae58f9d3773b6a111a5a46831da5be5c9ac0";
+      };
+    }
+    {
+      name = "env_paths___env_paths_2.2.1.tgz";
+      path = fetchurl {
+        name = "env_paths___env_paths_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz";
+        sha1 = "420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2";
+      };
+    }
+    {
+      name = "env_variable___env_variable_0.0.6.tgz";
+      path = fetchurl {
+        name = "env_variable___env_variable_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz";
+        sha1 = "74ab20b3786c545b62b4a4813ab8cf22726c9808";
+      };
+    }
+    {
+      name = "envinfo___envinfo_7.8.1.tgz";
+      path = fetchurl {
+        name = "envinfo___envinfo_7.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz";
+        sha1 = "06377e3e5f4d379fea7ac592d5ad8927e0c4d475";
+      };
+    }
+    {
+      name = "es_module_lexer___es_module_lexer_0.4.1.tgz";
+      path = fetchurl {
+        name = "es_module_lexer___es_module_lexer_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz";
+        sha1 = "dda8c6a14d8f340a24e34331e0fab0cb50438e0e";
+      };
+    }
+    {
+      name = "es6_error___es6_error_4.1.1.tgz";
+      path = fetchurl {
+        name = "es6_error___es6_error_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz";
+        sha1 = "9e3af407459deed47e9a91f9b885a84eb05c561d";
+      };
+    }
+    {
+      name = "escalade___escalade_3.1.1.tgz";
+      path = fetchurl {
+        name = "escalade___escalade_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
+        sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
+      };
+    }
+    {
+      name = "escape_goat___escape_goat_2.1.1.tgz";
+      path = fetchurl {
+        name = "escape_goat___escape_goat_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz";
+        sha1 = "1b2dc77003676c457ec760b2dc68edb648188675";
+      };
+    }
+    {
+      name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
+      path = fetchurl {
+        name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
+      };
+    }
+    {
+      name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+      path = fetchurl {
+        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    }
+    {
+      name = "eslint_scope___eslint_scope_5.1.1.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
+      };
+    }
+    {
+      name = "esrecurse___esrecurse_4.3.0.tgz";
+      path = fetchurl {
+        name = "esrecurse___esrecurse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
+      };
+    }
+    {
+      name = "estraverse___estraverse_4.3.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
+        sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+      };
+    }
+    {
+      name = "estraverse___estraverse_5.2.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+      };
+    }
+    {
+      name = "events___events_3.3.0.tgz";
+      path = fetchurl {
+        name = "events___events_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz";
+        sha1 = "31a95ad0a924e2d2c419a813aeb2c4e878ea7400";
+      };
+    }
+    {
+      name = "execa___execa_5.0.0.tgz";
+      path = fetchurl {
+        name = "execa___execa_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz";
+        sha1 = "4029b0007998a841fbd1032e5f4de86a3c1e3376";
+      };
+    }
+    {
+      name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz";
+      path = fetchurl {
+        name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz";
+        sha1 = "0bdd92e87d5285d267daa8171d0eb06159689692";
+      };
+    }
+    {
+      name = "expand_brackets___expand_brackets_2.1.4.tgz";
+      path = fetchurl {
+        name = "expand_brackets___expand_brackets_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    }
+    {
+      name = "extend_shallow___extend_shallow_2.0.1.tgz";
+      path = fetchurl {
+        name = "extend_shallow___extend_shallow_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    }
+    {
+      name = "extend_shallow___extend_shallow_3.0.2.tgz";
+      path = fetchurl {
+        name = "extend_shallow___extend_shallow_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    }
+    {
+      name = "extglob___extglob_2.0.4.tgz";
+      path = fetchurl {
+        name = "extglob___extglob_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+        sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+      };
+    }
+    {
+      name = "extract_zip___extract_zip_1.7.0.tgz";
+      path = fetchurl {
+        name = "extract_zip___extract_zip_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz";
+        sha1 = "556cc3ae9df7f452c493a0cfb51cc30277940927";
+      };
+    }
+    {
+      name = "extract_zip___extract_zip_2.0.1.tgz";
+      path = fetchurl {
+        name = "extract_zip___extract_zip_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz";
+        sha1 = "663dca56fe46df890d5f131ef4a06d22bb8ba13a";
+      };
+    }
+    {
+      name = "extsprintf___extsprintf_1.4.0.tgz";
+      path = fetchurl {
+        name = "extsprintf___extsprintf_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+      };
+    }
+    {
+      name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+      path = fetchurl {
+        name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+      };
+    }
+    {
+      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+      path = fetchurl {
+        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
+      };
+    }
+    {
+      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+      path = fetchurl {
+        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
+      };
+    }
+    {
+      name = "fast_safe_stringify___fast_safe_stringify_2.0.7.tgz";
+      path = fetchurl {
+        name = "fast_safe_stringify___fast_safe_stringify_2.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
+        sha1 = "124aa885899261f68aedb42a7c080de9da608743";
+      };
+    }
+    {
+      name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+      path = fetchurl {
+        name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha1 = "9990f7d3a88cc5a9ffd1f1745745251700d497e2";
+      };
+    }
+    {
+      name = "fd_slicer___fd_slicer_1.1.0.tgz";
+      path = fetchurl {
+        name = "fd_slicer___fd_slicer_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz";
+        sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
+      };
+    }
+    {
+      name = "feather_icons___feather_icons_4.28.0.tgz";
+      path = fetchurl {
+        name = "feather_icons___feather_icons_4.28.0.tgz";
+        url  = "https://registry.yarnpkg.com/feather-icons/-/feather-icons-4.28.0.tgz";
+        sha1 = "e1892a401fe12c4559291770ff6e68b0168e760f";
+      };
+    }
+    {
+      name = "fecha___fecha_2.3.3.tgz";
+      path = fetchurl {
+        name = "fecha___fecha_2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz";
+        sha1 = "948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd";
+      };
+    }
+    {
+      name = "filelist___filelist_1.0.2.tgz";
+      path = fetchurl {
+        name = "filelist___filelist_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz";
+        sha1 = "80202f21462d4d1c2e214119b1807c1bc0380e5b";
+      };
+    }
+    {
+      name = "fill_keys___fill_keys_1.0.2.tgz";
+      path = fetchurl {
+        name = "fill_keys___fill_keys_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz";
+        sha1 = "9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20";
+      };
+    }
+    {
+      name = "fill_range___fill_range_4.0.0.tgz";
+      path = fetchurl {
+        name = "fill_range___fill_range_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    }
+    {
+      name = "fill_range___fill_range_7.0.1.tgz";
+      path = fetchurl {
+        name = "fill_range___fill_range_7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
+        sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
+      };
+    }
+    {
+      name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
+      path = fetchurl {
+        name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha1 = "89b33fad4a4670daa94f855f7fbe31d6d84fe880";
+      };
+    }
+    {
+      name = "find_up___find_up_5.0.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz";
+        sha1 = "4c92819ecb7083561e4f4a240a86be5198f536fc";
+      };
+    }
+    {
+      name = "find_up___find_up_4.1.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
+        sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
+      };
+    }
+    {
+      name = "flat___flat_5.0.2.tgz";
+      path = fetchurl {
+        name = "flat___flat_5.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz";
+        sha1 = "8ca6fe332069ffa9d324c327198c598259ceb241";
+      };
+    }
+    {
+      name = "for_in___for_in_1.0.2.tgz";
+      path = fetchurl {
+        name = "for_in___for_in_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    }
+    {
+      name = "fragment_cache___fragment_cache_0.2.1.tgz";
+      path = fetchurl {
+        name = "fragment_cache___fragment_cache_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    }
+    {
+      name = "fs_constants___fs_constants_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs_constants___fs_constants_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
+      };
+    }
+    {
+      name = "fs_extra___fs_extra_10.0.0.tgz";
+      path = fetchurl {
+        name = "fs_extra___fs_extra_10.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz";
+        sha1 = "9ff61b655dde53fb34a82df84bb214ce802e17c1";
+      };
+    }
+    {
+      name = "fs_extra___fs_extra_8.1.0.tgz";
+      path = fetchurl {
+        name = "fs_extra___fs_extra_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz";
+        sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
+      };
+    }
+    {
+      name = "fs_extra___fs_extra_9.1.0.tgz";
+      path = fetchurl {
+        name = "fs_extra___fs_extra_9.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz";
+        sha1 = "5954460c764a8da2094ba3554bf839e6b9a7c86d";
+      };
+    }
+    {
+      name = "fs_readdir_recursive___fs_readdir_recursive_1.1.0.tgz";
+      path = fetchurl {
+        name = "fs_readdir_recursive___fs_readdir_recursive_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz";
+        sha1 = "e32fc030a2ccee44a6b5371308da54be0b397d27";
+      };
+    }
+    {
+      name = "fs.realpath___fs.realpath_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs.realpath___fs.realpath_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    }
+    {
+      name = "fsevents___fsevents_2.3.2.tgz";
+      path = fetchurl {
+        name = "fsevents___fsevents_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
+        sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
+      };
+    }
+    {
+      name = "function_bind___function_bind_1.1.1.tgz";
+      path = fetchurl {
+        name = "function_bind___function_bind_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+      };
+    }
+    {
+      name = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
+      path = fetchurl {
+        name = "fuzzaldrin_plus___fuzzaldrin_plus_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/fuzzaldrin-plus/-/fuzzaldrin-plus-0.6.0.tgz";
+        sha1 = "832f6489fbe876769459599c914a670ec22947ee";
+      };
+    }
+    {
+      name = "gensync___gensync_1.0.0_beta.2.tgz";
+      path = fetchurl {
+        name = "gensync___gensync_1.0.0_beta.2.tgz";
+        url  = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz";
+        sha1 = "32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0";
+      };
+    }
+    {
+      name = "get_caller_file___get_caller_file_2.0.5.tgz";
+      path = fetchurl {
+        name = "get_caller_file___get_caller_file_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
+      };
+    }
+    {
+      name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+      path = fetchurl {
+        name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
+      };
+    }
+    {
+      name = "get_port___get_port_5.1.1.tgz";
+      path = fetchurl {
+        name = "get_port___get_port_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz";
+        sha1 = "0469ed07563479de6efb986baf053dcd7d4e3193";
+      };
+    }
+    {
+      name = "get_stream___get_stream_4.1.0.tgz";
+      path = fetchurl {
+        name = "get_stream___get_stream_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
+        sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+      };
+    }
+    {
+      name = "get_stream___get_stream_5.2.0.tgz";
+      path = fetchurl {
+        name = "get_stream___get_stream_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz";
+        sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3";
+      };
+    }
+    {
+      name = "get_stream___get_stream_6.0.1.tgz";
+      path = fetchurl {
+        name = "get_stream___get_stream_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz";
+        sha1 = "a262d8eef67aced57c2852ad6167526a43cbf7b7";
+      };
+    }
+    {
+      name = "get_value___get_value_2.0.6.tgz";
+      path = fetchurl {
+        name = "get_value___get_value_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    }
+    {
+      name = "glob_parent___glob_parent_3.1.0.tgz";
+      path = fetchurl {
+        name = "glob_parent___glob_parent_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    }
+    {
+      name = "glob_parent___glob_parent_5.1.2.tgz";
+      path = fetchurl {
+        name = "glob_parent___glob_parent_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
+      };
+    }
+    {
+      name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
+      path = fetchurl {
+        name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+        sha1 = "c75297087c851b9a578bd217dd59a92f59fe546e";
+      };
+    }
+    {
+      name = "glob___glob_7.1.6.tgz";
+      path = fetchurl {
+        name = "glob___glob_7.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+      };
+    }
+    {
+      name = "global_agent___global_agent_2.2.0.tgz";
+      path = fetchurl {
+        name = "global_agent___global_agent_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz";
+        sha1 = "566331b0646e6bf79429a16877685c4a1fbf76dc";
+      };
+    }
+    {
+      name = "global_dirs___global_dirs_3.0.0.tgz";
+      path = fetchurl {
+        name = "global_dirs___global_dirs_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz";
+        sha1 = "70a76fe84ea315ab37b1f5576cbde7d48ef72686";
+      };
+    }
+    {
+      name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz";
+      path = fetchurl {
+        name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz";
+        sha1 = "d03b5102dfde3a69914f5ee7d86761ca35d57d8f";
+      };
+    }
+    {
+      name = "globals___globals_11.12.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_11.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
+        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
+      };
+    }
+    {
+      name = "globalthis___globalthis_1.0.2.tgz";
+      path = fetchurl {
+        name = "globalthis___globalthis_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz";
+        sha1 = "2a235d34f4d8036219f7e34929b5de9e18166b8b";
+      };
+    }
+    {
+      name = "got___got_11.8.2.tgz";
+      path = fetchurl {
+        name = "got___got_11.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz";
+        sha1 = "7abb3959ea28c31f3576f1576c1effce23f33599";
+      };
+    }
+    {
+      name = "got___got_9.6.0.tgz";
+      path = fetchurl {
+        name = "got___got_9.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz";
+        sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85";
+      };
+    }
+    {
+      name = "graceful_fs___graceful_fs_4.2.6.tgz";
+      path = fetchurl {
+        name = "graceful_fs___graceful_fs_4.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
+      };
+    }
+    {
+      name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+      path = fetchurl {
+        name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+      };
+    }
+    {
+      name = "grapheme_splitter___grapheme_splitter_1.0.4.tgz";
+      path = fetchurl {
+        name = "grapheme_splitter___grapheme_splitter_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz";
+        sha1 = "9cf3a665c6247479896834af35cf1dbb4400767e";
+      };
+    }
+    {
+      name = "growl___growl_1.10.5.tgz";
+      path = fetchurl {
+        name = "growl___growl_1.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz";
+        sha1 = "f2735dc2283674fa67478b10181059355c369e5e";
+      };
+    }
+    {
+      name = "has_flag___has_flag_3.0.0.tgz";
+      path = fetchurl {
+        name = "has_flag___has_flag_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    }
+    {
+      name = "has_flag___has_flag_4.0.0.tgz";
+      path = fetchurl {
+        name = "has_flag___has_flag_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
+        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
+      };
+    }
+    {
+      name = "has_symbols___has_symbols_1.0.2.tgz";
+      path = fetchurl {
+        name = "has_symbols___has_symbols_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha1 = "165d3070c00309752a1236a479331e3ac56f1423";
+      };
+    }
+    {
+      name = "has_value___has_value_0.3.1.tgz";
+      path = fetchurl {
+        name = "has_value___has_value_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    }
+    {
+      name = "has_value___has_value_1.0.0.tgz";
+      path = fetchurl {
+        name = "has_value___has_value_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    }
+    {
+      name = "has_values___has_values_0.1.4.tgz";
+      path = fetchurl {
+        name = "has_values___has_values_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    }
+    {
+      name = "has_values___has_values_1.0.0.tgz";
+      path = fetchurl {
+        name = "has_values___has_values_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    }
+    {
+      name = "has_yarn___has_yarn_2.1.0.tgz";
+      path = fetchurl {
+        name = "has_yarn___has_yarn_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz";
+        sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77";
+      };
+    }
+    {
+      name = "has___has_1.0.3.tgz";
+      path = fetchurl {
+        name = "has___has_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+      };
+    }
+    {
+      name = "he___he_1.2.0.tgz";
+      path = fetchurl {
+        name = "he___he_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
+        sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
+      };
+    }
+    {
+      name = "highlight.js___highlight.js_10.7.2.tgz";
+      path = fetchurl {
+        name = "highlight.js___highlight.js_10.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz";
+        sha1 = "89319b861edc66c48854ed1e6da21ea89f847360";
+      };
+    }
+    {
+      name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz";
+        sha1 = "5e425507eede4fea846b7262f0838456c4209961";
+      };
+    }
+    {
+      name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
+      path = fetchurl {
+        name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
+        sha1 = "49e91c5cbf36c9b94bcfcd71c23d5249ec74e390";
+      };
+    }
+    {
+      name = "http2_wrapper___http2_wrapper_1.0.3.tgz";
+      path = fetchurl {
+        name = "http2_wrapper___http2_wrapper_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz";
+        sha1 = "b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d";
+      };
+    }
+    {
+      name = "https_proxy_agent___https_proxy_agent_4.0.0.tgz";
+      path = fetchurl {
+        name = "https_proxy_agent___https_proxy_agent_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz";
+        sha1 = "702b71fb5520a132a66de1f67541d9e62154d82b";
+      };
+    }
+    {
+      name = "human_signals___human_signals_2.1.0.tgz";
+      path = fetchurl {
+        name = "human_signals___human_signals_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz";
+        sha1 = "dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0";
+      };
+    }
+    {
+      name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz";
+      path = fetchurl {
+        name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz";
+        sha1 = "27c135470237f6f8d13462fa1f5eaf250523c29a";
+      };
+    }
+    {
+      name = "iconv_lite___iconv_lite_0.6.2.tgz";
+      path = fetchurl {
+        name = "iconv_lite___iconv_lite_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz";
+        sha1 = "ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01";
+      };
+    }
+    {
+      name = "ieee754___ieee754_1.2.1.tgz";
+      path = fetchurl {
+        name = "ieee754___ieee754_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
+        sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
+      };
+    }
+    {
+      name = "immediate___immediate_3.0.6.tgz";
+      path = fetchurl {
+        name = "immediate___immediate_3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz";
+        sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
+      };
+    }
+    {
+      name = "import_lazy___import_lazy_2.1.0.tgz";
+      path = fetchurl {
+        name = "import_lazy___import_lazy_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
+        sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+      };
+    }
+    {
+      name = "import_local___import_local_3.0.2.tgz";
+      path = fetchurl {
+        name = "import_local___import_local_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz";
+        sha1 = "a8cfd0431d1de4a2199703d003e3e62364fa6db6";
+      };
+    }
+    {
+      name = "imurmurhash___imurmurhash_0.1.4.tgz";
+      path = fetchurl {
+        name = "imurmurhash___imurmurhash_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    }
+    {
+      name = "inferno_shared___inferno_shared_7.4.8.tgz";
+      path = fetchurl {
+        name = "inferno_shared___inferno_shared_7.4.8.tgz";
+        url  = "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-7.4.8.tgz";
+        sha1 = "2b554a36683b770339008749096d9704846dd337";
+      };
+    }
+    {
+      name = "inferno_vnode_flags___inferno_vnode_flags_7.4.8.tgz";
+      path = fetchurl {
+        name = "inferno_vnode_flags___inferno_vnode_flags_7.4.8.tgz";
+        url  = "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-7.4.8.tgz";
+        sha1 = "275d70e3c8b2b3f4eb56041cc9b8c832ce1fb26d";
+      };
+    }
+    {
+      name = "inferno___inferno_7.4.8.tgz";
+      path = fetchurl {
+        name = "inferno___inferno_7.4.8.tgz";
+        url  = "https://registry.yarnpkg.com/inferno/-/inferno-7.4.8.tgz";
+        sha1 = "0d5504753e79903b0e4bbeff76fc11fd0b9ffe92";
+      };
+    }
+    {
+      name = "inflight___inflight_1.0.6.tgz";
+      path = fetchurl {
+        name = "inflight___inflight_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.4.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+      };
+    }
+    {
+      name = "ini___ini_2.0.0.tgz";
+      path = fetchurl {
+        name = "ini___ini_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz";
+        sha1 = "e5fd556ecdd5726be978fa1001862eacb0a94bc5";
+      };
+    }
+    {
+      name = "ini___ini_1.3.8.tgz";
+      path = fetchurl {
+        name = "ini___ini_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
+        sha1 = "a29da425b48806f34767a4efce397269af28432c";
+      };
+    }
+    {
+      name = "interpret___interpret_2.2.0.tgz";
+      path = fetchurl {
+        name = "interpret___interpret_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz";
+        sha1 = "1a78a0b5965c40a5416d007ad6f50ad27c417df9";
+      };
+    }
+    {
+      name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+      path = fetchurl {
+        name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    }
+    {
+      name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+      };
+    }
+    {
+      name = "is_arrayish___is_arrayish_0.3.2.tgz";
+      path = fetchurl {
+        name = "is_arrayish___is_arrayish_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03";
+      };
+    }
+    {
+      name = "is_binary_path___is_binary_path_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_binary_path___is_binary_path_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    }
+    {
+      name = "is_binary_path___is_binary_path_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_binary_path___is_binary_path_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
+      };
+    }
+    {
+      name = "is_buffer___is_buffer_1.1.6.tgz";
+      path = fetchurl {
+        name = "is_buffer___is_buffer_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+      };
+    }
+    {
+      name = "is_ci___is_ci_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_ci___is_ci_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
+        sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
+      };
+    }
+    {
+      name = "is_ci___is_ci_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_ci___is_ci_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz";
+        sha1 = "c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994";
+      };
+    }
+    {
+      name = "is_core_module___is_core_module_2.3.0.tgz";
+      path = fetchurl {
+        name = "is_core_module___is_core_module_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz";
+        sha1 = "d341652e3408bca69c4671b79a0954a3d349f887";
+      };
+    }
+    {
+      name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+      path = fetchurl {
+        name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    }
+    {
+      name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+      };
+    }
+    {
+      name = "is_descriptor___is_descriptor_0.1.6.tgz";
+      path = fetchurl {
+        name = "is_descriptor___is_descriptor_0.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+      };
+    }
+    {
+      name = "is_descriptor___is_descriptor_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_descriptor___is_descriptor_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+      };
+    }
+    {
+      name = "is_docker___is_docker_2.2.1.tgz";
+      path = fetchurl {
+        name = "is_docker___is_docker_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz";
+        sha1 = "33eeabe23cfe86f14bde4408a02c0cfb853acdaa";
+      };
+    }
+    {
+      name = "is_extendable___is_extendable_0.1.1.tgz";
+      path = fetchurl {
+        name = "is_extendable___is_extendable_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    }
+    {
+      name = "is_extendable___is_extendable_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_extendable___is_extendable_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+      };
+    }
+    {
+      name = "is_extglob___is_extglob_2.1.1.tgz";
+      path = fetchurl {
+        name = "is_extglob___is_extglob_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+      };
+    }
+    {
+      name = "is_glob___is_glob_3.1.0.tgz";
+      path = fetchurl {
+        name = "is_glob___is_glob_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    }
+    {
+      name = "is_glob___is_glob_4.0.1.tgz";
+      path = fetchurl {
+        name = "is_glob___is_glob_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+      };
+    }
+    {
+      name = "is_installed_globally___is_installed_globally_0.4.0.tgz";
+      path = fetchurl {
+        name = "is_installed_globally___is_installed_globally_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz";
+        sha1 = "9a0fd407949c30f86eb6959ef1b7994ed0b7b520";
+      };
+    }
+    {
+      name = "is_npm___is_npm_5.0.0.tgz";
+      path = fetchurl {
+        name = "is_npm___is_npm_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz";
+        sha1 = "43e8d65cc56e1b67f8d47262cf667099193f45a8";
+      };
+    }
+    {
+      name = "is_number___is_number_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_number___is_number_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    }
+    {
+      name = "is_number___is_number_7.0.0.tgz";
+      path = fetchurl {
+        name = "is_number___is_number_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
+        sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
+      };
+    }
+    {
+      name = "is_obj___is_obj_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_obj___is_obj_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz";
+        sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982";
+      };
+    }
+    {
+      name = "is_object___is_object_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_object___is_object_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz";
+        sha1 = "a56552e1c665c9e950b4a025461da87e72f86fcf";
+      };
+    }
+    {
+      name = "is_path_inside___is_path_inside_3.0.3.tgz";
+      path = fetchurl {
+        name = "is_path_inside___is_path_inside_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz";
+        sha1 = "d231362e53a07ff2b0e0ea7fed049161ffd16283";
+      };
+    }
+    {
+      name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha1 = "45e42e37fccf1f40da8e5f76ee21515840c09287";
+      };
+    }
+    {
+      name = "is_plain_object___is_plain_object_2.0.4.tgz";
+      path = fetchurl {
+        name = "is_plain_object___is_plain_object_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+      };
+    }
+    {
+      name = "is_stream___is_stream_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_stream___is_stream_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+      };
+    }
+    {
+      name = "is_stream___is_stream_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_stream___is_stream_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz";
+        sha1 = "bde9c32680d6fae04129d6ac9d921ce7815f78e3";
+      };
+    }
+    {
+      name = "is_typedarray___is_typedarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_typedarray___is_typedarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    }
+    {
+      name = "is_windows___is_windows_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_windows___is_windows_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+      };
+    }
+    {
+      name = "is_wsl___is_wsl_2.2.0.tgz";
+      path = fetchurl {
+        name = "is_wsl___is_wsl_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz";
+        sha1 = "74a4c76e77ca9fd3f932f290c17ea326cd157271";
+      };
+    }
+    {
+      name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+      path = fetchurl {
+        name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz";
+        sha1 = "d502d3382590ea3004893746754c89139973e232";
+      };
+    }
+    {
+      name = "isarray___isarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    }
+    {
+      name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
+      path = fetchurl {
+        name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz";
+        sha1 = "5d34b94865bd4946633ecc78a026fc76c5b11fcf";
+      };
+    }
+    {
+      name = "isexe___isexe_2.0.0.tgz";
+      path = fetchurl {
+        name = "isexe___isexe_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    }
+    {
+      name = "isobject___isobject_2.1.0.tgz";
+      path = fetchurl {
+        name = "isobject___isobject_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    }
+    {
+      name = "isobject___isobject_3.0.1.tgz";
+      path = fetchurl {
+        name = "isobject___isobject_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    }
+    {
+      name = "jake___jake_10.8.2.tgz";
+      path = fetchurl {
+        name = "jake___jake_10.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
+        sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
+      };
+    }
+    {
+      name = "jest_worker___jest_worker_26.6.2.tgz";
+      path = fetchurl {
+        name = "jest_worker___jest_worker_26.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz";
+        sha1 = "7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed";
+      };
+    }
+    {
+      name = "js_tokens___js_tokens_4.0.0.tgz";
+      path = fetchurl {
+        name = "js_tokens___js_tokens_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_4.0.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz";
+        sha1 = "f426bc0ff4b4051926cd588c71113183409a121f";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_4.1.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha1 = "c1fb65f8f5017901cdd2c951864ba18458a10602";
+      };
+    }
+    {
+      name = "jsesc___jsesc_2.5.2.tgz";
+      path = fetchurl {
+        name = "jsesc___jsesc_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+        sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+      };
+    }
+    {
+      name = "json_buffer___json_buffer_3.0.0.tgz";
+      path = fetchurl {
+        name = "json_buffer___json_buffer_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz";
+        sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
+      };
+    }
+    {
+      name = "json_buffer___json_buffer_3.0.1.tgz";
+      path = fetchurl {
+        name = "json_buffer___json_buffer_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz";
+        sha1 = "9338802a30d3b6605fbe0613e094008ca8c05a13";
+      };
+    }
+    {
+      name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+      path = fetchurl {
+        name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+      };
+    }
+    {
+      name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+      };
+    }
+    {
+      name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+      path = fetchurl {
+        name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    }
+    {
+      name = "json5___json5_1.0.1.tgz";
+      path = fetchurl {
+        name = "json5___json5_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+      };
+    }
+    {
+      name = "json5___json5_2.2.0.tgz";
+      path = fetchurl {
+        name = "json5___json5_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz";
+        sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3";
+      };
+    }
+    {
+      name = "jsonfile___jsonfile_4.0.0.tgz";
+      path = fetchurl {
+        name = "jsonfile___jsonfile_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+      };
+    }
+    {
+      name = "jsonfile___jsonfile_6.1.0.tgz";
+      path = fetchurl {
+        name = "jsonfile___jsonfile_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz";
+        sha1 = "bc55b2634793c679ec6403094eb13698a6ec0aae";
+      };
+    }
+    {
+      name = "jszip___jszip_3.6.0.tgz";
+      path = fetchurl {
+        name = "jszip___jszip_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz";
+        sha1 = "839b72812e3f97819cc13ac4134ffced95dd6af9";
+      };
+    }
+    {
+      name = "keyv___keyv_3.1.0.tgz";
+      path = fetchurl {
+        name = "keyv___keyv_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz";
+        sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9";
+      };
+    }
+    {
+      name = "keyv___keyv_4.0.3.tgz";
+      path = fetchurl {
+        name = "keyv___keyv_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz";
+        sha1 = "4f3aa98de254803cafcd2896734108daa35e4254";
+      };
+    }
+    {
+      name = "kind_of___kind_of_3.2.2.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    }
+    {
+      name = "kind_of___kind_of_4.0.0.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    }
+    {
+      name = "kind_of___kind_of_5.1.0.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+        sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+      };
+    }
+    {
+      name = "kind_of___kind_of_6.0.3.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_6.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
+        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
+      };
+    }
+    {
+      name = "kuler___kuler_1.0.1.tgz";
+      path = fetchurl {
+        name = "kuler___kuler_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz";
+        sha1 = "ef7c784f36c9fb6e16dd3150d152677b2b0228a6";
+      };
+    }
+    {
+      name = "latest_version___latest_version_5.1.0.tgz";
+      path = fetchurl {
+        name = "latest_version___latest_version_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz";
+        sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face";
+      };
+    }
+    {
+      name = "lazy_val___lazy_val_1.0.5.tgz";
+      path = fetchurl {
+        name = "lazy_val___lazy_val_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz";
+        sha1 = "6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d";
+      };
+    }
+    {
+      name = "lazystream___lazystream_1.0.0.tgz";
+      path = fetchurl {
+        name = "lazystream___lazystream_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz";
+        sha1 = "f6995fe0f820392f61396be89462407bb77168e4";
+      };
+    }
+    {
+      name = "lie___lie_3.3.0.tgz";
+      path = fetchurl {
+        name = "lie___lie_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz";
+        sha1 = "dcf82dee545f46074daf200c7c1c5a08e0f40f6a";
+      };
+    }
+    {
+      name = "lighthouse_logger___lighthouse_logger_1.2.0.tgz";
+      path = fetchurl {
+        name = "lighthouse_logger___lighthouse_logger_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz";
+        sha1 = "b76d56935e9c137e86a04741f6bb9b2776e886ca";
+      };
+    }
+    {
+      name = "loader_runner___loader_runner_4.2.0.tgz";
+      path = fetchurl {
+        name = "loader_runner___loader_runner_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz";
+        sha1 = "d7022380d66d14c5fb1d496b89864ebcfd478384";
+      };
+    }
+    {
+      name = "loader_utils___loader_utils_1.4.0.tgz";
+      path = fetchurl {
+        name = "loader_utils___loader_utils_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz";
+        sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613";
+      };
+    }
+    {
+      name = "locate_path___locate_path_5.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
+        sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
+      };
+    }
+    {
+      name = "locate_path___locate_path_6.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz";
+        sha1 = "55321eb309febbc59c4801d931a72452a681d286";
+      };
+    }
+    {
+      name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    }
+    {
+      name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+        sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+      };
+    }
+    {
+      name = "lodash.difference___lodash.difference_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.difference___lodash.difference_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz";
+        sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
+      };
+    }
+    {
+      name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+      };
+    }
+    {
+      name = "lodash.isobject___lodash.isobject_3.0.2.tgz";
+      path = fetchurl {
+        name = "lodash.isobject___lodash.isobject_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz";
+        sha1 = "3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d";
+      };
+    }
+    {
+      name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+      path = fetchurl {
+        name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+        sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+      };
+    }
+    {
+      name = "lodash.merge___lodash.merge_4.6.2.tgz";
+      path = fetchurl {
+        name = "lodash.merge___lodash.merge_4.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz";
+        sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a";
+      };
+    }
+    {
+      name = "lodash.omit___lodash.omit_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.omit___lodash.omit_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz";
+        sha1 = "6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60";
+      };
+    }
+    {
+      name = "lodash.union___lodash.union_4.6.0.tgz";
+      path = fetchurl {
+        name = "lodash.union___lodash.union_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz";
+        sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88";
+      };
+    }
+    {
+      name = "lodash.zip___lodash.zip_4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.zip___lodash.zip_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz";
+        sha1 = "ec6662e4896408ed4ab6c542a3990b72cc080020";
+      };
+    }
+    {
+      name = "lodash___lodash_4.17.21.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
+      };
+    }
+    {
+      name = "log_symbols___log_symbols_4.0.0.tgz";
+      path = fetchurl {
+        name = "log_symbols___log_symbols_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha1 = "69b3cc46d20f448eccdb75ea1fa733d9e821c920";
+      };
+    }
+    {
+      name = "logform___logform_1.10.0.tgz";
+      path = fetchurl {
+        name = "logform___logform_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/logform/-/logform-1.10.0.tgz";
+        sha1 = "c9d5598714c92b546e23f4e78147c40f1e02012e";
+      };
+    }
+    {
+      name = "loglevel_plugin_prefix___loglevel_plugin_prefix_0.8.4.tgz";
+      path = fetchurl {
+        name = "loglevel_plugin_prefix___loglevel_plugin_prefix_0.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz";
+        sha1 = "2fe0e05f1a820317d98d8c123e634c1bd84ff644";
+      };
+    }
+    {
+      name = "loglevel___loglevel_1.7.1.tgz";
+      path = fetchurl {
+        name = "loglevel___loglevel_1.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz";
+        sha1 = "005fde2f5e6e47068f935ff28573e125ef72f197";
+      };
+    }
+    {
+      name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+      path = fetchurl {
+        name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+        sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
+      };
+    }
+    {
+      name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+      path = fetchurl {
+        name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+        sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479";
+      };
+    }
+    {
+      name = "lru_cache___lru_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
+      };
+    }
+    {
+      name = "make_dir___make_dir_2.1.0.tgz";
+      path = fetchurl {
+        name = "make_dir___make_dir_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
+        sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
+      };
+    }
+    {
+      name = "make_dir___make_dir_3.1.0.tgz";
+      path = fetchurl {
+        name = "make_dir___make_dir_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
+        sha1 = "415e967046b3a7f1d185277d84aa58203726a13f";
+      };
+    }
+    {
+      name = "make_error___make_error_1.3.6.tgz";
+      path = fetchurl {
+        name = "make_error___make_error_1.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz";
+        sha1 = "2eb2e37ea9b67c4891f684a1394799af484cf7a2";
+      };
+    }
+    {
+      name = "map_cache___map_cache_0.2.2.tgz";
+      path = fetchurl {
+        name = "map_cache___map_cache_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    }
+    {
+      name = "map_visit___map_visit_1.0.0.tgz";
+      path = fetchurl {
+        name = "map_visit___map_visit_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    }
+    {
+      name = "marked___marked_2.0.5.tgz";
+      path = fetchurl {
+        name = "marked___marked_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/marked/-/marked-2.0.5.tgz";
+        sha1 = "2d15c759b9497b0e7b5b57f4c2edabe1002ef9e7";
+      };
+    }
+    {
+      name = "marky___marky_1.2.2.tgz";
+      path = fetchurl {
+        name = "marky___marky_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/marky/-/marky-1.2.2.tgz";
+        sha1 = "4456765b4de307a13d263a69b0c79bf226e68323";
+      };
+    }
+    {
+      name = "matcher___matcher_3.0.0.tgz";
+      path = fetchurl {
+        name = "matcher___matcher_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz";
+        sha1 = "bd9060f4c5b70aa8041ccc6f80368760994f30ca";
+      };
+    }
+    {
+      name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+      path = fetchurl {
+        name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    }
+    {
+      name = "merge_stream___merge_stream_2.0.0.tgz";
+      path = fetchurl {
+        name = "merge_stream___merge_stream_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz";
+        sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60";
+      };
+    }
+    {
+      name = "micromatch___micromatch_3.1.10.tgz";
+      path = fetchurl {
+        name = "micromatch___micromatch_3.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+        sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+      };
+    }
+    {
+      name = "micromatch___micromatch_4.0.4.tgz";
+      path = fetchurl {
+        name = "micromatch___micromatch_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz";
+        sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9";
+      };
+    }
+    {
+      name = "mime_db___mime_db_1.47.0.tgz";
+      path = fetchurl {
+        name = "mime_db___mime_db_1.47.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz";
+        sha1 = "8cb313e59965d3c05cfbf898915a267af46a335c";
+      };
+    }
+    {
+      name = "mime_types___mime_types_2.1.30.tgz";
+      path = fetchurl {
+        name = "mime_types___mime_types_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz";
+        sha1 = "6e7be8b4c479825f85ed6326695db73f9305d62d";
+      };
+    }
+    {
+      name = "mime___mime_2.5.2.tgz";
+      path = fetchurl {
+        name = "mime___mime_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz";
+        sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe";
+      };
+    }
+    {
+      name = "mimic_fn___mimic_fn_2.1.0.tgz";
+      path = fetchurl {
+        name = "mimic_fn___mimic_fn_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
+        sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
+      };
+    }
+    {
+      name = "mimic_response___mimic_response_1.0.1.tgz";
+      path = fetchurl {
+        name = "mimic_response___mimic_response_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
+        sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
+      };
+    }
+    {
+      name = "mimic_response___mimic_response_3.1.0.tgz";
+      path = fetchurl {
+        name = "mimic_response___mimic_response_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz";
+        sha1 = "2d1d59af9c1b129815accc2c46a022a5ce1fa3c9";
+      };
+    }
+    {
+      name = "minimatch___minimatch_3.0.4.tgz";
+      path = fetchurl {
+        name = "minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+      };
+    }
+    {
+      name = "minimist___minimist_1.2.5.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_1.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+      };
+    }
+    {
+      name = "mixin_deep___mixin_deep_1.3.2.tgz";
+      path = fetchurl {
+        name = "mixin_deep___mixin_deep_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
+      };
+    }
+    {
+      name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
+      path = fetchurl {
+        name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha1 = "fa10c9115cc6d8865be221ba47ee9bed78601113";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_0.5.5.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_0.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+      };
+    }
+    {
+      name = "mocha___mocha_8.4.0.tgz";
+      path = fetchurl {
+        name = "mocha___mocha_8.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz";
+        sha1 = "677be88bf15980a3cae03a73e10a0fc3997f0cff";
+      };
+    }
+    {
+      name = "module_not_found_error___module_not_found_error_1.0.1.tgz";
+      path = fetchurl {
+        name = "module_not_found_error___module_not_found_error_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz";
+        sha1 = "cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0";
+      };
+    }
+    {
+      name = "ms___ms_2.0.0.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    }
+    {
+      name = "ms___ms_2.1.2.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+      };
+    }
+    {
+      name = "ms___ms_2.1.3.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
+        sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
+      };
+    }
+    {
+      name = "nanoid___nanoid_3.1.20.tgz";
+      path = fetchurl {
+        name = "nanoid___nanoid_3.1.20.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz";
+        sha1 = "badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788";
+      };
+    }
+    {
+      name = "nanomatch___nanomatch_1.2.13.tgz";
+      path = fetchurl {
+        name = "nanomatch___nanomatch_1.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+      };
+    }
+    {
+      name = "neo_async___neo_async_2.6.2.tgz";
+      path = fetchurl {
+        name = "neo_async___neo_async_2.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz";
+        sha1 = "b4aafb93e3aeb2d8174ca53cf163ab7d7308305f";
+      };
+    }
+    {
+      name = "neovim___neovim_4.10.0.tgz";
+      path = fetchurl {
+        name = "neovim___neovim_4.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/neovim/-/neovim-4.10.0.tgz";
+        sha1 = "82066c3236271d82dc16277e7a75aa254e974877";
+      };
+    }
+    {
+      name = "node_addon_api___node_addon_api_1.7.2.tgz";
+      path = fetchurl {
+        name = "node_addon_api___node_addon_api_1.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz";
+        sha1 = "3df30b95720b53c24e59948b49532b662444f54d";
+      };
+    }
+    {
+      name = "node_fetch___node_fetch_2.6.1.tgz";
+      path = fetchurl {
+        name = "node_fetch___node_fetch_2.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
+        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
+      };
+    }
+    {
+      name = "node_releases___node_releases_1.1.71.tgz";
+      path = fetchurl {
+        name = "node_releases___node_releases_1.1.71.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz";
+        sha1 = "cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb";
+      };
+    }
+    {
+      name = "normalize_path___normalize_path_2.1.1.tgz";
+      path = fetchurl {
+        name = "normalize_path___normalize_path_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    }
+    {
+      name = "normalize_path___normalize_path_3.0.0.tgz";
+      path = fetchurl {
+        name = "normalize_path___normalize_path_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
+      };
+    }
+    {
+      name = "normalize_url___normalize_url_4.5.0.tgz";
+      path = fetchurl {
+        name = "normalize_url___normalize_url_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz";
+        sha1 = "453354087e6ca96957bd8f5baf753f5982142129";
+      };
+    }
+    {
+      name = "npm_conf___npm_conf_1.1.3.tgz";
+      path = fetchurl {
+        name = "npm_conf___npm_conf_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz";
+        sha1 = "256cc47bd0e218c259c4e9550bf413bc2192aff9";
+      };
+    }
+    {
+      name = "npm_run_path___npm_run_path_4.0.1.tgz";
+      path = fetchurl {
+        name = "npm_run_path___npm_run_path_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz";
+        sha1 = "b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea";
+      };
+    }
+    {
+      name = "object_copy___object_copy_0.1.0.tgz";
+      path = fetchurl {
+        name = "object_copy___object_copy_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    }
+    {
+      name = "object_keys___object_keys_1.1.1.tgz";
+      path = fetchurl {
+        name = "object_keys___object_keys_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+        sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+      };
+    }
+    {
+      name = "object_visit___object_visit_1.0.1.tgz";
+      path = fetchurl {
+        name = "object_visit___object_visit_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    }
+    {
+      name = "object.assign___object.assign_4.1.2.tgz";
+      path = fetchurl {
+        name = "object.assign___object.assign_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
+        sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
+      };
+    }
+    {
+      name = "object.pick___object.pick_1.3.0.tgz";
+      path = fetchurl {
+        name = "object.pick___object.pick_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    }
+    {
+      name = "once___once_1.4.0.tgz";
+      path = fetchurl {
+        name = "once___once_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    }
+    {
+      name = "one_time___one_time_0.0.4.tgz";
+      path = fetchurl {
+        name = "one_time___one_time_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz";
+        sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
+      };
+    }
+    {
+      name = "onetime___onetime_5.1.2.tgz";
+      path = fetchurl {
+        name = "onetime___onetime_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz";
+        sha1 = "d0e96ebb56b07476df1dd9c4806e5237985ca45e";
+      };
+    }
+    {
+      name = "opencollective_postinstall___opencollective_postinstall_2.0.3.tgz";
+      path = fetchurl {
+        name = "opencollective_postinstall___opencollective_postinstall_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz";
+        sha1 = "7a0fff978f6dbfa4d006238fbac98ed4198c3259";
+      };
+    }
+    {
+      name = "p_cancelable___p_cancelable_1.1.0.tgz";
+      path = fetchurl {
+        name = "p_cancelable___p_cancelable_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz";
+        sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc";
+      };
+    }
+    {
+      name = "p_cancelable___p_cancelable_2.1.1.tgz";
+      path = fetchurl {
+        name = "p_cancelable___p_cancelable_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz";
+        sha1 = "aab7fbd416582fa32a3db49859c122487c5ed2cf";
+      };
+    }
+    {
+      name = "p_limit___p_limit_2.3.0.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz";
+        sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1";
+      };
+    }
+    {
+      name = "p_limit___p_limit_3.1.0.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz";
+        sha1 = "e1daccbe78d0d1388ca18c64fea38e3e57e3706b";
+      };
+    }
+    {
+      name = "p_locate___p_locate_4.1.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
+        sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
+      };
+    }
+    {
+      name = "p_locate___p_locate_5.0.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz";
+        sha1 = "83c8315c6785005e3bd021839411c9e110e6d834";
+      };
+    }
+    {
+      name = "p_try___p_try_2.2.0.tgz";
+      path = fetchurl {
+        name = "p_try___p_try_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
+        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
+      };
+    }
+    {
+      name = "package_json___package_json_6.5.0.tgz";
+      path = fetchurl {
+        name = "package_json___package_json_6.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz";
+        sha1 = "6feedaca35e75725876d0b0e64974697fed145b0";
+      };
+    }
+    {
+      name = "pako___pako_1.0.11.tgz";
+      path = fetchurl {
+        name = "pako___pako_1.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz";
+        sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf";
+      };
+    }
+    {
+      name = "pascalcase___pascalcase_0.1.1.tgz";
+      path = fetchurl {
+        name = "pascalcase___pascalcase_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    }
+    {
+      name = "path_browserify___path_browserify_1.0.1.tgz";
+      path = fetchurl {
+        name = "path_browserify___path_browserify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz";
+        sha1 = "d98454a9c3753d5790860f16f68867b9e46be1fd";
+      };
+    }
+    {
+      name = "path_dirname___path_dirname_1.0.2.tgz";
+      path = fetchurl {
+        name = "path_dirname___path_dirname_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    }
+    {
+      name = "path_exists___path_exists_4.0.0.tgz";
+      path = fetchurl {
+        name = "path_exists___path_exists_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
+        sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
+      };
+    }
+    {
+      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+      path = fetchurl {
+        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    }
+    {
+      name = "path_key___path_key_3.1.1.tgz";
+      path = fetchurl {
+        name = "path_key___path_key_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+        sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+      };
+    }
+    {
+      name = "path_parse___path_parse_1.0.6.tgz";
+      path = fetchurl {
+        name = "path_parse___path_parse_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+      };
+    }
+    {
+      name = "pend___pend_1.2.0.tgz";
+      path = fetchurl {
+        name = "pend___pend_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz";
+        sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
+      };
+    }
+    {
+      name = "picomatch___picomatch_2.2.3.tgz";
+      path = fetchurl {
+        name = "picomatch___picomatch_2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz";
+        sha1 = "465547f359ccc206d3c48e46a1bcb89bf7ee619d";
+      };
+    }
+    {
+      name = "pify___pify_3.0.0.tgz";
+      path = fetchurl {
+        name = "pify___pify_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    }
+    {
+      name = "pify___pify_4.0.1.tgz";
+      path = fetchurl {
+        name = "pify___pify_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
+        sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
+      };
+    }
+    {
+      name = "pkg_dir___pkg_dir_4.2.0.tgz";
+      path = fetchurl {
+        name = "pkg_dir___pkg_dir_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
+      };
+    }
+    {
+      name = "plist___plist_3.0.2.tgz";
+      path = fetchurl {
+        name = "plist___plist_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz";
+        sha1 = "74bbf011124b90421c22d15779cee60060ba95bc";
+      };
+    }
+    {
+      name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+      path = fetchurl {
+        name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    }
+    {
+      name = "prepend_http___prepend_http_2.0.0.tgz";
+      path = fetchurl {
+        name = "prepend_http___prepend_http_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz";
+        sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
+      };
+    }
+    {
+      name = "prettier___prettier_2.3.0.tgz";
+      path = fetchurl {
+        name = "prettier___prettier_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz";
+        sha1 = "b6a5bf1284026ae640f17f7ff5658a7567fc0d18";
+      };
+    }
+    {
+      name = "printj___printj_1.1.2.tgz";
+      path = fetchurl {
+        name = "printj___printj_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz";
+        sha1 = "d90deb2975a8b9f600fb3a1c94e3f4c53c78a222";
+      };
+    }
+    {
+      name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+      path = fetchurl {
+        name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+      };
+    }
+    {
+      name = "progress___progress_2.0.3.tgz";
+      path = fetchurl {
+        name = "progress___progress_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
+        sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
+      };
+    }
+    {
+      name = "proto_list___proto_list_1.2.4.tgz";
+      path = fetchurl {
+        name = "proto_list___proto_list_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
+        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+      };
+    }
+    {
+      name = "proxy_from_env___proxy_from_env_1.1.0.tgz";
+      path = fetchurl {
+        name = "proxy_from_env___proxy_from_env_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz";
+        sha1 = "e102f16ca355424865755d2c9e8ea4f24d58c3e2";
+      };
+    }
+    {
+      name = "proxyquire___proxyquire_2.1.3.tgz";
+      path = fetchurl {
+        name = "proxyquire___proxyquire_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.1.3.tgz";
+        sha1 = "2049a7eefa10a9a953346a18e54aab2b4268df39";
+      };
+    }
+    {
+      name = "pump___pump_3.0.0.tgz";
+      path = fetchurl {
+        name = "pump___pump_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+        sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+      };
+    }
+    {
+      name = "punycode___punycode_2.1.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+      };
+    }
+    {
+      name = "pupa___pupa_2.1.1.tgz";
+      path = fetchurl {
+        name = "pupa___pupa_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz";
+        sha1 = "f5e8fd4afc2c5d97828faa523549ed8744a20d62";
+      };
+    }
+    {
+      name = "puppeteer_core___puppeteer_core_5.5.0.tgz";
+      path = fetchurl {
+        name = "puppeteer_core___puppeteer_core_5.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-5.5.0.tgz";
+        sha1 = "dfb6266efe5a933cbf1a368d27025a6fd4f5a884";
+      };
+    }
+    {
+      name = "quick_lru___quick_lru_5.1.1.tgz";
+      path = fetchurl {
+        name = "quick_lru___quick_lru_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha1 = "366493e6b3e42a3a6885e2e99d18f80fb7a8c932";
+      };
+    }
+    {
+      name = "randombytes___randombytes_2.1.0.tgz";
+      path = fetchurl {
+        name = "randombytes___randombytes_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
+        sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
+      };
+    }
+    {
+      name = "rc___rc_1.2.8.tgz";
+      path = fetchurl {
+        name = "rc___rc_1.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+        sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+      };
+    }
+    {
+      name = "read_config_file___read_config_file_6.2.0.tgz";
+      path = fetchurl {
+        name = "read_config_file___read_config_file_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz";
+        sha1 = "71536072330bcd62ba814f91458b12add9fc7ade";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_2.3.7.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_2.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_3.6.0.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
+      };
+    }
+    {
+      name = "readdir_glob___readdir_glob_1.1.1.tgz";
+      path = fetchurl {
+        name = "readdir_glob___readdir_glob_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz";
+        sha1 = "f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4";
+      };
+    }
+    {
+      name = "readdirp___readdirp_2.2.1.tgz";
+      path = fetchurl {
+        name = "readdirp___readdirp_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+        sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+      };
+    }
+    {
+      name = "readdirp___readdirp_3.5.0.tgz";
+      path = fetchurl {
+        name = "readdirp___readdirp_3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz";
+        sha1 = "9ba74c019b15d365278d2e91bb8c48d7b4d42c9e";
+      };
+    }
+    {
+      name = "rechoir___rechoir_0.7.0.tgz";
+      path = fetchurl {
+        name = "rechoir___rechoir_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz";
+        sha1 = "32650fd52c21ab252aa5d65b19310441c7e03aca";
+      };
+    }
+    {
+      name = "regex_not___regex_not_1.0.2.tgz";
+      path = fetchurl {
+        name = "regex_not___regex_not_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+        sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+      };
+    }
+    {
+      name = "registry_auth_token___registry_auth_token_4.2.1.tgz";
+      path = fetchurl {
+        name = "registry_auth_token___registry_auth_token_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz";
+        sha1 = "6d7b4006441918972ccd5fedcd41dc322c79b250";
+      };
+    }
+    {
+      name = "registry_url___registry_url_5.1.0.tgz";
+      path = fetchurl {
+        name = "registry_url___registry_url_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz";
+        sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009";
+      };
+    }
+    {
+      name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+      path = fetchurl {
+        name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    }
+    {
+      name = "repeat_element___repeat_element_1.1.4.tgz";
+      path = fetchurl {
+        name = "repeat_element___repeat_element_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz";
+        sha1 = "be681520847ab58c7568ac75fbfad28ed42d39e9";
+      };
+    }
+    {
+      name = "repeat_string___repeat_string_1.6.1.tgz";
+      path = fetchurl {
+        name = "repeat_string___repeat_string_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    }
+    {
+      name = "require_directory___require_directory_2.1.1.tgz";
+      path = fetchurl {
+        name = "require_directory___require_directory_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    }
+    {
+      name = "resolve_alpn___resolve_alpn_1.1.2.tgz";
+      path = fetchurl {
+        name = "resolve_alpn___resolve_alpn_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.1.2.tgz";
+        sha1 = "30b60cfbb0c0b8dc897940fe13fe255afcdd4d28";
+      };
+    }
+    {
+      name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz";
+        sha1 = "0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d";
+      };
+    }
+    {
+      name = "resolve_from___resolve_from_5.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_from___resolve_from_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz";
+        sha1 = "c35225843df8f776df21c57557bc087e9dfdfc69";
+      };
+    }
+    {
+      name = "resolve_url___resolve_url_0.2.1.tgz";
+      path = fetchurl {
+        name = "resolve_url___resolve_url_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    }
+    {
+      name = "resolve___resolve_1.20.0.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
+      };
+    }
+    {
+      name = "responselike___responselike_1.0.2.tgz";
+      path = fetchurl {
+        name = "responselike___responselike_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz";
+        sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
+      };
+    }
+    {
+      name = "responselike___responselike_2.0.0.tgz";
+      path = fetchurl {
+        name = "responselike___responselike_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz";
+        sha1 = "26391bcc3174f750f9a79eacc40a12a5c42d7723";
+      };
+    }
+    {
+      name = "resq___resq_1.10.0.tgz";
+      path = fetchurl {
+        name = "resq___resq_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/resq/-/resq-1.10.0.tgz";
+        sha1 = "40b5e3515ff984668e6b6b7c2401f282b08042ea";
+      };
+    }
+    {
+      name = "ret___ret_0.1.15.tgz";
+      path = fetchurl {
+        name = "ret___ret_0.1.15.tgz";
+        url  = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+        sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+      };
+    }
+    {
+      name = "rgb2hex___rgb2hex_0.2.3.tgz";
+      path = fetchurl {
+        name = "rgb2hex___rgb2hex_0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.2.3.tgz";
+        sha1 = "8aa464c517b8a26c7a79d767dabaec2b49ee78ec";
+      };
+    }
+    {
+      name = "rimraf___rimraf_3.0.2.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
+        sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
+      };
+    }
+    {
+      name = "roarr___roarr_2.15.4.tgz";
+      path = fetchurl {
+        name = "roarr___roarr_2.15.4.tgz";
+        url  = "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz";
+        sha1 = "f5fe795b7b838ccfe35dc608e0282b9eba2e7afd";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.1.2.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+      };
+    }
+    {
+      name = "safe_regex___safe_regex_1.1.0.tgz";
+      path = fetchurl {
+        name = "safe_regex___safe_regex_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    }
+    {
+      name = "safer_buffer___safer_buffer_2.1.2.tgz";
+      path = fetchurl {
+        name = "safer_buffer___safer_buffer_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+      };
+    }
+    {
+      name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
+      path = fetchurl {
+        name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz";
+        sha1 = "755ebd752045931977e30b2025d340d7c9090378";
+      };
+    }
+    {
+      name = "sax___sax_1.2.4.tgz";
+      path = fetchurl {
+        name = "sax___sax_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+        sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+      };
+    }
+    {
+      name = "schema_utils___schema_utils_2.7.1.tgz";
+      path = fetchurl {
+        name = "schema_utils___schema_utils_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha1 = "1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7";
+      };
+    }
+    {
+      name = "schema_utils___schema_utils_3.0.0.tgz";
+      path = fetchurl {
+        name = "schema_utils___schema_utils_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz";
+        sha1 = "67502f6aa2b66a2d4032b4279a2944978a0913ef";
+      };
+    }
+    {
+      name = "semver_compare___semver_compare_1.0.0.tgz";
+      path = fetchurl {
+        name = "semver_compare___semver_compare_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz";
+        sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc";
+      };
+    }
+    {
+      name = "semver_diff___semver_diff_3.1.1.tgz";
+      path = fetchurl {
+        name = "semver_diff___semver_diff_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz";
+        sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b";
+      };
+    }
+    {
+      name = "semver___semver_5.7.1.tgz";
+      path = fetchurl {
+        name = "semver___semver_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+      };
+    }
+    {
+      name = "semver___semver_6.3.0.tgz";
+      path = fetchurl {
+        name = "semver___semver_6.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+        sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+      };
+    }
+    {
+      name = "semver___semver_7.3.5.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
+      };
+    }
+    {
+      name = "serialize_error___serialize_error_7.0.1.tgz";
+      path = fetchurl {
+        name = "serialize_error___serialize_error_7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz";
+        sha1 = "f1360b0447f61ffb483ec4157c737fab7d778e18";
+      };
+    }
+    {
+      name = "serialize_error___serialize_error_8.1.0.tgz";
+      path = fetchurl {
+        name = "serialize_error___serialize_error_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-error/-/serialize-error-8.1.0.tgz";
+        sha1 = "3a069970c712f78634942ddd50fbbc0eaebe2f67";
+      };
+    }
+    {
+      name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
+      path = fetchurl {
+        name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha1 = "7886ec848049a462467a97d3d918ebb2aaf934f4";
+      };
+    }
+    {
+      name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz";
+      path = fetchurl {
+        name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz";
+        sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61";
+      };
+    }
+    {
+      name = "set_value___set_value_2.0.1.tgz";
+      path = fetchurl {
+        name = "set_value___set_value_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
+        sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
+      };
+    }
+    {
+      name = "shallow_clone___shallow_clone_3.0.1.tgz";
+      path = fetchurl {
+        name = "shallow_clone___shallow_clone_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz";
+        sha1 = "8f2981ad92531f55035b01fb230769a40e02efa3";
+      };
+    }
+    {
+      name = "shebang_command___shebang_command_2.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_command___shebang_command_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+      };
+    }
+    {
+      name = "shebang_regex___shebang_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_regex___shebang_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+      };
+    }
+    {
+      name = "signal_exit___signal_exit_3.0.3.tgz";
+      path = fetchurl {
+        name = "signal_exit___signal_exit_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
+      };
+    }
+    {
+      name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+      path = fetchurl {
+        name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    }
+    {
+      name = "slash___slash_2.0.0.tgz";
+      path = fetchurl {
+        name = "slash___slash_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
+        sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
+      };
+    }
+    {
+      name = "slice_ansi___slice_ansi_1.0.0.tgz";
+      path = fetchurl {
+        name = "slice_ansi___slice_ansi_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz";
+        sha1 = "044f1a49d8842ff307aad6b505ed178bd950134d";
+      };
+    }
+    {
+      name = "smart_buffer___smart_buffer_4.1.0.tgz";
+      path = fetchurl {
+        name = "smart_buffer___smart_buffer_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz";
+        sha1 = "91605c25d91652f4661ea69ccf45f1b331ca21ba";
+      };
+    }
+    {
+      name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+      path = fetchurl {
+        name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+      };
+    }
+    {
+      name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+      path = fetchurl {
+        name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+      };
+    }
+    {
+      name = "snapdragon___snapdragon_0.8.2.tgz";
+      path = fetchurl {
+        name = "snapdragon___snapdragon_0.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+      };
+    }
+    {
+      name = "source_list_map___source_list_map_2.0.1.tgz";
+      path = fetchurl {
+        name = "source_list_map___source_list_map_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz";
+        sha1 = "3993bd873bfc48479cca9ea3a547835c7c154b34";
+      };
+    }
+    {
+      name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+      path = fetchurl {
+        name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
+      };
+    }
+    {
+      name = "source_map_support___source_map_support_0.5.19.tgz";
+      path = fetchurl {
+        name = "source_map_support___source_map_support_0.5.19.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+      };
+    }
+    {
+      name = "source_map_url___source_map_url_0.4.1.tgz";
+      path = fetchurl {
+        name = "source_map_url___source_map_url_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz";
+        sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56";
+      };
+    }
+    {
+      name = "source_map___source_map_0.5.7.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    }
+    {
+      name = "source_map___source_map_0.6.1.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+      };
+    }
+    {
+      name = "source_map___source_map_0.7.3.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
+        sha1 = "5302f8169031735226544092e64981f751750383";
+      };
+    }
+    {
+      name = "spectron___spectron_14.0.0.tgz";
+      path = fetchurl {
+        name = "spectron___spectron_14.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/spectron/-/spectron-14.0.0.tgz";
+        sha1 = "c8160e38c30dcda39734f3e8e809162dc0805d14";
+      };
+    }
+    {
+      name = "split_string___split_string_3.1.0.tgz";
+      path = fetchurl {
+        name = "split_string___split_string_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+        sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+      };
+    }
+    {
+      name = "split___split_1.0.1.tgz";
+      path = fetchurl {
+        name = "split___split_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz";
+        sha1 = "605bd9be303aa59fb35f9229fbea0ddec9ea07d9";
+      };
+    }
+    {
+      name = "sprintf_js___sprintf_js_1.1.2.tgz";
+      path = fetchurl {
+        name = "sprintf_js___sprintf_js_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz";
+        sha1 = "da1765262bf8c0f571749f2ad6c26300207ae673";
+      };
+    }
+    {
+      name = "stack_trace___stack_trace_0.0.10.tgz";
+      path = fetchurl {
+        name = "stack_trace___stack_trace_0.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    }
+    {
+      name = "stat_mode___stat_mode_1.0.0.tgz";
+      path = fetchurl {
+        name = "stat_mode___stat_mode_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz";
+        sha1 = "68b55cb61ea639ff57136f36b216a291800d1465";
+      };
+    }
+    {
+      name = "static_extend___static_extend_0.1.2.tgz";
+      path = fetchurl {
+        name = "static_extend___static_extend_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    }
+    {
+      name = "string_width___string_width_2.1.1.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+      };
+    }
+    {
+      name = "string_width___string_width_3.1.0.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+        sha1 = "22767be21b62af1081574306f69ac51b62203961";
+      };
+    }
+    {
+      name = "string_width___string_width_4.2.2.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
+        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
+      };
+    }
+    {
+      name = "string_decoder___string_decoder_1.1.1.tgz";
+      path = fetchurl {
+        name = "string_decoder___string_decoder_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_4.0.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_5.2.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_6.0.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+      };
+    }
+    {
+      name = "strip_bom___strip_bom_3.0.0.tgz";
+      path = fetchurl {
+        name = "strip_bom___strip_bom_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    }
+    {
+      name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
+      path = fetchurl {
+        name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+        sha1 = "89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad";
+      };
+    }
+    {
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+      path = fetchurl {
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+      };
+    }
+    {
+      name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+      path = fetchurl {
+        name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    }
+    {
+      name = "sumchecker___sumchecker_3.0.1.tgz";
+      path = fetchurl {
+        name = "sumchecker___sumchecker_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz";
+        sha1 = "6377e996795abb0b6d348e9b3e1dfb24345a8e42";
+      };
+    }
+    {
+      name = "supports_color___supports_color_8.1.1.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_8.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz";
+        sha1 = "cd6fc17e28500cff56c1b86c0a7fd4a54a73005c";
+      };
+    }
+    {
+      name = "supports_color___supports_color_5.5.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_5.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+      };
+    }
+    {
+      name = "supports_color___supports_color_7.2.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
+        sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
+      };
+    }
+    {
+      name = "tapable___tapable_2.2.0.tgz";
+      path = fetchurl {
+        name = "tapable___tapable_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz";
+        sha1 = "5c373d281d9c672848213d0e037d1c4165ab426b";
+      };
+    }
+    {
+      name = "tar_fs___tar_fs_2.1.1.tgz";
+      path = fetchurl {
+        name = "tar_fs___tar_fs_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz";
+        sha1 = "489a15ab85f1f0befabb370b7de4f9eb5cbe8784";
+      };
+    }
+    {
+      name = "tar_stream___tar_stream_2.2.0.tgz";
+      path = fetchurl {
+        name = "tar_stream___tar_stream_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha1 = "acad84c284136b060dc3faa64474aa9aebd77287";
+      };
+    }
+    {
+      name = "temp_file___temp_file_3.4.0.tgz";
+      path = fetchurl {
+        name = "temp_file___temp_file_3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz";
+        sha1 = "766ea28911c683996c248ef1a20eea04d51652c7";
+      };
+    }
+    {
+      name = "terser_webpack_plugin___terser_webpack_plugin_5.1.1.tgz";
+      path = fetchurl {
+        name = "terser_webpack_plugin___terser_webpack_plugin_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz";
+        sha1 = "7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673";
+      };
+    }
+    {
+      name = "terser___terser_5.7.0.tgz";
+      path = fetchurl {
+        name = "terser___terser_5.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz";
+        sha1 = "a761eeec206bc87b605ab13029876ead938ae693";
+      };
+    }
+    {
+      name = "text_hex___text_hex_1.0.0.tgz";
+      path = fetchurl {
+        name = "text_hex___text_hex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz";
+        sha1 = "69dc9c1b17446ee79a92bf5b884bb4b9127506f5";
+      };
+    }
+    {
+      name = "through___through_2.3.8.tgz";
+      path = fetchurl {
+        name = "through___through_2.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    }
+    {
+      name = "tmp_promise___tmp_promise_3.0.2.tgz";
+      path = fetchurl {
+        name = "tmp_promise___tmp_promise_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz";
+        sha1 = "6e933782abff8b00c3119d63589ca1fb9caaa62a";
+      };
+    }
+    {
+      name = "tmp___tmp_0.2.1.tgz";
+      path = fetchurl {
+        name = "tmp___tmp_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz";
+        sha1 = "8457fc3037dcf4719c251367a1af6500ee1ccf14";
+      };
+    }
+    {
+      name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+      path = fetchurl {
+        name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    }
+    {
+      name = "to_object_path___to_object_path_0.3.0.tgz";
+      path = fetchurl {
+        name = "to_object_path___to_object_path_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    }
+    {
+      name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
+      path = fetchurl {
+        name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
+        sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771";
+      };
+    }
+    {
+      name = "to_regex_range___to_regex_range_2.1.1.tgz";
+      path = fetchurl {
+        name = "to_regex_range___to_regex_range_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    }
+    {
+      name = "to_regex_range___to_regex_range_5.0.1.tgz";
+      path = fetchurl {
+        name = "to_regex_range___to_regex_range_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
+      };
+    }
+    {
+      name = "to_regex___to_regex_3.0.2.tgz";
+      path = fetchurl {
+        name = "to_regex___to_regex_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+        sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+      };
+    }
+    {
+      name = "triple_beam___triple_beam_1.3.0.tgz";
+      path = fetchurl {
+        name = "triple_beam___triple_beam_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha1 = "a595214c7298db8339eeeee083e4d10bd8cb8dd9";
+      };
+    }
+    {
+      name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
+      path = fetchurl {
+        name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz";
+        sha1 = "405923909592d56f78a5818434b0b78489ca5f2b";
+      };
+    }
+    {
+      name = "ts_loader___ts_loader_9.2.2.tgz";
+      path = fetchurl {
+        name = "ts_loader___ts_loader_9.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.2.tgz";
+        sha1 = "416333900621c82d5eb1b1f6dea4114111f096bf";
+      };
+    }
+    {
+      name = "ts_node___ts_node_10.0.0.tgz";
+      path = fetchurl {
+        name = "ts_node___ts_node_10.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ts-node/-/ts-node-10.0.0.tgz";
+        sha1 = "05f10b9a716b0b624129ad44f0ea05dac84ba3be";
+      };
+    }
+    {
+      name = "ts_unused_exports___ts_unused_exports_7.0.3.tgz";
+      path = fetchurl {
+        name = "ts_unused_exports___ts_unused_exports_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/ts-unused-exports/-/ts-unused-exports-7.0.3.tgz";
+        sha1 = "37a06d103d9d5b8619807dbd50d89f698e8cebf1";
+      };
+    }
+    {
+      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+      path = fetchurl {
+        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
+      };
+    }
+    {
+      name = "tslib___tslib_2.2.0.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz";
+        sha1 = "fb2c475977e35e241311ede2693cee1ec6698f5c";
+      };
+    }
+    {
+      name = "ttypescript___ttypescript_1.5.12.tgz";
+      path = fetchurl {
+        name = "ttypescript___ttypescript_1.5.12.tgz";
+        url  = "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.12.tgz";
+        sha1 = "27a8356d7d4e719d0075a8feb4df14b52384f044";
+      };
+    }
+    {
+      name = "tunnel___tunnel_0.0.6.tgz";
+      path = fetchurl {
+        name = "tunnel___tunnel_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz";
+        sha1 = "72f1314b34a5b192db012324df2cc587ca47f92c";
+      };
+    }
+    {
+      name = "type_fest___type_fest_0.13.1.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz";
+        sha1 = "0172cb5bce80b0bd542ea348db50c7e21834d934";
+      };
+    }
+    {
+      name = "type_fest___type_fest_0.20.2.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+      };
+    }
+    {
+      name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+      path = fetchurl {
+        name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
+      };
+    }
+    {
+      name = "typedarray___typedarray_0.0.6.tgz";
+      path = fetchurl {
+        name = "typedarray___typedarray_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    }
+    {
+      name = "typescript___typescript_4.2.4.tgz";
+      path = fetchurl {
+        name = "typescript___typescript_4.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz";
+        sha1 = "8610b59747de028fda898a8aef0e103f156d0961";
+      };
+    }
+    {
+      name = "ua_parser_js___ua_parser_js_0.7.28.tgz";
+      path = fetchurl {
+        name = "ua_parser_js___ua_parser_js_0.7.28.tgz";
+        url  = "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz";
+        sha1 = "8ba04e653f35ce210239c64661685bf9121dec31";
+      };
+    }
+    {
+      name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
+      path = fetchurl {
+        name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz";
+        sha1 = "b0da04c4371311df771cdc215e87f2130991ace7";
+      };
+    }
+    {
+      name = "union_value___union_value_1.0.1.tgz";
+      path = fetchurl {
+        name = "union_value___union_value_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
+        sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
+      };
+    }
+    {
+      name = "unique_string___unique_string_2.0.0.tgz";
+      path = fetchurl {
+        name = "unique_string___unique_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz";
+        sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d";
+      };
+    }
+    {
+      name = "universalify___universalify_0.1.2.tgz";
+      path = fetchurl {
+        name = "universalify___universalify_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+        sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+      };
+    }
+    {
+      name = "universalify___universalify_2.0.0.tgz";
+      path = fetchurl {
+        name = "universalify___universalify_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz";
+        sha1 = "75a4984efedc4b08975c5aeb73f530d02df25717";
+      };
+    }
+    {
+      name = "unset_value___unset_value_1.0.0.tgz";
+      path = fetchurl {
+        name = "unset_value___unset_value_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    }
+    {
+      name = "unzip_crx_3___unzip_crx_3_0.2.0.tgz";
+      path = fetchurl {
+        name = "unzip_crx_3___unzip_crx_3_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz";
+        sha1 = "d5324147b104a8aed9ae8639c95521f6f7cda292";
+      };
+    }
+    {
+      name = "upath___upath_1.2.0.tgz";
+      path = fetchurl {
+        name = "upath___upath_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz";
+        sha1 = "8f66dbcd55a883acdae4408af8b035a5044c1894";
+      };
+    }
+    {
+      name = "update_notifier___update_notifier_5.1.0.tgz";
+      path = fetchurl {
+        name = "update_notifier___update_notifier_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz";
+        sha1 = "4ab0d7c7f36a231dd7316cf7729313f0214d9ad9";
+      };
+    }
+    {
+      name = "uri_js___uri_js_4.4.1.tgz";
+      path = fetchurl {
+        name = "uri_js___uri_js_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
+        sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
+      };
+    }
+    {
+      name = "urix___urix_0.1.0.tgz";
+      path = fetchurl {
+        name = "urix___urix_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    }
+    {
+      name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+      path = fetchurl {
+        name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
+        sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
+      };
+    }
+    {
+      name = "use___use_3.1.1.tgz";
+      path = fetchurl {
+        name = "use___use_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+        sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+      };
+    }
+    {
+      name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
+      path = fetchurl {
+        name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz";
+        sha1 = "f45f150c4c66eee968186505ab93fcbb8ad6bf61";
+      };
+    }
+    {
+      name = "util_deprecate___util_deprecate_1.0.2.tgz";
+      path = fetchurl {
+        name = "util_deprecate___util_deprecate_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    }
+    {
+      name = "uuid___uuid_8.3.2.tgz";
+      path = fetchurl {
+        name = "uuid___uuid_8.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz";
+        sha1 = "80d5b5ced271bb9af6c445f21a1a04c606cefbe2";
+      };
+    }
+    {
+      name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+      path = fetchurl {
+        name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
+      };
+    }
+    {
+      name = "verror___verror_1.10.0.tgz";
+      path = fetchurl {
+        name = "verror___verror_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    }
+    {
+      name = "watchpack___watchpack_2.1.1.tgz";
+      path = fetchurl {
+        name = "watchpack___watchpack_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz";
+        sha1 = "e99630550fca07df9f90a06056987baa40a689c7";
+      };
+    }
+    {
+      name = "webdriver___webdriver_6.12.1.tgz";
+      path = fetchurl {
+        name = "webdriver___webdriver_6.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/webdriver/-/webdriver-6.12.1.tgz";
+        sha1 = "30eee65340ea5124aa564f99a4dbc7d2f965b308";
+      };
+    }
+    {
+      name = "webdriverio___webdriverio_6.12.1.tgz";
+      path = fetchurl {
+        name = "webdriverio___webdriverio_6.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/webdriverio/-/webdriverio-6.12.1.tgz";
+        sha1 = "5b6f1167373bd7a154419d8a930ef1ffda9d0537";
+      };
+    }
+    {
+      name = "webpack_cli___webpack_cli_4.7.0.tgz";
+      path = fetchurl {
+        name = "webpack_cli___webpack_cli_4.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz";
+        sha1 = "3195a777f1f802ecda732f6c95d24c0004bc5a35";
+      };
+    }
+    {
+      name = "webpack_merge___webpack_merge_5.7.3.tgz";
+      path = fetchurl {
+        name = "webpack_merge___webpack_merge_5.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz";
+        sha1 = "2a0754e1877a25a8bbab3d2475ca70a052708213";
+      };
+    }
+    {
+      name = "webpack_sources___webpack_sources_2.2.0.tgz";
+      path = fetchurl {
+        name = "webpack_sources___webpack_sources_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz";
+        sha1 = "058926f39e3d443193b6c31547229806ffd02bac";
+      };
+    }
+    {
+      name = "webpack___webpack_5.37.1.tgz";
+      path = fetchurl {
+        name = "webpack___webpack_5.37.1.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-5.37.1.tgz";
+        sha1 = "2deb5acd350583c1ab9338471f323381b0b0c14b";
+      };
+    }
+    {
+      name = "which___which_2.0.2.tgz";
+      path = fetchurl {
+        name = "which___which_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+        sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+      };
+    }
+    {
+      name = "wide_align___wide_align_1.1.3.tgz";
+      path = fetchurl {
+        name = "wide_align___wide_align_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+        sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+      };
+    }
+    {
+      name = "widest_line___widest_line_3.1.0.tgz";
+      path = fetchurl {
+        name = "widest_line___widest_line_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz";
+        sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca";
+      };
+    }
+    {
+      name = "wildcard___wildcard_2.0.0.tgz";
+      path = fetchurl {
+        name = "wildcard___wildcard_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz";
+        sha1 = "a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec";
+      };
+    }
+    {
+      name = "winston_transport___winston_transport_4.4.0.tgz";
+      path = fetchurl {
+        name = "winston_transport___winston_transport_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha1 = "17af518daa690d5b2ecccaa7acf7b20ca7925e59";
+      };
+    }
+    {
+      name = "winston___winston_3.1.0.tgz";
+      path = fetchurl {
+        name = "winston___winston_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz";
+        sha1 = "80724376aef164e024f316100d5b178d78ac5331";
+      };
+    }
+    {
+      name = "workerpool___workerpool_6.1.0.tgz";
+      path = fetchurl {
+        name = "workerpool___workerpool_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz";
+        sha1 = "a8e038b4c94569596852de7a8ea4228eefdeb37b";
+      };
+    }
+    {
+      name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha1 = "67e145cff510a6a6984bdf1152911d69d2eb9e43";
+      };
+    }
+    {
+      name = "wrappy___wrappy_1.0.2.tgz";
+      path = fetchurl {
+        name = "wrappy___wrappy_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    }
+    {
+      name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
+      path = fetchurl {
+        name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8";
+      };
+    }
+    {
+      name = "ws___ws_7.4.5.tgz";
+      path = fetchurl {
+        name = "ws___ws_7.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz";
+        sha1 = "a484dd851e9beb6fdb420027e3885e8ce48986c1";
+      };
+    }
+    {
+      name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+      path = fetchurl {
+        name = "xdg_basedir___xdg_basedir_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz";
+        sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13";
+      };
+    }
+    {
+      name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
+      path = fetchurl {
+        name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz";
+        sha1 = "9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5";
+      };
+    }
+    {
+      name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+      path = fetchurl {
+        name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
+        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+      };
+    }
+    {
+      name = "xmldom___xmldom_0.5.0.tgz";
+      path = fetchurl {
+        name = "xmldom___xmldom_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz";
+        sha1 = "193cb96b84aa3486127ea6272c4596354cb4962e";
+      };
+    }
+    {
+      name = "y18n___y18n_5.0.8.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_5.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz";
+        sha1 = "7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55";
+      };
+    }
+    {
+      name = "yaku___yaku_0.16.7.tgz";
+      path = fetchurl {
+        name = "yaku___yaku_0.16.7.tgz";
+        url  = "https://registry.yarnpkg.com/yaku/-/yaku-0.16.7.tgz";
+        sha1 = "1d195c78aa9b5bf8479c895b9504fd4f0847984e";
+      };
+    }
+    {
+      name = "yallist___yallist_4.0.0.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_20.2.4.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_20.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz";
+        sha1 = "b42890f14566796f85ae8e3a25290d205f154a54";
+      };
+    }
+    {
+      name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
+      path = fetchurl {
+        name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz";
+        sha1 = "f131f9226911ae5d9ad38c432fe809366c2325eb";
+      };
+    }
+    {
+      name = "yargs___yargs_16.2.0.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_16.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz";
+        sha1 = "1c82bf0f6b6a66eafce7ef30e376f49a12477f66";
+      };
+    }
+    {
+      name = "yargs___yargs_17.0.1.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_17.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz";
+        sha1 = "6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb";
+      };
+    }
+    {
+      name = "yauzl___yauzl_2.10.0.tgz";
+      path = fetchurl {
+        name = "yauzl___yauzl_2.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz";
+        sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
+      };
+    }
+    {
+      name = "yn___yn_3.1.1.tgz";
+      path = fetchurl {
+        name = "yn___yn_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz";
+        sha1 = "1e87401a09d767c1d5eab26a6e4c185182d2eb50";
+      };
+    }
+    {
+      name = "yocto_queue___yocto_queue_0.1.0.tgz";
+      path = fetchurl {
+        name = "yocto_queue___yocto_queue_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz";
+        sha1 = "0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b";
+      };
+    }
+    {
+      name = "zip_stream___zip_stream_4.1.0.tgz";
+      path = fetchurl {
+        name = "zip_stream___zip_stream_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz";
+        sha1 = "51dd326571544e36aa3f756430b313576dc8fc79";
+      };
+    }
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/editors/vscode/generic.nix b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
index 060078cd57b6..56a81f21febb 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/generic.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
@@ -1,25 +1,27 @@
 { stdenv, lib, makeDesktopItem
 , unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook
 , gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
-, systemd, fontconfig, libdbusmenu
+, systemd, fontconfig, libdbusmenu, buildFHSUserEnvBubblewrap
+, writeShellScriptBin
 
 # Populate passthru.tests
 , tests
 
 # Attributes inherit from specific versions
 , version, src, meta, sourceRoot
-, executableName, longName, shortName, pname
+, executableName, longName, shortName, pname, updateScript
 }:
 
 let
   inherit (stdenv.hostPlatform) system;
-in
-  stdenv.mkDerivation {
+  unwrapped = stdenv.mkDerivation {
 
     inherit pname version src sourceRoot;
 
     passthru = {
-      inherit executableName tests;
+      inherit executableName tests updateScript;
+      fhs = fhs {};
+      fhsWithPackages = f: fhs { additionalPkgs = f; };
     };
 
     desktopItem = makeDesktopItem {
@@ -75,7 +77,7 @@ in
     '' + (if system == "x86_64-darwin" then ''
       mkdir -p "$out/Applications/${longName}.app" $out/bin
       cp -r ./* "$out/Applications/${longName}.app"
-      ln -s "$out/Applications/${longName}.app/Contents/Resources/app/bin/code" $out/bin/${executableName}
+      ln -s "$out/Applications/${longName}.app/Contents/Resources/app/bin/${executableName}" $out/bin/${executableName}
     '' else ''
       mkdir -p $out/lib/vscode $out/bin
       cp -r ./* $out/lib/vscode
@@ -97,4 +99,63 @@ in
     '';
 
     inherit meta;
-  }
+  };
+
+  # Vscode and variants allow for users to download and use extensions
+  # which often include the usage of pre-built binaries.
+  # This has been an on-going painpoint for many users, as
+  # a full extension update cycle has to be done through nixpkgs
+  # in order to create or update extensions.
+  # See: #83288 #91179 #73810 #41189
+  #
+  # buildFHSUserEnv allows for users to use the existing vscode
+  # extension tooling without significant pain.
+  fhs = { additionalPkgs ? pkgs: [] }: buildFHSUserEnvBubblewrap {
+    # also determines the name of the wrapped command
+    name = executableName;
+
+    # additional libraries which are commonly needed for extensions
+    targetPkgs = pkgs: (with pkgs; [
+      # ld-linux-x86-64-linux.so.2 and others
+      glibc
+
+      # dotnet
+      curl
+      icu
+      libunwind
+      libuuid
+      openssl
+      zlib
+
+      # mono
+      krb5
+    ]) ++ additionalPkgs pkgs;
+
+    # restore desktop item icons
+    extraInstallCommands = ''
+      mkdir -p $out/share/applications
+      for item in ${unwrapped}/share/applications/*.desktop; do
+        ln -s $item $out/share/applications/
+      done
+    '';
+
+    runScript = "${unwrapped}/bin/${executableName}";
+
+    # vscode likes to kill the parent so that the
+    # gui application isn't attached to the terminal session
+    dieWithParent = false;
+
+    passthru = {
+      inherit executableName;
+      inherit (unwrapped) pname version; # for home-manager module
+    };
+
+    meta = meta // {
+      description = ''
+        Wrapped variant of ${pname} which launches in a FHS compatible envrionment.
+        Should allow for easy usage of extensions without nix-specific modifications.
+      '';
+    };
+  };
+in
+  unwrapped
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
index 35637c8fc867..fd1cb7153ebf 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -13,19 +13,16 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "08151qdhf4chg9gfbs0dl0v0k5vla2gz5dfy439jzdg1d022d5rw";
-    x86_64-darwin = "1vlxxkv3wvds3xl3ir93l5q5yq2d7mcragsicfayj9x9r49ilqn3";
-    aarch64-linux = "0rxw1wsi555z41ak817sxqyyan0rm7hma640zsh8dz0yvhzdv1h8";
-    armv7l-linux = "1ijvd7r2fxxlw4zv3zx5h70b3d0b4gcq3aljsi02v1lr2zm8f8gb";
+    x86_64-linux = "08qrag9nzmngzzvs2cgbmc4zzxlb9kwn183v8caj6dvcrjvfqgbv";
+    x86_64-darwin = "0rlyr08lla3xadlh373xqcks8a9akk3x2cmakgn17q2b16988fmq";
+    aarch64-linux = "1m277940xsasqac4i88s05xrqsab99jhl3ka0zzfbixrgr2dj8q1";
+    armv7l-linux = "1qm4cggjj50vdnrx848x810gz3ahh0hndra22lsvcjdbsw8g35rk";
   }.${system};
 in
   callPackage ./generic.nix rec {
-    # The update script doesn't correctly change the hash for darwin, so please:
-    # nixpkgs-update: no auto update
-
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.55.2";
+    version = "1.56.2";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
@@ -40,11 +37,14 @@ in
 
     sourceRoot = "";
 
+    updateScript = ./update-vscodium.sh;
+
     meta = with lib; {
       description = ''
         Open source source code editor developed by Microsoft for Windows,
         Linux and macOS
       '';
+      mainProgram = "code";
       longDescription = ''
         Open source source code editor developed by Microsoft for Windows,
         Linux and macOS. It includes support for debugging, embedded Git
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
index 4850a9cd7dd5..7dadd02a4476 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "12mdila9gspj6b9s6488j0ba264vm4a46546kplma7s6gkkpz4zx";
-    x86_64-darwin = "15wdznihc2ra2fjy9p4j898vazjr4h5yighaxh7jk9kcvarg1658";
-    aarch64-linux = "0plw1an1z3v333irbc53skrmq2klas21srriiqkvmkgkfvpx1rq2";
-    armv7l-linux = "1ys82pa18qshpinaqqrskxvljzap20xwj5ncffn031yacg1y2qx2";
+    x86_64-linux = "1gw2273ab0gdyav6mz7wk7d6g6cwcdvx0xaghvm610m1pvkbvxkz";
+    x86_64-darwin = "1zfzsr8gybmpmxc3jlfj6sx3m6ny6hc3dxvpgffni7k5zgv651df";
+    aarch64-linux = "079bp48h0qfpsbyir2qg3w1f43dc68ngmxqdqb3jnkx721affjzs";
+    armv7l-linux = "1d9243hk07xawv44909lk6y6bnvy0wjhy8xl13n3a11pg3djn5bm";
   }.${system};
 
   sourceRoot = {
@@ -28,12 +28,10 @@ let
 in
   callPackage ./generic.nix rec {
     inherit sourceRoot;
-    # The update script doesn't correctly change the hash for darwin, so please:
-    # nixpkgs-update: no auto update
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.55.2";
+    version = "1.56.2";
     pname = "vscodium";
 
     executableName = "codium";
@@ -47,6 +45,8 @@ in
 
     tests = nixosTests.vscodium;
 
+    updateScript = ./update-vscodium.sh;
+
     meta = with lib; {
       description = ''
         Open source source code editor developed by Microsoft for Windows,
diff --git a/nixpkgs/pkgs/applications/editors/zile/default.nix b/nixpkgs/pkgs/applications/editors/zile/default.nix
index 3d0e98602add..cb1307d7ffb4 100644
--- a/nixpkgs/pkgs/applications/editors/zile/default.nix
+++ b/nixpkgs/pkgs/applications/editors/zile/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zile";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchurl {
     url = "mirror://gnu/zile/${pname}-${version}.tar.gz";
-    hash = "sha256-v7rN33aOORc6J0Z5JP5AmZCj6XvjYyoCl5hl+7mvAnc=";
+    hash = "sha256-d+t9r/PJi9yI2qGsBA3MynK4HcMvwxZuB53Xpj5Cx0E=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/gis/gmt/default.nix b/nixpkgs/pkgs/applications/gis/gmt/default.nix
index 0e2b45888b48..a894d121bd3d 100644
--- a/nixpkgs/pkgs/applications/gis/gmt/default.nix
+++ b/nixpkgs/pkgs/applications/gis/gmt/default.nix
@@ -9,10 +9,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gmt";
-  version = "6.1.1";
+  version = "6.2.0";
   src = fetchurl {
     url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
-    sha256 = "04mdxxcild56jhg9ax522xh78v1wl1x8iqv2f6wv32x9b2lgy1lp";
+    sha256 = "sha256-q3BikSrurRAhdw+tR1bgqZhg/ejqm0KPsAwi+hWju/w=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix b/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
index a8dd7787a521..5b972ae5017f 100644
--- a/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
@@ -19,12 +19,12 @@ let
     urllib3
     pygments
     pyqt5
-    sip
+    sip_4
     owslib
     six
   ];
 in mkDerivation rec {
-  version = "3.16.6";
+  version = "3.16.7";
   pname = "qgis";
   name = "${pname}-unwrapped-${version}";
 
@@ -32,7 +32,7 @@ in mkDerivation rec {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "1vnz5kiyjircmhn4vq3fa5j2kvkxpwcsry7jc6nxl0w0dqx1zay1";
+    sha256 = "0yvb2w83dplh0my72xljglq9a4a7qkfliwslav26lw4yqxr8mr0p";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/applications/gis/qmapshack/default.nix b/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
index ef036fb71b04..d0d39e299aa2 100644
--- a/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
+++ b/nixpkgs/pkgs/applications/gis/qmapshack/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "qmapshack";
-  version = "1.15.2";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "Maproom";
     repo = pname;
     rev = "V_${version}";
-    sha256 = "1l1j2axf94pdqwirwwhwy3y6k8v1aix78ifqbv6j8sv131h2j7y7";
+    sha256 = "1yzgkdjxwyg8ggbxyjwr0zjrx99ckrbz2p2524iii9i7qqn8wfsx";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -18,13 +18,6 @@ mkDerivation rec {
 
   cmakeFlags = [
     "-DROUTINO_XML_PATH=${routino}/share/routino"
-    "-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip5"
-    "-DLIBQUAZIP_LIBRARY=${quazip}/lib/libquazip.so"
-  ];
-
-  patches = [
-    "${src}/FindPROJ4.patch"
-    "${src}/FindQuaZip5.patch"
   ];
 
   qtWrapperArgs = [
diff --git a/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix b/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
index 1e7390f8c838..fdfbcdbfccf6 100644
--- a/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
+++ b/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "09rz8f1xyc64qjbj6pgw8jxr2a7chghmdc6sfkbv7hdvx6vg4wvk";
+  cargoSha256 = "0rdg9k44si37iyqlcl1rw7ilajcvqy93gbfpd7n4cr1hg9ypm0m3";
 
   meta = with lib; {
     description = "An advanced geospatial data analysis platform";
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix
index c77e60950c96..e8a882493688 100644
--- a/nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/6.x.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, libtool
 , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
 , lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp, fftw, libheif, libde265
-, ApplicationServices
+, ApplicationServices, Foundation
 }:
 
 let
@@ -9,20 +9,20 @@ let
     if stdenv.hostPlatform.system == "i686-linux" then "i686"
     else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
     else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
-    else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64"
+    else if stdenv.hostPlatform.system == "aarch64-linux"  || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
     else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
-    else throw "ImageMagick is not supported on this platform.";
+    else null;
 in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "6.9.12-8";
+  version = "6.9.12-12";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick6";
     rev = version;
-    sha256 = "sha256-ZFCmoZOdZ3jbM5S90zBNiMGJKFylMLO0r3DB25wu3MM=";
+    sha256 = "sha256-yqMYuayQjPlTqi3+CtwP5CdsAGud/fHR0I2LwUPIq00=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     [ "--with-frozenpaths" ]
-    ++ [ "--with-gcc-arch=${arch}" ]
+    ++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
     ++ lib.optional (librsvg != null) "--with-rsvg"
     ++ lib.optionals (ghostscript != null)
       [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
@@ -50,7 +50,8 @@ stdenv.mkDerivation rec {
     ]
     ++ lib.optionals (!stdenv.hostPlatform.isMinGW)
       [ openexr librsvg openjpeg ]
-    ++ lib.optional stdenv.isDarwin ApplicationServices;
+    ++ lib.optionals stdenv.isDarwin
+      [ ApplicationServices Foundation ];
 
   propagatedBuildInputs =
     [ bzip2 freetype libjpeg lcms2 fftw ]
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
index b2c665258cd4..27c3e31b28c7 100644
--- a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -2,6 +2,8 @@
 , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
 , lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif
 , ApplicationServices
+, Foundation
+, testVersion, imagemagick
 }:
 
 let
@@ -9,20 +11,20 @@ let
     if stdenv.hostPlatform.system == "i686-linux" then "i686"
     else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
     else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
-    else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64"
+    else if stdenv.hostPlatform.system == "aarch64-linux"  || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
     else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
-    else throw "ImageMagick is not supported on this platform.";
+    else null;
 in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "7.0.11-8";
+  version = "7.0.11-9";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick";
     rev = version;
-    sha256 = "sha256-h9hoFXnxuLVQRVtEh83P7efz2KFLLqOXKD6nVJEhqiM=";
+    sha256 = "sha256-eL9zFrgkLb3pS8/UlQB5+p50UG8j3Q7TNDwcO/3BuXo=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
@@ -32,7 +34,7 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     [ "--with-frozenpaths" ]
-    ++ [ "--with-gcc-arch=${arch}" ]
+    ++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
     ++ lib.optional (librsvg != null) "--with-rsvg"
     ++ lib.optionals (ghostscript != null)
       [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
@@ -50,7 +52,10 @@ stdenv.mkDerivation rec {
     ]
     ++ lib.optionals (!stdenv.hostPlatform.isMinGW)
       [ openexr librsvg openjpeg ]
-    ++ lib.optional stdenv.isDarwin ApplicationServices;
+    ++ lib.optionals stdenv.isDarwin [
+      ApplicationServices
+      Foundation
+    ];
 
   propagatedBuildInputs =
     [ bzip2 freetype libjpeg lcms2 ]
@@ -72,11 +77,15 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru.tests.version =
+    testVersion { package = imagemagick; };
+
   meta = with lib; {
     homepage = "http://www.imagemagick.org/";
     description = "A software suite to create, edit, compose, or convert bitmap images";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ erictapen ];
     license = licenses.asl20;
+    mainProgram = "magick";
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/antimony/default.nix b/nixpkgs/pkgs/applications/graphics/antimony/default.nix
index d92ad9998f2c..8b482626c91a 100644
--- a/nixpkgs/pkgs/applications/graphics/antimony/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/antimony/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchFromGitHub, libpng, python3
 , libGLU, libGL, qtbase, wrapQtAppsHook, ncurses
 , cmake, flex, lemon
+, makeDesktopItem, copyDesktopItems
 }:
 
 let
@@ -27,12 +28,35 @@ in
        sed -i "s,python3,${python3.executable}," CMakeLists.txt
     '';
 
+    postInstall = lib.optionalString stdenv.isLinux ''
+      install -Dm644 $src/deploy/icon.svg $out/share/icons/hicolor/scalable/apps/antimony.svg
+      install -Dm644 ${./mimetype.xml} $out/share/mime/packages/antimony.xml
+    '';
+
     buildInputs = [
       libpng python3 python3.pkgs.boost
       libGLU libGL qtbase ncurses
     ];
 
-    nativeBuildInputs = [ cmake flex lemon wrapQtAppsHook ];
+    nativeBuildInputs = [ cmake flex lemon wrapQtAppsHook copyDesktopItems ];
+
+    desktopItems = [
+      (makeDesktopItem {
+        name = "antimony";
+        desktopName = "Antimony";
+        comment="Tree-based Modeler";
+        genericName = "CAD Application";
+        exec = "antimony %f";
+        icon = "antimony";
+        terminal = "false";
+        categories = "Graphics;Science;Engineering";
+        mimeType = "application/x-extension-sb;application/x-antimony;";
+        extraEntries = ''
+          StartupWMClass=antimony
+          Version=1.0
+        '';
+      })
+    ];
 
     cmakeFlags= [
       "-DGITREV=${gitRev}"
diff --git a/nixpkgs/pkgs/applications/graphics/antimony/mimetype.xml b/nixpkgs/pkgs/applications/graphics/antimony/mimetype.xml
new file mode 100644
index 000000000000..c6960fba9abc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/antimony/mimetype.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+  <mime-type type="application/x-antimony">
+    <comment xml:lang="en">Antimony model</comment>
+    <glob pattern="*.sb"/>
+  </mime-type>
+</mime-info>
diff --git a/nixpkgs/pkgs/applications/graphics/avocode/default.nix b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
index 0e4f182ea50f..657ea55da60d 100644
--- a/nixpkgs/pkgs/applications/graphics/avocode/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, makeDesktopItem, fetchurl, unzip
-, gdk-pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsaLib, cups, expat, udev, gnome3
-, xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core, libdrm, mesa
+, gdk-pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsa-lib, cups, expat, udev, gnome
+, xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon
 }:
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.12.0";
+  version = "4.14.0";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "sha256-qbG0Ii3Xmj1UGGS+n+LdiNPAHBkpQZMGEzrDvOcaUNA=";
+    sha256 = "sha256-BDW87UVN1Jub0sJFvtkZr5ssz835Yf2CNn5kHCn70cE=";
   };
 
   libPath = lib.makeLibraryPath (with xorg; [
@@ -27,12 +27,14 @@ stdenv.mkDerivation rec {
     dbus
     nss
     nspr
-    alsaLib
+    alsa-lib
     cups
     expat
     udev
     libX11
     libxcb
+    libxshmfence
+    libxkbcommon
     libXi
     libXcursor
     libXdamage
@@ -59,7 +61,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [makeWrapper wrapGAppsHook unzip];
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
 
   # src is producing multiple folder on unzip so we must
   # override unpackCmd to extract it into newly created folder
diff --git a/nixpkgs/pkgs/applications/graphics/darktable/default.nix b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
index 2ff712851b94..469437c6c952 100644
--- a/nixpkgs/pkgs/applications/graphics/darktable/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
@@ -2,7 +2,7 @@
 , cairo, cmake, ninja, curl, perl, llvm, desktop-file-utils, exiv2, glib
 , ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg
 , libpng, librsvg, libtiff, openexr, osm-gps-map, pkg-config, sqlite, libxslt
-, openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome3
+, openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome
 , ocl-icd, pcre, gtk-mac-integration, isocodes, llvmPackages
 }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     cairo curl exiv2 glib gtk3 ilmbase lcms2 lensfun libexif
     libgphoto2 libjpeg libpng librsvg libtiff openexr sqlite libxslt
     libsoup graphicsmagick json-glib openjpeg lua pugixml
-    libwebp libsecret gnome3.adwaita-icon-theme osm-gps-map pcre isocodes
+    libwebp libsecret gnome.adwaita-icon-theme osm-gps-map pcre isocodes
   ] ++ lib.optionals stdenv.isLinux [
     colord colord-gtk libX11 ocl-icd
   ] ++ lib.optional stdenv.isDarwin gtk-mac-integration
diff --git a/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
index e8ef97f949c4..05e94bb164c9 100644
--- a/nixpkgs/pkgs/applications/graphics/drawio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, rpmextract, autoPatchelfHook, wrapGAppsHook
 
 # Dynamic libraries
-, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, dbus, cups, expat
+, alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, dbus, cups, expat
 , gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor
 , libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst
 , libxcb, libuuid, libxshmfence, nspr, nss, pango, mesa
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     atk
     at-spi2-atk
     at-spi2-core
diff --git a/nixpkgs/pkgs/applications/graphics/emulsion/default.nix b/nixpkgs/pkgs/applications/graphics/emulsion/default.nix
index 9792ce4d6d2b..3012250b9ce3 100644
--- a/nixpkgs/pkgs/applications/graphics/emulsion/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/emulsion/default.nix
@@ -37,16 +37,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "emulsion";
-  version = "8.0";
+  version = "9.0";
 
   src = fetchFromGitHub {
     owner = "ArturKovacs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xv3q59HobunrFyc+CPLztpsQd20Eu4+JI+iYhlGI0bc=";
+    sha256 = "sha256-Cdi+PQDHxMQG7t7iwDi6UWfDwQjjA2yiOf9p/ahBlOw=";
   };
 
-  cargoSha256 = "sha256-37xtdFbtbfGUqaSpzlxDQfe1+0ESHz/rgO1iTPBEBLc=";
+  cargoSha256 = "sha256-2wiLamnGqACx1r4WJbWPCN3tvhww/rRWz8fcvAbjYE0=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -63,17 +63,10 @@ rustPlatform.buildRustPackage rec {
     OpenGL
   ];
 
-  installPhase = ''
-    runHook preInstall
-    install -D $releaseDir/emulsion $out/bin/emulsion
-  '' + lib.optionalString stdenv.isLinux ''
-      patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/emulsion
-  '' + ''
-    runHook postInstall
+  postFixup = lib.optionalString stdenv.isLinux ''
+    patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/emulsion
   '';
 
-  dontPatchELF = true;
-
   meta = with lib; {
     description = "A fast and minimalistic image viewer";
     homepage = "https://arturkovacs.github.io/emulsion-website/";
diff --git a/nixpkgs/pkgs/applications/graphics/fbida/default.nix b/nixpkgs/pkgs/applications/graphics/fbida/default.nix
index 9ed6ee75159e..f2d2e267595c 100644
--- a/nixpkgs/pkgs/applications/graphics/fbida/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fbida/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libjpeg, libexif, libungif, libtiff, libpng, libwebp, libdrm
+{ lib, stdenv, fetchurl, libjpeg, libexif, giflib, libtiff, libpng, libwebp, libdrm
 , pkg-config, freetype, fontconfig, which, imagemagick, curl, sane-backends, libXpm
 , epoxy, poppler, mesa, lirc }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config which ];
   buildInputs = [
-    libexif libjpeg libpng libungif freetype fontconfig libtiff libwebp
+    libexif libjpeg libpng giflib freetype fontconfig libtiff libwebp
     imagemagick curl sane-backends libdrm libXpm epoxy poppler lirc
     mesa
   ];
diff --git a/nixpkgs/pkgs/applications/graphics/feh/default.nix b/nixpkgs/pkgs/applications/graphics/feh/default.nix
index 40ae02356063..139f29c31506 100644
--- a/nixpkgs/pkgs/applications/graphics/feh/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/feh/default.nix
@@ -7,11 +7,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "feh";
-  version = "3.6.3";
+  version = "3.7";
 
   src = fetchurl {
     url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-Q3Qg838RYU4AjQZuKjve/Px4FEyCEpmLK6zdXSHqI7Q=";
+    sha256 = "0hdvlrlpjxvmhnjvr32nxgpsw0366higg0gh9h37fxrvdh3v3k87";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/applications/graphics/fluxus/default.nix b/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
index acec5293101f..3db183b2531a 100644
--- a/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchFromGitLab
-, alsaLib
+, alsa-lib
 , bzip2
 , fftw
 , freeglut
@@ -23,7 +23,7 @@
 }:
 let
   libs = [
-    alsaLib
+    alsa-lib
     bzip2
     fftw
     freeglut
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     fftw
     freeglut.dev
     freetype
diff --git a/nixpkgs/pkgs/applications/graphics/fondo/default.nix b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
index 04ac87c55da9..c2cb4c92d47e 100644
--- a/nixpkgs/pkgs/applications/graphics/fondo/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , pantheon
@@ -57,18 +58,15 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
-  };
-
-
   meta = with lib; {
-    description = "Find the most beautiful wallpapers for your desktop";
     homepage = "https://github.com/calo001/fondo";
+    description = "Find the most beautiful wallpapers for your desktop";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
   };
+
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/foxotron/default.nix b/nixpkgs/pkgs/applications/graphics/foxotron/default.nix
index 71adfe0d2dba..2ccc6ed401df 100644
--- a/nixpkgs/pkgs/applications/graphics/foxotron/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/foxotron/default.nix
@@ -13,7 +13,7 @@
 , libXi
 , libXext
 , libGLU
-, alsaLib
+, alsa-lib
 , fontconfig
 , AVFoundation
 , Carbon
@@ -25,20 +25,20 @@
 
 stdenv.mkDerivation rec {
   pname = "foxotron";
-  version = "2021-03-12";
+  version = "2021-04-19";
 
   src = fetchFromGitHub {
     owner = "Gargaj";
     repo = "Foxotron";
     rev = version;
     fetchSubmodules = true;
-    sha256 = "1finvbs3pbfyvm525blwgwl5jci2zjxb1923i0cm8rmf7wasaapb";
+    sha256 = "sha256-YTCnWHXBNqvJmhRqRQRFCVvBcqbjKzcc3AKVXS0jvno=";
   };
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
 
   buildInputs = [ zlib ]
-    ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXrandr libXinerama libXcursor libXi libXext alsaLib fontconfig libGLU ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXrandr libXinerama libXcursor libXi libXext alsa-lib fontconfig libGLU ]
     ++ lib.optionals stdenv.hostPlatform.isDarwin [ AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL ];
 
   installPhase = ''
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
       Revision 2021 3D Graphics Competition.
     '';
     homepage = "https://github.com/Gargaj/Foxotron";
-    license = licenses.publicDomain;
+    license = licenses.unlicense;
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/default.nix b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
index 440cc7fa38df..ac4050fc8c5b 100644
--- a/nixpkgs/pkgs/applications/graphics/freecad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
@@ -23,6 +23,7 @@
 , opencascade-occt
 , pivy
 , pkg-config
+, ply
 , pycollada
 , pyside2
 , pyside2-tools
@@ -46,13 +47,13 @@
 
 mkDerivation rec {
   pname = "freecad";
-  version = "0.19.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "FreeCAD";
     repo = "FreeCAD";
     rev = version;
-    hash = "sha256-itIrO+/mKXOPNs+2POKT8u4YZuqx/QAwVBWrHgKP1qQ=";
+    hash = "sha256-XZ+fRl3CPCIFu3nHeMTLibwwFBlG/cWpKJlI58hTAuU=";
   };
 
   nativeBuildInputs = [
@@ -80,6 +81,7 @@ mkDerivation rec {
     ode
     opencascade-occt
     pivy
+    ply # for openSCAD file support
     pycollada
     pyside2
     pyside2-tools
@@ -102,6 +104,7 @@ mkDerivation rec {
   ];
 
   cmakeFlags = [
+    "-Wno-dev" # turns off warnings which otherwise makes it hard to see what is going on
     "-DBUILD_FLAT_MESH:BOOL=ON"
     "-DBUILD_QT5=ON"
     "-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
@@ -110,7 +113,7 @@ mkDerivation rec {
       + ";${pyside2}/include/PySide2/QtCore"
       + ";${pyside2}/include/PySide2/QtWidgets"
       + ";${pyside2}/include/PySide2/QtGui"
-      )
+    )
     "-DPYSIDE_LIBRARY=PySide2::pyside2"
   ];
 
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
index 2491d8d3a8ab..08d3f122aab5 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , substituteAll
 , autoreconfHook
 , pkg-config
@@ -34,6 +33,7 @@
 , libexif
 , gettext
 , makeWrapper
+, gtk-doc
 , xorg
 , glib-networking
 , libmypaint
@@ -53,13 +53,13 @@ let
   python = python2.withPackages (pp: [ pp.pygtk ]);
 in stdenv.mkDerivation rec {
   pname = "gimp";
-  version = "2.10.22";
+  version = "2.10.24";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "1fqqyshakvdarf1jipk2n33ibqr23ni22z3d8srq13bpydblpf1d";
+    sha256 = "17lq6ns5qhspd171zqh76yf98xnn5n0hcl7hbhbx63cc6ribf6xx";
   };
 
   patches = [
@@ -73,12 +73,6 @@ in stdenv.mkDerivation rec {
     # Use absolute paths instead of relying on PATH
     # to make sure plug-ins are loaded by the correct interpreter.
     ./hardcode-plugin-interpreters.patch
-
-    # Fix crash without dot.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/f83fd22c4b8701ffc4ce14383e5e22756a4bce04.patch";
-      sha256 = "POuvBhOSStO7hBGp4HgNx5F9pElFRoqN3W+i3u4zOnk=";
-    })
   ];
 
   nativeBuildInputs = [
@@ -87,6 +81,7 @@ in stdenv.mkDerivation rec {
     intltool
     gettext
     makeWrapper
+    gtk-doc
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
index 307866c377ad..2b8dbbc4d28d 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -38,7 +38,7 @@ let
   }
   // attrs
   // {
-      name = "${gimp.name}-plugin-${name}";
+      name = "${gimp.pname}-plugin-${name}";
       buildInputs = [
         gimp
         gimp.gtk
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
index bb81a374fea2..679e9136c44a 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
@@ -1,4 +1,4 @@
-{ lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, gnome3, plugins ? null}:
+{ lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, gnome, plugins ? null}:
 
 let
 allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues gimpPlugins);
@@ -18,7 +18,7 @@ in symlinkJoin {
       wrapProgram $out/bin/$each \
         --set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \
         --set GIMP2_DATADIR "$out/share/gimp/2.0" \
-        --prefix GTK_PATH : "${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
+        --prefix GTK_PATH : "${gnome.gnome-themes-extra}/lib/gtk-2.0" \
         ${toString extraArgs}
     done
     set +x
diff --git a/nixpkgs/pkgs/applications/graphics/glabels/default.nix b/nixpkgs/pkgs/applications/graphics/glabels/default.nix
index 33337739364e..c2ce2840379c 100644
--- a/nixpkgs/pkgs/applications/graphics/glabels/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/glabels/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, barcode, gnome3, autoreconfHook
+{ lib, stdenv, fetchurl, barcode, gnome, autoreconfHook
 , gtk3, gtk-doc, libxml2, librsvg , libtool, libe-book, gsettings-desktop-schemas
 , intltool, itstool, makeWrapper, pkg-config, yelp-tools
 }:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper intltool ];
   buildInputs = [
     barcode gtk3 gtk-doc yelp-tools
-    gnome3.gnome-common gsettings-desktop-schemas
+    gnome.gnome-common gsettings-desktop-schemas
     itstool libxml2 librsvg libe-book libtool
   ];
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix b/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix
index daa540d31e50..361b2ba38b6e 100644
--- a/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix
+++ b/nixpkgs/pkgs/applications/graphics/glimpse/wrapper.nix
@@ -1,4 +1,4 @@
-{ lib, symlinkJoin, glimpse, makeWrapper, glimpsePlugins, gnome3, plugins ? null }:
+{ lib, symlinkJoin, glimpse, makeWrapper, glimpsePlugins, gnome, plugins ? null }:
 
 let
   allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues glimpsePlugins);
@@ -19,7 +19,7 @@ symlinkJoin {
       wrapProgram $out/bin/$each \
         --set GIMP2_PLUGINDIR "$out/lib/glimpse/2.0" \
         --set GIMP2_DATADIR "$out/share/glimpse/2.0" \
-        --prefix GTK_PATH : "${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
+        --prefix GTK_PATH : "${gnome.gnome-themes-extra}/lib/gtk-2.0" \
         ${toString extraArgs}
     done
 
diff --git a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
index a710d6c1e479..f0911395404e 100644
--- a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , at-spi2-core
 , babl
 , dbus
@@ -14,7 +13,7 @@
 , gfbgraph
 , glib
 , gnome-online-accounts
-, gnome3
+, gnome
 , gobject-introspection
 , grilo
 , grilo-plugins
@@ -22,6 +21,7 @@
 , gtk3
 , itstool
 , libdazzle
+, libhandy
 , libgdata
 , libxml2
 , meson
@@ -36,32 +36,17 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-photos";
-  version = "3.38.0";
+  version = "40.0";
 
   outputs = [ "out" "installedTests" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1i64w69kk3sdf9vn7npnwrhy8qjwn0vizq200x3pgmbrfm3kjzv6";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0";
   };
 
   patches = [
     ./installed-tests-path.patch
-
-    # Port to Tracker 3
-    # https://gitlab.gnome.org/GNOME/gnome-photos/-/merge_requests/135
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/f39a85bb1a82093f4ba615494ff7e95609674fc2.patch";
-      sha256 = "M5r5WuB1JpUBVN3KxNvpMiPWj0pIpT+ImQMOiGtUgT4=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/3d847ff80d429cadf0bc59aa50caa37bf27c0201.patch";
-      sha256 = "zGjSL1qpWVJ/5Ifgh2CbhFSBR/WDAra8F+YUOemyxyU=";
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/2eb923726147b05c936dee64b205d833525db1df.patch";
-      sha256 = "vCA6NXHzmNf2GoLqzWwIyziC6puJgJ0QTLeKWsAEFAE=";
-    })
   ];
 
   nativeBuildInputs = [
@@ -93,12 +78,13 @@ stdenv.mkDerivation rec {
     gfbgraph
     glib
     gnome-online-accounts
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     grilo
     grilo-plugins
     gsettings-desktop-schemas
     gtk3
     libdazzle
+    libhandy
     libgdata
     tracker
     tracker-miners # For 'org.freedesktop.Tracker.Miner.Files' GSettings schema
@@ -122,7 +108,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
 
diff --git a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
index 616a0b713566..a44d4f6408c6 100644
--- a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -4,17 +4,17 @@
   # runtime dependencies
   imagemagick, libtiff, djvulibre, poppler_utils, ghostscript, unpaper, pdftk,
   # test dependencies
-  xvfb_run, liberation_ttf, file, tesseract }:
+  xvfb-run, liberation_ttf, file, tesseract }:
 
 with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.11.1";
+  version = "2.12.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0aigngfi5dbjihn43c6sg865i1ybfzj0w81zclzy8r9nqiqq0wma";
+    sha256 = "0x20wpqqw6534rn73660zdfy4c3jpg2n31py566k0x2nd6g0mhg5";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -94,7 +94,7 @@ perlPackages.buildPerlPackage rec {
     unpaper
     pdftk
 
-    xvfb_run
+    xvfb-run
     file
     tesseract # tests are expecting tesseract 3.x precisely
   ] ++ (with perlPackages; [
@@ -112,6 +112,12 @@ perlPackages.buildPerlPackage rec {
     # t/169_import_scan.t ........................... Dubious, test returned 1 (wstat 256, 0x100)
     rm t/169_import_scan.t
 
+    # Disable a test which passes but reports an incorrect status
+    # t/0601_Dialog_Scan.t .......................... All 14 subtests passed
+    # t/0601_Dialog_Scan.t                        (Wstat: 139 Tests: 14 Failed: 0)
+    #   Non-zero wait status: 139
+    rm t/0601_Dialog_Scan.t
+
     xvfb-run -s '-screen 0 800x600x24' \
       make test
   '';
diff --git a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
index 26de91ee2252..cd3a6f368e9c 100644
--- a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchurl
-, gnome3
+, gnome
 , pkg-config
 , meson
 , ninja
@@ -32,11 +32,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gthumb";
-  version = "3.10.2";
+  version = "3.11.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "/erkKBg3j5s8qwBgTu61t8Cnpez+ad4IuZOGd0ZDXJM=";
+    sha256 = "11bvcimamdcksgqj1ymh54yzhpwc5j8glda8brqqhwq3h2wj0j9d";
   };
 
   nativeBuildInputs = [
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     clutter-gtk
     exiv2
     glib
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gsettings-desktop-schemas
     gst_all_1.gst-plugins-base
     (gst_all_1.gst-plugins-good.override { gtkSupport = true; })
@@ -95,8 +95,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/graphics/hydrus/default.nix b/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
index 56ebbeb37228..a3b043adbe5c 100644
--- a/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
@@ -3,20 +3,21 @@
 , xz
 , wrapQtAppsHook
 , miniupnpc_2
+, enableSwftools ? false
 , swftools
 , pythonPackages
 }:
 
 pythonPackages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "436";
+  version = "441";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "v${version}";
-    sha256 = "sha256-FXm8VUEY0OZ6/dc/qNwOXekhv5H2C9jjg/eNDoMvMn0==";
+    sha256 = "13h4qcz0iqba4mwyvgmdqh99jy22x7kw20f3g43b5aq3qyk9ca2h";
   };
 
   nativeBuildInputs = [
@@ -79,7 +80,7 @@ pythonPackages.buildPythonPackage rec {
   postPatch = ''
     sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${miniupnpc_2}/bin/upnpc";' \
       -i ./hydrus/core/networking/HydrusNATPunch.py
-
+  '' + lib.optionalString enableSwftools ''
     sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${swftools}/bin/swfrender";' \
       -i ./hydrus/core/HydrusFlashHandling.py
   '';
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
index 11340fa74686..813db0984751 100644
--- a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
@@ -3,21 +3,20 @@
 , boost
 , cairo
 , cmake
-, double-conversion
 , fetchurl
 , gettext
-, gdl
 , ghostscript
 , glib
 , glib-networking
 , glibmm
 , gsl
+, gspell
 , gtk-mac-integration
 , gtkmm3
-, gtkspell3
 , gdk-pixbuf
 , imagemagick
 , lcms
+, lib2geom
 , libcdr
 , libexif
 , libpng
@@ -46,16 +45,17 @@ let
     (ps: with ps; [
       numpy
       lxml
+      pillow
       scour
     ]);
 in
 stdenv.mkDerivation rec {
   pname = "inkscape";
-  version = "1.0.2";
+  version = "1.1";
 
   src = fetchurl {
     url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.xz";
-    sha256 = "sha256-2j4jBRGgjL8h6GcQ0WFFhZT+qHhn6RV7Z+0BoE6ieYo=";
+    sha256 = "sha256-cebozj/fcC9Z28SidmZeuYLreCKwKbvb7O0t9DAXleY=";
   };
 
   # Inkscape hits the ARGMAX when linking on macOS. It appears to be
@@ -83,6 +83,10 @@ stdenv.mkDerivation rec {
       --replace "call('ps2pdf'" "call('${ghostscript}/bin/ps2pdf'"
     patchShebangs share/templates
     patchShebangs man/fix-roff-punct
+
+    # double-conversion is a dependency of 2geom
+    substituteInPlace CMakeScripts/DefineDependsandFlags.cmake \
+      --replace 'find_package(DoubleConversion REQUIRED)' ""
   '';
 
   nativeBuildInputs = [
@@ -101,8 +105,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     boehmgc
     boost
-    double-conversion
-    gdl
     gettext
     glib
     glib-networking
@@ -111,6 +113,7 @@ stdenv.mkDerivation rec {
     gtkmm3
     imagemagick
     lcms
+    lib2geom
     libcdr
     libexif
     libpng
@@ -130,7 +133,7 @@ stdenv.mkDerivation rec {
     python3Env
     zlib
   ] ++ lib.optionals (!stdenv.isDarwin) [
-    gtkspell3
+    gspell
   ] ++ lib.optionals stdenv.isDarwin [
     cairo
     gtk-mac-integration
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch b/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch
index 9428ade88630..9634be50497f 100644
--- a/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch
@@ -1,15 +1,17 @@
+diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp
+index bc6c0ed845..181467834d 100644
 --- a/src/extension/implementation/script.cpp
 +++ b/src/extension/implementation/script.cpp
-@@ -77,10 +77,10 @@ const std::map<std::string, Script::inte
-         { "python",  {"python-interpreter",  {"pythonw"           }}},
+@@ -82,10 +82,10 @@ const std::map<std::string, Script::interpreter_t> Script::interpreterTab = {
+     { "python",  {"python-interpreter",  {"pythonw"           }}},
  #elif defined __APPLE__
-         { "perl",    {"perl-interpreter",    {"perl"              }}},
--        { "python",  {"python-interpreter",  {"python3"           }}},
-+        { "python",  {"python-interpreter",  {"@python3@"         }}},
+     { "perl",    {"perl-interpreter",    {"perl"              }}},
+-    { "python",  {"python-interpreter",  {"python3"           }}},
++    { "python",  {"python-interpreter",  {"@python3@"         }}},
  #else
-         { "perl",    {"perl-interpreter",    {"perl"              }}},
--        { "python",  {"python-interpreter",  {"python3", "python" }}},
-+        { "python",  {"python-interpreter",  {"@python3@"         }}},
+     { "perl",    {"perl-interpreter",    {"perl"              }}},
+-    { "python",  {"python-interpreter",  {"python3", "python" }}},
++    { "python",  {"python-interpreter",  {"@python3@"         }}},
  #endif
-         { "python2", {"python2-interpreter", {"python2", "python" }}},
-         { "ruby",    {"ruby-interpreter",    {"ruby"    }}},
+     { "python2", {"python2-interpreter", {"python2", "python" }}},
+     { "ruby",    {"ruby-interpreter",    {"ruby"    }}},
diff --git a/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix b/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix
index cac930dae143..b974e271a675 100644
--- a/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/jpeg-archive/default.nix
@@ -22,9 +22,10 @@ stdenv.mkDerivation {
   '';
 
   makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
     "PREFIX=$(out)"
     "MOZJPEG_PREFIX=${mozjpeg}"
-    "LIBJPEG=${mozjpeg}/lib/libjpeg.so"
+    "LIBJPEG=${mozjpeg}/lib/libjpeg${stdenv.hostPlatform.extensions.sharedLibrary}"
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix b/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
index 294b6c4ca701..4b9b93505ad8 100644
--- a/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "A Graphviz dot graph viewer for KDE";
     license     = licenses.gpl2;
-    maintainers = with maintainers; [ lethalman ];
+    maintainers = with maintainers; [ ];
     platforms   = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/kodelife/default.nix b/nixpkgs/pkgs/applications/graphics/kodelife/default.nix
index 4eaab036eb95..1c4609ac55b7 100644
--- a/nixpkgs/pkgs/applications/graphics/kodelife/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/kodelife/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchzip
-, alsaLib
+, alsa-lib
 , glib
 , gst_all_1
 , libGLU, libGL
@@ -9,22 +9,20 @@
 
 stdenv.mkDerivation rec {
   pname = "kodelife";
-  version = "0.9.0.129";
+  version = "0.9.8.143";
 
   suffix = {
     aarch64-linux = "linux-arm64";
     armv7l-linux  = "linux-armhf";
-    x86_64-darwin = "macos";
     x86_64-linux  = "linux-x86_64";
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   src = fetchzip {
     url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip";
     sha256 = {
-      aarch64-linux = "0z2fqlf156348ha3zhv16kvqdx68fbwbzch2gzjm9x1na9n5k1ra";
-      armv7l-linux  = "1ppwgrmgl1j2ws9mhrscvvkamd69a6xw7x35df6d30cyj97r0mzy";
-      x86_64-darwin = "0f8vn6m3xzsiyxm2ka5wkbp63wvzrix6g1xrbpvcm3v2llmychkl";
-      x86_64-linux  = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv";
+      aarch64-linux = "0ryjmpzpfqdqrvqpq851vvrjd8ld5g91gcigpv9rxp3z1b7qdand";
+      armv7l-linux  = "08nlwn8ixndqil4m7j6c8gjxmwx8zi3in86arnwf13shk6cds5nb";
+      x86_64-linux  = "0kbz7pvh4i4a3pj1vzbzzslha825i888isvsigcqsqvipjr4798q";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
@@ -35,21 +33,23 @@ stdenv.mkDerivation rec {
   preferLocalBuild = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     mv KodeLife $out/bin
+    runHook postInstall
   '';
 
   preFixup = let
     libPath = lib.makeLibraryPath [
       stdenv.cc.cc.lib
-      alsaLib
+      alsa-lib
       glib
       gst_all_1.gstreamer
       gst_all_1.gst-plugins-base
       libGLU libGL
       xorg.libX11
     ];
-  in lib.optionalString (!stdenv.isDarwin) ''
+  in ''
     patchelf \
       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
       --set-rpath "${libPath}" \
@@ -61,6 +61,6 @@ stdenv.mkDerivation rec {
     description = "Real-time GPU shader editor";
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
-    platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-darwin" "x86_64-linux" ];
+    platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/krita/default.nix b/nixpkgs/pkgs/applications/graphics/krita/default.nix
index 4700b1dfbbf5..0c5a0fe6e3da 100644
--- a/nixpkgs/pkgs/applications/graphics/krita/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/krita/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, stdenv, makeWrapper, fetchurl, cmake, extra-cmake-modules
 , karchive, kconfig, kwidgetsaddons, kcompletion, kcoreaddons
 , kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem
-, kio, kcrash
+, kio, kcrash, breeze-icons
 , boost, libraw, fftw, eigen, exiv2, libheif, lcms2, gsl, openexr, giflib
 , openjpeg, opencolorio, vc, poppler, curl, ilmbase
 , qtmultimedia, qtx11extras, quazip
@@ -10,18 +10,18 @@
 
 mkDerivation rec {
   pname = "krita";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "121fjdv5phx1aqk21vx9k9vsc5k1w8s86gp6pamy2y31r2ph7r8y";
+    url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz";
+    sha256 = "0rwghzci2wn2jmisvnzs23yxc2z3d4dcx2qbbhcvjyi3q8ij61nl";
   };
 
-  nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip makeWrapper ];
+  nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip_4 makeWrapper ];
 
   buildInputs = [
     karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons
-    ki18n kitemmodels kitemviews kwindowsystem kio kcrash
+    ki18n kitemmodels kitemviews kwindowsystem kio kcrash breeze-icons
     boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib
     openjpeg opencolorio poppler curl ilmbase
     qtmultimedia qtx11extras quazip
@@ -48,6 +48,6 @@ mkDerivation rec {
     homepage = "https://krita.org/";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
-    license = licenses.gpl2;
+    license = licenses.gpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix b/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
index 4dae4dd3f9aa..82eab9757c73 100644
--- a/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
@@ -63,6 +63,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/lazpaint/";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix b/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
index add40043c0fa..db777b3bd77d 100644
--- a/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
@@ -17,13 +17,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mcomix3";
-  version = "unstable-2020-11-23";
+  version = "unstable-2021-04-23";
 
   # no official release on pypi/github and no build system
   src = fetchFromGitHub {
     repo   = "${pname}";
     owner  = "multiSnow";
-    rev = "cdcb27533dc7ee2ebf7b0a8ab5ba10e61c0b8ff8";
+    rev = "139344e23898c28484328fc29fd0c6659affb12d";
     sha256 = "0q9xgl60ryf7qmy5vgzgfry4rvw5j9rb4d1ilxmpjmvm7dd3fm2k";
   };
 
@@ -46,6 +46,8 @@ python3.pkgs.buildPythonApplication rec {
   installPhase = ''
     runHook preInstall
 
+    substituteInPlace mime/*.desktop \
+      --replace "Exec=mcomix" "Exec=mcomix3"
     ${python3.executable} installer.py --srcdir=mcomix --target=$libdir
     mv $libdir/mcomix/mcomixstarter.py $out/bin/${pname}
     mv $libdir/mcomix/comicthumb.py $out/bin/comicthumb
diff --git a/nixpkgs/pkgs/applications/graphics/megapixels/default.nix b/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
index 3d8a4c2bcebd..dbcf0fba2988 100644
--- a/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/megapixels/default.nix
@@ -5,8 +5,8 @@
 , ninja
 , pkg-config
 , wrapGAppsHook
-, gtk3
-, gnome3
+, epoxy
+, gtk4
 , zbar
 , tiffSupport ? true
 , libraw
@@ -26,20 +26,22 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "megapixels";
-  version = "0.16.0";
+  version = "1.0.1";
 
   src = fetchFromSourcehut {
     owner = "~martijnbraam";
     repo = "megapixels";
     rev = version;
-    sha256 = "0z7sx76x18yqf7carq6mg9lib0zbz0yrd1dsg9qd6hbf5niqis37";
+    sha256 = "0k9a5dpr5z0g7ngbhk4j22sbs1ffxiwg8wmbzgggdc9xvwmkgppr";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
 
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme zbar ]
-  ++ optional tiffSupport libraw
-  ++ optional jpgSupport graphicsmagick;
+  buildInputs = [
+    epoxy
+    gtk4
+    zbar
+  ];
 
   preFixup = optionalString (tiffSupport || jpgSupport) ''
     gappsWrapperArgs+=(
@@ -52,7 +54,7 @@ stdenv.mkDerivation rec {
     homepage = "https://sr.ht/~martijnbraam/Megapixels";
     changelog = "https://git.sr.ht/~martijnbraam/megapixels/refs/${version}";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ OPNA2608 ];
+    maintainers = with maintainers; [ OPNA2608 dotlambda ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/meme/default.nix b/nixpkgs/pkgs/applications/graphics/meme-image-generator/default.nix
index d06ff027c5bb..7418aa07c75b 100644
--- a/nixpkgs/pkgs/applications/graphics/meme/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/meme-image-generator/default.nix
@@ -1,24 +1,21 @@
 { lib
-, unstableGitUpdater
 , buildGoModule
 , fetchFromGitHub
 }:
 
-buildGoModule {
-  pname = "meme";
-  version = "unstable-2020-05-28";
+buildGoModule rec {
+  pname = "meme-image-generator";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "nomad-software";
     repo = "meme";
-    rev = "33a8b7d0de6996294a0464a605dacc17b26a6b02";
-    sha256 = "05h8d6pjszhr49xqg02nw94hm95kb7w1i7nw8jxi582fxxm2qbnm";
+    rev = "v${version}";
+    sha256 = "089r0v5az2d2njn0s3d3wd0861pcs4slg6zl0rj4cm1k5cj8yd1k";
   };
 
   vendorSha256 = null;
 
-  passthru.updateScript = unstableGitUpdater { };
-
   meta = with lib; {
     description = "A command line utility for creating image macro style memes";
     homepage = "https://github.com/nomad-software/meme";
diff --git a/nixpkgs/pkgs/applications/graphics/nomacs/default.nix b/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
index bd6d732ac684..142c76b2f6d5 100644
--- a/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
@@ -27,6 +27,15 @@ mkDerivation rec {
     sha256 = "1bq7bv4p7w67172y893lvpk90d6fgdpnylynbj2kn8m2hs6khya4";
   };
 
+  patches = [
+    # Add support for Quazip 1.x.
+    (fetchpatch {
+      url = "https://github.com/nomacs/nomacs/pull/576.patch";
+      sha256 = "11ryjvd9jbb0cqagai4a6980jfq8lrcbyw2d7z9yld1f42w9kbxm";
+      stripLen = 1;
+    })
+  ];
+
   setSourceRoot = ''
     sourceRoot=$(echo */ImageLounge)
   '';
diff --git a/nixpkgs/pkgs/applications/graphics/nufraw/default.nix b/nixpkgs/pkgs/applications/graphics/nufraw/default.nix
index e49093c568cb..f6031bea069d 100644
--- a/nixpkgs/pkgs/applications/graphics/nufraw/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/nufraw/default.nix
@@ -54,6 +54,10 @@ stdenv.mkDerivation rec {
     substituteAll ${./nufraw.thumbnailer} $out/share/thumbnailers/${pname}.thumbnailer
   '';
 
+  # Fixes an upstream issue where headers with templates were included in an extern-C scope
+  # which caused the build to fail
+  patches = [ ./move-extern-c.patch ];
+
   meta = with lib; {
     homepage = "https://nufraw.sourceforge.io/";
     description = "Utility to read and manipulate raw images from digital cameras";
diff --git a/nixpkgs/pkgs/applications/graphics/nufraw/move-extern-c.patch b/nixpkgs/pkgs/applications/graphics/nufraw/move-extern-c.patch
new file mode 100644
index 000000000000..43a4942d3e62
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/nufraw/move-extern-c.patch
@@ -0,0 +1,21 @@
+diff --git a/uf_glib.h b/uf_glib.h
+index c1a17bd..8a10800 100644
+--- a/uf_glib.h
++++ b/uf_glib.h
+@@ -13,13 +13,13 @@
+ #ifndef _UF_GLIB_H
+ #define _UF_GLIB_H
+ 
++#include <glib.h>
++#include <glib/gstdio.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-#include <glib.h>
+-#include <glib/gstdio.h>
+-
+ // g_win32_locale_filename_from_utf8 is needed only on win32
+ #ifdef _WIN32
+ #define uf_win32_locale_filename_from_utf8(__some_string__) \
diff --git a/nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix b/nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix
index ff5d4bdf41de..da5f1c5dcc49 100644
--- a/nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix
@@ -8,7 +8,7 @@
 , intltool
 , itstool
 , libxml2
-, gnome3
+, gnome
 , python3
 , gobject-introspection
 , wrapGAppsHook
diff --git a/nixpkgs/pkgs/applications/graphics/openboard/default.nix b/nixpkgs/pkgs/applications/graphics/openboard/default.nix
index 859c22192181..b30dbab1570a 100644
--- a/nixpkgs/pkgs/applications/graphics/openboard/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/openboard/default.nix
@@ -1,6 +1,6 @@
 { mkDerivation, lib, fetchFromGitHub, copyDesktopItems, makeDesktopItem, qmake
 , qtbase, qtxmlpatterns, qttools, qtwebkit, libGL, fontconfig, openssl, poppler
-, ffmpeg, libva, alsaLib, SDL, x264, libvpx, libvorbis, libtheora, libogg
+, ffmpeg, libva, alsa-lib, SDL, x264, libvpx, libvorbis, libtheora, libogg
 , libopus, lame, fdk_aac, libass, quazip, libXext, libXfixes }:
 
 let
@@ -34,7 +34,8 @@ in mkDerivation rec {
 
   postPatch = ''
     substituteInPlace OpenBoard.pro \
-      --replace '/usr/include/quazip' '${quazip}/include/quazip5' \
+      --replace '/usr/include/quazip' '${quazip}/include/QuaZip-Qt5-${quazip.version}/quazip' \
+      --replace '-lquazip5' '-lquazip1-qt5' \
       --replace '/usr/include/poppler' '${poppler.dev}/include/poppler'
   '';
 
@@ -51,7 +52,7 @@ in mkDerivation rec {
     poppler
     ffmpeg
     libva
-    alsaLib
+    alsa-lib
     SDL
     x264
     libvpx
diff --git a/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix b/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
index 5982e4abe0f7..771af5133561 100644
--- a/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
+++ b/nixpkgs/pkgs/applications/graphics/openimageio/2.x.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , boost
 , cmake
+, giflib
 , ilmbase
 , libjpeg
 , libpng
@@ -33,6 +34,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     boost
+    giflib
     ilmbase
     libjpeg
     libpng
diff --git a/nixpkgs/pkgs/applications/graphics/pencil/default.nix b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
index be3b07bf4cc7..5c5557d6d601 100644
--- a/nixpkgs/pkgs/applications/graphics/pencil/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, lib, makeWrapper, wrapGAppsHook,
   # build dependencies
-  alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig,
+  alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig,
   freetype, gdk-pixbuf, glib, glibc, gtk3, libuuid, nspr, nss, pango,
   xorg, systemd
 }:
 let
 
   deps = [
-    alsaLib
+    alsa-lib
     atk
     at-spi2-atk
     at-spi2-core
diff --git a/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix b/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
index e3ab0c772a1d..0d3a86663b30 100644
--- a/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
@@ -12,13 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pick-colour-picker";
-  version = "unstable-2019-10-11"; # "1.5.0-3ec940"
+  version = "unstable-2021-01-19";
 
   src = fetchFromGitHub {
     owner = "stuartlangridge";
     repo = "ColourPicker";
-    rev = "3ec9406d787ce373f6db0d520ed38a921edb9473";
-    sha256 = "04l8ch9297nhkgcmyhsbg0il424c8vy0isns1c7aypn0zp0dc4zd";
+    rev = "dec8f144918aa7964aaf86a346161beb7e997f09";
+    sha256 = "hW2rarfchZ3M0JVfz5RbJRvMhv2PpyLNEMyMAp2gC+o=";
+    fetchSubmodules = false;
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/pqiv/default.nix b/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
index 7948ef0f08c0..f678af706119 100644
--- a/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config
-, ffmpeg_3, gtk3, imagemagick, libarchive, libspectre, libwebp, poppler
+, ffmpeg, gtk3, imagemagick, libarchive, libspectre, libwebp, poppler
 }:
 
 stdenv.mkDerivation (rec {
@@ -14,14 +14,14 @@ stdenv.mkDerivation (rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ ffmpeg_3 gtk3 imagemagick libarchive libspectre libwebp poppler ];
+  buildInputs = [ ffmpeg gtk3 imagemagick libarchive libspectre libwebp poppler ];
 
   prePatch = "patchShebangs .";
 
   meta = with lib; {
     description = "Powerful image viewer with minimal UI";
-    homepage = "http://www.pberndt.com/Programme/Linux/pqiv";
-    license = licenses.gpl3;
+    homepage = "https://www.pberndt.com/Programme/Linux/pqiv";
+    license = licenses.gpl3Plus;
     maintainers = [];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/graphics/qvge/default.nix b/nixpkgs/pkgs/applications/graphics/qvge/default.nix
index ba7e94521426..f50e87d1eddb 100644
--- a/nixpkgs/pkgs/applications/graphics/qvge/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qvge/default.nix
@@ -9,16 +9,16 @@
 
 mkDerivation rec {
   pname = "qvge";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "ArsMasiuk";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qy73dngl1xm6mr2306ddzbbrzk6yszp3y15phs861bfxynzkqjz";
+    sha256 = "sha256-rtbUAp3l0VZsu+D9HCHM3q0UkDLflw50rYRq/LP4Wu4=";
   };
 
-  prePatch = "cd src";
+  sourceRoot = "${src.name}/src";
 
   patches = (substituteAll {
     src = ./set-graphviz-path.patch;
diff --git a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
index 626610728ae6..d6a2658d8626 100644
--- a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
   pythonPackages = python3Packages;
 in
 mkDerivation rec {
-  version = "1.12";
+  version = "1.14";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "4k0WsTsz4WwPZC8Dj85l2ntJOZkLgmBBOJcX9Bb4U7I=";
+    sha256 = "VO7pOLodXI0J7O4Y9b7YSl5BdtsIxmalFG5mqfuiJEw=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/rx/default.nix b/nixpkgs/pkgs/applications/graphics/rx/default.nix
index 78cc664accce..55349e8a08d1 100644
--- a/nixpkgs/pkgs/applications/graphics/rx/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/rx/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1pln65pqy39ijrld11d06klwzfhhzmrgdaxijpx9q7w9z66zmqb8";
   };
 
-  cargoSha256 = "143a5x61s7ywk0ljqd10jkfvs6lrhlibkm2a9lw41wq13mgzb78j";
+  cargoSha256 = "1mb9wx5h729pc9y1b0d0yiapyk0mlbvdmvwq993fcpkziwjvnl44";
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
index d2ff4339890d..8d0e32e2b4e1 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -2,7 +2,7 @@
 , libxml2, gnutls, sane-backends }:
 stdenv.mkDerivation rec {
   pname = "sane-airscan";
-  version = "0.99.24";
+  version = "0.99.26";
 
   nativeBuildInputs = [ meson ninja pkg-config ];
   buildInputs = [ avahi gnutls libjpeg libpng libxml2 sane-backends ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "alexpevzner";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2zSLC9P7Q/GMefHvmrUz6nV2hgScb4BhPAkahNBouqk=";
+    sha256 = "08snfg5zx9924ryww0kxf1kgl085yw7fg6l4f1kzlhcmqf1958w5";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/brscan5/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/brscan5/default.nix
new file mode 100644
index 000000000000..e42c0980a1bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/brscan5/default.nix
@@ -0,0 +1,98 @@
+{ stdenv, lib, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb1, avahi-compat, glib, libredirect }:
+let
+  myPatchElf = file: with lib; ''
+    patchelf --set-interpreter \
+      ${stdenv.glibc}/lib/ld-linux${optionalString stdenv.is64bit "-x86-64"}.so.2 \
+      ${file}
+  '';
+
+in
+stdenv.mkDerivation rec {
+  pname = "brscan5";
+  version = "1.2.6-0";
+  src = {
+    "i686-linux" = fetchurl {
+      url = "https://download.brother.com/welcome/dlf104034/${pname}-${version}.i386.deb";
+      sha256 = "102q745pc0168syggd4gym51qf3m3iqld3a4skfnbkm6yky4w4s8";
+    };
+    "x86_64-linux" = fetchurl {
+      url = "https://download.brother.com/welcome/dlf104033/${pname}-${version}.amd64.deb";
+      sha256 = "1pwbzhpg5nzpw2rw936vf2cr334v8iny16y8fbb1zimgzmv427wx";
+    };
+  }."${stdenv.hostPlatform.system}";
+
+  unpackPhase = ''
+    ar x $src
+    tar xfv data.tar.xz
+  '';
+
+  nativeBuildInputs = [ makeWrapper patchelf coreutils ];
+  buildInputs = [ libusb1 avahi-compat stdenv.cc.cc glib ];
+  dontBuild = true;
+
+  postPatch = ''
+    ${myPatchElf "opt/brother/scanner/brscan5/brsaneconfig5"}
+    ${myPatchElf "opt/brother/scanner/brscan5/brscan_cnetconfig"}
+    ${myPatchElf "opt/brother/scanner/brscan5/brscan_gnetconfig"}
+
+    for a in opt/brother/scanner/brscan5/*.so.* opt/brother/scanner/brscan5/brscan_[cg]netconfig; do
+      if ! test -L $a; then
+        patchelf --set-rpath ${lib.makeLibraryPath buildInputs} $a
+      fi
+    done
+
+    # driver is hardcoded to look in /opt/brother/scanner/brscan5/models for model metadata.
+    # patch it to look in /etc/opt/brother/scanner/models instead, so nixos environment.etc can make it available
+    printf '/etc/opt/brother/scanner/models\x00' | dd of=opt/brother/scanner/brscan5/libsane-brother5.so.1.0.7 bs=1 seek=84632 conv=notrunc
+  '';
+
+  installPhase = with lib; ''
+    runHook preInstall
+    PATH_TO_BRSCAN5="opt/brother/scanner/brscan5"
+    mkdir -p $out/$PATH_TO_BRSCAN5
+    cp -rp $PATH_TO_BRSCAN5/* $out/$PATH_TO_BRSCAN5
+
+
+    pushd $out/$PATH_TO_BRSCAN5
+      ln -s libLxBsDeviceAccs.so.1.0.0 libLxBsDeviceAccs.so.1
+      ln -s libLxBsNetDevAccs.so.1.0.0 libLxBsNetDevAccs.so.1
+      ln -s libLxBsScanCoreApi.so.3.0.0 libLxBsScanCoreApi.so.3
+      ln -s libLxBsUsbDevAccs.so.1.0.0 libLxBsUsbDevAccs.so.1
+      ln -s libsane-brother5.so.1.0.7 libsane-brother5.so.1
+    popd
+
+    mkdir -p $out/lib/sane
+    for file in $out/$PATH_TO_BRSCAN5/*.so.* ; do
+      ln -s $file $out/lib/sane/
+    done
+
+    makeWrapper \
+      "$out/$PATH_TO_BRSCAN5/brsaneconfig5" \
+      "$out/bin/brsaneconfig5" \
+      --suffix-each NIX_REDIRECT ":" "/etc/opt/brother/scanner/brscan5=$out/opt/brother/scanner/brscan5 /opt/brother/scanner/brscan5=$out/opt/brother/scanner/brscan5" \
+      --set LD_PRELOAD ${libredirect}/lib/libredirect.so
+
+    mkdir -p $out/etc/sane.d/dll.d
+    echo "brother5" > $out/etc/sane.d/dll.d/brother5.conf
+
+    mkdir -p $out/etc/udev/rules.d
+    cp -p $PATH_TO_BRSCAN5/udev-rules/NN-brother-mfp-brscan5-1.0.2-2.rules \
+      $out/etc/udev/rules.d/49-brother-mfp-brscan5-1.0.2-2.rules
+
+    ETCDIR=$out/etc/opt/brother/scanner/brscan5
+    mkdir -p $ETCDIR
+    cp -rp $PATH_TO_BRSCAN5/{models,brscan5.ini,brsanenetdevice.cfg} $ETCDIR/
+
+    runHook postInstall
+  '';
+
+  dontPatchELF = true;
+
+  meta = {
+    description = "Brother brscan5 sane backend driver";
+    homepage = "https://www.brother.com";
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [ mattchrist ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
index 204d87a59c4e..78b30ad44e03 100644
--- a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
@@ -12,7 +12,7 @@
 , sqlite
 , webkitgtk
 , pkg-config
-, gnome3
+, gnome
 , gst_all_1
 , libgudev
 , libraw
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
     librsvg
     librest
     gcr
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     libgdata
     libchamplain
     libsecret
@@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/applications/graphics/solvespace/default.nix b/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
index b00f7f33210c..73c5a038aab6 100644
--- a/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
@@ -3,12 +3,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "solvespace";
-  version = "v3.0.rc2";
+  version = "v3.0";
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1z0873gwcr0hybrpqy4hwislir6k2zb4s62lbsivq5nbkizy7gjm";
+    sha256 = "04aympdsjp37vp0p13mb8nwkc080hp9cdrjpyy5m1mhwkm8jm9k9";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix b/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix
index 3f29d25fbe04..2b9fee974b37 100644
--- a/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, boost, cairo, gettext, glibmm, gtk3, gtkmm3
 , libjack2, libsigcxx, libxmlxx, makeWrapper, mlt-qt5, pango, pkg-config
-, imagemagick, intltool, autoreconfHook, which, gnome3
+, imagemagick, intltool, autoreconfHook, which, gnome
 }:
 
 let
@@ -107,7 +107,7 @@ stdenv.mkDerivation {
   buildInputs = [
     ETL boost cairo glibmm gtk3 gtkmm3 imagemagick intltool
     libjack2 libsigcxx libxmlxx makeWrapper mlt-qt5
-    synfig which gnome3.adwaita-icon-theme
+    synfig which gnome.adwaita-icon-theme
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/graphics/tev/default.nix b/nixpkgs/pkgs/applications/graphics/tev/default.nix
index 3c48bbab0b85..6c9cee851486 100644
--- a/nixpkgs/pkgs/applications/graphics/tev/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/tev/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , cmake, wrapGAppsHook
-, libX11, libzip, glfw, libpng, xorg, gnome3
+, libX11, libzip, glfw, libpng, xorg, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     wrapProgram $out/bin/tev \
       "''${gappsWrapperArgs[@]}" \
-      --prefix PATH ":" "${gnome3.zenity}/bin"
+      --prefix PATH ":" "${gnome.zenity}/bin"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/vimiv/default.nix b/nixpkgs/pkgs/applications/graphics/vimiv/default.nix
index b5e9d0b8cf2d..a6320f774fd5 100644
--- a/nixpkgs/pkgs/applications/graphics/vimiv/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/vimiv/default.nix
@@ -1,8 +1,8 @@
 { lib, python3Packages, fetchFromGitHub, imagemagick, librsvg, gtk3, jhead
-, gnome3
+, gnome
 
 # Test requirements
-, dbus, xvfb_run, xdotool
+, dbus, xvfb-run, xdotool
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -37,8 +37,8 @@ python3Packages.buildPythonApplication rec {
       vimiv/imageactions.py
   '';
 
-  checkInputs = [ python3Packages.nose dbus.daemon xvfb_run xdotool ];
-  buildInputs = [ gnome3.adwaita-icon-theme librsvg ];
+  checkInputs = [ python3Packages.nose dbus.daemon xvfb-run xdotool ];
+  buildInputs = [ gnome.adwaita-icon-theme librsvg ];
   propagatedBuildInputs = with python3Packages; [ pillow pygobject3 gtk3 ];
 
   makeWrapperArgs = [
diff --git a/nixpkgs/pkgs/applications/kde/akonadi-calendar-tools.nix b/nixpkgs/pkgs/applications/kde/akonadi-calendar-tools.nix
new file mode 100644
index 000000000000..64fe3e1f4388
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi-calendar-tools.nix
@@ -0,0 +1,24 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kdoctools
+, akonadi
+, calendarsupport
+}:
+
+mkDerivation {
+  pname = "akonadi-calendar-tools";
+  meta = {
+    homepage = "https://github.com/KDE/akonadi-calendar-tools";
+    description = "Console applications and utilities for managing calendars in Akonadi";
+    license = with lib.licenses; [ gpl2Plus cc0 ];
+    maintainers = with lib.maintainers; [ kennyballou ];
+    platforms = lib.platforms.linux;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    akonadi
+    calendarsupport
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix b/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix
index 26b373fb3301..948f9e5d2a23 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix
+++ b/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix
@@ -2,7 +2,8 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, karchive, kcontacts, kcrash, kidentitymanagement, kio,
-  kmailtransport, kwallet, mailcommon, mailimporter, messagelib
+  kmailtransport, kwallet, mailcommon, mailimporter, messagelib,
+  qtkeychain, libsecret
 }:
 
 mkDerivation {
@@ -15,6 +16,7 @@ mkDerivation {
   buildInputs = [
     akonadi karchive kcontacts kcrash kidentitymanagement kio
     kmailtransport kwallet mailcommon mailimporter messagelib
+    qtkeychain libsecret
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch b/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
index 3e5ccc9cdaa5..d5e4fe1ee728 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
@@ -1,6 +1,6 @@
-From f4d718502ecd8242500078a7783e27caba72871e Mon Sep 17 00:00:00 2001
+From ca8ff6e6d527ee968300cce5e8cd148f6a4d256b Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Sun, 31 Jan 2021 11:00:03 -0600
+Date: Sun, 25 Apr 2021 08:00:10 -0500
 Subject: [PATCH 1/3] akonadi paths
 
 ---
@@ -11,32 +11,32 @@ Subject: [PATCH 1/3] akonadi paths
  4 files changed, 11 insertions(+), 40 deletions(-)
 
 diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
-index 31e0cf2..6436e87 100644
+index 44ceec5..eb5fa50 100644
 --- a/src/akonadicontrol/agentmanager.cpp
 +++ b/src/akonadicontrol/agentmanager.cpp
-@@ -48,7 +48,7 @@ public:
-                 []() {
-                     QCoreApplication::instance()->exit(255);
-                 });
+@@ -47,7 +47,7 @@ public:
+         connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
+             QCoreApplication::instance()->exit(255);
+         });
 -        start(QStringLiteral("akonadiserver"), args, RestartOnCrash);
-+        start(QLatin1String(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
++        start(QStringLiteral(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
      }
- 
+
      ~StorageProcessControl() override
-@@ -70,7 +70,7 @@ public:
-                 []() {
-                     qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
-                 });
+@@ -69,7 +69,7 @@ public:
+         connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
+             qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
+         });
 -        start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash);
-+        start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
++        start(QStringLiteral(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
      }
- 
+
      ~AgentServerProcessControl() override
 diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
-index c98946c..aa307ca 100644
+index 8e92e08..f98dfd8 100644
 --- a/src/akonadicontrol/agentprocessinstance.cpp
 +++ b/src/akonadicontrol/agentprocessinstance.cpp
-@@ -49,7 +49,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
+@@ -47,7 +47,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
      } else {
          Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
          const QStringList arguments = QStringList() << executable << identifier();
@@ -46,20 +46,20 @@ index c98946c..aa307ca 100644
      }
      return true;
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index d595a3a..99324f6 100644
+index 1a437ac..3550f9d 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -69,7 +69,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+@@ -72,7 +72,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
 -    QString defaultServerPath;
      QString defaultCleanShutdownCommand;
- 
+
  #ifndef Q_OS_WIN
-@@ -78,16 +77,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+@@ -80,16 +79,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
- 
+
      const bool defaultInternalServer = true;
 -#ifdef MYSQLD_EXECUTABLE
 -    if (QFile::exists(QStringLiteral(MYSQLD_EXECUTABLE))) {
@@ -75,20 +75,20 @@ index d595a3a..99324f6 100644
      if (!mysqladminPath.isEmpty()) {
  #ifndef Q_OS_WIN
          defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
-@@ -97,10 +87,10 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+@@ -99,10 +89,10 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
      }
- 
+
 -    mMysqlInstallDbPath = findExecutable(QStringLiteral("mysql_install_db"));
 +    mMysqlInstallDbPath = QLatin1String(NIXPKGS_MYSQL_MYSQL_INSTALL_DB);
      qCDebug(AKONADISERVER_LOG) << "Found mysql_install_db: " << mMysqlInstallDbPath;
- 
+
 -    mMysqlCheckPath = findExecutable(QStringLiteral("mysqlcheck"));
 +    mMysqlCheckPath = QLatin1String(NIXPKGS_MYSQL_MYSQLCHECK);
      qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
- 
+
      mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
-@@ -117,7 +107,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+@@ -119,7 +109,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -96,18 +96,18 @@ index d595a3a..99324f6 100644
 +    mMysqldPath = QLatin1String(NIXPKGS_MYSQL_MYSQLD);
      mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
      settings.endGroup();
- 
-@@ -127,9 +117,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+
+@@ -129,9 +119,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
          // intentionally not namespaced as we are the only one in this db instance when using internal mode
          mDatabaseName = QStringLiteral("akonadi");
      }
 -    if (mInternalServer && (mMysqldPath.isEmpty() || !QFile::exists(mMysqldPath))) {
 -        mMysqldPath = defaultServerPath;
 -    }
- 
+
      qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
- 
-@@ -139,9 +126,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+
+@@ -141,9 +128,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
          settings.setValue(QStringLiteral("Name"), mDatabaseName);
          settings.setValue(QStringLiteral("Host"), mHostName);
          settings.setValue(QStringLiteral("Options"), mConnectionOptions);
@@ -117,20 +117,20 @@ index d595a3a..99324f6 100644
          settings.setValue(QStringLiteral("StartServer"), mInternalServer);
          settings.endGroup();
          settings.sync();
-@@ -214,7 +198,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -215,7 +199,7 @@ bool DbConfigMysql::startInternalServer()
  #endif
- 
+
      // generate config file
 -    const QString globalConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-global.conf"));
 +    const QString globalConfig = QLatin1String(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf");
-     const QString localConfig  = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
+     const QString localConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
      const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
      if (globalConfig.isEmpty()) {
 diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
-index dd273fc..05288d9 100644
+index 4df61da..e3469c4 100644
 --- a/src/server/storage/dbconfigpostgresql.cpp
 +++ b/src/server/storage/dbconfigpostgresql.cpp
-@@ -127,9 +127,7 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
+@@ -125,9 +125,7 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -138,10 +138,10 @@ index dd273fc..05288d9 100644
      QString defaultInitDbPath;
 -    QString defaultPgUpgradePath;
      QString defaultPgData;
- 
+
  #ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
-@@ -140,12 +138,8 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
- 
+@@ -138,12 +136,8 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
+
      mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
      if (mInternalServer) {
 -        const auto paths = postgresSearchPaths(QStringLiteral("/usr/lib/postgresql"));
@@ -153,8 +153,8 @@ index dd273fc..05288d9 100644
 -        defaultPgUpgradePath = QStandardPaths::findExecutable(QStringLiteral("pg_upgrade"), paths);
          defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
      }
- 
-@@ -164,20 +158,14 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
+
+@@ -162,20 +156,14 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -177,7 +177,7 @@ index dd273fc..05288d9 100644
      qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
      mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
      if (mPgData.isEmpty()) {
-@@ -194,7 +182,6 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
+@@ -192,7 +180,6 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
              settings.setValue(QStringLiteral("Port"), mHostPort);
          }
          settings.setValue(QStringLiteral("Options"), mConnectionOptions);
@@ -185,6 +185,6 @@ index dd273fc..05288d9 100644
          settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
          settings.setValue(QStringLiteral("StartServer"), mInternalServer);
          settings.endGroup();
--- 
-2.29.2
+--
+2.31.1
 
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch b/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
index 24f59f679161..1da52dbad0e1 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
@@ -1,6 +1,6 @@
-From badd4be311afd37a99126c60490f1ae5daced6c4 Mon Sep 17 00:00:00 2001
+From f6c446cf6fab2edbd2606b4c6100903e9437362a Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Sun, 31 Jan 2021 11:00:15 -0600
+Date: Sun, 25 Apr 2021 08:01:02 -0500
 Subject: [PATCH 2/3] akonadi timestamps
 
 ---
@@ -8,19 +8,19 @@ Subject: [PATCH 2/3] akonadi timestamps
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index 99324f6..3c170a8 100644
+index 3550f9d..e9e8887 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -240,8 +240,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -241,8 +241,7 @@ bool DbConfigMysql::startInternalServer()
      bool confUpdate = false;
      QFile actualFile(actualConfig);
      // update conf only if either global (or local) is newer than actual
--    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
--            (QFileInfo(localConfig).lastModified()  > QFileInfo(actualFile).lastModified())) {
+-    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified())
+-        || (QFileInfo(localConfig).lastModified() > QFileInfo(actualFile).lastModified())) {
 +    if (true) {
          QFile globalFile(globalConfig);
          QFile localFile(localConfig);
          if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
 -- 
-2.29.2
+2.31.1
 
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch b/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
index 3aa61da73e41..73d69c5e69af 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
@@ -1,6 +1,6 @@
-From 82bfa975af60757374ffad787e56a981d6df0f98 Mon Sep 17 00:00:00 2001
+From 4b90a0bd4411a66bbe6ecf85ce89a60a58bee969 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Sun, 31 Jan 2021 11:01:24 -0600
+Date: Sun, 25 Apr 2021 08:01:21 -0500
 Subject: [PATCH 3/3] akonadi revert make relocatable
 
 ---
@@ -9,10 +9,10 @@ Subject: [PATCH 3/3] akonadi revert make relocatable
  2 files changed, 3 insertions(+), 6 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4bb5fec..35720b4 100644
+index 4e8cc81..63161b7 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -343,9 +343,6 @@ configure_package_config_file(
+@@ -368,9 +368,6 @@ configure_package_config_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
      INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
@@ -41,5 +41,5 @@ index bcf7320..1574319 100644
  # set the directories
  if(NOT AKONADI_INSTALL_DIR)
 -- 
-2.29.2
+2.31.1
 
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/default.nix b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
index fd662d7e9926..f4e4c8223509 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/default.nix
+++ b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam, substituteAll,
   extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
   boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
   kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mariadb, qttools,
@@ -33,8 +33,7 @@ mkDerivation {
     ''-DNIXPKGS_POSTGRES_PG_CTL=\"\"''
     ''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"\"''
     ''-DNIXPKGS_POSTGRES_INITDB=\"\"''
+    ''-DNIX_OUT=\"${placeholder "out"}\"''
+    ''-I${lib.getDev kio}/include/KF5''  # Fixes: kio_version.h: No such file or directory
   ];
-  preConfigure = ''
-    NIX_CFLAGS_COMPILE+=" -DNIX_OUT=\"$out\""
-  '';
 }
diff --git a/nixpkgs/pkgs/applications/kde/baloo-widgets.nix b/nixpkgs/pkgs/applications/kde/baloo-widgets.nix
index 887e7ea29860..940c47a2ac83 100644
--- a/nixpkgs/pkgs/applications/kde/baloo-widgets.nix
+++ b/nixpkgs/pkgs/applications/kde/baloo-widgets.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  baloo, kconfig, kdelibs4support, kfilemetadata, ki18n, kio, kservice
+  baloo, kconfig, kfilemetadata, ki18n, kio, kservice
 }:
 
 mkDerivation {
@@ -12,7 +12,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
-    baloo kconfig kdelibs4support kfilemetadata ki18n kio kservice
+    baloo kconfig kfilemetadata ki18n kio kservice
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/default.nix b/nixpkgs/pkgs/applications/kde/default.nix
index f8719c353b0a..686007588410 100644
--- a/nixpkgs/pkgs/applications/kde/default.nix
+++ b/nixpkgs/pkgs/applications/kde/default.nix
@@ -30,6 +30,9 @@ still shows most of the available features is in `./gwenview.nix`.
 }:
 
 let
+  minQtVersion = "5.15";
+  broken = lib.versionOlder libsForQt5.qtbase.version minQtVersion;
+
   mirror = "mirror://kde";
   srcs = import ./srcs.nix { inherit fetchurl mirror; };
 
@@ -45,10 +48,13 @@ let
 
         outputs = args.outputs or [ "out" ];
 
-        meta = {
-          platforms = lib.platforms.linux;
-          homepage = "http://www.kde.org";
-        } // (args.meta or {});
+        meta =
+          let meta = args.meta or {}; in
+          meta // {
+            homepage = meta.homepage or "http://www.kde.org";
+            platforms = meta.platforms or lib.platforms.linux;
+            broken = meta.broken or broken;
+          };
       });
 
   packages = self: with self;
@@ -62,6 +68,7 @@ let
     in {
       akonadi = callPackage ./akonadi {};
       akonadi-calendar = callPackage ./akonadi-calendar.nix {};
+      akonadi-calendar-tools = callPackage ./akonadi-calendar-tools.nix {};
       akonadi-contacts = callPackage ./akonadi-contacts.nix {};
       akonadi-import-wizard = callPackage ./akonadi-import-wizard.nix {};
       akonadi-mime = callPackage ./akonadi-mime.nix {};
@@ -87,6 +94,7 @@ let
       incidenceeditor = callPackage ./incidenceeditor.nix {};
       k3b = callPackage ./k3b.nix {};
       kaccounts-integration = callPackage ./kaccounts-integration.nix {};
+      kaccounts-providers = callPackage ./kaccounts-providers.nix {};
       kaddressbook = callPackage ./kaddressbook.nix {};
       kalarm = callPackage ./kalarm.nix {};
       kalarmcal = callPackage ./kalarmcal.nix {};
@@ -131,6 +139,7 @@ let
       kipi-plugins = callPackage ./kipi-plugins.nix {};
       kitinerary = callPackage ./kitinerary.nix {};
       kio-extras = callPackage ./kio-extras.nix {};
+      kio-gdrive = callPackage ./kio-gdrive.nix {};
       kldap = callPackage ./kldap.nix {};
       kleopatra = callPackage ./kleopatra.nix {};
       klettres = callPackage ./klettres.nix {};
diff --git a/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix b/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix
index 37613f86a7f7..123b6f0fc268 100644
--- a/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix
+++ b/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  dolphin, kdelibs4support, ki18n, kio, kxmlgui
+  dolphin, ki18n, kio, kxmlgui
 }:
 
 mkDerivation {
@@ -12,7 +12,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
-    dolphin kdelibs4support ki18n kio kxmlgui
+    dolphin ki18n kio kxmlgui
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/dolphin.nix b/nixpkgs/pkgs/applications/kde/dolphin.nix
index a558ad266773..83f698b8977c 100644
--- a/nixpkgs/pkgs/applications/kde/dolphin.nix
+++ b/nixpkgs/pkgs/applications/kde/dolphin.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   baloo, baloo-widgets, kactivities, kbookmarks, kcmutils,
-  kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
+  kcompletion, kconfig, kcoreaddons, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
   kparts, ktexteditor, kwindowsystem, phonon, solid,
   wayland, qtbase, qtwayland
@@ -19,7 +19,7 @@ mkDerivation {
   propagatedUserEnvPkgs = [ baloo ];
   propagatedBuildInputs = [
     baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
-    kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
+    kcoreaddons kdbusaddons kfilemetadata ki18n kiconthemes
     kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
     phonon solid
     wayland qtwayland
diff --git a/nixpkgs/pkgs/applications/kde/dragon.nix b/nixpkgs/pkgs/applications/kde/dragon.nix
index 0ce6459e3f65..0483d535c9a6 100644
--- a/nixpkgs/pkgs/applications/kde/dragon.nix
+++ b/nixpkgs/pkgs/applications/kde/dragon.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   baloo, baloo-widgets, kactivities, kbookmarks, kcmutils,
-  kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
+  kcompletion, kconfig, kcoreaddons, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
   kparts, ktexteditor, kwindowsystem, phonon, solid, phonon-backend-gstreamer
 }:
@@ -17,7 +17,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
     baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
-    kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
+    kcoreaddons kdbusaddons kfilemetadata ki18n kiconthemes
     kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
     phonon solid phonon-backend-gstreamer
   ];
diff --git a/nixpkgs/pkgs/applications/kde/fetch.sh b/nixpkgs/pkgs/applications/kde/fetch.sh
index 5b61590003e5..3208fce8767a 100644
--- a/nixpkgs/pkgs/applications/kde/fetch.sh
+++ b/nixpkgs/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.3/src -A '*.tar.xz' )
+WGET_ARGS=( http://download.kde.org/stable/release-service/21.04.0/src -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/applications/kde/gwenview.nix b/nixpkgs/pkgs/applications/kde/gwenview.nix
index 0cd884d5401d..5fe126c04e63 100644
--- a/nixpkgs/pkgs/applications/kde/gwenview.nix
+++ b/nixpkgs/pkgs/applications/kde/gwenview.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   exiv2, lcms2,
-  baloo, kactivities, kdelibs4support, kio, kipi-plugins, libkdcraw, libkipi,
+  baloo, kactivities, kio, kipi-plugins, kitemmodels, kparts, libkdcraw, libkipi,
   phonon, qtimageformats, qtsvg, qtx11extras, kinit
 }:
 
@@ -14,7 +14,8 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    baloo exiv2 kactivities kdelibs4support kio libkdcraw lcms2 libkipi phonon
+    baloo kactivities kio kitemmodels kparts libkdcraw libkipi phonon
+    exiv2 lcms2
     qtimageformats qtsvg qtx11extras
   ];
   propagatedUserEnvPkgs = [ kipi-plugins libkipi (lib.getBin kinit) ];
diff --git a/nixpkgs/pkgs/applications/kde/k3b.nix b/nixpkgs/pkgs/applications/kde/k3b.nix
index cc9763961f85..eed3a4fac12a 100644
--- a/nixpkgs/pkgs/applications/kde/k3b.nix
+++ b/nixpkgs/pkgs/applications/kde/k3b.nix
@@ -4,7 +4,7 @@
 , flac, lame, libmad, libmpcdec, libvorbis
 , libsamplerate, libsndfile, taglib
 , cdparanoia, cdrdao, cdrtools, dvdplusrwtools, libburn, libdvdcss, libdvdread, vcdimager
-, ffmpeg_3, libmusicbrainz3, normalize, sox, transcode, kinit
+, ffmpeg, libmusicbrainz3, normalize, sox, transcode, kinit
 }:
 
 mkDerivation {
@@ -25,7 +25,7 @@ mkDerivation {
     # cd/dvd
     cdparanoia libdvdcss libdvdread
     # others
-    ffmpeg_3 libmusicbrainz3 shared-mime-info
+    ffmpeg libmusicbrainz3 shared-mime-info
   ];
   propagatedUserEnvPkgs = [ (lib.getBin kinit) ];
   postFixup =
diff --git a/nixpkgs/pkgs/applications/kde/kaccounts-providers.nix b/nixpkgs/pkgs/applications/kde/kaccounts-providers.nix
new file mode 100644
index 000000000000..e0e5ee3cd326
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kaccounts-providers.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, lib
+, accounts-qt
+, extra-cmake-modules
+, intltool
+, kaccounts-integration
+, kcmutils
+, kcoreaddons
+, kdeclarative
+, kdoctools
+, kio
+, kpackage
+, kwallet
+, qtwebengine
+, signond
+}:
+
+mkDerivation {
+  pname = "kaccounts-providers";
+  meta = with lib; {
+    homepage = "https://community.kde.org/KTp/Setting_up_KAccounts";
+    description = "Online account providers";
+    maintainers = with maintainers; [ kennyballou ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+    intltool
+    kdoctools
+  ];
+  buildInputs = [
+    accounts-qt
+    kaccounts-integration
+    kcmutils
+    kcoreaddons
+    kdeclarative
+    kio
+    kpackage
+    kwallet
+    qtwebengine
+    signond
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kalarm.nix b/nixpkgs/pkgs/applications/kde/kalarm.nix
index 8709f26bd121..8239cdf08643 100644
--- a/nixpkgs/pkgs/applications/kde/kalarm.nix
+++ b/nixpkgs/pkgs/applications/kde/kalarm.nix
@@ -4,7 +4,7 @@
 
   kauth, kcodecs, kcompletion, kconfig, kconfigwidgets, kdbusaddons, kdoctools,
   kguiaddons, ki18n, kiconthemes, kidletime, kjobwidgets, kcmutils,
-  kdelibs4support, kio, knotifications, knotifyconfig, kservice, kwidgetsaddons,
+  kio, knotifications, knotifyconfig, kservice, kwidgetsaddons,
   kwindowsystem, kxmlgui, phonon,
 
   kimap, akonadi, akonadi-contacts, akonadi-mime, kalarmcal, kcalendarcore, kcalutils,
@@ -25,7 +25,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kauth kcodecs kcompletion kconfig kconfigwidgets kdbusaddons kdoctools
-    kguiaddons ki18n kiconthemes kidletime kjobwidgets kcmutils kdelibs4support
+    kguiaddons ki18n kiconthemes kidletime kjobwidgets kcmutils
     kio knotifications knotifyconfig kservice kwidgetsaddons kwindowsystem
     kxmlgui phonon
 
diff --git a/nixpkgs/pkgs/applications/kde/kalarmcal.nix b/nixpkgs/pkgs/applications/kde/kalarmcal.nix
index 5671174e9b1f..9296fe024e95 100644
--- a/nixpkgs/pkgs/applications/kde/kalarmcal.nix
+++ b/nixpkgs/pkgs/applications/kde/kalarmcal.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, kcalendarcore, kdelibs4support, kholidays, kidentitymanagement,
+  akonadi, kcalendarcore, kholidays, kidentitymanagement,
   kpimtextedit, kcalutils
 }:
 
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
-    akonadi kcalendarcore kdelibs4support kholidays kidentitymanagement kpimtextedit kcalutils
+    akonadi kcalendarcore kholidays kidentitymanagement kpimtextedit kcalutils
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kcachegrind.nix b/nixpkgs/pkgs/applications/kde/kcachegrind.nix
index 72c22c21ec54..5988885c4718 100644
--- a/nixpkgs/pkgs/applications/kde/kcachegrind.nix
+++ b/nixpkgs/pkgs/applications/kde/kcachegrind.nix
@@ -1,8 +1,8 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  karchive, ki18n, kio, perl, python3, php, qttools
-  , kdbusaddons
+  karchive, ki18n, kio, perl, python3, php, qttools,
+  kdbusaddons
 }:
 
 mkDerivation {
diff --git a/nixpkgs/pkgs/applications/kde/kcalutils.nix b/nixpkgs/pkgs/applications/kde/kcalutils.nix
index 1fce68e7f464..21e84dff05ff 100644
--- a/nixpkgs/pkgs/applications/kde/kcalutils.nix
+++ b/nixpkgs/pkgs/applications/kde/kcalutils.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  grantlee, kcalendarcore, kconfig, kontactinterface, kcoreaddons, kdelibs4support,
+  grantlee, kcalendarcore, kconfig, kontactinterface, kcoreaddons,
   kidentitymanagement, kpimtextedit,
 }:
 
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    grantlee kcalendarcore kconfig kontactinterface kcoreaddons kdelibs4support
+    grantlee kcalendarcore kconfig kontactinterface kcoreaddons
     kidentitymanagement kpimtextedit
   ];
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix b/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix
index 8c7b2b635c09..30bd0731a871 100644
--- a/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix
+++ b/nixpkgs/pkgs/applications/kde/kdeconnect-kde.nix
@@ -21,7 +21,9 @@
 , qca-qt5
 , qtgraphicaleffects
 , qtmultimedia
+, qtquickcontrols2
 , qtx11extras
+, breeze-icons
 , sshfs
 }:
 
@@ -46,7 +48,10 @@ mkDerivation {
     qca-qt5
     qtgraphicaleffects
     qtmultimedia
+    qtquickcontrols2
     qtx11extras
+    # otherwise buttons are blank on non-kde
+    breeze-icons
   ];
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/kde/kdenlive/default.nix b/nixpkgs/pkgs/applications/kde/kdenlive/default.nix
index 47afcd0a67e3..3beaa4427d79 100644
--- a/nixpkgs/pkgs/applications/kde/kdenlive/default.nix
+++ b/nixpkgs/pkgs/applications/kde/kdenlive/default.nix
@@ -26,6 +26,7 @@
 , phonon-backend-gstreamer
 , qtdeclarative
 , qtmultimedia
+, qtnetworkauth
 , qtquickcontrols2
 , qtscript
 , rttr
@@ -61,6 +62,7 @@ mkDerivation {
     phonon-backend-gstreamer
     qtdeclarative
     qtmultimedia
+    qtnetworkauth
     qtquickcontrols2
     qtscript
     shared-mime-info
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix b/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
index 335284aa6c4d..16ec7ccd213a 100644
--- a/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
+++ b/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
@@ -3,9 +3,10 @@
   extra-cmake-modules, kdoctools,
   shared-mime-info,
   akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
-  kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement,
+  kalarmcal, kcalutils, kcontacts, kdav, kidentitymanagement,
   kimap, kldap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
-  pimcommon, qtwebengine, libkgapi, qca-qt5, qtnetworkauth, qtspeech, qtxmlpatterns,
+  pimcommon, libkgapi, libsecret,
+  qca-qt5, qtkeychain, qtnetworkauth, qtspeech, qtwebengine, qtxmlpatterns,
 }:
 
 mkDerivation {
@@ -17,8 +18,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools shared-mime-info ];
   buildInputs = [
     akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
-    kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap
+    kalarmcal kcalutils kcontacts kdav kidentitymanagement kimap
     kldap kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
-    pimcommon libkgapi qca-qt5 qtnetworkauth qtspeech qtxmlpatterns
+    pimcommon libkgapi libsecret
+    qca-qt5 qtkeychain qtnetworkauth qtspeech qtxmlpatterns
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/khelpcenter.nix b/nixpkgs/pkgs/applications/kde/khelpcenter.nix
index 77f30d8e69b6..0270118fc55f 100644
--- a/nixpkgs/pkgs/applications/kde/khelpcenter.nix
+++ b/nixpkgs/pkgs/applications/kde/khelpcenter.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  grantlee, kcmutils, kconfig, kcoreaddons, kdbusaddons, kdelibs4support, ki18n,
+  grantlee, kcmutils, kconfig, kcoreaddons, kdbusaddons, ki18n,
   kinit, khtml, kservice, xapian
 }:
 
@@ -9,7 +9,7 @@ mkDerivation {
   pname = "khelpcenter";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    grantlee kcmutils kconfig kcoreaddons kdbusaddons kdelibs4support khtml
+    grantlee kcmutils kconfig kcoreaddons kdbusaddons khtml
     ki18n kinit kservice xapian
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kio-extras.nix b/nixpkgs/pkgs/applications/kde/kio-extras.nix
index fdc531d5d12d..4a41493a525c 100644
--- a/nixpkgs/pkgs/applications/kde/kio-extras.nix
+++ b/nixpkgs/pkgs/applications/kde/kio-extras.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, extra-cmake-modules, kdoctools, shared-mime-info,
   exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets,
   kcoreaddons, kdbusaddons, kdsoap, kguiaddons, kdnssd, kiconthemes, ki18n, kio,
-  khtml, kdelibs4support, kpty, syntax-highlighting, libmtp, libssh, openexr,
+  khtml, kpty, syntax-highlighting, libmtp, libssh, openexr,
   ilmbase, openslp, phonon, qtsvg, samba, solid, gperf
 }:
 
@@ -16,7 +16,7 @@ mkDerivation {
   buildInputs = [
     exiv2 kactivities karchive kbookmarks kconfig kconfigwidgets kcoreaddons
     kdbusaddons kdsoap kguiaddons kdnssd kiconthemes ki18n kio khtml
-    kdelibs4support kpty syntax-highlighting libmtp libssh openexr openslp
+    kpty syntax-highlighting libmtp libssh openexr openslp
     phonon qtsvg samba solid gperf
   ];
   CXXFLAGS = [ "-I${ilmbase.dev}/include/OpenEXR" ];
diff --git a/nixpkgs/pkgs/applications/kde/kio-gdrive.nix b/nixpkgs/pkgs/applications/kde/kio-gdrive.nix
new file mode 100644
index 000000000000..0be35469d406
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kio-gdrive.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kdoctools
+, kio
+, libkgapi
+, kcalendarcore
+, kcontacts
+, qtkeychain
+, libsecret
+, kaccounts-integration
+}:
+
+mkDerivation {
+  pname = "kio-gdrive";
+  meta = with lib; {
+    homepage = "https://github.com/KDE/kio-gdrive";
+    description = "KIO slave for Google APIs";
+    maintainers = with maintainers; [ kennyballou ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+  buildInputs = [
+    kcalendarcore
+    kcontacts
+    kaccounts-integration
+    libkgapi
+    libsecret
+    kio
+    qtkeychain
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kldap.nix b/nixpkgs/pkgs/applications/kde/kldap.nix
index 888ac59ddfb6..69849f757514 100644
--- a/nixpkgs/pkgs/applications/kde/kldap.nix
+++ b/nixpkgs/pkgs/applications/kde/kldap.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  cyrus_sasl, ki18n, kio, kmbox, openldap
+  cyrus_sasl, ki18n, kio, kmbox, libsecret, openldap, qtkeychain
 }:
 
 mkDerivation {
@@ -11,7 +11,7 @@ mkDerivation {
     maintainers = kdepimTeam;
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ ki18n kio kmbox ];
+  buildInputs = [ ki18n kio kmbox libsecret qtkeychain ];
   propagatedBuildInputs = [ cyrus_sasl openldap ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kmail.nix b/nixpkgs/pkgs/applications/kde/kmail.nix
index e742f566678f..d5d61694e632 100644
--- a/nixpkgs/pkgs/applications/kde/kmail.nix
+++ b/nixpkgs/pkgs/applications/kde/kmail.nix
@@ -2,12 +2,13 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig,
-  kconfigwidgets, kcoreaddons, kdelibs4support, libkdepim,
+  kconfigwidgets, kcoreaddons, libkdepim,
   kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap,
   kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
   kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
   kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon,
-  messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi, kdepim-addons
+  messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi, kdepim-addons,
+  qtkeychain, libsecret
 }:
 
 mkDerivation {
@@ -19,12 +20,12 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig
-    kconfigwidgets kcoreaddons kdelibs4support kguiaddons ki18n
+    kconfigwidgets kcoreaddons kguiaddons ki18n
     kiconthemes kinit kio kldap kmail-account-wizard kmailtransport libkdepim
     knotifications knotifyconfig kontactinterface kparts kpty kservice
     ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
     libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine
-    kdepim-addons
+    kdepim-addons qtkeychain libsecret
   ];
   propagatedUserEnvPkgs = [ kdepim-runtime kwallet akonadi ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kmailtransport.nix b/nixpkgs/pkgs/applications/kde/kmailtransport.nix
index 5efdc959afb5..976bd634e66a 100644
--- a/nixpkgs/pkgs/applications/kde/kmailtransport.nix
+++ b/nixpkgs/pkgs/applications/kde/kmailtransport.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, cyrus_sasl, kcmutils,
   ki18n, kio, kmime, kwallet, ksmtp, libkgapi,
-  kcalendarcore, kcontacts
+  kcalendarcore, kcontacts, qtkeychain, libsecret
 }:
 
 mkDerivation {
@@ -13,7 +13,10 @@ mkDerivation {
     maintainers = kdepimTeam;
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ akonadi kcmutils ki18n kio ksmtp libkgapi kcalendarcore kcontacts ];
+  buildInputs = [
+    akonadi kcmutils ki18n kio ksmtp libkgapi kcalendarcore kcontacts
+    qtkeychain libsecret
+  ];
   propagatedBuildInputs = [ akonadi-mime cyrus_sasl kmime kwallet ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kmix.nix b/nixpkgs/pkgs/applications/kde/kmix.nix
index 207fba8e77b5..a34f5a22d069 100644
--- a/nixpkgs/pkgs/applications/kde/kmix.nix
+++ b/nixpkgs/pkgs/applications/kde/kmix.nix
@@ -1,8 +1,8 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kglobalaccel, kxmlgui, kcoreaddons, kdelibs4support,
-  plasma-framework, libpulseaudio, alsaLib, libcanberra_kde
+  kglobalaccel, kxmlgui, kcoreaddons,
+  plasma-framework, libpulseaudio, alsa-lib, libcanberra_kde
 }:
 
 mkDerivation {
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    alsaLib kglobalaccel kxmlgui kcoreaddons kdelibs4support
+    alsa-lib kglobalaccel kxmlgui kcoreaddons
     libcanberra_kde libpulseaudio plasma-framework
   ];
   cmakeFlags = [ "-DKMIX_KF5_BUILD=1" ];
diff --git a/nixpkgs/pkgs/applications/kde/knotes.nix b/nixpkgs/pkgs/applications/kde/knotes.nix
index 75b92eb07bba..1907a8fe910b 100644
--- a/nixpkgs/pkgs/applications/kde/knotes.nix
+++ b/nixpkgs/pkgs/applications/kde/knotes.nix
@@ -5,7 +5,6 @@
   kdbusaddons, kdnssd, kglobalaccel, kiconthemes, kitemmodels,
   kitemviews, kcmutils, knewstuff, knotifications, knotifyconfig,
   kparts, ktextwidgets, kwidgetsaddons, kwindowsystem,
-  kdelibs4support,
   grantlee, grantleetheme, qtx11extras,
   akonadi, akonadi-notes, akonadi-search, kcalutils,
   kontactinterface, libkdepim, kmime, pimcommon, kpimtextedit,
@@ -19,7 +18,7 @@ mkDerivation {
     kcompletion kconfig kconfigwidgets kcoreaddons kcrash
     kdbusaddons kdnssd kglobalaccel kiconthemes kitemmodels kitemviews
     kcmutils knewstuff knotifications knotifyconfig kparts ktextwidgets
-    kwidgetsaddons kwindowsystem kdelibs4support
+    kwidgetsaddons kwindowsystem
     grantlee grantleetheme qtx11extras
     akonadi akonadi-notes kcalutils kontactinterface
     libkdepim kmime pimcommon kpimtextedit
diff --git a/nixpkgs/pkgs/applications/kde/kolourpaint.nix b/nixpkgs/pkgs/applications/kde/kolourpaint.nix
index 66746cf466dc..cd703c49eeec 100644
--- a/nixpkgs/pkgs/applications/kde/kolourpaint.nix
+++ b/nixpkgs/pkgs/applications/kde/kolourpaint.nix
@@ -2,14 +2,20 @@
 , mkDerivation
 , extra-cmake-modules
 , kdoctools
-, kdelibs4support
+, kguiaddons
+, kio
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
 , libkexiv2
 }:
 
 mkDerivation {
   pname = "kolourpaint";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ kdelibs4support libkexiv2 ];
+  buildInputs = [
+    kguiaddons kio ktextwidgets kwidgetsaddons kxmlgui libkexiv2
+  ];
   meta = {
     maintainers = [ lib.maintainers.fridh ];
     license = with lib.licenses; [ gpl2 ];
diff --git a/nixpkgs/pkgs/applications/kde/konqueror.nix b/nixpkgs/pkgs/applications/kde/konqueror.nix
index eb188ccef116..781368a108ff 100644
--- a/nixpkgs/pkgs/applications/kde/konqueror.nix
+++ b/nixpkgs/pkgs/applications/kde/konqueror.nix
@@ -1,16 +1,16 @@
 { lib
 , mkDerivation
 , extra-cmake-modules, kdoctools
-, kdelibs4support, kcmutils, khtml, kdesu
-, qtbase, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
+, kinit, kcmutils, khtml, kdesu
+, qtbase, qtwebengine, qtx11extras, qtscript, qtwayland
 }:
 
 mkDerivation {
   pname = "konqueror";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kdelibs4support kcmutils khtml kdesu
-    qtwebkit qtwebengine qtx11extras qtscript qtwayland
+    kcmutils khtml kinit kdesu
+    qtwebengine qtx11extras qtscript qtwayland
   ];
 
   # InitialPreference values are too high and any text/html ends up
diff --git a/nixpkgs/pkgs/applications/kde/konquest.nix b/nixpkgs/pkgs/applications/kde/konquest.nix
index 7802b9c66c39..5957df47956f 100644
--- a/nixpkgs/pkgs/applications/kde/konquest.nix
+++ b/nixpkgs/pkgs/applications/kde/konquest.nix
@@ -2,7 +2,13 @@
 , mkDerivation
 , extra-cmake-modules
 , kdoctools
-, kdelibs4support
+, kconfig
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kguiaddons
+, kxmlgui
+, kwidgetsaddons
 , libkdegames
 , qtquickcontrols
 }:
@@ -10,7 +16,11 @@
 mkDerivation {
   pname = "konquest";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ kdelibs4support libkdegames qtquickcontrols ];
+  buildInputs = [
+    kconfig kcoreaddons kcrash kdbusaddons kguiaddons kxmlgui kwidgetsaddons
+    libkdegames
+    qtquickcontrols
+  ];
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ lheckemann ];
diff --git a/nixpkgs/pkgs/applications/kde/konsole.nix b/nixpkgs/pkgs/applications/kde/konsole.nix
index b49507e0b8e3..18750d1f1605 100644
--- a/nixpkgs/pkgs/applications/kde/konsole.nix
+++ b/nixpkgs/pkgs/applications/kde/konsole.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kguiaddons,
-  ki18n, kiconthemes, kinit, kdelibs4support, kio, knotifications,
+  ki18n, kiconthemes, kinit, kio, knotifications,
   knotifyconfig, kparts, kpty, kservice, ktextwidgets, kwidgetsaddons,
   kwindowsystem, kxmlgui, qtscript, knewstuff
 }:
@@ -15,7 +15,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons kdelibs4support
+    kbookmarks kcompletion kconfig kconfigwidgets kcoreaddons
     kguiaddons ki18n kiconthemes kinit kio knotifications knotifyconfig kparts kpty
     kservice ktextwidgets kwidgetsaddons kwindowsystem kxmlgui qtscript knewstuff
   ];
diff --git a/nixpkgs/pkgs/applications/kde/kontactinterface.nix b/nixpkgs/pkgs/applications/kde/kontactinterface.nix
index b7e033deb0a0..858addcd3ffa 100644
--- a/nixpkgs/pkgs/applications/kde/kontactinterface.nix
+++ b/nixpkgs/pkgs/applications/kde/kontactinterface.nix
@@ -12,6 +12,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kiconthemes kparts kwindowsystem kxmlgui
+    kiconthemes kwindowsystem kxmlgui
   ];
+  propagatedBuildInputs = [ kparts ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/korganizer.nix b/nixpkgs/pkgs/applications/kde/korganizer.nix
index a6a28427772e..0f6689bb7585 100644
--- a/nixpkgs/pkgs/applications/kde/korganizer.nix
+++ b/nixpkgs/pkgs/applications/kde/korganizer.nix
@@ -7,7 +7,7 @@
   akonadi-calendar, akonadi-contacts, akonadi-notes, akonadi-search,
   calendarsupport, eventviews, incidenceeditor, kcalutils,
   kholidays, kidentitymanagement, kldap, kmailtransport, kontactinterface,
-  kpimtextedit, pimcommon,
+  kparts, kpimtextedit, pimcommon,
 }:
 
 mkDerivation {
@@ -24,6 +24,6 @@ mkDerivation {
     akonadi-calendar akonadi-contacts akonadi-notes akonadi-search
     calendarsupport eventviews incidenceeditor kcalutils
     kholidays kidentitymanagement kldap kmailtransport kontactinterface
-    kpimtextedit pimcommon
+    kparts kpimtextedit pimcommon
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/krfb.nix b/nixpkgs/pkgs/applications/kde/krfb.nix
index aa280d019b1d..905c72b3675e 100644
--- a/nixpkgs/pkgs/applications/kde/krfb.nix
+++ b/nixpkgs/pkgs/applications/kde/krfb.nix
@@ -1,7 +1,10 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kdelibs4support, kdnssd, libvncserver, libXtst, libXdamage, qtx11extras
+  kconfig, kcoreaddons, kcrash, kdbusaddons, kdnssd, knotifications, kwallet,
+  kwidgetsaddons, kwindowsystem, kxmlgui,
+  libvncserver, libXtst, libXdamage,
+  qtx11extras
 }:
 
 mkDerivation {
@@ -11,6 +14,11 @@ mkDerivation {
     maintainers = with lib.maintainers; [ jerith666 ];
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ libvncserver libXtst libXdamage qtx11extras ];
-  propagatedBuildInputs = [ kdelibs4support kdnssd ];
+  buildInputs = [
+    libvncserver libXtst libXdamage
+    kconfig kcoreaddons kcrash kdbusaddons knotifications kwallet kwidgetsaddons
+    kwindowsystem kxmlgui
+    qtx11extras
+  ];
+  propagatedBuildInputs = [ kdnssd ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/ktnef.nix b/nixpkgs/pkgs/applications/kde/ktnef.nix
index c264e0b53ca2..4a29acd1e7cf 100644
--- a/nixpkgs/pkgs/applications/kde/ktnef.nix
+++ b/nixpkgs/pkgs/applications/kde/ktnef.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  kcalendarcore, kcalutils, kcontacts, kdelibs4support
+  kcalendarcore, kcalutils, kcontacts
 }:
 
 mkDerivation {
@@ -12,7 +12,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
-    kcalendarcore kcalutils kcontacts kdelibs4support
+    kcalendarcore kcalutils kcontacts
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kwalletmanager.nix b/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
index b5799a24e36a..7f227f6d9e67 100644
--- a/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
+++ b/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
@@ -7,7 +7,6 @@
 , kconfigwidgets
 , kcoreaddons
 , kdbusaddons
-, kdelibs4support
 , kwallet
 , kxmlgui
 }:
@@ -20,7 +19,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kauth kcmutils kconfigwidgets kcoreaddons kdbusaddons kdelibs4support
+    kauth kcmutils kconfigwidgets kcoreaddons kdbusaddons
     kwallet kxmlgui
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kwave.nix b/nixpkgs/pkgs/applications/kde/kwave.nix
index 125e79c2c3cf..43f41c345fdf 100644
--- a/nixpkgs/pkgs/applications/kde/kwave.nix
+++ b/nixpkgs/pkgs/applications/kde/kwave.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, qtmultimedia, kcompletion, kconfig
-, kcrash, kiconthemes, kio, audiofile, libsamplerate, alsaLib, libpulseaudio, flac, id3lib
+, kcrash, kiconthemes, kio, audiofile, libsamplerate, alsa-lib, libpulseaudio, flac, id3lib
 , libogg, libmad, libopus, libvorbis, fftw, librsvg, qtbase }:
 
 mkDerivation {
@@ -17,7 +17,7 @@ mkDerivation {
     extra-cmake-modules
   ];
   buildInputs = [
-    alsaLib
+    alsa-lib
     audiofile
     kcrash
     kdoctools
diff --git a/nixpkgs/pkgs/applications/kde/libkdegames.nix b/nixpkgs/pkgs/applications/kde/libkdegames.nix
index 830837756b8b..8e96bc1ad56c 100644
--- a/nixpkgs/pkgs/applications/kde/libkdegames.nix
+++ b/nixpkgs/pkgs/applications/kde/libkdegames.nix
@@ -2,7 +2,6 @@
 , mkDerivation
 , extra-cmake-modules
 , kdoctools
-, kdelibs4support
 , qtdeclarative
 , kdeclarative
 , kdnssd
@@ -16,7 +15,7 @@ mkDerivation {
   pname = "libkdegames";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kdelibs4support qtdeclarative kdeclarative kdnssd knewstuff openal libsndfile
+    qtdeclarative kdeclarative kdnssd knewstuff openal libsndfile
     qtquickcontrols
   ];
   meta = {
diff --git a/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix b/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix
index 1f3f1542cdba..9998418ff8a3 100644
--- a/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix
+++ b/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   kdbusaddons, kcrash, kbookmarks, kiconthemes, kio, kpimtextedit,
-  kmailtransport, pimcommon, libksieve
+  kmailtransport, libksieve, pimcommon, qtkeychain, libsecret
 }:
 
 mkDerivation {
@@ -14,6 +14,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kdbusaddons kcrash kbookmarks kiconthemes kio kpimtextedit kmailtransport
-    pimcommon libksieve
+    libksieve pimcommon qtkeychain libsecret
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/srcs.nix b/nixpkgs/pkgs/applications/kde/srcs.nix
index fc179789df20..f6dd35c83a38 100644
--- a/nixpkgs/pkgs/applications/kde/srcs.nix
+++ b/nixpkgs/pkgs/applications/kde/srcs.nix
@@ -4,1795 +4,1803 @@
 
 {
   akonadi = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-20.12.3.tar.xz";
-      sha256 = "0bcjyh1w8aaq7bp0df8zla7zvddig5ziz9avj82c6d453hfsq6dr";
-      name = "akonadi-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-21.04.0.tar.xz";
+      sha256 = "1ka1cxwqvcdyy9i1p7v7vrcrs9d1kx892wzq1dw3jrq9x57l5drz";
+      name = "akonadi-21.04.0.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-calendar-20.12.3.tar.xz";
-      sha256 = "057iz29y8dvxa26kf995akgy427c20d27i59gdfnl183wikmw9wk";
-      name = "akonadi-calendar-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-calendar-21.04.0.tar.xz";
+      sha256 = "1yf92jx7x19cp95c8nbkgmz5q1cg7096gdwy525df56h3pgbm651";
+      name = "akonadi-calendar-21.04.0.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-calendar-tools-20.12.3.tar.xz";
-      sha256 = "1fdcf6s1ij2l44zg7rha9hhha1k3m4xh0mgkyc836jkqy02jx3j6";
-      name = "akonadi-calendar-tools-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-calendar-tools-21.04.0.tar.xz";
+      sha256 = "1g0k1c11lysk3mi6k83lw70d64x543pcdgc9af1hyckb6clzh2gm";
+      name = "akonadi-calendar-tools-21.04.0.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadiconsole-20.12.3.tar.xz";
-      sha256 = "0skam7yl9m28m51yj0inzcxa5rbz5r4hz104b0ncg9hjjqi7qyfl";
-      name = "akonadiconsole-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadiconsole-21.04.0.tar.xz";
+      sha256 = "0l6famxpw64w7gmknx4szsg16hjydp3cr2mp0z0dfzi4m1i64gi7";
+      name = "akonadiconsole-21.04.0.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-contacts-20.12.3.tar.xz";
-      sha256 = "1ql7rx3fj12iddsvjip17w3gqm4slcmy3id3b892xwlx4izz2dr4";
-      name = "akonadi-contacts-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-contacts-21.04.0.tar.xz";
+      sha256 = "1130dvx8dpfvqsydhx1qy83bqx4drgb762ycf10cqkjvm6sjg3jh";
+      name = "akonadi-contacts-21.04.0.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-import-wizard-20.12.3.tar.xz";
-      sha256 = "080dyygqwc4m38vqkd4yvpy1xa4302a20gcbl5vi06as750qswgn";
-      name = "akonadi-import-wizard-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-import-wizard-21.04.0.tar.xz";
+      sha256 = "1idxpymfags4zrqlagndrkp9yvr24vvd4rzm7gm2zxwilw90smdh";
+      name = "akonadi-import-wizard-21.04.0.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-mime-20.12.3.tar.xz";
-      sha256 = "1dnxswwvgm3vj5l12xnv5c7jpmrx3180xpdpgj4xp4nmzvfrfpgl";
-      name = "akonadi-mime-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-mime-21.04.0.tar.xz";
+      sha256 = "037v29sq0q46i675n177ny3n5rvndvdpvydbika89gkiyag6hh1v";
+      name = "akonadi-mime-21.04.0.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-notes-20.12.3.tar.xz";
-      sha256 = "1fp5mif6w14snrndw2w4y66hsi14x7qyr9p343hdma4lmd65lic7";
-      name = "akonadi-notes-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-notes-21.04.0.tar.xz";
+      sha256 = "0l0m3qpqj4g6j58kfc2xc48cwhhf0538h5bw5m8z123pcggp3w20";
+      name = "akonadi-notes-21.04.0.tar.xz";
     };
   };
   akonadi-search = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-search-20.12.3.tar.xz";
-      sha256 = "0bac20n5mbfvl5p5qyiy1dygv1lz0spvm37ah3bp4iz9k4maqp7q";
-      name = "akonadi-search-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akonadi-search-21.04.0.tar.xz";
+      sha256 = "189z9vqn05ph7c6sfr413hywrrqs1yn5sj84563bjf3rdzn4zp67";
+      name = "akonadi-search-21.04.0.tar.xz";
     };
   };
   akregator = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/akregator-20.12.3.tar.xz";
-      sha256 = "10friff769kq83b9nxx2wj16bgzjh9gblc9r20gvm1qw5vm4l58b";
-      name = "akregator-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/akregator-21.04.0.tar.xz";
+      sha256 = "1px3sxsbhh98822i3yxs9sq019f78njfai07rsyf9wbawa6xj2sm";
+      name = "akregator-21.04.0.tar.xz";
     };
   };
   analitza = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/analitza-20.12.3.tar.xz";
-      sha256 = "187mnzdclqmn6d7yxxvy7xhcaasmgjz6mgk43dxn7rpn20lbx800";
-      name = "analitza-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/analitza-21.04.0.tar.xz";
+      sha256 = "1g4sfcdp13xsbfc1c64pgj7ax75z9cpqgy3sri4cm4qk9d2kkj0i";
+      name = "analitza-21.04.0.tar.xz";
     };
   };
   ark = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ark-20.12.3.tar.xz";
-      sha256 = "0fsv808a554cpka4pvhk829kldm2asnk8dyvr1wiidgpjpjxzwp4";
-      name = "ark-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ark-21.04.0.tar.xz";
+      sha256 = "034ywf6favaj7cbfmcgz00yrmvpb8vxsw4yq8a7y6f40b590aphf";
+      name = "ark-21.04.0.tar.xz";
     };
   };
   artikulate = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/artikulate-20.12.3.tar.xz";
-      sha256 = "1gnnfa0mwafh5msfy41n8fib1mfp713hdyfcqsmfpb04p5251grm";
-      name = "artikulate-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/artikulate-21.04.0.tar.xz";
+      sha256 = "0pbsbhl1phfzrgb393qf60n8k20f1qkda7a0mk6rxp1zj00pg7zw";
+      name = "artikulate-21.04.0.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/audiocd-kio-20.12.3.tar.xz";
-      sha256 = "06jg3q73hnr7wswqhffj5mncnpvrlmhh4c4k5302jp0c61i5pbv0";
-      name = "audiocd-kio-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/audiocd-kio-21.04.0.tar.xz";
+      sha256 = "1bbdw5gxjzpvvbq28zhazdr2ir1i3diy7rvz77cmw7jlj98x40m0";
+      name = "audiocd-kio-21.04.0.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/baloo-widgets-20.12.3.tar.xz";
-      sha256 = "0cznzgzn8x9kgn9pjq3fybici88y4al18n0c5vv1h31vz59fqfqi";
-      name = "baloo-widgets-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/baloo-widgets-21.04.0.tar.xz";
+      sha256 = "08y590n7rrha28pyjmf3liishmfjyx422ryd5viwb21g3isdb5ir";
+      name = "baloo-widgets-21.04.0.tar.xz";
     };
   };
   blinken = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/blinken-20.12.3.tar.xz";
-      sha256 = "0vfvlrdan60dx1prd1m4vhakvz5ddi70gzagfjb5c0py9802qqgl";
-      name = "blinken-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/blinken-21.04.0.tar.xz";
+      sha256 = "00fb1a98f6qs2pjcb2hc4rh2zgnqzhg21dal0rc4ddglm0mvgq27";
+      name = "blinken-21.04.0.tar.xz";
     };
   };
   bomber = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/bomber-20.12.3.tar.xz";
-      sha256 = "03d08j8wh989fsxb632fpbjg3zwqyv70jd8msjy4ajxl4039q9sp";
-      name = "bomber-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/bomber-21.04.0.tar.xz";
+      sha256 = "0fkikbyayd5ickhjwgd57kb89698w9ni89218bc47gkqvgm7zdzy";
+      name = "bomber-21.04.0.tar.xz";
     };
   };
   bovo = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/bovo-20.12.3.tar.xz";
-      sha256 = "114rq2a7jr9f9957zfn2fgiylf4ymgx5534i8qw7h78gxnb5915v";
-      name = "bovo-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/bovo-21.04.0.tar.xz";
+      sha256 = "1k6k9hkzrnz2802k4pq0aabdbkwwdvqi8c669cjhxwqxrpxhlan3";
+      name = "bovo-21.04.0.tar.xz";
     };
   };
   calendarsupport = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/calendarsupport-20.12.3.tar.xz";
-      sha256 = "044d9aarq5agh42h88l5bjc6nfsrb5797zlq0wfyx6laxnw8yhdb";
-      name = "calendarsupport-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/calendarsupport-21.04.0.tar.xz";
+      sha256 = "0m3x1pimy5sldgzkggwxyv3r0vn802bysf73nf6azgqachj1rm4g";
+      name = "calendarsupport-21.04.0.tar.xz";
     };
   };
   cantor = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/cantor-20.12.3.tar.xz";
-      sha256 = "0f6ad4mzn54bjc1q9yxana6j5hfdgr2d7gra27x5jfcn079qjijb";
-      name = "cantor-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/cantor-21.04.0.tar.xz";
+      sha256 = "0saz2xapfqmqlh9cmz8vkhsz5ai9fjgzp5y4rg4nc77b6wfwijpp";
+      name = "cantor-21.04.0.tar.xz";
     };
   };
   cervisia = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/cervisia-20.12.3.tar.xz";
-      sha256 = "0802rws42a1ipw2m5r9k7plr7yhyicws8ryx75vivn41v4qanq15";
-      name = "cervisia-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/cervisia-21.04.0.tar.xz";
+      sha256 = "1r76mdrq4v8f850kgx6wamhhpnvj5giclnfp8ck0f86lqx228xhz";
+      name = "cervisia-21.04.0.tar.xz";
     };
   };
   dolphin = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/dolphin-20.12.3.tar.xz";
-      sha256 = "1wx1z2bfcd8irhfbh2j4bhdl72afjwfbrh1ps8xzah14vqjvi54p";
-      name = "dolphin-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/dolphin-21.04.0.tar.xz";
+      sha256 = "1gmxrxs4h9bk1lxs2gn0gv44067wk19p8mq85n6dbpry9sfyb229";
+      name = "dolphin-21.04.0.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/dolphin-plugins-20.12.3.tar.xz";
-      sha256 = "102ykanh4a0pdm0j6wns5jaq76f71y96dgymm2mbgwrfrydcmcpw";
-      name = "dolphin-plugins-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/dolphin-plugins-21.04.0.tar.xz";
+      sha256 = "1ll8yhglncbzdmq6kpzavgd2q9llfbcqjyz8x97nlwibqszrbcwz";
+      name = "dolphin-plugins-21.04.0.tar.xz";
     };
   };
   dragon = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/dragon-20.12.3.tar.xz";
-      sha256 = "0aipkxyks1b7jdbxcb6i7l2kb6gahla07h4mls8fsmal4ha808ga";
-      name = "dragon-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/dragon-21.04.0.tar.xz";
+      sha256 = "00lnrskgvxclf75h89ycgafajkw1ddqg74lv38dv9yc21lh683k9";
+      name = "dragon-21.04.0.tar.xz";
     };
   };
   elisa = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/elisa-20.12.3.tar.xz";
-      sha256 = "0rcqwx68hb8cipbd9nd3sl922i63qaaphf6fnryhg7rinh2x75vs";
-      name = "elisa-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/elisa-21.04.0.tar.xz";
+      sha256 = "152i6748pkgnbpd192wd161w001l13gyinar1gphg46gb0z898sg";
+      name = "elisa-21.04.0.tar.xz";
     };
   };
   eventviews = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/eventviews-20.12.3.tar.xz";
-      sha256 = "0pkfhvrf423irvijqjk7a2px23zi053c57lqkp3cjag9z994wqkv";
-      name = "eventviews-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/eventviews-21.04.0.tar.xz";
+      sha256 = "1zq97jfgl0k7k1nhv6zcnbicl1af86rz6hzski9hm387bh60rn5v";
+      name = "eventviews-21.04.0.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ffmpegthumbs-20.12.3.tar.xz";
-      sha256 = "1cwn3rjqghbd2ivb268g68zibqyvvn1a07hcwa8bfjxw8y5cx890";
-      name = "ffmpegthumbs-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ffmpegthumbs-21.04.0.tar.xz";
+      sha256 = "06ycd5q5b4j6xxvrfvvpfdbmzrk8xysv7k8m64yypxnv9r7h1rsa";
+      name = "ffmpegthumbs-21.04.0.tar.xz";
     };
   };
   filelight = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/filelight-20.12.3.tar.xz";
-      sha256 = "0njapqiv2201bk57wl96ky8n78a31234vf2srcjs0nrdmbcp0si0";
-      name = "filelight-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/filelight-21.04.0.tar.xz";
+      sha256 = "1bfpqc67mkqz1w7wwv3p28q0n55vc78l94nyg805zs9adk00886v";
+      name = "filelight-21.04.0.tar.xz";
     };
   };
   granatier = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/granatier-20.12.3.tar.xz";
-      sha256 = "1x2l9f9xwrqf06r2qcrlf8941k6kfqb69442cy1ss9jfl9axy3vl";
-      name = "granatier-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/granatier-21.04.0.tar.xz";
+      sha256 = "0qcnr7n2401ykgwbz4lcsgp19fkb90lfbblbmrnbcslfc5pz8jz8";
+      name = "granatier-21.04.0.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/grantlee-editor-20.12.3.tar.xz";
-      sha256 = "1n6qi2pvhrhnzpq45757s75rslpzjgl60x7g5fv9cpfjk5knqzkc";
-      name = "grantlee-editor-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/grantlee-editor-21.04.0.tar.xz";
+      sha256 = "0rfcv63flw5izccqxz7mz43hvlim1cilnmrvk2vxc258vl1a226p";
+      name = "grantlee-editor-21.04.0.tar.xz";
     };
   };
   grantleetheme = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/grantleetheme-20.12.3.tar.xz";
-      sha256 = "0z9s5bmy89k3gzczim2prvb5mnylzin93d4h4nz6j7p5sk8aqgg3";
-      name = "grantleetheme-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/grantleetheme-21.04.0.tar.xz";
+      sha256 = "1jxdi7as6c81sy7zs59y6a0gmsjz6xwh6vbcr3r64wx62hj6vyls";
+      name = "grantleetheme-21.04.0.tar.xz";
     };
   };
   gwenview = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/gwenview-20.12.3.tar.xz";
-      sha256 = "18j13db432hhgz3kdrfcs555wy1fyjap8jha0aaw4w08bx8ll8v8";
-      name = "gwenview-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/gwenview-21.04.0.tar.xz";
+      sha256 = "06yyf7f49xbcfzbm10rr0xcmyxmlafh188wq8bjc8mp7p6fq7yd5";
+      name = "gwenview-21.04.0.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/incidenceeditor-20.12.3.tar.xz";
-      sha256 = "04yf0z6wsmb7zibfvv0pgyjzfacqa3drqqbc35d0hnvjzh39q1a4";
-      name = "incidenceeditor-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/incidenceeditor-21.04.0.tar.xz";
+      sha256 = "1fch2d5jgh3raf2zqc4vapgwf3gkdfsd71djvd626q3dsbh82qxz";
+      name = "incidenceeditor-21.04.0.tar.xz";
     };
   };
   itinerary = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/itinerary-20.12.3.tar.xz";
-      sha256 = "0jpk9f11r563inbm7yrx0lwpb937b1ilgshc9i50fhaqqgii39rp";
-      name = "itinerary-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/itinerary-21.04.0.tar.xz";
+      sha256 = "132y5v5qy89hfvp1j3x6rr6bg4wdzhd177isrs110w0aizdrbjcn";
+      name = "itinerary-21.04.0.tar.xz";
     };
   };
   juk = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/juk-20.12.3.tar.xz";
-      sha256 = "01sz8qnp71z34yyvgwhami5rybnlqy3r81ki21r45lvmlbd2i9l7";
-      name = "juk-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/juk-21.04.0.tar.xz";
+      sha256 = "11plw0h56n4fmhi47rmjw8qdki3r5yf3v7zfc0svwkb12lrvcp6z";
+      name = "juk-21.04.0.tar.xz";
     };
   };
   k3b = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/k3b-20.12.3.tar.xz";
-      sha256 = "132v5jcn7dmrbb69sllyv72d2d7vg9bpnpjzfmvirqa80x0x7s48";
-      name = "k3b-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/k3b-21.04.0.tar.xz";
+      sha256 = "1a6gm7bk486fr2haap6212vzx8hhrwkgjplyyq1nb27v61rpir2n";
+      name = "k3b-21.04.0.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kaccounts-integration-20.12.3.tar.xz";
-      sha256 = "0md6jwi0295n2s8mkvc793a4sxfzf6fidwpnjal2dsxkzdr0nfcq";
-      name = "kaccounts-integration-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kaccounts-integration-21.04.0.tar.xz";
+      sha256 = "1znfyslk4w45923xfxflipf0zwxf91k949carnbhzfiplab30gpy";
+      name = "kaccounts-integration-21.04.0.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kaccounts-providers-20.12.3.tar.xz";
-      sha256 = "05q6wzdbr1vm8g8qjssk0hnzrqkpq5qrrjwgqj8nkqgipzgclwdf";
-      name = "kaccounts-providers-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kaccounts-providers-21.04.0.tar.xz";
+      sha256 = "17rnqsagg60zd5nf7hag74kc9s7nj01ps3z411j8zwa1vlbqidg0";
+      name = "kaccounts-providers-21.04.0.tar.xz";
     };
   };
   kaddressbook = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kaddressbook-20.12.3.tar.xz";
-      sha256 = "15fpcxlnf42wc2z942rrgydb21v30ml3633cvsscrbjc3vys9vc3";
-      name = "kaddressbook-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kaddressbook-21.04.0.tar.xz";
+      sha256 = "1p9lcs4jd8n52hd0mpckwiv23zivzflkih2lpdbqcw55s75g03bl";
+      name = "kaddressbook-21.04.0.tar.xz";
     };
   };
   kajongg = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kajongg-20.12.3.tar.xz";
-      sha256 = "0h3kdvrp6y6ydhbmvwc8h1l0zh16jy519k5ragwkd9039cvyryxi";
-      name = "kajongg-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kajongg-21.04.0.tar.xz";
+      sha256 = "11hxc0scc700zmw5736z3vcign09g5rgnfmg98z3j34bms7iff5n";
+      name = "kajongg-21.04.0.tar.xz";
     };
   };
   kalarm = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kalarm-20.12.3.tar.xz";
-      sha256 = "0pkr9vm5hvdwyqb2mpi1qq5cxv0fd8czlq2hq8kb4ghskwd2nm6z";
-      name = "kalarm-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kalarm-21.04.0.tar.xz";
+      sha256 = "1zcyc6nlsdh9ixl10n6xlnfj78z6j218a9aipj1vws0jx7zahl12";
+      name = "kalarm-21.04.0.tar.xz";
     };
   };
   kalarmcal = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kalarmcal-20.12.3.tar.xz";
-      sha256 = "184qdpwwqnwlny0iil2vrw6x1al575mm6fx9iqbpg6hwz131nzhg";
-      name = "kalarmcal-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kalarmcal-21.04.0.tar.xz";
+      sha256 = "0cp5mian3zkyb51l6h2j7dkdhhmhk9vh33yvfa9x5q998sknr1m3";
+      name = "kalarmcal-21.04.0.tar.xz";
     };
   };
   kalgebra = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kalgebra-20.12.3.tar.xz";
-      sha256 = "0bx7v28qgpyjxka3kxjas6n1r5rq88vq064qscgjrn25536bg6p9";
-      name = "kalgebra-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kalgebra-21.04.0.tar.xz";
+      sha256 = "1w9vy3130kxw68fnpvzvq2k40dyain0ncsflf24fmn7dzjl4wpxn";
+      name = "kalgebra-21.04.0.tar.xz";
     };
   };
   kalzium = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kalzium-20.12.3.tar.xz";
-      sha256 = "1r7zvknc8kkx5kcs111ij6k6byj93xbg47bpi8wfh17i2fdrccw2";
-      name = "kalzium-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kalzium-21.04.0.tar.xz";
+      sha256 = "0fnqj1xnlgkb5wfx7j2zzbypyyql44srd555bdb1w0q37w1zxxgm";
+      name = "kalzium-21.04.0.tar.xz";
     };
   };
   kamera = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kamera-20.12.3.tar.xz";
-      sha256 = "0g6i4a975n9sxcjvpihz3wmldivk65i6p175vq2nik46jq6kxnj6";
-      name = "kamera-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kamera-21.04.0.tar.xz";
+      sha256 = "068ic1nf15x4h7h877q7by3hkd5dap9a2kdm7x2jwcqhwriiirw2";
+      name = "kamera-21.04.0.tar.xz";
     };
   };
   kamoso = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kamoso-20.12.3.tar.xz";
-      sha256 = "0zmhfcdihb5gd0gvnx3gmsn85dl4h1a42672592qrv7mv9yfl8x4";
-      name = "kamoso-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kamoso-21.04.0.tar.xz";
+      sha256 = "0npabci0x04g7v56x3pb5ps560d0xdshaznlci05bn3czxdas93h";
+      name = "kamoso-21.04.0.tar.xz";
     };
   };
   kanagram = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kanagram-20.12.3.tar.xz";
-      sha256 = "0yzz8apm76vhfgbx72jjfrc8z090xp9l6lr318wla809bvk92kn5";
-      name = "kanagram-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kanagram-21.04.0.tar.xz";
+      sha256 = "0ccnzrra54hqx7acsaiz8fk5gnax9y4j195hsbix7mghgb5ylz8r";
+      name = "kanagram-21.04.0.tar.xz";
     };
   };
   kapman = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kapman-20.12.3.tar.xz";
-      sha256 = "1734r0i37w8cbsmhmv6553l2prcg6l960j2j387x3lm6ynm8szl5";
-      name = "kapman-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kapman-21.04.0.tar.xz";
+      sha256 = "1i7jr8xlh3v4wz9bbc335q79zx96nfp15hhqnhkgxsqc216zn8qm";
+      name = "kapman-21.04.0.tar.xz";
     };
   };
   kapptemplate = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kapptemplate-20.12.3.tar.xz";
-      sha256 = "0587cwsjh9776zwb9dlqsn75bin5cv80yyixd9hqx86kqkxabw4c";
-      name = "kapptemplate-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kapptemplate-21.04.0.tar.xz";
+      sha256 = "0l2y562s7rk99zr5vbp03gbv0fwbd211j4n51g3yry7vbk433aiw";
+      name = "kapptemplate-21.04.0.tar.xz";
     };
   };
   kate = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kate-20.12.3.tar.xz";
-      sha256 = "1zfl53b3166ijr41bymlv0mvavjxv9sv5cf8xrpihn0rzs52vg41";
-      name = "kate-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kate-21.04.0.tar.xz";
+      sha256 = "1m11fh5c527d6b8a5wmglj9z0d2caak5bqh1g7fql1ygw06wr01p";
+      name = "kate-21.04.0.tar.xz";
     };
   };
   katomic = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/katomic-20.12.3.tar.xz";
-      sha256 = "1qmby2cp1sz31hraxybcb60a6smaf8ksy3m8nzkk7kpr11mzss0q";
-      name = "katomic-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/katomic-21.04.0.tar.xz";
+      sha256 = "0hrlmzqnw03nv334q680zwk700c8pvnaw57gh1ixphzsbx871yrk";
+      name = "katomic-21.04.0.tar.xz";
     };
   };
   kbackup = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kbackup-20.12.3.tar.xz";
-      sha256 = "04qj9645r427ki2jbj5ij243y6svw24ilwz5pz2qp0dp95wndfql";
-      name = "kbackup-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kbackup-21.04.0.tar.xz";
+      sha256 = "1l3bk7dj2grbki41fhxawrwn4vpncf3m2b5bq5ivj4vj4jc6vlyz";
+      name = "kbackup-21.04.0.tar.xz";
     };
   };
   kblackbox = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kblackbox-20.12.3.tar.xz";
-      sha256 = "0z4w3f22d8dmvmv4jmbgk91ga0qbw54xmawkikks5b0xgqkwkls7";
-      name = "kblackbox-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kblackbox-21.04.0.tar.xz";
+      sha256 = "17ba03qmyaiqda064dhxl0kwvncll7fznjvnfvby9lgdpzfjj8j9";
+      name = "kblackbox-21.04.0.tar.xz";
     };
   };
   kblocks = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kblocks-20.12.3.tar.xz";
-      sha256 = "0rsxyyaz6gs4a8qz5gsl865ky8a25hl282m293zsyd66wsc0f3hv";
-      name = "kblocks-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kblocks-21.04.0.tar.xz";
+      sha256 = "01i24fizs8d6yvyldln905vnww8ajy3aswn55xhxinjwhx9dcy7n";
+      name = "kblocks-21.04.0.tar.xz";
     };
   };
   kbounce = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kbounce-20.12.3.tar.xz";
-      sha256 = "0yyzr0zmsvfafrvy23vd4grdzpgc1w5ava0fb90x174mv0k2v55s";
-      name = "kbounce-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kbounce-21.04.0.tar.xz";
+      sha256 = "05wy4my4hil72cmj3p2hf9bshpknyps8xmp0mrbigyrzg505zjj2";
+      name = "kbounce-21.04.0.tar.xz";
     };
   };
   kbreakout = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kbreakout-20.12.3.tar.xz";
-      sha256 = "1djiixrwda25p2d8bvhkwn07v2gib35kwm94i1j5yxn0v68m86q1";
-      name = "kbreakout-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kbreakout-21.04.0.tar.xz";
+      sha256 = "0084id4wwk31m7wjkl5grcpbyqyzqx6cxixhdy48v7djdnn43jfj";
+      name = "kbreakout-21.04.0.tar.xz";
     };
   };
   kbruch = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kbruch-20.12.3.tar.xz";
-      sha256 = "1g2ihgxx6fj98cibfla9rig1mpgivs0l0ipkg5v8ax9wy7cmrx82";
-      name = "kbruch-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kbruch-21.04.0.tar.xz";
+      sha256 = "0qygd4zx039qckv4zzkgvz70wm8hg156bmb70g9g0nv5bzh4y02g";
+      name = "kbruch-21.04.0.tar.xz";
     };
   };
   kcachegrind = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kcachegrind-20.12.3.tar.xz";
-      sha256 = "1sk9bxz6lx3kadfv862d52pm69fcvg160y84y3qj59b9ms2qpqcm";
-      name = "kcachegrind-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kcachegrind-21.04.0.tar.xz";
+      sha256 = "1bdlzp35914nvbzcf4n6qrjmg7c0dc7c13kwq9gr5q6i4lvf275r";
+      name = "kcachegrind-21.04.0.tar.xz";
     };
   };
   kcalc = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kcalc-20.12.3.tar.xz";
-      sha256 = "1plq0xfaq2wwhsqddiq5wssn3k3i9dxrr5p80zanzngqcwbql1jl";
-      name = "kcalc-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kcalc-21.04.0.tar.xz";
+      sha256 = "0x0b19yaif6mjh20lbvl87phna781ya3l9hpwj2941vgvffwwpsh";
+      name = "kcalc-21.04.0.tar.xz";
     };
   };
   kcalutils = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kcalutils-20.12.3.tar.xz";
-      sha256 = "0as3900mcsdngrszd19928dfacm3qa7y1y2v65vf9mn0alz367qx";
-      name = "kcalutils-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kcalutils-21.04.0.tar.xz";
+      sha256 = "0kvl8ghwcamxayvwbsyjzib5b19v3k5hch17lj2pjsj20dgfl4qv";
+      name = "kcalutils-21.04.0.tar.xz";
     };
   };
   kcharselect = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kcharselect-20.12.3.tar.xz";
-      sha256 = "1qz96clyh7wl7sb3hkpkij96a0s9zx9saxhvbwrkqjqdhnqai8c3";
-      name = "kcharselect-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kcharselect-21.04.0.tar.xz";
+      sha256 = "1gp75qkwphgxpjkc1fwqkrbkkmc45l55ck8mqvbpz4aq8bscc0nx";
+      name = "kcharselect-21.04.0.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kcolorchooser-20.12.3.tar.xz";
-      sha256 = "0aamaml734mcbja9j4m9grp0zsxvy8ivzia49l2pmq27ci23ygad";
-      name = "kcolorchooser-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kcolorchooser-21.04.0.tar.xz";
+      sha256 = "0cgzclfmcn7l98ycm313sp8fhmx46fbn88l9cykywi27idymmb9v";
+      name = "kcolorchooser-21.04.0.tar.xz";
     };
   };
   kcron = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kcron-20.12.3.tar.xz";
-      sha256 = "0jn5mymzbifblg1sl4h9micql8baxmbpjclmlxp9r59m3vlpd0pf";
-      name = "kcron-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kcron-21.04.0.tar.xz";
+      sha256 = "144y4cn8xpkmn1gsab8wpvhqrnfidcjrbp2cy9xhx18as5ckpjn3";
+      name = "kcron-21.04.0.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdebugsettings-20.12.3.tar.xz";
-      sha256 = "1nsinb3psnvab0gc88hl374fr8f3iwxzi5ly9fg41f0z5a4hp9qv";
-      name = "kdebugsettings-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdebugsettings-21.04.0.tar.xz";
+      sha256 = "1xpbw9v9ws9i7a6ag5f6z7d15svyyx34p5vibm4p4j70vd7q5rwk";
+      name = "kdebugsettings-21.04.0.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdeconnect-kde-20.12.3.tar.xz";
-      sha256 = "1a08js0nrjzkfs46wydyz2ipivvgyc0hyyz4cxglhs5i97gab601";
-      name = "kdeconnect-kde-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdeconnect-kde-21.04.0.tar.xz";
+      sha256 = "1zbn2hi245934ljxgrzc3s2rpyapwrrkzx5vcjhnf8ri9v6sxhgp";
+      name = "kdeconnect-kde-21.04.0.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kde-dev-scripts-20.12.3.tar.xz";
-      sha256 = "1qng0232gzfzqlx5ri7lkkhri6wj9gci14xc62qqhklkmfdfx3nh";
-      name = "kde-dev-scripts-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kde-dev-scripts-21.04.0.tar.xz";
+      sha256 = "0plg145hp3bpxb2x3j8hja6fjn7yzmvx8j7zw123xnmqbzi25f6s";
+      name = "kde-dev-scripts-21.04.0.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kde-dev-utils-20.12.3.tar.xz";
-      sha256 = "09k9c0dk6gq3372zarmq7kfid7kn2s1vfdcrzal6wg57axfqs8d7";
-      name = "kde-dev-utils-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kde-dev-utils-21.04.0.tar.xz";
+      sha256 = "1cgzkhpb81s1zbx4rsfprmjn3cwqykyaaymg4bm7nqwnq97bbmc5";
+      name = "kde-dev-utils-21.04.0.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdeedu-data-20.12.3.tar.xz";
-      sha256 = "0cg62yvv39zgshqmfwl5p007b4za6x1nimfmn0hk8j9paas4ykkr";
-      name = "kdeedu-data-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdeedu-data-21.04.0.tar.xz";
+      sha256 = "0s4x0n8skwn117iiffi8rp4l5ddizfdqlc9lm49ijlvzkvhz3g3p";
+      name = "kdeedu-data-21.04.0.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdegraphics-mobipocket-20.12.3.tar.xz";
-      sha256 = "1zbizlk84idqxk0mr6zi86f3z4wrcc0k75s2s0xwfavjp5wvjj4l";
-      name = "kdegraphics-mobipocket-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdegraphics-mobipocket-21.04.0.tar.xz";
+      sha256 = "00pxfffc2xb7mszzgq6b3kp1h3m870k81rqarsy2igxxpbr3dr2p";
+      name = "kdegraphics-mobipocket-21.04.0.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdegraphics-thumbnailers-20.12.3.tar.xz";
-      sha256 = "0g3z6jai2v7pin23vk8xh66r9y8bw2768aykqhh5s507q0k8cnfx";
-      name = "kdegraphics-thumbnailers-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdegraphics-thumbnailers-21.04.0.tar.xz";
+      sha256 = "0yga4pa37zpgawq2hhc5w3scw40fwyp7901vbh6zspbdzya9lb50";
+      name = "kdegraphics-thumbnailers-21.04.0.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdenetwork-filesharing-20.12.3.tar.xz";
-      sha256 = "1lg3431wgrswam1mgck1p2kfgrwk0pk02nzh7xxgvh78104npbb2";
-      name = "kdenetwork-filesharing-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdenetwork-filesharing-21.04.0.tar.xz";
+      sha256 = "07a9pflvjf7ffi9jqx43f43wykl7z92z3pr1ca9q36fxw7cdixad";
+      name = "kdenetwork-filesharing-21.04.0.tar.xz";
     };
   };
   kdenlive = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdenlive-20.12.3.tar.xz";
-      sha256 = "11l5m19vbkjgvxcxh64ccwk33ws5sjpxr68d8459piggkdlr97wd";
-      name = "kdenlive-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdenlive-21.04.0.tar.xz";
+      sha256 = "1psb7mvffiqnv5n4b0wwa6s2ykcfkc4dxsvbxh2k67gmvq58zgmh";
+      name = "kdenlive-21.04.0.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdepim-addons-20.12.3.tar.xz";
-      sha256 = "0wd64aby2yrg937m9sfyzby3gxhwp2n1h6ijxxz7h2wi5mw3aqdp";
-      name = "kdepim-addons-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdepim-addons-21.04.0.tar.xz";
+      sha256 = "02xlp9xm15462y02wz05kn5vkg11lkiblz0cx43i8rcyiqnxbldz";
+      name = "kdepim-addons-21.04.0.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdepim-runtime-20.12.3.tar.xz";
-      sha256 = "0lp3cvkbfqd0zn7gh0as1ksknzqwxpz70zbks70wzdf4i59k2sxv";
-      name = "kdepim-runtime-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdepim-runtime-21.04.0.tar.xz";
+      sha256 = "1m1fshyivm1mz4hj9qaq33wdjkqxpjjbr0rkscb2b56a6jg4glza";
+      name = "kdepim-runtime-21.04.0.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdesdk-kioslaves-20.12.3.tar.xz";
-      sha256 = "0x48xzqg85rc639rrd7y43y1bvzyw189vydra13wbg063acx79n8";
-      name = "kdesdk-kioslaves-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdesdk-kioslaves-21.04.0.tar.xz";
+      sha256 = "068hqm1f2wllq3gcpmsib8cky6fhgpmqvmzvymcfc19ccyzwayhf";
+      name = "kdesdk-kioslaves-21.04.0.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdesdk-thumbnailers-20.12.3.tar.xz";
-      sha256 = "1n49psav0528dzg7b8h79pwngzjh1if7n47y7y8f5dj3smnyi6mv";
-      name = "kdesdk-thumbnailers-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdesdk-thumbnailers-21.04.0.tar.xz";
+      sha256 = "0cj6xsazqv94l02bp1pr5kny5id0kr5kqv3xkwv4jvmq317vfi3i";
+      name = "kdesdk-thumbnailers-21.04.0.tar.xz";
     };
   };
   kdf = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdf-20.12.3.tar.xz";
-      sha256 = "1qvjkfnagcyplkpx5v7vwfhs0xjll7g5jc0fvmkxqf38v2m5wb77";
-      name = "kdf-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdf-21.04.0.tar.xz";
+      sha256 = "1vbc75z33gx8pvy0kbmrhcg209qxxnvw7ccw83wk9hhzqg7mj5gf";
+      name = "kdf-21.04.0.tar.xz";
     };
   };
   kdialog = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdialog-20.12.3.tar.xz";
-      sha256 = "1ph26rks7yfjr28gvgyq77d8mnxxj0dxldd83lw94plhwlsnf7r3";
-      name = "kdialog-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdialog-21.04.0.tar.xz";
+      sha256 = "0damdppa2hm18nd99nzx23nac3k5ps0f5kc04cgfip4cr34rpg5s";
+      name = "kdialog-21.04.0.tar.xz";
     };
   };
   kdiamond = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kdiamond-20.12.3.tar.xz";
-      sha256 = "1wljkv0hacahc6n1x40diycvd32qlw363yzf3qm2l3h55g1ynca7";
-      name = "kdiamond-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kdiamond-21.04.0.tar.xz";
+      sha256 = "1lpwghy8v4242rm2vzm3wng43h5ys6r7spzlv53h329kpzd2259v";
+      name = "kdiamond-21.04.0.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/keditbookmarks-20.12.3.tar.xz";
-      sha256 = "0nfpdm672vs5h5ivxj6aaicj1b8nqcp7gw81jvjnq3nqk1k488v8";
-      name = "keditbookmarks-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/keditbookmarks-21.04.0.tar.xz";
+      sha256 = "1adk2g9hg7mls2vrrslmmy0nfvpgri9jlmii4pqfwl9kilcnk7lc";
+      name = "keditbookmarks-21.04.0.tar.xz";
     };
   };
   kfind = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kfind-20.12.3.tar.xz";
-      sha256 = "0rzilsw9y8cd4vmksl3jpddc0qc3y60yz7f6yk11n0hpszy0ixp6";
-      name = "kfind-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kfind-21.04.0.tar.xz";
+      sha256 = "1122h7jmsf49j7388py6pp72gfkqqzv971n7dkzpyqhfirqaigvj";
+      name = "kfind-21.04.0.tar.xz";
     };
   };
   kfloppy = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kfloppy-20.12.3.tar.xz";
-      sha256 = "00ff15fcgp1bgl4qin6md18p93wbpg3p230kgjk76qp8rmnwamg8";
-      name = "kfloppy-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kfloppy-21.04.0.tar.xz";
+      sha256 = "19maj0a469wnyindbrmqby8qikxcz38czagfygpq16y9bnkbvp3s";
+      name = "kfloppy-21.04.0.tar.xz";
     };
   };
   kfourinline = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kfourinline-20.12.3.tar.xz";
-      sha256 = "0rj1b60g7dng8yqw92lv9kk8fbnc7wwc9gbikkkjsrmw20hsl4jj";
-      name = "kfourinline-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kfourinline-21.04.0.tar.xz";
+      sha256 = "0yna3lydp0gii1rasij5593gaf4w9pbv7y5l6hz5qddb5y6r82ds";
+      name = "kfourinline-21.04.0.tar.xz";
     };
   };
   kgeography = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kgeography-20.12.3.tar.xz";
-      sha256 = "0i9sg203rbkcjl5si8fprmz31m90i5gq7ckv6vrsnmf3y0f6324m";
-      name = "kgeography-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kgeography-21.04.0.tar.xz";
+      sha256 = "1hcjp34jzz9qx8jp065gisnr9gn1v1ifnajfnaa3vc6sq1m1bvvi";
+      name = "kgeography-21.04.0.tar.xz";
     };
   };
   kget = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kget-20.12.3.tar.xz";
-      sha256 = "0kh2yv3fq6mdfqfiqiqd01l8rmr36pmcmjdqqaagsb16jprxivnl";
-      name = "kget-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kget-21.04.0.tar.xz";
+      sha256 = "0lws94g3780kdnxw2wf8vl41fq8ffxwaafma3r7p15rs05cyl1rv";
+      name = "kget-21.04.0.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kgoldrunner-20.12.3.tar.xz";
-      sha256 = "01c2ia8hs8i92ayah3jlsrqb62mcfa0phmm8rjbpnv8ybkjba720";
-      name = "kgoldrunner-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kgoldrunner-21.04.0.tar.xz";
+      sha256 = "02gldv7l8igzzmmyrkyixgzncsh0ysmfhx0lfc27pdj0mvfpm3m2";
+      name = "kgoldrunner-21.04.0.tar.xz";
     };
   };
   kgpg = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kgpg-20.12.3.tar.xz";
-      sha256 = "0z4xlgdhdagniabbzsvrpgzm2k3vwmk6li2wp9y719yj1jm23iyz";
-      name = "kgpg-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kgpg-21.04.0.tar.xz";
+      sha256 = "0a5xik5wb0b15p612lxzwqr5b58d4d7v3c7ghxmm8g27k36igqff";
+      name = "kgpg-21.04.0.tar.xz";
     };
   };
   khangman = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/khangman-20.12.3.tar.xz";
-      sha256 = "0alk18a95m5cl3zxf4y69i6vs1v027s5zwkbgrczznnxx2isv82r";
-      name = "khangman-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/khangman-21.04.0.tar.xz";
+      sha256 = "0pkqhbvw375v3cwn7ilfn7x93nadnxl07swcj5dbxn84gs33aj7c";
+      name = "khangman-21.04.0.tar.xz";
     };
   };
   khelpcenter = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/khelpcenter-20.12.3.tar.xz";
-      sha256 = "0mixgxi4a56x1xgan4rz3f6bifm21rwnm193klsd15bkd29yfa8f";
-      name = "khelpcenter-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/khelpcenter-21.04.0.tar.xz";
+      sha256 = "04fvipc3dzjl2fsgbla8w7kmv239ch86da8539gwg7l54bdmb5pv";
+      name = "khelpcenter-21.04.0.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kidentitymanagement-20.12.3.tar.xz";
-      sha256 = "161dj154r43gmw7768llanvmismf5fa141xblji6q40ss5aknsh3";
-      name = "kidentitymanagement-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kidentitymanagement-21.04.0.tar.xz";
+      sha256 = "1y83k7lzyzc5r6f7pqkbzqm1xnjv0z11vg8yazqwmfcv1whbzxda";
+      name = "kidentitymanagement-21.04.0.tar.xz";
     };
   };
   kig = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kig-20.12.3.tar.xz";
-      sha256 = "1ncy071wlyinkzhalnhg23x6n01031m2sx5kzh8gllp023mn2cnf";
-      name = "kig-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kig-21.04.0.tar.xz";
+      sha256 = "0d4p7py3lf05dsfy9x98aq6fwk6fsvf97jwxsdz4z3r49qvcp3hp";
+      name = "kig-21.04.0.tar.xz";
     };
   };
   kigo = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kigo-20.12.3.tar.xz";
-      sha256 = "1s4ykxlr47gk6n44fnv390m619i0jnxbxs4vd3vv7f9hfl65k598";
-      name = "kigo-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kigo-21.04.0.tar.xz";
+      sha256 = "0ans0mj9ql6vdmnc130sw0wkkm8rc1bpiww36a76nw8n28cfcyzi";
+      name = "kigo-21.04.0.tar.xz";
     };
   };
   killbots = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/killbots-20.12.3.tar.xz";
-      sha256 = "056slp4d9gk40i75gk42cvaq300zr228srqly2gap4879vqs04pa";
-      name = "killbots-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/killbots-21.04.0.tar.xz";
+      sha256 = "1qf2lahvi5g9cgvbgp6sj9vw1g8fcvcwaxgaqnc5akl03p51gz2k";
+      name = "killbots-21.04.0.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kimagemapeditor-20.12.3.tar.xz";
-      sha256 = "15z2mygfhk4bq212f76x60zzia1339hw1jg5vf24q2xs26gppprr";
-      name = "kimagemapeditor-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kimagemapeditor-21.04.0.tar.xz";
+      sha256 = "1f3y10bk5541sgi2qfww56mfq245a9wg38vpw2c8ygf4lc5rh67s";
+      name = "kimagemapeditor-21.04.0.tar.xz";
     };
   };
   kimap = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kimap-20.12.3.tar.xz";
-      sha256 = "080k4zyl7rlgzyfz6hsygv4wpw1hf08qnv4sbakpy3j8h6cbn79j";
-      name = "kimap-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kimap-21.04.0.tar.xz";
+      sha256 = "0fbcwsiz1q5s9d70zn7y183p477ykyjpw27i3k2mxb9ggk0h8bnx";
+      name = "kimap-21.04.0.tar.xz";
     };
   };
   kio-extras = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kio-extras-20.12.3.tar.xz";
-      sha256 = "1qj1cxzlpwh47vx7n3lm86556a53i6x3nvj5xc51mkh8pkdr0nxs";
-      name = "kio-extras-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kio-extras-21.04.0.tar.xz";
+      sha256 = "1p5kd5c4p5yc9fmppa6sivgv5kn1l9krzzw5h5y8xmi9g896yjjg";
+      name = "kio-extras-21.04.0.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kio-gdrive-20.12.3.tar.xz";
-      sha256 = "0w3vizdrjrikpgq137l5g0anvk0nb5wkr4m7pn0qma0sd03wqsa5";
-      name = "kio-gdrive-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kio-gdrive-21.04.0.tar.xz";
+      sha256 = "0p1y30syzbj7lg8hpxb5r255ba0v93gc219r1v7gb1ja5p7pjvsh";
+      name = "kio-gdrive-21.04.0.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kipi-plugins-20.12.3.tar.xz";
-      sha256 = "0wf0f6n1kpbcrlrfnmhkvcva4n86nav3lwfka29xwmk0brq35ghn";
-      name = "kipi-plugins-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kipi-plugins-21.04.0.tar.xz";
+      sha256 = "1x26yw1f47pylly2211kdld17m0p42a5miygwc7rnvasvh0dngwf";
+      name = "kipi-plugins-21.04.0.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kirigami-gallery-20.12.3.tar.xz";
-      sha256 = "0925n23wa69v69f0i3fafkaqsvn3sv41ili7c62110zx5n92qd3v";
-      name = "kirigami-gallery-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kirigami-gallery-21.04.0.tar.xz";
+      sha256 = "04hq0hikx692glb83xs8fg97dv53ayzd8lp776zv4p3sd6dpaysf";
+      name = "kirigami-gallery-21.04.0.tar.xz";
     };
   };
   kiriki = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kiriki-20.12.3.tar.xz";
-      sha256 = "0xnwdvnblz8qpgngjmmn218nrjxhy6f6z6ispszirr39mxvqgdhd";
-      name = "kiriki-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kiriki-21.04.0.tar.xz";
+      sha256 = "0dlimwhw6ii9x4m7166hbl3n6zi5pcvbsg303jm8pjc2bj83izis";
+      name = "kiriki-21.04.0.tar.xz";
     };
   };
   kiten = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kiten-20.12.3.tar.xz";
-      sha256 = "0yjfdbrm5kijf5rh45ih8x3hxcj9y9d5bivpi2xqdnl8w6dq0hnq";
-      name = "kiten-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kiten-21.04.0.tar.xz";
+      sha256 = "0vvq75q7j4j2hzzwnsr5zafphqvhwggb0mbs6y1ccb6yfm5vy3a4";
+      name = "kiten-21.04.0.tar.xz";
     };
   };
   kitinerary = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kitinerary-20.12.3.tar.xz";
-      sha256 = "1p8s27clnvn87kmlvv00j9s50n82awb19cvh4kwm7h77f3aai7jm";
-      name = "kitinerary-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kitinerary-21.04.0.tar.xz";
+      sha256 = "0sxzc2c0i1qjn5302a3cg7inx020r3n1pzjif6bhw4phynbzxliy";
+      name = "kitinerary-21.04.0.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kjumpingcube-20.12.3.tar.xz";
-      sha256 = "0rr0972scdr0x5ba3gqdprhg0ipm75577bx79m1jhkbqrcsr9kvg";
-      name = "kjumpingcube-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kjumpingcube-21.04.0.tar.xz";
+      sha256 = "12khypxl87725zs5ykwcp1ag27v5q89n9cvn879d6lp7qqs7mjx8";
+      name = "kjumpingcube-21.04.0.tar.xz";
     };
   };
   kldap = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kldap-20.12.3.tar.xz";
-      sha256 = "0lynv6101wqyi88rm34kwl4a4rdb59q69x918y4ggc4jzvgvq32c";
-      name = "kldap-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kldap-21.04.0.tar.xz";
+      sha256 = "1mqqpzqpz0hlldb0nz3dnm33d1hwpxcwj9hdqik5bzbfnr7ww04g";
+      name = "kldap-21.04.0.tar.xz";
     };
   };
   kleopatra = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kleopatra-20.12.3.tar.xz";
-      sha256 = "187agxw1s441qpskv8s74nvmsqmgh5z3mid85i8lvm5bqsdzjc5z";
-      name = "kleopatra-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kleopatra-21.04.0.tar.xz";
+      sha256 = "0w58nsklvc63ps0m92knf0n2wkmksq432ckx1959klimgqacffy0";
+      name = "kleopatra-21.04.0.tar.xz";
     };
   };
   klettres = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/klettres-20.12.3.tar.xz";
-      sha256 = "1zfbcciki2gz14b0mq7nv7pq90n2kf6dn33nkrwy086rmfm245dw";
-      name = "klettres-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/klettres-21.04.0.tar.xz";
+      sha256 = "1kxyisvmpgf4m5qzi7w6lfmnnpp96f4v72pls5k68q01ygf7mlrg";
+      name = "klettres-21.04.0.tar.xz";
     };
   };
   klickety = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/klickety-20.12.3.tar.xz";
-      sha256 = "155qhsgslx9nw4fzm5x5c09i3vwkqbl5xxa1arcxjpwsashfri2q";
-      name = "klickety-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/klickety-21.04.0.tar.xz";
+      sha256 = "0jiaxfzvdbygmfd6d0bsakzsvzkjvlhhidjz1wmvxq0jla4qna6b";
+      name = "klickety-21.04.0.tar.xz";
     };
   };
   klines = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/klines-20.12.3.tar.xz";
-      sha256 = "06syv5wxf2d9wqh5l7lwwjd0i3q8jqhimgb2ndyv2sp3p6zyx28n";
-      name = "klines-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/klines-21.04.0.tar.xz";
+      sha256 = "1ay26by2hwn7b0i48xgsxdysqpwzkvsz6g974c93103f5ygn8wjl";
+      name = "klines-21.04.0.tar.xz";
     };
   };
   kmag = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmag-20.12.3.tar.xz";
-      sha256 = "1p31i6hnhmmmx97bi1zb6c71zi1428gzf11sx66yhvfpj6vjx4rj";
-      name = "kmag-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmag-21.04.0.tar.xz";
+      sha256 = "06yw7397v5wcdx4jxpyc2mxgbxr744wgnqm7w2xb4771izlwq3qy";
+      name = "kmag-21.04.0.tar.xz";
     };
   };
   kmahjongg = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmahjongg-20.12.3.tar.xz";
-      sha256 = "1kx6l03x68cvr78iqjc7byraw714pbynavzm4vr8spadqr1scmj2";
-      name = "kmahjongg-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmahjongg-21.04.0.tar.xz";
+      sha256 = "0w4fpnafn9vir8c6ha6kl1x8vbmvmjax0p1qzxa7596hf3lvcncq";
+      name = "kmahjongg-21.04.0.tar.xz";
     };
   };
   kmail = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmail-20.12.3.tar.xz";
-      sha256 = "192wqkvq062xaq42bwl9f1rn7bc60slb3c0ika3mn446mr04s7j1";
-      name = "kmail-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmail-21.04.0.tar.xz";
+      sha256 = "11ghi1bqc8ldsb04z7fs5ba9b9fvsmcxxjp8j837iv0qz5rwh0fw";
+      name = "kmail-21.04.0.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmail-account-wizard-20.12.3.tar.xz";
-      sha256 = "1djc4fl5nyvnz26kbpqav5qy6azcrl0vmfaphmh4msx01823w50n";
-      name = "kmail-account-wizard-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmail-account-wizard-21.04.0.tar.xz";
+      sha256 = "0jalwjk5jyih765i7cpa0qidw3di17cz1fygmzgdz1v6kasg3h0c";
+      name = "kmail-account-wizard-21.04.0.tar.xz";
     };
   };
   kmailtransport = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmailtransport-20.12.3.tar.xz";
-      sha256 = "1m2r30rlmfb41m6hqmbrrw6lf7im4xlsxpfqf2h8qiss9avxf66p";
-      name = "kmailtransport-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmailtransport-21.04.0.tar.xz";
+      sha256 = "1jgw93q8jpgkg8ms7pjral1wz1ycs12ikjnsw2fiybd67syd2dns";
+      name = "kmailtransport-21.04.0.tar.xz";
     };
   };
   kmbox = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmbox-20.12.3.tar.xz";
-      sha256 = "0cwhzppckk3lv5p8nwba1vw57hkpbpgk69wnax6ad5x6nkynri8f";
-      name = "kmbox-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmbox-21.04.0.tar.xz";
+      sha256 = "01p1ihr08dnmzsq22ipy06grnz59nxyc2vfqbh6hc949mhl3kwx4";
+      name = "kmbox-21.04.0.tar.xz";
     };
   };
   kmime = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmime-20.12.3.tar.xz";
-      sha256 = "0va7xxr9bk27nalpr1959g7kbsbn4q974qhsnfvyac7qv0wnh7iq";
-      name = "kmime-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmime-21.04.0.tar.xz";
+      sha256 = "096vbbr8qnwcws7c6llxwk0klbfrhh4k83384bkhw5m5xawnqaq4";
+      name = "kmime-21.04.0.tar.xz";
     };
   };
   kmines = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmines-20.12.3.tar.xz";
-      sha256 = "11g98f8q77a1zivpv46bahqzkxna15mxm9abc5nmbhhrfl3n2ljr";
-      name = "kmines-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmines-21.04.0.tar.xz";
+      sha256 = "08dynl219n0jd58i01ccmgphc03z2x143l0a8v11x0m5cfazvzpp";
+      name = "kmines-21.04.0.tar.xz";
     };
   };
   kmix = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmix-20.12.3.tar.xz";
-      sha256 = "05za6km6lgkc79rk6iksbvfbc62110j6dlvsas2ld67cisar5y38";
-      name = "kmix-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmix-21.04.0.tar.xz";
+      sha256 = "1s2cnbmpkchp1wc5217r17ramj7a8xrm4l9hb74lyw4fc78455z2";
+      name = "kmix-21.04.0.tar.xz";
     };
   };
   kmousetool = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmousetool-20.12.3.tar.xz";
-      sha256 = "0xsjwjm517j2pqc04fvam181yrhb6qsi4nyxzc9c7xwwqm1pw03a";
-      name = "kmousetool-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmousetool-21.04.0.tar.xz";
+      sha256 = "0iaqgflnyl62ynxcip8zbxm25hgr82yc9d3z5v36mv0q3lq4bi92";
+      name = "kmousetool-21.04.0.tar.xz";
     };
   };
   kmouth = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmouth-20.12.3.tar.xz";
-      sha256 = "152xgpq8mlwpaq82cff0llwpkw2jylwbpwfbish7glqghryzrgwh";
-      name = "kmouth-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmouth-21.04.0.tar.xz";
+      sha256 = "0sza7arw0nfga6g9fv7rbkgkxmn694awzhkjbklafdvcjyn3dw2v";
+      name = "kmouth-21.04.0.tar.xz";
     };
   };
   kmplot = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kmplot-20.12.3.tar.xz";
-      sha256 = "1b70kfjp83dnslpb9732dsci3yq0iglr6ikbm6lsbf2qbxxshjl3";
-      name = "kmplot-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kmplot-21.04.0.tar.xz";
+      sha256 = "1wpz5kb06ym920ghmrfb0jh6z4nadlb7d9z0l85vkm3y1rz0iisy";
+      name = "kmplot-21.04.0.tar.xz";
     };
   };
   knavalbattle = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/knavalbattle-20.12.3.tar.xz";
-      sha256 = "1a7rja1zb06aa9brjlsd0jx3vxn3gmdq1fg0gzmmfg77mdmb3l6g";
-      name = "knavalbattle-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/knavalbattle-21.04.0.tar.xz";
+      sha256 = "0xn7mkmcr4p6c8kdcdxk7k9ifv12l0fflg2nkgmr1gbjxkpyy435";
+      name = "knavalbattle-21.04.0.tar.xz";
     };
   };
   knetwalk = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/knetwalk-20.12.3.tar.xz";
-      sha256 = "1bnm1lfp0igav57ys5yqim2wky8xpkk52zy50k5l5p32sd7g2x59";
-      name = "knetwalk-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/knetwalk-21.04.0.tar.xz";
+      sha256 = "127s5fgjpcndgbg30wd9sv3jrskq7ib4rnrw5qdfsxv8c77kv74m";
+      name = "knetwalk-21.04.0.tar.xz";
     };
   };
   knights = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/knights-20.12.3.tar.xz";
-      sha256 = "0z85xw91fqgrhz8kl1gshqy6n4ah14b5z1ajr0m0x817xy2ifys9";
-      name = "knights-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/knights-21.04.0.tar.xz";
+      sha256 = "09w3qqvp5k8z3bfwz6zlclagn11j1nar0bp2sgnjmi9cy2rs74n3";
+      name = "knights-21.04.0.tar.xz";
     };
   };
   knotes = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/knotes-20.12.3.tar.xz";
-      sha256 = "1n642jqwlg8nrmlm9xllbcdffwq3gy32pr6fp3k076x28kjg7mh6";
-      name = "knotes-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/knotes-21.04.0.tar.xz";
+      sha256 = "0zy10amznrkbj663h0b5a410ry65kh1sw2k9ra43zx45bpamh62q";
+      name = "knotes-21.04.0.tar.xz";
     };
   };
   kolf = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kolf-20.12.3.tar.xz";
-      sha256 = "1xxmw85gxs96djanx5q0vzz0h5ilckyz644vvxqillng6f54skbp";
-      name = "kolf-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kolf-21.04.0.tar.xz";
+      sha256 = "0220b4mbphb7c7p3szhi976dx8ln0f64ghika7b9x2cmdxcizfcq";
+      name = "kolf-21.04.0.tar.xz";
     };
   };
   kollision = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kollision-20.12.3.tar.xz";
-      sha256 = "16bfbhb7dlfkwbald1vsbfffphpvzc3pglcjdc3wval8kqh9f7i0";
-      name = "kollision-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kollision-21.04.0.tar.xz";
+      sha256 = "0cfn7l4ccl26rqm9i8rqp07yx6jc12xqhm16pgamrf8qv40vch9f";
+      name = "kollision-21.04.0.tar.xz";
     };
   };
   kolourpaint = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kolourpaint-20.12.3.tar.xz";
-      sha256 = "0gp9pnagajhzy2f4cmvimvwr3sfk87w6zjwi264nk0cgd41pi51g";
-      name = "kolourpaint-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kolourpaint-21.04.0.tar.xz";
+      sha256 = "0xp1kas6hk279aqm5g36qlsylpd43p9pv6vdk2dy4cilds4fc3vw";
+      name = "kolourpaint-21.04.0.tar.xz";
     };
   };
   kompare = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kompare-20.12.3.tar.xz";
-      sha256 = "0zzvcxwr2vb48i8dj1r7m9841177zdci762f5ljk5wn8lbgysmvv";
-      name = "kompare-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kompare-21.04.0.tar.xz";
+      sha256 = "17p1i4gfgzbps60zq3svicp6yz6w33wvcp145lq1iqkj80pf5qyf";
+      name = "kompare-21.04.0.tar.xz";
     };
   };
   konqueror = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/konqueror-20.12.3.tar.xz";
-      sha256 = "1y6jpq1v5yxdhanyll3kgg9m5p0ri66cvsbg3vhiay377s992927";
-      name = "konqueror-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/konqueror-21.04.0.tar.xz";
+      sha256 = "04mli5dv05v7fin58zrhm7jmddj8qa2qz7w3qdbjd3a4iz7y7z71";
+      name = "konqueror-21.04.0.tar.xz";
     };
   };
   konquest = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/konquest-20.12.3.tar.xz";
-      sha256 = "11ygcif5z7nn8x599m4dk0a8kdriiqg177f7v05pf0fhd7x72968";
-      name = "konquest-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/konquest-21.04.0.tar.xz";
+      sha256 = "1ryh7d3ndvrw8vjaraxyzyw08sx9w4yny7hdj1ss7319y041a07s";
+      name = "konquest-21.04.0.tar.xz";
     };
   };
   konsole = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/konsole-20.12.3.tar.xz";
-      sha256 = "138kvndy7xjjmac2wy2lsqi5pckba6nwbfgsdd91fbmfqkyl5k94";
-      name = "konsole-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/konsole-21.04.0.tar.xz";
+      sha256 = "1dlr0w77sccibhp37xi49bi6g4679fymgziznqxjvhk5l141f2i6";
+      name = "konsole-21.04.0.tar.xz";
     };
   };
   kontact = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kontact-20.12.3.tar.xz";
-      sha256 = "0vysa621chslz8l0xhnxs8bymkgjwqg24bhp2kw5lllz4f46iidl";
-      name = "kontact-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kontact-21.04.0.tar.xz";
+      sha256 = "08d1837kkcqc8gp9hmd351yymjdl31vg6nk1vcrlb7xsndqcsb79";
+      name = "kontact-21.04.0.tar.xz";
     };
   };
   kontactinterface = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kontactinterface-20.12.3.tar.xz";
-      sha256 = "1nqxk2x0bzndfv35g1l8yhafknyb0s68vrmcwf4kd15g5rf3k7rw";
-      name = "kontactinterface-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kontactinterface-21.04.0.tar.xz";
+      sha256 = "1h4v7jz4d5nl23fyjz946qszmidvdkayhsb1ffzk53bv8wpjh76m";
+      name = "kontactinterface-21.04.0.tar.xz";
     };
   };
   kontrast = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kontrast-20.12.3.tar.xz";
-      sha256 = "12q21d6fj29akvy6yk769pfwwhw24y13bhhbwrpnyv2ih96j9s8d";
-      name = "kontrast-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kontrast-21.04.0.tar.xz";
+      sha256 = "1bjkmhal9prizv1dlz8gdlki096a8d09bwksc0xxq3kml1r5gmfm";
+      name = "kontrast-21.04.0.tar.xz";
     };
   };
   konversation = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/konversation-20.12.3.tar.xz";
-      sha256 = "0cwnlihdidr5pxcbz4l68w1q6a9g3y1997gk7xqqnh4kz2fkc37q";
-      name = "konversation-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/konversation-21.04.0.tar.xz";
+      sha256 = "1fq4w0awg2xj6f7ivvpqrcch68ss01vnh0diwagryhrb0g0a37n7";
+      name = "konversation-21.04.0.tar.xz";
+    };
+  };
+  kopeninghours = {
+    version = "21.04.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.04.0/src/kopeninghours-21.04.0.tar.xz";
+      sha256 = "11gkri2sk1dz4hndpid4c84pxkdzc1fdpzw8h2x0141njl62421c";
+      name = "kopeninghours-21.04.0.tar.xz";
     };
   };
   kopete = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kopete-20.12.3.tar.xz";
-      sha256 = "0jl498q59dfwkazf7iqzlvia9jr6hhmkhy0hprbvww4av2si7x6w";
-      name = "kopete-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kopete-21.04.0.tar.xz";
+      sha256 = "14ypdl4xy4izg14nbdczif5i8q5kjly5gnyz032iy0cgnkarhi4q";
+      name = "kopete-21.04.0.tar.xz";
     };
   };
   korganizer = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/korganizer-20.12.3.tar.xz";
-      sha256 = "16mz7rmh65xljlf1jq719nkihr23wh840lf5cxzcx3vpk4gcc87w";
-      name = "korganizer-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/korganizer-21.04.0.tar.xz";
+      sha256 = "0znbwnzn35q4fdlj9n7hdqvq9rz3g8dyan9v1z9rh11cmdn4pc6h";
+      name = "korganizer-21.04.0.tar.xz";
     };
   };
   kosmindoormap = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kosmindoormap-20.12.3.tar.xz";
-      sha256 = "02dgnwand9sbas4v4c12xn8szgc3a7crmh8dd4q7rpcrzm2x1m9k";
-      name = "kosmindoormap-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kosmindoormap-21.04.0.tar.xz";
+      sha256 = "1c31f7b79xq9sxmfqxfs3082yrbqwkmw02brja8dg1h2avn0r3cy";
+      name = "kosmindoormap-21.04.0.tar.xz";
     };
   };
   kpat = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kpat-20.12.3.tar.xz";
-      sha256 = "1v1lzvl0xb5h4vma78ln400a81wilx16m987aijxg4c8gq4h5n11";
-      name = "kpat-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kpat-21.04.0.tar.xz";
+      sha256 = "043apdv55kc8d2dih65vb4fkwmaqybz167z0g5nfrrg0ilnqhifn";
+      name = "kpat-21.04.0.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kpimtextedit-20.12.3.tar.xz";
-      sha256 = "07lkc5zgsgvjz9544ckp17sii5bm06fynb0s046rks6z8fcncxrk";
-      name = "kpimtextedit-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kpimtextedit-21.04.0.tar.xz";
+      sha256 = "1acj6w164xg3v1svzlf4qa10kkzbhlnzrl4cp0brak81gal7bnrp";
+      name = "kpimtextedit-21.04.0.tar.xz";
     };
   };
   kpkpass = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kpkpass-20.12.3.tar.xz";
-      sha256 = "0lcgalcyfd5ggznwifwvvybj6z080gx12y4gx4mdh7jjjx0j4ng9";
-      name = "kpkpass-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kpkpass-21.04.0.tar.xz";
+      sha256 = "0s1f9j3n3ki71kzi8zw95q4v8y3dcgi5cnpq5rk03qb69yqf45xi";
+      name = "kpkpass-21.04.0.tar.xz";
     };
   };
   kpmcore = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kpmcore-20.12.3.tar.xz";
-      sha256 = "02jaz24wvw4jqi0k41067wwwy5yi6z80a1ah36ypxawzah9y94ik";
-      name = "kpmcore-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kpmcore-21.04.0.tar.xz";
+      sha256 = "0cb71d0w2jhbpm0da9rzn484930c022gxn2m4y9bgimaz0cgzcp7";
+      name = "kpmcore-21.04.0.tar.xz";
     };
   };
   kpublictransport = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kpublictransport-20.12.3.tar.xz";
-      sha256 = "15y6h44wdl78rfs40b71ijmvs2qb2ylnq72r8v6rn3fdnfhx2l4r";
-      name = "kpublictransport-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kpublictransport-21.04.0.tar.xz";
+      sha256 = "18zmsq9585d8sx6qvcfw6wb183nzga9l0b6mm06cl89bwpr2bdbb";
+      name = "kpublictransport-21.04.0.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kqtquickcharts-20.12.3.tar.xz";
-      sha256 = "1icc28acp7n8f5hiiq9rvmyv21f1ayghcr8d97lwm29aagsblx5j";
-      name = "kqtquickcharts-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kqtquickcharts-21.04.0.tar.xz";
+      sha256 = "09lw31sx93gw3s6hmwi0xaxyjnfx2nhij8iayam1sg644vx9a7ws";
+      name = "kqtquickcharts-21.04.0.tar.xz";
     };
   };
   krdc = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/krdc-20.12.3.tar.xz";
-      sha256 = "0s7wp11zcgp5z1drywm636wx5lkbalym4xxpmrb28xbdcgy9wgi2";
-      name = "krdc-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/krdc-21.04.0.tar.xz";
+      sha256 = "08iqydss6lyc6823762fq1p5c1hs7hv2crwv609gw97cvxvc8ww1";
+      name = "krdc-21.04.0.tar.xz";
     };
   };
   kreversi = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kreversi-20.12.3.tar.xz";
-      sha256 = "0v6nhrzxd7pwc7wyj1wv7spbc437vb14pwdd731w8s02223kkkzf";
-      name = "kreversi-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kreversi-21.04.0.tar.xz";
+      sha256 = "02zk0bwjmhgpk7fbvzwxap0xda2vxfyfjy38zagm5wgpgd4acsj4";
+      name = "kreversi-21.04.0.tar.xz";
     };
   };
   krfb = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/krfb-20.12.3.tar.xz";
-      sha256 = "0675smz307zwb4sdnhdlcgi7v38pxj0frr4c3cbhcpcmkjnbayc4";
-      name = "krfb-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/krfb-21.04.0.tar.xz";
+      sha256 = "0vjf10fg8nqbc7dr19i1hlqpgi1z2bcm1zrpf2rs85fi4pxrw7lg";
+      name = "krfb-21.04.0.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kross-interpreters-20.12.3.tar.xz";
-      sha256 = "1rq3gl0mndx3qhd0zk532z4m95zb4gwgahx208n6l5xh4rwgn7ck";
-      name = "kross-interpreters-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kross-interpreters-21.04.0.tar.xz";
+      sha256 = "1203gmm6pcv37k2m3yah1qgazja8qxkn18dqxmnw7fj3903mqxjw";
+      name = "kross-interpreters-21.04.0.tar.xz";
     };
   };
   kruler = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kruler-20.12.3.tar.xz";
-      sha256 = "1nvghf3gdn06nkk070zfbjmmh4z1anxxj15mwmdk3xriiwwm4w9z";
-      name = "kruler-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kruler-21.04.0.tar.xz";
+      sha256 = "0yrpkb755g2xy329336dl9yarl6dhcj5cwgv1sy75w1k3gibsz5y";
+      name = "kruler-21.04.0.tar.xz";
     };
   };
   kshisen = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kshisen-20.12.3.tar.xz";
-      sha256 = "19grx2zs26il2jplff4nb5sakvbkgsf9a91269gfjzsxzijf166q";
-      name = "kshisen-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kshisen-21.04.0.tar.xz";
+      sha256 = "087vynb6gr3l2291nvxcdk27ib10063fyhhxa7ibvfw68j612fri";
+      name = "kshisen-21.04.0.tar.xz";
     };
   };
   ksirk = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ksirk-20.12.3.tar.xz";
-      sha256 = "1rq4r5d1mhdkpfxv71s6pyaac8yaf03z4ayfhjh1azf3zvv9i8a5";
-      name = "ksirk-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ksirk-21.04.0.tar.xz";
+      sha256 = "1qrgkzgm7vnjz6mk7gqkxkx6i7p1dfnlw8fhxa6h1ihvgfmxr6kr";
+      name = "ksirk-21.04.0.tar.xz";
     };
   };
   ksmtp = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ksmtp-20.12.3.tar.xz";
-      sha256 = "0qmriih43q1lp4bq68hzlnwzab0vcjyjddyhs44gv9r83icw6rw6";
-      name = "ksmtp-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ksmtp-21.04.0.tar.xz";
+      sha256 = "0mn4ciyg0c8rxbcc3d99slm03jbca7b6gaplh8zz54p2krf86my5";
+      name = "ksmtp-21.04.0.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ksnakeduel-20.12.3.tar.xz";
-      sha256 = "132pdhfi9jy55y0ys785pz5xjw9f6fxx061ppvfy11giz9cbphsc";
-      name = "ksnakeduel-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ksnakeduel-21.04.0.tar.xz";
+      sha256 = "1s3k4k2a27rfp300bgxm1qhsg0dnlz72ip3csdixkidwcig7v017";
+      name = "ksnakeduel-21.04.0.tar.xz";
     };
   };
   kspaceduel = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kspaceduel-20.12.3.tar.xz";
-      sha256 = "0ff1dpj01szzgg6yb774lzpimlf7japkv4ns0xb3a6vp5ghfayxw";
-      name = "kspaceduel-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kspaceduel-21.04.0.tar.xz";
+      sha256 = "0acgmh4blmp2vmzqnxvphixbjmfv12al99hxwv1iavdfyl88yfqz";
+      name = "kspaceduel-21.04.0.tar.xz";
     };
   };
   ksquares = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ksquares-20.12.3.tar.xz";
-      sha256 = "0qp2j4abjjvazcqv9zyclvb425587dcwrsnlfrv7ami64ndr7xkb";
-      name = "ksquares-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ksquares-21.04.0.tar.xz";
+      sha256 = "1y23c86qz1qcmjzfsrj974c4ccai4rrp7ajmwxi7wgzgzwypflir";
+      name = "ksquares-21.04.0.tar.xz";
     };
   };
   ksudoku = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ksudoku-20.12.3.tar.xz";
-      sha256 = "0ykippr4d9s7mkmnqpbb3wa2l9cbhrmhvqaargm0553iqnwh6w4r";
-      name = "ksudoku-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ksudoku-21.04.0.tar.xz";
+      sha256 = "0r6m6jpjpz759gq40bxh5n7lg89gn2kfmiik2i06d1slz9v54iv0";
+      name = "ksudoku-21.04.0.tar.xz";
     };
   };
   ksystemlog = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ksystemlog-20.12.3.tar.xz";
-      sha256 = "1szh1iqriynpsbcrilia46vpsj52ifk8q0paib79byf9wals4gqy";
-      name = "ksystemlog-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ksystemlog-21.04.0.tar.xz";
+      sha256 = "06az8kfsp468hr3xzcfbra81xbfv12w2jzhd4n2cirsi6k8vhx14";
+      name = "ksystemlog-21.04.0.tar.xz";
     };
   };
   kteatime = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kteatime-20.12.3.tar.xz";
-      sha256 = "1y9cc8xjfn3pqmqh34lrnq2slj8y09k3njwkxkxzk20ni676j5ph";
-      name = "kteatime-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kteatime-21.04.0.tar.xz";
+      sha256 = "1zk7gbdsxyw59lfr0r2nnxm08jjls0zcp7wqkm4sq2gyczs73vy5";
+      name = "kteatime-21.04.0.tar.xz";
     };
   };
   ktimer = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktimer-20.12.3.tar.xz";
-      sha256 = "1yypwzrqkl09hbc8d24m51pjz8lzj80xi6f86xb0jazdl7d83flw";
-      name = "ktimer-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktimer-21.04.0.tar.xz";
+      sha256 = "0czwbd0id7a9w8wwpfsv2s06xc9my996bcdj0bn37091yik1wqzr";
+      name = "ktimer-21.04.0.tar.xz";
     };
   };
   ktnef = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktnef-20.12.3.tar.xz";
-      sha256 = "0wvqi09kz49m9lbxnk8070ikp4syhrxb90dgyiz1vax12baz7mvq";
-      name = "ktnef-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktnef-21.04.0.tar.xz";
+      sha256 = "0zs0bfb2g7rxcxc7ngjzszrcnj9qarpnig7b29xcrmnsxppa9z8y";
+      name = "ktnef-21.04.0.tar.xz";
     };
   };
   ktorrent = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktorrent-20.12.3.tar.xz";
-      sha256 = "12gj8bmbgvplc6r8ic104q18hq4dwiajhj0dwm1yjwmnslzdplr8";
-      name = "ktorrent-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktorrent-21.04.0.tar.xz";
+      sha256 = "0f28iyb2mrin2n5f6msxib9lh38qxid1sz5p5dq1g703gyqgr345";
+      name = "ktorrent-21.04.0.tar.xz";
     };
   };
   ktouch = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktouch-20.12.3.tar.xz";
-      sha256 = "1yv81mfavbvvlzc41ydfs1yjynza12n1cj8w36dgbgm6dwcldwfw";
-      name = "ktouch-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktouch-21.04.0.tar.xz";
+      sha256 = "0f46dsjcgqqg1f24sl3za624h5kpynqdi480hnc0fc6yaf3nm2mm";
+      name = "ktouch-21.04.0.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-accounts-kcm-20.12.3.tar.xz";
-      sha256 = "0jj6cspzmbn1fnkq5dfc7vzylbsq8vglcgwx4a2x8j5g7s8vm9y2";
-      name = "ktp-accounts-kcm-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-accounts-kcm-21.04.0.tar.xz";
+      sha256 = "1vvnk9nfq4z3m73yr59y65v0nvqwn4xjx6lrm754dnqr6vldv01p";
+      name = "ktp-accounts-kcm-21.04.0.tar.xz";
     };
   };
   ktp-approver = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-approver-20.12.3.tar.xz";
-      sha256 = "1brzpm50d4nqkva34h9va15xm4l7g0hvq1b610qnn9mvhikrzy43";
-      name = "ktp-approver-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-approver-21.04.0.tar.xz";
+      sha256 = "0j407a3bfmi4gn5v3gfazfidyp1kxn4vbs40xm5pkgxr4ykvzqj5";
+      name = "ktp-approver-21.04.0.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-auth-handler-20.12.3.tar.xz";
-      sha256 = "1i8jcxl828kany2668aid5vmhrla5rv6frb36xy7wdxv6y2q2gcc";
-      name = "ktp-auth-handler-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-auth-handler-21.04.0.tar.xz";
+      sha256 = "1lqjb3mawdvwrx7b2q2f3kr132shbgs9lvlzdn450pn9cn1c4z7i";
+      name = "ktp-auth-handler-21.04.0.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-call-ui-20.12.3.tar.xz";
-      sha256 = "079jlq7zs3zb37bnb48q68rcfjg3b263qplgcpgs1f77k9g449ql";
-      name = "ktp-call-ui-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-call-ui-21.04.0.tar.xz";
+      sha256 = "1f2rzm5jfw12b6v2yfzjs152sq2ak3k7zk3nwipyiy86n0f25yqp";
+      name = "ktp-call-ui-21.04.0.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-common-internals-20.12.3.tar.xz";
-      sha256 = "0c9hcyfsjhd2ydm5ldgxh9j5wbckavn4nj2n8l4zkyxk7knxf5w4";
-      name = "ktp-common-internals-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-common-internals-21.04.0.tar.xz";
+      sha256 = "0j3fnvyln6w7m3z416blpvrk1bpcbd5403h6pyjyq3dsvswzd21x";
+      name = "ktp-common-internals-21.04.0.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-contact-list-20.12.3.tar.xz";
-      sha256 = "03gqm2pjf2i6f0gvifd7bqclkfjbpabnlavadxf71qlnf7fki3rf";
-      name = "ktp-contact-list-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-contact-list-21.04.0.tar.xz";
+      sha256 = "1bym3sf3szmgi3nbczlilcazkjd1jfy7v0p0c3844c33fid6ln4q";
+      name = "ktp-contact-list-21.04.0.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-contact-runner-20.12.3.tar.xz";
-      sha256 = "047bzbb02y17yq973bzxf1h1c41f25njrsxc5qa7igvwwcid7hbc";
-      name = "ktp-contact-runner-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-contact-runner-21.04.0.tar.xz";
+      sha256 = "1afcsc8bfvyqy9y32a73x01xar50g48q9jbvnsggmjb20qbgk6fz";
+      name = "ktp-contact-runner-21.04.0.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-desktop-applets-20.12.3.tar.xz";
-      sha256 = "1m4nizagb7i45ys8k60kw1m5jfflxy1iy3qp1i17d0fy4xk81i6h";
-      name = "ktp-desktop-applets-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-desktop-applets-21.04.0.tar.xz";
+      sha256 = "1achgl8prdl33hw73nfjcm0djxzf9xy76n365kqzfz757fvy025w";
+      name = "ktp-desktop-applets-21.04.0.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-filetransfer-handler-20.12.3.tar.xz";
-      sha256 = "0wq9n5q8xgv70ikxavmmq7jnj24w9m3k7xaxl8qs7aas14jlcg29";
-      name = "ktp-filetransfer-handler-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-filetransfer-handler-21.04.0.tar.xz";
+      sha256 = "0mhvx3x4mf9b1mmn901995107ixz9qd80ydx468k30w13k8hwjpg";
+      name = "ktp-filetransfer-handler-21.04.0.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-kded-module-20.12.3.tar.xz";
-      sha256 = "0j28hdikn5713ngl3hf1gjr7syzba92irffhfrj6ia582gm7j2nz";
-      name = "ktp-kded-module-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-kded-module-21.04.0.tar.xz";
+      sha256 = "1d3rpbqks6x6bv12mzpd6g5x2h35hf4xfx871i23pq7p2n4nna8f";
+      name = "ktp-kded-module-21.04.0.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-send-file-20.12.3.tar.xz";
-      sha256 = "0lmyxvq49ibbvgg69cy1iayfgd4g777xbqdgzx0jgvvmd6ryrrqq";
-      name = "ktp-send-file-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-send-file-21.04.0.tar.xz";
+      sha256 = "1lyshgan77cia7cnirjfyg0hw0wgazjw9z21ig0czs3hr6qqf277";
+      name = "ktp-send-file-21.04.0.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktp-text-ui-20.12.3.tar.xz";
-      sha256 = "0gqgqjv0wamzcfzicvgc8n3jl4xizpzdjsq92bsbg1yk51ihn6iq";
-      name = "ktp-text-ui-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktp-text-ui-21.04.0.tar.xz";
+      sha256 = "04k2m4f873hz783szmkgpc0y6mjpwld5z3xcbdqippfzcdn4hg0v";
+      name = "ktp-text-ui-21.04.0.tar.xz";
     };
   };
   ktuberling = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/ktuberling-20.12.3.tar.xz";
-      sha256 = "0d4z9kk0vdljaf6damyjxnplmg6s1g6caw1ffd1dnyxhkszlka86";
-      name = "ktuberling-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/ktuberling-21.04.0.tar.xz";
+      sha256 = "14yg3pghm4l3qgpi1i5zicjyak62w2ci4b36914kn5b3yfxh132i";
+      name = "ktuberling-21.04.0.tar.xz";
     };
   };
   kturtle = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kturtle-20.12.3.tar.xz";
-      sha256 = "17mqi9kb57bva2rzqnmkiilr114zqqlh5f6sn9c13x7s8npdpgp6";
-      name = "kturtle-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kturtle-21.04.0.tar.xz";
+      sha256 = "1l8drllf7a1d3zra23ysyli8jl6xgl3xciqfkhc1fxhdkncx24cd";
+      name = "kturtle-21.04.0.tar.xz";
     };
   };
   kubrick = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kubrick-20.12.3.tar.xz";
-      sha256 = "0a581gajl9k3864q3y99kcxqfh8adbwpyrc1rakgzwbwd342wgrj";
-      name = "kubrick-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kubrick-21.04.0.tar.xz";
+      sha256 = "0m8ps0yxqijshgx09cypzd3l1n0zlrqcrkjcd725zwxarpm0z0hk";
+      name = "kubrick-21.04.0.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kwalletmanager-20.12.3.tar.xz";
-      sha256 = "16lx0nblxlzmlydblysrbf92dxf0biqxrzwvy7nhsnkk2yh18m4r";
-      name = "kwalletmanager-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kwalletmanager-21.04.0.tar.xz";
+      sha256 = "1rh7xdwn0kdw8j936asxy8llar144144xgvp7sjlpi5y93ayf8vk";
+      name = "kwalletmanager-21.04.0.tar.xz";
     };
   };
   kwave = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kwave-20.12.3.tar.xz";
-      sha256 = "1bd193wszlzra1xg6ahijmswmpkm8ra05pzbk6zvc67j71kzdmzs";
-      name = "kwave-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kwave-21.04.0.tar.xz";
+      sha256 = "1wy6sxmf9pk2677xdsbpgy01p284rzqwiyzm1hr971xbra5h4k6i";
+      name = "kwave-21.04.0.tar.xz";
     };
   };
   kwordquiz = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/kwordquiz-20.12.3.tar.xz";
-      sha256 = "0vqkj7zmp8v0iydll8gn7ybwha19sxpqd608wj6c7clwcr0y39yp";
-      name = "kwordquiz-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/kwordquiz-21.04.0.tar.xz";
+      sha256 = "0wnihn75yvhz2j310vr806vkbfywhr26wny07fpbzcishyjb89vi";
+      name = "kwordquiz-21.04.0.tar.xz";
     };
   };
   libgravatar = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libgravatar-20.12.3.tar.xz";
-      sha256 = "130wk6v40rz0rsc1z8yyl5zf4s6rbhlwgqdjijp1k6xnsp7xm8n4";
-      name = "libgravatar-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libgravatar-21.04.0.tar.xz";
+      sha256 = "0li6p9df000bmkqgmwiix7ab4sah05r1n4gm109jjglh0a41bfvr";
+      name = "libgravatar-21.04.0.tar.xz";
     };
   };
   libkcddb = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkcddb-20.12.3.tar.xz";
-      sha256 = "0m7fj11lp6i7fal0ckbpshyp5rw1pn3vxirnrg8ydp8ggs22jqi0";
-      name = "libkcddb-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkcddb-21.04.0.tar.xz";
+      sha256 = "1fzbhn0rnlmxdglfb48f4f3ddagkgny2665mgv8gdbcq3vg62zwr";
+      name = "libkcddb-21.04.0.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkcompactdisc-20.12.3.tar.xz";
-      sha256 = "192la7rlknjwlqw69yyqxcg2yar7p8fklykah5i3l5r6rcvx2h1w";
-      name = "libkcompactdisc-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkcompactdisc-21.04.0.tar.xz";
+      sha256 = "1skaic0vfspdkv0q574ia4jszq1a5smf4s9ls4flfk5qxmkv6862";
+      name = "libkcompactdisc-21.04.0.tar.xz";
     };
   };
   libkdcraw = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkdcraw-20.12.3.tar.xz";
-      sha256 = "1vwdr04z31aq37mx83vbgimkrpxq67dmlb68sl1wyivmllp084jg";
-      name = "libkdcraw-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkdcraw-21.04.0.tar.xz";
+      sha256 = "1ir6m61yb8f0ic39jxxnzjd9jjkb0ksln3fkls5v0af6g546bgab";
+      name = "libkdcraw-21.04.0.tar.xz";
     };
   };
   libkdegames = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkdegames-20.12.3.tar.xz";
-      sha256 = "1l8nwbjkgsnqxqjc94wqq6phyxdj9n8y075bzv45xagf82b926s0";
-      name = "libkdegames-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkdegames-21.04.0.tar.xz";
+      sha256 = "1q0m4kq32gsllxz8vx0qj9qii5y2lbd6wclwlykhayx1fcncwrj7";
+      name = "libkdegames-21.04.0.tar.xz";
     };
   };
   libkdepim = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkdepim-20.12.3.tar.xz";
-      sha256 = "1armxkai841ki9hgfwb4q53c8rlp55zgz1416dhrr97jrn03ckfa";
-      name = "libkdepim-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkdepim-21.04.0.tar.xz";
+      sha256 = "1ai5l9qcjnpwndvv744sx85b0yyg4wz01r0v9b0b62zwx8i35clb";
+      name = "libkdepim-21.04.0.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkeduvocdocument-20.12.3.tar.xz";
-      sha256 = "1x5w40avw73kjryiss71x10635l012jv5criaqlwyn3jfaf2idg0";
-      name = "libkeduvocdocument-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkeduvocdocument-21.04.0.tar.xz";
+      sha256 = "0264i01w44fjdh14psmw8ynmb8vzkw94lqqff1ia8bw5n0ihr914";
+      name = "libkeduvocdocument-21.04.0.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkexiv2-20.12.3.tar.xz";
-      sha256 = "1r11j2j0ymxg4dbhrznyr34cwdqcgh124lk9fmhdpjgq2q276qmp";
-      name = "libkexiv2-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkexiv2-21.04.0.tar.xz";
+      sha256 = "0grhibpq47yba9mjdhr1p0sbw62vxsrwfydi5ybpa8fjgvbbbprr";
+      name = "libkexiv2-21.04.0.tar.xz";
     };
   };
   libkgapi = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkgapi-20.12.3.tar.xz";
-      sha256 = "0h9rcn03jgw3rxxm3ylh1ap7ryswzm78hpfi6x9gdsfiqc8q8rpx";
-      name = "libkgapi-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkgapi-21.04.0.tar.xz";
+      sha256 = "1x811g0mbgjz8spngdsqdxfhkyic9kqxkhx9nq592zihaqkl3ifz";
+      name = "libkgapi-21.04.0.tar.xz";
     };
   };
   libkipi = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkipi-20.12.3.tar.xz";
-      sha256 = "1a0lpp3qkirsv8r6hpmndkn2f895jad5x7xlnxyf2x1s9qhzyvxv";
-      name = "libkipi-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkipi-21.04.0.tar.xz";
+      sha256 = "0gk8bfhq1z9f82mnjm2xjabgxn0qjrabw53bb67lwvrrgaliliqb";
+      name = "libkipi-21.04.0.tar.xz";
     };
   };
   libkleo = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkleo-20.12.3.tar.xz";
-      sha256 = "034m92af08g5769kr9xs91mgkl3ribcafsmm96isjbngj9acqjcr";
-      name = "libkleo-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkleo-21.04.0.tar.xz";
+      sha256 = "073ghnw1s09fvai22ag37n20mmhkbl4gp4y58nbgw43gfy5gsv6z";
+      name = "libkleo-21.04.0.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkmahjongg-20.12.3.tar.xz";
-      sha256 = "16wb744gbi4rgz9k9zr4dm7ilhjhjyaszawjmm626p4k145rcg4v";
-      name = "libkmahjongg-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkmahjongg-21.04.0.tar.xz";
+      sha256 = "1n2jswdvpvc9jcqsvqf0nniaf893432v123my2q6msk2zvss6pcb";
+      name = "libkmahjongg-21.04.0.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libkomparediff2-20.12.3.tar.xz";
-      sha256 = "0py3k5mn9kf82qcy89r1lkrhn702dgrjbgcd9ddslqfpiw8cb1l3";
-      name = "libkomparediff2-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libkomparediff2-21.04.0.tar.xz";
+      sha256 = "13kpaasyhrhhrgk8a5qg9qv65wdv6qvnz2gjbjv8qgp4k4jmwv7h";
+      name = "libkomparediff2-21.04.0.tar.xz";
     };
   };
   libksane = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libksane-20.12.3.tar.xz";
-      sha256 = "02sbizfw2a819l5f7di3k7x7cc4n19pipv68dfhsrh1hk6c5iia6";
-      name = "libksane-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libksane-21.04.0.tar.xz";
+      sha256 = "17a5i21h99qvv8sig7xh5n149ji8fqch5m0w6fqirrwf0iz66363";
+      name = "libksane-21.04.0.tar.xz";
     };
   };
   libksieve = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libksieve-20.12.3.tar.xz";
-      sha256 = "0j149jszdslnyia09fn6xsbkxa2p0xmxz05pf3byxl9albxq17q0";
-      name = "libksieve-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libksieve-21.04.0.tar.xz";
+      sha256 = "04zyiqmkr78rnilv5zmmbr09k1nycgpc3qw3a9qy4xzh5amkl8wl";
+      name = "libksieve-21.04.0.tar.xz";
     };
   };
   libktorrent = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/libktorrent-20.12.3.tar.xz";
-      sha256 = "1ykyfvr7w3h058gls7pnh9qwc6b4v9lp85s10qdbbsaiyly0h7n3";
-      name = "libktorrent-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/libktorrent-21.04.0.tar.xz";
+      sha256 = "0c8hbsk2vjkmdvnws4kaa9bylzyzmx12fxm354qm65n4j6pdd59v";
+      name = "libktorrent-21.04.0.tar.xz";
     };
   };
   lokalize = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/lokalize-20.12.3.tar.xz";
-      sha256 = "1a1dzg6qwd3dxcvln7nkpc5r6v6agqnzja6s09w9jb0gflrql372";
-      name = "lokalize-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/lokalize-21.04.0.tar.xz";
+      sha256 = "1wb95y89qi4z7hsldyq75w69rgdca3m0ji85khfvsb4h3cgilana";
+      name = "lokalize-21.04.0.tar.xz";
     };
   };
   lskat = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/lskat-20.12.3.tar.xz";
-      sha256 = "1fmyskr5i08gfjaghih2gihj6sgm8v5mn0m4wjmr9plg1vi6flcv";
-      name = "lskat-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/lskat-21.04.0.tar.xz";
+      sha256 = "1acxbsldcjk3d84ip5z15y8x6nngj2vnb40s5p3mv47r6vgbh0qd";
+      name = "lskat-21.04.0.tar.xz";
     };
   };
   mailcommon = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/mailcommon-20.12.3.tar.xz";
-      sha256 = "0z0ppv6yi5n54hi6x5s5nagciqpdbxyl0z5sa3whl7d6ikga0s4m";
-      name = "mailcommon-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/mailcommon-21.04.0.tar.xz";
+      sha256 = "1ljchkfrnknlzgjrrpwszzyv8m066d29xwns1yp8smqzk723g0gx";
+      name = "mailcommon-21.04.0.tar.xz";
     };
   };
   mailimporter = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/mailimporter-20.12.3.tar.xz";
-      sha256 = "1lkkvriq69v0lpmk38my8k0vnw2yq182g6139i5r7krcyvrz4ynn";
-      name = "mailimporter-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/mailimporter-21.04.0.tar.xz";
+      sha256 = "06zvaq3ccrgsd6idnd9m201924bnm72nvcg66v1salcdk93a8sv5";
+      name = "mailimporter-21.04.0.tar.xz";
     };
   };
   marble = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/marble-20.12.3.tar.xz";
-      sha256 = "1hkvp97mjg6gqs0b39j2rpgwwi70vzwhm4szmcjc2083vllv3cap";
-      name = "marble-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/marble-21.04.0.tar.xz";
+      sha256 = "1c63x75fzhkqgvijd1pmpywq4dx7gkyw9x90aj54fzkgjzwzqzhq";
+      name = "marble-21.04.0.tar.xz";
     };
   };
   markdownpart = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/markdownpart-20.12.3.tar.xz";
-      sha256 = "1g3r07fj4azpjbp6p6brcnd5dv7hi34w6z6a8bsg8cckmvhrirbl";
-      name = "markdownpart-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/markdownpart-21.04.0.tar.xz";
+      sha256 = "0xgnj2g0hqwflw550fj6jzq36pc8j9vwb6p9cbvfljd8yv8va9kq";
+      name = "markdownpart-21.04.0.tar.xz";
     };
   };
   mbox-importer = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/mbox-importer-20.12.3.tar.xz";
-      sha256 = "0rjk9blsbgjpd6l6ghrlzj04llaibjs8ngcfddxgixg8dxvsp0k9";
-      name = "mbox-importer-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/mbox-importer-21.04.0.tar.xz";
+      sha256 = "0rxrf1sxb5pzrkr8m2n1f3xgpwsihn6b6d5nilxmmsl5c60ya8j8";
+      name = "mbox-importer-21.04.0.tar.xz";
     };
   };
   messagelib = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/messagelib-20.12.3.tar.xz";
-      sha256 = "08rcw7y69xkrv0pwfz44hrbzkx9li2nabfjpgc9sc6i8klikgbis";
-      name = "messagelib-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/messagelib-21.04.0.tar.xz";
+      sha256 = "1qsvqrkh30vyfrsxkpriqkzizxg9mx6v2xx7j6gyhz7pmrskx8rg";
+      name = "messagelib-21.04.0.tar.xz";
     };
   };
   minuet = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/minuet-20.12.3.tar.xz";
-      sha256 = "0jidbfqsnk3dyd5f459p2jsyxs2jjpx3j356sg6c3hbs4imz5nm6";
-      name = "minuet-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/minuet-21.04.0.tar.xz";
+      sha256 = "0djqp807g47fy163bp0pkrhb7j37ijqdfyafz74871j2frrmnc97";
+      name = "minuet-21.04.0.tar.xz";
     };
   };
   okular = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/okular-20.12.3.tar.xz";
-      sha256 = "1p3kdc0awgpihf10m3fxypq5hqr5vvwbcm8w3h39rk1m5g6hymxf";
-      name = "okular-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/okular-21.04.0.tar.xz";
+      sha256 = "0l0vrglxy9331sqn3lx76hvbh7b0znsafl5ia61srk48kb0w9rqy";
+      name = "okular-21.04.0.tar.xz";
     };
   };
   palapeli = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/palapeli-20.12.3.tar.xz";
-      sha256 = "14hqifg18ngqsafp1k78wi2k7jpxglvcjdw55f0fi0iqjnsrk6xa";
-      name = "palapeli-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/palapeli-21.04.0.tar.xz";
+      sha256 = "0f7ylr46alafp2gz9sf7xgnjm9vgyx5r7nipbqjl4wi8w908rklw";
+      name = "palapeli-21.04.0.tar.xz";
     };
   };
   parley = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/parley-20.12.3.tar.xz";
-      sha256 = "0j4bbqlh0rix0wkfwp0jsf07akbysxnasbr1f2zwj75487mcwajn";
-      name = "parley-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/parley-21.04.0.tar.xz";
+      sha256 = "0a186zqpi815apf2grlj11xp64kw80i43779z99r665jpp6189z3";
+      name = "parley-21.04.0.tar.xz";
     };
   };
   partitionmanager = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/partitionmanager-20.12.3.tar.xz";
-      sha256 = "06kk64gynlxf7njdgaklrx8b4jlbqpk6bbx0nk4lzbyw191dfr0m";
-      name = "partitionmanager-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/partitionmanager-21.04.0.tar.xz";
+      sha256 = "02dgbqx1a6wahds04jcjdjh56pyrm47165hwv98ccarakrvn8yqm";
+      name = "partitionmanager-21.04.0.tar.xz";
     };
   };
   picmi = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/picmi-20.12.3.tar.xz";
-      sha256 = "1xwkdrs6wmhhz6vrs17d7vj6sdlwl60mh8cb7yxx03pw5g6gkdd2";
-      name = "picmi-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/picmi-21.04.0.tar.xz";
+      sha256 = "1pwswzc02blvf49v4i2grw9mlm9y1ydmms6mg50iyi6qrnzbv6r3";
+      name = "picmi-21.04.0.tar.xz";
     };
   };
   pimcommon = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/pimcommon-20.12.3.tar.xz";
-      sha256 = "18gy521g0i806bjjdkszgajac733inrakhkdw1fslhcg2b90m6hb";
-      name = "pimcommon-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/pimcommon-21.04.0.tar.xz";
+      sha256 = "0bprmk20pmngvxxxpygajnlr4yx9acrz7dw6bfnn6d8kig281qdn";
+      name = "pimcommon-21.04.0.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/pim-data-exporter-20.12.3.tar.xz";
-      sha256 = "17zc56420ndqfk8aw1mn1vwf34icgf03bbvvvg4s3m6cibnj0x4q";
-      name = "pim-data-exporter-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/pim-data-exporter-21.04.0.tar.xz";
+      sha256 = "0rbkr1vgl14q4hi4byn20kfhkz3yzmrydhb3f1i2amp08ca4x71n";
+      name = "pim-data-exporter-21.04.0.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/pim-sieve-editor-20.12.3.tar.xz";
-      sha256 = "1d1z4i3g5n6rfs48phb700a68na75yg7cr4f3q2wzlnyyvpd1m51";
-      name = "pim-sieve-editor-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/pim-sieve-editor-21.04.0.tar.xz";
+      sha256 = "1yxc4i0bsgrj9wsn44k7w3z1zkcm4y9qd8zd7shsqpca9lb9n13y";
+      name = "pim-sieve-editor-21.04.0.tar.xz";
     };
   };
   poxml = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/poxml-20.12.3.tar.xz";
-      sha256 = "1z7py6qjrx0j0mya5cmxc0gm1fmjwbkrm0g8916vdlyc4m5vpg9l";
-      name = "poxml-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/poxml-21.04.0.tar.xz";
+      sha256 = "0yhygizd0i6az1pd34lh4ij2x8867svbh2bic9lgcpmqbza9054g";
+      name = "poxml-21.04.0.tar.xz";
     };
   };
   print-manager = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/print-manager-20.12.3.tar.xz";
-      sha256 = "19kwrl95p56zm5g11sws8h4vdc59w694ghhnmrwpyj2qra350dwa";
-      name = "print-manager-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/print-manager-21.04.0.tar.xz";
+      sha256 = "1k5pqh264jy698jdzsk7d6bhadnwvgx1g3rpji06pb0igr1zn820";
+      name = "print-manager-21.04.0.tar.xz";
     };
   };
   rocs = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/rocs-20.12.3.tar.xz";
-      sha256 = "0709qyixnhsrdhkqqkwigmbfnr21rz2yapvmfylmaipdfm0i72wv";
-      name = "rocs-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/rocs-21.04.0.tar.xz";
+      sha256 = "11yzgrmb15zv24pfr3096g9zgsvgdlw43vnbjgbr7s8xvnprlh5l";
+      name = "rocs-21.04.0.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/signon-kwallet-extension-20.12.3.tar.xz";
-      sha256 = "1a7hvkga6sj3sr4qv75n7p9gq44agncs0c7c9k6wni84h3y0icyp";
-      name = "signon-kwallet-extension-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/signon-kwallet-extension-21.04.0.tar.xz";
+      sha256 = "05jaa74j6rd89cj8szfgw5izjlkakbjmz7qiwlswyjd4lafjz65n";
+      name = "signon-kwallet-extension-21.04.0.tar.xz";
     };
   };
   spectacle = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/spectacle-20.12.3.tar.xz";
-      sha256 = "1h29w4ajmgfksdmxanfmb1gdjk4h7hpc2zwiqf0yrq8vm2hhxqjc";
-      name = "spectacle-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/spectacle-21.04.0.tar.xz";
+      sha256 = "0cqf9p7mc5wyl5qy6866m7xhndwmgd3hmw7amkpzngmmz4h9i2p0";
+      name = "spectacle-21.04.0.tar.xz";
     };
   };
   step = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/step-20.12.3.tar.xz";
-      sha256 = "08z2zh8qq46288pddz9p5w10plpd26wgwil92maj6z765dqcxwqn";
-      name = "step-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/step-21.04.0.tar.xz";
+      sha256 = "169ka33nkzrxdk874180v6yzmrngl98gzyql4p5ssmmdh0vrkg25";
+      name = "step-21.04.0.tar.xz";
     };
   };
   svgpart = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/svgpart-20.12.3.tar.xz";
-      sha256 = "1ldkyd7kb8m6zw7siw2rryxzk6v26xc00arwlq1zsy4inbs8idgl";
-      name = "svgpart-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/svgpart-21.04.0.tar.xz";
+      sha256 = "0chfyxl94kp5pif6lzhlm7q8rg9l4lg74x4y04wslrfqcn1gghdj";
+      name = "svgpart-21.04.0.tar.xz";
     };
   };
   sweeper = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/sweeper-20.12.3.tar.xz";
-      sha256 = "12lp9m4sxblwp16dbb6gi1pf0yvav8gh5as1fpfx9kazava3xkhp";
-      name = "sweeper-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/sweeper-21.04.0.tar.xz";
+      sha256 = "1iysxrfdp8bv0vgssv062yllsq4w3jf9vdi66jm9ka8i9w8wqpsv";
+      name = "sweeper-21.04.0.tar.xz";
     };
   };
   umbrello = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/umbrello-20.12.3.tar.xz";
-      sha256 = "0y6kyir86k9cjpmhm4giqfn7g651hfsbl1zq2j2y2nqiisc7vysp";
-      name = "umbrello-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/umbrello-21.04.0.tar.xz";
+      sha256 = "17xwsjc1ph2glscv41x4f5bagw1q5ackqpy1wcg8m9jrg9ipqpqx";
+      name = "umbrello-21.04.0.tar.xz";
     };
   };
   yakuake = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/yakuake-20.12.3.tar.xz";
-      sha256 = "1y151cp5ygkxfd9ar4c38h2c1xwpx8mihh5f2sz6gbykzm3impbx";
-      name = "yakuake-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/yakuake-21.04.0.tar.xz";
+      sha256 = "1jkwcc4pdb06v4q7bnqppdkjf8n8qpfp9mk02l77brnxxf8i9r3b";
+      name = "yakuake-21.04.0.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "20.12.3";
+    version = "21.04.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.3/src/zeroconf-ioslave-20.12.3.tar.xz";
-      sha256 = "1zx7xmj7vj9d39cnnsgb15lbkr8yc81mcqilhq3jfhd3zgp8lrlv";
-      name = "zeroconf-ioslave-20.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.04.0/src/zeroconf-ioslave-21.04.0.tar.xz";
+      sha256 = "03cmz3y8f48y26aybyygwssqicp0kz4ry9xm30rvvc5hiv0n6hj7";
+      name = "zeroconf-ioslave-21.04.0.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/applications/logging/humioctl/default.nix b/nixpkgs/pkgs/applications/logging/humioctl/default.nix
index f3aef213ad28..c1aae04b2e58 100644
--- a/nixpkgs/pkgs/applications/logging/humioctl/default.nix
+++ b/nixpkgs/pkgs/applications/logging/humioctl/default.nix
@@ -1,8 +1,8 @@
 { buildGoModule, fetchFromGitHub, installShellFiles, lib }:
 
 let
-  humioCtlVersion = "0.28.2";
-  sha256 = "sha256-mCYxgBiuKylL2Qx4RCnD4ZoMFUm2J6VIL/Erc0u3BMA=";
+  humioCtlVersion = "0.28.3";
+  sha256 = "sha256-GUn5hg4gPGjQ6U2dboGE22u8XuZ578+EnkmHLASXd3Q=";
   vendorSha256 = "sha256-867x33Aq27D2m14NqqsdByC39pjjyJZbfX3jmwVU2yo=";
 in buildGoModule {
     name = "humioctl-${humioCtlVersion}";
diff --git a/nixpkgs/pkgs/applications/misc/1password-gui/default.nix b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
index 0b3e21cc03a0..436e4d7831fd 100644
--- a/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
@@ -1,70 +1,113 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, appimageTools
 , makeWrapper
-, electron_11
-, openssl
+, alsa-lib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, gdk-pixbuf
+, glib
+, gtk3
+, libX11
+, libXcomposite
+, libXdamage
+, libXext
+, libXfixes
+, libXrandr
+, libdrm
+, libxcb
+, libxkbcommon
+, libxshmfence
+, mesa
+, nspr
+, nss
+, pango
+, systemd
+, xdg-utils
 }:
-
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "8.0.30";
+  version = "8.0.34";
 
   src = fetchurl {
-    url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
-    hash = "sha256-j+fp/f8nta+OOuOFU4mmUrGYlVmAqdaXO4rLJ0in+m8=";
+    url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
+    sha256 = "0mp119v5vgsva7pnxpsbq4xhh4vbhwv7ga9b5b7f6slx3biy1wmh";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
-  appimageContents = appimageTools.extractType2 {
-    name = "${pname}-${version}";
-    inherit src;
-  };
-
-  dontUnpack = true;
   dontConfigure = true;
   dontBuild = true;
+  dontPatchELF = true;
+
+  installPhase =
+    let rpath = lib.makeLibraryPath [
+      alsa-lib
+      at-spi2-atk
+      at-spi2-core
+      atk
+      cairo
+      cups
+      dbus
+      expat
+      gdk-pixbuf
+      glib
+      gtk3
+      libX11
+      libXcomposite
+      libXdamage
+      libXext
+      libXfixes
+      libXrandr
+      libdrm
+      libxcb
+      libxkbcommon
+      libxshmfence
+      mesa
+      nspr
+      nss
+      pango
+      systemd
+    ] + ":${stdenv.cc.cc.lib}/lib64";
+    in ''
+      runHook preInstall
 
-  installPhase = let
-    runtimeLibs = [
-      openssl.out
-      stdenv.cc.cc
-    ];
-  in ''
-    mkdir -p $out/bin $out/share/1password
+      mkdir -p $out/bin $out/share/1password
+      cp -a * $out/share/1password
 
-    # Applications files.
-    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+      # Desktop file
+      install -Dt $out/share/applications resources/${pname}.desktop
+      substituteInPlace $out/share/applications/${pname}.desktop \
+        --replace 'Exec=/opt/1Password/${pname}' 'Exec=${pname}'
 
-    # Desktop file.
-    install -Dt $out/share/applications ${appimageContents}/${pname}.desktop
-    substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace 'Exec=AppRun' 'Exec=${pname}'
+      # Icons
+      cp -a resources/icons $out/share
 
-    # Icons.
-    cp -a ${appimageContents}/usr/share/icons $out/share
+      interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
+      patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
+      patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper}
+      for file in $(find $out -type f -name \*.so\* ); do
+        patchelf --set-rpath ${rpath}:$out/share/1password $file
+      done
 
-    # Wrap the application with Electron.
-    makeWrapper "${electron_11}/bin/electron" "$out/bin/${pname}" \
-      --add-flags "$out/share/${pname}/resources/app.asar" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibs}"
-  '';
+      makeWrapper $out/share/1password/1password $out/bin/1password \
+        --prefix PATH : ${xdg-utils}/bin
+
+      runHook postInstall
+    '';
 
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
     description = "Multi-platform password manager";
-    longDescription = ''
-      1Password is a multi-platform package manager.
-
-      The Linux version is currently a development preview and can
-      only be used to search, view, and copy items. However items
-      cannot be created or edited.
-    '';
     homepage = "https://1password.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ danieldk timstott ];
+    maintainers = with maintainers; [ danieldk timstott savannidgerinel ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/1password-gui/update.sh b/nixpkgs/pkgs/applications/misc/1password-gui/update.sh
index 7703aba99847..8ebdaca71173 100755
--- a/nixpkgs/pkgs/applications/misc/1password-gui/update.sh
+++ b/nixpkgs/pkgs/applications/misc/1password-gui/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -i bash -p curl gnused common-updater-scripts
 
-version="$(curl -sL https://onepassword.s3.amazonaws.com/linux/debian/dists/edge/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)-[0-9]+/\1/p' | head -n1)"
+version="$(curl -sL https://onepassword.s3.amazonaws.com/linux/debian/dists/edge/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)/\1/p' | head -n1)"
 update-source-version _1password-gui "$version"
diff --git a/nixpkgs/pkgs/applications/misc/1password/default.nix b/nixpkgs/pkgs/applications/misc/1password/default.nix
index 4bfb6a65edc5..afe15949ee82 100644
--- a/nixpkgs/pkgs/applications/misc/1password/default.nix
+++ b/nixpkgs/pkgs/applications/misc/1password/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "1.8.0";
+  version = "1.9.1";
   src =
     if stdenv.isLinux then fetchzip {
       url = {
@@ -11,21 +11,21 @@ stdenv.mkDerivation rec {
         "aarch64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_arm_v${version}.zip";
       }.${stdenv.hostPlatform.system};
       sha256 = {
-        "i686-linux" = "teoxscan+EZ76Q0sfKT6nt1w/LSsmDoiN2oh+NGO/4A=";
-        "x86_64-linux" = "nRK2GSwhQe5OgcAdR1fg0vUp3fzEkhwU/teIwsEEemw=";
-        "aarch64-linux" = "0932bspm1likky1n0rg15d01gspkm1fns2ma82qyb91yr6d18ddk";
+        "i686-linux" = "1x5khnp6yqrjf513x3y6l38rb121nib7d4aiz4cz7fh029kxjhd1";
+        "x86_64-linux" = "1ar8lzkndl7xzcinv93rzg8q25vb23fggbjkhgchgc5x9wkwk8hw";
+        "aarch64-linux" = "1q81pk6qmp96p1dbhx1ijln8f54rac8r81d4ghqx9v756s9szrr1";
       }.${stdenv.hostPlatform.system};
       stripRoot = false;
     } else fetchurl {
       url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg";
-      sha256 = "0pycia75vdfh6gxfd2hr32cxrryfxydid804n0v76l2fpr9v9v3d";
+      sha256 = "0904wwy3wdhfvbkvpdap8141a9gqmn0dw45ikrzsqpg7pv1r2zch";
     };
 
   buildInputs = lib.optionals stdenv.isDarwin [ xar cpio ];
 
   unpackPhase = lib.optionalString stdenv.isDarwin ''
     xar -xf $src
-    zcat Payload | cpio -i
+    zcat op.pkg/Payload | cpio -i
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix b/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
index c753721adbf0..cc6b1eab5de4 100644
--- a/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/JustArchiNET/ArchiSteamFarm";
     license = licenses.asl20;
     platforms = dotnetCorePackages.aspnetcore_3_1.meta.platforms;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
     hydraPlatforms = [];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/airtame/default.nix b/nixpkgs/pkgs/applications/misc/airtame/default.nix
index 58fcf4cb10dd..90373b6b00c5 100644
--- a/nixpkgs/pkgs/applications/misc/airtame/default.nix
+++ b/nixpkgs/pkgs/applications/misc/airtame/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
-, alsaLib, atk, cairo, cups, curl, dbus, expat, ffmpeg_3, fontconfig, freetype
+, alsa-lib, atk, cairo, cups, curl, dbus, expat, ffmpeg_3, fontconfig, freetype
 , gdk-pixbuf, glib, glibc, gnome2, gtk2, libX11, libXScrnSaver, libXcomposite
 , libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
 , libXtst, libopus, libpulseaudio, libxcb, nspr, nss, pango, udev, x264
 }:
 
 let libPath = lib.makeLibraryPath [
-  alsaLib atk cairo cups curl dbus expat ffmpeg_3 fontconfig freetype gdk-pixbuf
+  alsa-lib atk cairo cups curl dbus expat ffmpeg_3 fontconfig freetype gdk-pixbuf
   glib glibc gnome2.GConf gtk2 libopus nspr nss pango stdenv.cc.cc udev x264
   libX11 libXScrnSaver libXcomposite libXcursor libXdamage libXext libXfixes
   libXi libXrandr libXrender libXtst libpulseaudio libxcb
diff --git a/nixpkgs/pkgs/applications/misc/almanah/default.nix b/nixpkgs/pkgs/applications/misc/almanah/default.nix
index eb5dc8950f90..a4ef9b34318c 100644
--- a/nixpkgs/pkgs/applications/misc/almanah/default.nix
+++ b/nixpkgs/pkgs/applications/misc/almanah/default.nix
@@ -8,7 +8,7 @@
 , gcr
 , gettext
 , glib
-, gnome3
+, gnome
 , gpgme
 , gtk3
 , gtksourceview3
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none"; # it is quite odd
     };
diff --git a/nixpkgs/pkgs/applications/misc/archivy/default.nix b/nixpkgs/pkgs/applications/misc/archivy/default.nix
index 6af4f67d8c65..08d5524fc3a5 100644
--- a/nixpkgs/pkgs/applications/misc/archivy/default.nix
+++ b/nixpkgs/pkgs/applications/misc/archivy/default.nix
@@ -21,11 +21,11 @@
 
 buildPythonApplication rec {
   pname = "archivy";
-  version = "1.1.4";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-oSmwQcKvp9RABmc7aq6fdLOZapMauIi6+7azVTXVb30=";
+    sha256 = "sha256-g7H22zJOQuxSmoJ3373eRcbderC67vkuiLN1CgaytFM=";
   };
 
   # Relax some dependencies
diff --git a/nixpkgs/pkgs/applications/misc/audio/sox/default.nix b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
index 946150d2b881..9baf2d4d2f24 100644
--- a/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
+++ b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, fetchurl, pkg-config, CoreAudio
-, enableAlsa ? true, alsaLib ? null
+, enableAlsa ? true, alsa-lib ? null
 , enableLibao ? true, libao ? null
 , enableLame ? config.sox.enableLame or false, lame ? null
 , enableLibmad ? true, libmad ? null
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   patches = [ ./0001-musl-rewind-pipe-workaround.patch ];
 
   buildInputs =
-    optional (enableAlsa && stdenv.isLinux) alsaLib ++
+    optional (enableAlsa && stdenv.isLinux) alsa-lib ++
     optional enableLibao libao ++
     optional enableLame lame ++
     optional enableLibmad libmad ++
diff --git a/nixpkgs/pkgs/applications/misc/authenticator/default.nix b/nixpkgs/pkgs/applications/misc/authenticator/default.nix
new file mode 100644
index 000000000000..46b61720d0a3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/authenticator/default.nix
@@ -0,0 +1,99 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchpatch
+, appstream-glib
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, python3
+, rustPlatform
+, wrapGAppsHook
+, gdk-pixbuf
+, glib
+, gst_all_1
+, gtk4
+, libadwaita
+, openssl
+, sqlite
+, wayland
+, zbar
+}:
+
+stdenv.mkDerivation rec {
+  pname = "authenticator";
+  version = "4.0.3";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "Authenticator";
+    rev = version;
+    sha256 = "0fvs76f3fm5pxn7wg6sjbqpgip5w2j7xrh4siasdcl2bx6vsld8b";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "1s97jyszxf24rs3ni11phiyvmp1wm8sicb0rh1jgwz4bn1cnakx4";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    gdk-pixbuf
+    glib
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+
+    # gst-plugins-good needs gtk4 support:
+    # https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/767
+    # We copy the way it is built from the Flatpak:
+    # https://gitlab.gnome.org/World/Authenticator/-/blob/master/build-aux/com.belmoussaoui.Authenticator.Devel.json
+    (gst_all_1.gst-plugins-good.overrideAttrs (old: {
+      patches = old.patches or [ ] ++ [
+        "${src}/build-aux/767.patch"
+      ];
+      mesonFlags = old.mesonFlags ++ [
+        "-Dgtk3=disabled"
+        "-Dgtk4=enabled"
+        "-Dgtk4-experiments=true"
+      ];
+      buildInputs = old.buildInputs ++ [
+        gtk4
+      ];
+    }))
+
+    (gst_all_1.gst-plugins-bad.override { enableZbar = true; })
+    gtk4
+    libadwaita
+    openssl
+    sqlite
+    wayland
+    zbar
+  ];
+
+  meta = with lib; {
+    description = "Two-factor authentication code generator for GNOME";
+    homepage = "https://gitlab.gnome.org/World/Authenticator";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/authy/default.nix b/nixpkgs/pkgs/applications/misc/authy/default.nix
index 65200d851770..dc8786dcce2b 100644
--- a/nixpkgs/pkgs/applications/misc/authy/default.nix
+++ b/nixpkgs/pkgs/applications/misc/authy/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib, at-spi2-atk, at-spi2-core, atk, autoPatchelfHook, cairo, cups
+{ alsa-lib, at-spi2-atk, at-spi2-core, atk, autoPatchelfHook, cairo, cups
 , dbus, electron_9, expat, fetchurl, gdk-pixbuf, glib, gtk3, lib
 , libappindicator-gtk3, libdbusmenu-gtk3, libuuid, makeWrapper
 , nspr, nss, pango, squashfsTools, stdenv, systemd, xorg
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   rev = "5";
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     at-spi2-core
     atk
diff --git a/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix b/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix
new file mode 100644
index 000000000000..45d4f69075d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "avell-unofficial-control-center";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "rodgomesc";
+    repo = "avell-unofficial-control-center";
+    # https://github.com/rodgomesc/avell-unofficial-control-center/issues/58
+    rev = "e32e243e31223682a95a719bc58141990eef35e6";
+    sha256 = "1qz1kv7p09nxffndzz9jlkzpfx26ppz66f8603zyamjq9dqdmdin";
+  };
+
+  # No tests included
+  doCheck = false;
+
+  propagatedBuildInputs = with python3Packages; [ pyusb elevate ];
+
+  meta = with lib; {
+    homepage = "https://github.com/rodgomesc/avell-unofficial-control-center";
+    description = "Software for controlling RGB keyboard lights on some gaming laptops that use ITE Device(8291) Rev 0.03";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rkitover ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/base16-universal-manager/default.nix b/nixpkgs/pkgs/applications/misc/base16-universal-manager/default.nix
new file mode 100644
index 000000000000..3d43a2870945
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/base16-universal-manager/default.nix
@@ -0,0 +1,22 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "base16-universal-manager";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "pinpox";
+    repo = "base16-universal-manager";
+    rev = "v${version}";
+    sha256 = "11kal7x0lajzydbc2cvbsix9ympinsiqzfib7dg4b3xprqkyb9zl";
+  };
+
+  vendorSha256 = "19rba689319w3wf0b10yafydyz01kqg8b051vnijcyjyk0khwvsk";
+
+  meta = with lib; {
+    description = "A universal manager to set base16 themes for any supported application";
+    homepage = "https://github.com/pinpox/base16-universal-manager";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jo1gi ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/bemenu/default.nix b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
index 42c0f7d05fd8..eaad132de927 100644
--- a/nixpkgs/pkgs/applications/misc/bemenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
@@ -11,13 +11,13 @@ assert x11Support -> xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
-  version = "0.5.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = pname;
     rev = version;
-    sha256 = "1ifq5bk7782b9m6bl111x33fn38rpppdrww7hfavqia9a9gi2sl5";
+    sha256 = "sha256-UdsfIXlKfXmsrFwrerX1wfne4mdtd69WXnXu3EmxCBY=";
   };
 
   nativeBuildInputs = [ pkg-config pcre ];
diff --git a/nixpkgs/pkgs/applications/misc/bibletime/default.nix b/nixpkgs/pkgs/applications/misc/bibletime/default.nix
index eb909155e4e1..aae4a960a371 100644
--- a/nixpkgs/pkgs/applications/misc/bibletime/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bibletime/default.nix
@@ -1,36 +1,47 @@
 { lib, mkDerivation, fetchurl, cmake, pkg-config, sword, boost, clucene_core
-, qtbase, qttools, qtsvg, qtwebkit
-}:
+, qtbase, qttools, qtsvg, perlPackages, docbook_xml_dtd_45
+, docbook_xsl_ns }:
 
 mkDerivation rec {
 
-  version = "2.11.2";
+  version = "3.0";
 
   pname = "bibletime";
 
   src = fetchurl {
-    url = "mirror://sourceforge/bibletime/${pname}-${version}.tar.xz";
-    sha256 = "1s5bvmwbz1gyp3ml8sghpc00h8nhdvx2iyq96iri30kwx1y1jy6i";
+    url =
+      "https://github.com/bibletime/bibletime/releases/download/v${version}/${pname}-${version}.tar.xz";
+    sha256 = "08i6nb9a7z0jpsq76q0kr62hw6ph9chqjpjcvkimbcj4mmifzgnn";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config docbook_xml_dtd_45 ];
   buildInputs = [
-   sword boost clucene_core
-   qtbase qttools qtsvg qtwebkit
- ];
-
-  preConfigure =  ''
+    sword
+    boost
+    clucene_core
+    qtbase
+    qttools
+    qtsvg
+    perlPackages.Po4a
+  ];
+
+  preConfigure = ''
     export CLUCENE_HOME=${clucene_core};
     export SWORD_HOME=${sword};
   '';
 
-  cmakeFlags = [ "-DUSE_QT_WEBKIT=ON" "-DCMAKE_BUILD_TYPE=Debug" ];
+  cmakeFlags = [
+    "-DBUILD_HOWTO_PDF=OFF"
+    "-DBUILD_HANDBOOK_PDF=OFF"
+    "-DBT_DOCBOOK_XSL_HTML_CHUNK_XSL=${docbook_xsl_ns}/share/xml/docbook-xsl-ns/html/chunk.xsl"
+    "-DBT_DOCBOOK_XSL_PDF_DOCBOOK_XSL=${docbook_xsl_ns}/share/xml/docbook-xsl-ns/html/chunk.xsl"
+  ];
 
   meta = {
     description = "A Qt4 Bible study tool";
     homepage = "http://www.bibletime.info/";
     platforms = lib.platforms.linux;
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.piotr ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/blender/darwin.patch b/nixpkgs/pkgs/applications/misc/blender/darwin.patch
index da2d6fa4a3d7..72db79245941 100644
--- a/nixpkgs/pkgs/applications/misc/blender/darwin.patch
+++ b/nixpkgs/pkgs/applications/misc/blender/darwin.patch
@@ -1,5 +1,4 @@
 diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
-index 31da529..90308aa 100644
 --- a/build_files/cmake/platform/platform_apple.cmake
 +++ b/build_files/cmake/platform/platform_apple.cmake
 @@ -77,7 +77,6 @@ else()
@@ -10,7 +9,7 @@ index 31da529..90308aa 100644
  endif()
  
  # Prefer lib directory paths
-@@ -113,10 +112,6 @@ if(WITH_CODEC_SNDFILE)
+@@ -114,10 +113,6 @@ if(WITH_CODEC_SNDFILE)
    find_library(_sndfile_VORBIS_LIBRARY NAMES vorbis HINTS ${LIBDIR}/ffmpeg/lib)
    find_library(_sndfile_VORBISENC_LIBRARY NAMES vorbisenc HINTS ${LIBDIR}/ffmpeg/lib)
    list(APPEND LIBSNDFILE_LIBRARIES
@@ -21,16 +20,16 @@ index 31da529..90308aa 100644
    )
  
    print_found_status("SndFile libraries" "${LIBSNDFILE_LIBRARIES}")
-@@ -133,7 +128,7 @@ if(WITH_PYTHON)
+@@ -134,7 +129,7 @@ if(WITH_PYTHON)
      # normally cached but not since we include them with blender
-     set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
-     set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
--    set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
-+    set(PYTHON_LIBRARY "${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.dylib")
+     set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}")
+     set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}")
+-    set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}.a)
++    set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}.dylib)
      set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
      # set(PYTHON_LINKFLAGS "-u _PyMac_Error")  # won't  build with this enabled
    else()
-@@ -174,9 +169,7 @@ endif()
+@@ -175,9 +170,7 @@ endif()
  if(WITH_CODEC_FFMPEG)
    set(FFMPEG_FIND_COMPONENTS
      avcodec avdevice avformat avutil
@@ -41,7 +40,7 @@ index 31da529..90308aa 100644
    find_package(FFmpeg)
  endif()
  
-@@ -267,7 +260,6 @@ if(WITH_BOOST)
+@@ -275,7 +268,6 @@ if(WITH_BOOST)
  endif()
  
  if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
@@ -49,7 +48,7 @@ index 31da529..90308aa 100644
  endif()
  
  if(WITH_PUGIXML)
-@@ -451,7 +443,7 @@ else()
+@@ -476,7 +468,7 @@ else()
    set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic")
  endif()
  
diff --git a/nixpkgs/pkgs/applications/misc/blender/default.nix b/nixpkgs/pkgs/applications/misc/blender/default.nix
index 95a0e41d2ae4..305ab8917130 100644
--- a/nixpkgs/pkgs/applications/misc/blender/default.nix
+++ b/nixpkgs/pkgs/applications/misc/blender/default.nix
@@ -1,7 +1,7 @@
 { config, stdenv, lib, fetchurl, fetchzip, boost, cmake, ffmpeg, gettext, glew
 , ilmbase, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
-, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimagedenoise, openimageio2, openjpeg, python3Packages
+, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimagedenoise, openimageio2, openjpeg, python39Packages
 , openvdb, libXxf86vm, tbb, alembic
 , zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
 , jackaudioSupport ? false, libjack2
@@ -12,12 +12,12 @@
 , pugixml, llvmPackages, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
 , potrace
 , openxr-loader
-, embree, gmp
+, embree, gmp, libharu
 }:
 
 with lib;
 let
-  python = python3Packages.python;
+  python = python39Packages.python;
   optix = fetchzip {
     url = "https://developer.download.nvidia.com/redist/optix/v7.0/OptiX-7.0.0-include.zip";
     sha256 = "1b3ccd3197anya2bj3psxdrvrpfgiwva5zfv2xmyrl73nb2dvfr7";
@@ -26,16 +26,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "2.92.0";
+  version = "2.93.0";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "15a5vffn18a920286x0avbc2rap56k6y531wgibq68r90g2cz4g7";
+    sha256 = "0f2rpqa39sir6g90khd2d2fs4kss0zhk7vya1nscf5yp8r566fxs";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
 
-  nativeBuildInputs = [ cmake makeWrapper python3Packages.wrapPython ]
+  nativeBuildInputs = [ cmake makeWrapper python39Packages.wrapPython llvmPackages.llvm.dev ]
     ++ optionals cudaSupport [ addOpenGLRunpath ];
   buildInputs =
     [ boost ffmpeg gettext glew ilmbase
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
       gmp
       pugixml
       potrace
+      libharu
     ]
     ++ (if (!stdenv.isDarwin) then [
       libXi libX11 libXext libXrender
@@ -64,7 +65,7 @@ stdenv.mkDerivation rec {
     ++ optional cudaSupport cudatoolkit
     ++ optional colladaSupport opencollada
     ++ optional spaceNavSupport libspnav;
-  pythonPath = with python3Packages; [ numpy requests ];
+  pythonPath = with python39Packages; [ numpy requests ];
 
   postPatch = ''
     # allow usage of dynamically linked embree
@@ -78,16 +79,12 @@ stdenv.mkDerivation rec {
         --replace '${"$"}{LIBDIR}/openmp' \
                   '${llvmPackages.openmp}'
       substituteInPlace build_files/cmake/platform/platform_apple.cmake \
-        --replace 'set(PYTHON_VERSION 3.7)' \
-                  'set(PYTHON_VERSION ${python.pythonVersion})' \
-        --replace '${"$"}{PYTHON_VERSION}m' \
-                  '${"$"}{PYTHON_VERSION}' \
         --replace '${"$"}{LIBDIR}/python' \
                   '${python}' \
         --replace '${"$"}{LIBDIR}/opencollada' \
                   '${opencollada}' \
         --replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \
-                  '${python3Packages.numpy}/${python.sitePackages}/numpy'
+                  '${python39Packages.numpy}/${python.sitePackages}/numpy'
     '' else ''
       substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
     '');
@@ -109,8 +106,8 @@ stdenv.mkDerivation rec {
       "-DPYTHON_VERSION=${python.pythonVersion}"
       "-DWITH_PYTHON_INSTALL=OFF"
       "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
-      "-DPYTHON_NUMPY_PATH=${python3Packages.numpy}/${python.sitePackages}"
-      "-DPYTHON_NUMPY_INCLUDE_DIRS=${python3Packages.numpy}/${python.sitePackages}/numpy/core/include"
+      "-DPYTHON_NUMPY_PATH=${python39Packages.numpy}/${python.sitePackages}"
+      "-DPYTHON_NUMPY_INCLUDE_DIRS=${python39Packages.numpy}/${python.sitePackages}/numpy/core/include"
       "-DWITH_PYTHON_INSTALL_REQUESTS=OFF"
       "-DWITH_OPENVDB=ON"
       "-DWITH_TBB=ON"
diff --git a/nixpkgs/pkgs/applications/misc/bottles/default.nix b/nixpkgs/pkgs/applications/misc/bottles/default.nix
index 5c6e9a0f9fef..04003f6a9b5c 100644
--- a/nixpkgs/pkgs/applications/misc/bottles/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bottles/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub
 , meson, ninja, pkg-config, wrapGAppsHook
-, desktop-file-utils, gsettings-desktop-schemas, libnotify
+, desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy
 , python3Packages, gettext
 , appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3
 , steam-run-native
@@ -8,13 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "bottles";
-  version = "2.1.1";
+  version = "3.1.6";
 
   src = fetchFromGitHub {
     owner = "bottlesdevs";
     repo = pname;
     rev = version;
-    sha256 = "1hbjnd06h0h47gcwb1s1b9py5nwmia1m35da6zydbl70vs75imhn";
+    sha256 = "1izks01010akjf83xvi70dr4yzgk6yr84kd0slzz22yq204pdh5m";
   };
 
   postPatch = ''
@@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
     gsettings-desktop-schemas
     gspell
     gtk3
+    libhandy
     libnotify
   ];
 
@@ -69,9 +70,9 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An easy-to-use wineprefix manager";
-    homepage = "https://github.com/bottlesdevs/Bottles";
+    homepage = "https://usebottles.com/";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ bloomvdomino ];
+    maintainers = with maintainers; [ bloomvdomino shamilton ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/break-time/default.nix b/nixpkgs/pkgs/applications/misc/break-time/default.nix
index 3458ac3f2507..8d9a872a1022 100644
--- a/nixpkgs/pkgs/applications/misc/break-time/default.nix
+++ b/nixpkgs/pkgs/applications/misc/break-time/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "18p9gfp0inbnjsc7af38fghyklr7qnl2kkr25isfy9d5m8cpxqc6";
   };
 
-  cargoSha256 = "0brmgrxhspcpcarm4lvnl95dw2n96r20w736giv18xcg7d5jmgca";
+  cargoSha256 = "01y1p40vz30h2jkh37zipqvmfybgpq6wdcdglkab85jivmd1lslx";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/misc/calcurse/default.nix b/nixpkgs/pkgs/applications/misc/calcurse/default.nix
index 8a83c593986a..837fcc5c27d6 100644
--- a/nixpkgs/pkgs/applications/misc/calcurse/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calcurse/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "calcurse";
-  version = "4.7.0";
+  version = "4.7.1";
 
   src = fetchurl {
     url = "https://calcurse.org/files/${pname}-${version}.tar.gz";
-    sha256 = "0dc4bka2l9z03bnlygsnl06l1zi2wbn29rkc02b13x2kdab7arpg";
+    sha256 = "sha256-CnxV0HZ0Vp0WbAsOdYeyly09qBYM231gsdvSiVgDr7A=";
   };
 
   buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ];
diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix
index 11667ea39506..40951d5f2ab2 100644
--- a/nixpkgs/pkgs/applications/misc/calibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , mkDerivation
 , fetchurl
 , poppler_utils
@@ -26,11 +25,11 @@
 
 mkDerivation rec {
   pname = "calibre";
-  version = "5.16.1";
+  version = "5.17.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lTXCW0MGNOezecaGO9c2JGU4ylwpPmBaMXTY3nLNcrE=";
+    hash = "sha256-rdiBL3Y3q/0wFfWGE4jGkWakgV8hA9HjDcKXso6tVrs=";
   };
 
   patches = [
@@ -41,19 +40,10 @@ mkDerivation rec {
   ]
   ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
 
-  escaped_pyqt5_dir = builtins.replaceStrings ["/"] ["\\/"] (toString python3Packages.pyqt5);
-  platform_tag =
-    if stdenv.hostPlatform.isDarwin then
-      "WS_MACX"
-    else if stdenv.hostPlatform.isWindows then
-      "WS_WIN"
-    else
-      "WS_X11";
-
   prePatch = ''
-    sed -i "s/\[tool.sip.project\]/[tool.sip.project]\nsip-include-dirs = [\"${escaped_pyqt5_dir}\/share\/sip\/PyQt5\"]/g" \
+    sed -i "s@\[tool.sip.project\]@[tool.sip.project]\nsip-include-dirs = [\"${python3Packages.pyqt5}/share/sip/PyQt5\"]@g" \
       setup/build.py
-    sed -i "s/\[tool.sip.bindings.pictureflow\]/[tool.sip.bindings.pictureflow]\ntags = [\"${platform_tag}\"]/g" \
+    sed -i "s/\[tool.sip.bindings.pictureflow\]/[tool.sip.bindings.pictureflow]\ntags = [\"${python3Packages.sip.platform_tag}\"]/g" \
       setup/build.py
 
     # Remove unneeded files and libs
@@ -103,7 +93,7 @@ mkDerivation rec {
       pyqtwebengine
       python
       regex
-      sip_5
+      sip
       zeroconf
       # the following are distributed with calibre, but we use upstream instead
       odfpy
@@ -122,7 +112,6 @@ mkDerivation rec {
     export FC_LIB_DIR=${fontconfig.lib}/lib
     export PODOFO_INC_DIR=${podofo.dev}/include/podofo
     export PODOFO_LIB_DIR=${podofo.lib}/lib
-    export SIP_BIN=${python3Packages.sip}/bin/sip
     export XDG_DATA_HOME=$out/share
     export XDG_UTILS_INSTALL_MODE="user"
 
diff --git a/nixpkgs/pkgs/applications/misc/cheat/default.nix b/nixpkgs/pkgs/applications/misc/cheat/default.nix
index 90eb38329a32..9c8f060f1691 100644
--- a/nixpkgs/pkgs/applications/misc/cheat/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cheat/default.nix
@@ -3,13 +3,13 @@
 
 buildGoModule rec {
   pname = "cheat";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "cheat";
     repo = "cheat";
     rev = version;
-    sha256 = "sha256-Q/frWu82gB15LEzwYCbJr7k0yZ+AXBvcPWxoevSpeqU=";
+    sha256 = "sha256-wH0MTTwUmi/QZXo3vWgRYmlPxMxgfhghrTIZAwdVjQ0=";
   };
 
   subPackages = [ "cmd/cheat" ];
diff --git a/nixpkgs/pkgs/applications/misc/chrysalis/default.nix b/nixpkgs/pkgs/applications/misc/chrysalis/default.nix
index e79d989e22d8..4d6a6943cdeb 100644
--- a/nixpkgs/pkgs/applications/misc/chrysalis/default.nix
+++ b/nixpkgs/pkgs/applications/misc/chrysalis/default.nix
@@ -1,16 +1,20 @@
-{ lib, appimageTools, fetchurl }:
+{ lib, appimageTools, fetchurl, gtk3, gsettings-desktop-schemas }:
 
 let
   pname = "chrysalis";
-  version = "0.7.9";
+  version = "0.8.4";
 in appimageTools.wrapType2 rec {
   name = "${pname}-${version}-binary";
 
   src = fetchurl {
-    url = "https://github.com/keyboardio/${pname}/releases/download/${pname}-${version}/${pname}-${version}.AppImage";
-    sha256 = "12w4vv7dwfpvxpc8kpfas90y7yy8mb8dj2096z3vw1bli5lrn3zi";
+    url = "https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
+    sha256 = "b41f3e23dac855b1588cff141e3d317f96baff929a0543c79fccee0c6f095bc7";
   };
 
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
   multiPkgs = null;
   extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
     p.glib
diff --git a/nixpkgs/pkgs/applications/misc/clifm/default.nix b/nixpkgs/pkgs/applications/misc/clifm/default.nix
new file mode 100644
index 000000000000..7fc130700aa9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/clifm/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, libcap, acl, file, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "clifm";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "leo-arch";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mf9lrq0l532vyf4ycsikrw8imn4gkavyn3cr42nhjsr1drygrp8";
+  };
+
+  buildInputs = [ libcap acl file readline ];
+
+  makeFlags = [
+    "INSTALLPREFIX=${placeholder "out"}/bin"
+    "DESKTOPPREFIX=${placeholder "out"}/share"
+  ];
+
+  preInstall = ''
+    mkdir -p $out/bin $out/share
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/leo-arch/clifm";
+    description = "CliFM is a CLI-based, shell-like, and non-curses terminal file manager written in C: simple, fast, extensible, and lightweight as hell";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ vonfry ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/clipcat/default.nix b/nixpkgs/pkgs/applications/misc/clipcat/default.nix
index 497e5616e805..b28b33d56c91 100644
--- a/nixpkgs/pkgs/applications/misc/clipcat/default.nix
+++ b/nixpkgs/pkgs/applications/misc/clipcat/default.nix
@@ -12,9 +12,9 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0rxl3ksjinw07q3p2vjqg80k3c6wx2q7pzpf2344zyfb4gkqzx1c";
   };
 
-  cargoSha256 = "1ffgvhkdj8wkhlgi0cj0njdm9ycxq2qda4b5qn8bmaygzr2zkwpd";
+  cargoSha256 = "1n4il3l59m2a6ca54vfaivzg25abf8s4w5kpd5q51p13624iz0kb";
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   # needed for internal protobuf c wrapper library
   PROTOC = "${protobuf}/bin/protoc";
diff --git a/nixpkgs/pkgs/applications/misc/cointop/default.nix b/nixpkgs/pkgs/applications/misc/cointop/default.nix
index d62d96e530e8..66d73c94b460 100644
--- a/nixpkgs/pkgs/applications/misc/cointop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cointop/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "cointop";
-  version = "1.6.3";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "miguelmota";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-h4102oWYSuY4uq/Pyo9u25Pdsai7AK2W9yUmS/zdjrw=";
+    sha256 = "sha256-pnh4z7vk8xazdBPNbwR5BrKFbi8df8UTM2SOU+KDvsk=";
   };
 
   goPackagePath = "github.com/miguelmota/cointop";
diff --git a/nixpkgs/pkgs/applications/misc/coolreader/default.nix b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
index dc32cbf2c2a4..e1cbaf320eae 100644
--- a/nixpkgs/pkgs/applications/misc/coolreader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "coolreader";
-  version = "3.2.55";
+  version = "3.2.57";
 
   src = fetchFromGitHub {
     owner = "buggins";
     repo = pname;
     rev = "cr${version}";
-    sha256 = "sha256-gYAaYGEjw7p6y4h5j6j/4Ld+b37Nv+kt04Wp+qb8gzY=";
+    sha256 = "sha256-ZfgaLCLvBU6xP7nx7YJTsJSpvpdQgLpSMWH+BsG8E1g=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/applications/misc/corectrl/default.nix b/nixpkgs/pkgs/applications/misc/corectrl/default.nix
index f213faa44124..32ca4b0e06c4 100644
--- a/nixpkgs/pkgs/applications/misc/corectrl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/corectrl/default.nix
@@ -5,6 +5,7 @@
 , karchive
 , kauth
 , libdrm
+, hwdata
 , mesa-demos
 , procps
 , util-linux
@@ -20,13 +21,13 @@
 
 stdenv.mkDerivation rec{
   pname = "corectrl";
-  version = "1.1.1";
+  version = "1.1.3";
 
   src = fetchFromGitLab {
     owner = "corectrl";
     repo = "corectrl";
     rev = "v${version}";
-    sha256 = "sha256-YQDrxPqCa3OzNKd3UiAffqqvOrgbXmDFJGjYPetolyY=";
+    sha256 = "sha256-xRyc7FYzG8MnhQ8DjIUHYLeUZCZQdi4j1v1fG7F0+G8=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +51,9 @@ stdenv.mkDerivation rec{
     qtxmlpatterns
   ];
 
-  runtimeDeps = [ mesa-demos vulkan-tools ];
+  cmakeFlags = [ "-DWITH_PCI_IDS_PATH=${hwdata}/share/hwdata/pci.ids" ];
+
+  runtimeDeps = [ hwdata mesa-demos vulkan-tools ];
   binPath = lib.makeBinPath runtimeDeps;
 
   dontWrapQtApps = true;
diff --git a/nixpkgs/pkgs/applications/misc/cpu-x/default.nix b/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
index 2de06f8c0315..8f68a512c211 100644
--- a/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cpu-x/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     homepage = src.meta.homepage;
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix
index 229966561c6d..360ef47ecf1d 100644
--- a/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/default.nix
@@ -10,10 +10,10 @@ let
   };
 
   libarcusLulzbot = callPackage ./libarcus.nix {
-    inherit (python3.pkgs) buildPythonPackage sip pythonOlder;
+    inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder;
   };
   libsavitarLulzbot = callPackage ./libsavitar.nix {
-    inherit (python3.pkgs) buildPythonPackage sip pythonOlder;
+    inherit (python3.pkgs) buildPythonPackage sip_4 pythonOlder;
   };
 
   inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix
index 7b1dbf4d85ef..15e221a8f743 100644
--- a/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libarcus.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchgit, fetchurl, cmake, sip, protobuf, pythonOlder }:
+{ lib, buildPythonPackage, fetchgit, fetchurl, cmake, sip_4, protobuf, pythonOlder }:
 
 buildPythonPackage {
   pname = "libarcus";
@@ -13,7 +13,7 @@ buildPythonPackage {
 
   disabled = pythonOlder "3.4.0";
 
-  propagatedBuildInputs = [ sip ];
+  propagatedBuildInputs = [ sip_4 ];
   nativeBuildInputs = [ cmake ];
   buildInputs = [ protobuf ];
 
diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
index f12059e6317b..dd84173ffce1 100644
--- a/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot/libsavitar.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, pythonOlder, fetchgit, cmake, sip }:
+{ lib, buildPythonPackage, pythonOlder, fetchgit, cmake, sip_4 }:
 
 buildPythonPackage {
   pname = "libsavitar-lulzbot";
@@ -19,7 +19,7 @@ buildPythonPackage {
 
   nativeBuildInputs = [ cmake ];
 
-  propagatedBuildInputs = [ sip ];
+  propagatedBuildInputs = [ sip_4 ];
 
   disabled = pythonOlder "3.4.0";
 
diff --git a/nixpkgs/pkgs/applications/misc/curaengine/default.nix b/nixpkgs/pkgs/applications/misc/curaengine/default.nix
index 76947c1ed946..05f63c548035 100644
--- a/nixpkgs/pkgs/applications/misc/curaengine/default.nix
+++ b/nixpkgs/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curaengine";
-  version = "4.9.0";
+  version = "4.9.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "0b82hwn7pb73h1azaandq93bkzlzskhgk71pwf4yws0j9bm6z084";
+    sha256 = "sha256-1hCjtnI1EnfyQ0QfU8qZoSLIjE5pyDYpu8H4J91cWYM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/misc/dasel/default.nix b/nixpkgs/pkgs/applications/misc/dasel/default.nix
index 3f4e77bdd042..ded30233d4cb 100644
--- a/nixpkgs/pkgs/applications/misc/dasel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dasel/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "dasel";
-  version = "1.14.1";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nxdyd0zg4w1zr8p9z2x88h36vbn7ryk7160zszdiwh5qmdlv47v";
+    sha256 = "sha256-XJSWdXGa1qkkMfETUV8xx9oaMdNVFdO27/GvDvczjG8=";
   };
 
   vendorSha256 = "sha256-BdX4DO77mIf/+aBdkNVFUzClsIml1UMcgvikDbbdgcY=";
diff --git a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
index fa5240b5333a..8de49c5f9507 100644
--- a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , copyDesktopItems
 , fetchFromGitHub
-, fetchpatch
 , makeDesktopItem
 , makeWrapper
 , fontconfig
@@ -18,19 +17,19 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "dbeaver-ce";
-  version = "21.0.3"; # When updating also update fetchedMavenDeps.sha256
+  pname = "dbeaver";
+  version = "21.1.0"; # When updating also update fetchedMavenDeps.sha256
 
   src = fetchFromGitHub {
     owner = "dbeaver";
     repo = "dbeaver";
     rev = version;
-    sha256 = "sha256-ItM8t+gqE0ccuuimfEMUddykl+xt2eZIBd3MbpreRwA=";
+    sha256 = "sha256-MHfW6gZFB2osE+8Ek7I40fg2cdowph3hvKqkjG7+rY4=";
   };
 
   fetchedMavenDeps = stdenv.mkDerivation {
     name = "dbeaver-${version}-maven-deps";
-    inherit src patches;
+    inherit src;
 
     buildInputs = [
       maven
@@ -51,18 +50,9 @@ stdenv.mkDerivation rec {
     dontFixup = true;
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-rsK/B39ogNu5nC41OfyAsLiwBz4gWyH+8Fj7E6+rOng=";
+    outputHash = "sha256-FdWQ+2U5bIXSASm3SaLjyQlaRc1AkYPpFJSP4PnCWJw=";
   };
 
-  patches = [
-    # Fix eclipse-color-theme URL (https://github.com/dbeaver/dbeaver/pull/12133)
-    # After April 15, 2021 eclipse-color-theme.github.com no longer redirects to eclipse-color-theme.github.io
-    (fetchpatch {
-      url = "https://github.com/dbeaver/dbeaver/commit/65d65e2c2c711cc87fddcec425a6915aa80f4ced.patch";
-      sha256 = "sha256-pxOcRYkV/5o+tHcRhHDZ1TmZSHMnKBmkNTVAlIf9nUE=";
-    })
-  ];
-
   nativeBuildInputs = [
     copyDesktopItems
     makeWrapper
diff --git a/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix b/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix
index fe15d90f254c..85298bc3c753 100644
--- a/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/devdocs-desktop/default.nix
@@ -1,13 +1,13 @@
 { lib, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3 }:
 
 let
-  version = "0.7.1";
+  version = "0.7.2";
   pname = "devdocs-desktop";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/egoist/devdocs-desktop/releases/download/v${version}/DevDocs-${version}.AppImage";
-    sha256 = "5bba99a34c90a65eff67aface0b7446cbf43d620a1c195f27e7bb33ab6d3d0c2";
+    sha256 = "sha256-4ugpzh0Dweae6tKb6uqRhEW9HT+iVIo8MQRbVKTdRFw=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch b/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch
deleted file mode 100644
index 89ff3759451d..000000000000
--- a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15142.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-commit 970fb11a296b5bbdc5e8425851253d2c5913c45e
-Author: Leon Bottou <leon@bottou.org>
-Date:   Tue Mar 26 20:36:31 2019 -0400
-
-    Fix bug#296
-
-diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
-index a6a39e0..0a0fac6 100644
---- a/libdjvu/DjVmDir.cpp
-+++ b/libdjvu/DjVmDir.cpp
-@@ -299,42 +299,44 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
-          memcpy((char*) strings+strings_size, buffer, length);
-       }
-       DEBUG_MSG("size of decompressed names block=" << strings.size() << "\n");
--      if (strings[strings.size()-1] != 0)
--        {
--         int strings_size=strings.size();
--         strings.resize(strings_size+1);
--         strings[strings_size] = 0;
--        }
-+      int strings_size=strings.size();
-+      strings.resize(strings_size+3);
-+      memset((char*) strings+strings_size, 0, 4);
-       
--         // Copy names into the files
-+      // Copy names into the files
-       const char * ptr=strings;
-       for(pos=files_list;pos;++pos)
-       {
-          GP<File> file=files_list[pos];
--
-+         if (ptr >= (const char*)strings + strings_size)
-+           G_THROW( "DjVu document is corrupted (DjVmDir)" );
-          file->id=ptr;
-          ptr+=file->id.length()+1;
-          if (file->flags & File::HAS_NAME)
-          {
--            file->name=ptr;
--            ptr+=file->name.length()+1;
--         } else
-+           file->name=ptr;
-+           ptr+=file->name.length()+1;
-+         }
-+         else
-          {
-             file->name=file->id;
-          }
-          if (file->flags & File::HAS_TITLE)
-          {
--            file->title=ptr;
--       ptr+=file->title.length()+1;
--         } else
--       file->title=file->id;
--   /* msr debug:  multipage file, file->title is null.  
-+           file->title=ptr;
-+           ptr+=file->title.length()+1;
-+         }
-+         else
-+         {
-+           file->title=file->id;
-+         }
-+         /* msr debug:  multipage file, file->title is null.  
-          DEBUG_MSG(file->name << ", " << file->id << ", " << file->title << ", " <<
-                    file->offset << ", " << file->size << ", " <<
-                    file->is_page() << "\n"); */
-       }
- 
--         // Check that there is only one file with SHARED_ANNO flag on
-+      // Check that there is only one file with SHARED_ANNO flag on
-       int shared_anno_cnt=0;
-       for(pos=files_list;pos;++pos)
-       {
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch b/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch
deleted file mode 100644
index ef1905338fba..000000000000
--- a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15143.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-commit b1f4e1b2187d9e5010cd01ceccf20b4a11ce723f
-Author: Leon Bottou <leon@bottou.org>
-Date:   Tue Mar 26 20:45:46 2019 -0400
-
-    fix for bug #297
-
-diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
-index 0a0fac6..5a49015 100644
---- a/libdjvu/DjVmDir.cpp
-+++ b/libdjvu/DjVmDir.cpp
-@@ -309,7 +309,7 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
-       {
-          GP<File> file=files_list[pos];
-          if (ptr >= (const char*)strings + strings_size)
--           G_THROW( "DjVu document is corrupted (DjVmDir)" );
-+           G_THROW( ByteStream::EndOfFile );
-          file->id=ptr;
-          ptr+=file->id.length()+1;
-          if (file->flags & File::HAS_NAME)
-diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp
-index 0e487f0..c2fdbe4 100644
---- a/libdjvu/GBitmap.cpp
-+++ b/libdjvu/GBitmap.cpp
-@@ -890,11 +890,13 @@ GBitmap::read_rle_raw(ByteStream &bs)
-   int c = 0;
-   while (n >= 0)
-     {
--      bs.read(&h, 1);
-+      if (bs.read(&h, 1) <= 0)
-+        G_THROW( ByteStream::EndOfFile );
-       int x = h;
-       if (x >= (int)RUNOVERFLOWVALUE)
-         {
--          bs.read(&h, 1);
-+          if (bs.read(&h, 1) <= 0)
-+            G_THROW( ByteStream::EndOfFile );
-           x = h + ((x - (int)RUNOVERFLOWVALUE) << 8);
-         }
-       if (c+x > ncolumns)
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch b/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch
deleted file mode 100644
index 6094be883385..000000000000
--- a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15144.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-commit e15d51510048927f172f1bf1f27ede65907d940d
-Author: Leon Bottou <leon@bottou.org>
-Date:   Mon Apr 8 22:25:55 2019 -0400
-
-    bug 299 fixed
-
-diff --git a/libdjvu/GContainer.h b/libdjvu/GContainer.h
-index 96b067c..0140211 100644
---- a/libdjvu/GContainer.h
-+++ b/libdjvu/GContainer.h
-@@ -550,52 +550,61 @@ public:
- template <class TYPE> void
- GArrayTemplate<TYPE>::sort(int lo, int hi)
- {
--  if (hi <= lo)
--    return;
--  if (hi > hibound || lo<lobound)
--    G_THROW( ERR_MSG("GContainer.illegal_subscript") );
-   TYPE *data = (TYPE*)(*this);
--  // Test for insertion sort
--  if (hi <= lo + 50)
-+  while(true)
-     {
--      for (int i=lo+1; i<=hi; i++)
-+      if (hi <= lo)
-+        return;
-+      if (hi > hibound || lo<lobound)
-+        G_THROW( ERR_MSG("GContainer.illegal_subscript") );
-+      // Test for insertion sort
-+      if (hi <= lo + 50)
-         {
--          int j = i;
--          TYPE tmp = data[i];
--          while ((--j>=lo) && !(data[j]<=tmp))
--            data[j+1] = data[j];
--          data[j+1] = tmp;
-+          for (int i=lo+1; i<=hi; i++)
-+            {
-+              int j = i;
-+              TYPE tmp = data[i];
-+              while ((--j>=lo) && !(data[j]<=tmp))
-+                data[j+1] = data[j];
-+              data[j+1] = tmp;
-+            }
-+          return;
-         }
--      return;
--    }
--  // -- determine suitable quick-sort pivot
--  TYPE tmp = data[lo];
--  TYPE pivot = data[(lo+hi)/2];
--  if (pivot <= tmp)
--    { tmp = pivot; pivot=data[lo]; }
--  if (data[hi] <= tmp)
--    { pivot = tmp; }
--  else if (data[hi] <= pivot)
--    { pivot = data[hi]; }
--  // -- partition set
--  int h = hi;
--  int l = lo;
--  while (l < h)
--    {
--      while (! (pivot <= data[l])) l++;
--      while (! (data[h] <= pivot)) h--;
--      if (l < h)
-+      // -- determine median-of-three pivot
-+      TYPE tmp = data[lo];
-+      TYPE pivot = data[(lo+hi)/2];
-+      if (pivot <= tmp)
-+        { tmp = pivot; pivot=data[lo]; }
-+      if (data[hi] <= tmp)
-+        { pivot = tmp; }
-+      else if (data[hi] <= pivot)
-+        { pivot = data[hi]; }
-+      // -- partition set
-+      int h = hi;
-+      int l = lo;
-+      while (l < h)
-         {
--          tmp = data[l];
--          data[l] = data[h];
--          data[h] = tmp;
--          l = l+1;
--          h = h-1;
-+          while (! (pivot <= data[l])) l++;
-+          while (! (data[h] <= pivot)) h--;
-+          if (l < h)
-+            {
-+              tmp = data[l];
-+              data[l] = data[h];
-+              data[h] = tmp;
-+              l = l+1;
-+              h = h-1;
-+            }
-+        }
-+      // -- recurse, small partition first
-+      //    tail-recursion elimination
-+      if (h - lo <= hi - l) {
-+        sort(lo,h);
-+        lo = l; // sort(l,hi)
-+      } else {
-+        sort(l,hi);
-+        hi = h; // sort(lo,h)
-       }
-     }
--  // -- recursively restart
--  sort(lo, h);
--  sort(l, hi);
- }
- 
- template<class TYPE> inline TYPE&
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch b/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch
deleted file mode 100644
index 01108f9ee738..000000000000
--- a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-15145.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 9658b01431cd7ff6344d7787f855179e73fe81a7
-Author: Leon Bottou <leon@bottou.org>
-Date:   Mon Apr 8 22:55:38 2019 -0400
-
-    fix bug #298
-
-diff --git a/libdjvu/GBitmap.h b/libdjvu/GBitmap.h
-index e8e0c9b..ca89a19 100644
---- a/libdjvu/GBitmap.h
-+++ b/libdjvu/GBitmap.h
-@@ -566,7 +566,7 @@ GBitmap::operator[](int row)
- {
-   if (!bytes) 
-     uncompress();
--  if (row<0 || row>=nrows) {
-+  if (row<0 || row>=nrows || !bytes) {
- #ifndef NDEBUG
-     if (zerosize < bytes_per_row + border)
-       G_THROW( ERR_MSG("GBitmap.zero_small") );
-@@ -581,7 +581,7 @@ GBitmap::operator[](int row) const
- {
-   if (!bytes) 
-     ((GBitmap*)this)->uncompress();
--  if (row<0 || row>=nrows) {
-+  if (row<0 || row>=nrows || !bytes) {
- #ifndef NDEBUG
-     if (zerosize < bytes_per_row + border)
-       G_THROW( ERR_MSG("GBitmap.zero_small") );
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch b/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch
deleted file mode 100644
index 132fed794888..000000000000
--- a/nixpkgs/pkgs/applications/misc/djvulibre/CVE-2019-18804.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-commit c8bec6549c10ffaa2f2fbad8bbc629efdf0dd125
-Author: Leon Bottou <leon@bottou.org>
-Date:   Thu Oct 17 22:20:31 2019 -0400
-
-    Fixed bug 309
-
-diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
-index 00752a0..f81eaeb 100644
---- a/libdjvu/IW44EncodeCodec.cpp
-+++ b/libdjvu/IW44EncodeCodec.cpp
-@@ -405,7 +405,7 @@ filter_fv(short *p, int w, int h, int rowsize, int scale)
-   int y = 0;
-   int s = scale*rowsize;
-   int s3 = s+s+s;
--  h = ((h-1)/scale)+1;
-+  h = (h>0) ? ((h-1)/scale)+1 : 0;
-   y += 1;
-   p += s;
-   while (y-3 < h)
-diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
-index 6d0df3b..7109952 100644
---- a/tools/ddjvu.cpp
-+++ b/tools/ddjvu.cpp
-@@ -279,7 +279,7 @@ render(ddjvu_page_t *page, int pageno)
-       prect.h = (ih * 100) / dpi;
-     }
-   /* Process aspect ratio */
--  if (flag_aspect <= 0)
-+  if (flag_aspect <= 0 && iw>0 && ih>0)
-     {
-       double dw = (double)iw / prect.w;
-       double dh = (double)ih / prect.h;
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/default.nix b/nixpkgs/pkgs/applications/misc/djvulibre/default.nix
index d4384e829cf5..5119dd48e0da 100644
--- a/nixpkgs/pkgs/applications/misc/djvulibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/djvulibre/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "djvulibre";
-  version = "3.5.27";
+  version = "3.5.28";
 
   src = fetchurl {
     url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
-    sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
+    sha256 = "1p1fiygq9ny8aimwc4vxwjc6k9ykgdsq1sq06slfbzalfvm0kl7w";
   };
 
   outputs = [ "bin" "dev" "out" ];
@@ -24,21 +24,10 @@ stdenv.mkDerivation rec {
     libiconv
   ];
 
-  patches = [
-    ./CVE-2019-18804.patch
-    # This one is needed to make the following
-    # two CVE patches apply cleanly
-    ./fix_hongfuzz_crash.patch
-    ./CVE-2019-15142.patch
-    ./CVE-2019-15143.patch
-    ./CVE-2019-15144.patch
-    ./CVE-2019-15145.patch
-  ];
-
   meta = with lib; {
     description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files";
     homepage = "http://djvu.sourceforge.net";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Anton-Latukha ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch b/nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch
deleted file mode 100644
index 609b41cd9db7..000000000000
--- a/nixpkgs/pkgs/applications/misc/djvulibre/fix_hongfuzz_crash.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-commit 89d71b01d606e57ecec2c2930c145bb20ba5bbe3
-Author: Leon Bottou <leon@bottou.org>
-Date:   Fri Jul 13 08:46:22 2018 -0400
-
-    fix hongfuzz crash.
-
-diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
-index d322323..a6a39e0 100644
---- a/libdjvu/DjVmDir.cpp
-+++ b/libdjvu/DjVmDir.cpp
-@@ -299,7 +299,13 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
-          memcpy((char*) strings+strings_size, buffer, length);
-       }
-       DEBUG_MSG("size of decompressed names block=" << strings.size() << "\n");
--   
-+      if (strings[strings.size()-1] != 0)
-+        {
-+         int strings_size=strings.size();
-+         strings.resize(strings_size+1);
-+         strings[strings_size] = 0;
-+        }
-+      
-          // Copy names into the files
-       const char * ptr=strings;
-       for(pos=files_list;pos;++pos)
-diff --git a/libdjvu/miniexp.cpp b/libdjvu/miniexp.cpp
-index 6a5cd90..828addc 100644
---- a/libdjvu/miniexp.cpp
-+++ b/libdjvu/miniexp.cpp
-@@ -1065,7 +1065,7 @@ print_c_string(const char *s, char *d, int flags, size_t len)
-       c = (unsigned char)(*s++);
-       if (char_quoted(c, flags))
-         {
--          char buffer[10];
-+          char buffer[16]; /* 10+1 */
-           static const char *tr1 = "\"\\tnrbf";
-           static const char *tr2 = "\"\\\t\n\r\b\f";
-           buffer[0] = buffer[1] = 0;
-diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
-index 7ed13ad..fab9472 100644
---- a/tools/csepdjvu.cpp
-+++ b/tools/csepdjvu.cpp
-@@ -1834,7 +1834,7 @@ main(int argc, const char **argv)
-                 ByteStream::create(GURL::Filename::UTF8(arg),"rb");
-               BufferByteStream ibs(*fbs);
-               do {
--                char pagename[16];
-+                char pagename[20];
-                 sprintf(pagename, "p%04d.djvu", ++pageno);
-                 if (opts.verbose > 1)
-                   DjVuPrintErrorUTF8("%s","--------------------\n");
diff --git a/nixpkgs/pkgs/applications/misc/dockbarx/default.nix b/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
index 5bc8de522dec..cac6c363c323 100644
--- a/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
@@ -1,41 +1,84 @@
-{ lib, fetchFromGitHub, python2Packages, gnome2, keybinder }:
+{ lib
+, fetchFromGitHub
+, glib
+, gobject-introspection
+, gtk3
+, keybinder3
+, libwnck3
+, python3Packages
+, wrapGAppsHook
+}:
 
-python2Packages.buildPythonApplication rec {
-  ver = "0.93";
-  name = "dockbarx-${ver}";
+python3Packages.buildPythonApplication rec {
+  pname = "dockbarx";
+  version = "${ver}-${rev}";
+  ver = "1.0-beta";
+  rev = "d98020ec49f3e3a5692ab2adbb145bbe5a1e80fe";
 
   src = fetchFromGitHub {
-    owner = "M7S";
+    owner = "xuzhen";
     repo = "dockbarx";
-    rev = ver;
-    sha256 = "1h1g2vag5vnx87sa1f0qi8rq7wlr2ymvkrdr08kk7cma4wk0x6hg";
+    rev = rev;
+    sha256 = "0xwqxh5mr2bi0sk54b848705awp0lfpd91am551811j2bdkbs04m";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py                                --replace /usr/                   ""
-    substituteInPlace setup.py                                --replace '"/", "usr", "share",'  '"share",'
-    substituteInPlace dockbarx/applets.py                     --replace /usr/share/             $out/share/
-    substituteInPlace dockbarx/dockbar.py                     --replace /usr/share/             $out/share/
-    substituteInPlace dockbarx/iconfactory.py                 --replace /usr/share/             $out/share/
-    substituteInPlace dockbarx/theme.py                       --replace /usr/share/             $out/share/
-    substituteInPlace dockx_applets/battery_status.py         --replace /usr/share/             $out/share/
-    substituteInPlace dockx_applets/namebar.py                --replace /usr/share/             $out/share/
-    substituteInPlace dockx_applets/namebar_window_buttons.py --replace /usr/share/             $out/share/
-    substituteInPlace dockx_applets/volume-control.py         --replace /usr/share/             $out/share/
-  '';
+  nativeBuildInputs = [
+    glib.dev
+    python3Packages.polib
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk3
+    libwnck3
+    keybinder3
+  ];
 
-  propagatedBuildInputs = (with python2Packages; [ pygtk pyxdg dbus-python pillow xlib ])
-    ++ (with gnome2; [ gnome_python gnome_python_desktop ])
-    ++ [ keybinder ];
+  propagatedBuildInputs = with python3Packages; [
+    dbus-python
+    pillow
+    pygobject3
+    pyxdg
+    xlib
+  ];
 
   # no tests
   doCheck = false;
 
+  dontWrapGApps = true;
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace /usr/ "" \
+      --replace '"/", "usr", "share",' '"share",'
+
+    for f in \
+      dbx_preference \
+      dockbarx/applets.py \
+      dockbarx/dockbar.py \
+      dockbarx/iconfactory.py \
+      dockbarx/theme.py \
+      mate_panel_applet/dockbarx_mate_applet
+    do
+      substituteInPlace $f --replace /usr/share/ $out/share/
+    done
+  '';
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  # Arguments to be passed to `makeWrapper`, only used by buildPython*
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   meta = with lib; {
-    homepage = "https://launchpad.net/dockbar/";
-    description = "Lightweight taskbar / panel replacement for Linux which works as a stand-alone dock";
-    license = licenses.gpl3;
+    homepage = "https://github.com/xuzhen/dockbarx";
+    description = "Lightweight taskbar/panel replacement which works as a stand-alone dock";
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = [ maintainers.volth ];
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/dwmblocks/default.nix b/nixpkgs/pkgs/applications/misc/dwmblocks/default.nix
index 45757787c7c3..c31a1a4b0630 100644
--- a/nixpkgs/pkgs/applications/misc/dwmblocks/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dwmblocks/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/torrinfail/dwmblocks";
     license = licenses.isc;
     maintainers = with maintainers; [ sophrosyne ];
-    platforms = platforms.all;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/eaglemode/default.nix b/nixpkgs/pkgs/applications/misc/eaglemode/default.nix
index d411ce7ae819..65a74c4aca48 100644
--- a/nixpkgs/pkgs/applications/misc/eaglemode/default.nix
+++ b/nixpkgs/pkgs/applications/misc/eaglemode/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff, pkg-config,
-librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xineLib, ghostscript, makeWrapper }:
+librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xine-lib, ghostscript, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "eaglemode";
@@ -12,11 +12,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ perl libX11 libXinerama libjpeg libpng libtiff
-    librsvg glib gtk2 libXxf86vm libXext poppler xineLib ghostscript makeWrapper ];
+    librsvg glib gtk2 libXxf86vm libXext poppler xine-lib ghostscript makeWrapper ];
 
   # The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the
   # trick on NIX_LDFLAGS and dontPatchELF to make it find them.
-  # I use 'yes y' to skip a build error linking with xineLib,
+  # I use 'yes y' to skip a build error linking with xine-lib,
   # because xine stopped exporting "_x_vo_new_port"
   #  https://sourceforge.net/projects/eaglemode/forums/forum/808824/topic/5115261
   buildPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/effitask/default.nix b/nixpkgs/pkgs/applications/misc/effitask/default.nix
index b80ec80746f3..a01d55ae20e8 100644
--- a/nixpkgs/pkgs/applications/misc/effitask/default.nix
+++ b/nixpkgs/pkgs/applications/misc/effitask/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   # workaround for missing Cargo.lock file https://github.com/sanpii/effitask/issues/48
   cargoPatches = [ ./cargo-lock.patch ];
 
-  cargoSha256 = "0dvmp23kny6rlv6c0mfyy3cmz1bi5wcm1mxps4z67lym5kxfd362";
+  cargoSha256 = "1a80kf95kr94l6jzxdj4i09x1342x358fqjy6119qjg3q3bj0y3p";
 
   buildInputs = [ openssl gtk3 ];
 
diff --git a/nixpkgs/pkgs/applications/misc/elfx86exts/default.nix b/nixpkgs/pkgs/applications/misc/elfx86exts/default.nix
index 690b88d8417e..91598db76d01 100644
--- a/nixpkgs/pkgs/applications/misc/elfx86exts/default.nix
+++ b/nixpkgs/pkgs/applications/misc/elfx86exts/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1j9ca2lyxjsrf0rsfv83xi53vj6jz5nb76xibh367brcsc26mvd6";
   };
 
-  cargoSha256 = "1dfhx40jr5llqa554wifd920mqdbm8s5fns98m6vcqdjxzan4nr2";
+  cargoSha256 = "0n3b9vdk5n32jmd7ks50d55z4dfahjincd2s1d8m9z17ip2qw2c4";
 
   meta = with lib; {
     description = "Decode x86 binaries and print out which instruction set extensions they use.";
diff --git a/nixpkgs/pkgs/applications/misc/feedbackd/default.nix b/nixpkgs/pkgs/applications/misc/feedbackd/default.nix
index 34119c2006d4..4cdf3399135a 100644
--- a/nixpkgs/pkgs/applications/misc/feedbackd/default.nix
+++ b/nixpkgs/pkgs/applications/misc/feedbackd/default.nix
@@ -1,46 +1,70 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, docbook-xsl-nons
+, gobject-introspection
+, gtk-doc
+, libxslt
 , meson
 , ninja
 , pkg-config
+, vala
 , wrapGAppsHook
 , glib
 , gsound
-, libgudev
 , json-glib
-, vala
-, gobject-introspection
+, libgudev
+, dbus
 }:
 
 stdenv.mkDerivation rec {
-  pname = "feedbackd-unstable";
-  version = "2021-01-25";
+  pname = "feedbackd";
+  # Not an actual upstream project release,
+  # only a Debian package release that is tagged in the upstream repo
+  version = "0.0.0+git20210426";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
     owner = "Librem5";
     repo = "feedbackd";
-    rev = "v0.0.0+git${builtins.replaceStrings ["-"] [""] version}";
-    sha256 = "184ag10sfzrka533inv6f38x6z769kq5jj56vdkcm65j5h786w5v";
+    rev = "v${version}";
+    sha256 = "12kdchv11c5ynpv6fbagcx755x5p2kd7acpwjxi9khwdwjsqxlmn";
   };
 
   nativeBuildInputs = [
+    docbook-xsl-nons
+    gobject-introspection
+    gtk-doc
+    libxslt
     meson
     ninja
     pkg-config
-    wrapGAppsHook
     vala
-    gobject-introspection
+    wrapGAppsHook
   ];
 
   buildInputs = [
     glib
     gsound
-    libgudev
     json-glib
+    libgudev
   ];
 
+  mesonFlags = [ "-Dgtk_doc=true" "-Dman=true" ];
+
+  checkInputs = [
+    dbus
+  ];
+
+  doCheck = true;
+
+  postInstall = ''
+    mkdir -p $out/lib/udev/rules.d
+    sed "s|/usr/libexec/|$out/libexec/|" < $src/debian/feedbackd.udev > $out/lib/udev/rules.d/90-feedbackd.rules
+  '';
+
   meta = with lib; {
     description = "A daemon to provide haptic (and later more) feedback on events";
     homepage = "https://source.puri.sm/Librem5/feedbackd";
@@ -49,4 +73,3 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix b/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix
index e90e364aaee9..ea1dd18d18c8 100644
--- a/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fitnesstrax/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
     gtk3
   ];
 
-  cargoSha256 = "1xgyyxd2kz21xan0pk7rbxiym90s7m2qrzg2ddilcszva60bxdd9";
+  cargoSha256 = "0dlnlb3hqyh98y916wvdb4rd20az73brs8hqna2lgr7kv1pd77j7";
 
   postInstall = ''
     mkdir -p $out/share/glib-2.0/schemas
diff --git a/nixpkgs/pkgs/applications/misc/flavours/default.nix b/nixpkgs/pkgs/applications/misc/flavours/default.nix
index b116fbbbd7c8..fcedf65af713 100644
--- a/nixpkgs/pkgs/applications/misc/flavours/default.nix
+++ b/nixpkgs/pkgs/applications/misc/flavours/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "flavours";
@@ -11,7 +11,10 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-rDy859jg+F8XC4sJogIgdn1FoT8cf7S+KORt+7kboAc=";
   };
 
-  cargoSha256 = "sha256-cAXiAPhHdxdd8pFQ0Gq7eHO2p/Dam53gDbE583UYY/k=";
+  buildInputs = [ ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+  cargoSha256 = "sha256-I8ZH35L2CVLy6ypmdOPd8VEG/sQeGaHyT1HWNdwyZVo=";
 
   meta = with lib; {
     description = "An easy to use base16 scheme manager/builder that integrates with any workflow";
diff --git a/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
index 766ec9a55d9c..29399ab2f5b5 100644
--- a/nixpkgs/pkgs/applications/misc/font-manager/default.nix
+++ b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -1,20 +1,61 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
-  pkg-config, libxml2, json-glib , sqlite, itstool, yelp-tools,
-  vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection,
-  libsoup, webkitgtk
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, fetchpatch
+, ninja
+, gettext
+, python3
+, pkg-config
+, libxml2
+, json-glib
+, sqlite
+, itstool
+, yelp-tools
+, vala
+, gsettings-desktop-schemas
+, gtk3
+, gnome
+, desktop-file-utils
+, wrapGAppsHook
+, gobject-introspection
+, libsoup
+, glib-networking
+, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.8.5-1";
+  version = "0.8.6";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "master";
     rev = version;
-    sha256 = "1p0hfnf06892hn25a6zv8fnhbh4ln11nn2fv1vjqs63rr59fprbk";
+    sha256 = "0a18rbdy9d0fj0vnsc2rm7xlh17vjqn4kdyrq0ldzlzkb6zbdk2k";
   };
 
+  patches = [
+    # Fix some Desktop Settings with GNOME 40.
+    # https://github.com/FontManager/font-manager/issues/215
+    (fetchpatch {
+      url = "https://github.com/FontManager/font-manager/commit/b28f325d7951a66ebf1a2a432ee09fd22048a033.patch";
+      sha256 = "dKbrXGb9a4JuG/4x9vprMlh5J17HKJFifRWq9BWp1ow=";
+    })
+    (fetchpatch {
+      url = "https://github.com/FontManager/font-manager/commit/2147204d4c4c6b58161230500186c3a5d4eeb1c1.patch";
+      sha256 = "2/PFLwf7h76fIIN4+lyjg/L0KVU1hhRQCfwCAGDpb00=";
+    })
+    (fetchpatch {
+      url = "https://github.com/FontManager/font-manager/commit/3abc541ef8606727c72af7631c021809600336ac.patch";
+      sha256 = "rJPnW+7uuFLxTf5tk+Rzo+xkw2+uzU6BkzPXLeR/RGc=";
+    })
+    (fetchpatch {
+      url = "https://github.com/FontManager/font-manager/commit/03a822f0d7b72442cd2ffcc8668da265d3535e0d.patch";
+      sha256 = "3Z2UqK5VV2bIwpGd1tA7fivd7ooIuV6CxTJhzgOAkIM=";
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
     meson
@@ -34,12 +75,18 @@ stdenv.mkDerivation rec {
     libxml2
     json-glib
     sqlite
+    gsettings-desktop-schemas # for font settings
     gtk3
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     libsoup
+    glib-networking # for SSL so that Google Fonts can load
     webkitgtk
   ];
 
+  mesonFlags = [
+    "-Dreproducible=true" # Do not hardcode build directory…
+  ];
+
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
diff --git a/nixpkgs/pkgs/applications/misc/free42/default.nix b/nixpkgs/pkgs/applications/misc/free42/default.nix
index 4ae1e8aede8e..16344d975fea 100644
--- a/nixpkgs/pkgs/applications/misc/free42/default.nix
+++ b/nixpkgs/pkgs/applications/misc/free42/default.nix
@@ -5,22 +5,22 @@
 , copyDesktopItems
 , pkg-config
 , gtk3
-, alsaLib
+, alsa-lib
 }:
 
 stdenv.mkDerivation rec {
   pname = "free42";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchFromGitHub {
     owner = "thomasokken";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dU8c+tpt+4nCWQj3P2rl6CJNtWFcXaYb3ZESg8hAllQ=";
+    sha256 = "sha256-2TOYvZBI2EW9xjbjA4Bh+TgjbyEXRzOByalLYBW8Ba8=";
   };
 
   nativeBuildInputs = [ copyDesktopItems pkg-config ];
-  buildInputs = [ gtk3 alsaLib ];
+  buildInputs = [ gtk3 alsa-lib ];
 
   postPatch = ''
     sed -i -e "s|/bin/ls|ls|" gtk/Makefile
diff --git a/nixpkgs/pkgs/applications/misc/fuzzel/default.nix b/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
index 3dafe8fa671f..71c494d311a9 100644
--- a/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fuzzel";
-  version = "1.5.1";
+  version = "1.5.4";
 
   src = fetchzip {
     url = "https://codeberg.org/dnkl/fuzzel/archive/${version}.tar.gz";
-    sha256 = "0zy0icd3647jyq4xflp35vwn52yxgj3zz4n30br657xjq1l5afzl";
+    sha256 = "sha256-Zg9KrRf2ntg2FU6lhllt/Fd63KJak6zB7hu4ujj/9AI=";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja scdoc git ];
diff --git a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
index ad0970e0fe29..854b8a5f9b36 100644
--- a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.17.1";
+  version = "1.17.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cfaa3a617d5d222d4b9b41634b1bdede2673a8620d6b0e62fb755ae224ca2ac";
+    sha256 = "4df80fd923b03b2413a3d1c50e32c3006d100ed5acc1400ace69d8dc2162d293";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/applications/misc/gcstar/default.nix b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
index f77bf04c2c89..0ab40b034503 100644
--- a/nixpkgs/pkgs/applications/misc/gcstar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gcstar";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitLab {
     owner = "Kerenoc";
     repo = "GCstar";
     rev = "v${version}";
-    sha256 = "1vqfff33sssvlvsva1dflggmwl00j5p64sn1669f9wrbvjkxgpv4";
+    sha256 = "1hah8ijh9mvcgbh36y3d3s6y79mzz27w24f2i29qllv7cayf6129";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
     DateCalc
     DateTimeFormatStrptime
     Glib
-    Gtk2
+    Gtk3
+    Gtk3SimpleList
     GD
     GDGraph
     GDText
diff --git a/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix b/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
index 12b5a38877ac..e85ada2253fe 100644
--- a/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
+++ b/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "geoipupdate";
-  version = "4.6.0";
+  version = "4.7.1";
 
   src = fetchFromGitHub {
     owner = "maxmind";
     repo = "geoipupdate";
     rev = "v${version}";
-    sha256 = "1rzc8kidm8nr9pbcbq96kax3cbf39afrk5vzpl04lzpw3jbbakjq";
+    sha256 = "sha256-nshQxr6y3TxKsAVSA9mzL7LJfCtpv0QuuTTqk3/lENc=";
   };
 
-  vendorSha256 = "1f858k8cl0dgiw124jv0p9jhi9aqxnc3nmc7hksw70fla2nzjrv0";
+  vendorSha256 = "sha256-fqQWFhFeyW4GntRBxEeN6WSOo0G+1hH9vSEZmBKglz8=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
index d4f50451719b..f2692243db6b 100644
--- a/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
@@ -1,16 +1,16 @@
-{ lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg_3, makeWrapper, perl, perlPackages, rtmpdump}:
+{ lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}:
 
 with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "get_iplayer";
-  version = "3.24";
+  version = "3.27";
 
   src = fetchFromGitHub {
     owner = "get-iplayer";
     repo = "get_iplayer";
     rev = "v${version}";
-    sha256 = "0yd84ncb6cjrk4v4kz3zrddkl7iwkm3zlfbjyswd9hanp8fvd4q3";
+    sha256 = "077y31gg020wjpx5pcivqgkqawcjxh5kjnvq97x2gd7i3wwc30qi";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -26,7 +26,7 @@ perlPackages.buildPerlPackage rec {
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
     cp get_iplayer $out/bin
-    wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg_3 flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB
+    wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB
     cp get_iplayer.1 $out/share/man/man1
   '';
 
diff --git a/nixpkgs/pkgs/applications/misc/getxbook/default.nix b/nixpkgs/pkgs/applications/misc/getxbook/default.nix
index a69f8d7f0574..15b7c37244fd 100644
--- a/nixpkgs/pkgs/applications/misc/getxbook/default.nix
+++ b/nixpkgs/pkgs/applications/misc/getxbook/default.nix
@@ -9,11 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "0ihwrx4gspj8l7fc8vxch6dpjrw1lvv9z3c19f0wxnmnxhv1cjvs";
   };
 
-  NIX_CFLAGS_COMPILE = builtins.toString [
-    "-Wno-error=format-truncation"
-    "-Wno-error=deprecated-declarations"
-    "-Wno-error=stringop-overflow"
-  ];
+  NIX_CFLAGS_COMPILE = builtins.toString (
+    [ "-Wno-error=deprecated-declarations" ]
+      ++ lib.optionals (!stdenv.cc.isClang) [
+        "-Wno-error=format-truncation"
+        "-Wno-error=stringop-overflow"
+      ]
+  );
 
   buildInputs = [ openssl ];
 
diff --git a/nixpkgs/pkgs/applications/misc/girara/default.nix b/nixpkgs/pkgs/applications/misc/girara/default.nix
index f8ebd8aed7ec..6fde2c8fac8b 100644
--- a/nixpkgs/pkgs/applications/misc/girara/default.nix
+++ b/nixpkgs/pkgs/applications/misc/girara/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, check, dbus, xvfb_run, glib, gtk, gettext, libiconv, json_c, libintl
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, check, dbus, xvfb-run, glib, gtk, gettext, libiconv, json_c, libintl
 }:
 
 stdenv.mkDerivation rec {
@@ -12,9 +12,10 @@ stdenv.mkDerivation rec {
     sha256 = "1n3i960b458172mc3pkq7m9dn5qxry6fms3c3k06v27cjp5whsyf";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config gettext check dbus xvfb_run ];
+  nativeBuildInputs = [ meson ninja pkg-config gettext check dbus ];
   buildInputs = [ libintl libiconv json_c ];
   propagatedBuildInputs = [ glib gtk ];
+  checkInputs = [ xvfb-run ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/nixpkgs/pkgs/applications/misc/gksu/default.nix b/nixpkgs/pkgs/applications/misc/gksu/default.nix
index 9d8ce3cc4804..c1a4ea2b6789 100644
--- a/nixpkgs/pkgs/applications/misc/gksu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gksu/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk2, gnome2, gnome3, libgksu,
+{ lib, stdenv, fetchurl, pkg-config, gtk2, gnome2, gnome, libgksu,
   intltool, libstartup_notification, gtk-doc, wrapGAppsHook
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gtk2 gnome2.GConf libstartup_notification gnome3.libgnome-keyring
+    gtk2 gnome2.GConf libstartup_notification gnome.libgnome-keyring
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix b/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
index 89a967d718bf..31d81a332790 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
@@ -4,7 +4,7 @@
 , desktop-file-utils
 , gettext
 , glib
-, gnome3
+, gnome
 , gtk3
 , gusb
 , libcanberra-gtk3
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-multi-writer";
-  version = "3.32.1";
+  version = "3.35.90";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1apdd8yi12zagf82k376a9wmdm27wzwdxpm2wf2pnwkaf786rmdw";
+    sha256 = "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp";
   };
 
   nativeBuildInputs = [
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix b/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
index 168d5b9fb5cc..b35319c38630 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
@@ -3,7 +3,7 @@
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , desktop-file-utils
 , gettext
 , itstool
@@ -64,7 +64,7 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
index bbd272754cdb..a1b92572679c 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
@@ -12,7 +12,7 @@
 , gtk3
 , libgtop
 , libdazzle
-, gnome3
+, gnome
 , tracker
 , libhandy
 }:
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gtk3
     libdazzle
     libgtop
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch b/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch
index fc1fcbb0db07..7a5ca0f7f3c8 100644
--- a/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch
+++ b/nixpkgs/pkgs/applications/misc/goldendict/0001-dont-use-maclibs.patch
@@ -1,14 +1,16 @@
 diff --git i/goldendict.pro w/goldendict.pro
-index 328dc20..5202a07 100644
+index 4a4a3094..082b728f 100644
 --- i/goldendict.pro
 +++ w/goldendict.pro
-@@ -210,21 +210,18 @@ mac {
+@@ -212,22 +212,19 @@ mac {
          -llzo2
      !CONFIG( no_ffmpeg_player ) {
          LIBS += -lao \
+-            -lswresample-gd \
 -            -lavutil-gd \
 -            -lavformat-gd \
 -            -lavcodec-gd
++            -lswresample \
 +            -lavutil \
 +            -lavformat \
 +            -lavcodec
@@ -29,7 +31,7 @@ index 328dc20..5202a07 100644
                        cp -R locale/*.qm GoldenDict.app/Contents/MacOS/locale/ & \
                        mkdir -p GoldenDict.app/Contents/MacOS/help & \
                        cp -R $${PWD}/help/*.qch GoldenDict.app/Contents/MacOS/help/
-@@ -232,15 +229,6 @@ mac {
+@@ -235,15 +232,6 @@ mac {
      CONFIG += zim_support
      !CONFIG( no_chinese_conversion_support ) {
          CONFIG += chinese_conversion_support
@@ -46,17 +48,15 @@ index 328dc20..5202a07 100644
  }
  DEFINES += PROGRAM_VERSION=\\\"$$VERSION\\\"
 diff --git i/tiff.cc w/tiff.cc
-index e3cb8bf..9ff880f 100644
+index e3cb8bf5..95dd812f 100644
 --- i/tiff.cc
 +++ w/tiff.cc
-@@ -6,8 +6,8 @@
+@@ -5,7 +5,7 @@
+ 
  #include "tiff.hh"
  
- #if defined (Q_OS_MAC) || defined (Q_OS_WIN)
--#include "tiff/tiff.h"
--#include "tiff/tiffio.h"
-+#include "tiff.h"
-+#include "tiffio.h"
+-#if defined (Q_OS_MAC) || defined (Q_OS_WIN)
++#if defined (Q_OS_WIN)
+ #include "tiff/tiff.h"
+ #include "tiff/tiffio.h"
  #else
- #include "tiff.h"
- #include "tiffio.h"
diff --git a/nixpkgs/pkgs/applications/misc/goldendict/default.nix b/nixpkgs/pkgs/applications/misc/goldendict/default.nix
index 307ef57c6252..03668e586117 100644
--- a/nixpkgs/pkgs/applications/misc/goldendict/default.nix
+++ b/nixpkgs/pkgs/applications/misc/goldendict/default.nix
@@ -4,19 +4,19 @@
 , withCC ? true, opencc
 , withEpwing ? true, libeb
 , withExtraTiff ? true, libtiff
-, withFFmpeg ? true, libao, ffmpeg_3
+, withFFmpeg ? true, libao, ffmpeg
 , withMultimedia ? true
 , withZim ? true, zstd }:
 
 mkDerivation rec {
   pname = "goldendict";
-  version = "2020-12-09";
+  version = "2021-03-09";
 
   src = fetchFromGitHub {
     owner = "goldendict";
     repo = pname;
-    rev = "261e45a5d79f9df2fbc050292410bed0f4ef3132";
-    sha256 = "01pny06d4cmwf998hpqd7xx7mccbbasb8js1bv3rkdi1ljg01f7n";
+    rev = "b2e673961d28ca5eb920a909091252d3321f09d6";
+    sha256 = "sha256-+AAamnICq0/B54ggFpgF/Uupm1a4YiEYgHXrhIK4M0E=";
   };
 
   patches = [
@@ -39,7 +39,7 @@ mkDerivation rec {
     ++ lib.optional withCC opencc
     ++ lib.optional withEpwing libeb
     ++ lib.optional withExtraTiff libtiff
-    ++ lib.optionals withFFmpeg [ libao ffmpeg_3 ]
+    ++ lib.optionals withFFmpeg [ libao ffmpeg ]
     ++ lib.optional withZim zstd;
 
   qmakeFlags = with lib; [
diff --git a/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix b/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix
index e5192c9a73e5..e7cfe04da6e8 100644
--- a/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix
+++ b/nixpkgs/pkgs/applications/misc/googleearth-pro/default.nix
@@ -1,41 +1,54 @@
-{ lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv
-, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, libXcomposite
-, libxcb, sqlite, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus, makeWrapper }:
-
+{ lib
+, stdenv
+, mkDerivation
+, fetchurl
+, ffmpeg_3
+, freetype
+, gdal_2
+, glib
+, libGL
+, libGLU
+, libICE
+, libSM
+, libXi
+, libXv
+, libav_12
+
+, libXrender
+, libXrandr
+, libXfixes
+, libXcursor
+, libXinerama
+, libXext
+, libX11
+, libXcomposite
+
+, libxcb
+, sqlite
+, zlib
+, fontconfig
+, dpkg
+, libproxy
+, libxml2
+, gst_all_1
+, dbus
+, makeWrapper
+
+, qtlocation
+, qtwebkit
+, qtx11extras
+, qtsensors
+, qtscript
+
+, xkeyboardconfig
+, autoPatchelfHook
+}:
 let
   arch =
     if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
     else throw "Unsupported system ${stdenv.hostPlatform.system} ";
-  fullPath = lib.makeLibraryPath [
-    glibc
-    glib
-    stdenv.cc.cc
-    libSM
-    libICE
-    libXi
-    libXv
-    libGLU libGL
-    libXrender
-    libXrandr
-    libXfixes
-    libXcursor
-    libXinerama
-    libXcomposite
-    freetype
-    libXext
-    libX11
-    libxcb
-    sqlite
-    zlib
-    fontconfig
-    libproxy
-    libxml2
-    dbus
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-  ];
 in
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "googleearth-pro";
   version = "7.3.3.7786";
 
@@ -44,20 +57,56 @@ stdenv.mkDerivation rec {
     sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3";
   };
 
-  nativeBuildInputs = [ dpkg makeWrapper ];
+  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
+  propagatedBuildInputs = [ xkeyboardconfig ];
+  buildInputs = [
+    dbus
+    ffmpeg_3
+    fontconfig
+    freetype
+    gdal_2
+    glib
+    gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer
+    libGL
+    libGLU
+    libICE
+    libSM
+    libX11
+    libXcomposite
+    libXcursor
+    libXext
+    libXfixes
+    libXi
+    libXinerama
+    libXrandr
+    libXrender
+    libXv
+    libav_12
+    libproxy
+    libxcb
+    libxml2
+    qtlocation
+    qtscript
+    qtsensors
+    qtwebkit
+    qtx11extras
+    sqlite
+    zlib
+  ];
 
   doInstallCheck = true;
 
   dontBuild = true;
 
-  dontPatchELF = true;
-
   unpackPhase = ''
     # deb file contains a setuid binary, so 'dpkg -x' doesn't work here
     dpkg --fsys-tarfile ${src} | tar --extract
   '';
 
   installPhase =''
+    runHook preInstall
+
     mkdir $out
     mv usr/* $out/
     rmdir usr
@@ -66,20 +115,9 @@ stdenv.mkDerivation rec {
 
     # patch and link googleearth binary
     ln -s $out/opt/google/earth/pro/googleearth-bin $out/bin/googleearth-pro
-    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${fullPath}:\$ORIGIN" \
-      $out/opt/google/earth/pro/googleearth-bin
 
     # patch and link gpsbabel binary
     ln -s $out/opt/google/earth/pro/gpsbabel $out/bin/gpsbabel
-    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${fullPath}:\$ORIGIN" \
-      $out/opt/google/earth/pro/gpsbabel
-
-    # patch libraries
-    for a in $out/opt/google/earth/pro/*.so* ; do
-      patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
-    done
 
     # Add desktop config file and icons
     mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
@@ -89,23 +127,37 @@ stdenv.mkDerivation rec {
       ln -s $out/opt/google/earth/pro/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth-pro.png
     done
     ln -s $out/opt/google/earth/pro/product_logo_256.png $out/share/pixmaps/google-earth-pro.png
+
+    runHook postInstall
   '';
 
+  postInstall = ''
+    find "$out/opt/google/earth/pro" -name "*.so.*" | \
+      egrep -v 'libssl*|libcrypto*|libicu*' | \
+      xargs rm
+    find "$out/opt/google/earth/pro" -name "*.so" | \
+      egrep -v 'libgoogle*|libauth*|libbase*|libcommon*|libcommon_gui*|libcommon_platform*|libcommon_webbrowser*|libcomponentframework*|libgeobase*|libgeobaseutils*|libge_net*|libgdata*|libgoogleapi*|libmath*|libmoduleframework*|libmaps*|libport*|libprintmodule*|libprofile*|librender*|libreporting*|libsgutil*|libspatial*|libxsltransform*|libbase*|libport*|libport*|libbase*|libcomponentframework*|libIGCore*|libIGUtils*|libaction*|libapiloader*|libapiloader*|libIGCore*|libIGUtils*|libIGMath*|libfusioncommon*|libge_exif*|libaction*|libfusioncommon*|libapiloader*|liblayer*|libapiloader*|libIGAttrs*|libIGCore*|libIGGfx*|libIGMath*|libIGSg*|libIGUtils*|libwmsbase*|libwebbrowser*|libevllpro*|libalchemyext*|libge_cache*|libflightsim*|libnpgeinprocessplugin*|libmeasure*|libviewsync*|libcapture*|libtheme*|libgps*|libgisingest*|libsearchmodule*|libinput_plugin*|libnavigate*|libspnav*|libsearch*|libLeap*' | \
+      xargs rm
+  '';
+
+  autoPatchelfIgnoreMissingDeps=true;
+
   installCheckPhase = ''
     $out/bin/gpsbabel -V > /dev/null
   '';
 
   # wayland is not supported by Qt included in binary package, so make sure it uses xcb
-  fixupPhase = ''
-    wrapProgram $out/bin/googleearth-pro --set QT_QPA_PLATFORM xcb
+  postFixup = ''
+    wrapProgram $out/bin/googleearth-pro \
+      --set QT_QPA_PLATFORM xcb \
+      --set QT_XKB_CONFIG_ROOT "${xkeyboardconfig}/share/X11/xkb"
   '';
 
-
   meta = with lib; {
     description = "A world sphere viewer";
-    homepage = "https://earth.google.com";
+    homepage = "https://www.google.com/earth/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ friedelino shamilton ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/gpsprune/default.nix b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
index 5df2940dff3e..583a8a1931b1 100644
--- a/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
-  version = "20.2";
+  version = "20.4";
 
   src = fetchurl {
     url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "sha256-40GrihCeDAqJCFcg4FMFxCg7bzd6CrDR5JU70e5VHDE=";
+    sha256 = "sha256-ZTYkKyu0/axf2uLUmQHRW/2bQ6p2zK7xBF66ozbPS2c=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
index 89a4198a749f..1619f7f43342 100644
--- a/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, intltool, libxml2, pkg-config, gnome3, libchamplain, gdl, shared-mime-info, desktop-file-utils, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, intltool, libxml2, pkg-config, gnome, libchamplain, gdl, shared-mime-info, desktop-file-utils, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "gpx-viewer";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     intltool pkg-config
     wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
   ];
-  buildInputs = [ gdl libchamplain gnome3.adwaita-icon-theme libxml2 ];
+  buildInputs = [ gdl libchamplain gnome.adwaita-icon-theme libxml2 ];
 
   meta = with lib; {
     homepage = "https://blog.sarine.nl/tag/gpxviewer/";
diff --git a/nixpkgs/pkgs/applications/misc/gpxlab/default.nix b/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
index 3b432ff66b12..c8d6eb3b84c7 100644
--- a/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, mkDerivation, lib, fetchFromGitHub, qmake, qttools, qttranslations }:
+{ stdenv, mkDerivation, lib, fetchFromGitHub, substituteAll
+, qmake, qttools, qttranslations
+}:
 
 mkDerivation rec {
   pname = "gpxlab";
@@ -11,8 +13,13 @@ mkDerivation rec {
     sha256 = "080vnwcciqblfrbfyz9gjhl2lqw1hkdpbgr5qfrlyglkd4ynjd84";
   };
 
-  nativeBuildInputs = [ qmake ];
-  buildInputs = [ qttools qttranslations ];
+  patches = (substituteAll {
+    # See https://github.com/NixOS/nixpkgs/issues/86054
+    src = ./fix-qttranslations-path.patch;
+    inherit qttranslations;
+  });
+
+  nativeBuildInputs = [ qmake qttools ];
 
   preConfigure = ''
     lrelease GPXLab/locale/*.ts
@@ -24,8 +31,6 @@ mkDerivation rec {
     wrapQtApp $out/Applications/GPXLab.app/Contents/MacOS/GPXLab
   '';
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     homepage = "https://github.com/BourgeoisLab/GPXLab";
     description = "Program to show and manipulate GPS tracks";
@@ -33,8 +38,8 @@ mkDerivation rec {
       GPXLab is an application to display and manage GPS tracks
       previously recorded with a GPS tracker.
     '';
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ sikmir ];
-    platforms = with platforms; linux ++ darwin;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/gpxlab/fix-qttranslations-path.patch b/nixpkgs/pkgs/applications/misc/gpxlab/fix-qttranslations-path.patch
new file mode 100644
index 000000000000..8dcba75d764f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpxlab/fix-qttranslations-path.patch
@@ -0,0 +1,17 @@
+diff --git i/GPXLab/main.cpp w/GPXLab/main.cpp
+index b12d2dd..58d37c5 100644
+--- i/GPXLab/main.cpp
++++ w/GPXLab/main.cpp
+@@ -19,10 +19,10 @@ int main(int argc, char *argv[])
+     app.installTranslator(&gpxlab);
+ 
+     QTranslator qt;
+-#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
++#if defined(Q_OS_WIN32)
+     qt.load(QLocale::system(), "qt", "_", TRANSLATIONS_DIR);
+ #else
+-    qt.load(QLocale::system(), "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath));
++    qt.load(QLocale::system(), "qt", "_", QLatin1String("@qttranslations@/translations"));
+ #endif
+     app.installTranslator(&qt);
+ 
diff --git a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
index c9c815771a8e..0eca08907e98 100644
--- a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "8.9";
+  version = "9.1";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-nl9iu8ezgMZ1wy2swDXYRDLlkSz1II+C65UUWNvGBxg=";
+    sha256 = "sha256-szq1i2/NEtMK4paSkxtkKXc8yY8qGj2U/p6CzNIecAY=";
   };
 
   patches = (substituteAll {
@@ -39,6 +39,6 @@ mkDerivation rec {
     changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ womfoo sikmir ];
-    platforms = with platforms; linux ++ darwin;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
index e6350dfb7cbc..3204a4a0e853 100644
--- a/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gremlin-console";
-  version = "3.4.10";
+  version = "3.5.0";
   src = fetchzip {
-    url = "http://www-eu.apache.org/dist/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
-    sha256 = "sha256-4/EcVjIc+8OMkll8OxE5oXiqk+w9k1Nv9ld8N7oFFp0=";
+    url = "https://downloads.apache.org/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
+    sha256 = "sha256-aVhDbOYhgYaWjttGjJvBKbov7OGWh2/llBTePFPGXDM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/misc/grip/default.nix b/nixpkgs/pkgs/applications/misc/grip/default.nix
index 5ebe7765e50c..a30778762b27 100644
--- a/nixpkgs/pkgs/applications/misc/grip/default.nix
+++ b/nixpkgs/pkgs/applications/misc/grip/default.nix
@@ -1,27 +1,45 @@
-{ lib, stdenv, fetchurl, gtk2, glib, pkg-config, libgnome, libgnomeui, vte
-, curl, cdparanoia, libid3tag, ncurses, libtool }:
+{ lib
+, stdenv
+, fetchurl
+, gtk2
+, glib
+, pkg-config
+, libgnome
+, libgnomeui
+, vte
+, curl
+, cdparanoia
+, libid3tag
+, ncurses
+, libtool
+}:
 
 stdenv.mkDerivation rec {
-  name = "grip-4.2.0";
+  name = "grip-4.2.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/grip/${name}.tar.gz";
-    sha256 = "1si5kidwg0i2jg0brzyvjrzw24v3km2hdgd4kda1adzq81a3p1cs";
+    sha256 = "sha256-3bFJURPbq9rzLsJCppRjSARhcOJxC4eSfw5VxvZgQ3Q=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk2 glib libgnome libgnomeui vte curl cdparanoia
-    libid3tag ncurses libtool ];
-
-  hardeningDisable = [ "format" ];
-
-  # glib-2.62 deprecations
-  NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+  nativeBuildInputs = [ pkg-config libtool ];
+  buildInputs = [
+    gtk2
+    glib
+    libgnome
+    libgnomeui
+    vte
+    curl
+    cdparanoia
+    libid3tag
+    ncurses
+  ];
+  enableParallelBuilding = true;
 
   meta = {
     description = "GTK-based audio CD player/ripper";
     homepage = "http://nostatic.org/grip";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
 
     maintainers = with lib.maintainers; [ marcweber peti ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/gummi/default.nix b/nixpkgs/pkgs/applications/misc/gummi/default.nix
index f0416e232dcd..a98017f095cb 100644
--- a/nixpkgs/pkgs/applications/misc/gummi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gummi/default.nix
@@ -1,17 +1,17 @@
 { lib, stdenv, pkgs
-, glib, gnome3, gtk3, gtksourceview3, gtkspell3, poppler, texlive
+, glib, gnome, gtk3, gtksourceview3, gtkspell3, poppler, texlive
 , pkg-config, intltool, autoreconfHook, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.1";
+  version = "0.8.2";
   pname = "gummi";
 
   src = pkgs.fetchFromGitHub {
     owner = "alexandervdm";
     repo = "gummi";
     rev = version;
-    sha256 = "0wxgmzazqiq77cw42i5fn2hc22hhxf5gbpl9g8y3zlnp21lw9y16";
+    sha256 = "sha256-7txAyzJrEoGPjchXstMWIF1Vy+aoba6aa6+JNUYnKQs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/gxkb/default.nix b/nixpkgs/pkgs/applications/misc/gxkb/default.nix
index 8f6284c7d606..7f2b93f14956 100644
--- a/nixpkgs/pkgs/applications/misc/gxkb/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gxkb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gxkb";
-  version = "0.9.0";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "zen-tools";
     repo = "gxkb";
     rev = "v${version}";
-    sha256 = "1fmppvpfz8rip71agsc464fdz423qw0xy8i3pcic14cy5gcwh069";
+    sha256 = "sha256-KIlosBNfGSYCgtxBuSVeSfHaLsANdLgG/P5UtAL6Hms=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/misc/haunt/default.nix b/nixpkgs/pkgs/applications/misc/haunt/default.nix
index 124e441a5af2..87656d730b27 100644
--- a/nixpkgs/pkgs/applications/misc/haunt/default.nix
+++ b/nixpkgs/pkgs/applications/misc/haunt/default.nix
@@ -27,10 +27,23 @@ stdenv.mkDerivation rec {
     guile-reader
   ];
 
-  postInstall = ''
-    wrapProgram $out/bin/haunt \
-      --prefix GUILE_LOAD_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" \
-      --prefix GUILE_LOAD_COMPILED_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site"
+  doCheck = true;
+
+  postInstall =
+    let
+      guileVersion = lib.versions.majorMinor guile.version;
+    in
+    ''
+      wrapProgram $out/bin/haunt \
+        --prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \
+        --prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH"
+    '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/haunt --version
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
@@ -53,7 +66,7 @@ stdenv.mkDerivation rec {
       to do things that aren't provided out-of-the-box.
     '';
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
+    maintainers = with maintainers; [ AndersonTorres AluisioASG ];
     platforms = guile.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/heimer/default.nix b/nixpkgs/pkgs/applications/misc/heimer/default.nix
index 5d9fb0f30d76..3fd80d4eff3e 100644
--- a/nixpkgs/pkgs/applications/misc/heimer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/heimer/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "heimer";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "juzzlin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-5cepT9Tfr/3nYbxRAMqKSUDB+suEyojnexWxZ0i7GBw=";
+    sha256 = "sha256-CY7n9eq/FtQ6srZ9L31nJi0b9rOQq60kNOY3iTFws/E=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/misc/hello/default.nix b/nixpkgs/pkgs/applications/misc/hello/default.nix
index a885b1643fe2..b446fe6223df 100644
--- a/nixpkgs/pkgs/applications/misc/hello/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hello/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchurl }:
+{ lib
+, stdenv
+, fetchurl
+, testVersion
+, hello
+}:
 
 stdenv.mkDerivation rec {
   pname = "hello";
@@ -11,6 +16,9 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.tests.version =
+    testVersion { package = hello; };
+
   meta = with lib; {
     description = "A program that produces a familiar, friendly greeting";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/misc/houdini/runtime.nix b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
index b1c7949d258c..c9be607b3662 100644
--- a/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
+++ b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsaLib, dbus, xkeyboardconfig, bc, addOpenGLRunpath }:
+{ lib, stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsa-lib, dbus, xkeyboardconfig, bc, addOpenGLRunpath }:
 
 let
   ld_library_path = builtins.concatStringsSep ":" [
@@ -17,7 +17,7 @@ let
       xorg.libXcomposite
       xorg.libXdamage
       xorg.libXtst
-      alsaLib
+      alsa-lib
       fontconfig
       libSM
       libICE
diff --git a/nixpkgs/pkgs/applications/misc/hugo/default.nix b/nixpkgs/pkgs/applications/misc/hugo/default.nix
index 0f9ca5c4b84a..b8ea6b83b907 100644
--- a/nixpkgs/pkgs/applications/misc/hugo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hugo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.82.1";
+  version = "0.83.1";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6poWFcApwCos3XvS/Wq1VJyf5xTUWtqWNFXIhjNsXVs=";
+    sha256 = "sha256-c9T3a6J78uLumBTy/DgE4gbxCmEXVGKd9JyF9dyrL6g=";
   };
 
-  vendorSha256 = "sha256-pJBm+yyy1DbH28oVBQA+PHSDtSg3RcgbRlurrwnnEls=";
+  vendorSha256 = "sha256-ddCyMmZ5RIZWzT2RYNnSW795oR7PIRudl3QTjsXtBGk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/misc/hunter/default.nix b/nixpkgs/pkgs/applications/misc/hunter/default.nix
new file mode 100644
index 000000000000..6c0c9b2955ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hunter/default.nix
@@ -0,0 +1,77 @@
+{ lib, stdenv, pkg-config, rustPlatform, fetchFromGitHub, fetchpatch
+, makeWrapper, glib, gst_all_1, CoreServices, IOKit, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "hunter";
+  version = "2020-05-25-unstable";
+
+  src = fetchFromGitHub {
+    owner = "rabite0";
+    repo = "hunter";
+    rev = "355d9a3101f6d8dc375807de79e368602f1cb87d";
+    sha256 = "sha256-R2wNkG8bFP7X2pdlebHK6GD15qmD/zD3L0MwVthvzzQ=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "remove-dependencies-on-rust-nightly";
+      url = "https://github.com/06kellyjac/hunter/commit/a5943578e1ee679c8bc51b0e686c6dddcf74da2a.diff";
+      sha256 = "sha256-eOwBFfW5m8tPnu+whWY/53X9CaqiVj2WRr25G+Yy7qE=";
+    })
+    (fetchpatch {
+      name = "fix-accessing-core-when-moved-with-another-clone";
+      url = "https://github.com/06kellyjac/hunter/commit/2e95cc567c751263f8c318399f3c5bb01d36962a.diff";
+      sha256 = "sha256-yTzIXUw5qEaR2QZHwydg0abyZVXfK6fhJLVHBI7EAro=";
+    })
+    (fetchpatch {
+      name = "fix-resolve-breaking-changes-from-package-updates";
+      url = "https://github.com/06kellyjac/hunter/commit/2484f0db580bed1972fd5000e1e949a4082d2f01.diff";
+      sha256 = "sha256-K+WUxEr1eE68XejStj/JwQpMHlhkiOw6PmiSr1GO0kc=";
+    })
+  ];
+
+  cargoPatches = [
+    (fetchpatch {
+      name = "chore-cargo-update";
+      url = "https://github.com/06kellyjac/hunter/commit/b0be49a82191a4420b6900737901a71140433efd.diff";
+      sha256 = "sha256-ctxoDwyIJgEhMbMUfrjCTy2SeMUQqMi971szrqEOJeg=";
+    })
+    (fetchpatch {
+      name = "chore-cargo-upgrade-+-cargo-update";
+      url = "https://github.com/06kellyjac/hunter/commit/1b8de9248312878358afaf1dac569ebbccc4321a.diff";
+      sha256 = "sha256-+4DZ8SaKwKNmr2SEgJJ7KZBIctnYFMQFKgG+yCkbUv0=";
+    })
+  ];
+
+  RUSTC_BOOTSTRAP = 1;
+
+  nativeBuildInputs = [ makeWrapper pkg-config ];
+  buildInputs = [
+    glib
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gst-plugins-bad
+  ]) ++ lib.optionals stdenv.isDarwin [ CoreServices IOKit Security ];
+
+  cargoBuildFlags = [ "--no-default-features" "--features=img,video" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/hunter --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+  '';
+
+  cargoSha256 = "sha256-Bd/gilebxC4H+/1A41OSSfWBlHcSczsFcU2b+USnI74=";
+
+  meta = with lib; {
+    description = "The fastest file manager in the galaxy!";
+    homepage = "https://github.com/rabite0/hunter";
+    license = licenses.wtfpl;
+    maintainers = with maintainers; [ fufexan ];
+    # error[E0308]: mismatched types
+    # --> src/files.rs:502:62
+    # expected raw pointer `*const u8`, found raw pointer `*const i8`
+    broken = stdenv.isAarch64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/ideamaker/default.nix b/nixpkgs/pkgs/applications/misc/ideamaker/default.nix
index 7b2eeec292bf..1996ba5c1ea0 100644
--- a/nixpkgs/pkgs/applications/misc/ideamaker/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ideamaker/default.nix
@@ -9,7 +9,7 @@
 , libcork
 , makeDesktopItem
 , qt5
-, quazip_qt4
+, quazip
 , zlib
 }:
 stdenv.mkDerivation rec {
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     libcork
     qt5.qtbase
     qt5.qtserialport
-    quazip_qt4
+    quazip
     zlib
   ];
 
@@ -73,5 +73,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
+    broken = true;  # Segfaults on startup.
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/imag/default.nix b/nixpkgs/pkgs/applications/misc/imag/default.nix
index 09f734df9a11..b637cd077d76 100644
--- a/nixpkgs/pkgs/applications/misc/imag/default.nix
+++ b/nixpkgs/pkgs/applications/misc/imag/default.nix
@@ -26,9 +26,9 @@ rustPlatform.buildRustPackage rec {
     ++ lib.optional stdenv.isDarwin Security;
   checkInputs = [ gitMinimal util-linuxMinimal ];
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
-  cargoSha256 = "0n8cw70qh8g4hfwfaxwwxbrrx5hm2z037z8kdhvdpqkxljl9189x";
+  cargoSha256 = "1vnrc72g2271i2p847z30kplxmdpi60n3dzpw0s7dahg33g14ai6";
 
   checkPhase = ''
     export HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/applications/misc/index-fm/default.nix b/nixpkgs/pkgs/applications/misc/index-fm/default.nix
index 328db9650014..149e571fea22 100644
--- a/nixpkgs/pkgs/applications/misc/index-fm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/index-fm/default.nix
@@ -3,27 +3,28 @@
 , fetchFromGitLab
 , cmake
 , extra-cmake-modules
-, breeze-icons
+, applet-window-buttons
 , karchive
 , kcoreaddons
 , ki18n
 , kio
 , kirigami2
 , mauikit
+, mauikit-filebrowsing
 , qtmultimedia
 , qtquickcontrols2
 }:
 
 mkDerivation rec {
   pname = "index";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "maui";
     repo = "index-fm";
     rev = "v${version}";
-    sha256 = "1v6z44c88cqgr3b758yq6l5d2zj1vhlnaq7v8rrhs7s5dsimzlx8";
+    sha256 = "sha256-N9/Jt18QRqDMWtEfxWn22e5Ud3YMwJ9B7OQRwTvwX8g=";
   };
 
   nativeBuildInputs = [
@@ -32,13 +33,14 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    breeze-icons
+    applet-window-buttons
     karchive
     kcoreaddons
     ki18n
     kio
     kirigami2
     mauikit
+    mauikit-filebrowsing
     qtmultimedia
     qtquickcontrols2
   ];
diff --git a/nixpkgs/pkgs/applications/misc/iptsd/default.nix b/nixpkgs/pkgs/applications/misc/iptsd/default.nix
new file mode 100644
index 000000000000..c5a23840264d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/iptsd/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, systemd, inih }:
+
+stdenv.mkDerivation rec {
+  pname = "iptsd";
+  version = "0.4";
+
+  src = fetchFromGitHub {
+    owner = "linux-surface";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-CoPgkt7n2kk7WlQHe0RjNlxfp2Nd8BbIE2gyf0bOBy4=";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+
+  buildInputs = [ systemd inih ];
+
+  # Original installs udev rules and service config into global paths
+  postPatch = ''
+    substituteInPlace meson.build \
+      --replace "install_dir: unitdir" "install_dir: datadir" \
+      --replace "install_dir: rulesdir" "install_dir: datadir" \
+  '';
+  mesonFlags = [
+    "-Dsystemd=true"
+    "-Dsample_config=false"
+    "-Ddebug_tool=false"
+  ];
+
+  meta = with lib; {
+    description = "Userspace daemon for Intel Precise Touch & Stylus";
+    homepage = "https://github.com/linux-surface/iptsd";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ tomberek ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/default.nix b/nixpkgs/pkgs/applications/misc/jekyll/default.nix
index 54857d614206..8c25e3774b14 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/default.nix
+++ b/nixpkgs/pkgs/applications/misc/jekyll/default.nix
@@ -49,7 +49,7 @@ in bundlerApp {
     homepage    = "https://jekyllrb.com/";
     #changelog   = "https://raw.githubusercontent.com/jekyll/jekyll/v${version}/History.markdown";
     license     = licenses.mit;
-    maintainers = with maintainers; [ primeos pesterhazy ];
+    maintainers = with maintainers; [ ];
     platforms   = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
index f737470d53f1..9c559a364ef9 100644
--- a/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "joplin-desktop";
-  version = "1.7.10";
+  version = "1.7.11";
   name = "${pname}-${version}";
 
   inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
   src = fetchurl {
     url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
     sha256 = {
-      x86_64-linux = "1f8pfssfqigh0fl5r5wpvdpn48dx1q9qq4mfqi2s5z94h7ci2jxg";
-      x86_64-darwin = "0s29mhf88nlhaabmd32k21h1qiavgpqqksbdjxkx8bfg591s8jqb";
+      x86_64-linux = "11vjipvhfvf6wxldcg743anma005j8dbbngqk6sq9hlf677ahxii";
+      x86_64-darwin = "1l7m86jlf1m066n6rwmh5fkpx2pj3wj5h9ncxdd24v0zll6ki8vs";
     }.${system} or throwSystem;
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/josm/default.nix b/nixpkgs/pkgs/applications/misc/josm/default.nix
index badda6b17ee6..96ea01f53740 100644
--- a/nixpkgs/pkgs/applications/misc/josm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/josm/default.nix
@@ -1,24 +1,26 @@
-{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
+{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm
+, extraJavaOpts ? "-Djosm.restart=true -Djava.net.useSystemProxies=true"
+}:
 let
   pname = "josm";
-  version = "17702";
+  version = "17919";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "1p7p0jd87sxrs5n0r82apkilx0phgmjw7vpdg8qrr5msda4rsmpk";
+      sha256 = "sha256-Bj1s3vFSHPiZNTjp7hQhu1X2v8nlynC37Cm6sMNOi3g=";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java16.zip";
-      sha256 = "0r17cphxm852ykb8mkil29rr7sb0bj5w69qd5wz8zf2f9djk9npk";
+      sha256 = "sha256-W+s6ARA5lyRwTuRD89wm4HChb2Up5AXQwh5uk0U7pQk=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "1b7dryvakph8znh2ahgywch66l4bl5rmgsr79axnz1xi12g8ac12";
+      sha256 = "sha256-IjCFngixh2+7SifrV3Ohi1BjIOP+QSWg/QjeqbbP7aw=";
     };
   };
 in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   inherit pname version;
 
   dontUnpack = true;
@@ -36,8 +38,7 @@ stdenv.mkDerivation {
 
       # Add libXxf86vm to path because it is needed by at least Kendzi3D plugin
       makeWrapper ${jre}/bin/java $out/bin/josm \
-        --add-flags "-Djosm.restart=true -Djava.net.useSystemProxies=true" \
-        --add-flags "-jar $out/share/josm/josm.jar" \
+        --add-flags "${extraJavaOpts} -jar $out/share/josm/josm.jar" \
         --prefix LD_LIBRARY_PATH ":" '${libXxf86vm}/lib'
     '';
 
diff --git a/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix b/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix
index b34661e6eb8e..08ca65630143 100644
--- a/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/jotta-cli/default.nix
@@ -5,10 +5,10 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jotta-cli";
-  version = "0.9.39536";
+  version = "0.11.44593";
   src = fetchzip {
       url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz";
-      sha256 = "sha256-JZtc6Si3ZQoRG3q+ctzPPQm7WbMYRailIuq/Y5Avd2s=";
+      sha256 = "1f06zmcpvm0f3phwc43ai6v4ykhkrd4f3br2j89nx9bfmj6ss2ic";
       stripRoot = false;
     };
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   postFixup = ''
     patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jotta-cli
     patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/jottad
-    $out/bin/jotta-cli completion > $out/share/bash-completion/completions/jotta-cli.bash
+    $out/bin/jotta-cli completion bash > $out/share/bash-completion/completions/jotta-cli.bash
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/jp2a/default.nix b/nixpkgs/pkgs/applications/misc/jp2a/default.nix
index a48716a3dd2b..96d506b556e5 100644
--- a/nixpkgs/pkgs/applications/misc/jp2a/default.nix
+++ b/nixpkgs/pkgs/applications/misc/jp2a/default.nix
@@ -1,25 +1,43 @@
-{ lib, stdenv, fetchFromGitHub, libjpeg, autoreconfHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, libjpeg
+, libpng
+, ncurses
+, autoreconfHook
+, autoconf-archive
+, pkg-config
+, bash-completion
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.0.7";
+  version = "1.1.0";
   pname = "jp2a";
 
   src = fetchFromGitHub {
-    owner = "cslarsen";
+    owner = "Talinx";
     repo = "jp2a";
     rev = "v${version}";
-    sha256 = "12a1z9ba2j16y67f41y8ax5sgv1wdjd71pg7circdxkj263n78ql";
+    sha256 = "1dz2mrhl45f0vwyfx7qc3665xma78q024c10lfsgn6farrr0c2lb";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ libjpeg ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    pkg-config
+    bash-completion
+  ];
+  buildInputs = [ libjpeg libpng ncurses ];
+
+  installFlags = [ "bashcompdir=\${out}/share/bash-completion/completions" ];
 
   meta = with lib; {
     homepage = "https://csl.name/jp2a/";
     description = "A small utility that converts JPG images to ASCII";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.FlorianFranzen ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/kanboard/default.nix b/nixpkgs/pkgs/applications/misc/kanboard/default.nix
index ffb787a9bd98..6dd407ab5516 100644
--- a/nixpkgs/pkgs/applications/misc/kanboard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kanboard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kanboard";
-  version = "1.2.18";
+  version = "1.2.19";
 
   src = fetchFromGitHub {
     owner = "kanboard";
     repo = "kanboard";
     rev = "v${version}";
-    sha256 = "sha256-raXPRoydd3CfciF7S0cZiuY7EPFKfE8IU3qj2dOztHU=";
+    sha256 = "sha256-48U3eRg6obRjgK06SKN2g1+0wocqm2aGyXO2yZw5fs8=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
index af259c199d89..fe09345349e5 100644
--- a/nixpkgs/pkgs/applications/misc/keepassx/community.nix
+++ b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
@@ -23,6 +23,7 @@
 , qtsvg
 , qtx11extras
 , quazip
+, readline
 , wrapQtAppsHook
 , yubikey-personalization
 , zlib
@@ -51,13 +52,13 @@ stdenv.mkDerivation rec {
     sha256 = "02ajfkw818cmalvkl0kqvza85rgdgs59kw2v7b3c4v8kv00c41j3";
   };
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang [
+  NIX_CFLAGS_COMPILE = optionalString stdenv.cc.isClang [
     "-Wno-old-style-cast"
     "-Wno-error"
     "-D__BIG_ENDIAN__=${if stdenv.isBigEndian then "1" else "0"}"
   ];
 
-  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-rpath ${libargon2}/lib";
+  NIX_LDFLAGS = optionalString stdenv.isDarwin "-rpath ${libargon2}/lib";
 
   patches = [
     ./darwin.patch
@@ -108,12 +109,14 @@ stdenv.mkDerivation rec {
     qtbase
     qtsvg
     qtx11extras
+    readline
     yubikey-personalization
     zlib
   ]
-  ++ lib.optional withKeePassKeeShareSecure quazip
-  ++ lib.optional stdenv.isDarwin qtmacextras
-  ++ lib.optional (stdenv.isDarwin && withKeePassTouchID) darwin.apple_sdk.frameworks.LocalAuthentication;
+  ++ optional withKeePassKeeShareSecure quazip
+  ++ optional stdenv.isDarwin qtmacextras
+  ++ optional (stdenv.isDarwin && withKeePassTouchID)
+    darwin.apple_sdk.frameworks.LocalAuthentication;
 
   preFixup = optionalString stdenv.isDarwin ''
     # Make it work without Qt in PATH.
@@ -123,8 +126,14 @@ stdenv.mkDerivation rec {
   passthru.tests = nixosTests.keepassxc;
 
   meta = {
-    description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications";
-    longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser).";
+    description = "Offline password manager with many features.";
+    longDescription = ''
+      A community fork of KeePassX, which is itself a port of KeePass Password Safe.
+      The goal is to extend and improve KeePassX with new features and bugfixes,
+      to provide a feature-rich, fully cross-platform and modern open-source password manager.
+      Accessible via native cross-platform GUI, CLI, has browser integration
+      using the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser)
+    '';
     homepage = "https://keepassxc.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jonafato turion ];
diff --git a/nixpkgs/pkgs/applications/misc/keeweb/default.nix b/nixpkgs/pkgs/applications/misc/keeweb/default.nix
index 3b2ca74c6423..40b176b0fb8b 100644
--- a/nixpkgs/pkgs/applications/misc/keeweb/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keeweb/default.nix
@@ -1,26 +1,24 @@
 { lib, stdenv, fetchurl, appimageTools, undmg, libsecret, libxshmfence }:
 let
-  inherit (stdenv.hostPlatform) system;
-  throwSystem = throw "Unsupported system: ${system}";
-
   pname = "keeweb";
-  version = "1.17.0";
+  version = "1.18.6";
   name = "${pname}-${version}";
 
-  suffix = {
-    x86_64-linux = "linux.AppImage";
-    x86_64-darwin = "mac.x64.dmg";
-    aarch64-darwin = "mac.arm64.dmg";
-  }.${system} or throwSystem;
-
-  src = fetchurl {
-    url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.${suffix}";
-    sha256 = {
-      x86_64-linux = "1c7zvwnd46d3lrlcdigv341flz44jl6mnvr6zqny5mfz221ynbj7";
-      x86_64-darwin = "1n4haxychm5jjhjnpncavjh0wr4dagqi78qfsx5gwlv86hzryzwy";
-      aarch64-darwin = "1j7z63cbfms02f2lhl949wy3lc376jw8kqmjfn9j949s0l5fanpb";
-    }.${system} or throwSystem;
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.linux.AppImage";
+      sha256 = "sha256-hxXs8Dfh5YQy1zaFb20KDWNl8eqFjuN5QY7tsO6+E/U=";
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.mac.x64.dmg";
+      sha256 = "sha256-8+7NzaHVcLinKb57SAcJmF2Foy9RfxFhcTxzvL0JSJQ=";
+    };
+    aarch64-darwin = fetchurl {
+      url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.mac.arm64.dmg";
+      sha256 = "sha256-1BNY6kRS0F+AUI+80ZGFi/ek28NMP1uexo1UORz5D6g=";
+    };
   };
+  src = srcs.${stdenv.hostPlatform.system};
 
   appimageContents = appimageTools.extract {
     inherit name src;
@@ -32,7 +30,7 @@ let
     changelog = "https://github.com/keeweb/keeweb/blob/v${version}/release-notes.md";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = builtins.attrNames srcs;
   };
 
   linux = appimageTools.wrapType2 rec {
diff --git a/nixpkgs/pkgs/applications/misc/khal/default.nix b/nixpkgs/pkgs/applications/misc/khal/default.nix
index 7bd4a3bbf7f5..5c6b505dd683 100644
--- a/nixpkgs/pkgs/applications/misc/khal/default.nix
+++ b/nixpkgs/pkgs/applications/misc/khal/default.nix
@@ -2,11 +2,11 @@
 
 with python3.pkgs; buildPythonApplication rec {
   pname = "khal";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11qhrga44knlnp88py9p547d4nr5kn041d2nszwa3dqw7mf22ks9";
+    sha256 = "sha256-L92PwU/ll+Wn1unGPHho2WC07QIbVjxoSnHwcJDtpDI=";
   };
 
   patches = [
@@ -30,7 +30,7 @@ with python3.pkgs; buildPythonApplication rec {
     pkginfo
     freezegun
   ];
-  nativeBuildInputs = [ setuptools_scm sphinx sphinxcontrib_newsfeed ];
+  nativeBuildInputs = [ setuptools-scm sphinx sphinxcontrib_newsfeed ];
   checkInputs = [ pytest glibcLocales ];
   LC_ALL = "en_US.UTF-8";
 
diff --git a/nixpkgs/pkgs/applications/misc/kile-wl/default.nix b/nixpkgs/pkgs/applications/misc/kile-wl/default.nix
new file mode 100644
index 000000000000..479c5bf1d8d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kile-wl/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitLab, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kile-wl";
+  version = "unstable-2021-04-22";
+
+  src = fetchFromGitLab {
+    owner = "snakedye";
+    repo = "kile";
+    rev = "b97b9f1e5b33862b33918efaf23fd1c0c5d7058a";
+    sha256 = "sha256-97qJd3o8nJt8IX5tyGWtAmJsIv5Gcw1xoBFwxAqk7I8=";
+  };
+
+  # Upstream has Cargo.lock gitignored
+  cargoPatches = [ ./update-Cargo-lock.diff ];
+
+  cargoSha256 = "sha256-TEgIiw/XTDUOe9K7agHWI86f88w+eDJ332V0CgNHtfo=";
+
+  meta = with lib; {
+    description = "A tiling layout generator for river";
+    homepage = "https://gitlab.com/snakedye/kile";
+    license = licenses.mit;
+    platforms = platforms.linux; # It's meant for river, a wayland compositor
+    maintainers = with maintainers; [ fortuneteller2k ];
+    mainProgram = "kile";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/kile-wl/update-Cargo-lock.diff b/nixpkgs/pkgs/applications/misc/kile-wl/update-Cargo-lock.diff
new file mode 100644
index 000000000000..8fc9fc555e83
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kile-wl/update-Cargo-lock.diff
@@ -0,0 +1,153 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..05cf87b
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,147 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "cc"
++version = "1.0.67"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "downcast-rs"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
++
++[[package]]
++name = "kile"
++version = "0.1.0"
++dependencies = [
++ "wayland-client",
++ "wayland-commons",
++ "wayland-scanner",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.93"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41"
++
++[[package]]
++name = "nix"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
++dependencies = [
++ "bitflags",
++ "cc",
++ "cfg-if",
++ "libc",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "smallvec"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "wayland-client"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "06ca44d86554b85cf449f1557edc6cc7da935cc748c8e4bf1c507cbd43bae02c"
++dependencies = [
++ "bitflags",
++ "downcast-rs",
++ "libc",
++ "nix",
++ "wayland-commons",
++ "wayland-scanner",
++ "wayland-sys",
++]
++
++[[package]]
++name = "wayland-commons"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8bd75ae380325dbcff2707f0cd9869827ea1d2d6d534cff076858d3f0460fd5a"
++dependencies = [
++ "nix",
++ "once_cell",
++ "smallvec",
++ "wayland-sys",
++]
++
++[[package]]
++name = "wayland-scanner"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "389d680d7bd67512dc9c37f39560224327038deb0f0e8d33f870900441b68720"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "xml-rs",
++]
++
++[[package]]
++name = "wayland-sys"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2907bd297eef464a95ba9349ea771611771aa285b932526c633dc94d5400a8e2"
++dependencies = [
++ "pkg-config",
++]
++
++[[package]]
++name = "xml-rs"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
diff --git a/nixpkgs/pkgs/applications/misc/kondo/default.nix b/nixpkgs/pkgs/applications/misc/kondo/default.nix
index dcbeb4087599..64cae5b64e5e 100644
--- a/nixpkgs/pkgs/applications/misc/kondo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kondo/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0kl2zn6ir3w75ny25ksgxl93vlyb13gzx2795zyimqqnsrdpbbrf";
   };
 
-  cargoSha256 = "1ax81a2828z3yla1psg5xi8ild65m6zcsvx48ncz902mpzqlj92b";
+  cargoSha256 = "0sddsm0jys1bsj2bsr39lcyx8k2hzw17nlsv6aql0v82x8qbsiv4";
 
   meta = with lib; {
     description = "Save disk space by cleaning unneeded files from software projects";
diff --git a/nixpkgs/pkgs/applications/misc/kratos/default.nix b/nixpkgs/pkgs/applications/misc/kratos/default.nix
new file mode 100644
index 000000000000..65b32c458638
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kratos/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub, buildGoModule, lib, stdenv }:
+
+buildGoModule rec {
+  pname = "kratos";
+  version = "0.6.0-alpha.2";
+
+  src = fetchFromGitHub {
+    owner = "ory";
+    repo = "kratos";
+    rev = "v${version}";
+    sha256 = "0zg6afzqi5fmr7hmy1cd7fknd1bcplz3h0f7z67l75v8k2n73md1";
+  };
+
+  vendorSha256 = "16qg44k97l6719hib8vbv0j15x6gvs9d6738d2y990a2qiqbsqpw";
+
+  subPackages = [ "." ];
+
+  buildFlags = [ "-tags sqlite" ];
+
+  doCheck = false;
+
+  preBuild = ''
+    # Patch shebangs
+    files=(
+       test/e2e/run.sh
+       script/testenv.sh
+       script/test-envs.sh
+       persistence/sql/migratest/update_fixtures.sh
+    )
+    patchShebangs "''${files[@]}"
+
+    # patchShebangs doesn't work for this Makefile, do it manually
+    substituteInPlace Makefile --replace '/bin/bash' '${stdenv.shell}'
+  '';
+
+  meta = with lib; {
+    maintainers = with maintainers; [ mrmebelman ];
+    homepage = "https://www.ory.sh/kratos/";
+    license = licenses.asl20;
+    description = "An API-first Identity and User Management system that is built according to cloud architecture best practices";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/latte-dock/default.nix b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
index 424da3ad3605..1840804ce739 100644
--- a/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
+++ b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
@@ -3,11 +3,11 @@
 
 mkDerivation rec {
   pname = "latte-dock";
-  version = "0.9.11";
+  version = "0.9.12";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0x7a93a7axsa0fzpbkkv1z722k9za4p51xcpzdpnh5ih1zij0csi";
+    sha256 = "sha256-srivjGnrEizLvph7AP/02dOsnMyTnL3a6f0xm8oGML4=";
     name = "${pname}-${version}.tar.xz";
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/logseq/default.nix b/nixpkgs/pkgs/applications/misc/logseq/default.nix
index e8e69cd787b2..1900b92e3bbe 100644
--- a/nixpkgs/pkgs/applications/misc/logseq/default.nix
+++ b/nixpkgs/pkgs/applications/misc/logseq/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "logseq";
-  version = "0.0.16";
+  version = "0.1.3";
 
   src = fetchurl {
     url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
-    sha256 = "dmgwFHJRy5qE71naRJKX0HCrVG0qQBOIM9TvCh4j/lY=";
+    sha256 = "1akg3xjbh01nb7l06qpvz3xsjj64kf042xjnapn60jlgg5y34vbm";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/lscolors/default.nix b/nixpkgs/pkgs/applications/misc/lscolors/default.nix
index 76e4792ab1c2..85ed493da5aa 100644
--- a/nixpkgs/pkgs/applications/misc/lscolors/default.nix
+++ b/nixpkgs/pkgs/applications/misc/lscolors/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     ./cargo.lock.patch
   ];
 
-  cargoSha256 = "02k23idwy0sb4lnjrwnyah3qp22zj161ilbc13p75k0hdijfaxl5";
+  cargoSha256 = "0kfm1pq22dhiw138bf7jvf7amlkal90n1hc9fq44wr4chr9b2fmx";
 
   meta = with lib; {
     description = "Rust library and tool to colorize paths using LS_COLORS";
diff --git a/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix b/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
index b580fabf58e9..19cb7f6c5526 100644
--- a/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
+++ b/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
@@ -5,7 +5,7 @@
 let
 
   qt5Deps = pkgs: with pkgs.qt5; [ qtbase qtmultimedia ];
-  gnome3Deps = pkgs: with pkgs; [ gnome3.zenity gtksourceview gnome3.gnome-desktop gnome3.libgnome-keyring webkitgtk ];
+  gnomeDeps = pkgs: with pkgs; [ gnome.zenity gtksourceview gnome.gnome-desktop gnome.libgnome-keyring webkitgtk ];
   xorgDeps = pkgs: with pkgs.xorg; [
     libX11 libXrender libXrandr libxcb libXmu libpthreadstubs libXext libXdmcp
     libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite
@@ -86,7 +86,7 @@ in buildFHSUserEnv {
     # ZDOOM
     soundfont-fluid bzip2 game-music-emu
   ] ++ qt5Deps pkgs
-    ++ gnome3Deps pkgs
+    ++ gnomeDeps pkgs
     ++ lib.optional steamSupport pkgs.steam;
 
   multiPkgs = pkgs: with pkgs; [
@@ -95,7 +95,7 @@ in buildFHSUserEnv {
     libao libevdev udev libgcrypt libxml2 libusb-compat-0_1 libpng libmpeg2 libv4l
     libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio
     libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
-    alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
+    alsa-lib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
     readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
     vulkan-loader xdg-utils sqlite gnutls p11-kit libbsd harfbuzz
 
diff --git a/nixpkgs/pkgs/applications/misc/makeself/default.nix b/nixpkgs/pkgs/applications/misc/makeself/default.nix
index 205d526ed941..e60e110087f4 100644
--- a/nixpkgs/pkgs/applications/misc/makeself/default.nix
+++ b/nixpkgs/pkgs/applications/misc/makeself/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, which }:
+{ lib, stdenv, fetchFromGitHub, which, zstd, pbzip2 }:
 
 stdenv.mkDerivation rec {
   version = "2.4.2";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
   checkTarget = "test";
-  checkInputs = [ which ];
+  checkInputs = [ which zstd pbzip2 ];
 
   installPhase = ''
     mkdir -p $out/{bin,share/{${pname}-${version},man/man1}}
diff --git a/nixpkgs/pkgs/applications/misc/mako/default.nix b/nixpkgs/pkgs/applications/misc/mako/default.nix
index a845a767b2aa..f28292cb2f16 100644
--- a/nixpkgs/pkgs/applications/misc/mako/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mako/default.nix
@@ -5,19 +5,22 @@
 
 stdenv.mkDerivation rec {
   pname = "mako";
-  version = "1.4.1";
+  version = "1.5";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh";
+    sha256 = "0f92krcgybl4113g2gawf7lcbh1fss7bq4cx81h1zyn7yvxlwx2b";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook ];
   buildInputs = [ systemd pango cairo gdk-pixbuf wayland ];
 
-  mesonFlags = [ "-Dzsh-completions=true" ];
+  mesonFlags = [
+    "-Dzsh-completions=true"
+    "-Dsd-bus-provider=libsystemd"
+  ];
 
   meta = with lib; {
     description = "A lightweight Wayland notification daemon";
diff --git a/nixpkgs/pkgs/applications/misc/mediaelch/default.nix b/nixpkgs/pkgs/applications/misc/mediaelch/default.nix
index 4adfe0f65262..f39b88f27d7d 100644
--- a/nixpkgs/pkgs/applications/misc/mediaelch/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mediaelch/default.nix
@@ -9,23 +9,25 @@
 , qtbase
 , qtdeclarative
 , qtmultimedia
+, qtsvg
+, qttools
 }:
 
 mkDerivation rec {
   pname = "mediaelch";
-  version = "2.8.6";
+  version = "2.8.12";
 
   src = fetchFromGitHub {
     owner = "Komet";
     repo = "MediaElch";
     rev = "v${version}";
-    sha256 = "1134vw7hr0mpqcsxjq4bqmg5760dngz17bzj97ypfc5cvzcxjh43";
+    sha256 = "1gx4m9cf81d0b2nk2rlqm4misz67f5bpkjqx7d1l76rw2pwc6azf";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [ qmake qttools ];
 
-  buildInputs = [ curl libmediainfo libzen ffmpeg qtbase qtdeclarative qtmultimedia ];
+  buildInputs = [ curl libmediainfo libzen ffmpeg qtbase qtdeclarative qtmultimedia qtsvg ];
 
   prePatch = ''
     substituteInPlace MediaElch.pro --replace "/usr" "$out"
diff --git a/nixpkgs/pkgs/applications/misc/megacmd/default.nix b/nixpkgs/pkgs/applications/misc/megacmd/default.nix
index 23d34f30d64c..9a8d26cc70ef 100644
--- a/nixpkgs/pkgs/applications/misc/megacmd/default.nix
+++ b/nixpkgs/pkgs/applications/misc/megacmd/default.nix
@@ -1,11 +1,14 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , autoconf
 , automake
 , c-ares
 , cryptopp
 , curl
 , fetchFromGitHub
-, ffmpeg_3
+  # build fails with latest ffmpeg, see https://github.com/meganz/MEGAcmd/issues/523.
+  # to be re-enabled when patch available
+  # , ffmpeg
 , freeimage
 , gcc-unwrapped
 , libmediainfo
@@ -22,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "megacmd";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAcmd";
     rev = "${version}_Linux";
-    sha256 = "0czyhsms0a0237d6h9b21n9p4nm4zkjanhhbvw26k6266g6c1nyr";
+    sha256 = "sha256-Q1SZSDTPGgBA/W/ZVYfTQsiP41RE1LJ+esQ3PK9EjIc=";
     fetchSubmodules = true;
   };
 
@@ -43,13 +46,12 @@ stdenv.mkDerivation rec {
     c-ares
     cryptopp
     curl
-    ffmpeg_3
+    # ffmpeg
     freeimage
     gcc-unwrapped
     libmediainfo
     libraw
     libsodium
-    libtool
     libuv
     libzen
     pcre-cpp
@@ -67,7 +69,7 @@ stdenv.mkDerivation rec {
     "--with-cares"
     "--with-cryptopp"
     "--with-curl"
-    "--with-ffmpeg"
+    # "--with-ffmpeg"
     "--with-freeimage"
     "--with-libmediainfo"
     "--with-libuv"
@@ -80,9 +82,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "MEGA Command Line Interactive and Scriptable Application";
-    homepage    = "https://mega.nz/";
-    license     = licenses.unfree;
-    platforms   = [ "i686-linux" "x86_64-linux" ];
-    maintainers = [ maintainers.wedens ];
+    homepage = "https://mega.nz/cmd";
+    license = with licenses; [ bsd2 gpl3Only ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    maintainers = with maintainers; [ lunik1 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/megasync/default.nix b/nixpkgs/pkgs/applications/misc/megasync/default.nix
index 78cf6a07e8c8..07dc364fe0bb 100644
--- a/nixpkgs/pkgs/applications/misc/megasync/default.nix
+++ b/nixpkgs/pkgs/applications/misc/megasync/default.nix
@@ -7,7 +7,7 @@
 , curl
 , doxygen
 , fetchFromGitHub
-, ffmpeg_3
+  #, ffmpeg
 , libmediainfo
 , libraw
 , libsodium
@@ -52,7 +52,8 @@ mkDerivation rec {
     c-ares
     cryptopp
     curl
-    ffmpeg_3
+    # temporarily disable until patched for ffmpeg 4.4
+    #ffmpeg
     libmediainfo
     libraw
     libsodium
@@ -94,7 +95,8 @@ mkDerivation rec {
     "--with-cares"
     "--with-cryptopp"
     "--with-curl"
-    "--with-ffmpeg"
+    # temporarily disable until patched for ffmpeg 4.4
+    #"--with-ffmpeg"
     "--without-freeimage" # unreferenced even when found
     "--without-readline"
     "--without-termcap"
diff --git a/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
index b1b77a53ea00..d5f2a4b2462b 100644
--- a/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
+++ b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -17,7 +17,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "metadata-cleaner";
-  version = "1.0.4";
+  version = "1.0.6";
 
   format = "other";
 
@@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "rmnvgr";
     repo = "metadata-cleaner";
     rev = "v${version}";
-    sha256 = "sha256-F/xh4dFX7W50kFzpWpGKyMUhxOlDO3WDXBzXVsDViY8=";
+    sha256 = "0k9qnycaqxnmsjsyxqgip6xr5w9affzxjc4zyb38ajbq4arfq5wv";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix b/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix
index 9fa4089c4cdb..ef8023614802 100644
--- a/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix
+++ b/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix
@@ -1,18 +1,18 @@
 { lib, stdenv, fetchFromGitHub, cmake, perl
-, alsaLib, libevdev, libopus, udev, SDL2
-, ffmpeg_3, pkg-config, xorg, libvdpau, libpulseaudio, libcec
+, alsa-lib, libevdev, libopus, udev, SDL2
+, ffmpeg, pkg-config, xorg, libvdpau, libpulseaudio, libcec
 , curl, expat, avahi, enet, libuuid, libva
 }:
 
 stdenv.mkDerivation rec {
   pname = "moonlight-embedded";
-  version = "2.4.10";
+  version = "2.4.11";
 
   src = fetchFromGitHub {
     owner = "irtimmer";
     repo = "moonlight-embedded";
     rev = "v${version}";
-    sha256 = "0m5i3q3hbjl51cndjpz5hxi3br6fvpn1fzdv0f6lxjxgw9z32413";
+    sha256 = "19wm4gizj8q6j4jwqfcn3bkhms97d8afwxmqjmjnqqxzpd2gxc16";
     fetchSubmodules = true;
   };
 
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [
-    alsaLib libevdev libopus udev SDL2
-    ffmpeg_3 pkg-config xorg.libxcb libvdpau libpulseaudio libcec
+    alsa-lib libevdev libopus udev SDL2
+    ffmpeg pkg-config xorg.libxcb libvdpau libpulseaudio libcec
     xorg.libpthreadstubs curl expat avahi enet libuuid libva
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix b/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix
index 666009b99a0b..b02abc2f2293 100644
--- a/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix
+++ b/nixpkgs/pkgs/applications/misc/moonlight-qt/default.nix
@@ -10,22 +10,23 @@
 , libva
 , libvdpau
 , libxkbcommon
-, alsaLib
+, alsa-lib
 , libpulseaudio
 , openssl
 , libopus
 , ffmpeg
+, wayland
 }:
 
 stdenv.mkDerivation rec {
   pname = "moonlight-qt";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "moonlight-stream";
     repo = pname;
     rev = "v${version}";
-    sha256 = "e7fwb76zzidtF1COqrQ6gSF7bCX20j/CGjPu1Cb4HGc=";
+    sha256 = "1bz4wjl8zydw46bh2mdbrsx8prh2fw0cmzqliy912fdz5aal2b74";
     fetchSubmodules = true;
   };
 
@@ -42,11 +43,12 @@ stdenv.mkDerivation rec {
     libva
     libvdpau
     libxkbcommon
-    alsaLib
+    alsa-lib
     libpulseaudio
     openssl
     libopus
     ffmpeg
+    wayland
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/natural-docs/default.nix b/nixpkgs/pkgs/applications/misc/natural-docs/default.nix
new file mode 100644
index 000000000000..15816b669286
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/natural-docs/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchzip, makeWrapper, mono, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "natural-docs";
+  version = "2.1.1";
+
+  src = fetchzip {
+    url = "https://naturaldocs.org/download/natural_docs/${version}/Natural_Docs_${version}.zip";
+    sha256 = "03fizjgvhiw3lqyykqw1whdh97xyiy3f226c1348ll61ryjxamqw";
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r . $out/
+    makeWrapper ${mono}/bin/mono $out/bin/NaturalDocs --add-flags "$out/NaturalDocs.exe"
+  '';
+
+  meta = with lib; {
+    description = "Documentation generator for multiple programming languages.";
+    longDescription = ''
+      Natural Docs is an open source documentation generator for multiple
+      programming languages. You document your code in a natural syntax that
+      reads like plain English. Natural Docs then scans your code and builds
+      high-quality HTML documentation from it.
+    '';
+    homepage = "https://naturaldocs.org";
+    license = licenses.agpl3Only;
+    maintainers = [ maintainers.nkpvk ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/navi/default.nix b/nixpkgs/pkgs/applications/misc/navi/default.nix
index 028b5c686f4d..9b96fea718bf 100644
--- a/nixpkgs/pkgs/applications/misc/navi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/navi/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "navi";
-  version = "2.15.0";
+  version = "2.16.0";
 
   src = fetchFromGitHub {
     owner = "denisidoro";
     repo = "navi";
     rev = "v${version}";
-    sha256 = "sha256-qcfSGV/+FkyWGAApekRZHWGmeB9gIURt11DKn7lEh+o=";
+    sha256 = "sha256-ngSZFYGE+Varul/qwavMO3xcMIp8w2WETWXc573wYhQ=";
   };
 
-  cargoSha256 = "sha256-HpGzDZMIzO0lpussmm+kJNOU7zghcYrQWZo3WZ5FOmA=";
+  cargoSha256 = "sha256-qtxFTk0iCxPa4Z7H9+QWSii+iYrLUV2LfiAEbePdhOQ=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch
deleted file mode 100644
index 7f8a75f319be..000000000000
--- a/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 763f75b..defa74a 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -212,7 +212,7 @@ CHECK_INCLUDE_FILES(endian.h HAVE_ENDIAN_H)
- CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
- CHECK_INCLUDE_FILES(byteswap.h HAVE_BYTESWAP_H)
- CHECK_LIBRARY_EXISTS(gypsy gypsy_control_get_default "" GYPSY_FOUND)
--CHECK_INCLUDE_FILES(libspeechd.h HAVE_LIBSPEECHD)
-+CHECK_INCLUDE_FILES(speech-dispatcher/libspeechd.h HAVE_LIBSPEECHD)
- CHECK_INCLUDE_FILES(sys/socket.h HAVE_SOCKET)
- CHECK_INCLUDE_FILES(sys/shm.h HAVE_SHMEM)
- CHECK_FUNCTION_EXISTS(snprintf   HAVE_SNPRINTF)
diff --git a/nixpkgs/pkgs/applications/misc/navit/default.nix b/nixpkgs/pkgs/applications/misc/navit/default.nix
deleted file mode 100644
index c041c2969274..000000000000
--- a/nixpkgs/pkgs/applications/misc/navit/default.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, gtk2, fontconfig, freetype, imlib2
-, SDL_image, libGLU, libGL, libXmu, freeglut, pcre, dbus, dbus-glib, glib
-, librsvg, freeimage, libxslt, cairo, gdk-pixbuf, pango
-, atk, patchelf, fetchurl, bzip2, python, gettext, quesoglc
-, gd, cmake, shapelib, SDL_ttf, fribidi, makeWrapper
-, qtquickcontrols, qtmultimedia, qtspeech, qtsensors
-, qtlocation, qtdeclarative, qtsvg
-, qtSupport ? false, qtbase #need to fix qt_qpainter
-, sdlSupport ? true, SDL
-, xkbdSupport ? true, xkbd
-, espeakSupport ? true, espeak
-, postgresqlSupport ? false, postgresql
-, speechdSupport ? false, speechd ? null
-}:
-
-assert speechdSupport -> speechd != null;
-
-with lib;
-stdenv.mkDerivation rec {
-  pname = "navit";
-  version = "0.5.3";
-
-  src = fetchFromGitHub {
-    owner = "navit-gps";
-    repo = "navit";
-    rev = "v${version}";
-    sha256 = "071drvqzxpxbfh0lf0lra5a97rv8ny40l96n9xl0dx0s8w30j61i";
-  };
-
-  sample_map = fetchurl {
-    url = "http://www.navit-project.org/maps/osm_bbox_11.3,47.9,11.7,48.2.osm.bz2";
-    name = "sample_map.bz2";
-    sha256 = "0vg6b6rhsa2cxqj4rbhfhhfss71syhnfa6f1jg2i2d7l88dm5x7d";
-  };
-
-  patches = [ ./CMakeLists.txt.patch ];
-
-  NIX_CFLAGS_COMPILE = toString (optional sdlSupport "-I${SDL.dev}/include/SDL"
-    ++ optional speechdSupport "-I${speechd}/include/speech-dispatcher");
-
-  # we choose only cmdline and speech-dispatcher speech options.
-  # espeak builtins is made for non-cmdline OS as winCE
-  cmakeFlags = [
-    "-DSAMPLE_MAP=n " "-DCMAKE_BUILD_TYPE=Release"
-    "-Dspeech/qt5_espeak=FALSE" "-Dsupport/espeak=FALSE"
-  ];
-
-  buildInputs = [
-    gtk2 fontconfig freetype imlib2 libGLU libGL freeimage
-    libxslt libXmu freeglut python gettext quesoglc gd
-    fribidi pcre  dbus dbus-glib librsvg shapelib glib
-    cairo gdk-pixbuf pango atk
-  ] ++ optionals sdlSupport [ SDL SDL_ttf SDL_image ]
-    ++ optional postgresqlSupport postgresql
-    ++ optional speechdSupport speechd
-    ++ optionals qtSupport [
-      qtquickcontrols qtmultimedia qtspeech qtsensors
-      qtbase qtlocation qtdeclarative qtsvg
-  ];
-
-  nativeBuildInputs = [ makeWrapper pkg-config cmake patchelf bzip2 ];
-
-  # we dont want blank screen by defaut
-  postInstall = ''
-    # emulate DSAMPLE_MAP
-    mkdir -p $out/share/navit/maps/
-    bzcat "${sample_map}" | $out/bin/maptool "$out/share/navit/maps/osm_bbox_11.3,47.9,11.7,48.2.bin"
-  '';
-
-  # TODO: fix upstream?
-  libPath = lib.makeLibraryPath ([ stdenv.cc.libc ] ++ buildInputs );
-  postFixup =
-  ''
-    find "$out/lib" -type f -name "*.so" -exec patchelf --set-rpath $libPath {} \;
-
-    wrapProgram $out/bin/navit \
-      --prefix PATH : ${makeBinPath (
-        optional xkbdSupport xkbd
-        ++ optional espeakSupport espeak
-        ++ optional speechdSupport speechd ) }
-  '';
-
-  meta = {
-    homepage = "https://www.navit-project.org";
-    description = "Car navigation system with routing engine using OSM maps";
-    license = licenses.gpl2;
-    maintainers = [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/misc/nimbo/default.nix b/nixpkgs/pkgs/applications/misc/nimbo/default.nix
new file mode 100644
index 000000000000..802a9f9a32c1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nimbo/default.nix
@@ -0,0 +1,36 @@
+{ lib, setuptools, boto3, requests, click, pyyaml, pydantic
+, buildPythonApplication, pythonOlder, installShellFiles, fetchFromGitHub
+, awscli }:
+
+buildPythonApplication rec {
+  pname = "nimbo";
+  version = "0.2.4";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "nimbo-sh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fs28s9ynfxrb4rzba6cmik0kl0q0vkpb4zdappsq62jqf960k24";
+  };
+  nativeBuildInputs = [ installShellFiles ];
+  propagatedBuildInputs = [ setuptools boto3 awscli requests click pyyaml pydantic ];
+
+  # nimbo tests require an AWS instance
+  doCheck = false;
+  pythonImportsCheck = [ "nimbo" ];
+
+  postInstall = ''
+    installShellCompletion --cmd nimbo \
+      --zsh <(_NIMBO_COMPLETE=source_zsh $out/bin/nimbo) \
+      --bash <(_NIMBO_COMPLETE=source_bash $out/bin/nimbo) \
+      --fish  <(_NIMBO_COMPLETE=source_fish $out/bin/nimbo)
+  '';
+
+  meta = with lib; {
+    description = "Run machine learning jobs on AWS with a single command";
+    homepage = "https://github.com/nimbo-sh/nimbo";
+    license = licenses.bsl11;
+    maintainers = with maintainers; [ alex-eyre noreferences ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/nnn/default.nix b/nixpkgs/pkgs/applications/misc/nnn/default.nix
index 3b482e95d9dd..d6b121081b42 100644
--- a/nixpkgs/pkgs/applications/misc/nnn/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nnn/default.nix
@@ -20,13 +20,13 @@ assert withNerdIcons -> withIcons == false;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "4.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cbxgss9j0bvsp3czjx1kpm9id7c5xxmjfnvjyk3pfd69ygif2kl";
+    sha256 = "09z37lv57nbp0l1ax28558jk5jv91lb22bgaclirvdyz2qp47xhj";
   };
 
   configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
diff --git a/nixpkgs/pkgs/applications/misc/notejot/default.nix b/nixpkgs/pkgs/applications/misc/notejot/default.nix
index 0b781f61369a..bd30fa2bb211 100644
--- a/nixpkgs/pkgs/applications/misc/notejot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/notejot/default.nix
@@ -1,15 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, nix-update-script, vala, pkg-config, meson, ninja, python3, pantheon
-, gtk3, gtksourceview, json-glib, libgee, wrapGAppsHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk4
+, gtksourceview
+, json-glib
+, libadwaita
+, libgee
+, meson
+, ninja
+, nix-update-script
+, pantheon
+, pkg-config
+, python3
+, vala
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "notejot";
-  version = "1.6.3";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    sha256 = "170dzgd6cnf2k3hfifjysmdggpskx6v1pjmblqgbwaj2d3snf3h8";
+    hash = "sha256-p8rca3PsnT/3Lp6W30VvqR9aPr6EIuNrH5gsxL0lZ0Q=";
   };
 
   nativeBuildInputs = [
@@ -20,31 +35,30 @@ stdenv.mkDerivation rec {
     python3
     wrapGAppsHook
   ];
-
   buildInputs = [
-    gtk3
+    gtk4
     gtksourceview
     json-glib
+    libadwaita
     libgee
     pantheon.elementary-icon-theme
     pantheon.granite
   ];
 
   postPatch = ''
-    patchShebangs meson/post_install.py
+    chmod +x build-aux/post_install.py
+    patchShebangs build-aux/post_install.py
   '';
 
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
-  };
-
   meta = with lib; {
-    description = "Stupidly-simple sticky notes applet";
     homepage = "https://github.com/lainsce/notejot";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    description = "Stupidly-simple sticky notes applet";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
   };
+
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
 }
diff --git a/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
index e62b3a334876..b00ee18d5f33 100644
--- a/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
+++ b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
@@ -2,7 +2,7 @@
 , dbus-glib
 , fetchurl
 , glib
-, gnome3
+, gnome
 , libnotify
 , libtool
 , libwnck3
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     glib libwnck3 libnotify dbus-glib makeWrapper
-    gsettings-desktop-schemas gnome3.gnome-common
+    gsettings-desktop-schemas gnome.gnome-common
     libtool
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/numberstation/default.nix b/nixpkgs/pkgs/applications/misc/numberstation/default.nix
new file mode 100644
index 000000000000..c51306bb93fe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/numberstation/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, python3
+, fetchFromSourcehut
+, desktop-file-utils
+, glib
+, gobject-introspection
+, gtk3
+, libhandy
+, librsvg
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "numberstation";
+  version = "0.4.0";
+
+  format = "other";
+
+  src = fetchFromSourcehut {
+    owner = "~martijnbraam";
+    repo = "numberstation";
+    rev = version;
+    sha256 = "038yyffqknr274f7jh5z12y68pjxr37f8y2cn2pwhf605jmbmpwv";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux/meson
+  '';
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    glib
+    gtk3
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk3
+    libhandy
+    librsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    keyring
+    pygobject3
+    pyotp
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = with lib; {
+    description = "TOTP Authentication application for mobile";
+    homepage = "https://sr.ht/~martijnbraam/numberstation/";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/obsidian/default.nix b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
index d7906c7dcbdf..39044301ec7c 100644
--- a/nixpkgs/pkgs/applications/misc/obsidian/default.nix
+++ b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
@@ -30,17 +30,18 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "obsidian";
-  version = "0.11.13";
+  version = "0.12.3";
 
   src = fetchurl {
-    url =
-      "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
-    sha256 = "0QL1rP37pmdIdGM9eHa7PfW1GVrvn2fX4bQPqQ8FOpI=";
+    url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
+    sha256 = "sha256-nwtQp7BkMZwMzfnA5wdcMAhfezM//Lm9cf0pbvnOVZE=";
   };
 
   nativeBuildInputs = [ makeWrapper graphicsmagick ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
 
     makeWrapper ${electron}/bin/electron $out/bin/obsidian \
@@ -56,6 +57,8 @@ in stdenv.mkDerivation rec {
       mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
       gm convert -resize "$size"x"$size" ${icon} $out/share/icons/hicolor/"$size"x"$size"/apps/obsidian.png
     done
+
+    runHook postInstall
   '';
 
   passthru.updateScript = updateScript;
diff --git a/nixpkgs/pkgs/applications/misc/olifant/default.nix b/nixpkgs/pkgs/applications/misc/olifant/default.nix
index fbaf140a9f78..bde2ae07c922 100644
--- a/nixpkgs/pkgs/applications/misc/olifant/default.nix
+++ b/nixpkgs/pkgs/applications/misc/olifant/default.nix
@@ -9,7 +9,7 @@
 , python3
 , libgee
 , gsettings-desktop-schemas
-, gnome3
+, gnome
 , pantheon
 , wrapGAppsHook
 , gtk3
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     glib-networking
-    gnome3.libsoup
+    gnome.libsoup
     gsettings-desktop-schemas
     gtk3
     json-glib
@@ -64,6 +64,6 @@ stdenv.mkDerivation rec {
     description = "A simple Mastodon client designed for elementary OS, originally developed by @bleakgrey";
     homepage = "https://github.com/cleac/olifant";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/oneko/default.nix b/nixpkgs/pkgs/applications/misc/oneko/default.nix
index 48b29f4b561d..e8399aeb098f 100644
--- a/nixpkgs/pkgs/applications/misc/oneko/default.nix
+++ b/nixpkgs/pkgs/applications/misc/oneko/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, imake, gccmakedep, xlibsWrapper }:
+{ lib, stdenv, fetchFromGitHub, imake, gccmakedep, xlibsWrapper }:
 
 stdenv.mkDerivation rec {
-  version_name = "1.2.sakura.5";
-  version = "1.2.5";
+  version_name = "1.2.hanami.6";
+  version = "1.2.6";
   pname = "oneko";
-  src = fetchurl {
-    url = "http://www.daidouji.com/oneko/distfiles/oneko-${version_name}.tar.gz";
-    sha256 = "2c2e05f1241e9b76f54475b5577cd4fb6670de058218d04a741a04ebd4a2b22f";
+  src = fetchFromGitHub {
+    owner = "IreneKnapp";
+    repo = "oneko";
+    rev = version_name;
+    sha256 = "0vx12v5fm8ar3f1g6jbpmd3b1q652d32nc67ahkf28djbqjgcbnc";
   };
   nativeBuildInputs = [ imake gccmakedep ];
   buildInputs = [ xlibsWrapper ];
@@ -22,9 +24,9 @@ stdenv.mkDerivation rec {
     chasing around your mouse cursor.
     When the cat is done catching the mouse, it starts sleeping.
     '';
-    homepage = "http://www.daidouji.com/oneko/";
-    license = licenses.publicDomain;
-    maintainers = [ maintainers.xaverdh ];
+    homepage = "https://github.com/IreneKnapp/oneko";
+    license = with licenses; [ publicDomain ];
+    maintainers = with maintainers; [ xaverdh irenes ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix b/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix
index 71c7903dfe22..e9646b9c21d4 100644
--- a/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix
@@ -22,6 +22,13 @@ stdenv.mkDerivation rec {
   # Enables SVG support by uncommenting the Makefile
   patches = [ ./000-enable-svg.patch ];
 
+  # The strip options are not recognized by Darwin.
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    sed -i -e '/strip -s/d' Makefile
+  '';
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
   installFlags = [ "prefix=${placeholder "out"}" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/openlp/lib.nix b/nixpkgs/pkgs/applications/misc/openlp/lib.nix
index 6f0634b5c934..c044e76c597d 100644
--- a/nixpkgs/pkgs/applications/misc/openlp/lib.nix
+++ b/nixpkgs/pkgs/applications/misc/openlp/lib.nix
@@ -5,7 +5,7 @@
 # python deps
 , python, buildPythonPackage
 , alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
-, pyqt5_with_qtwebkit, pyxdg, sip, sqlalchemy, sqlalchemy_migrate
+, pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy_migrate
 }:
 
 buildPythonPackage rec {
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     pyenchant
     pyqt5_with_qtwebkit
     pyxdg
-    sip
+    sip_4
     sqlalchemy
     sqlalchemy_migrate
   ];
diff --git a/nixpkgs/pkgs/applications/misc/openrgb/default.nix b/nixpkgs/pkgs/applications/misc/openrgb/default.nix
index df9e149d9a7c..eeff215679ad 100644
--- a/nixpkgs/pkgs/applications/misc/openrgb/default.nix
+++ b/nixpkgs/pkgs/applications/misc/openrgb/default.nix
@@ -1,25 +1,32 @@
-{ lib, mkDerivation, fetchFromGitLab, qmake, libusb1, hidapi, pkg-config }:
+{ lib, mkDerivation, fetchFromGitLab, qmake, libusb1, hidapi, pkg-config, coreutils }:
 
 mkDerivation rec {
   pname = "openrgb";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitLab {
     owner = "CalcProgrammer1";
     repo = "OpenRGB";
     rev = "release_${version}";
-    sha256 = "001x2ycfmlb9s21sp91aw5gxizcn6kzm8x7bvkps4b1iq0ap5fzv";
+    sha256 = "sha256-x/wGD39Jm/kmcTEZP3BnLXxyv/jkPOJd6mLCO0dp5wM=";
   };
 
   nativeBuildInputs = [ qmake pkg-config ];
   buildInputs = [ libusb1 hidapi ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     cp openrgb $out/bin
 
+    substituteInPlace 60-openrgb.rules \
+      --replace /bin/chmod "${coreutils}/bin/chmod"
+
     mkdir -p $out/etc/udev/rules.d
     cp 60-openrgb.rules $out/etc/udev/rules.d
+
+    runHook postInstall
   '';
 
   doInstallCheck = true;
@@ -27,13 +34,11 @@ mkDerivation rec {
     HOME=$TMPDIR $out/bin/openrgb --help > /dev/null
   '';
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "Open source RGB lighting control";
     homepage = "https://gitlab.com/CalcProgrammer1/OpenRGB";
     maintainers = with maintainers; [ jonringer ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/opentrack/aruco.nix b/nixpkgs/pkgs/applications/misc/opentrack/aruco.nix
new file mode 100644
index 000000000000..9a315a132073
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/opentrack/aruco.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, cmake, fetchFromGitHub, opencv4 }:
+
+stdenv.mkDerivation {
+  pname = "opentrack-aruco";
+  version = "unstable-20190303";
+
+  src = fetchFromGitHub {
+    owner = "opentrack";
+    repo = "aruco";
+    rev = "12dc60efd61149227bd05c805208d9bcce308f6d";
+    sha256 = "0gkrixgfbpg8pls4qqilphbz4935mg5z4p18a0vv6kclmfccw9ad";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ opencv4 ];
+
+  NIX_CFLAGS_COMPILE = "-Wall -Wextra -Wpedantic -ffast-math -march=native -O3";
+
+  preInstall = ''
+    mkdir -p $out/include/aruco
+  '';
+
+  # copy headers required by main package
+  postInstall = ''
+    cp $src/src/*.h $out/include/aruco
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/opentrack/aruco";
+    description = "C++ library for detection of AR markers based on OpenCV";
+    license = licenses.isc;
+    maintainers = with maintainers; [ zaninime ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/opentrack/default.nix b/nixpkgs/pkgs/applications/misc/opentrack/default.nix
new file mode 100644
index 000000000000..9bef85c2b249
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/opentrack/default.nix
@@ -0,0 +1,58 @@
+{ mkDerivation, lib, callPackage, fetchzip, fetchFromGitHub, cmake, pkg-config
+, ninja, copyDesktopItems, qtbase, qttools, opencv4, procps, eigen, libXdmcp
+, libevdev, makeDesktopItem, fetchurl }:
+
+let
+  version = "2.3.13";
+
+  aruco = callPackage ./aruco.nix { };
+
+  # license.txt inside the zip file is MIT
+  xplaneSdk = fetchzip {
+    url = "https://developer.x-plane.com/wp-content/plugins/code-sample-generation/sample_templates/XPSDK303.zip";
+    sha256 = "11wqjsr996c5qhiv2djsd55gc373a9qcq30dvc6rhzm0fys42zba";
+  };
+
+in mkDerivation {
+  pname = "opentrack";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "opentrack";
+    repo = "opentrack";
+    rev = "opentrack-${version}";
+    sha256 = "1s986lmm5l1pwbwvd1pfiq84n32s1q1dav7a0cbga4d1vcf0v1ay";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ninja copyDesktopItems ];
+  buildInputs = [ qtbase qttools opencv4 procps eigen libXdmcp libevdev aruco ];
+
+  NIX_CFLAGS_COMPILE = "-Wall -Wextra -Wpedantic -ffast-math -march=native -O3";
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=RELEASE"
+    "-DSDK_ARUCO_LIBPATH=${aruco}/lib/libaruco.a"
+    "-DSDK_XPLANE=${xplaneSdk}"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem rec {
+      name = "opentrack";
+      exec = "opentrack";
+      icon = fetchurl {
+        url = "https://github.com/opentrack/opentrack/raw/opentrack-${version}/gui/images/opentrack.png";
+        sha256 = "0d114zk78f7nnrk89mz4gqn7yk3k71riikdn29w6sx99h57f6kgn";
+      };
+      desktopName = name;
+      genericName = "Head tracking software";
+      categories = "Utility;";
+    })
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/opentrack/opentrack";
+    description = "Head tracking software for MS Windows, Linux, and Apple OSX";
+    license = licenses.isc;
+    maintainers = with maintainers; [ zaninime ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/orca/default.nix b/nixpkgs/pkgs/applications/misc/orca/default.nix
index 72d68431b8c0..f8facbe01fa0 100644
--- a/nixpkgs/pkgs/applications/misc/orca/default.nix
+++ b/nixpkgs/pkgs/applications/misc/orca/default.nix
@@ -12,7 +12,7 @@
 , python
 , pygobject3
 , gtk3
-, gnome3
+, gnome
 , substituteAll
 , at-spi2-atk
 , at-spi2-core
@@ -35,13 +35,13 @@
 
 buildPythonApplication rec {
   pname = "orca";
-  version = "3.38.2";
+  version = "40.0";
 
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "UAX/LhHdH3E/WswZA6JwEZvFjDD9uMn4K8rHFJfGwjw=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0hq0zdcn80ficpcffbk667907v6m7dih3dhyc7ss01mrj3iyw000";
   };
 
   patches = [
@@ -92,7 +92,7 @@ buildPythonApplication rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
@@ -108,7 +108,7 @@ buildPythonApplication rec {
       GTK toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and
       WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued.
 
-      Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`.
+      Needs `services.gnome.at-spi2-core.enable = true;` in `configuration.nix`.
     '';
     maintainers = with maintainers; [ berce ] ++ teams.gnome.members;
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch b/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch
index ffb56dbe239c..037b323c8cb1 100644
--- a/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch
+++ b/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch
@@ -1,6 +1,8 @@
+diff --git a/src/orca/debug.py b/src/orca/debug.py
+index e79482ed4..cbf3a24ec 100644
 --- a/src/orca/debug.py
 +++ b/src/orca/debug.py
-@@ -474,7 +474,7 @@
+@@ -502,7 +502,7 @@ def traceit(frame, event, arg):
      return traceit
  
  def getOpenFDCount(pid):
@@ -9,7 +11,7 @@
      procs = procs.decode('UTF-8').split('\n')
      files = list(filter(lambda s: s and s[0] == 'f' and s[1:].isdigit(), procs))
  
-@@ -482,7 +482,7 @@
+@@ -510,7 +510,7 @@ def getOpenFDCount(pid):
  
  def getCmdline(pid):
      try:
@@ -18,7 +20,7 @@
          cmdline = openFile.read()
          openFile.close()
      except:
-@@ -492,7 +492,7 @@
+@@ -520,7 +520,7 @@ def getCmdline(pid):
      return cmdline
  
  def pidOf(procName):
@@ -27,9 +29,11 @@
                                  shell=True,
                                  stdout=subprocess.PIPE).stdout
      pids = openFile.read()
+diff --git a/src/orca/orca.py b/src/orca/orca.py
+index 2fe0a0bf2..087526556 100644
 --- a/src/orca/orca.py
 +++ b/src/orca/orca.py
-@@ -239,7 +239,7 @@
+@@ -285,7 +285,7 @@ def updateKeyMap(keyboardEvent):
  
  def _setXmodmap(xkbmap):
      """Set the keyboard map using xkbcomp."""
@@ -38,7 +42,7 @@
          stdin=subprocess.PIPE, stdout=None, stderr=None)
      p.communicate(xkbmap)
  
-@@ -297,7 +297,7 @@
+@@ -363,7 +363,7 @@ def _storeXmodmap(keyList):
      """
  
      global _originalXmodmap
@@ -47,7 +51,7 @@
  
  def _restoreXmodmap(keyList=[]):
      """Restore the original xmodmap values for the keys in keyList.
-@@ -309,7 +309,7 @@
+@@ -375,7 +375,7 @@ def _restoreXmodmap(keyList=[]):
  
      global _capsLockCleared
      _capsLockCleared = False
@@ -56,9 +60,11 @@
          stdin=subprocess.PIPE, stdout=None, stderr=None)
      p.communicate(_originalXmodmap)
  
+diff --git a/src/orca/orca_bin.py.in b/src/orca/orca_bin.py.in
+index 8c9d40153..eec0d5437 100644
 --- a/src/orca/orca_bin.py.in
 +++ b/src/orca/orca_bin.py.in
-@@ -59,7 +59,7 @@
+@@ -62,7 +62,7 @@ class ListApps(argparse.Action):
                  name = "[DEAD]"
  
              try:
@@ -67,12 +73,12 @@
              except:
                  cmdline = '(exception encountered)'
              else:
-@@ -192,7 +192,7 @@
+@@ -197,7 +197,7 @@ def inGraphicalDesktop():
  def otherOrcas():
      """Returns the pid of any other instances of Orca owned by this user."""
  
--    openFile = subprocess.Popen('pgrep -u %s orca' % os.getuid(),
-+    openFile = subprocess.Popen('@pgrep@ -u %s orca' % os.getuid(),
+-    openFile = subprocess.Popen('pgrep -u %s -x orca' % os.getuid(),
++    openFile = subprocess.Popen('@pgrep@ -u %s -x orca' % os.getuid(),
                                  shell=True,
                                  stdout=subprocess.PIPE).stdout
      pids = openFile.read()
diff --git a/nixpkgs/pkgs/applications/misc/overmind/default.nix b/nixpkgs/pkgs/applications/misc/overmind/default.nix
index 537ae3741ef1..80a423a3c83c 100644
--- a/nixpkgs/pkgs/applications/misc/overmind/default.nix
+++ b/nixpkgs/pkgs/applications/misc/overmind/default.nix
@@ -1,9 +1,8 @@
-{ lib, buildGoPackage, fetchFromGitHub, tmux, which, makeWrapper }:
+{ lib, buildGoModule, fetchFromGitHub, tmux, which, makeWrapper }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "overmind";
-  version = "2.2.0";
-  goPackagePath = "github.com/DarthSim/overmind";
+  version = "2.2.2";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -15,10 +14,10 @@ buildGoPackage rec {
     owner = "DarthSim";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00v6l4138vv32bqfkzrhk4hfl52a00rlg9ywhp4difgrnz7zj6xb";
+    sha256 = "zDjIwnhDoUj+zTAhtBa94dx7QhYMCTxv2DNUpeP8CP0=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "KDMzR6qAruscgS6/bHTN6RnHOlLKCm9lxkr9k3oLY+Y=";
 
   meta = with lib; {
     homepage = "https://github.com/DarthSim/overmind";
diff --git a/nixpkgs/pkgs/applications/misc/overmind/deps.nix b/nixpkgs/pkgs/applications/misc/overmind/deps.nix
deleted file mode 100644
index b4c9211a24a1..000000000000
--- a/nixpkgs/pkgs/applications/misc/overmind/deps.nix
+++ /dev/null
@@ -1,129 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/DarthSim/godotenv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/DarthSim/godotenv";
-      rev = "v1.3.1";
-      sha256 = "0fb9nl5qrnv7f9w0pgg00ak34afw9kjgcql0l38z22faz2bhgl1q";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "f79a8a8ca69d";
-      sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
-    };
-  }
-  {
-    goPackagePath = "github.com/kardianos/osext";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kardianos/osext";
-      rev = "2bc1f35cddc0";
-      sha256 = "1pvrbrvmrf4mx0fxbfaphbzgqgwn8v6lkfk2vyrs0znxrs1xyc5r";
-    };
-  }
-  {
-    goPackagePath = "github.com/matoous/go-nanoid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matoous/go-nanoid";
-      rev = "eab626deece6";
-      sha256 = "1a82lclk56y7c44jg7wn5vq733dmn0g20r5yqbchrxnpfl75dw89";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v2.0.1";
-      sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
-    };
-  }
-  {
-    goPackagePath = "github.com/sevlyar/go-daemon";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sevlyar/go-daemon";
-      rev = "v0.1.5";
-      sha256 = "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk";
-    };
-  }
-  {
-    goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev = "v1.0.0";
-      sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "v1.22.2";
-      sha256 = "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "88737f569e3a";
-      sha256 = "02vkqfd6kc28zm6lffagw8nr78sayv6jabfgk9dcifl7826vi3k7";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "81d4e9dc473e";
-      sha256 = "0074zjpkhclz5qbgjv0zmdwy6hmf5k2ri5yagnm6i12ahxaa48dr";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.2";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/applications/misc/pastel/default.nix b/nixpkgs/pkgs/applications/misc/pastel/default.nix
index 39a4c6a6a03c..e842046dd0b9 100644
--- a/nixpkgs/pkgs/applications/misc/pastel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pastel/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "00xxrssa3gbr5w2jsqlf632jlzc0lc2rpybnbv618ndy5lxidnw0";
   };
 
-  cargoSha256 = "1ji64h0f8f2sq12cx33kymypzar9swhaj903gclf3jdwgna77326";
+  cargoSha256 = "0kkhj58q1lgsyj7hpy3sxg1jva9q51m0i7j60zfzhnjnirwcd0h8";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix b/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
index 474fddb25201..a8b407dd7b5d 100644
--- a/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, glib, intltool, libfm, libX11, pango, pkg-config
-, wrapGAppsHook, gnome3, withGtk3 ? true, gtk2, gtk3 }:
+, wrapGAppsHook, gnome, withGtk3 ? true, gtk2, gtk3 }:
 
 let
   libfm' = libfm.override { inherit withGtk3; };
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-FMt7JHSTxMzmX7tZAmEeOtAKeocPvB5QrcUEKMUUDPc=";
   };
 
-  buildInputs = [ glib gtk libfm' libX11 pango gnome3.adwaita-icon-theme ];
+  buildInputs = [ glib gtk libfm' libX11 pango gnome.adwaita-icon-theme ];
   nativeBuildInputs = [ pkg-config wrapGAppsHook intltool ];
 
   configureFlags = optional withGtk3 "--with-gtk=3";
diff --git a/nixpkgs/pkgs/applications/misc/phoc/default.nix b/nixpkgs/pkgs/applications/misc/phoc/default.nix
new file mode 100644
index 000000000000..2e3f32305125
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/phoc/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchpatch
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook
+, libinput
+, gnome
+, glib
+, gtk3
+, wayland
+, libdrm
+, libxkbcommon
+, wlroots
+}:
+
+let
+  phocWlroots = wlroots.overrideAttrs (old: {
+    patches = (old.patches or []) ++ [
+      # Temporary fix. Upstream report: https://source.puri.sm/Librem5/phosh/-/issues/422
+      (fetchpatch {
+        name = "0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch";
+        url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/78fde4aaf1a74eb13a3f083cb6dfb29f578c3265/community/wlroots/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch";
+        sha256 = "1zjn7mwdj21z0jsc2mz90cnrzk97yqkiq58qqgpjav4h4dgpfb38";
+      })
+      # To fix missing header `EGL/eglmesaext.h` dropped upstream
+      (fetchpatch {
+        name = "0002-stop-including-eglmesaext-h.patch";
+        url = "https://github.com/swaywm/wlroots/commit/e18599b05e0f0cbeba11adbd489e801285470eab.patch";
+        sha256 = "17ax4dyk0584yhs3lq8ija5bkainjf7psx9c9r50cr4jm9c0i37l";
+      })
+    ];
+  });
+in stdenv.mkDerivation rec {
+  pname = "phoc";
+  version = "0.7.0";
+
+  src = fetchFromGitLab {
+    domain = "source.puri.sm";
+    owner = "Librem5";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0afiyr2slg38ksrqn19zygsmjy9k5bpwv6n7zjas3s5djr6hch45";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    libdrm.dev
+    libxkbcommon
+    libinput
+    glib
+    gtk3
+    gnome.gnome-desktop
+    # For keybindings settings schemas
+    gnome.mutter
+    wayland
+    phocWlroots
+  ];
+
+  mesonFlags = ["-Dembed-wlroots=disabled"];
+
+  postPatch = ''
+    chmod +x build-aux/post_install.py
+    patchShebangs build-aux/post_install.py
+  '';
+
+  meta = with lib; {
+    description = "Wayland compositor for mobile phones like the Librem 5";
+    homepage = "https://source.puri.sm/Librem5/phoc";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ archseer masipcat zhaofengli ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pipr/default.nix b/nixpkgs/pkgs/applications/misc/pipr/default.nix
index 6ca315b1092a..96627f5cccb5 100644
--- a/nixpkgs/pkgs/applications/misc/pipr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pipr/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1pbj198nqi27kavz9bm31a3h7h70by6l00046x09yf9n8qjpp01w";
   };
 
-  cargoSha256 = "1dcrafpf252dpjvimaibb93082nymb26wwbvr34zd6j7z285vach";
+  cargoSha256 = "05ryaxi479fxzdcl51r1xlqbiasfzxcxgvl4wnxync8qi8q2yqk0";
 
   nativeBuildInputs = [ makeWrapper ];
   postFixup = ''
diff --git a/nixpkgs/pkgs/applications/misc/plank/default.nix b/nixpkgs/pkgs/applications/misc/plank/default.nix
index b462e5f134b1..30d9533d4530 100644
--- a/nixpkgs/pkgs/applications/misc/plank/default.nix
+++ b/nixpkgs/pkgs/applications/misc/plank/default.nix
@@ -5,7 +5,7 @@
 , cairo
 , dconf
 , glib
-, gnome3
+, gnome
 , gtk3
 , libwnck3
 , libX11
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     autoreconfHook
     gettext
-    gnome3.gnome-common
+    gnome.gnome-common
     libxml2 # xmllint
     pkg-config
     vala
diff --git a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
index bb365ecfefd8..e8bc572e284f 100644
--- a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
@@ -2,17 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "plasma-applet-volumewin7mixer";
-  version = "25";
+  version = "26";
 
   src = fetchFromGitHub {
     owner = "Zren";
     repo = "plasma-applet-volumewin7mixer";
     rev = "v${version}";
-    sha256 = "1nvz0a06qb3pfk8dfh5n5vgf3psd6k0j3vms9pskr511qsxw0dfi";
+    sha256 = "sha256-VMOUNtAURTHDuJBOGz2N0+3VzxBmVNC1O8dVuyUZAa4=";
   };
 
+  # Adds the CMakeLists.txt not provided by upstream
   patches = [ ./cmake.patch ];
-  postPatch = "rm build ";
+  postPatch = "rm build";
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ plasma-framework kwindowsystem plasma-pa ];
 
diff --git a/nixpkgs/pkgs/applications/misc/plover/default.nix b/nixpkgs/pkgs/applications/misc/plover/default.nix
index 05886a85bf0c..ac4811b30c41 100644
--- a/nixpkgs/pkgs/applications/misc/plover/default.nix
+++ b/nixpkgs/pkgs/applications/misc/plover/default.nix
@@ -17,7 +17,7 @@
       sha256 = "1hdg5491phx6svrxxsxp8v6n4b25y7y4wxw7x3bxlbyhaskgj53r";
     };
 
-    nativeBuildInputs     = [ setuptools_scm ];
+    nativeBuildInputs     = [ setuptools-scm ];
     buildInputs           = [ pytest mock ];
     propagatedBuildInputs = [
       six setuptools pyserial appdirs hidapi wxPython xlib wmctrl dbus-python
diff --git a/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
index faa139a3da4e..8fcd9e1a04fe 100644
--- a/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
@@ -1,24 +1,60 @@
-{ stdenv, lib, makeWrapper, fetchurl
-, dpkg, wrapGAppsHook, autoPatchelfHook
-, gtk3, cairo, pango, atk, gdk-pixbuf, glib
-, at-spi2-atk, dbus, libX11, libxcb, libXi
-, libXcursor, libXdamage, libXrandr, libXcomposite
-, libXext, libXfixes, libXrender, libXtst, libXScrnSaver
-, nss, nspr, alsaLib, cups, fontconfig, expat
-, libudev0-shim, glibc, curl, openssl, libnghttp2, gsettings-desktop-schemas }:
+{ stdenv
+, lib
+, makeWrapper
+, fetchurl
+, dpkg
+, wrapGAppsHook
+, autoPatchelfHook
+, gtk3
+, cairo
+, pango
+, atk
+, gdk-pixbuf
+, glib
+, at-spi2-atk
+, dbus
+, libX11
+, libxcb
+, libXi
+, libXcursor
+, libXdamage
+, libXrandr
+, libXcomposite
+, libXext
+, libXfixes
+, libXrender
+, libXtst
+, libXScrnSaver
+, nss
+, nspr
+, alsa-lib
+, cups
+, fontconfig
+, expat
+, libudev0-shim
+, glibc
+, curl
+, openssl
+, libnghttp2
+, gsettings-desktop-schemas
+, libdrm
+, mesa
+}:
 
 
 stdenv.mkDerivation rec {
   pname = "polar-bookshelf";
-  version = "2.0.42";
+  version = "2.0.103";
 
   # fetching a .deb because there's no easy way to package this Electron app
   src = fetchurl {
     url = "https://github.com/burtonator/polar-bookshelf/releases/download/v${version}/polar-desktop-app-${version}-amd64.deb";
-    hash = "sha256-JyO71wyE6b0iHAYs/6/WbG+OdUVUUPpJla+ZUzg0Gng=";
+    hash = "sha256-jcq0hW698bAhVM3fLQQeKAnld33XLkHsGjS3QwUpciQ=";
   };
 
   buildInputs = [
+    libdrm
+    mesa
     gsettings-desktop-schemas
     glib
     gtk3
@@ -42,7 +78,7 @@ stdenv.mkDerivation rec {
     libXScrnSaver
     nss
     nspr
-    alsaLib
+    alsa-lib
     cups
     fontconfig
     expat
@@ -60,6 +96,8 @@ stdenv.mkDerivation rec {
   unpackPhase = "dpkg-deb -x $src .";
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/polar-bookshelf
     mkdir -p $out/bin
     mkdir -p $out/lib
@@ -73,6 +111,8 @@ stdenv.mkDerivation rec {
 
     substituteInPlace $out/share/applications/polar-desktop-app.desktop \
       --replace "/opt/Polar/polar-desktop-app" "$out/bin/polar-desktop-app"
+
+    runHook postInstall
   '';
 
   preFixup = ''
@@ -82,7 +122,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://getpolarized.io/";
     description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Only;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.noneucat ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/polybar/default.nix b/nixpkgs/pkgs/applications/misc/polybar/default.nix
index 962bd9f592b9..099813483a4a 100644
--- a/nixpkgs/pkgs/applications/misc/polybar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/polybar/default.nix
@@ -19,7 +19,7 @@
 , xcbutilxrm
 , makeWrapper
 , removeReferencesTo
-, alsaLib
+, alsa-lib
 , curl
 , libmpdclient
 , libpulseaudio
@@ -42,13 +42,13 @@
 
 stdenv.mkDerivation rec {
     pname = "polybar";
-    version = "3.5.5";
+    version = "3.5.6";
 
     src = fetchFromGitHub {
       owner = pname;
       repo = pname;
       rev = version;
-      sha256 = "sha256-oRtTm5bXdL0C2WJsaK8H2Oc40DPWgAfjP7FgIHrpKGI=";
+      sha256 = "sha256-Uvj9V2M/uQxyziTx1hecrcaQZECijlpVmWcUeT+PqrI=";
       fetchSubmodules = true;
     };
 
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
       xcbutilwm
       xcbutilxrm
     ]
-    ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional githubSupport curl
     ++ lib.optional mpdSupport libmpdclient
     ++ lib.optional pulseSupport libpulseaudio
diff --git a/nixpkgs/pkgs/applications/misc/pueue/default.nix b/nixpkgs/pkgs/applications/misc/pueue/default.nix
index cc1ae14350e4..8cf8d8286ae3 100644
--- a/nixpkgs/pkgs/applications/misc/pueue/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pueue/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-wcOF34GzlB6YKISkjDgYgsaN1NmWBMIntfT23A6byx8=";
   };
 
-  cargoSha256 = "sha256-7SJjtHNSabE/VqdiSwKZ/yNzk6GSMNsQLaSx/MjN5NA=";
+  cargoSha256 = "sha256-aW1VliL7QQm9gMeM6N+SroHlgqI3F7MX0EzcuEzcJnQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/misc/pyditz/default.nix b/nixpkgs/pkgs/applications/misc/pyditz/default.nix
index 5765aeba7dd0..c5f3143bedc1 100644
--- a/nixpkgs/pkgs/applications/misc/pyditz/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pyditz/default.nix
@@ -12,7 +12,7 @@ in buildPythonApplication rec {
     inherit pname version;
     sha256 = "da0365ae9064e30c4a27526fb0d7a802fda5c8651cda6990d17be7ede89a2551";
   };
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ pyyaml six jinja2 cerberus_1_1 ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/pytrainer/default.nix b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
index 44b2cd700ecf..05cc834591f5 100644
--- a/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
@@ -2,7 +2,7 @@
 , python3
 , fetchFromGitHub
 , gdk-pixbuf
-, gnome3
+, gnome
 , gpsbabel
 , glib-networking
 , glibcLocales
@@ -13,7 +13,7 @@
 , tzdata
 , webkitgtk
 , wrapGAppsHook
-, xvfb_run
+, xvfb-run
 }:
 
 let
@@ -55,7 +55,7 @@ in python.pkgs.buildPythonApplication rec {
     gtk3
     webkitgtk
     glib-networking
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gdk-pixbuf
   ];
 
@@ -66,7 +66,7 @@ in python.pkgs.buildPythonApplication rec {
   checkInputs = [
     glibcLocales
     perl
-    xvfb_run
+    xvfb-run
   ] ++ (with python.pkgs; [
     mysqlclient
     psycopg2
diff --git a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
index bba78bf7538d..d5450f0e5c4e 100644
--- a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
@@ -51,7 +51,7 @@ mkDerivation {
     description = "Graphical disk usage analyzer";
     homepage = src.meta.homepage;
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/qlcplus/default.nix b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
index 439af2b8c01e..d387468bcddc 100644
--- a/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
@@ -1,5 +1,5 @@
 { lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake, pkg-config, udev
-, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb-compat-0_1
+, qtmultimedia, qtscript, alsa-lib, ola, libftdi1, libusb-compat-0_1
 , libsndfile, libmad
 }:
 
@@ -24,7 +24,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ qmake pkg-config ];
   buildInputs = [
-    udev qtmultimedia qtscript alsaLib ola libftdi1 libusb-compat-0_1 libsndfile libmad
+    udev qtmultimedia qtscript alsa-lib ola libftdi1 libusb-compat-0_1 libsndfile libmad
   ];
 
   qmakeFlags = [ "INSTALLROOT=$(out)" ];
diff --git a/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix b/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
index e43cf7b95b93..88b215acdfa9 100644
--- a/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
+++ b/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
@@ -9,7 +9,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "3d694015d020a888b42564d56559213b94981ca2b32b952a49b2de4d029d2e59";
   };
 
-  nativeBuildInputs = [ python3Packages.setuptools_scm ];
+  nativeBuildInputs = [ python3Packages.setuptools-scm ];
   pythonPath = with python3Packages; [ i3ipc ];
 
   # no tests
diff --git a/nixpkgs/pkgs/applications/misc/reddsaver/default.nix b/nixpkgs/pkgs/applications/misc/reddsaver/default.nix
index 279d3e4b15d9..47412c78f4e6 100644
--- a/nixpkgs/pkgs/applications/misc/reddsaver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/reddsaver/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0ffci3as50f55n1v36hji4n0b3lkch5ylc75awjz65jz2gd2y2j4";
   };
 
-  cargoSha256 = "1cx3sqr7zb1vlfdvbcxp0yva9xh654qczpy8s09c8cviy8hac5sr";
+  cargoSha256 = "1xf26ldgfinzpakcp65w52fdl3arsm053vfnq7gk2fwnq55cjwl0";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
new file mode 100644
index 000000000000..f2ce2bd441c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, bash
+, stdenv
+, lz4
+, ffmpeg-full
+, fetchFromGitHub
+, openssh
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "restream";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "rien";
+    repo = pname;
+    rev = version;
+    sha256 = "18z17chl7r5dg12xmr3f9gbgv97nslm8nijigd03iysaj6dhymp3";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D ${src}/restream.arm.static $out/libexec/restream.arm.static
+    install -D ${src}/reStream.sh $out/bin/restream
+
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    # `ffmpeg-full` is used here to bring in `ffplay`, which is used to display
+    # the reMarkable framebuffer
+    wrapProgram "$out/bin/restream" --suffix PATH ":" "${lib.makeBinPath [ ffmpeg-full lz4 openssh ]}"
+  '';
+
+  meta = with lib; {
+    description = "reMarkable screen sharing over SSH";
+    homepage = "https://github.com/rien/reStream";
+    license = licenses.mit;
+    maintainers = [ maintainers.cpcloud ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
index e2a5f348da57..11373756f8d0 100644
--- a/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "rmapi";
-  version = "0.0.13";
+  version = "0.0.15";
 
   src = fetchFromGitHub {
     owner = "juruen";
     repo = "rmapi";
     rev = "v${version}";
-    sha256 = "0qq8x37p7yxhcp5d5xss3pv5186xgg0hd6lbkqivhy5yjsd54c7b";
+    sha256 = "sha256-ju54JSd3Zyye5YGLPEOkhY93ONh0b7eDSnvJlIawizE=";
   };
 
-  vendorSha256 = "1pa75rjns1kknl2gmfprdzc3f2z8dk44jkz6dmf8f3prj0z7x88c";
+  vendorSha256 = "sha256-SE/0a8QUJsWoGwkSiZqYx1eXuOIL3avJujyg8iSdcBU=";
 
   doCheck = false;
 
@@ -19,7 +19,7 @@ buildGoModule rec {
     description = "A Go app that allows access to the ReMarkable Cloud API programmatically";
     homepage = "https://github.com/juruen/rmapi";
     changelog = "https://github.com/juruen/rmapi/blob/v${version}/CHANGELOG.md";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = [ maintainers.nickhu ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/rofi-power-menu/default.nix b/nixpkgs/pkgs/applications/misc/rofi-power-menu/default.nix
new file mode 100644
index 000000000000..657796a5972a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rofi-power-menu/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, rofi }:
+
+stdenv.mkDerivation rec {
+  pname = "rofi-power-menu";
+  version = "3.0.2";
+
+  src = fetchFromGitHub {
+    owner = "jluttine";
+    repo = "rofi-power-menu";
+    rev = version;
+    sha256 = "sha256-Bkc87BXSnAR517wCkyOAfoACYx/5xprDGJQhLWGUNns=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp rofi-power-menu $out/bin/rofi-power-menu
+    cp dmenu-power-menu $out/bin/dmenu-power-menu
+  '';
+
+  meta = with lib; {
+    description = "Shows a Power/Lock menu with Rofi";
+    homepage = "https://github.com/jluttine/rofi-power-menu";
+    maintainers = with maintainers; [ ikervagyok ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/rofimoji/default.nix b/nixpkgs/pkgs/applications/misc/rofimoji/default.nix
index 1e340697e76d..79a4d9fc7abe 100644
--- a/nixpkgs/pkgs/applications/misc/rofimoji/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rofimoji/default.nix
@@ -6,7 +6,6 @@
 , x11Support ? true
 
 , ConfigArgParse
-, pyxdg
 , rofi
 , wl-clipboard
 , wtype
@@ -16,18 +15,18 @@
 
 buildPythonApplication rec {
   pname = "rofimoji";
-  version = "4.3.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "fdw";
     repo = "rofimoji";
     rev = version;
-    sha256 = "08ayndpifr04njpijc5n5ii5nvibfpab39p6ngyyj0pb43792a8j";
+    sha256 = "sha256-bLV0hYDjVH11euvNHUHZFcCVywuceRljkCqyX4aANVs=";
   };
 
   # `rofi` and the `waylandSupport` and `x11Support` dependencies
   # contain binaries needed at runtime.
-  propagatedBuildInputs = with lib; [ ConfigArgParse pyxdg rofi ]
+  propagatedBuildInputs = with lib; [ ConfigArgParse rofi ]
     ++ optionals waylandSupport [ wl-clipboard wtype ]
     ++ optionals x11Support [ xdotool xsel ];
 
@@ -35,7 +34,6 @@ buildPythonApplication rec {
   # and has additional dependencies.
   postPatch = ''
     rm -rf extractors
-    substituteInPlace setup.py --replace 'pyxdg==0.26' 'pyxdg'
   '';
 
   # no tests executed
diff --git a/nixpkgs/pkgs/applications/misc/rsclock/default.nix b/nixpkgs/pkgs/applications/misc/rsclock/default.nix
index bc36b2f379e8..97a5445638ed 100644
--- a/nixpkgs/pkgs/applications/misc/rsclock/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rsclock/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1i93qkz6d8sbk78i4rvx099hnn4lklp4cjvanpm9ssv8na4rqvh2";
   };
 
-  cargoSha256 = "01dhkis6zswq1y40n7sdq9xv1sp61f2v7nfqbkicyjngmdrmcgrl";
+  cargoSha256 = "1vgizkdzi9mnan4rcswyv450y6a4b9l74d0siv1ix0nnlznnqyg1";
 
   meta = with lib; {
     description = "A simple terminal clock written in Rust";
diff --git a/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix b/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix
index 7550e6bcb95f..05d2bca99b1b 100644
--- a/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rss-bridge-cli/default.nix
@@ -6,7 +6,6 @@ let
       curl
       filter
       iconv
-      json
       mbstring
       openssl
       simplexml
diff --git a/nixpkgs/pkgs/applications/misc/safeeyes/default.nix b/nixpkgs/pkgs/applications/misc/safeeyes/default.nix
index d866b643ef25..179ebd33d856 100644
--- a/nixpkgs/pkgs/applications/misc/safeeyes/default.nix
+++ b/nixpkgs/pkgs/applications/misc/safeeyes/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, gobject-introspection, libappindicator-gtk3, libnotify, gtk3, gnome3, xprintidle-ng, wrapGAppsHook, gdk-pixbuf, shared-mime-info, librsvg
+{ lib, python3Packages, gobject-introspection, libappindicator-gtk3, libnotify, gtk3, gnome, xprintidle-ng, wrapGAppsHook, gdk-pixbuf, shared-mime-info, librsvg
 }:
 
 let inherit (python3Packages) python buildPythonApplication fetchPypi croniter;
@@ -16,8 +16,8 @@ in buildPythonApplication rec {
   buildInputs = [
     gtk3
     gobject-introspection
-    gnome3.adwaita-icon-theme
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/sampler/default.nix b/nixpkgs/pkgs/applications/misc/sampler/default.nix
index b68a3a98e34c..2e1b94b6b6c7 100644
--- a/nixpkgs/pkgs/applications/misc/sampler/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sampler/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, alsaLib }:
+{ lib, buildGoModule, fetchFromGitHub, alsa-lib }:
 
 buildGoModule rec {
   pname = "sampler";
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  buildInputs = [ alsaLib ];
+  buildInputs = [ alsa-lib ];
 
   meta = with lib; {
     description = "Tool for shell commands execution, visualization and alerting";
diff --git a/nixpkgs/pkgs/applications/misc/sc-im/default.nix b/nixpkgs/pkgs/applications/misc/sc-im/default.nix
index cc7d4c3771b4..e299ec2ac86b 100644
--- a/nixpkgs/pkgs/applications/misc/sc-im/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sc-im/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , makeWrapper
 , pkg-config
 , which
@@ -16,29 +15,17 @@
 
 stdenv.mkDerivation rec {
   pname = "sc-im";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "andmarti1424";
     repo = "sc-im";
     rev = "v${version}";
-    sha256 = "sha256-AIYa3d1ml1f5GNLKijeFPX+UabgEqzdXiP60BGvBPsQ=";
+    sha256 = "sha256-H+GQUpouiXc/w6GWdkSVvTXZ/Dtb7sUmBLGcpxG3Mts=";
   };
 
   sourceRoot = "${src.name}/src";
 
-  patches = [
-    # libxls and libxlsxwriter are not found without the patch
-    # https://github.com/andmarti1424/sc-im/pull/542
-    (fetchpatch {
-      name = "use-pkg-config-for-libxls-and-libxlsxwriter.patch";
-      url = "https://github.com/andmarti1424/sc-im/commit/b62dc25eb808e18a8ab7ee7d8eb290e34efeb075.patch";
-      sha256 = "1yn32ps74ngzg3rbkqf8dn0g19jv4xhxrfgx9agnywf0x8gbwjh3";
-    })
-  ];
-
-  patchFlags = [ "-p2" ];
-
   nativeBuildInputs = [
     makeWrapper
     pkg-config
diff --git a/nixpkgs/pkgs/applications/misc/scli/default.nix b/nixpkgs/pkgs/applications/misc/scli/default.nix
new file mode 100644
index 000000000000..93fd5d41942b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/scli/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonApplication, fetchFromGitHub, signal-cli, urwid
+, urwid-readline, dbus }:
+
+buildPythonApplication rec {
+  pname = "scli";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "isamert";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-hWzpqj/sxPq/doxdmytnj5rh2qKQE71WMB0ugomWhHg";
+  };
+
+  propagatedBuildInputs = [ signal-cli urwid urwid-readline dbus ];
+  dontBuild = true;
+
+  checkPhase = ''
+    # scli attempts to write to these directories, make sure they're writeable
+    export XDG_DATA_HOME=$(mktemp -d)
+    export XDG_CONFIG_HOME=$(mktemp -d)
+    ./scli --help > /dev/null # don't spam nix-build log
+    test $? == 0
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    patchShebangs scli
+    install -m755 -D scli $out/bin/scli
+  '';
+
+  meta = with lib; {
+    description = "Simple terminal user interface for Signal";
+    homepage = "https://github.com/isamert/scli";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ alex-eyre ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/sfm/default.nix b/nixpkgs/pkgs/applications/misc/sfm/default.nix
new file mode 100644
index 000000000000..3bbcc939d2fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sfm/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, conf ? null }:
+
+stdenv.mkDerivation rec {
+  pname = "sfm";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "afify";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-i4WzYaJKityIt+LPWCbd6UsPBaYoaS397l5BInOXQQA=";
+  };
+
+  configFile = lib.optionalString (conf!=null) (lib.writeText "config.def.h" conf);
+
+  postPatch = lib.optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Simple file manager";
+    homepage = "https://github.com/afify/sfm";
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/skytemple/default.nix b/nixpkgs/pkgs/applications/misc/skytemple/default.nix
new file mode 100644
index 000000000000..a67d79f9bf90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/skytemple/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchFromGitHub, gobject-introspection, gtk3, gtksourceview3, wrapGAppsHook, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "skytemple";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "0l2c4qngv58j6zkp0va6m96zksx8gqn3mjc3isqybfnhjr6nd3v9";
+  };
+
+  buildInputs = [ gobject-introspection gtk3 gtksourceview3 ];
+  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+  propagatedBuildInputs = with python3Packages; [
+    natsort
+    packaging
+    pycairo
+    pygal
+    pypresence
+    setuptools
+    skytemple-dtef
+    skytemple-eventserver
+    skytemple-files
+    skytemple-icons
+    skytemple-ssb-debugger
+  ];
+
+  doCheck = false; # there are no tests
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/skytemple";
+    description = "ROM hacking tool for Pokémon Mystery Dungeon Explorers of Sky";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/slade/git.nix b/nixpkgs/pkgs/applications/misc/slade/git.nix
index dfbfbe556699..f263c4ee74dd 100644
--- a/nixpkgs/pkgs/applications/misc/slade/git.nix
+++ b/nixpkgs/pkgs/applications/misc/slade/git.nix
@@ -1,18 +1,36 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, wxGTK, gtk2, sfml, fluidsynth, curl, freeimage, ftgl, glew, zip }:
+{ lib, stdenv, fetchFromGitHub
+, cmake
+, pkg-config
+, wxGTK
+, sfml
+, fluidsynth
+, curl
+, freeimage
+, ftgl
+, glew
+, zip
+, lua
+, fmt
+, mpg123
+}:
 
 stdenv.mkDerivation {
-  name = "slade-git-3.1.2.2018.01.29";
+  name = "slade-git-3.2.0.2021.05.13";
 
   src = fetchFromGitHub {
     owner = "sirjuddington";
     repo = "SLADE";
-    rev = "f7409c504b40c4962f419038db934c32688ddd2e";
-    sha256 = "14icxiy0r9rlcc10skqs1ylnxm1f0f3irhzfmx4sazq0pjv5ivld";
+    rev = "d2e249c89062a44c912a9b86951526edc8735ba0";
+    sha256 = "08dsvx7m7c97jm8fxzivmi1fr47hj53y0lv57clqc35bh2gi62dg";
   };
 
-  cmakeFlags = ["-DNO_WEBVIEW=1"];
+  cmakeFlags = [
+    "-DwxWidgets_CONFIG_EXECUTABLE=${wxGTK}/bin/wx-config"
+    "-DWX_GTK3=OFF"
+    "-DNO_WEBVIEW=1"
+  ];
   nativeBuildInputs = [ cmake pkg-config zip ];
-  buildInputs = [ wxGTK gtk2 sfml fluidsynth curl freeimage ftgl glew ];
+  buildInputs = [ wxGTK wxGTK.gtk sfml fluidsynth curl freeimage ftgl glew lua fmt mpg123 ];
 
   meta = with lib; {
     description = "Doom editor";
diff --git a/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix b/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix
index 5beacfad2f95..2c6343159336 100644
--- a/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, python3, python3Packages
-, gnome3, gtk3, wrapGAppsHook, gtksourceview3, snapper
+, gnome, gtk3, wrapGAppsHook, gtksourceview3, snapper
 , gobject-introspection
 }:
 
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
   buildInputs = [
     python3
     gobject-introspection
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   doCheck = false; # it doesn't have any tests
diff --git a/nixpkgs/pkgs/applications/misc/solaar/default.nix b/nixpkgs/pkgs/applications/misc/solaar/default.nix
index f92fe87b9481..bb1573f74c54 100644
--- a/nixpkgs/pkgs/applications/misc/solaar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/solaar/default.nix
@@ -1,46 +1,59 @@
 { fetchFromGitHub, lib, gobject-introspection, gtk3, python3Packages }:
-# Although we copy in the udev rules here, you probably just want to use logitech-udev-rules instead of
-# adding this to services.udev.packages on NixOS
+
+# Although we copy in the udev rules here, you probably just want to use
+# logitech-udev-rules instead of adding this to services.udev.packages on NixOS
 python3Packages.buildPythonApplication rec {
   pname = "solaar";
-  version = "1.0.2";
+  version = "1.0.5";
+
   src = fetchFromGitHub {
     owner = "pwr-Solaar";
     repo = "Solaar";
     rev = version;
-    sha256 = "0k5z9dap6rawiafkg1x7zjx51ala7wra6j6lvc2nn0y8r79yp7a9";
+    sha256 = "sha256-k87DqIkvy5CVEsHT82ZArSM2JBi5sYdSCPfP4KjI850=";
   };
 
-  propagatedBuildInputs = with python3Packages; [ gobject-introspection gtk3 pygobject3 pyudev ];
+  propagatedBuildInputs = with python3Packages; [
+    gobject-introspection
+    gtk3
+    psutil
+    pygobject3
+    pyudev
+    pyyaml
+    xlib
+  ];
 
+  makeWrapperArgs = [
+    "--prefix PYTHONPATH : $PYTHONPATH"
+    "--prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH"
+  ];
+
+  # the -cli symlink is just to maintain compabilility with older versions where
+  # there was a difference between the GUI and CLI versions.
   postInstall = ''
-    wrapProgram "$out/bin/solaar" \
-      --prefix PYTHONPATH : "$PYTHONPATH" \
-      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
-    wrapProgram "$out/bin/solaar-cli" \
-      --prefix PYTHONPATH : "$PYTHONPATH" \
-      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
-
-    install -Dm644 -t $out/etc/udev/rules.d rules.d/*.rules
+    ln -s $out/bin/solaar $out/bin/solaar-cli
+
+    install -Dm444 -t $out/etc/udev/rules.d rules.d/*.rules
   '';
 
-  enableParallelBuilding = true;
+  # No tests
+  doCheck = false;
+
   meta = with lib; {
     description = "Linux devices manager for the Logitech Unifying Receiver";
     longDescription = ''
-      Solaar is a Linux device manager for Logitech’s Unifying Receiver
-      peripherals. It is able to pair/unpair devices to the receiver, and for
-      most devices read battery status.
+      Solaar is a Linux manager for many Logitech keyboards, mice, and trackpads that
+      connect wirelessly to a USB Unifying, Lightspeed, or Nano receiver, connect
+      directly via a USB cable, or connect via Bluetooth. Solaar does not work with
+      peripherals from other companies.
 
-      It comes in two flavors, command-line and GUI. Both are able to list the
-      devices paired to a Unifying Receiver, show detailed info for each
-      device, and also pair/unpair supported devices with the receiver.
+      Solaar can be used as a GUI application or via its command-line interface.
 
-      To be able to use it, make sure you have access to /dev/hidraw* files.
+      This tool requires either to be run with root/sudo or alternatively to have the udev rules files installed. On NixOS this can be achieved by setting `hardware.logitech.wireless.enable`.
     '';
-    license = licenses.gpl2;
     homepage = "https://pwr-solaar.github.io/Solaar/";
-    platforms = platforms.linux;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ spinus ysndr ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix b/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix
index 1221db1ad962..697d13c8c0e2 100644
--- a/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix
+++ b/nixpkgs/pkgs/applications/misc/spacenav-cube-example/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ libX11 mesa_glu libspnav ];
 
-  configureFlags = [ "--disable-debug" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/misc/spnavcfg/configure-cfgfile-path.patch b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-cfgfile-path.patch
new file mode 100644
index 000000000000..22db2ee66ce3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-cfgfile-path.patch
@@ -0,0 +1,100 @@
+diff --git a/back.c b/back.c
+index c1810dc..75416fb 100644
+--- a/back.c
++++ b/back.c
+@@ -25,7 +25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #include "cfgfile.h"
+ #include "cmd.h"
+ 
+-#define CFGFILE		"/etc/spnavrc"
+ 
+ int get_daemon_pid(void);
+ static int update_cfg(void);
+@@ -127,7 +126,7 @@ int get_daemon_pid(void)
+ 
+ static int update_cfg(void)
+ {
+-	if(write_cfg(CFGFILE, &cfg) == -1) {
++	if(write_cfg(cfg_path(), &cfg) == -1) {
+ 		fprintf(stderr, "failed to update config file\n");
+ 		return -1;
+ 	}
+diff --git a/cfgfile.c b/cfgfile.c
+index 5a9c502..2ea323d 100644
+--- a/cfgfile.c
++++ b/cfgfile.c
+@@ -22,12 +22,40 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #include <ctype.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <pwd.h>
+ #include "cfgfile.h"
+ 
+ enum {TX, TY, TZ, RX, RY, RZ};
+ 
+ static const int def_axmap[] = {0, 2, 1, 3, 5, 4};
+ static const int def_axinv[] = {0, 1, 1, 0, 1, 1};
++static char* config_path;
++
++char* cfg_path()
++{
++	char* buf;
++	if((buf = getenv("XDG_CONFIG_HOME"))) {
++		if(config_path == NULL) {
++			config_path = malloc(strlen(buf) + strlen("/spnavrc") + 1);
++			if ( config_path != NULL) {
++				sprintf(config_path, "%s/spnavrc", buf);
++			}
++		};
++		return config_path;
++	} else {
++		if (!(buf = getenv("HOME"))) {
++			struct passwd *pw = getpwuid(getuid());
++			buf = pw->pw_dir;
++		}
++		config_path = malloc(strlen(buf) + strlen("/.config/spnavrc") + 1);
++		if ( config_path != NULL) {
++			sprintf(config_path, "%s/.config/spnavrc", buf);
++		}
++		return config_path;
++	}
++}
+ 
+ void default_cfg(struct cfg *cfg)
+ {
+diff --git a/cfgfile.h b/cfgfile.h
+index dfed8c9..5bb1b2c 100644
+--- a/cfgfile.h
++++ b/cfgfile.h
+@@ -47,6 +47,7 @@ struct cfg {
+ 	int devid[MAX_CUSTOM][2];	/* custom USB vendor/product id list */
+ };
+ 
++char* cfg_path(void);
+ void default_cfg(struct cfg *cfg);
+ int read_cfg(const char *fname, struct cfg *cfg);
+ int write_cfg(const char *fname, struct cfg *cfg);
+diff --git a/front_gtk.c b/front_gtk.c
+index e4c2cd7..6a800a0 100644
+--- a/front_gtk.c
++++ b/front_gtk.c
+@@ -28,8 +28,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #include "cmd.h"
+ #include "ui.h"
+ 
+-#define CFGFILE		"/etc/spnavrc"
+-
+ #define CHK_AXINV_TRANS_X			"axinv_trans_x"
+ #define CHK_AXINV_TRANS_Y			"axinv_trans_y"
+ #define CHK_AXINV_TRANS_Z			"axinv_trans_z"
+@@ -121,7 +119,7 @@ void frontend(int pfd)
+ 
+ 	gtk_init(&argc, 0);
+ 
+-	read_cfg(CFGFILE, &cfg);
++	read_cfg(cfg_path(), &cfg);
+ 
+ 	create_ui();
+ 
diff --git a/nixpkgs/pkgs/applications/misc/spnavcfg/configure-pidfile-path.patch b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-pidfile-path.patch
new file mode 100644
index 000000000000..a420fcbc07b8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/spnavcfg/configure-pidfile-path.patch
@@ -0,0 +1,40 @@
+diff --git a/back.c b/back.c
+index f364e31..c1810dc 100644
+--- a/back.c
++++ b/back.c
+@@ -26,7 +26,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #include "cmd.h"
+ 
+ #define CFGFILE		"/etc/spnavrc"
+-#define PIDFILE		"/var/run/spnavd.pid"
+ 
+ int get_daemon_pid(void);
+ static int update_cfg(void);
+@@ -97,11 +96,26 @@ int get_daemon_pid(void)
+ {
+ 	FILE *fp;
+ 	char buf[64];
++	char* xdg_runtime_dir;
++	char* pidfile;
+ 
+-	if(!(fp = fopen(PIDFILE, "r"))) {
++	if(!(xdg_runtime_dir = getenv("XDG_RUNTIME_DIR"))){
++		fprintf(stderr, "XDG_RUNTIME_DIR not set, can't find spacenav pid file\n");
++		return -1;
++	}
++	pidfile = malloc(strlen(xdg_runtime_dir) + strlen("/spnavd.pid") + 1);
++	if (pidfile == NULL) {
++		fprintf(stderr, "failed to allocate memory\n");
++		return -1;
++	}
++	sprintf(pidfile, "%s/spnavd.pid", xdg_runtime_dir);
++
++	if(!(fp = fopen(pidfile, "r"))) {
+ 		fprintf(stderr, "no spacenav pid file, can't find daemon\n");
++		free(pidfile);
+ 		return -1;
+ 	}
++	free(pidfile);
+ 	if(!fgets(buf, sizeof buf, fp) || !isdigit(buf[0])) {
+ 		fprintf(stderr, "corrupted pidfile, can't find the daemon\n");
+ 		fclose(fp);
diff --git a/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix b/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix
index caeaa42192de..fcd4630e8039 100644
--- a/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix
+++ b/nixpkgs/pkgs/applications/misc/spnavcfg/default.nix
@@ -11,6 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "180mkdis15gxs79rr3f7hpwa1p6v81bybw37pzzdjnmqwqrc08a0";
   };
 
+  patches = [
+    # Changes the pidfile path from /run/spnavd.pid to $XDG_RUNTIME_DIR/spnavd.pid
+    # to allow for a user service
+    ./configure-pidfile-path.patch
+    # Changes the config file path from /etc/spnavrc to $XDG_CONFIG_HOME/spnavrc or $HOME/.config/spnavrc
+    # to allow for a user service
+    ./configure-cfgfile-path.patch
+  ];
+
   postPatch = ''
     sed -i s/4775/775/ Makefile.in
   '';
@@ -18,6 +27,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ gtk2 ];
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
   meta = with lib; {
     homepage = "http://spacenav.sourceforge.net/";
     description = "Interactive configuration GUI for space navigator input devices";
diff --git a/nixpkgs/pkgs/applications/misc/stork/default.nix b/nixpkgs/pkgs/applications/misc/stork/default.nix
index 9d93c8ae435c..5f108049c359 100644
--- a/nixpkgs/pkgs/applications/misc/stork/default.nix
+++ b/nixpkgs/pkgs/applications/misc/stork/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stork";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "jameslittle230";
     repo = "stork";
     rev = "v${version}";
-    sha256 = "sha256-gPrXeS7XT38Dil/EBwmeKIJrmPlEK+hmiyHi4p28tl0=";
+    sha256 = "sha256-rox8X+lYiiCXO66JemW+R2I6y/IxdK6qpaiFXYoL6nY=";
   };
 
-  cargoSha256 = "sha256-9YKCtryb9mTPz9iWE7Iuk2SKgV0knWRbaouF+1DCjv8=";
+  cargoSha256 = "sha256-ujmBAld6DCc1l+yUu9qhRF8pS5HoIlstcdPTeTAyyXs=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/misc/sunwait/default.nix b/nixpkgs/pkgs/applications/misc/sunwait/default.nix
index c9581fe79f6c..2d1f8f46f5a6 100644
--- a/nixpkgs/pkgs/applications/misc/sunwait/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sunwait/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation {
     sha256 = "0cs8rdcnzsl10zia2k49a6c2z6gvp5rnf31sgn3hn5c7kgy7l3ax";
   };
 
+  makeFlags = [ "C=${stdenv.cc.targetPrefix}c++" ];
+
   installPhase = ''
     install -Dm755 sunwait -t $out/bin
   '';
diff --git a/nixpkgs/pkgs/applications/misc/surface-control/default.nix b/nixpkgs/pkgs/applications/misc/surface-control/default.nix
index 7904af3e7e15..d78904f59880 100644
--- a/nixpkgs/pkgs/applications/misc/surface-control/default.nix
+++ b/nixpkgs/pkgs/applications/misc/surface-control/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-SLJ4mwBafLGL5pneMTHLc4S4Tgds2xLqByWFH95TK1k=";
   };
 
-  cargoSha256 = "sha256-a+4oOkO90TObfYnq9NZsWy5RmYFYN1BKvUKxpvjiJc8=";
+  cargoSha256 = "sha256-NH33AMuwf4bOF9zZJlONVMYgrrYSBq5VQClYW/rbzsM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
index 0b97110b1dd5..387177a8c4c5 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
@@ -1,19 +1,17 @@
 { lib
 , stdenv
 , fetchurl
-, fetchsvn
 , makeWrapper
 , makeDesktopItem
-# sweethome3d 6.4.2 does not yet build with jdk 9 and later.
-# this is fixed on trunk (7699?) but let's build with jdk8 until then.
+# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later?
 , jdk8
-# it can run on the latest stable jre fine though
-, jre
+, jre8
 , ant
 , gtk3
 , gsettings-desktop-schemas
 , p7zip
 , libXxf86vm
+, unzip
 }:
 
 let
@@ -49,7 +47,7 @@ let
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so
     '';
 
-    nativeBuildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper unzip ];
     buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas ];
 
     buildPhase = ''
@@ -77,7 +75,7 @@ let
       # without it a "Profiles [GL4bc, GL3bc, GL2, GLES1] not available on device null"
       # exception is thrown on startup.
       # https://discourse.nixos.org/t/glx-not-recognised-after-mesa-update/6753
-      makeWrapper ${jre}/bin/java $out/bin/$exec \
+      makeWrapper ${jre8}/bin/java $out/bin/$exec \
         --set MESA_GL_VERSION_OVERRIDE 2.1 \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
         --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
@@ -102,14 +100,13 @@ in {
 
   application = mkSweetHome3D rec {
     pname = lib.toLower module + "-application";
-    version = "6.4.2";
+    version = "6.5.2";
     module = "SweetHome3D";
     description = "Design and visualize your future home";
     license = lib.licenses.gpl2Plus;
-    src = fetchsvn {
-      url = "https://svn.code.sf.net/p/sweethome3d/code/tags/V_" + d2u version + "/SweetHome3D/";
-      sha256 = "13rczayakwb5246hqnp8lnw61p0p7ywr2294bnlp4zwsrz1in9z4";
-      rev = "7504";
+    src = fetchurl {
+      url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
+      sha256 = "1j0xm2vmcxxjmf12k8rfnisq9hd7hqaiyxrfbrbjxis9iq3kycp3";
     };
     desktopName = "Sweet Home 3D";
     icons = {
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
index f5dbd0510a32..783ea3e79402 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
@@ -1,17 +1,17 @@
 { lib
 , stdenv
-, fetchcvs
+, fetchurl
 , makeWrapper
 , makeDesktopItem
-# sweethome3d 6.4.2 does not yet build with jdk 9 and later.
-# this is fixed on trunk (7699?) but let's build with jdk8 until then.
+# sweethome3d 6.5.2 does not yet fully build&run with jdk 9 and later?
 , jdk8
-# it can run on the latest stable jre fine though
-, jre
+, jre8
 , ant
 , gtk3
 , gsettings-desktop-schemas
-, sweethome3dApp }:
+, sweethome3dApp
+, unzip
+}:
 
 let
 
@@ -20,6 +20,14 @@ let
     + removeSuffix "libraryeditor" (toLower m)
     + "-editor";
 
+  applicationSrc = stdenv.mkDerivation {
+    name = "application-src";
+    src = sweethome3dApp.src;
+    nativeBuildInputs = [ unzip ];
+    buildPhase = "";
+    installPhase = "cp -r . $out";
+  };
+
   mkEditorProject =
   { pname, module, version, src, license, description, desktopName }:
 
@@ -35,18 +43,18 @@ let
       categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
-    nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ ant jre jdk8 gtk3 gsettings-desktop-schemas ];
+    nativeBuildInputs = [ makeWrapper unzip ];
+    buildInputs = [ ant jre8 jdk8 gtk3 gsettings-desktop-schemas ];
 
     postPatch = ''
-      sed -i -e 's,../SweetHome3D,${application.src},g' build.xml
+      sed -i -e 's,../SweetHome3D,${applicationSrc},g' build.xml
       sed -i -e 's,lib/macosx/java3d-1.6/jogl-all.jar,lib/java3d-1.6/jogl-all.jar,g' build.xml
     '';
 
     buildPhase = ''
       runHook preBuild
 
-      ant -lib ${application.src}/libtest -lib ${application.src}/lib -lib ${jdk8}/lib
+      ant -lib ${applicationSrc}/libtest -lib ${applicationSrc}/lib -lib ${jdk8}/lib
 
       runHook postBuild
     '';
@@ -56,7 +64,7 @@ let
       mkdir -p $out/share/{java,applications}
       cp ${module}-${version}.jar $out/share/java/.
       cp "${editorItem}/share/applications/"* $out/share/applications
-      makeWrapper ${jre}/bin/java $out/bin/$exec \
+      makeWrapper ${jre8}/bin/java $out/bin/$exec \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
         --add-flags "-jar $out/share/java/${module}-${version}.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
     '';
@@ -78,31 +86,27 @@ let
 in {
 
   textures-editor = mkEditorProject rec {
-    version = "1.5";
+    version = "1.7";
     module = "TexturesLibraryEditor";
     pname = module;
     description = "Easily create SH3T files and edit the properties of the texture images it contain";
     license = lib.licenses.gpl2Plus;
-    src = fetchcvs {
-      cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
-      sha256 = "15wxdns3hc8yq362x0rj53bcxran2iynxznfcb9js85psd94zq7h";
-      module = module;
-      tag = "V_" + d2u version;
+    src = fetchurl {
+      url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
+      sha256 = "03vb9y645qzffxxdhgbjb0d98k3lafxckg2vh2s86j62b6357d0h";
     };
     desktopName = "Sweet Home 3D - Textures Library Editor";
   };
 
   furniture-editor = mkEditorProject rec {
-    version = "1.19";
+    version = "1.27";
     module = "FurnitureLibraryEditor";
     pname = module;
     description = "Quickly create SH3F files and edit the properties of the 3D models it contain";
     license = lib.licenses.gpl2;
-    src = fetchcvs {
-      cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
-      sha256 = "0rr4nqil1mngak3ds5vz7f1whrgcgzpk6fb0qcr5ljms0jx0ylvs";
-      module = module;
-      tag = "V_" + d2u version;
+    src = fetchurl {
+      url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
+      sha256 = "1zxbcn9awgax8lalzkc05f5yfwbgnrayc17fkyv5i19j4qb3r2a0";
     };
     desktopName = "Sweet Home 3D - Furniture Library Editor";
   };
diff --git a/nixpkgs/pkgs/applications/misc/synergy/default.nix b/nixpkgs/pkgs/applications/misc/synergy/default.nix
index 3b1d04f3d38b..8d3cc8c30966 100644
--- a/nixpkgs/pkgs/applications/misc/synergy/default.nix
+++ b/nixpkgs/pkgs/applications/misc/synergy/default.nix
@@ -5,41 +5,21 @@
 
 stdenv.mkDerivation rec {
   pname = "synergy";
-  version = "1.11.1";
+  version = "1.13.1.41";
 
   src = fetchFromGitHub {
     owner = "symless";
     repo = "synergy-core";
     rev = "${version}-stable";
-    sha256 = "1jk60xw4h6s5crha89wk4y8rrf1f3bixgh5mzh3cq3xyrkba41gh";
+    fetchSubmodules = true;
+    sha256 = "1phg0szc9g018zxs5wbys4drzq1cdhyzajfg45l6a3fmi6qdi1kw";
   };
 
-  patches = [
-    ./build-tests.patch
-    (fetchpatch {
-      name = "CVE-2020-15117.patch";
-      url = "https://github.com/symless/synergy-core/commit/"
-          + "0a97c2be0da2d0df25cb86dfd642429e7a8bea39.patch";
-      sha256 = "03q8m5n50fms7fjfjgmqrgy9mrxwi9kkz3f3vlrs2x5h21dl6bmj";
-    })
-  ] ++ lib.optional stdenv.isDarwin ./macos_build_fix.patch;
-
-  # Since the included gtest and gmock don't support clang and the
-  # segfault when built with gcc9, we replace it with 1.10.0 for
-  # synergy-1.11.0. This should become unnecessary when upstream
-  # updates these dependencies.
-  googletest = fetchFromGitHub {
-    owner = "google";
-    repo = "googletest";
-    rev = "release-1.10.0";
-    sha256 = "1zbmab9295scgg4z2vclgfgjchfjailjnvzc6f5x9jvlsdi3dpwz";
-  };
+  patches = lib.optional stdenv.isDarwin ./macos_build_fix.patch;
 
   postPatch = ''
-    rm -r ext/*
-    cp -r ${googletest}/googlemock ext/gmock/
-    cp -r ${googletest}/googletest ext/gtest/
-    chmod -R +w ext/
+    substituteInPlace src/gui/src/SslCertificate.cpp \
+      --replace 'kUnixOpenSslCommand[] = "openssl";' 'kUnixOpenSslCommand[] = "${openssl}/bin/openssl";'
   '';
 
   cmakeFlags = lib.optional (!withGUI) "-DSYNERGY_BUILD_LEGACY_GUI=OFF";
@@ -63,7 +43,7 @@ stdenv.mkDerivation rec {
     cp bin/{synergyc,synergys,synergyd,syntool} $out/bin/
   '' + lib.optionalString withGUI ''
     cp bin/synergy $out/bin/
-    wrapQtApp $out/bin/synergy --prefix PATH : ${lib.makeBinPath [ openssl ]}
+    wrapQtApp $out/bin/synergy
   '' + lib.optionalString stdenv.isLinux ''
     mkdir -p $out/share/icons/hicolor/scalable/apps
     cp ../res/synergy.svg $out/share/icons/hicolor/scalable/apps/
@@ -80,9 +60,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Share one mouse and keyboard between multiple computers";
-    homepage = "http://synergy-project.org/";
+    homepage = "https://synergy-project.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ talyz ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch b/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
index 2ce277d261b1..50087a2c4b4b 100644
--- a/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
+++ b/nixpkgs/pkgs/applications/misc/synergy/macos_build_fix.patch
@@ -1,17 +1,8 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a2297311..25a51f56 100644
+index c1e78d1d..13639ba1 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -138,7 +138,7 @@ if (UNIX)
- 
- 
-     if (APPLE)
--        set (CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS} -DGTEST_USE_OWN_TR1_TUPLE=1")
-+        set (CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS}")
- 
-         find_library (lib_ScreenSaver ScreenSaver)
-         find_library (lib_IOKit IOKit)
-@@ -292,14 +292,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+@@ -328,14 +328,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
          ${OPENSSL_ROOT}/lib/libssl.lib
          ${OPENSSL_ROOT}/lib/libcrypto.lib
      )
@@ -22,8 +13,8 @@ index a2297311..25a51f56 100644
 -        ${OPENSSL_ROOT}/lib/libssl.a
 -        ${OPENSSL_ROOT}/lib/libcrypto.a
 -    )
--elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+-elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|.*BSD|DragonFly")
++elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux|Darwin|.*BSD|DragonFly")
      set (OPENSSL_LIBS ssl crypto)
  else()
      message (FATAL_ERROR "Couldn't find OpenSSL")
diff --git a/nixpkgs/pkgs/applications/misc/taizen/default.nix b/nixpkgs/pkgs/applications/misc/taizen/default.nix
index c480c7a8e2f1..7974622be7da 100644
--- a/nixpkgs/pkgs/applications/misc/taizen/default.nix
+++ b/nixpkgs/pkgs/applications/misc/taizen/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ ncurses openssl ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "0chrgwm97y1a3gj218x25yqk1y1h74a6gzyxjdm023msvs58nkni";
+  cargoSha256 = "1yqy5v02a4qshgb7k8rnn408k3n6qx3jc8zziwvv7im61n9sjynf";
 
   meta = with lib; {
     homepage = "https://crates.io/crates/taizen";
diff --git a/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix b/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
index 9c1e778bdf3e..5c32d8622e33 100644
--- a/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/taskwarrior-tui/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   # Because there's a test that requires terminal access
   doCheck = false;
 
-  cargoSha256 = "0xblxsp7jgqbb3kr5k7yy6ziz18a8wlkrhls0vz9ak2n0ngddg3r";
+  cargoSha256 = "1c9vw1n6h7irwim1zf3mr0g520jnlvfqdy7y9v9g9xpkvbjr7ich";
 
   meta = with lib; {
     description = "A terminal user interface for taskwarrior ";
diff --git a/nixpkgs/pkgs/applications/misc/tellico/default.nix b/nixpkgs/pkgs/applications/misc/tellico/default.nix
index 65cd003253dc..10d8dc026141 100644
--- a/nixpkgs/pkgs/applications/misc/tellico/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tellico/default.nix
@@ -24,15 +24,15 @@
 
 mkDerivation rec {
   pname = "tellico";
-  version = "3.4";
+  version = "3.4.1";
 
   src = fetchurl {
-    # version 3.3.0 just uses 3.3 in its name
+    # version 3.3.0 just uses 3.3 in its file name
     urls = [
       "https://tellico-project.org/files/tellico-${version}.tar.xz"
       "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz"
     ];
-    sha256 = "sha256-YXMJrAkfehe3ox4WZ19igyFbXwtjO5wxN3bmgP01jPs=";
+    sha256 = "sha256-+FFN6sO0mvlage8JazyrqNZk4onejz1XJPiOK3gnhWE=";
   };
 
   nativeBuildInputs = [
@@ -63,7 +63,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Collection management software, free and simple";
     homepage = "https://tellico-project.org/";
-    license = with licenses; [ gpl2 gpl3 ];
+    license = with licenses; [ gpl2Only gpl3Only lgpl2Only ];
     maintainers = with maintainers; [ numkem ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix b/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix
index 7a19b2923da2..48ae142c1aef 100644
--- a/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/terminal-typeracer/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "RjGHY6KN6thxbg9W5FRwaAmUeD+5/WCeMCvzFHqZ+J4=";
   };
 
-  cargoSha256 = "VSwku0rtQECirCHx2CXe72gCA+p3DdPC4YYwEYu8WfM=";
+  cargoSha256 = "sha256-A7O/e8PAcW36i8pT71SkWoWDIiMuEhSS9SmASNzNCjk=";
 
   buildInputs = [ openssl sqlite ] ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/misc/tickrs/default.nix b/nixpkgs/pkgs/applications/misc/tickrs/default.nix
index 8866e2a07c2e..e6476cb42212 100644
--- a/nixpkgs/pkgs/applications/misc/tickrs/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tickrs/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-OOsBo+NCfn++2XyfQVoeEPcbSv645Ng7g9s4W7X2xg4=";
   };
 
-  cargoSha256 = "sha256-PW8f4PZGctHd8YBBRvmueR8UgtyDQZpqf2lTU1t68iM=";
+  cargoSha256 = "sha256-HAkJKqoz4vrY4mGFSz6sylV6DdrjWvPfwb4BiLWEyKY=";
 
   nativeBuildInputs = [ perl ];
 
diff --git a/nixpkgs/pkgs/applications/misc/timew-sync-server/default.nix b/nixpkgs/pkgs/applications/misc/timew-sync-server/default.nix
new file mode 100644
index 000000000000..86a428df38f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/timew-sync-server/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "timew-sync-server";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "timewarrior-synchronize";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "041j618c2bcryhgi2j2w5zlfcxcklgbir2xj3px4w7jxbbg6p68n";
+  };
+
+  vendorSha256 = "0wbd4cpswgbr839sk8qwly8gjq4lqmq448m624akll192mzm9wj7";
+
+  meta = with lib; {
+    homepage = "https://github.com/timewarrior-synchronize/timew-sync-server";
+    description = "Server component of timewarrior synchronization application";
+    license = licenses.mit;
+    maintainers = [ maintainers.joachimschmidt557 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/timewarrior/default.nix b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
index 41dc179efe09..adff6741d31f 100644
--- a/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
+++ b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
@@ -1,18 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake, asciidoctor }:
 
 stdenv.mkDerivation rec {
   pname = "timewarrior";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "GothenburgBitFactory";
     repo = "timewarrior";
     rev = "v${version}";
-    sha256 = "0qvhpva0hmhybn0c2aajndw5vnxar1jw4pjjajd2k2cr6vax29dw";
+    sha256 = "00ydikzmxym5jhv6w1ii12a6zw5ighddbzxsw03xg8yabzzfnvzw";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake asciidoctor ];
+
+  dontUseCmakeBuildDir = true;
 
   meta = with lib; {
     description = "A command-line time tracker";
diff --git a/nixpkgs/pkgs/applications/misc/tint2/default.nix b/nixpkgs/pkgs/applications/misc/tint2/default.nix
index c78fe9afeda4..847b95c7874f 100644
--- a/nixpkgs/pkgs/applications/misc/tint2/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tint2/default.nix
@@ -8,7 +8,7 @@
 , pcre
 , glib
 , imlib2
-, gtk2
+, gtk3
 , libXinerama
 , libXrender
 , libXcomposite
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tint2";
-  version = "16.7";
+  version = "17.0";
 
   src = fetchFromGitLab {
     owner = "o9000";
     repo = "tint2";
     rev = version;
-    sha256 = "1937z0kixb6r82izj12jy4x8z4n96dfq1hx05vcsvsg1sx3wxgb0";
+    sha256 = "1gy5kki7vqrj43yl47cw5jqwmj45f7a8ppabd5q5p1gh91j7klgm";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     pcre
     glib
     imlib2
-    gtk2
+    gtk3
     libXinerama
     libXrender
     libXcomposite
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.com/o9000/tint2";
     description = "Simple panel/taskbar unintrusive and light (memory, cpu, aestetic)";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/tiramisu/default.nix b/nixpkgs/pkgs/applications/misc/tiramisu/default.nix
index 79286ff10c3c..f3743d33c364 100644
--- a/nixpkgs/pkgs/applications/misc/tiramisu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tiramisu/default.nix
@@ -1,20 +1,16 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, glib }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "tiramisu";
-  version = "1.0";
+  version = "unstable-2021-05-20";
 
   src = fetchFromGitHub {
     owner = "Sweets";
-    repo = pname;
-    rev = version;
-    sha256 = "0aw17riwgrhsmcndzh7sw2zw8xvn3d203c2gcrqi9nk5pa7fwp9m";
+    repo = "tiramisu";
+    rev = "e53833d0b5b0ae41ceb7dc434d8e25818fe62291";
+    sha256 = "sha256-F4oaTOAQQfOkEXeBVbGH+0CHc9v9Ac08GyzHliOdAfc=";
   };
 
-  postPatch = ''
-    sed -i 's/printf(element_delimiter)/printf("%s", element_delimiter)/' src/output.c
-  '';
-
   buildInputs = [ glib ];
 
   nativeBuildInputs = [ pkg-config ];
@@ -24,13 +20,13 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Desktop notifications, the UNIX way";
     longDescription = ''
-    tiramisu is a notification daemon based on dunst that outputs notifications
-    to STDOUT in order to allow the user to process notifications any way they
-    prefer.
+      tiramisu is a notification daemon based on dunst that outputs notifications
+      to STDOUT in order to allow the user to process notifications any way they
+      prefer.
     '';
     homepage = "https://github.com/Sweets/tiramisu";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ wishfort36 ];
+    maintainers = with maintainers; [ wishfort36 fortuneteller2k ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/todiff/default.nix b/nixpkgs/pkgs/applications/misc/todiff/default.nix
index 069a63fb66ba..752ab35461ea 100644
--- a/nixpkgs/pkgs/applications/misc/todiff/default.nix
+++ b/nixpkgs/pkgs/applications/misc/todiff/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1y0v8nkaqb8kn61xwarpbyrq019gxx1f5f5p1hzw73nqxadc1rcm";
   };
 
-  cargoSha256 = "1vyc230a2b0dry2057mkdkrjb7s9d0p43fnz4q67aqrpyr4jxwx2";
+  cargoSha256 = "0vrn1vc3rwabv6l2r1qb7mkcxbp75q79bfl3rxhyi51ra3ij507r";
 
   checkPhase = "cargo test --features=integration_tests";
 
diff --git a/nixpkgs/pkgs/applications/misc/tootle/default.nix b/nixpkgs/pkgs/applications/misc/tootle/default.nix
index 0f6747d69f83..63ac88ecac9d 100644
--- a/nixpkgs/pkgs/applications/misc/tootle/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tootle/default.nix
@@ -9,7 +9,7 @@
 , python3
 , libgee
 , gsettings-desktop-schemas
-, gnome3
+, gnome
 , pantheon
 , wrapGAppsHook
 , gtk3
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     glib-networking
-    gnome3.libsoup
+    gnome.libsoup
     gsettings-desktop-schemas
     gtk3
     json-glib
diff --git a/nixpkgs/pkgs/applications/misc/tsukae/default.nix b/nixpkgs/pkgs/applications/misc/tsukae/default.nix
new file mode 100644
index 000000000000..f4ebaa41efb0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tsukae/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "tsukae";
+  version = "unstable-2021-04-19";
+
+  src = fetchFromGitHub {
+    owner = "irevenko";
+    repo = pname;
+    rev = "8111dddd67e4b4f83ae4bca7d7305f6dc64e77cd";
+    sha256 = "sha256-1y/WYLW6/HMGmuaX2wOlQbwYn0LcgQCMb4qw8BtCgxQ=";
+  };
+
+  vendorSha256 = "sha256-mVhc9roT7rm9WMwck7jobjn9ykKQRgWJAqM75AmhMN0=";
+
+  runVend = true;
+
+  meta = with lib; {
+    description = "Show off your most used shell commands.";
+    homepage = "https://github.com/irevenko/tsukae";
+    license = licenses.mit;
+    mainProgram = pname;
+    maintainers = with maintainers; [ l3af ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/tuir/default.nix b/nixpkgs/pkgs/applications/misc/tuir/default.nix
index c086cdb9503b..fb1a85b1e491 100644
--- a/nixpkgs/pkgs/applications/misc/tuir/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tuir/default.nix
@@ -21,7 +21,7 @@ buildPythonApplication rec {
 
   checkInputs = [ coverage coveralls docopt mock pylint pytest vcrpy ];
 
-  propagatedBuildInputs = [ beautifulsoup4 decorator kitchen requests ];
+  propagatedBuildInputs = [ beautifulsoup4 decorator kitchen requests six ];
 
   meta = with lib; {
     description = "Browse Reddit from your Terminal (fork of rtv)";
diff --git a/nixpkgs/pkgs/applications/misc/ulauncher/default.nix b/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
index 989649ec4146..ebfaaa1db51d 100644
--- a/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
@@ -4,7 +4,7 @@
 , python3Packages
 , gdk-pixbuf
 , glib
-, gnome3
+, gnome
 , gobject-introspection
 , gtk3
 , wrapGAppsHook
@@ -14,7 +14,7 @@
 , libappindicator
 , intltool
 , wmctrl
-, xvfb_run
+, xvfb-run
 , librsvg
 }:
 
@@ -38,7 +38,7 @@ python3Packages.buildPythonApplication rec {
   buildInputs = [
     gdk-pixbuf
     glib
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gobject-introspection
     gtk3
     keybinder3
@@ -66,7 +66,7 @@ python3Packages.buildPythonApplication rec {
     mock
     pytest
     pytest-mock
-    xvfb_run
+    xvfb-run
   ];
 
   patches = [
@@ -115,6 +115,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://ulauncher.io/";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ aaronjanse worldofpeace ];
+    maintainers = with maintainers; [ aaronjanse ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/upwork/default.nix b/nixpkgs/pkgs/applications/misc/upwork/default.nix
index 9b8821b5115e..976aae781710 100644
--- a/nixpkgs/pkgs/applications/misc/upwork/default.nix
+++ b/nixpkgs/pkgs/applications/misc/upwork/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook
-, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
+, alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid
 , libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb
 , pango, systemd, libXScrnSaver, libcxx, libpulseaudio }:
 
 stdenv.mkDerivation rec {
   pname = "upwork";
-  version = "5.5.0.1";
+  version = "5.5.0.11";
 
   src = fetchurl {
-    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_5_0_1_291c031686ed44ff/${pname}_${version}_amd64.deb";
-    sha256 = "49192ecfb10929b5b51cf8899186059649c894109ec172695cd7cfaa50923f6a";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_5_0_11_61df9c99b6df4e7b/${pname}_${version}_amd64.deb";
+    sha256 = "db83d5fb1b5383992c6156284f6f3cd3a6b23f727ce324ba90c82817553fb4f7";
   };
 
   dontWrapGApps = true;
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libcxx systemd libpulseaudio
-    stdenv.cc.cc alsaLib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
+    stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
     gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
     libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
     libXtst nspr nss libxcb pango systemd libXScrnSaver
diff --git a/nixpkgs/pkgs/applications/misc/visidata/default.nix b/nixpkgs/pkgs/applications/misc/visidata/default.nix
index fc609b280f99..ad49a1b291e2 100644
--- a/nixpkgs/pkgs/applications/misc/visidata/default.nix
+++ b/nixpkgs/pkgs/applications/misc/visidata/default.nix
@@ -15,13 +15,13 @@
 }:
 buildPythonApplication rec {
   pname = "visidata";
-  version = "2.2.1";
+  version = "2.4";
 
   src = fetchFromGitHub {
     owner = "saulpw";
     repo = "visidata";
     rev = "v${version}";
-    sha256 = "1gkvnywjg0n3n7d855ivclsj3d8mzihhkgv9a18srcszkmyix903";
+    sha256 = "0mvf2603d9b0s6rh7sl7mg4ipbh0nk05xgh1078mwvx31qjsmq1i";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/xmrig/default.nix b/nixpkgs/pkgs/applications/misc/xmrig/default.nix
index 35a19cb3063e..4ac463068678 100644
--- a/nixpkgs/pkgs/applications/misc/xmrig/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xmrig/default.nix
@@ -4,22 +4,23 @@
 
 stdenv.mkDerivation rec {
   pname = "xmrig";
-  version = "6.6.1";
+  version = "6.12.2";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig";
     rev = "v${version}";
-    sha256 = "03phq1c6fylvkg5x7l0bskspr9jdfx61jy67yx2lxhymqgpbf64z";
+    sha256 = "1gjwh509cxs8vqz72v97cir0aazcrd9y9l0k1q5ywbl5l3yf6ryf";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ libuv libmicrohttpd openssl hwloc ];
 
+  inherit donateLevel;
+
+  patches = [ ./donate-level.patch ];
   postPatch = ''
-    substituteInPlace src/donate.h \
-      --replace "kDefaultDonateLevel = 5;" "kDefaultDonateLevel = ${toString donateLevel};" \
-      --replace "kMinimumDonateLevel = 1;" "kMinimumDonateLevel = ${toString donateLevel};"
+    substituteAllInPlace src/donate.h
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/xmrig/donate-level.patch b/nixpkgs/pkgs/applications/misc/xmrig/donate-level.patch
new file mode 100644
index 000000000000..3aaae3e67763
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xmrig/donate-level.patch
@@ -0,0 +1,12 @@
+diff --git a/src/donate.h b/src/donate.h
+--- a/src/donate.h
++++ b/src/donate.h
+@@ -46,6 +46,6 @@
+  */
+-constexpr const int kDefaultDonateLevel = 1;
+-constexpr const int kMinimumDonateLevel = 1;
++constexpr const int kDefaultDonateLevel = @donateLevel@;
++constexpr const int kMinimumDonateLevel = @donateLevel@;
+ 
+ 
+ #endif /* XMRIG_DONATE_H */
diff --git a/nixpkgs/pkgs/applications/misc/xneur/default.nix b/nixpkgs/pkgs/applications/misc/xneur/default.nix
index bb4e1727f69f..2d8af0465a77 100644
--- a/nixpkgs/pkgs/applications/misc/xneur/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xneur/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, xorg, pcre, gst_all_1, glib
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, intltool, xorg, pcre, gst_all_1, glib
 , xosd, libnotify, enchant, wrapGAppsHook, gdk-pixbuf }:
 
 stdenv.mkDerivation {
@@ -21,6 +21,14 @@ stdenv.mkDerivation {
     gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
   ];
 
+  patches = [
+    (fetchpatch {
+      name = "gcc-10.patch";
+      url = "https://salsa.debian.org/debian/xneur/-/raw/da38ad9c8e1bf4e349f5ed4ad909f810fdea44c9/debian/patches/gcc-10.patch";
+      sha256 = "0pc17a4sdrnrc4z7gz28889b9ywqsm5mzm6m41h67j2f5zh9k3fy";
+    })
+  ];
+
   postPatch = ''
     sed -e 's@for xosd_dir in@for xosd_dir in ${xosd} @' -i configure
   '';
diff --git a/nixpkgs/pkgs/applications/misc/xplr/default.nix b/nixpkgs/pkgs/applications/misc/xplr/default.nix
index 46dfe713de11..fbd48287e32a 100644
--- a/nixpkgs/pkgs/applications/misc/xplr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xplr/default.nix
@@ -1,17 +1,17 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, stdenv, rustPlatform, fetchCrate, libiconv }:
 
 rustPlatform.buildRustPackage rec {
-  name = "xplr";
-  version = "0.5.7";
+  pname = "xplr";
+  version = "0.14.0";
 
-  src = fetchFromGitHub {
-    owner = "sayanarijit";
-    repo = name;
-    rev = "v${version}";
-    sha256 = "1j417g0isy3cpxdb2wrvrvypnx99qffi83s4a98791wyi8yqiw6b";
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "1cyybqb91n91h6nig7rxxxw9c7krz80jdfl25bdr7mlbzymssn0q";
   };
 
-  cargoSha256 = "0kpwhk2f4czhilcnfqkw5hw2vxvldxqg491xkkgxjkph3w4qv3ji";
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
+
+  cargoSha256 = "1bj1rgsmkbby4ma325fhpb911bwabhd5bihyv9j0dfvgm1ffdm8a";
 
   meta = with lib; {
     description = "A hackable, minimal, fast TUI file explorer";
diff --git a/nixpkgs/pkgs/applications/misc/yambar/default.nix b/nixpkgs/pkgs/applications/misc/yambar/default.nix
index 47d02a0cec93..375b802d5c16 100644
--- a/nixpkgs/pkgs/applications/misc/yambar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/yambar/default.nix
@@ -5,7 +5,7 @@
 , meson
 , ninja
 , scdoc
-, alsaLib
+, alsa-lib
 , fcft
 , json_c
 , libmpdclient
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config meson ninja scdoc ];
   buildInputs = [
-    alsaLib
+    alsa-lib
     fcft
     json_c
     libmpdclient
diff --git a/nixpkgs/pkgs/applications/misc/yokadi/default.nix b/nixpkgs/pkgs/applications/misc/yokadi/default.nix
index e31a69963ff0..20defe419880 100644
--- a/nixpkgs/pkgs/applications/misc/yokadi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/yokadi/default.nix
@@ -24,6 +24,6 @@ buildPythonApplication rec {
     description = "A command line oriented, sqlite powered, todo-list";
     homepage = "https://yokadi.github.io/index.html";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers.nipav ];
+    maintainers = [ maintainers.nkpvk ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
index 5690dc0db104..0b6a57492c5c 100644
--- a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ] ++ optional stdenv.isLinux libseccomp
     ++ optional stdenv.isDarwin gtk-mac-integration;
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
 
   meta = {
     homepage = "https://git.pwmt.org/pwmt/zathura";
diff --git a/nixpkgs/pkgs/applications/misc/zettlr/default.nix b/nixpkgs/pkgs/applications/misc/zettlr/default.nix
index 3d7f56291233..77ff11b98622 100644
--- a/nixpkgs/pkgs/applications/misc/zettlr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zettlr/default.nix
@@ -10,11 +10,11 @@
 # Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
 let
   pname = "zettlr";
-  version = "1.8.7";
+  version = "1.8.9";
   name = "${pname}-${version}";
   src = fetchurl {
     url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
-    sha256 = "0zbmlk5qk92b3zycs0bmdwgc8fn4a4dv1yvq9q8q2wxz4ammx6c0";
+    sha256 = "sha256-1cU9HdPXrJ4ibSjOitO8iJfMIaGub/jjlb2lssYFfcU=";
   };
   appimageContents = appimageTools.extractType2 {
     inherit name src;
diff --git a/nixpkgs/pkgs/applications/misc/zktree/default.nix b/nixpkgs/pkgs/applications/misc/zktree/default.nix
index fe7b42dcc94d..86e12712340a 100644
--- a/nixpkgs/pkgs/applications/misc/zktree/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zktree/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "11w86k1w5zryiq6bqr98pjhffd3l76377yz53qx0n76vc5374fk9";
   };
 
-  cargoSha256 = "1d35jrxvhf7m04s1kh0yrfhy9j9i6qzwbw2mwapgsrcsr5vhxasn";
+  cargoSha256 = "18v7agm39acnblc703278cn8py5971hm8p5kxmznpw119fjp36s5";
 
   meta = with lib; {
     description = "A small tool to display Znodes in Zookeeper in tree structure.";
diff --git a/nixpkgs/pkgs/applications/networking/3proxy/default.nix b/nixpkgs/pkgs/applications/networking/3proxy/default.nix
index 6636691468ea..f9221d06d022 100644
--- a/nixpkgs/pkgs/applications/networking/3proxy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/3proxy/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, coreutils }:
+{ lib, stdenv, fetchFromGitHub, coreutils, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "3proxy";
@@ -17,6 +17,10 @@ stdenv.mkDerivation rec {
     "DESTDIR=${placeholder "out"}"
   ];
 
+  passthru.tests = {
+    smoke-test = nixosTests._3proxy;
+  };
+
   meta = with lib; {
     description = "Tiny free proxy server";
     homepage = "https://github.com/z3APA3A/3proxy";
diff --git a/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
index f6006468d85b..2f52a432f4be 100644
--- a/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib
+{ alsa-lib
 , at-spi2-atk
 , at-spi2-core
 , atk
@@ -33,6 +33,7 @@
 , libXrandr
 , libXrender
 , libXtst
+, libxkbcommon
 , libsecret
 , libuuid
 , libxcb
@@ -54,7 +55,7 @@
 with lib;
 let
   deps = [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     at-spi2-core
     atk
@@ -81,6 +82,7 @@ let
     libXrandr
     libXrender
     libXtst
+    libxkbcommon
     libsecret
     libuuid
     libxcb
@@ -97,11 +99,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
-  version = "5.3.3";
+  version = "5.4.0";
 
   src = fetchurl {
     url = "https://bin.appgate-sdp.com/${lib.versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
-    sha256 = "1854m93mr2crg68zhh1pgwwis0dqdv0778wqrb8dz9sdz940rza8";
+    sha256 = "sha256-2DzZ5JnFGBeaHtDf7CAXb/qv6kVI+sYMW5Nc25E3eNA=";
   };
 
   dontConfigure = true;
@@ -170,9 +172,14 @@ stdenv.mkDerivation rec {
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "$ORIGIN:$out/opt/appgate/service/:$out/opt/appgate/:${rpath}" $binary
     done
 
+    # fail if there are missing dependencies
+    ldd $out/opt/appgate/appgate | grep -i 'not found' && exit 1
+    ldd $out/opt/appgate/service/appgateservice.bin | grep -i 'not found' && exit 1
+    ldd $out/opt/appgate/appgate-driver | grep -i 'not found' && exit 1
+
     wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute2 networkmanager dnsmasq ]}
     wrapProgram $out/opt/appgate/linux/set_dns --set PYTHONPATH $PYTHONPATH
-    wrapProgram $out/bin/appgate --prefix PATH : ${xdg-utils}/bin
+    wrapProgram $out/bin/appgate --prefix PATH : ${lib.makeBinPath [ xdg-utils ]}
   '';
   meta = with lib; {
     description = "Appgate SDP (Software Defined Perimeter) desktop client";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix b/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix
index 831fabf2deb1..7fb2703199a7 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix
@@ -1,6 +1,6 @@
 { lib
 , mkDerivation
-, fetchFromGitLab
+, fetchurl
 , cmake
 , corrosion
 , extra-cmake-modules
@@ -12,6 +12,7 @@
 , knotifications
 , kpurpose
 , kwindowsystem
+, qtfeedback
 , qtquickcontrols2
 , qtwebengine
 , rustPlatform
@@ -19,20 +20,17 @@
 
 mkDerivation rec {
   pname = "angelfish";
-  version = "1.8.0";
+  version = "21.05";
 
-  src = fetchFromGitLab {
-    domain = "invent.kde.org";
-    owner = "plasma-mobile";
-    repo = "angelfish";
-    rev = "v${version}";
-    sha256 = "0pj2kw7lmxh7diwdcmk24qxqslavhvf23r2i6h549gbllbzk219f";
+  src = fetchurl {
+    url = "mirror://kde/stable/plasma-mobile/${version}/angelfish-${version}.tar.xz";
+    sha256 = "11jd5dwy0xa7kh5z5rc29xy3wfn20hm31908zjax4x83qqjrm075";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    sha256 = "0cyrmhlg0kjr14842ckbjdljc2zc28al0y9i8w5l0qzr18krgc0m";
+    sha256 = "05xvh7yxndqm2bqpm06jsxiv4v02mqxaazll8wllp367qapvr21g";
   };
 
   nativeBuildInputs = [
@@ -58,6 +56,7 @@ mkDerivation rec {
     knotifications
     kpurpose
     kwindowsystem
+    qtfeedback
     qtquickcontrols2
     qtwebengine
   ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
index 6702fdaf7a96..b0ef9d890d53 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k";
   };
 
-  cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
+  cargoSha256 = "0b8wf12bjsy334g04sv3knw8f177xsmh7lrkyvx9gnn0fax0lmnr";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
index 1138c1e292ec..7d666f5ba9f0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl
 , dpkg
-, alsaLib
+, alsa-lib
 , at-spi2-atk
 , at-spi2-core
 , atk
@@ -13,7 +13,7 @@
 , gdk-pixbuf
 , glib
 , gnome2
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 , gtk3
 , libpulseaudio
@@ -46,7 +46,7 @@
 let
 
 rpath = lib.makeLibraryPath [
-  alsaLib
+  alsa-lib
   at-spi2-atk
   at-spi2-core
   atk
@@ -90,11 +90,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.23.71";
+  version = "1.25.68";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "17ajn1vx5xwlp2yvjf1hr8vw3b7hiribv5gaipyb37zrhkff241h";
+    sha256 = "OBf42L6pctflNLjtcbnw2wKo7TisRSMF3SriDPFlB6I=";
   };
 
   dontConfigure = true;
@@ -104,11 +104,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ dpkg wrapGAppsHook ];
 
-  buildInputs = [ glib gsettings-desktop-schemas gnome3.adwaita-icon-theme ];
+  buildInputs = [ glib gsettings-desktop-schemas gnome.adwaita-icon-theme ];
 
   unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
 
   installPhase = ''
+      runHook preInstall
+
       mkdir -p $out $out/bin
 
       cp -R usr/share $out
@@ -148,6 +150,8 @@ stdenv.mkDerivation rec {
       # Replace xdg-settings and xdg-mime
       ln -sf ${xdg-utils}/bin/xdg-settings $out/opt/brave.com/brave/xdg-settings
       ln -sf ${xdg-utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime
+
+      runHook postInstall
   '';
 
   installCheckPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
index 259a8780901e..ae8b7c723ecc 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0rwg1w7srjwa23mkypl8zk6674nhph4xsc6nc01f6g5k959szylr";
   };
 
-  cargoSha256 = "0yn2kfiaz6d8wc8rdqli2pwffp5vb1v3zi7520ysrd5b6fc2csf2";
+  cargoSha256 = "0dm3walwi3vzpk69l7nz6yl6w49676x8pjnigpn67q4bn7lpaqb1";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
index c4a5508b7537..cc443764447b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -62,6 +62,8 @@ mkChromiumDerivation (base: rec {
       -e '/\[Desktop Entry\]/a\' \
       -e 'StartupWMClass=chromium-browser' \
       $out/share/applications/chromium-browser.desktop
+  '' + lib.optionalString (channel == "dev") ''
+    cp -v "$buildPath/crashpad_handler" "$libExecPath/"
   '';
 
   passthru = { inherit sandboxExecutableName; };
@@ -85,6 +87,7 @@ mkChromiumDerivation (base: rec {
       else [ primeos thefloweringash bendlas ];
     license = if enableWideVine then licenses.unfree else licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "chromium";
     hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium")
       then ["aarch64-linux" "x86_64-linux"]
       else [];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
index b08ff1ac7c14..156932aa13f1 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -7,9 +7,9 @@
 , xdg-utils, yasm, nasm, minizip, libwebp
 , libusb1, pciutils, nss, re2
 
-, python2Packages, python3Packages, perl, pkg-config
+, python2, python3, perl, pkg-config
 , nspr, systemd, libkrb5
-, util-linux, alsaLib
+, util-linux, alsa-lib
 , bison, gperf
 , glib, gtk3, dbus-glib
 , glibc
@@ -20,12 +20,13 @@
 , pipewire
 , libva
 , libdrm, wayland, mesa, libxkbcommon # Ozone
+, curl
 
 # optional dependencies
 , libgcrypt ? null # gnomeSupport || cupsSupport
 
 # package customization
-, gnomeSupport ? false, gnome ? null
+, gnomeSupport ? false, gnome2 ? null
 , gnomeKeyringSupport ? false, libgnome-keyring3 ? null
 , proprietaryCodecs ? true
 , cupsSupport ? true
@@ -42,24 +43,20 @@ with lib;
 
 let
   jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  # TODO: Python 3 support is incomplete and "python3 ../../build/util/python2_action.py"
-  # currently doesn't work due to mixed Python 2/3 dependencies:
-  pythonPackages = if chromiumVersionAtLeast "93"
-    then python3Packages
-    else python2Packages;
-  forcePython3Patch = (githubPatch
-    # Reland #8 of "Force Python 3 to be used in build."":
-    "a2d3c362802d9e6b62f895fcda75a3695b77b1b8"
-    "1r9spr2wmjk9x9l3m1gzn6692mlvbxdz0r5hlr5rfwiwr900rxi2"
-  );
+  python2WithPackages = python2.withPackages(ps: with ps; [
+    ply jinja2 setuptools
+  ]);
+  python3WithPackages = python3.withPackages(ps: with ps; [
+    ply jinja2 setuptools
+  ]);
 
   # The additional attributes for creating derivations based on the chromium
   # source tree.
   extraAttrs = buildFun base;
 
-  githubPatch = commit: sha256: fetchpatch {
+  githubPatch = { commit, sha256, revert ? false }: fetchpatch {
     url = "https://github.com/chromium/chromium/commit/${commit}.patch";
-    inherit sha256;
+    inherit sha256 revert;
   };
 
   mkGnFlags =
@@ -112,10 +109,8 @@ let
 
   warnObsoleteVersionConditional = min-version: result:
     let ungoogled-version = (importJSON ./upstream-info.json).ungoogled-chromium.version;
-    in if versionAtLeast ungoogled-version min-version
-       then warn "chromium: ungoogled version ${ungoogled-version} is newer than a conditional bounded at ${min-version}. You can safely delete it."
-            result
-       else result;
+    in warnIf (versionAtLeast ungoogled-version min-version) "chromium: ungoogled version ${ungoogled-version} is newer than a conditional bounded at ${min-version}. You can safely delete it."
+      result;
   chromiumVersionAtLeast = min-version:
     let result = versionAtLeast upstream-info.version min-version;
     in  warnObsoleteVersionConditional min-version result;
@@ -139,15 +134,17 @@ let
     };
 
     nativeBuildInputs = [
-      llvmPackages.lldClang.bintools
-      ninja which pythonPackages.python perl pkg-config
-      pythonPackages.ply pythonPackages.jinja2 nodejs
-      gnutar pythonPackages.setuptools
+      ninja pkg-config
+      python2WithPackages perl nodejs
+      gnutar which
+      llvmPackages.bintools
+    ] ++ lib.optionals (chromiumVersionAtLeast "92") [
+      python3WithPackages
     ];
 
     buildInputs = defaultDependencies ++ [
       nspr nss systemd
-      util-linux alsaLib
+      util-linux alsa-lib
       bison gperf libkrb5
       glib gtk3 dbus-glib
       libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
@@ -157,8 +154,9 @@ let
       pipewire
       libva
       libdrm wayland mesa.drivers libxkbcommon
+      curl
     ] ++ optional gnomeKeyringSupport libgnome-keyring3
-      ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
+      ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ]
       ++ optionals cupsSupport [ libgcrypt cups ]
       ++ optional pulseSupport libpulseaudio;
 
@@ -167,16 +165,18 @@ let
       ./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
       # Fix the build by adding a missing dependency (s. https://crbug.com/1197837):
       ./patches/fix-missing-atspi2-dependency.patch
-    ] ++ optionals (chromiumVersionAtLeast "91") [
       ./patches/closure_compiler-Use-the-Java-binary-from-the-system.patch
+    ] ++ lib.optionals (chromiumVersionAtLeast "93") [
+      # We need to revert this patch to build M93 with LLVM 12.
+      (githubPatch {
+        # Reland "Replace 'blacklist' with 'ignorelist' in ./tools/msan/."
+        commit = "9d080c0934b848ee4a05013c78641e612fcc1e03";
+        sha256 = "1bxdhxmiy6h4acq26lq43x2mxx6rawmfmlgsh5j7w8kyhkw5af0c";
+        revert = true;
+      })
     ];
 
-    postPatch = lib.optionalString (chromiumVersionAtLeast "91") ''
-      # Required for patchShebangs (unsupported):
-      chmod -x third_party/webgpu-cts/src/tools/deno
-    '' + optionalString (chromiumVersionAtLeast "92") ''
-      patch -p1 --reverse < ${forcePython3Patch}
-    '' + ''
+    postPatch = ''
       # remove unused third-party
       for lib in ${toString gnSystemLibraries}; do
         if [ -d "third_party/$lib" ]; then
@@ -195,6 +195,7 @@ let
         substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
           --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
       fi
+      chmod -x third_party/webgpu-cts/src/tools/deno
 
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
       substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
@@ -205,7 +206,7 @@ let
       substituteInPlace services/audio/audio_sandbox_hook_linux.cc \
         --replace \
           '/usr/share/alsa/' \
-          '${alsaLib}/share/alsa/' \
+          '${alsa-lib}/share/alsa/' \
         --replace \
           '/usr/lib/x86_64-linux-gnu/gconv/' \
           '${glibc}/lib/gconv/' \
@@ -313,7 +314,7 @@ let
 
       # This is to ensure expansion of $out.
       libExecPath="${libExecPath}"
-      python build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
+      ${python2}/bin/python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
       ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
 
       # Fail if `gn gen` contains a WARNING.
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
index e921169cf067..14ee3290c71c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,6 +1,6 @@
 { newScope, config, stdenv, fetchurl, makeWrapper
 , llvmPackages_11, llvmPackages_12, ed, gnugrep, coreutils, xdg-utils
-, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
+, glib, gtk3, gnome, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
 , pipewire
 , gcc, nspr, nss, runCommand
@@ -9,7 +9,7 @@
 # package customization
 # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper)
 , channel ? "stable"
-, gnomeSupport ? false, gnome ? null
+, gnomeSupport ? false, gnome2 ? null
 , gnomeKeyringSupport ? false
 , proprietaryCodecs ? true
 , enableWideVine ? false
@@ -31,7 +31,7 @@ let
     upstream-info = (lib.importJSON ./upstream-info.json).${channel};
 
     mkChromiumDerivation = callPackage ./common.nix ({
-      inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
+      inherit channel gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs
               cupsSupport pulseSupport ungoogled;
       gnChromium = gn.overrideAttrs (oldAttrs: {
         inherit (upstream-info.deps.gn) version;
@@ -156,7 +156,7 @@ in stdenv.mkDerivation {
     gsettings-desktop-schemas glib gtk3
 
     # needed for XDG_ICON_DIRS
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   outputs = ["out" "sandbox"];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
index e14e36426439..2768e31bd032 100755
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
@@ -27,7 +27,7 @@ for entry in feed.entries:
     print('\n' + url)
     if fixes := re.search(r'This update includes .+ security fixes\.', content):
         fixes = html_tags.sub('', fixes.group(0))
-        zero_days = re.search(r'Google is aware of reports that .+ in the wild\.', content)
+        zero_days = re.search(r'Google is aware( of reports)? that .+ in the wild\.', content)
         if zero_days:
             fixes += " " + zero_days.group(0)
         print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 21d54f7733d9..be7a84576b3e 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,62 +1,62 @@
 {
   "stable": {
-    "version": "90.0.4430.85",
-    "sha256": "08j9shrc6p0vpa3x7av7fj8wapnkr7h6m8ag1gh6gaky9d6mki81",
-    "sha256bin64": "0li9w6zfsmx5r90jm5v5gfv3l2a76jndg6z5jvb9yx9xvrp9gpir",
+    "version": "91.0.4472.77",
+    "sha256": "0c8vj3gq3nmb7ssiwj6875g0a8hcprss1a4gqw9h7llqywza9ma5",
+    "sha256bin64": "0caf47xam5igdnbhipal1iyicnxxvadhi61k199rwysrvyv5sdad",
     "deps": {
       "gn": {
-        "version": "2021-02-09",
+        "version": "2021-04-06",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
-        "sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
+        "rev": "dba01723a441c358d843a575cb7720d54ddcdf92",
+        "sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x"
       }
     },
     "chromedriver": {
-      "version": "90.0.4430.24",
-      "sha256_linux": "0byibxrs4ggid8qn5h72mmnw8l4y8xya2q1jbc6z74pmw8r9hkj7",
-      "sha256_darwin": "0psll7vahj43jkj1wqq7mygf18l7ivp56ckc8wv4w5bnfmqv660k"
+      "version": "91.0.4472.19",
+      "sha256_linux": "0pg9y55644i87qxa0983lvfizbmfiak9bg9249xhifl5kykghrb2",
+      "sha256_darwin": "07v5k07100vrzsbm6r59xg8j80ffzs3gnnf2kcfgqrzprx284gf2"
     }
   },
   "beta": {
-    "version": "91.0.4472.19",
-    "sha256": "0p51cxz0dm9ss9k7b91c0nd560mgi2x4qdcpg12vdf8x24agai5x",
-    "sha256bin64": "0pf0sw8sskv4x057w7l6jh86q5mdvm800iikzy6fvambhh7bvd1i",
+    "version": "92.0.4515.40",
+    "sha256": "1v0vmnzdqq7d2rqp1sam8nk7z20xg5l9lnlpqjxj30y8k37gzh8p",
+    "sha256bin64": "0i3plysx51n2gsm5vbf9666rz73pqbbns7v09wznbbncvw9zngrf",
     "deps": {
       "gn": {
-        "version": "2021-04-06",
+        "version": "2021-05-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "dba01723a441c358d843a575cb7720d54ddcdf92",
-        "sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x"
+        "rev": "39a87c0b36310bdf06b692c098f199a0d97fc810",
+        "sha256": "0x63jr5hssm9dl6la4q5ahy669k4gxvbapqxi5w32vv107jrj8v4"
       }
     }
   },
   "dev": {
-    "version": "92.0.4484.7",
-    "sha256": "1111b1vj4zqcz57c65pjbxjilvv2ps8cjz2smxxz0vjd432q2fdf",
-    "sha256bin64": "0qb5bngp3vwn7py38bn80k43safm395qda760nd5kzfal6c98fi1",
+    "version": "93.0.4535.3",
+    "sha256": "19iy4p59n0pg9s39g614y4yxh5f6h86bcp471qdnm6fvzmzcxd18",
+    "sha256bin64": "16q9s8l20bmr2n0y3pi505l5hbhbmpi8kh47aylj5gzk1nr30a8r",
     "deps": {
       "gn": {
-        "version": "2021-04-06",
+        "version": "2021-05-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "dba01723a441c358d843a575cb7720d54ddcdf92",
-        "sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x"
+        "rev": "39a87c0b36310bdf06b692c098f199a0d97fc810",
+        "sha256": "0x63jr5hssm9dl6la4q5ahy669k4gxvbapqxi5w32vv107jrj8v4"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "90.0.4430.85",
-    "sha256": "08j9shrc6p0vpa3x7av7fj8wapnkr7h6m8ag1gh6gaky9d6mki81",
-    "sha256bin64": "0li9w6zfsmx5r90jm5v5gfv3l2a76jndg6z5jvb9yx9xvrp9gpir",
+    "version": "91.0.4472.77",
+    "sha256": "0c8vj3gq3nmb7ssiwj6875g0a8hcprss1a4gqw9h7llqywza9ma5",
+    "sha256bin64": "0caf47xam5igdnbhipal1iyicnxxvadhi61k199rwysrvyv5sdad",
     "deps": {
       "gn": {
-        "version": "2021-02-09",
+        "version": "2021-04-06",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
-        "sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
+        "rev": "dba01723a441c358d843a575cb7720d54ddcdf92",
+        "sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x"
       },
       "ungoogled-patches": {
-        "rev": "90.0.4430.85-1",
-        "sha256": "04nrx6fgkizmza50xj236m4rb1j8yaw0cw5790df1vlmbsc81667"
+        "rev": "91.0.4472.77-1",
+        "sha256": "1jfmmkw1y4rcjfgsm7b4v2lrgd3sks5qpajvq0djflbhkpsqxfk0"
       }
     }
   }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
index 9a7551a6fff4..df9fc3f822cd 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
@@ -13,13 +13,13 @@ assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
   pname = "elinks";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "rkd77";
     repo = "felinks";
     rev = "v${version}";
-    sha256 = "sha256-LxJJ0yBlw9hJ/agyL9dbVe4STKdXE8rtk1mMFqe1fFI=";
+    sha256 = "sha256-D7dUVHgYGzY4FXEnOzXw0Fao3gLgfFuCl8LJdLVpcSM=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
index 874a73dae8e8..f6dc79a2a0f3 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchgit, meson, ninja, pkg-config, nix-update-script
 , python3, gtk3, libsecret, gst_all_1, webkitgtk, glib
 , glib-networking, gtkspell3, hunspell, desktop-file-utils
-, gobject-introspection, wrapGAppsHook, gnome3 }:
+, gobject-introspection, wrapGAppsHook, gnome }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "eolie";
@@ -33,7 +33,7 @@ python3.pkgs.buildPythonApplication rec {
     gst-plugins-base
     gst-plugins-ugly
     gstreamer
-    gnome3.gnome-settings-daemon
+    gnome.gnome-settings-daemon
     gtk3
     gtkspell3
     hunspell
@@ -76,7 +76,7 @@ python3.pkgs.buildPythonApplication rec {
     description = "A new GNOME web browser";
     homepage = "https://wiki.gnome.org/Apps/Eolie";
     license  = licenses.gpl3Plus;
-    maintainers = with maintainers; [ samdroid-apps worldofpeace ];
+    maintainers = with maintainers; [ samdroid-apps ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 93b89e9031e0..725205c5c209 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, config, wrapGAppsHook
-, alsaLib
+, alsa-lib
 , atk
 , cairo
 , curl
@@ -28,11 +28,12 @@
 , libXt
 , libcanberra
 , libnotify
-, gnome3
+, gnome
 , libGLU, libGL
 , nspr
 , nss
 , pango
+, pipewire
 , pciutils
 , libheimdal
 , libpulseaudio
@@ -92,7 +93,7 @@ stdenv.mkDerivation {
 
   libPath = lib.makeLibraryPath
     [ stdenv.cc.cc
-      alsaLib
+      alsa-lib
       atk
       cairo
       curl
@@ -126,6 +127,7 @@ stdenv.mkDerivation {
       nspr
       nss
       pango
+      pipewire
       pciutils
       libheimdal
       libpulseaudio
@@ -137,7 +139,7 @@ stdenv.mkDerivation {
 
   inherit gtk3;
 
-  buildInputs = [ wrapGAppsHook gtk3 gnome3.adwaita-icon-theme ];
+  buildInputs = [ wrapGAppsHook gtk3 gnome.adwaita-icon-theme ];
 
   # "strip" after "patchelf" may break binaries.
   # See: https://github.com/NixOS/patchelf/issues/10
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 6b8079d52450..136c2c4c7177 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,975 +1,975 @@
 {
-  version = "88.0";
+  version = "89.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ach/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ach/firefox-89.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "12d09c3e723cf3853792d11bfa3344a3cf63cbfea150de441c46e552248d1532";
+      sha256 = "f55831518c6d1a590a48093a5737862418b543d3349c6fe0418d378cc78846d6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/af/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/af/firefox-89.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "60a0fee46e702ae161639eb3d06e893f157516667606fda241b997ffd356e768";
+      sha256 = "a124ce560aabae43fa0fe7b5c2c88f286839bb01ef94185faae640ce8937afe6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/an/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/an/firefox-89.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "6b0583486643dc144c42b369cb54cac5ec28ac997e58ca3c29c0dc12701702cd";
+      sha256 = "f2624d37b96a23d447dc16ea8b8a627db2cb497945d0c4cbe20cc20570d579e3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ar/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ar/firefox-89.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "149f7789dc5b356c336ef48788cff922bc69e9daa3bd4c32550cda0683695108";
+      sha256 = "c01e143107753ea3363e6f8f0ca77c12f9f4803da342578c15c94554ca6d946d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ast/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ast/firefox-89.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "55259f1a56bfb5867a17751d8ed8bfd673aaf26c4c97a70dcf99c88e427605d2";
+      sha256 = "d2bfb999bdb31daffee3774ba1f940a84ae5f4ca846a03852181b2ebb5ec9b10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/az/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/az/firefox-89.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "36cc39d24f416717c1b07ab3aec2803c2811603a394c5e7cc3d6545655a883bd";
+      sha256 = "61c408e9333730c5cee83c48c8d0e1aa20c62b76e32159b68d0e529e92cf15d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/be/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/be/firefox-89.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "06cc01d0f235d423301dd220941d8f67745a1208015f5d2ba0dfceabc5252dad";
+      sha256 = "5d53d478b0728e9bfc0445e9a9a6373e0105e416ed98f50398fcc8d6466e9690";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/bg/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/bg/firefox-89.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "a8753152946e55be48d55858a4aab8052f94fc9a6fa9192fc59a7664677fb85a";
+      sha256 = "0dce261fd2be11436ab182de4bd78ebf50da9f9cb439d100063e714b2e55cfc8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/bn/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/bn/firefox-89.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "12daf255bb459ea1e576aef02f008dbceb752700eb91f569761e5d3b10e17891";
+      sha256 = "9d1dff74b8ee7d4e81900e079921b06ff332c3db1affe9691a23db74aa2e2990";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/br/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/br/firefox-89.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "8811d1da23da1286a4e2aca81e898a0466665386de80ff1217cac0f399396eaa";
+      sha256 = "db9c9c3db5636d1bc10e3ae627f37c1c55716debaec4e68d9b2e6771801802a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/bs/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/bs/firefox-89.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "1386daaf4d583a980a57a0d8c3a631ed28b46f3988a0184ed0c5c8a03e44e7d6";
+      sha256 = "202a5b093879193327673a39f0f217323f0c0e2ede9f586fde0fe224b0bc034e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ca-valencia/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ca-valencia/firefox-89.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "15fbee8c563462b43c128c2c0d7c74d9453db32f078e6d49ff0600e73eefe4d1";
+      sha256 = "d607a4d86c66b8aeb74724e29ffdf22d287ba729b7962db19cdc64f6d03a8004";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ca/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ca/firefox-89.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "0120c9adddfe03e4ed476ca290a0f59cc8fef4064984cde4016bbf12bcbb4730";
+      sha256 = "8a2c7d2b455f31b868779cd2254fc130ce4f84f6935f127c0c6a0dae85daabfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/cak/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/cak/firefox-89.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "7c0d355eb7ab709df66f5b77ede2824e3fdda646b61fd50df7762027c55dc971";
+      sha256 = "e631bfdc8a6a71973b16bee03221ee882ac28a289e8ff92ee3319e05c0260d5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/cs/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/cs/firefox-89.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "4b39fd4bc0c214f3409a446abe13d749a6c25908811f788513d850ebef648b41";
+      sha256 = "c08e64765f30591e3b4aeb4721e7f149b299dc19069476d0af453e38b2b68926";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/cy/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/cy/firefox-89.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "40ca21bb7c715c4adfaee536a42929b10af1faefb73f8103e927b7e8cc1367fd";
+      sha256 = "da30c1b07a2c1eb840d87da41cf36b4e0bbdfa2df6f82c9f4562e460a742b9f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/da/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/da/firefox-89.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "b311e549c38b5a49cef0c9a597e208d8d929cc828617e662b289f0d455f4bf46";
+      sha256 = "8263b20f80c5bad2dcf571c7cd71c0875a41e41550fa4b9062e90de1a544b81e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/de/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/de/firefox-89.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "8916772413c5a615ae4b8ddc2721d5af5ff64cc4c5799fe00873f0a29854f64a";
+      sha256 = "122d301da28d961efd7418d925a6ed0a99c302c3935f94dff6b36129454d171b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/dsb/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/dsb/firefox-89.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "c0b1c757f55dfb6657fd4090b5e3084af3cca1c2526f9a90efcab844fa5ea974";
+      sha256 = "7f4a167e9ba002628aac487f55d1f8b549257da18abb58938d250b16ae086597";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/el/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/el/firefox-89.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "04251f33971a40988df8cbdb2875bf2f24e8c878a11661568a45ed7d4b040de2";
+      sha256 = "51f50c9f3c9c8857d2fd155129ccad90e59343d120514d90c4adba8876547662";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/en-CA/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/en-CA/firefox-89.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "5505a96cfe87f15df89b908f6a769766767d86f98ec878324e5eb26963666ffe";
+      sha256 = "990bd24aed34581e0c477737327867582a2995b6e69f601d4be967d49140be64";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/en-GB/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/en-GB/firefox-89.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "e3a8649ef6107c61c6638317f367db5157acc8ce8989730d2fab7a3bd8c38d95";
+      sha256 = "c56e3405009e405e565fb3dd69b8b6a22894cea9002568b2cf88b820d0f7d6db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/en-US/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/en-US/firefox-89.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "043e9ded27d8f86ff881c1f95a2626b5bbd7361990d7977320f8e9beaea63c93";
+      sha256 = "5011b87e0795de19a05694b06965435c6896c907d51a31631e9c8d427602d159";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/eo/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/eo/firefox-89.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "0deeafcdd14dddc9c31e8f68c819bdebd54e8fe6a480c6dfd723ee90da409fb4";
+      sha256 = "c6554905a466dc9d117bb91aaf0be3e0030467b492d44ef3374f01219d7bf0e1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-AR/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/es-AR/firefox-89.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "b7dd60ba63a4408d94b015ee1529cc5f0c0ee4dfcfe515ed1f8eb7e183973022";
+      sha256 = "91e72c2251d2740129baac9d34ffa54b8b0631c5951b1b667f4e58d0c86ed1d5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-CL/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/es-CL/firefox-89.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "35fd7dc8d273c73c7fd334ec726da2415140497e81004a453fe144aabb8c9317";
+      sha256 = "b719701fffa142991f78aae717a247c6b5310d9dc4832757a773b077be0bfc16";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-ES/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/es-ES/firefox-89.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "c7f801a3d4cfe52b3a9c29c9f2d633d078e13b85fde25fe837e887865040f52d";
+      sha256 = "a4153f99eacb4cc4fe647e9285b76800ed1208e988a6ddb148bc4cdefbe23f55";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-MX/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/es-MX/firefox-89.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "9e295a332dc7e043dce50f3a7092c89b1fd2ffbcfe99d25f9df34eed33b7b34e";
+      sha256 = "fce8b910fe58b8096a36ce28289f8125dc9074c02655ed5df1d1bfd97a67d2e3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/et/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/et/firefox-89.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "c023f6c1a279c3e3d0043b535d3e1666f44a7b079905f0c0ebc4dec3edeee8fa";
+      sha256 = "07165b740a9772c1ac102cdcac3d26aedef5beb6db8b3f222b4bdbd6abdb2fe2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/eu/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/eu/firefox-89.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "ee39a51081690cc9d13dc68d9cec458ad1c7055ae765ebb26299ae5267c8c8aa";
+      sha256 = "11b35cf208f2568f06181858702ea4471bc040b3be1d2a192c40db431cc02a4a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fa/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/fa/firefox-89.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "c61aff504e777a48272d61fe0648584f57b509a21f0f2f1269918ed5450e1131";
+      sha256 = "a935878e3675c34d85103f3c002ea5fe7f86b12a5298bda38f2d398821ba0c0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ff/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ff/firefox-89.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "39e47a89cb93b9cfa11030cb227cd9bfaf20434c7a70b91e5aa1ef4afbdf89cc";
+      sha256 = "13860860e6f60e7ca9f7aadadee36645f7b8a4f1fbd6b9e0a7b3d94f04d77129";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fi/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/fi/firefox-89.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "e71195871fe81b3b6125b8fa2415fd3fc9dd51a01f82ed7ba7f76840b58607b1";
+      sha256 = "c84d9dbfbb89fe5573763ce54b533fd072bf17e22d9c6904dbf52401b635630d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/fr/firefox-89.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "2341c8cdd77a355e83d795e007ee1b5f3da783c090f2424914681666e72939d8";
+      sha256 = "0e5abac1e39f3234603906c237a0f14b927853668b13f6ef8ea0d74e00407296";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fy-NL/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/fy-NL/firefox-89.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "23f3ef8f9ca2552c2aa4c3159ff266b49e113888c855553fcec3920e8c317e23";
+      sha256 = "2ecf98f47651abc6f90ca79f98ab0b055b099f500db8cd684c60605e20549878";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ga-IE/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ga-IE/firefox-89.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "52b5cba15c62fa709f56d9f767e6f6eb8741480eb8e325e9a9a2c4c4d72a63ce";
+      sha256 = "f1dccee366c64afc0a8d9037488cb57be9e6ef544ab4c1bfa3e7d8b7b91cb16d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gd/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/gd/firefox-89.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "0a9ee7c11ff6d16d2b98fb6933102a310261e2a1f715935e162f535328662d3e";
+      sha256 = "374a47ef2069c6a3dea4ac510ab10592ed48b25715d16d19ebafc3070efc7b11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/gl/firefox-89.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "795d38d83d728f550b6fe3efd238a7eb2760e9724bb86ba146190b141dbce8db";
+      sha256 = "393f39cdc555613553d27743e681c07501e253ead1562fd14d2523b1a3249723";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gn/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/gn/firefox-89.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "ffff3d3bd7b0ff27629c3a9776b5e4eb16eb1ddd14aa01dc4073e573ac2674b8";
+      sha256 = "19c207a40e588d072cd056c056583f9745017691aee2caf5aa8e6f78680a53cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gu-IN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/gu-IN/firefox-89.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "7a745004a27a87c965c3b3c7a3c9179bcffb8114fae7d90a51d0bc092884da43";
+      sha256 = "ce4db1d47376ed287392b13c959c40dae98e9461428d8f8df5ff8d99730f1f10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/he/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/he/firefox-89.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "76ff3a975d0092bcfc98094e5ebfc638a192b0053b2d3c85be96d3dfe63e910c";
+      sha256 = "9ec972022e45ed803c441c68e704874164a3cea4bdb9d26addf23097b3bb40d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hi-IN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/hi-IN/firefox-89.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "6136353eff44b6234a111e622fda3882221107fd54ea0910fc659a9ad9afecfc";
+      sha256 = "dda729303a9183baff446f2a84de68333c9aa3a9d90a34e80548e4f46d84e045";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/hr/firefox-89.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "a71b3730bb4916214122daf8ad3847a58d7d4fc0b4ff583080f64c6721962c83";
+      sha256 = "dcd696d7acd7f991591f2f93ab0d94a7c2e7a7d07c5e644792d890fe8c653f4a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hsb/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/hsb/firefox-89.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "9128347b9d06a6025b4dd4d7f864b0c8a8a3f49b786e79106e39514bffa14a87";
+      sha256 = "a3b37e2df58a2ccd6ec422a8c61da35bfb9109c1464c3babedea6ec3be5fbaf0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hu/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/hu/firefox-89.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "489550b063134a992e284d895e738c994109f700338b9158ef8c91c171ce66ec";
+      sha256 = "bfb9a458ab0c80037dce953b4c478765373e79a9368ad267f4da75cf22bcdf76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hy-AM/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/hy-AM/firefox-89.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "16b015356550f9a73ba2fcbb9e0a36936204da476da359f2e3bae57c08353e29";
+      sha256 = "a3e67a5cd54082cd00976f17b47f719f3f262af6a39f0d0f5107b71f5119fa3a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ia/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ia/firefox-89.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "9a543e14b7974e94e8ac6dab92a860b7cec778910f91060207c576cfd5ea1bd4";
+      sha256 = "54175c830b7a28047788721645796b925e37803b23ce7c3f7f287a3a3e6943e1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/id/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/id/firefox-89.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "970652219ba2228cbdd187d45a49f64cb8020220ac94e798896c5668bea90a44";
+      sha256 = "20f207ceb1b090ff6be21c36b928d93a53c7f2547adafa7a7559b7d914ae24e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/is/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/is/firefox-89.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "d7011bb2ddb09d6f446ae9d8f790f0bb5382605385c8dbf04e200fe6e63c495a";
+      sha256 = "79bee0347eab828d9022708131ff8eb32d1a895d1f39f1d074bc6fa536463289";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/it/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/it/firefox-89.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "a58681975cf3a79e32413d9b21655b6ace0ee2ab0df9ac45485344bf2f2f3fc7";
+      sha256 = "28909f3a4e9ee97e290c52a762e74529793ec218c848fd2b260094d9295425ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ja/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ja/firefox-89.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "b86e095903bc54db0bf0c6bbdc25184768c1537d57ccacf71a0da1d946bcf398";
+      sha256 = "1fc39129fcc4e05a6ffa62302f7a01bec771e2aba1aca084c9fca518f0f3ecb4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ka/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ka/firefox-89.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "e7e5277b9e239a8738f96378c87de3e204df9f530936a535aad991b6690f541d";
+      sha256 = "513bdc1e8c8f6568eee0b24846d23bed788053cb3487799a3360ba97c3f5471f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/kab/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/kab/firefox-89.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "27b5edd4248feeb06f7c342a6f48b63ed98bfcd1d44f8ff467a204019b80263b";
+      sha256 = "39c7c01947863bf17fd0fe7360c1c02029f8c4eac6e27747c029c60f12a524fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/kk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/kk/firefox-89.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "3187839a8941b3ceb64c42e084837ed5c9d01f0c518378fe21e5956bf5d4859d";
+      sha256 = "0c99f13e466294845bec2f54ca8a10f3d03f87b9b2aee80416db799c5761a4e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/km/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/km/firefox-89.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "6c0df74570cae46c379ee7271608449a31f46c3bce030613cb04edf1ff6d16f8";
+      sha256 = "3494d56e45a2a9071a0993191a438155ad4b76579e6a6f29d919254c567a0078";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/kn/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/kn/firefox-89.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "30116c65417489496836aa71771a3e4d01ef420d12d080ab8f5d02e6c713a513";
+      sha256 = "4889cd958be7bcd108c374e0e0575f13f07210abeec076b8369186cf61f4ea7f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ko/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ko/firefox-89.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "e73f7ee38b5061ab6b89b6c9817d1f70c85e4b6eacc22f6780a72c308bd8dfe9";
+      sha256 = "71da744479496c2c62449d42373af839b02cfb1ebe2e6ffebb662816aa8cf59d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/lij/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/lij/firefox-89.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "c98b27de29c3f98e13b4b3803233f3d99eebe04f33d6761c64464872941a978e";
+      sha256 = "785afee6c3a9e26e8e81032ab5e9c94c886d1e950ce2174d63a9d7f6f15acdb8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/lt/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/lt/firefox-89.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "bb12e24f967b51b0ad2c7cfd0111f6c128f854a61d99e8262d64a5a4b2b972f2";
+      sha256 = "00de67ef54ad73ff1b8397f9d86ae90da57a0272268336ec7ce6f7790faf0a38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/lv/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/lv/firefox-89.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "65e19afa82c25c3793297db156bc72fae45754bf709cf15f4a6cd6aebf8af314";
+      sha256 = "e28f07fccef57a2ca94b7b7074b518188599e851ad4e21a13b08b5b242407154";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/mk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/mk/firefox-89.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "f7717adeb13e7592f3940867b47ad6a53172c7b99dbe5904dc78838d7230d22a";
+      sha256 = "6fb8c785136d3040865698d91cde31cece022072594aa61803cff9e63e2e5a10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/mr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/mr/firefox-89.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "db9cc5d8f42595824792ff2cf80e67eab5f54a9cda7f87a0a81582d53c72ab61";
+      sha256 = "c91ea884c587115fa2c9b6d6615f724937b77e24a22ff84de7bd50d843907432";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ms/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ms/firefox-89.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "3daa35a19a5fad78ad81381f48c1e27ebe70f5be03634594f30097645f061593";
+      sha256 = "36c50cbfef5e729f57797635aa1745c74872f6adb77daa0b4e5e804072c8d15d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/my/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/my/firefox-89.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "de0f442f18cd82669b222bfd30aab14d1130e55765aee6992f7632f9b681284d";
+      sha256 = "cb17e54ee6ed511fcb7de27ab2bc9dea5c52417ffe807a572d65f8e8d202c05c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/nb-NO/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/nb-NO/firefox-89.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "207136b91b4c830ed9c2bf4ba11b6a9f42696a3cd5b6815de1b9b4d8f265817f";
+      sha256 = "08e7a9935376166b3344a85345a932b6ea90691f6f5c28d345fb210cae64252d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ne-NP/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ne-NP/firefox-89.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "47d3322091d3663d4544d7551ff1127e01b64a773770651fb320f56379b24e9f";
+      sha256 = "b6791b6c336fb9b3683be41798620071f1ef569f3809c0f0ae9db90a1dd758b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/nl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/nl/firefox-89.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "d4e06fd6bc83235dbd1ec49cd8e4bb0a0a62d735221196770f1268c79228b5be";
+      sha256 = "1bd8d6737393297378f127cf320ee0945970ac4688ee9aa3a045288fcde54f61";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/nn-NO/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/nn-NO/firefox-89.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "57e49d9d199bb48ba594e21e5b57931785b9404d32259a45164a24123d9d1bb8";
+      sha256 = "919312922060bc90e5a3398a76bc7e6f224dc3ae46275d7ba7a0fd596e46360b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/oc/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/oc/firefox-89.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "1108761ce4c7cb13077c4ebc6d9704923aa91f5affbae618768b9c855cadd784";
+      sha256 = "65ed4ea16b6696fa5866db932b82767301c6f3eb72a9ed089c4ba5d2a439352a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pa-IN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/pa-IN/firefox-89.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "bef979c51a367f733a365b3e7153dc7fa7b150d797ec15ed818983d81eaa4044";
+      sha256 = "d996838f73d04f0bc91b22933e5c6bb2d2c7340a43933de48c352cf548097040";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/pl/firefox-89.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "69bc8bbca55a74d243fecc95d60d2c6075b911375b0bdebf6a4e238ee4f5b2ca";
+      sha256 = "aa3167304eb7d5ceed1235be8d864b0d6ff48d47d680e62b613462378215d9a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pt-BR/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/pt-BR/firefox-89.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "c75ff2eca174e9ca9787c6e56e6e956c65027d111e8e05fa80a67df36b438dd7";
+      sha256 = "74f7801e8e2f9c60a9824380060769afb61771fa9516206ee85a882705eab3dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pt-PT/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/pt-PT/firefox-89.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "fae035e106d4fd6fc19bcb0c081bb62bc328820b09f2ca40b30eb9542a7de046";
+      sha256 = "961575b359317228991d81b76b9967658b18229ee8ef58480dcf19d6bfa57ab0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/rm/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/rm/firefox-89.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "cd0ddd73f2281d88b5ecb6a6a92aac7ecb3a0d73074a3f8fc03d16cdcf30cc17";
+      sha256 = "60780c817e379fc25d4234363c72fcf8a0cb3ae14c4ea87865d85c46aa206801";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ro/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ro/firefox-89.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "6d028e81212cfc2e450ce7824771292706b458b6fd6c63764fae2b0804a8ed7e";
+      sha256 = "20f1e503651308e2f1e0f41091c5699dd20b02a9fe32e0cb6541d00ba81d2b59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ru/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ru/firefox-89.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "bff057c7306cc5d2c553fc744552bdb249e32a381d34007fd469247a4f22960f";
+      sha256 = "1f980091bf909f7f7f53d358b79c918e80df36f7ab389053c02051cacbb1ec44";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/si/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/si/firefox-89.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "c73e53ce7498ac770a236f1f606dad29ce3ea6fc03713a223997b6e272cdb5c1";
+      sha256 = "6be2db2f350b67befdbe0d12788c8b076ea592ad7cd40c0c27a5a1a90f73cfcb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/sk/firefox-89.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "ceafe41adedf9b9a354ddc9117a879b72f4331e4f7ff3ca3cbcce153b6cc7e42";
+      sha256 = "2b975d58ab76144db56408acefd5e5f63a81a65d11d79abbbe724ef60cc0b7ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/sl/firefox-89.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "3b39bdecfc71fff21040e28301b0c8193119f38e1a0877b168504f31dcc33d19";
+      sha256 = "2459093c57b5784ff0a496ca6a294086700684a85b6a5444a25a877e1bd51767";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/son/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/son/firefox-89.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "437a98ebc049dd93537a52cfb56e19b1dd1142a61e9eaf0272e5bf490cb82022";
+      sha256 = "1f5f111543d1db02a8b86ed760cb159e3dedbb4a44ca43b31bd78cc9cdcf3ec9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sq/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/sq/firefox-89.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "51b5da749c31fa8ca7af7b11d67f4b4d15c6924abed95d54c74c3107ba4b8fa2";
+      sha256 = "8a2c424aecf0e95d6acb41a66d07b750e85b74dfe5cb2154f9d84cbae51a2b06";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/sr/firefox-89.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "c8a99c7a3a2a7bb2a2e6958f0e7d0d5e13441e758a024a7a2129e6adaaa41cc4";
+      sha256 = "cbef46fd1e72f542efc8959bf602fffc026a2866a2dc546d008fe8b08a24ed5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sv-SE/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/sv-SE/firefox-89.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "a2ec634c6f269de30f6020946e76a42ddb592da4636bfa64d87dd4711a1adbe6";
+      sha256 = "c5a6dbca197540c22e370cf69183f32edd993242ca651a04c46ece8b43824a30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/szl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/szl/firefox-89.0.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "4bf6b15dd8fd99ed8d144091ae1e6ed4a1d9922d50c9bab6f5569b73ef695213";
+      sha256 = "29a4470782609b31b494f3759e9cb3b5704790e4520acd1b33988877cd982b86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ta/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ta/firefox-89.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "959cd948b386e2416c905eb13de3b22b94cf3d6592458dbe52106e6eaef9837f";
+      sha256 = "8a8311028e7681f6a51013ad9c15911bdf9e572544d9c26982ec056889d79fe9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/te/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/te/firefox-89.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "8e1b26c7c4340665ede28290ae8298a877a735f078bf9440fefc65d13c0675d4";
+      sha256 = "072a234399aa63cae9089da050b647ad042c8b346ea6943f1f2dbbabd5d454f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/th/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/th/firefox-89.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "d724ccdebe9a34909bd379d06c4af9beba245525374ccc090c492c3a95d65115";
+      sha256 = "f43f10f82d50a40e8b7d83295244d1edc9058826160fb7529397751fb4cce43b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/tl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/tl/firefox-89.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "76ec33e8f4a2b75e8f2b3c115c9b366d3c508ad9f1a33c942a7a6062525e51c8";
+      sha256 = "2b30195f74227e71c21b7c7004faea8cf4c95da5fc2bfe4210d50392d35902a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/tr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/tr/firefox-89.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "6aad672d2b197a23418fcc98347829fa00b9099b8e48812b05c6da5a57ecc175";
+      sha256 = "901fdb54ca10a0c90bc9253d6d1c6f683a7d5dc4ab8487e6aa0fff2b04e32f24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/trs/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/trs/firefox-89.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "061c0feb9d7cdc622d5eef97b8b4fe5153f0900358349c1ec1ca95d7c4a8f744";
+      sha256 = "85c3386e16611e2cd2b64a5095734c7c4703b9889df4e3656300d98b7a392ce3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/uk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/uk/firefox-89.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "77b603973f98b6ccd577a1daad05351b41a04d00b91a144ae9385d76a7c87c42";
+      sha256 = "21fe9ab7f0a41ebabe2715f139f2343e0fb6e8057b42927a3044f7ba665eb80d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ur/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/ur/firefox-89.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "e1f814600f1fecf237ba80870c8b70f548e994827618d2cc9c220b4ef15c6404";
+      sha256 = "098d33b86191172fbf5348689b1d704df4cf3237e9dd789c67b95656a6b79e02";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/uz/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/uz/firefox-89.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "032c603683f2e26956809835d38abe4676d9383917d56f5e64735754784161a6";
+      sha256 = "b891212d3cdd66b7edc970edea6aee044b906174054f2f06a55e5060ff751ada";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/vi/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/vi/firefox-89.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "3504f2c00d2b2225167200a7f1b809a71d2168d6c2cb048c94d221f40417a1a5";
+      sha256 = "fff4b31a6889e1b5829b7713fe0f54d4a68cc3da3600f6bc69c6b652596fabca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/xh/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/xh/firefox-89.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "68611d455147c4aaefaf1ad026d42a9600af923bd261b3326eb4395c7791ba60";
+      sha256 = "b73adfcec53fe584ace193f3f8c3c1ecd9b3346847cf620cd543d21fc4f14be1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/zh-CN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/zh-CN/firefox-89.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "cbe315c6e9e4c05ee308a04d352c2573d9197b3aa200cfd82195fce852c017f5";
+      sha256 = "79c53f5f973bb9d85233c49c0c9e02b9e1df35f500e44b4bb541cb1c097d77ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/zh-TW/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-x86_64/zh-TW/firefox-89.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "e130ed291b9833c687ba1c11c6abb192c8ea258ee5f7300a5cd5f0154d634d5f";
+      sha256 = "270a0e18b978ef33b8b71fd3690ca859e0c286ad1ce5302c5da5b7375f8928d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ach/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ach/firefox-89.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "099c38d992da934be008e40b4ea0cce6e46f45f838cfb64b5e0b129a10f9f9af";
+      sha256 = "e239cc3380b017b549c5ec0824c0b351374412562a810f85faa3e39b020702d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/af/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/af/firefox-89.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "56a0573fe7cb11133264363307ce3810177c6f03415ed3bee895765a4e737652";
+      sha256 = "6049bd79e3e3fe7f141a97941489b9be8bd1b5e907ff92f07907d0433c52f8ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/an/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/an/firefox-89.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "f0e12115504b079863d30ffc7e19f497c4563723023a3ad40b293c2d305921c0";
+      sha256 = "8fd1aefeac276a40ccfa434d376b895a7b9674ff67fd587121255df34cc5b1d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ar/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ar/firefox-89.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "2793fbba47c73a9c86bdb6665c7d28e7af5a0c6145b6751eb0bd38a3ec890818";
+      sha256 = "4ddc0f938be2806d27cbb9810ff39749ea9f6b0fddab1bc4eae211ba121959c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ast/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ast/firefox-89.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "e55e686603b6b827c49e87d52b547952b09ef0ceb105224b6ede539a5b269c8f";
+      sha256 = "f4ada3fdb3229992af94002e3b812bf95e3ade3af7e913ca990ca3164c04ab66";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/az/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/az/firefox-89.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "a491479be97c794fc89184e32dec3fb6bd1775139ec0e02fcf0b8679ce8d9697";
+      sha256 = "07e95af87afc048c1e0d273025e4ac2ce6d5e15f93bf4b2e6fd24699b9afee8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/be/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/be/firefox-89.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "5561e4e9730ac83d94e0e19cb7509cbc8986559e49d4386059021ec776b7ce60";
+      sha256 = "d967424a01532dd37a57c7e87063c022905a38d794c6077f99fc4d23a581bc2f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/bg/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/bg/firefox-89.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "8ffbce4041bba8a69fc3cde897e816c2f71a675a0935415d219835535a4644b9";
+      sha256 = "c8b667539135c6cb2fb98663259d75757efbcc6ce374c85506b2972457f01bd0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/bn/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/bn/firefox-89.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "826eed8716f6b02858f17d75da1dd39b7914c9b487c074c9065fb49917825b12";
+      sha256 = "436b1de6ffc38b2a17dcef6ed395e67e8f75058539bd10cc510b5db95add0b0a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/br/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/br/firefox-89.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "3c2dc18b43a925d8bd0c46e3c108a74e07fb122ae72e723c108b9fdf8e0b70a1";
+      sha256 = "0a0469ed2f2d338bf05f051f300bff65f42d53f34c6344fc81d7179faaff7b0b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/bs/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/bs/firefox-89.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "459bd06be3caa151b38fd3260405a8ef9d13fc445be4c6a218fe0074ad7140bf";
+      sha256 = "a7907780adcbef8cd64793500a9f664d552f7c993c277c1e10d8afaee2c13acd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ca-valencia/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ca-valencia/firefox-89.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "506d8950cdfc9ecea83789d9116c2fbdc7541d756f7e07db710b7dbf7eb51118";
+      sha256 = "8e7cb11f19878ac1dd7943be5132b59316c067e7f435e2456200115d0eb22470";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ca/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ca/firefox-89.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "c0ae65141073ebccd18c0e053198db998225150c4c1724bf0d07cf8954198e41";
+      sha256 = "235c16a101af708376903609695a0e2cd1d863094f1a98ce2e916533abc33b38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/cak/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/cak/firefox-89.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "5cc2ed5014cedec417a1cdfe193364031163b0c03c26af49293e54401c071ae1";
+      sha256 = "735e1f803533c7ed092b10df7a3e7435588866ba94b88b37c9b2afda75891f0b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/cs/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/cs/firefox-89.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "49ab8e8599bc78d1c7613d6b58f1a3da63af6ad6a4029fcb1977c3181eb190ef";
+      sha256 = "881d8c7a1af57a90c81ab4d5c89d8d946d6666073509f9c194ff44466f44e4f9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/cy/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/cy/firefox-89.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "1ded8c796d12aac6d0767b1694f1a3ba7a852c8d9feaa1b1f3158c561539e553";
+      sha256 = "1c74c73b3e52ad625ede28e7043b650a8c90ed09862fb26fb1dda9497902ad54";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/da/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/da/firefox-89.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "f17e25561c7cc08b70dc66eb7904f9f4d27eda7ab1e79beca813b6ec86b8774b";
+      sha256 = "41429f458803677eac22b654be2e9e3708d4007e3faf6496ef8a9ce31f558a79";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/de/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/de/firefox-89.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "6fdbff1eed3657ef9979d1e63941ed4e9340de8741c03c46075841f1acb10e95";
+      sha256 = "de0b79f4b60172379b523a851ffa94e750aa68e6a008e740084028da2473b8cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/dsb/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/dsb/firefox-89.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "2a8ad12cf7487892097a6673fa9dade3fb30163c5d5fe5ad61c7ec417aba8363";
+      sha256 = "b7cb7153c0e2ac1b0976eebb9a627ec608f49969b8571770409bfff5916d5ae9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/el/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/el/firefox-89.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "e7b74c223382724059e70608bc62946a792203b5c688d4802de70d25955485e5";
+      sha256 = "f764ff32d668f36cac903c808b46bf81afa81fda8231e9c500e71495573a10f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/en-CA/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/en-CA/firefox-89.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "eac978e84c34544bcea96a6c57b59644d7d282c4250942b7acf8365aadbf8e5b";
+      sha256 = "8df9136b6895266dcae765d15a601ea69707c6c31b858682d4a0037262032452";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/en-GB/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/en-GB/firefox-89.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c1c69617ea1e048a2f141592b602745d2e9e556172f896379d5fdfb2b2c5c3c7";
+      sha256 = "b9df457be4785e3ee38e44b8fc5daa265699f0fed60357b0e2ab6d650d5629e3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/en-US/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/en-US/firefox-89.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "a6f45b2aac37f917c0e3b8450cce94646f8734215d8f04a896f21cdbca7ba77b";
+      sha256 = "9b40343e4094acc2ef4813a2aa0b943a4e4f34538da4f9b4356c44120c928194";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/eo/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/eo/firefox-89.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "73f658ca036879f9a70a1f9205c7da2899b1c1c59e58d957e165ea7bbcd5e34b";
+      sha256 = "053aaad2a50948969c2dc85854a6da0a8ef276351eb84ccf3535af2f479b4472";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-AR/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/es-AR/firefox-89.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "6a5aa32bfb51de74b2d5c3567550ae0ed2820fbc302a48449a3ddc1f65eb279f";
+      sha256 = "b128326043c53635ed3dd0fd7bfc2b52192bfc48ac4d95917ff72c9aa31b8b6c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-CL/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/es-CL/firefox-89.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "4c2d5cead45a8535a6c2e1a64bde129cf104ef1d4cf4d85a673c7b3500c1609f";
+      sha256 = "5227c5108c01539d98c52224eb4b76c08db8577853cd2e5307ed548c11c73e10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-ES/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/es-ES/firefox-89.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "8f8c2bb4af01cb144f751ecc9dd010ea24f557b75d7c08a09eeb023945c4cb62";
+      sha256 = "c9d0120abbfc52d5a33c1905d460332d15c1d742f2b7902dd99e49881ac1b41a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-MX/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/es-MX/firefox-89.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "4dedabb4b1e51e22e2eeedbb448f96c4f7e6dd44b3e5fc414a81a22b1e03c73f";
+      sha256 = "b1d030328017cd2e03d8c3431582f7ee5c4a0d368074d310cf41d771bfe536e8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/et/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/et/firefox-89.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "23b5abc7775a964ba1ee5752f8b61c7edf4c1e1eaf8962b66f13ac638da9ed25";
+      sha256 = "897be30748bce6cd0772be06cca5f02a4768864f8ba433f7840aeb245bd7be6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/eu/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/eu/firefox-89.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "3c87dc6406ca147713e5530b773581333d0c0835cab15d3e3254a4dab5e74e0f";
+      sha256 = "93f97c38ce8393a6bad65d682a2ced7260e2313114979bbcbe9beb7650ea8fd8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fa/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/fa/firefox-89.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "b20949a6b54614935ca46ab5c7f2d3116ac3323a775ad812096d964cbd05dbc4";
+      sha256 = "9d5820a4facbdb6959cbbfca9db5158c049c5420744edc77afa933d3c3c7250c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ff/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ff/firefox-89.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "6f26c249f264b714e22402dc079d54fef92e1092a3ce12fbd61be283835c32a8";
+      sha256 = "cfa3059f3f12a5f02b4f9cc076738d32f631fad945db99df3783f9cbfae68628";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fi/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/fi/firefox-89.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "f6bdd115eb26dad32b019c8e854e2bc1f67b7a3d56cd044199ef0cb4c79a3d29";
+      sha256 = "806c05b03a7dd6f40ebf17f78e56d1829f7aade412ec8f54ddd25ae6bab4317c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/fr/firefox-89.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "bdf941c1a60dd2018d341e439acb7746401298b7492ec1e93b2fc744f3ace4b2";
+      sha256 = "e0c6056f04d7c75491c020d0372ce8b2cc5f23959540fb0956b793e4c16ef736";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fy-NL/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/fy-NL/firefox-89.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "cfb472e1e98f0ec8a9a6b24e8f31113ab25fcb7d1a01ddde09004414a0ac7954";
+      sha256 = "e9ae16b0b0f43e4b4e236d47836ed4aa03ccfe0dc6d6401dcd84012d0375d405";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ga-IE/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ga-IE/firefox-89.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "20aaafb2d88eb09863ffb17c88df2d31aa20089672eef91e19c26795fb083de7";
+      sha256 = "f37630c20e722165f2e03bbdb6d7d9d9dda86be17dcdc086d95403509309d32d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gd/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/gd/firefox-89.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "af7d5ff85091ffb76cf15c0ed10e1148356fa5c3985e81a38c08c04f5c281064";
+      sha256 = "ae13cdb56c7363fbe96eb07355ac18952c35c2fe078e79438144b2780a363bc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/gl/firefox-89.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "28b4c52dd5191a5990a540029df8bc5ac40d5e38c23e2bbb0a2f9bd73623e74f";
+      sha256 = "f0ee99e1b32c8ab573c4057520c8a4dc7d4639e98574da1a7f4339e9b9cba083";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gn/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/gn/firefox-89.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "5834d96a0daaf084c0ddf33490287ec2a3c376420db87904e550cf341953567b";
+      sha256 = "c94c8b272a781019e92d4f6ba41349041f0f5a795eccce66719bed137e39b66f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gu-IN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/gu-IN/firefox-89.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "025f19f373cbb3bb26029e119653a8fb1b8451166959493a75cbe89e16ae6d0c";
+      sha256 = "9249604f06abd977e1c4992ed857950fa17b150435691df67bb97c1fe6a67adf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/he/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/he/firefox-89.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "3f6433e730b5a5ba0d1da4cc1d69e497b115394f5be5a8f91888bcfccfd35d92";
+      sha256 = "5a035ba5537709127a368d89fc4b59fc2eddbe7b56ee9fd0e4fd7b91d4bfdd2e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hi-IN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/hi-IN/firefox-89.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "7ad200b8615fd8a703fd142314d72e4769f07ba420b62009d0985ff850305a4d";
+      sha256 = "2bdfa548c53bb05064d8a9daf7a83859290f0a1dbaa9979e54615978973c2401";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/hr/firefox-89.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "b1dbefc5e048a496ea95abf5f25ace36e1d901a0ce4d1525606eb1337ef73212";
+      sha256 = "853c90ad71a8133c2c3282682aa1b4ab3fb45dcc574fe0f099a6fd1b79fea4a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hsb/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/hsb/firefox-89.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "54d82c14cd3dcba66b1efd8d9e44f69827c51f7ffa6bbfcfaa82be3c0881d2f7";
+      sha256 = "c5d474cb0ea800ac062678b636b4f09586c430c31eb63438ade304ae009b8c22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hu/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/hu/firefox-89.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "e70da56c35e3f133a8942a08a97fc0905887e722d684138329d45195d4281254";
+      sha256 = "047ef8b66359959150acff1cd8fc5d3294075cd93028b1c397461bef6b940943";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hy-AM/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/hy-AM/firefox-89.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "ec8a7e6a0efe5715be61344116489215177dbaf103412a5f726006afcd2c9907";
+      sha256 = "67d8f771638ac429aaf585a6624a80c0a4369f0ef4de4906c1324a25ef54d3ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ia/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ia/firefox-89.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "fe534973e0c2a86425c6d3abfd15d29fda8281924ec5d1c6cf32d067cfc439d5";
+      sha256 = "fae0a1445107a5632865f159d6ef367243e846fefbd8ae86fedd8e74307ac894";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/id/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/id/firefox-89.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "6e82306244398be24cd82790ddca2885b14cb1d909e416ef7b2f569a09bdbd34";
+      sha256 = "d48d736d7825249d72647e07fa0a497434373e8c2b43e31c88d4853c5e57b595";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/is/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/is/firefox-89.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "83c237806e5ae3f6ae926e215caa74ad22e13e375c9b462de663fd836a819a3a";
+      sha256 = "5534810b724fc9931a6aea47768c1c3990d7097127fc7ef96744d0fedd509535";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/it/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/it/firefox-89.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "ff72131ccce409524b044d32fdd18150524033db8841876bfcf39d43c376ce8d";
+      sha256 = "3fb63402a8a4e495842c7de7c4aaf4b08e258e96371d20f40d0da21769af7d60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ja/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ja/firefox-89.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "6392b53788f0908da45ef6e321445430c8a9db385a134a95c63826fdc0ad289f";
+      sha256 = "216996e405bce22f6836178c95f2db19cfcc138ca25eb01670b6243fd6b4595b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ka/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ka/firefox-89.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "a24cd3fd2c46dbe764a4af86f5f79a97d1ef0c3a37bfb61883556c48d987a067";
+      sha256 = "4184f7b69f0a075a580a8ec059c4ddc237ecd5fc019fc819b1b161cab6841fe4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/kab/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/kab/firefox-89.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "68ea95f04d07ed0c0f0fb92f4ab3ace4abd0c43a878548ffcbed61024efb8a8f";
+      sha256 = "9d5ec12b8a302644b0fdc0bd20e67b471b6426f075284fb21b1c23b8bb592df7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/kk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/kk/firefox-89.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "6e190c44a82faa476214369e0b32c2d70d6ec4394a7c289c8c73e8d1b70b1de6";
+      sha256 = "c37d42b7472c1b53d9d38a62510be2c559908dbe2a60cba6ee066821ad52dfa9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/km/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/km/firefox-89.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "532ee78e0cb774ff3a131e6bb48e27701fa136297eb3c119ac9644e05b66bf4b";
+      sha256 = "13d81552dcf88f8ab5b294c0e500af4cf27d0cc6f8f3c2b9ecd60ccf28601fc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/kn/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/kn/firefox-89.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "547b191ab90c4b81209e519f675ced74cc2579f7776005c9f2e8fb677a79ed54";
+      sha256 = "385af04026d1137d7f3d110a3070332ece0f02465686e330307d6f7dff09310c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ko/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ko/firefox-89.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "d8567c735f37308db5e541cbc44bd69aac0b5e86a5e55bb1915f10ab8cac32f6";
+      sha256 = "d408b25b22b84500fad5014aff28a1f0fcafa47f35328121ec944682c8252a10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/lij/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/lij/firefox-89.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "e70a068ff713889d452cefde7bf19be4bf65349099026c57074d4cd035ba3c1d";
+      sha256 = "22f0806c3ce1c15ea10c5d7ca9b3148d0bc6274df88e6224efdbafa4ff1824db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/lt/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/lt/firefox-89.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "9c2a6ebc75cc6becd5d8b73a8c47674ea71a4b97fdde973c2832d9bb76f91f4e";
+      sha256 = "4f3af6bf854de0ba54631c3d462cdf4b8735de28075c249649db7219ec1cc1b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/lv/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/lv/firefox-89.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "ad628812c1db1ee9b7ff0f9d2f308db2480427bbdf5b6430474400cf70a82696";
+      sha256 = "a7d5920c2f93178f3d95bef5a5b16413a307ca468b023bfaf65cdfdeeaf58025";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/mk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/mk/firefox-89.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "17b3c4004f149f66c0f6feb5a2a644b7b815d2b440fac9df597bed0cafdb06e7";
+      sha256 = "ae8dda2d271962faafe1e27bc4448d86efb2283f1ecd3b546e077fbe73f25649";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/mr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/mr/firefox-89.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "406e1c0435c4ff1233c9da0931ba4ba5a23a3cd1f05ed7202123ca04497f3a83";
+      sha256 = "6e632ecd870759209c2e05d119db8c3018ec23ec178fa066408c2db40283606c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ms/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ms/firefox-89.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "a312c23b1069438c8b0534007bf17c0b9e5b63d768b3cf24acefda1a257f0f5d";
+      sha256 = "afb86390e11a6631583797f36471ab72780db95c42d80908edd2e30f2f8c7cee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/my/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/my/firefox-89.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "93c9db14e9e462d89f04e928ac8ef3e3abdc682dc82a1781e76dcd62a2122c2b";
+      sha256 = "709e24a1c4145da05b77d7e86351e617f8ffd1a7a1b0b39733e46640a953cd37";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/nb-NO/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/nb-NO/firefox-89.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "321068345667a18ae07435d78371931c55c306df14bccf74e1dbaa582d3e46fc";
+      sha256 = "63e00266d4ebb3212cbcc5a54a46bd2f56c595e6be29aed646b3313a488ad8c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ne-NP/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ne-NP/firefox-89.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "fe92879652c7eccde08e9017f37daaca5f387be0fd7784051d2c0b7e9c83f298";
+      sha256 = "1f1a7d20758e4c654ace094f2d79daef76247433474be9cf228d26e76819c64c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/nl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/nl/firefox-89.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "a8dbdf538cf310d2918026e907e8422a4b5cccb943323f1ec3b391c61341818c";
+      sha256 = "afb68f242b89b97a9495be420b91ad65aa0ee254932660defe141117acd83c66";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/nn-NO/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/nn-NO/firefox-89.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "5a7ef37d7a2d13a2188781b69c01fc1b648c198aafc6ace0e7c818f58bea6e2d";
+      sha256 = "31e20f0e5171e9137999dbefdec33f9e97205ecef2b141766db275b66592c7df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/oc/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/oc/firefox-89.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "083eef36f466362ea6726170be55e6410b3394b316d3c0ee866c5a1200db6949";
+      sha256 = "68a990d30be02eee79f1fc7a799e88a3e41749e44b28f5b59fd1741a458f668c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pa-IN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/pa-IN/firefox-89.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "ed57e8e612d677f69776e3bafcdb174ac73e35d493151e282eb2f7f8a062c62f";
+      sha256 = "133c91f6932454e70fbc10bb881d00f859032be6d92a1b41dd1df31dfa57f376";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/pl/firefox-89.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "83523f00d01f1e41b6777789026e820de1a94f9fd413f5c2e9279d4da21697cf";
+      sha256 = "a86f0230c57ecfeb12a41762a1bde5bfd49224b898f891215a094ca7056e2b22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pt-BR/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/pt-BR/firefox-89.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "8d5e40ef90329e0fdc39d09b4f2a1492120182020c77a78b588e8eb66515876f";
+      sha256 = "a0ec38a70fc4ad0d0f67962df8d2478fa00f767b1797e69803d24913be5facb9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pt-PT/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/pt-PT/firefox-89.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "571539f8fee1519abd04900ac6ede845f0a500f612cb1b0e0a9b0415174eb45a";
+      sha256 = "e443929ef871d56be734b8b3d766845583e174e51137e87193cef5aa83cdb55b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/rm/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/rm/firefox-89.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "7e1ec5a0f813e8c1415f6a85e3f38bc03a8699a88573f1735345eb4099a0bd66";
+      sha256 = "3c044dd647fbf331a4389719c4d1105c1e5cb58c3eb1636b56058730a9e956e8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ro/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ro/firefox-89.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "5618fabc43c88e541160e8d6c515a04dc5a6c0a9aae4302b7be2f906c2559fa3";
+      sha256 = "5a9fa20d508d9de6559664e96050b8843eff0633d5d660f3fa7cce2da375660c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ru/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ru/firefox-89.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "aca739451ce91482029101c0010d2fa8f92bb155abd96c601df495dcc1894706";
+      sha256 = "99d6b8116f594f01936bb9528b2d03e2e78a6aa7371eb10e4de50593200a7bc5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/si/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/si/firefox-89.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "6ce0ccfc444784d1a91bb860fe3bf4910cc6a1ac12074d6b113f23028ded5d23";
+      sha256 = "b80d42d72e039cfb15b30a7054bb84f709d7bb509c299862054a5c65f588075b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/sk/firefox-89.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "eac64804e893db4ef8a241ae1fc33b9cddd6f91e37418977c7879a0b620b56ad";
+      sha256 = "e21b18c60376edd371b5a52966b7c8d339e0adc0b46e5ac98381a46cfa42056f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/sl/firefox-89.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "0d2531fdaa0259b02264a3b45b5bef081aa196526259dbb1560c53e0683991af";
+      sha256 = "63b70e14e9c7cb579a49013f3f6b31ffcc88f1424a17987ffd2788b876e22c13";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/son/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/son/firefox-89.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "dd384928a67803465f0a040cf9ce6b8680e44aec0bf8bb940b56026d550b5ba7";
+      sha256 = "d77f34b17861c607125b1bbdf84f048634b6e7d3d3e35a8c0f4b55e3ce4351b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sq/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/sq/firefox-89.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "01523311694f7de9d035b838d94b28083c5800b55ff3ff5ea853c4e668a28495";
+      sha256 = "fb5b14076d7e6a12ea0c5f510dc15c94fa6a311285cec612f9c7a216c1d71af7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/sr/firefox-89.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "5e6253d7c7f9f335fa2fd96562ebac2d78091264034f6673c3398fc725496e38";
+      sha256 = "9606afc3903197860f2b5d6cfddfbf32cb88c43f8edcdac6c94130d6a7dc4f9a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sv-SE/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/sv-SE/firefox-89.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "6f8864ffa2195578543b2c36c782cf7fb7ba4bcd7096245695cd8ba89ed0bcc3";
+      sha256 = "457c4ed993411a6407fd51a88c8f6993abaf26215e335f7d871c9445e2cf7cfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/szl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/szl/firefox-89.0.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "b4ccf73a518f9f4ff64adaecaedb4a7dfe116ac9f579cc1713086bc00a62c2bf";
+      sha256 = "d06c745ac74ad48a5083768774dcc72d020a34c9dd2cc9aed2551410de1b86ff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ta/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ta/firefox-89.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "5e0e58a52836e13f2cd49acd026feaff2d27059c9525501df3892bb29364ca4a";
+      sha256 = "acdc690bd1816fe043640d62b678de02c3386736bde18f31eefaba749847f6a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/te/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/te/firefox-89.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "55c0dff310e6a8e239540aa04777a2eab384b4876a78354a87b0b5b51b7994e6";
+      sha256 = "e2cbc4ff9b7682cc4ec3b49db69c841d95cf6336645c50025236885b24fc3090";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/th/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/th/firefox-89.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "2a62c240946d8330166371d42fe9c04f246953a61958a9a66d28382bbad902fe";
+      sha256 = "83c88f10bddd3ed8e1100bc57bebeeb4d0ccab30f2093813c6e121adb04be5e3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/tl/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/tl/firefox-89.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "ed76eb7e7c221bfa0ab06446a3b5ba40728bb61c92a303cdf2ca4099a0f4f8fe";
+      sha256 = "3dd0c9dbb655c54db0b672ef3ca4b61bbe6a488185d92814e474da58b15ac7e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/tr/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/tr/firefox-89.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "36d3142aee1011b41b8a91fb8b5f1e7cbf6011b55acb93b0a24b9fcdb41077ad";
+      sha256 = "442f82197c929080e432817a7cfe42fafee2640799596ab5fcc55d4dd6e7a296";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/trs/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/trs/firefox-89.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "2f8f414f0c0ca102e359df2b24090e23d9a440b971506058be4ab14d2c72e88c";
+      sha256 = "98f10ccebd94fb4d0fd68bee80a691248e0033e1e33f03f97dcd9e3b3c602712";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/uk/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/uk/firefox-89.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "671523abb993c10c355f23029dee6f718b1c3934b9dc84c9c9c67a1fea97c08a";
+      sha256 = "99cf2753defcec16447dc176b331ce6e6e70f66dacbc341e3f719cf9392d0acc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ur/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/ur/firefox-89.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "e88871cd7d3bb4eed5a466d46f19b7564bacc2274fd9dca198abf690c09f1173";
+      sha256 = "904484ad86e2e27d792b40aaa8a73857476c786cf500344305795bfbad87cba7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/uz/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/uz/firefox-89.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "d8c6d54bf364fdfce2c47554f2e476dc1578334b5fc7f2c35fe5e75729d0a759";
+      sha256 = "b44a544c6f473a0b4d1c4b408d5fbde422199e23b3b85957b60d2eaf27351b2d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/vi/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/vi/firefox-89.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "ef62bf56b514342e96c846a8d60da76b13955cab1a65c9d5e06e5add80676d4b";
+      sha256 = "e4f5417a5e294ab2b38744a260280c1307c47b072aa78657ba1143020c26c778";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/xh/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/xh/firefox-89.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "30c97916ef8964ec1b15ab08bed806867262fecf07d0e486e8b4821f2839a214";
+      sha256 = "39ce93e0459299d54a99c317d0dd8b01cb694a8140d5036f09e13d72887a8d6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/zh-CN/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/zh-CN/firefox-89.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "6aca619cf86cec55e4712c2365e0ffa06c3a13b9df0cf64df80ea6ac07036400";
+      sha256 = "7f6ae88c4eda5fb7893e7b35f9ae04df658f78919fe3476ba78fe2460a2896ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/zh-TW/firefox-88.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/89.0/linux-i686/zh-TW/firefox-89.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "4c60f41d35bc74fdda6b3cbdd0b7bb19883bb2e977bcd04bb50ae014d0f8c3d4";
+      sha256 = "7e6db3c697021be17253b616d348e67df62ea3d86828af768881f67f4d340379";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
index 1f8519522499..c10d7b606871 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
@@ -18,7 +18,7 @@
 
 ## optional libraries
 
-, alsaSupport ? stdenv.isLinux, alsaLib
+, alsaSupport ? stdenv.isLinux, alsa-lib
 , pulseaudioSupport ? stdenv.isLinux, libpulseaudio
 , ffmpegSupport ? true
 , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
@@ -98,19 +98,27 @@ let
   # clang LTO on Darwin is broken so the stdenv is not being changed.
   # Target the LLVM version that rustc -Vv reports it is built with for LTO.
   # rustPackages_1_45 -> LLVM 10, rustPackages -> LLVM 11
-  llvmPackages = if stdenv.isDarwin
-                 then buildPackages.llvmPackages
-                 else if lib.versionAtLeast rustc.llvm.version "11"
-                      then buildPackages.llvmPackages_11
-                      else buildPackages.llvmPackages_10;
+  llvmPackages0 =
+    /**/ if stdenv.isDarwin
+      then buildPackages.llvmPackages
+    else if lib.versionAtLeast rustc.llvm.version "11"
+      then buildPackages.llvmPackages_11
+    else buildPackages.llvmPackages_10;
+  # Force the use of lld and other llvm tools for LTO
+  llvmPackages = llvmPackages0.override {
+    bootBintoolsNoLibc = null;
+    bootBintools = null;
+  };
 
   # When LTO for Darwin is fixed, the following will need updating as lld
   # doesn't work on it. For now it is fine since ltoSupport implies no Darwin.
   buildStdenv = if ltoSupport
-                then overrideCC stdenv llvmPackages.lldClang
+                then overrideCC stdenv llvmPackages.clangUseLLVM
                 else stdenv;
 
-  nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss;
+  # Disable p11-kit support in nss until our cacert packages has caught up exposing CKA_NSS_MOZILLA_CA_POLICY
+  # https://github.com/NixOS/nixpkgs/issues/126065
+  nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss.override { useP11kit = false; };
 
   # --enable-release adds -ffunction-sections & LTO that require a big amount of
   # RAM and the 32-bit memory space cannot handle that linking
@@ -172,7 +180,7 @@ buildStdenv.mkDerivation ({
     # https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ
     nspr nss_pkg
   ]
-  ++ lib.optional  alsaSupport alsaLib
+  ++ lib.optional  alsaSupport alsa-lib
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optional  gtk3Support gtk3
   ++ lib.optional  gssSupport libkrb5
@@ -248,8 +256,8 @@ buildStdenv.mkDerivation ({
       $(< ${buildStdenv.cc}/nix-support/libc-cflags) \
       $(< ${buildStdenv.cc}/nix-support/cc-cflags) \
       $(< ${buildStdenv.cc}/nix-support/libcxx-cxxflags) \
-      ${lib.optionalString buildStdenv.cc.isClang "-idirafter ${buildStdenv.cc.cc}/lib/clang/${lib.getVersion buildStdenv.cc.cc}/include"} \
-      ${lib.optionalString buildStdenv.cc.isGNU "-isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc} -isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc}/${buildStdenv.hostPlatform.config}"} \
+      ${lib.optionalString buildStdenv.cc.isClang "-idirafter ${buildStdenv.cc.cc.lib}/lib/clang/${lib.getVersion buildStdenv.cc.cc}/include"} \
+      ${lib.optionalString buildStdenv.cc.isGNU "-isystem ${lib.getDev buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc} -isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc}/${buildStdenv.hostPlatform.config}"} \
       $NIX_CFLAGS_COMPILE"
 
     echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
@@ -282,7 +290,7 @@ buildStdenv.mkDerivation ({
     "--disable-updater"
     "--enable-jemalloc"
     "--enable-default-toolkit=${default-toolkit}"
-    "--with-libclang-path=${llvmPackages.libclang}/lib"
+    "--with-libclang-path=${llvmPackages.libclang.lib}/lib"
     "--with-system-nspr"
     "--with-system-nss"
   ]
@@ -321,11 +329,11 @@ buildStdenv.mkDerivation ({
     "BUILD_OFFICIAL=1"
   ]
   ++ lib.optionals ltoSupport [
-    "AR=${llvmPackages.bintools}/bin/llvm-ar"
-    "LLVM_OBJDUMP=${llvmPackages.bintools}/bin/llvm-objdump"
-    "NM=${llvmPackages.bintools}/bin/llvm-nm"
-    "RANLIB=${llvmPackages.bintools}/bin/llvm-ranlib"
-    "STRIP=${llvmPackages.bintools}/bin/llvm-strip"
+    "AR=${buildStdenv.cc.bintools.bintools}/bin/llvm-ar"
+    "LLVM_OBJDUMP=${buildStdenv.cc.bintools.bintools}/bin/llvm-objdump"
+    "NM=${buildStdenv.cc.bintools.bintools}/bin/llvm-nm"
+    "RANLIB=${buildStdenv.cc.bintools.bintools}/bin/llvm-ranlib"
+    "STRIP=${buildStdenv.cc.bintools.bintools}/bin/llvm-strip"
   ]
   ++ extraMakeFlags;
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
index 6dda732cd9be..509380cf4310 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -3,10 +3,10 @@
 rec {
   firefox = firefoxCommon rec {
     pname = "firefox";
-    ffversion = "88.0";
+    ffversion = "89.0";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "f58f44f2f0d0f54eae5ab4fa439205feb8b9209b1bf2ea2ae0c9691e9e583bae2cbd4033edb5bdf4e37eda5b95fca688499bed000fe26ced8ff4bbc49347ce31";
+      sha512 = "5089720feda15d054d0aa4c3bdeb84760314dadd6381d7360e688d8e396154868220c6315add650d8d2a42652cb8a9bfeb833885812ef0bd70a74ee58ad18aa3";
     };
 
     meta = {
@@ -28,10 +28,10 @@ rec {
 
   firefox-esr-78 = firefoxCommon rec {
     pname = "firefox-esr";
-    ffversion = "78.10.0esr";
+    ffversion = "78.11.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "5e2cf137dc781855542c29df6152fa74ba749801640ade3cf01487ce993786b87a4f603d25c0af9323e67c7e15c75655523428c1c1426527b8623c7ded9f5946";
+      sha512 = "d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4";
     };
 
     meta = {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 62bb722652a7..53c461641dc1 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -2,8 +2,8 @@
 , replace, fetchurl, zip, unzip, jq, xdg-utils, writeText
 
 ## various stuff that can be plugged in
-, ffmpeg, xorg, alsaLib, libpulseaudio, libcanberra-gtk2, libglvnd, libnotify
-, gnome3/*.gnome-shell*/
+, ffmpeg, xorg, alsa-lib, libpulseaudio, libcanberra-gtk2, libglvnd, libnotify
+, gnome/*.gnome-shell*/
 , browserpass, chrome-gnome-shell, uget-integrator, plasma5Packages, bukubrow, pipewire
 , tridactyl-native
 , fx_cast_bridge
@@ -68,9 +68,9 @@ let
             ++ lib.optional gssSupport libkrb5
             ++ lib.optional useGlvnd libglvnd
             ++ lib.optionals (cfg.enableQuakeLive or false)
-            (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
+            (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsa-lib zlib ])
             ++ lib.optional (config.pulseaudio or true) libpulseaudio
-            ++ lib.optional alsaSupport alsaLib
+            ++ lib.optional alsaSupport alsa-lib
             ++ pkcs11Modules;
       gtk_modules = [ libcanberra-gtk2 ];
 
@@ -269,7 +269,7 @@ let
               --set MOZ_ENABLE_WAYLAND "1" \
             ''}${lib.optionalString (browser ? gtk3)
                 ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
-                  --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share'
+                  --suffix XDG_DATA_DIRS : '${gnome.adwaita-icon-theme}/share'
                 ''
             }
         #############################
@@ -303,10 +303,6 @@ let
             ln -sLt $out/lib/mozilla/pkcs11-modules $ext/lib/mozilla/pkcs11-modules/*
         done
 
-        # For manpages, in case the program supplies them
-        mkdir -p $out/nix-support
-        echo ${browser} > $out/nix-support/propagated-user-env-packages
-
 
         #########################
         #                       #
diff --git a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
index d903cb3c0831..ec03a77d2680 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -3,7 +3,7 @@
 # Linked dynamic libraries.
 , glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
 , libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
-, alsaLib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
+, alsa-lib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
 , dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
 , libkrb5, libdrm, mesa
 , libxkbcommon, wayland # ozone/wayland
@@ -38,7 +38,7 @@
 , chromium
 
 , gsettings-desktop-schemas
-, gnome3
+, gnome
 
 # For video acceleration via VA-API (--enable-features=VaapiVideoDecoder)
 , libvaSupport ? true, libva
@@ -59,7 +59,7 @@ let
   deps = [
     glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr
     libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb
-    alsaLib libXdamage libXtst libXrandr libxshmfence expat cups
+    alsa-lib libXdamage libXtst libXrandr libxshmfence expat cups
     dbus gdk-pixbuf gcc-unwrapped.lib
     systemd
     libexif
@@ -88,7 +88,7 @@ in stdenv.mkDerivation {
     gsettings-desktop-schemas glib gtk3
 
     # needed for XDG_ICON_DIRS
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   unpackPhase = ''
@@ -146,7 +146,7 @@ in stdenv.mkDerivation {
       --prefix XDG_DATA_DIRS   : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
       --add-flags ${escapeShellArg commandLineArgs}
 
-    for elf in $out/share/google/$appname/{chrome,chrome-sandbox,nacl_helper}; do
+    for elf in $out/share/google/$appname/{chrome,chrome-sandbox,crashpad_handler,nacl_helper}; do
       patchelf --set-rpath $rpath $elf
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
     done
@@ -161,5 +161,8 @@ in stdenv.mkDerivation {
     # will try to merge PRs and respond to issues but I'm not actually using
     # Google Chrome.
     platforms = [ "x86_64-linux" ];
+    mainProgram =
+      if (channel == "dev") then "google-chrome-unstable"
+      else "google-chrome-${channel}";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
index abb0bd15515a..436bccba47a3 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -10,23 +10,24 @@
 , pcre
 , SDL2
 , AppKit
+, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "lagrange";
-  version = "1.3.2";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "sha256-90MN7JH84h10dSXt5Kwc2V3FKVutQ7AmNcR4TK2bpBY=";
+    sha256 = "sha256-W7uSyApTKBTE7bgprgCd8T5dKQ/nLYKIzFxjDMCRmZQ=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ libunistring mpg123 openssl pcre SDL2 ]
+  buildInputs = [ libunistring mpg123 openssl pcre SDL2 zlib ]
     ++ lib.optional stdenv.isDarwin AppKit;
 
   hardeningDisable = lib.optional (!stdenv.cc.isClang) "format";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
index a6cf5ad531e5..81555fa63411 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.22";
+  version = "2.23";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "sha256-A2SYazp/Ho4xcb6jYrU/ceHdM2CohC1m/cZVgOvCCE0=";
+    sha256 = "sha256-ZmDSAvUh/Ri/UYTD8XMtH6dCahAzdCd60c245XzmrEU=";
   };
 
   buildInputs = with lib;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
index 1f8cb7464651..59bb2adbf518 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)";
     homepage = "https://nyxt.atlas.engineer";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ lewo ];
+    maintainers = with maintainers; [ lewo payas ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
index eefe7af26a1b..0bad6c58d0a1 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib
+{ alsa-lib
 , atk
 , cairo
 , cups
@@ -26,9 +26,12 @@
 , libXrandr
 , libXrender
 , libXtst
+, libdrm
 , libnotify
 , libpulseaudio
 , libuuid
+, libxshmfence
+, mesa
 , nspr
 , nss
 , pango
@@ -47,11 +50,11 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "opera";
-  version = "68.0.3618.63";
+  version = "76.0.4017.94";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    sha256 = "1643043ywz94x2yr7xyw7krfq53iwkr8qxlbydzq6zb2zina7jxd";
+    sha256 = "sha256-vjSfzkl1jIQ9P1ARDa0eOuD8CmKHIEZ+IwMB2wIVjE8=";
   };
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
@@ -62,7 +65,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     at-spi2-core
     atk
@@ -88,9 +91,12 @@ in stdenv.mkDerivation rec {
     libXrandr
     libXrender
     libXtst
+    libdrm
     libnotify
     libuuid
     libxcb
+    libxshmfence
+    mesa
     nspr
     nss
     pango
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
index 554167c35745..6afdf61886aa 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,29 +1,65 @@
-{ stdenv, lib, fetchFromGitHub, writeScript, desktop-file-utils
-, pkg-config, autoconf213, alsaLib, bzip2, cairo
-, dbus, dbus-glib, ffmpeg, file, fontconfig, freetype
-, gnome2, gnum4, gtk2, hunspell, libevent, libjpeg
-, libnotify, libstartup_notification, wrapGAppsHook
-, libGLU, libGL, perl, python2, libpulseaudio
-, unzip, xorg, wget, which, yasm, zip, zlib
-
-, withGTK3 ? true, gtk3
+{ stdenv
+, lib
+, fetchFromGitHub
+, writeScript
+, alsa-lib
+, autoconf213
+, cairo
+, desktop-file-utils
+, dbus
+, dbus-glib
+, ffmpeg
+, fontconfig
+, freetype
+, gnome2
+, gnum4
+, gtk2
+, libevent
+, libGL
+, libGLU
+, libnotify
+, libpulseaudio
+, libstartup_notification
+, perl
+, pkg-config
+, python2
+, unzip
+, which
+, wrapGAppsHook
+, xorg
+, yasm
+, zip
+, zlib
+, withGTK3 ? true
+, gtk3
 }:
 
-let
+# Only specific GCC versions are supported with branding
+# https://developer.palemoon.org/build/linux/
+assert stdenv.cc.isGNU;
+assert with lib.strings; (
+  versionAtLeast stdenv.cc.version "4.9"
+  && !hasPrefix "6" stdenv.cc.version
+  && versionOlder stdenv.cc.version "11"
+);
 
-  libPath = lib.makeLibraryPath [ ffmpeg libpulseaudio ];
+let
+  libPath = lib.makeLibraryPath [
+    ffmpeg
+    libpulseaudio
+  ];
   gtkVersion = if withGTK3 then "3" else "2";
-
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.1.1";
+  version = "29.2.1";
 
   src = fetchFromGitHub {
     githubBase = "repo.palemoon.org";
     owner = "MoonchildProductions";
     repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "1ppdmj816zwccb0l0mgpq14ckdwg785wmqz41wran0nl63fg6i1x";
+    sha256 = "0djjl79jrnny16p32db5w7pwwv0a24dc8mg1s1bnavhlvmmk52vq";
     fetchSubmodules = true;
   };
 
@@ -43,24 +79,55 @@ in stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook unzip
+    autoconf213
+    desktop-file-utils
+    gnum4
+    perl
+    pkg-config
+    python2
+    unzip
+    which
+    wrapGAppsHook
+    yasm
+    zip
   ];
 
   buildInputs = [
-    alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype
-    gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
-    libstartup_notification libGLU libGL
-    libpulseaudio yasm zip zlib
+    alsa-lib
+    cairo
+    dbus
+    dbus-glib
+    ffmpeg
+    fontconfig
+    freetype
+    gnome2.GConf
+    gtk2
+    libevent
+    libGL
+    libGLU
+    libnotify
+    libpulseaudio
+    libstartup_notification
+    zlib
   ]
   ++ (with xorg; [
-    libX11 libXext libXft libXi libXrender libXScrnSaver
-    libXt pixman xorgproto
+    libX11
+    libXext
+    libXft
+    libXi
+    libXrender
+    libXScrnSaver
+    libXt
+    pixman
+    xorgproto
   ])
   ++ lib.optional withGTK3 gtk3;
 
   enableParallelBuilding = true;
 
   configurePhase = ''
+    runHook preConfigure
+
     export MOZCONFIG=$PWD/mozconfig
     export MOZ_NOSPAM=1
 
@@ -81,6 +148,7 @@ in stdenv.mkDerivation rec {
     ac_add_options --enable-jemalloc
     ac_add_options --enable-strip
     ac_add_options --enable-devtools
+    ac_add_options --enable-av1
 
     ac_add_options --disable-eme
     ac_add_options --disable-webrtc
@@ -96,13 +164,8 @@ in stdenv.mkDerivation rec {
     ac_add_options --enable-official-branding
     export MOZILLA_OFFICIAL=1
 
-    # For versions after 28.12.0
-    ac_add_options --enable-phoenix-extensions
-
     ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}
 
-    export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION
-
     #
     # NixOS-specific adjustments
     #
@@ -112,24 +175,42 @@ in stdenv.mkDerivation rec {
     mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
     mk_add_options AUTOCONF=${autoconf213}/bin/autoconf
     '
+
+    runHook postConfigure
   '';
 
-  buildPhase = "./mach build";
+  buildPhase = ''
+    runHook preBuild
+
+    ./mach build
+
+    runHook postBuild
+  '';
 
   installPhase = ''
+    runHook preInstall
+
     ./mach install
 
     # Fix missing icon due to wrong WMClass
+    # https://forum.palemoon.org/viewtopic.php?f=3&t=26746&p=214221#p214221
     substituteInPlace ./palemoon/branding/official/palemoon.desktop \
       --replace 'StartupWMClass="pale moon"' 'StartupWMClass=Pale moon'
     desktop-file-install --dir=$out/share/applications \
       ./palemoon/branding/official/palemoon.desktop
 
+    # Install official branding icons
     for iconname in default{16,22,24,32,48,256} mozicon128; do
       n=''${iconname//[^0-9]/}
       size=$n"x"$n
       install -Dm644 ./palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png
     done
+
+    # Remove unneeded SDK data from installation
+    # https://forum.palemoon.org/viewtopic.php?f=37&t=26796&p=214676#p214729
+    rm -rf $out/{include,share/idl,lib/palemoon-devel-${version}}
+
+    runHook postInstall
   '';
 
   dontWrapGApps = true;
@@ -154,9 +235,10 @@ in stdenv.mkDerivation rec {
       experience, while offering full customization and a growing collection of
       extensions and themes to make the browser truly your own.
     '';
-    homepage    = "https://www.palemoon.org/";
-    license     = licenses.mpl20;
+    homepage = "https://www.palemoon.org/";
+    changelog = "https://repo.palemoon.org/MoonchildProductions/Pale-Moon/releases/tag/${version}_Release";
+    license = licenses.mpl20;
     maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
-    platforms   = [ "i686-linux" "x86_64-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 5c3bbeb3c048..1f03184eeed4 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, fetchzip, fetchpatch, python3
+{ stdenv, lib, fetchurl, fetchzip, python3
 , mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, qtwebengine, glib-networking
-, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
+, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, pipewire_0_2
 , libxslt, gst_all_1 ? null
 , withPdfReader      ? true
 , withMediaPlayback  ? true
@@ -31,12 +31,12 @@ let
 
 in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "2.2.0";
+  version = "2.2.3";
 
   # the release tarballs are different from the git checkout!
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256:0anxhrkxqb35mxr7jr820xcfw0v514s92wffsiqap2a2sqaj0pgs";
+    sha256 = "sha256-BoP168jxj94nvkrcgC83fPw/TPRsI2PbCooqzWNF62I=";
   };
 
   # Needs tox
@@ -69,11 +69,6 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
 
   patches = [
     ./fix-restart.patch
-    (fetchpatch {
-      name = "add-qtwebengine-version-override.patch";
-      url = "https://github.com/qutebrowser/qutebrowser/commit/febb921040b6670d9b1694a6ce55ae39384d1306.patch";
-      sha256 = "15p11kk8via7c7m14jiqgzc63qwxxzayr2bkl93jd10l2gx7pk9v";
-    })
   ];
 
   dontWrapGApps = true;
@@ -117,12 +112,16 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
     done
   '';
 
-  preFixup = ''
+  preFixup = let
+    libPath = lib.makeLibraryPath [ pipewire_0_2 ];
+  in
+    ''
     makeWrapperArgs+=(
       "''${gappsWrapperArgs[@]}"
       "''${qtWrapperArgs[@]}"
       --add-flags '--backend ${backend}'
       --set QUTE_QTWEBENGINE_VERSION_OVERRIDE "${lib.getVersion qtwebengine}"
+      ${lib.optionalString (!stdenv.isDarwin && backend == "webengine") ''--prefix LD_LIBRARY_PATH : ${libPath}''}
     )
   '';
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
index 26cbc92adace..7bf3ee9e75b0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
@@ -7,12 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "surf";
-  version = "unstable-2019-02-08";
+  version = "2.1";
 
+  # tarball is missing file common.h
   src = fetchgit {
     url = "git://git.suckless.org/surf";
-    rev = "d068a3878b6b9f2841a49cd7948cdf9d62b55585";
-    sha256 = "0pjsv2q8c74sdmqsalym8wa2lv55lj4pd36miam5wd12769xw68m";
+    rev = version;
+    sha256 = "1v926hiayddylq79n8l7dy51bm0dsa9n18nx9bkhg666cx973x4z";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 3f3eec49c94e..09128301d6c8 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -29,14 +29,14 @@
 
 # Media support (implies audio support)
 , mediaSupport ? true
-, ffmpeg_3
+, ffmpeg
 
 , gmp
 
 # Wrapper runtime
 , coreutils
 , glibcLocales
-, gnome3
+, gnome
 , runtimeShell
 , shared-mime-info
 , gsettings-desktop-schemas
@@ -81,26 +81,26 @@ let
   ]
   ++ optionals pulseaudioSupport [ libpulseaudio ]
   ++ optionals mediaSupport [
-    ffmpeg_3
+    ffmpeg
   ];
 
   # Library search path for the fte transport
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "10.0.16";
+  version = "10.0.17";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "07h2gd6cwwq17lrwjpfah1xvr8ny8700qvi971qacrr7ssicw2pw";
+      sha256 = "13x38n1cvqmxjz0jf2fda8lx2k25szzmg7gvv08z3q5na7109m2m";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "145kniiby5nnd0ll3v2gggzxz52bqbrdp72hvh96i8qnzi0fq25a";
+      sha256 = "0f0ndwmzh732svwbcf1lbxlvdxw4i4d56w9xdl5fxd4n7ivqml1q";
     };
   };
 in
@@ -246,7 +246,7 @@ stdenv.mkDerivation rec {
       "${graphene-hardened-malloc}/lib/libhardened_malloc.so"}
 
     WRAPPER_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [
-      gnome3.adwaita-icon-theme
+      gnome.adwaita-icon-theme
       shared-mime-info
     ]}
     WRAPPER_XDG_DATA_DIRS+=":"${concatMapStringsSep ":" (x: "${x}/share/gsettings-schemas/${x.name}") [
@@ -402,6 +402,7 @@ stdenv.mkDerivation rec {
     changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}";
     platforms = attrNames srcs;
     maintainers = with maintainers; [ offline matejc thoughtpolice joachifm hax404 cap KarlJoad ];
+    mainProgram = "tor-browser";
     hydraPlatforms = [];
     # MPL2.0+, GPL+, &c.  While it's not entirely clear whether
     # the compound is "libre" in a strict sense (some components place certain
diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
deleted file mode 100644
index 7356768f3973..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-{ stdenv
-, fetchgit
-, fetchurl
-
-# common
-, zip
-
-# HTTPS Everywhere
-, git
-, libxml2 # xmllint
-, python27
-, python27Packages
-, rsync
-}:
-
-{
-  https-everywhere = stdenv.mkDerivation rec {
-    pname = "https-everywhere";
-    version = "2017.10.4";
-
-    extid = "https-everywhere-eff@eff.org";
-
-    src = fetchgit {
-      url = "https://git.torproject.org/https-everywhere.git";
-      rev = "refs/tags/${version}";
-      sha256 = "1g7971xygnhagnb25xjdf6mli6091ai9igx42d0ww88g8i0cqfzj";
-      fetchSubmodules = true; # for translations, TODO: remove
-    };
-
-    nativeBuildInputs = [
-      git
-      libxml2 # xmllint
-      python27
-      python27Packages.lxml
-      rsync
-      zip
-    ];
-
-    buildPhase = ''
-      $shell ./makexpi.sh ${version} --no-recurse
-    '';
-
-    installPhase = ''
-      install -m 444 -D pkg/https-everywhere-$version-eff.xpi "$out/$extid.xpi"
-    '';
-  };
-
-  noscript = stdenv.mkDerivation rec {
-    pname = "noscript";
-    version = "5.1.2";
-
-    extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
-
-    src = fetchurl {
-      url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi";
-      sha256 = "1fzspdiwhjabwz1yxb3gzj7giz9jbc1xxm65i93rvhzcp537cs42";
-    };
-
-    dontUnpack = true;
-
-    installPhase = ''
-      install -m 444 -D $src "$out/$extid.xpi"
-    '';
-  };
-
-  torbutton = stdenv.mkDerivation rec {
-    pname = "torbutton";
-    version = "1.9.8.1";
-
-    extid = "torbutton@torproject.org";
-
-    src = fetchgit {
-      url = "https://git.torproject.org/torbutton.git";
-      rev = "refs/tags/${version}";
-      sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l";
-    };
-
-    nativeBuildInputs = [ zip ];
-
-    buildPhase = ''
-      $shell ./makexpi.sh
-    '';
-
-    installPhase = ''
-      install -m 444 -D pkg/torbutton-$version.xpi "$out/$extid.xpi"
-    '';
-  };
-
-  tor-launcher = stdenv.mkDerivation rec {
-    pname = "tor-launcher";
-    version = "0.2.13";
-
-    extid = "tor-launcher@torproject.org";
-
-    src = fetchgit {
-      url = "https://git.torproject.org/tor-launcher.git";
-      rev = "refs/tags/${version}";
-      sha256 = "1f98v88y2clwvjiw77kxqc9cacp5h0489a540nc2wmsx7vnskrq0";
-    };
-
-    nativeBuildInputs = [ zip ];
-
-    buildPhase = ''
-      make package
-    '';
-
-    installPhase = ''
-      install -m 444 -D pkg/tor-launcher-$version.xpi "$out/$extid.xpi"
-    '';
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
index 495c2bb15d68..5a2b45725df6 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix
@@ -2,13 +2,13 @@
 
 mkYarnPackage rec {
   pname = "vieb";
-  version = "3.4.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "jelmerro";
     repo = pname;
     rev = version;
-    sha256 = "0h5yzmvs9zhhpg9l7rrgwd4rqd9n00n2ifwqf05kpymzliy6xsnk";
+    sha256 = "sha256-0C2gD40nPgEZopGMPsd5ajwcwFRjcu4Xc2DTpEwSK4c=";
   };
 
   packageJSON = ./package.json;
@@ -51,8 +51,8 @@ mkYarnPackage rec {
   meta = with lib; {
     homepage = "https://vieb.dev/";
     description = "Vim Inspired Electron Browser";
-    maintainers = with maintainers; [ gebner ];
+    maintainers = with maintainers; [ gebner fortuneteller2k ];
     platforms = platforms.unix;
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json b/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json
index cf04c6892c89..94effdaa2e51 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json
@@ -1,39 +1,51 @@
 {
   "name": "vieb",
   "productName": "Vieb",
-  "version": "3.4.0",
+  "version": "5.1.0",
   "description": "Vim Inspired Electron Browser",
+  "bin": "app.js",
   "main": "app/index.js",
   "scripts": {
-    "test": "jest -u && eslint .",
-    "start": "electron app",
     "build": "node build.js",
     "buildall": "node build.js --linux --win --mac",
     "buildlinux": "node build.js --linux",
+    "buildmac": "node build.js --mac",
     "buildwin": "node build.js --win",
-    "buildmac": "node build.js --mac"
+    "dev": "electron app --datafolder=./ViebData/",
+    "fix": "eslint --fix app .eslintrc.js build.js",
+    "lint": "eslint app .eslintrc.js build.js",
+    "start": "electron app",
+    "test": "jest --testEnvironment jsdom --coverage --collectCoverageFrom 'app/**/*.js' -u && npm run lint && echo 'All good :)'"
   },
   "repository": "https://github.com/Jelmerro/Vieb",
   "homepage": "https://vieb.dev",
   "keywords": [
+    "Vim",
     "Electron",
     "Browser",
     "Internet"
   ],
   "author": "Jelmer van Arnhem",
   "email": "Jelmerro@users.noreply.github.com",
-  "license": "GPL-3.0+",
+  "license": "GPL-3.0-or-later",
   "devDependencies": {
-    "archiver": "^5.2.0",
-    "electron": "^11.2.1",
-    "electron-builder": "^22.10.4",
-    "eslint": "^7.19.0",
-    "jest": "^26.6.3"
+    "archiver": "5.3.0",
+    "electron": "13.1.1",
+    "electron-builder": "22.11.5",
+    "eslint": "7.28.0",
+    "eslint-plugin-compat": "3.9.0",
+    "eslint-plugin-sort-keys-fix": "1.1.1",
+    "jest-environment-jsdom": "27.0.3",
+    "jest": "27.0.4"
   },
   "dependencies": {
-    "@cliqz/adblocker-electron": "^1.20.0",
-    "darkreader": "^4.9.27",
-    "is-svg": "^4.2.1",
-    "rimraf": "^3.0.2"
-  }
+    "7zip-bin": "5.1.1",
+    "@cliqz/adblocker-electron": "1.22.1",
+    "@cliqz/adblocker-electron-preload": "1.22.1",
+    "is-svg": "4.3.1",
+    "rimraf": "3.0.2"
+  },
+  "browserslist": [
+    "last 2 Chrome versions"
+  ]
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock
index 45858ae2b28e..ff4a7248f61c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock
@@ -2,10 +2,10 @@
 # yarn lockfile v1
 
 
-"7zip-bin@~5.0.3":
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f"
-  integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==
+"7zip-bin@5.1.1", "7zip-bin@~5.1.1":
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876"
+  integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==
 
 "@babel/code-frame@7.12.11":
   version "7.12.11"
@@ -14,51 +14,66 @@
   dependencies:
     "@babel/highlight" "^7.10.4"
 
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13":
+"@babel/code-frame@^7.12.13":
   version "7.12.13"
   resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
   integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
   dependencies:
     "@babel/highlight" "^7.12.13"
 
-"@babel/core@^7.1.0", "@babel/core@^7.7.5":
-  version "7.12.16"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.16.tgz#8c6ba456b23b680a6493ddcfcd9d3c3ad51cab7c"
-  integrity sha512-t/hHIB504wWceOeaOoONOhu+gX+hpjfeN6YRBT209X/4sibZQfSF1I0HFRRlBe97UZZosGx5XwUg1ZgNbelmNw==
+"@babel/compat-data@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58"
+  integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==
+
+"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38"
+  integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==
   dependencies:
     "@babel/code-frame" "^7.12.13"
-    "@babel/generator" "^7.12.15"
-    "@babel/helper-module-transforms" "^7.12.13"
-    "@babel/helpers" "^7.12.13"
-    "@babel/parser" "^7.12.16"
+    "@babel/generator" "^7.14.3"
+    "@babel/helper-compilation-targets" "^7.13.16"
+    "@babel/helper-module-transforms" "^7.14.2"
+    "@babel/helpers" "^7.14.0"
+    "@babel/parser" "^7.14.3"
     "@babel/template" "^7.12.13"
-    "@babel/traverse" "^7.12.13"
-    "@babel/types" "^7.12.13"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.2"
     convert-source-map "^1.7.0"
     debug "^4.1.0"
-    gensync "^1.0.0-beta.1"
+    gensync "^1.0.0-beta.2"
     json5 "^2.1.2"
-    lodash "^4.17.19"
-    semver "^5.4.1"
+    semver "^6.3.0"
     source-map "^0.5.0"
 
-"@babel/generator@^7.12.13", "@babel/generator@^7.12.15":
-  version "7.12.15"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f"
-  integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==
+"@babel/generator@^7.14.2", "@babel/generator@^7.14.3", "@babel/generator@^7.7.2":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
+  integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
   dependencies:
-    "@babel/types" "^7.12.13"
+    "@babel/types" "^7.14.2"
     jsesc "^2.5.1"
     source-map "^0.5.0"
 
-"@babel/helper-function-name@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
-  integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==
+"@babel/helper-compilation-targets@^7.13.16":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516"
+  integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==
+  dependencies:
+    "@babel/compat-data" "^7.14.4"
+    "@babel/helper-validator-option" "^7.12.17"
+    browserslist "^4.16.6"
+    semver "^6.3.0"
+
+"@babel/helper-function-name@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
+  integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
   dependencies:
     "@babel/helper-get-function-arity" "^7.12.13"
     "@babel/template" "^7.12.13"
-    "@babel/types" "^7.12.13"
+    "@babel/types" "^7.14.2"
 
 "@babel/helper-get-function-arity@^7.12.13":
   version "7.12.13"
@@ -67,34 +82,33 @@
   dependencies:
     "@babel/types" "^7.12.13"
 
-"@babel/helper-member-expression-to-functions@^7.12.13":
-  version "7.12.16"
-  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz#41e0916b99f8d5f43da4f05d85f4930fa3d62b22"
-  integrity sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==
+"@babel/helper-member-expression-to-functions@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
+  integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==
   dependencies:
-    "@babel/types" "^7.12.13"
+    "@babel/types" "^7.13.12"
 
-"@babel/helper-module-imports@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0"
-  integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==
+"@babel/helper-module-imports@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
+  integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==
   dependencies:
-    "@babel/types" "^7.12.13"
+    "@babel/types" "^7.13.12"
 
-"@babel/helper-module-transforms@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz#01afb052dcad2044289b7b20beb3fa8bd0265bea"
-  integrity sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==
+"@babel/helper-module-transforms@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
+  integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
   dependencies:
-    "@babel/helper-module-imports" "^7.12.13"
-    "@babel/helper-replace-supers" "^7.12.13"
-    "@babel/helper-simple-access" "^7.12.13"
+    "@babel/helper-module-imports" "^7.13.12"
+    "@babel/helper-replace-supers" "^7.13.12"
+    "@babel/helper-simple-access" "^7.13.12"
     "@babel/helper-split-export-declaration" "^7.12.13"
-    "@babel/helper-validator-identifier" "^7.12.11"
+    "@babel/helper-validator-identifier" "^7.14.0"
     "@babel/template" "^7.12.13"
-    "@babel/traverse" "^7.12.13"
-    "@babel/types" "^7.12.13"
-    lodash "^4.17.19"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.2"
 
 "@babel/helper-optimise-call-expression@^7.12.13":
   version "7.12.13"
@@ -104,26 +118,26 @@
     "@babel/types" "^7.12.13"
 
 "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb"
-  integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
+  integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
 
-"@babel/helper-replace-supers@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121"
-  integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==
+"@babel/helper-replace-supers@^7.13.12":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836"
+  integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==
   dependencies:
-    "@babel/helper-member-expression-to-functions" "^7.12.13"
+    "@babel/helper-member-expression-to-functions" "^7.13.12"
     "@babel/helper-optimise-call-expression" "^7.12.13"
-    "@babel/traverse" "^7.12.13"
-    "@babel/types" "^7.12.13"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.4"
 
-"@babel/helper-simple-access@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4"
-  integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==
+"@babel/helper-simple-access@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
+  integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
   dependencies:
-    "@babel/types" "^7.12.13"
+    "@babel/types" "^7.13.12"
 
 "@babel/helper-split-export-declaration@^7.12.13":
   version "7.12.13"
@@ -132,33 +146,38 @@
   dependencies:
     "@babel/types" "^7.12.13"
 
-"@babel/helper-validator-identifier@^7.12.11":
-  version "7.12.11"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
-  integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
+"@babel/helper-validator-identifier@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
+  integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
 
-"@babel/helpers@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz#3c75e993632e4dadc0274eae219c73eb7645ba47"
-  integrity sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==
+"@babel/helper-validator-option@^7.12.17":
+  version "7.12.17"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
+  integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
+
+"@babel/helpers@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
+  integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
   dependencies:
     "@babel/template" "^7.12.13"
-    "@babel/traverse" "^7.12.13"
-    "@babel/types" "^7.12.13"
+    "@babel/traverse" "^7.14.0"
+    "@babel/types" "^7.14.0"
 
 "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c"
-  integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
+  integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.12.11"
+    "@babel/helper-validator-identifier" "^7.14.0"
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.16":
-  version "7.12.16"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4"
-  integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==
+"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3", "@babel/parser@^7.7.2":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18"
+  integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==
 
 "@babel/plugin-syntax-async-generators@^7.8.4":
   version "7.8.4"
@@ -244,6 +263,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.12.13"
 
+"@babel/plugin-syntax-typescript@^7.7.2":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474"
+  integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
 "@babel/template@^7.12.13", "@babel/template@^7.3.3":
   version "7.12.13"
   resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
@@ -253,28 +279,26 @@
     "@babel/parser" "^7.12.13"
     "@babel/types" "^7.12.13"
 
-"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.13":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz#689f0e4b4c08587ad26622832632735fb8c4e0c0"
-  integrity sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2", "@babel/traverse@^7.7.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
+  integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
   dependencies:
     "@babel/code-frame" "^7.12.13"
-    "@babel/generator" "^7.12.13"
-    "@babel/helper-function-name" "^7.12.13"
+    "@babel/generator" "^7.14.2"
+    "@babel/helper-function-name" "^7.14.2"
     "@babel/helper-split-export-declaration" "^7.12.13"
-    "@babel/parser" "^7.12.13"
-    "@babel/types" "^7.12.13"
+    "@babel/parser" "^7.14.2"
+    "@babel/types" "^7.14.2"
     debug "^4.1.0"
     globals "^11.1.0"
-    lodash "^4.17.19"
 
-"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
-  version "7.12.13"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611"
-  integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==
+"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.14.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0"
+  integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.12.11"
-    lodash "^4.17.19"
+    "@babel/helper-validator-identifier" "^7.14.0"
     to-fast-properties "^2.0.0"
 
 "@bcoe/v8-coverage@^0.2.3":
@@ -282,56 +306,48 @@
   resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
   integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
 
-"@cliqz/adblocker-content@^1.20.0":
-  version "1.20.0"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.20.0.tgz#fcfa2845a577ba8d9af282afbae2fc437b3f1c70"
-  integrity sha512-KcokmK2B+tAnVMi7nGHgzXUVf78wAODG1Uk+K3tBPf9VAo3mwldYZ472uTj6LUfZv5oeTwe4PwfmPWXWZy3Eew==
+"@cliqz/adblocker-content@^1.22.1":
+  version "1.22.1"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.22.1.tgz#71bc0d0d473ae96d5086badb2f4d624769fa56c4"
+  integrity sha512-CSOCdK/SJOZVWGVJuurfL0KtPq1AhSp3ng6BAo3SLXAd+WP7obERw2qFWQ0uzrApY/N1a1hvzfw31uonqRakXg==
   dependencies:
-    "@cliqz/adblocker-extended-selectors" "^1.20.0"
+    "@cliqz/adblocker-extended-selectors" "^1.22.1"
 
-"@cliqz/adblocker-electron-preload@^1.20.0":
-  version "1.20.0"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.20.0.tgz#997b694fbb1b1206e04b1fd570690234cc7ef630"
-  integrity sha512-brNQFjIoGTMClmFphtoK0EnjOlbqfxr6sA3CrOZiHfG0e07Id5GoU95re8+s8xA+/nd1GrJl/k5/b4aks+S9Gw==
+"@cliqz/adblocker-electron-preload@1.22.1", "@cliqz/adblocker-electron-preload@^1.22.1":
+  version "1.22.1"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.22.1.tgz#8ce8c18d0ce5f7afa7c1dfe1f4cba30ada86f4af"
+  integrity sha512-etkb6LNUaCViZ2Bg7Z0fwpKsdsrmHF6Qjqs5u7FcfS4fSZ2TgDv7Ir5PunUWd6MOUW7mapx5CdPIupnlVkiTLA==
   dependencies:
-    "@cliqz/adblocker-content" "^1.20.0"
+    "@cliqz/adblocker-content" "^1.22.1"
 
-"@cliqz/adblocker-electron@^1.20.0":
-  version "1.20.0"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.20.0.tgz#bacfb9feaf1d3dab339b992e3defa111a4b5ed3c"
-  integrity sha512-zD881g+YxxO4BM6NB5qZtSevg9Cj7QtlCJ4tkcKZnD9MDQsNXQVIFFEWwqhd00kLkTUS0+jT0px9b81cigAPNg==
+"@cliqz/adblocker-electron@1.22.1":
+  version "1.22.1"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.22.1.tgz#13fe6de4be0c3beb2851634b27ea1223d10ca92b"
+  integrity sha512-RZUog6ogMZnOx9Rz1LWIHE5MOWdDStfzkbfLpelka6PerRSKKltUvV4qwqM455eUMqHqPd27ZMM183+MQ85WpQ==
   dependencies:
-    "@cliqz/adblocker" "^1.20.0"
-    "@cliqz/adblocker-electron-preload" "^1.20.0"
+    "@cliqz/adblocker" "^1.22.1"
+    "@cliqz/adblocker-electron-preload" "^1.22.1"
     tldts-experimental "^5.6.21"
 
-"@cliqz/adblocker-extended-selectors@^1.20.0":
-  version "1.20.0"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.20.0.tgz#95ede657b670f627b39f92d85a97093cecee6ffe"
-  integrity sha512-dnBPIngGe1eDWvYX49eP2yyCE2AY1QD5E+8SaXW6lslnjS0GQnkcXCAkkGR2am4Qdk78HAiWTXL65Zt9hdkupA==
+"@cliqz/adblocker-extended-selectors@^1.22.1":
+  version "1.22.1"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.22.1.tgz#234ee70a1736e3690b25a7a073818f5a851bf9a8"
+  integrity sha512-uXB1TybAq6MgqsG09fcY8Qw0P9EOWp4G7KQ4QNXQd4HIP4o3zcJgBd5MKeclJAD/QOyPdhnb+a9JdwVFyqMamQ==
 
-"@cliqz/adblocker@^1.20.0":
-  version "1.20.0"
-  resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.20.0.tgz#514746e9ee72fcd886f1e2e1aaf13b28fc63f232"
-  integrity sha512-lkEj0Pj1ikwMURrvoFv0YnLfaXFuJI+jexI7zdh4fDmlwRppzDDgOhPXgCczoAlYacJk5x2mf7pan6JybRD9Kw==
+"@cliqz/adblocker@^1.22.1":
+  version "1.22.1"
+  resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.22.1.tgz#dae3dd6c59f16244012d1e736150f618b2d578e6"
+  integrity sha512-kir/tVTe0VabtJfcRipDX+/UBnZn0aN0lX4GQT7wZIHMOACpW37eix7wGkzVS+icbwu1bEqZ+O8Q98UlORPm4w==
   dependencies:
-    "@cliqz/adblocker-content" "^1.20.0"
-    "@cliqz/adblocker-extended-selectors" "^1.20.0"
+    "@cliqz/adblocker-content" "^1.22.1"
+    "@cliqz/adblocker-extended-selectors" "^1.22.1"
     "@remusao/guess-url-type" "^1.1.2"
     "@remusao/small" "^1.1.2"
     "@remusao/smaz" "^1.7.1"
-    "@types/chrome" "^0.0.128"
+    "@types/chrome" "^0.0.144"
     "@types/firefox-webext-browser" "^82.0.0"
     tldts-experimental "^5.6.21"
 
-"@cnakazawa/watch@^1.0.3":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
-  integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
-  dependencies:
-    exec-sh "^0.3.2"
-    minimist "^1.2.0"
-
 "@develar/schema-utils@~2.6.5":
   version "2.6.5"
   resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6"
@@ -356,10 +372,10 @@
     global-agent "^2.0.2"
     global-tunnel-ng "^2.7.1"
 
-"@electron/universal@1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.4.tgz#231ac246c39d45b80e159bd21c3f9027dcaa10f5"
-  integrity sha512-ajZoumi4XwqwmZe8YVhu4XGkZBCPyWZsVCQONPTIe9TUlleSN+dic3YpXlaWcilx/HOzTdldTKtabNTeI0gDoA==
+"@electron/universal@1.0.5":
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37"
+  integrity sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag==
   dependencies:
     "@malept/cross-spawn-promise" "^1.1.0"
     asar "^3.0.3"
@@ -367,19 +383,18 @@
     dir-compare "^2.4.0"
     fs-extra "^9.0.1"
 
-"@eslint/eslintrc@^0.3.0":
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318"
-  integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==
+"@eslint/eslintrc@^0.4.2":
+  version "0.4.2"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
+  integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==
   dependencies:
     ajv "^6.12.4"
     debug "^4.1.1"
     espree "^7.3.0"
-    globals "^12.1.0"
+    globals "^13.9.0"
     ignore "^4.0.6"
     import-fresh "^3.2.1"
     js-yaml "^3.13.1"
-    lodash "^4.17.20"
     minimatch "^3.0.4"
     strip-json-comments "^3.1.1"
 
@@ -399,93 +414,94 @@
   resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
   integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
 
-"@jest/console@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2"
-  integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==
+"@jest/console@^27.0.2":
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.2.tgz#b8eeff8f21ac51d224c851e1729d2630c18631e6"
+  integrity sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==
   dependencies:
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
     chalk "^4.0.0"
-    jest-message-util "^26.6.2"
-    jest-util "^26.6.2"
+    jest-message-util "^27.0.2"
+    jest-util "^27.0.2"
     slash "^3.0.0"
 
-"@jest/core@^26.6.3":
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad"
-  integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==
+"@jest/core@^27.0.4":
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.4.tgz#679bf9ac07900da2ddbb9667bb1afa8029038f53"
+  integrity sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA==
   dependencies:
-    "@jest/console" "^26.6.2"
-    "@jest/reporters" "^26.6.2"
-    "@jest/test-result" "^26.6.2"
-    "@jest/transform" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/console" "^27.0.2"
+    "@jest/reporters" "^27.0.4"
+    "@jest/test-result" "^27.0.2"
+    "@jest/transform" "^27.0.2"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
     ansi-escapes "^4.2.1"
     chalk "^4.0.0"
+    emittery "^0.8.1"
     exit "^0.1.2"
     graceful-fs "^4.2.4"
-    jest-changed-files "^26.6.2"
-    jest-config "^26.6.3"
-    jest-haste-map "^26.6.2"
-    jest-message-util "^26.6.2"
-    jest-regex-util "^26.0.0"
-    jest-resolve "^26.6.2"
-    jest-resolve-dependencies "^26.6.3"
-    jest-runner "^26.6.3"
-    jest-runtime "^26.6.3"
-    jest-snapshot "^26.6.2"
-    jest-util "^26.6.2"
-    jest-validate "^26.6.2"
-    jest-watcher "^26.6.2"
-    micromatch "^4.0.2"
+    jest-changed-files "^27.0.2"
+    jest-config "^27.0.4"
+    jest-haste-map "^27.0.2"
+    jest-message-util "^27.0.2"
+    jest-regex-util "^27.0.1"
+    jest-resolve "^27.0.4"
+    jest-resolve-dependencies "^27.0.4"
+    jest-runner "^27.0.4"
+    jest-runtime "^27.0.4"
+    jest-snapshot "^27.0.4"
+    jest-util "^27.0.2"
+    jest-validate "^27.0.2"
+    jest-watcher "^27.0.2"
+    micromatch "^4.0.4"
     p-each-series "^2.1.0"
     rimraf "^3.0.0"
     slash "^3.0.0"
     strip-ansi "^6.0.0"
 
-"@jest/environment@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c"
-  integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==
+"@jest/environment@^27.0.3":
+  version "27.0.3"
+  resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.3.tgz#68769b1dfdd213e3456169d64fbe9bd63a5fda92"
+  integrity sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA==
   dependencies:
-    "@jest/fake-timers" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/fake-timers" "^27.0.3"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
-    jest-mock "^26.6.2"
+    jest-mock "^27.0.3"
 
-"@jest/fake-timers@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad"
-  integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==
+"@jest/fake-timers@^27.0.3":
+  version "27.0.3"
+  resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.3.tgz#9899ba6304cc636734c74478df502e18136461dd"
+  integrity sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA==
   dependencies:
-    "@jest/types" "^26.6.2"
-    "@sinonjs/fake-timers" "^6.0.1"
+    "@jest/types" "^27.0.2"
+    "@sinonjs/fake-timers" "^7.0.2"
     "@types/node" "*"
-    jest-message-util "^26.6.2"
-    jest-mock "^26.6.2"
-    jest-util "^26.6.2"
+    jest-message-util "^27.0.2"
+    jest-mock "^27.0.3"
+    jest-util "^27.0.2"
 
-"@jest/globals@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a"
-  integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==
+"@jest/globals@^27.0.3":
+  version "27.0.3"
+  resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.3.tgz#1cf8933b7791bba0b99305cbf39fd4d2e3fe4060"
+  integrity sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ==
   dependencies:
-    "@jest/environment" "^26.6.2"
-    "@jest/types" "^26.6.2"
-    expect "^26.6.2"
+    "@jest/environment" "^27.0.3"
+    "@jest/types" "^27.0.2"
+    expect "^27.0.2"
 
-"@jest/reporters@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6"
-  integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==
+"@jest/reporters@^27.0.4":
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.4.tgz#95609b1be97afb80d55d8aa3d7c3179c15810e65"
+  integrity sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg==
   dependencies:
     "@bcoe/v8-coverage" "^0.2.3"
-    "@jest/console" "^26.6.2"
-    "@jest/test-result" "^26.6.2"
-    "@jest/transform" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/console" "^27.0.2"
+    "@jest/test-result" "^27.0.2"
+    "@jest/transform" "^27.0.2"
+    "@jest/types" "^27.0.2"
     chalk "^4.0.0"
     collect-v8-coverage "^1.0.0"
     exit "^0.1.2"
@@ -496,78 +512,75 @@
     istanbul-lib-report "^3.0.0"
     istanbul-lib-source-maps "^4.0.0"
     istanbul-reports "^3.0.2"
-    jest-haste-map "^26.6.2"
-    jest-resolve "^26.6.2"
-    jest-util "^26.6.2"
-    jest-worker "^26.6.2"
+    jest-haste-map "^27.0.2"
+    jest-resolve "^27.0.4"
+    jest-util "^27.0.2"
+    jest-worker "^27.0.2"
     slash "^3.0.0"
     source-map "^0.6.0"
     string-length "^4.0.1"
     terminal-link "^2.0.0"
     v8-to-istanbul "^7.0.0"
-  optionalDependencies:
-    node-notifier "^8.0.0"
 
-"@jest/source-map@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535"
-  integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==
+"@jest/source-map@^27.0.1":
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.1.tgz#2afbf73ddbaddcb920a8e62d0238a0a9e0a8d3e4"
+  integrity sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==
   dependencies:
     callsites "^3.0.0"
     graceful-fs "^4.2.4"
     source-map "^0.6.0"
 
-"@jest/test-result@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18"
-  integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==
+"@jest/test-result@^27.0.2":
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.2.tgz#0451049e32ceb609b636004ccc27c8fa22263f10"
+  integrity sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==
   dependencies:
-    "@jest/console" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/console" "^27.0.2"
+    "@jest/types" "^27.0.2"
     "@types/istanbul-lib-coverage" "^2.0.0"
     collect-v8-coverage "^1.0.0"
 
-"@jest/test-sequencer@^26.6.3":
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17"
-  integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==
+"@jest/test-sequencer@^27.0.4":
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz#976493b277594d81e589896f0ed21f198308928a"
+  integrity sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ==
   dependencies:
-    "@jest/test-result" "^26.6.2"
+    "@jest/test-result" "^27.0.2"
     graceful-fs "^4.2.4"
-    jest-haste-map "^26.6.2"
-    jest-runner "^26.6.3"
-    jest-runtime "^26.6.3"
+    jest-haste-map "^27.0.2"
+    jest-runtime "^27.0.4"
 
-"@jest/transform@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b"
-  integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==
+"@jest/transform@^27.0.2":
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.2.tgz#b073b7c589e3f4b842102468875def2bb722d6b5"
+  integrity sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw==
   dependencies:
     "@babel/core" "^7.1.0"
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     babel-plugin-istanbul "^6.0.0"
     chalk "^4.0.0"
     convert-source-map "^1.4.0"
     fast-json-stable-stringify "^2.0.0"
     graceful-fs "^4.2.4"
-    jest-haste-map "^26.6.2"
-    jest-regex-util "^26.0.0"
-    jest-util "^26.6.2"
-    micromatch "^4.0.2"
+    jest-haste-map "^27.0.2"
+    jest-regex-util "^27.0.1"
+    jest-util "^27.0.2"
+    micromatch "^4.0.4"
     pirates "^4.0.1"
     slash "^3.0.0"
     source-map "^0.6.1"
     write-file-atomic "^3.0.0"
 
-"@jest/types@^26.6.2":
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e"
-  integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==
+"@jest/types@^27.0.2":
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.2.tgz#e153d6c46bda0f2589f0702b071f9898c7bbd37e"
+  integrity sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==
   dependencies:
     "@types/istanbul-lib-coverage" "^2.0.0"
     "@types/istanbul-reports" "^3.0.0"
     "@types/node" "*"
-    "@types/yargs" "^15.0.0"
+    "@types/yargs" "^16.0.0"
     chalk "^4.0.0"
 
 "@malept/cross-spawn-promise@^1.1.0":
@@ -577,6 +590,23 @@
   dependencies:
     cross-spawn "^7.0.1"
 
+"@malept/flatpak-bundler@^0.4.0":
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858"
+  integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==
+  dependencies:
+    debug "^4.1.1"
+    fs-extra "^9.0.0"
+    lodash "^4.17.15"
+    tmp-promise "^3.0.2"
+
+"@mdn/browser-compat-data@^2.0.7":
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz#72ec37b9c1e00ce0b4e0309d753be18e2da12ee3"
+  integrity sha512-GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==
+  dependencies:
+    extend "3.0.2"
+
 "@remusao/guess-url-type@^1.1.2":
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/@remusao/guess-url-type/-/guess-url-type-1.2.1.tgz#b3e7c32abdf98d0fb4f93cc67cad580b5fe4ba57"
@@ -618,16 +648,16 @@
   integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
 
 "@sinonjs/commons@^1.7.0":
-  version "1.8.2"
-  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b"
-  integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==
+  version "1.8.3"
+  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
+  integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==
   dependencies:
     type-detect "4.0.8"
 
-"@sinonjs/fake-timers@^6.0.1":
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40"
-  integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==
+"@sinonjs/fake-timers@^7.0.2":
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5"
+  integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==
   dependencies:
     "@sinonjs/commons" "^1.7.0"
 
@@ -638,10 +668,15 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
-"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":
-  version "7.1.12"
-  resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d"
-  integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==
+"@tootallnate/once@1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
+  integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+
+"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14":
+  version "7.1.14"
+  resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"
+  integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==
   dependencies:
     "@babel/parser" "^7.1.0"
     "@babel/types" "^7.0.0"
@@ -665,16 +700,16 @@
     "@babel/types" "^7.0.0"
 
 "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
-  version "7.11.0"
-  resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0"
-  integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==
+  version "7.11.1"
+  resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639"
+  integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==
   dependencies:
     "@babel/types" "^7.3.0"
 
-"@types/chrome@^0.0.128":
-  version "0.0.128"
-  resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.128.tgz#5dbd8b2539a367353fbe4386f119b510105f8b6a"
-  integrity sha512-eGc599TDtersMBW1cSnExHm0IHrXrO5xdk6Sa2Dq30ED+hR1rpT1ez0NNcCgvGO52nmktGfyvd3Uyquzv3LL4g==
+"@types/chrome@^0.0.144":
+  version "0.0.144"
+  resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.144.tgz#7dd9188e355aa17e3ad397f50b5cd3ad12caf788"
+  integrity sha512-BgoiO7/KP9hRNrCR2Wq+aKWT5Dh9bTofuWaRtcqPcj8YKhZojQgb6sSdIqvds2C+eO63BwaR9KHVMYYgZdGGBg==
   dependencies:
     "@types/filesystem" "*"
     "@types/har-format" "*"
@@ -685,26 +720,26 @@
   integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
 
 "@types/filesystem@*":
-  version "0.0.29"
-  resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz#ee3748eb5be140dcf980c3bd35f11aec5f7a3748"
-  integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==
+  version "0.0.30"
+  resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.30.tgz#a7373a2edf34d13e298baf7ee1101f738b2efb7e"
+  integrity sha512-NCoRgmGmLpTT9VFL6Bb6z0jQuqI3d0E5FGl7M0JOv/J5RQYo9s5aOItPYnpckx9MbYQk1APLXcF8f20Vqnf2yA==
   dependencies:
     "@types/filewriter" "*"
 
 "@types/filewriter@*":
-  version "0.0.28"
-  resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz#c054e8af4d9dd75db4e63abc76f885168714d4b3"
-  integrity sha1-wFTor02d11205jq8dviFFocU1LM=
+  version "0.0.29"
+  resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz#a48795ecadf957f6c0d10e0c34af86c098fa5bee"
+  integrity sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==
 
 "@types/firefox-webext-browser@^82.0.0":
   version "82.0.0"
   resolved "https://registry.yarnpkg.com/@types/firefox-webext-browser/-/firefox-webext-browser-82.0.0.tgz#4d0f5cfebd7321d2cbf0ccfb6032570f0138b958"
   integrity sha512-zKHePkjMx42KIUUZCPcUiyu1tpfQXH9VR4iDYfns3HvmKVJzt/TAFT+DFVroos8BI9RH78YgF3Hi/wlC6R6cKA==
 
-"@types/fs-extra@^9.0.5":
-  version "9.0.7"
-  resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.7.tgz#a9ef2ffdab043def080c5bec94c03402f793577f"
-  integrity sha512-YGq2A6Yc3bldrLUlm17VNWOnUbnEzJ9CMgOeLFtQF3HOCN5lQBO8VyjG00a5acA5NNSM30kHVGp1trZgnVgi1Q==
+"@types/fs-extra@^9.0.11":
+  version "9.0.11"
+  resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87"
+  integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==
   dependencies:
     "@types/node" "*"
 
@@ -724,9 +759,9 @@
     "@types/node" "*"
 
 "@types/har-format@*":
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.5.tgz#4f6648814d0fdcb6a510e3364a9db439a753c4b1"
-  integrity sha512-IG8AE1m2pWtPqQ7wXhFhy6Q59bwwnLwO36v5Rit2FrbXCIp8Sk8E2PfUCreyrdo17STwFSKDAkitVuVYbpEHvQ==
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.6.tgz#471c83acdf6a2ea429620daee4c6dc1784a0e85f"
+  integrity sha512-TeZjp4COiAWPOeGx1tuFJETr/SBMx80lxqeqnCC36ZVn463f7ElCdA3X9RzDuo3BHjhN4apw41A5uoIw5FzgWA==
 
 "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
   version "2.0.3"
@@ -741,31 +776,26 @@
     "@types/istanbul-lib-coverage" "*"
 
 "@types/istanbul-reports@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821"
-  integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff"
+  integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==
   dependencies:
     "@types/istanbul-lib-report" "*"
 
 "@types/minimatch@*":
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
-  integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21"
+  integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
 
 "@types/node@*":
-  version "14.14.27"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.27.tgz#c7127f8da0498993e13b1a42faf1303d3110d2f2"
-  integrity sha512-Ecfmo4YDQPwuqTCl1yBxLV5ihKfRlkBmzUEDcfIRvDxOTGQEeikr317Ln7Gcv0tjA8dVgKI3rniqW2G1OyKDng==
+  version "15.12.2"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d"
+  integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==
 
-"@types/node@^12.0.12":
-  version "12.20.0"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.0.tgz#692dfdecd6c97f5380c42dd50f19261f9f604deb"
-  integrity sha512-0/41wHcurotvSOTHQUFkgL702c3pyWR1mToSrrX3pGPvGfpHTv3Ksx0M4UVuU5VJfjVb62Eyr1eKO1tWNUCg2Q==
-
-"@types/normalize-package-data@^2.4.0":
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
-  integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
+"@types/node@^14.6.2":
+  version "14.17.3"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.3.tgz#6d327abaa4be34a74e421ed6409a0ae2f47f4c3d"
+  integrity sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw==
 
 "@types/plist@^3.0.1":
   version "3.0.2"
@@ -775,10 +805,10 @@
     "@types/node" "*"
     xmlbuilder ">=11.0.1"
 
-"@types/prettier@^2.0.0":
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz#374e31645d58cb18a07b3ecd8e9dede4deb2cccd"
-  integrity sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw==
+"@types/prettier@^2.1.5":
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0"
+  integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==
 
 "@types/stack-utils@^2.0.0":
   version "2.0.0"
@@ -795,14 +825,14 @@
   resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9"
   integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==
 
-"@types/yargs@^15.0.0", "@types/yargs@^15.0.12":
-  version "15.0.13"
-  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc"
-  integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==
+"@types/yargs@^16.0.0", "@types/yargs@^16.0.1":
+  version "16.0.3"
+  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz#4b6d35bb8e680510a7dc2308518a80ee1ef27e01"
+  integrity sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==
   dependencies:
     "@types/yargs-parser" "*"
 
-abab@^2.0.3:
+abab@^2.0.3, abab@^2.0.5:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
   integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
@@ -830,12 +860,24 @@ acorn@^7.1.1, acorn@^7.4.0:
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
   integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
 
+acorn@^8.2.4:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz#1193f9b96c4e8232f00b11a9edff81b2c8b98b88"
+  integrity sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==
+
+agent-base@6:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+  integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+  dependencies:
+    debug "4"
+
 ajv-keywords@^3.4.1:
   version "3.5.2"
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
   integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
 
-ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4:
+ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4:
   version "6.12.6"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -845,10 +887,10 @@ ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-ajv@^7.0.2:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.0.tgz#f982ea7933dc7f1012eae9eec5a86687d805421b"
-  integrity sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==
+ajv@^8.0.1:
+  version "8.6.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720"
+  integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==
   dependencies:
     fast-deep-equal "^3.1.1"
     json-schema-traverse "^1.0.0"
@@ -868,11 +910,11 @@ ansi-colors@^4.1.1:
   integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
 
 ansi-escapes@^4.2.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
-  integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+  integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
   dependencies:
-    type-fest "^0.11.0"
+    type-fest "^0.21.3"
 
 ansi-regex@^3.0.0:
   version "3.0.0"
@@ -903,55 +945,52 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
   dependencies:
     color-convert "^2.0.1"
 
-anymatch@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
-  integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
-  dependencies:
-    micromatch "^3.1.4"
-    normalize-path "^2.1.1"
+ansi-styles@^5.0.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+  integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
 
 anymatch@^3.0.3:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
-  integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
   dependencies:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
 
-app-builder-bin@3.5.12:
-  version "3.5.12"
-  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.12.tgz#bbe174972cc1f481f73d6d92ad47a8b4c7eb4530"
-  integrity sha512-lQARM2AielmFoBeIo6LZigAe+58Wwe07ZWkt+wVeDxzyieNmeWjlvz/V5dKzinydwdHd+CNswN86sww46yijjA==
+app-builder-bin@3.5.13:
+  version "3.5.13"
+  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e"
+  integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==
 
-app-builder-lib@22.10.4:
-  version "22.10.4"
-  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.10.4.tgz#3fc70821b76beb9c8279d9de22960ef2174da153"
-  integrity sha512-q7B1cr8Ry4a7o08EKShLfwsnIVf5By7YhVwcoqgEwPKxtoj1qF0kB4wyBP79rJylYi0Zj2cSkJJ/gD/ef9xhoQ==
+app-builder-lib@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.5.tgz#d49f49dc2d9fd225249e4ae7e30add2996e7062f"
+  integrity sha512-lLEDvJuLdc4IVyADJK6t4qEIjRhOUj4p19B1RS/8pN/oAb8X5Qe1t3Einbsi4oFBJBweH2LIygnSAwumjQh9iA==
   dependencies:
-    "7zip-bin" "~5.0.3"
+    "7zip-bin" "~5.1.1"
     "@develar/schema-utils" "~2.6.5"
-    "@electron/universal" "1.0.4"
+    "@electron/universal" "1.0.5"
+    "@malept/flatpak-bundler" "^0.4.0"
     async-exit-hook "^2.0.1"
     bluebird-lst "^1.0.9"
-    builder-util "22.10.4"
-    builder-util-runtime "8.7.3"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
     chromium-pickle-js "^0.2.0"
-    debug "^4.3.1"
-    ejs "^3.1.5"
-    electron-publish "22.10.4"
-    fs-extra "^9.0.1"
-    hosted-git-info "^3.0.7"
-    is-ci "^2.0.0"
-    isbinaryfile "^4.0.6"
-    js-yaml "^3.14.1"
-    lazy-val "^1.0.4"
+    debug "^4.3.2"
+    ejs "^3.1.6"
+    electron-publish "22.11.5"
+    fs-extra "^10.0.0"
+    hosted-git-info "^4.0.2"
+    is-ci "^3.0.0"
+    isbinaryfile "^4.0.8"
+    js-yaml "^4.1.0"
+    lazy-val "^1.0.5"
     minimatch "^3.0.4"
-    normalize-package-data "^3.0.0"
-    read-config-file "6.0.0"
+    read-config-file "6.2.0"
     sanitize-filename "^1.6.3"
-    semver "^7.3.4"
-    temp-file "^3.3.7"
+    semver "^7.3.5"
+    temp-file "^3.4.0"
 
 archiver-utils@^2.1.0:
   version "2.1.0"
@@ -969,18 +1008,18 @@ archiver-utils@^2.1.0:
     normalize-path "^3.0.0"
     readable-stream "^2.0.0"
 
-archiver@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.2.0.tgz#25aa1b3d9febf7aec5b0f296e77e69960c26db94"
-  integrity sha512-QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==
+archiver@5.3.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba"
+  integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==
   dependencies:
     archiver-utils "^2.1.0"
     async "^3.2.0"
     buffer-crc32 "^0.2.1"
     readable-stream "^3.6.0"
     readdir-glob "^1.0.0"
-    tar-stream "^2.1.4"
-    zip-stream "^4.0.4"
+    tar-stream "^2.2.0"
+    zip-stream "^4.1.0"
 
 argparse@^1.0.7:
   version "1.0.10"
@@ -989,25 +1028,10 @@ argparse@^1.0.7:
   dependencies:
     sprintf-js "~1.0.2"
 
-arr-diff@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
-  integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-
-arr-flatten@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
-  integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-union@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
-  integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
-
-array-unique@^0.3.2:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
-  integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
 
 asar@^3.0.3:
   version "3.0.3"
@@ -1021,22 +1045,15 @@ asar@^3.0.3:
   optionalDependencies:
     "@types/glob" "^7.1.1"
 
-asn1@~0.2.3:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
-  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
-  dependencies:
-    safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
+assert-plus@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
   integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
 
-assign-symbols@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
-  integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+ast-metadata-inferer@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz#6be85ceeffcf267bd79db8e1ae731da44880b45f"
+  integrity sha512-tKHdBe8N/Vq2nLAm4YPBVREVZjMux6KrqyPfNQgIbDl0t7HaNSmy8w4OyVHYg/cvyn5BW7o7pVwpjPte89Zhcg==
 
 astral-regex@^2.0.0:
   version "2.0.0"
@@ -1068,31 +1085,16 @@ at-least-node@^1.0.0:
   resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
   integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
 
-atob@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
-  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-
-aws-sign2@~0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-
-aws4@^1.8.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
-  integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-
-babel-jest@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056"
-  integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==
-  dependencies:
-    "@jest/transform" "^26.6.2"
-    "@jest/types" "^26.6.2"
-    "@types/babel__core" "^7.1.7"
+babel-jest@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.2.tgz#7dc18adb01322acce62c2af76ea2c7cd186ade37"
+  integrity sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q==
+  dependencies:
+    "@jest/transform" "^27.0.2"
+    "@jest/types" "^27.0.2"
+    "@types/babel__core" "^7.1.14"
     babel-plugin-istanbul "^6.0.0"
-    babel-preset-jest "^26.6.2"
+    babel-preset-jest "^27.0.1"
     chalk "^4.0.0"
     graceful-fs "^4.2.4"
     slash "^3.0.0"
@@ -1108,10 +1110,10 @@ babel-plugin-istanbul@^6.0.0:
     istanbul-lib-instrument "^4.0.0"
     test-exclude "^6.0.0"
 
-babel-plugin-jest-hoist@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d"
-  integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==
+babel-plugin-jest-hoist@^27.0.1:
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz#a6d10e484c93abff0f4e95f437dad26e5736ea11"
+  integrity sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==
   dependencies:
     "@babel/template" "^7.3.3"
     "@babel/types" "^7.3.3"
@@ -1136,44 +1138,24 @@ babel-preset-current-node-syntax@^1.0.0:
     "@babel/plugin-syntax-optional-chaining" "^7.8.3"
     "@babel/plugin-syntax-top-level-await" "^7.8.3"
 
-babel-preset-jest@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee"
-  integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==
+babel-preset-jest@^27.0.1:
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz#7a50c75d16647c23a2cf5158d5bb9eb206b10e20"
+  integrity sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==
   dependencies:
-    babel-plugin-jest-hoist "^26.6.2"
+    babel-plugin-jest-hoist "^27.0.1"
     babel-preset-current-node-syntax "^1.0.0"
 
 balanced-match@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
 
-base64-js@^1.2.3, base64-js@^1.3.1:
+base64-js@^1.3.1, base64-js@^1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
   integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
 
-base@^0.11.1:
-  version "0.11.2"
-  resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
-  integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
-  dependencies:
-    cache-base "^1.0.1"
-    class-utils "^0.3.5"
-    component-emitter "^1.2.1"
-    define-property "^1.0.0"
-    isobject "^3.0.1"
-    mixin-deep "^1.2.0"
-    pascalcase "^0.1.1"
-
-bcrypt-pbkdf@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
-  integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
-  dependencies:
-    tweetnacl "^0.14.3"
-
 bl@^4.0.3:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
@@ -1196,14 +1178,14 @@ bluebird@^3.5.5:
   integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
 
 boolean@^3.0.1:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.2.tgz#df1baa18b6a2b0e70840475e1d93ec8fe75b2570"
-  integrity sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.0.tgz#a245080649ebb80e7c0ea218a480e4e913136336"
+  integrity sha512-K6r5tvO1ykeYerI7jIyTvSFw2l6D6DzqkljGj2E2uyYAAdDo2SV4qGJIV75cHIQpTFyb6BB0BEHiDdDrFsNI+g==
 
 boxen@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz#64fe9b16066af815f51057adcc800c3730120854"
-  integrity sha512-5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA==
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b"
+  integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==
   dependencies:
     ansi-align "^3.0.0"
     camelcase "^6.2.0"
@@ -1222,22 +1204,6 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
-braces@^2.3.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
-  integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
-  dependencies:
-    arr-flatten "^1.1.0"
-    array-unique "^0.3.2"
-    extend-shallow "^2.0.1"
-    fill-range "^4.0.0"
-    isobject "^3.0.1"
-    repeat-element "^1.1.2"
-    snapdragon "^0.8.1"
-    snapdragon-node "^2.0.1"
-    split-string "^3.0.2"
-    to-regex "^3.0.1"
-
 braces@^3.0.1:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
@@ -1250,6 +1216,17 @@ browser-process-hrtime@^1.0.0:
   resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
   integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
 
+browserslist@^4.12.2, browserslist@^4.16.6:
+  version "4.16.6"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+  integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
+  dependencies:
+    caniuse-lite "^1.0.30001219"
+    colorette "^1.2.2"
+    electron-to-chromium "^1.3.723"
+    escalade "^3.1.1"
+    node-releases "^1.1.71"
+
 bser@2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
@@ -1280,48 +1257,33 @@ buffer@^5.1.0, buffer@^5.5.0:
     base64-js "^1.3.1"
     ieee754 "^1.1.13"
 
-builder-util-runtime@8.7.3:
-  version "8.7.3"
-  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.3.tgz#0aaafa52d25295c939496f62231ca9ff06c30e40"
-  integrity sha512-1Q2ReBqFblimF5g/TLg2+0M5Xzv0Ih5LxJ/BMWXvEy/e6pQKeeEpbkPMGsN6OiQgkygaZo5VXCXIjOkOQG5EoQ==
+builder-util-runtime@8.7.6:
+  version "8.7.6"
+  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324"
+  integrity sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==
   dependencies:
     debug "^4.3.2"
     sax "^1.2.4"
 
-builder-util@22.10.4:
-  version "22.10.4"
-  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.10.4.tgz#54e8be83dd0dec28073d866ff087cee8e7ce6cf6"
-  integrity sha512-XdcbFG3otEkNRKxW2wS1npNviCb/IrzusEQ55lMB+6YEHxBOfTbf8vnPt0pDumfwmxls9xczABU+mfqN/W4uDw==
+builder-util@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.5.tgz#08836d00e6bef39bdffd8a66fb07d2d5021b9c3c"
+  integrity sha512-ur9ksncYOnJg/VuJz3PdsBQHeg9tjdOC2HVj8mQ0WNcn/H3MO4tnwKBOWWikPDiWEjeBSvFUmYBnGFkRiUNkww==
   dependencies:
-    "7zip-bin" "~5.0.3"
+    "7zip-bin" "~5.1.1"
     "@types/debug" "^4.1.5"
-    "@types/fs-extra" "^9.0.5"
-    app-builder-bin "3.5.12"
+    "@types/fs-extra" "^9.0.11"
+    app-builder-bin "3.5.13"
     bluebird-lst "^1.0.9"
-    builder-util-runtime "8.7.3"
-    chalk "^4.1.0"
-    debug "^4.3.1"
-    fs-extra "^9.0.1"
-    is-ci "^2.0.0"
-    js-yaml "^3.14.1"
+    builder-util-runtime "8.7.6"
+    chalk "^4.1.1"
+    debug "^4.3.2"
+    fs-extra "^10.0.0"
+    is-ci "^3.0.0"
+    js-yaml "^4.1.0"
     source-map-support "^0.5.19"
     stat-mode "^1.0.0"
-    temp-file "^3.3.7"
-
-cache-base@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
-  integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
-  dependencies:
-    collection-visit "^1.0.0"
-    component-emitter "^1.2.1"
-    get-value "^2.0.6"
-    has-value "^1.0.0"
-    isobject "^3.0.1"
-    set-value "^2.0.0"
-    to-object-path "^0.3.0"
-    union-value "^1.0.0"
-    unset-value "^1.0.0"
+    temp-file "^3.4.0"
 
 cacheable-request@^6.0.0:
   version "6.1.0"
@@ -1341,27 +1303,20 @@ callsites@^3.0.0:
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
   integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
-camelcase@^5.0.0, camelcase@^5.3.1:
+camelcase@^5.3.1:
   version "5.3.1"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
-camelcase@^6.0.0, camelcase@^6.2.0:
+camelcase@^6.2.0:
   version "6.2.0"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
   integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
 
-capture-exit@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
-  integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
-  dependencies:
-    rsvp "^4.8.4"
-
-caseless@~0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-  integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+caniuse-lite@^1.0.30001166, caniuse-lite@^1.0.30001219:
+  version "1.0.30001236"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz#0a80de4cdf62e1770bb46a30d884fc8d633e3958"
+  integrity sha512-o0PRQSrSCGJKCPZcgMzl5fUaj5xHe8qA2m4QRvnyY4e1lITqoNkr7q/Oh1NcpGSy0Th97UZ35yoKcINPoq7YOQ==
 
 chalk@^2.0.0, chalk@^2.4.2:
   version "2.4.2"
@@ -1372,10 +1327,10 @@ chalk@^2.0.0, chalk@^2.4.2:
     escape-string-regexp "^1.0.5"
     supports-color "^5.3.0"
 
-chalk@^4.0.0, chalk@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
-  integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
+  integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
   dependencies:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
@@ -1395,20 +1350,15 @@ ci-info@^2.0.0:
   resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
   integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
 
-cjs-module-lexer@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f"
-  integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==
+ci-info@^3.1.1:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6"
+  integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==
 
-class-utils@^0.3.5:
-  version "0.3.6"
-  resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
-  integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
-  dependencies:
-    arr-union "^3.1.0"
-    define-property "^0.2.5"
-    isobject "^3.0.0"
-    static-extend "^0.1.1"
+cjs-module-lexer@^1.0.0:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz#2fd46d9906a126965aa541345c499aaa18e8cd73"
+  integrity sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==
 
 cli-boxes@^2.2.1:
   version "2.2.1"
@@ -1423,15 +1373,6 @@ cli-truncate@^1.1.0:
     slice-ansi "^1.0.0"
     string-width "^2.0.0"
 
-cliui@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
-  integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
-  dependencies:
-    string-width "^4.2.0"
-    strip-ansi "^6.0.0"
-    wrap-ansi "^6.2.0"
-
 cliui@^7.0.2:
   version "7.0.4"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
@@ -1458,14 +1399,6 @@ collect-v8-coverage@^1.0.0:
   resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
   integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
 
-collection-visit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
-  integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
-  dependencies:
-    map-visit "^1.0.0"
-    object-visit "^1.0.0"
-
 color-convert@^1.9.0:
   version "1.9.3"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@@ -1490,12 +1423,17 @@ color-name@~1.1.4:
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
+colorette@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+  integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
+
 colors@1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
   integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
 
-combined-stream@^1.0.6, combined-stream@~1.0.6:
+combined-stream@^1.0.8:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -1514,18 +1452,13 @@ commander@^5.0.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
   integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
 
-component-emitter@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
-  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-compress-commons@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.0.2.tgz#d6896be386e52f37610cef9e6fa5defc58c31bd7"
-  integrity sha512-qhd32a9xgzmpfoga1VQEiLEwdKZ6Plnpx5UCgIsf89FSolyJ7WnifY4Gtjgv5WR6hWAyRaHxC5MiEhU/38U70A==
+compress-commons@^4.1.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d"
+  integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==
   dependencies:
     buffer-crc32 "^0.2.13"
-    crc32-stream "^4.0.1"
+    crc32-stream "^4.0.2"
     normalize-path "^3.0.0"
     readable-stream "^3.6.0"
 
@@ -1545,9 +1478,9 @@ concat-stream@^1.6.2:
     typedarray "^0.0.6"
 
 config-chain@^1.1.11:
-  version "1.1.12"
-  resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
-  integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
+  version "1.1.13"
+  resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
+  integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==
   dependencies:
     ini "^1.3.4"
     proto-list "~1.2.1"
@@ -1571,15 +1504,10 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
   dependencies:
     safe-buffer "~5.1.1"
 
-copy-descriptor@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
-  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-
 core-js@^3.6.5:
-  version "3.8.3"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0"
-  integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==
+  version "3.14.0"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c"
+  integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA==
 
 core-util-is@1.0.2, core-util-is@~1.0.0:
   version "1.0.2"
@@ -1594,7 +1522,7 @@ crc-32@^1.2.0:
     exit-on-epipe "~1.0.1"
     printj "~1.1.0"
 
-crc32-stream@^4.0.1:
+crc32-stream@^4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
   integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
@@ -1609,18 +1537,7 @@ crc@^3.8.0:
   dependencies:
     buffer "^5.1.0"
 
-cross-spawn@^6.0.0:
-  version "6.0.5"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
-  integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
-  dependencies:
-    nice-try "^1.0.4"
-    path-key "^2.0.1"
-    semver "^5.5.0"
-    shebang-command "^1.2.0"
-    which "^1.2.9"
-
-cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2:
+cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
   version "7.0.3"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -1644,25 +1561,13 @@ cssom@~0.3.6:
   resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
   integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
 
-cssstyle@^2.2.0:
+cssstyle@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
   integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
   dependencies:
     cssom "~0.3.6"
 
-darkreader@^4.9.27:
-  version "4.9.27"
-  resolved "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.27.tgz#69b641d6a3c22b07fb0424406dfd9a3661b37197"
-  integrity sha512-DG8zsicuCbAYKaKvLUaiikeei5jN5dIpe0jyaPw4kDa2L5zVnWc/ZxNUYOFriKVAmicwqE5gH5EOfyI0MVt3KA==
-
-dashdash@^1.12.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
-  integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
-  dependencies:
-    assert-plus "^1.0.0"
-
 data-urls@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
@@ -1672,20 +1577,20 @@ data-urls@^2.0.0:
     whatwg-mimetype "^2.3.0"
     whatwg-url "^8.0.0"
 
-debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
-  dependencies:
-    ms "2.0.0"
-
-debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
   version "4.3.1"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
   integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
   dependencies:
     ms "2.1.2"
 
+debug@^2.6.9:
+  version "2.6.9"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+  dependencies:
+    ms "2.0.0"
+
 debug@^4.3.2:
   version "4.3.2"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
@@ -1693,21 +1598,11 @@ debug@^4.3.2:
   dependencies:
     ms "2.1.2"
 
-decamelize@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-decimal.js@^10.2.0:
+decimal.js@^10.2.1:
   version "10.2.1"
   resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3"
   integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==
 
-decode-uri-component@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
-  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-
 decompress-response@^3.3.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
@@ -1715,6 +1610,11 @@ decompress-response@^3.3.0:
   dependencies:
     mimic-response "^1.0.0"
 
+dedent@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+  integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+
 deep-extend@^0.6.0:
   version "0.6.0"
   resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
@@ -1742,28 +1642,6 @@ define-properties@^1.1.3:
   dependencies:
     object-keys "^1.0.12"
 
-define-property@^0.2.5:
-  version "0.2.5"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
-  integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
-  dependencies:
-    is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
-  integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
-  dependencies:
-    is-descriptor "^1.0.0"
-
-define-property@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
-  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
-  dependencies:
-    is-descriptor "^1.0.2"
-    isobject "^3.0.1"
-
 delayed-stream@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -1775,14 +1653,14 @@ detect-newline@^3.0.0:
   integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
 
 detect-node@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
-  integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
+  integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
 
-diff-sequences@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1"
-  integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==
+diff-sequences@^27.0.1:
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.1.tgz#9c9801d52ed5f576ff0a20e3022a13ee6e297e7c"
+  integrity sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==
 
 dir-compare@^2.4.0:
   version "2.4.0"
@@ -1794,31 +1672,31 @@ dir-compare@^2.4.0:
     commander "2.9.0"
     minimatch "3.0.4"
 
-dmg-builder@22.10.4:
-  version "22.10.4"
-  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.10.4.tgz#8dab30754346791eb728091359558fd4a8dbb45f"
-  integrity sha512-+28HZgKAuyCQnQwLSAwkHUqtMB/egHF5ACUABCB4Nev02/ZfjFPUTF/WloTaEbue34zLLUGxPXh+BJF8Xw26ow==
+dmg-builder@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.5.tgz#0df9843def73a217097956982fa21bb4d6a5836e"
+  integrity sha512-91Shh9+OK9RwBlBURxvhSnQNibEh/JYNAnMOfFguyNbasSfF50Jme4b3dgsQrHTTTfkFijcvzykPPFAZofQs6g==
   dependencies:
-    app-builder-lib "22.10.4"
-    builder-util "22.10.4"
-    fs-extra "^9.0.1"
+    app-builder-lib "22.11.5"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
+    fs-extra "^10.0.0"
     iconv-lite "^0.6.2"
-    js-yaml "^3.14.1"
-    sanitize-filename "^1.6.3"
+    js-yaml "^4.1.0"
   optionalDependencies:
-    dmg-license "^1.0.8"
+    dmg-license "^1.0.9"
 
-dmg-license@^1.0.8:
-  version "1.0.8"
-  resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.8.tgz#d52e234815f1a07a59706e5f2a2fea71991cf784"
-  integrity sha512-47GOb6b4yVzpovXC34heXElpH++ICg9GuWBeOTaokUNLAoAdWpE4VehudYEEtu96j2jXsgQWYf78nW7r+0Y3eg==
+dmg-license@^1.0.9:
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz#a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f"
+  integrity sha512-Rq6qMDaDou2+aPN2SYy0x7LDznoJ/XaG6oDcH5wXUp+WRWQMUYE6eM+F+nex+/LSXOp1uw4HLFoed0YbfU8R/Q==
   dependencies:
     "@types/plist" "^3.0.1"
     "@types/verror" "^1.10.3"
     ajv "^6.10.0"
     cli-truncate "^1.1.0"
     crc "^3.8.0"
-    iconv-corefoundation "^1.1.5"
+    iconv-corefoundation "^1.1.6"
     plist "^3.0.1"
     smart-buffer "^4.0.2"
     verror "^1.10.0"
@@ -1849,78 +1727,72 @@ dotenv-expand@^5.1.0:
   resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
   integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
 
-dotenv@^8.2.0:
-  version "8.2.0"
-  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
-  integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
+dotenv@^9.0.2:
+  version "9.0.2"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05"
+  integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==
 
 duplexer3@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
   integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
 
-ecc-jsbn@~0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
-  integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
-  dependencies:
-    jsbn "~0.1.0"
-    safer-buffer "^2.1.0"
-
-ejs@^3.1.5:
+ejs@^3.1.6:
   version "3.1.6"
   resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
   integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
   dependencies:
     jake "^10.6.1"
 
-electron-builder@^22.10.4:
-  version "22.10.4"
-  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.10.4.tgz#e1f400cf41ebb632fbf79aa86c5e0ab1ea1ed7e5"
-  integrity sha512-V+JtiizJd3kt24TT+0OHG7+oPAzjhhjmQVn9G6OC2WE7VBJxrDuD6lMVRgo6WlU8uvDCh7fTRUsdh0Tnu0GeQA==
-  dependencies:
-    "@types/yargs" "^15.0.12"
-    app-builder-lib "22.10.4"
-    bluebird-lst "^1.0.9"
-    builder-util "22.10.4"
-    builder-util-runtime "8.7.3"
-    chalk "^4.1.0"
-    dmg-builder "22.10.4"
-    fs-extra "^9.0.1"
-    is-ci "^2.0.0"
-    lazy-val "^1.0.4"
-    read-config-file "6.0.0"
-    sanitize-filename "^1.6.3"
-    update-notifier "^5.0.1"
-    yargs "^16.2.0"
-
-electron-publish@22.10.4:
-  version "22.10.4"
-  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.10.4.tgz#944b00aa6a7746c31ce900ffd8106d243326dca8"
-  integrity sha512-cjVM0+9DQoV4TWfH8lVWoelJ89O2i5yDARVp5GCMHrB43XEU0Nr5eKYysgsbOSnZk5W8z1vfGpFWHj+AeAEDYg==
-  dependencies:
-    "@types/fs-extra" "^9.0.5"
-    bluebird-lst "^1.0.9"
-    builder-util "22.10.4"
-    builder-util-runtime "8.7.3"
-    chalk "^4.1.0"
-    fs-extra "^9.0.1"
-    lazy-val "^1.0.4"
-    mime "^2.4.7"
-
-electron@^11.2.1:
-  version "11.2.3"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz#8ad1d9858436cfca0e2e5ea7fea326794ae58ebb"
-  integrity sha512-6yxOc42nDAptHKNlUG/vcOh2GI9x2fqp2nQbZO0/3sz2CrwsJkwR3i3oMN9XhVJaqI7GK1vSCJz0verOkWlXcQ==
+electron-builder@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.5.tgz#914d8183e1bab7cda43ef1d67fc3d17314c7e242"
+  integrity sha512-QIhzrmSLNteItRvmAjwNpsya08oZeOJIrxFww/Alkjcwnrn5Xgog2qf3Xfa3ocuNUQIwb+mMzZrzqnPu0Mamyg==
+  dependencies:
+    "@types/yargs" "^16.0.1"
+    app-builder-lib "22.11.5"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
+    chalk "^4.1.1"
+    dmg-builder "22.11.5"
+    fs-extra "^10.0.0"
+    is-ci "^3.0.0"
+    lazy-val "^1.0.5"
+    read-config-file "6.2.0"
+    update-notifier "^5.1.0"
+    yargs "^17.0.1"
+
+electron-publish@22.11.5:
+  version "22.11.5"
+  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.5.tgz#2fcd3280c4267e70e4aa15003c9b7dc34923320e"
+  integrity sha512-peN4tEP80Kb6reuwKKvSu9p/XUWpx/7x747u5NSg7Kg2axBjzdMtX5ZqBThfPtJWJhSWZ7PEYWmNyUCfdQl2Ag==
+  dependencies:
+    "@types/fs-extra" "^9.0.11"
+    builder-util "22.11.5"
+    builder-util-runtime "8.7.6"
+    chalk "^4.1.1"
+    fs-extra "^10.0.0"
+    lazy-val "^1.0.5"
+    mime "^2.5.2"
+
+electron-to-chromium@^1.3.723:
+  version "1.3.750"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.750.tgz#7e5ef6f478316b0bd656af5942fe502610e97eaf"
+  integrity sha512-Eqy9eHNepZxJXT+Pc5++zvEi5nQ6AGikwFYDCYwXUFBr+ynJ6pDG7MzZmwGYCIuXShLJM0n4bq+aoKDmvSGJ8A==
+
+electron@13.1.1:
+  version "13.1.1"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-13.1.1.tgz#de1ea908bcac2197d7a5a373fb68c0c66043e10e"
+  integrity sha512-kySSb5CbIkWU2Kd9mf2rpGZC9p1nWhVVNl+CJjuOUGeVPXHbojHvTkDU1iC8AvV28eik3gqHisSJss40Caprog==
   dependencies:
     "@electron/get" "^1.0.1"
-    "@types/node" "^12.0.12"
+    "@types/node" "^14.6.2"
     extract-zip "^1.0.3"
 
-emittery@^0.7.1:
-  version "0.7.2"
-  resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82"
-  integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==
+emittery@^0.8.1:
+  version "0.8.1"
+  resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
+  integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==
 
 emoji-regex@^7.0.1:
   version "7.0.3"
@@ -1952,16 +1824,9 @@ enquirer@^2.3.5:
     ansi-colors "^4.1.1"
 
 env-paths@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43"
-  integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==
-
-error-ex@^1.3.1:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
-  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
-  dependencies:
-    is-arrayish "^0.2.1"
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+  integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
 
 es6-error@^4.1.1:
   version "4.1.1"
@@ -1993,18 +1858,39 @@ escape-string-regexp@^4.0.0:
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
   integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
 
-escodegen@^1.14.1:
-  version "1.14.3"
-  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
-  integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
+escodegen@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
+  integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
   dependencies:
     esprima "^4.0.1"
-    estraverse "^4.2.0"
+    estraverse "^5.2.0"
     esutils "^2.0.2"
     optionator "^0.8.1"
   optionalDependencies:
     source-map "~0.6.1"
 
+eslint-plugin-compat@3.9.0:
+  version "3.9.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz#a7a224e09b102b58e7f7dff52c936428ff3e0186"
+  integrity sha512-lt3l5PHFHVEYSZ5zijcoYvtQJPsBifRiH5N0Et57KwVu7l/yxmHhSG6VJiLMa/lXrg93Qu8049RNQOMn0+yJBg==
+  dependencies:
+    "@mdn/browser-compat-data" "^2.0.7"
+    ast-metadata-inferer "^0.4.0"
+    browserslist "^4.12.2"
+    caniuse-lite "^1.0.30001166"
+    core-js "^3.6.5"
+    find-up "^4.1.0"
+    lodash.memoize "4.1.2"
+    semver "7.3.2"
+
+eslint-plugin-sort-keys-fix@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-sort-keys-fix/-/eslint-plugin-sort-keys-fix-1.1.1.tgz#2ed201b53fd4a89552c6e2abd38933f330a4b62e"
+  integrity sha512-x02SLBg+8OEaoT9vvMbsgeInw17wjHLsa9cOieIVQY+xMNRiXBbyMWw+NiBoxYyJIR4QKDOPDofCjQdoSvltQg==
+  dependencies:
+    requireindex "~1.2.0"
+
 eslint-scope@^5.1.1:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
@@ -2026,33 +1912,35 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
   integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
 
 eslint-visitor-keys@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
-  integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
 
-eslint@^7.19.0:
-  version "7.20.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz#db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7"
-  integrity sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw==
+eslint@7.28.0:
+  version "7.28.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820"
+  integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==
   dependencies:
     "@babel/code-frame" "7.12.11"
-    "@eslint/eslintrc" "^0.3.0"
+    "@eslint/eslintrc" "^0.4.2"
     ajv "^6.10.0"
     chalk "^4.0.0"
     cross-spawn "^7.0.2"
     debug "^4.0.1"
     doctrine "^3.0.0"
     enquirer "^2.3.5"
+    escape-string-regexp "^4.0.0"
     eslint-scope "^5.1.1"
     eslint-utils "^2.1.0"
     eslint-visitor-keys "^2.0.0"
     espree "^7.3.1"
     esquery "^1.4.0"
     esutils "^2.0.2"
-    file-entry-cache "^6.0.0"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
     functional-red-black-tree "^1.0.1"
-    glob-parent "^5.0.0"
-    globals "^12.1.0"
+    glob-parent "^5.1.2"
+    globals "^13.6.0"
     ignore "^4.0.6"
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
@@ -2060,7 +1948,7 @@ eslint@^7.19.0:
     js-yaml "^3.13.1"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.4.1"
-    lodash "^4.17.20"
+    lodash.merge "^4.6.2"
     minimatch "^3.0.4"
     natural-compare "^1.4.0"
     optionator "^0.9.1"
@@ -2069,7 +1957,7 @@ eslint@^7.19.0:
     semver "^7.2.1"
     strip-ansi "^6.0.0"
     strip-json-comments "^3.1.0"
-    table "^6.0.4"
+    table "^6.0.9"
     text-table "^0.2.0"
     v8-compile-cache "^2.0.3"
 
@@ -2101,7 +1989,7 @@ esrecurse@^4.3.0:
   dependencies:
     estraverse "^5.2.0"
 
-estraverse@^4.1.1, estraverse@^4.2.0:
+estraverse@^4.1.1:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
   integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
@@ -2116,37 +2004,19 @@ esutils@^2.0.2:
   resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
   integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
 
-exec-sh@^0.3.2:
-  version "0.3.4"
-  resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
-  integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
-
-execa@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
-  integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
-  dependencies:
-    cross-spawn "^6.0.0"
-    get-stream "^4.0.0"
-    is-stream "^1.1.0"
-    npm-run-path "^2.0.0"
-    p-finally "^1.0.0"
-    signal-exit "^3.0.0"
-    strip-eof "^1.0.0"
-
-execa@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
-  integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+execa@^5.0.0:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
   dependencies:
-    cross-spawn "^7.0.0"
-    get-stream "^5.0.0"
-    human-signals "^1.1.1"
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.0"
+    human-signals "^2.1.0"
     is-stream "^2.0.0"
     merge-stream "^2.0.0"
-    npm-run-path "^4.0.0"
-    onetime "^5.1.0"
-    signal-exit "^3.0.2"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
     strip-final-newline "^2.0.0"
 
 exit-on-epipe@~1.0.1:
@@ -2159,65 +2029,23 @@ exit@^0.1.2:
   resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
   integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
 
-expand-brackets@^2.1.4:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
-  integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
-  dependencies:
-    debug "^2.3.3"
-    define-property "^0.2.5"
-    extend-shallow "^2.0.1"
-    posix-character-classes "^0.1.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
-expect@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417"
-  integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==
-  dependencies:
-    "@jest/types" "^26.6.2"
-    ansi-styles "^4.0.0"
-    jest-get-type "^26.3.0"
-    jest-matcher-utils "^26.6.2"
-    jest-message-util "^26.6.2"
-    jest-regex-util "^26.0.0"
-
-extend-shallow@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
-  integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+expect@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.2.tgz#e66ca3a4c9592f1c019fa1d46459a9d2084f3422"
+  integrity sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==
   dependencies:
-    is-extendable "^0.1.0"
+    "@jest/types" "^27.0.2"
+    ansi-styles "^5.0.0"
+    jest-get-type "^27.0.1"
+    jest-matcher-utils "^27.0.2"
+    jest-message-util "^27.0.2"
+    jest-regex-util "^27.0.1"
 
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
-  integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
-  dependencies:
-    assign-symbols "^1.0.0"
-    is-extendable "^1.0.1"
-
-extend@~3.0.2:
+extend@3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
   integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
 
-extglob@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
-  integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
-  dependencies:
-    array-unique "^0.3.2"
-    define-property "^1.0.0"
-    expand-brackets "^2.1.4"
-    extend-shallow "^2.0.1"
-    fragment-cache "^0.2.1"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
 extract-zip@^1.0.3:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927"
@@ -2228,17 +2056,12 @@ extract-zip@^1.0.3:
     mkdirp "^0.5.4"
     yauzl "^2.10.0"
 
-extsprintf@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-  integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
-
 extsprintf@^1.2.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
   integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
 
-fast-deep-equal@^3.1.1:
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
@@ -2253,6 +2076,11 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
 
+fast-xml-parser@^3.19.0:
+  version "3.19.0"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01"
+  integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==
+
 fb-watchman@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
@@ -2267,10 +2095,10 @@ fd-slicer@~1.1.0:
   dependencies:
     pend "~1.2.0"
 
-file-entry-cache@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a"
-  integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
   dependencies:
     flat-cache "^3.0.4"
 
@@ -2281,16 +2109,6 @@ filelist@^1.0.1:
   dependencies:
     minimatch "^3.0.4"
 
-fill-range@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
-  integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
-  dependencies:
-    extend-shallow "^2.0.1"
-    is-number "^3.0.0"
-    repeat-string "^1.6.1"
-    to-regex-range "^2.1.0"
-
 fill-range@^7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -2319,37 +2137,29 @@ flatted@^3.1.0:
   resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
   integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
 
-for-in@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
-  integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-
-forever-agent@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-
-form-data@~2.3.2:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
-  integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+form-data@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
+  integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
   dependencies:
     asynckit "^0.4.0"
-    combined-stream "^1.0.6"
+    combined-stream "^1.0.8"
     mime-types "^2.1.12"
 
-fragment-cache@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
-  integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
-  dependencies:
-    map-cache "^0.2.2"
-
 fs-constants@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
   integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
 
+fs-extra@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
+  integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
+  dependencies:
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
+
 fs-extra@^8.1.0:
   version "8.1.0"
   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -2359,7 +2169,7 @@ fs-extra@^8.1.0:
     jsonfile "^4.0.0"
     universalify "^0.1.0"
 
-fs-extra@^9.0.1:
+fs-extra@^9.0.0, fs-extra@^9.0.1:
   version "9.1.0"
   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
   integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
@@ -2374,7 +2184,7 @@ fs.realpath@^1.0.0:
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
-fsevents@^2.1.2:
+fsevents@^2.3.2:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
   integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
@@ -2389,12 +2199,12 @@ functional-red-black-tree@^1.0.1:
   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
   integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
 
-gensync@^1.0.0-beta.1:
+gensync@^1.0.0-beta.2:
   version "1.0.0-beta.2"
   resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
   integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
 
-get-caller-file@^2.0.1, get-caller-file@^2.0.5:
+get-caller-file@^2.0.5:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
   integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
@@ -2404,43 +2214,36 @@ get-package-type@^0.1.0:
   resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
   integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
 
-get-stream@^4.0.0, get-stream@^4.1.0:
+get-stream@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
   integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
   dependencies:
     pump "^3.0.0"
 
-get-stream@^5.0.0, get-stream@^5.1.0:
+get-stream@^5.1.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
   integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
   dependencies:
     pump "^3.0.0"
 
-get-value@^2.0.3, get-value@^2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
-  integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-
-getpass@^0.1.1:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
-  integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
-  dependencies:
-    assert-plus "^1.0.0"
+get-stream@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
 
-glob-parent@^5.0.0:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
-  integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
+glob-parent@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
   dependencies:
     is-glob "^4.0.1"
 
 glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
-  version "7.1.6"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
-  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+  version "7.1.7"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -2450,9 +2253,9 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
     path-is-absolute "^1.0.0"
 
 global-agent@^2.0.2:
-  version "2.1.12"
-  resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195"
-  integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc"
+  integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==
   dependencies:
     boolean "^3.0.1"
     core-js "^3.6.5"
@@ -2484,17 +2287,17 @@ globals@^11.1.0:
   resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
   integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
 
-globals@^12.1.0:
-  version "12.4.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
-  integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+globals@^13.6.0, globals@^13.9.0:
+  version "13.9.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"
+  integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==
   dependencies:
-    type-fest "^0.8.1"
+    type-fest "^0.20.2"
 
 globalthis@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9"
-  integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b"
+  integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==
   dependencies:
     define-properties "^1.1.3"
 
@@ -2525,24 +2328,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
   resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
   integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
 
-growly@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
-  integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
-
-har-schema@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-
-har-validator@~5.1.3:
-  version "5.1.5"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
-  integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
-  dependencies:
-    ajv "^6.12.3"
-    har-schema "^2.0.0"
-
 has-flag@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -2553,37 +2338,6 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-has-value@^0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
-  integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
-  dependencies:
-    get-value "^2.0.3"
-    has-values "^0.1.4"
-    isobject "^2.0.0"
-
-has-value@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
-  integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
-  dependencies:
-    get-value "^2.0.6"
-    has-values "^1.0.0"
-    isobject "^3.0.0"
-
-has-values@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
-  integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
-
-has-values@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
-  integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
-  dependencies:
-    is-number "^3.0.0"
-    kind-of "^4.0.0"
-
 has-yarn@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
@@ -2596,23 +2350,13 @@ has@^1.0.3:
   dependencies:
     function-bind "^1.1.1"
 
-hosted-git-info@^2.1.4:
-  version "2.8.8"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
-  integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
-
-hosted-git-info@^3.0.6, hosted-git-info@^3.0.7:
-  version "3.0.8"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d"
-  integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==
+hosted-git-info@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961"
+  integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==
   dependencies:
     lru-cache "^6.0.0"
 
-html-comment-regex@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
-  integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-
 html-encoding-sniffer@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
@@ -2630,24 +2374,32 @@ http-cache-semantics@^4.0.0:
   resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
   integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
 
-http-signature@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
-  integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+http-proxy-agent@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
+  integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
   dependencies:
-    assert-plus "^1.0.0"
-    jsprim "^1.2.2"
-    sshpk "^1.7.0"
+    "@tootallnate/once" "1"
+    agent-base "6"
+    debug "4"
 
-human-signals@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
-  integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+https-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
+  integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+  dependencies:
+    agent-base "6"
+    debug "4"
+
+human-signals@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
 
-iconv-corefoundation@^1.1.5:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.5.tgz#90596d444a579aeb109f5ca113f6bb665a41be2b"
-  integrity sha512-hI4m7udfV04OcjleOmDaR4gwXnH4xumxN+ZmywHDiKf2CmAzsT9SVYe7Y4pdnQbyZfXwAQyrElykbE5PrPRfmQ==
+iconv-corefoundation@^1.1.6:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a"
+  integrity sha512-1NBe55C75bKGZaY9UHxvXG3G0gEp0ziht7quhuFrW3SPgZDw9HI6qvYXRSV5M/Eupyu8ljuJ6Cba+ec15PZ4Xw==
   dependencies:
     cli-truncate "^1.1.0"
     node-addon-api "^1.6.3"
@@ -2660,9 +2412,9 @@ iconv-lite@0.4.24:
     safer-buffer ">= 2.1.2 < 3"
 
 iconv-lite@^0.6.2:
-  version "0.6.2"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
-  integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
+  version "0.6.3"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+  integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
   dependencies:
     safer-buffer ">= 2.1.2 < 3.0.0"
 
@@ -2725,35 +2477,6 @@ ini@^1.3.4, ini@~1.3.0:
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
   integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
 
-ip-regex@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
-  integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
-
-is-accessor-descriptor@^0.1.6:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
-  integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
-  dependencies:
-    kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
-  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
-  dependencies:
-    kind-of "^6.0.0"
-
-is-arrayish@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
-  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-
-is-buffer@^1.1.5:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
-  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
 is-ci@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
@@ -2761,61 +2484,19 @@ is-ci@^2.0.0:
   dependencies:
     ci-info "^2.0.0"
 
-is-core-module@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
-  integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
-  dependencies:
-    has "^1.0.3"
-
-is-data-descriptor@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
-  integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
-  dependencies:
-    kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
-  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
-  dependencies:
-    kind-of "^6.0.0"
-
-is-descriptor@^0.1.0:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
-  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
-  dependencies:
-    is-accessor-descriptor "^0.1.6"
-    is-data-descriptor "^0.1.4"
-    kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
-  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+is-ci@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"
+  integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==
   dependencies:
-    is-accessor-descriptor "^1.0.0"
-    is-data-descriptor "^1.0.0"
-    kind-of "^6.0.2"
-
-is-docker@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
-  integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==
-
-is-extendable@^0.1.0, is-extendable@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
-  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+    ci-info "^3.1.1"
 
-is-extendable@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
-  integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+is-core-module@^2.2.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
+  integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
   dependencies:
-    is-plain-object "^2.0.4"
+    has "^1.0.3"
 
 is-extglob@^2.1.1:
   version "2.1.1"
@@ -2857,13 +2538,6 @@ is-npm@^5.0.0:
   resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
   integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==
 
-is-number@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
-  integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
-  dependencies:
-    kind-of "^3.0.2"
-
 is-number@^7.0.0:
   version "7.0.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -2875,93 +2549,52 @@ is-obj@^2.0.0:
   integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
 
 is-path-inside@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
-  integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
-
-is-plain-object@^2.0.3, is-plain-object@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
-  integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
-  dependencies:
-    isobject "^3.0.1"
-
-is-potential-custom-element-name@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
-  integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
 
-is-stream@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-  integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+is-potential-custom-element-name@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+  integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
 
 is-stream@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
   integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
 
-is-svg@^4.2.1:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81"
-  integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A==
+is-svg@4.3.1:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz#8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b"
+  integrity sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==
   dependencies:
-    html-comment-regex "^1.1.2"
+    fast-xml-parser "^3.19.0"
 
-is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+is-typedarray@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
   integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
 
-is-windows@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
-  integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-
-is-wsl@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
-  integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
-  dependencies:
-    is-docker "^2.0.0"
-
 is-yarn-global@^0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
   integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
 
-isarray@1.0.0, isarray@~1.0.0:
+isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
   integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
 
-isbinaryfile@^4.0.6:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b"
-  integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==
+isbinaryfile@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf"
+  integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==
 
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
-isobject@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
-  integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
-  dependencies:
-    isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
-  integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
-
-isstream@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-
 istanbul-lib-coverage@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
@@ -3013,200 +2646,226 @@ jake@^10.6.1:
     filelist "^1.0.1"
     minimatch "^3.0.4"
 
-jest-changed-files@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0"
-  integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==
+jest-changed-files@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.2.tgz#997253042b4a032950fc5f56abf3c5d1f8560801"
+  integrity sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==
   dependencies:
-    "@jest/types" "^26.6.2"
-    execa "^4.0.0"
-    throat "^5.0.0"
+    "@jest/types" "^27.0.2"
+    execa "^5.0.0"
+    throat "^6.0.1"
 
-jest-cli@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a"
-  integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==
+jest-circus@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.4.tgz#3b261514ee3b3da33def736a6352c98ff56bb6e6"
+  integrity sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw==
   dependencies:
-    "@jest/core" "^26.6.3"
-    "@jest/test-result" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/environment" "^27.0.3"
+    "@jest/test-result" "^27.0.2"
+    "@jest/types" "^27.0.2"
+    "@types/node" "*"
+    chalk "^4.0.0"
+    co "^4.6.0"
+    dedent "^0.7.0"
+    expect "^27.0.2"
+    is-generator-fn "^2.0.0"
+    jest-each "^27.0.2"
+    jest-matcher-utils "^27.0.2"
+    jest-message-util "^27.0.2"
+    jest-runtime "^27.0.4"
+    jest-snapshot "^27.0.4"
+    jest-util "^27.0.2"
+    pretty-format "^27.0.2"
+    slash "^3.0.0"
+    stack-utils "^2.0.3"
+    throat "^6.0.1"
+
+jest-cli@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.4.tgz#491b12c754c0d7c6873b13a66f26b3a80a852910"
+  integrity sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ==
+  dependencies:
+    "@jest/core" "^27.0.4"
+    "@jest/test-result" "^27.0.2"
+    "@jest/types" "^27.0.2"
     chalk "^4.0.0"
     exit "^0.1.2"
     graceful-fs "^4.2.4"
     import-local "^3.0.2"
-    is-ci "^2.0.0"
-    jest-config "^26.6.3"
-    jest-util "^26.6.2"
-    jest-validate "^26.6.2"
+    jest-config "^27.0.4"
+    jest-util "^27.0.2"
+    jest-validate "^27.0.2"
     prompts "^2.0.1"
-    yargs "^15.4.1"
+    yargs "^16.0.3"
 
-jest-config@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349"
-  integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==
+jest-config@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.4.tgz#c4f41378acf40ca77860fb4e213b12109d87b8cf"
+  integrity sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg==
   dependencies:
     "@babel/core" "^7.1.0"
-    "@jest/test-sequencer" "^26.6.3"
-    "@jest/types" "^26.6.2"
-    babel-jest "^26.6.3"
+    "@jest/test-sequencer" "^27.0.4"
+    "@jest/types" "^27.0.2"
+    babel-jest "^27.0.2"
     chalk "^4.0.0"
     deepmerge "^4.2.2"
     glob "^7.1.1"
     graceful-fs "^4.2.4"
-    jest-environment-jsdom "^26.6.2"
-    jest-environment-node "^26.6.2"
-    jest-get-type "^26.3.0"
-    jest-jasmine2 "^26.6.3"
-    jest-regex-util "^26.0.0"
-    jest-resolve "^26.6.2"
-    jest-util "^26.6.2"
-    jest-validate "^26.6.2"
-    micromatch "^4.0.2"
-    pretty-format "^26.6.2"
-
-jest-diff@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394"
-  integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==
+    is-ci "^3.0.0"
+    jest-circus "^27.0.4"
+    jest-environment-jsdom "^27.0.3"
+    jest-environment-node "^27.0.3"
+    jest-get-type "^27.0.1"
+    jest-jasmine2 "^27.0.4"
+    jest-regex-util "^27.0.1"
+    jest-resolve "^27.0.4"
+    jest-runner "^27.0.4"
+    jest-util "^27.0.2"
+    jest-validate "^27.0.2"
+    micromatch "^4.0.4"
+    pretty-format "^27.0.2"
+
+jest-diff@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.2.tgz#f315b87cee5dc134cf42c2708ab27375cc3f5a7e"
+  integrity sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==
   dependencies:
     chalk "^4.0.0"
-    diff-sequences "^26.6.2"
-    jest-get-type "^26.3.0"
-    pretty-format "^26.6.2"
+    diff-sequences "^27.0.1"
+    jest-get-type "^27.0.1"
+    pretty-format "^27.0.2"
 
-jest-docblock@^26.0.0:
-  version "26.0.0"
-  resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5"
-  integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==
+jest-docblock@^27.0.1:
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.1.tgz#bd9752819b49fa4fab1a50b73eb58c653b962e8b"
+  integrity sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==
   dependencies:
     detect-newline "^3.0.0"
 
-jest-each@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb"
-  integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==
+jest-each@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.2.tgz#865ddb4367476ced752167926b656fa0dcecd8c7"
+  integrity sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==
   dependencies:
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     chalk "^4.0.0"
-    jest-get-type "^26.3.0"
-    jest-util "^26.6.2"
-    pretty-format "^26.6.2"
-
-jest-environment-jsdom@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e"
-  integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==
-  dependencies:
-    "@jest/environment" "^26.6.2"
-    "@jest/fake-timers" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    jest-get-type "^27.0.1"
+    jest-util "^27.0.2"
+    pretty-format "^27.0.2"
+
+jest-environment-jsdom@27.0.3, jest-environment-jsdom@^27.0.3:
+  version "27.0.3"
+  resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz#ed73e913ddc03864eb9f934b5cbabf1b63504e2e"
+  integrity sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA==
+  dependencies:
+    "@jest/environment" "^27.0.3"
+    "@jest/fake-timers" "^27.0.3"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
-    jest-mock "^26.6.2"
-    jest-util "^26.6.2"
-    jsdom "^16.4.0"
-
-jest-environment-node@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c"
-  integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==
-  dependencies:
-    "@jest/environment" "^26.6.2"
-    "@jest/fake-timers" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    jest-mock "^27.0.3"
+    jest-util "^27.0.2"
+    jsdom "^16.6.0"
+
+jest-environment-node@^27.0.3:
+  version "27.0.3"
+  resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.3.tgz#b4acb3679d2552a4215732cab8b0ca7ec4398ee0"
+  integrity sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg==
+  dependencies:
+    "@jest/environment" "^27.0.3"
+    "@jest/fake-timers" "^27.0.3"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
-    jest-mock "^26.6.2"
-    jest-util "^26.6.2"
+    jest-mock "^27.0.3"
+    jest-util "^27.0.2"
 
-jest-get-type@^26.3.0:
-  version "26.3.0"
-  resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"
-  integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==
+jest-get-type@^27.0.1:
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.1.tgz#34951e2b08c8801eb28559d7eb732b04bbcf7815"
+  integrity sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==
 
-jest-haste-map@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa"
-  integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==
+jest-haste-map@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.2.tgz#3f1819400c671237e48b4d4b76a80a0dbed7577f"
+  integrity sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA==
   dependencies:
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     "@types/graceful-fs" "^4.1.2"
     "@types/node" "*"
     anymatch "^3.0.3"
     fb-watchman "^2.0.0"
     graceful-fs "^4.2.4"
-    jest-regex-util "^26.0.0"
-    jest-serializer "^26.6.2"
-    jest-util "^26.6.2"
-    jest-worker "^26.6.2"
-    micromatch "^4.0.2"
-    sane "^4.0.3"
+    jest-regex-util "^27.0.1"
+    jest-serializer "^27.0.1"
+    jest-util "^27.0.2"
+    jest-worker "^27.0.2"
+    micromatch "^4.0.4"
     walker "^1.0.7"
   optionalDependencies:
-    fsevents "^2.1.2"
+    fsevents "^2.3.2"
 
-jest-jasmine2@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd"
-  integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==
+jest-jasmine2@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz#c669519ccf4904a485338555e1e66cad36bb0670"
+  integrity sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA==
   dependencies:
     "@babel/traverse" "^7.1.0"
-    "@jest/environment" "^26.6.2"
-    "@jest/source-map" "^26.6.2"
-    "@jest/test-result" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/environment" "^27.0.3"
+    "@jest/source-map" "^27.0.1"
+    "@jest/test-result" "^27.0.2"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
     chalk "^4.0.0"
     co "^4.6.0"
-    expect "^26.6.2"
+    expect "^27.0.2"
     is-generator-fn "^2.0.0"
-    jest-each "^26.6.2"
-    jest-matcher-utils "^26.6.2"
-    jest-message-util "^26.6.2"
-    jest-runtime "^26.6.3"
-    jest-snapshot "^26.6.2"
-    jest-util "^26.6.2"
-    pretty-format "^26.6.2"
-    throat "^5.0.0"
-
-jest-leak-detector@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af"
-  integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==
-  dependencies:
-    jest-get-type "^26.3.0"
-    pretty-format "^26.6.2"
-
-jest-matcher-utils@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a"
-  integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==
+    jest-each "^27.0.2"
+    jest-matcher-utils "^27.0.2"
+    jest-message-util "^27.0.2"
+    jest-runtime "^27.0.4"
+    jest-snapshot "^27.0.4"
+    jest-util "^27.0.2"
+    pretty-format "^27.0.2"
+    throat "^6.0.1"
+
+jest-leak-detector@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz#ce19aa9dbcf7a72a9d58907a970427506f624e69"
+  integrity sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==
+  dependencies:
+    jest-get-type "^27.0.1"
+    pretty-format "^27.0.2"
+
+jest-matcher-utils@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz#f14c060605a95a466cdc759acc546c6f4cbfc4f0"
+  integrity sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==
   dependencies:
     chalk "^4.0.0"
-    jest-diff "^26.6.2"
-    jest-get-type "^26.3.0"
-    pretty-format "^26.6.2"
+    jest-diff "^27.0.2"
+    jest-get-type "^27.0.1"
+    pretty-format "^27.0.2"
 
-jest-message-util@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07"
-  integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==
+jest-message-util@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.2.tgz#181c9b67dff504d8f4ad15cba10d8b80f272048c"
+  integrity sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==
   dependencies:
-    "@babel/code-frame" "^7.0.0"
-    "@jest/types" "^26.6.2"
+    "@babel/code-frame" "^7.12.13"
+    "@jest/types" "^27.0.2"
     "@types/stack-utils" "^2.0.0"
     chalk "^4.0.0"
     graceful-fs "^4.2.4"
-    micromatch "^4.0.2"
-    pretty-format "^26.6.2"
+    micromatch "^4.0.4"
+    pretty-format "^27.0.2"
     slash "^3.0.0"
-    stack-utils "^2.0.2"
+    stack-utils "^2.0.3"
 
-jest-mock@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302"
-  integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==
+jest-mock@^27.0.3:
+  version "27.0.3"
+  resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.3.tgz#5591844f9192b3335c0dca38e8e45ed297d4d23d"
+  integrity sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==
   dependencies:
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
 
 jest-pnp-resolver@^1.2.2:
@@ -3214,184 +2873,194 @@ jest-pnp-resolver@^1.2.2:
   resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
   integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
 
-jest-regex-util@^26.0.0:
-  version "26.0.0"
-  resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28"
-  integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==
+jest-regex-util@^27.0.1:
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.1.tgz#69d4b1bf5b690faa3490113c47486ed85dd45b68"
+  integrity sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==
 
-jest-resolve-dependencies@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6"
-  integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==
+jest-resolve-dependencies@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz#a07a242d70d668afd3fcf7f4270755eebb1fe579"
+  integrity sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A==
   dependencies:
-    "@jest/types" "^26.6.2"
-    jest-regex-util "^26.0.0"
-    jest-snapshot "^26.6.2"
+    "@jest/types" "^27.0.2"
+    jest-regex-util "^27.0.1"
+    jest-snapshot "^27.0.4"
 
-jest-resolve@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507"
-  integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==
+jest-resolve@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.4.tgz#8a27bc3f2f00c8ea28f3bc99bbf6f468300a703d"
+  integrity sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ==
   dependencies:
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     chalk "^4.0.0"
+    escalade "^3.1.1"
     graceful-fs "^4.2.4"
     jest-pnp-resolver "^1.2.2"
-    jest-util "^26.6.2"
-    read-pkg-up "^7.0.1"
-    resolve "^1.18.1"
+    jest-util "^27.0.2"
+    jest-validate "^27.0.2"
+    resolve "^1.20.0"
     slash "^3.0.0"
 
-jest-runner@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159"
-  integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==
+jest-runner@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.4.tgz#2787170a9509b792ae129794f6944d27d5d12a4f"
+  integrity sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg==
   dependencies:
-    "@jest/console" "^26.6.2"
-    "@jest/environment" "^26.6.2"
-    "@jest/test-result" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/console" "^27.0.2"
+    "@jest/environment" "^27.0.3"
+    "@jest/test-result" "^27.0.2"
+    "@jest/transform" "^27.0.2"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
     chalk "^4.0.0"
-    emittery "^0.7.1"
+    emittery "^0.8.1"
     exit "^0.1.2"
     graceful-fs "^4.2.4"
-    jest-config "^26.6.3"
-    jest-docblock "^26.0.0"
-    jest-haste-map "^26.6.2"
-    jest-leak-detector "^26.6.2"
-    jest-message-util "^26.6.2"
-    jest-resolve "^26.6.2"
-    jest-runtime "^26.6.3"
-    jest-util "^26.6.2"
-    jest-worker "^26.6.2"
+    jest-docblock "^27.0.1"
+    jest-environment-jsdom "^27.0.3"
+    jest-environment-node "^27.0.3"
+    jest-haste-map "^27.0.2"
+    jest-leak-detector "^27.0.2"
+    jest-message-util "^27.0.2"
+    jest-resolve "^27.0.4"
+    jest-runtime "^27.0.4"
+    jest-util "^27.0.2"
+    jest-worker "^27.0.2"
     source-map-support "^0.5.6"
-    throat "^5.0.0"
-
-jest-runtime@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b"
-  integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==
-  dependencies:
-    "@jest/console" "^26.6.2"
-    "@jest/environment" "^26.6.2"
-    "@jest/fake-timers" "^26.6.2"
-    "@jest/globals" "^26.6.2"
-    "@jest/source-map" "^26.6.2"
-    "@jest/test-result" "^26.6.2"
-    "@jest/transform" "^26.6.2"
-    "@jest/types" "^26.6.2"
-    "@types/yargs" "^15.0.0"
+    throat "^6.0.1"
+
+jest-runtime@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.4.tgz#2e4a6aa77cac32ac612dfe12768387a8aa15c2f0"
+  integrity sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A==
+  dependencies:
+    "@jest/console" "^27.0.2"
+    "@jest/environment" "^27.0.3"
+    "@jest/fake-timers" "^27.0.3"
+    "@jest/globals" "^27.0.3"
+    "@jest/source-map" "^27.0.1"
+    "@jest/test-result" "^27.0.2"
+    "@jest/transform" "^27.0.2"
+    "@jest/types" "^27.0.2"
+    "@types/yargs" "^16.0.0"
     chalk "^4.0.0"
-    cjs-module-lexer "^0.6.0"
+    cjs-module-lexer "^1.0.0"
     collect-v8-coverage "^1.0.0"
     exit "^0.1.2"
     glob "^7.1.3"
     graceful-fs "^4.2.4"
-    jest-config "^26.6.3"
-    jest-haste-map "^26.6.2"
-    jest-message-util "^26.6.2"
-    jest-mock "^26.6.2"
-    jest-regex-util "^26.0.0"
-    jest-resolve "^26.6.2"
-    jest-snapshot "^26.6.2"
-    jest-util "^26.6.2"
-    jest-validate "^26.6.2"
+    jest-haste-map "^27.0.2"
+    jest-message-util "^27.0.2"
+    jest-mock "^27.0.3"
+    jest-regex-util "^27.0.1"
+    jest-resolve "^27.0.4"
+    jest-snapshot "^27.0.4"
+    jest-util "^27.0.2"
+    jest-validate "^27.0.2"
     slash "^3.0.0"
     strip-bom "^4.0.0"
-    yargs "^15.4.1"
+    yargs "^16.0.3"
 
-jest-serializer@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1"
-  integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==
+jest-serializer@^27.0.1:
+  version "27.0.1"
+  resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.1.tgz#2464d04dcc33fb71dc80b7c82e3c5e8a08cb1020"
+  integrity sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==
   dependencies:
     "@types/node" "*"
     graceful-fs "^4.2.4"
 
-jest-snapshot@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84"
-  integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==
+jest-snapshot@^27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.4.tgz#2b96e22ca90382b3e93bd0aae2ce4c78bf51fb5b"
+  integrity sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA==
   dependencies:
+    "@babel/core" "^7.7.2"
+    "@babel/generator" "^7.7.2"
+    "@babel/parser" "^7.7.2"
+    "@babel/plugin-syntax-typescript" "^7.7.2"
+    "@babel/traverse" "^7.7.2"
     "@babel/types" "^7.0.0"
-    "@jest/types" "^26.6.2"
+    "@jest/transform" "^27.0.2"
+    "@jest/types" "^27.0.2"
     "@types/babel__traverse" "^7.0.4"
-    "@types/prettier" "^2.0.0"
+    "@types/prettier" "^2.1.5"
+    babel-preset-current-node-syntax "^1.0.0"
     chalk "^4.0.0"
-    expect "^26.6.2"
+    expect "^27.0.2"
     graceful-fs "^4.2.4"
-    jest-diff "^26.6.2"
-    jest-get-type "^26.3.0"
-    jest-haste-map "^26.6.2"
-    jest-matcher-utils "^26.6.2"
-    jest-message-util "^26.6.2"
-    jest-resolve "^26.6.2"
+    jest-diff "^27.0.2"
+    jest-get-type "^27.0.1"
+    jest-haste-map "^27.0.2"
+    jest-matcher-utils "^27.0.2"
+    jest-message-util "^27.0.2"
+    jest-resolve "^27.0.4"
+    jest-util "^27.0.2"
     natural-compare "^1.4.0"
-    pretty-format "^26.6.2"
+    pretty-format "^27.0.2"
     semver "^7.3.2"
 
-jest-util@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1"
-  integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==
+jest-util@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.2.tgz#fc2c7ace3c75ae561cf1e5fdb643bf685a5be7c7"
+  integrity sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==
   dependencies:
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
     chalk "^4.0.0"
     graceful-fs "^4.2.4"
-    is-ci "^2.0.0"
-    micromatch "^4.0.2"
+    is-ci "^3.0.0"
+    picomatch "^2.2.3"
 
-jest-validate@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec"
-  integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==
+jest-validate@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.2.tgz#7fe2c100089449cd5cbb47a5b0b6cb7cda5beee5"
+  integrity sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==
   dependencies:
-    "@jest/types" "^26.6.2"
-    camelcase "^6.0.0"
+    "@jest/types" "^27.0.2"
+    camelcase "^6.2.0"
     chalk "^4.0.0"
-    jest-get-type "^26.3.0"
+    jest-get-type "^27.0.1"
     leven "^3.1.0"
-    pretty-format "^26.6.2"
+    pretty-format "^27.0.2"
 
-jest-watcher@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975"
-  integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==
+jest-watcher@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.2.tgz#dab5f9443e2d7f52597186480731a8c6335c5deb"
+  integrity sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==
   dependencies:
-    "@jest/test-result" "^26.6.2"
-    "@jest/types" "^26.6.2"
+    "@jest/test-result" "^27.0.2"
+    "@jest/types" "^27.0.2"
     "@types/node" "*"
     ansi-escapes "^4.2.1"
     chalk "^4.0.0"
-    jest-util "^26.6.2"
+    jest-util "^27.0.2"
     string-length "^4.0.1"
 
-jest-worker@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
-  integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+jest-worker@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05"
+  integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==
   dependencies:
     "@types/node" "*"
     merge-stream "^2.0.0"
-    supports-color "^7.0.0"
+    supports-color "^8.0.0"
 
-jest@^26.6.3:
-  version "26.6.3"
-  resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef"
-  integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==
+jest@27.0.4:
+  version "27.0.4"
+  resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.4.tgz#91d4d564b36bcf93b98dac1ab19f07089e670f53"
+  integrity sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==
   dependencies:
-    "@jest/core" "^26.6.3"
+    "@jest/core" "^27.0.4"
     import-local "^3.0.2"
-    jest-cli "^26.6.3"
+    jest-cli "^27.0.4"
 
 js-tokens@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
   integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
 
-js-yaml@^3.13.1, js-yaml@^3.14.1:
+js-yaml@^3.13.1:
   version "3.14.1"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
   integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
@@ -3399,41 +3068,44 @@ js-yaml@^3.13.1, js-yaml@^3.14.1:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
-jsbn@~0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-  integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
 
-jsdom@^16.4.0:
-  version "16.4.0"
-  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb"
-  integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==
+jsdom@^16.6.0:
+  version "16.6.0"
+  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac"
+  integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==
   dependencies:
-    abab "^2.0.3"
-    acorn "^7.1.1"
+    abab "^2.0.5"
+    acorn "^8.2.4"
     acorn-globals "^6.0.0"
     cssom "^0.4.4"
-    cssstyle "^2.2.0"
+    cssstyle "^2.3.0"
     data-urls "^2.0.0"
-    decimal.js "^10.2.0"
+    decimal.js "^10.2.1"
     domexception "^2.0.1"
-    escodegen "^1.14.1"
+    escodegen "^2.0.0"
+    form-data "^3.0.0"
     html-encoding-sniffer "^2.0.1"
-    is-potential-custom-element-name "^1.0.0"
+    http-proxy-agent "^4.0.1"
+    https-proxy-agent "^5.0.0"
+    is-potential-custom-element-name "^1.0.1"
     nwsapi "^2.2.0"
-    parse5 "5.1.1"
-    request "^2.88.2"
-    request-promise-native "^1.0.8"
-    saxes "^5.0.0"
+    parse5 "6.0.1"
+    saxes "^5.0.1"
     symbol-tree "^3.2.4"
-    tough-cookie "^3.0.1"
+    tough-cookie "^4.0.0"
     w3c-hr-time "^1.0.2"
     w3c-xmlserializer "^2.0.0"
     webidl-conversions "^6.1.0"
     whatwg-encoding "^1.0.5"
     whatwg-mimetype "^2.3.0"
-    whatwg-url "^8.0.0"
-    ws "^7.2.3"
+    whatwg-url "^8.5.0"
+    ws "^7.4.5"
     xml-name-validator "^3.0.0"
 
 jsesc@^2.5.1:
@@ -3446,11 +3118,6 @@ json-buffer@3.0.0:
   resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
   integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
 
-json-parse-even-better-errors@^2.3.0:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
-  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-
 json-schema-traverse@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -3461,22 +3128,17 @@ json-schema-traverse@^1.0.0:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
   integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
 
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
-
 json-stable-stringify-without-jsonify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
-json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
+json-stringify-safe@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
   integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
 
-json5@^2.1.2:
+json5@^2.1.2, json5@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
   integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
@@ -3499,16 +3161,6 @@ jsonfile@^6.0.1:
   optionalDependencies:
     graceful-fs "^4.1.6"
 
-jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
-  dependencies:
-    assert-plus "1.0.0"
-    extsprintf "1.3.0"
-    json-schema "0.2.3"
-    verror "1.10.0"
-
 keyv@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
@@ -3516,30 +3168,6 @@ keyv@^3.0.0:
   dependencies:
     json-buffer "3.0.0"
 
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
-  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
-  dependencies:
-    is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
-  integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
-  dependencies:
-    is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
-  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
-  version "6.0.3"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
-  integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-
 kleur@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
@@ -3552,10 +3180,10 @@ latest-version@^5.1.0:
   dependencies:
     package-json "^6.3.0"
 
-lazy-val@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65"
-  integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==
+lazy-val@^1.0.4, lazy-val@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d"
+  integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==
 
 lazystream@^1.0.0:
   version "1.0.0"
@@ -3585,11 +3213,6 @@ levn@~0.3.0:
     prelude-ls "~1.1.2"
     type-check "~0.3.2"
 
-lines-and-columns@^1.1.6:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
-  integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-
 locate-path@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
@@ -3597,6 +3220,11 @@ locate-path@^5.0.0:
   dependencies:
     p-locate "^4.1.0"
 
+lodash.clonedeep@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
 lodash.defaults@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
@@ -3617,20 +3245,30 @@ lodash.isplainobject@^4.0.6:
   resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
   integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
 
-lodash.sortby@^4.7.0:
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
-  integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+lodash.memoize@4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+  integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash.truncate@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
+  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
 
 lodash.union@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
   integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
 
-lodash@^4.17.10, lodash@^4.17.19, lodash@^4.17.20:
-  version "4.17.20"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
-  integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+lodash@^4.17.10, lodash@^4.17.15, lodash@^4.7.0:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
 lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
   version "1.0.1"
@@ -3663,18 +3301,6 @@ makeerror@1.0.x:
   dependencies:
     tmpl "1.0.x"
 
-map-cache@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
-  integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
-
-map-visit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
-  integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
-  dependencies:
-    object-visit "^1.0.0"
-
 matcher@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca"
@@ -3687,49 +3313,30 @@ merge-stream@^2.0.0:
   resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
   integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
 
-micromatch@^3.1.4:
-  version "3.1.10"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
-  integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
-  dependencies:
-    arr-diff "^4.0.0"
-    array-unique "^0.3.2"
-    braces "^2.3.1"
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    extglob "^2.0.4"
-    fragment-cache "^0.2.1"
-    kind-of "^6.0.2"
-    nanomatch "^1.2.9"
-    object.pick "^1.3.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.2"
-
-micromatch@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
-  integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+micromatch@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
   dependencies:
     braces "^3.0.1"
-    picomatch "^2.0.5"
+    picomatch "^2.2.3"
 
-mime-db@1.45.0:
-  version "1.45.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
-  integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
+mime-db@1.48.0:
+  version "1.48.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d"
+  integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==
 
-mime-types@^2.1.12, mime-types@~2.1.19:
-  version "2.1.28"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
-  integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
+mime-types@^2.1.12:
+  version "2.1.31"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b"
+  integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==
   dependencies:
-    mime-db "1.45.0"
+    mime-db "1.48.0"
 
-mime@^2.4.7:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1"
-  integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==
+mime@^2.5.2:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
+  integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
 
 mimic-fn@^2.1.0:
   version "2.1.0"
@@ -3748,19 +3355,11 @@ minimatch@3.0.4, minimatch@^3.0.4:
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+minimist@^1.2.0, minimist@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
-mixin-deep@^1.2.0:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
-  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
-  dependencies:
-    for-in "^1.0.2"
-    is-extendable "^1.0.1"
-
 mkdirp@^0.5.4:
   version "0.5.5"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
@@ -3778,33 +3377,11 @@ ms@2.1.2:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
-nanomatch@^1.2.9:
-  version "1.2.13"
-  resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
-  integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
-  dependencies:
-    arr-diff "^4.0.0"
-    array-unique "^0.3.2"
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    fragment-cache "^0.2.1"
-    is-windows "^1.0.2"
-    kind-of "^6.0.2"
-    object.pick "^1.3.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
 natural-compare@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
 
-nice-try@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
-  integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-
 node-addon-api@^1.6.3:
   version "1.7.2"
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
@@ -3820,44 +3397,10 @@ node-modules-regexp@^1.0.0:
   resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
   integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
 
-node-notifier@^8.0.0:
-  version "8.0.1"
-  resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1"
-  integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==
-  dependencies:
-    growly "^1.3.0"
-    is-wsl "^2.2.0"
-    semver "^7.3.2"
-    shellwords "^0.1.1"
-    uuid "^8.3.0"
-    which "^2.0.2"
-
-normalize-package-data@^2.5.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
-  integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
-  dependencies:
-    hosted-git-info "^2.1.4"
-    resolve "^1.10.0"
-    semver "2 || 3 || 4 || 5"
-    validate-npm-package-license "^3.0.1"
-
-normalize-package-data@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a"
-  integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==
-  dependencies:
-    hosted-git-info "^3.0.6"
-    resolve "^1.17.0"
-    semver "^7.3.2"
-    validate-npm-package-license "^3.0.1"
-
-normalize-path@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
-  integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
-  dependencies:
-    remove-trailing-separator "^1.0.1"
+node-releases@^1.1.71:
+  version "1.1.73"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"
+  integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
 
 normalize-path@^3.0.0:
   version "3.0.0"
@@ -3865,9 +3408,9 @@ normalize-path@^3.0.0:
   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
 
 normalize-url@^4.1.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
-  integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
+  version "4.5.1"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
+  integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
 
 npm-conf@^1.1.3:
   version "1.1.3"
@@ -3877,14 +3420,7 @@ npm-conf@^1.1.3:
     config-chain "^1.1.11"
     pify "^3.0.0"
 
-npm-run-path@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
-  integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
-  dependencies:
-    path-key "^2.0.0"
-
-npm-run-path@^4.0.0:
+npm-run-path@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
   integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
@@ -3896,39 +3432,11 @@ nwsapi@^2.2.0:
   resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
   integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
 
-oauth-sign@~0.9.0:
-  version "0.9.0"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
-  integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
-object-copy@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
-  integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
-  dependencies:
-    copy-descriptor "^0.1.0"
-    define-property "^0.2.5"
-    kind-of "^3.0.3"
-
 object-keys@^1.0.12:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
   integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
 
-object-visit@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
-  integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
-  dependencies:
-    isobject "^3.0.0"
-
-object.pick@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
-  integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
-  dependencies:
-    isobject "^3.0.1"
-
 once@^1.3.0, once@^1.3.1, once@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -3936,7 +3444,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
   dependencies:
     wrappy "1"
 
-onetime@^5.1.0:
+onetime@^5.1.2:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
   integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
@@ -3977,11 +3485,6 @@ p-each-series@^2.1.0:
   resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a"
   integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==
 
-p-finally@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
-  integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-
 p-limit@^2.2.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -4018,25 +3521,10 @@ parent-module@^1.0.0:
   dependencies:
     callsites "^3.0.0"
 
-parse-json@^5.0.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
-  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    error-ex "^1.3.1"
-    json-parse-even-better-errors "^2.3.0"
-    lines-and-columns "^1.1.6"
-
-parse5@5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
-  integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
-
-pascalcase@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
-  integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+parse5@6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
+  integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
 
 path-exists@^4.0.0:
   version "4.0.0"
@@ -4048,35 +3536,25 @@ path-is-absolute@^1.0.0:
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
 
-path-key@^2.0.0, path-key@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
-  integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-
 path-key@^3.0.0, path-key@^3.1.0:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
   integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
 
 path-parse@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
-  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
 
 pend@~1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
   integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
 
-performance-now@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-
-picomatch@^2.0.4, picomatch@^2.0.5:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
-  integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
+picomatch@^2.0.4, picomatch@^2.2.3:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+  integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
 
 pify@^3.0.0:
   version "3.0.0"
@@ -4098,18 +3576,13 @@ pkg-dir@^4.2.0:
     find-up "^4.0.0"
 
 plist@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c"
-  integrity sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz#74bbf011124b90421c22d15779cee60060ba95bc"
+  integrity sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==
   dependencies:
-    base64-js "^1.2.3"
+    base64-js "^1.5.1"
     xmlbuilder "^9.0.7"
-    xmldom "0.1.x"
-
-posix-character-classes@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
-  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+    xmldom "^0.5.0"
 
 prelude-ls@^1.2.1:
   version "1.2.1"
@@ -4126,14 +3599,14 @@ prepend-http@^2.0.0:
   resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
   integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
 
-pretty-format@^26.6.2:
-  version "26.6.2"
-  resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
-  integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==
+pretty-format@^27.0.2:
+  version "27.0.2"
+  resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.2.tgz#9283ff8c4f581b186b2d4da461617143dca478a4"
+  integrity sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==
   dependencies:
-    "@jest/types" "^26.6.2"
+    "@jest/types" "^27.0.2"
     ansi-regex "^5.0.0"
-    ansi-styles "^4.0.0"
+    ansi-styles "^5.0.0"
     react-is "^17.0.1"
 
 printj@~1.1.0:
@@ -4152,9 +3625,9 @@ progress@^2.0.0, progress@^2.0.3:
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
 prompts@^2.0.1:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7"
-  integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61"
+  integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==
   dependencies:
     kleur "^3.0.3"
     sisteransi "^1.0.5"
@@ -4164,7 +3637,7 @@ proto-list@~1.2.1:
   resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
   integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
 
-psl@^1.1.28:
+psl@^1.1.33:
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
   integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
@@ -4189,11 +3662,6 @@ pupa@^2.1.1:
   dependencies:
     escape-goat "^2.0.0"
 
-qs@~6.5.2:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
-  integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
-
 rc@^1.2.8:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
@@ -4205,40 +3673,21 @@ rc@^1.2.8:
     strip-json-comments "~2.0.1"
 
 react-is@^17.0.1:
-  version "17.0.1"
-  resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339"
-  integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+  integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
 
-read-config-file@6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz#224b5dca6a5bdc1fb19e63f89f342680efdb9299"
-  integrity sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==
+read-config-file@6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz#71536072330bcd62ba814f91458b12add9fc7ade"
+  integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==
   dependencies:
-    dotenv "^8.2.0"
+    dotenv "^9.0.2"
     dotenv-expand "^5.1.0"
-    js-yaml "^3.13.1"
-    json5 "^2.1.2"
+    js-yaml "^4.1.0"
+    json5 "^2.2.0"
     lazy-val "^1.0.4"
 
-read-pkg-up@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
-  integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
-  dependencies:
-    find-up "^4.1.0"
-    read-pkg "^5.2.0"
-    type-fest "^0.8.1"
-
-read-pkg@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
-  integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
-  dependencies:
-    "@types/normalize-package-data" "^2.4.0"
-    normalize-package-data "^2.5.0"
-    parse-json "^5.0.0"
-    type-fest "^0.6.0"
-
 readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
@@ -4268,14 +3717,6 @@ readdir-glob@^1.0.0:
   dependencies:
     minimatch "^3.0.4"
 
-regex-not@^1.0.0, regex-not@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
-  integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
-  dependencies:
-    extend-shallow "^3.0.2"
-    safe-regex "^1.1.0"
-
 regexpp@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
@@ -4295,63 +3736,6 @@ registry-url@^5.0.0:
   dependencies:
     rc "^1.2.8"
 
-remove-trailing-separator@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
-  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
-
-repeat-element@^1.1.2:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
-  integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
-
-repeat-string@^1.6.1:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-
-request-promise-core@1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
-  integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
-  dependencies:
-    lodash "^4.17.19"
-
-request-promise-native@^1.0.8:
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
-  integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
-  dependencies:
-    request-promise-core "1.1.4"
-    stealthy-require "^1.1.1"
-    tough-cookie "^2.3.3"
-
-request@^2.88.2:
-  version "2.88.2"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
-  integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.8.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.6"
-    extend "~3.0.2"
-    forever-agent "~0.6.1"
-    form-data "~2.3.2"
-    har-validator "~5.1.3"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.19"
-    oauth-sign "~0.9.0"
-    performance-now "^2.1.0"
-    qs "~6.5.2"
-    safe-buffer "^5.1.2"
-    tough-cookie "~2.5.0"
-    tunnel-agent "^0.6.0"
-    uuid "^3.3.2"
-
 require-directory@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -4362,10 +3746,10 @@ require-from-string@^2.0.2:
   resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
   integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
 
-require-main-filename@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
-  integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+requireindex@~1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
+  integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==
 
 resolve-cwd@^3.0.0:
   version "3.0.0"
@@ -4384,12 +3768,7 @@ resolve-from@^5.0.0:
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
   integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
 
-resolve-url@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
-  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-
-resolve@^1.10.0, resolve@^1.17.0, resolve@^1.18.1:
+resolve@^1.20.0:
   version "1.20.0"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
   integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
@@ -4404,12 +3783,7 @@ responselike@^1.0.2:
   dependencies:
     lowercase-keys "^1.0.0"
 
-ret@~0.1.10:
-  version "0.1.15"
-  resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
-  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
-rimraf@^3.0.0, rimraf@^3.0.2:
+rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
   integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -4428,48 +3802,21 @@ roarr@^2.15.3:
     semver-compare "^1.0.0"
     sprintf-js "^1.1.2"
 
-rsvp@^4.8.4:
-  version "4.8.5"
-  resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
-  integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
-  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
 safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
-safe-regex@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
-  integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
-  dependencies:
-    ret "~0.1.10"
+safe-buffer@~5.2.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 
-"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 
-sane@^4.0.3:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
-  integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
-  dependencies:
-    "@cnakazawa/watch" "^1.0.3"
-    anymatch "^2.0.0"
-    capture-exit "^2.0.0"
-    exec-sh "^0.3.2"
-    execa "^1.0.0"
-    fb-watchman "^2.0.0"
-    micromatch "^3.1.4"
-    minimist "^1.1.1"
-    walker "~1.0.5"
-
 sanitize-filename@^1.6.3:
   version "1.6.3"
   resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
@@ -4482,7 +3829,7 @@ sax@^1.2.4:
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
   integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
 
-saxes@^5.0.0:
+saxes@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
   integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
@@ -4501,20 +3848,20 @@ semver-diff@^3.1.1:
   dependencies:
     semver "^6.3.0"
 
-"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0:
-  version "5.7.1"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
-  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+semver@7.3.2:
+  version "7.3.2"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
+  integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
 
 semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
   version "6.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
-semver@^7.2.1, semver@^7.3.2, semver@^7.3.4:
-  version "7.3.4"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
-  integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
+semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
   dependencies:
     lru-cache "^6.0.0"
 
@@ -4525,28 +3872,6 @@ serialize-error@^7.0.1:
   dependencies:
     type-fest "^0.13.1"
 
-set-blocking@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-set-value@^2.0.0, set-value@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
-  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
-  dependencies:
-    extend-shallow "^2.0.1"
-    is-extendable "^0.1.1"
-    is-plain-object "^2.0.3"
-    split-string "^3.0.1"
-
-shebang-command@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
-  integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
-  dependencies:
-    shebang-regex "^1.0.0"
-
 shebang-command@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -4554,22 +3879,12 @@ shebang-command@^2.0.0:
   dependencies:
     shebang-regex "^3.0.0"
 
-shebang-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-  integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-
 shebang-regex@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
   integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
-shellwords@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
-  integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
-
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.2, signal-exit@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
   integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
@@ -4605,47 +3920,6 @@ smart-buffer@^4.0.2:
   resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
   integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==
 
-snapdragon-node@^2.0.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
-  integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
-  dependencies:
-    define-property "^1.0.0"
-    isobject "^3.0.0"
-    snapdragon-util "^3.0.1"
-
-snapdragon-util@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
-  integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
-  dependencies:
-    kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
-  integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
-  dependencies:
-    base "^0.11.1"
-    debug "^2.2.0"
-    define-property "^0.2.5"
-    extend-shallow "^2.0.1"
-    map-cache "^0.2.2"
-    source-map "^0.5.6"
-    source-map-resolve "^0.5.0"
-    use "^3.1.0"
-
-source-map-resolve@^0.5.0:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
-  integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
-  dependencies:
-    atob "^2.1.2"
-    decode-uri-component "^0.2.0"
-    resolve-url "^0.2.1"
-    source-map-url "^0.4.0"
-    urix "^0.1.0"
-
 source-map-support@^0.5.19, source-map-support@^0.5.6:
   version "0.5.19"
   resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
@@ -4654,12 +3928,7 @@ source-map-support@^0.5.19, source-map-support@^0.5.6:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
 
-source-map-url@^0.4.0:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
-  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
-
-source-map@^0.5.0, source-map@^0.5.6:
+source-map@^0.5.0:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
   integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -4674,39 +3943,6 @@ source-map@^0.7.3:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
   integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
 
-spdx-correct@^3.0.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
-  integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
-  dependencies:
-    spdx-expression-parse "^3.0.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
-  integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-
-spdx-expression-parse@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
-  integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
-  dependencies:
-    spdx-exceptions "^2.1.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
-  version "3.0.7"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65"
-  integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==
-
-split-string@^3.0.1, split-string@^3.0.2:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
-  integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
-  dependencies:
-    extend-shallow "^3.0.0"
-
 sprintf-js@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
@@ -4717,22 +3953,7 @@ sprintf-js@~1.0.2:
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
 
-sshpk@^1.7.0:
-  version "1.16.1"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
-  integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
-  dependencies:
-    asn1 "~0.2.3"
-    assert-plus "^1.0.0"
-    bcrypt-pbkdf "^1.0.0"
-    dashdash "^1.12.0"
-    ecc-jsbn "~0.1.1"
-    getpass "^0.1.1"
-    jsbn "~0.1.0"
-    safer-buffer "^2.0.2"
-    tweetnacl "~0.14.0"
-
-stack-utils@^2.0.2:
+stack-utils@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277"
   integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==
@@ -4744,23 +3965,10 @@ stat-mode@^1.0.0:
   resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465"
   integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==
 
-static-extend@^0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
-  integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
-  dependencies:
-    define-property "^0.2.5"
-    object-copy "^0.1.0"
-
-stealthy-require@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
-  integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
-
 string-length@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1"
-  integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+  integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==
   dependencies:
     char-regex "^1.0.2"
     strip-ansi "^6.0.0"
@@ -4783,9 +3991,9 @@ string-width@^3.0.0:
     strip-ansi "^5.1.0"
 
 string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
-  integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
   dependencies:
     emoji-regex "^8.0.0"
     is-fullwidth-code-point "^3.0.0"
@@ -4831,11 +4039,6 @@ strip-bom@^4.0.0:
   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
   integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
 
-strip-eof@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
-  integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-
 strip-final-newline@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
@@ -4872,10 +4075,17 @@ supports-color@^7.0.0, supports-color@^7.1.0:
   dependencies:
     has-flag "^4.0.0"
 
+supports-color@^8.0.0:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+  dependencies:
+    has-flag "^4.0.0"
+
 supports-hyperlinks@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
-  integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
+  integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
   dependencies:
     has-flag "^4.0.0"
     supports-color "^7.0.0"
@@ -4885,17 +4095,19 @@ symbol-tree@^3.2.4:
   resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
   integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
 
-table@^6.0.4:
-  version "6.0.7"
-  resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34"
-  integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==
+table@^6.0.9:
+  version "6.7.1"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
+  integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
   dependencies:
-    ajv "^7.0.2"
-    lodash "^4.17.20"
+    ajv "^8.0.1"
+    lodash.clonedeep "^4.5.0"
+    lodash.truncate "^4.4.2"
     slice-ansi "^4.0.0"
     string-width "^4.2.0"
+    strip-ansi "^6.0.0"
 
-tar-stream@^2.1.4:
+tar-stream@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
   integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
@@ -4906,13 +4118,13 @@ tar-stream@^2.1.4:
     inherits "^2.0.3"
     readable-stream "^3.1.1"
 
-temp-file@^3.3.7:
-  version "3.3.7"
-  resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a"
-  integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==
+temp-file@^3.4.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7"
+  integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==
   dependencies:
     async-exit-hook "^2.0.1"
-    fs-extra "^8.1.0"
+    fs-extra "^10.0.0"
 
 terminal-link@^2.0.0:
   version "2.1.1"
@@ -4936,22 +4148,36 @@ text-table@^0.2.0:
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
   integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
 
-throat@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
-  integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
+throat@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
+  integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
 
-tldts-core@^5.7.6:
-  version "5.7.6"
-  resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.6.tgz#af99b4ab79761dfa6c44d1d61a3f76bb5c3def8b"
-  integrity sha512-VfRarBs7nbY9Af3In4O1A3d7T6eZh+w/IjRPpBo8VgRHAo7LJ+GrzCVo1yoOPmm3tdO1vUXtwBnchWN0dpL6lQ==
+tldts-core@^5.7.38:
+  version "5.7.38"
+  resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.38.tgz#779092c90941803fb682c3d7094a88f12aad4508"
+  integrity sha512-mcL16YTXjpVJ+ekoKC/ddvdjGNMg8HkdWQNp3WNz26WJMV7Z2Hjr1IPwYYr9W3LxGdXV7mmg21Zk2vSstiSsFg==
 
 tldts-experimental@^5.6.21:
-  version "5.7.6"
-  resolved "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.6.tgz#10c255872af89ab68659c3a345c7a65015920024"
-  integrity sha512-FRpjSRsxsa46/PRc2erEx8B9uZQYsdBQPG/s3B7IGhWxi1VG6GOwTJWGyfFBy3LWfge7Kw3Yrh89ZS01tUKMIQ==
+  version "5.7.38"
+  resolved "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.38.tgz#a2b03ae0282ee7439b1ed1618a1d7d2e9e66be78"
+  integrity sha512-3L0yML53LSw3tlRPwHcGOf35l3dhZx/3DgPGWL3ILATnuu76OiAOvJ4Xw1Znl6sIxVKJ4B4BE0zroZMMzsHg/A==
   dependencies:
-    tldts-core "^5.7.6"
+    tldts-core "^5.7.38"
+
+tmp-promise@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a"
+  integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA==
+  dependencies:
+    tmp "^0.2.0"
+
+tmp@^0.2.0:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
+  integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+  dependencies:
+    rimraf "^3.0.0"
 
 tmpl@1.0.x:
   version "1.0.4"
@@ -4963,26 +4189,11 @@ to-fast-properties@^2.0.0:
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
   integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
 
-to-object-path@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
-  integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
-  dependencies:
-    kind-of "^3.0.2"
-
 to-readable-stream@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
   integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
 
-to-regex-range@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
-  integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
-  dependencies:
-    is-number "^3.0.0"
-    repeat-string "^1.6.1"
-
 to-regex-range@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -4990,37 +4201,19 @@ to-regex-range@^5.0.1:
   dependencies:
     is-number "^7.0.0"
 
-to-regex@^3.0.1, to-regex@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
-  integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
-  dependencies:
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    regex-not "^1.0.2"
-    safe-regex "^1.1.0"
-
-tough-cookie@^2.3.3, tough-cookie@~2.5.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
-  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
-  dependencies:
-    psl "^1.1.28"
-    punycode "^2.1.1"
-
-tough-cookie@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
-  integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
+tough-cookie@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"
+  integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==
   dependencies:
-    ip-regex "^2.1.0"
-    psl "^1.1.28"
+    psl "^1.1.33"
     punycode "^2.1.1"
+    universalify "^0.1.2"
 
-tr46@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479"
-  integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==
+tr46@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240"
+  integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==
   dependencies:
     punycode "^2.1.1"
 
@@ -5031,23 +4224,11 @@ truncate-utf8-bytes@^1.0.0:
   dependencies:
     utf8-byte-length "^1.0.1"
 
-tunnel-agent@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
-  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
-  dependencies:
-    safe-buffer "^5.0.1"
-
 tunnel@^0.0.6:
   version "0.0.6"
   resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
   integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
 
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-  integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
-
 type-check@^0.4.0, type-check@~0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -5067,11 +4248,6 @@ type-detect@4.0.8:
   resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
   integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
 
-type-fest@^0.11.0:
-  version "0.11.0"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
-  integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
-
 type-fest@^0.13.1:
   version "0.13.1"
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
@@ -5082,15 +4258,10 @@ type-fest@^0.20.2:
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
   integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
-type-fest@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
-  integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
-
-type-fest@^0.8.1:
-  version "0.8.1"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
-  integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+type-fest@^0.21.3:
+  version "0.21.3"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+  integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
 
 typedarray-to-buffer@^3.1.5:
   version "3.1.5"
@@ -5104,16 +4275,6 @@ typedarray@^0.0.6:
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
-union-value@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
-  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
-  dependencies:
-    arr-union "^3.1.0"
-    get-value "^2.0.6"
-    is-extendable "^0.1.1"
-    set-value "^2.0.1"
-
 unique-string@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
@@ -5121,7 +4282,7 @@ unique-string@^2.0.0:
   dependencies:
     crypto-random-string "^2.0.0"
 
-universalify@^0.1.0:
+universalify@^0.1.0, universalify@^0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
   integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
@@ -5131,15 +4292,7 @@ universalify@^2.0.0:
   resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
   integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
 
-unset-value@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
-  integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
-  dependencies:
-    has-value "^0.3.1"
-    isobject "^3.0.0"
-
-update-notifier@^5.0.1:
+update-notifier@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"
   integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==
@@ -5166,11 +4319,6 @@ uri-js@^4.2.2:
   dependencies:
     punycode "^2.1.0"
 
-urix@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
-  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-
 url-parse-lax@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
@@ -5178,11 +4326,6 @@ url-parse-lax@^3.0.0:
   dependencies:
     prepend-http "^2.0.0"
 
-use@^3.1.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
-  integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
 utf8-byte-length@^1.0.1:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
@@ -5193,39 +4336,21 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
 
-uuid@^3.3.2:
-  version "3.4.0"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
-  integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-
-uuid@^8.3.0:
-  version "8.3.2"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
-  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-
 v8-compile-cache@^2.0.3:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
-  integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
 
 v8-to-istanbul@^7.0.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07"
-  integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1"
+  integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==
   dependencies:
     "@types/istanbul-lib-coverage" "^2.0.1"
     convert-source-map "^1.6.0"
     source-map "^0.7.3"
 
-validate-npm-package-license@^3.0.1:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
-  integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
-  dependencies:
-    spdx-correct "^3.0.0"
-    spdx-expression-parse "^3.0.0"
-
-verror@1.10.0, verror@^1.10.0:
+verror@^1.10.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
   integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
@@ -5248,7 +4373,7 @@ w3c-xmlserializer@^2.0.0:
   dependencies:
     xml-name-validator "^3.0.0"
 
-walker@^1.0.7, walker@~1.0.5:
+walker@^1.0.7:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
   integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=
@@ -5277,28 +4402,16 @@ whatwg-mimetype@^2.3.0:
   resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
   integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
 
-whatwg-url@^8.0.0:
-  version "8.4.0"
-  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837"
-  integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==
+whatwg-url@^8.0.0, whatwg-url@^8.5.0:
+  version "8.6.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.6.0.tgz#27c0205a4902084b872aecb97cf0f2a7a3011f4c"
+  integrity sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw==
   dependencies:
-    lodash.sortby "^4.7.0"
-    tr46 "^2.0.2"
+    lodash "^4.7.0"
+    tr46 "^2.1.0"
     webidl-conversions "^6.1.0"
 
-which-module@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-
-which@^1.2.9:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
-  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
-  dependencies:
-    isexe "^2.0.0"
-
-which@^2.0.1, which@^2.0.2:
+which@^2.0.1:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
   integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
@@ -5317,15 +4430,6 @@ word-wrap@^1.2.3, word-wrap@~1.2.3:
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
-wrap-ansi@^6.2.0:
-  version "6.2.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
-  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
-  dependencies:
-    ansi-styles "^4.0.0"
-    string-width "^4.1.0"
-    strip-ansi "^6.0.0"
-
 wrap-ansi@^7.0.0:
   version "7.0.0"
   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -5350,10 +4454,10 @@ write-file-atomic@^3.0.0:
     signal-exit "^3.0.2"
     typedarray-to-buffer "^3.1.5"
 
-ws@^7.2.3:
-  version "7.4.3"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd"
-  integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==
+ws@^7.4.5:
+  version "7.4.6"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
+  integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
 
 xdg-basedir@^4.0.0:
   version "4.0.0"
@@ -5380,60 +4484,43 @@ xmlchars@^2.2.0:
   resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
   integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
 
-xmldom@0.1.x:
-  version "0.1.31"
-  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
-  integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
-
-y18n@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
-  integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
+xmldom@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e"
+  integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==
 
 y18n@^5.0.5:
-  version "5.0.5"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18"
-  integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
 
 yallist@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
   integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
 
-yargs-parser@^18.1.2:
-  version "18.1.3"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
-  integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
-  dependencies:
-    camelcase "^5.0.0"
-    decamelize "^1.2.0"
-
 yargs-parser@^20.2.2:
-  version "20.2.4"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
-  integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+  version "20.2.7"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
+  integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
 
-yargs@^15.4.1:
-  version "15.4.1"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
-  integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
+yargs@^16.0.3:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
   dependencies:
-    cliui "^6.0.0"
-    decamelize "^1.2.0"
-    find-up "^4.1.0"
-    get-caller-file "^2.0.1"
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
     require-directory "^2.1.1"
-    require-main-filename "^2.0.0"
-    set-blocking "^2.0.0"
     string-width "^4.2.0"
-    which-module "^2.0.0"
-    y18n "^4.0.0"
-    yargs-parser "^18.1.2"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
 
-yargs@^16.2.0:
-  version "16.2.0"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
-  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+yargs@^17.0.1:
+  version "17.0.1"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb"
+  integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==
   dependencies:
     cliui "^7.0.2"
     escalade "^3.1.1"
@@ -5451,11 +4538,11 @@ yauzl@^2.10.0:
     buffer-crc32 "~0.2.3"
     fd-slicer "~1.1.0"
 
-zip-stream@^4.0.4:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.0.4.tgz#3a8f100b73afaa7d1ae9338d910b321dec77ff3a"
-  integrity sha512-a65wQ3h5gcQ/nQGWV1mSZCEzCML6EK/vyVPcrPNynySP1j3VBbQKh3nhC8CbORb+jfl2vXvh56Ul5odP1bAHqw==
+zip-stream@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79"
+  integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==
   dependencies:
     archiver-utils "^2.1.0"
-    compress-commons "^4.0.2"
+    compress-commons "^4.1.0"
     readable-stream "^3.6.0"
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix
index e4bfdf726172..11cf84050d01 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix
@@ -2,11 +2,11 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "7zip_bin___7zip_bin_5.0.3.tgz";
+      name = "7zip_bin___7zip_bin_5.1.1.tgz";
       path = fetchurl {
-        name = "7zip_bin___7zip_bin_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz";
-        sha1 = "bc5b5532ecafd923a61f2fb097e3b108c0106a3f";
+        name = "7zip_bin___7zip_bin_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz";
+        sha1 = "9274ec7460652f9c632c59addf24efb1684ef876";
       };
     }
     {
@@ -26,27 +26,43 @@
       };
     }
     {
-      name = "_babel_core___core_7.12.16.tgz";
+      name = "_babel_compat_data___compat_data_7.14.4.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.12.16.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.16.tgz";
-        sha1 = "8c6ba456b23b680a6493ddcfcd9d3c3ad51cab7c";
+        name = "_babel_compat_data___compat_data_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz";
+        sha1 = "45720fe0cecf3fd42019e1d12cc3d27fadc98d58";
       };
     }
     {
-      name = "_babel_generator___generator_7.12.15.tgz";
+      name = "_babel_core___core_7.14.3.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.12.15.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz";
-        sha1 = "4617b5d0b25cc572474cc1aafee1edeaf9b5368f";
+        name = "_babel_core___core_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz";
+        sha1 = "5395e30405f0776067fbd9cf0884f15bfb770a38";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
+      name = "_babel_generator___generator_7.14.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
-        sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
+        name = "_babel_generator___generator_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz";
+        sha1 = "0c2652d91f7bddab7cccc6ba8157e4f40dcedb91";
+      };
+    }
+    {
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz";
+        sha1 = "33ebd0ffc34248051ee2089350a929ab02f2a516";
+      };
+    }
+    {
+      name = "_babel_helper_function_name___helper_function_name_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_helper_function_name___helper_function_name_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz";
+        sha1 = "397688b590760b6ef7725b5f0860c82427ebaac2";
       };
     }
     {
@@ -58,27 +74,27 @@
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.16.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.16.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz";
-        sha1 = "41e0916b99f8d5f43da4f05d85f4930fa3d62b22";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz";
+        sha1 = "dfe368f26d426a07299d8d6513821768216e6d72";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz";
-        sha1 = "ec67e4404f41750463e455cc3203f6a32e93fcb0";
+        name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
+        sha1 = "c6a369a6f3621cb25da014078684da9196b61977";
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.14.2.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz";
-        sha1 = "01afb052dcad2044289b7b20beb3fa8bd0265bea";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz";
+        sha1 = "ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5";
       };
     }
     {
@@ -90,27 +106,27 @@
       };
     }
     {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.12.13.tgz";
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz";
-        sha1 = "174254d0f2424d8aefb4dd48057511247b0a9eeb";
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
+        sha1 = "806526ce125aed03373bc416a828321e3a6a33af";
       };
     }
     {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.14.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
-        sha1 = "00ec4fb6862546bd3d0aff9aac56074277173121";
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz";
+        sha1 = "b2ab16875deecfff3ddfcd539bc315f72998d836";
       };
     }
     {
-      name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz";
-        sha1 = "8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4";
+        name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
+        sha1 = "dd6c538afb61819d205a012c31792a39c7a5eaf6";
       };
     }
     {
@@ -122,35 +138,43 @@
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha1 = "d26cad8a47c65286b15df1547319a5d0bcf27288";
+      };
+    }
+    {
+      name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
-        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
+        name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha1 = "d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831";
       };
     }
     {
-      name = "_babel_helpers___helpers_7.12.13.tgz";
+      name = "_babel_helpers___helpers_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz";
-        sha1 = "3c75e993632e4dadc0274eae219c73eb7645ba47";
+        name = "_babel_helpers___helpers_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz";
+        sha1 = "ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.12.13.tgz";
+      name = "_babel_highlight___highlight_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz";
-        sha1 = "8ab538393e00370b26271b01fa08f7f27f2e795c";
+        name = "_babel_highlight___highlight_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha1 = "3197e375711ef6bf834e67d0daec88e4f46113cf";
       };
     }
     {
-      name = "_babel_parser___parser_7.12.16.tgz";
+      name = "_babel_parser___parser_7.14.4.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.12.16.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz";
-        sha1 = "cc31257419d2c3189d394081635703f549fc1ed4";
+        name = "_babel_parser___parser_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz";
+        sha1 = "a5c560d6db6cd8e6ed342368dea8039232cbab18";
       };
     }
     {
@@ -250,6 +274,14 @@
       };
     }
     {
+      name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz";
+        sha1 = "9dff111ca64154cef0f4dc52cf843d9f12ce4474";
+      };
+    }
+    {
       name = "_babel_template___template_7.12.13.tgz";
       path = fetchurl {
         name = "_babel_template___template_7.12.13.tgz";
@@ -258,19 +290,19 @@
       };
     }
     {
-      name = "_babel_traverse___traverse_7.12.13.tgz";
+      name = "_babel_traverse___traverse_7.14.2.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz";
-        sha1 = "689f0e4b4c08587ad26622832632735fb8c4e0c0";
+        name = "_babel_traverse___traverse_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz";
+        sha1 = "9201a8d912723a831c2679c7ebbf2fe1416d765b";
       };
     }
     {
-      name = "_babel_types___types_7.12.13.tgz";
+      name = "_babel_types___types_7.14.4.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.12.13.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz";
-        sha1 = "8be1aa8f2c876da11a9cf650c0ecf656913ad611";
+        name = "_babel_types___types_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz";
+        sha1 = "bfd6980108168593b38b3eb48a24aa026b919bc0";
       };
     }
     {
@@ -282,51 +314,43 @@
       };
     }
     {
-      name = "_cliqz_adblocker_content___adblocker_content_1.20.0.tgz";
+      name = "_cliqz_adblocker_content___adblocker_content_1.22.1.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker_content___adblocker_content_1.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.20.0.tgz";
-        sha1 = "fcfa2845a577ba8d9af282afbae2fc437b3f1c70";
+        name = "_cliqz_adblocker_content___adblocker_content_1.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.22.1.tgz";
+        sha1 = "71bc0d0d473ae96d5086badb2f4d624769fa56c4";
       };
     }
     {
-      name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.20.0.tgz";
+      name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.22.1.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.20.0.tgz";
-        sha1 = "997b694fbb1b1206e04b1fd570690234cc7ef630";
+        name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.22.1.tgz";
+        sha1 = "8ce8c18d0ce5f7afa7c1dfe1f4cba30ada86f4af";
       };
     }
     {
-      name = "_cliqz_adblocker_electron___adblocker_electron_1.20.0.tgz";
+      name = "_cliqz_adblocker_electron___adblocker_electron_1.22.1.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker_electron___adblocker_electron_1.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.20.0.tgz";
-        sha1 = "bacfb9feaf1d3dab339b992e3defa111a4b5ed3c";
+        name = "_cliqz_adblocker_electron___adblocker_electron_1.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.22.1.tgz";
+        sha1 = "13fe6de4be0c3beb2851634b27ea1223d10ca92b";
       };
     }
     {
-      name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.20.0.tgz";
+      name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.22.1.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.20.0.tgz";
-        sha1 = "95ede657b670f627b39f92d85a97093cecee6ffe";
+        name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.22.1.tgz";
+        sha1 = "234ee70a1736e3690b25a7a073818f5a851bf9a8";
       };
     }
     {
-      name = "_cliqz_adblocker___adblocker_1.20.0.tgz";
+      name = "_cliqz_adblocker___adblocker_1.22.1.tgz";
       path = fetchurl {
-        name = "_cliqz_adblocker___adblocker_1.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.20.0.tgz";
-        sha1 = "514746e9ee72fcd886f1e2e1aaf13b28fc63f232";
-      };
-    }
-    {
-      name = "_cnakazawa_watch___watch_1.0.4.tgz";
-      path = fetchurl {
-        name = "_cnakazawa_watch___watch_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz";
-        sha1 = "f864ae85004d0fcab6f50be9141c4da368d1656a";
+        name = "_cliqz_adblocker___adblocker_1.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.22.1.tgz";
+        sha1 = "dae3dd6c59f16244012d1e736150f618b2d578e6";
       };
     }
     {
@@ -346,19 +370,19 @@
       };
     }
     {
-      name = "_electron_universal___universal_1.0.4.tgz";
+      name = "_electron_universal___universal_1.0.5.tgz";
       path = fetchurl {
-        name = "_electron_universal___universal_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.4.tgz";
-        sha1 = "231ac246c39d45b80e159bd21c3f9027dcaa10f5";
+        name = "_electron_universal___universal_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz";
+        sha1 = "b812340e4ef21da2b3ee77b2b4d35c9b86defe37";
       };
     }
     {
-      name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.4.2.tgz";
       path = fetchurl {
-        name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
-        sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
+        name = "_eslint_eslintrc___eslintrc_0.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz";
+        sha1 = "f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179";
       };
     }
     {
@@ -378,91 +402,91 @@
       };
     }
     {
-      name = "_jest_console___console_26.6.2.tgz";
+      name = "_jest_console___console_27.0.2.tgz";
       path = fetchurl {
-        name = "_jest_console___console_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz";
-        sha1 = "4e04bc464014358b03ab4937805ee36a0aeb98f2";
+        name = "_jest_console___console_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/console/-/console-27.0.2.tgz";
+        sha1 = "b8eeff8f21ac51d224c851e1729d2630c18631e6";
       };
     }
     {
-      name = "_jest_core___core_26.6.3.tgz";
+      name = "_jest_core___core_27.0.4.tgz";
       path = fetchurl {
-        name = "_jest_core___core_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz";
-        sha1 = "7639fcb3833d748a4656ada54bde193051e45fad";
+        name = "_jest_core___core_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/core/-/core-27.0.4.tgz";
+        sha1 = "679bf9ac07900da2ddbb9667bb1afa8029038f53";
       };
     }
     {
-      name = "_jest_environment___environment_26.6.2.tgz";
+      name = "_jest_environment___environment_27.0.3.tgz";
       path = fetchurl {
-        name = "_jest_environment___environment_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz";
-        sha1 = "ba364cc72e221e79cc8f0a99555bf5d7577cf92c";
+        name = "_jest_environment___environment_27.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.3.tgz";
+        sha1 = "68769b1dfdd213e3456169d64fbe9bd63a5fda92";
       };
     }
     {
-      name = "_jest_fake_timers___fake_timers_26.6.2.tgz";
+      name = "_jest_fake_timers___fake_timers_27.0.3.tgz";
       path = fetchurl {
-        name = "_jest_fake_timers___fake_timers_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz";
-        sha1 = "459c329bcf70cee4af4d7e3f3e67848123535aad";
+        name = "_jest_fake_timers___fake_timers_27.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.3.tgz";
+        sha1 = "9899ba6304cc636734c74478df502e18136461dd";
       };
     }
     {
-      name = "_jest_globals___globals_26.6.2.tgz";
+      name = "_jest_globals___globals_27.0.3.tgz";
       path = fetchurl {
-        name = "_jest_globals___globals_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz";
-        sha1 = "5b613b78a1aa2655ae908eba638cc96a20df720a";
+        name = "_jest_globals___globals_27.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.3.tgz";
+        sha1 = "1cf8933b7791bba0b99305cbf39fd4d2e3fe4060";
       };
     }
     {
-      name = "_jest_reporters___reporters_26.6.2.tgz";
+      name = "_jest_reporters___reporters_27.0.4.tgz";
       path = fetchurl {
-        name = "_jest_reporters___reporters_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz";
-        sha1 = "1f518b99637a5f18307bd3ecf9275f6882a667f6";
+        name = "_jest_reporters___reporters_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.4.tgz";
+        sha1 = "95609b1be97afb80d55d8aa3d7c3179c15810e65";
       };
     }
     {
-      name = "_jest_source_map___source_map_26.6.2.tgz";
+      name = "_jest_source_map___source_map_27.0.1.tgz";
       path = fetchurl {
-        name = "_jest_source_map___source_map_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz";
-        sha1 = "29af5e1e2e324cafccc936f218309f54ab69d535";
+        name = "_jest_source_map___source_map_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.1.tgz";
+        sha1 = "2afbf73ddbaddcb920a8e62d0238a0a9e0a8d3e4";
       };
     }
     {
-      name = "_jest_test_result___test_result_26.6.2.tgz";
+      name = "_jest_test_result___test_result_27.0.2.tgz";
       path = fetchurl {
-        name = "_jest_test_result___test_result_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz";
-        sha1 = "55da58b62df134576cc95476efa5f7949e3f5f18";
+        name = "_jest_test_result___test_result_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.2.tgz";
+        sha1 = "0451049e32ceb609b636004ccc27c8fa22263f10";
       };
     }
     {
-      name = "_jest_test_sequencer___test_sequencer_26.6.3.tgz";
+      name = "_jest_test_sequencer___test_sequencer_27.0.4.tgz";
       path = fetchurl {
-        name = "_jest_test_sequencer___test_sequencer_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz";
-        sha1 = "98e8a45100863886d074205e8ffdc5a7eb582b17";
+        name = "_jest_test_sequencer___test_sequencer_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz";
+        sha1 = "976493b277594d81e589896f0ed21f198308928a";
       };
     }
     {
-      name = "_jest_transform___transform_26.6.2.tgz";
+      name = "_jest_transform___transform_27.0.2.tgz";
       path = fetchurl {
-        name = "_jest_transform___transform_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz";
-        sha1 = "5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b";
+        name = "_jest_transform___transform_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.2.tgz";
+        sha1 = "b073b7c589e3f4b842102468875def2bb722d6b5";
       };
     }
     {
-      name = "_jest_types___types_26.6.2.tgz";
+      name = "_jest_types___types_27.0.2.tgz";
       path = fetchurl {
-        name = "_jest_types___types_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz";
-        sha1 = "bef5a532030e1d88a2f5a6d933f84e97226ed48e";
+        name = "_jest_types___types_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/types/-/types-27.0.2.tgz";
+        sha1 = "e153d6c46bda0f2589f0702b071f9898c7bbd37e";
       };
     }
     {
@@ -474,6 +498,22 @@
       };
     }
     {
+      name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz";
+      path = fetchurl {
+        name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz";
+        sha1 = "e8a32c30a95d20c2b1bb635cc580981a06389858";
+      };
+    }
+    {
+      name = "_mdn_browser_compat_data___browser_compat_data_2.0.7.tgz";
+      path = fetchurl {
+        name = "_mdn_browser_compat_data___browser_compat_data_2.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz";
+        sha1 = "72ec37b9c1e00ce0b4e0309d753be18e2da12ee3";
+      };
+    }
+    {
       name = "_remusao_guess_url_type___guess_url_type_1.2.1.tgz";
       path = fetchurl {
         name = "_remusao_guess_url_type___guess_url_type_1.2.1.tgz";
@@ -530,19 +570,19 @@
       };
     }
     {
-      name = "_sinonjs_commons___commons_1.8.2.tgz";
+      name = "_sinonjs_commons___commons_1.8.3.tgz";
       path = fetchurl {
-        name = "_sinonjs_commons___commons_1.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz";
-        sha1 = "858f5c4b48d80778fde4b9d541f27edc0d56488b";
+        name = "_sinonjs_commons___commons_1.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz";
+        sha1 = "3802ddd21a50a949b6721ddd72da36e67e7f1b2d";
       };
     }
     {
-      name = "_sinonjs_fake_timers___fake_timers_6.0.1.tgz";
+      name = "_sinonjs_fake_timers___fake_timers_7.1.2.tgz";
       path = fetchurl {
-        name = "_sinonjs_fake_timers___fake_timers_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz";
-        sha1 = "293674fccb3262ac782c7aadfdeca86b10c75c40";
+        name = "_sinonjs_fake_timers___fake_timers_7.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz";
+        sha1 = "2524eae70c4910edccf99b2f4e6efc5894aff7b5";
       };
     }
     {
@@ -554,11 +594,19 @@
       };
     }
     {
-      name = "_types_babel__core___babel__core_7.1.12.tgz";
+      name = "_tootallnate_once___once_1.1.2.tgz";
+      path = fetchurl {
+        name = "_tootallnate_once___once_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz";
+        sha1 = "ccb91445360179a04e7fe6aff78c00ffc1eeaf82";
+      };
+    }
+    {
+      name = "_types_babel__core___babel__core_7.1.14.tgz";
       path = fetchurl {
-        name = "_types_babel__core___babel__core_7.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz";
-        sha1 = "4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d";
+        name = "_types_babel__core___babel__core_7.1.14.tgz";
+        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz";
+        sha1 = "faaeefc4185ec71c389f4501ee5ec84b170cc402";
       };
     }
     {
@@ -578,19 +626,19 @@
       };
     }
     {
-      name = "_types_babel__traverse___babel__traverse_7.11.0.tgz";
+      name = "_types_babel__traverse___babel__traverse_7.11.1.tgz";
       path = fetchurl {
-        name = "_types_babel__traverse___babel__traverse_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz";
-        sha1 = "b9a1efa635201ba9bc850323a8793ee2d36c04a0";
+        name = "_types_babel__traverse___babel__traverse_7.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz";
+        sha1 = "654f6c4f67568e24c23b367e947098c6206fa639";
       };
     }
     {
-      name = "_types_chrome___chrome_0.0.128.tgz";
+      name = "_types_chrome___chrome_0.0.144.tgz";
       path = fetchurl {
-        name = "_types_chrome___chrome_0.0.128.tgz";
-        url  = "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.128.tgz";
-        sha1 = "5dbd8b2539a367353fbe4386f119b510105f8b6a";
+        name = "_types_chrome___chrome_0.0.144.tgz";
+        url  = "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.144.tgz";
+        sha1 = "7dd9188e355aa17e3ad397f50b5cd3ad12caf788";
       };
     }
     {
@@ -602,19 +650,19 @@
       };
     }
     {
-      name = "_types_filesystem___filesystem_0.0.29.tgz";
+      name = "_types_filesystem___filesystem_0.0.30.tgz";
       path = fetchurl {
-        name = "_types_filesystem___filesystem_0.0.29.tgz";
-        url  = "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz";
-        sha1 = "ee3748eb5be140dcf980c3bd35f11aec5f7a3748";
+        name = "_types_filesystem___filesystem_0.0.30.tgz";
+        url  = "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.30.tgz";
+        sha1 = "a7373a2edf34d13e298baf7ee1101f738b2efb7e";
       };
     }
     {
-      name = "_types_filewriter___filewriter_0.0.28.tgz";
+      name = "_types_filewriter___filewriter_0.0.29.tgz";
       path = fetchurl {
-        name = "_types_filewriter___filewriter_0.0.28.tgz";
-        url  = "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz";
-        sha1 = "c054e8af4d9dd75db4e63abc76f885168714d4b3";
+        name = "_types_filewriter___filewriter_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz";
+        sha1 = "a48795ecadf957f6c0d10e0c34af86c098fa5bee";
       };
     }
     {
@@ -626,11 +674,11 @@
       };
     }
     {
-      name = "_types_fs_extra___fs_extra_9.0.7.tgz";
+      name = "_types_fs_extra___fs_extra_9.0.11.tgz";
       path = fetchurl {
-        name = "_types_fs_extra___fs_extra_9.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.7.tgz";
-        sha1 = "a9ef2ffdab043def080c5bec94c03402f793577f";
+        name = "_types_fs_extra___fs_extra_9.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz";
+        sha1 = "8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87";
       };
     }
     {
@@ -650,11 +698,11 @@
       };
     }
     {
-      name = "_types_har_format___har_format_1.2.5.tgz";
+      name = "_types_har_format___har_format_1.2.6.tgz";
       path = fetchurl {
-        name = "_types_har_format___har_format_1.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.5.tgz";
-        sha1 = "4f6648814d0fdcb6a510e3364a9db439a753c4b1";
+        name = "_types_har_format___har_format_1.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.6.tgz";
+        sha1 = "471c83acdf6a2ea429620daee4c6dc1784a0e85f";
       };
     }
     {
@@ -674,43 +722,35 @@
       };
     }
     {
-      name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
+      name = "_types_istanbul_reports___istanbul_reports_3.0.1.tgz";
       path = fetchurl {
-        name = "_types_istanbul_reports___istanbul_reports_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
-        sha1 = "508b13aa344fa4976234e75dddcc34925737d821";
+        name = "_types_istanbul_reports___istanbul_reports_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz";
+        sha1 = "9153fe98bba2bd565a63add9436d6f0d7f8468ff";
       };
     }
     {
-      name = "_types_minimatch___minimatch_3.0.3.tgz";
+      name = "_types_minimatch___minimatch_3.0.4.tgz";
       path = fetchurl {
-        name = "_types_minimatch___minimatch_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
+        name = "_types_minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "f0ec25dbf2f0e4b18647313ac031134ca5b24b21";
       };
     }
     {
-      name = "_types_node___node_14.14.27.tgz";
+      name = "_types_node___node_15.12.2.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.14.27.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.27.tgz";
-        sha1 = "c7127f8da0498993e13b1a42faf1303d3110d2f2";
+        name = "_types_node___node_15.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz";
+        sha1 = "1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d";
       };
     }
     {
-      name = "_types_node___node_12.20.0.tgz";
+      name = "_types_node___node_14.17.3.tgz";
       path = fetchurl {
-        name = "_types_node___node_12.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.20.0.tgz";
-        sha1 = "692dfdecd6c97f5380c42dd50f19261f9f604deb";
-      };
-    }
-    {
-      name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
-      path = fetchurl {
-        name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
-        sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e";
+        name = "_types_node___node_14.17.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.3.tgz";
+        sha1 = "6d327abaa4be34a74e421ed6409a0ae2f47f4c3d";
       };
     }
     {
@@ -722,11 +762,11 @@
       };
     }
     {
-      name = "_types_prettier___prettier_2.2.1.tgz";
+      name = "_types_prettier___prettier_2.2.3.tgz";
       path = fetchurl {
-        name = "_types_prettier___prettier_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz";
-        sha1 = "374e31645d58cb18a07b3ecd8e9dede4deb2cccd";
+        name = "_types_prettier___prettier_2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz";
+        sha1 = "ef65165aea2924c9359205bf748865b8881753c0";
       };
     }
     {
@@ -754,11 +794,11 @@
       };
     }
     {
-      name = "_types_yargs___yargs_15.0.13.tgz";
+      name = "_types_yargs___yargs_16.0.3.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_15.0.13.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz";
-        sha1 = "34f7fec8b389d7f3c1fd08026a5763e072d3c6dc";
+        name = "_types_yargs___yargs_16.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz";
+        sha1 = "4b6d35bb8e680510a7dc2308518a80ee1ef27e01";
       };
     }
     {
@@ -802,6 +842,22 @@
       };
     }
     {
+      name = "acorn___acorn_8.3.0.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_8.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz";
+        sha1 = "1193f9b96c4e8232f00b11a9edff81b2c8b98b88";
+      };
+    }
+    {
+      name = "agent_base___agent_base_6.0.2.tgz";
+      path = fetchurl {
+        name = "agent_base___agent_base_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz";
+        sha1 = "49fff58577cfee3f37176feab4c22e00f86d7f77";
+      };
+    }
+    {
       name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
       path = fetchurl {
         name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
@@ -818,11 +874,11 @@
       };
     }
     {
-      name = "ajv___ajv_7.1.0.tgz";
+      name = "ajv___ajv_8.6.0.tgz";
       path = fetchurl {
-        name = "ajv___ajv_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-7.1.0.tgz";
-        sha1 = "f982ea7933dc7f1012eae9eec5a86687d805421b";
+        name = "ajv___ajv_8.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz";
+        sha1 = "60cc45d9c46a477d80d92c48076d972c342e5720";
       };
     }
     {
@@ -842,11 +898,11 @@
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+      name = "ansi_escapes___ansi_escapes_4.3.2.tgz";
       path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
-        sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
+        name = "ansi_escapes___ansi_escapes_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz";
+        sha1 = "6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e";
       };
     }
     {
@@ -890,35 +946,35 @@
       };
     }
     {
-      name = "anymatch___anymatch_2.0.0.tgz";
+      name = "ansi_styles___ansi_styles_5.2.0.tgz";
       path = fetchurl {
-        name = "anymatch___anymatch_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
-        sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+        name = "ansi_styles___ansi_styles_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz";
+        sha1 = "07449690ad45777d1924ac2abb2fc8895dba836b";
       };
     }
     {
-      name = "anymatch___anymatch_3.1.1.tgz";
+      name = "anymatch___anymatch_3.1.2.tgz";
       path = fetchurl {
-        name = "anymatch___anymatch_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
-        sha1 = "c55ecf02185e2469259399310c173ce31233b142";
+        name = "anymatch___anymatch_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
+        sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
       };
     }
     {
-      name = "app_builder_bin___app_builder_bin_3.5.12.tgz";
+      name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
       path = fetchurl {
-        name = "app_builder_bin___app_builder_bin_3.5.12.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.12.tgz";
-        sha1 = "bbe174972cc1f481f73d6d92ad47a8b4c7eb4530";
+        name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz";
+        sha1 = "6dd7f4de34a4e408806f99b8c7d6ef1601305b7e";
       };
     }
     {
-      name = "app_builder_lib___app_builder_lib_22.10.4.tgz";
+      name = "app_builder_lib___app_builder_lib_22.11.5.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.10.4.tgz";
-        sha1 = "3fc70821b76beb9c8279d9de22960ef2174da153";
+        name = "app_builder_lib___app_builder_lib_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.5.tgz";
+        sha1 = "d49f49dc2d9fd225249e4ae7e30add2996e7062f";
       };
     }
     {
@@ -930,11 +986,11 @@
       };
     }
     {
-      name = "archiver___archiver_5.2.0.tgz";
+      name = "archiver___archiver_5.3.0.tgz";
       path = fetchurl {
-        name = "archiver___archiver_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.2.0.tgz";
-        sha1 = "25aa1b3d9febf7aec5b0f296e77e69960c26db94";
+        name = "archiver___archiver_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz";
+        sha1 = "dd3e097624481741df626267564f7dd8640a45ba";
       };
     }
     {
@@ -946,35 +1002,11 @@
       };
     }
     {
-      name = "arr_diff___arr_diff_4.0.0.tgz";
-      path = fetchurl {
-        name = "arr_diff___arr_diff_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
-        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
-      };
-    }
-    {
-      name = "arr_flatten___arr_flatten_1.1.0.tgz";
-      path = fetchurl {
-        name = "arr_flatten___arr_flatten_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
-        sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
-      };
-    }
-    {
-      name = "arr_union___arr_union_3.1.0.tgz";
+      name = "argparse___argparse_2.0.1.tgz";
       path = fetchurl {
-        name = "arr_union___arr_union_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
-        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
-      };
-    }
-    {
-      name = "array_unique___array_unique_0.3.2.tgz";
-      path = fetchurl {
-        name = "array_unique___array_unique_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
-        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+        name = "argparse___argparse_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
+        sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
       };
     }
     {
@@ -986,14 +1018,6 @@
       };
     }
     {
-      name = "asn1___asn1_0.2.4.tgz";
-      path = fetchurl {
-        name = "asn1___asn1_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
-        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
-      };
-    }
-    {
       name = "assert_plus___assert_plus_1.0.0.tgz";
       path = fetchurl {
         name = "assert_plus___assert_plus_1.0.0.tgz";
@@ -1002,11 +1026,11 @@
       };
     }
     {
-      name = "assign_symbols___assign_symbols_1.0.0.tgz";
+      name = "ast_metadata_inferer___ast_metadata_inferer_0.4.0.tgz";
       path = fetchurl {
-        name = "assign_symbols___assign_symbols_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
-        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+        name = "ast_metadata_inferer___ast_metadata_inferer_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz";
+        sha1 = "6be85ceeffcf267bd79db8e1ae731da44880b45f";
       };
     }
     {
@@ -1058,35 +1082,11 @@
       };
     }
     {
-      name = "atob___atob_2.1.2.tgz";
-      path = fetchurl {
-        name = "atob___atob_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
-        sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
-      };
-    }
-    {
-      name = "aws_sign2___aws_sign2_0.7.0.tgz";
-      path = fetchurl {
-        name = "aws_sign2___aws_sign2_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
-      };
-    }
-    {
-      name = "aws4___aws4_1.11.0.tgz";
-      path = fetchurl {
-        name = "aws4___aws4_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz";
-        sha1 = "d61f46d83b2519250e2784daf5b09479a8b41c59";
-      };
-    }
-    {
-      name = "babel_jest___babel_jest_26.6.3.tgz";
+      name = "babel_jest___babel_jest_27.0.2.tgz";
       path = fetchurl {
-        name = "babel_jest___babel_jest_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz";
-        sha1 = "d87d25cb0037577a0c89f82e5755c5d293c01056";
+        name = "babel_jest___babel_jest_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.2.tgz";
+        sha1 = "7dc18adb01322acce62c2af76ea2c7cd186ade37";
       };
     }
     {
@@ -1098,11 +1098,11 @@
       };
     }
     {
-      name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_26.6.2.tgz";
+      name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_27.0.1.tgz";
       path = fetchurl {
-        name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz";
-        sha1 = "8185bd030348d254c6d7dd974355e6a28b21e62d";
+        name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz";
+        sha1 = "a6d10e484c93abff0f4e95f437dad26e5736ea11";
       };
     }
     {
@@ -1114,19 +1114,19 @@
       };
     }
     {
-      name = "babel_preset_jest___babel_preset_jest_26.6.2.tgz";
+      name = "babel_preset_jest___babel_preset_jest_27.0.1.tgz";
       path = fetchurl {
-        name = "babel_preset_jest___babel_preset_jest_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz";
-        sha1 = "747872b1171df032252426586881d62d31798fee";
+        name = "babel_preset_jest___babel_preset_jest_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz";
+        sha1 = "7a50c75d16647c23a2cf5158d5bb9eb206b10e20";
       };
     }
     {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
+      name = "balanced_match___balanced_match_1.0.2.tgz";
       path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        name = "balanced_match___balanced_match_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
       };
     }
     {
@@ -1138,22 +1138,6 @@
       };
     }
     {
-      name = "base___base_0.11.2.tgz";
-      path = fetchurl {
-        name = "base___base_0.11.2.tgz";
-        url  = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
-        sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
-      };
-    }
-    {
-      name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-      path = fetchurl {
-        name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
-      };
-    }
-    {
       name = "bl___bl_4.1.0.tgz";
       path = fetchurl {
         name = "bl___bl_4.1.0.tgz";
@@ -1178,19 +1162,19 @@
       };
     }
     {
-      name = "boolean___boolean_3.0.2.tgz";
+      name = "boolean___boolean_3.1.0.tgz";
       path = fetchurl {
-        name = "boolean___boolean_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/boolean/-/boolean-3.0.2.tgz";
-        sha1 = "df1baa18b6a2b0e70840475e1d93ec8fe75b2570";
+        name = "boolean___boolean_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/boolean/-/boolean-3.1.0.tgz";
+        sha1 = "a245080649ebb80e7c0ea218a480e4e913136336";
       };
     }
     {
-      name = "boxen___boxen_5.0.0.tgz";
+      name = "boxen___boxen_5.0.1.tgz";
       path = fetchurl {
-        name = "boxen___boxen_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz";
-        sha1 = "64fe9b16066af815f51057adcc800c3730120854";
+        name = "boxen___boxen_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz";
+        sha1 = "657528bdd3f59a772b8279b831f27ec2c744664b";
       };
     }
     {
@@ -1202,14 +1186,6 @@
       };
     }
     {
-      name = "braces___braces_2.3.2.tgz";
-      path = fetchurl {
-        name = "braces___braces_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
-        sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
-      };
-    }
-    {
       name = "braces___braces_3.0.2.tgz";
       path = fetchurl {
         name = "braces___braces_3.0.2.tgz";
@@ -1226,6 +1202,14 @@
       };
     }
     {
+      name = "browserslist___browserslist_4.16.6.tgz";
+      path = fetchurl {
+        name = "browserslist___browserslist_4.16.6.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz";
+        sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2";
+      };
+    }
+    {
       name = "bser___bser_2.1.1.tgz";
       path = fetchurl {
         name = "bser___bser_2.1.1.tgz";
@@ -1266,27 +1250,19 @@
       };
     }
     {
-      name = "builder_util_runtime___builder_util_runtime_8.7.3.tgz";
-      path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.3.tgz";
-        sha1 = "0aaafa52d25295c939496f62231ca9ff06c30e40";
-      };
-    }
-    {
-      name = "builder_util___builder_util_22.10.4.tgz";
+      name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
       path = fetchurl {
-        name = "builder_util___builder_util_22.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.10.4.tgz";
-        sha1 = "54e8be83dd0dec28073d866ff087cee8e7ce6cf6";
+        name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz";
+        sha1 = "4b43c96db2bd494ced7694bcd7674934655e8324";
       };
     }
     {
-      name = "cache_base___cache_base_1.0.1.tgz";
+      name = "builder_util___builder_util_22.11.5.tgz";
       path = fetchurl {
-        name = "cache_base___cache_base_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
-        sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+        name = "builder_util___builder_util_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.5.tgz";
+        sha1 = "08836d00e6bef39bdffd8a66fb07d2d5021b9c3c";
       };
     }
     {
@@ -1322,19 +1298,11 @@
       };
     }
     {
-      name = "capture_exit___capture_exit_2.0.0.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001236.tgz";
       path = fetchurl {
-        name = "capture_exit___capture_exit_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz";
-        sha1 = "fb953bfaebeb781f62898239dabb426d08a509a4";
-      };
-    }
-    {
-      name = "caseless___caseless_0.12.0.tgz";
-      path = fetchurl {
-        name = "caseless___caseless_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+        name = "caniuse_lite___caniuse_lite_1.0.30001236.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001236.tgz";
+        sha1 = "0a80de4cdf62e1770bb46a30d884fc8d633e3958";
       };
     }
     {
@@ -1346,11 +1314,11 @@
       };
     }
     {
-      name = "chalk___chalk_4.1.0.tgz";
+      name = "chalk___chalk_4.1.1.tgz";
       path = fetchurl {
-        name = "chalk___chalk_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
-        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+        name = "chalk___chalk_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
+        sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
       };
     }
     {
@@ -1378,19 +1346,19 @@
       };
     }
     {
-      name = "cjs_module_lexer___cjs_module_lexer_0.6.0.tgz";
+      name = "ci_info___ci_info_3.2.0.tgz";
       path = fetchurl {
-        name = "cjs_module_lexer___cjs_module_lexer_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz";
-        sha1 = "4186fcca0eae175970aee870b9fe2d6cf8d5655f";
+        name = "ci_info___ci_info_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz";
+        sha1 = "2876cb948a498797b5236f0095bc057d0dca38b6";
       };
     }
     {
-      name = "class_utils___class_utils_0.3.6.tgz";
+      name = "cjs_module_lexer___cjs_module_lexer_1.2.1.tgz";
       path = fetchurl {
-        name = "class_utils___class_utils_0.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
-        sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+        name = "cjs_module_lexer___cjs_module_lexer_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz";
+        sha1 = "2fd46d9906a126965aa541345c499aaa18e8cd73";
       };
     }
     {
@@ -1410,14 +1378,6 @@
       };
     }
     {
-      name = "cliui___cliui_6.0.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz";
-        sha1 = "511d702c0c4e41ca156d7d0e96021f23e13225b1";
-      };
-    }
-    {
       name = "cliui___cliui_7.0.4.tgz";
       path = fetchurl {
         name = "cliui___cliui_7.0.4.tgz";
@@ -1450,14 +1410,6 @@
       };
     }
     {
-      name = "collection_visit___collection_visit_1.0.0.tgz";
-      path = fetchurl {
-        name = "collection_visit___collection_visit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
-        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
-      };
-    }
-    {
       name = "color_convert___color_convert_1.9.3.tgz";
       path = fetchurl {
         name = "color_convert___color_convert_1.9.3.tgz";
@@ -1490,6 +1442,14 @@
       };
     }
     {
+      name = "colorette___colorette_1.2.2.tgz";
+      path = fetchurl {
+        name = "colorette___colorette_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
+        sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
+      };
+    }
+    {
       name = "colors___colors_1.0.3.tgz";
       path = fetchurl {
         name = "colors___colors_1.0.3.tgz";
@@ -1522,19 +1482,11 @@
       };
     }
     {
-      name = "component_emitter___component_emitter_1.3.0.tgz";
+      name = "compress_commons___compress_commons_4.1.1.tgz";
       path = fetchurl {
-        name = "component_emitter___component_emitter_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
-        sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
-      };
-    }
-    {
-      name = "compress_commons___compress_commons_4.0.2.tgz";
-      path = fetchurl {
-        name = "compress_commons___compress_commons_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.0.2.tgz";
-        sha1 = "d6896be386e52f37610cef9e6fa5defc58c31bd7";
+        name = "compress_commons___compress_commons_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz";
+        sha1 = "df2a09a7ed17447642bad10a85cc9a19e5c42a7d";
       };
     }
     {
@@ -1554,11 +1506,11 @@
       };
     }
     {
-      name = "config_chain___config_chain_1.1.12.tgz";
+      name = "config_chain___config_chain_1.1.13.tgz";
       path = fetchurl {
-        name = "config_chain___config_chain_1.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
-        sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+        name = "config_chain___config_chain_1.1.13.tgz";
+        url  = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz";
+        sha1 = "fad0795aa6a6cdaff9ed1b68e9dff94372c232f4";
       };
     }
     {
@@ -1578,19 +1530,11 @@
       };
     }
     {
-      name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
-      path = fetchurl {
-        name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
-        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
-      };
-    }
-    {
-      name = "core_js___core_js_3.8.3.tgz";
+      name = "core_js___core_js_3.14.0.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz";
-        sha1 = "c21906e1f14f3689f93abcc6e26883550dd92dd0";
+        name = "core_js___core_js_3.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz";
+        sha1 = "62322b98c71cc2018b027971a69419e2425c2a6c";
       };
     }
     {
@@ -1626,14 +1570,6 @@
       };
     }
     {
-      name = "cross_spawn___cross_spawn_6.0.5.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
-      };
-    }
-    {
       name = "cross_spawn___cross_spawn_7.0.3.tgz";
       path = fetchurl {
         name = "cross_spawn___cross_spawn_7.0.3.tgz";
@@ -1674,22 +1610,6 @@
       };
     }
     {
-      name = "darkreader___darkreader_4.9.27.tgz";
-      path = fetchurl {
-        name = "darkreader___darkreader_4.9.27.tgz";
-        url  = "https://registry.yarnpkg.com/darkreader/-/darkreader-4.9.27.tgz";
-        sha1 = "69b641d6a3c22b07fb0424406dfd9a3661b37197";
-      };
-    }
-    {
-      name = "dashdash___dashdash_1.14.1.tgz";
-      path = fetchurl {
-        name = "dashdash___dashdash_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    }
-    {
       name = "data_urls___data_urls_2.0.0.tgz";
       path = fetchurl {
         name = "data_urls___data_urls_2.0.0.tgz";
@@ -1698,14 +1618,6 @@
       };
     }
     {
-      name = "debug___debug_2.6.9.tgz";
-      path = fetchurl {
-        name = "debug___debug_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
-        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
-      };
-    }
-    {
       name = "debug___debug_4.3.1.tgz";
       path = fetchurl {
         name = "debug___debug_4.3.1.tgz";
@@ -1714,19 +1626,19 @@
       };
     }
     {
-      name = "debug___debug_4.3.2.tgz";
+      name = "debug___debug_2.6.9.tgz";
       path = fetchurl {
-        name = "debug___debug_4.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
-        sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
+        name = "debug___debug_2.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
       };
     }
     {
-      name = "decamelize___decamelize_1.2.0.tgz";
+      name = "debug___debug_4.3.2.tgz";
       path = fetchurl {
-        name = "decamelize___decamelize_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+        name = "debug___debug_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
+        sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
       };
     }
     {
@@ -1738,14 +1650,6 @@
       };
     }
     {
-      name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
-      path = fetchurl {
-        name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
-        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
-      };
-    }
-    {
       name = "decompress_response___decompress_response_3.3.0.tgz";
       path = fetchurl {
         name = "decompress_response___decompress_response_3.3.0.tgz";
@@ -1754,6 +1658,14 @@
       };
     }
     {
+      name = "dedent___dedent_0.7.0.tgz";
+      path = fetchurl {
+        name = "dedent___dedent_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz";
+        sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c";
+      };
+    }
+    {
       name = "deep_extend___deep_extend_0.6.0.tgz";
       path = fetchurl {
         name = "deep_extend___deep_extend_0.6.0.tgz";
@@ -1794,30 +1706,6 @@
       };
     }
     {
-      name = "define_property___define_property_0.2.5.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_0.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
-        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
-      };
-    }
-    {
-      name = "define_property___define_property_1.0.0.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
-        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
-      };
-    }
-    {
-      name = "define_property___define_property_2.0.2.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
-        sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
-      };
-    }
-    {
       name = "delayed_stream___delayed_stream_1.0.0.tgz";
       path = fetchurl {
         name = "delayed_stream___delayed_stream_1.0.0.tgz";
@@ -1834,19 +1722,19 @@
       };
     }
     {
-      name = "detect_node___detect_node_2.0.4.tgz";
+      name = "detect_node___detect_node_2.1.0.tgz";
       path = fetchurl {
-        name = "detect_node___detect_node_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
-        sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
+        name = "detect_node___detect_node_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz";
+        sha1 = "c9c70775a49c3d03bc2c06d9a73be550f978f8b1";
       };
     }
     {
-      name = "diff_sequences___diff_sequences_26.6.2.tgz";
+      name = "diff_sequences___diff_sequences_27.0.1.tgz";
       path = fetchurl {
-        name = "diff_sequences___diff_sequences_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz";
-        sha1 = "48ba99157de1923412eed41db6b6d4aa9ca7c0b1";
+        name = "diff_sequences___diff_sequences_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.1.tgz";
+        sha1 = "9c9801d52ed5f576ff0a20e3022a13ee6e297e7c";
       };
     }
     {
@@ -1858,19 +1746,19 @@
       };
     }
     {
-      name = "dmg_builder___dmg_builder_22.10.4.tgz";
+      name = "dmg_builder___dmg_builder_22.11.5.tgz";
       path = fetchurl {
-        name = "dmg_builder___dmg_builder_22.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.10.4.tgz";
-        sha1 = "8dab30754346791eb728091359558fd4a8dbb45f";
+        name = "dmg_builder___dmg_builder_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.5.tgz";
+        sha1 = "0df9843def73a217097956982fa21bb4d6a5836e";
       };
     }
     {
-      name = "dmg_license___dmg_license_1.0.8.tgz";
+      name = "dmg_license___dmg_license_1.0.9.tgz";
       path = fetchurl {
-        name = "dmg_license___dmg_license_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.8.tgz";
-        sha1 = "d52e234815f1a07a59706e5f2a2fea71991cf784";
+        name = "dmg_license___dmg_license_1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz";
+        sha1 = "a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f";
       };
     }
     {
@@ -1906,11 +1794,11 @@
       };
     }
     {
-      name = "dotenv___dotenv_8.2.0.tgz";
+      name = "dotenv___dotenv_9.0.2.tgz";
       path = fetchurl {
-        name = "dotenv___dotenv_8.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz";
-        sha1 = "97e619259ada750eea3e4ea3e26bceea5424b16a";
+        name = "dotenv___dotenv_9.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz";
+        sha1 = "dacc20160935a37dea6364aa1bef819fb9b6ab05";
       };
     }
     {
@@ -1922,14 +1810,6 @@
       };
     }
     {
-      name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-      path = fetchurl {
-        name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
-      };
-    }
-    {
       name = "ejs___ejs_3.1.6.tgz";
       path = fetchurl {
         name = "ejs___ejs_3.1.6.tgz";
@@ -1938,35 +1818,43 @@
       };
     }
     {
-      name = "electron_builder___electron_builder_22.10.4.tgz";
+      name = "electron_builder___electron_builder_22.11.5.tgz";
       path = fetchurl {
-        name = "electron_builder___electron_builder_22.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.10.4.tgz";
-        sha1 = "e1f400cf41ebb632fbf79aa86c5e0ab1ea1ed7e5";
+        name = "electron_builder___electron_builder_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.5.tgz";
+        sha1 = "914d8183e1bab7cda43ef1d67fc3d17314c7e242";
       };
     }
     {
-      name = "electron_publish___electron_publish_22.10.4.tgz";
+      name = "electron_publish___electron_publish_22.11.5.tgz";
       path = fetchurl {
-        name = "electron_publish___electron_publish_22.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.10.4.tgz";
-        sha1 = "944b00aa6a7746c31ce900ffd8106d243326dca8";
+        name = "electron_publish___electron_publish_22.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.5.tgz";
+        sha1 = "2fcd3280c4267e70e4aa15003c9b7dc34923320e";
       };
     }
     {
-      name = "electron___electron_11.2.3.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.750.tgz";
       path = fetchurl {
-        name = "electron___electron_11.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/electron/-/electron-11.2.3.tgz";
-        sha1 = "8ad1d9858436cfca0e2e5ea7fea326794ae58ebb";
+        name = "electron_to_chromium___electron_to_chromium_1.3.750.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.750.tgz";
+        sha1 = "7e5ef6f478316b0bd656af5942fe502610e97eaf";
       };
     }
     {
-      name = "emittery___emittery_0.7.2.tgz";
+      name = "electron___electron_13.1.1.tgz";
       path = fetchurl {
-        name = "emittery___emittery_0.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz";
-        sha1 = "25595908e13af0f5674ab419396e2fb394cdfa82";
+        name = "electron___electron_13.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/electron/-/electron-13.1.1.tgz";
+        sha1 = "de1ea908bcac2197d7a5a373fb68c0c66043e10e";
+      };
+    }
+    {
+      name = "emittery___emittery_0.8.1.tgz";
+      path = fetchurl {
+        name = "emittery___emittery_0.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz";
+        sha1 = "bb23cc86d03b30aa75a7f734819dee2e1ba70860";
       };
     }
     {
@@ -2010,19 +1898,11 @@
       };
     }
     {
-      name = "env_paths___env_paths_2.2.0.tgz";
+      name = "env_paths___env_paths_2.2.1.tgz";
       path = fetchurl {
-        name = "env_paths___env_paths_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz";
-        sha1 = "cdca557dc009152917d6166e2febe1f039685e43";
-      };
-    }
-    {
-      name = "error_ex___error_ex_1.3.2.tgz";
-      path = fetchurl {
-        name = "error_ex___error_ex_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
-        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+        name = "env_paths___env_paths_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz";
+        sha1 = "420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2";
       };
     }
     {
@@ -2074,11 +1954,27 @@
       };
     }
     {
-      name = "escodegen___escodegen_1.14.3.tgz";
+      name = "escodegen___escodegen_2.0.0.tgz";
+      path = fetchurl {
+        name = "escodegen___escodegen_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz";
+        sha1 = "5e32b12833e8aa8fa35e1bf0befa89380484c7dd";
+      };
+    }
+    {
+      name = "eslint_plugin_compat___eslint_plugin_compat_3.9.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_compat___eslint_plugin_compat_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz";
+        sha1 = "a7a224e09b102b58e7f7dff52c936428ff3e0186";
+      };
+    }
+    {
+      name = "eslint_plugin_sort_keys_fix___eslint_plugin_sort_keys_fix_1.1.1.tgz";
       path = fetchurl {
-        name = "escodegen___escodegen_1.14.3.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
-        sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
+        name = "eslint_plugin_sort_keys_fix___eslint_plugin_sort_keys_fix_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-sort-keys-fix/-/eslint-plugin-sort-keys-fix-1.1.1.tgz";
+        sha1 = "2ed201b53fd4a89552c6e2abd38933f330a4b62e";
       };
     }
     {
@@ -2106,19 +2002,19 @@
       };
     }
     {
-      name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
       path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
-        sha1 = "21fdc8fbcd9c795cc0321f0563702095751511a8";
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303";
       };
     }
     {
-      name = "eslint___eslint_7.20.0.tgz";
+      name = "eslint___eslint_7.28.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz";
-        sha1 = "db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7";
+        name = "eslint___eslint_7.28.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz";
+        sha1 = "435aa17a0b82c13bb2be9d51408b617e49c1e820";
       };
     }
     {
@@ -2178,27 +2074,11 @@
       };
     }
     {
-      name = "exec_sh___exec_sh_0.3.4.tgz";
-      path = fetchurl {
-        name = "exec_sh___exec_sh_0.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz";
-        sha1 = "3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5";
-      };
-    }
-    {
-      name = "execa___execa_1.0.0.tgz";
+      name = "execa___execa_5.1.1.tgz";
       path = fetchurl {
-        name = "execa___execa_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
-        sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
-      };
-    }
-    {
-      name = "execa___execa_4.1.0.tgz";
-      path = fetchurl {
-        name = "execa___execa_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz";
-        sha1 = "4e5491ad1572f2f17a77d388c6c857135b22847a";
+        name = "execa___execa_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz";
+        sha1 = "f80ad9cbf4298f7bd1d4c9555c21e93741c411dd";
       };
     }
     {
@@ -2218,35 +2098,11 @@
       };
     }
     {
-      name = "expand_brackets___expand_brackets_2.1.4.tgz";
-      path = fetchurl {
-        name = "expand_brackets___expand_brackets_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
-        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
-      };
-    }
-    {
-      name = "expect___expect_26.6.2.tgz";
-      path = fetchurl {
-        name = "expect___expect_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz";
-        sha1 = "c6b996bf26bf3fe18b67b2d0f51fc981ba934417";
-      };
-    }
-    {
-      name = "extend_shallow___extend_shallow_2.0.1.tgz";
-      path = fetchurl {
-        name = "extend_shallow___extend_shallow_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
-        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
-      };
-    }
-    {
-      name = "extend_shallow___extend_shallow_3.0.2.tgz";
+      name = "expect___expect_27.0.2.tgz";
       path = fetchurl {
-        name = "extend_shallow___extend_shallow_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
-        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+        name = "expect___expect_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/expect/-/expect-27.0.2.tgz";
+        sha1 = "e66ca3a4c9592f1c019fa1d46459a9d2084f3422";
       };
     }
     {
@@ -2258,14 +2114,6 @@
       };
     }
     {
-      name = "extglob___extglob_2.0.4.tgz";
-      path = fetchurl {
-        name = "extglob___extglob_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
-        sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
-      };
-    }
-    {
       name = "extract_zip___extract_zip_1.7.0.tgz";
       path = fetchurl {
         name = "extract_zip___extract_zip_1.7.0.tgz";
@@ -2274,14 +2122,6 @@
       };
     }
     {
-      name = "extsprintf___extsprintf_1.3.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
-      };
-    }
-    {
       name = "extsprintf___extsprintf_1.4.0.tgz";
       path = fetchurl {
         name = "extsprintf___extsprintf_1.4.0.tgz";
@@ -2314,6 +2154,14 @@
       };
     }
     {
+      name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz";
+      path = fetchurl {
+        name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz";
+        sha1 = "cb637ec3f3999f51406dd8ff0e6fc4d83e520d01";
+      };
+    }
+    {
       name = "fb_watchman___fb_watchman_2.0.1.tgz";
       path = fetchurl {
         name = "fb_watchman___fb_watchman_2.0.1.tgz";
@@ -2330,11 +2178,11 @@
       };
     }
     {
-      name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
+      name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
       path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
-        sha1 = "7921a89c391c6d93efec2169ac6bf300c527ea0a";
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
       };
     }
     {
@@ -2346,14 +2194,6 @@
       };
     }
     {
-      name = "fill_range___fill_range_4.0.0.tgz";
-      path = fetchurl {
-        name = "fill_range___fill_range_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
-        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
-      };
-    }
-    {
       name = "fill_range___fill_range_7.0.1.tgz";
       path = fetchurl {
         name = "fill_range___fill_range_7.0.1.tgz";
@@ -2386,35 +2226,11 @@
       };
     }
     {
-      name = "for_in___for_in_1.0.2.tgz";
-      path = fetchurl {
-        name = "for_in___for_in_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
-        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
-      };
-    }
-    {
-      name = "forever_agent___forever_agent_0.6.1.tgz";
-      path = fetchurl {
-        name = "forever_agent___forever_agent_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
-      };
-    }
-    {
-      name = "form_data___form_data_2.3.3.tgz";
-      path = fetchurl {
-        name = "form_data___form_data_2.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
-        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
-      };
-    }
-    {
-      name = "fragment_cache___fragment_cache_0.2.1.tgz";
+      name = "form_data___form_data_3.0.1.tgz";
       path = fetchurl {
-        name = "fragment_cache___fragment_cache_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
-        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+        name = "form_data___form_data_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz";
+        sha1 = "ebd53791b78356a99af9a300d4282c4d5eb9755f";
       };
     }
     {
@@ -2426,6 +2242,14 @@
       };
     }
     {
+      name = "fs_extra___fs_extra_10.0.0.tgz";
+      path = fetchurl {
+        name = "fs_extra___fs_extra_10.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz";
+        sha1 = "9ff61b655dde53fb34a82df84bb214ce802e17c1";
+      };
+    }
+    {
       name = "fs_extra___fs_extra_8.1.0.tgz";
       path = fetchurl {
         name = "fs_extra___fs_extra_8.1.0.tgz";
@@ -2514,43 +2338,35 @@
       };
     }
     {
-      name = "get_value___get_value_2.0.6.tgz";
+      name = "get_stream___get_stream_6.0.1.tgz";
       path = fetchurl {
-        name = "get_value___get_value_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
-        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+        name = "get_stream___get_stream_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz";
+        sha1 = "a262d8eef67aced57c2852ad6167526a43cbf7b7";
       };
     }
     {
-      name = "getpass___getpass_0.1.7.tgz";
+      name = "glob_parent___glob_parent_5.1.2.tgz";
       path = fetchurl {
-        name = "getpass___getpass_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+        name = "glob_parent___glob_parent_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
       };
     }
     {
-      name = "glob_parent___glob_parent_5.1.1.tgz";
+      name = "glob___glob_7.1.7.tgz";
       path = fetchurl {
-        name = "glob_parent___glob_parent_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+        name = "glob___glob_7.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
+        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
       };
     }
     {
-      name = "glob___glob_7.1.6.tgz";
+      name = "global_agent___global_agent_2.2.0.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
-        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
-      };
-    }
-    {
-      name = "global_agent___global_agent_2.1.12.tgz";
-      path = fetchurl {
-        name = "global_agent___global_agent_2.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz";
-        sha1 = "e4ae3812b731a9e81cbf825f9377ef450a8e4195";
+        name = "global_agent___global_agent_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz";
+        sha1 = "566331b0646e6bf79429a16877685c4a1fbf76dc";
       };
     }
     {
@@ -2578,19 +2394,19 @@
       };
     }
     {
-      name = "globals___globals_12.4.0.tgz";
+      name = "globals___globals_13.9.0.tgz";
       path = fetchurl {
-        name = "globals___globals_12.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
-        sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
+        name = "globals___globals_13.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz";
+        sha1 = "4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb";
       };
     }
     {
-      name = "globalthis___globalthis_1.0.1.tgz";
+      name = "globalthis___globalthis_1.0.2.tgz";
       path = fetchurl {
-        name = "globalthis___globalthis_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz";
-        sha1 = "40116f5d9c071f9e8fb0037654df1ab3a83b7ef9";
+        name = "globalthis___globalthis_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz";
+        sha1 = "2a235d34f4d8036219f7e34929b5de9e18166b8b";
       };
     }
     {
@@ -2618,30 +2434,6 @@
       };
     }
     {
-      name = "growly___growly_1.3.0.tgz";
-      path = fetchurl {
-        name = "growly___growly_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
-        sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
-      };
-    }
-    {
-      name = "har_schema___har_schema_2.0.0.tgz";
-      path = fetchurl {
-        name = "har_schema___har_schema_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
-      };
-    }
-    {
-      name = "har_validator___har_validator_5.1.5.tgz";
-      path = fetchurl {
-        name = "har_validator___har_validator_5.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
-        sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
-      };
-    }
-    {
       name = "has_flag___has_flag_3.0.0.tgz";
       path = fetchurl {
         name = "has_flag___has_flag_3.0.0.tgz";
@@ -2658,38 +2450,6 @@
       };
     }
     {
-      name = "has_value___has_value_0.3.1.tgz";
-      path = fetchurl {
-        name = "has_value___has_value_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
-        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
-      };
-    }
-    {
-      name = "has_value___has_value_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_value___has_value_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
-        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
-      };
-    }
-    {
-      name = "has_values___has_values_0.1.4.tgz";
-      path = fetchurl {
-        name = "has_values___has_values_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
-        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
-      };
-    }
-    {
-      name = "has_values___has_values_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_values___has_values_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
-        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
-      };
-    }
-    {
       name = "has_yarn___has_yarn_2.1.0.tgz";
       path = fetchurl {
         name = "has_yarn___has_yarn_2.1.0.tgz";
@@ -2706,27 +2466,11 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+      name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
-      };
-    }
-    {
-      name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
-      path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz";
-        sha1 = "6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d";
-      };
-    }
-    {
-      name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-      path = fetchurl {
-        name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7";
+        name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz";
+        sha1 = "5e425507eede4fea846b7262f0838456c4209961";
       };
     }
     {
@@ -2754,27 +2498,35 @@
       };
     }
     {
-      name = "http_signature___http_signature_1.2.0.tgz";
+      name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
+      path = fetchurl {
+        name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz";
+        sha1 = "8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a";
+      };
+    }
+    {
+      name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
       path = fetchurl {
-        name = "http_signature___http_signature_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+        name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
+        sha1 = "e2a90542abb68a762e0a0850f6c9edadfd8506b2";
       };
     }
     {
-      name = "human_signals___human_signals_1.1.1.tgz";
+      name = "human_signals___human_signals_2.1.0.tgz";
       path = fetchurl {
-        name = "human_signals___human_signals_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz";
-        sha1 = "c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3";
+        name = "human_signals___human_signals_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz";
+        sha1 = "dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0";
       };
     }
     {
-      name = "iconv_corefoundation___iconv_corefoundation_1.1.5.tgz";
+      name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz";
       path = fetchurl {
-        name = "iconv_corefoundation___iconv_corefoundation_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.5.tgz";
-        sha1 = "90596d444a579aeb109f5ca113f6bb665a41be2b";
+        name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz";
+        sha1 = "27c135470237f6f8d13462fa1f5eaf250523c29a";
       };
     }
     {
@@ -2786,11 +2538,11 @@
       };
     }
     {
-      name = "iconv_lite___iconv_lite_0.6.2.tgz";
+      name = "iconv_lite___iconv_lite_0.6.3.tgz";
       path = fetchurl {
-        name = "iconv_lite___iconv_lite_0.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz";
-        sha1 = "ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01";
+        name = "iconv_lite___iconv_lite_0.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz";
+        sha1 = "a52f80bf38da1952eb5c681790719871a1a72501";
       };
     }
     {
@@ -2874,46 +2626,6 @@
       };
     }
     {
-      name = "ip_regex___ip_regex_2.1.0.tgz";
-      path = fetchurl {
-        name = "ip_regex___ip_regex_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
-        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
-      };
-    }
-    {
-      name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
-      path = fetchurl {
-        name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
-        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
-      };
-    }
-    {
-      name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
-        sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
-      };
-    }
-    {
-      name = "is_arrayish___is_arrayish_0.2.1.tgz";
-      path = fetchurl {
-        name = "is_arrayish___is_arrayish_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
-        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
-      };
-    }
-    {
-      name = "is_buffer___is_buffer_1.1.6.tgz";
-      path = fetchurl {
-        name = "is_buffer___is_buffer_1.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
-      };
-    }
-    {
       name = "is_ci___is_ci_2.0.0.tgz";
       path = fetchurl {
         name = "is_ci___is_ci_2.0.0.tgz";
@@ -2922,67 +2634,19 @@
       };
     }
     {
-      name = "is_core_module___is_core_module_2.2.0.tgz";
+      name = "is_ci___is_ci_3.0.0.tgz";
       path = fetchurl {
-        name = "is_core_module___is_core_module_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz";
-        sha1 = "97037ef3d52224d85163f5597b2b63d9afed981a";
+        name = "is_ci___is_ci_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz";
+        sha1 = "c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994";
       };
     }
     {
-      name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+      name = "is_core_module___is_core_module_2.4.0.tgz";
       path = fetchurl {
-        name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
-        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
-      };
-    }
-    {
-      name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
-        sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
-      };
-    }
-    {
-      name = "is_descriptor___is_descriptor_0.1.6.tgz";
-      path = fetchurl {
-        name = "is_descriptor___is_descriptor_0.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
-        sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
-      };
-    }
-    {
-      name = "is_descriptor___is_descriptor_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_descriptor___is_descriptor_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
-        sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
-      };
-    }
-    {
-      name = "is_docker___is_docker_2.1.1.tgz";
-      path = fetchurl {
-        name = "is_docker___is_docker_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz";
-        sha1 = "4125a88e44e450d384e09047ede71adc2d144156";
-      };
-    }
-    {
-      name = "is_extendable___is_extendable_0.1.1.tgz";
-      path = fetchurl {
-        name = "is_extendable___is_extendable_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
-        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
-      };
-    }
-    {
-      name = "is_extendable___is_extendable_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_extendable___is_extendable_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
-        sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+        name = "is_core_module___is_core_module_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz";
+        sha1 = "8e9fc8e15027b011418026e98f0e6f4d86305cc1";
       };
     }
     {
@@ -3042,14 +2706,6 @@
       };
     }
     {
-      name = "is_number___is_number_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_number___is_number_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
-        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
-      };
-    }
-    {
       name = "is_number___is_number_7.0.0.tgz";
       path = fetchurl {
         name = "is_number___is_number_7.0.0.tgz";
@@ -3066,35 +2722,19 @@
       };
     }
     {
-      name = "is_path_inside___is_path_inside_3.0.2.tgz";
+      name = "is_path_inside___is_path_inside_3.0.3.tgz";
       path = fetchurl {
-        name = "is_path_inside___is_path_inside_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz";
-        sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
+        name = "is_path_inside___is_path_inside_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz";
+        sha1 = "d231362e53a07ff2b0e0ea7fed049161ffd16283";
       };
     }
     {
-      name = "is_plain_object___is_plain_object_2.0.4.tgz";
+      name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.1.tgz";
       path = fetchurl {
-        name = "is_plain_object___is_plain_object_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
-        sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
-      };
-    }
-    {
-      name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz";
-        sha1 = "0c52e54bcca391bb2c494b21e8626d7336c6e397";
-      };
-    }
-    {
-      name = "is_stream___is_stream_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_stream___is_stream_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
-        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+        name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz";
+        sha1 = "171ed6f19e3ac554394edf78caa05784a45bebb5";
       };
     }
     {
@@ -3106,11 +2746,11 @@
       };
     }
     {
-      name = "is_svg___is_svg_4.2.1.tgz";
+      name = "is_svg___is_svg_4.3.1.tgz";
       path = fetchurl {
-        name = "is_svg___is_svg_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-4.2.1.tgz";
-        sha1 = "095b496e345fec9211c2a7d5d021003e040d6f81";
+        name = "is_svg___is_svg_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz";
+        sha1 = "8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b";
       };
     }
     {
@@ -3122,22 +2762,6 @@
       };
     }
     {
-      name = "is_windows___is_windows_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_windows___is_windows_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
-        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
-      };
-    }
-    {
-      name = "is_wsl___is_wsl_2.2.0.tgz";
-      path = fetchurl {
-        name = "is_wsl___is_wsl_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz";
-        sha1 = "74a4c76e77ca9fd3f932f290c17ea326cd157271";
-      };
-    }
-    {
       name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
       path = fetchurl {
         name = "is_yarn_global___is_yarn_global_0.3.0.tgz";
@@ -3154,11 +2778,11 @@
       };
     }
     {
-      name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
+      name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
       path = fetchurl {
-        name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz";
-        sha1 = "edcb62b224e2b4710830b67498c8e4e5a4d2610b";
+        name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz";
+        sha1 = "5d34b94865bd4946633ecc78a026fc76c5b11fcf";
       };
     }
     {
@@ -3170,30 +2794,6 @@
       };
     }
     {
-      name = "isobject___isobject_2.1.0.tgz";
-      path = fetchurl {
-        name = "isobject___isobject_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
-        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
-      };
-    }
-    {
-      name = "isobject___isobject_3.0.1.tgz";
-      path = fetchurl {
-        name = "isobject___isobject_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
-        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
-      };
-    }
-    {
-      name = "isstream___isstream_0.1.2.tgz";
-      path = fetchurl {
-        name = "isstream___isstream_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-      };
-    }
-    {
       name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
       path = fetchurl {
         name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
@@ -3242,123 +2842,131 @@
       };
     }
     {
-      name = "jest_changed_files___jest_changed_files_26.6.2.tgz";
+      name = "jest_changed_files___jest_changed_files_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_changed_files___jest_changed_files_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz";
-        sha1 = "f6198479e1cc66f22f9ae1e22acaa0b429c042d0";
+        name = "jest_changed_files___jest_changed_files_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.2.tgz";
+        sha1 = "997253042b4a032950fc5f56abf3c5d1f8560801";
       };
     }
     {
-      name = "jest_cli___jest_cli_26.6.3.tgz";
+      name = "jest_circus___jest_circus_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_cli___jest_cli_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz";
-        sha1 = "43117cfef24bc4cd691a174a8796a532e135e92a";
+        name = "jest_circus___jest_circus_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.4.tgz";
+        sha1 = "3b261514ee3b3da33def736a6352c98ff56bb6e6";
       };
     }
     {
-      name = "jest_config___jest_config_26.6.3.tgz";
+      name = "jest_cli___jest_cli_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_config___jest_config_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz";
-        sha1 = "64f41444eef9eb03dc51d5c53b75c8c71f645349";
+        name = "jest_cli___jest_cli_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.4.tgz";
+        sha1 = "491b12c754c0d7c6873b13a66f26b3a80a852910";
       };
     }
     {
-      name = "jest_diff___jest_diff_26.6.2.tgz";
+      name = "jest_config___jest_config_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_diff___jest_diff_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz";
-        sha1 = "1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394";
+        name = "jest_config___jest_config_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.4.tgz";
+        sha1 = "c4f41378acf40ca77860fb4e213b12109d87b8cf";
       };
     }
     {
-      name = "jest_docblock___jest_docblock_26.0.0.tgz";
+      name = "jest_diff___jest_diff_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_docblock___jest_docblock_26.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz";
-        sha1 = "3e2fa20899fc928cb13bd0ff68bd3711a36889b5";
+        name = "jest_diff___jest_diff_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.2.tgz";
+        sha1 = "f315b87cee5dc134cf42c2708ab27375cc3f5a7e";
       };
     }
     {
-      name = "jest_each___jest_each_26.6.2.tgz";
+      name = "jest_docblock___jest_docblock_27.0.1.tgz";
       path = fetchurl {
-        name = "jest_each___jest_each_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz";
-        sha1 = "02526438a77a67401c8a6382dfe5999952c167cb";
+        name = "jest_docblock___jest_docblock_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.1.tgz";
+        sha1 = "bd9752819b49fa4fab1a50b73eb58c653b962e8b";
       };
     }
     {
-      name = "jest_environment_jsdom___jest_environment_jsdom_26.6.2.tgz";
+      name = "jest_each___jest_each_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_environment_jsdom___jest_environment_jsdom_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz";
-        sha1 = "78d09fe9cf019a357009b9b7e1f101d23bd1da3e";
+        name = "jest_each___jest_each_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.2.tgz";
+        sha1 = "865ddb4367476ced752167926b656fa0dcecd8c7";
       };
     }
     {
-      name = "jest_environment_node___jest_environment_node_26.6.2.tgz";
+      name = "jest_environment_jsdom___jest_environment_jsdom_27.0.3.tgz";
       path = fetchurl {
-        name = "jest_environment_node___jest_environment_node_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz";
-        sha1 = "824e4c7fb4944646356f11ac75b229b0035f2b0c";
+        name = "jest_environment_jsdom___jest_environment_jsdom_27.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz";
+        sha1 = "ed73e913ddc03864eb9f934b5cbabf1b63504e2e";
       };
     }
     {
-      name = "jest_get_type___jest_get_type_26.3.0.tgz";
+      name = "jest_environment_node___jest_environment_node_27.0.3.tgz";
       path = fetchurl {
-        name = "jest_get_type___jest_get_type_26.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz";
-        sha1 = "e97dc3c3f53c2b406ca7afaed4493b1d099199e0";
+        name = "jest_environment_node___jest_environment_node_27.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.3.tgz";
+        sha1 = "b4acb3679d2552a4215732cab8b0ca7ec4398ee0";
       };
     }
     {
-      name = "jest_haste_map___jest_haste_map_26.6.2.tgz";
+      name = "jest_get_type___jest_get_type_27.0.1.tgz";
       path = fetchurl {
-        name = "jest_haste_map___jest_haste_map_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz";
-        sha1 = "dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa";
+        name = "jest_get_type___jest_get_type_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.1.tgz";
+        sha1 = "34951e2b08c8801eb28559d7eb732b04bbcf7815";
       };
     }
     {
-      name = "jest_jasmine2___jest_jasmine2_26.6.3.tgz";
+      name = "jest_haste_map___jest_haste_map_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_jasmine2___jest_jasmine2_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz";
-        sha1 = "adc3cf915deacb5212c93b9f3547cd12958f2edd";
+        name = "jest_haste_map___jest_haste_map_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.2.tgz";
+        sha1 = "3f1819400c671237e48b4d4b76a80a0dbed7577f";
       };
     }
     {
-      name = "jest_leak_detector___jest_leak_detector_26.6.2.tgz";
+      name = "jest_jasmine2___jest_jasmine2_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_leak_detector___jest_leak_detector_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz";
-        sha1 = "7717cf118b92238f2eba65054c8a0c9c653a91af";
+        name = "jest_jasmine2___jest_jasmine2_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz";
+        sha1 = "c669519ccf4904a485338555e1e66cad36bb0670";
       };
     }
     {
-      name = "jest_matcher_utils___jest_matcher_utils_26.6.2.tgz";
+      name = "jest_leak_detector___jest_leak_detector_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_matcher_utils___jest_matcher_utils_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz";
-        sha1 = "8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a";
+        name = "jest_leak_detector___jest_leak_detector_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz";
+        sha1 = "ce19aa9dbcf7a72a9d58907a970427506f624e69";
       };
     }
     {
-      name = "jest_message_util___jest_message_util_26.6.2.tgz";
+      name = "jest_matcher_utils___jest_matcher_utils_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_message_util___jest_message_util_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz";
-        sha1 = "58173744ad6fc0506b5d21150b9be56ef001ca07";
+        name = "jest_matcher_utils___jest_matcher_utils_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz";
+        sha1 = "f14c060605a95a466cdc759acc546c6f4cbfc4f0";
       };
     }
     {
-      name = "jest_mock___jest_mock_26.6.2.tgz";
+      name = "jest_message_util___jest_message_util_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_mock___jest_mock_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz";
-        sha1 = "d6cb712b041ed47fe0d9b6fc3474bc6543feb302";
+        name = "jest_message_util___jest_message_util_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.2.tgz";
+        sha1 = "181c9b67dff504d8f4ad15cba10d8b80f272048c";
+      };
+    }
+    {
+      name = "jest_mock___jest_mock_27.0.3.tgz";
+      path = fetchurl {
+        name = "jest_mock___jest_mock_27.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.3.tgz";
+        sha1 = "5591844f9192b3335c0dca38e8e45ed297d4d23d";
       };
     }
     {
@@ -3370,99 +2978,99 @@
       };
     }
     {
-      name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
+      name = "jest_regex_util___jest_regex_util_27.0.1.tgz";
       path = fetchurl {
-        name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz";
-        sha1 = "d25e7184b36e39fd466c3bc41be0971e821fee28";
+        name = "jest_regex_util___jest_regex_util_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.1.tgz";
+        sha1 = "69d4b1bf5b690faa3490113c47486ed85dd45b68";
       };
     }
     {
-      name = "jest_resolve_dependencies___jest_resolve_dependencies_26.6.3.tgz";
+      name = "jest_resolve_dependencies___jest_resolve_dependencies_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_resolve_dependencies___jest_resolve_dependencies_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz";
-        sha1 = "6680859ee5d22ee5dcd961fe4871f59f4c784fb6";
+        name = "jest_resolve_dependencies___jest_resolve_dependencies_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz";
+        sha1 = "a07a242d70d668afd3fcf7f4270755eebb1fe579";
       };
     }
     {
-      name = "jest_resolve___jest_resolve_26.6.2.tgz";
+      name = "jest_resolve___jest_resolve_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_resolve___jest_resolve_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz";
-        sha1 = "a3ab1517217f469b504f1b56603c5bb541fbb507";
+        name = "jest_resolve___jest_resolve_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.4.tgz";
+        sha1 = "8a27bc3f2f00c8ea28f3bc99bbf6f468300a703d";
       };
     }
     {
-      name = "jest_runner___jest_runner_26.6.3.tgz";
+      name = "jest_runner___jest_runner_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_runner___jest_runner_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz";
-        sha1 = "2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159";
+        name = "jest_runner___jest_runner_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.4.tgz";
+        sha1 = "2787170a9509b792ae129794f6944d27d5d12a4f";
       };
     }
     {
-      name = "jest_runtime___jest_runtime_26.6.3.tgz";
+      name = "jest_runtime___jest_runtime_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_runtime___jest_runtime_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz";
-        sha1 = "4f64efbcfac398331b74b4b3c82d27d401b8fa2b";
+        name = "jest_runtime___jest_runtime_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.4.tgz";
+        sha1 = "2e4a6aa77cac32ac612dfe12768387a8aa15c2f0";
       };
     }
     {
-      name = "jest_serializer___jest_serializer_26.6.2.tgz";
+      name = "jest_serializer___jest_serializer_27.0.1.tgz";
       path = fetchurl {
-        name = "jest_serializer___jest_serializer_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz";
-        sha1 = "d139aafd46957d3a448f3a6cdabe2919ba0742d1";
+        name = "jest_serializer___jest_serializer_27.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.1.tgz";
+        sha1 = "2464d04dcc33fb71dc80b7c82e3c5e8a08cb1020";
       };
     }
     {
-      name = "jest_snapshot___jest_snapshot_26.6.2.tgz";
+      name = "jest_snapshot___jest_snapshot_27.0.4.tgz";
       path = fetchurl {
-        name = "jest_snapshot___jest_snapshot_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz";
-        sha1 = "f3b0af1acb223316850bd14e1beea9837fb39c84";
+        name = "jest_snapshot___jest_snapshot_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.4.tgz";
+        sha1 = "2b96e22ca90382b3e93bd0aae2ce4c78bf51fb5b";
       };
     }
     {
-      name = "jest_util___jest_util_26.6.2.tgz";
+      name = "jest_util___jest_util_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_util___jest_util_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz";
-        sha1 = "907535dbe4d5a6cb4c47ac9b926f6af29576cbc1";
+        name = "jest_util___jest_util_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.2.tgz";
+        sha1 = "fc2c7ace3c75ae561cf1e5fdb643bf685a5be7c7";
       };
     }
     {
-      name = "jest_validate___jest_validate_26.6.2.tgz";
+      name = "jest_validate___jest_validate_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_validate___jest_validate_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz";
-        sha1 = "23d380971587150467342911c3d7b4ac57ab20ec";
+        name = "jest_validate___jest_validate_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.2.tgz";
+        sha1 = "7fe2c100089449cd5cbb47a5b0b6cb7cda5beee5";
       };
     }
     {
-      name = "jest_watcher___jest_watcher_26.6.2.tgz";
+      name = "jest_watcher___jest_watcher_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_watcher___jest_watcher_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz";
-        sha1 = "a5b683b8f9d68dbcb1d7dae32172d2cca0592975";
+        name = "jest_watcher___jest_watcher_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.2.tgz";
+        sha1 = "dab5f9443e2d7f52597186480731a8c6335c5deb";
       };
     }
     {
-      name = "jest_worker___jest_worker_26.6.2.tgz";
+      name = "jest_worker___jest_worker_27.0.2.tgz";
       path = fetchurl {
-        name = "jest_worker___jest_worker_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz";
-        sha1 = "7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed";
+        name = "jest_worker___jest_worker_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz";
+        sha1 = "4ebeb56cef48b3e7514552f80d0d80c0129f0b05";
       };
     }
     {
-      name = "jest___jest_26.6.3.tgz";
+      name = "jest___jest_27.0.4.tgz";
       path = fetchurl {
-        name = "jest___jest_26.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz";
-        sha1 = "40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef";
+        name = "jest___jest_27.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jest/-/jest-27.0.4.tgz";
+        sha1 = "91d4d564b36bcf93b98dac1ab19f07089e670f53";
       };
     }
     {
@@ -3482,19 +3090,19 @@
       };
     }
     {
-      name = "jsbn___jsbn_0.1.1.tgz";
+      name = "js_yaml___js_yaml_4.1.0.tgz";
       path = fetchurl {
-        name = "jsbn___jsbn_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+        name = "js_yaml___js_yaml_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha1 = "c1fb65f8f5017901cdd2c951864ba18458a10602";
       };
     }
     {
-      name = "jsdom___jsdom_16.4.0.tgz";
+      name = "jsdom___jsdom_16.6.0.tgz";
       path = fetchurl {
-        name = "jsdom___jsdom_16.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz";
-        sha1 = "36005bde2d136f73eee1a830c6d45e55408edddb";
+        name = "jsdom___jsdom_16.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz";
+        sha1 = "f79b3786682065492a3da6a60a4695da983805ac";
       };
     }
     {
@@ -3514,14 +3122,6 @@
       };
     }
     {
-      name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
-      path = fetchurl {
-        name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
-        sha1 = "7c47805a94319928e05777405dc12e1f7a4ee02d";
-      };
-    }
-    {
       name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
       path = fetchurl {
         name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
@@ -3538,14 +3138,6 @@
       };
     }
     {
-      name = "json_schema___json_schema_0.2.3.tgz";
-      path = fetchurl {
-        name = "json_schema___json_schema_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
-      };
-    }
-    {
       name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
       path = fetchurl {
         name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
@@ -3586,14 +3178,6 @@
       };
     }
     {
-      name = "jsprim___jsprim_1.4.1.tgz";
-      path = fetchurl {
-        name = "jsprim___jsprim_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
-      };
-    }
-    {
       name = "keyv___keyv_3.1.0.tgz";
       path = fetchurl {
         name = "keyv___keyv_3.1.0.tgz";
@@ -3602,38 +3186,6 @@
       };
     }
     {
-      name = "kind_of___kind_of_3.2.2.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
-        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
-      };
-    }
-    {
-      name = "kind_of___kind_of_4.0.0.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
-        sha1 = "20813df3d712928b207378691a45066fae72dd57";
-      };
-    }
-    {
-      name = "kind_of___kind_of_5.1.0.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
-        sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
-      };
-    }
-    {
-      name = "kind_of___kind_of_6.0.3.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_6.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
-        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
-      };
-    }
-    {
       name = "kleur___kleur_3.0.3.tgz";
       path = fetchurl {
         name = "kleur___kleur_3.0.3.tgz";
@@ -3650,11 +3202,11 @@
       };
     }
     {
-      name = "lazy_val___lazy_val_1.0.4.tgz";
+      name = "lazy_val___lazy_val_1.0.5.tgz";
       path = fetchurl {
-        name = "lazy_val___lazy_val_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz";
-        sha1 = "882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65";
+        name = "lazy_val___lazy_val_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz";
+        sha1 = "6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d";
       };
     }
     {
@@ -3690,14 +3242,6 @@
       };
     }
     {
-      name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
-      path = fetchurl {
-        name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
-        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
-      };
-    }
-    {
       name = "locate_path___locate_path_5.0.0.tgz";
       path = fetchurl {
         name = "locate_path___locate_path_5.0.0.tgz";
@@ -3706,6 +3250,14 @@
       };
     }
     {
+      name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    }
+    {
       name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
       path = fetchurl {
         name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
@@ -3738,11 +3290,27 @@
       };
     }
     {
-      name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+      name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
       path = fetchurl {
-        name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
-        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+        name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+        sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+      };
+    }
+    {
+      name = "lodash.merge___lodash.merge_4.6.2.tgz";
+      path = fetchurl {
+        name = "lodash.merge___lodash.merge_4.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz";
+        sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a";
+      };
+    }
+    {
+      name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+      path = fetchurl {
+        name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
       };
     }
     {
@@ -3754,11 +3322,11 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.20.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.20.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
-        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
       };
     }
     {
@@ -3802,22 +3370,6 @@
       };
     }
     {
-      name = "map_cache___map_cache_0.2.2.tgz";
-      path = fetchurl {
-        name = "map_cache___map_cache_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
-        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
-      };
-    }
-    {
-      name = "map_visit___map_visit_1.0.0.tgz";
-      path = fetchurl {
-        name = "map_visit___map_visit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
-        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
-      };
-    }
-    {
       name = "matcher___matcher_3.0.0.tgz";
       path = fetchurl {
         name = "matcher___matcher_3.0.0.tgz";
@@ -3834,43 +3386,35 @@
       };
     }
     {
-      name = "micromatch___micromatch_3.1.10.tgz";
-      path = fetchurl {
-        name = "micromatch___micromatch_3.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
-        sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
-      };
-    }
-    {
-      name = "micromatch___micromatch_4.0.2.tgz";
+      name = "micromatch___micromatch_4.0.4.tgz";
       path = fetchurl {
-        name = "micromatch___micromatch_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
-        sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+        name = "micromatch___micromatch_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz";
+        sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9";
       };
     }
     {
-      name = "mime_db___mime_db_1.45.0.tgz";
+      name = "mime_db___mime_db_1.48.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.45.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz";
-        sha1 = "cceeda21ccd7c3a745eba2decd55d4b73e7879ea";
+        name = "mime_db___mime_db_1.48.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz";
+        sha1 = "e35b31045dd7eada3aaad537ed88a33afbef2d1d";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.28.tgz";
+      name = "mime_types___mime_types_2.1.31.tgz";
       path = fetchurl {
-        name = "mime_types___mime_types_2.1.28.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz";
-        sha1 = "1160c4757eab2c5363888e005273ecf79d2a0ecd";
+        name = "mime_types___mime_types_2.1.31.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz";
+        sha1 = "a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b";
       };
     }
     {
-      name = "mime___mime_2.5.0.tgz";
+      name = "mime___mime_2.5.2.tgz";
       path = fetchurl {
-        name = "mime___mime_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz";
-        sha1 = "2b4af934401779806ee98026bb42e8c1ae1876b1";
+        name = "mime___mime_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz";
+        sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe";
       };
     }
     {
@@ -3906,14 +3450,6 @@
       };
     }
     {
-      name = "mixin_deep___mixin_deep_1.3.2.tgz";
-      path = fetchurl {
-        name = "mixin_deep___mixin_deep_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
-        sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
-      };
-    }
-    {
       name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
         name = "mkdirp___mkdirp_0.5.5.tgz";
@@ -3938,14 +3474,6 @@
       };
     }
     {
-      name = "nanomatch___nanomatch_1.2.13.tgz";
-      path = fetchurl {
-        name = "nanomatch___nanomatch_1.2.13.tgz";
-        url  = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
-        sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
-      };
-    }
-    {
       name = "natural_compare___natural_compare_1.4.0.tgz";
       path = fetchurl {
         name = "natural_compare___natural_compare_1.4.0.tgz";
@@ -3954,14 +3482,6 @@
       };
     }
     {
-      name = "nice_try___nice_try_1.0.5.tgz";
-      path = fetchurl {
-        name = "nice_try___nice_try_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
-        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
-      };
-    }
-    {
       name = "node_addon_api___node_addon_api_1.7.2.tgz";
       path = fetchurl {
         name = "node_addon_api___node_addon_api_1.7.2.tgz";
@@ -3986,35 +3506,11 @@
       };
     }
     {
-      name = "node_notifier___node_notifier_8.0.1.tgz";
-      path = fetchurl {
-        name = "node_notifier___node_notifier_8.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz";
-        sha1 = "f86e89bbc925f2b068784b31f382afdc6ca56be1";
-      };
-    }
-    {
-      name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
-      path = fetchurl {
-        name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
-        sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
-      };
-    }
-    {
-      name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
-      path = fetchurl {
-        name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz";
-        sha1 = "1f8a7c423b3d2e85eb36985eaf81de381d01301a";
-      };
-    }
-    {
-      name = "normalize_path___normalize_path_2.1.1.tgz";
+      name = "node_releases___node_releases_1.1.73.tgz";
       path = fetchurl {
-        name = "normalize_path___normalize_path_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
-        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+        name = "node_releases___node_releases_1.1.73.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz";
+        sha1 = "dd4e81ddd5277ff846b80b52bb40c49edf7a7b20";
       };
     }
     {
@@ -4026,11 +3522,11 @@
       };
     }
     {
-      name = "normalize_url___normalize_url_4.5.0.tgz";
+      name = "normalize_url___normalize_url_4.5.1.tgz";
       path = fetchurl {
-        name = "normalize_url___normalize_url_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz";
-        sha1 = "453354087e6ca96957bd8f5baf753f5982142129";
+        name = "normalize_url___normalize_url_4.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz";
+        sha1 = "0dd90cf1288ee1d1313b87081c9a5932ee48518a";
       };
     }
     {
@@ -4042,14 +3538,6 @@
       };
     }
     {
-      name = "npm_run_path___npm_run_path_2.0.2.tgz";
-      path = fetchurl {
-        name = "npm_run_path___npm_run_path_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
-        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
-      };
-    }
-    {
       name = "npm_run_path___npm_run_path_4.0.1.tgz";
       path = fetchurl {
         name = "npm_run_path___npm_run_path_4.0.1.tgz";
@@ -4066,22 +3554,6 @@
       };
     }
     {
-      name = "oauth_sign___oauth_sign_0.9.0.tgz";
-      path = fetchurl {
-        name = "oauth_sign___oauth_sign_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
-      };
-    }
-    {
-      name = "object_copy___object_copy_0.1.0.tgz";
-      path = fetchurl {
-        name = "object_copy___object_copy_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
-        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
-      };
-    }
-    {
       name = "object_keys___object_keys_1.1.1.tgz";
       path = fetchurl {
         name = "object_keys___object_keys_1.1.1.tgz";
@@ -4090,22 +3562,6 @@
       };
     }
     {
-      name = "object_visit___object_visit_1.0.1.tgz";
-      path = fetchurl {
-        name = "object_visit___object_visit_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
-        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
-      };
-    }
-    {
-      name = "object.pick___object.pick_1.3.0.tgz";
-      path = fetchurl {
-        name = "object.pick___object.pick_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
-        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
-      };
-    }
-    {
       name = "once___once_1.4.0.tgz";
       path = fetchurl {
         name = "once___once_1.4.0.tgz";
@@ -4154,14 +3610,6 @@
       };
     }
     {
-      name = "p_finally___p_finally_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_finally___p_finally_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
-        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
-      };
-    }
-    {
       name = "p_limit___p_limit_2.3.0.tgz";
       path = fetchurl {
         name = "p_limit___p_limit_2.3.0.tgz";
@@ -4202,27 +3650,11 @@
       };
     }
     {
-      name = "parse_json___parse_json_5.2.0.tgz";
+      name = "parse5___parse5_6.0.1.tgz";
       path = fetchurl {
-        name = "parse_json___parse_json_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz";
-        sha1 = "c76fc66dee54231c962b22bcc8a72cf2f99753cd";
-      };
-    }
-    {
-      name = "parse5___parse5_5.1.1.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz";
-        sha1 = "f68e4e5ba1852ac2cadc00f4555fff6c2abb6178";
-      };
-    }
-    {
-      name = "pascalcase___pascalcase_0.1.1.tgz";
-      path = fetchurl {
-        name = "pascalcase___pascalcase_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
-        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+        name = "parse5___parse5_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz";
+        sha1 = "e1a1c085c569b3dc08321184f19a39cc27f7c30b";
       };
     }
     {
@@ -4242,14 +3674,6 @@
       };
     }
     {
-      name = "path_key___path_key_2.0.1.tgz";
-      path = fetchurl {
-        name = "path_key___path_key_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
-        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
-      };
-    }
-    {
       name = "path_key___path_key_3.1.1.tgz";
       path = fetchurl {
         name = "path_key___path_key_3.1.1.tgz";
@@ -4258,11 +3682,11 @@
       };
     }
     {
-      name = "path_parse___path_parse_1.0.6.tgz";
+      name = "path_parse___path_parse_1.0.7.tgz";
       path = fetchurl {
-        name = "path_parse___path_parse_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
-        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+        name = "path_parse___path_parse_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz";
+        sha1 = "fbc114b60ca42b30d9daf5858e4bd68bbedb6735";
       };
     }
     {
@@ -4274,19 +3698,11 @@
       };
     }
     {
-      name = "performance_now___performance_now_2.1.0.tgz";
-      path = fetchurl {
-        name = "performance_now___performance_now_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
-      };
-    }
-    {
-      name = "picomatch___picomatch_2.2.2.tgz";
+      name = "picomatch___picomatch_2.3.0.tgz";
       path = fetchurl {
-        name = "picomatch___picomatch_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
-        sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
+        name = "picomatch___picomatch_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz";
+        sha1 = "f1f061de8f6a4bf022892e2d128234fb98302972";
       };
     }
     {
@@ -4314,19 +3730,11 @@
       };
     }
     {
-      name = "plist___plist_3.0.1.tgz";
-      path = fetchurl {
-        name = "plist___plist_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz";
-        sha1 = "a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c";
-      };
-    }
-    {
-      name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+      name = "plist___plist_3.0.2.tgz";
       path = fetchurl {
-        name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
-        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+        name = "plist___plist_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz";
+        sha1 = "74bbf011124b90421c22d15779cee60060ba95bc";
       };
     }
     {
@@ -4354,11 +3762,11 @@
       };
     }
     {
-      name = "pretty_format___pretty_format_26.6.2.tgz";
+      name = "pretty_format___pretty_format_27.0.2.tgz";
       path = fetchurl {
-        name = "pretty_format___pretty_format_26.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz";
-        sha1 = "e35c2705f14cb7fe2fe94fa078345b444120fc93";
+        name = "pretty_format___pretty_format_27.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.2.tgz";
+        sha1 = "9283ff8c4f581b186b2d4da461617143dca478a4";
       };
     }
     {
@@ -4386,11 +3794,11 @@
       };
     }
     {
-      name = "prompts___prompts_2.4.0.tgz";
+      name = "prompts___prompts_2.4.1.tgz";
       path = fetchurl {
-        name = "prompts___prompts_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz";
-        sha1 = "4aa5de0723a231d1ee9121c40fdf663df73f61d7";
+        name = "prompts___prompts_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz";
+        sha1 = "befd3b1195ba052f9fd2fde8a486c4e82ee77f61";
       };
     }
     {
@@ -4434,14 +3842,6 @@
       };
     }
     {
-      name = "qs___qs_6.5.2.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
-        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
-      };
-    }
-    {
       name = "rc___rc_1.2.8.tgz";
       path = fetchurl {
         name = "rc___rc_1.2.8.tgz";
@@ -4450,35 +3850,19 @@
       };
     }
     {
-      name = "react_is___react_is_17.0.1.tgz";
+      name = "react_is___react_is_17.0.2.tgz";
       path = fetchurl {
-        name = "react_is___react_is_17.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz";
-        sha1 = "5b3531bd76a645a4c9fb6e693ed36419e3301339";
+        name = "react_is___react_is_17.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz";
+        sha1 = "e691d4a8e9c789365655539ab372762b0efb54f0";
       };
     }
     {
-      name = "read_config_file___read_config_file_6.0.0.tgz";
+      name = "read_config_file___read_config_file_6.2.0.tgz";
       path = fetchurl {
-        name = "read_config_file___read_config_file_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz";
-        sha1 = "224b5dca6a5bdc1fb19e63f89f342680efdb9299";
-      };
-    }
-    {
-      name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
-      path = fetchurl {
-        name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
-        sha1 = "f3a6135758459733ae2b95638056e1854e7ef507";
-      };
-    }
-    {
-      name = "read_pkg___read_pkg_5.2.0.tgz";
-      path = fetchurl {
-        name = "read_pkg___read_pkg_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz";
-        sha1 = "7bf295438ca5a33e56cd30e053b34ee7250c93cc";
+        name = "read_config_file___read_config_file_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz";
+        sha1 = "71536072330bcd62ba814f91458b12add9fc7ade";
       };
     }
     {
@@ -4506,14 +3890,6 @@
       };
     }
     {
-      name = "regex_not___regex_not_1.0.2.tgz";
-      path = fetchurl {
-        name = "regex_not___regex_not_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
-        sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
-      };
-    }
-    {
       name = "regexpp___regexpp_3.1.0.tgz";
       path = fetchurl {
         name = "regexpp___regexpp_3.1.0.tgz";
@@ -4538,54 +3914,6 @@
       };
     }
     {
-      name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
-      path = fetchurl {
-        name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
-      };
-    }
-    {
-      name = "repeat_element___repeat_element_1.1.3.tgz";
-      path = fetchurl {
-        name = "repeat_element___repeat_element_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
-      };
-    }
-    {
-      name = "repeat_string___repeat_string_1.6.1.tgz";
-      path = fetchurl {
-        name = "repeat_string___repeat_string_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
-      };
-    }
-    {
-      name = "request_promise_core___request_promise_core_1.1.4.tgz";
-      path = fetchurl {
-        name = "request_promise_core___request_promise_core_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz";
-        sha1 = "3eedd4223208d419867b78ce815167d10593a22f";
-      };
-    }
-    {
-      name = "request_promise_native___request_promise_native_1.0.9.tgz";
-      path = fetchurl {
-        name = "request_promise_native___request_promise_native_1.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz";
-        sha1 = "e407120526a5efdc9a39b28a5679bf47b9d9dc28";
-      };
-    }
-    {
-      name = "request___request_2.88.2.tgz";
-      path = fetchurl {
-        name = "request___request_2.88.2.tgz";
-        url  = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
-        sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
-      };
-    }
-    {
       name = "require_directory___require_directory_2.1.1.tgz";
       path = fetchurl {
         name = "require_directory___require_directory_2.1.1.tgz";
@@ -4602,11 +3930,11 @@
       };
     }
     {
-      name = "require_main_filename___require_main_filename_2.0.0.tgz";
+      name = "requireindex___requireindex_1.2.0.tgz";
       path = fetchurl {
-        name = "require_main_filename___require_main_filename_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
+        name = "requireindex___requireindex_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz";
+        sha1 = "3463cdb22ee151902635aa6c9535d4de9c2ef1ef";
       };
     }
     {
@@ -4634,14 +3962,6 @@
       };
     }
     {
-      name = "resolve_url___resolve_url_0.2.1.tgz";
-      path = fetchurl {
-        name = "resolve_url___resolve_url_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
-        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
-      };
-    }
-    {
       name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
         name = "resolve___resolve_1.20.0.tgz";
@@ -4658,14 +3978,6 @@
       };
     }
     {
-      name = "ret___ret_0.1.15.tgz";
-      path = fetchurl {
-        name = "ret___ret_0.1.15.tgz";
-        url  = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
-        sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
-      };
-    }
-    {
       name = "rimraf___rimraf_3.0.2.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_3.0.2.tgz";
@@ -4682,22 +3994,6 @@
       };
     }
     {
-      name = "rsvp___rsvp_4.8.5.tgz";
-      path = fetchurl {
-        name = "rsvp___rsvp_4.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz";
-        sha1 = "c8f155311d167f68f21e168df71ec5b083113734";
-      };
-    }
-    {
-      name = "safe_buffer___safe_buffer_5.2.1.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
-        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
-      };
-    }
-    {
       name = "safe_buffer___safe_buffer_5.1.2.tgz";
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.1.2.tgz";
@@ -4706,11 +4002,11 @@
       };
     }
     {
-      name = "safe_regex___safe_regex_1.1.0.tgz";
+      name = "safe_buffer___safe_buffer_5.2.1.tgz";
       path = fetchurl {
-        name = "safe_regex___safe_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
-        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+        name = "safe_buffer___safe_buffer_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
       };
     }
     {
@@ -4722,14 +4018,6 @@
       };
     }
     {
-      name = "sane___sane_4.1.0.tgz";
-      path = fetchurl {
-        name = "sane___sane_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz";
-        sha1 = "ed881fd922733a6c461bc189dc2b6c006f3ffded";
-      };
-    }
-    {
       name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
       path = fetchurl {
         name = "sanitize_filename___sanitize_filename_1.6.3.tgz";
@@ -4770,11 +4058,11 @@
       };
     }
     {
-      name = "semver___semver_5.7.1.tgz";
+      name = "semver___semver_7.3.2.tgz";
       path = fetchurl {
-        name = "semver___semver_5.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
-        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+        name = "semver___semver_7.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
+        sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
       };
     }
     {
@@ -4786,11 +4074,11 @@
       };
     }
     {
-      name = "semver___semver_7.3.4.tgz";
+      name = "semver___semver_7.3.5.tgz";
       path = fetchurl {
-        name = "semver___semver_7.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
-        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
       };
     }
     {
@@ -4802,30 +4090,6 @@
       };
     }
     {
-      name = "set_blocking___set_blocking_2.0.0.tgz";
-      path = fetchurl {
-        name = "set_blocking___set_blocking_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
-        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
-      };
-    }
-    {
-      name = "set_value___set_value_2.0.1.tgz";
-      path = fetchurl {
-        name = "set_value___set_value_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
-        sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
-      };
-    }
-    {
-      name = "shebang_command___shebang_command_1.2.0.tgz";
-      path = fetchurl {
-        name = "shebang_command___shebang_command_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
-        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
-      };
-    }
-    {
       name = "shebang_command___shebang_command_2.0.0.tgz";
       path = fetchurl {
         name = "shebang_command___shebang_command_2.0.0.tgz";
@@ -4834,14 +4098,6 @@
       };
     }
     {
-      name = "shebang_regex___shebang_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "shebang_regex___shebang_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
-        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
-      };
-    }
-    {
       name = "shebang_regex___shebang_regex_3.0.0.tgz";
       path = fetchurl {
         name = "shebang_regex___shebang_regex_3.0.0.tgz";
@@ -4850,14 +4106,6 @@
       };
     }
     {
-      name = "shellwords___shellwords_0.1.1.tgz";
-      path = fetchurl {
-        name = "shellwords___shellwords_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
-        sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
-      };
-    }
-    {
       name = "signal_exit___signal_exit_3.0.3.tgz";
       path = fetchurl {
         name = "signal_exit___signal_exit_3.0.3.tgz";
@@ -4906,38 +4154,6 @@
       };
     }
     {
-      name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
-      path = fetchurl {
-        name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
-        sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
-      };
-    }
-    {
-      name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
-      path = fetchurl {
-        name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
-        sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
-      };
-    }
-    {
-      name = "snapdragon___snapdragon_0.8.2.tgz";
-      path = fetchurl {
-        name = "snapdragon___snapdragon_0.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
-        sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
-      };
-    }
-    {
-      name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
-      path = fetchurl {
-        name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
-        sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
-      };
-    }
-    {
       name = "source_map_support___source_map_support_0.5.19.tgz";
       path = fetchurl {
         name = "source_map_support___source_map_support_0.5.19.tgz";
@@ -4946,14 +4162,6 @@
       };
     }
     {
-      name = "source_map_url___source_map_url_0.4.1.tgz";
-      path = fetchurl {
-        name = "source_map_url___source_map_url_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz";
-        sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56";
-      };
-    }
-    {
       name = "source_map___source_map_0.5.7.tgz";
       path = fetchurl {
         name = "source_map___source_map_0.5.7.tgz";
@@ -4978,46 +4186,6 @@
       };
     }
     {
-      name = "spdx_correct___spdx_correct_3.1.1.tgz";
-      path = fetchurl {
-        name = "spdx_correct___spdx_correct_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz";
-        sha1 = "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9";
-      };
-    }
-    {
-      name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
-      path = fetchurl {
-        name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
-        sha1 = "3f28ce1a77a00372683eade4a433183527a2163d";
-      };
-    }
-    {
-      name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
-      path = fetchurl {
-        name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
-        sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679";
-      };
-    }
-    {
-      name = "spdx_license_ids___spdx_license_ids_3.0.7.tgz";
-      path = fetchurl {
-        name = "spdx_license_ids___spdx_license_ids_3.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz";
-        sha1 = "e9c18a410e5ed7e12442a549fbd8afa767038d65";
-      };
-    }
-    {
-      name = "split_string___split_string_3.1.0.tgz";
-      path = fetchurl {
-        name = "split_string___split_string_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
-        sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
-      };
-    }
-    {
       name = "sprintf_js___sprintf_js_1.1.2.tgz";
       path = fetchurl {
         name = "sprintf_js___sprintf_js_1.1.2.tgz";
@@ -5034,14 +4202,6 @@
       };
     }
     {
-      name = "sshpk___sshpk_1.16.1.tgz";
-      path = fetchurl {
-        name = "sshpk___sshpk_1.16.1.tgz";
-        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
-        sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
-      };
-    }
-    {
       name = "stack_utils___stack_utils_2.0.3.tgz";
       path = fetchurl {
         name = "stack_utils___stack_utils_2.0.3.tgz";
@@ -5058,27 +4218,11 @@
       };
     }
     {
-      name = "static_extend___static_extend_0.1.2.tgz";
-      path = fetchurl {
-        name = "static_extend___static_extend_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
-        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
-      };
-    }
-    {
-      name = "stealthy_require___stealthy_require_1.1.1.tgz";
+      name = "string_length___string_length_4.0.2.tgz";
       path = fetchurl {
-        name = "stealthy_require___stealthy_require_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
-        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
-      };
-    }
-    {
-      name = "string_length___string_length_4.0.1.tgz";
-      path = fetchurl {
-        name = "string_length___string_length_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz";
-        sha1 = "4a973bf31ef77c4edbceadd6af2611996985f8a1";
+        name = "string_length___string_length_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz";
+        sha1 = "a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a";
       };
     }
     {
@@ -5098,11 +4242,11 @@
       };
     }
     {
-      name = "string_width___string_width_4.2.0.tgz";
+      name = "string_width___string_width_4.2.2.tgz";
       path = fetchurl {
-        name = "string_width___string_width_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
-        sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+        name = "string_width___string_width_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
+        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
       };
     }
     {
@@ -5154,14 +4298,6 @@
       };
     }
     {
-      name = "strip_eof___strip_eof_1.0.0.tgz";
-      path = fetchurl {
-        name = "strip_eof___strip_eof_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
-        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
-      };
-    }
-    {
       name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
       path = fetchurl {
         name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
@@ -5210,11 +4346,19 @@
       };
     }
     {
-      name = "supports_hyperlinks___supports_hyperlinks_2.1.0.tgz";
+      name = "supports_color___supports_color_8.1.1.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_8.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz";
+        sha1 = "cd6fc17e28500cff56c1b86c0a7fd4a54a73005c";
+      };
+    }
+    {
+      name = "supports_hyperlinks___supports_hyperlinks_2.2.0.tgz";
       path = fetchurl {
-        name = "supports_hyperlinks___supports_hyperlinks_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz";
-        sha1 = "f663df252af5f37c5d49bbd7eeefa9e0b9e59e47";
+        name = "supports_hyperlinks___supports_hyperlinks_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz";
+        sha1 = "4f77b42488765891774b70c79babd87f9bd594bb";
       };
     }
     {
@@ -5226,11 +4370,11 @@
       };
     }
     {
-      name = "table___table_6.0.7.tgz";
+      name = "table___table_6.7.1.tgz";
       path = fetchurl {
-        name = "table___table_6.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz";
-        sha1 = "e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34";
+        name = "table___table_6.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz";
+        sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2";
       };
     }
     {
@@ -5242,11 +4386,11 @@
       };
     }
     {
-      name = "temp_file___temp_file_3.3.7.tgz";
+      name = "temp_file___temp_file_3.4.0.tgz";
       path = fetchurl {
-        name = "temp_file___temp_file_3.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz";
-        sha1 = "686885d635f872748e384e871855958470aeb18a";
+        name = "temp_file___temp_file_3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz";
+        sha1 = "766ea28911c683996c248ef1a20eea04d51652c7";
       };
     }
     {
@@ -5274,27 +4418,43 @@
       };
     }
     {
-      name = "throat___throat_5.0.0.tgz";
+      name = "throat___throat_6.0.1.tgz";
       path = fetchurl {
-        name = "throat___throat_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz";
-        sha1 = "c5199235803aad18754a667d659b5e72ce16764b";
+        name = "throat___throat_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz";
+        sha1 = "d514fedad95740c12c2d7fc70ea863eb51ade375";
       };
     }
     {
-      name = "tldts_core___tldts_core_5.7.6.tgz";
+      name = "tldts_core___tldts_core_5.7.38.tgz";
       path = fetchurl {
-        name = "tldts_core___tldts_core_5.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.6.tgz";
-        sha1 = "af99b4ab79761dfa6c44d1d61a3f76bb5c3def8b";
+        name = "tldts_core___tldts_core_5.7.38.tgz";
+        url  = "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.38.tgz";
+        sha1 = "779092c90941803fb682c3d7094a88f12aad4508";
       };
     }
     {
-      name = "tldts_experimental___tldts_experimental_5.7.6.tgz";
+      name = "tldts_experimental___tldts_experimental_5.7.38.tgz";
       path = fetchurl {
-        name = "tldts_experimental___tldts_experimental_5.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.6.tgz";
-        sha1 = "10c255872af89ab68659c3a345c7a65015920024";
+        name = "tldts_experimental___tldts_experimental_5.7.38.tgz";
+        url  = "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.38.tgz";
+        sha1 = "a2b03ae0282ee7439b1ed1618a1d7d2e9e66be78";
+      };
+    }
+    {
+      name = "tmp_promise___tmp_promise_3.0.2.tgz";
+      path = fetchurl {
+        name = "tmp_promise___tmp_promise_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz";
+        sha1 = "6e933782abff8b00c3119d63589ca1fb9caaa62a";
+      };
+    }
+    {
+      name = "tmp___tmp_0.2.1.tgz";
+      path = fetchurl {
+        name = "tmp___tmp_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz";
+        sha1 = "8457fc3037dcf4719c251367a1af6500ee1ccf14";
       };
     }
     {
@@ -5314,14 +4474,6 @@
       };
     }
     {
-      name = "to_object_path___to_object_path_0.3.0.tgz";
-      path = fetchurl {
-        name = "to_object_path___to_object_path_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
-        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
-      };
-    }
-    {
       name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
       path = fetchurl {
         name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
@@ -5330,14 +4482,6 @@
       };
     }
     {
-      name = "to_regex_range___to_regex_range_2.1.1.tgz";
-      path = fetchurl {
-        name = "to_regex_range___to_regex_range_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
-        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
-      };
-    }
-    {
       name = "to_regex_range___to_regex_range_5.0.1.tgz";
       path = fetchurl {
         name = "to_regex_range___to_regex_range_5.0.1.tgz";
@@ -5346,35 +4490,19 @@
       };
     }
     {
-      name = "to_regex___to_regex_3.0.2.tgz";
+      name = "tough_cookie___tough_cookie_4.0.0.tgz";
       path = fetchurl {
-        name = "to_regex___to_regex_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
-        sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+        name = "tough_cookie___tough_cookie_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz";
+        sha1 = "d822234eeca882f991f0f908824ad2622ddbece4";
       };
     }
     {
-      name = "tough_cookie___tough_cookie_2.5.0.tgz";
+      name = "tr46___tr46_2.1.0.tgz";
       path = fetchurl {
-        name = "tough_cookie___tough_cookie_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
-      };
-    }
-    {
-      name = "tough_cookie___tough_cookie_3.0.1.tgz";
-      path = fetchurl {
-        name = "tough_cookie___tough_cookie_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz";
-        sha1 = "9df4f57e739c26930a018184887f4adb7dca73b2";
-      };
-    }
-    {
-      name = "tr46___tr46_2.0.2.tgz";
-      path = fetchurl {
-        name = "tr46___tr46_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz";
-        sha1 = "03273586def1595ae08fedb38d7733cee91d2479";
+        name = "tr46___tr46_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz";
+        sha1 = "fa87aa81ca5d5941da8cbf1f9b749dc969a4e240";
       };
     }
     {
@@ -5386,14 +4514,6 @@
       };
     }
     {
-      name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-      path = fetchurl {
-        name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
-      };
-    }
-    {
       name = "tunnel___tunnel_0.0.6.tgz";
       path = fetchurl {
         name = "tunnel___tunnel_0.0.6.tgz";
@@ -5402,14 +4522,6 @@
       };
     }
     {
-      name = "tweetnacl___tweetnacl_0.14.5.tgz";
-      path = fetchurl {
-        name = "tweetnacl___tweetnacl_0.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
-      };
-    }
-    {
       name = "type_check___type_check_0.4.0.tgz";
       path = fetchurl {
         name = "type_check___type_check_0.4.0.tgz";
@@ -5434,14 +4546,6 @@
       };
     }
     {
-      name = "type_fest___type_fest_0.11.0.tgz";
-      path = fetchurl {
-        name = "type_fest___type_fest_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz";
-        sha1 = "97abf0872310fed88a5c466b25681576145e33f1";
-      };
-    }
-    {
       name = "type_fest___type_fest_0.13.1.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.13.1.tgz";
@@ -5458,19 +4562,11 @@
       };
     }
     {
-      name = "type_fest___type_fest_0.6.0.tgz";
-      path = fetchurl {
-        name = "type_fest___type_fest_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz";
-        sha1 = "8d2a2370d3df886eb5c90ada1c5bf6188acf838b";
-      };
-    }
-    {
-      name = "type_fest___type_fest_0.8.1.tgz";
+      name = "type_fest___type_fest_0.21.3.tgz";
       path = fetchurl {
-        name = "type_fest___type_fest_0.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
-        sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
+        name = "type_fest___type_fest_0.21.3.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz";
+        sha1 = "d260a24b0198436e133fa26a524a6d65fa3b2e37";
       };
     }
     {
@@ -5490,14 +4586,6 @@
       };
     }
     {
-      name = "union_value___union_value_1.0.1.tgz";
-      path = fetchurl {
-        name = "union_value___union_value_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
-        sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
-      };
-    }
-    {
       name = "unique_string___unique_string_2.0.0.tgz";
       path = fetchurl {
         name = "unique_string___unique_string_2.0.0.tgz";
@@ -5522,14 +4610,6 @@
       };
     }
     {
-      name = "unset_value___unset_value_1.0.0.tgz";
-      path = fetchurl {
-        name = "unset_value___unset_value_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
-        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
-      };
-    }
-    {
       name = "update_notifier___update_notifier_5.1.0.tgz";
       path = fetchurl {
         name = "update_notifier___update_notifier_5.1.0.tgz";
@@ -5546,14 +4626,6 @@
       };
     }
     {
-      name = "urix___urix_0.1.0.tgz";
-      path = fetchurl {
-        name = "urix___urix_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
-        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
-      };
-    }
-    {
       name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
       path = fetchurl {
         name = "url_parse_lax___url_parse_lax_3.0.0.tgz";
@@ -5562,14 +4634,6 @@
       };
     }
     {
-      name = "use___use_3.1.1.tgz";
-      path = fetchurl {
-        name = "use___use_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
-        sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
-      };
-    }
-    {
       name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
       path = fetchurl {
         name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz";
@@ -5586,43 +4650,19 @@
       };
     }
     {
-      name = "uuid___uuid_3.4.0.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
-        sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
-      };
-    }
-    {
-      name = "uuid___uuid_8.3.2.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
       path = fetchurl {
-        name = "uuid___uuid_8.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz";
-        sha1 = "80d5b5ced271bb9af6c445f21a1a04c606cefbe2";
+        name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+      name = "v8_to_istanbul___v8_to_istanbul_7.1.2.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
-        sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
-      };
-    }
-    {
-      name = "v8_to_istanbul___v8_to_istanbul_7.1.0.tgz";
-      path = fetchurl {
-        name = "v8_to_istanbul___v8_to_istanbul_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz";
-        sha1 = "5b95cef45c0f83217ec79f8fc7ee1c8b486aee07";
-      };
-    }
-    {
-      name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
-      path = fetchurl {
-        name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
-        sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+        name = "v8_to_istanbul___v8_to_istanbul_7.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz";
+        sha1 = "30898d1a7fa0c84d225a2c1434fb958f290883c1";
       };
     }
     {
@@ -5690,27 +4730,11 @@
       };
     }
     {
-      name = "whatwg_url___whatwg_url_8.4.0.tgz";
+      name = "whatwg_url___whatwg_url_8.6.0.tgz";
       path = fetchurl {
-        name = "whatwg_url___whatwg_url_8.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz";
-        sha1 = "50fb9615b05469591d2b2bd6dfaed2942ed72837";
-      };
-    }
-    {
-      name = "which_module___which_module_2.0.0.tgz";
-      path = fetchurl {
-        name = "which_module___which_module_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
-      };
-    }
-    {
-      name = "which___which_1.3.1.tgz";
-      path = fetchurl {
-        name = "which___which_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
-        sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+        name = "whatwg_url___whatwg_url_8.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.6.0.tgz";
+        sha1 = "27c0205a4902084b872aecb97cf0f2a7a3011f4c";
       };
     }
     {
@@ -5738,14 +4762,6 @@
       };
     }
     {
-      name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
-        sha1 = "e9393ba07102e6c91a3b221478f0257cd2856e53";
-      };
-    }
-    {
       name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
       path = fetchurl {
         name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
@@ -5770,11 +4786,11 @@
       };
     }
     {
-      name = "ws___ws_7.4.3.tgz";
+      name = "ws___ws_7.4.6.tgz";
       path = fetchurl {
-        name = "ws___ws_7.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz";
-        sha1 = "1f9643de34a543b8edb124bdcbc457ae55a6e5cd";
+        name = "ws___ws_7.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz";
+        sha1 = "5654ca8ecdeee47c33a9a4bf6d28e2be2980377c";
       };
     }
     {
@@ -5818,27 +4834,19 @@
       };
     }
     {
-      name = "xmldom___xmldom_0.1.31.tgz";
+      name = "xmldom___xmldom_0.5.0.tgz";
       path = fetchurl {
-        name = "xmldom___xmldom_0.1.31.tgz";
-        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz";
-        sha1 = "b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff";
+        name = "xmldom___xmldom_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz";
+        sha1 = "193cb96b84aa3486127ea6272c4596354cb4962e";
       };
     }
     {
-      name = "y18n___y18n_4.0.1.tgz";
+      name = "y18n___y18n_5.0.8.tgz";
       path = fetchurl {
-        name = "y18n___y18n_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz";
-        sha1 = "8db2b83c31c5d75099bb890b23f3094891e247d4";
-      };
-    }
-    {
-      name = "y18n___y18n_5.0.5.tgz";
-      path = fetchurl {
-        name = "y18n___y18n_5.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz";
-        sha1 = "8769ec08d03b1ea2df2500acef561743bbb9ab18";
+        name = "y18n___y18n_5.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz";
+        sha1 = "7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55";
       };
     }
     {
@@ -5850,27 +4858,11 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_18.1.3.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_18.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
-        sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_20.2.4.tgz";
+      name = "yargs_parser___yargs_parser_20.2.7.tgz";
       path = fetchurl {
-        name = "yargs_parser___yargs_parser_20.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz";
-        sha1 = "b42890f14566796f85ae8e3a25290d205f154a54";
-      };
-    }
-    {
-      name = "yargs___yargs_15.4.1.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_15.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz";
-        sha1 = "0d87a16de01aee9d8bec2bfbf74f67851730f4f8";
+        name = "yargs_parser___yargs_parser_20.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz";
+        sha1 = "61df85c113edfb5a7a4e36eb8aa60ef423cbc90a";
       };
     }
     {
@@ -5882,6 +4874,14 @@
       };
     }
     {
+      name = "yargs___yargs_17.0.1.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_17.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz";
+        sha1 = "6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb";
+      };
+    }
+    {
       name = "yauzl___yauzl_2.10.0.tgz";
       path = fetchurl {
         name = "yauzl___yauzl_2.10.0.tgz";
@@ -5890,11 +4890,11 @@
       };
     }
     {
-      name = "zip_stream___zip_stream_4.0.4.tgz";
+      name = "zip_stream___zip_stream_4.1.0.tgz";
       path = fetchurl {
-        name = "zip_stream___zip_stream_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.0.4.tgz";
-        sha1 = "3a8f100b73afaa7d1ae9338d910b321dec77ff3a";
+        name = "zip_stream___zip_stream_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz";
+        sha1 = "51dd326571544e36aa3f756430b313576dc8fc79";
       };
     }
   ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
index 96355789eb39..4f8d813f0557 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon, libxshmfence
 , libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
-, alsaLib, dbus, cups, libexif, ffmpeg_3, systemd
+, alsa-lib, dbus, cups, libexif, ffmpeg, systemd
 , freetype, fontconfig, libXft, libXrender, libxcb, expat
 , libuuid
 , libxml2
@@ -18,11 +18,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "3.7.2218.45-1";
+  version = "3.8.2259.37-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "11q3whw01nbwvzccgn55b4lkr7dzlql961406r6by8xqvf8zgmp4";
+    sha256 = "1lpia3jm6l2yvbhrw5khws28n653w22bszzd44y6zv6zwbw7y127";
   };
 
   unpackPhase = ''
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon libxshmfence
     libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
-    atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg_3 systemd
+    atk at-spi2-atk at-spi2-core alsa-lib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd
     freetype fontconfig libXrender libuuid expat glib nss nspr
     libxml2 pango cairo gnome2.GConf
     libdrm mesa
@@ -47,6 +47,7 @@ in stdenv.mkDerivation rec {
     + ":$out/opt/${vivaldiName}/lib";
 
   buildPhase = ''
+    runHook preBuild
     echo "Patching Vivaldi binaries"
     patchelf \
       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -56,12 +57,14 @@ in stdenv.mkDerivation rec {
     ln -s ${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so opt/${vivaldiName}/libffmpeg.so.''${version%\.*\.*}
   '' + ''
     echo "Finished patching Vivaldi binaries"
+    runHook postBuild
   '';
 
   dontPatchELF = true;
   dontStrip    = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p "$out"
     cp -r opt "$out"
     mkdir "$out/bin"
@@ -84,6 +87,8 @@ in stdenv.mkDerivation rec {
       ${lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"}
   '' + lib.optionalString enableWidevine ''
     ln -sf ${vivaldi-widevine}/share/google/chrome/WidevineCdm $out/opt/${vivaldiName}/WidevineCdm
+  '' + ''
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
index 327fc5f31e2f..f9be7e9ec9aa 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
@@ -5,7 +5,7 @@
 
 # Runtime
 , xorg, zip, freetype, fontconfig, glibc, libffi
-, dbus, dbus-glib, gtk2, alsaLib, jack2, ffmpeg
+, dbus, dbus-glib, gtk2, alsa-lib, jack2, ffmpeg
 }:
 
 let
@@ -45,7 +45,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
+    alsa-lib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
     gnome2.GConf xorg.libXt
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/calls/default.nix b/nixpkgs/pkgs/applications/networking/calls/default.nix
index 8937404e91d3..52e1bc50601a 100644
--- a/nixpkgs/pkgs/applications/networking/calls/default.nix
+++ b/nixpkgs/pkgs/applications/networking/calls/default.nix
@@ -17,10 +17,11 @@
 , desktop-file-utils
 , appstream-glib
 , libpeas
+, libgdata
 , dbus
 , vala
 , wrapGAppsHook
-, xvfb_run
+, xvfb-run
 , gtk-doc
 , docbook-xsl-nons
 , docbook_xml_dtd_43
@@ -65,11 +66,12 @@ stdenv.mkDerivation rec {
     callaudiod
     gtk3
     libpeas
+    libgdata # required by some dependency transitively
   ];
 
   checkInputs = [
     dbus
-    xvfb_run
+    xvfb-run
   ];
 
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
diff --git a/nixpkgs/pkgs/applications/networking/cawbird/default.nix b/nixpkgs/pkgs/applications/networking/cawbird/default.nix
index 9cf0e715e0e6..517bd1e01cc5 100644
--- a/nixpkgs/pkgs/applications/networking/cawbird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cawbird/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , glib
 , gtk3
@@ -22,14 +23,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.2";
+  version = "1.4.1";
   pname = "cawbird";
 
   src = fetchFromGitHub {
     owner = "IBBoard";
     repo = "cawbird";
     rev = "v${version}";
-    sha256 = "1baw3h5wq2ib4bnphazq7n9c9wc94g0n6v4y5kg71n1dir0c3jkh";
+    sha256 = "0lmrgcj1ky1vhzynl36k6ba3ws089x4qdrnkjk3lbr334kicx9na";
   };
 
   nativeBuildInputs = [
@@ -69,11 +70,18 @@ stdenv.mkDerivation rec {
     patchShebangs data/meson_post_install.py
   '';
 
+  # supply Twitter API keys
+  # use default keys supplied by upstream, see https://github.com/IBBoard/cawbird/blob/master/README.md#preparation
+  mesonFlags = [
+    "-Dconsumer_key_base64=VmY5dG9yRFcyWk93MzJEZmhVdEk5Y3NMOA=="
+    "-Dconsumer_secret_base64=MThCRXIxbWRESDQ2Y0podzVtVU13SGUyVGlCRXhPb3BFRHhGYlB6ZkpybG5GdXZaSjI="
+  ];
+
   meta = with lib; {
     description = "Native GTK Twitter client for the Linux desktop";
     longDescription = "Cawbird is a modern, easy and fun Twitter client. Fork of the discontinued Corebird.";
     homepage = "https://ibboard.co.uk/cawbird/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with lib.maintainers; [ jonafato schmittlauch ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
index 8310d0584925..153f0a9cb990 100644
--- a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2021.3.3";
+  version = "2021.5.10";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "sha256-St2WBdy76OVFlYoY1RGwQj1WsUpPtsL7yX1MFwztKgs=";
+    sha256 = "sha256-v/ehqaI3TPhHACtxU8PRB9tGp8qrl6AN6buxOhJdevI=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
index 959b0a9877f3..78d6ea1a1e7e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.0.2";
+  version = "3.0.7";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-+LuBz58hTzi/hGwqX/0VMNYn/+SRYgnNefn3B3i7eEs=";
+    sha256 = "sha256-lZTSUNtmJZKONt0Bv42dBAc+87L14HaPxvPxhFe8nyc=";
   };
 
   vendorSha256 = "sha256-YjVAoMyGKMHLGEPeOOkCKCzeWFiUsXfJIKcw5GYoljg=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
index f1c98e0ed84c..05ba4187ce1f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -1,40 +1,74 @@
-{ lib, buildGoModule, fetchFromGitHub, packr }:
+{ lib, buildGoModule, fetchFromGitHub, packr, makeWrapper, installShellFiles, helm, kustomize }:
 
 buildGoModule rec {
   pname = "argocd";
-  version = "1.8.6";
-  commit = "28aea3dfdede00443b52cc584814d80e8f896200";
+  version = "2.0.1";
+  commit = "33eaf11e3abd8c761c726e815cbb4b6af7dcb030";
+  tag = "v${version}";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
-    rev = "v${version}";
-    sha256 = "sha256-kJ3/1owK5T+FbcvjmK2CO+i/KwmVZRSGzF6fCt8J9E8=";
+    rev = tag;
+    sha256 = "sha256-j/RdiMeaYxlmEvo5CKrGvkp25MrFsSYh+XNYWNcs0PE=";
   };
 
-  vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";
+  vendorSha256 = "sha256-8j5v99wOHM/SndJwpmGWiCFEyw4K513HEEbkPrD8C90=";
 
+  nativeBuildInputs = [ packr makeWrapper installShellFiles ];
+
+  # run packr to embed assets
+  preBuild = ''
+    packr
+  '';
+
+  buildFlagsArray =
+    let package_url = "github.com/argoproj/argo-cd/v2/common"; in
+    [
+      "-ldflags="
+      "-s -w"
+      "-X ${package_url}.version=${version}"
+      "-X ${package_url}.buildDate=unknown"
+      "-X ${package_url}.gitCommit=${commit}"
+      "-X ${package_url}.gitTag=${tag}"
+      "-X ${package_url}.gitTreeState=clean"
+    ];
+
+  # Test is disabled because ksonnet is missing from nixpkgs.
+  # Log: https://gist.github.com/superherointj/79cbdc869dfd44d28a10dc6746ecb3f9
   doCheck = false;
+  checkInputs = [
+    helm
+    kustomize
+    #ksonnet
+  ];
 
-  nativeBuildInputs = [ packr ];
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/argocd version --client | grep ${tag} > /dev/null
+    $out/bin/argocd-util version | grep ${tag} > /dev/null
+  '';
 
-  buildFlagsArray = ''
-     -ldflags=
-      -X github.com/argoproj/argo-cd/common.version=${version}
-      -X github.com/argoproj/argo-cd/common.buildDate=unknown
-      -X github.com/argoproj/argo-cd/common.gitCommit=${commit}
-      -X github.com/argoproj/argo-cd/common.gitTreeState=clean
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    install -Dm755 "$GOPATH/bin/cmd" -T $out/bin/argocd
+    runHook postInstall
   '';
 
-  # run packr to embed assets
-  preBuild = ''
-    packr
+  postInstall = ''
+    for appname in argocd-util argocd-server argocd-repo-server argocd-application-controller argocd-dex ; do
+      makeWrapper $out/bin/argocd $out/bin/$appname --set ARGOCD_BINARY_NAME $appname
+    done
+    installShellCompletion --cmd argocd \
+      --bash <($out/bin/argocd completion bash) \
+      --zsh <($out/bin/argocd completion zsh)
   '';
 
   meta = with lib; {
     description = "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes";
     homepage = "https://github.com/argoproj/argo";
     license = licenses.asl20;
-    maintainers = with maintainers; [ shahrukh330 ];
+    maintainers = with maintainers; [ shahrukh330 superherointj ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/click/default.nix b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix
index 1b76406f3344..2d76e0a26cb9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/click/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix
@@ -13,7 +13,7 @@ buildRustPackage rec {
     sha256 = "18mpzvvww2g6y2d3m8wcfajzdshagihn59k03xvcknd5d8zxagl3";
   };
 
-  cargoSha256 = "1f9yn4pvp58laylngdrfdkwygisnzkhkm7pndf6l33k3aqxhz5mm";
+  cargoSha256 = "16r5rwdbqyb5xrjc55i30xb20crpyjc75zn10xxjkicmvrpwydp6";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
index 02f5fc18d13a..3a9bb84938ca 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "cni";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16i59dhiq7pc7qs32cdk4yv4w9rjx4vvlw7fb6a6jhq6hxxjrgiw";
+    sha256 = "sha256-vxwNHIc3rFi7HKIEZrBcr7Oxs2iUtFYcfJK7aXDUv3k=";
   };
 
   goPackagePath = "github.com/containernetworking/cni";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix
new file mode 100644
index 000000000000..c14033382b55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix
@@ -0,0 +1,42 @@
+{
+  buildGoModule,
+  dnsmasq,
+  fetchFromGitHub,
+  lib,
+  nixosTests,
+  makeWrapper,
+}:
+
+buildGoModule rec {
+  pname = "cni-plugin-dnsname";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "containers";
+    repo = "dnsname";
+    rev = "v${version}";
+    sha256 = "sha256-hHkQOHDso92gXFCz40iQ7j2cHTEAMsaeW8MCJV2Otqo=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  postInstall = ''
+    wrapProgram $out/bin/dnsname --prefix PATH : ${lib.makeBinPath [ dnsmasq ]}
+  '';
+
+  vendorSha256 = null;
+  subPackages = [ "plugins/meta/dnsname" ];
+
+  doCheck = false; # NOTE: requires root privileges
+
+  passthru.tests = {
+    inherit (nixosTests) podman-dnsname;
+  };
+
+  meta = with lib; {
+    description = "DNS name resolution for containers";
+    homepage = "https://github.com/containers/dnsname";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mikroskeem ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
index a0593aab9891..d7cf0a933df7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
 
 let
-  version = "0.12.0";
+  version = "0.13.4";
 
   manifests = fetchzip {
     url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
-    sha256 = "sha256-8NgKr5uRVFBD1pARaD+vH9wPA5gUNltwMe0i0icED1c=";
+    sha256 = "sha256-+2JvJFzH1CjU/WQ7MLtqd5Adfi/ktX9lPq4IyxPcUD8=";
     stripRoot = false;
   };
 in
@@ -19,10 +19,10 @@ buildGoModule rec {
     owner = "fluxcd";
     repo = "flux2";
     rev = "v${version}";
-    sha256 = "sha256-idHMijca1lYQF4aW+RPyzRraLDNdVavMuj4TP6z90Oo=";
+    sha256 = "sha256-edyqxVl8oIwKp/eqFIbu+qn9zhYEnKJKwUbYZ7uxx0I=";
   };
 
-  vendorSha256 = "sha256-VrDO8y6omRKf3mPRAnRMZsSMwQHxQxShUa9HZ3dfCgM=";
+  vendorSha256 = "sha256-keIzuqaLppu6+XK3MFiU0en+SVxWVLpfkKEKOAVOz7k=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
new file mode 100644
index 000000000000..118e3e0fbe2c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildGoModule, fetchFromGitHub, docker }:
+
+buildGoModule rec {
+  pname = "fn";
+  version = "0.6.6";
+
+  src = fetchFromGitHub {
+    owner = "fnproject";
+    repo = "cli";
+    rev = version;
+    sha256 = "12s3xgrr11n8kfwsh8xpwcza1pr6b200dmc9h8igjy3s3cgg6sh7";
+  };
+
+  vendorSha256 = null;
+
+  subPackages = ["."];
+
+  buildInputs = [
+    docker
+  ];
+
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/fn
+  '';
+
+  meta = with lib; {
+    description = "Command-line tool for the fn project";
+    homepage = "https://fnproject.io";
+    license = licenses.asl20;
+    maintainers = [ maintainers.c4605 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix
index d9827039500c..88123e212a7e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0rwi0lkmhlq4i8fba3s9nd9ajhz2dqxzkgfp5i8y0rvbfmhmfd6b";
   };
 
-  cargoSha256 = "08sncz0jgsr2s821j3s4bk7d54xqwmnld7m57avavym1xqvsnbmy";
+  cargoSha256 = "1c058sjgd79ps8ahvxp25qyc3a6b2csb41vamrphv9ygai60mng6";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libsodium libarchive openssl zeromq ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
index 659e8ee41701..ef93b5cbdb07 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, jdk8, bash
-, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2
+, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2, fetchpatch, libtirpc
 }:
 
 let
@@ -38,8 +38,19 @@ let
         };
 
         nativeBuildInputs = [ maven cmake pkg-config ];
-        buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 ];
+        buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 libtirpc ];
+        NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+        NIX_LDFLAGS = [ "-ltirpc" ];
+
         # most of the hardcoded pathes are fixed in 2.9.x and 3.0.0, this list of patched files might be reduced when 2.7.x and 2.8.x will be deprecated
+
+        patches = [
+          (fetchpatch {
+            url = "https://patch-diff.githubusercontent.com/raw/apache/hadoop/pull/2886.patch";
+            sha256 = "1fim1d8va050za5i8a6slphmx015fzvhxkc2wi4rwg7kbj31sv0r";
+          })
+        ];
+
         postPatch = ''
           for file in hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/HardLink.java \
                       hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java \
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
index 501956ec9382..e861ef97be35 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.5.3";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-7xO07JDy6ujWlDF+5Xd3myRQ8ajTppCXz9fNe4yizVw=";
+    sha256 = "sha256-sVa7d69MuOjH1IhUMcXu79kEE0BKylLYx6yrOV/DExY=";
   };
-  vendorSha256 = "sha256-lpEoUgABtJczwShNdvD+zYAPDFTJqILSei2YY6mQ2mw=";
+  vendorSha256 = "sha256-PTAyRG6PZK+vaiheUd3oiu4iBGlnFjoCrci0CYbXjBk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
index ce6491bfba47..3f340b0e5228 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -30,6 +30,5 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.apsl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
index 661048a0c72c..81e0d07d0bba 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -33,6 +33,5 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.apsl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
index bcad2dc1ede7..4d7e170c2018 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "helm-secrets";
-  version = "3.6.1";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "jkroepke";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-RACETma0AaqaAfe0HWC541/i+knr+emMUauFWnkEuMI=";
+    hash = "sha256-AM+TLeSrXjn10DiQzXSqSwTqsc7CjTdnf6TWetden7g=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
index 3c6d66769060..6dacc008304f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.138.7";
+  version = "0.139.7";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-LFNsSd+S+mQiTk7bCnSD/Kp/D0Jefxo80eRsGkStBhs=";
+    sha256 = "sha256-mxnl5ALave2E61AqJAHlLHDLHOwA2wwjs3sb4WnG82A=";
   };
 
-  vendorSha256 = "sha256-WlV6moJymQ7VyZXXuViCNN1WP4NzBUszavxpKjQR8to=";
+  vendorSha256 = "sha256-tdsQx2AvbRC8l7YZFBg2xVqo0CLrOOwA9Nmuei+1ozw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
index ed828feefdae..595dd3c61ae8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helmsman";
-  version = "3.6.6";
+  version = "3.6.11";
 
   src = fetchFromGitHub {
     owner = "Praqma";
     repo = "helmsman";
     rev = "v${version}";
-    sha256 = "sha256-SGVch7mMtHi5GYFOrSss4dk29aRTQmBzkPYOetPdF88=";
+    sha256 = "sha256-9G/A6eADt9jP0CZC6MTZnQOmGOItJFI0zTfmC7HXSaI=";
   };
 
-  vendorSha256 = "sha256-mktq5Dnk1mBO2yy5SeMDxa/akXdO5i2WafMTGtH53H8=";
+  vendorSha256 = "sha256-icX8mOc8g+DhfAjD1pzneLWTXY17lXyAjdPOWAxkHwI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index d0afe6d2e436..f66e5f88e729 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -11,6 +11,13 @@ buildGoModule rec {
     sha256 = "1iqgpmljqx6rhmvsir2675waj78amcfiw08knwvlmavjgpxx2ysw";
   };
 
+  patches = [
+    # Use $HOME instead of the OS user database.
+    # Upstream PR: https://github.com/xetys/hetzner-kube/pull/346
+    # Unfortunately, the PR patch does not apply against release.
+    ./fix-home.patch
+  ];
+
   vendorSha256 = "1jh2f66ys6rmrrwrf5zqfprgcvziyq6l4z8bfqwxgf1ysnxx525h";
 
   doCheck = false;
@@ -25,6 +32,8 @@ buildGoModule rec {
   ];
 
   postInstall = ''
+    # Need a writable home, because it fails if unable to write config.
+    export HOME=$TMP
     $out/bin/hetzner-kube completion bash > hetzner-kube
     $out/bin/hetzner-kube completion zsh > _hetzner-kube
     installShellCompletion --zsh _hetzner-kube
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/fix-home.patch b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/fix-home.patch
new file mode 100644
index 000000000000..1b3bbae65f43
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/fix-home.patch
@@ -0,0 +1,53 @@
+diff --git a/cmd/cluster_kubeconfig.go b/cmd/cluster_kubeconfig.go
+index 54cc0c9..fab288a 100644
+--- a/cmd/cluster_kubeconfig.go
++++ b/cmd/cluster_kubeconfig.go
+@@ -6,7 +6,7 @@ import (
+ 	"io/ioutil"
+ 	"log"
+ 	"os"
+-	"os/user"
++	"path/filepath"
+ 	"strings"
+ 
+ 	"github.com/spf13/cobra"
+@@ -52,9 +52,8 @@ Example 4: hetzner-kube cluster kubeconfig -n my-cluster -p > my-conf.yaml # pri
+ 		} else {
+ 			fmt.Println("create file")
+ 
+-			usr, _ := user.Current()
+-			dir := usr.HomeDir
+-			path := fmt.Sprintf("%s/.kube", dir)
++			dir, _ := os.UserHomeDir()
++			path := filepath.Join(dir, ".kube")
+ 
+ 			if _, err := os.Stat(path); os.IsNotExist(err) {
+ 				os.MkdirAll(path, 0755)
+diff --git a/cmd/config.go b/cmd/config.go
+index ce0f3e5..a03c4ba 100644
+--- a/cmd/config.go
++++ b/cmd/config.go
+@@ -8,7 +8,6 @@ import (
+ 	"io/ioutil"
+ 	"log"
+ 	"os"
+-	"os/user"
+ 	"path/filepath"
+ 
+ 	"github.com/hetznercloud/hcloud-go/hcloud"
+@@ -28,13 +27,8 @@ type AppSSHClient struct {
+ // NewAppConfig creates a new AppConfig struct using the locally saved configuration file. If no local
+ // configuration file is found a new config will be created.
+ func NewAppConfig() AppConfig {
+-	usr, err := user.Current()
+-	if err != nil {
+-		return AppConfig{}
+-	}
+-	if usr.HomeDir != "" {
+-		DefaultConfigPath = filepath.Join(usr.HomeDir, ".hetzner-kube")
+-	}
++	dir, _ := os.UserHomeDir()
++	DefaultConfigPath = filepath.Join(dir, ".hetzner-kube")
+ 
+ 	appConf := AppConfig{
+ 		Context: context.Background(),
diff --git a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
index fdf9e97e7c96..85b6c623ae36 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.9.2";
+  version = "1.9.4";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-co/0ogI48FxrwVGwIuMqeFPFYtQF4/rv9V6b225TZc4=";
+    sha256 = "sha256-QyiGDk9lA9Y49VpRNRGNbir/ql/Vzp6wsZ1LGodGTks=";
   };
-  vendorSha256 = "sha256-yJHYyRPl1V1WNV0nJoR3bRTTGRTQaT/tG4TSQeL5U88=";
+  vendorSha256 = "sha256-N+7xajNkxuaC1yDTkPCg80bl2gRy2+Sa4Qq1A8zSGD8=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
index 4053a042bfac..878d7e1184f3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
@@ -44,14 +44,16 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.20.6+k3s1";     # k3s git tag
-  traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
-  k3sRootVersion = "0.8.1";       # taken from ./scripts/download at the above k3s tag
-  k3sCNIVersion = "0.8.6-k3s1";   # taken from ./scripts/version.sh at the above k3s tag
+  k3sVersion = "1.21.0+k3s1";     # k3s git tag
+  k3sCommit = "2705431d9645d128441c578309574cd262285ae6"; # k3s git commit at the above version
+
+  traefikChartVersion = "9.18.2"; # taken from ./scripts/download at TRAEFIK_VERSION
+  k3sRootVersion = "0.8.1";       # taken from ./scripts/download at ROOT_VERSION
+  k3sCNIVersion = "0.8.6-k3s1";   # taken from ./scripts/version.sh at VERSION_CNIPLUGINS
   # bundled into the k3s binary
   traefikChart = fetchurl {
-    url = "https://kubernetes-charts.storage.googleapis.com/traefik-${traefikChartVersion}.tgz";
-    sha256 = "1aqpzgjlvqhil0g3angz94zd4xbl4iq0qmpjcy5aq1xv9qciwdi9";
+    url = "https://helm.traefik.io/traefik/traefik-${traefikChartVersion}.tgz";
+    sha256 = "sha256-9d7p0ngyMN27u4OPgz7yI14Zj9y36t9o/HMX5wyDpUI=";
   };
   # so, k3s is a complicated thing to package
   # This derivation attempts to avoid including any random binaries from the
@@ -95,8 +97,7 @@ let
   k3sRepo = fetchgit {
     url = "https://github.com/k3s-io/k3s";
     rev = "v${k3sVersion}";
-    leaveDotGit = true; # ./scripts/version.sh depends on git
-    sha256 = "sha256-IIZotJKQ/+WNmfcEJU5wFtZBufWjUp4MeVCRk4tSjyQ=";
+    sha256 = "sha256-xsXxf2ZYrkpOHlSFqTsHwWF3kChUjxWRjyDR3Dhg2ho=";
   };
   # Stage 1 of the k3s build:
   # Let's talk about how k3s is structured.
@@ -134,9 +135,13 @@ let
     # those.
     patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
-    nativeBuildInputs = [ git pkg-config ];
+    nativeBuildInputs = [ pkg-config ];
     buildInputs = [ libseccomp ];
 
+    # Versioning info for build script
+    DRONE_TAG = "v${version}";
+    DRONE_COMMIT = k3sCommit;
+
     buildPhase = ''
       pushd go/src/${goPackagePath}
 
@@ -175,7 +180,7 @@ let
     # See the above comment in k3sBuildStage1
     patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
-    nativeBuildInputs = [ git pkg-config zstd ];
+    nativeBuildInputs = [ pkg-config zstd ];
     # These dependencies are embedded as compressed files in k3s at runtime.
     # Propagate them to avoid broken runtime references to libraries.
     propagatedBuildInputs = [ k3sPlugins k3sBuildStage1 runc ];
@@ -186,6 +191,9 @@ let
       else if stdenv.hostPlatform.system == "aarch64-linux" then "-arm64"
       else throw "k3s isn't being built for ${stdenv.hostPlatform.system} yet.";
 
+    DRONE_TAG = "v${version}";
+    DRONE_COMMIT = k3sCommit;
+
     # In order to build the thick k3s binary (which is what
     # ./scripts/package-cli does), we need to get all the binaries that script
     # expects in place.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
index ee16f923b788..8d515528a026 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.24.6";
+  version = "0.24.8";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "sha256-uqtjAvtsF+4cz3M60Xj9sCNotaoPzaeeTKnXQUB4CIo=";
+    sha256 = "sha256-6RGm2uiYvsdpWdhNwDTw4z1O6uNErkWTuyOiwKIvXOY=";
   };
 
   buildFlagsArray = ''
@@ -18,7 +18,7 @@ buildGoModule rec {
       -X github.com/derailed/k9s/cmd.commit=${src.rev}
   '';
 
-  vendorSha256 = "sha256-/4Aof09MYHPc4VJJV2EyB7T9zNFtYY4JeDGJi67FQic=";
+  vendorSha256 = "sha256-lzxGTubm+qQes5QKaamfmSkXs4qquHHjIhts8YmKlYI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
index 9b1a155a25b7..5566854a325f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
@@ -44,7 +44,7 @@ let
           homepage = "https://github.com/kubernetes/kops";
           changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases";
           license = licenses.asl20;
-          maintainers = with maintainers; [ offline zimbatm ];
+          maintainers = with maintainers; [ offline zimbatm diegolelis ];
           platforms = platforms.unix;
         };
       } // attrs';
@@ -53,19 +53,20 @@ rec {
 
   mkKops = generic;
 
-  kops_1_16 = mkKops {
-    version = "1.16.4";
-    sha256 = "0qi80hzd5wc8vn3y0wsckd7pq09xcshpzvcr7rl5zd4akxb0wl3f";
+  kops_1_18 = mkKops {
+    version = "1.18.2";
+    sha256 = "17na83j6sfhk69w9ssvicc0xd1904z952ad3zzbpha50lcy6nlhp";
   };
 
-  kops_1_17 = mkKops {
-    version = "1.17.2";
-    sha256 = "0fmrzjz163hda6sl1jkl7cmg8fw6mmqb9953048jnhmd3w428xlz";
+  kops_1_19 = mkKops rec {
+    version = "1.19.2";
+    sha256 = "15csxih1xy8myky37n5dyzp5mc31pc4bq9asaw6zz51mgw8ad5r9";
+    rev = "v${version}";
   };
 
-  kops_1_18 = mkKops rec {
-    version = "1.18.2";
-    sha256 = "17na83j6sfhk69w9ssvicc0xd1904z952ad3zzbpha50lcy6nlhp";
+  kops_1_20 = mkKops rec {
+    version = "1.20.1";
+    sha256 = "sha256-k6ODXbh7Bh+rBw6bjSNLxLY0fz7JLnrmJibnXz5qnSc=";
     rev = "v${version}";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
index 78cbaca80ab1..de4cdcce44f1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kube-capacity";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "robscott";
     repo = pname;
-    sha256 = "127583hmpj04y522wir76a39frm6zg9z7mb4ny5lxxjqhn0q0cd5";
+    sha256 = "sha256-IwlcxlzNNYWNANszTM+s6/SA1C2LXrydSTtAvniNKXE=";
   };
 
   vendorSha256 = "sha256-EgLWZs282IV1euCUCc5ucf267E2Z7GF9SgoImiGvuVM=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
index 76bd115a9b13..a466598f00df 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kube-score";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "zegl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TYsuSPWTiIlPscul/QO59+lt6sbjJdt7pJuJYO5R9Tc=";
+    sha256 = "sha256-O0RtlFkyo01kcxWSzrkhh7vvV76B7I5V19dSzaxvv4Y=";
   };
 
-  vendorSha256 = "sha256-ob7mNheyeTcDWml4gi1SD3Pq+oWtJeySIUg2ZrCj0y0=";
+  vendorSha256 = "sha256-qFS+N0tOf3zxqs1tN6Z1EnR3qLR1FfZNfJ21NoRXek0=";
 
   meta = with lib; {
     description = "Kubernetes object analysis with recommendations for improved reliability and security";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
index decb586045d7..88ba44b2e242 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "4.4.2";
+  version = "4.4.4";
 
   src = fetchFromGitHub {
     owner = "rancher";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-6BDetNPWyAVZOsnCWs90HljVpfUlAytFDPQ/SqPxwgg=";
+    sha256 = "sha256-pfyU25MASKQMwd49IbNyyEiz3gmSOBmLdWtIKhYU2wg=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
index 4fda7db9f198..7c04f6e9eb94 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,6 +1,6 @@
 { lib, buildGoPackage, fetchFromGitHub, ... }:
 
-let version = "0.18.0"; in
+let version = "0.20.0"; in
 
 buildGoPackage {
   pname = "kubecfg";
@@ -10,7 +10,7 @@ buildGoPackage {
     owner = "bitnami";
     repo = "kubecfg";
     rev = "v${version}";
-    sha256 = "sha256-TJbuJZDj9ZwEaN8LV/M30+5+IgN8EZCTTBBDB0OgdEE=";
+    sha256 = "sha256-7lBIqaozVBoiYYOTqAxq9h2N+Y3JFwLaunCykILOmPU=";
   };
 
   goPackagePath = "github.com/bitnami/kubecfg";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index 7cbe55585336..fa893f3fa7d4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "1.23.0";
+  version = "1.23.2";
 
   src = fetchFromGitHub {
     owner = "int128";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0n94nx17c6ln2nd6d9yr93vc251y1xphq1wj2vzs4j2l8dqfyjpn";
+    sha256 = "sha256-Vj7qk1x4d94GgthmHhWbQvsfnZE1UL3Bdk5zjAb3vWs=";
   };
 
   subPackages = ["."];
 
-  vendorSha256 = "1dvrk6z6k66wawgb50n8hbgdd8fly399mlbgnvxi671vfi7lkz09";
+  vendorSha256 = "sha256-JsBseRIbStsX44rLsGAERFUSWUuLcNycRDAcOMconnE=";
 
   # Rename the binary instead of symlinking to avoid conflict with the
   # Azure version of kubelogin
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix
new file mode 100644
index 000000000000..4876233cd29f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "kubeone";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "kubermatic";
+    repo = "kubeone";
+    rev = "v${version}";
+    sha256 = "1abm7735c4pjv31pfggkvia7br19zbhjpp2w0n5zckwrjm9hxns6";
+  };
+
+  vendorSha256 = "01rl4sd9prfw4ivx7dwrr9irjr0xryihp4fzpcjd2zg8f1ibkwsn";
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  postInstall = ''
+    installShellCompletion --cmd kubeone \
+      --bash <($out/bin/kubeone completion bash) \
+      --zsh <($out/bin/kubeone completion zsh)
+  '';
+
+  meta = {
+    description = "Automate cluster operations on all your cloud, on-prem, edge, and IoT environments.";
+    homepage = "https://kubeone.io/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ lblasc ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
index 12127e223a3d..60d5dec48a5a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kubernetes";
-  version = "1.20.5";
+  version = "1.21.1";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "sha256-RDaD7tlTtAucW8ido9FumKb5E9n6F9H8HwxQ9TPyOLk=";
+    sha256 = "sha256-gJjCw28SqU49kIiRH+MZgeYN4VBgKVEaRPr5A/2c5Pc=";
   };
 
   nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
index 88cacfea4f1a..8dcfbfc36b52 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "04dzfdzjwcwwaw9min322g30q0saxpq5kqzld4f22fmk820ki6gp";
   };
 
-  cargoSha256 = "17agwqx7nhzi124yq1s6zpqb227drrhp9c11r3jbicc08dz88bwg";
+  cargoSha256 = "133h6mkz9aylhligy16pfjzsl94xxj0rk2zjm08dhg0inj84z3yv";
   doCheck = false;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
index cf0c84514270..15670188f14e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-wzaNFM/4V2mWqhkqeT70ieQuhgNK79U2b7PhxKqn/X0=";
+    sha256 = "sha256-+9yOBrq34VCy1yAkSh1iHbgtckuz2FcHokH/Cb/Heus=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
index 7e6a66eea506..e0ced9e2a8f8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kubetail";
-  version = "1.6.12";
+  version = "1.6.13";
 
   src = fetchFromGitHub {
     owner = "johanhaleby";
     repo = "kubetail";
     rev = version;
-    sha256 = "0hayfd7yvdhd2klfmhvl04hfqk0nfsimjyg3kbq8c5dbgbpz05nd";
+    sha256 = "sha256-EkOewNInzEEEgMOffYoRaKwhgYuBXgHaCkVgWg2mIDE=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
index a4dac9dd6242..e6af0146ca5a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "lens";
-  version = "4.2.0";
+  version = "4.2.4";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.x86_64.AppImage";
-    sha256 = "0g60d1h2dn41qdzdnqavwknqynjqil7s8kcqy01h021r81rdpn2q";
+    sha256 = "0fzhv8brwwl1ihx6jqq4pi77489hr6f9hpppqq3n8d2imjsqgvlw";
     name="${pname}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
index 11b62f479c78..0dd6363d07e3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -22,5 +22,6 @@ buildGoModule {
     homepage = "https://linkerd.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih ];
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
index 897428a7577b..929c254a1bd2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , go-bindata
@@ -11,9 +12,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.19.0";
+  version = "1.20.0";
 
-  vendorSha256 = "sha256-WGW2uz3YJIUjLsYQ6rXNvgJGLrZSIkEEk07llLzMVXA=";
+  vendorSha256 = "sha256-ncgf2C4PZMoVMZIMDn9LwP2EDqg7T/WbUPRd/SqGGnU=";
 
   doCheck = false;
 
@@ -21,7 +22,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "sha256-F+nPSWX9gs/hvOR6g8MW4b+JW+w3ScDaaF/FLHbLspY=";
+    sha256 = "sha256-TnvbO8OLjnI5WGy3QR4OZbesOBat2VsL7ElCnj2Tkmk=";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/multus-cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/multus-cni/default.nix
new file mode 100644
index 000000000000..d44e0441d8fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/multus-cni/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "multus-cni";
+  version = "3.7.1";
+
+  src = fetchFromGitHub {
+    owner = "k8snetworkplumbingwg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04rn7ypd0cw2c33wqb9wqy1dp6ajvcp7rcv7zybffb1d40mdlds1";
+  };
+
+  buildFlagsArray = let
+    multus = "gopkg.in/intel/multus-cni.v3/pkg/multus";
+    commit = "f6298a3a294a79f9fbda0b8f175e521799d5f8d7";
+  in [
+    "-ldflags=-s -w -X '${multus}.version=v${version}' -X '${multus}.commit=${commit}'"
+  ];
+
+  preInstall = ''
+      mv $GOPATH/bin/cmd $GOPATH/bin/multus
+  '';
+
+  vendorSha256 = null;
+
+  # Some of the tests require accessing a k8s cluster
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Multus CNI is a container network interface (CNI) plugin for Kubernetes that enables attaching multiple network interfaces to pods. ";
+    homepage = "https://github.com/k8snetworkplumbingwg/multus-cni";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ onixie ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index 357424cdddf8..7be59ee1661c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.8.0";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-It/p2Hk4/fkYgHTPynf7p7zs4ajjo0Fv3yTzhrWUusE=";
+    sha256 = "sha256-mBoqyDfGho2e4RuFwkiU2R+zb38LzByWtH4pOhguueY=";
   };
 
-  vendorSha256 = "sha256-Vg6SHyQkeUvd2hT0JV32y+F0t/qb81MrgOFcr785a8M=";
+  vendorSha256 = "sha256-S3Gp7HkBIZNZ8rkp64XaUQUj1TggGwI9FMrVkyLCQWA=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
index 3fc06b0bc73a..0139cb2c8125 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
@@ -1,7 +1,7 @@
-{ pkgs ? import <nixpkgs> {} }:
+{ pkgs ? import <nixpkgs> { } }:
 
 pkgs.mkShell {
-  buildInputs = [
+  packages = [
     pkgs.poetry2nix.cli
     pkgs.pkg-config
     pkgs.libvirt
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix
index 82f508c63ee8..cf4a9cde526d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix
@@ -6,6 +6,6 @@
 
 callPackage ./generic.nix {
   inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
-  version = "0.12.10";
-  sha256 = "12hlzjkay7y1502nmfvq2qkhp9pq7vp4zxypawnh98qvxbzv149l";
+  version = "0.12.12";
+  sha256 = "0hz5fsqv8jh22zhs0r1yk0c4qf4sf11hmqg4db91kp2xrq72a0qg";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
index 99c43aeeee46..9e7341e55bf1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -6,6 +6,6 @@
 
 callPackage ./generic.nix {
   inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
-  version = "1.0.4";
-  sha256 = "0znaxz9mzbqb59p6rwa5h89m344m2ci39jsx8dfh1v5fc17r0fcq";
+  version = "1.0.6";
+  sha256 = "1nzaw4014bndxv042dkxdj492b21r5v5f06vav2kr1azk4m9sf07";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix
new file mode 100644
index 000000000000..9e2966856eb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix
@@ -0,0 +1,11 @@
+{ callPackage
+, buildGoPackage
+, nvidia_x11
+, nvidiaGpuSupport
+}:
+
+callPackage ./generic.nix {
+  inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
+  version = "1.1.0";
+  sha256 = "0sz6blyxyxi5iq170s9v4nndb1hpz603z5ps2cxkdkaafal39767";
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
index 6f97be468f57..d032577ce19e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "octant";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src =
     let
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
         x86_64-linux = "Linux-64bit";
         aarch64-linux = "Linux-arm64";
         x86_64-darwin = "macOS-64bit";
+        aarch64-darwin = "macOS-arm64";
       }.${system} or (throw "Unsupported system: ${system}");
       fetchsrc = version: sha256: fetchzip {
         url = "https://github.com/vmware-tanzu/octant/releases/download/v${version}/octant_${version}_${suffix}.tar.gz";
@@ -18,9 +19,10 @@ stdenv.mkDerivation rec {
       };
     in
     fetchsrc version {
-      x86_64-linux = "sha256-TKvUBof4TLcHr9hg6AOLjVd1NcAX9HHVuuABdFKRNQA=";
-      aarch64-linux = "sha256-BJb7h6kJZ3QhdlEqNHkiFp91uYLXzYHvKftxEAhjY38=";
-      x86_64-darwin = "sha256-Ig98IqLmlN9D4iXrP9SXYwTrQOvbtQ/tQW+uEmntm+I=";
+      x86_64-linux = "sha256-VFlZP5d6/YhzVIhveqMc4HfapBt0K/XjtqjCQNc514A=";
+      aarch64-linux = "sha256-RfdMfimmoHG4ixBtUVJ/V+mDhQ9aD+yeohkeUMUP8Zg=";
+      x86_64-darwin = "sha256-2Qgl3RdA4mMRTqR7o3Q86Zip5wtgvFp1vZn689FUtSI=";
+      aarch64-darwin = "sha256-+eZVg+B5YYf+XnDhNd6OU4+yFM9GtyiavcAr/EXh7XE=";
     };
 
   dontConfigure = true;
@@ -59,6 +61,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix
index 5917d9ce0335..8bc768347523 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "octant-desktop";
-  version = "0.19.0";
+  version = "0.20.0";
   name = "${pname}-${version}";
 
   inherit (stdenv.hostPlatform) system;
@@ -15,8 +15,8 @@ let
   src = fetchurl {
     url = "https://github.com/vmware-tanzu/octant/releases/download/v${version}/Octant-${version}.${suffix}";
     sha256 = {
-      x86_64-linux = "sha256-1XFb0zuyOy8XEUd9hoexItjq4assuWlWIzqw7pZxHx0=";
-      x86_64-darwin = "sha256-e3v5BFX7wnx4sAQrOq+dBIDVPJYzQZKKvKjSX+dis2U=";
+      x86_64-linux = "sha256-mPD5qa/IYsakjcoPnWVpkmhgkhnRK0qTGQ6hanzDt/Y=";
+      x86_64-darwin = "sha256-nxpwBRUeLSPqNEFjF8hKzRhA2ahqh/KyAitnSxYdyJ8=";
     }.${system};
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
index ff9ce9702272..5a4546b8cd8c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
@@ -2,26 +2,29 @@
 
 buildGoModule rec {
   pname = "starboard-octant-plugin";
-  version = "0.10.0";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3BifigdAFuOCrhJRv/w4k7pT4BTHfINuEkeG6zaI0v8=";
+    sha256 = "sha256-9vl068ZTw6Czf+cWQ0k1lU0pqh7P0YZgLguHkk3M918=";
   };
 
-  vendorSha256 = "sha256-1NTneOGU4R1xzR9hAI9MJWYuYTPgYtLa5vH1H5wyHcM=";
+  vendorSha256 = "sha256-HOvZPDVKZEoL91yyaJRuKThHirY77xlKOtLKARthxn8=";
 
-  buildFlagsArray = [ "-ldflags=" "-s" "-w" ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w")
+  '';
 
   meta = with lib; {
+    homepage = "https://github.com/aquasecurity/starboard-octant-plugin";
+    changelog = "https://github.com/aquasecurity/starboard-octant-plugin/releases/tag/v${version}";
     description = "Octant plugin for viewing Starboard security information";
     longDescription = ''
       This is an Octant plugin for Starboard which provides visibility into vulnerability assessment reports for
       Kubernetes workloads stored as custom security resources.
     '';
-    homepage = src.meta.homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
index 52c9c191218c..ec36d5f52acb 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pgo-client";
-  version = "4.6.2";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "CrunchyData";
     repo = "postgres-operator";
     rev = "v${version}";
-    sha256 = "sha256-zPFsLKbuVq2wMjFsqjBGiatPBwGR/X6q3mj8o5BE+r0=";
+    sha256 = "sha256-WuKLQWq/Zr/eDaUq/HbydHMdtlCWmjM858PLX7hYba4=";
   };
 
-  vendorSha256 = "sha256-DU1kc7YDQ+denj6tHVGt79s494aBFZ2KM7PVSn951KI=";
+  vendorSha256 = "sha256-m8b6Lh6it67A6cppdBDX4X0u7Kde4GQz9wln/TrHVwI=";
 
   subPackages = [ "cmd/pgo" ];
 
@@ -21,6 +21,5 @@ buildGoModule rec {
     changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.bryanasdev000 ];
-    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
index 89802f12be5e..67fde535f56a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
@@ -2,26 +2,25 @@
 
 buildGoModule rec {
   pname = "popeye";
-  version = "0.9.0";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "derailed";
     repo = "popeye";
-    sha256 = "1rslmcdjs53zvv0xaf00vxqsfc3jh2p584j3q6nfgrghc978xmpf";
+    sha256 = "sha256-GSH9q0hnyuGiJAdbFWKbaaYoHKl4e0SNmBkOvpn5a6s=";
   };
 
   buildFlagsArray = ''
     -ldflags=
       -s -w
       -X github.com/derailed/popeye/cmd.version=${version}
-      -X github.com/derailed/popeye/cmd.commit=022c3104b642aab6bdb287468fb79068a33e1b0d
-      -X github.com/derailed/popeye/cmd.date=2020-10-31T16:44:45Z
+      -X github.com/derailed/popeye/cmd.commit=${version}
   '';
 
-  vendorSha256 = "08195dnka7rs38py3kjii9zh9nifg2fnbi1wzjl0pc38i2bbrz0k";
+  vendorSha256 = "sha256-pK04vGL9Izv1aK8UA+/3lSt/SjLyckjnfSCrOalRj3c=";
 
-  doCheck = false;
+  doCheck = true;
 
   meta = with lib; {
     description = "A Kubernetes cluster resource sanitizer";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
index 3aa583f3ae39..86b48633c253 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -8,6 +8,7 @@
 , dmidecode
 , util-linux
 , bashInteractive
+, overrideEtc ? true
 }:
 
 let
@@ -64,6 +65,9 @@ buildGoPackage rec {
         --replace '"script"' '"${util-linux}/bin/script"'
 
     echo "${version}" > VERSION
+  '' + lib.optionalString overrideEtc ''
+    substituteInPlace agent/appconfig/constants_unix.go \
+      --replace '"/etc/amazon/ssm/"' '"${placeholder "out"}/etc/amazon/ssm/"'
   '';
 
   preBuild = ''
@@ -96,6 +100,20 @@ buildGoPackage rec {
     popd
   '';
 
+  # These templates retain their `.template` extensions on installation. The
+  # amazon-ssm-agent.json.template is required as default configuration when an
+  # amazon-ssm-agent.json isn't present. Here, we retain the template to show
+  # we're using the default configuration.
+
+  # seelog.xml isn't actually required to run, but it does ship as a template
+  # with debian packages, so it's here for reference. Future work in the nixos
+  # module could use this template and substitute a different log level.
+  postInstall = ''
+    mkdir -p $out/etc/amazon/ssm
+    cp go/src/${goPackagePath}/amazon-ssm-agent.json.template $out/etc/amazon/ssm/amazon-ssm-agent.json.template
+    cp go/src/${goPackagePath}/seelog_unix.xml $out/etc/amazon/ssm/seelog.xml.template
+  '';
+
   postFixup = ''
     wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin
   '';
diff --git a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
index 1418f40e216d..121611fd197d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
@@ -2,29 +2,40 @@
 
 buildGoModule rec {
   pname = "starboard";
-  version = "0.10.1";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-cDqZo0GTpvvkEiccP42u9X2ydHkSBuoD8Zfp+i+/qjo=";
+    sha256 = "sha256-SJogepww3IJt+NAkJ0G/lLgZ3rMWDTC+jHIrzzkzJGA=";
   };
 
-  vendorSha256 = "sha256-noK4fF9wCP1dYfDgmJVZehcF+eunzP+d9n1SiPO9UEU=";
+  vendorSha256 = "sha256-vNsYGlcVIj/cDijCFz8fG5Ht/s7koM62GV8zkOyA/fA=";
 
-  subPackages = [ "cmd/starboard" ];
+  # Don't build and check the integration tests
+  excludedPackages = "itest";
 
-  doCheck = false;
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X main.version=v${version}")
+  '';
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X main.version=v${version}"
-  ];
+  preCheck = ''
+    # Remove test that requires networking
+    rm pkg/plugin/aqua/client/client_integration_test.go
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/starboard --help
+    $out/bin/starboard version | grep "v${version}"
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
+    homepage = "https://github.com/aquasecurity/starboard";
+    changelog = "https://github.com/aquasecurity/starboard/releases/tag/v${version}";
     description = "Kubernetes-native security tool kit";
     longDescription = ''
       Starboard integrates security tools into the Kubernetes environment, so
@@ -35,7 +46,6 @@ buildGoModule rec {
       plug-in that make security reports available through familiar Kubernetes
       tools.
     '';
-    homepage = src.meta.homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
index 8e7731590aad..715f75ddc8a0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ckXvDB3TU9HAXowAAr/fRmX3mylVvPKW8I74R/vUaRY=";
+    sha256 = "sha256-aCgr56nXZCkG8k/ZGH2/cDOaqkznnyb6JLEcImqLH64=";
   };
 
   vendorSha256 = "sha256-vpm2y/CxRNWkz6+AOMmmZH5AjRQWAa6WD5Fnx5lqJYw=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index 9ab5b94251bd..979216b3ccd5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tektoncd-cli";
-  version = "0.17.2";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "tektoncd";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-7VG9OFt1yVt4st8EM1aiRqLCHwjSqib28GoamoJHHnM=";
+    sha256 = "sha256-vZxpfVMUl1EZwCuLlwmSKWrz86aTjWYlAIwO4b9ACqk=";
   };
 
   vendorSha256 = null;
@@ -24,6 +24,8 @@ buildGoModule rec {
   excludedPackages = "\\(third_party\\|cmd/docs\\)";
 
   preCheck = ''
+    # Some tests try to write to the home dir
+    export HOME="$TMPDIR"
     # Change the golden files to match our desired version
     sed -i "s/dev/${version}/" pkg/cmd/version/testdata/TestGetVersions-*.golden
   '';
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 313bd46a5194..54520b54c88e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "terraform-docs";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "terraform-docs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zQFPuHxfFvfwPVV0vPeA+A6XCw2Vt4tY4S2JBGcqaBQ=";
+    sha256 = "sha256-lx+yp0ybgZfmxvPM2BY2yq39qA6XebcKGrFd0AJa4yg=";
   };
 
-  vendorSha256 = "sha256-HO2E8i5A/2Xi7Pq+Mqb/2ogK1to8IvZjRuDXfzGvOXk=";
+  vendorSha256 = "sha256-qoZUgSSr7jsDVVPBUyfN5Uw4CnH9EnD/4tX+TCSNV0Q=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix
index f9a848669344..5d0fcb13f179 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terraform-provider-hcloud";
-  version = "1.22.0";
+  version = "1.26.0";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1h4kplrmpsbwa0nq3zyqa0cnvhv1s5avdrjyf1k1f2z6b6h4gynf";
+    sha256 = "04fa3qr65hg1ylq2933ark5q1za6k0a4ky36a6vrw2dcgpr4f9zs";
   };
 
-  vendorSha256 = "070p34g0ca55rmfdwf1l53yr8vyhmm5sb8hm8q036n066yp03yfs";
+  vendorSha256 = "15gcnwylxkgjriqscd4lagmwfssagq0ksrlb2svidw9aahmr7hw0";
 
   # Spends an awful time in other test folders, apparently tries to reach
   # opencensus and fails.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 33fba6e5a0fc..5c713b6b92ae 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -14,6 +14,15 @@
     "sha256": "1wdrjpd3l0xadsa3lqhsc9c57g8x2qkwb76q824sk8za1a7lapii",
     "version": "1.5.0-patched"
   },
+  "aiven": {
+    "owner": "aiven",
+    "provider-source-address": "registry.terraform.io/aiven/aiven",
+    "repo": "terraform-provider-aiven",
+    "rev": "v2.1.14",
+    "sha256": "14bfdhn3daygj1v3lm9b3791sx2cd5h0panchpp39h6vrccrpmmk",
+    "vendorSha256": "1j09bfbld03yxq0vv9ld0xmw5axbza2bwlz01i1gl1v9dprlnbkc",
+    "version": "2.1.14"
+  },
   "akamai": {
     "owner": "terraform-providers",
     "provider-source-address": "registry.terraform.io/akamai/akamai",
@@ -70,34 +79,37 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/aws",
     "repo": "terraform-provider-aws",
-    "rev": "v3.27.0",
-    "sha256": "0hn55mpg64bibf10m7x7wpfkipvlm8q4avgqcf0rf8rmprwvdlxd",
-    "vendorSha256": "0ph106bqsy988s20adf6gyc5jfvvy9zsj74lkbciwx7mvw5f514s",
-    "version": "3.27.0"
+    "rev": "v3.43.0",
+    "sha256": "05rv93y9hf0l869q6i581748rw4bahvsgggj0h7cwjnf7xap0sxj",
+    "vendorSha256": "1m6pkrpknslqnv60cz5739gp5nxc7xhga402wkl37gdagmadkmrk",
+    "version": "3.43.0"
   },
   "azuread": {
-    "owner": "terraform-providers",
+    "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azuread",
     "repo": "terraform-provider-azuread",
-    "rev": "v0.10.0",
-    "sha256": "0i9xrsqgh1024189hihm2nqrcy2pcyf1bwxnamwmwph5cas6hfb3",
-    "version": "0.10.0"
+    "rev": "v1.4.0",
+    "sha256": "13y0h8af37gfsjhccbfsnj6kqcn61lr1znmsxipjr5h9ka5lc209",
+    "vendorSha256": null,
+    "version": "1.4.0"
   },
   "azurerm": {
     "owner": "terraform-providers",
     "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
     "repo": "terraform-provider-azurerm",
-    "rev": "v2.13.0",
-    "sha256": "0aj19vy1flpb2233rxaypjcfimjr1wfqri1m3p15dy1r108q84r7",
-    "version": "2.13.0"
+    "rev": "v2.58.0",
+    "sha256": "1zy3q5d63pz2rdczcs9xnxzasb2jbzhyg8nbk2r252mdnhx6h9vh",
+    "vendorSha256": null,
+    "version": "2.58.0"
   },
   "azurestack": {
-    "owner": "terraform-providers",
+    "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurestack",
     "repo": "terraform-provider-azurestack",
-    "rev": "v0.9.0",
-    "sha256": "1msm7jwzry0vmas3l68h6p0migrsm6d18zpxcncv197m8xbvg324",
-    "version": "0.9.0"
+    "rev": "v0.10.0",
+    "sha256": "0lcwrp6n3l1nink06wq2nrirs6k3wwjmya1w06x14pvqqdj1d5c8",
+    "vendorSha256": null,
+    "version": "0.10.0"
   },
   "baiducloud": {
     "owner": "terraform-providers",
@@ -173,9 +185,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/cloudinit",
     "repo": "terraform-provider-cloudinit",
-    "rev": "v1.0.0",
-    "sha256": "0i926f4xkfydd2bxmim69xrvi9ymn1vrc66zl117axzsmy9200zx",
-    "version": "1.0.0"
+    "rev": "v2.2.0",
+    "sha256": "0yv52hz60whmqfwv2a6f9f1fpszcyzs78hhz3lq4imz9dv5bd29z",
+    "vendorSha256": null,
+    "version": "2.2.0"
   },
   "cloudscale": {
     "owner": "terraform-providers",
@@ -307,10 +320,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/external",
     "repo": "terraform-provider-external",
-    "rev": "v2.0.0",
-    "sha256": "16wciz08gicicsirij2ql0gy8dg0372jjsqmaigkl2n07mqz2b6a",
+    "rev": "v2.1.0",
+    "sha256": "0xc3mj0d4yrr1952c5ywrx19ny1k2475grka9v2w7szdy6p2rkk5",
     "vendorSha256": null,
-    "version": "2.0.0"
+    "version": "2.1.0"
   },
   "fastly": {
     "owner": "terraform-providers",
@@ -374,11 +387,13 @@
     "version": "3.47.0"
   },
   "grafana": {
-    "owner": "terraform-providers",
+    "owner": "grafana",
+    "provider-source-address": "registry.terraform.io/grafana/grafana",
     "repo": "terraform-provider-grafana",
-    "rev": "v1.5.0",
-    "sha256": "0zy3bqgpxymp2zygaxzllk1ysdankwxa1sy1djfgr4fs2nlggkwi",
-    "version": "1.5.0"
+    "rev": "v1.10.0",
+    "sha256": "0q3j30q1zxpdm0fmda3ivnl754q2p61xn9l30l0a3n0r5b25w8pk",
+    "vendorSha256": null,
+    "version": "1.10.0"
   },
   "gridscale": {
     "owner": "terraform-providers",
@@ -398,10 +413,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v2.0.2",
-    "sha256": "119zvlkwa7ygwsjxxdl7z8cqb0c4m6gy21356jnsasf4c3557rrb",
+    "rev": "v2.1.2",
+    "sha256": "1385r9wk6mpb9fj53bkq586v8lw2310dim3kgj3pkrc1fssvwj0z",
     "vendorSha256": null,
-    "version": "2.0.2"
+    "version": "2.1.2"
   },
   "heroku": {
     "owner": "terraform-providers",
@@ -433,6 +448,15 @@
     "sha256": "0jhx9rap4128j8sfkvpp8lbdmvdba0rkd3nxvy38wr3n18m7v1xg",
     "version": "1.2.0"
   },
+  "hydra": {
+    "owner": "DeterminateSystems",
+    "provider-source-address": "registry.terraform.io/DeterminateSystems/hydra",
+    "repo": "terraform-provider-hydra",
+    "rev": "v0.1.2",
+    "sha256": "1a1ah5pzng9ik8f18kqx87fdh1c5wqbn2bsbhqrzd1nb8fc5xl03",
+    "vendorSha256": null,
+    "version": "0.1.2"
+  },
   "ibm": {
     "owner": "IBM-Cloud",
     "provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
@@ -493,8 +517,18 @@
     "vendorSha256": "08wg16g4mvn6kl8xwn89195a826cb132ijvrgf32c6p7zp4lgmjd",
     "version": "0.2.12"
   },
+  "kafka-connect": {
+    "owner": "Mongey",
+    "provider-source-address": "registry.terraform.io/Mongey/kafka-connect",
+    "repo": "terraform-provider-kafka-connect",
+    "rev": "v0.2.3",
+    "sha256": "0fn03l58lkrlinvnxld2ba7z1gx95vxklbhh2z7930pih0vhr0sr",
+    "vendorSha256": "17fwqhxh22szdys97dxh069z6s8xr3y9i3pi5ckdcr462j1dr95w",
+    "version": "0.2.3"
+  },
   "keycloak": {
     "owner": "mrparkers",
+    "provider-source-address": "registry.terraform.io/mrparkers/keycloak",
     "repo": "terraform-provider-keycloak",
     "rev": "v3.0.0",
     "sha256": "1q9vzmj9c7mznv6al58d3rs5kk1fh28k1qccx46hcbk82z52da3a",
@@ -508,23 +542,32 @@
     "sha256": "1vcx612bz2p0rjsrx11j6fdc0f0q2jm5m3xl94wrpx9jjb7aczvc",
     "version": "1.0.0"
   },
+  "kubectl": {
+    "owner": "gavinbunney",
+    "provider-source-address": "registry.terraform.io/gavinbunney/kubectl",
+    "repo": "terraform-provider-kubectl",
+    "rev": "v1.10.0",
+    "sha256": "1w8g47dh77i7bhvxwysn7ldrcxl999sivxc7ws71ly5mnsljhhz0",
+    "vendorSha256": "1qrw2mg8ik2n6xlrnbcrgs9zhr9mwh1niv47kzhbp3mxvj5vdskk",
+    "version": "1.10.0"
+  },
   "kubernetes": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v2.0.2",
-    "sha256": "129aylw6hxa44syfnb0kkkihwvlaa6d1jnxrcbwkql6xxhn9zizf",
+    "rev": "v2.1.0",
+    "sha256": "02ygydgi3fa8z6qd04hgcilbbwns8f21agaqxly2pf9j23fzi37g",
     "vendorSha256": null,
-    "version": "2.0.2"
+    "version": "2.1.0"
   },
   "kubernetes-alpha": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes-alpha",
     "repo": "terraform-provider-kubernetes-alpha",
-    "rev": "v0.3.2",
-    "sha256": "0lgh42fvfwvj6cw8i7800k016ay4babqiz38q0y7apq4s7vs62sb",
+    "rev": "v0.3.3",
+    "sha256": "18i9yp0w6mmic95p6d6ah1hl3rmgkh264z1a05973yslpqhyx9yl",
     "vendorSha256": null,
-    "version": "0.3.2"
+    "version": "0.3.3"
   },
   "launchdarkly": {
     "owner": "terraform-providers",
@@ -551,10 +594,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/local",
     "repo": "terraform-provider-local",
-    "rev": "v2.0.0",
-    "sha256": "0c1mk63lh3qmj8pl80lyvvsgyg4gg7673abr8cfxrj45635h74z5",
+    "rev": "v2.1.0",
+    "sha256": "0lv1mvy4pkx0sc49xny4j0h30m64lvr3rnmqk85i5p0xhyn77gf2",
     "vendorSha256": null,
-    "version": "2.0.0"
+    "version": "2.1.0"
   },
   "logentries": {
     "owner": "terraform-providers",
@@ -584,6 +627,14 @@
     "sha256": "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3",
     "version": "0.3.0"
   },
+  "metal": {
+    "owner": "equinix",
+    "provider-source-address": "registry.terraform.io/equinix/metal",
+    "repo": "terraform-provider-metal",
+    "rev": "v2.1.0",
+    "sha256": "06i3rj6ig8hxbncdpa8b11v8pr3zhi90ppmf77jjin1114ikd172",
+    "version": "2.1.0"
+  },
   "metalcloud": {
     "owner": "terraform-providers",
     "repo": "terraform-provider-metalcloud",
@@ -658,10 +709,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/null",
     "repo": "terraform-provider-null",
-    "rev": "v3.0.0",
-    "sha256": "0r1kvsc96922i85hdvf1pk8aicxjr6bc69gc63qi21hrl0jpvr7r",
+    "rev": "v3.1.0",
+    "sha256": "0s6j2py9bb3knrn0f8aga8ypkxj6v5ns08k7zgw26h3wwdxwyd12",
     "vendorSha256": null,
-    "version": "3.0.0"
+    "version": "3.1.0"
   },
   "nutanix": {
     "owner": "terraform-providers",
@@ -835,10 +886,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/random",
     "repo": "terraform-provider-random",
-    "rev": "v3.0.0",
-    "sha256": "00dkpcri9ckp0kxwgh3p8175cyd44m8z13cb013pm4mrr61n4wq9",
+    "rev": "v3.1.0",
+    "sha256": "1677mia6bbydqa8w50f1y85rynpv9lhg9ar5s6japsr5g78lrcqf",
     "vendorSha256": null,
-    "version": "3.0.0"
+    "version": "3.1.0"
   },
   "rightscale": {
     "owner": "terraform-providers",
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index be331156eed5..66185b2cc3d9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -49,7 +49,6 @@ let
           babariviere
           kalbasit
           marsam
-          peterhoeg
           timstott
           zimbatm
         ];
@@ -137,8 +136,8 @@ let
   ];
 in rec {
   terraform_0_12 = pluggable (generic {
-    version = "0.12.30";
-    sha256 = "0mv2nsy2ygb1kgkw98xckihcdqxpzhdmks5p2gi2l7wb7lx51yz2";
+    version = "0.12.31";
+    sha256 = "03p698xdbk5gj0f9v8v1fpd74zng3948dyy4f2hv7zgks9hid7fg";
     patches = [
         ./provider-path.patch
         (fetchpatch {
@@ -150,24 +149,32 @@ in rec {
   });
 
   terraform_0_13 = pluggable (generic {
-    version = "0.13.6";
-    sha256 = "04vas8i894ssfhncdvljdvmvj2qzfrcs20zcv71l1wmnnv9ibs6l";
+    version = "0.13.7";
+    sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
 
   terraform_0_14 = pluggable (generic {
-    version = "0.14.10";
-    sha256 = "05vfb8hzma3qxq4w1h25mmgv96g90if214zlar0sm9fq8zsvb1yw";
+    version = "0.14.11";
+    sha256 = "1yi1jj3n61g1kn8klw6l78shd23q79llb7qqwigqrx3ki2mp279j";
     vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
 
   terraform_0_15 = pluggable (generic {
-    version = "0.15.0";
-    sha256 = "0d7hai57x6qczacdnzzvs3766180n6grmq0a7rlw5jp3zgzp8bmr";
-    vendorSha256 = "1l67kkrk8jw7v1rqpwj6n0l7lvmfgf1ir430j1n96459s1dzf0cn";
+    version = "0.15.5";
+    sha256 = "18f4a6l24s3cym7gk40agxikd90i56q84wziskw1spy9rgv2yx6d";
+    vendorSha256 = "12hrpxay6k3kz89ihyhl91c4lw4wp821ppa245w9977fq09fhnx0";
+    patches = [ ./provider-path-0_15.patch ];
+    passthru = { inherit plugins; };
+  });
+
+  terraform_1_0_0 = pluggable (generic {
+    version = "1.0.0";
+    sha256 = "sha256-ddcT/I2Qn1pKFyhXgh+CcD3fSv2steSNmjyyiS2SE/o=";
+    vendorSha256 = "sha256-oFvoEsDunJR4IULdGwS6nHBKWEgUehgT+nNM41W/GYo=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = { inherit plugins; };
   });
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch
index 1896d6018f05..318df9ab69a8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch
@@ -1,6 +1,6 @@
-diff -Naur terraform.old/command/init.go terraform.new/command/init.go
---- terraform.old/command/init.go
-+++ terraform.new/command/init.go
+diff -Naur terraform.old/internal/command/init.go terraform.new/internal/command/init.go
+--- terraform.old/internal/command/init.go
++++ terraform.new/internal/command/init.go
 @@ -3,6 +3,7 @@
  import (
  	"context"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
index 0d726e5cfc58..2c3deff9f15e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.29.0";
+  version = "0.29.9";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ubft+R2nBUNRx3SfksORxBbKY/mSvY+tKkz1UcGXyjw=";
+    sha256 = "sha256-xgoKxA8lc72yhFVHeFkbF5j5/vGAd9TTaJ/aDEYL8Wg=";
   };
 
   vendorSha256 = "sha256-qlSCQtiGHmlk3DyETMoQbbSYhuUSZTsvAnBKuDJI8x8=";
@@ -32,6 +32,6 @@ buildGoModule rec {
     changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";
     description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
     license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg jk ];
+    maintainers = with maintainers; [ jk ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
index ccbe9d9a7ac0..d717bd42652b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/nixpkgs/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.18.10";
+  version = "0.20.5";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-SvvvHGR3UPyV61MaoFB68SaZKUT3ItYOPT1a7AddxlY=";
+    sha256 = "sha256-pUKKHrShED7yp5WSmHSbS+eiYs22Nm2/ouc2a8WYc38=";
   };
   vendorSha256 = null;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
index d21219f4386d..3675aba028c8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -1,20 +1,20 @@
-{ lib, buildGoModule, fetchFromGitHub, go-bindata }:
+{ lib, buildGoModule, fetchFromGitHub, go-bindata, installShellFiles }:
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.3.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WzKUVfc7oGMh0TamL5b6gsm/BAfSCZ6EB3Hg4Tg/3Hw=";
+    sha256 = "sha256-yeD7XtcB/2ph6cCnOcv0yFQqvAMPDLXMrUWWkgmBUaA=";
   };
 
   deleteVendor = true;
-  vendorSha256 = "sha256-VxKUYD92DssoSjWxR+1gZLq34vCVM/4U2ju5felLWzI=";
+  vendorSha256 = "sha256-xZGYPh3Yp3g22GraYfMESVpp7j5fOZASUEvN4YaDd1g=";
 
-  nativeBuildInputs = [ go-bindata ];
+  nativeBuildInputs = [ go-bindata installShellFiles ];
 
   # GIT_{COMMIT,DIRTY} filled in blank to prevent trying to run git and ending up blank anyway
   buildPhase = ''
@@ -23,9 +23,32 @@ buildGoModule rec {
     runHook postBuild
   '';
 
+  doCheck = false;
+
   installPhase = ''
     runHook preInstall
+
+    local INSTALL="$out/bin/waypoint"
     install -D waypoint $out/bin/waypoint
+
+    # waypoint's completion install command alters your <something>rc files
+    # below is the equivalent of what it injects
+
+    # Write to a file as it doesn't like EOF within <()
+    cat > waypoint.fish <<EOF
+    function __complete_waypoint
+      set -lx COMP_LINE (commandline -cp)
+      test -z (commandline -ct)
+      and set COMP_LINE "$COMP_LINE "
+      $INSTALL
+    end
+    complete -f -c waypoint -a "(__complete_waypoint)"
+    EOF
+    installShellCompletion --cmd waypoint \
+      --bash <(echo "complete -C $INSTALL waypoint") \
+      --fish <(cat waypoint.fish) \
+      --zsh <(echo "complete -o nospace -C $INSTALL waypoint")
+
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/applications/networking/davmail/default.nix b/nixpkgs/pkgs/applications/networking/davmail/default.nix
index 008592778aa2..4adc508392af 100644
--- a/nixpkgs/pkgs/applications/networking/davmail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/davmail/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "davmail";
-  version = "5.4.0";
+  version = "5.5.1";
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-3135.zip";
-    sha256 = "05n2j5canh046744arvni6yfdsandvjkld93w3p7rg116jrh19gq";
+    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-3299.zip";
+    sha256 = "sha256-NN/TUOcUIifNzrJnZmtYhs6UVktjlfoOYJjYaMEQpI4=";
   };
 
   sourceRoot = ".";
@@ -13,11 +13,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper unzip ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/davmail
     cp -vR ./* $out/share/davmail
     makeWrapper $out/share/davmail/davmail $out/bin/davmail \
       --prefix PATH : ${jre}/bin \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk2 libXtst ]}
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -25,6 +27,6 @@ stdenv.mkDerivation rec {
     description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
     maintainers = [ maintainers.hinton ];
     platforms = platforms.all;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
index cac662c9b6b9..a17f3d2e40da 100644
--- a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.8.1";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-x002p7wPKbcmr4uE04mgKBagHQV/maEo99Y2Jr7xgK4=";
+    sha256 = "sha256-9lIjQaMYy0FGMkR29Es3BMIAcn+jQYudyFJHwezlXKM=";
   };
 
-  vendorSha256 = "sha256-lR5+xVi/ROOFoRWyK0h/8uiSP/joQ9Zr9kMaQ+sWNhM=";
+  vendorSha256 = "sha256-thvbqDhLdY+g/byFHJ9Tdiw8WYRccu4X1Rb0pdhE34E=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/dropbox/cli.nix b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
index 57b39383e97d..f602bab27e8a 100644
--- a/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
+++ b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
@@ -5,7 +5,7 @@
 , python3
 , dropbox
 , gtk3
-, gnome3
+, gnome
 , gdk-pixbuf
 , gobject-introspection
 }:
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
   buildInputs = [
     python3
     gtk3
-    gnome3.nautilus
+    gnome.nautilus
   ];
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
index 51f62529e9c9..afddb6be875e 100644
--- a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -12,7 +12,7 @@ buildRustPackage rec {
     sha256 = "1fba0w2979dmc2wyggqx4fj52rrl1s2vpjk6mkj1811a848l1hdi";
   };
 
-  cargoSha256 = "04ryin24z3pfxjxy4smngy66xs7k85g6gdzsl77cij8ifb29im99";
+  cargoSha256 = "06qbagq4gvm5vk846lxskli02z9lqxsvis6ndq29bj0b9yyvdkay";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
index 65d463057416..66b1d2639d68 100644
--- a/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "dyndnsc";
-  version = "0.5.1";
+  version = "0.6.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    hash = "sha256-Sy6U0XhIQ9mPmznmWKqoyqE34vaE84fwlivouaF7Dd0=";
+    sha256 = "13078d29eea2f9a4ca01f05676c3309ead5e341dab047e0d51c46f23d4b7fbb4";
   };
 
   postPatch = ''
@@ -19,9 +19,10 @@ python3Packages.buildPythonApplication rec {
     dnspython
     netifaces
     requests
+    json-logging
     setuptools
   ];
-  checkInputs = with python3Packages; [ bottle pytestCheckHook ];
+  checkInputs = with python3Packages; [ bottle mock pytest-console-scripts pytestCheckHook ];
 
   disabledTests = [
     # dnswanip connects to an external server to discover the
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
index c9339601a4b3..4eb8da760bff 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkg-config, vala, gettext, python3
 , appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts
 , gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas
-, curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
+, curl, glib, gnome, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
 }:
 
 stdenv.mkDerivation rec {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     curl glib json-glib libnotify libsecret sqlite gumbo gtk3
-    libgee libpeas gnome3.libsoup librest webkitgtk gsettings-desktop-schemas
+    libgee libpeas gnome.libsoup librest webkitgtk gsettings-desktop-schemas
     gnome-online-accounts
   ] ++ (with gst_all_1; [
     gstreamer gst-plugins-base gst-plugins-good
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "A modern desktop application designed to complement existing web-based RSS accounts";
     homepage = "https://jangernert.github.io/FeedReader/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ edwtjo worldofpeace ];
+    maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
index 38bc05b1f868..22fadca3cb3e 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0a0g9km515kipqmz6c09aj3lgy3nkzqwgnp87fh8f2vr098fn144";
   };
 
-  cargoSha256 = "11dn1ixc7i29cv8kpqfkmikdqzr2v79vlyfxcvjwhgd0r34w4xhn";
+  cargoSha256 = "03g14npkisz159gibhfxj7l36vzm7cvg355hndzpxzvhf5r5yjqg";
 
   # TODO: Check if that's still needed
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
index ac7af8e53b37..f93b8ed50b75 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -20,21 +20,27 @@
 
 stdenv.mkDerivation rec {
   pname = "newsflash";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitLab {
     owner = "news-flash";
     repo = "news_flash_gtk";
     rev = version;
-    hash = "sha256-EInI5Unaz9m8/gJ7vAzJVyMynJGq0KZh12dNK8r1wnY=";
+    hash = "sha256-pskmvztKOwutXRHVnW5u68/0DAuV9Gb+Ovp2JbXiMYo=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-xrWZhjfYnO6M3LMTP6l3+oZOusvUWuRBDesIlsiEJ6s=";
+    hash = "sha256-qq8cZplt5YWUwsXUShMDhQm3RGH2kCEBk64x6bOa50E=";
   };
 
+  # https://github.com/CasualX/obfstr/blob/v0.2.4/build.rs#L5
+  # obfstr 0.2.4 fails to set RUSTC_BOOTSTRAP in its build script because cargo
+  # build scripts are forbidden from setting RUSTC_BOOTSTRAP since rustc 1.52.0
+  # https://github.com/rust-lang/rust/blob/1.52.0/RELEASES.md#compatibility-notes
+  RUSTC_BOOTSTRAP = 1;
+
   patches = [
     # Post install tries to generate an icon cache & update the
     # desktop database. The gtk setup hook drop-icon-theme-cache.sh
@@ -89,6 +95,6 @@ stdenv.mkDerivation rec {
     description = "A modern feed reader designed for the GNOME desktop";
     homepage = "https://gitlab.com/news-flash/news_flash_gtk";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/flent/default.nix b/nixpkgs/pkgs/applications/networking/flent/default.nix
index bcff9e4f8b74..9e76a73233cf 100644
--- a/nixpkgs/pkgs/applications/networking/flent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/flent/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonApplication, fetchPypi, matplotlib, procps, pyqt5, python
-, pythonPackages, qt5, sphinx, xvfb_run }:
+, pythonPackages, qt5, sphinx, xvfb-run }:
 
 buildPythonApplication rec {
   pname = "flent";
@@ -12,7 +12,7 @@ buildPythonApplication rec {
   buildInputs = [ sphinx ];
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
   propagatedBuildInputs = [ matplotlib procps pyqt5 ];
-  checkInputs = [ procps pythonPackages.mock pyqt5 xvfb_run ];
+  checkInputs = [ procps pythonPackages.mock pyqt5 xvfb-run ];
 
   checkPhase = ''
     cat >test-runner <<EOF
diff --git a/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix
index 3f2e3490955b..228c6b471509 100644
--- a/nixpkgs/pkgs/applications/networking/flexget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "3.1.110";
+  version = "3.1.127";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "e8642dcbbfe941e2d2def7bf2e28889082a78c1d041edb33dae180036832a96b";
+    sha256 = "25a973eb54f2f9ccd422d536b29038c570de3584b8174d993119e3c6b434cc54";
   };
 
   postPatch = ''
@@ -35,6 +35,7 @@ python3Packages.buildPythonApplication rec {
     flask-restful
     flask-restx
     flask
+    greenlet
     guessit
     html5lib
     jinja2
@@ -54,6 +55,7 @@ python3Packages.buildPythonApplication rec {
     sqlalchemy
     terminaltables
     zxcvbn
+    psutil
     # plugins
     transmission-rpc
   ];
diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
index f8e9fcc87b0b..df993625e6d1 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.53.0";
+  version = "3.53.1";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "sha256-MJXnYN9PVADttNqj3hshLElHk2Dy9FzE67clMMh85CA=";
+    sha256 = "sha256-ZWh08ursVGcscvQepeoUnFAZfFDeXWdIu0HXIr/D93k=";
   };
 
   # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
diff --git a/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
index a359bf3a7c0c..66692f96c669 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
@@ -1,33 +1,48 @@
-{ lib, stdenv, fetchFromGitHub, nix-update-script, pantheon, pkg-config, meson, ninja, python3, vala
-, gtk3, libgee, libsoup, libsecret, gobject-introspection, wrapGAppsHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, gobject-introspection
+, gtk3
+, libgee
+, libsecret
+, libsoup
+, meson
+, ninja
+, nix-update-script
+, pantheon
+, pkg-config
+, python3
+, vala
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "taxi";
-  version = "0.0.1";
+  version = "0.0.1-unstable=2020-09-03";
 
   src = fetchFromGitHub {
     owner = "Alecaddd";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "01c552w68576pnsyqbwy3hjhbww6vys3r3s0wxjdiscjqj1aawqg";
+    rev = "74aade67fd9ba9e5bc10c950ccd8d7e48adc2ea1";
+    sha256 = "sha256-S/FeKJxIdA30CpfFVrQsALdq7Gy4F4+P50Ky5tmqKvM=";
   };
 
   nativeBuildInputs = [
-    vala
     gobject-introspection
     meson
     ninja
     pkg-config
     python3
+    vala
     wrapGAppsHook
   ];
 
   buildInputs = [
-    pantheon.granite
-    libgee
     gtk3
+    libgee
     libsecret
     libsoup
+    pantheon.granite
   ];
 
   postPatch = ''
@@ -35,17 +50,15 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
-  };
-
   meta = with lib; {
+    homepage = "https://github.com/Alecaddd/taxi";
     description = "The FTP Client that drives you anywhere";
-    homepage    = "https://github.com/Alecaddd/taxi";
-    license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ worldofpeace ];
-    platforms   = platforms.linux;
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
+  };
+
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
index f206c645ae21..5f5594c05374 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/gui.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
@@ -24,7 +24,7 @@ in python.pkgs.buildPythonPackage rec {
   propagatedBuildInputs = with python.pkgs; [
     sentry-sdk psutil jsonschema # tox for check
     # Runtime dependencies
-    sip (pyqt5.override { withWebSockets = true; }) distro setuptools
+    sip_4 (pyqt5.override { withWebSockets = true; }) distro setuptools
   ];
 
   doCheck = false; # Failing
diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix
index b0d215c47bb4..47bf0eb106bf 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/server.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix
@@ -24,7 +24,8 @@ in python.pkgs.buildPythonPackage {
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "aiohttp==3.6.2" "aiohttp>=3.6.2"
+      --replace "aiohttp==3.6.2" "aiohttp>=3.6.2" \
+      --replace "py-cpuinfo==7.0.0" "py-cpuinfo>=8.0.0"
   '';
 
   propagatedBuildInputs = with python.pkgs; [
diff --git a/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index 72ff8bd8b4be..29ae860cdadf 100644
--- a/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -4,7 +4,7 @@
 
 buildDunePackage rec {
   pname = "google-drive-ocamlfuse";
-  version = "0.7.22";
+  version = "0.7.26";
 
   useDune2 = true;
 
@@ -14,7 +14,7 @@ buildDunePackage rec {
     owner = "astrada";
     repo = "google-drive-ocamlfuse";
     rev = "v${version}";
-    sha256 = "027j1r2iy8vnbqs8bv893f0909yk5312ki5p3zh2pdz6s865h750";
+    sha256 = "sha256-8s3DnpdYIVyJj5rtsof3WpLvX9wCrWU47dp4D6c986s=";
   };
 
   buildInputs = [ ocaml_extlib ocamlfuse gapi_ocaml ocaml_sqlite3 ];
diff --git a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
index 046ae42ebcb7..4d18f6a4f4a7 100644
--- a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
@@ -15,6 +15,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
+  CFLAGS = lib.optionals stdenv.isDarwin [
+    "-D_DARWIN_C_SOURCE"
+  ];
+
   postPatch = ''
     substituteInPlace config.mk \
       --replace curses ncurses \
diff --git a/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
index 63d0d0b2978b..64a237480c65 100644
--- a/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
+++ b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, stdenv, lib, fetchurl, rpmextract, autoPatchelfHook , libuuid
-, libXtst, libXfixes, glib, gst_all_1, alsaLib, freetype, fontconfig , libXext
+, libXtst, libXfixes, glib, gst_all_1, alsa-lib, freetype, fontconfig , libXext
 , libGL, libpng, libXScrnSaver, libxcb, xorg, libpulseaudio, libdrm
 }:
 mkDerivation rec {
@@ -16,7 +16,7 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    libuuid libXtst libXScrnSaver libXfixes alsaLib freetype fontconfig libXext
+    libuuid libXtst libXScrnSaver libXfixes alsa-lib freetype fontconfig libXext
     libGL libpng libxcb libpulseaudio libdrm
     glib  # For libgobject
     stdenv.cc.cc  # For libstdc++
diff --git a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
index 52d4ae07ce5e..d47560c4e874 100644
--- a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
+++ b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "hydroxide";
-  version = "0.2.17";
+  version = "0.2.18";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gNMLVh5ntVCxiIKLshRvYXi5dYLZ8qiZFwZxbNPVFTk=";
+    sha256 = "sha256-s8EmoVZUUeaKTaINXvKO5tSdPUS3MlhEucwnmTTC3Wk=";
   };
 
-  vendorSha256 = "sha256-f/1Vxuc87eQie/j1b14q/1lAAzRk+ZDkBaTmHtCy7go=";
+  vendorSha256 = "sha256-jkiTpDsJN628YKkFZcng9P05hmNUc3UeFsanLf+QtJY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix b/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
index 00f6aee09156..22a7d74e14d3 100644
--- a/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix
@@ -34,11 +34,11 @@
 in
 stdenv.mkDerivation rec {
   pname = "suricata";
-  version = "5.0.3";
+  version = "6.0.2";
 
   src = fetchurl {
     url = "https://www.openinfosecfoundation.org/download/${pname}-${version}.tar.gz";
-    sha256 = "1nv5aq5lpkpskkzw05hr2lshkzcs4zqj5kfv4qjlbwigmp6kwh9l";
+    sha256 = "sha256-XkZHoHyzG11tAEmXKkU3XBN96QipZKROLW0jH6OtS1I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
index 405304f74af5..7ee55c452990 100644
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "0ficl4i012gfv4mdbdclgvi6gyq338gw9gb6k58k1drw8c7qk6k5";
+    sha256 = "15gxxgg7nmfmswlbxhvcp6alq5k9wpvrm5cwyf1qfd7xsfli61sm";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix
index e3a8e682577a..03f0bf638180 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, zlib, openssl, libre, librem, pkg-config, gst_all_1
-, cairo, mpg123, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg_3
+, cairo, mpg123, alsa-lib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg
 , gsm, speex, portaudio, spandsp, libuuid, libvpx
 }:
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [zlib openssl libre librem cairo mpg123
-    alsaLib SDL libv4l celt libsndfile srtp ffmpeg_3 gsm speex portaudio spandsp libuuid
+    alsa-lib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid
     libvpx
   ] ++ (with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-bad gst-plugins-good ]);
   makeFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index b3cd9d8c140b..6e57e0e9423c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -32,7 +32,7 @@
 , libXft
 , libXcomposite
 , libXScrnSaver
-, alsaLib
+, alsa-lib
 , pulseaudio
 , makeWrapper
 , xdg-utils
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
         libXft
         libXcomposite
         libXScrnSaver
-        alsaLib
+        alsa-lib
         pulseaudio
       ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
index 31896f20184f..abcdf617352b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
@@ -1,5 +1,5 @@
 { lib, buildGoPackage, fetchFromGitHub, pkg-config,
-  cairo, gdk-pixbuf, glib, gnome3, wrapGAppsHook, gtk3 }:
+  cairo, gdk-pixbuf, glib, gnome, wrapGAppsHook, gtk3 }:
 
 buildGoPackage rec {
   pname = "coyim";
@@ -16,7 +16,7 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
 
-  buildInputs = [ glib cairo gdk-pixbuf gtk3 gnome3.adwaita-icon-theme ];
+  buildInputs = [ glib cairo gdk-pixbuf gtk3 gnome.adwaita-icon-theme ];
 
   meta = with lib; {
     description = "a safe and secure chat client";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
new file mode 100644
index 000000000000..e7263b1d1617
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, python3
+, fetchFromGitHub
+, wrapGAppsHook
+, gobject-introspection
+, libnotify
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "deltachat-cursed";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "adbenitez";
+    repo = "deltachat-cursed";
+    rev = "v${version}";
+    sha256 = "0kbb7lh17dbkd85mcqf438qwk5masz2fxsy8ljdh23kis55nksh8";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    libnotify
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    deltachat
+    pygobject3
+    urwid-readline
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  doCheck = false; # no tests implemented
+
+  meta = with lib; {
+    description = "Lightweight Delta Chat client";
+    homepage = "https://github.com/adbenitez/deltachat-cursed";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
index 29a69b401920..d4332c0265c5 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , vala, cmake, ninja, wrapGAppsHook, pkg-config, gettext
-, gobject-introspection, gnome3, glib, gdk-pixbuf, gtk3, glib-networking
+, gobject-introspection, gnome, glib, gdk-pixbuf, gtk3, glib-networking
 , xorg, libXdmcp, libxkbcommon
 , libnotify, libsoup, libgee
 , librsvg, libsignal-protocol-c
@@ -18,24 +18,15 @@
 
 stdenv.mkDerivation rec {
   pname = "dino";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "dino";
     repo = "dino";
     rev = "v${version}";
-    sha256 = "0wy1hb3kz3k4gqqwx308n37cqag2d017jwfz0b5s30nkx2pbwspw";
+    sha256 = "11m38syqzb1z92wmdaf45gryl6gjxwbcnk32j4p984ipqj2vdzd8";
   };
 
-  patches = [
-    # Fixes https://github.com/dino/dino/issues/1010 (double' is not a supported generic type argument)
-    (fetchpatch {
-      name = "dino-vala-boxing.patch";
-      url = "https://github.com/dino/dino/commit/9acb54df9254609f2fe4de83c9047d408412de28.patch";
-      sha256 = "1jz4r7d8b1ljwgq846wihp864b6gjdkgh6fnmxh13b2i10x52xsm";
-    })
-  ];
-
   nativeBuildInputs = [
     vala
     cmake
@@ -51,7 +42,7 @@ stdenv.mkDerivation rec {
     glib-networking
     glib
     libgee
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     sqlite
     gdk-pixbuf
     gtk3
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
index b649fd20d512..a8b2b02f0bfd 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
@@ -1,9 +1,9 @@
 { pname, version, src, binaryName, desktopName
 , autoPatchelfHook, makeDesktopItem, lib, stdenv, wrapGAppsHook
-, alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
+, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
 , freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
-, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
+, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence
 , mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu
 }:
 
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
   inherit pname version src;
 
   nativeBuildInputs = [
-    alsaLib
+    alsa-lib
     autoPatchelfHook
     cups
     libdrm
@@ -23,7 +23,8 @@ in stdenv.mkDerivation rec {
     libXScrnSaver
     libXtst
     libxcb
-    mesa.drivers
+    libxshmfence
+    mesa
     nss
     wrapGAppsHook
   ];
@@ -31,8 +32,8 @@ in stdenv.mkDerivation rec {
   dontWrapGApps = true;
 
   libPath = lib.makeLibraryPath [
-    libcxx systemd libpulseaudio
-    stdenv.cc.cc alsaLib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
+    libcxx systemd libpulseaudio libdrm mesa
+    stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype
     gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
     libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
     libXtst nspr nss libxcb pango systemd libXScrnSaver
@@ -50,9 +51,11 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/opt/${binaryName}/${binaryName} \
         "''${gappsWrapperArgs[@]}" \
         --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --prefix LD_LIBRARY_PATH : ${libPath}
+        --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName}
 
     ln -s $out/opt/${binaryName}/${binaryName} $out/bin/
+    # Without || true the install would fail on case-insensitive filesystems
+    ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${lib.strings.toLower binaryName} || true
     ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png
 
     ln -s "${desktopItem}/share/applications" $out/share/
@@ -75,7 +78,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://discordapp.com/";
     downloadPage = "https://discordapp.com/download";
     license = licenses.unfree;
-    maintainers = with maintainers; [ ldesgoui MP2E tadeokondrak ];
+    maintainers = with maintainers; [ ldesgoui MP2E ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
index fe75418ebe33..e486cd9de62a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -7,30 +7,30 @@ in {
     pname = "discord";
     binaryName = "Discord";
     desktopName = "Discord";
-    version = "0.0.14";
+    version = "0.0.15";
     src = fetchurl {
       url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-      sha256 = "1rq490fdl5pinhxk8lkfcfmfq7apj79jzf3m14yql1rc9gpilrf2";
+      sha256 = "0pn2qczim79hqk2limgh88fsn93sa8wvana74mpdk5n6x5afkvdd";
     };
   };
   ptb = callPackage ./base.nix rec {
     pname = "discord-ptb";
     binaryName = "DiscordPTB";
     desktopName = "Discord PTB";
-    version = "0.0.23";
+    version = "0.0.25";
     src = fetchurl {
       url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-      sha256 = "0vxz68vldrbmmw1alpwl7blfcy6byd6zg9m0851dm0p0ldyhsp5j";
+      sha256 = "082ygmsycicddpkv5s03vw3rjkrk4lgprq29z8b1hdjifvw93b21";
     };
   };
   canary = callPackage ./base.nix rec {
     pname = "discord-canary";
     binaryName = "DiscordCanary";
     desktopName = "Discord Canary";
-    version = "0.0.119";
+    version = "0.0.124";
     src = fetchurl {
       url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-      sha256 = "0bzrilag7mjfhr84l956xisbaz8mmkmqizg22f9gabgcv85vwzsi";
+      sha256 = "060ypr9rn5yl8iwh4v3ax1v6501yaq72sx50q47sm0wyxn7gpv91";
     };
   };
 }.${branch}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index e1f070eaa9a7..5293c55f1278 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "src/electron-main.js",
-  "version": "1.7.26",
+  "version": "1.7.30",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
@@ -12,6 +12,9 @@
   "license": "Apache-2.0",
   "files": [],
   "scripts": {
+    "i18n": "matrix-gen-i18n",
+    "prunei18n": "matrix-prune-i18n",
+    "diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
     "mkdirs": "mkdirp packages deploys",
     "fetch": "yarn run mkdirs && node scripts/fetch-package.js",
     "asar-webapp": "asar p webapp webapp.asar",
@@ -31,6 +34,7 @@
   },
   "dependencies": {
     "auto-launch": "^5.0.5",
+    "counterpart": "^0.18.6",
     "electron-store": "^6.0.1",
     "electron-window-state": "^5.0.3",
     "minimist": "^1.2.3",
@@ -43,11 +47,13 @@
     "electron-builder-squirrel-windows": "22.10.5",
     "electron-devtools-installer": "^3.1.1",
     "electron-notarize": "^1.0.0",
-    "eslint": "7.3.1",
-    "eslint-config-matrix-org": "^0.1.2",
+    "eslint": "7.18.0",
+    "eslint-config-google": "^0.14.0",
+    "eslint-plugin-matrix-org": "github:matrix-org/eslint-plugin-matrix-org#main",
     "find-npm-prefix": "^1.0.2",
     "fs-extra": "^8.1.0",
     "glob": "^7.1.6",
+    "matrix-web-i18n": "github:matrix-org/matrix-web-i18n",
     "mkdirp": "^1.0.3",
     "needle": "^2.5.0",
     "node-pre-gyp": "^0.15.0",
@@ -62,7 +68,7 @@
   },
   "build": {
     "appId": "im.riot.app",
-    "electronVersion": "12.0.2",
+    "electronVersion": "12.0.9",
     "files": [
       "package.json",
       {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
index 2c254f783727..258f5cb2dade 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
@@ -26,51 +26,51 @@
       };
     }
     {
-      name = "_babel_code_frame___code_frame_7.10.4.tgz";
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
-        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
-      name = "_babel_generator___generator_7.10.5.tgz";
+      name = "_babel_generator___generator_7.13.16.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz";
-        sha1 = "1b903554bc8c583ee8d25f1e8969732e6b829a69";
+        name = "_babel_generator___generator_7.13.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz";
+        sha1 = "0befc287031a201d84cdfc173b46b320ae472d14";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+        name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
-        sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
-        sha1 = "2c70576eaa3b5609b24cb99db2888cc3fc4251d1";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
       };
     }
     {
@@ -82,19 +82,19 @@
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_highlight___highlight_7.13.10.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_highlight___highlight_7.13.10.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz";
+        sha1 = "a8b2a66148f5b27d666b15d81774347a731d52d1";
       };
     }
     {
-      name = "_babel_parser___parser_7.10.5.tgz";
+      name = "_babel_parser___parser_7.13.16.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz";
-        sha1 = "e7c6bf5a7deff957cec9f04b551e2762909d826b";
+        name = "_babel_parser___parser_7.13.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz";
+        sha1 = "0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37";
       };
     }
     {
@@ -106,27 +106,27 @@
       };
     }
     {
-      name = "_babel_template___template_7.10.4.tgz";
+      name = "_babel_template___template_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
-        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.10.5.tgz";
+      name = "_babel_traverse___traverse_7.13.17.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz";
-        sha1 = "77ce464f5b258be265af618d8fddf0536f20b564";
+        name = "_babel_traverse___traverse_7.13.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz";
+        sha1 = "c85415e0c7d50ac053d758baec98b28b2ecfeea3";
       };
     }
     {
-      name = "_babel_types___types_7.10.5.tgz";
+      name = "_babel_types___types_7.13.17.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz";
-        sha1 = "d88ae7e2fde86bfbfe851d4d81afa70a997b5d15";
+        name = "_babel_types___types_7.13.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz";
+        sha1 = "48010a115c9fba7588b4437dd68c9469012b38b4";
       };
     }
     {
@@ -146,6 +146,14 @@
       };
     }
     {
+      name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+      path = fetchurl {
+        name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
+        sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
+      };
+    }
+    {
       name = "_iarna_cli___cli_1.2.0.tgz";
       path = fetchurl {
         name = "_iarna_cli___cli_1.2.0.tgz";
@@ -442,14 +450,6 @@
       };
     }
     {
-      name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-      path = fetchurl {
-        name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
-        sha1 = "1ee30d79544ca84d68d4b3cdb0af4f205663dd2d";
-      };
-    }
-    {
       name = "_types_fs_extra___fs_extra_9.0.9.tgz";
       path = fetchurl {
         name = "_types_fs_extra___fs_extra_9.0.9.tgz";
@@ -466,22 +466,6 @@
       };
     }
     {
-      name = "_types_json_schema___json_schema_7.0.5.tgz";
-      path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz";
-        sha1 = "dcce4430e64b443ba8945f0290fb564ad5bac6dd";
-      };
-    }
-    {
-      name = "_types_json5___json5_0.0.29.tgz";
-      path = fetchurl {
-        name = "_types_json5___json5_0.0.29.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
-        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
-      };
-    }
-    {
       name = "_types_minimatch___minimatch_3.0.4.tgz";
       path = fetchurl {
         name = "_types_minimatch___minimatch_3.0.4.tgz";
@@ -538,54 +522,6 @@
       };
     }
     {
-      name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.0.tgz";
-        sha1 = "0f91aa3c83d019591719e597fbdb73a59595a263";
-      };
-    }
-    {
-      name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.0.tgz";
-        sha1 = "0ee21f6c48b2b30c63211da23827725078d5169a";
-      };
-    }
-    {
-      name = "_typescript_eslint_parser___parser_3.7.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_parser___parser_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.7.0.tgz";
-        sha1 = "3e9cd9df9ea644536feb6e5acdb8279ecff96ce9";
-      };
-    }
-    {
-      name = "_typescript_eslint_types___types_3.7.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_types___types_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.7.0.tgz";
-        sha1 = "09897fab0cb95479c01166b10b2c03c224821077";
-      };
-    }
-    {
-      name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.0.tgz";
-        sha1 = "66872e6da120caa4b64e6b4ca5c8702afc74738d";
-      };
-    }
-    {
-      name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.0.tgz";
-        sha1 = "ac0417d382a136e4571a0b0dcfe52088cb628177";
-      };
-    }
-    {
       name = "JSONStream___JSONStream_1.3.5.tgz";
       path = fetchurl {
         name = "JSONStream___JSONStream_1.3.5.tgz";
@@ -602,19 +538,19 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
-        sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
       };
     }
     {
-      name = "acorn___acorn_7.3.1.tgz";
+      name = "acorn___acorn_7.4.1.tgz";
       path = fetchurl {
-        name = "acorn___acorn_7.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz";
-        sha1 = "85010754db53c3fbaf3b9ea3e083aa5c5d147ffd";
+        name = "acorn___acorn_7.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
+        sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
       };
     }
     {
@@ -658,14 +594,6 @@
       };
     }
     {
-      name = "ajv___ajv_6.10.2.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz";
-        sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
-      };
-    }
-    {
       name = "ajv___ajv_6.12.2.tgz";
       path = fetchurl {
         name = "ajv___ajv_6.12.2.tgz";
@@ -690,6 +618,22 @@
       };
     }
     {
+      name = "ajv___ajv_6.10.2.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz";
+        sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
+      };
+    }
+    {
+      name = "ajv___ajv_8.5.0.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_8.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz";
+        sha1 = "695528274bcb5afc865446aa275484049a18ae4b";
+      };
+    }
+    {
       name = "ansi_align___ansi_align_2.0.0.tgz";
       path = fetchurl {
         name = "ansi_align___ansi_align_2.0.0.tgz";
@@ -714,14 +658,6 @@
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
-      path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
-        sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
-      };
-    }
-    {
       name = "ansi_regex___ansi_regex_2.1.1.tgz";
       path = fetchurl {
         name = "ansi_regex___ansi_regex_2.1.1.tgz";
@@ -882,30 +818,6 @@
       };
     }
     {
-      name = "array_includes___array_includes_3.1.1.tgz";
-      path = fetchurl {
-        name = "array_includes___array_includes_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
-        sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
-      };
-    }
-    {
-      name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
-      path = fetchurl {
-        name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
-        sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
-      };
-    }
-    {
-      name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
-      path = fetchurl {
-        name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz";
-        sha1 = "1c13f84a178566042dd63de4414440db9222e443";
-      };
-    }
-    {
       name = "asap___asap_2.0.6.tgz";
       path = fetchurl {
         name = "asap___asap_2.0.6.tgz";
@@ -946,11 +858,11 @@
       };
     }
     {
-      name = "astral_regex___astral_regex_1.0.0.tgz";
+      name = "astral_regex___astral_regex_2.0.0.tgz";
       path = fetchurl {
-        name = "astral_regex___astral_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
       };
     }
     {
@@ -1026,14 +938,6 @@
       };
     }
     {
-      name = "babel_eslint___babel_eslint_10.1.0.tgz";
-      path = fetchurl {
-        name = "babel_eslint___babel_eslint_10.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz";
-        sha1 = "6968e568a910b78fb3779cdd8b6ac2f479943232";
-      };
-    }
-    {
       name = "balanced_match___balanced_match_1.0.0.tgz";
       path = fetchurl {
         name = "balanced_match___balanced_match_1.0.0.tgz";
@@ -1322,14 +1226,6 @@
       };
     }
     {
-      name = "chardet___chardet_0.7.0.tgz";
-      path = fetchurl {
-        name = "chardet___chardet_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
-        sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
-      };
-    }
-    {
       name = "chownr___chownr_1.1.4.tgz";
       path = fetchurl {
         name = "chownr___chownr_1.1.4.tgz";
@@ -1402,14 +1298,6 @@
       };
     }
     {
-      name = "cli_cursor___cli_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
-        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
-      };
-    }
-    {
       name = "cli_table3___cli_table3_0.5.1.tgz";
       path = fetchurl {
         name = "cli_table3___cli_table3_0.5.1.tgz";
@@ -1426,14 +1314,6 @@
       };
     }
     {
-      name = "cli_width___cli_width_3.0.0.tgz";
-      path = fetchurl {
-        name = "cli_width___cli_width_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
-        sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
-      };
-    }
-    {
       name = "cliui___cliui_3.2.0.tgz";
       path = fetchurl {
         name = "cliui___cliui_3.2.0.tgz";
@@ -1642,14 +1522,6 @@
       };
     }
     {
-      name = "contains_path___contains_path_0.1.0.tgz";
-      path = fetchurl {
-        name = "contains_path___contains_path_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
-        sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
-      };
-    }
-    {
       name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
       path = fetchurl {
         name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
@@ -1666,6 +1538,14 @@
       };
     }
     {
+      name = "counterpart___counterpart_0.18.6.tgz";
+      path = fetchurl {
+        name = "counterpart___counterpart_0.18.6.tgz";
+        url  = "https://registry.yarnpkg.com/counterpart/-/counterpart-0.18.6.tgz";
+        sha1 = "cf6b60d8ef99a4b44b8bf6445fa99b4bd1b2f9dd";
+      };
+    }
+    {
       name = "crc_32___crc_32_1.2.0.tgz";
       path = fetchurl {
         name = "crc_32___crc_32_1.2.0.tgz";
@@ -1706,14 +1586,6 @@
       };
     }
     {
-      name = "cross_spawn___cross_spawn_6.0.5.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
-      };
-    }
-    {
       name = "cross_spawn___cross_spawn_7.0.3.tgz";
       path = fetchurl {
         name = "cross_spawn___cross_spawn_7.0.3.tgz";
@@ -1762,6 +1634,14 @@
       };
     }
     {
+      name = "date_names___date_names_0.1.13.tgz";
+      path = fetchurl {
+        name = "date_names___date_names_0.1.13.tgz";
+        url  = "https://registry.yarnpkg.com/date-names/-/date-names-0.1.13.tgz";
+        sha1 = "c4358f6f77c8056e2f5ea68fdbb05f0bf1e53bd0";
+      };
+    }
+    {
       name = "debounce_fn___debounce_fn_4.0.0.tgz";
       path = fetchurl {
         name = "debounce_fn___debounce_fn_4.0.0.tgz";
@@ -1778,14 +1658,6 @@
       };
     }
     {
-      name = "debug___debug_2.6.9.tgz";
-      path = fetchurl {
-        name = "debug___debug_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
-        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
-      };
-    }
-    {
       name = "debug___debug_3.2.6.tgz";
       path = fetchurl {
         name = "debug___debug_3.2.6.tgz";
@@ -1962,22 +1834,6 @@
       };
     }
     {
-      name = "doctrine___doctrine_1.5.0.tgz";
-      path = fetchurl {
-        name = "doctrine___doctrine_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
-        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
-      };
-    }
-    {
-      name = "doctrine___doctrine_2.1.0.tgz";
-      path = fetchurl {
-        name = "doctrine___doctrine_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
-        sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
-      };
-    }
-    {
       name = "doctrine___doctrine_3.0.0.tgz";
       path = fetchurl {
         name = "doctrine___doctrine_3.0.0.tgz";
@@ -2218,14 +2074,6 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.17.6.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.6.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
-        sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
-      };
-    }
-    {
       name = "es_abstract___es_abstract_1.16.3.tgz";
       path = fetchurl {
         name = "es_abstract___es_abstract_1.16.3.tgz";
@@ -2282,14 +2130,6 @@
       };
     }
     {
-      name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
-      path = fetchurl {
-        name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-esnext/-/eslint-config-esnext-4.1.0.tgz";
-        sha1 = "8695b858fcf40d28c1aedca181f700528c7b60c6";
-      };
-    }
-    {
       name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
       path = fetchurl {
         name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
@@ -2298,115 +2138,19 @@
       };
     }
     {
-      name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
-      path = fetchurl {
-        name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-matrix-org/-/eslint-config-matrix-org-0.1.2.tgz";
-        sha1 = "b5d7e193e4f3fc5041905967b53c5ddd6924c793";
-      };
-    }
-    {
-      name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
-      path = fetchurl {
-        name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-node/-/eslint-config-node-4.1.0.tgz";
-        sha1 = "fc1f13946d83766d6b83b0e67699e2071a56f417";
-      };
-    }
-    {
-      name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
-      path = fetchurl {
-        name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-react-native/-/eslint-config-react-native-4.1.0.tgz";
-        sha1 = "63e9401c7fac146804785f609e7df8f15b3e04eb";
-      };
-    }
-    {
-      name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
-      path = fetchurl {
-        name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-recommended/-/eslint-config-recommended-4.1.0.tgz";
-        sha1 = "1adff90e0716d439be471d192977f233de171a46";
-      };
-    }
-    {
-      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
-      path = fetchurl {
-        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
-        sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
-      };
-    }
-    {
-      name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
-      path = fetchurl {
-        name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
-        sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
-      };
-    }
-    {
-      name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+      name = "53000626a9256811f6b355de4eafeb5575bda7fc";
       path = fetchurl {
-        name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.1.tgz";
-        sha1 = "75a2413ffbf17e7be57458301c60291f2cfbf560";
+        name = "53000626a9256811f6b355de4eafeb5575bda7fc";
+        url  = "https://codeload.github.com/matrix-org/eslint-plugin-matrix-org/tar.gz/53000626a9256811f6b355de4eafeb5575bda7fc";
+        sha1 = "12617a8105ab0ea2e7df2567928260a41ebffd58";
       };
     }
     {
-      name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+      name = "eslint_scope___eslint_scope_5.1.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz";
-        sha1 = "92f7736fe1fde3e2de77623c838dd992ff5ffb7e";
-      };
-    }
-    {
-      name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz";
-        sha1 = "ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2";
-      };
-    }
-    {
-      name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.8.1.tgz";
-        sha1 = "92811e37191ecb0d29c0f0a0c9e5c943ee573821";
-      };
-    }
-    {
-      name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz";
-        sha1 = "0590525e7eb83890ce71f73c2cf836284ad8c2f1";
-      };
-    }
-    {
-      name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
-      path = fetchurl {
-        name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
-        sha1 = "79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9";
-      };
-    }
-    {
-      name = "eslint_scope___eslint_scope_5.1.0.tgz";
-      path = fetchurl {
-        name = "eslint_scope___eslint_scope_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz";
-        sha1 = "d0f971dfe59c69e0cada684b23d49dbf82600ce5";
-      };
-    }
-    {
-      name = "eslint_utils___eslint_utils_1.4.3.tgz";
-      path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
-        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
+        name = "eslint_scope___eslint_scope_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
       };
     }
     {
@@ -2434,35 +2178,27 @@
       };
     }
     {
-      name = "eslint___eslint_7.3.1.tgz";
-      path = fetchurl {
-        name = "eslint___eslint_7.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.3.1.tgz";
-        sha1 = "76392bd7e44468d046149ba128d1566c59acbe19";
-      };
-    }
-    {
-      name = "eslint___eslint_6.8.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_6.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
-        sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303";
       };
     }
     {
-      name = "espree___espree_6.2.1.tgz";
+      name = "eslint___eslint_7.18.0.tgz";
       path = fetchurl {
-        name = "espree___espree_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
-        sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
+        name = "eslint___eslint_7.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz";
+        sha1 = "7fdcd2f3715a41fe6295a16234bd69aed2c75e67";
       };
     }
     {
-      name = "espree___espree_7.2.0.tgz";
+      name = "espree___espree_7.3.1.tgz";
       path = fetchurl {
-        name = "espree___espree_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz";
-        sha1 = "1c263d5b513dbad0ac30c4991b93ac354e948d69";
+        name = "espree___espree_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
+        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
       };
     }
     {
@@ -2474,14 +2210,6 @@
       };
     }
     {
-      name = "esquery___esquery_1.0.1.tgz";
-      path = fetchurl {
-        name = "esquery___esquery_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
-        sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
-      };
-    }
-    {
       name = "esquery___esquery_1.3.1.tgz";
       path = fetchurl {
         name = "esquery___esquery_1.3.1.tgz";
@@ -2490,11 +2218,11 @@
       };
     }
     {
-      name = "esrecurse___esrecurse_4.2.1.tgz";
+      name = "esrecurse___esrecurse_4.3.0.tgz";
       path = fetchurl {
-        name = "esrecurse___esrecurse_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+        name = "esrecurse___esrecurse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
       };
     }
     {
@@ -2514,6 +2242,14 @@
       };
     }
     {
+      name = "estraverse___estraverse_5.2.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+      };
+    }
+    {
       name = "esutils___esutils_2.0.3.tgz";
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
@@ -2522,6 +2258,14 @@
       };
     }
     {
+      name = "except___except_0.1.3.tgz";
+      path = fetchurl {
+        name = "except___except_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/except/-/except-0.1.3.tgz";
+        sha1 = "98261c91958551536b44482238e9783fb73d292a";
+      };
+    }
+    {
       name = "execa___execa_0.7.0.tgz";
       path = fetchurl {
         name = "execa___execa_0.7.0.tgz";
@@ -2554,14 +2298,6 @@
       };
     }
     {
-      name = "external_editor___external_editor_3.1.0.tgz";
-      path = fetchurl {
-        name = "external_editor___external_editor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
-        sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
-      };
-    }
-    {
       name = "extsprintf___extsprintf_1.3.0.tgz";
       path = fetchurl {
         name = "extsprintf___extsprintf_1.3.0.tgz";
@@ -2610,27 +2346,19 @@
       };
     }
     {
-      name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+      name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
       path = fetchurl {
-        name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
-        sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+        name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz";
+        sha1 = "b4eee8148abb01dcf1d1ac34367d59e12fa61d6e";
       };
     }
     {
-      name = "figures___figures_3.2.0.tgz";
+      name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
       path = fetchurl {
-        name = "figures___figures_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
-        sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
-      };
-    }
-    {
-      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-      path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
       };
     }
     {
@@ -2674,19 +2402,19 @@
       };
     }
     {
-      name = "flat_cache___flat_cache_2.0.1.tgz";
+      name = "flat_cache___flat_cache_3.0.4.tgz";
       path = fetchurl {
-        name = "flat_cache___flat_cache_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+        name = "flat_cache___flat_cache_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
       };
     }
     {
-      name = "flatted___flatted_2.0.1.tgz";
+      name = "flatted___flatted_3.1.1.tgz";
       path = fetchurl {
-        name = "flatted___flatted_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz";
-        sha1 = "69e57caa8f0eacbc281d2e2cb458d46fdb449e08";
+        name = "flatted___flatted_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
+        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
       };
     }
     {
@@ -2698,6 +2426,14 @@
       };
     }
     {
+      name = "foreachasync___foreachasync_3.0.0.tgz";
+      path = fetchurl {
+        name = "foreachasync___foreachasync_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/foreachasync/-/foreachasync-3.0.0.tgz";
+        sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6";
+      };
+    }
+    {
       name = "forever_agent___forever_agent_0.6.1.tgz";
       path = fetchurl {
         name = "forever_agent___forever_agent_0.6.1.tgz";
@@ -3250,6 +2986,14 @@
       };
     }
     {
+      name = "import_fresh___import_fresh_3.3.0.tgz";
+      path = fetchurl {
+        name = "import_fresh___import_fresh_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
+      };
+    }
+    {
       name = "import_lazy___import_lazy_2.1.0.tgz";
       path = fetchurl {
         name = "import_lazy___import_lazy_2.1.0.tgz";
@@ -3266,6 +3010,14 @@
       };
     }
     {
+      name = "indexof___indexof_0.0.1.tgz";
+      path = fetchurl {
+        name = "indexof___indexof_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+        sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+      };
+    }
+    {
       name = "infer_owner___infer_owner_1.0.4.tgz";
       path = fetchurl {
         name = "infer_owner___infer_owner_1.0.4.tgz";
@@ -3314,22 +3066,6 @@
       };
     }
     {
-      name = "inquirer___inquirer_7.3.2.tgz";
-      path = fetchurl {
-        name = "inquirer___inquirer_7.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.2.tgz";
-        sha1 = "25245d2e32dc9f33dbe26eeaada231daa66e9c7c";
-      };
-    }
-    {
-      name = "internal_slot___internal_slot_1.0.2.tgz";
-      path = fetchurl {
-        name = "internal_slot___internal_slot_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
-        sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
-      };
-    }
-    {
       name = "invert_kv___invert_kv_1.0.0.tgz";
       path = fetchurl {
         name = "invert_kv___invert_kv_1.0.0.tgz";
@@ -3370,14 +3106,6 @@
       };
     }
     {
-      name = "is_callable___is_callable_1.2.0.tgz";
-      path = fetchurl {
-        name = "is_callable___is_callable_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz";
-        sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb";
-      };
-    }
-    {
       name = "is_ci___is_ci_1.2.1.tgz";
       path = fetchurl {
         name = "is_ci___is_ci_1.2.1.tgz";
@@ -3546,14 +3274,6 @@
       };
     }
     {
-      name = "is_regex___is_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz";
-        sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff";
-      };
-    }
-    {
       name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
       path = fetchurl {
         name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
@@ -3570,14 +3290,6 @@
       };
     }
     {
-      name = "is_string___is_string_1.0.5.tgz";
-      path = fetchurl {
-        name = "is_string___is_string_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
-        sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
-      };
-    }
-    {
       name = "is_symbol___is_symbol_1.0.3.tgz";
       path = fetchurl {
         name = "is_symbol___is_symbol_1.0.3.tgz";
@@ -3730,6 +3442,14 @@
       };
     }
     {
+      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+      };
+    }
+    {
       name = "json_schema_typed___json_schema_typed_7.0.3.tgz";
       path = fetchurl {
         name = "json_schema_typed___json_schema_typed_7.0.3.tgz";
@@ -3762,14 +3482,6 @@
       };
     }
     {
-      name = "json5___json5_1.0.1.tgz";
-      path = fetchurl {
-        name = "json5___json5_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
-        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
-      };
-    }
-    {
       name = "json5___json5_2.1.3.tgz";
       path = fetchurl {
         name = "json5___json5_2.1.3.tgz";
@@ -3810,14 +3522,6 @@
       };
     }
     {
-      name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
-      path = fetchurl {
-        name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz";
-        sha1 = "1114a4c1209481db06c690c2b4f488cc665f657e";
-      };
-    }
-    {
       name = "jszip___jszip_3.5.0.tgz";
       path = fetchurl {
         name = "jszip___jszip_3.5.0.tgz";
@@ -3882,14 +3586,6 @@
       };
     }
     {
-      name = "levn___levn_0.3.0.tgz";
-      path = fetchurl {
-        name = "levn___levn_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
-        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
-      };
-    }
-    {
       name = "levn___levn_0.4.1.tgz";
       path = fetchurl {
         name = "levn___levn_0.4.1.tgz";
@@ -4098,6 +3794,14 @@
       };
     }
     {
+      name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+      path = fetchurl {
+        name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
+      };
+    }
+    {
       name = "lodash.union___lodash.union_4.6.0.tgz";
       path = fetchurl {
         name = "lodash.union___lodash.union_4.6.0.tgz";
@@ -4122,27 +3826,11 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.15.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.15.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
-        sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.19.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.19.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
-        sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
-      };
-    }
-    {
-      name = "loose_envify___loose_envify_1.4.0.tgz";
-      path = fetchurl {
-        name = "loose_envify___loose_envify_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
-        sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
       };
     }
     {
@@ -4218,6 +3906,14 @@
       };
     }
     {
+      name = "63f9119bc0bc304e83d4e8e22364caa7850e7671";
+      path = fetchurl {
+        name = "63f9119bc0bc304e83d4e8e22364caa7850e7671";
+        url  = "https://codeload.github.com/matrix-org/matrix-web-i18n/tar.gz/63f9119bc0bc304e83d4e8e22364caa7850e7671";
+        sha1 = "17709c5ad5da065d2718fffe873b8d0a1a53a4cd";
+      };
+    }
+    {
       name = "meant___meant_1.0.3.tgz";
       path = fetchurl {
         name = "meant___meant_1.0.3.tgz";
@@ -4426,6 +4122,14 @@
       };
     }
     {
+      name = "ms___ms_2.1.3.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
+        sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
+      };
+    }
+    {
       name = "mute_stream___mute_stream_0.0.8.tgz";
       path = fetchurl {
         name = "mute_stream___mute_stream_0.0.8.tgz";
@@ -4450,14 +4154,6 @@
       };
     }
     {
-      name = "nice_try___nice_try_1.0.5.tgz";
-      path = fetchurl {
-        name = "nice_try___nice_try_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
-        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
-      };
-    }
-    {
       name = "node_addon_api___node_addon_api_1.7.2.tgz";
       path = fetchurl {
         name = "node_addon_api___node_addon_api_1.7.2.tgz";
@@ -4738,30 +4434,6 @@
       };
     }
     {
-      name = "object.assign___object.assign_4.1.0.tgz";
-      path = fetchurl {
-        name = "object.assign___object.assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
-        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
-      };
-    }
-    {
-      name = "object.entries___object.entries_1.1.2.tgz";
-      path = fetchurl {
-        name = "object.entries___object.entries_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
-        sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
-      };
-    }
-    {
-      name = "object.fromentries___object.fromentries_2.0.2.tgz";
-      path = fetchurl {
-        name = "object.fromentries___object.fromentries_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
-        sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
-      };
-    }
-    {
       name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
       path = fetchurl {
         name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
@@ -4770,14 +4442,6 @@
       };
     }
     {
-      name = "object.values___object.values_1.1.1.tgz";
-      path = fetchurl {
-        name = "object.values___object.values_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
-        sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
-      };
-    }
-    {
       name = "omggif___omggif_1.0.10.tgz";
       path = fetchurl {
         name = "omggif___omggif_1.0.10.tgz";
@@ -4810,14 +4474,6 @@
       };
     }
     {
-      name = "optionator___optionator_0.8.3.tgz";
-      path = fetchurl {
-        name = "optionator___optionator_0.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
-        sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
-      };
-    }
-    {
       name = "optionator___optionator_0.9.1.tgz";
       path = fetchurl {
         name = "optionator___optionator_0.9.1.tgz";
@@ -5106,14 +4762,6 @@
       };
     }
     {
-      name = "pkg_dir___pkg_dir_2.0.0.tgz";
-      path = fetchurl {
-        name = "pkg_dir___pkg_dir_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
-        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
-      };
-    }
-    {
       name = "pkg_up___pkg_up_3.1.0.tgz";
       path = fetchurl {
         name = "pkg_up___pkg_up_3.1.0.tgz";
@@ -5130,6 +4778,14 @@
       };
     }
     {
+      name = "pluralizers___pluralizers_0.1.7.tgz";
+      path = fetchurl {
+        name = "pluralizers___pluralizers_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/pluralizers/-/pluralizers-0.1.7.tgz";
+        sha1 = "8d38dd0a1b660e739b10ab2eab10b684c9d50142";
+      };
+    }
+    {
       name = "png_to_ico___png_to_ico_2.1.1.tgz";
       path = fetchurl {
         name = "png_to_ico___png_to_ico_2.1.1.tgz";
@@ -5154,14 +4810,6 @@
       };
     }
     {
-      name = "prelude_ls___prelude_ls_1.1.2.tgz";
-      path = fetchurl {
-        name = "prelude_ls___prelude_ls_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
-        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
-      };
-    }
-    {
       name = "prepend_http___prepend_http_1.0.4.tgz";
       path = fetchurl {
         name = "prepend_http___prepend_http_1.0.4.tgz";
@@ -5234,14 +4882,6 @@
       };
     }
     {
-      name = "prop_types___prop_types_15.7.2.tgz";
-      path = fetchurl {
-        name = "prop_types___prop_types_15.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
-        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
-      };
-    }
-    {
       name = "proto_list___proto_list_1.2.4.tgz";
       path = fetchurl {
         name = "proto_list___proto_list_1.2.4.tgz";
@@ -5378,14 +5018,6 @@
       };
     }
     {
-      name = "react_is___react_is_16.13.1.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
-        sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
-      };
-    }
-    {
       name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz";
       path = fetchurl {
         name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz";
@@ -5498,22 +5130,6 @@
       };
     }
     {
-      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-      path = fetchurl {
-        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
-        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
-      };
-    }
-    {
-      name = "regexpp___regexpp_2.0.1.tgz";
-      path = fetchurl {
-        name = "regexpp___regexpp_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
-        sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
-      };
-    }
-    {
       name = "regexpp___regexpp_3.1.0.tgz";
       path = fetchurl {
         name = "regexpp___regexpp_3.1.0.tgz";
@@ -5578,6 +5194,14 @@
       };
     }
     {
+      name = "require_from_string___require_from_string_2.0.2.tgz";
+      path = fetchurl {
+        name = "require_from_string___require_from_string_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
+      };
+    }
+    {
       name = "require_main_filename___require_main_filename_1.0.1.tgz";
       path = fetchurl {
         name = "require_main_filename___require_main_filename_1.0.1.tgz";
@@ -5610,14 +5234,6 @@
       };
     }
     {
-      name = "resolve___resolve_1.17.0.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.17.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
-        sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
-      };
-    }
-    {
       name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
         name = "resolve___resolve_1.20.0.tgz";
@@ -5634,14 +5250,6 @@
       };
     }
     {
-      name = "restore_cursor___restore_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
-        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
-      };
-    }
-    {
       name = "retry___retry_0.10.1.tgz";
       path = fetchurl {
         name = "retry___retry_0.10.1.tgz";
@@ -5658,14 +5266,6 @@
       };
     }
     {
-      name = "rimraf___rimraf_2.6.3.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
-        sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
-      };
-    }
-    {
       name = "rimraf___rimraf_2.7.1.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_2.7.1.tgz";
@@ -5682,14 +5282,6 @@
       };
     }
     {
-      name = "run_async___run_async_2.4.1.tgz";
-      path = fetchurl {
-        name = "run_async___run_async_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
-        sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
-      };
-    }
-    {
       name = "run_queue___run_queue_1.0.3.tgz";
       path = fetchurl {
         name = "run_queue___run_queue_1.0.3.tgz";
@@ -5698,14 +5290,6 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.6.0.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz";
-        sha1 = "af2901eedf02e3a83ffa7f886240ff9018bbec84";
-      };
-    }
-    {
       name = "safe_buffer___safe_buffer_5.2.0.tgz";
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.2.0.tgz";
@@ -5858,14 +5442,6 @@
       };
     }
     {
-      name = "side_channel___side_channel_1.0.2.tgz";
-      path = fetchurl {
-        name = "side_channel___side_channel_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz";
-        sha1 = "df5d1abadb4e4bf4af1cd8852bf132d2f7876947";
-      };
-    }
-    {
       name = "signal_exit___signal_exit_3.0.2.tgz";
       path = fetchurl {
         name = "signal_exit___signal_exit_3.0.2.tgz";
@@ -5882,11 +5458,11 @@
       };
     }
     {
-      name = "slice_ansi___slice_ansi_2.1.0.tgz";
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
       path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
       };
     }
     {
@@ -6002,6 +5578,14 @@
       };
     }
     {
+      name = "sprintf_js___sprintf_js_1.1.2.tgz";
+      path = fetchurl {
+        name = "sprintf_js___sprintf_js_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz";
+        sha1 = "da1765262bf8c0f571749f2ad6c26300207ae673";
+      };
+    }
+    {
       name = "sprintf_js___sprintf_js_1.0.3.tgz";
       path = fetchurl {
         name = "sprintf_js___sprintf_js_1.0.3.tgz";
@@ -6018,11 +5602,11 @@
       };
     }
     {
-      name = "ssri___ssri_6.0.1.tgz";
+      name = "ssri___ssri_6.0.2.tgz";
       path = fetchurl {
-        name = "ssri___ssri_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
-        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+        name = "ssri___ssri_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz";
+        sha1 = "157939134f20464e7301ddba3e90ffa8f7728ac5";
       };
     }
     {
@@ -6098,22 +5682,6 @@
       };
     }
     {
-      name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
-      path = fetchurl {
-        name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
-        sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
-      };
-    }
-    {
-      name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
-      path = fetchurl {
-        name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
-        sha1 = "85812a6b847ac002270f5808146064c995fb6913";
-      };
-    }
-    {
       name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
       path = fetchurl {
         name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
@@ -6130,14 +5698,6 @@
       };
     }
     {
-      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
-      path = fetchurl {
-        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
-        sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
-      };
-    }
-    {
       name = "string_decoder___string_decoder_1.3.0.tgz";
       path = fetchurl {
         name = "string_decoder___string_decoder_1.3.0.tgz";
@@ -6250,11 +5810,11 @@
       };
     }
     {
-      name = "table___table_5.4.6.tgz";
+      name = "table___table_6.7.1.tgz";
       path = fetchurl {
-        name = "table___table_5.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
-        sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e";
+        name = "table___table_6.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz";
+        sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2";
       };
     }
     {
@@ -6378,14 +5938,6 @@
       };
     }
     {
-      name = "tmp___tmp_0.0.33.tgz";
-      path = fetchurl {
-        name = "tmp___tmp_0.0.33.tgz";
-        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
-        sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
-      };
-    }
-    {
       name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
       path = fetchurl {
         name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
@@ -6426,38 +5978,6 @@
       };
     }
     {
-      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
-      path = fetchurl {
-        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
-        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
-      };
-    }
-    {
-      name = "tslib___tslib_1.13.0.tgz";
-      path = fetchurl {
-        name = "tslib___tslib_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
-        sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
-      };
-    }
-    {
-      name = "tslib___tslib_1.10.0.tgz";
-      path = fetchurl {
-        name = "tslib___tslib_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz";
-        sha1 = "c3c19f95973fb0a62973fb09d90d961ee43e5c8a";
-      };
-    }
-    {
-      name = "tsutils___tsutils_3.17.1.tgz";
-      path = fetchurl {
-        name = "tsutils___tsutils_3.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
-        sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
-      };
-    }
-    {
       name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
       path = fetchurl {
         name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
@@ -6482,22 +6002,6 @@
       };
     }
     {
-      name = "type_check___type_check_0.3.2.tgz";
-      path = fetchurl {
-        name = "type_check___type_check_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
-        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
-      };
-    }
-    {
-      name = "type_fest___type_fest_0.11.0.tgz";
-      path = fetchurl {
-        name = "type_fest___type_fest_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz";
-        sha1 = "97abf0872310fed88a5c466b25681576145e33f1";
-      };
-    }
-    {
       name = "type_fest___type_fest_0.16.0.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.16.0.tgz";
@@ -6538,14 +6042,6 @@
       };
     }
     {
-      name = "typescript___typescript_3.9.7.tgz";
-      path = fetchurl {
-        name = "typescript___typescript_3.9.7.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
-        sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
-      };
-    }
-    {
       name = "uid_number___uid_number_0.0.6.tgz";
       path = fetchurl {
         name = "uid_number___uid_number_0.0.6.tgz";
@@ -6802,6 +6298,14 @@
       };
     }
     {
+      name = "walk___walk_2.3.14.tgz";
+      path = fetchurl {
+        name = "walk___walk_2.3.14.tgz";
+        url  = "https://registry.yarnpkg.com/walk/-/walk-2.3.14.tgz";
+        sha1 = "60ec8631cfd23276ae1e7363ce11d626452e1ef3";
+      };
+    }
+    {
       name = "wcwidth___wcwidth_1.0.1.tgz";
       path = fetchurl {
         name = "wcwidth___wcwidth_1.0.1.tgz";
@@ -6930,14 +6434,6 @@
       };
     }
     {
-      name = "write___write_1.0.3.tgz";
-      path = fetchurl {
-        name = "write___write_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
-        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
-      };
-    }
-    {
       name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
       path = fetchurl {
         name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 2a7e01e5291c..6424972cbf74 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -8,12 +8,12 @@
 
 let
   executableName = "element-desktop";
-  version = "1.7.26";
+  version = "1.7.30";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "element-desktop";
     rev = "v${version}";
-    sha256 = "1iflsvzn36mywpzags55kjmyq71c3i7f1hgcdcp2ijmnrjk8fy3n";
+    sha256 = "09k1xxmzqvw8c1x9ndsdvwj4598rdx9zqraz3rmr3i58s51vycxp";
   };
 in mkYarnPackage rec {
   name = "element-desktop-${version}";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 9f077c833772..5baed75ba529 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -12,11 +12,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "element-web";
-  version = "1.7.26";
+  version = "1.7.30";
 
   src = fetchurl {
     url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
-    sha256 = "17y6wq6w1yk7r1rfply549kpilfraizahf67p00ra7cws66iqkwg";
+    sha256 = "1pnmgdyacxfk8hdf930rqqvqrcvckc3m4pb5mkznlirsmw06nfay";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index e4f8d3c99ee9..5d3b251089cf 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -1,18 +1,33 @@
-{ lib, mkFranzDerivation, fetchurl }:
+{ lib, mkFranzDerivation, fetchurl, xorg, xdg-utils, buildEnv, writeShellScriptBin }:
 
-mkFranzDerivation rec {
+let
+  mkFranzDerivation' = mkFranzDerivation.override {
+    xdg-utils = buildEnv {
+      name = "xdg-utils-for-ferdi";
+      paths = [
+        xdg-utils
+        (lib.hiPrio (writeShellScriptBin "xdg-open" ''
+          unset GDK_BACKEND
+          exec ${xdg-utils}/bin/xdg-open "$@"
+        ''))
+      ];
+    };
+  };
+in
+mkFranzDerivation' rec {
   pname = "ferdi";
   name = "Ferdi";
-  version = "5.5.0";
+  version = "5.6.0-beta.6";
   src = fetchurl {
     url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
-    sha256 = "0i24vcnq4iz5amqmn2fgk92ff9x9y7fg8jhc3g6ksvmcfly7af3k";
+    sha256 = "sha256-Q1HSAEVcaxFyOq7oWqa6AJJpsBKRxbsKb9ydyK/gH/A=";
   };
+  extraBuildInputs = [ xorg.libxshmfence ];
   meta = with lib; {
     description = "Combine your favorite messaging services into one application";
     homepage = "https://getferdi.com/";
-    license = licenses.free;
-    maintainers = [ maintainers.davidtwco ];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ davidtwco ma27 ];
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [ ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
index 23a4aebb0265..d957daced26d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -88,6 +88,6 @@ stdenv.mkDerivation rec {
     description = "Matrix group messaging app";
     homepage = "https://gitlab.gnome.org/GNOME/fractal";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ dtzWill worldofpeace ];
+    maintainers = teams.gnome.members ++ (with maintainers; [ dtzWill ]);
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix
index 7bbad7982332..d63318ecfaf7 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix
@@ -17,17 +17,19 @@
 , dbus
 , nss
 , nspr
-, alsaLib
+, alsa-lib
 , cups
 , expat
 , udev
 , libnotify
 , xdg-utils
+, mesa
 }:
 
 # Helper function for building a derivation for Franz and forks.
 
-{ pname, name, version, src, meta }:
+{ pname, name, version, src, meta, extraBuildInputs ? [] }:
+
 stdenv.mkDerivation rec {
   inherit pname version src meta;
 
@@ -35,7 +37,7 @@ stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
-  buildInputs = (with xorg; [
+  buildInputs = extraBuildInputs ++ (with xorg; [
     libXi
     libXcursor
     libXdamage
@@ -48,6 +50,7 @@ stdenv.mkDerivation rec {
     libXtst
     libXScrnSaver
   ]) ++ [
+    mesa #libgbm
     gtk3
     atk
     glib
@@ -60,7 +63,7 @@ stdenv.mkDerivation rec {
     gnome2.GConf
     nss
     nspr
-    alsaLib
+    alsa-lib
     cups
     expat
     stdenv.cc.cc
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
index eef24f75f155..74a4ab968c9c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchurl, gettext, wrapGAppsHook
 
 # Native dependencies
-, python3, gtk3, gobject-introspection, gnome3
+, python3, gtk3, gobject-introspection, gnome
 , glib-networking
 
 # Test dependencies
-, xvfb_run, dbus
+, xvfb-run, dbus
 
 # Optional dependencies
 , enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-good, libnice
@@ -20,15 +20,15 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gajim";
-  version = "1.2.2";
+  version = "1.3.2";
 
   src = fetchurl {
     url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
-    sha256 = "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx";
+    sha256 = "1vjzv8zg9s393xw81klcgbkn4h6j2blzla9iil5kqfrw7wmldskh";
   };
 
   buildInputs = [
-    gobject-introspection gtk3 gnome3.adwaita-icon-theme
+    gobject-introspection gtk3 gnome.adwaita-icon-theme
     glib-networking
   ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-good libnice ]
     ++ lib.optional enableSecrets libsecret
@@ -52,9 +52,12 @@ python3.pkgs.buildPythonApplication rec {
     ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
     ++ extraPythonPackages python3.pkgs;
 
-  checkInputs = [ xvfb_run dbus.daemon ];
+  checkInputs = [ xvfb-run dbus.daemon ];
 
   checkPhase = ''
+    # https://dev.gajim.org/gajim/gajim/-/issues/10478
+    rm test/lib/gajim_mocks.py test/unit/test_gui_interface.py
+
     xvfb-run dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
       ${python3.interpreter} setup.py test
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
index 6fe0e3b13b27..854cc18a47ff 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, alsaLib, atk, at-spi2-core, cairo, cups, dbus, dpkg, expat, fetchurl
+{ lib, stdenv, alsa-lib, atk, at-spi2-core, cairo, cups, dbus, dpkg, expat, fetchurl
 , fontconfig, freetype, gdk-pixbuf, glib, gnome2, gtk3,  libdrm, libX11
 , libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
 , libXi, libXrandr, libXrender, libXtst, libappindicator-gtk3, libcxx
@@ -7,7 +7,7 @@
 
 let gitterDirectorySuffix = "opt/gitter";
    libPath = lib.makeLibraryPath [
-     alsaLib
+     alsa-lib
      atk
      at-spi2-core
      cairo
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index cbbe74481c23..6a677c9e0d61 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, xorg, freetype, fontconfig, openssl, glib, nss, nspr, expat
-, alsaLib, dbus, zlib, libxml2, libxslt, makeWrapper, xkeyboard_config, systemd
+, alsa-lib, dbus, zlib, libxml2, libxslt, makeWrapper, xkeyboard_config, systemd
 , libGL, xcbutilkeysyms, xdg-utils, libtool }:
 
 let
@@ -28,7 +28,7 @@ let
     nss
     nspr
     dbus
-    alsaLib
+    alsa-lib
     zlib
     libtool
     libxml2
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
index 4c067e384f95..89d4931a2fe4 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -4,7 +4,7 @@ with ocamlPackages;
 
 buildDunePackage rec {
   pname = "jackline";
-  version = "unstable-2020-09-03";
+  version = "unstable-2021-04-23";
 
   minimumOCamlVersion = "4.08";
 
@@ -13,8 +13,8 @@ buildDunePackage rec {
   src = fetchFromGitHub {
     owner  = "hannesm";
     repo   = "jackline";
-    rev    = "dd5f19636c9b99b72c348f0f639452d87b7c017c";
-    sha256 = "076smdgig4nwvqsqxa6gsl0c3daq5agwgzp4n2y8xxm3qiq91y89";
+    rev    = "861c59bb7cd27ad5c7558ff94cb0d0e8dca249e5";
+    sha256 = "00waw5qr0n70i9l9b25r9ryfi836x4qrj046bb4k9qa4d0p8q1sa";
   };
 
   nativeBuildInpts = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index 363d123dbe12..27bc38cf6c2c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -11,11 +11,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-electron";
-  version = "2.8.5";
+  version = "2.8.6";
 
   src = fetchurl {
     url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "0r3jj3qjx38l1g733vhrwcm2yg7ppp23ciz84x2kqq51mlzr84c6";
+    sha256 = "sha256-kLX8SZERlyNVSvszkV/fkQh/Z/Z20PAPJ9eug2oKlqI=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index 5fa5c2a28641..e2ace1a5d35f 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk8
 # Optional, Jitsi still runs without, but you may pass null:
-, alsaLib, dbus, gtk2, libpulseaudio, openssl, xorg
+, alsa-lib, dbus, gtk2, libpulseaudio, openssl, xorg
 }:
 
 let jdk = jdk8; in
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   libPath = lib.makeLibraryPath ([
     stdenv.cc.cc  # For libstdc++.
-    alsaLib
+    alsa-lib
     dbus
     gtk2
     libpulseaudio
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
new file mode 100644
index 000000000000..dfd4f266f813
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, mkDerivation
+, fetchFromSourcehut
+, cmake
+, extra-cmake-modules
+, pkg-config
+, kirigami2
+, libdeltachat
+, qtimageformats
+, qtmultimedia
+, qtwebengine
+}:
+
+mkDerivation rec {
+  pname = "kdeltachat";
+  version = "unstable-2021-05-31";
+
+  src = fetchFromSourcehut {
+    owner = "~link2xt";
+    repo = "kdeltachat";
+    rev = "318ae67c17f3e64532bad23c2a61a93446db553d";
+    sha256 = "1qy0hlp0r91sqn26ai9isxw4rl8kcmmb10a2p9yqynhm8py3dfn4";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    pkg-config
+  ];
+
+  buildInputs = [
+    kirigami2
+    libdeltachat
+    qtimageformats
+    qtmultimedia
+    qtwebengine
+  ];
+
+  meta = with lib; {
+    description = "Delta Chat client using Kirigami framework";
+    homepage = "https://git.sr.ht/~link2xt/kdeltachat";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
index f0846fc63f7e..1c2df3924ecd 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -10,7 +10,7 @@
 , cyrus_sasl
 , fetchFromGitLab
 , fetchurl
-, ffmpeg_3
+, ffmpeg
 , gdk-pixbuf
 , glib
 , gnused
@@ -87,7 +87,7 @@ mkDerivation rec {
     bzrtp
     cairo
     cyrus_sasl
-    ffmpeg_3
+    ffmpeg
     gdk-pixbuf
     glib
     gtk2
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
new file mode 100644
index 000000000000..2ebf762c418b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchFromGitHub, cacert, python3 }:
+
+stdenv.mkDerivation {
+  pname = "matrix-commander";
+  version = "unstable-2021-05-26";
+
+  src = fetchFromGitHub {
+    owner = "8go";
+    repo = "matrix-commander";
+    rev = "06b4738bc74ee86fb3ac88c04b8230abf82e7421";
+    sha256 = "1skpq3xfnz11m298qnsw68xv391p5qg47flagzsk86pnzi841vc1";
+  };
+
+  buildInputs = [
+    cacert
+    (python3.withPackages(ps: with ps; [
+      matrix-nio
+      magic
+      markdown
+      pillow
+      urllib3
+      aiofiles
+    ]))];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp $src/matrix-commander.py $out/bin/matrix-commander
+    chmod +x $out/bin/matrix-commander
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Simple but convenient CLI-based Matrix client app for sending and receiving";
+    homepage = "https://github.com/8go/matrix-commander";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.seb314 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 121bd3f8fe32..5b14fba5b420 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, gnome2, gtk3, pango, atk, cairo, gdk-pixbuf, glib,
 freetype, fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage,
 libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst,
-libXScrnSaver, nss, nspr, alsaLib, cups, expat, udev, wrapGAppsHook,
+libXScrnSaver, nss, nspr, alsa-lib, cups, expat, udev, wrapGAppsHook,
 hicolor-icon-theme, libuuid, at-spi2-core, at-spi2-atk }:
 
 let
   rpath = lib.makeLibraryPath [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     at-spi2-core
     atk
@@ -43,18 +43,18 @@ let
 in
   stdenv.mkDerivation rec {
     pname = "mattermost-desktop";
-    version = "4.5.2";
+    version = "4.6.2";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
-          sha256 = "0r9xmhzif1ia1m53yr59q6p3niyq3jv3vgv4703x68jmd46f91n6";
+          sha256 = "0i836bc0gx375a9fm2cdxg84k03zhpx1z6jqxndf2m8pkfsblc3x";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz";
-          sha256 = "1h8lw06p3cqz9dkgbhfmzcrzjsir5cfhx28xm4zrmvkj4yfzbcnv";
+          sha256 = "04jv9hkmkh0jipv0fjdprnp5kmkjvf3c0fah6ysi21wmnmp5ab3m";
         }
       else
         throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}";
@@ -63,9 +63,13 @@ in
     dontConfigure = true;
     dontPatchELF = true;
 
-    buildInputs = [ wrapGAppsHook gtk3 hicolor-icon-theme ];
+    nativeBuildInputs = [ wrapGAppsHook ];
+
+    buildInputs = [ gtk3 hicolor-icon-theme ];
 
     installPhase = ''
+      runHook preInstall
+
       mkdir -p $out/share/mattermost-desktop
       cp -R . $out/share/mattermost-desktop
 
@@ -86,6 +90,8 @@ in
         --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
         --set-rpath "${rpath}:$out/share/mattermost-desktop" \
         $out/share/mattermost-desktop/mattermost-desktop
+
+      runHook postInstall
     '';
 
     meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
index 111a3ed091e1..c20ec46f266d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchurl
 , bundlerEnv
-, alsaUtils
+, alsa-utils
 , atk
 , copyDesktopItems
 , gobject-introspection
@@ -87,11 +87,11 @@ with mikutterPaths; stdenv.mkDerivation rec {
     libnotify
     which # some plugins use it at runtime
     wrappedRuby
-  ] ++ lib.optionals stdenv.isLinux [ alsaUtils ];
+  ] ++ lib.optionals stdenv.isLinux [ alsa-utils ];
 
   scriptPath = lib.makeBinPath (
     [ wrappedRuby libnotify which ]
-    ++ lib.optionals stdenv.isLinux [ alsaUtils ]
+    ++ lib.optionals stdenv.isLinux [ alsa-utils ]
   );
 
   postUnpack = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index 9c99741823aa..214675349936 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
   attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
   prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
-  setuptools,
+  setuptools, fetchpatch, installShellFiles,
 
   pytest, faker, pytest-aiohttp, aioresponses,
 
@@ -10,7 +10,7 @@
 
 buildPythonApplication rec {
   pname = "pantalaimon";
-  version = "0.8.0";
+  version = "0.9.2";
 
   disabled = pythonOlder "3.6";
 
@@ -19,9 +19,17 @@ buildPythonApplication rec {
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "0n86cdpw85qzlcr1ynvar0f0zbphmdz1jia9r75lmj07iw4r5hk9";
+    sha256 = "11dfv5b2slqybisq6npmrqxrzslh4bjs4093vrc05s94046d9d9n";
   };
 
+  patches = [
+    # accept newer matrix-nio versions
+    (fetchpatch {
+      url = "https://github.com/matrix-org/pantalaimon/commit/73f68c76fb05037bd7fe71688ce39eb1f526a385.patch";
+      sha256 = "0wvqcfan8yp67p6khsqkynbkifksp2422b9jy511mvhpy51sqykl";
+    })
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     appdirs
@@ -48,6 +56,10 @@ buildPythonApplication rec {
     aioresponses
   ];
 
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
   # darwin has difficulty communicating with server, fails some integration tests
   doCheck = !stdenv.isDarwin;
 
@@ -55,6 +67,10 @@ buildPythonApplication rec {
     pytest
   '';
 
+  postInstall = ''
+    installManPage docs/man/*.[1-9]
+  '';
+
   meta = with lib; {
     description = "An end-to-end encryption aware Matrix reverse proxy daemon";
     homepage = "https://github.com/matrix-org/pantalaimon";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
index 468d7f64c4cf..fa314e82dac8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }:
+{ lib, stdenv, fetchurl, fetchpatch, pidgin, intltool, libxml2, gmime, nss }:
 
 stdenv.mkDerivation rec {
   pname = "pidgin-sipe";
@@ -9,6 +9,20 @@ stdenv.mkDerivation rec {
     sha256 = "0262sz00iqxylx0xfyr48xikhiqzr8pg7b4b7vwj5iv4qxpxv939";
   };
 
+  patches = [
+    # add sipe_utils_memdup() function
+    (fetchpatch {
+      url = "https://repo.or.cz/siplcs.git/patch/567d0ddc0692adfef5f15d0d383825a9b2ea4b49";
+      sha256 = "24L8ZfoOGc3JoTCGxuTNjuHzt5QgFDu1+vSoJpGvde4=";
+    })
+    # replace g_memdup() with sipe_utils_memdup()
+    # g_memdup is deprecatein newer Glib
+    (fetchpatch {
+      url = "https://repo.or.cz/siplcs.git/patch/583a734e63833f03d11798b7b0d59a17d08ae60f";
+      sha256 = "Ai6Czpy/FYvBi4GZR7yzch6OcouJgfreI9HcojhGVV4=";
+    })
+  ];
+
   nativeBuildInputs = [ intltool ];
   buildInputs = [ pidgin gmime libxml2 nss ];
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index edbc28f793b0..dc5a87397609 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -76,8 +76,11 @@ let unwrapped = stdenv.mkDerivation rec {
 
   doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform;
   # In particular, this detects missing python imports in some of the tools.
-  postInstallCheck = ''
-    for f in "''${!outputBin}"/bin/{purple-remote,pidgin}; do
+  postFixup = let
+    # TODO: python is a script, so it doesn't work as interpreter on darwin
+    binsToTest = lib.optionalString stdenv.isLinux "purple-remote," + "pidgin,finch";
+  in lib.optionalString doInstallCheck ''
+    for f in "''${!outputBin}"/bin/{${binsToTest}}; do
       echo "Testing: $f --help"
       "$f" --help
     done
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix
index df6e675fecb6..bd8c492ff28f 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix
@@ -1,30 +1,59 @@
-{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder
-, pytest, aiodns, slixmpp, pyinotify, potr, mpd2, cffi, pkg-config, setuptools }:
+{ lib
+, aiodns
+, buildPythonApplication
+, cffi
+, fetchFromGitHub
+, mpd2
+, pkg-config
+, potr
+, pyasn1
+, pyasn1-modules
+, pyinotify
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, slixmpp
+, typing-extensions
+}:
+
 buildPythonApplication rec {
-    pname = "poezio";
-    version = "0.13.1";
+  pname = "poezio";
+  version = "0.13.1";
+  disabled = pythonOlder "3.4";
 
-    disabled = pythonOlder "3.4";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy";
+  };
 
-    checkInputs = [ pytest ];
-    propagatedBuildInputs = [ aiodns slixmpp pyinotify potr mpd2 cffi setuptools ];
-    nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
 
-    src = fetchFromGitHub {
-      owner = pname;
-      repo = pname;
-      rev = "v${version}";
-      sha256 = "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy";
-    };
+  propagatedBuildInputs = [
+    aiodns
+    cffi
+    mpd2
+    potr
+    pyasn1
+    pyasn1-modules
+    pyinotify
+    setuptools
+    slixmpp
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    typing-extensions
+  ];
 
-    checkPhase = ''
-      pytest
-    '';
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-    meta = with lib; {
-      description = "Free console XMPP client";
-      homepage = "https://poez.io";
-      license = licenses.mit;
-      maintainers = [ maintainers.lsix ];
-    };
-  }
+  meta = with lib; {
+    description = "Free console XMPP client";
+    homepage = "https://poez.io";
+    license = licenses.zlib;
+    maintainers = [ maintainers.lsix ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index 1112a3215c9d..03f8f7b961ab 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -1,18 +1,19 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake
+{ lib, mkDerivation, fetchFromGitHub, cmake
 , qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
-, libidn, qca-qt5, libsecret, libXScrnSaver, hunspell
-, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
+, libidn, qca-qt5, libXScrnSaver, hunspell
+, libsecret, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
+, usrsctp
 }:
 
 mkDerivation rec {
   pname = "psi-plus";
-  version = "1.4.1473";
+  version = "1.5.1520";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = version;
-    sha256 = "03f28zwbjn6fnsm0fqg8lmc11rpfdfvzjf7k7xydc3lzy8pxbds5";
+    sha256 = "0cj811qv0n8xck2qrnps2ybzrpvyjqz7nxkyccpaivq6zxj6mc12";
   };
 
   cmakeFlags = [
@@ -23,15 +24,16 @@ mkDerivation rec {
 
   buildInputs = [
     qtbase qtmultimedia qtx11extras qtwebengine
-    libidn qca-qt5 libsecret libXScrnSaver hunspell
-    libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
+    libidn qca-qt5 libXScrnSaver hunspell
+    libsecret libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
+    usrsctp
   ];
 
   meta = with lib; {
-    homepage = "https://sourceforge.net/projects/psiplus/";
+    homepage = "https://psi-plus.com";
     description = "XMPP (Jabber) client";
     maintainers = with maintainers; [ orivej misuzu ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
index b91db31f89a1..656ddade11f8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -1,9 +1,30 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, pkg-config, perl
-, libtoxcore, libpthreadstubs, libXdmcp, libXScrnSaver
-, qtbase, qtsvg, qttools, qttranslations
-, ffmpeg_3, filter-audio, libexif, libsodium, libopus
-, libvpx, openal, pcre, qrencode, sqlcipher
-, AVFoundation }:
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, perl
+, libtoxcore
+, libpthreadstubs
+, libXdmcp
+, libXScrnSaver
+, qtbase
+, qtsvg
+, qttools
+, qttranslations
+, ffmpeg
+, filter-audio
+, libexif
+, libsodium
+, libopus
+, libvpx
+, openal
+, pcre
+, qrencode
+, sqlcipher
+, AVFoundation
+}:
 
 mkDerivation rec {
   pname = "qtox";
@@ -18,11 +39,23 @@ mkDerivation rec {
 
   buildInputs = [
     libtoxcore
-    libpthreadstubs libXdmcp libXScrnSaver
-    qtbase qtsvg qttranslations
-    ffmpeg_3 filter-audio libexif libopus libsodium
-    libvpx openal pcre qrencode sqlcipher
-  ] ++ lib.optionals stdenv.isDarwin [ AVFoundation] ;
+    libpthreadstubs
+    libXdmcp
+    libXScrnSaver
+    qtbase
+    qtsvg
+    qttranslations
+    ffmpeg
+    filter-audio
+    libexif
+    libopus
+    libsodium
+    libvpx
+    openal
+    pcre
+    qrencode
+    sqlcipher
+  ] ++ lib.optionals stdenv.isDarwin [ AVFoundation ];
 
   nativeBuildInputs = [ cmake pkg-config qttools ]
     ++ lib.optionals stdenv.isDarwin [ perl ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 5525805c2e4c..8782a4bc5beb 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -21,8 +21,11 @@ in mkRambox rec {
     description = "Free and Open Source messaging and emailing app that combines common web applications into one";
     homepage = "https://rambox.pro";
     license = licenses.mit;
-    maintainers = with maintainers; [ gnidorah ma27 ];
+    maintainers = with maintainers; [ ];
     platforms = ["i686-linux" "x86_64-linux"];
     hydraPlatforms = [];
+    knownVulnerabilities = [
+      "Electron 7.2.4 is EOL and contains at least the following vulnerabilities: CVE-2020-6458, CVE-2020-6460 and more (https://www.electronjs.org/releases/stable?version=7). Consider using an alternative such as `ferdi'."
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
index bad54f455b08..94e0dc9c8c2f 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
@@ -7,7 +7,7 @@
 , libtool
 , pjsip
 , libyamlcpp
-, alsaLib
+, alsa-lib
 , libpulseaudio
 , libsamplerate
 , libsndfile
@@ -95,7 +95,7 @@ stdenv.mkDerivation {
   buildInputs = [
     pjsip'
     libyamlcpp
-    alsaLib
+    alsa-lib
     libpulseaudio
     libsamplerate
     libsndfile
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index 6d6e70ff26a0..dbcd447d156d 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -1,7 +1,7 @@
 { lib, mkDerivation, fetchurl, makeFontsConf, appimageTools
 , qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats
 , autoPatchelfHook, desktop-file-utils, imagemagick
-, twemoji-color-font, xorg, libsodium, libopus, libGL, alsaLib }:
+, twemoji-color-font, xorg, libsodium, libopus, libGL, alsa-lib }:
 
 mkDerivation rec {
   pname = "ripcord";
@@ -19,7 +19,7 @@ mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoPatchelfHook desktop-file-utils imagemagick ];
-  buildInputs = [ libsodium libopus libGL alsaLib ]
+  buildInputs = [ libsodium libopus libGL alsa-lib ]
     ++ [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ]
     ++ (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]);
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix
new file mode 100644
index 000000000000..ed02def3eb88
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchurl
+, alsa-lib
+, libopus
+, libogg
+, gmp
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+  pname = "seren";
+  version = "0.0.21";
+
+  buildInputs = [ alsa-lib libopus libogg gmp ncurses ];
+
+  src = fetchurl {
+    url = "http://holdenc.altervista.org/seren/downloads/${pname}-${version}.tar.gz";
+    sha256 = "sha256-adI365McrJkvTexvnWjMzpHcJkLY3S/uWfE8u4yuqho=";
+  };
+
+  meta = with lib; {
+    description = "A simple ncurses VoIP program based on the Opus codec";
+    longDescription = ''
+      Seren is a simple VoIP program based on the Opus codec
+      that allows you to create a voice conference from the terminal, with up to 10
+      participants, without having to register accounts, exchange emails, or add
+      people to contact lists. All you need to join an existing conference is the
+      host name or IP address of one of the participants.
+    '';
+    homepage = "http://holdenc.altervista.org/seren/";
+    changelog = "http://holdenc.altervista.org/seren/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ matthewcroughan nixinator ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/db-reencryption-wrapper.py b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/db-reencryption-wrapper.py
new file mode 100755
index 000000000000..8556ee1e4d73
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/db-reencryption-wrapper.py
@@ -0,0 +1,92 @@
+#!@PYTHON@
+
+import json
+import os
+import re
+import shlex
+import sqlite3
+import subprocess
+import sys
+
+
+DB_PATH = os.path.join(os.environ['HOME'], '.config/Signal/sql/db.sqlite')
+DB_COPY = os.path.join(os.environ['HOME'], '.config/Signal/sql/db.tmp')
+CONFIG_PATH = os.path.join(os.environ['HOME'], '.config/Signal/config.json')
+
+
+def zenity_askyesno(title, text):
+    args = [
+        '@ZENITY@',
+        '--question',
+        '--title',
+        shlex.quote(title),
+        '--text',
+        shlex.quote(text)
+    ]
+    return subprocess.run(args).returncode == 0
+
+
+def start_signal():
+    os.execvp('@SIGNAL-DESKTOP@', ['@SIGNAL-DESKTOP@'] + sys.argv[1:])
+
+
+def copy_pragma(name):
+    result = subprocess.run([
+        '@SQLCIPHER@',
+        DB_PATH,
+        f"PRAGMA {name};"
+    ], check=True, capture_output=True).stdout
+    result = re.search(r'[0-9]+', result.decode()).group(0)
+    subprocess.run([
+        '@SQLCIPHER@',
+        DB_COPY,
+        f"PRAGMA key = \"x'{key}'\"; PRAGMA {name} = {result};"
+    ], check=True, capture_output=True)
+
+
+try:
+    # Test if DB is encrypted:
+    con = sqlite3.connect(f'file:{DB_PATH}?mode=ro', uri=True)
+    cursor = con.cursor()
+    cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
+    con.close()
+except:
+    # DB is encrypted, everything ok:
+    start_signal()
+
+
+# DB is unencrypted!
+answer = zenity_askyesno(
+        "Error: Signal-Desktop database is not encrypted",
+        "Should we try to fix this automatically?"
+        + "You likely want to backup ~/.config/Signal/ first."
+)
+if not answer:
+    answer = zenity_askyesno(
+            "Launch Signal-Desktop",
+            "DB is unencrypted, should we still launch Signal-Desktop?"
+            + "Warning: This could result in data loss!"
+    )
+    if not answer:
+        print('Aborted')
+        sys.exit(0)
+    start_signal()
+
+# Re-encrypt the DB:
+with open(CONFIG_PATH) as json_file:
+    key = json.load(json_file)['key']
+result = subprocess.run([
+    '@SQLCIPHER@',
+    DB_PATH,
+    f" ATTACH DATABASE '{DB_COPY}' AS signal_db KEY \"x'{key}'\";"
+    + " SELECT sqlcipher_export('signal_db');"
+    + " DETACH DATABASE signal_db;"
+]).returncode
+if result != 0:
+    print('DB encryption failed')
+    sys.exit(1)
+# Need to copy user_version and schema_version manually:
+copy_pragma('user_version')
+copy_pragma('schema_version')
+os.rename(DB_COPY, DB_PATH)
+start_signal()
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index d4a72e657cd3..616a08571024 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests
 , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
-, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
+, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsa-lib
 , cups, expat, libuuid, at-spi2-core, libappindicator-gtk3, mesa
 # Runtime dependencies:
 , systemd, libnotify, libdbusmenu, libpulseaudio
@@ -10,6 +10,9 @@
 , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
 # For a full list of available languages:
 # $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }'
+, python3
+, gnome
+, sqlcipher
 }:
 
 let
@@ -25,7 +28,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.0.0"; # Please backport all updates to the stable channel.
+  version = "5.4.1"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -35,7 +38,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "17hxg61m9kk1kph6ifqy6507kzx5hi6yafr2mj8n0a6c39vc8f9g";
+    sha256 = "1f1narpqj8gcyi4r574nqm1cbyi3azk1y7d1j300scr51gk74fq6";
   };
 
   nativeBuildInputs = [
@@ -45,7 +48,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     at-spi2-core
     atk
@@ -79,6 +82,7 @@ in stdenv.mkDerivation rec {
     pango
     systemd
     xorg.libxcb
+    xorg.libxshmfence
   ];
 
   runtimeDependencies = [
@@ -111,14 +115,20 @@ in stdenv.mkDerivation rec {
 
     # Symlink to bin
     mkdir -p $out/bin
-    ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop
+    ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop-unwrapped
 
     runHook postInstall
   '';
 
+  # Required for $SQLCIPHER_LIB which contains "/build/" inside the path:
+  noAuditTmpdir = true;
+
   preFixup = ''
+    export SQLCIPHER_LIB="$out/lib/Signal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node"
+    test -x "$SQLCIPHER_LIB" # To ensure the location hasn't changed
     gappsWrapperArgs+=(
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }"
+      --prefix LD_PRELOAD : "$SQLCIPHER_LIB"
       ${customLanguageWrapperArgs}
     )
 
@@ -127,7 +137,17 @@ in stdenv.mkDerivation rec {
       --replace /opt/Signal/signal-desktop $out/bin/signal-desktop
 
     autoPatchelf --no-recurse -- $out/lib/Signal/
-    patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc.node
+    patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc-x64.node
+  '';
+
+  postFixup = ''
+    # This hack is temporarily required to avoid data-loss for users:
+    cp ${./db-reencryption-wrapper.py} $out/bin/signal-desktop
+    substituteInPlace $out/bin/signal-desktop \
+      --replace '@PYTHON@' '${python3}/bin/python3' \
+      --replace '@ZENITY@' '${gnome.zenity}/bin/zenity' \
+      --replace '@SQLCIPHER@' '${sqlcipher}/bin/sqlcipher' \
+      --replace '@SIGNAL-DESKTOP@' "$out/bin/signal-desktop-unwrapped"
   '';
 
   # Tests if the application launches and waits for "Link your phone to Signal Desktop":
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
index 593e63d32f52..a26fbed2a049 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchgit, jre, coreutils, gradle_6, git, perl
+{ lib, stdenv, fetchurl, fetchgit, jre_headless, coreutils, gradle_6, git, perl
 , makeWrapper }:
 
 let
@@ -52,20 +52,28 @@ in stdenv.mkDerivation rec {
   inherit pname src version postPatch patches;
 
   buildPhase = ''
+    runHook preBuild
+
     export GRADLE_USER_HOME=$(mktemp -d)
 
     # Use the local packages from -deps
     sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle
 
     gradle --offline --no-daemon distTar
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out
     tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/
     wrapProgram $out/bin/signald \
       --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
-      --set JAVA_HOME "${jre}"
+      --set JAVA_HOME "${jre_headless}"
+
+    runHook postInstall
   '';
 
   nativeBuildInputs = [ git gradle_6 makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 764a5ac3db51..4eb536256240 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, dpkg
-, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome3
+, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome
 , gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
 , at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon }:
 
@@ -10,7 +10,7 @@ let
   version = "8.69.0.77";
 
   rpath = lib.makeLibraryPath [
-    alsaLib
+    alsa-lib
     atk
     at-spi2-atk
     at-spi2-core
@@ -31,7 +31,7 @@ let
     gtk3
     libappindicator-gtk3
 
-    gnome3.gnome-keyring
+    gnome.gnome-keyring
 
     libnotify
     libpulseaudio
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
index 1775e45d4e6e..137783552112 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -4,7 +4,7 @@
 , undmg
 , makeWrapper
 , nodePackages
-, alsaLib
+, alsa-lib
 , at-spi2-atk
 , at-spi2-core
 , atk
@@ -42,11 +42,11 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.14.0";
-  x86_64-darwin-sha256 = "0kpjsnriav6rcddjkz0z9arxjd09i6bw2krnmf3dc31my64nmxs6";
+  x86_64-darwin-version = "4.16.0";
+  x86_64-darwin-sha256 = "078f49sgazfa99vn0yyacfya3jl2vhqz7kgxh0qp56b66pnzwbxz";
 
-  x86_64-linux-version = "4.14.0";
-  x86_64-linux-sha256 = "0xy9i8ssjba62ca7lfan58rhwx69wkapfd0jzkaj95qhqnv019fg";
+  x86_64-linux-version = "4.16.0";
+  x86_64-linux-sha256 = "0dj5k7r044mibis0zymh6wryhbw2fzsch30nddfrnn6ij89hhirv";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
@@ -80,7 +80,7 @@ let
     passthru.updateScript = ./update.sh;
 
     rpath = lib.makeLibraryPath [
-      alsaLib
+      alsa-lib
       at-spi2-atk
       at-spi2-core
       atk
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
index 47027da9a919..026dc5b64056 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat, fontconfig
+{ lib, stdenv, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig
 , freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }:
 let
   fullPath = lib.makeLibraryPath [
-    alsaLib
+    alsa-lib
     atk
     cairo
     cups
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
index 498bee8aafc5..db8d4472b07d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -6,6 +6,7 @@
 , dpkg
 , atomEnv
 , libuuid
+, libappindicator-gtk3
 , pulseaudio
 , at-spi2-atk
 , coreutils
@@ -15,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "teams";
-  version = "1.4.00.7556";
+  version = "1.4.00.13653";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-    sha256 = "0yak3jxh0gdn57wjss0s7sdjssf1b70j0klrcpv66bizqvw1xl7b";
+    sha256 = "1kx4j837fd344zy90nl0j3r8cdvihy6i6gf56wd5n56zngx1fhjv";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
@@ -34,6 +35,7 @@ stdenv.mkDerivation rec {
   runtimeDependencies = [
     (lib.getLib systemd)
     pulseaudio
+    libappindicator-gtk3
   ];
 
   preFixup = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index 988674079163..048d40082daa 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl
 , xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, qtwebsockets, xkeyboard_config
-, alsaLib, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin
+, alsa-lib, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin
 }:
 
 let
@@ -12,7 +12,7 @@ let
   deps =
     [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl
       xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
-      xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsaLib qtbase qtwebengine qtwebchannel qtsvg
+      xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsa-lib qtbase qtwebengine qtwebchannel qtsvg
       qtwebsockets libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi
     ];
 
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     ''
       mv ts3client_linux_${arch} ts3client
       echo "patching ts3client..."
-      patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip5.so ts3client
+      patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip1-qt5.so ts3client
       patchelf \
         --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
         --set-rpath ${lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
index e266265291b3..daa97b682176 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -4,13 +4,13 @@ let
   arch = if stdenv.is64bit then "amd64" else "x86";
 in stdenv.mkDerivation rec {
   pname = "teamspeak-server";
-  version = "3.13.3";
+  version = "3.13.5";
 
   src = fetchurl {
     url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
     sha256 = if stdenv.is64bit
-      then "sha256-+b9S0ekQmXF5KwvVcmHIDpp0iZRO2W1ls8eYhDzjUUw="
-      else "sha256-Qu6xPzbUdqO93j353cfQILlFYqmwFSnFWG9TjniX0+c=";
+      then "sha256-2tSX/ET2lZsi0mVB3KnbnBXMSTRsneGUA8w6mZ6TmlY="
+      else "sha256-RdxG4nGXTTSY+P5oZu4uP5l7gKcU9C6uIILyNldSK50=";
   };
 
   buildInputs = [ stdenv.cc.cc postgresql.lib ];
@@ -18,6 +18,8 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoPatchelfHook ];
 
   installPhase = ''
+    runHook preInstall
+
     # Install files.
     mkdir -p $out/lib/teamspeak
     mv * $out/lib/teamspeak/
@@ -26,18 +28,20 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/bin/
     ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server
     ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver
+
+    runHook postInstall
   '';
 
   passthru.updateScript = writeScript "update-teampeak-server" ''
     #!/usr/bin/env nix-shell
-    #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused
+    #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused jq pup
 
     set -eu -o pipefail
 
     version=$( \
-        curl -s "https://www.teamspeak.de/download/teamspeak-3-amd64-server-linux/" \
-        | grep softwareVersion \
-        | sed -E -e 's/^.*<span itemprop="softwareVersion">([^<]+)<\/span>.*$/\1/' \
+      curl https://www.teamspeak.com/en/downloads/ \
+        | pup "#server .linux .version json{}" \
+        | jq -r ".[0].text"
     )
 
     versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version")
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index 2f6594c17659..02330d110788 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -1,8 +1,8 @@
 { mkDerivation, lib, fetchFromGitHub, callPackage
 , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
 , qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
-, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
-, tl-expected, hunspell, glibmm
+, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
+, tl-expected, hunspell, glibmm, webkitgtk
 # Transitive dependencies:
 , pcre, xorg, util-linux, libselinux, libsepol, epoxy
 , at-spi2-core, libXtst, libthai, libdatrie
@@ -14,13 +14,13 @@ let
   tg_owt = callPackage ../tdesktop/tg_owt.nix {};
 in mkDerivation rec {
   pname = "kotatogram-desktop";
-  version = "1.4";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "kotatogram";
     repo = "kotatogram-desktop";
     rev = "k${version}";
-    sha256 = "0nhyjqxrbqiik4sgzplmpgx8msf8rykjiik0c2zr61rjm4fngkb3";
+    sha256 = "07z56gz3sk45n5j0gw9p9mxrbwixxsmp7lvqc6lqnxmglz6knc1d";
     fetchSubmodules = true;
   };
 
@@ -37,8 +37,8 @@ in mkDerivation rec {
 
   buildInputs = [
     qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash
-    ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
-    tl-expected hunspell glibmm
+    ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
+    tl-expected hunspell glibmm webkitgtk
     tg_owt
     # Transitive dependencies:
     pcre xorg.libXdmcp util-linux libselinux libsepol epoxy
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 4d6e22bd89cd..acdf4e660c7c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,12 +1,12 @@
 { mkDerivation, lib, fetchurl, fetchpatch, callPackage
 , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
 , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
-, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
-, tl-expected, hunspell, glibmm
+, dee, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
+, tl-expected, hunspell, glibmm, webkitgtk, libtgvoip
 # Transitive dependencies:
 , pcre, xorg, util-linux, libselinux, libsepol, epoxy
 , at-spi2-core, libXtst, libthai, libdatrie
-, xdg-utils
+, xdg-utils, libsysprof-capture, libpsl, brotli
 }:
 
 with lib;
@@ -20,27 +20,33 @@ with lib;
 
 let
   tg_owt = callPackage ./tg_owt.nix {};
-  tgcalls-gcc10-fix = fetchpatch { # "Fix build on GCC 10, second attempt."
-    url = "https://github.com/TelegramMessenger/tgcalls/commit/eded7cc540123eaf26361958b9a61c65cb2f7cfc.patch";
-    sha256 = "19n1hvn44pp01zc90g93vq2bcr2gdnscaj5il9f82klgh4llvjli";
-  };
-
 in mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.7.1";
+  version = "2.7.5";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "01fxzcfz3xankmdar55ja55pb9hkvlf1plgpgjpsda9xwqgbxgs1";
+    sha256 = "sha256-9GxBw5ii9Musjq7D3KMf/P5BA4h690EgXRbhynHwO98=";
   };
 
+  patches = [
+    # fixes issue with ffmpeg>=4.4 crashes, hasn't been upstreamed yet
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/gentoo/gentoo/1c91884873968997be4b0c954169d04dc839f1db/net-im/telegram-desktop/files/tdesktop-2.7.4-voice-crash.patch";
+      sha256 = "sha256-inLXcP70yJlkkmdeXlc3HRL7Vt+Sf00LLJG33gwBKdY=";
+    })
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/gentoo/gentoo/1c91884873968997be4b0c954169d04dc839f1db/net-im/telegram-desktop/files/tdesktop-2.7.4-voice-ffmpeg44.patch";
+      sha256 = "sha256-p57LipNf7BDhVvNKRuicVqx0vU6IBL/Cvr5BAfLF4Hs=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace Telegram/lib_spellcheck/spellcheck/platform/linux/linux_enchant.cpp \
       --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
     substituteInPlace Telegram/CMakeLists.txt \
       --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
-    patch -d Telegram/ThirdParty/tgcalls/ -p1 < "${tgcalls-gcc10-fix}"
   '';
 
   # We want to run wrapProgram manually (with additional parameters)
@@ -51,12 +57,12 @@ in mkDerivation rec {
 
   buildInputs = [
     qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
-    dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
-    tl-expected hunspell glibmm
-    tg_owt
+    dee ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
+    tl-expected hunspell glibmm webkitgtk
+    tg_owt libtgvoip
     # Transitive dependencies:
     pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy
-    at-spi2-core libXtst libthai libdatrie
+    at-spi2-core libXtst libthai libdatrie libsysprof-capture libpsl brotli
   ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index 6bd72134e027..614183b72d08 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, ninja, yasm
-, libjpeg, openssl, libopus, ffmpeg, alsaLib, libpulseaudio, protobuf
+, libjpeg, openssl, libopus, ffmpeg, alsa-lib, libpulseaudio, protobuf
 , xorg, libXtst
 }:
 
@@ -23,7 +23,7 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ pkg-config cmake ninja yasm ];
 
   buildInputs = [
-    libjpeg openssl libopus ffmpeg alsaLib libpulseaudio protobuf
+    libjpeg openssl libopus ffmpeg alsa-lib libpulseaudio protobuf
     xorg.libX11 libXtst
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
index 99465cc7971e..38ee5579b5a2 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Link-local XMPP connection manager for Telepathy";
     platforms = platforms.gnu ++ platforms.linux; # Random choice
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
     broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
index 114b3ab8f4d1..3969627a67a1 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -1,4 +1,5 @@
-{ mkDerivation, lib, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }:
+{ mkDerivation, lib, stdenv, fetchgit, qtbase, qtquickcontrols, qmake
+, makeDesktopItem }:
 
 # we now have libqmatrixclient so a future version of tensor that supports it
 # should use that
@@ -30,7 +31,15 @@ mkDerivation rec {
     mimeType    = "application/x-chat";
   };
 
-  installPhase = ''
+  installPhase = if stdenv.isDarwin then ''
+    runHook preInstall
+
+    mkdir -p $out/Applications
+    cp -r tensor.app $out/Applications/tensor.app
+    wrapQtApp $out/Applications/tensor.app/Contents/MacOS/tensor
+
+    runHook postInstall
+  '' else ''
     runHook preInstall
 
     install -Dm755 tensor $out/bin/tensor
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
index dfc2613d3e9e..4a1ffef292f0 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, python, unzip, wxPython, wrapPython, tor }:
-stdenv.mkDerivation rec {
+{ lib, stdenv, fetchFromGitHub, python, unzip, wxPython, wrapPython, tor }:
 
+stdenv.mkDerivation rec {
   pname = "torchat";
   version = "0.9.9.553";
 
-  src = fetchurl {
-    url = "https://github.com/prof7bit/TorChat/archive/${version}.tar.gz";
-    sha256 = "0rb4lvv40pz6ab5kxq40ycvh7kh1yxn7swzgv2ff2nbhi62xnzp0";
+  src = fetchFromGitHub {
+    owner = "prof7bit";
+    repo = "TorChat";
+    rev = version;
+    sha256 = "2LHG9qxZDo5rV6wsputdRo2Y1aHs+irMwt1ucFnXQE0=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
index 8b306c075062..01c83ba7b1cc 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix
@@ -12,7 +12,7 @@
 , qtbase
 , qttools
 , qtquickcontrols2
-, alsaLib
+, alsa-lib
 , speex
 , ilbc
 , fetchurl
@@ -41,7 +41,7 @@ mkDerivation rec {
     qtbase
     qttools
     qtquickcontrols2
-    alsaLib
+    alsa-lib
     speex
     ilbc
   ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
index 0224edc652fa..66d33533a736 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -1,5 +1,5 @@
 {fetchurl, lib, stdenv, dpkg, makeWrapper,
- alsaLib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1,
+ alsa-lib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1,
  harfbuzz, libcap, libGL, libGLU, libpulseaudio, libxkbcommon, libxml2, libxslt,
  nspr, nss, openssl, systemd, wayland, xorg, zlib, ...
 }:
@@ -9,7 +9,8 @@ stdenv.mkDerivation {
   version = "13.3.1.22";
 
   src = fetchurl {
-    url = "https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb";
+    # Official link: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb
+    url = "http://web.archive.org/web/20210602004133/https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb";
     sha256 = "0rs26x0lycavybn6k1hbb5kzms0zzcmxlrmi4g8k7vyafj6s8dqh";
   };
 
@@ -19,7 +20,7 @@ stdenv.mkDerivation {
   dontUnpack = true;
 
   libPath = lib.makeLibraryPath [
-      alsaLib
+      alsa-lib
       cups
       curl
       dbus
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index 27312a18ec40..51b119aa6de5 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, rpmextract, undmg, autoPatchelfHook
-, xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify
+, xorg, gtk3, gnome2, nss, alsa-lib, udev, libnotify
 , wrapGAppsHook }:
 
 let
@@ -25,7 +25,7 @@ let
     description = "Simple and Convenient Messaging App for VK";
     homepage = "https://vk.com/messenger";
     license = licenses.unfree;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
   };
 
@@ -35,7 +35,7 @@ let
     nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ];
     buildInputs = (with xorg; [
       libXdamage libXtst libXScrnSaver libxkbfile
-    ]) ++ [ gtk3 nss alsaLib ];
+    ]) ++ [ gtk3 nss alsa-lib ];
 
     runtimeDependencies = [ (lib.getLib udev) libnotify ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
index ba0f867b2aa1..371ac91120b5 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib, autoPatchelfHook, fetchurl, gtk3, libnotify
+{ alsa-lib, autoPatchelfHook, fetchurl, gtk3, libnotify
 , makeDesktopItem, makeWrapper, nss, lib, stdenv, udev, xdg-utils
 , xorg
 }:
@@ -37,7 +37,7 @@ in stdenv.mkDerivation {
   buildInputs = with xorg; [
     libXdmcp libXScrnSaver libXtst
   ] ++ [
-    alsaLib gtk3 nss
+    alsa-lib gtk3 nss
   ];
 
   runtimeDependencies = [ (getLib udev) libnotify ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
index 7c0f80d22383..46215db3eb56 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, lib, stdenv, gnome3, cmake, pkg-config,
+{ fetchFromGitHub, lib, stdenv, gnome, cmake, pkg-config,
   libappindicator-gtk3, gst_all_1, pcre }:
 
 stdenv.mkDerivation rec {
@@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome3.gtkmm
-    gnome3.webkitgtk
+    gnome.gtkmm
+    gnome.webkitgtk
     libappindicator-gtk3
     gst_all_1.gst-plugins-base
     gst_all_1.gst-plugins-good
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 4dc29dd22835..3a22ea0681e2 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -22,13 +22,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.24.4059";
-    x86_64-linux = "3.24.2939";
+    x86_64-darwin = "3.25.4095";
+    x86_64-linux = "3.25.2940";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "1zjv3d8jp0wldrzl02q9kir7q3y5bcb6hsfli6wip8bmaq78dksy";
-    x86_64-linux = "1k9n58pr5fnqv9vacay5vrbs4pvq2p36c0dpg9rjdcnb2fwaqg5p";
+    x86_64-darwin = "01gbmbxs3w7lwsy5wjpr7fgqkb20rj5fv1r3dsmjkfwy45pd835j";
+    x86_64-linux = "1vb2fy8hijjp0193d32d8hw7h00w6wympf3zc96skk8hz3ks6xz8";
   }.${system} or throwSystem;
 
   meta = with lib; {
@@ -51,7 +51,6 @@ let
       arianvp
       kiwi
       toonn
-      worldofpeace
     ];
     platforms = [
       "x86_64-darwin"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index fd15e77c8bea..191176e539e8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , makeWrapper
 # Dynamic libraries
-, alsaLib
+, alsa-lib
 , atk
 , cairo
 , dbus
@@ -29,17 +29,17 @@
 assert pulseaudioSupport -> libpulseaudio != null;
 
 let
-  version = "5.6.16775.0418";
+  version = "5.6.20278.0524";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = "twtxzniojgyLTx6Kda8Ej96uyw2JQB/jIhLdTgTqpCo=";
+      sha256 = "1nkpmrpb0bz4zkg8nszxmcfy3ymigd2bmxhnxbjrcnv64ykdrgp7";
     };
   };
 
   libs = lib.makeLibraryPath ([
     # $ LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH:$PWD ldd zoom | grep 'not found'
-    alsaLib
+    alsa-lib
     atk
     cairo
     dbus
@@ -79,7 +79,7 @@ in stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     mkdir $out
-    tar -C $out -xf ${src}
+    tar -C $out -xf $src
     mv $out/usr/* $out/
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
index 77935b30f06d..e97ea7bb65f5 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -2,6 +2,7 @@
 , python3
 , fetchFromGitHub
 , glibcLocales
+, libnotify
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -39,6 +40,10 @@ python3.pkgs.buildPythonApplication rec {
     pytest-mock
   ]);
 
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ libnotify ])
+  ];
+
   meta = with lib; {
     description = "Zulip's official terminal client";
     homepage = "https://github.com/zulip/zulip-terminal";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
index 6b143abda3b3..a4a1b3405b16 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "zulip";
-  version = "5.6.0";
+  version = "5.7.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    sha256 = "19sdmkxxzaidb89m8k56p94hq2yaxwn9islzrzwb86f50hlrq46w";
+    sha256 = "0yfr0n84p3jp8mnnqww2dqpcj9gd7rwpygpq4v10rmrnli18qygw";
     name="${pname}-${version}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/insync/v3.nix b/nixpkgs/pkgs/applications/networking/insync/v3.nix
index 0c18ec60ab65..ad202871b991 100644
--- a/nixpkgs/pkgs/applications/networking/insync/v3.nix
+++ b/nixpkgs/pkgs/applications/networking/insync/v3.nix
@@ -10,7 +10,7 @@
 , nss
 , libthai
 , wayland
-, alsaLib
+, alsa-lib
 , qtvirtualkeyboard
 , qtwebchannel
 , qtwebsockets
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     libGL
     libthai
     libxcb
diff --git a/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix b/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
index 871dcc84c1de..d2e8e93d8534 100644
--- a/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "catgirl";
-  version = "1.6";
+  version = "1.8";
 
   src = fetchurl {
     url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
-    sha256 = "0shg02zidqqmvywqqsaazlgg9rd5lhhrvjx6n0lzmdfaawxywciv";
+    sha256 = "0svpd2nqsr55ac98vczyhihs6pvgw7chspf6bdlwl98gch39dxif";
   };
 
   nativeBuildInputs = [ ctags pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
index 0d0144fbf915..ab698ea9c560 100644
--- a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
@@ -1,4 +1,4 @@
-{ fetchgit, libcommuni, qtbase, qmake, lib, stdenv }:
+{ fetchgit, libcommuni, qtbase, qmake, lib, stdenv, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "communi";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [ qmake ]
+    ++ lib.optional stdenv.isDarwin wrapQtAppsHook;
 
   buildInputs = [ libcommuni qtbase ];
 
@@ -25,14 +26,23 @@ stdenv.mkDerivation rec {
 
   qmakeFlags = [
     "COMMUNI_INSTALL_PREFIX=${placeholder "out"}"
-    "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin"
     "COMMUNI_INSTALL_PLUGINS=${placeholder "out"}/lib/communi/plugins"
     "COMMUNI_INSTALL_ICONS=${placeholder "out"}/share/icons/hicolor"
     "COMMUNI_INSTALL_DESKTOP=${placeholder "out"}/share/applications"
     "COMMUNI_INSTALL_THEMES=${placeholder "out"}/share/communi/themes"
+    (if stdenv.isDarwin
+      then [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/Applications" ]
+      else [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin" ])
   ];
 
-  postInstall = lib.optionalString stdenv.isLinux ''
+  postInstall = if stdenv.isDarwin then ''
+    # Nix qmake does not add the bundle rpath by default.
+    install_name_tool \
+      -add_rpath @executable_path/../Frameworks \
+      $out/Applications/Communi.app/Contents/MacOS/Communi
+
+    wrapQtApp $out/Applications/Communi.app/Contents/MacOS/Communi
+  '' else ''
     substituteInPlace "$out/share/applications/communi.desktop" \
       --replace "/usr/bin" "$out/bin"
   '';
diff --git a/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
new file mode 100644
index 000000000000..81a984c84cd9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildGoModule, fetchFromSourcehut, installShellFiles, scdoc }:
+
+buildGoModule rec {
+  pname = "senpai";
+  version = "unstable-2021-05-27";
+
+  src = fetchFromSourcehut {
+    owner = "~taiite";
+    repo = "senpai";
+    rev = "6be718329175c6d11e359f1a366ab6ab22b101d2";
+    sha256 = "sha256-hW6DHJlDBYEqK8zj5PvGKU54sbeXjx1tdqwKXPXlKHc=";
+  };
+
+  vendorSha256 = "sha256-OLi5y1hrYK6+l5WB1SX85QU4y3KjFyGaEzgbE6lnW2k=";
+
+  subPackages = [
+    "cmd/senpai"
+  ];
+
+  nativeBuildInputs = [
+    scdoc
+    installShellFiles
+  ];
+
+  postInstall = ''
+    scdoc < doc/senpai.1.scd > doc/senpai.1
+    scdoc < doc/senpai.5.scd > doc/senpai.5
+    installManPage doc/senpai.*
+  '';
+
+  meta = with lib; {
+    description = "Your everyday IRC student";
+    homepage = "https://ellidri.org/senpai";
+    license = licenses.isc;
+    maintainers = with maintainers; [ malvo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
index 676309a2baec..08e8d6a00bcf 100644
--- a/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "07a50shv6k4fwl2gmv4j0maxaqqkjpwwmqkxkqs0gvx38lc5f7m7";
   };
 
-  cargoSha256 = "009jqizj4qg1bqslna35myxcark40hwlqsz58fbps9nsgp1i0hq2";
+  cargoSha256 = "0npkcprcqy2pn7k64jzwg41vk9id6yzw211xw203h80cc5444igr";
 
   cargoPatches = [
     # Fix Cargo.lock version. Remove with the next release.
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
index 1cce4287ddb1..9fc3bc5f93f7 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
@@ -30,6 +30,8 @@ let
       version = "3.1";
       pname = "weechat";
 
+      hardeningEnable = [ "pie" ];
+
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
         sha256 = "06w147wzrzp6xbqiz6s5nq5xdjy7jn3f18xajxy50pynjd6vmfh5";
@@ -71,6 +73,11 @@ let
         done
       '';
 
+      doInstallCheck = true;
+      installCheckPhase = ''
+        $out/bin/weechat --version
+      '';
+
       meta = {
         homepage = "http://www.weechat.org/";
         description = "A fast, light and extensible chat client";
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch
deleted file mode 100644
index 45e620db258d..000000000000
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 5dd2593369645b11a9dc03e1930617d2f5dbd039 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Wed, 11 Nov 2020 11:48:49 +0100
-Subject: [PATCH] hardcode json file path
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- wee_slack.py | 8 +-------
- 1 file changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/wee_slack.py b/wee_slack.py
-index a3d779c..5942289 100644
---- a/wee_slack.py
-+++ b/wee_slack.py
-@@ -5136,13 +5136,7 @@ def create_slack_debug_buffer():
- 
- def load_emoji():
-     try:
--        weechat_dir = w.info_get('weechat_dir', '')
--        weechat_sharedir = w.info_get('weechat_sharedir', '')
--        local_weemoji, global_weemoji = ('{}/weemoji.json'.format(path)
--                for path in (weechat_dir, weechat_sharedir))
--        path = (global_weemoji if os.path.exists(global_weemoji) and
--                not os.path.exists(local_weemoji) else local_weemoji)
--        with open(path, 'r') as ef:
-+        with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
-             emojis = json.loads(ef.read())
-             if 'emoji' in emojis:
-                 print_error('The weemoji.json file is in an old format. Please update it.')
--- 
-2.29.0
-
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
index 679e278c8a09..698ee80edf60 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wee-slack";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     repo = "wee-slack";
     owner = "wee-slack";
     rev = "v${version}";
-    sha256 = "sha256-6Z/H15bKe0PKpNe9PCgc5mLOii3CILCAVon7EgzIkx8=";
+    sha256 = "0xfklr0gsc9jgxfyrrb2j756lclz9g8imcb0pk0xgyj8mhsw23zk";
   };
 
   patches = [
@@ -16,10 +16,13 @@ stdenv.mkDerivation rec {
       src = ./libpath.patch;
       env = "${buildEnv {
         name = "wee-slack-env";
-        paths = with python3Packages; [ websocket_client six ];
+        paths = with python3Packages; [
+          websocket_client
+          six
+        ];
       }}/${python3Packages.python.sitePackages}";
     })
-    ./0001-hardcode-json-file-path.patch
+    ./load_weemoji_path.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch
index af2dd36b41c5..a6e38c16fb14 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch
@@ -1,13 +1,13 @@
 diff --git a/wee_slack.py b/wee_slack.py
-index dbe6446..d1b7546 100644
+index e4716b4..f673b7c 100644
 --- a/wee_slack.py
 +++ b/wee_slack.py
-@@ -25,6 +25,8 @@ import random
- import socket
- import string
+@@ -31,6 +31,8 @@ import string
+ # See https://github.com/numpy/numpy/issues/11925
+ sys.modules["numpy"] = None
  
 +sys.path.append('@env@')
 +
- from websocket import ABNF, create_connection, WebSocketConnectionClosedException
- 
- try:
+ from websocket import (  # noqa: E402
+     ABNF,
+     create_connection,
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/load_weemoji_path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/load_weemoji_path.patch
new file mode 100644
index 000000000000..1e97dc32fa65
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/load_weemoji_path.patch
@@ -0,0 +1,25 @@
+diff --git a/wee_slack.py b/wee_slack.py
+index e4716b4..ffd122d 100644
+--- a/wee_slack.py
++++ b/wee_slack.py
+@@ -6092,19 +6092,7 @@ def create_slack_debug_buffer():
+ 
+ def load_emoji():
+     try:
+-        weechat_dir = w.info_get("weechat_data_dir", "") or w.info_get(
+-            "weechat_dir", ""
+-        )
+-        weechat_sharedir = w.info_get("weechat_sharedir", "")
+-        local_weemoji, global_weemoji = (
+-            "{}/weemoji.json".format(path) for path in (weechat_dir, weechat_sharedir)
+-        )
+-        path = (
+-            global_weemoji
+-            if os.path.exists(global_weemoji) and not os.path.exists(local_weemoji)
+-            else local_weemoji
+-        )
+-        with open(path, "r") as ef:
++        with open("@out@/share/wee-slack/weemoji.json", "r") as ef:
+             emojis = json.loads(ef.read())
+             if "emoji" in emojis:
+                 print_error(
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
index c42fe55169ea..c82fb9ca7395 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -73,6 +73,7 @@ in buildPythonPackage {
   postFixup = ''
     addToSearchPath program_PYTHONPATH $out/${python.sitePackages}
     patchPythonScript $out/share/matrix.py
+    substituteInPlace $out/${python.sitePackages}/matrix/server.py --replace \"matrix_sso_helper\" \"$out/bin/matrix_sso_helper\"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
index 8a5f607dd32c..2e6c8cf02368 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -9,7 +9,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "0wpfqbqjlfb9z0hafvdhkm7qw56cr9kfy6n8vb0q42dwlghpz1ff";
   };
 
-  nativeBuildInputs = with python3Packages; [ sphinx setuptools_scm ];
+  nativeBuildInputs = with python3Packages; [ sphinx setuptools-scm ];
 
   propagatedBuildInputs = with python3Packages; [
     python3Packages.setuptools python3Packages.notmuch chardet dkimpy
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
index 570b2d13be14..4401a0a7df80 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gnome3, gmime3, webkitgtk, ronn
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gnome, gmime3, webkitgtk, ronn
 , libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf, vim_configurable
 , gtkmm3, libpeas, gsettings-desktop-schemas, gobject-introspection, python3
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gtkmm3 gmime3 webkitgtk libsass libpeas
     python3
-    notmuch boost gsettings-desktop-schemas gnome3.adwaita-icon-theme
+    notmuch boost gsettings-desktop-schemas gnome.adwaita-icon-theme
     glib-networking protobuf
     vim
   ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index 3471795b435b..ad43ed97e09c 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, gnome3, cmake, gettext, intltool, pkg-config, evolution-data-server, evolution
+{ lib, stdenv, fetchurl, gnome, cmake, gettext, intltool, pkg-config, evolution-data-server, evolution
 , sqlite, gtk3, webkitgtk, libgdata, libmspack }:
 
 stdenv.mkDerivation rec {
   pname = "evolution-ews";
-  version = "3.38.3";
+  version = "3.40.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1s2jpviliazmhnpkh8dc57ga3c3612f2rnc0nfya5ndbi6lpzxhi";
+    sha256 = "1kgxdacqqcq8yfkij6vyqlk5r4yqvw7gh7mxqii670hrn1mb2s50";
   };
 
   nativeBuildInputs = [ cmake gettext intltool pkg-config ];
@@ -19,23 +19,17 @@ stdenv.mkDerivation rec {
     libmspack
   ];
 
-  # Building with libmspack as reccommended: https://wiki.gnome.org/Apps/Evolution/Building#Build_evolution-ews
   cmakeFlags = [
+    # Building with libmspack as recommended: https://wiki.gnome.org/Apps/Evolution/Building#Build_evolution-ews
     "-DWITH_MSPACK=ON"
+    # don't try to install into ${evolution}
+    "-DFORCE_INSTALL_PREFIX=ON"
   ];
 
-  PKG_CONFIG_EVOLUTION_SHELL_3_0_ERRORDIR = "${placeholder "out"}/share/evolution/errors";
-  PKG_CONFIG_EVOLUTION_SHELL_3_0_PRIVLIBDIR = "${placeholder "out"}/lib/evolution";
-  PKG_CONFIG_CAMEL_1_2_CAMEL_PROVIDERDIR = "${placeholder "out"}/lib/evolution-data-server/camel-providers";
-  PKG_CONFIG_LIBEDATA_BOOK_1_2_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/addressbook-backends";
-  PKG_CONFIG_LIBEDATA_CAL_2_0_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/calendar-backends";
-  PKG_CONFIG_LIBEBACKEND_1_2_MODULEDIR = "${placeholder "out"}/lib/evolution-data-server/registry-modules";
-  PKG_CONFIG_EVOLUTION_SHELL_3_0_MODULEDIR = "${placeholder "out"}/lib/evolution/modules";
-  PKG_CONFIG_EVOLUTION_DATA_SERVER_1_2_PRIVDATADIR = "${placeholder "out"}/share/evolution-data-server";
-
    passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "evolution-ews";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index e17507366ffa..53fe3d6f9496 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -24,7 +24,7 @@
 , db
 , gcr
 , sqlite
-, gnome3
+, gnome
 , librsvg
 , gdk-pixbuf
 , libsecret
@@ -42,11 +42,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.38.4";
+  version = "3.40.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "NB+S0k4rRMJ4mwA38aiU/xZUh9qksAuA+uMTii4Fr9Q=";
+    sha256 = "07n4sbgsh0y9hrn52ymvy45ah65ll55gglgvqqi3h9nhkyy64y9g";
   };
 
   nativeBuildInputs = [
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     bogofilter
     db
     evolution-data-server
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     gdk-pixbuf
     glib
     glib-networking
-    gnome3.gnome-desktop
+    gnome.gnome-desktop
     gsettings-desktop-schemas
     gst_all_1.gst-plugins-base
     gst_all_1.gstreamer
@@ -114,13 +114,10 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  patches = [
-    ./moduledir_from_env.patch
-  ];
-
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "evolution";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/moduledir_from_env.patch b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/moduledir_from_env.patch
deleted file mode 100644
index 2a5edfb9a5a1..000000000000
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/moduledir_from_env.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/src/shell/main.c b/src/shell/main.c
-index 5d089225ca..030908d684 100644
---- a/src/shell/main.c
-+++ b/src/shell/main.c
-@@ -407,7 +407,15 @@ create_default_shell (void)
- 	}
-
- 	/* Load all shared library modules. */
--	module_types = e_module_load_all_in_directory (EVOLUTION_MODULEDIR);
-+	const gchar *modules_directory = EVOLUTION_MODULEDIR;
-+	const gchar *modules_directory_env;
-+
-+	modules_directory_env = g_getenv ("EVOLUTION_MODULEDIR");
-+	if (modules_directory_env &&
-+	    g_file_test (modules_directory_env, G_FILE_TEST_IS_DIR))
-+		modules_directory = g_strdup (modules_directory_env);
-+
-+	module_types = e_module_load_all_in_directory (modules_directory);
- 	g_list_free_full (module_types, (GDestroyNotify) g_type_module_unuse);
-
- 	flags = G_APPLICATION_HANDLES_OPEN |
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
index ea3f09b8f4c3..7837393926f6 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
@@ -1,8 +1,8 @@
-{ lib, makeWrapper, symlinkJoin, gnome3, plugins }:
+{ lib, makeWrapper, symlinkJoin, gnome, plugins }:
 
 symlinkJoin {
   name = "evolution-with-plugins";
-  paths = [ gnome3.evolution-data-server ] ++ plugins;
+  paths = [ gnome.evolution-data-server ] ++ plugins;
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -10,13 +10,7 @@ symlinkJoin {
     for i in $out/bin/* $out/libexec/**; do
     if [ ! -d $i ]; then
       echo wrapping $i
-      wrapProgram $i \
-        --set LD_LIBRARY_PATH "$out/lib" \
-        --set EDS_ADDRESS_BOOK_MODULES "$out/lib/evolution-data-server/addressbook-backends/" \
-        --set EDS_CALENDAR_MODULES "$out/lib/evolution-data-server/calendar-backends/" \
-        --set EDS_CAMEL_PROVIDER_DIR "$out/lib/evolution-data-server/camel-providers/" \
-        --set EDS_REGISTRY_MODULES "$out/lib/evolution-data-server/registry-modules/" \
-        --set EVOLUTION_MODULEDIR "$out/lib/evolution/modules"
+      wrapProgram $i --set EDS_EXTRA_PREFIXES "${lib.concatStringsSep ":" plugins}"
     fi
     done
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix
index 8b601101845e..b1c709b055b9 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix
@@ -11,16 +11,20 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "himalaya";
-  version = "0.2.7";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "soywod";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yp3gc5hmlrs5rcmb2qbi4iqb5ndflgqw20qa7ziqayrdd15kzpn";
+    sha256 = "sha256-6RgT/SxO4vsk8Yx2AbaNIFvnAvgDmeTXvb/v6nUJxhc=";
   };
 
-  cargoSha256 = "1abz3s9c3byqc0vaws839hjlf96ivq4zbjyijsbg004ffbmbccpn";
+  cargoSha256 = "sha256-NEuIh7FwIdAWzlChna3+G0VukfV8nYZfVWa+3LxQCIA=";
+
+  # use --lib flag to avoid test with imap server
+  # https://github.com/soywod/himalaya/issues/145
+  cargoTestFlags = [ "--lib" ];
 
   nativeBuildInputs = [ ]
     ++ lib.optionals (enableCompletions) [ installShellFiles ]
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
index a27f3c87e03f..6c0de05a7404 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , autoPatchelfHook
-, alsaLib
+, alsa-lib
 , coreutils
 , db
 , dpkg
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     db
     glib
     gtk3
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
     libsecret
     nss
     xorg.libxkbfile
+    xorg.libXdamage
     xorg.libXScrnSaver
     xorg.libXtst
   ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
index 278561e0e5f4..f24ed3a51df6 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, lib, fetchFromGitHub, installShellFiles, libiconv, ruby ? null }:
+{ coreutils, fetchFromGitHub, fetchpatch, file, gawk, gnugrep, gnused
+, installShellFiles, less, lib, libiconv, makeWrapper, nano, stdenv, ruby
+}:
 
 stdenv.mkDerivation rec {
   pname = "mblaze";
   version = "1.1";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
   buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   src = fetchFromGitHub {
@@ -22,6 +24,24 @@ stdenv.mkDerivation rec {
     installShellCompletion contrib/_mblaze
   '' + lib.optionalString (ruby != null) ''
     install -Dt $out/bin contrib/msuck contrib/mblow
+
+    # The following wrappings are used to preserve the executable
+    # names (the value of $0 in a script). The script mcom is
+    # designed to be run directly or via symlinks such as mrep. Using
+    # symlinks changes the value of $0 in the script, and makes it
+    # behave differently. When using the wrapProgram tool, the resulting
+    # wrapper breaks this behaviour. The following wrappers preserve it.
+
+    mkdir -p $out/wrapped
+    for x in mcom mbnc mfwd mrep; do
+      mv $out/bin/$x $out/wrapped
+      makeWrapper $out/wrapped/$x $out/bin/$x \
+        --argv0 $out/bin/$x \
+        --prefix PATH : $out/bin \
+        --prefix PATH : ${lib.makeBinPath [
+          coreutils file gawk gnugrep gnused
+        ]}
+    done
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
index 6cd0b3db7863..a3a6051ef0c0 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
@@ -9,7 +9,7 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "02zjwa7zbcbqj76l0qmg7bbf3fqli60pl2apby3j4zwzcrrryczs";
   };
 
-  nativeBuildInputs = with python3.pkgs; [ setuptools_scm ];
+  nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
 
   propagatedBuildInputs = with python3.pkgs; [
     beautifulsoup4
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
index 27c06c95d993..b5f938b264ec 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.0.6";
+  version = "2.0.7";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "165mpivdhvhavglykwlz0hss2akxd6i6l40rgxs29mjzi52irqw1";
+    sha256 = "sha256-lXaIxqUhVhmS1PLyfPn+sjnHxsAELGBhwOR0p90mzJE=";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
index b2187371f299..50b3b66f15dc 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
+{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, fetchpatch
 , ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
 , lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
 }:
@@ -14,6 +14,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ADg/+gmndOiuQHsncOzS5K4chthXeUFz6RRJsrZNeZY=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2021-32055.patch";
+      url = "https://github.com/neomutt/neomutt/commit/fa1db5785e5cfd9d3cd27b7571b9fe268d2ec2dc.patch";
+      sha256 = "0bb7gisjynq3w7hhl6vxa469h609bcz6fkdi8vf740pqrwhk68yn";
+    })
+  ];
+
   buildInputs = [
     cyrus_sasl gss gpgme libkrb5 libidn ncurses
     notmuch openssl perl lmdb
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
deleted file mode 100644
index dda6abac8e56..000000000000
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
+++ /dev/null
@@ -1,184 +0,0 @@
-# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
-# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
-{ lib, stdenv, fetchurl, config, makeWrapper
-, alsaLib
-, at-spi2-atk
-, atk
-, cairo
-, cups
-, curl
-, dbus-glib
-, dbus
-, fontconfig
-, freetype
-, gdk-pixbuf
-, glib
-, glibc
-, gtk2
-, gtk3
-, libkrb5
-, libX11
-, libXScrnSaver
-, libXcomposite
-, libXcursor
-, libXdamage
-, libXext
-, libXfixes
-, libXi
-, libXinerama
-, libXrender
-, libXt
-, libxcb
-, libcanberra
-, gnome3
-, libGLU, libGL
-, nspr
-, nss
-, pango
-, writeScript
-, xidel
-, coreutils
-, gnused
-, gnugrep
-, gnupg
-, runtimeShell
-}:
-
-# imports `version` and `sources`
-with (import ./68_sources.nix);
-
-let
-  arch = if stdenv.hostPlatform.system == "i686-linux"
-    then "linux-i686"
-    else "linux-x86_64";
-
-  isPrefixOf = prefix: string:
-    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
-
-  sourceMatches = locale: source:
-      (isPrefixOf source.locale locale) && source.arch == arch;
-
-  systemLocale = config.i18n.defaultLocale or "en-US";
-
-  defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
-
-  source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
-
-  name = "thunderbird-bin-${version}";
-in
-
-stdenv.mkDerivation {
-  inherit name;
-
-  src = fetchurl {
-    url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
-    inherit (source) sha256;
-  };
-
-  phases = "unpackPhase installPhase";
-
-  libPath = lib.makeLibraryPath
-    [ stdenv.cc.cc
-      alsaLib
-      at-spi2-atk
-      atk
-      cairo
-      cups
-      curl
-      dbus-glib
-      dbus
-      fontconfig
-      freetype
-      gdk-pixbuf
-      glib
-      glibc
-      gtk2
-      gtk3
-      libkrb5
-      libX11
-      libXScrnSaver
-      libXcomposite
-      libXcursor
-      libXdamage
-      libXext
-      libXfixes
-      libXi
-      libXinerama
-      libXrender
-      libXt
-      libxcb
-      libcanberra
-      libGLU libGL
-      nspr
-      nss
-      pango
-    ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [
-      stdenv.cc.cc
-    ];
-
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase =
-    ''
-      mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
-      cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
-
-      mkdir -p "$out/bin"
-      ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
-
-      for executable in \
-        thunderbird crashreporter thunderbird-bin plugin-container updater
-      do
-        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          "$out/usr/lib/thunderbird-bin-${version}/$executable"
-      done
-
-      find . -executable -type f -exec \
-        patchelf --set-rpath "$libPath" \
-          "$out/usr/lib/thunderbird-bin-${version}/{}" \;
-
-      # Create a desktop item.
-      mkdir -p $out/share/applications
-      cat > $out/share/applications/thunderbird.desktop <<EOF
-      [Desktop Entry]
-      Type=Application
-      Exec=$out/bin/thunderbird
-      Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
-      Name=Thunderbird
-      GenericName=Mail Reader
-      Categories=Application;Network;
-      EOF
-
-      # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
-      # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
-      #   commit 87e261843c4236c541ee0113988286f77d2fa1ee
-      wrapProgram "$out/bin/thunderbird" \
-        --argv0 "$out/bin/.thunderbird-wrapped" \
-        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
-        --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
-        --set SNAP_NAME "thunderbird" \
-        --set MOZ_LEGACY_PROFILES 1 \
-        --set MOZ_ALLOW_DOWNGRADE 1
-    '';
-
-  passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
-    inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
-    baseName = "thunderbird";
-    channel = "release";
-    basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
-    baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
-  };
-  meta = with lib; {
-    description = "Mozilla Thunderbird, a full-featured email client (binary package)";
-    homepage = "http://www.mozilla.org/thunderbird/";
-    license = {
-      free = false;
-      url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
-    };
-    maintainers = with lib.maintainers; [ ];
-    platforms = platforms.linux;
-    knownVulnerabilities = [ "Support ended around Semptember 2020." ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
deleted file mode 100644
index c48a6d1c6063..000000000000
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
+++ /dev/null
@@ -1,615 +0,0 @@
-{
-  version = "68.12.0";
-  sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ar/thunderbird-68.12.0.tar.bz2";
-      locale = "ar";
-      arch = "linux-x86_64";
-      sha256 = "70cfb9e6a7a1f285f37a8f13c9a010237e6aabf815b77a12f54ee0deedd36400";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ast/thunderbird-68.12.0.tar.bz2";
-      locale = "ast";
-      arch = "linux-x86_64";
-      sha256 = "5645657f20d37ffdb11f383f164f03c66ed2024244849b09bfa60075d5d07490";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/be/thunderbird-68.12.0.tar.bz2";
-      locale = "be";
-      arch = "linux-x86_64";
-      sha256 = "d38cdcc2ba4534c23a1bb42b93f271623c497f48e1d255a23bf12a368ff339bd";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/bg/thunderbird-68.12.0.tar.bz2";
-      locale = "bg";
-      arch = "linux-x86_64";
-      sha256 = "c8883242683dec57f9db502d96d2036ec46753f474a33c0f1ae31f97f2c3113c";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/br/thunderbird-68.12.0.tar.bz2";
-      locale = "br";
-      arch = "linux-x86_64";
-      sha256 = "cfb669e2378f97689a14f23e2c55ef4987e2508695eb195be3af75ed1d648345";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ca/thunderbird-68.12.0.tar.bz2";
-      locale = "ca";
-      arch = "linux-x86_64";
-      sha256 = "9ae4b43e0d5d9edd83291f0be7d53d07e5c84f1d0ad4348654136543b7b53a54";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cak/thunderbird-68.12.0.tar.bz2";
-      locale = "cak";
-      arch = "linux-x86_64";
-      sha256 = "d6d635a15b913679ed943c3501dd03140d099ff36b48c8731a47eacda1b5232b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cs/thunderbird-68.12.0.tar.bz2";
-      locale = "cs";
-      arch = "linux-x86_64";
-      sha256 = "616fbf24e36d63ce3cbc957d69b8972d517524c613a22bedcf5b57534f9a9a41";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cy/thunderbird-68.12.0.tar.bz2";
-      locale = "cy";
-      arch = "linux-x86_64";
-      sha256 = "548c51228d2f3003bb94e1bee91cea0d2edb95bd0f86ee4259c8daef90a2dca8";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/da/thunderbird-68.12.0.tar.bz2";
-      locale = "da";
-      arch = "linux-x86_64";
-      sha256 = "ad0e4b7a693d881b8875a5b8cc3e607a3883df759278129f0933522b9a6acd24";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/de/thunderbird-68.12.0.tar.bz2";
-      locale = "de";
-      arch = "linux-x86_64";
-      sha256 = "bf9b70b345ffe5df03365d819c5abc3339ed3af4d8a716cdfe7099134864a9b4";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/dsb/thunderbird-68.12.0.tar.bz2";
-      locale = "dsb";
-      arch = "linux-x86_64";
-      sha256 = "a2cd7ffb0e8b4c3d1715c18e636d0dcd5efa245200d6d0f14048fc4b399b8121";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/el/thunderbird-68.12.0.tar.bz2";
-      locale = "el";
-      arch = "linux-x86_64";
-      sha256 = "07836ce122936848e26cd5a1522967760bee67654582076c53e4ec183cc4c40e";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-GB/thunderbird-68.12.0.tar.bz2";
-      locale = "en-GB";
-      arch = "linux-x86_64";
-      sha256 = "c89fa35af79eca3cc26b492c602a3f8af0dbaf6ce4ee3af93d93f10daf4e9d6e";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-US/thunderbird-68.12.0.tar.bz2";
-      locale = "en-US";
-      arch = "linux-x86_64";
-      sha256 = "6eeea0de838909f91da7270e42ae1513d2b801f412fc758f2f8c682d260a7c24";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-AR/thunderbird-68.12.0.tar.bz2";
-      locale = "es-AR";
-      arch = "linux-x86_64";
-      sha256 = "e9d84032a91f7feb2db3d22a500c564f273c2b637f97aaab2edf3209b93dda1d";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-ES/thunderbird-68.12.0.tar.bz2";
-      locale = "es-ES";
-      arch = "linux-x86_64";
-      sha256 = "a986e8a48b59354421193f2dd01e3c291fb6c98031af43531e723dc217a43d4a";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/et/thunderbird-68.12.0.tar.bz2";
-      locale = "et";
-      arch = "linux-x86_64";
-      sha256 = "2f7508e83aba4fd64a817c7eb4b44d4ea9371956339a009ba541bf3a349693cf";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/eu/thunderbird-68.12.0.tar.bz2";
-      locale = "eu";
-      arch = "linux-x86_64";
-      sha256 = "edbc5ff4ba45106233cdbf5255405c4ee52ba7e6811736958323a616881b943f";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fi/thunderbird-68.12.0.tar.bz2";
-      locale = "fi";
-      arch = "linux-x86_64";
-      sha256 = "f4ad740a724efdbfec54445304ca75e9a16e0881bc18789b8ea35632d8857d4b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fr/thunderbird-68.12.0.tar.bz2";
-      locale = "fr";
-      arch = "linux-x86_64";
-      sha256 = "ebf60a227c9fe5237eff22fb81f3c8bc02a593de823d6f0ad9b67f07af129dea";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fy-NL/thunderbird-68.12.0.tar.bz2";
-      locale = "fy-NL";
-      arch = "linux-x86_64";
-      sha256 = "b12983077a62c5bf7353f50dd951348a457ce07f5beb2a579f199c4d77ed0906";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ga-IE/thunderbird-68.12.0.tar.bz2";
-      locale = "ga-IE";
-      arch = "linux-x86_64";
-      sha256 = "aa7c3a4b54fd6fef0f120a6748c45a3f379268f31e087cb3df07d270bf060bad";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gd/thunderbird-68.12.0.tar.bz2";
-      locale = "gd";
-      arch = "linux-x86_64";
-      sha256 = "39fadb2bd4c01da0eb188cb9f52ccd726ec9f7eb5ced44e2a30ee0cfac2527bf";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gl/thunderbird-68.12.0.tar.bz2";
-      locale = "gl";
-      arch = "linux-x86_64";
-      sha256 = "b4ee1f89b0326b22fc7a5b980b857c2652d6881d096060a8bc083015b47762d8";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/he/thunderbird-68.12.0.tar.bz2";
-      locale = "he";
-      arch = "linux-x86_64";
-      sha256 = "cefbc742672942e310dc9f4dbcefc8b66cf01d58ac64448ac8c0dc33fdace5ae";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hr/thunderbird-68.12.0.tar.bz2";
-      locale = "hr";
-      arch = "linux-x86_64";
-      sha256 = "9e132811cb6bd98faee86e298b78e845727bfded84c0cdab41608ed1565f1aee";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hsb/thunderbird-68.12.0.tar.bz2";
-      locale = "hsb";
-      arch = "linux-x86_64";
-      sha256 = "2a41d1e188fd5fed93a37a1bedc67cb745367447504a76836f79928194730d3b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hu/thunderbird-68.12.0.tar.bz2";
-      locale = "hu";
-      arch = "linux-x86_64";
-      sha256 = "9196df7850b9cff69f52b5db69ec3b64cfa312bba5669380c137b95a8140cf39";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hy-AM/thunderbird-68.12.0.tar.bz2";
-      locale = "hy-AM";
-      arch = "linux-x86_64";
-      sha256 = "4a08137a9a714677ecf86a24f165047b809e22eff50d196b92c153e59f943c30";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/id/thunderbird-68.12.0.tar.bz2";
-      locale = "id";
-      arch = "linux-x86_64";
-      sha256 = "39784aab0bc3253af47cdcd95824eccdecae4dac819bacf6a04daa7b5c86d6e3";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/is/thunderbird-68.12.0.tar.bz2";
-      locale = "is";
-      arch = "linux-x86_64";
-      sha256 = "a041d1af23e9c64967e4d014b6a84ddc80ad24e852146e448f6b380cdd672e67";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/it/thunderbird-68.12.0.tar.bz2";
-      locale = "it";
-      arch = "linux-x86_64";
-      sha256 = "b0e3161c801fbaee2f589b1bc61a4fba9968f5f363a62cf0f8af855d23e4782c";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ja/thunderbird-68.12.0.tar.bz2";
-      locale = "ja";
-      arch = "linux-x86_64";
-      sha256 = "ad416d47930d81be9ac2f20b3699f4c74471c36e08b14f9d5c6ee1af97c7c9d4";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ka/thunderbird-68.12.0.tar.bz2";
-      locale = "ka";
-      arch = "linux-x86_64";
-      sha256 = "3b30bc5f0971310d71e1909b4ed891481457ac8baf11c1e505c3400b2a7cfb63";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kab/thunderbird-68.12.0.tar.bz2";
-      locale = "kab";
-      arch = "linux-x86_64";
-      sha256 = "abdc58d5d5ef251e63c0c40a48460f90e299a4420cbe4e290d519fbed4c335b8";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kk/thunderbird-68.12.0.tar.bz2";
-      locale = "kk";
-      arch = "linux-x86_64";
-      sha256 = "08018b951de59b1a92717fc82bd98a0c324a019ee0ae14888f09c5351a586284";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ko/thunderbird-68.12.0.tar.bz2";
-      locale = "ko";
-      arch = "linux-x86_64";
-      sha256 = "1178adc42b3a2ddac46dd50ad8436d1be50db409963e8fac3beb22a431f885fe";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/lt/thunderbird-68.12.0.tar.bz2";
-      locale = "lt";
-      arch = "linux-x86_64";
-      sha256 = "18d88a8cbb24d2a78af0de282187a743e707136fdb61912e5f64bf75730e3a76";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ms/thunderbird-68.12.0.tar.bz2";
-      locale = "ms";
-      arch = "linux-x86_64";
-      sha256 = "e1754cfbf20e286fd6304b8d75337e3794893c5ebd9b242cf624090e6fc6e9ee";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nb-NO/thunderbird-68.12.0.tar.bz2";
-      locale = "nb-NO";
-      arch = "linux-x86_64";
-      sha256 = "6379f6dca3d8bacb466044f0a7d11b32eb61166d3f14c37431f77843eb884c90";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nl/thunderbird-68.12.0.tar.bz2";
-      locale = "nl";
-      arch = "linux-x86_64";
-      sha256 = "66a56e218365bb260980848427609d390674e2ba3c70b9adc4121f73c861d9b8";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nn-NO/thunderbird-68.12.0.tar.bz2";
-      locale = "nn-NO";
-      arch = "linux-x86_64";
-      sha256 = "ccdb135d43f5542151fe2c99a8e13cebfbc032367abb0308213433b753dc8125";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pl/thunderbird-68.12.0.tar.bz2";
-      locale = "pl";
-      arch = "linux-x86_64";
-      sha256 = "5dc2151d1bb956c4b6fbd1b6185d9328f7091e60fdcd51bad5a9ebaa8fcbb7d7";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-BR/thunderbird-68.12.0.tar.bz2";
-      locale = "pt-BR";
-      arch = "linux-x86_64";
-      sha256 = "5ebf77d47bf45b058aaeca857060c908dbf7036bae2c2c5812ff145aed840203";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-PT/thunderbird-68.12.0.tar.bz2";
-      locale = "pt-PT";
-      arch = "linux-x86_64";
-      sha256 = "73baa68f79b4a15795fc426dfc9a8d573a05e4ab8a663d122cfd802f93941825";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/rm/thunderbird-68.12.0.tar.bz2";
-      locale = "rm";
-      arch = "linux-x86_64";
-      sha256 = "29f8ba57d9000803bae795c2ff977347af9a1f0df123337eaab3bdcc20786734";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ro/thunderbird-68.12.0.tar.bz2";
-      locale = "ro";
-      arch = "linux-x86_64";
-      sha256 = "b8233ad81c6620c26a02457b9235ce0be0c5d93b81f88d9ddc84bc12f869dbad";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ru/thunderbird-68.12.0.tar.bz2";
-      locale = "ru";
-      arch = "linux-x86_64";
-      sha256 = "f959f786dbbb7d06cb33eca24efd9e2763c5ca73fc4ba47e9b933b6298d7f026";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/si/thunderbird-68.12.0.tar.bz2";
-      locale = "si";
-      arch = "linux-x86_64";
-      sha256 = "dcf59c0c1ea0acdcc894463b04c54339a72dcceb25fe5478608265eb3ead226a";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sk/thunderbird-68.12.0.tar.bz2";
-      locale = "sk";
-      arch = "linux-x86_64";
-      sha256 = "2a06329fd4a9dd6333e2d73a44fca7eaf593032e8ace33736a03dbfffb2920a0";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sl/thunderbird-68.12.0.tar.bz2";
-      locale = "sl";
-      arch = "linux-x86_64";
-      sha256 = "f7bd3e3a407dbab07836342ff29fc143fe3904e7f878ea719522ade3fc4f6b84";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sq/thunderbird-68.12.0.tar.bz2";
-      locale = "sq";
-      arch = "linux-x86_64";
-      sha256 = "0edc58751a6794494efab8b0a2ce852374a747ccb73b38455475f0099ea0f238";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sr/thunderbird-68.12.0.tar.bz2";
-      locale = "sr";
-      arch = "linux-x86_64";
-      sha256 = "91ac5cc0646c062b00b3b064af53ba03c7e034b75afa13dca7586eb80578d377";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sv-SE/thunderbird-68.12.0.tar.bz2";
-      locale = "sv-SE";
-      arch = "linux-x86_64";
-      sha256 = "5aa21e4b78f4294835197f784a651f17453d83fce98e7140e49c6da117464fd9";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/tr/thunderbird-68.12.0.tar.bz2";
-      locale = "tr";
-      arch = "linux-x86_64";
-      sha256 = "3ab2639dd126e3ed9b031fc10f4396c7d98ffa7b7ffca6a9b3f2f47590e3b83c";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uk/thunderbird-68.12.0.tar.bz2";
-      locale = "uk";
-      arch = "linux-x86_64";
-      sha256 = "59be2ddc7c65405e0b3854c2a551dab73df9736842ee362b2a20dc9088242a96";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uz/thunderbird-68.12.0.tar.bz2";
-      locale = "uz";
-      arch = "linux-x86_64";
-      sha256 = "ae196683b283525511fbd2e3ad428339672f2f1339566a323e01f6f649d333c1";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/vi/thunderbird-68.12.0.tar.bz2";
-      locale = "vi";
-      arch = "linux-x86_64";
-      sha256 = "9d66b8e4eefbb6b8c0d9893b056fc684310ae583921d626cb676cd8a7b4b39de";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-CN/thunderbird-68.12.0.tar.bz2";
-      locale = "zh-CN";
-      arch = "linux-x86_64";
-      sha256 = "2839f2f076a8a6e283a3ffdd6100986a11d19b9108fce074f8e7f127cb0f375e";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-TW/thunderbird-68.12.0.tar.bz2";
-      locale = "zh-TW";
-      arch = "linux-x86_64";
-      sha256 = "02ef645a7de8abc1c5dd92eb685d64570cf1db971cfe7e248111d6a17b3ddcd9";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ar/thunderbird-68.12.0.tar.bz2";
-      locale = "ar";
-      arch = "linux-i686";
-      sha256 = "5c4d899245a38626fa18d849bcf01d50125dee60d715d76224ca0bb4623f73be";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ast/thunderbird-68.12.0.tar.bz2";
-      locale = "ast";
-      arch = "linux-i686";
-      sha256 = "f657bdc5b43b75e43578251abccf5c7b9e6d0848fd55c6105060daba33c36721";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/be/thunderbird-68.12.0.tar.bz2";
-      locale = "be";
-      arch = "linux-i686";
-      sha256 = "669a2cbfe600727b9d9a8ed5046272a1f19b80b6af9a6a6977ce1b89f60fa36e";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/bg/thunderbird-68.12.0.tar.bz2";
-      locale = "bg";
-      arch = "linux-i686";
-      sha256 = "e1b33857544c10c0191316f6e3d16b34957196b35a922c884315714fe851389b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/br/thunderbird-68.12.0.tar.bz2";
-      locale = "br";
-      arch = "linux-i686";
-      sha256 = "b9e4a530529449446fe5a302277878c4d2192ef7bb48206f8528024087f520ea";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ca/thunderbird-68.12.0.tar.bz2";
-      locale = "ca";
-      arch = "linux-i686";
-      sha256 = "aa5e4ae20fa9e5dbb8c0ba275ba18d1ba94900094ba3186aac40ffb27396a96f";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cak/thunderbird-68.12.0.tar.bz2";
-      locale = "cak";
-      arch = "linux-i686";
-      sha256 = "a812c9150feec48e2ebfb1786f5e30ade33203160fa4102382435641caeaf3b8";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cs/thunderbird-68.12.0.tar.bz2";
-      locale = "cs";
-      arch = "linux-i686";
-      sha256 = "75813ad7dd0ae5c073964296dd687e5c1289178491adc98d40e853ed812bdca9";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cy/thunderbird-68.12.0.tar.bz2";
-      locale = "cy";
-      arch = "linux-i686";
-      sha256 = "b3894f05cf905aa96612860dcef0bdb4bb9564901ef84172e11856a9fa9e0ca4";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/da/thunderbird-68.12.0.tar.bz2";
-      locale = "da";
-      arch = "linux-i686";
-      sha256 = "a4f21bd2017043872a962167f98db358b824ae1821fcf03e2df1bef7783e07c0";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/de/thunderbird-68.12.0.tar.bz2";
-      locale = "de";
-      arch = "linux-i686";
-      sha256 = "3a079685f75d2ec0320ec9e366b4e037954d67fa3f9e3bda055b8cd7de8fbdd0";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/dsb/thunderbird-68.12.0.tar.bz2";
-      locale = "dsb";
-      arch = "linux-i686";
-      sha256 = "295a0f56429b3638dd0dcbf8d97a6376636b67e22d493ce8dfaceeb579466d18";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/el/thunderbird-68.12.0.tar.bz2";
-      locale = "el";
-      arch = "linux-i686";
-      sha256 = "86e4b98ede80cc07cc1aec043af82068a73b7c76820f70df8314e3b91c108d18";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-GB/thunderbird-68.12.0.tar.bz2";
-      locale = "en-GB";
-      arch = "linux-i686";
-      sha256 = "2cb03a17f88e3826181911ec6a7455528d1e4c051b065252c964c6c0794175e4";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-US/thunderbird-68.12.0.tar.bz2";
-      locale = "en-US";
-      arch = "linux-i686";
-      sha256 = "11fe953ede0d99656534ac676f118e939024744c5301d378acbeac6792e668e5";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-AR/thunderbird-68.12.0.tar.bz2";
-      locale = "es-AR";
-      arch = "linux-i686";
-      sha256 = "596264396a25adb873320222697e7f1a58aaab484de9c0d2e85f99962b6d893d";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-ES/thunderbird-68.12.0.tar.bz2";
-      locale = "es-ES";
-      arch = "linux-i686";
-      sha256 = "a9512af30e2b1613a6bd1ae6f4ce785f676b2cf70b80a37d85a5e1566bb2b35f";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/et/thunderbird-68.12.0.tar.bz2";
-      locale = "et";
-      arch = "linux-i686";
-      sha256 = "b7dcb196881a23e979edb5ae247a7c07b1cf1250cb4c159ce523d1a26be188c2";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/eu/thunderbird-68.12.0.tar.bz2";
-      locale = "eu";
-      arch = "linux-i686";
-      sha256 = "4066164b4c9242a9885bc2de802c4f5b6b594c928db36ac72c94faabaad86679";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fi/thunderbird-68.12.0.tar.bz2";
-      locale = "fi";
-      arch = "linux-i686";
-      sha256 = "a7c635cbbbc10725b28052ccc61603fb60b91e06bbf1f240561bdb8f941af55a";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fr/thunderbird-68.12.0.tar.bz2";
-      locale = "fr";
-      arch = "linux-i686";
-      sha256 = "7dba28adb1287e1aa9ae85840fc3aca42aaedd4b2c2aa6cc68d5f793549d19b7";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fy-NL/thunderbird-68.12.0.tar.bz2";
-      locale = "fy-NL";
-      arch = "linux-i686";
-      sha256 = "bd763e264eb684ec3b0b1f2c68ce295d1df86994d15f5c66c487e4742bfef86e";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ga-IE/thunderbird-68.12.0.tar.bz2";
-      locale = "ga-IE";
-      arch = "linux-i686";
-      sha256 = "52f9b5694efbdd8ecc76aef58695423c6a4b547b5b0cfedca313386b7500685e";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gd/thunderbird-68.12.0.tar.bz2";
-      locale = "gd";
-      arch = "linux-i686";
-      sha256 = "6c9c1b0f11ad13e0780371d54fedb52d2463713db3bc52adb72c8ea9ff80eb8f";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gl/thunderbird-68.12.0.tar.bz2";
-      locale = "gl";
-      arch = "linux-i686";
-      sha256 = "608bf5c0d6148cc3014758829ba06135222b462242456ca0984e7dc12654c2cd";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/he/thunderbird-68.12.0.tar.bz2";
-      locale = "he";
-      arch = "linux-i686";
-      sha256 = "f92d569a53f34bfdda4dac185834e5692526f13f20853d1943f165af33b54a37";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hr/thunderbird-68.12.0.tar.bz2";
-      locale = "hr";
-      arch = "linux-i686";
-      sha256 = "60d2f184219f8d17c2739ee3cc8463bed474142bd2caad74157b97db2306b27f";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hsb/thunderbird-68.12.0.tar.bz2";
-      locale = "hsb";
-      arch = "linux-i686";
-      sha256 = "40ffece26101b2f6a7789511b026d99234bd34ec78e566e7e25065ae3201d693";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hu/thunderbird-68.12.0.tar.bz2";
-      locale = "hu";
-      arch = "linux-i686";
-      sha256 = "e74da0bdb27fe3375dfbd1ab042892de3ded84f33a6f6d46e209fdcaa28183d0";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hy-AM/thunderbird-68.12.0.tar.bz2";
-      locale = "hy-AM";
-      arch = "linux-i686";
-      sha256 = "fd93972c11842b56453449e72617deb3177d020c8f25cf4d5fb687f4a3ddb5c0";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/id/thunderbird-68.12.0.tar.bz2";
-      locale = "id";
-      arch = "linux-i686";
-      sha256 = "546825968ad86e4c5c6effefd0f924cc1d10489fff7968f17401e3f84c4d1ab0";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/is/thunderbird-68.12.0.tar.bz2";
-      locale = "is";
-      arch = "linux-i686";
-      sha256 = "1f2e2228c685be2d65d6e0b92eef8ff3e58d7b772f846d0707a9b02e6d0ad306";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/it/thunderbird-68.12.0.tar.bz2";
-      locale = "it";
-      arch = "linux-i686";
-      sha256 = "41b27c8195432e1412e3c4645b823b8dd1f673eabf07ddc72f3d792d3f7488da";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ja/thunderbird-68.12.0.tar.bz2";
-      locale = "ja";
-      arch = "linux-i686";
-      sha256 = "68940d44d933bb7228d6f9a03406ca01903c54fdf57eb5a1e1033b12ef507df6";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ka/thunderbird-68.12.0.tar.bz2";
-      locale = "ka";
-      arch = "linux-i686";
-      sha256 = "ce0aff0fd47b00803ea66278b3514dcf65ecb5547878f8081f7ec6c1f411ce10";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kab/thunderbird-68.12.0.tar.bz2";
-      locale = "kab";
-      arch = "linux-i686";
-      sha256 = "3936b56eaa1e05a96626f7d10c8fcc3ba9014b1385b21243c049b133b923ddef";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kk/thunderbird-68.12.0.tar.bz2";
-      locale = "kk";
-      arch = "linux-i686";
-      sha256 = "7fa0aa64d0f0dcc6f71d6a21647cc4fccef935b783deb5d19b88f5b96b4b4ec4";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ko/thunderbird-68.12.0.tar.bz2";
-      locale = "ko";
-      arch = "linux-i686";
-      sha256 = "4bddd0ccb747bb12cdc6d88c2c9544354293000c586454bb5932f4d81afbf400";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/lt/thunderbird-68.12.0.tar.bz2";
-      locale = "lt";
-      arch = "linux-i686";
-      sha256 = "f1a3514188c1b887afd2c662a1b6abf6fe37b558864be0cc79e87ed147188461";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ms/thunderbird-68.12.0.tar.bz2";
-      locale = "ms";
-      arch = "linux-i686";
-      sha256 = "7ea045d6db78ec7d6ebf164c8e3d28c2540a573238de518e934646573aec71dc";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nb-NO/thunderbird-68.12.0.tar.bz2";
-      locale = "nb-NO";
-      arch = "linux-i686";
-      sha256 = "d2c0e2099ea60b9da95ebd9bd79a5d0a6a1ebc84b8b490511a68c81355f97761";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nl/thunderbird-68.12.0.tar.bz2";
-      locale = "nl";
-      arch = "linux-i686";
-      sha256 = "48741be79422d80140ec862d004fa75a407f67490f67a3e440c01e0defe1f85f";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nn-NO/thunderbird-68.12.0.tar.bz2";
-      locale = "nn-NO";
-      arch = "linux-i686";
-      sha256 = "b40f0d7112cadab322c8b71cacce5d6df87fb80f40cc55ca22c279016c3ea805";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pl/thunderbird-68.12.0.tar.bz2";
-      locale = "pl";
-      arch = "linux-i686";
-      sha256 = "e64b10526cb460f437427cc4a7ea90959cc693a75fd6a61b43e9d3fd76ded618";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-BR/thunderbird-68.12.0.tar.bz2";
-      locale = "pt-BR";
-      arch = "linux-i686";
-      sha256 = "bdb558f9430c06871954ec6c7d54267625184a0cba914a87ad199e8f32b03de2";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-PT/thunderbird-68.12.0.tar.bz2";
-      locale = "pt-PT";
-      arch = "linux-i686";
-      sha256 = "4631e8247446653e91f239fdb5ad3c8531f3d007dbdc83818178a4cdc525edf4";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/rm/thunderbird-68.12.0.tar.bz2";
-      locale = "rm";
-      arch = "linux-i686";
-      sha256 = "13e6aca7139fd89e83e7ae9b71253731f0954b0a83cc3560ecc00500b9bc1df7";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ro/thunderbird-68.12.0.tar.bz2";
-      locale = "ro";
-      arch = "linux-i686";
-      sha256 = "023a567c42dad9bdbd465c8b99f12cf5f667ef4691e16971e09496c4a7db0f12";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ru/thunderbird-68.12.0.tar.bz2";
-      locale = "ru";
-      arch = "linux-i686";
-      sha256 = "9ec35bbce5f026a4262a5d708b53a767f47ac8e90314513d36a587d1a49dbb6b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/si/thunderbird-68.12.0.tar.bz2";
-      locale = "si";
-      arch = "linux-i686";
-      sha256 = "c540b94a45deeddf1f7f5a8cca8de7e944ee8ad9f8595a308836c159901ec0b6";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sk/thunderbird-68.12.0.tar.bz2";
-      locale = "sk";
-      arch = "linux-i686";
-      sha256 = "5296241664023773d2c0c4fa55e74eb6470482389c834d1934c252f79e79ebff";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sl/thunderbird-68.12.0.tar.bz2";
-      locale = "sl";
-      arch = "linux-i686";
-      sha256 = "cd0376137d8018875873332fdfae3bc3c0d6b2a2b881dfa970d7d7999e8b312b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sq/thunderbird-68.12.0.tar.bz2";
-      locale = "sq";
-      arch = "linux-i686";
-      sha256 = "6fbf47759ca8c4d7cf30ca3af8a3fd35a01b7738422d29448cfd9eed81eba49b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sr/thunderbird-68.12.0.tar.bz2";
-      locale = "sr";
-      arch = "linux-i686";
-      sha256 = "636708320247c7c45622fd9179d5689da97472a9308f11810623129cf5a0e8d7";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sv-SE/thunderbird-68.12.0.tar.bz2";
-      locale = "sv-SE";
-      arch = "linux-i686";
-      sha256 = "9550c173b047e3ff774f4c3faf2c1f125b3abc34e6feb5801c108fda94e54e4e";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/tr/thunderbird-68.12.0.tar.bz2";
-      locale = "tr";
-      arch = "linux-i686";
-      sha256 = "ffe82a300c7fa7a0e826d11613f5187c003b009efa29f4755f17af0f88d9e73b";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uk/thunderbird-68.12.0.tar.bz2";
-      locale = "uk";
-      arch = "linux-i686";
-      sha256 = "b018769149c0a4ff323b90b5d51465733629e7c527b39381ba9696cb077ad767";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uz/thunderbird-68.12.0.tar.bz2";
-      locale = "uz";
-      arch = "linux-i686";
-      sha256 = "b0b59ac4d08c9f385f4ed7980065ce99ef24874734390a83af6e8fbd18173d99";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/vi/thunderbird-68.12.0.tar.bz2";
-      locale = "vi";
-      arch = "linux-i686";
-      sha256 = "901b40a99d84e7c7360fd5be6a14aa04ef6cc04fe1275cac26824b310bbd26e0";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-CN/thunderbird-68.12.0.tar.bz2";
-      locale = "zh-CN";
-      arch = "linux-i686";
-      sha256 = "509478710f7c4fb404eec9fed0b6d22f4c5d76fee09ed833dffcefdacc53d55c";
-    }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-TW/thunderbird-68.12.0.tar.bz2";
-      locale = "zh-TW";
-      arch = "linux-i686";
-      sha256 = "a12dd777cc3eaf629cc7a6f4b8d4744cf63c3e778e559d9b3ce332414e509515";
-    }
-    ];
-}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index d16cbfc1bca0..f3634b744aa4 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, config, makeWrapper
-, alsaLib
+, alsa-lib
 , at-spi2-atk
 , atk
 , cairo
@@ -13,7 +13,7 @@
 , gdk-pixbuf
 , glib
 , glibc
-, gnome3
+, gnome
 , gnugrep
 , gnupg
 , gnused
@@ -78,7 +78,7 @@ stdenv.mkDerivation {
 
   libPath = lib.makeLibraryPath
     [ stdenv.cc.cc
-      alsaLib
+      alsa-lib
       at-spi2-atk
       atk
       cairo
@@ -115,7 +115,7 @@ stdenv.mkDerivation {
       stdenv.cc.cc
     ];
 
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 7badbc2b10df..82bf1800bb05 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,665 +1,665 @@
 {
-  version = "78.10.0";
+  version = "78.11.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/af/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/af/thunderbird-78.11.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "25209094ced8e435c1d2b46f78e618b302b236995454bd494ed2c74357041012";
+      sha256 = "061da958c7e0b52c76cc3152cf541eabd855e7189f976b9743792e52ab733ea8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ar/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ar/thunderbird-78.11.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "8c414c7b5f45f358918360369fb768b9c9051ef870cae22faad70c0fc9dc9ddf";
+      sha256 = "915ca02f6e7639adef01d8e332133762bd3f88df6a1c12e86a86c04010efcd69";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ast/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ast/thunderbird-78.11.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "650309b5890f67fece320e25fc9e070b560fb37474c00f4f4e08e18ab30ef33a";
+      sha256 = "6a1995efbca69e251ca70af570b02d94a99f83ef7927d667f9f856febc53ff40";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/be/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/be/thunderbird-78.11.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "2cf57f5c44bf244c59d3cfb849b66ec53308aff381ce39ac16adbb53dcf11064";
+      sha256 = "28c87eb1651bb4fd00d8b52b3f0a4e0520ceeed76305ea124915c238562f28a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/bg/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/bg/thunderbird-78.11.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "348b23e62abe077e14235159d829b405b9fcb003dc7230883b10ee4f10b64f33";
+      sha256 = "24bb2cd51bdf4e99fe88a13c70289f3896cb17c911d556150f1c6e216f3ef5ce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/br/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/br/thunderbird-78.11.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "7baa2d4d149ae3011cb7f9ddc3e5a3f6536f7c8ed712e3a60d7f0c92547f1c18";
+      sha256 = "473fe2acadfa6e4f6ba8eddcfd4377c3eeb583f6510461e6f51b9dcd89d36ace";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ca/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ca/thunderbird-78.11.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "368f1b24edae884a2c1e961f938b085478151742b161e5f9016bbb92b3e2ab13";
+      sha256 = "d128adb596f6be2a940a2544ad653c812c177b3d08ddac7de716fc3ce603b71c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/cak/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/cak/thunderbird-78.11.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "38bb68cbe0054f6deac79ebd72ff5c9f28c9a2b9b638967da7d20442c909df2b";
+      sha256 = "cff975db463997677d392264e55bd73a3c1a36e34991f8bcbb0673980f428589";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/cs/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/cs/thunderbird-78.11.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "810fa4e2e3507d419d55f16d0816a326751d2211675b3ca335b08b9e46f8a65a";
+      sha256 = "90836d8c099594ca0e459d7d07232ab47d811cafc79ca5ad2999186f242fa8c2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/cy/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/cy/thunderbird-78.11.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "847867a78b1e583cca457436e57cebaf0c721121f61eb955cffc144cc255270f";
+      sha256 = "2a844b7afe834dc6e0ad291a6d5cb9ca0389d703f9a8ca385aabf5e5f012c4c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/da/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/da/thunderbird-78.11.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "d84a31c096f15d79b23e09f35ed2894dabc855c696b457405e2d638c52898945";
+      sha256 = "a37075627a6955abfc15508d2bb4a16ba330a4c64c89f95084635319ad5106e6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/de/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/de/thunderbird-78.11.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "2ad8585b955c60242747daf36855d6fb77658dd2dda75cb3ff8637c8ef07bc75";
+      sha256 = "6e03c8b0f791cc09b04b3114e8b44950de974beabf0563705af625ac1226dbb2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/dsb/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/dsb/thunderbird-78.11.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "84ac04cd5248ef47c49927edcdf71d2e8f7cf96139888289eb4d8898b5224f71";
+      sha256 = "546f10d4653940798540797deeec54287cd1275b5ebf350661d49cd313228ddb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/el/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/el/thunderbird-78.11.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "cf2760b5488590a76df140b7c877528bd76446187b673c82087b199e9e8f416d";
+      sha256 = "b6fa7ae657a03c4f91905e95931af05b9af588a067a03a3a8a0d9faa8d40b59d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/en-CA/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/en-CA/thunderbird-78.11.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "7006ac951a834ff689f4ee1ab5a0a4e051368cb33ceaea459467536e2f22b74b";
+      sha256 = "5507e9b74cea95681a2c7c21cb5127a7369366bbdaa6a24dbafc7a4fbe11b924";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/en-GB/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/en-GB/thunderbird-78.11.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "e77850b2ff0b91f92ee18990715a75b7c73e226a6cdd9dec6b3fd689c3571053";
+      sha256 = "fcaa2b652b43367fcb720e8386cdc92346318bab67fd720c5958e7ec236c0844";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/en-US/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/en-US/thunderbird-78.11.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "e7f324c2e959ca3ce15dddf949927975cb06001243f3b7bd8a0e162edebf837e";
+      sha256 = "688a2f7274581fa4735a6d2f8166ba262999694889635bf3bc30ac77ad746fb3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/es-AR/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/es-AR/thunderbird-78.11.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "17be1ad2c43f72ca07ae1060566ac4730e1022d4032efbfa76b6f1beec1bc123";
+      sha256 = "506a63de366968c6a3e66503def57e621cc2458ccf07ccc53ffdad72fdab8914";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/es-ES/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/es-ES/thunderbird-78.11.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "697acffd0cb7b8c5948fce660528729ae31ee0baae809e4b3d759f9d42a8d7f6";
+      sha256 = "974acf65d509929d6b8175ac99a2886f17d4dbc4a6b8d4ef50e82585e1ea9fe6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/et/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/et/thunderbird-78.11.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "84789fa2e03dc312a9e6509fd8e938aa333465df8b451d7224cc86ea9059bc5b";
+      sha256 = "504c97962170388d6fe249c24b6f5a62025ebf9bf4b30b65fbfd3baf12756809";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/eu/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/eu/thunderbird-78.11.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "29c7728bb5aef60f53dc914b5d6eed47bddd191198db92b79d0ef144e64c5890";
+      sha256 = "b4c4bd5b228f2b945dc8f280b12a72dd68dff10562c4f19b5a27fa94a95d9128";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fa/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fa/thunderbird-78.11.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "5ab74aa662aa970ea406a33f05059361e317079c41b755700c44cdc778d04e43";
+      sha256 = "4384d9579304ec344f616e00a51bebbf5038e212cc54d07586182fce9558af91";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fi/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fi/thunderbird-78.11.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "578b713326dfef5e59acb1df29dd13f35f7b935ebc5221433c180431943c9424";
+      sha256 = "89bba8ff928caa79b8b1947be761388e441f01655f200f4a7fb9d9894b3ea4e6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fr/thunderbird-78.11.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "2c43647dc70aa1f3bc15a83ec4654b6ec3c6d520d03bcb503f8672e1dba0edfe";
+      sha256 = "c2953ff1879ed8f80f6b9f1a26c08ba1f5969e8b47b81a3eb3ab690698142bbb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fy-NL/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fy-NL/thunderbird-78.11.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "a621165ce74cb20400bd104d43e4ddf196305cc7000cd524916b766662f20b23";
+      sha256 = "58057f7bb143512c1171296413050178f0a7a0651513e7c67d153af5874aa382";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ga-IE/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ga-IE/thunderbird-78.11.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "5e45fb6ea542f24715d96e04d9c30b44584481115fe0d12a30e27ad2cc057faf";
+      sha256 = "94c070e79bba7a43f3fcc8b0b1759e424366f3ced72e2e53c5fe75689602a0ed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/gd/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/gd/thunderbird-78.11.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "2ccc8a5394119d98d9b3ca97128e62f18fdb8b86076ff24bca6f29ac3276dc4f";
+      sha256 = "a655074ab7d0f86318199ab32b77c889ccfd366f6a0d9d43b4bbeba54ae2ee1a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/gl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/gl/thunderbird-78.11.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "fc84c102cab3c1b85af2beb68fcabf752c9643407b6b6322e2972d231dec9da9";
+      sha256 = "2835735ebf7f518aaf8d16ca3cedd3e7f7414e0cc1177a185b6e896da7e2c87f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/he/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/he/thunderbird-78.11.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "cdda0210f15750688490ceeac10608722184ebb05e566be2c8d0dca563d708b5";
+      sha256 = "804c359b76026631e5a0ecf40258782f24f0be4d34b700b2aa0532607e4c5651";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hr/thunderbird-78.11.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "3e18a65345e29126e7fc82a8da20bb7a8a3b8bd6efdcb143c8814d940a4e42b1";
+      sha256 = "d7278bc20c7eb6c071648b639064338ae8cf7535476c0493b642d45c0ae9804d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hsb/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hsb/thunderbird-78.11.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "e9b38d2a15e152210725f2422e283a84086c95edf164f33979f907180e46a568";
+      sha256 = "fb520d80d1505b50b8d9e2a43c10512e001b120790c823eb41dcc076e68eca51";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hu/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hu/thunderbird-78.11.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "733efd6a1eb66353e0a6dbe74f18f42cec0c7ecc01d1bea865303cba9d4067b8";
+      sha256 = "20639f623995f76b2f7d5f8d81e08145767d2a67d97fbd31542599abd4c80a57";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hy-AM/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hy-AM/thunderbird-78.11.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "8798f26cddc10d47992031e21b785e115c46413d36b8b4e518649adaeb3b47ee";
+      sha256 = "bf4c1fcaa9bf928607dade6d8fd16b47fff6c248c07ef86fcb20c0b3a6841ba1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/id/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/id/thunderbird-78.11.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "3cb73a2f9ee07cbbf13d562e988410cd644e5e5b87172c960463210bb9651be6";
+      sha256 = "03665c9cfdd39e8ebb568151a28ecf02e425bae4241de74bdb47a0f9f38e26ba";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/is/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/is/thunderbird-78.11.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "3d3bc8d8c12d213635404e559d3b477435fe632ad3e69ea7060a03f30d31b86d";
+      sha256 = "1efb313ae0fc03d402f306ca0258ea4c784a762a642f947065e154c382e9135b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/it/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/it/thunderbird-78.11.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "4ce44992d22f283f08e16549bc6cfdc416bb6d197bef63702ac279ab8a3366a7";
+      sha256 = "95e1c07248c8ef1ab36b8a57729615a4f2ab9a4cb6148f1b0bca20554901ffca";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ja/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ja/thunderbird-78.11.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "ecdb393877df52459486628f70024620e2824ad6da8363a9133e64c041fe3812";
+      sha256 = "95c592c41b1199bc280c219a8b4873e2bdb18171c4cccff4809a5a87ccb52d0f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ka/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ka/thunderbird-78.11.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "f39a3beed17681f36f28a33fb74083143aa33ae51a7836507345b147c04d1d0a";
+      sha256 = "85566d54dd72a9ae9d6e3e5b85ed2ad01fe7d6e08e33b02985bc4e78e55dc5e9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/kab/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/kab/thunderbird-78.11.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "fe7b8e90b3c30de00ca5326e3a2a100aa7ba862322c7f386c871b56a22ca4e08";
+      sha256 = "cf7f8a9975f9ce163bba8438121cd8090a498877d65d91694aac198f4307bc90";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/kk/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/kk/thunderbird-78.11.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "b1c8ece7ec8e634b0746664401ca750c1cd3a81b587f6ee918b6166720c3b074";
+      sha256 = "9ef1e12e02ed3e8a05f58da73e0221ac6545c515eb2e236b4a99b4594afc10af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ko/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ko/thunderbird-78.11.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "31f16d08a51315502e0e1da5d11581e2637361b40fd5c0d60852c1546fd45cb7";
+      sha256 = "6d028659f0b239b81dae7dfe44b96015ef1a217cddb135fee3bd8884e7b442c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/lt/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/lt/thunderbird-78.11.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "e56f4fd2bbee8bd0379030442355412f9f73e9c67123505242f438ccebc544ee";
+      sha256 = "90f11349d4f5a674457f541b4edadd83b6a8f32f56eaa0a4d49e9b2c26dbbe47";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ms/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ms/thunderbird-78.11.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "13c2feb9ee22a40485f9648b2ad60113b0a463aa7c55cd9bef8cb2a68211bdfb";
+      sha256 = "f235748f67ad749d8b020288df8c7251bcbd9d1bc4bb979554928f54270c1f88";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/nb-NO/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/nb-NO/thunderbird-78.11.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "7e305950c61299fe992891cb2a18a8420c40bb9333b40dd45ca39b92d644cdf9";
+      sha256 = "de2bfc3bfc2f285a42cbcc800867395d132a56f3aaed8ff687c9e95706164ad0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/nl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/nl/thunderbird-78.11.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "eeaa3e5b0e72f36cf1a66c0bf040e94258f2547a7e1665fc667bab3cd9f84410";
+      sha256 = "4b7be1a4717a4b42bdf3b7583b2a1fa6cc9cfcad52ac7fafa4435230dec70048";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/nn-NO/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/nn-NO/thunderbird-78.11.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "e870393eef06b6eb2564b00a039c7d19e418e2283f992970df860606099cd70b";
+      sha256 = "0ba39f2e8b6895216d97e13809749fb6a1237c5bfd0c1f8ef9e365218d1422e4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pa-IN/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pa-IN/thunderbird-78.11.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "24b11eb4bb5bc929e89b92cc0faf4011f5ce33dd03d4212ac5c0209ce7901c10";
+      sha256 = "2bf07cc1f213c20b2f181cd104eb6cdd6b5f885ccff2774817ad95840addf3ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pl/thunderbird-78.11.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "cace57aae947e8a2ed1b7875c4791d94d8f0d0f865ee0dc0a4a9230081db6477";
+      sha256 = "9d2607c5d61ef121a383eb71d5bb650ba0ccb6b441666bbac5a9f3b91377f574";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pt-BR/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pt-BR/thunderbird-78.11.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "d36a91d97b8e53720665e3541215889a2ce848de5b87989c52c3022924ae73e7";
+      sha256 = "cab1a3fabb975895b0c57bb4cb3b90f9386d0c33228b24edc13095d7d644d727";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pt-PT/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pt-PT/thunderbird-78.11.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "18f71f0f278037a88af1ff4d87ab8b907cfa3097f11e3b98282c9f9de9d40fee";
+      sha256 = "53b44f8caae2a2ca878435d988dbaec7c188c2fe236efcda8b92b4310aa3119f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/rm/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/rm/thunderbird-78.11.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "833e51aaba81212aad670b276498362103aef388cf09b5404a78cb046805be4e";
+      sha256 = "f170779793afc440c273b8826cc456af903a98ac9694b1aae6ee50a5bec2be26";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ro/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ro/thunderbird-78.11.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "fe033d44674609c319c8bc6939056d8f77ccbabf0badcb059a06bbe028868af2";
+      sha256 = "d0628abef66e2585db898834ddbd3ad9e97edea7269538dbd4b4520f22969b4a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ru/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ru/thunderbird-78.11.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "19c26477c691f60c76813b1fc657ff837fe4f160d6e77ffa6f73d9e88e748655";
+      sha256 = "077b682cc7365aab8fb3100d5f487fc873a16a4fcf71dc25e63a2604b57ccc00";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/si/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/si/thunderbird-78.11.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "ae2a50027f0df5e3533bcb5b094987976a040ef1cde810e030ce6e446338ba96";
+      sha256 = "7fc582c2f23b197da426ff0150941ea59fe1da26c84df41bff88039ff3fdf4fb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sk/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sk/thunderbird-78.11.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "9bed8f53737a363314cf67671b64b7bbdd93ff2ab50fe32a781f09cd991e3a96";
+      sha256 = "cde3c240b1718085b36e9479eb9717202c1a179d9cd2cd094901074d666fb763";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sl/thunderbird-78.11.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "fd38aaf88301b3f58cbf0d63d0545d30f8db4994509f10f76efdcb6b0d4ea977";
+      sha256 = "54ee18a338c727838db7cdca4c458d4b9248c626a3338ec83c41001d124d2917";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sq/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sq/thunderbird-78.11.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "6fa0d45921f4c2ca8c5c4a2755c8f724b3046a92504fa98bd20084b5be297891";
+      sha256 = "511209ca3eb810250fef3b0b01f71941bc0436410716974244aa9b5b1193582b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sr/thunderbird-78.11.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "1c85bd065b6441c2131f32b9faff5ca425bcd718a0b10052b05ba29a68a93c78";
+      sha256 = "d22da1e4ab790ffb3e8a8c3928adfe8c1b7b65c08a5dbaf2bb63473b08fb5207";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sv-SE/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sv-SE/thunderbird-78.11.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "cfcafa5ef9221bd1cc91f266e2659e769753a2acbac6893528347a5b7db92c2a";
+      sha256 = "c7826bfef5b705fb5d00b6ade07d092bfed25d74b6992308027e8ea99f2ed16b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/th/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/th/thunderbird-78.11.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "892b23cde316c922ea6fc7b537437885fa8ca2ebfd9b17d177b5f5d5deda30cb";
+      sha256 = "cba4789bcd072a21d5e131f0aed7aed1775f6122776f873b54fd9832bc5b621b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/tr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/tr/thunderbird-78.11.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "bad99148eb7f2777fc0227db9f6b03a9b31c7aaee19bfe4fbae26227547421e7";
+      sha256 = "8f8345e6722931b495755ccf67b0546443e11d435cfe809edd00f6e3565a17bc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/uk/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/uk/thunderbird-78.11.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "127c636969dde8cb10121f8fa3ed0c18c35d13ccfd07643a2aa5c3aa78a6f82f";
+      sha256 = "cce394a934ab0352cbd980d29a61fc1be4e66636ab5e31d358fa2efc82e17c19";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/uz/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/uz/thunderbird-78.11.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "2c1848c7cb62bf96cb255a39e31099516e7df8d3e34cf68430a323729b571430";
+      sha256 = "4a94d98472bcbb34a19b58c8e4caeb2e29c58d4d7496ba0d4af02a8aa0fe3802";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/vi/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/vi/thunderbird-78.11.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "754e8974cc2284fb7b01f413c0220cb1d99b50831189dd61ab8804e44bf54f48";
+      sha256 = "a48de334712d154917d6285a84ab115f48e672fdbcd9a7469013d3b07524562e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/zh-CN/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/zh-CN/thunderbird-78.11.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "f76ee6ce544ff1dd9df931b15e9d25b18971f489b3b9e6f03749976ead068c60";
+      sha256 = "6892a5236ac0abecaa657b98929fd9feeaa0ac9d4d64e000ced26687c4fa96a3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/zh-TW/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/zh-TW/thunderbird-78.11.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "fc7441b416e541c24b0148450812f350058a6d0fe2a44fa546fb4d059674bc27";
+      sha256 = "292ae08c031cd40a493348dcf39adfecbb9372288cd2cc4bb5ada9eaee5a7649";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/af/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/af/thunderbird-78.11.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "5ed18c354dcb22e9999854f5f83d880fed92fd9e4ddb43564c8e69a07c5e29e9";
+      sha256 = "26a1e66facb1839a8a2dcb2fffe3677a5d6f9c68343293625b22faf553ff1244";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ar/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ar/thunderbird-78.11.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "31caadee014741ec0c77307a155bfdf5ba4f7d9b06e1786edf1bf6162d59ef43";
+      sha256 = "6625bb6b5374ae174b21d53735c4d51d3d8464556ff42ac9b270908991837989";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ast/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ast/thunderbird-78.11.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "e5dfbce6d8dffadda9ad5320d8baadbe185972d0e62d79079833853151b1bd54";
+      sha256 = "57e8de5bbace8def637356ac7b519155411f8b5b2dd6496ebbdde102fea490fc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/be/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/be/thunderbird-78.11.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "0f6507525b844b405c515b80238a9672012c6950185a2be6523eef3d42bcad50";
+      sha256 = "c045e2b129cd373ed1b2a6ce4d12d4dd3dbcf92c380a1dd8fa237f001f7c5bda";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/bg/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/bg/thunderbird-78.11.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "002bb9b971851c3ec8eed1e1ce1c28fd97fac788578d53eb0eb130a2c100426d";
+      sha256 = "5bd9ded232f60b88be72a5cd301b02c6bc6a6651be48e08ebe5358aaa801dd6e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/br/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/br/thunderbird-78.11.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "adbccb49d9f00198ee4fe2868d3ee4d745c79dda90a8b0b496c6be2a0ab9fada";
+      sha256 = "1dc7583fe66a26b040e1a46281964898c5a79ead6516e02a0c1ec7a175962621";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ca/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ca/thunderbird-78.11.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "efb8a08377c34b49e57c424c86473429b475c9f0bb23e17f6beec2c3d288b9bd";
+      sha256 = "68cc1ba9382be6d5b90e94fdc6fd1403b2b07c67759be80d2623fcd41b16f51f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/cak/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/cak/thunderbird-78.11.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "e3775d9aad469ac62c5b86e8441ee8597172cbb9f4f365309c402c42608bf3a9";
+      sha256 = "006d1806c7ce336fb51bcc74d4907a6aacb43c0902e0b323b638f9a9d2664ed1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/cs/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/cs/thunderbird-78.11.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "a74c7a2c2bb7c0ce6456e808a6d503554c74d9588c59555086ef188e3ec9ad9b";
+      sha256 = "5b342803243a51a9e521705c1082c87cc528ac59475d6b893ca475ecb10ee02c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/cy/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/cy/thunderbird-78.11.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "83fd84d86dff669f65b95014a222ffa4889f1db16209c133ea02c0d4f893169c";
+      sha256 = "55bf6bc1aa371ad52097e89dc26af4fd11a2afc73b4ece79ae3c3bf0294fe5fc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/da/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/da/thunderbird-78.11.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "531984ff00cfcdf957186221d461d61dfb8637474448dd7c3f9c8f21c3d78eb9";
+      sha256 = "41d21b7065bb4a11b80990daf550a29e5d588965c83cb48a762bba7bcbbec502";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/de/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/de/thunderbird-78.11.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "bffa31e9ad9fcd17b3d29414d41e7fad2f95e3becfa79e45176a20ce4d7fdbb6";
+      sha256 = "190339793ab6b5bcbbea2e81a1c783fa91dc18ac702870bd045ba597d0c826d0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/dsb/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/dsb/thunderbird-78.11.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "05101ba58d6929e128f753015220a7d018e6e0fc5b880843c2bd821a53d26064";
+      sha256 = "068243c6d19d9c5ba9ff4ce9793db643555657593659176fb543eba5cbde7c44";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/el/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/el/thunderbird-78.11.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "121178325199b8e4aaed151f197787e8bf82ffa6c93638322fc75755e9f09608";
+      sha256 = "ab93bb707a7bf50813b067c7d2f5f72e858073080e28094a917a4e5715612053";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/en-CA/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/en-CA/thunderbird-78.11.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "9a11bbbe5a320f4507813bde58407ef441b260d17811f7eaa692182fdd1866b4";
+      sha256 = "2bbc9fe5efb8905d069174d939933b64dfeba6716f81487b4aedcea7e00fb48a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/en-GB/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/en-GB/thunderbird-78.11.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "f5bb637a3b17c7eea22ae7804c13734c60890755273badc4d832035a34fad272";
+      sha256 = "6ac3648deccc9b3b01575791fadec6bb9210aeae4d32934f7ae7ddee7d857b93";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/en-US/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/en-US/thunderbird-78.11.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "7437fcbaa4c75858b3ceba7abce6237f80017e6c68cf963ed109b81bb73f3553";
+      sha256 = "e423d465824e4b56f3899fb15dbac1b016832446ded5c46b8bde0c279ddd3df2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/es-AR/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/es-AR/thunderbird-78.11.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "6aa396ca00791ed0127321bc9cb9e3fe677f1897bbde157986cb8829a6d1fecf";
+      sha256 = "925c762d84e4620b96b8feb73a4b5506fe3dc339c0ef316e23ef7ea636ad8da6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/es-ES/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/es-ES/thunderbird-78.11.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "4eb1605ee60dc731d578117fec45c03fec7f3f99ef29ab7475d4be15004949fc";
+      sha256 = "d75ea97c5cfa524c93055af618cbbd27a6ef8c2125ebe963467f0e93f9f80ea3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/et/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/et/thunderbird-78.11.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "94555bbc597c622ec1cab4e310a978a638c94d7398beb40cb573555e2f5a86ba";
+      sha256 = "f925832734574c0056ce60edc9630db70d262b993c913da167f01b51f9ec14b1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/eu/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/eu/thunderbird-78.11.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "77dca056a6c4cd64d6fe5ea60fe6d9c211a1ef1d0accb4685c9c8fea7861e2bf";
+      sha256 = "60f27f7d725bb90ec93ab247c708442506e9532c050bc7a66b5d23db2dcab91a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fa/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fa/thunderbird-78.11.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "8e0b2bb8630c2ca64652fd952656637d1393b5845104f9f2ab08d0ade2a96da6";
+      sha256 = "505373b341db6e20b90d555815974a232b6ec685b4301e9b81305092806d721e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fi/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fi/thunderbird-78.11.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "d8ba0d4194628ff7946159bf511d2485d310c42c9fc745c27b751f4c59477ed9";
+      sha256 = "6f9c715ae0d7db81db3ee72d822ea1d9395b30d0a4a2f46c50f77e4a156df27f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fr/thunderbird-78.11.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "ebb2561f50b1d6defb628a07646b70952687f666475ca126bd72dbd7478efe26";
+      sha256 = "5600b094c00d9607e91f2c28aa99de75c87999a1d16739f926812a0e9bdcda53";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fy-NL/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fy-NL/thunderbird-78.11.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "45c7c92986cc792273e5923834bd4f209e25d26e44ac1e155c8f7b539e72ee8e";
+      sha256 = "3fd24a4704df03e83bdebdf9a98a085849a72de939aa21c8fb93051ca9ddab85";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ga-IE/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ga-IE/thunderbird-78.11.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "c127d817e6b4759eac5b2af5aaad82670a157857b63bc0869ac1adeb27d38f3c";
+      sha256 = "1f69cea70de04de5458a877b9ac3c2cb9cb04a60f888cdb19118bb04156540e2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/gd/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/gd/thunderbird-78.11.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "40468c9214fb67dda8cca1f43d03e5621910eb260bde268034a8c967af2bf73f";
+      sha256 = "d33666cb1812541a81f91b457a7d9d3dba3ede5b90f0e56d31d90dd8359e077b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/gl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/gl/thunderbird-78.11.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "55ab753b591c72307b31e9b98a1f426886a4a0007af1507fc8ffbe656d2c92b9";
+      sha256 = "5694106a7bccd7dacc35d89f4c2dc3080be40f937d5b3a18e6797a2dad1dfdc4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/he/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/he/thunderbird-78.11.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "2ea8691ac3188d8ca0c20fd7c9e9cba25e8b14eb6ebb338b42303aadaeba07e9";
+      sha256 = "77e2e3e1872c67de101d3fca87a3c308b26eb47f06222f0504a95e42f9248d39";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hr/thunderbird-78.11.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "6c5eab557ad07084889b08ae5a79569794a916535ad4b6b23493d2c658e57dc2";
+      sha256 = "513c4d88387c7ac3463047b4e84c2f049dcb0dcc205bcf0d1b6935f94db16a88";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hsb/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hsb/thunderbird-78.11.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "90ea860940cca6152ca92601e25514652ae652aae8df5a0ec9b9bcf59ccfa570";
+      sha256 = "f2731aff055f734befefbd17778ccf8962c882266443b9ff5e6e6babcc09c0c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hu/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hu/thunderbird-78.11.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "71895a707e263bbfdf9a08542bab2fd8609458c3f5229a536333db46b17282be";
+      sha256 = "c29018382b2d0d45727e23bbaf3a37661ccb7908912a24ed5ff3042766ecdec9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hy-AM/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hy-AM/thunderbird-78.11.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "475e4c99597e444316de578c7ec4528e762ff27021189a31fb1d45a7c97b5eee";
+      sha256 = "f9152a462ac758fe21c46e734bc8d8e727479f4cc8c7c26cda43bfc896244596";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/id/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/id/thunderbird-78.11.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "c25f6bc1478c181dd88e9506b9b81882235c39f280b0065608827e90299ba5f3";
+      sha256 = "e336ee15d25b0edca6492a765af7a6b0eed3ef30155c908e4940985e373304b5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/is/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/is/thunderbird-78.11.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "eaa68dce6341f5074b3ba15452c24139737988d7af9046e8e3b41fae715ec344";
+      sha256 = "6495cec1de969c1f30ef042fe604027014161497ed77eb327451eb4a70f7b1a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/it/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/it/thunderbird-78.11.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "5b1ecc37001284b49dd835060f5edf6a982f2e63218ef2dabd652e10c62ca742";
+      sha256 = "7bb395c5b3cda42c41196f06be6ed2f35eff958c3a9325807c42616b971087c3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ja/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ja/thunderbird-78.11.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "eb61857839abcd445389de0349b7e297a0d737e7aa511ddeadd92b2a38419dd2";
+      sha256 = "ec313b0754cffa5ed388e983faa394b146cb5227c99e74ee681ab833540b1cf4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ka/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ka/thunderbird-78.11.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "902c0b7c3247c1d5d6dd80d751a8fbd22756a73414d8fcba072d2b3213b18280";
+      sha256 = "13b8d137d2b1da647ed603208a4cd275e5cc11d3395a5709629ed8965c5c355d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/kab/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/kab/thunderbird-78.11.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "c91d1f0eeb7b6de618794ac369c323fe514a201d506906b53fa527da2dadabd8";
+      sha256 = "a8780a5af7cd112d05a2b13469ff40d09c1909b2a09012a4ac7883b8555c3b71";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/kk/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/kk/thunderbird-78.11.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "dc7115e726c51cb56625e2254b4987b951e972874b0dcd245e40f0477fa462af";
+      sha256 = "1a1b0ac46b10eda11ffa4a53dcf53c1dce2a2a52355e08e44960d135a8feea91";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ko/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ko/thunderbird-78.11.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "a6d9b6b6c8a0a05fd2dde4545af109369d1158972ebdaf91bdb4c30498c88db6";
+      sha256 = "312c211b3079191b5d53cf5052e0225fee2b4e699a848b3d29a8efdf3192185b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/lt/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/lt/thunderbird-78.11.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "4fb6c5ae8fee1c2a829c1adadb99e6e21ba96e61e59a631b88750a00093177ee";
+      sha256 = "817b079ecff259043a0bf3abece031c15e04a2a615b49314d8377da6ee8feebc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ms/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ms/thunderbird-78.11.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "bb4bf6706ad62be4adb23101cf621b9fcc742f757d317071b81dc6860317615e";
+      sha256 = "737b88b2fd394851143a798508b537b921fde8c0648856e09426102e7962ef7d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/nb-NO/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/nb-NO/thunderbird-78.11.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "fdbd9715a34e6d4d4c77d1b5d6aa6ec1673907ab1df823a0b95730ea299ac6fe";
+      sha256 = "9754dd9cc6ca38970a50b3f26d0d2fe1cb1c3a66a77829489cf6f2098f7f244f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/nl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/nl/thunderbird-78.11.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "ee94b20e182fa93360e6a89e6df64c23d8ccaca7394d0716d217b25262a916b7";
+      sha256 = "b43da367f973e7b2899967c777514262f4503778d550bee27c5b11651555cc17";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/nn-NO/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/nn-NO/thunderbird-78.11.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "9710055906529edba3d62cbc7d17745497ae3dadf1c0c53408952f4c99242c7f";
+      sha256 = "cb0bae6a905c2ffc39f173519ab9dcdd7835c1b9c169f778727b55eeb8c67cfa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pa-IN/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pa-IN/thunderbird-78.11.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "b61f29bc72b49761beb5083a71594a750197ff049d84db5e3eacf322dd312275";
+      sha256 = "d9d7c15ca519636ff93e0f1ec956e131b5bc92bb18a67c7958140ebd75ca84c0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pl/thunderbird-78.11.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "5a885bd885772dd09eea88a7e3f2d7f766d88281bb2bc1e690832286dbee3fda";
+      sha256 = "7cbe410b721565b676d6a9c0d09e163a7452b0a9137672f654f8fdeca6212a27";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pt-BR/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pt-BR/thunderbird-78.11.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "228d268675b9781aa5341bf0c8354cb1f3cdc700c7bb608438c2e31b2239e48f";
+      sha256 = "aa4fbe2a656d937559c8556549f0cc2d9f8fa0c75ad1ede55c9e8877a63538cd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pt-PT/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pt-PT/thunderbird-78.11.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "b69cbaaed70d582319c86d46016122a2a0a3e9abfc3c6393c2fd66b8f50cf855";
+      sha256 = "63a2c44c1ec1486574c8addf920e8561f792d01fb8179239fb268e5277e68782";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/rm/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/rm/thunderbird-78.11.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "0ca4301df9ac5b234c8cf71718441c152403fbbb06cb42e2f6061fbc97ce31ca";
+      sha256 = "8610c130d68a8d5f38ea179b13bdd17ab349cca8647470b4e2987937676f3c5e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ro/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ro/thunderbird-78.11.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "ab06982a3f6134388e6bf8049a80b2d1c6b1a338a3f2744516af2b7ba1d23ae6";
+      sha256 = "d809cc26b134f707579e78e624f654b569d33d2282391943eeabfd494388f4f9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ru/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ru/thunderbird-78.11.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "858aedefc42e15ca2179ee5e1f09c4f89dbba46e76160cf172c3fa0cb5ed019c";
+      sha256 = "1d73258212131087d878fac0087f758cd11209aeeaff075b0352f8414769d3d7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/si/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/si/thunderbird-78.11.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "5193e29ea9ecaa1d8e13f959f294540bc3cc3e4f161358cb057c5f44b2dba396";
+      sha256 = "342ddb753fc1870321613e7668a741269bfff786f21ff22f4f8f84f5e1df9c2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sk/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sk/thunderbird-78.11.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "6d6fb547ded55b374c1556128af1406cd4708f207a90f24778a319cf0fab1e22";
+      sha256 = "241cae2dbe7130a3df8d64e99fce375c0966df0cf4dbd6cbddfb069f736c3450";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sl/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sl/thunderbird-78.11.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "89e246494a9e052e06894d2fae911e4a251b5c24b5bb26c9810277f43bcc211d";
+      sha256 = "d09d44f1fd9e90e71e67334eed2df3eacdbc2509782e625e25aea3b993b1f28a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sq/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sq/thunderbird-78.11.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "d465f5ea13b423cde1e6a6fc4bb8b21f1920fab6a73d4ed7dca16911d4918c2b";
+      sha256 = "afa21cf461d53c2a3e781e45b7802a0b5ffcb0ca4c4452865bdbf2bceeb13776";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sr/thunderbird-78.11.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "4c9c7e2d0929e2ef65b8c33baa2ea335b8145580f7c2bd88f7c00e3cbad49327";
+      sha256 = "15b3faf5cef87e1101629410cdb169f81da94b5e1b0902d02b161ef67df15e8f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sv-SE/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sv-SE/thunderbird-78.11.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "913c8d546f8aa518d8864c550749889b2fb72a86506bd407db2c0163fe6ea7e0";
+      sha256 = "b42f3e8aefc4ebfc718ace6eda4d9416752dbec346f1a212fa637edfe08277dc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/th/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/th/thunderbird-78.11.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "52bc9ca0b837c6209a040649dd432d459c7b73c1dcfd967c970dba3dcd0c0e8f";
+      sha256 = "0972ee48e0f8f0e6f81831a5c8b3d832c7af05477a3f824afb252c1f32d6843a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/tr/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/tr/thunderbird-78.11.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "66eea04e8fa1993bff56b8af517564f782733ba83634a8b9cc452dc5fb1d87af";
+      sha256 = "5dccdb0c97511aab0926caf679dced22609fb0e702b87078ac9379c94b3aed37";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/uk/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/uk/thunderbird-78.11.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "91be59e83c11aac5cd46f687e008794e666b2efce1da572ede42291e9620d9a9";
+      sha256 = "526e1cdadbf15a0aee1b31607f39710f90fdd6ea23623c74fbc87928b0b2056c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/uz/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/uz/thunderbird-78.11.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "b216b0d189828622b7dce32e91f8dcf63f3763c2610ad7b30eaf05a3e92f4b3c";
+      sha256 = "46454f21518cdeee20dcd0ed3f57a45cf8ab3a240d55cf2df36aed253307fb99";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/vi/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/vi/thunderbird-78.11.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "af4294bc71e9a4fca7b7ced7fd401ef692163d7044f8b1cd5fa1c25192e98120";
+      sha256 = "d624ec4f25277ae1b4b463e0c8381371562cf4185aab3ed67b9463b3dadde5dd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/zh-CN/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/zh-CN/thunderbird-78.11.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "f10b21744041485cdd4bb0e68d9167acbe3b55c914ace91ba024c23e3b8f3531";
+      sha256 = "3699eefc2f941a4b32305a934a02bb94b5213c4584bfeb816859de471e2d2f08";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/zh-TW/thunderbird-78.10.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/zh-TW/thunderbird-78.11.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "f3df92551c102dd113ace048eca32e4dfc797cedc53fd0ea93ddea6954915316";
+      sha256 = "9d6878ab69fcf266f1b226100a5b26d78d8d604f741827ae8f62fca665adf557";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
deleted file mode 100644
index 4433551d2e10..000000000000
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/68.nix
+++ /dev/null
@@ -1,343 +0,0 @@
-# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
-# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
-{ autoconf213
-, bzip2
-, cargo
-, common-updater-scripts
-, copyDesktopItems
-, coreutils
-, curl
-, dbus
-, dbus-glib
-, fetchurl
-, file
-, fontconfig
-, freetype
-, glib
-, gnugrep
-, gnused
-, icu
-, jemalloc
-, lib
-, libGL
-, libGLU
-, libevent
-, libjpeg
-, libnotify
-, libpng
-, libstartup_notification
-, libvpx
-, libwebp
-, llvmPackages
-, m4
-, makeDesktopItem
-, nasm
-, nodejs
-, nspr
-, nss
-, pango
-, perl
-, pkg-config
-, python2
-, python3
-, runtimeShell
-, rust-cbindgen
-, rustc
-, sqlite
-, stdenv
-, systemd
-, unzip
-, which
-, writeScript
-, xidel
-, xorg
-, yasm
-, zip
-, zlib
-
-, debugBuild ? false
-
-, alsaSupport ? stdenv.isLinux, alsaLib
-, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
-, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
-, waylandSupport ? true
-, libxkbcommon, calendarSupport ? true
-
-# Use official trademarked branding.  Permission obtained at:
-# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971
-, enableOfficialBranding ? true
-}:
-
-assert waylandSupport -> gtk3Support == true;
-
-stdenv.mkDerivation rec {
-  pname = "thunderbird";
-  version = "68.12.0";
-
-  src = fetchurl {
-    url =
-      "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-    sha512 =
-      "33350vjgzvsg6sdhdld92z75k1xcf1wmngdcvzsj4f3y3aal73pyw03mlvgg6y36bm0j8fhaxvgbbg5zm7hxhn779z78970m4v9amg7";
-  };
-
-  nativeBuildInputs = [
-    autoconf213
-    cargo
-    copyDesktopItems
-    gnused
-    llvmPackages.llvm
-    m4
-    nasm
-    nodejs
-    perl
-    pkg-config
-    python2
-    python3
-    rust-cbindgen
-    rustc
-    which
-    yasm
-    unzip
-  ] ++ lib.optional gtk3Support wrapGAppsHook;
-
-  buildInputs = [
-    bzip2
-    dbus
-    dbus-glib
-    file
-    fontconfig
-    freetype
-    glib
-    gtk2
-    icu
-    jemalloc
-    libGL
-    libGLU
-    libevent
-    libjpeg
-    libnotify
-    libpng
-    libstartup_notification
-    libvpx
-    libwebp
-    nspr
-    nss
-    pango
-    perl
-    sqlite
-    xorg.libX11
-    xorg.libXScrnSaver
-    xorg.libXcursor
-    xorg.libXext
-    xorg.libXft
-    xorg.libXi
-    xorg.libXrender
-    xorg.libXt
-    xorg.pixman
-    xorg.xorgproto
-    zip
-    zlib
-  ] ++ lib.optional alsaSupport alsaLib
-    ++ lib.optional gtk3Support gtk3
-    ++ lib.optional pulseaudioSupport libpulseaudio
-    ++ lib.optional waylandSupport libxkbcommon;
-
-  NIX_CFLAGS_COMPILE =[
-    "-I${glib.dev}/include/gio-unix-2.0"
-    "-I${nss.dev}/include/nss"
-  ];
-
-  patches = [
-    ./no-buildconfig-68.patch
-  ];
-
-  postPatch = ''
-    rm -rf obj-x86_64-pc-linux-gnu
-  '';
-
-  hardeningDisable = [ "format" ];
-
-  preConfigure = ''
-    # remove distributed configuration files
-    rm -f configure
-    rm -f js/src/configure
-    rm -f .mozconfig*
-
-    configureScript="$(realpath ./mach) configure"
-    # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
-    unset AS
-
-    export MOZCONFIG=$(pwd)/mozconfig
-
-    # Set C flags for Rust's bindgen program. Unlike ordinary C
-    # compilation, bindgen does not invoke $CC directly. Instead it
-    # uses LLVM's libclang. To make sure all necessary flags are
-    # included we need to look in a few places.
-    # TODO: generalize this process for other use-cases.
-
-    BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-cflags) \
-      $(< ${stdenv.cc}/nix-support/cc-cflags) \
-      $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \
-      ${
-        lib.optionalString stdenv.cc.isClang
-        "-idirafter ${stdenv.cc.cc}/lib/clang/${
-          lib.getVersion stdenv.cc.cc
-        }/include"
-      } \
-      ${
-        lib.optionalString stdenv.cc.isGNU
-        "-isystem ${stdenv.cc.cc}/include/c++/${
-          lib.getVersion stdenv.cc.cc
-        } -isystem ${stdenv.cc.cc}/include/c++/${
-          lib.getVersion stdenv.cc.cc
-        }/${stdenv.hostPlatform.config}"
-      } \
-      $NIX_CFLAGS_COMPILE"
-
-    echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG
-  '';
-
-  configureFlags = let
-    toolkitSlug = if gtk3Support then
-      "3${lib.optionalString waylandSupport "-wayland"}"
-    else
-      "2";
-    toolkitValue = "cairo-gtk${toolkitSlug}";
-  in [
-    "--enable-application=comm/mail"
-
-    "--with-system-bz2"
-    "--with-system-icu"
-    "--with-system-jpeg"
-    "--with-system-libevent"
-    "--with-system-nspr"
-    "--with-system-nss"
-    "--with-system-png" # needs APNG support
-    "--with-system-icu"
-    "--with-system-zlib"
-    "--with-system-webp"
-    "--with-system-libvpx"
-
-    "--enable-rust-simd"
-    "--enable-crashreporter"
-    "--enable-default-toolkit=${toolkitValue}"
-    "--enable-js-shell"
-    "--enable-necko-wifi"
-    "--enable-startup-notification"
-    "--enable-system-ffi"
-    "--enable-system-pixman"
-    "--enable-system-sqlite"
-
-    "--disable-gconf"
-    "--disable-tests"
-    "--disable-updater"
-    "--enable-jemalloc"
-  ] ++ (if debugBuild then [
-    "--enable-debug"
-    "--enable-profiling"
-  ] else [
-    "--disable-debug"
-    "--enable-release"
-    "--disable-debug-symbols"
-    "--enable-optimize"
-    "--enable-strip"
-  ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [
-    # on i686-linux: --with-libclang-path is not available in this configuration
-    "--with-libclang-path=${llvmPackages.libclang}/lib"
-    "--with-clang-path=${llvmPackages.clang}/bin/clang"
-  ] ++ lib.optional alsaSupport "--enable-alsa"
-  ++ lib.optional calendarSupport "--enable-calendar"
-  ++ lib.optional enableOfficialBranding "--enable-official-branding"
-  ++ lib.optional pulseaudioSupport "--enable-pulseaudio";
-
-  enableParallelBuilding = true;
-
-  postConfigure = ''
-    cd obj-*
-  '';
-
-  makeFlags = lib.optionals enableOfficialBranding [
-    "MOZILLA_OFFICIAL=1"
-    "BUILD_OFFICIAL=1"
-  ];
-
-  doCheck = false;
-
-  desktopItems = [
-    (makeDesktopItem {
-      categories = lib.concatStringsSep ";" [ "Application" "Network" ];
-      desktopName = "Thunderbird";
-      genericName = "Mail Reader";
-      name = "thunderbird";
-      exec = "thunderbird %U";
-      icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
-      mimeType = lib.concatStringsSep ";" [
-        # Email
-        "x-scheme-handler/mailto"
-        "message/rfc822"
-        # Feeds
-        "x-scheme-handler/feed"
-        "application/rss+xml"
-        "application/x-extension-rss"
-        # Newsgroups
-        "x-scheme-handler/news"
-        "x-scheme-handler/snews"
-        "x-scheme-handler/nntp"
-      ];
-    })
-  ];
-  postInstall = ''
-    # TODO: Move to a dev output?
-    rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
-  '';
-
-  preFixup = ''
-    # Needed to find Mozilla runtime
-    gappsWrapperArgs+=(
-      --argv0 "$out/bin/thunderbird"
-      --set MOZ_APP_LAUNCHER thunderbird
-      # https://github.com/NixOS/nixpkgs/pull/61980
-      --set SNAP_NAME "thunderbird"
-      --set MOZ_LEGACY_PROFILES 1
-      --set MOZ_ALLOW_DOWNGRADE 1
-    )
-  '';
-
-  # FIXME: The XUL portion of this can probably be removed as soon as we
-  # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)?
-  postFixup = ''
-    local xul="$out/lib/thunderbird/libxul.so"
-    patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    "$out/bin/thunderbird" --version
-  '';
-
-  disallowedRequisites = [
-    stdenv.cc
-  ];
-
-  passthru.updateScript = import ./../../browsers/firefox/update.nix {
-    attrPath = "thunderbird";
-    baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
-    inherit writeScript lib common-updater-scripts xidel coreutils gnused
-      gnugrep curl runtimeShell;
-  };
-
-  meta = with lib; {
-    description = "A full-featured e-mail client";
-    homepage = "https://www.thunderbird.net";
-    maintainers = with maintainers; [
-      eelco
-      lovesegfault
-      pierron
-      vcunat
-    ];
-    platforms = platforms.linux;
-    license = licenses.mpl20;
-    knownVulnerabilities = [ "Support ended around Semptember 2020." ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index 9cd023f76b84..a90047a23484 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -58,7 +58,7 @@
 
 , debugBuild ? false
 
-, alsaSupport ? stdenv.isLinux, alsaLib
+, alsaSupport ? stdenv.isLinux, alsa-lib
 , pulseaudioSupport ? stdenv.isLinux, libpulseaudio
 , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
 , waylandSupport ? true, libdrm
@@ -73,13 +73,13 @@ assert waylandSupport -> gtk3Support == true;
 
 stdenv.mkDerivation rec {
   pname = "thunderbird";
-  version = "78.10.0";
+  version = "78.11.0";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "0nywhw1y9g78fpfgmcp6vphdidpnhfxif18qx23j7p20ayymvi2gd3smm4qfr6rlb0dkzyk1vxc2dj47zd8169wlkvr6l1kfsgvrj49";
+      "1m12kx830pfzvby8j9i5nb9c5v71vlg4wr0qrjgg3pw5ml9j5x7myrqyfd49l2qppm3xjn08srvmf45avnwq0lrys4sb83iwsd46sf6";
   };
 
   nativeBuildInputs = [
@@ -140,7 +140,7 @@ stdenv.mkDerivation rec {
     xorg.libXdamage
     zip
     zlib
-  ] ++ lib.optional alsaSupport alsaLib
+  ] ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional gtk3Support gtk3
     ++ lib.optional pulseaudioSupport libpulseaudio
     ++ lib.optionals waylandSupport [ libxkbcommon libdrm ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
deleted file mode 100644
index 482c10bd1cfc..000000000000
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig-68.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Remove about:buildconfig.  If used as-is, it would add unnecessary runtime dependencies.
-diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
---- a/docshell/base/nsAboutRedirector.cpp	2017-07-31 18:20:51.000000000 +0200
-+++ b/docshell/base/nsAboutRedirector.cpp	2017-09-26 22:02:00.814151731 +0200
-@@ -32,8 +32,6 @@
-     {"about", "chrome://global/content/aboutAbout.xhtml", 0},
-     {"addons", "chrome://mozapps/content/extensions/extensions.xul",
-      nsIAboutModule::ALLOW_SCRIPT},
--    {"buildconfig", "chrome://global/content/buildconfig.html",
--     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
-     {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
-      nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
-          nsIAboutModule::ALLOW_SCRIPT},
-diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn
---- a/toolkit/content/jar.mn	2017-07-31 18:20:52.000000000 +0200
-+++ b/toolkit/content/jar.mn	2017-09-26 22:01:42.383350314 +0200
-@@ -39,7 +39,6 @@
-    content/global/plugins.css
-    content/global/browser-child.js
-    content/global/browser-content.js
--*   content/global/buildconfig.html
-    content/global/buildconfig.css
-    content/global/contentAreaUtils.js
-    content/global/datepicker.xhtml
---- a/comm/mail/base/jar.mn
-+++ b/comm/mail/base/jar.mn
-@@ -117,9 +117,7 @@
- % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
- % override chrome://mozapps/content/profile/profileDowngrade.xul chrome://messenger/content/profileDowngrade.xul
- 
--*   content/messenger/buildconfig.html              (content/buildconfig.html)
-     content/messenger/buildconfig.css               (content/buildconfig.css)
--% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
- % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css
- 
- # L10n resources and overrides.
diff --git a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
index b27598c40e40..33030e0c7eec 100644
--- a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -1,11 +1,11 @@
 { stdenv, lib, fetchurl, dpkg
-, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype
+, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3, mesa
 , xorg, autoPatchelfHook, systemd, libnotify, libappindicator
 }:
 
 let deps = [
-    alsaLib
+    alsa-lib
     atk
     cairo
     cups
@@ -42,11 +42,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "mullvad-vpn";
-  version = "2021.2";
+  version = "2021.3";
 
   src = fetchurl {
     url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
-    sha256 = "sha256-nNZK11MckiQ+z8NDgDc7aJ6yrXWI1hPOvMZkrGwDDgU=";
+    sha256 = "sha256-f7ZCDZ/RN+Z0Szmnx8mbzhKZiRPjqXTsgClfWViFYzo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix
index 088391ba48f7..e0c5b50be0f3 100644
--- a/nixpkgs/pkgs/applications/networking/mumble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, qt5
 , avahi, boost, libopus, libsndfile, protobuf, speex, libcap
-, alsaLib, python3
+, alsa-lib, python3
 , rnnoise
 , jackSupport ? false, libjack2
 , speechdSupport ? false, speechd
@@ -73,7 +73,7 @@ let
 
     nativeBuildInputs = [ qt5.qttools ];
     buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ]
-      ++ lib.optional stdenv.isLinux alsaLib
+      ++ lib.optional stdenv.isLinux alsa-lib
       ++ lib.optional jackSupport libjack2
       ++ lib.optional speechdSupport speechd
       ++ lib.optional pulseSupport libpulseaudio;
diff --git a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
index 69f214cc5711..d96caf372efa 100644
--- a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-Yny5zZe5x7/pWda839HcFkHFuL/jl1Q7ykTZzKy871I=";
   };
 
-  cargoSha256 = "sha256-IsRaDhnRamMSbtXG1r1j0jZYjFiSjRdwOaUVyqy4ZJw=";
+  cargoSha256 = "sha256-C4V1WsAUFtr+N64zyBk1V0E8gTM/U54q03J6Nj8ReLk=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
index 4567f26224a3..db01ec014ee6 100644
--- a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
@@ -20,13 +20,13 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.2.0";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "1nklsa2lx9ayjp8rk1mycjysqqmnq47djig0wygzna5mycl3ji06";
+    sha256 = "sha256-UPWr5P6oEBtDK/Cuz8nZlHqKFyGEf44vbMfrphxNkMU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/networking/nextdns/default.nix b/nixpkgs/pkgs/applications/networking/nextdns/default.nix
index b65ba8d94cf1..a27f1fdad257 100644
--- a/nixpkgs/pkgs/applications/networking/nextdns/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nextdns/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "nextdns";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "nextdns";
     repo = "nextdns";
     rev = "v${version}";
-    sha256 = "sha256-hMI6zq176p7MI4cjMSeQ8T8UvibJW60lzsPmeAOi3ow=";
+    sha256 = "sha256-gnWFgzfMMnn8O7zDN5LW3cMIz5/wmgEW9fI9aJBEah8=";
   };
 
   vendorSha256 = "sha256-kmszMqkDMaL+Z6GcZmQyeRShKKS/VGdn9vabYPW/kCc=";
diff --git a/nixpkgs/pkgs/applications/networking/nym/default.nix b/nixpkgs/pkgs/applications/networking/nym/default.nix
index 528db85092c0..b7bffcd694e1 100644
--- a/nixpkgs/pkgs/applications/networking/nym/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nym/default.nix
@@ -1,38 +1,31 @@
-{ lib
+{ stdenv
+, lib
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
 , openssl
-, libredirect
-, writeText
+, Security
+, libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "nym";
-  version = "0.8.1";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "nymtech";
     repo = "nym";
     rev = "v${version}";
-    sha256 = "0wzk9qzjyax73lfjbbag412vw1fgk2wmhhry5hdlvdbkim42m5bn";
+    sha256 = "sha256-7x+B+6T0cnEOjXevA5n1k/SY1Q2tcu0bbZ9gIGoljw0=";
   };
 
-  # fix outdated Cargo.lock
-  cargoPatches = [ (writeText "fix-nym-cargo-lock.patch" ''
-    --- a/Cargo.lock
-    +++ b/Cargo.lock
-    @@ -1826 +1826 @@
-    -version = "0.8.0"
-    +version = "0.8.1"
-  '') ];
-
-  cargoSha256 = "0zr5nzmglmvn6xfqgvipbzy8nw5cl3nf7zjmghkqdwi6zj9p9272";
+  cargoSha256 = "0a7yja0ihjc66fqlshlaxpnpcpdy7h7gbv6120w2cr605qdnqvkx";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
 
+  patches = [ ./ignore-networking-tests.patch ];
   checkType = "debug";
 
   passthru.updateScript = ./update.sh;
@@ -46,6 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://nymtech.net";
     license = licenses.asl20;
     maintainers = [ maintainers.ehmry ];
-    platforms = with platforms; intersectLists (linux ++ darwin) (concatLists [ x86 x86_64 aarch64 arm ]);
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/nym/ignore-networking-tests.patch b/nixpkgs/pkgs/applications/networking/nym/ignore-networking-tests.patch
new file mode 100644
index 000000000000..e971557e7ce0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/nym/ignore-networking-tests.patch
@@ -0,0 +1,123 @@
+diff --git a/service-providers/network-requester/src/allowed_hosts.rs b/service-providers/network-requester/src/allowed_hosts.rs
+index 3026b4ee..fd156682 100644
+--- a/service-providers/network-requester/src/allowed_hosts.rs
++++ b/service-providers/network-requester/src/allowed_hosts.rs
+@@ -306,6 +306,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn leaves_a_com_alone() {
+             let filter = setup();
+             assert_eq!(
+@@ -315,6 +316,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn trims_subdomains_from_com() {
+             let filter = setup();
+             assert_eq!(
+@@ -324,6 +326,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn works_for_non_com_roots() {
+             let filter = setup();
+             assert_eq!(
+@@ -333,6 +336,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn works_for_non_com_roots_with_subdomains() {
+             let filter = setup();
+             assert_eq!(
+@@ -342,12 +346,14 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn returns_none_on_garbage() {
+             let filter = setup();
+             assert_eq!(None, filter.get_domain_root("::/&&%@"));
+         }
+ 
+         #[test]
++        #[ignore]
+         fn returns_none_on_nonsense_domains() {
+             let filter = setup();
+             assert_eq!(None, filter.get_domain_root("flappappa"));
+@@ -368,6 +374,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_not_allowed() {
+             let host = "unknown.com";
+             let mut filter = setup();
+@@ -375,6 +382,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn get_appended_once_to_the_unknown_hosts_list() {
+             let host = "unknown.com";
+             let mut filter = setup();
+@@ -405,6 +413,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_allowed() {
+             let host = "nymtech.net";
+ 
+@@ -413,6 +422,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_allowed_for_subdomains() {
+             let host = "foomp.nymtech.net";
+ 
+@@ -421,6 +431,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_not_appended_to_file() {
+             let mut filter = setup(&["nymtech.net"]);
+ 
+@@ -436,6 +447,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_allowed_for_ipv4_addresses() {
+             let address_good = "1.1.1.1";
+             let address_good_port = "1.1.1.1:1234";
+@@ -448,6 +460,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_allowed_for_ipv6_addresses() {
+             let ip_v6_full = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
+             let ip_v6_full_rendered = "2001:0db8:85a3::8a2e:0370:7334";
+@@ -477,6 +490,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_allowed_for_ipv4_address_ranges() {
+             let range1 = "127.0.0.1/32";
+             let range2 = "1.2.3.4/24";
+@@ -495,6 +509,7 @@ mod tests {
+         }
+ 
+         #[test]
++        #[ignore]
+         fn are_allowed_for_ipv6_address_ranges() {
+             let range = "2620:0:2d0:200::7/32";
+ 
diff --git a/nixpkgs/pkgs/applications/networking/onionshare/default.nix b/nixpkgs/pkgs/applications/networking/onionshare/default.nix
index 124ee9a20ead..529b871d20c8 100644
--- a/nixpkgs/pkgs/applications/networking/onionshare/default.nix
+++ b/nixpkgs/pkgs/applications/networking/onionshare/default.nix
@@ -4,6 +4,7 @@
   substituteAll,
   fetchFromGitHub,
   isPy3k,
+  colorama,
   flask,
   flask-httpauth,
   flask-socketio,
@@ -22,12 +23,12 @@
 }:
 
 let
-  version = "2.3.1";
+  version = "2.3.2";
   src = fetchFromGitHub {
     owner = "micahflee";
     repo = "onionshare";
     rev = "v${version}";
-    sha256 = "sha256-H09x3OF6l1HLHukGPvV2rZUjW9fxeKKMZkKbY9a2m9I=";
+    sha256 = "sha256-mzLDvvpO82iGDnzY42wx1KCNmAxUgVhpaDVprtb+YOI=";
   };
   meta = with lib; {
     description = "Securely and anonymously send and receive files";
@@ -69,6 +70,7 @@ in rec {
     ];
     disable = !isPy3k;
     propagatedBuildInputs = [
+      colorama
       flask
       flask-httpauth
       flask-socketio
diff --git a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch
index cdc2e3d47dd8..841af8fa95af 100644
--- a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch
+++ b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch
@@ -1,7 +1,6 @@
-
 --- a/onionshare/gui_common.py
 +++ b/onionshare/gui_common.py
-@@ -376,29 +376,10 @@ class GuiCommon:
+@@ -391,29 +391,10 @@ class GuiCommon:
          }
  
      def get_tor_paths(self):
@@ -20,7 +19,7 @@
 -        elif self.common.platform == "Darwin":
 -            base_path = self.get_resource_path("tor")
 -            tor_path = os.path.join(base_path, "tor")
--            obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy.exe")
+-            obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy")
 -            tor_geo_ip_file_path = os.path.join(base_path, "geoip")
 -            tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
 -        elif self.common.platform == "BSD":
diff --git a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
index a290dd884104..9280ec4d255a 100644
--- a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
+++ b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch
@@ -1,8 +1,8 @@
 --- a/onionshare_cli/common.py
 +++ b/onionshare_cli/common.py
-@@ -86,33 +86,10 @@ class Common:
+@@ -308,33 +308,10 @@ class Common:
          return path
- 
+
      def get_tor_paths(self):
 -        if self.platform == "Linux":
 -            tor_path = shutil.which("tor")
@@ -35,6 +35,7 @@
 +        tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
 +        tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
 +        obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
- 
+
          return (
              tor_path,
+
diff --git a/nixpkgs/pkgs/applications/networking/openbazaar/default.nix b/nixpkgs/pkgs/applications/networking/openbazaar/default.nix
index beb957786ba5..aa5d14724ac4 100644
--- a/nixpkgs/pkgs/applications/networking/openbazaar/default.nix
+++ b/nixpkgs/pkgs/applications/networking/openbazaar/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "openbazaar";
-  version = "0.14.3";
+  version = "0.14.6";
 
   suffix = {
     i686-linux    = "linux-386";
@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://github.com/OpenBazaar/openbazaar-go/releases/download/v${version}/${pname}-go-${suffix}";
     sha256 = {
-      i686-linux    = "098dgxpz9m4rfswc9yg77s3bvaifd4453s20n8kmh55g5ipgs2x1";
-      x86_64-darwin = "0q989m4zj7x9d6vimmpfkla78hmx2zr7bxm9yg61ir00w60l14jx";
-      x86_64-linux  = "093rwn4nfirknbxz58n16v0l0apj2h0yr63f64fqysmy78883al2";
+      i686-linux    = "1cmv3gyfd6q7y6yn6kigksy2abkq5b8mfgk51d04ky1ckgbriaqq";
+      x86_64-darwin = "0n32a0pyj1k2had3imimdyhdhyb285y1dj04f7g3jajmy5zndaxx";
+      x86_64-linux  = "105i5yl2yvhcvyh1wf35kqq1qyxgbl9j2kxs6yshsk14b2p02j5i";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/opsdroid/default.nix b/nixpkgs/pkgs/applications/networking/opsdroid/default.nix
new file mode 100644
index 000000000000..c007144ac48e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/opsdroid/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "opsdroid";
+  version = "0.22.0";
+
+  src = fetchFromGitHub {
+    owner = "opsdroid";
+    repo = "opsdroid";
+    rev = "v${version}";
+    sha256 = "003gpzdjfz2jrwx2bkkd1k2mr7yjpaw5s7fy5l0hw72f9zimznd0";
+  };
+
+  disabled = !python3Packages.isPy3k;
+
+  # tests folder is not included in release
+  doCheck = false;
+
+  propagatedBuildInputs = with python3Packages; [
+    click Babel opsdroid_get_image_size slackclient webexteamssdk bleach
+    parse emoji puremagic yamale nbformat websockets pycron nbconvert
+    aiohttp matrix-api-async aioredis aiosqlite arrow pyyaml motor regex
+    mattermostdriver setuptools voluptuous ibm-watson tailer multidict
+    watchgod get-video-properties appdirs bitstring matrix-nio
+  ];
+
+  passthru.python = python3Packages.python;
+
+  meta = with lib; {
+    description = "An open source chat-ops bot framework";
+    homepage = "https://opsdroid.dev";
+    maintainers = with maintainers; [ fpletz globin willibutz lheckemann ];
+    license = licenses.asl20;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
index af290fc1cc5f..c1ba42a5e6d3 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -1,15 +1,17 @@
 { lib, stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor
 , libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring
 , makeWrapper, ncurses, pkg-config, libxml2, sqlite, zlib
-, libpulseaudio, libopus, libogg, jansson, libsodium }:
+, libpulseaudio, libopus, libogg, jansson, libsodium
+
+, postgresqlSupport ? false, postgresql }:
 
 stdenv.mkDerivation rec {
   pname = "gnunet";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
-    sha256 = "sha256-2u9gO9Mu0dM1yixcaqOnZcDfGcp69dc5CH5tkl6vRas=";
+    sha256 = "1hhqv994akymf4s593mc1wpsjy6hccd0zbdim3qmc1y3f32hacja";
   };
 
   enableParallelBuilding = true;
@@ -19,7 +21,7 @@ stdenv.mkDerivation rec {
     adns curl gmp gnutls libextractor libgcrypt libgnurl libidn
     libmicrohttpd libunistring libxml2 ncurses gettext libsodium
     sqlite zlib libpulseaudio libopus libogg jansson
-  ];
+  ] ++ lib.optional postgresqlSupport postgresql;
 
   preConfigure = ''
     # Brute force: since nix-worker chroots don't provide
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
index 2532671bc25e..3711d5a3c1ed 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
@@ -5,6 +5,7 @@
 , gtk3
 , libextractor
 , libgcrypt
+, libsodium
 , libxml2
 , pkg-config
 , wrapGAppsHook
@@ -12,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnunet-gtk";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
-    sha256 = "1zdzgq16h77w6ybwg3lqjsjr965np6iqvncqvkbj07glqd4wss0j";
+    sha256 = "18rc7mb45y17d5nrlpf2p4ixp7ir67gcgjf4hlj4r95ic5zi54wa";
   };
 
   nativeBuildInputs= [
@@ -31,15 +32,16 @@ stdenv.mkDerivation rec {
     gtk3
     libextractor
     libgcrypt
+    libsodium
     libxml2
   ];
 
+  configureFlags = [ "--with-gnunet=${gnunet}" ];
+
   patchPhase = "patchShebangs pixmaps/icon-theme-installer";
 
   meta = gnunet.meta // {
     description = "GNUnet GTK User Interface";
     homepage = "https://git.gnunet.org/gnunet-gtk.git";
-    # configure: error: compiling gnunet-gtk requires GNUnet core headers
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
index 37bc1e372acf..41b8a7d0b6c2 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -1,37 +1,31 @@
-{ lib, stdenv, fetchurl, ocamlPackages, zlib, bzip2, ncurses, file, gd, libpng, libjpeg }:
+{ lib, stdenv, fetchurl, ocamlPackages, zlib }:
 
-stdenv.mkDerivation ({
-  name = "mldonkey-3.1.6";
+stdenv.mkDerivation rec {
+  pname = "mldonkey";
+  version = "3.1.7-2";
 
   src = fetchurl {
-    url = "https://github.com/ygrek/mldonkey/releases/download/release-3-1-6/mldonkey-3.1.6.tar.bz2";
-    sha256 = "0g84islkj72ymp0zzppcj9n4r21h0vlghnq87hv2wg580mybadhv";
+    url = "https://ygrek.org/p/release/mldonkey/mldonkey-${version}.tar.bz2";
+    sha256 = "b926e7aa3de4b4525af73c88f1724d576b4add56ef070f025941dd51cb24a794";
   };
 
-  preConfigure = lib.optionalString (ocamlPackages.camlp4 != null) ''
+  preConfigure = ''
     substituteInPlace Makefile --replace '+camlp4' \
       '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4'
   '';
 
-  buildInputs = [ zlib ncurses bzip2 file gd libpng libjpeg ] ++
-  (with ocamlPackages; [ ocaml camlp4 ]);
-  configureFlags = [ "--disable-gui" ];
+  buildInputs = (with ocamlPackages; [
+    ocaml
+    camlp4
+    num
+  ]) ++ [
+    zlib
+  ];
 
   meta = {
     description = "Client for many p2p networks, with multiple frontends";
     homepage = "http://mldonkey.sourceforge.net/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
   };
-} // (if !ocamlPackages.ocaml.nativeCompilers then
-{
-  # Byte code compilation (the ocaml opt compiler is not supported in some platforms)
-  buildPhase = "make mlnet.byte";
-  installPhase = ''
-    mkdir -p $out/bin
-    cp mlnet.byte $out/bin/mlnet
-  '';
-
-  # ocaml bytecode selfcontained binaries loose the bytecode if stripped
-  dontStrip = true;
-} else {}))
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
index 4e127a1e7b8a..f08e5c42e1d7 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, libowfat, zlib }:
+{ lib, stdenv, fetchgit, libowfat, zlib, nixosTests }:
 
 stdenv.mkDerivation {
   name = "opentracker-2018-05-26";
@@ -23,6 +23,10 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
+  passthru.tests = {
+    bittorrent-integration = nixosTests.bittorrent;
+  };
+
   meta = with lib; {
     homepage = "https://erdgeist.org/arts/software/opentracker/";
     license = licenses.beerware;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
index 4c0d391ccaab..bd4fafed1119 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -12,15 +12,17 @@ assert trackerSearch -> (python3 != null);
 with lib;
 mkDerivation rec {
   pname = "qbittorrent";
-  version = "4.3.3";
+  version = "4.3.5";
 
   src = fetchFromGitHub {
     owner = "qbittorrent";
-    repo = "qbittorrent";
+    repo = "qBittorrent";
     rev = "release-${version}";
-    sha256 = "0y8vrvfv8n6zg6pgg5a9hmvxi2z9rrfd9k8zv04nv5js91b99ncq";
+    sha256 = "1vdk42f8rxffyfydjk5cgzg5gl88ng2pynlyxw5ajh08wvkkjzgy";
   };
 
+  enableParallelBuilding = true;
+
   # NOTE: 2018-05-31: CMake is working but it is not officially supported
   nativeBuildInputs = [ makeWrapper pkg-config ];
 
@@ -47,7 +49,8 @@ mkDerivation rec {
   meta = {
     description = "Featureful free software BitTorrent client";
     homepage    = "https://www.qbittorrent.org/";
-    license     = licenses.gpl2;
+    changelog   = "https://github.com/qbittorrent/qBittorrent/blob/release-${version}/Changelog";
+    license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ Anton-Latukha ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
index a39b4aab8371..e69155d4c2f4 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -1,59 +1,53 @@
-{ lib, stdenv, fetchFromGitHub, libupnp, gpgme, gnome3, glib, libssh, pkg-config, protobuf, bzip2
-, libXScrnSaver, speex, curl, libxml2, libxslt, sqlcipher, libmicrohttpd, opencv, qmake, ffmpeg_3
-, qtmultimedia, qtx11extras, qttools }:
+{ lib, mkDerivation, fetchFromGitHub, qmake, cmake, pkg-config, miniupnpc, bzip2
+, speex, libmicrohttpd, libxml2, libxslt, sqlcipher, rapidjson, libXScrnSaver
+, qtbase, qtx11extras, qtmultimedia, libgnome-keyring3
+}:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "retroshare";
-  version = "0.6.2";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "RetroShare";
     repo = "RetroShare";
     rev = "v${version}";
-    sha256 = "0hly2x87wdvqzzwf3wjzi7092bj8fk4xs6302rkm8gp9bkkmiiw8";
+    sha256 = "1hsymbhsfgycj39mdkrdp2hgq8irmvxa4a6jx2gg339m1fgf2xmh";
+    fetchSubmodules = true;
   };
 
-  # NIX_CFLAGS_COMPILE = [ "-I${glib.dev}/include/glib-2.0" "-I${glib.dev}/lib/glib-2.0/include" "-I${libxml2.dev}/include/libxml2" "-I${sqlcipher}/include/sqlcipher" ];
-
-  patchPhase = ''
-    # Fix build error
-    sed -i 's/UpnpString_get_String(es_event->PublisherUrl)/es_event->PublisherUrl/' \
-      libretroshare/src/upnp/UPnPBase.cpp
-  '';
+  patches = [
+    # The build normally tries to get git sub-modules during build
+    # but we already have them checked out
+    ./no-submodules.patch
+  ];
 
-  nativeBuildInputs = [ pkg-config qmake ];
+  nativeBuildInputs = [ pkg-config qmake cmake ];
   buildInputs = [
-    speex libupnp gpgme gnome3.libgnome-keyring glib libssh qtmultimedia qtx11extras qttools
-    protobuf bzip2 libXScrnSaver curl libxml2 libxslt sqlcipher libmicrohttpd opencv ffmpeg_3
+    speex miniupnpc qtmultimedia qtx11extras qtbase libgnome-keyring3
+    bzip2 libXScrnSaver libxml2 libxslt sqlcipher libmicrohttpd rapidjson
   ];
 
-  preConfigure = ''
-    qmakeFlags="$qmakeFlags DESTDIR=$out"
-  '';
+  qmakeFlags = [
+    # Upnp library autodetection doesn't work
+    "RS_UPNP_LIB=miniupnpc"
 
-  # gui/settings/PluginsPage.h:25:28: fatal error: ui_PluginsPage.h: No such file or directory
-  enableParallelBuilding = false;
+    # These values are normally found from the .git folder
+    "RS_MAJOR_VERSION=${lib.versions.major version}"
+    "RS_MINOR_VERSION=${lib.versions.minor version}"
+    "RS_MINI_VERSION=${lib.versions.patch version}"
+    "RS_EXTRA_VERSION="
+  ];
 
   postInstall = ''
-    mkdir -p $out/bin
-    mv $out/RetroShare06-nogui $out/bin/RetroShare-nogui
-    mv $out/RetroShare06 $out/bin/Retroshare
-    ln -s $out/bin/RetroShare-nogui $out/bin/retroshare-nogui
-
-    # plugins
-    mkdir -p $out/share/retroshare
-    mv $out/lib* $out/share/retroshare
-
     # BT DHT bootstrap
     cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare
   '';
 
   meta = with lib; {
-    description = "";
+    description = "Decentralized peer to peer chat application.";
     homepage = "http://retroshare.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ ];
-    broken = true; # broken by libupnp: 1.6.21 -> 1.8.3 (#41684)
+    maintainers = with maintainers; [ StijnDW ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/retroshare/no-submodules.patch b/nixpkgs/pkgs/applications/networking/p2p/retroshare/no-submodules.patch
new file mode 100644
index 000000000000..d47268003090
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/retroshare/no-submodules.patch
@@ -0,0 +1,62 @@
+diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro
+index 84d18944e..71aeb67d2 100644
+--- a/libretroshare/src/libretroshare.pro
++++ b/libretroshare/src/libretroshare.pro
+@@ -870,20 +870,14 @@ rs_jsonapi {
+         genrestbedlib.variable_out = PRE_TARGETDEPS
+         win32-g++:isEmpty(QMAKE_SH) {
+             genrestbedlib.commands = \
+-                cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/restbed || cd . $$escape_expand(\\n\\t) \
+-                cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/asio || cd . $$escape_expand(\\n\\t) \
+-                cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/catch || cd . $$escape_expand(\\n\\t )\
+-                cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/kashmir || cd . $$escape_expand(\\n\\t) \
++                cd /D $$shell_path($${RS_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \
++                cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \
++                cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t )\
++                cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \
+                 $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t)
+         } else {
+             genrestbedlib.commands = \
+-                cd $${RS_SRC_PATH} && ( \
+-                git submodule update --init supportlibs/restbed ; \
+-                cd $${RESTBED_SRC_PATH} ; \
+-                git submodule update --init dependency/asio ; \
+-                git submodule update --init dependency/catch ; \
+-                git submodule update --init dependency/kashmir ; \
+-                true ) && \
++                cd $${RS_SRC_PATH} && \
+                 mkdir -p $${RESTBED_BUILD_PATH} &&
+         }
+         genrestbedlib.commands += \
+@@ -991,14 +985,9 @@ rs_broadcast_discovery {
+         udpdiscoverycpplib.variable_out = PRE_TARGETDEPS
+         win32-g++:isEmpty(QMAKE_SH) {
+             udpdiscoverycpplib.commands = \
+-                cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/udp-discovery-cpp || cd . $$escape_expand(\\n\\t) \
+                 $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t)
+         } else {
+-            udpdiscoverycpplib.commands = \
+-                cd $${RS_SRC_PATH} && ( \
+-                git submodule update --init supportlibs/udp-discovery-cpp || \
+-                true ) && \
+-                mkdir -p $${UDP_DISCOVERY_BUILD_PATH} &&
++            udpdiscoverycpplib.commands = mkdir -p $${UDP_DISCOVERY_BUILD_PATH} &&
+         }
+         udpdiscoverycpplib.commands += \
+             cd $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) && \
+diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro
+index 654efd170..06cba9ba3 100644
+--- a/retroshare-gui/src/retroshare-gui.pro
++++ b/retroshare-gui/src/retroshare-gui.pro
+@@ -66,10 +66,7 @@ rs_gui_cmark {
+ 		gencmarklib.CONFIG += target_predeps combine
+ 		gencmarklib.variable_out = PRE_TARGETDEPS
+ 		gencmarklib.commands = \
+-		    cd $${RS_SRC_PATH} && ( \
+-		    git submodule update --init supportlibs/cmark ; \
+-		    cd $${CMARK_SRC_PATH} ; \
+-		    true ) && \
++		    cd $${RS_SRC_PATH} && \
+ 		    mkdir -p $${CMARK_BUILD_PATH} && cd $${CMARK_BUILD_PATH} && \
+ 		    cmake \
+ 		        -DCMAKE_CXX_COMPILER=$$QMAKE_CXX \
diff --git a/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
index 761d18e5fe37..c7104d9011d8 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "01npv3zwia5d534zdwisd9xfng507adv4qkljf8z0zm0khqqn71a";
   };
 
-  cargoSha256 = "0lhhdzq4sadnp2pnbq309d1mb7ggbf24k5ivlchrjhllbim1wmdz";
+  cargoSha256 = "0sy0vlpkj967g9lyyh7ska8cpw5xh0g04kj071a32idrqc3dcjb1";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
index 363e5f7cfbee..1efa9ec76da7 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
@@ -17,10 +17,12 @@
 , wrapGAppsHook
 , enableQt ? false
 , qt5
+, nixosTests
 , enableSystemd ? stdenv.isLinux
 , enableDaemon ? true
 , enableCli ? true
 , installLib ? false
+, apparmorRulesFromClosure
 }:
 
 let
@@ -38,6 +40,8 @@ in stdenv.mkDerivation {
     fetchSubmodules = true;
   };
 
+  outputs = [ "out" "apparmor" ];
+
   cmakeFlags =
     let
       mkFlag = opt: if opt then "ON" else "OFF";
@@ -74,6 +78,37 @@ in stdenv.mkDerivation {
 
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
 
+  postInstall = ''
+    mkdir $apparmor
+    cat >$apparmor/bin.transmission-daemon <<EOF
+    include <tunables/global>
+    $out/bin/transmission-daemon {
+      include <abstractions/base>
+      include <abstractions/nameservice>
+      include <abstractions/ssl_certs>
+      include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([
+        curl libevent openssl pcre zlib
+      ] ++ lib.optionals enableSystemd [ systemd ]
+        ++ lib.optionals stdenv.isLinux [ inotify-tools ]
+      )}"
+      r @{PROC}/sys/kernel/random/uuid,
+      r @{PROC}/sys/vm/overcommit_memory,
+      r @{PROC}/@{pid}/environ,
+      r @{PROC}/@{pid}/mounts,
+      rwk /tmp/tr_session_id_*,
+      r /run/systemd/resolve/stub-resolv.conf,
+
+      r $out/share/transmission/web/**,
+
+      include <local/bin.transmission-daemon>
+    }
+    EOF
+  '';
+
+  passthru.tests = {
+    smoke-test = nixosTests.bittorrent;
+  };
+
   meta = {
     description = "A fast, easy and free BitTorrent client";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/networking/p2p/xd/default.nix b/nixpkgs/pkgs/applications/networking/p2p/xd/default.nix
new file mode 100644
index 000000000000..54581a6070ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/xd/default.nix
@@ -0,0 +1,29 @@
+{ pkgs, buildGoModule, fetchFromGitHub, lib, perl }:
+
+buildGoModule rec {
+  pname = "XD";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "majestrate";
+    repo = "XD";
+    rev = "v${version}";
+    sha256 = "sha256-fXENoqhR04TYS/kAJUqsqa0+j+KyzdsMlXIZ2GMPMhc=";
+  };
+
+  vendorSha256 = "1wg3cym2rwrhjsqlgd38l8mdq5alccz808465117n3vyga9m35lq";
+
+  checkInputs = [ perl ];
+
+  postInstall = ''
+    ln -s $out/bin/XD $out/bin/XD-CLI
+  '';
+
+  meta = with lib; {
+    description = "i2p bittorrent client";
+    homepage = "https://xd-torrent.github.io";
+    maintainers = with maintainers; [ nixbitcoin ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/pcloud/default.nix b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
index 64721cd75a67..b3968ed86045 100644
--- a/nixpkgs/pkgs/applications/networking/pcloud/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
@@ -21,19 +21,19 @@
   # Runtime dependencies;
   # A few additional ones (e.g. Node) are already shipped together with the
   # AppImage, so we don't have to duplicate them here.
-  alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, udev, nss
+  alsa-lib, dbus-glib, fuse, gnome, gtk3, libdbusmenu-gtk2, libXdamage, nss, udev
 }:
 
 let
   pname = "pcloud";
-  version = "1.9.1";
-  code = "XZXB3fXZgXyQbnTkTm5XOJH9i6NsKX9lL21V";
+  version = "1.9.2";
+  code = "XZCBKnXZdbHEAu1ec7bMDQCb1oCztBc169Py";
   name = "${pname}-${version}";
 
   # Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
   src = fetchzip {
     url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${name}.zip";
-    hash = "sha256-vUrz4thp9tcU9T8d52DJUAbt6Jnv+E3pbUytzMR8d/E=";
+    hash = "sha256-9I4xl9cO1MDvdXaTv6ER/NPdqKoo0y7HNWxGl0Fn1O0=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -54,11 +54,12 @@ in stdenv.mkDerivation {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     dbus-glib
     fuse
     gtk3
     libdbusmenu-gtk2
+    libXdamage
     nss
     udev
   ];
@@ -93,7 +94,7 @@ in stdenv.mkDerivation {
 
     # This is required for the file picker dialog - otherwise pcloud just
     # crashes
-    export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
+    export XDG_DATA_DIRS="${gnome.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome.gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
 
     exec "$out/app/pcloud"
     EOF
diff --git a/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
index dc7b0b0a4c8d..84e52128b667 100644
--- a/nixpkgs/pkgs/applications/networking/pjsip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsaLib, AppKit }:
+{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit }:
 
 stdenv.mkDerivation rec {
   pname = "pjsip";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [ openssl libsamplerate ]
-    ++ lib.optional stdenv.isLinux alsaLib
+    ++ lib.optional stdenv.isLinux alsa-lib
     ++ lib.optional stdenv.isDarwin AppKit;
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
index f88a2e3d8e88..890553b338eb 100644
--- a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, genericUpdater, writeShellScript
-, atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU, libGL, pango, xorg
-, lsb-release, freetype, fontconfig, polkit, polkit_gnome
+, atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU, libGL, pango, xorg, minizip
+, lsb-release, freetype, fontconfig, polkit, polkit_gnome, pciutils
 , pulseaudio }:
 
 let
@@ -18,14 +18,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "6.1.0";
+  version = "6.1.1";
 
   src = fetchurl {
     urls = [
       "https://download.anydesk.com/linux/${pname}-${version}-amd64.tar.gz"
       "https://download.anydesk.com/linux/generic-linux/${pname}-${version}-amd64.tar.gz"
     ];
-    sha256 = "1qbq6r0yanjappsi8yglw8r54bwf32bjb2i63awmr6pk5kmhhy3r";
+    sha256 = "1ai58fsivb8al1279bayl800qavy0kfj40rjhf87g902ap3p4bhh";
   };
 
   passthru = {
@@ -43,8 +43,8 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     atk cairo gdk-pixbuf glib gtk2 stdenv.cc.cc pango
-    gnome2.gtkglext libGLU libGL freetype fontconfig
-    polkit polkit_gnome pulseaudio
+    gnome2.gtkglext libGLU libGL minizip freetype
+    fontconfig polkit polkit_gnome pulseaudio
   ] ++ (with xorg; [
     libxcb libxkbfile libX11 libXdamage libXext libXfixes libXi libXmu
     libXrandr libXtst libXt libICE libSM libXrender
@@ -76,7 +76,7 @@ in stdenv.mkDerivation rec {
       $out/bin/anydesk
 
     wrapProgram $out/bin/anydesk \
-      --prefix PATH : ${lib.makeBinPath [ lsb-release ]}
+      --prefix PATH : ${lib.makeBinPath [ lsb-release pciutils ]}
 
     substituteInPlace $out/share/applications/*.desktop \
       --subst-var out
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 35faeb20b751..506f129d3596 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more
-, file, atk, alsaLib, cairo, fontconfig, gdk-pixbuf, glib, gnome3, gtk2-x11, gtk3
+, file, atk, alsa-lib, cairo, fontconfig, gdk-pixbuf, glib, gnome, gtk2-x11, gtk3
 , heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
-, gnome2, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
+, gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
 , libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
 , libpulseaudio, pcsclite
 
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     atk
     cairo
     dconf
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
     freetype
     gdk-pixbuf
     gnome2.gtkglext
-    gnome3.webkitgtk
+    gnome.webkitgtk
     gtk2
     gtk2-x11
     gtk3
@@ -84,6 +84,7 @@ stdenv.mkDerivation rec {
     libsoup
     libvorbis
     libxml2
+    mesa
     nspr
     nss
     openssl'
diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
index 8e0f4dde8168..942090f2bdf0 100644
--- a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, alsaLib, ffmpeg, glib, openssl
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, alsa-lib, ffmpeg, glib, openssl
 , pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama
 , libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland
 , gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt, cairo
@@ -49,7 +49,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = with lib;
     [
-      alsaLib
+      alsa-lib
       cairo
       cups
       ffmpeg
diff --git a/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
index acf1d7cc2d2f..e2ee9428ad24 100644
--- a/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -1,4 +1,5 @@
-{lib, stdenv, fetchFromGitHub, openssl, libX11, krb5, libXcursor, libtasn1, nettle, gnutls, pkg-config, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, openssl, libX11, krb5, libXcursor, libtasn1
+, nettle, gnutls, pkg-config, autoreconfHook, libiconv
 , enableCredssp ? (!stdenv.isDarwin)
 } :
 
@@ -15,7 +16,8 @@ stdenv.mkDerivation (rec {
 
   nativeBuildInputs = [pkg-config autoreconfHook];
   buildInputs = [openssl libX11 libXcursor libtasn1 nettle gnutls]
-    ++ lib.optional enableCredssp krb5;
+    ++ lib.optional enableCredssp krb5
+    ++ lib.optional stdenv.isDarwin libiconv;
 
   configureFlags = [
     "--with-ipv6"
diff --git a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
index 5d0195b62f88..e2f1cf2c8a2e 100644
--- a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
@@ -6,7 +6,7 @@
 , libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core
 , openssl, gsettings-desktop-schemas, json-glib, libsodium, webkitgtk, harfbuzz
 # The themes here are soft dependencies; only icons are missing without them.
-, gnome3
+, gnome
 }:
 
 with lib;
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     pcre2 libdbusmenu-gtk3 libappindicator-gtk3
     libvncserver libpthreadstubs libXdmcp libxkbcommon
     libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core
-    openssl gnome3.adwaita-icon-theme json-glib libsodium webkitgtk
+    openssl gnome.adwaita-icon-theme json-glib libsodium webkitgtk
     harfbuzz
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
index 3e58e83143fc..6b73f03531d0 100644
--- a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub, pkg-config, cmake, qtbase, qttools
+{ mkDerivation, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake, qtbase, qttools
 , seafile-shared, jansson, libsearpc
 , withShibboleth ? true, qtwebengine }:
 
@@ -13,6 +13,15 @@ mkDerivation rec {
     sha256 = "2vV+6ZXjVg81JVLfWeD0UK+RdmpBxBU2Ozx790WFSyw=";
   };
 
+  patches = [
+    # Fix compilation failure with "error: template with C linkage", fixes #122505
+    (fetchpatch {
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_build_with_glib2.diff?h=seafile-client&id=7be253aaa2bdb6771721f45aa08bc875c8001c5a";
+      name = "fix_build_with_glib2.diff";
+      sha256 = "0hl7rcqfr8k62c1pr133bp3j63b905izaaggmgvr1af4jibal05v";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ]
     ++ lib.optional withShibboleth qtwebengine;
@@ -29,6 +38,6 @@ mkDerivation rec {
     description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage";
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ eduardosm ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
index 23d2d498d6c0..522cef2b8a79 100644
--- a/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix
@@ -1,24 +1,32 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, testVersion
+, seaweedfs
+}:
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "2.36";
+  version = "2.50";
 
   src = fetchFromGitHub {
     owner = "chrislusf";
     repo = "seaweedfs";
     rev = version;
-    sha256 = "sha256-BVn+mV5SjyODcT+O8LXfGA42/Si5+GrdkjP0tAPiuTM=";
+    sha256 = "sha256-ai8/XryFw/7GYuWAmLkqHzK97QgTBPyE6m3dflck94w=";
   };
 
-  vendorSha256 = "sha256-qdgnoh+53o3idCfpkEFGK88aUVb2F6oHlSRZncs2hyY=";
+  vendorSha256 = "sha256-gJQDcACMWZWS4CgS2NDALoBzxu7Hh4ZW3f0gUFUALCM=";
 
   subPackages = [ "weed" ];
 
+  passthru.tests.version =
+    testVersion { package = seaweedfs; command = "weed version"; };
+
   meta = with lib; {
     description = "Simple and highly scalable distributed file system";
     homepage = "https://github.com/chrislusf/seaweedfs";
-    maintainers = [ maintainers.raboof ];
+    maintainers = with maintainers; [ cmacrae raboof ];
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
index fa129baabc14..7ecb8936a690 100644
--- a/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "0vdasz3qph73xb9y831bnr1hpcw0669n9zckqn95v1bsjc936313";
+    sha256 = "0fgkjv7p2p0k58ifs77qfy0ni2yhrmk8rqyysjxq0im6j3f3az11";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "059772rd1l7zyf2vlqjm35hg8ibmjc1p6cfazqd47n8mqqlqkilw";
+  vendorSha256 = "1avl5xvav9y2vni5w3ksvrcz67x2kkadqw9p1cfq5rkjny1c2jrg";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix
index 1e3f2635f474..db54231ecf2b 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix
@@ -2,10 +2,10 @@
 popt, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  name = "etherape-0.9.19";
+  name = "etherape-0.9.20";
   src = fetchurl {
     url = "mirror://sourceforge/etherape/${name}.tar.gz";
-    sha256 = "0w63vg2q6if3wvy2md66in8b6cdw9q40hny5xy6yrxky58l4kmg7";
+    sha256 = "sha256-9UsQtWOXB1yYofGS4rMIF+ISWBsJKd0DBOFfqOr1n5Y=";
   };
 
   nativeBuildInputs = [ itstool pkg-config (lib.getBin libxml2) ];
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
index 230bb2d4fe41..4fe5272bc078 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with lib;
 
 let
-  version = "3.4.5";
+  version = "3.4.6";
   variant = if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "sha256-3hqv0QCh4SB8hQ0YDpfdkauNoPXra+7FRfclzbFF0zM=";
+    sha256 = "0a26kcj3n1a2kw1f3fc6s1x3rw3f3bj2cq6rp7k0kc4ciwh7i9hj";
   };
 
   cmakeFlags = [
@@ -93,6 +93,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.wireshark.org/";
+    changelog = "https://www.wireshark.org/docs/relnotes/wireshark-${version}.html";
     description = "Powerful network protocol analyzer";
     license = licenses.gpl2Plus;
 
@@ -104,5 +105,6 @@ in stdenv.mkDerivation {
 
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ bjornfor fpletz ];
+    mainProgram = if withQt then "wireshark" else "tshark";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/soju/default.nix b/nixpkgs/pkgs/applications/networking/soju/default.nix
new file mode 100644
index 000000000000..5940b7cb19b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/soju/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildGoModule, fetchFromSourcehut, installShellFiles, scdoc }:
+
+buildGoModule rec {
+  pname = "soju";
+  version = "0.1.2";
+
+  src = fetchFromSourcehut {
+    owner = "~emersion";
+    repo = "soju";
+    rev = "v${version}";
+    sha256 = "sha256-dauhGfwSjjRt1vl2+OPhtcme/QaRNTs43heQVnI7oRU=";
+  };
+
+  vendorSha256 = "sha256-0JLbqqybLZ/cYyHAyNR4liAVJI2oIsHELJLWlQy0qjE=";
+
+  subPackages = [
+    "cmd/soju"
+    "cmd/sojuctl"
+    "contrib/znc-import.go"
+  ];
+
+  nativeBuildInputs = [
+    scdoc
+    installShellFiles
+  ];
+
+  postInstall = ''
+    scdoc < doc/soju.1.scd > doc/soju.1
+    installManPage doc/soju.1
+  '';
+
+  meta = with lib; {
+    description = "A user-friendly IRC bouncer";
+    homepage = "https://soju.im";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ malvo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
index 045120813f0d..fbf742c5e2a2 100644
--- a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
+++ b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
@@ -1,44 +1,37 @@
-{ lib, fetchFromGitHub, python27Packages, geoip }:
+{ lib, fetchFromGitHub, python3Packages, gettext, gdk-pixbuf
+, gobject-introspection, gtk3, wrapGAppsHook }:
 
 with lib;
 
-python27Packages.buildPythonApplication {
+python3Packages.buildPythonApplication rec {
   pname = "nicotine-plus";
-  version = "1.4.1";
+  version = "3.0.6";
 
   src = fetchFromGitHub {
     owner = "Nicotine-Plus";
     repo = "nicotine-plus";
-    rev = "4e057d64184885c63488d4213ade3233bd33e67b";
-    sha256 = "11j2qm67sszfqq730czsr2zmpgkghsb50556ax1vlpm7rw3gm33c";
+    rev = version;
+    sha256 = "sha256-NL6TXFRB7OeqNEfdANkEqh+MCOF1+ehR+6RO1XsIix8=";
   };
 
-  propagatedBuildInputs = with python27Packages; [
-    pygtk
-    miniupnpc
-    mutagen
-    notify
-    (GeoIP.override { inherit geoip; })
-  ];
-
-  # Insert real docs directory.
-  # os.getcwd() is not needed
-  postPatch = ''
-    substituteInPlace ./pynicotine/gtkgui/frame.py \
-      --replace "paths.append(os.getcwd())" "paths.append('"$out"/doc')"
-  '';
+  nativeBuildInputs = [ gettext wrapGAppsHook ];
+
+  propagatedBuildInputs = [ gtk3 gdk-pixbuf gobject-introspection ]
+    ++ (with python3Packages; [ pygobject3 ]);
 
-  postFixup = ''
-    mkdir -p $out/doc/
-    mv ./doc/NicotinePlusGuide $out/doc/
+  postInstall = ''
     mv $out/bin/nicotine $out/bin/nicotine-plus
+    substituteInPlace $out/share/applications/org.nicotine_plus.Nicotine.desktop \
+      --replace "Exec=nicotine" "Exec=$out/bin/nicotine-plus"
   '';
 
+  doCheck = false;
+
   meta = {
     description = "A graphical client for the SoulSeek peer-to-peer system";
     homepage = "https://www.nicotine-plus.org";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ klntsky ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ehmry klntsky ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
index 7bc5563d4709..0223c153f5c8 100644
--- a/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ssb-patchwork";
-  version = "3.18.0";
+  version = "3.18.1";
   name = "Patchwork-${version}";
 
   src = fetchurl {
     url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage";
-    sha256 = "1sb9q1qj5mj4cf8d9dsc498mg8a1ri2y0p9qbh44i8ykby8jkgjc";
+    sha256 = "F8n6LLbgkg3z55lSY60T+pn2lra8aPt6Ztepw1gf2rI=";
   };
 
   binary = appimageTools.wrapType2 {
@@ -47,7 +47,7 @@ in
       '';
       homepage = "https://www.scuttlebutt.nz/";
       license = licenses.agpl3;
-      maintainers = with maintainers; [ asymmetric ninjatrappeur ];
+      maintainers = with maintainers; [ asymmetric ninjatrappeur cyplo ];
       platforms = [ "x86_64-linux" ];
     };
   }
diff --git a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
index 300214e58b78..b7e9f220f009 100644
--- a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.4.10";
+  version = "2.4.11";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256:0dvxjkni66g82j9wr6yy07sn7d7yr7bbc0py89pxybvsbid88l65";
+    sha256 = "sha256-ioOrkhVeHHqIjoEXcYo8ATJW+2+nZOehf3XbAJUEXpY=";
   };
 
   nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
index 83cc029c089e..0a74d19dfdb0 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rclone";
-  version = "1.55.0";
+  version = "1.55.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "01pvcns3n735s848wc11q40pkkv646gn3cxkma866k44a9c2wirl";
+    sha256 = "1fyi12qz2igcf9rqsp9gmcgfnmgy4g04s2b03b95ml6klbf73cns";
   };
 
-  vendorSha256 = "05f9nx5sa35q2szfkmnkhvqli8jlqja8ghiwyxk7cvgjl7fgd6zk";
+  vendorSha256 = "199z3j62xw9h8yviyv4jfls29y2ri9511hcyp5ix8ahgk6ypz8vw";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
index 015033d6ca56..158999f86fee 100644
--- a/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
 , gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
-, gnome3, buildPythonApplication, dateutil, pyinotify, pygobject3
+, gnome, buildPythonApplication, dateutil, pyinotify, pygobject3
 , bcrypt, gobject-introspection, gsettings-desktop-schemas
 , pango, gdk-pixbuf, atk }:
 
@@ -24,7 +24,7 @@ buildPythonApplication rec {
 
   buildInputs = [
     gtk3 librsvg libappindicator-gtk3
-    libnotify gnome3.adwaita-icon-theme
+    libnotify gnome.adwaita-icon-theme
     # Schemas with proxy configuration
     gsettings-desktop-schemas
   ];
diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
index 2fa4f0b93c8e..4b983faaf0b3 100644
--- a/nixpkgs/pkgs/applications/networking/syncthing/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -4,16 +4,16 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.15.1";
+      version = "1.17.0";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "sha256-d7b1hqW0ZWg74DyW1ZYMT7sIR7H89Ph38XE2Mhh7ySg=";
+        sha256 = "1bm2xj5ypn63wxxpdix9b4hbam3s2z08jx2rk5adzd5yg499sxx0";
       };
 
-      vendorSha256 = "sha256-00DdGJNCZ94Wj6yvVXJYNJZEiGxYbqTkX6wwon0O1tc=";
+      vendorSha256 = "1jvd7d095wvf94y2di48pvqv9hiw3bj859q5yx9v6lglkwdgz6nw";
 
       doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/taler/default.nix b/nixpkgs/pkgs/applications/networking/taler/default.nix
new file mode 100644
index 000000000000..06e389a69c80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/taler/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchurl, curl, gnunet, jansson, libgcrypt, libmicrohttpd
+, qrencode, libsodium, libtool, pkg-config, postgresql, sqlite }:
+
+let
+  gnunet' = gnunet.override { postgresqlSupport = true; };
+
+  mkTaler = { pname, version, sha256 }:
+    extraAttrs:
+    stdenv.mkDerivation (extraAttrs // {
+      inherit pname version;
+      src = fetchurl {
+        url = "mirror://gnu/taler/${pname}-${version}.tar.gz";
+        inherit sha256;
+      };
+      enableParallelBuilding = true;
+      meta = with lib; {
+        description = "Anonymous, taxable payment system.";
+        homepage = "https://taler.net/";
+        license = licenses.agpl3Plus;
+        maintainers = with maintainers; [ ehmry ];
+        platforms = platforms.gnu ++ platforms.linux;
+      };
+    });
+
+in rec {
+
+  taler-exchange = mkTaler {
+    pname = "taler-exchange";
+    version = "0.8.1";
+    sha256 = "sha256-MPt3n1JXd0Y89b1qCuF6YxptSr7henfYp97JTq1Z+x4=";
+  } {
+    buildInputs = [
+      curl
+      jansson
+      libgcrypt
+      libmicrohttpd
+      libsodium
+      libtool
+      postgresql
+      # sqlite
+    ];
+    propagatedBuildInputs = [ gnunet' ];
+    patches = [ ./exchange-fix-6665.patch ];
+  };
+
+  taler-merchant = mkTaler {
+    pname = "taler-merchant";
+    version = "0.8.0";
+    sha256 = "sha256-scrFLXeoQirGqhc+bSQKRl84PfUvjrp1uxF7pfOIB9Q=";
+  } {
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = taler-exchange.buildInputs ++ [ qrencode taler-exchange ];
+    propagatedBuildInputs = [ gnunet' ];
+    PKG_CONFIG = "${pkg-config}/bin/pkg-config";
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch b/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch
new file mode 100644
index 000000000000..e648123d2697
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch
@@ -0,0 +1,48 @@
+commit 9911b327ac299ec7eeae81b98cb520f4153071f2
+Author: Christian Grothoff <christian@grothoff.org>
+Date:   Wed Dec 9 07:25:26 2020 +0100
+
+    fix #6665
+
+diff --git a/src/testing/testing_api_cmd_rewind.c b/src/testing/testing_api_cmd_rewind.c
+index e1b17fa9..979607cd 100644
+--- a/src/testing/testing_api_cmd_rewind.c
++++ b/src/testing/testing_api_cmd_rewind.c
+@@ -24,7 +24,6 @@
+  */
+ #include "platform.h"
+ #include "taler_exchange_service.h"
+-#include "taler/taler_testing_lib.h"
+ #include "taler_testing_lib.h"
+
+
+diff --git a/src/testing/testing_api_cmd_twister_exec_client.c b/src/testing/testing_api_cmd_twister_exec_client.c
+index 2cb92a8f..b3903f29 100644
+--- a/src/testing/testing_api_cmd_twister_exec_client.c
++++ b/src/testing/testing_api_cmd_twister_exec_client.c
+@@ -26,7 +26,7 @@
+  */
+
+ #include "platform.h"
+-#include <taler/taler_testing_lib.h>
++#include "taler_testing_lib.h"
+ #include "taler_twister_testing_lib.h"
+
+
+diff --git a/src/testing/testing_api_trait_uuid.c b/src/testing/testing_api_trait_uuid.c
+index c9b73a5b..4d5003ec 100644
+--- a/src/testing/testing_api_trait_uuid.c
++++ b/src/testing/testing_api_trait_uuid.c
+@@ -22,9 +22,9 @@
+  * @author Jonathan Buchanan
+  */
+ #include "platform.h"
+-#include <taler/taler_signatures.h>
+-#include <taler/taler_exchange_service.h>
+-#include <taler/taler_testing_lib.h>
++#include "taler_signatures.h"
++#include "taler_exchange_service.h"
++#include "taler_testing_lib.h"
+
+
+ #define TALER_TESTING_TRAIT_UUID "uuid"
diff --git a/nixpkgs/pkgs/applications/networking/twtxt/default.nix b/nixpkgs/pkgs/applications/networking/twtxt/default.nix
index ff6e61c614f9..27420f8bd339 100644
--- a/nixpkgs/pkgs/applications/networking/twtxt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/twtxt/default.nix
@@ -1,23 +1,31 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildPythonApplication, aiohttp, python-dateutil, humanize, click, pytestCheckHook, tox }:
 
-buildGoModule rec {
+buildPythonApplication rec {
   pname = "twtxt";
-  version = "0.1.0";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
-    owner = "jointwt";
+    owner = "buckket";
     repo = pname;
-    rev = version;
-    sha256 = "15jhfnhpk34nmad04f7xz1w041dba8cn17hq46p9n5sarjgkjiiw";
+    rev = "v${version}";
+    sha256 = "sha256-AdM95G2Vz3UbVPI7fs8/D78BMxscbTGrCpIyyHzSmho=";
   };
 
-  vendorSha256 = "1lnf8wd2rv9d292rp8jndfdg0rjs6gfw0yg49l9spw4yzifnd7f7";
+  # Relax some dependencies
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'aiohttp>=2.2.5,<3' 'aiohttp' \
+      --replace 'click>=6.7,<7' 'click' \
+      --replace 'humanize>=0.5.1,<1' 'humanize'
+  '';
 
-  subPackages = [ "cmd/twt" "cmd/twtd" ];
+  propagatedBuildInputs = [ aiohttp python-dateutil humanize click ];
+
+  checkInputs = [ pytestCheckHook tox ];
 
   meta = with lib; {
-    description = "Self-hosted, Twitter-like decentralised microblogging platform";
-    homepage = "https://github.com/jointwt/twtxt";
+    description = "Decentralised, minimalist microblogging service for hackers";
+    homepage = "https://github.com/buckket/twtxt";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/vnstat/default.nix b/nixpkgs/pkgs/applications/networking/vnstat/default.nix
index 60b24a6619c0..f85f00bf0ae0 100644
--- a/nixpkgs/pkgs/applications/networking/vnstat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/vnstat/default.nix
@@ -1,12 +1,20 @@
-{ lib, stdenv, fetchurl, pkg-config, gd, ncurses, sqlite, check }:
+{ lib, stdenv
+, fetchFromGitHub
+, pkg-config
+, gd, ncurses
+, sqlite
+, check
+}:
 
 stdenv.mkDerivation rec {
   pname = "vnstat";
-  version = "2.6";
+  version = "2.7";
 
-  src = fetchurl {
-    sha256 = "1xvzkxkq1sq33r2s4f1967f4gnca4xw411sbapdkx541f856w9w9";
-    url = "https://humdi.net/${pname}/${pname}-${version}.tar.gz";
+  src = fetchFromGitHub {
+    owner = "vergoh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "105krrc7hl5mbj89i1k3w8yzqrg4f0q96lmyv4rc7fhhds5zam2h";
   };
 
   postPatch = ''
@@ -32,5 +40,6 @@ stdenv.mkDerivation rec {
     homepage = "https://humdi.net/vnstat/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ evils ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
index 3de0d450de5e..a5edbac135f9 100644
--- a/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     description = "Know the forecast of the next hours & days";
     homepage = "https://gitlab.com/bitseater/meteo";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/wg-bond/default.nix b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
index bef44d428627..0c8c629208af 100644
--- a/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
+++ b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256:04k0maxy39k7qzcsqsv1byddsmjszmnyjffrf22nzbvml83p3l0y";
   };
 
-  cargoSha256 = "1v2az0v6l8mqryvq3898hm7bpvqdd2c4kpv6ck7932jfjyna512k";
+  cargoSha256 = "1nlzhkhk1y0jhj6n3wn4dm783ldsxn7dk0d2xjx6ylczf9z3gp12";
 
   nativeBuildInputs = [ makeWrapper ];
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/office/abiword/default.nix b/nixpkgs/pkgs/applications/office/abiword/default.nix
index 4e83f36ea527..e32502749dc3 100644
--- a/nixpkgs/pkgs/applications/office/abiword/default.nix
+++ b/nixpkgs/pkgs/applications/office/abiword/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, gtk3, fribidi
 , libpng, popt, libgsf, enchant, wv, librsvg, bzip2, libjpeg, perl
-, boost, libxslt, goffice, wrapGAppsHook, gnome3
+, boost, libxslt, goffice, wrapGAppsHook, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3 librsvg bzip2 fribidi libpng popt
-    libgsf enchant wv libjpeg perl boost libxslt goffice gnome3.adwaita-icon-theme
+    libgsf enchant wv libjpeg perl boost libxslt goffice gnome.adwaita-icon-theme
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix b/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
index 4e8bcaee019e..351609d8c058 100644
--- a/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
+++ b/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
@@ -1,39 +1,50 @@
-{ lib, mkDerivation, fetchFromGitHub, installShellFiles,
-  qmake, qtbase, poppler, qtmultimedia }:
+{ lib, stdenv, fetchFromGitHub, installShellFiles,
+  qmake, qtbase, qtmultimedia, wrapQtAppsHook,
+  poppler, mupdf, freetype, jbig2dec, openjpeg, gumbo,
+  renderer ? "mupdf" }:
 
-mkDerivation rec {
+let
+  renderers = {
+    mupdf.buildInputs = [ mupdf freetype jbig2dec openjpeg gumbo ];
+    poppler.buildInputs = [ poppler ];
+  };
+
+in
+
+stdenv.mkDerivation rec {
   pname = "beamerpresenter";
-  version = "0.1.3";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "stiglers-eponym";
     repo = "BeamerPresenter";
     rev = "v${version}";
-    sha256 = "1nbcqrfdjcsc6czqk1v163whka4x1w883b1298aws8yi7vac4f1i";
+    sha256 = "10i5nc5b5syaqvsixam4lmfiz3b5cphbjfgfqavi5jilq769792a";
   };
 
-  nativeBuildInputs = [ qmake installShellFiles ];
-  buildInputs = [ qtbase qtmultimedia poppler ];
+  nativeBuildInputs = [ qmake installShellFiles wrapQtAppsHook ];
+  buildInputs = [ qtbase qtmultimedia ] ++ renderers.${renderer}.buildInputs;
+
+  qmakeFlags = [ "RENDERER=${renderer}" ];
 
   postPatch = ''
-    # Fix location of poppler-*.h
     shopt -s globstar
-    for f in **/*.{h,cpp}; do
-      substituteInPlace $f --replace '#include <poppler-' '#include <poppler/qt5/poppler-'
+    for f in **/*.{pro,conf,h,cpp}; do
+      substituteInPlace "$f" \
+        --replace "/usr/" "$out/" \
+        --replace "/etc/" "$out/etc/" \
+        --replace '$${GUI_CONFIG_PATH}' "$out/etc/xdg/beamerpresenter/gui.json"
     done
   '';
 
-  installPhase = ''
-    install -m755 beamerpresenter -Dt $out/bin/
-    install -m644 src/icons/beamerpresenter.svg -Dt $out/share/icons/hicolor/scalable/apps/
-    install -m644 share/applications/beamerpresenter.desktop -Dt $out/share/applications/
-    installManPage man/*.{1,5}
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    wrapQtApp "$out"/bin/beamerpresenter.app/Contents/MacOS/beamerpresenter
   '';
 
   meta = with lib; {
-    description = "Simple dual screen pdf presentation software";
+    description = "Modular multi screen pdf presentation software respecting your window manager";
     homepage = "https://github.com/stiglers-eponym/BeamerPresenter";
-    license = licenses.gpl3Plus;
+    license = licenses.agpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ pacien ];
   };
diff --git a/nixpkgs/pkgs/applications/office/elementary-planner/default.nix b/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
index 8633f1daecdc..88a063158bd1 100644
--- a/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
+++ b/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
@@ -15,6 +15,7 @@
 , glib-networking
 , sqlite
 , libsoup
+, libgdata
 , gtk3
 , pantheon /* granite, icons, maintainers */
 , webkitgtk
@@ -56,6 +57,7 @@ stdenv.mkDerivation rec {
     pantheon.granite
     sqlite
     webkitgtk
+    libgdata # required by some dependency transitively
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/office/espanso/default.nix b/nixpkgs/pkgs/applications/office/espanso/default.nix
index d20e19c68592..5cbfa5b1b2af 100644
--- a/nixpkgs/pkgs/applications/office/espanso/default.nix
+++ b/nixpkgs/pkgs/applications/office/espanso/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1q47r43midkq9574gl8gdv3ylvrnbhdc39rrw4y4yk6jbdf5wwkm";
   };
 
-  cargoSha256 = "0mxksifjagx25qkyg6ym0zlhal8014j8iim54cd44ndbkkiqlyxc";
+  cargoSha256 = "0ba5skn5s6qh0blf6bvivzvqc2l8v488l9n3x98pmf6nygrikfdb";
 
   nativeBuildInputs = [
     extra-cmake-modules
diff --git a/nixpkgs/pkgs/applications/office/gnucash/default.nix b/nixpkgs/pkgs/applications/office/gnucash/default.nix
index 959aa30c0371..d2251da70073 100644
--- a/nixpkgs/pkgs/applications/office/gnucash/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnucash/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, pkg-config, makeWrapper, cmake, gtest
+{ fetchurl, fetchpatch, lib, stdenv, pkg-config, makeWrapper, cmake, gtest
 , boost, icu, libxml2, libxslt, gettext, swig, isocodes, gtk3, glibcLocales
 , webkitgtk, dconf, hicolor-icon-theme, libofx, aqbanking, gwenhywfar, libdbi
 , libdbiDrivers, guile, perl, perlPackages
@@ -25,13 +25,21 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnucash";
-  version = "4.4";
+  version = "4.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnucash/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-2R4NEmtGHXHeG8GyDZzxQnBDU97AfT5lmdE4QidZ5no=";
+    sha256 = "sha256-vB9IqEU0iKLp9rg7aGE6pVyuvk0pg0YL2sfghLRs/9w=";
   };
 
+  patches = [
+    # Fix build with GLib 2.68.
+    (fetchpatch {
+      url = "https://github.com/Gnucash/gnucash/commit/bbb4113a5a996dcd7bb3494e0be900b275b49a4f.patch";
+      sha256 = "Pnvwoq5zutFw7ByduEEANiLM2J50WiXpm2aZ8B2MDMQ=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config makeWrapper cmake gtest ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
index 263a555ab4c1..aacc2a2a579c 100644
--- a/nixpkgs/pkgs/applications/office/gnumeric/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, intltool, perlPackages
-, goffice, gnome3, wrapGAppsHook, gtk3, bison, python3Packages
+, goffice, gnome, wrapGAppsHook, gtk3, bison, python3Packages
 , itstool
 }:
 
@@ -20,15 +20,16 @@ in stdenv.mkDerivation rec {
 
   # ToDo: optional libgda, introspection?
   buildInputs = [
-    goffice gtk3 gnome3.adwaita-icon-theme
+    goffice gtk3 gnome.adwaita-icon-theme
     python pygobject3
   ] ++ (with perlPackages; [ perl XMLParser ]);
 
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/office/grisbi/default.nix b/nixpkgs/pkgs/applications/office/grisbi/default.nix
index 9d085b6c8830..1d2d6f0d851d 100644
--- a/nixpkgs/pkgs/applications/office/grisbi/default.nix
+++ b/nixpkgs/pkgs/applications/office/grisbi/default.nix
@@ -7,7 +7,7 @@
 , intltool
 , wrapGAppsHook
 , libsoup
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     libofx
     intltool
     libsoup
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/office/gtg/default.nix b/nixpkgs/pkgs/applications/office/gtg/default.nix
index 3b7052dff7f3..4b9237d23ce7 100644
--- a/nixpkgs/pkgs/applications/office/gtg/default.nix
+++ b/nixpkgs/pkgs/applications/office/gtg/default.nix
@@ -11,7 +11,7 @@
 , pango
 , gdk-pixbuf
 , gobject-introspection
-, xvfb_run
+, xvfb-run
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -53,7 +53,7 @@ python3Packages.buildPythonApplication rec {
   checkInputs = with python3Packages; [
     nose
     mock
-    xvfb_run
+    xvfb-run
   ];
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/applications/office/homebank/default.nix b/nixpkgs/pkgs/applications/office/homebank/default.nix
index a586cea47ab3..c77c52774be9 100644
--- a/nixpkgs/pkgs/applications/office/homebank/default.nix
+++ b/nixpkgs/pkgs/applications/office/homebank/default.nix
@@ -1,16 +1,16 @@
 { fetchurl, lib, stdenv, gtk, pkg-config, libofx, intltool, wrapGAppsHook
-, libsoup, gnome3 }:
+, libsoup, gnome }:
 
 stdenv.mkDerivation rec {
-  name = "homebank-5.5.1";
+  name = "homebank-5.5.2";
   src = fetchurl {
     url = "http://homebank.free.fr/public/${name}.tar.gz";
-    sha256 = "sha256-m7OeqtPExo0ry+IeL2xKUnTjo/OFr7Ky/3OuX9mY2gg=";
+    sha256 = "sha256-mJ7zeOTJ+CNLYruT1qSxS9TJjciJUZg426H0TxLFHtI=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
   buildInputs = [ gtk libofx intltool libsoup
-    gnome3.adwaita-icon-theme ];
+    gnome.adwaita-icon-theme ];
 
   meta = with lib; {
     description = "Free, easy, personal accounting for everyone";
diff --git a/nixpkgs/pkgs/applications/office/jabref/default.nix b/nixpkgs/pkgs/applications/office/jabref/default.nix
index 4eb39f4d1f82..b87e74c256f6 100644
--- a/nixpkgs/pkgs/applications/office/jabref/default.nix
+++ b/nixpkgs/pkgs/applications/office/jabref/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, wrapGAppsHook, gtk3, gsettings-desktop-schemas
-, zlib , libX11, libXext, libXi, libXrender, libXtst, libGL, alsaLib, cairo, freetype, pango, gdk-pixbuf, glib }:
+, zlib , libX11, libXext, libXi, libXrender, libXtst, libGL, alsa-lib, cairo, freetype, pango, gdk-pixbuf, glib }:
 
 stdenv.mkDerivation rec {
   version = "5.1";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
   buildInputs = [ gsettings-desktop-schemas ] ++ systemLibs;
 
-  systemLibs = [ gtk3 zlib libX11 libXext libXi libXrender libXtst libGL alsaLib cairo freetype pango gdk-pixbuf glib ];
+  systemLibs = [ gtk3 zlib libX11 libXext libXi libXrender libXtst libGL alsa-lib cairo freetype pango gdk-pixbuf glib ];
   systemLibPaths = lib.makeLibraryPath systemLibs;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/office/kmymoney/default.nix b/nixpkgs/pkgs/applications/office/kmymoney/default.nix
index 1d8a214c8183..95da79cca4f2 100644
--- a/nixpkgs/pkgs/applications/office/kmymoney/default.nix
+++ b/nixpkgs/pkgs/applications/office/kmymoney/default.nix
@@ -8,7 +8,7 @@
 , sqlcipher
 
 # Needed for running tests:
-, qtbase, xvfb_run
+, qtbase, xvfb-run
 
 , python2, python3Packages
 }:
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform;
-  installCheckInputs = [ xvfb_run ];
+  installCheckInputs = [ xvfb-run ];
   installCheckPhase =
     lib.optionalString doInstallCheck ''
       xvfb-run -s '-screen 0 1024x768x24' make test \
diff --git a/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix b/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix
index 90e5995669e8..74fcf1af8f9f 100644
--- a/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix
+++ b/nixpkgs/pkgs/applications/office/ledger-autosync/default.nix
@@ -2,16 +2,24 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ledger-autosync";
-  version = "1.0.2";
+  version = "unstable-2021-04-01";
 
-# no tests included in PyPI tarball
+  # no tests included in PyPI tarball
   src = fetchFromGitHub {
     owner = "egh";
     repo = "ledger-autosync";
-    rev = "v${version}";
-    sha256 = "0sh32jcf8iznnbg1kqlrswbzfmn4h3gkw32q20xwxzz4935pz1qk";
+    rev = "0b674c57c833f75b1a36d8caf78e1567c8e2180c";
+    sha256 = "0q404gr85caib5hg83cnmgx4684l72w9slxyxrwsiwhlf7gm443q";
   };
 
+  patches = [
+    # ledger-autosync specifies an URL for its ofxparse
+    # dependency. This patch removes the URL to only use the
+    # `ofxparse` name. This works because nixpkgs' version of ofxparse
+    # is more recent than the latest release.
+    ./fix-ofxparse-dependency.patch
+  ];
+
   propagatedBuildInputs = with python3Packages; [
     asn1crypto
     beautifulsoup4
diff --git a/nixpkgs/pkgs/applications/office/ledger-autosync/fix-ofxparse-dependency.patch b/nixpkgs/pkgs/applications/office/ledger-autosync/fix-ofxparse-dependency.patch
new file mode 100644
index 000000000000..cb12ba9f3351
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ledger-autosync/fix-ofxparse-dependency.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index eda6db5..ed6b90b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -38,7 +38,7 @@ setup(
+     install_requires=[
+         'setuptools>=26',
+         'ofxclient',
+-        "ofxparse @ https://github.com/jseutter/ofxparse/tarball/3236cfd96434feb6bc79a8b66f3400f18e2ad3c4"
++        'ofxparse'
+     ],
+ 
+     extras_require={
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
index c9b1099f8b96..1c5327ebc6ce 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
@@ -12,7 +12,7 @@
 , libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
 , librevenge, libe-book, libmwaw, glm, gst_all_1
 , gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
-, gnome3, glib, ncurses, epoxy, gpgme
+, gnome, glib, ncurses, epoxy, gpgme
 , langs ? [ "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "zh-CN" ]
 , withHelp ? true
 , kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
@@ -399,7 +399,7 @@ in (mkDrv rec {
       mdds bluez5 libcmis libwps libabw libzmf
       libxshmfence libatomic_ops graphite2 harfbuzz gpgme util-linux
       librevenge libe-book libmwaw glm ncurses epoxy
-      libodfgen CoinMP librdf_rasqal gnome3.adwaita-icon-theme gettext
+      libodfgen CoinMP librdf_rasqal gnome.adwaita-icon-theme gettext
     ]
     ++ (with gst_all_1; [
       gstreamer
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
index 3b8bba9ac19e..f6243476f1b0 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -637,11 +637,11 @@
     md5name = "a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
   }
   {
-    name = "neon-0.31.1.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/neon-0.31.1.tar.gz";
-    sha256 = "c9dfcee723050df37ce18ba449d7707b78e7ab8230f3a4c59d9112e17dc2718d";
+    name = "neon-0.31.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/neon-0.31.2.tar.gz";
+    sha256 = "cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678";
     md5 = "";
-    md5name = "c9dfcee723050df37ce18ba449d7707b78e7ab8230f3a4c59d9112e17dc2718d-neon-0.31.1.tar.gz";
+    md5name = "cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678-neon-0.31.2.tar.gz";
   }
   {
     name = "nss-3.55-with-nspr-4.27.tar.gz";
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index d3fbc261c366..3870c478c803 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -8,7 +8,7 @@ rec {
 
   major = "7";
   minor = "1";
-  patch = "2";
+  patch = "3";
   tweak = "2";
 
   subdir = "${major}.${minor}.${patch}";
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1y19p9701msf6jjzp9d5ighvmyjzj68qzhm2bk3l5p16ys8qk9bb";
+    sha256 = "1gr9c8kv7nc9kaag1sw9r36843pfba1my80afx7p0lxj0k8pzbrm";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "1j5251lbc35d521d92w52lgps0v5pg8mhr8y3r6x2nl9p0gvw957";
+    sha256 = "09xkr6jmnwq55savw9xjsy8l8zcyflnsg4nfwhknvm3ls8sqj4w6";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "1bsrkmzhhpyrmi7akmdfvz4zb543fc093az9965k14rp8l6rhnvf";
+    sha256 = "0dc981vmxfdwlyfgq84axkr99d8chm1ypknj39v0cmaqn56lpwg0";
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix
index d956a3b08a61..19dee4e1f136 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-still/download.nix
@@ -721,25 +721,25 @@
     md5name = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca-libpng-1.6.37.tar.xz";
   }
   {
-    name = "poppler-0.82.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/poppler-0.82.0.tar.xz";
-    sha256 = "234f8e573ea57fb6a008e7c1e56bfae1af5d1adf0e65f47555e1ae103874e4df";
+    name = "poppler-21.01.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/poppler-21.01.0.tar.xz";
+    sha256 = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3";
     md5 = "";
-    md5name = "234f8e573ea57fb6a008e7c1e56bfae1af5d1adf0e65f47555e1ae103874e4df-poppler-0.82.0.tar.xz";
+    md5name = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3-poppler-21.01.0.tar.xz";
   }
   {
-    name = "postgresql-9.2.24.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/postgresql-9.2.24.tar.bz2";
-    sha256 = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126";
+    name = "postgresql-13.1.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/postgresql-13.1.tar.bz2";
+    sha256 = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f";
     md5 = "";
-    md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2";
+    md5name = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
   }
   {
-    name = "Python-3.7.7.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/Python-3.7.7.tar.xz";
-    sha256 = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136";
+    name = "Python-3.7.10.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/Python-3.7.10.tar.xz";
+    sha256 = "f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b";
     md5 = "";
-    md5name = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136-Python-3.7.7.tar.xz";
+    md5name = "f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b-Python-3.7.10.tar.xz";
   }
   {
     name = "QR-Code-generator-1.4.0.tar.gz";
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
index c9b182647114..d42f31bff3f9 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-still/primary.nix
@@ -8,7 +8,7 @@ rec {
 
   major = "7";
   minor = "0";
-  patch = "4";
+  patch = "6";
   tweak = "2";
 
   subdir = "${major}.${minor}.${patch}";
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1g9akxvm7fh6lnprnc3g184qdy8gbinhb4rb60gjpw82ip6d5acz";
+    sha256 = "0bk1dc6g8z5akrprfxxy3dm0vdmihaaxnsprxpqbqmqrqzkzg8cn";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "1v3kpk56fm783d5wihx41jqidpclizkfxrg4n0pq95d79hdiljsl";
+    sha256 = "04f76r311hppil656ajab52x0xwqszazlgssyi5w97wak2zkmqgj";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "1np9f799ww12kggl5az6piv5fi9rf737il5a5r47r4wl2li56qqb";
+    sha256 = "1xmvlj9nrmg8448k4zfaxn5qqxa4amnvvhs1l1smi2bz3xh4xn2d";
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/mendeley/default.nix b/nixpkgs/pkgs/applications/office/mendeley/default.nix
index b38b7e0e585c..3b9963d8dbc7 100644
--- a/nixpkgs/pkgs/applications/office/mendeley/default.nix
+++ b/nixpkgs/pkgs/applications/office/mendeley/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, lib, stdenv, mkDerivation, dpkg, which
 , makeWrapper
-, alsaLib
+, alsa-lib
 , desktop-file-utils
 , dbus
 , libcap
@@ -59,7 +59,7 @@ let
     qtquickcontrols
     qtwebkit
     qtwebengine
-    alsaLib
+    alsa-lib
     dbus
     freetype
     fontconfig
diff --git a/nixpkgs/pkgs/applications/office/mytetra/default.nix b/nixpkgs/pkgs/applications/office/mytetra/default.nix
index 3e2383fb3565..cb90af5244c6 100644
--- a/nixpkgs/pkgs/applications/office/mytetra/default.nix
+++ b/nixpkgs/pkgs/applications/office/mytetra/default.nix
@@ -33,7 +33,7 @@ in mkDerivation {
     description = "Smart manager for information collecting";
     homepage = "https://webhamster.ru/site/page/index/articles/projectcode/138";
     license = licenses.gpl3;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/notes-up/default.nix b/nixpkgs/pkgs/applications/office/notes-up/default.nix
index 7ab5bc838ec0..8271b2974ce4 100644
--- a/nixpkgs/pkgs/applications/office/notes-up/default.nix
+++ b/nixpkgs/pkgs/applications/office/notes-up/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
     + lib.optionalString withPantheon " - built with Contractor support";
     homepage = "https://github.com/Philip-Scott/Notes-up";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ davidak worldofpeace ];
+    maintainers = with maintainers; [ davidak ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix b/nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix
index 987c2c3cb281..75e6924db9c5 100644
--- a/nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix
+++ b/nixpkgs/pkgs/applications/office/onlyoffice-bin/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 # Alphabetic ordering below
-, alsaLib
+, alsa-lib
 , at-spi2-atk
 , atk
 , autoPatchelfHook
@@ -72,11 +72,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "onlyoffice-desktopeditors";
-  version = "6.1.0";
-  minor = "90";
+  version = "6.2.0";
+  minor = null;
   src = fetchurl {
-    url = "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v${version}/onlyoffice-desktopeditors_${version}-${minor}_amd64.deb";
-    sha256 = "sha256-TUaECChM3GxtB54/zNIKjRIocnAxpBVK7XsX3z7aq8o=";
+    url = "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v${version}/onlyoffice-desktopeditors_amd64.deb";
+    sha256 = "sha256-nKmWxaVVul/rGDIh3u9zCpKu7U0nmrntFFf96xQyzdg=";
   };
 
   nativeBuildInputs = [
@@ -87,7 +87,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     atk
     cairo
@@ -153,7 +153,7 @@ in stdenv.mkDerivation rec {
     substituteInPlace $out/share/applications/onlyoffice-desktopeditors.desktop \
       --replace "/usr/bin/onlyoffice-desktopeditor" "$out/bin/DesktopEditor"
 
-    runHook preInstall
+    runHook postInstall
   '';
 
   preFixup = ''
@@ -163,6 +163,8 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents";
     homepage = "https://www.onlyoffice.com/";
+    downloadPage = "https://github.com/ONLYOFFICE/DesktopEditors/releases";
+    changelog = "https://github.com/ONLYOFFICE/DesktopEditors/blob/master/CHANGELOG.md";
     platforms = [ "x86_64-linux" ];
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ nh2 gtrunsec ];
diff --git a/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix b/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix
index 847287c8c856..8f1278d99266 100644
--- a/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix
+++ b/nixpkgs/pkgs/applications/office/paperwork/paperwork-gtk.nix
@@ -2,9 +2,9 @@
 , python3Packages
 , gtk3
 , cairo
-, gnome3
+, gnome
 , librsvg
-, xvfb_run
+, xvfb-run
 , dbus
 , libnotify
 , wrapGAppsHook
@@ -12,10 +12,25 @@
 , which
 , gettext
 , gobject-introspection
+, gdk-pixbuf
+, texlive
+, imagemagick
+, perlPackages
 }:
 
+let
+  documentation_deps = [
+    (texlive.combine {
+      inherit (texlive) scheme-small wrapfig was;
+    })
+    xvfb-run
+    imagemagick
+    perlPackages.Po4a
+  ];
+in
+
 python3Packages.buildPythonApplication rec {
-  inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
+  inherit (import ./src.nix { inherit fetchFromGitLab; }) version src sample_documents;
   pname = "paperwork";
 
   sourceRoot = "source/paperwork-gtk";
@@ -51,19 +66,27 @@ python3Packages.buildPythonApplication rec {
     for i in $site/data/paperwork_*.png; do
       ln -s $i $site/icon/out;
     done
+
+    export XDG_DATA_DIRS=$XDG_DATA_DIRS:${gnome.adwaita-icon-theme}/share
+    # build the user manual
+    PATH=$out/bin:$PATH PAPERWORK_TEST_DOCUMENTS=${sample_documents} make data
+    for i in src/paperwork_gtk/model/help/out/*.pdf; do
+      install -Dt $site/model/help/out $i
+    done
   '';
 
-  checkInputs = [ xvfb_run dbus.daemon ];
+  checkInputs = [ dbus.daemon ];
 
   nativeBuildInputs = [
     wrapGAppsHook
     gobject-introspection
     (lib.getBin gettext)
     which
-  ];
+    gdk-pixbuf # for the setup hook
+  ] ++ documentation_deps;
 
   buildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     libnotify
     librsvg
     gtk3
@@ -76,13 +99,20 @@ python3Packages.buildPythonApplication rec {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  # A few parts of chkdeps need to have a display and a dbus session, so we not
-  # only need to run a virtual X server + dbus but also have a large enough
-  # resolution, because the Cairo test tries to draw a 200x200 window.
-  preCheck = ''
+  checkPhase = ''
+    runHook preCheck
+
+    # A few parts of chkdeps need to have a display and a dbus session, so we not
+    # only need to run a virtual X server + dbus but also have a large enough
+    # resolution, because the Cairo test tries to draw a 200x200 window.
     xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
       $out/bin/paperwork-gtk chkdeps
+
+    # content of make test, without the dep on make install
+    python -m unittest discover --verbose -s tests
+
+    runHook postCheck
   '';
 
   propagatedBuildInputs = with python3Packages; [
@@ -96,6 +126,8 @@ python3Packages.buildPythonApplication rec {
     setuptools
   ];
 
+  disallowedRequisites = documentation_deps;
+
   meta = {
     description = "A personal document manager for scanned documents";
     homepage = "https://openpaper.work/";
diff --git a/nixpkgs/pkgs/applications/office/paperwork/src.nix b/nixpkgs/pkgs/applications/office/paperwork/src.nix
index 45c05cc4962e..72293ef3903f 100644
--- a/nixpkgs/pkgs/applications/office/paperwork/src.nix
+++ b/nixpkgs/pkgs/applications/office/paperwork/src.nix
@@ -1,12 +1,22 @@
 {fetchFromGitLab}:
 rec {
-  version = "2.0.2";
+  version = "2.0.3";
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     repo = "paperwork";
     group = "World";
     owner = "OpenPaperwork";
     rev = version;
-    sha256 = "1di7nnl8ywyiwfpl5m1kvip1m0hvijbmqmkdpviwqw7ajizrr1ly";
+    sha256 = "02c2ysca75j59v87n1axqfncvs167kmdr40m0f05asdh2akwrbi9";
   };
+  sample_documents = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    repo = "paperwork-test-documents";
+    group = "World";
+    owner = "OpenPaperwork";
+    # https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/blob/master/paperwork-gtk/src/paperwork_gtk/model/help/screenshot.sh see TEST_DOCS_TAG
+    rev = "1.0";
+    sha256 = "155nhw2jmlgfi6c3wm241vrr3yma6lw85k9lxn844z96kyi7wbpr";
+  };
+
 }
diff --git a/nixpkgs/pkgs/applications/office/qownnotes/default.nix b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
index 451e4b92185f..71717c010ddc 100644
--- a/nixpkgs/pkgs/applications/office/qownnotes/default.nix
+++ b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
@@ -1,27 +1,28 @@
-{ mkDerivation, lib, fetchurl, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwayland, qtwebsockets, stdenv, qtx11extras }:
+{ mkDerivation, lib, stdenv, fetchurl, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwebsockets, qtx11extras
+, qtwayland }:
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "21.4.0";
+  version = "21.5.2";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
-    # Can grab official version like so:
-    # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-21.4.0.tar.xz.sha256
-    sha256 = "bda454031a79a768b472677036ada7501ea430482277f1694757066922428eec";
+    # Fetch the checksum of current version with curl:
+    # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
+    sha256 = "cf68dc78e641ca66403621cef4002ddd09463ead2eb060812d8124d6749ba03b";
   };
 
   nativeBuildInputs = [ qmake qttools ];
-  buildInputs = [
-    qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets qtx11extras
-  ] ++ lib.optional stdenv.isLinux qtwayland;
 
-  meta = with lib; {
-    description = "Plain-text file notepad and todo-list manager with markdown support and ownCloud / Nextcloud integration";
+  buildInputs = [ qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets qtx11extras ]
+    ++ lib.optionals stdenv.isLinux [ qtwayland ];
 
+  meta = with lib; {
+    description = "Plain-text file notepad and todo-list manager with markdown support and Nextcloud/ownCloud integration.";
+    longDescription = "QOwnNotes is a plain-text file notepad and todo-list manager with markdown support and Nextcloud/ownCloud integration.";
     homepage = "https://www.qownnotes.org/";
-    platforms = platforms.all;
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ dtzWill totoroot ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/scribus/unstable.nix b/nixpkgs/pkgs/applications/office/scribus/unstable.nix
index f83ce8b39b1c..549865cd8d85 100644
--- a/nixpkgs/pkgs/applications/office/scribus/unstable.nix
+++ b/nixpkgs/pkgs/applications/office/scribus/unstable.nix
@@ -2,7 +2,6 @@
 , cairo
 , cmake
 , cups
-, fetchpatch
 , fetchurl
 , fontconfig
 , freetype
@@ -36,20 +35,13 @@ in
 mkDerivation rec {
   pname = "scribus";
 
-  version = "1.5.6.1";
+  version = "1.5.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-devel/${pname}-${version}.tar.xz";
-    sha256 = "sha256-1CV2lVOc+kDerYq9rwTFHjTU10vK1aLJNNCObp1Dt6s=";
+    sha256 = "sha256-MYMWss/Hp2GR0+DT+MImUUfa6gVwFiAo4kPCktgm+M4=";
   };
 
-  patches = [
-    (fetchpatch {  # fix build with podofo 0.9.7
-      url = "https://github.com/scribusproject/scribus/commit/c6182ef92820b422d61c904e40e9fed865458eb5.patch";
-      sha256 = "0vp275xfbd4xnj5s55cgzsihgihby5mmjlbmrc7sa6jbrsm8aa2c";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix b/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
index 9228037e8bf8..68f92c74a87c 100644
--- a/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
+++ b/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -6,9 +6,9 @@
   # Softmaker Office or when the upstream archive was replaced and
   # nixpkgs is not in sync yet.
 , officeVersion ? {
-  version = "1030";
+  version = "1032";
   edition = "2021";
-  hash = "sha256-bpnyPyZnJc9RFVrFM2o3M7Gc4PSKFGpaM1Yo8ZKGHrE=";
+  hash = "sha256-LchSqLVBdkmWJQ8hCEvtwRPgIUSDE0URKPzCkEexGbc=";
 }
 
 , ... } @ args:
diff --git a/nixpkgs/pkgs/applications/office/timeline/default.nix b/nixpkgs/pkgs/applications/office/timeline/default.nix
new file mode 100644
index 000000000000..f4f83ce8e7a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/timeline/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, fetchurl
+, python3
+, gettext
+, makeDesktopItem
+, copyDesktopItems
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "timeline";
+  version = "2.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/thetimelineproj/${pname}-${version}.zip";
+    sha256 = "1pa0whqci6c2p20xf7gbndrrpr1xg42ixhql595ibdd4p3l37v23";
+  };
+
+  nativeBuildInputs = [ python3.pkgs.wrapPython copyDesktopItems ];
+
+  pythonPath = with python3.pkgs; [
+    wxPython_4_0 # not compatible with wxPython_4_1. reported upstream https://github.com/wxWidgets/Phoenix/issues/1956
+    humblewx
+    icalendar
+    markdown
+    pysvg-py3
+    pillow
+  ];
+
+  checkInputs = [
+    gettext
+    python3.pkgs.mock
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      desktopName = "Timeline";
+      name = "timeline";
+      comment = "Display and navigate information on a timeline";
+      icon = "timeline";
+      terminal = false;
+      exec = "timeline";
+      categories = "Office;Calendar;";
+    })
+  ];
+
+  dontBuild = true;
+  doCheck = false;
+
+  patchPhase = ''
+    sed -i "s|_ROOT =.*|_ROOT = \"$out/usr/share/timeline/\"|" source/timelinelib/config/paths.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    site_packages=$out/${python3.pkgs.python.sitePackages}
+    install -D -m755 source/timeline.py $out/bin/timeline
+    mkdir -p $site_packages
+    cp -r source/timelinelib $site_packages/
+
+    mkdir -p $out/usr/share/timeline/locale
+    cp -r icons $out/usr/share/timeline/
+    cp -r translations/ $out/usr/share/timeline/
+
+    mkdir -p $out/share/icons/hicolor/{48x48,32x32,16x16}/apps
+    cp icons/48.png $out/share/icons/hicolor/48x48/apps/timeline.png
+    cp icons/32.png $out/share/icons/hicolor/32x32/apps/timeline.png
+    cp icons/16.png $out/share/icons/hicolor/16x16/apps/timeline.png
+
+    runHook postInstall
+  '';
+
+  # tests fail because they need an x server
+  # Unable to access the X Display, is $DISPLAY set properly?
+  checkPhase = ''
+    runHook preCheck
+    ${python3.interpreter} tools/execute-specs.py
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "http://thetimelineproj.sourceforge.net/";
+    changelog = "http://thetimelineproj.sourceforge.net/changelog.html";
+    description = "Display and navigate information on a timeline";
+    license = with licenses; [ gpl3Only cc-by-sa-30 ];
+    platforms = with platforms; unix;
+    maintainers = with maintainers; [ davidak ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/timeular/default.nix b/nixpkgs/pkgs/applications/office/timeular/default.nix
index 948918e54919..477ae48b5f4b 100644
--- a/nixpkgs/pkgs/applications/office/timeular/default.nix
+++ b/nixpkgs/pkgs/applications/office/timeular/default.nix
@@ -2,22 +2,30 @@
 , fetchurl
 , appimageTools
 , libsecret
+, gtk3
+, gsettings-desktop-schemas
 }:
 
 let
-  version = "3.4.1";
+  version = "3.9.1";
   pname = "timeular";
   name = "${pname}-${version}";
+
   src = fetchurl {
     url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
-    sha256 = "1s5jjdl1nzq9yd582lqs904yl10mp0s25897zmifmcbw1vz38bar";
+    sha256 = "103hy443p697jdkz6li8s1n6kg1r55jmiw2vbjz12kskf7njg4y4";
   };
+
   appimageContents = appimageTools.extractType2 {
     inherit name src;
   };
 in appimageTools.wrapType2 rec {
   inherit name src;
 
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
   extraPkgs = pkgs: with pkgs; [
     libsecret
   ];
diff --git a/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
index 21b6b1c579cd..5bda63b58451 100644
--- a/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
+++ b/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
@@ -1,5 +1,5 @@
 diff --git a/src/services/log.js b/src/services/log.js
-index b4c39e99..4c249154 100644
+index 1345ce39..a9770516 100644
 --- a/src/services/log.js
 +++ b/src/services/log.js
 @@ -1,14 +1,5 @@
@@ -17,7 +17,7 @@ index b4c39e99..4c249154 100644
  const SECOND = 1000;
  const MINUTE = 60 * SECOND;
  const HOUR = 60 * MINUTE;
-@@ -16,41 +7,7 @@ const DAY = 24 * HOUR;
+@@ -16,45 +7,7 @@ const DAY = 24 * HOUR;
  
  const NEW_LINE = process.platform === "win32" ? '\r\n' : '\n';
  
@@ -46,16 +46,19 @@ index b4c39e99..4c249154 100644
 -function checkDate(millisSinceMidnight) {
 -    if (millisSinceMidnight >= DAY) {
 -        initLogFile();
+-
+-        millisSinceMidnight =- DAY;
 -    }
+-
+-    return millisSinceMidnight;
 -}
 -
  function log(str) {
--    const millisSinceMidnight = Date.now() - todaysMidnight.getTime();
+-    let millisSinceMidnight = Date.now() - todaysMidnight.getTime();
 -
--    checkDate(millisSinceMidnight);
+-    millisSinceMidnight = checkDate(millisSinceMidnight);
 -
 -    logFile.write(formatTime(millisSinceMidnight) + ' ' + str + NEW_LINE);
 -
      console.log(str);
  }
- 
diff --git a/nixpkgs/pkgs/applications/office/trilium/default.nix b/nixpkgs/pkgs/applications/office/trilium/default.nix
index dab4367b3ae4..d6b7e08b4be9 100644
--- a/nixpkgs/pkgs/applications/office/trilium/default.nix
+++ b/nixpkgs/pkgs/applications/office/trilium/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook }:
+{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, libxshmfence, wrapGAppsHook }:
 
 let
   description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases";
@@ -19,16 +19,16 @@ let
     maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.46.9";
+  version = "0.47.4";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "1qpk5z8w4wbkxs1lpnz3g8w30zygj4wxxlwj6gp1pip09xgiksm9";
+    sha256 = "0hvp6rpvgda12ficzqkj7kllgmpzc8n4rvpgv0zi6fa5alkr944x";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "1n8g7l6hiw9bhzylvzlfcn2pk4i8pqkqp9lj3lcxwwqb8va52phg";
+    sha256 = "01bbg7ssszrq27zk7xzil2mawk1659h1hw68yvk8lbgc4n9phkqk";
   };
 
 in {
@@ -55,7 +55,7 @@ in {
       wrapGAppsHook
     ];
 
-    buildInputs = atomEnv.packages ++ [ gtk3 ];
+    buildInputs = atomEnv.packages ++ [ gtk3 libxshmfence ];
 
     installPhase = ''
       runHook preInstall
diff --git a/nixpkgs/pkgs/applications/office/tryton/default.nix b/nixpkgs/pkgs/applications/office/tryton/default.nix
index 65eb48f3b2d9..b3a5ae44c936 100644
--- a/nixpkgs/pkgs/applications/office/tryton/default.nix
+++ b/nixpkgs/pkgs/applications/office/tryton/default.nix
@@ -6,7 +6,7 @@
 , atk
 , gtk3
 , gtkspell3
-, gnome3
+, gnome
 , glib
 , goocanvas2
 , gdk-pixbuf
@@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
     atk
     gdk-pixbuf
     glib
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     goocanvas2
     fontconfig
     freetype
diff --git a/nixpkgs/pkgs/applications/office/watson/default.nix b/nixpkgs/pkgs/applications/office/watson/default.nix
index c305c7714178..b212ae05a9d2 100644
--- a/nixpkgs/pkgs/applications/office/watson/default.nix
+++ b/nixpkgs/pkgs/applications/office/watson/default.nix
@@ -4,13 +4,13 @@ with pythonPackages;
 
 buildPythonApplication rec {
   pname = "watson";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "TailorDev";
     repo = "Watson";
     rev = version;
-    sha256 = "1yxqjirv7cpg4hqj4l3a53p3p3kl82bcx6drgvl9v849vcc3l7s0";
+    sha256 = "0radf5afyphmzphfqb4kkixahds2559nr3yaqvni4xrisdaiaymz";
   };
 
   postInstall = ''
@@ -19,7 +19,7 @@ buildPythonApplication rec {
   '';
 
   checkInputs = [ pytestCheckHook pytest-mock mock pytest-datafiles ];
-  propagatedBuildInputs = [ arrow_1 click click-didyoumean requests ];
+  propagatedBuildInputs = [ arrow click click-didyoumean requests ];
   nativeBuildInputs = [ installShellFiles ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
index b18f22b6c1dc..ada2804ccba4 100644
--- a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
@@ -5,7 +5,7 @@
 , dpkg
 , wrapGAppsHook
 , wrapQtAppsHook
-, alsaLib
+, alsa-lib
 , atk
 , bzip2
 , cairo
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = with xorg; [
-    alsaLib
+    alsa-lib
     atk
     bzip2
     cairo
diff --git a/nixpkgs/pkgs/applications/office/zim/default.nix b/nixpkgs/pkgs/applications/office/zim/default.nix
index f34a3e806af7..4cf3c3d78cec 100644
--- a/nixpkgs/pkgs/applications/office/zim/default.nix
+++ b/nixpkgs/pkgs/applications/office/zim/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python3Packages, gtk3, gobject-introspection, wrapGAppsHook, gnome3 }:
+{ lib, stdenv, fetchurl, python3Packages, gtk3, gobject-introspection, wrapGAppsHook, gnome }:
 
 #
 # TODO: Declare configuration options for the following optional dependencies:
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "13vhwsgv6mscgixypc0ixkgj0y7cpcm7z7wn1vmdrwp7kn8m3xgx";
   };
 
-  buildInputs = [ gtk3 gobject-introspection wrapGAppsHook gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtk3 gobject-introspection wrapGAppsHook gnome.adwaita-icon-theme ];
   propagatedBuildInputs = with python3Packages; [ pyxdg pygobject3 ];
 
 
diff --git a/nixpkgs/pkgs/applications/office/zotero/default.nix b/nixpkgs/pkgs/applications/office/zotero/default.nix
index 1584972cbebd..53f021344d89 100644
--- a/nixpkgs/pkgs/applications/office/zotero/default.nix
+++ b/nixpkgs/pkgs/applications/office/zotero/default.nix
@@ -26,7 +26,7 @@
 , libXrender
 , libXt
 , libnotify
-, gnome3
+, gnome
 , libGLU, libGL
 , nspr
 , nss
@@ -36,15 +36,15 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.96";
+  version = "5.0.96.2";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "sha256-W8Iu8UoTqC3aK7lB4bq1L7cNmjaEvjEK+ODcZ9kk3f8=";
+    sha256 = "sha256-ZT+qxNLjdG29DhyV0JXtgDHDi2gYPyKrZwgJOro5III=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
-  buildInputs= [ gsettings-desktop-schemas glib gtk3 gnome3.adwaita-icon-theme dconf ];
+  buildInputs= [ gsettings-desktop-schemas glib gtk3 gnome.adwaita-icon-theme dconf ];
 
   dontConfigure = true;
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/radio/direwolf/default.nix b/nixpkgs/pkgs/applications/radio/direwolf/default.nix
index 4f8ca550490a..7b8f60819c47 100644
--- a/nixpkgs/pkgs/applications/radio/direwolf/default.nix
+++ b/nixpkgs/pkgs/applications/radio/direwolf/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, alsaLib, espeak, glibc, gpsd
+{ lib, stdenv, fetchFromGitHub, cmake, alsa-lib, espeak, glibc, gpsd
 , hamlib, perl, python3, udev }:
 
 with lib;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     espeak gpsd hamlib perl python3
-  ] ++ (optionals stdenv.isLinux [alsaLib udev]);
+  ] ++ (optionals stdenv.isLinux [alsa-lib udev]);
 
   patches = [
     ./udev-fix.patch
diff --git a/nixpkgs/pkgs/applications/radio/dump1090/default.nix b/nixpkgs/pkgs/applications/radio/dump1090/default.nix
index 65afdccf8125..927fa32bd55b 100644
--- a/nixpkgs/pkgs/applications/radio/dump1090/default.nix
+++ b/nixpkgs/pkgs/applications/radio/dump1090/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dump1090";
-  version = "4.0";
+  version = "5.0";
 
   src = fetchFromGitHub {
     owner = "flightaware";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zacsqaqsiapljhzw31dwc4nld2rp98jm3ivkyznrhzk9n156p42";
+    sha256 = "1fckfcgypmplzl1lidd04jxiabczlfx9mv21d6rbsfknghsjpn03";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -28,9 +28,13 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin $out/share
     cp -v dump1090 view1090 $out/bin
     cp -vr public_html $out/share/dump1090
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch b/nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch
deleted file mode 100644
index be6c32e41470..000000000000
--- a/nixpkgs/pkgs/applications/radio/ebook2cw/Makefile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 005d60d..f69c7fe 100644
---- a/Makefile
-+++ b/Makefile
-@@ -41,6 +41,7 @@ install:
- 	install -d -v                      $(DESTDIR)/bin/
- 	install -d -v                      $(DESTDIR)/share/doc/ebook2cw/
- 	install -d -v                      $(DESTDIR)/share/doc/ebook2cw/examples/
-+	install -d -v                      $(DESTDIR)/share/locale/de/LC_MESSAGES/
- 	install -s -m 0755 ebook2cw        $(DESTDIR)/bin/
- 	install    -m 0644 ebook2cw.1      $(DESTDIR)/share/man/man1/
- 	install    -m 0644 README          $(DESTDIR)/share/doc/ebook2cw/
diff --git a/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix b/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix
index 4c8cd53ebd4d..6c3fbc16c405 100644
--- a/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix
+++ b/nixpkgs/pkgs/applications/radio/ebook2cw/default.nix
@@ -1,18 +1,24 @@
-{ lib, stdenv, fetchgit, lame, libvorbis, gettext }:
+{ lib, stdenv, fetchgit, fetchpatch, lame, libvorbis, gettext }:
 
 stdenv.mkDerivation rec {
   pname = "ebook2cw";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchgit {
     url = "https://git.fkurz.net/dj1yfk/ebook2cw.git";
     rev = "${pname}-${version}";
-    sha256 = "0jqmnjblv3wzr0ppqzndzd8wg02nlkvzg1fqw14vyyp76sdjsh46";
+    sha256 = "0h7lg59m3dcydzkc8szipnwzag8fqwwvppa9fspn5xqd4blpcjd5";
   };
 
-  buildInputs = [ lame libvorbis gettext ];
+  patches = [
+    # Fixes non-GCC compilers and a missing directory in the install phase.
+    (fetchpatch {
+      url = "https://git.fkurz.net/dj1yfk/ebook2cw/commit/eb5742e70b042cf98a04440395c34390b171c035.patch";
+      sha256 = "1m5f819cj3fj1piss0a5ciib3jqrqdc14lp3i3dszw4bg9v1pgyd";
+    })
+  ];
 
-  patches = [ ./Makefile.patch ];
+  buildInputs = [ lame libvorbis gettext ];
 
   makeFlags = [ "DESTDIR=$(out)" ];
 
diff --git a/nixpkgs/pkgs/applications/radio/fldigi/default.nix b/nixpkgs/pkgs/applications/radio/fldigi/default.nix
index d14e0017f6d3..36f020ed2726 100644
--- a/nixpkgs/pkgs/applications/radio/fldigi/default.nix
+++ b/nixpkgs/pkgs/applications/radio/fldigi/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, hamlib, fltk14, libjpeg, libpng, portaudio, libsndfile,
-  libsamplerate, libpulseaudio, libXinerama, gettext, pkg-config, alsaLib }:
+  libsamplerate, libpulseaudio, libXinerama, gettext, pkg-config, alsa-lib }:
 
 stdenv.mkDerivation rec {
   version = "4.1.18";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ libXinerama gettext hamlib fltk14 libjpeg libpng portaudio
-                  libsndfile libsamplerate libpulseaudio pkg-config alsaLib ];
+                  libsndfile libsamplerate libpulseaudio pkg-config alsa-lib ];
 
   meta = {
     description = "Digital modem program";
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix b/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
index 50993dd6f8ef..3e423e025b76 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/3.7.nix
@@ -17,7 +17,7 @@
 , codec2
 , gsm
 , fftwFloat
-, alsaLib
+, alsa-lib
 , libjack2
 , CoreAudio
 , uhd
@@ -143,7 +143,7 @@ let
     };
     gr-audio = {
       runtime = []
-        ++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+        ++ lib.optionals stdenv.isLinux [ alsa-lib libjack2 ]
         ++ lib.optionals stdenv.isDarwin [ CoreAudio ]
       ;
       cmakeEnableFlag = "GR_AUDIO";
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix b/nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix
index 9f90d3c03535..f20ffe01bdc9 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/3.8.nix
@@ -16,7 +16,7 @@
 , codec2
 , gsm
 , fftwFloat
-, alsaLib
+, alsa-lib
 , libjack2
 , CoreAudio
 , uhd
@@ -149,7 +149,7 @@ let
     };
     gr-audio = {
       runtime = []
-        ++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+        ++ lib.optionals stdenv.isLinux [ alsa-lib libjack2 ]
         ++ lib.optionals stdenv.isDarwin [ CoreAudio ]
       ;
       cmakeEnableFlag = "GR_AUDIO";
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/default.nix b/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
index d622fef424d2..528ea1264538 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/default.nix
@@ -16,7 +16,7 @@
 , codec2
 , gsm
 , fftwFloat
-, alsaLib
+, alsa-lib
 , libjack2
 , CoreAudio
 , uhd
@@ -151,7 +151,7 @@ let
     };
     gr-audio = {
       runtime = []
-        ++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+        ++ lib.optionals stdenv.isLinux [ alsa-lib libjack2 ]
         ++ lib.optionals stdenv.isDarwin [ CoreAudio ]
       ;
       cmakeEnableFlag = "GR_AUDIO";
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix b/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
index d255b199bc90..7dcb6d467d62 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/wrapper.nix
@@ -4,7 +4,7 @@
 , unwrapped
 # If it's a minimal build, we don't want to wrap it with lndir and
 # wrapProgram..
-, wrap ? true
+, doWrap ? true
 # For the wrapper
 , makeWrapper
 # For lndir
@@ -96,7 +96,7 @@ let
     ]
     ++ lib.optionals (unwrapped.hasFeature "gr-qtgui" unwrapped.features)
       # 3.7 builds with qt4
-      (if unwrapped.versionAttr.major == "3.8" then
+      (if lib.versionAtLeast unwrapped.versionAttr.major "3.8" then
         [
           "--prefix" "QT_PLUGIN_PATH" ":"
           "${
@@ -138,7 +138,7 @@ let
     ;
     pkgs = packages;
   };
-  self = if wrap then
+  self = if doWrap then
     stdenv.mkDerivation {
       inherit name passthru;
       buildInputs = [
diff --git a/nixpkgs/pkgs/applications/radio/gqrx/default.nix b/nixpkgs/pkgs/applications/radio/gqrx/default.nix
index cccdff1f3cc8..272c381db897 100644
--- a/nixpkgs/pkgs/applications/radio/gqrx/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gqrx/default.nix
@@ -7,7 +7,7 @@
 , log4cpp
 , mpir
 , fftwFloat
-, alsaLib
+, alsa-lib
 , libjack2
 # drivers (optional):
 , rtl-sdr
@@ -37,7 +37,7 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
     log4cpp
     mpir
     fftwFloat
-    alsaLib
+    alsa-lib
     libjack2
     gnuradio3_8Minimal.unwrapped.boost
     qt5.qtbase
diff --git a/nixpkgs/pkgs/applications/radio/minimodem/default.nix b/nixpkgs/pkgs/applications/radio/minimodem/default.nix
index 48068a342e2e..c023e76b273e 100644
--- a/nixpkgs/pkgs/applications/radio/minimodem/default.nix
+++ b/nixpkgs/pkgs/applications/radio/minimodem/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoconf, automake, libtool
-, fftw, fftwSinglePrec, alsaLib, libsndfile, libpulseaudio
+, fftw, fftwSinglePrec, alsa-lib, libsndfile, libpulseaudio
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config autoconf automake libtool ];
-  buildInputs = [ fftw fftwSinglePrec alsaLib libsndfile libpulseaudio ];
+  buildInputs = [ fftw fftwSinglePrec alsa-lib libsndfile libpulseaudio ];
 
   preConfigure = ''
     aclocal \
diff --git a/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix b/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix
index 01dc7b5c30db..390bd128ef74 100644
--- a/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix
+++ b/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
     pango
   ];
 
-  cargoSha256 = "0w4rbbz8lsh31xkgibzndiic47690nfcjrn1411dskf7ali6djy8";
+  cargoSha256 = "167q9w45lh05l27cdssg8sfz3qfskfaxayzjy6q1cj50jrn0gq13";
 
   preBuild = ''
     # Used by macro pointing to resource location at compile time.
diff --git a/nixpkgs/pkgs/applications/radio/pothos/default.nix b/nixpkgs/pkgs/applications/radio/pothos/default.nix
index 64f5093c4b98..77a7d8cf69f4 100644
--- a/nixpkgs/pkgs/applications/radio/pothos/default.nix
+++ b/nixpkgs/pkgs/applications/radio/pothos/default.nix
@@ -13,7 +13,7 @@
 , nlohmann_json
 , soapysdr-with-plugins
 , portaudio
-, alsaLib
+, alsa-lib
 , muparserx
 , python3
 }:
@@ -39,7 +39,7 @@ mkDerivation rec {
 
   buildInputs = [
     pcre poco qtbase qtsvg libsForQt5.qwt nlohmann_json
-    soapysdr-with-plugins portaudio alsaLib muparserx python3
+    soapysdr-with-plugins portaudio alsa-lib muparserx python3
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/radio/qsstv/default.nix b/nixpkgs/pkgs/applications/radio/qsstv/default.nix
index e6fa95b5dc78..555264ac4850 100644
--- a/nixpkgs/pkgs/applications/radio/qsstv/default.nix
+++ b/nixpkgs/pkgs/applications/radio/qsstv/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchurl, qtbase, qmake, openjpeg, pkg-config, fftw,
-  libpulseaudio, alsaLib, hamlib, libv4l, fftwFloat }:
+  libpulseaudio, alsa-lib, hamlib, libv4l, fftwFloat }:
 
 mkDerivation rec {
   version = "9.4.4";
@@ -17,7 +17,7 @@ mkDerivation rec {
     pkg-config
   ];
 
-  buildInputs = [ qtbase openjpeg fftw libpulseaudio alsaLib hamlib libv4l
+  buildInputs = [ qtbase openjpeg fftw libpulseaudio alsa-lib hamlib libv4l
                   fftwFloat ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/radio/quisk/default.nix b/nixpkgs/pkgs/applications/radio/quisk/default.nix
index 19a4e715013d..75fb91d5ce6a 100644
--- a/nixpkgs/pkgs/applications/radio/quisk/default.nix
+++ b/nixpkgs/pkgs/applications/radio/quisk/default.nix
@@ -1,5 +1,5 @@
 { lib, python38Packages, fetchPypi
-, fftw, alsaLib, pulseaudio, wxPython_4_0 }:
+, fftw, alsa-lib, pulseaudio, wxPython_4_0 }:
 
 python38Packages.buildPythonApplication rec {
   pname = "quisk";
@@ -10,7 +10,7 @@ python38Packages.buildPythonApplication rec {
     sha256 = "37dfb02a32341025c086b07d66ddf1608d4ee1ae1c62fb51f87c97662f13e0d8";
   };
 
-  buildInputs = [ fftw alsaLib pulseaudio ];
+  buildInputs = [ fftw alsa-lib pulseaudio ];
 
   propagatedBuildInputs = [ wxPython_4_0 ];
 
diff --git a/nixpkgs/pkgs/applications/radio/rtl_433/default.nix b/nixpkgs/pkgs/applications/radio/rtl_433/default.nix
index b926e29bc472..72aa865176c2 100644
--- a/nixpkgs/pkgs/applications/radio/rtl_433/default.nix
+++ b/nixpkgs/pkgs/applications/radio/rtl_433/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "20.11";
+  version = "21.05";
   pname = "rtl_433";
 
   src = fetchFromGitHub {
     owner = "merbanan";
     repo = "rtl_433";
     rev = version;
-    sha256 = "093bxjxkg7yf78wqj5gpijbfa2p05ny09qqsj84kzi1svnzsa369";
+    sha256 = "sha256-01mXOwLv16yTR65BboN+TFm2aE2EMfW1D5teDdW2wLg=";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Decode traffic from devices that broadcast on 433.9 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz";
     homepage = "https://github.com/merbanan/rtl_433";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ earldouglas ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/radio/sdrplay/default.nix b/nixpkgs/pkgs/applications/radio/sdrplay/default.nix
new file mode 100644
index 000000000000..d12b12ecc13c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/sdrplay/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, lib, fetchurl, autoPatchelfHook, udev }:
+let
+  arch = if stdenv.isx86_64  then "x86_64"
+    else if stdenv.isi686    then "i686"
+    else throw "unsupported architecture";
+in stdenv.mkDerivation rec {
+  name = "sdrplay";
+  version = "3.07.1";
+
+  src = fetchurl {
+    url = "https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-${version}.run";
+    sha256 = "1a25c7rsdkcjxr7ffvx2lwj7fxdbslg9qhr8ghaq1r53rcrqgzmf";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  buildInputs = [ udev stdenv.cc.cc.lib ];
+
+  unpackPhase = ''
+    sh "$src" --noexec --target source
+  '';
+
+  sourceRoot = "source";
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib,include,lib/udev/rules.d}
+    majorVersion="${lib.concatStringsSep "." (lib.take 1 (builtins.splitVersion version))}"
+    majorMinorVersion="${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}"
+    libName="libsdrplay_api"
+    cp "${arch}/$libName.so.$majorMinorVersion" $out/lib/
+    ln -s "$out/lib/$libName.so.$majorMinorVersion" "$out/lib/$libName.so.$majorVersion"
+    ln -s "$out/lib/$libName.so.$majorVersion" "$out/lib/$libName.so"
+    cp "${arch}/sdrplay_apiService" $out/bin/
+    cp -r inc/* $out/include/
+    cp 66-mirics.rules $out/lib/udev/rules.d/
+  '';
+
+  meta = with lib; {
+    description = "SDRplay API";
+    longDescription = ''
+      Proprietary library and api service for working with SDRplay devices. For documentation and licensing details see
+      https://www.sdrplay.com/docs/SDRplay_API_Specification_v${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}.pdf
+    '';
+    homepage = "https://www.sdrplay.com/downloads/";
+    license = licenses.unfree;
+    maintainers = [ maintainers.pmenke ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/soapyaudio/default.nix b/nixpkgs/pkgs/applications/radio/soapyaudio/default.nix
index e12cced055c2..74924de241d3 100644
--- a/nixpkgs/pkgs/applications/radio/soapyaudio/default.nix
+++ b/nixpkgs/pkgs/applications/radio/soapyaudio/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
-, hamlib, rtaudio, alsaLib, libpulseaudio, libjack2, libusb1, soapysdr
+, hamlib, rtaudio, alsa-lib, libpulseaudio, libjack2, libusb1, soapysdr
 } :
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ hamlib rtaudio alsaLib libpulseaudio libjack2 libusb1 soapysdr ];
+  buildInputs = [ hamlib rtaudio alsa-lib libpulseaudio libjack2 libusb1 soapysdr ];
 
   cmakeFlags = [
     "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/"
diff --git a/nixpkgs/pkgs/applications/radio/soapysdrplay/default.nix b/nixpkgs/pkgs/applications/radio/soapysdrplay/default.nix
new file mode 100644
index 000000000000..dbee593bd0d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/soapysdrplay/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, soapysdr, sdrplay }:
+
+stdenv.mkDerivation {
+  name = "soapysdr-sdrplay3";
+  version = "20210425";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "SoapySDRPlay3";
+    rev = "e6fdb719b611b1dfb7f26c56a4df1e241bd10129";
+    sha256 = "0rrylp3ikrva227hjy60v4n6d6yvdavjsad9kszw9s948mwiashi";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ soapysdr sdrplay ];
+
+  cmakeFlags = [
+    "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/"
+  ];
+
+  meta = with lib; {
+    description = "Soapy SDR module for SDRplay";
+    homepage = "https://github.com/pothosware/SoapySDRPlay3";
+    license = licenses.mit;
+    maintainers = [ maintainers.pmenke ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/soundmodem/default.nix b/nixpkgs/pkgs/applications/radio/soundmodem/default.nix
index 7f1332a45a6a..bedcc8b02c4e 100644
--- a/nixpkgs/pkgs/applications/radio/soundmodem/default.nix
+++ b/nixpkgs/pkgs/applications/radio/soundmodem/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, alsaLib, audiofile, gtk2, libxml2 }:
+{ lib, stdenv, fetchurl, pkg-config, alsa-lib, audiofile, gtk2, libxml2 }:
 
 stdenv.mkDerivation rec {
   name = "soundmodem";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib audiofile gtk2 libxml2 ];
+  buildInputs = [ alsa-lib audiofile gtk2 libxml2 ];
 
   patches = [ ./matFix.patch ];
 
diff --git a/nixpkgs/pkgs/applications/radio/svxlink/default.nix b/nixpkgs/pkgs/applications/radio/svxlink/default.nix
index d6a82049a23d..255f7761be92 100644
--- a/nixpkgs/pkgs/applications/radio/svxlink/default.nix
+++ b/nixpkgs/pkgs/applications/radio/svxlink/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, cmake, pkg-config, fetchFromGitHub, makeDesktopItem, alsaLib, speex
+{ lib, stdenv, cmake, pkg-config, fetchFromGitHub, makeDesktopItem, alsa-lib, speex
 , libopus, curl, gsm, libgcrypt, libsigcxx, popt, qtbase, qttools
 , wrapQtAppsHook, rtl-sdr, tcl, doxygen, groff }:
 
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config doxygen groff wrapQtAppsHook ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     curl
     gsm
     libgcrypt
diff --git a/nixpkgs/pkgs/applications/radio/unixcw/default.nix b/nixpkgs/pkgs/applications/radio/unixcw/default.nix
index cdb84670c616..8d28215ae251 100644
--- a/nixpkgs/pkgs/applications/radio/unixcw/default.nix
+++ b/nixpkgs/pkgs/applications/radio/unixcw/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, libpulseaudio, alsaLib , pkg-config, qt5}:
+{lib, stdenv, fetchurl, libpulseaudio, alsa-lib , pkg-config, qt5}:
 stdenv.mkDerivation rec {
   pname = "unixcw";
   version = "3.5.1";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   patches = [
     ./remove-use-of-dlopen.patch
   ];
-  buildInputs = [libpulseaudio alsaLib pkg-config qt5.qtbase];
+  buildInputs = [libpulseaudio alsa-lib pkg-config qt5.qtbase];
   CFLAGS   ="-lasound -lpulse-simple";
 
   dontWrapQtApps = true;
diff --git a/nixpkgs/pkgs/applications/radio/welle-io/default.nix b/nixpkgs/pkgs/applications/radio/welle-io/default.nix
index 97bf84a2bf39..cfd339c2d1ea 100644
--- a/nixpkgs/pkgs/applications/radio/welle-io/default.nix
+++ b/nixpkgs/pkgs/applications/radio/welle-io/default.nix
@@ -1,20 +1,17 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
 , qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2, qtgraphicaleffects
-, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
-let
-
-  version = "2.2";
-
-in mkDerivation {
+, faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123
+} :
 
+mkDerivation rec {
   pname = "welle-io";
-  inherit version;
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "AlbrechtL";
     repo = "welle.io";
     rev = "v${version}";
-    sha256 = "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa";
+    sha256 = "1xl1lanw0xgmgks67dbfb2h52jxnrd1i2zik56v0q8dwsr7f0daw";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix b/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
index cd7405ae09d9..861dc66293ee 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
@@ -14,20 +14,13 @@
 
 mkDerivation rec {
   pname = "kstars";
-  version = "3.5.2";
+  version = "3.5.3";
 
   src = fetchurl {
     url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
-    sha256 = "sha256-iX7rMQbctdK3AeH4ZvH+T4rv1ZHwn55urJh150KoXXU=";
+    sha256 = "sha256-kgUsG2k2YSAAH7ea2qfGw4gON5CFdUoQ3EwOnATXZ5g=";
   };
 
-  patches = [
-    # Patches ksutils.cpp to use nix store prefixes to find program binaries of
-    # indilib and xplanet dependencies. Without the patch, Ekos is unable to spawn
-    # indi servers for local telescope/camera control.
-    ./fs-fixes.patch
-  ];
-
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kdoctools kguiaddons ki18n kinit kiconthemes kio
@@ -41,8 +34,8 @@ mkDerivation rec {
   ];
 
   cmakeFlags = [
-    "-DINDI_NIX_ROOT=${indi-full}"
-    "-DXPLANET_NIX_ROOT=${xplanet}"
+    "-DINDI_PREFIX=${indi-full}"
+    "-DXPLANET_PREFIX=${xplanet}"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/science/astronomy/kstars/fs-fixes.patch b/nixpkgs/pkgs/applications/science/astronomy/kstars/fs-fixes.patch
deleted file mode 100644
index b9bdfc0c5dea..000000000000
--- a/nixpkgs/pkgs/applications/science/astronomy/kstars/fs-fixes.patch
+++ /dev/null
@@ -1,59 +0,0 @@
---- kstars-3.5.0/CMakeLists.txt.old	2020-11-24 12:36:37.967433937 -0600
-+++ kstars-3.5.0/CMakeLists.txt	2020-11-24 13:36:56.275263691 -0600
-@@ -5,6 +5,9 @@
- set (KSTARS_BUILD_RELEASE "Stable")
- set (CMAKE_CXX_STANDARD 11)
- 
-+add_definitions(-DINDI_NIX_ROOT=${INDI_NIX_ROOT})
-+add_definitions(-DXPLANET_NIX_ROOT=${XPLANET_NIX_ROOT})
-+
- # Build KStars Lite with -DBUILD_KSTARS_LITE=ON
- option(BUILD_KSTARS_LITE "Build KStars Lite" OFF)
- 
---- kstars-3.5.0/kstars/auxiliary/ksutils.old.cpp	2020-11-24 12:22:14.397319680 -0600
-+++ kstars-3.5.0/kstars/auxiliary/ksutils.cpp	2020-11-24 13:32:22.946477798 -0600
-@@ -1081,6 +1081,10 @@
-     // We support running within Snaps, Flatpaks, and AppImage
-     // The path should accomodate the differences between the different
-     // packaging solutions
-+    #define STR_EXPAND(x) #x
-+    #define STR(x) STR_EXPAND(x)
-+    QString indi_prefix = QString(STR(INDI_NIX_ROOT));
-+    QString xplanet_prefix = QString(STR(XPLANET_NIX_ROOT));
-     QString snap = QProcessEnvironment::systemEnvironment().value("SNAP");
-     QString flat = QProcessEnvironment::systemEnvironment().value("FLATPAK_DEST");
-     QString appimg = QProcessEnvironment::systemEnvironment().value("APPDIR");
-@@ -1110,21 +1114,21 @@
- #if defined(Q_OS_OSX)
-         return "/usr/local/bin/indiserver";
- #endif
--        return prefix + "/bin/indiserver";
-+        return indi_prefix + "/bin/indiserver";
-     }
-     else if (option == "INDIHubAgent")
-     {
- #if defined(Q_OS_OSX)
-         return "/usr/local/bin/indihub-agent";
- #endif
--        return prefix + "/bin/indihub-agent";
-+        return indi_prefix + "/bin/indihub-agent";
-     }
-     else if (option == "indiDriversDir")
-     {
- #if defined(Q_OS_OSX)
-         return "/usr/local/share/indi";
- #elif defined(Q_OS_LINUX)
--        return prefix + "/share/indi";
-+        return indi_prefix + "/share/indi";
- #else
-         return QStandardPaths::locate(QStandardPaths::GenericDataLocation, "indi", QStandardPaths::LocateDirectory);
- #endif
-@@ -1181,7 +1185,7 @@
- #if defined(Q_OS_OSX)
-         return "/usr/local/bin/xplanet";
- #endif
--        return prefix + "/bin/xplanet";
-+        return xplanet_prefix + "/bin/xplanet";
-     }
-     else if (option == "ASTAP")
-     {
diff --git a/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix b/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix
index e51d181266a4..fd49957aa355 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/siril/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitLab, pkg-config, meson, ninja, wrapGAppsHook
+{ lib, stdenv, fetchFromGitLab, fetchpatch, pkg-config, meson, ninja
 , git, criterion, gtk3, libconfig, gnuplot, opencv, json-glib
 , fftwFloat, cfitsio, gsl, exiv2, librtprocess, wcslib, ffmpeg
-, libraw, libtiff, libpng, libjpeg, libheif, ffms
+, libraw, libtiff, libpng, libjpeg, libheif, ffms, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -15,6 +15,14 @@ stdenv.mkDerivation rec {
     sha256 = "0h3slgpj6zdc0rwmyr9zb0vgf53283hpwb7h26skdswmggsk90i5";
   };
 
+  patches = [
+    # Backport fix for broken build on glib-2.68
+    (fetchpatch {
+      url = "https://gitlab.com/free-astro/siril/-/commit/d319fceca5b00f156e1c5e3512d3ac1f41beb16a.diff";
+      sha256 = "00lq9wq8z48ly3hmkgzfqbdjaxr0hzyl2qwbj45bdnxfwqragh5m";
+    })
+  ];
+
   nativeBuildInputs = [
     meson ninja pkg-config git criterion wrapGAppsHook
   ];
diff --git a/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix b/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
index 715f5bb8bfa6..205ff9afdca1 100644
--- a/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bowtie2";
-  version = "2.4.2";
+  version = "2.4.4";
 
   src = fetchFromGitHub {
     owner = "BenLangmead";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11apzq7l1lk3yxw97g9dfr0gwnvfh58x6apifcblgd66gbip3y1y";
+    sha256 = "sha256-2B6w6c/qztyBb1jNA0zg+udQm41ouT1DyB6Ygpi5nC8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix b/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix
index bed562abe23c..ba1d6c27ccb1 100644
--- a/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/cd-hit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, zlib, perl, perlPackages }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, zlib, perl, perlPackages, openmp }:
 
 stdenv.mkDerivation rec {
   version = "4.8.1";
@@ -14,8 +14,12 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ perl perlPackages.TextNSP perlPackages.PerlMagick ];
 
   nativeBuildInputs = [ zlib makeWrapper ];
+  buildInputs = lib.optional stdenv.cc.isClang openmp;
 
-  makeFlags = [ "PREFIX=$(out)/bin" ];
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}c++" # remove once https://github.com/weizhongli/cdhit/pull/114 is merged
+    "PREFIX=$(out)/bin"
+  ];
 
   preInstall = "mkdir -p $out/bin";
 
diff --git a/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
index 7ec5476cb826..6224ccabb069 100644
--- a/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -6,14 +6,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.20200331";
+  version = "1.0.20210317";
   pname = "dcm2niix";
 
   src = fetchFromGitHub {
     owner = "rordenlab";
     repo = "dcm2niix";
     rev = "v${version}";
-    sha256 = "1cncfwhyhmg18n970lkn6yvp0i74ajznsl8dqz00asqfzmg681n1";
+    sha256 = "05rjk0xsrzcxa979vlx25k1rdz1in84gkfm9l1h9f7k4a4aa5r6j";
   };
 
   nativeBuildInputs = [ cmake git ];
diff --git a/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix b/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
index 814baa45d8c1..fe4a3e49930c 100644
--- a/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gsl ];
 
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
   installPhase = ''
     mkdir -p $out/bin
     mkdir -p $out/share/doc/${pname}
diff --git a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
index b61a0764f2c2..95912d3a7c32 100644
--- a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
@@ -1,28 +1,16 @@
-{lib, stdenv, fetchpatch, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
+{lib, stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "0.7.3";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "luntergroup";
     repo = "octopus";
     rev = "v${version}";
-    sha256 = "sha256-sPOBZ0YrEdjMNVye/xwqwA5IpsLy2jWN3sm/ce1fLg4=";
+    sha256 = "sha256-FAogksVxUlzMlC0BqRu22Vchj6VX+8yNlHRLyb3g1sE=";
   };
 
-  patches = [
-    # Backport TZ patchs (https://github.com/luntergroup/octopus/issues/149)
-    (fetchpatch {
-      url = "https://github.com/luntergroup/octopus/commit/3dbd8cc33616129ad356e99a4dae82e4f6702250.patch";
-      sha256 = "sha256-UCufVU9x+L1zCEhkr/48KFYRvh8w26w8Jr+O+wULKK8=";
-    })
-    (fetchpatch {
-      url = "https://github.com/luntergroup/octopus/commit/af5a66a2792bd098fb53eb79fb4822625f09305e.patch";
-      sha256 = "sha256-r8jv6EZHfTWVLYUBau3F+ilOd9IeH8rmatorEY5LXP4=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ boost gmp htslib zlib xz ];
 
diff --git a/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
index 7b5141302f7b..abfac6ce083f 100644
--- a/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python3, which, ldc, zlib }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3, which, ldc, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "sambamba";
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Fixes hardcoded gcc, making clang build possible.
+    (fetchpatch {
+      url = "https://github.com/biod/sambamba/commit/c50a1c91e1ba062635467f197139bf6784e9be15.patch";
+      sha256 = "1y0vlybmb9wpg4z1nca7m96mk9hxmvd3yrg7w8rxscj45hcqvf8q";
+    })
+  ];
+
   nativeBuildInputs = [ which python3 ldc ];
   buildInputs = [ zlib ];
 
diff --git a/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix b/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
index 48c19666ba04..4315dd2767e1 100644
--- a/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0g24fq5hplnfgqkh3xqpg3lgx3wmxwnh9c7m6yw7pbi40lmgl1jv";
   };
 
+  makeFlags = [ "CPP=${stdenv.cc.targetPrefix}c++" ];
+
   installPhase = ''
     mkdir -p $out/bin
     cp samblaster $out/bin
diff --git a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
index 74a6b495587c..ca80262eb76a 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -35,10 +35,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.57";
+   version = "2.58";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "sha256-kx/WqtNDaJQyVehxZ3weddXyaM1knX+fCuv47A9GaH0=";
+    sha256 = "sha256-0xNnzYkuW3nEsO2o+0WEA+Z71XWoq6FYXm342OWO9Sw=";
   };
 
   nativeBuildInputs = [ pkg-config file ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
index bb523cddd196..d8f7bd5eb552 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.31.35";
+  version = "14.31.38";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    sha256 = "sha256-uB7d27eicfmE1TpjLAxUoC8LBYAOrg3B48M1/CxWZdg=";
+    sha256 = "sha256-yXJ1KtTH3bi24GFiVXu8zzQkreDkqbCxgm7fVoSJepg=";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix b/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
index b4f0d955d6b2..c806db74ff3c 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
@@ -4,12 +4,12 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "21.3.0";
+  version = "21.9.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "sha256-PM4Exi4YD6WibxqtewLzE4dDRgSVHiTT36p68uoQP4g=";
+    sha256 = "sha256-T94SoHAZmBfbGaFiuYAKhuKgHaXcDZix//YTTq1oFIk=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix b/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
index cc9202493b1d..af646b514af9 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -1,12 +1,13 @@
 { lib, stdenv, fetchFromGitLab, cmake, gfortran, perl
 , openblas, hdf5-cpp, python3, texlive
 , armadillo, mpi, globalarrays, openssh
-, makeWrapper, fetchpatch
+, makeWrapper
 } :
 
 let
-  version = "20.10";
-  gitLabRev = "v${version}";
+  version = "21.02";
+  # The tag keeps moving, fix a hash instead
+  gitLabRev = "41cee871945ac712e86ee971425a49a8fc60a936";
 
   python = python3.withPackages (ps : with ps; [ six pyparsing ]);
 
@@ -18,13 +19,13 @@ in stdenv.mkDerivation {
     owner = "Molcas";
     repo = "OpenMolcas";
     rev = gitLabRev;
-    sha256 = "0xr9plgb0cfmxxqmd3wrhvl0hv2jqqfqzxwzs1jysq2m9cxl314v";
+    sha256 = "0cap53gy1wds2qaxbijw09fqhvfxphfkr93nhp9xdq84yxh4wzv6";
   };
 
   patches = [
     # Required to handle openblas multiple outputs
     ./openblasPath.patch
-];
+  ];
 
   nativeBuildInputs = [ perl cmake texlive.combined.scheme-minimal makeWrapper ];
   buildInputs = [
@@ -57,6 +58,10 @@ in stdenv.mkDerivation {
     export PATH=$PATH:$out/bin
   '';
 
+  postInstall = ''
+    mv $out/pymolcas $out/bin
+  '';
+
   postFixup = ''
     # Wrong store path in shebang (no Python pkgs), force re-patching
     sed -i "1s:/.*:/usr/bin/env python:" $out/bin/pymolcas
diff --git a/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix b/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
index ab16866fe01c..eb8246a584d3 100644
--- a/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
@@ -25,6 +25,17 @@ mkDerivation rec {
     # Using local file instead of content of commit #33e3d896a47 because
     # sourceRoot make it unappliable
     ./qt515.patch
+
+    # Change from upstream master that removes extern-C scopes which
+    # cause failures with modern glib. This can likely be removed if
+    # there is an upstream release >1.12
+    (fetchpatch {
+      name = "fix-extern-c.patch";
+      url = "https://github.com/DreamSourceLab/DSView/commit/33cc733abe19872bf5ed08540a94b798d0d4ecf4.patch";
+      sha256 = "sha256-TLfLQa3sdyNHTpMMvId/V6uUuOFihOZMFJOj9frnDoY=";
+      stripLen = 2;
+      extraPrefix = "";
+    })
   ];
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix b/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix
index 8e04d72780ca..c33bfd408b92 100644
--- a/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, pkg-config, autoreconfHook,
 glib, libzip, libserialport, check, libusb1, libftdi,
-systemd, alsaLib, dsview
+systemd, alsa-lib, dsview
 }:
 
 stdenv.mkDerivation {
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkg-config autoreconfHook ];
 
   buildInputs = [
-    glib libzip libserialport libusb1 libftdi systemd check alsaLib
+    glib libzip libserialport libusb1 libftdi systemd check alsa-lib
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
index 58873b8a7701..0628134d9df2 100644
--- a/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, mkDerivation, fetchurl, makeDesktopItem
 , libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
- , libGL, glib, nss, nspr, expat, alsaLib
+ , libGL, glib, nss, nspr, expat, alsa-lib
 , qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
 }:
 
 let
   libPath = lib.makeLibraryPath
     [ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
-      libGL glib nss nspr expat alsaLib
+      libGL glib nss nspr expat alsa-lib
       qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
     ];
   in
@@ -32,7 +32,7 @@ let
 
     buildInputs =
       [ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
-        libGL glib nss nspr expat alsaLib
+        libGL glib nss nspr expat alsa-lib
         qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
       ];
 
diff --git a/nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix b/nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix
index c51e5de93d64..0ec10f2444fd 100644
--- a/nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/gnucap/default.nix
@@ -21,6 +21,7 @@ It performs nonlinear dc and transient analyses, fourier analysis, and ac analys
     changelog = "https://git.savannah.gnu.org/cgit/gnucap.git/plain/NEWS?h=v${version}";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
+    broken = stdenv.isDarwin; # Relies on LD_LIBRARY_PATH
     maintainers = [ maintainers.raboof ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
index 3a3994d9ad62..af5441f07e21 100644
--- a/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkwave";
-  version = "3.3.108";
+  version = "3.3.109";
 
   src = fetchurl {
     url    = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
-    sha256 = "sha256-LtlexZKih+Si/pH3oQpWdpzfZ6j+41Otgfx7nLMfFSQ=";
+    sha256 = "sha256-NUYezNm4tEcMqnirmo8U7Ky8ye/2MDPY3OWAk+eG3rc=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
index 1a5c0de5fb7f..9848eb58399d 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
@@ -15,84 +15,124 @@
 , boost
 , pkg-config
 , doxygen
+, graphviz
 , pcre
 , libpthreadstubs
 , libXdmcp
 , lndir
 
+, util-linux
+, libselinux
+, libsepol
+, libthai
+, libdatrie
+, libxkbcommon
+, epoxy
+, dbus
+, at-spi2-core
+, libXtst
+
+, swig
+, python
+, wxPython
+, opencascade
+, opencascade-occt
+, libngspice
+, valgrind
+
 , stable
 , baseName
 , kicadSrc
 , kicadVersion
 , i18n
 , withOCE
-, opencascade
 , withOCC
-, opencascade-occt
 , withNgspice
-, libngspice
 , withScripting
-, swig
-, python
-, wxPython
 , debug
-, valgrind
+, sanitizeAddress
+, sanitizeThreads
 , withI18n
-, gtk3
 }:
 
 assert lib.asserts.assertMsg (!(withOCE && stdenv.isAarch64)) "OCE fails a test on Aarch64";
 assert lib.asserts.assertMsg (!(withOCC && withOCE))
   "Only one of OCC and OCE may be enabled";
+assert lib.assertMsg (!(stable && (sanitizeAddress || sanitizeThreads)))
+  "Only kicad-unstable(-small) supports address/thread sanitation";
+assert lib.assertMsg (!(sanitizeAddress && sanitizeThreads))
+  "'sanitizeAddress' and 'sanitizeThreads' are mutually exclusive, use one.";
 let
   inherit (lib) optional optionals;
 in
 stdenv.mkDerivation rec {
   pname = "kicad-base";
-  version = kicadVersion;
+  version = if (stable) then kicadVersion else builtins.substring 0 10 src.rev;
 
   src = kicadSrc;
 
   # tagged releases don't have "unknown"
   # kicad nightlies use git describe --dirty
   # nix removes .git, so its approximated here
-  # "-1" appended to indicate we're adding a patch
   postPatch = ''
     substituteInPlace CMakeModules/KiCadVersion.cmake \
-      --replace "unknown" "${builtins.substring 0 10 src.rev}-1" \
-      --replace "${version}" "${version}-1"
+      --replace "unknown" "${builtins.substring 0 10 src.rev}" \
   '';
 
-  makeFlags = optional (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ];
+  makeFlags = optionals (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ];
 
-  cmakeFlags =
-    optionals (withScripting) [
-      "-DKICAD_SCRIPTING=ON"
-      "-DKICAD_SCRIPTING_MODULES=ON"
-      "-DKICAD_SCRIPTING_PYTHON3=ON"
-      "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
-    ]
-    ++ optional (!withScripting)
-      "-DKICAD_SCRIPTING=OFF"
-    ++ optional (withNgspice) "-DKICAD_SPICE=ON"
-    ++ optional (!withOCE) "-DKICAD_USE_OCE=OFF"
-    ++ optional (!withOCC) "-DKICAD_USE_OCC=OFF"
-    ++ optionals (withOCE) [
-      "-DKICAD_USE_OCE=ON"
-      "-DOCE_DIR=${opencascade}"
-    ]
-    ++ optionals (withOCC) [
-      "-DKICAD_USE_OCC=ON"
-      "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
-    ]
-    ++ optionals (debug) [
-      "-DCMAKE_BUILD_TYPE=Debug"
-      "-DKICAD_STDLIB_DEBUG=ON"
-      "-DKICAD_USE_VALGRIND=ON"
-    ]
-  ;
+  cmakeFlags = optionals (withScripting) [
+    "-DKICAD_SCRIPTING=ON"
+    "-DKICAD_SCRIPTING_MODULES=ON"
+    "-DKICAD_SCRIPTING_PYTHON3=ON"
+    "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+  ]
+  ++ optional (!withScripting)
+    "-DKICAD_SCRIPTING=OFF"
+  ++ optional (withNgspice) "-DKICAD_SPICE=ON"
+  ++ optional (!withOCE) "-DKICAD_USE_OCE=OFF"
+  ++ optional (!withOCC) "-DKICAD_USE_OCC=OFF"
+  ++ optionals (withOCE) [
+    "-DKICAD_USE_OCE=ON"
+    "-DOCE_DIR=${opencascade}"
+  ]
+  ++ optionals (withOCC) [
+    "-DKICAD_USE_OCC=ON"
+    "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
+  ]
+  ++ optionals (debug) [
+    "-DCMAKE_BUILD_TYPE=Debug"
+    "-DKICAD_STDLIB_DEBUG=ON"
+    "-DKICAD_USE_VALGRIND=ON"
+  ]
+  ++ optionals (sanitizeAddress) [
+    "-DKICAD_SANITIZE_ADDRESS=ON"
+  ]
+  ++ optionals (sanitizeThreads) [
+    "-DKICAD_SANITIZE_THREADS=ON"
+  ];
 
-  nativeBuildInputs = [ cmake doxygen pkg-config lndir ];
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    graphviz
+    pkg-config
+    lndir
+  ]
+  # wanted by configuration on linux, doesn't seem to affect performance
+  # no effect on closure size
+  ++ optionals (stdenv.isLinux) [
+    util-linux
+    libselinux
+    libsepol
+    libthai
+    libdatrie
+    libxkbcommon
+    epoxy
+    dbus.daemon
+    at-spi2-core
+    libXtst
+  ];
 
   buildInputs = [
     libGLU
@@ -100,6 +140,7 @@ stdenv.mkDerivation rec {
     zlib
     libX11
     wxGTK
+    wxGTK.gtk
     pcre
     libXdmcp
     gettext
@@ -110,7 +151,6 @@ stdenv.mkDerivation rec {
     curl
     openssl
     boost
-    gtk3
   ]
   ++ optionals (withScripting) [ swig python wxPython ]
   ++ optional (withNgspice) libngspice
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
index 76048733a6a3..770b73c71244 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchFromGitLab
-, gnome3
+, gnome
 , dconf
 , wxGTK30
 , wxGTK31
@@ -25,6 +25,8 @@
 , withScripting ? true
 , python3
 , debug ? false
+, sanitizeAddress ? false
+, sanitizeThreads ? false
 , with3d ? true
 , withI18n ? true
 , srcs ? { }
@@ -146,28 +148,28 @@ let
       };
 
   python = python3;
-  wxPython = python.pkgs.wxPython_4_0;
+  wxPython = if (stable)
+    then python.pkgs.wxPython_4_0
+    else python.pkgs.wxPython_4_1;
 
   inherit (lib) concatStringsSep flatten optionalString optionals;
 in
 stdenv.mkDerivation rec {
 
   # Common libraries, referenced during runtime, via the wrapper.
-  passthru.libraries = callPackages ./libraries.nix { inherit libSrc libVersion; };
-  passthru.i18n = callPackage ./i18n.nix {
-    src = i18nSrc;
-    version = i18nVersion;
-  };
+  passthru.libraries = callPackages ./libraries.nix { inherit libSrc; };
+  passthru.i18n = callPackage ./i18n.nix { src = i18nSrc; };
   base = callPackage ./base.nix {
     inherit stable baseName;
     inherit kicadSrc kicadVersion;
     inherit (passthru) i18n;
     inherit wxGTK python wxPython;
-    inherit debug withI18n withOCC withOCE withNgspice withScripting;
+    inherit withI18n withOCC withOCE withNgspice withScripting;
+    inherit debug sanitizeAddress sanitizeThreads;
   };
 
   inherit pname;
-  version = kicadVersion;
+  version = if (stable) then kicadVersion else builtins.substring 0 10 src.src.rev;
 
   src = base;
   dontUnpack = true;
@@ -187,20 +189,37 @@ stdenv.mkDerivation rec {
   makeWrapperArgs = with passthru.libraries; [
     "--prefix XDG_DATA_DIRS : ${base}/share"
     "--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share"
-    "--prefix XDG_DATA_DIRS : ${gnome3.adwaita-icon-theme}/share"
+    "--prefix XDG_DATA_DIRS : ${gnome.adwaita-icon-theme}/share"
     "--prefix XDG_DATA_DIRS : ${wxGTK.gtk}/share/gsettings-schemas/${wxGTK.gtk.name}"
     "--prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
     # wrapGAppsHook did these two as well, no idea if it matters...
     "--prefix XDG_DATA_DIRS : ${cups}/share"
     "--prefix GIO_EXTRA_MODULES : ${dconf}/lib/gio/modules"
-
+    # required to open a bug report link in firefox-wayland
+    "--set-default MOZ_DBUS_REMOTE 1"
+  ]
+  ++ optionals (stable)
+  [
     "--set-default KISYSMOD ${footprints}/share/kicad/modules"
     "--set-default KICAD_SYMBOL_DIR ${symbols}/share/kicad/library"
     "--set-default KICAD_TEMPLATE_DIR ${templates}/share/kicad/template"
     "--prefix KICAD_TEMPLATE_DIR : ${symbols}/share/kicad/template"
     "--prefix KICAD_TEMPLATE_DIR : ${footprints}/share/kicad/template"
   ]
-  ++ optionals (with3d) [ "--set-default KISYS3DMOD ${packages3d}/share/kicad/modules/packages3d" ]
+  ++ optionals (stable && with3d) [ "--set-default KISYS3DMOD ${packages3d}/share/kicad/modules/packages3d" ]
+  ++ optionals (!stable)
+  [
+    "--set-default KICAD6_FOOTPRINT_DIR ${footprints}/share/kicad/modules"
+    "--set-default KICAD6_SYMBOL_DIR ${symbols}/share/kicad/library"
+    "--set-default KICAD6_TEMPLATE_DIR ${templates}/share/kicad/template"
+    "--prefix KICAD6_TEMPLATE_DIR : ${symbols}/share/kicad/template"
+    "--prefix KICAD6_TEMPLATE_DIR : ${footprints}/share/kicad/template"
+  ]
+  ++ optionals (!stable && with3d)
+  [
+    "--set-default KISYS3DMOD ${packages3d}/share/kicad/3dmodels"
+    "--set-default KICAD6_3DMODEL_DIR ${packages3d}/share/kicad/3dmodels"
+  ]
   ++ optionals (withNgspice) [ "--prefix LD_LIBRARY_PATH : ${libngspice}/lib" ]
 
   # infinisil's workaround for #39493
@@ -240,6 +259,10 @@ stdenv.mkDerivation rec {
     ln -s ${base}/share/applications $out/share/applications
     ln -s ${base}/share/icons $out/share/icons
     ln -s ${base}/share/mime $out/share/mime
+  '' + optionalString (stable) ''
+    ln -s ${base}/share/appdata $out/share/appdata
+  '' + optionalString (!stable) ''
+    ln -s ${base}/share/metainfo $out/share/metainfo
   '';
 
   # can't run this for each pname
@@ -260,8 +283,7 @@ stdenv.mkDerivation rec {
       The Programs handle Schematic Capture, and PCB Layout with Gerber output.
     '';
     license = lib.licenses.gpl3Plus;
-    # berce seems inactive...
-    maintainers = with lib.maintainers; [ evils kiwi berce ];
+    maintainers = with lib.maintainers; [ evils kiwi ];
     # kicad is cross platform
     platforms = lib.platforms.all;
     # despite that, nipkgs' wxGTK for darwin is "wxmac"
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix
index 9a93e4ca7ce6..c9a70a0060d5 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/i18n.nix
@@ -2,13 +2,13 @@
 , cmake
 , gettext
 , src
-, version
 }:
 
 stdenv.mkDerivation {
-  inherit src version;
+  inherit src;
 
   pname = "kicad-i18n";
+  version = builtins.substring 0 10 src.rev;
 
   nativeBuildInputs = [ cmake gettext ];
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
index e98f2e49576b..9591cbc31c39 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
@@ -2,13 +2,12 @@
 , cmake
 , gettext
 , libSrc
-, libVersion
 }:
 let
   mkLib = name:
     stdenv.mkDerivation {
       pname = "kicad-${name}";
-      version = libVersion;
+      version = builtins.substring 0 10 (libSrc name).rev;
 
       src = libSrc name;
 
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
index 8a5e5d8f5f5c..c30c074a5de1 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,17 +3,17 @@
 {
   "kicad" = {
     kicadVersion = {
-      version =			"5.1.9";
+      version =			"5.1.10";
       src = {
-        rev =			"73d0e3b20dec05c4350efa5b69916eb29a7bfcb5";
-        sha256 =		"1cqh3bc9y140hbryfk9qavs2y3lj5sm9q0qjxcf4mm472afzckky";
+        rev =			"88a1d61d58fdd62149bd1e00984e01540148ca1b";
+        sha256 =		"10ix560bqy0lprnik1bprxw9ix4g8w2ipvyikx551ak9ryvgwjcc";
       };
     };
     libVersion = {
-      version =			"5.1.9";
+      version =			"5.1.10";
       libSources = {
-        i18n.rev =		"04f3231f60d55400cb81564b2cd465a57d5192d5";
-        i18n.sha256 =		"04jq1dcag6i2ljjfqrib65mn4wg4c4nmi7i946l3bywc0rkqsx1f";
+        i18n.rev =		"f081afe79be4660d5c49a9d674e3cb666d76d4d0";
+        i18n.sha256 =		"0y51l0r62cnxkvpc21732p3cx7pjvaqjih8193502hlv9kv1j9p6";
         symbols.rev =		"6dec5004b6a2679c19d4857bda2f90c5ab3a5726";
         symbols.sha256 =	"0n25rq32jwyigfw26faqraillwv6zbi2ywy26dkz5zqlf5xp56ad";
         templates.rev =		"1ccbaf3704e8ff4030d0915f71e051af621ef7d7";
@@ -27,23 +27,23 @@
   };
   "kicad-unstable" = {
     kicadVersion = {
-      version =			"2020-12-23";
+      version =			"2021-05-16";
       src = {
-        rev =			"912657dd238ad78cfc5d9d5e426ea850d5554fb3";
-        sha256 =		"1p5kr4d4zpajwdmya1f351y1ix8qmvsx1hrnvhzh7yc3g72kgxah";
+        rev =			"c33b2cfa8d16072b9d1bce558e443c4afa889d06";
+        sha256 =		"1fvbxjpf880ikjqjhzj8wlxj0845gzrj1yv35rk7akbg4vl9ph72";
       };
     };
     libVersion = {
-      version =			"2020-12-23";
+      version =			"2021-05-16";
       libSources = {
         i18n.rev =		"e89d9a89bec59199c1ade56ee2556591412ab7b0";
         i18n.sha256 =		"04zaqyhj3qr4ymyd3k5vjpcna64j8klpsygcgjcv29s3rdi8glfl";
-        symbols.rev =		"e538abb015b4f289910a6f26b2f1b9cb8bf2efdb";
-        symbols.sha256 =	"117y4cm46anlrnw6y6mdjgl1a5gab6h6m7cwx3q7qb284m9bs5gi";
-        templates.rev =		"32a4f6fab863976fdcfa232e3e08fdcf3323a954";
-        templates.sha256 =	"13r94dghrh9slpj7nkzv0zqv5hk49s6pxm4q5ndqx0y8037ivmhk";
-        footprints.rev =	"15ffd67e01257d4d8134dbd6708cb58977eeccbe";
-        footprints.sha256 =	"1ad5k3wh2zqfibrar7pd3g363jk2q51dvraxnq3zlxa2x4znh7mw";
+        symbols.rev =		"32de73ea01347a005790119eb4102c550815685c";
+        symbols.sha256 =	"0gj10v06rkxlxngc40d1sfmlcagy5p7jfxid0lch4w0wxfjmks7z";
+        templates.rev =		"073d1941c428242a563dcb5301ff5c7479fe9c71";
+        templates.sha256 =	"14p06m2zvlzzz2w74y83f2zml7mgv5dhy2nyfkpblanxawrzxv1x";
+        footprints.rev =	"8fa36dfa3423d8777472e3475c1c2b0b2069624f";
+        footprints.sha256 =	"138xfkr0prxw2djkwc1m4mlp9km99v12sivbqhm1jkq5yxngdbin";
         packages3d.rev =	"d8b7e8c56d535f4d7e46373bf24c754a8403da1f";
         packages3d.sha256 =	"0dh8ixg0w43wzj5h3164dz6l1vl4llwxhi3qcdgj1lgvrs28aywd";
       };
diff --git a/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix b/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
index 00c830fcd337..e9496ce60c22 100644
--- a/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchurl, pkg-config, cmake, glib, boost, libsigrok
+{ mkDerivation, lib, fetchurl, fetchpatch, pkg-config, cmake, glib, boost, libsigrok
 , libsigrokdecode, libserialport, libzip, udev, libusb1, libftdi1, glibmm
 , pcre, librevisa, python3, qtbase, qtsvg
 }:
@@ -20,6 +20,15 @@ mkDerivation rec {
     qtbase qtsvg
   ];
 
+  patches = [
+    # Allow building with glib 2.68
+    # PR at https://github.com/sigrokproject/pulseview/pull/39
+    (fetchpatch {
+      url = "https://github.com/sigrokproject/pulseview/commit/fb89dd11f2a4a08b73c498869789e38677181a8d.patch";
+      sha256 = "07ifsis9jlc0jjp2d11f7hvw9kaxcbk0a57h2m4xsv1d7vzl9yfh";
+    })
+  ];
+
   meta = with lib; {
     description = "Qt-based LA/scope/MSO GUI for sigrok (a signal analysis software suite)";
     homepage = "https://sigrok.org/";
diff --git a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
index 5871ad01d91c..5377a7b3d118 100644
--- a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "verilator";
-  version = "4.110";
+  version = "4.202";
 
   src = fetchurl {
-    url    = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
-    sha256 = "sha256-Rxb+AFhmGinWtZyvjnRxsu3b3tbtRO3njcHGUJTs/sw=";
+    url = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
+    sha256 = "0ydn4304pminzq8zc1hsrb2fjrfqnb6akr45ky43jd29c4jgznnq";
   };
 
   enableParallelBuilding = true;
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Fast and robust (System)Verilog simulator/compiler";
     homepage    = "https://www.veripool.org/wiki/verilator";
-    license     = licenses.lgpl3;
+    license     = with licenses; [ lgpl3Only artistic2 ];
     platforms   = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice ];
   };
diff --git a/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix b/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
index 1cf08741206c..1de21e09f806 100644
--- a/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ dune_2 ] ++ (with ocamlPackages; [
-    ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir mtime yojson
+    ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir menhirLib mtime yojson
   ]);
 
   buildPhase = "dune build --profile=release";
diff --git a/nixpkgs/pkgs/applications/science/logic/coq/default.nix b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
index 20a17b11221a..9d6212fef112 100644
--- a/nixpkgs/pkgs/applications/science/logic/coq/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
@@ -9,7 +9,7 @@
 , customOCamlPackages ? null
 , ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ncurses
 , buildIde ? true
-, glib, gnome3, wrapGAppsHook
+, glib, gnome, wrapGAppsHook
 , csdp ? null
 , version, coq-version ? null,
 }@args:
@@ -128,7 +128,7 @@ self = stdenv.mkDerivation {
   buildInputs = [ ncurses ] ++ ocamlBuildInputs
     ++ optionals buildIde
       (if versionAtLeast "8.10"
-       then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.adwaita-icon-theme wrapGAppsHook ]
+       then [ ocamlPackages.lablgtk3-sourceview3 glib gnome.adwaita-icon-theme wrapGAppsHook ]
        else [ ocamlPackages.lablgtk ]);
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix b/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix
index 46f2ebd775bf..393b84640805 100644
--- a/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix
@@ -1,20 +1,17 @@
-{ lib, stdenv, fetchgit, ocaml }:
+{ lib, stdenv, fetchFromGitHub, ocaml }:
 
-let
-  version = "20170720";
-in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation  rec {
   pname = "coq2html";
-  inherit version;
+  version = "1.2";
 
-  src = fetchgit {
-    url = "https://github.com/xavierleroy/coq2html";
-    rev = "e2b94093c6b9a877717f181765e30577de22439e";
-    sha256 = "1x466j0pyjggyz0870pdllv9f5vpnfrgkd0w7ajvm9rkwyp3f610";
+  src = fetchFromGitHub {
+    owner = "xavierleroy";
+    repo = "coq2html";
+    rev = "v${version}";
+    sha256 = "sha256-ty/6A3wivjDCrmlZAcZyaIwQQ+vPBJm9MhtW6nZcV3s=";
   };
 
-  buildInputs = [ ocaml ];
+  nativeBuildInputs = [ ocaml ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -32,8 +29,8 @@ stdenv.mkDerivation {
       "Proof" keyword.
     '';
     homepage = "https://github.com/xavierleroy/coq2html";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ jwiegley ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ jwiegley siraben ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/elan/default.nix b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
index fab930e2c7b8..d20be86daf0b 100644
--- a/nixpkgs/pkgs/applications/science/logic/elan/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl
-, openssl, gmp, zlib, fetchFromGitHub, rustPlatform }:
+, openssl, gmp, zlib, fetchFromGitHub, rustPlatform, libiconv }:
 
 let
   libPath = lib.makeLibraryPath [ gmp ];
@@ -7,21 +7,22 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "elan";
-  version = "0.11.0";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
-    owner = "kha";
+    owner = "leanprover";
     repo = "elan";
     rev = "v${version}";
-    sha256 = "1sl69ygdwhf80sx6m76x5gp1kwsw0rr1lv814cgzm8hvyr6g0jqa";
+    sha256 = "sha256-nK4wvxK5Ne1+4kaMts6pIr5FvXBgXJsGdn68gGEZUdk=";
   };
 
-  cargoSha256 = "1f881maf8jizd5ip7pc1ncbiq7lpggp0byma13pvqk7gisnqyr4r";
+  cargoSha256 = "sha256-ptSbpq1ePNWmdBGfKtqFGfkdimDjU0YEo4F8VPtQMt4=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
   OPENSSL_NO_VENDOR = 1;
-  buildInputs = [ curl zlib openssl ];
+  buildInputs = [ curl zlib openssl ]
+    ++ lib.optional stdenv.isDarwin libiconv;
 
   cargoBuildFlags = [ "--features no-self-update" ];
 
@@ -61,7 +62,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Small tool to manage your installations of the Lean theorem prover";
-    homepage = "https://github.com/Kha/elan";
+    homepage = "https://github.com/leanprover/elan";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ gebner ];
   };
diff --git a/nixpkgs/pkgs/applications/science/logic/key/default.nix b/nixpkgs/pkgs/applications/science/logic/key/default.nix
index 531081beafaf..e9b0cc7540b5 100644
--- a/nixpkgs/pkgs/applications/science/logic/key/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/key/default.nix
@@ -5,7 +5,7 @@
 , ant
 , jre
 , makeWrapper
-, runCommand
+, testVersion
 , key
 }:
 
@@ -51,10 +51,13 @@ in stdenv.mkDerivation rec {
       --add-flags "-cp $out/share/java/KeY.jar de.uka.ilkd.key.core.Main"
   '';
 
-  passthru.tests.check-version = runCommand "key-help" {} ''
-    ${key}/bin/KeY --help | grep 2.5 # Wrong version in the code. On next version change to ${version}
-    touch $out
-  '';
+  passthru.tests.version =
+    testVersion {
+      package = key;
+      command = "KeY --help";
+      # Wrong '2.5' version in the code. On next version change to ${version}
+      version = "2.5";
+    };
 
   meta = with lib; {
     description = "Java formal verification tool";
diff --git a/nixpkgs/pkgs/applications/science/logic/lean/default.nix b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
index b57ee0f61f13..214f4e218fd3 100644
--- a/nixpkgs/pkgs/applications/science/logic/lean/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
@@ -2,13 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.28.0";
+  version = "3.30.0";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
-    rev    = "v${version}";
-    sha256 = "sha256-IzoFE92F559WeSUCiYZ/fx2hrsyRzgOACr3/pzJ4OOY=";
+    # lean's version string contains the commit sha1 it was built
+    # from. this is then used to check whether an olean file should be
+    # rebuilt. don't use a tag as rev because this will get replaced into
+    # src/githash.h.in in preConfigure.
+    rev    = "a5822ea47ebc52eec6323d8f1b60f6ec025daf99";
+    sha256 = "sha256-gJhbkl19iilNyfCt2TfPmghYA3yCjg6kS+yk/x/k14Y=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -20,6 +24,13 @@ stdenv.mkDerivation rec {
   # library.
   doCheck = true;
 
+  preConfigure = assert builtins.stringLength src.rev == 40; ''
+     substituteInPlace src/githash.h.in \
+       --subst-var-by GIT_SHA1 "${src.rev}"
+     substituteInPlace library/init/version.lean.in \
+       --subst-var-by GIT_SHA1 "${src.rev}"
+  '';
+
   postPatch = "patchShebangs .";
 
   postInstall = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix b/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix
index 38039f61fda6..e28137dde75b 100644
--- a/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/petrinizer/default.nix
@@ -1,12 +1,8 @@
-{ mkDerivation, callPackage, buildPackages
+{ mkDerivation
 , async, base, bytestring, containers, fetchFromGitLab, mtl
-, parallel-io, parsec, lib, stm, transformers
+, parallel-io, parsec, lib, stm, transformers, sbv_7_13, z3
 }:
-let
-  z3 = callPackage ./z3.nix { gomp = null; z3 = buildPackages.z3; };
-in let
-  sbv = callPackage ./sbv-7.13.nix { inherit z3; };
-in
+
 mkDerivation rec {
   pname = "petrinizer";
   version = "0.9.1.1";
@@ -22,10 +18,11 @@ mkDerivation rec {
   isLibrary = false;
   isExecutable = true;
   executableHaskellDepends = [
-    async base bytestring containers mtl parallel-io parsec sbv stm
+    async base bytestring containers mtl parallel-io parsec sbv_7_13 stm
     transformers
   ];
   description = "Safety and Liveness Analysis of Petri Nets with SMT solvers";
   license = lib.licenses.gpl3;
   maintainers = with lib.maintainers; [ raskin ];
+  inherit (sbv_7_13.meta) platforms;
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix b/nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix
deleted file mode 100644
index f0c8dd249048..000000000000
--- a/nixpkgs/pkgs/applications/science/logic/petrinizer/sbv-7.13.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ mkDerivation, array, async, base, bytestring, containers
-, crackNum, deepseq, directory, doctest, filepath, generic-deriving
-, ghc, Glob, hlint, mtl, pretty, process, QuickCheck, random
-, lib, syb, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
-, template-haskell, time, z3
-}:
-mkDerivation {
-  pname = "sbv";
-  version = "7.13";
-  sha256 = "0bk400swnb4s98c5p71ml1px6jndaiqhf5dj7zmnliyplqcgpfik";
-  enableSeparateDataOutput = true;
-  libraryHaskellDepends = [
-    array async base containers crackNum deepseq directory filepath
-    generic-deriving ghc mtl pretty process QuickCheck random syb
-    template-haskell time
-  ];
-  testHaskellDepends = [
-    base bytestring containers crackNum directory doctest filepath Glob
-    hlint mtl QuickCheck random syb tasty tasty-golden tasty-hunit
-    tasty-quickcheck template-haskell
-  ];
-  testSystemDepends = [ z3 ];
-  homepage = "http://leventerkok.github.com/sbv/";
-  description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
-  license = lib.licenses.bsd3;
-}
diff --git a/nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix b/nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix
deleted file mode 100644
index a20ccea16dc7..000000000000
--- a/nixpkgs/pkgs/applications/science/logic/petrinizer/z3.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ mkDerivation, fetchpatch
-, base, containers, gomp, hspec, QuickCheck, lib
-, transformers, z3
-}:
-mkDerivation {
-  pname = "z3";
-  version = "408.0";
-  sha256 = "13qkzy9wc17rm60i24fa9sx15ywbxq4a80g33w20887gvqyc0q53";
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [ base containers transformers ];
-  librarySystemDepends = [ gomp z3 ];
-  testHaskellDepends = [ base hspec QuickCheck ];
-  homepage = "https://github.com/IagoAbal/haskell-z3";
-  description = "Bindings for the Z3 Theorem Prover";
-  license = lib.licenses.bsd3;
-  doCheck = false;
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/IagoAbal/haskell-z3/commit/b10e09b8a809fb5bbbb1ef86aeb62109ece99cae.patch";
-      sha256 = "13fnrs27mg3985r3lwks8fxfxr5inrayy2cyx2867d92pnl3yry4";
-    })
-  ];
-}
diff --git a/nixpkgs/pkgs/applications/science/logic/poly/default.nix b/nixpkgs/pkgs/applications/science/logic/poly/default.nix
index 15e89138c6b3..75ad91bc54de 100644
--- a/nixpkgs/pkgs/applications/science/logic/poly/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/poly/default.nix
@@ -2,16 +2,23 @@
 
 stdenv.mkDerivation rec {
   pname = "libpoly";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "SRI-CSL";
     repo = "libpoly";
     # they've pushed to the release branch, use explicit tag
     rev = "refs/tags/v${version}";
-    sha256 = "1n3gijksnl2ybznq4lkwm2428f82423sxq18gnb2g1kiwqlzdaa3";
+    sha256 = "sha256-E2lHo8Bt4ujoGQ623fjkQbqRnDYJYilXdRt4lnF4wJk=";
   };
 
+  # https://github.com/SRI-CSL/libpoly/pull/52
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace src/CMakeLists.txt --replace \
+      '"utils/open_memstream.c ''${poly_SOURCES}"' \
+      'utils/open_memstream.c ''${poly_SOURCES}'
+  '';
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ gmp python3 ];
diff --git a/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix
index d217e2b9b505..a77f2dbac442 100644
--- a/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -92,4 +92,8 @@ mkDerivation (common "tamarin-prover" src // {
           tamarin-prover-term
           tamarin-prover-theory
         ];
+
+  # tamarin-prover 1.6 is incompatible with maude 3.1.
+  hydraPlatforms = lib.platforms.none;
+  broken = true;
 })
diff --git a/nixpkgs/pkgs/applications/science/logic/why3/default.nix b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
index deb40c742847..c56e5445f0be 100644
--- a/nixpkgs/pkgs/applications/science/logic/why3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = with ocamlPackages; [
-    ocaml findlib ocamlgraph zarith menhir
+    ocaml findlib ocamlgraph zarith menhir menhirLib
     # Compressed Sessions
     # Emacs compilation of why3.el
     emacs
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
index f2468572101e..0dd9a19c95c8 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1lvwv238p8hrl4sc5pmnvaargl2dd25p44gxl3kibq5ng03afd0n";
   };
 
-  cargoSha256 = "1ibn22v24brdlrar6j7fryiwimbbw7byak265hrw7a5agf1799x0";
+  cargoSha256 = "0lhcazcih48gc23q484h344bzz7p3lh189ljhswdyph2i11caarp";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
index d976431e5549..6655b415d2ab 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0gxcjrhfa86kz5qmdf5h278ydc3nc0nfj61brnykb723mg45jj41";
   };
 
-  cargoSha256 = "03p786hh54zql61vhmsqcdgvz23v2rm12cgwf7clfmk6a6yj6ibx";
+  cargoSha256 = "0dj3xpinzzdfgy06wkp336sp1nyqk7nnvd3hwhyysripmz9apdgg";
 
   # Enables build against a generic BLAS.
   cargoBuildFlags = [
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
index 50d0aa6f9d1d..620ccfb084ef 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -15,7 +15,7 @@
     propagatedBuildInputs = with python3Packages; [
       pyqt5
       lxml
-      sip
+      sip_4
     ];
     preBuild = ''
       make qt5py3
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/starspace/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/starspace/default.nix
index b511b4ea42e2..d5a6cb796a71 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/starspace/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/starspace/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ boost165 ];
 
+  makeFlags = [
+    "CXX=${stdenv.cc.targetPrefix}c++"
+    "BOOST_DIR=${boost165.dev}/include"
+  ];
+
   installPhase = ''
     mkdir -p $out/bin
     mv starspace $out/bin
diff --git a/nixpkgs/pkgs/applications/science/math/R/default.nix b/nixpkgs/pkgs/applications/science/math/R/default.nix
index 331faa6b1479..827c817fd1a6 100644
--- a/nixpkgs/pkgs/applications/science/math/R/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/R/default.nix
@@ -67,9 +67,10 @@ stdenv.mkDerivation rec {
       R_SHELL="${stdenv.shell}"
   '' + lib.optionalString stdenv.isDarwin ''
       --disable-R-framework
+      --without-x
       OBJC="clang"
-      CPPFLAGS="-isystem ${libcxx}/include/c++/v1"
-      LDFLAGS="-L${libcxx}/lib"
+      CPPFLAGS="-isystem ${lib.getDev libcxx}/include/c++/v1"
+      LDFLAGS="-L${lib.getLib libcxx}/lib"
   '' + ''
     )
     echo >>etc/Renviron.in "TCLLIBPATH=${tk}/lib"
diff --git a/nixpkgs/pkgs/applications/science/math/bcal/default.nix b/nixpkgs/pkgs/applications/science/math/bcal/default.nix
index 8cbf90a7187c..1494b5324872 100644
--- a/nixpkgs/pkgs/applications/science/math/bcal/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/bcal/default.nix
@@ -1,6 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, python3Packages, readline, bc }:
-
-with lib;
+{ lib
+, stdenv
+, fetchFromGitHub
+, readline
+, bc
+, python3Packages
+}:
 
 stdenv.mkDerivation rec {
   pname = "bcal";
@@ -13,23 +17,21 @@ stdenv.mkDerivation rec {
     sha256 = "4vR5rcbNkoEdSRNoMH9qMHP3iWFxejkVfXNiYfwbo/A=";
   };
 
-  nativeBuildInputs = [ python3Packages.pytest ];
-
   buildInputs = [ readline ];
 
+  installFlags = [ "PREFIX=$(out)" ];
+
   doCheck = true;
-  checkInputs = [ bc ];
-  checkPhase = ''
-    python3 -m pytest test.py
-  '';
 
-  installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+  checkInputs = [ bc python3Packages.pytestCheckHook ];
+
+  pytestFlagsArray = [ "test.py" ];
 
-  meta = {
+  meta = with lib; {
     description = "Storage conversion and expression calculator";
     homepage = "https://github.com/jarun/bcal";
     license = licenses.gpl3Only;
-    platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ jfrankenau ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/math/cntk/default.nix b/nixpkgs/pkgs/applications/science/math/cntk/default.nix
index e15e2a43d774..c007490c94d0 100644
--- a/nixpkgs/pkgs/applications/science/math/cntk/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/cntk/default.nix
@@ -33,6 +33,9 @@ in stdenv.mkDerivation rec {
   # Force OpenMPI to use g++ in PATH.
   OMPI_CXX = "g++";
 
+  # Uses some deprecated tensorflow functions
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
   buildInputs = [ openblas opencv3 libzip boost protobuf mpi ]
              ++ lib.optional cudaSupport cudatoolkit
              ++ lib.optional cudnnSupport cudnn;
@@ -40,7 +43,7 @@ in stdenv.mkDerivation rec {
   configureFlags = [
     "--with-opencv=${opencv3}"
     "--with-libzip=${libzip.dev}"
-    "--with-openblas=${openblas}"
+    "--with-openblas=${openblas.dev}"
     "--with-boost=${boost.dev}"
     "--with-protobuf=${protobuf}"
     "--with-mpi=${mpi}"
diff --git a/nixpkgs/pkgs/applications/science/math/eukleides/default.nix b/nixpkgs/pkgs/applications/science/math/eukleides/default.nix
index 5f7fe58465d0..b5a9fc3fa86d 100644
--- a/nixpkgs/pkgs/applications/science/math/eukleides/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/eukleides/default.nix
@@ -1,26 +1,57 @@
-{ lib, stdenv, fetchurl, bison, flex, texinfo, readline, texLive }:
+{ lib, stdenv, fetchurl, bison, flex, makeWrapper, texinfo, readline, texLive }:
 
-let
-  name    = "eukleides";
+lib.fix (eukleides: stdenv.mkDerivation rec {
+  pname = "eukleides";
   version = "1.5.4";
-in
-stdenv.mkDerivation {
-  name = "${name}-${version}";
 
   src = fetchurl {
-    url = "http://www.eukleides.org/files/${name}-${version}.tar.bz2";
+    url = "http://www.eukleides.org/files/${pname}-${version}.tar.bz2";
     sha256 = "0s8cyh75hdj89v6kpm3z24i48yzpkr8qf0cwxbs9ijxj1i38ki0q";
   };
 
-  buildInputs = [bison flex texinfo readline texLive];
+  # use $CC instead of hardcoded gcc
+  patches = [ ./use-CC.patch ];
 
-  preConfigure = "sed -i 's/ginstall-info/install-info/g' doc/Makefile";
-  installPhase = "mkdir -p $out/bin ; make PREFIX=$out install";
+  nativeBuildInputs = [ bison flex texinfo makeWrapper ];
+
+  buildInputs = [ readline texLive ];
+
+  preConfigure = ''
+    substituteInPlace Makefile \
+      --replace mktexlsr true
+
+    substituteInPlace doc/Makefile \
+      --replace ginstall-info install-info
+
+    substituteInPlace Config \
+      --replace '/usr/local' "$out" \
+      --replace '$(SHARE_DIR)/texmf' "$tex"
+  '';
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/euktoeps \
+      --set-default TEXINPUTS : \
+      --prefix TEXINPUTS : "$tex/tex/latex/eukleides" \
+      --prefix PATH : "${texLive}/bin"
+    wrapProgram $out/bin/euktopdf \
+      --set-default TEXINPUTS : \
+      --prefix TEXINPUTS : "$tex/tex/latex/eukleides" \
+      --prefix PATH : "${texLive}/bin"
+  '';
+
+  outputs = [ "out" "doc" "tex" ];
+
+  passthru.tlType = "run";
+  passthru.pkgs = [ eukleides.tex ];
 
   meta = {
     description = "Geometry Drawing Language";
     homepage = "http://www.eukleides.org/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl3Plus;
 
     longDescription = ''
       Eukleides is a computer language devoted to elementary plane
@@ -31,7 +62,7 @@ stdenv.mkDerivation {
       circles and conics.
     '';
 
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.peti ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/science/math/eukleides/use-CC.patch b/nixpkgs/pkgs/applications/science/math/eukleides/use-CC.patch
new file mode 100644
index 000000000000..08bd71ec9dc5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/eukleides/use-CC.patch
@@ -0,0 +1,11 @@
+--- a/build/Makefile
++++ b/build/Makefile
+@@ -11,7 +11,7 @@ LEX = flex
+ LFLAGS = -8
+ YACC = bison
+ YFLAGS = -d
+-CC = gcc
++CC ?= gcc
+ IFLAGS = -I$(COMMON_DIR) -I$(MAIN_DIR) -I$(BUILD_DIR) 
+ ifneq ($(strip $(LOCALES)),)
+ MOFLAGS = -DMO_DIR=\"$(MO_DIR)\" 
diff --git a/nixpkgs/pkgs/applications/science/math/gap/default.nix b/nixpkgs/pkgs/applications/science/math/gap/default.nix
index 3b3d8a58b569..c309423f142a 100644
--- a/nixpkgs/pkgs/applications/science/math/gap/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gap/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , makeWrapper
 , readline
 , gmp
@@ -35,7 +34,7 @@ let
     "autpgrp-*"
     "alnuth-*"
     "crisp-*"
-    "ctbllib"
+    "ctbllib-*"
     "FactInt-*"
     "fga"
     "irredsol-*"
@@ -62,11 +61,11 @@ in
 stdenv.mkDerivation rec {
   pname = "gap";
   # https://www.gap-system.org/Releases/
-  version = "4.11.0";
+  version = "4.11.1";
 
   src = fetchurl {
-    url = "https://files.gap-system.org/gap-${lib.versions.major version}.${lib.versions.minor version}/tar.bz2/gap-${version}.tar.bz2";
-    sha256 = "sha256-vwcKENwqxgWT/mXfD4c9ctTWdQHobrJipva9SPyGhgI=";
+    url = "https://github.com/gap-system/gap/releases/download/v${version}/gap-${version}.tar.gz";
+    sha256 = "sha256-ZjXF2n2CdV+DOUhrnKwzdm9YcS8pfoI0+6QIGJAuowQ=";
   };
 
   # remove all non-essential packages (which take up a lot of space)
@@ -84,23 +83,6 @@ stdenv.mkDerivation rec {
     makeWrapper
   ];
 
-  patches = [
-    # Fix for locale specific tests causing issues. Already upstream.
-    # Backport of https://github.com/gap-system/gap/pull/4022
-    (fetchpatch {
-      name = "remove-locale-specific-tests.patch";
-      url = "https://github.com/gap-system/gap/commit/c18b0c4215b5212a2cc4f305e2d5b94ba716bee8.patch";
-      sha256 = "sha256-De+T9Y7ewRT6plJrj2VR8axRvD/JCTYKOBWB7Bw0oq0=";
-    })
-
-    # fixes aarch64 gc crashes: https://github.com/gap-system/gap/pull/3965
-    (fetchpatch {
-      name = "mark-genstackfuncbags-as-noinline.patch";
-      url = "https://github.com/gap-system/gap/commit/f0a8f49ff8dad0a5fa77253d45457c6f40f96778.patch";
-      sha256 = "sha256-GU9tOP1stX2vn8m8kXOBupEpxIYArA76ibKL8eLn0MY=";
-    })
-  ];
-
   # "teststandard" is a superset of testinstall. It takes ~1h instead of ~1min.
   # tests are run twice, once with all packages loaded and once without
   # checkTarget = "teststandard";
diff --git a/nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch b/nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch
deleted file mode 100644
index 3a2f7231c091..000000000000
--- a/nixpkgs/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/gasman.c b/src/gasman.c
-index 417811401..314a74190 100644
---- a/src/gasman.c
-+++ b/src/gasman.c
-@@ -1861,7 +1861,7 @@ void SparcStackFuncBags( void )
- #endif
- 
- 
--void GenStackFuncBags ( void )
-+NOINLINE void GenStackFuncBags ( void )
- {
-     Bag *               top;            /* top of stack                    */
-     Bag *               p;              /* loop variable                   */
diff --git a/nixpkgs/pkgs/applications/science/math/geogebra/default.nix b/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
index fa2724469b66..eb98b3ad20c5 100644
--- a/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeDesktopItem, makeWrapper, unzip, language ? "en_US" }:
 let
   pname = "geogebra";
-  version = "5-0-620-0";
+  version = "5-0-644-0";
 
   srcIcon = fetchurl {
     url = "http://static.geogebra.org/images/geogebra-logo.svg";
@@ -41,9 +41,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
-        "http://web.archive.org/web/20210101213140/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
+        "https://web.archive.org/web/20210604132513/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
       ];
-      sha256 = "0v4r76b91cj0pns78gh3d432g2jlq2pz37lslg3fnnpvlfh25s9j";
+      sha256 = "dd992654175812d8770d94f063fc1430a743e8e0efcae03f51bf9a3a073c2522";
     };
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix b/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
index 20708004158b..8163fe5478fa 100644
--- a/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
 let
   pname = "geogebra";
-  version = "6-0-631-0";
+  version = "6-0-644-0";
 
   srcIcon = geogebra.srcIcon;
   desktopItem = geogebra.desktopItem;
@@ -18,9 +18,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
-        "https://web.archive.org/web/20210406083122/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20210604132845/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
       ];
-      sha256 = "1k4jxcvxxjxfrdghs4a29zpp4yid2vh1mfgp8xxr3qlzxnqv92ha";
+      sha256 = "bbe9e1a35abacfd560c0b7aa1ab975853e6adac08608bb70cd80261179e3f922";
     };
 
     dontConfigure = true;
diff --git a/nixpkgs/pkgs/applications/science/math/glsurf/default.nix b/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
index 599d4bac8e76..208bb95f930e 100644
--- a/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, ocamlPackages, libGLU, libGL, freeglut
-, libmysqlclient, mpfr, gmp, libtiff, libjpeg, libpng, giflib
+{ lib, stdenv, fetchurl, ocamlPackages, libGLU, libGL, freeglut, giflib
+, libmysqlclient, mpfr, gmp, libtiff, libjpeg, libpng
 }:
 
 stdenv.mkDerivation {
@@ -10,10 +10,10 @@ stdenv.mkDerivation {
     sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
   };
 
-  buildInputs = [ freeglut libGLU libGL libmysqlclient mpfr gmp
-    libtiff libjpeg libpng giflib ]
+  buildInputs = [ freeglut libGLU libGL libmysqlclient mpfr giflib gmp
+    libtiff libjpeg libpng ]
   ++ (with ocamlPackages; [
-    ocaml findlib ocaml_mysql lablgl camlimages_4_0 mlgmpidl
+    ocaml findlib ocaml_mysql lablgl camlimages_4_1_2 mlgmpidl
   ]);
 
   installPhase = ''
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://raffalli.eu/~christophe/glsurf/";
     description = "A program to draw implicit surfaces and curves";
-    license = lib.licenses.lgpl21;
+    license = lib.licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
index c0d91a284458..84f7ca72a3c8 100644
--- a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.8.1";
+  version = "4.8.4";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "sha256-1QOPXyWuhZc1NvsFzIhv6xvX1n4mBanYeJvMJSj6izU=";
+    sha256 = "sha256-dg29wHLqo8gtBmxbo7BurN0zBOsqlzc/5K2pUJ8Las4=";
   };
 
   buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
diff --git a/nixpkgs/pkgs/applications/science/math/gretl/default.nix b/nixpkgs/pkgs/applications/science/math/gretl/default.nix
index cc9fe7c4d2ce..450021925bde 100644
--- a/nixpkgs/pkgs/applications/science/math/gretl/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gretl/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gretl";
-  version = "2021a";
+  version = "2021b";
 
   src = fetchurl {
     url = "mirror://sourceforge/gretl/${pname}-${version}.tar.xz";
-    sha256 = "sha256-BDaTv6PORiBnsEaU7uXJIKuxTqIgpY44vUmSViyME0A=";
+    sha256 = "sha256-3KSAA0UPx3cqMXf/G5nrlCfLjWcDiGtzvJe/syRyE6c=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/math/mathematica/10.nix b/nixpkgs/pkgs/applications/science/math/mathematica/10.nix
index 9a8f05bc575f..6fed10da18bc 100644
--- a/nixpkgs/pkgs/applications/science/math/mathematica/10.nix
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/10.nix
@@ -2,7 +2,7 @@
 , coreutils
 , patchelf
 , requireFile
-, alsaLib
+, alsa-lib
 , fontconfig
 , freetype
 , gcc
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     coreutils
     patchelf
-    alsaLib
+    alsa-lib
     coreutils
     fontconfig
     freetype
diff --git a/nixpkgs/pkgs/applications/science/math/mathematica/11.nix b/nixpkgs/pkgs/applications/science/math/mathematica/11.nix
index b8270cca9085..f6f0046d2725 100644
--- a/nixpkgs/pkgs/applications/science/math/mathematica/11.nix
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/11.nix
@@ -3,7 +3,7 @@
 , patchelf
 , requireFile
 , callPackage
-, alsaLib
+, alsa-lib
 , dbus
 , fontconfig
 , freetype
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     coreutils
     patchelf
-    alsaLib
+    alsa-lib
     coreutils
     dbus
     fontconfig
diff --git a/nixpkgs/pkgs/applications/science/math/mathematica/9.nix b/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
index 43d7853e3d9a..88db3c4b2e92 100644
--- a/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
@@ -2,7 +2,7 @@
 , coreutils
 , patchelf
 , requireFile
-, alsaLib
+, alsa-lib
 , fontconfig
 , freetype
 , gcc
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     coreutils
     patchelf
-    alsaLib
+    alsa-lib
     coreutils
     fontconfig
     freetype
diff --git a/nixpkgs/pkgs/applications/science/math/mathematica/default.nix b/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
index 497592f1c068..10301f062e57 100644
--- a/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
@@ -4,7 +4,7 @@
 , requireFile
 , callPackage
 , makeWrapper
-, alsaLib
+, alsa-lib
 , dbus
 , fontconfig
 , freetype
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     coreutils
     patchelf
     makeWrapper
-    alsaLib
+    alsa-lib
     coreutils
     dbus
     fontconfig
diff --git a/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix b/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
index 896983ce1563..d9f6a0c74e82 100644
--- a/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -8,10 +8,10 @@ let allVersions = with lib; flip map
   # N.B. Versions in this list should be ordered from newest to oldest.
   [
     {
-      version = "12.2.0";
+      version = "12.3.0";
       lang = "en";
       language = "English";
-      sha256 = "3b6676a203c6adb7e9c418a5484b037974287b5be09c64e7dfea74ddc0e400d7";
+      sha256 = "045df045f6e796ded59f64eb2e0f1949ac88dcba1d5b6e05fb53ea0a4aed7215";
     }
     {
       version = "11.3.0";
diff --git a/nixpkgs/pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch b/nixpkgs/pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch
new file mode 100644
index 000000000000..0bc29b9aab5f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch
@@ -0,0 +1,12 @@
+diff --git a/ion/src/simulator/linux/Makefile b/ion/src/simulator/linux/Makefile
+index ca7da03fa..b05bba115 100644
+--- a/ion/src/simulator/linux/Makefile
++++ b/ion/src/simulator/linux/Makefile
+@@ -28,7 +28,6 @@ ion_src += $(addprefix ion/src/simulator/shared/, \
+   collect_registers.cpp \
+   haptics.cpp \
+   journal.cpp \
+-  platform_action_modifier_ctrl.cpp \
+   state_file.cpp \
+ )
+ 
diff --git a/nixpkgs/pkgs/applications/science/math/numworks-epsilon/default.nix b/nixpkgs/pkgs/applications/science/math/numworks-epsilon/default.nix
new file mode 100644
index 000000000000..a90ebc67b65b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/numworks-epsilon/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, libpng
+, libjpeg
+, freetype
+, xorg
+, python3
+, imagemagick
+, gcc-arm-embedded
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "numworks-epsilon";
+  version = "15.5.0";
+
+  src = fetchFromGitHub {
+    owner = "numworks";
+    repo = "epsilon";
+    rev = version;
+    sha256 = "fPBO3FzZ4k5OxG+Ifc6R/au4Te974HNKAEdHz+aFdSg=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    libpng
+    libjpeg
+    freetype
+    xorg.libXext
+    python3
+    imagemagick
+    gcc-arm-embedded
+  ];
+
+  makeFlags = [
+    "PLATFORM=simulator"
+  ];
+
+  patches = [
+    # Remove make rule Introduced in cba596dde7
+    # which causes it to not build with nix
+    ./0001-ion-linux-makerules.patch
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mv ./output/release/simulator/linux/{epsilon.bin,epsilon}
+    mkdir -p $out/bin
+    cp -r ./output/release/simulator/linux/* $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Simulator for Epsilon, a High-performance graphing calculator operating system";
+    homepage = "https://numworks.com/";
+    license = licenses.cc-by-nc-sa-40;
+    maintainers = with maintainers; [ erikbackman ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/pari/default.nix b/nixpkgs/pkgs/applications/science/math/pari/default.nix
index a99cbbbe0dfd..fc1a2e0abf8c 100644
--- a/nixpkgs/pkgs/applications/science/math/pari/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/pari/default.nix
@@ -12,14 +12,23 @@ assert withThread -> libpthreadstubs != null;
 
 stdenv.mkDerivation rec {
   pname = "pari";
-  version = "2.11.4";
+  version = "2.13.1";
 
   src = fetchurl {
-    # Versions with current majorMinor values are at http://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz
-    url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-v8iPxPc1L0hA5uNSxy8DacvqikVAOxg0piafNwmXCxw=";
+    urls = [
+      "https://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz"
+      # old versions are at the url below
+      "https://pari.math.u-bordeaux.fr/pub/pari/OLD/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz"
+    ];
+    sha256 = "sha256-gez31wzNquIwFlz/Ynyc4uwpe48i+fQHQiedhfht/LE=";
   };
 
+  patches = [
+    # rebased version of 3edb98db78, see
+    # https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2284
+    ./rnfdisc.patch
+  ];
+
   buildInputs = [
     gmp
     readline
diff --git a/nixpkgs/pkgs/applications/science/math/pari/rnfdisc.patch b/nixpkgs/pkgs/applications/science/math/pari/rnfdisc.patch
new file mode 100644
index 000000000000..6acac96481d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/pari/rnfdisc.patch
@@ -0,0 +1,51 @@
+commit 0d8a3ac970291c62b56104172418b3f2ca30927c
+Author: Bill Allombert <Bill.Allombert@math.u-bordeaux.fr>
+Date:   Sun Mar 28 13:27:24 2021 +0200
+
+    rnfdisc_factored: remove spurious Q_primpart [#2284]
+
+diff --git a/src/basemath/base2.c b/src/basemath/base2.c
+index 7e7d0db9d..c461826f4 100644
+--- a/src/basemath/base2.c
++++ b/src/basemath/base2.c
+@@ -3582,7 +3582,7 @@ rnfdisc_factored(GEN nf, GEN pol, GEN *pd)
+ 
+   nf = checknf(nf);
+   pol = rnfdisc_get_T(nf, pol, &lim);
+-  disc = nf_to_scalar_or_basis(nf, nfX_disc(nf, Q_primpart(pol)));
++  disc = nf_to_scalar_or_basis(nf, nfX_disc(nf, pol));
+   pol = nfX_to_monic(nf, pol, NULL);
+   fa = idealfactor_partial(nf, disc, lim);
+   P = gel(fa,1); l = lg(P);
+diff --git a/src/test/32/rnf b/src/test/32/rnf
+index 1e743f415..c016dce00 100644
+--- a/src/test/32/rnf
++++ b/src/test/32/rnf
+@@ -853,9 +853,10 @@ error("inconsistent dimensions in idealtwoelt.")
+ 0
+ 0
+ 1
+-[[7361, 3786, 318, 5823; 0, 1, 0, 0; 0, 0, 1, 0; 0, 0, 0, 1], [-3, 6, -2, 0]
+-~]
+-[2, -1]
++[[433, 322, 318, 1318/17; 0, 1, 0, 12/17; 0, 0, 1, 5/17; 0, 0, 0, 1/17], [25
++/17, -12/17, 12/17, 16/17]~]
++[1, -1]
++[[12, 0, 0, 0; 0, 12, 4, 0; 0, 0, 4, 0; 0, 0, 0, 4], [6, 5, -1, 2]~]
+   ***   at top-level: rnfdedekind(nf,P,pr2,1)
+   ***                 ^-----------------------
+   *** rnfdedekind: sorry, Dedekind in the difficult case is not yet implemented.
+diff --git a/src/test/in/rnf b/src/test/in/rnf
+index 7851ae291..318d5349e 100644
+--- a/src/test/in/rnf
++++ b/src/test/in/rnf
+@@ -212,6 +212,9 @@ k = nfinit(y^4 + 10*y^2 + 17);
+ rnfdisc(k, x^2 - x + 1/Mod(y,k.pol))
+ rnfdisc(k, x^2 - x + 1/2)
+ 
++k = nfinit(y^4 - 10*y^2 + 1);
++rnfdisc(k,x^2-(y^3/2+y^2-5*y/2+1))
++
+ \\ ERRORS, keep at end of file
+ rnfdedekind(nf, P, pr2, 1)
+ rnfdedekind(nf, P)
diff --git a/nixpkgs/pkgs/applications/science/math/pynac/default.nix b/nixpkgs/pkgs/applications/science/math/pynac/default.nix
index 9cdcd2b9ea30..54e26cd2ee85 100644
--- a/nixpkgs/pkgs/applications/science/math/pynac/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/pynac/default.nix
@@ -22,23 +22,44 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    (fetchpatch {
-      name = "handle_factor.patch";
-      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/handle_factor.patch?h=9.3.rc3";
-      sha256 = "sha256-U1lb5qwBqZZgklfDMhBX4K5u8bz5x42O4w7hyNy2YVw=";
-    })
+    # the five patches below are included with sage 9.3. since pynac
+    # is a self-described "Sage Math support library", we include them
+    # here.
 
+    # https://trac.sagemath.org/ticket/30688
     (fetchpatch {
       name = "power_inf_loop.patch";
-      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/power_inf_loop.patch?h=9.3.rc3";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/power_inf_loop.patch?h=9.3";
       sha256 = "sha256-VYeaJl8u2wl7FQ/6xnpZv1KpdNYEmJoPhuMrBADyTRs=";
     })
 
+    # https://trac.sagemath.org/ticket/31479
+    (fetchpatch {
+      name = "disable_poly_mul_expand.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/disable_poly_mul_expand.patch?h=9.3";
+      sha256 = "sha256-gRjoltU9Tzj7fjNyE25fY+iyDxERzSTOMigzxFpUqPo=";
+    })
+
+    # https://trac.sagemath.org/ticket/31530
     (fetchpatch {
       name = "too_much_sub.patch";
-      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/too_much_sub.patch?h=9.3.rc3";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/too_much_sub.patch?h=9.3";
       sha256 = "sha256-lw7xSQ/l+rzPu+ghWF4omYF0mKksGGPuuHJTktvbdis=";
     })
+
+    # https://trac.sagemath.org/ticket/31554
+    (fetchpatch {
+      name = "handle_factor.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/handle_factor.patch?h=9.3";
+      sha256 = "sha256-U1lb5qwBqZZgklfDMhBX4K5u8bz5x42O4w7hyNy2YVw=";
+    })
+
+    # https://trac.sagemath.org/ticket/31645
+    (fetchpatch {
+      name = "seriesbug.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/seriesbug.patch?h=9.3";
+      sha256 = "sha256-b3//oirN7JHDYqrvE+tDYcnKpSYQJ08yBzcNlII2Dts=";
+    })
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-3.5-code-output.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-3.5-code-output.patch
new file mode 100644
index 000000000000..f17897d4c89f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/patches/sphinx-3.5-code-output.patch
@@ -0,0 +1,13 @@
+diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py
+index 6bad826a88..f4d7b8651c 100644
+--- a/src/sage/misc/sagedoc.py
++++ b/src/sage/misc/sagedoc.py
+@@ -24,7 +24,7 @@ see :trac:`12849`::
+     ....:     for line in fobj:
+     ....:         if "#sage.symbolic.expression.Expression.numerical_approx" in line:
+     ....:             print(line)
+-    <code class="sig-name descname">numerical_approx</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">prec</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">digits</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">algorithm</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span>...
++    <code class="sig-name descname"><span class="pre">numerical_approx</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">digits</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span>...
+ 
+ Check that sphinx is not imported at Sage start-up::
+ 
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
index 91e855777f0e..57234c660a5a 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
@@ -24,14 +24,14 @@ let
   );
 in
 stdenv.mkDerivation rec {
-  version = "9.3.rc4";
+  version = "9.3";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "sha256-LDY07By2j6JagkgT9zeDJ93+m2/oXXEnDRTDzmR8ftk=";
+    sha256 = "sha256-l9DX8jcDdKA7GJ6xU+nBsmlZxrcZ9ZUAJju621ooBEo=";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
@@ -78,6 +78,34 @@ stdenv.mkDerivation rec {
 
     # ignore a deprecation warning for usage of `cmp` in the attrs library in the doctests
     ./patches/ignore-cmp-deprecation.patch
+
+    # sphinx 3.5 pretty-prints code slightly differently than sphinx
+    # 3.1--3.3. a similar patch is available at the sphinx 4 ticket
+    # (https://trac.sagemath.org/ticket/31696), but sphinx 3.5 uses
+    # <code> tags while sphinx 4 uses <span> tags so we cannot just
+    # import the patch from trac.
+    ./patches/sphinx-3.5-code-output.patch
+
+    # remove use of matplotlib function deprecated in 3.4
+    # https://trac.sagemath.org/ticket/31827
+    (fetchSageDiff {
+      base = "9.3";
+      name = "remove-matplotlib-deprecated-function.patch";
+      rev = "32b2bcaefddc4fa3d2aee6fa690ce1466cbb5948";
+      sha256 = "sha256-SXcUGBMOoE9HpuBzgKC3P6cUmM5MiktXbe/7dVdrfWo=";
+    })
+
+    # https://trac.sagemath.org/ticket/30801. this patch has
+    # positive_review but has not been merged upstream yet, so we
+    # don't use fetchSageDiff because it returns a file that contains
+    # each commit as a separate patch instead of a single diff, and
+    # some commits from the pari update branch are already in 9.3.rc5
+    # (auto-resolvable merge conflicts).
+    (fetchpatch {
+      name = "pari-2.13.1.patch";
+      url = "https://github.com/sagemath/sagetrac-mirror/compare/d6c5cd9be78cc448ee4c54bac93385b1244a234c...10a4531721d2700fd717e2b3a1364508ffd971c3.diff";
+      sha256 = "sha256-zMjRMEReoiTvmt+vvV0Ij1jtyLSLwSXBEVXqgvmq1D4=";
+    })
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix b/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
index 603c1a585c79..d53947d806d1 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
     mv html/en/_static{,.tmp}
     for _dir in `find -name _static` ; do
           rm -r $_dir
-          ln -s /share/doc/sage/html/en/_static $_dir
+          ln -rs html/en/_static $_dir
     done
     mv html/en/_static{.tmp,}
   '';
diff --git a/nixpkgs/pkgs/applications/science/math/singular/default.nix b/nixpkgs/pkgs/applications/science/math/singular/default.nix
index 695af3d17440..df298aab2114 100644
--- a/nixpkgs/pkgs/applications/science/math/singular/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/singular/default.nix
@@ -31,11 +31,9 @@ stdenv.mkDerivation rec {
     owner = "Singular";
     repo = "Singular";
 
-    # 4.2.0p2 is not tagged, but the tarball matches commit
-    # 6f68939ddf612d96e3caaaaa8275f77613ac1da8. the commit below has
-    # two extra fixes.
-    rev = "3cda50c00a849455efa2502e56596955491a353a";
-    sha256 = "sha256-OizPhGE6L2LTOrKfeDdDB6BSdvYkDVXvbbYjV14hnHM=";
+    # 4.2.0p2 is not tagged, but the tarball matches the commit below.
+    rev = "6f68939ddf612d96e3caaaaa8275f77613ac1da8";
+    sha256 = "sha256-BJNzYylzDqD/5YjzjxPRb/c96tYiuGy9Y+A7qf3ZSG8=";
 
     # if a release is tagged it will be in the format below.
     # rev = "Release${lib.replaceStrings ["."] ["-"] version}";
@@ -60,6 +58,13 @@ stdenv.mkDerivation rec {
     # https://github.com/alsa-project/alsa-firmware/issues/3 for a
     # related issue.
     ./use-older-ax-prog-cc-for-build.patch
+
+    # https://github.com/Singular/Singular/issues/1086
+    (fetchpatch {
+      name = "schubert-lib-fails-with-too-many-cpus.patch";
+      url = "https://github.com/Singular/Singular/commit/3cda50c00a849455efa2502e56596955491a353a.patch";
+      sha256 = "sha256-fgYd+2vT32w5Ki8kKx6PfZn2e4QSJcYWOwEFXtc+lSA=";
+    })
   ] ++ lib.optionals enableDocs [
     # singular supports building without 4ti2, bertini, normaliz or
     # topcom just fine, but the docbuilding does not skip manual pages
@@ -67,6 +72,13 @@ stdenv.mkDerivation rec {
     # doc2tex.pl::HandleLib, since it seems to ignore "-exclude"
     # argumens). skip them manually.
     ./disable-docs-for-optional-unpackaged-deps.patch
+
+    # fix some non-ascii characters in doc/decodegb.doc
+    (fetchpatch {
+      name = "decodegb-ascii.patch";
+      url = "https://github.com/Singular/Singular/commit/36966d9009de572ee4dbc487f3e5744098fe91be.patch";
+      sha256 = "sha256-9WcEov/oOQRC584ag6WVHFwY2aCjbM75HWyvZoEwppw=";
+    })
   ];
 
   configureFlags = [
@@ -83,9 +95,6 @@ stdenv.mkDerivation rec {
     substituteInPlace Tst/regress.cmd --replace 'mysystem_catch("hostname")' 'nix_test_runner'
 
     patchShebangs .
-  '' + lib.optionalString enableDocs ''
-    # work around encoding problem
-    sed -i -e 's/\xb7/@cdot{}/g' doc/decodegb.doc
   '';
 
   # For reference (last checked on commit 75f460d):
@@ -149,7 +158,7 @@ stdenv.mkDerivation rec {
 
   # singular tests are a bit complicated, see
   # https://github.com/Singular/Singular/tree/spielwiese/Tst
-  # https://www.singular.uni-kl.de/forum/viewtopic.php&t=2773
+  # https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=2773
   testsToRun = [
     "Old/universal.lst"
     "Buch/buch.lst"
@@ -181,7 +190,7 @@ stdenv.mkDerivation rec {
       2>"$TMPDIR/out-err.log"
 
     # unfortunately regress.cmd always returns exit code 0, so check stderr
-    # https://www.singular.uni-kl.de/forum/viewtopic.php&t=2773
+    # https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=2773
     if [[ -s "$TMPDIR/out-err.log" ]]; then
       cat "$TMPDIR/out-err.log"
       exit 1
diff --git a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
index 25215d7abb56..94e675d7dd44 100644
--- a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , wrapGAppsHook, cmake, gettext
-, maxima, wxGTK, gnome3 }:
+, maxima, wxGTK, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-5nvaaKsvSEs7QxOszjDK1Xkana2er1BCMZ83b1JZSqc=";
   };
 
-  buildInputs = [ wxGTK maxima gnome3.adwaita-icon-theme ];
+  buildInputs = [ wxGTK maxima gnome.adwaita-icon-theme ];
 
   nativeBuildInputs = [ wrapGAppsHook cmake gettext ];
 
diff --git a/nixpkgs/pkgs/applications/science/misc/graphia/default.nix b/nixpkgs/pkgs/applications/science/misc/graphia/default.nix
new file mode 100644
index 000000000000..4b45a3c06fe1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/graphia/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, cmake, fetchFromGitHub
+, wrapQtAppsHook, qtbase, qtquickcontrols2, qtgraphicaleffects
+}:
+
+stdenv.mkDerivation rec {
+  pname = "graphia";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "graphia-app";
+    repo = "graphia";
+    rev = version;
+    sha256 = "sha256:05givvvg743sawqy2vhljkfgn5v1s907sflsnsv11ddx6x51na1w";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+  ];
+  buildInputs = [
+    qtbase
+    qtquickcontrols2
+    qtgraphicaleffects
+  ];
+
+  meta = with lib; {
+    description = "A visualisation tool for the creation and analysis of graphs.";
+    homepage = "https://graphia.app";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.bgamari ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/rink/default.nix b/nixpkgs/pkgs/applications/science/misc/rink/default.nix
index 31ae86787191..fcacaefca442 100644
--- a/nixpkgs/pkgs/applications/science/misc/rink/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/rink/default.nix
@@ -1,20 +1,22 @@
-{ lib, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses
+, libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.6.0";
+  version = "0.6.1";
   pname = "rink";
 
   src = fetchFromGitHub {
     owner = "tiffany352";
     repo = "rink-rs";
     rev = "v${version}";
-    sha256 = "sha256-3uhKevuUVh7AObn2GDW2T+5wttX20SbVP+sFaFj3Jmk=";
+    sha256 = "1h93xlavcjvx588q8wkpbzph88yjjhhvzcfxr5nicdca0jnha5ch";
   };
 
-  cargoSha256 = "sha256-luJzIGdcitH+PNgr86AYX6wKEkQlsRhwwylo+hzeovE=";
+  cargoSha256 = "0x4rvfnw3gl2aj6i006nkk3y1f8skyv8g0ss3z2v6qj9nhs7pyir";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ncurses ];
+  buildInputs = [ ncurses ]
+    ++ (if stdenv.isDarwin then [ libiconv Security ] else [ openssl ]);
 
   # Some tests fail and/or attempt to use internet servers.
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/science/misc/root/default.nix b/nixpkgs/pkgs/applications/science/misc/root/default.nix
index ab5352975f76..b3d0e96a5648 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/root/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, lib, fetchurl, makeWrapper, cmake, ftgl, gl2ps, glew, gsl, llvm_5
-, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, xz, pcre
+{ stdenv, lib, fetchurl, makeWrapper, cmake, git, ftgl, gl2ps, glew, gsl
+, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, xz, pcre, nlohmann_json
 , pkg-config, python, xxHash, zlib, zstd
 , libAfterImage, giflib, libjpeg, libtiff, libpng
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "6.22.08";
+  version = "6.24.00";
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    sha256 = "0vrgi83hrw4n9zgx873fn4ba3vk54slrwk1cl4cc4plgxzv1y1kg";
+    sha256 = "12crjzd7pzx5qpk2pb3z0rhmxlw5gsqaqzfl48qiq8c9l940b8wx";
   };
 
-  nativeBuildInputs = [ makeWrapper cmake pkg-config ];
-  buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 xz gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
+  nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
+  buildInputs = [ ftgl gl2ps glew pcre zlib zstd libxml2 lz4 xz gsl xxHash libAfterImage giflib libjpeg libtiff libpng nlohmann_json python.pkgs.numpy ]
     ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
@@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
     substituteInPlace cmake/modules/SearchInstalledSoftware.cmake \
       --replace 'set(lcgpackages ' '#set(lcgpackages '
 
+    # Don't require textutil on macOS
+    : > cmake/modules/RootCPack.cmake
+
+    # Hardcode path to fix use with cmake
+    sed -i cmake/scripts/ROOTConfig.cmake.in \
+      -e 'iset(nlohmann_json_DIR "${nlohmann_json}/lib/cmake/nlohmann_json/")'
+
     patchShebangs build/unix/
   '' + lib.optionalString noSplash ''
     substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true"
@@ -35,11 +42,13 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-Drpath=ON"
+    "-DCMAKE_CXX_STANDARD=17"
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-Dbuiltin_nlohmannjson=OFF"
+    "-Dbuiltin_openui5=OFF"
     "-Dalien=OFF"
     "-Dbonjour=OFF"
-    "-Dbuiltin_llvm=OFF"
     "-Dcastor=OFF"
     "-Dchirp=OFF"
     "-Dclad=OFF"
@@ -53,6 +62,7 @@ stdenv.mkDerivation rec {
     "-Dgfal=OFF"
     "-Dgviz=OFF"
     "-Dhdfs=OFF"
+    "-Dhttp=ON"
     "-Dkrb5=OFF"
     "-Dldap=OFF"
     "-Dmonalisa=OFF"
@@ -64,9 +74,11 @@ stdenv.mkDerivation rec {
     "-Dpythia6=OFF"
     "-Dpythia8=OFF"
     "-Drfio=OFF"
+    "-Droot7=OFF"
     "-Dsqlite=OFF"
     "-Dssl=OFF"
     "-Dvdt=OFF"
+    "-Dwebgui=OFF"
     "-Dxml=ON"
     "-Dxrootd=OFF"
   ]
diff --git a/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch b/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch
index b2ee1b6a4ceb..836bbb5b17a4 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch
+++ b/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch
@@ -1,8 +1,8 @@
 diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
 --- a/cmake/modules/SetUpMacOS.cmake
 +++ b/cmake/modules/SetUpMacOS.cmake
-@@ -8,17 +8,10 @@ set(ROOT_ARCHITECTURE macosx)
- set(ROOT_PLATFORM macosx)
+@@ -28,17 +28,10 @@ if(CMAKE_VERSION VERSION_LESS 3.14.4)
+ endif()
  
  if (CMAKE_SYSTEM_NAME MATCHES Darwin)
 -  EXECUTE_PROCESS(COMMAND sw_vers "-productVersion"
@@ -19,16 +19,15 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
      #TODO: check haveconfig and rpath -> set rpath true
      #TODO: check Thread, define link command
      #TODO: more stuff check configure script
-@@ -37,23 +30,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+@@ -57,22 +50,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+        SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -m64")
         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
-        SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m64")
 -    else()
--       MESSAGE(STATUS "Found a 32bit system")
 -       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
 -       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
 -       SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m32")
--    endif()
+     endif()
 -  endif()
 -
 -  if(MACOSX_VERSION VERSION_GREATER 10.6)
@@ -40,11 +39,10 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
 -  if(MACOSX_VERSION VERSION_GREATER 10.8)
 -    set(MACOSX_GLU_DEPRECATED ON)
 -  endif()
-+     endif()
  
    if (CMAKE_COMPILER_IS_GNUCXX)
-      message(STATUS "Found GNU compiler collection")
-@@ -115,7 +92,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -W -Wshadow -Wall -Woverloaded-virtual -fsigned-char -fno-common")
+@@ -130,7 +108,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
    endif()
  
    #---Set Linker flags----------------------------------------------------------------------
diff --git a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
index b2afc4701a55..0818ca79622f 100644
--- a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
@@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
     pyyaml
     ratelimiter
     requests
-    smart_open
+    smart-open
     toposort
     wrapt
   ];
diff --git a/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
index 51ce64115ea5..c377d961820e 100644
--- a/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
@@ -12,14 +12,14 @@ let packages = [
 in
 stdenv.mkDerivation rec {
   # LAMMPS has weird versioning converted to ISO 8601 format
-  version = "stable_22Aug2018";
+  version = "stable_29Oct2020";
   pname = "lammps";
 
   src = fetchFromGitHub {
     owner = "lammps";
     repo = "lammps";
     rev = version;
-    sha256 = "1dlifm9wm1jcw2zwal3fnzzl41ng08c7v48w6hx2mz84zljg1nsj";
+    sha256 = "1rmi9r5wj2z49wg43xyhqn9sm37n95cyli3g7vrqk3ww35mmh21q";
   };
 
   passthru = {
@@ -59,8 +59,8 @@ stdenv.mkDerivation rec {
       funding from the DOE. It is an open-source code, distributed freely
       under the terms of the GNU Public License (GPL).
       '';
-    homepage = "http://lammps.sandia.gov";
-    license = licenses.gpl2;
+    homepage = "https://lammps.sandia.gov";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.costrouc ];
   };
diff --git a/nixpkgs/pkgs/applications/science/molecular-dynamics/viennarna/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/viennarna/default.nix
index b3af602f578f..1629a6bba268 100644
--- a/nixpkgs/pkgs/applications/science/molecular-dynamics/viennarna/default.nix
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/viennarna/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , gsl
 , mpfr
@@ -8,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ViennaRNA";
-  version = "2.4.17";
+  version = "2.4.18";
 
   src = fetchurl {
     url = "https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_4_x/${pname}-${version}.tar.gz";
-    sha256 = "08f1h2a8fn1s2zwf1244smiydhgwxgcnzy6irpdlmpvwygv0irmi";
+    sha256 = "17b0mcfkms0gn1a3faa4cakig65k9nk282x6mdh1mmjwbqzp5akw";
   };
 
   buildInputs = [
@@ -33,5 +34,7 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.unix;
+    # Perl bindings fail on aarch64-darwin with "Undefined symbols for architecture arm64"
+    broken = stdenv.isDarwin && stdenv.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix b/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix
index d0a0585e69f1..230f2f0e0efb 100644
--- a/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix
+++ b/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix
@@ -16,9 +16,6 @@ stdenv.mkDerivation rec {
     ./undefined_behavior.patch
   ];
 
-  # patch needs to updated due to version bump
-  #CXXFLAGS = "-Werror=return-type";
-
   preConfigure =
   # Fix F77LD to workaround for a following build error:
   #
@@ -39,18 +36,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ gfortran which ];
   buildInputs =
-    [ apfel apfelgrid applgrid blas lhapdf lapack mela root5 qcdnum libtirpc ]
+    [ apfel apfelgrid applgrid blas lhapdf lapack mela root5 qcdnum ]
     # pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin
     ++ lib.optional (!stdenv.isDarwin) libyaml
+    ++ lib.optional (stdenv.hostPlatform.libc == "glibc") libtirpc
     ;
   propagatedBuildInputs = [ lynx ];
 
   enableParallelBuilding = true;
 
-  hardeningDisable = [ "format" ];
-
-  NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
-  NIX_LDFLAGS = [ "-ltirpc" ];
+  NIX_CFLAGS_COMPILE = lib.optional (stdenv.hostPlatform.libc == "glibc") "-I${libtirpc.dev}/include/tirpc";
+  NIX_LDFLAGS = lib.optional (stdenv.hostPlatform.libc == "glibc") "-ltirpc";
 
   meta = with lib; {
     description = "The xFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data";
diff --git a/nixpkgs/pkgs/applications/science/programming/fdr/default.nix b/nixpkgs/pkgs/applications/science/programming/fdr/default.nix
index 8beecf2def94..62e4c6876fd7 100644
--- a/nixpkgs/pkgs/applications/science/programming/fdr/default.nix
+++ b/nixpkgs/pkgs/applications/science/programming/fdr/default.nix
@@ -1,9 +1,10 @@
-{lib, stdenv, fetchurl, qtbase, qtx11extras, ncurses5, xorg, zlib, python27Packages}:
+{ lib, stdenv, fetchurl, qtbase, qtx11extras, ncurses5, xorg, zlib, python27Packages }:
 stdenv.mkDerivation {
-  name = "fdr-4.2.3";
+  pname = "fdr";
+  version = "4.2.7";
   src = fetchurl {
-    url = "https://www.cs.ox.ac.uk/projects/fdr/downloads/fdr-3789-linux-x86_64.tar.gz";
-    sha256 = "0n2yqichym5xdawlgk3r7yha88k7ycnx6585jfrcm7043sls1i88";
+    url = "https://dl.cocotec.io/fdr/fdr-3814-linux-x86_64.tar.gz";
+    sha256 = "0cajz1gz4slq9nfhm8dqdgxl0kc950838n0lrf8jw4vl54gv6chh";
   };
 
   libPath = lib.makeLibraryPath [
@@ -59,7 +60,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    homepage = "https://www.cs.ox.ac.uk/projects/fdr/";
+    homepage = "https://cocotec.io/fdr/";
     description = "The CSP refinement checker";
     license = licenses.unfreeRedistributable;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix b/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
index e048b881d33d..0f5e7e6daa85 100644
--- a/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
@@ -1,6 +1,6 @@
 { lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake
 , qtbase, qtscript, qtwebkit, qtserialport, qtsvg, qtdeclarative, qtquickcontrols2
-, alsaLib, libsndfile, flite, openssl, udev, SDL2
+, alsa-lib, libsndfile, flite, openssl, udev, SDL2
 }:
 
 mkDerivation rec {
@@ -15,7 +15,7 @@ mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib libsndfile flite openssl udev SDL2
+    alsa-lib libsndfile flite openssl udev SDL2
     qtbase qtscript qtwebkit qtserialport qtsvg qtdeclarative qtquickcontrols2
   ];
 
diff --git a/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix b/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
index 51389d20b7d1..2652856511ea 100644
--- a/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "MAVProxy";
-  version = "1.8.34";
+  version = "1.8.37";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b922c9b6cf4719667e195a02d8364ccebbe7966a9c18666f8ac22eae9d9e7a2c";
+    sha256 = "0527c65b55652a130c44c131cce5644cc5ac00a3f85edb81899f79f5e3ee16fb";
   };
 
   postPatch = ''
@@ -30,7 +30,7 @@ buildPythonApplication rec {
   meta = with lib; {
     description = "MAVLink proxy and command line ground station";
     homepage = "https://github.com/ArduPilot/MAVProxy";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lopsided98 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix b/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix
index a299a66704d1..3dbb1a4bf5af 100644
--- a/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono6 }:
+{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono }:
 
 let
   pname = "mission-planner";
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
     sha256 = "1cgpmsmmnbzw1lwsdafp8yklk1rwc61yf12vc1ahcc6bl7q2385x";
   };
 
-  nativeBuildInputs = [ makeWrapper mono6 unzip ];
+  nativeBuildInputs = [ makeWrapper mono unzip ];
   sourceRoot = ".";
 
   AOT_FILES = [ "MissionPlanner.exe" "MissionPlanner.*.dll" ];
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
     install -m 444 -D mpdesktop150.png $out/share/icons/mission-planner.png
     cp -r ${desktopItem}/share/applications $out/share/
     mv * $out/opt/mission-planner
-    makeWrapper ${mono6}/bin/mono $out/bin/mission-planner \
+    makeWrapper ${mono}/bin/mono $out/bin/mission-planner \
       --add-flags $out/opt/mission-planner/MissionPlanner.exe
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index c4d9605ddf80..1b9304d49e71 100644
--- a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -6,7 +6,7 @@
 
 mkDerivation rec {
   pname = "qgroundcontrol";
-  version = "4.1.2";
+  version = "4.1.3";
 
   qtInputs = [
     qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
@@ -63,7 +63,7 @@ mkDerivation rec {
     owner = "mavlink";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16q0g9b1kyan3qhhp5mmfnrx9h8q7qn83baplbiprqjgpvkxfll4";
+    sha256 = "0fbf564vzckvy1dc8f6yd8vpnzwzsgynva13bl2ks06768rrq9fb";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
index 0b4b807a481c..c0f619b9592c 100644
--- a/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
@@ -1,22 +1,22 @@
-{ lib, stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial }:
+{ lib, stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial, dos2unix }:
 
 stdenv.mkDerivation rec {
   pname = "sumorobot-manager";
-  version = "0.9.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "robokoding";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03zhb54c259a66hsahmv2ajbzwcjnfjj050wbjhw51zqzxinlgqr";
+    sha256 = "07snhwmqqp52vdgr66vx50zxx0nmpmns5cdjgh50hzlhji2z1fl9";
   };
 
   buildInputs = [ python3 ];
   pythonPath = [
-    pyqt5 pyserial
+    pyqt5.dev pyserial
   ];
 
-  nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook ];
+  nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook dos2unix ];
 
   buildPhase = "true";
 
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     cp -r main.py lib res $out/opt/sumorobot-manager
     chmod -R 644 $out/opt/sumorobot-manager/lib/*
     mkdir $out/bin
+    dos2unix $out/opt/sumorobot-manager/main.py
     makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \
       --run "cd $out/opt/sumorobot-manager"
   '';
diff --git a/nixpkgs/pkgs/applications/system/glances/default.nix b/nixpkgs/pkgs/applications/system/glances/default.nix
index e41d9bee5b4b..c142ba12bc27 100644
--- a/nixpkgs/pkgs/applications/system/glances/default.nix
+++ b/nixpkgs/pkgs/applications/system/glances/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.1.6.2";
+  version = "3.1.7";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "v${version}";
-    sha256 = "sha256-6vxJKIwMKz8KQn10aOzqXhVBDfBLylw925hR1hWP7/A=";
+    sha256 = "sha256-82ZD32dqRYGbGM/uyaJ5VqVZbhDZthiEcTihkV43JOU=";
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@@ -45,15 +45,11 @@ buildPythonApplication rec {
     py-cpuinfo
   ] ++ lib.optional stdenv.isLinux hddtemp;
 
-  preConfigure = ''
-    sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py;
-  '';
-
   meta = with lib; {
     homepage = "https://nicolargo.github.io/glances/";
     description = "Cross-platform curses-based monitoring tool";
     changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Only;
     maintainers = with maintainers; [ jonringer primeos koral ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
index 20d24a904e7b..60fb743f8591 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/alacritty/default.nix
@@ -31,6 +31,7 @@
 , CoreServices
 , CoreText
 , Foundation
+, libiconv
 , OpenGL
 }:
 let
@@ -52,16 +53,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "alacritty";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VXV6w4OnhJBmvMKl7CynbhI9LclTKaSr+5DhHXMwSsc=";
+    sha256 = "sha256-9pQqnsLMkzhKTs7WGhf6lac/LGot6EmJQxgFBTrHA4E=";
   };
 
-  cargoSha256 = "sha256-PWnNTMNZKxsfS1OAXe4G3zjfg5gK1SMTc0JJrW90iSM=";
+  cargoSha256 = "sha256-NtDeXS2g+5RzKHJdDrbzL5oReS42SzuEubkfZ4gbkFc=";
 
   nativeBuildInputs = [
     cmake
@@ -80,13 +81,14 @@ rustPlatform.buildRustPackage rec {
     CoreServices
     CoreText
     Foundation
+    libiconv
     OpenGL
   ];
 
   outputs = [ "out" "terminfo" ];
 
   postPatch = ''
-    substituteInPlace alacritty/src/config/mouse.rs \
+    substituteInPlace alacritty/src/config/ui_config.rs \
       --replace xdg-open ${xdg-utils}/bin/xdg-open
   '';
 
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix
index 9e2afe579075..b5ca8b889592 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/eterm/default.nix
@@ -1,26 +1,46 @@
-{ lib, stdenv, fetchurl
-, libX11, libXext, libXaw
-, pkg-config, imlib2, libast }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, imlib2
+, libX11
+, libXaw
+, libXext
+, libast
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "eterm";
-  version = "0.9.6";
-  srcName = "Eterm-${version}";
+  version = "0.9.6-unstable=2020-03-03";
 
-  src = fetchurl {
-    url = "http://www.eterm.org/download/${srcName}.tar.gz";
-    sha256 = "0g71szjklkiczxwzbjjfm59y6v9w4hp8mg7cy99z1g7qcjm0gfbj";
+  src = fetchFromGitHub {
+    owner = "mej";
+    repo = pname;
+    rev = "e8fb85b56da21113aaf0f5f7987ae647c4413b6c";
+    sha256 = "sha256-pfXYrd6BamBTcnarvXj+C6D1WyGtj87GrW+Dl6AeiDE=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libX11 libXext libXaw imlib2 ];
-  propagatedBuildInputs = [ libast ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+  buildInputs = [
+    imlib2
+    libX11
+    libXaw
+    libXext
+    libast
+  ];
 
   meta = with lib; {
-    description = "Terminal emulator";
     homepage = "http://www.eterm.org";
+    description = "Terminal emulator";
     license = licenses.bsd2;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
+    knownVulnerabilities = [
+      "Usage of ANSI escape sequences causes unexpected newline-termination, leading to unexpected command execution (https://www.openwall.com/lists/oss-security/2021/05/17/1)"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
index 23531908a60f..5062329834c4 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
@@ -104,7 +104,9 @@ stdenv.mkDerivation rec {
     tllist
     wayland-protocols
     pkg-config
-  ] ++ lib.optional stdenv.cc.isClang stdenv.cc.cc.llvm;
+  ] ++ lib.optionals (compilerName == "clang") [
+    stdenv.cc.cc.libllvm.out
+  ];
 
   buildInputs = [
     fontconfig
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
index 7dd495f977ae..55798ed60997 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchurl, dpkg, atk, glib, pango, gdk-pixbuf, gnome2, gtk3, cairo
 , freetype, fontconfig, dbus, libXi, libXcursor, libXdamage, libXrandr
 , libXcomposite, libXext, libXfixes, libXrender, libX11, libXtst, libXScrnSaver
-, libxcb, nss, nspr, alsaLib, cups, expat, udev, libpulseaudio, at-spi2-atk }:
+, libxcb, nss, nspr, alsa-lib, cups, expat, udev, libpulseaudio, at-spi2-atk }:
 
 let
   libPath = lib.makeLibraryPath [
     stdenv.cc.cc gtk3 gnome2.GConf atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
     libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
-    libXrender libX11 libXtst libXScrnSaver nss nspr alsaLib cups expat udev libpulseaudio
+    libXrender libX11 libXtst libXScrnSaver nss nspr alsa-lib cups expat udev libpulseaudio
     at-spi2-atk
   ];
 in
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix
index 4e8cf06c1fdb..dc5c651d50a5 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/kgx/default.nix
@@ -3,7 +3,7 @@
 , genericBranding ? false
 , fetchFromGitLab
 , gettext
-, gnome3
+, gnome
 , libgtop
 , gtk3
 , libhandy
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   buildInputs = [
     gettext
     libgtop
-    gnome3.nautilus
+    gnome.nautilus
     gtk3
     libhandy
     pcre2
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
index 91d7b48738e2..3b0d30280419 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, substituteAll, fetchFromGitHub, python3Packages, libunistring,
+{ lib, stdenv, fetchFromGitHub, python3Packages, libunistring,
   harfbuzz, fontconfig, pkg-config, ncurses, imagemagick, xsel,
   libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
   libxkbcommon, libXi, libXext, wayland-protocols, wayland,
@@ -21,14 +21,14 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.19.3";
+  version = "0.20.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "0r49bybqy6c0n1lz6yc85py80wb40w757m60f5rszjf200wnyl6s";
+    sha256 = "sha256-rORIrbUqtQZuU6TjjYP7IZHfCPeLnrNy6wInnAwhG48=";
   };
 
   buildInputs = [
@@ -135,7 +135,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/kovidgoyal/kitty";
     description = "A modern, hackable, featureful, OpenGL based terminal emulator";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     changelog = "https://sw.kovidgoyal.net/kitty/changelog.html";
     platforms = platforms.darwin ++ platforms.linux;
     maintainers = with maintainers; [ tex rvolosatovs Luflosi ];
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix
index 94629314341d..b9f7d4ef677b 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/mlterm/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
     "--enable-ind" #indic scripts
     "--enable-fribidi" #bidi scripts
     "--with-tools=mlclient,mlconfig,mlcc,mlterm-menu,mlimgloader,registobmp,mlfc"
-     #mlterm-menu and mlconfig depend on enabling gnome3.at-spi2-core
+     #mlterm-menu and mlconfig depend on enabling gnome.at-spi2-core
      #and configuring ~/.mlterm/key correctly.
  ] ++ lib.optionals (!stdenv.isDarwin) [
    "--with-x=yes"
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
index b0b9ee611187..bd01b0843fb1 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/mrxvt/default.nix
@@ -36,5 +36,8 @@ stdenv.mkDerivation {
     homepage = "https://sourceforge.net/projects/materm";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    knownVulnerabilities = [
+      "Usage of ANSI escape sequences causes unexpected newline-termination, leading to unexpected command execution (https://www.openwall.com/lists/oss-security/2021/05/17/1)"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
index 82536e4b873a..02f1b100f49f 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/rxvt-unicode/default.nix
@@ -9,7 +9,7 @@
 
 let
   pname = "rxvt-unicode";
-  version = "9.22";
+  version = "9.26";
   description = "A clone of the well-known terminal emulator rxvt";
 
   desktopItem = makeDesktopItem {
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${version}.tar.bz2";
-    sha256 = "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9";
+    sha256 = "12y9p32q0v7n7rhjla0j2g9d5rj2dmwk20c9yhlssaaxlawiccb4";
   };
 
   buildInputs =
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix
index 0cd4f13e465e..a6f4ab1321c3 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/rxvt/default.nix
@@ -35,5 +35,8 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ AndersonTorres ];
     license = licenses.gpl2;
     platforms = platforms.linux;
+    knownVulnerabilities = [
+      "Usage of ANSI escape sequences causes unexpected newline-termination, leading to unexpected command execution (https://www.openwall.com/lists/oss-security/2021/05/17/1)"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix
index 4e43bed0a07b..591b68b49ab0 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/st/default.nix
@@ -1,5 +1,17 @@
-{ lib, stdenv, fetchurl, pkg-config, writeText, libX11, ncurses
-, libXft, conf ? null, patches ? [], extraLibs ? []}:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, writeText
+, libX11
+, ncurses
+, fontconfig
+, freetype
+, libXft
+, conf ? null
+, patches ? [ ]
+, extraLibs ? [ ]
+}:
 
 with lib;
 
@@ -14,18 +26,34 @@ stdenv.mkDerivation rec {
 
   inherit patches;
 
-  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+  configFile = optionalString (conf != null) (writeText "config.def.h" conf);
 
-  postPatch = optionalString (conf!=null) "cp ${configFile} config.def.h"
-            + optionalString stdenv.isDarwin ''
+  postPatch = optionalString (conf != null) "cp ${configFile} config.def.h"
+    + optionalString stdenv.isDarwin ''
     substituteInPlace config.mk --replace "-lrt" ""
   '';
 
-  nativeBuildInputs = [ pkg-config ncurses ];
-  buildInputs = [ libX11 libXft ] ++ extraLibs;
+  strictDeps = true;
+
+  makeFlags = [
+    "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config"
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    ncurses
+    fontconfig
+    freetype
+  ];
+  buildInputs = [
+    libX11
+    libXft
+  ] ++ extraLibs;
 
   installPhase = ''
+    runHook preInstall
     TERMINFO=$out/share/terminfo make install PREFIX=$out
+    runHook postInstall
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
index 82286289fbaf..6ddeffe68eb8 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/terminator/default.nix
@@ -13,13 +13,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "terminator";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "gnome-terminator";
     repo = "terminator";
     rev = "v${version}";
-    sha256 = "sha256-Rd5XieB7K2BkSzrAr6Kmoa30xuwvsGKpPrsG2wrU1o8=";
+    sha256 = "1pfrzna30xv9yri6dsny1j5k35417m4hsg97c455vssywyl9w4jr";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
index 87394241ef76..7631282b3af6 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/terminus/default.nix
@@ -2,13 +2,13 @@
 , freetype, fontconfig, dbus, libXi, libXcursor, libXdamage, libXrandr
 , libXcomposite, libXext, libXfixes, libXrender, libX11, libXtst, libXScrnSaver
 , libxcb, makeWrapper, nodejs
-, nss, nspr, alsaLib, cups, expat, systemd, libpulseaudio }:
+, nss, nspr, alsa-lib, cups, expat, systemd, libpulseaudio }:
 
 let
   libPath = lib.makeLibraryPath [
     stdenv.cc.cc gtk2 atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
     libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
-    libXrender libX11 libXtst libXScrnSaver gnome2.GConf nss nspr alsaLib cups expat systemd libpulseaudio
+    libXrender libX11 libXtst libXScrnSaver gnome2.GConf nss nspr alsa-lib cups expat systemd libpulseaudio
   ];
 in
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch b/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch
index 0a2c52722268..fe04434f4a2c 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch
+++ b/nixpkgs/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch
@@ -21,7 +21,7 @@
 +vte_terminal_get_selection(VteTerminal *terminal) noexcept
 +{
 +	g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
-+	return g_strdup (IMPL(terminal)->m_selection[VTE_SELECTION_PRIMARY]->str);
++	return g_strdup (IMPL(terminal)->m_selection[vte::to_integral(vte::platform::ClipboardType::PRIMARY)]->str);
 +}
 +
  /**
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
index c0f4ea32576e..a5c4b4574df3 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
     description = "Tiling terminal emulator following the Gnome Human Interface Guidelines";
     homepage = "https://gnunn1.github.io/tilix-web";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ midchildan worldofpeace ];
+    maintainers = with maintainers; [ midchildan ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix
index dc79e48b24fb..c6f39effed62 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/wayst/default.nix
@@ -34,13 +34,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wayst";
-  version = "unstable-2020-10-12";
+  version = "unstable-2021-04-05";
 
   src = fetchFromGitHub {
     owner = "91861";
     repo = pname;
-    rev = "b8c7ca00a785a748026ed1ba08bf3d19916ced18";
-    hash = "sha256-wHAU1yxukxApzhLLLctZ/AYqF7t21HQc5omPBZyxra0=";
+    rev = "e72ca78ef72c7b1e92473a98d435a3c85d7eab98";
+    hash = "sha256-UXAVSfVpk/8KSg4oMw2tVWImD6HqJ7gEioR2MqhUUoQ=";
   };
 
   makeFlags = [ "INSTALL_DIR=\${out}/bin" ];
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple terminal emulator";
+    mainProgram = "wayst";
     homepage = "https://github.com/91861/wayst";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix
index 8b1031bb5b2c..d214d6fabc3d 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -2,6 +2,7 @@
 , rustPlatform
 , lib
 , fetchFromGitHub
+, ncurses
 , pkg-config
 , fontconfig
 , python3
@@ -58,30 +59,39 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "wezterm";
-  version = "20210407-nightly";
+  version = "20210502-154244-3f7122cb";
 
   src = fetchFromGitHub {
     owner = "wez";
     repo = pname;
-    rev = "d2419fb99e567e3b260980694cc840a1a3b86922";
-    sha256 = "4tVjrdDlrDPKzcbTYK9vRlzfC9tfvkD+D0aN19A8RWE=";
+    rev = version;
+    sha256 = "9HPhb7Vyy5DwBW1xeA6sEIBmmOXlky9lPShu6ZoixPw=";
     fetchSubmodules = true;
   };
 
+  outputs = [ "out" "terminfo" ];
+
   postPatch = ''
     echo ${version} > .tag
   '';
 
-  cargoSha256 = "sha256-UaXeeuRuQk+CWF936mEAaWTjZuTSRPmxbQ/9E2oZIqg=";
+  cargoSha256 = "sha256-cbZg2wc3G2ffMQBB6gd0vBbow5GRbXaj8Xh5ga1cMxU=";
 
   nativeBuildInputs = [
     pkg-config
     python3
     perl
+    ncurses
   ];
 
   buildInputs = runtimeDeps;
 
+  postInstall = ''
+    mkdir -p $terminfo/share/terminfo/w $out/nix-support
+    tic -x -o $terminfo/share/terminfo termwiz/data/wezterm.terminfo
+    echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+  '';
+
   preFixup = lib.optionalString stdenv.isLinux ''
     for artifact in wezterm wezterm-gui wezterm-mux-server strip-ansi-escapes; do
       patchelf --set-rpath "${lib.makeLibraryPath runtimeDeps}" $out/bin/$artifact
diff --git a/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix
index f4957a82d445..ffd583585c0f 100644
--- a/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix
@@ -7,7 +7,7 @@ with stdenv; with lib;
 mkDerivation rec {
   name = "cvs-fast-export-${meta.version}";
   meta = {
-    version = "1.55";
+    version = "1.56";
     description = "Export an RCS or CVS history as a fast-import stream";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dfoxfranke ];
@@ -16,8 +16,8 @@ mkDerivation rec {
   };
 
   src = fetchurl {
-    url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.55.tar.gz";
-    sha256 = "06y2myhhv2ap08bq7d7shq0b7lq6wgznwrpz6622xq66cxkf2n5g";
+    url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.56.tar.gz";
+    sha256 = "sha256-TB/m7kd91+PyAkGdFCCgeb9pQh0kacq0QuTZa8f9CxU=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 20c7f41bc545..f642a7d9afb3 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "02gm3fxqq91gn1hffy9kc6dkc0y7p09sl6f8njfpsaficij4bs7a";
+    sha256 = "01s73ld3npdmrjbay1lmd13bn9lg2pbmj14gklxi3j9aj0y2q8w8";
   };
 
-  cargoSha256 = "1crz7410xfixx2vb1c060fnygwkkp2k2lgh7y1mjjxjzhpybniw5";
+  cargoSha256 = "1pi4sm07nm1irigrfgysfw99vw96zzz07a1qw5m7bmj6aqp0r3fr";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
index a1daf3db4487..77ad7d8658d1 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "diff-so-fancy";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "so-fancy";
     repo = "diff-so-fancy";
     rev = "v${version}";
-    sha256 = "sha256-//n7kOANVHRSjxclxDcMnpMVzUcd/U6fFsP8acRjVWA=";
+    sha256 = "sha256-bV22x459QerWg4MVLWsXPDhM38QWG6BE+dVmKIFfDiE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 7dfca2cd80af..707aefdf0c14 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "1.9.2";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0lx6sx3zkjq9855va1vxbd5g47viqkrchk5d2rb6xj7zywwm4mgb";
+    sha256 = "sha256-rUGhKiTB5uVMbW0HdOEvubGkWh1ARUXCnGR7ezmsT3g=";
   };
 
-  vendorSha256 = "1zmyd566xcksgqm0f7mq0rkfnxk0fmf39k13fcp9jy30c1y9681v";
+  vendorSha256 = "sha256-ndsjmY/UCFyegm8yP7BopYMh5eZ8/fftWfxW4r5los0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index 74e2a34aec1a..74f644e23ad2 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -32,6 +32,5 @@ buildGoModule rec {
     homepage = "https://github.com/gabrie30/ghorg";
     license = licenses.asl20;
     maintainers = with maintainers; [ vidbina ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
index 2d6d7401e28f..5115f37891ab 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  cargoSha256 = "0h0vlz4qd8i9bf1mgjr618zbdwfp6bmy7ql9a1xzjmfdpkl3cgk9";
+  cargoSha256 = "0dax6wkbyk5p8p0mm406vfgmqfmfxzyzqps6yk8fachi61x12ja6";
 
   postInstall = ''
     installManPage Documentation/git-absorb.1
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix
index 2517e20ce9d7..862461827eb1 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0bzq4ridzb4l1zqrj1r0vlzkjpgfaqwky5jf49cwjhz4ybwrfpkq";
   };
 
-  cargoSha256 = "0r0hyp15knbbs4l9rcn395pzrx2vbibmwvs4pmga363irmi8mcy5";
+  cargoSha256 = "00wi64v2zn8rp8fjwbdwyvl3pva5sn9xclaawp2m222dqnlszb2d";
 
   meta = with lib; {
     homepage = "https://github.com/softprops/git-codeowners";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
index 37c10bf2f982..707e0855d151 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, python3Packages, gettext, git, qt5 }:
 
 let
-  inherit (python3Packages) buildPythonApplication pyqt5 sip pyinotify;
+  inherit (python3Packages) buildPythonApplication pyqt5 sip_4 pyinotify;
 
 in buildPythonApplication rec {
   pname = "git-cola";
@@ -15,7 +15,7 @@ in buildPythonApplication rec {
   };
 
   buildInputs = [ git gettext ];
-  propagatedBuildInputs = [ pyqt5 sip pyinotify ];
+  propagatedBuildInputs = [ pyqt5 sip_4 pyinotify ];
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix
index fb3f555cb139..f1aeda1a5c7b 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix
@@ -26,7 +26,7 @@ buildRustPackage rec {
     sha256 = "1sx6sc2dj3l61gbiqz8vfyhw5w4xjdyfzn1ixz0y8ipm579yc7a2";
   };
 
-  cargoSha256 = "1wjbwd3scx71l2fpxgvgwaw05lkpw13rm6d2i1x5crhs7py96ky6";
+  cargoSha256 = "1vbcwl4aii0x4l8w9jhm70vi4s95jr138ly65jpkkv26rl6zjiph";
 
   nativeBuildInputs = [
     cmake
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
index 864ef51a5881..c67fb1532abf 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "git-filter-repo";
-  version = "2.29.0";
+  version = "2.32.0";
 
   src = fetchurl {
     url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb";
+    sha256 = "sha256-CztFSyeKM9Bmcf0eSrLHH3vHGepd8WXPvcAACT+vFps=";
   };
 
   buildInputs = [ pythonPackages.python ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
index c7453aff85bc..47d6cc023b80 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0hhy1yazda9r4n753a5m9jf31fbzmm4v8wvl3pksspj2syglmll8";
   };
 
-  cargoSha256 = "1g2jijx8y34lid9qwa26v4svab5v9ki6gn9vcfiy61dqa964c3l9";
+  cargoSha256 = "0mbc1742szpxnqqah6q0yhkn4fyyxqzg830bd1vzr07v273wr06r";
 
   nativeBuildInputs = [ pkg-config makeWrapper installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
index b01976f7632e..5ff6d6b1f84b 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
@@ -13,7 +13,7 @@ buildRustPackage rec {
     sha256 = "sha256-bKIBPqGKiS3ey8vH2F4EoleV1H2PTOp+71d/YW3jkT0=";
   };
 
-  cargoSha256 = "sha256-D1CIITuZSAsKYsK8U0q8HwPsYCyrfkTXZThxufEEkWU=";
+  cargoSha256 = "sha256-7jPNVBf5DYtE8nsh7LIywMCjU7ODZ3qFsmBie2mZ3h8=";
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 99772f60bc50..f93947d0515b 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bb6ap8sdp4ad0xkh3y8vj46a363g5gdw0dzf9ycw0z9ah8ispfx";
+    sha256 = "00f1rq80vya464dkvf3mzs9zpvkz15ki8srwg08snsm5kb7amwlm";
   };
 
   nativeBuildInputs = [ installShellFiles pbr ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
index 3143d7ef9c3a..e3845af8926d 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }:
 
 let
-  version = "0.3.3";
+  version = "0.4.0";
   repo = "git-secret";
 
 in stdenv.mkDerivation {
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     inherit repo;
     owner = "sobolevn";
     rev = "v${version}";
-    sha256 = "0hc7yavcp8jmn6b7wngjqhy8kl7f4191sfpik8ycvqghkvvimxj4";
+    sha256 = "sha256-Mtuj+e/yCDr4XkmYkWUFJB3cqOT5yOMOq9P/QJV1S80=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix
index 204ded65fd3e..53db1c01eefb 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subset/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "02z2r0kcd0nnn1zjslp6xxam5ddbhrmzn67qzxhlamsw0p9vvkbb";
   };
 
-  cargoSha256 = "1ydrrq35h1h5s59mx8kwwf3bp7lsmla3jl53ccdlsq29x0rj2jhs";
+  cargoSha256 = "0lc9m9prmhr4ipjh95cfczvlmpp9scryksvqd49h4acyr904n7ry";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix
index d470b63a0b7e..a20c750ade10 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-trim/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1rb9dhj7b7mjrhsvm9vw5gzjfxj10idnzv488jkfdz7sfhd3fcvz";
   };
 
-  cargoSha256 = "1q62gqqhf78ljcvzp7yrnr0vk65rif2f7axzjq0b87prbcsr7ij4";
+  cargoSha256 = "1gy77c1cnm2qpgf0fr03alvxi3936x36c032865a6ch8bzns7k5v";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix
index 85a84103118d..a77bdd493300 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vanity-hash/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1wf342zawbphlzvji0yba0qg4f6v67h81nhxqcsir132jv397ma7";
   };
 
-  cargoSha256 = "0mbdis1kxmgj3wlgznr9bqf5yv0jwlj2f63gr5c99ja0ijccp99h";
+  cargoSha256 = "1frdw9bs7y6ch5rrbsgvhrs0wxw4hbwm2n3crslp12w55m7k39fc";
 
   postInstall = ''
     mkdir -p $out/share/doc/git-vanity-hash
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix
new file mode 100644
index 000000000000..c7884c2b52e7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-vendor/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchFromGitHub, writeShellScriptBin, skawarePackages
+}:
+
+let
+  version = "1.2.1";
+  sha256 = "sha256-sm5SmckaXVjF3odqzYrbC46E1nPzQ9cuNJnNSAa7RWY=";
+
+in stdenv.mkDerivation {
+  pname = "git-vendor";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "brettlangdon";
+    repo = "git-vendor";
+    rev = "v${version}";
+    inherit sha256;
+  };
+
+  outputs = [ "bin" "man" "doc" "out" ];
+
+  PREFIX = (placeholder "out");
+  BINPREFIX = "${placeholder "bin"}/bin";
+  MANPREFIX = "${placeholder "man"}/share/man/man1";
+
+  buildInputs = [
+    # stubbing out a `git config` check that `make install` tries to do
+    (writeShellScriptBin "git" "")
+  ];
+
+  postInstall = ''
+    ${skawarePackages.cleanPackaging.commonFileActions {
+        docFiles = [
+          "LICENSE"
+          "README.md"
+        ];
+        noiseFiles = [
+          "bin/git-vendor"
+          "Makefile"
+          "etc/bash_completion.sh"
+          "man"
+          "install.sh"
+        ];
+      }} $doc/share/doc/git-vendor
+  '';
+
+  postFixup = ''
+    ${skawarePackages.cleanPackaging.checkForRemainingFiles}
+  '';
+
+  meta = {
+    description = "A git command for managing vendored dependencies";
+    longDescription = ''
+      git-vendor is a wrapper around git-subtree commands for checking out and updating vendored dependencies.
+
+      By default git-vendor conforms to the pattern used for vendoring golang dependencies:
+        * Dependencies are stored under vendor/ directory in the repo.
+        * Dependencies are stored under the fully qualified project path.
+            e.g. https://github.com/brettlangdon/forge will be stored under vendor/github.com/brettlangdon/forge.
+    '';
+    homepage = "https://github.com/brettlangdon/git-vendor";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.Profpatsch ];
+    platforms = lib.platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
index 9b2853551c2b..b0279f004c24 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , rustPlatform
-, Security
+, libiconv, Security
 , pkg-config, openssl
 }:
 
@@ -16,10 +16,11 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-//EyGhuE8rMRL03TtECIi0X51/p/GvTqvr2FRQEIqFA=";
   };
 
-  cargoSha256 = "sha256-lvxEYjVMJoAFFRG5iVfGwxUeJObIxfEaWokk69l++nI=";
+  cargoSha256 = "sha256-X0jRwDUVzS1s2tG6N2RDaFqwUUAT+mPMEft11VkJy5A=";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   meta = with lib; {
     description = "Sync personal and work git repositories from multiple providers";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
index a7df1645c7a9..8ad150f13060 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -5,7 +5,7 @@
 , asciidoctor, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xsl_ns, docbook_xml_dtd_45
 , libxslt, tcl, tk, makeWrapper, libiconv
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
-, perlSupport ? true
+, perlSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 , nlsSupport ? true
 , osxkeychainSupport ? stdenv.isDarwin
 , guiSupport
@@ -14,6 +14,7 @@
 , withpcre2 ? true
 , sendEmailSupport
 , darwin
+, nixosTests
 , withLibsecret ? false
 , pkg-config, glib, libsecret
 , gzip # needed at runtime by gitweb.cgi
@@ -334,6 +335,9 @@ stdenv.mkDerivation {
 
   stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ];
 
+  passthru.tests = {
+    buildbot-integration = nixosTests.buildbot;
+  };
 
   meta = {
     homepage = "https://git-scm.com/";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index 551db33b0108..3049012160df 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.14.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ymvvmryzv5is535bjg8h9p7gsxygyawnpyd0hicdrdiwml5mgsq";
+    sha256 = "sha256-8RPIPimDImLUR9oHVZZ7ZeKLtIhebv/d0kl4CQ5NFdU=";
   };
 
-  cargoSha256 = "14hf3xkdvk2mgag5pzai5382h3g79fq76s0p9pj8q9v8q21wg6pr";
+  cargoSha256 = "sha256-1IHbOjZV8Rc0el7J983B8pvnbt8+QtYiknZU/I85OnY=";
 
   nativeBuildInputs = [ python3 perl ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
index 1fa2ebc6f74a..478d9aaf0cc2 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
@@ -22,6 +22,6 @@ in buildEnv {
        ++ [ "${git}/share/gitweb" ];
 
   meta = git.meta // {
-    maintainers = with lib.maintainers; [ gnidorah ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
index 8e7e739e6100..12fd8357fc7a 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/glab/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glab";
-  version = "1.16.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "profclems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KkkP/qkIrwJUxmZTY8zxJKMbOiaGl8XqJhHAU7oejGs=";
+    sha256 = "sha256-/WKfMmaFjnzRWCJZEZF/CguU0K7FOtgvKNMSQGvjODQ=";
   };
 
-  vendorSha256 = "sha256-DO8eH0DAitxX0NOYQBs4/ME9TFQYfXedwbld1DnBWXk=";
+  vendorSha256 = "sha256-PCkVjLdOdOhJGNSkVPFK/ONRdJT7MS0COjYgPNT5dNw=";
   runVend = true;
 
   # Tests are trying to access /homeless-shelter
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
index 856ee616efb7..a373d3dbf897 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "lab";
-  version = "0.21.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "zaquestion";
     repo = "lab";
     rev = "v${version}";
-    sha256 = "sha256-mkhJmrKpIISd0m0m8fQ9vKuEr6h23BBxK6yo5fB+xcA=";
+    sha256 = "sha256-CyXEmlsc40JtwDjRYNWqN+3cuoG8K07jAQdd1rktvS8=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-cf+DVnGjSNV2eZ8S/Vk+VPlykoSjngrQuPeA9IshBUg=";
+  vendorSha256 = "sha256-PSS7OPbM+XsylqDlWc4h+oZrOua2kSWKLEuyjqo/cxM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index 520f33905c91..264677dc1cd9 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lefthook";
-  version = "0.7.3";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "evilmartians";
     repo = "lefthook";
-    sha256 = "sha256-VrAkmLRsYNDX5VfAxsvjsOv1bv7Nk53OjdaJm/D2GRk=";
+    sha256 = "sha256-IKrutZJhs2iuwhXoV+81rDoaSi/xdYRpIlF1YjGFGY4=";
   };
 
-  vendorSha256 = "sha256-XR7xJZfgt0Hx2DccdNlwEmuduuVU8IBR0pcIUyRhdko=";
+  vendorSha256 = "sha256-Rp67FnFU27u85t02MIs7wZQoOa8oGsHVVPQ9OdIyTJg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
index 766cb417b745..e2314687d8b9 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "radicle-upstream";
-  version = "0.1.11";
+  version = "0.2.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage";
-    sha256 =  "1j0xc9ns3andycbrrzkn6ql6739b1dimzlxq17wwpmqhni9nh673";
+    sha256 =  "sha256-SL6plXZ+o7JchY/t/1702FK57fVjxllHqB8ZOma/43c=";
   };
 
   contents = appimageTools.extractType2 { inherit name src; };
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix
index 6968508f8c9a..e885b7c06078 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "021vdk5i7yyrnh4apn0gnsh6ycnx15wm3g2jrfsg7fycnq8167wc";
   };
 
-  cargoSha256 = "0kfj09xq1g866507k3gcbm30pyi1xzfr7gca6dab7sjlvf83h9xs";
+  cargoSha256 = "0hx5nhxci6p0gjjn1f3vpfykq0f7hdvhlv8898vrv0lh5r9hybsn";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index b8584f5a5339..4393a9dc51ce 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -1,30 +1,65 @@
-{ lib, python3Packages, fetchFromGitHub, git, installShellFiles }:
+{ lib
+, fetchFromGitHub
+, installShellFiles
+, python3Packages
+, asciidoc
+, docbook_xsl
+, git
+, perl
+, xmlto
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "stgit";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "stacked-git";
     repo = "stgit";
     rev = "v${version}";
-    sha256 = "16q8994widg040n1ag4m82kbn3r02n39ah7dvwa7aixhw5y35vlm";
+    sha256 = "sha256-gfPf1yRmx1Mn1TyCBWmjQJBgXLlZrDcew32C9o6uNYk=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl ];
 
-  checkInputs = [ git ];
+  format = "other";
 
-  postInstall = ''
-    installShellCompletion $out/share/stgit/completion/stg.fish
-    installShellCompletion --name stg $out/share/stgit/completion/stgit.bash
-    installShellCompletion --name _stg $out/share/stgit/completion/stgit.zsh
+  checkInputs = [ git perl ];
+
+  postPatch = ''
+    for f in Documentation/*.xsl; do
+      substituteInPlace $f \
+        --replace http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl \
+                  ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl \
+        --replace http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
+                  ${docbook_xsl}/xml/xsl/docbook/html/docbook.xsl
+    done
   '';
 
+  makeFlags = [
+    "prefix=${placeholder "out"}"
+    "MAN_BASE_URL=${placeholder "out"}/share/man"
+    "XMLTO_EXTRA=--skip-validation"
+  ];
+
+  buildFlags = [ "all" "doc" ];
+
+  checkTarget = "test";
+  checkFlags = [ "PERL_PATH=${perl}/bin/perl" ];
+
+  installTargets = [ "install" "install-doc" ];
+  postInstall = ''
+    installShellCompletion --cmd stg \
+      --fish $out/share/stgit/completion/stg.fish \
+      --bash $out/share/stgit/completion/stgit.bash \
+      --zsh $out/share/stgit/completion/stgit.zsh
+    '';
+
   meta = with lib; {
     description = "A patch manager implemented on top of Git";
     homepage = "https://stacked-git.github.io/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ jshholland ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
index 753a3443c315..fd57eb22186f 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tig";
-  version = "2.5.3";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "jonas";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-BXs7aKUYiU5L2OjhhmJ+dkHvNcrnw5qREwOTB6npLnw=";
+    sha256 = "sha256-dZqqUydZ4q/mDEjtojpMGfzAmW3yCNDvT9oCEmhq1hg=";
   };
 
   nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-backup/default.nix b/nixpkgs/pkgs/applications/version-management/git-backup/default.nix
index d73e77d6d94f..8c45fdef3f7d 100644
--- a/nixpkgs/pkgs/applications/version-management/git-backup/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-backup/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0h31j8clvk4gkw4mgva9p0ypf26zhf7f0y564fdmzyw6rsz9wzcj";
   };
 
-  cargoSha256 = "09nfvzvgpdl5glzjays4lm50iwvjzbz364y6agya1a94qqwkaj7f";
+  cargoSha256 = "0lb53sk7rikmj365gvcvn1hq70d6dmhp0aj2dyipb2qasypqz5l3";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
index 72f6d67c2f1d..c84375cfece5 100644
--- a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
@@ -1,18 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper
-, python3, git, gnupg, less
+{ lib, stdenv, fetchFromGitHub, makeWrapper, nix-update-script
+, python3, git, gnupg, less, openssh
 }:
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.13.1";
+  version = "2.15.4";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "sha256-D6gh14XOZ6Fjypfhg9l5ozPhyf6u6M0Wc8HdagdPM/Q=";
+    sha256 = "1ayw2pz9falcsi528q63z3w7npzkk7y8z258danqh41j6q9871js";
   };
 
+  # Fix 'NameError: name 'ssl' is not defined'
   patches = [ ./import-ssl-module.patch ];
 
   nativeBuildInputs = [ makeWrapper ];
@@ -25,16 +26,26 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     cp repo $out/bin/repo
+
+    runHook postInstall
   '';
 
   # Important runtime dependencies
   postFixup = ''
     wrapProgram $out/bin/repo --prefix PATH ":" \
-      "${lib.makeBinPath [ git gnupg less ]}"
+      "${lib.makeBinPath [ git gnupg less openssh ]}"
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "gitRepo";
+    };
+  };
+
   meta = with lib; {
     description = "Android's repo management tool";
     longDescription = ''
@@ -45,7 +56,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://android.googlesource.com/tools/repo";
     license = licenses.asl20;
-    maintainers = [ ];
+    maintainers = with maintainers; [ otavio ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch b/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch
index f1ec4e3a7ddb..efc3d2b1f8a5 100644
--- a/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch
+++ b/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch
@@ -1,3 +1,19 @@
+Fix runtime error due missing import
+
+Traceback (most recent call last):
+  File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 1339, in <module>
+    main(sys.argv[1:])
+  File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 1304, in main
+    _Init(args, gitc_init=(cmd == 'gitc-init'))
+  File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 607, in _Init
+    _Clone(url, dst, opt.clone_bundle, opt.quiet, opt.verbose)
+  File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 912, in _Clone
+    if clone_bundle and _DownloadBundle(url, cwd, quiet, verbose):
+  File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 860, in _DownloadBundle
+    r = urllib.request.urlopen(url, context=ssl.create_default_context())
+NameError: name 'ssl' is not defined
+builder for '/nix/store/4hvds8fv8xmzlm86yg9cf1lj6hrya7sg-amdvlk-src.drv' failed with exit code 1
+
 diff --git a/repo b/repo
 index 8b05def..f394b3e 100755
 --- a/repo
diff --git a/nixpkgs/pkgs/applications/version-management/git-review/default.nix b/nixpkgs/pkgs/applications/version-management/git-review/default.nix
index 38eed2dd5af2..410d8d49e4c9 100644
--- a/nixpkgs/pkgs/applications/version-management/git-review/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-review/default.nix
@@ -39,6 +39,6 @@ buildPythonApplication rec {
     description = "Tool to submit code to Gerrit";
     homepage = "https://opendev.org/opendev/git-review";
     license = licenses.asl20;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
index e67965f77d34..e92a5a38a280 100644
--- a/nixpkgs/pkgs/applications/version-management/gitea/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -16,12 +16,12 @@ with lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.14.1";
+  version = "1.14.2";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "1hpwc5jmkbnn6qf3li8g38qz2l87vk6jq2zxijq92jyfp54kj03p";
+    sha256 = "sha256-0EvKk0/ro1YAqvc5yCt8vn2LkRoIbXrFTwcQtomoWsM=";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
index 7e4b7a84075e..c0cc9d5e2b11 100644
--- a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, libXcomposite, libgnome-keyring, makeWrapper, udev, curl, alsaLib
-, libXfixes, atk, gtk3, libXrender, pango, gnome3, cairo, freetype, fontconfig
+{ lib, stdenv, libXcomposite, libgnome-keyring, makeWrapper, udev, curl, alsa-lib
+, libXfixes, atk, gtk3, libXrender, pango, gnome, cairo, freetype, fontconfig
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
 , makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "7.5.5";
+  version = "7.6.1";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "0l40ap0ck2ywjarmn7lmpw4qbsdkx717d9kmx67p4qlmbwpimqhg";
+    sha256 = "sha256-wpfTozXxanZkYtYQHY950PLsVO4lXLt5OOP/xDCrFEw=";
   };
 
   dontBuild = true;
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     nss
     nspr
     cups
-    alsaLib
+    alsa-lib
     expat
     gdk-pixbuf
     dbus
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
index aa5338ea7c6b..40af0656fe6b 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/data.json
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "13.10.2",
-  "repo_hash": "1q3qnfzhikbbsmzzbldwn6xvsyxr1jgv5lj7mgcji11j8qv1a625",
+  "version": "13.12.2",
+  "repo_hash": "1wzbjw21pan5cfiz1jd03c3w9sgyvmn35f6dm2sr2k54acsw034p",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.10.2-ee",
+  "rev": "v13.12.2-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.10.2",
-    "GITLAB_PAGES_VERSION": "1.36.0",
-    "GITLAB_SHELL_VERSION": "13.17.0",
-    "GITLAB_WORKHORSE_VERSION": "13.10.2"
+    "GITALY_SERVER_VERSION": "13.12.2",
+    "GITLAB_PAGES_VERSION": "1.39.0",
+    "GITLAB_SHELL_VERSION": "13.18.0",
+    "GITLAB_WORKHORSE_VERSION": "13.12.2"
   }
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
index 5d2b923628b2..225b9f6c0cb7 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
+{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitLab, bundlerEnv
 , ruby, tzdata, git, nettools, nixosTests, nodejs, openssl
 , gitlabEnterprise ? false, callPackage, yarn
 , fixup_yarn_lock, replace, file
@@ -32,7 +32,7 @@ let
         openssl = x.openssl // {
           buildInputs = [ openssl ];
         };
-        ruby-magic-static = x.ruby-magic-static // {
+        ruby-magic = x.ruby-magic // {
           buildInputs = [ file ];
           buildFlags = [ "--enable-system-libraries" ];
         };
@@ -131,6 +131,7 @@ stdenv.mkDerivation {
     ${lib.optionalString (!gitlabEnterprise) ''
       # Remove all proprietary components
       rm -rf ee
+      sed -i 's/-ee//' ./VERSION
     ''}
 
     # For reasons I don't understand "bundle exec" ignores the
@@ -181,6 +182,7 @@ stdenv.mkDerivation {
     GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION;
     GITLAB_SHELL_VERSION = data.passthru.GITLAB_SHELL_VERSION;
     GITLAB_WORKHORSE_VERSION = data.passthru.GITLAB_WORKHORSE_VERSION;
+    gitlabEnv.FOSS_ONLY = lib.boolToString (!gitlabEnterprise);
     tests = {
       nixos-test-passes = nixosTests.gitlab;
     };
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 00215cc55e9e..adee2020f6fa 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -3,23 +3,23 @@ source 'https://rubygems.org'
 gem 'rugged', '~> 1.1'
 gem 'github-linguist', '~> 7.12', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
-gem 'activesupport', '~> 6.0.3.4'
+gem 'activesupport', '~> 6.0.3.6'
 gem 'rdoc', '~> 6.0'
 gem 'gitlab-gollum-lib', '~> 4.2.7.10.gitlab.1', require: false
-gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.3.gitlab.1', require: false
+gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.4.gitlab.1', require: false
 gem 'grpc', '~> 1.30.2'
 gem 'sentry-raven', '~> 3.0', require: false
 gem 'faraday', '~> 1.0'
 gem 'rbtrace', require: false
 
 # Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.15.0'
+gem 'gitlab-labkit', '~> 0.16.2'
 
 # Detects the open source license the repository includes
 # This version needs to be in sync with GitLab CE/EE
 gem 'licensee', '~> 9.14.1'
 
-gem 'google-protobuf', '~> 3.12'
+gem 'google-protobuf', '~> 3.14.0'
 
 group :development, :test do
   gem 'rubocop', '~> 0.69', require: false
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index 32d761f9f3f7..a8e2f3f5a677 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
   remote: https://rubygems.org/
   specs:
     abstract_type (0.0.7)
-    actionpack (6.0.3.4)
-      actionview (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionpack (6.0.3.6)
+      actionview (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionview (6.0.3.6)
+      activesupport (= 6.0.3.6)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activesupport (6.0.3.4)
+    activesupport (6.0.3.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -34,7 +34,7 @@ GEM
     concord (0.1.5)
       adamantium (~> 0.2.0)
       equalizer (~> 0.0.9)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     crass (1.0.6)
     diff-lcs (1.3)
     dotenv (2.7.6)
@@ -62,10 +62,10 @@ GEM
       rouge (~> 3.1)
       sanitize (~> 4.6.4)
       stringex (~> 2.6)
-    gitlab-gollum-rugged_adapter (0.4.4.3.gitlab.1)
+    gitlab-gollum-rugged_adapter (0.4.4.4.gitlab.1)
       mime-types (>= 1.15)
       rugged (~> 1.0)
-    gitlab-labkit (0.15.0)
+    gitlab-labkit (0.16.2)
       actionpack (>= 5.0.0, < 7.0.0)
       activesupport (>= 5.0.0, < 7.0.0)
       grpc (~> 1.19)
@@ -74,14 +74,14 @@ GEM
       pg_query (~> 1.3)
       redis (> 3.0.0, < 5.0.0)
     gitlab-markup (1.7.1)
-    google-protobuf (3.12.4)
+    google-protobuf (3.14.0)
     googleapis-common-protos-types (1.0.5)
       google-protobuf (~> 3.11)
     grpc (1.30.2)
       google-protobuf (~> 3.12)
       googleapis-common-protos-types (~> 1.0)
     grpc-tools (1.30.2)
-    i18n (1.8.5)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     ice_nine (0.11.2)
     jaeger-client (1.1.0)
@@ -94,7 +94,7 @@ GEM
       reverse_markdown (~> 1.0)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
-    loofah (2.9.0)
+    loofah (2.9.1)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     memoizable (0.4.2)
@@ -196,7 +196,7 @@ GEM
     stringex (2.8.5)
     thor (1.1.0)
     thread_safe (0.3.6)
-    thrift (0.13.0)
+    thrift (0.14.1)
     timecop (0.9.1)
     tzinfo (1.2.9)
       thread_safe (~> 0.1)
@@ -215,15 +215,15 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  activesupport (~> 6.0.3.4)
+  activesupport (~> 6.0.3.6)
   factory_bot
   faraday (~> 1.0)
   github-linguist (~> 7.12)
   gitlab-gollum-lib (~> 4.2.7.10.gitlab.1)
-  gitlab-gollum-rugged_adapter (~> 0.4.4.3.gitlab.1)
-  gitlab-labkit (~> 0.15.0)
+  gitlab-gollum-rugged_adapter (~> 0.4.4.4.gitlab.1)
+  gitlab-labkit (~> 0.16.2)
   gitlab-markup (~> 1.7.1)
-  google-protobuf (~> 3.12)
+  google-protobuf (~> 3.14.0)
   grpc (~> 1.30.2)
   grpc-tools (= 1.30.2)
   licensee (~> 9.14.1)
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 260b3b493999..994683c2e2b1 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -21,17 +21,17 @@ let
       };
   };
 in buildGoModule rec {
-  version = "13.10.2";
+  version = "13.12.2";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "sha256-5CjZs5tpEEsgQGBFa8BeZ7SDhIeGKqAHWwbR8hSoCPs=";
+    sha256 = "sha256-jZg/OlecYlGjDxlxsayAuqzptil1OPtyPjOe1WYT0HY=";
   };
 
-  vendorSha256 = "sha256-8AopoiLmg6kfvYbZDOfFWBy1o5tbnxsKxSBX20OasIE=";
+  vendorSha256 = "sha256-drS0L0olEFHYJVC0VYwEZeNYa8fjwrfxlhrEQa4pqzY=";
 
   passthru = {
     inherit rubyEnv;
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 90655ef9e93f..c3c742b66695 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -13,10 +13,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
+      sha256 = "10rn7gmnnwpm593xv6lcf4qa72wmlbyjg4zmdc3lpb5596whd3yz";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -24,10 +24,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
+      sha256 = "0ikqpxsrsb7xmq6ds5iq22nj2j3ai16z8z2j5r6lk8pzbi0wwsz5";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -35,10 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
+      sha256 = "0sls37x9pd2zmipn14c46gcjbfzlg269r413cvm0d58595qkiv7z";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   adamantium = {
     dependencies = ["ice_nine" "memoizable"];
@@ -122,10 +122,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   crass = {
     groups = ["default"];
@@ -258,10 +258,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rqi9h6k32azljmx2q0zibvs1m59wgh879h04jflxkcqyzj6wyyj";
+      sha256 = "0gvgqfn05swsazfxdwmlqcq8v2pjyy7dmyl3bd8b8jrrxbpmpxxg";
       type = "gem";
     };
-    version = "0.4.4.3.gitlab.1";
+    version = "0.4.4.4.gitlab.1";
   };
   gitlab-labkit = {
     dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
@@ -269,10 +269,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l9bsjszp5zyzbdsr9ls09d4yr2sb0xjc40x4rv7fbzk19n9xs71";
+      sha256 = "0184rq6sal3xz4f0w5iaa5zf3q55i4dh0rlvr25l1g0s2imwr3fa";
       type = "gem";
     };
-    version = "0.15.0";
+    version = "0.16.2";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -289,10 +289,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m3la0yid3bqx9b30raisqbp27d0q7vdrlslazrdasf8v1vhifxj";
+      sha256 = "0pbm2kjhxvazx9d5c071bxcjx5cbip6d2y36dii2a4558nqjd12p";
       type = "gem";
     };
-    version = "3.12.4";
+    version = "3.14.0";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
@@ -332,10 +332,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   ice_nine = {
     source = {
@@ -383,10 +383,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.9.0";
+    version = "2.9.1";
   };
   memoizable = {
     dependencies = ["thread_safe"];
@@ -898,10 +898,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
+      sha256 = "1sfa4120a7yl3gxjcx990gyawsshfr22gfv5rvgpk72l2p9j2420";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.1";
   };
   timecop = {
     source = {
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 51e48958ab76..bdbde4dbde48 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "13.17.0";
+  version = "13.18.0";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-j/80AIIJdRSisu2fNXcqazb4oIzAQP5CfxHX3l6yijY=";
+    sha256 = "sha256-TPe2quDg/ljI2v1HciDajosSPm4Z/iT2skeveNdrKdo=";
   };
 
   buildInputs = [ ruby ];
 
   patches = [ ./remove-hardcoded-locations.patch ];
 
-  vendorSha256 = "sha256-/jJTMtS5fcbQroWuaPPfvYxy6znNS0FOXVN7IcE/spQ=";
+  vendorSha256 = "sha256-MvWpZ/Z9ieNE0+p975BG302BPzFbCZD3cACXMW5fiTQ=";
 
   postInstall = ''
     cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index ff34a2d35959..c6302be8d184 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "13.10.2";
+  version = "13.12.2";
 
   src = fetchFromGitLab {
     owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   sourceRoot = "source/workhorse";
 
-  vendorSha256 = "sha256-UCkUSv1ZjDHmTFnETU8dz4moYRDCvy6AYTTfjHBGKeE=";
+  vendorSha256 = "sha256-JJN1KqqbP4fIW/k6LebIaWdYOmIzHqxCDgOKrkbB7Nw=";
   buildInputs = [ git ];
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
index 83e3d7fe1414..2026808875d0 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -1,8 +1,8 @@
 diff --git a/config/environments/production.rb b/config/environments/production.rb
-index d9b3ee354b0..1eb0507488b 100644
+index e1a7db8d860..5823f170410 100644
 --- a/config/environments/production.rb
 +++ b/config/environments/production.rb
-@@ -69,10 +69,10 @@
+@@ -71,10 +71,10 @@
  
    config.action_mailer.delivery_method = :sendmail
    # Defaults to:
@@ -18,10 +18,10 @@ index d9b3ee354b0..1eb0507488b 100644
    config.action_mailer.raise_delivery_errors = true
  
 diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
-index 92e7501d49d..4ee5a1127df 100644
+index da1a15302da..c846db93e5c 100644
 --- a/config/gitlab.yml.example
 +++ b/config/gitlab.yml.example
-@@ -1168,7 +1168,7 @@ production: &base
+@@ -1191,7 +1191,7 @@ production: &base
    # CAUTION!
    # Use the default values unless you really know what you are doing
    git:
@@ -31,19 +31,19 @@ index 92e7501d49d..4ee5a1127df 100644
    ## Webpack settings
    # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
 diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
-index bbed08f5044..2906e5c44af 100644
+index 99335321f28..9d9d1c48af4 100644
 --- a/config/initializers/1_settings.rb
 +++ b/config/initializers/1_settings.rb
-@@ -183,7 +183,7 @@
+@@ -185,7 +185,7 @@
  Settings.gitlab['user_home'] ||= begin
    Etc.getpwnam(Settings.gitlab['user']).dir
-                                  rescue ArgumentError # no user configured
--                                   '/home/' + Settings.gitlab['user']
-+                                   '/homeless-shelter'
+ rescue ArgumentError # no user configured
+-  '/home/' + Settings.gitlab['user']
++  '/homeless-shelter'
  end
  Settings.gitlab['time_zone'] ||= nil
  Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
-@@ -751,7 +751,7 @@
+@@ -794,7 +794,7 @@
  # Git
  #
  Settings['git'] ||= Settingslogic.new({})
@@ -97,7 +97,7 @@ index 9fc354a8fe8..2352ca9b58c 100644
  json_formatter = Gitlab::PumaLogging::JSONFormatter.new
  log_formatter do |str|
 diff --git a/lib/api/api.rb b/lib/api/api.rb
-index ada0da28749..8a3f5824008 100644
+index a287ffbfcd8..1a5ca59183a 100644
 --- a/lib/api/api.rb
 +++ b/lib/api/api.rb
 @@ -4,7 +4,7 @@ module API
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index af00e6e7af67..bb95233c6eb0 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -2,7 +2,7 @@
 
 source 'https://rubygems.org'
 
-gem 'rails', '~> 6.0.3.1'
+gem 'rails', '~> 6.0.3.6'
 
 gem 'bootsnap', '~> 1.4.6'
 
@@ -18,16 +18,21 @@ gem 'default_value_for', '~> 3.4.0'
 gem 'pg', '~> 1.1'
 
 gem 'rugged', '~> 1.1'
-gem 'grape-path-helpers', '~> 1.6.1'
+gem 'grape-path-helpers', '~> 1.6.3'
 
 gem 'faraday', '~> 1.0'
 gem 'marginalia', '~> 1.10.0'
 
+# Authorization
+gem 'declarative_policy', '~> 1.0.0'
+
 # Authentication libraries
 gem 'devise', '~> 4.7.2'
 gem 'bcrypt', '~> 3.1', '>= 3.1.14'
 gem 'doorkeeper', '~> 5.5.0.rc2'
 gem 'doorkeeper-openid_connect', '~> 1.7.5'
+gem 'rexml', '~> 3.2.5'
+gem 'ruby-saml', '~> 1.12.1'
 gem 'omniauth', '~> 1.8'
 gem 'omniauth-auth0', '~> 2.0.0'
 gem 'omniauth-azure-activedirectory-v2', '~> 0.1'
@@ -44,7 +49,7 @@ gem 'omniauth-shibboleth', '~> 1.3.0'
 gem 'omniauth-twitter', '~> 1.4'
 gem 'omniauth_crowd', '~> 2.4.0'
 gem 'omniauth-authentiq', '~> 0.3.3'
-gem 'omniauth_openid_connect', '~> 0.3.5'
+gem 'gitlab-omniauth-openid-connect', '~> 0.4.0', require: 'omniauth_openid_connect'
 gem 'omniauth-salesforce', '~> 1.0.5'
 gem 'omniauth-atlassian-oauth2', '~> 0.2.0'
 gem 'rack-oauth2', '~> 1.16.0'
@@ -59,7 +64,7 @@ gem 'akismet', '~> 3.0'
 gem 'invisible_captcha', '~> 1.1.0'
 
 # Two-factor authentication
-gem 'devise-two-factor', '~> 3.1.0'
+gem 'devise-two-factor', '~> 4.0.0'
 gem 'rqrcode-rails3', '~> 0.1.7'
 gem 'attr_encrypted', '~> 3.1.0'
 gem 'u2f', '~> 0.2.1'
@@ -87,7 +92,7 @@ gem 'net-ldap', '~> 0.16.3'
 
 # API
 gem 'grape', '~> 1.5.2'
-gem 'grape-entity', '~> 0.7.1'
+gem 'grape-entity', '~> 0.9.0'
 gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
 
 # GraphQL API
@@ -108,7 +113,7 @@ gem 'hashie-forbidden_attributes'
 gem 'kaminari', '~> 1.0'
 
 # HAML
-gem 'hamlit', '~> 2.14.4'
+gem 'hamlit', '~> 2.15.0'
 
 # Files attachments
 gem 'carrierwave', '~> 1.3'
@@ -150,7 +155,7 @@ gem 'deckar01-task_list', '2.3.1'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'github-markup', '~> 1.7.0', require: 'github/markup'
 gem 'commonmarker', '~> 0.21'
-gem 'kramdown', '~> 2.3.0'
+gem 'kramdown', '~> 2.3.1'
 gem 'RedCloth', '~> 4.3.2'
 gem 'rdoc', '~> 6.1.2'
 gem 'org-ruby', '~> 0.9.12'
@@ -198,7 +203,7 @@ gem 'acts-as-taggable-on', '~> 7.0'
 gem 'sidekiq', '~> 5.2.7'
 gem 'sidekiq-cron', '~> 1.0'
 gem 'redis-namespace', '~> 1.7.0'
-gem 'gitlab-sidekiq-fetcher', '0.5.5', require: 'sidekiq-reliable-fetch'
+gem 'gitlab-sidekiq-fetcher', '0.5.6', require: 'sidekiq-reliable-fetch'
 
 # Cron Parser
 gem 'fugit', '~> 1.2.1'
@@ -262,7 +267,7 @@ gem 'kubeclient', '~> 4.9.1'
 
 # Sanitize user input
 gem 'sanitize', '~> 5.2.1'
-gem 'babosa', '~> 1.0.2'
+gem 'babosa', '~> 1.0.4'
 
 # Sanitizes SVG input
 gem 'loofah', '~> 2.2'
@@ -274,10 +279,7 @@ gem 'licensee', '~> 9.14.1'
 gem 'charlock_holmes', '~> 0.7.7'
 
 # Detect mime content type from content
-gem 'ruby-magic-static', '~> 0.3.4'
-
-# Fake version of the gem to trick bundler
-gem 'mimemagic', '~> 0.3.10'
+gem 'ruby-magic', '~> 0.4'
 
 # Faster blank
 gem 'fast_blank'
@@ -294,11 +296,11 @@ gem 'terser', '1.0.2'
 
 gem 'addressable', '~> 2.7'
 gem 'gemojione', '~> 3.3'
-gem 'gon', '~> 6.2'
+gem 'gon', '~> 6.4.0'
 gem 'request_store', '~> 1.5'
 gem 'base32', '~> 0.3.0'
 
-gem "gitlab-license", "~> 1.3"
+gem 'gitlab-license', '~> 1.5'
 
 # Protect against bruteforcing
 gem 'rack-attack', '~> 6.3.0'
@@ -307,12 +309,12 @@ gem 'rack-attack', '~> 6.3.0'
 gem 'sentry-raven', '~> 3.0'
 
 # PostgreSQL query parsing
-gem 'pg_query', '~> 1.3.0'
+gem 'pg_query', '~> 2.0.3'
 
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '~> 0.16.1'
+gem 'gitlab-labkit', '~> 0.17.1'
 # Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
 # because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
 gem 'thrift', '>= 0.14.0'
@@ -343,13 +345,13 @@ group :metrics do
 end
 
 group :development do
-  gem 'brakeman', '~> 4.2', require: false
-  gem 'lefthook', '~> 0.7', require: false
+  gem 'lefthook', '~> 0.7.0', require: false
+  gem 'solargraph', '~> 0.40.4', require: false
 
-  gem 'letter_opener_web', '~> 1.3.4'
+  gem 'letter_opener_web', '~> 1.4.0'
 
   # Better errors handler
-  gem 'better_errors', '~> 2.7.1'
+  gem 'better_errors', '~> 2.9.0'
 
   # thin instead webrick
   gem 'thin', '~> 1.8.0'
@@ -358,15 +360,15 @@ end
 group :development, :test do
   gem 'deprecation_toolkit', '~> 1.5.1', require: false
   gem 'bullet', '~> 6.1.3'
-  gem 'gitlab-pry-byebug', platform: :mri, require: ['pry-byebug', 'pry-byebug/pry_remote_ext']
+  gem 'pry-byebug'
   gem 'pry-rails', '~> 0.3.9'
-  gem 'pry-remote'
+  gem 'pry-shell', '~> 0.4.0'
 
   gem 'awesome_print', require: false
 
   gem 'database_cleaner', '~> 1.7.0'
   gem 'factory_bot_rails', '~> 6.1.0'
-  gem 'rspec-rails', '~> 4.0.2'
+  gem 'rspec-rails', '~> 5.0.1'
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.11.0'
@@ -377,14 +379,14 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 6.1.0', require: false
+  gem 'gitlab-styles', '~> 6.2.0', require: false
 
   gem 'haml_lint', '~> 0.36.0', require: false
   gem 'bundler-audit', '~> 0.7.0.1', require: false
 
   gem 'benchmark-ips', '~> 2.3.0', require: false
 
-  gem 'knapsack', '~> 1.17'
+  gem 'knapsack', '~> 1.21.1'
   gem 'crystalball', '~> 0.7.0', require: false
 
   gem 'simple_po_parser', '~> 1.1.2', require: false
@@ -396,11 +398,12 @@ group :development, :test do
   gem 'parallel', '~> 1.19', require: false
 
   gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
+
+  gem 'test_file_finder', '~> 0.1.3'
 end
 
 group :development, :test, :danger do
-  gem 'danger-gitlab', '~> 8.0', require: false
-  gem 'gitlab-dangerfiles', '~> 0.8.0', require: false
+  gem 'gitlab-dangerfiles', '~> 2.0.0', require: false
 end
 
 group :development, :test, :coverage do
@@ -419,7 +422,7 @@ group :test do
   gem 'rspec_profiling', '~> 0.0.6'
   gem 'rspec-parameterized', require: false
 
-  gem 'capybara', '~> 3.34.0'
+  gem 'capybara', '~> 3.35.3'
   gem 'capybara-screenshot', '~> 1.0.22'
   gem 'selenium-webdriver', '~> 3.142'
 
@@ -474,12 +477,15 @@ group :ed25519 do
   gem 'bcrypt_pbkdf', '~> 1.0'
 end
 
+# Spamcheck GRPC protocol definitions
+gem 'spamcheck', '~> 0.1.0'
+
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 13.9.0.pre.rc1'
+gem 'gitaly', '~> 13.12.0.pre.rc1'
 
 gem 'grpc', '~> 1.30.2'
 
-gem 'google-protobuf', '~> 3.12'
+gem 'google-protobuf', '~> 3.15.8'
 
 gem 'toml-rb', '~> 1.0.0'
 
@@ -488,7 +494,7 @@ gem 'flipper', '~> 0.17.1'
 gem 'flipper-active_record', '~> 0.17.1'
 gem 'flipper-active_support_cache_store', '~> 0.17.1'
 gem 'unleash', '~> 0.1.5'
-gem 'gitlab-experiment', '~> 0.5.0'
+gem 'gitlab-experiment', '~> 0.5.4'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
@@ -512,15 +518,15 @@ gem 'erubi', '~> 1.9.0'
 # See https://gitlab.com/gitlab-org/gitlab/issues/197386
 gem 'mail', '= 2.7.1'
 
+
 # File encryption
-gem 'lockbox', '~> 0.3.3'
+gem 'lockbox', '~> 0.6.2'
 
 # Email validation
 gem 'valid_email', '~> 0.1'
 
 # JSON
 gem 'json', '~> 2.3.0'
-gem 'json-schema', '~> 2.8.0'
 gem 'json_schemer', '~> 0.2.12'
 gem 'oj', '~> 3.10.6'
 gem 'multi_json', '~> 1.14.1'
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 203d52ddb674..6f40a15a64bc 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -5,59 +5,59 @@ GEM
     abstract_type (0.0.7)
     acme-client (2.0.6)
       faraday (>= 0.17, < 2.0.0)
-    actioncable (6.0.3.4)
-      actionpack (= 6.0.3.4)
+    actioncable (6.0.3.6)
+      actionpack (= 6.0.3.6)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activejob (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      activestorage (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionmailbox (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activejob (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      activestorage (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       mail (>= 2.7.1)
-    actionmailer (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      actionview (= 6.0.3.4)
-      activejob (= 6.0.3.4)
+    actionmailer (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      actionview (= 6.0.3.6)
+      activejob (= 6.0.3.6)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.0.3.4)
-      actionview (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionpack (6.0.3.6)
+      actionview (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      activestorage (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actiontext (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      activestorage (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       nokogiri (>= 1.8.5)
-    actionview (6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionview (6.0.3.6)
+      activesupport (= 6.0.3.6)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (6.0.3.4)
-      activesupport (= 6.0.3.4)
+    activejob (6.0.3.6)
+      activesupport (= 6.0.3.6)
       globalid (>= 0.3.6)
-    activemodel (6.0.3.4)
-      activesupport (= 6.0.3.4)
-    activerecord (6.0.3.4)
-      activemodel (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    activemodel (6.0.3.6)
+      activesupport (= 6.0.3.6)
+    activerecord (6.0.3.6)
+      activemodel (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
     activerecord-explain-analyze (0.1.0)
       activerecord (>= 4)
       pg
-    activestorage (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activejob (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      marcel (~> 0.3.1)
-    activesupport (6.0.3.4)
+    activestorage (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activejob (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      marcel (~> 1.0.0)
+    activesupport (6.0.3.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -125,26 +125,27 @@ GEM
       faraday_middleware (~> 1.0.0.rc1)
       net-http-persistent (~> 4.0)
       nokogiri (~> 1.11.0.rc2)
-    babosa (1.0.2)
+    babosa (1.0.4)
+    backport (1.1.2)
     base32 (0.3.2)
     batch-loader (2.0.1)
     bcrypt (3.1.16)
     bcrypt_pbkdf (1.0.0)
+    benchmark (0.1.1)
     benchmark-ips (2.3.0)
     benchmark-memory (0.1.2)
       memory_profiler (~> 0.9)
-    better_errors (2.7.1)
+    better_errors (2.9.1)
       coderay (>= 1.0.0)
       erubi (>= 1.0.0)
       rack (>= 0.9.0)
-    bindata (2.4.8)
+    bindata (2.4.10)
     binding_ninja (0.2.3)
     bootsnap (1.4.6)
       msgpack (~> 1.0)
     bootstrap_form (4.2.0)
       actionpack (>= 5.0)
       activemodel (>= 5.0)
-    brakeman (4.2.1)
     browser (4.2.0)
     builder (3.2.4)
     bullet (6.1.3)
@@ -154,21 +155,22 @@ GEM
       bundler (>= 1.2.0, < 3)
       thor (>= 0.18, < 2)
     byebug (11.1.3)
-    capybara (3.34.0)
+    capybara (3.35.3)
       addressable
       mini_mime (>= 0.1.3)
       nokogiri (~> 1.8)
       rack (>= 1.6.0)
       rack-test (>= 0.6.3)
-      regexp_parser (~> 1.5)
+      regexp_parser (>= 1.5, < 3.0)
       xpath (~> 3.2)
     capybara-screenshot (1.0.22)
       capybara (>= 1.0, < 4)
       launchy
-    carrierwave (1.3.1)
+    carrierwave (1.3.2)
       activemodel (>= 4.0.0)
       activesupport (>= 4.0.0)
       mime-types (>= 1.16)
+      ssrf_filter (~> 1.0)
     cbor (0.5.9.6)
     character_set (1.4.0)
     charlock_holmes (0.7.7)
@@ -238,6 +240,7 @@ GEM
       html-pipeline
     declarative (0.0.20)
     declarative-option (0.1.0)
+    declarative_policy (1.0.0)
     default_value_for (3.4.0)
       activerecord (>= 3.2.0, < 7.0)
     deprecation_toolkit (1.5.1)
@@ -259,12 +262,12 @@ GEM
       railties (>= 4.1.0)
       responders
       warden (~> 1.2.3)
-    devise-two-factor (3.1.0)
-      activesupport (< 6.1)
+    devise-two-factor (4.0.0)
+      activesupport (< 6.2)
       attr_encrypted (>= 1.3, < 4, != 2)
       devise (~> 4.0)
-      railties (< 6.1)
-      rotp (~> 2.0)
+      railties (< 6.2)
+      rotp (~> 6.0)
     diff-lcs (1.4.4)
     diff_match_patch (0.1.0)
     diffy (3.3.0)
@@ -299,6 +302,7 @@ GEM
       dry-equalizer (~> 0.3)
       dry-inflector (~> 0.1, >= 0.1.2)
       dry-logic (~> 1.0, >= 1.0.2)
+    e2mmap (0.1.0)
     ecma-re-validator (0.2.1)
       regexp_parser (~> 1.2)
     ed25519 (1.2.4)
@@ -428,7 +432,7 @@ GEM
       rails (>= 3.2.0)
     git (1.7.0)
       rchardet (~> 1.8)
-    gitaly (13.9.0.pre.rc1)
+    gitaly (13.12.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab (4.16.1)
@@ -436,11 +440,12 @@ GEM
       terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-dangerfiles (0.8.0)
-      danger
-    gitlab-experiment (0.5.0)
+    gitlab-dangerfiles (2.0.0)
+      danger-gitlab
+    gitlab-experiment (0.5.4)
       activesupport (>= 3.0)
-      scientist (~> 1.5, >= 1.5.0)
+      request_store (>= 1.0)
+      scientist (~> 1.6, >= 1.6.0)
     gitlab-fog-azure-rm (1.0.1)
       azure-storage-blob (~> 2.0)
       azure-storage-common (~> 2.0)
@@ -455,24 +460,25 @@ GEM
       fog-xml (~> 0.1.0)
       google-api-client (>= 0.44.2, < 0.51)
       google-cloud-env (~> 1.2)
-    gitlab-labkit (0.16.1)
+    gitlab-labkit (0.17.1)
       actionpack (>= 5.0.0, < 7.0.0)
       activesupport (>= 5.0.0, < 7.0.0)
       grpc (~> 1.19)
       jaeger-client (~> 1.1)
       opentracing (~> 0.4)
-      pg_query (~> 1.3)
+      pg_query (~> 2.0)
       redis (> 3.0.0, < 5.0.0)
-    gitlab-license (1.3.1)
+    gitlab-license (1.5.0)
     gitlab-mail_room (0.0.9)
     gitlab-markup (1.7.1)
     gitlab-net-dns (0.9.1)
-    gitlab-pry-byebug (3.9.0)
-      byebug (~> 11.0)
-      pry (~> 0.13.0)
-    gitlab-sidekiq-fetcher (0.5.5)
+    gitlab-omniauth-openid-connect (0.4.0)
+      addressable (~> 2.7)
+      omniauth (~> 1.9)
+      openid_connect (~> 1.2)
+    gitlab-sidekiq-fetcher (0.5.6)
       sidekiq (~> 5)
-    gitlab-styles (6.1.0)
+    gitlab-styles (6.2.0)
       rubocop (~> 0.91, >= 0.91.1)
       rubocop-gitlab-security (~> 0.1.1)
       rubocop-performance (~> 1.9.2)
@@ -487,8 +493,9 @@ GEM
       rubyntlm (~> 0.5)
     globalid (0.4.2)
       activesupport (>= 4.2.0)
-    gon (6.2.0)
-      actionpack (>= 3.0)
+    gon (6.4.0)
+      actionpack (>= 3.0.20)
+      i18n (>= 0.7)
       multi_json
       request_store (>= 1.0)
     google-api-client (0.50.0)
@@ -502,9 +509,9 @@ GEM
       signet (~> 0.12)
     google-cloud-env (1.4.0)
       faraday (>= 0.17.3, < 2.0)
-    google-protobuf (3.12.4)
-    googleapis-common-protos-types (1.0.5)
-      google-protobuf (~> 3.11)
+    google-protobuf (3.15.8)
+    googleapis-common-protos-types (1.0.6)
+      google-protobuf (~> 3.14)
     googleauth (0.14.0)
       faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.4, < 3.0)
@@ -521,10 +528,10 @@ GEM
       mustermann-grape (~> 1.0.0)
       rack (>= 1.3.0)
       rack-accept
-    grape-entity (0.7.1)
-      activesupport (>= 4.0)
+    grape-entity (0.9.0)
+      activesupport (>= 3.0.0)
       multi_json (>= 1.3.2)
-    grape-path-helpers (1.6.1)
+    grape-path-helpers (1.6.3)
       activesupport
       grape (~> 1.3)
       rake (> 12)
@@ -579,7 +586,7 @@ GEM
       rainbow
       rubocop (>= 0.50.0)
       sysexits (~> 1.1)
-    hamlit (2.14.4)
+    hamlit (2.15.0)
       temple (>= 0.8.2)
       thor
       tilt
@@ -614,7 +621,7 @@ GEM
       mime-types (~> 3.0)
       multi_xml (>= 0.5.2)
     httpclient (2.8.3)
-    i18n (1.8.9)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     i18n_data (0.8.0)
     icalendar (2.4.1)
@@ -625,6 +632,7 @@ GEM
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
+    jaro_winkler (1.5.4)
     jira-ruby (2.1.4)
       activesupport
       atlassian-jwt
@@ -640,8 +648,6 @@ GEM
       activesupport (>= 4.2)
       aes_key_wrap
       bindata
-    json-schema (2.8.0)
-      addressable (>= 2.4)
     json_schemer (0.2.12)
       ecma-re-validator (~> 0.2)
       hana (~> 1.3)
@@ -664,9 +670,9 @@ GEM
       kaminari-core (= 1.2.1)
     kaminari-core (1.2.1)
     kgio (2.11.3)
-    knapsack (1.17.0)
+    knapsack (1.21.1)
       rake
-    kramdown (2.3.0)
+    kramdown (2.3.1)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -675,12 +681,12 @@ GEM
       jsonpath (~> 1.0)
       recursive-open-struct (~> 1.1, >= 1.1.1)
       rest-client (~> 2.0)
-    launchy (2.4.3)
-      addressable (~> 2.3)
+    launchy (2.5.0)
+      addressable (~> 2.7)
     lefthook (0.7.2)
     letter_opener (1.7.0)
       launchy (~> 2.2)
-    letter_opener_web (1.3.4)
+    letter_opener_web (1.4.0)
       actionmailer (>= 3.2)
       letter_opener (~> 1.0)
       railties (>= 3.2)
@@ -702,21 +708,20 @@ GEM
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     locale (2.1.3)
-    lockbox (0.3.3)
+    lockbox (0.6.2)
     lograge (0.11.2)
       actionpack (>= 4)
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.8.0)
+    loofah (2.9.1)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
     lumberjack (1.2.7)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
-    marcel (0.3.3)
-      mimemagic (~> 0.3.2)
+    marcel (1.0.1)
     marginalia (1.10.0)
       actionpack (>= 2.3)
       activerecord (>= 2.3)
@@ -728,12 +733,9 @@ GEM
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2020.0512)
-    mimemagic (0.3.10)
-      nokogiri (~> 1)
-      rake
     mini_histogram (0.3.1)
     mini_magick (4.10.1)
-    mini_mime (1.0.2)
+    mini_mime (1.1.0)
     mini_portile2 (2.5.0)
     minitest (5.11.3)
     mixlib-cli (2.1.8)
@@ -772,7 +774,7 @@ GEM
     netrc (0.11.0)
     nio4r (2.5.4)
     no_proxy_fix (0.1.2)
-    nokogiri (1.11.1)
+    nokogiri (1.11.3)
       mini_portile2 (~> 2.5.0)
       racc (~> 1.4)
     nokogumbo (2.0.2)
@@ -866,12 +868,8 @@ GEM
       activesupport
       nokogiri (>= 1.4.4)
       omniauth (~> 1.0)
-    omniauth_openid_connect (0.3.5)
-      addressable (~> 2.5)
-      omniauth (~> 1.9)
-      openid_connect (~> 1.1)
     open4 (1.3.4)
-    openid_connect (1.1.8)
+    openid_connect (1.2.0)
       activemodel
       attr_required (>= 1.0.0)
       json-jwt (>= 1.5.0)
@@ -893,10 +891,13 @@ GEM
     parser (3.0.0.0)
       ast (~> 2.4.1)
     parslet (1.8.2)
+    pastel (0.8.0)
+      tty-color (~> 0.5)
     peek (1.1.0)
       railties (>= 4.0.0)
     pg (1.2.3)
-    pg_query (1.3.0)
+    pg_query (2.0.3)
+      google-protobuf (~> 3.15.5)
     plist (3.6.0)
     png_quantizator (0.2.1)
     po_to_json (1.0.1)
@@ -917,11 +918,15 @@ GEM
     pry (0.13.1)
       coderay (~> 1.1)
       method_source (~> 1.0)
+    pry-byebug (3.9.0)
+      byebug (~> 11.0)
+      pry (~> 0.13.0)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
-    pry-remote (0.1.8)
-      pry (~> 0.9)
-      slop (~> 3.0)
+    pry-shell (0.4.0)
+      pry (~> 0.13.0)
+      tty-markdown
+      tty-prompt
     public_suffix (4.0.6)
     puma (5.1.1)
       nio4r (~> 2.0)
@@ -951,20 +956,20 @@ GEM
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
     rack-timeout (0.5.2)
-    rails (6.0.3.4)
-      actioncable (= 6.0.3.4)
-      actionmailbox (= 6.0.3.4)
-      actionmailer (= 6.0.3.4)
-      actionpack (= 6.0.3.4)
-      actiontext (= 6.0.3.4)
-      actionview (= 6.0.3.4)
-      activejob (= 6.0.3.4)
-      activemodel (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      activestorage (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    rails (6.0.3.6)
+      actioncable (= 6.0.3.6)
+      actionmailbox (= 6.0.3.6)
+      actionmailer (= 6.0.3.6)
+      actionpack (= 6.0.3.6)
+      actiontext (= 6.0.3.6)
+      actionview (= 6.0.3.6)
+      activejob (= 6.0.3.6)
+      activemodel (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      activestorage (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       bundler (>= 1.3.0)
-      railties (= 6.0.3.4)
+      railties (= 6.0.3.6)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
@@ -978,9 +983,9 @@ GEM
     rails-i18n (6.0.0)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 7)
-    railties (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    railties (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.20.3, < 2.0)
@@ -1040,9 +1045,9 @@ GEM
     retriable (3.1.2)
     reverse_markdown (1.4.0)
       nokogiri
-    rexml (3.2.4)
+    rexml (3.2.5)
     rinku (2.0.0)
-    rotp (2.1.2)
+    rotp (6.2.0)
     rouge (3.26.0)
     rqrcode (0.7.0)
       chunky_png
@@ -1066,10 +1071,10 @@ GEM
       proc_to_ast
       rspec (>= 2.13, < 4)
       unparser
-    rspec-rails (4.0.2)
-      actionpack (>= 4.2)
-      activesupport (>= 4.2)
-      railties (>= 4.2)
+    rspec-rails (5.0.1)
+      actionpack (>= 5.2)
+      activesupport (>= 5.2)
+      railties (>= 5.2)
       rspec-core (~> 3.10)
       rspec-expectations (~> 3.10)
       rspec-mocks (~> 3.10)
@@ -1111,12 +1116,13 @@ GEM
       i18n
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
-    ruby-magic-static (0.3.5)
+    ruby-magic (0.4.0)
       mini_portile2 (~> 2.5.0)
     ruby-prof (1.3.1)
     ruby-progressbar (1.11.0)
-    ruby-saml (1.7.2)
-      nokogiri (>= 1.5.10)
+    ruby-saml (1.12.1)
+      nokogiri (>= 1.10.5)
+      rexml
     ruby-statistics (2.1.2)
     ruby2_keywords (0.0.2)
     ruby_parser (3.15.0)
@@ -1186,9 +1192,24 @@ GEM
     simplecov-html (0.12.2)
     sixarm_ruby_unaccent (1.2.0)
     slack-messenger (2.3.4)
-    slop (3.6.0)
     snowplow-tracker (0.6.1)
       contracts (~> 0.7, <= 0.11)
+    solargraph (0.40.4)
+      backport (~> 1.1)
+      benchmark
+      bundler (>= 1.17.2)
+      e2mmap
+      jaro_winkler (~> 1.5)
+      kramdown (~> 2.3)
+      kramdown-parser-gfm (~> 1.1)
+      parser (~> 3.0)
+      reverse_markdown (>= 1.0.5, < 3)
+      rubocop (>= 0.52)
+      thor (~> 1.0)
+      tilt (~> 2.0)
+      yard (~> 0.9, >= 0.9.24)
+    spamcheck (0.1.0)
+      grpc (~> 1.0)
     spring (2.1.1)
     spring-commands-rspec (1.0.4)
       spring (>= 0.9.1)
@@ -1201,6 +1222,7 @@ GEM
       sprockets (>= 3.0.0)
     sqlite3 (1.3.13)
     sshkey (2.0.0)
+    ssrf_filter (1.0.7)
     stackprof (0.2.15)
     state_machines (0.5.0)
     state_machines-activemodel (0.8.0)
@@ -1209,7 +1231,12 @@ GEM
     state_machines-activerecord (0.8.0)
       activerecord (>= 5.1)
       state_machines-activemodel (>= 0.8.0)
-    swd (1.1.2)
+    strings (0.2.1)
+      strings-ansi (~> 0.2)
+      unicode-display_width (>= 1.5, < 3.0)
+      unicode_utils (~> 1.4)
+    strings-ansi (0.2.0)
+    swd (1.2.0)
       activesupport (>= 3)
       attr_required (>= 0.0.5)
       httpclient (>= 2.4)
@@ -1222,6 +1249,8 @@ GEM
     terser (1.0.2)
       execjs (>= 0.3.0, < 3)
     test-prof (0.12.0)
+    test_file_finder (0.1.3)
+      faraday (~> 1.0.1)
     text (1.3.1)
     thin (1.8.0)
       daemons (~> 1.0, >= 1.0.9)
@@ -1253,6 +1282,23 @@ GEM
     truncato (0.7.11)
       htmlentities (~> 4.3.1)
       nokogiri (>= 1.7.0, <= 2.0)
+    tty-color (0.6.0)
+    tty-cursor (0.7.1)
+    tty-markdown (0.7.0)
+      kramdown (>= 1.16.2, < 3.0)
+      pastel (~> 0.8)
+      rouge (~> 3.14)
+      strings (~> 0.2.0)
+      tty-color (~> 0.5)
+      tty-screen (~> 0.8)
+    tty-prompt (0.23.1)
+      pastel (~> 0.8)
+      tty-reader (~> 0.8)
+    tty-reader (0.9.0)
+      tty-cursor (~> 0.7)
+      tty-screen (~> 0.8)
+      wisper (~> 2.0)
+    tty-screen (0.8.1)
     tzinfo (1.2.9)
       thread_safe (~> 0.1)
     u2f (0.2.1)
@@ -1321,12 +1367,14 @@ GEM
       builder
       expression_parser
       rinku
+    wisper (2.0.1)
     with_env (1.1.0)
     wmi-lite (1.0.5)
     xml-simple (1.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
     yajl-ruby (1.4.1)
+    yard (0.9.26)
     zeitwerk (2.4.2)
 
 PLATFORMS
@@ -1352,21 +1400,20 @@ DEPENDENCIES
   aws-sdk-cloudformation (~> 1)
   aws-sdk-core (~> 3)
   aws-sdk-s3 (~> 1)
-  babosa (~> 1.0.2)
+  babosa (~> 1.0.4)
   base32 (~> 0.3.0)
   batch-loader (~> 2.0.1)
   bcrypt (~> 3.1, >= 3.1.14)
   bcrypt_pbkdf (~> 1.0)
   benchmark-ips (~> 2.3.0)
   benchmark-memory (~> 0.1)
-  better_errors (~> 2.7.1)
+  better_errors (~> 2.9.0)
   bootsnap (~> 1.4.6)
   bootstrap_form (~> 4.2.0)
-  brakeman (~> 4.2)
   browser (~> 4.2)
   bullet (~> 6.1.3)
   bundler-audit (~> 0.7.0.1)
-  capybara (~> 3.34.0)
+  capybara (~> 3.35.3)
   capybara-screenshot (~> 1.0.22)
   carrierwave (~> 1.3)
   charlock_holmes (~> 0.7.7)
@@ -1376,15 +1423,15 @@ DEPENDENCIES
   countries (~> 3.0)
   creole (~> 0.5.0)
   crystalball (~> 0.7.0)
-  danger-gitlab (~> 8.0)
   database_cleaner (~> 1.7.0)
   deckar01-task_list (= 2.3.1)
+  declarative_policy (~> 1.0.0)
   default_value_for (~> 3.4.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
   device_detector
   devise (~> 4.7.2)
-  devise-two-factor (~> 3.1.0)
+  devise-two-factor (~> 4.0.0)
   diff_match_patch (~> 0.1.0)
   diffy (~> 3.3)
   discordrb-webhooks (~> 3.4)
@@ -1419,30 +1466,30 @@ DEPENDENCIES
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 13.9.0.pre.rc1)
+  gitaly (~> 13.12.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 0.8.0)
-  gitlab-experiment (~> 0.5.0)
+  gitlab-dangerfiles (~> 2.0.0)
+  gitlab-experiment (~> 0.5.4)
   gitlab-fog-azure-rm (~> 1.0.1)
   gitlab-fog-google (~> 1.13)
-  gitlab-labkit (~> 0.16.1)
-  gitlab-license (~> 1.3)
+  gitlab-labkit (~> 0.17.1)
+  gitlab-license (~> 1.5)
   gitlab-mail_room (~> 0.0.9)
   gitlab-markup (~> 1.7.1)
   gitlab-net-dns (~> 0.9.1)
-  gitlab-pry-byebug
-  gitlab-sidekiq-fetcher (= 0.5.5)
-  gitlab-styles (~> 6.1.0)
+  gitlab-omniauth-openid-connect (~> 0.4.0)
+  gitlab-sidekiq-fetcher (= 0.5.6)
+  gitlab-styles (~> 6.2.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
-  gon (~> 6.2)
+  gon (~> 6.4.0)
   google-api-client (~> 0.33)
-  google-protobuf (~> 3.12)
+  google-protobuf (~> 3.15.8)
   gpgme (~> 2.0.19)
   grape (~> 1.5.2)
-  grape-entity (~> 0.7.1)
-  grape-path-helpers (~> 1.6.1)
+  grape-entity (~> 0.9.0)
+  grape-path-helpers (~> 1.6.3)
   grape_logging (~> 1.7)
   graphiql-rails (~> 1.4.10)
   graphlient (~> 0.4.0)
@@ -1452,7 +1499,7 @@ DEPENDENCIES
   gssapi
   guard-rspec
   haml_lint (~> 0.36.0)
-  hamlit (~> 2.14.4)
+  hamlit (~> 2.15.0)
   hangouts-chat (~> 0.0.5)
   hashie
   hashie-forbidden_attributes
@@ -1466,18 +1513,17 @@ DEPENDENCIES
   jira-ruby (~> 2.1.4)
   js_regex (~> 3.4)
   json (~> 2.3.0)
-  json-schema (~> 2.8.0)
   json_schemer (~> 0.2.12)
   jwt (~> 2.1.0)
   kaminari (~> 1.0)
-  knapsack (~> 1.17)
-  kramdown (~> 2.3.0)
+  knapsack (~> 1.21.1)
+  kramdown (~> 2.3.1)
   kubeclient (~> 4.9.1)
-  lefthook (~> 0.7)
-  letter_opener_web (~> 1.3.4)
+  lefthook (~> 0.7.0)
+  letter_opener_web (~> 1.4.0)
   license_finder (~> 6.0)
   licensee (~> 9.14.1)
-  lockbox (~> 0.3.3)
+  lockbox (~> 0.6.2)
   lograge (~> 0.5)
   loofah (~> 2.2)
   lru_redux
@@ -1485,7 +1531,6 @@ DEPENDENCIES
   marginalia (~> 1.10.0)
   memory_profiler (~> 0.9)
   method_source (~> 1.0)
-  mimemagic (~> 0.3.10)
   mini_magick (~> 4.10.1)
   minitest (~> 5.11.0)
   multi_json (~> 1.14.1)
@@ -1515,18 +1560,18 @@ DEPENDENCIES
   omniauth-shibboleth (~> 1.3.0)
   omniauth-twitter (~> 1.4)
   omniauth_crowd (~> 2.4.0)
-  omniauth_openid_connect (~> 0.3.5)
   org-ruby (~> 0.9.12)
   parallel (~> 1.19)
   parslet (~> 1.8)
   peek (~> 1.1)
   pg (~> 1.1)
-  pg_query (~> 1.3.0)
+  pg_query (~> 2.0.3)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
   prometheus-client-mmap (~> 0.12.0)
+  pry-byebug
   pry-rails (~> 0.3.9)
-  pry-remote
+  pry-shell (~> 0.4.0)
   puma (~> 5.1.1)
   puma_worker_killer (~> 0.3.1)
   rack (~> 2.2.3)
@@ -1535,7 +1580,7 @@ DEPENDENCIES
   rack-oauth2 (~> 1.16.0)
   rack-proxy (~> 0.6.0)
   rack-timeout (~> 0.5.1)
-  rails (~> 6.0.3.1)
+  rails (~> 6.0.3.6)
   rails-controller-testing
   rails-i18n (~> 6.0)
   rainbow (~> 3.0)
@@ -1551,17 +1596,19 @@ DEPENDENCIES
   request_store (~> 1.5)
   responders (~> 3.0)
   retriable (~> 3.1.2)
+  rexml (~> 3.2.5)
   rouge (~> 3.26.0)
   rqrcode-rails3 (~> 0.1.7)
   rspec-parameterized
-  rspec-rails (~> 4.0.2)
+  rspec-rails (~> 5.0.1)
   rspec-retry (~> 0.6.1)
   rspec_junit_formatter
   rspec_profiling (~> 0.0.6)
   ruby-fogbugz (~> 0.2.1)
-  ruby-magic-static (~> 0.3.4)
+  ruby-magic (~> 0.4)
   ruby-prof (~> 1.3.0)
   ruby-progressbar (~> 1.10)
+  ruby-saml (~> 1.12.1)
   ruby_parser (~> 3.15)
   rubyzip (~> 2.0.0)
   rugged (~> 1.1)
@@ -1579,6 +1626,8 @@ DEPENDENCIES
   simplecov-cobertura (~> 1.3.1)
   slack-messenger (~> 2.3.4)
   snowplow-tracker (~> 0.6.1)
+  solargraph (~> 0.40.4)
+  spamcheck (~> 0.1.0)
   spring (~> 2.1.0)
   spring-commands-rspec (~> 1.0.4)
   sprockets (~> 3.7.0)
@@ -1588,6 +1637,7 @@ DEPENDENCIES
   sys-filesystem (~> 1.1.6)
   terser (= 1.0.2)
   test-prof (~> 0.12.0)
+  test_file_finder (~> 0.1.3)
   thin (~> 1.8.0)
   thrift (>= 0.14.0)
   timecop (~> 0.9.1)
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index f6c26777f4f2..9500febc8563 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y3aa0965cdsqamxk8ac6brcvijl1zv4pvqils6xy3pbcrv0ljid";
+      sha256 = "1543p34bfq7s4l83m0f84f0z5yr1ip1miyimv4gh2k136pgk23r9";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10vb9s4frq22h5j6gyw2598k1jc29lg2czm95hf284l3mi4qly6a";
+      sha256 = "0dnx7mhhzwr45lsxkd7y9ld9vazcadxzs7813jp19hk3wra4jvs3";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -48,10 +48,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ykn5qkwdlcv5aa1gjhhmrxpjccwa7df6n4amvkmvxv5lggyma52";
+      sha256 = "1cnsv97qx7708wg00lxcl7a6h8amxn85h40s8ngszhknh8wpwj3f";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -59,10 +59,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
+      sha256 = "10rn7gmnnwpm593xv6lcf4qa72wmlbyjg4zmdc3lpb5596whd3yz";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -70,10 +70,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0j0m76ynjspmvj5qbzl06kl9i920v269iz62y62009xydv6rqz";
+      sha256 = "13i7x4zp991sq3zsagpzs01bhm81zgy63lamqrpsp68nv584n5sx";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -81,10 +81,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
+      sha256 = "0ikqpxsrsb7xmq6ds5iq22nj2j3ai16z8z2j5r6lk8pzbi0wwsz5";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -92,10 +92,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d0p8gjplrgym38dmchyzhv7lrrxngz0yrxl6xyvwxfxm1hgdk2k";
+      sha256 = "1sy9kyl7famlwrdw7gz6sy7azhkcsn1mjja44s44libcz3fl7jpc";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -103,10 +103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00jj8namy5niq7grl5lrsr4y351rxpj1b69k1i9gvb1hnpghl099";
+      sha256 = "15kq8ghmkav331dz1pak1bc8q1v5xajw6pkj20hqr8m5zl6czcld";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -114,10 +114,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06qvvp73z8kq9sd2mhw6p9124q5pfkswjga2fidz4c73zbr79r3g";
+      sha256 = "1a3hc2rammy4mfrjwzc9rsn497yq9xc0x89c00niiq45q3qs44vz";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activerecord-explain-analyze = {
     dependencies = ["activerecord" "pg"];
@@ -136,10 +136,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q734331wb7cfsh4jahj3lphpxvglzb17yvibwss1ml4g01xxm52";
+      sha256 = "1jwdfqn01g7v7ssrrf2q2pvc8k6rdqccp26qkyfxiraaz9d1la62";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -147,10 +147,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
+      sha256 = "0sls37x9pd2zmipn14c46gcjbfzlg269r413cvm0d58595qkiv7z";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   acts-as-taggable-on = {
     dependencies = ["activerecord"];
@@ -455,10 +455,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
+      sha256 = "16dwqn33kmxkqkv51cwiikdkbrdjfsymlnc0rgbjwilmym8a9phq";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.4";
+  };
+  backport = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xmjljpyx5ly078gi0lmmgkv4y0msxxa3hmv74bzxzp3l8qbn5vc";
+      type = "gem";
+    };
+    version = "1.1.2";
   };
   base32 = {
     groups = ["default"];
@@ -500,6 +510,16 @@
     };
     version = "1.0.0";
   };
+  benchmark = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jvrl7400fv7v2jjri1r7ilj3sri36hzipwwgpn5psib4c9c59c6";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
   benchmark-ips = {
     groups = ["development" "test"];
     platforms = [];
@@ -527,20 +547,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kn7rv81i2r462k56v29i3s8abcmfcpfj9axia736mwjvv0app2k";
+      sha256 = "11220lfzhsyf5fcril3qd689kgg46qlpiiaj00hc9mh4mcbc3vrr";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.9.1";
   };
   bindata = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bmlqjb5h1ry6wm2d903d6yxibpqzzxwqczvlicsqv0vilaca5ic";
+      sha256 = "06lqi4svq5qls9f7nnvd2zmjdqmi2sf82sq78ci5d78fq0z5x2vr";
       type = "gem";
     };
-    version = "2.4.8";
+    version = "2.4.10";
   };
   binding_ninja = {
     groups = ["default" "development" "test"];
@@ -574,16 +594,6 @@
     };
     version = "4.2.0";
   };
-  brakeman = {
-    groups = ["development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
-      type = "gem";
-    };
-    version = "4.2.1";
-  };
   browser = {
     groups = ["default"];
     platforms = [];
@@ -646,10 +656,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i1bm7r8n67cafd9p3ck7vdmng921b41n9znvlfaz7cy8a3gsrgm";
+      sha256 = "1viqcpsngy9fqjd68932m43ad6xj656d1x33nx9565q57chgi29k";
       type = "gem";
     };
-    version = "3.34.0";
+    version = "3.35.3";
   };
   capybara-screenshot = {
     dependencies = ["capybara" "launchy"];
@@ -663,15 +673,15 @@
     version = "1.0.22";
   };
   carrierwave = {
-    dependencies = ["activemodel" "activesupport" "mime-types"];
+    dependencies = ["activemodel" "activesupport" "mime-types" "ssrf_filter"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks";
+      sha256 = "055i3ybjv9n9hqaazxn3d9ibqhlwh93d4hdlwbpjjfy8qbrz6hiw";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.3.2";
   };
   cbor = {
     groups = ["default"];
@@ -1024,6 +1034,16 @@
     };
     version = "0.1.0";
   };
+  declarative_policy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2wl0jr0jq64gy7ibb1ipm2dzqil7y66vyffwx81g7sqchh7xh6";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
   default_value_for = {
     dependencies = ["activerecord"];
     groups = ["default"];
@@ -1084,10 +1104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gzk7phrryxlq4k3jrcxm8faifmbqrbfxq7jx089ncsixwd69bn4";
+      sha256 = "148pfr6g8dwikdq3994gsid2a3n6p5h4z1a1dzh1898shr5f9znc";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "4.0.0";
   };
   diff-lcs = {
     groups = ["default" "development" "test"];
@@ -1258,6 +1278,16 @@
     };
     version = "1.4.0";
   };
+  e2mmap = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
   ecma-re-validator = {
     dependencies = ["regexp_parser"];
     groups = ["default"];
@@ -1861,10 +1891,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "137gr4nbxhcyh4s60r2z0js8q2bfnmxiggwnf122wp9csywlnyg2";
+      sha256 = "1l0zq04lhqbzg0grca1c0p3a5gb9jdlhy41dhlgnrsaf7k6xads6";
       type = "gem";
     };
-    version = "13.9.0.pre.rc1";
+    version = "13.12.0.pre.rc1";
   };
   github-markup = {
     groups = ["default"];
@@ -1899,26 +1929,26 @@
     version = "0.10.5";
   };
   gitlab-dangerfiles = {
-    dependencies = ["danger"];
+    dependencies = ["danger-gitlab"];
     groups = ["danger" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09ggs890b5gfphnz7ayavs55l6xhw323spfd22dg246g0rw9vliy";
+      sha256 = "0h40p9v034jczialkh4brrv7karrx6a95mhrfpfs17p800lighzz";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "2.0.0";
   };
   gitlab-experiment = {
-    dependencies = ["activesupport" "scientist"];
+    dependencies = ["activesupport" "request_store" "scientist"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x4hyva7ypi2mx5jcyxac8w7ffai1pkkjc49fk3avqh4aimlibfr";
+      sha256 = "18xc1785b9h0vwlqgi2m0mhjim6jaqqpi8nnl4hh8mbjd4d6kf1j";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.5.4";
   };
   gitlab-fog-azure-rm = {
     dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
@@ -1948,20 +1978,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03i8fc1yzm5yzqxb8bxhjkhqpj17fy71vg2z02bcj4mzbj0piflx";
+      sha256 = "1y1sk3xmxj14nzx7v2zgq4q4d5lh4v1pvhs03n03j3kp4fbrj469";
       type = "gem";
     };
-    version = "0.16.1";
+    version = "0.17.1";
   };
   gitlab-license = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01z5pb6fg1j83p73vys2fhj7qh60zkqbgiyp4nvw013a6hjlv3qk";
+      sha256 = "07qcbdrxqwbri0kgiamrvx9y7cii3smf94g6scgn2l369m6955x1";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.5.0";
   };
   gitlab-mail_room = {
     groups = ["default"];
@@ -1993,20 +2023,16 @@
     };
     version = "0.9.1";
   };
-  gitlab-pry-byebug = {
-    dependencies = ["byebug" "pry"];
-    groups = ["development" "test"];
-    platforms = [{
-      engine = "maglev";
-    } {
-      engine = "ruby";
-    }];
+  gitlab-omniauth-openid-connect = {
+    dependencies = ["addressable" "omniauth" "openid_connect"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sp33vzzw8b7q9d8kb4pw8cl5fzlbffdpwz125x1g3kdiwz8xp3j";
+      sha256 = "16vbdyp2ml2i59xnpk0w5grh441kxcdpr639yzv69brjnrf3h9di";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "0.4.0";
   };
   gitlab-sidekiq-fetcher = {
     dependencies = ["sidekiq"];
@@ -2014,10 +2040,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "055v0cxvxgy12iwhqa2xbsxa9j6ww7p1f5jqwncwsnr7l6f1f4c9";
+      sha256 = "0838p0vnyl65571d8j5hljwyfyhsnfs6dlj6di57gpmwrbl9sdpr";
       type = "gem";
     };
-    version = "0.5.5";
+    version = "0.5.6";
   };
   gitlab-styles = {
     dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
@@ -2025,10 +2051,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y3livdpkdzp4cy47ycpwqa7nhrf6fb1ff2lwhh4l5n4dpqympwn";
+      sha256 = "1lgjp6cfb92z7i03f9k519bjabnnh1k0bgzmagp5x15iza73sz4v";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.2.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2064,15 +2090,15 @@
     version = "0.4.2";
   };
   gon = {
-    dependencies = ["actionpack" "multi_json" "request_store"];
+    dependencies = ["actionpack" "i18n" "multi_json" "request_store"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
+      sha256 = "1w6ji15jrl4p6q0gxy5mmqspvzbmgkqj1d3xmbqr0a1rb7b1i9p3";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "6.4.0";
   };
   google-api-client = {
     dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet"];
@@ -2101,10 +2127,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m3la0yid3bqx9b30raisqbp27d0q7vdrlslazrdasf8v1vhifxj";
+      sha256 = "0d9ayd4c69iag9nny7yydjx6dw4ymd52x1kv917ngv3vmsdkv51x";
       type = "gem";
     };
-    version = "3.12.4";
+    version = "3.15.8";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
@@ -2112,10 +2138,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1aava1b75n056s24gn7ajrkmm6s3xa3swl62dl5q9apw4marghji";
+      sha256 = "0074jk8fdl5rh7hfgx00n17sg493xrylkjkslx2d7cj5mk6hwn7d";
       type = "gem";
     };
-    version = "1.0.5";
+    version = "1.0.6";
   };
   googleauth = {
     dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
@@ -2156,10 +2182,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
+      sha256 = "0sqk33djlyvkinj0vxblfcib86bk9dy0iq2c3j2yalxyrpns3kfr";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.9.0";
   };
   grape-path-helpers = {
     dependencies = ["activesupport" "grape" "rake" "ruby2_keywords"];
@@ -2167,10 +2193,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xdp7b5fnvm89szy8ghpl6wm125iq7f0qnhibj5bxqrvg3xyhc2m";
+      sha256 = "1jbajciakiq9wwax2x11jzhmwzkcpkb4c0gfl01aj8a3l99gvgs9";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.6.3";
   };
   grape_logging = {
     dependencies = ["grape" "rack"];
@@ -2319,10 +2345,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gjbdni9jdpsdahrx2q7cvrc6jkrzpf9rdi0rli8mdvwi9xjafz5";
+      sha256 = "13n3v9kbyrrm48hn1v0028cdrsq7pswb4s4w63x4b29kc99m1s6j";
       type = "gem";
     };
-    version = "2.14.4";
+    version = "2.15.0";
   };
   hana = {
     groups = ["default"];
@@ -2509,10 +2535,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.9";
+    version = "1.8.10";
   };
   i18n_data = {
     groups = ["default"];
@@ -2576,6 +2602,16 @@
     };
     version = "1.1.0";
   };
+  jaro_winkler = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
+      type = "gem";
+    };
+    version = "1.5.4";
+  };
   jira-ruby = {
     dependencies = ["activesupport" "atlassian-jwt" "multipart-post" "oauth"];
     groups = ["default"];
@@ -2629,17 +2665,6 @@
     };
     version = "1.13.0";
   };
-  json-schema = {
-    dependencies = ["addressable"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
-      type = "gem";
-    };
-    version = "2.8.0";
-  };
   json_schemer = {
     dependencies = ["ecma-re-validator" "hana" "regexp_parser" "uri_template"];
     groups = ["default"];
@@ -2731,21 +2756,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92";
+      sha256 = "056g86ndhq51303k4g3fhdfwhpr6cpzypxhlnp0wxjpbmli09xw2";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.21.1";
   };
   kramdown = {
     dependencies = ["rexml"];
-    groups = ["default" "development"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+      sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -2775,10 +2800,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+      sha256 = "1xdyvr5j0gjj7b10kgvh8ylxnwk3wx19my42wqn9h82r4p246hlm";
       type = "gem";
     };
-    version = "2.4.3";
+    version = "2.5.0";
   };
   lefthook = {
     groups = ["development"];
@@ -2807,10 +2832,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17qhwrkncrrp1bi2f7fbkm5lpnkdsiwy8jcvgr2wa97ck8y4x2bb";
+      sha256 = "0pianlrbf9n7jrqxpyxgsfk1j1d312d57d6gq7yxni6ax2q0293q";
       type = "gem";
     };
-    version = "1.3.4";
+    version = "1.4.0";
   };
   libyajl2 = {
     groups = ["default"];
@@ -2870,10 +2895,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sgbs0frk601yc7bb33pz5z9cyadvj077vwy9k5zapsbn2rxf5aj";
+      sha256 = "0g6w327y8d7dr0d7zw6p7hmlwh0hcvb7pkc7xxyf5mn3fmw6fdh1";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.6.2";
   };
   lograge = {
     dependencies = ["actionpack" "activesupport" "railties" "request_store"];
@@ -2892,10 +2917,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.1";
   };
   lru_redux = {
     groups = ["default"];
@@ -2929,15 +2954,14 @@
     version = "2.7.1";
   };
   marcel = {
-    dependencies = ["mimemagic"];
-    groups = ["default" "development" "test"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+      sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "1.0.1";
   };
   marginalia = {
     dependencies = ["actionpack" "activerecord"];
@@ -3016,17 +3040,6 @@
     };
     version = "3.2020.0512";
   };
-  mimemagic = {
-    dependencies = ["nokogiri" "rake"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cqm9n9122qpksn9v6mp0gn3lrzxhh72lwl7yb6j75gykdan6h41";
-      type = "gem";
-    };
-    version = "0.3.10";
-  };
   mini_histogram = {
     groups = ["default" "test"];
     platforms = [];
@@ -3052,10 +3065,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "0kb7jq3wjgckmkzna799y5qmvn6vg52878bkgw35qay6lflcrwih";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.0";
   };
   mini_portile2 = {
     groups = ["default" "development" "test"];
@@ -3321,10 +3334,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
+      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.11.3";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -3642,17 +3655,6 @@
     };
     version = "2.4.0";
   };
-  omniauth_openid_connect = {
-    dependencies = ["addressable" "omniauth" "openid_connect"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1wxf52yggvwmyg6f9fiykh1sk51xx34i6x6m8f06ia56npslc4aw";
-      type = "gem";
-    };
-    version = "0.3.5";
-  };
   open4 = {
     groups = ["default" "development"];
     platforms = [];
@@ -3669,10 +3671,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r50vwf9hsf6r8gx5mwqs3w3w92l864ikiz9d0fcibqsr1489pbg";
+      sha256 = "1nqhgvq006h6crbp8lffw66ll46zf319c2637g4sybdclglismma";
       type = "gem";
     };
-    version = "1.1.8";
+    version = "1.2.0";
   };
   openssl = {
     groups = ["default"];
@@ -3776,6 +3778,17 @@
     };
     version = "1.8.2";
   };
+  pastel = {
+    dependencies = ["tty-color"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
   peek = {
     dependencies = ["railties"];
     groups = ["default"];
@@ -3798,14 +3811,15 @@
     version = "1.2.3";
   };
   pg_query = {
+    dependencies = ["google-protobuf"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i9l3y502ddm2lq3ajhxhqq17vs9hgxkxm443yw221ccibcfh6qf";
+      sha256 = "1mii63kgppy2zil2qn54c94z93b6ama6x7gq6rbv4xxlfk8ncrag";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "2.0.3";
   };
   plist = {
     groups = ["default"];
@@ -3906,6 +3920,17 @@
     };
     version = "0.13.1";
   };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
   pry-rails = {
     dependencies = ["pry"];
     groups = ["development" "test"];
@@ -3917,16 +3942,16 @@
     };
     version = "0.3.9";
   };
-  pry-remote = {
-    dependencies = ["pry" "slop"];
+  pry-shell = {
+    dependencies = ["pry" "tty-markdown" "tty-prompt"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10g1wrkcy5v5qyg9fpw1cag6g5rlcl1i66kn00r7kwqkzrdhd7nm";
+      sha256 = "1315j8klxd404xxmcw1c6rlx7j445dzx62q5sggzvd59sl1amkf5";
       type = "gem";
     };
-    version = "0.1.8";
+    version = "0.4.0";
   };
   public_suffix = {
     groups = ["default" "development" "test"];
@@ -4093,10 +4118,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vs4kfgp5pr5032nnhdapq60ga6karann06ilq1yjx8qck87cfxg";
+      sha256 = "01mwx4q9yz792dbi61j378iz6p7q63sxj3267jwwccjqmn6hf2kr";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -4148,10 +4173,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x28620cvfja8r06lk6f90pw5lvijz9qi4bjsa4z1d1rkr3v4r3w";
+      sha256 = "0i50vbscdk6wqxd2p0xwsyi07lwda612njqk8pn1f56snz5z0dcr";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -4453,14 +4478,14 @@
     version = "1.4.0";
   };
   rexml = {
-    groups = ["default" "development" "test"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "3.2.4";
+    version = "3.2.5";
   };
   rinku = {
     groups = ["default"];
@@ -4477,10 +4502,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+      sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3";
       type = "gem";
     };
-    version = "2.1.2";
+    version = "6.2.0";
   };
   rouge = {
     groups = ["default"];
@@ -4575,10 +4600,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0aw5knjij21kzwis3vkcmqc16p55lbig1wq0i37093qga7zfsdg1";
+      sha256 = "1pj2a9vrkp2xzlq0810q90sdc2zcqc7k92n57hxzhri2vcspy7n6";
       type = "gem";
     };
-    version = "4.0.2";
+    version = "5.0.1";
   };
   rspec-retry = {
     dependencies = ["rspec-core"];
@@ -4711,16 +4736,16 @@
     };
     version = "0.2.1";
   };
-  ruby-magic-static = {
+  ruby-magic = {
     dependencies = ["mini_portile2"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0whs2i868g1bgglrxl6aba47h8n9zqglsipskk6l83rfkm85ik3g";
+      sha256 = "1mn1m682l6hv54afh1an5lh623zbllgl2aqjz2f62v892slzkq57";
       type = "gem";
     };
-    version = "0.3.5";
+    version = "0.4.0";
   };
   ruby-prof = {
     groups = ["default"];
@@ -4743,15 +4768,15 @@
     version = "1.11.0";
   };
   ruby-saml = {
-    dependencies = ["nokogiri"];
+    dependencies = ["nokogiri" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
+      sha256 = "0hczs2s490x6lj8z9xczlgi4c159nk9b10njsnl37nqbgjfkjgsw";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.12.1";
   };
   ruby-statistics = {
     groups = ["default"];
@@ -5100,26 +5125,38 @@
     };
     version = "2.3.4";
   };
-  slop = {
-    groups = ["default" "development" "test"];
+  snowplow-tracker = {
+    dependencies = ["contracts"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n";
+      sha256 = "05136477ifa567aym9k8nqqmwv3plbczgh9x9fbz86860vym5v4w";
       type = "gem";
     };
-    version = "3.6.0";
+    version = "0.6.1";
   };
-  snowplow-tracker = {
-    dependencies = ["contracts"];
+  solargraph = {
+    dependencies = ["backport" "benchmark" "e2mmap" "jaro_winkler" "kramdown" "kramdown-parser-gfm" "parser" "reverse_markdown" "rubocop" "thor" "tilt" "yard"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xrad7amwf3nmdbif566qprk6xvwydxwz0s7arnzpvr01anc9gcl";
+      type = "gem";
+    };
+    version = "0.40.4";
+  };
+  spamcheck = {
+    dependencies = ["grpc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05136477ifa567aym9k8nqqmwv3plbczgh9x9fbz86860vym5v4w";
+      sha256 = "0n307r7y819gq21yqhlni3r455cgcg3nc5318rhhx1bs99qs793r";
       type = "gem";
     };
-    version = "0.6.1";
+    version = "0.1.0";
   };
   spring = {
     groups = ["development" "test"];
@@ -5184,6 +5221,16 @@
     };
     version = "2.0.0";
   };
+  ssrf_filter = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0flmg6f444liaxjgdwdrwcfwyyhc54a7wp26kqih2cklwll5gp40";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
   stackprof = {
     groups = ["default"];
     platforms = [];
@@ -5226,16 +5273,37 @@
     };
     version = "0.8.0";
   };
+  strings = {
+    dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yynb0qhhhplmpzavfrrlwdnd1rh7rkwzcs4xf0mpy2wr6rr6clk";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  strings-ansi = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   swd = {
     dependencies = ["activesupport" "attr_required" "httpclient"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s2vjb6f13za7p1iycl2p73d3p202xa6xny9fjrp8ynwsqix7lyd";
+      sha256 = "0c5cdpykx2h4jx8q01hjhv8f0plw5r9iqm2i1m0ijiyk7dqm824w";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.2.0";
   };
   sys-filesystem = {
     dependencies = ["ffi"];
@@ -5300,6 +5368,17 @@
     };
     version = "0.12.0";
   };
+  test_file_finder = {
+    dependencies = ["faraday"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mbhiz7g7nd3v1ai4cgwzp2zr34k1h5am0vn9bny5qqn1408rlgi";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
   text = {
     groups = ["default" "development"];
     platforms = [];
@@ -5466,6 +5545,69 @@
     };
     version = "0.7.11";
   };
+  tty-color = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  tty-cursor = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  tty-markdown = {
+    dependencies = ["kramdown" "pastel" "rouge" "strings" "tty-color" "tty-screen"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hp6b6mcawg563098gs93wr49xmg871lkaj8m8gwk2va3zvqw7i5";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  tty-prompt = {
+    dependencies = ["pastel" "tty-reader"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j4y8ik82azjxshgd4i1v4wwhsv3g9cngpygxqkkz69qaa8cxnzw";
+      type = "gem";
+    };
+    version = "0.23.1";
+  };
+  tty-reader = {
+    dependencies = ["tty-cursor" "tty-screen" "wisper"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  tty-screen = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
   tzinfo = {
     dependencies = ["thread_safe"];
     groups = ["default" "development" "test"];
@@ -5752,6 +5894,16 @@
     };
     version = "0.8.1";
   };
+  wisper = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rpsi0ziy78cj82sbyyywby4d0aw0a5q84v65qd28vqn79fbq5yf";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
   with_env = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -5803,6 +5955,16 @@
     };
     version = "1.4.1";
   };
+  yard = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qzr5j1a1cafv81ib3i51qyl8jnmwdxlqi3kbiraldzpbjh4ln9h";
+      type = "gem";
+    };
+    version = "0.9.26";
+  };
   zeitwerk = {
     groups = ["default" "development" "test"];
     platforms = [];
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
index 993dad08ec6e..301589c532f3 100755
--- a/nixpkgs/pkgs/applications/version-management/gitlab/update.py
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
@@ -131,9 +131,11 @@ def update_rubyenv():
     data = _get_data_json()
     rev = data['rev']
 
-    for fn in ['Gemfile.lock', 'Gemfile']:
-        with open(rubyenv_dir / fn, 'w') as f:
-            f.write(repo.get_file(fn, rev))
+    with open(rubyenv_dir / 'Gemfile.lock', 'w') as f:
+        f.write(repo.get_file('Gemfile.lock', rev))
+    with open(rubyenv_dir / 'Gemfile', 'w') as f:
+        original = repo.get_file('Gemfile', rev)
+        f.write(re.sub(r".*mail-smtp_pool.*", "", original))
 
     subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
     subprocess.check_output(['bundix'], cwd=rubyenv_dir)
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index 8084d2ebb6db..12a350c26ecb 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -714,11 +714,11 @@
       };
     }
     {
-      name = "_babel_runtime___runtime_7.11.2.tgz";
+      name = "_babel_runtime___runtime_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_runtime___runtime_7.11.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz";
-        sha1 = "f549c13c754cc40b87644b9fa9f09a6a95fe0736";
+        name = "_babel_runtime___runtime_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz";
+        sha1 = "46794bc20b612c5f75e62dd071e24dfd95f1cbe6";
       };
     }
     {
@@ -778,11 +778,11 @@
       };
     }
     {
-      name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
       path = fetchurl {
-        name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
-        sha1 = "99cc0a0584d72f1df38b900fb062ba995f395547";
+        name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz";
+        sha1 = "442763b88cecbe3ee0ec7ca6d6dd6168550cbf14";
       };
     }
     {
@@ -794,11 +794,11 @@
       };
     }
     {
-      name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
+      name = "_gitlab_eslint_plugin___eslint_plugin_8.4.0.tgz";
       path = fetchurl {
-        name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.1.0.tgz";
-        sha1 = "a98ac4219da3316d30ee717ef0603c8fa0c4d5d8";
+        name = "_gitlab_eslint_plugin___eslint_plugin_8.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.4.0.tgz";
+        sha1 = "094fa4d41676a71146f82e1b19257a7ceabefd88";
       };
     }
     {
@@ -818,11 +818,11 @@
       };
     }
     {
-      name = "_gitlab_svgs___svgs_1.185.0.tgz";
+      name = "_gitlab_svgs___svgs_1.197.0.tgz";
       path = fetchurl {
-        name = "_gitlab_svgs___svgs_1.185.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.185.0.tgz";
-        sha1 = "15b5c6d680b5fcfc2deb2a5decef427939e34ed7";
+        name = "_gitlab_svgs___svgs_1.197.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.197.0.tgz";
+        sha1 = "70be3217b4c0c84b494615d0672734f40e3695d4";
       };
     }
     {
@@ -834,11 +834,11 @@
       };
     }
     {
-      name = "_gitlab_ui___ui_28.9.1.tgz";
+      name = "_gitlab_ui___ui_29.27.0.tgz";
       path = fetchurl {
-        name = "_gitlab_ui___ui_28.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-28.9.1.tgz";
-        sha1 = "7d4d4502ff09fca19ab815504f80afbf03dd2fc1";
+        name = "_gitlab_ui___ui_29.27.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-29.27.0.tgz";
+        sha1 = "c5cbe1fee2164705ea6a431c85f6fdaa2ff7e166";
       };
     }
     {
@@ -1010,6 +1010,22 @@
       };
     }
     {
+      name = "_polka_url___url_1.0.0_next.12.tgz";
+      path = fetchurl {
+        name = "_polka_url___url_1.0.0_next.12.tgz";
+        url  = "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz";
+        sha1 = "431ec342a7195622f86688bbda82e3166ce8cb28";
+      };
+    }
+    {
+      name = "_popperjs_core___core_2.9.2.tgz";
+      path = fetchurl {
+        name = "_popperjs_core___core_2.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.2.tgz";
+        sha1 = "adea7b6953cbb34651766b0548468e743c6a2353";
+      };
+    }
+    {
       name = "_rails_actioncable___actioncable_6.1.0.tgz";
       path = fetchurl {
         name = "_rails_actioncable___actioncable_6.1.0.tgz";
@@ -1098,11 +1114,11 @@
       };
     }
     {
-      name = "_sourcegraph_code_host_integration___code_host_integration_0.0.52.tgz";
+      name = "_sourcegraph_code_host_integration___code_host_integration_0.0.57.tgz";
       path = fetchurl {
-        name = "_sourcegraph_code_host_integration___code_host_integration_0.0.52.tgz";
-        url  = "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.52.tgz";
-        sha1 = "3668364647b9248a0c43d738f7b046c551311338";
+        name = "_sourcegraph_code_host_integration___code_host_integration_0.0.57.tgz";
+        url  = "https://registry.yarnpkg.com/@sourcegraph/code-host-integration/-/code-host-integration-0.0.57.tgz";
+        sha1 = "aed4649a51745deef5e4ee79b9a4fdc092471237";
       };
     }
     {
@@ -1138,19 +1154,219 @@
       };
     }
     {
-      name = "_toast_ui_editor___editor_2.5.1.tgz";
+      name = "_tiptap_core___core_2.0.0_beta.54.tgz";
       path = fetchurl {
-        name = "_toast_ui_editor___editor_2.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.5.1.tgz";
-        sha1 = "42671c52ca4b97c84f684d09c2966711b36f41a7";
+        name = "_tiptap_core___core_2.0.0_beta.54.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/core/-/core-2.0.0-beta.54.tgz";
+        sha1 = "3630c78aab0a72cff0ffa5dda7ff7a2623a307e5";
       };
     }
     {
-      name = "_toast_ui_vue_editor___vue_editor_2.5.1.tgz";
+      name = "_tiptap_extension_blockquote___extension_blockquote_2.0.0_beta.11.tgz";
       path = fetchurl {
-        name = "_toast_ui_vue_editor___vue_editor_2.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.5.1.tgz";
-        sha1 = "0a221d74d5305c8ca20cb11d9eb8ff9206455cfc";
+        name = "_tiptap_extension_blockquote___extension_blockquote_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.11.tgz";
+        sha1 = "ca0be20501506a5555f39c4ec61d0fb3fb8a1713";
+      };
+    }
+    {
+      name = "_tiptap_extension_bold___extension_bold_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_bold___extension_bold_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.11.tgz";
+        sha1 = "d8ac973d2795fc46231e5969d922ce8c3f7404b8";
+      };
+    }
+    {
+      name = "_tiptap_extension_bubble_menu___extension_bubble_menu_2.0.0_beta.15.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_bubble_menu___extension_bubble_menu_2.0.0_beta.15.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.15.tgz";
+        sha1 = "307f94785caa6d57cbc33dcb37128fc9e910e184";
+      };
+    }
+    {
+      name = "_tiptap_extension_bullet_list___extension_bullet_list_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_bullet_list___extension_bullet_list_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.11.tgz";
+        sha1 = "6d3ccc047120bdd7576f0d1d286ae61a03c8b96e";
+      };
+    }
+    {
+      name = "_tiptap_extension_code_block_lowlight___extension_code_block_lowlight_2.0.0_beta.18.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_code_block_lowlight___extension_code_block_lowlight_2.0.0_beta.18.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.0.0-beta.18.tgz";
+        sha1 = "f90e557f0b62761f104937b0d41a4c4dd5569ee8";
+      };
+    }
+    {
+      name = "_tiptap_extension_code_block___extension_code_block_2.0.0_beta.13.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_code_block___extension_code_block_2.0.0_beta.13.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.13.tgz";
+        sha1 = "9a41d103ed5b5a4810564c67105a89725b12559a";
+      };
+    }
+    {
+      name = "_tiptap_extension_code___extension_code_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_code___extension_code_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.0.0-beta.11.tgz";
+        sha1 = "484d63cde6ad5951e9075e2a47ebe0f6b633742f";
+      };
+    }
+    {
+      name = "_tiptap_extension_document___extension_document_2.0.0_beta.10.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_document___extension_document_2.0.0_beta.10.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.0.0-beta.10.tgz";
+        sha1 = "2ccf4e5496f6b15c6bfa4f720b89af74fb871df4";
+      };
+    }
+    {
+      name = "_tiptap_extension_dropcursor___extension_dropcursor_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_dropcursor___extension_dropcursor_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.11.tgz";
+        sha1 = "620120a7f95e7cf21e6a3362ba38b2eacfa98a88";
+      };
+    }
+    {
+      name = "_tiptap_extension_floating_menu___extension_floating_menu_2.0.0_beta.12.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_floating_menu___extension_floating_menu_2.0.0_beta.12.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.12.tgz";
+        sha1 = "de38a4fc5e24c0f70caafeeece79e6623bd8a579";
+      };
+    }
+    {
+      name = "_tiptap_extension_gapcursor___extension_gapcursor_2.0.0_beta.15.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_gapcursor___extension_gapcursor_2.0.0_beta.15.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.15.tgz";
+        sha1 = "6bafbd095e8673449f976935200f22a623d4043c";
+      };
+    }
+    {
+      name = "_tiptap_extension_hard_break___extension_hard_break_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_hard_break___extension_hard_break_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.11.tgz";
+        sha1 = "b2d457bb5c4f97d052b2537a7624d9609822ef65";
+      };
+    }
+    {
+      name = "_tiptap_extension_heading___extension_heading_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_heading___extension_heading_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.11.tgz";
+        sha1 = "9da6864aeafaeed83551559932253c9ab16621fb";
+      };
+    }
+    {
+      name = "_tiptap_extension_history___extension_history_2.0.0_beta.10.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_history___extension_history_2.0.0_beta.10.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.0.0-beta.10.tgz";
+        sha1 = "bb14500e193118295eb8c55ae4c2ddc5f2ae5d72";
+      };
+    }
+    {
+      name = "_tiptap_extension_horizontal_rule___extension_horizontal_rule_2.0.0_beta.14.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_horizontal_rule___extension_horizontal_rule_2.0.0_beta.14.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.14.tgz";
+        sha1 = "bc23541ab5885c25a804b6b6f3c0ed2e505f7327";
+      };
+    }
+    {
+      name = "_tiptap_extension_image___extension_image_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_image___extension_image_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.0.0-beta.11.tgz";
+        sha1 = "b7c2961118c9468fd4bdb8632663379f618978e9";
+      };
+    }
+    {
+      name = "_tiptap_extension_italic___extension_italic_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_italic___extension_italic_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.11.tgz";
+        sha1 = "fa5668ede5dd5373277da4bafc26415a2771d7f6";
+      };
+    }
+    {
+      name = "_tiptap_extension_link___extension_link_2.0.0_beta.15.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_link___extension_link_2.0.0_beta.15.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.0.0-beta.15.tgz";
+        sha1 = "bb9adad12c55688e220f7d8a15d8456fbad47116";
+      };
+    }
+    {
+      name = "_tiptap_extension_list_item___extension_list_item_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_list_item___extension_list_item_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.0.0-beta.11.tgz";
+        sha1 = "22639904f9fdee8b80e344fe142e9065e9451337";
+      };
+    }
+    {
+      name = "_tiptap_extension_ordered_list___extension_ordered_list_2.0.0_beta.11.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_ordered_list___extension_ordered_list_2.0.0_beta.11.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.11.tgz";
+        sha1 = "37dd6cbb8b271bf8902ffcbad2a2e282ea078f6e";
+      };
+    }
+    {
+      name = "_tiptap_extension_paragraph___extension_paragraph_2.0.0_beta.12.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_paragraph___extension_paragraph_2.0.0_beta.12.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.0.0-beta.12.tgz";
+        sha1 = "849aad4294a341abd93781174dbdc369d9b7570c";
+      };
+    }
+    {
+      name = "_tiptap_extension_strike___extension_strike_2.0.0_beta.12.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_strike___extension_strike_2.0.0_beta.12.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.12.tgz";
+        sha1 = "0a7452e92d5042c8884eda38f6496a1ecc28e264";
+      };
+    }
+    {
+      name = "_tiptap_extension_text___extension_text_2.0.0_beta.10.tgz";
+      path = fetchurl {
+        name = "_tiptap_extension_text___extension_text_2.0.0_beta.10.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.0.0-beta.10.tgz";
+        sha1 = "50681ba2c8e8a54305a89efb1adb0e68d683e4eb";
+      };
+    }
+    {
+      name = "_tiptap_vue_2___vue_2_2.0.0_beta.27.tgz";
+      path = fetchurl {
+        name = "_tiptap_vue_2___vue_2_2.0.0_beta.27.tgz";
+        url  = "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.0.0-beta.27.tgz";
+        sha1 = "f9e3242a75957d46f1a4707e4a1bb29ec1d19e46";
+      };
+    }
+    {
+      name = "_toast_ui_editor___editor_2.5.2.tgz";
+      path = fetchurl {
+        name = "_toast_ui_editor___editor_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.5.2.tgz";
+        sha1 = "0637e1bbdb205c1ab53b6d3722ced26399b2f0ca";
+      };
+    }
+    {
+      name = "_toast_ui_vue_editor___vue_editor_2.5.2.tgz";
+      path = fetchurl {
+        name = "_toast_ui_vue_editor___vue_editor_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.5.2.tgz";
+        sha1 = "0b54107a196471eacb18aabb7100101606917b27";
       };
     }
     {
@@ -1282,6 +1498,14 @@
       };
     }
     {
+      name = "_types_lowlight___lowlight_0.0.1.tgz";
+      path = fetchurl {
+        name = "_types_lowlight___lowlight_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/lowlight/-/lowlight-0.0.1.tgz";
+        sha1 = "221bc67a6c517bae71e6f200fa1cad0feaeeb965";
+      };
+    }
+    {
       name = "_types_mdast___mdast_3.0.3.tgz";
       path = fetchurl {
         name = "_types_mdast___mdast_3.0.3.tgz";
@@ -1322,6 +1546,14 @@
       };
     }
     {
+      name = "_types_orderedmap___orderedmap_1.0.0.tgz";
+      path = fetchurl {
+        name = "_types_orderedmap___orderedmap_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/orderedmap/-/orderedmap-1.0.0.tgz";
+        sha1 = "807455a192bba52cbbb4517044bc82bdbfa8c596";
+      };
+    }
+    {
       name = "_types_parse_json___parse_json_4.0.0.tgz";
       path = fetchurl {
         name = "_types_parse_json___parse_json_4.0.0.tgz";
@@ -1346,6 +1578,94 @@
       };
     }
     {
+      name = "_types_prosemirror_commands___prosemirror_commands_1.0.4.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_commands___prosemirror_commands_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.4.tgz";
+        sha1 = "d08551415127d93ae62e7239d30db0b5e7208e22";
+      };
+    }
+    {
+      name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.1.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.1.tgz";
+        sha1 = "3ba98dd861ff2a62559e70f453f996a1ef5ec55d";
+      };
+    }
+    {
+      name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.3.tgz";
+        sha1 = "989e98c734e01e2ed4cab39992e60a1b0646cab6";
+      };
+    }
+    {
+      name = "_types_prosemirror_history___prosemirror_history_1.0.2.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_history___prosemirror_history_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.2.tgz";
+        sha1 = "f90a009a0dcd71393faa69ce705593dec76347a1";
+      };
+    }
+    {
+      name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.4.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.4.tgz";
+        sha1 = "4cb75054d954aa0f6f42099be05eb6c0e6958bae";
+      };
+    }
+    {
+      name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.4.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.4.tgz";
+        sha1 = "f73c79810e8d0e0a20d153d84f998f02e5afbc0c";
+      };
+    }
+    {
+      name = "_types_prosemirror_model___prosemirror_model_1.13.0.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_model___prosemirror_model_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.13.0.tgz";
+        sha1 = "d05937e918c3cac2cf49630ccab04a65fc5fffd6";
+      };
+    }
+    {
+      name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.3.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.3.tgz";
+        sha1 = "bdf1893a7915fbdc5c49b3cac9368e96213d70de";
+      };
+    }
+    {
+      name = "_types_prosemirror_state___prosemirror_state_1.2.6.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_state___prosemirror_state_1.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.6.tgz";
+        sha1 = "bb0169084239a8393b354c6fda5420fc347d6bab";
+      };
+    }
+    {
+      name = "_types_prosemirror_transform___prosemirror_transform_1.1.2.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_transform___prosemirror_transform_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-transform/-/prosemirror-transform-1.1.2.tgz";
+        sha1 = "fe883c19a5a9f1882346a294efd09d55c6764c7a";
+      };
+    }
+    {
+      name = "_types_prosemirror_view___prosemirror_view_1.17.1.tgz";
+      path = fetchurl {
+        name = "_types_prosemirror_view___prosemirror_view_1.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-view/-/prosemirror-view-1.17.1.tgz";
+        sha1 = "0895df5a57ae6e68d4f3f8020d9be4ef52192980";
+      };
+    }
+    {
       name = "_types_stack_utils___stack_utils_2.0.0.tgz";
       path = fetchurl {
         name = "_types_stack_utils___stack_utils_2.0.0.tgz";
@@ -1658,6 +1978,14 @@
       };
     }
     {
+      name = "acorn_walk___acorn_walk_8.0.2.tgz";
+      path = fetchurl {
+        name = "acorn_walk___acorn_walk_8.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz";
+        sha1 = "d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3";
+      };
+    }
+    {
       name = "acorn___acorn_6.4.2.tgz";
       path = fetchurl {
         name = "acorn___acorn_6.4.2.tgz";
@@ -1674,6 +2002,14 @@
       };
     }
     {
+      name = "acorn___acorn_8.1.0.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz";
+        sha1 = "52311fd7037ae119cbb134309e901aa46295b3fe";
+      };
+    }
+    {
       name = "after___after_0.8.2.tgz";
       path = fetchurl {
         name = "after___after_0.8.2.tgz";
@@ -1730,14 +2066,6 @@
       };
     }
     {
-      name = "amdefine___amdefine_1.0.1.tgz";
-      path = fetchurl {
-        name = "amdefine___amdefine_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
-        sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
-      };
-    }
-    {
       name = "ansi_align___ansi_align_3.0.0.tgz";
       path = fetchurl {
         name = "ansi_align___ansi_align_3.0.0.tgz";
@@ -1810,14 +2138,6 @@
       };
     }
     {
-      name = "ansi_styles___ansi_styles_2.2.1.tgz";
-      path = fetchurl {
-        name = "ansi_styles___ansi_styles_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
-        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
-      };
-    }
-    {
       name = "ansi_styles___ansi_styles_3.2.1.tgz";
       path = fetchurl {
         name = "ansi_styles___ansi_styles_3.2.1.tgz";
@@ -1946,14 +2266,6 @@
       };
     }
     {
-      name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
-      path = fetchurl {
-        name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
-        sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
-      };
-    }
-    {
       name = "argparse___argparse_1.0.10.tgz";
       path = fetchurl {
         name = "argparse___argparse_1.0.10.tgz";
@@ -1962,6 +2274,14 @@
       };
     }
     {
+      name = "argparse___argparse_2.0.1.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
+        sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
+      };
+    }
+    {
       name = "aria_query___aria_query_4.2.2.tgz";
       path = fetchurl {
         name = "aria_query___aria_query_4.2.2.tgz";
@@ -1994,14 +2314,6 @@
       };
     }
     {
-      name = "array_find_index___array_find_index_1.0.2.tgz";
-      path = fetchurl {
-        name = "array_find_index___array_find_index_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz";
-        sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
-      };
-    }
-    {
       name = "array_find___array_find_1.0.0.tgz";
       path = fetchurl {
         name = "array_find___array_find_1.0.0.tgz";
@@ -2138,14 +2450,6 @@
       };
     }
     {
-      name = "async_foreach___async_foreach_0.1.3.tgz";
-      path = fetchurl {
-        name = "async_foreach___async_foreach_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz";
-        sha1 = "36121f845c0578172de419a97dbeb1d16ec34542";
-      };
-    }
-    {
       name = "async_limiter___async_limiter_1.0.0.tgz";
       path = fetchurl {
         name = "async_limiter___async_limiter_1.0.0.tgz";
@@ -2394,14 +2698,6 @@
       };
     }
     {
-      name = "bfj___bfj_6.1.1.tgz";
-      path = fetchurl {
-        name = "bfj___bfj_6.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz";
-        sha1 = "05a3b7784fbd72cfa3c22e56002ef99336516c48";
-      };
-    }
-    {
       name = "big.js___big.js_5.2.2.tgz";
       path = fetchurl {
         name = "big.js___big.js_5.2.2.tgz";
@@ -2434,14 +2730,6 @@
       };
     }
     {
-      name = "block_stream___block_stream_0.0.9.tgz";
-      path = fetchurl {
-        name = "block_stream___block_stream_0.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
-        sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
-      };
-    }
-    {
       name = "bluebird___bluebird_3.5.5.tgz";
       path = fetchurl {
         name = "bluebird___bluebird_3.5.5.tgz";
@@ -2474,19 +2762,19 @@
       };
     }
     {
-      name = "bootstrap_vue___bootstrap_vue_2.13.1.tgz";
+      name = "bootstrap_vue___bootstrap_vue_2.17.3.tgz";
       path = fetchurl {
-        name = "bootstrap_vue___bootstrap_vue_2.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.13.1.tgz";
-        sha1 = "dcefca78f2b0345508fbb85adb0a9897cce65fa1";
+        name = "bootstrap_vue___bootstrap_vue_2.17.3.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.17.3.tgz";
+        sha1 = "3d78b7b4ff992a8ad69d2ed1c7413fcfdcefaec7";
       };
     }
     {
-      name = "bootstrap___bootstrap_4.4.1.tgz";
+      name = "bootstrap___bootstrap_4.5.3.tgz";
       path = fetchurl {
-        name = "bootstrap___bootstrap_4.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.4.1.tgz";
-        sha1 = "8582960eea0c5cd2bede84d8b0baf3789c3e8b01";
+        name = "bootstrap___bootstrap_4.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz";
+        sha1 = "c6a72b355aaf323920be800246a6e4ef30997fe6";
       };
     }
     {
@@ -2746,14 +3034,6 @@
       };
     }
     {
-      name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
-      path = fetchurl {
-        name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
-        sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
-      };
-    }
-    {
       name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
       path = fetchurl {
         name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
@@ -2762,14 +3042,6 @@
       };
     }
     {
-      name = "camelcase___camelcase_2.1.1.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz";
-        sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
-      };
-    }
-    {
       name = "camelcase___camelcase_5.3.1.tgz";
       path = fetchurl {
         name = "camelcase___camelcase_5.3.1.tgz";
@@ -2818,14 +3090,6 @@
       };
     }
     {
-      name = "chalk___chalk_1.1.3.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
-        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
-      };
-    }
-    {
       name = "chalk___chalk_2.4.2.tgz";
       path = fetchurl {
         name = "chalk___chalk_2.4.2.tgz";
@@ -2890,14 +3154,6 @@
       };
     }
     {
-      name = "check_types___check_types_7.3.0.tgz";
-      path = fetchurl {
-        name = "check_types___check_types_7.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz";
-        sha1 = "468f571a4435c24248f5fd0cb0e8d87c3c341e7d";
-      };
-    }
-    {
       name = "chokidar___chokidar_3.4.0.tgz";
       path = fetchurl {
         name = "chokidar___chokidar_3.4.0.tgz";
@@ -3042,14 +3298,6 @@
       };
     }
     {
-      name = "code_point_at___code_point_at_1.1.0.tgz";
-      path = fetchurl {
-        name = "code_point_at___code_point_at_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    }
-    {
       name = "codemirror___codemirror_5.53.2.tgz";
       path = fetchurl {
         name = "codemirror___codemirror_5.53.2.tgz";
@@ -3170,11 +3418,11 @@
       };
     }
     {
-      name = "commander___commander_2.9.0.tgz";
+      name = "commander___commander_6.2.1.tgz";
       path = fetchurl {
-        name = "commander___commander_2.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
-        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+        name = "commander___commander_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz";
+        sha1 = "0792eb682dfbc325999bb2b84fddddba110ac73c";
       };
     }
     {
@@ -3322,14 +3570,6 @@
       };
     }
     {
-      name = "console_control_strings___console_control_strings_1.1.0.tgz";
-      path = fetchurl {
-        name = "console_control_strings___console_control_strings_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
-        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
-      };
-    }
-    {
       name = "consolidate___consolidate_0.15.1.tgz";
       path = fetchurl {
         name = "consolidate___consolidate_0.15.1.tgz";
@@ -3426,11 +3666,11 @@
       };
     }
     {
-      name = "copy_webpack_plugin___copy_webpack_plugin_5.1.2.tgz";
+      name = "copy_webpack_plugin___copy_webpack_plugin_6.4.1.tgz";
       path = fetchurl {
-        name = "copy_webpack_plugin___copy_webpack_plugin_5.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz";
-        sha1 = "8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2";
+        name = "copy_webpack_plugin___copy_webpack_plugin_6.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz";
+        sha1 = "138cd9b436dbca0a6d071720d5414848992ec47e";
       };
     }
     {
@@ -3450,11 +3690,11 @@
       };
     }
     {
-      name = "core_js___core_js_3.9.1.tgz";
+      name = "core_js___core_js_3.12.1.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz";
-        sha1 = "cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae";
+        name = "core_js___core_js_3.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.12.1.tgz";
+        sha1 = "6b5af4ff55616c08a44d386f1f510917ff204112";
       };
     }
     {
@@ -3522,14 +3762,6 @@
       };
     }
     {
-      name = "cross_spawn___cross_spawn_3.0.1.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz";
-        sha1 = "1256037ecb9f0c5f79e3d6ef135e30770184b982";
-      };
-    }
-    {
       name = "cross_spawn___cross_spawn_6.0.5.tgz";
       path = fetchurl {
         name = "cross_spawn___cross_spawn_6.0.5.tgz";
@@ -3666,14 +3898,6 @@
       };
     }
     {
-      name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
-      path = fetchurl {
-        name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
-        sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
-      };
-    }
-    {
       name = "custom_event___custom_event_1.0.1.tgz";
       path = fetchurl {
         name = "custom_event___custom_event_1.0.1.tgz";
@@ -4042,11 +4266,11 @@
       };
     }
     {
-      name = "debug___debug_3.2.6.tgz";
+      name = "debug___debug_3.2.7.tgz";
       path = fetchurl {
-        name = "debug___debug_3.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
-        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+        name = "debug___debug_3.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
+        sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
       };
     }
     {
@@ -4122,14 +4346,6 @@
       };
     }
     {
-      name = "deep_extend___deep_extend_0.5.1.tgz";
-      path = fetchurl {
-        name = "deep_extend___deep_extend_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz";
-        sha1 = "b894a9dd90d3023fbf1c55a394fb858eb2066f1f";
-      };
-    }
-    {
       name = "deep_is___deep_is_0.1.3.tgz";
       path = fetchurl {
         name = "deep_is___deep_is_0.1.3.tgz";
@@ -4226,14 +4442,6 @@
       };
     }
     {
-      name = "delegates___delegates_1.0.0.tgz";
-      path = fetchurl {
-        name = "delegates___delegates_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
-        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
-      };
-    }
-    {
       name = "depd___depd_1.1.1.tgz";
       path = fetchurl {
         name = "depd___depd_1.1.1.tgz";
@@ -4322,14 +4530,6 @@
       };
     }
     {
-      name = "dir_glob___dir_glob_2.2.2.tgz";
-      path = fetchurl {
-        name = "dir_glob___dir_glob_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz";
-        sha1 = "fa09f0694153c8918b18ba0deafae94769fc50c4";
-      };
-    }
-    {
       name = "dir_glob___dir_glob_3.0.1.tgz";
       path = fetchurl {
         name = "dir_glob___dir_glob_3.0.1.tgz";
@@ -4474,11 +4674,11 @@
       };
     }
     {
-      name = "dompurify___dompurify_2.2.7.tgz";
+      name = "dompurify___dompurify_2.2.8.tgz";
       path = fetchurl {
-        name = "dompurify___dompurify_2.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.7.tgz";
-        sha1 = "a5f055a2a471638680e779bd08fc334962d11fd8";
+        name = "dompurify___dompurify_2.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.8.tgz";
+        sha1 = "ce88e395f6d00b6dc53f80d6b2a6fdf5446873c6";
       };
     }
     {
@@ -4514,11 +4714,11 @@
       };
     }
     {
-      name = "duplexer___duplexer_0.1.1.tgz";
+      name = "duplexer___duplexer_0.1.2.tgz";
       path = fetchurl {
-        name = "duplexer___duplexer_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+        name = "duplexer___duplexer_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz";
+        sha1 = "3abe43aef3835f8ae077d136ddce0f276b0400e6";
       };
     }
     {
@@ -4570,14 +4770,6 @@
       };
     }
     {
-      name = "ejs___ejs_2.6.1.tgz";
-      path = fetchurl {
-        name = "ejs___ejs_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz";
-        sha1 = "498ec0d495655abc6f23cd61868d926464071aa0";
-      };
-    }
-    {
       name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
       path = fetchurl {
         name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
@@ -4874,11 +5066,11 @@
       };
     }
     {
-      name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.0.tgz";
+      name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.1.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.0.tgz";
-        sha1 = "5cb19cf4b6996c8a2514aeb10f909e2c70488dc3";
+        name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.1.tgz";
+        sha1 = "6d2fb928091daf2da46efa1e568055555b2de902";
       };
     }
     {
@@ -4930,11 +5122,11 @@
       };
     }
     {
-      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
+      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.6.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.5.0.tgz";
-        sha1 = "6c12e3aae172bfd3363b7ac8c3f3e944704867f4";
+        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.6.0.tgz";
+        sha1 = "7892cb7c086f7813156bca6bc48429825428e9eb";
       };
     }
     {
@@ -5002,11 +5194,11 @@
       };
     }
     {
-      name = "eslint___eslint_7.21.0.tgz";
+      name = "eslint___eslint_7.26.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.21.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz";
-        sha1 = "4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83";
+        name = "eslint___eslint_7.26.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz";
+        sha1 = "d416fdcdcb3236cd8f282065312813f8c13982f6";
       };
     }
     {
@@ -5194,14 +5386,6 @@
       };
     }
     {
-      name = "exports_loader___exports_loader_0.7.0.tgz";
-      path = fetchurl {
-        name = "exports_loader___exports_loader_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.7.0.tgz";
-        sha1 = "84881c784dea6036b8e1cd1dac3da9b6409e21a5";
-      };
-    }
-    {
       name = "express___express_4.17.1.tgz";
       path = fetchurl {
         name = "express___express_4.17.1.tgz";
@@ -5370,11 +5554,11 @@
       };
     }
     {
-      name = "file_loader___file_loader_5.1.0.tgz";
+      name = "file_loader___file_loader_6.2.0.tgz";
       path = fetchurl {
-        name = "file_loader___file_loader_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-5.1.0.tgz";
-        sha1 = "cb56c070efc0e40666424309bd0d9e45ac6f2bb8";
+        name = "file_loader___file_loader_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz";
+        sha1 = "baef7cf8e1840df325e4390b4484879480eebe4d";
       };
     }
     {
@@ -5386,14 +5570,6 @@
       };
     }
     {
-      name = "filesize___filesize_3.6.1.tgz";
-      path = fetchurl {
-        name = "filesize___filesize_3.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz";
-        sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317";
-      };
-    }
-    {
       name = "fill_range___fill_range_4.0.0.tgz";
       path = fetchurl {
         name = "fill_range___fill_range_4.0.0.tgz";
@@ -5450,14 +5626,6 @@
       };
     }
     {
-      name = "find_up___find_up_1.1.2.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
-        sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
-      };
-    }
-    {
       name = "find_up___find_up_2.1.0.tgz";
       path = fetchurl {
         name = "find_up___find_up_2.1.0.tgz";
@@ -5634,14 +5802,6 @@
       };
     }
     {
-      name = "fstream___fstream_1.0.12.tgz";
-      path = fetchurl {
-        name = "fstream___fstream_1.0.12.tgz";
-        url  = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz";
-        sha1 = "4e8ba8ee2d48be4f7d0de505455548eae5932045";
-      };
-    }
-    {
       name = "function_bind___function_bind_1.1.1.tgz";
       path = fetchurl {
         name = "function_bind___function_bind_1.1.1.tgz";
@@ -5666,22 +5826,6 @@
       };
     }
     {
-      name = "gauge___gauge_2.7.4.tgz";
-      path = fetchurl {
-        name = "gauge___gauge_2.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
-        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
-      };
-    }
-    {
-      name = "gaze___gaze_1.1.3.tgz";
-      path = fetchurl {
-        name = "gaze___gaze_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz";
-        sha1 = "c441733e13b927ac8c0ff0b4c3b033f28812924a";
-      };
-    }
-    {
       name = "gensync___gensync_1.0.0_beta.1.tgz";
       path = fetchurl {
         name = "gensync___gensync_1.0.0_beta.1.tgz";
@@ -5714,14 +5858,6 @@
       };
     }
     {
-      name = "get_stdin___get_stdin_4.0.1.tgz";
-      path = fetchurl {
-        name = "get_stdin___get_stdin_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz";
-        sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
-      };
-    }
-    {
       name = "get_stdin___get_stdin_6.0.0.tgz";
       path = fetchurl {
         name = "get_stdin___get_stdin_6.0.0.tgz";
@@ -5738,14 +5874,6 @@
       };
     }
     {
-      name = "get_stdin___get_stdin_5.0.1.tgz";
-      path = fetchurl {
-        name = "get_stdin___get_stdin_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz";
-        sha1 = "122e161591e21ff4c52530305693f20e6393a398";
-      };
-    }
-    {
       name = "get_stream___get_stream_4.1.0.tgz";
       path = fetchurl {
         name = "get_stream___get_stream_4.1.0.tgz";
@@ -5794,19 +5922,11 @@
       };
     }
     {
-      name = "glob_parent___glob_parent_3.1.0.tgz";
-      path = fetchurl {
-        name = "glob_parent___glob_parent_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
-        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
-      };
-    }
-    {
-      name = "glob_parent___glob_parent_5.1.1.tgz";
+      name = "glob_parent___glob_parent_5.1.2.tgz";
       path = fetchurl {
-        name = "glob_parent___glob_parent_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+        name = "glob_parent___glob_parent_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
       };
     }
     {
@@ -5890,27 +6010,27 @@
       };
     }
     {
-      name = "globby___globby_11.0.2.tgz";
+      name = "globals___globals_13.8.0.tgz";
       path = fetchurl {
-        name = "globby___globby_11.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz";
-        sha1 = "1af538b766a3b540ebfb58a32b2e2d5897321d83";
+        name = "globals___globals_13.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz";
+        sha1 = "3e20f504810ce87a8d72e55aecf8435b50f4c1b3";
       };
     }
     {
-      name = "globby___globby_6.1.0.tgz";
+      name = "globby___globby_11.0.3.tgz";
       path = fetchurl {
-        name = "globby___globby_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
-        sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+        name = "globby___globby_11.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz";
+        sha1 = "9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb";
       };
     }
     {
-      name = "globby___globby_7.1.1.tgz";
+      name = "globby___globby_6.1.0.tgz";
       path = fetchurl {
-        name = "globby___globby_7.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz";
-        sha1 = "fb2ccff9401f8600945dfada97440cca972b8680";
+        name = "globby___globby_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
+        sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
       };
     }
     {
@@ -5922,14 +6042,6 @@
       };
     }
     {
-      name = "globule___globule_1.3.2.tgz";
-      path = fetchurl {
-        name = "globule___globule_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz";
-        sha1 = "d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4";
-      };
-    }
-    {
       name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
       path = fetchurl {
         name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
@@ -5962,14 +6074,6 @@
       };
     }
     {
-      name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
-      path = fetchurl {
-        name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
-        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
-      };
-    }
-    {
       name = "graphlib___graphlib_2.1.8.tgz";
       path = fetchurl {
         name = "graphlib___graphlib_2.1.8.tgz";
@@ -6002,11 +6106,11 @@
       };
     }
     {
-      name = "gzip_size___gzip_size_5.0.0.tgz";
+      name = "gzip_size___gzip_size_6.0.0.tgz";
       path = fetchurl {
-        name = "gzip_size___gzip_size_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz";
-        sha1 = "a55ecd99222f4c48fd8c01c625ce3b349d0a0e80";
+        name = "gzip_size___gzip_size_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz";
+        sha1 = "065367fd50c239c0671cbcbad5be3e2eeb10e462";
       };
     }
     {
@@ -6050,14 +6154,6 @@
       };
     }
     {
-      name = "has_ansi___has_ansi_2.0.0.tgz";
-      path = fetchurl {
-        name = "has_ansi___has_ansi_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
-        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
-      };
-    }
-    {
       name = "has_binary2___has_binary2_1.0.2.tgz";
       path = fetchurl {
         name = "has_binary2___has_binary2_1.0.2.tgz";
@@ -6090,19 +6186,11 @@
       };
     }
     {
-      name = "has_symbols___has_symbols_1.0.1.tgz";
-      path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
-      };
-    }
-    {
-      name = "has_unicode___has_unicode_2.0.1.tgz";
+      name = "has_symbols___has_symbols_1.0.2.tgz";
       path = fetchurl {
-        name = "has_unicode___has_unicode_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
-        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+        name = "has_symbols___has_symbols_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha1 = "165d3070c00309752a1236a479331e3ac56f1423";
       };
     }
     {
@@ -6194,11 +6282,11 @@
       };
     }
     {
-      name = "highlight.js___highlight.js_10.6.0.tgz";
+      name = "highlight.js___highlight.js_10.7.2.tgz";
       path = fetchurl {
-        name = "highlight.js___highlight.js_10.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.6.0.tgz";
-        sha1 = "0073aa71d566906965ba6e1b7be7b2682f5e18b6";
+        name = "highlight.js___highlight.js_10.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz";
+        sha1 = "89319b861edc66c48854ed1e6da21ea89f847360";
       };
     }
     {
@@ -6218,14 +6306,6 @@
       };
     }
     {
-      name = "hoopy___hoopy_0.1.4.tgz";
-      path = fetchurl {
-        name = "hoopy___hoopy_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz";
-        sha1 = "609207d661100033a9a9402ad3dea677381c1b1d";
-      };
-    }
-    {
       name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
       path = fetchurl {
         name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
@@ -6442,14 +6522,6 @@
       };
     }
     {
-      name = "ignore___ignore_3.3.10.tgz";
-      path = fetchurl {
-        name = "ignore___ignore_3.3.10.tgz";
-        url  = "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz";
-        sha1 = "0a97fb876986e8081c631160f8f9f389157f0043";
-      };
-    }
-    {
       name = "ignore___ignore_4.0.6.tgz";
       path = fetchurl {
         name = "ignore___ignore_4.0.6.tgz";
@@ -6530,22 +6602,6 @@
       };
     }
     {
-      name = "in_publish___in_publish_2.0.1.tgz";
-      path = fetchurl {
-        name = "in_publish___in_publish_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz";
-        sha1 = "948b1a535c8030561cea522f73f78f4be357e00c";
-      };
-    }
-    {
-      name = "indent_string___indent_string_2.1.0.tgz";
-      path = fetchurl {
-        name = "indent_string___indent_string_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz";
-        sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
-      };
-    }
-    {
       name = "indent_string___indent_string_4.0.0.tgz";
       path = fetchurl {
         name = "indent_string___indent_string_4.0.0.tgz";
@@ -6770,6 +6826,14 @@
       };
     }
     {
+      name = "is_core_module___is_core_module_2.4.0.tgz";
+      path = fetchurl {
+        name = "is_core_module___is_core_module_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz";
+        sha1 = "8e9fc8e15027b011418026e98f0e6f4d86305cc1";
+      };
+    }
+    {
       name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
       path = fetchurl {
         name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
@@ -6850,22 +6914,6 @@
       };
     }
     {
-      name = "is_finite___is_finite_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_finite___is_finite_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz";
-        sha1 = "904135c77fb42c0641d6aa1bcdbc4daa8da082f3";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
-      };
-    }
-    {
       name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
@@ -6890,14 +6938,6 @@
       };
     }
     {
-      name = "is_glob___is_glob_3.1.0.tgz";
-      path = fetchurl {
-        name = "is_glob___is_glob_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
-        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
-      };
-    }
-    {
       name = "is_glob___is_glob_4.0.1.tgz";
       path = fetchurl {
         name = "is_glob___is_glob_4.0.1.tgz";
@@ -7026,11 +7066,11 @@
       };
     }
     {
-      name = "is_regex___is_regex_1.1.2.tgz";
+      name = "is_regex___is_regex_1.1.3.tgz";
       path = fetchurl {
-        name = "is_regex___is_regex_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz";
-        sha1 = "81c8ebde4db142f2cf1c53fc86d6a45788266251";
+        name = "is_regex___is_regex_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz";
+        sha1 = "d029f9aff6448b93ebbe3f33dac71511fdcbef9f";
       };
     }
     {
@@ -7082,14 +7122,6 @@
       };
     }
     {
-      name = "is_utf8___is_utf8_0.2.1.tgz";
-      path = fetchurl {
-        name = "is_utf8___is_utf8_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz";
-        sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
-      };
-    }
-    {
       name = "is_whitespace___is_whitespace_0.3.0.tgz";
       path = fetchurl {
         name = "is_whitespace___is_whitespace_0.3.0.tgz";
@@ -7610,14 +7642,6 @@
       };
     }
     {
-      name = "js_base64___js_base64_2.6.4.tgz";
-      path = fetchurl {
-        name = "js_base64___js_base64_2.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz";
-        sha1 = "f4e686c5de1ea1f867dbcad3d46d969428df98c4";
-      };
-    }
-    {
       name = "js_beautify___js_beautify_1.11.0.tgz";
       path = fetchurl {
         name = "js_beautify___js_beautify_1.11.0.tgz";
@@ -7642,11 +7666,11 @@
       };
     }
     {
-      name = "js_yaml___js_yaml_3.13.1.tgz";
+      name = "js_yaml___js_yaml_3.14.1.tgz";
       path = fetchurl {
-        name = "js_yaml___js_yaml_3.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+        name = "js_yaml___js_yaml_3.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
       };
     }
     {
@@ -7802,11 +7826,11 @@
       };
     }
     {
-      name = "jsonc_parser___jsonc_parser_2.2.1.tgz";
+      name = "jsonc_parser___jsonc_parser_3.0.0.tgz";
       path = fetchurl {
-        name = "jsonc_parser___jsonc_parser_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz";
-        sha1 = "db73cd59d78cce28723199466b2a03d1be1df2bc";
+        name = "jsonc_parser___jsonc_parser_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz";
+        sha1 = "abdd785701c7e7eaca8a9ec8cf070ca51a745a22";
       };
     }
     {
@@ -7906,11 +7930,11 @@
       };
     }
     {
-      name = "katex___katex_0.10.2.tgz";
+      name = "katex___katex_0.13.2.tgz";
       path = fetchurl {
-        name = "katex___katex_0.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/katex/-/katex-0.10.2.tgz";
-        sha1 = "39973edbb65eda5b6f9e7f41648781e557dd4932";
+        name = "katex___katex_0.13.2.tgz";
+        url  = "https://registry.yarnpkg.com/katex/-/katex-0.13.2.tgz";
+        sha1 = "4075b9144e6af992ec9a4b772fa3754763be5f26";
       };
     }
     {
@@ -8074,14 +8098,6 @@
       };
     }
     {
-      name = "load_json_file___load_json_file_1.1.0.tgz";
-      path = fetchurl {
-        name = "load_json_file___load_json_file_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz";
-        sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
-      };
-    }
-    {
       name = "load_json_file___load_json_file_2.0.0.tgz";
       path = fetchurl {
         name = "load_json_file___load_json_file_2.0.0.tgz";
@@ -8362,6 +8378,14 @@
       };
     }
     {
+      name = "lodash___lodash_4.17.21.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
+      };
+    }
+    {
       name = "log_symbols___log_symbols_2.2.0.tgz";
       path = fetchurl {
         name = "log_symbols___log_symbols_2.2.0.tgz";
@@ -8410,14 +8434,6 @@
       };
     }
     {
-      name = "loud_rejection___loud_rejection_1.6.0.tgz";
-      path = fetchurl {
-        name = "loud_rejection___loud_rejection_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz";
-        sha1 = "5b46f80147edee578870f086d04821cf998e551f";
-      };
-    }
-    {
       name = "lower_case___lower_case_1.1.4.tgz";
       path = fetchurl {
         name = "lower_case___lower_case_1.1.4.tgz";
@@ -8442,11 +8458,11 @@
       };
     }
     {
-      name = "lowlight___lowlight_1.19.0.tgz";
+      name = "lowlight___lowlight_1.20.0.tgz";
       path = fetchurl {
-        name = "lowlight___lowlight_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.19.0.tgz";
-        sha1 = "b8544199cafcf10c5731b21c7458c358f79a2a97";
+        name = "lowlight___lowlight_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.20.0.tgz";
+        sha1 = "ddb197d33462ad0d93bf19d17b6c301aa3941888";
       };
     }
     {
@@ -8538,11 +8554,11 @@
       };
     }
     {
-      name = "markdown_it___markdown_it_11.0.0.tgz";
+      name = "markdown_it___markdown_it_12.0.2.tgz";
       path = fetchurl {
-        name = "markdown_it___markdown_it_11.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.0.tgz";
-        sha1 = "dbfc30363e43d756ebc52c38586b91b90046b876";
+        name = "markdown_it___markdown_it_12.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.2.tgz";
+        sha1 = "4401beae8df8aa2221fc6565a7188e60a06ef0ed";
       };
     }
     {
@@ -8554,27 +8570,27 @@
       };
     }
     {
-      name = "markdownlint_cli___markdownlint_cli_0.24.0.tgz";
+      name = "markdownlint_cli___markdownlint_cli_0.26.0.tgz";
       path = fetchurl {
-        name = "markdownlint_cli___markdownlint_cli_0.24.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.24.0.tgz";
-        sha1 = "d1c1d43cd53b87aaec93035b3234eef7097139a8";
+        name = "markdownlint_cli___markdownlint_cli_0.26.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.26.0.tgz";
+        sha1 = "cd89e3e39a049303ec125c8aa291da4f3325df29";
       };
     }
     {
-      name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.12.0.tgz";
+      name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.13.0.tgz";
       path = fetchurl {
-        name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.12.0.tgz";
-        sha1 = "c41d9b990c50911572e8eb2fba3e6975a5514b7e";
+        name = "markdownlint_rule_helpers___markdownlint_rule_helpers_0.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.13.0.tgz";
+        sha1 = "7cc6553bc7f8c4c8a43cf66fb2a3a652124f46f9";
       };
     }
     {
-      name = "markdownlint___markdownlint_0.21.1.tgz";
+      name = "markdownlint___markdownlint_0.22.0.tgz";
       path = fetchurl {
-        name = "markdownlint___markdownlint_0.21.1.tgz";
-        url  = "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.21.1.tgz";
-        sha1 = "9442afcf12bf65ce9d613212028cf85741677421";
+        name = "markdownlint___markdownlint_0.22.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.22.0.tgz";
+        sha1 = "4ed95b61c17ae9f4dfca6a01f038c744846c0a72";
       };
     }
     {
@@ -8682,14 +8698,6 @@
       };
     }
     {
-      name = "meow___meow_3.7.0.tgz";
-      path = fetchurl {
-        name = "meow___meow_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz";
-        sha1 = "72cb668b425228290abbfa856892587308a801fb";
-      };
-    }
-    {
       name = "meow___meow_9.0.0.tgz";
       path = fetchurl {
         name = "meow___meow_9.0.0.tgz";
@@ -8730,11 +8738,11 @@
       };
     }
     {
-      name = "mermaid___mermaid_8.9.0.tgz";
+      name = "mermaid___mermaid_8.9.2.tgz";
       path = fetchurl {
-        name = "mermaid___mermaid_8.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.9.0.tgz";
-        sha1 = "e569517863ab903aa5389cd746b68ca958a8ca7c";
+        name = "mermaid___mermaid_8.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.9.2.tgz";
+        sha1 = "40bb2052cc6c4feaf5d93a5e527a8d06d0bacea7";
       };
     }
     {
@@ -8778,19 +8786,19 @@
       };
     }
     {
-      name = "mime_db___mime_db_1.44.0.tgz";
+      name = "mime_db___mime_db_1.47.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.44.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
-        sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
+        name = "mime_db___mime_db_1.47.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz";
+        sha1 = "8cb313e59965d3c05cfbf898915a267af46a335c";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.27.tgz";
+      name = "mime_types___mime_types_2.1.30.tgz";
       path = fetchurl {
-        name = "mime_types___mime_types_2.1.27.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz";
-        sha1 = "47949f98e279ea53119f5722e0f34e529bec009f";
+        name = "mime_types___mime_types_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz";
+        sha1 = "6e7be8b4c479825f85ed6326695db73f9305d62d";
       };
     }
     {
@@ -8978,11 +8986,11 @@
       };
     }
     {
-      name = "mock_apollo_client___mock_apollo_client_0.5.0.tgz";
+      name = "mock_apollo_client___mock_apollo_client_0.7.0.tgz";
       path = fetchurl {
-        name = "mock_apollo_client___mock_apollo_client_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/mock-apollo-client/-/mock-apollo-client-0.5.0.tgz";
-        sha1 = "8f0d6a1ba0d349ebde87a1dcd85c7fd353076922";
+        name = "mock_apollo_client___mock_apollo_client_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/mock-apollo-client/-/mock-apollo-client-0.7.0.tgz";
+        sha1 = "5f70e75c842a9f3b3da2252f68fd47f2d9955f77";
       };
     }
     {
@@ -8994,11 +9002,11 @@
       };
     }
     {
-      name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.0.tgz";
+      name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.1.tgz";
       path = fetchurl {
-        name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.0.tgz";
-        sha1 = "5b547281b9f404057dc5d8c5722390df9ac90be6";
+        name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.1.tgz";
+        sha1 = "eb4bbb1c5e5bfb554541c1ae1542e74c2a9f43fd";
       };
     }
     {
@@ -9074,14 +9082,6 @@
       };
     }
     {
-      name = "nan___nan_2.14.1.tgz";
-      path = fetchurl {
-        name = "nan___nan_2.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz";
-        sha1 = "d7be34dfa3105b91494c3147089315eff8874b01";
-      };
-    }
-    {
       name = "nanomatch___nanomatch_1.2.13.tgz";
       path = fetchurl {
         name = "nanomatch___nanomatch_1.2.13.tgz";
@@ -9154,14 +9154,6 @@
       };
     }
     {
-      name = "node_gyp___node_gyp_3.8.0.tgz";
-      path = fetchurl {
-        name = "node_gyp___node_gyp_3.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz";
-        sha1 = "540304261c330e80d0d5edce253a68cb3964218c";
-      };
-    }
-    {
       name = "node_int64___node_int64_0.4.0.tgz";
       path = fetchurl {
         name = "node_int64___node_int64_0.4.0.tgz";
@@ -9202,14 +9194,6 @@
       };
     }
     {
-      name = "node_sass___node_sass_4.14.1.tgz";
-      path = fetchurl {
-        name = "node_sass___node_sass_4.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz";
-        sha1 = "99c87ec2efb7047ed638fb4c9db7f3a42e2217b5";
-      };
-    }
-    {
       name = "nodemon___nodemon_2.0.4.tgz";
       path = fetchurl {
         name = "nodemon___nodemon_2.0.4.tgz";
@@ -9218,14 +9202,6 @@
       };
     }
     {
-      name = "nopt___nopt_3.0.6.tgz";
-      path = fetchurl {
-        name = "nopt___nopt_3.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
-        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
-      };
-    }
-    {
       name = "nopt___nopt_4.0.3.tgz";
       path = fetchurl {
         name = "nopt___nopt_4.0.3.tgz";
@@ -9314,14 +9290,6 @@
       };
     }
     {
-      name = "npmlog___npmlog_4.1.2.tgz";
-      path = fetchurl {
-        name = "npmlog___npmlog_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
-        sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
-      };
-    }
-    {
       name = "num2fraction___num2fraction_1.2.2.tgz";
       path = fetchurl {
         name = "num2fraction___num2fraction_1.2.2.tgz";
@@ -9330,14 +9298,6 @@
       };
     }
     {
-      name = "number_is_nan___number_is_nan_1.0.1.tgz";
-      path = fetchurl {
-        name = "number_is_nan___number_is_nan_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    }
-    {
       name = "nwsapi___nwsapi_2.2.0.tgz";
       path = fetchurl {
         name = "nwsapi___nwsapi_2.2.0.tgz";
@@ -9474,11 +9434,11 @@
       };
     }
     {
-      name = "opener___opener_1.5.1.tgz";
+      name = "opener___opener_1.5.2.tgz";
       path = fetchurl {
-        name = "opener___opener_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
-        sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+        name = "opener___opener_1.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz";
+        sha1 = "5d37e1f35077b9dcac4301372271afdeb2a13598";
       };
     }
     {
@@ -9610,6 +9570,14 @@
       };
     }
     {
+      name = "p_limit___p_limit_3.1.0.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz";
+        sha1 = "e1daccbe78d0d1388ca18c64fea38e3e57e3706b";
+      };
+    }
+    {
       name = "p_locate___p_locate_2.0.0.tgz";
       path = fetchurl {
         name = "p_locate___p_locate_2.0.0.tgz";
@@ -9810,22 +9778,6 @@
       };
     }
     {
-      name = "path_dirname___path_dirname_1.0.2.tgz";
-      path = fetchurl {
-        name = "path_dirname___path_dirname_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
-        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
-      };
-    }
-    {
-      name = "path_exists___path_exists_2.1.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
-        sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
-      };
-    }
-    {
       name = "path_exists___path_exists_3.0.0.tgz";
       path = fetchurl {
         name = "path_exists___path_exists_3.0.0.tgz";
@@ -9890,14 +9842,6 @@
       };
     }
     {
-      name = "path_type___path_type_1.1.0.tgz";
-      path = fetchurl {
-        name = "path_type___path_type_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz";
-        sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
-      };
-    }
-    {
       name = "path_type___path_type_2.0.0.tgz";
       path = fetchurl {
         name = "path_type___path_type_2.0.0.tgz";
@@ -9906,14 +9850,6 @@
       };
     }
     {
-      name = "path_type___path_type_3.0.0.tgz";
-      path = fetchurl {
-        name = "path_type___path_type_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz";
-        sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
-      };
-    }
-    {
       name = "path_type___path_type_4.0.0.tgz";
       path = fetchurl {
         name = "path_type___path_type_4.0.0.tgz";
@@ -9962,14 +9898,6 @@
       };
     }
     {
-      name = "pify___pify_3.0.0.tgz";
-      path = fetchurl {
-        name = "pify___pify_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
-        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
-      };
-    }
-    {
       name = "pify___pify_4.0.1.tgz";
       path = fetchurl {
         name = "pify___pify_4.0.1.tgz";
@@ -10354,11 +10282,11 @@
       };
     }
     {
-      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.3.tgz";
+      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.4.tgz";
       path = fetchurl {
-        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.3.tgz";
-        sha1 = "583d6a82b4960d468132c07c40803cc1d697fda4";
+        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.4.tgz";
+        sha1 = "a7f799ff9ecb520d3e1dbb3cb39d27ce41066618";
       };
     }
     {
@@ -10402,11 +10330,11 @@
       };
     }
     {
-      name = "prosemirror_model___prosemirror_model_1.13.3.tgz";
+      name = "prosemirror_model___prosemirror_model_1.14.1.tgz";
       path = fetchurl {
-        name = "prosemirror_model___prosemirror_model_1.13.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.13.3.tgz";
-        sha1 = "3ccfde73b9c9e706933c72bdf7462906509ff1c9";
+        name = "prosemirror_model___prosemirror_model_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.14.1.tgz";
+        sha1 = "d784c67f95a5d66b853e82ff9a87a50353ef9cd5";
       };
     }
     {
@@ -10434,19 +10362,19 @@
       };
     }
     {
-      name = "prosemirror_transform___prosemirror_transform_1.2.12.tgz";
+      name = "prosemirror_transform___prosemirror_transform_1.3.2.tgz";
       path = fetchurl {
-        name = "prosemirror_transform___prosemirror_transform_1.2.12.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.12.tgz";
-        sha1 = "4398b568faf75a1540fbf5c659ca436a8657ed6f";
+        name = "prosemirror_transform___prosemirror_transform_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.3.2.tgz";
+        sha1 = "5620ebe7379e6fae4f34ecc881886cb22ce96579";
       };
     }
     {
-      name = "prosemirror_view___prosemirror_view_1.18.0.tgz";
+      name = "prosemirror_view___prosemirror_view_1.18.4.tgz";
       path = fetchurl {
-        name = "prosemirror_view___prosemirror_view_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.18.0.tgz";
-        sha1 = "92d27b2583877938c529e173e6e3a0f3f6aa0e1c";
+        name = "prosemirror_view___prosemirror_view_1.18.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.18.4.tgz";
+        sha1 = "179141df117cf414434ade08115f2e233d135f6d";
       };
     }
     {
@@ -10674,14 +10602,6 @@
       };
     }
     {
-      name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
-      path = fetchurl {
-        name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
-        sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
-      };
-    }
-    {
       name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
       path = fetchurl {
         name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
@@ -10698,14 +10618,6 @@
       };
     }
     {
-      name = "read_pkg___read_pkg_1.1.0.tgz";
-      path = fetchurl {
-        name = "read_pkg___read_pkg_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz";
-        sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
-      };
-    }
-    {
       name = "read_pkg___read_pkg_2.0.0.tgz";
       path = fetchurl {
         name = "read_pkg___read_pkg_2.0.0.tgz";
@@ -10762,14 +10674,6 @@
       };
     }
     {
-      name = "redent___redent_1.0.0.tgz";
-      path = fetchurl {
-        name = "redent___redent_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz";
-        sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
-      };
-    }
-    {
       name = "redent___redent_3.0.0.tgz";
       path = fetchurl {
         name = "redent___redent_3.0.0.tgz";
@@ -10922,14 +10826,6 @@
       };
     }
     {
-      name = "repeating___repeating_2.0.1.tgz";
-      path = fetchurl {
-        name = "repeating___repeating_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz";
-        sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
-      };
-    }
-    {
       name = "request_light___request_light_0.2.5.tgz";
       path = fetchurl {
         name = "request_light___request_light_0.2.5.tgz";
@@ -11074,11 +10970,11 @@
       };
     }
     {
-      name = "resolve___resolve_1.17.0.tgz";
+      name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.17.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
-        sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
       };
     }
     {
@@ -11226,11 +11122,11 @@
       };
     }
     {
-      name = "sass_graph___sass_graph_2.2.5.tgz";
+      name = "sass___sass_1.32.12.tgz";
       path = fetchurl {
-        name = "sass_graph___sass_graph_2.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz";
-        sha1 = "a981c87446b8319d96dce0671e487879bd24c2e8";
+        name = "sass___sass_1.32.12.tgz";
+        url  = "https://registry.yarnpkg.com/sass/-/sass-1.32.12.tgz";
+        sha1 = "a2a47ad0f1c168222db5206444a30c12457abb9f";
       };
     }
     {
@@ -11282,11 +11178,11 @@
       };
     }
     {
-      name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+      name = "scrollparent___scrollparent_2.0.1.tgz";
       path = fetchurl {
-        name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz";
-        sha1 = "8eb06db9a9723333824d3f5530641149847ce5d1";
+        name = "scrollparent___scrollparent_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/scrollparent/-/scrollparent-2.0.1.tgz";
+        sha1 = "715d5b9cc57760fb22bdccc3befb5bfe06b1a317";
       };
     }
     {
@@ -11362,14 +11258,6 @@
       };
     }
     {
-      name = "semver___semver_5.3.0.tgz";
-      path = fetchurl {
-        name = "semver___semver_5.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
-        sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
-      };
-    }
-    {
       name = "send___send_0.17.1.tgz";
       path = fetchurl {
         name = "send___send_0.17.1.tgz";
@@ -11394,6 +11282,14 @@
       };
     }
     {
+      name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
+      path = fetchurl {
+        name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha1 = "7886ec848049a462467a97d3d918ebb2aaf934f4";
+      };
+    }
+    {
       name = "serve_index___serve_index_1.9.1.tgz";
       path = fetchurl {
         name = "serve_index___serve_index_1.9.1.tgz";
@@ -11530,19 +11426,19 @@
       };
     }
     {
-      name = "sisteransi___sisteransi_1.0.5.tgz";
+      name = "sirv___sirv_1.0.11.tgz";
       path = fetchurl {
-        name = "sisteransi___sisteransi_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz";
-        sha1 = "134d681297756437cc05ca01370d3a7a571075ed";
+        name = "sirv___sirv_1.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz";
+        sha1 = "81c19a29202048507d6ec0d8ba8910fda52eb5a4";
       };
     }
     {
-      name = "slash___slash_1.0.0.tgz";
+      name = "sisteransi___sisteransi_1.0.5.tgz";
       path = fetchurl {
-        name = "slash___slash_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
-        sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+        name = "sisteransi___sisteransi_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz";
+        sha1 = "134d681297756437cc05ca01370d3a7a571075ed";
       };
     }
     {
@@ -11682,14 +11578,6 @@
       };
     }
     {
-      name = "source_map___source_map_0.5.0.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.0.tgz";
-        sha1 = "0fe96503ac86a5adb5de63f4e412ae4872cdbe86";
-      };
-    }
-    {
       name = "source_map___source_map_0.5.6.tgz";
       path = fetchurl {
         name = "source_map___source_map_0.5.6.tgz";
@@ -11698,14 +11586,6 @@
       };
     }
     {
-      name = "source_map___source_map_0.4.4.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz";
-        sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
-      };
-    }
-    {
       name = "source_map___source_map_0.6.1.tgz";
       path = fetchurl {
         name = "source_map___source_map_0.6.1.tgz";
@@ -11858,14 +11738,6 @@
       };
     }
     {
-      name = "stdout_stream___stdout_stream_1.4.1.tgz";
-      path = fetchurl {
-        name = "stdout_stream___stdout_stream_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz";
-        sha1 = "5ac174cdd5cd726104aa0c0b2bd83815d8d535de";
-      };
-    }
-    {
       name = "stealthy_require___stealthy_require_1.1.1.tgz";
       path = fetchurl {
         name = "stealthy_require___stealthy_require_1.1.1.tgz";
@@ -11930,14 +11802,6 @@
       };
     }
     {
-      name = "string_width___string_width_1.0.2.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
-      };
-    }
-    {
       name = "string_width___string_width_3.1.0.tgz";
       path = fetchurl {
         name = "string_width___string_width_3.1.0.tgz";
@@ -12018,14 +11882,6 @@
       };
     }
     {
-      name = "strip_bom___strip_bom_2.0.0.tgz";
-      path = fetchurl {
-        name = "strip_bom___strip_bom_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz";
-        sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
-      };
-    }
-    {
       name = "strip_bom___strip_bom_3.0.0.tgz";
       path = fetchurl {
         name = "strip_bom___strip_bom_3.0.0.tgz";
@@ -12058,14 +11914,6 @@
       };
     }
     {
-      name = "strip_indent___strip_indent_1.0.1.tgz";
-      path = fetchurl {
-        name = "strip_indent___strip_indent_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz";
-        sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
-      };
-    }
-    {
       name = "strip_indent___strip_indent_3.0.0.tgz";
       path = fetchurl {
         name = "strip_indent___strip_indent_3.0.0.tgz";
@@ -12090,11 +11938,11 @@
       };
     }
     {
-      name = "style_loader___style_loader_1.3.0.tgz";
+      name = "style_loader___style_loader_2.0.0.tgz";
       path = fetchurl {
-        name = "style_loader___style_loader_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz";
-        sha1 = "828b4a3b3b7e7aa5847ce7bae9e874512114249e";
+        name = "style_loader___style_loader_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz";
+        sha1 = "9669602fd4690740eaaec137799a03addbbc393c";
       };
     }
     {
@@ -12146,14 +11994,6 @@
       };
     }
     {
-      name = "supports_color___supports_color_2.0.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
-        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
-      };
-    }
-    {
       name = "supports_color___supports_color_5.5.0.tgz";
       path = fetchurl {
         name = "supports_color___supports_color_5.5.0.tgz";
@@ -12250,14 +12090,6 @@
       };
     }
     {
-      name = "tar___tar_2.2.2.tgz";
-      path = fetchurl {
-        name = "tar___tar_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz";
-        sha1 = "0ca8848562c7299b8b446ff6a4d60cdbb23edc40";
-      };
-    }
-    {
       name = "tar___tar_6.0.5.tgz";
       path = fetchurl {
         name = "tar___tar_6.0.5.tgz";
@@ -12410,6 +12242,14 @@
       };
     }
     {
+      name = "tippy.js___tippy.js_6.3.1.tgz";
+      path = fetchurl {
+        name = "tippy.js___tippy.js_6.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.1.tgz";
+        sha1 = "3788a007be7015eee0fd589a66b98fb3f8f10181";
+      };
+    }
+    {
       name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
       path = fetchurl {
         name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
@@ -12418,11 +12258,11 @@
       };
     }
     {
-      name = "tiptap_extensions___tiptap_extensions_1.35.1.tgz";
+      name = "tiptap_extensions___tiptap_extensions_1.35.2.tgz";
       path = fetchurl {
-        name = "tiptap_extensions___tiptap_extensions_1.35.1.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.35.1.tgz";
-        sha1 = "6227362b08dbad8d0ab0141b508876deca276c55";
+        name = "tiptap_extensions___tiptap_extensions_1.35.2.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.35.2.tgz";
+        sha1 = "83dd6ee703ae8c83b58c7608f97253fcc4f1a94c";
       };
     }
     {
@@ -12434,11 +12274,11 @@
       };
     }
     {
-      name = "tiptap___tiptap_1.32.1.tgz";
+      name = "tiptap___tiptap_1.32.2.tgz";
       path = fetchurl {
-        name = "tiptap___tiptap_1.32.1.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.32.1.tgz";
-        sha1 = "92b47008d163e31d25d44dc18809a7e928fe1daf";
+        name = "tiptap___tiptap_1.32.2.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.32.2.tgz";
+        sha1 = "cd6259e853652bfc6860758ff44ebb695d5edd1c";
       };
     }
     {
@@ -12538,6 +12378,14 @@
       };
     }
     {
+      name = "totalist___totalist_1.1.0.tgz";
+      path = fetchurl {
+        name = "totalist___totalist_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz";
+        sha1 = "a4d65a3e546517701e3e5c37a47a70ac97fe56df";
+      };
+    }
+    {
       name = "touch___touch_3.1.0.tgz";
       path = fetchurl {
         name = "touch___touch_3.1.0.tgz";
@@ -12570,14 +12418,6 @@
       };
     }
     {
-      name = "trim_newlines___trim_newlines_1.0.0.tgz";
-      path = fetchurl {
-        name = "trim_newlines___trim_newlines_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz";
-        sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
-      };
-    }
-    {
       name = "trim_newlines___trim_newlines_3.0.0.tgz";
       path = fetchurl {
         name = "trim_newlines___trim_newlines_3.0.0.tgz";
@@ -12594,14 +12434,6 @@
       };
     }
     {
-      name = "true_case_path___true_case_path_1.0.3.tgz";
-      path = fetchurl {
-        name = "true_case_path___true_case_path_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz";
-        sha1 = "f813b5a8c86b40da59606722b144e3225799f47d";
-      };
-    }
-    {
       name = "try_catch___try_catch_2.0.0.tgz";
       path = fetchurl {
         name = "try_catch___try_catch_2.0.0.tgz";
@@ -12618,14 +12450,6 @@
       };
     }
     {
-      name = "tryer___tryer_1.0.0.tgz";
-      path = fetchurl {
-        name = "tryer___tryer_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz";
-        sha1 = "027b69fa823225e551cace3ef03b11f6ab37c1d7";
-      };
-    }
-    {
       name = "ts_invariant___ts_invariant_0.4.4.tgz";
       path = fetchurl {
         name = "ts_invariant___ts_invariant_0.4.4.tgz";
@@ -12714,6 +12538,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.20.2.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+      };
+    }
+    {
       name = "type_fest___type_fest_0.6.0.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.6.0.tgz";
@@ -12978,11 +12810,11 @@
       };
     }
     {
-      name = "url_loader___url_loader_3.0.0.tgz";
+      name = "url_loader___url_loader_4.1.1.tgz";
       path = fetchurl {
-        name = "url_loader___url_loader_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-3.0.0.tgz";
-        sha1 = "9f1f11b371acf6e51ed15a50db635e02eec18368";
+        name = "url_loader___url_loader_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz";
+        sha1 = "28505e905cae158cf07c92ca622d7f237e70a4e2";
       };
     }
     {
@@ -13330,6 +13162,22 @@
       };
     }
     {
+      name = "vue_observe_visibility___vue_observe_visibility_1.0.0.tgz";
+      path = fetchurl {
+        name = "vue_observe_visibility___vue_observe_visibility_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/vue-observe-visibility/-/vue-observe-visibility-1.0.0.tgz";
+        sha1 = "17cf1b2caf74022f0f3c95371468ddf2b9573152";
+      };
+    }
+    {
+      name = "vue_resize___vue_resize_1.0.1.tgz";
+      path = fetchurl {
+        name = "vue_resize___vue_resize_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/vue-resize/-/vue-resize-1.0.1.tgz";
+        sha1 = "c120bed4e09938771d622614f57dbcf58a5147ee";
+      };
+    }
+    {
       name = "vue_router___vue_router_3.4.9.tgz";
       path = fetchurl {
         name = "vue_router___vue_router_3.4.9.tgz";
@@ -13370,11 +13218,11 @@
       };
     }
     {
-      name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.4.tgz";
+      name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.7.tgz";
       path = fetchurl {
-        name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.4.4.tgz";
-        sha1 = "5fca7a13f785899bbfb70471ec4fe222437d8495";
+        name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.7.tgz";
+        url  = "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.4.7.tgz";
+        sha1 = "12ee26833885f5bb4d37dc058085ccf3ce5b5a74";
       };
     }
     {
@@ -13482,11 +13330,11 @@
       };
     }
     {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
+      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.2.tgz";
       path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz";
-        sha1 = "f6f94db108fb574e415ad313de41a2707d33ef3c";
+        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz";
+        sha1 = "39898cf6200178240910d629705f0f3493f7d666";
       };
     }
     {
@@ -13610,14 +13458,6 @@
       };
     }
     {
-      name = "wide_align___wide_align_1.1.3.tgz";
-      path = fetchurl {
-        name = "wide_align___wide_align_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
-        sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
-      };
-    }
-    {
       name = "widest_line___widest_line_3.1.0.tgz";
       path = fetchurl {
         name = "widest_line___widest_line_3.1.0.tgz";
@@ -13698,11 +13538,11 @@
       };
     }
     {
-      name = "ws___ws_7.3.0.tgz";
+      name = "ws___ws_7.4.4.tgz";
       path = fetchurl {
-        name = "ws___ws_7.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz";
-        sha1 = "4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd";
+        name = "ws___ws_7.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz";
+        sha1 = "383bc9742cb202292c9077ceab6f6047b17f2d59";
       };
     }
     {
@@ -13930,6 +13770,14 @@
       };
     }
     {
+      name = "yocto_queue___yocto_queue_0.1.0.tgz";
+      path = fetchurl {
+        name = "yocto_queue___yocto_queue_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz";
+        sha1 = "0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b";
+      };
+    }
+    {
       name = "zen_observable_ts___zen_observable_ts_0.8.21.tgz";
       path = fetchurl {
         name = "zen_observable_ts___zen_observable_ts_0.8.21.tgz";
diff --git a/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix b/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix
index 51fc538261d1..1f798e33eb89 100644
--- a/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix
@@ -1,21 +1,23 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
+{ lib, stdenv, rustPlatform, cmake, fetchFromGitHub, pkg-config, openssl
+, libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    sha256 = "qt1IN/5+yw5lrQ00YsvXUcUXCxd97EtNf5JvxJVa7uc=";
+    sha256 = "12f5qrrfjfqp1aph2nmfi9nyzs1ndvgrb3y53mrszm9kf7fa6pyg";
   };
 
-  cargoSha256 = "mitUyf/z7EgjKzFy8ZER8Ceoe9tk6r0ctSYdDG87rIU=";
+  cargoSha256 = "0gw19zdxbkgnj1kcyqn1naj1dnhsx10j860m0xgs5z7bbvfg82p6";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = if stdenv.isDarwin
+    then [ libiconv Security ]
+    else [ openssl ];
 
   # Needed to get openssl-sys to use pkg-config.
   OPENSSL_NO_VENDOR = 1;
diff --git a/nixpkgs/pkgs/applications/version-management/meld/default.nix b/nixpkgs/pkgs/applications/version-management/meld/default.nix
index 89e3a5ea0b53..9859163031c3 100644
--- a/nixpkgs/pkgs/applications/version-management/meld/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/meld/default.nix
@@ -12,7 +12,7 @@
 , gobject-introspection
 , gtk3
 , gtksourceview4
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 }:
 
@@ -44,7 +44,7 @@ python3.pkgs.buildPythonApplication rec {
     gtk3
     gtksourceview4
     gsettings-desktop-schemas
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -57,8 +57,9 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix b/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
index d2511e278632..030a35212ec6 100644
--- a/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
+++ b/nixpkgs/pkgs/applications/version-management/mercurial/4.9.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python2Packages, makeWrapper, unzip
+{ lib, stdenv, fetchurl, python2Packages, makeWrapper
 , guiSupport ? false, tk ? null
 , ApplicationServices
 , mercurialSrc ? fetchurl rec {
@@ -21,7 +21,7 @@ in python2Packages.buildPythonApplication {
 
   inherit python; # pass it so that the same version can be used in hg2git
 
-  nativeBuildInputs = [ makeWrapper unzip ];
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ docutils ]
     ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
index 26d263b060d4..3caf499d31ac 100644
--- a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
@@ -1,29 +1,59 @@
-{ lib, stdenv, fetchurl, python3Packages, makeWrapper, unzip
+{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext
+, re2Support ? true
+, rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
 , guiSupport ? false, tk ? null
 , ApplicationServices
 }:
 
 let
-  inherit (python3Packages) docutils python;
+  inherit (python3Packages) docutils python fb-re2;
 
 in python3Packages.buildPythonApplication rec {
   pname = "mercurial";
-  version = "5.6";
+  version = "5.8";
 
   src = fetchurl {
     url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-    sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
+    sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
   };
 
+  patches = [
+    # https://phab.mercurial-scm.org/D10638, needed for below patch to apply
+    (fetchpatch {
+      url = "https://phab.mercurial-scm.org/file/data/oymk4awh2dd7q6cwjbzu/PHID-FILE-bfcr7qrp5spg42wspxpd/D10638.diff";
+      sha256 = "0mfi324is02l7cnd3j0gbmg5rpyyqn3afg3f73flnfwmz5njqa5f";
+    })
+    # https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
+    (fetchpatch {
+      url = "https://phab.mercurial-scm.org/file/data/re4uqdhtknjiacx2ogwu/PHID-FILE-4m26id65dno5gzix2ngh/D10639.diff";
+      sha256 = "0h5ilrd2x1789fr6sf4k1mcvxdh0xdyr94yawdacw87v3x12c8cb";
+    })
+  ];
+
   format = "other";
 
   passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
 
-  nativeBuildInputs = [ makeWrapper unzip ];
+  cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
+    sourceRoot = "${pname}-${version}/rust";
+  } else null;
+  cargoRoot = if rustSupport then "rust" else null;
+
+  propagatedBuildInputs = lib.optional re2Support fb-re2;
+  nativeBuildInputs = [ makeWrapper gettext ]
+    ++ lib.optionals rustSupport (with rustPlatform; [
+         cargoSetupHook
+         rust.cargo
+         rust.rustc
+       ]);
   buildInputs = [ docutils ]
     ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [ "PREFIX=$(out)" ]
+    ++ lib.optional rustSupport "PURE=--rust";
 
   postInstall = (lib.optionalString guiSupport ''
     mkdir -p $out/etc/mercurial
@@ -52,14 +82,14 @@ in python3Packages.buildPythonApplication rec {
     install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
   '';
 
-  meta = {
+  meta = with lib; {
     inherit version;
     description = "A fast, lightweight SCM system for very large distributed projects";
     homepage = "https://www.mercurial-scm.org";
     downloadPage = "https://www.mercurial-scm.org/release/";
-    license = lib.licenses.gpl2;
-    maintainers = [ lib.maintainers.eelco ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ eelco lukegb ];
     updateWalker = true;
-    platforms = lib.platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/monotone/default.nix b/nixpkgs/pkgs/applications/version-management/monotone/default.nix
index f20d827dc5ff..48af459260df 100644
--- a/nixpkgs/pkgs/applications/version-management/monotone/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/monotone/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv, fetchurl, boost, zlib, botan, libidn
-, lua, pcre, sqlite, perl, pkg-config, expect
+{ lib, stdenv, fetchurl, fetchFromGitHub, boost, zlib, botan2, libidn
+, lua, pcre, sqlite, perl, pkg-config, expect, less
 , bzip2, gmp, openssl
+, autoreconfHook, texinfo
 }:
 
 let
-  version = "1.1";
+  version = "1.1-unstable-2021-05-01";
   perlVersion = lib.getVersion perl;
 in
 
@@ -14,22 +15,41 @@ stdenv.mkDerivation rec {
   pname = "monotone";
   inherit version;
 
-  src = fetchurl {
-    url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.bz2";
-    sha256 = "124cwgi2q86hagslbk5idxbs9j896rfjzryhr6z63r6l485gcp7r";
+  #  src = fetchurl {
+  #    url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.bz2";
+  #    sha256 = "124cwgi2q86hagslbk5idxbs9j896rfjzryhr6z63r6l485gcp7r";
+  #  };
+
+  # My mirror of upstream Monotone repository
+  # Could fetchmtn, but circular dependency; snapshot requested
+  # https://lists.nongnu.org/archive/html/monotone-devel/2021-05/msg00000.html
+  src = fetchFromGitHub {
+    owner = "7c6f434c";
+    repo = "monotone-mirror";
+    rev = "b30b0e1c16def043d2dad57d1467d5bfdecdb070";
+    hash = "sha256:1hfy8vaap3184cd7h3qhz0da7c992idkc6q2nz9frhma45c5vgmd";
   };
 
   patches = [ ./monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ boost zlib botan libidn lua pcre sqlite expect
-    openssl gmp bzip2 ];
+  postPatch = ''
+    sed -e 's@/usr/bin/less@${less}/bin/less@' -i src/unix/terminal.cc
+  '';
+
+  nativeBuildInputs = [ pkg-config autoreconfHook texinfo ];
+  buildInputs = [ boost zlib botan2 libidn lua pcre sqlite expect
+    openssl gmp bzip2 perl ];
 
   postInstall = ''
     mkdir -p $out/share/${pname}-${version}
     cp -rv contrib/ $out/share/${pname}-${version}/contrib
     mkdir -p $out/${perl.libPrefix}/${perlVersion}
     cp -v contrib/Monotone.pm $out/${perl.libPrefix}/${perlVersion}
+
+    patchShebangs "$out/share/monotone"
+    patchShebangs "$out/share/${pname}-${version}"
+
+    find "$out"/share/{doc/monotone,${pname}-${version}}/contrib/ -type f | xargs sed -e 's@! */usr/bin/@!/usr/bin/env @; s@! */bin/bash@!/usr/bin/env bash@' -i
   '';
 
   #doCheck = true; # some tests fail (and they take VERY long)
@@ -38,6 +58,6 @@ stdenv.mkDerivation rec {
     description = "A free distributed version control system";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
index 776a794d649d..a51e8c199bcd 100644
--- a/nixpkgs/pkgs/applications/version-management/pijul/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-alpha.46";
+  version = "1.0.0-alpha.48";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "0x095g26qdch1m3izkn8ynwk1xg1qyz9ia8di23j61k7z2rqk0j5";
+    sha256 = "09sz5665nwj2jppx2695hbwdqr3ws6z6rg7mmc4ldb7hkp4yilig";
   };
 
-  cargoSha256 = "0cw1y4vmhn70a94512mppk0kfh9xdfm0v4rp3zm00y06jzq1a1fp";
+  cargoSha256 = "1v5w5za7l3hy9anz136x0vgdmgg090f5sawzgrg5ylgxy2l9s2gn";
 
   cargoBuildFlags = lib.optional gitImportSupport "--features=git";
 
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
index d3afc9de341a..7f3fc0650cf4 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -70,28 +70,28 @@ GEM
     globalid (0.4.2)
       activesupport (>= 4.2.0)
     htmlentities (4.3.4)
-    i18n (1.8.9)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
-    loofah (2.9.0)
+    loofah (2.9.1)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
-    marcel (1.0.0)
+    marcel (1.0.1)
     method_source (1.0.0)
     mini_magick (4.11.0)
     mini_mime (1.0.3)
-    mini_portile2 (2.5.0)
+    mini_portile2 (2.5.1)
     minitest (5.14.4)
     mocha (1.12.0)
     mysql2 (0.5.3)
     net-ldap (0.17.0)
     nio4r (2.5.7)
-    nokogiri (1.11.2)
+    nokogiri (1.11.3)
       mini_portile2 (~> 2.5.0)
       racc (~> 1.4)
     parallel (1.20.1)
-    parser (3.0.0.0)
+    parser (3.0.1.0)
       ast (~> 2.4.1)
     pg (1.2.3)
     public_suffix (4.0.6)
@@ -138,7 +138,7 @@ GEM
     regexp_parser (1.8.2)
     request_store (1.5.0)
       rack (>= 1.4)
-    rexml (3.2.4)
+    rexml (3.2.5)
     roadie (4.0.0)
       css_parser (~> 1.4)
       nokogiri (~> 1.8)
@@ -151,7 +151,7 @@ GEM
       chunky_png (~> 1.0)
       rqrcode_core (~> 0.2)
     rqrcode_core (0.2.0)
-    rubocop (1.12.0)
+    rubocop (1.12.1)
       parallel (~> 1.10)
       parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
index e0559a9c48f9..7eca72ac5f00 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }:
 
 let
-  version = "4.2.0";
+  version = "4.2.1";
   rubyEnv = bundlerEnv {
     name = "redmine-env-${version}";
 
@@ -16,7 +16,7 @@ in
 
     src = fetchurl {
       url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
-      sha256 = "1r87gy73dclnvcz55vziv6kbgyck0v8jlzx1wwkak8mgh32n8n19";
+      sha256 = "1d217fhyvncpwahwlinr3vc20vn7jijaxxk1i56gw72z8b1hjhdd";
     };
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
index b545c9d6a3e2..2d045a5f2926 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
@@ -269,10 +269,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.9";
+    version = "1.8.10";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -280,10 +280,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.9.0";
+    version = "2.9.1";
   };
   mail = {
     dependencies = ["mini_mime"];
@@ -301,10 +301,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vhp6lifwvqs2b0a276lj61n86c1l7d1xiswjj2w23f54gl51mpk";
+      sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   method_source = {
     groups = ["default"];
@@ -341,10 +341,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
+      sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default" "test"];
@@ -410,10 +410,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
+      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
       type = "gem";
     };
-    version = "1.11.2";
+    version = "1.11.3";
   };
   parallel = {
     groups = ["default" "test"];
@@ -431,10 +431,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
+      sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8";
       type = "gem";
     };
-    version = "3.0.0.0";
+    version = "3.0.1.0";
   };
   pg = {
     groups = ["default"];
@@ -638,10 +638,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "3.2.4";
+    version = "3.2.5";
   };
   roadie = {
     dependencies = ["css_parser" "nokogiri"];
@@ -712,10 +712,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3y0h6awywx4rdmjdan908jmnyk589pndbjypxkfbkqvjx514fw";
+      sha256 = "0hi2c3a6alya9yx07nirnjzlc0mvmidnx67874njp6wf7d5xqqr9";
       type = "gem";
     };
-    version = "1.12.0";
+    version = "1.12.1";
   };
   rubocop-ast = {
     dependencies = ["parser"];
diff --git a/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix b/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix
index 3e526d5ac7ca..2f9ff92ad672 100644
--- a/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix
@@ -1,60 +1,38 @@
-{ lib, stdenv, fetchurl, makeWrapper, python27Packages, git
-, docbook_xml_dtd_412, docbook_xsl, asciidoc, xmlto, pypy
-, breezy ? null, cvs ? null, darcs ? null, fossil ? null
-, mercurial ? null, monotone ? null, rcs ? null
-, subversion ? null, cvs_fast_export ? null }:
-
-with stdenv; with lib;
-let
-  inherit (python27Packages) python;
-in mkDerivation rec {
-  name = "reposurgeon-${meta.version}";
-  meta = {
-    description = "A tool for editing version-control repository history";
-    version = "3.44";
-    license = licenses.bsd3;
-    homepage = "http://www.catb.org/esr/reposurgeon/";
-    maintainers = with maintainers; [ dfoxfranke ];
-    platforms = platforms.all;
-  };
+{ lib, stdenv, fetchurl, makeWrapper, buildGoModule, git
+, asciidoctor, ruby
+}:
+
+buildGoModule rec {
+  pname = "reposurgeon";
+  version = "4.26";
 
   src = fetchurl {
-    url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-3.44.tar.xz";
-    sha256 = "0il6hwrsm2qgg0vp5fcjh478y2x4zyw3mx2apcwc7svfj86pf7pn";
+    url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-${version}.tar.xz";
+    sha256 = "sha256-FuL5pvIM468hEm6rUBKGW6+WlYv4DPHNnpwpRGzMwlY=";
   };
 
-  # install fails because the files README.md, NEWS, and TODO were not included in the source distribution
-  patches = [ ./fix-makefile.patch ];
+  vendorSha256 = "sha256-KpdXI2Znhe0iCp0DjSZXzUYDZIz2KBRv1/SpaRTFMAc=";
+
+  subPackages = [ "." ];
+
+  runVend = true;
 
-  buildInputs =
-    [ docbook_xml_dtd_412 docbook_xsl asciidoc xmlto makeWrapper pypy ];
+  nativeBuildInputs = [ asciidoctor ruby ];
 
-  preBuild = ''
-    makeFlagsArray=(
-      XML_CATALOG_FILES="${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml"
-      prefix="$out"
-      pyinclude="-I${python}/include/python2.7"
-      pylib="-L${python}/lib -lpython2.7"
-    )
+  postBuild = ''
+    patchShebangs .
+    make all HTMLFILES=
   '';
 
-  postInstall =
-    let
-      binpath = makeBinPath (
-        filter (x: x != null)
-        [ out git breezy cvs darcs fossil mercurial
-          monotone rcs src subversion cvs_fast_export ]
-      );
-      pythonpath = makeSearchPathOutput "lib" python.sitePackages (
-        filter (x: x != null)
-        [ python27Packages.readline or null python27Packages.hglib or null ]
-      );
-    in ''
-      for prog in reposurgeon repodiffer repotool; do
-        wrapProgram $out/bin/$prog \
-          --prefix PATH : "${binpath}" \
-          --prefix PYTHONPATH : "${pythonpath}"
-      done
-    ''
-  ;
+  postInstall = ''
+    make install prefix=$out HTMLFILES=
+  '';
+
+  meta = {
+    description = "A tool for editing version-control repository history";
+    license = lib.licenses.bsd3;
+    homepage = "http://www.catb.org/esr/reposurgeon/";
+    maintainers = with lib.maintainers; [ dfoxfranke ];
+    platforms = lib.platforms.all;
+  };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/sit/default.nix b/nixpkgs/pkgs/applications/version-management/sit/default.nix
index 83370f5c6f09..edb2825d49c3 100644
--- a/nixpkgs/pkgs/applications/version-management/sit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/sit/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  cargoSha256 = "092yfpr2svp1qy7xis1q0sdkbsjmmswmdwb0rklrc0yhydcsghp9";
+  cargoSha256 = "1ghr01jcq12ddna5qadvjy6zbgqgma5nf0qv06ayxnra37d2l92l";
 
   meta = with lib; {
     description = "Serverless Information Tracker";
diff --git a/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix b/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
index 324c61ab194b..3c0e540d228b 100644
--- a/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
@@ -4,7 +4,7 @@
 , jre
 , gtk3
 , glib
-, gnome3
+, gnome
 , wrapGAppsHook
 , libXtst
 , which
@@ -12,16 +12,16 @@
 
 stdenv.mkDerivation rec {
   pname = "smartgithg";
-  version = "19.1.1";
+  version = "20.2.5";
 
   src = fetchurl {
     url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.gz";
-    sha256 = "0i0dvyy9d63f4hk8czlyk83ai0ywhqp7wbdkq3s87l7irwgs42jy";
+    sha256 = "05f3yhzf6mvr6c5v6qvjrx97pzrrnkh9mp444zlkbnpgnrsmdc6v";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
 
-  buildInputs = [ jre gnome3.adwaita-icon-theme gtk3 ];
+  buildInputs = [ jre gnome.adwaita-icon-theme gtk3 ];
 
   preFixup = with lib; ''
     gappsWrapperArgs+=( \
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
index 7fb26476d8ae..c8163caf8eae 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
@@ -1,24 +1,34 @@
-{ lib, fetchgit, buildPythonPackage
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
 , buildGoModule
-, srht, redis, celery, pyyaml, markdown }:
-
+, srht
+, redis
+, celery
+, pyyaml
+, markdown
+, ansi2html
+, python
+}:
 let
-  version = "0.63.4";
+  version = "0.66.7";
 
   buildWorker = src: buildGoModule {
     inherit src version;
     pname = "builds-sr-ht-worker";
 
-    vendorSha256 = "1sbcjp93gb0c4p7dd1gjhmhwr1pygxvrrzp954j2fvxvi38w6571";
+    vendorSha256 = "sha256-giOaldV46aBqXyFH/cQVsbUr6Rb4VMhbBO86o48tRZY=";
   };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   inherit version;
   pname = "buildsrht";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "builds.sr.ht";
     rev = version;
-    sha256 = "1w3rb685nqg2h0k3ag681svc400si9r1gy0sdim3wa2qh8glbqni";
+    sha256 = "sha256-2MLs/DOXHjEYarXDVUcPZe3o0fmZbzVxn528SE72lhM=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -29,10 +39,12 @@ in buildPythonPackage rec {
     celery
     pyyaml
     markdown
+    ansi2html
   ];
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   postInstall = ''
@@ -44,8 +56,6 @@ in buildPythonPackage rec {
     cp ${buildWorker "${src}/worker"}/bin/worker $out/bin/builds.sr.ht-worker
   '';
 
-  dontUseSetuptoolsCheck = true;
-
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
     description = "Continuous integration service for the sr.ht network";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
index 69f8a7d4e458..d359d524eb29 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
@@ -1,24 +1,48 @@
-{ lib, fetchgit, fetchNodeModules, buildPythonPackage
-, pgpy, flask, bleach, humanize, html5lib, markdown, psycopg2, pygments
-, requests, sqlalchemy, cryptography, beautifulsoup4, sqlalchemy-utils, prometheus_client
-, celery, alembic, importlib-metadata, mistletoe
-, sassc, nodejs
-, writeText }:
+{ lib
+, fetchgit
+, fetchNodeModules
+, buildPythonPackage
+, pgpy
+, flask
+, bleach
+, misaka
+, humanize
+, html5lib
+, markdown
+, psycopg2
+, pygments
+, requests
+, sqlalchemy
+, cryptography
+, beautifulsoup4
+, sqlalchemy-utils
+, prometheus_client
+, celery
+, alembic
+, importlib-metadata
+, mistletoe
+, minio
+, sassc
+, nodejs
+, redis
+, writeText
+}:
 
 buildPythonPackage rec {
   pname = "srht";
-  version = "0.65.2";
+  version = "0.67.4";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
     rev = version;
-    sha256 = "1jfp1vc8mink3c7ccacgnqx8hpkck82ipxiql38q1y9l8xcsah03";
+    sha256 = "sha256-XvzFfcBK5Mq8p7xEBAF/eupUE1kkUBh5k+ByM/WA9bc=";
+    fetchSubmodules = true;
   };
 
   node_modules = fetchNodeModules {
     src = "${src}/srht";
     nodejs = nodejs;
-    sha256 = "0gwa2xb75g7fclrsr7r131kj8ri5gmhd96yw1iws5pmgsn2rlqi1";
+    sha256 = "sha256-IWKahdWv3qJ5DNyb1GB9JWYkZxghn6wzZe68clYXij8=";
   };
 
   patches = [
@@ -34,6 +58,7 @@ buildPythonPackage rec {
     pgpy
     flask
     bleach
+    misaka
     humanize
     html5lib
     markdown
@@ -51,6 +76,8 @@ buildPythonPackage rec {
     celery
     alembic
     importlib-metadata
+    minio
+    redis
   ];
 
   PKGVER = version;
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
index 8d2e8ceed335..401a1437b7d9 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
@@ -1,14 +1,16 @@
-{ python38, openssl
-, callPackage, recurseIntoAttrs }:
+{ python3
+, openssl
+, callPackage
+, recurseIntoAttrs
+}:
 
 # To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
 # Then we expose them through all-packages.nix as an application through `toPythonApplication`
 # https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781
-
 let
   fetchNodeModules = callPackage ./fetchNodeModules.nix { };
 
-  python = python38.override {
+  python = python3.override {
     packageOverrides = self: super: {
       srht = self.callPackage ./core.nix { inherit fetchNodeModules; };
 
@@ -26,8 +28,10 @@ let
       scmsrht = self.callPackage ./scm.nix { };
     };
   };
-in with python.pkgs; recurseIntoAttrs {
+in
+with python.pkgs; recurseIntoAttrs {
   inherit python;
+  coresrht = toPythonApplication srht;
   buildsrht = toPythonApplication buildsrht;
   dispatchsrht = toPythonApplication dispatchsrht;
   gitsrht = toPythonApplication gitsrht;
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
index 5ce140273ebd..637c6f9c1df4 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
@@ -1,14 +1,21 @@
-{ lib, fetchgit, buildPythonPackage
-, srht, pyyaml, PyGithub }:
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
+, srht
+, pyyaml
+, PyGithub
+, python
+}:
 
 buildPythonPackage rec {
   pname = "dispatchsrht";
-  version = "0.14.9";
+  version = "0.15.8";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/dispatch.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "dispatch.sr.ht";
     rev = version;
-    sha256 = "JUffuJTKY4I8CrJc8tJWL+CbJCZtiqtUSO9SgYoeux0=";
+    sha256 = "sha256-zWCGPjIgMKHXHJUs9aciV7IFgo0rpahon6KXHDwcfss=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -21,10 +28,9 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
-  dontUseSetuptoolsCheck = true;
-
   meta = with lib; {
     homepage = "https://dispatch.sr.ht/~sircmpwn/dispatch.sr.ht";
     description = "Task dispatcher and service integration tool for the sr.ht network";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
index a25a14f610c1..e44fb9cd6c6c 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
@@ -1,20 +1,32 @@
-{ lib, fetchgit, buildPythonPackage
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
 , buildGoModule
-, srht, minio, pygit2, scmsrht }:
-
+, python
+, srht
+, pygit2
+, scmsrht
+}:
 let
-  version = "0.61.10";
+  version = "0.72.8";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "git.sr.ht";
+    rev = version;
+    sha256 = "sha256-AB2uzajO5PtcpJfbOOTfuDFM6is5K39v3AZJ1hShRNc=";
+  };
 
   buildShell = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-shell";
-    vendorSha256 = "1abyv2s5l3bs0iylpgyj3jri2hh1iy8fiadxm7g6l2vl58h0b9ba";
+    vendorSha256 = "sha256-aqUFICp0C2reqb2p6JCPAUIRsxzSv0t9BHoNWrTYfqk=";
   };
 
   buildDispatcher = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-dispatcher";
-    vendorSha256 = "1lzkf13m54pq0gnn3bcxc80nfg76hgck4l8q8jpaicrsiwgcyrd9";
+    vendorSha256 = "sha256-qWXPHo86s6iuRBhRMtmD5jxnAWKdrWHtA/iSUkdw89M=";
   };
 
   buildKeys = src: buildGoModule {
@@ -29,32 +41,24 @@ let
     vendorSha256 = "0fwzqpjv8x5y3w3bfjd0x0cvqjjak23m0zj88hf32jpw49xmjkih";
   };
 
-  buildAPI = src: buildGoModule {
-    inherit src version;
-    pname = "gitsrht-api";
-    vendorSha256 = "0d6kmsbsgj2q5nddx4w675zbsiarffj9vqplwvqk7dwz4id2wnif";
-  };
-in buildPythonPackage rec {
-  pname = "gitsrht";
-  inherit version;
+  updateHook = buildUpdateHook "${src}/gitsrht-update-hook";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/git.sr.ht";
-    rev = version;
-    sha256 = "0g7aj5wlns0m3kf2aajqjjb5fwk5vbb8frrkdfp4118235h3xcqy";
-  };
+in
+buildPythonPackage rec {
+  inherit src version;
+  pname = "gitsrht";
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
     srht
-    minio
     pygit2
     scmsrht
   ];
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   postInstall = ''
@@ -62,11 +66,11 @@ in buildPythonPackage rec {
     cp ${buildShell "${src}/gitsrht-shell"}/bin/gitsrht-shell $out/bin/gitsrht-shell
     cp ${buildDispatcher "${src}/gitsrht-dispatch"}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
     cp ${buildKeys "${src}/gitsrht-keys"}/bin/gitsrht-keys $out/bin/gitsrht-keys
-    cp ${buildUpdateHook "${src}/gitsrht-update-hook"}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
-    cp ${buildAPI "${src}/api"}/bin/api $out/bin/gitsrht-api
+    cp ${updateHook}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
   '';
-
-  dontUseSetuptoolsCheck = true;
+  passthru = {
+    inherit updateHook;
+  };
 
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
index c8fa64c8b4d9..cddb76cabf25 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
@@ -1,14 +1,21 @@
-{ lib, fetchhg, buildPythonPackage
-, srht, hglib, scmsrht, unidiff }:
+{ lib
+, fetchhg
+, buildPythonPackage
+, srht
+, hglib
+, scmsrht
+, unidiff
+, python
+}:
 
 buildPythonPackage rec {
   pname = "hgsrht";
-  version = "0.26.19";
+  version = "0.27.4";
 
   src = fetchhg {
     url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
     rev = version;
-    sha256 = "0dc0lgqq8zdaywbd50dlxypk1lv0nffvqr3889v10ycy45qcfymv";
+    sha256 = "1c0qfi0gmbfngvds6917fy9ii2iglawn429757rh7b4bvzn7n6mr";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -22,10 +29,9 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
-  dontUseSetuptoolsCheck = true;
-
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/hg.sr.ht";
     description = "Mercurial repository hosting service for the sr.ht network";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
index 8b6d92019976..17cb3fe4b614 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
@@ -1,14 +1,18 @@
-{ lib, fetchgit, buildPythonPackage
-, srht }:
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
+, srht
+}:
 
 buildPythonPackage rec {
   pname = "hubsrht";
-  version = "0.11.5";
+  version = "0.13.1";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/hub.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "hub.sr.ht";
     rev = version;
-    sha256 = "0cysdfy1z69jaizblbq0ywpcvcnx57rlzg42k98kd9w2mqzj5173";
+    sha256 = "sha256-Kqzy4mh5Nn1emzHBco/LVuXro/tW3NX+OYqdEwBSQ/U=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
index 98191f564e96..b419b49f7b5d 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
@@ -1,14 +1,24 @@
-{ lib, fetchgit, buildPythonPackage
-, srht, asyncpg, aiosmtpd, pygit2, emailthreads }:
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
+, srht
+, asyncpg
+, aiosmtpd
+, pygit2
+, emailthreads
+, redis
+, python
+}:
 
 buildPythonPackage rec {
   pname = "listssrht";
-  version = "0.45.15";
+  version = "0.48.19";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "lists.sr.ht";
     rev = version;
-    sha256 = "0f3yl5nf385j7mhcrmda7zk58i1y6fm00i479js90xxhjifmqkq6";
+    sha256 = "sha256-bsakEMyvWaxiE4/SGcAP4mlGG9jkdHfFxpt9H+TJn/8=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -19,14 +29,14 @@ buildPythonPackage rec {
     asyncpg
     aiosmtpd
     emailthreads
+    redis
   ];
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
-  dontUseSetuptoolsCheck = true;
-
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
     description = "Mailing list service for the sr.ht network";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
index e3751a6d5c8b..bd331f000a72 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
@@ -1,14 +1,20 @@
-{ lib, fetchgit, buildPythonPackage
-, srht, pygit2 }:
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
+, srht
+, pygit2
+, python
+}:
 
 buildPythonPackage rec {
   pname = "mansrht";
-  version = "0.15.4";
+  version = "0.15.12";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/man.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "man.sr.ht";
     rev = version;
-    sha256 = "0spi0yy2myxw4kggy54yskda14c4vaq2ng9dd9krqsajnsy7anrw";
+    sha256 = "sha256-MqH/8K9XRvEg6P7GHE6XXtWnhDP3wT8iGoNaFtYQbio=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -20,10 +26,9 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
-  dontUseSetuptoolsCheck = true;
-
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/man.sr.ht";
     description = "Wiki service for the sr.ht network";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
index b5b15520d253..a285d484ed2a 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
@@ -1,26 +1,42 @@
-{ lib, fetchgit, buildPythonPackage
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
 , buildGoModule
-, pgpy, srht, redis, bcrypt, qrcode, stripe, zxcvbn, alembic, pystache
-, sshpubkeys, weasyprint }:
-
+, pgpy
+, srht
+, redis
+, bcrypt
+, qrcode
+, stripe
+, zxcvbn
+, alembic
+, pystache
+, dnspython
+, sshpubkeys
+, weasyprint
+, prometheus_client
+, python
+}:
 let
-  version = "0.51.2";
+  version = "0.53.14";
 
-  buildAPI = src: buildGoModule {
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "meta.sr.ht";
+    rev = version;
+    sha256 = "sha256-/+r/XLDkcSTW647xPMh5bcJmR2xZNNH74AJ5jemna2k=";
+  };
+
+  buildApi = src: buildGoModule {
     inherit src version;
     pname = "metasrht-api";
-
-    vendorSha256 = "0k7i7j604wqvzjavmcsw7g2x059jkkgrgz1qyvzlqc0y4ws59xkq";
+    vendorSha256 = "sha256-eZyDrr2VcNMxI++18qUy7LA1Q1YDlWCoRtl00L8lfR4=";
   };
-in buildPythonPackage rec {
-  pname = "metasrht";
-  inherit version;
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
-    rev = version;
-    sha256 = "0c9y1hzx3dj0awxrhkzrcsmy6q9fqm6v6dbp9y1ria3v47xa3nv7";
-  };
+in
+buildPythonPackage rec {
+  pname = "metasrht";
+  inherit version src;
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
@@ -36,19 +52,20 @@ in buildPythonPackage rec {
     pystache
     sshpubkeys
     weasyprint
+    prometheus_client
+    dnspython
   ];
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   postInstall = ''
     mkdir -p $out/bin
-    cp ${buildAPI "${src}/api"}/bin/api $out/bin/metasrht-api
+    cp ${buildApi "${src}/api/"}/bin/api $out/bin/metasrht-api
   '';
 
-  dontUseSetuptoolsCheck = true;
-
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
     description = "Account management service for the sr.ht network";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
index dab518e70aee..0d8c91354937 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
@@ -1,14 +1,20 @@
-{ lib, fetchgit, buildPythonPackage
-, srht, pyyaml }:
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
+, srht
+, pyyaml
+, python
+}:
 
 buildPythonPackage rec {
   pname = "pastesrht";
-  version = "0.11.2";
+  version = "0.12.1";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "paste.sr.ht";
     rev = version;
-    sha256 = "15hm5165v8a7ryw6i0vlf189slw4rp22cfgzznih18pbml7d0c8s";
+    sha256 = "sha256-QQhd2LeH9BLmlHilhsv+9fZ+RPNmEMSmOpFA3dsMBFc=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -20,10 +26,9 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
-  dontUseSetuptoolsCheck = true;
-
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
     description = "Ad-hoc text file hosting service for the sr.ht network";
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
index 615716d03afd..1f3852653601 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
@@ -1,15 +1,22 @@
-{ lib, fetchgit, buildPythonPackage
-, srht, redis, pyyaml, buildsrht
-, writeText }:
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
+, srht
+, redis
+, pyyaml
+, buildsrht
+, writeText
+}:
 
 buildPythonPackage rec {
   pname = "scmsrht";
-  version = "0.22.4";
+  version = "0.22.9";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "scm.sr.ht";
     rev = version;
-    sha256 = "1djyrwa44wml9lj3njy6qbxyc3g1msswbh0y9jyjzxh2c02bl3jn";
+    sha256 = "sha256-327G6C8FW+iZx+167D7TQsFtV6FGc8MpMVo9L/cUUqU=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
index 5e75efb08864..85e1f5637b62 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
@@ -1,15 +1,24 @@
-{ lib, fetchgit, buildPythonPackage
-, srht, redis, alembic, pystache
-, pytest, factory_boy }:
+{ lib
+, fetchFromSourcehut
+, buildPythonPackage
+, srht
+, redis
+, alembic
+, pystache
+, pytest
+, factory_boy
+, python
+}:
 
 buildPythonPackage rec {
   pname = "todosrht";
-  version = "0.62.1";
+  version = "0.64.14";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/todo.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "todo.sr.ht";
     rev = version;
-    sha256 = "17fsv2z37sjzqzpvx39nc36xln1ayivzjg309d2vmb94aaym4nz2";
+    sha256 = "sha256-huIAhn6h1F5w5ST4/yBwr82kAzyYwhLu+gpRuOQgnsE=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -23,6 +32,7 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
+    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   # pytest tests fail
diff --git a/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
index 1ca04a1634a2..33716a48fb08 100644
--- a/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2047";
-    sha256 = "03a0whifhx9py25l96xpqhb4p6hi9qmnrk2bxz6gh02sinsp3mia";
+    buildVersion = "2056";
+    sha256 = "08472214kazx9fdw7y8gy0bp63mqxcpa79myn2w95wdp0mrlr119";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2046";
-    sha256 = "04laygxr4vm6mawlfmdn2vj0dwj1swab39znsgb1d6rhysz62kjd";
+    buildVersion = "2055";
+    sha256 = "0f5qmxs5cqgdp7gav223ibjwbcrh8bszk1yg1a6hpz8s8j3icvdi";
     dev = true;
   } {};
 }
diff --git a/nixpkgs/pkgs/applications/version-management/subversion/CVE-2020-17525.patch b/nixpkgs/pkgs/applications/version-management/subversion/CVE-2020-17525.patch
deleted file mode 100644
index c844c3773e34..000000000000
--- a/nixpkgs/pkgs/applications/version-management/subversion/CVE-2020-17525.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Patch included in advisory @ https://subversion.apache.org/security/CVE-2020-17525-advisory.txt
-
---- a/subversion/libsvn_repos/config_file.c
-+++ b/subversion/libsvn_repos/config_file.c
-@@ -237,6 +237,10 @@ get_repos_config(svn_stream_t **stream,
-     {
-       /* Search for a repository in the full path. */
-       repos_root_dirent = svn_repos_find_root_path(dirent, scratch_pool);
-+      if (repos_root_dirent == NULL)
-+        return svn_error_trace(handle_missing_file(stream, checksum, access,
-+                                                   url, must_exist,
-+                                                   svn_node_none));
- 
-       /* Attempt to open a repository at repos_root_dirent. */
-       SVN_ERR(svn_repos_open3(&access->repos, repos_root_dirent, NULL,
diff --git a/nixpkgs/pkgs/applications/version-management/subversion/default.nix b/nixpkgs/pkgs/applications/version-management/subversion/default.nix
index 9f780de748e9..6411e834327c 100644
--- a/nixpkgs/pkgs/applications/version-management/subversion/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/subversion/default.nix
@@ -6,16 +6,19 @@
 , javahlBindings ? false
 , saslSupport ? false
 , lib, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc
-, apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null
+, autoconf, libtool
+, apacheHttpd ? null, expat, swig ? null, jdk ? null, python3 ? null, py3c ? null, perl ? null
 , sasl ? null, serf ? null
 }:
 
 assert bdbSupport -> aprutil.bdbSupport;
 assert httpServer -> apacheHttpd != null;
-assert pythonBindings -> swig != null && python != null;
+assert pythonBindings -> swig != null && python3 != null && py3c != null;
 assert javahlBindings -> jdk != null && perl != null;
 
 let
+  # Update libtool for macOS 11 support
+  needsAutogen = stdenv.hostPlatform.isDarwin && lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11";
 
   common = { version, sha256, extraPatches ? [ ] }: stdenv.mkDerivation (rec {
     inherit version;
@@ -29,9 +32,11 @@ let
     # Can't do separate $lib and $bin, as libs reference bins
     outputs = [ "out" "dev" "man" ];
 
+    nativeBuildInputs = lib.optionals needsAutogen [ autoconf libtool python3 ];
+
     buildInputs = [ zlib apr aprutil sqlite openssl lz4 utf8proc ]
       ++ lib.optional httpSupport serf
-      ++ lib.optional pythonBindings python
+      ++ lib.optionals pythonBindings [ python3 py3c ]
       ++ lib.optional perlBindings perl
       ++ lib.optional saslSupport sasl;
 
@@ -42,6 +47,10 @@ let
     # "-P" CPPFLAG is needed to build Python bindings and subversionClient
     CPPFLAGS = [ "-P" ];
 
+    preConfigure = lib.optionalString needsAutogen ''
+      ./autogen.sh
+    '';
+
     configureFlags = [
       (lib.withFeature bdbSupport "berkeley-db")
       (lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs")
@@ -91,7 +100,7 @@ let
 
     enableParallelBuilding = true;
 
-    checkInputs = [ python ];
+    checkInputs = [ python3 ];
     doCheck = false; # fails 10 out of ~2300 tests
 
     meta = with lib; {
@@ -116,8 +125,7 @@ in {
   };
 
   subversion = common {
-    version = "1.12.2";
-    sha256 = "0wgpw3kzsiawzqk4y0xgh1z93kllxydgv4lsviim45y5wk4bbl1v";
-    extraPatches = [ ./CVE-2020-17525.patch ];
+    version = "1.14.1";
+    sha256 = "1ag1hvcm9q92kgalzbbgcsq9clxnzmbj9nciz9lmabjx4lyajp9c";
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix
index 6c97d1536619..a0fa9318a13f 100644
--- a/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix
@@ -9,12 +9,16 @@ let
     sha256 = "031bafj88wggpvw0lgvl0djhlbhs9nls9vzwvni8yn0m0bgzc9gr";
   };
 
-  tortoiseMercurial = mercurial.overridePythonAttrs (old: rec {
+  tortoiseMercurial = (mercurial.override {
+    rustSupport = false;
+    re2Support = lib.versionAtLeast tortoisehgSrc.meta.version "5.8";
+  }).overridePythonAttrs (old: rec {
     inherit (tortoisehgSrc.meta) version;
     src = fetchurl {
       url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
       sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
     };
+    patches = [];
   });
 
 in python3Packages.buildPythonApplication {
diff --git a/nixpkgs/pkgs/applications/version-management/yadm/default.nix b/nixpkgs/pkgs/applications/version-management/yadm/default.nix
index b75af94af565..fc8bee5fcb78 100644
--- a/nixpkgs/pkgs/applications/version-management/yadm/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/yadm/default.nix
@@ -1,17 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, git, gnupg }:
+{ lib, stdenv, fetchFromGitHub, git, gnupg, installShellFiles }:
 
-let version = "2.5.0"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "yadm";
-  inherit version;
+  version = "3.1.0";
 
   buildInputs = [ git gnupg ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   src = fetchFromGitHub {
     owner  = "TheLocehiliosan";
     repo   = "yadm";
     rev    = version;
-    sha256 = "128qlx8mp7h5ifapqqgsj3fwghn3q6x6ya0y33h5r7gnassd3njr";
+    sha256 = "0ga0p28nvqilswa07bzi93adk7wx6d5pgxlacr9wl9v1h6cds92s";
   };
 
   dontConfigure = true;
@@ -20,12 +21,16 @@ stdenv.mkDerivation {
   installPhase = ''
     runHook preInstall
     install -Dt $out/bin yadm
-    install -Dt $out/share/man/man1 yadm.1
-    install -D completion/yadm.zsh_completion $out/share/zsh/site-functions/_yadm
-    install -D completion/yadm.bash_completion $out/share/bash-completion/completions/yadm.bash
     runHook postInstall
   '';
 
+  postInstall = ''
+    installManPage yadm.1
+    installShellCompletion --cmd yadm \
+      --zsh completion/zsh/_yadm \
+      --bash completion/bash/yadm
+  '';
+
   meta = {
     homepage = "https://github.com/TheLocehiliosan/yadm";
     description = "Yet Another Dotfiles Manager";
@@ -35,7 +40,7 @@ stdenv.mkDerivation {
       * Provides a way to use alternate files on a specific OS or host.
       * Supplies a method of encrypting confidential data so it can safely be stored in your repository.
     '';
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ abathur ];
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/video/aegisub/default.nix b/nixpkgs/pkgs/applications/video/aegisub/default.nix
index d39b5e179a6d..133840e066bb 100644
--- a/nixpkgs/pkgs/applications/video/aegisub/default.nix
+++ b/nixpkgs/pkgs/applications/video/aegisub/default.nix
@@ -3,22 +3,22 @@
 , stdenv
 , fetchurl
 , fetchpatch
-, libX11
-, wxGTK
-, libiconv
+, boost
+, ffmpeg
+, ffms
+, fftw
 , fontconfig
 , freetype
-, libGLU
+, icu
+, intltool
 , libGL
+, libGLU
+, libX11
 , libass
-, fftw
-, ffms
-, ffmpeg_3
+, libiconv
 , pkg-config
+, wxGTK
 , zlib
-, icu
-, boost
-, intltool
 
 , spellcheckSupport ? true
 , hunspell ? null
@@ -30,7 +30,7 @@
 , openal ? null
 
 , alsaSupport ? stdenv.isLinux
-, alsaLib ? null
+, alsa-lib ? null
 
 , pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
 , libpulseaudio ? null
@@ -42,75 +42,97 @@
 assert spellcheckSupport -> (hunspell != null);
 assert automationSupport -> (lua != null);
 assert openalSupport -> (openal != null);
-assert alsaSupport -> (alsaLib != null);
+assert alsaSupport -> (alsa-lib != null);
 assert pulseaudioSupport -> (libpulseaudio != null);
 assert portaudioSupport -> (portaudio != null);
 
-with lib;
-stdenv.mkDerivation
- rec {
+let
+  inherit (lib) optional;
+in
+stdenv.mkDerivation rec {
   pname = "aegisub";
   version = "3.2.2";
 
   src = fetchurl {
     url = "http://ftp.aegisub.org/pub/releases/${pname}-${version}.tar.xz";
-    sha256 = "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5";
+    hash = "sha256-xV4zlFuC2FE8AupueC8Ncscmrc03B+lbjAAi9hUeaIU=";
   };
 
   patches = [
     # Compatibility with ICU 59
     (fetchpatch {
       url = "https://github.com/Aegisub/Aegisub/commit/dd67db47cb2203e7a14058e52549721f6ff16a49.patch";
-      sha256 = "07qqlckiyy64lz8zk1as0vflk9kqnjb340420lp9f0xj93ncssj7";
+      sha256 = "sha256-R2rN7EiyA5cuBYIAMpa0eKZJ3QZahfnRp8R4HyejGB8=";
     })
 
     # Compatbility with Boost 1.69
     (fetchpatch {
       url = "https://github.com/Aegisub/Aegisub/commit/c3c446a8d6abc5127c9432387f50c5ad50012561.patch";
-      sha256 = "1n8wmjka480j43b1pr30i665z8hdy6n3wdiz1ls81wyv7ai5yygf";
+      sha256 = "sha256-7nlfojrb84A0DT82PqzxDaJfjIlg5BvWIBIgoqasHNk=";
     })
 
     # Compatbility with make 4.3
     (fetchpatch {
       url = "https://github.com/Aegisub/Aegisub/commit/6bd3f4c26b8fc1f76a8b797fcee11e7611d59a39.patch";
-      sha256 = "1s9cc5rikrqb9ivjbag4b8yxcyjsmmmw744394d5xq8xi4k12vxc";
+      sha256 = "sha256-rG8RJokd4V4aSYOQw2utWnrWPVrkqSV3TAvnGXNhLOk=";
+    })
+
+    # Compatibility with ffms2
+    (fetchpatch {
+      url = "https://github.com/Aegisub/Aegisub/commit/1aa9215e7fc360de05da9b7ec2cd68f1940af8b2.patch";
+      sha256 = "sha256-JsuI4hQTcT0TEqHHoSsGbuiTg4hMCH3Cxp061oLk8Go=";
+    })
+
+    ./update-ffms2.patch
+
+    # Compatibility with X11
+    (fetchpatch {
+      url = "https://github.com/Aegisub/Aegisub/commit/7a6da26be6a830f4e1255091952cc0a1326a4520.patch";
+      sha256 = "sha256-/aTcIjFlZY4N9+IyHL4nwR0hUR4HTJM7ibbdKmNxq0w=";
     })
   ];
 
   nativeBuildInputs = [
-    pkg-config
     intltool
+    pkg-config
   ];
-
-  buildInputs = with lib; [
-    libX11
-    wxGTK
+  buildInputs = [
+    boost
+    ffmpeg
+    ffms
+    fftw
     fontconfig
     freetype
-    libGLU
+    icu
     libGL
+    libGLU
+    libX11
     libass
-    fftw
-    ffms
-    ffmpeg_3
-    zlib
-    icu
-    boost
     libiconv
+    wxGTK
+    zlib
   ]
-    ++ optional spellcheckSupport hunspell
-    ++ optional automationSupport lua
-    ++ optional openalSupport openal
-    ++ optional alsaSupport alsaLib
-    ++ optional pulseaudioSupport libpulseaudio
-    ++ optional portaudioSupport portaudio
-    ;
+  ++ optional alsaSupport alsa-lib
+  ++ optional automationSupport lua
+  ++ optional openalSupport openal
+  ++ optional portaudioSupport portaudio
+  ++ optional pulseaudioSupport libpulseaudio
+  ++ optional spellcheckSupport hunspell
+  ;
 
   enableParallelBuilding = true;
 
-  hardeningDisable = [ "bindnow" "relro" ];
+  hardeningDisable = [
+    "bindnow"
+    "relro"
+  ];
+
+  postPatch = ''
+    sed -i 's/-Wno-c++11-narrowing/-Wno-narrowing/' configure.ac src/Makefile
+  '';
 
-  # compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554
+  # compat with icu61+
+  # https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554
   CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ];
 
   # this is fixed upstream though not yet in an officially released version,
@@ -119,7 +141,8 @@ stdenv.mkDerivation
 
   postInstall = "ln -s $out/bin/aegisub-* $out/bin/aegisub";
 
-  meta = {
+  meta = with lib; {
+    homepage = "https://github.com/Aegisub/Aegisub";
     description = "An advanced subtitle editor";
     longDescription = ''
       Aegisub is a free, cross-platform open source tool for creating and
@@ -127,12 +150,11 @@ stdenv.mkDerivation
       audio, and features many powerful tools for styling them, including a
       built-in real-time video preview.
     '';
-    homepage = "http://www.aegisub.org/";
-    # The Aegisub sources are itself BSD/ISC,
-    # but they are linked against GPL'd softwares
-    # - so the resulting program will be GPL
+    # The Aegisub sources are itself BSD/ISC, but they are linked against GPL'd
+    # softwares - so the resulting program will be GPL
     license = licenses.bsd3;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
+# TODO [ AndersonTorres ]: update to fork release
diff --git a/nixpkgs/pkgs/applications/video/aegisub/update-ffms2.patch b/nixpkgs/pkgs/applications/video/aegisub/update-ffms2.patch
new file mode 100644
index 000000000000..affa46365cfb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/aegisub/update-ffms2.patch
@@ -0,0 +1,105 @@
+commit 89c4e8d34ab77c3322f097b91fd9de22cbea7a37
+Author: Thomas Goyne <plorkyeran@aegisub.org>
+Date:   Wed Nov 21 16:41:05 2018 -0800
+
+    Update ffmpeg and ffms2
+
+diff --git a/src/video_provider_ffmpegsource.cpp b/src/video_provider_ffmpegsource.cpp
+index 8bd68fbbf..f4ed6a2f2 100644
+--- a/src/video_provider_ffmpegsource.cpp
++++ b/src/video_provider_ffmpegsource.cpp
+@@ -44,6 +44,23 @@
+ #include <libaegisub/make_unique.h>
+ 
+ namespace {
++typedef enum AGI_ColorSpaces {
++	AGI_CS_RGB = 0,
++	AGI_CS_BT709 = 1,
++	AGI_CS_UNSPECIFIED = 2,
++	AGI_CS_FCC = 4,
++	AGI_CS_BT470BG = 5,
++	AGI_CS_SMPTE170M = 6,
++	AGI_CS_SMPTE240M = 7,
++	AGI_CS_YCOCG = 8,
++	AGI_CS_BT2020_NCL = 9,
++	AGI_CS_BT2020_CL = 10,
++	AGI_CS_SMPTE2085 = 11,
++	AGI_CS_CHROMATICITY_DERIVED_NCL = 12,
++	AGI_CS_CHROMATICITY_DERIVED_CL = 13,
++	AGI_CS_ICTCP = 14
++} AGI_ColorSpaces;
++
+ /// @class FFmpegSourceVideoProvider
+ /// @brief Implements video loading through the FFMS library.
+ class FFmpegSourceVideoProvider final : public VideoProvider, FFmpegSourceProvider {
+@@ -78,7 +95,7 @@ public:
+ 		if (matrix == RealColorSpace)
+ 			FFMS_SetInputFormatV(VideoSource, CS, CR, FFMS_GetPixFmt(""), nullptr);
+ 		else if (matrix == "TV.601")
+-			FFMS_SetInputFormatV(VideoSource, FFMS_CS_BT470BG, CR, FFMS_GetPixFmt(""), nullptr);
++			FFMS_SetInputFormatV(VideoSource, AGI_CS_BT470BG, CR, FFMS_GetPixFmt(""), nullptr);
+ 		else
+ 			return;
+ 		ColorSpace = matrix;
+@@ -103,16 +120,16 @@ std::string colormatrix_description(int cs, int cr) {
+ 	std::string str = cr == FFMS_CR_JPEG ? "PC" : "TV";
+ 
+ 	switch (cs) {
+-		case FFMS_CS_RGB:
++		case AGI_CS_RGB:
+ 			return "None";
+-		case FFMS_CS_BT709:
++		case AGI_CS_BT709:
+ 			return str + ".709";
+-		case FFMS_CS_FCC:
++		case AGI_CS_FCC:
+ 			return str + ".FCC";
+-		case FFMS_CS_BT470BG:
+-		case FFMS_CS_SMPTE170M:
++		case AGI_CS_BT470BG:
++		case AGI_CS_SMPTE170M:
+ 			return str + ".601";
+-		case FFMS_CS_SMPTE240M:
++		case AGI_CS_SMPTE240M:
+ 			return str + ".240M";
+ 		default:
+ 			throw VideoOpenError("Unknown video color space");
+@@ -206,8 +223,10 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st
+ 
+ 	// set thread count
+ 	int Threads = OPT_GET("Provider/Video/FFmpegSource/Decoding Threads")->GetInt();
++#if FFMS_VERSION < ((2 << 24) | (30 << 16) | (0 << 8) | 0)
+ 	if (FFMS_GetVersion() < ((2 << 24) | (17 << 16) | (2 << 8) | 1) && FFMS_GetSourceType(Index) == FFMS_SOURCE_LAVF)
+ 		Threads = 1;
++#endif
+ 
+ 	// set seekmode
+ 	// TODO: give this its own option?
+@@ -235,18 +254,22 @@ void FFmpegSourceVideoProvider::LoadVideo(agi::fs::path const& filename, std::st
+ 	else
+ 		DAR = double(Width) / Height;
+ 
+-	CS = TempFrame->ColorSpace;
++	int VideoCS = CS = TempFrame->ColorSpace;
+ 	CR = TempFrame->ColorRange;
+ 
+-	if (CS == FFMS_CS_UNSPECIFIED)
+-		CS = Width > 1024 || Height >= 600 ? FFMS_CS_BT709 : FFMS_CS_BT470BG;
++	if (CS == AGI_CS_UNSPECIFIED)
++		CS = Width > 1024 || Height >= 600 ? AGI_CS_BT709 : AGI_CS_BT470BG;
+ 	RealColorSpace = ColorSpace = colormatrix_description(CS, CR);
+ 
+ #if FFMS_VERSION >= ((2 << 24) | (17 << 16) | (1 << 8) | 0)
+-	if (CS != FFMS_CS_RGB && CS != FFMS_CS_BT470BG && ColorSpace != colormatrix && (colormatrix == "TV.601" || OPT_GET("Video/Force BT.601")->GetBool())) {
+-		if (FFMS_SetInputFormatV(VideoSource, FFMS_CS_BT470BG, CR, FFMS_GetPixFmt(""), &ErrInfo))
++	if (CS != AGI_CS_RGB && CS != AGI_CS_BT470BG && ColorSpace != colormatrix && (colormatrix == "TV.601" || OPT_GET("Video/Force BT.601")->GetBool())) {
++		CS = AGI_CS_BT470BG;
++		ColorSpace = colormatrix_description(AGI_CS_BT470BG, CR);
++	}
++
++	if (CS != VideoCS) {
++		if (FFMS_SetInputFormatV(VideoSource, CS, CR, FFMS_GetPixFmt(""), &ErrInfo))
+ 			throw VideoOpenError(std::string("Failed to set input format: ") + ErrInfo.Buffer);
+-		ColorSpace = colormatrix_description(FFMS_CS_BT470BG, CR);
+ 	}
+ #endif
diff --git a/nixpkgs/pkgs/applications/video/alass/default.nix b/nixpkgs/pkgs/applications/video/alass/default.nix
index c57a224ee0aa..73b017ffeff4 100644
--- a/nixpkgs/pkgs/applications/video/alass/default.nix
+++ b/nixpkgs/pkgs/applications/video/alass/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-q1IV9TtmznpR7RO75iN0p16nmTja5ADWqFj58EOPWvU=";
   };
 
-  cargoSha256 = "sha256-6CVa/ypz37bm/3R0Gi65ovu4SIwWcgVde3Z2W1R16mk=";
+  cargoSha256 = "sha256-6swIoVp1B4CMvaGvq868LTKkzpI6zFKJNgUVqjdyH20=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/video/avidemux/default.nix b/nixpkgs/pkgs/applications/video/avidemux/default.nix
index 9b2073bc799e..fe767759a82b 100644
--- a/nixpkgs/pkgs/applications/video/avidemux/default.nix
+++ b/nixpkgs/pkgs/applications/video/avidemux/default.nix
@@ -2,7 +2,7 @@
 , zlib, gettext, libvdpau, libva, libXv, sqlite
 , yasm, freetype, fontconfig, fribidi
 , makeWrapper, libXext, libGLU, qttools, qtbase, wrapQtAppsHook
-, alsaLib
+, alsa-lib
 , withX265 ? true, x265
 , withX264 ? true, x264
 , withXvid ? true, xvidcore
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional withQT wrapQtAppsHook;
   buildInputs = [
     zlib gettext libvdpau libva libXv sqlite fribidi fontconfig
-    freetype alsaLib libXext libGLU makeWrapper
+    freetype alsa-lib libXext libGLU makeWrapper
   ] ++ lib.optional withX264 x264
     ++ lib.optional withX265 x265
     ++ lib.optional withXvid xvidcore
diff --git a/nixpkgs/pkgs/applications/video/avxsynth/default.nix b/nixpkgs/pkgs/applications/video/avxsynth/default.nix
deleted file mode 100644
index 3fd25bdf73db..000000000000
--- a/nixpkgs/pkgs/applications/video/avxsynth/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
-, cairo, ffmpeg_3, ffms, libjpeg, log4cpp, pango
-, avxeditSupport ? false, qt4 ? null
-}:
-
-let
-  inherit (lib) enableFeature optional;
-in
-
-stdenv.mkDerivation {
-  pname = "avxsynth";
-  version = "2015-04-07";
-
-  src = fetchFromGitHub {
-    owner = "avxsynth";
-    repo = "avxsynth";
-    rev = "80dcb7ec8d314bc158130c92803308aa8e5e9242";
-    sha256 = "0kckggvgv68b0qjdi7ms8vi97b46dl63n60qr96d2w67lf2nk87z";
-  };
-
-  configureFlags = [
-    "--enable-autocrop"
-    "--enable-framecapture"
-    "--enable-subtitle"
-    "--enable-ffms2"
-    (enableFeature avxeditSupport "avxedit")
-    "--with-jpeg=${libjpeg.out}/lib"
-  ];
-
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-
-  buildInputs = [ cairo ffmpeg_3 ffms libjpeg log4cpp pango ]
-    ++ optional avxeditSupport qt4;
-
-  meta = with lib; {
-    description = "A script system that allows advanced non-linear editing";
-    homepage = "https://github.com/avxsynth/avxsynth";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ codyopel ];
-    platforms = platforms.linux;
-    broken = true; # 2018-04-10
-  };
-}
diff --git a/nixpkgs/pkgs/applications/video/bombono/default.nix b/nixpkgs/pkgs/applications/video/bombono/default.nix
index 8d6df2c49045..a6633904c201 100644
--- a/nixpkgs/pkgs/applications/video/bombono/default.nix
+++ b/nixpkgs/pkgs/applications/video/bombono/default.nix
@@ -7,7 +7,8 @@
 , dvdauthor
 , dvdplusrwtools
 , enca
-, ffmpeg_3
+, cdrkit
+, ffmpeg
 , gettext
 , gtk2
 , gtkmm2
@@ -59,7 +60,7 @@ stdenv.mkDerivation rec {
     dvdauthor
     dvdplusrwtools
     enca
-    ffmpeg_3
+    ffmpeg
     gtk2
     gtkmm2
     libdvdread
@@ -71,6 +72,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  postInstall = ''
+    # fix iso authoring
+    install -Dt  $out/share/bombono/resources/scons_authoring tools/scripts/SConsTwin.py
+
+    wrapProgram $out/bin/bombono-dvd --prefix PATH : ${lib.makeBinPath [ ffmpeg dvdauthor cdrkit ]}
+  '';
+
   meta = with lib; {
     description = "a DVD authoring program for personal computers";
     homepage = "https://www.bombono.org/";
diff --git a/nixpkgs/pkgs/applications/video/byzanz/default.nix b/nixpkgs/pkgs/applications/video/byzanz/default.nix
index 80e1c1260bd4..a9eee05d238f 100644
--- a/nixpkgs/pkgs/applications/video/byzanz/default.nix
+++ b/nixpkgs/pkgs/applications/video/byzanz/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, wrapGAppsHook, which, gnome3, glib, intltool, pkg-config, libtool, cairo, gtk3, gst_all_1, xorg }:
+{ lib, stdenv, fetchgit, wrapGAppsHook, which, gnome, glib, intltool, pkg-config, libtool, cairo, gtk3, gst_all_1, xorg }:
 
 stdenv.mkDerivation {
   version = "0.2.3.alpha";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ which gnome3.gnome-common glib intltool libtool cairo gtk3 xorg.xwininfo xorg.libXdamage ]
+  buildInputs = [ which gnome.gnome-common glib intltool libtool cairo gtk3 xorg.xwininfo xorg.libXdamage ]
   ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-bad gst-plugins-good gst-plugins-ugly gst-libav wrapGAppsHook ]);
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/video/celluloid/default.nix b/nixpkgs/pkgs/applications/video/celluloid/default.nix
index 57eaf91f2aea..f6bc0561b0c6 100644
--- a/nixpkgs/pkgs/applications/video/celluloid/default.nix
+++ b/nixpkgs/pkgs/applications/video/celluloid/default.nix
@@ -1,42 +1,42 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, nix-update-script
-, meson
-, ninja
-, python3
-, gettext
-, pkg-config
-, desktop-file-utils
-, wrapGAppsHook
 , appstream-glib
+, desktop-file-utils
 , epoxy
+, gettext
 , glib
 , gtk3
+, meson
 , mpv
+, ninja
+, nix-update-script
+, pkg-config
+, python3
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "celluloid";
-  version = "0.20";
+  version = "0.21";
 
   src = fetchFromGitHub {
     owner = "celluloid-player";
     repo = "celluloid";
     rev = "v${version}";
-    hash = "sha256-fEZnH8EqU6CykgKINXnKChuBUlisroa97B1vjcx2cWA=";
+    hash = "sha256-1Jeg1uqWxURGKR/Xg4j4roZ9Pg5MR7geyttdzlOU+rA=";
   };
 
   nativeBuildInputs = [
-    meson
-    ninja
-    python3
     appstream-glib
+    desktop-file-utils
     gettext
+    meson
+    ninja
     pkg-config
-    desktop-file-utils
+    python3
     wrapGAppsHook
   ];
-
   buildInputs = [
     epoxy
     glib
@@ -50,22 +50,20 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
-  };
-
   meta = with lib; {
+    homepage = "https://github.com/celluloid-player/celluloid";
     description = "Simple GTK frontend for the mpv video player";
     longDescription = ''
-      GNOME MPV interacts with mpv via the client API exported by libmpv,
-      allowing access to mpv's powerful playback capabilities through an
-      easy-to-use user interface.
+      Celluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv.
+      Celluloid interacts with mpv via the client API exported by libmpv,
+      allowing access to mpv's powerful playback capabilities.
     '';
-    homepage = "https://github.com/celluloid-player/celluloid";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
   };
+
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
 }
diff --git a/nixpkgs/pkgs/applications/video/cinelerra/default.nix b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
index c81811ea9379..75d3cdbcc667 100644
--- a/nixpkgs/pkgs/applications/video/cinelerra/default.nix
+++ b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, autoconf, automake, libtool
-, pkg-config, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
+, pkg-config, faad2, faac, a52dec, alsa-lib, fftw, lame, libavc1394
 , libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
 , libtiff, freetype, mjpegtools, x264, gettext, openexr
 , libXext, libXxf86vm, libXv, libXi, libX11, libXft, xorgproto, libtheora, libpng
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ automake autoconf libtool pkg-config file intltool ];
   buildInputs =
     [ faad2 faac
-      a52dec alsaLib   fftw lame libavc1394 libiec61883
+      a52dec alsa-lib   fftw lame libavc1394 libiec61883
       libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
       mjpegtools x264 gettext openexr
       libXext libXxf86vm libXv libXi libX11 libXft xorgproto
diff --git a/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix b/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix
index e4e72704fb0b..09b24663080b 100644
--- a/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix
+++ b/nixpkgs/pkgs/applications/video/clickshare-csc1/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchurl
-, alsaLib
+, alsa-lib
 , autoPatchelfHook
 , binutils-unwrapped
 , gnutar
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     unzip
   ];
   buildInputs = [
-    alsaLib
+    alsa-lib
     libav_0_8
     libnotify
     libresample
diff --git a/nixpkgs/pkgs/applications/video/clipgrab/default.nix b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
index b24ff43ac671..5d331d1b4a69 100644
--- a/nixpkgs/pkgs/applications/video/clipgrab/default.nix
+++ b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, makeDesktopItem, ffmpeg_3
+{ lib, fetchurl, makeDesktopItem, ffmpeg
 , qmake, qttools, mkDerivation
 , qtbase, qtdeclarative, qtlocation, qtquickcontrols2, qtwebchannel, qtwebengine
 }:
@@ -13,19 +13,17 @@ mkDerivation rec {
     url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
   };
 
-  buildInputs = [ ffmpeg_3 qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
+  buildInputs = [ ffmpeg qtbase qtdeclarative qtlocation qtquickcontrols2 qtwebchannel qtwebengine ];
   nativeBuildInputs = [ qmake qttools ];
 
-  postPatch = lib.optionalString (ffmpeg_3 != null) ''
+  postPatch = lib.optionalString (ffmpeg != null) ''
   substituteInPlace converter_ffmpeg.cpp \
-    --replace '"ffmpeg"' '"${ffmpeg_3.bin}/bin/ffmpeg"' \
-    --replace '"ffmpeg ' '"${ffmpeg_3.bin}/bin/ffmpeg '
+    --replace '"ffmpeg"' '"${ffmpeg.bin}/bin/ffmpeg"' \
+    --replace '"ffmpeg ' '"${ffmpeg.bin}/bin/ffmpeg '
   '';
 
   qmakeFlags = [ "clipgrab.pro" ];
 
-  enableParallelBuilding = true;
-
   desktopItem = makeDesktopItem rec {
     name = "clipgrab";
     exec = name;
@@ -37,9 +35,11 @@ mkDerivation rec {
   };
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 clipgrab $out/bin/clipgrab
     install -Dm644 icon.png $out/share/pixmaps/clipgrab.png
     cp -r ${desktopItem}/share/applications $out/share
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/video/devede/default.nix b/nixpkgs/pkgs/applications/video/devede/default.nix
index 6a4d0dc1b8df..e8fa11c9147c 100644
--- a/nixpkgs/pkgs/applications/video/devede/default.nix
+++ b/nixpkgs/pkgs/applications/video/devede/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitLab, python3Packages, ffmpeg_3, mplayer, vcdimager, cdrkit, dvdauthor
+{ lib, fetchFromGitLab, python3Packages, ffmpeg, mplayer, vcdimager, cdrkit, dvdauthor
 , gtk3, gettext, wrapGAppsHook, gdk-pixbuf, gobject-introspection }:
 
 let
@@ -30,11 +30,11 @@ in buildPythonApplication rec {
   ];
 
   buildInputs = [
-    ffmpeg_3
+    ffmpeg
   ];
 
   propagatedBuildInputs = [
-    gtk3 pygobject3 gdk-pixbuf dbus-python ffmpeg_3 mplayer dvdauthor vcdimager cdrkit urllib3 setuptools
+    gtk3 pygobject3 gdk-pixbuf dbus-python ffmpeg mplayer dvdauthor vcdimager cdrkit urllib3 setuptools
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/video/droidcam/default.nix b/nixpkgs/pkgs/applications/video/droidcam/default.nix
index eed4c030cfab..38d3d6304c68 100644
--- a/nixpkgs/pkgs/applications/video/droidcam/default.nix
+++ b/nixpkgs/pkgs/applications/video/droidcam/default.nix
@@ -1,17 +1,17 @@
 { lib, stdenv, fetchFromGitHub
-, ffmpeg, libjpeg_turbo, gtk3, alsaLib, speex, libusbmuxd, libappindicator-gtk3
+, ffmpeg, libjpeg_turbo, gtk3, alsa-lib, speex, libusbmuxd, libappindicator-gtk3
 , pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "droidcam";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "aramg";
     repo = "droidcam";
     rev = "v${version}";
-    sha256 = "sha256-Ny/PJu+ifs9hQRDUv1pONBb6fKJzoiNtjPOFc4veU8c=";
+    sha256 = "sha256-Ok8FJweSzmewjYzfBJQ28xGHKK/Y32ng1hOCPVwc8eU=";
   };
 
   nativeBuildInputs = [
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     ffmpeg
     libjpeg_turbo
     gtk3
-    alsaLib
+    alsa-lib
     speex
     libusbmuxd
     libappindicator-gtk3
diff --git a/nixpkgs/pkgs/applications/video/dvdstyler/default.nix b/nixpkgs/pkgs/applications/video/dvdstyler/default.nix
index 6366a222722f..81f3cac73e19 100644
--- a/nixpkgs/pkgs/applications/video/dvdstyler/default.nix
+++ b/nixpkgs/pkgs/applications/video/dvdstyler/default.nix
@@ -1,84 +1,115 @@
-{ lib, stdenv, fetchurl, pkg-config
-, flex, bison, gettext
-, xineUI, wxSVG
+{ lib
+, stdenv
+, fetchurl
+, bison
+, cdrtools
+, docbook5
+, dvdauthor
+, dvdplusrwtools
+, ffmpeg
+, flex
 , fontconfig
-, xmlto, docbook5, zip
-, cdrtools, dvdauthor, dvdplusrwtools
+, gettext
+, libexif
+, makeWrapper
+, pkg-config
+, wxGTK30
+, wxSVG
+, xine-ui
+, xmlto
+, zip
+
 , dvdisasterSupport ? true, dvdisaster ? null
 , thumbnailSupport ? true, libgnomeui ? null
 , udevSupport ? true, udev ? null
 , dbusSupport ? true, dbus ? null
-, makeWrapper }:
-
-with lib;
-stdenv.mkDerivation rec {
+}:
 
+let
+  inherit (lib) optionals makeBinPath;
+in stdenv.mkDerivation rec {
   pname = "dvdstyler";
-  srcName = "DVDStyler-${version}";
   version = "3.1.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/${srcName}.tar.bz2";
+    url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/DVDStyler-${version}.tar.bz2";
     sha256 = "03lsblqficcadlzkbyk8agh5rqcfz6y6dqvy9y866wqng3163zq4";
   };
 
-  nativeBuildInputs =
-  [ pkg-config ];
-
-  packagesToBinPath =
-  [ cdrtools dvdauthor dvdplusrwtools ];
-
-  buildInputs =
-  [ flex bison gettext xineUI
-    wxSVG fontconfig xmlto
-    docbook5 zip makeWrapper ]
-  ++ packagesToBinPath
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    bison
+    cdrtools
+    docbook5
+    dvdauthor
+    dvdplusrwtools
+    ffmpeg
+    flex
+    fontconfig
+    gettext
+    libexif
+    makeWrapper
+    wxSVG
+    wxGTK30
+    xine-ui
+    xmlto
+    zip
+ ]
   ++ optionals dvdisasterSupport [ dvdisaster ]
   ++ optionals udevSupport [ udev ]
   ++ optionals dbusSupport [ dbus ]
   ++ optionals thumbnailSupport [ libgnomeui ];
 
-  binPath = makeBinPath packagesToBinPath;
 
-  postInstall = ''
-    wrapProgram $out/bin/dvdstyler \
-      --prefix PATH ":" "${binPath}"
-  '';
+  postInstall = let
+    binPath = makeBinPath [
+      cdrtools
+      dvdauthor
+      dvdplusrwtools
+    ]; in
+    ''
+       wrapProgram $out/bin/dvdstyler --prefix PATH ":" "${binPath}"
+    '';
+
+  enableParallelBuilding = true;
 
   meta = with lib; {
+    homepage = "https://www.dvdstyler.org/";
     description = "A DVD authoring software";
     longDescription = ''
-    DVDStyler is a cross-platform free DVD authoring application for the
-    creation of professional-looking DVDs. It allows not only burning of video
-    files on DVD that can be played practically on any standalone DVD player,
-    but also creation of individually designed DVD menus. It is Open Source
-    Software and is completely free.
+      DVDStyler is a cross-platform free DVD authoring application for the
+      creation of professional-looking DVDs. It allows not only burning of video
+      files on DVD that can be played practically on any standalone DVD player,
+      but also creation of individually designed DVD menus. It is Open Source
+      Software and is completely free.
+
+      Some of its features include:
 
-    Some of its features include:
-    -  create and burn DVD video with interactive menus
-    - design your own DVD menu or select one from the list of ready to use menu
-      templates
-    - create photo slideshow
-    - add multiple subtitle and audio tracks
-    - support of AVI, MOV, MP4, MPEG, OGG, WMV and other file formats
-    - support of MPEG-2, MPEG-4, DivX, Xvid, MP2, MP3, AC-3 and other audio and
-      video formats
-    - support of multi-core processor
-    - use MPEG and VOB files without reencoding
-    - put files with different audio/video format on one DVD (support of
-      titleset)
-    - user-friendly interface with support of drag & drop
-    - flexible menu creation on the basis of scalable vector graphic
-    - import of image file for background
-    - place buttons, text, images and other graphic objects anywhere on the menu
-      screen
-    - change the font/color and other parameters of buttons and graphic objects
-    - scale any button or graphic object
-    - copy any menu object or whole menu
-    - customize navigation using DVD scripting
+      - create and burn DVD video with interactive menus
+      - design your own DVD menu or select one from the list of ready to use menu
+        templates
+      - create photo slideshow
+      - add multiple subtitle and audio tracks
+      - support of AVI, MOV, MP4, MPEG, OGG, WMV and other file formats
+      - support of MPEG-2, MPEG-4, DivX, Xvid, MP2, MP3, AC-3 and other audio and
+        video formats
+      - support of multi-core processor
+      - use MPEG and VOB files without reencoding
+      - put files with different audio/video format on one DVD (support of
+        titleset)
+      - user-friendly interface with support of drag & drop
+      - flexible menu creation on the basis of scalable vector graphic
+      - import of image file for background
+      - place buttons, text, images and other graphic objects anywhere on the menu
+        screen
+      - change the font/color and other parameters of buttons and graphic objects
+      - scale any button or graphic object
+      - copy any menu object or whole menu
+      - customize navigation using DVD scripting
     '';
-    homepage = "http://www.dvdstyler.org/";
-    license = with licenses; gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; linux;
   };
diff --git a/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix b/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix
index 411ab9e6bc28..de0b088030f1 100644
--- a/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/nixpkgs/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -1,20 +1,20 @@
 { lib
 , buildPythonApplication
 , fetchPypi
-, ffmpeg_3
-, tqdm
+, ffmpeg
+, ffmpeg-progress-yield
 }:
 
 buildPythonApplication rec {
   pname = "ffmpeg-normalize";
-  version = "1.19.0";
+  version = "1.22.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18dpck9grnr3wgbjvdh4mjlx0zfwcxpy4rnpmc39in0yk3w7li2x";
+    sha256 = "df826053212d540ab1bbe9819587fcbf36162f8c2535ae85b88b252e47d6d632";
   };
 
-  propagatedBuildInputs = [ ffmpeg_3 tqdm ];
+  propagatedBuildInputs = [ ffmpeg ffmpeg-progress-yield ];
 
   checkPhase = ''
     $out/bin/ffmpeg-normalize --help > /dev/null
diff --git a/nixpkgs/pkgs/applications/video/filebot/default.nix b/nixpkgs/pkgs/applications/video/filebot/default.nix
index a9d56cc91085..92c15fea9a35 100644
--- a/nixpkgs/pkgs/applications/video/filebot/default.nix
+++ b/nixpkgs/pkgs/applications/video/filebot/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   version = "4.9.3";
 
   src = fetchurl {
-    url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
-    sha256 = "sha256-xgdCjo2RLp+EtUTfSiys7PURhnC00R9IOLPtz3427pA=";
+    url = "https://web.archive.org/web/20210326102451/https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
+    sha256 = "sha256-T+y8k757/qFCVOCc/SNc7a+KmyscPlowubNQYzMr8jY=";
   };
 
   unpackPhase = "tar xvf $src";
diff --git a/nixpkgs/pkgs/applications/video/freetube/default.nix b/nixpkgs/pkgs/applications/video/freetube/default.nix
index a5de2142d777..0dbc328459bc 100644
--- a/nixpkgs/pkgs/applications/video/freetube/default.nix
+++ b/nixpkgs/pkgs/applications/video/freetube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "freetube";
-  version = "0.12.0";
+  version = "0.13.1";
 
   src = fetchurl {
     url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${version}-beta/freetube_${version}_amd64.AppImage";
-    sha256 = "151fcm1swsasrwzm93fddx669q4xlfl3d58q1w58nyv7r6kh4fda";
+    sha256 = "sha256-DN78ASe29h7o6emCtN861arGqWKAWjjWKtsHs8jjROI=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/video/gnomecast/default.nix b/nixpkgs/pkgs/applications/video/gnomecast/default.nix
index 65865c31dfc8..335b8c191722 100644
--- a/nixpkgs/pkgs/applications/video/gnomecast/default.nix
+++ b/nixpkgs/pkgs/applications/video/gnomecast/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, python3Packages, gtk3, gobject-introspection, ffmpeg_3, wrapGAppsHook }:
+{ stdenv, lib, python3Packages, gtk3, gobject-introspection, ffmpeg, wrapGAppsHook }:
 
 with python3Packages;
 buildPythonApplication rec {
@@ -21,7 +21,7 @@ buildPythonApplication rec {
   strictDeps = false;
 
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg_3 ]})
+    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg ]})
   '';
 
   # no tests
diff --git a/nixpkgs/pkgs/applications/video/handbrake/default.nix b/nixpkgs/pkgs/applications/video/handbrake/default.nix
index e14d902681df..5007f7419aeb 100644
--- a/nixpkgs/pkgs/applications/video/handbrake/default.nix
+++ b/nixpkgs/pkgs/applications/video/handbrake/default.nix
@@ -7,7 +7,7 @@
 # be nice to add the native GUI (and/or the GTK GUI) as an option too, but that
 # requires invoking the Xcode build system, which is non-trivial for now.
 
-{ stdenv, lib, fetchFromGitHub,
+{ stdenv, lib, fetchFromGitHub, fetchpatch,
   # Main build tools
   pkg-config, autoconf, automake, libtool, m4, xz, python3,
   numactl,
@@ -58,6 +58,15 @@ stdenv.mkDerivation rec {
     '';
   };
 
+  # Remove with a release after 1.3.3
+  patches = [
+    (fetchpatch {
+      name = "audio-fix-ffmpeg-4_4";
+      url = "https://github.com/HandBrake/HandBrake/commit/f28289fb06ab461ea082b4be56d6d1504c0c31c2.patch";
+      sha256 = "sha256:1zcwa4h97d8wjspb8kbd8b1jg0a9vvmv9zaphzry4m9q0bj3h3kz";
+    })
+  ];
+
   # we put as little as possible in src.extraPostFetch as it's much easier to
   # add to it here without having to fiddle with src.sha256
   # only DATE and HASH are absolutely necessary
@@ -112,8 +121,6 @@ _EOF
   # look at ./make/configure.py search "enable_nvenc"
   ++ lib.optional stdenv.isLinux nv-codec-headers;
 
-  enableParallelBuilding = true;
-
   configureFlags = [
     "--disable-df-fetch"
     "--disable-df-verify"
diff --git a/nixpkgs/pkgs/applications/video/haruna/default.nix b/nixpkgs/pkgs/applications/video/haruna/default.nix
index 36c1c411591e..3e45dd62d683 100644
--- a/nixpkgs/pkgs/applications/video/haruna/default.nix
+++ b/nixpkgs/pkgs/applications/video/haruna/default.nix
@@ -26,13 +26,13 @@
 
 mkDerivation rec {
   pname = "haruna";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "g-fb";
     repo = "haruna";
     rev = version;
-    sha256 = "sha256-YsC0ZdLwHCO9izDIk2dTMr0U/nb60MHSxKURV8Xltss=";
+    sha256 = "sha256-gJCLc8qJolv4Yufm/OBCTTEpyoodtySAqKH+zMHCoLU=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix b/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix
index b44da238d1e1..62726dff4112 100644
--- a/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix
+++ b/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, libhdhomerun, gcc, gnumake, pkg-config, gtk2 }:
+{ lib, stdenv, fetchurl, libhdhomerun, pkg-config, gtk2 }:
 
 stdenv.mkDerivation rec {
   pname = "hdhomerun-config-gui";
-  version = "20200907";
+  version = "20210224";
 
   src = fetchurl {
     url = "https://download.silicondust.com/hdhomerun/hdhomerun_config_gui_${version}.tgz";
-    sha256 = "17zf0hzw68b0xdkh1maqhl96jb7171mbhd29y64as29nps9x4fmz";
+    sha256 = "sha256-vzrSk742Ca2I8Uk0uGo44SxpEoVY1QBn62Ahwz8E7p8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix b/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
index 829cc4835eac..f7abc95cb0c9 100644
--- a/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
+++ b/nixpkgs/pkgs/applications/video/jellyfin-media-player/default.nix
@@ -26,18 +26,18 @@
 
 mkDerivation rec {
   pname = "jellyfin-media-player";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin-media-player";
     rev = "v${version}";
-    sha256 = "sha256-A3vo6678XFUV2RN1lcGYbIjCbBjR1oeORcidKZVnImg=";
+    sha256 = "sha256-u19WJupSqIzA8W0QG9mue8Ticy+HxBAniuKIUFl7ONs=";
   };
 
   jmpDist = fetchzip {
-    url = "https://github.com/iwalton3/jellyfin-web-jmp/releases/download/jwc-10.7.2-3/dist.zip";
-    sha256 = "sha256-Rb0q3NFmnYkueq0JkIWkX0C/oL+gFrNOELCNfh9X/P4=";
+    url = "https://github.com/iwalton3/jellyfin-web-jmp/releases/download/jwc-10.7.3/dist.zip";
+    sha256 = "sha256-P7WEYbVvpaVLwMgqC2e8QtMOaJclg0bX78J1fdGzcCU=";
   };
 
   patches = [
@@ -106,5 +106,6 @@ mkDerivation rec {
     license = with licenses; [ gpl2Only mit ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ jojosch ];
+    mainProgram = "jellyfinmediaplayer";
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/jftui/default.nix b/nixpkgs/pkgs/applications/video/jftui/default.nix
index b050e2636ccb..baffc789488b 100644
--- a/nixpkgs/pkgs/applications/video/jftui/default.nix
+++ b/nixpkgs/pkgs/applications/video/jftui/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jftui";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "Aanok";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0riwqfh5lyjg7as75kyx7jw6zq4gikbglhv8s05y7pzgsc9xy75j";
+    sha256 = "sha256-/QVSywS0O+HZpwY9W3le3RK3OhCkmdLYMCGTyyBdsFw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/kino/default.nix b/nixpkgs/pkgs/applications/video/kino/default.nix
deleted file mode 100644
index 5f12dd6494b2..000000000000
--- a/nixpkgs/pkgs/applications/video/kino/default.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-# is this configure option of interest?
-#--enable-udev-rules-dir=PATH
-#                        Where to install udev rules (/etc/udev/rules.d)
-
-#TODO shared version?
-
-
-# This is my config output.. Much TODO ?
-#source path               /tmp/nix-31998-1/kino-1.2.0/ffmpeg
-#C compiler                gcc
-#make                      make
-#.align is power-of-two    no
-#ARCH                      x86_64 (generic)
-#build suffix              -kino
-#big-endian                no
-#MMX enabled               yes
-#CMOV enabled              no
-#CMOV is fast              no
-#gprof enabled             no
-#debug symbols             yes
-#strip symbols             yes
-#optimize                  yes
-#static                    yes
-#shared                    no
-#postprocessing support    no
-#software scaler enabled   yes
-#video hooking             no
-#network support           no
-#threading support         no
-#SDL support               no
-#Sun medialib support      no
-#AVISynth enabled          no
-#liba52 support            no
-#liba52 dlopened           no
-#libdts support            no
-#libfaac enabled           no
-#libfaad enabled           no
-#faadbin enabled           no
-#libgsm enabled            no
-#libmp3lame enabled        no
-#libnut enabled            no
-#libogg enabled            no
-#libtheora enabled         no
-#libvorbis enabled         no
-#x264 enabled              no
-#XviD enabled              no
-#zlib enabled              no
-#AMR-NB float support      no
-#AMR-NB fixed support      no
-#AMR-WB float support      no
-#AMR-WB IF2 support        no
-
-{ lib, stdenv, fetchurl, gtk2, libglade, libxml2, libraw1394, libsamplerate, libdv
-, pkg-config, perlPackages, libavc1394, libiec61883, libXv, gettext
-, libX11, glib, cairo, intltool, ffmpeg, libv4l
-}:
-
-stdenv.mkDerivation {
-  name = "kino-1.3.4";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/kino/kino-1.3.4.tar.gz";
-    sha256 = "020s05k0ma83rq2kfs8x474pqicaqp9spar81qc816ddfrnh8k8i";
-  };
-
-  buildInputs = [ gtk2 libglade libxml2 libraw1394 libsamplerate libdv
-      pkg-config libavc1394 libiec61883 intltool libXv gettext libX11 glib cairo ffmpeg libv4l ] # TODOoptional packages
-    ++ (with perlPackages; [ perl XMLParser ]);
-
-  configureFlags = [ "--enable-local-ffmpeg=no" ];
-
-  hardeningDisable = [ "format" ];
-
-  NIX_LDFLAGS = "-lavcodec -lavutil";
-
-  patches = [ ./kino-1.3.4-v4l1.patch ./kino-1.3.4-libav-0.7.patch ./kino-1.3.4-libav-0.8.patch ]; #./kino-1.3.4-libavcodec-pkg-config.patch ];
-
-  postInstall = "
-    rpath=`patchelf --print-rpath \$out/bin/kino`;
-    for i in $buildInputs; do
-      echo adding \$i/lib
-      rpath=\$rpath\${rpath:+:}\$i/lib
-    done
-    for i in \$out/bin/*; do
-      patchelf --set-rpath \"\$rpath\" \"\$i\"
-    done
-  ";
-
-  meta = {
-      description = "Non-linear DV editor for GNU/Linux";
-      homepage = "http://www.kinodv.org/";
-      license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch
deleted file mode 100644
index 65c5bc38276d..000000000000
--- a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- kino-1.3.4.orig/src/frame.cc	2011-07-17 14:54:59.089481638 +0200
-+++ kino-1.3.4/src/frame.cc	2011-07-17 15:09:23.199481714 +0200
-@@ -1063,7 +1063,12 @@
- 	AVPicture dest;
- 	int got_picture;
- 
--	avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
-+	AVPacket pkt;
-+	av_init_packet(&pkt);
-+	pkt.data = data;
-+	pkt.size = GetFrameSize();
-+
-+	avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
- 	if ( got_picture )
- 	{
- 		avpicture_fill( &dest, static_cast<uint8_t*>( rgb ), PIX_FMT_RGB24, GetWidth(), GetHeight() );
-@@ -1123,7 +1128,12 @@
- 	AVPicture output;
- 	int got_picture;
- 
--	avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
-+	AVPacket pkt;
-+	av_init_packet(&pkt);
-+	pkt.data = data;
-+	pkt.size = GetFrameSize();
-+
-+	avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
- 	if ( got_picture )
- 	{
- 		avpicture_fill( &output, static_cast<uint8_t*>( yuv ), PIX_FMT_YUV422, GetWidth(), GetHeight() );
-@@ -1156,7 +1166,12 @@
- 	AVFrame *frame = avcodec_alloc_frame();
- 	int got_picture;
- 
--	avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
-+        AVPacket pkt;
-+        av_init_packet(&pkt);
-+        pkt.data = data;
-+        pkt.size = GetFrameSize();
-+
-+        avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
- 
- 	int width = GetWidth(), height = GetHeight();
- 
-@@ -1319,12 +1334,12 @@
- #if defined(HAVE_LIBAVCODEC)
- 	if ( avformatEncoder == NULL )
- 	{
--		avformatEncoder = av_alloc_format_context();
-+		avformatEncoder = avformat_alloc_context();
- 		if ( avformatEncoder )
- 		{
--			avformatEncoder->oformat = guess_format( "dv", NULL, NULL );
-+			avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL );
- 			AVStream* vst = av_new_stream( avformatEncoder, 0 );
--			vst->codec->codec_type = CODEC_TYPE_VIDEO;
-+			vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
- 			vst->codec->codec_id = CODEC_ID_DVVIDEO;
- 			vst->codec->bit_rate = 25000000;
-			vst->start_time = 0;
diff --git a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch
deleted file mode 100644
index f98cbda0bc49..000000000000
--- a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch
+++ /dev/null
@@ -1,57 +0,0 @@
---- kino-1.3.4.orig/src/frame.cc	2012-05-14 19:55:42.153772418 -0700
-+++ kino-1.3.4/src/frame.cc	2012-05-14 20:28:34.448838653 -0700
-@@ -101,8 +101,9 @@
- #if defined(HAVE_LIBAVCODEC)
- 	pthread_mutex_lock( &avcodec_mutex );
- 	av_register_all();
--	libavcodec = avcodec_alloc_context();
--	avcodec_open( libavcodec, avcodec_find_decoder( CODEC_ID_DVVIDEO ) );
-+	libavcodec = avcodec_alloc_context3(NULL);
-+	avcodec_open2( libavcodec,
-+                       avcodec_find_decoder( CODEC_ID_DVVIDEO ), NULL );
- 	pthread_mutex_unlock( &avcodec_mutex );
- 	data = ( unsigned char* ) av_mallocz( 144000 );
- #if defined(HAVE_SWSCALE)
-@@ -1338,7 +1339,7 @@
- 		if ( avformatEncoder )
- 		{
- 			avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL );
--			AVStream* vst = av_new_stream( avformatEncoder, 0 );
-+			AVStream* vst = avformat_new_stream( avformatEncoder, NULL );
- 			vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
- 			vst->codec->codec_id = CODEC_ID_DVVIDEO;
- 			vst->codec->bit_rate = 25000000;
-@@ -1364,12 +1365,10 @@
- 			vst->sample_aspect_ratio = avcodecEncoder->sample_aspect_ratio;
- #endif
- 			avcodecEncoder->thread_count = 2;
--			avcodec_thread_init( avcodecEncoder, avcodecEncoder->thread_count );
- 			avcodecEncoder->time_base= isPAL ? ( AVRational ){ 1, 25 } : ( AVRational ){ 1001, 30000 };
- 			avcodecEncoder->pix_fmt = isPAL ? PIX_FMT_YUV420P : PIX_FMT_YUV411P;
- 			avcodecEncoder->flags |= CODEC_FLAG_INTERLACED_DCT;
--			av_set_parameters( avformatEncoder, NULL );
--			avcodec_open( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ) );
-+			avcodec_open2( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ), NULL );
- 			av_new_packet( &avpacketEncoder, 144000 );
- 			tempImage = ( uint8_t* ) av_malloc(
- 				avpicture_get_size( avcodecEncoder->pix_fmt, avcodecEncoder->width, avcodecEncoder->height ) );
-@@ -1475,16 +1474,16 @@
- 
- 			// Encode
- 			bytesInFrame = avcodec_encode_video( avcodecEncoder, avpacketEncoder.data, size, output );
--			url_open_buf( &avformatEncoder->pb, data, bytesInFrame, URL_WRONLY );
-+                        avformatEncoder->pb = avio_alloc_context(data, bytesInFrame, 0, NULL, NULL, NULL, NULL);
- 			avpacketEncoder.size = bytesInFrame;
- 			if ( !isEncoderHeaderWritten )
- 			{
--				av_write_header( avformatEncoder );
-+				avformat_write_header( avformatEncoder, NULL );
- 				isEncoderHeaderWritten = true;
- 			}
- 			av_write_frame( avformatEncoder, &avpacketEncoder );
- #if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(0<<8)+0)
--			url_close_buf( avformatEncoder->pb );
-+			avio_close( avformatEncoder->pb );
- #else
- 			url_close_buf( &avformatEncoder->pb );
- #endif
diff --git a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch
deleted file mode 100644
index d6a8953cf00a..000000000000
--- a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/kino-1.3.4/configure.in	2009-09-08 02:35:23.000000000 -0400
-+++ b/kino-1.3.4/configure.in	2014-01-27 14:53:01.366063037 -0500
-@@ -221,7 +221,7 @@
- 		if (test "x$avcodec_include" != x) || (test "x$avcodec_lib" != x) ; then
- 			local_legacy_ffmpeg_test
- 		else
--			PKG_CHECK_MODULES(AVCODEC, libavformat,
-+			PKG_CHECK_MODULES(AVCODEC, [libavcodec libavformat libavutil],
- 			[
- 				AC_DEFINE(HAVE_LIBAVCODEC, 1, [Enable FFMPEG libavcodec])
- 				AC_SUBST(AVCODEC_LIBS)
diff --git a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch
deleted file mode 100644
index 05ec7386709e..000000000000
--- a/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-no-1.3.3.orig/ffmpeg/libavdevice/v4l.c	2011-05-17 02:20:37.161004916 +0400
-+++ kino-1.3.3.orig/ffmpeg/libavdevice/v4l.c	2011-05-17 02:21:57.302377529 +0400
-@@ -26,7 +26,7 @@ 
- #include <sys/mman.h>
- #include <sys/time.h>
- #define _LINUX_TIME_H 1
--#include <linux/videodev.h>
-+#include <libv4l1-videodev.h>
- #include <time.h>
- 
- typedef struct {
---- kino-1.3.3.orig/src/v4l.h	2011-05-17 02:20:38.896969666 +0400
-+++ kino-1.3.3.orig/src/v4l.h	2011-05-17 02:21:39.922730395 +0400
-@@ -40,7 +40,7 @@ 
- 
- #define _DEVICE_H_
- #define _LINUX_TIME_H
--#include <linux/videodev.h>
-+#include <libv4l1-videodev.h>
- 
- #include "displayer.h"
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
index b2a9fc33255f..3ec8b19aed7e 100644
--- a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
@@ -2,13 +2,13 @@
 buildKodiBinaryAddon rec {
   pname = "inputstream-adaptive";
   namespace = "inputstream.adaptive";
-  version = "2.6.13";
+  version = "2.6.16";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.adaptive";
     rev = "${version}-${rel}";
-    sha256 = "1xvinmwyx7mai84i8c394dqw86zb6ib9wnxjmv7zpky6x64lvv10";
+    sha256 = "0c9cy284crmki2pmg9gvf443hrg13x1cr4vzd4yjsnpk6xpifad6";
   };
 
   extraNativeBuildInputs = [ gtest ];
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
index f6ab6d2e95a9..1e91c2679855 100644
--- a/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
@@ -3,13 +3,13 @@
 buildKodiBinaryAddon rec {
   pname = "inputstream-ffmpegdirect";
   namespace = "inputstream.ffmpegdirect";
-  version = "1.21.1";
+  version = "1.21.3";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.ffmpegdirect";
     rev = "${version}-${rel}";
-    sha256 = "1x5gj7iq74ysyfrzvp135m0pjz47zamcgw1v1334xd7xcx5q178p";
+    sha256 = "sha256-OShd6sPGXXu0rlSwuQFMWqrLscE6Y0I2eV2YJYyZNMs=";
   };
 
   extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix
index e258270dad63..1aac5f8e9b27 100644
--- a/nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/netflix/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "netflix";
   namespace = "plugin.video.netflix";
-  version = "1.15.0";
+  version = "1.15.1";
 
   src = fetchFromGitHub {
     owner = "CastagnaIT";
     repo = namespace;
     rev = "v${version}";
-    sha256 = "1jibzzm8viqpanby6lqxpb95gw5hw3lfsw4jasjskiinbf8n469k";
+    sha256 = "0c5cdi6s76vg2gyxzf0ylisxai1ii8vi6h4q4mznpfmplfdp667v";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
index c83fd66a4333..7bbb62029bba 100644
--- a/nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
@@ -15,7 +15,7 @@ buildKodiAddon rec {
     homepage = "https://github.com/osmc/skin.osmc";
     description = "The default skin for OSMC";
     platforms = platforms.all;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     license = licenses.cc-by-nc-sa-30;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
index 74c5973da540..b6feec8ab039 100644
--- a/nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
@@ -6,13 +6,13 @@
 buildKodiBinaryAddon rec {
   pname = "pvr-iptvsimple";
   namespace = "pvr.iptvsimple";
-  version = "7.6.1";
+  version = "7.6.5";
 
   src = fetchFromGitHub {
     owner = "kodi-pvr";
     repo = "pvr.iptvsimple";
     rev = "${version}-${rel}";
-    sha256 = "1g1ildl2l6nl63qbfhijcbmvr6z84nqhjsy2lgx3dy25cmcqzir9";
+    sha256 = "sha256-Z4H+5dUYJ3vAgodPxWmttVhPVdPVYTJbmYxo1lzLHNA=";
   };
 
   extraBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix b/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
index 3e6b3dc51dc0..c31eb244c52c 100644
--- a/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/unwrapped.nix
@@ -6,7 +6,7 @@
 , openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
 , gtest, ncurses, spdlog
 , libxml2, systemd
-, alsaLib, libGLU, libGL, fontconfig, freetype, ftgl
+, alsa-lib, libGLU, libGL, fontconfig, freetype, ftgl
 , libjpeg, libpng, libtiff
 , libmpeg2, libsamplerate, libmad
 , libogg, libvorbis, flac, libxslt
@@ -38,15 +38,15 @@ assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is
 assert gbmSupport || waylandSupport || x11Support;
 
 let
-  kodiReleaseDate = "20210219";
-  kodiVersion = "19.0";
+  kodiReleaseDate = "20210508";
+  kodiVersion = "19.1";
   rel = "Matrix";
 
   kodi_src = fetchFromGitHub {
     owner  = "xbmc";
     repo   = "xbmc";
     rev    = "${kodiVersion}-${rel}";
-    sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
+    sha256 = "0jh67vw3983lnfgqzqfislawwbpq0vxxk1ljsg7mar06mlwfxb7h";
   };
 
   ffmpeg = stdenv.mkDerivation rec {
@@ -114,7 +114,7 @@ in stdenv.mkDerivation {
       gettext pcre-cpp yajl fribidi libva libdrm
       openssl gperf tinyxml2 taglib libssh
       gtest ncurses spdlog
-      alsaLib libGL libGLU fontconfig freetype ftgl
+      alsa-lib libGL libGLU fontconfig freetype ftgl
       libjpeg libpng libtiff
       libmpeg2 libsamplerate libmad
       libogg libvorbis flac libxslt systemd
diff --git a/nixpkgs/pkgs/applications/video/kooha/default.nix b/nixpkgs/pkgs/applications/video/kooha/default.nix
index 0a3de27f53ed..6203041ed63e 100644
--- a/nixpkgs/pkgs/applications/video/kooha/default.nix
+++ b/nixpkgs/pkgs/applications/video/kooha/default.nix
@@ -1,17 +1,17 @@
 { lib, fetchFromGitHub, appstream-glib, desktop-file-utils, glib
-, gobject-introspection, gst_all_1, gtk3, libhandy, librsvg, meson, ninja
+, gobject-introspection, gst_all_1, gtk4, libadwaita, librsvg, meson, ninja
 , pkg-config, python3, wrapGAppsHook }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "kooha";
-  version = "1.1.1";
+  version = "1.2.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "SeaDve";
     repo = "Kooha";
     rev = "v${version}";
-    sha256 = "05515xccs6y3wy28a6lkyn2jgi0fli53548l8qs73li8mdbxzd4c";
+    sha256 = "1qwbzdn0n1nxcfci1bhhkfchdhw5yz74fdvsa84cznyyx2jils8w";
   };
 
   buildInputs = [
@@ -19,8 +19,8 @@ python3.pkgs.buildPythonApplication rec {
     gobject-introspection
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
-    gtk3
-    libhandy
+    gtk4
+    libadwaita
     librsvg
   ];
 
@@ -48,6 +48,10 @@ python3.pkgs.buildPythonApplication rec {
     patchShebangs build-aux/meson/postinstall.py
   '';
 
+  installCheckPhase = ''
+    $out/bin/kooha --help
+  '';
+
   meta = with lib; {
     description = "Simple screen recorder";
     homepage = "https://github.com/SeaDve/Kooha";
diff --git a/nixpkgs/pkgs/applications/video/lightworks/default.nix b/nixpkgs/pkgs/applications/video/lightworks/default.nix
index 0312c34bf702..352af7754c7e 100644
--- a/nixpkgs/pkgs/applications/video/lightworks/default.nix
+++ b/nixpkgs/pkgs/applications/video/lightworks/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, dpkg, makeWrapper, buildFHSUserEnv
 , gtk3, gdk-pixbuf, cairo, libjpeg_original, glib, pango, libGLU
-, nvidia_cg_toolkit, zlib, openssl, portaudio
+, libGL, nvidia_cg_toolkit, zlib, openssl, libuuid , alsa-lib, udev, libjack2
 }:
 let
   fullPath = lib.makeLibraryPath [
@@ -11,22 +11,27 @@ let
     libjpeg_original
     glib
     pango
+    libGL
     libGLU
     nvidia_cg_toolkit
     zlib
     openssl
-    portaudio
+    libuuid
+    alsa-lib
+    libjack2
+    udev
   ];
 
   lightworks = stdenv.mkDerivation rec {
-    version = "14.0.0";
+    version = "2021.2.1";
+    rev = "128456";
     pname = "lightworks";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
-          url = "http://downloads.lwks.com/v14/lwks-14.0.0-amd64.deb";
-          sha256 = "66eb9f9678d979db76199f1c99a71df0ddc017bb47dfda976b508849ab305033";
+          url = "https://cdn.lwks.com/releases/${version}/lightworks_${lib.versions.majorMinor version}_r${rev}.deb";
+          sha256 = "sha256-GkTg43IUF1NgEm/wT9CZw68Dw/R2BYBU/F4bsCxQowQ=";
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
@@ -82,7 +87,7 @@ in buildFHSUserEnv {
     description = "Professional Non-Linear Video Editor";
     homepage = "https://www.lwks.com/";
     license = lib.licenses.unfree;
-    maintainers = [ lib.maintainers.antonxy ];
+    maintainers = with lib.maintainers; [ antonxy vojta001 ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/makemkv/default.nix b/nixpkgs/pkgs/applications/video/makemkv/default.nix
index 817daf31d0aa..da18a8d7abef 100644
--- a/nixpkgs/pkgs/applications/video/makemkv/default.nix
+++ b/nixpkgs/pkgs/applications/video/makemkv/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , autoPatchelfHook
 , pkg-config
-, ffmpeg_3
+, ffmpeg
 , openssl
 , qtbase
 , zlib
@@ -39,7 +39,7 @@ in mkDerivation {
 
   nativeBuildInputs = [ autoPatchelfHook pkg-config ];
 
-  buildInputs = [ ffmpeg_3 openssl qtbase zlib ];
+  buildInputs = [ ffmpeg openssl qtbase zlib ];
 
   qtWrapperArgs =
     let
diff --git a/nixpkgs/pkgs/applications/video/manim/default.nix b/nixpkgs/pkgs/applications/video/manim/default.nix
index f2d33506ffcd..0f224a5b1057 100644
--- a/nixpkgs/pkgs/applications/video/manim/default.nix
+++ b/nixpkgs/pkgs/applications/video/manim/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonApplication, fetchFromGitHub, pythonOlder, file, fetchpatch
-, cairo, ffmpeg_3, sox, xdg-utils, texlive
+, cairo, ffmpeg, sox, xdg-utils, texlive
 , colour, numpy, pillow, progressbar, scipy, tqdm, opencv , pycairo, pydub
 , pbr, fetchPypi
 }:
@@ -28,14 +28,14 @@ buildPythonApplication rec {
     pycairo
     pydub
 
-    cairo sox ffmpeg_3 xdg-utils
+    cairo sox ffmpeg xdg-utils
   ];
 
   # Test with texlive to see whether it works but don't propagate
   # because it's huge and optional
   # TODO: Use smaller TexLive distribution
   #       Doesn't need everything but it's hard to figure out what it needs
-  checkInputs = [ cairo sox ffmpeg_3 xdg-utils texlive.combined.scheme-full ];
+  checkInputs = [ cairo sox ffmpeg xdg-utils texlive.combined.scheme-full ];
 
   # Simple test and complex test with LaTeX
   checkPhase = ''
diff --git a/nixpkgs/pkgs/applications/video/mplayer/default.nix b/nixpkgs/pkgs/applications/video/mplayer/default.nix
index 4e245b70d4f8..bdcd3fbc8fd3 100644
--- a/nixpkgs/pkgs/applications/video/mplayer/default.nix
+++ b/nixpkgs/pkgs/applications/video/mplayer/default.nix
@@ -1,11 +1,11 @@
-{ config, lib, stdenv, fetchurl, pkg-config, freetype, yasm, ffmpeg_3
+{ config, lib, stdenv, fetchurl, pkg-config, freetype, yasm, ffmpeg
 , aalibSupport ? true, aalib ? null
 , fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
 , fribidiSupport ? true, fribidi ? null
 , x11Support ? true, libX11 ? null, libXext ? null, libGLU, libGL ? null
 , xineramaSupport ? true, libXinerama ? null
 , xvSupport ? true, libXv ? null
-, alsaSupport ? stdenv.isLinux, alsaLib ? null
+, alsaSupport ? stdenv.isLinux, alsa-lib ? null
 , screenSaverSupport ? true, libXScrnSaver ? null
 , vdpauSupport ? false, libvdpau ? null
 , cddaSupport ? !stdenv.isDarwin, cdparanoia ? null
@@ -36,7 +36,7 @@ assert fribidiSupport -> (fribidi != null);
 assert x11Support -> (libX11 != null && libXext != null && libGLU != null && libGL != null);
 assert xineramaSupport -> (libXinerama != null && x11Support);
 assert xvSupport -> (libXv != null && x11Support);
-assert alsaSupport -> alsaLib != null;
+assert alsaSupport -> alsa-lib != null;
 assert screenSaverSupport -> libXScrnSaver != null;
 assert vdpauSupport -> libvdpau != null;
 assert cddaSupport -> cdparanoia != null;
@@ -106,15 +106,17 @@ stdenv.mkDerivation rec {
     rm -rf ffmpeg
   '';
 
+  patches = [ ./svn-r38199-ffmpeg44fix.patch ];
+
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkg-config yasm ];
   buildInputs = with lib;
-    [ freetype ffmpeg_3 ]
+    [ freetype ffmpeg ]
     ++ optional aalibSupport aalib
     ++ optional fontconfigSupport fontconfig
     ++ optional fribidiSupport fribidi
     ++ optionals x11Support [ libX11 libXext libGLU libGL ]
-    ++ optional alsaSupport alsaLib
+    ++ optional alsaSupport alsa-lib
     ++ optional xvSupport libXv
     ++ optional theoraSupport libtheora
     ++ optional cacaSupport libcaca
diff --git a/nixpkgs/pkgs/applications/video/mplayer/svn-r38199-ffmpeg44fix.patch b/nixpkgs/pkgs/applications/video/mplayer/svn-r38199-ffmpeg44fix.patch
new file mode 100644
index 000000000000..4137989fcb54
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mplayer/svn-r38199-ffmpeg44fix.patch
@@ -0,0 +1,22 @@
+Index: libmpcodecs/ad_spdif.c
+===================================================================
+diff --git a/libmpcodecs/ad_spdif.c b/libmpcodecs/ad_spdif.c
+--- a/libmpcodecs/ad_spdif.c	(revision 38198)
++++ b/libmpcodecs/ad_spdif.c	(revision 38199)
+@@ -298,14 +298,8 @@
+         if (spdif_ctx->header_written)
+             av_write_trailer(lavf_ctx);
+         av_freep(&lavf_ctx->pb);
+-        if (lavf_ctx->streams) {
+-            av_freep(&lavf_ctx->streams[0]->codec);
+-            av_freep(&lavf_ctx->streams[0]->info);
+-            av_freep(&lavf_ctx->streams[0]);
+-        }
+-        av_freep(&lavf_ctx->streams);
+-        av_freep(&lavf_ctx->priv_data);
++        avformat_free_context(lavf_ctx);
++        lavf_ctx = NULL;
+     }
+-    av_freep(&lavf_ctx);
+     av_freep(&spdif_ctx);
+ }
diff --git a/nixpkgs/pkgs/applications/video/mpv/default.nix b/nixpkgs/pkgs/applications/video/mpv/default.nix
index 99cb08a02a0b..3bde15430579 100644
--- a/nixpkgs/pkgs/applications/video/mpv/default.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -30,7 +30,7 @@
   , libdrm ? null
   , mesa   ? null
 
-, alsaSupport        ? stdenv.isLinux, alsaLib       ? null
+, alsaSupport        ? stdenv.isLinux, alsa-lib       ? null
 , archiveSupport     ? true,           libarchive    ? null
 , bluraySupport      ? true,           libbluray     ? null
 , bs2bSupport        ? true,           libbs2b       ? null
@@ -61,7 +61,7 @@ with lib;
 let
   available = x: x != null;
 in
-assert alsaSupport        -> available alsaLib;
+assert alsaSupport        -> available alsa-lib;
 assert archiveSupport     -> available libarchive;
 assert bluraySupport      -> available libbluray;
 assert bs2bSupport        -> available libbs2b;
@@ -159,7 +159,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     ffmpeg freetype libass libpthreadstubs
     luaEnv libuchardet mujs
-  ] ++ optional alsaSupport        alsaLib
+  ] ++ optional alsaSupport        alsa-lib
     ++ optional archiveSupport     libarchive
     ++ optional bluraySupport      libbluray
     ++ optional bs2bSupport        libbs2b
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/youtube-quality.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/youtube-quality.nix
new file mode 100644
index 000000000000..5301e4232a06
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/youtube-quality.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, oscSupport ? false
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mpv-youtube-quality";
+  version = "unstable-2020-02-11";
+
+  src = fetchFromGitHub {
+    owner = "jgreco";
+    repo = "mpv-youtube-quality";
+    rev = "1f8c31457459ffc28cd1c3f3c2235a53efad7148";
+    sha256 = "voNP8tCwCv8QnAZOPC9gqHRV/7jgCAE63VKBd/1s5ic=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/mpv/scripts
+    cp youtube-quality.lua $out/share/mpv/scripts
+  '' + lib.optionalString oscSupport ''
+    cp youtube-quality-osc.lua $out/share/mpv/scripts
+  '' + ''
+    runHook postInstall
+  '';
+
+  passthru.scriptName = "youtube-quality.lua";
+
+  meta = with lib; {
+    description = "A userscript for MPV that allows you to change youtube video quality (ytdl-format) on the fly";
+    homepage = "https://github.com/jgreco/mpv-youtube-quality";
+    license = licenses.unfree;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ lunik1 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mythtv/default.nix b/nixpkgs/pkgs/applications/video/mythtv/default.nix
index 236aec2ee563..cf307f0da34e 100644
--- a/nixpkgs/pkgs/applications/video/mythtv/default.nix
+++ b/nixpkgs/pkgs/applications/video/mythtv/default.nix
@@ -1,5 +1,5 @@
 { lib, mkDerivation, fetchFromGitHub, which, qtbase, qtwebkit, qtscript, xlibsWrapper
-, libpulseaudio, fftwSinglePrec , lame, zlib, libGLU, libGL, alsaLib, freetype
+, libpulseaudio, fftwSinglePrec , lame, zlib, libGLU, libGL, alsa-lib, freetype
 , perl, pkg-config , libsamplerate, libbluray, lzo, libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm
 , libXmu , yasm, libuuid, taglib, libtool, autoconf, automake, file, exiv2, linuxHeaders
 }:
@@ -24,7 +24,7 @@ mkDerivation rec {
 
   buildInputs = [
     freetype qtbase qtwebkit qtscript lame zlib xlibsWrapper libGLU libGL
-    perl libsamplerate libbluray lzo alsaLib libpulseaudio fftwSinglePrec libX11 libXv libXrandr libXvMC
+    perl libsamplerate libbluray lzo alsa-lib libpulseaudio fftwSinglePrec libX11 libXv libXrandr libXvMC
     libXmu libXinerama libXxf86vm libXmu libuuid taglib exiv2
   ];
   nativeBuildInputs = [ pkg-config which yasm libtool autoconf automake file ];
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index 47ab73d0ab7b..a50fe16660fb 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -30,7 +30,7 @@
 , python3
 
 , alsaSupport ? stdenv.isLinux
-, alsaLib
+, alsa-lib
 , pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
 , libpulseaudio
 , libcef
@@ -43,13 +43,13 @@ let
 
 in mkDerivation rec {
   pname = "obs-studio";
-  version = "26.1.2";
+  version = "27.0.0";
 
   src = fetchFromGitHub {
     owner = "obsproject";
     repo = "obs-studio";
     rev = version;
-    sha256 = "1plr5a7k5scxlibhbknhhk19ipk8las14dzs7v64zx7rhpj00009";
+    sha256 = "1n71705b9lbdff3svkmgwmbhlhhxvi8ajxqb74lm07v56a5bvi6p";
     fetchSubmodules = true;
   };
 
@@ -77,7 +77,7 @@ in mkDerivation rec {
     mbedtls
   ]
   ++ optionals scriptingSupport [ luajit swig python3 ]
-  ++ optional alsaSupport alsaLib
+  ++ optional alsaSupport alsa-lib
   ++ optional pulseaudioSupport libpulseaudio
   ++ optional pipewireSupport pipewire;
 
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix
new file mode 100644
index 000000000000..eb95353e8d6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, qtbase
+, obs-studio
+, asio_1_10
+, websocketpp
+}:
+
+stdenv.mkDerivation rec {
+  pname = "obs-websocket";
+  version = "4.9.0";
+
+  src = fetchFromGitHub {
+    owner = "Palakis";
+    repo = "obs-websocket";
+    rev = version;
+    sha256 = "1dxih5czcfs1vczbq48784jvmgs8awbsrwk8mdfi4pg8n577cr1w";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ qtbase obs-studio asio_1_10 websocketpp ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [
+    "-DLIBOBS_INCLUDE_DIR=${obs-studio.src}/libobs"
+  ];
+
+  meta = with lib; {
+    description = "Remote-control OBS Studio through WebSockets";
+    homepage = "https://github.com/Palakis/obs-websocket";
+    maintainers = with maintainers; [ erdnaxe ];
+    license = licenses.gpl2Plus;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/default.nix b/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
index 5951f4665e40..c25e53b657b6 100644
--- a/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
@@ -18,7 +18,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
 
   buildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = with python3Packages; [ libopenshot pyqt5_with_qtwebkit requests sip httplib2 pyzmq ];
+  propagatedBuildInputs = with python3Packages; [ libopenshot pyqt5_with_qtwebkit requests sip_4 httplib2 pyzmq ];
 
   dontWrapGApps = true;
   dontWrapQtApps = true;
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
index 84f5ac56e7db..c3bcc09cd3fb 100644
--- a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, doxygen
-, alsaLib, libX11, libXft, libXrandr, libXinerama, libXext, libXcursor
+, alsa-lib, libX11, libXft, libXrandr, libXinerama, libXext, libXcursor
 , zlib, AGL, Cocoa, Foundation
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   [ pkg-config cmake doxygen ];
 
   buildInputs =
-    optionals stdenv.isLinux [ alsaLib ]
+    optionals stdenv.isLinux [ alsa-lib ]
     ++ (if stdenv.isDarwin then
           [ zlib AGL Cocoa Foundation ]
         else
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
index 169bd33b7095..246c3d5cab86 100644
--- a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch
 , pkg-config, cmake, doxygen
-, libopenshot-audio, imagemagick, ffmpeg_3
-, swig, python3
-, unittest-cpp, cppzmq, zeromq
+, libopenshot-audio, imagemagick, ffmpeg
+, swig, python3, jsoncpp
+, cppzmq, zeromq
 , qtbase, qtmultimedia
 , llvmPackages
 }:
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    # Fix build with GCC 10.
     (fetchpatch {
       name = "fix-build-with-gcc-10.patch";
       url = "https://github.com/OpenShot/libopenshot/commit/13290364e7bea54164ab83d973951f2898ad9e23.diff";
@@ -33,10 +34,10 @@ stdenv.mkDerivation rec {
     export _REL_PYTHON_MODULE_PATH=$(toPythonPath $out)
   '';
 
-  nativeBuildInputs = [ pkg-config cmake doxygen ];
+  nativeBuildInputs = [ pkg-config cmake doxygen swig ];
 
   buildInputs =
-  [ imagemagick ffmpeg_3 swig python3 unittest-cpp
+  [ imagemagick ffmpeg python3 jsoncpp
     cppzmq zeromq qtbase qtmultimedia ]
     ++ optional stdenv.isDarwin llvmPackages.openmp
   ;
@@ -44,7 +45,6 @@ stdenv.mkDerivation rec {
   dontWrapQtApps = true;
 
   LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
-  "UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/video/peek/default.nix b/nixpkgs/pkgs/applications/video/peek/default.nix
index 2a1418cb3731..edeb848867fb 100644
--- a/nixpkgs/pkgs/applications/video/peek/default.nix
+++ b/nixpkgs/pkgs/applications/video/peek/default.nix
@@ -16,7 +16,7 @@
 , glib
 , cairo
 , keybinder3
-, ffmpeg_3
+, ffmpeg
 , python3
 , libxml2
 , gst_all_1
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   '';
 
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ which ffmpeg_3 gifski ]})
+    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ which ffmpeg gifski ]})
   '';
 
   passthru = {
@@ -79,8 +79,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/phw/peek";
     description = "Simple animated GIF screen recorder with an easy to use interface";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ puffnfresh worldofpeace ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ puffnfresh ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/pitivi/default.nix b/nixpkgs/pkgs/applications/video/pitivi/default.nix
index 45c96fb180d3..b1be6035f9e8 100644
--- a/nixpkgs/pkgs/applications/video/pitivi/default.nix
+++ b/nixpkgs/pkgs/applications/video/pitivi/default.nix
@@ -11,7 +11,7 @@
 , gobject-introspection
 , libpeas
 , librsvg
-, gnome3
+, gnome
 , libnotify
 , gsound
 , meson
@@ -21,13 +21,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pitivi";
-  version = "2020.09.2";
+  version = "2021.01";
 
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pitivi/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hzvv4wia4rk0kvq16y27imq2qd4q5lg3vx99hdcjdb1x3zqqfg0";
+    url = "mirror://gnome/sources/pitivi/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0krzsrv19v3mwhbsm72ica6m3p8ijy0lbd0c3s87yd7pmbwld2c1";
   };
 
   patches = [
@@ -52,9 +52,9 @@ python3Packages.buildPythonApplication rec {
     gtk3
     libpeas
     librsvg
-    gnome3.gnome-desktop
+    gnome.gnome-desktop
     gsound
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gsettings-desktop-schemas
     libnotify
   ] ++ (with gst_all_1; [
@@ -89,7 +89,7 @@ python3Packages.buildPythonApplication rec {
   strictDeps = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "pitivi";
       versionPolicy = "none"; # we are using dev version, since the stable one is too old
     };
diff --git a/nixpkgs/pkgs/applications/video/prism/default.nix b/nixpkgs/pkgs/applications/video/prism/default.nix
new file mode 100644
index 000000000000..8cb6153b8111
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/prism/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "prism";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "muesli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0q7q7aj3fm45bnx6hgl9c1ll8na16x6p7qapr0c4a6dhxwd7n511";
+  };
+
+  vendorSha256 = "1mkd1s9zgzy9agy2rjjk8wfdga7nzv9cmwgiarfi4xrqzj4mbaxq";
+
+  meta = with lib; {
+    description = "An RTMP stream recaster/splitter";
+    homepage = "https://github.com/muesli/prism";
+    license = licenses.mit;
+    maintainers = with maintainers; [ paperdigits ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/qmediathekview/default.nix b/nixpkgs/pkgs/applications/video/qmediathekview/default.nix
index d0f414135703..e37a8b1ed4ae 100644
--- a/nixpkgs/pkgs/applications/video/qmediathekview/default.nix
+++ b/nixpkgs/pkgs/applications/video/qmediathekview/default.nix
@@ -1,13 +1,22 @@
-{ mkDerivation, lib, fetchFromGitHub, qtbase, qttools, xz, boost, qmake, pkg-config }:
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, boost
+, qtbase
+, xz
+, qmake
+, pkg-config
+}:
 
 mkDerivation rec {
   pname = "QMediathekView";
-  version = "2019-01-06";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "adamreichold";
     repo = pname;
-    rev = "e098aaec552ec4e367078bf19953a08067316b4b";
+    rev = "v${version}";
     sha256 = "0i9hac9alaajbra3lx23m0iiq6ww4is00lpbzg5x70agjrwj0nd6";
   };
 
@@ -16,7 +25,7 @@ mkDerivation rec {
       --replace /usr ""
   '';
 
-  buildInputs = [ qtbase qttools xz boost ];
+  buildInputs = [ qtbase xz boost ];
 
   nativeBuildInputs = [ qmake pkg-config ];
 
@@ -28,5 +37,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
+    broken = stdenv.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/qmplay2/default.nix b/nixpkgs/pkgs/applications/video/qmplay2/default.nix
index ecedd730094c..0e0580b9f2ae 100644
--- a/nixpkgs/pkgs/applications/video/qmplay2/default.nix
+++ b/nixpkgs/pkgs/applications/video/qmplay2/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , pkg-config
 , cmake
-, alsaLib
+, alsa-lib
 , ffmpeg
 , libass
 , libcddb
@@ -36,7 +36,7 @@ in stdenv.mkDerivation {
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
   buildInputs = [
-    alsaLib
+    alsa-lib
     ffmpeg
     libass
     libcddb
diff --git a/nixpkgs/pkgs/applications/video/qstopmotion/default.nix b/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
index 9a5bb5eb4620..469ba5b8eaa6 100644
--- a/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
+++ b/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
@@ -6,7 +6,7 @@
 , qtquickcontrols
 , qtimageformats
 , qtxmlpatterns
-, ffmpeg_3
+, ffmpeg
 , guvcview
 , cmake
 , ninja
@@ -40,7 +40,6 @@ mkDerivation rec {
     v4l-utils
     libv4l
     pcre
-    ffmpeg_3
     guvcview
     qwt
   ];
@@ -64,6 +63,10 @@ mkDerivation rec {
     grep -rl 'qwt' . | xargs sed -i 's@<qwt/qwt_slider.h>@<qwt_slider.h>@g'
   '';
 
+  qtWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ ffmpeg ])
+  ];
+
   meta = with lib; {
     homepage = "http://www.qstopmotion.org";
     description = "Create stopmotion animation with a (web)camera";
diff --git a/nixpkgs/pkgs/applications/video/recapp/default.nix b/nixpkgs/pkgs/applications/video/recapp/default.nix
new file mode 100644
index 000000000000..7ec88af821e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/recapp/default.nix
@@ -0,0 +1,81 @@
+{ lib
+, python3
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gobject-introspection
+, gtk3
+, gst_all_1
+, libnotify
+, librsvg
+, meson
+, ninja
+, pkg-config
+, slop
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "recapp";
+  version = "1.1.1";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "amikha1lov";
+    repo = "RecApp";
+    rev = "v${version}";
+    sha256 = "08bpfcqgw0lj6j7y5b2i18kffawlzp6pfk4wdpmk29vwmgk9s9yc";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux/meson
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    gettext
+    glib
+    gtk3
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    libnotify
+    librsvg
+    gobject-introspection
+    gtk3
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pulsectl
+    pydbus
+    pygobject3
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+      "--prefix" "PATH" ":" "${lib.makeBinPath [ gst_all_1.gstreamer.dev slop ]}"
+    )
+  '';
+
+  meta = with lib; {
+    description = "User friendly Open Source screencaster for Linux written in GTK";
+    homepage = "https://github.com/amikha1lov/RecApp";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix b/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix
index 14575a88dc17..34842b38743b 100644
--- a/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, alsaLib, ffmpeg, libjack2, libX11, libXext, libXinerama, qtx11extras
+{ lib, stdenv, mkDerivation, fetchFromGitHub, alsa-lib, ffmpeg, libjack2, libX11, libXext, libXinerama, qtx11extras
 , libXfixes, libGLU, libGL, pkg-config, libpulseaudio, libv4l, qtbase, qttools, cmake, ninja
 }:
 
@@ -27,7 +27,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ninja ];
   buildInputs = [
-    alsaLib ffmpeg libjack2 libX11 libXext libXfixes libXinerama libGLU libGL
+    alsa-lib ffmpeg libjack2 libX11 libXext libXfixes libXinerama libGLU libGL
     libpulseaudio libv4l qtbase qttools qtx11extras
   ];
 
diff --git a/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
index 4d90e6327b93..32a35eca9200 100644
--- a/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
+++ b/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -7,7 +7,7 @@
 , wrapGAppsHook
 , at-spi2-core
 , atk
-, alsaLib
+, alsa-lib
 , cairo
 , cups
 , dbus
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = with xorg; [
     at-spi2-core
     atk
-    alsaLib
+    alsa-lib
     autoPatchelfHook
     cairo
     cups.lib
diff --git a/nixpkgs/pkgs/applications/video/sub-batch/default.nix b/nixpkgs/pkgs/applications/video/sub-batch/default.nix
index 9cda6eb0a2b0..37daa870c6e6 100644
--- a/nixpkgs/pkgs/applications/video/sub-batch/default.nix
+++ b/nixpkgs/pkgs/applications/video/sub-batch/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-5fDnSmnnVB1RGrNrnmp40OGFF+OAhppnhOjVgnYxXr0=";
   };
 
-  cargoSha256 = "sha256-cj1htJcUPCeYbP0t15UcMv4WQAG7tUROb97v4rUeMvU=";
+  cargoSha256 = "sha256-+ufa4Cgue8o9CTB3JDcQ38SlUq8PcRDyj+qNSAFpTas=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/video/ustreamer/default.nix b/nixpkgs/pkgs/applications/video/ustreamer/default.nix
new file mode 100644
index 000000000000..933747f39897
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/ustreamer/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg }:
+
+stdenv.mkDerivation rec {
+  pname = "ustreamer";
+  version = "3.27";
+
+  src = fetchFromGitHub {
+    owner = "pikvm";
+    repo = "ustreamer";
+    rev = "v${version}";
+    sha256 = "1max2171abdpix0wq7mdkji5lvkfzisj166qfgmqkkwc2nh721iw";
+  };
+
+  buildInputs = [ libbsd libevent libjpeg ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ustreamer $out/bin/
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/pikvm/ustreamer";
+    description = "Lightweight and fast MJPG-HTTP streamer";
+    longDescription = ''
+      µStreamer is a lightweight and very quick server to stream MJPG video from
+      any V4L2 device to the net. All new browsers have native support of this
+      video format, as well as most video players such as mplayer, VLC etc.
+      µStreamer is a part of the Pi-KVM project designed to stream VGA and HDMI
+      screencast hardware data with the highest resolution and FPS possible.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ tfc ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/vdr/default.nix b/nixpkgs/pkgs/applications/video/vdr/default.nix
index eeb61624409f..265ef82528db 100644
--- a/nixpkgs/pkgs/applications/video/vdr/default.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/default.nix
@@ -5,12 +5,12 @@
 }: stdenv.mkDerivation rec {
 
   pname = "vdr";
-  version = "2.4.6";
+  version = "2.4.7";
 
   src = fetchgit {
     url = "git://git.tvdr.de/vdr.git";
-    rev = "V20406";
-    sha256 = "sha256-te9lMmnWpesv+np2gJUDL17pI0WyVxhUnoBsFSRtOco=";
+    rev = version;
+    sha256 = "sha256-hDJ/DemWuLddDvXGqxkSTIqATlWUjolcP7ojjhK2CDk=";
   };
 
   enableParallelBuilding = true;
@@ -51,6 +51,6 @@
     description = "Video Disc Recorder";
     maintainers = [ maintainers.ck3d ];
     platforms = [ "i686-linux" "x86_64-linux" ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/vdr/plugins.nix b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
index 395de891eb93..cb2338c0e185 100644
--- a/nixpkgs/pkgs/applications/video/vdr/plugins.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchgit, vdr, alsaLib, fetchFromGitHub
+{ lib, stdenv, fetchurl, fetchgit, vdr, alsa-lib, fetchFromGitHub
 , libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg_3
 , libiconv, boost, libgcrypt, perl, util-linux, groff, libva, xorg, ncurses
 , callPackage
@@ -54,7 +54,7 @@ in {
 
     buildInputs = [
       vdr libxcb xcbutilwm ffmpeg_3
-      alsaLib
+      alsa-lib
       libvdpau # vdpau
       libva # va-api
     ] ++ (with xorg; [ libxcb libX11 ]);
diff --git a/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix b/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix
index 950cb253c129..7660b4eae3d2 100644
--- a/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, lib, vdr
 , libav, libcap, libvdpau
-, xineLib, libjpeg, libextractor, libglvnd, libGLU
+, xine-lib, libjpeg, libextractor, libglvnd, libGLU
 , libX11, libXext, libXrender, libXrandr
 , makeWrapper
 }: let
@@ -34,7 +34,7 @@
     postFixup = ''
       for f in $out/bin/*; do
         wrapProgram $f \
-          --prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xineLib ]}"
+          --prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xine-lib ]}"
       done
     '';
 
@@ -53,10 +53,10 @@
       libXrender
       libX11
       vdr
-      xineLib
+      xine-lib
     ];
 
-    passthru.requiredXinePlugins = [ xineLib self ];
+    passthru.requiredXinePlugins = [ xine-lib self ];
 
     meta = with lib;{
       homepage = "https://sourceforge.net/projects/xineliboutput/";
diff --git a/nixpkgs/pkgs/applications/video/vlc/default.nix b/nixpkgs/pkgs/applications/video/vlc/default.nix
index adb7ba970e29..ed5976151301 100644
--- a/nixpkgs/pkgs/applications/video/vlc/default.nix
+++ b/nixpkgs/pkgs/applications/video/vlc/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, autoreconfHook
 , libarchive, perl, xorg, libdvdnav, libbluray
-, zlib, a52dec, libmad, faad2, ffmpeg, alsaLib
+, zlib, a52dec, libmad, faad2, ffmpeg, alsa-lib
 , pkg-config, dbus, fribidi, freefont_ttf, libebml, libmatroska
 , libvorbis, libtheora, speex, lua5, libgcrypt, libgpgerror, libupnp
 , libcaca, libpulseaudio, flac, schroedinger, libxml2, librsvg
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   # which are not included here for no other reason that nobody has mentioned
   # needing them
   buildInputs = [
-    zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
+    zlib a52dec libmad faad2 ffmpeg alsa-lib libdvdnav libdvdnav.libdvdread
     libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror
     libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec
     systemd gnutls avahi libcddb SDL SDL_image libmtp taglib libarchive
diff --git a/nixpkgs/pkgs/applications/video/vokoscreen/default.nix b/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
index 598a162f3998..aeea52a4ff5a 100644
--- a/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
+++ b/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, mkDerivation
-, pkg-config, qtbase, qttools, qmake, qtmultimedia, qtx11extras, alsaLib, libv4l, libXrandr
+, pkg-config, qtbase, qttools, qmake, qtmultimedia, qtx11extras, alsa-lib, libv4l, libXrandr
 , ffmpeg
 }:
 
@@ -17,7 +17,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config qmake ];
   buildInputs = [
-    alsaLib
+    alsa-lib
     libv4l
     qtbase
     qtmultimedia
diff --git a/nixpkgs/pkgs/applications/video/webcamoid/default.nix b/nixpkgs/pkgs/applications/video/webcamoid/default.nix
index ef485fc82011..63f1e885af30 100644
--- a/nixpkgs/pkgs/applications/video/webcamoid/default.nix
+++ b/nixpkgs/pkgs/applications/video/webcamoid/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchFromGitHub, pkg-config, libxcb, mkDerivation, qmake
 , qtbase, qtdeclarative, qtquickcontrols, qtquickcontrols2
-, ffmpeg-full, gst_all_1, libpulseaudio, alsaLib, jack2
+, ffmpeg-full, gst_all_1, libpulseaudio, alsa-lib, jack2
 , v4l-utils }:
 mkDerivation rec {
   pname = "webcamoid";
-  version = "8.7.1";
+  version = "8.8.0";
 
   src = fetchFromGitHub {
-    sha256 = "1d8g7mq0wf0ycds87xpdhr3zkljgjmb94n3ak9kkxj2fqp9242d2";
+    sha256 = "0a8M9GQ6Ea9jBCyfbORVyB6HC/O6jdcIZruQZj9Aai4=";
     rev = version;
     repo = "webcamoid";
     owner = "webcamoid";
@@ -18,7 +18,7 @@ mkDerivation rec {
     qtbase qtdeclarative qtquickcontrols qtquickcontrols2
     ffmpeg-full
     gst_all_1.gstreamer gst_all_1.gst-plugins-base
-    alsaLib libpulseaudio jack2
+    alsa-lib libpulseaudio jack2
     v4l-utils
   ];
 
diff --git a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
index 7660edcc7683..3b486654aeb9 100644
--- a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -1,5 +1,5 @@
 {
-  alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
+  alsa-lib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
   gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor,
   libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
   libxcb, nspr, nss, lib, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
@@ -7,7 +7,7 @@
 
   let
     rpath = lib.makeLibraryPath ([
-    alsaLib
+    alsa-lib
     atk
     at-spi2-core
     at-spi2-atk
diff --git a/nixpkgs/pkgs/applications/video/wxcam/default.nix b/nixpkgs/pkgs/applications/video/wxcam/default.nix
index f197abacee04..5a6c6ff524e3 100644
--- a/nixpkgs/pkgs/applications/video/wxcam/default.nix
+++ b/nixpkgs/pkgs/applications/video/wxcam/default.nix
@@ -7,7 +7,7 @@
 , perlPackages
 , xvidcore
 , mjpegtools
-, alsaLib
+, alsa-lib
 , libv4l
 , cimg }:
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = with lib;
-  [ pkg-config intltool libX11 libXv libSM gtk libglade wxGTK perlPackages.XMLParser xvidcore mjpegtools alsaLib libv4l cimg ];
+  [ pkg-config intltool libX11 libXv libSM gtk libglade wxGTK perlPackages.XMLParser xvidcore mjpegtools alsa-lib libv4l cimg ];
 
   NIX_CFLAGS_COMPILE="-I ${cimg}/include/cimg";
 
diff --git a/nixpkgs/pkgs/applications/video/xawtv/default.nix b/nixpkgs/pkgs/applications/video/xawtv/default.nix
index 0945c5b3f3fd..b046fbebaa26 100644
--- a/nixpkgs/pkgs/applications/video/xawtv/default.nix
+++ b/nixpkgs/pkgs/applications/video/xawtv/default.nix
@@ -4,7 +4,7 @@
 , libjpeg
 , libX11
 , libXt
-, alsaLib
+, alsa-lib
 , aalib
 , libXft
 , xorgproto
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     xorgproto
     libFS
     perl
-    alsaLib
+    alsa-lib
     aalib
     libXaw
     libXpm
diff --git a/nixpkgs/pkgs/applications/video/xine-ui/default.nix b/nixpkgs/pkgs/applications/video/xine-ui/default.nix
index 651597b3a480..ed60fad56c3b 100644
--- a/nixpkgs/pkgs/applications/video/xine-ui/default.nix
+++ b/nixpkgs/pkgs/applications/video/xine-ui/default.nix
@@ -1,34 +1,61 @@
-{lib, stdenv, fetchurl, pkg-config, xorg, libpng, xineLib, readline, ncurses, curl
-, lirc, shared-mime-info, libjpeg }:
+{ lib
+, stdenv
+, fetchurl
+, curl
+, libjpeg
+, libpng
+, lirc
+, ncurses
+, pkg-config
+, readline
+, shared-mime-info
+, xine-lib
+, xorg
+}:
 
 stdenv.mkDerivation rec {
-  name = "xine-ui-0.99.12";
+  pname = "xine-ui";
+  version = "0.99.12";
 
   src = fetchurl {
-    url = "mirror://sourceforge/xine/${name}.tar.xz";
+    url = "mirror://sourceforge/xine/${pname}-${version}.tar.xz";
     sha256 = "10zmmss3hm8gjjyra20qhdc0lb1m6sym2nb2w62bmfk8isfw9gsl";
   };
 
-  nativeBuildInputs = [ pkg-config shared-mime-info ];
-
-  buildInputs =
-    [ xineLib libpng readline ncurses curl lirc libjpeg
-      xorg.xlibsWrapper xorg.libXext xorg.libXv xorg.libXxf86vm xorg.libXtst xorg.xorgproto
-      xorg.libXinerama xorg.libXi xorg.libXft
-    ];
-
-  patchPhase = ''sed -e '/curl\/types\.h/d' -i src/xitk/download.c'';
+  nativeBuildInputs = [
+    pkg-config
+    shared-mime-info
+  ];
+  buildInputs = [
+    curl
+    libjpeg
+    libpng
+    lirc
+    ncurses
+    readline
+    xine-lib
+  ] ++ (with xorg; [
+    libXext
+    libXft
+    libXi
+    libXinerama
+    libXtst
+    libXv
+    libXxf86vm
+    xlibsWrapper
+    xorgproto
+  ]);
 
   configureFlags = [ "--with-readline=${readline.dev}" ];
 
   LIRC_CFLAGS="-I${lirc}/include";
   LIRC_LIBS="-L ${lirc}/lib -llirc_client";
-#NIX_LDFLAGS = "-lXext -lgcc_s";
 
   meta = with lib; {
-    homepage = "http://www.xine-project.org/";
-    description = "Xlib-based interface to Xine, a video player";
+    homepage = "http://xinehq.de/";
+    description = "Xlib-based frontend for Xine video player";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
-    license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/xscast/default.nix b/nixpkgs/pkgs/applications/video/xscast/default.nix
index 6501a3990885..d740efe0c9b2 100644
--- a/nixpkgs/pkgs/applications/video/xscast/default.nix
+++ b/nixpkgs/pkgs/applications/video/xscast/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, ffmpeg_3, imagemagick, dzen2, xorg }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, ffmpeg, imagemagick, dzen2, xorg }:
 
 stdenv.mkDerivation {
   pname = "xscast-unstable";
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     patchShebangs $out/bin
 
     wrapProgram "$out/bin/xscast" \
-      --prefix PATH : ${lib.makeBinPath [ ffmpeg_3 dzen2 xorg.xwininfo xorg.xinput xorg.xmodmap imagemagick ]}
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg dzen2 xorg.xwininfo xorg.xinput xorg.xmodmap imagemagick ]}
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/applications/virtualization/bochs/bochs_fix_narrowing_conv_warning.patch b/nixpkgs/pkgs/applications/virtualization/bochs/bochs_fix_narrowing_conv_warning.patch
new file mode 100644
index 000000000000..167dd65d05b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/bochs/bochs_fix_narrowing_conv_warning.patch
@@ -0,0 +1,29 @@
+------------------------------------------------------------------------
+r13882 | vruppert | 2020-06-09 09:30:01 +0200 (Tue, 09 Jun 2020) | 2 lines
+
+Compilation fix for MSYS2 gcc 10.1.0 (narrowing conversion).
+
+
+Index: iodev/display/voodoo_data.h
+===================================================================
+--- a/iodev/display/voodoo_data.h	(revision 13881)
++++ b/iodev/display/voodoo_data.h	(revision 13882)
+@@ -1837,11 +1837,11 @@
+ 
+ /* fifo content defines */
+ #define FIFO_TYPES  (7 << 29)
+-#define FIFO_WR_REG     (1 << 29)
+-#define FIFO_WR_TEX     (2 << 29)
+-#define FIFO_WR_FBI_32  (3 << 29)
+-#define FIFO_WR_FBI_16L (4 << 29)
+-#define FIFO_WR_FBI_16H (5 << 29)
++#define FIFO_WR_REG     (1U << 29)
++#define FIFO_WR_TEX     (2U << 29)
++#define FIFO_WR_FBI_32  (3U << 29)
++#define FIFO_WR_FBI_16L (4U << 29)
++#define FIFO_WR_FBI_16H (5U << 29)
+ 
+ BX_CPP_INLINE void fifo_reset(fifo_state *f)
+ {
+
+------------------------------------------------------------------------
diff --git a/nixpkgs/pkgs/applications/virtualization/bochs/default.nix b/nixpkgs/pkgs/applications/virtualization/bochs/default.nix
index f2418d80d2e4..3a8e9dc0bee7 100644
--- a/nixpkgs/pkgs/applications/virtualization/bochs/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/bochs/default.nix
@@ -26,7 +26,11 @@ stdenv.mkDerivation rec {
     sha256 = "0ql8q6y1k356li1g9gbvl21448mlxphxxi6kjb2b3pxvzd0pp2b3";
   };
 
-  patches = [ ./bochs-2.6.11-glibc-2.26.patch ./fix-build-smp.patch ];
+  patches = [
+    ./bochs-2.6.11-glibc-2.26.patch
+    ./fix-build-smp.patch
+    ./bochs_fix_narrowing_conv_warning.patch
+  ];
 
   buildInputs =
   [ pkg-config libtool gtk2 libGLU libGL readline libX11 libXpm docbook_xml_dtd_45 docbook_xsl ]
diff --git a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
index 3e9029cce0a6..f6d7ce3d6196 100644
--- a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
+{ lib, stdenv, fetchFromGitHub, python3, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
 
 stdenv.mkDerivation rec {
 
-  version = "0.22";
+  version = "0.23";
   pname = "charliecloud";
 
   src = fetchFromGitHub {
     owner = "hpc";
     repo = "charliecloud";
     rev = "v${version}";
-    sha256 = "sha256-+9u7WRKAJ9F70+I68xNRck5Q22XzgLKTCnjGbIcsyW8=";
+    sha256 = "sha256-JQNidKqJROFVm+O1exTDon1fwU91zONqgKJIpe9gspY=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 5a12be3afa6c..d04c0230c97f 100644
--- a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cloud-hypervisor";
-  version = "0.14.1";
+  version = "15.0";
 
   src = fetchFromGitHub {
     owner = "cloud-hypervisor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0pnfg6dzpz8v40cwg3dmlj52x8pblavv7mkczar814dwbk01y7vr";
+    sha256 = "14s80vs7j5fxzl2a6k44fjlbk8i13lln28i37xaa6yk1q3d9jwic";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
 
-  cargoSha256 = "0dbjds40znly11i0ssfv66w82ynxp00ixw1349m5ln9i9ms94sr4";
+  cargoSha256 = "02q4k7j1hyibsiwsbqa5bd4vr3fs1vngnnhqa4kzvih73bkagvk7";
 
   meta = with lib; {
     homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
diff --git a/nixpkgs/pkgs/applications/virtualization/cntr/default.nix b/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
index 9b57be87e443..fa81913d72f6 100644
--- a/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-z+0bSxoLJTK4e5xS4CHZ2hNUI56Ci1gbWJsRcN6ZqZA=";
   };
 
-  cargoSha256 = "sha256-o8o/ixjYdnezQZEp78brjmR2lvQbiwCJr4Y97tHiYbk=";
+  cargoSha256 = "sha256-3e5wDne6Idu+kDinHPcAKHfH/d4DrGg90GkiMbyF280=";
 
   meta = with lib; {
     description = "A container debugging tool based on FUSE";
diff --git a/nixpkgs/pkgs/applications/virtualization/conmon/default.nix b/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
index 5e84b883b6e6..b560b02d435c 100644
--- a/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.27";
+  version = "2.0.29";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LMvhSoKd652XVPzuId8Ortf0f08FUP1zCn06PgtRwkA=";
+    sha256 = "sha256-Idt+bN9Lf6GEjdGC/sM9Ln1ohXhUy78CrmJxSDA2Y0o=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
index 8a4302de64fa..5435c88f58d6 100644
--- a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
@@ -10,13 +10,13 @@
 
 buildGoPackage rec {
   pname = "containerd";
-  version = "1.4.4";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb";
+    sha256 = "sha256-jVyg+fyMuDnV/TM0Z2t+Cr17a6XBv11aWijhsqMnA5s=";
   };
 
   goPackagePath = "github.com/containerd/containerd";
diff --git a/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix b/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
index 848b93a5381c..697741e21f14 100644
--- a/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
@@ -53,7 +53,7 @@ in
       ./default-seccomp-policy-dir.diff
     ];
 
-    cargoSha256 = "0lhivwvdihslwp81i3sa5q88p5hr83bzkvklrcgf6x73arwk8kdz";
+    cargoSha256 = "0aax0slg59afbyn3ygswwap2anv11k6sr9hfpysb4f8rvymvx7hd";
 
     nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/virtualization/crun/default.nix b/nixpkgs/pkgs/applications/virtualization/crun/default.nix
index a6bf559a41a7..2e7700d855c9 100644
--- a/nixpkgs/pkgs/applications/virtualization/crun/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/crun/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.19.1";
+  version = "0.20";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "sha256-v5uESTEspIc8rhZXrQqLEVMDvvPcfHuFoj6lI4M5z70=";
+    sha256 = "sha256-NlpgdRizQFt5T3CRxt0DVXTVPUbge9uPc9B7LuR3o1k=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix b/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
index e965b397f9fe..e9acf58713c5 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.35.0";
+  version = "1.35.2";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "0j350rhyav844vhaa1f5idffflgs5h3c5zcazly9s5sf4invm49y";
+    sha256 = "sha256-Pg3vPvnEo1OkCakwkwS/HaFnvmpjuHHlGqIjddO6jwQ=";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/default.nix b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
index 954404e5268f..bec51af81aca 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
@@ -10,13 +10,14 @@ rec {
       , containerdRev, containerdSha256
       , tiniRev, tiniSha256, buildxSupport ? false
       # package dependencies
-      , stdenv, fetchFromGitHub, fetchpatch, buildGoPackage
+      , stdenv, fetchFromGitHub, buildGoPackage
       , makeWrapper, installShellFiles, pkg-config
       , go-md2man, go, containerd, runc, docker-proxy, tini, libtool
       , sqlite, iproute2, lvm2, systemd, docker-buildx
       , btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
       , procps, libseccomp
       , nixosTests
+      , clientOnly ? !stdenv.isLinux
     }:
   let
     docker-runc = runc.overrideAttrs (oldAttrs: {
@@ -116,14 +117,14 @@ rec {
         ++ optional (libseccomp != null) "seccomp";
     });
   in
-    buildGoPackage ((optionalAttrs (stdenv.isLinux) {
+    buildGoPackage ((optionalAttrs (!clientOnly) {
 
     inherit docker-runc docker-containerd docker-proxy docker-tini moby;
 
    }) // rec {
     inherit version rev;
 
-    name = "docker-${version}";
+    pname = "docker";
 
     src = fetchFromGitHub {
       owner = "docker";
@@ -137,7 +138,7 @@ rec {
     nativeBuildInputs = [
       makeWrapper pkg-config go-md2man go libtool installShellFiles
     ];
-    buildInputs = optionals (stdenv.isLinux) [
+    buildInputs = optionals (!clientOnly) [
       sqlite lvm2 btrfs-progs systemd libseccomp
     ] ++ optionals (buildxSupport) [ docker-buildx ];
 
@@ -162,8 +163,6 @@ rec {
     postPatch = ''
       patchShebangs .
       substituteInPlace ./scripts/build/.variables --replace "set -eu" ""
-      substituteInPlace ./scripts/docs/generate-man.sh --replace "-v md2man" "-v go-md2man"
-      substituteInPlace ./man/md2man-all.sh            --replace md2man go-md2man
     '' + optionalString buildxSupport ''
       substituteInPlace ./cli-plugins/manager/manager_unix.go --replace /usr/libexec/docker/cli-plugins \
           ${lib.strings.makeSearchPathOutput "bin" "libexec/docker/cli-plugins" [docker-buildx]}
@@ -177,7 +176,7 @@ rec {
 
       makeWrapper $out/libexec/docker/docker $out/bin/docker \
         --prefix PATH : "$out/libexec/docker:$extraPath"
-    '' + optionalString (stdenv.isLinux) ''
+    '' + optionalString (!clientOnly) ''
       # symlink docker daemon to docker cli derivation
       ln -s ${moby}/bin/dockerd $out/bin/dockerd
 
@@ -204,7 +203,7 @@ rec {
       installManPage man/*/*.[1-9]
     '';
 
-    passthru.tests = { inherit (nixosTests) docker; };
+    passthru.tests = lib.optionals (!clientOnly) { inherit (nixosTests) docker; };
 
     meta = {
       homepage = "https://www.docker.com/";
@@ -221,19 +220,19 @@ rec {
   # Get revisions from
   # https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/*
   docker_20_10 = callPackage dockerGen rec {
-    version = "20.10.2";
+    version = "20.10.6";
     rev = "v${version}";
-    sha256 = "0z0hpm5hrqh7p8my8lmiwpym2shs48my6p0zv2cc34wym0hcly51";
+    sha256 = "15kknb26vyzjgqmn8r81a1sy1i5br6bvngqd5xljihppnxvp2gvl";
     moby-src = fetchFromGitHub {
       owner = "moby";
       repo = "moby";
       rev = "v${version}";
-      sha256 = "0c2zycpnwj4kh8m8xckv1raj3fx07q9bfaj46rr85jihm4p2dp5w";
+      sha256 = "1l4ra9bsvydaxd2fy7dgxp7ynpp0mrlwvcdhxiafw596559ab6qk";
     };
-    runcRev = "ff819c7e9184c13b7c2607fe6c30ae19403a7aff"; # v1.0.0-rc92
-    runcSha256 = "0r4zbxbs03xr639r7848282j1ybhibfdhnxyap9p76j5w8ixms94";
-    containerdRev = "269548fa27e0089a8b8278fc4fc781d7f65a939b"; # v1.4.3
-    containerdSha256 = "09xvhjg5f8h90w1y94kqqnqzhbhd62dcdd9wb9sdqakisjk6zrl0";
+    runcRev = "b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7"; # v1.0.0-rc95
+    runcSha256 = "18sbvmlvb6kird4w3rqsfrjdj7n25firabvdxsl0rxjfy9r1g2xb";
+    containerdRev = "12dca9790f4cb6b18a6a7a027ce420145cb98ee7"; # v1.5.1
+    containerdSha256 = "16q34yiv5q98b9d5vgy1lmmppg8agrmnfd1kzpakkf4czkws0p4d";
     tiniRev = "de40ad007797e0dcd8b7126f27bb87401d224240"; # v0.19.0
     tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
   };
diff --git a/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix b/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix
index ba823fa2a41c..67ba9b74fbb7 100644
--- a/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix
@@ -36,15 +36,15 @@ stdenv.mkDerivation  {
 
   buildPhase = ''
     mkdir -p usbdk/x86 usbdk/amd64
-    (cd usbdk/x86; ${p7zip}/bin/7z x ${src_usbdk_x86})
-    (cd usbdk/amd64; ${p7zip}/bin/7z x ${src_usbdk_amd64})
+    (cd usbdk/x86; ${p7zip}/bin/7z x -y ${src_usbdk_x86})
+    (cd usbdk/amd64; ${p7zip}/bin/7z x -y ${src_usbdk_amd64})
 
     mkdir -p vdagent/x86 vdagent/amd64
-    (cd vdagent/x86; ${p7zip}/bin/7z x ${src_vdagent_x86}; mv vdagent_0_7_3_x86/* .; rm -r vdagent_0_7_3_x86)
-    (cd vdagent/amd64; ${p7zip}/bin/7z x ${src_vdagent_amd64}; mv vdagent_0_7_3_x64/* .; rm -r vdagent_0_7_3_x64)
+    (cd vdagent/x86; ${p7zip}/bin/7z x -y ${src_vdagent_x86}; mv vdagent_0_7_3_x86/* .; rm -r vdagent_0_7_3_x86)
+    (cd vdagent/amd64; ${p7zip}/bin/7z x -y ${src_vdagent_amd64}; mv vdagent_0_7_3_x64/* .; rm -r vdagent_0_7_3_x64)
 
     mkdir -p qxlwddm
-    (cd qxlwddm; ${p7zip}/bin/7z x ${src_qxlwddm}; mv Win8 w8.1; cd w8.1; mv x64 amd64)
+    (cd qxlwddm; ${p7zip}/bin/7z x -y ${src_qxlwddm}; mv Win8 w8.1; cd w8.1; mv x64 amd64)
     '';
 
   installPhase =
diff --git a/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
index a632640e9009..a8fbb1d09c16 100644
--- a/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, lib, stdenv }:
 
 let
-  version = "0.24.2";
+  version = "0.24.3";
 
   suffix = {
     x86_64-linux  = "x86_64";
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
   src = dlbin {
-    x86_64-linux  = "0l7x9sfyx52n0mwrmicdcnhm8z10q57kk1a5wf459l8lvp59xw08";
+    x86_64-linux  = "sha256-i6NMVFoLm4hQJH7RnhfC0t+0DJCINoP5b/iCv9JyRdk=";
     aarch64-linux = "0m7xs12g97z1ipzaf7dgknf3azlah0p6bdr9i454azvzg955238b";
   };
 
diff --git a/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix b/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
index e6b83286c00d..4cd043d4eb6d 100644
--- a/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
@@ -1,6 +1,8 @@
 { lib
 , buildBazelPackage
 , fetchFromGitHub
+, callPackage
+, bash
 , cacert
 , git
 , glibcLocales
@@ -9,6 +11,7 @@
 , iptables
 , makeWrapper
 , procps
+, protobuf
 , python3
 }:
 
@@ -16,9 +19,12 @@ let
   preBuild = ''
     patchShebangs .
 
+    substituteInPlace tools/defs.bzl \
+      --replace "#!/bin/bash" "#!${bash}/bin/bash"
+
     # Tell rules_go to use the Go binary found in the PATH
     sed -E -i \
-      -e 's|go_version\s*=\s*"[^"]+",|go_version = "host",|g' \
+      -e 's|go_version\s*=\s*"[^"]+"|go_version = "host"|g' \
       WORKSPACE
 
     # The gazelle Go tooling needs CA certs
@@ -31,20 +37,37 @@ let
     export GOPATH=
   '';
 
+  # Patch the protoc alias so that it always builds from source.
+  rulesProto = fetchFromGitHub {
+    owner = "bazelbuild";
+    repo = "rules_proto";
+    rev = "f7a30f6f80006b591fa7c437fe5a951eb10bcbcf";
+    sha256 = "10bcw0ir0skk7h33lmqm38n9w4nfs24mwajnngkbs6jb5wsvkqv8";
+    extraPostFetch = ''
+      sed -i 's|name = "protoc"|name = "_protoc_original"|' $out/proto/private/BUILD.release
+      cat <<EOF >>$out/proto/private/BUILD.release
+      alias(name = "protoc", actual = "@com_github_protocolbuffers_protobuf//:protoc", visibility = ["//visibility:public"])
+      EOF
+    '';
+  };
+
 in buildBazelPackage rec {
   name = "gvisor-${version}";
-  version = "2019-11-14";
+  version = "20210518.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo  = "gvisor";
-    rev   = "release-20191114.0";
-    sha256 = "0kyixjjlws9iz2r2srgpdd4rrq94vpxkmh2rmmzxd9mcqy2i9bg1";
+    rev   = "release-${version}";
+    sha256 = "15a6mlclnyfc9mx3bjksnnf4vla0xh0rv9kxdp34la4gw3c4hksn";
   };
 
   nativeBuildInputs = [ git glibcLocales go makeWrapper python3 ];
 
   bazelTarget = "//runsc:runsc";
+  bazelFlags = [
+    "--override_repository=rules_proto=${rulesProto}"
+  ];
 
   # gvisor uses the Starlark implementation of rules_cc, not the built-in one,
   # so we shouldn't delete it from our dependencies.
@@ -76,14 +99,14 @@ in buildBazelPackage rec {
       rm -f "$bazelOut"/java.log "$bazelOut"/java.log.*
     '';
 
-    sha256 = "0fhmlq0d2317gwhma2mz1anb69j4chybk90j71j88wpgw1hxbk34";
+    sha256 = "13pahppm431m198v5bffrzq5iw8m79riplbfqp0afh384ln669hb";
   };
 
   buildAttrs = {
     inherit preBuild;
 
     installPhase = ''
-      install -Dm755 bazel-bin/runsc/*_pure_stripped/runsc $out/bin/runsc
+      install -Dm755 bazel-out/*/bin/runsc/runsc_/runsc $out/bin/runsc
 
       # Needed for the 'runsc do' subcomand
       wrapProgram $out/bin/runsc \
diff --git a/nixpkgs/pkgs/applications/virtualization/ignite/default.nix b/nixpkgs/pkgs/applications/virtualization/ignite/default.nix
new file mode 100644
index 000000000000..5439ad57b1a3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/ignite/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, cni-plugins
+, buildGoModule
+, firecracker
+, containerd
+, runc
+, makeWrapper
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec{
+  pname = "ignite";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "weaveworks";
+    repo = "ignite";
+    rev = "v${version}";
+    sha256 = "sha256-rjCsZ12DHcSw5GZu6jGTtqCPOZDSbYoMplkqvspbvO8=";
+    leaveDotGit = true;
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  postPatch = ''
+    # ignite tries to run cni-plugins programs from /opt/cni/bin
+    substituteInPlace pkg/constants/dependencies.go \
+      --replace "/opt/cni/bin/loopback" ${cni-plugins}/bin/loopback \
+      --replace "/opt/cni/bin/bridge" ${cni-plugins}/bin/bridge
+
+    # ignite tries to run cni-plugins programs from /opt/cni/bin
+    substituteInPlace pkg/network/cni/cni.go \
+      --replace "/opt/cni/bin" ${cni-plugins}/bin
+
+    # fetchgit doesn't fetch tags from git repository so it's necessary to force IGNITE_GIT_VERSION to be ${version}
+    # also forcing git state to be clean because if it's dirty ignite will try to fetch the image weaveworks/ignite:dev
+    # which is not in docker.io, we want it to fetch the image weaveworks/ignite:v${version}
+    substituteInPlace hack/ldflags.sh \
+      --replace '$(git describe --tags --abbrev=14 "''${IGNITE_GIT_COMMIT}^{commit}" 2>/dev/null)' "v${version}" \
+      --replace 'IGNITE_GIT_TREE_STATE="dirty"' 'IGNITE_GIT_TREE_STATE="clean"'
+  '';
+
+  nativeBuildInputs = [
+    git
+    makeWrapper
+  ];
+
+  buildInputs = [
+    firecracker
+  ];
+
+  preBuild = ''
+    patchShebangs ./hack/ldflags.sh
+    export buildFlagsArray+=("-ldflags=$(./hack/ldflags.sh)")
+  '';
+
+  postInstall = ''
+    for prog in hack ignite ignited ignite-spawn; do
+        wrapProgram "$out/bin/$prog" --prefix PATH : ${lib.makeBinPath [ cni-plugins firecracker containerd runc ]}
+    done
+  '';
+
+  meta = with lib; {
+    description = "Ignite a Firecracker microVM";
+    homepage = "https://github.com/weaveworks/ignite";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tfmoraes ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix b/nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix
new file mode 100644
index 000000000000..c985632b9ebc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix
@@ -0,0 +1,32 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "imgcrypt";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "containerd";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "177fs3p2xzwjsffcxqqllx6wi6ghfyqbvfgn95v3q7a2993yqk4k";
+  };
+
+  buildFlagsArray = [
+    "-ldflags=-X github.com/containerd/containerd/version.Version=${version}"
+  ];
+
+  vendorSha256 = null;
+  subPackages = [ "cmd/ctd-decoder" "cmd/ctr" ];
+
+  postFixup = ''
+    mv $out/bin/ctr $out/bin/ctr-enc
+  '';
+
+  meta = with lib; {
+    description = "Image encryption library and command line tool";
+    homepage = "https://github.com/containerd/imgcrypt";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mikroskeem ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
index e56293dcc646..e74799574443 100644
--- a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
+{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook, fetchpatch,
   fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libtirpc, rpcsvc-proto,
   libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
   pkg-config, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute2, dbus, systemd, which,
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "open-vm-tools";
-  version = "11.2.0";
+  version = "11.2.5";
 
   src = fetchFromGitHub {
     owner  = "vmware";
     repo   = "open-vm-tools";
     rev    = "stable-${version}";
-    sha256 = "125y3zdhj353dmmjmssdaib2zp1jg5aiqmvpgkrzhnh5nx2icfv6";
+    sha256 = "sha256-Jv+NSKw/+l+b4lfVGgCZFlcTScO/WAO/d7DtI0FAEV4=";
   };
 
   sourceRoot = "${src.name}/open-vm-tools";
@@ -23,6 +23,18 @@ stdenv.mkDerivation rec {
   buildInputs = [ fuse glib icu libdnet libmspack libtirpc openssl pam procps rpcsvc-proto xercesc ]
       ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
 
+  patches = [
+    # Fix building with glib 2.68. Remove after next release.
+    # We drop AUTHORS due to conflicts when applying.
+    # https://github.com/vmware/open-vm-tools/pull/505
+    (fetchpatch {
+      url = "https://github.com/vmware/open-vm-tools/commit/82931a1bcb39d5132910c7fb2ddc086c51d06662.patch";
+      stripLen = 1;
+      excludes = [ "AUTHORS" ];
+      sha256 = "0yz5hnngr5vd4416hvmh8734a9vxa18d2xd37kl7if0p9vik6zlg";
+    })
+  ];
+
   postPatch = ''
      # Build bugfix for 10.1.0, stolen from Arch PKGBUILD
      mkdir -p common-agent/etc/config
diff --git a/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix b/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
index de3d944bacb1..2a6d2a20c44e 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman-compose/default.nix
@@ -1,12 +1,19 @@
-{ lib, buildPythonApplication, fetchPypi, pyyaml }:
+{ lib, buildPythonApplication, fetchFromGitHub, pyyaml }:
 
 buildPythonApplication rec {
-  version = "0.1.5";
+  version = "0.2.0pre-2021-05-18";
   pname = "podman-compose";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1sgbc889zq127qhxa9frhswa1mid19fs5qnyzfihx648y5i968pv";
+  # "This project is still under development." -- README.md
+  #
+  # As of May 2021, the latest release (0.1.5) has fewer than half of all
+  # commits. This project seems to have no release management, so the last
+  # commit is the best one until proven otherwise.
+  src = fetchFromGitHub {
+    repo = "podman-compose";
+    owner = "containers";
+    rev = "62d2024feecf312e9591cc145f49cee9c70ab4fe";
+    sha256 = "17992imkvi6129wvajsp0iz5iicfmh53i20qy2mzz17kcz30r2pp";
   };
 
   propagatedBuildInputs = [ pyyaml ];
diff --git a/nixpkgs/pkgs/applications/virtualization/podman/default.nix b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
index c8b8467def5c..10a6d726aef8 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
@@ -69,13 +69,26 @@ buildGoModule rec {
     installShellCompletion --zsh completions/zsh/*
     MANDIR=$man/share/man make install.man-nobuild
   '' + lib.optionalString stdenv.isLinux ''
+    install -Dm644 cni/87-podman-bridge.conflist -t $out/etc/cni/net.d
     install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d
     install -Dm644 contrib/systemd/system/podman.{socket,service} -t $out/lib/systemd/system
   '' + ''
     runHook postInstall
   '';
 
-  passthru.tests = { inherit (nixosTests) podman; };
+  postFixup = lib.optionalString stdenv.isLinux ''
+    RPATH=$(patchelf --print-rpath $out/bin/podman)
+    patchelf --set-rpath "${lib.makeLibraryPath [ systemd ]}":$RPATH $out/bin/podman
+  '';
+
+  passthru.tests = {
+    inherit (nixosTests) podman;
+    # related modules
+    inherit (nixosTests)
+      podman-tls-ghostunnel
+      podman-dnsname
+      ;
+  };
 
   meta = with lib; {
     homepage = "https://podman.io/";
diff --git a/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix b/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
index ae163583e699..c9ec18593dff 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman/wrapper.nix
@@ -12,6 +12,7 @@
 , util-linux # nsenter
 , cni-plugins # not added to path
 , iptables
+, iproute2
 }:
 
 let
@@ -25,6 +26,7 @@ let
     fuse-overlayfs
     util-linux
     iptables
+    iproute2
   ] ++ extraPackages);
 
 in runCommand podman.name {
@@ -48,6 +50,7 @@ in runCommand podman.name {
   ln -s ${podman.man} $man
 
   mkdir -p $out/bin
+  ln -s ${podman-unwrapped}/etc $out/etc
   ln -s ${podman-unwrapped}/lib $out/lib
   ln -s ${podman-unwrapped}/share $out/share
   makeWrapper ${podman-unwrapped}/bin/podman $out/bin/podman \
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
index 74c3f0e729db..7fd01a8ffa95 100644
--- a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, python, zlib, pkg-config, glib
-, perl, pixman, vde2, alsaLib, texinfo, flex
+, perl, pixman, vde2, alsa-lib, texinfo, flex
 , bison, lzo, snappy, libaio, gnutls, nettle, curl, ninja, meson
 , makeWrapper, autoPatchelfHook
 , attr, libcap, libcap_ng
@@ -17,6 +17,7 @@
 , usbredirSupport ? spiceSupport, usbredir
 , xenSupport ? false, xen
 , cephSupport ? false, ceph
+, glusterfsSupport ? false, glusterfs, libuuid
 , openGLSupport ? sdlSupport, mesa, epoxy, libdrm
 , virglSupport ? openGLSupport, virglrenderer
 , libiscsiSupport ? true, libiscsi
@@ -39,7 +40,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "5.2.0";
+  version = "6.0.0";
   pname = "qemu"
     + lib.optionalString xenSupport "-xen"
     + lib.optionalString hostCpuOnly "-host-cpu-only"
@@ -47,7 +48,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url= "https://download.qemu.org/qemu-${version}.tar.xz";
-    sha256 = "1g0pvx4qbirpcn9mni704y03n3lvkmw2c0rbcwvydyr8ns4xh66b";
+    sha256 = "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47";
   };
 
   nativeBuildInputs = [ python python.pkgs.sphinx pkg-config flex bison meson ninja ]
@@ -69,9 +70,10 @@ stdenv.mkDerivation rec {
     ++ optionals smartcardSupport [ libcacard ]
     ++ optionals spiceSupport [ spice-protocol spice ]
     ++ optionals usbredirSupport [ usbredir ]
-    ++ optionals stdenv.isLinux [ alsaLib libaio libcap_ng libcap attr ]
+    ++ optionals stdenv.isLinux [ alsa-lib libaio libcap_ng libcap attr ]
     ++ optionals xenSupport [ xen ]
     ++ optionals cephSupport [ ceph ]
+    ++ optionals glusterfsSupport [ glusterfs libuuid ]
     ++ optionals openGLSupport [ mesa epoxy libdrm ]
     ++ optionals virglSupport [ virglrenderer ]
     ++ optionals libiscsiSupport [ libiscsi ]
@@ -84,126 +86,6 @@ stdenv.mkDerivation rec {
   patches = [
     ./fix-qemu-ga.patch
     ./9p-ignore-noatime.patch
-    (fetchpatch {
-      name = "CVE-2020-27821.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/memory-clamp-cached-translation-if-points-to-MMIO-region-CVE-2020-27821.patch";
-      sha256 = "0sj0kr0g6jalygr5mb9i17fgr491jzaxvk3dvala0268940s01x9";
-    })
-    (fetchpatch {
-      name = "CVE-2020-20221.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/arm_gic-fix-interrupt-ID-in-GICD_SGIR-CVE-2021-20221.patch";
-      sha256 = "1iyvcw87hzlc57fg5l87vddqmch8iw2yghk0s125hk5shn1bygjq";
-    })
-    (fetchpatch {
-      name = "CVE-2020-20181.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/9pfs-Fully-restart-unreclaim-loop-CVE-2021-20181.patch";
-      sha256 = "149ifiazj6rn4d4mv2c7lcayq744fijsv5abxlb8bhbkj99wd64f";
-    })
-    (fetchpatch {
-      name = "CVE-2020-35517.part-1.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-extract-lo_do_open-from-lo_open.patch";
-      sha256 = "0j4waaz6q54by4a7vd5m8s2n8y0an9hqf0ndycxsy03g4ksm669d";
-    })
-    (fetchpatch {
-      name = "CVE-2020-35517.part-2.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-optionally-return-inode-pointer-from-lo_do_lookup.patch";
-      sha256 = "08bag890r6dx2rhnq58gyvsxvzwqgvn83pjlg95b5ic0z6gyjnsg";
-    })
-    (fetchpatch {
-      name = "CVE-2020-35517.part-3.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-prevent-opening-of-special-files-CVE-2020-35517.patch";
-      sha256 = "0ziy6638zbkn037l29ywirvgymbqq66l5rngg8iwyky67acilv94";
-    })
-    (fetchpatch {
-      name = "CVE-2021-20263.part-1.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-save-error-code-early-at-the-failure-callsite.patch";
-      sha256 = "15rwb15yjpclrqaxkhx76npr8zlfm9mj4jb19czg093is2cn4rys";
-    })
-    (fetchpatch {
-      name = "CVE-2021-20263.part-2.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-drop-remapped-security.capability-xattr-as-needed-CVE-2021-20263.patch";
-      sha256 = "06ylz80ilg30wlskd4dsjx677fp5qr8cranwlakvjhr88b630xw0";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-1.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-introduce.patch";
-      sha256 = "0hcpf00vqpg9rc0wl8cry905w04614843aqifybyv15wbv190gpz";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-2.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-cadence_gem.patch";
-      sha256 = "12mjnrvs6p4g5frzqb08k4h86hphdqlka91fcma2a3m4ap98nrxy";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-3.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-dp8393x.patch";
-      sha256 = "02z6q0578fj55phjlg2larrsx3psch2ixzy470yf57jl3jq1dy6k";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-4.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-e1000.patch";
-      sha256 = "0zzbiz8i9js524mcdi739c7hrsmn82gnafrygi0xrd5sqf1hp08z";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-5.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-lan9118.patch";
-      sha256 = "1f44v5znd9s7l7wgc71nbg8jw1bjqiga4wkz7d7cpnkv3l7b9kjj";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-6.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-msf2.patch";
-      sha256 = "04n1rzn6gfxdalp34903ysdhlvxqkfndnqayjj3iv1k27i5pcidn";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-7.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-pcnet.patch";
-      sha256 = "1p9ls6f8r6hxprj8ha6278fydcxj3av29p1hvszxmabazml2g7l2";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-8.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-rtl8139.patch";
-      sha256 = "0lms1zn49kpwblkp54widjjy7fwyhdh1x832l1jvds79l2nm6i04";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-9.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-sungem.patch";
-      sha256 = "1mkzyrgsp9ml9yqzjxdfqnwjr7n0fd8vxby4yp4ksrskyni8y0p4";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3416.part-10.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-tx_pkt-iov.patch";
-      sha256 = "1pwqq8yw06y3p6hah3dgjhsqzk802wbn7zyajla1zwdfpic63jss";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3409.part-1.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-transfer-any-data-when-command-time-out.patch";
-      sha256 = "0wf1yhb9mqpfgh9rv0hff0v1sw3zl2vsfgjrby4r8jvxdfjrxj8s";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3409.part-2.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-write-to-SDHC_SYSAD-register-when-transfer-is-in-progress.patch";
-      sha256 = "1dd405dsdc7fbp68yf6f32js1azsv3n595c6nbxh28kfh9lspx4v";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3409.part-3.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/correctly-set-the-controller-status-for-ADMA.patch";
-      sha256 = "08jk51pfrbn1zfymahgllrzivajh2v2qx0868rv9zmgi0jldbky6";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3409.part-4.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/limit-block-size-only-when-SDHC_BLKSIZE-register-is-writable.patch";
-      sha256 = "1valfhw3l83br1cny6n4kmrv0f416hl625mggayqfz4prsknyhh7";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3409.part-5.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/reset-the-data-pointer-of-s-fifo_buffer-when-a-different-block-size-is-programmed.patch";
-      sha256 = "01p5qrr00rh3mlwrp3qq56h7yhqv0w7pw2cw035nxw3mnap03v31";
-    })
-    (fetchpatch {
-      name = "CVE-2021-3392.patch";
-      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/mptsas-remove-unused-MPTSASState.pending-CVE-2021-3392.patch";
-      sha256 = "0n7dn2p102c21mf3ncqrnks0wl5kas6yspafbn8jd03ignjgc4hd";
-    })
   ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch
     ++ optionals stdenv.hostPlatform.isMusl [
     (fetchpatch {
@@ -221,10 +103,17 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  # Otherwise tries to ensure /var/run exists.
   postPatch = ''
+    # Otherwise tries to ensure /var/run exists.
     sed -i "/install_subdir('run', install_dir: get_option('localstatedir'))/d" \
         qga/meson.build
+
+    # TODO: On aarch64-darwin, we automatically codesign everything, but qemu
+    # needs specific entitlements and does its own signing. This codesign
+    # command fails, but we have no fix at the moment, so this disables it.
+    # This means `-accel hvf` is broken for now, on aarch64-darwin only.
+    substituteInPlace meson.build \
+      --replace 'if exe_sign' 'if false'
   '';
 
   preConfigure = ''
@@ -234,6 +123,8 @@ stdenv.mkDerivation rec {
     patchShebangs .
     # avoid conflicts with libc++ include for <version>
     mv VERSION QEMU_VERSION
+    substituteInPlace configure \
+      --replace '$source_path/VERSION' '$source_path/QEMU_VERSION'
     substituteInPlace meson.build \
       --replace "'VERSION'" "'QEMU_VERSION'"
   '' + optionalString stdenv.hostPlatform.isMusl ''
@@ -260,6 +151,7 @@ stdenv.mkDerivation rec {
     ++ optional gtkSupport "--enable-gtk"
     ++ optional xenSupport "--enable-xen"
     ++ optional cephSupport "--enable-rbd"
+    ++ optional glusterfsSupport "--enable-glusterfs"
     ++ optional openGLSupport "--enable-opengl"
     ++ optional virglSupport "--enable-virglrenderer"
     ++ optional tpmSupport "--enable-tpm"
@@ -304,7 +196,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.qemu.org/";
     description = "A generic and open source machine emulator and virtualizer";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ eelco ];
-    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ eelco qyliss ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/railcar/default.nix b/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
index 1a238bb475d2..3c7dc0a7d24e 100644
--- a/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   # Submitted upstream https://github.com/oracle/railcar/pull/44
   cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "10qxkxpdprl2rcgy52s3q5gyg3i75qmx68rpl7cx1bgjzppfn9c3";
+  cargoSha256 = "1zsch6gpbw96j5wa68ksbk4x6nbsl7dbvdhdprljpcyrwwkhz47x";
 
   buildInputs = [ libseccomp ];
 
diff --git a/nixpkgs/pkgs/applications/virtualization/runc/default.nix b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
index 152cbf6199b8..795971a74920 100644
--- a/nixpkgs/pkgs/applications/virtualization/runc/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
@@ -16,13 +16,13 @@
 
 buildGoPackage rec {
   pname = "runc";
-  version = "1.0.0-rc93";
+  version = "1.0.0-rc95";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    sha256 = "008d5wkznic80n5q1vwx727qn5ifalc7cydq68hc1gk9wrhna4v4";
+    sha256 = "sha256-q4sXcvJO9gyo7m0vlaMrwh7ZZHYa58FJy3GatWndS6M=";
   };
 
   goPackagePath = "github.com/opencontainers/runc";
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/default.nix b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
index fe66df0c6d98..2610e1f0fc6a 100644
--- a/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
@@ -15,11 +15,11 @@ with lib;
 
 buildGoPackage rec {
   pname = "singularity";
-  version = "3.7.3";
+  version = "3.7.4";
 
   src = fetchurl {
     url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
-    sha256 = "sha256-ZmfriHXStm1zUE9AyVa0KxNRdE9IjRZCBDdiFdiF2lw=";
+    sha256 = "sha256-wmY2movydH9E4HWYWMP8OyMluXWogYsmaPC5exJNAWQ=";
   };
 
   goPackagePath = "github.com/sylabs/singularity";
diff --git a/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix b/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix
index 67ac8119fd54..2b27e3a7875a 100644
--- a/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, pkg-config, alsaLib, spice-protocol, glib,
+{lib, stdenv, fetchurl, pkg-config, alsa-lib, spice-protocol, glib,
  libpciaccess, libxcb, libXrandr, libXinerama, libXfixes, dbus, libdrm,
  systemd}:
 stdenv.mkDerivation rec {
@@ -8,11 +8,15 @@ stdenv.mkDerivation rec {
     url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.bz2";
     sha256 = "0n8jlc1pv6mkry161y656b1nk9hhhminjq6nymzmmyjl7k95ymzx";
   };
+
+  # FIXME: May no longer be needed with spice-vdagent versions over 0.21.0
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
   postPatch = ''
     substituteInPlace data/spice-vdagent.desktop --replace /usr $out
   '';
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib spice-protocol glib libdrm
+  buildInputs = [ alsa-lib spice-protocol glib libdrm
                   libpciaccess libxcb libXrandr libXinerama libXfixes
                   dbus systemd ] ;
   meta = {
diff --git a/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix b/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
index 11ddaff8d3be..1d5044cd213d 100644
--- a/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
@@ -1,21 +1,22 @@
 { lib, fetchurl, python3Packages, intltool, file
 , wrapGAppsHook, gtk-vnc, vte, avahi, dconf
 , gobject-introspection, libvirt-glib, system-libvirt
-, gsettings-desktop-schemas, glib, libosinfo, gnome3
+, gsettings-desktop-schemas, libosinfo, gnome
 , gtksourceview4, docutils
 , spiceSupport ? true, spice-gtk ? null
 , cpio, e2fsprogs, findutils, gzip
+, cdrtools
 }:
 
 with lib;
 
 python3Packages.buildPythonApplication rec {
   pname = "virt-manager";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchurl {
-    url = "http://virt-manager.org/download/sources/virt-manager/${pname}-${version}.tar.gz";
-    sha256 = "0al34lxlywqnj98hdm72a38zk8ns91wkqgrc3h1mhv1kikd8pjfc";
+    url = "https://releases.pagure.org/virt-manager/${pname}-${version}.tar.gz";
+    sha256 = "11kvpzcmyir91qz0dsnk7748jbb4wr8mrc744w117qc91pcy6vrb";
   };
 
   nativeBuildInputs = [
@@ -26,15 +27,14 @@ python3Packages.buildPythonApplication rec {
 
   buildInputs = [
     wrapGAppsHook
-    libvirt-glib vte dconf gtk-vnc gnome3.adwaita-icon-theme avahi
+    libvirt-glib vte dconf gtk-vnc gnome.adwaita-icon-theme avahi
     gsettings-desktop-schemas libosinfo gtksourceview4
     gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
   ] ++ optional spiceSupport spice-gtk;
 
-  propagatedBuildInputs = with python3Packages;
-    [
-      pygobject3 ipaddress libvirt libxml2 requests
-    ];
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3 ipaddress libvirt libxml2 requests cdrtools
+  ];
 
   patchPhase = ''
     sed -i 's|/usr/share/libvirt/cpu_map.xml|${system-libvirt}/share/libvirt/cpu_map.xml|g' virtinst/capabilities.py
@@ -53,8 +53,21 @@ python3Packages.buildPythonApplication rec {
     gappsWrapperArgs+=(--prefix PATH : "${makeBinPath [ cpio e2fsprogs file findutils gzip ]}")
   '';
 
-  # Failed tests
-  doCheck = false;
+  checkInputs = with python3Packages; [ cpio cdrtools pytestCheckHook ];
+
+  disabledTestPaths = [
+    "tests/test_cli.py"
+    "tests/test_disk.py"
+    "tests/test_checkprops.py"
+  ]; # Error logs: https://gist.github.com/superherointj/fee040872beaafaaa19b8bf8f3ff0be5
+
+  preCheck = ''
+    export HOME=.
+  ''; # <- Required for "tests/test_urldetect.py".
+
+  postCheck = ''
+    $out/bin/virt-manager --version | grep -Fw ${version} > /dev/null
+  '';
 
   meta = with lib; {
     homepage = "http://virt-manager.org";
diff --git a/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix b/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
index 1633c8d66f3a..840ada805d75 100644
--- a/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "virt-manager-qt";
-  version = "0.71.95";
+  version = "0.72.97";
 
   src = fetchFromGitHub {
     owner  = "F1ash";
     repo   = "qt-virt-manager";
     rev    = version;
-    sha256 = "1s8753bzsjyixpv1c2l9d1xjcn8i47k45qj7pr50prc64ldf5f47";
+    sha256 = "0b2bx7ah35glcsiv186sc9cqdrkhg1vs9jz036k9byk61np0cb1i";
   };
 
   cmakeFlags = [
@@ -22,10 +22,9 @@ mkDerivation rec {
 
   patches = [
     (fetchpatch {
-      # Maintainer note: Check whether this patch is still needed when a new version is released
-      name = "krdc-variable-name-changes.patch";
-      url = "https://github.com/fadenb/qt-virt-manager/commit/4640f5f64534ed7c8a1ecc6851f1c7503988de6d.patch";
-      sha256 = "1chl58nra1mj96n8jmnjbsyr6vlwkhn38afhwqsbr0bgyg23781v";
+      # drop with next update
+      url = "https://github.com/F1ash/qt-virt-manager/commit/0d338b037ef58c376d468c1cd4521a34ea181edd.patch";
+      sha256 = "1wjqyc5wsnxfwwjzgqjr9hcqhd867amwhjd712qyvpvz8x7p2s24";
     })
   ];
 
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
index fe19f1f4a3e0..0bc3af364e6d 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -2,7 +2,7 @@
 , libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL
 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
 , qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
-, alsaLib, curl, libvpx, nettools, dbus, substituteAll
+, alsa-lib, curl, libvpx, nettools, dbus, substituteAll
 # If open-watcom-bin is not passed, VirtualBox will fall back to use
 # the shipped alternative sources (assembly).
 , open-watcom-bin ? null
@@ -23,7 +23,7 @@ let
   buildType = "release";
   # Use maintainers/scripts/update.nix to update the version and all related hashes or
   # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
-  version = "6.1.18";
+  version = "6.1.22";
 
   iasl' = iasl.overrideAttrs (old: rec {
     inherit (old) pname;
@@ -40,7 +40,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "108d42b9b391b7a332a33df1662cf7b0e9d9a80f3079d16288d8b9487f427d40";
+    sha256 = "99816d2a15205d49362a31e8ffeb8262d2fa0678c751dfd0a7c43b2faca8be49";
   };
 
   outputs = [ "out" "modsrc" ];
@@ -53,7 +53,7 @@ in stdenv.mkDerivation {
 
   buildInputs =
     [ iasl' dev86 libxslt libxml2 xorgproto libX11 libXext libXcursor libIDL
-      libcap glib lvm2 alsaLib curl libvpx pam makeself perl
+      libcap glib lvm2 alsa-lib curl libvpx pam makeself perl
       libXmu libpng libopus python ]
     ++ optional javaBindings jdk
     ++ optional pythonBindings python # Python is needed even when not building bindings
@@ -82,7 +82,7 @@ in stdenv.mkDerivation {
       s@"libdbus-1\.so\.3"@"${dbus.lib}/lib/libdbus-1.so.3"@g'
 
     grep 'libasound\.so\.2'     src include -rI --files-with-match | xargs sed -i -e '
-      s@"libasound\.so\.2"@"${alsaLib.out}/lib/libasound.so.2"@g'
+      s@"libasound\.so\.2"@"${alsa-lib.out}/lib/libasound.so.2"@g'
 
     export USER=nix
     set +x
@@ -103,8 +103,6 @@ in stdenv.mkDerivation {
       qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}";
     })
   ++ [
-    # NOTE: the patch for linux 5.11 can be removed when the next version of VirtualBox is released
-    ./linux-5-11.patch
     ./qtx11extras.patch
   ];
 
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
index 4aa3ed1fd493..8c64337c6cb0 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -12,7 +12,7 @@ fetchurl rec {
     # Manually sha256sum the extensionPack file, must be hex!
     # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
     # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
-    let value = "d609e35accff5c0819ca9be47de302abf094dc1b6d4c54da8fdda639671f267e";
+    let value = "6d33d9cc1c5a8f8a2a70e5aaaa778a341322d2ba7eb34f7de420fb5f312b9e87";
     in assert (builtins.stringLength value) == 64; value;
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index c35ebdb81d08..218d4983ca55 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "904432eb331d7ae517afaa4e4304e6492b7947b46ecb8267de7ef792c4921b4c";
+    sha256 = "bffc316a7b8d5ed56d830e9f6aef02b4e5ffc28674032142e96ffbedd905f8c9";
   };
 
   KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch
deleted file mode 100644
index 66b70bf0d97e..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/linux-5-11.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
-index 7033b45..c8178a6 100644
---- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
-+++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
-@@ -39,6 +39,7 @@
- #endif
- #include <linux/netdevice.h>
- #include <linux/etherdevice.h>
-+#include <linux/ethtool.h>
- #include <linux/rtnetlink.h>
- #include <linux/miscdevice.h>
- #include <linux/inetdevice.h>
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch b/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch
deleted file mode 100644
index 67b7ac777b5d..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From bd71555985efc423b1a119b6a3177de855763453 Mon Sep 17 00:00:00 2001
-From: Fabio Fantoni <fabio.fantoni@m2r.biz>
-Date: Tue, 20 Jan 2015 11:26:30 +0100
-Subject: [PATCH] libxl: Spice image compression setting support for upstream
- qemu
-
-Usage:
-spice_image_compression=[auto_glz|auto_lz|quic|glz|lz|off]
-
-Specifies what image compression is to be used by spice (if given),
-otherwise the qemu default will be used.
-
-Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
-Acked-by: Wei Liu <wei.liu2@citrix.com>
----
- docs/man/xl.cfg.pod.5       |  6 ++++++
- tools/libxl/libxl.h         | 11 +++++++++++
- tools/libxl/libxl_dm.c      |  4 ++++
- tools/libxl/libxl_types.idl |  1 +
- tools/libxl/xl_cmdimpl.c    |  2 ++
- 5 files changed, 24 insertions(+)
-
-diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
-index e2f91fc..0c2cbac 100644
---- a/docs/man/xl.cfg.pod.5
-+++ b/docs/man/xl.cfg.pod.5
-@@ -1427,6 +1427,12 @@ for redirection of up to 4 usb devices from spice client to domU's qemu.
- It requires an usb controller and if not defined it will automatically adds
- an usb2 controller. The default is disabled (0).
- 
-+=item B<spice_image_compression=[auto_glz|auto_lz|quic|glz|lz|off]>
-+
-+Specifies what image compression is to be used by spice (if given), otherwise
-+the qemu default will be used. Please see documentations of your current qemu
-+version for details.
-+
- =back
- 
- =head3 Miscellaneous Emulated Hardware
-diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
-index 0a123f1..b8e0b67 100644
---- a/tools/libxl/libxl.h
-+++ b/tools/libxl/libxl.h
-@@ -528,6 +528,17 @@ typedef struct libxl__ctx libxl_ctx;
- #define LIBXL_HAVE_SPICE_USBREDIREDIRECTION 1
- 
- /*
-+ * LIBXL_HAVE_SPICE_IMAGECOMPRESSION
-+ *
-+ * If defined, then the libxl_spice_info structure will contain a string type
-+ * field: image_compression. This value defines what Spice image compression
-+ * is used.
-+ *
-+ * If this is not defined, the Spice image compression setting support is ignored.
-+ */
-+#define LIBXL_HAVE_SPICE_IMAGECOMPRESSION 1
-+
-+/*
-  * LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS 1
-  *
-  * If this is defined, libxl_domain_create_restore()'s API has changed to
-diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
-index c2b0487..40c8649 100644
---- a/tools/libxl/libxl_dm.c
-+++ b/tools/libxl/libxl_dm.c
-@@ -398,6 +398,10 @@ static char *dm_spice_options(libxl__gc *gc,
-     if (!libxl_defbool_val(spice->clipboard_sharing))
-         opt = libxl__sprintf(gc, "%s,disable-copy-paste", opt);
- 
-+    if (spice->image_compression)
-+        opt = libxl__sprintf(gc, "%s,image-compression=%s", opt,
-+                             spice->image_compression);
-+
-     return opt;
- }
- 
-diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
-index 1214d2e..052ded9 100644
---- a/tools/libxl/libxl_types.idl
-+++ b/tools/libxl/libxl_types.idl
-@@ -241,6 +241,7 @@ libxl_spice_info = Struct("spice_info", [
-     ("vdagent",     libxl_defbool),
-     ("clipboard_sharing", libxl_defbool),
-     ("usbredirection", integer),
-+    ("image_compression", string),
-     ])
- 
- libxl_sdl_info = Struct("sdl_info", [
-diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
-index 0b02a6c..00aa69d 100644
---- a/tools/libxl/xl_cmdimpl.c
-+++ b/tools/libxl/xl_cmdimpl.c
-@@ -1948,6 +1948,8 @@ skip_vfb:
-                             &b_info->u.hvm.spice.clipboard_sharing, 0);
-         if (!xlu_cfg_get_long (config, "spiceusbredirection", &l, 0))
-             b_info->u.hvm.spice.usbredirection = l;
-+        xlu_cfg_replace_string (config, "spice_image_compression",
-+                                &b_info->u.hvm.spice.image_compression, 0);
-         xlu_cfg_get_defbool(config, "nographic", &b_info->u.hvm.nographic, 0);
-         xlu_cfg_get_defbool(config, "gfx_passthru",
-                             &b_info->u.hvm.gfx_passthru, 0);
--- 
-1.9.2
-
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch b/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch
deleted file mode 100644
index acf9cff99251..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 296c7f3284efe655d95a8ae045a5dc1a20d6fff0 Mon Sep 17 00:00:00 2001
-From: Fabio Fantoni <fabio.fantoni@m2r.biz>
-Date: Tue, 20 Jan 2015 11:33:17 +0100
-Subject: [PATCH] libxl: Spice streaming video setting support for upstream
- qemu
-
-Usage:
-spice_streaming_video=[filter|all|off]
-
-Specifies what streaming video setting is to be used by spice (if
-given),
-otherwise the qemu default will be used.
-
-Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
-Acked-by: Wei Liu <wei.liu2@citrix.com>
----
- docs/man/xl.cfg.pod.5       |  5 +++++
- tools/libxl/libxl.h         | 11 +++++++++++
- tools/libxl/libxl_dm.c      |  4 ++++
- tools/libxl/libxl_types.idl |  1 +
- tools/libxl/xl_cmdimpl.c    |  2 ++
- 5 files changed, 23 insertions(+)
-
-diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
-index 0c2cbac..408653f 100644
---- a/docs/man/xl.cfg.pod.5
-+++ b/docs/man/xl.cfg.pod.5
-@@ -1433,6 +1433,11 @@ Specifies what image compression is to be used by spice (if given), otherwise
- the qemu default will be used. Please see documentations of your current qemu
- version for details.
- 
-+=item B<spice_streaming_video=[filter|all|off]>
-+
-+Specifies what streaming video setting is to be used by spice (if given),
-+otherwise the qemu default will be used.
-+
- =back
- 
- =head3 Miscellaneous Emulated Hardware
-diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
-index b8e0b67..c219f59 100644
---- a/tools/libxl/libxl.h
-+++ b/tools/libxl/libxl.h
-@@ -539,6 +539,17 @@ typedef struct libxl__ctx libxl_ctx;
- #define LIBXL_HAVE_SPICE_IMAGECOMPRESSION 1
- 
- /*
-+ * LIBXL_HAVE_SPICE_STREAMINGVIDEO
-+ *
-+ * If defined, then the libxl_spice_info structure will contain a string type
-+ * field: streaming_video. This value defines what Spice streaming video setting
-+ * is used.
-+ *
-+ * If this is not defined, the Spice streaming video setting support is ignored.
-+ */
-+#define LIBXL_HAVE_SPICE_STREAMINGVIDEO 1
-+
-+/*
-  * LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS 1
-  *
-  * If this is defined, libxl_domain_create_restore()'s API has changed to
-diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
-index 40c8649..d8d6f0c 100644
---- a/tools/libxl/libxl_dm.c
-+++ b/tools/libxl/libxl_dm.c
-@@ -402,6 +402,10 @@ static char *dm_spice_options(libxl__gc *gc,
-         opt = libxl__sprintf(gc, "%s,image-compression=%s", opt,
-                              spice->image_compression);
- 
-+    if (spice->streaming_video)
-+        opt = libxl__sprintf(gc, "%s,streaming-video=%s", opt,
-+                             spice->streaming_video);
-+
-     return opt;
- }
- 
-diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
-index 052ded9..02be466 100644
---- a/tools/libxl/libxl_types.idl
-+++ b/tools/libxl/libxl_types.idl
-@@ -242,6 +242,7 @@ libxl_spice_info = Struct("spice_info", [
-     ("clipboard_sharing", libxl_defbool),
-     ("usbredirection", integer),
-     ("image_compression", string),
-+    ("streaming_video", string),
-     ])
- 
- libxl_sdl_info = Struct("sdl_info", [
-diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
-index 00aa69d..b7eac29 100644
---- a/tools/libxl/xl_cmdimpl.c
-+++ b/tools/libxl/xl_cmdimpl.c
-@@ -1950,6 +1950,8 @@ skip_vfb:
-             b_info->u.hvm.spice.usbredirection = l;
-         xlu_cfg_replace_string (config, "spice_image_compression",
-                                 &b_info->u.hvm.spice.image_compression, 0);
-+        xlu_cfg_replace_string (config, "spice_streaming_video",
-+                                &b_info->u.hvm.spice.streaming_video, 0);
-         xlu_cfg_get_defbool(config, "nographic", &b_info->u.hvm.nographic, 0);
-         xlu_cfg_get_defbool(config, "gfx_passthru",
-                             &b_info->u.hvm.gfx_passthru, 0);
--- 
-1.9.2
-
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch b/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch
deleted file mode 100644
index 1771b662bc3a..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From 161212ef02312c0681d2d809c8ff1e1f0ea6f6f9 Mon Sep 17 00:00:00 2001
-From: Fabio Fantoni <fabio.fantoni@m2r.biz>
-Date: Wed, 29 Apr 2015 11:20:28 +0200
-Subject: [PATCH] libxl: Add qxl vga interface support for upstream qemu
-
-Usage:
-vga="qxl"
-
-Qxl vga support many resolutions that not supported by stdvga,
-mainly the 16:9 ones and other high up to 2560x1600.
-With QXL you can get improved performance and smooth video also
-with high resolutions and high quality.
-Require their drivers installed in the domU and spice used
-otherwise act as a simple stdvga.
-
-Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
-Signed-off-by: Zhou Peng <zpengxen@gmail.com>
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
-Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
----
- docs/man/xl.cfg.pod.5       | 10 +++++++++-
- tools/libxl/libxl.h         | 10 ++++++++++
- tools/libxl/libxl_create.c  | 13 +++++++++++++
- tools/libxl/libxl_dm.c      |  8 ++++++++
- tools/libxl/libxl_types.idl |  1 +
- tools/libxl/xl_cmdimpl.c    |  2 ++
- 6 files changed, 43 insertions(+), 1 deletion(-)
-
-diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
-index f936dfc..8e4154f 100644
---- a/docs/man/xl.cfg.pod.5
-+++ b/docs/man/xl.cfg.pod.5
-@@ -1360,6 +1360,9 @@ qemu-xen-traditional device-model, the amount of video RAM is fixed at 4 MB,
- which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen
- device-model, the default and minimum is 8 MB.
- 
-+For B<qxl> vga, the default is both default and minimal 128MB.
-+If B<videoram> is set less than 128MB, an error will be triggered.
-+
- =item B<stdvga=BOOLEAN>
- 
- Select a standard VGA card with VBE (VESA BIOS Extensions) as the
-@@ -1371,9 +1374,14 @@ This option is deprecated, use vga="stdvga" instead.
- 
- =item B<vga="STRING">
- 
--Selects the emulated video card (none|stdvga|cirrus).
-+Selects the emulated video card (none|stdvga|cirrus|qxl).
- The default is cirrus.
- 
-+In general, QXL should work with the Spice remote display protocol
-+for acceleration, and QXL driver is necessary in guest in this case.
-+QXL can also work with the VNC protocol, but it will be like a standard
-+VGA without acceleration.
-+
- =item B<vnc=BOOLEAN>
- 
- Allow access to the display via the VNC protocol.  This enables the
-diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
-index 44bd8e2..efc0617 100644
---- a/tools/libxl/libxl.h
-+++ b/tools/libxl/libxl.h
-@@ -535,6 +535,16 @@ typedef struct libxl__ctx libxl_ctx;
- #define LIBXL_HAVE_DOMINFO_OUTSTANDING_MEMKB 1
- 
- /*
-+ * LIBXL_HAVE_QXL
-+ *
-+ * If defined, then the libxl_vga_interface_type will contain another value:
-+ * "QXL". This value define if qxl vga is supported.
-+ *
-+ * If this is not defined, the qxl vga support is missed.
-+ */
-+#define LIBXL_HAVE_QXL 1
-+
-+/*
-  * LIBXL_HAVE_SPICE_VDAGENT
-  *
-  * If defined, then the libxl_spice_info structure will contain a boolean type:
-diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
-index e5a343f..188f7df 100644
---- a/tools/libxl/libxl_create.c
-+++ b/tools/libxl/libxl_create.c
-@@ -248,6 +248,10 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
-                 if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                     b_info->video_memkb = 0;
-                 break;
-+            case LIBXL_VGA_INTERFACE_TYPE_QXL:
-+                LOG(ERROR,"qemu upstream required for qxl vga");
-+                return ERROR_INVAL;
-+                break;
-             case LIBXL_VGA_INTERFACE_TYPE_STD:
-                 if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                     b_info->video_memkb = 8 * 1024;
-@@ -272,6 +276,15 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
-                 if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                     b_info->video_memkb = 0;
-                 break;
-+            case LIBXL_VGA_INTERFACE_TYPE_QXL:
-+                if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) {
-+                    b_info->video_memkb = (128 * 1024);
-+                } else if (b_info->video_memkb < (128 * 1024)) {
-+                    LOG(ERROR,
-+                        "128 Mib videoram is the minimum for qxl default");
-+                    return ERROR_INVAL;
-+                }
-+                break;
-             case LIBXL_VGA_INTERFACE_TYPE_STD:
-                 if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                     b_info->video_memkb = 16 * 1024;
-diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
-index 30c1578..58c9b99 100644
---- a/tools/libxl/libxl_dm.c
-+++ b/tools/libxl/libxl_dm.c
-@@ -251,6 +251,8 @@ static char ** libxl__build_device_model_args_old(libxl__gc *gc,
-         case LIBXL_VGA_INTERFACE_TYPE_NONE:
-             flexarray_append_pair(dm_args, "-vga", "none");
-             break;
-+        case LIBXL_VGA_INTERFACE_TYPE_QXL:
-+            break;
-         }
- 
-         if (b_info->u.hvm.boot) {
-@@ -625,6 +627,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-             break;
-         case LIBXL_VGA_INTERFACE_TYPE_NONE:
-             break;
-+        case LIBXL_VGA_INTERFACE_TYPE_QXL:
-+            /* QXL have 2 ram regions, ram and vram */
-+            flexarray_append_pair(dm_args, "-device",
-+                GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64,
-+                (b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) );
-+            break;
-         }
- 
-         if (b_info->u.hvm.boot) {
-diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
-index 117b61d..023b21e 100644
---- a/tools/libxl/libxl_types.idl
-+++ b/tools/libxl/libxl_types.idl
-@@ -183,6 +183,7 @@ libxl_vga_interface_type = Enumeration("vga_interface_type", [
-     (1, "CIRRUS"),
-     (2, "STD"),
-     (3, "NONE"),
-+    (4, "QXL"),
-     ], init_val = "LIBXL_VGA_INTERFACE_TYPE_CIRRUS")
- 
- libxl_vendor_device = Enumeration("vendor_device", [
-diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
-index 648ca08..526a1f6 100644
---- a/tools/libxl/xl_cmdimpl.c
-+++ b/tools/libxl/xl_cmdimpl.c
-@@ -2115,6 +2115,8 @@ skip_vfb:
-                 b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
-             } else if (!strcmp(buf, "none")) {
-                 b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
-+            } else if (!strcmp(buf, "qxl")) {
-+                b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL;
-             } else {
-                 fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
-                 exit(1);
--- 
-1.9.2
-
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix b/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix
index bc9003e128a4..cb91d8505633 100644
--- a/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix
+++ b/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix
@@ -10,7 +10,7 @@
 
 # qemu
 , udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir
-, alsaLib, glib, python2
+, alsa-lib, glib, python2
 , ... } @ args:
 
 assert withInternalSeabios -> !withSeabios;
@@ -33,7 +33,7 @@ let
 
   qemuDeps = [
     udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir
-    alsaLib glib python2
+    alsa-lib glib python2
   ];
 in
 
@@ -160,6 +160,9 @@ callPackage (import ./generic.nix (rec {
     "-Wno-error=address-of-packed-member"
     "-Wno-error=format-overflow"
     "-Wno-error=absolute-value"
+    # Fix build with GCC 10
+    "-Wno-error=enum-conversion"
+    "-Wno-error=zero-length-bounds"
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch b/nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch
deleted file mode 100644
index aa4fd494082d..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/xen/acpica-utils-20180427.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 858dbaaeda33b05c1ac80aea0ba9a03924e09005 Mon Sep 17 00:00:00 2001
-From: =?utf8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
-Date: Wed, 9 May 2018 11:08:12 +0100
-Subject: [PATCH] libacpi: fixes for iasl >= 20180427
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf8
-Content-Transfer-Encoding: 8bit
-
-New versions of iasl have introduced improved C file generation, as
-reported in the changelog:
-
-iASL: Enhanced the -tc option (which creates an AML hex file in C,
-suitable for import into a firmware project):
-  1) Create a unique name for the table, to simplify use of multiple
-SSDTs.
-  2) Add a protection #ifdef in the file, similar to a .h header file.
-
-The net effect of that on generated files is:
-
--unsigned char AmlCode[] =
-+#ifndef __SSDT_S4_HEX__
-+#define __SSDT_S4_HEX__
-+
-+unsigned char ssdt_s4_aml_code[] =
-
-The above example is from ssdt_s4.asl.
-
-Fix the build with newer versions of iasl by stripping the '_aml_code'
-suffix from the variable name on generated files.
-
-Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
-Reviewed-by: Wei Liu <wei.liu2@citrix.com>
-Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Release-acked-by: Juergen Gross <jgross@suse.com>
----
- tools/libacpi/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
-index a47a658a25..c17f3924cc 100644
---- a/tools/libacpi/Makefile
-+++ b/tools/libacpi/Makefile
-@@ -43,7 +43,7 @@ all: $(C_SRC) $(H_SRC)
- 
- $(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl iasl
- 	iasl -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $<
--	sed -e 's/AmlCode/$*/g' $(ACPI_BUILD_DIR)/$*.hex >$@
-+	sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex >$@
- 	rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex)
-  
- $(MK_DSDT): mk_dsdt.c
-@@ -76,7 +76,7 @@ $(ACPI_BUILD_DIR)/dsdt_anycpu_arm.asl: $(MK_DSDT)
- 
- $(C_SRC): $(ACPI_BUILD_DIR)/%.c: iasl $(ACPI_BUILD_DIR)/%.asl
- 	iasl -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $(ACPI_BUILD_DIR)/$*.asl
--	sed -e 's/AmlCode/$*/g' $(ACPI_BUILD_DIR)/$*.hex > $@.$(TMP_SUFFIX)
-+	sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex > $@.$(TMP_SUFFIX)
- 	echo "int $*_len=sizeof($*);" >> $@.$(TMP_SUFFIX)
- 	mv -f $@.$(TMP_SUFFIX) $@
- 	rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex)
--- 
-2.11.0
-
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff b/nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff
deleted file mode 100644
index 7ec6ad3aba66..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/xen/qemu-gluster-6-compat.diff
+++ /dev/null
@@ -1,95 +0,0 @@
-diff --git a/block/gluster.c b/block/gluster.c
-index 01b479fbb9..29552e1186 100644
---- a/block/gluster.c
-+++ b/block/gluster.c
-@@ -15,6 +15,10 @@
- #include "qemu/uri.h"
- #include "qemu/error-report.h"
- 
-+#ifdef CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT
-+# define glfs_ftruncate(fd, offset) glfs_ftruncate(fd, offset, NULL, NULL)
-+#endif
-+
- #define GLUSTER_OPT_FILENAME        "filename"
- #define GLUSTER_OPT_VOLUME          "volume"
- #define GLUSTER_OPT_PATH            "path"
-@@ -613,7 +617,11 @@ static void qemu_gluster_complete_aio(void *opaque)
- /*
-  * AIO callback routine called from GlusterFS thread.
-  */
--static void gluster_finish_aiocb(struct glfs_fd *fd, ssize_t ret, void *arg)
-+static void gluster_finish_aiocb(struct glfs_fd *fd, ssize_t ret,
-+#ifdef CONFIG_GLUSTERFS_IOCB_HAS_STAT
-+                                 struct glfs_stat *pre, struct glfs_stat *post,
-+#endif
-+                                 void *arg)
- {
-     GlusterAIOCB *acb = (GlusterAIOCB *)arg;
- 
-diff --git a/configure b/configure
-index 4b808f9d17..89fb27fd0d 100755
---- a/configure
-+++ b/configure
-@@ -301,6 +301,8 @@ glusterfs=""
- glusterfs_xlator_opt="no"
- glusterfs_discard="no"
- glusterfs_zerofill="no"
-+glusterfs_ftruncate_has_stat="no"
-+glusterfs_iocb_has_stat="no"
- archipelago="no"
- gtk=""
- gtkabi=""
-@@ -3444,6 +3446,38 @@ if test "$glusterfs" != "no" ; then
-     if $pkg_config --atleast-version=6 glusterfs-api; then
-       glusterfs_zerofill="yes"
-     fi
-+    cat > $TMPC << EOF
-+#include <glusterfs/api/glfs.h>
-+
-+int
-+main(void)
-+{
-+	/* new glfs_ftruncate() passes two additional args */
-+	return glfs_ftruncate(NULL, 0, NULL, NULL);
-+}
-+EOF
-+    if compile_prog "$glusterfs_cflags" "$glusterfs_libs" ; then
-+      glusterfs_ftruncate_has_stat="yes"
-+    fi
-+    cat > $TMPC << EOF
-+#include <glusterfs/api/glfs.h>
-+
-+/* new glfs_io_cbk() passes two additional glfs_stat structs */
-+static void
-+glusterfs_iocb(glfs_fd_t *fd, ssize_t ret, struct glfs_stat *prestat, struct glfs_stat *poststat, void *data)
-+{}
-+
-+int
-+main(void)
-+{
-+	glfs_io_cbk iocb = &glusterfs_iocb;
-+	iocb(NULL, 0 , NULL, NULL, NULL);
-+	return 0;
-+}
-+EOF
-+    if compile_prog "$glusterfs_cflags" "$glusterfs_libs" ; then
-+      glusterfs_iocb_has_stat="yes"
-+    fi
-   else
-     if test "$glusterfs" = "yes" ; then
-       feature_not_found "GlusterFS backend support" \
-@@ -5415,6 +5449,14 @@ if test "$archipelago" = "yes" ; then
-   echo "ARCHIPELAGO_LIBS=$archipelago_libs" >> $config_host_mak
- fi
- 
-+if test "$glusterfs_ftruncate_has_stat" = "yes" ; then
-+  echo "CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT=y" >> $config_host_mak
-+fi
-+
-+if test "$glusterfs_iocb_has_stat" = "yes" ; then
-+  echo "CONFIG_GLUSTERFS_IOCB_HAS_STAT=y" >> $config_host_mak
-+fi
-+
- if test "$libssh2" = "yes" ; then
-   echo "CONFIG_LIBSSH2=m" >> $config_host_mak
-   echo "LIBSSH2_CFLAGS=$libssh2_cflags" >> $config_host_mak
diff --git a/nixpkgs/pkgs/applications/window-managers/cage/default.nix b/nixpkgs/pkgs/applications/window-managers/cage/default.nix
index 103be0e53d76..1632ae027c0a 100644
--- a/nixpkgs/pkgs/applications/window-managers/cage/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/cage/default.nix
@@ -8,20 +8,15 @@
 
 stdenv.mkDerivation rec {
   pname = "cage";
-  version = "0.1.2.1";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "Hjdskes";
     repo = "cage";
     rev = "v${version}";
-    sha256 = "1i4rm3dpmk7gkl6hfs6a7vwz76ba7yqcdp63nlrdbnq81m9cy2am";
+    sha256 = "0ixl45g0m8b75gvbjm3gf5qg0yplspgs0xpm2619wn5sygc47sb1";
   };
 
-  postPatch = ''
-    substituteInPlace meson.build --replace \
-      "0.1.2" "${version}"
-  '';
-
   nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix b/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
index 505d1cb1520c..d88bc0cdbdfe 100644
--- a/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/cagebreak/default.nix
@@ -1,54 +1,85 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, ninja, pkg-config, wayland, scdoc, makeWrapper
-, wlroots, wayland-protocols, pixman, libxkbcommon
-, cairo , pango, fontconfig, pandoc, systemd, mesa
-, withXwayland ? true, xwayland
+{ lib
+, stdenv
+, fetchFromGitHub
+, cairo
+, fontconfig
+, libxkbcommon
+, makeWrapper
+, mesa
+, meson
+, ninja
 , nixosTests
+, pango
+, pixman
+, pkg-config
+, scdoc
+, systemd
+, wayland
+, wayland-protocols
+, withXwayland ? true , xwayland
+, wlroots
 }:
 
 stdenv.mkDerivation rec {
   pname = "cagebreak";
-  version = "1.6.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "project-repo";
-    repo = "cagebreak";
+    repo = pname;
     rev = version;
-    hash = "sha256-F7fqDVbJS6pVgmj6C1/l9PAaz5yzcYpaq6oc6a6v/Qk=";
+    hash = "sha256-1IztedN5/I/4TDKHLJ26fSrDsvJ5QAr+cbzS2PQITDE=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+    meson
+    ninja
+    pkg-config
+    scdoc
+    wayland
+  ];
 
   buildInputs = [
-    wlroots wayland wayland-protocols pixman libxkbcommon cairo
-    pango fontconfig pandoc systemd
+    cairo
+    fontconfig
+    libxkbcommon
     mesa # for libEGL headers
+    pango
+    pixman
+    systemd
+    wayland
+    wayland-protocols
+    wlroots
   ];
 
-  outputs = [ "out" "contrib" ];
-
   mesonFlags = [
-    "-Dxwayland=${lib.boolToString withXwayland}"
-    "-Dversion_override=${version}"
     "-Dman-pages=true"
+    "-Dversion_override=${version}"
+    "-Dxwayland=${lib.boolToString withXwayland}"
   ];
 
+  # TODO: investigate why is this happening
+  postPatch = ''
+    sed -i -e 's|<drm_fourcc.h>|<libdrm/drm_fourcc.h>|' *.c
+  '';
+
   postInstall = ''
-    mkdir -p $contrib/share/cagebreak
-    cp $src/examples/config $contrib/share/cagebreak/config
+    install -d $out/share/cagebreak/
+    install -m644 $src/examples/config $out/share/cagebreak/
   '';
 
   postFixup = lib.optionalString withXwayland ''
     wrapProgram $out/bin/cagebreak --prefix PATH : "${xwayland}/bin"
   '';
 
-  passthru.tests.basic = nixosTests.cagebreak;
-
   meta = with lib; {
-    description = "A Wayland tiling compositor inspired by ratpoison";
     homepage = "https://github.com/project-repo/cagebreak";
+    description = "A Wayland tiling compositor inspired by ratpoison";
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ berbiche ];
+    platforms = platforms.linux;
   };
+
+  passthru.tests.basic = nixosTests.cagebreak;
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/cardboard/default.nix b/nixpkgs/pkgs/applications/window-managers/cardboard/default.nix
new file mode 100644
index 000000000000..17ef08af5e82
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/cardboard/default.nix
@@ -0,0 +1,118 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchurl
+, fetchgit
+, ffmpeg
+, libGL
+, libX11
+, libcap
+, libdrm
+, libinput
+, libpng
+, libxcb
+, libxkbcommon
+, mesa
+, meson
+, ninja
+, pandoc
+, pixman
+, pkg-config
+, unzip
+, wayland
+, wayland-protocols
+, xcbutilerrors
+, xcbutilimage
+, xcbutilwm
+}:
+
+let
+  # cereal.wrap
+  cereal-wrap = fetchurl {
+    name = "cereal-1.3.0.tar.gz";
+    url = "https://github.com/USCiLab/cereal/archive/v1.3.0.tar.gz";
+    hash = "sha256-Mp6j4xMLAmwDpKzFDhaOfa/05uZhvGp9/sDXe1cIUdU=";
+  };
+  cereal-wrapdb = fetchurl {
+    name = "cereal-1.3.0-1-wrap.zip";
+    url = "https://wrapdb.mesonbuild.com/v1/projects/cereal/1.3.0/1/get_zip";
+    hash = "sha256-QYck5UT7fPLqtLDb1iOSX4Hnnns48Jj23Ae/LCfLSKY=";
+  };
+
+  # expected.wrap
+  expected-wrap = fetchgit {
+    name = "expected";
+    url = "https://gitlab.com/cardboardwm/expected";
+    rev = "0ee13cb2b058809aa9708c45ca18d494e72a759e";
+    sha256 = "sha256-gYr4/pjuLlr3k6Jcrg2/SzJLtbgyA+ZN2oMHkHXANDo=";
+  };
+
+  # wlroots.wrap
+  wlroots-wrap = fetchgit {
+    name = "wlroots";
+    url = "https://github.com/swaywm/wlroots";
+    rev = "0.12.0";
+    sha256 = "sha256-1rE3D+kQprjcjobc95/mQkUa5y1noY0MdoYJ/SpFQwY=";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "cardboard";
+  version = "0.0.0+unstable=2021-05-10";
+
+  src = fetchFromGitLab {
+    owner = "cardboardwm";
+    repo = pname;
+    rev = "b54758d85164fb19468f5ca52588ebea576cd027";
+    hash = "sha256-Kn5NyQSDyX7/nn2bKZPnsuepkoppi5XIkdu7IDy5r4w=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pandoc
+    pkg-config
+    unzip
+  ];
+  buildInputs = [
+    ffmpeg
+    libGL
+    libX11
+    libcap
+    libdrm
+    libinput
+    libpng
+    libxcb
+    libxkbcommon
+    mesa
+    pixman
+    wayland
+    wayland-protocols
+    xcbutilerrors
+    xcbutilimage
+    xcbutilwm
+  ];
+
+  postPatch = ''
+    (cd subprojects
+     tar xvf ${cereal-wrap}
+     unzip ${cereal-wrapdb}
+     cp -r ${expected-wrap} ${expected-wrap.name}
+     cp -r ${wlroots-wrap} ${wlroots-wrap.name}
+    )
+  '';
+
+  # "Inherited" from Nixpkgs expression for wlroots
+  mesonFlags = [
+    "-Dman=true"
+    "-Dwlroots:logind-provider=systemd"
+    "-Dwlroots:libseat=disabled"
+  ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.com/cardboardwm/cardboard";
+    description = "A scrollable, tiling Wayland compositor inspired on PaperWM";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/dwl/default.nix b/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
index d8f102ed7675..04944a1e9092 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
@@ -5,6 +5,7 @@
 , libinput
 , libxcb
 , libxkbcommon
+, pixman
 , wayland
 , wayland-protocols
 , wlroots
@@ -16,32 +17,18 @@
 }:
 
 let
-  # Add two patches to fix compile errors with wlroots 0.13:
-  totalPatches = patches ++ [
-    # Fix the renamed constant WLR_KEY_PRESSED => WL_KEYBOARD_KEY_STATE_PRESSED
-    # https://github.com/djpohly/dwl/pull/66
-    (fetchpatch {
-      url = "https://github.com/djpohly/dwl/commit/a42613db9d9f6debfa4fb2363d75af9457d238ed.patch";
-      sha256 = "0h76hx1fhazi07gqg7sljh13f91v6bvjy7m9qqmimhvqgfwdcc0j";
-    })
-    # Use the new signature for wlr_backend_autocreate, which removes an argument:
-    # https://github.com/djpohly/dwl/pull/76
-    (fetchpatch {
-      url = "https://github.com/djpohly/dwl/commit/0ff13cf216056a36a261f4eed53c6a864989a9fb.patch";
-      sha256 = "18clpdb4il1vxf1b0cx0qrwild68s9dism8ab66zpmvxs5qag2dm";
-    })
-  ];
+  totalPatches = patches ++ [ ];
 in
 
 stdenv.mkDerivation rec {
   pname = "dwl";
-  version = "0.2";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "djpohly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "gUaFTkpIQDswEubllMgvxPfCaEYFO7mODzjPyW7XsGQ=";
+    sha256 = "sha256-lfUAymLA4+E9kULZIueA+9gyVZYgaVS0oTX0LJjsSEs=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -49,6 +36,7 @@ stdenv.mkDerivation rec {
     libinput
     libxcb
     libxkbcommon
+    pixman
     wayland
     wayland-protocols
     wlroots
diff --git a/nixpkgs/pkgs/applications/window-managers/dwm/default.nix b/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
index 2c3ed2e47e88..088581b67013 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
       tags.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ viric ];
+    maintainers = with maintainers; [ viric neonfuz ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
index e32cd38ec2d4..7b22eb399251 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -1,27 +1,27 @@
 { lib, rustPlatform, fetchFromGitHub, dbus, gdk-pixbuf, libnotify, makeWrapper, pkg-config, xorg
-, enableAlsaUtils ? true, alsaUtils, coreutils
+, enableAlsaUtils ? true, alsa-utils, coreutils
 , enableNetwork ? true, dnsutils, iproute2, wirelesstools }:
 
 let
-  bins = lib.optionals enableAlsaUtils [ alsaUtils coreutils ]
+  bins = lib.optionals enableAlsaUtils [ alsa-utils coreutils ]
     ++ lib.optionals enableNetwork [ dnsutils iproute2 wirelesstools ];
 in
 
 rustPlatform.buildRustPackage rec {
   pname = "dwm-status";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "Gerschtli";
-    repo = "dwm-status";
+    repo = pname;
     rev = version;
-    sha256 = "172qkzbi37j6wx81pyqqffi9wxbg3bf8nis7d15ncn1yfd5r4gqh";
+    sha256 = "sha256-Y1J0nCVEmGKgQP+GEtPqK8l3SRuls5yesvJuowLDzUo=";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
   buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
 
-  cargoSha256 = "041sd9zm1c3v6iihnwjcya2xg5yxb2y4biyxpjlfblz2srxa15dm";
+  cargoSha256 = "sha256-8/vzJXZjSQmefHMo5BXKTRiLy2F3wfIn8VgPMJxtIvY=";
 
   postInstall = lib.optionalString (bins != [])  ''
     wrapProgram $out/bin/dwm-status --prefix "PATH" : "${lib.makeBinPath bins}"
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Gerschtli/dwm-status";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gerschtli ];
+    mainProgram = pname;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
index ce0b40c0bb76..2ed6bc303668 100644
--- a/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, freetype, asciidoc
+{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, libXrender, freetype, asciidoc
 , xdotool, xorgserver, xsetroot, xterm, runtimeShell
 , nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "herbstluftwm";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchurl {
     url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
-    sha256 = "0avfhr68f6fjnafjdcyxcx7dkg38f2nadmhpj971qyqzfq2f6i38";
+    sha256 = "01f1bv9axjhw1l2gwhdwahljssj0h8q7a1bqwbpnwvln0ayv39qb";
   };
 
   outputs = [
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
     libXinerama
     libXrandr
     libXft
+    libXrender
     freetype
   ];
 
diff --git a/nixpkgs/pkgs/applications/window-managers/hikari/default.nix b/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
index 34016b0d7565..23c7d9f680f6 100644
--- a/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
@@ -12,7 +12,7 @@
 
 let
   pname = "hikari";
-  version = "2.2.2";
+  version = "2.3.0";
 in
 
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchzip {
     url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
-    sha256 = "0sln1n5f67i3vxkybfi6xhzplb45djqyg272vqkv64m72rmm8875";
+    sha256 = "0vxwma2r9mb2h0c3dkpvf8dbrc2x2ykhc5bb0vd72sl9pwj4jxmy";
   };
 
   nativeBuildInputs = [ pkg-config bmake ];
@@ -49,11 +49,13 @@ stdenv.mkDerivation {
          optionalString enabled "WITH_${toUpper feat}=YES"
        ) features;
 
-  # Can't suid in nix store
-  # Run hikari as root (it will drop privileges as early as possible), or create
-  # a systemd unit to give it the necessary permissions/capabilities.
-  patchPhase = ''
+  postPatch = ''
+    # Can't suid in nix store
+    # Run hikari as root (it will drop privileges as early as possible), or create
+    # a systemd unit to give it the necessary permissions/capabilities.
     substituteInPlace Makefile --replace '4555' '555'
+
+    sed -i 's@<drm_fourcc.h>@<libdrm/drm_fourcc.h>@' src/*.c
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix b/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
index d24715aa9804..754163547e76 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0ps08lga6qkgc8cgf5cx2lgwlqcnd2yazphh9xd2fznnzrllfxxz";
   };
 
-  cargoSha256 = "1ch5mh515rlqmr65x96xcvrx6iaigqgjxc7sbwbznzkc5kmvwhc0";
+  cargoSha256 = "1i01kqvsykanzs7pi94gab9k2dqg1ki40mmjrwa22n0ypkbnvsmx";
 
   # Currently no tests are implemented, so we avoid building the package twice
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/balance-workspace.nix b/nixpkgs/pkgs/applications/window-managers/i3/balance-workspace.nix
index 18e9167227fe..335b18d3eb86 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/balance-workspace.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/balance-workspace.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "i3-balance-workspace";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gndzrwff8gfdqjjxv4zf2h2k0x7y97w1c3mrjpihz8xd0hbnk4d";
+    sha256 = "bb220eb373e290312b0aafe3d7b1cc1cca34c93189a4fca5bee93ef39aafbe3d";
   };
 
   propagatedBuildInputs = [ i3ipc ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
index df774aa417f3..4acc2fb669c6 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, lib, stdenv, perl, makeWrapper
-, iproute2, acpi, sysstat, alsaUtils
+, iproute2, acpi, sysstat, alsa-utils
 , scripts ? [ "bandwidth" "battery" "cpu_usage" "disk" "iface"
               "load_average" "memory" "volume" "wifi" ]
 }:
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     wrapProgram $out/libexec/i3blocks/iface \
       --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute2)}
     wrapProgram $out/libexec/i3blocks/volume \
-      --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsaUtils)}
+      --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsa-utils)}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
index 305c1d728f34..a51c80bf0833 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, lib, stdenv, pkg-config, makeWrapper, meson, ninja, installShellFiles, libxcb, xcbutilkeysyms
 , xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev
 , yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
-, xorgserver, xvfb_run }:
+, xorgserver, xvfb-run }:
 
 stdenv.mkDerivation rec {
   pname = "i3";
@@ -19,13 +19,11 @@ stdenv.mkDerivation rec {
     libstartup_notification libX11 pcre libev yajl xcb-util-cursor perl pango
     perlPackages.AnyEventI3 perlPackages.X11XCB perlPackages.IPCRun
     perlPackages.ExtUtilsPkgConfig perlPackages.InlineC
-    xorgserver xvfb_run
+    xorgserver xvfb-run
   ];
 
   configureFlags = [ "--disable-builddir" ];
 
-  enableParallelBuilding = true;
-
   postPatch = ''
     patchShebangs .
   '';
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
index d158aea83f3f..8ab8c5630d09 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
@@ -1,13 +1,14 @@
-{ fetchurl, lib, i3, autoreconfHook }:
+{ fetchFromGitHub, lib, i3 }:
 
 i3.overrideAttrs (oldAttrs : rec {
-
-  name = "i3-gaps-${version}";
+  pname = "i3-gaps";
   version = "4.19.1";
 
-  src = fetchurl {
-    url = "https://github.com/Airblader/i3/releases/download/${version}/i3-${version}.tar.xz";
-    sha256 = "sha256-+yZ4Pc7zPZfwgBKbjQsrlXxIaxJBmIdE47lljx8FZG0=";
+  src = fetchFromGitHub {
+    owner = "Airblader";
+    repo = "i3";
+    rev = version;
+    sha256 = "sha256-Ydks0hioGAnVBGKraoy3a7Abq9/vHmSne+VFbrYXCug=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix b/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
index 35751da8172d..fbd584f2baa9 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0yfmr5zk2c2il9d31yjjbr48sqgcq6hp4a99hl5mjm2ajyhy5bz3";
   };
 
-  cargoSha256 = "0d5qd1wid5l1pl3ckrlfgdb980myi5gxcir39caywb9pkbnfndz6";
+  cargoSha256 = "134sgc9d0j57swknl9sgil6212rws2hhp92s3cg1yzz5ygx21c76";
 
   # Currently no tests are implemented, so we avoid building the package twice
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
index 3581e4749431..4182c8689ed2 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.13.c.2";
+  version = "2.13.c.3";
   pname = "i3lock-color";
 
   src = fetchFromGitHub {
     owner = "PandorasFox";
     repo = "i3lock-color";
     rev = version;
-    sha256 = "sha256-cMj1uB2Hf7v5Rukw9c5YeUmwbdTn1+PV13bUaOWzBp0=";
+    sha256 = "0spldmis8fvnclwwi9xvnq2rq3hmpbiv3ck5p9pjf40ismvsi16k";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
index 88d035bce661..043c9f44bcfa 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.14.7";
+  version = "0.20.1";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ndqh4bzwim32n8psgsgdd47xmlb45rhvcwla1wm506byb21nk4c";
+    sha256 = "00gzm3g297s9bfp13vnb623p7dfac3g6cdhz2b3lc6l0kmnnqs1s";
   };
 
-  cargoSha256 = "098dzwqwbhcyswm73m880z0w03i7xrq56x79vfyvacw4k27q2zm9";
+  cargoSha256 = "1dpklyv1b9h4n4k3ar5qbzivds8r4mml76986ic8zj71fy5fxn08";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
@@ -29,8 +29,20 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [
     "--features=notmuch"
+    "--features=maildir"
+    "--features=pulseaudio"
   ];
 
+  prePatch = ''
+    substituteInPlace src/util.rs \
+      --replace "/usr/share/i3status-rust" "$out/share"
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share
+    cp -R files/* $out/share
+  '';
+
   postFixup = ''
     wrapProgram $out/bin/i3status-rs --prefix PATH : "${ethtool}/bin"
   '';
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/status.nix b/nixpkgs/pkgs/applications/window-managers/i3/status.nix
index 935a6c3c23b4..8e9cb2d2b76f 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/status.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/status.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, libconfuse, yajl, alsaLib, libpulseaudio, libnl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
+{ fetchurl, lib, stdenv, libconfuse, yajl, alsa-lib, libpulseaudio, libnl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
 
 stdenv.mkDerivation rec {
   name = "i3status-2.13";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ];
-  buildInputs = [ libconfuse yajl alsaLib libpulseaudio libnl ];
+  buildInputs = [ libconfuse yajl alsa-lib libpulseaudio libnl ];
 
   makeFlags = [ "all" "PREFIX=$(out)" ];
 
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix b/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
index 9169cfc3817c..7033e5730490 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "09xffklpz62h6yiksxdlv3a9s1z0wr3ax9syl399avwdmq3c0y49";
   };
 
-  cargoSha256 = "0rczas6sgcppacz48xx7sarkvc4s2sgcdz6c661d7vcry1y46xms";
+  cargoSha256 = "0fmz3q3yadymbqnkdhjd2z2g4zgf3z81ccixwywndd9zb7p47zdr";
 
   nativeBuildInputs = [ python3 pkg-config ];
   buildInputs = [ cairo libxkbcommon xorg.xcbutilkeysyms ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix b/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
index 6799473470b2..6af5717916bf 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3wsr";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "roosta";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PluczllPRlfzoM2y552YJirrX5RQZQAkBQkner7fWhU=";
+    sha256 = "sha256-JzQWfC0kmnMArpIAE5fgb3YLmXktSCH5aUdrQH9pCbo=";
   };
 
-  cargoSha256 = "sha256-GwRiyAHTcRoByxUViXSwslb+IAP6LK8IWZ0xICQ8qag=";
+  cargoSha256 = "sha256-ZvSdJLaw1nfaqpTBKIiHiXvNFSZhsmLk0PBrV6ykv/w=";
 
   nativeBuildInputs = [ python3 ];
   buildInputs = [ libxcb ];
diff --git a/nixpkgs/pkgs/applications/window-managers/icewm/default.nix b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
index 8f1a920296ae..77ed0c561cd4 100644
--- a/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
@@ -30,7 +30,7 @@
 , libpthreadstubs
 , libsndfile
 , libtiff
-, libungif
+, giflib
 , libxcb
 , mkfontdir
 , pcre
@@ -39,13 +39,13 @@
 
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "2.2.0";
+  version = "2.3.4";
 
   src = fetchFromGitHub {
-    owner  = "bbidulock";
+    owner  = "ice-wm";
     repo = pname;
     rev = version;
-    hash = "sha256-STM8t311lf0xIqs2Onmwg48xgE7V9VZrUfJrUzYRxL4=";
+    hash = "sha256-UyLefj0eY/m3Of51NdhMNMq3z+kaLK28zDe63hbDK5A=";
   };
 
   nativeBuildInputs = [
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
     libpthreadstubs
     libsndfile
     libtiff
-    libungif
+    giflib
     libxcb
     mkfontdir
     pcre
diff --git a/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix b/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix
index 8f684fec620f..2aade3607451 100644
--- a/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "kbdd";
-  version = "unstable-2017-01-29";
+  version = "unstable-2021-04-26";
 
   src = fetchFromGitHub {
     owner = "qnikst";
     repo = "kbdd";
-    rev = "0e1056f066ab6e3c74fd0db0c9710a9a2b2538c3";
-    sha256 = "068iqkqxh7928xlmz2pvnykszn9bcq2qgkkiwf37k1vm8fdmgzlj";
+    rev = "3145099e1fbbe65b27678be72465aaa5b5872874";
+    sha256 = "1gzcjnflgdqnjgphiqpzwbcx60hm0h2cprncm7i8xca3ln5q6ba1";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Simple daemon and library to make per window layout using XKB";
     homepage = "https://github.com/qnikst/kbdd";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.wedens ];
   };
diff --git a/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix b/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
index bab0439bf8bc..f4b72197f540 100644
--- a/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
@@ -6,16 +6,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "leftwm";
-  version = "0.2.6";
+  version = "0.2.7";
 
   src = fetchFromGitHub {
     owner = "leftwm";
     repo = "leftwm";
     rev = version;
-    sha256 = "sha256-hirT0gScC2LFPvygywgPiSVDUE/Zd++62wc26HlufYU=";
+    sha256 = "sha256-nRPt+Tyfq62o+3KjsXkHQHUMMslHFGNBd3s2pTb7l4w=";
   };
 
-  cargoSha256 = "sha256-j57LHPU3U3ipUGQDrZ8KCuELOVJ3BxhLXsJePOO6rTM=";
+  cargoSha256 = "sha256-lmzA7XM8B5QJI4Wo0cKeMR3+np6jT6mdGzTry4g87ng=";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ libX11 libXinerama ];
diff --git a/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix b/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix
index 88d4b8360a50..8f553eb4b554 100644
--- a/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix
@@ -1,22 +1,25 @@
-{ lib, stdenv, fetchurl, perl, libxcb }:
+{ lib, stdenv, fetchFromGitHub, perl, libxcb }:
 
-stdenv.mkDerivation {
-  name = "lemonbar-1.4";
+stdenv.mkDerivation rec {
+  pname = "lemonbar";
+  version = "1.4";
 
-  src = fetchurl {
-    url    = "https://github.com/LemonBoy/bar/archive/v1.4.tar.gz";
-    sha256 = "0fa91vb968zh6fyg97kdaix7irvqjqhpsb6ks0ggcl59lkbkdzbv";
+  src = fetchFromGitHub {
+    owner = "LemonBoy";
+    repo = "bar";
+    rev = "v${version}";
+    sha256 = "sha256-lmppcnQ8r4jEuhegpTBxYqxfTTS/IrbtQVZ44HqnoWo=";
   };
 
   buildInputs = [ libxcb perl ];
 
-  prePatch = ''sed -i "s@/usr@$out@" Makefile'';
+  installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
   meta = with lib; {
     description = "A lightweight xcb based bar";
     homepage = "https://github.com/LemonBoy/bar";
-    maintainers = [ maintainers.meisternu ];
-    license = "Custom";
+    maintainers = with maintainers; [ meisternu fortuneteller2k ];
+    license = licenses.mit;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix b/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
index b318b39709a7..54e7820ec4c2 100644
--- a/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
+++ b/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
@@ -1,23 +1,25 @@
 { lib, stdenv, fetchFromGitHub, perl, libxcb, libXft }:
 
 stdenv.mkDerivation {
-  name = "lemonbar-xft-unstable-2016-02-17";
+  pname = "lemonbar-xft";
+  version = "unstable-2020-09-10";
 
   src = fetchFromGitHub {
-    owner  = "krypt-n";
-    repo   = "bar";
-    rev    = "a43b801ddc0f015ce8b1211f4c062fad12cd63a9";
-    sha256 = "0iqas07qjvabxyvna2m9aj5bcwnkdii1izl9jxha63vz0zlsc4gd";
+    owner = "drscream";
+    repo = "lemonbar-xft";
+    rev = "481e12363e2a0fe0ddd2176a8e003392be90ed02";
+    sha256 = "sha256-BNYBbUouqqsRQaPkpg+UKg62IV9uI34gKJuiAM94CBU=";
   };
 
   buildInputs = [ libxcb libXft perl ];
 
-  prePatch = ''sed -i "s@/usr@$out@" Makefile'';
+  installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
-  meta = {
+  meta = with lib; {
     description = "A lightweight xcb based bar with XFT-support";
-    homepage = "https://github.com/krypt-n/bar";
-    license = "Custom";
-    platforms = lib.platforms.linux;
+    homepage = "https://github.com/drscream/lemonbar-xft";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fortuneteller2k ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/phosh/default.nix b/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
new file mode 100644
index 000000000000..64677c8505f5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
@@ -0,0 +1,158 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook
+, libhandy
+, libxkbcommon
+, pulseaudio
+, glib
+, gtk3
+, gnome
+, gcr
+, pam
+, systemd
+, upower
+, wayland
+, dbus
+, xvfb-run
+, phoc
+, feedbackd
+, networkmanager
+, polkit
+, libsecret
+, writeText
+}:
+
+let
+  gvc = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "libgnome-volume-control";
+    rev = "ae1a34aafce7026b8c0f65a43c9192d756fe1057";
+    sha256 = "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw";
+  };
+
+  executable = writeText "phosh" ''
+    PHOC_INI=@out@/share/phosh/phoc.ini
+    GNOME_SESSION_ARGS="--disable-acceleration-check --session=phosh --debug"
+
+    if [ -f /etc/phosh/phoc.ini ]; then
+      PHOC_INI=/etc/phosh/phoc.ini
+    elif  [ -f /etc/phosh/rootston.ini ]; then
+      # honor old configs
+      PHOC_INI=/etc/phosh/rootston.ini
+    fi
+
+    # Run gnome-session through a login shell so it picks
+    # variables from /etc/profile.d (XDG_*)
+    [ -n "$WLR_BACKENDS" ] || WLR_BACKENDS=drm,libinput
+    export WLR_BACKENDS
+    exec "${phoc}/bin/phoc" -C "$PHOC_INI" \
+      -E "bash -lc 'XDG_DATA_DIRS=$XDG_DATA_DIRS:\$XDG_DATA_DIRS ${gnome.gnome-session}/bin/gnome-session $GNOME_SESSION_ARGS'"
+  '';
+
+in stdenv.mkDerivation rec {
+  pname = "phosh";
+  version = "0.10.2";
+
+  src = fetchFromGitLab {
+    domain = "source.puri.sm";
+    owner = "Librem5";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07i8wpzl7311dcf9s57s96qh1v672c75wv6cllrxx7fsmpf8fhx4";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    phoc
+    libhandy
+    libsecret
+    libxkbcommon
+    pulseaudio
+    glib
+    gcr
+    networkmanager
+    polkit
+    gnome.gnome-control-center
+    gnome.gnome-desktop
+    gnome.gnome-session
+    gtk3
+    pam
+    systemd
+    upower
+    wayland
+    feedbackd
+  ];
+
+  checkInputs = [
+    dbus
+    xvfb-run
+  ];
+
+  # Temporarily disabled - Test is broken (SIGABRT)
+  doCheck = false;
+
+  postUnpack = ''
+    rmdir $sourceRoot/subprojects/gvc
+    ln -s ${gvc} $sourceRoot/subprojects/gvc
+  '';
+
+  postPatch = ''
+    chmod +x build-aux/post_install.py
+    patchShebangs build-aux/post_install.py
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    export NO_AT_BRIDGE=1
+    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      meson test --print-errorlogs
+    runHook postCheck
+  '';
+
+  # Replace the launcher script with ours
+  postInstall = ''
+    substituteAll ${executable} $out/bin/phosh
+  '';
+
+  # Depends on GSettings schemas in gnome-shell
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix XDG_DATA_DIRS : "${gnome.gnome-shell}/share/gsettings-schemas/${gnome.gnome-shell.name}"
+    )
+  '';
+
+  postFixup = ''
+    mkdir -p $out/share/wayland-sessions
+    ln -s $out/share/applications/sm.puri.Phosh.desktop $out/share/wayland-sessions/
+    # The OSK0.desktop points to a dummy stub that's not needed
+    rm $out/share/applications/sm.puri.OSK0.desktop
+  '';
+
+  passthru = {
+    providedSessions = [
+     "sm.puri.Phosh"
+    ];
+  };
+
+  meta = with lib; {
+    description = "A pure Wayland shell prototype for GNOME on mobile devices";
+    homepage = "https://source.puri.sm/Librem5/phosh";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ archseer jtojnar masipcat zhaofengli ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/qtile/default.nix b/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
index 21059c25afb1..ba7228f5b961 100644
--- a/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
@@ -38,7 +38,7 @@ python37Packages.buildPythonApplication rec {
     xcffib
     cairocffi-xcffib
     setuptools
-    setuptools_scm
+    setuptools-scm
     dateutil
     dbus-python
     mpd2
diff --git a/nixpkgs/pkgs/applications/window-managers/river/default.nix b/nixpkgs/pkgs/applications/window-managers/river/default.nix
index 5c20bd17fc72..6fbcf1b28703 100644
--- a/nixpkgs/pkgs/applications/window-managers/river/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/river/default.nix
@@ -1,44 +1,71 @@
-{ lib, stdenv ,fetchFromGitHub
-, zig, wayland, pkg-config, scdoc
-, xwayland, wayland-protocols, wlroots
-, libxkbcommon, pixman, udev, libevdev, libX11, libGL
+{ lib
+, stdenv
+, fetchFromGitHub
+, zig
+, wayland
+, pkg-config
+, scdoc
+, xwayland
+, wayland-protocols
+, wlroots
+, libxkbcommon
+, pixman
+, udev
+, libevdev
+, libX11
+, libGL
 }:
 
 stdenv.mkDerivation rec {
   pname = "river";
-  version = "unstable-2021-04-08";
+  version = "unstable-2021-06-06";
 
   src = fetchFromGitHub {
     owner = "ifreund";
-    repo = "river";
-    rev = "9e3e92050e04320949c6cd995273c30319ebd515";
-    sha256 = "1v8dpbadsb3c7bc84sai09dbqv5s5s5d77vs12kdkd45x0ppmk3j";
+    repo = pname;
+    rev = "0e9dc089d14e2b5c923d483c62d342af29493cf0";
+    sha256 = "sha256-2rIZYr9Y+IBrox5MVrPpHeI8OVSXHsMZmcCagsX56lU=";
     fetchSubmodules = true;
   };
 
-  buildInputs = [ xwayland wayland-protocols wlroots pixman
-    libxkbcommon pixman udev libevdev libX11 libGL
+  nativeBuildInputs = [ zig wayland xwayland scdoc pkg-config ];
+
+  buildInputs = [
+    wayland-protocols
+    wlroots
+    pixman
+    libxkbcommon
+    pixman
+    udev
+    libevdev
+    libX11
+    libGL
   ];
 
+  dontConfigure = true;
+
   preBuild = ''
     export HOME=$TMPDIR
   '';
-  installPhase = ''
-    zig build -Drelease-safe -Dxwayland -Dman-pages --prefix $out install
-   '';
 
-  nativeBuildInputs = [ zig wayland scdoc pkg-config ];
+  installPhase = ''
+    runHook preInstall
+    zig build -Drelease-safe -Dcpu=baseline -Dxwayland -Dman-pages --prefix $out install
+    runHook postInstall
+  '';
 
+  /*
+    Builder patch install dir into river to get default config
+    When installFlags is removed, river becomes half broken.
+    See https://github.com/ifreund/river/blob/7ffa2f4b9e7abf7d152134f555373c2b63ccfc1d/river/main.zig#L56
+  */
   installFlags = [ "DESTDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A dynamic tiling wayland compositor";
-    longDescription = ''
-      river is a dynamic tiling wayland compositor that takes inspiration from dwm and bspwm.
-    '';
     homepage = "https://github.com/ifreund/river";
+    description = "A dynamic tiling wayland compositor";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ branwright1 ];
+    maintainers = with maintainers; [ fortuneteller2k ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix b/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
deleted file mode 100644
index 0f8d933a06db..000000000000
--- a/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{ lib, stdenv, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4
-, makeWrapper , rlwrap, gnused, gnugrep, coreutils, xprop
-, extraModulePaths ? []
-, version }:
-
-let
-  contrib = (fetchgit {
-    url = "https://github.com/stumpwm/stumpwm-contrib.git";
-    rev = "9bebe3622b2b6c31a6bada9055ef3862fa79b86f";
-    sha256 = "1ml6mjk2fsfv4sf65fdbji3q5x0qiq99g1k8w7a99gsl2i8h60gc";
-  });
-  versionSpec = {
-    latest = {
-      name = "1.0.0";
-      rev = "refs/tags/1.0.0";
-      sha256 = "16r0lwhxl8g71masmfbjr7s7m7fah4ii4smi1g8zpbpiqjz48ryb";
-      patches = [];
-    };
-    "0.9.9" = {
-      name = "0.9.9";
-      rev = "refs/tags/0.9.9";
-      sha256 = "0hmvbdk2yr5wrkiwn9dfzf65s4xc2qifj0sn6w2mghzp96cph79k";
-      patches = [ ./fix-module-path.patch ];
-    };
-    git = {
-        name = "git-20170203";
-        rev = "d20f24e58ab62afceae2afb6262ffef3cc318b97";
-        sha256 = "1gi29ds1x6dq7lz8lamnhcvcrr3cvvrg5yappfkggyhyvib1ii70";
-        patches = [];
-    };
-  }.${version};
-in
-stdenv.mkDerivation {
-  name = "stumpwm-${versionSpec.name}";
-
-  src = fetchgit {
-    url = "https://github.com/stumpwm/stumpwm";
-    rev = versionSpec.rev;
-    sha256 = versionSpec.sha256;
-  };
-
-  # NOTE: The patch needs an update for the next release.
-  # `(stumpwm:set-module-dir "@MODULE_DIR@")' needs to be in it.
-  patches = versionSpec.patches;
-
-  buildInputs = [
-    texinfo4 makeWrapper autoconf
-    sbcl
-    lispPackages.clx
-    lispPackages.cl-ppcre
-    lispPackages.alexandria
-    xdpyinfo
-  ];
-
-
-  # Stripping destroys the generated SBCL image
-  dontStrip = true;
-
-  configurePhase = ''
-    ./autogen.sh
-    ./configure --prefix=$out --with-module-dir=$out/share/stumpwm/modules
-  '';
-
-  preBuild = ''
-    cp -r --no-preserve=mode ${contrib} modules
-    substituteInPlace  head.lisp \
-      --replace 'run-shell-command "xdpyinfo' 'run-shell-command "${xdpyinfo}/bin/xdpyinfo'
-  '';
-
-  installPhase = ''
-    mkdir -pv $out/bin
-    make install
-
-    mkdir -p $out/share/stumpwm/modules
-    cp -r modules/* $out/share/stumpwm/modules/
-    for d in ${lib.concatStringsSep " " extraModulePaths}; do
-      cp -r --no-preserve=mode "$d" $out/share/stumpwm/modules/
-    done
-
-    # Copy stumpish;
-    cp $out/share/stumpwm/modules/util/stumpish/stumpish $out/bin/
-    chmod +x $out/bin/stumpish
-    wrapProgram $out/bin/stumpish \
-      --prefix PATH ":" "${lib.makeBinPath [ rlwrap gnused gnugrep coreutils xprop ]}"
-
-    # Paths in the compressed image $out/bin/stumpwm are not
-    # recognized by Nix. Add explicit reference here.
-    mkdir $out/nix-support
-    echo ${xdpyinfo} > $out/nix-support/xdpyinfo
-  '';
-
-  passthru = {
-    inherit sbcl lispPackages contrib;
-  };
-
-  meta = with lib; {
-    description = "A tiling window manager for X11";
-    homepage    = "https://github.com/stumpwm/";
-    license     = licenses.gpl2Plus;
-    platforms   = platforms.linux;
-    broken = true; # 2018-04-11
-  };
-}
diff --git a/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch b/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch
deleted file mode 100644
index 79bfaad3dec3..000000000000
--- a/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/make-image.lisp.in b/make-image.lisp.in
-index 121e9d6..2210242 100644
---- a/make-image.lisp.in
-+++ b/make-image.lisp.in
-@@ -2,7 +2,10 @@
- 
- (load "load-stumpwm.lisp")
- 
--#-ecl (stumpwm:set-module-dir "@CONTRIB_DIR@")
-+(setf asdf::*immutable-systems*
-+      (uiop:list-to-hash-set (asdf:already-loaded-systems)))
-+
-+#-ecl (stumpwm:set-module-dir "@MODULE_DIR@")
- 
- #+sbcl
- (sb-ext:save-lisp-and-die "stumpwm" :toplevel (lambda ()
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/default.nix b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
index 76a135c2dcc1..f9cf48a78e07 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
@@ -2,9 +2,11 @@
 , meson, ninja, pkg-config, wayland, scdoc
 , libxkbcommon, pcre, json_c, libevdev, pango, cairo, libinput, librsvg
 , wlroots, wayland-protocols, libdrm
-
 , gdkPixbufSupport ? true, gdk-pixbuf
 , xwaylandSupport ? !(lib.elem "-Dxwayland=disabled" (wlroots.mesonFlags or []))
+, nixosTests
+# Used by the NixOS module:
+, isNixOS ? false
 }:
 
 stdenv.mkDerivation rec {
@@ -28,6 +30,10 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  postPatch = lib.optionalString isNixOS ''
+    echo -e '\ninclude /etc/sway/config.d/*' >> config.in
+  '';
+
   nativeBuildInputs = [
     meson ninja pkg-config wayland scdoc
   ];
@@ -43,6 +49,8 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional gdkPixbufSupport "-Dgdk-pixbuf=enabled"
     ++ lib.optional xwaylandSupport "-Dxwayland=enabled";
 
+  passthru.tests.basic = nixosTests.sway;
+
   meta = with lib; {
     description = "An i3-compatible tiling Wayland compositor";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix b/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
index 319023eb2e5a..07459295d759 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/wrapper.nix
@@ -4,6 +4,8 @@
 , withBaseWrapper ? true, extraSessionCommands ? "", dbus
 , withGtkWrapper ? false, wrapGAppsHook, gdk-pixbuf, glib, gtk3
 , extraOptions ? [] # E.g.: [ "--verbose" ]
+# Used by the NixOS module:
+, isNixOS ? false
 }:
 
 assert extraSessionCommands != "" -> withBaseWrapper;
@@ -11,24 +13,26 @@ assert extraSessionCommands != "" -> withBaseWrapper;
 with lib;
 
 let
+  sway = sway-unwrapped.override { inherit isNixOS; };
   baseWrapper = writeShellScriptBin "sway" ''
      set -o errexit
      if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
+       export XDG_CURRENT_DESKTOP=sway
        ${extraSessionCommands}
        export _SWAY_WRAPPER_ALREADY_EXECUTED=1
      fi
      if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
        export DBUS_SESSION_BUS_ADDRESS
-       exec ${sway-unwrapped}/bin/sway "$@"
+       exec ${sway}/bin/sway "$@"
      else
-       exec ${dbus}/bin/dbus-run-session ${sway-unwrapped}/bin/sway "$@"
+       exec ${dbus}/bin/dbus-run-session ${sway}/bin/sway "$@"
      fi
    '';
 in symlinkJoin {
-  name = "sway-${sway-unwrapped.version}";
+  name = "sway-${sway.version}";
 
   paths = (optional withBaseWrapper baseWrapper)
-    ++ [ sway-unwrapped ];
+    ++ [ sway ];
 
   nativeBuildInputs = [ makeWrapper ]
     ++ (optional withGtkWrapper wrapGAppsHook);
@@ -48,5 +52,5 @@ in symlinkJoin {
 
   passthru.providedSessions = [ "sway" ];
 
-  inherit (sway-unwrapped) meta;
+  inherit (sway) meta;
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix b/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
index 15bf977f8fd9..64d9fd7d7db3 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0bmpbhyvgnbi5baj6v0wdxpdh9cnlzvcc44vh3vihmzsp6i5q05a";
   };
 
-  cargoSha256 = "15wa03279lflr16a6kw7zcn3nvalnjydk9g6nj7xqxmc7zkpf0rm";
+  cargoSha256 = "1pmkyw60ggn5filb47nyf97g1arrw7nfa4yjndnx35zw12mkj61d";
 
   nativeBuildInputs = [ python3 ];
   buildInputs = [ libxcb ];
diff --git a/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix b/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix
index cc457f815899..7d9e5f9c1cb0 100644
--- a/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix
@@ -1,7 +1,9 @@
-{ lib, stdenv, ghcWithPackages, makeWrapper, packages ? (x: []) }:
+{ lib, stdenv, ghcWithPackages, taffybar, makeWrapper, packages ? (x: []) }:
 
 let
-taffybarEnv = ghcWithPackages (self: [ self.taffybar ] ++ packages self);
+  taffybarEnv = ghcWithPackages (self: [
+    self.taffybar
+  ] ++ packages self);
 in stdenv.mkDerivation {
   name = "taffybar-with-packages-${taffybarEnv.version}";
 
@@ -13,8 +15,14 @@ in stdenv.mkDerivation {
       --set NIX_GHC "${taffybarEnv}/bin/ghc"
   '';
 
-  meta = {
-    platforms = lib.platforms.unix;
-    license = lib.licenses.bsd3;
-  };
+  # Trivial derivation
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+
+  # For hacking purposes
+  passthru.env = taffybarEnv;
+  buildInputs = [ taffybarEnv ];
+  shellHook = "eval $(egrep ^export ${taffybarEnv}/bin/ghc)";
+
+  inherit (taffybar) meta;
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/waybox/default.nix b/nixpkgs/pkgs/applications/window-managers/waybox/default.nix
index 007e4dcc568b..ad3028b4ac03 100644
--- a/nixpkgs/pkgs/applications/window-managers/waybox/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/waybox/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "waybox";
-  version = "unstable-2020-05-01";
+  version = "unstable-2021-04-07";
 
   src = fetchFromGitHub {
     owner = "wizbright";
     repo = pname;
-    rev = "93811898f0eea3035145f593938d49d5af759b46";
-    sha256 = "IOdKOqAQD87Rs3td8NVEgMnRF6kQSuQ64UVqeVqMBSM=";
+    rev = "309ccd2faf08079e698104b19eff32b3a255b947";
+    hash = "sha256-G32cGmOwmnuVlj1hCq9NRti6plJbkAktfzM4aYzQ+k8=";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja ];
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/default.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/default.nix
index 303ffc35fc71..42b376a97f80 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wayfire";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchurl {
     url = "https://github.com/WayfireWM/wayfire/releases/download/v${version}/wayfire-${version}.tar.xz";
-    sha256 = "19k9nk5whql03ik66i06r4xgxk5v7mpdphjpv13hdw8ba48w73hd";
+    sha256 = "0wgvwbmdhn7gkdr2jl9jndgvl6w4x7ys8gmpj55gqh9b57wqhyaq";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wayfire.org/";
-    description = "3D wayland compositor";
+    description = "3D Wayland compositor";
     license = licenses.mit;
     maintainers = with maintainers; [ qyliss wucke13 ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-config.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-config.nix
index b8e4c6aa7701..d1e653cc9e04 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-config.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-config.nix
@@ -1,18 +1,25 @@
-{ stdenv, lib, fetchurl, meson, ninja, pkg-config, glm, libevdev, libxml2 }:
+{ stdenv, lib, fetchurl, cmake, meson, ninja, pkg-config
+, doctest, glm, libevdev, libxml2
+}:
 
 stdenv.mkDerivation rec {
   pname = "wf-config";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchurl {
     url = "https://github.com/WayfireWM/wf-config/releases/download/v${version}/wf-config-${version}.tar.xz";
-    sha256 = "1bas5gsbnf8jxkkxd95992chz8yk5ckgg7r09gfnmm7xi8w0pyy7";
+    sha256 = "1w75yxhz0nvw4mlv38sxp8k8wb5h99b51x3fdvizc3yaxanqa8kx";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ libevdev libxml2 ];
+  nativeBuildInputs = [ cmake meson ninja pkg-config ];
+  buildInputs = [ doctest libevdev libxml2 ];
   propagatedBuildInputs = [ glm ];
 
+  # CMake is just used for finding doctest.
+  dontUseCmakeConfigure = true;
+
+  doCheck = true;
+
   meta = with lib; {
     homepage = "https://github.com/WayfireWM/wf-config";
     description = "Library for managing configuration files, written for Wayfire";
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
index cc99e79fca8d..bd9bcb30d107 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, git
-, alsaLib, gtkmm3, gtk-layer-shell, pulseaudio, wayfire, wf-config
+, alsa-lib, gtkmm3, gtk-layer-shell, pulseaudio, wayfire, wf-config
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wayland ];
   buildInputs = [
-    alsaLib gtkmm3 gtk-layer-shell pulseaudio wayfire wf-config
+    alsa-lib gtkmm3 gtk-layer-shell pulseaudio wayfire wf-config
   ];
 
   mesonFlags = [ "--sysconfdir" "/etc" ];
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
index e56ff2512c10..8c354c616fd2 100644
--- a/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config
 , libX11, libXext, libXft, libXmu, libXinerama, libXrandr, libXpm
-, imagemagick, libpng, libjpeg, libexif, libtiff, libungif, libwebp }:
+, imagemagick, libpng, libjpeg, libexif, libtiff, giflib, libwebp }:
 
 stdenv.mkDerivation rec {
   pname = "windowmaker";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ libX11 libXext libXft libXmu libXinerama libXrandr libXpm
-                  imagemagick libpng libjpeg libexif libtiff libungif libwebp ];
+                  imagemagick libpng libjpeg libexif libtiff giflib libwebp ];
 
   configureFlags = [
     "--with-x"
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix
index 43080f2eae7d..e22b02825b75 100644
--- a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/AlsaMixer-app.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, dockapps-sources, pkg-config, libX11, libXpm, libXext, alsaLib }:
+{ lib, stdenv, dockapps-sources, pkg-config, libX11, libXpm, libXext, alsa-lib }:
 
 stdenv.mkDerivation rec {
   pname = "AlsaMixer.app";
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = dockapps-sources;
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libX11 libXpm libXext alsaLib ];
+  buildInputs = [ libX11 libXpm libXext alsa-lib ];
 
   setSourceRoot = ''
     export sourceRoot=$(echo */${pname})
diff --git a/nixpkgs/pkgs/applications/window-managers/wio/default.nix b/nixpkgs/pkgs/applications/window-managers/wio/default.nix
index c330bbe0e0f4..485fd0b8a623 100644
--- a/nixpkgs/pkgs/applications/window-managers/wio/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wio/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchgit
+{ lib
+, stdenv
+, fetchFromBitbucket
 , meson
 , ninja
 , pkg-config
@@ -17,23 +19,29 @@
 
 stdenv.mkDerivation rec {
   pname = "wio";
-  version = "unstable-2020-11-02";
+  version = "0.0.0+unstable=2021-06-01";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/wio";
-    rev = "31b742e473b15a2087be740d1de28bc2afd47a4d";
-    sha256 = "1vpvlahv6dmr7vfb11p5cc5ds2y2vfvcb877nkqx18yin6pg357l";
+  src = fetchFromBitbucket {
+    owner = "anderson_torres";
+    repo = pname;
+    rev = "ad57eb45ba0459cd0b16ba486cb6e01626079c29";
+    sha256 = "sha256-mCggAscQ+Ej3SNwhA6QxecV1nH6Rw8RDf8yAsbadqjE=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config makeWrapper ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    makeWrapper
+  ];
   buildInputs = [
     cairo
     libxkbcommon
+    mesa # for libEGL
     udev
     wayland
     wayland-protocols
     wlroots
-    mesa # for libEGL
     xwayland
   ];
 
@@ -43,15 +51,15 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://wio-project.org/";
     description = "That Plan 9 feel, for Wayland";
     longDescription = ''
       Wio is a Wayland compositor for Linux and FreeBSD which has a similar look
       and feel to plan9's rio.
     '';
-    homepage = "https://wio-project.org/";
     license = licenses.mit;
-    platforms = with platforms; linux;
     maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; linux;
   };
 
   passthru.providedSessions = [ "wio" ];
diff --git a/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
index 830242667db6..2e41cc2c97c6 100644
--- a/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, glib, dbus-glib
 , desktopSupport ? "gnomeflashback", xorg
 , gtk2
-, gtk3, gnome3, mate
+, gtk3, gnome, mate
 , libxfce4util, xfce4-panel
 }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ glib dbus-glib xorg.xcbutilwm ]
-    ++ lib.optionals (desktopSupport == "gnomeflashback") [ gtk3 gnome3.gnome-panel ]
+    ++ lib.optionals (desktopSupport == "gnomeflashback") [ gtk3 gnome.gnome-panel ]
     ++ lib.optionals (desktopSupport == "mate") [ gtk3 mate.mate-panel ]
     ++ lib.optionals (desktopSupport == "xfce4") [ gtk2 libxfce4util xfce4-panel ]
   ;
diff --git a/nixpkgs/pkgs/applications/window-managers/yabar/build.nix b/nixpkgs/pkgs/applications/window-managers/yabar/build.nix
index ec15f7e36275..f9b5d227b0e8 100644
--- a/nixpkgs/pkgs/applications/window-managers/yabar/build.nix
+++ b/nixpkgs/pkgs/applications/window-managers/yabar/build.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cairo, gdk-pixbuf, libconfig, pango, pkg-config
-, xcbutilwm, alsaLib, wirelesstools, asciidoc, libxslt, makeWrapper, docbook_xsl
+, xcbutilwm, alsa-lib, wirelesstools, asciidoc, libxslt, makeWrapper, docbook_xsl
 , configFile ? null, lib
 , rev, sha256, version, patches ? []
 }:
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     cairo gdk-pixbuf libconfig pango xcbutilwm docbook_xsl
-    alsaLib wirelesstools asciidoc libxslt makeWrapper
+    alsa-lib wirelesstools asciidoc libxslt makeWrapper
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/build-support/agda/default.nix b/nixpkgs/pkgs/build-support/agda/default.nix
index 984d61f1f751..ed7d11a13147 100644
--- a/nixpkgs/pkgs/build-support/agda/default.nix
+++ b/nixpkgs/pkgs/build-support/agda/default.nix
@@ -1,6 +1,6 @@
 # Builder for Agda packages.
 
-{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, mkShell, ghcWithPackages, nixosTests }:
+{ stdenv, lib, self, Agda, runCommandNoCC, makeWrapper, writeText, ghcWithPackages, nixosTests }:
 
 with lib.strings;
 
diff --git a/nixpkgs/pkgs/build-support/appimage/default.nix b/nixpkgs/pkgs/build-support/appimage/default.nix
index 7659c9f42a10..6ba5890885d6 100644
--- a/nixpkgs/pkgs/build-support/appimage/default.nix
+++ b/nixpkgs/pkgs/build-support/appimage/default.nix
@@ -61,7 +61,7 @@ rec {
     targetPkgs = pkgs: with pkgs; [
       gtk3
       bashInteractive
-      gnome3.zenity
+      gnome.zenity
       python2
       xorg.xrandr
       which
@@ -171,7 +171,7 @@ rec {
       librsvg
       xorg.libXft
       libvdpau
-      alsaLib
+      alsa-lib
 
       harfbuzz
       e2fsprogs
diff --git a/nixpkgs/pkgs/build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh b/nixpkgs/pkgs/build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh
new file mode 100755
index 000000000000..376a7abfe41c
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/bintools-wrapper/darwin-install_name_tool-wrapper.sh
@@ -0,0 +1,49 @@
+#! @shell@
+# shellcheck shell=bash
+
+set -eu -o pipefail +o posix
+shopt -s nullglob
+
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
+source @signingUtils@
+
+extraAfter=()
+extraBefore=()
+params=("$@")
+
+input=
+
+pprev=
+prev=
+for p in \
+    ${extraBefore+"${extraBefore[@]}"} \
+    ${params+"${params[@]}"} \
+    ${extraAfter+"${extraAfter[@]}"}
+do
+    if [ "$pprev" != "-change" ] && [[ "$prev" != -* ]] && [[ "$p" != -* ]]; then
+        input="$p"
+    fi
+    pprev="$prev"
+    prev="$p"
+done
+
+# Optionally print debug info.
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
+    # Old bash workaround, see above.
+    echo "extra flags before to @prog@:" >&2
+    printf "  %q\n" ${extraBefore+"${extraBefore[@]}"}  >&2
+    echo "original flags to @prog@:" >&2
+    printf "  %q\n" ${params+"${params[@]}"} >&2
+    echo "extra flags after to @prog@:" >&2
+    printf "  %q\n" ${extraAfter+"${extraAfter[@]}"} >&2
+fi
+
+@prog@ \
+    ${extraBefore+"${extraBefore[@]}"} \
+    ${params+"${params[@]}"} \
+    ${extraAfter+"${extraAfter[@]}"}
+
+sign "$input"
diff --git a/nixpkgs/pkgs/build-support/bintools-wrapper/darwin-strip-wrapper.sh b/nixpkgs/pkgs/build-support/bintools-wrapper/darwin-strip-wrapper.sh
new file mode 100755
index 000000000000..a67699547a6f
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/bintools-wrapper/darwin-strip-wrapper.sh
@@ -0,0 +1,78 @@
+#! @shell@
+# shellcheck shell=bash
+
+set -eu -o pipefail +o posix
+shopt -s nullglob
+
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
+source @signingUtils@
+
+extraAfter=()
+extraBefore=()
+params=("$@")
+
+output=
+inputs=()
+
+restAreFiles=
+prev=
+for p in \
+    ${extraBefore+"${extraBefore[@]}"} \
+    ${params+"${params[@]}"} \
+    ${extraAfter+"${extraAfter[@]}"}
+do
+    if [ "$restAreFiles" ]; then
+        inputs+=("$p")
+    else
+        case "$prev" in
+            -s|-R|-d|-arch)
+                # Unrelated arguments with values
+                ;;
+            -o)
+                # Explicit output
+                output="$p"
+                ;;
+            *)
+                # Any other orgument either takes no value, or is a file.
+                if [[ "$p" != -* ]]; then
+                    inputs+=("$p")
+                fi
+                ;;
+        esac
+
+        if [ "$p" == - ]; then
+            restAreFiles=1
+        fi
+    fi
+
+    prev="$p"
+done
+
+# Optionally print debug info.
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
+    # Old bash workaround, see above.
+    echo "extra flags before to @prog@:" >&2
+    printf "  %q\n" ${extraBefore+"${extraBefore[@]}"}  >&2
+    echo "original flags to @prog@:" >&2
+    printf "  %q\n" ${params+"${params[@]}"} >&2
+    echo "extra flags after to @prog@:" >&2
+    printf "  %q\n" ${extraAfter+"${extraAfter[@]}"} >&2
+fi
+
+@prog@ \
+    ${extraBefore+"${extraBefore[@]}"} \
+    ${params+"${params[@]}"} \
+    ${extraAfter+"${extraAfter[@]}"}
+
+if [ "$output" ]; then
+    # Single explicit output
+    signIfRequired "$output"
+else
+    # Multiple inputs, rewritten in place
+    for input in "${inputs[@]}"; do
+      signIfRequired "$input"
+    done
+fi
diff --git a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
index 859e37905949..5d2f2f977a70 100644
--- a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
@@ -9,11 +9,28 @@
 , lib
 , stdenvNoCC
 , bintools ? null, libc ? null, coreutils ? null, shell ? stdenvNoCC.shell, gnugrep ? null
+, netbsd ? null, netbsdCross ? null
+, sharedLibraryLoader ?
+  if libc == null then
+    null
+  else if stdenvNoCC.targetPlatform.isNetBSD then
+    if !(targetPackages ? netbsdCross) then
+      netbsd.ld_elf_so
+    else if libc != targetPackages.netbsdCross.headers then
+      targetPackages.netbsdCross.ld_elf_so
+    else
+      null
+  else
+    lib.getLib libc
 , nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
 , propagateDoc ? bintools != null && bintools ? man
 , extraPackages ? [], extraBuildCommands ? ""
 , buildPackages ? {}
+, targetPackages ? {}
 , useMacosReexportHack ? false
+
+# Darwin code signing support utilities
+, postLinkSignHook ? null, signingUtils ? null
 }:
 
 with lib;
@@ -51,19 +68,19 @@ let
   # The dynamic linker has different names on different platforms. This is a
   # shell glob that ought to match it.
   dynamicLinker =
-    /**/ if libc == null then null
-    else if targetPlatform.libc == "musl"             then "${libc_lib}/lib/ld-musl-*"
+    /**/ if sharedLibraryLoader == null then null
+    else if targetPlatform.libc == "musl"             then "${sharedLibraryLoader}/lib/ld-musl-*"
     else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then "/system/bin/linker"
     else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then "/system/bin/linker64"
-    else if targetPlatform.libc == "nblibc"           then "${libc_lib}/libexec/ld.elf_so"
-    else if targetPlatform.system == "i686-linux"     then "${libc_lib}/lib/ld-linux.so.2"
-    else if targetPlatform.system == "x86_64-linux"   then "${libc_lib}/lib/ld-linux-x86-64.so.2"
-    else if targetPlatform.system == "powerpc64le-linux" then "${libc_lib}/lib/ld64.so.2"
+    else if targetPlatform.libc == "nblibc"           then "${sharedLibraryLoader}/libexec/ld.elf_so"
+    else if targetPlatform.system == "i686-linux"     then "${sharedLibraryLoader}/lib/ld-linux.so.2"
+    else if targetPlatform.system == "x86_64-linux"   then "${sharedLibraryLoader}/lib/ld-linux-x86-64.so.2"
+    else if targetPlatform.system == "powerpc64le-linux" then "${sharedLibraryLoader}/lib/ld64.so.2"
     # ARM with a wildcard, which can be "" or "-armhf".
-    else if (with targetPlatform; isAarch32 && isLinux)   then "${libc_lib}/lib/ld-linux*.so.3"
-    else if targetPlatform.system == "aarch64-linux"  then "${libc_lib}/lib/ld-linux-aarch64.so.1"
-    else if targetPlatform.system == "powerpc-linux"  then "${libc_lib}/lib/ld.so.1"
-    else if targetPlatform.isMips                     then "${libc_lib}/lib/ld.so.1"
+    else if (with targetPlatform; isAarch32 && isLinux)   then "${sharedLibraryLoader}/lib/ld-linux*.so.3"
+    else if targetPlatform.system == "aarch64-linux"  then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1"
+    else if targetPlatform.system == "powerpc-linux"  then "${sharedLibraryLoader}/lib/ld.so.1"
+    else if targetPlatform.isMips                     then "${sharedLibraryLoader}/lib/ld.so.1"
     else if targetPlatform.isDarwin                   then "/usr/lib/dyld"
     else if targetPlatform.isFreeBSD                  then "/libexec/ld-elf.so.1"
     else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
@@ -221,10 +238,10 @@ stdenv.mkDerivation {
     ##
     ## Dynamic linker support
     ##
-    + ''
+    + optionalString (sharedLibraryLoader != null) ''
       if [[ -z ''${dynamicLinker+x} ]]; then
         echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2
-        local dynamicLinker="${libc_lib}/lib/ld*.so.?"
+        local dynamicLinker="${sharedLibraryLoader}/lib/ld*.so.?"
       fi
     ''
 
@@ -243,9 +260,9 @@ stdenv.mkDerivation {
 
         ${if targetPlatform.isDarwin then ''
           printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook
-        '' else ''
-          if [ -e ${libc_lib}/lib/32/ld-linux.so.2 ]; then
-            echo ${libc_lib}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
+        '' else lib.optionalString (sharedLibraryLoader != null) ''
+          if [ -e ${sharedLibraryLoader}/lib/32/ld-linux.so.2 ]; then
+            echo ${sharedLibraryLoader}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
           fi
           touch $out/nix-support/ld-set-dynamic-linker
         ''}
@@ -340,6 +357,24 @@ stdenv.mkDerivation {
     )
 
     ##
+    ## Code signing on Apple Silicon
+    ##
+    + optionalString (targetPlatform.isDarwin && targetPlatform.isAarch64) ''
+      echo 'source ${postLinkSignHook}' >> $out/nix-support/post-link-hook
+
+      export signingUtils=${signingUtils}
+
+      wrap \
+        ${targetPrefix}install_name_tool \
+        ${./darwin-install_name_tool-wrapper.sh} \
+        "${bintools_bin}/bin/${targetPrefix}install_name_tool"
+
+      wrap \
+        ${targetPrefix}strip ${./darwin-strip-wrapper.sh} \
+        "${bintools_bin}/bin/${targetPrefix}strip"
+    ''
+
+    ##
     ## Extra custom steps
     ##
     + extraBuildCommands;
diff --git a/nixpkgs/pkgs/build-support/bintools-wrapper/ld-wrapper.sh b/nixpkgs/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
index 7ccf5510c880..e54dd6f47146 100644
--- a/nixpkgs/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
+++ b/nixpkgs/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
@@ -102,6 +102,8 @@ declare -a libDirs
 declare -A libs
 declare -i relocatable=0 link32=0
 
+linkerOutput="a.out"
+
 if
     [ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 ] \
         || [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] \
@@ -153,6 +155,24 @@ then
     done
 fi
 
+# Determine linkerOutput
+prev=
+for p in \
+    ${extraBefore+"${extraBefore[@]}"} \
+    ${params+"${params[@]}"} \
+    ${extraAfter+"${extraAfter[@]}"}
+do
+    case "$prev" in
+        -o)
+            # Informational for post-link-hook
+            linkerOutput="$p"
+            ;;
+        *)
+            ;;
+    esac
+    prev="$p"
+done
+
 if [[ "$link32" = "1" && "$setDynamicLinker" = 1 && -e "@out@/nix-support/dynamic-linker-m32" ]]; then
     # We have an alternate 32-bit linker and we're producing a 32-bit ELF, let's
     # use it.
@@ -223,7 +243,11 @@ fi
 
 PATH="$path_backup"
 # Old bash workaround, see above.
-exec @prog@ \
+@prog@ \
     ${extraBefore+"${extraBefore[@]}"} \
     ${params+"${params[@]}"} \
     ${extraAfter+"${extraAfter[@]}"}
+
+if [ -e "@out@/nix-support/post-link-hook" ]; then
+    source @out@/nix-support/post-link-hook
+fi
diff --git a/nixpkgs/pkgs/build-support/build-bazel-package/default.nix b/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
index 988298ac72bf..198b9c3f617f 100644
--- a/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
+++ b/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
@@ -35,7 +35,7 @@ args@{
 # required for the build as configured, rather than fetching all the dependencies
 # which may not work in some situations (e.g. Java code which ends up relying on
 # Debian-specific /usr/share/java paths, but doesn't in the configured build).
-, fetchConfigured ? false
+, fetchConfigured ? true
 
 # Don’t add Bazel --copt and --linkopt from NIX_CFLAGS_COMPILE /
 # NIX_LDFLAGS. This is necessary when using a custom toolchain which
@@ -126,7 +126,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
       find $bazelOut/external -maxdepth 1 -type l | while read symlink; do
         name="$(basename "$symlink")"
         rm "$symlink"
-        test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker"
+        test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker" || true
       done
 
       # Patching symlinks to remove build directory reference
diff --git a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
index 1911d08d2a1c..868686bd5c01 100644
--- a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
+++ b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -14,6 +14,7 @@ args @ {
 , unshareNet ? false
 , unshareUts ? true
 , unshareCgroup ? true
+, dieWithParent ? true
 , ...
 }:
 
@@ -22,7 +23,7 @@ let
   buildFHSEnv = callPackage ./env.nix { };
 
   env = buildFHSEnv (removeAttrs args [
-    "runScript" "extraInstallCommands" "meta" "passthru"
+    "runScript" "extraInstallCommands" "meta" "passthru" "dieWithParent"
     "unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc"
   ]);
 
@@ -30,6 +31,13 @@ let
     files = [
       # NixOS Compatibility
       "static"
+      "nix" # mainly for nixUnstable users, but also for access to nix/netrc
+      # Shells
+      "bashrc"
+      "zshenv"
+      "zshrc"
+      "zinputrc"
+      "zprofile"
       # Users, Groups, NSS
       "passwd"
       "group"
@@ -136,7 +144,7 @@ let
       ${lib.optionalString unshareNet "--unshare-net"}
       ${lib.optionalString unshareUts "--unshare-uts"}
       ${lib.optionalString unshareCgroup "--unshare-cgroup"}
-      --die-with-parent
+      ${lib.optionalString dieWithParent "--die-with-parent"}
       --ro-bind /nix /nix
       # Our glibc will look for the cache in its own path in `/nix/store`.
       # As such, we need a cache to exist there, because pressure-vessel
diff --git a/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c b/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
index a438b80e1829..27e70e3fe5c4 100644
--- a/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
+++ b/nixpkgs/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
@@ -43,7 +43,6 @@ const gchar *create_tmpdir() {
 void pivot_host(const gchar *guest) {
   g_autofree gchar *point = g_build_filename(guest, "host", NULL);
   fail_if(g_mkdir(point, 0755));
-  fail_if(mount(0, "/", 0, MS_PRIVATE | MS_REC, 0));
   fail_if(pivot_root(guest, point));
 }
 
@@ -122,6 +121,9 @@ int main(gint argc, gchar **argv) {
       fail("unshare", unshare_errno);
     }
 
+    // hide all mounts we do from the parent
+    fail_if(mount(0, "/", 0, MS_PRIVATE | MS_REC, 0));
+
     if (uid != 0) {
       spit("/proc/self/setgroups", "deny");
       spit("/proc/self/uid_map", "%d %d 1", uid, uid);
diff --git a/nixpkgs/pkgs/build-support/build-pecl.nix b/nixpkgs/pkgs/build-support/build-pecl.nix
index d75d3cf943a0..d3a8cc54a146 100644
--- a/nixpkgs/pkgs/build-support/build-pecl.nix
+++ b/nixpkgs/pkgs/build-support/build-pecl.nix
@@ -33,4 +33,5 @@ stdenv.mkDerivation (args // {
       (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
       internalDeps}
   '';
+  checkPhase = "NO_INTERACTON=yes make test";
 })
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index b402893100b0..2e62aef46048 100644
--- a/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/nixpkgs/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -25,8 +25,9 @@ dontLink=0
 nonFlagArgs=0
 cc1=0
 # shellcheck disable=SC2193
-[[ "@prog@" = *++ ]] && isCpp=1 || isCpp=0
-cppInclude=1
+[[ "@prog@" = *++ ]] && isCxx=1 || isCxx=0
+cxxInclude=1
+cxxLibrary=1
 cInclude=1
 setDynamicLinker=1
 
@@ -50,15 +51,15 @@ while (( "$n" < "$nParams" )); do
         dontLink=1
     elif [[ "$p" = -x && "$p2" = *-header ]]; then
         dontLink=1
-    elif [[ "$p" = -x && "$p2" = c++* && "$isCpp" = 0 ]]; then
-        isCpp=1
+    elif [[ "$p" = -x && "$p2" = c++* && "$isCxx" = 0 ]]; then
+        isCxx=1
     elif [ "$p" = -nostdlib ]; then
-        isCpp=-1
+        cxxLibrary=0
     elif [ "$p" = -nostdinc ]; then
         cInclude=0
-        cppInclude=0
+        cxxInclude=0
     elif [ "$p" = -nostdinc++ ]; then
-        cppInclude=0
+        cxxInclude=0
     elif [[ "$p" = -static || "$p" = -static-pie ]]; then
         setDynamicLinker=0
     elif [[ "$p" != -?* ]]; then
@@ -131,12 +132,13 @@ if [ "$NIX_ENFORCE_NO_NATIVE_@suffixSalt@" = 1 ]; then
     params=(${rest+"${rest[@]}"})
 fi
 
-if [[ "$isCpp" = 1 ]]; then
-    NIX_CFLAGS_LINK_@suffixSalt@+=" $NIX_CXXSTDLIB_LINK_@suffixSalt@"
-fi
-
-if [[ "$cppInclude" = 1 ]]; then
-    NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@"
+if [[ "$isCxx" = 1 ]]; then
+    if [[ "$cxxInclude" = 1 ]]; then
+        NIX_CFLAGS_COMPILE_@suffixSalt@+=" $NIX_CXXSTDLIB_COMPILE_@suffixSalt@"
+    fi
+    if [[ "$cxxLibrary" = 1 ]]; then
+        NIX_CFLAGS_LINK_@suffixSalt@+=" $NIX_CXXSTDLIB_LINK_@suffixSalt@"
+    fi
 fi
 
 source @out@/nix-support/add-hardening.sh
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
index 14317cbe4cc5..235d244a7c0d 100644
--- a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
@@ -64,6 +64,7 @@ let
 
   useGccForLibs = isClang
     && libcxx == null
+    && !stdenv.targetPlatform.isDarwin
     && !(stdenv.targetPlatform.useLLVM or false)
     && !(stdenv.targetPlatform.useAndroidPrebuilt or false)
     && !(stdenv.targetPlatform.isiOS or false)
@@ -370,7 +371,7 @@ stdenv.mkDerivation {
       done
     ''
     + optionalString (libcxx.isLLVM or false) (''
-      echo "-isystem ${libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
+      echo "-isystem ${lib.getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
       echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags
     '' + lib.optionalString stdenv.targetPlatform.isLinux ''
       echo "-lc++abi" >> $out/nix-support/libcxx-ldflags
@@ -404,7 +405,7 @@ stdenv.mkDerivation {
       echo "$ccLDFlags" >> $out/nix-support/cc-ldflags
       echo "$ccCFlags" >> $out/nix-support/cc-cflags
     '' + optionalString (targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false)) ''
-      echo " -L${libcxx}/lib" >> $out/nix-support/cc-ldflags
+      echo " -L${lib.getLib libcxx}/lib" >> $out/nix-support/cc-ldflags
     ''
 
     ##
@@ -432,14 +433,16 @@ stdenv.mkDerivation {
     # Always add -march based on cpu in triple. Sometimes there is a
     # discrepency (x86_64 vs. x86-64), so we provide an "arch" arg in
     # that case.
-    + optionalString ((targetPlatform ? gcc.arch) &&
+    # TODO: aarch64-darwin has mcpu incompatible with gcc
+    + optionalString ((targetPlatform ? gcc.arch) && (isClang || !(stdenv.isDarwin && stdenv.isAarch64)) &&
                       isGccArchSupported targetPlatform.gcc.arch) ''
       echo "-march=${targetPlatform.gcc.arch}" >> $out/nix-support/cc-cflags-before
     ''
 
     # -mcpu is not very useful. You should use mtune and march
     # instead. It’s provided here for backwards compatibility.
-    + optionalString (targetPlatform ? gcc.cpu) ''
+    # TODO: aarch64-darwin has mcpu incompatible with gcc
+    + optionalString ((targetPlatform ? gcc.cpu) && (isClang || !(stdenv.isDarwin && stdenv.isAarch64))) ''
       echo "-mcpu=${targetPlatform.gcc.cpu}" >> $out/nix-support/cc-cflags-before
     ''
 
@@ -491,6 +494,10 @@ stdenv.mkDerivation {
         echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
     ''
 
+    + optionalString targetPlatform.isAndroid ''
+      echo "-D__ANDROID_API__=${targetPlatform.sdkVer}" >> $out/nix-support/cc-cflags
+    ''
+
     # There are a few tools (to name one libstdcxx5) which do not work
     # well with multi line flags, so make the flags single line again
     + ''
diff --git a/nixpkgs/pkgs/build-support/docker/default.nix b/nixpkgs/pkgs/build-support/docker/default.nix
index 54eb13d38ff3..9369e7d3158f 100644
--- a/nixpkgs/pkgs/build-support/docker/default.nix
+++ b/nixpkgs/pkgs/build-support/docker/default.nix
@@ -37,6 +37,10 @@
 
 let
 
+  inherit (lib)
+    optionals
+    ;
+
   mkDbExtraCommand = contents: let
     contentsList = if builtins.isList contents then contents else [ contents ];
   in ''
@@ -86,6 +90,8 @@ rec {
     , finalImageName ? imageName
       # This used to set a tag to the pulled image
     , finalImageTag ? "latest"
+      # This is used to disable TLS certificate verification, allowing access to http registries on (hopefully) trusted networks
+    , tlsVerify ? true
 
     , name ? fixName "docker-image-${finalImageName}-${finalImageTag}.tar"
     }:
@@ -105,7 +111,13 @@ rec {
       sourceURL = "docker://${imageName}@${imageDigest}";
       destNameTag = "${finalImageName}:${finalImageTag}";
     } ''
-      skopeo --insecure-policy --tmpdir=$TMPDIR --override-os ${os} --override-arch ${arch} copy "$sourceURL" "docker-archive://$out:$destNameTag"
+      skopeo \
+        --src-tls-verify=${lib.boolToString tlsVerify} \
+        --insecure-policy \
+        --tmpdir=$TMPDIR \
+        --override-os ${os} \
+        --override-arch ${arch} \
+        copy "$sourceURL" "docker-archive://$out:$destNameTag"
     '';
 
   # We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.
@@ -532,7 +544,7 @@ rec {
         passthru.layer = layer;
         passthru.imageTag =
           if tag != null
-            then lib.toLower tag
+            then tag
             else
               lib.head (lib.strings.splitString "-" (baseNameOf result.outPath));
         # Docker can't be made to run darwin binaries
@@ -786,7 +798,11 @@ rec {
     fakeRootCommands ? "",
     # We pick 100 to ensure there is plenty of room for extension. I
     # believe the actual maximum is 128.
-    maxLayers ? 100
+    maxLayers ? 100,
+    # Whether to include store paths in the image. You generally want to leave
+    # this on, but tooling may disable this to insert the store paths more
+    # efficiently via other means, such as bind mounting the host store.
+    includeStorePaths ? true,
   }:
     assert
       (lib.assertMsg (maxLayers > 1)
@@ -834,7 +850,9 @@ rec {
         '';
       };
 
-      closureRoots = [ baseJson ] ++ contentsList;
+      closureRoots = optionals includeStorePaths /* normally true */ (
+        [ baseJson ] ++ contentsList
+      );
       overallClosure = writeText "closure" (lib.concatStringsSep " " closureRoots);
 
       # These derivations are only created as implementation details of docker-tools,
diff --git a/nixpkgs/pkgs/build-support/docker/examples.nix b/nixpkgs/pkgs/build-support/docker/examples.nix
index 7dbee38feeb4..f890d0a77a26 100644
--- a/nixpkgs/pkgs/build-support/docker/examples.nix
+++ b/nixpkgs/pkgs/build-support/docker/examples.nix
@@ -91,7 +91,7 @@ rec {
   nixFromDockerHub = pullImage {
     imageName = "nixos/nix";
     imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357";
-    sha256 = "07q9y9r7fsd18sy95ybrvclpkhlal12d30ybnf089hq7v1hgxbi7";
+    sha256 = "19fw0n3wmddahzr20mhdqv6jkjn1kanh6n2mrr08ai53dr8ph5n7";
     finalImageTag = "2.2.1";
     finalImageName = "nix";
   };
@@ -516,4 +516,29 @@ rec {
     bash
     layeredImageWithFakeRootCommands
   ];
+
+  helloOnRoot = pkgs.dockerTools.streamLayeredImage {
+    name = "hello";
+    tag = "latest";
+    contents = [
+      (pkgs.buildEnv {
+        name = "hello-root";
+        paths = [ pkgs.hello ];
+      })
+    ];
+    config.Cmd = [ "hello" ];
+  };
+
+  helloOnRootNoStore = pkgs.dockerTools.streamLayeredImage {
+    name = "hello";
+    tag = "latest";
+    contents = [
+      (pkgs.buildEnv {
+        name = "hello-root";
+        paths = [ pkgs.hello ];
+      })
+    ];
+    config.Cmd = [ "hello" ];
+    includeStorePaths = false;
+  };
 }
diff --git a/nixpkgs/pkgs/build-support/emacs/wrapper.nix b/nixpkgs/pkgs/build-support/emacs/wrapper.nix
index fcbf5bcabe6d..571d0eb687ce 100644
--- a/nixpkgs/pkgs/build-support/emacs/wrapper.nix
+++ b/nixpkgs/pkgs/build-support/emacs/wrapper.nix
@@ -159,7 +159,7 @@ runCommand
         (add-to-list 'load-path "$out/share/emacs/site-lisp")
         (add-to-list 'exec-path "$out/bin")
         ${optionalString nativeComp ''
-          (add-to-list 'comp-eln-load-path "$out/share/emacs/native-lisp/")
+          (add-to-list 'native-comp-eln-load-path "$out/share/emacs/native-lisp/")
         ''}
         EOF
         # Link subdirs.el from the emacs distribution
@@ -170,7 +170,7 @@ runCommand
 
         ${optionalString nativeComp ''
           $emacs/bin/emacs --batch \
-            --eval "(add-to-list 'comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \
+            --eval "(add-to-list 'native-comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \
             -f batch-native-compile "$siteStart" "$subdirs"
         ''}
       '';
diff --git a/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerConfig.nix b/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerConfig.nix
index e8b2403d8f33..9fd813bfa575 100644
--- a/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerConfig.nix
+++ b/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerConfig.nix
@@ -1,4 +1,4 @@
-pkgargs@{ lib, haskellPackages, writeText, gawk }:
+pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }:
 let
   generic-fetcher =
     import ./generic-fetcher.nix pkgargs;
diff --git a/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerLayer.nix b/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerLayer.nix
index 0fbbc078efc3..869ba637429c 100644
--- a/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerLayer.nix
+++ b/nixpkgs/pkgs/build-support/fetchdocker/fetchDockerLayer.nix
@@ -1,4 +1,4 @@
-pkgargs@{ lib, haskellPackages, writeText, gawk }:
+pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }:
 let
   generic-fetcher =
     import ./generic-fetcher.nix pkgargs;
diff --git a/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git b/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
index f2df9d9a8693..661e0d674c58 100755
--- a/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -47,6 +47,7 @@ Options:
       --deepClone     Clone the entire repository.
       --no-deepClone  Make a shallow clone of just the required ref.
       --leave-dotGit  Keep the .git directories.
+      --fetch-lfs     Fetch git Large File Storage (LFS) files.
       --fetch-submodules Fetch submodules.
       --builder       Clone as fetchgit does, but url, rev, and out option are mandatory.
       --quiet         Only print the final json summary.
diff --git a/nixpkgs/pkgs/build-support/fetchgitea/default.nix b/nixpkgs/pkgs/build-support/fetchgitea/default.nix
new file mode 100644
index 000000000000..79804588cfe5
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/fetchgitea/default.nix
@@ -0,0 +1,7 @@
+# Gitea's URLs are compatible with GitHub
+
+{ lib, fetchFromGitHub }:
+
+{ domain, ... }@args:
+
+fetchFromGitHub ((removeAttrs args [ "domain" ]) // { githubBase = domain; })
diff --git a/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix b/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix
index b61cd9a0d902..292baed20dfe 100644
--- a/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix
+++ b/nixpkgs/pkgs/build-support/fetchurl/mirrors.nix
@@ -417,6 +417,11 @@
     "https://pypi.io/packages/source/"
   ];
 
+  # Python Test-PyPI mirror
+  testpypi = [
+    "https://test.pypi.io/packages/source/"
+  ];
+
   # Mozilla projects.
   mozilla = [
     "http://download.cdn.mozilla.net/pub/mozilla.org/"
diff --git a/nixpkgs/pkgs/build-support/libredirect/libredirect.c b/nixpkgs/pkgs/build-support/libredirect/libredirect.c
index c8d6956a6bfe..dfa2978e9f44 100644
--- a/nixpkgs/pkgs/build-support/libredirect/libredirect.c
+++ b/nixpkgs/pkgs/build-support/libredirect/libredirect.c
@@ -9,6 +9,7 @@
 #include <limits.h>
 #include <string.h>
 #include <spawn.h>
+#include <dirent.h>
 
 #define MAX_REDIRECTS 128
 
@@ -189,9 +190,85 @@ int posix_spawnp(pid_t * pid, const char * file,
     return posix_spawnp_real(pid, rewrite(file, buf), file_actions, attrp, argv, envp);
 }
 
-int execv(const char *path, char *const argv[])
+int execv(const char * path, char * const argv[])
 {
-    int (*execv_real) (const char *path, char *const argv[]) = dlsym(RTLD_NEXT, "execv");
+    int (*execv_real) (const char * path, char * const argv[]) = dlsym(RTLD_NEXT, "execv");
     char buf[PATH_MAX];
     return execv_real(rewrite(path, buf), argv);
 }
+
+int execvp(const char * path, char * const argv[])
+{
+    int (*_execvp) (const char *, char * const argv[]) = dlsym(RTLD_NEXT, "execvp");
+    char buf[PATH_MAX];
+    return _execvp(rewrite(path, buf), argv);
+}
+
+int execve(const char * path, char * const argv[], char * const envp[])
+{
+    int (*_execve) (const char *, char * const argv[], char * const envp[]) = dlsym(RTLD_NEXT, "execve");
+    char buf[PATH_MAX];
+    return _execve(rewrite(path, buf), argv, envp);
+}
+
+DIR * opendir(const char * path)
+{
+    char buf[PATH_MAX];
+    DIR * (*_opendir) (const char*) = dlsym(RTLD_NEXT, "opendir");
+
+    return _opendir(rewrite(path, buf));
+}
+
+#define SYSTEM_CMD_MAX 512
+
+char *replace_substring(char * source, char * buf, char * replace_string, char * start_ptr, char * suffix_ptr) {
+    char head[SYSTEM_CMD_MAX] = {0};
+    strncpy(head, source, start_ptr - source);
+
+    char tail[SYSTEM_CMD_MAX] = {0};
+    if(suffix_ptr < source + strlen(source)) {
+       strcpy(tail, suffix_ptr);
+    }
+
+    sprintf(buf, "%s%s%s", head, replace_string, tail);
+    return buf;
+}
+
+char *replace_string(char * buf, char * from, char * to) {
+    int num_matches = 0;
+    char * matches[SYSTEM_CMD_MAX];
+    int from_len = strlen(from);
+    for(int i=0; i<strlen(buf); i++){
+       char *cmp_start = buf + i;
+       if(strncmp(from, cmp_start, from_len) == 0){
+          matches[num_matches] = cmp_start;
+          num_matches++;
+       }
+    }
+    int len_diff = strlen(to) - strlen(from);
+    for(int n = 0; n < num_matches; n++) {
+       char replaced[SYSTEM_CMD_MAX];
+       replace_substring(buf, replaced, to, matches[n], matches[n]+from_len);
+       strcpy(buf, replaced);
+       for(int nn = n+1; nn < num_matches; nn++) {
+          matches[nn] += len_diff;
+       }
+    }
+    return buf;
+}
+
+void rewriteSystemCall(const char * command, char * buf) {
+    strcpy(buf, command);
+    for (int n = 0; n < nrRedirects; ++n) {
+       replace_string(buf, from[n], to[n]);
+    }
+}
+
+int system(const char *command)
+{
+    int (*_system) (const char*) = dlsym(RTLD_NEXT, "system");
+
+    char newCommand[SYSTEM_CMD_MAX];
+    rewriteSystemCall(command, newCommand);
+    return _system(newCommand);
+}
diff --git a/nixpkgs/pkgs/build-support/libredirect/test.c b/nixpkgs/pkgs/build-support/libredirect/test.c
index b57664db3c19..722d1303771c 100644
--- a/nixpkgs/pkgs/build-support/libredirect/test.c
+++ b/nixpkgs/pkgs/build-support/libredirect/test.c
@@ -2,6 +2,7 @@
 #include <fcntl.h>
 #include <spawn.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 #include <sys/stat.h>
@@ -31,6 +32,10 @@ void test_execv(void) {
     assert(execv(TESTPATH, argv) == 0);
 }
 
+void test_system(void) {
+    assert(system(TESTPATH) == 0);
+}
+
 int main(void)
 {
     FILE *testfp;
@@ -50,6 +55,7 @@ int main(void)
     assert(stat(TESTPATH, &testsb) != -1);
 
     test_spawn();
+    test_system();
     test_execv();
 
     /* If all goes well, this is never reached because test_execv() replaces
diff --git a/nixpkgs/pkgs/build-support/make-desktopitem/default.nix b/nixpkgs/pkgs/build-support/make-desktopitem/default.nix
index 329286bd3628..1491a3ad9119 100644
--- a/nixpkgs/pkgs/build-support/make-desktopitem/default.nix
+++ b/nixpkgs/pkgs/build-support/make-desktopitem/default.nix
@@ -12,6 +12,8 @@
 , mimeType ? null
 , categories ? null
 , startupNotify ? null
+, noDisplay ? null
+, prefersNonDefaultGPU ? null
 , extraDesktopEntries ? { } # Extra key-value pairs to add to the [Desktop Entry] section. This may override other values
 , extraEntries ? "" # Extra configuration. Will be appended to the end of the file and may thus contain extra sections
 , fileValidation ? true # whether to validate resulting desktop file.
@@ -35,6 +37,8 @@ let
     "MimeType" = nullableToString mimeType;
     "Categories" = nullableToString categories;
     "StartupNotify" = nullableToString startupNotify;
+    "NoDisplay" = nullableToString noDisplay;
+    "PrefersNonDefaultGPU" = nullableToString prefersNonDefaultGPU;
   } // extraDesktopEntries;
 
   # Map all entries to a list of lines
diff --git a/nixpkgs/pkgs/build-support/mkshell/default.nix b/nixpkgs/pkgs/build-support/mkshell/default.nix
index a70dc0390cb5..7ca4cc23c1d5 100644
--- a/nixpkgs/pkgs/build-support/mkshell/default.nix
+++ b/nixpkgs/pkgs/build-support/mkshell/default.nix
@@ -3,18 +3,22 @@
 # A special kind of derivation that is only meant to be consumed by the
 # nix-shell.
 {
-  inputsFrom ? [], # a list of derivations whose inputs will be made available to the environment
-  buildInputs ? [],
-  nativeBuildInputs ? [],
-  propagatedBuildInputs ? [],
-  propagatedNativeBuildInputs ? [],
-  ...
+  # a list of packages to add to the shell environment
+  packages ? [ ]
+, # propagate all the inputs from the given derivations
+  inputsFrom ? [ ]
+, buildInputs ? [ ]
+, nativeBuildInputs ? [ ]
+, propagatedBuildInputs ? [ ]
+, propagatedNativeBuildInputs ? [ ]
+, ...
 }@attrs:
 let
   mergeInputs = name: lib.concatLists (lib.catAttrs name
-    ([attrs] ++ inputsFrom));
+    ([ attrs ] ++ inputsFrom));
 
   rest = builtins.removeAttrs attrs [
+    "packages"
     "inputsFrom"
     "buildInputs"
     "nativeBuildInputs"
@@ -26,15 +30,15 @@ in
 
 stdenv.mkDerivation ({
   name = "nix-shell";
-  phases = ["nobuildPhase"];
+  phases = [ "nobuildPhase" ];
 
   buildInputs = mergeInputs "buildInputs";
-  nativeBuildInputs = mergeInputs "nativeBuildInputs";
+  nativeBuildInputs = packages ++ (mergeInputs "nativeBuildInputs");
   propagatedBuildInputs = mergeInputs "propagatedBuildInputs";
   propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs";
 
   shellHook = lib.concatStringsSep "\n" (lib.catAttrs "shellHook"
-    (lib.reverseList inputsFrom ++ [attrs]));
+    (lib.reverseList inputsFrom ++ [ attrs ]));
 
   nobuildPhase = ''
     echo
diff --git a/nixpkgs/pkgs/build-support/nuke-references/builder.sh b/nixpkgs/pkgs/build-support/nuke-references/builder.sh
deleted file mode 100644
index 7da322032185..000000000000
--- a/nixpkgs/pkgs/build-support/nuke-references/builder.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-source $stdenv/setup
-
-mkdir -p $out/bin
-cat > $out/bin/nuke-refs <<EOF
-#! $SHELL -e
-
-excludes=""
-while getopts e: o; do
-    case "\$o" in
-        e) storeId=\$(echo "\$OPTARG" | $perl/bin/perl -ne "print \"\\\$1\" if m|^\Q$NIX_STORE\E/([a-z0-9]{32})-.*|")
-           if [ -z "\$storeId" ]; then
-               echo "-e argument must be a Nix store path"
-               exit 1
-           fi
-           excludes="\$excludes(?!\$storeId)"
-        ;;
-    esac
-done
-shift \$((\$OPTIND-1))
-
-for i in "\$@"; do
-    if test ! -L "\$i" -a -f "\$i"; then
-        cat "\$i" | $perl/bin/perl -pe "s|\Q$NIX_STORE\E/\$excludes[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > "\$i.tmp"
-        if test -x "\$i"; then chmod +x "\$i.tmp"; fi
-        mv "\$i.tmp" "\$i"
-    fi
-done
-EOF
-chmod +x $out/bin/nuke-refs
diff --git a/nixpkgs/pkgs/build-support/nuke-references/darwin-sign-fixup.sh b/nixpkgs/pkgs/build-support/nuke-references/darwin-sign-fixup.sh
new file mode 100644
index 000000000000..940c18e5a627
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/nuke-references/darwin-sign-fixup.sh
@@ -0,0 +1,5 @@
+# Fixup hook for nukeReferences, not stdenv
+
+source @signingUtils@
+
+fixupHooks+=(signIfRequired)
diff --git a/nixpkgs/pkgs/build-support/nuke-references/default.nix b/nixpkgs/pkgs/build-support/nuke-references/default.nix
index d894b56d366a..03f6fe53b544 100644
--- a/nixpkgs/pkgs/build-support/nuke-references/default.nix
+++ b/nixpkgs/pkgs/build-support/nuke-references/default.nix
@@ -3,11 +3,35 @@
 # path (/nix/store/eeee...).  This is useful for getting rid of
 # dependencies that you know are not actually needed at runtime.
 
-{ stdenvNoCC, perl }:
+{ lib, stdenvNoCC, perl, signingUtils, shell ? stdenvNoCC.shell }:
+
+let
+  stdenv = stdenvNoCC;
+
+  darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64;
+in
 
 stdenvNoCC.mkDerivation {
   name = "nuke-references";
-  builder = ./builder.sh;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    substituteAll ${./nuke-refs.sh} $out/bin/nuke-refs
+    chmod a+x $out/bin/nuke-refs
+  '';
+
+  postFixup = lib.optionalString darwinCodeSign ''
+    mkdir -p $out/nix-support
+    substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh
+  '';
+
   # FIXME: get rid of perl dependency.
   inherit perl;
+  inherit (builtins) storeDir;
+  shell = lib.getBin shell + (shell.shellPath or "");
+  signingUtils = if darwinCodeSign then signingUtils else null;
 }
diff --git a/nixpkgs/pkgs/build-support/nuke-references/nuke-refs.sh b/nixpkgs/pkgs/build-support/nuke-references/nuke-refs.sh
new file mode 100644
index 000000000000..21eb855cbad9
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/nuke-references/nuke-refs.sh
@@ -0,0 +1,33 @@
+#! @shell@
+
+fixupHooks=()
+
+if [ -e @out@/nix-support/setup-hooks.sh ]; then
+    source @out@/nix-support/setup-hooks.sh
+fi
+
+excludes=""
+while getopts e: o; do
+    case "$o" in
+        e) storeId=$(echo "$OPTARG" | @perl@/bin/perl -ne "print \"\$1\" if m|^\Q@storeDir@\E/([a-z0-9]{32})-.*|")
+           if [ -z "$storeId" ]; then
+               echo "-e argument must be a Nix store path"
+               exit 1
+           fi
+           excludes="$excludes(?!$storeId)"
+        ;;
+    esac
+done
+shift $(($OPTIND-1))
+
+for i in "$@"; do
+    if test ! -L "$i" -a -f "$i"; then
+        cat "$i" | @perl@/bin/perl -pe "s|\Q@storeDir@\E/$excludes[a-z0-9]{32}-|@storeDir@/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > "$i.tmp"
+        if test -x "$i"; then chmod +x "$i.tmp"; fi
+        mv "$i.tmp" "$i"
+
+        for hook in "${fixupHooks[@]}"; do
+            eval "$hook" "$i"
+        done
+    fi
+done
diff --git a/nixpkgs/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh b/nixpkgs/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh
new file mode 100644
index 000000000000..940c18e5a627
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/remove-references-to/darwin-sign-fixup.sh
@@ -0,0 +1,5 @@
+# Fixup hook for nukeReferences, not stdenv
+
+source @signingUtils@
+
+fixupHooks+=(signIfRequired)
diff --git a/nixpkgs/pkgs/build-support/remove-references-to/default.nix b/nixpkgs/pkgs/build-support/remove-references-to/default.nix
index 8b1d05fc2307..f022611ef913 100644
--- a/nixpkgs/pkgs/build-support/remove-references-to/default.nix
+++ b/nixpkgs/pkgs/build-support/remove-references-to/default.nix
@@ -3,32 +3,33 @@
 # non-existent path (/nix/store/eeee...).  This is useful for getting rid of
 # dependencies that you know are not actually needed at runtime.
 
-{ stdenv, writeScriptBin }:
-
-writeScriptBin "remove-references-to" ''
-#! ${stdenv.shell} -e
-
-# References to remove
-targets=()
-while getopts t: o; do
-    case "$o" in
-        t) storeId=$(echo "$OPTARG" | sed -n "s|^$NIX_STORE/\\([a-z0-9]\{32\}\\)-.*|\1|p")
-           if [ -z "$storeId" ]; then
-               echo "-t argument must be a Nix store path"
-               exit 1
-           fi
-           targets+=("$storeId")
-    esac
-done
-shift $(($OPTIND-1))
-
-# Files to remove the references from
-regions=()
-for i in "$@"; do
-    test ! -L "$i" -a -f "$i" && regions+=("$i")
-done
-
-for target in "''${targets[@]}" ; do
-    sed -i -e "s|$NIX_STORE/$target-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "''${regions[@]}"
-done
-''
+{ lib, stdenvNoCC, signingUtils, shell ? stdenvNoCC.shell }:
+
+let
+  stdenv = stdenvNoCC;
+
+  darwinCodeSign = stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64;
+in
+
+stdenv.mkDerivation {
+  name = "remove-references-to";
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    substituteAll ${./remove-references-to.sh} $out/bin/remove-references-to
+    chmod a+x $out/bin/remove-references-to
+  '';
+
+  postFixup = lib.optionalString darwinCodeSign ''
+    mkdir -p $out/nix-support
+    substituteAll ${./darwin-sign-fixup.sh} $out/nix-support/setup-hooks.sh
+  '';
+
+  inherit (builtins) storeDir;
+  shell = lib.getBin shell + (shell.shellPath or "");
+  signingUtils = if darwinCodeSign then signingUtils else null;
+}
diff --git a/nixpkgs/pkgs/build-support/remove-references-to/remove-references-to.sh b/nixpkgs/pkgs/build-support/remove-references-to/remove-references-to.sh
new file mode 100644
index 000000000000..d8d38dbd80a9
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/remove-references-to/remove-references-to.sh
@@ -0,0 +1,37 @@
+#! @shell@ -e
+
+fixupHooks=()
+
+if [ -e @out@/nix-support/setup-hooks.sh ]; then
+    source @out@/nix-support/setup-hooks.sh
+fi
+
+# References to remove
+targets=()
+while getopts t: o; do
+    case "$o" in
+        t) storeId=$(echo "$OPTARG" | sed -n "s|^@storeDir@/\\([a-z0-9]\{32\}\\)-.*|\1|p")
+           if [ -z "$storeId" ]; then
+               echo "-t argument must be a Nix store path"
+               exit 1
+           fi
+           targets+=("$storeId")
+    esac
+done
+shift $(($OPTIND-1))
+
+# Files to remove the references from
+regions=()
+for i in "$@"; do
+    test ! -L "$i" -a -f "$i" && regions+=("$i")
+done
+
+for target in "${targets[@]}" ; do
+    sed -i -e "s|@storeDir@/$target-|@storeDir@/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "${regions[@]}"
+done
+
+for region in "${regions[@]}"; do
+    for hook in "${fixupHooks[@]}"; do
+        eval "$hook" "$i"
+    done
+done
diff --git a/nixpkgs/pkgs/build-support/replace-secret/replace-secret.nix b/nixpkgs/pkgs/build-support/replace-secret/replace-secret.nix
new file mode 100644
index 000000000000..e04d1aed5f70
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/replace-secret/replace-secret.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, python3 }:
+
+stdenv.mkDerivation {
+  name = "replace-secret";
+  buildInputs = [ python3 ];
+  phases = [ "installPhase" "checkPhase" ];
+  installPhase = ''
+    install -D ${./replace-secret.py} $out/bin/replace-secret
+    patchShebangs $out
+  '';
+  doCheck = true;
+  checkPhase = ''
+    install -m 0600 ${./test/input_file} long_test
+    $out/bin/replace-secret "replace this" ${./test/passwd} long_test
+    $out/bin/replace-secret "and this" ${./test/rsa} long_test
+    diff ${./test/expected_long_output} long_test
+
+    install -m 0600 ${./test/input_file} short_test
+    $out/bin/replace-secret "replace this" <(echo "a") short_test
+    $out/bin/replace-secret "and this" <(echo "b") short_test
+    diff ${./test/expected_short_output} short_test
+  '';
+  meta = with lib; {
+    platforms = platforms.all;
+    maintainers = with maintainers; [ talyz ];
+    license = licenses.mit;
+    description = "Replace a string in one file with a secret from a second file";
+    longDescription = ''
+      Replace a string in one file with a secret from a second file.
+
+      Since the secret is read from a file, it won't be leaked through
+      '/proc/<pid>/cmdline', unlike when 'sed' or 'replace' is used.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/build-support/replace-secret/replace-secret.py b/nixpkgs/pkgs/build-support/replace-secret/replace-secret.py
new file mode 100755
index 000000000000..30ff41d491ba
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/replace-secret/replace-secret.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+import argparse
+from argparse import RawDescriptionHelpFormatter
+
+description = """
+Replace a string in one file with a secret from a second file.
+
+Since the secret is read from a file, it won't be leaked through
+'/proc/<pid>/cmdline', unlike when 'sed' or 'replace' is used.
+"""
+
+parser = argparse.ArgumentParser(
+    description=description,
+    formatter_class=RawDescriptionHelpFormatter
+)
+parser.add_argument("string_to_replace", help="the string to replace")
+parser.add_argument("secret_file", help="the file containing the secret")
+parser.add_argument("file", help="the file to perform the replacement on")
+args = parser.parse_args()
+
+with open(args.secret_file) as sf, open(args.file, 'r+') as f:
+    old = f.read()
+    secret = sf.read().strip("\n")
+    new_content = old.replace(args.string_to_replace, secret)
+    f.seek(0)
+    f.write(new_content)
+    f.truncate()
diff --git a/nixpkgs/pkgs/build-support/replace-secret/test/expected_long_output b/nixpkgs/pkgs/build-support/replace-secret/test/expected_long_output
new file mode 100644
index 000000000000..37bd66b905f5
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/replace-secret/test/expected_long_output
@@ -0,0 +1,30 @@
+beginning
+middle $6$UcbJUl5g$HRMfKNKsLTfVbcQb.P5o0bmZUfHDYkWseMSuZ8F5jSIGZZcI3Jnit23f8ZeZOGi4KL86HVM9RYqrpYySOu/fl0 not this
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAzrru6v5tfwQl6L+rOUjtLo8kbhMUlCLXP7TYngSGrkzPMWe+
+0gB04UAmiPZXfBmvj5fPqYiFjIaEDHE/SD41vJB/RJKKtId2gCAIHhBLkbr+4+60
+yEbLkJci5i4kJC1dt8OKFEzXkaVnwOSgjH+0NwO3bstZ+E70zMXS9+NS71qGsIEb
+5J1TnacwW/u6CdFyakLljWOXOR14rLIpiPBBFLf+oZiepjIhlWXWHqsxZOb7zMI0
+T4W5WJ2dwGFsJ8rkYaGZ+A5qzYbi/KmHqaSPaNDsyoi7yJhAhKPByALJU916+8QO
+xOnqZxWGki3PDzCslRwW4i3mGbZlBQMnlfbN3QIDAQABAoIBAHDn1W7QkFrLmCy6
+6bf6pVdFZF8d2qJhOPAZRClhTXFKj+pqv+QPzcXr9F/fMr6bhK/G+Oqdnlq2aM4m
+16oMF+spe+impEyeo1CsreJFghBQcb9o8qFjUPBiKvROBP0hLcscZ4BYy29HSBgo
+harWYEWfqQJA251q+fYQoP0z0WrZKddOZbRRnJ0ICRxAE7IEtDT6EYt8R9oGi2j4
+/rpdW+rYGjW3TcmzdR7lpVMJRLlbMbSdR8n6cI6rnfySygcoE5tFX5t/YZSNbBPg
+GebKCbEHYNTTG8bC1qjUyzlbEQ6XYWvFO7HTKU7105XpjYTQFByeo0IVkin0o5KW
+t7eQWb0CgYEA6zZUWsYoQ13nXEU6Ky89Q9uhesMfaJ/F2X5ikQSRqRvrR3QR+ULe
+eNnCl10O9SiFpR4b5gSbLSHMffxGN60P1nEO4CiIKE+gOii8Kdk5htIJFy/dcZUc
+PuPM+zD9/6Is5sAWUZo45bnT6685h6EjM2+6zNZtx/XMjSfWbHaY+HMCgYEA4QAy
+6ZEgd6FHnNfM/q2o8XU3d6OCdhcu26u6ydnCalbSpPSKWOi6gnHK4ZnGdryXgIYw
+hRkvYINfiONkShYytotIh4YxUbgpwdvJRyKa2ZdWhcMmtFzZOcEVzQTKBasFT74C
+Wo0iybZ++XZh3M0+n7oyyx39aR7diZ+/zq6PnG8CgYB8B1QH4cHNdDDRqPd5WhmW
+NLQ7xbREOSvc+hYDnkMoxz4TmZL4u1gQpdNEeZ+visSeQvg3HGqvK8lnDaYBKdLW
+IxvS+8yAZSx6PoyqDI+XFh4RCf5dLGGOkBTAyB7Hs761lsiuEwK5sHmdJ/LQIBot
+v1bjOJb/AA/yxvT8kLUtHQKBgGIA9iwqXJv/EfRNQytDdS0HQ4vHGtJZMr3YRVoa
+kcZD3yieo4wqguLCsf4mPv4FE3CWAphW6f39+yTi9xIWLSy56nOtjdnsf7PDCh8E
+AbL5amSFJly1fKDda6OLjHt/jKa5Osk6ZIa8CP6cA/BrLfXg4rL6cyDQouqJPMDH
+5CHdAoGBAIChjbTyoYvANkoANCK4SuqLUYeiYREfiM3sqHe1xirK1PPHw03ZLITl
+ltjo9qE6kPXWcTBVckTKGFlntyCT283FC0/vMmHo8dTdtxF4/wSbkqs3ORuJ3p5J
+cNtLYGD3vgwLmg6tTur4U60XN+tYDzWGteez8J9GwTMfKJmuS9af
+-----END RSA PRIVATE KEY-----
+end
diff --git a/nixpkgs/pkgs/build-support/replace-secret/test/expected_short_output b/nixpkgs/pkgs/build-support/replace-secret/test/expected_short_output
new file mode 100644
index 000000000000..3c81b2e2f991
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/replace-secret/test/expected_short_output
@@ -0,0 +1,4 @@
+beginning
+middle a not this
+b
+end
diff --git a/nixpkgs/pkgs/build-support/replace-secret/test/input_file b/nixpkgs/pkgs/build-support/replace-secret/test/input_file
new file mode 100644
index 000000000000..1e7eadfaab20
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/replace-secret/test/input_file
@@ -0,0 +1,4 @@
+beginning
+middle replace this not this
+and this
+end
diff --git a/nixpkgs/pkgs/build-support/replace-secret/test/passwd b/nixpkgs/pkgs/build-support/replace-secret/test/passwd
new file mode 100644
index 000000000000..68f266226e4a
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/replace-secret/test/passwd
@@ -0,0 +1 @@
+$6$UcbJUl5g$HRMfKNKsLTfVbcQb.P5o0bmZUfHDYkWseMSuZ8F5jSIGZZcI3Jnit23f8ZeZOGi4KL86HVM9RYqrpYySOu/fl0
diff --git a/nixpkgs/pkgs/build-support/replace-secret/test/rsa b/nixpkgs/pkgs/build-support/replace-secret/test/rsa
new file mode 100644
index 000000000000..138cc99ed225
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/replace-secret/test/rsa
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAzrru6v5tfwQl6L+rOUjtLo8kbhMUlCLXP7TYngSGrkzPMWe+
+0gB04UAmiPZXfBmvj5fPqYiFjIaEDHE/SD41vJB/RJKKtId2gCAIHhBLkbr+4+60
+yEbLkJci5i4kJC1dt8OKFEzXkaVnwOSgjH+0NwO3bstZ+E70zMXS9+NS71qGsIEb
+5J1TnacwW/u6CdFyakLljWOXOR14rLIpiPBBFLf+oZiepjIhlWXWHqsxZOb7zMI0
+T4W5WJ2dwGFsJ8rkYaGZ+A5qzYbi/KmHqaSPaNDsyoi7yJhAhKPByALJU916+8QO
+xOnqZxWGki3PDzCslRwW4i3mGbZlBQMnlfbN3QIDAQABAoIBAHDn1W7QkFrLmCy6
+6bf6pVdFZF8d2qJhOPAZRClhTXFKj+pqv+QPzcXr9F/fMr6bhK/G+Oqdnlq2aM4m
+16oMF+spe+impEyeo1CsreJFghBQcb9o8qFjUPBiKvROBP0hLcscZ4BYy29HSBgo
+harWYEWfqQJA251q+fYQoP0z0WrZKddOZbRRnJ0ICRxAE7IEtDT6EYt8R9oGi2j4
+/rpdW+rYGjW3TcmzdR7lpVMJRLlbMbSdR8n6cI6rnfySygcoE5tFX5t/YZSNbBPg
+GebKCbEHYNTTG8bC1qjUyzlbEQ6XYWvFO7HTKU7105XpjYTQFByeo0IVkin0o5KW
+t7eQWb0CgYEA6zZUWsYoQ13nXEU6Ky89Q9uhesMfaJ/F2X5ikQSRqRvrR3QR+ULe
+eNnCl10O9SiFpR4b5gSbLSHMffxGN60P1nEO4CiIKE+gOii8Kdk5htIJFy/dcZUc
+PuPM+zD9/6Is5sAWUZo45bnT6685h6EjM2+6zNZtx/XMjSfWbHaY+HMCgYEA4QAy
+6ZEgd6FHnNfM/q2o8XU3d6OCdhcu26u6ydnCalbSpPSKWOi6gnHK4ZnGdryXgIYw
+hRkvYINfiONkShYytotIh4YxUbgpwdvJRyKa2ZdWhcMmtFzZOcEVzQTKBasFT74C
+Wo0iybZ++XZh3M0+n7oyyx39aR7diZ+/zq6PnG8CgYB8B1QH4cHNdDDRqPd5WhmW
+NLQ7xbREOSvc+hYDnkMoxz4TmZL4u1gQpdNEeZ+visSeQvg3HGqvK8lnDaYBKdLW
+IxvS+8yAZSx6PoyqDI+XFh4RCf5dLGGOkBTAyB7Hs761lsiuEwK5sHmdJ/LQIBot
+v1bjOJb/AA/yxvT8kLUtHQKBgGIA9iwqXJv/EfRNQytDdS0HQ4vHGtJZMr3YRVoa
+kcZD3yieo4wqguLCsf4mPv4FE3CWAphW6f39+yTi9xIWLSy56nOtjdnsf7PDCh8E
+AbL5amSFJly1fKDda6OLjHt/jKa5Osk6ZIa8CP6cA/BrLfXg4rL6cyDQouqJPMDH
+5CHdAoGBAIChjbTyoYvANkoANCK4SuqLUYeiYREfiM3sqHe1xirK1PPHw03ZLITl
+ltjo9qE6kPXWcTBVckTKGFlntyCT283FC0/vMmHo8dTdtxF4/wSbkqs3ORuJ3p5J
+cNtLYGD3vgwLmg6tTur4U60XN+tYDzWGteez8J9GwTMfKJmuS9af
+-----END RSA PRIVATE KEY-----
diff --git a/nixpkgs/pkgs/build-support/rust/default-crate-overrides.nix b/nixpkgs/pkgs/build-support/rust/default-crate-overrides.nix
index 3d2dc3733c22..61cec2a6abab 100644
--- a/nixpkgs/pkgs/build-support/rust/default-crate-overrides.nix
+++ b/nixpkgs/pkgs/build-support/rust/default-crate-overrides.nix
@@ -92,7 +92,7 @@ in
   nettle-sys = attrs: {
     nativeBuildInputs = [ pkg-config ];
     buildInputs = [ nettle clang ];
-    LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+    LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
   };
 
   openssl = attrs: {
diff --git a/nixpkgs/pkgs/build-support/rust/default.nix b/nixpkgs/pkgs/build-support/rust/default.nix
index 6d213c934954..a3b280050efe 100644
--- a/nixpkgs/pkgs/build-support/rust/default.nix
+++ b/nixpkgs/pkgs/build-support/rust/default.nix
@@ -7,6 +7,7 @@
 , cargoInstallHook
 , cargoSetupHook
 , fetchCargoTarball
+, importCargoLock
 , runCommandNoCC
 , rustPlatform
 , callPackage
@@ -14,6 +15,7 @@
 , git
 , rust
 , rustc
+, libiconv
 , windows
 }:
 
@@ -43,6 +45,7 @@ let
     , cargoDepsHook ? ""
     , buildType ? "release"
     , meta ? {}
+    , cargoLock ? null
     , cargoVendorDir ? null
     , checkType ? buildType
     , depsExtraArgs ? {}
@@ -57,19 +60,22 @@ let
     , buildAndTestSubdir ? null
     , ... } @ args:
 
-    assert cargoVendorDir == null -> !(cargoSha256 == "" && cargoHash == "");
+    assert cargoVendorDir == null && cargoLock == null -> cargoSha256 == "" && cargoHash == ""
+      -> throw "cargoSha256, cargoHash, cargoVendorDir, or cargoLock must be set";
     assert buildType == "release" || buildType == "debug";
 
     let
 
-      cargoDeps = if cargoVendorDir == null
-        then fetchCargoTarball ({
-            inherit src srcs sourceRoot unpackPhase cargoUpdateHook;
-            name = cargoDepsName;
-            hash = cargoHash;
-            patches = cargoPatches;
-            sha256 = cargoSha256;
-          } // depsExtraArgs)
+      cargoDeps =
+        if cargoVendorDir == null
+        then if cargoLock != null then importCargoLock cargoLock
+        else fetchCargoTarball ({
+          inherit src srcs sourceRoot unpackPhase cargoUpdateHook;
+          name = cargoDepsName;
+          hash = cargoHash;
+          patches = cargoPatches;
+          sha256 = cargoSha256;
+        } // depsExtraArgs)
         else null;
 
       # If we have a cargoSha256 fixed-output derivation, validate it at build time
@@ -98,7 +104,7 @@ let
     # See https://os.phil-opp.com/testing/ for more information.
     assert useSysroot -> !(args.doCheck or true);
 
-    stdenv.mkDerivation ((removeAttrs args ["depsExtraArgs"]) // lib.optionalAttrs useSysroot {
+    stdenv.mkDerivation ((removeAttrs args [ "depsExtraArgs" "cargoLock" ]) // lib.optionalAttrs useSysroot {
       RUSTFLAGS = "--sysroot ${sysroot} " + (args.RUSTFLAGS or "");
     } // {
       inherit buildAndTestSubdir cargoDeps;
@@ -119,7 +125,9 @@ let
         rustc
       ];
 
-      buildInputs = buildInputs ++ lib.optional stdenv.hostPlatform.isMinGW windows.pthreads;
+      buildInputs = buildInputs
+        ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]
+        ++ lib.optionals stdenv.hostPlatform.isMinGW [ windows.pthreads ];
 
       patches = cargoPatches ++ patches;
 
diff --git a/nixpkgs/pkgs/build-support/rust/hooks/default.nix b/nixpkgs/pkgs/build-support/rust/hooks/default.nix
index e8927e2b542f..d86c9ebaed80 100644
--- a/nixpkgs/pkgs/build-support/rust/hooks/default.nix
+++ b/nixpkgs/pkgs/build-support/rust/hooks/default.nix
@@ -6,6 +6,7 @@
 , makeSetupHook
 , maturin
 , rust
+, rustc
 , stdenv
 , target ? rust.toRustTargetSpec stdenv.hostPlatform
 }:
@@ -85,7 +86,7 @@ in {
   maturinBuildHook = callPackage ({ }:
     makeSetupHook {
       name = "maturin-build-hook.sh";
-      deps = [ cargo maturin ];
+      deps = [ cargo maturin rustc ];
       substitutions = {
         inherit ccForBuild ccForHost cxxForBuild cxxForHost
           rustBuildPlatform rustTargetPlatform rustTargetPlatformSpec;
diff --git a/nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix b/nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix
new file mode 100644
index 000000000000..244572f79e80
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/import-cargo-lock.nix
@@ -0,0 +1,167 @@
+{ fetchgit, fetchurl, lib, runCommand, cargo, jq }:
+
+{
+  # Cargo lock file
+  lockFile
+
+  # Hashes for git dependencies.
+, outputHashes ? {}
+}:
+
+let
+  # Parse a git source into different components.
+  parseGit = src:
+    let
+      parts = builtins.match ''git\+([^?]+)(\?rev=(.*))?#(.*)?'' src;
+      rev = builtins.elemAt parts 2;
+    in
+      if parts == null then null
+      else {
+        url = builtins.elemAt parts 0;
+        sha = builtins.elemAt parts 3;
+      } // lib.optionalAttrs (rev != null) { inherit rev; };
+
+  packages = (builtins.fromTOML (builtins.readFile lockFile)).package;
+
+  # There is no source attribute for the source package itself. But
+  # since we do not want to vendor the source package anyway, we can
+  # safely skip it.
+  depPackages = (builtins.filter (p: p ? "source") packages);
+
+  # Create dependent crates from packages.
+  #
+  # Force evaluation of the git SHA -> hash mapping, so that an error is
+  # thrown if there are stale hashes. We cannot rely on gitShaOutputHash
+  # being evaluated otherwise, since there could be no git dependencies.
+  depCrates = builtins.deepSeq (gitShaOutputHash) (builtins.map mkCrate depPackages);
+
+  # Map package name + version to git commit SHA for packages with a git source.
+  namesGitShas = builtins.listToAttrs (
+    builtins.map nameGitSha (builtins.filter (pkg: lib.hasPrefix "git+" pkg.source) depPackages)
+  );
+
+  nameGitSha = pkg: let gitParts = parseGit pkg.source; in {
+    name = "${pkg.name}-${pkg.version}";
+    value = gitParts.sha;
+  };
+
+  # Convert the attrset provided through the `outputHashes` argument to a
+  # a mapping from git commit SHA -> output hash.
+  #
+  # There may be multiple different packages with different names
+  # originating from the same git repository (typically a Cargo
+  # workspace). By using the git commit SHA as a universal identifier,
+  # the user does not have to specify the output hash for every package
+  # individually.
+  gitShaOutputHash = lib.mapAttrs' (nameVer: hash:
+    let
+      unusedHash = throw "A hash was specified for ${nameVer}, but there is no corresponding git dependency.";
+      rev = namesGitShas.${nameVer} or unusedHash; in {
+      name = rev;
+      value = hash;
+    }) outputHashes;
+
+  # We can't use the existing fetchCrate function, since it uses a
+  # recursive hash of the unpacked crate.
+  fetchCrate = pkg: fetchurl {
+    name = "crate-${pkg.name}-${pkg.version}.tar.gz";
+    url = "https://crates.io/api/v1/crates/${pkg.name}/${pkg.version}/download";
+    sha256 = pkg.checksum;
+  };
+
+  # Fetch and unpack a crate.
+  mkCrate = pkg:
+    let
+      gitParts = parseGit pkg.source;
+    in
+      if pkg.source == "registry+https://github.com/rust-lang/crates.io-index" then
+      let
+        crateTarball = fetchCrate pkg;
+      in runCommand "${pkg.name}-${pkg.version}" {} ''
+        mkdir $out
+        tar xf "${crateTarball}" -C $out --strip-components=1
+
+        # Cargo is happy with largely empty metadata.
+        printf '{"files":{},"package":"${pkg.checksum}"}' > "$out/.cargo-checksum.json"
+      ''
+      else if gitParts != null then
+      let
+        missingHash = throw ''
+          No hash was found while vendoring the git dependency ${pkg.name}-${pkg.version}. You can add
+          a hash through the `outputHashes` argument of `importCargoLock`:
+
+          outputHashes = {
+            "${pkg.name}-${pkg.version}" = "<hash>";
+          };
+
+          If you use `buildRustPackage`, you can add this attribute to the `cargoLock`
+          attribute set.
+        '';
+        sha256 = gitShaOutputHash.${gitParts.sha} or missingHash;
+        tree = fetchgit {
+          inherit sha256;
+          inherit (gitParts) url;
+          rev = gitParts.sha; # The commit SHA is always available.
+        };
+      in runCommand "${pkg.name}-${pkg.version}" {} ''
+        tree=${tree}
+        if grep --quiet '\[workspace\]' "$tree/Cargo.toml"; then
+          # If the target package is in a workspace, find the crate path
+          # using `cargo metadata`.
+          crateCargoTOML=$(${cargo}/bin/cargo metadata --format-version 1 --no-deps --manifest-path $tree/Cargo.toml | \
+            ${jq}/bin/jq -r '.packages[] | select(.name == "${pkg.name}") | .manifest_path')
+
+            if [[ ! -z $crateCargoTOML ]]; then
+              tree=$(dirname $crateCargoTOML)
+            else
+              >&2 echo "Cannot find path for crate '${pkg.name}-${pkg.version}' in the Cargo workspace in: $tree"
+              exit 1
+            fi
+        fi
+
+        cp -prvd "$tree/" $out
+        chmod u+w $out
+
+        # Cargo is happy with empty metadata.
+        printf '{"files":{},"package":null}' > "$out/.cargo-checksum.json"
+
+        # Set up configuration for the vendor directory.
+        cat > $out/.cargo-config <<EOF
+        [source."${gitParts.url}"]
+        git = "${gitParts.url}"
+        ${lib.optionalString (gitParts ? rev) "rev = \"${gitParts.rev}\""}
+        replace-with = "vendored-sources"
+        EOF
+      ''
+      else throw "Cannot handle crate source: ${pkg.source}";
+
+  vendorDir = runCommand "cargo-vendor-dir" {} ''
+    mkdir -p $out/.cargo
+
+    ln -s ${lockFile} $out/Cargo.lock
+
+    cat > $out/.cargo/config <<EOF
+    [source.crates-io]
+    replace-with = "vendored-sources"
+
+    [source.vendored-sources]
+    directory = "cargo-vendor-dir"
+    EOF
+
+    declare -A keysSeen
+
+    for crate in ${toString depCrates}; do
+      # Link the crate directory, removing the output path hash from the destination.
+      ln -s "$crate" $out/$(basename "$crate" | cut -c 34-)
+
+      if [ -e "$crate/.cargo-config" ]; then
+        key=$(sed 's/\[source\."\(.*\)"\]/\1/; t; d' < "$crate/.cargo-config")
+        if [[ -z ''${keysSeen[$key]} ]]; then
+          keysSeen[$key]=1
+          cat "$crate/.cargo-config" >> $out/.cargo/config
+        fi
+      fi
+    done
+  '';
+in
+  vendorDir
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.lock b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.lock
new file mode 100644
index 000000000000..fd1b5e42ad30
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.lock
@@ -0,0 +1,83 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "basic"
+version = "0.1.0"
+dependencies = [
+ "rand",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "getrandom"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "rand"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.toml b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.toml
new file mode 100644
index 000000000000..f555bb0de62e
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "basic"
+version = "0.1.0"
+authors = ["Daniël de Kok <me@danieldk.eu>"]
+edition = "2018"
+
+[dependencies]
+rand = "0.8"
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/default.nix b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/default.nix
new file mode 100644
index 000000000000..d595b58109ad
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/default.nix
@@ -0,0 +1,18 @@
+{ rustPlatform }:
+
+rustPlatform.buildRustPackage {
+  pname = "basic";
+  version = "0.1.0";
+
+  src = ./.;
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+  };
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/basic
+  '';
+}
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/src/main.rs b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/src/main.rs
new file mode 100644
index 000000000000..50b4ed799e43
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/basic/src/main.rs
@@ -0,0 +1,9 @@
+use rand::Rng;
+
+fn main() {
+    let mut rng = rand::thread_rng();
+
+    // Always draw zero :).
+    let roll: u8 = rng.gen_range(0..1);
+    assert_eq!(roll, 0);
+}
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix
new file mode 100644
index 000000000000..2dd525a8ac3f
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/default.nix
@@ -0,0 +1,8 @@
+{ callPackage }:
+
+{
+  basic = callPackage ./basic { };
+  gitDependency = callPackage ./git-dependency { };
+  gitDependencyNoRev = callPackage ./git-dependency-no-rev { };
+  maturin = callPackage ./maturin { };
+}
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.lock b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.lock
new file mode 100644
index 000000000000..54b9c7c5739d
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.lock
@@ -0,0 +1,79 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "getrandom"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "git-dependency-no-rev"
+version = "0.1.0"
+dependencies = [
+ "rand",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "rand"
+version = "0.8.3"
+source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.0"
+source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.2"
+source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.3.0"
+source = "git+https://github.com/rust-random/rand.git#f0e01ee0a7257753cc51b291f62666f4765923ef"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.toml b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.toml
new file mode 100644
index 000000000000..770dfb86f523
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "git-dependency-no-rev"
+version = "0.1.0"
+authors = ["Daniël de Kok <me@danieldk.eu>"]
+edition = "2018"
+
+[dependencies]
+rand = { git = "https://github.com/rust-random/rand.git" }
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/default.nix b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/default.nix
new file mode 100644
index 000000000000..fc36edc40772
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/default.nix
@@ -0,0 +1,21 @@
+{ rustPlatform }:
+
+rustPlatform.buildRustPackage {
+  pname = "git-dependency-no-rev";
+  version = "0.1.0";
+
+  src = ./.;
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "rand-0.8.3" = "0ya2hia3cn31qa8894s3av2s8j5bjwb6yq92k0jsnlx7jid0jwqa";
+    };
+  };
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/git-dependency-no-rev
+  '';
+}
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/src/main.rs b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/src/main.rs
new file mode 100644
index 000000000000..50b4ed799e43
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-no-rev/src/main.rs
@@ -0,0 +1,9 @@
+use rand::Rng;
+
+fn main() {
+    let mut rng = rand::thread_rng();
+
+    // Always draw zero :).
+    let roll: u8 = rng.gen_range(0..1);
+    assert_eq!(roll, 0);
+}
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.lock b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.lock
new file mode 100644
index 000000000000..50600ef4caa5
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.lock
@@ -0,0 +1,79 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "getrandom"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "git-dependency"
+version = "0.1.0"
+dependencies = [
+ "rand",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "rand"
+version = "0.8.3"
+source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.0"
+source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.1"
+source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.3.0"
+source = "git+https://github.com/rust-random/rand.git?rev=0.8.3#6ecbe2626b2cc6110a25c97b1702b347574febc7"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.toml b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.toml
new file mode 100644
index 000000000000..11ee8b1763e6
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "git-dependency"
+version = "0.1.0"
+authors = ["Daniël de Kok <me@danieldk.eu>"]
+edition = "2018"
+
+[dependencies]
+rand = { git = "https://github.com/rust-random/rand.git", rev = "0.8.3" }
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/default.nix b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/default.nix
new file mode 100644
index 000000000000..17276c5f5c3c
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/default.nix
@@ -0,0 +1,21 @@
+{ rustPlatform }:
+
+rustPlatform.buildRustPackage {
+  pname = "git-dependency";
+  version = "0.1.0";
+
+  src = ./.;
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "rand-0.8.3" = "0l3p174bpwia61vcvxz5mw65a13ri3wy94z04xrnyy5lzciykz4f";
+    };
+  };
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/git-dependency
+  '';
+}
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/src/main.rs b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/src/main.rs
new file mode 100644
index 000000000000..50b4ed799e43
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/git-dependency/src/main.rs
@@ -0,0 +1,9 @@
+use rand::Rng;
+
+fn main() {
+    let mut rng = rand::thread_rng();
+
+    // Always draw zero :).
+    let roll: u8 = rng.gen_range(0..1);
+    assert_eq!(roll, 0);
+}
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/Cargo.lock b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/Cargo.lock
new file mode 100644
index 000000000000..5e698d4ff735
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/Cargo.lock
@@ -0,0 +1,682 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "ahash"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
+
+[[package]]
+name = "assert_approx_eq"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c07dab4369547dbe5114677b33fbbf724971019f3818172d59a97a61c774ffd"
+
+[[package]]
+name = "autocfg"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+
+[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "byteorder"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "const_fn"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
+dependencies = [
+ "cfg-if",
+ "const_fn",
+ "crossbeam-utils",
+ "lazy_static",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "lazy_static",
+]
+
+[[package]]
+name = "ctor"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "either"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "ghost"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "hashbrown"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "indoc"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
+dependencies = [
+ "indoc-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "indoc-impl"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "unindent",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "inventory"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f"
+dependencies = [
+ "ctor",
+ "ghost",
+ "inventory-impl",
+]
+
+[[package]]
+name = "inventory-impl"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e9a41747ae4633fce5adffb4d2e81ffc5e89593cb19917f8fb2cc5ff76507bf"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
+dependencies = [
+ "cfg-if",
+ "instant",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "paste"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+dependencies = [
+ "paste-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "paste-impl"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+dependencies = [
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "proptest"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12e6c80c1139113c28ee4670dc50cc42915228b51f56a9e407f0ec60f966646f"
+dependencies = [
+ "bitflags",
+ "byteorder",
+ "lazy_static",
+ "num-traits",
+ "quick-error",
+ "rand",
+ "rand_chacha",
+ "rand_xorshift",
+ "regex-syntax",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.13.2"
+dependencies = [
+ "assert_approx_eq",
+ "cfg-if",
+ "ctor",
+ "hashbrown",
+ "indoc",
+ "inventory",
+ "libc",
+ "num-bigint",
+ "num-complex",
+ "parking_lot",
+ "paste",
+ "proptest",
+ "pyo3",
+ "pyo3-macros",
+ "rustversion",
+ "serde",
+ "serde_json",
+ "trybuild",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.13.2"
+dependencies = [
+ "pyo3-macros-backend",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.13.2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rayon"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
+dependencies = [
+ "autocfg",
+ "crossbeam-deque",
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-utils",
+ "lazy_static",
+ "num_cpus",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
+
+[[package]]
+name = "rustapi-module"
+version = "0.1.0"
+dependencies = [
+ "pyo3",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"
+
+[[package]]
+name = "ryu"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "serde"
+version = "1.0.123"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.123"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.62"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+
+[[package]]
+name = "syn"
+version = "1.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "trybuild"
+version = "1.0.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99471a206425fba51842a9186315f32d91c56eadc21ea4c21f847b59cf778f8b"
+dependencies = [
+ "glob",
+ "lazy_static",
+ "serde",
+ "serde_json",
+ "termcolor",
+ "toml",
+]
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+
+[[package]]
+name = "unindent"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "word-count"
+version = "0.1.0"
+dependencies = [
+ "pyo3",
+ "rayon",
+]
diff --git a/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix
new file mode 100644
index 000000000000..af0de596b387
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchFromGitHub
+, python3
+, rustPlatform
+}:
+
+python3.pkgs.buildPythonPackage rec {
+  pname = "word-count";
+  version = "0.13.2";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "PyO3";
+    repo = "pyo3";
+    rev = "v${version}";
+    hash = "sha256-NOMrrfo8WjlPhtGxWUOPJS/UDDdbLQRCXR++Zd6JmIA=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    cp ${./Cargo.lock} Cargo.lock
+  '';
+
+  buildAndTestSubdir = "examples/word-count";
+
+  nativeBuildInputs = with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ];
+
+  pythonImportsCheck = [ "word_count" ];
+
+  meta = with lib; {
+    description = "PyO3 word count example";
+    homepage = "https://github.com/PyO3/pyo3";
+    license = licenses.asl20;
+    maintainers = [ maintainers.danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh b/nixpkgs/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh
index af2ff0cc9662..55e196e654df 100644
--- a/nixpkgs/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh
+++ b/nixpkgs/pkgs/build-support/setup-hooks/fix-darwin-dylib-names.sh
@@ -23,7 +23,7 @@ fixDarwinDylibNames() {
     for fn in "$@"; do
         if [ -L "$fn" ]; then continue; fi
         echo "$fn: fixing dylib"
-        int_out=$(install_name_tool -id "$fn" "${flags[@]}" "$fn" 2>&1)
+        int_out=$(@targetPrefix@install_name_tool -id "$fn" "${flags[@]}" "$fn" 2>&1)
         result=$?
         if [ "$result" -ne 0 ] &&
             ! grep "shared library stub file and can't be changed" <<< "$out"
diff --git a/nixpkgs/pkgs/build-support/trivial-builders.nix b/nixpkgs/pkgs/build-support/trivial-builders.nix
index 4995efd9a4bf..0bf67d21b3be 100644
--- a/nixpkgs/pkgs/build-support/trivial-builders.nix
+++ b/nixpkgs/pkgs/build-support/trivial-builders.nix
@@ -438,6 +438,35 @@ rec {
       done < graph
     '';
 
+  /*
+    Write the set of references to a file, that is, their immediate dependencies.
+
+    This produces the equivalent of `nix-store -q --references`.
+   */
+  writeDirectReferencesToFile = path: runCommand "runtime-references"
+    {
+      exportReferencesGraph = ["graph" path];
+      inherit path;
+    }
+    ''
+      touch ./references
+      while read p; do
+        read dummy
+        read nrRefs
+        if [[ $p == $path ]]; then
+          for ((i = 0; i < nrRefs; i++)); do
+            read ref;
+            echo $ref >>./references
+          done
+        else
+          for ((i = 0; i < nrRefs; i++)); do
+            read ref;
+          done
+        fi
+      done < graph
+      sort ./references >$out
+    '';
+
 
   /* Print an error message if the file with the specified name and
    * hash doesn't exist in the Nix store. This function should only
@@ -541,4 +570,37 @@ rec {
       phases = "unpackPhase patchPhase installPhase";
       installPhase = "cp -R ./ $out";
     };
+
+  /* Checks the command output contains the specified version
+   *
+   * Although simplistic, this test assures that the main program
+   * can run. While there's no substitute for a real test case,
+   * it does catch dynamic linking errors and such. It also provides
+   * some protection against accidentally building the wrong version,
+   * for example when using an 'old' hash in a fixed-output derivation.
+   *
+   * Examples:
+   *
+   * passthru.tests.version = testVersion { package = hello; };
+   *
+   * passthru.tests.version = testVersion {
+   *   package = seaweedfs;
+   *   command = "weed version";
+   * };
+   *
+   * passthru.tests.version = testVersion {
+   *   package = key;
+   *   command = "KeY --help";
+   *   # Wrong '2.5' version in the code. Drop on next version.
+   *   version = "2.5";
+   * };
+   */
+  testVersion =
+    { package,
+      command ? "${package.meta.mainProgram or package.pname or package.name} --version",
+      version ? package.version,
+    }: runCommand "test-version" { nativeBuildInputs = [ package ]; meta.timeout = 60; } ''
+      ${command} | grep -Fw ${version}
+      touch $out
+    '';
 }
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test.nix b/nixpkgs/pkgs/build-support/trivial-builders/test.nix
new file mode 100644
index 000000000000..204fb54fca3d
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test.nix
@@ -0,0 +1,53 @@
+{ lib, nixosTest, pkgs, writeText, hello, figlet, stdenvNoCC }:
+
+# -------------------------------------------------------------------------- #
+#
+#                         trivial-builders test
+#
+# -------------------------------------------------------------------------- #
+#
+#  This file can be run independently (quick):
+#
+#      $ pkgs/build-support/trivial-builders/test.sh
+#
+#  or in the build sandbox with a ~20s VM overhead
+#
+#      $ nix-build -A tests.trivial-builders
+#
+# -------------------------------------------------------------------------- #
+
+let
+  invokeSamples = file:
+    lib.concatStringsSep " " (
+      lib.attrValues (import file { inherit pkgs; })
+    );
+in
+nixosTest {
+  name = "nixpkgs-trivial-builders";
+  nodes.machine = { ... }: {
+    virtualisation.writableStore = true;
+
+    # Test runs without network, so we don't substitute and prepare our deps
+    nix.binaryCaches = lib.mkForce [];
+    environment.etc."pre-built-paths".source = writeText "pre-built-paths" (
+      builtins.toJSON [hello figlet stdenvNoCC]
+    );
+    environment.variables = {
+      SAMPLE = invokeSamples ./test/sample.nix;
+      REFERENCES = invokeSamples ./test/invoke-writeReferencesToFile.nix;
+      DIRECT_REFS = invokeSamples ./test/invoke-writeDirectReferencesToFile.nix;
+    };
+  };
+  testScript = ''
+    machine.succeed("""
+      ${./test.sh} 2>/dev/console
+    """)
+  '';
+  meta = {
+    license = lib.licenses.mit; # nixpkgs license
+    maintainers = with lib.maintainers; [
+      roberth
+    ];
+    description = "Run the Nixpkgs trivial builders tests";
+  };
+}
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test.sh b/nixpkgs/pkgs/build-support/trivial-builders/test.sh
new file mode 100755
index 000000000000..b7c4726a9be0
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+
+# -------------------------------------------------------------------------- #
+#
+#                         trivial-builders test
+#
+# -------------------------------------------------------------------------- #
+#
+#  This file can be run independently (quick):
+#
+#      $ pkgs/build-support/trivial-builders/test.sh
+#
+#  or in the build sandbox with a ~20s VM overhead
+#
+#      $ nix-build -A tests.trivial-builders
+#
+# -------------------------------------------------------------------------- #
+
+# strict bash
+set -euo pipefail
+
+# debug
+# set -x
+# PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
+
+cd "$(dirname ${BASH_SOURCE[0]})"  # nixpkgs root
+
+if [[ -z ${SAMPLE:-} ]]; then
+  sample=( `nix-build test/sample.nix` )
+  directRefs=( `nix-build test/invoke-writeDirectReferencesToFile.nix` )
+  references=( `nix-build test/invoke-writeReferencesToFile.nix` )
+else
+  # Injected by Nix (to avoid evaluating in a derivation)
+  # turn them into arrays
+  sample=($SAMPLE)
+  directRefs=($DIRECT_REFS)
+  references=($REFERENCES)
+fi
+
+echo >&2 Testing direct references...
+for i in "${!sample[@]}"; do
+  echo >&2 Checking '#'$i ${sample[$i]} ${directRefs[$i]}
+  diff -U3 \
+    <(sort <${directRefs[$i]}) \
+    <(nix-store -q --references ${sample[$i]} | sort)
+done
+
+echo >&2 Testing closure...
+for i in "${!sample[@]}"; do
+  echo >&2 Checking '#'$i ${sample[$i]} ${references[$i]}
+  diff -U3 \
+    <(sort <${references[$i]}) \
+    <(nix-store -q --requisites ${sample[$i]} | sort)
+done
+
+echo 'OK!'
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeDirectReferencesToFile.nix b/nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeDirectReferencesToFile.nix
new file mode 100644
index 000000000000..ead3f7a2f571
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeDirectReferencesToFile.nix
@@ -0,0 +1,4 @@
+{ pkgs ? import ../../../.. { config = {}; overlays = []; } }:
+pkgs.lib.mapAttrs
+  (k: v: pkgs.writeDirectReferencesToFile v)
+  (import ./sample.nix { inherit pkgs; })
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeReferencesToFile.nix b/nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeReferencesToFile.nix
new file mode 100644
index 000000000000..99c6c2f7dcc4
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test/invoke-writeReferencesToFile.nix
@@ -0,0 +1,4 @@
+{ pkgs ? import ../../../.. { config = {}; overlays = []; } }:
+pkgs.lib.mapAttrs
+  (k: v: pkgs.writeReferencesToFile v)
+  (import ./sample.nix { inherit pkgs; })
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test/sample.nix b/nixpkgs/pkgs/build-support/trivial-builders/test/sample.nix
new file mode 100644
index 000000000000..060be011093a
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test/sample.nix
@@ -0,0 +1,15 @@
+{ pkgs ? import ../../../.. { config = {}; overlays = []; } }:
+let
+  inherit (pkgs)
+    figlet
+    hello
+    writeText
+    ;
+in
+{
+  hello = hello;
+  figlet = figlet;
+  norefs = writeText "hi" "hello";
+  helloRef = writeText "hi" "hello ${hello}";
+  helloFigletRef = writeText "hi" "hello ${hello} ${figlet}";
+}
diff --git a/nixpkgs/pkgs/build-support/vm/default.nix b/nixpkgs/pkgs/build-support/vm/default.nix
index f6be1b299f61..cfc19c03cfdd 100644
--- a/nixpkgs/pkgs/build-support/vm/default.nix
+++ b/nixpkgs/pkgs/build-support/vm/default.nix
@@ -822,45 +822,6 @@ rec {
   /* The set of supported Dpkg-based distributions. */
 
   debDistros = {
-
-    # Interestingly, the SHA-256 hashes provided by Ubuntu in
-    # http://nl.archive.ubuntu.com/ubuntu/dists/{gutsy,hardy}/Release are
-    # wrong, but the SHA-1 and MD5 hashes are correct.  Intrepid is fine.
-
-    ubuntu1204i386 = {
-      name = "ubuntu-12.04-precise-i386";
-      fullName = "Ubuntu 12.04 Precise (i386)";
-      packagesLists =
-        [ (fetchurl {
-            url = "mirror://ubuntu/dists/precise/main/binary-i386/Packages.bz2";
-            sha256 = "18ns9h4qhvjfcip9z55grzi371racxavgqkp6b5kfkdq2wwwax2d";
-          })
-          (fetchurl {
-            url = "mirror://ubuntu/dists/precise/universe/binary-i386/Packages.bz2";
-            sha256 = "085lkzbnzkc74kfdmwdc32sfqyfz8dr0rbiifk8kx9jih3xjw2jk";
-          })
-        ];
-      urlPrefix = "mirror://ubuntu";
-      packages = commonDebPackages ++ [ "diffutils" ];
-    };
-
-    ubuntu1204x86_64 = {
-      name = "ubuntu-12.04-precise-amd64";
-      fullName = "Ubuntu 12.04 Precise (amd64)";
-      packagesLists =
-        [ (fetchurl {
-            url = "mirror://ubuntu/dists/precise/main/binary-amd64/Packages.bz2";
-            sha256 = "1aabpn0hdih6cbabyn87yvhccqj44q9k03mqmjsb920iqlckl3fc";
-          })
-          (fetchurl {
-            url = "mirror://ubuntu/dists/precise/universe/binary-amd64/Packages.bz2";
-            sha256 = "0x4hz5aplximgb7gnpvrhkw8m7a40s80rkm5b8hil0afblwlg4vr";
-          })
-        ];
-      urlPrefix = "mirror://ubuntu";
-      packages = commonDebPackages ++ [ "diffutils" ];
-    };
-
     ubuntu1404i386 = {
       name = "ubuntu-14.04-trusty-i386";
       fullName = "Ubuntu 14.04 Trusty (i386)";
@@ -929,119 +890,117 @@ rec {
       packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
     };
 
-    ubuntu1710i386 = {
-      name = "ubuntu-17.10-artful-i386";
-      fullName = "Ubuntu 17.10 Artful (i386)";
+    ubuntu1804i386 = {
+      name = "ubuntu-18.04-bionic-i386";
+      fullName = "Ubuntu 18.04 Bionic (i386)";
       packagesLists =
         [ (fetchurl {
-            url = "mirror://ubuntu/dists/artful/main/binary-i386/Packages.xz";
-            sha256 = "18yrj4kqdzm39q0527m97h5ing58hkm9yq9iyj636zh2rclym3c8";
+            url = "mirror://ubuntu/dists/bionic/main/binary-i386/Packages.xz";
+            sha256 = "0f0v4131kwf7m7f8j3288rlqdxk1k3vqy74b7fcfd6jz9j8d840i";
           })
           (fetchurl {
-            url = "mirror://ubuntu/dists/artful/universe/binary-i386/Packages.xz";
-            sha256 = "1v0njw2w80xfmxi7by76cs8hyxlla5h3gqajlpdw5srjgx2qrm2g";
+            url = "mirror://ubuntu/dists/bionic/universe/binary-i386/Packages.xz";
+            sha256 = "1v75c0dqr0wp0dqd4hnci92qqs4hll8frqdbpswadgxm5chn91bw";
           })
         ];
       urlPrefix = "mirror://ubuntu";
       packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
     };
 
-    ubuntu1710x86_64 = {
-      name = "ubuntu-17.10-artful-amd64";
-      fullName = "Ubuntu 17.10 Artful (amd64)";
+    ubuntu1804x86_64 = {
+      name = "ubuntu-18.04-bionic-amd64";
+      fullName = "Ubuntu 18.04 Bionic (amd64)";
       packagesLists =
         [ (fetchurl {
-            url = "mirror://ubuntu/dists/artful/main/binary-amd64/Packages.xz";
-            sha256 = "104g57j1l3vi8wb5f7rgjvjhf82ccs0vwhc59jfc4ynd51z7fqjk";
+            url = "mirror://ubuntu/dists/bionic/main/binary-amd64/Packages.xz";
+            sha256 = "1ls81bjyvmfz6i919kszl7xks1ibrh1xqhsk6698ackndkm0wp39";
           })
           (fetchurl {
-            url = "mirror://ubuntu/dists/artful/universe/binary-amd64/Packages.xz";
-            sha256 = "1qzs95wfy9inaskfx9cf1l5yd3aaqwzy72zzi9xyvkxi75k5gcn4";
+            url = "mirror://ubuntu/dists/bionic/universe/binary-amd64/Packages.xz";
+            sha256 = "1832nqpn4ap95b3sj870xqayrza9in4kih9jkmjax27pq6x15v1r";
           })
         ];
       urlPrefix = "mirror://ubuntu";
       packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
     };
 
-    ubuntu1804i386 = {
-      name = "ubuntu-18.04-bionic-i386";
-      fullName = "Ubuntu 18.04 Bionic (i386)";
+    ubuntu2004i386 = {
+      name = "ubuntu-20.04-focal-i386";
+      fullName = "Ubuntu 20.04 Focal (i386)";
       packagesLists =
         [ (fetchurl {
-            url = "mirror://ubuntu/dists/bionic/main/binary-i386/Packages.xz";
-            sha256 = "0f0v4131kwf7m7f8j3288rlqdxk1k3vqy74b7fcfd6jz9j8d840i";
+            url = "mirror://ubuntu/dists/focal/main/binary-i386/Packages.xz";
+            sha256 = "sha256-7RAYURoN3RKYQAHpwBS9TIV6vCmpURpphyMJQmV4wLc=";
           })
           (fetchurl {
-            url = "mirror://ubuntu/dists/bionic/universe/binary-i386/Packages.xz";
-            sha256 = "1v75c0dqr0wp0dqd4hnci92qqs4hll8frqdbpswadgxm5chn91bw";
+            url = "mirror://ubuntu/dists/focal/universe/binary-i386/Packages.xz";
+            sha256 = "sha256-oA551xVE80volUPgkMyvzpQ1d+GhuZd4DAe7dXZnULM=";
           })
         ];
       urlPrefix = "mirror://ubuntu";
       packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
     };
 
-    ubuntu1804x86_64 = {
-      name = "ubuntu-18.04-bionic-amd64";
-      fullName = "Ubuntu 18.04 Bionic (amd64)";
+    ubuntu2004x86_64 = {
+      name = "ubuntu-20.04-focal-amd64";
+      fullName = "Ubuntu 20.04 Focal (amd64)";
       packagesLists =
         [ (fetchurl {
-            url = "mirror://ubuntu/dists/bionic/main/binary-amd64/Packages.xz";
-            sha256 = "1ls81bjyvmfz6i919kszl7xks1ibrh1xqhsk6698ackndkm0wp39";
+            url = "mirror://ubuntu/dists/focal/main/binary-amd64/Packages.xz";
+            sha256 = "sha256-d1eSH/j+7Zw5NKDJk21EG6SiOL7j6myMHfXLzUP8mGE=";
           })
           (fetchurl {
-            url = "mirror://ubuntu/dists/bionic/universe/binary-amd64/Packages.xz";
-            sha256 = "1832nqpn4ap95b3sj870xqayrza9in4kih9jkmjax27pq6x15v1r";
+            url = "mirror://ubuntu/dists/focal/universe/binary-amd64/Packages.xz";
+            sha256 = "sha256-RqdG2seJvZU3rKVNsWgLnf9RwkgVMRE1A4IZnX2WudE=";
           })
         ];
       urlPrefix = "mirror://ubuntu";
       packages = commonDebPackages ++ [ "diffutils" "libc-bin" ];
     };
 
-    debian8i386 = {
-      name = "debian-8.11-jessie-i386";
-      fullName = "Debian 8.11 Jessie (i386)";
+    debian9i386 = {
+      name = "debian-9.13-stretch-i386";
+      fullName = "Debian 9.13 Stretch (i386)";
       packagesList = fetchurl {
-        url = "mirror://debian/dists/jessie/main/binary-i386/Packages.xz";
-        sha256 = "0adblarhx50yga900il6m25ng0csa81i3wid1dxxmydbdmri7v7d";
+        url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/stretch/main/binary-i386/Packages.xz";
+        sha256 = "sha256-fFRumd20wuVaYxzw0VPkAw5mQo8kIg+eXII15VSz9wA=";
       };
       urlPrefix = "mirror://debian";
       packages = commonDebianPackages;
     };
 
-    debian8x86_64 = {
-      name = "debian-8.11-jessie-amd64";
-      fullName = "Debian 8.11 Jessie (amd64)";
+    debian9x86_64 = {
+      name = "debian-9.13-stretch-amd64";
+      fullName = "Debian 9.13 Stretch (amd64)";
       packagesList = fetchurl {
-        url = "mirror://debian/dists/jessie/main/binary-amd64/Packages.xz";
-        sha256 = "09y1mv4kqllhxpk1ibjsyl5jig5bp0qxw6pp4sn56rglrpygmn5x";
+        url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/stretch/main/binary-amd64/Packages.xz";
+        sha256 = "sha256-1p4DEVpTGlBE3PtbQ90kYw4QNHkW0F4rna/Xz+ncMhw=";
       };
       urlPrefix = "mirror://debian";
       packages = commonDebianPackages;
     };
 
-    debian9i386 = {
-      name = "debian-9.8-stretch-i386";
-      fullName = "Debian 9.8 Stretch (i386)";
+    debian10i386 = {
+      name = "debian-10.9-buster-i386";
+      fullName = "Debian 10.9 Buster (i386)";
       packagesList = fetchurl {
-        url = "http://snapshot.debian.org/archive/debian/20200301T030401Z/dists/stretch/main/binary-i386/Packages.xz";
-        sha256 = "1jglr1d1jys3xddp8f7w9j05db39fah8xy4gfkpqbd1b5d2caslz";
+        url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/buster/main/binary-i386/Packages.xz";
+        sha256 = "sha256-zlkbKV+IGBCyWKD4v4LFM/EUA4TYS9fkLBPuF6MgUDo=";
       };
       urlPrefix = "mirror://debian";
       packages = commonDebianPackages;
     };
 
-    debian9x86_64 = {
-      name = "debian-9.8-stretch-amd64";
-      fullName = "Debian 9.8 Stretch (amd64)";
+    debian10x86_64 = {
+      name = "debian-10.9-buster-amd64";
+      fullName = "Debian 10.9 Buster (amd64)";
       packagesList = fetchurl {
-        url = "http://snapshot.debian.org/archive/debian/20190503T090946Z/dists/stretch/main/binary-amd64/Packages.xz";
-        sha256 = "01q00nl47p12n7wx0xclx59wf3zlkzrgj3zxpshyvb91xdnw5sh6";
+        url = "https://snapshot.debian.org/archive/debian/20210526T143040Z/dists/buster/main/binary-amd64/Packages.xz";
+        sha256 = "sha256-k13toY1b3CX7GBPQ7Jm24OMqCEsgPlGK8M99x57o69o=";
       };
       urlPrefix = "mirror://debian";
       packages = commonDebianPackages;
     };
-
-
   };
 
 
@@ -1168,7 +1127,7 @@ rec {
     "passwd"
   ];
 
-  commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" "mktemp" ];
+  commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" ];
 
 
   /* A set of functions that build the Linux distributions specified
diff --git a/nixpkgs/pkgs/build-support/writers/test.nix b/nixpkgs/pkgs/build-support/writers/test.nix
index 689b45a126ff..d0824b17bd1b 100644
--- a/nixpkgs/pkgs/build-support/writers/test.nix
+++ b/nixpkgs/pkgs/build-support/writers/test.nix
@@ -13,11 +13,11 @@ with writers;
 let
 
   bin = {
-    bash = writeBashBin "test_writers" ''
+    bash = writeBashBin "test-writers-bash-bin" ''
      if [[ "test" == "test" ]]; then echo "success"; fi
     '';
 
-    c = writeCBin "test_writers" { libraries = [ ]; } ''
+    c = writeCBin "test-writers-c" { libraries = [ ]; } ''
       #include <stdio.h>
       int main() {
         printf("success\n");
@@ -25,17 +25,17 @@ let
       }
     '';
 
-    dash = writeDashBin "test_writers" ''
+    dash = writeDashBin "test-writers-dash-bin" ''
      test '~' = '~' && echo 'success'
     '';
 
-    rust = writeRustBin "test_writers" {} ''
+    rust = writeRustBin "test-writers-rust-bin" {} ''
       fn main(){
         println!("success")
       }
     '';
 
-    haskell = writeHaskellBin "test_writers" { libraries = [ haskellPackages.acme-default ]; } ''
+    haskell = writeHaskellBin "test-writers-haskell-bin" { libraries = [ haskellPackages.acme-default ]; } ''
       import Data.Default
 
       int :: Int
@@ -47,7 +47,7 @@ let
         _ -> print "fail"
     '';
 
-    js = writeJSBin "test_writers" { libraries = [ nodePackages.semver ]; } ''
+    js = writeJSBin "test-writers-js-bin" { libraries = [ nodePackages.semver ]; } ''
       var semver = require('semver');
 
       if (semver.valid('1.2.3')) {
@@ -57,12 +57,12 @@ let
       }
     '';
 
-    perl = writePerlBin "test_writers" { libraries = [ perlPackages.boolean ]; } ''
+    perl = writePerlBin "test-writers-perl-bin" { libraries = [ perlPackages.boolean ]; } ''
       use boolean;
       print "success\n" if true;
     '';
 
-    python2 = writePython2Bin "test_writers" { libraries = [ python2Packages.enum ]; } ''
+    python2 = writePython2Bin "test-writers-python2-bin" { libraries = [ python2Packages.enum ]; } ''
       from enum import Enum
 
 
@@ -73,7 +73,7 @@ let
       print Test.a
     '';
 
-    python3 = writePython3Bin "test_writers" { libraries = [ python3Packages.pyyaml ]; } ''
+    python3 = writePython3Bin "test-writers-python3-bin" { libraries = [ python3Packages.pyyaml ]; } ''
       import yaml
 
       y = yaml.load("""
@@ -84,11 +84,11 @@ let
   };
 
   simple = {
-    bash = writeBash "test_bash" ''
+    bash = writeBash "test-writers-bash" ''
      if [[ "test" == "test" ]]; then echo "success"; fi
     '';
 
-    c = writeC "test_c" { libraries = [ glib.dev ]; } ''
+    c = writeC "test-writers-c" { libraries = [ glib.dev ]; } ''
       #include <gio/gio.h>
       #include <stdio.h>
       int main() {
@@ -106,11 +106,11 @@ let
       }
     '';
 
-    dash = writeDash "test_dash" ''
+    dash = writeDash "test-writers-dash" ''
      test '~' = '~' && echo 'success'
     '';
 
-    haskell = writeHaskell "test_haskell" { libraries = [ haskellPackages.acme-default ]; } ''
+    haskell = writeHaskell "test-writers-haskell" { libraries = [ haskellPackages.acme-default ]; } ''
       import Data.Default
 
       int :: Int
@@ -122,7 +122,7 @@ let
         _ -> print "fail"
     '';
 
-    js = writeJS "test_js" { libraries = [ nodePackages.semver ]; } ''
+    js = writeJS "test-writers-js" { libraries = [ nodePackages.semver ]; } ''
       var semver = require('semver');
 
       if (semver.valid('1.2.3')) {
@@ -132,12 +132,12 @@ let
       }
     '';
 
-    perl = writePerl "test_perl" { libraries = [ perlPackages.boolean ]; } ''
+    perl = writePerl "test-writers-perl" { libraries = [ perlPackages.boolean ]; } ''
       use boolean;
       print "success\n" if true;
     '';
 
-    python2 = writePython2 "test_python2" { libraries = [ python2Packages.enum ]; } ''
+    python2 = writePython2 "test-writers-python2" { libraries = [ python2Packages.enum ]; } ''
       from enum import Enum
 
 
@@ -148,7 +148,7 @@ let
       print Test.a
     '';
 
-    python3 = writePython3 "test_python3" { libraries = [ python3Packages.pyyaml ]; } ''
+    python3 = writePython3 "test-writers-python3" { libraries = [ python3Packages.pyyaml ]; } ''
       import yaml
 
       y = yaml.load("""
@@ -157,21 +157,21 @@ let
       print(y[0]['test'])
     '';
 
-    python2NoLibs = writePython2 "test_python2_no_libs" {} ''
+    python2NoLibs = writePython2 "test-writers-python2-no-libs" {} ''
       print("success")
     '';
 
-    python3NoLibs = writePython3 "test_python3_no_libs" {} ''
+    python3NoLibs = writePython3 "test-writers-python3-no-libs" {} ''
       print("success")
     '';
   };
 
 
   path = {
-    bash = writeBash "test_bash" (writeText "test" ''
+    bash = writeBash "test-writers-bash-path" (writeText "test" ''
       if [[ "test" == "test" ]]; then echo "success"; fi
     '');
-    haskell = writeHaskell "test_haskell" { libraries = [ haskellPackages.acme-default ]; } (writeText "test" ''
+    haskell = writeHaskell "test-writers-haskell-path" { libraries = [ haskellPackages.acme-default ]; } (writeText "test" ''
       import Data.Default
 
       int :: Int
@@ -184,8 +184,8 @@ let
     '');
   };
 
-  writeTest = expectedValue: test:
-    writeDash "test-writers" ''
+  writeTest = expectedValue: name: test:
+    writeDash "run-${name}" ''
       if test "$(${test})" != "${expectedValue}"; then
         echo 'test ${test} failed'
         exit 1
@@ -196,9 +196,9 @@ in runCommand "test-writers" {
   passthru = { inherit writeTest bin simple; };
   meta.platforms = lib.platforms.all;
 } ''
-  ${lib.concatMapStringsSep "\n" (test: writeTest "success" "${test}/bin/test_writers") (lib.attrValues bin)}
-  ${lib.concatMapStringsSep "\n" (test: writeTest "success" test) (lib.attrValues simple)}
-  ${lib.concatMapStringsSep "\n" (test: writeTest "success" test) (lib.attrValues path)}
+  ${lib.concatMapStringsSep "\n" (test: writeTest "success" test.name "${test}/bin/${test.name}") (lib.attrValues bin)}
+  ${lib.concatMapStringsSep "\n" (test: writeTest "success" test.name test) (lib.attrValues simple)}
+  ${lib.concatMapStringsSep "\n" (test: writeTest "success" test.name test) (lib.attrValues path)}
 
   echo 'nix-writers successfully tested' >&2
   touch $out
diff --git a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
index 6e2122091872..e76fee1a6eb8 100644
--- a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchurl
 , gettext
-, gnome3
+, gnome
 , itstool
 , libxml2
 , yelp-tools
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-user-docs";
-  version = "3.38.2";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1h9lyn80zccmgi6gpymabgrcj7km0sb1axll5z490qnx74xbn37m";
+    url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "09ld9r29nz64s04fmp3b2wwldmfnwxp4w36dkh7mbz5pdd3z7fwk";
   };
 
   nativeBuildInputs = [
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix b/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix
index ca7fdf1d4be1..1d9ddda377b9 100644
--- a/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix
+++ b/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix
@@ -1,11 +1,16 @@
 {lib, stdenv, fetchurl}:
 
+let
+  year = "2017";
+  minor = "a";
+in
+
 stdenv.mkDerivation rec {
   pname = "man-pages-posix";
-  version = "2017-a";
+  version = "${year}${minor}";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${version}.tar.xz";
+    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${year}-${minor}.tar.xz";
     sha256 = "ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3";
   };
 
diff --git a/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix b/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
index 5129cf271886..011e88dc1d2e 100644
--- a/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -1,14 +1,12 @@
-{ lib, stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome3 }:
+{ lib, stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome }:
 
-let
+stdenv.mkDerivation rec {
   pname = "cantarell-fonts";
-  version = "0.111";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "0.301";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "05hpnhihwm9sxlq1qn993g03pwkmpjbn0dvnba71r1gfjv0jp2w5";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "3d35db0ac03f9e6b0d5a53577591b714238985f4cfc31a0aa17f26cd74675e83";
   };
 
   nativeBuildInputs = [ meson ninja gettext appstream-glib ];
@@ -21,10 +19,10 @@ in stdenv.mkDerivation rec {
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "12ps2gjv1lmzbmkv16vgjmaahl3ayadpniyrx0z31sqn443r57hq";
+  outputHash = "1sczskw2kv3qy39i9mzw2lkl94a90bjgv5ln9acy5kh4gb2zmy7z";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
index e09ad70f1468..a78bf6b4a785 100644
--- a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchzip }:
 let
-  version = "2102.25";
+  version = "2105.24";
 in
 fetchzip {
   name = "cascadia-code-${version}";
 
   url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
 
-  sha256 = "14qhawcf1jmv68zdfbi2zfqdw4cf8fpk7plxzphmkqsp7hlw9pzx";
+  sha256 = "sha256-j3IPzrch8oueOmCDa2gpD8uYFs8cKWjkxcmicZcfqQ8=";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/nixpkgs/pkgs/data/fonts/edwin/default.nix b/nixpkgs/pkgs/data/fonts/edwin/default.nix
new file mode 100644
index 000000000000..4b1688dbc55e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edwin/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "0.52";
+in fetchurl {
+  name = "edwin-${version}";
+
+  url = "https://github.com/MuseScoreFonts/Edwin/archive/refs/tags/v${version}.tar.gz";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-e0ADK72ECl+QMvLWtFJfeHBmuEwzr9M+Kqvkd5Z2mmo=";
+
+  postFetch = ''
+    tar xzf $downloadedFile
+    mkdir -p $out/share/fonts/opentype
+    install Edwin-${version}/*.otf $out/share/fonts/opentype
+  '';
+
+  meta = with lib; {
+    description = "A text font for musical scores";
+    homepage = "https://github.com/MuseScoreFonts/Edwin";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inter/default.nix b/nixpkgs/pkgs/data/fonts/inter/default.nix
index ed8e9eb13a63..00117840cd54 100644
--- a/nixpkgs/pkgs/data/fonts/inter/default.nix
+++ b/nixpkgs/pkgs/data/fonts/inter/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "3.15";
+  version = "3.18";
 in fetchzip {
   name = "inter-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip {
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
-  sha256 = "0dnxczy2avc47wq5fc3psd1zbxbsjz5w24rkh5ynrfgw6n0753n0";
+  sha256 = "sha256-+wbN1vSS8v1Z1VIfDNeY9DB8Kr6v7UnFg37EPPAD7wI=";
 
   meta = with lib; {
     homepage = "https://rsms.me/inter/";
diff --git a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
index 77083268b0c8..ba9ad48e3917 100644
--- a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
@@ -1,22 +1,27 @@
 { lib, fetchzip }:
 
 let
-  version = "0.035";
+  version = "0.039";
 
-in fetchzip {
-  name = "JuliaMono-${version}";
-  url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono.zip";
-  sha256 = "sha256:17w8rn37wadxnmakhd6mpmqdx14dsrc3qym4k9b47albl1a34i1j";
+in
+fetchzip {
+  name = "JuliaMono-ttf-${version}";
+  url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono-ttf.tar.gz";
+  sha256 = "sha256-M9T78xnSN1hcHLXkut09eD2IFrgCRTG9fAPqMv4MXWY=";
 
   postFetch = ''
     mkdir -p $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    tar xf $downloadedFile -C $out/share/fonts/truetype
   '';
 
   meta = with lib; {
     description = "A monospaced font for scientific and technical computing";
     longDescription = ''
-      JuliaMono is a monospaced typeface designed for use in text editing environments that require a wide range of specialist and technical Unicode characters. It was intended as a fun experiment to be presented at the 2020 JuliaCon conference in Lisbon, Portugal (which of course didn’t physically happen in Lisbon, but online).
+      JuliaMono is a monospaced typeface designed for use in text editing
+      environments that require a wide range of specialist and technical Unicode
+      characters. It was intended as a fun experiment to be presented at the
+      2020 JuliaCon conference in Lisbon, Portugal (which of course didn’t
+      physically happen in Lisbon, but online).
     '';
     maintainers = with maintainers; [ suhr ];
     platforms = with platforms; all;
diff --git a/nixpkgs/pkgs/data/fonts/last-resort/default.nix b/nixpkgs/pkgs/data/fonts/last-resort/default.nix
new file mode 100644
index 000000000000..31fb300e5915
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/last-resort/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchurl }:
+
+let
+  version = "13.001";
+in fetchurl {
+  name = "last-resort-${version}";
+
+  url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
+  downloadToTemp = true;
+
+  postFetch = ''
+    install -D -m 0644 $downloadedFile $out/share/fonts/truetype/LastResortHE-Regular.ttf
+  '';
+
+  recursiveHash = true;
+  sha256 = "08mi65j46fv6a3y3pqnglqdjxjnbzg25v25f7c1zyk3c285m14hq";
+
+  meta = with lib; {
+    description = "Fallback font of last resort";
+    homepage = "https://github.com/unicode-org/last-resort-font";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ V ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
index c43ff3a313f2..791aa6534d28 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -3,7 +3,7 @@
 , defcon, fontmath, fontparts, fontpens, fonttools, lxml
 , mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
 , toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
-, pillow, six, bash, setuptools_scm }:
+, pillow, six, bash, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "nototools";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
   '';
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     afdko
diff --git a/nixpkgs/pkgs/data/fonts/open-sans/default.nix b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
index ecca50537f1d..0c9cf7b6a35e 100644
--- a/nixpkgs/pkgs/data/fonts/open-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
@@ -26,6 +26,6 @@ in fetchFromGitLab {
     homepage = "https://www.opensans.com";
     license = licenses.asl20;
     platforms = platforms.all;
-    maintainers = [ maintainers.worldofpeace ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/stix-two/default.nix b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
index 53c4143842d9..c05c1273a48e 100644
--- a/nixpkgs/pkgs/data/fonts/stix-two/default.nix
+++ b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchzip }:
 let
-  version = "2.12";
+  version = "2.13";
 in
 fetchzip {
   name = "stix-two-${version}";
 
   url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
 
-  sha256 = "1a6v8p5zbjlv1gfhph0rzkvnmvxf4n1y0mdrdgng01yyl1nngrn9";
+  sha256 = "sha256-cBtZe/oq4bQCscSAhJ4YuTSghDleD9O/+3MHOJyI50o=";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/nixpkgs/pkgs/data/fonts/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
index f21fdb184161..a1c96e7da150 100644
--- a/nixpkgs/pkgs/data/fonts/sudo/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -1,21 +1,20 @@
 { lib, fetchzip }:
 
 let
-  version = "0.52";
+  version = "0.53.1";
 in fetchzip {
   name = "sudo-font-${version}";
-  url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "1j5p7apclyy5gfj2kklmgcncdsp5iik4gd6mdl29anzijknd0kja";
+  url = "https://github.com/jenskutilek/sudo-font/raw/v${version}/dist/sudo.zip";
+  sha256 = "1jil43j9ngz4422m76x67bafvxz75rncqqi57xd7fdxgcff7i8dp";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
-    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff/
-    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2/
   '';
   meta = with lib; {
     description = "Font for programmers and command line users";
     homepage = "https://www.kutilek.de/sudo-font/";
+    changelog = "https://github.com/jenskutilek/sudo-font/raw/v${version}/sudo/FONTLOG.txt";
     license = licenses.ofl;
     maintainers = with maintainers; [ dtzWill ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix
index 6b7de57a4ff1..88184b585ecf 100644
--- a/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk3, gnome3, moka-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk3, gnome, moka-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "arc-icon-theme";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     moka-icon-theme
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
   ];
diff --git a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
index dfcd2f596797..384086204c1b 100644
--- a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, optipng, librsvg, gtk3, pantheon, gnome3, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, optipng, librsvg, gtk3, pantheon, gnome, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-xfce-icon-theme";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     pantheon.elementary-icon-theme
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
   ];
diff --git a/nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix
index 13ee96d04998..12e2d0a06d62 100644
--- a/nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gtk3, gnome3, hicolor-icon-theme }:
+{ lib, stdenv, fetchurl, gtk3, gnome, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "humanity-icon-theme";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     hicolor-icon-theme
   ];
 
diff --git a/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
index c84369a8a4a9..a8eb1a8736d6 100644
--- a/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, gnome3, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, gnome, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "paper-icon-theme";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
   ];
diff --git a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
index ff18baf75f4b..e7543aff6668 100644
--- a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,18 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20210401";
+  version = "20210601";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "sha256-t0zoeIpj+0QVH1wmbEIJdqzEDOGzpclePv+bcZgtnwo=";
+    sha256 = "sha256-AX51udzIv/DO0n8ba2Gm6Leikep6x4tgUuRUdPX/Cds=";
   };
 
-  nativeBuildInputs = [
-    gtk3
-  ];
+  nativeBuildInputs = [ gtk3 ];
 
   propagatedBuildInputs = [
     pantheon.elementary-icon-theme
diff --git a/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
index cb7db20d67ca..1bcfab57b4a9 100644
--- a/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
@@ -4,7 +4,7 @@
 , ninja
 , gtk3
 , breeze-icons
-, gnome3
+, gnome
 , pantheon
 , hicolor-icon-theme
 }:
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     breeze-icons
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     pantheon.elementary-icon-theme
     hicolor-icon-theme
   ];
diff --git a/nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix b/nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix
new file mode 100644
index 000000000000..645b2ac54734
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix
@@ -0,0 +1,28 @@
+{ stdenvNoCC, fetchFromGitLab, lib }:
+
+stdenvNoCC.mkDerivation {
+  pname = "quintom-cursor-theme";
+  version = "unstable-2019-10-24";
+
+  src = fetchFromGitLab {
+    owner = "Burning_Cube";
+    repo = "quintom-cursor-theme";
+    rev = "d23e57333e816033cf20481bdb47bb1245ed5d4d";
+    hash = "sha256-Sec2DSnWYal6wzYzP9W+DDuTKHsFHWdRYyMzliMU5bU=A";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    for theme in "Quintom_Ink" "Quintom_Snow"; do
+      cp -r "$theme Cursors/$theme" $out/share/icons/
+    done
+  '';
+
+  meta = with lib; {
+    description = "A cursor theme designed to look decent";
+    homepage = "https://gitlab.com/Burning_Cube/quintom-cursor-theme";
+    platforms = platforms.unix;
+    license = with licenses; [ cc-by-sa-40 gpl3Only ];
+    maintainers = with maintainers; [ frogamic ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
new file mode 100644
index 000000000000..aaf32fdf16dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "tela-icon-theme";
+  version = "2021-01-21";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "0gphy4aq2qjcg79k6rc0q5901mn3q76qhckn5vxvmypn9n3lb9ph";
+  };
+
+  nativeBuildInputs = [ gtk3 jdupes ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+    mkdir -p $out/share/icons
+    ./install.sh -a -d $out/share/icons
+    jdupes -l -r $out/share/icons
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat colorful Design icon theme";
+    homepage = "https://github.com/vinceliuice/tela-icon-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/cacert/update.sh b/nixpkgs/pkgs/data/misc/cacert/update.sh
index 7bf3d46cb02f..1c286dc6206f 100755
--- a/nixpkgs/pkgs/data/misc/cacert/update.sh
+++ b/nixpkgs/pkgs/data/misc/cacert/update.sh
@@ -12,6 +12,14 @@
 #
 # As of this writing there are a few magnitudes more packages depending on
 # cacert than on nss.
+#
+# If the current nixpkgs revision contains the attribute `nss_latest` that will
+# be used instead of `nss`. This is done to help the stable branch maintenance
+# where (usually) after branch-off during the first Firefox upgrade that
+# requries a new NSS version that attribute is introduced.
+# By having this change in the unstable branch we can safely carry it from
+# release to release without requiring more backport churn on those doing the
+# stable maintenance.
 
 
 set -ex
@@ -20,7 +28,7 @@ BASEDIR="$(dirname "$0")/../../../.."
 
 
 CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
-PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; (cacert.overrideAttrs (_: { inherit (nss) src version; })).out")
+PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.overrideAttrs (_: { inherit (nss_pkg) src version; })).out")
 
 # Check the hash of the etc subfolder
 # We can't check the entire output as that contains the nix-support folder
diff --git a/nixpkgs/pkgs/data/misc/common-licenses/default.nix b/nixpkgs/pkgs/data/misc/common-licenses/default.nix
new file mode 100644
index 000000000000..a0c21b5d900b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/common-licenses/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchurl
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "common-licenses";
+  version = "11.1";
+
+  src = fetchurl {
+    url = "http://deb.debian.org/debian/pool/main/b/base-files/base-files_${version}.tar.xz";
+    sha256 = "1i3hgd9vs14k819k441iibcgmi2zavnpqbnppyn2cz70kd830nbm";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share
+    cp -r licenses $out/share/common-licenses
+    cat debian/base-files.links | grep common-licenses | sed -e "s|usr|$out|g" -e "s|^|ln -s |g" | bash -x
+  '';
+
+  meta = with lib; {
+    description = "common-licenses extracted from debian base-files package";
+    homepage = "https://tracker.debian.org/pkg/base-files";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
index 2212b158c8ad..d79fc73d61bf 100644
--- a/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
+++ b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddccontrol-db";
-  version = "20201221";
+  version = "20210505";
 
   src = fetchFromGitHub {
     owner = "ddccontrol";
     repo = "ddccontrol-db";
     rev = version;
-    sha256 = "1sryyjjad835mwc7a2avbij6myln8b824kjdr78gc9hh3p16929b";
+    sha256 = "sha256-k0Bcf1I/g2sFnX3y4qyWG7Z3W7K6YeZ9trUFSJ4NhSo=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
index 31bc28a9f9c1..3089e721a7c9 100644
--- a/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
@@ -20,4 +20,15 @@ in {
     # Fix broken symlinks in the Xfce background directory.
     patches = [ ./f33-fix-xfce-path.patch ];
   };
+
+  f34 = fedoraBackground rec {
+    version = "34.0.1";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-0gotgQ4N0yE8WZbsu7B3jmUIZrycbqjEMxZl01JcJj4=";
+    };
+    # Fix broken symlinks in the Xfce background directory.
+    patches = [ ./f34-fix-xfce-path.patch ];
+  };
+
 }
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch
new file mode 100644
index 000000000000..847927667133
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch
@@ -0,0 +1,13 @@
+diff --git a/default/Makefile b/default/Makefile
+index 172d5d9..540a1c0 100644
+--- a/default/Makefile
++++ b/default/Makefile
+@@ -1,7 +1,7 @@
+ WP_NAME=f34
+ WP_BIGNAME=F34
+ WP_DIR=$(DESTDIR)/usr/share/backgrounds/$(WP_NAME)
+-WP_DIR_LN=/usr/share/backgrounds/$(WP_NAME)
++WP_DIR_LN=$(DESTDIR)/usr/share/backgrounds/$(WP_NAME)
+ GNOME_BG_DIR=$(DESTDIR)/usr/share/gnome-background-properties
+ KDE_BG_DIR=$(DESTDIR)/usr/share/wallpapers
+ MATE_BG_DIR=$(DESTDIR)/usr/share/mate-background-properties
diff --git a/nixpkgs/pkgs/data/misc/graphs/default.nix b/nixpkgs/pkgs/data/misc/graphs/default.nix
index 19438d835665..93a0d75aaf69 100644
--- a/nixpkgs/pkgs/data/misc/graphs/default.nix
+++ b/nixpkgs/pkgs/data/misc/graphs/default.nix
@@ -7,9 +7,7 @@ stdenv.mkDerivation rec {
   version = "20210214";
 
   src = fetchurl {
-    url = "https://mirrors.mit.edu/sage/spkg/upstream/${pname}/${pname}-${version}.tar.bz2";
-    # TODO: switch to the url below once Sage 9.3 is released
-    # url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
     sha256 = "sha256-ByN8DZhTYRUFw4n9e7klAMh0P1YxurtND0Xf2DMvN0E=";
   };
 
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
index 429470f2bf36..e559281303d7 100644
--- a/nixpkgs/pkgs/data/misc/hackage/default.nix
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,10 @@
+# Hackage database snapshot, used by maintainers/scripts/regenerate-hackage-packages.sh
+# and callHackage
 { fetchurl }:
-
+let
+  pin = builtins.fromJSON (builtins.readFile ./pin.json);
+in
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/1aad60ed9679a7597f3fc3515a0fe26fdb896e55.tar.gz";
-  sha256 = "0a7lm1ki8rz7m13x4zxlr1nkd93227xgmxbhvsmrj9fa4nc5bvyy";
+  inherit (pin) url sha256;
+  passthru.updateScript = ../../../../maintainers/scripts/haskell/update-hackage.sh;
 }
diff --git a/nixpkgs/pkgs/data/misc/hackage/pin.json b/nixpkgs/pkgs/data/misc/hackage/pin.json
new file mode 100644
index 000000000000..7c4e3b9a8694
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/hackage/pin.json
@@ -0,0 +1,6 @@
+{
+  "commit": "9be76e8f01853e5a2f0600107c9b50d12a17581b",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/9be76e8f01853e5a2f0600107c9b50d12a17581b.tar.gz",
+  "sha256": "0sy8lx04yb9lk9liscqr44z7lzzq67w3zmkq78a0yv37jadb557k",
+  "msg": "Update from Hackage at 2021-06-02T14:32:36Z"
+}
diff --git a/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
index f487edba9815..49755dbd8ad6 100644
--- a/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
+++ b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -1,16 +1,21 @@
-{ lib, stdenv, fetchurl, gnome3 }:
+{ lib, stdenv, fetchurl, gnome, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "mobile-broadband-provider-info";
-  version = "20190116";
+  version = "20201225";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic";
+    sha256 = "1g9x2i4xjm2sagaha07n9psacbylrwfrmfqkp17gjwhpyi6w0zqd";
   };
 
+  nativeBuildInputs = [
+    # fixes configure: error: xsltproc not found
+    libxslt
+  ];
+
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/data/themes/adapta/default.nix b/nixpkgs/pkgs/data/themes/adapta/default.nix
index f67d689a4bfc..fc6e5b8c3553 100644
--- a/nixpkgs/pkgs/data/themes/adapta/default.nix
+++ b/nixpkgs/pkgs/data/themes/adapta/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, parallel, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, parallel, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "adapta-gtk-theme";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     inkscape
     libxml2
     glib.dev
-    gnome3.gnome-shell
+    gnome.gnome-shell
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
index ace93fa44950..fa69afe50c5e 100644
--- a/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
+++ b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
@@ -1,14 +1,24 @@
-{ mkDerivation, lib, fetchFromGitHub, nix-update-script, cmake, ninja, qtbase, pantheon }:
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, ninja
+, qtbase
+, qt5
+, xorg
+}:
 
 mkDerivation rec {
   pname = "adwaita-qt";
-  version = "1.1.4";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = pname;
     rev = version;
-    sha256 = "19s97wm96g3828dp8m85j3lsn1n6h5h2zqk4652hcqcgq6xb6gv5";
+    sha256 = "sha256-3uHa7veLzaSIm9WSR/Z0X+aSdXziO1TnI/CQgccrKYg=";
   };
 
   nativeBuildInputs = [
@@ -18,11 +28,14 @@ mkDerivation rec {
 
   buildInputs = [
     qtbase
+    qt5.qtx11extras
+  ] ++ lib.optionals stdenv.isLinux [
+    xorg.libxcb
   ];
 
   postPatch = ''
     # Fix plugin dir
-    substituteInPlace style/CMakeLists.txt \
+    substituteInPlace src/style/CMakeLists.txt \
        --replace "DESTINATION \"\''${QT_PLUGINS_DIR}/styles" "DESTINATION \"$qtPluginPrefix/styles"
   '';
 
@@ -36,7 +49,7 @@ mkDerivation rec {
     description = "A style to bend Qt applications to look like they belong into GNOME Shell";
     homepage = "https://github.com/FedoraQt/adwaita-qt";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ worldofpeace ];
-    platforms = platforms.linux;
+    maintainers = teams.gnome.members ++ (with maintainers; [ ]);
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/amber/default.nix b/nixpkgs/pkgs/data/themes/amber/default.nix
index 258dcff32665..e39f0e3f6454 100644
--- a/nixpkgs/pkgs/data/themes/amber/default.nix
+++ b/nixpkgs/pkgs/data/themes/amber/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "amber-theme";
-  version = "3.36-2";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1g0hkv9sxfxfnpv8x7g64lr2by7wd4k216s3y9xpibsycdbwpyi5";
+    sha256 = "sha256-OrdBeAD+gdIu6u8ESE9PtqYadSuJ8nx1Z8fB4D9y4W4=";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
diff --git a/nixpkgs/pkgs/data/themes/arc/default.nix b/nixpkgs/pkgs/data/themes/arc/default.nix
index 8a283a041852..ea2362c0529f 100644
--- a/nixpkgs/pkgs/data/themes/arc/default.nix
+++ b/nixpkgs/pkgs/data/themes/arc/default.nix
@@ -1,10 +1,12 @@
 { lib, stdenv
 , fetchFromGitHub
 , sassc
-, autoreconfHook
+, meson
+, ninja
 , pkg-config
 , gtk3
-, gnome3
+, glib
+, gnome
 , gtk-engine-murrine
 , optipng
 , inkscape
@@ -13,46 +15,46 @@
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20210127";
+  version = "20210412";
 
   src = fetchFromGitHub {
     owner = "jnsh";
     repo = pname;
     rev = version;
-    sha256 = "sha256-P7YZTD5bAWNWepL7qsZZAMf8ujzNbHOj/SLx8Fw3bi4=";
+    sha256 = "sha256-BNJirtBtdWsIzQfsJsZzg1zFbJEzZPq1j2qZ+1QjRH8=";
   };
 
   nativeBuildInputs = [
-    autoreconfHook
+    meson
+    ninja
     pkg-config
     sassc
     optipng
     inkscape
     gtk3
+    glib # for glib-compile-resources
   ];
 
   propagatedUserEnvPkgs = [
-    gnome3.gnome-themes-extra
+    gnome.gnome-themes-extra
     gtk-engine-murrine
   ];
 
-  enableParallelBuilding = true;
-
   preBuild = ''
     # Shut up inkscape's warnings about creating profile directory
     export HOME="$NIX_BUILD_ROOT"
   '';
 
-  configureFlags = [
-    "--with-cinnamon=${cinnamon.cinnamon-common.version}"
-    "--with-gnome-shell=${gnome3.gnome-shell.version}"
-    "--disable-unity"
+  mesonFlags = [
+    "-Dthemes=cinnamon,gnome-shell,gtk2,gtk3,plank,xfwm,metacity"
+    "-Dvariants=light,darker,dark,lighter"
+    "-Dcinnamon_version=${cinnamon.cinnamon-common.version}"
+    "-Dgnome_shell_version=${gnome.gnome-shell.version}"
+    "-Dgtk3_version=${gtk3.version}"
+    # You will need to patch gdm to make use of this.
+    "-Dgnome_shell_gresource=true"
   ];
 
-  postInstall = ''
-    install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
-  '';
-
   meta = with lib; {
     description = "Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell";
     homepage = "https://github.com/jnsh/arc-theme";
diff --git a/nixpkgs/pkgs/data/themes/canta/default.nix b/nixpkgs/pkgs/data/themes/canta/default.nix
index cf1223152088..431522fa85e8 100644
--- a/nixpkgs/pkgs/data/themes/canta/default.nix
+++ b/nixpkgs/pkgs/data/themes/canta/default.nix
@@ -4,7 +4,7 @@
 , librsvg
 , gtk-engine-murrine
 , gtk3
-, gnome3
+, gnome
 , gnome-icon-theme
 , numix-icon-theme-circle
 , hicolor-icon-theme
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     numix-icon-theme-circle
     hicolor-icon-theme
diff --git a/nixpkgs/pkgs/data/themes/cdetheme/default.nix b/nixpkgs/pkgs/data/themes/cdetheme/default.nix
index 466f7d0daf1e..a2d6568b9a87 100644
--- a/nixpkgs/pkgs/data/themes/cdetheme/default.nix
+++ b/nixpkgs/pkgs/data/themes/cdetheme/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gnome-look.org/p/1231025";
     license = licenses.gpl3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
     hydraPlatforms = [];
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/equilux-theme/default.nix b/nixpkgs/pkgs/data/themes/equilux-theme/default.nix
index 162b87885089..067c2b88a099 100644
--- a/nixpkgs/pkgs/data/themes/equilux-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/equilux-theme/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gnome3, glib, libxml2, gtk-engine-murrine, gdk-pixbuf, librsvg, bc }:
+{ lib, stdenv, fetchFromGitHub, gnome, glib, libxml2, gtk-engine-murrine, gdk-pixbuf, librsvg, bc }:
 
 stdenv.mkDerivation rec {
   pname = "equilux-theme";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ glib libxml2 bc ];
 
-  buildInputs = [ gnome3.gnome-themes-extra gdk-pixbuf librsvg ];
+  buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     patchShebangs install.sh
     sed -i install.sh \
       -e "s|if .*which gnome-shell.*;|if true;|" \
-      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${lib.versions.majorMinor gnome3.gnome-shell.version}|"
+      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${lib.versions.majorMinor gnome.gnome-shell.version}|"
     mkdir -p $out/share/themes
     ./install.sh --dest $out/share/themes
     rm $out/share/themes/*/COPYING
diff --git a/nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix b/nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix
index 3b6f68ab4754..28b55074afbb 100644
--- a/nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix
+++ b/nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gruvbox-dark-gtk";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "jmattheis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wf4ybnjdp2kbbvz7pmqdnzk94axaqx5ws18f34hrg4y267n0w4g";
+    sha256 = "sha256-C681o89MTGNp1l3DLQsRpH9HQdmdCXZzk0F0rNhcyL4=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/data/themes/jade1/default.nix b/nixpkgs/pkgs/data/themes/jade1/default.nix
index 6eea90c71192..f33fa2db5462 100644
--- a/nixpkgs/pkgs/data/themes/jade1/default.nix
+++ b/nixpkgs/pkgs/data/themes/jade1/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-jade1";
-  version = "1.12";
+  version = "1.13";
 
   src = fetchurl {
     url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
-    sha256 = "1pawdfyvpbvhb6fa27rgjp49vlbmix9pq192wjlv2wgq7v4ip9y8";
+    sha256 = "04a9c56w4hm8lwa8hzy5lwj4yli19gzy5wp5iinsm61qas9xgy69";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/data/themes/kde2/default.nix b/nixpkgs/pkgs/data/themes/kde2/default.nix
index 04986b7dcc5b..1404a6ca86ec 100644
--- a/nixpkgs/pkgs/data/themes/kde2/default.nix
+++ b/nixpkgs/pkgs/data/themes/kde2/default.nix
@@ -25,6 +25,6 @@ mkDerivation rec {
     homepage = "https://github.com/repos-holder/kdecoration2-kde2";
     license = licenses.bsd2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/lounge/default.nix b/nixpkgs/pkgs/data/themes/lounge/default.nix
index 0c51b78333dc..ab945f510538 100644
--- a/nixpkgs/pkgs/data/themes/lounge/default.nix
+++ b/nixpkgs/pkgs/data/themes/lounge/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome3, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome, gdk-pixbuf, librsvg, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "lounge-gtk-theme";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   mesonFlags = [
-    "-D gnome_version=${lib.versions.majorMinor gnome3.gnome-shell.version}"
+    "-D gnome_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
   ];
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
index 4189f0ed48d6..d467526582c5 100644
--- a/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
+++ b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita-manjaro";
-  version = "1.8";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "0zxj20inwdfxhsc7cq6b3ijkxmrhnrwvbmyb1lw4vfjs4p4wrws0";
+    sha256 = "1si0gaa1njyf4194i6rbx4qjp31sw238svvb2x8r8cfhm8mkhm8d";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/marwaita/default.nix b/nixpkgs/pkgs/data/themes/marwaita/default.nix
index bcf6d69a65c4..91404af08493 100644
--- a/nixpkgs/pkgs/data/themes/marwaita/default.nix
+++ b/nixpkgs/pkgs/data/themes/marwaita/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , gdk-pixbuf
 , gtk-engine-murrine
@@ -8,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita";
-  version = "8.0";
+  version = "9.2.2";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "0ljigm5z13r0idfkjgy5ysq9pzdj66ql269p5phhp47aagmjcv3s";
+    sha256 = "0fbcncsldn2v6x6jla187mp6sjm529ij8rf85wcxpahc45vwb9pg";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/matcha/default.nix b/nixpkgs/pkgs/data/themes/matcha/default.nix
index eaad095d64b4..d060e20267e8 100644
--- a/nixpkgs/pkgs/data/themes/matcha/default.nix
+++ b/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2021-04-09";
+  version = "2021-06-02";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1989v2924g1pwycp44zlgryr73p82n9hmf71d0acs455jajf0pvv";
+    sha256 = "0wx0dgfl71wx02nrmf794xn28cvjx81vcmbnzwyyzwcbb9pacdpp";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/nixpkgs/pkgs/data/themes/materia-theme/default.nix b/nixpkgs/pkgs/data/themes/materia-theme/default.nix
index d34ece5c94f7..f9e3463f2fdc 100644
--- a/nixpkgs/pkgs/data/themes/materia-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/materia-theme/default.nix
@@ -3,7 +3,7 @@
 , meson
 , ninja
 , sassc
-, gnome3
+, gnome
 , gtk-engine-murrine
 , gdk-pixbuf
 , librsvg
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome3.gnome-themes-extra
+    gnome.gnome-themes-extra
     gdk-pixbuf
     librsvg
   ];
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   mesonFlags = [
-    "-Dgnome_shell_version=${lib.versions.majorMinor gnome3.gnome-shell.version}"
+    "-Dgnome_shell_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/data/themes/nordic-polar/default.nix b/nixpkgs/pkgs/data/themes/nordic-polar/default.nix
deleted file mode 100644
index 8af17dd98afe..000000000000
--- a/nixpkgs/pkgs/data/themes/nordic-polar/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchurl, gtk-engine-murrine }:
-
-stdenv.mkDerivation rec {
-  pname = "nordic-polar";
-  version = "1.9.0";
-
-  srcs = [
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar.tar.xz";
-      sha256 = "1583mx8frkl5w26myczbyrggrp07lmpsfj00h1bzicw6lz8jbxf1";
-    })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar-standard-buttons.tar.xz";
-      sha256 = "1n2qys0xcg1k28bwfrrr44cqz7q2rnfj6ry6qgd67ivgh63kmcq6";
-    })
-  ];
-
-  sourceRoot = ".";
-
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
-
-  installPhase = ''
-    mkdir -p $out/share/themes
-    cp -a Nordic-Polar* $out/share/themes
-    rm $out/share/themes/*/{LICENSE,README.md}
-  '';
-
-  meta = with lib; {
-    description = "Gtk theme created using the awesome Nord color pallete";
-    homepage = "https://github.com/EliverLara/Nordic-Polar";
-    license = licenses.gpl3;
-    platforms = platforms.all;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/data/themes/nordic/default.nix b/nixpkgs/pkgs/data/themes/nordic/default.nix
index 1d8ceec3d1ba..1014d483440c 100644
--- a/nixpkgs/pkgs/data/themes/nordic/default.nix
+++ b/nixpkgs/pkgs/data/themes/nordic/default.nix
@@ -1,33 +1,72 @@
-{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "nordic";
-  version = "1.9.0";
+  version = "unstable-2021-06-04";
 
   srcs = [
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic.tar.xz";
-      sha256 = "12x13h9w4yqk56a009zpj1kq3vn2hn290xryfv1b0vyf2r45rsn7";
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "9a98c05f4d4f6c9e701ac20b0bf5c18284ad0015";
+      sha256 = "0ghgr7fr7anm8hdq6n46xhkjxydqkr0qlk1q7mdg08j43f0yra7b";
+      name = "Nordic";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-standard-buttons.tar.xz";
-      sha256 = "0f38nx1rvp9l6xz62yx6cbab4im8d425gxr52jkc8gfqpl5lrf0q";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "90ce6f539735af1f231c4fa07708cef602e1c8a2";
+      sha256 = "1g6sz7ifpc8jf4iplcsmihqhjdc7yp5xygw8584n122jmh8mak47";
+      name = "Nordic-standard-buttons";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-darker.tar.xz";
-      sha256 = "0frp0jf7hbiapl3m67av7rbm3sx8db52zi3j01k2hysh6kba7x33";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "529cdb86b4d4474a67a56eb9377e3c7907b452db";
+      sha256 = "06li44i5wh4h06fbhvjf5cjma5czjdgnwvm79d8hg6vmi2101b0a";
+      name = "Nordic-darker";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-darker-standard-buttons.tar.xz";
-      sha256 = "0grfsjr9kq0lszmqxvjvpgvf4avm34446nqykz1zfpdg50j7r54b";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "1d16f37de315c298a6c3d79a552ed6f18cbb7fb4";
+      sha256 = "0nxzygnysg4ciib337vay0qcc80hpryjnclwjwjzj51i95366k25";
+      name = "Nordic-darker-standard-buttons";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-bluish-accent.tar.xz";
-      sha256 = "0zndldwavir22ay2r0jazpikzzww3hc09gsmbiyjmw54v29qhl9r";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "78a30080bc50ee88c23d393049306ef1925bcdb8";
+      sha256 = "10w4815fcf3pd24ar7jp0wcdiwn3zzrdj2p6fqlgx26biz7kf3iv";
+      name = "Nordic-bluish-accent";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-bluish-accent-standard-buttons.tar.xz";
-      sha256 = "1b9d2fvdndyh7lh3xhmc75csfbapl4gv59y7wy15k2awisvlvz07";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "e4363da8d457e8b14f6e4340979225db92d34aa9";
+      sha256 = "1sjw2hvg4jgxqzgqhqixq216a7vv5licbc8ii1rsz88ycafsbr7j";
+      name = "Nordic-bluish-accent-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "a38fd7d440309573947d3e53ea3ed295cf027ce7";
+      sha256 = "1r6hz0m0y7c1d0ka1x9cd47r0jvpgkld6x3gf2b7w7yvqpmh6a44";
+      name = "Nordic-Polar";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "b86d43c48bcac57c49d891b967311fd90f6d4bcd";
+      sha256 = "0c725kf5ql42zrqk6dwk6i7wyrhr3gddipvhy6692nv0dszqm0ml";
+      name = "Nordic-Polar-standard-buttons";
     })
   ];
 
@@ -36,15 +75,28 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/themes
     cp -a Nordic* $out/share/themes
-    rm $out/share/themes/*/{LICENSE,README.md}
+    rm -r $out/share/themes/*/.gitignore
+    rm -r $out/share/themes/*/Art
+    rm -r $out/share/themes/*/LICENSE
+    rm -r $out/share/themes/*/README.md
+    rm -r $out/share/themes/*/{package.json,package-lock.json,Gulpfile.js}
+    rm -r $out/share/themes/*/src
+    rm -r $out/share/themes/*/cinnamon/*.scss
+    rm -r $out/share/themes/*/gnome-shell/{extensions,*.scss}
+    rm -r $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
+    rm -r $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
+    rm -r $out/share/themes/*/kde
+    rm -r $out/share/themes/*/xfwm4/{assets,render_assets.fish}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    description = "Dark Gtk theme created using the awesome Nord color pallete";
+    description = "Gtk themes using the Nord color pallete";
     homepage = "https://github.com/EliverLara/Nordic";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/nixpkgs/pkgs/data/themes/numix-solarized/default.nix b/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
index 0d965e8030a6..532275e5f749 100644
--- a/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
+++ b/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, python3, sassc, glib, gdk-pixbuf, inkscape, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
-  version = "20200910";
   pname = "numix-solarized-gtk-theme";
+  version = "20210522";
 
   src = fetchFromGitHub {
     owner = "Ferdi265";
-    repo = "numix-solarized-gtk-theme";
+    repo = pname;
     rev = version;
-    sha256 = "05h1563sy6sfz76jadxsf730mav6bbjsk9xnadv49r16b8n8p9a9";
+    sha256 = "0hin73fmfir4w1z0j87k5hahhf2blhcq4r7gf89gz4slnl18cvjh";
   };
 
   nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
@@ -23,10 +23,11 @@ stdenv.mkDerivation rec {
   buildPhase = "true";
 
   installPhase = ''
-    HOME="$NIX_BUILD_ROOT"  # shut up inkscape's warnings
+    runHook preInstall
     for theme in *.colors; do
       make THEME="''${theme/.colors/}" install
     done
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
     downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.offline ];
   };
diff --git a/nixpkgs/pkgs/data/themes/plano/default.nix b/nixpkgs/pkgs/data/themes/plano/default.nix
index 5728dff6f9a5..9f05a1991935 100644
--- a/nixpkgs/pkgs/data/themes/plano/default.nix
+++ b/nixpkgs/pkgs/data/themes/plano/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plano-theme";
-  version = "3.36-2";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01dkjck9rlrf8wa30ad7kfv0gbpdf3l05rw7nxrvb1gh5d2vxig9";
+    sha256 = "0g2mwvzc04z3dsdfhwqgw9s7987406pv22s9rbazfvprk4ddc5b6";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/qtcurve/default.nix b/nixpkgs/pkgs/data/themes/qtcurve/default.nix
index 45a56f3355ec..0b639133a4a7 100644
--- a/nixpkgs/pkgs/data/themes/qtcurve/default.nix
+++ b/nixpkgs/pkgs/data/themes/qtcurve/default.nix
@@ -64,6 +64,6 @@ mkDerivation rec {
     description = "Widget styles for Qt5/Plasma 5 and gtk2";
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/stilo/default.nix b/nixpkgs/pkgs/data/themes/stilo/default.nix
index 54d6f2a6e3c8..bfcda0493294 100644
--- a/nixpkgs/pkgs/data/themes/stilo/default.nix
+++ b/nixpkgs/pkgs/data/themes/stilo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stilo-themes";
-  version = "3.36-3";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0haxzqxyfx3rc305w7f744fp2xb6j7yn28ldynnvmm47h7ga3as3";
+    sha256 = "09xarzp0j0a8cqzcg0447jl5cgvl6ccj5f00dik1hy2nlrz7d8ad";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
diff --git a/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix b/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
index 732c9a74573b..fb23141a64eb 100644
--- a/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
+++ b/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , fetchpatch
 , gnome-icon-theme
-, gnome3
+, gnome
 , gtk-engine-murrine
 , gtk3
 , hicolor-icon-theme
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     gnome-icon-theme
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     humanity-icon-theme
     hicolor-icon-theme
   ];
diff --git a/nixpkgs/pkgs/data/themes/vimix/default.nix b/nixpkgs/pkgs/data/themes/vimix/default.nix
index 5a5612893708..1694063e4fef 100644
--- a/nixpkgs/pkgs/data/themes/vimix/default.nix
+++ b/nixpkgs/pkgs/data/themes/vimix/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vimix-gtk-themes";
-  version = "2020-11-28";
+  version = "2021-04-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1m84p4cs9dfwc27zfjnwgkfdnfmlzbimq3g5z4mhz23cijm178rf";
+    sha256 = "0ak763vs27h5z2pgcqpz1g1hypn5gl0p0ylffawc9zdi1wp2mpxb";
   };
 
   buildInputs = [ gtk_engines ];
@@ -16,16 +16,18 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
+    runHook preInstall
     patchShebangs .
     mkdir -p $out/share/themes
-    name= ./install.sh -d $out/share/themes
+    name= ./install.sh --all --dest $out/share/themes
     rm $out/share/themes/*/{AUTHORS,LICENSE}
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Flat Material Design theme for GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/vimix-gtk-themes";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/nixpkgs/pkgs/data/themes/yaru-remix/default.nix b/nixpkgs/pkgs/data/themes/yaru-remix/default.nix
new file mode 100644
index 000000000000..87056583b555
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/yaru-remix/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja, python3, gtk3, gnome }:
+
+stdenv.mkDerivation rec {
+  pname = "yaru-remix";
+  version = "40";
+
+  src = fetchFromGitHub {
+    owner = "Muqtxdir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xilhw5gbxsyy80ixxgj0nw6w782lz9dsinhi24026li1xny804c";
+  };
+
+  nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = "patchShebangs .";
+
+  meta = with lib; {
+    description = "Fork of the Yaru GTK theme";
+    homepage = "https://github.com/Muqtxdir/yaru-remix";
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hoppla20 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/yaru/default.nix b/nixpkgs/pkgs/data/themes/yaru/default.nix
index f0d2493473a4..c2f449e9f208 100644
--- a/nixpkgs/pkgs/data/themes/yaru/default.nix
+++ b/nixpkgs/pkgs/data/themes/yaru/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja,
-  python3, gtk3, gnome3, gtk-engine-murrine, humanity-icon-theme, hicolor-icon-theme }:
+  python3, gtk3, gnome, gtk-engine-murrine, humanity-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "yaru";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
-  buildInputs = [ gtk3 gnome3.gnome-themes-extra ];
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
   propagatedBuildInputs = [ humanity-icon-theme hicolor-icon-theme ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
diff --git a/nixpkgs/pkgs/data/themes/zuki/default.nix b/nixpkgs/pkgs/data/themes/zuki/default.nix
index 217ca6c59cb6..098edf6cc2e1 100644
--- a/nixpkgs/pkgs/data/themes/zuki/default.nix
+++ b/nixpkgs/pkgs/data/themes/zuki/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zuki-themes";
-  version = "3.36-4";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14r8dhfycpmwp2nj6vj0b2cwaaphc9sxbzglc4sr4q566whrhbgd";
+    sha256 = "0890i8kavgnrhm8ic4zpl16wc4ngpnf1zi8js9gvki2cl7dlj1xm";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
diff --git a/nixpkgs/pkgs/desktops/cdesktopenv/default.nix b/nixpkgs/pkgs/desktops/cdesktopenv/default.nix
index 2a0769c92e99..563a1b49e516 100644
--- a/nixpkgs/pkgs/desktops/cdesktopenv/default.nix
+++ b/nixpkgs/pkgs/desktops/cdesktopenv/default.nix
@@ -75,7 +75,7 @@ EOF
     description = "Common Desktop Environment";
     homepage = "https://sourceforge.net/projects/cdesktopenv/";
     license = licenses.lgpl2;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
new file mode 100644
index 000000000000..03b1cca9fd85
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, wrapGAppsHook
+, python3
+, gsettings-desktop-schemas
+, gettext
+, gtk3
+, glib
+, common-licenses
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bulky";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "bulky";
+    rev = version;
+    sha256 = "NBlP10IM/+u8IRds4bdFyGWg3pJLRmlSLsdlndMVQqg=";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    gsettings-desktop-schemas
+    gettext
+  ];
+
+  buildInputs = [
+    (python3.withPackages(p: with p; [ pygobject3 magic setproctitle ]))
+    gsettings-desktop-schemas
+    gtk3
+    glib
+  ];
+
+  postPatch = ''
+    substituteInPlace usr/lib/bulky/bulky.py \
+                     --replace "/usr/share/locale" "$out/share/locale" \
+                     --replace /usr/share/bulky "$out/share/bulky" \
+                     --replace /usr/share/common-licenses "${common-licenses}/share/common-licenses" \
+                     --replace __DEB_VERSION__  "${version}"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    chmod +x usr/share/applications/*
+    cp -ra usr $out
+    ln -sf $out/lib/bulky/bulky.py $out/bin/bulky
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Bulk rename app";
+    homepage = "https://github.com/linuxmint/bulky";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 65eede258326..5fdfc0db1d69 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -6,6 +6,7 @@
 , cinnamon-desktop
 , cinnamon-menus
 , cinnamon-session
+, cinnamon-translations
 , cjs
 , fetchFromGitHub
 , gdk-pixbuf
@@ -28,7 +29,7 @@
 , wrapGAppsHook
 , libxml2
 , gtk-doc
-, gnome3
+, gnome
 , python3
 , keybinder3
 , cairo
@@ -91,7 +92,7 @@ stdenv.mkDerivation rec {
 
     # bindings
     cairo
-    gnome3.caribou
+    gnome.caribou
     keybinder3
     upower
     xapps
@@ -115,7 +116,10 @@ stdenv.mkDerivation rec {
     gtk-doc
   ];
 
-  configureFlags = [ "--disable-static" "--with-ca-certificates=${cacert}/etc/ssl/certs/ca-bundle.crt" "--with-libxml=${libxml2.dev}/include/libxml2" "--enable-gtk-doc=no" ];
+  # use locales from cinnamon-translations (not using --localedir because datadir is used)
+  postInstall = ''
+    ln -s ${cinnamon-translations}/share/locale $out/share/locale
+  '';
 
   postPatch = ''
     find . -type f -exec sed -i \
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index c2e50c65557e..94080e3e47a3 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -18,7 +18,7 @@
 , libxklavier
 , networkmanager
 , libwacom
-, gnome3
+, gnome
 , wrapGAppsHook
 , tzdata
 , glibc
@@ -28,6 +28,7 @@
 , gdk-pixbuf
 , meson
 , ninja
+, cinnamon-translations
 }:
 
 stdenv.mkDerivation rec {
@@ -83,7 +84,10 @@ stdenv.mkDerivation rec {
   '';
 
   mesonFlags = [
+    # TODO: https://github.com/NixOS/nixpkgs/issues/36468
     "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+    # use locales from cinnamon-translations
+    "--localedir=${cinnamon-translations}/share/locale"
   ];
 
   preInstall = ''
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
index 832a534e5daa..6f54515569ee 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
@@ -15,6 +15,7 @@
 , cinnamon-session
 , cinnamon-settings-daemon
 , cinnamon-common
+, bulky
 }:
 
 let
@@ -24,6 +25,7 @@ let
     mint-artwork
 
     # on
+    bulky
     muffin
     nemo
     xapps
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 39dee473cc5a..b70673253edf 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -12,7 +12,7 @@
 , libxslt
 , gtk3
 , libgnomekbd
-, gnome3
+, gnome
 , libtool
 , wrapGAppsHook
 , gobject-introspection
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     cinnamon-desktop
     cinnamon-common
     libgnomekbd
-    gnome3.caribou
+    gnome.caribou
 
     # things
     iso-flags-png-320x420
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index ba20bce4100d..3f1ceb2dc610 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -1,6 +1,7 @@
 { fetchFromGitHub
 , cinnamon-desktop
 , cinnamon-settings-daemon
+, cinnamon-translations
 , dbus-glib
 , docbook_xsl
 , docbook_xml_dtd_412
@@ -80,8 +81,14 @@ stdenv.mkDerivation rec {
     xmlto
   ];
 
-  # TODO: https://github.com/NixOS/nixpkgs/issues/36468
-  mesonFlags = [ "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" "-Dgconf=false" "-DENABLE_IPV6=true" ];
+  mesonFlags = [
+    # TODO: https://github.com/NixOS/nixpkgs/issues/36468
+    "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+    "-Dgconf=false"
+    "-DENABLE_IPV6=true"
+    # use locales from cinnamon-translations
+    "--localedir=${cinnamon-translations}/share/locale"
+  ];
 
   postPatch = ''
     chmod +x data/meson_install_schemas.py # patchShebangs requires executable file
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index 3df8760c8582..69b08fc64ed9 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -1,5 +1,6 @@
 { fetchFromGitHub
 , cinnamon-desktop
+, cinnamon-translations
 , colord
 , glib
 , gsettings-desktop-schemas
@@ -104,6 +105,11 @@ stdenv.mkDerivation rec {
     sed "s|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g" -i plugins/datetime/system-timezone.h
   '';
 
+  # use locales from cinnamon-translations (not using --localedir because datadir is used)
+  postInstall = ''
+    ln -s ${cinnamon-translations}/share/locale $out/share/locale
+  '';
+
   # So the polkit policy can reference /run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper
   postFixup = ''
     mkdir -p $out/bin/cinnamon-settings-daemon
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index dafb5f4b3fea..f790c54052de 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "4.8.3";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-o/JFfwloXLUOy9YQzHtMCuzK7yBp/G43VS/RguxiTPY=";
+    hash = "sha256-qBLg0z0ZoS7clclKsIxMG6378Q1iv1NnhS9cz3f4cEc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
index 3c01d0039372..2e1c739c0f07 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
@@ -7,7 +7,7 @@
 , wrapGAppsHook
 , python3
 , cairo
-, gnome3
+, gnome
 , xapps
 , keybinder3
 , upower
@@ -20,7 +20,7 @@
 , meson
 , sysprof
 , dbus
-, xvfb_run
+, xvfb-run
 , ninja
 , makeWrapper
 , which
@@ -58,14 +58,14 @@ stdenv.mkDerivation rec {
   ];
 
   checkInputs = [
-    xvfb_run
+    xvfb-run
   ];
 
   propagatedBuildInputs = [
     glib
 
     # bindings
-    gnome3.caribou
+    gnome.caribou
     keybinder3
     upower
     xapps
diff --git a/nixpkgs/pkgs/desktops/cinnamon/default.nix b/nixpkgs/pkgs/desktops/cinnamon/default.nix
index 2a52b83f0465..4d148fdcdb0b 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/default.nix
@@ -13,6 +13,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   });
 
   # blueberry -> pkgs/tools/bluetooth/blueberry/default.nix
+  bulky = callPackage ./bulky {};
   cinnamon-common = callPackage ./cinnamon-common { };
   cinnamon-control-center = callPackage ./cinnamon-control-center { };
   cinnamon-desktop = callPackage ./cinnamon-desktop { };
diff --git a/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix b/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
index f52b0556d564..f4a04cf33a84 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
@@ -1,6 +1,6 @@
 { fetchFromGitHub
 , lib, stdenv
-, gnome3
+, gnome
 , gnome-icon-theme
 , hicolor-icon-theme
 , gtk3
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
     humanity-icon-theme
diff --git a/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix b/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
index 8d55e81c58c2..e04a1baa6696 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
@@ -1,6 +1,6 @@
 { fetchFromGitHub
 , lib, stdenv
-, gnome3
+, gnome
 , gnome-icon-theme
 , hicolor-icon-theme
 , gtk3
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
   ];
diff --git a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
index 2df5f875b41c..5470933d619b 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
@@ -2,7 +2,7 @@
 , cinnamon-desktop
 , glib
 , file
-, gnome3
+, gnome
 , gnome-doc-utils
 , fetchpatch
 , gobject-introspection
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
     xorg.xkeyboardconfig
 
     libxkbcommon
-    gnome3.zenity
+    gnome.zenity
     libinput
     libstartup_notification
     libXtst
diff --git a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
index 482fb402e4d3..e48b205d1802 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
@@ -16,11 +16,13 @@
 , exempi
 , intltool
 , shared-mime-info
+, cinnamon-translations
+, libgsf
 }:
 
 stdenv.mkDerivation rec {
   pname = "nemo";
-  version = "4.8.6";
+  version = "5.0.0";
 
   # TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
 
@@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-OUv7l+klu5l1Y7m+iHiq/dDyxH3/hT4k7F9gDuUiGds=";
+    sha256 = "07n9p93iyrzb7636qqwknq8dd3im1y6wb9jfvif96mbvvdwsnfyz";
   };
 
   outputs = [ "out" "dev" ];
@@ -43,6 +45,7 @@ stdenv.mkDerivation rec {
     libexif
     exempi
     gobject-introspection
+    libgsf
   ];
 
   nativeBuildInputs = [
@@ -57,6 +60,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     # TODO: https://github.com/NixOS/nixpkgs/issues/36468
     "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+    # use locales from cinnamon-translations
+    "--localedir=${cinnamon-translations}/share/locale"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix b/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix
index a68886d414bc..7e716ddb5c13 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix
@@ -4,7 +4,7 @@
 , ninja
 , pkg-config
 , SDL2
-, alsaLib
+, alsa-lib
 , bullet
 , check
 , curl
@@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     SDL2
-    alsaLib
+    alsa-lib
     bullet
     curl
     dbus
diff --git a/nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix
index 3b750bd08b75..84cadd209499 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix
@@ -4,7 +4,7 @@
 , ninja
 , pkg-config
 , gettext
-, alsaLib
+, alsa-lib
 , acpid
 , bc
 , ddcutil
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     acpid # for systems with ACPI for lid events, AC/Battery plug in/out etc
     bc # for the Everything module calculator mode
     ddcutil # specifically libddcutil.so.2 for backlight control
diff --git a/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix b/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
index 0c2ff79ddbd3..4e21bc67910b 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evisum";
-  version = "0.5.11";
+  version = "0.5.13";
 
   src = fetchurl {
     url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-jCOYnG/+xz9qK6npOPT+tw1tp/K0QaFCmsBRO9J4bjE=";
+    sha256 = "sha256-TMVxx7D9wdujyN6PcbIxC8M6zby5myvxO9AqolrcWOY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
deleted file mode 100644
index 82c40fc429d5..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-getting-started-docs";
-  version = "3.38.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-getting-started-docs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "EPviPyw85CdTmk4wekYWlNOHCyMgBGT3BbfYGvmTyFk=";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-getting-started-docs"; attrPath = "gnome3.gnome-getting-started-docs"; };
-  };
-
-  buildInputs = [ intltool itstool libxml2 ];
-
-  meta = with lib; {
-    homepage = "https://live.gnome.org/DocumentationProject";
-    description = "Help a new user get started in GNOME";
-    maintainers = teams.gnome.members;
-    license = licenses.cc-by-sa-30;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
deleted file mode 100644
index 34aed52fa851..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, fetchpatch
-, meson
-, ninja
-, pkg-config
-, python3
-, wrapGAppsHook
-, gettext
-, gnome3
-, glib
-, gtk3
-, libpeas
-, gnome-online-accounts
-, gsettings-desktop-schemas
-, evolution-data-server
-, libxml2
-, libsoup
-, libical
-, librest
-, json-glib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-todo";
-  version = "3.28.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7";
-  };
-
-  patches = [
-    # fix build with libecal 2.0
-    (fetchpatch {
-      name = "gnome-todo-eds-libecal-2.0.patch";
-      url = "https://src.fedoraproject.org/rpms/gnome-todo/raw/bed44b8530f3c79589982e03b430b3a125e9bceb/f/gnome-todo-eds-libecal-2.0.patch";
-      sha256 = "1ghrz973skal36j90wm2z13m3panw983r6y0k7z9gpj5lxgz92mq";
-    })
-  ];
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    python3
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    libpeas
-    gnome-online-accounts
-    gsettings-desktop-schemas
-    gnome3.adwaita-icon-theme
-    # Plug-ins
-    evolution-data-server
-    libxml2
-    libsoup
-    libical
-    librest
-    json-glib
-  ];
-
-  # Fix parallel building: missing dependency from src/gtd-application.c
-  # Probably remove for 3.30+ https://gitlab.gnome.org/GNOME/gnome-todo/issues/170
-  preBuild = "ninja src/gtd-vcs-identifier.h";
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    description = "Personal task manager for GNOME";
-    homepage = "https://wiki.gnome.org/Apps/Todo";
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix
deleted file mode 100644
index 81faf79cbb69..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, gettext, fetchurl, vala, desktop-file-utils
-, meson, ninja, pkg-config, python3, gtk3, glib, libxml2
-, wrapGAppsHook, itstool, gnome3 }:
-
-let
-  pname = "baobab";
-  version = "3.38.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ac3fbl15l836yvgw724q4whbkws9v4b6l2xy6bnp0b0g0a6i104";
-  };
-
-  nativeBuildInputs = [ meson ninja pkg-config vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook python3 ];
-  buildInputs = [ gtk3 glib gnome3.adwaita-icon-theme ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with lib; {
-    description = "Graphical application to analyse disk usage in any GNOME environment";
-    homepage = "https://wiki.gnome.org/Apps/DiskUsageAnalyzer";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
deleted file mode 100644
index 1374cfc9358a..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchurl, meson, ninja, vala, libxslt, pkg-config, glib, gtk3, gnome3, python3, dconf
-, libxml2, gettext, docbook_xsl, wrapGAppsHook, gobject-introspection }:
-
-stdenv.mkDerivation rec {
-  pname = "dconf-editor";
-  version = "3.38.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-ElPa2H5iE/vzE/+eydxDWKobECYfKAcsHcDgmXuS+DU=";
-  };
-
-  nativeBuildInputs = [
-    meson ninja vala libxslt pkg-config wrapGAppsHook
-    gettext docbook_xsl libxml2 gobject-introspection python3
-  ];
-
-  buildInputs = [ glib gtk3 dconf ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
deleted file mode 100644
index 36bf7b3e92c9..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gnome3, gettext }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-backgrounds";
-  version = "3.38.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-backgrounds/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1qqygm15rcdgm36vz2iy7b9axndjzvpi29lmygyakjc07a3jlwgp";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-backgrounds"; attrPath = "gnome3.gnome-backgrounds"; };
-  };
-
-  nativeBuildInputs = [ meson ninja pkg-config gettext ];
-
-  meta = with lib; {
-    platforms = platforms.unix;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
deleted file mode 100644
index 2397b9d7be90..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, stdenv, fetchurl, gnome3, meson, ninja, pkg-config, gtk3, intltool, glib
-, udev, itstool, libxml2, wrapGAppsHook, libnotify, libcanberra-gtk3, gobject-introspection
-, gtk-doc, docbook_xsl, docbook_xml_dtd_43, python3, gsettings-desktop-schemas }:
-
-let
-  pname = "gnome-bluetooth";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-  version = "3.34.3";
-
-  # TODO: split out "lib"
-  outputs = [ "out" "dev" "devdoc" "man" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "08k4jak4r72pvn5kjhm21planyc514j6c7jjj5lv9nmvvlxqw1ha";
-  };
-
-  nativeBuildInputs = [
-    meson ninja intltool itstool pkg-config libxml2 wrapGAppsHook gobject-introspection
-    gtk-doc docbook_xsl docbook_xml_dtd_43 python3
-  ];
-  buildInputs = [
-    glib gtk3 udev libnotify libcanberra-gtk3
-    gnome3.adwaita-icon-theme gsettings-desktop-schemas
-  ];
-
-  mesonFlags = [
-    "-Dicon_update=false"
-    "-Dgtk_doc=true"
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
-    description = "Application that let you manage Bluetooth in the GNOME destkop";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
deleted file mode 100644
index e033197b3475..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, meson, ninja, vala, gettext, itstool, fetchurl, pkg-config, libxml2
-, gtk3, glib, gtksourceview4, wrapGAppsHook, gobject-introspection, python3
-, gnome3, mpfr, gmp, libsoup, libmpc, gsettings-desktop-schemas, libgee }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-calculator";
-  version = "3.38.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-calculator/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0sri58cp6v07cqpdsf8dhf9dnykz305kvkx0l9dd25g06djcr0wc";
-  };
-
-  nativeBuildInputs = [
-    meson ninja pkg-config vala gettext itstool wrapGAppsHook python3
-    gobject-introspection # for finding vapi files
-  ];
-
-  buildInputs = [
-    gtk3 glib libxml2 gtksourceview4 mpfr gmp
-    gnome3.adwaita-icon-theme libgee
-    gsettings-desktop-schemas libsoup libmpc
-  ];
-
-  doCheck = true;
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-calculator";
-      attrPath = "gnome3.gnome-calculator";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://wiki.gnome.org/Apps/Calculator";
-    description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
deleted file mode 100644
index c6d8b319308d..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib, stdenv, fetchurl, substituteAll, pkg-config, libxslt, ninja, gnome3, gtk3, glib
-, gettext, libxml2, xkeyboard_config, isocodes, meson, wayland
-, libseccomp, systemd, bubblewrap, gobject-introspection, gtk-doc, docbook_xsl, gsettings-desktop-schemas }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-desktop";
-  version = "3.38.4";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-desktop/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-P2A+pb/UdyLJLPybiFRGtGJg6gnIz7Y/a92f7+NC5Iw=";
-  };
-
-  nativeBuildInputs = [
-    pkg-config meson ninja gettext libxslt libxml2 gobject-introspection
-    gtk-doc docbook_xsl glib
-  ];
-  buildInputs = [
-    bubblewrap xkeyboard_config isocodes wayland
-    gtk3 glib libseccomp systemd
-  ];
-
-  propagatedBuildInputs = [ gsettings-desktop-schemas ];
-
-  patches = [
-    (substituteAll {
-      src = ./bubblewrap-paths.patch;
-      bubblewrap_bin = "${bubblewrap}/bin/bwrap";
-      inherit (builtins) storeDir;
-    })
-  ];
-
-  mesonFlags = [
-    "-Dgtk_doc=true"
-    "-Ddesktop_docs=false"
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-desktop";
-      attrPath = "gnome3.gnome-desktop";
-    };
-  };
-
-  meta = with lib; {
-    description = "Library with common API for various GNOME modules";
-    license = with licenses; [ gpl2 lgpl2 ];
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
deleted file mode 100644
index 5c573d2502c2..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, gettext, fetchurl, pkg-config, udisks2, libsecret, libdvdread
-, meson, ninja, gtk3, glib, wrapGAppsHook, python3, libnotify
-, itstool, gnome3, libxml2, gsettings-desktop-schemas
-, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality, systemd }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-disk-utility";
-  version = "3.38.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-EL7d5UlL6zTjoiDW8w2TIMiCUv7rhCa9mM760YNteOk=";
-  };
-
-  nativeBuildInputs = [
-    meson ninja pkg-config gettext itstool libxslt docbook_xsl
-    wrapGAppsHook python3 libxml2
-  ];
-
-  buildInputs = [
-    gtk3 glib libsecret libpwquality libnotify libdvdread libcanberra-gtk3
-    udisks2 gnome3.adwaita-icon-theme systemd
-    gnome3.gnome-settings-daemon gsettings-desktop-schemas
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-disk-utility";
-      attrPath = "gnome3.gnome-disk-utility";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://en.wikipedia.org/wiki/GNOME_Disks";
-    description = "A udisks graphical front-end";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gvc-with-ucm-prePatch.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gvc-with-ucm-prePatch.nix
deleted file mode 100644
index b2db2baf025d..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gvc-with-ucm-prePatch.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ fetchFromGitLab }:
-
-let
-  # We need a gvc different then that which is shipped in the source tarball of
-  # whatever package that imports this file
-  gvc-src-with-ucm = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "libgnome-volume-control";
-    rev = "7a621180b46421e356b33972e3446775a504139c";
-    sha256 = "07rkgh9f7qcmlpy6jqh944axzh3z38f47g48ii842f2i3a1mrbw9";
-  };
-in
-''
-  rm -r ./subprojects/gvc
-  cp -r ${gvc-src-with-ucm} ./subprojects/gvc
-''
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/fix-desktop-file-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/fix-desktop-file-paths.patch
deleted file mode 100755
index 1795f998c9bd..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/fix-desktop-file-paths.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git a/applicationsUtils.js b/applicationsUtils.js
-index 728223b..aa9f291 100644
---- a/applicationsUtils.js
-+++ b/applicationsUtils.js
-@@ -44,27 +44,24 @@ var Search = new Lang.Class({
-      * @return {Void}
-      */
-     _init: function () {
--        let dir = [
--            "/usr/share/applications",
--            GLib.get_home_dir() + "/.local/share/applications",
--        ];
--
--        // listen object - file/monitor list
--        this._listen = dir.map((path) => {
--            let file = Gio.File.new_for_path(path);
--            let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
--
--            // refresh on each directory change
--            monitor.connect(
--                "changed",
--                Lang.bind(this, this._handleMonitorChanged)
--            );
--
--            return {
--                file: file,
--                monitor: monitor,
--            };
--        });
-+        this._listen = [...new Set(GLib.get_system_data_dirs())]
-+            .filter((path) => path.endsWith("/share"))
-+            .map((path) => Gio.File.new_for_path(path + "/applications"))
-+            .filter((file) => file.query_exists(null))
-+            .map((file) => {
-+                let monitor = file.monitor(Gio.FileMonitorFlags.NONE, null);
-+
-+                // refresh on each directory change
-+                monitor.connect(
-+                    "changed",
-+                    Lang.bind(this, this._handleMonitorChanged)
-+                );
-+
-+                return {
-+                    file: file,
-+                    monitor: monitor,
-+                };
-+            });
-         this._interval = null;
-         this._data = {};
- 
\ No newline at end of file
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-chess/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
deleted file mode 100644
index 918adc0eccff..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchurl, meson, ninja, vala, pkg-config, wrapGAppsHook, gobject-introspection
-, gettext, itstool, libxml2, python3, gnome3, glib, gtk3, librsvg }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-chess";
-  version = "3.38.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-chess/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1bpmi5p5vvjdq2rlm5x9k4gpci8jbrjvdxr1q62h5znzq0vz0w0l";
-  };
-
-  nativeBuildInputs = [ meson ninja vala pkg-config gettext itstool libxml2 python3 wrapGAppsHook gobject-introspection ];
-  buildInputs = [ glib gtk3 librsvg gnome3.adwaita-icon-theme ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-chess";
-      attrPath = "gnome3.gnome-chess";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://wiki.gnome.org/Apps/Chess";
-    description = "Play the classic two-player boardgame of chess";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
deleted file mode 100644
index 501b894a1df1..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook
-, librsvg, gsound, clutter-gtk, gettext, itstool, vala, python3
-, libxml2, libgee, libgnome-games-support, meson, ninja
-, desktop-file-utils, hicolor-icon-theme}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-nibbles";
-  version = "3.38.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-nibbles/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1naknfbciydbym79a0jq039xf0033z8gyln48c0qsbcfr2qn8yj5";
-  };
-
-  nativeBuildInputs = [
-    meson ninja vala python3
-    pkg-config wrapGAppsHook gettext itstool libxml2
-    desktop-file-utils hicolor-icon-theme
-  ];
-  buildInputs = [
-    gtk3 librsvg gsound clutter-gtk gnome3.adwaita-icon-theme
-    libgee libgnome-games-support
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-nibbles";
-      attrPath = "gnome3.gnome-nibbles";
-    };
-  };
-
-  meta = with lib; {
-    description = "Guide a worm around a maze";
-    homepage = "https://wiki.gnome.org/Apps/Nibbles";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-robots/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
deleted file mode 100644
index e9a079216b73..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook
-, librsvg, gsound, gettext, itstool, libxml2, libgnome-games-support
-, libgee, meson, ninja, python3, desktop-file-utils, adwaita-icon-theme }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-robots";
-  version = "3.38.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-robots/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1qpzpsyj9i5dsfy7anfb2dcm602bjkcgqj86fxvnxy6llx56ks0z";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-robots"; attrPath = "gnome3.gnome-robots"; };
-  };
-
-  nativeBuildInputs = [
-    pkg-config meson ninja python3
-    libxml2 wrapGAppsHook gettext itstool desktop-file-utils
-  ];
-  buildInputs = [
-    gtk3 librsvg gsound libgnome-games-support libgee adwaita-icon-theme
-  ];
-
-  postPatch = ''
-    chmod +x build-aux/meson_post_install.py
-    patchShebangs build-aux/meson_post_install.py
-  '';
-
-  meta = with lib; {
-    homepage = "https://wiki.gnome.org/Apps/Robots";
-    description = "Avoid the robots and make them crash into each other";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
deleted file mode 100644
index 9b8c78d6e4a2..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook
-, librsvg, gsound, gettext, itstool, libxml2
-, meson, ninja, vala, python3, desktop-file-utils
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-taquin";
-  version = "3.38.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-taquin/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0kw131q0ad0rbsp6qifjc8fjlhvjxyihil8a76kj8ya9mn7kvnwn";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-taquin"; attrPath = "gnome3.gnome-taquin"; };
-  };
-
-  nativeBuildInputs = [
-    pkg-config wrapGAppsHook meson ninja python3
-    gettext itstool libxml2 vala desktop-file-utils
-  ];
-  buildInputs = [
-    gtk3 librsvg gsound
-    gnome3.adwaita-icon-theme
-  ];
-
-  meta = with lib; {
-    homepage = "https://wiki.gnome.org/Apps/Taquin";
-    description = "Move tiles so that they reach their places";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
deleted file mode 100644
index de3d67b58bff..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk3, gnome3, gdk-pixbuf
-, librsvg, gsound, libmanette
-, gettext, itstool, libxml2, clutter, clutter-gtk, wrapGAppsHook
-, meson, ninja, python3, vala, desktop-file-utils
-}:
-
-stdenv.mkDerivation rec {
-  pname = "quadrapassel";
-  version = "3.38.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "033plabc6q3sk6qjr5nml8z6p07vcw57gxddxjk9b65wgg0rzzhr";
-  };
-
-  nativeBuildInputs = [
-    meson ninja python3 vala desktop-file-utils
-    pkg-config gnome3.adwaita-icon-theme
-    libxml2 itstool gettext wrapGAppsHook
-  ];
-  buildInputs = [
-    gtk3 gdk-pixbuf librsvg libmanette
-    gsound clutter libxml2 clutter-gtk
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    description = "Classic falling-block game, Tetris";
-    homepage = "https://wiki.gnome.org/Apps/Quadrapassel";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/swell-foop/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/swell-foop/default.nix
deleted file mode 100644
index 33dd9de1b423..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/games/swell-foop/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, vala, glib, gtk3, gnome3, desktop-file-utils
-, clutter, clutter-gtk, gettext, itstool, libxml2, wrapGAppsHook, python3 }:
-
-let
-  pname = "swell-foop";
-  version = "3.34.1";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1032psxm59nissi268bh3j964m4a0n0ah4dy1pf0ph27j3zvdik1";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  nativeBuildInputs = [ meson ninja vala pkg-config wrapGAppsHook python3 itstool gettext libxml2 desktop-file-utils ];
-  buildInputs = [ glib gtk3 gnome3.adwaita-icon-theme clutter clutter-gtk ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  meta = with lib; {
-    homepage = "https://wiki.gnome.org/Apps/Swell%20Foop";
-    description = "Puzzle game, previously known as Same GNOME";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
deleted file mode 100644
index b9409605f247..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk3, gnome3, gdk-pixbuf
-, librsvg, libgnome-games-support, gettext, itstool, libxml2, wrapGAppsHook
-, meson, ninja, python3, desktop-file-utils
-}:
-
-stdenv.mkDerivation rec {
-  pname = "tali";
-  version = "3.38.3";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/tali/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "AhVCi1DEoIJ/sN4uTmum5WZ4+bp22NJbfuyoUhXyWjk=";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "tali"; attrPath = "gnome3.tali"; };
-  };
-
-  nativeBuildInputs = [
-    meson ninja python3 desktop-file-utils
-    pkg-config gnome3.adwaita-icon-theme
-    libxml2 itstool gettext wrapGAppsHook
-  ];
-  buildInputs = [ gtk3 gdk-pixbuf librsvg libgnome-games-support ];
-
-  postPatch = ''
-    chmod +x build-aux/meson_post_install.py
-    patchShebangs build-aux/meson_post_install.py
-  '';
-
-  meta = with lib; {
-    homepage = "https://wiki.gnome.org/Apps/Tali";
-    description = "Sort of poker with dice and less money";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/Bump-client-test-timeout-to-300s.patch b/nixpkgs/pkgs/desktops/gnome-3/misc/geary/Bump-client-test-timeout-to-300s.patch
deleted file mode 100644
index abd8772cf31e..000000000000
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/Bump-client-test-timeout-to-300s.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/test/meson.build b/test/meson.build
-index 6ea5e27a..450c03e3 100644
---- a/test/meson.build
-+++ b/test/meson.build
-@@ -167,4 +167,4 @@ test_integration_bin = executable('test-integration',
- )
- 
- test('engine-tests', test_engine_bin)
--test('client-tests', test_client_bin)
-+test('client-tests', test_client_bin, timeout: 300)
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix
index 2f8163adc728..d81b84661941 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchurl
 , pkg-config
-, gnome3
+, gnome
 , gtk3
 , wrapGAppsHook
 , gobject-introspection
@@ -57,9 +57,10 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "accerciser";
-      attrPath = "gnome3.accerciser";
+      attrPath = "gnome.accerciser";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/cheese/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
index 04c6b31563cd..d0a9d6aaabb1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/cheese/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
@@ -1,6 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , gettext
 , fetchurl
+, fetchpatch
 , wrapGAppsHook
 , gnome-video-effects
 , libcanberra-gtk3
@@ -9,23 +11,19 @@
 , glib
 , clutter-gtk
 , clutter-gst
-, udev
 , gst_all_1
 , itstool
-, libgudev
 , vala
 , docbook_xml_dtd_43
-, docbook_xsl
+, docbook-xsl-nons
 , appstream-glib
 , libxslt
-, yelp-tools
-, gnome-common
 , gtk-doc
 , adwaita-icon-theme
 , librsvg
 , totem
 , gdk-pixbuf
-, gnome3
+, gnome
 , gnome-desktop
 , libxml2
 , meson
@@ -38,37 +36,37 @@ stdenv.mkDerivation rec {
   pname = "cheese";
   version = "3.38.0";
 
+  outputs = [ "out" "man" "devdoc" ];
+
   src = fetchurl {
     url = "mirror://gnome/sources/cheese/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8";
   };
 
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "cheese"; attrPath = "gnome3.cheese"; };
-  };
+  patches = [
+    # Fix build with latest Vala or GLib
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/cheese/commit/7cf6268e54620bbbe5e6e61800c50fb0cb4bea57.patch";
+      sha256 = "WJgGNrpZLTahe7Sxr8HdTl+4Mf4VcmJb6DdiInlDcT4=";
+    })
+  ];
 
   nativeBuildInputs = [
     appstream-glib
     docbook_xml_dtd_43
-    docbook_xsl
+    docbook-xsl-nons
     gettext
-    gnome-common
     gtk-doc
     itstool
     libxml2
-    libxslt
+    libxslt # for xsltproc
     meson
     ninja
     pkg-config
     python3
     vala
     wrapGAppsHook
-    yelp-tools
+    glib # for glib-compile-schemas
   ];
 
   buildInputs = [
@@ -86,12 +84,13 @@ stdenv.mkDerivation rec {
     gst_all_1.gstreamer
     gtk3
     libcanberra-gtk3
-    libgudev
     librsvg
-    udev
   ];
 
-  outputs = [ "out" "man" "devdoc" ];
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
 
   preFixup = ''
     gappsWrapperArgs+=(
@@ -105,13 +104,18 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  enableParallelBuilding = true;
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "cheese";
+      attrPath = "gnome.cheese";
+    };
+  };
 
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Cheese";
     description = "Take photos and videos with your webcam, with fun graphical effects";
     maintainers = teams.gnome.members;
-    license = licenses.gpl3;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/file-roller/default.nix
index 81680fb5df87..6af1994fb060 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/file-roller/default.nix
@@ -1,20 +1,21 @@
-{ lib, stdenv, fetchurl, glib, gtk3, meson, ninja, pkg-config, gnome3, gettext, itstool, libxml2, libarchive
-, file, json-glib, python3, wrapGAppsHook, desktop-file-utils, libnotify, nautilus, glibcLocales }:
+{ lib, stdenv, fetchurl, glib, gtk3, meson, ninja, pkg-config, gnome, gettext, itstool, libxml2, libarchive
+, file, json-glib, python3, wrapGAppsHook, desktop-file-utils, libnotify, nautilus, glibcLocales
+, unzip, cpio }:
 
 stdenv.mkDerivation rec {
   pname = "file-roller";
-  version = "3.38.0";
+  version = "3.40.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj";
+    sha256 = "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a";
   };
 
   LANG = "en_US.UTF-8"; # postinstall.py
 
   nativeBuildInputs = [ meson ninja gettext itstool pkg-config libxml2 python3 wrapGAppsHook glibcLocales desktop-file-utils ];
 
-  buildInputs = [ glib gtk3 json-glib libarchive file gnome3.adwaita-icon-theme libnotify nautilus ];
+  buildInputs = [ glib gtk3 json-glib libarchive file gnome.adwaita-icon-theme libnotify nautilus cpio ];
 
   PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
 
@@ -24,10 +25,16 @@ stdenv.mkDerivation rec {
     patchShebangs data/set-mime-type-entry.py
   '';
 
+  postFixup = ''
+    # Workaround because of https://gitlab.gnome.org/GNOME/file-roller/issues/40
+    wrapProgram "$out/bin/file-roller" \
+      --prefix PATH : ${lib.makeBinPath [ unzip ]}
+  '';
+
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "file-roller";
-      attrPath = "gnome3.file-roller";
+      attrPath = "gnome.file-roller";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix
index 79d31c3b8c70..a8479e9cdcad 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gedit/default.nix
@@ -13,7 +13,7 @@
 , ninja
 , libsoup
 , tepl
-, gnome3
+, gnome
 , gspell
 , perl
 , itstool
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gedit";
-  version = "3.38.1";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gedit/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0kc48a399achcz6vlqq0jk0b8ixbrzyv9xb22s5av76m5hyqalq0";
+    url = "mirror://gnome/sources/gedit/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm";
   };
 
   nativeBuildInputs = [
@@ -65,9 +65,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gedit";
-      attrPath = "gnome3.gedit";
+      attrPath = "gnome.gedit";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/ghex/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
index fb8cf0a1a1c7..500e60feb75c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/ghex/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -5,7 +5,7 @@
 , meson
 , ninja
 , python3
-, gnome3
+, gnome
 , desktop-file-utils
 , appstream-glib
 , gettext
@@ -68,9 +68,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "ghex";
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-books/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-books/default.nix
index bff7c5fb281c..0e8b322cf5ed 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-books/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-books/default.nix
@@ -14,11 +14,11 @@
 , webkitgtk
 , gnome-desktop
 , libgepub
-, gnome3
+, gnome
 , gdk-pixbuf
 , gsettings-desktop-schemas
 , adwaita-icon-theme
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_42
 , desktop-file-utils
 , python3
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-books";
-  version = "3.34.0";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "153vknqisjn5f105avzm933fsc3v0pjzzbwxlqxf8vjjksh1cmya";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0c41l8m2di8h39bmk2fnhpwglwp6qhljmwqqbihzp4ay9976zrc5";
   };
 
   nativeBuildInputs = [
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     gettext
     libxslt
     desktop-file-utils
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_42
     wrapGAppsHook
     python3
@@ -70,14 +70,13 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-books";
-      attrPath = "gnome3.gnome-books";
+      attrPath = "gnome.gnome-books";
     };
   };
 
   meta = with lib; {
-    broken = true; # Tracker 3 not supported and it cannot start Tracker 2.
     homepage = "https://wiki.gnome.org/Apps/Books";
     description = "An e-book manager application for GNOME";
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index 302fb7f8127c..8d0e86b1a93b 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -19,7 +19,7 @@
 , python3
 , appstream-glib
 , spice-protocol
-, libhandy_0
+, libhandy
 , libsoup
 , libosinfo
 , systemd
@@ -31,7 +31,7 @@
 , gmp
 , gdbm
 , cyrus_sasl
-, gnome3
+, gnome
 , librsvg
 , desktop-file-utils
 , mtools
@@ -49,15 +49,16 @@
 , webkitgtk
 , vte
 , glib-networking
+, qemu-utils
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-boxes";
-  version = "3.38.2";
+  version = "40.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1zjvng0izbws3506998l3dwsxjbm7wnhqipb8nmqzvi096czvajl";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "hzN1mi2GpWNnWWpTSQRjO4HKqlxFpWNtsulZDHFK6Nk=";
   };
 
   doCheck = true;
@@ -89,7 +90,7 @@ stdenv.mkDerivation rec {
     glib
     glib-networking
     gmp
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gtk-vnc
     gtk3
     gtksourceview4
@@ -99,7 +100,7 @@ stdenv.mkDerivation rec {
     libcap
     libcap_ng
     libgudev
-    libhandy_0
+    libhandy
     libosinfo
     librsvg
     libsecret
@@ -120,7 +121,7 @@ stdenv.mkDerivation rec {
   ];
 
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ mtools cdrkit libcdio ]}")
+    gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ mtools cdrkit libcdio qemu-utils ]}")
   '';
 
   postPatch = ''
@@ -129,16 +130,16 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
   meta = with lib; {
     description = "Simple GNOME 3 application to access remote or virtual systems";
     homepage = "https://wiki.gnome.org/Apps/Boxes";
-    license = licenses.gpl3;
+    license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
index e15125a00bf2..da2e37e51fc4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -12,7 +11,7 @@
 , python3
 , gettext
 , libxml2
-, gnome3
+, gnome
 , gtk3
 , evolution-data-server
 , libsoup
@@ -25,31 +24,23 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-calendar";
-  version = "3.38.2";
+  version = "40.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0SG7NLCLbqYB9du6Q6SxYTpuVJP8Cx4uzJDGZnEakS0=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "njcB/UoOWJgA0iUgN3BkTzHVI0ZV9UqDqF/wVW3X6jM=";
   };
 
   patches = [
-    # Port to libhandy-1
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-calendar/-/commit/8be361b6ce8f0f8053e1609decbdbdc164ec8448.patch";
-      sha256 = "Ue0pWwcbYyCZPHPPoR0dXW5n948/AZ3wVDMTIZDOnyE=";
-    })
-
     # https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/84
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/84.patch";
-      sha256 = "czG3uIHl3tBnjDUvCOPm8IRp2o7yZYCb0/jWtv3uzIY=";
-    })
+    # A refactor has caused the PR patch to drift enough to need rebasing
+    ./gtk_image_reset_crash.patch
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/gtk_image_reset_crash.patch b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/gtk_image_reset_crash.patch
new file mode 100644
index 000000000000..5065295b57b7
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/gtk_image_reset_crash.patch
@@ -0,0 +1,17 @@
+diff --git a/src/gui/views/gcal-year-view.c b/src/gui/views/gcal-year-view.c
+index ac32a8f9..532425c1 100644
+--- a/src/gui/views/gcal-year-view.c
++++ b/src/gui/views/gcal-year-view.c
+@@ -2158,7 +2158,11 @@ update_weather (GcalYearView *self)
+   if (!updated)
+     {
+       gtk_label_set_text (self->temp_label, "");
+-      gtk_image_clear (self->weather_icon);
++      /* FIXME: This should never be NULL, but it somehow is.
++       * https://gitlab.gnome.org/GNOME/gnome-calendar/issues/299
++       */
++      if (self->weather_icon != NULL)
++        gtk_image_clear (self->weather_icon);
+     }
+ }
+ 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix
index 3a65be9440e5..5cbd58d602a9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , meson
 , ninja
 , pkg-config
 , gettext
-, gnome3
+, gnome
 , glib
 , gtk3
 , pango
@@ -13,6 +14,7 @@
 , gobject-introspection
 , gjs
 , libunistring
+, libhandy
 , gsettings-desktop-schemas
 , adwaita-icon-theme
 , gnome-desktop
@@ -20,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-characters";
-  version = "3.34.0";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-characters/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0mqaxsa7hcmvid3zbzvxpfkp7s01ghiq6kaibmd3169axrr8ahql";
+    url = "mirror://gnome/sources/gnome-characters/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha";
   };
 
   nativeBuildInputs = [
@@ -46,6 +48,7 @@ stdenv.mkDerivation rec {
     gsettings-desktop-schemas
     gtk3
     libunistring
+    libhandy
     pango
   ];
 
@@ -69,17 +72,17 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
   meta = with lib; {
-    homepage = "https://wiki.gnome.org/Design/Apps/CharacterMap";
+    homepage = "https://wiki.gnome.org/Apps/Characters";
     description = "Simple utility application to find and insert unusual characters";
     maintainers = teams.gnome.members;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
index a2caaf068eb7..d9a749a24b09 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
@@ -18,7 +18,7 @@
 , adwaita-icon-theme
 , gnome-desktop
 , geocode-glib
-, gnome3
+, gnome
 , gdk-pixbuf
 , geoclue2
 , libgweather
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-clocks";
-  version = "3.38.0";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-clocks/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0f24g76ax59qnms1rjfyf1i0sa84nadgbr0r6m26p90w1w2wnmnr";
+    url = "mirror://gnome/sources/gnome-clocks/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2";
   };
 
   nativeBuildInputs = [
@@ -71,9 +71,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-clocks";
-      attrPath = "gnome3.gnome-clocks";
+      attrPath = "gnome.gnome-clocks";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-connections/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index 17f11d0efdc3..a00b239641f8 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-connections/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -1,46 +1,45 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, gnome3
 , meson
 , ninja
-, vala
 , pkg-config
+, vala
+, gettext
+, itstool
+, python3
+, appstream-glib
+, desktop-file-utils
+, wrapGAppsHook
 , glib
 , gtk3
-, python3
 , libxml2
 , gtk-vnc
-, gettext
-, desktop-file-utils
-, appstream-glib
-, gobject-introspection
-, freerdp
-, wrapGAppsHook
+, gtk-frdp
+, gnome
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-connections";
-  version = "3.38.1";
+  version = "40.0.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/connections/${lib.versions.majorMinor version}/connections-${version}.tar.xz";
-    hash = "sha256-5c7uBFkh9Vsw6bWWUDjNTMDrrFqI5JEgYlsWpfyuTpA=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    hash = "sha256-vpvLoHzz+vWs4M5UzSL4YJtNx3ZuJe5f2cGAw5WbTRE=";
   };
 
   nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    glib # glib-compile-resources
     meson
-    appstream-glib
     ninja
     pkg-config
-    python3
     vala
+    gettext
+    itstool
+    python3
+    appstream-glib
+    desktop-file-utils
+    glib # glib-compile-resources
     wrapGAppsHook
-
-    # for gtk-frdp subproject
-    gobject-introspection
   ];
 
   buildInputs = [
@@ -48,9 +47,7 @@ stdenv.mkDerivation rec {
     gtk-vnc
     gtk3
     libxml2
-
-    # for gtk-frdp subproject
-    freerdp
+    gtk-frdp
   ];
 
   postPatch = ''
@@ -59,9 +56,8 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "connections";
-      attrPath = "gnome-connections";
+    updateScript = gnome.updateScript {
+      packageName = pname;
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-documents/default.nix
index 3172ae271233..3f7ac34696bf 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-documents/default.nix
@@ -18,7 +18,7 @@
 , gnome-desktop
 , libzapojit
 , libgepub
-, gnome3
+, gnome
 , gdk-pixbuf
 , libsoup
 , docbook_xsl
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
     glib
     gsettings-desktop-schemas
     gdk-pixbuf
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     evince
     libsoup
     webkitgtk
@@ -110,9 +110,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix
index 20b27b2ddd05..da06eb4404c1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix
@@ -4,7 +4,7 @@
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , glib
 , gtk3
 , wrapGAppsHook
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     gtk3
     systemd
     gsettings-desktop-schemas
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   mesonFlags = [
@@ -70,9 +70,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-logs";
-      attrPath = "gnome3.gnome-logs";
+      attrPath = "gnome.gnome-logs";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index f0a80bc525ad..0a07428b1b22 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -5,7 +5,7 @@
 , gettext
 , python3
 , pkg-config
-, gnome3
+, gnome
 , gtk3
 , gobject-introspection
 , gdk-pixbuf
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-maps";
-  version = "3.38.4";
+  version = "40.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-1WQekf/kePsqqcpIliJczxjsLqTZjjV2UXmBin2+RKM=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-g+gVAFTQxLWmPJoJvyx9+YmuaQ7Kwb5r97ExKqpjm9Q=";
   };
 
   doCheck = true;
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     gfbgraph
     gjs
     gnome-online-accounts
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gobject-introspection
     gsettings-desktop-schemas
     gtk3
@@ -82,10 +82,15 @@ stdenv.mkDerivation rec {
                   "Exec=$out/bin/gnome-maps"
   '';
 
+  preCheck = ''
+    # “time.js” included by “timeTest” and “translationsTest” depends on “org.gnome.desktop.interface” schema.
+    export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:$XDG_DATA_DIRS"
+  '';
+
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
index be456071e41d..51e3d5a9cdf3 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
@@ -21,7 +21,7 @@
 , desktop-file-utils
 , appstream-glib
 , itstool
-, gnome3
+, gnome
 , gst_all_1
 , libdazzle
 , libsoup
@@ -30,13 +30,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "3.38.2";
+  version = "40.0";
 
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0c2051wngf3jrifl5bv5kyqcci459n62vixxkryiryjcaqwbd1am";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1djqhd4jccvk352hwxjhiwjgbnv1qnpv450f2c6w6581vcn9pq38";
   };
 
   nativeBuildInputs = [
@@ -60,7 +60,7 @@ python3.pkgs.buildPythonApplication rec {
     gnome-online-accounts
     gobject-introspection
     gdk-pixbuf
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     python3
     grilo
     grilo-plugins
@@ -97,9 +97,9 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
index 6fca1c0eea5e..ca75b7aae07f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook
+{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, wrapGAppsHook
 , libgtop, intltool, itstool, libxml2, nmap, inetutils }:
 
 stdenv.mkDerivation rec {
@@ -13,15 +13,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     gtk3 wrapGAppsHook libgtop intltool itstool libxml2
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   propagatedUserEnvPkgs = [ nmap inetutils ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
       versionPolicy = "none";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix
index c6d4a30ab0a7..6af206069e29 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix
@@ -12,11 +12,12 @@
 , gtk3
 , evolution-data-server
 , gnome-online-accounts
+, json-glib
 , libuuid
-, libhandy_0
+, curl
+, libhandy
 , webkitgtk
-, zeitgeist
-, gnome3
+, gnome
 , libxml2
 , gsettings-desktop-schemas
 , tracker
@@ -24,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-notes";
-  version = "3.38.0";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/bijiben/${lib.versions.majorMinor version}/bijiben-${version}.tar.xz";
-    sha256 = "H/bMCsbGKQe/KgmhchXt0vF7dNrKs6XIminDBJFyvis=";
+    url = "mirror://gnome/sources/bijiben/${lib.versions.major version}/bijiben-${version}.tar.xz";
+    sha256 = "1gvvb2klkzbmyzwkjgmscdiqcl8lyz9b0rxb4igjz079csq6z805";
   };
 
   doCheck = true;
@@ -53,26 +54,26 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     gtk3
+    json-glib
     libuuid
-    libhandy_0 # doesn't support libhandy-1 yet
+    curl
+    libhandy
     webkitgtk
     tracker
     gnome-online-accounts
-    zeitgeist
     gsettings-desktop-schemas
     evolution-data-server
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   mesonFlags = [
-    "-Dzeitgeist=true"
     "-Dupdate_mimedb=false"
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "bijiben";
-      attrPath = "gnome3.gnome-notes";
+      attrPath = "gnome.gnome-notes";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
index cb79a772b795..0337f70a20e5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
@@ -10,7 +10,7 @@
 , python3
 , desktop-file-utils
 , wrapGAppsHook
-, gnome3 }:
+, gnome }:
 
 let
   pname = "gnome-power-manager";
@@ -24,9 +24,9 @@ in stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
@@ -47,7 +47,7 @@ in stdenv.mkDerivation rec {
     gtk3
     glib
     upower
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
index 6cc5c2ab7833..29f7aa6e9ee4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
@@ -9,7 +9,7 @@
 , gtk3
 , gdk-pixbuf
 , gst_all_1
-, gnome3
+, gnome
 , meson
 , ninja
 , python3
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-sound-recorder";
-  version = "3.38.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "2Z6k+WPsEInpzVl6fUQ5ihHs7xMeQUInGhyQwVuqRSE=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "00b55vsfzx877b7mj744abzjws7zclz71wbvh0axsrbl9l84ranl";
   };
 
   nativeBuildInputs = [
@@ -56,9 +56,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix
new file mode 100644
index 000000000000..ae1334cd562b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-todo/default.nix
@@ -0,0 +1,85 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook
+, gettext
+, gnome
+, glib
+, gtk4
+, wayland
+, libadwaita
+, libpeas
+, gnome-online-accounts
+, gsettings-desktop-schemas
+, libportal
+, evolution-data-server
+, libical
+, librest
+, json-glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-todo";
+  version = "40.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "aAl8lvBnXHFCZn0QQ0ToNHLdf8xTj+wKzb9gJrucobE=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    python3
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gtk4
+    wayland # required by gtk header
+    libadwaita
+    libpeas
+    gnome-online-accounts
+    gsettings-desktop-schemas
+    gnome.adwaita-icon-theme
+
+    # Plug-ins
+    libportal # background
+    evolution-data-server # eds
+    libical
+    librest # todoist
+    json-glib # todoist
+  ];
+
+  postPatch = ''
+    chmod +x build-aux/meson/meson_post_install.py
+    patchShebangs build-aux/meson/meson_post_install.py
+
+    # https://gitlab.gnome.org/GNOME/gnome-todo/merge_requests/103
+    substituteInPlace src/meson.build \
+      --replace 'Gtk-3.0' 'Gtk-4.0'
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
+  meta = with lib; {
+    description = "Personal task manager for GNOME";
+    homepage = "https://wiki.gnome.org/Apps/Todo";
+    license = licenses.gpl3Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix
index 9a5079dfc643..39c10e82a1c2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix
@@ -1,19 +1,49 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook, gjs, gobject-introspection
-, libgweather, meson, ninja, geoclue2, gnome-desktop, python3, gsettings-desktop-schemas }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, gnome
+, gtk3
+, libhandy
+, wrapGAppsHook
+, gjs
+, gobject-introspection
+, libgweather
+, meson
+, ninja
+, geoclue2
+, gnome-desktop
+, python3
+, gsettings-desktop-schemas
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-weather";
-  version = "3.36.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-weather/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11z75ky6xp9hx7lm24xng7ydr20bzh4d6p9sbi9c8ccz2m3fdrk8";
+    url = "mirror://gnome/sources/gnome-weather/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1vxfcvga5waangq3rzwdrdxyy5sw40vv0l463lc651s0n8xafd9a";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook python3 ];
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    wrapGAppsHook
+    python3
+  ];
+
   buildInputs = [
-    gtk3 gjs gobject-introspection gnome-desktop
-    libgweather gnome3.adwaita-icon-theme geoclue2 gsettings-desktop-schemas
+    gtk3
+    libhandy
+    gjs
+    gobject-introspection
+    gnome-desktop
+    libgweather
+    gnome.adwaita-icon-theme
+    geoclue2
+    gsettings-desktop-schemas
   ];
 
   postPatch = ''
@@ -30,9 +60,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-weather";
-      attrPath = "gnome3.gnome-weather";
+      attrPath = "gnome.gnome-weather";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix
index 727a82e5ff39..0675ccb2f82d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, itstool, fetchurl, gdk-pixbuf, adwaita-icon-theme
 , telepathy-glib, gjs, meson, ninja, gettext, telepathy-idle, libxml2, desktop-file-utils
 , pkg-config, gtk3, glib, libsecret, libsoup, webkitgtk, gobject-introspection, appstream-glib
-, gnome3, wrapGAppsHook, telepathy-logger, gspell, gsettings-desktop-schemas }:
+, gnome, wrapGAppsHook, telepathy-logger, gspell, gsettings-desktop-schemas }:
 
 let
   pname = "polari";
@@ -38,9 +38,9 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/polari/make-thumbnailer-wrappable.patch b/nixpkgs/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch
index 0fb09eb154af..0fb09eb154af 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/polari/make-thumbnailer-wrappable.patch
+++ b/nixpkgs/pkgs/desktops/gnome/apps/polari/make-thumbnailer-wrappable.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix
index 60ec6792e5dd..d46aed7bbe94 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix
@@ -11,7 +11,7 @@
 , itstool
 , gnupg
 , libsoup
-, gnome3
+, gnome
 , gpgme
 , python3
 , openldap
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "seahorse";
-  version = "3.38.0.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-x0XdHebhog8ZorB6Q4uO98yiNaaqc0ENt/E3sCHpsqI=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    hash = "sha256-fscFezhousbqBB/aghQKOfXsnlsYi0UJFNRTvC1V0Cw=";
   };
 
   doCheck = true;
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     gcr
     gsettings-desktop-schemas
     gnupg
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gpgme
     libsecret
     avahi
@@ -68,9 +68,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/vinagre/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix
index 49abb2f1a706..31e198783e04 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/vinagre/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk3, gnome3, vte, libxml2, gtk-vnc, intltool
+{ lib, stdenv, fetchurl, pkg-config, gtk3, gnome, vte, libxml2, gtk-vnc, intltool
 , libsecret, itstool, wrapGAppsHook, librsvg }:
 
 stdenv.mkDerivation rec {
@@ -12,15 +12,15 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config intltool itstool wrapGAppsHook ];
   buildInputs = [
-    gtk3 vte libxml2 gtk-vnc libsecret gnome3.adwaita-icon-theme librsvg
+    gtk3 vte libxml2 gtk-vnc libsecret gnome.adwaita-icon-theme librsvg
   ];
 
   NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "vinagre";
-      attrPath = "gnome3.vinagre";
+      attrPath = "gnome.vinagre";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix b/nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
index a1be29b01830..04f8a7a3c37b 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gnome3
+{ lib, stdenv, fetchurl, pkg-config, intltool, gnome
 , iconnamingutils, gtk3, gdk-pixbuf, librsvg, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "adwaita-icon-theme";
-  version = "3.38.0";
+  version = "40.1.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "15xgz9wzk07442x3s3052as95g0223z4pp9qlsgcs323yama30v6";
+    url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "C2xDbtatmIeoitofcqAZex63OwINjTRKurTH+nJQ+PY=";
   };
 
   # For convenience, we can specify adwaita-icon-theme only in packages
@@ -23,9 +23,9 @@ stdenv.mkDerivation rec {
   postInstall = '' rm -rf "$out/locale" '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "adwaita-icon-theme";
-      attrPath = "gnome3.adwaita-icon-theme";
+      attrPath = "gnome.adwaita-icon-theme";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix b/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
new file mode 100644
index 000000000000..8d0f9459c3b0
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, lib
+, gettext
+, fetchurl
+, vala
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, python3
+, gtk3
+, libhandy
+, glib
+, libxml2
+, wrapGAppsHook
+, itstool
+, gnome
+}:
+
+stdenv.mkDerivation rec {
+  pname = "baobab";
+  version = "40.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+    gettext
+    itstool
+    libxml2
+    desktop-file-utils
+    wrapGAppsHook
+    python3
+  ];
+
+  buildInputs = [
+    gtk3
+    libhandy
+    glib
+    gnome.adwaita-icon-theme
+  ];
+
+  doCheck = true;
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "Graphical application to analyse disk usage in any GNOME environment";
+    homepage = "https://wiki.gnome.org/Apps/DiskUsageAnalyzer";
+    license = licenses.gpl2Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/caribou/default.nix b/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
index 88260f05acf1..5985ff822667 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/caribou/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, pkg-config, gnome3, glib, gtk3, clutter, dbus, python3, libxml2
+{ fetchurl, lib, stdenv, pkg-config, gnome, glib, gtk3, clutter, dbus, python3, libxml2
 , libxklavier, libXtst, gtk2, intltool, libxslt, at-spi2-core, autoreconfHook
 , wrapGAppsHook, libgee }:
 
@@ -38,9 +38,9 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix b/nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix
new file mode 100644
index 000000000000..165980d7e9c1
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, vala
+, libxslt
+, pkg-config
+, glib
+, gtk3
+, gnome
+, python3
+, dconf
+, libxml2
+, gettext
+, docbook-xsl-nons
+, wrapGAppsHook
+, gobject-introspection
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dconf-editor";
+  version = "3.38.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-Vxr0x9rU8Em1PmzXKLea3fCMJ92ra8V7OW0hGGbueeM=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    libxslt
+    pkg-config
+    wrapGAppsHook
+    gettext
+    docbook-xsl-nons
+    libxml2
+    gobject-introspection
+    python3
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    dconf
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
+  meta = with lib; {
+    description = "GSettings editor for GNOME";
+    homepage = "https://wiki.gnome.org/Apps/DconfEditor";
+    license = licenses.gpl3Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/empathy/default.nix b/nixpkgs/pkgs/desktops/gnome/core/empathy/default.nix
index 8ebb5c3f64f1..fbfee37cd13e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/empathy/default.nix
@@ -7,7 +7,7 @@
 , glib
 , file
 , librsvg
-, gnome3
+, gnome
 , gdk-pixbuf
 , python3
 , telepathy-glib
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
     libcanberra-gtk3
     telepathy-farstream
     farstream
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gsettings-desktop-schemas
     librsvg
 
@@ -131,7 +131,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "empathy";
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix b/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
index cec0ac7a6815..e67a623069b1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
@@ -9,7 +9,7 @@
 , libjpeg
 , libpeas
 , libportal
-, gnome3
+, gnome
 , gtk3
 , glib
 , gsettings-desktop-schemas
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eog";
-  version = "3.38.2";
+  version = "40.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-ilT9+T4wag9khToYgxrIwEg4IEdxBqrgvcAKrDc4bw4=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-kITimZMftX3ih+V9vS7i0pf7Z0DA1TW52o1fGWqP0ZU=";
   };
 
   nativeBuildInputs = [
@@ -79,9 +79,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix b/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
index 9f949b60738e..0b4191b2266c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -8,7 +8,7 @@
 , glib
 , icu
 , wrapGAppsHook
-, gnome3
+, gnome
 , libportal
 , libxml2
 , libxslt
@@ -19,6 +19,7 @@
 , libsecret
 , gnome-desktop
 , libnotify
+, libarchive
 , p11-kit
 , sqlite
 , gcr
@@ -36,18 +37,13 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "3.38.2";
+  version = "40.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0v8iymg72m83ikxxyhapvz5v8zh8hlr1pw7n215cy3p8q6yg41cb";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "dRGeIgZWV89w7ytgPU9zg1VzvQNPHmGMD2YkeP1saDU=";
   };
 
-  # Tests need an X display
-  mesonFlags = [
-    "-Dunit_tests=disabled"
-  ];
-
   nativeBuildInputs = [
     desktop-file-utils
     gettext
@@ -68,7 +64,7 @@ stdenv.mkDerivation rec {
     glib
     glib-networking
     gnome-desktop
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gst_all_1.gst-libav
     gst_all_1.gst-plugins-bad
     gst_all_1.gst-plugins-base
@@ -83,6 +79,7 @@ stdenv.mkDerivation rec {
     libhandy
     libportal
     libnotify
+    libarchive
     libsecret
     libsoup
     libxml2
@@ -92,13 +89,18 @@ stdenv.mkDerivation rec {
     webkitgtk
   ];
 
+  # Tests need an X display
+  mesonFlags = [
+    "-Dunit_tests=disabled"
+  ];
+
   postPatch = ''
     chmod +x post_install.py # patchShebangs requires executable file
     patchShebangs post_install.py
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
@@ -107,7 +109,7 @@ stdenv.mkDerivation rec {
     homepage = "https://wiki.gnome.org/Apps/Epiphany";
     description = "WebKit based web browser for GNOME";
     maintainers = teams.gnome.members;
-    license = licenses.gpl2;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix b/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
index 31828bad0af1..3d7f3e0b8356 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
@@ -13,12 +13,13 @@
 , gdk-pixbuf
 , shared-mime-info
 , itstool
-, gnome3
+, gnome
 , poppler
 , ghostscriptX
 , djvulibre
 , libspectre
 , libarchive
+, libhandy
 , libsecret
 , wrapGAppsHook
 , librsvg
@@ -43,13 +44,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "3.38.2";
+  version = "40.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evince/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "J9QZ1f7WMF4HRijtz94MtzT//aIF1jysMjORwEkDvZQ=";
+    url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0bfg7prmjk3z8irx1nfkkqph3igg3cy4pwd7pcxjxbshqdin6rks";
   };
 
   postPatch = ''
@@ -86,6 +87,7 @@ stdenv.mkDerivation rec {
     gspell
     gtk3
     libarchive
+    libhandy
     librsvg
     libsecret
     libspectre
@@ -110,7 +112,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index dc43bdfd4932..8781a2aa7fde 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, substituteAll, pkg-config, gnome3, python3, gobject-introspection
+{ fetchurl, lib, stdenv, substituteAll, pkg-config, gnome, python3, gobject-introspection
 , intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3, gcr, p11-kit
 , db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking, pcre, vala, cmake, ninja
 , libkrb5, openldap, webkitgtk, libaccounts-glib, json-glib, glib, gtk3, libphonenumber
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.38.4";
+  version = "3.40.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "rFPxay1R8+f/gCX5yhn0otTOOEHXKun+K7iX3ICZ1wU=";
+    sha256 = "7IKVFjnzKlzs6AqLC5qj9mt9MY4+4sHDUjTy4r3opBg=";
   };
 
   patches = [
@@ -50,8 +50,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "evolution-data-server";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/fix-paths.patch
index 334235516591..334235516591 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
index 4e345c3cb3ca..4e345c3cb3ca 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix
index 324ab865b11e..f30449773495 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix
@@ -13,7 +13,7 @@
 , xorg
 , accountsservice
 , libX11
-, gnome3
+, gnome
 , systemd
 , dconf
 , gtk3
@@ -42,13 +42,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gdm";
-  version = "3.38.2.1";
+  version = "40.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdm/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "yliiBdXr/L2rVqEXFriY4Wrl3/Ia7nnQdgRkRGKOxNo=";
+    url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "XtdLc506Iy/7HkoTK8+WW9/pVdmVtSh3NYh3WwLylQ4=";
   };
 
   mesonFlags = [
@@ -90,10 +90,13 @@ stdenv.mkDerivation rec {
   ];
 
   patches = [
-    # https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/112
+    # GDM fails to find g-s with the following error in the journal.
+    # gdm-x-session[976]: dbus-run-session: failed to exec 'gnome-session': No such file or directory
+    # https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/92
     (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gdm/-/commit/1d28d4b3568381b8590d2235737b924aefd1746c.patch";
-      sha256 = "ZUXKZS4T0o0hzrApxaqcR0txCRv5zBgqeQ9K9fLNX1o=";
+      url = "https://gitlab.gnome.org/GNOME/gdm/-/commit/ccecd9c975d04da80db4cd547b67a1a94fa83292.patch";
+      sha256 = "5hKS9wjjhuSAYwXct5vS0dPbmPRIINJoLC0Zm1naz6Q=";
+      revert = true;
     })
 
     # Change hardcoded paths to nix store paths.
@@ -157,9 +160,9 @@ stdenv.mkDerivation rec {
   DESTDIR = "${placeholder "out"}/dest";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gdm";
-      attrPath = "gnome3.gdm";
+      attrPath = "gnome.gdm";
     };
 
     # Used in GDM NixOS module
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch
index d649556fe9e6..d649556fe9e6 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch b/nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-session-worker_forward-vars.patch
index 401b6aea0c28..401b6aea0c28 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-session-worker_forward-vars.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch b/nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-x-session_extra_args.patch
index 66071aa4af80..66071aa4af80 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-x-session_extra_args.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch b/nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-x-session_session-wrapper.patch
index 58481f0730fa..58481f0730fa 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/gdm-x-session_session-wrapper.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override b/nixpkgs/pkgs/desktops/gnome/core/gdm/org.gnome.login-screen.gschema.override
index 8c17f494b0f2..8c17f494b0f2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/org.gnome.login-screen.gschema.override
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch b/nixpkgs/pkgs/desktops/gnome/core/gdm/reset-environment.patch
index 61defd9c4bc2..61defd9c4bc2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/reset-environment.patch
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
new file mode 100644
index 000000000000..370cd14e4677
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gnome, gettext }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-backgrounds";
+  version = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-backgrounds/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "YN+KDaMBzkJbcEPUKuMuxAEf8I8Y4Pxi8pQBMF2jpw4=";
+  };
+
+  passthru = {
+    updateScript = gnome.updateScript { packageName = "gnome-backgrounds"; attrPath = "gnome.gnome-backgrounds"; };
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config gettext ];
+
+  meta = with lib; {
+    platforms = platforms.unix;
+    maintainers = teams.gnome.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
new file mode 100644
index 000000000000..07b77c04994d
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchurl
+, gnome
+, meson
+, ninja
+, pkg-config
+, gtk3
+, gettext
+, glib
+, udev
+, itstool
+, libxml2
+, wrapGAppsHook
+, libnotify
+, libcanberra-gtk3
+, gobject-introspection
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, python3
+, gsettings-desktop-schemas
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-bluetooth";
+  version = "3.34.5";
+
+  # TODO: split out "lib"
+  outputs = [ "out" "dev" "devdoc" "man" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    gettext
+    itstool
+    pkg-config
+    libxml2
+    wrapGAppsHook
+    gobject-introspection
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+    python3
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    udev
+    libnotify
+    libcanberra-gtk3
+    gnome.adwaita-icon-theme
+    gsettings-desktop-schemas
+  ];
+
+  mesonFlags = [
+    "-Dicon_update=false"
+    "-Dgtk_doc=true"
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
+    description = "Application that let you manage Bluetooth in the GNOME destkop";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix
new file mode 100644
index 000000000000..7e19e9523ce8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, lib
+, meson
+, ninja
+, vala
+, gettext
+, itstool
+, fetchurl
+, pkg-config
+, libxml2
+, gtk3
+, glib
+, gtksourceview4
+, wrapGAppsHook
+, gobject-introspection
+, python3
+, gnome
+, mpfr
+, gmp
+, libsoup
+, libmpc
+, libhandy
+, gsettings-desktop-schemas
+, libgee
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-calculator";
+  version = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1xkazxbkpn1z5pfphhps7fc5q4yc8lp7f6b222n8bx5iyxhwbrkz";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+    gettext
+    itstool
+    wrapGAppsHook
+    python3
+    gobject-introspection # for finding vapi files
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    libxml2
+    gtksourceview4
+    mpfr
+    gmp
+    gnome.adwaita-icon-theme
+    libgee
+    gsettings-desktop-schemas
+    libsoup
+    libmpc
+    libhandy
+  ];
+
+  doCheck = true;
+
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
+
+  preCheck = ''
+    # Currency conversion test tries to store currency data in $HOME/.cache.
+    export HOME=$TMPDIR
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-calculator";
+      attrPath = "gnome.gnome-calculator";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://wiki.gnome.org/Apps/Calculator";
+    description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
index 73db99f3d379..dae367f1d5ba 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
@@ -6,7 +6,7 @@
 , gettext
 , itstool
 , desktop-file-utils
-, gnome3
+, gnome
 , glib
 , gtk3
 , libexif
@@ -51,9 +51,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-common/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-common/default.nix
index 53e3ed47ebe7..cb50396a4040 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-common/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-common/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, which, gnome3, autoconf, automake }:
+{ lib, stdenv, fetchurl, which, gnome, autoconf, automake }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-common";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-common"; attrPath = "gnome3.gnome-common"; };
+    updateScript = gnome.updateScript { packageName = "gnome-common"; attrPath = "gnome.gnome-common"; };
   };
 
   patches = [(fetchurl {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
index ef5e564beb95..62a43d20d580 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
@@ -17,8 +17,9 @@
 , gnome-online-accounts
 , wrapGAppsHook
 , folks
+, libgdata
 , libxml2
-, gnome3
+, gnome
 , vala
 , meson
 , ninja
@@ -28,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-contacts";
-  version = "3.38.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-contacts/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hsq0dwxjahcaxnm1m4r1lync9k2fkwzybfmkchrmn95vqcwwvf9";
+    url = "mirror://gnome/sources/gnome-contacts/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9";
   };
 
   propagatedUserEnvPkgs = [
@@ -58,12 +59,13 @@ stdenv.mkDerivation rec {
     evolution-data-server
     gsettings-desktop-schemas
     folks
+    libgdata # required by some dependency transitively
     gnome-desktop
     libhandy
     libxml2
     gnome-online-accounts
     cheese
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     libchamplain
     clutter-gtk
     geocode-glib
@@ -77,9 +79,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-contacts";
-      attrPath = "gnome3.gnome-contacts";
+      attrPath = "gnome.gnome-contacts";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index f8c458a3df1f..6170f53c716b 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -1,6 +1,7 @@
 { fetchurl
-, fetchFromGitLab
-, lib, stdenv
+, fetchpatch
+, lib
+, stdenv
 , substituteAll
 , accountsservice
 , adwaita-icon-theme
@@ -10,7 +11,7 @@
 , colord
 , colord-gtk
 , cups
-, docbook_xsl
+, docbook-xsl-nons
 , fontconfig
 , gdk-pixbuf
 , gettext
@@ -22,7 +23,7 @@
 , gnome-desktop
 , gnome-online-accounts
 , gnome-settings-daemon
-, gnome3
+, gnome
 , grilo
 , grilo-plugins
 , gsettings-desktop-schemas
@@ -69,20 +70,32 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "3.38.4";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-SdxjeNTTXBxu1ZIk9WNpFsK2+km7+4tW6xmoTW6QzRk=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-zMmlc2UXOFEJrlpZkGwlgkTdh5t1A61ZhM9BZVyzAvE=";
   };
 
-  # See https://mail.gnome.org/archives/distributor-list/2020-September/msg00001.html
-  prePatch = (import ../gvc-with-ucm-prePatch.nix {
-    inherit fetchFromGitLab;
-  });
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      gcm = gnome-color-manager;
+      gnome_desktop = gnome-desktop;
+      inherit glibc libgnomekbd tzdata;
+      inherit cups networkmanagerapplet;
+    })
+
+    # Fix startup assertion in power panel.
+    # https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/974
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-control-center/commit/9acaa10567c94048657c69538e5d7813f82c4224.patch";
+      sha256 = "59GeTPcG2UiVTL4VTS/TP0p0QkAQpm3VgvuAiw64wUU=";
+    })
+  ];
 
   nativeBuildInputs = [
-    docbook_xsl
+    docbook-xsl-nons
     gettext
     libxslt
     meson
@@ -142,16 +155,6 @@ stdenv.mkDerivation rec {
     upower
   ];
 
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      gcm = gnome-color-manager;
-      gnome_desktop = gnome-desktop;
-      inherit glibc libgnomekbd tzdata;
-      inherit cups networkmanagerapplet;
-    })
-  ];
-
   postPatch = ''
     chmod +x build-aux/meson/meson_post_install.py # patchShebangs requires executable file
     patchShebangs build-aux/meson/meson_post_install.py
@@ -172,9 +175,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/paths.patch
index 361972f2635a..a6787477b814 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/paths.patch
@@ -1,26 +1,26 @@
 diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
-index 49ca35220..adefb87b9 100644
+index 603178efc..c363a6a5c 100644
 --- a/panels/color/cc-color-panel.c
 +++ b/panels/color/cc-color-panel.c
-@@ -599,7 +599,7 @@ gcm_prefs_calibrate_cb (GtkWidget *widget, CcColorPanel *prefs)
+@@ -591,7 +591,7 @@ gcm_prefs_calibrate_cb (CcColorPanel *prefs)
  
    /* run with modal set */
    argv = g_ptr_array_new_with_free_func (g_free);
--  g_ptr_array_add (argv, g_build_filename (BINDIR, "gcm-calibrate", NULL));
+-  g_ptr_array_add (argv, g_strdup ("gcm-calibrate"));
 +  g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-calibrate", NULL));
    g_ptr_array_add (argv, g_strdup ("--device"));
    g_ptr_array_add (argv, g_strdup (cd_device_get_id (prefs->current_device)));
    g_ptr_array_add (argv, g_strdup ("--parent-window"));
-@@ -1038,7 +1038,7 @@ gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)
+@@ -1029,7 +1029,7 @@ gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)
  
    /* open up gcm-viewer as a info pane */
    argv = g_ptr_array_new_with_free_func (g_free);
--  g_ptr_array_add (argv, g_build_filename (BINDIR, "gcm-viewer", NULL));
+-  g_ptr_array_add (argv, g_strdup ("gcm-viewer"));
 +  g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-viewer", NULL));
    g_ptr_array_add (argv, g_strdup ("--profile"));
    g_ptr_array_add (argv, g_strdup (cd_profile_get_id (profile)));
    g_ptr_array_add (argv, g_strdup ("--parent-window"));
-@@ -1288,15 +1288,12 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
+@@ -1275,15 +1275,12 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
  static void
  gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *device)
  {
@@ -38,12 +38,12 @@ index 49ca35220..adefb87b9 100644
    else
      gtk_widget_set_sensitive (prefs->toolbutton_profile_view, FALSE);
 diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
-index 96b25140c..1ad704d4a 100644
+index a2376f8a4..98769e08f 100644
 --- a/panels/datetime/tz.h
 +++ b/panels/datetime/tz.h
 @@ -27,11 +27,7 @@
  
- #include <glib.h>
+ G_BEGIN_DECLS
  
 -#ifndef __sun
 -#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
@@ -55,25 +55,42 @@ index 96b25140c..1ad704d4a 100644
  typedef struct _TzDB TzDB;
  typedef struct _TzLocation TzLocation;
 diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
-index 4541986db..da7826bfe 100644
+index bd0e07762..0e71351f8 100644
 --- a/panels/info-overview/cc-info-overview-panel.c
 +++ b/panels/info-overview/cc-info-overview-panel.c
-@@ -169,7 +169,7 @@ load_gnome_version (char **version,
+@@ -172,7 +172,7 @@ load_gnome_version (char **version,
    gsize length;
    g_autoptr(VersionData) data = NULL;
-
+ 
 -  if (!g_file_get_contents (DATADIR "/gnome/gnome-version.xml",
 +  if (!g_file_get_contents ("@gnome_desktop@/share/gnome/gnome-version.xml",
                              &contents,
                              &length,
                              &error))
+diff --git a/panels/keyboard/cc-input-list-box.c b/panels/keyboard/cc-input-list-box.c
+index 6c2cb5614..8f57159cc 100644
+--- a/panels/keyboard/cc-input-list-box.c
++++ b/panels/keyboard/cc-input-list-box.c
+@@ -223,10 +223,10 @@ row_layout_cb (CcInputListBox *self,
+   layout_variant = cc_input_source_get_layout_variant (source);
+ 
+   if (layout_variant && layout_variant[0])
+-    commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"",
++    commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"",
+ 				   layout, layout_variant);
+   else
+-    commandline = g_strdup_printf ("gkbd-keyboard-display -l %s",
++    commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s",
+ 				   layout);
+ 
+   g_spawn_command_line_async (commandline, NULL);
 diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c
-index 9390a3308..d30b4a68e 100644
+index 505b8ee25..62e94009f 100644
 --- a/panels/network/connection-editor/net-connection-editor.c
 +++ b/panels/network/connection-editor/net-connection-editor.c
-@@ -278,9 +278,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
+@@ -267,9 +267,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
          g_autoptr(GError) error = NULL;
-
+ 
          if (self->is_new_connection) {
 -                cmdline = g_strdup_printf ("nm-connection-editor --type='%s' --create", type);
 +                cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --type='%s' --create", type);
@@ -84,19 +101,20 @@ index 9390a3308..d30b4a68e 100644
          }
  
 diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-bluetooth.c
+index 74dfb0e9a..5f53d1a20 100644
 --- a/panels/network/net-device-bluetooth.c
 +++ b/panels/network/net-device-bluetooth.c
 @@ -90,7 +90,7 @@ nm_device_bluetooth_refresh_ui (NetDeviceBluetooth *self)
          update_off_switch_from_device_state (self->device_off_switch, state, self);
-
+ 
          /* set up the Options button */
 -        path = g_find_program_in_path ("nm-connection-editor");
 +        path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
          gtk_widget_set_visible (GTK_WIDGET (self->options_button), state != NM_DEVICE_STATE_UNMANAGED && path != NULL);
  }
-
+ 
 @@ -141,7 +141,7 @@ options_button_clicked_cb (NetDeviceBluetooth *self)
-
+ 
          connection = net_device_get_find_connection (self->client, self->device);
          uuid = nm_connection_get_uuid (connection);
 -        cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
@@ -105,19 +123,20 @@ diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-b
          if (!g_spawn_command_line_async (cmdline, &error))
                  g_warning ("Failed to launch nm-connection-editor: %s", error->message);
 @@ -185,7 +185,7 @@ net_device_bluetooth_init (NetDeviceBluetooth *self)
-
+ 
          gtk_widget_init_template (GTK_WIDGET (self));
-
+ 
 -        path = g_find_program_in_path ("nm-connection-editor");
 +        path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
          gtk_widget_set_visible (GTK_WIDGET (self->options_button), path != NULL);
  }
-
+ 
 diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
+index 34eb86241..50d0a2bed 100644
 --- a/panels/network/net-device-mobile.c
 +++ b/panels/network/net-device-mobile.c
-@@ -484,7 +484,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
-
+@@ -508,7 +508,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
+ 
          connection = net_device_get_find_connection (self->client, self->device);
          uuid = nm_connection_get_uuid (connection);
 -        cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
@@ -125,21 +144,21 @@ diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobi
          g_debug ("Launching '%s'\n", cmdline);
          if (!g_spawn_command_line_async (cmdline, &error))
                  g_warning ("Failed to launch nm-connection-editor: %s", error->message);
-@@ -776,7 +776,7 @@ net_device_mobile_init (NetDeviceMobile *self)
-
+@@ -797,7 +797,7 @@ net_device_mobile_init (NetDeviceMobile *self)
+ 
          self->cancellable = g_cancellable_new ();
-
+ 
 -        path = g_find_program_in_path ("nm-connection-editor");
 +        path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
          gtk_widget_set_visible (GTK_WIDGET (self->options_button), path != NULL);
  }
-
+ 
 diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c
-index f53ba217e..d24bcaeb9 100644
+index a31a606e3..ed5133d29 100644
 --- a/panels/printers/pp-host.c
 +++ b/panels/printers/pp-host.c
 @@ -256,7 +256,7 @@ _pp_host_get_snmp_devices_thread (GTask        *task,
-   devices = g_new0 (PpDevicesList, 1);
+   devices = g_ptr_array_new_with_free_func (g_object_unref);
  
    argv = g_new0 (gchar *, 3);
 -  argv[0] = g_strdup ("/usr/lib/cups/backend/snmp");
@@ -147,25 +166,8 @@ index f53ba217e..d24bcaeb9 100644
    argv[1] = g_strdup (priv->hostname);
  
    /* Use SNMP to get printer's informations */
-diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
-index 35859526d..21486c917 100644
---- a/panels/region/cc-region-panel.c
-+++ b/panels/region/cc-region-panel.c
-@@ -755,10 +755,10 @@ row_layout_cb (CcRegionPanel *self,
-         layout_variant = cc_input_source_get_layout_variant (source);
- 
-         if (layout_variant && layout_variant[0])
--                commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"",
-+                commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"",
-                                                layout, layout_variant);
-         else
--                commandline = g_strdup_printf ("gkbd-keyboard-display -l %s",
-+                commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s",
-                                                layout);
- 
-         g_spawn_command_line_async (commandline, NULL);
 diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
-index 00239ce0f..617c98870 100644
+index 86f53d4fc..0b052856f 100644
 --- a/panels/user-accounts/run-passwd.c
 +++ b/panels/user-accounts/run-passwd.c
 @@ -150,7 +150,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
index 57eb4b3d44a9..57eb4b3d44a9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
new file mode 100644
index 000000000000..56bd074c2cb9
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
@@ -0,0 +1,96 @@
+{ lib
+, stdenv
+, fetchurl
+, substituteAll
+, pkg-config
+, libxslt
+, ninja
+, gnome
+, gtk3
+, glib
+, gettext
+, libxml2
+, xkeyboard_config
+, libxkbcommon
+, isocodes
+, meson
+, wayland
+, libseccomp
+, systemd
+, bubblewrap
+, gobject-introspection
+, gtk-doc
+, docbook-xsl-nons
+, gsettings-desktop-schemas
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-desktop";
+  version = "40.1";
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-desktop/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-igeJcwUhnFaZVJriBI9xVVFe+Xx85NZYXd2hXVhZ4c8=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./bubblewrap-paths.patch;
+      bubblewrap_bin = "${bubblewrap}/bin/bwrap";
+      inherit (builtins) storeDir;
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    gettext
+    libxslt
+    libxml2
+    gobject-introspection
+    gtk-doc
+    docbook-xsl-nons
+    glib
+  ];
+
+  buildInputs = [
+    bubblewrap
+    xkeyboard_config
+    libxkbcommon # for xkbregistry
+    isocodes
+    wayland
+    gtk3
+    glib
+    libseccomp
+    systemd
+  ];
+
+  propagatedBuildInputs = [
+    gsettings-desktop-schemas
+  ];
+
+  mesonFlags = [
+    "-Dgtk_doc=true"
+    "-Ddesktop_docs=false"
+  ];
+
+  separateDebugInfo = stdenv.isLinux;
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-desktop";
+      attrPath = "gnome.gnome-desktop";
+    };
+  };
+
+  meta = with lib; {
+    description = "Library with common API for various GNOME modules";
+    homepage = "https://gitlab.gnome.org/GNOME/gnome-desktop";
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
+    platforms = platforms.linux;
+    maintainers = teams.gnome.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
index bb602c8b3fa1..a399c4e85377 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
@@ -1,36 +1,28 @@
-{ lib, stdenv, fetchurl, fetchpatch, meson, ninja, pkg-config, desktop-file-utils, appstream-glib, libxslt
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, desktop-file-utils, appstream-glib, libxslt
 , libxml2, gettext, itstool, wrapGAppsHook, docbook_xsl, docbook_xml_dtd_43
-, gnome3, gtk3, glib, gsettings-desktop-schemas }:
+, gnome, gtk3, glib, gsettings-desktop-schemas }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-dictionary";
-  version = "3.26.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-dictionary/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300";
+    url = "mirror://gnome/sources/gnome-dictionary/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f";
   };
 
-  patches = [
-    # fix AppStream validation
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-dictionary/commit/1c94d612030ef87c6e26a01a490470b71c39e341.patch";
-      sha256 = "0cbswmhs9mks3gsc0iy4wnidsa8sfzzf4s1kgvb80qwffgxz5m8b";
-    })
-  ];
-
   doCheck = true;
 
   nativeBuildInputs = [
     meson ninja pkg-config wrapGAppsHook libxml2 gettext itstool
     desktop-file-utils appstream-glib libxslt docbook_xsl docbook_xml_dtd_43
   ];
-  buildInputs = [ gtk3 glib gsettings-desktop-schemas gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtk3 glib gsettings-desktop-schemas gnome.adwaita-icon-theme ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-dictionary";
-      attrPath = "gnome3.gnome-dictionary";
+      attrPath = "gnome.gnome-dictionary";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
new file mode 100644
index 000000000000..c11a1df883a0
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -0,0 +1,85 @@
+{ lib
+, stdenv
+, gettext
+, fetchurl
+, pkg-config
+, udisks2
+, libhandy
+, libsecret
+, libdvdread
+, meson
+, ninja
+, gtk3
+, glib
+, wrapGAppsHook
+, python3
+, libnotify
+, itstool
+, gnome
+, libxml2
+, gsettings-desktop-schemas
+, libcanberra-gtk3
+, libxslt
+, docbook-xsl-nons
+, libpwquality
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-disk-utility";
+  version = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-KkuZrBHKIzlLKMVYS56WKE6MWk2mXPBiB95U9Csf8UE=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    itstool
+    libxslt
+    docbook-xsl-nons
+    wrapGAppsHook
+    python3
+    libxml2
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    libhandy
+    libsecret
+    libpwquality
+    libnotify
+    libdvdread
+    libcanberra-gtk3
+    udisks2
+    gnome.adwaita-icon-theme
+    systemd
+    gnome.gnome-settings-daemon
+    gsettings-desktop-schemas
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-disk-utility";
+      attrPath = "gnome.gnome-disk-utility";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://wiki.gnome.org/Apps/Disks";
+    description = "A udisks graphical front-end";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
index 83563c7d212c..622a7de1bffa 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
@@ -1,28 +1,28 @@
 { lib, stdenv, meson, ninja, gettext, fetchurl
-, pkg-config, gtk3, glib, libxml2, gnome-desktop, adwaita-icon-theme
-, wrapGAppsHook, gnome3, harfbuzz }:
+, pkg-config, gtk3, glib, libxml2, gnome-desktop, adwaita-icon-theme, libhandy
+, wrapGAppsHook, gnome, harfbuzz }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-font-viewer";
-  version = "3.34.0";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "12xrsqwmvid7hksiw4zhj4jd1qwxn8w0czskbq4yqfprwn1havxa";
+    url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j";
   };
 
   doCheck = true;
 
   nativeBuildInputs = [ meson ninja pkg-config gettext wrapGAppsHook libxml2 ];
-  buildInputs = [ gtk3 glib gnome-desktop adwaita-icon-theme harfbuzz ];
+  buildInputs = [ gtk3 glib gnome-desktop adwaita-icon-theme harfbuzz libhandy ];
 
   # Do not run meson-postinstall.sh
   preConfigure = "sed -i '2,$ d'  meson-postinstall.sh";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-font-viewer";
-      attrPath = "gnome3.gnome-font-viewer";
+      attrPath = "gnome.gnome-font-viewer";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/0001-fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/0001-fix-paths.patch
index d4065c144996..232375952253 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/0001-fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/0001-fix-paths.patch
@@ -5,29 +5,10 @@ Date: Sun, 20 Sep 2020 14:46:59 -0400
 Subject: [PATCH] fix paths
 
 ---
- data/gnome-welcome-tour                               | 4 ++--
  gnome-initial-setup/pages/keyboard/cc-input-chooser.c | 6 +++---
  gnome-initial-setup/pages/timezone/tz.h               | 4 ++--
- 3 files changed, 7 insertions(+), 7 deletions(-)
+ 3 files changed, 5 insertions(+), 5 deletions(-)
 
-diff --git a/data/gnome-welcome-tour b/data/gnome-welcome-tour
-index 51c9b59..68ab0c4 100755
---- a/data/gnome-welcome-tour
-+++ b/data/gnome-welcome-tour
-@@ -3,11 +3,11 @@
- cfgdir=${XDG_CONFIG_DIR:-$HOME/.config}
- 
- # Don't do anything if gnome-tour isn't installed
--gnome_tour_path=$(which gnome-tour 2>/dev/null)
-+gnome_tour_path="@gnome_tour@"
- if test -z "${gnome_tour_path}"; then
-     rm -f $cfgdir/run-welcome-tour
-     exit
- fi
- 
--gnome-tour
-+@gnome_tour@
- rm -f $cfgdir/run-welcome-tour
 diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
 index 196abf6..613d0e5 100644
 --- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index 435da4e3720a..0a7b60b7bca8 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -6,7 +6,7 @@
 , ninja
 , pkg-config
 , wrapGAppsHook
-, gnome3
+, gnome
 , accountsservice
 , fontconfig
 , gdm
@@ -14,7 +14,6 @@
 , geocode-glib
 , glib
 , gnome-desktop
-, gnome-getting-started-docs
 , gnome-online-accounts
 , gtk3
 , libgweather
@@ -32,18 +31,24 @@
 , tzdata
 , libgnomekbd
 , gsettings-desktop-schemas
-, gnome-tour
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "3.38.4";
+  version = "40.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "001jdzsvc541qracn68r609pr5qwymrh85xrqmvzzc1dbg5w3mlg";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "O9cUg/YMDY9yQ5E7kmJe8Vx3iS/uP5MifqXw+XsMWqs=";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./0001-fix-paths.patch;
+      inherit tzdata libgnomekbd;
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     meson
@@ -61,7 +66,6 @@ stdenv.mkDerivation rec {
     geocode-glib
     glib
     gnome-desktop
-    gnome-getting-started-docs
     gnome-online-accounts
     gsettings-desktop-schemas
     gtk3
@@ -78,14 +82,6 @@ stdenv.mkDerivation rec {
     webkitgtk
   ];
 
-  patches = [
-    (substituteAll {
-      src = ./0001-fix-paths.patch;
-      inherit tzdata libgnomekbd;
-      gnome_tour = "${gnome-tour}/bin/gnome-tour";
-    })
-  ];
-
   mesonFlags = [
     "-Dcheese=disabled"
     "-Dibus=disabled"
@@ -94,9 +90,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/vendor.conf
index a06b37e100ed..a06b37e100ed 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/vendor.conf
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-keyring/default.nix
index 93453cc72e94..8c9815509e2d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-keyring/default.nix
@@ -1,51 +1,72 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, dbus, libgcrypt, pam, python2, glib, libxslt
-, gettext, gcr, libcap_ng, libselinux, p11-kit, openssh, wrapGAppsHook
-, docbook_xsl, docbook_xml_dtd_43, gnome3 }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, dbus
+, libgcrypt
+, pam
+, python2
+, glib
+, libxslt
+, gettext
+, gcr
+, libcap_ng
+, libselinux
+, p11-kit
+, openssh
+, wrapGAppsHook
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gnome
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-keyring";
-  version = "3.36.0";
+  version = "40.0";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-keyring/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11sgffrrpss5cmv3b717pqlbhgq17l1xd33fsvqgsw8simxbar52";
+    url = "mirror://gnome/sources/gnome-keyring/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3";
   };
 
-  patches = [
-    # version 3.36.0 is incompatible with libncap_ng >= 0.8.1. remove patch after update.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-keyring/-/commit/ebc7bc9efacc17049e54da8d96a4a29943621113.diff";
-      sha256 = "07bx7zmdswqsa3dj37m729g35n1prhylkw7ya8a7h64i10la12cs";
-    })
+  nativeBuildInputs = [
+    pkg-config
+    gettext
+    libxslt
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+    wrapGAppsHook
   ];
 
-  outputs = [ "out" "dev" ];
-
   buildInputs = [
-    glib libgcrypt pam openssh libcap_ng libselinux
-    gcr p11-kit
+    glib
+    libgcrypt
+    pam
+    openssh
+    libcap_ng
+    libselinux
+    gcr
+    p11-kit
   ];
 
-  nativeBuildInputs = [
-    pkg-config gettext libxslt docbook_xsl docbook_xml_dtd_43 wrapGAppsHook
-  ];
+  # In 3.20.1, tests do not support Python 3
+  checkInputs = [ dbus python2 ];
 
   configureFlags = [
     "--with-pkcs11-config=${placeholder "out"}/etc/pkcs11/" # installation directories
     "--with-pkcs11-modules=${placeholder "out"}/lib/pkcs11/"
   ];
 
-  postPatch = ''
-    patchShebangs build
-  '';
-
   # Tends to fail non-deterministically.
   # - https://github.com/NixOS/nixpkgs/issues/55293
   # - https://github.com/NixOS/nixpkgs/issues/51121
   doCheck = false;
 
-  # In 3.20.1, tests do not support Python 3
-  checkInputs = [ dbus python2 ];
+  postPatch = ''
+    patchShebangs build
+  '';
 
   checkPhase = ''
     export HOME=$(mktemp -d)
@@ -65,9 +86,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-keyring";
-      attrPath = "gnome3.gnome-keyring";
+      attrPath = "gnome.gnome-keyring";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-online-miners/default.nix
index 3cc85053bcef..95fdf35b8831 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-online-miners/default.nix
@@ -5,7 +5,7 @@
 , autoreconfHook
 , pkg-config
 , glib
-, gnome3
+, gnome
 , libxml2
 , libgdata
 , grilo
@@ -100,9 +100,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-online-miners";
-      attrPath = "gnome3.gnome-online-miners";
+      attrPath = "gnome.gnome-online-miners";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index 8411b2edecb4..fda0f6e2ffd6 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -12,17 +12,20 @@
 , libvncserver
 , libsecret
 , libnotify
+, libxkbcommon
 , gdk-pixbuf
 , freerdp
+, fuse3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "0.1.9";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-8iZtp4tBRT7NNRKuzwop3rcMvq16RG/I2sAlEIsJ0M8=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    hash = "sha256-mvpuUlVwo3IJP5cwM4JwkDiU87H5+KnfX1eDbqHSnek=";
   };
 
   nativeBuildInputs = [
@@ -36,11 +39,13 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cairo
     freerdp
+    fuse3
     gdk-pixbuf # For libnotify
     glib
     libnotify
     libsecret
     libvncserver
+    libxkbcommon
     pipewire
     systemd
   ];
@@ -54,6 +59,13 @@ stdenv.mkDerivation rec {
     "-Dsystemd_user_unit_dir=${placeholder "out"}/lib/systemd/user"
   ];
 
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/Mutter/RemoteDesktop";
     description = "GNOME Remote Desktop server";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
index 432f7d9e2ad5..5b02fda3e32f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, gettext, libxml2, libhandy, fetchurl, pkg-config, libcanberra-gtk3
 , gtk3, glib, meson, ninja, python3, wrapGAppsHook, appstream-glib, desktop-file-utils
-, gnome3, gsettings-desktop-schemas }:
+, gnome, gsettings-desktop-schemas }:
 
 let
   pname = "gnome-screenshot";
-  version = "3.38.0";
+  version = "40.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1h4zsaybjrlkfcrvriyybg4gfr7v9d1ndh2p516k94ad2gfx6mp5";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${name}.tar.xz";
+    sha256 = "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n";
   };
 
   doCheck = true;
@@ -22,14 +22,14 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config gettext appstream-glib libxml2 desktop-file-utils python3 wrapGAppsHook ];
   buildInputs = [
-    gtk3 glib libcanberra-gtk3 libhandy gnome3.adwaita-icon-theme
+    gtk3 glib libcanberra-gtk3 libhandy gnome.adwaita-icon-theme
     gsettings-desktop-schemas
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/ctl.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-session/ctl.nix
index 05d28de768a8..6a274e35bf56 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/ctl.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-session/ctl.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , meson
 , ninja
@@ -10,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-session-ctl";
-  version = "3.38.0";
+  version = "40.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
-    rev = "c20907fea27fa96568b8375a6756c40d0bfb9e40"; # main
-    hash = "sha256-y9/yOH6N8wf93+gPqnqzRzV/lPXYD0M6v7dsLFF8lWo=";
+    rev = version;
+    hash = "sha256-gvBmLx8Qoj1vPsOwaZsd9+pTDvU5D7uUts7ZT1pXwNo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-session/default.nix
index 1fa0a0b0fc64..c1ebc4362071 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-session/default.nix
@@ -1,17 +1,16 @@
-{ fetchurl, lib, stdenv, substituteAll, meson, ninja, pkg-config, gnome3, glib, gtk3, gsettings-desktop-schemas
+{ fetchurl, lib, stdenv, substituteAll, meson, ninja, pkg-config, gnome, glib, gtk3, gsettings-desktop-schemas
 , gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3
-, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash, gnome-session-ctl
-, fetchpatch }:
+, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash, gnome-session-ctl }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-session";
-  version = "3.38.0";
+  version = "40.1.1";
 
   outputs = ["out" "sessions"];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-session/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0rrxjk3vbqy3cdgnl7rw71dvcyrvhwq3m6s53dnkyjxsrnr0xk3v";
+    url = "mirror://gnome/sources/gnome-session/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "10nzyhmgkrzk6i70kj7690na0hmsv6qy5bmr10akxq9jxqlphy4w";
   };
 
   patches = [
@@ -22,12 +21,6 @@ stdenv.mkDerivation rec {
       grep = "${gnugrep}/bin/grep";
       bash = "${bash}/bin/bash";
     })
-    # Fixes 2 minute delay at poweroff.
-    # https://gitlab.gnome.org/GNOME/gnome-session/issues/74
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-session/-/commit/9de6e40f12e8878f524f8d429d85724c156a0517.diff";
-      sha256 = "19vrjdf7d6dfl7sqxvbc5h5lcgk1krgzg5rkssrdzd1h4ma6y8fz";
-    })
   ];
 
   mesonFlags = [ "-Dsystemd=true" "-Dsystemd_session=default" ];
@@ -39,8 +32,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    glib gtk3 libICE gnome-desktop json-glib xorg.xtrans gnome3.adwaita-icon-theme
-    gnome3.gnome-settings-daemon gsettings-desktop-schemas systemd epoxy
+    glib gtk3 libICE gnome-desktop json-glib xorg.xtrans gnome.adwaita-icon-theme
+    gnome.gnome-settings-daemon gsettings-desktop-schemas systemd epoxy
   ];
 
   postPatch = ''
@@ -63,8 +56,8 @@ stdenv.mkDerivation rec {
     wrapProgram "$out/libexec/gnome-session-binary" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
-      --suffix XDG_DATA_DIRS : "${gnome3.gnome-shell}/share"\
-      --suffix XDG_CONFIG_DIRS : "${gnome3.gnome-settings-daemon}/etc/xdg"
+      --suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share"\
+      --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
   '';
 
   # We move the GNOME sessions to another output since gnome-session is a dependency of
@@ -80,9 +73,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-session";
-      attrPath = "gnome3.gnome-session";
+      attrPath = "gnome.gnome-session";
     };
     providedSessions = [ "gnome" "gnome-xorg" ];
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch
index 320b3024deee..320b3024deee 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
index e5923e6b56ab..4a1b7f4c20c7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
@@ -5,7 +5,7 @@
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , perl
 , gettext
 , gtk3
@@ -14,7 +14,7 @@
 , libgnomekbd
 , lcms2
 , libpulseaudio
-, alsaLib
+, alsa-lib
 , libcanberra-gtk3
 , upower
 , colord
@@ -42,11 +42,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-settings-daemon";
-  version = "3.38.1";
+  version = "40.0.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0r010wzw3dj87mapzvq15zv93i86wg0x0rpii3x2wapq3bcj30g2";
+    url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "08bv32hvsmd8izw0llvldg0c2d71srch4hi8j94jwgm5d4dsrprp";
   };
 
   patches = [
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
     gnome-desktop
     lcms2
     libpulseaudio
-    alsaLib
+    alsa-lib
     libcanberra-gtk3
     upower
     colord
@@ -119,9 +119,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/fix-paths.patch
index 2229302cab7c..2229302cab7c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/global-backlight-helper.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/global-backlight-helper.patch
index 8f3951af2da8..8f3951af2da8 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-settings-daemon/global-backlight-helper.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/global-backlight-helper.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 8b882df3b007..6e8168a306af 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -1,20 +1,23 @@
-{ lib, stdenv, fetchurl, meson, ninja, gettext, pkg-config, spidermonkey_68, glib
-, gnome3, gnome-menus, substituteAll }:
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, gettext
+, pkg-config
+, glib
+, gnome
+, gnome-menus
+, substituteAll
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "3.38.2";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hzn975v49rv3nsqp8m0mzv8gcm7nyvn54gj3zsml8ahlxwl592p";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
+    url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "T7/OCtQ1e+5zrn3Bjqoe9MqnOF5PlPavuN/HJR/RqL8=";
   };
 
   patches = [
@@ -24,14 +27,17 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  doCheck = true;
-  # 60 is required for tests
-  # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.34.0/meson.build#L23
-  checkInputs = [ spidermonkey_68 ];
-
-  nativeBuildInputs = [ meson ninja pkg-config gettext glib ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    glib
+  ];
 
-  mesonFlags = [ "-Dextension_set=all" ];
+  mesonFlags = [
+    "-Dextension_set=all"
+  ];
 
   preFixup = ''
     # The meson build doesn't compile the schemas.
@@ -55,11 +61,18 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/GnomeShell/Extensions";
     description = "Modify and extend GNOME Shell functionality and behavior";
     maintainers = teams.gnome.members;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gmenu.patch
index 555664e8ae25..555664e8ae25 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gmenu.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 97a72e379a58..41d2fac5e612 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -5,7 +5,7 @@
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , json-glib
 , gettext
 , libsecret
@@ -22,8 +22,7 @@
 , librsvg
 , geoclue2
 , perl
-, docbook_xml_dtd_42
-, docbook_xml_dtd_43
+, docbook_xml_dtd_45
 , desktop-file-utils
 , libpulseaudio
 , libical
@@ -46,6 +45,7 @@
 , mutter
 , evolution-data-server
 , gtk3
+, gtk4
 , sassc
 , systemd
 , pipewire
@@ -66,13 +66,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "3.38.3";
+  version = "40.1";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-U0W0GMsSqXKVXOXM6u1mYkgAJzNrXFHa6lcwV1tiHO0=";
+    url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-9j4r7Zm9iVjPMT2F9EoBjVn4UqBbqfKap8t0S+xvprc=";
   };
 
   patches = [
@@ -97,6 +97,12 @@ stdenv.mkDerivation rec {
       revert = true;
       sha256 = "14h7ahlxgly0n3sskzq9dhxzbyb04fn80pv74vz1526396676dzl";
     })
+
+    # Work around failing fingerprint auth
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/9a647c460b651aaec0b8a21f046cc289c1999416/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
+      sha256 = "pFvZli3TilUt6YwdZztpB8Xq7O60XfuWUuPMMVSpqLw=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -105,9 +111,7 @@ stdenv.mkDerivation rec {
     pkg-config
     gettext
     docbook-xsl-nons
-    # Switch to 4.5 in the 40.
-    docbook_xml_dtd_42
-    docbook_xml_dtd_43
+    docbook_xml_dtd_45
     gtk-doc
     perl
     wrapGAppsHook
@@ -137,6 +141,7 @@ stdenv.mkDerivation rec {
     evolution-data-server
     libical
     gtk3
+    gtk4
     gdm
     geoclue2
     adwaita-icon-theme
@@ -189,16 +194,16 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     # The services need typelibs.
-    for svc in org.gnome.Shell.Extensions org.gnome.Shell.Notifications org.gnome.Shell.Screencast; do
+    for svc in org.gnome.ScreenSaver org.gnome.Shell.Extensions org.gnome.Shell.Notifications org.gnome.Shell.Screencast; do
       wrapGApp $out/share/gnome-shell/$svc
     done
   '';
 
   passthru = {
     mozillaPlugin = "/lib/mozilla/plugins";
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-shell";
-      attrPath = "gnome3.gnome-shell";
+      attrPath = "gnome.gnome-shell";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
index e17a608a2d85..e17a608a2d85 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch
index 2d7bdf303151..6d888725b5d2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch
@@ -3,7 +3,7 @@
 @@ -13,7 +13,7 @@ shew_sources = [
  libshew = library(full_name,
    sources: shew_sources,
-   dependencies: [gtk_dep],
+   dependencies: [gtk_dep, x11_dep],
 -  install_dir: pkglibdir,
 +  install_dir: get_option('prefix') / pkglibdir,
    install: true,
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch
index bc494caea9dd..bc494caea9dd 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
index ff80efaa4de4..226b251ec46a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -6,13 +6,14 @@
 , meson
 , ninja
 , gettext
-, gnome3
+, gnome
 , wrapGAppsHook
 , packagekit
 , ostree
 , glib
-, appstream-glib
+, appstream
 , libsoup
+, libhandy
 , polkit
 , isocodes
 , gspell
@@ -42,11 +43,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "3.38.0";
+  version = "40.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-software/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0rjm486vgn6gi9mv1rqdcvr9cilmw6in4r6djqkxbxqll89cp2l7";
+    url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "y9HdKguvw/U93kIAPEpKA3RsuNZNxdJ+uNvmc27nJ5Y=";
   };
 
   patches = [
@@ -76,8 +77,9 @@ stdenv.mkDerivation rec {
     gtk3
     glib
     packagekit
-    appstream-glib
+    appstream
     libsoup
+    libhandy
     gsettings-desktop-schemas
     gnome-desktop
     gspell
@@ -94,7 +96,6 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dubuntu_reviews=false"
     "-Dgudev=false"
     # FIXME: package malcontent parental controls
     "-Dmalcontent=false"
@@ -103,9 +104,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.gnome-software";
+      attrPath = "gnome.gnome-software";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/fix-paths.patch
index 6f443a8a43ed..6f443a8a43ed 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
index db978f953b79..77579be6272d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
@@ -1,26 +1,63 @@
-{ lib, stdenv, gettext, fetchurl, pkg-config, gtkmm3, libxml2
-, bash, gtk3, glib, wrapGAppsHook, meson, ninja, python3
-, gsettings-desktop-schemas, itstool, gnome3, librsvg, gdk-pixbuf, libgtop, systemd }:
+{ lib
+, stdenv
+, gettext
+, fetchurl
+, pkg-config
+, gtkmm3
+, libxml2
+, bash
+, gtk3
+, libhandy
+, glib
+, wrapGAppsHook
+, meson
+, ninja
+, python3
+, gsettings-desktop-schemas
+, itstool
+, gnome
+, librsvg
+, gdk-pixbuf
+, libgtop
+, systemd
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-system-monitor";
-  version = "3.38.0";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1x5gd30g87im7fnqj63njlac69zywfd1r0vgsxkjag2hsns7mgvk";
+    url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "06hxd4igxas2kyind5jwfq5qbfkknykpdfy2sy3anylhcx1hzczx";
   };
 
-  doCheck = true;
-
   nativeBuildInputs = [
-    pkg-config gettext itstool wrapGAppsHook meson ninja python3
+    pkg-config
+    gettext
+    itstool
+    wrapGAppsHook
+    meson
+    ninja
+    python3
   ];
+
   buildInputs = [
-    bash gtk3 glib libxml2 gtkmm3 libgtop gdk-pixbuf gnome3.adwaita-icon-theme librsvg
-    gsettings-desktop-schemas systemd
+    bash
+    gtk3
+    libhandy
+    glib
+    libxml2
+    gtkmm3
+    libgtop
+    gdk-pixbuf
+    gnome.adwaita-icon-theme
+    librsvg
+    gsettings-desktop-schemas
+    systemd
   ];
 
+  doCheck = true;
+
   postPatch = ''
     chmod +x meson_post_install.py # patchShebangs requires executable file
     patchShebangs meson_post_install.py
@@ -28,9 +65,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-system-monitor";
-      attrPath = "gnome3.gnome-system-monitor";
+      attrPath = "gnome.gnome-system-monitor";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 52aee2a004a7..ab3e3aecc035 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, gnome3, dconf, nautilus
+{ lib, stdenv, fetchurl, pkg-config, libxml2, gnome, dconf, nautilus
 , gtk3, gsettings-desktop-schemas, vte, gettext, which, libuuid, vala
 , desktop-file-utils, itstool, wrapGAppsHook, pcre2
 , libxslt, docbook-xsl-nons }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-terminal";
-  version = "3.38.3";
+  version = "3.40.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "EaWw1jXxX9znUINRpRD79OkqpTMVKlD/DHhF4xAuR2Q=";
+    sha256 = "1r6qd6w18gk83w32y6bvn4hg2hd7qvngak4ymwpgndyp41rwqw07";
   };
 
   buildInputs = [
@@ -26,16 +26,16 @@ stdenv.mkDerivation rec {
   # Silly ./configure, it looks for dbus file from gnome-shell in the
   # installation tree of the package it is configuring.
   postPatch = ''
-    substituteInPlace configure --replace '$(eval echo $(eval echo $(eval echo ''${dbusinterfacedir})))/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
-    substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
+    substituteInPlace configure --replace '$(eval echo $(eval echo $(eval echo ''${dbusinterfacedir})))/org.gnome.ShellSearchProvider2.xml' "${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
+    substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
   '';
 
   configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-terminal";
-      attrPath = "gnome3.gnome-terminal";
+      attrPath = "gnome.gnome-terminal";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-themes-extra/default.nix
index 7b42d724593a..53f775833a8f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-themes-extra/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkg-config, pango, atk, gtk2
+{ lib, stdenv, fetchurl, intltool, gtk3, gnome, librsvg, pkg-config, pango, atk, gtk2
 , gdk-pixbuf, hicolor-icon-theme }:
 
 let
@@ -13,14 +13,14 @@ in stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
 
   nativeBuildInputs = [ pkg-config intltool ];
   buildInputs = [ gtk3 librsvg pango atk gtk2 gdk-pixbuf ];
-  propagatedBuildInputs = [ gnome3.adwaita-icon-theme hicolor-icon-theme ];
+  propagatedBuildInputs = [ gnome.adwaita-icon-theme hicolor-icon-theme ];
 
   dontDropIconThemeCache = true;
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix
index 61f8761ce817..7440749e0a9b 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-tour/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix
@@ -13,7 +13,7 @@
 , appstream-glib
 , wrapGAppsHook
 , python3
-, gnome3
+, gnome
 , libhandy
 , librsvg
 , rustc
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-tour";
-  version = "3.38.0";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-hV/C/Lyz6e9zhe3FRw4Sox5gMqThDP57wVCTgcekjng=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    hash = "sha256-cGMiOGmgdHJ0FL7H23ONhQYhbuhMz8O8p9rFLkmMG/k=";
   };
 
   cargoVendorDir = "vendor";
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix
index 54fcf531c658..211326cfcdbd 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix
@@ -15,7 +15,7 @@
 , itstool
 , libnotify
 , mod_dnssd
-, gnome3
+, gnome
 , libcanberra-gtk3
 , python3
 }:
@@ -80,9 +80,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
index aac5a43e4339..336a4d260c4e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -11,7 +11,7 @@
 , desktop-file-utils
 , gtk-doc
 , wrapGAppsHook
-, gnome3
+, gnome
 , itstool
 , libxml2
 , yelp-tools
@@ -93,7 +93,7 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/nixpkgs/pkgs/desktops/gnome/core/libgnome-keyring/default.nix
index 65d2bbc2157a..aa3c7ed39811 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/libgnome-keyring/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, glib, dbus, libgcrypt, pkg-config, intltool, gobject-introspection, gnome3 }:
+{ lib, stdenv, fetchurl, glib, dbus, libgcrypt, pkg-config, intltool, gobject-introspection, gnome }:
 
 let
   pname = "libgnome-keyring";
@@ -17,13 +17,6 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ glib gobject-introspection dbus libgcrypt ];
   nativeBuildInputs = [ pkg-config intltool ];
 
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
   meta = {
     description = "Framework for managing passwords and other secrets";
     homepage = "https://wiki.gnome.org/Projects/GnomeKeyring";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patch
index 3691c034d1ee..3691c034d1ee 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0002-drop-inheritable.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0002-drop-inheritable.patch
index 28f89ac7c0c6..28f89ac7c0c6 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0002-drop-inheritable.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0002-drop-inheritable.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0003-Fix-glitches-in-gala.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0003-Fix-glitches-in-gala.patch
index 9f78a324d9da..9f78a324d9da 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0003-Fix-glitches-in-gala.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0003-Fix-glitches-in-gala.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patch
index cd98d3950415..cd98d3950415 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch
index 138970ddda0a..138970ddda0a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patch
index 6d88f0f5e766..6d88f0f5e766 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0007-fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0007-fix-paths.patch
index 8376fc649b5f..8376fc649b5f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/0007-fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/0007-fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/default.nix b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/default.nix
index 1f4ca5d3213d..42f07d45e62f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/3.34/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/3.34/default.nix
@@ -3,7 +3,7 @@
 , substituteAll
 , lib, stdenv
 , pkg-config
-, gnome3
+, gnome
 , pantheon
 , gettext
 , gobject-introspection
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
index 03c20e1ef6a7..4ad082dabfcd 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
@@ -1,10 +1,10 @@
 { fetchurl
-, fetchpatch
 , substituteAll
 , runCommand
-, lib, stdenv
+, lib
+, stdenv
 , pkg-config
-, gnome3
+, gnome
 , gettext
 , gobject-introspection
 , cairo
@@ -45,19 +45,19 @@
 
 let self = stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.38.3";
+  version = "40.1";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/mutter/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-sjIec9Hj/i6Q5jAfQrugf02UvGR1aivxPXWunW+qIB8=";
+    url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-pl8ycpYRM4KWh9QQcmfk4ZKQ5thueAf62H6rCDHB4MA=";
   };
 
   patches = [
     # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
     # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
-    ./drop-inheritable.patch
+    # ./drop-inheritable.patch
 
     (substituteAll {
       src = ./fix-paths.patch;
@@ -146,16 +146,16 @@ let self = stdenv.mkDerivation rec {
       '';
     };
 
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
   meta = with lib; {
     description = "A window manager for GNOME";
     homepage = "https://gitlab.gnome.org/GNOME/mutter";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/drop-inheritable.patch
index 7374e1b86935..7374e1b86935 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/drop-inheritable.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/mutter/fix-paths.patch
index 6ac0a431f61f..6ac0a431f61f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix b/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix
index 5ca1efe1ca32..f3ccdbce98cb 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -9,7 +9,9 @@
 , python3
 , wrapGAppsHook
 , gtk3
-, gnome3
+, libhandy
+, libportal
+, gnome
 , gnome-autoar
 , glib-networking
 , shared-mime-info
@@ -32,11 +34,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "3.38.2";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19ln84d6s05h6cvx3c500bg5pvkz4k6p6ykmr2201rblq9afp76h";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0cwxr7bfa19dvzra81s9wfshzv0zv7ycpfffn4amigd0fh0vkkwf";
   };
 
   patches = [
@@ -67,10 +69,12 @@ stdenv.mkDerivation rec {
     gexiv2
     glib-networking
     gnome-desktop
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gsettings-desktop-schemas
     gst_all_1.gst-plugins-base
     gtk3
+    libhandy
+    libportal
     libexif
     libnotify
     libseccomp
@@ -98,9 +102,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch b/nixpkgs/pkgs/desktops/gnome/core/nautilus/extension_dir.patch
index e1313999675d..e1313999675d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/nautilus/extension_dir.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/nautilus/fix-paths.patch
index dc9874359b23..dc9874359b23 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/nautilus/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch b/nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
index 6fe651b9cbb4..6fe651b9cbb4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix b/nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix
index 75b2bd292704..f43df23f44a1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix
@@ -23,7 +23,7 @@
 , systemd
 , tracker
 , shared-mime-info
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -93,9 +93,10 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
index 64009cd75eb3..91ac4f14b22a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -14,21 +14,22 @@
 , gtk3
 , gusb
 , packagekit
+, libhandy
 , libwebp
 , libxml2
 , sane-backends
 , vala
-, gnome3
+, gnome
 , gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "3.38.2";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-qI2AcpaCiIZJzfzfqGkrCjSs3ladwICIjyea/DqcTQs=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-E4EbsqhhnmOkP8Lva3E1ny1cQITG1cizqtYXJLIHUa8=";
   };
 
   nativeBuildInputs = [
@@ -48,9 +49,10 @@ stdenv.mkDerivation rec {
     gdk-pixbuf
     colord
     glib
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gusb
     gtk3
+    libhandy
     libwebp
     packagekit
     sane-backends
@@ -64,7 +66,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "simple-scan";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/sushi/default.nix b/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
index f5e85a1f16cd..c42b6964bf65 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/sushi/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
@@ -5,9 +5,7 @@
 , gettext
 , gobject-introspection
 , glib
-, clutter-gtk
-, clutter-gst
-, gnome3
+, gnome
 , gtksourceview4
 , gjs
 , webkitgtk
@@ -40,14 +38,13 @@ stdenv.mkDerivation rec {
     gobject-introspection
     wrapGAppsHook
   ];
+
   buildInputs = [
     glib
     gtk3
-    gnome3.evince
+    gnome.evince
     icu
     harfbuzz
-    clutter-gtk
-    clutter-gst
     gjs
     gtksourceview4
     gdk-pixbuf
@@ -70,9 +67,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "sushi";
-      attrPath = "gnome3.sushi";
+      attrPath = "gnome.sushi";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix b/nixpkgs/pkgs/desktops/gnome/core/totem/default.nix
index a98265ff508b..45b99680a120 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/totem/default.nix
@@ -17,7 +17,7 @@
 , itstool
 , libxml2
 , vala
-, gnome3
+, gnome
 , grilo
 , grilo-plugins
 , libpeas
@@ -25,7 +25,7 @@
 , gnome-desktop
 , gsettings-desktop-schemas
 , gdk-pixbuf
-, xvfb_run
+, xvfb-run
 }:
 
 stdenv.mkDerivation rec {
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   ];
 
   checkInputs = [
-    xvfb_run
+    xvfb-run
   ];
 
   mesonFlags = [
@@ -107,9 +107,9 @@ stdenv.mkDerivation rec {
   wrapPrefixVariables = [ "PYTHONPATH" ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "totem";
-      attrPath = "gnome3.totem";
+      attrPath = "gnome.totem";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
index 22ce6c72011d..7c9b4eb839c0 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
@@ -5,16 +5,16 @@
 , itstool
 , libxml2
 , libxslt
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
   pname = "yelp-xsl";
-  version = "3.38.3";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/yelp-xsl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-GTtqvUaXt7Qh6Yw21NMTXaCw/bUapT5gLtNo3YTR/QM=";
+    url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-Nh7NTTP8zbO7CKaH9g5cPpCdLp47Ai2ETgSYINDPYrA=";
   };
 
   nativeBuildInputs = [
@@ -28,9 +28,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix b/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
index 754a77486682..f4df80f5611f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
@@ -1,27 +1,27 @@
 { lib, stdenv, gettext, fetchurl, webkitgtk, pkg-config, gtk3, glib
-, gnome3, sqlite
+, gnome, sqlite
 , itstool, libxml2, libxslt, gst_all_1
 , wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "yelp";
-  version = "3.38.3";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/yelp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-r9RqTQrrRrtCXFIAcdgY+LKzLmnnVqv9mXlodpphVJ0=";
+    url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-B3dfoGzSg2Xs2Cm7FqhaaCiXqyHYzONFlrvvXNRVquA=";
   };
 
   nativeBuildInputs = [ pkg-config gettext itstool wrapGAppsHook ];
   buildInputs = [
     gtk3 glib webkitgtk sqlite
-    libxml2 libxslt gnome3.yelp-xsl
-    gnome3.adwaita-icon-theme
+    libxml2 libxslt gnome.yelp-xsl
+    gnome.adwaita-icon-theme
     gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "yelp";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/zenity/default.nix b/nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix
index d02cb581cb8c..51ad81a77a46 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/zenity/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , pkg-config
 , libxml2
-, gnome3
+, gnome
 , gtk3
 , yelp-tools
 , gettext
@@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "zenity";
-      attrPath = "gnome3.zenity";
+      attrPath = "gnome.zenity";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/default.nix b/nixpkgs/pkgs/desktops/gnome/default.nix
index c4e203913bea..b529a65026d7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/default.nix
@@ -20,7 +20,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   libsoup = pkgs.libsoup.override { gnomeSupport = true; };
   libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
-  gnome3 = self // { recurseForDerivations = false; };
 
 # ISO installer
 # installerIso = callPackage ./installer.nix {};
@@ -176,8 +175,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gnome-documents = callPackage ./apps/gnome-documents { };
 
-  gnome-getting-started-docs = callPackage ./apps/gnome-getting-started-docs { };
-
   gnome-logs = callPackage ./apps/gnome-logs { };
 
   gnome-maps = callPackage ./apps/gnome-maps { };
@@ -332,9 +329,9 @@ lib.makeScope pkgs.newScope (self: with self; {
   pidgin-im-gnome-shell-extension = pkgs.gnomeExtensions.pidgin-im-integration; # added 2019-08-01
 
   # added 2019-08-25
-  corePackages = throw "gnome3.corePackages is removed since 2019-08-25: please use `services.gnome3.core-shell.enable`";
-  optionalPackages = throw "gnome3.optionalPackages is removed since 2019-08-25: please use `services.gnome3.core-utilities.enable`";
-  gamesPackages = throw "gnome3.gamesPackages is removed since 2019-08-25: please use `services.gnome3.games.enable`";
+  corePackages = throw "gnome.corePackages is removed since 2019-08-25: please use `services.gnome.core-shell.enable`";
+  optionalPackages = throw "gnome.optionalPackages is removed since 2019-08-25: please use `services.gnome.core-utilities.enable`";
+  gamesPackages = throw "gnome.gamesPackages is removed since 2019-08-25: please use `services.gnome.games.enable`";
 
   nautilus-sendto = throw "nautilus-sendto is removed since 2019-09-17: abandoned upstream";
 
@@ -361,4 +358,9 @@ lib.makeScope pkgs.newScope (self: with self; {
   maintainers = lib.teams.gnome.members;
 
   mutter328 = throw "Removed as Pantheon is upgraded to mutter334.";
+
+  gnome-getting-started-docs = throw "Removed in favour of gnome-tour.";
+
+  # Added 2021-05-07
+  gnome3 = self // { recurseForDerivations = false; };
 })
diff --git a/nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix b/nixpkgs/pkgs/desktops/gnome/devtools/anjuta/default.nix
index 4802287cb122..5b841557b6b2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/devtools/anjuta/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, gjs, flex, bison, libxml2, intltool,
+{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, gjs, flex, bison, libxml2, intltool,
   gdl, libgda, gtksourceview, gsettings-desktop-schemas,
   itstool, python3, ncurses, makeWrapper }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript { packageName = "anjuta"; attrPath = "gnome3.anjuta"; };
+    updateScript = gnome.updateScript { packageName = "anjuta"; attrPath = "gnome.anjuta"; };
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/devtools/devhelp/default.nix b/nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix
index 173e4a9e5b8c..46491cffc5f6 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix
@@ -3,7 +3,7 @@
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , gtk3
 , wrapGAppsHook
 , glib
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "devhelp";
-  version = "3.38.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/devhelp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13sa25mmlc49kn520hdfbskma65y7smvwmyhfggj0n9s3fazba2d";
+    url = "mirror://gnome/sources/devhelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0zr64qp5c6jcc3x5hmfp7jhzpi96qwr6xplyfkmz4kjzvr9xidjd";
   };
 
   nativeBuildInputs = [
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     gtk3
     webkitgtk
     amtk
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gsettings-desktop-schemas
   ];
 
@@ -64,9 +64,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "devhelp";
-      attrPath = "gnome3.devhelp";
+      attrPath = "gnome.devhelp";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix b/nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix
index bdbe73d2f88c..501aaa91c978 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }:
+{ lib, stdenv, fetchurl, gnome, intltool, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-devel-docs";
-  version = "3.38.2";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-devel-docs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1h6481hbz1c5p69r6h96hbgf560lhp1jibszscgw0s2yikdh6q8n";
+    url = "mirror://gnome/sources/gnome-devel-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0zqp01ks8m3s6jn5xqd05rw4fwbvxy5qvcfg9g50b2ar2j7v1ar8";
   };
 
   passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-devel-docs"; attrPath = "gnome3.gnome-devel-docs"; };
+    updateScript = gnome.updateScript { packageName = "gnome-devel-docs"; attrPath = "gnome.gnome-devel-docs"; };
   };
 
   buildInputs = [ intltool itstool libxml2 ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/EasyScreenCast/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
index fa1d89173fdd..57d78bf756ab 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/EasyScreenCast/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, glib, gnome3, gettext }:
+{ lib, stdenv, fetchFromGitHub, substituteAll, glib, gnome, gettext }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-EasyScreenCast";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   patches = [
     (substituteAll {
       src = ./fix-gi-path.patch;
-      gnomeShell = gnome3.gnome-shell;
+      gnomeShell = gnome.gnome-shell;
     })
   ];
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/EasyScreenCast/fix-gi-path.patch b/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
index 2d32021b6c66..2d32021b6c66 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/EasyScreenCast/fix-gi-path.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/README.md b/nixpkgs/pkgs/desktops/gnome/extensions/README.md
new file mode 100644
index 000000000000..14a1d08ad04d
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/README.md
@@ -0,0 +1,26 @@
+# GNOME Shell extensions
+
+All extensions are packaged automatically. They can be found in the `pkgs.gnomeXYExtensions` for XY being a GNOME version. The package names are the extension’s UUID, which can be a bit unwieldy to use. `pkgs.gnomeExtensions` is a set of manually curated extensions that match the current `gnome.gnome-shell` versions. Their name is human-friendly, compared to the other extensions sets. Some of its extensions are manually packaged.
+
+## Automatically packaged extensions
+
+The actual packages are created by `buildGnomeExtensions.nix`, provided the correct arguments are fed into it. The important extension data is stored in `extensions.json`, one line/item per extension. That file is generated by running `update-extensions.py`. Furthermore, the automatic generated names are dumped in `collisions.json` for manual inspection. `extensionRenames.nix` contains provides new names for all extensions that collide.
+
+### Extensions updates
+
+For everyday updates,
+
+1. Run `update-extensions.py`.
+2. Update `extensionRenames.nix` according to the comment at the top.
+
+For GNOME updates,
+
+1. Add a new `gnomeXYExtensions` set
+2. Remove old ones for GNOME versions we don’t want to support any more
+3. Update `supported_versions` in `./update-extensions.py` and re-run it
+4. Change `gnomeExtensions` to the new version
+5. Update `./extensionsRenames.nix` accordingly
+
+## Manually packaged extensions
+
+Manually packaged extensions overwrite some of the automatically packaged ones in `pkgs.gnomeExtensions`. They are listed in `manuallyPackaged.nix`, every extension has its own sub-folder.
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/appindicator/default.nix
index aaf8c92c672d..65576d292a8d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/appindicator/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-appindicator";
-  version = "36";
+  version = "37";
 
   src = fetchFromGitHub {
     owner = "Ubuntu";
     repo = "gnome-shell-extension-appindicator";
     rev = "v${version}";
-    sha256 = "1nx1lgrrp3w5z5hymb91frjdvdkk7x677my5v4jjd330ihqa02dq";
+    sha256 = "1yss91n94laakzhym409iyjs5gwhln2pkq0zrdrsxc3z70zlslxl";
   };
 
   # This package has a Makefile, but it's used for building a zip for
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "AppIndicator/KStatusNotifierItem support for GNOME Shell";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jonafato ];
-    platforms = gnome3.gnome-shell.meta.platforms;
+    platforms = gnome.gnome-shell.meta.platforms;
     homepage = "https://github.com/Ubuntu/gnome-shell-extension-appindicator";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
index 851a816c61c7..c3ed99b788b8 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitLab, glib, gettext, substituteAll, gnome-menus }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-arcmenu";
-  version = "5";
+  pname = "gnome-shell-extension-arcmenu";
+  version = "10";
 
   src = fetchFromGitLab {
     owner = "arcmenu";
     repo = "ArcMenu";
     rev = "v${version}";
-    sha256 = "1w4avvnp08l7lkf76vc7wvfn1cd81l4r4dhz8qnai49rvrjgqcg3";
+    sha256 = "04kn3gnjz1wakp0pyiwm0alf0pwsralhis36miif9i6l5iv6a394";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/fix_gmenu.patch b/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/fix_gmenu.patch
index 5d8584f52a6a..5d8584f52a6a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/arcmenu/fix_gmenu.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/fix_gmenu.patch
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix b/nixpkgs/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
new file mode 100644
index 000000000000..3be7f5c8789a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
@@ -0,0 +1,57 @@
+{ pkgs, lib, stdenv, fetchzip }:
+
+let
+
+  buildGnomeExtension = {
+    # Every gnome extension has a UUID. It's the name of the extension folder once unpacked
+    # and can always be found in the metadata.json of every extension.
+    uuid,
+    name,
+    pname,
+    description,
+    # extensions.gnome.org extension URL
+    link,
+    # Extension version numbers are integers
+    version,
+    sha256,
+    # Hex-encoded string of JSON bytes
+    metadata,
+  }:
+
+  stdenv.mkDerivation {
+    pname = "gnome-shell-extension-${pname}";
+    version = builtins.toString version;
+    src = fetchzip {
+      url = "https://extensions.gnome.org/extension-data/${
+          builtins.replaceStrings [ "@" ] [ "" ] uuid
+        }.v${builtins.toString version}.shell-extension.zip";
+      inherit sha256;
+      stripRoot = false;
+      # The download URL may change content over time. This is because the
+      # metadata.json is automatically generated, and parts of it can be changed
+      # without making a new release. We simply substitute the possibly changed fields
+      # with their content from when we last updated, and thus get a deterministic output
+      # hash.
+      extraPostFetch = ''
+        echo "${metadata}" | base64 --decode > $out/metadata.json
+      '';
+    };
+    buildCommand = ''
+      mkdir -p $out/share/gnome-shell/extensions/
+      cp -r -T $src $out/share/gnome-shell/extensions/${uuid}
+    '';
+    meta = {
+      description = builtins.head (lib.splitString "\n" description);
+      longDescription = description;
+      homepage = link;
+      license = lib.licenses.gpl2Plus; # https://wiki.gnome.org/Projects/GnomeShell/Extensions/Review#Licensing
+      maintainers = with lib.maintainers; [ piegames ];
+    };
+    passthru = {
+      extensionPortalSlug = pname;
+      # Store the extension's UUID, because we might need it at some places
+      extensionUuid = uuid;
+    };
+  };
+in
+  lib.makeOverridable buildGnomeExtension
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix
index 41155391f89c..8b2d538f4fea 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, glib, gettext, bash, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, glib, gettext, bash }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-caffeine";
-  version = "37";
+  version = "38";
 
   src = fetchFromGitHub {
     owner = "eonpatapon";
     repo = "gnome-shell-extension-caffeine";
     rev = "v${version}";
-    sha256 = "1mpa0fbpmv3pblb20dxj8iykn4ayvx89qffpcs67bzlq597zsbkb";
+    sha256 = "0dyagnjmk91h96xr98mc177c473bqpxcv86qf6g3kyh3arwa9shs";
   };
 
   uuid = "caffeine@patapon.info";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fill the cup to inhibit auto suspend and screensaver";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ eperuffo ];
     homepage = "https://github.com/eonpatapon/gnome-shell-extension-caffeine";
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/chrome-gnome-shell/default.nix
index f6adf85de4d0..779d7506abf5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/chrome-gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/chrome-gnome-shell/default.nix
@@ -4,7 +4,7 @@
 , ninja
 , jq
 , python3
-, gnome3
+, gnome
 , wrapGAppsHook
 , gobject-introspection
 }:
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome3.gnome-shell
+    gnome.gnome-shell
     python
     pygobject3
     requests
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "chrome-gnome-shell";
     };
   };
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
     description = "GNOME Shell integration for Chrome";
     homepage = "https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome";
     longDescription = ''
-      To use the integration, install the <link xlink:href="https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation">browser extension</link>, and then set <option>services.gnome3.chrome-gnome-shell.enable</option> to <literal>true</literal>.
+      To use the integration, install the <link xlink:href="https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation">browser extension</link>, and then set <option>services.gnome.chrome-gnome-shell.enable</option> to <literal>true</literal>.
     '';
     license = licenses.gpl3;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/clipboard-indicator/default.nix
index ee64fc5113d0..efdcab6a4634 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/clipboard-indicator/default.nix
@@ -1,24 +1,26 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, gettext, glib }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-clipboard-indicator";
-  version = "37";
+  version = "38";
 
   src = fetchFromGitHub {
     owner = "Tudmotu";
     repo = "gnome-shell-extension-clipboard-indicator";
     rev = "v${version}";
-    sha256 = "0npxhaam2ra2b9zh2gk2q0n5snlhx6glz86m3jf8hz037w920k41";
+    sha256 = "FNrh3b6la2BuWCsriYP5gG0/KNbkFPuq/YTXTj0aJAI=";
   };
 
   uuid = "clipboard-indicator@tudmotu.com";
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r * $out/share/gnome-shell/extensions/${uuid}
-    runHook postInstall
-  '';
+  nativeBuildInputs = [
+    gettext
+    glib
+  ];
+
+  makeFlags = [
+    "INSTALLPATH=${placeholder "out"}/share/gnome-shell/extensions/${uuid}/"
+  ];
 
   meta = with lib; {
     description = "Adds a clipboard indicator to the top panel and saves clipboard history";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/clock-override/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix
index 6d3a752c886f..3e02d33857a6 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/clock-override/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, gnome3, gettext, glib }:
+{ lib, stdenv, fetchzip, gnome, gettext, glib }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-clock-override";
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rhoriguchi ];
     homepage = "https://github.com/stuartlangridge/gnome-shell-clock-override";
-    broken = versionOlder gnome3.gnome-shell.version "3.18";
+    broken = versionOlder gnome.gnome-shell.version "3.18";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/collisions.json b/nixpkgs/pkgs/desktops/gnome/extensions/collisions.json
new file mode 100644
index 000000000000..0eab20b4bd95
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/collisions.json
@@ -0,0 +1,42 @@
+{
+  "38": {
+    "applications-menu": [
+      "apps-menu@gnome-shell-extensions.gcampax.github.com",
+      "Applications_Menu@rmy.pobox.com"
+    ],
+    "workspace-indicator": [
+      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
+      "horizontal-workspace-indicator@tty2.io"
+    ],
+    "lock-keys": [
+      "lockkeys@vaina.lt",
+      "lockkeys@fawtytoo"
+    ],
+    "fuzzy-clock": [
+      "Fuzzy_Clock@dallagi",
+      "fuzzy-clock@keepawayfromfire.co.uk"
+    ],
+    "transparent-window": [
+      "transparent-window@pbxqdown.github.com",
+      "transparentwindows.mdirshad07"
+    ],
+    "floating-dock": [
+      "floatingDock@sun.wxg@gmail.com",
+      "floating-dock@nandoferreira_prof@hotmail.com"
+    ]
+  },
+  "40": {
+    "applications-menu": [
+      "apps-menu@gnome-shell-extensions.gcampax.github.com",
+      "Applications_Menu@rmy.pobox.com"
+    ],
+    "workspace-indicator": [
+      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
+      "horizontal-workspace-indicator@tty2.io"
+    ],
+    "lock-keys": [
+      "lockkeys@vaina.lt",
+      "lockkeys@fawtytoo"
+    ]
+  }
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
index 45233e52f893..97815a844d75 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
@@ -5,7 +5,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-dash-to-dock";
+  pname = "gnome-shell-extension-dash-to-dock";
   version = "69";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
index 7a9dc066cc77..440b8d76b171 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, glib, gettext }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-dash-to-panel";
+  pname = "gnome-shell-extension-dash-to-panel";
   version = "40";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
new file mode 100644
index 000000000000..0e1167561ebe
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, callPackage
+, config
+}:
+let
+  buildShellExtension = callPackage ./buildGnomeExtension.nix { };
+
+  # Index of all scraped extensions (with supported versions)
+  extensionsIndex = lib.importJSON ./extensions.json;
+
+  # A list of UUIDs that have the same pname and we need to rename them
+  extensionRenames = import ./extensionRenames.nix;
+
+  # Take all extensions from the index that match the gnome version, build them and put them into a list of derivations
+  produceExtensionsList = shell-version:
+    lib.trivial.pipe extensionsIndex [
+      # Does a given extension match our current shell version?
+      (builtins.filter
+        (extension: (builtins.hasAttr shell-version extension."shell_version_map"))
+      )
+      # Take in an `extension` object from the JSON and transform it into the correct args to call `buildShellExtension`
+      (map
+        (extension: {
+          inherit (extension) uuid name description link pname;
+          inherit (extension.shell_version_map.${shell-version}) version sha256 metadata;
+        })
+      )
+      # Build them
+      (map buildShellExtension)
+    ];
+
+  # Map the list of extensions to an attrset based on the UUID as key
+  mapUuidNames = extensions:
+    lib.trivial.pipe extensions [
+      (map (extension: lib.nameValuePair extension.extensionUuid extension))
+      builtins.listToAttrs
+    ];
+
+  # Map the list of extensions to an attrset based on the pname as key, which is more human readable than the UUID
+  # We also take care of conflict renaming in here
+  mapReadableNames = extensionsList: lib.trivial.pipe extensionsList [
+    # Filter out all extensions that map to null
+    (lib.filter (extension:
+      !(
+        (builtins.hasAttr extension.extensionUuid extensionRenames)
+        && ((builtins.getAttr extension.extensionUuid extensionRenames) == null)
+      )
+    ))
+    # Map all extensions to their pname, with potential overwrites
+    (map (extension:
+      lib.nameValuePair (extensionRenames.${extension.extensionUuid} or extension.extensionPortalSlug) extension
+    ))
+    builtins.listToAttrs
+  ];
+
+in rec {
+  inherit buildShellExtension;
+
+  gnome38Extensions = mapUuidNames (produceExtensionsList "38");
+  gnome40Extensions = mapUuidNames (produceExtensionsList "40");
+
+  gnomeExtensions = lib.recurseIntoAttrs (
+    (mapReadableNames (produceExtensionsList "40"))
+    // (callPackage ./manuallyPackaged.nix {})
+    // lib.optionalAttrs (config.allowAliases or true) {
+      unite-shell = gnomeExtensions.unite; # added 2021-01-19
+      arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
+
+      nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
+      mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
+    }
+  );
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/disable-unredirect/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/disable-unredirect/default.nix
index 0a9145de3db3..166ab61565f8 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/disable-unredirect/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/disable-unredirect/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-disable-unredirect";
-  version = "unstable-2021-01-17";
+  version = "unstable-2021-04-13";
 
   src = fetchFromGitHub {
     owner = "kazysmaster";
     repo = "gnome-shell-extension-disable-unredirect";
-    rev = "2ecb2f489ea3316b77d04f03a0c885f322c67e79";
-    sha256 = "1rjyrg8qya0asndxr7189a9npww0rcxk02wkxrxjy7fdp5m89p7y";
+    rev = "2a4c0e6a7a7a5f1aad9907ee2cf43d0725e10c19";
+    sha256 = "06hbyy20xz0bvzg0vs5w4092nyfpg372c86cdm1akcjm72m5sim9";
   };
 
   uuid = "unredirect@vaina.lt";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/draw-on-your-screen/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/draw-on-your-screen/default.nix
index 0e0dab64be16..90e8bffeec97 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/draw-on-your-screen/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/draw-on-your-screen/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, gettext, gnome3 }:
+{ lib, stdenv, fetchgit, gettext, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-draw-on-your-screen";
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     description = "A drawing extension for GNOME Shell";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ericdallo ahuzik ];
-    platforms = gnome3.gnome-shell.meta.platforms;
+    platforms = gnome.gnome-shell.meta.platforms;
     homepage = "https://framagit.org/abakkk/DrawOnYourScreen";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix
index 8cd567a590db..a994e427fb0e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, gjs, vte, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, substituteAll, gjs, vte, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-drop-down-terminal";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch b/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/fix_vte_and_gjs.patch
index 3544c91ee895..3544c91ee895 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/fix_vte_and_gjs.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/dynamic-panel-transparency/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/dynamic-panel-transparency/default.nix
index bf637ecab183..aee636d45346 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/dynamic-panel-transparency/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/dynamic-panel-transparency/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, gnome3, glib }:
+{ lib, stdenv, fetchFromGitHub, gnome, glib }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-dynamic-panel-transparency";
-  version = "35";
+  version = "unstable-2021-03-04";
 
   src = fetchFromGitHub {
     owner = "ewlsh";
     repo = "dynamic-panel-transparency";
-    rev = "0800c0a921bb25f51f6a5ca2e6981b1669a69aec";
-    sha256 = "0200mx861mlsi9lf7h108yam02jfqqw55r521chkgmk4fy6z99pq";
+    rev = "f9e720e98e40c7a2d87928d09a7313c9ef2e832c";
+    sha256 = "0njykxjiwlcmk0q8bsgqaznsryaw43fspfs6rzsjjz5p0xaq04nw";
   };
 
   uuid = "dynamic-panel-transparency@rockon999.github.io";
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ rhoriguchi ];
     homepage = "https://github.com/ewlsh/dynamic-panel-transparency";
-    broken = versionOlder gnome3.gnome-shell.version "3.36";
+    broken = versionOlder gnome.gnome-shell.version "3.36";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
index 5470dc996be0..70f09463d121 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, glib, gettext }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-emoji-selector";
+  pname = "gnome-shell-extension-emoji-selector";
   version = "19";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix b/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
new file mode 100644
index 000000000000..912e47a104e9
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
@@ -0,0 +1,29 @@
+# A list of UUIDs that have the same pname and we need to rename them
+# MAINTENANCE:
+# - Every item from ./collisions.json (for the respective Shell version) should have an entry in here
+# - Set the value to `null` for filtering (duplicate or unmaintained extensions)
+# - Sort the entries in order of appearance in the collisions.json
+{
+  "apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
+  "Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
+
+  "workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
+  "horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
+
+  "lockkeys@vaina.lt" = "lock-keys";
+  "lockkeys@fawtytoo" = "lock-keys-2";
+
+
+  # These are conflicts for 3.38 extensions. They will very probably come back
+  # once more of them support 40.
+
+  # See https://github.com/pbxqdown/gnome-shell-extension-transparent-window/issues/12#issuecomment-800765381
+  #"transparent-window@pbxqdown.github.com" = "transparent-window";
+  #"transparentwindows.mdirshad07" = null;
+
+  #"floatingDock@sun.wxg@gmail.com" = "floating-dock";
+  #"floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock-2";
+
+  # That extension is broken because of https://github.com/NixOS/nixpkgs/issues/118612
+  #"flypie@schneegans.github.com" = null;
+}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json b/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
new file mode 100644
index 000000000000..b046591b8778
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
@@ -0,0 +1,450 @@
+[ {"uuid": "Move_Clock@rmy.pobox.com", "name": "Frippery Move Clock", "pname": "move-clock", "description": "Move clock to left of status menu button", "link": "https://extensions.gnome.org/extension/2/move-clock/", "shell_version_map": {"38": {"version": "22", "sha256": "085ardkmrxz6rzh48frpb5z8mjlilqk037gjr84dr39gj9dkb81z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "24", "sha256": "0181cfrs06qplig4yy5aaghxq2w5x88wvc0166c9z31fsgshqh5z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIk1vdmVfQ2xvY2tAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"}}}
+, {"uuid": "Bottom_Panel@rmy.pobox.com", "name": "Frippery Bottom Panel", "pname": "bottom-panel", "description": "Add a bottom panel to the shell", "link": "https://extensions.gnome.org/extension/3/bottom-panel/", "shell_version_map": {"38": {"version": "49", "sha256": "09gsbnj564z8f7m593iv8j7s6f32230k0ikfsl1dlv1jsfpfn8zv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkJvdHRvbV9QYW5lbEBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "40": {"version": "52", "sha256": "0qw25lp2hwp5ssi4gq3xpnbwk96fgpwd5j0lgzwk94gg0p9dsi9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJCb3R0b21fUGFuZWxAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"}}}
+, {"uuid": "Panel_Favorites@rmy.pobox.com", "name": "Frippery Panel Favorites", "pname": "panel-favorites", "description": "Add launchers for Favorites to the panel", "link": "https://extensions.gnome.org/extension/4/panel-favorites/", "shell_version_map": {"38": {"version": "39", "sha256": "0jqysp82rhckdlgn1jhf1n6sqqphv97m9dri5pjiqjggvm4ls80j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJQYW5lbF9GYXZvcml0ZXNAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "41", "sha256": "1iv39jz3yzfiphd2xfnjzf8i9lmwxnhxlv6yhw6cwlyrf7pz68vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiUGFuZWxfRmF2b3JpdGVzQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}}}
+, {"uuid": "apps-menu@gnome-shell-extensions.gcampax.github.com", "name": "Applications Menu", "pname": "applications-menu", "description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/6/applications-menu/", "shell_version_map": {"38": {"version": "46", "sha256": "1l5fliypxq3s3b6crv7rc6nl741m7hw48dwl0g7vi3yxyw0vyc0x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhcHBzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="}, "40": {"version": "47", "sha256": "0qjhq1x0lga8zsgqa8dw03ijykm3izh0qylgw2a4gah1gp5vmg9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhcHBzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}}}
+, {"uuid": "drive-menu@gnome-shell-extensions.gcampax.github.com", "name": "Removable Drive Menu", "pname": "removable-drive-menu", "description": "A status menu for accessing and unmounting removable devices.", "link": "https://extensions.gnome.org/extension/7/removable-drive-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "1f5a9md2gxbl65shbdm498y5dwhhqdpj96gvf2m81ad7gsgxzliv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkcml2ZS1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "46", "sha256": "1k98m4kyppa3ky0yxranvp1d8q9w01m3x35v2l7kzanfdlbckbkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkcml2ZS1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}}}
+, {"uuid": "places-menu@gnome-shell-extensions.gcampax.github.com", "name": "Places Status Indicator", "pname": "places-status-indicator", "description": "Add a menu for quickly navigating places in the system.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/8/places-status-indicator/", "shell_version_map": {"38": {"version": "48", "sha256": "05m8nkg2km72iwnmadx6f4br8qnzqagp78mlhz8r2z6hp19nqsh5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "40": {"version": "50", "sha256": "1z6hx0djjxqclx0n00rc44cmc9kisjqk76wxj97d7mh1mi91wf2k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"}}}
+, {"uuid": "windowsNavigator@gnome-shell-extensions.gcampax.github.com", "name": "windowNavigator", "pname": "windownavigator", "description": "Allow keyboard selection of windows and workspaces in overlay mode. <Ctrl>number selects a workspace, and <Alt>number selects a window.", "link": "https://extensions.gnome.org/extension/10/windownavigator/", "shell_version_map": {"38": {"version": "49", "sha256": "1rzfnssk0iw1ysaya79ksghikkr1rpm41h2w39cz142fby6kip2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93c05hdmlnYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "40": {"version": "52", "sha256": "05r8svpakhnaw8yqib9j0bxxw4bbdkw5xzahkl4mq3kiy56d9kxv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvd3NOYXZpZ2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTIKfQ=="}}}
+, {"uuid": "Applications_Menu@rmy.pobox.com", "name": "Frippery Applications Menu", "pname": "applications-menu", "description": "Replace Activities button with an Applications menu", "link": "https://extensions.gnome.org/extension/13/applications-menu/", "shell_version_map": {"38": {"version": "45", "sha256": "0kg9dq1ssa11xizb31kcq3p724qzm1cmf30wriqffj043n5nd125", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "47", "sha256": "1y5qd46zbr7qrhglbb1ylb4hl40dfalkjgpvrq3m1kjry6kdvkv1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkFwcGxpY2F0aW9uc19NZW51QHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}}}
+, {"uuid": "auto-move-windows@gnome-shell-extensions.gcampax.github.com", "name": "Auto Move Windows", "pname": "auto-move-windows", "description": "Move applications to specific workspaces when they create windows.", "link": "https://extensions.gnome.org/extension/16/auto-move-windows/", "shell_version_map": {"38": {"version": "44", "sha256": "05lmpmyzaawxh3kn030a8sanq7p6g87zfh7nzxfvgi8nbpygd59q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "40": {"version": "45", "sha256": "0xljd6469q5p3pxnjhbpd5blrkidhgwffx4dhdicw8253ad3c8qd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"uuid": "native-window-placement@gnome-shell-extensions.gcampax.github.com", "name": "Native Window Placement", "pname": "native-window-placement", "description": "Arrange windows in overview in a more compact way.", "link": "https://extensions.gnome.org/extension/18/native-window-placement/", "shell_version_map": {"38": {"version": "45", "sha256": "15vhdcfrfbsinp0m1jfygjl4djccafhvgwc1rsi321jvykqhajmm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "46", "sha256": "0fll3fkszf5lmiy0cmg9w0ma5n7pzq5s3bkx0kyg37pib28zhlaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}}}
+, {"uuid": "user-theme@gnome-shell-extensions.gcampax.github.com", "name": "User Themes", "pname": "user-themes", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/19/user-themes/", "shell_version_map": {"38": {"version": "42", "sha256": "0jykwcd8pmvr03dm2vala6nzzhi9i83c11svgx8wymfvxr5qrya8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInVzZXItdGhlbWVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "40": {"version": "44", "sha256": "14alrbhwqhy48vlqi7l12cila2ai0x57ksw6lxmgfir1mxvj8l03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInVzZXItdGhlbWVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}}}
+, {"uuid": "workspace-indicator@gnome-shell-extensions.gcampax.github.com", "name": "Workspace Indicator", "pname": "workspace-indicator", "description": "Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one.", "link": "https://extensions.gnome.org/extension/21/workspace-indicator/", "shell_version_map": {"38": {"version": "45", "sha256": "16y7zhlsj0qjwwj78fvcr81m7081i2y30gwjm35qahr3j0gfrk16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid29ya3NwYWNlLWluZGljYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "47", "sha256": "03cf5jadkvbz9r33mhv5mkv8qxsv7zf7jib1w7xcks1r2pak4ax9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid29ya3NwYWNlLWluZGljYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}}}
+, {"uuid": "gTile@vibou", "name": "gTile", "pname": "gtile", "description": "Tile windows on a grid.", "link": "https://extensions.gnome.org/extension/28/gtile/", "shell_version_map": {"38": {"version": "44", "sha256": "0z9kn4n7snq94yrydikbnj9rwia1ad8q04mysjj0rry1v504mf8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dUaWxlIiwKICAidXVpZCI6ICJnVGlsZUB2aWJvdSIsCiAgInZlcnNpb24iOiA0NAp9"}, "40": {"version": "44", "sha256": "0z9kn4n7snq94yrydikbnj9rwia1ad8q04mysjj0rry1v504mf8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dUaWxlIiwKICAidXVpZCI6ICJnVGlsZUB2aWJvdSIsCiAgInZlcnNpb24iOiA0NAp9"}}}
+, {"uuid": "lockkeys@vaina.lt", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock & Capslock status on the panel", "link": "https://extensions.gnome.org/extension/36/lock-keys/", "shell_version_map": {"38": {"version": "42", "sha256": "0rbb7abbpbzbgpaidf8vgsx0camfczgcd5d10m7xp702gasbq5lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDQyCn0="}, "40": {"version": "42", "sha256": "0rbb7abbpbzbgpaidf8vgsx0camfczgcd5d10m7xp702gasbq5lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDQyCn0="}}}
+, {"uuid": "putWindow@clemens.lab21.org", "name": "Put Windows", "pname": "put-windows", "description": "Fully customizable replacement for the old compiz put plugin. \n * Move windows to left/right side, bottom/top, center or corner \n * Move window to other screen \n * Select focused window using the keyboard \n * Application based window placement \n\n Please check github if your gnome-shell version is not supported", "link": "https://extensions.gnome.org/extension/39/put-windows/", "shell_version_map": {"38": {"version": "32", "sha256": "1n4hk2sqdbcn25lxk02vljc9xxbidragimvc4b6dj2m72625lx67", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IGN1c3RvbWl6YWJsZSByZXBsYWNlbWVudCBmb3IgdGhlIG9sZCBjb21waXogcHV0IHBsdWdpbi4gXG4gKiBNb3ZlIHdpbmRvd3MgdG8gbGVmdC9yaWdodCBzaWRlLCBib3R0b20vdG9wLCBjZW50ZXIgb3IgY29ybmVyIFxuICogTW92ZSB3aW5kb3cgdG8gb3RoZXIgc2NyZWVuIFxuICogU2VsZWN0IGZvY3VzZWQgd2luZG93IHVzaW5nIHRoZSBrZXlib2FyZCBcbiAqIEFwcGxpY2F0aW9uIGJhc2VkIHdpbmRvdyBwbGFjZW1lbnQgXG5cbiBQbGVhc2UgY2hlY2sgZ2l0aHViIGlmIHlvdXIgZ25vbWUtc2hlbGwgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHV0V2luZG93IiwKICAibmFtZSI6ICJQdXQgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmctbGFiMjEtcHV0d2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVnZXN0aS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLW5lZ2VzdGkiLAogICJ1dWlkIjogInB1dFdpbmRvd0BjbGVtZW5zLmxhYjIxLm9yZyIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "gnome-shell-trash-extension", "name": "Trash", "pname": "trash", "description": "A Trash button for the GNOME shell panel", "link": "https://extensions.gnome.org/extension/48/trash/", "shell_version_map": {"38": {"version": "18", "sha256": "1cysvxrgi7lnig7d8blhqqbxz0phd4fvn7nww6zpihjnw32rvm4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iZXJ0b2xkaWEvZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC10cmFzaC1leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
+, {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {"40": {"version": "13", "sha256": "1zlc6m3mai884mkgyg4mwvb7dc3wwpgysbkpfqw35cxpxf7chfk2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "CoverflowAltTab@palatis.blogspot.com", "name": "Coverflow Alt-Tab", "pname": "coverflow-alt-tab", "description": "Replacement of Alt-Tab, iterates through windows in a cover-flow manner.", "link": "https://extensions.gnome.org/extension/97/coverflow-alt-tab/", "shell_version_map": {"38": {"version": "44", "sha256": "18qpriqi0h6la45bl584hglnni0ka2d5q4qv61wdcan28a7kywq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNpbm5hbW9uLXZlcnNpb24iOiBbCiAgICAiMS4yIiwKICAgICIxLjQiLAogICAgIjEuNiIsCiAgICAiMS44IiwKICAgICIxLjkiLAogICAgIjIuMCIsCiAgICAiMi4xIiwKICAgICIyLjIiLAogICAgIjIuMyIsCiAgICAiMi40IiwKICAgICIyLjgiLAogICAgIjMuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlbWVudCBvZiBBbHQtVGFiLCBpdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgaW4gYSBjb3Zlci1mbG93IG1hbm5lci4iLAogICJuYW1lIjogIkNvdmVyZmxvdyBBbHQtVGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "40": {"version": "45", "sha256": "1csgcr90cdi7r3dlzmp1h9qg225ss4cws4pgzc4iqifjh6c8z2rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNpbm5hbW9uLXZlcnNpb24iOiBbCiAgICAiMS4yIiwKICAgICIxLjQiLAogICAgIjEuNiIsCiAgICAiMS44IiwKICAgICIxLjkiLAogICAgIjIuMCIsCiAgICAiMi4xIiwKICAgICIyLjIiLAogICAgIjIuMyIsCiAgICAiMi40IiwKICAgICIyLjgiLAogICAgIjMuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlbWVudCBvZiBBbHQtVGFiLCBpdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgaW4gYSBjb3Zlci1mbG93IG1hbm5lci4iLAogICJuYW1lIjogIkNvdmVyZmxvdyBBbHQtVGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
+, {"uuid": "favorites@cvine.org", "name": "Favorites Menu", "pname": "favorites-menu", "description": "Provide panel menu for favorites", "link": "https://extensions.gnome.org/extension/115/favorites-menu/", "shell_version_map": {"40": {"version": "15", "sha256": "02s0p33dcr6wrxivjd47rwb42whqc6qswr3qdvd7p6jym4zddbi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuY3ZpbmUucGx1cy5jb20vZmF2b3JpdGVzL2luZGV4Lmh0bWwiLAogICJ1dWlkIjogImZhdm9yaXRlc0BjdmluZS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "Fuzzy_Clock@dallagi", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "A human-readable clock for the gnome-shell panel", "link": "https://extensions.gnome.org/extension/202/fuzzy-clock/", "shell_version_map": {"38": {"version": "9", "sha256": "1cga3192balji63zmbbyixb4r53j48zhil4hnv57l3b25k4rmk0i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgY2xvY2sgZm9yIHRoZSBnbm9tZS1zaGVsbCBwYW5lbCIsCiAgIm5hbWUiOiAiRnV6enkgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYWxsYWdpL2dub21lLXNoZWxsLWZ1enp5LWNsb2NrIiwKICAidXVpZCI6ICJGdXp6eV9DbG9ja0BkYWxsYWdpIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"uuid": "PersianCalendar@oxygenws.com", "name": "Persian Calendar", "pname": "persian-calendar", "description": "Shows Persian date in the top panel.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is a holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri\n5- Events:\n5-1- Official solar events.\n5-2- Official lunar events.\n5-3- Official international events.\n5-4- Traditional Persian events.\n5-5- Persian personages.\n\nPlease \"rate\" here and \"star\" the project in GitHub.\nPlease open an issue in GitHub if you've found something or have an idea!", "link": "https://extensions.gnome.org/extension/240/persian-calendar/", "shell_version_map": {"38": {"version": "73", "sha256": "14p27d2h58jam7h97y06safsc2c8rwmjy74nak5w9cv7s0wx4kar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA3Mwp9"}, "40": {"version": "76", "sha256": "1m8lb3lb4fvb6hb3awbl5yz2lf6858fq122d8h89glhzw7d4jlpc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA3Ngp9"}}}
+, {"uuid": "kimpanel@kde.org", "name": "Input Method Panel", "pname": "kimpanel", "description": "Input Method Panel using KDE's kimpanel protocol for Gnome-Shell", "link": "https://extensions.gnome.org/extension/261/kimpanel/", "shell_version_map": {"38": {"version": "59", "sha256": "0rh2in9cm9khvmhhzyyw98z6bwvv95v59zcapkjpd7kbs38hqdw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDU5Cn0="}, "40": {"version": "62", "sha256": "18nl9m74849vgdljjcickwsa4anrwl1b1p58l7pqw9pv4m08myn7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLmJldGEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDYyCn0="}}}
+, {"uuid": "impatience@gfxmonk.net", "name": "Impatience", "pname": "impatience", "description": "Speed up the gnome-shell animation speed", "link": "https://extensions.gnome.org/extension/277/impatience/", "shell_version_map": {"40": {"version": "16", "sha256": "1h4x1a6i7b33xa7hlr5pd8llbnq0pin83c957y6r75sri0xwxr6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2Z4bW9uay5uZXQvZGlzdC8waW5zdGFsbC9nbm9tZS1zaGVsbC1pbXBhdGllbmNlLnhtbCIsCiAgInV1aWQiOiAiaW1wYXRpZW5jZUBnZnhtb25rLm5ldCIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "windowoverlay-icons@sustmidown.centrum.cz", "name": "WindowOverlay Icons", "pname": "windowoverlay-icons", "description": "Add application icons to window overview", "link": "https://extensions.gnome.org/extension/302/windowoverlay-icons/", "shell_version_map": {"38": {"version": "37", "sha256": "108a5i5v62a9i61av5pib3b0hcpmb6pw3np7c29jfngs25n14wd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhcHBsaWNhdGlvbiBpY29ucyB0byB3aW5kb3cgb3ZlcnZpZXciLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aW5kb3dvdmVybGF5LWljb25zIiwKICAibmFtZSI6ICJXaW5kb3dPdmVybGF5IEljb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd292ZXJsYXktaWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdXN0bWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd292ZXJsYXktaWNvbnMiLAogICJ1dWlkIjogIndpbmRvd292ZXJsYXktaWNvbnNAc3VzdG1pZG93bi5jZW50cnVtLmN6IiwKICAidmVyc2lvbiI6IDM3Cn0="}}}
+, {"uuid": "dash-to-dock@micxgx.gmail.com", "name": "Dash to Dock", "pname": "dash-to-dock", "description": "A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.", "link": "https://extensions.gnome.org/extension/307/dash-to-dock/", "shell_version_map": {"38": {"version": "69", "sha256": "1nmqg875lxbxn8plwgmsrkhq126hcv56yl6iyq5wc4ljp98niaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbWljaGVsZWcuZ2l0aHViLmlvL2Rhc2gtdG8tZG9jay8iLAogICJ1dWlkIjogImRhc2gtdG8tZG9ja0BtaWN4Z3guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDY5Cn0="}}}
+, {"uuid": "mythtv-fnx@fnxweb.com", "name": "MythTV", "pname": "mythtv", "description": "Displays MythTV status (free space and upcoming recordings)", "link": "https://extensions.gnome.org/extension/321/mythtv/", "shell_version_map": {"38": {"version": "10", "sha256": "070h11gk5zpxn5xbc71skdz174hbb72l0isia2vp7d9wy4ackl0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtbXl0aHR2IiwKICAidXVpZCI6ICJteXRodHYtZm54QGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "middleclickclose@paolo.tranquilli.gmail.com", "name": "Quick Close in Overview", "pname": "middle-click-to-close-in-overview", "description": "Close windows with a button click (the middle one by default) when in overview mode", "link": "https://extensions.gnome.org/extension/352/middle-click-to-close-in-overview/", "shell_version_map": {"38": {"version": "17", "sha256": "1nv6cjyiz1i7fddh21h0zmrvzfi3y70y1f0xsv2zd0rfg6rf0r77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHdpbmRvd3Mgd2l0aCBhIGJ1dHRvbiBjbGljayAodGhlIG1pZGRsZSBvbmUgYnkgZGVmYXVsdCkgd2hlbiBpbiBvdmVydmlldyBtb2RlIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJRdWljayBDbG9zZSBpbiBPdmVydmlldyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiUGFvbG8gVHJhbnF1aWxsaSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWlkZGxlY2xpY2tjbG9zZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3A5MXBhdWwvbWlkZGxlY2xpY2tjbG9zZSIsCiAgInV1aWQiOiAibWlkZGxlY2xpY2tjbG9zZUBwYW9sby50cmFucXVpbGxpLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "20", "sha256": "1nylf06jr8lllq1m92g5qhwvdc9vgagc4iszd6p38jmb27sbfgw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHdpbmRvd3Mgd2l0aCBhIGJ1dHRvbiBjbGljayAodGhlIG1pZGRsZSBvbmUgYnkgZGVmYXVsdCkgd2hlbiBpbiBvdmVydmlldyBtb2RlIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJRdWljayBDbG9zZSBpbiBPdmVydmlldyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiUGFvbG8gVHJhbnF1aWxsaSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWlkZGxlY2xpY2tjbG9zZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wOTFwYXVsL21pZGRsZWNsaWNrY2xvc2UiLAogICJ1dWlkIjogIm1pZGRsZWNsaWNrY2xvc2VAcGFvbG8udHJhbnF1aWxsaS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "status-area-horizontal-spacing@mathematical.coffee.gmail.com", "name": "Status Area Horizontal Spacing", "pname": "status-area-horizontal-spacing", "description": "Reduce the horizontal spacing between icons in the top-right status area", "link": "https://extensions.gnome.org/extension/355/status-area-horizontal-spacing/", "shell_version_map": {"38": {"version": "16", "sha256": "05hhj10hlcpbgd9sbvq89vxzqj6ndf21syas8zidy6yfy613b6l3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjQiLAogICAgIjMuNiIsCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9zdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmdAbWF0aGVtYXRpY2FsLmNvZmZlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "18", "sha256": "0r501b8frnrrxfl8l2j6xcjgw1w99h753n47zr8mwpbx5wpcbw5w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3A5MXBhdWwvc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nQG1hdGhlbWF0aWNhbC5jb2ZmZWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "activities-config@nls1729", "name": "Activities Configurator", "pname": "activities-configurator", "description": "Activities Configurator, activities-config@nls1729 -  Effective March 29, 2021 the extension is NOT MAINTAINED.  I give my permission to anyone who may want to become the maintainer.  I do not have the free time or energy necessary to maintain the extension.\n\nConfigure the Activities Button and Top Panel. Select an icon. Change the text. Disable Hot Corner or set the Hot Corner Threshold. Set Panel Background color and transparency plus much more to enhance your desktop.  Click the icon or text with the secondary mouse button to launch the GS Extension Prefs.", "link": "https://extensions.gnome.org/extension/358/activities-configurator/", "shell_version_map": {"38": {"version": "89", "sha256": "1z00smimg5fj6ri35g80bvfzzy5xxxrgwy4idsakphszdwryi8ny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2aXRpZXMgQ29uZmlndXJhdG9yLCBhY3Rpdml0aWVzLWNvbmZpZ0BubHMxNzI5IC0gIEVmZmVjdGl2ZSBNYXJjaCAyOSwgMjAyMSB0aGUgZXh0ZW5zaW9uIGlzIE5PVCBNQUlOVEFJTkVELiAgSSBnaXZlIG15IHBlcm1pc3Npb24gdG8gYW55b25lIHdobyBtYXkgd2FudCB0byBiZWNvbWUgdGhlIG1haW50YWluZXIuICBJIGRvIG5vdCBoYXZlIHRoZSBmcmVlIHRpbWUgb3IgZW5lcmd5IG5lY2Vzc2FyeSB0byBtYWludGFpbiB0aGUgZXh0ZW5zaW9uLlxuXG5Db25maWd1cmUgdGhlIEFjdGl2aXRpZXMgQnV0dG9uIGFuZCBUb3AgUGFuZWwuIFNlbGVjdCBhbiBpY29uLiBDaGFuZ2UgdGhlIHRleHQuIERpc2FibGUgSG90IENvcm5lciBvciBzZXQgdGhlIEhvdCBDb3JuZXIgVGhyZXNob2xkLiBTZXQgUGFuZWwgQmFja2dyb3VuZCBjb2xvciBhbmQgdHJhbnNwYXJlbmN5IHBsdXMgbXVjaCBtb3JlIHRvIGVuaGFuY2UgeW91ciBkZXNrdG9wLiAgQ2xpY2sgdGhlIGljb24gb3IgdGV4dCB3aXRoIHRoZSBzZWNvbmRhcnkgbW91c2UgYnV0dG9uIHRvIGxhdW5jaCB0aGUgR1MgRXh0ZW5zaW9uIFByZWZzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhY3Rpdml0aWVzLWNvbmZpZyIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXRpZXMtY29uZmlnLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBDb25maWd1cmF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWN0aXZpdGllcy1jb25maWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmxzMTcyOS5naXRodWIuaW8vYWN0aXZpdGllc19jb25maWcuaHRtbCIsCiAgInV1aWQiOiAiYWN0aXZpdGllcy1jb25maWdAbmxzMTcyOSIsCiAgInZlcnNpb24iOiA4OQp9"}}}
+, {"uuid": "remmina-search-provider@alexmurray.github.com", "name": "Remmina Search Provider", "pname": "remmina-search-provider", "description": "Search for Remmina Remote Desktop Connections\n\nEasily search for and launch connections to remote machines by name and protocol.", "link": "https://extensions.gnome.org/extension/473/remmina-search-provider/", "shell_version_map": {"40": {"version": "13", "sha256": "04wxydmbx0nm5ss2i10y4alxsr6fkia2is85ln23k25bqn8b4csi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "caffeine@patapon.info", "name": "Caffeine", "pname": "caffeine", "description": "Disable the screensaver and auto suspend", "link": "https://extensions.gnome.org/extension/517/caffeine/", "shell_version_map": {"38": {"version": "37", "sha256": "05g1910jcwkjl9gmvnk57ip20sbzy09mk4v6q2fm0pg8398v0vhf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzNwp9"}, "40": {"version": "38", "sha256": "07pzr9cqnlvsqq6rhdib4n936dxnxl03qdb5hjbyl6zqbl6r69vj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzOAp9"}}}
+, {"uuid": "backslide@codeisland.org", "name": "BackSlide", "pname": "backslide", "description": "Automatic background-image (wallpaper) slideshow for Gnome Shell", "link": "https://extensions.gnome.org/extension/543/backslide/", "shell_version_map": {"38": {"version": "18", "sha256": "1vm4w61cksj9ya5z4xcy7h96bk0wwi5njp0lyhnqa8j2fgsq5iin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL0x1a2FzS251dGgvYmFja3NsaWRlIiwKICAidXVpZCI6ICJiYWNrc2xpZGVAY29kZWlzbGFuZC5vcmciLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "21", "sha256": "1qakl3wiwhx68yfqafd5241hfmin0v1x779ljs5bqj2hqld3dzz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYml0YnVja2V0Lm9yZy9MdWthc0tudXRoL2JhY2tzbGlkZSIsCiAgInV1aWQiOiAiYmFja3NsaWRlQGNvZGVpc2xhbmQub3JnIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
+, {"uuid": "historymanager-prefix-search@sustmidown.centrum.cz", "name": "HistoryManager Prefix Search", "pname": "historymanager-prefix-search", "description": "Use PageUp and PageDown to move in HistoryManager (eg. RunCommand, Looking Glass) according to prefix", "link": "https://extensions.gnome.org/extension/544/historymanager-prefix-search/", "shell_version_map": {"40": {"version": "14", "sha256": "1n6gac80xrk6lhlj29zb03h62ia0a66va0i9pmjgqbg3bs74yds0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW5Db21tYW5kLCBMb29raW5nIEdsYXNzKSBhY2NvcmRpbmcgdG8gcHJlZml4IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgIm5hbWUiOiAiSGlzdG9yeU1hbmFnZXIgUHJlZml4IFNlYXJjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy43LjMiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VzdG1pL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAidXVpZCI6ICJoaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoQHN1c3RtaWRvd24uY2VudHJ1bS5jeiIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {"38": {"version": "92", "sha256": "1b3fkii4mnwvjghnyl6iwigvqqi30kahy05gympp54fm2jx68xhl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbHV0ZnkvaGlkZXRvcGJhciIsCiAgInV1aWQiOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAidmVyc2lvbiI6IDkyCn0="}, "40": {"version": "92", "sha256": "1b3fkii4mnwvjghnyl6iwigvqqi30kahy05gympp54fm2jx68xhl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbHV0ZnkvaGlkZXRvcGJhciIsCiAgInV1aWQiOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAidmVyc2lvbiI6IDkyCn0="}}}
+, {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {"40": {"version": "16", "sha256": "127w08jkiy5dyxhavn735ywr7q9d7cd4bpcv8iyrh0dmxbd1rh1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "todo.txt@bart.libert.gmail.com", "name": "Todo.txt", "pname": "todotxt", "description": "A Gnome shell interface for todo.txt. \n\nTodo.txt is a future-proof syntax for tasks (not made by me), for more info: http://todotxt.com/\n\nSome examples:\nTask: Basic task\n(A) Task: High priority task\nTask @project +context: Task is part of project and has a certain context\nx 2013-08-22 Task: Task was completed on the 22nd of August\n\nFor more info about the syntax: https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format\n\nQuick start:\nWhen you first enable the extension, chances are high you'll see a [X] in your top panel. If you click the [X], you will be able to choose between creating the necessary files automatically or selecting your own existing files to be used with the extension.\n\nPlease use the issue tracker on the homepage to report bugs and/or file feature requests, this makes tracking easier for me. Thanks!\n\nSee the included CHANGELOG.md for info about changes between different versions, or see it online: https://gitlab.com/bartl/todo-txt-gnome-shell-extension/raw/master/CHANGELOG.md", "link": "https://extensions.gnome.org/extension/570/todotxt/", "shell_version_map": {"38": {"version": "33", "sha256": "1spq0i8w9xw8zgq3niqzs2dslg01l0gsbcys26p8lpydz0dsy7xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JhcnRsL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9kby50eHRAYmFydC5saWJlcnQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMzCn0="}, "40": {"version": "34", "sha256": "0blwddf362fdq160kagfzk2r6vvyabmyjisfpahnl88jj57b4l47", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JhcnRsL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9kby50eHRAYmFydC5saWJlcnQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="}}}
+, {"uuid": "text_translator@awamper.gmail.com", "name": "Text Translator", "pname": "text-translator", "description": "** Needs the package translate-shell **\nTranslation of the text by different translators (currently Google.Translate, Yandex.Translate).\nShortcuts:\nSuper+T - open translator dialog.\nSuper+Shift+T - open translator dialog and translate text from clipboard.\nSuper+Alt+T - open translator dialog and translate from primary selection.\nCtrl+Enter+ - Translate text.\nCtrl+Shift+C - copy translated text to clipboard.\nCtrl+S - swap languages.\nCtrl+D - reset languages to default\nTab+ - toggle transliteration of result text.", "link": "https://extensions.gnome.org/extension/593/text-translator/", "shell_version_map": {"38": {"version": "36", "sha256": "1idzgg4vb791k5dryjvznr6mfwfx59vlgabw2n3spysbwvjv2a48", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqIE5lZWRzIHRoZSBwYWNrYWdlIHRyYW5zbGF0ZS1zaGVsbCAqKlxuVHJhbnNsYXRpb24gb2YgdGhlIHRleHQgYnkgZGlmZmVyZW50IHRyYW5zbGF0b3JzIChjdXJyZW50bHkgR29vZ2xlLlRyYW5zbGF0ZSwgWWFuZGV4LlRyYW5zbGF0ZSkuXG5TaG9ydGN1dHM6XG5TdXBlcitUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZy5cblN1cGVyK1NoaWZ0K1QgLSBvcGVuIHRyYW5zbGF0b3IgZGlhbG9nIGFuZCB0cmFuc2xhdGUgdGV4dCBmcm9tIGNsaXBib2FyZC5cblN1cGVyK0FsdCtUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZyBhbmQgdHJhbnNsYXRlIGZyb20gcHJpbWFyeSBzZWxlY3Rpb24uXG5DdHJsK0VudGVyKyAtIFRyYW5zbGF0ZSB0ZXh0LlxuQ3RybCtTaGlmdCtDIC0gY29weSB0cmFuc2xhdGVkIHRleHQgdG8gY2xpcGJvYXJkLlxuQ3RybCtTIC0gc3dhcCBsYW5ndWFnZXMuXG5DdHJsK0QgLSByZXNldCBsYW5ndWFnZXMgdG8gZGVmYXVsdFxuVGFiKyAtIHRvZ2dsZSB0cmFuc2xpdGVyYXRpb24gb2YgcmVzdWx0IHRleHQuIiwKICAibmFtZSI6ICJUZXh0IFRyYW5zbGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGV4dC10cmFuc2xhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3Vmb2UvdGV4dC10cmFuc2xhdG9yIiwKICAidXVpZCI6ICJ0ZXh0X3RyYW5zbGF0b3JAYXdhbXBlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
+, {"uuid": "autohide-battery@sitnik.ru", "name": "Autohide Battery", "pname": "autohide-battery", "description": "Hide battery icon in top panel, if battery is fully charged and AC is connected", "link": "https://extensions.gnome.org/extension/595/autohide-battery/", "shell_version_map": {"40": {"version": "18", "sha256": "17a90g639id7bnl6wr86w231s7f0sbvrnk1phrv3hmiaf5i77mx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FpL2F1dG9oaWRlLWJhdHRlcnkiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnlAc2l0bmlrLnJ1IiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "launch-new-instance@gnome-shell-extensions.gcampax.github.com", "name": "Launch new instance", "pname": "launch-new-instance", "description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/600/launch-new-instance/", "shell_version_map": {"38": {"version": "29", "sha256": "0qb1ajjwm076zxsd314n7f5vl72ih7j4h9y84bqwb9cxa53mp4g4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsYXVuY2gtbmV3LWluc3RhbmNlQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="}, "40": {"version": "30", "sha256": "1cgljhw0j263b4mcdr2583q3j63a1g47gv8prcjdh03q35qwrrvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsYXVuY2gtbmV3LWluc3RhbmNlQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMwCn0="}}}
+, {"uuid": "window-list@gnome-shell-extensions.gcampax.github.com", "name": "Window List", "pname": "window-list", "description": "Display a window list at the bottom of the screen.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/602/window-list/", "shell_version_map": {"38": {"version": "34", "sha256": "06jww5sv3a32plbvnl1xch10y19q807dx6zn6z5gwpvq8n0nvnx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "40": {"version": "36", "sha256": "090lpxf7zdwg1x9nyagf3riag5w5dn9jd0bm0qz2jb0jbv0dlndk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
+, {"uuid": "MultiClock@mibus.org", "name": "MultiClock", "pname": "multiclock", "description": "A clock for showing a second timezone in the panel.", "link": "https://extensions.gnome.org/extension/605/multiclock/", "shell_version_map": {"40": {"version": "8", "sha256": "1pp1cnmpix668mrywpv6mkyb45lw7f6cwibjl6bc7cgb01hkzd53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgY2xvY2sgZm9yIHNob3dpbmcgYSBzZWNvbmQgdGltZXpvbmUgaW4gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiTXVsdGlDbG9jayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5taWJ1c011bHRpQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWJ1cy9NdWx0aUNsb2NrIiwKICAidXVpZCI6ICJNdWx0aUNsb2NrQG1pYnVzLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "appindicatorsupport@rgcjonas.gmail.com", "name": "KStatusNotifierItem/AppIndicator Support", "pname": "appindicator-support", "description": "Adds KStatusNotifierItem support to the Shell", "link": "https://extensions.gnome.org/extension/615/appindicator-support/", "shell_version_map": {"38": {"version": "37", "sha256": "1v7lsjpy6mkykkdkgz20xqdywf2a58rmqxfz2mrk07clxckzdlag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgS1N0YXR1c05vdGlmaWVySXRlbSBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgIm5hbWUiOiAiS1N0YXR1c05vdGlmaWVySXRlbS9BcHBJbmRpY2F0b3IgU3VwcG9ydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "40": {"version": "37", "sha256": "1v7lsjpy6mkykkdkgz20xqdywf2a58rmqxfz2mrk07clxckzdlag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgS1N0YXR1c05vdGlmaWVySXRlbSBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgIm5hbWUiOiAiS1N0YXR1c05vdGlmaWVySXRlbS9BcHBJbmRpY2F0b3IgU3VwcG9ydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}}}
+, {"uuid": "bitcoin-markets@ottoallmendinger.github.com", "name": "Bitcoin Markets", "pname": "bitcoin-markets", "description": "Display info on various crypto-currency exchanges.", "link": "https://extensions.gnome.org/extension/648/bitcoin-markets/", "shell_version_map": {"38": {"version": "57", "sha256": "1dbrkr49gi93nps610afvw2q68d1ialkhxsxd0waa8xgwjxwzyxd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU3IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3R0b0FsbG1lbmRpbmdlci9nbm9tZS1zaGVsbC1iaXRjb2luLW1hcmtldHMvIiwKICAidXVpZCI6ICJiaXRjb2luLW1hcmtldHNAb3R0b2FsbG1lbmRpbmdlci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}, "40": {"version": "58", "sha256": "1alsbyykqy2147ssx016ixqyj3phk3pmviw41dr0vakxfwr5f7g1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OAp9"}}}
+, {"uuid": "ShellTile@emasab.it", "name": "ShellTile", "pname": "shelltile", "description": "A tiling window extension for GNOME Shell. Just move a window to the edges of the screen to create a tiling, otherwise move a window over another one, holding down the Control key. Grouped windows minimize, resize, raise and change workspace together. Move or maximize a window to remove it from the group.", "link": "https://extensions.gnome.org/extension/657/shelltile/", "shell_version_map": {"38": {"version": "65", "sha256": "0kb7crng8lmkcjjxzd7ma2x0x43rg4j5ygvvpiq5z2j15rx8bcg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGlsaW5nIHdpbmRvdyBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBKdXN0IG1vdmUgYSB3aW5kb3cgdG8gdGhlIGVkZ2VzIG9mIHRoZSBzY3JlZW4gdG8gY3JlYXRlIGEgdGlsaW5nLCBvdGhlcndpc2UgbW92ZSBhIHdpbmRvdyBvdmVyIGFub3RoZXIgb25lLCBob2xkaW5nIGRvd24gdGhlIENvbnRyb2wga2V5LiBHcm91cGVkIHdpbmRvd3MgbWluaW1pemUsIHJlc2l6ZSwgcmFpc2UgYW5kIGNoYW5nZSB3b3Jrc3BhY2UgdG9nZXRoZXIuIE1vdmUgb3IgbWF4aW1pemUgYSB3aW5kb3cgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIGdyb3VwLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsdGlsZSIsCiAgIm5hbWUiOiAiU2hlbGxUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsdGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbWFzYWIvc2hlbGx0aWxlIiwKICAidXVpZCI6ICJTaGVsbFRpbGVAZW1hc2FiLml0IiwKICAidmVyc2lvbiI6IDY1Cn0="}}}
+, {"uuid": "lunarcal@ailin.nemui", "name": "Lunar Calendar 农历", "pname": "lunar-calendar", "description": "Display Chinese Lunar Calendar in panel\n\n⚠⚠⚠ dependency: typelib-1_0-LunarDate-2_0 / gir1.2-lunar-date-2.0", "link": "https://extensions.gnome.org/extension/675/lunar-calendar/", "shell_version_map": {"38": {"version": "25", "sha256": "18v9gq879mp4f9ljah163zxdasy27a3acjjs728ylkz8phxka6yl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtMl8wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0kf4p8pkr9r7kzfvb5dwlifbxkn92mq773m92vfmyiv79rwj1qzb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtMl8wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImx1bmFyY2FsQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "scroll-workspaces@gfxmonk.net", "name": "Top Panel Workspace Scroll", "pname": "top-panel-workspace-scroll", "description": "Change workspaces by scrolling over the top panel", "link": "https://extensions.gnome.org/extension/701/top-panel-workspace-scroll/", "shell_version_map": {"40": {"version": "24", "sha256": "1i7l26x22wzqplq42z2317ynq4s4vwwzb3ql9lhpkyn8d7g7xa4x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dmeG1vbmsvZ25vbWUtc2hlbGwtc2Nyb2xsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInNjcm9sbC13b3Jrc3BhY2VzQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
+, {"uuid": "panel-osd@berend.de.schouwer.gmail.com", "name": "Panel OSD", "pname": "panel-osd", "description": "Configuring where on the (main) screen notifications will appear, instead of just above the message tray", "link": "https://extensions.gnome.org/extension/708/panel-osd/", "shell_version_map": {"38": {"version": "39", "sha256": "109qlcckx5z8fwndpr86r2bfggyh4akmi6lqi0ki7gr9bfigdqnv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyaW5nIHdoZXJlIG9uIHRoZSAobWFpbikgc2NyZWVuIG5vdGlmaWNhdGlvbnMgd2lsbCBhcHBlYXIsIGluc3RlYWQgb2YganVzdCBhYm92ZSB0aGUgbWVzc2FnZSB0cmF5IiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJQYW5lbCBPU0QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWwtb3NkIiwKICAidXVpZCI6ICJwYW5lbC1vc2RAYmVyZW5kLmRlLnNjaG91d2VyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "40", "sha256": "0hskvmdnqjihixaxhb7a7apsx0203zmymm5j6ncb2al928p795yx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyaW5nIHdoZXJlIG9uIHRoZSAobWFpbikgc2NyZWVuIG5vdGlmaWNhdGlvbnMgd2lsbCBhcHBlYXIsIGluc3RlYWQgb2YganVzdCBhYm92ZSB0aGUgbWVzc2FnZSB0cmF5IiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJQYW5lbCBPU0QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vamVuc2xvZHkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBhbmVsLW9zZCIsCiAgInV1aWQiOiAicGFuZWwtb3NkQGJlcmVuZC5kZS5zY2hvdXdlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
+, {"uuid": "pixel-saver@deadalnix.me", "name": "Pixel Saver", "pname": "pixel-saver", "description": "Pixel Saver is designed to save pixel by fusing activity bar and title bar in a natural way", "link": "https://extensions.gnome.org/extension/723/pixel-saver/", "shell_version_map": {"38": {"version": "24", "sha256": "1y511ixqwz97mx3ykrlzafjskxri94sf9hlhjwnha9p3bys155bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjQKfQ=="}, "40": {"version": "24", "sha256": "1y511ixqwz97mx3ykrlzafjskxri94sf9hlhjwnha9p3bys155bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
+, {"uuid": "breakreminder@danielfalk22.gmail.com", "name": "Break Reminder", "pname": "break-reminder", "description": "Get a reminder to take a break", "link": "https://extensions.gnome.org/extension/734/break-reminder/", "shell_version_map": {"38": {"version": "6", "sha256": "0k21wj98ldx52m7s8sgndqziqnn7n0g2j45lsi31kfjydhyj3dmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHJlbWluZGVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiQnJlYWsgUmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxmYWxrL2dub21lM2JyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogImJyZWFrcmVtaW5kZXJAZGFuaWVsZmFsazIyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "Hide_Activities@shay.shayel.org", "name": "Hide Activities Button", "pname": "hide-activities-button", "description": "Hides the Activities button from the status bar (the hot corner and keyboard shortcut keeps working). To disable top left hot corner use 'No Topleft Hot Corner' extension — https://extensions.gnome.org/extension/118/no-topleft-hot-corner/ .", "link": "https://extensions.gnome.org/extension/744/hide-activities-button/", "shell_version_map": {"38": {"version": "11", "sha256": "0h04xkaad04nmh0hgcjaq8i7929j9cl79l5k4azrsrmbbz7181hb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "0h04xkaad04nmh0hgcjaq8i7929j9cl79l5k4azrsrmbbz7181hb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"uuid": "openweather-extension@jenslody.de", "name": "OpenWeather", "pname": "openweather", "description": "Weather extension to display weather information from https://openweathermap.org/ or https://darksky.net for almost all locations in the world.\nFor openweathermap.org, you can either use the extensions default-key or register at https://openweathermap.org/appid and set the appropriate switch in the preferences dialog to \"off\".\nFor Dark Sky you have to register at https://darksky.net/dev/register and get a personal API-key.\n\nSince version 29 this extensions uses coordinates to store the locations and makes the names editable to support multiple weather-providers!\nIf you update from versions prior to 29 to 29 or greater (with darksky.net - support) you have to recreate your locations.", "link": "https://extensions.gnome.org/extension/750/openweather/", "shell_version_map": {"38": {"version": "105", "sha256": "0xqz924fxy201b0d9l8xn4ykwbsvgazrbc85mbjcqk4laizyn82a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2plbnNsb2R5L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDEwNQp9"}, "40": {"version": "106", "sha256": "0xs7xd7rfy6lb4izmgsn9lwijbm93l3cpm6avy5jh19jlpq18nkv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldlYXRoZXIgZXh0ZW5zaW9uIHRvIGRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmcm9tIGh0dHBzOi8vb3BlbndlYXRoZXJtYXAub3JnLyBvciBodHRwczovL2Rhcmtza3kubmV0IGZvciBhbG1vc3QgYWxsIGxvY2F0aW9ucyBpbiB0aGUgd29ybGQuXG5Gb3Igb3BlbndlYXRoZXJtYXAub3JnLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGV4dGVuc2lvbnMgZGVmYXVsdC1rZXkgb3IgcmVnaXN0ZXIgYXQgaHR0cHM6Ly9vcGVud2VhdGhlcm1hcC5vcmcvYXBwaWQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgc3dpdGNoIGluIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgdG8gXCJvZmZcIi5cbkZvciBEYXJrIFNreSB5b3UgaGF2ZSB0byByZWdpc3RlciBhdCBodHRwczovL2Rhcmtza3kubmV0L2Rldi9yZWdpc3RlciBhbmQgZ2V0IGEgcGVyc29uYWwgQVBJLWtleS5cblxuU2luY2UgdmVyc2lvbiAyOSB0aGlzIGV4dGVuc2lvbnMgdXNlcyBjb29yZGluYXRlcyB0byBzdG9yZSB0aGUgbG9jYXRpb25zIGFuZCBtYWtlcyB0aGUgbmFtZXMgZWRpdGFibGUgdG8gc3VwcG9ydCBtdWx0aXBsZSB3ZWF0aGVyLXByb3ZpZGVycyFcbklmIHlvdSB1cGRhdGUgZnJvbSB2ZXJzaW9ucyBwcmlvciB0byAyOSB0byAyOSBvciBncmVhdGVyICh3aXRoIGRhcmtza3kubmV0IC0gc3VwcG9ydCkgeW91IGhhdmUgdG8gcmVjcmVhdGUgeW91ciBsb2NhdGlvbnMuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qZW5zbG9keS9nbm9tZS1zaGVsbC1leHRlbnNpb24tb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMDYKfQ=="}}}
+, {"uuid": "audio-output-switcher@anduchs", "name": "Audio Output Switcher", "pname": "audio-output-switcher", "description": "Adds a switch for choosing audio output to the system menu.", "link": "https://extensions.gnome.org/extension/751/audio-output-switcher/", "shell_version_map": {"38": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "hibernate-status@dromi", "name": "Hibernate Status Button", "pname": "hibernate-status-button", "description": "Adds a Hibernate button in Status menu. Using Alt modifier, you can also select Hybrid Sleep instead.", "link": "https://extensions.gnome.org/extension/755/hibernate-status-button/", "shell_version_map": {"38": {"version": "27", "sha256": "0yqzg2nz040vsv0ilwkjkza03qxns18gq4055gq0c3k051jy6d4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAibmFtZSI6ICJIaWJlcm5hdGUgU3RhdHVzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyZWxhbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWJlcm5hdGUtc3RhdHVzIiwKICAidXVpZCI6ICJoaWJlcm5hdGUtc3RhdHVzQGRyb21pIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "26", "sha256": "1avj5v9lyfs3hkl9msjvnbkp9nlxag64aw7s2rl5mpval27401k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAibmFtZSI6ICJIaWJlcm5hdGUgU3RhdHVzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
+, {"uuid": "minimizeall@scharlessantos.org", "name": "Minimize All", "pname": "minimize-all", "description": "Minimize all windows in current workspace", "link": "https://extensions.gnome.org/extension/760/minimize-all/", "shell_version_map": {"38": {"version": "18", "sha256": "1n2bdr9qdgg1m1a8b88vasaw01iavnp1q6hs8yifs3l7yqqwpqwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zY2hhcmxlc3NhbnRvcy9taW5pbWl6ZWFsbCIsCiAgInV1aWQiOiAibWluaW1pemVhbGxAc2NoYXJsZXNzYW50b3Mub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button which launches xkill.\nOn accidental click, right click to undo or click on the panel.\nCustomize position by tweaking line 48 of extension.js", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "16", "sha256": "1ms1sir1vq97iq1s2p9fisxcg0jw9nn0zadvr5fcjqf2vmkcwpyp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDggb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "16", "sha256": "1ms1sir1vq97iq1s2p9fisxcg0jw9nn0zadvr5fcjqf2vmkcwpyp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDggb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
+, {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"40": {"version": "14", "sha256": "1m0mj5p41fbbgwkyhc2csbk4hh8yhq6q4cm90ad74w4hb4fnm847", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "Clipboard Manager extension for Gnome-Shell - Adds a clipboard indicator to the top panel, and caches clipboard history.", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {"38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "40": {"version": "38", "sha256": "1dw7x4x2assyqgzz9hcclkrpxpd1xkpvf31ll76573rg98n7h5kl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9UdWRtb3R1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGlwYm9hcmQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJjbGlwYm9hcmQtaW5kaWNhdG9yQHR1ZG1vdHUuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}}}
+, {"uuid": "hide-dash@xenatt.github.com", "name": "Hide Dash X", "pname": "hide-dash", "description": "Hide the dash from the activities overview.", "link": "https://extensions.gnome.org/extension/805/hide-dash/", "shell_version_map": {"38": {"version": "10", "sha256": "059cy18awzv9qyn803zjyxiznacnf6pai8px2mb9mrbyf98153xz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGRhc2ggZnJvbSB0aGUgYWN0aXZpdGllcyBvdmVydmlldy4iLAogICJuYW1lIjogIkhpZGUgRGFzaCBYIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphY2JhcnRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VkZW5ob2Zlci9NaW5pbWFsaXNtLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJoaWRlLWRhc2hAeGVuYXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "keyman@dpoetzsch.github.com", "name": "KeyMan", "pname": "keyman", "description": "Access passwords from the gnome keyring in a convenient way:\nSimply search for your password and copy it to clipboad by clicking it. After a certain amount of time it will be removed automatically (default is 5 seconds). As this only works if the keyrings are unlocked, this extension also provides easy access to lock/unlock keyrings.", "link": "https://extensions.gnome.org/extension/819/keyman/", "shell_version_map": {"40": {"version": "19", "sha256": "03ykk4jaha0cnl3xz8hdnksxwyw7l23d5fbf65kclwcvvg93mj9f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBwYXNzd29yZHMgZnJvbSB0aGUgZ25vbWUga2V5cmluZyBpbiBhIGNvbnZlbmllbnQgd2F5OlxuU2ltcGx5IHNlYXJjaCBmb3IgeW91ciBwYXNzd29yZCBhbmQgY29weSBpdCB0byBjbGlwYm9hZCBieSBjbGlja2luZyBpdC4gQWZ0ZXIgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIGl0IHdpbGwgYmUgcmVtb3ZlZCBhdXRvbWF0aWNhbGx5IChkZWZhdWx0IGlzIDUgc2Vjb25kcykuIEFzIHRoaXMgb25seSB3b3JrcyBpZiB0aGUga2V5cmluZ3MgYXJlIHVubG9ja2VkLCB0aGlzIGV4dGVuc2lvbiBhbHNvIHByb3ZpZGVzIGVhc3kgYWNjZXNzIHRvIGxvY2svdW5sb2NrIGtleXJpbmdzLiIsCiAgIm5hbWUiOiAiS2V5TWFuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrZXltYW5AcG9laGUuZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtleW1hbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kcG9ldHpzY2gva2V5bWFuIiwKICAidXVpZCI6ICJrZXltYW5AZHBvZXR6c2NoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
+, {"uuid": "SwitchFocusType@romano.rgtti.com", "name": "Switch Focus Type", "pname": "switch-focus-type", "description": "Toggle between focus-follow-mouse and click-to-focus mode", "link": "https://extensions.gnome.org/extension/827/switch-focus-type/", "shell_version_map": {"38": {"version": "5", "sha256": "08vdwz4vdjdngaxizygkkgs693hnihy3wwnzw49pkdn6m006yr72", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JtYW5vL2dzZS1zd2l0Y2gtZm9jdXMtbW9kZSIsCiAgInV1aWQiOiAiU3dpdGNoRm9jdXNUeXBlQHJvbWFuby5yZ3R0aS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "radio@hslbck.gmail.com", "name": "Internet Radio", "pname": "internet-radio", "description": "Listen to an Internet Radio Stream", "link": "https://extensions.gnome.org/extension/836/internet-radio/", "shell_version_map": {"38": {"version": "14", "sha256": "013wbf3npz7f438i39cd41s6whs4lgaigv4i1zais994n9ybw5y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "15", "sha256": "0l5wi3f78shh2p23mjpjazygbw8wxnmzmwmjs0ng317ya2hnzkh4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oc2xiY2svZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJhZGlvIiwKICAidXVpZCI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
+, {"uuid": "freon@UshakovVasilii_Github.yahoo.com", "name": "Freon", "pname": "freon", "description": "Shows CPU temperature, disk temperature, video card temperature (NVIDIA/Catalyst/Bumblebee&NVIDIA), voltage and fan RPM (forked from xtranophilist/gnome-shell-extension-sensors)", "link": "https://extensions.gnome.org/extension/841/freon/", "shell_version_map": {"38": {"version": "43", "sha256": "06jj01flj6iyx93aqz8ipzijnrammp6xqpgqwxfh0pf2clr6nwrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}, "40": {"version": "44", "sha256": "0w8knrx85wd9yfjrki6vvsjwljkdcnl5677aj05f7nhg26ipsqqz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0NAp9"}}}
+, {"uuid": "shell-volume-mixer@derhofbauer.at", "name": "Volume Mixer", "pname": "volume-mixer", "description": "Applet allowing separate configuration of PulseAudio mixers.\n\nShell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.\n\nMiddle mouse click on a slider mutes the selected stream.\n\nPlease file bugs and feature requests on the GitHub page.", "link": "https://extensions.gnome.org/extension/858/volume-mixer/", "shell_version_map": {"38": {"version": "39", "sha256": "1cnyapjvqri5k5m4nbcmbcx97b4akwv32h7ddav2ipahqh1lqqzj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIlZvbHVtZSBNaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZWhvL2dub21lLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgInV1aWQiOiAic2hlbGwtdm9sdW1lLW1peGVyQGRlcmhvZmJhdWVyLmF0IiwKICAidmVyc2lvbiI6IDM5Cn0="}}}
+, {"uuid": "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com", "name": "Screenshot Window Sizer", "pname": "screenshot-window-sizer", "description": "Resize windows for GNOME Software screenshots", "link": "https://extensions.gnome.org/extension/881/screenshot-window-sizer/", "shell_version_map": {"38": {"version": "22", "sha256": "18b8f2agv397pdyaicx2qirqfnm0swbnspw43kb2hr0jn8lkzz1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "24", "sha256": "0igv1lnnbdjyl2l3sbx32i10w2wk18mms3mvnjr7q737m8aly77p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
+, {"uuid": "mailnag@pulb.github.com", "name": "Mailnag", "pname": "mailnag", "description": "Mail indicator (GMail, IMAP, POP) for GNOME.\n\nPlease note that this extension requires the mailnag daemon.\nInstall it from your distros package repositories or get it here:\nhttps://github.com/pulb/mailnag\n\nPlease also note that this version of the extension does not support avatars (as shown in the screenshot).\nIf you like to have avatar support install this extension from your distros package repositories or get a package from here:\nhttps://github.com/pulb/mailnag-gnome-shell\n\nIMPORTANT:\nI do not get notifications for user comments. Please always report bugs here:\nhttps://github.com/pulb/mailnag-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/886/mailnag/", "shell_version_map": {"38": {"version": "20", "sha256": "15n816y34qlc7va72q75ngzw1my3n5j7xhg9a6dc0g8q4dd0g2r9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWFpbG5hZ0BwdWxiLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "21", "sha256": "060lmc6jacjv1p4a6n7c3l0kmfskq012pgrf2gar0kf49lqrp665", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm1haWxuYWdAcHVsYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
+, {"uuid": "mmod-panel@mmogp.com", "name": "MMOD Panel", "pname": "mmod-panel", "description": "Upgrades the Topbar in Gnome3, creating a customizable panel and providing options for fine-tuning your Desktop Experience.\n\nFeatures include:\n▸ Set comfort levels to provide theme support and fine-tune the overall look and feel of the panel.\n▸ Set the location/position of the panel (bottom by default).\n▸ Add a button to the panel in place of the activities link, using an icon of your preference.\n▸ Auto-hide the panel when not active/in-focus (makes use of pressure/gesture for showing the panel).\n▸ Display and manage your favorites/running apps directly on the panel.\n▸ Move the date menu to the aggregate/tray area.\n▸ Access and manage your extension preferences directly from the aggregate menu.\n▸ Customize behavior of the overview and panel(hot-corners/animations/effects) to suit your preferences.\n▸ More to come soon!\n\nThis project is loosely based on the Panel Settings extension:\nhttps://github.com/eddiefullmetal/gnome-shell-extensions/tree/master/panelSettings%40eddiefullmetal.gr\n\nSadly, Panel Settings has not seen any maintenance in years, though this is why I decided to create MMOD Panel.\n\nI also took inspiration from the following Gnome extensions: System-Monitor, Taskbar, and DashToDock.\n\nFor those of you who are wondering, the theme used in the screen shot is the Zukitwo-Dark-Shell Shell Theme; \neverything else is default Gnome on Debian Buster. However, the author of the aforementioned shell theme has \nchanged the name for various reasons to Ciliora-Prima-Shell - which can be found here:\n\n  http://gnome-look.org/content/show.php?content=165096\n\nVersion 10 (1.2.1-10) for Gnome-Shell: 3.10, 3.12, 3.12.2, 3.14, 3.14.4, 3.16, 3.16.2, 3.18, 3.20, 3.22, 3.24, 3.26, 3.26.2, 3.28, 3.30, 3.32, 3.34, 3.35, 3.35.91, 3.36, 3.36.3, 3.36.4, 3.36.6, 3.38, 3.38.2\nRik <rik@mmod.co>\n\nGerman Translation(s) for MMOD-Panel courtesy of Jonius Zeidler <jonatan_zeidler@gmx.de>\n\nSource Repository: https://gitlab.com/mmod/mmod-panel/\n", "link": "https://extensions.gnome.org/extension/898/mmod-panel/", "shell_version_map": {"38": {"version": "10", "sha256": "00c52ddg039hd0r6qkq8hmhcl6x6s8lbndn7g53cscjwd0yqxk7j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cblZlcnNpb24gMTAgKDEuMi4xLTEwKSBmb3IgR25vbWUtU2hlbGw6IDMuMTAsIDMuMTIsIDMuMTIuMiwgMy4xNCwgMy4xNC40LCAzLjE2LCAzLjE2LjIsIDMuMTgsIDMuMjAsIDMuMjIsIDMuMjQsIDMuMjYsIDMuMjYuMiwgMy4yOCwgMy4zMCwgMy4zMiwgMy4zNCwgMy4zNSwgMy4zNS45MSwgMy4zNiwgMy4zNi4zLCAzLjM2LjQsIDMuMzYuNiwgMy4zOCwgMy4zOC4yXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xMi4yIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE0LjQiLAogICAgIjMuMTYuMiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4yNi4yIiwKICAgICIzLjMyIiwKICAgICIzLjI4LjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuMzYuMyIsCiAgICAiMy4zNi40IiwKICAgICIzLjM1LjkxIiwKICAgICIzLjM2LjYiLAogICAgIjMuMzguMiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21tb2QvbW1vZC1wYW5lbC8iLAogICJ1dWlkIjogIm1tb2QtcGFuZWxAbW1vZ3AuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "disconnect-wifi@kgshank.net", "name": "Disconnect Wifi", "pname": "disconnect-wifi", "description": "Adds a Disconnect option for Wifi in status menu, when a network is connected. Shows a Reconnect option, after network is disconnected.", "link": "https://extensions.gnome.org/extension/904/disconnect-wifi/", "shell_version_map": {"38": {"version": "28", "sha256": "0j5f3ckx43zqdhr5iby36rhllgd9pvl8sshpzwfwdwff220yablr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtZGlzY29ubmVjdC13aWZpIiwKICAidXVpZCI6ICJkaXNjb25uZWN0LXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "40": {"version": "28", "sha256": "0j5f3ckx43zqdhr5iby36rhllgd9pvl8sshpzwfwdwff220yablr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBEaXNjb25uZWN0IG9wdGlvbiBmb3IgV2lmaSBpbiBzdGF0dXMgbWVudSwgd2hlbiBhIG5ldHdvcmsgaXMgY29ubmVjdGVkLiBTaG93cyBhIFJlY29ubmVjdCBvcHRpb24sIGFmdGVyIG5ldHdvcmsgaXMgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiRGlzY29ubmVjdCBXaWZpIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkdvcEkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtZGlzY29ubmVjdC13aWZpIiwKICAidXVpZCI6ICJkaXNjb25uZWN0LXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
+, {"uuid": "refresh-wifi@kgshank.net", "name": "Refresh Wifi Connections", "pname": "refresh-wifi-connections", "description": "This extension adds a refresh button to the Wi-Fi connection selection dialog to manually request for a network scan.\n\nNOTE: In GNOME Shell 3.32 and above, the available network list is automatically updated every 15 seconds, so most people probably don't need this extension anymore.", "link": "https://extensions.gnome.org/extension/905/refresh-wifi-connections/", "shell_version_map": {"38": {"version": "14", "sha256": "18jszbk9sszyjvjdh28s1ynj8s5f8y5xqh4mqy1msnbg68m228bc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSByZWZyZXNoIGJ1dHRvbiB0byB0aGUgV2ktRmkgY29ubmVjdGlvbiBzZWxlY3Rpb24gZGlhbG9nIHRvIG1hbnVhbGx5IHJlcXVlc3QgZm9yIGEgbmV0d29yayBzY2FuLlxuXG5OT1RFOiBJbiBHTk9NRSBTaGVsbCAzLjMyIGFuZCBhYm92ZSwgdGhlIGF2YWlsYWJsZSBuZXR3b3JrIGxpc3QgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIGV2ZXJ5IDE1IHNlY29uZHMsIHNvIG1vc3QgcGVvcGxlIHByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBleHRlbnNpb24gYW55bW9yZS4iLAogICJuYW1lIjogIlJlZnJlc2ggV2lmaSBDb25uZWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJHb3BJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2dzaGFuay9nc2UtcmVmcmVzaC13aWZpIiwKICAidXVpZCI6ICJyZWZyZXNoLXdpZmlAa2dzaGFuay5uZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "sound-output-device-chooser@kgshank.net", "name": "Sound Input & Output Device Chooser", "pname": "sound-output-device-chooser", "description": "Shows a list of sound output and input devices (similar to gnome sound settings) in the status menu below the volume slider. Various active ports like HDMI , Speakers etc. of the same device are also displayed for selection. V20+ needs python as dependency. If you want to continue with the old method without Python, use options to switch off New Port identification. But it works with only English", "link": "https://extensions.gnome.org/extension/906/sound-output-device-chooser/", "shell_version_map": {"38": {"version": "38", "sha256": "1dxn1cag03y9kak9pipniwazqai3mxizmhjm5gp86ifgaaaps5sc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAzOAp9"}, "40": {"version": "38", "sha256": "1dxn1cag03y9kak9pipniwazqai3mxizmhjm5gp86ifgaaaps5sc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgbGlzdCBvZiBzb3VuZCBvdXRwdXQgYW5kIGlucHV0IGRldmljZXMgKHNpbWlsYXIgdG8gZ25vbWUgc291bmQgc2V0dGluZ3MpIGluIHRoZSBzdGF0dXMgbWVudSBiZWxvdyB0aGUgdm9sdW1lIHNsaWRlci4gVmFyaW91cyBhY3RpdmUgcG9ydHMgbGlrZSBIRE1JICwgU3BlYWtlcnMgZXRjLiBvZiB0aGUgc2FtZSBkZXZpY2UgYXJlIGFsc28gZGlzcGxheWVkIGZvciBzZWxlY3Rpb24uIFYyMCsgbmVlZHMgcHl0aG9uIGFzIGRlcGVuZGVuY3kuIElmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHdpdGggdGhlIG9sZCBtZXRob2Qgd2l0aG91dCBQeXRob24sIHVzZSBvcHRpb25zIHRvIHN3aXRjaCBvZmYgTmV3IFBvcnQgaWRlbnRpZmljYXRpb24uIEJ1dCBpdCB3b3JrcyB3aXRoIG9ubHkgRW5nbGlzaCIsCiAgIm5hbWUiOiAiU291bmQgSW5wdXQgJiBPdXRwdXQgRGV2aWNlIENob29zZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiR29wSSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rZ3NoYW5rL2dzZS1zb3VuZC1vdXRwdXQtZGV2aWNlLWNob29zZXIiLAogICJ1dWlkIjogInNvdW5kLW91dHB1dC1kZXZpY2UtY2hvb3NlckBrZ3NoYW5rLm5ldCIsCiAgInZlcnNpb24iOiAzOAp9"}}}
+, {"uuid": "multi-monitors-add-on@spin83", "name": "Multi Monitors Add-On", "pname": "multi-monitors-add-on", "description": "Add multiple monitors overview and panel for gnome-shell.", "link": "https://extensions.gnome.org/extension/921/multi-monitors-add-on/", "shell_version_map": {"38": {"version": "23", "sha256": "1snj6xhl7qf3lmjvrn7sbgkmb3rpq4b4q88yfdlx5vrzn6sw5bzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBtdWx0aXBsZSBtb25pdG9ycyBvdmVydmlldyBhbmQgcGFuZWwgZm9yIGdub21lLXNoZWxsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm11bHRpLW1vbml0b3JzLWFkZC1vbiIsCiAgIm5hbWUiOiAiTXVsdGkgTW9uaXRvcnMgQWRkLU9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bHRpLW1vbml0b3JzLWFkZC1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NwaW44My9tdWx0aS1tb25pdG9ycy1hZGQtb24uZ2l0IiwKICAidXVpZCI6ICJtdWx0aS1tb25pdG9ycy1hZGQtb25Ac3BpbjgzIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "ping_indicator@trifonovkv.gmail.com", "name": "Ping Indicator", "pname": "ping-indicator", "description": "Display ping time", "link": "https://extensions.gnome.org/extension/923/ping-indicator/", "shell_version_map": {"38": {"version": "24", "sha256": "0arxcaxpybc1as2d9dqmmswjnjj7p11rvss4s84x6kz8i4xbhjy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcGluZyB0aW1lIiwKICAibmFtZSI6ICJQaW5nIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9waW5nX2luZGljYXRvciIsCiAgInV1aWQiOiAicGluZ19pbmRpY2F0b3JAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
+, {"uuid": "transcode-appsearch@k.kubusha@gmail.com", "name": "Transcode App Search", "pname": "transcodeappsearch", "description": "Searching apps both direct and transcoded name (English, Russian, Ukrainian langs)", "link": "https://extensions.gnome.org/extension/928/transcodeappsearch/", "shell_version_map": {"38": {"version": "8", "sha256": "1v6yzp4s0a0i5l9f4la1l9yr83pcpwmrpb5970x48i75mlmlnmjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0YXR5YW4vZ25vbWUtZXh0ZW5zaW9uLXRyYW5zY29kZS1zZWFyY2hhcHAiLAogICJ1dWlkIjogInRyYW5zY29kZS1hcHBzZWFyY2hAay5rdWJ1c2hhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "1v6yzp4s0a0i5l9f4la1l9yr83pcpwmrpb5970x48i75mlmlnmjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0YXR5YW4vZ25vbWUtZXh0ZW5zaW9uLXRyYW5zY29kZS1zZWFyY2hhcHAiLAogICJ1dWlkIjogInRyYW5zY29kZS1hcHBzZWFyY2hAay5rdWJ1c2hhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "synaptic-button@fthx", "name": "Synaptic Button", "pname": "synaptic-button", "description": "Button that directly starts Synaptic package manager.\n\n For snap management without Snap Store, consider Snap Manager extension.", "link": "https://extensions.gnome.org/extension/938/synaptic-button/", "shell_version_map": {"38": {"version": "4", "sha256": "0wdi35qz5rxs4fvcxlrvlyslrspsgfkryvh0na9vakbvhpmv7skv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBTeW5hcHRpYyBwYWNrYWdlIG1hbmFnZXIuXG5cbiBGb3Igc25hcCBtYW5hZ2VtZW50IHdpdGhvdXQgU25hcCBTdG9yZSwgY29uc2lkZXIgU25hcCBNYW5hZ2VyIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIlN5bmFwdGljIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc3luYXB0aWMtYnV0dG9uIiwKICAidXVpZCI6ICJzeW5hcHRpYy1idXR0b25AZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage Intel_pstate CPU Frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "23", "sha256": "1iv23vr8zkarclll41h0h8hx7dhh3q84lsmpn8igib7x7d65mslx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBJbnRlbF9wc3RhdGUgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW4zMTgyMS9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "world_clock_lite@ailin.nemui", "name": "Panel World Clock (Lite)", "pname": "panel-world-clock-lite", "description": "A world clock for the panel\n\nInstall gnome-clocks to get started!\nHint: Eiðar has the same time as UTC\n\nGnome ≤3.14? https://extensions.gnome.org/extension/697/panel-world-clock/", "link": "https://extensions.gnome.org/extension/946/panel-world-clock-lite/", "shell_version_map": {"38": {"version": "11", "sha256": "0sg76mlvyy0m6yqv6qrmyizhjd54qp8knra3z0sna1xxg0i51d42", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "12", "sha256": "1z5zzgxsagfb1w543idg81gwynzlnjavfv4s8phj9h305z04lhsn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid29ybGRfY2xvY2tfbGl0ZUBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "dim-on-battery@nailfarmer.nailfarmer.com", "name": "Dim On Battery Power", "pname": "dim-on-battery-power", "description": "Automatically dims the screen when the machine is running on battery power.", "link": "https://extensions.gnome.org/extension/947/dim-on-battery-power/", "shell_version_map": {"38": {"version": "25", "sha256": "0aqcw2lbcya5x9xx2y8srfjjar9jww9hzsxqx44h65jdw1zdl1vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbmFpbGZhcm1lci9nbm9tZS1zaGVsbC1kaW0tb24tYmF0dGVyeS1leHRlbnNpb24iLAogICJ1dWlkIjogImRpbS1vbi1iYXR0ZXJ5QG5haWxmYXJtZXIubmFpbGZhcm1lci5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "25", "sha256": "0aqcw2lbcya5x9xx2y8srfjjar9jww9hzsxqx44h65jdw1zdl1vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbmFpbGZhcm1lci9nbm9tZS1zaGVsbC1kaW0tb24tYmF0dGVyeS1leHRlbnNpb24iLAogICJ1dWlkIjogImRpbS1vbi1iYXR0ZXJ5QG5haWxmYXJtZXIubmFpbGZhcm1lci5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
+, {"uuid": "bottompanel@tmoer93", "name": "BottomPanel", "pname": "bottompanel", "description": "Moves the GNOME panel to the bottom of the screen\n\nSource here: https://github.com/Thoma5/gnome-shell-extension-bottompanel", "link": "https://extensions.gnome.org/extension/949/bottompanel/", "shell_version_map": {"38": {"version": "11", "sha256": "0r4z1pww6w8q0f7gzsmc363hd2178r40ifsppyigj67mwwik3mkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBHTk9NRSBwYW5lbCB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW5cblxuU291cmNlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UaG9tYTUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJvdHRvbXBhbmVsIiwKICAibmFtZSI6ICJCb3R0b21QYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJib3R0b21wYW5lbEB0bW9lcjkzIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "dejadup-backup@fthx", "name": "Déjà Dup Backup Button", "pname": "deja-dup-backup-button", "description": "Button that directly starts Déjà Dup backup, following Déjà Dup backup settings.\n\n It simply runs 'deja-dup --backup' and shows Déjà Dup window during backup.", "link": "https://extensions.gnome.org/extension/955/deja-dup-backup-button/", "shell_version_map": {"38": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "switcher@landau.fi", "name": "Switcher", "pname": "switcher", "description": "Switch windows or launch applications quickly by typing\n\nUse the configured global hotkey (Super+w by default) to open a list of current windows. Type a part of the name or title of the application window you want to activate and hit enter or click on the item you wish to activate. You can use the arrow keys to navigate among the filtered selection and type several space separated search terms to filter further. If your search matches launchable apps, those are shown in the list too. Use Esc or click anywhere outside the switcher to cancel.\n\nYou can customize the look and feel and functionality in the preferences.", "link": "https://extensions.gnome.org/extension/973/switcher/", "shell_version_map": {"38": {"version": "32", "sha256": "188bfj4b0kslja757fc70xhjqj5blk2jcdjfd2pvm6g2cxslfjg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "33", "sha256": "1dk91bvmjqr4hrsldb6ikvrd6ihk5flbg8wfhfnmq4c18kynsv9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDMzCn0="}}}
+, {"uuid": "keyboard_modifiers_status@sneetsher", "name": "Keyboard Modifiers Status", "pname": "keyboard-modifiers-status", "description": "Shows the keyboard modifiers status. It's much useful when accessibility feature - sticky keys is active.", "link": "https://extensions.gnome.org/extension/975/keyboard-modifiers-status/", "shell_version_map": {"38": {"version": "10", "sha256": "18xaalz41miyyqb0mp4lzdz48441xj5rwc8myvnk1n8jmmm7l1k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBrZXlib2FyZCBtb2RpZmllcnMgc3RhdHVzLiBJdCdzIG11Y2ggdXNlZnVsIHdoZW4gYWNjZXNzaWJpbGl0eSBmZWF0dXJlIC0gc3RpY2t5IGtleXMgaXMgYWN0aXZlLiIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgTW9kaWZpZXJzIFN0YXR1cyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJzbmVldHNoZXJAbG9jYWxob3N0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "harddiskled@bijidroid.gmail.com", "name": "Harddisk LED", "pname": "harddisk-led", "description": "Show harddisk activity (IO speed read/write and LED). Click to change led size", "link": "https://extensions.gnome.org/extension/988/harddisk-led/", "shell_version_map": {"38": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
+, {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {"40": {"version": "29", "sha256": "06c9mjvld326cwjqja3gb7nmi010xf3sglgnbkf48l7av96mfd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pheXN0cmljdG9yL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmciLAogICJ1dWlkIjogInN5bmN0aGluZ2ljb25AamF5LnN0cmljdEBwb3N0ZW8uZGUiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
+, {"uuid": "window-search-provider@quelltexter.org", "name": "Window Search Provider", "pname": "window-search-provider", "description": "Provide active windows as search results in overview", "link": "https://extensions.gnome.org/extension/1001/window-search-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "030s38akm3fw7nq9v4wfgzhw716b51l2z3szns0gcwc0gx5zpfjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYWN0aXZlIHdpbmRvd3MgYXMgc2VhcmNoIHJlc3VsdHMgaW4gb3ZlcnZpZXciLAogICJuYW1lIjogIldpbmRvdyBTZWFyY2ggUHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rbG9yZW56L2dub21lLXNoZWxsLXdpbmRvdy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogIndpbmRvdy1zZWFyY2gtcHJvdmlkZXJAcXVlbGx0ZXh0ZXIub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "windowIsReady_Remover@nunofarruca@gmail.com", "name": "Window Is Ready - Notification Remover", "pname": "window-is-ready-notification-remover", "description": "Removes window is ready Notification", "link": "https://extensions.gnome.org/extension/1007/window-is-ready-notification-remover/", "shell_version_map": {"38": {"version": "12", "sha256": "1xxaqhj1xv23k5d4r4kxybnf2jj23nwbva9nk1nrs5abdl05dpc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVub2ZhcnJ1Y2EvV2luZG93SXNSZWFkeV9SZW1vdmVyIiwKICAidXVpZCI6ICJ3aW5kb3dJc1JlYWR5X1JlbW92ZXJAbnVub2ZhcnJ1Y2FAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "1xxaqhj1xv23k5d4r4kxybnf2jj23nwbva9nk1nrs5abdl05dpc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVub2ZhcnJ1Y2EvV2luZG93SXNSZWFkeV9SZW1vdmVyIiwKICAidXVpZCI6ICJ3aW5kb3dJc1JlYWR5X1JlbW92ZXJAbnVub2ZhcnJ1Y2FAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n  Can support AUR or other distros by changing command used to check for and apply updates.", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {"38": {"version": "39", "sha256": "15s0cs41h01kb8dx231ww06rxalmz7cr173z7pm9sfkvs2106dhl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "40": {"version": "42", "sha256": "04vz1wdds6172vrg28rmkj47z6id4a3ynr6cfnvkyjmzi8xglgji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFwaGFlbFJvY2hldC9hcmNoLXVwZGF0ZSIsCiAgInV1aWQiOiAiYXJjaC11cGRhdGVAUmFwaGFlbFJvY2hldCIsCiAgInZlcnNpb24iOiA0Mgp9"}}}
+, {"uuid": "dynamic-panel-transparency@rockon999.github.io", "name": "Dynamic Panel Transparency", "pname": "dynamic-panel-transparency", "description": "Miss dynamic panel transparency in 3.32 and up? Try the original dynamic panel with much more customization! This extension will fade your top panel to nothingness when there are no maximized windows present! Never again will the panel be abruptly darkened.\n\nMay be incompatible with some extensions that make extensive changes to the panel.\n\nIf your theme isn't working correctly with this extension enable 'Remove Excessive Panel Styling' in the Background section of preferences. This particularly impacts the default *Ubuntu* theme!", "link": "https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/", "shell_version_map": {"38": {"version": "34", "sha256": "10w5kvmspy4rp4jnwx0rj2crbdyi1lxv81vhi8zx490fhwgmlkvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V3bHNoL2R5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5LyIsCiAgInV1aWQiOiAiZHluYW1pYy1wYW5lbC10cmFuc3BhcmVuY3lAcm9ja29uOTk5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzNAp9"}, "40": {"version": "35", "sha256": "1znc564xd7n4k2klfc0kkip6hmadqdsa50p0sq0717h407m9p0vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ld2xzaC9keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeS8iLAogICJ1dWlkIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5QHJvY2tvbjk5OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
+, {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "10", "sha256": "09835gdpq5ssx14dar2m0hgi97a2k0hias9ffb3vpwyqw2d5jm30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "09835gdpq5ssx14dar2m0hgi97a2k0hias9ffb3vpwyqw2d5jm30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJpY2luZ2EtY2hlY2tlckBzb3N1bHNraS5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "taskwhisperer-extension@infinicode.de", "name": "TaskWhisperer", "pname": "taskwhisperer", "description": "Taskwhisperer is a extension for TaskWarrior Application https://taskwarrior.org. It is to display upcoming tasks and task details as well as to create and modify them.\n", "link": "https://extensions.gnome.org/extension/1039/taskwhisperer/", "shell_version_map": {"38": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n        - Unsplash (https://unsplash.com/)\n        - Wallhaven (https://alpha.wallhaven.cc/)\n        - Reddit (https://reddit.com)\n        - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "0gwcqd5wzjnp3r4mpcbacbqk9j9v4pxh2wlcl5ssinj8z4pxm5qj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "25", "sha256": "1nqa901ilmdr9wxxs11mbcb96qwzwz6ckaimx8y0vpnrdzackmx4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNS4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
+, {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "14", "sha256": "0irnb19sl893427ag9722w2dj55j7p4f2yy61bwqdbp4fpi8zjww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20venRlZm4vZ3NlLWhhZ3VpY2hpLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ3NlLWhhZ3VpY2hpLWluZGljYXRvckB6dGVmbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "40": {"version": "14", "sha256": "0irnb19sl893427ag9722w2dj55j7p4f2yy61bwqdbp4fpi8zjww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20venRlZm4vZ3NlLWhhZ3VpY2hpLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ3NlLWhhZ3VpY2hpLWluZGljYXRvckB6dGVmbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
+, {"uuid": "On_Screen_Keyboard_Button@bradan.eu", "name": "On Screen Keyboard Button", "pname": "on-screen-keyboard-button", "description": "Shows or hides the OSK via top bar button. It works with X, not with wayland. Wayland has it's own technique: swipe the keyboard up from the bottom display edge.\n\nSource code: https://github.com/Bradan/Gnome-On-Screen-Keyboard-Button", "link": "https://extensions.gnome.org/extension/1061/on-screen-keyboard-button/", "shell_version_map": {"38": {"version": "5", "sha256": "0z3jcv5gzv1pwfla9ghp5kjljc5n80fcab0d2c2i2pw7y7kvpabr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG9yIGhpZGVzIHRoZSBPU0sgdmlhIHRvcCBiYXIgYnV0dG9uLiBJdCB3b3JrcyB3aXRoIFgsIG5vdCB3aXRoIHdheWxhbmQuIFdheWxhbmQgaGFzIGl0J3Mgb3duIHRlY2huaXF1ZTogc3dpcGUgdGhlIGtleWJvYXJkIHVwIGZyb20gdGhlIGJvdHRvbSBkaXNwbGF5IGVkZ2UuXG5cblNvdXJjZSBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vQnJhZGFuL0dub21lLU9uLVNjcmVlbi1LZXlib2FyZC1CdXR0b24iLAogICJuYW1lIjogIk9uIFNjcmVlbiBLZXlib2FyZCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiT25fU2NyZWVuX0tleWJvYXJkX0J1dHRvbkBicmFkYW4uZXUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "21", "sha256": "1kp4xqsglmj7likmln1x8nz2vmlz8m8vh13chnsn1rsn5a16s7v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "21", "sha256": "1kp4xqsglmj7likmln1x8nz2vmlz8m8vh13chnsn1rsn5a16s7v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
+, {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "20", "sha256": "11ljyy9glhlc2mrvmfz64cxngxamzri09wz8gkgs8dx5zwk31si8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMm52MnUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5bmN0aGluZy1pbmRpY2F0b3IiLAogICJ1dWlkIjogInN5bmN0aGluZ0Bnbm9tZS4ybnYydS5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "20", "sha256": "11ljyy9glhlc2mrvmfz64cxngxamzri09wz8gkgs8dx5zwk31si8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMm52MnUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5bmN0aGluZy1pbmRpY2F0b3IiLAogICJ1dWlkIjogInN5bmN0aGluZ0Bnbm9tZS4ybnYydS5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "applications-overview-tooltip@RaphaelRochet", "name": "Applications Overview Tooltip", "pname": "applications-overview-tooltip", "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.", "link": "https://extensions.gnome.org/extension/1071/applications-overview-tooltip/", "shell_version_map": {"38": {"version": "11", "sha256": "0alvg0l46hls3jz3a5ic21fgbjbg0kv0nn0pkknzsgjfw5mmwz69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "12", "sha256": "0m0wsgpx390qkx6csicsfdp5v9pa15xpyk57ym7hbr8947h77494", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFwaGFlbFJvY2hldC9hcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgInV1aWQiOiAiYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXBAUmFwaGFlbFJvY2hldCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "35", "sha256": "0arb73gv1y5krlqwpqwzynpd2ki8wlv47xx0zpjlal066pyyjgfw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VraS90d2l0Y2hsaXZlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiVHdpdGNoTGl2ZV9QYW5lbEBleHRlbnNpb25zLm1hd2VraS5kZSIsCiAgInZlcnNpb24iOiAzNQp9"}}}
+, {"uuid": "cpufreq@konkor", "name": "cpufreq", "pname": "cpufreq", "description": "System Monitor and Power Manager.\n\nThis is a lightweight system monitor and power management tool. It needs root permission to able changing governors.\n\nFeatures:\n⚫ Compatible with many hardware architectures;\n⚫ CPU Frequency monitoring;\n⚫ CPU Governor management;\n⚫ CPU Frequency speed limits;\n⚫ CPU Boost supporting;\n⚫ CPU Core Power on/off;\n⚫ Saving/Restoring settings...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1082/cpufreq/", "shell_version_map": {"38": {"version": "47", "sha256": "08snf0yqp85i4fnmspg7hg8m0xq16pjxh26x8yp5x7zk42hf462s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tvbmtvci9jcHVmcmVxIiwKICAidXVpZCI6ICJjcHVmcmVxQGtvbmtvciIsCiAgInZlcnNpb24iOiA0Nwp9"}, "40": {"version": "47", "sha256": "08snf0yqp85i4fnmspg7hg8m0xq16pjxh26x8yp5x7zk42hf462s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tvbmtvci9jcHVmcmVxIiwKICAidXVpZCI6ICJjcHVmcmVxQGtvbmtvciIsCiAgInZlcnNpb24iOiA0Nwp9"}}}
+, {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up &amp; down speed in bits per second\n4. Up &amp; down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "21", "sha256": "0s6m6k06sd9yagrxf5ny7qw613800qiy7yp60fnxb41vdls1s0mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJmFtcDsgZG93biBzcGVlZCBpbiBiaXRzIHBlciBzZWNvbmRcbjQuIFVwICZhbXA7IGRvd24gc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuNS4gVG90YWwgb2YgZG93bmxvYWRlZCBpbiBCeXRlcyAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcilcblxuTWlkZGxlIGNsaWNrIHRvIGNoYW5nZSBmb250IHNpemUiLAogICJuYW1lIjogIlNpbXBsZSBuZXQgc3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIsCiAgICAiNDUiLAogICAgIjQ2IiwKICAgICI0NyIsCiAgICAiNDgiLAogICAgIjQ5IiwKICAgICI1MCIsCiAgICAiNTEiLAogICAgIjUyIiwKICAgICI1MyIsCiAgICAiNTQiLAogICAgIjU1IiwKICAgICI1NiIsCiAgICAiNTciLAogICAgIjU4IiwKICAgICI1OSIsCiAgICAiNjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMQp9"}, "40": {"version": "21", "sha256": "0s6m6k06sd9yagrxf5ny7qw613800qiy7yp60fnxb41vdls1s0mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJmFtcDsgZG93biBzcGVlZCBpbiBiaXRzIHBlciBzZWNvbmRcbjQuIFVwICZhbXA7IGRvd24gc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuNS4gVG90YWwgb2YgZG93bmxvYWRlZCBpbiBCeXRlcyAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcilcblxuTWlkZGxlIGNsaWNrIHRvIGNoYW5nZSBmb250IHNpemUiLAogICJuYW1lIjogIlNpbXBsZSBuZXQgc3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIsCiAgICAiNDUiLAogICAgIjQ2IiwKICAgICI0NyIsCiAgICAiNDgiLAogICAgIjQ5IiwKICAgICI1MCIsCiAgICAiNTEiLAogICAgIjUyIiwKICAgICI1MyIsCiAgICAiNTQiLAogICAgIjU1IiwKICAgICI1NiIsCiAgICAiNTciLAogICAgIjU4IiwKICAgICI1OSIsCiAgICAiNjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMQp9"}}}
+, {"uuid": "KeepAwake@jepfa.de", "name": "Keep awake!", "pname": "keep-awake", "description": "Keep your computer awake! Forbid your computer to activate sceensaver, turn off the screen or suspend when it is idle for a while. Click the indicator icon (in the taskbar) once to keep your computer awake for the session. Click again to enable persistance of this setting between restarts (indicated by a small lock icon on the indicator). Switch off by clicking again.", "link": "https://extensions.gnome.org/extension/1097/keep-awake/", "shell_version_map": {"38": {"version": "6", "sha256": "1lmwq4ng14jvpzd3fnwc8bilvyigya46d8il8m16g1596p3hikdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgRm9yYmlkIHlvdXIgY29tcHV0ZXIgdG8gYWN0aXZhdGUgc2NlZW5zYXZlciwgdHVybiBvZmYgdGhlIHNjcmVlbiBvciBzdXNwZW5kIHdoZW4gaXQgaXMgaWRsZSBmb3IgYSB3aGlsZS4gQ2xpY2sgdGhlIGluZGljYXRvciBpY29uIChpbiB0aGUgdGFza2Jhcikgb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBzZXNzaW9uLiBDbGljayBhZ2FpbiB0byBlbmFibGUgcGVyc2lzdGFuY2Ugb2YgdGhpcyBzZXR0aW5nIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gU3dpdGNoIG9mZiBieSBjbGlja2luZyBhZ2Fpbi4iLAogICJuYW1lIjogIktlZXAgYXdha2UhIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "todolist@tomMoral.org", "name": "Section Todo List", "pname": "section-todo-list", "description": "Manage todo list with an applet\n\n* Add and remove task on your list in different sections.\n* Click an item to rename it.\n* Access the extension using Hot-Key (default: Ctrl+Space)\n", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {"38": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "add-username-toppanel@brendaw.com", "name": "Add Username to Top Panel", "pname": "add-username-to-top-panel", "description": "Simply add your username to topbar panel aggregate menu", "link": "https://extensions.gnome.org/extension/1108/add-username-to-top-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "0j5i5rcp2mz9s630wxcrk5pz7j052p5955y1hqnn475ywbw8fzwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0j5i5rcp2mz9s630wxcrk5pz7j052p5955y1hqnn475ywbw8fzwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "07bg3fgg9k7wqyd746w75a12vzm93dn4wr3l1czd6864f4pmalpd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU2IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA1Ngp9"}, "40": {"version": "58", "sha256": "0rh86n98jmma7kkbhyfvw71rk1qa85nb7nx14dsb5r15pbdx6v5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
+, {"uuid": "nothing-to-say@extensions.gnome.wouter.bolsterl.ee", "name": "Nothing to say", "pname": "nothing-to-say", "description": "Unmute the microphone only when you have something to say.", "link": "https://extensions.gnome.org/extension/1113/nothing-to-say/", "shell_version_map": {"38": {"version": "8", "sha256": "12ngc4dv1ijbvihqn2rjn77bal0gdhdq4cxf1zv5lr2ckz0ishm4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2JvbHN0ZXIvbm90aGluZy10by1zYXkiLAogICJ1dWlkIjogIm5vdGhpbmctdG8tc2F5QGV4dGVuc2lvbnMuZ25vbWUud291dGVyLmJvbHN0ZXJsLmVlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "9", "sha256": "0advxxg1bd9b8c1pi0yf4c08xrfbavwv97sg57lgc98mg3asgzh4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dib2xzdGVyL25vdGhpbmctdG8tc2F5IiwKICAidXVpZCI6ICJub3RoaW5nLXRvLXNheUBleHRlbnNpb25zLmdub21lLndvdXRlci5ib2xzdGVybC5lZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "workspace-switch-wraparound@theychx.org", "name": "Workspace Switch Wraparound", "pname": "workspace-switch-wraparound", "description": "When switching workspaces, going down from the bottom workspace switches to the top workspace. Likewise, up from the top workspace goes to the bottom workspace.", "link": "https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/", "shell_version_map": {"38": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "ibus-font-setting@ibus.github.com", "name": "ibus font setting", "pname": "ibus-font-setting", "description": "use ibus font setting of ibus setup dialog to enhance the user experience", "link": "https://extensions.gnome.org/extension/1121/ibus-font-setting/", "shell_version_map": {"38": {"version": "9", "sha256": "163byvsc3dj2w9xq498py1xjziyi98icyki1cd6wv7vxaxfmk7y6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3B3dS5mZWRvcmFwZW9wbGUub3JnL2lidXMvaWJ1cy1mb250LXNldHRpbmciLAogICJ1dWlkIjogImlidXMtZm9udC1zZXR0aW5nQGlidXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "10", "sha256": "1bgbnpab1vw5glbv15zrbxngb60dl9bmk1y2iadxq47f0zh1fgly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9wd3UuZmVkb3JhcGVvcGxlLm9yZy9pYnVzL2lidXMtZm9udC1zZXR0aW5nIiwKICAidXVpZCI6ICJpYnVzLWZvbnQtc2V0dGluZ0BpYnVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "github.notifications@alexandre.dufournet.gmail.com", "name": "Github Notifications", "pname": "github-notifications", "description": "Integrate github's notifications within the gnome desktop environment\nSource code is available here: https://github.com/alexduf/gnome-github-notifications", "link": "https://extensions.gnome.org/extension/1125/github-notifications/", "shell_version_map": {"38": {"version": "17", "sha256": "0lj41ngk4kmkz94hn9bi51w8dbhzhxbb3kaza1h68lcvv2cis4sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBnaXRodWIncyBub3RpZmljYXRpb25zIHdpdGhpbiB0aGUgZ25vbWUgZGVza3RvcCBlbnZpcm9ubWVudFxuU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZHVmL2dub21lLWdpdGh1Yi1ub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJHaXRodWIgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRodWIubm90aWZpY2F0aW9uc0BhbGV4YW5kcmUuZHVmb3VybmV0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}}}
+, {"uuid": "desk-changer@eric.gach.gmail.com", "name": "Desk Changer", "pname": "desk-changer", "description": "Simple wallpaper changer with multiple profile support. Supports integration into the system menu or its own panel icon. The daemon is written in Python and runs independently of the extension.", "link": "https://extensions.gnome.org/extension/1131/desk-changer/", "shell_version_map": {"38": {"version": "19", "sha256": "0w62m9k585j2d3in78x4irzmi6z1zmzzm443y3nm02cah5y9yp23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gU3VwcG9ydHMgaW50ZWdyYXRpb24gaW50byB0aGUgc3lzdGVtIG1lbnUgb3IgaXRzIG93biBwYW5lbCBpY29uLiBUaGUgZGFlbW9uIGlzIHdyaXR0ZW4gaW4gUHl0aG9uIGFuZCBydW5zIGluZGVwZW5kZW50bHkgb2YgdGhlIGV4dGVuc2lvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkZXNrLWNoYW5nZXIiLAogICJuYW1lIjogIkRlc2sgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrLWNoYW5nZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaWdFL2Rlc2stY2hhbmdlci8iLAogICJ1dWlkIjogImRlc2stY2hhbmdlckBlcmljLmdhY2guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
+, {"uuid": "Shortcuts@kyle.aims.ac.za", "name": "Shortcuts", "pname": "shortcuts", "description": "This shows a pop-up of useful keyboard shortcuts when Super + S is pressed", "link": "https://extensions.gnome.org/extension/1144/shortcuts/", "shell_version_map": {"38": {"version": "6", "sha256": "1ma022dlhhk0ia7j8b1lm52arq9zz7in4x02hdvs0k29jcl4f9dd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIFN1cGVyICsgUyBpcyBwcmVzc2VkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2hvcnRjdXRzIiwKICAibmFtZSI6ICJTaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "sensory-perception@HarlemSquirrel.github.io", "name": "Sensory Perception", "pname": "sensory-perception", "description": "Requires lm-sensors (or lm_sensors). Shows CPU temperature, disk temperature, video card temperature, voltage and fan RPM.", "link": "https://extensions.gnome.org/extension/1145/sensory-perception/", "shell_version_map": {"38": {"version": "13", "sha256": "16wc49khyk5arsis8kzpjgl6nl8gccc2y5sspq8rwnab22jnzwjh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGFybGVtU3F1aXJyZWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlbnNvcnktcGVyY2VwdGlvbiIsCiAgInV1aWQiOiAic2Vuc29yeS1wZXJjZXB0aW9uQEhhcmxlbVNxdWlycmVsLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "14", "sha256": "1g3yvzpvvrpg90vhgqabp028mgxpsfy2xzqpbg5d4zriam94ply8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcmxlbVNxdWlycmVsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3J5LXBlcmNlcHRpb24iLAogICJ1dWlkIjogInNlbnNvcnktcGVyY2VwdGlvbkBIYXJsZW1TcXVpcnJlbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "activityAppLauncher@rastersoft.com", "name": "Activity App Launcher", "pname": "activity-app-launcher", "description": "Integrates a category-based application launcher in the activities window. IMPORTANT: it needs the 'gnome-menus' and 'libgnome-menu-3-dev'; they must be installed in the system before installing this extension.", "link": "https://extensions.gnome.org/extension/1149/activity-app-launcher/", "shell_version_map": {"38": {"version": "23", "sha256": "01dvak9l2jay31y39kp5fgc58hjnav9rqglzl12zm6z50qgjnn4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "dash-to-panel@jderose9.github.com", "name": "Dash to Panel", "pname": "dash-to-panel", "description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.", "link": "https://extensions.gnome.org/extension/1160/dash-to-panel/", "shell_version_map": {"38": {"version": "42", "sha256": "052adrf5dv1qfrpkp1wivp8a8vfi851japvx16gy779shfzq0n2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZGVyb3NlOS9kYXNoLXRvLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLXRvLXBhbmVsQGpkZXJvc2U5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}}}
+, {"uuid": "emoji-selector@maestroschan.fr", "name": "Emoji Selector", "pname": "emoji-selector", "description": "This extension provides a parametrable popup menu displaying most emojis, clicking on an emoji copies it to the clipboard. An appropriate font like 'Twitter Color Emoji' or 'JoyPixels Color' should be installed on your system for a better visual result.", "link": "https://extensions.gnome.org/extension/1162/emoji-selector/", "shell_version_map": {"38": {"version": "20", "sha256": "1i6py149m46xig5a0ry7y5v887nlzw644mw72gcr2hkfsn8b0gnd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHByb3ZpZGVzIGEgcGFyYW1ldHJhYmxlIHBvcHVwIG1lbnUgZGlzcGxheWluZyBtb3N0IGVtb2ppcywgY2xpY2tpbmcgb24gYW4gZW1vamkgY29waWVzIGl0IHRvIHRoZSBjbGlwYm9hcmQuIEFuIGFwcHJvcHJpYXRlIGZvbnQgbGlrZSAnVHdpdHRlciBDb2xvciBFbW9qaScgb3IgJ0pveVBpeGVscyBDb2xvcicgc2hvdWxkIGJlIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSBmb3IgYSBiZXR0ZXIgdmlzdWFsIHJlc3VsdC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1zZWxlY3RvciIsCiAgIm5hbWUiOiAiRW1vamkgU2VsZWN0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZW1vamktc2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovZW1vamktc2VsZWN0b3ItZm9yLWdub21lIiwKICAidXVpZCI6ICJlbW9qaS1zZWxlY3RvckBtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "gnome-kinit@bonzini.gnu.org", "name": "Kerberos login", "pname": "kerberos-login", "description": "Provide a system menu item to renew Kerberos tickets", "link": "https://extensions.gnome.org/extension/1165/kerberos-login/", "shell_version_map": {"40": {"version": "3", "sha256": "0b9yr3ixrlr1ngc8f68spddpk94nz367cvrklf02598jj48sgxbl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImdub21lLWtpbml0QGJvbnppbmkuZ251Lm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "calculator-button@amivaleo", "name": "Calculator Button", "pname": "calculator-button", "description": "A button to easily open gnome-calculator.\n Credits to extensions.gnome.org/extension/939/display-button/\n\nv10:\n1 - added support for gnome 3.38\n2 - added support for flatpak version of gnome-calculator", "link": "https://extensions.gnome.org/extension/1168/calculator-button/", "shell_version_map": {"38": {"version": "10", "sha256": "1c6b53im6xj4yaf4skvchvgipxfjs2yh3i5r75cw9avnw7imnwk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIHRvIGVhc2lseSBvcGVuIGdub21lLWNhbGN1bGF0b3IuXG4gQ3JlZGl0cyB0byBleHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vOTM5L2Rpc3BsYXktYnV0dG9uL1xuXG52MTA6XG4xIC0gYWRkZWQgc3VwcG9ydCBmb3IgZ25vbWUgMy4zOFxuMiAtIGFkZGVkIHN1cHBvcnQgZm9yIGZsYXRwYWsgdmVyc2lvbiBvZiBnbm9tZS1jYWxjdWxhdG9yIiwKICAibmFtZSI6ICJDYWxjdWxhdG9yIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL0NhbGN1bGF0b3ItQnV0dG9uIiwKICAidXVpZCI6ICJjYWxjdWxhdG9yLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"uuid": "screenshotlocations.timur@linux.com", "name": "Screenshot Locations", "pname": "screenshot-locations", "description": "Change the default GNOME screenshot directory", "link": "https://extensions.gnome.org/extension/1179/screenshot-locations/", "shell_version_map": {"38": {"version": "7", "sha256": "0ymb4m8fgxgi964fdfdqwgjw95qbcm906zgqmyqxgd4ggip3mn47", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMuZGF0YS5ncmVzb3VyY2UiLAogICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2UgdGhlIGRlZmF1bHQgR05PTUUgc2NyZWVuc2hvdCBkaXJlY3RvcnkiLAogICJuYW1lIjogIlNjcmVlbnNob3QgTG9jYXRpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2tpeXVpL2dub21lLXNoZWxsLXNjcmVlbnNob3Rsb2NhdGlvbnMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzY3JlZW5zaG90bG9jYXRpb25zLnRpbXVyQGxpbnV4LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "8", "sha256": "0cxsq1zzmgn6q32wbdfw9hai62li92dwvwnzq2pdbskp9qm6v7nd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgZGVmYXVsdCBHTk9NRSBzY3JlZW5zaG90IGRpcmVjdG9yeSIsCiAgImdldHRleHQtZG9tYWluIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IExvY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW5zaG90bG9jYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcva2l5dWkvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdGxvY2F0aW9ucy1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "utcclock@injcristianrojas.github.com", "name": "UTCClock", "pname": "utcclock", "description": "UTC clock for the top bar. Supports GNOME 3.32 and up (even GNOME 40).\n\nAny issues?, please send them to https://github.com/injcristianrojas/UTCClock/issues", "link": "https://extensions.gnome.org/extension/1183/utcclock/", "shell_version_map": {"38": {"version": "24", "sha256": "1i286vqll6wqm42w3kha5db2vw9d9gqmkwwlb3l4lsy5n4wzc1jx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIFN1cHBvcnRzIEdOT01FIDMuMzIgYW5kIHVwIChldmVuIEdOT01FIDQwKS5cblxuQW55IGlzc3Vlcz8sIHBsZWFzZSBzZW5kIHRoZW0gdG8gaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2svaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVVRDQ2xvY2siLAogICJuYW1lIjogIlVUQ0Nsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnV0Y2Nsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy9VVENDbG9jayIsCiAgInV1aWQiOiAidXRjY2xvY2tAaW5qY3Jpc3RpYW5yb2phcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "1i286vqll6wqm42w3kha5db2vw9d9gqmkwwlb3l4lsy5n4wzc1jx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIFN1cHBvcnRzIEdOT01FIDMuMzIgYW5kIHVwIChldmVuIEdOT01FIDQwKS5cblxuQW55IGlzc3Vlcz8sIHBsZWFzZSBzZW5kIHRoZW0gdG8gaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2svaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVVRDQ2xvY2siLAogICJuYW1lIjogIlVUQ0Nsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnV0Y2Nsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy9VVENDbG9jayIsCiAgInV1aWQiOiAidXRjY2xvY2tAaW5qY3Jpc3RpYW5yb2phcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
+, {"uuid": "show-desktop-button@amivaleo", "name": "Show Desktop Button", "pname": "show-desktop-button", "description": "Minimize/unminimize all open windows in a single click.", "link": "https://extensions.gnome.org/extension/1194/show-desktop-button/", "shell_version_map": {"38": {"version": "17", "sha256": "010zh65pxwx16pnvqblnyh3cfmpnpxmmz7hd2r07rbw8mcyhd62h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyBpbiBhIHNpbmdsZSBjbGljay4iLAogICJleHRlbnNpb24taWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImdldHRleHQtZG9tYWluIjogInNob3ctZGVza3RvcC1idXR0b24iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNob3cgRGVza3RvcCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL1Nob3ctRGVza3RvcC1CdXR0b24iLAogICJ1dWlkIjogInNob3ctZGVza3RvcC1idXR0b25AYW1pdmFsZW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "18", "sha256": "0ncqnggvz2nkymm3bf0f7fs7gmnw61asa60kwrvda3ch71sqkcvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyBpbiBhIHNpbmdsZSBjbGljay4iLAogICJleHRlbnNpb24taWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImdldHRleHQtZG9tYWluIjogInNob3ctZGVza3RvcC1idXR0b24iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNob3cgRGVza3RvcCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "nasa_apod@elinvention.ovh", "name": "NASA APOD Wallpaper Changer", "pname": "nasa-apod", "description": "Change your wallpaper daily to the NASA's astronomy picture of the day", "link": "https://extensions.gnome.org/extension/1202/nasa-apod/", "shell_version_map": {"40": {"version": "23", "sha256": "1qv78dfb3ybfqfn2j3wff33j3hyrp7s1lhca4khqxnk43wb19qvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hc2EtYXBvZCIsCiAgInV1aWQiOiAibmFzYV9hcG9kQGVsaW52ZW50aW9uLm92aCIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"uuid": "SystemMenu@jonnius.github.com", "name": "System Menu", "pname": "system-menu", "description": "System menu with usefull shortcuts", "link": "https://extensions.gnome.org/extension/1204/system-menu/", "shell_version_map": {"38": {"version": "5", "sha256": "10zfr3fhqvq0fxqjzqmnxmhmdw5xcw9m5k3jm1apcjqnm38r896w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtZW51IHdpdGggdXNlZnVsbCBzaG9ydGN1dHMiLAogICJuYW1lIjogIlN5c3RlbSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlN5c3RlbU1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2pvbm5pdXMvZ25vbWUtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogIlN5c3RlbU1lbnVAam9ubml1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "rcd@criztovyl.space", "name": "Right Click Down", "pname": "right-click-down", "description": "Moves windows one workspace down by right-clicking them in the overview.", "link": "https://extensions.gnome.org/extension/1210/right-click-down/", "shell_version_map": {"38": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "printers@linux-man.org", "name": "Printers", "pname": "printers", "description": "Manage Jobs and Printers", "link": "https://extensions.gnome.org/extension/1218/printers/", "shell_version_map": {"38": {"version": "12", "sha256": "0b5vfw13qdvy13crikp72h1m3ypjzhpxihzlfp0rk530cp031cmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9saW51eC1tYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByaW50ZXJzIiwKICAidXVpZCI6ICJwcmludGVyc0BsaW51eC1tYW4ub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "13", "sha256": "016mqy0pifaxz37g43pag2w62b3dyf8n0fxhf43m0p9wphxa5zwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtbWFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wcmludGVycyIsCiAgInV1aWQiOiAicHJpbnRlcnNAbGludXgtbWFuLm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "arc-menu@linxgem33.com", "name": "Arc Menu", "pname": "arc-menu", "description": "## UNMAINTAINED ##\n\nThe original version of Arc Menu and all attached repositories apart from the disaster recovery branch will no longer receive updates or further development.\n\nKind Regards - LinxGem33 (Andy C)", "link": "https://extensions.gnome.org/extension/1228/arc-menu/", "shell_version_map": {"38": {"version": "49", "sha256": "0x1kr339qarkviinf13s6ih01ssdh321nw8ncnnrq7ihqpzysf8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIFVOTUFJTlRBSU5FRCAjI1xuXG5UaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiBBcmMgTWVudSBhbmQgYWxsIGF0dGFjaGVkIHJlcG9zaXRvcmllcyBhcGFydCBmcm9tIHRoZSBkaXNhc3RlciByZWNvdmVyeSBicmFuY2ggd2lsbCBubyBsb25nZXIgcmVjZWl2ZSB1cGRhdGVzIG9yIGZ1cnRoZXIgZGV2ZWxvcG1lbnQuXG5cbktpbmQgUmVnYXJkcyAtIExpbnhHZW0zMyAoQW5keSBDKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImFyYy1tZW51IiwKICAibmFtZSI6ICJBcmMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9BcmMtTWVudSIsCiAgInV1aWQiOiAiYXJjLW1lbnVAbGlueGdlbTMzLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
+, {"uuid": "GmailMessageTray@shuming0207.gmail.com", "name": "Gnome Email Notifications", "pname": "gmail-message-tray", "description": "Shows Gmail and Outlook notifications in Gnome Message Tray using Gnome Online Accounts\n", "link": "https://extensions.gnome.org/extension/1230/gmail-message-tray/", "shell_version_map": {"40": {"version": "21", "sha256": "1ad3nhxkc9n0b70nf0vgwgrjy2mh0ard57f53587zgsys6lbl3d8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEdtYWlsIGFuZCBPdXRsb29rIG5vdGlmaWNhdGlvbnMgaW4gR25vbWUgTWVzc2FnZSBUcmF5IHVzaW5nIEdub21lIE9ubGluZSBBY2NvdW50c1xuIiwKICAibmFtZSI6ICJHbm9tZSBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NodW1pbmdjaC9nbm9tZS1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJHbWFpbE1lc3NhZ2VUcmF5QHNodW1pbmcwMjA3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
+, {"uuid": "switchWorkSpace@sun.wxg@gmail.com", "name": "Switch Workspace", "pname": "switch-workspace", "description": "Switch workspace like using ALT+TAB key to switch windows \n\n Default shortcut key to switch workspace is Ctrl+Above_Tab .", "link": "https://extensions.gnome.org/extension/1231/switch-workspace/", "shell_version_map": {"38": {"version": "30", "sha256": "1z6dafy981y2kjbnk9dncnkkpgqk45njbh3k08s3jg385qvfryvg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zd2l0Y2h3b3Jrc3BhY2UiLAogICJ1dWlkIjogInN3aXRjaFdvcmtTcGFjZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "40": {"version": "31", "sha256": "0gq3q0sh8088gp0mjp9xn8n5ff8yxbhrp3ik3dbavs12wm26qlbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3dpdGNod29ya3NwYWNlIiwKICAidXVpZCI6ICJzd2l0Y2hXb3JrU3BhY2VAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="}}}
+, {"uuid": "SomaFm-Radio@alireza6677.gmail.com", "name": "SomaFM internet radio", "pname": "somafm-internet-radio", "description": "Listen to SomaFm free internet radio in your GNOME desktop\n\n* Featues:\n- 32+ Channels\n- Volume slider\n- Favorites menu\n- Good sound quality\n- Supports most gnome-shell versions\n- Channel logos\n\n* Requirements:\n- Gstreamer and plugins:\nYou need to install 'gstreamer' and multimedia codecs/plugins for your distro.", "link": "https://extensions.gnome.org/extension/1237/somafm-internet-radio/", "shell_version_map": {"38": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "40": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}}}
+, {"uuid": "timepp@zagortenay333", "name": "Time ++", "pname": "time", "description": "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarm clock", "link": "https://extensions.gnome.org/extension/1238/time/", "shell_version_map": {"38": {"version": "156", "sha256": "125jfvslb2h77b3cnnrjbj0kc0qhv07aiir9b7na5fanr4cid97c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ0cmFuc2xhdGlvbnNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvdHJlZS9tYXN0ZXIvZGF0YS9wb19maWxlcyIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lIiwKICAidXVpZCI6ICJ0aW1lcHBAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiAxNTYKfQ=="}, "40": {"version": "156", "sha256": "125jfvslb2h77b3cnnrjbj0kc0qhv07aiir9b7na5fanr4cid97c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ0cmFuc2xhdGlvbnNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvdHJlZS9tYXN0ZXIvZGF0YS9wb19maWxlcyIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lIiwKICAidXVpZCI6ICJ0aW1lcHBAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiAxNTYKfQ=="}}}
+, {"uuid": "BingWallpaper@ineffable-gmail.com", "name": "Bing Wallpaper", "pname": "bing-wallpaper-changer", "description": "Lightweight GNOME shell extension to set your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nThis extension is based extensively on the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nFeatures:\n* Fetches Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Optionally force a specific region (i.e. locale)\n* UHD supported resolutions\n* Optionally clean up Wallpaper directory after between 1 and 7 days (delete oldest first)\n* Only attempts to download wallpapers when they have been updated\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n* English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN), French (fr_FR), Portuguese (pt, pt_BR), Russian (ru_RU), Spanish (es), Korean (ko, ko_KR, ko_KP), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Finnish (fi_FI) - a HUGE thanks to the translators\n\nPlease report bugs to the GitHub page below:", "link": "https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/", "shell_version_map": {"38": {"version": "32", "sha256": "0va1rykzfc1xajhd28wpqmwk4fq2jd1ddydbfvq5kf9zcbral5c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT3B0aW9uYWxseSBjbGVhbiB1cCBXYWxscGFwZXIgZGlyZWN0b3J5IGFmdGVyIGJldHdlZW4gMSBhbmQgNyBkYXlzIChkZWxldGUgb2xkZXN0IGZpcnN0KVxuKiBPbmx5IGF0dGVtcHRzIHRvIGRvd25sb2FkIHdhbGxwYXBlcnMgd2hlbiB0aGV5IGhhdmUgYmVlbiB1cGRhdGVkXG4qIERvZXNuJ3QgcG9sbCBjb250aW51b3VzbHkgLSBvbmx5IG9uY2UgcGVyIGRheSBhbmQgb24gc3RhcnR1cCAoc2NoZWR1bGVzIGEgcmVmcmVzaCB3aGVuIEJpbmcgaXMgZHVlIHRvIHVwZGF0ZSlcbiogRW5nbGlzaCAoZW4pLCBHZXJtYW4gKGRlKSwgRHV0Y2ggKG5sKSwgSXRhbGlhbiAoaXQpLCBQb2xpc2ggKHBsKSwgQ2hpbmVzZSAoemhfQ04pLCBGcmVuY2ggKGZyX0ZSKSwgUG9ydHVndWVzZSAocHQsIHB0X0JSKSwgUnVzc2lhbiAocnVfUlUpLCBTcGFuaXNoIChlcyksIEtvcmVhbiAoa28sIGtvX0tSLCBrb19LUCksIEluZG9uZXNpYW4gKGlkKSwgQ2F0YWxhbiAoY2EpLCBOb3J3ZWdpYW4gQm9rbVx1MDBlNWwgKG5iKSAmIE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cblBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}, "40": {"version": "32", "sha256": "0va1rykzfc1xajhd28wpqmwk4fq2jd1ddydbfvq5kf9zcbral5c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT3B0aW9uYWxseSBjbGVhbiB1cCBXYWxscGFwZXIgZGlyZWN0b3J5IGFmdGVyIGJldHdlZW4gMSBhbmQgNyBkYXlzIChkZWxldGUgb2xkZXN0IGZpcnN0KVxuKiBPbmx5IGF0dGVtcHRzIHRvIGRvd25sb2FkIHdhbGxwYXBlcnMgd2hlbiB0aGV5IGhhdmUgYmVlbiB1cGRhdGVkXG4qIERvZXNuJ3QgcG9sbCBjb250aW51b3VzbHkgLSBvbmx5IG9uY2UgcGVyIGRheSBhbmQgb24gc3RhcnR1cCAoc2NoZWR1bGVzIGEgcmVmcmVzaCB3aGVuIEJpbmcgaXMgZHVlIHRvIHVwZGF0ZSlcbiogRW5nbGlzaCAoZW4pLCBHZXJtYW4gKGRlKSwgRHV0Y2ggKG5sKSwgSXRhbGlhbiAoaXQpLCBQb2xpc2ggKHBsKSwgQ2hpbmVzZSAoemhfQ04pLCBGcmVuY2ggKGZyX0ZSKSwgUG9ydHVndWVzZSAocHQsIHB0X0JSKSwgUnVzc2lhbiAocnVfUlUpLCBTcGFuaXNoIChlcyksIEtvcmVhbiAoa28sIGtvX0tSLCBrb19LUCksIEluZG9uZXNpYW4gKGlkKSwgQ2F0YWxhbiAoY2EpLCBOb3J3ZWdpYW4gQm9rbVx1MDBlNWwgKG5iKSAmIE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cblBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
+, {"uuid": "gnomesome@chwick.github.com", "name": "Gnomesome", "pname": "gnomesome", "description": "Tiling window manager with awesome keybindings", "link": "https://extensions.gnome.org/extension/1268/gnomesome/", "shell_version_map": {"38": {"version": "15", "sha256": "1dn67is3qk80xxfkc2pd43jrsyylmsprd7v3axvl677wdjgaq83z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGF3ZXNvbWUga2V5YmluZGluZ3MiLAogICJuYW1lIjogIkdub21lc29tZSIsCiAgInNldHRpbmdzLWtleWJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lc29tZS5rZXliaW5kaW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nod2ljay9nbm9tZXNvbWUiLAogICJ1dWlkIjogImdub21lc29tZUBjaHdpY2suZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
+, {"uuid": "night-light-slider.timur@linux.com", "name": "Night Light Slider", "pname": "night-light-slider", "description": "A GNOME extension to manage the built-in night light temperature", "link": "https://extensions.gnome.org/extension/1276/night-light-slider/", "shell_version_map": {"38": {"version": "19", "sha256": "01vp7p3qwr51n4xqar55ak61a84wypbrla6kkmw0wdb6a0d119mc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRvIG1hbmFnZSB0aGUgYnVpbHQtaW4gbmlnaHQgbGlnaHQgdGVtcGVyYXR1cmUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodC1saWdodC1zbGlkZXIudGltdXJAbGludXguY29tIiwKICAiZ3Jlc291cmNlLWRhdGEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlci5kYXRhLmdyZXNvdXJjZSIsCiAgIm5hbWUiOiAiTmlnaHQgTGlnaHQgU2xpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0bGlnaHRzbGlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2tpeXVpL2dub21lLXNoZWxsLW5pZ2h0LWxpZ2h0LXNsaWRlci1leHRlbnNpb24iLAogICJ1dWlkIjogIm5pZ2h0LWxpZ2h0LXNsaWRlci50aW11ckBsaW51eC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "22", "sha256": "127wb0mp6nwnyk68mlkawa62f0fin8fqlclrazh92j3j8gpkrkqh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRvIG1hbmFnZSB0aGUgYnVpbHQtaW4gbmlnaHQgbGlnaHQgdGVtcGVyYXR1cmUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodC1saWdodC1zbGlkZXIudGltdXJAbGludXguY29tIiwKICAibmFtZSI6ICJOaWdodCBMaWdodCBTbGlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcva2l5dWkvZ25vbWUtc2hlbGwtbmlnaHQtbGlnaHQtc2xpZGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibmlnaHQtbGlnaHQtc2xpZGVyLnRpbXVyQGxpbnV4LmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}}}
+, {"uuid": "fuzzy-clock@keepawayfromfire.co.uk", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "Make the top bar clock fuzzy", "link": "https://extensions.gnome.org/extension/1281/fuzzy-clock/", "shell_version_map": {"38": {"version": "3", "sha256": "0mgih6aq16z0q4dlbrvnlp8bamk6pmxydjnq6019agc5cjmqpr2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "0mgih6aq16z0q4dlbrvnlp8bamk6pmxydjnq6019agc5cjmqpr2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHRvcCBiYXIgY2xvY2sgZnV6enkiLAogICJuYW1lIjogIkZ1enp5IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2otTWFsb25lL0Z1enp5LUNsb2NrIiwKICAidXVpZCI6ICJmdXp6eS1jbG9ja0BrZWVwYXdheWZyb21maXJlLmNvLnVrIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "ds4battery@slie.ru", "name": "Dual Shock 4 battery percentage", "pname": "dual-shock-4-battery-percentage", "description": "Show DS4/DS3 battery remaining power percentage at the top panel", "link": "https://extensions.gnome.org/extension/1283/dual-shock-4-battery-percentage/", "shell_version_map": {"38": {"version": "7", "sha256": "0yb1j3hlza96zbd82gjc7wyjqkj5vjzcaj8l5n8xhfrdi7icxf6j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgRFM0L0RTMyBiYXR0ZXJ5IHJlbWFpbmluZyBwb3dlciBwZXJjZW50YWdlIGF0IHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIkR1YWwgU2hvY2sgNCBiYXR0ZXJ5IHBlcmNlbnRhZ2UiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQHNsaWUucnUiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhhbmtqdXJhL2RzNGJhdHRlcnkiLAogICJ1dWlkIjogImRzNGJhdHRlcnlAc2xpZS5ydSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0yb1j3hlza96zbd82gjc7wyjqkj5vjzcaj8l5n8xhfrdi7icxf6j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgRFM0L0RTMyBiYXR0ZXJ5IHJlbWFpbmluZyBwb3dlciBwZXJjZW50YWdlIGF0IHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIkR1YWwgU2hvY2sgNCBiYXR0ZXJ5IHBlcmNlbnRhZ2UiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQHNsaWUucnUiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGhhbmtqdXJhL2RzNGJhdHRlcnkiLAogICJ1dWlkIjogImRzNGJhdHRlcnlAc2xpZS5ydSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "hotel-manager@hardpixel.eu", "name": "Hotel Manager", "pname": "hotel-manager", "description": "Hotel Manager allows to start and stop the Hotel daemon and your development servers via a menu in the status area.", "link": "https://extensions.gnome.org/extension/1285/hotel-manager/", "shell_version_map": {"38": {"version": "13", "sha256": "0fl59kg2kc054c5lzim2wvb6d0cw4hcpgq9h8lf2p40q8smyrfmq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2hvdGVsLW1hbmFnZXIiLAogICJ1dWlkIjogImhvdGVsLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "0fl59kg2kc054c5lzim2wvb6d0cw4hcpgq9h8lf2p40q8smyrfmq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdGVsIE1hbmFnZXIgYWxsb3dzIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBIb3RlbCBkYWVtb24gYW5kIHlvdXIgZGV2ZWxvcG1lbnQgc2VydmVycyB2aWEgYSBtZW51IGluIHRoZSBzdGF0dXMgYXJlYS4iLAogICJuYW1lIjogIkhvdGVsIE1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL2hvdGVsLW1hbmFnZXIiLAogICJ1dWlkIjogImhvdGVsLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "unite@hardpixel.eu", "name": "Unite", "pname": "unite", "description": "Unite is a GNOME Shell extension which makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell.\n\n- Adds window buttons to the top panel for maximized windows.\n- Shows current window title in the app menu for maximized windows.\n- Removes titlebars on maximized windows.\n- Hides window controls on maximized windows with headerbars.\n- Moves the date to the right, reduces panel spacing and removes dropdown arrows.\n- Moves legacy tray icons to the top panel.\n- Moves notifications to the right.\n- Hides activities button.\n- Adds desktop name to the top panel.\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable or customize the available tweaks.\n* Since version 2 applications on wayland with client side decorations are supported using CSS.", "link": "https://extensions.gnome.org/extension/1287/unite/", "shell_version_map": {"38": {"version": "53", "sha256": "0vj4ca098x6ndajy8571zc8r7d6ap7wcyf4k9y1d0k4bynyy9372", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeG9yZy14MTEtdXRpbHNcbi0gQXJjaDogcGFjbWFuIC1TIHhvcmcteHByb3BcblxuKlNldHRpbmdzIGFyZSBwcm92aWRlZCB0byBlbmFibGUvZGlzYWJsZSBvciBjdXN0b21pemUgdGhlIGF2YWlsYWJsZSB0d2Vha3MuXG4qIFNpbmNlIHZlcnNpb24gMiBhcHBsaWNhdGlvbnMgb24gd2F5bGFuZCB3aXRoIGNsaWVudCBzaWRlIGRlY29yYXRpb25zIGFyZSBzdXBwb3J0ZWQgdXNpbmcgQ1NTLiIsCiAgImdldHRleHQtZG9tYWluIjogInVuaXRlIiwKICAibmFtZSI6ICJVbml0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvdW5pdGUtc2hlbGwiLAogICJ1dWlkIjogInVuaXRlQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Mwp9"}, "40": {"version": "53", "sha256": "0vj4ca098x6ndajy8571zc8r7d6ap7wcyf4k9y1d0k4bynyy9372", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuaXRlIGlzIGEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIHdoaWNoIG1ha2VzIGEgZmV3IGxheW91dCB0d2Vha3MgdG8gdGhlIHRvcCBwYW5lbCBhbmQgcmVtb3ZlcyB3aW5kb3cgZGVjb3JhdGlvbnMgdG8gbWFrZSBpdCBsb29rIGxpa2UgVWJ1bnR1IFVuaXR5IFNoZWxsLlxuXG4tIEFkZHMgd2luZG93IGJ1dHRvbnMgdG8gdGhlIHRvcCBwYW5lbCBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFNob3dzIGN1cnJlbnQgd2luZG93IHRpdGxlIGluIHRoZSBhcHAgbWVudSBmb3IgbWF4aW1pemVkIHdpbmRvd3MuXG4tIFJlbW92ZXMgdGl0bGViYXJzIG9uIG1heGltaXplZCB3aW5kb3dzLlxuLSBIaWRlcyB3aW5kb3cgY29udHJvbHMgb24gbWF4aW1pemVkIHdpbmRvd3Mgd2l0aCBoZWFkZXJiYXJzLlxuLSBNb3ZlcyB0aGUgZGF0ZSB0byB0aGUgcmlnaHQsIHJlZHVjZXMgcGFuZWwgc3BhY2luZyBhbmQgcmVtb3ZlcyBkcm9wZG93biBhcnJvd3MuXG4tIE1vdmVzIGxlZ2FjeSB0cmF5IGljb25zIHRvIHRoZSB0b3AgcGFuZWwuXG4tIE1vdmVzIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHJpZ2h0LlxuLSBIaWRlcyBhY3Rpdml0aWVzIGJ1dHRvbi5cbi0gQWRkcyBkZXNrdG9wIG5hbWUgdG8gdGhlIHRvcCBwYW5lbC5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBzb21lIFhvcmcgdXRpbGl0aWVzLiBUbyBpbnN0YWxsIHRoZW06XG4tIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuLSBGZWRvcmEvUkhFTDogZG5mIGluc3RhbGwgeG9yZy14MTEtdXRpbHNcbi0gQXJjaDogcGFjbWFuIC1TIHhvcmcteHByb3BcblxuKlNldHRpbmdzIGFyZSBwcm92aWRlZCB0byBlbmFibGUvZGlzYWJsZSBvciBjdXN0b21pemUgdGhlIGF2YWlsYWJsZSB0d2Vha3MuXG4qIFNpbmNlIHZlcnNpb24gMiBhcHBsaWNhdGlvbnMgb24gd2F5bGFuZCB3aXRoIGNsaWVudCBzaWRlIGRlY29yYXRpb25zIGFyZSBzdXBwb3J0ZWQgdXNpbmcgQ1NTLiIsCiAgImdldHRleHQtZG9tYWluIjogInVuaXRlIiwKICAibmFtZSI6ICJVbml0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvdW5pdGUtc2hlbGwiLAogICJ1dWlkIjogInVuaXRlQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Mwp9"}}}
+, {"uuid": "GoogleEarthWallpaper@neffo.github.com", "name": "Google Earth Wallpaper", "pname": "google-earth-wallpaper", "description": "Lightweight GNOME shell extension to set your wallpaper to a random photo from the curated Google Earth collection (1500 photos).\n\n*Disclaimer*: this extension is unofficial and not affiliated with Google in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nSee also my other extension, Bing Wallpaper Changer (https://github.com/neffo/bing-wallpaper-gnome-extension) which was itself based on the NASA APOD extension by Elinvention (https://github.com/Elinvention).\n\nFeatures:\n* Fetches a random Google Earth wallpaper and sets as both lock screen and desktop wallpaper\n* User selectable refresh intervals (default is once per day)\n* Optional: keep images or clean up after (later is default)\n* View location on Google Maps, Bing Maps, Gnome Maps, OpenStreetMaps\n* In-extension map view\n*  German, Dutch and Chinese translations\n\nPlease report any bugs or suggestions to extension GitHub page below.", "link": "https://extensions.gnome.org/extension/1295/google-earth-wallpaper/", "shell_version_map": {"38": {"version": "12", "sha256": "0h2fdx7n2wzmcxlj96lyyvmsa3mz72dxlqy5d7zw1p2zhiyn9zjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMTUwMCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pIHdoaWNoIHdhcyBpdHNlbGYgYmFzZWQgb24gdGhlIE5BU0EgQVBPRCBleHRlbnNpb24gYnkgRWxpbnZlbnRpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbikuXG5cbkZlYXR1cmVzOlxuKiBGZXRjaGVzIGEgcmFuZG9tIEdvb2dsZSBFYXJ0aCB3YWxscGFwZXIgYW5kIHNldHMgYXMgYm90aCBsb2NrIHNjcmVlbiBhbmQgZGVza3RvcCB3YWxscGFwZXJcbiogVXNlciBzZWxlY3RhYmxlIHJlZnJlc2ggaW50ZXJ2YWxzIChkZWZhdWx0IGlzIG9uY2UgcGVyIGRheSlcbiogT3B0aW9uYWw6IGtlZXAgaW1hZ2VzIG9yIGNsZWFuIHVwIGFmdGVyIChsYXRlciBpcyBkZWZhdWx0KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qIEluLWV4dGVuc2lvbiBtYXAgdmlld1xuKiAgR2VybWFuLCBEdXRjaCBhbmQgQ2hpbmVzZSB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAibmFtZSI6ICJHb29nbGUgRWFydGggV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvb2dsZWVhcnRod2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vZWFydGgtdmlldy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlckBuZWZmby5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0h2fdx7n2wzmcxlj96lyyvmsa3mz72dxlqy5d7zw1p2zhiyn9zjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gYSByYW5kb20gcGhvdG8gZnJvbSB0aGUgY3VyYXRlZCBHb29nbGUgRWFydGggY29sbGVjdGlvbiAoMTUwMCBwaG90b3MpLlxuXG4qRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggR29vZ2xlIGluIGFueSB3YXkuIEltYWdlcyBhcmUgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgYXJlIGxpY2Vuc2VkIG9ubHkgZm9yIHVzZSBhcyB3YWxscGFwZXJzLlxuXG5TZWUgYWxzbyBteSBvdGhlciBleHRlbnNpb24sIEJpbmcgV2FsbHBhcGVyIENoYW5nZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24pIHdoaWNoIHdhcyBpdHNlbGYgYmFzZWQgb24gdGhlIE5BU0EgQVBPRCBleHRlbnNpb24gYnkgRWxpbnZlbnRpb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9FbGludmVudGlvbikuXG5cbkZlYXR1cmVzOlxuKiBGZXRjaGVzIGEgcmFuZG9tIEdvb2dsZSBFYXJ0aCB3YWxscGFwZXIgYW5kIHNldHMgYXMgYm90aCBsb2NrIHNjcmVlbiBhbmQgZGVza3RvcCB3YWxscGFwZXJcbiogVXNlciBzZWxlY3RhYmxlIHJlZnJlc2ggaW50ZXJ2YWxzIChkZWZhdWx0IGlzIG9uY2UgcGVyIGRheSlcbiogT3B0aW9uYWw6IGtlZXAgaW1hZ2VzIG9yIGNsZWFuIHVwIGFmdGVyIChsYXRlciBpcyBkZWZhdWx0KVxuKiBWaWV3IGxvY2F0aW9uIG9uIEdvb2dsZSBNYXBzLCBCaW5nIE1hcHMsIEdub21lIE1hcHMsIE9wZW5TdHJlZXRNYXBzXG4qIEluLWV4dGVuc2lvbiBtYXAgdmlld1xuKiAgR2VybWFuLCBEdXRjaCBhbmQgQ2hpbmVzZSB0cmFuc2xhdGlvbnNcblxuUGxlYXNlIHJlcG9ydCBhbnkgYnVncyBvciBzdWdnZXN0aW9ucyB0byBleHRlbnNpb24gR2l0SHViIHBhZ2UgYmVsb3cuIiwKICAibmFtZSI6ICJHb29nbGUgRWFydGggV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdvb2dsZWVhcnRod2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVmZm8vZWFydGgtdmlldy13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJHb29nbGVFYXJ0aFdhbGxwYXBlckBuZWZmby5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "gsconnect@andyholmes.github.io", "name": "GSConnect", "pname": "gsconnect", "description": "GSConnect is a complete implementation of KDE Connect especially for GNOME Shell with Nautilus, Chrome and Firefox integration. It does not rely on the KDE Connect desktop application and will not work with it installed.\n\nKDE Connect allows devices to securely share content like notifications or files and other features like SMS messaging and remote control. The KDE Connect team has applications for Linux, BSD, Android, Sailfish and Windows.\n\nPlease report issues on Github!", "link": "https://extensions.gnome.org/extension/1319/gsconnect/", "shell_version_map": {"38": {"version": "45", "sha256": "11hpgh2bhizdrgl4xc5iszsi6jxb9j80lph74226rnw6pi2nc19f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmR5aG9sbWVzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1nc2Nvbm5lY3Qvd2lraSIsCiAgInV1aWQiOiAiZ3Njb25uZWN0QGFuZHlob2xtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="}, "40": {"version": "46", "sha256": "0gy27912xaiq7qzkk4zns9bjrjjwb7azn5y8wq5xkaxxrjys0i2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdTQ29ubmVjdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mIEtERSBDb25uZWN0IGVzcGVjaWFsbHkgZm9yIEdOT01FIFNoZWxsIHdpdGggTmF1dGlsdXMsIENocm9tZSBhbmQgRmlyZWZveCBpbnRlZ3JhdGlvbi4gSXQgZG9lcyBub3QgcmVseSBvbiB0aGUgS0RFIENvbm5lY3QgZGVza3RvcCBhcHBsaWNhdGlvbiBhbmQgd2lsbCBub3Qgd29yayB3aXRoIGl0IGluc3RhbGxlZC5cblxuS0RFIENvbm5lY3QgYWxsb3dzIGRldmljZXMgdG8gc2VjdXJlbHkgc2hhcmUgY29udGVudCBsaWtlIG5vdGlmaWNhdGlvbnMgb3IgZmlsZXMgYW5kIG90aGVyIGZlYXR1cmVzIGxpa2UgU01TIG1lc3NhZ2luZyBhbmQgcmVtb3RlIGNvbnRyb2wuIFRoZSBLREUgQ29ubmVjdCB0ZWFtIGhhcyBhcHBsaWNhdGlvbnMgZm9yIExpbnV4LCBCU0QsIEFuZHJvaWQsIFNhaWxmaXNoIGFuZCBXaW5kb3dzLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBHaXRodWIhIiwKICAibmFtZSI6ICJHU0Nvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZ3Njb25uZWN0L3dpa2kiLAogICJ1dWlkIjogImdzY29ubmVjdEBhbmR5aG9sbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Ngp9"}}}
+, {"uuid": "nvidiautil@ethanwharris", "name": "NVIDIA GPU Stats Tool", "pname": "nvidia-gpu-stats-tool", "description": "Shows NVIDIA GPU stats in the toolbar. Requires nvidia-settings or nvidia-smi. Includes Bumblebee support.", "link": "https://extensions.gnome.org/extension/1320/nvidia-gpu-stats-tool/", "shell_version_map": {"38": {"version": "8", "sha256": "12yi2kcq2rm1ddb8djjlffvk6dhpfd996wjhwdf4jch1r85r8a30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "lwsm@johannes.super-productivity.com", "name": "Window Session Manager", "pname": "window-session-manager", "description": "An indicator that let's you save and restore your open apps and the window positions and arrangements over multiple real and virtual displays. Requires lwsm and nodejs to be installed (`npm install -g linux-window-session-manager`).", "link": "https://extensions.gnome.org/extension/1323/window-session-manager/", "shell_version_map": {"38": {"version": "8", "sha256": "04vy6pyz7in248bx2micg7w0jimcqnrnkis6skacbdz9fm5nd699", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGluZGljYXRvciB0aGF0IGxldCdzIHlvdSBzYXZlIGFuZCByZXN0b3JlIHlvdXIgb3BlbiBhcHBzIGFuZCB0aGUgd2luZG93IHBvc2l0aW9ucyBhbmQgYXJyYW5nZW1lbnRzIG92ZXIgbXVsdGlwbGUgcmVhbCBhbmQgdmlydHVhbCBkaXNwbGF5cy4gUmVxdWlyZXMgbHdzbSBhbmQgbm9kZWpzIHRvIGJlIGluc3RhbGxlZCAoYG5wbSBpbnN0YWxsIC1nIGxpbnV4LXdpbmRvdy1zZXNzaW9uLW1hbmFnZXJgKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsd3NtIiwKICAibmFtZSI6ICJXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmx3c20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb2hhbm5lc2pvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyIiwKICAidXVpZCI6ICJsd3NtQGpvaGFubmVzLnN1cGVyLXByb2R1Y3Rpdml0eS5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "pause-night-light@tijnschuurmans.nl", "name": "Pause Night Light", "pname": "pause-night-light", "description": "Disable Night Light for 10 seconds. This short interruption allows you to scan a colour code (e.g. Crontosign) from your screen.", "link": "https://extensions.gnome.org/extension/1327/pause-night-light/", "shell_version_map": {"40": {"version": "8", "sha256": "1j4yywvmwplbyjjwp79rxmfgsf7kv67v0d9rhbg6bnqw04bq91ki", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgTmlnaHQgTGlnaHQgZm9yIDEwIHNlY29uZHMuIFRoaXMgc2hvcnQgaW50ZXJydXB0aW9uIGFsbG93cyB5b3UgdG8gc2NhbiBhIGNvbG91ciBjb2RlIChlLmcuIENyb250b3NpZ24pIGZyb20geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJQYXVzZSBOaWdodCBMaWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Rpam4vcGF1c2UtbmlnaHQtbGlnaHQiLAogICJ1dWlkIjogInBhdXNlLW5pZ2h0LWxpZ2h0QHRpam5zY2h1dXJtYW5zLm5sIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "disableworkspaceanim@owilliams.mixxx.org", "name": "Disable Workspace Switch Animation", "pname": "disable-workspace-switch-animation", "description": "Makes switching between workspaces instant without disabling other animations.\n\n(Fixed for GNOME 3.38 and above, thanks for your patience)", "link": "https://extensions.gnome.org/extension/1328/disable-workspace-switch-animation/", "shell_version_map": {"38": {"version": "4", "sha256": "0bby20crlp7jhcw90hfysc5jsl1rdfrq6byv2xb6vq8qh1hylzpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHN3aXRjaGluZyBiZXR3ZWVuIHdvcmtzcGFjZXMgaW5zdGFudCB3aXRob3V0IGRpc2FibGluZyBvdGhlciBhbmltYXRpb25zLlxuXG4oRml4ZWQgZm9yIEdOT01FIDMuMzggYW5kIGFib3ZlLCB0aGFua3MgZm9yIHlvdXIgcGF0aWVuY2UpIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRpc2FibGV3b3Jrc3BhY2VhbmltQG93aWxsaWFtcy5taXh4eC5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "app-switcher_current_workspace_first@fawtytoo", "name": "App-Switcher Current Workspace First", "pname": "app-switcher-current-workspace-first", "description": "App-Switcher modification that sorts applications by current workspace first. It separates apps into 2 separate icons if the app also has windows on other workspaces.", "link": "https://extensions.gnome.org/extension/1329/app-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "10", "sha256": "1anzb098a42anrgxgfnqmgbn7f3v4kflkh62lq95fgga2xqz3l09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy4iLAogICJuYW1lIjogIkFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwLXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1anzb098a42anrgxgfnqmgbn7f3v4kflkh62lq95fgga2xqz3l09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyBhcHBsaWNhdGlvbnMgYnkgY3VycmVudCB3b3Jrc3BhY2UgZmlyc3QuIEl0IHNlcGFyYXRlcyBhcHBzIGludG8gMiBzZXBhcmF0ZSBpY29ucyBpZiB0aGUgYXBwIGFsc28gaGFzIHdpbmRvd3Mgb24gb3RoZXIgd29ya3NwYWNlcy4iLAogICJuYW1lIjogIkFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwLXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "window-switcher_current_workspace_first@fawtytoo", "name": "Window-Switcher Current Workspace First", "pname": "window-switcher-current-workspace-first", "description": "Window-Switcher modification that sorts windows by current workspace first. The other windows are added according to their workspace.", "link": "https://extensions.gnome.org/extension/1330/window-switcher-current-workspace-first/", "shell_version_map": {"38": {"version": "12", "sha256": "1yvnfq52xygbsk6gz6d993p9sd44yqmw5dn582rlnfv6qmyr0r79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "1yvnfq52xygbsk6gz6d993p9sd44yqmw5dn582rlnfv6qmyr0r79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdy1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzb3J0cyB3aW5kb3dzIGJ5IGN1cnJlbnQgd29ya3NwYWNlIGZpcnN0LiBUaGUgb3RoZXIgd2luZG93cyBhcmUgYWRkZWQgYWNjb3JkaW5nIHRvIHRoZWlyIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldpbmRvdy1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyX2N1cnJlbnRfd29ya3NwYWNlX2ZpcnN0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "run-or-raise@edvard.cz", "name": "Run or raise", "pname": "run-or-raise", "description": "Launch or focus the window or define custom shortcuts in a text file", "link": "https://extensions.gnome.org/extension/1336/run-or-raise/", "shell_version_map": {"38": {"version": "11", "sha256": "1vp3riz1fdg31l3dj7yjv7c76g0dkrhl8q738qsxkcvqvgjinc8g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DWi1OSUMvcnVuLW9yLXJhaXNlIiwKICAidXVpZCI6ICJydW4tb3ItcmFpc2VAZWR2YXJkLmN6IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "1vp3riz1fdg31l3dj7yjv7c76g0dkrhl8q738qsxkcvqvgjinc8g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DWi1OSUMvcnVuLW9yLXJhaXNlIiwKICAidXVpZCI6ICJydW4tb3ItcmFpc2VAZWR2YXJkLmN6IiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "show_applications_instead_of_overview@fawtytoo", "name": "Show Applications Instead Of Workspaces", "pname": "show-applications-instead-of-overview", "description": "The Overview will show Applications instead of Workspaces when invoked.", "link": "https://extensions.gnome.org/extension/1337/show-applications-instead-of-overview/", "shell_version_map": {"38": {"version": "6", "sha256": "1ap6aawz173r04x43h0vb4sycid9jc17amq8bbhs7dbsrk6x3wzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNob3dfYXBwbGljYXRpb25zX2luc3RlYWRfb2Zfb3ZlcnZpZXdAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1ap6aawz173r04x43h0vb4sycid9jc17amq8bbhs7dbsrk6x3wzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNob3dfYXBwbGljYXRpb25zX2luc3RlYWRfb2Zfb3ZlcnZpZXdAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "hplip-menu@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip", "pname": "hplip-menu", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.", "link": "https://extensions.gnome.org/extension/1339/hplip-menu/", "shell_version_map": {"38": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "notes@maestroschan.fr", "name": "Notes", "pname": "notes", "description": "Sticky notes for the GNOME Shell desktop.", "link": "https://extensions.gnome.org/extension/1357/notes/", "shell_version_map": {"38": {"version": "20", "sha256": "0arpk1rnjvc38xy8q3nsaxr0x691gznbqdd4mx3jzdd300j17q24", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "slinger@gfxmonk.net", "name": "slinger", "pname": "slinger", "description": "Sling windows around efficiently", "link": "https://extensions.gnome.org/extension/1372/slinger/", "shell_version_map": {"40": {"version": "7", "sha256": "1hpzcslqln0yz4kv216z8qqq9639sh1awp6q8c33d7jp11ydwhlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaW5nIHdpbmRvd3MgYXJvdW5kIGVmZmljaWVudGx5IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2xpbmdlciIsCiAgIm5hbWUiOiAic2xpbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW1iZXJ0c29uL3NsaW5nZXIiLAogICJ1dWlkIjogInNsaW5nZXJAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "unix-timestamp-clock@se1exin.github.com", "name": "Unix Timestamp Clock", "pname": "unix-timestamp-clock", "description": "Show the current unix timestamp as a clock in the top bar.\n\nCopy-paste currently shown timestamp (left mouse button) or current timestamp (any other mouse button) to clipboard", "link": "https://extensions.gnome.org/extension/1375/unix-timestamp-clock/", "shell_version_map": {"38": {"version": "5", "sha256": "11awssml3n1kza1inny4j89bkmgpldzcglwa26pyr432i4la0jh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGN1cnJlbnQgdW5peCB0aW1lc3RhbXAgYXMgYSBjbG9jayBpbiB0aGUgdG9wIGJhci5cblxuQ29weS1wYXN0ZSBjdXJyZW50bHkgc2hvd24gdGltZXN0YW1wIChsZWZ0IG1vdXNlIGJ1dHRvbikgb3IgY3VycmVudCB0aW1lc3RhbXAgKGFueSBvdGhlciBtb3VzZSBidXR0b24pIHRvIGNsaXBib2FyZCIsCiAgIm5hbWUiOiAiVW5peCBUaW1lc3RhbXAgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZTFleGluL3VuaXgtdGltZXN0YW1wLWNsb2NrIiwKICAidXVpZCI6ICJ1bml4LXRpbWVzdGFtcC1jbG9ja0BzZTFleGluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "11awssml3n1kza1inny4j89bkmgpldzcglwa26pyr432i4la0jh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGN1cnJlbnQgdW5peCB0aW1lc3RhbXAgYXMgYSBjbG9jayBpbiB0aGUgdG9wIGJhci5cblxuQ29weS1wYXN0ZSBjdXJyZW50bHkgc2hvd24gdGltZXN0YW1wIChsZWZ0IG1vdXNlIGJ1dHRvbikgb3IgY3VycmVudCB0aW1lc3RhbXAgKGFueSBvdGhlciBtb3VzZSBidXR0b24pIHRvIGNsaXBib2FyZCIsCiAgIm5hbWUiOiAiVW5peCBUaW1lc3RhbXAgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZTFleGluL3VuaXgtdGltZXN0YW1wLWNsb2NrIiwKICAidXVpZCI6ICJ1bml4LXRpbWVzdGFtcC1jbG9ja0BzZTFleGluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "mprisindicatorbutton@JasonLG1979.github.io", "name": "Mpris Indicator Button", "pname": "mpris-indicator-button", "description": "A full featured MPRIS indicator.", "link": "https://extensions.gnome.org/extension/1379/mpris-indicator-button/", "shell_version_map": {"38": {"version": "18", "sha256": "0fnibrxsy4as3w46vnj0jk6h0ymgn8k06j3m9jq7ygp5kf45fgsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9KYXNvbkxHMTk3OS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXByaXMtaW5kaWNhdG9yLWJ1dHRvbi8iLAogICJ1dWlkIjogIm1wcmlzaW5kaWNhdG9yYnV0dG9uQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOAp9"}, "40": {"version": "18", "sha256": "0fnibrxsy4as3w46vnj0jk6h0ymgn8k06j3m9jq7ygp5kf45fgsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9KYXNvbkxHMTk3OS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXByaXMtaW5kaWNhdG9yLWJ1dHRvbi8iLAogICJ1dWlkIjogIm1wcmlzaW5kaWNhdG9yYnV0dG9uQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOAp9"}}}
+, {"uuid": "weatherintheclock@JasonLG1979.github.io", "name": "Weather In The Clock", "pname": "weather-in-the-clock", "description": "Display the current Weather in the Clock. GNOME Weather is required for this extension to function.", "link": "https://extensions.gnome.org/extension/1380/weather-in-the-clock/", "shell_version_map": {"38": {"version": "7", "sha256": "02aszdk2iswlqwkwi83gi69qzw0jwhill66qacrc7gg59mpfpq3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgV2VhdGhlciBpbiB0aGUgQ2xvY2suIEdOT01FIFdlYXRoZXIgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uLiIsCiAgIm5hbWUiOiAiV2VhdGhlciBJbiBUaGUgQ2xvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiSmFzb25MRzE5NzlAZ2l0aHViLmlvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0phc29uTEcxOTc5L2dub21lLXNoZWxsLWV4dGVuc2lvbi13ZWF0aGVyLWluLXRoZS1jbG9jay8iLAogICJ1dWlkIjogIndlYXRoZXJpbnRoZWNsb2NrQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "02aszdk2iswlqwkwi83gi69qzw0jwhill66qacrc7gg59mpfpq3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgV2VhdGhlciBpbiB0aGUgQ2xvY2suIEdOT01FIFdlYXRoZXIgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uLiIsCiAgIm5hbWUiOiAiV2VhdGhlciBJbiBUaGUgQ2xvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiSmFzb25MRzE5NzlAZ2l0aHViLmlvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0phc29uTEcxOTc5L2dub21lLXNoZWxsLWV4dGVuc2lvbi13ZWF0aGVyLWluLXRoZS1jbG9jay8iLAogICJ1dWlkIjogIndlYXRoZXJpbnRoZWNsb2NrQEphc29uTEcxOTc5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "LyricsFinder@alireza6677.gmail.com", "name": "Lyrics Finder", "pname": "lyrics-finder", "description": "Finding lyrics has never been easier\nJust play some music!\n\nIf you want to report a bug please don't forget to mention:\n- Gnome shell version\n- Your Linux distro\n- Extension version\n- Error messages (If you see any)\n\n(The DashToPanel extension might stop LyricsFinder to work properly. If you have any problem with extension not being shown, disable DashToPanel first.)", "link": "https://extensions.gnome.org/extension/1383/lyrics-finder/", "shell_version_map": {"40": {"version": "14", "sha256": "0nyc137pqg3mj6vb6nm12jba07hl0z733qpzlp72xkz9hcbrr5aw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpbmRpbmcgbHlyaWNzIGhhcyBuZXZlciBiZWVuIGVhc2llclxuSnVzdCBwbGF5IHNvbWUgbXVzaWMhXG5cbklmIHlvdSB3YW50IHRvIHJlcG9ydCBhIGJ1ZyBwbGVhc2UgZG9uJ3QgZm9yZ2V0IHRvIG1lbnRpb246XG4tIEdub21lIHNoZWxsIHZlcnNpb25cbi0gWW91ciBMaW51eCBkaXN0cm9cbi0gRXh0ZW5zaW9uIHZlcnNpb25cbi0gRXJyb3IgbWVzc2FnZXMgKElmIHlvdSBzZWUgYW55KVxuXG4oVGhlIERhc2hUb1BhbmVsIGV4dGVuc2lvbiBtaWdodCBzdG9wIEx5cmljc0ZpbmRlciB0byB3b3JrIHByb3Blcmx5LiBJZiB5b3UgaGF2ZSBhbnkgcHJvYmxlbSB3aXRoIGV4dGVuc2lvbiBub3QgYmVpbmcgc2hvd24sIGRpc2FibGUgRGFzaFRvUGFuZWwgZmlyc3QuKSIsCiAgIm5hbWUiOiAiTHlyaWNzIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5seXJpY3MtZmluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9seXJpY3MtZmluZGVyLWdub21lLWV4dCIsCiAgInV1aWQiOiAiTHlyaWNzRmluZGVyQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "you2ber@konkor", "name": "you2ber", "pname": "you2ber", "description": "Gnome Youtube Downloader\n\n Simple helper for youtube-dl project. It allows you to save locally desired media content without any browser extensions. Just copy URL address of a media content to the clipboard and select desired quality profile or custom format for the item in the extension menu to store it.\n * Required the installation of ffmpeg (youtube-dl dependency for media manipulation)\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1392/you2ber/", "shell_version_map": {"40": {"version": "9", "sha256": "0vqfzsh8ak0k8yzgcsv5g53wr3rh85acq9w8da23fablp5y160jp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFlvdXR1YmUgRG93bmxvYWRlclxuXG4gU2ltcGxlIGhlbHBlciBmb3IgeW91dHViZS1kbCBwcm9qZWN0LiBJdCBhbGxvd3MgeW91IHRvIHNhdmUgbG9jYWxseSBkZXNpcmVkIG1lZGlhIGNvbnRlbnQgd2l0aG91dCBhbnkgYnJvd3NlciBleHRlbnNpb25zLiBKdXN0IGNvcHkgVVJMIGFkZHJlc3Mgb2YgYSBtZWRpYSBjb250ZW50IHRvIHRoZSBjbGlwYm9hcmQgYW5kIHNlbGVjdCBkZXNpcmVkIHF1YWxpdHkgcHJvZmlsZSBvciBjdXN0b20gZm9ybWF0IGZvciB0aGUgaXRlbSBpbiB0aGUgZXh0ZW5zaW9uIG1lbnUgdG8gc3RvcmUgaXQuXG4gKiBSZXF1aXJlZCB0aGUgaW5zdGFsbGF0aW9uIG9mIGZmbXBlZyAoeW91dHViZS1kbCBkZXBlbmRlbmN5IGZvciBtZWRpYSBtYW5pcHVsYXRpb24pXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBob3ctdG8gc2VlIFJFQURNRS5tZCIsCiAgIm5hbWUiOiAieW91MmJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcua29ua29yLnlvdTJiZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwLjAiLAogICAgIjQwLmJldGEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb25rb3IveW91MmJlciIsCiAgInV1aWQiOiAieW91MmJlckBrb25rb3IiLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "files-view@argonauta.framagit.org", "name": "Files View", "pname": "files-view", "description": "A files view for GNOME Shell.\n\nThis extension displays a “Files” view similar to the Applications view, with the conveniences of a file manager. It is accessed through the combination SUPER + F.\n\nGNOME Shell 40 and later are not supported. No further developments planned.", "link": "https://extensions.gnome.org/extension/1395/files-view/", "shell_version_map": {"38": {"version": "11", "sha256": "1b63c4391jqhh6zcmd0la5mhmgx37f0ydq7mk1c0bzy07gql4x68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZmlsZXMgdmlldyBmb3IgR05PTUUgU2hlbGwuXG5cblRoaXMgZXh0ZW5zaW9uIGRpc3BsYXlzIGEgXHUyMDFjRmlsZXNcdTIwMWQgdmlldyBzaW1pbGFyIHRvIHRoZSBBcHBsaWNhdGlvbnMgdmlldywgd2l0aCB0aGUgY29udmVuaWVuY2VzIG9mIGEgZmlsZSBtYW5hZ2VyLiBJdCBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBjb21iaW5hdGlvbiBTVVBFUiArIEYuXG5cbkdOT01FIFNoZWxsIDQwIGFuZCBsYXRlciBhcmUgbm90IHN1cHBvcnRlZC4gTm8gZnVydGhlciBkZXZlbG9wbWVudHMgcGxhbm5lZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmaWxlcy12aWV3IiwKICAibmFtZSI6ICJGaWxlcyBWaWV3IiwKICAicmVjZW50bHktb3Blbi1wZXJzaXN0ZW50LWZpbGVuYW1lIjogInJlY2VudGx5LW9wZW4tZm9sZGVycy1maWxlcy12aWV3LWdub21lLXNoZWxsLWV4dGVuc2lvbi5qc29uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZpbGVzLXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJhbWFnaXQub3JnL2FiYWtray9BcmdvbmF1dGEiLAogICJ1dWlkIjogImZpbGVzLXZpZXdAYXJnb25hdXRhLmZyYW1hZ2l0Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "bluetooth-quick-connect@bjarosze.gmail.com", "name": "Bluetooth quick connect", "pname": "bluetooth-quick-connect", "description": "Allow to connect to paired devices from gnome control panel.\n", "link": "https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/", "shell_version_map": {"38": {"version": "16", "sha256": "0068kd11bbdqq79hh50dri7qj3x6sgyf46dfml8kmgzw8w7s5h61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "20", "sha256": "1g0r0km1ilb4wnv91q01lyycmzqvlyng105qkrnp26k26pf0hy5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBxdWljayBjb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC5iZXRhIiwKICAgICI0MC5yYyIsCiAgICAiNDAuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JqYXJvc3plL2dub21lLWJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJibHVldG9vdGgtcXVpY2stY29ubmVjdEBiamFyb3N6ZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "syspeek-gs@gs.eros2.info", "name": "SysPeek-GS", "pname": "syspeek-gs", "description": "Simple CPU load monitor widget inspired by SysPeek indicator", "link": "https://extensions.gnome.org/extension/1409/syspeek-gs/", "shell_version_map": {"38": {"version": "7", "sha256": "04hj4mfrnviwiwsgrhnnh3sc0x9i1bvkgwnijqgwkwapy8mg3km4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "04hj4mfrnviwiwsgrhnnh3sc0x9i1bvkgwnijqgwkwapy8mg3km4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V1Z2VuZS1yb20vc3lzcGVlay1ncyIsCiAgInV1aWQiOiAic3lzcGVlay1nc0Bncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "discrete-brightness@gs.eros2.info", "name": "Discrete brightness", "pname": "discrete-brightness", "description": "Discrete brightness indicator change brightness in discrete steps, unlike default smooth brightness bar in Gnome Shell (for laptops/tablets only)", "link": "https://extensions.gnome.org/extension/1410/discrete-brightness/", "shell_version_map": {"38": {"version": "5", "sha256": "0qiv41b4hh4n2hzhmajq6rlc9yvj095z49ngvhsqp6vfa0xzaiw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwgKGZvciBsYXB0b3BzL3RhYmxldHMgb25seSkiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0qiv41b4hh4n2hzhmajq6rlc9yvj095z49ngvhsqp6vfa0xzaiw6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2NyZXRlIGJyaWdodG5lc3MgaW5kaWNhdG9yIGNoYW5nZSBicmlnaHRuZXNzIGluIGRpc2NyZXRlIHN0ZXBzLCB1bmxpa2UgZGVmYXVsdCBzbW9vdGggYnJpZ2h0bmVzcyBiYXIgaW4gR25vbWUgU2hlbGwgKGZvciBsYXB0b3BzL3RhYmxldHMgb25seSkiLAogICJuYW1lIjogIkRpc2NyZXRlIGJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL2Rpc2NyZXRlLWJyaWdodG5lc3MiLAogICJ1dWlkIjogImRpc2NyZXRlLWJyaWdodG5lc3NAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "quake-mode@repsac-by.github.com", "name": "quake-mode", "pname": "quake-mode", "description": "Drop-down mode for any application", "link": "https://extensions.gnome.org/extension/1411/quake-mode/", "shell_version_map": {"38": {"version": "3", "sha256": "17498v2jw85fhrsldvgnj3x01h00wqarsp9zqp6ym4h7syzbjxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZXBzYWMtYnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1YWtlLW1vZGUiLAogICJ1dWlkIjogInF1YWtlLW1vZGVAcmVwc2FjLWJ5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "4", "sha256": "0s1338hv9vhip4cpv2b7srp5c9fsv1rbxk95lrj6m5jzs2qb7mym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRyb3AtZG93biBtb2RlIGZvciBhbnkgYXBwbGljYXRpb24iLAogICJuYW1lIjogInF1YWtlLW1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmVwc2FjLWJ5L2dub21lLXNoZWxsLWV4dGVuc2lvbi1xdWFrZS1tb2RlIiwKICAidXVpZCI6ICJxdWFrZS1tb2RlQHJlcHNhYy1ieS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "unblank@sun.wxg@gmail.com", "name": "Unblank lock screen", "pname": "unblank", "description": "Unblank lock screen. \n\n After you install this extension, the extension will be enabled by default. If you want to disable this extension, you need to delete this extension or go to this extension settings to turn off switch.", "link": "https://extensions.gnome.org/extension/1414/unblank/", "shell_version_map": {"38": {"version": "20", "sha256": "017sq5m7rlalajrc5yp0v7n528bssfaql7hry3p4rv8hk2ypfxnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIFxuXG4gQWZ0ZXIgeW91IGluc3RhbGwgdGhpcyBleHRlbnNpb24sIHRoZSBleHRlbnNpb24gd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24sIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGlzIGV4dGVuc2lvbiBvciBnbyB0byB0aGlzIGV4dGVuc2lvbiBzZXR0aW5ncyB0byB0dXJuIG9mZiBzd2l0Y2guIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5ibGFuayIsCiAgInV1aWQiOiAidW5ibGFua0BzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "22", "sha256": "1jpp0ndnsw9cf4z26snaip6jdsdj4a6qivyn2k35vavqmg403ksw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVuYmxhbmsgbG9jayBzY3JlZW4uIFxuXG4gQWZ0ZXIgeW91IGluc3RhbGwgdGhpcyBleHRlbnNpb24sIHRoZSBleHRlbnNpb24gd2lsbCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24sIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGlzIGV4dGVuc2lvbiBvciBnbyB0byB0aGlzIGV4dGVuc2lvbiBzZXR0aW5ncyB0byB0dXJuIG9mZiBzd2l0Y2guIiwKICAibmFtZSI6ICJVbmJsYW5rIGxvY2sgc2NyZWVuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuYmxhbmsiLAogICJ1dWlkIjogInVuYmxhbmtAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
+, {"uuid": "vbox-applet@gs.eros2.info", "name": "VirtualBox applet", "pname": "virtualbox-applet", "description": "Provide menu to run VirtualBox machines and switch between running VMs", "link": "https://extensions.gnome.org/extension/1415/virtualbox-applet/", "shell_version_map": {"38": {"version": "7", "sha256": "0vpsnysdb4wqjd6hb9vprz141293ra3pb8q0cnysnbyh9sh0mhjc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0vpsnysdb4wqjd6hb9vprz141293ra3pb8q0cnysnbyh9sh0mhjc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS92Ym94LWFwcGxldCIsCiAgInV1aWQiOiAidmJveC1hcHBsZXRAZ3MuZXJvczIuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "stocks@infinicode.de", "name": "Stocks Extension", "pname": "stocks-extension", "description": "Stocks Extension brings stock quotes to your GNOME Shell Panel", "link": "https://extensions.gnome.org/extension/1422/stocks-extension/", "shell_version_map": {"38": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
+, {"uuid": "showtime@xenlism.github.io", "name": "Showtime  - Desktop Widget", "pname": "showtime", "description": "Date &amp;amp;amp;amp;amp;amp;amp; Clock Desktop Widget\n\nMove Widget by Press Super + Drag Widget\nhttps://github.com/xenlism/showtime", "link": "https://extensions.gnome.org/extension/1429/showtime/", "shell_version_map": {"38": {"version": "4", "sha256": "12k6spjhg2ykgh5x3mily0dps450pyj9vyv1bay5w919y9swplaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWVAeGVubGlzbS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "5", "sha256": "0p10as2k6lkh3vj5860hvmj98by18ih8r2k7y36iqrxqpl3s8fd4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInNob3d0aW1lQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "10", "sha256": "06y036j49arkha0zjvgg2mcxgpvgpp9gzvjni09rdpvw3hpi75lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnZib2dkYW5vdjg3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1rdWJlY29uZmlnIiwKICAidXVpZCI6ICJrdWJlX2NvbmZpZ0B2dmJvZ2Rhbm92ODcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "transparent-window-moving@noobsai.github.com", "name": "Transparent Window Moving", "pname": "transparent-window-moving", "description": "Makes the window semi-transparent when moving or resizing", "link": "https://extensions.gnome.org/extension/1446/transparent-window-moving/", "shell_version_map": {"38": {"version": "6", "sha256": "0vllnrscjaqx77wb44803q6n3wk590dxacjfsw7ympbgqhikzc0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "7", "sha256": "0gjmbzc9vfbgdvgf2ghhnbla3arfgnfc44w6cczr26n7svhaqinv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL05vb2JzYWkvdHJhbnNwYXJlbnQtd2luZG93LW1vdmluZyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93LW1vdmluZ0Bub29ic2FpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "transparent-window@pbxqdown.github.com", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/1454/transparent-window/", "shell_version_map": {"38": {"version": "4", "sha256": "1x9k317d54cc6cqfi43acsb97xi0ah06h6iivhj04yzxmwmb012r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BieHFkb3duL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC13aW5kb3ciLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXdpbmRvd0BwYnhxZG93bi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "Vitals@CoreCoding.com", "name": "Vitals", "pname": "vitals", "description": "A glimpse into your computer's temperature, voltage, fan speed, memory usage, processor load, system resources, network speed and storage stats. This is a one stop shop to monitor all of your vital sensors. Uses asynchronous polling to provide a smooth user experience. Feature requests or bugs? Please use GitHub.", "link": "https://extensions.gnome.org/extension/1460/vitals/", "shell_version_map": {"38": {"version": "39", "sha256": "1wqsw7sy0xww6z1wkkmwpcfvb54kajanp6p50a3fv5gb8yvmhigl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29yZWNvZGluZy9WaXRhbHMiLAogICJ1dWlkIjogIlZpdGFsc0BDb3JlQ29kaW5nLmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "40", "sha256": "01vpagmwx9vgdd32nm1zf4zkddjm7rrl552w3c5pjcwdvs2yv3nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvcmVjb2RpbmcvVml0YWxzIiwKICAidXVpZCI6ICJWaXRhbHNAQ29yZUNvZGluZy5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
+, {"uuid": "desktop-icons@csoriano", "name": "Desktop Icons", "pname": "desktop-icons", "description": "Add icons to the desktop", "link": "https://extensions.gnome.org/extension/1465/desktop-icons/", "shell_version_map": {"38": {"version": "19", "sha256": "01qdh1kigl3ck1mzgha1a9218lpam5b54ai72mpvr64gkaax2mcv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBpY29ucyB0byB0aGUgZGVza3RvcCIsCiAgIm5hbWUiOiAiRGVza3RvcCBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvV29ybGQvU2hlbGxFeHRlbnNpb25zL2Rlc2t0b3AtaWNvbnMiLAogICJ1dWlkIjogImRlc2t0b3AtaWNvbnNAY3Nvcmlhbm8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
+, {"uuid": "rdesktop-menu@bastien.git.geekwu.org", "name": "Rdesktop launcher", "pname": "rdesktop-launcher", "description": "Add a servers status menu for quickly running rdesktop", "link": "https://extensions.gnome.org/extension/1467/rdesktop-launcher/", "shell_version_map": {"38": {"version": "11", "sha256": "16dj3yyma4nwn9vvf85i9ws4w9s7z2bz0gapgm1xb3g4q74vckjw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "16dj3yyma4nwn9vvf85i9ws4w9s7z2bz0gapgm1xb3g4q74vckjw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHNlcnZlcnMgc3RhdHVzIG1lbnUgZm9yIHF1aWNrbHkgcnVubmluZyByZGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJyZGVza3RvcC1tZW51IiwKICAibmFtZSI6ICJSZGVza3RvcCBsYXVuY2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXQuZ2Vla3d1Lm9yZy9iYXN0aWVuL3JkZXNrdG9wLW1lbnUiLAogICJ1dWlkIjogInJkZXNrdG9wLW1lbnVAYmFzdGllbi5naXQuZ2Vla3d1Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "batime@martin.zurowietz.de", "name": "Battery Time", "pname": "battery-time", "description": "Show the remaining time until fully charged/discharged instead of the battery charge in percent in the panel.", "link": "https://extensions.gnome.org/extension/1475/battery-time/", "shell_version_map": {"40": {"version": "7", "sha256": "0fnfilxj76xmxjhrv309195pqw9c400llmkvvr5vlk08yjky6ib1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBpbnN0ZWFkIG9mIHRoZSBiYXR0ZXJ5IGNoYXJnZSBpbiBwZXJjZW50IGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXRpbWUiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXRpbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1iYXRpbWUiLAogICJ1dWlkIjogImJhdGltZUBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "unlockDialogBackground@sun.wxg@gmail.com", "name": "Lock screen background", "pname": "unlock-dialog-background", "description": "Change lock screen background.\nIf you use Ubuntu, install package gir1.2-clutter-1.0 first.", "link": "https://extensions.gnome.org/extension/1476/unlock-dialog-background/", "shell_version_map": {"38": {"version": "18", "sha256": "1j9m4qkd0i6l4nxwpxjwvp3nh0zifpzvp0xwp4cqqlr2flb6lwps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiMy4zNi40IiwKICAgICIzLjM2LjUiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zNi43IiwKICAgICIzLjM2LjgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "20", "sha256": "1gin7mpafmx8h177alhhlrjqpq5354napc0jqaj4l4f7ynzn4843", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBsb2NrIHNjcmVlbiBiYWNrZ3JvdW5kLlxuSWYgeW91IHVzZSBVYnVudHUsIGluc3RhbGwgcGFja2FnZSBnaXIxLjItY2x1dHRlci0xLjAgZmlyc3QuIiwKICAibmFtZSI6ICJMb2NrIHNjcmVlbiBiYWNrZ3JvdW5kIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVubG9ja0RpYWxvZ0JhY2tncm91bmQiLAogICJ1dWlkIjogInVubG9ja0RpYWxvZ0JhY2tncm91bmRAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "wsmatrix@martin.zurowietz.de", "name": "Workspace Matrix", "pname": "workspace-matrix", "description": "Arrange workspaces in a two dimensional grid with workspace thumbnails.", "link": "https://extensions.gnome.org/extension/1485/workspace-matrix/", "shell_version_map": {"38": {"version": "27", "sha256": "0b76x0li5a8x42l67ykbw34k4cfmbxqvz36zighhfw4qmxsc36cr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLXdzbWF0cml4IiwKICAidXVpZCI6ICJ3c21hdHJpeEBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
+, {"uuid": "extensions-sync@elhan.io", "name": "Extensions Sync", "pname": "extensions-sync", "description": "Sync all extensions and their configurations across all gnome instances", "link": "https://extensions.gnome.org/extension/1486/extensions-sync/", "shell_version_map": {"38": {"version": "12", "sha256": "0yb0brjnqvvlqpdyh841qwh3q2d02vi1an0s93gb2b6kagy1g7zd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "14", "sha256": "0805li10x12jasjhpngp3p24xvxmbcvskvhxc11m5nv286s4gpx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29hZS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLXN5bmMiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtc3luY0BlbGhhbi5pbyIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "containers@royg", "name": "Containers", "pname": "containers", "description": "Manage podman containers through a gnome-shell menu", "link": "https://extensions.gnome.org/extension/1500/containers/", "shell_version_map": {"40": {"version": "13", "sha256": "1hbjr5s5mx9dqdj3a12hmbz5fzcpm65pvifa86hwy2m852zj2nc5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZ29sYW5naC9nbm9tZS1zaGVsbC1leHRlbnNpb24tY29udGFpbmVycyIsCiAgInV1aWQiOiAiY29udGFpbmVyc0Byb3lnIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "tray-icons@zhangkaizhao.com", "name": "Tray Icons", "pname": "tray-icons", "description": "Tray icons", "link": "https://extensions.gnome.org/extension/1503/tray-icons/", "shell_version_map": {"38": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "new-mail-indicator@fthx", "name": "New Mail Indicator", "pname": "new-mail-indicator", "description": "An icon beside the date in the topbar to show if there are unread emails when running your default email client.\n\n It checks the notifications in the message tray related to a new mail, no extra configuration needed, very light extension. Click on the icon does toggle your email client window.*** Do not disable the notifications of your default email client! *** It is not a standalone mail checker, you need your email client to be running. *** Please check that the xdg-utils package is installed.\n\n Email clients verified at the moment are: Thunderbird, Evolution, Geary, Mailspring. Please ask to add the client, including special packaging (snap/flatpak), that you need. If you report an error, please provide at least the distribution and the email client you use through the GitHub link.\n\n For persistent notifications only, see: https://extensions.gnome.org/extension/3951/persistent-email-notifications .", "link": "https://extensions.gnome.org/extension/1505/new-mail-indicator/", "shell_version_map": {"38": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}, "40": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "drop-down-terminal-x@bigbn.pro", "name": "Drop Down Terminal X", "pname": "drop-down-terminal-x", "description": "THIS EXTENSION IS NO LONGER SUPPORTED.\n\nIf you are looking for an alternative please look at that https://extensions.gnome.org/extension/3780/ddterm \nawesome extension.\n\nA GNOME Shell drop down terminal with extra feautures.\n \nSpecial thanks to:\n- Osman Alperen Elhan (https://github.com/oae)\n- Balder Claassen (https://github.com/balderclaassen)\n- Adrien Pyke (https://github.com/kufii)\n- Alan J Carvajal (https://github.com/ajcarvajal)\n- Massimo Mund (https://github.com/masmu)\n- Jakub Żywiec (https://github.com/jakubzet)\n- Mattias Eriksson (https://github.com/snaggen)\n- Henry78 (https://github.com/Henry78)\n- Maxim Toropov (https://github.com/MaxMaxoff)\nfor active contribution.\n\nBased on original extension \"gs-extensions-drop-down-terminal\" from Stéphane Démurget (https://github.com/zzrough)", "link": "https://extensions.gnome.org/extension/1509/drop-down-terminal-x/", "shell_version_map": {"38": {"version": "17", "sha256": "1k90g6bndw1xr56k7lwlxyw89aqbl47spkfmj1lq224z83w6hzdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRISVMgRVhURU5TSU9OIElTIE5PIExPTkdFUiBTVVBQT1JURUQuXG5cbklmIHlvdSBhcmUgbG9va2luZyBmb3IgYW4gYWx0ZXJuYXRpdmUgcGxlYXNlIGxvb2sgYXQgdGhhdCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zNzgwL2RkdGVybSBcbmF3ZXNvbWUgZXh0ZW5zaW9uLlxuXG5BIEdOT01FIFNoZWxsIGRyb3AgZG93biB0ZXJtaW5hbCB3aXRoIGV4dHJhIGZlYXV0dXJlcy5cbiBcblNwZWNpYWwgdGhhbmtzIHRvOlxuLSBPc21hbiBBbHBlcmVuIEVsaGFuIChodHRwczovL2dpdGh1Yi5jb20vb2FlKVxuLSBCYWxkZXIgQ2xhYXNzZW4gKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWxkZXJjbGFhc3Nlbilcbi0gQWRyaWVuIFB5a2UgKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWZpaSlcbi0gQWxhbiBKIENhcnZhamFsIChodHRwczovL2dpdGh1Yi5jb20vYWpjYXJ2YWphbClcbi0gTWFzc2ltbyBNdW5kIChodHRwczovL2dpdGh1Yi5jb20vbWFzbXUpXG4tIEpha3ViIFx1MDE3Ynl3aWVjIChodHRwczovL2dpdGh1Yi5jb20vamFrdWJ6ZXQpXG4tIE1hdHRpYXMgRXJpa3Nzb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmFnZ2VuKVxuLSBIZW5yeTc4IChodHRwczovL2dpdGh1Yi5jb20vSGVucnk3OClcbi0gTWF4aW0gVG9yb3BvdiAoaHR0cHM6Ly9naXRodWIuY29tL01heE1heG9mZilcbmZvciBhY3RpdmUgY29udHJpYnV0aW9uLlxuXG5CYXNlZCBvbiBvcmlnaW5hbCBleHRlbnNpb24gXCJncy1leHRlbnNpb25zLWRyb3AtZG93bi10ZXJtaW5hbFwiIGZyb20gU3RcdTAwZTlwaGFuZSBEXHUwMGU5bXVyZ2V0IChodHRwczovL2dpdGh1Yi5jb20venpyb3VnaCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcm9wLWRvd24tdGVybWluYWwteCIsCiAgImlkIjogImRyb3AtZG93bi10ZXJtaW5hbC14IiwKICAibmFtZSI6ICJEcm9wIERvd24gVGVybWluYWwgWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4wIiwKICAgICIzLjI4LjEiLAogICAgIjMuMjguMiIsCiAgICAiMy4zMC4wIiwKICAgICIzLjMwLjEiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zMi4wIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNC4wIiwKICAgICIzLjM0LjQiLAogICAgIjMuMzYuMCIsCiAgICAiMy4zNi4xIiwKICAgICIzLjM2LjIiLAogICAgIjMuMzguMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpZ2JuL2dzLWV4dGVuc2lvbnMtZHJvcC1kb3duLXRlcm1pbmFsIiwKICAidXVpZCI6ICJkcm9wLWRvd24tdGVybWluYWwteEBiaWdibi5wcm8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
+, {"uuid": "Rounded_Corners@lennart-k", "name": "Rounded Corners", "pname": "rounded-corners", "description": "Creates rounded corners for every monitor", "link": "https://extensions.gnome.org/extension/1514/rounded-corners/", "shell_version_map": {"38": {"version": "4", "sha256": "0pvbnv97g2mjbklszxvp6df50iw9kyr1ssfza8ia9779x5zq9bk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sZW5uYXJ0LWsvZ25vbWUtcm91bmRlZC1jb3JuZXJzIiwKICAidXVpZCI6ICJSb3VuZGVkX0Nvcm5lcnNAbGVubmFydC1rIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "scrovol@andyholmes.github.io", "name": "Scrovol", "pname": "scrovol", "description": "Change the volume by scrolling anywhere on the System Tray.\n\nWith this extension, you can scroll over Night Light, WiFi, Volume, Battery or any other icon in the system status tray to change the volume, instead of just the Volume icon.", "link": "https://extensions.gnome.org/extension/1519/scrovol/", "shell_version_map": {"40": {"version": "4", "sha256": "1md52ygz481nvhq00bkq2ymby7f647cfvw4wx1wqkwp7b796d59c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgdm9sdW1lIGJ5IHNjcm9sbGluZyBhbnl3aGVyZSBvbiB0aGUgU3lzdGVtIFRyYXkuXG5cbldpdGggdGhpcyBleHRlbnNpb24sIHlvdSBjYW4gc2Nyb2xsIG92ZXIgTmlnaHQgTGlnaHQsIFdpRmksIFZvbHVtZSwgQmF0dGVyeSBvciBhbnkgb3RoZXIgaWNvbiBpbiB0aGUgc3lzdGVtIHN0YXR1cyB0cmF5IHRvIGNoYW5nZSB0aGUgdm9sdW1lLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIFZvbHVtZSBpY29uLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3Jvdm9sIiwKICAibmFtZSI6ICJTY3Jvdm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Nyb3ZvbC8iLAogICJ1dWlkIjogInNjcm92b2xAYW5keWhvbG1lcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "notification-center@Selenium-H", "name": "Notification Center", "pname": "notification-centerselenium-h", "description": "Detach notification center to top panel and customizations\n\nPress the Refresh button on the left of header bar to Reload the extension.", "link": "https://extensions.gnome.org/extension/1526/notification-centerselenium-h/", "shell_version_map": {"38": {"version": "23", "sha256": "12acmck46qpjgkcwjms4wi4gfnnyhz0yjh29ls2xz4xlkdzw71pd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiRGV0YWNoIG5vdGlmaWNhdGlvbiBjZW50ZXIgdG8gdG9wIHBhbmVsIGFuZCBjdXN0b21pemF0aW9ucyIsCiAgImRlc2NyaXB0aW9uIjogIkRldGFjaCBub3RpZmljYXRpb24gY2VudGVyIHRvIHRvcCBwYW5lbCBhbmQgY3VzdG9taXphdGlvbnNcblxuUHJlc3MgdGhlIFJlZnJlc2ggYnV0dG9uIG9uIHRoZSBsZWZ0IG9mIGhlYWRlciBiYXIgdG8gUmVsb2FkIHRoZSBleHRlbnNpb24uIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gQ2VudGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGlmaWNhdGlvbi1jZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAic3RhdHVzIjogIiAiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvTm90aWZpY2F0aW9uLUNlbnRlciIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWNlbnRlckBTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "lockkeys@fawtytoo", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock and Capslock status on the panel. Icons are auto hidden. Simplified with no menus, notifications or settings.\n\nWayland is supported for Gnome Shell 3.38 or newer.", "link": "https://extensions.gnome.org/extension/1532/lock-keys/", "shell_version_map": {"38": {"version": "12", "sha256": "0cnd71926fyxcq6gv0j6xiy8w9fw0lvsby4rmzamywg1rbb5i1jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIHN1cHBvcnRlZCBmb3IgR25vbWUgU2hlbGwgMy4zOCBvciBuZXdlci4iLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiU3RldmUgQ2xhcmssIEthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0cnd71926fyxcq6gv0j6xiy8w9fw0lvsby4rmzamywg1rbb5i1jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIHN1cHBvcnRlZCBmb3IgR25vbWUgU2hlbGwgMy4zOCBvciBuZXdlci4iLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiU3RldmUgQ2xhcmssIEthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "fullscreen-hot-corner@sorrow.about.alice.pm.me", "name": "Fullscreen Hot Corner", "pname": "fullscreen-hot-corner", "description": "Enables hot corner in fullscreen mode", "link": "https://extensions.gnome.org/extension/1562/fullscreen-hot-corner/", "shell_version_map": {"38": {"version": "6", "sha256": "1lcpw06aqja4q7qqfvds5nv2zvzrjh56lymj1al4kiql92gbwzp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZnVsbHNjcmVlbi1ob3QtY29ybmVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWhvdC1jb3JuZXJAc29ycm93LmFib3V0LmFsaWNlLnBtLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "8", "sha256": "07ly7kgjz15462d2xx53l4rmgydw72jm4f21vsil8fyynifv5smv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZnVsbHNjcmVlbi1ob3QtY29ybmVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWhvdC1jb3JuZXJAc29ycm93LmFib3V0LmFsaWNlLnBtLm1lIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "worksets@blipk.xyz", "name": "Customised Workspaces", "pname": "worksets", "description": "Customised Workspaces enables creating isolated and customised workspaces.\n\n* Customise the dash to be unique for each workspace, each with their own favourites\n* Only show running applications on the dash in their respective workspace\n* Choose a custom background image for each workspace\n* Minor UI tweaks to the overview workspaces\n* Save each customisation, set them to autoload on specific workspaces\n* Hide the extension once you've configured your preferences to enjoy seamlessly upgraded workspaces in gnome shell\n\nCompatible for use with any of these extensions to complete your workspace upgrade:\n\n* Dash to Panel - https://extensions.gnome.org/extension/1160/dash-to-panel/\n* Dash to Dock - https://extensions.gnome.org/extension/307/dash-to-dock/\n* Auto Move Windows - https://extensions.gnome.org/extension/16/auto-move-windows/\n* Vertical Overview - https://github.com/RensAlthuis/vertical-overview", "link": "https://extensions.gnome.org/extension/1583/worksets/", "shell_version_map": {"38": {"version": "30", "sha256": "0mjah9nx66caqmfbz8wrvg6iyhxp7jmbgwx1gnp8k2a2z536n1iw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDMwCn0="}, "40": {"version": "30", "sha256": "0mjah9nx66caqmfbz8wrvg6iyhxp7jmbgwx1gnp8k2a2z536n1iw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDMwCn0="}}}
+, {"uuid": "NordVPN_Connect@poilrouge.fr", "name": "NordVPN Connect", "pname": "nordvpn-connect", "description": "Unofficial Gnome-Shell Extension to provide a GUI for the official NordVPN CLI Tool.", "link": "https://extensions.gnome.org/extension/1595/nordvpn-connect/", "shell_version_map": {"38": {"version": "15", "sha256": "0xccvy3kqgglhcjhixlxi65sa49lbm896lra2sks65arkx3fh63k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsZXhQb2lscm91Z2UvTm9yZFZQTi1jb25uZWN0IiwKICAidXVpZCI6ICJOb3JkVlBOX0Nvbm5lY3RAcG9pbHJvdWdlLmZyIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
+, {"uuid": "arrangeWindows@sun.wxg@gmail.com", "name": "Arrange Windows", "pname": "arrange-windows", "description": "Arrange windows on the monitors\n\nHotkeys:\n Ctrl+Alt+1 Cascade windows\n Ctrl+Alt+2 Tiling windows\n Ctrl+Alt+3 Side by side windows\n Ctrl+Alt+4 Stack windows", "link": "https://extensions.gnome.org/extension/1604/arrange-windows/", "shell_version_map": {"38": {"version": "20", "sha256": "1akrix6iji78bhwpvsbwf9lxyjgsv2496rdfadns4f8wpgs4d1n4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXJyYW5nZVdpbmRvd3MiLAogICJ1dWlkIjogImFycmFuZ2VXaW5kb3dzQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}, "40": {"version": "20", "sha256": "1akrix6iji78bhwpvsbwf9lxyjgsv2496rdfadns4f8wpgs4d1n4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBvbiB0aGUgbW9uaXRvcnNcblxuSG90a2V5czpcbiBDdHJsK0FsdCsxIENhc2NhZGUgd2luZG93c1xuIEN0cmwrQWx0KzIgVGlsaW5nIHdpbmRvd3NcbiBDdHJsK0FsdCszIFNpZGUgYnkgc2lkZSB3aW5kb3dzXG4gQ3RybCtBbHQrNCBTdGFjayB3aW5kb3dzIiwKICAibmFtZSI6ICJBcnJhbmdlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogInN1bi53eGdAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXJyYW5nZVdpbmRvd3MiLAogICJ1dWlkIjogImFycmFuZ2VXaW5kb3dzQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
+, {"uuid": "fullscreen-notifications@sorrow.about.alice.pm.me", "name": "Fullscreen Notifications", "pname": "fullscreen-notifications", "description": "Enables all notifications in fullscreen mode", "link": "https://extensions.gnome.org/extension/1610/fullscreen-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "1g1dgrhbif7qcxga7302bhhdjrr2v3vkp6dfavyclzsdkkrr2wwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMgaW4gZnVsbHNjcmVlbiBtb2RlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE5vdGlmaWNhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZ1bGxzY3JlZW4tbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1ub3RpZmljYXRpb25zQHNvcnJvdy5hYm91dC5hbGljZS5wbS5tZSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "4", "sha256": "107lii2hxfs6wa6a94yhfjmk1szpyia3rbhb7lf8nwj1gdra54zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYWxsIG5vdGlmaWNhdGlvbnMgaW4gZnVsbHNjcmVlbiBtb2RlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE5vdGlmaWNhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zb2FsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mdWxsc2NyZWVuLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4tbm90aWZpY2F0aW9uc0Bzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "panelScroll@sun.wxg@gmail.com", "name": "panel scroll", "pname": "panel-scroll", "description": "Switch windows or workspace by mouse scroll on the panel.\nPointer on left of panel, switch windows.\nPointer on right of panel, switch workspaces.", "link": "https://extensions.gnome.org/extension/1616/panel-scroll/", "shell_version_map": {"38": {"version": "10", "sha256": "1llw16wszrkrrzrlyd1ppw8kn1cqp2z4irzi9q7v2nr47hrk14kd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIHdvcmtzcGFjZSBieSBtb3VzZSBzY3JvbGwgb24gdGhlIHBhbmVsLlxuUG9pbnRlciBvbiBsZWZ0IG9mIHBhbmVsLCBzd2l0Y2ggd2luZG93cy5cblBvaW50ZXIgb24gcmlnaHQgb2YgcGFuZWwsIHN3aXRjaCB3b3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAicGFuZWwgc2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGFuZWxTY3JvbGwiLAogICJ1dWlkIjogInBhbmVsU2Nyb2xsQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "13", "sha256": "1679cxazd2vl7bkhamq3hxw7r5wpb2plw3h346gvg1w0blc1b7ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIHdvcmtzcGFjZSBieSBtb3VzZSBzY3JvbGwgb24gdGhlIHBhbmVsLlxuUG9pbnRlciBvbiBsZWZ0IG9mIHBhbmVsLCBzd2l0Y2ggd2luZG93cy5cblBvaW50ZXIgb24gcmlnaHQgb2YgcGFuZWwsIHN3aXRjaCB3b3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAicGFuZWwgc2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBhbmVsU2Nyb2xsIiwKICAidXVpZCI6ICJwYW5lbFNjcm9sbEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "soft-brightness@fifi.org", "name": "Soft brightness", "pname": "soft-brightness", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.", "link": "https://extensions.gnome.org/extension/1625/soft-brightness/", "shell_version_map": {"38": {"version": "27", "sha256": "0caz4ff1wa9qq9f0zvl2sa2c8d2ff5icvcqyfv9n9aqrknkpn3pa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzb2Z0LWJyaWdodG5lc3MiLAogICJuYW1lIjogIlNvZnQgYnJpZ2h0bmVzcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzMuOTAiLAogICAgIjMuMzYiLAogICAgIjMuMzUuMSIsCiAgICAiMy4zNS45MiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3NvZnQtYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzQGZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYyNy0wLWcyN2M0OTc4IiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "27", "sha256": "0caz4ff1wa9qq9f0zvl2sa2c8d2ff5icvcqyfv9n9aqrknkpn3pa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzb2Z0LWJyaWdodG5lc3MiLAogICJuYW1lIjogIlNvZnQgYnJpZ2h0bmVzcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzMuOTAiLAogICAgIjMuMzYiLAogICAgIjMuMzUuMSIsCiAgICAiMy4zNS45MiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3NvZnQtYnJpZ2h0bmVzcyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzQGZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYyNy0wLWcyN2M0OTc4IiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
+, {"uuid": "Resource_Monitor@Ory0n", "name": "Resource Monitor", "pname": "resource-monitor", "description": "Monitor the use of system resources like cpu, ram, disk, network and display them in gnome shell top bar.", "link": "https://extensions.gnome.org/extension/1634/resource-monitor/", "shell_version_map": {"38": {"version": "14", "sha256": "0mg6b54cinplc4i3kzn6p397a8flyivcyzg30pnfq7phhgpcnxwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "15", "sha256": "1q6scg003qyp84q7yd1f49kks0rr5k0wwlsq7m3ccnjk5dakqisa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "tweaks-system-menu@extensions.gnome-shell.fifi.org", "name": "Tweaks & Extensions in System Menu", "pname": "tweaks-in-system-menu", "description": "Put Gnome Tweaks and Extensions (on Shell 40 and later) in the System menu.", "link": "https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/", "shell_version_map": {"38": {"version": "15", "sha256": "0i6bj4kd59wg1sm29a1yr9s1is2rkxnabn04hlj66y5n6lv6gxgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNS0wLWdlM2IwNGM3IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "40": {"version": "15", "sha256": "0i6bj4kd59wg1sm29a1yr9s1is2rkxnabn04hlj66y5n6lv6gxgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNS0wLWdlM2IwNGM3IiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
+, {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {"38": {"version": "11", "sha256": "14czzkqs5my6ypg3ggxlcmxbf8aw1ing6nfgz26zkgbvnrfnvfqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcGljb25zZml4QGFsZXNrdmFAZGV2bnVsbG1haWwuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "14czzkqs5my6ypg3ggxlcmxbf8aw1ing6nfgz26zkgbvnrfnvfqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcGljb25zZml4QGFsZXNrdmFAZGV2bnVsbG1haWwuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "animation-tweaks@Selenium-H", "name": "Animation Tweaks", "pname": "animation-tweaks", "description": "Add animations to different items and customize them.\n\nPlease reset the extension after updating. The Extension will stop when upgraded to an incompatible version. In that case an Update tab is created to easily reset the extension. A Reset button is also always present in preferences -> About Tab.\n A Default shortcut combination of Super Key + t is provided to temporarily disable the extension until GNOME Shell restarts. \n\nSome effects might not work properly on wayland, for which a workaround is provided on preferences -> Tweaks tab. \nHowever, some animations might not work properly.", "link": "https://extensions.gnome.org/extension/1680/animation-tweaks/", "shell_version_map": {"38": {"version": "12", "sha256": "0n3c2z4lgbzwx176s76v2p3nm1j8a53m136msjpcc6akq3nxvwkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhbmltYXRpb25zIHRvIGRpZmZlcmVudCBpdGVtcyBhbmQgY3VzdG9taXplIHRoZW0uXG5cblBsZWFzZSByZXNldCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0aW5nLiBUaGUgRXh0ZW5zaW9uIHdpbGwgc3RvcCB3aGVuIHVwZ3JhZGVkIHRvIGFuIGluY29tcGF0aWJsZSB2ZXJzaW9uLiBJbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLiBBIFJlc2V0IGJ1dHRvbiBpcyBhbHNvIGFsd2F5cyBwcmVzZW50IGluIHByZWZlcmVuY2VzIC0+IEFib3V0IFRhYi5cbiBBIERlZmF1bHQgc2hvcnRjdXQgY29tYmluYXRpb24gb2YgU3VwZXIgS2V5ICsgdCBpcyBwcm92aWRlZCB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHRoZSBleHRlbnNpb24gdW50aWwgR05PTUUgU2hlbGwgcmVzdGFydHMuIFxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGEgd29ya2Fyb3VuZCBpcyBwcm92aWRlZCBvbiBwcmVmZXJlbmNlcyAtPiBUd2Vha3MgdGFiLiBcbkhvd2V2ZXIsIHNvbWUgYW5pbWF0aW9ucyBtaWdodCBub3Qgd29yayBwcm9wZXJseS4iLAogICJuYW1lIjogIkFuaW1hdGlvbiBUd2Vha3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYW5pbWF0aW9uLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJzdGF0dXMiOiAiICIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW0tSC9BbmltYXRpb24tVHdlYWtzIiwKICAidXVpZCI6ICJhbmltYXRpb24tdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"uuid": "drawOnYourScreen@abakkk.framagit.org", "name": "Draw On You Screen", "pname": "draw-on-you-screen", "description": "Start drawing with Super+Alt+D and save your beautiful work by taking a screenshot\n\nFeatures :\n- Basic shapes (rectangle, circle, ellipse, line, curve, polygon, polyline, text, image, free)\n- Basic transformations (move, rotate, resize, stretch, mirror, inverse)\n- Smooth stroke\n- Draw over applications\n- Keep drawings on desktop background with persistence (notes, children's art ...)\n- Multi-monitor support\n- Export to SVG\n\nGNOME Shell 41 and later are not supported.", "link": "https://extensions.gnome.org/extension/1683/draw-on-you-screen/", "shell_version_map": {"38": {"version": "11", "sha256": "0bpf7x5fng1c2xj48mh27p5shfja0n79vs3bypmi5v6l4cgggq58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZGlyIjogImRyYXdPbllvdXJTY3JlZW4iLAogICJkZXNjcmlwdGlvbiI6ICJTdGFydCBkcmF3aW5nIHdpdGggU3VwZXIrQWx0K0QgYW5kIHNhdmUgeW91ciBiZWF1dGlmdWwgd29yayBieSB0YWtpbmcgYSBzY3JlZW5zaG90XG5cbkZlYXR1cmVzIDpcbi0gQmFzaWMgc2hhcGVzIChyZWN0YW5nbGUsIGNpcmNsZSwgZWxsaXBzZSwgbGluZSwgY3VydmUsIHBvbHlnb24sIHBvbHlsaW5lLCB0ZXh0LCBpbWFnZSwgZnJlZSlcbi0gQmFzaWMgdHJhbnNmb3JtYXRpb25zIChtb3ZlLCByb3RhdGUsIHJlc2l6ZSwgc3RyZXRjaCwgbWlycm9yLCBpbnZlcnNlKVxuLSBTbW9vdGggc3Ryb2tlXG4tIERyYXcgb3ZlciBhcHBsaWNhdGlvbnNcbi0gS2VlcCBkcmF3aW5ncyBvbiBkZXNrdG9wIGJhY2tncm91bmQgd2l0aCBwZXJzaXN0ZW5jZSAobm90ZXMsIGNoaWxkcmVuJ3MgYXJ0IC4uLilcbi0gTXVsdGktbW9uaXRvciBzdXBwb3J0XG4tIEV4cG9ydCB0byBTVkdcblxuR05PTUUgU2hlbGwgNDEgYW5kIGxhdGVyIGFyZSBub3Qgc3VwcG9ydGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImRyYXctb24teW91ci1zY3JlZW4iLAogICJuYW1lIjogIkRyYXcgT24gWW91IFNjcmVlbiIsCiAgInBlcnNpc3RlbnQtZmlsZS1uYW1lIjogInBlcnNpc3RlbnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZHJhdy1vbi15b3VyLXNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJzdmctZmlsZS1uYW1lIjogIkRyYXdPbllvdXJTY3JlZW4iLAogICJ1cmwiOiAiaHR0cHM6Ly9mcmFtYWdpdC5vcmcvYWJha2trL0RyYXdPbllvdXJTY3JlZW4iLAogICJ1dWlkIjogImRyYXdPbllvdXJTY3JlZW5AYWJha2trLmZyYW1hZ2l0Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "This extension can be used to show titles of all thumbnails in the Gnome 3 overview.\n\nNOTE: The gnome 40 version does not support older gnome-shell", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "8", "sha256": "1gzf096a95sa8qga3azrvl6wnjnx58dhjj6i21ws9fndx4ildbf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbiBiZSB1c2VkIHRvIHNob3cgdGl0bGVzIG9mIGFsbCB0aHVtYm5haWxzIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG5OT1RFOiBUaGUgZ25vbWUgNDAgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IG9sZGVyIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3IiwKICAidXVpZCI6ICJBbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "9", "sha256": "1h7zbxrh26ha26xhmhlhb9rzh0g400alkf59x232m3x64ykin2ys", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbiBiZSB1c2VkIHRvIHNob3cgdGl0bGVzIG9mIGFsbCB0aHVtYm5haWxzIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG5OT1RFOiBUaGUgZ25vbWUgNDAgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IG9sZGVyIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "overview-navigation@nathanielsimard.github.com", "name": "Overview Navigation", "pname": "overview-navigation", "description": "This extension aims to make Gnome Shell easier to navigate using only the keyboard. It is inspired by the vim plugins of Firefox and Chrome.", "link": "https://extensions.gnome.org/extension/1702/overview-navigation/", "shell_version_map": {"38": {"version": "14", "sha256": "10i2j0klcyi22qakmw1f338ldc87w54a0jlg1bwq84ifflmnm8nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uYXRoYW5pZWxzaW1hcmQvb3ZlcnZpZXctbmF2aWdhdGlvbiIsCiAgInV1aWQiOiAib3ZlcnZpZXctbmF2aWdhdGlvbkBuYXRoYW5pZWxzaW1hcmQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "15", "sha256": "03ah1cx6kjw7698b9wwhz7ag8pag15g8zkxzfrsrcmving9syynd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "transparent-top-bar@zhanghai.me", "name": "Transparent Top Bar", "pname": "transparent-top-bar", "description": "Bring back the transparent top bar when free-floating in GNOME Shell 3.32.\n\nThis basically comes from the feature implementation removed in GNOME Shell 3.32, and I modified the code a bit to make it an extension. Enjoy!", "link": "https://extensions.gnome.org/extension/1708/transparent-top-bar/", "shell_version_map": {"38": {"version": "9", "sha256": "0i34ns1rm2iis9mvbyjvckb0l1b0zzzczzan7591y8lqfjplsmzr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "11", "sha256": "1c7jwx4l1izn4rzv7jnz1gmgshcjn6xj8xdlfzkn0j7fnnjnw4q4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "ssh-search-provider@extensions.gnome-shell.fifi.org", "name": "SSH Search Provider Reborn", "pname": "ssh-search-provider-reborn", "description": "Provide SSH search results in overview.\n\nThis is a fork of the original \"SSH Search Provider\", updated to work with newer Gnome-Shells.", "link": "https://extensions.gnome.org/extension/1714/ssh-search-provider-reborn/", "shell_version_map": {"38": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "weeks-start-on-monday@extensions.gnome-shell.fifi.org", "name": "Weeks Start on Monday Again...", "pname": "weeks-start-on-monday-again", "description": "... or maybe not, and that's why the start day is configurable in the preferences.\n\nThis is an updated version of the \"Weeks Start on Monday\" extension for newer Gnome Shells.", "link": "https://extensions.gnome.org/extension/1720/weeks-start-on-monday-again/", "shell_version_map": {"38": {"version": "8", "sha256": "0d84v6rn0k1rpkin0fnj5halfhk0z7mh36s8n3g7y653r0fn76vv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2OC0wLWc4M2RlNGE0IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0d84v6rn0k1rpkin0fnj5halfhk0z7mh36s8n3g7y653r0fn76vv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIi4uLiBvciBtYXliZSBub3QsIGFuZCB0aGF0J3Mgd2h5IHRoZSBzdGFydCBkYXkgaXMgY29uZmlndXJhYmxlIGluIHRoZSBwcmVmZXJlbmNlcy5cblxuVGhpcyBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIFwiV2Vla3MgU3RhcnQgb24gTW9uZGF5XCIgZXh0ZW5zaW9uIGZvciBuZXdlciBHbm9tZSBTaGVsbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAibmFtZSI6ICJXZWVrcyBTdGFydCBvbiBNb25kYXkgQWdhaW4uLi4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvd2Vla3Mtc3RhcnQtb24tbW9uZGF5IiwKICAidXVpZCI6ICJ3ZWVrcy1zdGFydC1vbi1tb25kYXlAZXh0ZW5zaW9ucy5nbm9tZS1zaGVsbC5maWZpLm9yZyIsCiAgInZjc19yZXZpc2lvbiI6ICJ2OC0wLWc4M2RlNGE0IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "wintile@nowsci.com", "name": "WinTile: Windows 10 window tiling for GNOME", "pname": "wintile-windows-10-window-tiling-for-gnome", "description": "[NOTE] When upgrading to V7, you may get an ERROR. Log out and back in and V7 will begin to work.\n\nWinTile is a hotkey driven window tiling system for GNOME that imitates the standard Win-Arrow keys of Windows 10, allowing you to maximize, maximize to sides, or 1/4 sized to corner across a single or multiple monitors using just Super+Arrow.\n\nAs of v3, WinTile also supports:\n- 2, 3, or 4 columns for standard or ultrawide monitors\n- Top/bottom half support\n- Mouse preview and snapping for placing windows\n- Toggling of 'maximize' mode, which adds/removes GNOME animations\n\nAs of v6, supports installs in GNOME 3.38+\n\nAs of v7, supports installs in GNOME 40+", "link": "https://extensions.gnome.org/extension/1723/wintile-windows-10-window-tiling-for-gnome/", "shell_version_map": {"38": {"version": "7", "sha256": "1nx0psgaj33ipfsnxinvz2vjmdhhvms0bqdflhmkbh1003m6103x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIltOT1RFXSBXaGVuIHVwZ3JhZGluZyB0byBWNywgeW91IG1heSBnZXQgYW4gRVJST1IuIExvZyBvdXQgYW5kIGJhY2sgaW4gYW5kIFY3IHdpbGwgYmVnaW4gdG8gd29yay5cblxuV2luVGlsZSBpcyBhIGhvdGtleSBkcml2ZW4gd2luZG93IHRpbGluZyBzeXN0ZW0gZm9yIEdOT01FIHRoYXQgaW1pdGF0ZXMgdGhlIHN0YW5kYXJkIFdpbi1BcnJvdyBrZXlzIG9mIFdpbmRvd3MgMTAsIGFsbG93aW5nIHlvdSB0byBtYXhpbWl6ZSwgbWF4aW1pemUgdG8gc2lkZXMsIG9yIDEvNCBzaXplZCB0byBjb3JuZXIgYWNyb3NzIGEgc2luZ2xlIG9yIG11bHRpcGxlIG1vbml0b3JzIHVzaW5nIGp1c3QgU3VwZXIrQXJyb3cuXG5cbkFzIG9mIHYzLCBXaW5UaWxlIGFsc28gc3VwcG9ydHM6XG4tIDIsIDMsIG9yIDQgY29sdW1ucyBmb3Igc3RhbmRhcmQgb3IgdWx0cmF3aWRlIG1vbml0b3JzXG4tIFRvcC9ib3R0b20gaGFsZiBzdXBwb3J0XG4tIE1vdXNlIHByZXZpZXcgYW5kIHNuYXBwaW5nIGZvciBwbGFjaW5nIHdpbmRvd3Ncbi0gVG9nZ2xpbmcgb2YgJ21heGltaXplJyBtb2RlLCB3aGljaCBhZGRzL3JlbW92ZXMgR05PTUUgYW5pbWF0aW9uc1xuXG5BcyBvZiB2Niwgc3VwcG9ydHMgaW5zdGFsbHMgaW4gR05PTUUgMy4zOCtcblxuQXMgb2YgdjcsIHN1cHBvcnRzIGluc3RhbGxzIGluIEdOT01FIDQwKyIsCiAgIm5hbWUiOiAiV2luVGlsZTogV2luZG93cyAxMCB3aW5kb3cgdGlsaW5nIGZvciBHTk9NRSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Ztc3RyYXQvd2ludGlsZSIsCiAgInV1aWQiOiAid2ludGlsZUBub3dzY2kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1nx0psgaj33ipfsnxinvz2vjmdhhvms0bqdflhmkbh1003m6103x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIltOT1RFXSBXaGVuIHVwZ3JhZGluZyB0byBWNywgeW91IG1heSBnZXQgYW4gRVJST1IuIExvZyBvdXQgYW5kIGJhY2sgaW4gYW5kIFY3IHdpbGwgYmVnaW4gdG8gd29yay5cblxuV2luVGlsZSBpcyBhIGhvdGtleSBkcml2ZW4gd2luZG93IHRpbGluZyBzeXN0ZW0gZm9yIEdOT01FIHRoYXQgaW1pdGF0ZXMgdGhlIHN0YW5kYXJkIFdpbi1BcnJvdyBrZXlzIG9mIFdpbmRvd3MgMTAsIGFsbG93aW5nIHlvdSB0byBtYXhpbWl6ZSwgbWF4aW1pemUgdG8gc2lkZXMsIG9yIDEvNCBzaXplZCB0byBjb3JuZXIgYWNyb3NzIGEgc2luZ2xlIG9yIG11bHRpcGxlIG1vbml0b3JzIHVzaW5nIGp1c3QgU3VwZXIrQXJyb3cuXG5cbkFzIG9mIHYzLCBXaW5UaWxlIGFsc28gc3VwcG9ydHM6XG4tIDIsIDMsIG9yIDQgY29sdW1ucyBmb3Igc3RhbmRhcmQgb3IgdWx0cmF3aWRlIG1vbml0b3JzXG4tIFRvcC9ib3R0b20gaGFsZiBzdXBwb3J0XG4tIE1vdXNlIHByZXZpZXcgYW5kIHNuYXBwaW5nIGZvciBwbGFjaW5nIHdpbmRvd3Ncbi0gVG9nZ2xpbmcgb2YgJ21heGltaXplJyBtb2RlLCB3aGljaCBhZGRzL3JlbW92ZXMgR05PTUUgYW5pbWF0aW9uc1xuXG5BcyBvZiB2Niwgc3VwcG9ydHMgaW5zdGFsbHMgaW4gR05PTUUgMy4zOCtcblxuQXMgb2YgdjcsIHN1cHBvcnRzIGluc3RhbGxzIGluIEdOT01FIDQwKyIsCiAgIm5hbWUiOiAiV2luVGlsZTogV2luZG93cyAxMCB3aW5kb3cgdGlsaW5nIGZvciBHTk9NRSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Ztc3RyYXQvd2ludGlsZSIsCiAgInV1aWQiOiAid2ludGlsZUBub3dzY2kuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "gtktitlebar@velitasali.github.io", "name": "GTK Title Bar", "pname": "gtk-title-bar", "description": "Remove title bars for non-GTK apps with minimal interference with the default workflow", "link": "https://extensions.gnome.org/extension/1732/gtk-title-bar/", "shell_version_map": {"40": {"version": "8", "sha256": "1lynrwjc6ps8s84y2zjf7rfc0shq84c7dz17p83h4yzd3hl9cqri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aXRsZSBiYXJzIGZvciBub24tR1RLIGFwcHMgd2l0aCBtaW5pbWFsIGludGVyZmVyZW5jZSB3aXRoIHRoZSBkZWZhdWx0IHdvcmtmbG93IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RrdGl0bGViYXIiLAogICJuYW1lIjogIkdUSyBUaXRsZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ3RrdGl0bGViYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmVsaXRhc2FsaS9ndGt0aXRsZWJhciIsCiAgInV1aWQiOiAiZ3RrdGl0bGViYXJAdmVsaXRhc2FsaS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "quicklists@maestroschan.fr", "name": "Quicklists", "pname": "quicklists", "description": "Add dynamic quicklists to app icons, such as file manager bookmarks and recent files.", "link": "https://extensions.gnome.org/extension/1747/quicklists/", "shell_version_map": {"38": {"version": "7", "sha256": "1cck1k1kf116z85m5fby0hhaa7fplhryv0nv1pdc3h8200i39580", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBkeW5hbWljIHF1aWNrbGlzdHMgdG8gYXBwIGljb25zLCBzdWNoIGFzIGZpbGUgbWFuYWdlciBib29rbWFya3MgYW5kIHJlY2VudCBmaWxlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWlja2xpc3RzIiwKICAibmFtZSI6ICJRdWlja2xpc3RzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrbGlzdHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovcXVpY2tsaXN0cy1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInF1aWNrbGlzdHNAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "lan-ip-address@mrhuber.com", "name": "LAN IP Address", "pname": "lan-ip-address", "description": "Simple extension to show your LAN IP address on the GNOME panel.  This is the address that other computers on your LAN would use to connect to your computer. \n\nDoes not show loopback addresses (127.0.0.0/8) or Docker bridge networks.\n\nDoes not show your Internet (public) IP address unless you are directly connected to the Internet with no intermediate NAT router (uncommon, except for devices with built-in LTE data connections).\n\nThis extension also respects your privacy and bandwidth, as it makes absolutely zero requests to the Internet and sends zero packets to the Internet.  The plugin gets its information from your local routing table (output of `ip route`) and only displays the result in the GNOME panel, and this information never leaves your computer.", "link": "https://extensions.gnome.org/extension/1762/lan-ip-address/", "shell_version_map": {"38": {"version": "7", "sha256": "0yfh5xzh9msdhpx1cxxryzjb07p9rvgfvcnyf41mq5p73b2j4m22", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gc2hvdyB5b3VyIExBTiBJUCBhZGRyZXNzIG9uIHRoZSBHTk9NRSBwYW5lbC4gIFRoaXMgaXMgdGhlIGFkZHJlc3MgdGhhdCBvdGhlciBjb21wdXRlcnMgb24geW91ciBMQU4gd291bGQgdXNlIHRvIGNvbm5lY3QgdG8geW91ciBjb21wdXRlci4gXG5cbkRvZXMgbm90IHNob3cgbG9vcGJhY2sgYWRkcmVzc2VzICgxMjcuMC4wLjAvOCkgb3IgRG9ja2VyIGJyaWRnZSBuZXR3b3Jrcy5cblxuRG9lcyBub3Qgc2hvdyB5b3VyIEludGVybmV0IChwdWJsaWMpIElQIGFkZHJlc3MgdW5sZXNzIHlvdSBhcmUgZGlyZWN0bHkgY29ubmVjdGVkIHRvIHRoZSBJbnRlcm5ldCB3aXRoIG5vIGludGVybWVkaWF0ZSBOQVQgcm91dGVyICh1bmNvbW1vbiwgZXhjZXB0IGZvciBkZXZpY2VzIHdpdGggYnVpbHQtaW4gTFRFIGRhdGEgY29ubmVjdGlvbnMpLlxuXG5UaGlzIGV4dGVuc2lvbiBhbHNvIHJlc3BlY3RzIHlvdXIgcHJpdmFjeSBhbmQgYmFuZHdpZHRoLCBhcyBpdCBtYWtlcyBhYnNvbHV0ZWx5IHplcm8gcmVxdWVzdHMgdG8gdGhlIEludGVybmV0IGFuZCBzZW5kcyB6ZXJvIHBhY2tldHMgdG8gdGhlIEludGVybmV0LiAgVGhlIHBsdWdpbiBnZXRzIGl0cyBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgbG9jYWwgcm91dGluZyB0YWJsZSAob3V0cHV0IG9mIGBpcCByb3V0ZWApIGFuZCBvbmx5IGRpc3BsYXlzIHRoZSByZXN1bHQgaW4gdGhlIEdOT01FIHBhbmVsLCBhbmQgdGhpcyBpbmZvcm1hdGlvbiBuZXZlciBsZWF2ZXMgeW91ciBjb21wdXRlci4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2hvbGl0aC9nbm9tZS1leHRlbnNpb24tbGFuLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogImxhbi1pcC1hZGRyZXNzQG1yaHViZXIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0yfh5xzh9msdhpx1cxxryzjb07p9rvgfvcnyf41mq5p73b2j4m22", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gc2hvdyB5b3VyIExBTiBJUCBhZGRyZXNzIG9uIHRoZSBHTk9NRSBwYW5lbC4gIFRoaXMgaXMgdGhlIGFkZHJlc3MgdGhhdCBvdGhlciBjb21wdXRlcnMgb24geW91ciBMQU4gd291bGQgdXNlIHRvIGNvbm5lY3QgdG8geW91ciBjb21wdXRlci4gXG5cbkRvZXMgbm90IHNob3cgbG9vcGJhY2sgYWRkcmVzc2VzICgxMjcuMC4wLjAvOCkgb3IgRG9ja2VyIGJyaWRnZSBuZXR3b3Jrcy5cblxuRG9lcyBub3Qgc2hvdyB5b3VyIEludGVybmV0IChwdWJsaWMpIElQIGFkZHJlc3MgdW5sZXNzIHlvdSBhcmUgZGlyZWN0bHkgY29ubmVjdGVkIHRvIHRoZSBJbnRlcm5ldCB3aXRoIG5vIGludGVybWVkaWF0ZSBOQVQgcm91dGVyICh1bmNvbW1vbiwgZXhjZXB0IGZvciBkZXZpY2VzIHdpdGggYnVpbHQtaW4gTFRFIGRhdGEgY29ubmVjdGlvbnMpLlxuXG5UaGlzIGV4dGVuc2lvbiBhbHNvIHJlc3BlY3RzIHlvdXIgcHJpdmFjeSBhbmQgYmFuZHdpZHRoLCBhcyBpdCBtYWtlcyBhYnNvbHV0ZWx5IHplcm8gcmVxdWVzdHMgdG8gdGhlIEludGVybmV0IGFuZCBzZW5kcyB6ZXJvIHBhY2tldHMgdG8gdGhlIEludGVybmV0LiAgVGhlIHBsdWdpbiBnZXRzIGl0cyBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgbG9jYWwgcm91dGluZyB0YWJsZSAob3V0cHV0IG9mIGBpcCByb3V0ZWApIGFuZCBvbmx5IGRpc3BsYXlzIHRoZSByZXN1bHQgaW4gdGhlIEdOT01FIHBhbmVsLCBhbmQgdGhpcyBpbmZvcm1hdGlvbiBuZXZlciBsZWF2ZXMgeW91ciBjb21wdXRlci4iLAogICJuYW1lIjogIkxBTiBJUCBBZGRyZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2hvbGl0aC9nbm9tZS1leHRlbnNpb24tbGFuLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogImxhbi1pcC1hZGRyZXNzQG1yaHViZXIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "colortint@matt.serverus.co.uk", "name": "ColorTint", "pname": "colortint", "description": "Tint your desktop with a color of your choice to help with dyslexia, visual stress, scopic sensitivity, and related conditions.", "link": "https://extensions.gnome.org/extension/1789/colortint/", "shell_version_map": {"40": {"version": "7", "sha256": "1ggf4xlnyfxhl3fsl8ljdj0izipx2v8kxpnhhqz7w397a0r9q121", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHZpc3VhbCBzdHJlc3MsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXR0QnlOYW1lL2NvbG9yLXRpbnQiLAogICJ1dWlkIjogImNvbG9ydGludEBtYXR0LnNlcnZlcnVzLmNvLnVrIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "sermon@rovellipaolo-gmail.com", "name": "SerMon: Service Monitor", "pname": "sermon", "description": "SerMon: an extension for monitoring and managing systemd services, cron jobs, docker and podman containers", "link": "https://extensions.gnome.org/extension/1804/sermon/", "shell_version_map": {"38": {"version": "15", "sha256": "0g2m7gfdgbd1fcnxk6jldw50n4962wgcmwvmgqxdd7xna5a73mrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yb3ZlbGxpcGFvbG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlcm1vbiIsCiAgInV1aWQiOiAic2VybW9uQHJvdmVsbGlwYW9sby1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "0g2m7gfdgbd1fcnxk6jldw50n4962wgcmwvmgqxdd7xna5a73mrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yb3ZlbGxpcGFvbG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlcm1vbiIsCiAgInV1aWQiOiAic2VybW9uQHJvdmVsbGlwYW9sby1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {"38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "36", "sha256": "0xqvzzfixd6fpn1pzda7a6byn4ys1wii10ypa1rssf27kx3ii6l3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaWN0IiwKICAidXVpZCI6ICJkaWN0QHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM2Cn0="}}}
+, {"uuid": "unredirect@vaina.lt", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell to workaround https://bugzilla.redhat.com/show_bug.cgi?id=767397 and https://bugzilla.gnome.org/show_bug.cgi?id=738719", "link": "https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/", "shell_version_map": {"38": {"version": "3", "sha256": "1xy3rdby56645028khwjp3ir6pkj1sany8sqysm94pb0pha7q3rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGlzYWJsZS11bnJlZGlyZWN0IiwKICAidXVpZCI6ICJ1bnJlZGlyZWN0QHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "1xy3rdby56645028khwjp3ir6pkj1sany8sqysm94pb0pha7q3rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD03NjczOTcgYW5kIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg3MTkiLAogICJuYW1lIjogIkRpc2FibGUgdW5yZWRpcmVjdCBmdWxsc2NyZWVuIHdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGlzYWJsZS11bnJlZGlyZWN0IiwKICAidXVpZCI6ICJ1bnJlZGlyZWN0QHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Display cryptocurrency prices in top bar", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0yn7ykknismw03lwi4m6a37c00cpbdysg9c437qrkvvq5givgwfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgY3J5cHRvY3VycmVuY3kgcHJpY2VzIGluIHRvcCBiYXIiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "6", "sha256": "03pxbcw9csbs9bv6avh8yaf1lhai6ij6997xw7b87frl272w2dac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgY3J5cHRvY3VycmVuY3kgcHJpY2VzIGluIHRvcCBiYXIiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "cmus-status@yagreg7.gmail.com", "name": "cmus status", "pname": "cmus-status", "description": "Shows cmus status", "link": "https://extensions.gnome.org/extension/1934/cmus-status/", "shell_version_map": {"38": {"version": "8", "sha256": "1a6b10kirzbjlllcnffznjlljicah172kpvs0p8rmwhcpn88i8hx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyZWdUaGVNYWRNb25rL2dub21lLWNtdXMtc3RhdHVzIiwKICAidXVpZCI6ICJjbXVzLXN0YXR1c0B5YWdyZWc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "no-title-bar@jonaspoehler.de", "name": "No Title Bar - Forked", "pname": "no-title-bar-forked", "description": "No Title Bar removes the title bar from non-GTK applications and moves the window title and buttons to the top panel.\n\nTitlebars are also hidden for Wayland-native clients that don't use CSD. Some of the options may be incompatible with this. For issues on Wayland please visit github!\n\nThis is a fork of https://extensions.gnome.org/extension/1267/no-title-bar/ with added compatibility for Gnome 3.32 and higher (check version availability for details).\n\nThis extension depends on some Xorg utilities. To install them:\n\n⚫ Debian/Ubuntu: apt install x11-utils\n⚫ Fedora/RHEL: dnf install xorg-x11-utils\n⚫ Arch: pacman -S xorg-xprop", "link": "https://extensions.gnome.org/extension/2015/no-title-bar-forked/", "shell_version_map": {"38": {"version": "5", "sha256": "1c4i183nmhg1wd49a3jh33wb708qb168xg3b35d0idfxhiwcjc8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIgYW5kIGhpZ2hlciAoY2hlY2sgdmVyc2lvbiBhdmFpbGFiaWxpdHkgZm9yIGRldGFpbHMpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb2VobGVyai9uby10aXRsZS1iYXIiLAogICJ1dWlkIjogIm5vLXRpdGxlLWJhckBqb25hc3BvZWhsZXIuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "application_view_when_empty@fawtytoo", "name": "Show Application View When Workspace Empty", "pname": "show-application-view-when-workspace-empty", "description": "Shows the application view when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login. Starting applications or switching to a workspace with open windows will hide the overview if it's showing.", "link": "https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/", "shell_version_map": {"38": {"version": "16", "sha256": "11l8p1f62kf73jwq1idhqanjhmml6cwkffy1brqihczvg88pdzdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "11l8p1f62kf73jwq1idhqanjhmml6cwkffy1brqihczvg88pdzdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "activities_icon_menu@fawtytoo", "name": "Activities Icon Menu", "pname": "activities-menu-for-apps-and-windows", "description": "This extension turns the Activities button into a popup menu with icons for selecting either Applications or Workspaces in the Overview. Selecting the same view again will hide the overview.\n\nThis is particularly useful for tablet users that find the Activities button difficult to click on, whereas a menu can be more easily invoked.", "link": "https://extensions.gnome.org/extension/2048/activities-menu-for-apps-and-windows/", "shell_version_map": {"38": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"uuid": "Gold_Price_Monitor@wotmshuaisi_github", "name": "Gold Price Monitor", "pname": "gold-price-monitor", "description": "simple gnome extension helps you tracking gold price in realtime", "link": "https://extensions.gnome.org/extension/2075/gold-price-monitor/", "shell_version_map": {"40": {"version": "21", "sha256": "10554hlfv3nlf49av54wwckg2ld4p8pc7vk8s14085shdplwi95n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2dvbGRwcmljZW1vbml0b3IiLAogICJ1dWlkIjogIkdvbGRfUHJpY2VfTW9uaXRvckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
+, {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "22", "sha256": "1qci1zwbp8x0nxbd3ay781gcjd1hpf2ncgpxfclxxgn73pvm4zd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3Jhc3RlcnNvZnQvZGVza3RvcC1pY29ucy1uZyIsCiAgInV1aWQiOiAiZGluZ0ByYXN0ZXJzb2Z0LmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}, "40": {"version": "22", "sha256": "1qci1zwbp8x0nxbd3ay781gcjd1hpf2ncgpxfclxxgn73pvm4zd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3Jhc3RlcnNvZnQvZGVza3RvcC1pY29ucy1uZyIsCiAgInV1aWQiOiAiZGluZ0ByYXN0ZXJzb2Z0LmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}}}
+, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Fixes order of gnome-shell extensions", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {"38": {"version": "5", "sha256": "197wbj5cx8bd30p35r2my8ri140qyf91wahpwf2lx2zmgql6rb1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "horizontal-workspaces@gnome-shell-extensions.gcampax.github.com", "name": "Horizontal workspaces", "pname": "horizontal-workspaces", "description": "Use a horizontal workspace layout", "link": "https://extensions.gnome.org/extension/2141/horizontal-workspaces/", "shell_version_map": {"38": {"version": "5", "sha256": "0kbqcrs96v72yk0rf8jghy1a31651fyvgpi97yp46n4wmvc41vk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIGhvcml6b250YWwgd29ya3NwYWNlIGxheW91dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJIb3Jpem9udGFsIHdvcmtzcGFjZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2VzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "threefingerwindowmove@do.sch.dev.gmail.com", "name": "Three Finger Window Move", "pname": "three-finger-window-move", "description": "Allows moving windows around with a three finger trackpad gesture (Wayland only)", "link": "https://extensions.gnome.org/extension/2164/three-finger-window-move/", "shell_version_map": {"38": {"version": "7", "sha256": "1m7vwr6s6w297b0x0bmnj8fs2hl73pbys6m93lnb9inh5pmgiv1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBtb3Zpbmcgd2luZG93cyBhcm91bmQgd2l0aCBhIHRocmVlIGZpbmdlciB0cmFja3BhZCBnZXN0dXJlIChXYXlsYW5kIG9ubHkpIiwKICAibmFtZSI6ICJUaHJlZSBGaW5nZXIgV2luZG93IE1vdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kby1zY2gvZ25vbWUtc2hlbGwtdG91Y2hwYWQtd2luZG93LW1vdmUiLAogICJ1dWlkIjogInRocmVlZmluZ2Vyd2luZG93bW92ZUBkby5zY2guZGV2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "7", "sha256": "1b2jrchwkw9i9bbicfxpn57rfj1vjzwmcrs8dzasdsmagh4rydal", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "10", "sha256": "1ij5307mcm3shhs23lpl8l968xgzc1qr0wvzkb419ihdk4kjmf9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Cam9lcm5EYWFzZS9ub2Fubm95YW5jZSIsCiAgInV1aWQiOiAibm9hbm5veWFuY2VAZGFhc2UubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1ij5307mcm3shhs23lpl8l968xgzc1qr0wvzkb419ihdk4kjmf9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Cam9lcm5EYWFzZS9ub2Fubm95YW5jZSIsCiAgInV1aWQiOiAibm9hbm5veWFuY2VAZGFhc2UubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "9", "sha256": "0bzwl271j3j41nrx6fzcp2ahypl23ivfhp5zrg2xvh3r69hg61br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0bzwl271j3j41nrx6fzcp2ahypl23ivfhp5zrg2xvh3r69hg61br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Night mode for GNOME! Automatically toggle your light and dark GTK, GNOME Shell, icon and cursor themes variants, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch.\n\nIt works out of the box with numerous themes (see the list on the repository), and you can manually choose the variants you want.\n", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "016lb0wcr43nf8mj6qnwgzpam2whrcvf4s5dwbdljqqvpvbx68yq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5pZ2h0IG1vZGUgZm9yIEdOT01FISBBdXRvbWF0aWNhbGx5IHRvZ2dsZSB5b3VyIGxpZ2h0IGFuZCBkYXJrIEdUSywgR05PTUUgU2hlbGwsIGljb24gYW5kIGN1cnNvciB0aGVtZXMgdmFyaWFudHMsIHN3aXRjaCBiYWNrZ3JvdW5kcyBhbmQgcnVuIGN1c3RvbSBjb21tYW5kcyBhdCBzdW5zZXQgYW5kIHN1bnJpc2UuXG5cblN1cHBvcnRzIE5pZ2h0IExpZ2h0LCBMb2NhdGlvbiBTZXJ2aWNlcywgbWFudWFsIHNjaGVkdWxlIGFuZCBvbi1kZW1hbmQgc3dpdGNoLlxuXG5JdCB3b3JrcyBvdXQgb2YgdGhlIGJveCB3aXRoIG51bWVyb3VzIHRoZW1lcyAoc2VlIHRoZSBsaXN0IG9uIHRoZSByZXBvc2l0b3J5KSwgYW5kIHlvdSBjYW4gbWFudWFsbHkgY2hvb3NlIHRoZSB2YXJpYW50cyB5b3Ugd2FudC5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3JtbnZnci9uaWdodHRoZW1lc3dpdGNoZXItZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLyIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "50", "sha256": "0klgk18sn5m8a4w2jk64far27v7xpmdhyic6yk471xk096w6hdn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5pZ2h0IG1vZGUgZm9yIEdOT01FISBBdXRvbWF0aWNhbGx5IHRvZ2dsZSB5b3VyIGxpZ2h0IGFuZCBkYXJrIEdUSywgR05PTUUgU2hlbGwsIGljb24gYW5kIGN1cnNvciB0aGVtZXMgdmFyaWFudHMsIHN3aXRjaCBiYWNrZ3JvdW5kcyBhbmQgcnVuIGN1c3RvbSBjb21tYW5kcyBhdCBzdW5zZXQgYW5kIHN1bnJpc2UuXG5cblN1cHBvcnRzIE5pZ2h0IExpZ2h0LCBMb2NhdGlvbiBTZXJ2aWNlcywgbWFudWFsIHNjaGVkdWxlIGFuZCBvbi1kZW1hbmQgc3dpdGNoLlxuXG5JdCB3b3JrcyBvdXQgb2YgdGhlIGJveCB3aXRoIG51bWVyb3VzIHRoZW1lcyAoc2VlIHRoZSBsaXN0IG9uIHRoZSByZXBvc2l0b3J5KSwgYW5kIHlvdSBjYW4gbWFudWFsbHkgY2hvb3NlIHRoZSB2YXJpYW50cyB5b3Ugd2FudC5cbiIsCiAgImdldHRleHQtZG9tYWluIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJuYW1lIjogIk5pZ2h0IFRoZW1lIFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0dGhlbWVzd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9ybW52Z3IvbmlnaHR0aGVtZXN3aXRjaGVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}}}
+, {"uuid": "binaryclock@vancha.march", "name": "binaryclock", "pname": "binaryclock", "description": "adds a binary clock to the gnome bar", "link": "https://extensions.gnome.org/extension/2284/binaryclock/", "shell_version_map": {"38": {"version": "5", "sha256": "0j0zbpldb4rk4kpjy6q585p18gc09079ddh1mlk6g6v1fl886j0m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmFuY2hhL2dub21lU2hlbGxCaW5hcnlDbG9jay8iLAogICJ1dWlkIjogImJpbmFyeWNsb2NrQHZhbmNoYS5tYXJjaCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.\n\nAnd from version 4 left clicking on the icon show a menu with new features like Restart Gnome Shell (Restart is not available on Wayland), Reload Theme, Open Extension Folder and Open Theme Folder (the last two require that xdg-open is installed).\n\nVersion 4 also drop the compatibility with Gnome Shell 3.30.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {"38": {"version": "4", "sha256": "1bahy5lwymv0ymlwd3dkv0sywm7d23gkq3lkj4jh0ld2d203a3h1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChSZXN0YXJ0IGlzIG5vdCBhdmFpbGFibGUgb24gV2F5bGFuZCksIFJlbG9hZCBUaGVtZSwgT3BlbiBFeHRlbnNpb24gRm9sZGVyIGFuZCBPcGVuIFRoZW1lIEZvbGRlciAodGhlIGxhc3QgdHdvIHJlcXVpcmUgdGhhdCB4ZGctb3BlbiBpcyBpbnN0YWxsZWQpLlxuXG5WZXJzaW9uIDQgYWxzbyBkcm9wIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggR25vbWUgU2hlbGwgMy4zMC4iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sZ2J1dHRvbiIsCiAgInV1aWQiOiAibGdidXR0b25AZ2xlcnJvLmdub21lLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "tp_wattmeter@gistart", "name": "tp_wattmeter", "pname": "tp_wattmeter", "description": "Shows battery power consumption of ThinkPad laptops", "link": "https://extensions.gnome.org/extension/2308/tp_wattmeter/", "shell_version_map": {"40": {"version": "4", "sha256": "1v8rw7msfy2d8nwnppdpci62sl6iw8973z5gsl8024awl27ni38z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGJhdHRlcnkgcG93ZXIgY29uc3VtcHRpb24gb2YgVGhpbmtQYWQgbGFwdG9wcyIsCiAgIm5hbWUiOiAidHBfd2F0dG1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjAiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naXN0YXJ0L3RwX3dhdHRtZXRlciIsCiAgInV1aWQiOiAidHBfd2F0dG1ldGVyQGdpc3RhcnQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "Denon_AVR_controler@sylter.fr", "name": "Denon AVR controler", "pname": "denon-avr-controler", "description": "Control a Denon audio video receiver through the network.\n- on/off switch\n- volume adjustment", "link": "https://extensions.gnome.org/extension/2371/denon-avr-controler/", "shell_version_map": {"38": {"version": "4", "sha256": "0c8ky3v70arnblix717jz9fsksr42673as9nmzfyh2p2h1zm03wq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYSBEZW5vbiBhdWRpbyB2aWRlbyByZWNlaXZlciB0aHJvdWdoIHRoZSBuZXR3b3JrLlxuLSBvbi9vZmYgc3dpdGNoXG4tIHZvbHVtZSBhZGp1c3RtZW50IiwKICAibmFtZSI6ICJEZW5vbiBBVlIgY29udHJvbGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyYW1hZ2l0Lm9yZy9zeWx0ZXIvZGVub24tYXZyLWNvbnRyb2xlciIsCiAgInV1aWQiOiAiRGVub25fQVZSX2NvbnRyb2xlckBzeWx0ZXIuZnIiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "hide-universal-access@akiirui.github.io", "name": "Hide Universal Access", "pname": "hide-universal-access", "description": "Hide Universal Access icon from the status bar", "link": "https://extensions.gnome.org/extension/2398/hide-universal-access/", "shell_version_map": {"38": {"version": "9", "sha256": "049hj5s2nxa4044z4hcrlz1cmyq9y07ck7lg6brhvjagqncgg152", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ha2lpcnVpL2hpZGUtdW5pdmVyc2FsLWFjY2VzcyIsCiAgInV1aWQiOiAiaGlkZS11bml2ZXJzYWwtYWNjZXNzQGFraWlydWkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "049hj5s2nxa4044z4hcrlz1cmyq9y07ck7lg6brhvjagqncgg152", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyBpY29uIGZyb20gdGhlIHN0YXR1cyBiYXIiLAogICJuYW1lIjogIkhpZGUgVW5pdmVyc2FsIEFjY2VzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ha2lpcnVpL2hpZGUtdW5pdmVyc2FsLWFjY2VzcyIsCiAgInV1aWQiOiAiaGlkZS11bml2ZXJzYWwtYWNjZXNzQGFraWlydWkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
+, {"uuid": "bubblemail@razer.framagit.org", "name": "Bubblemail", "pname": "bubblemail", "description": "New and unread mail indicator (Local, Imap, Pop3, Gmail, Yahoo mail...)\nIndicator for new mails from local mail boxes (MBOX, MAILDIR), POP3 or IMAP server.\n\nBE AWARE THAT THIS EXTENSION REQUIRES BUBBLEMAIL SERVICE INSTALLATION\nCheck your distribution packaging system for availability. Besides, packages for distributions and source tarballs can be found here :\nhttp://bubblemail.free.fr\n\nBubblemail is a complete rewrite of the mailnag project, with a lot of new features including :\n* Gnome online accounts are automaticaly synced\n* Avatars provided by the server, with default colorized icons for senders without specific avatar\n* Reports for connection errors.\n\n Please report any issue on the gitlab pages of the project :\nhttps://framagit.org/razer/bubblemail/issues\nhttps://framagit.org/razer/bubblemail-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/2458/bubblemail/", "shell_version_map": {"38": {"version": "14", "sha256": "12w53h0bglk1zyr6r9sxgrd223r628jaibbh7m5qyvc50i7m57f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbiBQbGVhc2UgcmVwb3J0IGFueSBpc3N1ZSBvbiB0aGUgZ2l0bGFiIHBhZ2VzIG9mIHRoZSBwcm9qZWN0IDpcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwvaXNzdWVzXG5odHRwczovL2ZyYW1hZ2l0Lm9yZy9yYXplci9idWJibGVtYWlsLWdub21lLXNoZWxsL2lzc3VlcyIsCiAgImdldHRleHQtZG9tYWluIjogImJ1YmJsZW1haWwtZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIkJ1YmJsZW1haWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInJhemVycmF6QGZyZWUuZnIiLAogICAgInp1bHU5OUBnbXgubmV0IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idWJibGVtYWlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "12w53h0bglk1zyr6r9sxgrd223r628jaibbh7m5qyvc50i7m57f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgdW5yZWFkIG1haWwgaW5kaWNhdG9yIChMb2NhbCwgSW1hcCwgUG9wMywgR21haWwsIFlhaG9vIG1haWwuLi4pXG5JbmRpY2F0b3IgZm9yIG5ldyBtYWlscyBmcm9tIGxvY2FsIG1haWwgYm94ZXMgKE1CT1gsIE1BSUxESVIpLCBQT1AzIG9yIElNQVAgc2VydmVyLlxuXG5CRSBBV0FSRSBUSEFUIFRISVMgRVhURU5TSU9OIFJFUVVJUkVTIEJVQkJMRU1BSUwgU0VSVklDRSBJTlNUQUxMQVRJT05cbkNoZWNrIHlvdXIgZGlzdHJpYnV0aW9uIHBhY2thZ2luZyBzeXN0ZW0gZm9yIGF2YWlsYWJpbGl0eS4gQmVzaWRlcywgcGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cbkJ1YmJsZW1haWwgaXMgYSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBtYWlsbmFnIHByb2plY3QsIHdpdGggYSBsb3Qgb2YgbmV3IGZlYXR1cmVzIGluY2x1ZGluZyA6XG4qIEdub21lIG9ubGluZSBhY2NvdW50cyBhcmUgYXV0b21hdGljYWx5IHN5bmNlZFxuKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIHdpdGggZGVmYXVsdCBjb2xvcml6ZWQgaWNvbnMgZm9yIHNlbmRlcnMgd2l0aG91dCBzcGVjaWZpYyBhdmF0YXJcbiogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbiBQbGVhc2UgcmVwb3J0IGFueSBpc3N1ZSBvbiB0aGUgZ2l0bGFiIHBhZ2VzIG9mIHRoZSBwcm9qZWN0IDpcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwvaXNzdWVzXG5odHRwczovL2ZyYW1hZ2l0Lm9yZy9yYXplci9idWJibGVtYWlsLWdub21lLXNoZWxsL2lzc3VlcyIsCiAgImdldHRleHQtZG9tYWluIjogImJ1YmJsZW1haWwtZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIkJ1YmJsZW1haWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInJhemVycmF6QGZyZWUuZnIiLAogICAgInp1bHU5OUBnbXgubmV0IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idWJibGVtYWlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2J1YmJsZW1haWwuZnJlZS5mciIsCiAgInV1aWQiOiAiYnViYmxlbWFpbEByYXplci5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "keypadTiling@abakkk.framagit.org", "name": "Keypad Tiling", "pname": "keypad-tiling", "description": "Tile windows with your keypad.\n\nFeatures:\n- Tile focused window with Super + divide/0/1/.../9 keypad keys\n- Get window completion popup with Super + Alt + 1/.../9 keypad keys\n- Customize keybindings in preferences\n\nBugs on Wayland, in particular with window completion (annoying delays between move/resize operations are used as workaround).\nTiling is not exactly the same as the one that GNOME Shell provides. For instance left and right tiling are more basic while top, bottom and corner tiling gains resizing.\nDefault keybindings could conflict with those of other extensions like popular Dash to Dock and Dash to Panel (see either Keypad Tiling or other extension preferences).\n\nGNOME Shell 41 and later are not supported.", "link": "https://extensions.gnome.org/extension/2473/keypad-tiling/", "shell_version_map": {"38": {"version": "4", "sha256": "048ddam3im2b1g7mfqycvwarr354wii54xclc27h4mr3x3ixgmmr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyB3aXRoIHlvdXIga2V5cGFkLlxuXG5GZWF0dXJlczpcbi0gVGlsZSBmb2N1c2VkIHdpbmRvdyB3aXRoIFN1cGVyICsgZGl2aWRlLzAvMS8uLi4vOSBrZXlwYWQga2V5c1xuLSBHZXQgd2luZG93IGNvbXBsZXRpb24gcG9wdXAgd2l0aCBTdXBlciArIEFsdCArIDEvLi4uLzkga2V5cGFkIGtleXNcbi0gQ3VzdG9taXplIGtleWJpbmRpbmdzIGluIHByZWZlcmVuY2VzXG5cbkJ1Z3Mgb24gV2F5bGFuZCwgaW4gcGFydGljdWxhciB3aXRoIHdpbmRvdyBjb21wbGV0aW9uIChhbm5veWluZyBkZWxheXMgYmV0d2VlbiBtb3ZlL3Jlc2l6ZSBvcGVyYXRpb25zIGFyZSB1c2VkIGFzIHdvcmthcm91bmQpLlxuVGlsaW5nIGlzIG5vdCBleGFjdGx5IHRoZSBzYW1lIGFzIHRoZSBvbmUgdGhhdCBHTk9NRSBTaGVsbCBwcm92aWRlcy4gRm9yIGluc3RhbmNlIGxlZnQgYW5kIHJpZ2h0IHRpbGluZyBhcmUgbW9yZSBiYXNpYyB3aGlsZSB0b3AsIGJvdHRvbSBhbmQgY29ybmVyIHRpbGluZyBnYWlucyByZXNpemluZy5cbkRlZmF1bHQga2V5YmluZGluZ3MgY291bGQgY29uZmxpY3Qgd2l0aCB0aG9zZSBvZiBvdGhlciBleHRlbnNpb25zIGxpa2UgcG9wdWxhciBEYXNoIHRvIERvY2sgYW5kIERhc2ggdG8gUGFuZWwgKHNlZSBlaXRoZXIgS2V5cGFkIFRpbGluZyBvciBvdGhlciBleHRlbnNpb24gcHJlZmVyZW5jZXMpLlxuXG5HTk9NRSBTaGVsbCA0MSBhbmQgbGF0ZXIgYXJlIG5vdCBzdXBwb3J0ZWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAia2V5cGFkLXRpbGluZyIsCiAgIm5hbWUiOiAiS2V5cGFkIFRpbGluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5rZXlwYWQtdGlsaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyYW1hZ2l0Lm9yZy9hYmFra2svS2V5cGFkVGlsaW5nIiwKICAidXVpZCI6ICJrZXlwYWRUaWxpbmdAYWJha2trLmZyYW1hZ2l0Lm9yZyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "reminder_alarm_clock@trifonovkv.gmail.com", "name": "Reminder Alarm Clock", "pname": "reminder-alarm-clock", "description": "The reminder alarm clock will remind you of an important event at the appointed time.", "link": "https://extensions.gnome.org/extension/2482/reminder-alarm-clock/", "shell_version_map": {"38": {"version": "40", "sha256": "0yljdig44gly3fky4ls42shbpvf2387kgnn1dfla9zmxxzjdkryq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
+, {"uuid": "TaskBar@c0ldplasma", "name": "TaskBar 2020", "pname": "taskbar-updated", "description": "!!! Development stopped !!!!\n\nTaskBar 2020 displays icons of running applications and favorites on the top panel or alternatively on a new bottom panel. Activate, minimize or close tasks with a simple click. \n\nTaskBar 2020 is a dock-like windows list on the top/bottom bar. \n\nFork of zpydr/gnome-shell-extension-taskbar to support newer versions of GNOME", "link": "https://extensions.gnome.org/extension/2506/taskbar-updated/", "shell_version_map": {"38": {"version": "5", "sha256": "1wn3040z6znmk2nwh9n0l6q09sp7y3rx0nnm0274n1xsiw7pbwy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISFcblxuVGFza0JhciAyMDIwIGRpc3BsYXlzIGljb25zIG9mIHJ1bm5pbmcgYXBwbGljYXRpb25zIGFuZCBmYXZvcml0ZXMgb24gdGhlIHRvcCBwYW5lbCBvciBhbHRlcm5hdGl2ZWx5IG9uIGEgbmV3IGJvdHRvbSBwYW5lbC4gQWN0aXZhdGUsIG1pbmltaXplIG9yIGNsb3NlIHRhc2tzIHdpdGggYSBzaW1wbGUgY2xpY2suIFxuXG5UYXNrQmFyIDIwMjAgaXMgYSBkb2NrLWxpa2Ugd2luZG93cyBsaXN0IG9uIHRoZSB0b3AvYm90dG9tIGJhci4gXG5cbkZvcmsgb2YgenB5ZHIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIgdG8gc3VwcG9ydCBuZXdlciB2ZXJzaW9ucyBvZiBHTk9NRSIsCiAgIm5hbWUiOiAiVGFza0JhciAyMDIwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYzBsZHBsYXNtYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFza2JhciIsCiAgInV1aWQiOiAiVGFza0JhckBjMGxkcGxhc21hIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "8", "sha256": "0czby48izk0yjpkgjh6bl6b922qg0ycc53gq7n733dgchnn76g2p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISFcblxuVGFza0JhciAyMDIwIGRpc3BsYXlzIGljb25zIG9mIHJ1bm5pbmcgYXBwbGljYXRpb25zIGFuZCBmYXZvcml0ZXMgb24gdGhlIHRvcCBwYW5lbCBvciBhbHRlcm5hdGl2ZWx5IG9uIGEgbmV3IGJvdHRvbSBwYW5lbC4gQWN0aXZhdGUsIG1pbmltaXplIG9yIGNsb3NlIHRhc2tzIHdpdGggYSBzaW1wbGUgY2xpY2suIFxuXG5UYXNrQmFyIDIwMjAgaXMgYSBkb2NrLWxpa2Ugd2luZG93cyBsaXN0IG9uIHRoZSB0b3AvYm90dG9tIGJhci4gXG5cbkZvcmsgb2YgenB5ZHIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIgdG8gc3VwcG9ydCBuZXdlciB2ZXJzaW9ucyBvZiBHTk9NRSIsCiAgIm5hbWUiOiAiVGFza0JhciAyMDIwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2MwbGRwbGFzbWEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIiLAogICJ1dWlkIjogIlRhc2tCYXJAYzBsZHBsYXNtYSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "17", "sha256": "0g6wc343vky2l44j00c19mn6jw24xnfqsnwv7q7l264ax9hqc1ga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "maxi@darkretailer.github.com", "name": "Maxi", "pname": "maxi", "description": "Maximize your windows vertical and/or horizontal (based on https://github.com/aXe1/gnome-shell-extension-maximized-by-default)", "link": "https://extensions.gnome.org/extension/2554/maxi/", "shell_version_map": {"40": {"version": "5", "sha256": "121nd6ggr9id3yfsrkiza7rjq19638p156ym83i3j57ikz6r3ky5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1heGltaXplIHlvdXIgd2luZG93cyB2ZXJ0aWNhbCBhbmQvb3IgaG9yaXpvbnRhbCAoYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2FYZTEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplZC1ieS1kZWZhdWx0KSIsCiAgImV4dGVuc2lvbi1pZCI6ICJtYXhpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWF4aSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhcmtyZXRhaWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25fbWF4aSIsCiAgInV1aWQiOiAibWF4aUBkYXJrcmV0YWlsZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "gnordvpn-local@isopolito", "name": "gNordVPN-Local", "pname": "gnordvpn-local", "description": "A Gnome extension that shows the NordVPN status in the top bar and provides the ability to confiure certain aspects of the connection.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {"38": {"version": "6", "sha256": "1w5nz2688iyjf7cnaxa45h9m6l97ssf51c3szfabnbpa4d8vbqb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maXVyZSBjZXJ0YWluIGFzcGVjdHMgb2YgdGhlIGNvbm5lY3Rpb24uIiwKICAibmFtZSI6ICJnTm9yZFZQTi1Mb2NhbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "fully-transparent-top-bar@aunetx", "name": "Smart transparent topbar", "pname": "fully-transparent-top-bar", "description": "Permits to change topbar's look and feel when free-floating.\n\nIf you have issues or recommandations, you can tell me on github so I can see them!", "link": "https://extensions.gnome.org/extension/2588/fully-transparent-top-bar/", "shell_version_map": {"38": {"version": "11", "sha256": "1mksqaxw7jzzdghzii1bhhkbsccxb23qa69f3x6hg32ig9qi762x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBlcm1pdHMgdG8gY2hhbmdlIHRvcGJhcidzIGxvb2sgYW5kIGZlZWwgd2hlbiBmcmVlLWZsb2F0aW5nLlxuXG5JZiB5b3UgaGF2ZSBpc3N1ZXMgb3IgcmVjb21tYW5kYXRpb25zLCB5b3UgY2FuIHRlbGwgbWUgb24gZ2l0aHViIHNvIEkgY2FuIHNlZSB0aGVtISIsCiAgIm5hbWUiOiAiU21hcnQgdHJhbnNwYXJlbnQgdG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJmdWxseS10cmFuc3BhcmVudC10b3AtYmFyQGF1bmV0eCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "always-indicator@martin.zurowietz.de", "name": "Always Indicator", "pname": "always-indicator", "description": "Always show the new messages indicator on new messages. Features: 1) New message indicator is always shown if there are notifications. 2) The color of the indicator can be customized. 3) If 'do not disturb' is active, the icon is displayed in the custom color if there are notifications.", "link": "https://extensions.gnome.org/extension/2594/always-indicator/", "shell_version_map": {"40": {"version": "6", "sha256": "0gbfqi121yzyyzvanbq8hcczd783afknpq5nwcxmwlf9xyi0m5hl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtYWx3YXlzLWluZGljYXRvciIsCiAgInV1aWQiOiAiYWx3YXlzLWluZGljYXRvckBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime profile switcher for the Eruption Linux input and LED driver for keyboards, mice and other devices", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {"38": {"version": "15", "sha256": "1jy9m2inx8jjwsy666hg67i7d8py2ar4drn2i8si7d80cba45al4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1jy9m2inx8jjwsy666hg67i7d8py2ar4drn2i8si7d80cba45al4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "hide-minimized@danigm.net", "name": "Hide minimized", "pname": "hide-minimized", "description": "Hide minimized in overview", "link": "https://extensions.gnome.org/extension/2639/hide-minimized/", "shell_version_map": {"38": {"version": "2", "sha256": "1bgy13a6fzvbaa3sxwhmb671ar1m6l0bmk04p76i1laldvyxvy45", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9oaWRlLW1pbmltaXplZCIsCiAgInV1aWQiOiAiaGlkZS1taW5pbWl6ZWRAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "display-brightness-ddcutil@themightydeity.github.com", "name": "Brightness control using ddcutil", "pname": "brightness-control-using-ddcutil", "description": "Brightness slider for all the monitors detected by ddcutil\nThis tool uses ddcutil as backend for communication with your display.\n\nMake sure that your user can use following shell commands without root.\n\t`ddcutil getvcp 10` to check the brightness of a display and\n\t`ddcutil setvcp 10 100` to set the brightness to 100\n\nMore info: https://github.com/daitj/gnome-display-brightness-ddcutil/blob/master/README.md", "link": "https://extensions.gnome.org/extension/2645/brightness-control-using-ddcutil/", "shell_version_map": {"38": {"version": "10", "sha256": "08rwqdcaqcx84a5bjalcvryxvhfr15a1bcyldnzw8z9aysdx1jls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAibmFtZSI6ICJCcmlnaHRuZXNzIGNvbnRyb2wgdXNpbmcgZGRjdXRpbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZW1pZ2h0eWRlaXR5L2dub21lLWRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAidXVpZCI6ICJkaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbEB0aGVtaWdodHlkZWl0eS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "13", "sha256": "0x331qrmjn9ax72gsi4227l9yzncz8c0yasnzzgcixcqdxl75xkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAibmFtZSI6ICJCcmlnaHRuZXNzIGNvbnRyb2wgdXNpbmcgZGRjdXRpbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZW1pZ2h0eWRlaXR5L2dub21lLWRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAidXVpZCI6ICJkaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbEB0aGVtaWdodHlkZWl0eS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "mounter@heartmire", "name": "Mounter", "pname": "mounter", "description": "Mount and umount fstab entries with 'noauto,user' options.\n\n/etc/fstab example that will be picked up and listed by the extension:\n192.168.1.1:/mnt/data/users/martin  /mnt/server-martin  nfs  noauto,user,noatime,rw  0  0\n\nToggle the menu with the shortcut: CTRL + ALT + m", "link": "https://extensions.gnome.org/extension/2666/mounter/", "shell_version_map": {"38": {"version": "4", "sha256": "0cv423fq7rilm6g0c27lnqa85s0j5f6xx9bd6mav17ghmr346cmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3VudGVyIiwKICAidXVpZCI6ICJtb3VudGVyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0cv423fq7rilm6g0c27lnqa85s0j5f6xx9bd6mav17ghmr346cmn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3VudGVyIiwKICAidXVpZCI6ICJtb3VudGVyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "simple-task-bar@fthx", "name": "Simple Task Bar", "pname": "simple-task-bar", "description": "*** Superseeded by https://extensions.gnome.org/extension/4000/babar. ***\n\nTask bar in the top panel, tasks on all workspaces.\n\n Basic actions, nothing more : activate, minimize, switch, per-desktop overview. Some settings through GNOME Extensions manager, thanks @leleat.\n\n This extension can hide the Activities button and makes the Places Menu extension's label become a folder icon.\n\n This extension is *light* and should *not interfere* with GNOME Shell behaviour+logic. If you want more, please consider installing Dash to Panel.", "link": "https://extensions.gnome.org/extension/2672/simple-task-bar/", "shell_version_map": {"38": {"version": "33", "sha256": "0rsvfymmnljqikarihmgs2fdi14pclfdhwrsz06zxzxd6nvmj4x1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqKiBTdXBlcnNlZWRlZCBieSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MDAwL2JhYmFyLiAqKipcblxuVGFzayBiYXIgaW4gdGhlIHRvcCBwYW5lbCwgdGFza3Mgb24gYWxsIHdvcmtzcGFjZXMuXG5cbiBCYXNpYyBhY3Rpb25zLCBub3RoaW5nIG1vcmUgOiBhY3RpdmF0ZSwgbWluaW1pemUsIHN3aXRjaCwgcGVyLWRlc2t0b3Agb3ZlcnZpZXcuIFNvbWUgc2V0dGluZ3MgdGhyb3VnaCBHTk9NRSBFeHRlbnNpb25zIG1hbmFnZXIsIHRoYW5rcyBAbGVsZWF0LlxuXG4gVGhpcyBleHRlbnNpb24gY2FuIGhpZGUgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIGFuZCBtYWtlcyB0aGUgUGxhY2VzIE1lbnUgZXh0ZW5zaW9uJ3MgbGFiZWwgYmVjb21lIGEgZm9sZGVyIGljb24uXG5cbiBUaGlzIGV4dGVuc2lvbiBpcyAqbGlnaHQqIGFuZCBzaG91bGQgKm5vdCBpbnRlcmZlcmUqIHdpdGggR05PTUUgU2hlbGwgYmVoYXZpb3VyK2xvZ2ljLiBJZiB5b3Ugd2FudCBtb3JlLCBwbGVhc2UgY29uc2lkZXIgaW5zdGFsbGluZyBEYXNoIHRvIFBhbmVsLiIsCiAgIm5hbWUiOiAiU2ltcGxlIFRhc2sgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9zaW1wbGUtdGFzay1iYXIiLAogICJ1dWlkIjogInNpbXBsZS10YXNrLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDMzCn0="}}}
+, {"uuid": "minimize-shelf@etenil", "name": "Minimize Shelf", "pname": "minimize-shelf", "description": "Minimize shelf in the top panel, with minimized windows of the current workspace.\n\n No settings but you can easily play around with CSS file. This extension is light and should not interfere with GNOME Shell behaviour+logic.", "link": "https://extensions.gnome.org/extension/2735/minimize-shelf/", "shell_version_map": {"40": {"version": "3", "sha256": "0cnfpjpsvbi3149bg9s75wdmrpcr7pa4m2n7npdkdgr1rbs0pcfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0V0ZW5pbC9taW5pbWl6ZS1zaGVsZiIsCiAgInV1aWQiOiAibWluaW1pemUtc2hlbGZAZXRlbmlsIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "remove-alt-tab-delay@daase.net", "name": "Remove Alt+Tab Delay v2", "pname": "remove-alttab-delay-v2", "description": "Another extension that removes the 0.15 second popup delay in switcher pop-ups. This extension is actively maintained. It fixes at least this known issue: https://gitlab.gnome.org/GNOME/mutter/issues/888.", "link": "https://extensions.gnome.org/extension/2741/remove-alttab-delay-v2/", "shell_version_map": {"38": {"version": "5", "sha256": "0ajxj1x6mbn1clk5hb9lri3c0ckvy2781i7w26y1yhfw6jbyl0np", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2UvcmVtb3ZlLWFsdC10YWItZGVsYXkiLAogICJ1dWlkIjogInJlbW92ZS1hbHQtdGFiLWRlbGF5QGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0ajxj1x6mbn1clk5hb9lri3c0ckvy2781i7w26y1yhfw6jbyl0np", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2UvcmVtb3ZlLWFsdC10YWItZGVsYXkiLAogICJ1dWlkIjogInJlbW92ZS1hbHQtdGFiLWRlbGF5QGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "corona-tracker@lachhebo.github.io", "name": "corona-tracker", "pname": "corona-tracker", "description": "A GNOME Shell extension (GNOME Panel applet) to notify you every day with information about the COVID-19 virus spread.", "link": "https://extensions.gnome.org/extension/2767/corona-tracker/", "shell_version_map": {"38": {"version": "12", "sha256": "0qazb5s6hm4lzj0hfridpmviznx8spnps76kv6fa8s9yca7si6ab", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIG5vdGlmeSB5b3UgZXZlcnkgZGF5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIENPVklELTE5IHZpcnVzIHNwcmVhZC4iLAogICJuYW1lIjogImNvcm9uYS10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFjaGhlYm8vY29yb25hLXRyYWNrZXIiLAogICJ1dWlkIjogImNvcm9uYS10cmFja2VyQGxhY2hoZWJvLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "gnome-trash@gnome-trash.b00f.gitlab.com", "name": "Gnome Trash", "pname": "gnome-trash", "description": "A gnome shell extension to manage your trash. You can manage trash items from the panel and open or empty the trash.\nIt hides completely when the trash is empty, and lists the files in the trash bin in the panel menu.", "link": "https://extensions.gnome.org/extension/2773/gnome-trash/", "shell_version_map": {"38": {"version": "12", "sha256": "067n56xa5rxdxfyjg68iidqwxkd6k0ilinbv5wrfrp2sp645hxkz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIHRyYXNoLiBZb3UgY2FuIG1hbmFnZSB0cmFzaCBpdGVtcyBmcm9tIHRoZSBwYW5lbCBhbmQgb3BlbiBvciBlbXB0eSB0aGUgdHJhc2guXG5JdCBoaWRlcyBjb21wbGV0ZWx5IHdoZW4gdGhlIHRyYXNoIGlzIGVtcHR5LCBhbmQgbGlzdHMgdGhlIGZpbGVzIGluIHRoZSB0cmFzaCBiaW4gaW4gdGhlIHBhbmVsIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtdHJhc2giLAogICJuYW1lIjogIkdub21lIFRyYXNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYjAwZi9nbm9tZS10cmFzaCIsCiAgInV1aWQiOiAiZ25vbWUtdHJhc2hAZ25vbWUtdHJhc2guYjAwZi5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "customgestures@raushankumar27.github.com", "name": "Custom 3 Finger Gestures", "pname": "custom-3-finger-gestures", "description": "3 Finger touchpad gestures into gnome-shell", "link": "https://extensions.gnome.org/extension/2781/custom-3-finger-gestures/", "shell_version_map": {"38": {"version": "7", "sha256": "1a51rlf5fjlzlm2y3cv1ncf4glqa48rkpi0z1b8hd5m1fzgdx6m9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgRmluZ2VyIHRvdWNocGFkIGdlc3R1cmVzIGludG8gZ25vbWUtc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b21nZXN0dXJlcyIsCiAgIm5hbWUiOiAiQ3VzdG9tIDMgRmluZ2VyIEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbWdlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmF1c2hhbmt1bWFyMjcvY3VzdG9tZ2VzdHVyZSIsCiAgInV1aWQiOiAiY3VzdG9tZ2VzdHVyZXNAcmF1c2hhbmt1bWFyMjcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "overview-improved@human.experience", "name": "Overview Improved", "pname": "overview-improved", "description": "Improved, more Unity like overview\n\n* Dash-To-Dock or Ubuntu Dock integration creates Unity-like experience showing windows of specific type\n* Windows search in overview\nConfigurable keybinding (Super+w) to trigger current window overlay\n* Clicking empty space in overview closes\n* Do not show overview when showing application on multiple monitors\n* Multi Monitors Add-On Overview integration\n\nCaveat: may clash with other extensions that modify overview experience", "link": "https://extensions.gnome.org/extension/2802/overview-improved/", "shell_version_map": {"38": {"version": "8", "sha256": "0pzk6kzhbm15rmd540gv2sc0yqbiv31lil4ra3k5k7cpnr9ipsy6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVkLCBtb3JlIFVuaXR5IGxpa2Ugb3ZlcnZpZXdcblxuKiBEYXNoLVRvLURvY2sgb3IgVWJ1bnR1IERvY2sgaW50ZWdyYXRpb24gY3JlYXRlcyBVbml0eS1saWtlIGV4cGVyaWVuY2Ugc2hvd2luZyB3aW5kb3dzIG9mIHNwZWNpZmljIHR5cGVcbiogV2luZG93cyBzZWFyY2ggaW4gb3ZlcnZpZXdcbkNvbmZpZ3VyYWJsZSBrZXliaW5kaW5nIChTdXBlcit3KSB0byB0cmlnZ2VyIGN1cnJlbnQgd2luZG93IG92ZXJsYXlcbiogQ2xpY2tpbmcgZW1wdHkgc3BhY2UgaW4gb3ZlcnZpZXcgY2xvc2VzXG4qIERvIG5vdCBzaG93IG92ZXJ2aWV3IHdoZW4gc2hvd2luZyBhcHBsaWNhdGlvbiBvbiBtdWx0aXBsZSBtb25pdG9yc1xuKiBNdWx0aSBNb25pdG9ycyBBZGQtT24gT3ZlcnZpZXcgaW50ZWdyYXRpb25cblxuQ2F2ZWF0OiBtYXkgY2xhc2ggd2l0aCBvdGhlciBleHRlbnNpb25zIHRoYXQgbW9kaWZ5IG92ZXJ2aWV3IGV4cGVyaWVuY2UiLAogICJuYW1lIjogIk92ZXJ2aWV3IEltcHJvdmVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LWltcHJvdmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9odW1hbi5leHBlcmllbmNlL2dub21lLXNoZWxsLW92ZXJ2aWV3LWltcHJvdmVkIiwKICAidXVpZCI6ICJvdmVydmlldy1pbXByb3ZlZEBodW1hbi5leHBlcmllbmNlIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "brightnesspanelmenuindicator@do.sch.dev.gmail.com", "name": "Brightness Panel Menu Indicator", "pname": "brightness-panel-menu-indicator", "description": "If a backlight device is available, this extension shows a brightness indicator on panel menu, that allows changing brightness through scrolling on it. Useful, when using ddcci-driver-linux on a desktop PC without native keyboard buttons to change brightness.", "link": "https://extensions.gnome.org/extension/2808/brightness-panel-menu-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "0nbxk6k42iglj51injq3drabfg9iv2288is36m263dwddyf9mk6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG8tc2NoL2dub21lLXNoZWxsLWJyaWdodG5lc3MtcGFuZWwtbWVudS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJyaWdodG5lc3NwYW5lbG1lbnVpbmRpY2F0b3JAZG8uc2NoLmRldi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0nbxk6k42iglj51injq3drabfg9iv2288is36m263dwddyf9mk6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklmIGEgYmFja2xpZ2h0IGRldmljZSBpcyBhdmFpbGFibGUsIHRoaXMgZXh0ZW5zaW9uIHNob3dzIGEgYnJpZ2h0bmVzcyBpbmRpY2F0b3Igb24gcGFuZWwgbWVudSwgdGhhdCBhbGxvd3MgY2hhbmdpbmcgYnJpZ2h0bmVzcyB0aHJvdWdoIHNjcm9sbGluZyBvbiBpdC4gVXNlZnVsLCB3aGVuIHVzaW5nIGRkY2NpLWRyaXZlci1saW51eCBvbiBhIGRlc2t0b3AgUEMgd2l0aG91dCBuYXRpdmUga2V5Ym9hcmQgYnV0dG9ucyB0byBjaGFuZ2UgYnJpZ2h0bmVzcy4iLAogICJuYW1lIjogIkJyaWdodG5lc3MgUGFuZWwgTWVudSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG8tc2NoL2dub21lLXNoZWxsLWJyaWdodG5lc3MtcGFuZWwtbWVudS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJyaWdodG5lc3NwYW5lbG1lbnVpbmRpY2F0b3JAZG8uc2NoLmRldi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "ibus-tweaker@tuberry.github.com", "name": "IBus Tweaker", "pname": "ibus-tweaker", "description": "Tweaker of IBus for orientation, theme, font and ascii mode auto-switch\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2820/ibus-tweaker/", "shell_version_map": {"38": {"version": "28", "sha256": "0dqf56hcgfsrlshbjzf3x19yhzz2v4dj1rlm4kj834vadn5816k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBhc2NpaSBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImlidXMtdHdlYWtlciIsCiAgIm5hbWUiOiAiSUJ1cyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlidXMtdHdlYWtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="}, "40": {"version": "32", "sha256": "1z5rnx83lcsyhamh7a9jlli7v5ll8942a2s3sln0bs6yfr6nrb7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250IGFuZCBhc2NpaSBtb2RlIGF1dG8tc3dpdGNoXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImlidXMtdHdlYWtlciIsCiAgIm5hbWUiOiAiSUJ1cyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlidXMtdHdlYWtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "1gpkqw18r0vm4v7kjhd6d4iw94aqmrni0g8qxqfc21l4cw90y4g4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "hide-keyboard-layout@sitnik.ru", "name": "Hide Keyboard Layout", "pname": "hide-keyboard-layout", "description": "Hide keyboard layout indicator in status bar", "link": "https://extensions.gnome.org/extension/2848/hide-keyboard-layout/", "shell_version_map": {"38": {"version": "2", "sha256": "1nylkw0v97w4x610bd2gkz0h1xprhkrnx03qzhm4vhqjw1j2bdg2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9oaWRlLWtleWJvYXJkLWxheW91dCIsCiAgInV1aWQiOiAiaGlkZS1rZXlib2FyZC1sYXlvdXRAc2l0bmlrLnJ1IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1nylkw0v97w4x610bd2gkz0h1xprhkrnx03qzhm4vhqjw1j2bdg2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUga2V5Ym9hcmQgbGF5b3V0IGluZGljYXRvciBpbiBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJIaWRlIEtleWJvYXJkIExheW91dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9oaWRlLWtleWJvYXJkLWxheW91dCIsCiAgInV1aWQiOiAiaGlkZS1rZXlib2FyZC1sYXlvdXRAc2l0bmlrLnJ1IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "maximize-to-workspace@raonetwo.github.com", "name": "Maximize To Workspace With History", "pname": "maximize-to-workspace-with-history", "description": "Like MacOS, puts window in a new workspace when its maximized or full-screened and brings you back to original workspace when its unmaximized or unfull-screened or closed. \n\nRecommended to use with touchegg/fusuma/libinput multi finger swipe gestures.", "link": "https://extensions.gnome.org/extension/2857/maximize-to-workspace-with-history/", "shell_version_map": {"38": {"version": "21", "sha256": "1m1vhscnflmlhscinj4nipybhkps213sh2s9qpp4bxm9h9waihww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpa2UgTWFjT1MsIHB1dHMgd2luZG93IGluIGEgbmV3IHdvcmtzcGFjZSB3aGVuIGl0cyBtYXhpbWl6ZWQgb3IgZnVsbC1zY3JlZW5lZCBhbmQgYnJpbmdzIHlvdSBiYWNrIHRvIG9yaWdpbmFsIHdvcmtzcGFjZSB3aGVuIGl0cyB1bm1heGltaXplZCBvciB1bmZ1bGwtc2NyZWVuZWQgb3IgY2xvc2VkLiBcblxuUmVjb21tZW5kZWQgdG8gdXNlIHdpdGggdG91Y2hlZ2cvZnVzdW1hL2xpYmlucHV0IG11bHRpIGZpbmdlciBzd2lwZSBnZXN0dXJlcy4iLAogICJuYW1lIjogIk1heGltaXplIFRvIFdvcmtzcGFjZSBXaXRoIEhpc3RvcnkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYW9uZXR3by9NYXhpbWl6ZVRvV29ya3NwYWNlIiwKICAidXVpZCI6ICJtYXhpbWl6ZS10by13b3Jrc3BhY2VAcmFvbmV0d28uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}, "40": {"version": "21", "sha256": "1m1vhscnflmlhscinj4nipybhkps213sh2s9qpp4bxm9h9waihww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpa2UgTWFjT1MsIHB1dHMgd2luZG93IGluIGEgbmV3IHdvcmtzcGFjZSB3aGVuIGl0cyBtYXhpbWl6ZWQgb3IgZnVsbC1zY3JlZW5lZCBhbmQgYnJpbmdzIHlvdSBiYWNrIHRvIG9yaWdpbmFsIHdvcmtzcGFjZSB3aGVuIGl0cyB1bm1heGltaXplZCBvciB1bmZ1bGwtc2NyZWVuZWQgb3IgY2xvc2VkLiBcblxuUmVjb21tZW5kZWQgdG8gdXNlIHdpdGggdG91Y2hlZ2cvZnVzdW1hL2xpYmlucHV0IG11bHRpIGZpbmdlciBzd2lwZSBnZXN0dXJlcy4iLAogICJuYW1lIjogIk1heGltaXplIFRvIFdvcmtzcGFjZSBXaXRoIEhpc3RvcnkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYW9uZXR3by9NYXhpbWl6ZVRvV29ya3NwYWNlIiwKICAidXVpZCI6ICJtYXhpbWl6ZS10by13b3Jrc3BhY2VAcmFvbmV0d28uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
+, {"uuid": "activities_icons@fawtytoo", "name": "Activities Icons", "pname": "activities-icons", "description": "The Activities button becomes 2 icons for selecting either Applications or Workspaces in the overview. Selecting the same view again will hide the overview.\nScrolling on the icons allows switching windows on a workspace or cycling through the Workspaces.", "link": "https://extensions.gnome.org/extension/2872/activities-icons/", "shell_version_map": {"38": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "transparent_panel@fawtytoo", "name": "Transparent Top Panel", "pname": "transparent-top-panel", "description": "Totally transparent top panel in the Overview.\nAlso adds drop shadows to text and icons for those using GS 3.38.", "link": "https://extensions.gnome.org/extension/2878/transparent-top-panel/", "shell_version_map": {"38": {"version": "6", "sha256": "1ss4ckxinql9jvdqlsscvb5ddj1lijibwn9zk3nhkdqpxnz5qwrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnRfcGFuZWxAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "overview_full_bright@fawtytoo", "name": "Overview Full Bright", "pname": "overview-full-bright", "description": "Shows the Overview in full brightness and without the vignette.\n\nNOTE: This will not be developed beyond GS 3.38.", "link": "https://extensions.gnome.org/extension/2884/overview-full-bright/", "shell_version_map": {"38": {"version": "4", "sha256": "1dm5h1kl40lsly9a80ch4mfi67ppwd7dgg4idx8vrcx5iksnzxil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBPdmVydmlldyBpbiBmdWxsIGJyaWdodG5lc3MgYW5kIHdpdGhvdXQgdGhlIHZpZ25ldHRlLlxuXG5OT1RFOiBUaGlzIHdpbGwgbm90IGJlIGRldmVsb3BlZCBiZXlvbmQgR1MgMy4zOC4iLAogICJuYW1lIjogIk92ZXJ2aWV3IEZ1bGwgQnJpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2Z1bGxfYnJpZ2h0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "14", "sha256": "0knl4brv7bjx6pwj3r6ywfadgfw2yqwdxxxxfykcay6q95baf8jz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
+, {"uuid": "messagingmenu@lauinger-clan.de", "name": "Messaging Menu", "pname": "messaging-menu", "description": "A Messaging Menu for the Gnome Shell. All Email and Chat Applications in one Place.", "link": "https://extensions.gnome.org/extension/2896/messaging-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1xa0hyvs2aw1z7kg5gcsgh2pjn7b13zhps98j4xpwfiv6zm0sa73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "6", "sha256": "09hd9qvg4xcyz2pjv3bwx3kmzhkq95598msxf2h7jzn7kdvmc3pp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the user/aggregate menu. Originally created by XES.\n\nv10: fix for older versions, i havent tested this on anything below 3.10, v9: minor cleanup, now has an icon for the main menu entry. \n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions (3.8 replace Settings code credit IsacDaavid)\n\nCredit to @peaceseeker for updating this with a working repo, i do wish it could have been pushed to me but my blank repo was deleted as it was stale, i failed to push to git before going back to work around 1.5 years ago and i hadn't been active enough to notice anything other than emails(these things help people!)", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {"38": {"version": "2", "sha256": "150x8xp9xm28scw5lcmxq7xcfa17wbzy2y381xsv0mv0b03kvyqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuNS40IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "4", "sha256": "17pcz8m4xs1rqfzr1whp56hdifsfqj1fw9087viqs7gb398ji7gx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "auto-mute-toggle@garotosopa.github.io", "name": "Auto-mute toggle", "pname": "auto-mute-toggle", "description": "Toggle whether to auto-mute speakers when headphones are plugged in.", "link": "https://extensions.gnome.org/extension/2905/auto-mute-toggle/", "shell_version_map": {"40": {"version": "6", "sha256": "1lyh51gvsh9ydip77vjj8rigjiah97lh8gp91jcpqblwx69fs3dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3aGV0aGVyIHRvIGF1dG8tbXV0ZSBzcGVha2VycyB3aGVuIGhlYWRwaG9uZXMgYXJlIHBsdWdnZWQgaW4uIiwKICAibmFtZSI6ICJBdXRvLW11dGUgdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dhcm90b3NvcGEvZ3NlLWF1dG8tbXV0ZS10b2dnbGUiLAogICJ1dWlkIjogImF1dG8tbXV0ZS10b2dnbGVAZ2Fyb3Rvc29wYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "optimus-manager-indicator@andr3slelouch.github.com", "name": "Optimus Manager Indicator", "pname": "optimus-manager-indicator", "description": "Intel/Hybrid/NVIDIA GPU Switch Note: The GPU mode activated doesn't show up in the options, by example: When you turn on the PC you are gonna be in Intel mode so Intel option is not gonna be shown. Note: Optimus Manager Indicator is made(for the moment) for Arch based distributions with optimus-manager.", "link": "https://extensions.gnome.org/extension/2908/optimus-manager-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "BringOutSubmenuOfPowerOffLogoutButton@pratap.fastmail.fm", "name": "Bring Out Submenu Of Power Off/Logout Button", "pname": "bring-out-submenu-of-power-offlogout-button", "description": "Bring Out Submenu Of Power Off/Logout Button and Rearrange the Order of System Menu.", "link": "https://extensions.gnome.org/extension/2917/bring-out-submenu-of-power-offlogout-button/", "shell_version_map": {"38": {"version": "12", "sha256": "18f1pdz50m5dw86y2zj3jij2p0sakh3qpjq2g1d55pfg96zzrd5m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQnJpbmctT3V0LVN1Ym1lbnUtb2YtUG93ZXItT2ZmLUxvZ291dCIsCiAgInV1aWQiOiAiQnJpbmdPdXRTdWJtZW51T2ZQb3dlck9mZkxvZ291dEJ1dHRvbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "13", "sha256": "04nxhhi46ms0z7hqkd2c0v984ls0dcpg4d4p9jgvkkp1d4ib3yvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLmFscGhhIiwKICAgICI0MC4wIiwKICAgICI0MC5iZXRhIiwKICAgICI0MC5yYyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
+, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "3", "sha256": "07wrch3rabbfx79w3ivp3q81r2kvf2x4hd469jrvb83qmmfaypgh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5yYyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "07wrch3rabbfx79w3ivp3q81r2kvf2x4hd469jrvb83qmmfaypgh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5yYyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "executor@raujonas.github.io", "name": "Executor", "pname": "executor", "description": "Execute multiple shell commands periodically with separate intervals and display the output in gnome top bar.", "link": "https://extensions.gnome.org/extension/2932/executor/", "shell_version_map": {"38": {"version": "10", "sha256": "0qaldgvkgp70hl1r8f82cxs15pgvgz2ls7zcav2vsig1h0jl7s7r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmF1am9uYXMvZXhlY3V0b3IiLAogICJ1dWlkIjogImV4ZWN1dG9yQHJhdWpvbmFzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "0qaldgvkgp70hl1r8f82cxs15pgvgz2ls7zcav2vsig1h0jl7s7r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmF1am9uYXMvZXhlY3V0b3IiLAogICJ1dWlkIjogImV4ZWN1dG9yQHJhdWpvbmFzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "7", "sha256": "0zdvkv8swvr9dmv3b52zjss270j1b3gq386vhahkhxk93hg6n66f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "10", "sha256": "05j3mphb04iyngv347mzqb8dr1rx49fg2snjczgx9cxl2xa65797", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "20", "sha256": "0lj9lzs0vngm6lr7dz1p6k6gnaz2a4hwp7g6y6i2r4c6kcwicqkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "20", "sha256": "0lj9lzs0vngm6lr7dz1p6k6gnaz2a4hwp7g6y6i2r4c6kcwicqkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "light-dict@tuberry.github.io", "name": "Light Dict", "pname": "light-dict", "description": "Lightweight extension for instant action to primary selection, especially optimized for Dictionary lookup\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2959/light-dict/", "shell_version_map": {"38": {"version": "47", "sha256": "0afn26f234zsk4w1766yf5pr2rrb9d375f9qgqmxibaq34qbn4rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3IgaW5zdGFudCBhY3Rpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb24sIGVzcGVjaWFsbHkgb3B0aW1pemVkIGZvciBEaWN0aW9uYXJ5IGxvb2t1cFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2xpZ2h0LWRpY3QiLAogICJ1dWlkIjogImxpZ2h0LWRpY3RAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "54", "sha256": "0gjfpy5lk5qp093syhz5q8c30hbrw2wijnzwbykidczrh58qr3g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3IgaW5zdGFudCBhY3Rpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb24sIGVzcGVjaWFsbHkgb3B0aW1pemVkIGZvciBEaWN0aW9uYXJ5IGxvb2t1cFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDU0Cn0="}}}
+, {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for gnome shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {"38": {"version": "6", "sha256": "0qjqf5wdwvav5333k44qbgzkgwbhhm42370862ba8p3anih5d72w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbFNoYWtpYi9JbnRlcm5ldFNwZWVkTWV0ZXIiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNZXRlckBhbHNoYWtpYi5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0qjqf5wdwvav5333k44qbgzkgwbhhm42370862ba8p3anih5d72w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbFNoYWtpYi9JbnRlcm5ldFNwZWVkTWV0ZXIiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNZXRlckBhbHNoYWtpYi5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\n=====================\nIP Finder can monitor in real time\n=====================\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n\n====================\nIP Finder has added security\n====================\nNewly developed revised code base using open technologies and using API's for Public IP and Map Tile image locations using GET requests over HTTPS for a added layer of encrypted  Security, Please see source code for more details.\n\n====================\nCompatible GNOME shell - 3.36 and newer.", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {"38": {"version": "8", "sha256": "0pd9q6k6q2w4fhhai6mjdmgp571cpambn3x5nq4579ry60cwlcl8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9MaW54R2VtMzMvSVAtRmluZGVyIiwKICAidXVpZCI6ICJJUC1GaW5kZXJAbGlueGdlbTMzLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0pd9q6k6q2w4fhhai6mjdmgp571cpambn3x5nq4579ry60cwlcl8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9MaW54R2VtMzMvSVAtRmluZGVyIiwKICAidXVpZCI6ICJJUC1GaW5kZXJAbGlueGdlbTMzLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "runcat@kolesnikov.se", "name": "RunCat", "pname": "runcat", "description": "The cat tells you the CPU usage by running speed", "link": "https://extensions.gnome.org/extension/2986/runcat/", "shell_version_map": {"38": {"version": "12", "sha256": "1hn8zi9n9kqbl9gqhv314zpbf4n55ra5p7q6ca1mm235dwssr3j3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2luMGVyci9nbm9tZS1ydW5jYXQiLAogICJ1dWlkIjogInJ1bmNhdEBrb2xlc25pa292LnNlIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "1hn8zi9n9kqbl9gqhv314zpbf4n55ra5p7q6ca1mm235dwssr3j3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2luMGVyci9nbm9tZS1ydW5jYXQiLAogICJ1dWlkIjogInJ1bmNhdEBrb2xlc25pa292LnNlIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "bowser-gnome@kronosoul.xyz", "name": "Bowser Gnome Extension", "pname": "bowser-gnome-extension", "description": "Create rules to open specific websites in specific web browsers for links clicked in any application on your computer. (emails, chat etc)", "link": "https://extensions.gnome.org/extension/2989/bowser-gnome-extension/", "shell_version_map": {"38": {"version": "10", "sha256": "0y41xz4j24lc50ai8dcvl1l773ral59ixcpvkjq1l82x7baq60pk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL2Jvd3Nlci1nbm9tZSIsCiAgInV1aWQiOiAiYm93c2VyLWdub21lQGtyb25vc291bC54eXoiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "ideapad@laurento.frittella", "name": "Lenovo Ideapad", "pname": "ideapad", "description": "Lenovo Ideapad goodies for Gnome Shell.\nUser-friendly battery conservation mode control.\n\nPlease note additional installation steps are needed! Check on the homepage.", "link": "https://extensions.gnome.org/extension/2992/ideapad/", "shell_version_map": {"38": {"version": "3", "sha256": "1i68qi9r396sdhirp5xhaaxdzzjqhdv2i4hbp8dyiq2qxj9ny2w1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhcGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsLlxuVXNlci1mcmllbmRseSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGNvbnRyb2wuXG5cblBsZWFzZSBub3RlIGFkZGl0aW9uYWwgaW5zdGFsbGF0aW9uIHN0ZXBzIGFyZSBuZWVkZWQhIENoZWNrIG9uIHRoZSBob21lcGFnZS4iLAogICJuYW1lIjogIkxlbm92byBJZGVhcGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmVudG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWlkZWFwYWQiLAogICJ1dWlkIjogImlkZWFwYWRAbGF1cmVudG8uZnJpdHRlbGxhIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "1i68qi9r396sdhirp5xhaaxdzzjqhdv2i4hbp8dyiq2qxj9ny2w1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhcGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsLlxuVXNlci1mcmllbmRseSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGNvbnRyb2wuXG5cblBsZWFzZSBub3RlIGFkZGl0aW9uYWwgaW5zdGFsbGF0aW9uIHN0ZXBzIGFyZSBuZWVkZWQhIENoZWNrIG9uIHRoZSBob21lcGFnZS4iLAogICJuYW1lIjogIkxlbm92byBJZGVhcGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmVudG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWlkZWFwYWQiLAogICJ1dWlkIjogImlkZWFwYWRAbGF1cmVudG8uZnJpdHRlbGxhIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "user-theme-x@tuberry.github.io", "name": "User Themes X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and night theme auto-switch support\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {"38": {"version": "21", "sha256": "11q5f3rj2c27cb4gz8ga8kshc55gxqg7v841mrr2vw80p8792nr1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBuaWdodCB0aGVtZSBhdXRvLXN3aXRjaCBzdXBwb3J0XG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VyLXRoZW1lLXgiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "23", "sha256": "11dchipn43fjrv32ylzcbirhwrxx5m9vfmwcwvlffwdcgvg5v6f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBuaWdodCB0aGVtZSBhdXRvLXN3aXRjaCBzdXBwb3J0XG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VyLXRoZW1lLXgiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS91c2VyLXRoZW1lLXgiLAogICJ1dWlkIjogInVzZXItdGhlbWUteEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"uuid": "app_view_text@fawtytoo", "name": "Application View Text", "pname": "application-view-text", "description": "The text in the Application view can be hard to read on a light coloured background. This extension makes the text bolder with a drop shadow.\nAlso improves the visibility of the app running dot.", "link": "https://extensions.gnome.org/extension/3028/application-view-text/", "shell_version_map": {"38": {"version": "6", "sha256": "0bigmnvybrflmc7dq9g00c8h9sfwd2c8iqm8j4zg7mzj1gjaazkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBfdmlld190ZXh0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0bigmnvybrflmc7dq9g00c8h9sfwd2c8iqm8j4zg7mzj1gjaazkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBfdmlld190ZXh0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "vpn-snx-indicator@als.kz", "name": "VPN and SNX Indicator", "pname": "vpn-and-snx-indicator", "description": "A status indicator for a VPN and SNX(Check Point) connection.", "link": "https://extensions.gnome.org/extension/3049/vpn-and-snx-indicator/", "shell_version_map": {"38": {"version": "8", "sha256": "1mns39frrabpfdvmc7jcqxrlxs1mnjimdwa69hv5lawf0r498h9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgYSBWUE4gYW5kIFNOWChDaGVjayBQb2ludCkgY29ubmVjdGlvbi4iLAogICJuYW1lIjogIlZQTiBhbmQgU05YIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L3Zwbi1pbmRpY2F0b3Itc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ2cG4tc254LWluZGljYXRvckBhbHMua3oiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1mns39frrabpfdvmc7jcqxrlxs1mnjimdwa69hv5lawf0r498h9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgYSBWUE4gYW5kIFNOWChDaGVjayBQb2ludCkgY29ubmVjdGlvbi4iLAogICJuYW1lIjogIlZQTiBhbmQgU05YIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNi4wIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L3Zwbi1pbmRpY2F0b3Itc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ2cG4tc254LWluZGljYXRvckBhbHMua3oiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "ssss@tu.berry", "name": "Simple Subscriber", "pname": "ss-subscriber", "description": "Simple shadowsocks subscriber (SSD only), yet another proxy switcher for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3073/ss-subscriber/", "shell_version_map": {"38": {"version": "18", "sha256": "0cvgcwk7liaaws9gf366xls7cn4slzzmh4l33qq91mgnm5wajr6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBnbm9tZSBzaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zcy1zdWJzY3JpYmVyIiwKICAidXVpZCI6ICJzc3NzQHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "0c9104f2a9b98732jwg0sgfjzbp5qsm2lgh1z1n5hp2524s1f0sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBnbm9tZSBzaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc3Mtc3Vic2NyaWJlciIsCiAgInV1aWQiOiAic3Nzc0B0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
+, {"uuid": "extension-list@tu.berry", "name": "Extension List", "pname": "extension-list", "description": "Simple gnome shell extension manager in top panel\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3088/extension-list/", "shell_version_map": {"38": {"version": "25", "sha256": "111q6m34vdsxbiw3nim3hwd2h3bf8mflg7s6qdzxcn1g0kih7x1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0b3AgcGFuZWxcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXh0ZW5zaW9uLWxpc3QiLAogICJuYW1lIjogIkV4dGVuc2lvbiBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbi1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0sywsz7ksd16cxfw22xvmib8l7cb1d76dnx49sp7xawlimwjdj5q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0b3AgcGFuZWxcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXh0ZW5zaW9uLWxpc3QiLAogICJuYW1lIjogIkV4dGVuc2lvbiBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4dGVuc2lvbi1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZXh0ZW5zaW9uLWxpc3QiLAogICJ1dWlkIjogImV4dGVuc2lvbi1saXN0QHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
+, {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {"38": {"version": "7", "sha256": "0ncqpr2rw8nbjyvwpq3x5ddiw1l1nmz0kw8698p0l7jmgycmi785", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0ncqpr2rw8nbjyvwpq3x5ddiw1l1nmz0kw8698p0l7jmgycmi785", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "wireguard-indicator@gregos.me", "name": "Wireguard Indicator", "pname": "wireguard-indicator", "description": "Enable, disable, and view details of Wireguard.\nDeveloped by Gregos-Winus.", "link": "https://extensions.gnome.org/extension/3160/wireguard-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nContains some bugs due to the implementation of the blur effect on gnome shell, see https: //gitlab.gnome.org/GNOME/gnome-shell/-/issues/2857 for more informations.\n\nAdded support for Gnome 40, and a way to entirely remove artifacts from top panel :)", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {"38": {"version": "6", "sha256": "07p928zrcmjpk705g3y3yrbdm3dpai2rb7d5wi6522ibcmiknqna", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Db250YWlucyBzb21lIGJ1Z3MgZHVlIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYmx1ciBlZmZlY3Qgb24gZ25vbWUgc2hlbGwsIHNlZSBodHRwczogLy9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLy0vaXNzdWVzLzI4NTcgZm9yIG1vcmUgaW5mb3JtYXRpb25zLlxuXG5BZGRlZCBzdXBwb3J0IGZvciBHbm9tZSA0MCwgYW5kIGEgd2F5IHRvIGVudGlyZWx5IHJlbW92ZSBhcnRpZmFjdHMgZnJvbSB0b3AgcGFuZWwgOikiLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "11", "sha256": "0wx3bcccvw7qdw7fsqrcjd6h4xnh81ww3gigrl0d8j2mqwvjrhqi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Db250YWlucyBzb21lIGJ1Z3MgZHVlIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYmx1ciBlZmZlY3Qgb24gZ25vbWUgc2hlbGwsIHNlZSBodHRwczogLy9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLy0vaXNzdWVzLzI4NTcgZm9yIG1vcmUgaW5mb3JtYXRpb25zLlxuXG5BZGRlZCBzdXBwb3J0IGZvciBHbm9tZSA0MCwgYW5kIGEgd2F5IHRvIGVudGlyZWx5IHJlbW92ZSBhcnRpZmFjdHMgZnJvbSB0b3AgcGFuZWwgOikiLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "compiz-windows-effect@hermes83.github.com", "name": "Compiz windows effect", "pname": "compiz-windows-effect", "description": "Compiz wobbly windows effect thanks to libanimation engine.\n\nThe use of the \"js engine\" option NOT requires any external library, orherwise you need to install the LIBANIMATION library patched for Gnome Shell: \nhttps://github.com/hermes83/libanimation\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n  Video\n-----------------------------------\nhttps://youtu.be/G8bAVIB9A7A", "link": "https://extensions.gnome.org/extension/3210/compiz-windows-effect/", "shell_version_map": {"38": {"version": "9", "sha256": "1igwqkm2d5230q6yk41bal9yk690vkap5qfh8zqm6wdrsnswbhfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LXdpbmRvd3MtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotd2luZG93cy1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1igwqkm2d5230q6yk41bal9yk690vkap5qfh8zqm6wdrsnswbhfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVybWVzODMvY29tcGl6LXdpbmRvd3MtZWZmZWN0IiwKICAidXVpZCI6ICJjb21waXotd2luZG93cy1lZmZlY3RAaGVybWVzODMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Note, only tested on gnome shell version 4.40 on Fedora 34 with Xorg", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "2", "sha256": "0mzylj49w2xdrx9wlk6ijcsg8g1n8mksflihzaihlv3hga9ih9n9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBOb3RlLCBvbmx5IHRlc3RlZCBvbiBnbm9tZSBzaGVsbCB2ZXJzaW9uIDQuNDAgb24gRmVkb3JhIDM0IHdpdGggWG9yZyIsCiAgIm5hbWUiOiAiQmxvY2sgQ2FyaWJvdSAzNiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "unmaximize_double_click@gonza.gmail.com", "name": "Unmaximize Double Click Panel", "pname": "unmaximize-double-click-panel", "description": "Unmaximize the current window on double click on the top panel. You can also maximize horizontally and vertically with middle and right click.", "link": "https://extensions.gnome.org/extension/3228/unmaximize-double-click-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "unity-like-appswitcher@gonza.com", "name": "Unity-like App Switcher", "pname": "unity-like-app-switcher", "description": "A bigger and more colourfull AppSwitcher", "link": "https://extensions.gnome.org/extension/3231/unity-like-app-switcher/", "shell_version_map": {"38": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "add-to-desktop@tommimon.github.com", "name": "Add to Desktop", "pname": "add-to-desktop", "description": "An easy way to create desktop app shortcuts in gnome", "link": "https://extensions.gnome.org/extension/3240/add-to-desktop/", "shell_version_map": {"38": {"version": "4", "sha256": "0qikj36wl3317qdbjk95g6fm0f4vr367iwgai0hn85wjkxsh9c9c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dHMgaW4gZ25vbWUiLAogICJuYW1lIjogIkFkZCB0byBEZXNrdG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "touchpad_window_switcher@gonza.com", "name": "Touchpad Window Switcher", "pname": "tocuhpad-window-switcher", "description": "3 fingers window switcher. To make it work on Xorg check the service on github.\n\nUp - down: toggle between overview and show desktop (Needs Super+D shorcut to be set on Xorg. Set it with `gsettings set org.gnome.desktop.wm.keybindings show-desktop '<Super>d'`).\n\nYou can also change windows by going to the overview (up) and moving to the left and right, and choosing the window with down. The overview is modified so it’s shown in chronological order.\n", "link": "https://extensions.gnome.org/extension/3294/tocuhpad-window-switcher/", "shell_version_map": {"38": {"version": "8", "sha256": "1x016p30z0pci3qlhpmfqrsgy0vwcfxqladny66ppbb32qisbkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgZmluZ2VycyB3aW5kb3cgc3dpdGNoZXIuIFRvIG1ha2UgaXQgd29yayBvbiBYb3JnIGNoZWNrIHRoZSBzZXJ2aWNlIG9uIGdpdGh1Yi5cblxuVXAgLSBkb3duOiB0b2dnbGUgYmV0d2VlbiBvdmVydmlldyBhbmQgc2hvdyBkZXNrdG9wIChOZWVkcyBTdXBlcitEIHNob3JjdXQgdG8gYmUgc2V0IG9uIFhvcmcuIFNldCBpdCB3aXRoIGBnc2V0dGluZ3Mgc2V0IG9yZy5nbm9tZS5kZXNrdG9wLndtLmtleWJpbmRpbmdzIHNob3ctZGVza3RvcCAnPFN1cGVyPmQnYCkuXG5cbllvdSBjYW4gYWxzbyBjaGFuZ2Ugd2luZG93cyBieSBnb2luZyB0byB0aGUgb3ZlcnZpZXcgKHVwKSBhbmQgbW92aW5nIHRvIHRoZSBsZWZ0IGFuZCByaWdodCwgYW5kIGNob29zaW5nIHRoZSB3aW5kb3cgd2l0aCBkb3duLiBUaGUgb3ZlcnZpZXcgaXMgbW9kaWZpZWQgc28gaXRcdTIwMTlzIHNob3duIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIuXG4iLAogICJuYW1lIjogIlRvdWNocGFkIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ0b3VjaHBhZF93aW5kb3dfc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "gnome-shell-duckduckgo-search-provider@keithcirkel.co.uk", "name": "DuckDuckGo Search Provider", "pname": "duckduckgo-search-provider", "description": "Add DuckDuckGo search suggestions to Gnome Shell Search", "link": "https://extensions.gnome.org/extension/3306/duckduckgo-search-provider/", "shell_version_map": {"38": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "translate-indicator@athenstaedt.net", "name": "Translate Indicator", "pname": "translate-indicator", "description": "Translate extension for Gnome-Shell - based on translate-shell, inspired by Tudmotu's clipboard-indicator and gufoe's text-translator", "link": "https://extensions.gnome.org/extension/3318/translate-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {"38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "color-picker@tuberry", "name": "Color Picker", "pname": "color-picker", "description": "Simple color picker for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3396/color-picker/", "shell_version_map": {"38": {"version": "20", "sha256": "1ss4r8dpa7smxbyz41rw3wl1gy20bvy89xdvwfz6zfhv3db5vl86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvY29sb3ItcGlja2VyIiwKICAidXVpZCI6ICJjb2xvci1waWNrZXJAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "24", "sha256": "0hngbg4y16dazy1i00qdbvyy4d2wn7yrmy6l38ixxdly9gra8n6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2NvbG9yLXBpY2tlciIsCiAgInV1aWQiOiAiY29sb3ItcGlja2VyQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
+, {"uuid": "yaru-remix-theme-toggle@muqtxdir.me", "name": "Yaru remix theme toggle", "pname": "yaru-remix-theme-toggle", "description": "Switches GTK3, Gnome-shell, cursor and icon themes to Yaru-remix variants", "link": "https://extensions.gnome.org/extension/3402/yaru-remix-theme-toggle/", "shell_version_map": {"38": {"version": "2", "sha256": "04dh163dshjnq3fa1y5kbkgl94q4cifvffq6i2pr4zd1v7d4zrf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAibXVxdGFkaXI1NTU1QGdtYWlsLmNvbSIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJTd2l0Y2hlcyBHVEszLCBHbm9tZS1zaGVsbCwgY3Vyc29yIGFuZCBpY29uIHRoZW1lcyB0byBZYXJ1LXJlbWl4IHZhcmlhbnRzIiwKICAibmFtZSI6ICJZYXJ1IHJlbWl4IHRoZW1lIHRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL011cXR4ZGlyL3lhcnUtcmVtaXgtdGhlbWUtdG9nZ2xlIiwKICAidXVpZCI6ICJ5YXJ1LXJlbWl4LXRoZW1lLXRvZ2dsZUBtdXF0eGRpci5tZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "ascii_emoji_buckets@HarshKhandeparkar", "name": "ASCII Emoji Buckets", "pname": "ascii-emoji-buckets", "description": "Buckets of ASCII emojis for your messaging pleasure. A fork of Emoji Buckets.", "link": "https://extensions.gnome.org/extension/3408/ascii-emoji-buckets/", "shell_version_map": {"38": {"version": "9", "sha256": "1srqsjzcywywlhapaca41v4pc99w503m5532g6cc6qwz9f2r4w5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1Y2tldHMgb2YgQVNDSUkgZW1vamlzIGZvciB5b3VyIG1lc3NhZ2luZyBwbGVhc3VyZS4gQSBmb3JrIG9mIEVtb2ppIEJ1Y2tldHMuIiwKICAibmFtZSI6ICJBU0NJSSBFbW9qaSBCdWNrZXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcnNoS2hhbmRlcGFya2FyL2dub21lLWFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJ1dWlkIjogImFzY2lpX2Vtb2ppX2J1Y2tldHNASGFyc2hLaGFuZGVwYXJrYXIiLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "user-stylesheet@tomaszgasior.pl", "name": "User style sheet & font", "pname": "user-stylesheet-font", "description": "Load custom style sheet from ~/.config/gnome-shell/gnome-shell.css. Use GTK font family and font size from GNOME Tweaks in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3414/user-stylesheet-font/", "shell_version_map": {"38": {"version": "3", "sha256": "1gkjf0vx60zi6yj4zcqsrdnsk3m7p6zxcpi6v3hywp43g7ql4dg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tYXN6R2FzaW9yL2dub21lLXNoZWxsLXVzZXItc3R5bGVzaGVldC1hbmQtZm9udCIsCiAgInV1aWQiOiAidXNlci1zdHlsZXNoZWV0QHRvbWFzemdhc2lvci5wbCIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1gkjf0vx60zi6yj4zcqsrdnsk3m7p6zxcpi6v3hywp43g7ql4dg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tYXN6R2FzaW9yL2dub21lLXNoZWxsLXVzZXItc3R5bGVzaGVldC1hbmQtZm9udCIsCiAgInV1aWQiOiAidXNlci1zdHlsZXNoZWV0QHRvbWFzemdhc2lvci5wbCIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "wg-indicator@dpf12110.gmail.com", "name": "WG Indicator", "pname": "wg-indicator", "description": "A status indicator for Wireguard connections.", "link": "https://extensions.gnome.org/extension/3418/wg-indicator/", "shell_version_map": {"40": {"version": "8", "sha256": "0gzk5d04g4gqmf66cnbhyywbxvrzz3vk106i5qx13vklkskjg5wg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zeW5jMTIxMS93Zy1pbmRpY2F0b3IiLAogICJ1dWlkIjogIndnLWluZGljYXRvckBkcGYxMjExMC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "6", "sha256": "1bxi2f6w906p9wxz1hd9wjbd98chzhzg4lsbf1bz6mdfxmplq4b4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "jiggle@jeffchannell.com", "name": "Jiggle", "pname": "jiggle", "description": "Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/3438/jiggle/", "shell_version_map": {"38": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "showtime-horizontal@xenlism.github.io", "name": "Showtime Horizontal - Desktop Widget", "pname": "showtime-horizontal", "description": "Horizontal Style Date &amp; Clock Widget base on Budgie Desktop Widget", "link": "https://extensions.gnome.org/extension/3442/showtime-horizontal/", "shell_version_map": {"38": {"version": "5", "sha256": "1rdf1alxfyi29wnz2bzm20j9k5q8sn3a6d4si841cjbhmvqdcqhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS94ZW5saXNtL3Nob3d0aW1lIiwKICAidXVpZCI6ICJzaG93dGltZS1ob3Jpem9udGFsQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "6", "sha256": "1zy7lkkmcjxkc30hys98s0xlmi93cyc6jz6qx7zfv1v7w03iw3ld", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "display-switcher@iyadk.com", "name": "Display Switcher 2", "pname": "display-switcher", "description": "This extension allows you to toggle between display modes quickly using Super + I.  You can switch between Extended, Primary, Clone, and Secondary Only modes quickly.  Selecting Extended mode multiple times will flip your secondary monitor's relative position to the primary (to the left or right of it).  This extension was originally developed by Lucas Diedrich - https://extensions.gnome.org/extension/1030/display-switcher/ and has been adapted to support Gnome Shell's v3.36.", "link": "https://extensions.gnome.org/extension/3459/display-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "13vb68xfmcx525yk2vgfny6xvi06nzv103an5zab90hvmj6ggzlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gdG9nZ2xlIGJldHdlZW4gZGlzcGxheSBtb2RlcyBxdWlja2x5IHVzaW5nIFN1cGVyICsgSS4gIFlvdSBjYW4gc3dpdGNoIGJldHdlZW4gRXh0ZW5kZWQsIFByaW1hcnksIENsb25lLCBhbmQgU2Vjb25kYXJ5IE9ubHkgbW9kZXMgcXVpY2tseS4gIFNlbGVjdGluZyBFeHRlbmRlZCBtb2RlIG11bHRpcGxlIHRpbWVzIHdpbGwgZmxpcCB5b3VyIHNlY29uZGFyeSBtb25pdG9yJ3MgcmVsYXRpdmUgcG9zaXRpb24gdG8gdGhlIHByaW1hcnkgKHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIGl0KS4gIFRoaXMgZXh0ZW5zaW9uIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBieSBMdWNhcyBEaWVkcmljaCAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEwMzAvZGlzcGxheS1zd2l0Y2hlci8gYW5kIGhhcyBiZWVuIGFkYXB0ZWQgdG8gc3VwcG9ydCBHbm9tZSBTaGVsbCdzIHYzLjM2LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNwbGF5LXN3aXRjaGVyIiwKICAibmFtZSI6ICJEaXNwbGF5IFN3aXRjaGVyIDIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTHVjYXMgRGllZHJpY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGlzcGxheS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l5YWRrYW5kYWxhZnQvZ25vbWUtZGlzcGxheS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZGlzcGxheS1zd2l0Y2hlckBpeWFkay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "myHiddenTopBar@lendoK.github.com", "name": "myHiddenTopBar", "pname": "myhiddentopbar", "description": "really hides the toppanel", "link": "https://extensions.gnome.org/extension/3481/myhiddentopbar/", "shell_version_map": {"38": {"version": "2", "sha256": "1vrj1ih0rvds9xng0i4n2cah9akm2j2vhma3a7zjyvljxmw82w5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm15SGlkZGVuVG9wQmFyQGxlbmRvSy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "3", "sha256": "0fl9rcdxn2l2lpc8fhcbvzm9lx0i12674kk15rpgbzfj8xn26qkw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm15SGlkZGVuVG9wQmFyQGxlbmRvSy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "big-avatar@gustavoperedo.org", "name": "Big Avatar", "pname": "big-avatar", "description": "Adds your user avatar and name to the menu panel. Big thanks to: db0x and 'I like 'em curvy' extension developer", "link": "https://extensions.gnome.org/extension/3488/big-avatar/", "shell_version_map": {"38": {"version": "6", "sha256": "1p278iaqfl39kimk3041wvzvmgag8dr2q1bmka3n7srkd2n71vlf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciB1c2VyIGF2YXRhciBhbmQgbmFtZSB0byB0aGUgbWVudSBwYW5lbC4gQmlnIHRoYW5rcyB0bzogZGIweCBhbmQgJ0kgbGlrZSAnZW0gY3VydnknIGV4dGVuc2lvbiBkZXZlbG9wZXIiLAogICJleHRlbnNpb24taWQiOiAiYmlnLWF2YXRhciIsCiAgIm5hbWUiOiAiQmlnIEF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaWctYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR3VzdGF2b1BlcmVkby9CaWctQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlnLWF2YXRhckBndXN0YXZvcGVyZWRvLm9yZyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "8", "sha256": "1pgbr188vk1b0wdfszg160b1x04yz28fr7pmnyiwqy2hsvqz81cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciB1c2VyIGF2YXRhciBhbmQgbmFtZSB0byB0aGUgbWVudSBwYW5lbC4gQmlnIHRoYW5rcyB0bzogZGIweCBhbmQgJ0kgbGlrZSAnZW0gY3VydnknIGV4dGVuc2lvbiBkZXZlbG9wZXIiLAogICJleHRlbnNpb24taWQiOiAiYmlnLWF2YXRhciIsCiAgIm5hbWUiOiAiQmlnIEF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaWctYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR3VzdGF2b1BlcmVkby9CaWctQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlnLWF2YXRhckBndXN0YXZvcGVyZWRvLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "volume-mixer@evermiss.net", "name": "Application Volume Mixer", "pname": "application-volume-mixer", "description": "Control volume output per-application", "link": "https://extensions.gnome.org/extension/3499/application-volume-mixer/", "shell_version_map": {"38": {"version": "7", "sha256": "02k60askhgs69ajwhsqkw4977065pvg3fnw70rhc1mnx1yvjbgs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb24iLAogICJuYW1lIjogIkFwcGxpY2F0aW9uIFZvbHVtZSBNaXhlciIsCiAgIm9yZ2luYWwtYXV0aG9yIjogIm15bWluZHN0b3JtQGV2ZXJtaXNzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9teW1pbmRzdG9ybS9nbm9tZS12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInZvbHVtZS1taXhlckBldmVybWlzcy5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "02k60askhgs69ajwhsqkw4977065pvg3fnw70rhc1mnx1yvjbgs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb24iLAogICJuYW1lIjogIkFwcGxpY2F0aW9uIFZvbHVtZSBNaXhlciIsCiAgIm9yZ2luYWwtYXV0aG9yIjogIm15bWluZHN0b3JtQGV2ZXJtaXNzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9teW1pbmRzdG9ybS9nbm9tZS12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInZvbHVtZS1taXhlckBldmVybWlzcy5uZXQiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "creative-control@sau.li", "name": "Creative Sound Blaster control", "pname": "creative-sound-blaster-control", "description": "Control Creative Sound Blaster", "link": "https://extensions.gnome.org/extension/3505/creative-sound-blaster-control/", "shell_version_map": {"38": {"version": "2", "sha256": "0pqps21c2p8fqndy9hd77j979h0wjbw0yzbmv6jmwk7rskv6zysg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgQ3JlYXRpdmUgU291bmQgQmxhc3RlciIsCiAgIm5hbWUiOiAiQ3JlYXRpdmUgU291bmQgQmxhc3RlciBjb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNhdWwzMi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY3JlYXRpdmUtY29udHJvbCIsCiAgInV1aWQiOiAiY3JlYXRpdmUtY29udHJvbEBzYXUubGkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "day-night-wallpaper@swapnilmadavi.github.io", "name": "Day Night Wallpaper", "pname": "day-night-wallpaper", "description": "Set separate wallpapers for day and night time.", "link": "https://extensions.gnome.org/extension/3512/day-night-wallpaper/", "shell_version_map": {"38": {"version": "2", "sha256": "082wrffxsa6qnp120ghlvhkb3isnnf9qizxfk6bbgqbzcvsax059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBzZXBhcmF0ZSB3YWxscGFwZXJzIGZvciBkYXkgYW5kIG5pZ2h0IHRpbWUuIiwKICAibmFtZSI6ICJEYXkgTmlnaHQgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRheS1uaWdodC13YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd2FwbmlsbWFkYXZpL2RheS1uaWdodC13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkYXktbmlnaHQtd2FsbHBhcGVyQHN3YXBuaWxtYWRhdmkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "transparent-shell@siroj42.github.io", "name": "Transparent Shell", "pname": "transparent-shell", "description": "Make the main shell components (Top bar, dash, search box) transparent.", "link": "https://extensions.gnome.org/extension/3518/transparent-shell/", "shell_version_map": {"38": {"version": "6", "sha256": "109c5w2p7w9arfy4wrqmyyi7vd5fwdr8n2cz250bpxiij6zq140k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIG1haW4gc2hlbGwgY29tcG9uZW50cyAoVG9wIGJhciwgZGFzaCwgc2VhcmNoIGJveCkgdHJhbnNwYXJlbnQuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1Npcm9qNDIvZ25vbWUtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXNoZWxsIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC1zaGVsbEBzaXJvajQyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "7", "sha256": "0nzx401vvzn8n9xnkd13v5jim0l7zd01p1lf0lbgydrr8gh67i95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIG1haW4gc2hlbGwgY29tcG9uZW50cyAoVG9wIGJhciwgZGFzaCwgc2VhcmNoIGJveCkgdHJhbnNwYXJlbnQuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TaXJvajQyL2dub21lLWV4dGVuc2lvbi10cmFuc3BhcmVudC1zaGVsbCIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtc2hlbGxAc2lyb2o0Mi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "gitlab-extension@infinicode.de", "name": "GitLab Extension", "pname": "gitlab-extension", "description": "GitLab extension utilizes the official GitLab API to provide a comfortable overview about your projects, commits & pipelines.\n", "link": "https://extensions.gnome.org/extension/3535/gitlab-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "downfall@torculus.github.com", "name": "DownFall", "pname": "downfall", "description": "Moves text of your choice across the screen. Can simulate leaves, snow, fireworks, ufos, and more! Note: currently experiencing high CPU usage. Developers welcome to contribute on github!", "link": "https://extensions.gnome.org/extension/3539/downfall/", "shell_version_map": {"38": {"version": "8", "sha256": "0bij98fazn8q8wjq96m30nf93xmmgq635c9y3svasqqghag8mrb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "0bij98fazn8q8wjq96m30nf93xmmgq635c9y3svasqqghag8mrb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIE5vdGU6IGN1cnJlbnRseSBleHBlcmllbmNpbmcgaGlnaCBDUFUgdXNhZ2UuIERldmVsb3BlcnMgd2VsY29tZSB0byBjb250cmlidXRlIG9uIGdpdGh1YiEiLAogICJuYW1lIjogIkRvd25GYWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for more information and troubleshooting.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {"38": {"version": "7", "sha256": "1mrxfivq4f0117yl1gv8q8j2m236b34livag1fv4a7pgi0graxxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJkZXBlbmRlbmNpZXMiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMvSW5zdGFsbGF0aW9uIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSB0YXNrcyBuZXh0IHRvIHRoZSBjYWxlbmRhciB3aWRnZXQuXG5cblZpc2l0IG91ciBXaWtpIHBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHRyb3VibGVzaG9vdGluZy4iLAogICJlcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvdGFzay13aWRnZXQiLAogICJncmVzb3VyY2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQuZ3Jlc291cmNlIiwKICAibG9jYWxlIjogInVzZXItc3BlY2lmaWMiLAogICJuYW1lIjogIlRhc2sgV2lkZ2V0IiwKICAic2NoZW1hcyI6ICJ1c2VyLXNwZWNpZmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA3LAogICJ3aWtpIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzIgp9"}, "40": {"version": "7", "sha256": "1mrxfivq4f0117yl1gv8q8j2m236b34livag1fv4a7pgi0graxxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJkZXBlbmRlbmNpZXMiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQvd2lraXMvSW5zdGFsbGF0aW9uIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSB0YXNrcyBuZXh0IHRvIHRoZSBjYWxlbmRhciB3aWRnZXQuXG5cblZpc2l0IG91ciBXaWtpIHBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHRyb3VibGVzaG9vdGluZy4iLAogICJlcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvdGFzay13aWRnZXQiLAogICJncmVzb3VyY2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQuZ3Jlc291cmNlIiwKICAibG9jYWxlIjogInVzZXItc3BlY2lmaWMiLAogICJuYW1lIjogIlRhc2sgV2lkZ2V0IiwKICAic2NoZW1hcyI6ICJ1c2VyLXNwZWNpZmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiA3LAogICJ3aWtpIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzIgp9"}}}
+, {"uuid": "azan@hatem.masmoudi.org", "name": "Azan Islamic Prayer Times", "pname": "azan-islamic-prayer-times", "description": "Azan is an Islamic prayer times extension for Gnome Shell based on the extension by Fahrinh.\n\nFeatures\n- List compulsory prayer times\n Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Moon status icon", "link": "https://extensions.gnome.org/extension/3602/azan-islamic-prayer-times/", "shell_version_map": {"38": {"version": "2", "sha256": "1z58m1w04mdddq9p3102jv852zks41f2l7xbx7j8jcljy4ahiqll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbCBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIGJ5IEZhaHJpbmguXG5cbkZlYXR1cmVzXG4tIExpc3QgY29tcHVsc29yeSBwcmF5ZXIgdGltZXNcbiBPcHRpb25hbGx5IGRpc3BsYXkgSW1zYWssIFN1bnJpc2UsIFN1bnNldCBhbmQgTWlkbmlnaHRcbi0gU2hvdyByZW1haW5pbmcgdGltZSBmb3IgdGhlIHVwY29taW5nIHByYXllci5cbi0gU2hvdyBjdXJyZW50IGRhdGUgaW4gSGlqcmkgY2FsZW5kYXIuXG4tIERpc3BsYXkgYSBub3RpZmljYXRpb24gd2hlbiBpdCdzIHRpbWUgZm9yIHByYXllci5cbi0gQXV0b21hdGljIEdlb2NsdWUyIGxvY2F0aW9uIGRldGVjdGlvblxuLSBTaG93IHRpbWVzIGluIDI0IGhvdXIgYW5kIDEyIGhvdXIgZm9ybWF0c1xuLSBIaWpyaSBkYXRlIGFkanVzbWVudFxuLSBNb29uIHN0YXR1cyBpY29uIiwKICAibmFtZSI6ICJBemFuIElzbGFtaWMgUHJheWVyIFRpbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF6YW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vaG1hc21vdWRpL2F6YW4tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhemFuQGhhdGVtLm1hc21vdWRpLm9yZyIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "blur-provider@corvettecole.github.com", "name": "blur-provider", "pname": "blur-provider", "description": "Provides an easy way for applications to request blur, and allows users to set blur on applications", "link": "https://extensions.gnome.org/extension/3607/blur-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "1p0cyq1bfi18ysk1fvydjvk6qdl87qi9p3kpc165q5i0d4b41ffp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGFuIGVhc3kgd2F5IGZvciBhcHBsaWNhdGlvbnMgdG8gcmVxdWVzdCBibHVyLCBhbmQgYWxsb3dzIHVzZXJzIHRvIHNldCBibHVyIG9uIGFwcGxpY2F0aW9ucyIsCiAgImV4dGVuc2lvbi1pZCI6ICJibHVyLXByb3ZpZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiYmx1ci1wcm92aWRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29ydmV0dGVjb2xlL2JsdXItcHJvdmlkZXIiLAogICJ1dWlkIjogImJsdXItcHJvdmlkZXJAY29ydmV0dGVjb2xlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "shamsi-calendar@gnome.scr.ir", "name": "Iranian Persian Calendar", "pname": "shamsi-calendar", "description": "تقویم هجری شمسی،قمری و میلادی در میز‌کار گنوم لینوکس\nقابلیت نمایش اوقات شرعی و پخش اذان\nدرج تعطیلی‌ها و مناسبت‌های رسمی تقویم\nزبان کاملاً فارسی\nتاریخ قمری هلالی ایران\nسازگار با اکثر نسخه‌های گنوم\nدر حال توسعه...\n\nShows Persian + Islamic + Gregorian date in the panel of gnome.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri(Islamic)\n5- Show calendar Events.\n6- Show PrayTimes and play sound (Azan).\n\nPlease \"rate\" here and \"star\" project in GitHub.\nPlease open an issue in GitHub if you found something or have an idea!\nگزارش مشکلات:\nhttps://github.com/SCR-IR/gnome-shamsi-calendar/issues", "link": "https://extensions.gnome.org/extension/3618/shamsi-calendar/", "shell_version_map": {"38": {"version": "13", "sha256": "05g1lshild456qm73a2g7wcis0hkkilyv2i8naq2wp17g17rw5dn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "05g1lshild456qm73a2g7wcis0hkkilyv2i8naq2wp17g17rw5dn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "arcmenu@arcmenu.com", "name": "ArcMenu", "pname": "arcmenu", "description": "Application Menu for GNOME, with various layouts to choose from!\n\nSupports GNOME shell 3.36, 3.38, and 40.\n\nFor GNOME shell versions 3.14-3.34 visit https://extensions.gnome.org/extension/1228/arc-menu/\n\nCommon solutions for ERROR message:\n-Restart your GNOME session after updating ArcMenu.\n-Make sure package 'gir1.2-gmenu-3.0' is installed.\n\nGeneral Help:\n-Visit https://gitlab.com/arcmenu/ArcMenu/-/wikis/home\n\nPlease report any other issues or concerns on the ArcMenu GitLab page.", "link": "https://extensions.gnome.org/extension/3628/arcmenu/", "shell_version_map": {"38": {"version": "8", "sha256": "0zhnb7r1v1pnkw1f0kh3m1pxbsn8vycvs8iyp1qv3rrav9vbvvhz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgYW5kIDQwLlxuXG5Gb3IgR05PTUUgc2hlbGwgdmVyc2lvbnMgMy4xNC0zLjM0IHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1NYWtlIHN1cmUgcGFja2FnZSAnZ2lyMS4yLWdtZW51LTMuMCcgaXMgaW5zdGFsbGVkLlxuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbnkgb3RoZXIgaXNzdWVzIG9yIGNvbmNlcm5zIG9uIHRoZSBBcmNNZW51IEdpdExhYiBwYWdlLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "10", "sha256": "1094mjp57gf9a3yw7v3j2hgawgrip3ylwbq2l80mjr5q062a8p4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgZm9yIEdOT01FLCB3aXRoIHZhcmlvdXMgbGF5b3V0cyB0byBjaG9vc2UgZnJvbSFcblxuU3VwcG9ydHMgR05PTUUgc2hlbGwgMy4zNiwgMy4zOCwgYW5kIDQwLlxuXG5Gb3IgR05PTUUgc2hlbGwgdmVyc2lvbnMgMy4xNC0zLjM0IHZpc2l0IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyMjgvYXJjLW1lbnUvXG5cbkNvbW1vbiBzb2x1dGlvbnMgZm9yIEVSUk9SIG1lc3NhZ2U6XG4tUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbi1NYWtlIHN1cmUgcGFja2FnZSAnZ2lyMS4yLWdtZW51LTMuMCcgaXMgaW5zdGFsbGVkLlxuXG5HZW5lcmFsIEhlbHA6XG4tVmlzaXQgaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudS8tL3dpa2lzL2hvbWVcblxuUGxlYXNlIHJlcG9ydCBhbnkgb3RoZXIgaXNzdWVzIG9yIGNvbmNlcm5zIG9uIHRoZSBBcmNNZW51IEdpdExhYiBwYWdlLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmNtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXJjbWVudSIsCiAgIm5hbWUiOiAiQXJjTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"uuid": "fixedimelist@alynx.one", "name": "Fixed IME List", "pname": "fixed-ime-list", "description": "Make the IME list in fixed sequence instead of MRU.", "link": "https://extensions.gnome.org/extension/3663/fixed-ime-list/", "shell_version_map": {"38": {"version": "5", "sha256": "1f0c8xkdv6ij4rc0gdfmqgshxcn5pg6zqb25rcxgjg1ckp10984w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1f0c8xkdv6ij4rc0gdfmqgshxcn5pg6zqb25rcxgjg1ckp10984w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "topindicatorapp@quiro9.com", "name": "Top Indicator App", "pname": "top-indicator-app", "description": "This extension is 'appindicators' from ubuntu, renamed 'top indicator app' under the terms of the GPL v2 +. it is the extension itself that Ubuntu offers as a native experience on your system, but so you can install it in other distros since the current one in gnome-extensions is empty.I will offer stable updates when possible.", "link": "https://extensions.gnome.org/extension/3681/top-indicator-app/", "shell_version_map": {"38": {"version": "2", "sha256": "12r4fxgsgd7jn001vlzqrsd86ci62zxk0b9p3bkdqh6g5hj3la35", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGlzICdhcHBpbmRpY2F0b3JzJyBmcm9tIHVidW50dSwgcmVuYW1lZCAndG9wIGluZGljYXRvciBhcHAnIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR1BMIHYyICsuIGl0IGlzIHRoZSBleHRlbnNpb24gaXRzZWxmIHRoYXQgVWJ1bnR1IG9mZmVycyBhcyBhIG5hdGl2ZSBleHBlcmllbmNlIG9uIHlvdXIgc3lzdGVtLCBidXQgc28geW91IGNhbiBpbnN0YWxsIGl0IGluIG90aGVyIGRpc3Ryb3Mgc2luY2UgdGhlIGN1cnJlbnQgb25lIGluIGdub21lLWV4dGVuc2lvbnMgaXMgZW1wdHkuSSB3aWxsIG9mZmVyIHN0YWJsZSB1cGRhdGVzIHdoZW4gcG9zc2libGUuIiwKICAibmFtZSI6ICJUb3AgSW5kaWNhdG9yIEFwcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VidW50dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXBwaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ0b3BpbmRpY2F0b3JhcHBAcXVpcm85LmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "reorder-workspaces@jer.dev", "name": "Reorder Workspaces", "pname": "reorder-workspaces", "description": "Move workspaces up or down in the overview with Alt+Up/Alt+Down", "link": "https://extensions.gnome.org/extension/3685/reorder-workspaces/", "shell_version_map": {"38": {"version": "6", "sha256": "1f0hl2dzl75dwcv8jzx3rk1laqd9y9m32g219nvbhsmk8rjxfc31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd29ya3NwYWNlcyB1cCBvciBkb3duIGluIHRoZSBvdmVydmlldyB3aXRoIEFsdCtVcC9BbHQrRG93biIsCiAgIm5hbWUiOiAiUmVvcmRlciBXb3Jrc3BhY2VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlb3JkZXItd29ya3NwYWNlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plcmVtaWFobWVnZWwvZ25vbWUtcmVvcmRlci13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJyZW9yZGVyLXdvcmtzcGFjZXNAamVyLmRldiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "eos-hack@endlessos.org", "name": "Hack", "pname": "hack", "description": "Add the Flip to Hack experience to the desktop", "link": "https://extensions.gnome.org/extension/3690/hack/", "shell_version_map": {"38": {"version": "7", "sha256": "1dm9471qpyghzh0vvwdcliqrshv3844wizkgcv4fiwccr346i6ga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgRmxpcCB0byBIYWNrIGV4cGVyaWVuY2UgdG8gdGhlIGRlc2t0b3AiLAogICJuYW1lIjogIkhhY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmVuZGxlc3Nvcy5oYWNrLWV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1oYWNrLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWhhY2tAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "appmenu-color-icon@yanbab.gitlab.com", "name": "Colored AppMenu Icon", "pname": "color-app-menu-icon", "description": "Replace the symbolic application menu icon with the colored one", "link": "https://extensions.gnome.org/extension/3712/color-app-menu-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "17bsnqimkanf6c3d3qjvhggi5r3xjp6pha05fyh6b1ak9m9lvg53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgdGhlIHN5bWJvbGljIGFwcGxpY2F0aW9uIG1lbnUgaWNvbiB3aXRoIHRoZSBjb2xvcmVkIG9uZSIsCiAgIm5hbWUiOiAiQ29sb3JlZCBBcHBNZW51IEljb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS95YW5iYWIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJlZ3VsYXItYXBwbWVudS1pY29uIiwKICAidXVpZCI6ICJhcHBtZW51LWNvbG9yLWljb25AeWFuYmFiLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "snap-manager@fthx", "name": "Snap Manager", "pname": "snap-manager", "description": "Popup menu in the top bar to easily manage snap tasks (list, changes, refresh, remove, install...). Update notification at session start-up.\n\n All the results of actions are displayed in GNOME Terminal, so you can exactly know what you are doing and what is processing. Very light extension, no background process, no periodic background task. You can turn off refresh check and associated notifications (just a variable to toggle in <extension_folder>/extension.js). You can disable auto updates for a limited time (up to one month, renewable), consequently be notified of snap updates and manually install them. \n\n This is not an official Ubuntu/Canonical extension.", "link": "https://extensions.gnome.org/extension/3715/snap-manager/", "shell_version_map": {"38": {"version": "32", "sha256": "0baby2385cnk0j133vr0n8z92smps28shzxymn80ljk8dmdqz1gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc25hcC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzbmFwLW1hbmFnZXJAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}, "40": {"version": "32", "sha256": "0baby2385cnk0j133vr0n8z92smps28shzxymn80ljk8dmdqz1gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcHVwIG1lbnUgaW4gdGhlIHRvcCBiYXIgdG8gZWFzaWx5IG1hbmFnZSBzbmFwIHRhc2tzIChsaXN0LCBjaGFuZ2VzLCByZWZyZXNoLCByZW1vdmUsIGluc3RhbGwuLi4pLiBVcGRhdGUgbm90aWZpY2F0aW9uIGF0IHNlc3Npb24gc3RhcnQtdXAuXG5cbiBBbGwgdGhlIHJlc3VsdHMgb2YgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluIEdOT01FIFRlcm1pbmFsLCBzbyB5b3UgY2FuIGV4YWN0bHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHdoYXQgaXMgcHJvY2Vzc2luZy4gVmVyeSBsaWdodCBleHRlbnNpb24sIG5vIGJhY2tncm91bmQgcHJvY2Vzcywgbm8gcGVyaW9kaWMgYmFja2dyb3VuZCB0YXNrLiBZb3UgY2FuIHR1cm4gb2ZmIHJlZnJlc2ggY2hlY2sgYW5kIGFzc29jaWF0ZWQgbm90aWZpY2F0aW9ucyAoanVzdCBhIHZhcmlhYmxlIHRvIHRvZ2dsZSBpbiA8ZXh0ZW5zaW9uX2ZvbGRlcj4vZXh0ZW5zaW9uLmpzKS4gWW91IGNhbiBkaXNhYmxlIGF1dG8gdXBkYXRlcyBmb3IgYSBsaW1pdGVkIHRpbWUgKHVwIHRvIG9uZSBtb250aCwgcmVuZXdhYmxlKSwgY29uc2VxdWVudGx5IGJlIG5vdGlmaWVkIG9mIHNuYXAgdXBkYXRlcyBhbmQgbWFudWFsbHkgaW5zdGFsbCB0aGVtLiBcblxuIFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIFVidW50dS9DYW5vbmljYWwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiU25hcCBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc25hcC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzbmFwLW1hbmFnZXJAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "hide-dash-forked@farnasirim.com", "name": "Hide Dash Forked", "pname": "hide-dash-forked", "description": "Hide dash menu from gnome overview", "link": "https://extensions.gnome.org/extension/3718/hide-dash-forked/", "shell_version_map": {"38": {"version": "3", "sha256": "1j0ca2nwj8bhnn2vv3fgjhglg8af9iqa992i7d2mvxx4zisj8rdq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZGFzaCBtZW51IGZyb20gZ25vbWUgb3ZlcnZpZXciLAogICJuYW1lIjogIkhpZGUgRGFzaCBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXJuYXNpcmltL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWRlLWRhc2gtZm9ya2VkIiwKICAidXVpZCI6ICJoaWRlLWRhc2gtZm9ya2VkQGZhcm5hc2lyaW0uY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "netspeedsimplified@prateekmedia.extension", "name": "Net speed Simplified", "pname": "net-speed-simplified", "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Add Limit Unit option \n☞ Tested on GNOME 40, 3.38 and 3.36 \n☞ Fix a bug where refresh time was getting reset to 6.5 \n☞ Used Min Width 3.0 by default \n \nFeatures \n1. Cleaner UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\n Feature Highlights for Preferences \n1. Lock Mouse Actions button to Freeze Mouse Events \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n\nModes \n- Total net speed in bits per second \n- Total net speed in Bytes per second \n- Up and down speed in bits per second \n- Up and down speed in Bytes per second \n- Total of downloaded in Bytes (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click to toggle total data usage visibility \n- Right click continuously for 4 times in any mode to toggle vertical alignment \n- Middle click to change font size", "link": "https://extensions.gnome.org/extension/3724/net-speed-simplified/", "shell_version_map": {"38": {"version": "27", "sha256": "1g2jk200v8fyl1f0yrw98jsvr3ymhmd3glq6min4lx531j80r948", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIExpbWl0IFVuaXQgb3B0aW9uIFxuXHUyNjFlIFRlc3RlZCBvbiBHTk9NRSA0MCwgMy4zOCBhbmQgMy4zNiBcblx1MjYxZSBGaXggYSBidWcgd2hlcmUgcmVmcmVzaCB0aW1lIHdhcyBnZXR0aW5nIHJlc2V0IHRvIDYuNSBcblx1MjYxZSBVc2VkIE1pbiBXaWR0aCAzLjAgYnkgZGVmYXVsdCBcbiBcbkZlYXR1cmVzIFxuMS4gQ2xlYW5lciBVSSBcbjIuIEFkanVzdGFibGUgUmVmcmVzaCByYXRlIFxuMy4gUHJlZmVyZW5jZXMgdG8gbWFuYWdlIGV4dGVuc2lvbiBcbjQuIFZlcnRpY2FsIEFsaWdubWVudCBTdXBwb3J0IFxuNS4gVHdvIEljb24gc2V0cyBmb3IgSW5kaWNhdG9ycyBcblxuIEZlYXR1cmUgSGlnaGxpZ2h0cyBmb3IgUHJlZmVyZW5jZXMgXG4xLiBMb2NrIE1vdXNlIEFjdGlvbnMgYnV0dG9uIHRvIEZyZWV6ZSBNb3VzZSBFdmVudHMgXG4yLiBBZHZhbmNlIFBvc2l0aW9uIG9wdGlvbnMgdG8gcGlucG9pbnQgd2hlcmUgdG8gcGxhY2UgdGhlIGluZGljYXRvciBvbiB0aGUgUGFuZWwuIFxuMy4gUmVmcmVzaCB0aW1lIG9wdGlvbiBieSB3aGljaCB5b3UgY2FuIGNoYW5nZSByZWZyZXNoIHJhdGUgdmFsdWUgYmV0d2VlbiAxLjAgc2VjIHRvIDEwLjAgc2VjLiBcblxuTW9kZXMgXG4tIFRvdGFsIG5ldCBzcGVlZCBpbiBiaXRzIHBlciBzZWNvbmQgXG4tIFRvdGFsIG5ldCBzcGVlZCBpbiBCeXRlcyBwZXIgc2Vjb25kIFxuLSBVcCBhbmQgZG93biBzcGVlZCBpbiBiaXRzIHBlciBzZWNvbmQgXG4tIFVwIGFuZCBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmQgXG4tIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpIFxuXG5Nb3VzZSBFdmVudHMgXG4tIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzIFxuLSBSaWdodCBjbGljayB0byB0b2dnbGUgdG90YWwgZGF0YSB1c2FnZSB2aXNpYmlsaXR5IFxuLSBSaWdodCBjbGljayBjb250aW51b3VzbHkgZm9yIDQgdGltZXMgaW4gYW55IG1vZGUgdG8gdG9nZ2xlIHZlcnRpY2FsIGFsaWdubWVudCBcbi0gTWlkZGxlIGNsaWNrIHRvIGNoYW5nZSBmb250IHNpemUiLAogICJuYW1lIjogIk5ldCBzcGVlZCBTaW1wbGlmaWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "40": {"version": "27", "sha256": "1g2jk200v8fyl1f0yrw98jsvr3ymhmd3glq6min4lx531j80r948", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIExpbWl0IFVuaXQgb3B0aW9uIFxuXHUyNjFlIFRlc3RlZCBvbiBHTk9NRSA0MCwgMy4zOCBhbmQgMy4zNiBcblx1MjYxZSBGaXggYSBidWcgd2hlcmUgcmVmcmVzaCB0aW1lIHdhcyBnZXR0aW5nIHJlc2V0IHRvIDYuNSBcblx1MjYxZSBVc2VkIE1pbiBXaWR0aCAzLjAgYnkgZGVmYXVsdCBcbiBcbkZlYXR1cmVzIFxuMS4gQ2xlYW5lciBVSSBcbjIuIEFkanVzdGFibGUgUmVmcmVzaCByYXRlIFxuMy4gUHJlZmVyZW5jZXMgdG8gbWFuYWdlIGV4dGVuc2lvbiBcbjQuIFZlcnRpY2FsIEFsaWdubWVudCBTdXBwb3J0IFxuNS4gVHdvIEljb24gc2V0cyBmb3IgSW5kaWNhdG9ycyBcblxuIEZlYXR1cmUgSGlnaGxpZ2h0cyBmb3IgUHJlZmVyZW5jZXMgXG4xLiBMb2NrIE1vdXNlIEFjdGlvbnMgYnV0dG9uIHRvIEZyZWV6ZSBNb3VzZSBFdmVudHMgXG4yLiBBZHZhbmNlIFBvc2l0aW9uIG9wdGlvbnMgdG8gcGlucG9pbnQgd2hlcmUgdG8gcGxhY2UgdGhlIGluZGljYXRvciBvbiB0aGUgUGFuZWwuIFxuMy4gUmVmcmVzaCB0aW1lIG9wdGlvbiBieSB3aGljaCB5b3UgY2FuIGNoYW5nZSByZWZyZXNoIHJhdGUgdmFsdWUgYmV0d2VlbiAxLjAgc2VjIHRvIDEwLjAgc2VjLiBcblxuTW9kZXMgXG4tIFRvdGFsIG5ldCBzcGVlZCBpbiBiaXRzIHBlciBzZWNvbmQgXG4tIFRvdGFsIG5ldCBzcGVlZCBpbiBCeXRlcyBwZXIgc2Vjb25kIFxuLSBVcCBhbmQgZG93biBzcGVlZCBpbiBiaXRzIHBlciBzZWNvbmQgXG4tIFVwIGFuZCBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmQgXG4tIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpIFxuXG5Nb3VzZSBFdmVudHMgXG4tIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzIFxuLSBSaWdodCBjbGljayB0byB0b2dnbGUgdG90YWwgZGF0YSB1c2FnZSB2aXNpYmlsaXR5IFxuLSBSaWdodCBjbGljayBjb250aW51b3VzbHkgZm9yIDQgdGltZXMgaW4gYW55IG1vZGUgdG8gdG9nZ2xlIHZlcnRpY2FsIGFsaWdubWVudCBcbi0gTWlkZGxlIGNsaWNrIHRvIGNoYW5nZSBmb250IHNpemUiLAogICJuYW1lIjogIk5ldCBzcGVlZCBTaW1wbGlmaWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjcKfQ=="}}}
+, {"uuid": "cpupower-governors@icar.github.com", "name": "CPU Power Governor", "pname": "cpu-power-governor", "description": "Enables the ability to swap between kernel governors for the CPU useful for laptops.\n\nRequires: polkit, cpupower\nGithub: https://github.com/juxuanu/cpupower-governors", "link": "https://extensions.gnome.org/extension/3727/cpu-power-governor/", "shell_version_map": {"38": {"version": "2", "sha256": "1hb239w4cpz6yzs3pzd3hhrwswh6w5c5xw6dqn57m26cazh843qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgdGhlIGFiaWxpdHkgdG8gc3dhcCBiZXR3ZWVuIGtlcm5lbCBnb3Zlcm5vcnMgZm9yIHRoZSBDUFUgdXNlZnVsIGZvciBsYXB0b3BzLlxuXG5SZXF1aXJlczogcG9sa2l0LCBjcHVwb3dlclxuR2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vanV4dWFudS9jcHVwb3dlci1nb3Zlcm5vcnMiLAogICJuYW1lIjogIkNQVSBQb3dlciBHb3Zlcm5vciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjcHVwb3dlci1nb3Zlcm5vcnNAaWNhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "floating-dock@nandoferreira_prof@hotmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "A Custom dash to dock fork, now you can change the margin and border radius of the dock.", "link": "https://extensions.gnome.org/extension/3730/floating-dock/", "shell_version_map": {"38": {"version": "1", "sha256": "1fsbj9v1j483x1dl40bbrfl88d2m00mryrl05s67cjd4mak5dm8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIGRhc2ggdG8gZG9jayBmb3JrLCBub3cgeW91IGNhbiBjaGFuZ2UgdGhlIG1hcmdpbiBhbmQgYm9yZGVyIHJhZGl1cyBvZiB0aGUgZG9jay4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmbG9hdGluZ2RvY2siLAogICJuYW1lIjogIkZsb2F0aW5nIERvY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAibmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVyLW1vcmVpcmEvZmxvYXRpbmctZG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmctZG9ja0BuYW5kb2ZlcnJlaXJhX3Byb2ZAaG90bWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "An extension which adds a Windows-like snap assist to GNOME. It also expands GNOME's 2 column tiling design and adds more features. Check out the settings on how use this extension or on how to get help.", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "20", "sha256": "09l1qhzqndjfaq8j5028pisw7qkhqv2f4qbz579q3s2snsknixxq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBhZGRzIGEgV2luZG93cy1saWtlIHNuYXAgYXNzaXN0IHRvIEdOT01FLiBJdCBhbHNvIGV4cGFuZHMgR05PTUUncyAyIGNvbHVtbiB0aWxpbmcgZGVzaWduIGFuZCBhZGRzIG1vcmUgZmVhdHVyZXMuIENoZWNrIG91dCB0aGUgc2V0dGluZ3Mgb24gaG93IHVzZSB0aGlzIGV4dGVuc2lvbiBvciBvbiBob3cgdG8gZ2V0IGhlbHAuIiwKICAibmFtZSI6ICJUaWxpbmcgQXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9UaWxpbmctQXNzaXN0YW50IiwKICAidXVpZCI6ICJ0aWxpbmctYXNzaXN0YW50QGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "40": {"version": "20", "sha256": "09l1qhzqndjfaq8j5028pisw7qkhqv2f4qbz579q3s2snsknixxq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBhZGRzIGEgV2luZG93cy1saWtlIHNuYXAgYXNzaXN0IHRvIEdOT01FLiBJdCBhbHNvIGV4cGFuZHMgR05PTUUncyAyIGNvbHVtbiB0aWxpbmcgZGVzaWduIGFuZCBhZGRzIG1vcmUgZmVhdHVyZXMuIENoZWNrIG91dCB0aGUgc2V0dGluZ3Mgb24gaG93IHVzZSB0aGlzIGV4dGVuc2lvbiBvciBvbiBob3cgdG8gZ2V0IGhlbHAuIiwKICAibmFtZSI6ICJUaWxpbmcgQXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9UaWxpbmctQXNzaXN0YW50IiwKICAidXVpZCI6ICJ0aWxpbmctYXNzaXN0YW50QGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "airpods-battery-status@ju.wtf", "name": "Airpods Battery status", "pname": "airpods-battery-status", "description": "Show Airpods battery level in top bar\n\n/!\\ See requirements on repository page", "link": "https://extensions.gnome.org/extension/3736/airpods-battery-status/", "shell_version_map": {"38": {"version": "5", "sha256": "0m68va2yh1cs91wb9c1yzdxj9pr3abj5jsx9q05cyiibd2zmbl92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXJcblxuLyFcXCBTZWUgcmVxdWlyZW1lbnRzIG9uIHJlcG9zaXRvcnkgcGFnZSIsCiAgIm5hbWUiOiAiQWlycG9kcyBCYXR0ZXJ5IHN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0m68va2yh1cs91wb9c1yzdxj9pr3abj5jsx9q05cyiibd2zmbl92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXJcblxuLyFcXCBTZWUgcmVxdWlyZW1lbnRzIG9uIHJlcG9zaXRvcnkgcGFnZSIsCiAgIm5hbWUiOiAiQWlycG9kcyBCYXR0ZXJ5IHN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "hue-lights@chlumskyvaclav.gmail.com", "name": "Hue Lights", "pname": "hue-lights", "description": "This extension controls Philips Hue compatible lights using Philips Hue Bridge on your local network.\nIf you experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/3737/hue-lights/", "shell_version_map": {"38": {"version": "12", "sha256": "16wklxqmc85x9il9ry8p4pwi6cl09k3ssv1pbdzryqr8didh21gk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmsuXG5JZiB5b3UgZXhwZXJpZW5jaW5nIGFuIGVycm9yIG9uIHRoZSB1cGdyYWRlLCBwbGVhc2UgbG9nIG91dCBhbmQgbG9nIGluIGFnYWluLiIsCiAgImdldHRleHQtZG9tYWluIjogImh1ZS1saWdodHMiLAogICJuYW1lIjogIkh1ZSBMaWdodHMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiY2hsdW1za3l2YWNsYXZAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS9odWUtbGlnaHRzIiwKICAidXVpZCI6ICJodWUtbGlnaHRzQGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "16wklxqmc85x9il9ry8p4pwi6cl09k3ssv1pbdzryqr8didh21gk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmsuXG5JZiB5b3UgZXhwZXJpZW5jaW5nIGFuIGVycm9yIG9uIHRoZSB1cGdyYWRlLCBwbGVhc2UgbG9nIG91dCBhbmQgbG9nIGluIGFnYWluLiIsCiAgImdldHRleHQtZG9tYWluIjogImh1ZS1saWdodHMiLAogICJuYW1lIjogIkh1ZSBMaWdodHMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiY2hsdW1za3l2YWNsYXZAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS9odWUtbGlnaHRzIiwKICAidXVpZCI6ICJodWUtbGlnaHRzQGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "compiz-alike-magic-lamp-effect@hermes83.github.com", "name": "Compiz alike magic lamp effect", "pname": "compiz-alike-magic-lamp-effect", "description": "Magic lamp effect inspired by the Compiz ones\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)", "link": "https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/", "shell_version_map": {"38": {"version": "9", "sha256": "1nw527afjrw8bqjrgbj99klcq9x6755iz2frkzsc5mn8pmcd3y73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "1nw527afjrw8bqjrgbj99klcq9x6755iz2frkzsc5mn8pmcd3y73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LWFsaWtlLW1hZ2ljLWxhbXAtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
+, {"uuid": "latency-monitor@gitlab.labsatho.me", "name": "Latency Monitor", "pname": "latency-monitor", "description": "A simple extension for displaying latency information using pings in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3746/latency-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "0k2y1qrq7irkn2c72pk4c5x4fwzaxkfp3jj7qvhzih6zmkifdzcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZGlzcGxheWluZyBsYXRlbmN5IGluZm9ybWF0aW9uIHVzaW5nIHBpbmdzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiTGF0ZW5jeSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdGVuY3ktbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3dhbGthZndhbGthL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sYXRlbmN5LW1vbml0b3IiLAogICJ1dWlkIjogImxhdGVuY3ktbW9uaXRvckBnaXRsYWIubGFic2F0aG8ubWUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "the-circles-widget@xenlism.github.io", "name": "The Circles - Desktop Widget", "pname": "the-circles-desktop-widget", "description": "Show System Infomations on Desktop as Circles Desktop Widget\n\nmore info \nhttps://www.linuxuprising.com/2020/11/display-clock-ram-and-cpu-usage-as.html", "link": "https://extensions.gnome.org/extension/3748/the-circles-desktop-widget/", "shell_version_map": {"38": {"version": "6", "sha256": "0kxync9gdjgcfq3vfhf5z0065n30jw5y5jl00hdgarsh4pkbji04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAidGhlLWNpcmNsZXMtd2lkZ2V0QHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "12", "sha256": "0ngn00y97dqv667z47xahfv53dlb2asm0jbk9harlv4516jdrg0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInRoZS1jaXJjbGVzLXdpZGdldEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "overview_cleaner@gonza.com", "name": "Cleaner Overview", "pname": "cleaner-overview", "description": "Makes all the windows in the overview the same height and orders them by last recent used.", "link": "https://extensions.gnome.org/extension/3759/cleaner-overview/", "shell_version_map": {"38": {"version": "2", "sha256": "0k1q3b0x83ygjlysp39pv2i076zrhsxdlzf7yg3dq76nk98q3l2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdG91Y2hwYWQtd2luZG93LXN3aXRjaGVyLWdub21lLWV4dC9ibG9iL21hc3Rlci90b3VjaHBhZF93aW5kb3dfc3dpdGNoZXIlNDBnb256YS5jb20vb3ZlcnZpZXdDbGVhbmVyLmpzIiwKICAidXVpZCI6ICJvdmVydmlld19jbGVhbmVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0k1q3b0x83ygjlysp39pv2i076zrhsxdlzf7yg3dq76nk98q3l2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdG91Y2hwYWQtd2luZG93LXN3aXRjaGVyLWdub21lLWV4dC9ibG9iL21hc3Rlci90b3VjaHBhZF93aW5kb3dfc3dpdGNoZXIlNDBnb256YS5jb20vb3ZlcnZpZXdDbGVhbmVyLmpzIiwKICAidXVpZCI6ICJvdmVydmlld19jbGVhbmVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "distinct@sireliah.com", "name": "Distinct Windows", "pname": "distinct-windows", "description": "Visually differentiate windows with colors and symbols", "link": "https://extensions.gnome.org/extension/3769/distinct-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "1iqga92l9mk3ykf8bdy9igvqfx9k78jasdmqsrrz9zcz33d7k4h7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc3VhbGx5IGRpZmZlcmVudGlhdGUgd2luZG93cyB3aXRoIGNvbG9ycyBhbmQgc3ltYm9scyIsCiAgIm5hbWUiOiAiRGlzdGluY3QgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NpcmVsaWFoL2Rpc3RpbmN0LXdpbmRvd3MiLAogICJ1dWlkIjogImRpc3RpbmN0QHNpcmVsaWFoLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "miniCal2@breiq", "name": "Minimalist Calendar 2", "pname": "minimalist-calendar-2", "description": "Remove event list and clock/calendar app buttons from the calendar window.", "link": "https://extensions.gnome.org/extension/3775/minimalist-calendar-2/", "shell_version_map": {"38": {"version": "1", "sha256": "1nh10ik3zk3r4jr31mr8nw8nnamgj3mk1f3im06657wv18x9wvam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIiwKICAibmFtZSI6ICJNaW5pbWFsaXN0IENhbGVuZGFyIDIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWluaUNhbDJAYnJlaXEiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively.\n\nPlease use GitHub (\"Extension Homepage\") to report issues or request features.", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "16", "sha256": "1csn3x3ffm828469lgnm7imxa70zhjhndqmvvchjkx6iyjx4kjkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseS5cblxuUGxlYXNlIHVzZSBHaXRIdWIgKFwiRXh0ZW5zaW9uIEhvbWVwYWdlXCIpIHRvIHJlcG9ydCBpc3N1ZXMgb3IgcmVxdWVzdCBmZWF0dXJlcy4iLAogICJuYW1lIjogImRkdGVybSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20uZ2l0aHViLmFtZXppbi5kZHRlcm0iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1lemluL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "1csn3x3ffm828469lgnm7imxa70zhjhndqmvvchjkx6iyjx4kjkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseS5cblxuUGxlYXNlIHVzZSBHaXRIdWIgKFwiRXh0ZW5zaW9uIEhvbWVwYWdlXCIpIHRvIHJlcG9ydCBpc3N1ZXMgb3IgcmVxdWVzdCBmZWF0dXJlcy4iLAogICJuYW1lIjogImRkdGVybSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20uZ2l0aHViLmFtZXppbi5kZHRlcm0iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1lemluL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "favorites-only-dash@nahuelwexd.github.io", "name": "Favorites-only Dash", "pname": "favorites-only-dash", "description": "Show only favorite apps on Dash", "link": "https://extensions.gnome.org/extension/3789/favorites-only-dash/", "shell_version_map": {"38": {"version": "1", "sha256": "110h019563j33gksaq5fs0z71sz1mslq1sbsmhk9mj3qggd9vs65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgb25seSBmYXZvcml0ZSBhcHBzIG9uIERhc2giLAogICJuYW1lIjogIkZhdm9yaXRlcy1vbmx5IERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZmF2b3JpdGVzLW9ubHktZGFzaEBuYWh1ZWx3ZXhkLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "notification-timeout@chlumskyvaclav.gmail.com", "name": "Notification Timeout", "pname": "notification-timeout", "description": "This extension allows configuring the same timeout for all notifications. It also allows ignoring the idle state.", "link": "https://extensions.gnome.org/extension/3795/notification-timeout/", "shell_version_map": {"38": {"version": "2", "sha256": "160cavym08xkvyvfgmch56pckd6h6lv9pf2lnm40xw0mgj0a8ad7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gVGltZW91dCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi10aW1lb3V0QGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "podman-as-docker@alberto.yomerengues.xyz", "name": "Podman and Docker", "pname": "podman-as-docker", "description": "podman extension as docker\nIn order to get it work on podman, you just need to create an alias\nSimply put: alias docker=podman\nand install podman-docker", "link": "https://extensions.gnome.org/extension/3799/podman-as-docker/", "shell_version_map": {"38": {"version": "1", "sha256": "18bkd6z5hm6zidh7xv8v3jvj36lmxzx4dar7nwa7nq3p51km6crz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInBvZG1hbiBleHRlbnNpb24gYXMgZG9ja2VyXG5JbiBvcmRlciB0byBnZXQgaXQgd29yayBvbiBwb2RtYW4sIHlvdSBqdXN0IG5lZWQgdG8gY3JlYXRlIGFuIGFsaWFzXG5TaW1wbHkgcHV0OiBhbGlhcyBkb2NrZXI9cG9kbWFuXG5hbmQgaW5zdGFsbCBwb2RtYW4tZG9ja2VyIiwKICAibmFtZSI6ICJQb2RtYW4gYW5kIERvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJwb2RtYW4tYXMtZG9ja2VyQGFsYmVydG8ueW9tZXJlbmd1ZXMueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "wacom-indicator@fthx", "name": "Wacom Indicator", "pname": "wacom-indicator", "description": "Wacom tablet indicator in the top bar: connection state and power level.\n\n On click: open GNOME Settings Wacom section. On hover or every minute: update connection state and power level.\n\n Settings (in extension.js file headers): show/hide model label, refresh delay, update/do nothing on indicator hover, show/hide if disconnected.", "link": "https://extensions.gnome.org/extension/3809/wacom-indicator/", "shell_version_map": {"38": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "hibernate@dafne.rocks", "name": "System Action - Hibernate", "pname": "system-action-hibernate", "description": "A GNOME extension that adds the option to hibernate amongst other system actions", "link": "https://extensions.gnome.org/extension/3814/system-action-hibernate/", "shell_version_map": {"38": {"version": "6", "sha256": "0j7xrkw830h34i6v5yxayk94nrfca3wvcm84z7l6jcfzsqp8d8qs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0j7xrkw830h34i6v5yxayk94nrfca3wvcm84z7l6jcfzsqp8d8qs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "click-to-close-overview@l3nn4rt.github.io", "name": "Click to close overview", "pname": "click-to-close-overview", "description": "Allow to close the overview by clicking empty space.\n\nIf you have any problem, please open an issue on the extension web page.", "link": "https://extensions.gnome.org/extension/3826/click-to-close-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "0y9xq7frbydjabw8y49nrj0r04z9rkd11xmsvj143sn82vq6vgcv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS5cblxuSWYgeW91IGhhdmUgYW55IHByb2JsZW0sIHBsZWFzZSBvcGVuIGFuIGlzc3VlIG9uIHRoZSBleHRlbnNpb24gd2ViIHBhZ2UuIiwKICAibmFtZSI6ICJDbGljayB0byBjbG9zZSBvdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2wzbm40cnQvY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXciLAogICJ1dWlkIjogImNsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3QGwzbm40cnQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "just-perfection-desktop@just-perfection", "name": "Just Perfection", "pname": "just-perfection", "description": "Tweak GNOME Shell and Disable UI Elements\n\nThis extension allows you to do the following:\n\n# Visibility\n\n- OSD\n- Search\n- Dash\n- Workspace Switcher\n- Workspace Popup\n- Panel\n- Background Menu\n- Activities button\n- App Menu\n- Clock Menu\n- Keyboard Layout\n- Accessibility Menu\n- System Menu (Aggregate Menu)\n- Applications Button\n\n# Icons Visibility\n\n- App Menu Icon\n- Power Icon\n- Panel Notification icon\n- Window Picker Icon (Only GNOME 40.0)\n- Panel Arrow (Only GNOME 3.36 and 3.38)\n- Activities Button Icon\n\n# Behavior\n\n- Disable Type to Search\n- Hot Corner\n- App Gesture (Only GNOME 3.36 and 3.38)\n- Window Demands Attention Focus\n\n# Customize\n\n- Panel Position\n- Panel Round Corner Size\n- Clock Menu Position\n- Workspace Switcher Size (Only GNOME 40.0)\n- Animation Speed or Disable it\n- Dash Icon Size\n\n# Override\n\n- GNOME shell theme (You don't need to have user-theme-extension)", "link": "https://extensions.gnome.org/extension/3843/just-perfection/", "shell_version_map": {"38": {"version": "11", "sha256": "0qcs3g138ic756fddla5icgkhdn16sf6pz2z3hcqk5xr930464bm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cblRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gZG8gdGhlIGZvbGxvd2luZzpcblxuIyBWaXNpYmlsaXR5XG5cbi0gT1NEXG4tIFNlYXJjaFxuLSBEYXNoXG4tIFdvcmtzcGFjZSBTd2l0Y2hlclxuLSBXb3Jrc3BhY2UgUG9wdXBcbi0gUGFuZWxcbi0gQmFja2dyb3VuZCBNZW51XG4tIEFjdGl2aXRpZXMgYnV0dG9uXG4tIEFwcCBNZW51XG4tIENsb2NrIE1lbnVcbi0gS2V5Ym9hcmQgTGF5b3V0XG4tIEFjY2Vzc2liaWxpdHkgTWVudVxuLSBTeXN0ZW0gTWVudSAoQWdncmVnYXRlIE1lbnUpXG4tIEFwcGxpY2F0aW9ucyBCdXR0b25cblxuIyBJY29ucyBWaXNpYmlsaXR5XG5cbi0gQXBwIE1lbnUgSWNvblxuLSBQb3dlciBJY29uXG4tIFBhbmVsIE5vdGlmaWNhdGlvbiBpY29uXG4tIFdpbmRvdyBQaWNrZXIgSWNvbiAoT25seSBHTk9NRSA0MC4wKVxuLSBQYW5lbCBBcnJvdyAoT25seSBHTk9NRSAzLjM2IGFuZCAzLjM4KVxuLSBBY3Rpdml0aWVzIEJ1dHRvbiBJY29uXG5cbiMgQmVoYXZpb3JcblxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEhvdCBDb3JuZXJcbi0gQXBwIEdlc3R1cmUgKE9ubHkgR05PTUUgMy4zNiBhbmQgMy4zOClcbi0gV2luZG93IERlbWFuZHMgQXR0ZW50aW9uIEZvY3VzXG5cbiMgQ3VzdG9taXplXG5cbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgUm91bmQgQ29ybmVyIFNpemVcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoT25seSBHTk9NRSA0MC4wKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBEYXNoIEljb24gU2l6ZVxuXG4jIE92ZXJyaWRlXG5cbi0gR05PTUUgc2hlbGwgdGhlbWUgKFlvdSBkb24ndCBuZWVkIHRvIGhhdmUgdXNlci10aGVtZS1leHRlbnNpb24pIiwKICAiZ2V0dGV4dC1kb21haW4iOiAianVzdC1wZXJmZWN0aW9uIiwKICAibmFtZSI6ICJKdXN0IFBlcmZlY3Rpb24iLAogICJzY2hlbWEtaWQiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuanVzdC1wZXJmZWN0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2pyYWhtYXR6YWRlaC9qdXN0LXBlcmZlY3Rpb24iLAogICJ1dWlkIjogImp1c3QtcGVyZmVjdGlvbi1kZXNrdG9wQGp1c3QtcGVyZmVjdGlvbiIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "0qcs3g138ic756fddla5icgkhdn16sf6pz2z3hcqk5xr930464bm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cblRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gZG8gdGhlIGZvbGxvd2luZzpcblxuIyBWaXNpYmlsaXR5XG5cbi0gT1NEXG4tIFNlYXJjaFxuLSBEYXNoXG4tIFdvcmtzcGFjZSBTd2l0Y2hlclxuLSBXb3Jrc3BhY2UgUG9wdXBcbi0gUGFuZWxcbi0gQmFja2dyb3VuZCBNZW51XG4tIEFjdGl2aXRpZXMgYnV0dG9uXG4tIEFwcCBNZW51XG4tIENsb2NrIE1lbnVcbi0gS2V5Ym9hcmQgTGF5b3V0XG4tIEFjY2Vzc2liaWxpdHkgTWVudVxuLSBTeXN0ZW0gTWVudSAoQWdncmVnYXRlIE1lbnUpXG4tIEFwcGxpY2F0aW9ucyBCdXR0b25cblxuIyBJY29ucyBWaXNpYmlsaXR5XG5cbi0gQXBwIE1lbnUgSWNvblxuLSBQb3dlciBJY29uXG4tIFBhbmVsIE5vdGlmaWNhdGlvbiBpY29uXG4tIFdpbmRvdyBQaWNrZXIgSWNvbiAoT25seSBHTk9NRSA0MC4wKVxuLSBQYW5lbCBBcnJvdyAoT25seSBHTk9NRSAzLjM2IGFuZCAzLjM4KVxuLSBBY3Rpdml0aWVzIEJ1dHRvbiBJY29uXG5cbiMgQmVoYXZpb3JcblxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIEhvdCBDb3JuZXJcbi0gQXBwIEdlc3R1cmUgKE9ubHkgR05PTUUgMy4zNiBhbmQgMy4zOClcbi0gV2luZG93IERlbWFuZHMgQXR0ZW50aW9uIEZvY3VzXG5cbiMgQ3VzdG9taXplXG5cbi0gUGFuZWwgUG9zaXRpb25cbi0gUGFuZWwgUm91bmQgQ29ybmVyIFNpemVcbi0gQ2xvY2sgTWVudSBQb3NpdGlvblxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoT25seSBHTk9NRSA0MC4wKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBEYXNoIEljb24gU2l6ZVxuXG4jIE92ZXJyaWRlXG5cbi0gR05PTUUgc2hlbGwgdGhlbWUgKFlvdSBkb24ndCBuZWVkIHRvIGhhdmUgdXNlci10aGVtZS1leHRlbnNpb24pIiwKICAiZ2V0dGV4dC1kb21haW4iOiAianVzdC1wZXJmZWN0aW9uIiwKICAibmFtZSI6ICJKdXN0IFBlcmZlY3Rpb24iLAogICJzY2hlbWEtaWQiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuanVzdC1wZXJmZWN0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2pyYWhtYXR6YWRlaC9qdXN0LXBlcmZlY3Rpb24iLAogICJ1dWlkIjogImp1c3QtcGVyZmVjdGlvbi1kZXNrdG9wQGp1c3QtcGVyZmVjdGlvbiIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "7", "sha256": "0h02ykcq1v33whrnhf8z15pql5qx8f072shv14md9ff30q4aw13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0h02ykcq1v33whrnhf8z15pql5qx8f072shv14md9ff30q4aw13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "scanlines-effect@muratcileli.com", "name": "Scanlines Effect", "pname": "scanlines-effect", "description": "Retro monitor / CRT TV effect.", "link": "https://extensions.gnome.org/extension/3860/scanlines-effect/", "shell_version_map": {"38": {"version": "1", "sha256": "1xcsd700s9hkqmrqlv56ldiya2jk0d46j8k4a4i3m9c6k40c5z7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJldHJvIG1vbml0b3IgLyBDUlQgVFYgZWZmZWN0LiIsCiAgIm5hbWUiOiAiU2NhbmxpbmVzIEVmZmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20ubXVyYXRjaWxlbGkuc2NhbmxpbmVzLWVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL211cmF0LWNpbGVsaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2NhbmxpbmVzLWVmZmVjdCIsCiAgInV1aWQiOiAic2NhbmxpbmVzLWVmZmVjdEBtdXJhdGNpbGVsaS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "workspaces-thumbnails-applet@blogdron", "name": "Workspaces Thumbnails Applet", "pname": "workspaces-thumbnails-applet", "description": "Notice!\n\nThis is a fork of the extension https://extensions.gnome.org/extension/2557/workspaces-thumbnails/ It hasn't been updated in a long time, but it only needs a small fix to work. Until the author fixes the problem, I will keep this fork. Please, if you have the opportunity to contact the author of the original extension, let him fix the problem for himself.\n\n\nPut an indicator on the panel showing all the workspaces thumbnails, allowing to switch between them or moving windows to another workspace.\n\n This is a very tiny fork of the original (GNOME official extension) Workspace Indicator, allowing to use it like when the Horizontal Workspaces extension is activated. The vertical workspaces layout is not modified; the workspaces layout is horizontal only in the top panel and the workspaces switcher in the overview is still showed. Please note that any global bug should be reported against the Workspace Indicator extension. https://extensions.gnome.org/extension/21/workspace-indicator", "link": "https://extensions.gnome.org/extension/3872/workspaces-thumbnails-applet/", "shell_version_map": {"38": {"version": "1", "sha256": "02823b6rfnibb0mhnx848pdxc3birw2aqp8607wjf93mvy5388hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGljZSFcblxuVGhpcyBpcyBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8yNTU3L3dvcmtzcGFjZXMtdGh1bWJuYWlscy8gSXQgaGFzbid0IGJlZW4gdXBkYXRlZCBpbiBhIGxvbmcgdGltZSwgYnV0IGl0IG9ubHkgbmVlZHMgYSBzbWFsbCBmaXggdG8gd29yay4gVW50aWwgdGhlIGF1dGhvciBmaXhlcyB0aGUgcHJvYmxlbSwgSSB3aWxsIGtlZXAgdGhpcyBmb3JrLiBQbGVhc2UsIGlmIHlvdSBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byBjb250YWN0IHRoZSBhdXRob3Igb2YgdGhlIG9yaWdpbmFsIGV4dGVuc2lvbiwgbGV0IGhpbSBmaXggdGhlIHByb2JsZW0gZm9yIGhpbXNlbGYuXG5cblxuUHV0IGFuIGluZGljYXRvciBvbiB0aGUgcGFuZWwgc2hvd2luZyBhbGwgdGhlIHdvcmtzcGFjZXMgdGh1bWJuYWlscywgYWxsb3dpbmcgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBtb3Zpbmcgd2luZG93cyB0byBhbm90aGVyIHdvcmtzcGFjZS5cblxuIFRoaXMgaXMgYSB2ZXJ5IHRpbnkgZm9yayBvZiB0aGUgb3JpZ2luYWwgKEdOT01FIG9mZmljaWFsIGV4dGVuc2lvbikgV29ya3NwYWNlIEluZGljYXRvciwgYWxsb3dpbmcgdG8gdXNlIGl0IGxpa2Ugd2hlbiB0aGUgSG9yaXpvbnRhbCBXb3Jrc3BhY2VzIGV4dGVuc2lvbiBpcyBhY3RpdmF0ZWQuIFRoZSB2ZXJ0aWNhbCB3b3Jrc3BhY2VzIGxheW91dCBpcyBub3QgbW9kaWZpZWQ7IHRoZSB3b3Jrc3BhY2VzIGxheW91dCBpcyBob3Jpem9udGFsIG9ubHkgaW4gdGhlIHRvcCBwYW5lbCBhbmQgdGhlIHdvcmtzcGFjZXMgc3dpdGNoZXIgaW4gdGhlIG92ZXJ2aWV3IGlzIHN0aWxsIHNob3dlZC4gUGxlYXNlIG5vdGUgdGhhdCBhbnkgZ2xvYmFsIGJ1ZyBzaG91bGQgYmUgcmVwb3J0ZWQgYWdhaW5zdCB0aGUgV29ya3NwYWNlIEluZGljYXRvciBleHRlbnNpb24uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzIxL3dvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJleHRlbnNpb24taWQiOiAid29ya3NwYWNlcy10aHVtYm5haWxzLWFwcGxldCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldvcmtzcGFjZXMgVGh1bWJuYWlscyBBcHBsZXQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiLAogICAgImJsb2dkcm9uIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtdGh1bWJuYWlscy1hcHBsZXRAYmxvZ2Ryb24iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "simple-monitor@fcaballerop.github.io", "name": "Simple monitor", "pname": "simple-monitor", "description": "A simple panel button that shows CPU and RAM memory usage. Clicking shows the top 10 processes using CPU and memory.", "link": "https://extensions.gnome.org/extension/3891/simple-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "0qhicn9is6b5g8xc8n4dvxxmzmlhzb9w9wrn6rf1jv8q5igyacs3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHBhbmVsIGJ1dHRvbiB0aGF0IHNob3dzIENQVSBhbmQgUkFNIG1lbW9yeSB1c2FnZS4gQ2xpY2tpbmcgc2hvd3MgdGhlIHRvcCAxMCBwcm9jZXNzZXMgdXNpbmcgQ1BVIGFuZCBtZW1vcnkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXhhbXBsZSIsCiAgIm5hbWUiOiAiU2ltcGxlIG1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2ltcGxlLW1vbml0b3JAZmNhYmFsbGVyb3AuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "NetworkSpeed@m0hithreddy", "name": "Network Speed", "pname": "network-speed", "description": "Highly customizable Network Speed Monitor.\n\nQuick install: \n\n/bin/bash -c \"$(curl -sL https://git.io/JkFoh)\"\n\nWhat's in this extension:\n\n* Preference Menu to customize the extension.\n* Five configurable network speed modes.\n   1. Total net speed in [g, m, k]b/s.\n   2. Total net speed in [G, M, K]B/s.\n   3. Up and down the speed in [g, m, k]b/s.\n   4. Up and down the speed in [G, M, K]B/s.\n   5. Total Downloaded in [G, M, K]B.\n* Extension color can be customizable.\n* Option to show upload speed first in modes 3 and 4.\n* Align the extension horizontally or vertically.\n* Different font sizes.\n* Option to autohide the extension, when idle.\n\nMouse click events on the extension:\n\n* Left click: Cycle through the modes.\n* Right-click in the first four modes: Toggle the visibility of total downloaded.\n* Right-click in the fifth mode: Reset total downloaded.\n* Four consecutive right-clicks: Toggle the horizontal/vertical alignment.\n* Middle click: Cycle through the font sizes.\n\nThanks to bijignome of creating the extension. Special thanks to prateekmedia for giving rebirth to the extension.\n\nWhat I added:\n\n* Revamping the whole codebase to create a roadmap for many feature additions.\n* Color customizations, Upload speed first, AutoHide.\n* Adopted Make build system to manage the extension (for developers).\n* Quick install method.", "link": "https://extensions.gnome.org/extension/3896/network-speed/", "shell_version_map": {"38": {"version": "1", "sha256": "0029mjirbg2hdk1ms95p29hmf8ahvfjyrsw9079nbds9p7za9f9n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgTmV0d29yayBTcGVlZCBNb25pdG9yLlxuXG5RdWljayBpbnN0YWxsOiBcblxuL2Jpbi9iYXNoIC1jIFwiJChjdXJsIC1zTCBodHRwczovL2dpdC5pby9Ka0ZvaClcIlxuXG5XaGF0J3MgaW4gdGhpcyBleHRlbnNpb246XG5cbiogUHJlZmVyZW5jZSBNZW51IHRvIGN1c3RvbWl6ZSB0aGUgZXh0ZW5zaW9uLlxuKiBGaXZlIGNvbmZpZ3VyYWJsZSBuZXR3b3JrIHNwZWVkIG1vZGVzLlxuICAgMS4gVG90YWwgbmV0IHNwZWVkIGluIFtnLCBtLCBrXWIvcy5cbiAgIDIuIFRvdGFsIG5ldCBzcGVlZCBpbiBbRywgTSwgS11CL3MuXG4gICAzLiBVcCBhbmQgZG93biB0aGUgc3BlZWQgaW4gW2csIG0sIGtdYi9zLlxuICAgNC4gVXAgYW5kIGRvd24gdGhlIHNwZWVkIGluIFtHLCBNLCBLXUIvcy5cbiAgIDUuIFRvdGFsIERvd25sb2FkZWQgaW4gW0csIE0sIEtdQi5cbiogRXh0ZW5zaW9uIGNvbG9yIGNhbiBiZSBjdXN0b21pemFibGUuXG4qIE9wdGlvbiB0byBzaG93IHVwbG9hZCBzcGVlZCBmaXJzdCBpbiBtb2RlcyAzIGFuZCA0LlxuKiBBbGlnbiB0aGUgZXh0ZW5zaW9uIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuKiBEaWZmZXJlbnQgZm9udCBzaXplcy5cbiogT3B0aW9uIHRvIGF1dG9oaWRlIHRoZSBleHRlbnNpb24sIHdoZW4gaWRsZS5cblxuTW91c2UgY2xpY2sgZXZlbnRzIG9uIHRoZSBleHRlbnNpb246XG5cbiogTGVmdCBjbGljazogQ3ljbGUgdGhyb3VnaCB0aGUgbW9kZXMuXG4qIFJpZ2h0LWNsaWNrIGluIHRoZSBmaXJzdCBmb3VyIG1vZGVzOiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgdG90YWwgZG93bmxvYWRlZC5cbiogUmlnaHQtY2xpY2sgaW4gdGhlIGZpZnRoIG1vZGU6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuXG4qIEZvdXIgY29uc2VjdXRpdmUgcmlnaHQtY2xpY2tzOiBUb2dnbGUgdGhlIGhvcml6b250YWwvdmVydGljYWwgYWxpZ25tZW50LlxuKiBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuXG5cblRoYW5rcyB0byBiaWppZ25vbWUgb2YgY3JlYXRpbmcgdGhlIGV4dGVuc2lvbi4gU3BlY2lhbCB0aGFua3MgdG8gcHJhdGVla21lZGlhIGZvciBnaXZpbmcgcmViaXJ0aCB0byB0aGUgZXh0ZW5zaW9uLlxuXG5XaGF0IEkgYWRkZWQ6XG5cbiogUmV2YW1waW5nIHRoZSB3aG9sZSBjb2RlYmFzZSB0byBjcmVhdGUgYSByb2FkbWFwIGZvciBtYW55IGZlYXR1cmUgYWRkaXRpb25zLlxuKiBDb2xvciBjdXN0b21pemF0aW9ucywgVXBsb2FkIHNwZWVkIGZpcnN0LCBBdXRvSGlkZS5cbiogQWRvcHRlZCBNYWtlIGJ1aWxkIHN5c3RlbSB0byBtYW5hZ2UgdGhlIGV4dGVuc2lvbiAoZm9yIGRldmVsb3BlcnMpLlxuKiBRdWljayBpbnN0YWxsIG1ldGhvZC4iLAogICJuYW1lIjogIk5ldHdvcmsgU3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tMGhpdGhyZWRkeS9OZXR3b3JrU3BlZWQiLAogICJ1dWlkIjogIk5ldHdvcmtTcGVlZEBtMGhpdGhyZWRkeSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "eye-extended-fix@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-and-mouse-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype. Import fix of original extension https://github.com/alexeylovchikov/eye-extended-shell-extension", "link": "https://extensions.gnome.org/extension/3902/eye-and-mouse-extended/", "shell_version_map": {"38": {"version": "1", "sha256": "1yxs70vlxyf4ns0nd37fl85lp188j84662lsl2l16rdm39w2c2wf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZS4gSW1wb3J0IGZpeCBvZiBvcmlnaW5hbCBleHRlbnNpb24gaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRXllRXh0ZW5kZWQiLAogICJuYW1lIjogIkV5ZSBhbmQgTW91c2UgRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAia3ouYWxzLmV5ZS1leHRlbmRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXBlYWNvY2tzL2V5ZS1leHRlbmRlZC1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImV5ZS1leHRlbmRlZC1maXhAYWxzLmt6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "RemoveAppMenu@Dragon8oy.com", "name": "Remove App Menu", "pname": "remove-app-menu", "description": "Remove the application menu from the top bar", "link": "https://extensions.gnome.org/extension/3906/remove-app-menu/", "shell_version_map": {"38": {"version": "6", "sha256": "0373ghnm1r0f4igxqj3bgsl41gil2c5xzbcqjgiym7qmbsi8rf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcmVtb3ZlLWFwcC1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUmVtb3ZlQXBwTWVudUBEcmFnb244b3kuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0373ghnm1r0f4igxqj3bgsl41gil2c5xzbcqjgiym7qmbsi8rf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSB0aGUgYXBwbGljYXRpb24gbWVudSBmcm9tIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgQXBwIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvcmVtb3ZlLWFwcC1tZW51LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiUmVtb3ZlQXBwTWVudUBEcmFnb244b3kuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "snow@endlessos.org", "name": "Snow", "pname": "snow", "description": "Let it snow", "link": "https://extensions.gnome.org/extension/3912/snow/", "shell_version_map": {"38": {"version": "3", "sha256": "1a6qkxm0s9cd8brha1zdpmrilv32h8bfkx0gnyx1zzxprmw04nmp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCBpdCBzbm93IiwKICAibmFtZSI6ICJTbm93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNub3dAZW5kbGVzc29zLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "sticky-terminal@fthx", "name": "Sticky Terminal", "pname": "sticky-terminal", "description": "Toggle a sticky GNOME terminal window. Your terminal window will always be in foreground while you use another app.\n\nA button in panel allows to toggle the visibility of the terminal. Window is resizeable.\n\nYou can easily change it to default another terminal app or another app. Some other settings. See comments in extension.js file.", "link": "https://extensions.gnome.org/extension/3915/sticky-terminal/", "shell_version_map": {"38": {"version": "2", "sha256": "0j65ihfhama6scp2b8qbqr1h4gamy4v0w1ygxrfglhvl3jhjm5zz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhIHN0aWNreSBHTk9NRSB0ZXJtaW5hbCB3aW5kb3cuIFlvdXIgdGVybWluYWwgd2luZG93IHdpbGwgYWx3YXlzIGJlIGluIGZvcmVncm91bmQgd2hpbGUgeW91IHVzZSBhbm90aGVyIGFwcC5cblxuQSBidXR0b24gaW4gcGFuZWwgYWxsb3dzIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgdGVybWluYWwuIFdpbmRvdyBpcyByZXNpemVhYmxlLlxuXG5Zb3UgY2FuIGVhc2lseSBjaGFuZ2UgaXQgdG8gZGVmYXVsdCBhbm90aGVyIHRlcm1pbmFsIGFwcCBvciBhbm90aGVyIGFwcC4gU29tZSBvdGhlciBzZXR0aW5ncy4gU2VlIGNvbW1lbnRzIGluIGV4dGVuc2lvbi5qcyBmaWxlLiIsCiAgIm5hbWUiOiAiU3RpY2t5IFRlcm1pbmFsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9zdGlja3ktdGVybWluYWwiLAogICJ1dWlkIjogInN0aWNreS10ZXJtaW5hbEBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "sticky-r-terminal@fthx", "name": "Sticky R Terminal", "pname": "sticky-r-terminal", "description": "Toggle a sticky R terminal window. Your R window will always be in foreground while you use another app.\n\nYou can easily change it to default another terminal app or another app. Some other settings. See comments in extension.js file. Same extension only running a terminal: https://extensions.gnome.org/extension/3915/sticky-terminal . You can use it with R if this extension does not work for your R installation setup.\n\nKeywords: stat, stats, statistics, statistical, r-cran.", "link": "https://extensions.gnome.org/extension/3916/sticky-r-terminal/", "shell_version_map": {"38": {"version": "1", "sha256": "17x84g6fb785jmcl5jz41nw4rgzaad48mc5zllh5b3a485731f0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhIHN0aWNreSBSIHRlcm1pbmFsIHdpbmRvdy4gWW91ciBSIHdpbmRvdyB3aWxsIGFsd2F5cyBiZSBpbiBmb3JlZ3JvdW5kIHdoaWxlIHlvdSB1c2UgYW5vdGhlciBhcHAuXG5cbllvdSBjYW4gZWFzaWx5IGNoYW5nZSBpdCB0byBkZWZhdWx0IGFub3RoZXIgdGVybWluYWwgYXBwIG9yIGFub3RoZXIgYXBwLiBTb21lIG90aGVyIHNldHRpbmdzLiBTZWUgY29tbWVudHMgaW4gZXh0ZW5zaW9uLmpzIGZpbGUuIFNhbWUgZXh0ZW5zaW9uIG9ubHkgcnVubmluZyBhIHRlcm1pbmFsOiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zOTE1L3N0aWNreS10ZXJtaW5hbCAuIFlvdSBjYW4gdXNlIGl0IHdpdGggUiBpZiB0aGlzIGV4dGVuc2lvbiBkb2VzIG5vdCB3b3JrIGZvciB5b3VyIFIgaW5zdGFsbGF0aW9uIHNldHVwLlxuXG5LZXl3b3Jkczogc3RhdCwgc3RhdHMsIHN0YXRpc3RpY3MsIHN0YXRpc3RpY2FsLCByLWNyYW4uIiwKICAibmFtZSI6ICJTdGlja3kgUiBUZXJtaW5hbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc3RpY2t5LXItdGVybWluYWwiLAogICJ1dWlkIjogInN0aWNreS1yLXRlcm1pbmFsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "onedrive@diegobazzanella.com", "name": "One Drive", "pname": "one-drive", "description": "One Drive extension", "link": "https://extensions.gnome.org/extension/3919/one-drive/", "shell_version_map": {"38": {"version": "4", "sha256": "0h37rr9hw6azrlf465ngl7w7miii9bm4sh33wkr0x8q51rz62ydd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZSBEcml2ZSBleHRlbnNpb24iLAogICJuYW1lIjogIk9uZSBEcml2ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RiYXp6YS9vbmVEcml2ZSIsCiAgInV1aWQiOiAib25lZHJpdmVAZGllZ29iYXp6YW5lbGxhLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "snowy@exposedcat", "name": "Snowy", "pname": "snowy", "description": "Make you festive mood with falling snow on your GNOME DE system", "link": "https://extensions.gnome.org/extension/3921/snowy/", "shell_version_map": {"38": {"version": "4", "sha256": "0yghnayfjw8bvlbxkgfcf7k8fq2kx4s2bxnyahhm9qqp1mw1wm5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3Nub3d5IiwKICAidXVpZCI6ICJzbm93eUBleHBvc2VkY2F0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0yghnayfjw8bvlbxkgfcf7k8fq2kx4s2bxnyahhm9qqp1mw1wm5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91IGZlc3RpdmUgbW9vZCB3aXRoIGZhbGxpbmcgc25vdyBvbiB5b3VyIEdOT01FIERFIHN5c3RlbSIsCiAgIm5hbWUiOiAiU25vd3kiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FeHBvc2VkQ2F0L3Nub3d5IiwKICAidXVpZCI6ICJzbm93eUBleHBvc2VkY2F0IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "focus@scaryrawr.github.io", "name": "Focus", "pname": "focus", "description": "Transparent inactive windows", "link": "https://extensions.gnome.org/extension/3924/focus/", "shell_version_map": {"38": {"version": "5", "sha256": "006ybc872bxskq30dh0hmqlcs861hmghjkq8ks6wmfdw8562v4sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "kaskadeur@dev-ninjas-org", "name": "Kaskadeur", "pname": "kaskadeur", "description": "Move and resize windows into a cascade", "link": "https://extensions.gnome.org/extension/3925/kaskadeur/", "shell_version_map": {"38": {"version": "1", "sha256": "0bf8sssgv0k3gki6j3wmgdpb9sf1kblagbbm130n8y12f837l3pl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYW5kIHJlc2l6ZSB3aW5kb3dzIGludG8gYSBjYXNjYWRlIiwKICAibmFtZSI6ICJLYXNrYWRldXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2Fza2FkZXVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGV2LW5pbmphcy1vcmcvZ25vbWUtc2hlbGwta2Fza2FkZXVyIiwKICAidXVpZCI6ICJrYXNrYWRldXJAZGV2LW5pbmphcy1vcmciLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "autoselectheadset@josephlbarnett.github.com", "name": "Auto select headset", "pname": "auto-select-headset", "description": "Auto selects headsets when possible instead of showing a dialog", "link": "https://extensions.gnome.org/extension/3928/auto-select-headset/", "shell_version_map": {"38": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "toggle-night-light@cansozbir.github.io", "name": "Toggle Night Light", "pname": "toggle-night-light", "description": "This extension lets you toggle night-light from the top-bar by clicking it.", "link": "https://extensions.gnome.org/extension/3933/toggle-night-light/", "shell_version_map": {"38": {"version": "3", "sha256": "1shlfdmwnz6cxivhcd8gijhrnlcdyk1l9ypj8xx14lpzwzx50c5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NhbnNvemJpci9nbm9tZS1zaGVsbC10b2dnbGUtbmlnaHQtbGlnaHQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2dnbGUtbmlnaHQtbGlnaHRAY2Fuc296YmlyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1shlfdmwnz6cxivhcd8gijhrnlcdyk1l9ypj8xx14lpzwzx50c5g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NhbnNvemJpci9nbm9tZS1zaGVsbC10b2dnbGUtbmlnaHQtbGlnaHQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2dnbGUtbmlnaHQtbGlnaHRAY2Fuc296YmlyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "adwaita-theme-switcher@fthx", "name": "Adwaita Theme Switcher", "pname": "adwaita-theme-switcher", "description": "Button in panel: switch between Adwaita dark and light themes.", "link": "https://extensions.gnome.org/extension/3936/adwaita-theme-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard)", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {"38": {"version": "2", "sha256": "063sr180ppam2q43ky19xc9lizqk7vbkn9gkcl5krhjcr5c0arrm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:\nhttps://github.com/axxapy/gnome-alacritty-toggle", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {"38": {"version": "2", "sha256": "1y3f5cypx78f29pb1acq9ql42j8r20ikd4cl5bbxsmmvzzdrf3ri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDpcbmh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtYWxhY3JpdHR5LXRvZ2dsZSIsCiAgIm5hbWUiOiAiVG9nZ2xlIEFsYWNyaXR0eSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b2dnbGUtYWxhY3JpdHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b2dnbGUtYWxhY3JpdHR5QGl0c3RpbWUudGVjaCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1y3f5cypx78f29pb1acq9ql42j8r20ikd4cl5bbxsmmvzzdrf3ri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDpcbmh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtYWxhY3JpdHR5LXRvZ2dsZSIsCiAgIm5hbWUiOiAiVG9nZ2xlIEFsYWNyaXR0eSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b2dnbGUtYWxhY3JpdHR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b2dnbGUtYWxhY3JpdHR5QGl0c3RpbWUudGVjaCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "hide-panel@fthx", "name": "Hide Panel", "pname": "hide-panel", "description": "Hide top panel except in overview. Switch button in panel.\n\nVery very light extension.", "link": "https://extensions.gnome.org/extension/3948/hide-panel/", "shell_version_map": {"38": {"version": "6", "sha256": "0rf8bixqmh3l76lk1n2ac00kxnbviinfqhm08xkdf3hxf7aym9hc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4iLAogICJuYW1lIjogIkhpZGUgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwiLAogICJ1dWlkIjogImhpZGUtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0rf8bixqmh3l76lk1n2ac00kxnbviinfqhm08xkdf3hxf7aym9hc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4iLAogICJuYW1lIjogIkhpZGUgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwiLAogICJ1dWlkIjogImhpZGUtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "persistent-email-notifications@fthx", "name": "Persistent Email Notifications", "pname": "persistent-email-notifications", "description": "Never hide a new mail notification, except if you close it.\n\nVery very light extension. Email clients supported: Thunderbird, Evolution, Geary, Mailspring, TypeApp. Please ask for another email client if needed.", "link": "https://extensions.gnome.org/extension/3951/persistent-email-notifications/", "shell_version_map": {"38": {"version": "2", "sha256": "0hz7kqpx5msld9jjp2d37yj5b58zblr8iichas4ynsd811z523li", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcC4gUGxlYXNlIGFzayBmb3IgYW5vdGhlciBlbWFpbCBjbGllbnQgaWYgbmVlZGVkLiIsCiAgIm5hbWUiOiAiUGVyc2lzdGVudCBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvcGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnNAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0hz7kqpx5msld9jjp2d37yj5b58zblr8iichas4ynsd811z523li", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcC4gUGxlYXNlIGFzayBmb3IgYW5vdGhlciBlbWFpbCBjbGllbnQgaWYgbmVlZGVkLiIsCiAgIm5hbWUiOiAiUGVyc2lzdGVudCBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvcGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnNAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "horizontal-workspace-indicator@tty2.io", "name": "Workspace indicator", "pname": "workspace-indicator", "description": "Workspace indicator shows the amount of opened workspaces and highlights the current one using unicode characters.\n\nYou can use it as an indicator only but widget is clickable. Left button click: move to left, right click: move right.\n\nPay attention:\n1) there could be an error with the extension after install or update. The solution is to logout and login again.\n2) there could be an error if you have another extension with the same name \"workspace indicator\" already installed. The solution is to remove the old one.", "link": "https://extensions.gnome.org/extension/3952/workspace-indicator/", "shell_version_map": {"38": {"version": "7", "sha256": "1hkpa86vfzdcy9plvggaa1vd4mkjsi6i71bfj5p2bblqh5h1dqrp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblBheSBhdHRlbnRpb246XG4xKSB0aGVyZSBjb3VsZCBiZSBhbiBlcnJvciB3aXRoIHRoZSBleHRlbnNpb24gYWZ0ZXIgaW5zdGFsbCBvciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuMikgdGhlcmUgY291bGQgYmUgYW4gZXJyb3IgaWYgeW91IGhhdmUgYW5vdGhlciBleHRlbnNpb24gd2l0aCB0aGUgc2FtZSBuYW1lIFwid29ya3NwYWNlIGluZGljYXRvclwiIGFscmVhZHkgaW5zdGFsbGVkLiBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBvbGQgb25lLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dHkyL2hvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yQHR0eTIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1hkpa86vfzdcy9plvggaa1vd4mkjsi6i71bfj5p2bblqh5h1dqrp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuXG5cblBheSBhdHRlbnRpb246XG4xKSB0aGVyZSBjb3VsZCBiZSBhbiBlcnJvciB3aXRoIHRoZSBleHRlbnNpb24gYWZ0ZXIgaW5zdGFsbCBvciB1cGRhdGUuIFRoZSBzb2x1dGlvbiBpcyB0byBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuMikgdGhlcmUgY291bGQgYmUgYW4gZXJyb3IgaWYgeW91IGhhdmUgYW5vdGhlciBleHRlbnNpb24gd2l0aCB0aGUgc2FtZSBuYW1lIFwid29ya3NwYWNlIGluZGljYXRvclwiIGFscmVhZHkgaW5zdGFsbGVkLiBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIHRoZSBvbGQgb25lLiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIGluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dHkyL2hvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yQHR0eTIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "kitchentimer@blackjackshellac.ca", "name": "Kitchen Timer", "pname": "kitchen-timer", "description": "General purpose timer extension for Gnome Shell\n\nPlease report issues on github\nIf updating the extension reports an ERROR, it should work after the next reboot or if you logout and login again.", "link": "https://extensions.gnome.org/extension/3955/kitchen-timer/", "shell_version_map": {"38": {"version": "28", "sha256": "1i16v51jc09al8ggmajk8m7w4nvlynr60c8f7fvwj039baq5fr9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuSWYgdXBkYXRpbmcgdGhlIGV4dGVuc2lvbiByZXBvcnRzIGFuIEVSUk9SLCBpdCBzaG91bGQgd29yayBhZnRlciB0aGUgbmV4dCByZWJvb3Qgb3IgaWYgeW91IGxvZ291dCBhbmQgbG9naW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAia2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAibmFtZSI6ICJLaXRjaGVuIFRpbWVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdGNoZW4tdGltZXItYmxhY2tqYWNrc2hlbGxhYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2phY2tzaGVsbGFjL2tpdGNoZW5UaW1lciIsCiAgInV1aWQiOiAia2l0Y2hlbnRpbWVyQGJsYWNramFja3NoZWxsYWMuY2EiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "40": {"version": "28", "sha256": "1i16v51jc09al8ggmajk8m7w4nvlynr60c8f7fvwj039baq5fr9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuSWYgdXBkYXRpbmcgdGhlIGV4dGVuc2lvbiByZXBvcnRzIGFuIEVSUk9SLCBpdCBzaG91bGQgd29yayBhZnRlciB0aGUgbmV4dCByZWJvb3Qgb3IgaWYgeW91IGxvZ291dCBhbmQgbG9naW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAia2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAibmFtZSI6ICJLaXRjaGVuIFRpbWVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdGNoZW4tdGltZXItYmxhY2tqYWNrc2hlbGxhYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGFja2phY2tzaGVsbGFjL2tpdGNoZW5UaW1lciIsCiAgInV1aWQiOiAia2l0Y2hlbnRpbWVyQGJsYWNramFja3NoZWxsYWMuY2EiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
+, {"uuid": "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com", "name": "GNOME Fuzzy App Search", "pname": "gnome-fuzzy-app-search", "description": "Fuzzy application search results for Gnome Search", "link": "https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/", "shell_version_map": {"38": {"version": "2", "sha256": "0lsjcgj4jpjzgindssw9bkmvvg22l4dshqn4h41vnbm229zhvlgx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "e-ink-mode@fujimo-t.github.io", "name": "E Ink Mode", "pname": "e-ink-mode", "description": "Make desktop suitable for E Ink monitors.\n\n Features:\n* Switch Shell, GTK, icon, and cursor theme to light high contrast one\n* Disable animations\n\n Dependencies:\n* High Constrast theme for GTK and icon\n* DMZ-White cursor theme", "link": "https://extensions.gnome.org/extension/3957/e-ink-mode/", "shell_version_map": {"40": {"version": "2", "sha256": "02jnbp8pfz9hdlj11jjdsd55yg55si69f1hzjcq1qya2a20v2xqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgZGVza3RvcCBzdWl0YWJsZSBmb3IgRSBJbmsgbW9uaXRvcnMuXG5cbiBGZWF0dXJlczpcbiogU3dpdGNoIFNoZWxsLCBHVEssIGljb24sIGFuZCBjdXJzb3IgdGhlbWUgdG8gbGlnaHQgaGlnaCBjb250cmFzdCBvbmVcbiogRGlzYWJsZSBhbmltYXRpb25zXG5cbiBEZXBlbmRlbmNpZXM6XG4qIEhpZ2ggQ29uc3RyYXN0IHRoZW1lIGZvciBHVEsgYW5kIGljb25cbiogRE1aLVdoaXRlIGN1cnNvciB0aGVtZSIsCiAgIm5hbWUiOiAiRSBJbmsgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdWppbW8tdC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZS1pbmstbW9kZSIsCiAgInV1aWQiOiAiZS1pbmstbW9kZUBmdWppbW8tdC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "transparent-top-bar@ftpix.com", "name": "Transparent Top Bar (Adjustable transparency)", "pname": "transparent-top-bar-adjustable-transparency", "description": "Fork of: https://github.com/zhanghai/gnome-shell-extension-transparent-top-bar\n\nBring back the transparent top bar in GNOME Shell with adjustable transparency.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/3960/transparent-top-bar-adjustable-transparency/", "shell_version_map": {"38": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "improved-workspace-indicator@michaelaquilina.github.io", "name": "Improved Workspace Indicator", "pname": "improved-workspace-indicator", "description": "Slightly improved workspace indicator that shows both current and in use workspaces similar to i3/sway", "link": "https://extensions.gnome.org/extension/3968/improved-workspace-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "0ina2cslibhixaz9dw8gp53c8s0dkphdn0sa7yzig3624zbsy13k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0ina2cslibhixaz9dw8gp53c8s0dkphdn0sa7yzig3624zbsy13k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "guillotine@fopdoodle.net", "name": "Guillotine", "pname": "guillotine", "description": "Guillotine is a gnome extension designed for efficiently carrying out executions of commands from a customizable menu. Simply speaking: it is a highly customizable menu that enables you to launch commands and toggle services.", "link": "https://extensions.gnome.org/extension/3981/guillotine/", "shell_version_map": {"38": {"version": "3", "sha256": "0jpm8q47naxv5ld9yx6jjsnlm5snlqybilkmr8kvxq1an6pj36yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "5", "sha256": "12d35cdwwdsmmkhsb65xcqlkaisn0l0pl5b5x033c90v0jgd7k6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "extensions-in-system-menu@leleat-on-github", "name": "Extensions & Tweaks in system menu", "pname": "extensions-in-system-menu", "description": "No longer maintained. Starting with GNOME 40 'Tweaks-in-system-menu' also supports the extensions app. Please use that https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/\n\n--------------------\n\nPut the Extensions and/or the Tweaks app into the system menu.", "link": "https://extensions.gnome.org/extension/3984/extensions-in-system-menu/", "shell_version_map": {"38": {"version": "6", "sha256": "0hdjgf4ancpj6lsqd6gf2lp7jf3zan16yrfap5g4hnbb72ihbpvc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIGxvbmdlciBtYWludGFpbmVkLiBTdGFydGluZyB3aXRoIEdOT01FIDQwICdUd2Vha3MtaW4tc3lzdGVtLW1lbnUnIGFsc28gc3VwcG9ydHMgdGhlIGV4dGVuc2lvbnMgYXBwLiBQbGVhc2UgdXNlIHRoYXQgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTY1My90d2Vha3MtaW4tc3lzdGVtLW1lbnUvXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblB1dCB0aGUgRXh0ZW5zaW9ucyBhbmQvb3IgdGhlIFR3ZWFrcyBhcHAgaW50byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJFeHRlbnNpb25zICYgVHdlYWtzIGluIHN5c3RlbSBtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L2V4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnVAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0hdjgf4ancpj6lsqd6gf2lp7jf3zan16yrfap5g4hnbb72ihbpvc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIGxvbmdlciBtYWludGFpbmVkLiBTdGFydGluZyB3aXRoIEdOT01FIDQwICdUd2Vha3MtaW4tc3lzdGVtLW1lbnUnIGFsc28gc3VwcG9ydHMgdGhlIGV4dGVuc2lvbnMgYXBwLiBQbGVhc2UgdXNlIHRoYXQgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTY1My90d2Vha3MtaW4tc3lzdGVtLW1lbnUvXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblB1dCB0aGUgRXh0ZW5zaW9ucyBhbmQvb3IgdGhlIFR3ZWFrcyBhcHAgaW50byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJFeHRlbnNpb25zICYgVHdlYWtzIGluIHN5c3RlbSBtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L2V4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogImV4dGVuc2lvbnMtaW4tc3lzdGVtLW1lbnVAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "shuzhi@tuberry", "name": "Shu Zhi", "pname": "shu-zhi", "description": "A wallpaper generation extension for gnome shell, inspired by Jizhi\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3985/shu-zhi/", "shell_version_map": {"38": {"version": "7", "sha256": "0fwncbkg7xpijydpwp3p8qx6czgvrxh7krasgjcsj4g35nh65i7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2h1emhpIiwKICAibmFtZSI6ICJTaHUgWmhpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXpoaSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "11", "sha256": "02ny3dyshhw4m44d091lhqqdx0g2iciq5d7lcdqx9p3gwa5046d4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd2FsbHBhcGVyIGdlbmVyYXRpb24gZXh0ZW5zaW9uIGZvciBnbm9tZSBzaGVsbCwgaW5zcGlyZWQgYnkgSml6aGlcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2h1emhpIiwKICAibmFtZSI6ICJTaHUgWmhpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXpoaSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NodXpoaSIsCiAgInV1aWQiOiAic2h1emhpQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"uuid": "zilence@apankowski.github.com", "name": "Zilence", "pname": "zilence", "description": "Turns off notifications while sharing screen during a Zoom call", "link": "https://extensions.gnome.org/extension/3988/zilence/", "shell_version_map": {"38": {"version": "1", "sha256": "09j017cpiimqi97rk2zp1bidrvf026dv469w80wiikbq67r22c9w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICIzNzBiODIzYmQ5NTM4MDY4MThmMmYwNzhiNGNmZWYyODIzMmVjOTMwIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXBhbmtvd3NraS96aWxlbmNlIiwKICAidXVpZCI6ICJ6aWxlbmNlQGFwYW5rb3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "11", "sha256": "0l5z65nkm75jrnqhvsahl8wg7cm5fphzwdahi16nrjs9hz05p2gg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "gnome-extension-all-ip-addresses@havekes.eu", "name": "All IP Addresses", "pname": "all-ip-addresses", "description": "Show IP addresses for LAN, WAN IPv6 and VPN in the GNOME panel. Click on the address to cycle trough different interfaces.", "link": "https://extensions.gnome.org/extension/3994/all-ip-addresses/", "shell_version_map": {"38": {"version": "2", "sha256": "1vas3mvgmi28dc3lzghbwgp66p0daa1kc4m8ayr6dmc618ry2nj0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGhhdmVrZXMvZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXMiLAogICJ1dWlkIjogImdub21lLWV4dGVuc2lvbi1hbGwtaXAtYWRkcmVzc2VzQGhhdmVrZXMuZXUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "app-grid-tweaks@Selenium-H", "name": "App Grid Tweaks", "pname": "app-grid-tweaks", "description": "Customize the application grid view.\n\nSet the rows, columns and the app icon size for a particular configuration to work.\nIf the screen space is out numbered, reduce the icon size to fit all the rows and columns.\nOr reduce the number of rows and columns.\n\nPress the Refresh button on the left of header bar to apply changes", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "2", "sha256": "1cdg8mzp29l1jv25cb5wdikriphbknrkfi3g2zi432js083wi8j7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAic3RhdHVzIjogIiAiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQXBwLUdyaWQtVHdlYWtzIiwKICAidXVpZCI6ICJhcHAtZ3JpZC10d2Vha3NAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {"38": {"version": "54", "sha256": "058nbfv1libk6gjkdd7lr4imm225s25vp2ick5w0jwglszmc084x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyIiwKICAidXVpZCI6ICJiYWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDU0Cn0="}, "40": {"version": "54", "sha256": "058nbfv1libk6gjkdd7lr4imm225s25vp2ick5w0jwglszmc084x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyIiwKICAidXVpZCI6ICJiYWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDU0Cn0="}}}
+, {"uuid": "kitsch@fopdoodle.net", "name": "Kitsch", "pname": "kitsch", "description": "Kitsch is a collection of cheap, popular, and marketable improvements to Gnome. One could consider it applying a cosmetic surgery to Gnome.\n\nKitsch can easily be configured and offers the following features:\n- remove application menu from the top bar\n- remove the activity button from the top bar\n- periodically change the background picture\n\nThis extension does not come with any button on the panel. Visit the website for a documentation.", "link": "https://extensions.gnome.org/extension/4001/kitsch/", "shell_version_map": {"38": {"version": "2", "sha256": "16zwz0p4f8zizr14k4jmdixgnjd0a67d0i3w6clrqgfl49cpdcdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "3", "sha256": "18nbf68r84ynbf9j2664lgchvcrs275knik9xwbysc2a2b1h6i1x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "gnome-visuals-top-bar@evendanan.net", "name": "Top Bar Visuals - transparent and blur", "pname": "top-bar-visuals-transparent-and-blur", "description": "Fork of: https://github.com/lamarios/gnome-shell-extension-transparent-top-bar\n\nBring back the adjustable transparency top bar (panel) in GNOME Shell and add blur while at it.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/4003/top-bar-visuals-transparent-and-blur/", "shell_version_map": {"38": {"version": "2", "sha256": "0h1qx7bh4gb3xkc8g8byynfa3imxkx332kh88pm4g9zaa20fxzwr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSBhZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSB0b3AgYmFyIChwYW5lbCkgaW4gR05PTUUgU2hlbGwgYW5kIGFkZCBibHVyIHdoaWxlIGF0IGl0LlxuXG5Eb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBjdXN0b20gc2hlbGwgdGhlbWVzLiIsCiAgIm5hbWUiOiAiVG9wIEJhciBWaXN1YWxzIC0gdHJhbnNwYXJlbnQgYW5kIGJsdXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZW5ueS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtdmlzdWFscy10b3AtYmFyQGV2ZW5kYW5hbi5uZXQiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "desktop-lyric@tuberry", "name": "Desktop Lyric", "pname": "desktop-lyric", "description": "Show lyric of the playing song on the desktop\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/4006/desktop-lyric/", "shell_version_map": {"38": {"version": "3", "sha256": "015w7abqa8zqh7vc2hln61i859mfac7lcjp8lvccm9jbakdxqpvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbHlyaWMgb2YgdGhlIHBsYXlpbmcgc29uZyBvbiB0aGUgZGVza3RvcFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkZXNrdG9wLWx5cmljIiwKICAibmFtZSI6ICJEZXNrdG9wIEx5cmljIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtbHlyaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "6", "sha256": "0mvc180z8kc56vzrg6fb5vvqqi4w183383wiqmdb1l5zks54fahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbHlyaWMgb2YgdGhlIHBsYXlpbmcgc29uZyBvbiB0aGUgZGVza3RvcFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkZXNrdG9wLWx5cmljIiwKICAibmFtZSI6ICJEZXNrdG9wIEx5cmljIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtbHlyaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9kZXNrdG9wLWx5cmljIiwKICAidXVpZCI6ICJkZXNrdG9wLWx5cmljQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Alt/Super+Tab can also be navigated with WASD and hjkl. Q just closes the selected item and only the first window will be raised on app activation. Optionally, only show windows from the current workspace or monitor and remove the slight popup delay.", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {"38": {"version": "5", "sha256": "13fg9v0pxxrnxgwd7xhy8wi6lxd7h3y88v2g0zpr1p9lprgh4cl6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "13fg9v0pxxrnxgwd7xhy8wi6lxd7h3y88v2g0zpr1p9lprgh4cl6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "personalize@Selenium-H", "name": "Personalize", "pname": "personalize", "description": "Personalize the looks of GNOME Desktop.\n\nSet the theme variant, window corner curvature and select accent color.\nThe Colors section contains colors generated from the selected accent color.\nThe color generation is not accurate. However, individual colors can be customised.\n\nNot all settings are applied automatically.\nPress Refresh button on the left of the headerbar to reload the extension \n\nCurrently, only Adwaita theme is supported. Also, Adwaita and Adwaita-dark gtk-2 themes\nmust be installed for the extension to work properly. Not all widgets are themed perfectly.", "link": "https://extensions.gnome.org/extension/4010/personalize/", "shell_version_map": {"38": {"version": "1", "sha256": "1rgh2zq7086ymf0222pbrx5n8q11v3f45095w4x3ikw7k12j9s0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiUGVyc29uYWxpemUgR05PTUUgdGhlbWUgYW5kIGN1c3RvbWl6ZSB0aGVtLiIsCiAgImRlc2NyaXB0aW9uIjogIlBlcnNvbmFsaXplIHRoZSBsb29rcyBvZiBHTk9NRSBEZXNrdG9wLlxuXG5TZXQgdGhlIHRoZW1lIHZhcmlhbnQsIHdpbmRvdyBjb3JuZXIgY3VydmF0dXJlIGFuZCBzZWxlY3QgYWNjZW50IGNvbG9yLlxuVGhlIENvbG9ycyBzZWN0aW9uIGNvbnRhaW5zIGNvbG9ycyBnZW5lcmF0ZWQgZnJvbSB0aGUgc2VsZWN0ZWQgYWNjZW50IGNvbG9yLlxuVGhlIGNvbG9yIGdlbmVyYXRpb24gaXMgbm90IGFjY3VyYXRlLiBIb3dldmVyLCBpbmRpdmlkdWFsIGNvbG9ycyBjYW4gYmUgY3VzdG9taXNlZC5cblxuTm90IGFsbCBzZXR0aW5ncyBhcmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5LlxuUHJlc3MgUmVmcmVzaCBidXR0b24gb24gdGhlIGxlZnQgb2YgdGhlIGhlYWRlcmJhciB0byByZWxvYWQgdGhlIGV4dGVuc2lvbiBcblxuQ3VycmVudGx5LCBvbmx5IEFkd2FpdGEgdGhlbWUgaXMgc3VwcG9ydGVkLiBBbHNvLCBBZHdhaXRhIGFuZCBBZHdhaXRhLWRhcmsgZ3RrLTIgdGhlbWVzXG5tdXN0IGJlIGluc3RhbGxlZCBmb3IgdGhlIGV4dGVuc2lvbiB0byB3b3JrIHByb3Blcmx5LiBOb3QgYWxsIHdpZGdldHMgYXJlIHRoZW1lZCBwZXJmZWN0bHkuIiwKICAibmFtZSI6ICJQZXJzb25hbGl6ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzb25hbGl6ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJzdGF0dXMiOiAiICIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW0tSC9QZXJzb25hbGl6ZSIsCiAgInV1aWQiOiAicGVyc29uYWxpemVAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "gnomebedtime@ionutbortis.gmail.com", "name": "Gnome Bedtime", "pname": "gnome-bedtime", "description": "Hey Gnome, it's bedtime! Converts to grayscale the entire Gnome workspace by using a smooth transition. Best to use during evening/night.\n\nThis behaviour is similar to Android's bedtime mode which converts the phone screen to grayscale. It should somewhat make your device less appealing and limit the usage of it before bedtime. On my side, at least, it still requires a fair amount of self control in order to make that happen.\n\nThe extension has a nice Settings UI where you can customize it to your liking:\n- Set an automatic schedule for turning on/off the Bedtime Mode\n- Add an On Demand button to Top Bar or System Menu\n- Control the On Demand button visibility and position in Top Bar\n\nIf you want to use a keyboard shortcut in order to toggle the Bedtime Mode then you can use this command for the shortcut (applies to version 3.0 and beyond):\n\nbash -c 'schema_id=org.gnome.shell.extensions.gnomebedtime; schema_dir=~/.local/share/gnome-shell/extensions/gnomebedtime@ionutbortis.gmail.com/schemas/; if [[ $(gsettings --schemadir $schema_dir get $schema_id bedtime-mode-active) == \"true\" ]]; then turn_on=false; else turn_on=true; fi; gsettings --schemadir $schema_dir set $schema_id bedtime-mode-active $turn_on;'", "link": "https://extensions.gnome.org/extension/4012/gnome-bedtime/", "shell_version_map": {"38": {"version": "4", "sha256": "18g92v2q8idmj077rmfzxpx4zcbc36f2ywrc4713r0z86yipwly7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51XG4tIENvbnRyb2wgdGhlIE9uIERlbWFuZCBidXR0b24gdmlzaWJpbGl0eSBhbmQgcG9zaXRpb24gaW4gVG9wIEJhclxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0IChhcHBsaWVzIHRvIHZlcnNpb24gMy4wIGFuZCBiZXlvbmQpOlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ25vbWViZWR0aW1lOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAibmFtZSI6ICJHbm9tZSBCZWR0aW1lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lYmVkdGltZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lIiwKICAidXVpZCI6ICJnbm9tZWJlZHRpbWVAaW9udXRib3J0aXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "18g92v2q8idmj077rmfzxpx4zcbc36f2ywrc4713r0z86yipwly7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51XG4tIENvbnRyb2wgdGhlIE9uIERlbWFuZCBidXR0b24gdmlzaWJpbGl0eSBhbmQgcG9zaXRpb24gaW4gVG9wIEJhclxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0IChhcHBsaWVzIHRvIHZlcnNpb24gMy4wIGFuZCBiZXlvbmQpOlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ25vbWViZWR0aW1lOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAibmFtZSI6ICJHbm9tZSBCZWR0aW1lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lYmVkdGltZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lIiwKICAidXVpZCI6ICJnbm9tZWJlZHRpbWVAaW9udXRib3J0aXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "transparentwindows.mdirshad07", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/4016/transparent-window/", "shell_version_map": {"38": {"version": "2", "sha256": "12d8ad0s3b2cd8gczsa2l2x5wf3rag9xfr12ljw2jlrzf99vnr70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BieHFkb3duL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC13aW5kb3ciLAogICJ1dWlkIjogInRyYW5zcGFyZW50d2luZG93cy5tZGlyc2hhZDA3IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "wandering-pixel@justinrdonnelly.github.com", "name": "Wandering Pixel", "pname": "wandering-pixel", "description": "Slide 1 pixel back and forth in the top bar as a workaround for various bugs in GNOME Shell and/or Mutter.", "link": "https://extensions.gnome.org/extension/4028/wandering-pixel/", "shell_version_map": {"38": {"version": "3", "sha256": "1n4ycw6yrf0aqczyvc5vdgxszcpa51xh2mzrs8sqs78wxdggzs89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p1c3RpbnJkb25uZWxseS93YW5kZXJpbmctcGl4ZWwiLAogICJ1dWlkIjogIndhbmRlcmluZy1waXhlbEBqdXN0aW5yZG9ubmVsbHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1n4ycw6yrf0aqczyvc5vdgxszcpa51xh2mzrs8sqs78wxdggzs89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p1c3RpbnJkb25uZWxseS93YW5kZXJpbmctcGl4ZWwiLAogICJ1dWlkIjogIndhbmRlcmluZy1waXhlbEBqdXN0aW5yZG9ubmVsbHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "screenshot-directory@fawtytoo", "name": "Screenshot Directory", "pname": "screenshot-directory", "description": "The default screenshot directory is ~/Pictures. This extension changes that to use whatever is set if you used the Gnome Screenshot app. This can be found in the dconf setting: /org/gnome/gnome-screenshot/auto-save-directory. If that directory doesn't exist, the extension will use the Home directory instead.\n\nNote: If the dconf setting doesn't exist, you need to install the Gnome Screenshot app.\n\nThe idea was taken from the extension: Screenshot Locations.", "link": "https://extensions.gnome.org/extension/4031/screenshot-directory/", "shell_version_map": {"38": {"version": "6", "sha256": "15m291jjqfrfcg79nlsqq8zcqp218qrakp3044ik9xjl00yhjf1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9hdXRvLXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "15m291jjqfrfcg79nlsqq8zcqp218qrakp3044ik9xjl00yhjf1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9hdXRvLXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "x11gestures@joseexposito.github.io", "name": "X11 Gestures", "pname": "x11-gestures", "description": "Enable GNOME Shell multi-touch gestures on X11.\nRequires Touchégg https://github.com/JoseExposito/touchegg#readme", "link": "https://extensions.gnome.org/extension/4033/x11-gestures/", "shell_version_map": {"38": {"version": "8", "sha256": "1qyk622i6rrbgn45frqgsrj5zcky7a0clkk89z5b89ckk5rqprhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiLAogICAgIjQwLjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "1qyk622i6rrbgn45frqgsrj5zcky7a0clkk89z5b89ckk5rqprhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiLAogICAgIjQwLjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "get-out-of-the-way@michaelmob.com", "name": "Get Out Of The Way!", "pname": "get-out-of-the-way", "description": "Push 'Always-on-Top' windows out of the way of the focused window.", "link": "https://extensions.gnome.org/extension/4034/get-out-of-the-way/", "shell_version_map": {"38": {"version": "1", "sha256": "1jpjqi2l6wjn9zbgpck04gm9vbspi066chby1j6k9km6dwljfbk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1c2ggJ0Fsd2F5cy1vbi1Ub3AnIHdpbmRvd3Mgb3V0IG9mIHRoZSB3YXkgb2YgdGhlIGZvY3VzZWQgd2luZG93LiIsCiAgIm5hbWUiOiAiR2V0IE91dCBPZiBUaGUgV2F5ISIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZXQtb3V0LW9mLXRoZS13YXlAbWljaGFlbG1vYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "VPNStatus@jesusalc@intuivo.com", "name": "VPNStatus Indicator", "pname": "vpnstatus-indicator", "description": "displays the current state of VPNStatus VPN\n\nchecks, if /proc/net/route contains entries for device nmcli?, this is the VPNStatus network device.\n", "link": "https://extensions.gnome.org/extension/4039/vpnstatus-indicator/", "shell_version_map": {"38": {"version": "1", "sha256": "1y4ym6lpwfi03rc6186yjc7mns01q5nrwiqizghls7hiyfg3kqrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImRpc3BsYXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIFZQTlN0YXR1cyBWUE5cblxuY2hlY2tzLCBpZiAvcHJvYy9uZXQvcm91dGUgY29udGFpbnMgZW50cmllcyBmb3IgZGV2aWNlIG5tY2xpPywgdGhpcyBpcyB0aGUgVlBOU3RhdHVzIG5ldHdvcmsgZGV2aWNlLlxuIiwKICAibmFtZSI6ICJWUE5TdGF0dXMgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIlZQTlN0YXR1c0BqZXN1c2FsY0BpbnR1aXZvLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "switchtwolayouts@qtmax.dev", "name": "Switch Two Layouts", "pname": "switch-two-layouts", "description": "This extension makes XKB shortcuts to switch keyboard layouts (such as Caps Lock, Ctrl+Shift, etc.) cycle between the two first layouts. The other ones still can be selected via the menu or using GNOME's shortcuts (Super+Space, Shift+Super+Space). It's useful when you have two primary layouts and more additional, which are used more rarely.", "link": "https://extensions.gnome.org/extension/4042/switch-two-layouts/", "shell_version_map": {"38": {"version": "1", "sha256": "1z4nrv0szs8g4jp84fimp0dnljlz8qqjkd509pl3prqdbm97hwzy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInN3aXRjaHR3b2xheW91dHNAcXRtYXguZGV2IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "notification-dismiss@kronosoul.xyz", "name": "Dismiss Notifications on Right Click", "pname": "dismiss-notifications-on-right-click", "description": "Simple extension that removes notification popups when they are right clicked.", "link": "https://extensions.gnome.org/extension/4048/dismiss-notifications-on-right-click/", "shell_version_map": {"38": {"version": "1", "sha256": "19pdz3lg1ybmgvpahfwzzhwk8fyhm1sr3wawddz5z66i22spcgjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwubm90aWZpY2F0aW9uLWRpc21pc3MiLAogICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyBub3RpZmljYXRpb24gcG9wdXBzIHdoZW4gdGhleSBhcmUgcmlnaHQgY2xpY2tlZC4iLAogICJleHRlbnNpb24taWQiOiAiZ2R0b29scyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJEaXNtaXNzIE5vdGlmaWNhdGlvbnMgb24gUmlnaHQgQ2xpY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4wIiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZGlzbWlzc0Brcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "pi-hole@fnxweb.com", "name": "pi-hole", "pname": "pi-hole", "description": "Status and basic controls of local Pi-Hole", "link": "https://extensions.gnome.org/extension/4051/pi-hole/", "shell_version_map": {"38": {"version": "1", "sha256": "0m19lv8zfhh8vqn0ln4a8g4g4hw9p6h98gb656vb0hblp5gsycfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1waS1ob2xlIiwKICAidXVpZCI6ICJwaS1ob2xlQGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "spotify-artwork-fixer@wjt.me.uk", "name": "Spotify Artwork Fixer", "pname": "spotify-artwork-fixer", "description": "Fix Spotify artwork in media notification", "link": "https://extensions.gnome.org/extension/4055/spotify-artwork-fixer/", "shell_version_map": {"38": {"version": "2", "sha256": "19n0j3xd9x5vcd45nawhdic7axv5188clwdg883qb4bbkfdm41zl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgaW4gbWVkaWEgbm90aWZpY2F0aW9uIiwKICAibmFtZSI6ICJTcG90aWZ5IEFydHdvcmsgRml4ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3BvdGlmeS1hcnR3b3JrLWZpeGVyQHdqdC5tZS51ayIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "custom-vpn-toggler@giteduberger.fr", "name": "Custom VPN Toggler (and indicator)", "pname": "custom-vpn-toggler", "description": "Custom VPN Toggler (and indicator) allows to see the status of a VPN (with its icon), see IP address associated and permit to start and stop VPN (from a menu).\n\nThis plugin required an additional script to interact with VPN. \nAn example for netExtender is available on extension repository. \nFollow the link to Extension Web Site and see README.", "link": "https://extensions.gnome.org/extension/4061/custom-vpn-toggler/", "shell_version_map": {"38": {"version": "4", "sha256": "0i5dvcpsqif1bpilv974wfnwg9l79j89fzr5vy67wlcizid6z31i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbSBWUE4gVG9nZ2xlciAoYW5kIGluZGljYXRvcikgYWxsb3dzIHRvIHNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSwgc2VlIElQIGFkZHJlc3MgYXNzb2NpYXRlZCBhbmQgcGVybWl0IHRvIHN0YXJ0IGFuZCBzdG9wIFZQTiAoZnJvbSBhIG1lbnUpLlxuXG5UaGlzIHBsdWdpbiByZXF1aXJlZCBhbiBhZGRpdGlvbmFsIHNjcmlwdCB0byBpbnRlcmFjdCB3aXRoIFZQTi4gXG5BbiBleGFtcGxlIGZvciBuZXRFeHRlbmRlciBpcyBhdmFpbGFibGUgb24gZXh0ZW5zaW9uIHJlcG9zaXRvcnkuIFxuRm9sbG93IHRoZSBsaW5rIHRvIEV4dGVuc2lvbiBXZWIgU2l0ZSBhbmQgc2VlIFJFQURNRS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20tdnBuLXRvZ2dsZXJAZ2l0ZWR1YmVyZ2VyLmZyIiwKICAibmFtZSI6ICJDdXN0b20gVlBOIFRvZ2dsZXIgKGFuZCBpbmRpY2F0b3IpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImZyLmdpdGVkdWJlcmdlci5jdXN0b20tdnBuLXRvZ2dsZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9YYXZpZXJCZXJnZXIvY3VzdG9tLXZwbi10b2dnbGVyIiwKICAidXVpZCI6ICJjdXN0b20tdnBuLXRvZ2dsZXJAZ2l0ZWR1YmVyZ2VyLmZyIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "geary-tray-icon@taylantatli.github.com", "name": "Geary Tray Icon", "pname": "geary-tray-icon", "description": "Show a tray icon for Geary\n\nhttps://github.com/TaylanTatli/geary-tray-icon", "link": "https://extensions.gnome.org/extension/4073/geary-tray-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "11kv47pz5p69j10r23zf8ls3fmanldx7diwsy34fhyxqfxjcd614", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSB0cmF5IGljb24gZm9yIEdlYXJ5XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsYW5UYXRsaS9nZWFyeS10cmF5LWljb24iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZWFyeS10cmF5LWljb25AdGF5bGFudGF0bGkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "8", "sha256": "15w1cgvqc20lijffzvpbbr960hasrzs6qq48mjji5kryvy4rw9bi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd290bXNodWFpc2kvaXFhaXJHbm9tZUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaXFhaXJAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "23", "sha256": "0gysa7gz161n7lx119f1xhqhfywqd3hj7yf8dkxa208m6hmsya5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhL3RyZWUvNDAucmMiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "40": {"version": "24", "sha256": "14r84jdp8vdwzfxy3nvfkzggky2fq1qnwk7zpnzgqvpncsnam2a7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLnJjIiwKICAgICI0MC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQwLnJjIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
+, {"uuid": "disable-touch-osk@pardus.org.tr", "name": "disable-touch-osk", "pname": "disable-touch-osk", "description": "Disable on screen keyboard for touchscreens", "link": "https://extensions.gnome.org/extension/4087/disable-touch-osk/", "shell_version_map": {"38": {"version": "3", "sha256": "10ljbjbswzn9y30n2h39iiz673hhmazr2h14lhhws05m71xvbbfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgb24gc2NyZWVuIGtleWJvYXJkIGZvciB0b3VjaHNjcmVlbnMiLAogICJuYW1lIjogImRpc2FibGUtdG91Y2gtb3NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5wYXJkdXMub3JnLnRyLyIsCiAgInV1aWQiOiAiZGlzYWJsZS10b3VjaC1vc2tAcGFyZHVzLm9yZy50ciIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "right_click_for_apps@briansayre", "name": "Right Click for Apps", "pname": "right-click-for-apps", "description": "Allows you to right-click the Activities button to reveal the application menu.", "link": "https://extensions.gnome.org/extension/4090/right-click-for-apps/", "shell_version_map": {"38": {"version": "1", "sha256": "1rzx8ksl48badrwyqxwbgvfgf48z642mdwl57aq280ng61nrndaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB5b3UgdG8gcmlnaHQtY2xpY2sgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIHRvIHJldmVhbCB0aGUgYXBwbGljYXRpb24gbWVudS4iLAogICJuYW1lIjogIlJpZ2h0IENsaWNrIGZvciBBcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJpYW5zYXlyZS9SaWdodC1DbGljay1Gb3ItQXBwcyIsCiAgInV1aWQiOiAicmlnaHRfY2xpY2tfZm9yX2FwcHNAYnJpYW5zYXlyZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "notifications_to_file@fawtytoo", "name": "Notifications To File", "pname": "notifications-to-file", "description": "Notifications are appended to a file in $HOME/.notifications/ with one file created per day.\nEntries show the following information:\nTimestamp\nWhether the banner was shown\nThe urgency\nThe title\nBanner text", "link": "https://extensions.gnome.org/extension/4093/notifications-to-file/", "shell_version_map": {"38": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Background When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "4", "sha256": "04fbcdgpw3gpvgzdrji0w7qla021qb4jc3ad5whi8w0zpci7g4jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNoYW5nZV9kZXNrdG9wX2JhY2tncm91bmRfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "04fbcdgpw3gpvgzdrji0w7qla021qb4jc3ad5whi8w0zpci7g4jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIEJhY2tncm91bmQgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNoYW5nZV9kZXNrdG9wX2JhY2tncm91bmRfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "translate-clipboard@lsnow.github.io", "name": "translate-clipboard", "pname": "translate-clipboard", "description": "translate selected text\n\nFor ubuntu20.04, download version 3.38", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "01i8dx0hbcy28xzrj0imadv1027nnxmlz98sl4p72fykp08j728y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBzZWxlY3RlZCB0ZXh0XG5cbkZvciB1YnVudHUyMC4wNCwgZG93bmxvYWQgdmVyc2lvbiAzLjM4IiwKICAibmFtZSI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "4", "sha256": "0jr0fqcnx2yzgm470hjj9pk93fxd5ninsg4mwb73vqvlvq9jmjqs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBzZWxlY3RlZCB0ZXh0XG5cbkZvciB1YnVudHUyMC4wNCwgZG93bmxvYWQgdmVyc2lvbiAzLjM4IiwKICAibmFtZSI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. For GNOME Shell 40+.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {"40": {"version": "8", "sha256": "15y0qyknm2c3p94n8lvq3x13vk8j90mfwzl8g2vpraiavgid52fm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbm8tb3ZlcnZpZXciLAogICJ1dWlkIjogIm5vLW92ZXJ2aWV3QGZ0aHgiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "notification-position@drugo.dev", "name": "Notification Banner Position", "pname": "notification-banner-position", "description": "Changes position of the notification banner from the default to the right side of the screen.", "link": "https://extensions.gnome.org/extension/4105/notification-banner-position/", "shell_version_map": {"38": {"version": "2", "sha256": "10c3z6b9gwnjybyshrgg4mh9gcj7pv7mwhci32bprsai9nbdid4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icnVub2RydWdvd2ljay9ub3RpZmljYXRpb24tcG9zaXRpb24tZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tcG9zaXRpb25AZHJ1Z28uZGV2IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "10c3z6b9gwnjybyshrgg4mh9gcj7pv7mwhci32bprsai9nbdid4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icnVub2RydWdvd2ljay9ub3RpZmljYXRpb24tcG9zaXRpb24tZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tcG9zaXRpb25AZHJ1Z28uZGV2IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {"38": {"version": "2", "sha256": "0wd7k5ryjq4w949qi73k5g1pi5nl5wvjxsw155ihyg3yinr8qjxs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJmbHlubjg5L2dub21lLXNoZWxsLXZvbHVtZS1zY3JvbGxlciIsCiAgInV1aWQiOiAidm9sdW1lX3Njcm9sbGVyQHRyZmx5bm44OS5wbS5tZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Customize IBus for orientation, animation, font, ASCII mode auto-switch, reposition, system tray menu entries, input source indicator. Theme and background picture follow GNOME Night Light Mode.", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "45", "sha256": "08v5j2sfjhlpl796l579w3yv32v1brr1gkny2qrl16lii5cl44dh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBJQnVzIGZvciBvcmllbnRhdGlvbiwgYW5pbWF0aW9uLCBmb250LCBBU0NJSSBtb2RlIGF1dG8tc3dpdGNoLCByZXBvc2l0aW9uLCBzeXN0ZW0gdHJheSBtZW51IGVudHJpZXMsIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IuIFRoZW1lIGFuZCBiYWNrZ3JvdW5kIHBpY3R1cmUgZm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGUuIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvbGxvd21hbjYvY3VzdG9taXplLWlidXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "46", "sha256": "0nsyikhpbjwdx0mybab4v0nh61ahgcp1d3j2bjyqkrapif58mpfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBJQnVzIGZvciBvcmllbnRhdGlvbiwgYW5pbWF0aW9uLCBmb250LCBBU0NJSSBtb2RlIGF1dG8tc3dpdGNoLCByZXBvc2l0aW9uLCBzeXN0ZW0gdHJheSBtZW51IGVudHJpZXMsIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IuIFRoZW1lIGFuZCBiYWNrZ3JvdW5kIHBpY3R1cmUgZm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGUuIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvbGxvd21hbjYvY3VzdG9taXplLWlidXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA0Ngp9"}}}
+, {"uuid": "fildemGMenu@gonza.com", "name": "Fildem global menu", "pname": "fildem-global-menu", "description": "Global menu and HUD for Gnome\n\nThis extension requires the installation of an external program. Please, check the instructions on Github.\n\nThis extension works on gnome 40 but the preferences doesn’t work, if you want you can install it manually modifing the version supported on metadata.", "link": "https://extensions.gnome.org/extension/4114/fildem-global-menu/", "shell_version_map": {"38": {"version": "1", "sha256": "0zgkf4cb4hl0r6r1kzwlvnr4f2svlpwayrw7xqs39fa19cc1zasv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBtZW51IGFuZCBIVUQgZm9yIEdub21lXG5cblRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIHRoZSBpbnN0YWxsYXRpb24gb2YgYW4gZXh0ZXJuYWwgcHJvZ3JhbS4gUGxlYXNlLCBjaGVjayB0aGUgaW5zdHJ1Y3Rpb25zIG9uIEdpdGh1Yi5cblxuVGhpcyBleHRlbnNpb24gd29ya3Mgb24gZ25vbWUgNDAgYnV0IHRoZSBwcmVmZXJlbmNlcyBkb2Vzblx1MjAxOXQgd29yaywgaWYgeW91IHdhbnQgeW91IGNhbiBpbnN0YWxsIGl0IG1hbnVhbGx5IG1vZGlmaW5nIHRoZSB2ZXJzaW9uIHN1cHBvcnRlZCBvbiBtZXRhZGF0YS4iLAogICJuYW1lIjogIkZpbGRlbSBnbG9iYWwgbWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5maWxkZW0tZ2xvYmFsLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvRmlsZGVtIiwKICAidXVpZCI6ICJmaWxkZW1HTWVudUBnb256YS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "remove-panel@sulincix", "name": "RemovePanel", "pname": "removepanel", "description": "remove top panel from gnome-shell", "link": "https://extensions.gnome.org/extension/4118/removepanel/", "shell_version_map": {"38": {"version": "4", "sha256": "0f6p5cd68qlb082favqf2h7q4vn8c6rh0y48g3s2d9fxgccvc1di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlbW92ZSB0b3AgcGFuZWwgZnJvbSBnbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiUmVtb3ZlUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAicmVtb3ZlLXBhbmVsQHN1bGluY2l4IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "bottom-triggers-activities@papjul", "name": "Bottom triggers Activities overview", "pname": "bottom-triggers-activities-overview", "description": "DEPRECATION NOTICE: No longer maintained. Please migrate to another extension such as Hot Edge https://extensions.gnome.org/extension/4222/hot-edge/\n\nAllows to toggle Activities overview when the mouse reaches the bottom edge of the screen.\nPLEASE report your bugs to the extension homepage link below. I cannot reply to you if you write a review here.\n\nThis is a fork of Dash to Dock focusing only on doing this, it adds support for Gnome Shell 40 and is mainly aimed at Gnome Shell 40 users to reduce mouse travel.\n\nI may backport fixes from upstream, but I don't intend to add any new feature and may not fix any bug if I'm not affected/cannot reproduce. However, I will accept pull requests that keep the extension in the KISS principle. It could be adding a prefs UI for toggle delay and edge(s) triggered, or supporting multiple monitors.\n\nYou can customize the following parameters from the constructor of extension.js:\n        this._position = St.Side.BOTTOM;\n        this._toggleDelay = 0.25;", "link": "https://extensions.gnome.org/extension/4120/bottom-triggers-activities-overview/", "shell_version_map": {"38": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "gnome-shell-Google-search-provider@MrNinso", "name": "Google Search Provider", "pname": "google-search-provider", "description": "Add Google search to Gnome Shell Search \n TODO: \n - Add google suggestions (For now using duckduckGo suggestions)", "link": "https://extensions.gnome.org/extension/4132/google-search-provider/", "shell_version_map": {"38": {"version": "5", "sha256": "056d2x5v2kzlkdab0bf88r7hs93iwdm6nhlf5q5fhjmqgc88ap1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBHb29nbGUgc2VhcmNoIHRvIEdub21lIFNoZWxsIFNlYXJjaCBcbiBUT0RPOiBcbiAtIEFkZCBnb29nbGUgc3VnZ2VzdGlvbnMgKEZvciBub3cgdXNpbmcgZHVja2R1Y2tHbyBzdWdnZXN0aW9ucykiLAogICJuYW1lIjogIkdvb2dsZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlLXNlYXJjaC1wcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nck5pbnNvL2dub21lLXNoZWxsLWdvb2dsZS1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLXNoZWxsLUdvb2dsZS1zZWFyY2gtcHJvdmlkZXJATXJOaW5zbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "056d2x5v2kzlkdab0bf88r7hs93iwdm6nhlf5q5fhjmqgc88ap1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBHb29nbGUgc2VhcmNoIHRvIEdub21lIFNoZWxsIFNlYXJjaCBcbiBUT0RPOiBcbiAtIEFkZCBnb29nbGUgc3VnZ2VzdGlvbnMgKEZvciBub3cgdXNpbmcgZHVja2R1Y2tHbyBzdWdnZXN0aW9ucykiLAogICJuYW1lIjogIkdvb2dsZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29vZ2xlLXNlYXJjaC1wcm92aWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nck5pbnNvL2dub21lLXNoZWxsLWdvb2dsZS1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLXNoZWxsLUdvb2dsZS1zZWFyY2gtcHJvdmlkZXJATXJOaW5zbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "disable-menu-switching@selfmade.pl", "name": "Disable Menu Switching", "pname": "disable-menu-switching", "description": "Disable changing menu on hover another panel button.", "link": "https://extensions.gnome.org/extension/4133/disable-menu-switching/", "shell_version_map": {"40": {"version": "3", "sha256": "12879vn6knafdcphg3wwbpbram5hrw79v68z9c9d5z4f9k781ksq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "espresso@coadmunkee.github.com", "name": "Espresso", "pname": "espresso", "description": "Espresso provides a topbar icon that allows you to disable or enable the screensaver and auto suspend. You can also define other conditions that will disable the screensaver and auto suspend such as when any application is running in full screen mode and/or when any one of a defined list of applications is running.\nEspresso has been fully derived from a fork of Caffeine and provides the same functionality. ", "link": "https://extensions.gnome.org/extension/4135/espresso/", "shell_version_map": {"40": {"version": "1", "sha256": "1jg3zrgisbw08ar38blic3fn2pcdbgph5h0ph9bks2393azlzxn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIHByb3ZpZGVzIGEgdG9wYmFyIGljb24gdGhhdCBhbGxvd3MgeW91IHRvIGRpc2FibGUgb3IgZW5hYmxlIHRoZSBzY3JlZW5zYXZlciBhbmQgYXV0byBzdXNwZW5kLiBZb3UgY2FuIGFsc28gZGVmaW5lIG90aGVyIGNvbmRpdGlvbnMgdGhhdCB3aWxsIGRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQgc3VjaCBhcyB3aGVuIGFueSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIGZ1bGwgc2NyZWVuIG1vZGUgYW5kL29yIHdoZW4gYW55IG9uZSBvZiBhIGRlZmluZWQgbGlzdCBvZiBhcHBsaWNhdGlvbnMgaXMgcnVubmluZy5cbkVzcHJlc3NvIGhhcyBiZWVuIGZ1bGx5IGRlcml2ZWQgZnJvbSBhIGZvcmsgb2YgQ2FmZmVpbmUgYW5kIHByb3ZpZGVzIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkuICIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgIm5hbWUiOiAiRXNwcmVzc28iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXNwcmVzc28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "salat-dz@salat-dz.com", "name": "Salat Dz", "pname": "salat-dz", "description": "Show next salat using Salat Dz API", "link": "https://extensions.gnome.org/extension/4136/salat-dz/", "shell_version_map": {"38": {"version": "1", "sha256": "1kga5w2yp375h6lj3fmzr1agg43phyj5f45d7hjv04c405d32p8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbmV4dCBzYWxhdCB1c2luZyBTYWxhdCBEeiBBUEkiLAogICJuYW1lIjogIlNhbGF0IER6IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3NhbGF0LnB5dGhvbmFueXdoZXJlLmNvbSIsCiAgInV1aWQiOiAic2FsYXQtZHpAc2FsYXQtZHouY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "user-at-host@cmm.github.com", "name": "Add user@host to top panel", "pname": "add-userhost-to-panel", "description": "Adds user@host to the top panel, in the center to the right of the clock.\n\nNothing fancy, no support -- fork at will, the thing is very simple.", "link": "https://extensions.gnome.org/extension/4141/add-userhost-to-panel/", "shell_version_map": {"38": {"version": "2", "sha256": "1d2pj1phh7z2h9mdhsll5kmwzz2pr1x3ca6ng5l50ga5b55i9af0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIGluIHRoZSBjZW50ZXIgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjbG9jay5cblxuTm90aGluZyBmYW5jeSwgbm8gc3VwcG9ydCAtLSBmb3JrIGF0IHdpbGwsIHRoZSB0aGluZyBpcyB2ZXJ5IHNpbXBsZS4iLAogICJuYW1lIjogIkFkZCB1c2VyQGhvc3QgdG8gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImRhbmRhbWFuOTYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1d2pj1phh7z2h9mdhsll5kmwzz2pr1x3ca6ng5l50ga5b55i9af0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIGluIHRoZSBjZW50ZXIgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjbG9jay5cblxuTm90aGluZyBmYW5jeSwgbm8gc3VwcG9ydCAtLSBmb3JrIGF0IHdpbGwsIHRoZSB0aGluZyBpcyB2ZXJ5IHNpbXBsZS4iLAogICJuYW1lIjogIkFkZCB1c2VyQGhvc3QgdG8gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImRhbmRhbWFuOTYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "vertical-overview@RensAlthuis.github.com", "name": "Vertical overview", "pname": "vertical-overview", "description": "Gnome has had vertically stacked workspaces for a long time. The Gnome 40 update unfortunately made the switch to a horizontal layout. A choice that many Gnome users disagree with. This extension Aims to replace the new Gnome overview with something that resembles the old style. \n\nhttps://github.com/RensAlthuis/vertical-overview", "link": "https://extensions.gnome.org/extension/4144/vertical-overview/", "shell_version_map": {"40": {"version": "5", "sha256": "04lvqn2l4wvsxk9g34n18h5sdqbyms2iwx72fd7il6rs21r0l1cb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGhhcyBoYWQgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMgZm9yIGEgbG9uZyB0aW1lLiBUaGUgR25vbWUgNDAgdXBkYXRlIHVuZm9ydHVuYXRlbHkgbWFkZSB0aGUgc3dpdGNoIHRvIGEgaG9yaXpvbnRhbCBsYXlvdXQuIEEgY2hvaWNlIHRoYXQgbWFueSBHbm9tZSB1c2VycyBkaXNhZ3JlZSB3aXRoLiBUaGlzIGV4dGVuc2lvbiBBaW1zIHRvIHJlcGxhY2UgdGhlIG5ldyBHbm9tZSBvdmVydmlldyB3aXRoIHNvbWV0aGluZyB0aGF0IHJlc2VtYmxlcyB0aGUgb2xkIHN0eWxlLiBcblxuaHR0cHM6Ly9naXRodWIuY29tL1JlbnNBbHRodWlzL3ZlcnRpY2FsLW92ZXJ2aWV3IiwKICAibmFtZSI6ICJWZXJ0aWNhbCBvdmVydmlldyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyZW5zLmFsdGh1aXNAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "workspace-isolated_app-switcher@lestibournes", "name": "Workspace-Isolated App-Switcher", "pname": "workspace-isolated-app-switcher", "description": "App-Switcher modification that shows only the apps that are running on the current workspace. Fork of App-Switcher Current Workspace First by fawtytoo.", "link": "https://extensions.gnome.org/extension/4145/workspace-isolated-app-switcher/", "shell_version_map": {"38": {"version": "1", "sha256": "0bcf8l1sb73f0ggvavkfjk10s67k7w4f3yr0s9inil6z8pbk7bsr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzaG93cyBvbmx5IHRoZSBhcHBzIHRoYXQgYXJlIHJ1bm5pbmcgb24gdGhlIGN1cnJlbnQgd29ya3NwYWNlLiBGb3JrIG9mIEFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCBieSBmYXd0eXRvby4iLAogICJuYW1lIjogIldvcmtzcGFjZS1Jc29sYXRlZCBBcHAtU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkX2FwcC1zd2l0Y2hlckBsZXN0aWJvdXJuZXMiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "kubectl@infinicode.de", "name": "Kubectl Extension", "pname": "kubectl-extension", "description": "Quick panel access to kubernetes resources utilizing kubectl CLI", "link": "https://extensions.gnome.org/extension/4147/kubectl-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "alwaysshowworkspacethumbnails@alynx.one", "name": "Always Show Workspace Thumbnails", "pname": "always-show-workspace-thumbnails", "description": "Always show workspace thumbnails even there is only one workspace.", "link": "https://extensions.gnome.org/extension/4156/always-show-workspace-thumbnails/", "shell_version_map": {"40": {"version": "1", "sha256": "0gl29n7hdhw01m4wcyrsc3xnzahn84b1saw2qjl7cg09x8qz1rfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHdvcmtzcGFjZSB0aHVtYm5haWxzIGV2ZW4gdGhlcmUgaXMgb25seSBvbmUgd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHdheXMtc2hvdy13b3Jrc3BhY2UtdGh1bWJuYWlscy8iLAogICJ1dWlkIjogImFsd2F5c3Nob3d3b3Jrc3BhY2V0aHVtYm5haWxzQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "gnome-ui-tune@itstime.tech", "name": "Gnome 40 UI Improvements", "pname": "gnome-40-ui-improvements", "description": "Tunes gnome 40's Overview UI to make it more usable.\n\nChanges:\n- Search textbox is hidden by default and shown only when user begins to type-to-search\n- Scale of workspaces' thumbnails increased 2x\n- Restores wallpaper on workspaces' thumbnails. No more gray background.\n- Firefox's PIP (picture in picture) window is now displayed on the overview screen\n\nAll modifications can be disabled in the extension's settings.", "link": "https://extensions.gnome.org/extension/4158/gnome-40-ui-improvements/", "shell_version_map": {"40": {"version": "5", "sha256": "0kmzmd74p1m9jbrdhbr0f8fv85b9f23mbnr5ca6xv9lx88ls279c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1bmVzIGdub21lIDQwJ3MgT3ZlcnZpZXcgVUkgdG8gbWFrZSBpdCBtb3JlIHVzYWJsZS5cblxuQ2hhbmdlczpcbi0gU2VhcmNoIHRleHRib3ggaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYW5kIHNob3duIG9ubHkgd2hlbiB1c2VyIGJlZ2lucyB0byB0eXBlLXRvLXNlYXJjaFxuLSBTY2FsZSBvZiB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGluY3JlYXNlZCAyeFxuLSBSZXN0b3JlcyB3YWxscGFwZXIgb24gd29ya3NwYWNlcycgdGh1bWJuYWlscy4gTm8gbW9yZSBncmF5IGJhY2tncm91bmQuXG4tIEZpcmVmb3gncyBQSVAgKHBpY3R1cmUgaW4gcGljdHVyZSkgd2luZG93IGlzIG5vdyBkaXNwbGF5ZWQgb24gdGhlIG92ZXJ2aWV3IHNjcmVlblxuXG5BbGwgbW9kaWZpY2F0aW9ucyBjYW4gYmUgZGlzYWJsZWQgaW4gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR25vbWUgNDAgVUkgSW1wcm92ZW1lbnRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXVpLXR1bmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLXVpLXR1bmUiLAogICJ1dWlkIjogImdub21lLXVpLXR1bmVAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "monitor-window-switcher@thefungusrocket.com", "name": "Monitor window switcher", "pname": "monitor-window-switcher", "description": "Improves the window switcher on dual (or more) monitor setups", "link": "https://extensions.gnome.org/extension/4164/monitor-window-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0dj87kqxh5dg97i0185dkzh9sp97bwazzf3crx4fk4ajs7q6pv34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlZHplcHBlbGluL21vbml0b3Itd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJtb25pdG9yLXdpbmRvdy1zd2l0Y2hlckB0aGVmdW5ndXNyb2NrZXQuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "0dj87kqxh5dg97i0185dkzh9sp97bwazzf3crx4fk4ajs7q6pv34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlZHplcHBlbGluL21vbml0b3Itd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJtb25pdG9yLXdpbmRvdy1zd2l0Y2hlckB0aGVmdW5ndXNyb2NrZXQuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Navigate and control Gnome Shell environment by a mouse through the corners and edges of your monitors.\nCustom Hot Corners - Extended can use mouse buttons and scroll wheel as well as hot corners and offers lots of actions including activities overview, app grid, show and hide desktop, commands execution (with app chooser), customizable workspace and window switchers, window control (incl. close, maximize, fullscreen, always on top, ...), window and global color effects (red and green tint, brightness, contrast, inversion, transparency, Night Light), dark / light theme switcher, volume control, universal access functions (incl. zoom and on-screen keyboard), system control (lock screen, shutdown, suspend, logout, switch user), toggle hide main panel, open Looking Glass, ...\n\nRestart your Gnome Shell after each update of the extension to load new code.\nPlease report bugs on GitHub linked below and add output from these two commands:\njournalctl /usr/bin/gnome-shell --since \"2 days ago\" | grep corners-extended\njournalctl /usr/bin/gjs --since \"2 days ago\" | grep corners-extended", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {"38": {"version": "7", "sha256": "0fhqlwjz7q2ah03m2k9qj2cb1pvxwhba49ghsdim3apd8d9w4n5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5hdmlnYXRlIGFuZCBjb250cm9sIEdub21lIFNoZWxsIGVudmlyb25tZW50IGJ5IGEgbW91c2UgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycy5cbkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIGNhbiB1c2UgbW91c2UgYnV0dG9ucyBhbmQgc2Nyb2xsIHdoZWVsIGFzIHdlbGwgYXMgaG90IGNvcm5lcnMgYW5kIG9mZmVycyBsb3RzIG9mIGFjdGlvbnMgaW5jbHVkaW5nIGFjdGl2aXRpZXMgb3ZlcnZpZXcsIGFwcCBncmlkLCBzaG93IGFuZCBoaWRlIGRlc2t0b3AsIGNvbW1hbmRzIGV4ZWN1dGlvbiAod2l0aCBhcHAgY2hvb3NlciksIGN1c3RvbWl6YWJsZSB3b3Jrc3BhY2UgYW5kIHdpbmRvdyBzd2l0Y2hlcnMsIHdpbmRvdyBjb250cm9sIChpbmNsLiBjbG9zZSwgbWF4aW1pemUsIGZ1bGxzY3JlZW4sIGFsd2F5cyBvbiB0b3AsIC4uLiksIHdpbmRvdyBhbmQgZ2xvYmFsIGNvbG9yIGVmZmVjdHMgKHJlZCBhbmQgZ3JlZW4gdGludCwgYnJpZ2h0bmVzcywgY29udHJhc3QsIGludmVyc2lvbiwgdHJhbnNwYXJlbmN5LCBOaWdodCBMaWdodCksIGRhcmsgLyBsaWdodCB0aGVtZSBzd2l0Y2hlciwgdm9sdW1lIGNvbnRyb2wsIHVuaXZlcnNhbCBhY2Nlc3MgZnVuY3Rpb25zIChpbmNsLiB6b29tIGFuZCBvbi1zY3JlZW4ga2V5Ym9hcmQpLCBzeXN0ZW0gY29udHJvbCAobG9jayBzY3JlZW4sIHNodXRkb3duLCBzdXNwZW5kLCBsb2dvdXQsIHN3aXRjaCB1c2VyKSwgdG9nZ2xlIGhpZGUgbWFpbiBwYW5lbCwgb3BlbiBMb29raW5nIEdsYXNzLCAuLi5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZS5cblBsZWFzZSByZXBvcnQgYnVncyBvbiBHaXRIdWIgbGlua2VkIGJlbG93IGFuZCBhZGQgb3V0cHV0IGZyb20gdGhlc2UgdHdvIGNvbW1hbmRzOlxuam91cm5hbGN0bCAvdXNyL2Jpbi9nbm9tZS1zaGVsbCAtLXNpbmNlIFwiMiBkYXlzIGFnb1wiIHwgZ3JlcCBjb3JuZXJzLWV4dGVuZGVkXG5qb3VybmFsY3RsIC91c3IvYmluL2dqcyAtLXNpbmNlIFwiMiBkYXlzIGFnb1wiIHwgZ3JlcCBjb3JuZXJzLWV4dGVuZGVkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9jdXN0b20taG90LWNvcm5lcnMvdHJlZS9nZGgiLAogICJ1dWlkIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZEBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "0fhqlwjz7q2ah03m2k9qj2cb1pvxwhba49ghsdim3apd8d9w4n5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5hdmlnYXRlIGFuZCBjb250cm9sIEdub21lIFNoZWxsIGVudmlyb25tZW50IGJ5IGEgbW91c2UgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycy5cbkN1c3RvbSBIb3QgQ29ybmVycyAtIEV4dGVuZGVkIGNhbiB1c2UgbW91c2UgYnV0dG9ucyBhbmQgc2Nyb2xsIHdoZWVsIGFzIHdlbGwgYXMgaG90IGNvcm5lcnMgYW5kIG9mZmVycyBsb3RzIG9mIGFjdGlvbnMgaW5jbHVkaW5nIGFjdGl2aXRpZXMgb3ZlcnZpZXcsIGFwcCBncmlkLCBzaG93IGFuZCBoaWRlIGRlc2t0b3AsIGNvbW1hbmRzIGV4ZWN1dGlvbiAod2l0aCBhcHAgY2hvb3NlciksIGN1c3RvbWl6YWJsZSB3b3Jrc3BhY2UgYW5kIHdpbmRvdyBzd2l0Y2hlcnMsIHdpbmRvdyBjb250cm9sIChpbmNsLiBjbG9zZSwgbWF4aW1pemUsIGZ1bGxzY3JlZW4sIGFsd2F5cyBvbiB0b3AsIC4uLiksIHdpbmRvdyBhbmQgZ2xvYmFsIGNvbG9yIGVmZmVjdHMgKHJlZCBhbmQgZ3JlZW4gdGludCwgYnJpZ2h0bmVzcywgY29udHJhc3QsIGludmVyc2lvbiwgdHJhbnNwYXJlbmN5LCBOaWdodCBMaWdodCksIGRhcmsgLyBsaWdodCB0aGVtZSBzd2l0Y2hlciwgdm9sdW1lIGNvbnRyb2wsIHVuaXZlcnNhbCBhY2Nlc3MgZnVuY3Rpb25zIChpbmNsLiB6b29tIGFuZCBvbi1zY3JlZW4ga2V5Ym9hcmQpLCBzeXN0ZW0gY29udHJvbCAobG9jayBzY3JlZW4sIHNodXRkb3duLCBzdXNwZW5kLCBsb2dvdXQsIHN3aXRjaCB1c2VyKSwgdG9nZ2xlIGhpZGUgbWFpbiBwYW5lbCwgb3BlbiBMb29raW5nIEdsYXNzLCAuLi5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZS5cblBsZWFzZSByZXBvcnQgYnVncyBvbiBHaXRIdWIgbGlua2VkIGJlbG93IGFuZCBhZGQgb3V0cHV0IGZyb20gdGhlc2UgdHdvIGNvbW1hbmRzOlxuam91cm5hbGN0bCAvdXNyL2Jpbi9nbm9tZS1zaGVsbCAtLXNpbmNlIFwiMiBkYXlzIGFnb1wiIHwgZ3JlcCBjb3JuZXJzLWV4dGVuZGVkXG5qb3VybmFsY3RsIC91c3IvYmluL2dqcyAtLXNpbmNlIFwiMiBkYXlzIGFnb1wiIHwgZ3JlcCBjb3JuZXJzLWV4dGVuZGVkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9jdXN0b20taG90LWNvcm5lcnMvdHJlZS9nZGgiLAogICJ1dWlkIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZEBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "hass-gshell@geoph9-on-github", "name": "Home Assistant Extension", "pname": "home-assistant-extension", "description": "A simple gnome shell extension for Home Assistant. Check the README on github for additional help!\n\nMain points:\n- You need to provide the url of your hass, a long live access token obtained from your profile page (on your hass web instance) and the entity ids of the entities you want to have as togglable.\n- In order to add some local temperature/humidity sensor, you may also provide a temperature and/or a humidity entity id (which should match the corresponding ids of your hass instance).\n\nNote: I put version 40.0 by mistake. It does not make any difference whether you choose Gnome 40 or Gnome 40.0.", "link": "https://extensions.gnome.org/extension/4170/home-assistant-extension/", "shell_version_map": {"38": {"version": "3", "sha256": "13zl33w7ax8bd72894dwl8vkr9h0ks0wlcnncbhcrj12zpz3nm3h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLlxuXG5Ob3RlOiBJIHB1dCB2ZXJzaW9uIDQwLjAgYnkgbWlzdGFrZS4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZGlmZmVyZW5jZSB3aGV0aGVyIHlvdSBjaG9vc2UgR25vbWUgNDAgb3IgR25vbWUgNDAuMC4iLAogICJuYW1lIjogIkhvbWUgQXNzaXN0YW50IEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5oYXNzLWRhdGEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZW9waDkvaGFzcy1nc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoYXNzLWdzaGVsbEBnZW9waDktb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "4", "sha256": "0xiw8h1gs078cpz0lxw8xbwldwgbpfsp6x3khgmi71f88jh2razm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLlxuXG5Ob3RlOiBJIHB1dCB2ZXJzaW9uIDQwLjAgYnkgbWlzdGFrZS4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZGlmZmVyZW5jZSB3aGV0aGVyIHlvdSBjaG9vc2UgR25vbWUgNDAgb3IgR25vbWUgNDAuMC4iLAogICJuYW1lIjogIkhvbWUgQXNzaXN0YW50IEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5oYXNzLWRhdGEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "clear-top-bar@superterran.net", "name": "Clear Top Bar", "pname": "clear-top-bar", "description": "Fully transparent topbar, pairs with the zhanghai transparent top bar extension to make bar opaque when window is maximized", "link": "https://extensions.gnome.org/extension/4173/clear-top-bar/", "shell_version_map": {"40": {"version": "4", "sha256": "0nh6df4l5f2wkkcngilrwiwyj97zdkrx7g6as4ppk6aj10ybmxcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdXBlcnRlcnJhbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xlYXItdG9wLWJhciIsCiAgInV1aWQiOiAiY2xlYXItdG9wLWJhckBzdXBlcnRlcnJhbi5uZXQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "systemd-manager@hardpixel.eu", "name": "Systemd Manager", "pname": "systemd-manager", "description": "Toggle systemd services on/off from a popup menu in the top gnome panel. Can be used to start services like apache2, mysql, postgres. It uses `pkexec' to run `sytemctl'. If you want to start services without entering a password you have to polkit policy file. An example policy file can be found in the github repository.", "link": "https://extensions.gnome.org/extension/4174/systemd-manager/", "shell_version_map": {"38": {"version": "4", "sha256": "1c7q3iqcdfqralclixj1frzcpvpw66fs6rdyvi8g90l454c4033c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvc3lzdGVtZC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzeXN0ZW1kLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1c7q3iqcdfqralclixj1frzcpvpw66fs6rdyvi8g90l454c4033c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJkcGl4ZWwvc3lzdGVtZC1tYW5hZ2VyIiwKICAidXVpZCI6ICJzeXN0ZW1kLW1hbmFnZXJAaGFyZHBpeGVsLmV1IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "auto-activities@acedron.github.io", "name": "Auto Activities", "pname": "auto-activities", "description": "Show activities overview when there are no windows.", "link": "https://extensions.gnome.org/extension/4179/auto-activities/", "shell_version_map": {"40": {"version": "10", "sha256": "0qd4ngwx3w6l65rm5zz8zwlcippfy3f1crf36wbds6dc57sn3nj8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjZWRyb24vYXV0by1hY3Rpdml0aWVzIiwKICAidXVpZCI6ICJhdXRvLWFjdGl2aXRpZXNAYWNlZHJvbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "clippie@blackjackshellac.ca", "name": "clippie [replaced by eclipse]", "pname": "clippie", "description": "clippie has been rereleased as 'eclipse'\n\nClipboard interface to gpaste-client output\n\nhttps://extensions.gnome.org/extension/4246/eclipse/\n\nClippie now uses dbus to communicate with the gpaste daemon\nAdded encryption of clipboard items with eclipse feature", "link": "https://extensions.gnome.org/extension/4182/clippie/", "shell_version_map": {"38": {"version": "6", "sha256": "05kd2pq605k21yq6wcaqcm2lrpnlc6mbiq1wxgmwdnpvi7ib2h8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNsaXBwaWUgaGFzIGJlZW4gcmVyZWxlYXNlZCBhcyAnZWNsaXBzZSdcblxuQ2xpcGJvYXJkIGludGVyZmFjZSB0byBncGFzdGUtY2xpZW50IG91dHB1dFxuXG5odHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjQ2L2VjbGlwc2UvXG5cbkNsaXBwaWUgbm93IHVzZXMgZGJ1cyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBncGFzdGUgZGFlbW9uXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcyB3aXRoIGVjbGlwc2UgZmVhdHVyZSIsCiAgImdldHRleHQtZG9tYWluIjogImNsaXBwaWUtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiY2xpcHBpZSBbcmVwbGFjZWQgYnkgZWNsaXBzZV0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2xpcHBpZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiY2xpcHBpZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "05kd2pq605k21yq6wcaqcm2lrpnlc6mbiq1wxgmwdnpvi7ib2h8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNsaXBwaWUgaGFzIGJlZW4gcmVyZWxlYXNlZCBhcyAnZWNsaXBzZSdcblxuQ2xpcGJvYXJkIGludGVyZmFjZSB0byBncGFzdGUtY2xpZW50IG91dHB1dFxuXG5odHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjQ2L2VjbGlwc2UvXG5cbkNsaXBwaWUgbm93IHVzZXMgZGJ1cyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBncGFzdGUgZGFlbW9uXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcyB3aXRoIGVjbGlwc2UgZmVhdHVyZSIsCiAgImdldHRleHQtZG9tYWluIjogImNsaXBwaWUtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiY2xpcHBpZSBbcmVwbGFjZWQgYnkgZWNsaXBzZV0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2xpcHBpZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiY2xpcHBpZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "quick-app-launcher@leleat-on-github", "name": "Quick App Launcher", "pname": "quick-app-launcher", "description": "Launch apps with keybindings. If the to-be-launched app already has a window open, focus that window instead. If the focused window is an instance of the app, open a new window.", "link": "https://extensions.gnome.org/extension/4188/quick-app-launcher/", "shell_version_map": {"38": {"version": "2", "sha256": "1avc0362pl6xardjwj9x6xx4srk0yivymmmhxi3kfbjwgkk0pls1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBhcHBzIHdpdGgga2V5YmluZGluZ3MuIElmIHRoZSB0by1iZS1sYXVuY2hlZCBhcHAgYWxyZWFkeSBoYXMgYSB3aW5kb3cgb3BlbiwgZm9jdXMgdGhhdCB3aW5kb3cgaW5zdGVhZC4gSWYgdGhlIGZvY3VzZWQgd2luZG93IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBhcHAsIG9wZW4gYSBuZXcgd2luZG93LiIsCiAgIm5hbWUiOiAiUXVpY2sgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9RdWljay1BcHAtTGF1bmNoZXIiLAogICJ1dWlkIjogInF1aWNrLWFwcC1sYXVuY2hlckBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1avc0362pl6xardjwj9x6xx4srk0yivymmmhxi3kfbjwgkk0pls1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBhcHBzIHdpdGgga2V5YmluZGluZ3MuIElmIHRoZSB0by1iZS1sYXVuY2hlZCBhcHAgYWxyZWFkeSBoYXMgYSB3aW5kb3cgb3BlbiwgZm9jdXMgdGhhdCB3aW5kb3cgaW5zdGVhZC4gSWYgdGhlIGZvY3VzZWQgd2luZG93IGlzIGFuIGluc3RhbmNlIG9mIHRoZSBhcHAsIG9wZW4gYSBuZXcgd2luZG93LiIsCiAgIm5hbWUiOiAiUXVpY2sgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9RdWljay1BcHAtTGF1bmNoZXIiLAogICJ1dWlkIjogInF1aWNrLWFwcC1sYXVuY2hlckBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "screen-autorotate@kosmospredanie.yandex.ru", "name": "Screen Autorotate", "pname": "screen-autorotate", "description": "Enable screen rotation regardless of touch mode", "link": "https://extensions.gnome.org/extension/4191/screen-autorotate/", "shell_version_map": {"40": {"version": "2", "sha256": "0s8jb0d644kprcd2adidgjsbhm6fqwm896bh4p05yyd9zwkm1bq2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBzY3JlZW4gcm90YXRpb24gcmVnYXJkbGVzcyBvZiB0b3VjaCBtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAibmFtZSI6ICJTY3JlZW4gQXV0b3JvdGF0ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW4tYXV0b3JvdGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb3Ntb3NwcmVkYW5pZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2NyZWVuLWF1dG9yb3RhdGUiLAogICJ1dWlkIjogInNjcmVlbi1hdXRvcm90YXRlQGtvc21vc3ByZWRhbmllLnlhbmRleC5ydSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "Low_Latency_Loopback@jacebennest87.gmail.com", "name": "Low Latency Loopback", "pname": "low-latency-loopback", "description": "Enables a low latency PulseAudio loopback device", "link": "https://extensions.gnome.org/extension/4194/low-latency-loopback/", "shell_version_map": {"38": {"version": "2", "sha256": "0dqjy59c8dgn81x84hifnzldb54n1l31qrbg2m08i84zxrc40x4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYSBsb3cgbGF0ZW5jeSBQdWxzZUF1ZGlvIGxvb3BiYWNrIGRldmljZSIsCiAgIm5hbWUiOiAiTG93IExhdGVuY3kgTG9vcGJhY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90aGVqYWNlcjg3L2xvdy1sYXRlbmN5LWxvb3BiYWNrIiwKICAidXVpZCI6ICJMb3dfTGF0ZW5jeV9Mb29wYmFja0BqYWNlYmVubmVzdDg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "dash-to-plank@hardpixel.eu", "name": "Dash to Plank", "pname": "dash-to-plank", "description": "GNOME Shell integration for Plank, the simplest dock on the planet. To use this extension, you must have Plank installed on your system.\n\nThis extension depends on Plank. To install it:\n- Debian/Ubuntu: apt install plank\n- Fedora/RHEL: dnf install plank\n- Arch: pacman -S plank\n\n** This extension does NOT WORK on WAYLAND.", "link": "https://extensions.gnome.org/extension/4198/dash-to-plank/", "shell_version_map": {"38": {"version": "9", "sha256": "0hkhqkab8xj84sq6c4i03z51z6g78799lwl6fp8ldyh5fbfif9x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXNoLXRvLXBsYW5rIiwKICAidXVpZCI6ICJkYXNoLXRvLXBsYW5rQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "0hkhqkab8xj84sq6c4i03z51z6g78799lwl6fp8ldyh5fbfif9x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGludGVncmF0aW9uIGZvciBQbGFuaywgdGhlIHNpbXBsZXN0IGRvY2sgb24gdGhlIHBsYW5ldC4gVG8gdXNlIHRoaXMgZXh0ZW5zaW9uLCB5b3UgbXVzdCBoYXZlIFBsYW5rIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS5cblxuVGhpcyBleHRlbnNpb24gZGVwZW5kcyBvbiBQbGFuay4gVG8gaW5zdGFsbCBpdDpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgcGxhbmtcbi0gRmVkb3JhL1JIRUw6IGRuZiBpbnN0YWxsIHBsYW5rXG4tIEFyY2g6IHBhY21hbiAtUyBwbGFua1xuXG4qKiBUaGlzIGV4dGVuc2lvbiBkb2VzIE5PVCBXT1JLIG9uIFdBWUxBTkQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaC10by1wbGFuayIsCiAgIm5hbWUiOiAiRGFzaCB0byBQbGFuayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoLXRvLXBsYW5rIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXNoLXRvLXBsYW5rIiwKICAidXVpZCI6ICJkYXNoLXRvLXBsYW5rQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "rrc@ogarcia.me", "name": "Remove Rounded Corners", "pname": "remove-rounded-corners", "description": "Removes rounded corners from main panel or top bar", "link": "https://extensions.gnome.org/extension/4201/remove-rounded-corners/", "shell_version_map": {"40": {"version": "2", "sha256": "1432bvjcknhw57j6ngpppclvkdnpy9dcqv0na4vqcvl2l035bbxv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcm91bmRlZCBjb3JuZXJzIGZyb20gbWFpbiBwYW5lbCBvciB0b3AgYmFyIiwKICAibmFtZSI6ICJSZW1vdmUgUm91bmRlZCBDb3JuZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29nYXJjaWEvcmVtb3ZlLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAicnJjQG9nYXJjaWEubWUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "private-switcher@dziban.com", "name": "Private Switcher", "pname": "private-switcher", "description": "Simple extension that allows you do have independent app switcher (alt-tab) for each workspace.", "link": "https://extensions.gnome.org/extension/4204/private-switcher/", "shell_version_map": {"38": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {"40": {"version": "3", "sha256": "16zw6r3qizw0fksq277l0kwwl1gyqkyv40al3wg33xlacbz41r1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbG9zc2V1bSIsCiAgInV1aWQiOiAiY29sb3NzZXVtQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "gnome-plat-workspace@stonegate.me", "name": "Gnome 40 Flat Workspace", "pname": "gnome-40-plat-workspace", "description": "Remove shadow for workspace background in gnome 40.\nSource code https://github.com/stonega/gnome-extension-flat-workspace", "link": "https://extensions.gnome.org/extension/4215/gnome-40-plat-workspace/", "shell_version_map": {"40": {"version": "3", "sha256": "0ly2dab9c0l7w1axnqs7xk2szd5jm2ifgniz2snw5mwkr5pw76nb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBzaGFkb3cgZm9yIHdvcmtzcGFjZSBiYWNrZ3JvdW5kIGluIGdub21lIDQwLlxuU291cmNlIGNvZGUgaHR0cHM6Ly9naXRodWIuY29tL3N0b25lZ2EvZ25vbWUtZXh0ZW5zaW9uLWZsYXQtd29ya3NwYWNlIiwKICAibmFtZSI6ICJHbm9tZSA0MCBGbGF0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1wbGF0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZ25vbWUtcGxhdC13b3Jrc3BhY2VAc3RvbmVnYXRlLm1lIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "hotedge@jonathan.jdoda.ca", "name": "Hot Edge", "pname": "hot-edge", "description": "Add a hot edge that activates the overview to the bottom of the screen. This minimizes the pointer travel required to access the dash when using the new GNOME Shell 40 overview layout.\n\nYou can find more documentation at https://github.com/jdoda/hotedge/blob/main/README.md and report issues at https://github.com/jdoda/hotedge/issues .", "link": "https://extensions.gnome.org/extension/4222/hot-edge/", "shell_version_map": {"40": {"version": "6", "sha256": "1cga3yimxqkf0lz701a7xcwi9q2iqwisgv4md0f3s484raxpvan4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuWW91IGNhbiBmaW5kIG1vcmUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9ibG9iL21haW4vUkVBRE1FLm1kIGFuZCByZXBvcnQgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlL2lzc3VlcyAuIiwKICAibmFtZSI6ICJIb3QgRWRnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlIiwKICAidXVpZCI6ICJob3RlZGdlQGpvbmF0aGFuLmpkb2RhLmNhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "gnome-citeurl-search-provider@raindrum.github.io", "name": "CiteURL Search", "pname": "gnome-citeurl-search-provider", "description": "This extension lets you look up U.S. state and federal laws and court cases by typing citations (like \"42 USC 1983\" or \"U.S. Constitution Art. I, Sec. 3\") into the search bar.\n\nBy default, CiteURL supports the U.S. Code and federal constitution, as well as nearly all codified state laws and constitutions, among other sources of law. You can also add more types of citation by following the instructions on the GitHub page.", "link": "https://extensions.gnome.org/extension/4225/gnome-citeurl-search-provider/", "shell_version_map": {"38": {"version": "4", "sha256": "1lx1hifm5z8nk6a3nzl186rcrj5zyypnazvwdbkawiwkmilbcz3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IGxvb2sgdXAgVS5TLiBzdGF0ZSBhbmQgZmVkZXJhbCBsYXdzIGFuZCBjb3VydCBjYXNlcyBieSB0eXBpbmcgY2l0YXRpb25zIChsaWtlIFwiNDIgVVNDIDE5ODNcIiBvciBcIlUuUy4gQ29uc3RpdHV0aW9uIEFydC4gSSwgU2VjLiAzXCIpIGludG8gdGhlIHNlYXJjaCBiYXIuXG5cbkJ5IGRlZmF1bHQsIENpdGVVUkwgc3VwcG9ydHMgdGhlIFUuUy4gQ29kZSBhbmQgZmVkZXJhbCBjb25zdGl0dXRpb24sIGFzIHdlbGwgYXMgbmVhcmx5IGFsbCBjb2RpZmllZCBzdGF0ZSBsYXdzIGFuZCBjb25zdGl0dXRpb25zLCBhbW9uZyBvdGhlciBzb3VyY2VzIG9mIGxhdy4gWW91IGNhbiBhbHNvIGFkZCBtb3JlIHR5cGVzIG9mIGNpdGF0aW9uIGJ5IGZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIkNpdGVVUkwgU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhaW5kcnVtL2dub21lLWNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1jaXRldXJsLXNlYXJjaC1wcm92aWRlckByYWluZHJ1bS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1lx1hifm5z8nk6a3nzl186rcrj5zyypnazvwdbkawiwkmilbcz3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IGxvb2sgdXAgVS5TLiBzdGF0ZSBhbmQgZmVkZXJhbCBsYXdzIGFuZCBjb3VydCBjYXNlcyBieSB0eXBpbmcgY2l0YXRpb25zIChsaWtlIFwiNDIgVVNDIDE5ODNcIiBvciBcIlUuUy4gQ29uc3RpdHV0aW9uIEFydC4gSSwgU2VjLiAzXCIpIGludG8gdGhlIHNlYXJjaCBiYXIuXG5cbkJ5IGRlZmF1bHQsIENpdGVVUkwgc3VwcG9ydHMgdGhlIFUuUy4gQ29kZSBhbmQgZmVkZXJhbCBjb25zdGl0dXRpb24sIGFzIHdlbGwgYXMgbmVhcmx5IGFsbCBjb2RpZmllZCBzdGF0ZSBsYXdzIGFuZCBjb25zdGl0dXRpb25zLCBhbW9uZyBvdGhlciBzb3VyY2VzIG9mIGxhdy4gWW91IGNhbiBhbHNvIGFkZCBtb3JlIHR5cGVzIG9mIGNpdGF0aW9uIGJ5IGZvbGxvd2luZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIkNpdGVVUkwgU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhaW5kcnVtL2dub21lLWNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1jaXRldXJsLXNlYXJjaC1wcm92aWRlckByYWluZHJ1bS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "wireless-hid@chlumskyvaclav.gmail.com", "name": "Wireless HID", "pname": "wireless-hid", "description": "This extension shows the battery of the wireless keyboards and mice in percentages and colors. Multiple devices are supported.", "link": "https://extensions.gnome.org/extension/4228/wireless-hid/", "shell_version_map": {"38": {"version": "1", "sha256": "1818hdgzg7n39dwxgfsdhkf112pynw0kwd96za2vcq48la5vrlyr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMgYW5kIG1pY2UgaW4gcGVyY2VudGFnZXMgYW5kIGNvbG9ycy4gTXVsdGlwbGUgZGV2aWNlcyBhcmUgc3VwcG9ydGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogIndpcmVsZXNzLWhpZCIsCiAgIm5hbWUiOiAiV2lyZWxlc3MgSElEIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vd2lyZWxlc3MtaGlkIiwKICAidXVpZCI6ICJ3aXJlbGVzcy1oaWRAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "1818hdgzg7n39dwxgfsdhkf112pynw0kwd96za2vcq48la5vrlyr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMgYW5kIG1pY2UgaW4gcGVyY2VudGFnZXMgYW5kIGNvbG9ycy4gTXVsdGlwbGUgZGV2aWNlcyBhcmUgc3VwcG9ydGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogIndpcmVsZXNzLWhpZCIsCiAgIm5hbWUiOiAiV2lyZWxlc3MgSElEIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vd2lyZWxlc3MtaGlkIiwKICAidXVpZCI6ICJ3aXJlbGVzcy1oaWRAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "better-osd@hllvc", "name": "Better OSD - Gnome 40", "pname": "better-osd-gnome-40", "description": "Better OSD for Gnome 40 (move and resize the OSD popups).\n- forked from original Better OSD\n\nYou think the default volume popup is too big, and stays for too long? This allows you to move it out of the way, reduce its size, add transparency and set the hiding delay.", "link": "https://extensions.gnome.org/extension/4231/better-osd-gnome-40/", "shell_version_map": {"40": {"version": "1", "sha256": "1daa64rjbzhzr87gkbqmgc1bcl8mbkjxfpdp6rbk6qxnjk914796", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJldHRlciBPU0QgZm9yIEdub21lIDQwIChtb3ZlIGFuZCByZXNpemUgdGhlIE9TRCBwb3B1cHMpLlxuLSBmb3JrZWQgZnJvbSBvcmlnaW5hbCBCZXR0ZXIgT1NEXG5cbllvdSB0aGluayB0aGUgZGVmYXVsdCB2b2x1bWUgcG9wdXAgaXMgdG9vIGJpZywgYW5kIHN0YXlzIGZvciB0b28gbG9uZz8gVGhpcyBhbGxvd3MgeW91IHRvIG1vdmUgaXQgb3V0IG9mIHRoZSB3YXksIHJlZHVjZSBpdHMgc2l6ZSwgYWRkIHRyYW5zcGFyZW5jeSBhbmQgc2V0IHRoZSBoaWRpbmcgZGVsYXkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hsbHZjL2JldHRlci1vc2QiLAogICJ1dWlkIjogImJldHRlci1vc2RAaGxsdmMiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "arbttstats@gervasioperez.ar", "name": "Arbtt time tracker stats", "pname": "arbtt-stats", "description": "Show simple arbtt time tracker stats on the panel.\n\nSee extension homepage for a brief tutorial.", "link": "https://extensions.gnome.org/extension/4234/arbtt-stats/", "shell_version_map": {"38": {"version": "7", "sha256": "0p91qyh2r42jbi8s7yzw6s82m91m4acs4y43vav4w4002y2f25cs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHRpbWUgdHJhY2tlciBzdGF0cyBvbiB0aGUgcGFuZWwuXG5cblNlZSBleHRlbnNpb24gaG9tZXBhZ2UgZm9yIGEgYnJpZWYgdHV0b3JpYWwuIiwKICAibmFtZSI6ICJBcmJ0dCB0aW1lIHRyYWNrZXIgc3RhdHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hlcndvb2RpbmMvYXJidHQtc3RhdHMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhcmJ0dHN0YXRzQGdlcnZhc2lvcGVyZXouYXIiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "0p91qyh2r42jbi8s7yzw6s82m91m4acs4y43vav4w4002y2f25cs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHRpbWUgdHJhY2tlciBzdGF0cyBvbiB0aGUgcGFuZWwuXG5cblNlZSBleHRlbnNpb24gaG9tZXBhZ2UgZm9yIGEgYnJpZWYgdHV0b3JpYWwuIiwKICAibmFtZSI6ICJBcmJ0dCB0aW1lIHRyYWNrZXIgc3RhdHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hlcndvb2RpbmMvYXJidHQtc3RhdHMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhcmJ0dHN0YXRzQGdlcnZhc2lvcGVyZXouYXIiLAogICJ2ZXJzaW9uIjogNwp9"}}}
+, {"uuid": "blur-me@nunchucks", "name": "Blur Me", "pname": "blur-me", "description": "Blur: Applications | Top Panel | Overview | Dash | More!\n\n\nCredit where it's due: Overview and dash blur are based on blur my shell", "link": "https://extensions.gnome.org/extension/4236/blur-me/", "shell_version_map": {"40": {"version": "10", "sha256": "0kifrwp8znkfwhq7f5i8qajwlxmyhhaizzbq5p2h7y2xy80n0lwq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdXI6IEFwcGxpY2F0aW9ucyB8IFRvcCBQYW5lbCB8IE92ZXJ2aWV3IHwgRGFzaCB8IE1vcmUhXG5cblxuQ3JlZGl0IHdoZXJlIGl0J3MgZHVlOiBPdmVydmlldyBhbmQgZGFzaCBibHVyIGFyZSBiYXNlZCBvbiBibHVyIG15IHNoZWxsIiwKICAibmFtZSI6ICJCbHVyIE1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NraXNzYW5lL2JsdXItbWUiLAogICJ1dWlkIjogImJsdXItbWVAbnVuY2h1Y2tzIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
+, {"uuid": "gestureImprovements@gestures", "name": "Gesture improvements", "pname": "gesture-improvements", "description": "Touchpad Gesture improvements\n\nThis extension adds following gestures.\n\n1. Switch windows from current workspace using 3-finger horizontal swipe.\n2. Cyclic gestures between Desktop-Overview-AppGrid using 3 or 4 finger vertical swipe.\n3. Override 3-finger gesture with 4-finger for switching workspace.\n\n* This also adds option to configure speed of gestures. (1.0 is default)\n\n\n# Bugs\nReport bugs on gitlab.", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "8", "sha256": "0gxxxgdb6qmgkj5p4ks1y3lvsb9iv2wgdr64yhcksjak5l9plj4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdWNocGFkIEdlc3R1cmUgaW1wcm92ZW1lbnRzXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGdlc3R1cmVzLlxuXG4xLiBTd2l0Y2ggd2luZG93cyBmcm9tIGN1cnJlbnQgd29ya3NwYWNlIHVzaW5nIDMtZmluZ2VyIGhvcml6b250YWwgc3dpcGUuXG4yLiBDeWNsaWMgZ2VzdHVyZXMgYmV0d2VlbiBEZXNrdG9wLU92ZXJ2aWV3LUFwcEdyaWQgdXNpbmcgMyBvciA0IGZpbmdlciB2ZXJ0aWNhbCBzd2lwZS5cbjMuIE92ZXJyaWRlIDMtZmluZ2VyIGdlc3R1cmUgd2l0aCA0LWZpbmdlciBmb3Igc3dpdGNoaW5nIHdvcmtzcGFjZS5cblxuKiBUaGlzIGFsc28gYWRkcyBvcHRpb24gdG8gY29uZmlndXJlIHNwZWVkIG9mIGdlc3R1cmVzLiAoMS4wIGlzIGRlZmF1bHQpXG5cblxuIyBCdWdzXG5SZXBvcnQgYnVncyBvbiBnaXRsYWIuIiwKICAibmFtZSI6ICJHZXN0dXJlIGltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2hhcnNoYWRnYXZhbGkvZ25vbWUtZ2VzdHVyZXMiLAogICJ1dWlkIjogImdlc3R1cmVJbXByb3ZlbWVudHNAZ2VzdHVyZXMiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "eclipse@blackjackshellac.ca", "name": "eclipse", "pname": "eclipse", "description": "eclipse gpaste interface with clipboard item encryption\n\nEclipse now uses dbus to communicate with the gpaste daemon\nAdded encryption of clipboard items with eclipse feature.\n\nThe following utilities are required, on fedora,\n\n$ sudo dnf install gpaste gpaste-ui gpaste-libs openssl\n\nIf updating the extension reports an ERROR it should work after the next reboot or if you logout and login again.\nPlease report issues on github.", "link": "https://extensions.gnome.org/extension/4246/eclipse/", "shell_version_map": {"38": {"version": "6", "sha256": "1i6aq6f59mc1ilx8kwkg431zn1v3an6yvf45qp3ka08y60cq57fm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgZ3Bhc3RlIGludGVyZmFjZSB3aXRoIGNsaXBib2FyZCBpdGVtIGVuY3J5cHRpb25cblxuRWNsaXBzZSBub3cgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb25cbkFkZGVkIGVuY3J5cHRpb24gb2YgY2xpcGJvYXJkIGl0ZW1zIHdpdGggZWNsaXBzZSBmZWF0dXJlLlxuXG5UaGUgZm9sbG93aW5nIHV0aWxpdGllcyBhcmUgcmVxdWlyZWQsIG9uIGZlZG9yYSxcblxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBncGFzdGUtdWkgZ3Bhc3RlLWxpYnMgb3BlbnNzbFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gZ2l0aHViLiIsCiAgImdldHRleHQtZG9tYWluIjogImVjbGlwc2UtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiZWNsaXBzZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxhY2tqYWNrc2hlbGxhYy9lY2xpcHNlIiwKICAidXVpZCI6ICJlY2xpcHNlQGJsYWNramFja3NoZWxsYWMuY2EiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1i6aq6f59mc1ilx8kwkg431zn1v3an6yvf45qp3ka08y60cq57fm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgZ3Bhc3RlIGludGVyZmFjZSB3aXRoIGNsaXBib2FyZCBpdGVtIGVuY3J5cHRpb25cblxuRWNsaXBzZSBub3cgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb25cbkFkZGVkIGVuY3J5cHRpb24gb2YgY2xpcGJvYXJkIGl0ZW1zIHdpdGggZWNsaXBzZSBmZWF0dXJlLlxuXG5UaGUgZm9sbG93aW5nIHV0aWxpdGllcyBhcmUgcmVxdWlyZWQsIG9uIGZlZG9yYSxcblxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBncGFzdGUtdWkgZ3Bhc3RlLWxpYnMgb3BlbnNzbFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLlxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gZ2l0aHViLiIsCiAgImdldHRleHQtZG9tYWluIjogImVjbGlwc2UtYmxhY2tqYWNrc2hlbGxhYyIsCiAgIm5hbWUiOiAiZWNsaXBzZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxhY2tqYWNrc2hlbGxhYy9lY2xpcHNlIiwKICAidXVpZCI6ICJlY2xpcHNlQGJsYWNramFja3NoZWxsYWMuY2EiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "audio-switcher@albertomosconi", "name": "Audio Switcher 40", "pname": "audio-switcher-40", "description": "Adds a switch for choosing audio input/output to the system menu in GNOME 40. (Makes InputSlider always visible)", "link": "https://extensions.gnome.org/extension/4248/audio-switcher-40/", "shell_version_map": {"38": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "fedoramenu@tofu", "name": "Fedora Menu (Deprecated)", "pname": "fedora-menu", "description": "Fedora Menu - Menu similar to Apple's macOS menu for the GNOME Desktop\n\nDeprecated, please use Tofu Menu (https://extensions.gnome.org/extension/4272/tofu-menu/)", "link": "https://extensions.gnome.org/extension/4251/fedora-menu/", "shell_version_map": {"40": {"version": "6", "sha256": "0n4h6lsiv2lw8ff9aczhqcpxls261xidyr5dzmj1d4h48blil34l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZlZG9yYSBNZW51IC0gTWVudSBzaW1pbGFyIHRvIEFwcGxlJ3MgbWFjT1MgbWVudSBmb3IgdGhlIEdOT01FIERlc2t0b3BcblxuRGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBUb2Z1IE1lbnUgKGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQyNzIvdG9mdS1tZW51LykiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmZWRvcmEtbWVudSIsCiAgIm5hbWUiOiAiRmVkb3JhIE1lbnUgKERlcHJlY2F0ZWQpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy50b2Z1LmZlZG9yYS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJmZWRvcmFtZW51QHRvZnUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "shell-configurator@adeswanta", "name": "Shell Configurator", "pname": "shell-configurator", "description": "Configure and customize GNOME Shell with advanced settings.", "link": "https://extensions.gnome.org/extension/4254/shell-configurator/", "shell_version_map": {"38": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "io.github.mreditor.gnome-shell-extensions.scroll-panel", "name": "Scroll Panel", "pname": "scroll-panel", "description": "This extension allows switching between windows or workspaces by scrolling Gnome Shell topbar with mouse (both in overview and workspace modes).", "link": "https://extensions.gnome.org/extension/4257/scroll-panel/", "shell_version_map": {"40": {"version": "3", "sha256": "0gz0fsszripivgglly03gfl9pa1dj3wcpgwzmimipr79ykbi5h6q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIG9yIHdvcmtzcGFjZXMgYnkgc2Nyb2xsaW5nIEdub21lIFNoZWxsIHRvcGJhciB3aXRoIG1vdXNlIChib3RoIGluIG92ZXJ2aWV3IGFuZCB3b3Jrc3BhY2UgbW9kZXMpLiIsCiAgImdldHRleHQtZG9tYWluIjogImlvLmdpdGh1Yi5tcmVkaXRvci5nbm9tZS1zaGVsbC1leHRlbnNpb25zLnNjcm9sbC1wYW5lbCIsCiAgIm5hbWUiOiAiU2Nyb2xsIFBhbmVsIiwKICAic2VtYW50aWMtdmVyc2lvbiI6ICI0LjEuMStnaXQtMmYxNWI0YiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJpby5naXRodWIubXJlZGl0b3IuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5zY3JvbGwtcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXJFRGl0b3IvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcm9sbC1wYW5lbCIsCiAgInV1aWQiOiAiaW8uZ2l0aHViLm1yZWRpdG9yLmdub21lLXNoZWxsLWV4dGVuc2lvbnMuc2Nyb2xsLXBhbmVsIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "FuzzyClock@kk2020.info", "name": "あいまい時計", "pname": "extension", "description": "トップバーの時計をあいまいにします。", "link": "https://extensions.gnome.org/extension/4260/extension/", "shell_version_map": {"38": {"version": "2", "sha256": "0d5j69khnv6fyywkfkavl0fcrvqnzlqvspbsvvff3vxknl1japhh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MzBjOFx1MzBjM1x1MzBkN1x1MzBkMFx1MzBmY1x1MzA2ZVx1NjY0Mlx1OGEwOFx1MzA5Mlx1MzA0Mlx1MzA0NFx1MzA3ZVx1MzA0NFx1MzA2Ylx1MzA1N1x1MzA3ZVx1MzA1OVx1MzAwMiIsCiAgIm5hbWUiOiAiXHUzMDQyXHUzMDQ0XHUzMDdlXHUzMDQ0XHU2NjQyXHU4YTA4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkZ1enp5Q2xvY2tAa2syMDIwLmluZm8iLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0d5j69khnv6fyywkfkavl0fcrvqnzlqvspbsvvff3vxknl1japhh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MzBjOFx1MzBjM1x1MzBkN1x1MzBkMFx1MzBmY1x1MzA2ZVx1NjY0Mlx1OGEwOFx1MzA5Mlx1MzA0Mlx1MzA0NFx1MzA3ZVx1MzA0NFx1MzA2Ylx1MzA1N1x1MzA3ZVx1MzA1OVx1MzAwMiIsCiAgIm5hbWUiOiAiXHUzMDQyXHUzMDQ0XHUzMDdlXHUzMDQ0XHU2NjQyXHU4YTA4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkZ1enp5Q2xvY2tAa2syMDIwLmluZm8iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "wb@pwall.github.com", "name": "WindowButtons", "pname": "windowbuttons", "description": "This is an extension for Gnome 3.38 which puts minimize and close buttons in the top panel.", "link": "https://extensions.gnome.org/extension/4261/windowbuttons/", "shell_version_map": {"38": {"version": "3", "sha256": "024yhfbibj556mx1f2jzg0zj4p0ywm9rnvaff971pzni22m4biyj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYW4gZXh0ZW5zaW9uIGZvciBHbm9tZSAzLjM4IHdoaWNoIHB1dHMgbWluaW1pemUgYW5kIGNsb3NlIGJ1dHRvbnMgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIldpbmRvd0J1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QV2FsbDIyMjIvV0IiLAogICJ1dWlkIjogIndiQHB3YWxsLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "rippleremove@slippinggitty", "name": "Ripple Remove", "pname": "ripple-remove", "description": "Removes the ripple effect from the Activities hot corner", "link": "https://extensions.gnome.org/extension/4264/ripple-remove/", "shell_version_map": {"40": {"version": "1", "sha256": "1dnk8nfnv5hp8c11fzhn5vscicij4lk9i1vz25fz6sjc3rn1a9pq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgdGhlIHJpcHBsZSBlZmZlY3QgZnJvbSB0aGUgQWN0aXZpdGllcyBob3QgY29ybmVyIiwKICAibmFtZSI6ICJSaXBwbGUgUmVtb3ZlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5zbGlwcGluZ2l0dHkucmlwcGxlcmVtb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJyaXBwbGVyZW1vdmVAc2xpcHBpbmdnaXR0eSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "quickmenu@slippinggitty", "name": "Quick Menu [DEAD]", "pname": "quick-menu", "description": "This is a fork of fedoramenu (which is a fork of Big Sur Menu by fausto) that scrubs references of Fedora by replacing the icon with the GNOME logo.\n\nQuick Menu is a panel applet similar to the Apple menu found on macOS.\n\nEDIT: This extension's purpose is dead. Check out Tofu Menu, which is fedoramenu, but with the ability to change the icon. https://extensions.gnome.org/extension/4272/tofu-menu/", "link": "https://extensions.gnome.org/extension/4266/quick-menu/", "shell_version_map": {"40": {"version": "1", "sha256": "1qla029n79366a7xvg2d9v0wa7272bqj40ggvbjrfsbd8x066aca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBmb3JrIG9mIGZlZG9yYW1lbnUgKHdoaWNoIGlzIGEgZm9yayBvZiBCaWcgU3VyIE1lbnUgYnkgZmF1c3RvKSB0aGF0IHNjcnVicyByZWZlcmVuY2VzIG9mIEZlZG9yYSBieSByZXBsYWNpbmcgdGhlIGljb24gd2l0aCB0aGUgR05PTUUgbG9nby5cblxuUXVpY2sgTWVudSBpcyBhIHBhbmVsIGFwcGxldCBzaW1pbGFyIHRvIHRoZSBBcHBsZSBtZW51IGZvdW5kIG9uIG1hY09TLlxuXG5FRElUOiBUaGlzIGV4dGVuc2lvbidzIHB1cnBvc2UgaXMgZGVhZC4gQ2hlY2sgb3V0IFRvZnUgTWVudSwgd2hpY2ggaXMgZmVkb3JhbWVudSwgYnV0IHdpdGggdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBpY29uLiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjcyL3RvZnUtbWVudS8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWljay1tZW51IiwKICAibmFtZSI6ICJRdWljayBNZW51IFtERUFEXSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuc2xpcHBpbmdpdHR5LnF1aWNrLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2xpcHBpbmdHaXR0eS9xdWlja21lbnUiLAogICJ1dWlkIjogInF1aWNrbWVudUBzbGlwcGluZ2dpdHR5IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "show-desktop-applet@valent-in", "name": "Show Desktop Applet", "pname": "show-desktop-applet", "description": "Minimize/unminimize all open windows with a single click.\n\nForked from https://extensions.gnome.org/extension/1194/show-desktop-button/\n\nFeatures:\n- Windows-like behavior\n- Can be placed at the end of panel\n- Hotkey support (can be activated in settings)", "link": "https://extensions.gnome.org/extension/4267/show-desktop-applet/", "shell_version_map": {"38": {"version": "1", "sha256": "0la28hsib8hvzkf8l4mppqml0pl7s0g620nc7q47cbvgjfs8zh62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZhbGVudC1pbi9TaG93LURlc2t0b3AtQXBwbGV0IiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0QHZhbGVudC1pbiIsCiAgInZlcnNpb24iOiAxCn0="}, "40": {"version": "1", "sha256": "0la28hsib8hvzkf8l4mppqml0pl7s0g620nc7q47cbvgjfs8zh62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZhbGVudC1pbi9TaG93LURlc2t0b3AtQXBwbGV0IiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0QHZhbGVudC1pbiIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "AlphabeticalAppGrid@stuarthayhurst", "name": "Alphabetical App Grid", "pname": "alphabetical-app-grid", "description": "Restore the alphabetical ordering of the app grid", "link": "https://extensions.gnome.org/extension/4269/alphabetical-app-grid/", "shell_version_map": {"38": {"version": "4", "sha256": "1dvkw39a9ihz2wbakk9mi48k3lypasz3290lv7ppqilb0dbp99yx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1dvkw39a9ihz2wbakk9mi48k3lypasz3290lv7ppqilb0dbp99yx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "tofumenu@tofu", "name": "Tofu Menu", "pname": "tofu-menu", "description": "Quick access menu for the GNOME panel with options that help ease the workflow for newcomers and power users alike.\n\nhttps://github.com/tofutech/tofumenu", "link": "https://extensions.gnome.org/extension/4272/tofu-menu/", "shell_version_map": {"40": {"version": "2", "sha256": "05ndbjvvz0v1y8iq6ngqylz4z1ld6q5ibhkr5dh24wqc4wiky30v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyBtZW51IGZvciB0aGUgR05PTUUgcGFuZWwgd2l0aCBvcHRpb25zIHRoYXQgaGVscCBlYXNlIHRoZSB3b3JrZmxvdyBmb3IgbmV3Y29tZXJzIGFuZCBwb3dlciB1c2VycyBhbGlrZS5cblxuaHR0cHM6Ly9naXRodWIuY29tL3RvZnV0ZWNoL3RvZnVtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmVkb3JhLW1lbnUiLAogICJuYW1lIjogIlRvZnUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcudG9mdS5mZWRvcmEtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9mdW1lbnVAdG9mdSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "cryptostash@filidorwiese.nl", "name": "CryptoStash", "pname": "cryptostash", "description": "Keep an eye on the real time value of your crypto coins collections.\n\nYou can create multiple \"stashes\" (portfolios) of coins and monitor the accumulated value in USD or EUR. Or if you prefer, you can simply track the current value of your favorite coin.", "link": "https://extensions.gnome.org/extension/4276/cryptostash/", "shell_version_map": {"38": {"version": "3", "sha256": "1qy8kyif3ayy3dkb8i6525cvpj5pvbw7a3qpinm3fp0471c0xjbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcl91cmwiOiAiaHR0cHM6Ly9maWxpZG9yd2llc2UubmwiLAogICJkZXNjcmlwdGlvbiI6ICJLZWVwIGFuIGV5ZSBvbiB0aGUgcmVhbCB0aW1lIHZhbHVlIG9mIHlvdXIgY3J5cHRvIGNvaW5zIGNvbGxlY3Rpb25zLlxuXG5Zb3UgY2FuIGNyZWF0ZSBtdWx0aXBsZSBcInN0YXNoZXNcIiAocG9ydGZvbGlvcykgb2YgY29pbnMgYW5kIG1vbml0b3IgdGhlIGFjY3VtdWxhdGVkIHZhbHVlIGluIFVTRCBvciBFVVIuIE9yIGlmIHlvdSBwcmVmZXIsIHlvdSBjYW4gc2ltcGx5IHRyYWNrIHRoZSBjdXJyZW50IHZhbHVlIG9mIHlvdXIgZmF2b3JpdGUgY29pbi4iLAogICJuYW1lIjogIkNyeXB0b1N0YXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNyeXB0by1zdGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ0YWciOiAxLjIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmlsaWRvcndpZXNlL2dub21lLXNoZWxsLWNyeXB0by1zdGFzaCIsCiAgInV1aWQiOiAiY3J5cHRvc3Rhc2hAZmlsaWRvcndpZXNlLm5sIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "xmlfix@pwall.github.com", "name": "XML-Fix", "pname": "xml-fix", "description": "Fixes the XML-Codes displaying instead of the characters on notifications.", "link": "https://extensions.gnome.org/extension/4279/xml-fix/", "shell_version_map": {"38": {"version": "1", "sha256": "0sksz7n2acvk9kg696qgd98m4d7221wgxvfg6chlzxfi2mx3yddh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeGVzIHRoZSBYTUwtQ29kZXMgZGlzcGxheWluZyBpbnN0ZWFkIG9mIHRoZSBjaGFyYWN0ZXJzIG9uIG5vdGlmaWNhdGlvbnMuIiwKICAibmFtZSI6ICJYTUwtRml4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFdhbGwyMjIyL1hNTEZpeCIsCiAgInV1aWQiOiAieG1sZml4QHB3YWxsLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "gnometoggle@foreverxml.github.io", "name": "Gnome Toggle", "pname": "gnome-toggle", "description": "Turn on your GNOME dark mode! (For up-to-date versions, download from GitHub.)", "link": "https://extensions.gnome.org/extension/4287/gnome-toggle/", "shell_version_map": {"38": {"version": "1", "sha256": "1a1qvrdq0xglr0lf4pglaxhn03k9qxhh77n4g0d51r419l4y6n2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm4gb24geW91ciBHTk9NRSBkYXJrIG1vZGUhIChGb3IgdXAtdG8tZGF0ZSB2ZXJzaW9ucywgZG93bmxvYWQgZnJvbSBHaXRIdWIuKSIsCiAgIm5hbWUiOiAiR25vbWUgVG9nZ2xlIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImZvcmV2ZXJ4bWxAdHV0YS5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JldmVyeG1sL2dub21lLXRvZ2dsZSIsCiAgInV1aWQiOiAiZ25vbWV0b2dnbGVAZm9yZXZlcnhtbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "1a1qvrdq0xglr0lf4pglaxhn03k9qxhh77n4g0d51r419l4y6n2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm4gb24geW91ciBHTk9NRSBkYXJrIG1vZGUhIChGb3IgdXAtdG8tZGF0ZSB2ZXJzaW9ucywgZG93bmxvYWQgZnJvbSBHaXRIdWIuKSIsCiAgIm5hbWUiOiAiR25vbWUgVG9nZ2xlIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImZvcmV2ZXJ4bWxAdHV0YS5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JldmVyeG1sL2dub21lLXRvZ2dsZSIsCiAgInV1aWQiOiAiZ25vbWV0b2dnbGVAZm9yZXZlcnhtbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "instantworkspaceswitcher@amalantony.net", "name": "Disable Workspace Switch Animation for GNOME 40+", "pname": "disable-workspace-switch-animation-for-gnome-40", "description": "Disables the workspace switch animation while preserving all other animations - instantly switch between workspaces with keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4290/disable-workspace-switch-animation-for-gnome-40/", "shell_version_map": {"40": {"version": "2", "sha256": "1iz7ik036567skkiklra6kfw8mxgv1nxfgqwc9sni0xk5xm4lgf8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoIGFuaW1hdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBvdGhlciBhbmltYXRpb25zIC0gaW5zdGFudGx5IHN3aXRjaCBiZXR3ZWVuIHdvcmtzcGFjZXMgd2l0aCBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIFdvcmtzcGFjZSBTd2l0Y2ggQW5pbWF0aW9uIGZvciBHTk9NRSA0MCsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1hbGFudG9ueS9nbm9tZS1zaGVsbC1leHRlbnNpb24taW5zdGFudC13b3Jrc3BhY2Utc3dpdGNoZXIiLAogICJ1dWlkIjogImluc3RhbnR3b3Jrc3BhY2Vzd2l0Y2hlckBhbWFsYW50b255Lm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "top-panel-notification-icons@5th0.github.com", "name": "Top Panel Notification Icons", "pname": "top-panel-notification-icons", "description": "Display notification icons in the Top Panel", "link": "https://extensions.gnome.org/extension/4293/top-panel-notification-icons/", "shell_version_map": {"38": {"version": "1", "sha256": "189wyvbyzhcbf2ipq2yf51b4pl1ycm3m118h63idgapjazndgkp7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbm90aWZpY2F0aW9uIGljb25zIGluIHRoZSBUb3AgUGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcC1wYW5lbC1ub3RpZmljYXRpb24taWNvbnNANXRoMC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "1", "sha256": "189wyvbyzhcbf2ipq2yf51b4pl1ycm3m118h63idgapjazndgkp7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbm90aWZpY2F0aW9uIGljb25zIGluIHRoZSBUb3AgUGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvcC1wYW5lbC1ub3RpZmljYXRpb24taWNvbnNANXRoMC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "clean-system-menu@astrapi.de", "name": "Clean System Menu", "pname": "clean-system-menu", "description": "Cleanup the System Menu from Power Options", "link": "https://extensions.gnome.org/extension/4298/clean-system-menu/", "shell_version_map": {"40": {"version": "1", "sha256": "1cdja7aj7r7bs4cac1x2rxx0wwj2ssd0fgqnvaglwgvx6zr989cl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsZWFudXAgdGhlIFN5c3RlbSBNZW51IGZyb20gUG93ZXIgT3B0aW9ucyIsCiAgIm5hbWUiOiAiQ2xlYW4gU3lzdGVtIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNsZWFuLXN5c3RlbS1tZW51QGFzdHJhcGkuZGUiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+]
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/freon/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix
index f30e2f6f8a25..9a884ac78ac7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/freon/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, glib }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-freon";
-  version = "40";
+  pname = "gnome-shell-extension-freon";
+  version = "44";
 
   uuid = "freon@UshakovVasilii_Github.yahoo.com";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "UshakovVasilii";
     repo = "gnome-shell-extension-freon";
     rev = "EGO-${version}";
-    sha256 = "0ak6f5dds9kk3kqww681gs3l1mj3vf22icrvb5m257s299rq8yzl";
+    sha256 = "sha256-4DYAIC9N5id3vQe0WaOFP+MymsrPK18hbYqO4DjG+2U=";
   };
 
   nativeBuildInputs = [ glib ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix
index f8a8803435ba..9ba9ddaf09b1 100755
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/fuzzy-app-search/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix
@@ -1,22 +1,20 @@
-{ lib, stdenv, fetchFromGitLab, gnome3, glib }:
+{ lib, stdenv, fetchFromGitLab, gnome, glib }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-fuzzy-app-search";
-  version = "4";
+  version = "4.0.1";
 
   src = fetchFromGitLab {
     owner = "Czarlie";
     repo = "gnome-fuzzy-app-search";
-    rev = "da9c15d39958d9c3b38df3b616fd40b85aed24e5";
-    sha256 = "1r3qha530s97x818znn1wi76f4x9bhlgi7jlxfwjnrwys62cv5fn";
+    rev = "v${version}";
+    sha256 = "127n3jc5d6cl0yrpjf8acdj76br97knks1wx4f6jcswkx9x47w0a";
   };
 
   uuid = "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com";
 
   nativeBuildInputs = [ glib ];
 
-  patches = [ ./fix-desktop-file-paths.patch ];
-
   makeFlags = [ "INSTALL_PATH=$(out)/share/gnome-shell/extensions" ];
 
   meta = with lib; {
@@ -24,6 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ rhoriguchi ];
     homepage = "https://gitlab.com/Czarlie/gnome-fuzzy-app-search";
-    broken = versionOlder gnome3.gnome-shell.version "3.18";
+    broken = versionOlder gnome.gnome-shell.version "3.18";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix
index cb8ece571e71..8906ebcddeca 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix
@@ -12,14 +12,14 @@
 , glib-networking
 , gtk3
 , openssh
-, gnome3
+, gnome
 , gjs
 , nixosTests
 }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-gsconnect";
-  version = "44";
+  pname = "gnome-shell-extension-gsconnect";
+  version = "46";
 
   outputs = [ "out" "installedTests" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "andyholmes";
     repo = "gnome-shell-extension-gsconnect";
     rev = "v${version}";
-    sha256 = "C+8mhK4UOs2iZplDyY45bCX0mMGgwVV/ZfaPpYUlWxA=";
+    sha256 = "161379kipr6z6gbhchb5b17djrkg5fbvblyyabzkc2gv05r3h6fw";
   };
 
   patches = [
@@ -55,11 +55,11 @@ stdenv.mkDerivation rec {
     gtk3
     gsound
     gjs # for running daemon
-    gnome3.evolution-data-server # for libebook-contacts typelib
+    gnome.evolution-data-server # for libebook-contacts typelib
   ];
 
   mesonFlags = [
-    "-Dgnome_shell_libdir=${gnome3.gnome-shell}/lib"
+    "-Dgnome_shell_libdir=${gnome.gnome-shell}/lib"
     "-Dgsettings_schemadir=${glib.makeSchemaPath (placeholder "out") "${pname}-${version}"}"
     "-Dchrome_nmhdir=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts"
     "-Dchromium_nmhdir=${placeholder "out"}/etc/chromium/native-messaging-hosts"
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch
index 58c02a92eb2e..58c02a92eb2e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/installed-tests-path.patch b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/installed-tests-path.patch
index 78e1ad96d74c..78e1ad96d74c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/installed-tests-path.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/installed-tests-path.patch
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix
new file mode 100644
index 000000000000..3430dff1355b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-gtile";
+  version = "44";
+
+  src = fetchFromGitHub {
+    owner = "gTile";
+    repo = "gTile";
+    rev = "V${version}";
+    sha256 = "0i00psc1ky70zljd14jzr627y7nd8xwnwrh4xpajl1f6djabh12s";
+  };
+
+  uuid = "gTile@vibou";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/gnome-shell/extensions/${uuid}
+    cp -r * $out/share/gnome-shell/extensions/${uuid}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A window tiling extension for Gnome. This is the new official home of the vibou.gTile extension.";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ mdsp ];
+    platforms = platforms.linux;
+    homepage = "https://github.com/gTile/gTile";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix
new file mode 100644
index 000000000000..aaa5870996ab
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-hot-edge";
+  version = "jdoda";
+
+  src = fetchFromGitHub {
+    owner = "jdoda";
+    repo = "hotedge";
+    rev = "bb7f651becea5287241caf7cda246a68ab07dac8";
+    sha256 = "oeTs0kRan6b5relxzhK1IKbV0Yv2d5YdvvUPJ3fM9ik=";
+  };
+
+  dontBuild = true;
+
+  uuid = "hotedge@jonathan.jdoda.ca";
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/share/gnome-shell/extensions/${uuid} extension.js metadata.json stylesheet.css
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Replace the top-left hot corner with a bottom hot edge";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ jtojnar ];
+    homepage = "https://github.com/jdoda/hotedge";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix
index 00c67421e54a..820d96988c9a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-icon-hider";
@@ -24,8 +24,8 @@ stdenv.mkDerivation rec {
     description = "Icon Hider is a GNOME Shell extension for managing status area items";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jonafato ];
-    platforms = gnome3.gnome-shell.meta.platforms;
+    platforms = gnome.gnome-shell.meta.platforms;
     homepage = "https://github.com/ikalnytskyi/gnome-shell-extension-icon-hider";
-    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
+    broken = versionAtLeast gnome.gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
index 82551efef3c7..95477222163c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, glib }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-impatience";
+  pname = "gnome-shell-extension-impatience";
   version = "unstable-2019-09-23";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
new file mode 100644
index 000000000000..207ba6979c90
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -0,0 +1,40 @@
+{ callPackage }:
+{
+  appindicator = callPackage ./appindicator { };
+  arcmenu = callPackage ./arcmenu { };
+  caffeine = callPackage ./caffeine { };
+  clipboard-indicator = callPackage ./clipboard-indicator { };
+  clock-override = callPackage ./clock-override { };
+  dash-to-dock = callPackage ./dash-to-dock { };
+  dash-to-panel = callPackage ./dash-to-panel { };
+  disable-unredirect = callPackage ./disable-unredirect { };
+  draw-on-your-screen = callPackage ./draw-on-your-screen { };
+  drop-down-terminal = callPackage ./drop-down-terminal { };
+  dynamic-panel-transparency = callPackage ./dynamic-panel-transparency { };
+  easyScreenCast = callPackage ./EasyScreenCast { };
+  emoji-selector = callPackage ./emoji-selector { };
+  freon = callPackage ./freon { };
+  fuzzy-app-search = callPackage ./fuzzy-app-search { };
+  gsconnect = callPackage ./gsconnect { };
+  hot-edge = callPackage ./hot-edge { };
+  icon-hider = callPackage ./icon-hider { };
+  impatience = callPackage ./impatience { };
+  material-shell = callPackage ./material-shell { };
+  mpris-indicator-button = callPackage ./mpris-indicator-button { };
+  night-theme-switcher = callPackage ./night-theme-switcher { };
+  no-title-bar = callPackage ./no-title-bar { };
+  noannoyance = callPackage ./noannoyance { };
+  paperwm = callPackage ./paperwm { };
+  pidgin-im-integration = callPackage ./pidgin-im-integration { };
+  remove-dropdown-arrows = callPackage ./remove-dropdown-arrows { };
+  sound-output-device-chooser = callPackage ./sound-output-device-chooser { };
+  system-monitor = callPackage ./system-monitor { };
+  taskwhisperer = callPackage ./taskwhisperer { };
+  tilingnome = callPackage ./tilingnome { };
+  timepp = callPackage ./timepp { };
+  topicons-plus = callPackage ./topicons-plus { };
+  unite = callPackage ./unite { };
+  window-corner-preview = callPackage ./window-corner-preview { };
+  window-is-ready-remover = callPackage ./window-is-ready-remover { };
+  workspace-matrix = callPackage ./workspace-matrix { };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/material-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/material-shell/default.nix
index 87b9a3c1507c..9b683c1af6b5 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/material-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/material-shell/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, gnome3 }:
+{ stdenv, lib, fetchFromGitHub, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-material-shell";
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ benley ];
     homepage = "https://github.com/material-shell/material-shell";
-    platforms = gnome3.gnome-shell.meta.platforms;
+    platforms = gnome.gnome-shell.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/mpris-indicator-button/default.nix
index 9ab2168d2dca..8d9faaa89add 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/mpris-indicator-button/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , nix-update-script
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -34,9 +34,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A simple MPRIS indicator button for GNOME Shell";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ worldofpeace ];
-    platforms = gnome3.gnome-shell.meta.platforms;
+    maintainers = with maintainers; [ ];
+    platforms = gnome.gnome-shell.meta.platforms;
     homepage = "https://github.com/JasonLG1979/gnome-shell-extension-mpris-indicator-button";
-    broken = versionOlder gnome3.gnome-shell.version "3.34";
+    broken = versionOlder gnome.gnome-shell.version "3.34";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
index f663aa8977b1..fd0d2dbb5784 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitLab, glib, gnome3, unzip }:
+{ lib, stdenv, fetchFromGitLab, glib, gnome, unzip }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-night-theme-switcher";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ unzip ];
-  buildInputs = [ glib gnome3.gnome-shell ];
+  buildInputs = [ glib gnome.gnome-shell ];
 
   uuid = "nightthemeswitcher@romainvigier.fr";
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix
index ad588be18ce9..ad588be18ce9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/fix-paths.patch
index fb2d3d57e51d..fb2d3d57e51d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/noannoyance/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/noannoyance/default.nix
index 4763d9057551..1a53e6abd550 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/noannoyance/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/noannoyance/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  pname = "noannoyance";
+  pname = "gnome-shell-extension-noannoyance";
   version = "unstable-2021-01-17";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix
index 201628b4b424..201628b4b424 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
index d16477403474..93ffcda830a1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, glib, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, glib, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-pidgin-im-integration";
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
-    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
+    broken = versionAtLeast gnome.gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/remove-dropdown-arrows/default.nix
index e310f5dcf10c..e310f5dcf10c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/remove-dropdown-arrows/default.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
index e58d8ce6e42f..f01a2cd545e0 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-sound-output-device-chooser";
-  version = "35";
+  version = "38";
 
   src = fetchFromGitHub {
     owner = "kgshank";
     repo = "gse-sound-output-device-chooser";
     rev = version;
-    sha256 = "sha256-Yl5ut6kJAkAAdCBiNFpwDgshXCLMmFH3/zhnFGpyKqs=";
+    sha256 = "sha256-LZ+C9iK+j7+DEscYCIObxXc0Bn0Z0xSsEFMZxc8REWA=";
   };
 
   patches = [
@@ -28,11 +28,13 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   uuid = "sound-output-device-chooser@kgshank.net";
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
-    runHook postInstall
+
+  makeFlags = [
+    "INSTALL_DIR=${placeholder "out"}/share/gnome-shell/extensions"
+  ];
+
+  preInstall = ''
+    mkdir -p ${placeholder "out"}/share/gnome-shell/extensions
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/fix-paths.patch
index 1971bf1e5e74..1971bf1e5e74 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix
index 3935150c57e5..d141ab9dcaa4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }:
+{ lib, stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-system-monitor";
-  version = "unstable-2021-04-08";
+  pname = "gnome-shell-extension-system-monitor";
+  version = "unstable-2021-05-04";
 
   src = fetchFromGitHub {
     owner = "paradoxxxzero";
     repo = "gnome-shell-system-monitor-applet";
-    rev = "942603da39de12f50b1f86efbde92d7526d1290e";
-    sha256 = "0lzb7064bigw2xsqkzr8qfhp9wfmxyi3823j2782v99jpcz423aw";
+    rev = "bc38ccf49ac0ffae0fc0436f3c2579fc86949f10";
+    sha256 = "0yb5sb2xv4m18a24h4daahnxgnlmbfa0rfzic0zs082qv1kfi5h8";
   };
 
   buildInputs = [
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   patches = [
     (substituteAll {
       src = ./paths_and_nonexisting_dirs.patch;
-      clutter_path = gnome3.mutter.libdir; # this should not be used in settings but 🤷‍♀️
+      clutter_path = gnome.mutter.libdir; # this should not be used in settings but 🤷‍♀️
       gtop_path = "${libgtop}/lib/girepository-1.0";
       glib_net_path = "${glib-networking}/lib/girepository-1.0";
     })
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch b/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/paths_and_nonexisting_dirs.patch
index 280af965af3f..280af965af3f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/paths_and_nonexisting_dirs.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix
index 68d07e2d1429..68d07e2d1429 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/fix-paths.patch
index 2ea54f4b0897..2ea54f4b0897 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/taskwhisperer/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix
index dcea4c69ff82..c1ca77d9d73f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, glib, gnome3 }:
+{ stdenv, lib, fetchFromGitHub, glib, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-tilingnome-unstable";
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ benley ];
     homepage = "https://github.com/rliang/gnome-shell-extension-tilingnome";
-    platforms = gnome3.gnome-shell.meta.platforms;
+    platforms = gnome.gnome-shell.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/timepp/default.nix
index 94b8540c1bf3..cb4234a2513c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/timepp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-timepp";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix
index 084548e1a105..084548e1a105 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
index a2f4e81924ef..228cb7061505 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/unite/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, gnome3, fetchFromGitHub, xprop, glib }:
+{ lib, stdenv, gnome, fetchFromGitHub, xprop, glib }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-unite";
-  version = "52";
+  version = "54";
 
   src = fetchFromGitHub {
     owner = "hardpixel";
     repo = "unite-shell";
     rev = "v${version}";
-    sha256 = "1zahng79m2gw27fb2sw8zyk2n07qc0hbn02g5mfqzhwk62g97v4y";
+    sha256 = "sha256-Ys2kWPj/FugW/LkvLAZdbj7Ufg/KShC+EX6QrjKNVH8=";
   };
 
   uuid = "unite@hardpixel.eu";
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ rhoriguchi ];
     homepage = "https://github.com/hardpixel/unite-shell";
-    broken = versionOlder gnome3.gnome-shell.version "3.32";
+    broken = versionOlder gnome.gnome-shell.version "3.32";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py b/nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py
new file mode 100755
index 000000000000..f109e315c94a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py
@@ -0,0 +1,284 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../.. -i python3 -p python3
+
+import json
+import urllib.request
+import urllib.error
+from typing import List, Dict, Optional, Any, Tuple
+import logging
+from operator import itemgetter
+import subprocess
+import zipfile
+import io
+import base64
+
+# We don't want all those deprecated legacy extensions
+# Group extensions by GNOME "major" version for compatibility reasons
+supported_versions = {
+    "38": "3.38",
+    "40": "40",
+}
+
+
+# Some type alias to increase readility of complex compound types
+PackageName = str
+ShellVersion = str
+Uuid = str
+ExtensionVersion = int
+
+
+# Keep track of all names that have been used till now to detect collisions.
+# This works because we deterministically process all extensions in historical order
+# The outer dict level is the shell version, as we are tracking duplicates only per same Shell version.
+# key: shell version, value: Dict with key: pname, value: list of UUIDs with that pname
+package_name_registry: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {}
+for shell_version in supported_versions.keys():
+    package_name_registry[shell_version] = {}
+
+
+def fetch_extension_data(uuid: str, version: str) -> Tuple[str, str]:
+    """
+    Download the extension and hash it. We use `nix-prefetch-url` for this for efficiency reasons.
+    Returns a tuple with the hash (Nix-compatible) of the zip file's content and the base64-encoded content of its metadata.json.
+    """
+
+    # The download URLs follow this schema
+    uuid = uuid.replace("@", "")
+    url: str = f"https://extensions.gnome.org/extension-data/{uuid}.v{version}.shell-extension.zip"
+
+    # Yes, we download that file three times:
+
+    # The first time is for the maintainter, so they may have a personal backup to fix potential issues
+    # subprocess.run(
+    #     ["wget", url], capture_output=True, text=True
+    # )
+
+    # The second time, we extract the metadata.json because we need it too
+    with urllib.request.urlopen(url) as response:
+        data = zipfile.ZipFile(io.BytesIO(response.read()), 'r')
+        metadata = base64.b64encode(data.read('metadata.json')).decode()
+
+    # The third time is to get the file into the store and to get its hash
+    hash = subprocess.run(
+        ["nix-prefetch-url", "--unpack", url], capture_output=True, text=True
+    ).stdout.strip()
+
+    return hash, metadata
+
+
+def generate_extension_versions(
+    extension_version_map: Dict[ShellVersion, ExtensionVersion], uuid: str
+) -> Dict[ShellVersion, Dict[str, str]]:
+    """
+    Takes in a mapping from shell versions to extension versions and transforms it the way we need it:
+    - Only take one extension version per GNOME Shell major version (as per `supported_versions`)
+    - Filter out versions that only support old GNOME versions
+    - Download the extension and hash it
+    """
+    extension_versions: Dict[ShellVersion, Dict[str, str]] = {}
+    for shell_version, version_prefix in supported_versions.items():
+        # Newest compatible extension version
+        extension_version: Optional[int] = max(
+            (
+                int(ext_ver)
+                for shell_ver, ext_ver in extension_version_map.items()
+                if (shell_ver.startswith(version_prefix))
+            ),
+            default=None,
+        )
+        # Extension is not compatible with this GNOME version
+        if not extension_version:
+            continue
+        logging.debug(
+            f"[{shell_version}] Downloading '{uuid}' v{extension_version}"
+        )
+        sha256, metadata = fetch_extension_data(uuid, str(extension_version))
+        extension_versions[shell_version] = {
+            "version": str(extension_version),
+            "sha256": sha256,
+            # The downloads are impure, their metadata.json may change at any time.
+            # Thus, be back it up / pin it to remain deterministic
+            # Upstream issue: https://gitlab.gnome.org/Infrastructure/extensions-web/-/issues/137
+            "metadata": metadata,
+        }
+    return extension_versions
+
+
+def pname_from_url(url: str) -> Tuple[str, str]:
+    """
+    Parse something like "/extension/1475/battery-time/" and output ("battery-time", "1475")
+    """
+
+    url = url.split("/")  # type: ignore
+    return (url[3], url[2])
+
+
+def process_extension(extension: Dict[str, Any]) -> Optional[Dict[str, Any]]:
+    """
+    Process an extension. It takes in raw scraped data and downloads all the necessary information that buildGnomeExtension.nix requires
+
+        Input: a json object of one extension queried from the site. It has the following schema (only important key listed):
+            {
+                "uuid": str,
+                "name": str,
+                "description": str,
+                "link": str,
+                "shell_version_map": {
+                    str: { "version": int, … },
+                    …
+                },
+                …
+            }
+
+            "uuid" is an extension UUID that looks like this (most of the time): "extension-name@username.domain.tld".
+                   Don't make any assumptions on it, and treat it like an opaque string!
+            "link" follows the following schema: "/extension/$number/$string/"
+                   The number is monotonically increasing and unique to every extension.
+                   The string is usually derived from the extensions's name (but shortened, kebab-cased and URL friendly).
+                   It may diverge from the actual name.
+            The keys of "shell_version_map" are GNOME Shell version numbers.
+
+        Output: a json object to be stored, or None if the extension should be skipped. Schema:
+            {
+                "uuid": str,
+                "name": str,
+                "pname": str,
+                "description": str,
+                "link": str,
+                "shell_version_map": {
+                    str: { "version": int, "sha256": str, "metadata": <hex> },
+                    …
+                }
+            }
+
+            Only "uuid" gets passed along unmodified. "name", "description" and "link" are taken from the input, but sanitized.
+            "pname" gets generated from other fields and "shell_version_map" has a completely different structure than the input
+            field with the same name.
+    """
+    uuid = extension["uuid"]
+
+    # Yeah, there are some extensions without any releases
+    if not extension["shell_version_map"]:
+        return None
+    logging.info(f"Processing '{uuid}'")
+
+    # Input is a mapping str -> { version: int, … }
+    # We want to map shell versions to extension versions
+    shell_version_map: Dict[ShellVersion, int] = {
+        k: v["version"] for k, v in extension["shell_version_map"].items()
+    }
+    # Transform shell_version_map to be more useful for us. Also throw away unwanted versions
+    shell_version_map: Dict[ShellVersion, Dict[str, str]] = generate_extension_versions(shell_version_map, uuid)  # type: ignore
+
+    # No compatible versions found
+    if not shell_version_map:
+        return None
+
+    # Fetch a human-readable name for the package.
+    (pname, _pname_id) = pname_from_url(extension["link"])
+
+    for shell_version in shell_version_map.keys():
+        if pname in package_name_registry[shell_version]:
+            logging.warning(f"Package name '{pname}' is colliding.")
+            package_name_registry[shell_version][pname].append(uuid)
+        else:
+            package_name_registry[shell_version][pname] = [uuid]
+
+    return {
+        "uuid": uuid,
+        "name": extension["name"],
+        "pname": pname,
+        "description": extension["description"],
+        "link": "https://extensions.gnome.org" + extension["link"],
+        "shell_version_map": shell_version_map,
+    }
+
+
+def scrape_extensions_index() -> List[Dict[str, Any]]:
+    """
+    Scrape the list of extensions by sending search queries to the API. We simply go over it
+    page by page until we hit a non-full page or a 404 error.
+
+    The returned list is sorted by the age of the extension, in order to be deterministic.
+    """
+    page = 0
+    extensions = []
+    while True:
+        page += 1
+        logging.info("Scraping page " + str(page))
+        try:
+            with urllib.request.urlopen(
+                f"https://extensions.gnome.org/extension-query/?n_per_page=25&page={page}"
+            ) as response:
+                data = json.loads(response.read().decode())["extensions"]
+                responseLength = len(data)
+
+                for extension in data:
+                    extensions.append(extension)
+
+                # If our page isn't "full", it must have been the last one
+                if responseLength < 25:
+                    logging.debug(
+                        f"\tThis page only has {responseLength} entries, so it must be the last one."
+                    )
+                    break
+        except urllib.error.HTTPError as e:
+            if e.code == 404:
+                # We reached past the last page and are done now
+                break
+            else:
+                raise
+
+    # `pk` is the primary key in the extensions.gnome.org database. Sorting on it will give us a stable,
+    # deterministic ordering.
+    extensions.sort(key=itemgetter("pk"))
+    return extensions
+
+
+if __name__ == "__main__":
+    logging.basicConfig(level=logging.DEBUG)
+
+    raw_extensions = scrape_extensions_index()
+
+    logging.info(f"Downloaded {len(raw_extensions)} extensions. Processing …")
+    processed_extensions: List[Dict[str, Any]] = []
+    for num, raw_extension in enumerate(raw_extensions):
+        processed_extension = process_extension(raw_extension)
+        if processed_extension:
+            processed_extensions.append(processed_extension)
+            logging.debug(f"Processed {num + 1} / {len(raw_extensions)}")
+
+    logging.info(
+        f"Done. Writing results to extensions.json ({len(processed_extensions)} extensions in total)"
+    )
+
+    with open("extensions.json", "w") as out:
+        # Manually pretty-print the outer level, but then do one compact line per extension
+        # This allows for the diffs to be manageable (one line of change per extension) despite their quantity
+        for index, extension in enumerate(processed_extensions):
+            if index == 0:
+                out.write("[ ")
+            else:
+                out.write(", ")
+            json.dump(extension, out, ensure_ascii=False)
+            out.write("\n")
+        out.write("]\n")
+
+    with open("extensions.json", "r") as out:
+        # Check that the generated file actually is valid JSON, just to be sure
+        json.load(out)
+
+    logging.info(
+        "Done. Writing name collisions to collisions.json (please check manually)"
+    )
+    with open("collisions.json", "w") as out:
+        # Filter out those that are not duplicates
+        package_name_registry_filtered: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {
+            # The outer level keys are shell versions
+            shell_version: {
+                # The inner keys are extension names, with a list of all extensions with that name as value.
+                pname: extensions for pname, extensions in collisions.items() if len(extensions) > 1
+            } for shell_version, collisions in package_name_registry.items()
+        }
+        json.dump(package_name_registry_filtered, out, indent=2, ensure_ascii=False)
+        out.write("\n")
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
index 42f226e96777..0e71345bb8a7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-window-corner-preview";
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ jtojnar ];
     homepage = "https://github.com/medenagan/window-corner-preview";
-    broken = lib.versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
+    broken = lib.versionAtLeast gnome.gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/window-is-ready-remover/default.nix
index 3f0e9e71b571..3f0e9e71b571 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/window-is-ready-remover/default.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/workspace-matrix/default.nix
index eb1d6e7e319c..eb1d6e7e319c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/workspace-matrix/default.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/find-latest-version.py b/nixpkgs/pkgs/desktops/gnome/find-latest-version.py
index ad80af24bcb8..3078999e3e5b 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/find-latest-version.py
+++ b/nixpkgs/pkgs/desktops/gnome/find-latest-version.py
@@ -3,14 +3,21 @@ import math
 import json
 import requests
 import sys
+from libversion import Version
+from typing import Optional
 
 
 def version_to_list(version):
     return list(map(int, version.split(".")))
 
 
-def odd_unstable(version_str, selected):
-    version = version_to_list(version_str)
+def odd_unstable(version: Version, selected):
+    try:
+        version = version_to_list(version.value)
+    except:
+        # Failing to parse as a list of numbers likely means the version contains a string tag like “beta”, therefore it is not a stable release.
+        return selected != "stable"
+
     if len(version) < 2:
         return True
 
@@ -23,28 +30,34 @@ def odd_unstable(version_str, selected):
         return True
 
 
-def no_policy(version, selected):
+def tagged(version: Version, selected):
+    if selected == "stable":
+        return not ("alpha" in version.value or "beta" in version.value or "rc" in version.value)
+    else:
+        return True
+
+
+def no_policy(version: Version, selected):
     return True
 
 
 version_policies = {
     "odd-unstable": odd_unstable,
+    "tagged": tagged,
     "none": no_policy,
 }
 
 
-def make_version_policy(version_predicate, selected, upper_bound):
+def make_version_policy(version_predicate, selected, upper_bound: Optional[Version]):
     if not upper_bound:
-        upper_bound = [math.inf, math.inf]
+        return lambda version: version_predicate(version, selected)
     else:
-        upper_bound = version_to_list(upper_bound)
-
-    return lambda version: version_predicate(version, selected) and version_to_list(version) < upper_bound
+        return lambda version: version_predicate(version, selected) and version < upper_bound
 
 
 parser = argparse.ArgumentParser(description="Find latest version for a GNOME package by crawling their release server.")
 parser.add_argument("package-name", help="Name of the directory in https://ftp.gnome.org/pub/GNOME/sources/ containing the package.")
-parser.add_argument("version-policy", help="Policy determining which versions are considered stable. For most GNOME packages, odd minor versions are unstable but there are exceptions.", choices=version_policies.keys(), nargs="?", default="odd-unstable")
+parser.add_argument("version-policy", help="Policy determining which versions are considered stable. GNOME packages usually denote stability by alpha/beta/rc tag in the version. For older packages, odd minor versions are unstable but there are exceptions.", choices=version_policies.keys(), nargs="?", default="tagged")
 parser.add_argument("requested-release", help="Most of the time, we will want to update to stable version but sometimes it is useful to test.", choices=["stable", "unstable"], nargs="?", default="stable")
 parser.add_argument("--upper-bound", dest="upper-bound", help="Only look for versions older than this one (useful for pinning dependencies).")
 
@@ -55,6 +68,8 @@ if __name__ == "__main__":
     package_name = getattr(args, "package-name")
     requested_release = getattr(args, "requested-release")
     upper_bound = getattr(args, "upper-bound")
+    if upper_bound:
+        upper_bound = Version(upper_bound)
     version_predicate = version_policies[getattr(args, "version-policy")]
     version_policy = make_version_policy(version_predicate, requested_release, upper_bound)
 
@@ -64,11 +79,11 @@ if __name__ == "__main__":
         print("Unknown format of cache.json file.", file=sys.stderr)
         sys.exit(1)
 
-    versions = cache[2][package_name]
-    versions = sorted(filter(version_policy, versions), key=version_to_list)
+    versions = map(Version, cache[2][package_name])
+    versions = sorted(filter(version_policy, versions))
 
     if len(versions) == 0:
         print("No versions matched.", file=sys.stderr)
         sys.exit(1)
 
-    print(versions[-1])
+    print(versions[-1].value)
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix b/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
index bb513df4c7a9..bdd7c9cc1a32 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchFromGitLab
+, nix-update-script
 , pkg-config
-, gnome3
 , itstool
 , gtk3
 , wrapGAppsHook
@@ -19,14 +19,14 @@
 
 stdenv.mkDerivation rec {
   pname = "aisleriot";
-  version = "3.22.13";
+  version = "3.22.16";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "05k84bbgrrxchxg08l1jjcz384kpjdmxd24g0wnf731aa9zcnp5k";
+    sha256 = "0arjnm5kgnb4pir53hlm94iym80d0srs256sm2hwhwwc5fr1w79i";
   };
 
   nativeBuildInputs = [
@@ -61,9 +61,8 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
+    updateScript = nix-update-script {
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/atomix/default.nix b/nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix
index 802d92bf19a0..43d9aaa7680c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/atomix/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, meson, ninja, pkg-config, wrapGAppsHook, python3
-, gettext, gnome3, glib, gtk3, libgnome-games-support, gdk-pixbuf }:
+, gettext, gnome, glib, gtk3, libgnome-games-support, gdk-pixbuf }:
 
 let
   pname = "atomix";
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ meson ninja pkg-config gettext wrapGAppsHook python3 ];
-  buildInputs = [ glib gtk3 gdk-pixbuf libgnome-games-support gnome3.adwaita-icon-theme ];
+  buildInputs = [ glib gtk3 gdk-pixbuf libgnome-games-support gnome.adwaita-icon-theme ];
 
   postPatch = ''
     chmod +x meson_post_install.py
@@ -21,9 +21,9 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/five-or-more/default.nix b/nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix
index 9f6ea6aac04c..f01d137979ec 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/five-or-more/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gnome3, gtk3, wrapGAppsHook
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gnome, gtk3, wrapGAppsHook
 , librsvg, libgnome-games-support, gettext, itstool, libxml2, python3, vala }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     vala
   ];
   buildInputs = [
-    gtk3 librsvg libgnome-games-support gnome3.adwaita-icon-theme
+    gtk3 librsvg libgnome-games-support gnome.adwaita-icon-theme
   ];
 
   postPatch = ''
@@ -24,9 +24,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "five-or-more";
-      attrPath = "gnome3.five-or-more";
+      attrPath = "gnome.five-or-more";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix
index 17dc8fe7c2c7..2c6899ee1aa9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook
+{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, wrapGAppsHook
 , gettext, meson, gsound, librsvg, itstool, vala
 , python3, ninja, desktop-file-utils }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     pkg-config wrapGAppsHook gettext meson itstool vala
     ninja python3 desktop-file-utils
   ];
-  buildInputs = [ gtk3 gsound librsvg gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtk3 gsound librsvg gnome.adwaita-icon-theme ];
 
   postPatch = ''
     chmod +x build-aux/meson_post_install.py
@@ -23,9 +23,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "four-in-a-row";
-      attrPath = "gnome3.four-in-a-row";
+      attrPath = "gnome.four-in-a-row";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix
new file mode 100644
index 000000000000..c632bce407bc
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, vala
+, pkg-config
+, wrapGAppsHook4
+, gobject-introspection
+, gettext
+, itstool
+, libxml2
+, python3
+, gnome
+, glib
+, gtk4
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-chess";
+  version = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-chess/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "132nc96z0bryyi9d5gljsbwsa71rl8wm5w57jbhpwiv4fyjhgybk";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    pkg-config
+    gettext
+    itstool
+    libxml2
+    python3
+    wrapGAppsHook4
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    glib
+    gtk4
+    librsvg
+    gnome.adwaita-icon-theme
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-chess";
+      attrPath = "gnome.gnome-chess";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://wiki.gnome.org/Apps/Chess";
+    description = "Play the classic two-player boardgame of chess";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix
index fe1f092fbf0f..bb4cdae8fa35 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix
@@ -1,23 +1,23 @@
-{ lib, stdenv, fetchurl, pkg-config, vala, gnome3, gtk3, wrapGAppsHook, appstream-glib, desktop-file-utils
+{ lib, stdenv, fetchurl, pkg-config, vala, gnome, gtk3, wrapGAppsHook, appstream-glib, desktop-file-utils
 , glib, librsvg, libxml2, gettext, itstool, libgee, libgnome-games-support
 , meson, ninja, python3
 }:
 
 let
   pname = "gnome-klotski";
-  version = "3.38.1";
+  version = "3.38.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "00rwi6z0068pbq01sq2d389ffcqsh3ylq3i8zkrqvblqid1hvnlv";
+    sha256 = "1qm01hdd5yp8chig62bj10912vclbdvywwczs84sfg4zci2phqwi";
   };
 
   nativeBuildInputs = [
     pkg-config vala meson ninja python3 wrapGAppsHook
     gettext itstool libxml2 appstream-glib desktop-file-utils
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
   buildInputs = [ glib gtk3 librsvg libgee libgnome-games-support ];
 
@@ -27,9 +27,9 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
index d5d2de53e47c..7ef68e470e1d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook
+{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, wrapGAppsHook
 , librsvg, gettext, itstool, libxml2
 , meson, ninja, glib, vala, desktop-file-utils
 }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     meson ninja vala desktop-file-utils
-    pkg-config gnome3.adwaita-icon-theme
+    pkg-config gnome.adwaita-icon-theme
     libxml2 itstool gettext wrapGAppsHook
     glib # for glib-compile-schemas
   ];
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix
index 600b0d984681..6a7168badbfe 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, meson, ninja, vala, gobject-introspection, pkg-config, gnome3, gtk3, wrapGAppsHook
+{ lib, stdenv, fetchurl, meson, ninja, vala, gobject-introspection, pkg-config, gnome, gtk3, wrapGAppsHook
 , librsvg, gettext, itstool, python3, libxml2, libgnome-games-support, libgee, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-mines";
-  version = "3.36.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0sf6kdvhr4pr3hddnj6ql9larz2wy108sri31id6x9g459nbly8z";
   };
 
   # gobject-introspection for finding vapi files
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     meson ninja vala gobject-introspection pkg-config gettext itstool python3
     libxml2 wrapGAppsHook desktop-file-utils
   ];
-  buildInputs = [ gtk3 librsvg gnome3.adwaita-icon-theme libgnome-games-support libgee ];
+  buildInputs = [ gtk3 librsvg gnome.adwaita-icon-theme libgnome-games-support libgee ];
 
   postPatch = ''
     chmod +x build-aux/meson_post_install.py
@@ -23,9 +23,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-mines";
-      attrPath = "gnome3.gnome-mines";
+      attrPath = "gnome.gnome-mines";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
new file mode 100644
index 000000000000..34b50f2244fa
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, pkg-config
+, gnome
+, gtk3
+, wrapGAppsHook
+, librsvg
+, gsound
+, clutter-gtk
+, gettext
+, itstool
+, vala
+, python3
+, libxml2
+, libgee
+, libgnome-games-support
+, meson
+, ninja
+, desktop-file-utils
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-nibbles";
+  version = "3.38.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-nibbles/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1naknfbciydbym79a0jq039xf0033z8gyln48c0qsbcfr2qn8yj5";
+  };
+
+  patches = [
+    # Fix build with recent Vala.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-nibbles/-/commit/62964e9256fcac616109af874dbb2bd8342a9853.patch";
+      sha256 = "4VijELRxycS8rwi1HU9U3h9K/VtdQjJntfdtMN9Uz34=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-nibbles/-/commit/1b48446068608aff9b5edf1fdbd4b8c0d9f0be94.patch";
+      sha256 = "X0+Go5ae4F06WTPDYc2HIIax8X4RDgUGO6A6Qp8UifQ=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    python3
+    pkg-config
+    wrapGAppsHook
+    gettext
+    itstool
+    libxml2
+    desktop-file-utils
+    hicolor-icon-theme
+  ];
+
+  buildInputs = [
+    gtk3
+    librsvg
+    gsound
+    clutter-gtk
+    gnome.adwaita-icon-theme
+    libgee
+    libgnome-games-support
+  ];
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-nibbles";
+      attrPath = "gnome.gnome-nibbles";
+    };
+  };
+
+  meta = with lib; {
+    description = "Guide a worm around a maze";
+    homepage = "https://wiki.gnome.org/Apps/Nibbles";
+    license = licenses.gpl2;
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix
new file mode 100644
index 000000000000..c9f7cbfc213b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, gnome
+, gtk3
+, wrapGAppsHook
+, librsvg
+, gsound
+, gettext
+, itstool
+, libxml2
+, libgnome-games-support
+, libgee
+, meson
+, ninja
+, vala
+, python3
+, desktop-file-utils
+, adwaita-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-robots";
+  version = "40.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-robots/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "04fbykj576dq1h6cycgfhh8wd6yxmlsqykvj188sbwahay42zgvg";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    vala
+    python3
+    libxml2
+    wrapGAppsHook
+    gettext
+    itstool
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    gtk3
+    librsvg
+    gsound
+    libgnome-games-support
+    libgee
+    adwaita-icon-theme
+  ];
+
+  postPatch = ''
+    chmod +x build-aux/meson_post_install.py
+    patchShebangs build-aux/meson_post_install.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-robots";
+      attrPath = "gnome.gnome-robots";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://wiki.gnome.org/Apps/Robots";
+    description = "Avoid the robots and make them crash into each other";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
index 7c5fd8f1ac9a..3bd0ec3b3cdf 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, meson, ninja, vala, pkg-config, gobject-introspection, gettext, gtk3, gnome3, wrapGAppsHook
+{ lib, stdenv, fetchurl, meson, ninja, vala, pkg-config, gobject-introspection, gettext, gtk3, gnome, wrapGAppsHook
 , libgee, json-glib, qqwing, itstool, libxml2, python3, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-sudoku";
-  version = "3.38.0";
+  version = "40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-sudoku/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0cpxx63liczmax6ry06r5k0f221xpg2rqh49vkdj2snmqq61swrq";
+    url = "mirror://gnome/sources/gnome-sudoku/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1nr1g4q1gxqbzmaz15y3zgssnj7w01cq9l422ja4rglyg0fwjhbm";
   };
 
   nativeBuildInputs = [ meson ninja vala pkg-config gobject-introspection gettext itstool libxml2 python3 desktop-file-utils wrapGAppsHook ];
@@ -19,9 +19,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-sudoku";
-      attrPath = "gnome3.gnome-sudoku";
+      attrPath = "gnome.gnome-sudoku";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix
new file mode 100644
index 000000000000..c3e78ff20144
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, pkg-config
+, gnome
+, gtk3
+, wrapGAppsHook
+, librsvg
+, gsound
+, gettext
+, itstool
+, libxml2
+, meson
+, ninja
+, vala
+, python3
+, desktop-file-utils
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-taquin";
+  version = "3.38.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-taquin/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0kw131q0ad0rbsp6qifjc8fjlhvjxyihil8a76kj8ya9mn7kvnwn";
+  };
+
+  patches = [
+    # Fix build with recent Vala.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-taquin/-/commit/99dea5e7863e112f33f16e59898c56a4f1a547b3.patch";
+      sha256 = "U7djuMhb1XJaKAPyogQjaunOkbBK24r25YD7BgH05P4=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-taquin/-/commit/66be44dc20d114e449fc33156e3939fd05dfbb16.patch";
+      sha256 = "RN41RCLHlJyXTARSH9qjsmpYi1UFeMRssoYxRsbngDQ=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook
+    meson
+    ninja
+    python3
+    gettext
+    itstool
+    libxml2
+    vala
+    desktop-file-utils
+  ];
+  buildInputs = [
+    gtk3
+    librsvg
+    gsound
+    gnome.adwaita-icon-theme
+  ];
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-taquin";
+      attrPath = "gnome.gnome-taquin";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://wiki.gnome.org/Apps/Taquin";
+    description = "Move tiles so that they reach their places";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
index 9ae737737993..a1cdf98d9a15 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome3, gtk3, wrapGAppsHook
+{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, wrapGAppsHook
 , libxml2, gettext, itstool, meson, ninja, python3
 , vala, desktop-file-utils
 }:
@@ -13,11 +13,11 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-tetravex"; attrPath = "gnome3.gnome-tetravex"; };
+    updateScript = gnome.updateScript { packageName = "gnome-tetravex"; attrPath = "gnome.gnome-tetravex"; };
   };
 
   nativeBuildInputs = [
-    wrapGAppsHook itstool libxml2 gnome3.adwaita-icon-theme
+    wrapGAppsHook itstool libxml2 gnome.adwaita-icon-theme
     pkg-config gettext meson ninja python3 vala desktop-file-utils
   ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix b/nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix
index 8369c571f541..9c08aa5cada4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/hitori/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix
@@ -3,7 +3,7 @@
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , glib
 , gtk3
 , cairo
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hitori";
-  version = "3.38.1";
+  version = "3.38.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/hitori/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Ar0sQh1OIYAmVxToVL0S79PG0Vbd8h95599gAR1OQYQ=";
+    sha256 = "wmQ1cwN/ansW6SCK7e6GkQJvCBq6qhYJQu21LwkCnKw=";
   };
 
   nativeBuildInputs = [
@@ -50,9 +50,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix b/nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix
index db3b0d211512..d7e3930eae1e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix
@@ -3,7 +3,7 @@
 , fetchpatch
 , pkg-config
 , gtk3
-, gnome3
+, gnome
 , gdk-pixbuf
 , librsvg
 , wrapGAppsHook
@@ -26,6 +26,20 @@ stdenv.mkDerivation rec {
     sha256 = "097dw1l92l73xah9l56ka5mi3dvx48ffpiv33ni5i5rqw0ng7fc4";
   };
 
+  patches = [
+    # Fix build with recent Vala.
+    # https://gitlab.gnome.org/GNOME/dconf-editor/-/merge_requests/15
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/iagno/-/commit/e8a0aeec350ea80349582142c0e8e3cd3f1bce38.patch";
+      sha256 = "OO1x0Yx56UFzHTBsPAMYAjnJHlnTjdO1Vk7q6XU8wKQ=";
+    })
+    # https://gitlab.gnome.org/GNOME/dconf-editor/-/merge_requests/13
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/iagno/-/commit/508c0f94e5f182e50ff61be6e04f72574dee97cb.patch";
+      sha256 = "U7djuMhb1XJaKAPyogQjaunOkbBK24r25YD7BgH05P4=";
+    })
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
@@ -40,16 +54,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gdk-pixbuf
     librsvg
     gsound
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "iagno";
-      attrPath = "gnome3.iagno";
+      attrPath = "gnome.iagno";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/lightsoff/default.nix b/nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix
index 6783147840c7..94b71f0e8568 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/lightsoff/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix
@@ -1,21 +1,21 @@
-{ lib, stdenv, fetchurl, vala, pkg-config, gtk3, gnome3, gdk-pixbuf, librsvg, wrapGAppsHook
+{ lib, stdenv, fetchurl, vala, pkg-config, gtk3, gnome, gdk-pixbuf, librsvg, wrapGAppsHook
 , gettext, itstool, clutter, clutter-gtk, libxml2, appstream-glib
 , meson, ninja, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "lightsoff";
-  version = "3.38.0";
+  version = "40.0.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/lightsoff/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0dpnnw8v1yk1p0y08f9c9xkgswqlm8x83dfn96798nif2zbypdnh";
+    url = "mirror://gnome/sources/lightsoff/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1aziy64g15bm83zfn3ifs20z9yvscdvsxbx132xnq77i0r3qvlxc";
   };
 
   nativeBuildInputs = [
     vala pkg-config wrapGAppsHook itstool gettext appstream-glib libxml2
     meson ninja python3
   ];
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme gdk-pixbuf librsvg clutter clutter-gtk ];
+  buildInputs = [ gtk3 gnome.adwaita-icon-theme gdk-pixbuf librsvg clutter clutter-gtk ];
 
   postPatch = ''
     chmod +x build-aux/meson_post_install.py
@@ -23,9 +23,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "lightsoff";
-      attrPath = "gnome3.lightsoff";
+      attrPath = "gnome.lightsoff";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix b/nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix
new file mode 100644
index 000000000000..c3724ef51058
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix
@@ -0,0 +1,73 @@
+{
+  stdenv,
+  lib,
+  fetchurl,
+  pkg-config,
+  gtk3,
+  gnome,
+  gdk-pixbuf,
+  librsvg,
+  gsound,
+  libmanette,
+  gettext,
+  itstool,
+  libxml2,
+  clutter,
+  clutter-gtk,
+  wrapGAppsHook,
+  meson,
+  ninja,
+  python3,
+  vala,
+  desktop-file-utils,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "quadrapassel";
+  version = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1d59sxmmmhi611hvr5jmsm276j9w20hc5yq4rk0s4d3svadyap79";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    python3
+    vala
+    desktop-file-utils
+    pkg-config
+    gnome.adwaita-icon-theme
+    libxml2
+    itstool
+    gettext
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    gdk-pixbuf
+    librsvg
+    libmanette
+    gsound
+    clutter
+    libxml2
+    clutter-gtk
+  ];
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
+  meta = with lib; {
+    description = "Classic falling-block game, Tetris";
+    homepage = "https://wiki.gnome.org/Apps/Quadrapassel";
+    license = licenses.gpl2Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix b/nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix
new file mode 100644
index 000000000000..50fab598153a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, vala
+, glib
+, gtk3
+, libgnome-games-support
+, gnome
+, desktop-file-utils
+, clutter
+, clutter-gtk
+, gettext
+, itstool
+, libxml2
+, wrapGAppsHook
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "swell-foop";
+  version = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "17r4b0g8s7z872wdd7ngk248z7fqx43vm2sym1bdqhzsi250s1y1";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    pkg-config
+    wrapGAppsHook
+    python3
+    itstool
+    gettext
+    libxml2
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    libgnome-games-support
+    gnome.adwaita-icon-theme
+    clutter
+    clutter-gtk
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://wiki.gnome.org/Apps/Swell%20Foop";
+    description = "Puzzle game, previously known as Same GNOME";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix b/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix
new file mode 100644
index 000000000000..0212aebd8c5b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix
@@ -0,0 +1,69 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+  pkg-config,
+  gtk3,
+  gnome,
+  gdk-pixbuf,
+  librsvg,
+  libgnome-games-support,
+  gettext,
+  itstool,
+  libxml2,
+  wrapGAppsHook,
+  meson,
+  ninja,
+  python3,
+  desktop-file-utils,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tali";
+  version = "40.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/tali/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1xhp30c70bi8p4sm6v8zmxi1p55fs56dqgfbhfnsda5g1cxwir7h";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    python3
+    desktop-file-utils
+    pkg-config
+    gnome.adwaita-icon-theme
+    libxml2
+    itstool
+    gettext
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    gdk-pixbuf
+    librsvg
+    libgnome-games-support
+  ];
+
+  postPatch = ''
+    chmod +x build-aux/meson_post_install.py
+    patchShebangs build-aux/meson_post_install.py
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "gnome.${pname}";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://wiki.gnome.org/Apps/Tali";
+    description = "Sort of poker with dice and less money";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/installer.nix b/nixpkgs/pkgs/desktops/gnome/installer.nix
index 4999e1f3343c..4999e1f3343c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/installer.nix
+++ b/nixpkgs/pkgs/desktops/gnome/installer.nix
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix
index ff97d34f7ce4..37eca7ccc729 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/geary/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , pkg-config
 , gtk3
@@ -15,6 +16,7 @@
 , libsecret
 , gmime3
 , isocodes
+, icu
 , libxml2
 , gettext
 , sqlite
@@ -22,12 +24,12 @@
 , json-glib
 , itstool
 , libgee
-, gnome3
+, gnome
 , webkitgtk
 , python3
 , gnutls
 , cacert
-, xvfb_run
+, xvfb-run
 , glibcLocales
 , dbus
 , shared-mime-info
@@ -37,6 +39,7 @@
 , gobject-introspection
 , gspell
 , appstream-glib
+, libstemmer
 , libytnef
 , libhandy
 , gsound
@@ -44,18 +47,13 @@
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "3.38.1";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "04p8fjkz4xp5afp0ld1m09pnv0zkcx51l7hf23amfrjkk0kj2bp7";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1c2nd35500ng28223y5pszc7fh8g16njj34f6p5xc9594lvj0mik";
   };
 
-  patches = [
-    # Longer timeout for client test.
-    ./Bump-client-test-timeout-to-300s.patch
-  ];
-
   nativeBuildInputs = [
     appstream-glib
     desktop-file-utils
@@ -84,12 +82,14 @@ stdenv.mkDerivation rec {
     gspell
     gtk3
     isocodes
+    icu
     json-glib
     libgee
     libhandy
     libpeas
     libsecret
     libunwind
+    libstemmer
     libytnef
     sqlite
     webkitgtk
@@ -99,12 +99,13 @@ stdenv.mkDerivation rec {
     dbus
     gnutls # for certtool
     cacert # trust store for glib-networking
-    xvfb_run
+    xvfb-run
     glibcLocales # required by Geary.ImapDb.DatabaseTest/utf8_case_insensitive_collation
   ];
 
   mesonFlags = [
-    "-Dcontractor=true" # install the contractor file (Pantheon specific)
+    "-Dprofile=release"
+    "-Dcontractor=enabled" # install the contractor file (Pantheon specific)
   ];
 
   # NOTE: Remove `build-auxyaml_to_json.py` when no longer needed, see:
@@ -118,21 +119,23 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/yaml_to_json.py
 
     chmod +x desktop/geary-attach
-
-    # Drop test that breaks after webkitgtk 2.32.0 update
-    # https://gitlab.gnome.org/GNOME/geary/-/issues/1180
-    sed -i '/add_test("edit_context_font", edit_context_font);/d' test/js/composer-page-state-test.vala
   '';
 
-  doCheck = true;
+  # Some tests time out.
+  doCheck = false;
 
   checkPhase = ''
+    runHook preCheck
+
     NO_AT_BRIDGE=1 \
     GIO_EXTRA_MODULES=$GIO_EXTRA_MODULES:${glib-networking}/lib/gio/modules \
+    HOME=$TMPDIR \
     XDG_DATA_DIRS=$XDG_DATA_DIRS:${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${shared-mime-info}/share:${folks}/share/gsettings-schemas/${folks.name} \
     xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
       meson test -v --no-stdsplit
+
+    runHook postCheck
   '';
 
   preFixup = ''
@@ -141,9 +144,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix
index 0f4f8e67737a..8f73bdaeb7da 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, fetchpatch
 , vala
 , gettext
 , pkg-config
@@ -15,7 +15,7 @@
 , gtksourceview
 , gsettings-desktop-schemas
 , adwaita-icon-theme
-, gnome3
+, gnome
 , gtkspell3
 , shared-mime-info
 , libgee
@@ -36,16 +36,16 @@ stdenv.mkDerivation rec {
     sha256 = "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914";
   };
 
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-
-    substituteInPlace tests/libgitg/test-commit.vala --replace "/bin/bash" "${bash}/bin/bash"
-  '';
-
-  doCheck = true;
-
-  enableParallelBuilding = true;
+  nativeBuildInputs = [
+    gobject-introspection
+    gettext
+    meson
+    ninja
+    pkg-config
+    python3
+    vala
+    wrapGAppsHook
+  ];
 
   buildInputs = [
     adwaita-icon-theme
@@ -63,16 +63,14 @@ stdenv.mkDerivation rec {
     libsoup
   ];
 
-  nativeBuildInputs = [
-    gobject-introspection
-    gettext
-    meson
-    ninja
-    pkg-config
-    python3
-    vala
-    wrapGAppsHook
-  ];
+  doCheck = false; # FAIL: tests-gitg gtk_style_context_add_provider_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+
+    substituteInPlace tests/libgitg/test-commit.vala --replace "/bin/bash" "${bash}/bin/bash"
+  '';
 
   preFixup = ''
     gappsWrapperArgs+=(
@@ -82,7 +80,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
@@ -91,7 +89,7 @@ stdenv.mkDerivation rec {
     homepage = "https://wiki.gnome.org/Apps/Gitg";
     description = "GNOME GUI client to view git repositories";
     maintainers = with maintainers; [ domenkozar ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix
index 1947179028bf..d414266a9d9e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix
@@ -16,17 +16,18 @@
 , adwaita-icon-theme
 , libgweather
 , gucharmap
+, tracker
 , polkit
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-applets";
-  version = "3.38.0";
+  version = "3.40.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "04qrzycwm7pz556agl08xw3d0r1mmr4ja9n9jfijjxs9inrhp5yc";
+    sha256 = "1k6mdkg16ia29fyg8ikf4dfs51gnrmg0f8xwpvd3192lhfsbsh19";
   };
 
   nativeBuildInputs = [
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
     adwaita-icon-theme
     libgweather
     gucharmap
-    # tracker # Tracker 3 not supported.
+    tracker
     polkit
     wirelesstools
     linuxPackages.cpupower
@@ -62,9 +63,10 @@ stdenv.mkDerivation rec {
   PKG_CONFIG_LIBGNOME_PANEL_MODULESDIR = "${placeholder "out"}/lib/gnome-panel/modules";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
index 2d66dabb5a08..8a74c05dfea2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-autoar/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchurl
 , pkg-config
-, gnome3
+, gnome
 , gtk3
 , glib
 , gobject-introspection
@@ -11,17 +11,17 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-autoar";
-  version = "0.3.1";
+  version = "0.3.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1y6hh5dldhdq7mpbmd571zl0yadfackvifhnxvykkqqddwz72y0f";
+    sha256 = "0wkwix44yg126xn1v4f2j60bv9yiyadfpzf8ifx0bvd9x5f4v354";
   };
 
   passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-autoar"; attrPath = "gnome3.gnome-autoar"; };
+    updateScript = gnome.updateScript { packageName = "gnome-autoar"; attrPath = "gnome.gnome-autoar"; };
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
index 935778aa6490..3df9d7450cd7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
@@ -7,7 +7,7 @@
 , gnome-desktop
 , gnome-panel
 , gnome-session
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 , gtk3
 , ibus
@@ -23,20 +23,19 @@
 , pam
 , wrapGAppsHook
 , writeTextFile
-, writeShellScriptBin
 , xkeyboard_config
 , xorg
 , runCommand
+, buildEnv
 }:
 let
   pname = "gnome-flashback";
-  version = "3.38.0";
+  version = "3.40.0";
 
   # From data/sessions/Makefile.am
-  requiredComponentsCommon = [
-    "gnome-flashback"
-    "gnome-panel"
-  ];
+  requiredComponentsCommon = enableGnomePanel:
+    [ "gnome-flashback" ]
+    ++ lib.optional enableGnomePanel "gnome-panel";
   requiredComponentsGsd = [
     "org.gnome.SettingsDaemon.A11ySettings"
     "org.gnome.SettingsDaemon.Color"
@@ -55,13 +54,14 @@ let
     "org.gnome.SettingsDaemon.Wacom"
     "org.gnome.SettingsDaemon.XSettings"
   ];
-  requiredComponents = wmName: "RequiredComponents=${lib.concatStringsSep ";" ([ wmName ] ++ requiredComponentsCommon ++ requiredComponentsGsd)};";
+  requiredComponents = wmName: enableGnomePanel: "RequiredComponents=${lib.concatStringsSep ";" ([ wmName ] ++ requiredComponentsCommon enableGnomePanel ++ requiredComponentsGsd)};";
+
   gnome-flashback = stdenv.mkDerivation rec {
     name = "${pname}-${version}";
 
     src = fetchurl {
       url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-      sha256 = "1r51yqdqichp4jv54kiaqrh0xhykngr4ymlvrkjhzdhivwadsg4m";
+      sha256 = "0fxv13m2q9z1q3i9jbggl35cb7jlckbdrfsr5sf030hr1w836gz0";
     };
 
     # make .desktop Execs absolute
@@ -77,7 +77,7 @@ let
     postInstall = ''
       # Check that our expected RequiredComponents match the stock session files, but then don't install them.
       # They can be installed using mkSessionForWm.
-      grep '${requiredComponents "metacity"}' $out/share/gnome-session/sessions/gnome-flashback-metacity.session || (echo "RequiredComponents have changed, please update gnome-flashback/default.nix."; false)
+      grep '${requiredComponents "metacity" true}' $out/share/gnome-session/sessions/gnome-flashback-metacity.session || (echo "RequiredComponents have changed, please update gnome-flashback/default.nix."; false)
 
       rm -r $out/share/gnome-session
       rm -r $out/share/xsessions
@@ -120,12 +120,13 @@ let
     PKG_CONFIG_LIBGNOME_PANEL_MODULESDIR = "${placeholder "out"}/lib/gnome-panel/modules";
 
     passthru = {
-      updateScript = gnome3.updateScript {
+      updateScript = gnome.updateScript {
         packageName = pname;
-        attrPath = "gnome3.${pname}";
+        attrPath = "gnome.${pname}";
+        versionPolicy = "odd-unstable";
       };
 
-      mkSessionForWm = { wmName, wmLabel, wmCommand }:
+      mkSessionForWm = { wmName, wmLabel, wmCommand, enableGnomePanel, panelModulePackages }:
         let
           wmApplication = writeTextFile {
             name = "gnome-flashback-${wmName}-wm";
@@ -150,19 +151,43 @@ let
             text = ''
               [GNOME Session]
               Name=GNOME Flashback (${wmLabel})
-              ${requiredComponents wmName}
+              ${requiredComponents wmName enableGnomePanel}
             '';
           };
 
-          executable = writeShellScriptBin "gnome-flashback-${wmName}" ''
-            if [ -z $XDG_CURRENT_DESKTOP ]; then
-              export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
-            fi
-
-            export XDG_DATA_DIRS=${wmApplication}/share:${gnomeSession}/share:${gnome-flashback}/share:${gnome-panel}/share:$XDG_DATA_DIRS
+          # gnome-panel will only look for applets in a single directory so symlink them into here.
+          panelModulesEnv = buildEnv {
+            name = "gnome-panel-modules-env";
+            # We always want to find the built-in panel applets.
+            paths = [ gnome-panel gnome-flashback ] ++ panelModulePackages;
+            pathsToLink = [ "/lib/gnome-panel/modules" ];
+          };
 
-            exec ${gnome-session}/bin/gnome-session --session=gnome-flashback-${wmName} "$@"
-          '';
+          executable = stdenv.mkDerivation {
+            name = "gnome-flashback-${wmName}";
+            nativeBuildInputs = [ glib wrapGAppsHook ];
+            buildInputs = [ gnome-flashback ] ++ lib.optionals enableGnomePanel ([ gnome-panel ] ++ panelModulePackages);
+
+            # We want to use the wrapGAppsHook mechanism to wrap gnome-session
+            # with the environment that gnome-flashback and gnome-panel need to
+            # run, including the configured applet packages. This is only possible
+            # in the fixup phase, so turn everything else off.
+            dontUnpack = true;
+            dontConfigure = true;
+            dontBuild = true;
+            dontInstall = true;
+            dontWrapGApps = true; # We want to do the wrapping ourselves.
+
+            # gnome-flashback and gnome-panel need to be added to XDG_DATA_DIRS so that their .desktop files can be found by gnome-session.
+            preFixup = ''
+              makeWrapper ${gnome-session}/bin/gnome-session $out \
+                --add-flags "--session=gnome-flashback-${wmName}" \
+                --set-default XDG_CURRENT_DESKTOP 'GNOME-Flashback:GNOME' \
+                --prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" ([ wmApplication gnomeSession gnome-flashback ] ++ lib.optional enableGnomePanel gnome-panel)}' \
+                "''${gappsWrapperArgs[@]}" \
+                ${lib.optionalString enableGnomePanel "--set NIX_GNOME_PANEL_MODULESDIR '${panelModulesEnv}/lib/gnome-panel/modules'"}
+            '';
+          };
 
         in
         writeTextFile
@@ -173,7 +198,7 @@ let
               [Desktop Entry]
               Name=GNOME Flashback (${wmLabel})
               Comment=This session logs you into GNOME Flashback with ${wmLabel}
-              Exec=${executable}/bin/gnome-flashback-${wmName}
+              Exec=${executable}
               TryExec=${wmCommand}
               Type=Application
               DesktopNames=GNOME-Flashback;GNOME;
@@ -182,11 +207,11 @@ let
           providedSessions = [ "gnome-flashback-${wmName}" ];
         };
 
-      mkSystemdTargetForWm = { wmName }:
-        runCommand "gnome-flashback-${wmName}.target" { } ''
+      mkSystemdTargetForWm = { wmName, wmLabel, wmCommand, enableGnomePanel }:
+        runCommand "gnome-flashback-${wmName}.target" {} ''
           mkdir -p $out/lib/systemd/user
-          cp "${gnome-flashback}/lib/systemd/user/gnome-session-x11@gnome-flashback-metacity.target" \
-            "$out/lib/systemd/user/gnome-session-x11@gnome-flashback-${wmName}.target"
+          cp -r "${gnome-flashback}/lib/systemd/user/gnome-session@gnome-flashback-metacity.target.d" \
+            "$out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d"
         '';
     };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-packagekit/default.nix
index 53be2df471b4..6e0aa78e6fda 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-packagekit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, meson, ninja, gettext, gnome3, packagekit, polkit
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, gettext, gnome, packagekit, polkit
 , gtk3, systemd, wrapGAppsHook, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
@@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gnome-packagekit";
-      attrPath = "gnome3.gnome-packagekit";
+      attrPath = "gnome.gnome-packagekit";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix
index b820f7750dc0..8ab1a87d01ce 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix
@@ -8,7 +8,7 @@
 , glib
 , gnome-desktop
 , gnome-menus
-, gnome3
+, gnome
 , gtk3
 , itstool
 , libgweather
@@ -23,15 +23,22 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-panel";
-  version = "3.38.0";
+  version = "3.40.0";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-GosVrvCgKmyqm5IJyNP7Q+e5h6OAB2aRwj8DFOwwLxU=";
+    hash = "sha256-nxNQde3GZs8rnKkd41xnA+KxdxwQp3B0FPtlbCilmzs=";
   };
 
+  patches = [
+    # Load modules from path in `NIX_GNOME_PANEL_MODULESDIR` environment variable
+    # instead of gnome-panel’s libdir so that the NixOS module can make gnome-panel
+    # load modules from other packages as well.
+    ./modulesdir-env-var.patch
+  ];
+
   # make .desktop Exec absolute
   postPatch = ''
     patch -p0 <<END_PATCH
@@ -82,9 +89,10 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch b/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch
new file mode 100644
index 000000000000..40638bf123d2
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch
@@ -0,0 +1,31 @@
+diff --git a/gnome-panel/gp-module-manager.c b/gnome-panel/gp-module-manager.c
+index 58447fd84..7af99de7d 100644
+--- a/gnome-panel/gp-module-manager.c
++++ b/gnome-panel/gp-module-manager.c
+@@ -49,8 +49,16 @@ load_modules (GpModuleManager *self)
+ {
+   GDir *dir;
+   const gchar *name;
++  const gchar *modules_dir;
+ 
+-  dir = g_dir_open (MODULESDIR, 0, NULL);
++  modules_dir = g_getenv ("NIX_GNOME_PANEL_MODULESDIR");
++
++  if (!modules_dir) {
++    g_warning ("The NIX_GNOME_PANEL_MODULESDIR environment variable was not set, modules will not be loaded.");
++    return;
++  }
++
++  dir = g_dir_open (modules_dir, 0, NULL);
+   if (!dir)
+     return;
+ 
+@@ -63,7 +71,7 @@ load_modules (GpModuleManager *self)
+       if (!g_str_has_suffix (name, ".so"))
+         continue;
+ 
+-      path = g_build_filename (MODULESDIR, name, NULL);
++      path = g_build_filename (modules_dir, name, NULL);
+       module = gp_module_new_from_path (path);
+       g_free (path);
+ 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch b/nixpkgs/pkgs/desktops/gnome/misc/gnome-screensaver/fix-dbus-service-dir.patch
index 81e037ee690d..81e037ee690d 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-screensaver/fix-dbus-service-dir.patch
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-screensaver/fix-dbus-service-dir.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
index b6a12fca1334..460ab47733ca 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
@@ -5,12 +5,12 @@
 , gdk-pixbuf
 , gettext
 , glib
-, gnome3
+, gnome
 , gobject-introspection
 , gsettings-desktop-schemas
 , gtk3
 , itstool
-, libhandy_0
+, libhandy
 , libnotify
 , libsoup
 , libxml2
@@ -20,13 +20,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gnome-tweaks";
-  version = "3.34.1";
+  version = "40.0";
   format = "other";
   strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "+V8/4DGwsBwC95oWWfiJFS03cq4+RN+EA9FGC6Xuw2o=";
   };
 
   nativeBuildInputs = [
@@ -43,15 +43,15 @@ python3Packages.buildPythonApplication rec {
   buildInputs = [
     gdk-pixbuf
     glib
-    gnome3.gnome-desktop
-    gnome3.gnome-settings-daemon
-    gnome3.gnome-shell
+    gnome.gnome-desktop
+    gnome.gnome-settings-daemon
+    gnome.gnome-shell
     # Makes it possible to select user themes through the `user-theme` extension
-    gnome3.gnome-shell-extensions
-    gnome3.mutter
+    gnome.gnome-shell-extensions
+    gnome.mutter
     gsettings-desktop-schemas
     gtk3
-    libhandy_0
+    libhandy
     libnotify
     libsoup
   ];
@@ -65,17 +65,17 @@ python3Packages.buildPythonApplication rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
     };
   };
 
   meta = with lib; {
-    homepage = "https://wiki.gnome.org/action/show/Apps/GnomeTweakTool";
+    homepage = "https://wiki.gnome.org/Apps/Tweaks";
     description = "A tool to customize advanced GNOME 3 options";
     maintainers = teams.gnome.members;
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix
index 894197ae6d5f..15fcfbfe390a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix
@@ -17,14 +17,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.38.5";
+  version = "3.40.2";
   pname = "gpaste";
 
   src = fetchFromGitHub {
     owner = "Keruspe";
     repo = "GPaste";
     rev = "v${version}";
-    sha256 = "sha256-hUqFijqUQ1W8OThpbioqcxkOgYvScKUBmXN84MbMPGE=";
+    sha256 = "sha256-DUikcnkDBRkCwPLrl8lkNr+SeNpc3bPwPTWRn91nOo4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/misc/gpaste/fix-paths.patch
index c8a3fad2272b..46e30ce2e2cb 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gpaste/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gpaste/fix-paths.patch
@@ -17,7 +17,7 @@
  
 +imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
 +
- const { GPaste } = imports.gi;
+ //const { GPaste } = imports.gi;
  
  const ExtensionUtils = imports.misc.extensionUtils;
 --- a/src/libgpaste/settings/gpaste-settings.c
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gtkhtml/default.nix
index cc054a983c63..88fb31c4333b 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gtkhtml/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, gtk3, intltool
-, gnome3, enchant, isocodes, gsettings-desktop-schemas }:
+, gnome, enchant, isocodes, gsettings-desktop-schemas }:
 
 stdenv.mkDerivation rec {
   pname = "gtkhtml";
@@ -11,11 +11,11 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript { packageName = "gtkhtml"; attrPath = "gnome3.gtkhtml"; };
+    updateScript = gnome.updateScript { packageName = "gtkhtml"; attrPath = "gnome.gtkhtml"; };
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk3 intltool gnome3.adwaita-icon-theme
+  buildInputs = [ gtk3 intltool gnome.adwaita-icon-theme
                   gsettings-desktop-schemas ];
 
   propagatedBuildInputs = [ enchant isocodes ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
index 01899d20b577..dd65f858b6de 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/libgnome-games-support/default.nix
@@ -6,7 +6,7 @@
 , libgee
 , gettext
 , vala
-, gnome3
+, gnome
 , libintl
 , meson
 , ninja
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgnome-games-support";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1pdk9hc30xdlv0ba24f7pvcr2d5370zykrmpws7hgmjgl4wfbpdb";
+    sha256 = "0gs1k88wwafn5cdyb5yq1cxpi9azachb0ysxgwh15sx77g6plyy3";
   };
 
   nativeBuildInputs = [
@@ -41,9 +41,10 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/metacity/default.nix
index c74d57d9f4dd..702b7ffb38bb 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/metacity/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , gettext
 , glib
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 , gtk3
 , xorg
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metacity";
-  version = "3.38.0";
+  version = "3.40.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1b0i9sq6qa540f2006cv1p8i6lxg1h6w00apxwzwjpfqn0hk26c1";
+    sha256 = "1d8mj2nshijshfiaica8dirfws1p6i9631frq7q23b3y91jiyk12";
   };
 
   patches = [
@@ -55,9 +55,10 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/misc/metacity/fix-paths.patch
index ff3a244e67d9..ff3a244e67d9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/misc/metacity/fix-paths.patch
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/default.nix
index 4db81228a073..40c1d4c767af 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/nautilus-python/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/nautilus-python/default.nix
@@ -9,7 +9,7 @@
 , ncurses
 , nautilus
 , gtk3
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -46,9 +46,10 @@ stdenv.mkDerivation rec {
   PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
-      attrPath = "gnome3.${pname}";
+      attrPath = "gnome.${pname}";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/pomodoro/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix
index ae52c41787be..2881cc7e50fb 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/pomodoro/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-pomodoro";
-  version = "0.18.0";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "codito";
     repo = "gnome-pomodoro";
     rev = version;
-    sha256 = "0990m8ydryd77kv25nfqli1n209i0h5dkjg9gkyww8bfrjhw47mc";
+    sha256 = "sha256-im66QUzz6PcX0vkf4cN57ttRLB4KKPFky1pwUa4V7kQ=";
   };
 
   nativeBuildInputs = [
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
       This GNOME utility helps to manage time according to Pomodoro Technique.
       It intends to improve productivity and focus by taking short breaks.
     '';
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/desktops/gnome-3/update.nix b/nixpkgs/pkgs/desktops/gnome/update.nix
index 1bceddf77eb5..928eac45160a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/update.nix
+++ b/nixpkgs/pkgs/desktops/gnome/update.nix
@@ -1,8 +1,8 @@
 { stdenv, pkgs, lib, writeScript, python3, common-updater-scripts }:
-{ packageName, attrPath ? packageName, versionPolicy ? "odd-unstable", freeze ? false }:
+{ packageName, attrPath ? packageName, versionPolicy ? "tagged", freeze ? false }:
 
 let
-  python = python3.withPackages (p: [ p.requests ]);
+  python = python3.withPackages (p: [ p.requests p.libversion ]);
   upperBoundFlag =
     let
       package = lib.attrByPath (lib.splitString "." attrPath) (throw "Cannot find attribute ‘${attrPath}’.") pkgs;
diff --git a/nixpkgs/pkgs/desktops/gnustep/base/default.nix b/nixpkgs/pkgs/desktops/gnustep/base/default.nix
index 8fe232dff7b4..e661dae90990 100644
--- a/nixpkgs/pkgs/desktops/gnustep/base/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/base/default.nix
@@ -4,7 +4,7 @@
 , fetchurl, fetchpatch
 , gmp, gnutls
 , libffi, binutils-unwrapped
-, libjpeg, libtiff, libpng, giflib, libungif
+, libjpeg, libtiff, libpng, giflib
 , libxml2, libxslt, libiconv
 , libobjc, libgcrypt
 , icu
@@ -26,7 +26,7 @@ gsmakeDerivation {
     cups
     gmp gnutls
     libffi binutils-unwrapped
-    libjpeg libtiff libpng giflib libungif
+    libjpeg libtiff libpng giflib giflib
     libxml2 libxslt libiconv
     libobjc libgcrypt
     icu
diff --git a/nixpkgs/pkgs/desktops/gnustep/default.nix b/nixpkgs/pkgs/desktops/gnustep/default.nix
index abbabd4abf29..d337512dceca 100644
--- a/nixpkgs/pkgs/desktops/gnustep/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/default.nix
@@ -1,6 +1,5 @@
 { newScope
 , llvmPackages
-, giflib_4_1
 }:
 
 let
@@ -16,7 +15,7 @@ let
     libobjc = callPackage ./libobjc2 {};
     make = callPackage ./make {};
     back = callPackage ./back {};
-    base = callPackage ./base { giflib = giflib_4_1; };
+    base = callPackage ./base { };
     gui = callPackage ./gui {};
     gworkspace = callPackage ./gworkspace {};
   };
diff --git a/nixpkgs/pkgs/desktops/gnustep/make/default.nix b/nixpkgs/pkgs/desktops/gnustep/make/default.nix
index f571a3c48629..f96eb7388b3d 100644
--- a/nixpkgs/pkgs/desktops/gnustep/make/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/make/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, clang, which, libobjc }:
 
 let
-  version = "2.8.0";
+  version = "2.9.0";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${version}.tar.gz";
-    sha256 = "0pfaylrr3xgn5026anmja4rv4l7nzzaqsrkxycyi0p4lvm12kklz";
+    sha256 = "sha256-oLBmwRJXh5x8hTEd6mnGf23HQe8znbZRT4W2SZLEDSo=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix b/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix
index 15a3d918b95a..548f89389599 100644
--- a/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix
+++ b/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix
@@ -20,7 +20,7 @@
 , lxmenu-data
 , wirelesstools
 , curl
-, supportAlsa ? false, alsaLib
+, supportAlsa ? false, alsa-lib
 }:
 
 stdenv.mkDerivation rec {
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     m4
     wirelesstools
     curl
-  ] ++ lib.optional supportAlsa alsaLib;
+  ] ++ lib.optional supportAlsa alsa-lib;
 
   postPatch = ''
     substituteInPlace src/Makefile.in \
diff --git a/nixpkgs/pkgs/desktops/lxqt/default.nix b/nixpkgs/pkgs/desktops/lxqt/default.nix
index 9e302ebbbd6b..062ca4abfe86 100644
--- a/nixpkgs/pkgs/desktops/lxqt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/default.nix
@@ -52,7 +52,6 @@ let
     lxqt-archiver = callPackage ./lxqt-archiver {};
 
     preRequisitePackages = [
-      pkgs.gvfs # virtual file systems support for PCManFM-QT
       libsForQt5.kwindowsystem # provides some QT5 plugins needed by lxqt-panel
       libsForQt5.libkscreen # provides plugins for screen management software
       pkgs.libfm
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index 27fda636103e..fb2ed9e37d7b 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , mkDerivation
 , fetchFromGitHub
 , cmake
@@ -21,6 +22,13 @@ mkDerivation rec {
     sha256 = "0zhcv6cbdn9fr5lpglz26gzssbxkpi824sgc0g7w3hh1z6nqqf8l";
   };
 
+  # Nix clang on darwin identifies as 'Clang', not 'AppleClang'
+  # Without this, dependants fail to link.
+  postPatch = ''
+    substituteInPlace cmake/modules/LXQtCompilerSettings.cmake \
+      --replace AppleClang Clang
+  '';
+
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
index c565c5b4c301..34578e6bc5fe 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , cmake
 , pkg-config
-, alsaLib
+, alsa-lib
 , kguiaddons
 , kwindowsystem
 , libXdamage
@@ -46,7 +46,7 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     kguiaddons
     kwindowsystem
     libXdamage
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
index a1b068067407..3713bcf0bb50 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "lxqt-powermanagement";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1ikkksg5k7jwph7060h8wyk7bdsywvhl47zp23j5gcig0nk62ggf";
+    sha256 = "04prx15l05kw97mwajc8yi2s7p3n6amzs5jnnmh9payxzp6glzmk";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix b/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix
index 442c4c940b02..18d3f9899b41 100644
--- a/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "obconf-qt";
-  version = "0.16.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0kk5scp1j0hqi27q3yl9cg73ybxzm22nj96pa8adhdn4shg9bpac";
+    sha256 = "1nw2r3h7ynmygpslnzjn40vvickd988nm31wy2b645xcck89q4rm";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
index 9d42c23c7148..4fe73fadbc4a 100644
--- a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, fetchurl, pkg-config, gettext, glib
-, alsaSupport ? stdenv.isLinux, alsaLib
+, alsaSupport ? stdenv.isLinux, alsa-lib
 , pulseaudioSupport ? config.pulseaudio or true, libpulseaudio
 , ossSupport ? false
 , mateUpdateScript
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config gettext ];
 
   buildInputs = [ glib ]
-    ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional pulseaudioSupport libpulseaudio;
 
   configureFlags = lib.optional ossSupport "--enable-oss";
diff --git a/nixpkgs/pkgs/desktops/mate/marco/default.nix b/nixpkgs/pkgs/desktops/mate/marco/default.nix
index 6ac9c3864abd..8c6df49fd127 100644
--- a/nixpkgs/pkgs/desktops/mate/marco/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/marco/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, libcanberra-gtk3, libgtop
-, libXdamage, libXpresent, libstartup_notification, gnome3, gtk3, mate-settings-daemon, wrapGAppsHook, mateUpdateScript }:
+, libXdamage, libXpresent, libstartup_notification, gnome, gtk3, mate-settings-daemon, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "marco";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     libXpresent
     libstartup_notification
     gtk3
-    gnome3.zenity
+    gnome.zenity
     mate-settings-daemon
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
index 1046e431a3b8..ccd20a6b875a 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gnome3, glib, gtk3, gtksourceview3, libwnck3
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gnome, glib, gtk3, gtksourceview3, libwnck3
 , libgtop, libxml2, libnotify, polkit, upower, wirelesstools, mate, hicolor-icon-theme, wrapGAppsHook
 , mateUpdateScript }:
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gtk3
     gtksourceview3
-    gnome3.gucharmap
+    gnome.gucharmap
     libwnck3
     libgtop
     libxml2
diff --git a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
index b1b59dc6402c..62e0b5b3195b 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, isocodes, gnome3, gtk3, dconf, wrapGAppsHook, mateUpdateScript }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, isocodes, gnome, gtk3, dconf, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-desktop";
diff --git a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
index 3a99538d9298..fd7b19e1de37 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, glib, itstool, libxml2, mate-panel, libnotify, libcanberra-gtk3, dbus-glib, upower, gnome3, gtk3, libtool, polkit, wrapGAppsHook, mateUpdateScript }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, glib, itstool, libxml2, mate-panel, libnotify, libcanberra-gtk3, dbus-glib, upower, gnome, gtk3, libtool, polkit, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-power-manager";
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
      libxml2
      libcanberra-gtk3
      gtk3
-     gnome3.libgnome-keyring
+     gnome.libgnome-keyring
      libnotify
      dbus-glib
      upower
diff --git a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
index c0cd12bd2732..f790b0f65dc3 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-session-manager";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1jcb5k2fx2rwwbrslgv1xlzaiwiwjnxjwnp503qf8cg89w69q2vb";
+    sha256 = "18mhv8dq18hvx28gi88c9499s3s1nsq55m64sas8fqlvnp2sx84h";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/mate/pluma/default.nix b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
index 4c98c9cf5207..5e226f4d8869 100644
--- a/nixpkgs/pkgs/desktops/mate/pluma/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, perl, itstool, isocodes, enchant, libxml2, python3
-, gnome3, gtksourceview3, libpeas, mate, wrapGAppsHook, mateUpdateScript }:
+, gnome, gtksourceview3, libpeas, mate, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "pluma";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     python3
     gtksourceview3
     libpeas
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     mate.mate-desktop
   ];
 
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 1c86de616077..a3e75d231f19 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -37,9 +37,18 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8r0DlmG8xlCQ1uFHZQjXG2ls4VBrsRzrVY8Ey3/OYAU=";
+    sha256 = "MsaXdmL+M+NYAJrrwluleeNxqQg0soFbO/G/FqibBFI=";
   };
 
+  patches = [
+    # Allow build with appstream 0.14.x
+    # https://github.com/elementary/appcenter/pull/1493
+    (fetchpatch {
+      url = "https://github.com/elementary/appcenter/commit/5807dd13fe3c715f26225aed8d7a0abdea0c2a64.patch";
+      sha256 = "BvEahG9lU9ZdgooFDFhm5evRvnKVcmcHLdmZPb85gbo=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 15e0059ce875..791c2508e120 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calculator";
-  version = "1.6.0";
+  version = "1.6.1";
 
   repoName = "calculator";
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-kDqUwTi3XnFGUwAjnWcaKqDylUFqpus9WurLoqbV1xk=";
+    sha256 = "sha256-LGY111wPldxuSfqhZ2E2TeJjexcGbfS25RjLw+Wi99c=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index f9ab49a72b95..cf0d0d812fe1 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -18,6 +18,7 @@
 , python3
 , libnotify
 , libical
+, libgdata
 , evolution-data-server
 , appstream-glib
 , elementary-icon-theme
@@ -67,6 +68,7 @@ stdenv.mkDerivation rec {
     libgee
     libical
     libnotify
+    libgdata # required by some dependency transitively
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 7339038b0809..e8b10227eaa4 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -39,6 +40,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-4AEayj+K/lOW6jEYmvmdan1kTqqqLL1YzwcU7/3PH5U=";
   };
 
+  patches = [
+    # Fix build with latest Vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/code/commit/c50580d3336296823da9a2c50b824f21fde50286.patch";
+      sha256 = "F+ZYlnZWYCU68G4oayLfbTnvSnTb4YA0zHVGD/Uf3KA=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 24eafcabdea0..5a5c314b3e9b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -41,6 +42,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-3GZoBCu9rF+BnNk9APBzKWO1JYg1XYWwrEvwcjWvYDE=";
   };
 
+  patches = [
+    # Fix build with latest Vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/music/commit/9ed3bbb3a0d68e289a772b4603f58e52a4973316.patch";
+      sha256 = "fFO97SQzTc2fYFJFGfFPSUCdkCgZxfX1fjDQ7GH4BUs=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index ca0b3951351f..7280051361a9 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , meson
@@ -45,6 +46,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-bTk4shryAWWMrKX3mza6xQ05qpBPf80Ey7fmYgKLUiY=";
   };
 
+  patches = [
+    # Fix build with latest Vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/photos/commit/27e529fc96da828982563e2e19a6f0cef883a29e.patch";
+      sha256 = "w39wh45VHggCs62TN6wpUEyz/hJ1y7qL1Ox+sp0Pt2s=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index 06d8041339db..7387ea34e4de 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -25,6 +25,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-tnAJyyPN/Xy1pmlgBpgO2Eb5CeHrRltjQTHmuTPBt8s=";
   };
 
+  patches = [
+    # Fix build with latest Vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-printers/commit/5eced5ddda6f229d7265ea0a713f6c1cd181a526.patch";
+      sha256 = "lPTNqka6jjvv1JnAqVzVIQBIdDXlCOQ5ASvgZNuEUC8=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index 6a18f6b6e232..26e26de33b12 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , meson
@@ -28,6 +29,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-Sws6FqUL7QAROInDrcqYAp6j1TCC4aGV0/hi5Kmm5wQ=";
   };
 
+  patches = [
+    # Fix build with latest Vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-security-privacy/commit/c8e422e630bbee0badcf4df26364c9e83e06bad0.patch";
+      sha256 = "5Gm+muZiCraJC5JaGVVo0HDJ7KxjOpclHRW1RKsk3bc=";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/nixpkgs/pkgs/desktops/pantheon/default.nix b/nixpkgs/pkgs/desktops/pantheon/default.nix
index e5182807b3f7..82d6a87b1090 100644
--- a/nixpkgs/pkgs/desktops/pantheon/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/default.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, gnome3 }:
+{ config, pkgs, lib, gnome }:
 
 
 lib.makeScope pkgs.newScope (self: with self; {
@@ -23,9 +23,9 @@ lib.makeScope pkgs.newScope (self: with self; {
     wingpanel-indicator-session wingpanel-indicator-sound
   ];
 
-  maintainers = with pkgs.lib.maintainers; [ worldofpeace ];
+  maintainers = with pkgs.lib.maintainers; [ ];
 
-  mutter = pkgs.gnome3.mutter334;
+  mutter = pkgs.gnome.mutter334;
 
   elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
 
@@ -72,17 +72,17 @@ lib.makeScope pkgs.newScope (self: with self; {
   elementary-print-shim = callPackage ./desktop/elementary-print-shim { };
 
   elementary-session-settings = callPackage ./desktop/elementary-session-settings {
-    inherit (gnome3) gnome-session gnome-keyring;
+    inherit (gnome) gnome-session gnome-keyring;
   };
 
   elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };
 
   extra-elementary-contracts = callPackage ./desktop/extra-elementary-contracts {
-    inherit (gnome3) file-roller gnome-bluetooth;
+    inherit (gnome) file-roller gnome-bluetooth;
   };
 
   gala = callPackage ./desktop/gala {
-    inherit (gnome3) gnome-desktop;
+    inherit (gnome) gnome-desktop;
   };
 
   wingpanel = callPackage ./desktop/wingpanel { };
@@ -109,7 +109,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   # explained here -> https://github.com/elementary/greeter/issues/92#issuecomment-376215614
   # Take note of "I am holding off on "fixing" this bug for as long as possible."
   elementary-settings-daemon = callPackage ./services/elementary-settings-daemon {
-    inherit (gnome3) gnome-desktop;
+    inherit (gnome) gnome-desktop;
   };
 
   pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { };
@@ -169,7 +169,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   switchboard-plug-onlineaccounts = callPackage ./apps/switchboard-plugs/onlineaccounts { };
 
   switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell {
-    inherit (gnome3) gnome-desktop;
+    inherit (gnome) gnome-desktop;
   };
 
   switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index c4e070aeacb9..03954fac6448 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -15,6 +15,7 @@
 , libgee
 , libxml2
 , libsoup
+, libgdata
 , elementary-calendar
 }:
 
@@ -52,6 +53,7 @@ stdenv.mkDerivation rec {
     libical
     libsoup
     wingpanel
+    libgdata # required by some dependency transitively
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/pantheon/granite/default.nix b/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
index defb6095a35a..3d4dc6bd84ab 100644
--- a/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "granite";
-  version = "5.5.0";
+  version = "6.0.0";
 
   outputs = [ "out" "dev" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ytbjuo9RnYyJ9+LqtWE117dGlNErLl+nmTM22xGGDo8=";
+    sha256 = "sha256-RGukXeFmtnyCfK8pKdvTHL0t8yhEYwAiiPelTy1Xcf0=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index a37e43cd3551..568414aab35c 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -2,10 +2,11 @@
 , substituteAll
 , fetchurl
 , fetchgit
+, fetchpatch
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , perl
 , gettext
 , gtk3
@@ -14,7 +15,7 @@
 , libgnomekbd
 , lcms2
 , libpulseaudio
-, alsaLib
+, alsa-lib
 , libcanberra-gtk3
 , upower
 , colord
@@ -73,6 +74,20 @@ stdenv.mkDerivation rec {
     #"${patchPath}/ubuntu_ibus_configs.patch"
     # https://github.com/elementary/os-patches/blob/6975d1c254cb6ab913b8e2396877203aea8eaa65/debian/patches/elementary-dpms.patch
     ./elementary-dpms.patch
+
+    # Query GWeather DB on the fly instead of caching.
+    # Needed for the next patch to apply.
+    # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/175
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/df6c69f028d27b53ac86829e11df103b25ed5a74.patch";
+      sha256 = "bKZkPzN64DXMgitjn0vUzUvKl7ldhN/mNVtPKVmHd0Q=";
+    })
+    # Adjust to libgweather changes.
+    # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/217
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/82d88014dfca2df7e081712870e1fb017c16b808.patch";
+      sha256 = "H5k/v+M2bRaswt5nrDJFNn4gS4BdB0UfzdjUCT4yLKg=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -90,7 +105,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     accountsservice
-    alsaLib
+    alsa-lib
     colord
     gcr
     geoclue2
@@ -137,7 +152,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = repoName;
       attrPath = "pantheon.${pname}";
     };
diff --git a/nixpkgs/pkgs/desktops/plasma-5/default.nix b/nixpkgs/pkgs/desktops/plasma-5/default.nix
index ea2e199e9310..4b41e5ad9d5f 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/default.nix
@@ -139,6 +139,7 @@ let
       plasma-integration = callPackage ./plasma-integration {};
       plasma-nm = callPackage ./plasma-nm {};
       plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; };
+      plasma-sdk = callPackage ./plasma-sdk.nix {};
       plasma-systemmonitor = callPackage ./plasma-systemmonitor.nix { };
       plasma-thunderbolt = callPackage ./plasma-thunderbolt.nix { };
       plasma-vault = callPackage ./plasma-vault {};
diff --git a/nixpkgs/pkgs/desktops/plasma-5/fetch.sh b/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
index 10214b3fe23f..f281e11544d2 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
+++ b/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.21.3/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.21.5/ -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix b/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix
index f214d4070eec..94cf73084bfa 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, kholidays,
+  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kholidays,
   kio, knewstuff, kpurpose, kross, krunner, kservice, ksysguard,
   kunitconversion, ibus, plasma-framework, plasma-workspace, qtdeclarative,
   qtwebengine, qtx11extras
@@ -11,7 +11,7 @@ mkDerivation {
   name = "kdeplasma-addons";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kholidays kio
+    kconfig kconfigwidgets kcoreaddons kcmutils kholidays kio
     knewstuff kpurpose kross krunner kservice ksysguard kunitconversion ibus
     plasma-framework plasma-workspace qtdeclarative qtwebengine qtx11extras
   ];
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix b/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
index f7f50dc3b57f..e9b9f5148164 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -3,9 +3,9 @@
   extra-cmake-modules, kdoctools,
   qtbase,
   kcmutils, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
-  kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kirigami2, kpackage,
-  kservice, kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils,
-  solid, systemsettings
+  kdeclarative, ki18n, kiconthemes, kio, kirigami2, kpackage, kservice,
+  kwayland, kwidgetsaddons, kxmlgui, solid, systemsettings,
+  libraw1394, libGLU, pciutils,
 }:
 
 mkDerivation {
@@ -13,12 +13,15 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
-    kdeclarative kdelibs4support ki18n kiconthemes kio kirigami2 kpackage
-    kservice kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid systemsettings
+    kdeclarative ki18n kiconthemes kio kirigami2 kpackage kservice kwayland
+    kwidgetsaddons kxmlgui solid systemsettings
+
+    libraw1394 libGLU pciutils
   ];
   preFixup = ''
-    # fix wrong symlink of infocenter pointing to a 'systemsettings5' binary in the same directory,
-    # while it is actually located in a completely different store path
+    # fix wrong symlink of infocenter pointing to a 'systemsettings5' binary in
+    # the same directory, while it is actually located in a completely different
+    # store path
     ln -sf ${lib.getBin systemsettings}/bin/systemsettings5 $out/bin/kinfocenter
   '';
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kmenuedit.nix b/nixpkgs/pkgs/desktops/plasma-5/kmenuedit.nix
index 016ea940d99b..c0cfebcdc0c2 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kmenuedit.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kmenuedit.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  kdbusaddons, kdelibs4support, khotkeys, ki18n, kiconthemes, kio, kxmlgui,
+  kdbusaddons, khotkeys, ki18n, kiconthemes, kio, kxmlgui,
   sonnet
 }:
 
@@ -9,6 +9,6 @@ mkDerivation {
   name = "kmenuedit";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kdbusaddons kdelibs4support khotkeys ki18n kiconthemes kio kxmlgui sonnet
+    kdbusaddons khotkeys ki18n kiconthemes kio kxmlgui sonnet
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kscreenlocker.nix b/nixpkgs/pkgs/desktops/plasma-5/kscreenlocker.nix
index 2fc26216bf41..f9b8bb5cfc1d 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kscreenlocker.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kscreenlocker.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kcmutils, kcrash, kdeclarative, kdelibs4support, kglobalaccel, kidletime,
+  kcmutils, kcrash, kdeclarative, kglobalaccel, kidletime,
   kwayland, libXcursor, pam, plasma-framework, qtbase, qtdeclarative, qtx11extras,
   wayland,
 }:
@@ -10,7 +10,7 @@ mkDerivation {
   name = "kscreenlocker";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kcmutils kcrash kdeclarative kdelibs4support kglobalaccel kidletime kwayland
+    kcmutils kcrash kdeclarative kglobalaccel kidletime kwayland
     libXcursor pam plasma-framework qtdeclarative qtx11extras wayland
   ];
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix b/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
index fe904bb97a48..2c376b537503 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   libcap, libpcap, lm_sensors,
-  kconfig, kcoreaddons, kdelibs4support, ki18n, kiconthemes, kitemviews,
+  kconfig, kcoreaddons, ki18n, kiconthemes, kinit, kitemviews,
   knewstuff, libksysguard, qtbase,
   networkmanager-qt, libnl
 }:
@@ -11,7 +11,7 @@ mkDerivation {
   name = "ksysguard";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
-    kdelibs4support ki18n libcap libpcap lm_sensors networkmanager-qt libnl
+    kconfig kcoreaddons kitemviews kinit kiconthemes knewstuff libksysguard
+    ki18n libcap libpcap lm_sensors networkmanager-qt libnl
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
index 2008529a38bc..e6e49a591810 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
@@ -2,8 +2,8 @@
   mkDerivation, lib, fetchpatch,
   extra-cmake-modules, kdoctools,
 
-  epoxy,libICE, libSM, libinput, libxkbcommon, udev, wayland, xcb-util-cursor,
-  xwayland,
+  epoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa,
+  pipewire, udev, wayland, xcb-util-cursor, xwayland,
 
   qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors,
   qtvirtualkeyboard, qtx11extras,
@@ -11,8 +11,8 @@
   breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets,
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
-  kscreenlocker, kservice, kwayland, kwayland-server, kwidgetsaddons, kwindowsystem, kxmlgui,
-  plasma-framework, libcap, libdrm, mesa, pipewire
+  krunner, kscreenlocker, kservice, kwayland, kwayland-server, kwidgetsaddons,
+  kwindowsystem, kxmlgui, plasma-framework,
 }:
 
 # TODO (ttuegel): investigate qmlplugindump failure
@@ -21,17 +21,18 @@ mkDerivation {
   name = "kwin";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    epoxy libICE libSM libinput libxkbcommon udev wayland xcb-util-cursor
-    xwayland
+    epoxy lcms2 libICE libSM libcap libdrm libinput libxkbcommon mesa pipewire
+    udev wayland xcb-util-cursor xwayland
 
     qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors
     qtvirtualkeyboard qtx11extras
 
     breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
-    kidletime kinit kio knewstuff knotifications kpackage kscreenlocker kservice
-    kwayland kwayland-server kwidgetsaddons kwindowsystem kxmlgui plasma-framework
-    libcap libdrm mesa pipewire
+    kidletime kinit kio knewstuff knotifications kpackage krunner kscreenlocker
+    kservice kwayland kwayland-server kwidgetsaddons kwindowsystem kxmlgui
+    plasma-framework
+
   ];
   outputs = [ "dev" "out" ];
   patches = [
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index a07a50f04927..e6b161a07232 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -6,13 +6,14 @@
   libxkbfile, xf86inputevdev, xf86inputsynaptics, xinput, xkeyboard_config,
   xorgserver, util-linux,
 
-  qtdeclarative, qtquickcontrols, qtquickcontrols2, qtsvg, qtx11extras,
+  accounts-qt, qtdeclarative, qtquickcontrols, qtquickcontrols2, qtsvg,
+  qtx11extras,
 
-  attica, baloo, kactivities, kactivities-stats, kauth, kcmutils, kdbusaddons,
-  kdeclarative, kded, kdelibs4support, kemoticons, kglobalaccel, ki18n,
-  kitemmodels, knewstuff, knotifications, knotifyconfig, kpeople, krunner,
-  kscreenlocker, ksysguard, kwallet, kwin, phonon, plasma-framework,
-  plasma-workspace, qqc2-desktop-style, xf86inputlibinput
+  attica, baloo, kaccounts-integration, kactivities, kactivities-stats, kauth,
+  kcmutils, kdbusaddons, kdeclarative, kded, kdelibs4support, kemoticons,
+  kglobalaccel, ki18n, kitemmodels, knewstuff, knotifications, knotifyconfig,
+  kpeople, krunner, kscreenlocker, ksysguard, kwallet, kwin, phonon,
+  plasma-framework, plasma-workspace, qqc2-desktop-style, xf86inputlibinput
 }:
 
 mkDerivation {
@@ -22,12 +23,13 @@ mkDerivation {
     boost fontconfig ibus libcanberra_kde libpulseaudio libXcursor libXft xorgserver
     libxkbfile phonon xf86inputevdev xf86inputsynaptics xinput xkeyboard_config
 
-    qtdeclarative qtquickcontrols qtquickcontrols2 qtsvg qtx11extras
+    accounts-qt qtdeclarative qtquickcontrols qtquickcontrols2 qtsvg qtx11extras
 
-    attica baloo kactivities kactivities-stats kauth kcmutils kdbusaddons
-    kdeclarative kded kdelibs4support kemoticons kglobalaccel ki18n kitemmodels
-    knewstuff knotifications knotifyconfig kpeople krunner kscreenlocker
-    ksysguard kwallet kwin plasma-framework plasma-workspace qqc2-desktop-style
+    attica baloo kaccounts-integration kactivities kactivities-stats kauth
+    kcmutils kdbusaddons kdeclarative kded kdelibs4support kemoticons
+    kglobalaccel ki18n kitemmodels knewstuff knotifications knotifyconfig
+    kpeople krunner kscreenlocker ksysguard kwallet kwin plasma-framework
+    plasma-workspace qqc2-desktop-style
   ];
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix
index 585f7462c9bd..e563bdd837ec 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-nm/default.nix
@@ -2,22 +2,26 @@
   mkDerivation, lib, substituteAll,
   extra-cmake-modules, kdoctools,
   kcompletion, kconfigwidgets, kcoreaddons, kdbusaddons, kdeclarative,
-  kdelibs4support, ki18n, kiconthemes, kinit, kio, kitemviews, knotifications,
-  kservice, kwallet, kwidgetsaddons, kwindowsystem, kxmlgui,
-  mobile-broadband-provider-info, modemmanager-qt, networkmanager-qt,
-  openconnect, openvpn, plasma-framework, qca-qt5, qtbase, qtdeclarative,
-  qttools, solid
+  ki18n, kiconthemes, kinit, kio, kitemviews, knotifications, kservice, kwallet,
+  kwidgetsaddons, kwindowsystem, kxmlgui, plasma-framework, prison, solid,
+
+  mobile-broadband-provider-info, openconnect, openvpn,
+  modemmanager-qt, networkmanager-qt, qca-qt5,
+  qtbase, qtdeclarative, qttools,
 }:
 
 mkDerivation {
   name = "plasma-nm";
   nativeBuildInputs = [ extra-cmake-modules kdoctools qttools ];
   buildInputs = [
-    kdeclarative kdelibs4support ki18n kio kwindowsystem plasma-framework
-    qtdeclarative kcompletion kconfigwidgets kcoreaddons kdbusaddons kiconthemes
+    kdeclarative ki18n kio kwindowsystem plasma-framework kcompletion
+    kconfigwidgets kcoreaddons kdbusaddons kiconthemes
     kinit kitemviews knotifications kservice kwallet kwidgetsaddons kxmlgui
-    mobile-broadband-provider-info modemmanager-qt networkmanager-qt openconnect
-    qca-qt5 solid
+    prison solid
+
+    qtdeclarative
+    modemmanager-qt networkmanager-qt qca-qt5
+    mobile-broadband-provider-info openconnect
   ];
   patches = [
     (substituteAll {
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-sdk.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-sdk.nix
new file mode 100644
index 000000000000..e82fc4d0602c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-sdk.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, karchive
+, kcompletion
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kdbusaddons
+, kdeclarative
+, ki18n
+, kiconthemes
+, kio
+, plasma-framework
+, kservice
+, ktexteditor
+, kwidgetsaddons
+, kdoctools
+, qtbase
+}:
+
+mkDerivation {
+  name = "plasma-sdk";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    karchive
+    kcompletion
+    kconfig
+    kconfigwidgets
+    kcoreaddons
+    kdbusaddons
+    kdeclarative
+    ki18n
+    kiconthemes
+    kio
+    plasma-framework
+    kservice
+    ktexteditor
+    kwidgetsaddons
+  ];
+}
diff --git a/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix b/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix
index 28e6db853a16..9d2dc183cf16 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, fetchpatch,
   extra-cmake-modules, kdoctools,
-  bluez-qt, kactivities, kauth, kconfig, kdbusaddons, kdelibs4support,
+  bluez-qt, kactivities, kauth, kconfig, kdbusaddons,
   kglobalaccel, ki18n, kidletime, kio, knotifyconfig, kwayland, libkscreen,
   ddcutil, networkmanager-qt, plasma-workspace, qtx11extras, solid, udev
 }:
@@ -11,18 +11,11 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kdbusaddons knotifyconfig solid udev bluez-qt kactivities kauth
-    kdelibs4support kglobalaccel ki18n kio kidletime kwayland libkscreen
+    kglobalaccel ki18n kio kidletime kwayland libkscreen
     networkmanager-qt plasma-workspace qtx11extras
     ddcutil
   ];
   cmakeFlags = [
     "-DHAVE_DDCUTIL=On"
   ];
-  patches = [
-    # Reduce log message spam by setting the default log level to Warning.
-    #(fetchpatch {
-    #  url = "https://invent.kde.org/plasma/powerdevil/-/commit/c7590f9065ec9547b7fabad77a548bbc0c693113.patch";
-    #  sha256 = "077whhi0jrb3bajx357k7n66hv7nchis8jix0nfc1zjvi9fm6pi2";
-    #})
-  ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/srcs.nix b/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
index bf93e0564d9f..90d70bb8a708 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
@@ -4,419 +4,419 @@
 
 {
   bluedevil = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/bluedevil-5.21.3.tar.xz";
-      sha256 = "1xqm4bn97asilc4yw5rvmmhk7c7wvmbalalr6gz8gw4gv0pg67qv";
-      name = "bluedevil-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/bluedevil-5.21.5.tar.xz";
+      sha256 = "12b23xr919lb9hjy0rd9hbcz0x0im2i879affdyjxz4px53kgc16";
+      name = "bluedevil-5.21.5.tar.xz";
     };
   };
   breeze = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/breeze-5.21.3.tar.xz";
-      sha256 = "0frm3f8q1n0pdzjk7zwmvlrl19fb9265ihnnfhak6ckaq50x72l3";
-      name = "breeze-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/breeze-5.21.5.tar.xz";
+      sha256 = "034qfnqfhmvszjd4rc41av61qfk60bh5hlzq2r8w8lbxvaawcx4p";
+      name = "breeze-5.21.5.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/breeze-grub-5.21.3.tar.xz";
-      sha256 = "1j0pk4pv5pxwhwah1gd5znnsw3j15x2sc74pp6zinz9a1ywjklnz";
-      name = "breeze-grub-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/breeze-grub-5.21.5.tar.xz";
+      sha256 = "1vqdq2kxzyrdy31c2xjp200b40892mvgzmlp7ndc9yp3zj6cj9z7";
+      name = "breeze-grub-5.21.5.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/breeze-gtk-5.21.3.tar.xz";
-      sha256 = "1x5by915lfhbkhgrhy3lkwg64skwdlqaxzbq92x0m9v9a9agwidc";
-      name = "breeze-gtk-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/breeze-gtk-5.21.5.tar.xz";
+      sha256 = "06f7y19xrn9lr7ra5fszhs69dkpdna7sn0apwl6xyivl4cphbaqg";
+      name = "breeze-gtk-5.21.5.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/breeze-plymouth-5.21.3.tar.xz";
-      sha256 = "01ida3pfj6g1igndjfjpv16199zysgxlxlnc7vsx7kr8aval8pmx";
-      name = "breeze-plymouth-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/breeze-plymouth-5.21.5.tar.xz";
+      sha256 = "0rjbbvmngy4m073z9dyy59cdcvkjbxlqg55n19k8m0f6k0r2ibgk";
+      name = "breeze-plymouth-5.21.5.tar.xz";
     };
   };
   discover = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/discover-5.21.3.tar.xz";
-      sha256 = "170kxhrwj4mvj5qg7cyz3sxdfyp7rr4pgsi3v7kahs19a9w3isnx";
-      name = "discover-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/discover-5.21.5.tar.xz";
+      sha256 = "112g5xigfpazkh5m8pvd8dhiq44g1vnx7md4789pp6axl88dbf19";
+      name = "discover-5.21.5.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/drkonqi-5.21.3.tar.xz";
-      sha256 = "1hq37vi0vndhy66labspm75blicx1g4q594wxfxzl076mav5jds4";
-      name = "drkonqi-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/drkonqi-5.21.5.tar.xz";
+      sha256 = "1bn69i964467k3967934wkkypkzchdmnkxk5nqxs6md835sfb5a0";
+      name = "drkonqi-5.21.5.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kactivitymanagerd-5.21.3.tar.xz";
-      sha256 = "1x5p6rbjf9kz07r5mrkiglvbigvk5bfx8qpb8l2vagsbvlg298c3";
-      name = "kactivitymanagerd-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kactivitymanagerd-5.21.5.tar.xz";
+      sha256 = "1j7hkqlbhiq3hc2yb250x7zdidi4wndpnbm0x9aqrmi7mr63kdbp";
+      name = "kactivitymanagerd-5.21.5.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kde-cli-tools-5.21.3.tar.xz";
-      sha256 = "0hkmr3zxg4np1ppsgj77ijgkwgvl7d0zxwl46xjc2px877lx8bpp";
-      name = "kde-cli-tools-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kde-cli-tools-5.21.5.tar.xz";
+      sha256 = "0j8yv814qbyl5d5iyzcw5q6w08gkwhsvbdc19nmlbk9zldvy37rn";
+      name = "kde-cli-tools-5.21.5.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kdecoration-5.21.3.tar.xz";
-      sha256 = "06a3gsf1lyjxccjzn0ad254wsf7x2bln2i6kyk5j4gwqss6lplf5";
-      name = "kdecoration-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kdecoration-5.21.5.tar.xz";
+      sha256 = "0k6mhwkv4r5q57bm7jc9wf51gdk8h8zwafmkfqp7ddg5zmxhnmdw";
+      name = "kdecoration-5.21.5.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kde-gtk-config-5.21.3.tar.xz";
-      sha256 = "17fyan2jah059kj1i0sy7h901a4d2k7cc87sd84mskyys7g8vs1h";
-      name = "kde-gtk-config-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kde-gtk-config-5.21.5.tar.xz";
+      sha256 = "07gc8rydqnvsyrjvgy99ggl5imklzzrmhc36q7kdkp5zkjm7i4gk";
+      name = "kde-gtk-config-5.21.5.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kdeplasma-addons-5.21.3.tar.xz";
-      sha256 = "1181ax96csn4170p5blvhr679d7l865nby5a66swscyl3a5ys8b1";
-      name = "kdeplasma-addons-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kdeplasma-addons-5.21.5.tar.xz";
+      sha256 = "0zbxc58z4v3hl2m9p8gc035k4bmimwv1k0y6gsdviclvdhkdfv9w";
+      name = "kdeplasma-addons-5.21.5.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kgamma5-5.21.3.tar.xz";
-      sha256 = "0h8rwwd6lyfzmxsr5sfvllh1j8gk1pbq1w2fva8q534qrkqhqb49";
-      name = "kgamma5-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kgamma5-5.21.5.tar.xz";
+      sha256 = "1qaqcns4xnlxw6pjn7h3gdmwly8w94p9l03bnar7gb75ir342jz6";
+      name = "kgamma5-5.21.5.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/khotkeys-5.21.3.tar.xz";
-      sha256 = "1n3ahrb5mzrxap572ydal1sy5q71af97iy4i2fwbljdb6zb1l1bl";
-      name = "khotkeys-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/khotkeys-5.21.5.tar.xz";
+      sha256 = "04wwz6ji4pna4jd8ps14i9r1s86fdmm7dh8qfy3qz4jzf2gjjn1d";
+      name = "khotkeys-5.21.5.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kinfocenter-5.21.3.tar.xz";
-      sha256 = "1hj4mnx2mxb1ya7la05frx5c39cp3q7c5f78lnp6p8bkv3ylik72";
-      name = "kinfocenter-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kinfocenter-5.21.5.tar.xz";
+      sha256 = "177llrwhk54s91f69ny5v17w1kvqizap55h40kc1a5bndlgqfnki";
+      name = "kinfocenter-5.21.5.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kmenuedit-5.21.3.tar.xz";
-      sha256 = "0fc3sal11amaj5ydws86hdmc45zhrxkv6lc5sfy200wvff3ynjjj";
-      name = "kmenuedit-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kmenuedit-5.21.5.tar.xz";
+      sha256 = "0yzdx80jgjiaw7nk897m151pg67q11qyww2j8r8rx22bz06rfi70";
+      name = "kmenuedit-5.21.5.tar.xz";
     };
   };
   kscreen = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kscreen-5.21.3.tar.xz";
-      sha256 = "1f9gxdlj883ddmc1xgd1nmm8n6m5yd269kfx3m9bbp61cw4hrqlm";
-      name = "kscreen-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kscreen-5.21.5.tar.xz";
+      sha256 = "1nl43888jib16z0djzy3mck6h9rahdwwdwk76y1hp3nhbbaqnsa6";
+      name = "kscreen-5.21.5.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kscreenlocker-5.21.3.tar.xz";
-      sha256 = "1hjlpwwca9nrdwgsiy5ss5ainr1fy1wfvi4g599cvijb77qc84h0";
-      name = "kscreenlocker-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kscreenlocker-5.21.5.tar.xz";
+      sha256 = "0drnj3xdza9cbw8124ja2bic8y37k8q1p7mwfxvhgqciqyvpdb8x";
+      name = "kscreenlocker-5.21.5.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/ksshaskpass-5.21.3.tar.xz";
-      sha256 = "16c2kzdmw3viphaygdff29cvi06r53ag4a6hkxw15yrscw31n3ns";
-      name = "ksshaskpass-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/ksshaskpass-5.21.5.tar.xz";
+      sha256 = "06gi254yq4cr8f5rl83aprsvvham9h5q4jk6cfd67ghwk6ln7yd2";
+      name = "ksshaskpass-5.21.5.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/ksysguard-5.21.3.tar.xz";
-      sha256 = "0ys1idjqb9n67czdhlds6mhhiizxq8qq4rmds9nq8cm961g5kqsf";
-      name = "ksysguard-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/ksysguard-5.21.5.tar.xz";
+      sha256 = "1c0vr85j3b1pshyd4w12w9i57bg21gkpvdh1rgqimsnj7yw38fqh";
+      name = "ksysguard-5.21.5.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kwallet-pam-5.21.3.tar.xz";
-      sha256 = "1dnni2k4ry11mfjnfc0i44zww3glhsbr70qnpkl9dsf5rj4dcwj3";
-      name = "kwallet-pam-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kwallet-pam-5.21.5.tar.xz";
+      sha256 = "0svf0iabgfm0sizgar1cbxn2577r04nxh91fznq7jp5zj3lk0gxz";
+      name = "kwallet-pam-5.21.5.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kwayland-integration-5.21.3.tar.xz";
-      sha256 = "0kqw5dbsxmdm5fi34yq718ngkx5j23211jh4l9vl029qgbi42xhc";
-      name = "kwayland-integration-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kwayland-integration-5.21.5.tar.xz";
+      sha256 = "1wh44hy1mmrn4kg8jppqvxk9zzfrbiyqzc2i6lfnzic4llz7275x";
+      name = "kwayland-integration-5.21.5.tar.xz";
     };
   };
   kwayland-server = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kwayland-server-5.21.3.tar.xz";
-      sha256 = "0d3asblzz9c7cbjfdk33z26hn5n14rdrc3s9jm9awvcc1sd122a4";
-      name = "kwayland-server-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kwayland-server-5.21.5.tar.xz";
+      sha256 = "1j91iqzrip5ady4cz5ipiirs0dhvib05wwa8h7dqa7ysidpc3krg";
+      name = "kwayland-server-5.21.5.tar.xz";
     };
   };
   kwin = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kwin-5.21.3.tar.xz";
-      sha256 = "0ni0ipfm0hp90sq03m1a5lm6shxb2cf9j1a4kiqpaf7n62ch8f3w";
-      name = "kwin-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kwin-5.21.5.tar.xz";
+      sha256 = "0cc3h1n6g902ff50aj3w631cmg6gjaqfvqsfa5jkbxrvl7xfv1m2";
+      name = "kwin-5.21.5.tar.xz";
     };
   };
   kwrited = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/kwrited-5.21.3.tar.xz";
-      sha256 = "01nn94qmi8q38rdv694d9qs7zahsziclmkw49zy0wlffq4ivpk6x";
-      name = "kwrited-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/kwrited-5.21.5.tar.xz";
+      sha256 = "0ki9j44ccgrnm7nh8ddwwkv0144yn2ygfijf0yjyyzb5p5391rz1";
+      name = "kwrited-5.21.5.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/libkscreen-5.21.3.tar.xz";
-      sha256 = "1j2d1xpn48ks0wk9vvnvj9r03bc0ggrqvblyhs30p31svfihjs3a";
-      name = "libkscreen-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/libkscreen-5.21.5.tar.xz";
+      sha256 = "1fkw3rykpj4vvc1iw19kcjhvdbbll6bag91icaxznpir3bvry18k";
+      name = "libkscreen-5.21.5.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.21.3.1";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/libksysguard-5.21.3.1.tar.xz";
-      sha256 = "0nayjihapn71wrnzfb4wv9laafysl0x6sn98sbwhclapbdvxnw73";
-      name = "libksysguard-5.21.3.1.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/libksysguard-5.21.5.tar.xz";
+      sha256 = "1s7b336ljvnyjsqfn6f6jqbr7k9l4afh2b5rqj7d4ifjm63wdy2z";
+      name = "libksysguard-5.21.5.tar.xz";
     };
   };
   milou = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/milou-5.21.3.tar.xz";
-      sha256 = "0qbk0y783n7f7pl0akx252vyblrrgmsg5yr7ncaijq4x4l90f1yf";
-      name = "milou-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/milou-5.21.5.tar.xz";
+      sha256 = "061vd1slk1h0m4l22sxzkzliag4f8bmrv6cbfhdhhk5a90xxph1i";
+      name = "milou-5.21.5.tar.xz";
     };
   };
   oxygen = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/oxygen-5.21.3.tar.xz";
-      sha256 = "16yj1qx4mbi62brkn8wkcr6sz5dkbl2pf49zc1hadnxfm9wd3z0a";
-      name = "oxygen-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/oxygen-5.21.5.tar.xz";
+      sha256 = "0j9nv00fxy7l62w7486410ivn8hyfnv736740dqqpl1q4jvd62mc";
+      name = "oxygen-5.21.5.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-browser-integration-5.21.3.tar.xz";
-      sha256 = "1hz996lv3vvp1zldzpkb9dmvnn94v69j2vq9sfs446c25ggf9d6y";
-      name = "plasma-browser-integration-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-browser-integration-5.21.5.tar.xz";
+      sha256 = "16v43m5nd48if8j2rbrkklk3w1rg6icggx9hdcw6765q0h1251ab";
+      name = "plasma-browser-integration-5.21.5.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-desktop-5.21.3.tar.xz";
-      sha256 = "0bryk523qfzb5max1h460d67ir6xbrsws9bq72bdfbv1wkv64kyy";
-      name = "plasma-desktop-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-desktop-5.21.5.tar.xz";
+      sha256 = "09qsnc7dck4j54aj19g94jrd2ifgs7gbxql1ccidj8c0bhq7wl6y";
+      name = "plasma-desktop-5.21.5.tar.xz";
     };
   };
   plasma-disks = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-disks-5.21.3.tar.xz";
-      sha256 = "18a7dppfhb2wpb7sfhnayq96bxjlzygdz7sppcjikxil8klhv1aq";
-      name = "plasma-disks-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-disks-5.21.5.tar.xz";
+      sha256 = "1850ms6nmff4mlfshdbbjlf77siv9h6isldhxk36n555mrrq4791";
+      name = "plasma-disks-5.21.5.tar.xz";
     };
   };
   plasma-firewall = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-firewall-5.21.3.tar.xz";
-      sha256 = "0bzmcakzwiimc90bbpih1z5isrcfhdfwlslp4q3v3npppnivv9bw";
-      name = "plasma-firewall-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-firewall-5.21.5.tar.xz";
+      sha256 = "1wal8izrwhm20jkjiqf55y6pk2l3ljk16racb8isr73m568ii6ak";
+      name = "plasma-firewall-5.21.5.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-integration-5.21.3.tar.xz";
-      sha256 = "09dlbfildd8wl0nbss84yibljyl6cadx95q8q4n0c5wymyc4zqy1";
-      name = "plasma-integration-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-integration-5.21.5.tar.xz";
+      sha256 = "0x8chc6r3ibv4xxmgi27c0mkr5ym9imw8zzxl596llm4r5q5ax0y";
+      name = "plasma-integration-5.21.5.tar.xz";
     };
   };
   plasma-nano = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-nano-5.21.3.tar.xz";
-      sha256 = "1yqn29769nnfhiyqbpv15c0zxvkfzq4yvk9x9qlchbcwjc1gr23j";
-      name = "plasma-nano-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-nano-5.21.5.tar.xz";
+      sha256 = "04irqa41y6j4582035inkgwy1q27w0fq7fckfj7pbbjz4p9wqx26";
+      name = "plasma-nano-5.21.5.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-nm-5.21.3.tar.xz";
-      sha256 = "0d7v757kzd0pcvlz201m0njcz9y8j0bqkwbzdz3gik9s7x6rl73p";
-      name = "plasma-nm-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-nm-5.21.5.tar.xz";
+      sha256 = "18qbf2n08qcdw6pshhipnpr7sab8nmhj7bfr3qb23s4ildhfd64h";
+      name = "plasma-nm-5.21.5.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-pa-5.21.3.tar.xz";
-      sha256 = "16z9xzn5swrzz86yd8lykjphs92ghdsahfxjv0v9nj3ca24kfibp";
-      name = "plasma-pa-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-pa-5.21.5.tar.xz";
+      sha256 = "00lhr8j5aj1xhyfsdzvm67d1bhqihrp3ki4zl0bqgvy89fi1xvzn";
+      name = "plasma-pa-5.21.5.tar.xz";
     };
   };
   plasma-phone-components = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-phone-components-5.21.3.tar.xz";
-      sha256 = "1dhv0gdyk47dl8il6zwjdz84jmz2d4ppfyifzc2rzf0ys934scn0";
-      name = "plasma-phone-components-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-phone-components-5.21.5.tar.xz";
+      sha256 = "0sg78n5fr38n629h0mf66d61hh43hq2r1ag69krb5g0cdycdj6w1";
+      name = "plasma-phone-components-5.21.5.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-sdk-5.21.3.tar.xz";
-      sha256 = "0asbb7j5b8c4kixw1yf7mdfyd8gjrf57gdb2wfs1npasak0dw84w";
-      name = "plasma-sdk-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-sdk-5.21.5.tar.xz";
+      sha256 = "15ay8jiyyg2h25w4lnvxjnl606bqjk5j3asgnzjkz3n9ny9c1ah1";
+      name = "plasma-sdk-5.21.5.tar.xz";
     };
   };
   plasma-systemmonitor = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-systemmonitor-5.21.3.tar.xz";
-      sha256 = "1w1xzqmpzk016f8rkyx6cvm6lng3h177c441hird13n6v147l7ll";
-      name = "plasma-systemmonitor-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-systemmonitor-5.21.5.tar.xz";
+      sha256 = "1kwfk3b0y2ssj90qwv3diazl5bpf75aigxy7wvp6izbjsjn7yk9w";
+      name = "plasma-systemmonitor-5.21.5.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-tests-5.21.3.tar.xz";
-      sha256 = "000iwijpxxicixy5zbbgfs96h988x1d4wvjw90vagjw4hj361dk8";
-      name = "plasma-tests-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-tests-5.21.5.tar.xz";
+      sha256 = "107a0rq220mjhd2g77xaxgs9k29iyzfg5s64rbxrqs8kjzb0h90k";
+      name = "plasma-tests-5.21.5.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-thunderbolt-5.21.3.tar.xz";
-      sha256 = "1j0nb9p5wbgksxy19bxsz9ni9ys40r4arvs8rl8pvvv9hndqhndm";
-      name = "plasma-thunderbolt-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-thunderbolt-5.21.5.tar.xz";
+      sha256 = "161c94haajs7vnbb0lk94h4mb9kd0by7jai1f8lj0zksk6g5vf51";
+      name = "plasma-thunderbolt-5.21.5.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-vault-5.21.3.tar.xz";
-      sha256 = "1q59q6y8gx4qbp1a5nbsg8zmrdljacfqd3i5n214nlj6al13sg9j";
-      name = "plasma-vault-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-vault-5.21.5.tar.xz";
+      sha256 = "16wpv37jvcbl0p3s3jh15rsjf81bblpc4vxn508mg7z543dba6bm";
+      name = "plasma-vault-5.21.5.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-workspace-5.21.3.tar.xz";
-      sha256 = "1djanxc7mslw9hnbzlngf6pflc6byjzqb14ibilg3fxsir2jwq40";
-      name = "plasma-workspace-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-workspace-5.21.5.tar.xz";
+      sha256 = "02p931b0iz7gak8i7bhig3j9p7xs6fam7k6hhb5f1bd9pks6xccw";
+      name = "plasma-workspace-5.21.5.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plasma-workspace-wallpapers-5.21.3.tar.xz";
-      sha256 = "1qjkk3qfzz1id898kmx7xx6rr6p77y0jfwkjyf26abk51bdfk9lm";
-      name = "plasma-workspace-wallpapers-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plasma-workspace-wallpapers-5.21.5.tar.xz";
+      sha256 = "0jj0092mhnf45qk84zbisqbndvwg0c160dnra73p5qp1dldwv6km";
+      name = "plasma-workspace-wallpapers-5.21.5.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/plymouth-kcm-5.21.3.tar.xz";
-      sha256 = "0wmpvb06z0js50c9jpv61jlxbx9sf1f5lidzs5v4xs31shxc9sbg";
-      name = "plymouth-kcm-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/plymouth-kcm-5.21.5.tar.xz";
+      sha256 = "1janrgz8934pzz83npk02p63vxasbmr3dy39x36qr4qmk9b8qzv0";
+      name = "plymouth-kcm-5.21.5.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.21.3";
+    version = "1-5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/polkit-kde-agent-1-5.21.3.tar.xz";
-      sha256 = "06qpkf01665mjr49wyc3f336g6g7l93k8l35q0yyih58i3v04s0v";
-      name = "polkit-kde-agent-1-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/polkit-kde-agent-1-5.21.5.tar.xz";
+      sha256 = "1bc9sqg77xywly7yllzrr81agny96hj5as7gi8n0ji4i9l4av2z6";
+      name = "polkit-kde-agent-1-5.21.5.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/powerdevil-5.21.3.tar.xz";
-      sha256 = "0lk6bvc0mym3x3sd85bsvsxvm82vr40lcx355xjycxskf75c5jzz";
-      name = "powerdevil-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/powerdevil-5.21.5.tar.xz";
+      sha256 = "18yxs115qk9mgq0mi2ycaqs43c2m9rha7wz245yz2ib3axdk1c7x";
+      name = "powerdevil-5.21.5.tar.xz";
     };
   };
   qqc2-breeze-style = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/qqc2-breeze-style-5.21.3.tar.xz";
-      sha256 = "1ydvirjrkjbwfc2faz74dd9zlmfz18fa3cig143gna9rfr5api54";
-      name = "qqc2-breeze-style-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/qqc2-breeze-style-5.21.5.tar.xz";
+      sha256 = "01z91xr2m9j2ch2d3g10vqy60lflvzp8x9wa7p0nsjm5h3fd9jiy";
+      name = "qqc2-breeze-style-5.21.5.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/sddm-kcm-5.21.3.tar.xz";
-      sha256 = "1flqgfpiz66s7dsw1k95zdrbj7ka09r0i2pcdygnrwlls5yvqljz";
-      name = "sddm-kcm-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/sddm-kcm-5.21.5.tar.xz";
+      sha256 = "0v9drq9dlgrv5lkxj3sr2a7ky2h2cqghkq2csh43h8v7a7kwi02j";
+      name = "sddm-kcm-5.21.5.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/systemsettings-5.21.3.tar.xz";
-      sha256 = "08ynlg282x1klgpd43mh3ng4m579iq9hjlln96fqaw19g7x1i58x";
-      name = "systemsettings-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/systemsettings-5.21.5.tar.xz";
+      sha256 = "1kbsk37fmin0afw5wrn70504bn0cd5pm7i0bppmpi5y81mplwy4m";
+      name = "systemsettings-5.21.5.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.21.3";
+    version = "5.21.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.21.3/xdg-desktop-portal-kde-5.21.3.tar.xz";
-      sha256 = "05r1kbw39jmj2gfn42052y779l0k89kxh7xynw07igr7c5mxy4ih";
-      name = "xdg-desktop-portal-kde-5.21.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.21.5/xdg-desktop-portal-kde-5.21.5.tar.xz";
+      sha256 = "11c2ndmb432j4gwnvmyliycmd0fqyxj76ywki9hi66cv1lifm9xh";
+      name = "xdg-desktop-portal-kde-5.21.5.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix b/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
index ed00f37c6878..032209c2f182 100644
--- a/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
+++ b/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
@@ -1,17 +1,27 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, gtk, libSM, shared-mime-info }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, wrapGAppsHook
+, libxml2
+, gtk
+, libSM
+, shared-mime-info
+}:
 
-let
+stdenv.mkDerivation rec {
+  pname = "rox-filer";
   version = "2.11";
-  name = "rox-filer-${version}";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/rox/rox-filer-${version}.tar.bz2";
     sha256 = "a929bd32ee18ef7a2ed48b971574574592c42e34ae09f36604bf663d7c101ba8";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook
+  ];
   buildInputs = [ libxml2 gtk shared-mime-info libSM ];
   NIX_LDFLAGS = "-ldl -lm";
 
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
index b9ff011f3be1..4b7c258ca593 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkXfceDerivation, gtk3, gvfs, glib }:
+{ lib, mkXfceDerivation, gtk3, glib }:
 
 mkXfceDerivation {
   category = "apps";
@@ -8,12 +8,7 @@ mkXfceDerivation {
 
   sha256 = "8UDb4H3zxRKx2y+MRsozQoR3es0fs5ooR/5wBIE11bY=";
 
-  buildInputs = [ gtk3 glib gvfs ];
-
-  postPatch = ''
-    # exo-csource has been dropped from exo
-    substituteInPlace src/Makefile.am --replace exo-csource xdt-csource
-  '';
+  buildInputs = [ gtk3 glib ];
 
   meta = {
     description = "A frontend to easily manage connections to remote filesystems";
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
index 22fdd00cb2f0..33666c53bb80 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -1,16 +1,19 @@
-{ mkXfceDerivation, gobject-introspection, vala, gtk3, gtksourceview4, xfconf }:
+{ mkXfceDerivation, gobject-introspection, gtk3, gtksourceview4, gspell }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "mousepad";
-  version = "0.5.4";
+  version = "0.5.5";
   odd-unstable = false;
 
-  sha256 = "0yrmjs6cyzm08jz8wzrx8wdxj7zdbxn6x625109ckfcfxrkp4a2f";
+  sha256 = "1c985xb3395bn1024qhqqdnlkbn02zldsnybxsw49xqh55pa4a2n";
 
-  nativeBuildInputs = [ gobject-introspection vala ];
+  nativeBuildInputs = [ gobject-introspection ];
 
-  buildInputs = [ gtk3 gtksourceview4 xfconf ];
+  buildInputs = [ gtk3 gtksourceview4 gspell ];
+
+  # Use the GSettings keyfile backend rather than DConf
+  configureFlags = [ "--enable-keyfile-settings" ];
 
   meta = {
     description = "Simple text editor for Xfce";
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix b/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
index cc94683ddde4..4e6072c71123 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
@@ -12,7 +12,6 @@
 , libxslt
 , xfconf
 , gobject-introspection
-, gvfs
 , makeWrapper
 , symlinkJoin
 , thunarPlugins ? []
@@ -21,9 +20,9 @@
 let unwrapped = mkXfceDerivation {
   category = "xfce";
   pname = "thunar";
-  version = "4.16.6";
+  version = "4.16.8";
 
-  sha256 = "12zqwazsqdmghy4h2c4fwxha069l07d46i512395y22h7n6655rn";
+  sha256 = "1r7qkd6l0mgf97m1xnnizm7fkvl4a52r3hsds5z68y6myvb78p18";
 
   nativeBuildInputs = [
     docbook_xsl
@@ -35,7 +34,6 @@ let unwrapped = mkXfceDerivation {
     exo
     gdk-pixbuf
     gtk3
-    gvfs
     libX11
     libgudev
     libnotify
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
index 0a08d3882386..d0b1862c3f7c 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
@@ -1,7 +1,6 @@
 { mkXfceDerivation
 , exo
 , garcon
-, gettext
 , glib
 , gobject-introspection
 , gtk3
@@ -17,9 +16,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-panel";
-  version = "4.16.2";
+  version = "4.16.3";
 
-  sha256 = "0wy66viwjnp1c0lgf90fp3vyqy0f1m1kbfdym8a0yrv2b6sn3958";
+  sha256 = "085hxllsf792sgi8nn0qjfj5vclbrw2dgrgzl6gy55lxcbhkml9x";
 
   nativeBuildInputs = [
     gobject-introspection
@@ -45,9 +44,6 @@ mkXfceDerivation {
   patches = [ ./xfce4-panel-datadir.patch ];
 
   postPatch = ''
-    for f in $(find . -name \*.sh); do
-      substituteInPlace $f --replace gettext ${gettext}/bin/gettext
-    done
     substituteInPlace plugins/clock/clock.c \
        --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
   '';
@@ -56,6 +52,6 @@ mkXfceDerivation {
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   meta = {
-    description = "Xfce's panel";
+    description = "Panel for the Xfce desktop environment";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/default.nix b/nixpkgs/pkgs/desktops/xfce/default.nix
index 12f487f1784c..6ccd2a0c6124 100644
--- a/nixpkgs/pkgs/desktops/xfce/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/default.nix
@@ -15,9 +15,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh;
 
-  # Samba is a rather heavy dependency
-  gvfs = pkgs.gvfs.override { samba = null; };
-
   #### CORE
 
   exo = callPackage ./core/exo { };
@@ -83,7 +80,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   xfce4-terminal = callPackage ./applications/xfce4-terminal { };
 
   xfce4-screenshooter = callPackage ./applications/xfce4-screenshooter {
-    inherit (pkgs.gnome3) libsoup;
+    inherit (pkgs.gnome) libsoup;
   };
 
   xfdashboard = callPackage ./applications/xfdashboard {};
@@ -214,7 +211,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   libxfcegui4 = throw "libxfcegui4 is the deprecated Xfce GUI library. It has been superseded by the libxfce4ui library";
   xinitrc = xfce4-session.xinitrc;
   inherit (pkgs.gnome2) libglade;
-  inherit (pkgs.gnome3) vte gtksourceview;
+  inherit (pkgs.gnome) vte gtksourceview;
   xfce4-mixer-pulse = xfce4-mixer;
   thunar-bare = thunar.override {
     thunarPlugins = [];
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
index 1f79e0ffb298..d4492948ac6d 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
@@ -3,16 +3,11 @@
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-clipman-plugin";
-  version = "1.6.1";
-  sha256 = "03akijvry1n1fkziyvxwcksl4vy4lmnpgd5izjs8jai5sndhsszl";
+  version = "1.6.2";
+  sha256 = "0pm4pzq3imc0m09mg0zk6kwcn5yzdgiqgdbpws01q3xz58jmb4a6";
 
   buildInputs = [ libXtst libxfce4ui xfce4-panel xfconf ];
 
-  postPatch = ''
-    # exo-csource has been dropped from exo
-    substituteInPlace panel-plugin/Makefile.am --replace exo-csource xdt-csource
-  '';
-
   meta = {
     description = "Clipboard manager for Xfce panel";
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
index 2c83abe6575e..9224a22e53ba 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
@@ -1,11 +1,23 @@
-{ lib, stdenv, pkg-config, fetchFromGitHub, python3, bash, vala_0_48
-, dockbarx, gtk2, xfce, pythonPackages, wafHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, bash
+, dockbarx
+, gobject-introspection
+, keybinder3
+, pkg-config
+, python3Packages
+, vala_0_48
+, wafHook
+, wrapGAppsHook
+, xfce
+}:
 
 stdenv.mkDerivation rec {
   pname = "xfce4-dockbarx-plugin";
   version = "${ver}-${rev}";
   ver = "0.6";
-  rev = "5213876";
+  rev = "5213876151f1836f044e9902a22d1e682144c1e0";
 
   src = fetchFromGitHub {
     owner = "xuzhen";
@@ -14,12 +26,27 @@ stdenv.mkDerivation rec {
     sha256 = "0s8bljn4ga2hj480j0jwkc0npp8szbmirmcsys791gk32iq4dasn";
   };
 
-  pythonPath = [ dockbarx ];
+  pythonPath = [
+    dockbarx
+    python3Packages.pygobject3
+  ];
 
-  nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ python3 vala_0_48 gtk2 pythonPackages.wrapPython ]
-    ++ (with xfce; [ libxfce4util xfce4-panel xfconf xfce4-dev-tools ])
-    ++ pythonPath;
+  nativeBuildInputs = [
+    gobject-introspection
+    pkg-config
+    python3Packages.wrapPython
+    vala_0_48
+    wafHook
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    keybinder3
+    python3Packages.python
+    xfce.xfce4-panel
+    xfce.xfconf
+  ]
+  ++ pythonPath;
 
   postPatch = ''
     substituteInPlace wscript           --replace /usr/share/            "\''${PREFIX}/share/"
@@ -28,14 +55,15 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
     wrapPythonProgramsIn "$out/share/xfce4/panel/plugins" "$out $pythonPath"
   '';
 
   meta = with lib; {
     homepage = "https://github.com/xuzhen/xfce4-dockbarx-plugin";
-    description = "A plugins to embed DockbarX into xfce4-panel";
+    description = "Plugins to embed DockbarX into xfce4-panel";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = [ maintainers.volth ];
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/nixpkgs/pkgs/development/arduino/arduino-cli/default.nix b/nixpkgs/pkgs/development/arduino/arduino-cli/default.nix
index 95586d064d96..9629d90a3453 100644
--- a/nixpkgs/pkgs/development/arduino/arduino-cli/default.nix
+++ b/nixpkgs/pkgs/development/arduino/arduino-cli/default.nix
@@ -4,18 +4,18 @@ let
 
   pkg = buildGoModule rec {
     pname = "arduino-cli";
-    version = "0.12.1";
+    version = "0.18.1";
 
     src = fetchFromGitHub {
       owner = "arduino";
       repo = pname;
       rev = version;
-      sha256 = "1jlxs4szss2250zp8rz4bislgnzvqhxyp6z48dhx7zaam03hyf0w";
+      sha256 = "sha256-EtkONrP/uaetsdC47WsyQOE71Gsz0wKUiTiYThj8Kq8=";
     };
 
     subPackages = [ "." ];
 
-    vendorSha256 = "03yj2iar63qm10fw3jh9fvz57c2sqcmngb0mj5jkhbnwf8nl7mhc";
+    vendorSha256 = "sha256-kPIhG6lsH+0IrYfdlzdv/X/cUQb22Xza9Q6ywjKae/4=";
 
     doCheck = false;
 
@@ -32,15 +32,20 @@ let
 
   };
 
+in
+if stdenv.isLinux then
 # buildFHSUserEnv is needed because the arduino-cli downloads compiler
 # toolchains from the internet that have their interpreters pointed at
 # /lib64/ld-linux-x86-64.so.2
-in buildFHSUserEnv {
-  inherit (pkg) name meta;
-
-  runScript = "${pkg.outPath}/bin/arduino-cli";
-
-  extraInstallCommands = ''
-    mv $out/bin/$name $out/bin/arduino-cli
-  '';
-}
+  buildFHSUserEnv
+  {
+    inherit (pkg) name meta;
+
+    runScript = "${pkg.outPath}/bin/arduino-cli";
+
+    extraInstallCommands = ''
+      mv $out/bin/$name $out/bin/arduino-cli
+    '';
+  }
+else
+  pkg
diff --git a/nixpkgs/pkgs/development/arduino/platformio/core.nix b/nixpkgs/pkgs/development/arduino/platformio/core.nix
index 17e87f2cb6c5..ee8bbeabbfee 100644
--- a/nixpkgs/pkgs/development/arduino/platformio/core.nix
+++ b/nixpkgs/pkgs/development/arduino/platformio/core.nix
@@ -1,9 +1,25 @@
-{ stdenv, lib, buildPythonApplication, bottle
-, click, click-completion, colorama, semantic-version
-, lockfile, pyserial, requests
-, tabulate, pyelftools, marshmallow
-, pytest, tox, jsondiff
-, git, spdx-license-list-data
+{ stdenv, lib, buildPythonApplication
+, ajsonrpc
+, bottle
+, click
+, click-completion
+, colorama
+, git
+, jsondiff
+, lockfile
+, marshmallow
+, pyelftools
+, pyserial
+, pytest
+, requests
+, semantic-version
+, spdx-license-list-data
+, starlette
+, tabulate
+, tox
+, uvicorn
+, wsproto
+, zeroconf
 , version, src
 }:
 
@@ -78,10 +94,24 @@ in buildPythonApplication rec {
   pname = "platformio";
   inherit version src;
 
-  propagatedBuildInputs =  [
-    bottle click click-completion colorama git
-    lockfile pyserial requests semantic-version
-    tabulate pyelftools marshmallow
+  propagatedBuildInputs = [
+    ajsonrpc
+    bottle
+    click
+    click-completion
+    colorama
+    git
+    lockfile
+    marshmallow
+    pyelftools
+    pyserial
+    requests
+    semantic-version
+    starlette
+    tabulate
+    uvicorn
+    wsproto
+    zeroconf
   ];
 
   HOME = "/tmp";
@@ -105,6 +135,9 @@ in buildPythonApplication rec {
   postPatch = ''
     substitute platformio/package/manifest/schema.py platformio/package/manifest/schema.py \
       --subst-var-by SPDX_LICENSE_LIST_DATA '${spdx-license-list-data}'
+
+    substituteInPlace setup.py \
+      --replace "zeroconf==0.28.*" "zeroconf"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/arduino/platformio/default.nix b/nixpkgs/pkgs/development/arduino/platformio/default.nix
index 194385e79529..312c2d1044be 100644
--- a/nixpkgs/pkgs/development/arduino/platformio/default.nix
+++ b/nixpkgs/pkgs/development/arduino/platformio/default.nix
@@ -4,14 +4,14 @@
 let
   callPackage = newScope self;
 
-  version = "5.0.4";
+  version = "5.1.1";
 
   # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964
   src = fetchFromGitHub {
     owner = "platformio";
     repo = "platformio-core";
     rev = "v${version}";
-    sha256 = "15jnhlhkk9z6cyzxw065r3080dqan951klwf65p152vfzg79wf84";
+    sha256 = "1m9vq5r4g04n3ckmb3hrrc4ar5v31k6isc76bw4glrn2xb7r8c00";
   };
 
   self = {
diff --git a/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch b/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
index 511d81c3b012..e0016adcf7df 100644
--- a/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
+++ b/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
@@ -1,11 +1,15 @@
 diff --git a/platformio/package/manifest/schema.py b/platformio/package/manifest/schema.py
-index f293ba5a..a818271f 100644
+index addc4c5..514b0ad 100644
 --- a/platformio/package/manifest/schema.py
 +++ b/platformio/package/manifest/schema.py
-@@ -252,5 +252,4 @@ class ManifestSchema(BaseSchema):
+@@ -253,9 +253,4 @@ class ManifestSchema(BaseSchema):
      @staticmethod
      @memoized(expire="1h")
      def load_spdx_licenses():
--        spdx_data_url = "https://dl.bintray.com/platformio/dl-misc/spdx-licenses-3.json"
+-        version = "3.12"
+-        spdx_data_url = (
+-            "https://raw.githubusercontent.com/spdx/license-list-data/"
+-            "v%s/json/licenses.json" % version
+-        )
 -        return json.loads(fetch_remote_content(spdx_data_url))
 +        return json.load(open("@SPDX_LICENSE_LIST_DATA@/json/licenses.json"))
diff --git a/nixpkgs/pkgs/development/beam-modules/build-erlang-mk.nix b/nixpkgs/pkgs/development/beam-modules/build-erlang-mk.nix
index a94524276b26..d1afa55387d3 100644
--- a/nixpkgs/pkgs/development/beam-modules/build-erlang-mk.nix
+++ b/nixpkgs/pkgs/development/beam-modules/build-erlang-mk.nix
@@ -1,19 +1,21 @@
 { stdenv, writeText, erlang, perl, which, gitMinimal, wget, lib }:
 
-{ name, version
+{ name
+, version
 , src
 , setupHook ? null
-, buildInputs ? []
-, beamDeps ? []
+, buildInputs ? [ ]
+, beamDeps ? [ ]
 , postPatch ? ""
 , compilePorts ? false
 , installPhase ? null
 , buildPhase ? null
 , configurePhase ? null
-, meta ? {}
+, meta ? { }
 , enableDebugInfo ? false
-, buildFlags ? []
-, ... }@attrs:
+, buildFlags ? [ ]
+, ...
+}@attrs:
 
 with lib;
 
@@ -21,11 +23,11 @@ let
   debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "+debug_info";
 
   shell = drv: stdenv.mkDerivation {
-          name = "interactive-shell-${drv.name}";
-          buildInputs = [ drv ];
-    };
+    name = "interactive-shell-${drv.name}";
+    buildInputs = [ drv ];
+  };
 
-  pkg = self: stdenv.mkDerivation ( attrs // {
+  pkg = self: stdenv.mkDerivation (attrs // {
     app_name = name;
     name = "${name}-${version}";
     inherit version;
@@ -34,11 +36,13 @@ let
 
     inherit src;
 
-    setupHook = if setupHook == null
-    then writeText "setupHook.sh" ''
-       addToSearchPath ERL_LIBS "$1/lib/erlang/lib"
-    ''
-    else setupHook;
+    setupHook =
+      if setupHook == null
+      then
+        writeText "setupHook.sh" ''
+          addToSearchPath ERL_LIBS "$1/lib/erlang/lib"
+        ''
+      else setupHook;
 
     buildInputs = buildInputs ++ [ erlang perl which gitMinimal wget ];
     propagatedBuildInputs = beamDeps;
@@ -47,30 +51,33 @@ let
       ++ lib.optional (enableDebugInfo || erlang.debugInfo) ''ERL_OPTS="$ERL_OPTS +debug_info"''
       ++ buildFlags;
 
-    configurePhase = if configurePhase == null
-    then ''
-      runHook preConfigure
+    configurePhase =
+      if configurePhase == null
+      then ''
+        runHook preConfigure
 
-      # We shouldnt need to do this, but it seems at times there is a *.app in
-      # the repo/package. This ensures we start from a clean slate
-      make SKIP_DEPS=1 clean
+        # We shouldnt need to do this, but it seems at times there is a *.app in
+        # the repo/package. This ensures we start from a clean slate
+        make SKIP_DEPS=1 clean
 
-      runHook postConfigure
-    ''
-    else configurePhase;
+        runHook postConfigure
+      ''
+      else configurePhase;
 
-    buildPhase = if buildPhase == null
-    then ''
+    buildPhase =
+      if buildPhase == null
+      then ''
         runHook preBuild
 
         make $buildFlags "''${buildFlagsArray[@]}"
 
         runHook postBuild
-    ''
-    else buildPhase;
+      ''
+      else buildPhase;
 
-    installPhase =  if installPhase == null
-    then ''
+    installPhase =
+      if installPhase == null
+      then ''
         runHook preInstall
 
         mkdir -p $out/lib/erlang/lib/${name}
@@ -90,13 +97,14 @@ let
         fi
 
         runHook postInstall
-    ''
-    else installPhase;
+      ''
+      else installPhase;
 
     passthru = {
       packageName = name;
       env = shell self;
       inherit beamDeps;
     };
-});
-in fix pkg
+  });
+in
+fix pkg
diff --git a/nixpkgs/pkgs/development/beam-modules/build-mix.nix b/nixpkgs/pkgs/development/beam-modules/build-mix.nix
new file mode 100644
index 000000000000..728d249c97d8
--- /dev/null
+++ b/nixpkgs/pkgs/development/beam-modules/build-mix.nix
@@ -0,0 +1,85 @@
+{ stdenv, writeText, elixir, erlang, hex, lib }:
+
+{ name
+, version
+, src
+, buildInputs ? [ ]
+, nativeBuildInputs ? [ ]
+, beamDeps ? [ ]
+, propagatedBuildInputs ? [ ]
+, postPatch ? ""
+, compilePorts ? false
+, meta ? { }
+, enableDebugInfo ? false
+, mixEnv ? "prod"
+, ...
+}@attrs:
+
+with lib;
+let
+  shell = drv: stdenv.mkDerivation {
+    name = "interactive-shell-${drv.name}";
+    buildInputs = [ drv ];
+  };
+
+  pkg = self: stdenv.mkDerivation (attrs // {
+    name = "${name}-${version}";
+    inherit version src;
+
+    MIX_ENV = mixEnv;
+    MIX_DEBUG = if enableDebugInfo then 1 else 0;
+    HEX_OFFLINE = 1;
+
+    # add to ERL_LIBS so other modules can find at runtime.
+    # http://erlang.org/doc/man/code.html#code-path
+    # Mix also searches the code path when compiling with the --no-deps-check flag
+    setupHook = attrs.setupHook or
+      writeText "setupHook.sh" ''
+      addToSearchPath ERL_LIBS "$1/lib/erlang/lib"
+    '';
+
+    buildInputs = buildInputs ++ [ ];
+    nativeBuildInputs = nativeBuildInputs ++ [ elixir hex ];
+    propagatedBuildInputs = propagatedBuildInputs ++ beamDeps;
+
+    buildPhase = attrs.buildPhase or ''
+      runHook preBuild
+      export HEX_HOME="$TEMPDIR/hex"
+      export MIX_HOME="$TEMPDIR/mix"
+      mix compile --no-deps-check
+      runHook postBuild
+    '';
+
+    installPhase = attrs.installPhase or ''
+      runHook preInstall
+
+      # This uses the install path convention established by nixpkgs maintainers
+      # for all beam packages. Changing this will break compatibility with other
+      # builder functions like buildRebar3 and buildErlangMk.
+      mkdir -p "$out/lib/erlang/lib/${name}-${version}"
+
+      # Some packages like db_connection will use _build/shared instead of
+      # honoring the $MIX_ENV variable.
+      for reldir in _build/{$MIX_ENV,shared}/lib/${name}/{src,ebin,priv,include} ; do
+        if test -d $reldir ; then
+          # Some builds produce symlinks (eg: phoenix priv dircetory). They must
+          # be followed with -H flag.
+          cp  -Hrt "$out/lib/erlang/lib/${name}-${version}" "$reldir"
+        fi
+      done
+
+      runHook postInstall
+    '';
+
+    # stripping does not have any effect on beam files
+    # it is however needed for dependencies with NIFs like bcrypt for example
+    dontStrip = false;
+
+    passthru = {
+      packageName = name;
+      env = shell self;
+      inherit beamDeps;
+    };
+  });
+in
+fix pkg
diff --git a/nixpkgs/pkgs/development/beam-modules/build-rebar3.nix b/nixpkgs/pkgs/development/beam-modules/build-rebar3.nix
index 2e2f0a50b317..0dfd68f0993c 100644
--- a/nixpkgs/pkgs/development/beam-modules/build-rebar3.nix
+++ b/nixpkgs/pkgs/development/beam-modules/build-rebar3.nix
@@ -1,30 +1,34 @@
-{ stdenv, writeText, erlang, rebar3, openssl, libyaml,
-  pc, lib }:
+{ stdenv, writeText, erlang, rebar3WithPlugins, openssl, libyaml, lib }:
 
-{ name, version
+{ name
+, version
 , src
 , setupHook ? null
-, buildInputs ? [], beamDeps ? [], buildPlugins ? []
+, buildInputs ? [ ]
+, beamDeps ? [ ]
+, buildPlugins ? [ ]
 , postPatch ? ""
-, compilePorts ? false
 , installPhase ? null
 , buildPhase ? null
 , configurePhase ? null
-, meta ? {}
+, meta ? { }
 , enableDebugInfo ? false
-, ... }@attrs:
+, ...
+}@attrs:
 
 with lib;
 
 let
   debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "debug-info";
 
-  ownPlugins = buildPlugins ++ (if compilePorts then [pc] else []);
+  rebar3 = rebar3WithPlugins {
+    plugins = buildPlugins;
+  };
 
   shell = drv: stdenv.mkDerivation {
-          name = "interactive-shell-${drv.name}";
-          buildInputs = [ drv ];
-    };
+    name = "interactive-shell-${drv.name}";
+    buildInputs = [ drv ];
+  };
 
   customPhases = filterAttrs
     (_: v: v != null)
@@ -36,35 +40,26 @@ let
     inherit version;
 
     buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ];
-    propagatedBuildInputs = unique (beamDeps ++ ownPlugins);
-
-    dontStrip = true;
-    # The following are used by rebar3-nix-bootstrap
-    inherit compilePorts;
-    buildPlugins = ownPlugins;
+    propagatedBuildInputs = unique beamDeps;
 
     inherit src;
 
+    # stripping does not have any effect on beam files
+    # it is however needed for dependencies with NIFs
+    # false is the default but we keep this for readability
+    dontStrip = false;
+
     setupHook = writeText "setupHook.sh" ''
-       addToSearchPath ERL_LIBS "$1/lib/erlang/lib/"
+      addToSearchPath ERL_LIBS "$1/lib/erlang/lib/"
     '';
 
     postPatch = ''
       rm -f rebar rebar3
     '' + postPatch;
 
-    configurePhase = ''
-      runHook preConfigure
-      ${erlang}/bin/escript ${rebar3.bootstrapper} ${debugInfoFlag}
-      runHook postConfigure
-    '';
-
     buildPhase = ''
       runHook preBuild
-      HOME=. rebar3 compile
-      ${if compilePorts then ''
-        HOME=. rebar3 pc compile
-      '' else ""}
+      HOME=. rebar3 bare compile -path ""
       runHook postBuild
     '';
 
@@ -72,10 +67,9 @@ let
       runHook preInstall
       mkdir -p "$out/lib/erlang/lib/${name}-${version}"
       for reldir in src ebin priv include; do
-        fd="_build/default/lib/${name}/$reldir"
-        [ -d "$fd" ] || continue
-        cp -Hrt "$out/lib/erlang/lib/${name}-${version}" "$fd"
-        success=1
+        [ -d "$reldir" ] || continue
+        # $out/lib/erlang/lib is a convention used in nixpkgs for compiled BEAM packages
+        cp -Hrt "$out/lib/erlang/lib/${name}-${version}" "$reldir"
       done
       runHook postInstall
     '';
@@ -91,4 +85,4 @@ let
     };
   } // customPhases);
 in
-  fix pkg
+fix pkg
diff --git a/nixpkgs/pkgs/development/beam-modules/default.nix b/nixpkgs/pkgs/development/beam-modules/default.nix
index 6bf9e45e6228..6c33298ff926 100644
--- a/nixpkgs/pkgs/development/beam-modules/default.nix
+++ b/nixpkgs/pkgs/development/beam-modules/default.nix
@@ -18,11 +18,12 @@ let
       inherit callPackage erlang;
       beamPackages = self;
 
+      inherit (callPackage ../tools/build-managers/rebar3 { }) rebar3 rebar3WithPlugins;
       rebar = callPackage ../tools/build-managers/rebar { };
-      rebar3 = callPackage ../tools/build-managers/rebar3 { };
 
-      # rebar3 port compiler plugin is required by buildRebar3
       pc = callPackage ./pc { };
+      rebar3-proper = callPackage ./rebar3-proper { };
+      rebar3-nix = callPackage ./rebar3-nix { };
 
       fetchHex = callPackage ./fetch-hex.nix { };
 
@@ -32,11 +33,19 @@ let
       buildRebar3 = callPackage ./build-rebar3.nix { };
       buildHex = callPackage ./build-hex.nix { };
       buildErlangMk = callPackage ./build-erlang-mk.nix { };
+      buildMix = callPackage ./build-mix.nix { };
       fetchMixDeps = callPackage ./fetch-mix-deps.nix { };
       mixRelease = callPackage ./mix-release.nix { };
 
+      erlang-ls = callPackage ./erlang-ls { };
+
       # BEAM-based languages.
-      elixir = elixir_1_11;
+      elixir = elixir_1_12;
+
+      elixir_1_12 = lib'.callElixir ../interpreters/elixir/1.12.nix {
+        inherit erlang;
+        debugInfo = true;
+      };
 
       elixir_1_11 = lib'.callElixir ../interpreters/elixir/1.11.nix {
         inherit erlang;
@@ -54,10 +63,12 @@ let
       };
 
       elixir_1_8 = lib'.callElixir ../interpreters/elixir/1.8.nix {
-        inherit erlang;
+        erlang = pkgs.beam.interpreters.erlangR23;
         debugInfo = true;
       };
 
+      # Remove old versions of elixir, when the supports fades out:
+      # https://hexdocs.pm/elixir/compatibility-and-deprecations.html
       elixir_1_7 = lib'.callElixir ../interpreters/elixir/1.7.nix {
         inherit erlang;
         debugInfo = true;
@@ -65,21 +76,13 @@ let
 
       elixir_ls = callPackage ./elixir_ls.nix { inherit elixir fetchMixDeps mixRelease; };
 
-      # Remove old versions of elixir, when the supports fades out:
-      # https://hexdocs.pm/elixir/compatibility-and-deprecations.html
-
       lfe = lfe_1_3;
-      lfe_1_2 = lib'.callLFE ../interpreters/lfe/1.2.nix { inherit erlang buildRebar3 buildHex; };
       lfe_1_3 = lib'.callLFE ../interpreters/lfe/1.3.nix { inherit erlang buildRebar3 buildHex; };
 
       # Non hex packages. Examples how to build Rebar/Mix packages with and
       # without helper functions buildRebar3 and buildMix.
       hex = callPackage ./hex { };
       webdriver = callPackage ./webdriver { };
-      relxExe = callPackage ../tools/erlang/relx-exe { };
-
-      # An example of Erlang/C++ package.
-      cuter = callPackage ../tools/erlang/cuter { };
     };
 in
 makeExtensible packages
diff --git a/nixpkgs/pkgs/development/beam-modules/elixir_ls.nix b/nixpkgs/pkgs/development/beam-modules/elixir_ls.nix
index b61db92584d1..5afab0e1babd 100644
--- a/nixpkgs/pkgs/development/beam-modules/elixir_ls.nix
+++ b/nixpkgs/pkgs/development/beam-modules/elixir_ls.nix
@@ -14,7 +14,7 @@ mixRelease rec {
     fetchSubmodules = true;
   };
 
-  mixDeps = fetchMixDeps {
+  mixFodDeps = fetchMixDeps {
     pname = "mix-deps-${pname}";
     inherit src version;
     sha256 = "0r9x223imq4j9pn9niskyaybvk7jmq8dxcyzk7kwfsi128qig1a1";
diff --git a/nixpkgs/pkgs/development/beam-modules/erlang-ls/default.nix b/nixpkgs/pkgs/development/beam-modules/erlang-ls/default.nix
new file mode 100644
index 000000000000..b2a69a692783
--- /dev/null
+++ b/nixpkgs/pkgs/development/beam-modules/erlang-ls/default.nix
@@ -0,0 +1,46 @@
+{ fetchFromGitHub, fetchHex, rebar3Relx, buildRebar3, rebar3-proper, lib }:
+let
+  version = "0.16.0";
+  owner = "erlang-ls";
+  repo = "erlang_ls";
+  deps = import ./rebar-deps.nix {
+    inherit fetchHex fetchFromGitHub;
+    builder = buildRebar3;
+    overrides = (self: super: {
+      proper = super.proper.overrideAttrs (_: {
+        configurePhase = "true";
+      });
+    });
+  };
+in rebar3Relx {
+  name = "erlang-ls";
+  inherit version;
+  src = fetchFromGitHub {
+    inherit owner repo;
+    sha256 = "0l09yhj3rsb9zj4cs6a1bcfmi6zbyb3xk1lv494xbyiv5d61vkwm";
+    rev = version;
+  };
+  releaseType = "escript";
+  beamDeps = builtins.attrValues deps;
+  buildPlugins = [ rebar3-proper ];
+  buildPhase = "HOME=. make";
+  # based on https://github.com/erlang-ls/erlang_ls/blob/main/.github/workflows/build.yml
+  # these tests are excessively long and we should probably skip them
+  checkPhase = ''
+    HOME=. epmd -daemon
+    HOME=. rebar3 ct
+    HOME=. rebar3 proper --constraint_tries 100
+  '';
+  doCheck = true;
+  installPhase = ''
+    mkdir -p $out/bin
+    cp _build/default/bin/erlang_ls $out/bin/
+    cp _build/dap/bin/els_dap $out/bin/
+  '';
+  meta = with lib; {
+    homepage = "https://github.com/erlang-ls/erlang_ls";
+    description = "The Erlang Language Server";
+    platforms = platforms.unix;
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix b/nixpkgs/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix
new file mode 100644
index 000000000000..5d55ce0c5236
--- /dev/null
+++ b/nixpkgs/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix
@@ -0,0 +1,219 @@
+# Generated by rebar3_nix
+let fetchOnly = { src, ... }: src;
+in { builder ? fetchOnly, fetchHex, fetchFromGitHub, overrides ? (x: y: { }) }:
+let
+  self = packages // (overrides self packages);
+  packages = with self; {
+    getopt = builder {
+      name = "getopt";
+      version = "1.0.1";
+      src = fetchHex {
+        pkg = "getopt";
+        version = "1.0.1";
+        sha256 = "sha256-U+Grg7nOtlyWctPno1uAkum9ybPugHIUcaFhwQxZlZw=";
+      };
+      beamDeps = [ ];
+    };
+    zipper = builder {
+      name = "zipper";
+      version = "1.0.1";
+      src = fetchHex {
+        pkg = "zipper";
+        version = "1.0.1";
+        sha256 = "sha256-ah/T4fDMHR31ZCyaDOIXgDZBGwpclkKFHR2idr1zfC0=";
+      };
+      beamDeps = [ ];
+    };
+    quickrand = builder {
+      name = "quickrand";
+      version = "2.0.1";
+      src = fetchHex {
+        pkg = "quickrand";
+        version = "2.0.1";
+        sha256 = "sha256-FNtn1K72uIFYEOyfPM714yS3O1bK42h/mddSuFvdTJY=";
+      };
+      beamDeps = [ ];
+    };
+    providers = builder {
+      name = "providers";
+      version = "1.8.1";
+      src = fetchHex {
+        pkg = "providers";
+        version = "1.8.1";
+        sha256 = "sha256-5FdFrenEdqmkaeoIQOQYqxk2DcRPAaIzME4RikRIa6A=";
+      };
+      beamDeps = [ getopt ];
+    };
+    katana_code = builder {
+      name = "katana_code";
+      version = "0.2.1";
+      src = fetchHex {
+        pkg = "katana_code";
+        version = "0.2.1";
+        sha256 = "sha256-hEitP1bZgU+YoovmUPcZG91QZXXjRcwW1YZmCxD26ZI=";
+      };
+      beamDeps = [ ];
+    };
+    bucs = builder {
+      name = "bucs";
+      version = "1.0.16";
+      src = fetchHex {
+        pkg = "bucs";
+        version = "1.0.16";
+        sha256 = "sha256-/2pccqUArXrsHuO6FkrjxFDq3uiYsNFR4frKGKyNDWI=";
+      };
+      beamDeps = [ ];
+    };
+    yamerl = builder {
+      name = "yamerl";
+      version = "0.8.1";
+      src = fetchHex {
+        pkg = "yamerl";
+        version = "0.8.1";
+        sha256 = "sha256-lssw+dZDRP7Q74qS6fFvIH3mwE3/9PNmdSynn1vOsj8=";
+      };
+      beamDeps = [ ];
+    };
+    uuid = builder {
+      name = "uuid";
+      version = "2.0.1";
+      src = fetchHex {
+        pkg = "uuid_erl";
+        version = "2.0.1";
+        sha256 = "sha256-q1fKzNUfFwAR5fREzoZfhLQWBeSDqe/MRowa+uyHVTs=";
+      };
+      beamDeps = [ quickrand ];
+    };
+    tdiff = builder {
+      name = "tdiff";
+      version = "0.1.2";
+      src = fetchHex {
+        pkg = "tdiff";
+        version = "0.1.2";
+        sha256 = "sha256-4MLhaPmSUqWIl2jVyPHmUQoYRZLUz6BrIneKGNM9eHU=";
+      };
+      beamDeps = [ ];
+    };
+    redbug = builder {
+      name = "redbug";
+      version = "2.0.6";
+      src = fetchHex {
+        pkg = "redbug";
+        version = "2.0.6";
+        sha256 = "sha256-qtlJhnH0q5HqylCZ/oWmFhgVimNuYoaJLE989K8XHQQ=";
+      };
+      beamDeps = [ ];
+    };
+    rebar3_format = builder {
+      name = "rebar3_format";
+      version = "0.8.2";
+      src = fetchHex {
+        pkg = "rebar3_format";
+        version = "0.8.2";
+        sha256 = "sha256-yo/ydjjCFpWT0USdrL6IlWNBk+0zNOkGtU/JfwgfUhM=";
+      };
+      beamDeps = [ katana_code ];
+    };
+    ranch = builder {
+      name = "ranch";
+      version = "2.0.0";
+      src = fetchHex {
+        pkg = "ranch";
+        version = "2.0.0";
+        sha256 = "sha256-wgpIQMfWYjwZgS06fIKLLxvRU+8PEky2nFT+UdikKuA=";
+      };
+      beamDeps = [ ];
+    };
+    jsx = builder {
+      name = "jsx";
+      version = "3.0.0";
+      src = fetchHex {
+        pkg = "jsx";
+        version = "3.0.0";
+        sha256 = "sha256-N77KBDX1yoovRfdqRiEedkGPvvgMNvA2HCSfx1BZ3G0=";
+      };
+      beamDeps = [ ];
+    };
+    erlfmt = builder {
+      name = "erlfmt";
+      version = "git";
+      src = fetchFromGitHub {
+        owner = "whatsapp";
+        repo = "erlfmt";
+        rev = "2e93fc4a646111357642b0179a2a63151868d890";
+        sha256 = "0n7kygycn05aqdp5dyj192mja89l4nxv2wg16qg2c0bmw9s7j2mr";
+      };
+      beamDeps = [ ];
+    };
+    ephemeral = builder {
+      name = "ephemeral";
+      version = "2.0.4";
+      src = fetchHex {
+        pkg = "ephemeral";
+        version = "2.0.4";
+        sha256 = "sha256-Syk9gPdfnEV1/0ucjoiaVoAvQLAYv1fnTxlkTv7myFA=";
+      };
+      beamDeps = [ bucs ];
+    };
+    elvis_core = builder {
+      name = "elvis_core";
+      version = "1.1.1";
+      src = fetchHex {
+        pkg = "elvis_core";
+        version = "1.1.1";
+        sha256 = "sha256-ORyVuqSfJxjX+0mLzwgEbd/CAs8Kq2Oy5DknFIXJ3EI=";
+      };
+      beamDeps = [ katana_code zipper ];
+    };
+    docsh = builder {
+      name = "docsh";
+      version = "0.7.2";
+      src = fetchHex {
+        pkg = "docsh";
+        version = "0.7.2";
+        sha256 = "sha256-Tn20YbsHVA0rw9NmuFE/AZdxLQSVu4V0TzZ9OBUHYTQ=";
+      };
+      beamDeps = [ providers ];
+    };
+    proper_contrib = builder {
+      name = "proper_contrib";
+      version = "0.2.0";
+      src = fetchHex {
+        pkg = "proper_contrib";
+        version = "0.2.0";
+        sha256 = "sha256-jFRRL1zr9JKaG1eqMDfcKk2xe93uOrXUenB14icVCBU=";
+      };
+      beamDeps = [ proper ];
+    };
+    proper = builder {
+      name = "proper";
+      version = "1.3.0";
+      src = fetchHex {
+        pkg = "proper";
+        version = "1.3.0";
+        sha256 = "sha256-SqGS/M3dA/2+UP72IL6dTS+SY1tU9V+4OuwYWZRAPLw=";
+      };
+      beamDeps = [ ];
+    };
+    meck = builder {
+      name = "meck";
+      version = "0.9.0";
+      src = fetchHex {
+        pkg = "meck";
+        version = "0.9.0";
+        sha256 = "sha256-+BPpDdC4myUWoCAaNV6EsavHi1dRqgy/ZpqdhagQrGM=";
+      };
+      beamDeps = [ ];
+    };
+    coveralls = builder {
+      name = "coveralls";
+      version = "2.2.0";
+      src = fetchHex {
+        pkg = "coveralls";
+        version = "2.2.0";
+        sha256 = "sha256-zVTbCqjGS1OSgBicVhns7hOkaiiw8ct3RUTdzBZiBKM=";
+      };
+      beamDeps = [ jsx ];
+    };
+  };
+in self
diff --git a/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix b/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix
index 73365bd1a93e..0c6f4e35a90e 100644
--- a/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix
+++ b/nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix
@@ -7,6 +7,7 @@
 , mixEnv ? "prod"
 , debug ? false
 , meta ? { }
+, patches ? []
 , ...
 }@attrs:
 
@@ -36,6 +37,8 @@ stdenvNoCC.mkDerivation (attrs // {
     runHook postConfigure
   '';
 
+  inherit patches;
+
   dontBuild = true;
 
   installPhase = attrs.installPhase or ''
diff --git a/nixpkgs/pkgs/development/beam-modules/mix-release.nix b/nixpkgs/pkgs/development/beam-modules/mix-release.nix
index 320fcaa9c9b7..80e8721302e8 100644
--- a/nixpkgs/pkgs/development/beam-modules/mix-release.nix
+++ b/nixpkgs/pkgs/development/beam-modules/mix-release.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, elixir, erlang, findutils, hex, rebar, rebar3, fetchMixDeps, makeWrapper, git }:
+{ stdenv, lib, elixir, erlang, findutils, hex, rebar, rebar3, fetchMixDeps, makeWrapper, git, ripgrep }:
 
 { pname
 , version
@@ -8,38 +8,48 @@
 , enableDebugInfo ? false
 , mixEnv ? "prod"
 , compileFlags ? [ ]
-, mixDeps ? null
+  # mix fixed output derivation dependencies
+, mixFodDeps ? null
+  # mix dependencies generated by mix2nix
+  # this assumes each dependency is built by buildMix or buildRebar3
+  # each dependency needs to have a setup hook to add the lib path to $ERL_LIBS
+  # this is how mix will find dependencies
+, mixNixDeps ? { }
 , ...
 }@attrs:
 let
-  overridable = builtins.removeAttrs attrs [ "compileFlags" ];
-
+  # remove non standard attributes that cannot be coerced to strings
+  overridable = builtins.removeAttrs attrs [ "compileFlags" "mixNixDeps" ];
 in
+assert mixNixDeps != { } -> mixFodDeps == null;
 stdenv.mkDerivation (overridable // {
-  nativeBuildInputs = nativeBuildInputs ++ [ erlang hex elixir makeWrapper git ];
+  # rg is used as a better grep to search for erlang references in the final release
+  nativeBuildInputs = nativeBuildInputs ++ [ erlang hex elixir makeWrapper git ripgrep ];
+  buildInputs = builtins.attrValues mixNixDeps;
 
   MIX_ENV = mixEnv;
   MIX_DEBUG = if enableDebugInfo then 1 else 0;
   HEX_OFFLINE = 1;
   DEBUG = if enableDebugInfo then 1 else 0; # for Rebar3 compilation
   # the api with `mix local.rebar rebar path` makes a copy of the binary
+  # some older dependencies still use rebar
   MIX_REBAR = "${rebar}/bin/rebar";
   MIX_REBAR3 = "${rebar3}/bin/rebar3";
 
   postUnpack = ''
     export HEX_HOME="$TEMPDIR/hex"
     export MIX_HOME="$TEMPDIR/mix"
-    # compilation of the dependencies will require
-    # that the dependency path is writable
-    # thus a copy to the TEMPDIR is inevitable here
-    export MIX_DEPS_PATH="$TEMPDIR/deps"
 
     # Rebar
     export REBAR_GLOBAL_CONFIG_DIR="$TEMPDIR/rebar3"
     export REBAR_CACHE_DIR="$TEMPDIR/rebar3.cache"
 
-    ${lib.optionalString (mixDeps != null) ''
-      cp --no-preserve=mode -R "${mixDeps}" "$MIX_DEPS_PATH"
+    ${lib.optionalString (mixFodDeps != null) ''
+      # compilation of the dependencies will require
+      # that the dependency path is writable
+      # thus a copy to the TEMPDIR is inevitable here
+      export MIX_DEPS_PATH="$TEMPDIR/deps"
+      cp --no-preserve=mode -R "${mixFodDeps}" "$MIX_DEPS_PATH"
     ''
     }
 
@@ -74,8 +84,10 @@ stdenv.mkDerivation (overridable // {
     runHook postInstall
   '';
 
-  fixupPhase = ''
-    runHook preFixup
+  # Stripping of the binary is intentional
+  # even though it does not affect beam files
+  # it is necessary for NIFs binaries
+  postFixup = ''
     if [ -e "$out/bin/${pname}.bat" ]; then # absent in special cases, i.e. elixir-ls
       rm "$out/bin/${pname}.bat" # windows file
     fi
@@ -86,21 +98,20 @@ stdenv.mkDerivation (overridable // {
     if [ -e $out/releases/COOKIE ]; then # absent in special cases, i.e. elixir-ls
       rm $out/releases/COOKIE
     fi
-    # TODO remove the uneeded reference too erlang
-    # one possible way would be
-    # for f in $(${findutils}/bin/find $out -name start); do
-    #   substituteInPlace $f \
-    #     --replace 'ROOTDIR=${erlang}/lib/erlang' 'ROOTDIR=""'
-    # done
-    # What is left to do is to check that erlang is not required on
-    # the host
-
-    patchShebangs $out
-    runHook postFixup
+    # removing unused erlang reference from resulting derivation to reduce
+    # closure size
+    if [ -e $out/erts-* ]; then
+      echo "ERTS found in $out - removing references to erlang to reduce closure size"
+      # there is a link in $out/erts-*/bin/start always
+      # sometimes there are links in dependencies like bcrypt compiled binaries
+      for file in $(rg "${erlang}/lib/erlang" "$out" --text --files-with-matches); do
+        substituteInPlace "$file" --replace "${erlang}/lib/erlang" "$out"
+      done
+    fi
   '';
-  # TODO figure out how to do a Fixed Output Derivation and add the output hash
-  # This doesn't play well at the moment with Phoenix projects
-  # for example that have frontend dependencies
 
+  # TODO investigate why the resulting closure still has
+  # a reference to erlang.
+  # uncommenting the following will fail the build
   # disallowedReferences = [ erlang ];
 })
diff --git a/nixpkgs/pkgs/development/beam-modules/pc/default.nix b/nixpkgs/pkgs/development/beam-modules/pc/default.nix
index a6d7c1c44de3..2896a325e0e1 100644
--- a/nixpkgs/pkgs/development/beam-modules/pc/default.nix
+++ b/nixpkgs/pkgs/development/beam-modules/pc/default.nix
@@ -2,8 +2,8 @@
 
 buildHex {
   name = "pc";
-  version = "1.6.0";
-  sha256 = "0xq411ig5ny3iilkkkqa4vm3w3dgjc9cfzkqwk8pm13dw9mcm8h0";
+  version = "1.12.0";
+  sha256 = "1gdvixy4j560qjdiv5qjgnl5wl3rrn231dv1m4vdq4b9l4g4p27x";
 
   meta = {
     description = "a rebar3 port compiler for native code";
diff --git a/nixpkgs/pkgs/development/beam-modules/rebar3-nix/default.nix b/nixpkgs/pkgs/development/beam-modules/rebar3-nix/default.nix
new file mode 100644
index 000000000000..ff248700d783
--- /dev/null
+++ b/nixpkgs/pkgs/development/beam-modules/rebar3-nix/default.nix
@@ -0,0 +1,18 @@
+{ lib, buildRebar3, fetchFromGitHub }:
+buildRebar3 rec {
+  name = "rebar3_nix";
+  version = "0.1.0";
+  src = fetchFromGitHub {
+    owner = "erlang-nix";
+    repo = name;
+    rev = "v${version}";
+    sha256 = "17w8m4aqqgvhpx3xyc7x2qzsrd3ybzc83ay50zs1gyd1b8csh2wf";
+  };
+
+  meta = {
+    description = "nix integration for rebar3";
+    license = lib.licenses.bsd3;
+    homepage = "https://github.com/erlang-nix/rebar3_nix";
+    maintainers = with lib.maintainers; [ dlesl gleber ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/beam-modules/rebar3-proper/default.nix b/nixpkgs/pkgs/development/beam-modules/rebar3-proper/default.nix
new file mode 100644
index 000000000000..2955beeeb5b5
--- /dev/null
+++ b/nixpkgs/pkgs/development/beam-modules/rebar3-proper/default.nix
@@ -0,0 +1,13 @@
+{ lib, buildHex }:
+
+buildHex {
+  name = "rebar3_proper";
+  version = "0.12.1";
+  sha256 = "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6";
+
+  meta = {
+    description = "rebar3 proper plugin";
+    license = lib.licenses.bsd3;
+    homepage = "https://github.com/ferd/rebar3_proper";
+  };
+}
diff --git a/nixpkgs/pkgs/development/beam-modules/rebar3-release.nix b/nixpkgs/pkgs/development/beam-modules/rebar3-release.nix
index 1b0e27891d83..98d10cb87c4f 100644
--- a/nixpkgs/pkgs/development/beam-modules/rebar3-release.nix
+++ b/nixpkgs/pkgs/development/beam-modules/rebar3-release.nix
@@ -1,8 +1,10 @@
-{ stdenv, writeText, erlang, rebar3, openssl,
+{ stdenv, erlang, rebar3WithPlugins, openssl,
   lib }:
 
 { name, version
 , src
+, beamDeps ? []
+, buildPlugins ? []
 , checkouts ? null
 , releaseType
 , buildInputs ? []
@@ -12,7 +14,6 @@
 , buildPhase ? null
 , configurePhase ? null
 , meta ? {}
-, enableDebugInfo ? false
 , ... }@attrs:
 
 with lib;
@@ -27,28 +28,35 @@ let
     (_: v: v != null)
     { inherit setupHook configurePhase buildPhase installPhase; };
 
-  pkg = self: stdenv.mkDerivation (attrs // {
+  # When using the `beamDeps` argument, it is important that we use
+  # `rebar3WithPlugins` here even when there are no plugins. The vanilla
+  # `rebar3` package is an escript archive with bundled dependencies which can
+  # interfere with those in the app we are trying to build. `rebar3WithPlugins`
+  # doesn't have this issue since it puts its own deps last on the code path.
+  rebar3 = rebar3WithPlugins {
+    plugins = buildPlugins;
+  };
+
+  pkg =
+    assert beamDeps != [] -> checkouts == null;
+    self: stdenv.mkDerivation (attrs // {
 
     name = "${name}-${version}";
     inherit version;
 
-    buildInputs = buildInputs ++ [ erlang rebar3 openssl ];
-    propagatedBuildInputs = [checkouts];
+    buildInputs = buildInputs ++ [ erlang rebar3 openssl ] ++ beamDeps;
 
-    dontStrip = true;
+    # ensure we strip any native binaries (eg. NIFs, ports)
+    stripDebugList = lib.optional (releaseType == "release") "rel";
 
     inherit src;
 
-    setupHook = writeText "setupHook.sh" ''
-       addToSearchPath ERL_LIBS "$1/lib/erlang/lib/"
-    '';
+    REBAR_IGNORE_DEPS = beamDeps != [ ];
 
     configurePhase = ''
       runHook preConfigure
-      ${if checkouts != null then
-          "cp --no-preserve=all -R ${checkouts}/_checkouts ."
-        else
-          ""}
+      ${lib.optionalString (checkouts != null)
+      "cp --no-preserve=all -R ${checkouts}/_checkouts ."}
       runHook postConfigure
     '';
 
@@ -65,11 +73,22 @@ let
       dir=${if releaseType == "escript"
             then "bin"
             else "rel"}
-      mkdir -p "$out/$dir"
+      mkdir -p "$out/$dir" "$out/bin"
       cp -R --preserve=mode "_build/${profile}/$dir" "$out"
+      ${lib.optionalString (releaseType == "release")
+        "find $out/rel/*/bin -type f -executable -exec ln -s -t $out/bin {} \\;"}
       runHook postInstall
     '';
 
+    postInstall = ''
+      for dir in $out/rel/*/erts-*; do
+        echo "ERTS found in $dir - removing references to erlang to reduce closure size"
+        for f in $dir/bin/{erl,start}; do
+          substituteInPlace "$f" --replace "${erlang}/lib/erlang" "''${dir/\/erts-*/}"
+        done
+      done
+    '';
+
     meta = {
       inherit (erlang.meta) platforms;
     } // meta;
diff --git a/nixpkgs/pkgs/development/compilers/acme/default.nix b/nixpkgs/pkgs/development/compilers/acme/default.nix
index f8731f554718..cebcbf3b2fa5 100644
--- a/nixpkgs/pkgs/development/compilers/acme/default.nix
+++ b/nixpkgs/pkgs/development/compilers/acme/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "acme";
-  version = "unstable-2020-12-27";
+  version = "unstable-2021-02-14";
 
   src = fetchsvn {
     url = "svn://svn.code.sf.net/p/acme-crossass/code-0/trunk";
-    rev = "314";
-    sha256 = "08zg26rh19nlif7id91nv0syx5n243ssxhfw0nk2r2bhjm5jrjz1";
+    rev = "319";
+    sha256 = "sha256-VifIQ+UEVMKJ+cNS+Xxusazinr5Cgu1lmGuhqj/5Mpk=";
   };
 
   sourceRoot = "code-0-r${src.rev}/src";
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
index 0bcfcafaae1b..bcd3309fc398 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
@@ -3,8 +3,11 @@
 { swingSupport ? true # not used for now
 , lib, stdenv
 , fetchurl
+, setJavaClassPath
 }:
 
+assert (stdenv.isDarwin && stdenv.isx86_64);
+
 let cpuName = stdenv.hostPlatform.parsed.cpu.name;
     result = stdenv.mkDerivation {
   name = if sourcePerArch.packageType == "jdk"
@@ -30,7 +33,11 @@ let cpuName = stdenv.hostPlatform.parsed.cpu.name;
 
     ln -s $out/Contents/Home/* $out/
 
+    # Propagate the setJavaClassPath setup hook from the JDK so that
+    # any package that depends on the JDK has $CLASSPATH set up
+    # properly.
     mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
     # Set JAVA_HOME automatically.
     cat <<EOF >> $out/nix-support/setup-hook
@@ -49,6 +56,7 @@ let cpuName = stdenv.hostPlatform.parsed.cpu.name;
     platforms = [ "x86_64-darwin" ]; # some inherit jre.meta.platforms
     maintainers = with lib.maintainers; [ taku0 ];
     inherit knownVulnerabilities;
+    mainProgram = "java";
   };
 
 }; in result
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
index 95e72facaee2..f61d925036c0 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
@@ -5,8 +5,9 @@
 , fetchurl
 , autoPatchelfHook
 , makeWrapper
+, setJavaClassPath
 # minimum dependencies
-, alsaLib
+, alsa-lib
 , fontconfig
 , freetype
 , libffi
@@ -43,7 +44,7 @@ let result = stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib # libasound.so wanted by lib/libjsound.so
+    alsa-lib # libasound.so wanted by lib/libjsound.so
     fontconfig
     freetype
     stdenv.cc.cc.lib # libstdc++.so.6
@@ -74,7 +75,11 @@ let result = stdenv.mkDerivation rec {
     # https://github.com/NixOS/nixpkgs/issues/57733
     find "$out" -name 'libfreetype.so*' -delete
 
+    # Propagate the setJavaClassPath setup hook from the JDK so that
+    # any package that depends on the JDK has $CLASSPATH set up
+    # properly.
     mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
     # Set JAVA_HOME automatically.
     cat <<EOF >> "$out/nix-support/setup-hook"
@@ -108,6 +113,7 @@ let result = stdenv.mkDerivation rec {
     platforms = lib.mapAttrsToList (arch: _: arch + "-linux") sourcePerArch; # some inherit jre.meta.platforms
     maintainers = with lib.maintainers; [ taku0 ];
     inherit knownVulnerabilities;
+    mainProgram = "java";
   };
 
 }; in result
diff --git a/nixpkgs/pkgs/development/compilers/avian/default.nix b/nixpkgs/pkgs/development/compilers/avian/default.nix
deleted file mode 100644
index d39aa2806a45..000000000000
--- a/nixpkgs/pkgs/development/compilers/avian/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, zlib, jdk, CoreServices, Foundation }:
-
-stdenv.mkDerivation rec {
-  pname = "avian";
-  version = "1.2.0";
-
-  src = fetchFromGitHub {
-    owner = "readytalk";
-    repo = "avian";
-    rev = "v${version}";
-    sha256 = "1j2y45cpqk3x6a743mgpg7z3ivwm7qc9jy6xirvay7ah1qyxmm48";
-  };
-
-  buildInputs = [ zlib jdk ]
-    ++ lib.optionals stdenv.isDarwin [ CoreServices Foundation ];
-
-  NIX_CFLAGS_COMPILE = "-Wno-error";
-
-  postPatch = ''
-    substituteInPlace makefile \
-        --replace 'g++' 'c++' \
-        --replace 'gcc' 'cc'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp build/*/avian $out/bin/
-    cp build/*/avian-dynamic $out/bin/
-  '';
-
-  meta = {
-    description = "Lightweight Java virtual machine";
-    longDescription = ''
-      Avian is a lightweight virtual machine and class library designed
-      to provide a useful subset of Java’s features, suitable for
-      building self-contained applications.
-    '';
-    homepage = "https://readytalk.github.io/avian/";
-    license = lib.licenses.isc;
-    platforms = lib.platforms.all;
-    maintainers = [ lib.maintainers.earldouglas ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/cc65/default.nix b/nixpkgs/pkgs/development/compilers/cc65/default.nix
index 6e201ac79339..cb2410ba06a4 100644
--- a/nixpkgs/pkgs/development/compilers/cc65/default.nix
+++ b/nixpkgs/pkgs/development/compilers/cc65/default.nix
@@ -1,8 +1,6 @@
-{ lib, stdenv
-, fetchFromGitHub
-}:
+{ lib, gccStdenv, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+gccStdenv.mkDerivation rec {
   pname = "cc65";
   version = "2.19";
 
@@ -13,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "01a15yvs455qp20hri2pbg2wqvcip0d50kb7dibi9427hqk9cnj4";
   };
 
-  makeFlags = [ "PREFIX=${placeholder "out"}"];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  enableParallelBuilding = true;
 
   meta = with lib; {
     homepage = "https://cc65.github.io/";
@@ -53,6 +53,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.zlib;
     maintainers = with maintainers; [ AndersonTorres ];
-    platforms = with platforms; unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/compcert/default.nix b/nixpkgs/pkgs/development/compilers/compcert/default.nix
index 611efb11f445..beafd6414f43 100644
--- a/nixpkgs/pkgs/development/compilers/compcert/default.nix
+++ b/nixpkgs/pkgs/development/compilers/compcert/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper
 , coqPackages, ocamlPackages, coq2html
 , tools ? stdenv.cc
-, version ? "3.8"
+, version ? "3.9"
 }:
 
 let
-  ocaml-pkgs      = with ocamlPackages; [ ocaml findlib menhir ];
+  ocaml-pkgs      = with ocamlPackages; [ ocaml findlib menhir menhirLib ];
   ccomp-platform = if stdenv.isDarwin then "x86_64-macosx" else "x86_64-linux";
   inherit (coqPackages) coq flocq;
   inherit (lib) optional optionalString;
@@ -27,6 +27,37 @@ let param = {
   };
   "3.8" = {
     sha256 = "1gzlyxvw64ca12qql3wnq3bidcx9ygsklv9grjma3ib4hvg7vnr7";
+    patches = [
+     # Support for Coq 8.12.2
+     (fetchpatch {
+        url = "https://github.com/AbsInt/CompCert/commit/06956421b4307054af221c118c5f59593c0e67b9.patch";
+        sha256 = "1f90q6j3xfvnf3z830bkd4d8526issvmdlrjlc95bfsqs78i1yrl";
+      })
+     # Support for Coq 8.13.0
+     (fetchpatch {
+        url = "https://github.com/AbsInt/CompCert/commit/0895388e7ebf9c9f3176d225107e21968919fb97.patch";
+        sha256 = "0qhkzgb2xl5kxys81pldp3mr39gd30lvr2l2wmplij319vp3xavd";
+      })
+     # Support for Coq 8.13.1
+     (fetchpatch {
+        url = "https://github.com/AbsInt/CompCert/commit/6bf310dd678285dc193798e89fc2c441d8430892.patch";
+        sha256 = "026ahhvpj5pksy90f8pnxgmhgwfqk4kwyvcf8x3dsanvz98d4pj5";
+      })
+     # Drop support for Coq < 8.9
+     (fetchpatch {
+        url = "https://github.com/AbsInt/CompCert/commit/7563a5df926a4c6fb1489a7a4c847641c8a35095.patch";
+        sha256 = "05vkslzy399r3dm6dmjs722rrajnyfa30xsyy3djl52isvn4gyfb";
+      })
+     # Support for Coq 8.13.2
+     (fetchpatch {
+        url = "https://github.com/AbsInt/CompCert/commit/48bc183167c4ce01a5c9ea86e49d60530adf7290.patch";
+        sha256 = "0j62lppfk26d1brdp3qwll2wi4gvpx1k70qivpvby5f7dpkrkax1";
+      })
+    ];
+    useExternalFlocq = true;
+  };
+  "3.9" = {
+    sha256 = "1srcz2dqrvmbvv5cl66r34zqkm0hsbryk7gd3i9xx4slahc9zvdb";
     useExternalFlocq = true;
   };
 }."${version}"; in
@@ -51,6 +82,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace ./configure \
+      --replace \$\{toolprefix\}ar 'ar' \
       --replace '{toolprefix}gcc' '{toolprefix}cc'
   '';
 
diff --git a/nixpkgs/pkgs/development/compilers/copper/default.nix b/nixpkgs/pkgs/development/compilers/copper/default.nix
index dd6af73547af..736004fb580d 100644
--- a/nixpkgs/pkgs/development/compilers/copper/default.nix
+++ b/nixpkgs/pkgs/development/compilers/copper/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://tibleiz.net/copper/";
     license = licenses.bsd2;
     platforms = platforms.x86_64;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/crystal/default.nix b/nixpkgs/pkgs/development/compilers/crystal/default.nix
index 58e4b3b355d2..8fc4a15efced 100644
--- a/nixpkgs/pkgs/development/compilers/crystal/default.nix
+++ b/nixpkgs/pkgs/development/compilers/crystal/default.nix
@@ -146,7 +146,7 @@ let
         "CRYSTAL_CONFIG_VERSION=${version}"
       ];
 
-      LLVM_CONFIG = "${llvmPackages.llvm}/bin/llvm-config";
+      LLVM_CONFIG = "${llvmPackages.llvm.dev}/bin/llvm-config";
 
       FLAGS = [
         "--release"
diff --git a/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix b/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
index c18eb9d534a2..c8a1964814e5 100644
--- a/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
+++ b/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
@@ -6,7 +6,7 @@ args@
 , developerProgram ? false
 , runPatches ? []
 , addOpenGLRunpath
-, alsaLib
+, alsa-lib
 , expat
 , fetchurl
 , fontconfig
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   runtimeDependencies = [
     ncurses5 expat python27 zlib glibc
     xorg.libX11 xorg.libXext xorg.libXrender xorg.libXt xorg.libXtst xorg.libXi xorg.libXext
-    gtk2 glib fontconfig freetype unixODBC alsaLib
+    gtk2 glib fontconfig freetype unixODBC alsa-lib
   ];
 
   rpath = "${lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc.lib}/lib64";
@@ -147,6 +147,10 @@ stdenv.mkDerivation rec {
     mkdir -p $out/nix-support
     echo "cmakeFlags+=' -DCUDA_TOOLKIT_ROOT_DIR=$out'" >> $out/nix-support/setup-hook
 
+    # Set the host compiler to be used by nvcc for CMake-based projects:
+    # https://cmake.org/cmake/help/latest/module/FindCUDA.html#input-variables
+    echo "cmakeFlags+=' -DCUDA_HOST_COMPILER=${gcc}/bin'" >> $out/nix-support/setup-hook
+
     # Move some libraries to the lib output so that programs that
     # depend on them don't pull in this entire monstrosity.
     mkdir -p $lib/lib
diff --git a/nixpkgs/pkgs/development/compilers/dale/default.nix b/nixpkgs/pkgs/development/compilers/dale/default.nix
index addd7997d366..bf02d623e525 100644
--- a/nixpkgs/pkgs/development/compilers/dale/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dale/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     sha256 = "0v4ajrzrqvf279kd7wsd9flrpsav57lzxlwwimk9vnfwh7xpzf9v";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config llvm_6.dev ];
   buildInputs = [ libffi llvm_6 ];
 
   inherit doCheck;
diff --git a/nixpkgs/pkgs/development/compilers/elm/default.nix b/nixpkgs/pkgs/development/compilers/elm/default.nix
index 6981bcbd8fdf..837855d2bddc 100644
--- a/nixpkgs/pkgs/development/compilers/elm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/default.nix
@@ -2,7 +2,7 @@
 , haskell, haskellPackages, nodejs
 , fetchurl, fetchpatch, makeWrapper, writeScriptBin
   # Rust dependecies
-, rustPlatform, openssl, pkg-config, Security
+, curl, rustPlatform, openssl, pkg-config, Security
 }:
 let
   fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
@@ -102,7 +102,7 @@ let
 
   elmRustPackages =  {
     elm-json = import ./packages/elm-json.nix {
-      inherit lib rustPlatform fetchurl openssl stdenv pkg-config Security;
+      inherit curl lib rustPlatform fetchurl openssl stdenv pkg-config Security;
     } // {
       meta = with lib; {
         description = "Install, upgrade and uninstall Elm dependencies";
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix
index cf0ba2303e10..18f4d3aff196 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, ansi-terminal, ansi-wl-pprint, base, binary
+{ mkDerivation, fetchpatch, ansi-terminal, ansi-wl-pprint, base, binary
 , bytestring, Cabal, cmark, containers, directory, elm-format
 , fetchgit, filepath, free, HUnit, indents, json, mtl
 , optparse-applicative, parsec, process, QuickCheck, quickcheck-io
@@ -14,6 +14,15 @@ mkDerivation {
     rev = "63e15bb5ec5f812e248e61b6944189fa4a0aee4e";
     fetchSubmodules = true;
   };
+  patches = [
+    # Update code after breaking change in optparse-applicative
+    # https://github.com/zwilias/elm-instrument/pull/5
+    (fetchpatch {
+      name = "update-optparse-applicative.patch";
+      url = "https://github.com/mdevlamynck/elm-instrument/commit/c548709d4818aeef315528e842eaf4c5b34b59b4.patch";
+      sha256 = "0ln7ik09n3r3hk7jmwwm46kz660mvxfa71120rkbbaib2falfhsc";
+    })
+  ];
   isLibrary = true;
   isExecutable = true;
   setupHaskellDepends = [ base Cabal directory filepath process ];
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
index 810c1a91a00b..a480b9e0e1eb 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
@@ -1,20 +1,20 @@
-{ lib, rustPlatform, fetchurl, openssl, stdenv, pkg-config, Security }:
+{ lib, curl, rustPlatform, fetchurl, openssl, stdenv, pkg-config, Security }:
 rustPlatform.buildRustPackage rec {
   pname = "elm-json";
-  version = "0.2.7";
+  version = "0.2.10";
 
   src = fetchurl {
     url = "https://github.com/zwilias/elm-json/archive/v${version}.tar.gz";
-    sha256 = "sha256:1b9bhl7rb01ylqjbfd1ccm26lhk4hzwd383rbg89aj2jwjv0w4hs";
+    sha256 = "sha256:03azh7wvl60h6w7ffpvl49s7jr7bxpladcm4fzcasakg26i5a71x";
   };
 
   cargoPatches = [ ./elm-json.patch ];
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ curl openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0ylniriq073kpiykamkn9mxdaa6kyiza4pvf7gnfq2h1dvbqa6z7";
+  cargoSha256 = "sha256:01zasrqf1va58i52s3kwdkj1rnwy80gv00xi6npfshjirj3ix07f";
 
   # Tests perform networking and therefore can't work in sandbox
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch
index 70064d0a4243..d7f434c8eb34 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch
@@ -1,48 +1,43 @@
 diff --git a/Cargo.lock b/Cargo.lock
-index f4d95f5..6830b3d 100644
+index 5440d72..6e173fa 100644
 --- a/Cargo.lock
 +++ b/Cargo.lock
-@@ -625,14 +625,6 @@ name = "openssl-probe"
- version = "0.1.2"
+@@ -774,15 +774,6 @@ version = "0.1.2"
  source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
  
 -[[package]]
 -name = "openssl-src"
--version = "111.9.0+1.1.1g"
+-version = "111.11.0+1.1.1h"
 -source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "380fe324132bea01f45239fadfec9343adb044615f29930d039bec1ae7b9fa5b"
 -dependencies = [
-- "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cc",
 -]
 -
  [[package]]
  name = "openssl-sys"
- version = "0.9.56"
-@@ -641,7 +633,6 @@ dependencies = [
-  "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
-  "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
-- "openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)",
-  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-  "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ version = "0.9.58"
+@@ -792,7 +783,6 @@ dependencies = [
+  "autocfg",
+  "cc",
+  "libc",
+- "openssl-src",
+  "pkg-config",
+  "vcpkg",
  ]
-@@ -1162,7 +1153,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
- "checksum object 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"
- "checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
- "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
--"checksum openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)" = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
- "checksum openssl-sys 0.9.56 (registry+https://github.com/rust-lang/crates.io-index)" = "f02309a7f127000ed50594f0b50ecc69e7c654e16d41b4e8156d1b3df8e0b52e"
- "checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92"
- "checksum pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
 diff --git a/Cargo.toml b/Cargo.toml
-index adfab25..37ae0c2 100644
+index 4d319f2..6f4d0e5 100644
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -21,7 +21,7 @@ colored = "1.9"
+@@ -21,8 +21,8 @@ colored = "2.0"
  dialoguer = "0.6"
- dirs = "2.0"
+ dirs = "3.0"
  fs2 = "0.4"
 -isahc = { version = "0.9", features = ["static-ssl"] }
+-curl = {version = "0.4", features = ["static-curl", "static-ssl", "force-system-lib-on-osx", "http2"]}
 +isahc = "0.9"
++curl = {version = "0.4", features = ["force-system-lib-on-osx", "http2"]}
+ ctrlc = "3.1"
+ console = "0.12"
  
- [dev-dependencies]
- assert_cmd = "0.11"
diff --git a/nixpkgs/pkgs/development/compilers/flutter/flutter.nix b/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
index 27436d8b6143..5cab3b929f75 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
@@ -14,7 +14,7 @@
 , stdenv
 , lib
 , fetchurl
-, alsaLib
+, alsa-lib
 , dbus
 , expat
 , libpulseaudio
@@ -107,7 +107,7 @@ let
         libGLU
 
         # for android emulator
-        alsaLib
+        alsa-lib
         dbus
         expat
         libpulseaudio
diff --git a/nixpkgs/pkgs/development/compilers/fsharp41/default.nix b/nixpkgs/pkgs/development/compilers/fsharp41/default.nix
deleted file mode 100644
index e9f9088df3a6..000000000000
--- a/nixpkgs/pkgs/development/compilers/fsharp41/default.nix
+++ /dev/null
@@ -1,126 +0,0 @@
-# Temporaririly avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
-
-{ lib, stdenv, fetchurl, pkg-config, autoconf, automake, which, mono, msbuild, dotnetbuildhelpers, dotnetPackages }:
-
-stdenv.mkDerivation rec {
-  pname = "fsharp";
-  version = "4.1.34";
-
-  src = fetchurl {
-    url = "https://github.com/fsharp/fsharp/archive/${version}.tar.gz";
-    sha256 = "0cv6p5pin962vhbpsji40nkckkag5c96kq5qihvg60pc1z821p0i";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    autoconf
-    automake
-    which
-    mono
-    msbuild
-    dotnetbuildhelpers
-    dotnetPackages.FsCheck262
-    dotnetPackages.FSharpCompilerTools
-    dotnetPackages.FSharpCore302
-    dotnetPackages.FSharpCore3125
-    dotnetPackages.FSharpCore4001
-    dotnetPackages.FSharpCore4117
-    dotnetPackages.FSharpData225
-    dotnetPackages.FsLexYacc706
-    dotnetPackages.MicrosoftDiaSymReader
-    dotnetPackages.MicrosoftDiaSymReaderPortablePdb
-    dotnetPackages.NUnit350
-    dotnetPackages.SystemCollectionsImmutable131
-    dotnetPackages.SystemReflectionMetadata
-    dotnetPackages.SystemValueTuple
-  ];
-
-  # https://github.com/mono/mono/tree/fe0f311a848068ab2d17a9b9dd15326e5712d520/packaging/MacSDK/patches
-  # https://github.com/mono/mono/issues/7805
-  patches = [
-    ./fsharp-IsPathRooted-type-inference.patch
-    ./fsharp-string-switchName.patch
-    ./fsharp-path-overloads.patch
-    ./fsharp-GetFileNameWithoutExtension-type-inference.patch
-  ];
-
-  configurePhase = ''
-    substituteInPlace ./autogen.sh --replace "/usr/bin/env sh" "${stdenv.shell}"
-    ./autogen.sh --prefix $out
-  '';
-
-  preBuild = ''
-    substituteInPlace Makefile --replace "MONO_ENV_OPTIONS=\$(monoopts) mono .nuget/NuGet.exe restore packages.config -PackagesDirectory packages -ConfigFile .nuget/NuGet.Config" "true"
-    substituteInPlace src/fsharp/Fsc-proto/Fsc-proto.fsproj --replace "<FSharpCoreOptSigFiles Include=\"\$(FSharpCoreLkgPath)\\FSharp.Core.dll\" />" ""
-    substituteInPlace src/fsharp/Fsc-proto/Fsc-proto.fsproj --replace "<FSharpCoreOptSigFiles Include=\"\$(FSharpCoreLkgPath)\\FSharp.Core.optdata\" />" ""
-    substituteInPlace src/fsharp/Fsc-proto/Fsc-proto.fsproj --replace "<FSharpCoreOptSigFiles Include=\"\$(FSharpCoreLkgPath)\\FSharp.Core.sigdata\" />" ""
-    substituteInPlace src/fsharp/Fsc-proto/Fsc-proto.fsproj --replace "<FSharpCoreOptSigFiles Include=\"\$(FSharpCoreLkgPath)\\FSharp.Core.xml\" />" ""
-
-    rm -rf packages
-    mkdir packages
-
-    ln -s ${dotnetPackages.FsCheck262}/lib/dotnet/FsCheck packages/FsCheck.2.6.2
-    ln -s ${dotnetPackages.FSharpCompilerTools}/lib/dotnet/FSharp.Compiler.Tools packages/FSharp.Compiler.Tools.4.1.27
-    ln -s ${dotnetPackages.FSharpCore302}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.3.0.2
-    ln -s ${dotnetPackages.FSharpCore3125}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.3.1.2.5
-    ln -s ${dotnetPackages.FSharpCore4001}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.4.0.0.1
-    ln -s ${dotnetPackages.FSharpCore4117}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.4.1.17
-    ln -s ${dotnetPackages.FSharpData225}/lib/dotnet/FSharp.Data/ packages/FSharp.Data.2.2.5
-    ln -s ${dotnetPackages.FsLexYacc706}/lib/dotnet/FsLexYacc/ packages/FsLexYacc.7.0.6
-    ln -s ${dotnetPackages.MicrosoftDiaSymReader}/lib/dotnet/Microsoft.DiaSymReader/ packages/Microsoft.DiaSymReader.1.1.0
-    ln -s ${dotnetPackages.MicrosoftDiaSymReaderPortablePdb}/lib/dotnet/Microsoft.DiaSymReader.PortablePdb/ packages/Microsoft.DiaSymReader.PortablePdb.1.2.0
-    ln -s ${dotnetPackages.NUnit350}/lib/dotnet/NUnit/ packages/NUnit.3.5.0
-    ln -s ${dotnetPackages.SystemCollectionsImmutable131}/lib/dotnet/System.Collections.Immutable/ packages/System.Collections.Immutable.1.3.1
-    ln -s ${dotnetPackages.SystemReflectionMetadata}/lib/dotnet/System.Reflection.Metadata/ packages/System.Reflection.Metadata.1.4.2
-    ln -s ${dotnetPackages.SystemValueTuple}/lib/dotnet/System.ValueTuple/ packages/System.ValueTuple.4.3.1
-  '';
-
-  # Signing /home/jdanek/nix/nixpkgs/build/fss/fsharp-4.1.34/again/fsharp-4.1.34/Release/fsharp30/net40/bin/FSharp.Core.dll with Mono key
-  # ERROR: Unknown error during processing: System.UnauthorizedAccessException: Access to the path
-  #   "Release/fsharp30/net40/bin/FSharp.Core.dll" is denied.
-  preInstall = ''
-    find Release/ -name FSharp.Core.dll -exec chmod u+w {} \;
-  '';
-
-  # Set up some symlinks for backwards compatibility.
-  postInstall = ''
-    ln -s $out/bin/fsharpc $out/bin/fsc
-    ln -s $out/bin/fsharpi $out/bin/fsi
-    for dll in "$out/lib/mono/fsharp"/FSharp*.dll
-    do
-      create-pkg-config-for-dll.sh "$out/lib/pkgconfig" "$dll"
-    done
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    echo 'printf "int = %i" (6 * 7);;' > script.fsx
-    $out/bin/fsi --exec script.fsx | grep "int = 42"
-    $out/bin/fsharpi --exec script.fsx | grep "int = 42"
-    $out/bin/fsharpiAnyCpu --exec script.fsx | grep "int = 42"
-
-    cat > answer.fs <<EOF
-open System
-
-[<EntryPoint>]
-let main argv =
-    printfn "int = %i" (6 * 7)
-    0
-EOF
-
-    $out/bin/fsc answer.fs
-    ${mono}/bin/mono answer.exe | grep "int = 42"
-  '';
-
-  # To fix this error when running:
-  # The file "/nix/store/path/whatever.exe" is an not a valid CIL image
-  dontStrip = true;
-
-  meta = {
-    description = "A functional CLI language";
-    homepage = "https://fsharp.org/";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ thoughtpolice raskin ];
-    platforms = with lib.platforms; unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-GetFileNameWithoutExtension-type-inference.patch b/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-GetFileNameWithoutExtension-type-inference.patch
deleted file mode 100644
index 14e9444b1de3..000000000000
--- a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-GetFileNameWithoutExtension-type-inference.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/scripts/fssrgen.fsx b/src/scripts/fssrgen.fsx
-index 0bee9b79e..e6ceda11e 100644
---- a/src/scripts/fssrgen.fsx
-+++ b/src/scripts/fssrgen.fsx
-@@ -329,7 +329,7 @@ let StringBoilerPlate filename =
-     // END BOILERPLATE        
- "            
- 
--let RunMain(filename, outFilename, outXmlFilenameOpt, projectNameOpt) =
-+let RunMain(filename:string, outFilename, outXmlFilenameOpt, projectNameOpt) =
-     try
-         let justfilename = System.IO.Path.GetFileNameWithoutExtension(filename)
-         if justfilename |> Seq.exists (fun c -> not(System.Char.IsLetterOrDigit(c))) then
diff --git a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-IsPathRooted-type-inference.patch b/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-IsPathRooted-type-inference.patch
deleted file mode 100644
index 06dd3e82adc9..000000000000
--- a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-IsPathRooted-type-inference.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit c37fce5b3019c7a150203fc3a484885591b194de
-Author: Alexis Christoforides <alexis@thenull.net>
-Date:   Sun Dec 2 00:10:24 2018 -0500
-
-    Help Path.IsPathRooted method overload selection.
-
-    .NET Core, and Mono after merging https://github.com/mono/mono/pull/11342, introduce ambiguity with a new overload.
-
-diff --git a/src/scripts/scriptlib.fsx b/src/scripts/scriptlib.fsx
-index cc797e305..699c7bb93 100644
---- a/src/scripts/scriptlib.fsx
-+++ b/src/scripts/scriptlib.fsx
-@@ -92,7 +92,7 @@ module Scripting =
-
-     module Process =
-
--        let processExePath baseDir exe =
-+        let processExePath baseDir (exe:string) =
-             if Path.IsPathRooted(exe) then exe
-             else
-                 match Path.GetDirectoryName(exe) with
diff --git a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-path-overloads.patch b/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-path-overloads.patch
deleted file mode 100644
index f791317d0802..000000000000
--- a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-path-overloads.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/scripts/scriptlib.fsx b/src/scripts/scriptlib.fsx
-index cc797e305..ae8a6d3cc 100644
---- a/src/scripts/scriptlib.fsx
-+++ b/src/scripts/scriptlib.fsx
-@@ -59,12 +59,12 @@ module Scripting =
-
-     let (++) a b = Path.Combine(a,b)
-
--    let getBasename a = Path.GetFileNameWithoutExtension a
--    let getFullPath a = Path.GetFullPath a
--    let getFilename a = Path.GetFileName a
--    let getDirectoryName a = Path.GetDirectoryName a
-+    let getBasename (path: string) = Path.GetFileNameWithoutExtension path
-+    let getFullPath (path: string) = Path.GetFullPath path
-+    let getFilename (path: string) = Path.GetFileName path
-+    let getDirectoryName (path: string) = Path.GetDirectoryName path
-
--    let copyFile source dir =
-+    let copyFile (source: string) dir =
-         let dest = 
-             if not (Directory.Exists dir) then Directory.CreateDirectory dir |>ignore
-             let result = Path.Combine(dir, Path.GetFileName source)
diff --git a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-string-switchName.patch b/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-string-switchName.patch
deleted file mode 100644
index 4b36eaabcafc..000000000000
--- a/nixpkgs/pkgs/development/compilers/fsharp41/fsharp-string-switchName.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/scripts/scriptlib.fsx b/src/scripts/scriptlib.fsx
-index cc797e305..5a7be7d2b 100644
---- a/src/scripts/scriptlib.fsx
-+++ b/src/scripts/scriptlib.fsx
-@@ -36,7 +36,7 @@ module Scripting =
- #if INTERACTIVE
-     let argv = Microsoft.FSharp.Compiler.Interactive.Settings.fsi.CommandLineArgs |> Seq.skip 1 |> Seq.toArray
-
--    let getCmdLineArgOptional switchName = 
-+    let getCmdLineArgOptional (switchName: string) =
-         argv |> Array.filter(fun t -> t.StartsWith(switchName)) |> Array.map(fun t -> t.Remove(0, switchName.Length).Trim()) |> Array.tryHead 
-
-     let getCmdLineArg switchName defaultValue = 
diff --git a/nixpkgs/pkgs/development/compilers/fstar/default.nix b/nixpkgs/pkgs/development/compilers/fstar/default.nix
index 73bf001f7520..7abdf132b51e 100644
--- a/nixpkgs/pkgs/development/compilers/fstar/default.nix
+++ b/nixpkgs/pkgs/development/compilers/fstar/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   buildInputs = with ocamlPackages; [
-    z3 ocaml findlib batteries menhir stdint
+    z3 ocaml findlib batteries menhir menhirLib stdint
     zarith camlp4 yojson pprint
     ulex ocaml-migrate-parsetree process ppx_deriving ppx_deriving_yojson ocamlbuild
   ];
diff --git a/nixpkgs/pkgs/development/compilers/gcc/10/default.nix b/nixpkgs/pkgs/development/compilers/gcc/10/default.nix
index 1502b09cca6a..143681c2a5bb 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/10/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/10/default.nix
@@ -4,6 +4,7 @@
 , langObjC ? stdenv.targetPlatform.isDarwin
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langGo ? false
+, reproducibleBuild ? true
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
@@ -48,11 +49,15 @@ assert langAda -> gnatboot != null;
 # threadsCross is just for MinGW
 assert threadsCross != null -> stdenv.targetPlatform.isWindows;
 
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
 with lib;
 with builtins;
 
 let majorVersion = "10";
-    version = "${majorVersion}.2.0";
+    version = "${majorVersion}.3.0";
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
@@ -85,7 +90,7 @@ stdenv.mkDerivation ({
 
   src = fetchurl {
     url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
-    sha256 = "130xdkhmz1bc2kzx061s3sfwk36xah1fw5w332c0nzwwpdl47pdq";
+    sha256 = "0i6378ig6h397zkhd7m4ccwjx5alvzrf2hm27p1pzwjhlv0h9x34";
   };
 
   inherit patches;
@@ -98,9 +103,15 @@ stdenv.mkDerivation ({
 
   hardeningDisable = [ "format" "pie" ];
 
+  postPatch = ''
+    configureScripts=$(find . -name configure)
+    for configureScript in $configureScripts; do
+      patchShebangs $configureScript
+    done
+  ''
   # This should kill all the stdinc frameworks that gcc and friends like to
   # insert into default search paths.
-  prePatch = lib.optionalString hostPlatform.isDarwin ''
+  + lib.optionalString hostPlatform.isDarwin ''
     substituteInPlace gcc/config/darwin-c.c \
       --replace 'if (stdinc)' 'if (0)'
 
@@ -109,14 +120,8 @@ stdenv.mkDerivation ({
 
     substituteInPlace libgfortran/configure \
       --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
-  '';
-
-  postPatch = ''
-    configureScripts=$(find . -name configure)
-    for configureScript in $configureScripts; do
-      patchShebangs $configureScript
-    done
-  '' + (
+  ''
+  + (
     if targetPlatform != hostPlatform || stdenv.cc.libc != null then
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
@@ -181,13 +186,12 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform gnatboot langAda langGo langJit;
+    inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit;
   };
 
   dontDisableStatic = true;
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags = import ../common/configure-flags.nix {
     inherit
@@ -276,13 +280,9 @@ stdenv.mkDerivation ({
       compiler used in the GNU system including the GNU/Linux variant.
     '';
 
-    maintainers = with lib.maintainers; [ synthetica ];
+    maintainers = lib.teams.gcc.members;
 
-    platforms =
-      lib.platforms.linux ++
-      lib.platforms.freebsd ++
-      lib.platforms.illumos ++
-      lib.platforms.darwin;
+    platforms = lib.platforms.unix;
   };
 }
 
diff --git a/nixpkgs/pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch b/nixpkgs/pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch
new file mode 100644
index 000000000000..d9809e828f10
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch
@@ -0,0 +1,306 @@
+From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001
+From: Liu Hao <lh_mouse@126.com>
+Date: Wed, 25 Apr 2018 21:54:19 +0800
+Subject: [PATCH] Added 'mcf' thread model support from mcfgthread.
+
+Signed-off-by: Liu Hao <lh_mouse@126.com>
+---
+ config/gthr.m4                          |  1 +
+ gcc/config.gcc                          |  3 +++
+ gcc/config/i386/mingw-mcfgthread.h      |  1 +
+ gcc/config/i386/mingw-w64.h             |  2 +-
+ gcc/config/i386/mingw32.h               | 11 ++++++++++-
+ gcc/configure                           |  2 +-
+ gcc/configure.ac                        |  2 +-
+ libatomic/configure.tgt                 |  2 +-
+ libgcc/config.host                      |  6 ++++++
+ libgcc/config/i386/gthr-mcf.h           |  1 +
+ libgcc/config/i386/t-mingw-mcfgthread   |  2 ++
+ libgcc/configure                        |  1 +
+ libstdc++-v3/configure                  |  1 +
+ libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++
+ libstdc++-v3/libsupc++/guard.cc         | 23 +++++++++++++++++++++++
+ libstdc++-v3/src/c++11/thread.cc        |  9 +++++++++
+ 16 files changed, 80 insertions(+), 5 deletions(-)
+ create mode 100644 gcc/config/i386/mingw-mcfgthread.h
+ create mode 100644 libgcc/config/i386/gthr-mcf.h
+ create mode 100644 libgcc/config/i386/t-mingw-mcfgthread
+
+diff --git a/config/gthr.m4 b/config/gthr.m4
+index 7b29f1f3327..82e21fe1709 100644
+--- a/config/gthr.m4
++++ b/config/gthr.m4
+@@ -21,6 +21,7 @@ case $1 in
+     tpf)	thread_header=config/s390/gthr-tpf.h ;;
+     vxworks)	thread_header=config/gthr-vxworks.h ;;
+     win32)	thread_header=config/i386/gthr-win32.h ;;
++    mcf)	thread_header=config/i386/gthr-mcf.h ;;
+ esac
+ AC_SUBST(thread_header)
+ ])
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 46a9029acec..112c24e95a3 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
+ 	if test x$enable_threads = xposix ; then
+ 		tm_file="${tm_file} i386/mingw-pthread.h"
+ 	fi
++	if test x$enable_threads = xmcf ; then
++		tm_file="${tm_file} i386/mingw-mcfgthread.h"
++	fi
+ 	tm_file="${tm_file} i386/mingw32.h"
+ 	# This makes the logic if mingw's or the w64 feature set has to be used
+ 	case ${target} in
+diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h
+new file mode 100644
+index 00000000000..ec381a7798f
+--- /dev/null
++++ b/gcc/config/i386/mingw-mcfgthread.h
+@@ -0,0 +1 @@
++#define TARGET_USE_MCFGTHREAD 1
+diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h
+index 484dc7a9e9f..a15bbeea500 100644
+--- a/gcc/config/i386/mingw-w64.h
++++ b/gcc/config/i386/mingw-w64.h
+@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3.  If not see
+ 		 "%{mwindows:-lgdi32 -lcomdlg32} " \
+      "%{fvtable-verify=preinit:-lvtv -lpsapi; \
+         fvtable-verify=std:-lvtv -lpsapi} " \
+-		 "-ladvapi32 -lshell32 -luser32 -lkernel32"
++		 LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32"
+ 
+ #undef SPEC_32
+ #undef SPEC_64
+diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
+index 0612b87199a..76cea94f3b7 100644
+--- a/gcc/config/i386/mingw32.h
++++ b/gcc/config/i386/mingw32.h
+@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3.  If not see
+ 	 | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \
+ 	 | MASK_MS_BITFIELD_LAYOUT)
+ 
++#ifndef TARGET_USE_MCFGTHREAD
++#define CPP_MCFGTHREAD()  ((void)0)
++#define LIB_MCFGTHREAD     ""
++#else
++#define CPP_MCFGTHREAD()  (builtin_define("__USING_MCFGTHREAD__"))
++#define LIB_MCFGTHREAD     " -lmcfgthread "
++#endif
++
+ /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS
+    is for compatibility with native compiler.  */
+ #define EXTRA_OS_CPP_BUILTINS()					\
+@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3.  If not see
+ 	  builtin_define_std ("WIN64");				\
+ 	  builtin_define ("_WIN64");				\
+ 	}							\
++	CPP_MCFGTHREAD();	\
+     }								\
+   while (0)
+ 
+@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3.  If not see
+ 		 "%{mwindows:-lgdi32 -lcomdlg32} " \
+      "%{fvtable-verify=preinit:-lvtv -lpsapi; \
+         fvtable-verify=std:-lvtv -lpsapi} " \
+-                 "-ladvapi32 -lshell32 -luser32 -lkernel32"
++                 LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32"
+ 
+ /* Weak symbols do not get resolved if using a Windows dll import lib.
+    Make the unwind registration references strong undefs.  */
+diff --git a/gcc/configure b/gcc/configure
+index 6121e163259..52f0e00efe6 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -11693,7 +11693,7 @@ case ${enable_threads} in
+     target_thread_file='single'
+     ;;
+   aix | dce | lynx | mipssde | posix | rtems | \
+-  single | tpf | vxworks | win32)
++  single | tpf | vxworks | win32 | mcf)
+     target_thread_file=${enable_threads}
+     ;;
+   *)
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index b066cc609e1..4ecdba88de7 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -1612,7 +1612,7 @@ case ${enable_threads} in
+     target_thread_file='single'
+     ;;
+   aix | dce | lynx | mipssde | posix | rtems | \
+-  single | tpf | vxworks | win32)
++  single | tpf | vxworks | win32 | mcf)
+     target_thread_file=${enable_threads}
+     ;;
+   *)
+diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
+index ea8c34f8c71..23134ad7363 100644
+--- a/libatomic/configure.tgt
++++ b/libatomic/configure.tgt
+@@ -145,7 +145,7 @@ case "${target}" in
+   *-*-mingw*)
+ 	# OS support for atomic primitives.
+         case ${target_thread_file} in
+-          win32)
++          win32 | mcf)
+             config_path="${config_path} mingw"
+             ;;
+           posix)
+diff --git a/libgcc/config.host b/libgcc/config.host
+index 11b4acaff55..9fbd38650bd 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -737,6 +737,9 @@ i[34567]86-*-mingw*)
+ 	  posix)
+ 	    tmake_file="i386/t-mingw-pthread $tmake_file"
+ 	    ;;
++	  mcf)
++	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
++	    ;;
+ 	esac
+ 	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+ 	if test x$ac_cv_sjlj_exceptions = xyes; then
+@@ -761,6 +764,9 @@ x86_64-*-mingw*)
+ 	  posix)
+ 	    tmake_file="i386/t-mingw-pthread $tmake_file"
+ 	    ;;
++	  mcf)
++	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
++	    ;;
+ 	esac
+ 	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+ 	if test x$ac_cv_sjlj_exceptions = xyes; then
+diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h
+new file mode 100644
+index 00000000000..5ea2908361f
+--- /dev/null
++++ b/libgcc/config/i386/gthr-mcf.h
+@@ -0,0 +1 @@
++#include <mcfgthread/gthread.h>
+diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread
+new file mode 100644
+index 00000000000..4b9b10e32d6
+--- /dev/null
++++ b/libgcc/config/i386/t-mingw-mcfgthread
+@@ -0,0 +1,2 @@
++SHLIB_PTHREAD_CFLAG =
++SHLIB_PTHREAD_LDFLAG = -lmcfgthread
+diff --git a/libgcc/configure b/libgcc/configure
+index b2f3f870844..eff889dc3b3 100644
+--- a/libgcc/configure
++++ b/libgcc/configure
+@@ -5451,6 +5451,7 @@ case $target_thread_file in
+     tpf)	thread_header=config/s390/gthr-tpf.h ;;
+     vxworks)	thread_header=config/gthr-vxworks.h ;;
+     win32)	thread_header=config/i386/gthr-win32.h ;;
++    mcf)	thread_header=config/i386/gthr-mcf.h ;;
+ esac
+ 
+ 
+diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
+index ba094be6f15..979a5ab9ace 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -15187,6 +15187,7 @@ case $target_thread_file in
+     tpf)	thread_header=config/s390/gthr-tpf.h ;;
+     vxworks)	thread_header=config/gthr-vxworks.h ;;
+     win32)	thread_header=config/i386/gthr-win32.h ;;
++    mcf)	thread_header=config/i386/gthr-mcf.h ;;
+ esac
+ 
+ 
+diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc
+index de920d714c6..665fb74bd6b 100644
+--- a/libstdc++-v3/libsupc++/atexit_thread.cc
++++ b/libstdc++-v3/libsupc++/atexit_thread.cc
+@@ -25,6 +25,22 @@
+ #include <cstdlib>
+ #include <new>
+ #include "bits/gthr.h"
++
++#ifdef __USING_MCFGTHREAD__
++
++#include <mcfgthread/gthread.h>
++
++extern "C" int
++__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *),
++				 void *obj, void *dso_handle)
++  _GLIBCXX_NOTHROW
++{
++  return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1;
++  (void)dso_handle;
++}
++
++#else // __USING_MCFGTHREAD__
++
+ #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
+@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha
+ }
+ 
+ #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */
++
++#endif // __USING_MCFGTHREAD__
+diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc
+index 3a2ec3ad0d6..8b4cc96199b 100644
+--- a/libstdc++-v3/libsupc++/guard.cc
++++ b/libstdc++-v3/libsupc++/guard.cc
+@@ -28,6 +28,27 @@
+ #include <cxxabi.h>
+ #include <exception>
+ #include <new>
++
++#ifdef __USING_MCFGTHREAD__
++
++#include <mcfgthread/gthread.h>
++
++namespace __cxxabiv1 {
++
++extern "C" int __cxa_guard_acquire(__guard *g){
++	return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial;
++}
++extern "C" void __cxa_guard_abort(__guard *g) throw() {
++	::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g);
++}
++extern "C" void __cxa_guard_release(__guard *g) throw() {
++	::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g);
++}
++
++}
++
++#else // __USING_MCFGTHREAD__
++
+ #include <ext/atomicity.h>
+ #include <ext/concurrence.h>
+ #include <bits/atomic_lockfree_defines.h>
+@@ -425,3 +446,5 @@ namespace __cxxabiv1
+ #endif
+   }
+ }
++
++#endif
+diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc
+index 8238817c2e9..0c6a1f85f6f 100644
+--- a/libstdc++-v3/src/c++11/thread.cc
++++ b/libstdc++-v3/src/c++11/thread.cc
+@@ -55,6 +55,15 @@ static inline int get_nprocs()
+ #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN)
+ # include <unistd.h>
+ # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN)
++#elif defined(_WIN32)
++# include <windows.h>
++static inline int get_nprocs()
++{
++  SYSTEM_INFO sysinfo;
++  GetSystemInfo(&sysinfo);
++  return (int)sysinfo.dwNumberOfProcessors;
++}
++# define _GLIBCXX_NPROCS get_nprocs()
+ #else
+ # define _GLIBCXX_NPROCS 0
+ #endif
+-- 
+2.17.0
+
diff --git a/nixpkgs/pkgs/development/compilers/gcc/11/default.nix b/nixpkgs/pkgs/development/compilers/gcc/11/default.nix
new file mode 100644
index 000000000000..7efc9d589f98
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/gcc/11/default.nix
@@ -0,0 +1,300 @@
+{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
+, langC ? true, langCC ? true, langFortran ? false
+, langAda ? false
+, langObjC ? stdenv.targetPlatform.isDarwin
+, langObjCpp ? stdenv.targetPlatform.isDarwin
+, langGo ? false
+, reproducibleBuild ? true
+, profiledCompiler ? false
+, langJit ? false
+, staticCompiler ? false
+, # N.B. the defult is intentionally not from an `isStatic`. See
+  # https://gcc.gnu.org/install/configure.html - this is about target
+  # platform libraries not host platform ones unlike normal. But since
+  # we can't rebuild those without also rebuilding the compiler itself,
+  # we opt to always build everything unlike our usual policy.
+  enableShared ? true
+, enableLTO ? true
+, texinfo ? null
+, perl ? null # optional, for texi2pod (then pod2man)
+, gmp, mpfr, libmpc, gettext, which, patchelf
+, libelf                      # optional, for link-time optimizations (LTO)
+, isl ? null # optional, for the Graphite optimization framework.
+, zlib ? null
+, gnatboot ? null
+, enableMultilib ? false
+, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
+, name ? "gcc"
+, libcCross ? null
+, threadsCross ? null # for MinGW
+, crossStageStatic ? false
+, # Strip kills static libs of other archs (hence no cross)
+  stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system
+          && stdenv.targetPlatform.system == stdenv.hostPlatform.system
+, gnused ? null
+, cloog # unused; just for compat with gcc4, as we override the parameter on some places
+, buildPackages
+}:
+
+# LTO needs libelf and zlib.
+assert libelf != null -> zlib != null;
+
+# Make sure we get GNU sed.
+assert stdenv.hostPlatform.isDarwin -> gnused != null;
+
+# The go frontend is written in c++
+assert langGo -> langCC;
+assert langAda -> gnatboot != null;
+
+# threadsCross is just for MinGW
+assert threadsCross != null -> stdenv.targetPlatform.isWindows;
+
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
+with lib;
+with builtins;
+
+let majorVersion = "11";
+    version = "${majorVersion}.1.0";
+
+    inherit (stdenv) buildPlatform hostPlatform targetPlatform;
+
+    patches =
+         optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
+      ++ optional noSysDirs ../no-sys-dirs.patch
+      /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
+        url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
+        sha256 = ""; # TODO: uncomment and check hash when available.
+      }) */
+      ++ optional langAda ../gnat-cflags-11.patch
+      ++ optional langFortran ../gfortran-driving.patch
+      ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
+
+      ++ optional (stdenv.isDarwin && stdenv.isAarch64) (fetchpatch {
+        url = "https://github.com/fxcoudert/gcc/compare/releases/gcc-11.1.0...gcc-11.1.0-arm-20210504.diff";
+        sha256 = "sha256-JqCGJAfbOxSmkNyq49aFHteK/RFsCSLQrL9mzUCnaD0=";
+      })
+
+      # Obtain latest patch with ../update-mcfgthread-patches.sh
+      ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch;
+
+    /* Cross-gcc settings (build == host != target) */
+    crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
+    stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+    crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
+
+in
+
+stdenv.mkDerivation ({
+  pname = "${crossNameAddon}${name}${if stripped then "" else "-debug"}";
+  inherit version;
+
+  builder = ../builder.sh;
+
+  src = fetchurl {
+    url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
+    sha256 = "1pwxrjhsymv90xzh0x42cxfnmhjinf2lnrrf3hj5jq1rm2w6yjjc";
+  };
+
+  inherit patches;
+
+  outputs = [ "out" "man" "info" ] ++ lib.optional (!langJit) "lib";
+  setOutputFlags = false;
+  NIX_NO_SELF_RPATH = true;
+
+  libc_dev = stdenv.cc.libc_dev;
+
+  hardeningDisable = [ "format" "pie" ];
+
+  postPatch = ''
+    configureScripts=$(find . -name configure)
+    for configureScript in $configureScripts; do
+      patchShebangs $configureScript
+    done
+  ''
+  # This should kill all the stdinc frameworks that gcc and friends like to
+  # insert into default search paths.
+  + lib.optionalString hostPlatform.isDarwin ''
+    substituteInPlace gcc/config/darwin-c.c \
+      --replace 'if (stdinc)' 'if (0)'
+
+    substituteInPlace libgcc/config/t-slibgcc-darwin \
+      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
+
+    substituteInPlace libgfortran/configure \
+      --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
+  ''
+  + (
+    if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+      # On NixOS, use the right path to the dynamic linker instead of
+      # `/lib/ld*.so'.
+      let
+        libc = if libcCross != null then libcCross else stdenv.cc.libc;
+      in
+        (
+        '' echo "fixing the \`GLIBC_DYNAMIC_LINKER', \`UCLIBC_DYNAMIC_LINKER', and \`MUSL_DYNAMIC_LINKER' macros..."
+           for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
+           do
+             grep -q _DYNAMIC_LINKER "$header" || continue
+             echo "  fixing \`$header'..."
+             sed -i "$header" \
+                 -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' \
+                 -e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
+           done
+        ''
+        + lib.optionalString (targetPlatform.libc == "musl")
+        ''
+            sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
+        ''
+        )
+    else "")
+      + lib.optionalString targetPlatform.isAvr ''
+            makeFlagsArray+=(
+               'LIMITS_H_TEST=false'
+            )
+          '';
+
+  inherit noSysDirs staticCompiler crossStageStatic
+    libcCross crossMingw;
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ texinfo which gettext ]
+    ++ (optional (perl != null) perl);
+
+  # For building runtime libs
+  depsBuildTarget =
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
+
+  buildInputs = [
+    gmp mpfr libmpc libelf
+    targetPackages.stdenv.cc.bintools # For linking code at run-time
+  ] ++ (optional (isl != null) isl)
+    ++ (optional (zlib != null) zlib)
+    # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
+    # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
+    ++ (optional hostPlatform.isDarwin gnused)
+    ++ (optional langAda gnatboot)
+    ;
+
+  depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
+
+  NIX_LDFLAGS = lib.optionalString  hostPlatform.isSunOS "-lm -ldl";
+
+  preConfigure = import ../common/pre-configure.nix {
+    inherit lib;
+    inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit;
+  };
+
+  dontDisableStatic = true;
+
+  configurePlatforms = [ "build" "host" "target" ];
+
+  configureFlags = import ../common/configure-flags.nix {
+    inherit
+      lib
+      stdenv
+      targetPackages
+      crossStageStatic libcCross
+      version
+
+      gmp mpfr libmpc libelf isl
+
+      enableLTO
+      enableMultilib
+      enablePlugin
+      enableShared
+
+      langC
+      langCC
+      langFortran
+      langAda
+      langGo
+      langObjC
+      langObjCpp
+      langJit
+      ;
+  };
+
+  targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
+
+  buildFlags = optional
+    (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
+    (if profiledCompiler then "profiledbootstrap" else "bootstrap");
+
+  dontStrip = !stripped;
+
+  installTargets = optional stripped "install-strip";
+
+  # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
+  ${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
+
+  # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
+  # library headers and binaries, regarless of the language being compiled.
+  #
+  # Likewise, the LTO code doesn't find zlib.
+  #
+  # Cross-compiling, we need gcc not to read ./specs in order to build the g++
+  # compiler (after the specs for the cross-gcc are created). Having
+  # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks.
+
+  CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
+    ++ optional (zlib != null) zlib
+  ));
+
+  LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
+
+  inherit
+    (import ../common/extra-target-flags.nix {
+      inherit lib stdenv crossStageStatic libcCross threadsCross;
+    })
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
+    ;
+
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
+    isGNU = true;
+  };
+
+  enableParallelBuilding = true;
+  inherit enableMultilib;
+
+  inherit (stdenv) is64bit;
+
+  meta = {
+    homepage = "https://gcc.gnu.org/";
+    license = lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
+    description = "GNU Compiler Collection, version ${version}"
+      + (if stripped then "" else " (with debugging info)");
+
+    longDescription = ''
+      The GNU Compiler Collection includes compiler front ends for C, C++,
+      Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
+      libraries for these languages (libstdc++, libgomp,...).
+
+      GCC development is a part of the GNU Project, aiming to improve the
+      compiler used in the GNU system including the GNU/Linux variant.
+    '';
+
+    maintainers = lib.teams.gcc.members;
+
+    platforms = lib.platforms.unix;
+  };
+}
+
+// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
+  makeFlags = [ "all-gcc" "all-target-libgcc" ];
+  installTargets = "install-gcc install-target-libgcc";
+}
+
+// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
+)
diff --git a/nixpkgs/pkgs/development/compilers/gcc/4.8/default.nix b/nixpkgs/pkgs/development/compilers/gcc/4.8/default.nix
index 6a2121a82981..98332290a078 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/4.8/default.nix
@@ -4,6 +4,7 @@
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langJava ? false
 , langGo ? false
+, reproducibleBuild ? true
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
@@ -58,6 +59,10 @@ assert langGo -> langCC;
 # threadsCross is just for MinGW
 assert threadsCross != null -> stdenv.targetPlatform.isWindows;
 
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
 with lib;
 with builtins;
 
@@ -191,13 +196,12 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform langJava langGo;
+    inherit version targetPlatform hostPlatform langJava langGo;
   };
 
   dontDisableStatic = true;
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags = import ../common/configure-flags.nix {
     inherit
@@ -305,11 +309,7 @@ stdenv.mkDerivation ({
 
     maintainers = with lib.maintainers; [ peti veprbl ];
 
-    platforms =
-      lib.platforms.linux ++
-      lib.platforms.freebsd ++
-      lib.platforms.illumos ++
-      lib.platforms.darwin;
+    platforms = lib.platforms.unix;
     badPlatforms = [ "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/gcc/4.9/default.nix b/nixpkgs/pkgs/development/compilers/gcc/4.9/default.nix
index 709288559d1c..a15cb770fdfa 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/4.9/default.nix
@@ -4,6 +4,7 @@
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langJava ? false
 , langGo ? false
+, reproducibleBuild ? true
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
@@ -58,6 +59,10 @@ assert langGo -> langCC;
 # threadsCross is just for MinGW
 assert threadsCross != null -> stdenv.targetPlatform.isWindows;
 
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
 with lib;
 with builtins;
 
@@ -204,13 +209,12 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform langJava langGo;
+    inherit version targetPlatform hostPlatform langJava langGo;
   };
 
   dontDisableStatic = true;
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags = import ../common/configure-flags.nix {
     inherit
@@ -317,11 +321,7 @@ stdenv.mkDerivation ({
 
     maintainers = with lib.maintainers; [ peti veprbl ];
 
-    platforms =
-      lib.platforms.linux ++
-      lib.platforms.freebsd ++
-      lib.platforms.illumos ++
-      lib.platforms.darwin;
+    platforms = lib.platforms.unix;
     badPlatforms = [ "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/gcc/6/default.nix b/nixpkgs/pkgs/development/compilers/gcc/6/default.nix
index 93c9dde61fc3..4567e8b43e9f 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/6/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/6/default.nix
@@ -5,6 +5,7 @@
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langJava ? false
 , langGo ? false
+, reproducibleBuild ? true
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
@@ -61,6 +62,10 @@ assert langAda -> gnatboot != null;
 # threadsCross is just for MinGW
 assert threadsCross != null -> stdenv.targetPlatform.isWindows;
 
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
 with lib;
 with builtins;
 
@@ -149,7 +154,7 @@ stdenv.mkDerivation ({
 
   hardeningDisable = [ "format" "pie" ];
 
-  prePatch =
+  postPatch =
     # This should kill all the stdinc frameworks that gcc and friends like to
     # insert into default search paths.
     lib.optionalString hostPlatform.isDarwin ''
@@ -161,9 +166,8 @@ stdenv.mkDerivation ({
 
       substituteInPlace libgfortran/configure \
         --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
-    '';
-
-  postPatch =
+    ''
+  + (
     if targetPlatform != hostPlatform || stdenv.cc.libc != null then
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
@@ -186,7 +190,7 @@ stdenv.mkDerivation ({
             sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
         ''
         )
-    else null;
+    else "");
 
   inherit noSysDirs staticCompiler langJava crossStageStatic
     libcCross crossMingw;
@@ -227,13 +231,12 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform gnatboot langJava langAda langGo;
+    inherit version targetPlatform hostPlatform gnatboot langJava langAda langGo;
   };
 
   dontDisableStatic = true;
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags = import ../common/configure-flags.nix {
     inherit
@@ -340,11 +343,7 @@ stdenv.mkDerivation ({
 
     maintainers = with lib.maintainers; [ peti ];
 
-    platforms =
-      lib.platforms.linux ++
-      lib.platforms.freebsd ++
-      lib.platforms.illumos ++
-      lib.platforms.darwin;
+    platforms = lib.platforms.unix;
   };
 }
 
diff --git a/nixpkgs/pkgs/development/compilers/gcc/7/default.nix b/nixpkgs/pkgs/development/compilers/gcc/7/default.nix
index d9b4c639b5ab..44e8b38fdf80 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/7/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/7/default.nix
@@ -3,6 +3,7 @@
 , langObjC ? stdenv.targetPlatform.isDarwin
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langGo ? false
+, reproducibleBuild ? true
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
@@ -45,6 +46,10 @@ assert langGo -> langCC;
 # threadsCross is just for MinGW
 assert threadsCross != null -> stdenv.targetPlatform.isWindows;
 
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
 with lib;
 with builtins;
 
@@ -109,9 +114,15 @@ stdenv.mkDerivation ({
 
   hardeningDisable = [ "format" "pie" ];
 
+  postPatch = ''
+    configureScripts=$(find . -name configure)
+    for configureScript in $configureScripts; do
+      patchShebangs $configureScript
+    done
+  ''
   # This should kill all the stdinc frameworks that gcc and friends like to
   # insert into default search paths.
-  prePatch = lib.optionalString hostPlatform.isDarwin ''
+  + lib.optionalString hostPlatform.isDarwin ''
     substituteInPlace gcc/config/darwin-c.c \
       --replace 'if (stdinc)' 'if (0)'
 
@@ -120,14 +131,8 @@ stdenv.mkDerivation ({
 
     substituteInPlace libgfortran/configure \
       --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
-  '';
-
-  postPatch = ''
-    configureScripts=$(find . -name configure)
-    for configureScript in $configureScripts; do
-      patchShebangs $configureScript
-    done
-  '' + (
+  ''
+  + (
     if targetPlatform != hostPlatform || stdenv.cc.libc != null then
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
@@ -192,13 +197,12 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform langGo;
+    inherit version targetPlatform hostPlatform langGo;
   };
 
   dontDisableStatic = true;
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags = import ../common/configure-flags.nix {
     inherit
@@ -290,13 +294,9 @@ stdenv.mkDerivation ({
       compiler used in the GNU system including the GNU/Linux variant.
     '';
 
-    maintainers = with lib.maintainers; [ ];
+    maintainers = lib.teams.gcc.members;
 
-    platforms =
-      lib.platforms.linux ++
-      lib.platforms.freebsd ++
-      lib.platforms.illumos ++
-      lib.platforms.darwin;
+    platforms = lib.platforms.unix;
   };
 }
 
diff --git a/nixpkgs/pkgs/development/compilers/gcc/8/default.nix b/nixpkgs/pkgs/development/compilers/gcc/8/default.nix
index 4edc034720c4..b264d37418e8 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/8/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/8/default.nix
@@ -3,6 +3,7 @@
 , langObjC ? stdenv.targetPlatform.isDarwin
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langGo ? false
+, reproducibleBuild ? true
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
@@ -45,6 +46,10 @@ assert langGo -> langCC;
 # threadsCross is just for MinGW
 assert threadsCross != null -> stdenv.targetPlatform.isWindows;
 
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
 with lib;
 with builtins;
 
@@ -96,9 +101,15 @@ stdenv.mkDerivation ({
 
   hardeningDisable = [ "format" "pie" ];
 
+  postPatch = ''
+    configureScripts=$(find . -name configure)
+    for configureScript in $configureScripts; do
+      patchShebangs $configureScript
+    done
+  ''
   # This should kill all the stdinc frameworks that gcc and friends like to
   # insert into default search paths.
-  prePatch = lib.optionalString hostPlatform.isDarwin ''
+  + lib.optionalString hostPlatform.isDarwin ''
     substituteInPlace gcc/config/darwin-c.c \
       --replace 'if (stdinc)' 'if (0)'
 
@@ -107,14 +118,8 @@ stdenv.mkDerivation ({
 
     substituteInPlace libgfortran/configure \
       --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
-  '';
-
-  postPatch = ''
-    configureScripts=$(find . -name configure)
-    for configureScript in $configureScripts; do
-      patchShebangs $configureScript
-    done
-  '' + (
+  ''
+  + (
     if targetPlatform != hostPlatform || stdenv.cc.libc != null then
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
@@ -178,13 +183,12 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform langGo;
+    inherit version targetPlatform hostPlatform langGo;
   };
 
   dontDisableStatic = true;
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags = import ../common/configure-flags.nix {
     inherit
@@ -272,13 +276,9 @@ stdenv.mkDerivation ({
       compiler used in the GNU system including the GNU/Linux variant.
     '';
 
-    maintainers = with lib.maintainers; [ synthetica ];
+    maintainers = lib.teams.gcc.members;
 
-    platforms =
-      lib.platforms.linux ++
-      lib.platforms.freebsd ++
-      lib.platforms.illumos ++
-      lib.platforms.darwin;
+    platforms = lib.platforms.unix;
   };
 }
 
diff --git a/nixpkgs/pkgs/development/compilers/gcc/9/default.nix b/nixpkgs/pkgs/development/compilers/gcc/9/default.nix
index ca92a8f48450..857263e51e0b 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/9/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/9/default.nix
@@ -5,6 +5,7 @@
 , langObjCpp ? stdenv.targetPlatform.isDarwin
 , langD ? false
 , langGo ? false
+, reproducibleBuild ? true
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
@@ -54,6 +55,10 @@ assert langAda -> gnatboot != null;
 # threadsCross is just for MinGW
 assert threadsCross != null -> stdenv.targetPlatform.isWindows;
 
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
 with lib;
 with builtins;
 
@@ -112,9 +117,15 @@ stdenv.mkDerivation ({
 
   hardeningDisable = [ "format" "pie" ];
 
+  postPatch = ''
+    configureScripts=$(find . -name configure)
+    for configureScript in $configureScripts; do
+      patchShebangs $configureScript
+    done
+  ''
   # This should kill all the stdinc frameworks that gcc and friends like to
   # insert into default search paths.
-  prePatch = lib.optionalString hostPlatform.isDarwin ''
+  + lib.optionalString hostPlatform.isDarwin ''
     substituteInPlace gcc/config/darwin-c.c \
       --replace 'if (stdinc)' 'if (0)'
 
@@ -123,14 +134,8 @@ stdenv.mkDerivation ({
 
     substituteInPlace libgfortran/configure \
       --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
-  '';
-
-  postPatch = ''
-    configureScripts=$(find . -name configure)
-    for configureScript in $configureScripts; do
-      patchShebangs $configureScript
-    done
-  '' + (
+  ''
+  + (
     if targetPlatform != hostPlatform || stdenv.cc.libc != null then
       # On NixOS, use the right path to the dynamic linker instead of
       # `/lib/ld*.so'.
@@ -195,13 +200,12 @@ stdenv.mkDerivation ({
 
   preConfigure = import ../common/pre-configure.nix {
     inherit lib;
-    inherit version hostPlatform gnatboot langAda langGo langJit;
+    inherit version targetPlatform hostPlatform gnatboot langAda langGo langJit;
   };
 
   dontDisableStatic = true;
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags = import ../common/configure-flags.nix {
     inherit
@@ -291,13 +295,9 @@ stdenv.mkDerivation ({
       compiler used in the GNU system including the GNU/Linux variant.
     '';
 
-    maintainers = with lib.maintainers; [ synthetica ];
+    maintainers = lib.teams.gcc.members;
 
-    platforms =
-      lib.platforms.linux ++
-      lib.platforms.freebsd ++
-      lib.platforms.illumos ++
-      lib.platforms.darwin;
+    platforms = lib.platforms.unix;
   };
 }
 
diff --git a/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix b/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix
index 7f7a40f3368d..997771c2abfe 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -44,6 +44,9 @@ let
   crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
   crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
 
+  targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+                  "${stdenv.targetPlatform.config}-";
+
   crossConfigureFlags =
     # Ensure that -print-prog-name is able to find the correct programs.
     [
@@ -112,6 +115,18 @@ let
 
     # Basic configuration
     ++ [
+      # Force target prefix. The behavior if `--target` and `--host`
+      # are specified is inconsistent: Sometimes specifying `--target`
+      # always causes a prefix to be generated, sometimes it's only
+      # added if the `--host` and `--target` differ. This means that
+      # sometimes there may be a prefix even though nixpkgs doesn't
+      # expect one and sometimes there may be none even though nixpkgs
+      # expects one (since not all information is serialized into the
+      # config attribute). The easiest way out of these problems is to
+      # always set the program prefix, so gcc will conform to our
+      # expectations.
+      "--program-prefix=${targetPrefix}"
+
       (lib.enableFeature enableLTO "lto")
       "--disable-libstdcxx-pch"
       "--without-included-gettext"
@@ -170,7 +185,8 @@ let
     ++ lib.optional javaAwtGtk "--enable-java-awt=gtk"
     ++ lib.optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr}"
 
-    ++ (import ../common/platform-flags.nix { inherit (stdenv)  targetPlatform; inherit lib; })
+    # TODO: aarch64-darwin has clang stdenv and its arch and cpu flag values are incompatible with gcc
+    ++ lib.optional (!(stdenv.isDarwin && stdenv.isAarch64)) (import ../common/platform-flags.nix { inherit (stdenv)  targetPlatform; inherit lib; })
     ++ lib.optionals (targetPlatform != hostPlatform) crossConfigureFlags
     ++ lib.optional (targetPlatform != hostPlatform) "--disable-bootstrap"
 
diff --git a/nixpkgs/pkgs/development/compilers/gcc/common/pre-configure.nix b/nixpkgs/pkgs/development/compilers/gcc/common/pre-configure.nix
index 1c65b4a8ba64..d9977e0ba2f9 100644
--- a/nixpkgs/pkgs/development/compilers/gcc/common/pre-configure.nix
+++ b/nixpkgs/pkgs/development/compilers/gcc/common/pre-configure.nix
@@ -1,4 +1,4 @@
-{ lib, version, hostPlatform
+{ lib, version, hostPlatform, targetPlatform
 , gnatboot ? null
 , langAda ? false
 , langJava ? false
@@ -58,3 +58,10 @@ lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
 + lib.optionalString (hostPlatform.isDarwin && langJit) ''
   export STRIP='strip -x'
 ''
+
+# HACK: if host and target config are the same, but the platforms are
+# actually different we need to convince the configure script that it
+# is in fact building a cross compiler although it doesn't believe it.
++ lib.optionalString (targetPlatform.config == hostPlatform.config && targetPlatform != hostPlatform) ''
+  substituteInPlace configure --replace is_cross_compiler=no is_cross_compiler=yes
+''
diff --git a/nixpkgs/pkgs/development/compilers/gcc/gnat-cflags-11.patch b/nixpkgs/pkgs/development/compilers/gcc/gnat-cflags-11.patch
new file mode 100644
index 000000000000..03ef28664524
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/gcc/gnat-cflags-11.patch
@@ -0,0 +1,35 @@
+diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
+index 4e74252bd74..0d848b5b4e3 100644
+--- a/gcc/ada/gcc-interface/Makefile.in
++++ b/gcc/ada/gcc-interface/Makefile.in
+@@ -111,7 +111,7 @@ NO_OMIT_ADAFLAGS = -fno-omit-frame-pointer
+ NO_SIBLING_ADAFLAGS = -fno-optimize-sibling-calls
+ NO_REORDER_ADAFLAGS = -fno-toplevel-reorder
+ GNATLIBFLAGS = -W -Wall -gnatg -nostdinc
+-GNATLIBCFLAGS = -g -O2
++GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET)
+ # Pretend that _Unwind_GetIPInfo is available for the target by default.  This
+ # should be autodetected during the configuration of libada and passed down to
+ # here, but we need something for --disable-libada and hope for the best.
+@@ -198,7 +198,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
+ # Link flags used to build gnat tools.  By default we prefer to statically
+ # link with libgcc to avoid a dependency on shared libgcc (which is tricky
+ # to deal with as it may conflict with the libgcc provided by the system).
+-GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc
++GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc $(CFLAGS_FOR_TARGET)
+
+ # End of variables for you to override.
+
+diff --git a/libada/Makefile.in b/libada/Makefile.in
+index 522b9207326..ca866c74471 100644
+--- a/libada/Makefile.in
++++ b/libada/Makefile.in
+@@ -59,7 +59,7 @@ LDFLAGS=
+ CFLAGS=-g
+ PICFLAG = @PICFLAG@
+ GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc
+-GNATLIBCFLAGS= -g -O2
++GNATLIBCFLAGS= -g -O2 $(CFLAGS)
+ GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(CFLAGS_FOR_TARGET) \
+        -fexceptions -DIN_RTS @have_getipinfo@ @have_capability@
+
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
index 02373d00b10f..ad1a47e5cc9f 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
@@ -31,6 +31,8 @@ let
     else
       "${lib.getLib glibc}/lib/ld-linux*";
 
+  downloadsUrl = "https://downloads.haskell.org/ghc";
+
 in
 
 stdenv.mkDerivation rec {
@@ -41,23 +43,23 @@ stdenv.mkDerivation rec {
   # https://downloads.haskell.org/~ghc/8.10.2/
   src = fetchurl ({
     i686-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
       sha256 = "0bvwisl4w0z5z8z0da10m9sv0mhm9na2qm43qxr8zl23mn32mblx";
     };
     x86_64-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-deb10-linux.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-deb10-linux.tar.xz";
       sha256 = "0chnzy9j23b2wa8clx5arwz8wnjfxyjmz9qkj548z14cqf13slcl";
     };
     armv7l-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-armv7-deb10-linux.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-armv7-deb10-linux.tar.xz";
       sha256 = "1j41cq5d3rmlgz7hzw8f908fs79gc5mn3q5wz277lk8zdf19g75v";
     };
     aarch64-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-aarch64-deb10-linux.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-deb10-linux.tar.xz";
       sha256 = "14smwl3741ixnbgi0l51a7kh7xjkiannfqx15b72svky0y4l3wjw";
     };
     x86_64-darwin = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
       sha256 = "1hngyq14l4f950hzhh2d204ca2gfc98pc9xdasxihzqd1jq75dzd";
     };
   }.${stdenv.hostPlatform.system}
@@ -210,13 +212,17 @@ stdenv.mkDerivation rec {
   passthru = {
     targetPrefix = "";
     enableShared = true;
+
+    # Our Cabal compiler name
+    haskellCompilerName = "ghc-${version}";
   };
 
-  meta = {
+  meta = rec {
     homepage = "http://haskell.org/ghc";
     description = "The Glasgow Haskell Compiler";
     license = lib.licenses.bsd3;
     platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
+    hydraPlatforms = builtins.filter (p: minimal || p != "aarch64-linux") platforms;
     maintainers = with lib.maintainers; [ lostnet ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.4.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.4.nix
index 075e9bf9d548..da957f93520b 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.4.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.10.4.nix
@@ -18,7 +18,7 @@
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
+  enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp), gmp
 
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix b/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
index ca984c36957d..8a0994b8b6a5 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
@@ -28,6 +28,8 @@ let
     else
       "${lib.getLib glibc}/lib/ld-linux*";
 
+  downloadsUrl = "https://downloads.haskell.org/ghc";
+
 in
 
 stdenv.mkDerivation rec {
@@ -39,22 +41,22 @@ stdenv.mkDerivation rec {
   src = fetchurl ({
     i686-linux = {
       # Don't use the Fedora27 build (as below) because there isn't one!
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
       sha256 = "1p2h29qghql19ajk755xa0yxkn85slbds8m9n5196ris743vkp8w";
     };
     x86_64-linux = {
       # This is the Fedora build because it links against ncurses6 where the
       # deb9 one links against ncurses5, see here
       # https://github.com/NixOS/nixpkgs/issues/85924 for a discussion
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-fedora27-linux.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-fedora27-linux.tar.xz";
       sha256 = "18dlqm5d028fqh6ghzn7pgjspr5smw030jjzl3kq6q1kmwzbay6g";
     };
     aarch64-linux = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-aarch64-ubuntu18.04-linux.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-ubuntu18.04-linux.tar.xz";
       sha256 = "11n7l2a36i5vxzzp85la2555q4m34l747g0pnmd81cp46y85hlhq";
     };
     x86_64-darwin = {
-      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
+      url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
       sha256 = "0s9188vhhgf23q3rjarwhbr524z6h2qga5xaaa2pma03sfqvvhfz";
     };
   }.${stdenv.hostPlatform.system}
@@ -169,8 +171,14 @@ stdenv.mkDerivation rec {
   passthru = {
     targetPrefix = "";
     enableShared = true;
+
+    # Our Cabal compiler name
+    haskellCompilerName = "ghc-${version}";
   };
 
-  meta.license = lib.licenses.bsd3;
-  meta.platforms = ["x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
+  meta = rec {
+    license = lib.licenses.bsd3;
+    platforms = ["x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
+    hydraPlatforms = builtins.filter (p: p != "aarch64-linux") platforms;
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
index 9bef190ad1c3..b0336ad3992d 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
@@ -18,7 +18,7 @@
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
+  enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp), gmp
 
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix b/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix
index 83f3534d3e4a..58beef5d6882 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.0.1.nix
@@ -19,7 +19,7 @@
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
+  enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp), gmp
 
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
diff --git a/nixpkgs/pkgs/development/compilers/ghc/head.nix b/nixpkgs/pkgs/development/compilers/ghc/head.nix
index 3ba88763117d..a0ca13270a24 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/head.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/head.nix
@@ -10,7 +10,9 @@
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
 
-, enableDwarf ? !stdenv.targetPlatform.isDarwin &&
+  # Libdw.c only supports x86_64, i686 and s390x
+, enableDwarf ? stdenv.targetPlatform.isx86 &&
+                !stdenv.targetPlatform.isDarwin &&
                 !stdenv.targetPlatform.isWindows
 , elfutils # for DWARF support
 
@@ -22,7 +24,7 @@
 
 , # If enabled, GHC will be built with the GPL-free but slightly slower native
   # bignum backend instead of the faster but GPLed gmp backend.
-  enableNativeBignum ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms)
+  enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp)
 , gmp
 
 , # If enabled, use -fPIC when compiling static libs.
@@ -38,7 +40,7 @@
 , # Whether to build terminfo.
   enableTerminfo ? !stdenv.targetPlatform.isWindows
 
-, version ? "8.11.20200824"
+, version ? "9.3.20210504"
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
   ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@@ -110,8 +112,8 @@ stdenv.mkDerivation (rec {
 
   src = fetchgit {
     url = "https://gitlab.haskell.org/ghc/ghc.git/";
-    rev = "3f50154591ada9064351ccec4adfe6df53ca2439";
-    sha256 = "1w2p5bc74aswspzvgvrhcb95hvj5ky38rgqqjvrri19z2qyiky6d";
+    rev = "049c3a83fbce67e58e70c727d89e8331608a4e04";
+    sha256 = "0dk7c9ywam9fj33lqzpwxhiwz017m58j6ixvc8b07kzp7kskaxq7";
   };
 
   enableParallelBuilding = true;
@@ -139,6 +141,9 @@ stdenv.mkDerivation (rec {
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
 
+    # otherwise haddock fails when generating the compiler docs
+    export LANG=C.UTF-8
+
     echo -n "${buildMK dontStrip}" > mk/build.mk
     echo ${version} > VERSION
     echo ${src.rev} > GIT_COMMIT_ID
@@ -256,6 +261,8 @@ stdenv.mkDerivation (rec {
     description = "The Glasgow Haskell Compiler";
     maintainers = with lib.maintainers; [ marcweber andres peti ];
     inherit (ghc.meta) license platforms;
+    # ghcHEAD times out on aarch64-linux on Hydra.
+    hydraPlatforms = builtins.filter (p: p != "aarch64-linux") ghc.meta.platforms;
   };
 
   dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
diff --git a/nixpkgs/pkgs/development/compilers/ghdl/default.nix b/nixpkgs/pkgs/development/compilers/ghdl/default.nix
index ec07331dc52b..e7886eb8f5ed 100644
--- a/nixpkgs/pkgs/development/compilers/ghdl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ghdl/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [ "--enable-synth" ] ++ lib.optional (backend == "llvm")
-    "--with-llvm-config=${llvm}/bin/llvm-config";
+    "--with-llvm-config=${llvm.dev}/bin/llvm-config";
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/compilers/gleam/default.nix b/nixpkgs/pkgs/development/compilers/gleam/default.nix
index 474a960d35f2..7bce45c455f2 100644
--- a/nixpkgs/pkgs/development/compilers/gleam/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gleam/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.14.4";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-iW4mH9zLJzD+E+H/b0NAbPWzfSbDmRpirDwrLlyZppI=";
+    sha256 = "sha256-vBxVGIgg2BpVvEYjmX99YSf1zy9aWOHr6ftaYxJWkzY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  cargoSha256 = "sha256-ErLwrve2Fpyg9JaH3y7VIYuFcOPVP++XAIrRvv5dGm0=";
+  cargoSha256 = "sha256-2zHc7xk5MuEUO9YGifSWbgRTi51ZUk84QLro94LsBtQ=";
 
   meta = with lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/nixpkgs/pkgs/development/compilers/go/1.14.nix b/nixpkgs/pkgs/development/compilers/go/1.14.nix
index 92c1cbdfc18b..e8a90ac0b8df 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.14.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.14.nix
@@ -1,6 +1,20 @@
-{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand
-, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation
-, mailcap, runtimeShell
+{ lib
+, stdenv
+, fetchurl
+, tzdata
+, iana-etc
+, runCommand
+, perl
+, which
+, pkg-config
+, patch
+, procps
+, pcre
+, cacert
+, Security
+, Foundation
+, mailcap
+, runtimeShell
 , buildPackages
 , pkgsBuildTarget
 , fetchpatch
@@ -8,14 +22,9 @@
 }:
 
 let
-
-  inherit (lib) optionals optionalString;
-
-  version = "1.14.15";
-
   go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
 
-  goBootstrap = runCommand "go-bootstrap" {} ''
+  goBootstrap = runCommand "go-bootstrap" { } ''
     mkdir $out
     cp -rf ${go_bootstrap}/* $out/
     chmod -R u+w $out
@@ -41,7 +50,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  inherit version;
+  version = "1.14.15";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
@@ -51,10 +60,10 @@ stdenv.mkDerivation rec {
   # perl is used for testing go vet
   nativeBuildInputs = [ perl which pkg-config patch procps ];
   buildInputs = [ cacert pcre ]
-    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+    ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
 
-  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
+  depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
 
   hardeningDisable = [ "all" ];
 
@@ -106,14 +115,14 @@ stdenv.mkDerivation rec {
     # Disable cgo lookup tests not works, they depend on resolver
     rm src/net/cgo_unix_test.go
 
-  '' + optionalString stdenv.isLinux ''
+  '' + lib.optionalString stdenv.isLinux ''
     # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
     # that run outside a nix server
     sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
 
-  '' + optionalString stdenv.isAarch32 ''
+  '' + lib.optionalString stdenv.isAarch32 ''
     echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
-  '' + optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace src/race.bash --replace \
       "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
     sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
@@ -183,16 +192,18 @@ stdenv.mkDerivation rec {
 
   # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
   # to be different from CC/CXX
-  CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CC_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}cc"
     else
       null;
-  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CXX_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}c++"
     else
       null;
 
-  GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
+  GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
   GO386 = 387; # from Arch: don't assume sse2 on i686
   CGO_ENABLED = 1;
   # Hopefully avoids test timeouts on Hydra
@@ -202,7 +213,7 @@ stdenv.mkDerivation rec {
   # Some tests assume things like home directories and users exists
   GO_BUILDER_NAME = "nix";
 
-  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
+  GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
 
   postConfigure = ''
     export GOCACHE=$TMPDIR/go-cache
@@ -211,7 +222,7 @@ stdenv.mkDerivation rec {
 
     export PATH=$(pwd)/bin:$PATH
 
-    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
+    ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
     # Independent from host/target, CC should produce code for the building system.
     # We only set it when cross-compiling.
     export CC=${buildPackages.stdenv.cc}/bin/cc
@@ -239,12 +250,12 @@ stdenv.mkDerivation rec {
   '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
     mv bin/*_*/* bin
     rmdir bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
     ''}
   '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
     rm -rf bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
     ''}
   '' else "");
diff --git a/nixpkgs/pkgs/development/compilers/go/1.15.nix b/nixpkgs/pkgs/development/compilers/go/1.15.nix
index 7f7870b7e06d..0a9b0ba9b278 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.15.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.15.nix
@@ -1,6 +1,20 @@
-{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand
-, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation
-, mailcap, runtimeShell
+{ lib
+, stdenv
+, fetchurl
+, tzdata
+, iana-etc
+, runCommand
+, perl
+, which
+, pkg-config
+, patch
+, procps
+, pcre
+, cacert
+, Security
+, Foundation
+, mailcap
+, runtimeShell
 , buildPackages
 , pkgsBuildTarget
 , fetchpatch
@@ -8,14 +22,9 @@
 }:
 
 let
-
-  inherit (lib) optionals optionalString;
-
-  version = "1.15.11";
-
   go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
 
-  goBootstrap = runCommand "go-bootstrap" {} ''
+  goBootstrap = runCommand "go-bootstrap" { } ''
     mkdir $out
     cp -rf ${go_bootstrap}/* $out/
     chmod -R u+w $out
@@ -41,20 +50,20 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  inherit version;
+  version = "1.15.13";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "1rb1s130yqy80kcl140k5a53xhvw4fmrpmclvqygcv67si0j8nzj";
+    sha256 = "sha256-mQaeciNHnM5FU/hPh0uTRfb0BF8nz1CJSJtUbaYZokQ=";
   };
 
   # perl is used for testing go vet
   nativeBuildInputs = [ perl which pkg-config patch procps ];
   buildInputs = [ cacert pcre ]
-    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+    ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
 
-  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
+  depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
 
   hardeningDisable = [ "all" ];
 
@@ -114,14 +123,14 @@ stdenv.mkDerivation rec {
     # Disable cgo lookup tests not works, they depend on resolver
     rm src/net/cgo_unix_test.go
 
-  '' + optionalString stdenv.isLinux ''
+  '' + lib.optionalString stdenv.isLinux ''
     # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
     # that run outside a nix server
     sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
 
-  '' + optionalString stdenv.isAarch32 ''
+  '' + lib.optionalString stdenv.isAarch32 ''
     echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
-  '' + optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace src/race.bash --replace \
       "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
     sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
@@ -186,16 +195,18 @@ stdenv.mkDerivation rec {
 
   # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
   # to be different from CC/CXX
-  CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CC_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}cc"
     else
       null;
-  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CXX_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}c++"
     else
       null;
 
-  GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
+  GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
   GO386 = 387; # from Arch: don't assume sse2 on i686
   CGO_ENABLED = 1;
   # Hopefully avoids test timeouts on Hydra
@@ -205,7 +216,7 @@ stdenv.mkDerivation rec {
   # Some tests assume things like home directories and users exists
   GO_BUILDER_NAME = "nix";
 
-  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
+  GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
 
   postConfigure = ''
     export GOCACHE=$TMPDIR/go-cache
@@ -214,7 +225,7 @@ stdenv.mkDerivation rec {
 
     export PATH=$(pwd)/bin:$PATH
 
-    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
+    ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
     # Independent from host/target, CC should produce code for the building system.
     # We only set it when cross-compiling.
     export CC=${buildPackages.stdenv.cc}/bin/cc
@@ -242,12 +253,12 @@ stdenv.mkDerivation rec {
   '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
     mv bin/*_*/* bin
     rmdir bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
     ''}
   '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
     rm -rf bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
     ''}
   '' else "");
@@ -268,5 +279,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = teams.golang.members;
     platforms = platforms.linux ++ platforms.darwin;
+    badPlatforms = [ "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/go/1.16.nix b/nixpkgs/pkgs/development/compilers/go/1.16.nix
index f82a0d72b7ad..26cfb898ecf0 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.16.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.16.nix
@@ -1,21 +1,30 @@
-{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand
-, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation, xcbuild
-, mailcap, runtimeShell
+{ lib
+, stdenv
+, fetchurl
+, tzdata
+, iana-etc
+, runCommand
+, perl
+, which
+, pkg-config
+, patch
+, procps
+, pcre
+, cacert
+, Security
+, Foundation
+, xcbuild
+, mailcap
+, runtimeShell
 , buildPackages
 , pkgsBuildTarget
-, fetchpatch
 , callPackage
 }:
 
 let
-
-  inherit (lib) optionals optionalString;
-
-  version = "1.16.3";
-
   go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
 
-  goBootstrap = runCommand "go-bootstrap" {} ''
+  goBootstrap = runCommand "go-bootstrap" { } ''
     mkdir $out
     cp -rf ${go_bootstrap}/* $out/
     chmod -R u+w $out
@@ -41,22 +50,22 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  inherit version;
+  version = "1.16.5";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "sha256-spjSnekjbKR6Aj44IxO8wtLu0x36cGtgoEEDzoOnGiU=";
+    sha256 = "sha256-e/p+WQjHzJ512l3fMGbXy88/2fpRlFhRMl7rwX9QuoA=";
   };
 
   # perl is used for testing go vet
   nativeBuildInputs = [ perl which pkg-config patch procps ];
   buildInputs = [ cacert pcre ]
-    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+    ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
 
-  propagatedBuildInputs = optionals stdenv.isDarwin [ xcbuild ];
+  propagatedBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
 
-  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
+  depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
 
   hardeningDisable = [ "all" ];
 
@@ -116,14 +125,14 @@ stdenv.mkDerivation rec {
     # Disable cgo lookup tests not works, they depend on resolver
     rm src/net/cgo_unix_test.go
 
-  '' + optionalString stdenv.isLinux ''
+  '' + lib.optionalString stdenv.isLinux ''
     # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
     # that run outside a nix server
     sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
 
-  '' + optionalString stdenv.isAarch32 ''
+  '' + lib.optionalString stdenv.isAarch32 ''
     echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
-  '' + optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace src/race.bash --replace \
       "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
     sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
@@ -181,16 +190,18 @@ stdenv.mkDerivation rec {
 
   # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
   # to be different from CC/CXX
-  CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CC_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}cc"
     else
       null;
-  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CXX_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}c++"
     else
       null;
 
-  GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
+  GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
   GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
   CGO_ENABLED = 1;
   # Hopefully avoids test timeouts on Hydra
@@ -200,7 +211,7 @@ stdenv.mkDerivation rec {
   # Some tests assume things like home directories and users exists
   GO_BUILDER_NAME = "nix";
 
-  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
+  GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
 
   postConfigure = ''
     export GOCACHE=$TMPDIR/go-cache
@@ -209,7 +220,7 @@ stdenv.mkDerivation rec {
 
     export PATH=$(pwd)/bin:$PATH
 
-    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
+    ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
     # Independent from host/target, CC should produce code for the building system.
     # We only set it when cross-compiling.
     export CC=${buildPackages.stdenv.cc}/bin/cc
@@ -237,12 +248,12 @@ stdenv.mkDerivation rec {
   '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
     mv bin/*_*/* bin
     rmdir bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
     ''}
   '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
     rm -rf bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
     ''}
   '' else "");
diff --git a/nixpkgs/pkgs/development/compilers/go/2-dev.nix b/nixpkgs/pkgs/development/compilers/go/2-dev.nix
index 21347cbd65a9..8fd0e2e6630c 100644
--- a/nixpkgs/pkgs/development/compilers/go/2-dev.nix
+++ b/nixpkgs/pkgs/development/compilers/go/2-dev.nix
@@ -1,19 +1,29 @@
-{ pkgs, lib, stdenv, fetchurl, fetchgit, tzdata, iana-etc, runCommand
-, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation
-, mailcap, runtimeShell
+{ lib
+, stdenv
+, fetchgit
+, tzdata
+, iana-etc
+, runCommand
+, perl
+, which
+, pkg-config
+, patch
+, procps
+, pcre
+, cacert
+, Security
+, Foundation
+, mailcap
+, runtimeShell
 , buildPackages
 , pkgsBuildTarget
-, fetchpatch
 , callPackage
 }:
 
 let
-
-  inherit (lib) optionals optionalString;
-
   go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
 
-  goBootstrap = runCommand "go-bootstrap" {} ''
+  goBootstrap = runCommand "go-bootstrap" { } ''
     mkdir $out
     cp -rf ${go_bootstrap}/* $out/
     chmod -R u+w $out
@@ -39,21 +49,21 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go2-unstable";
-  version = "2021-03-22";
+  version = "2021-04-13";
 
   src = fetchgit {
-    url = https://go.googlesource.com/go;
-    rev = "a4b4db4cdeefb7b4ea5adb09073dd123846b3588";
-    sha256 = "sha256:1wqqnywcrfazydi5wcg04s6zgsfh4m879vxfgacgrnigd23ynhvr";
+    url = "https://go.googlesource.com/go";
+    rev = "9cd52cf2a93a958e8e001aea36886e7846c91f2f";
+    sha256 = "sha256:0hybm93y4i4j7bs86y7h73nc1wqnspkq75if7n1032zf9bs8sm96";
   };
 
   # perl is used for testing go vet
   nativeBuildInputs = [ perl which pkg-config patch procps ];
   buildInputs = [ cacert pcre ]
-    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+    ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
 
-  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
+  depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ];
 
   hardeningDisable = [ "all" ];
 
@@ -114,14 +124,14 @@ stdenv.mkDerivation rec {
     # Disable cgo lookup tests not works, they depend on resolver
     rm src/net/cgo_unix_test.go
 
-  '' + optionalString stdenv.isLinux ''
+  '' + lib.optionalString stdenv.isLinux ''
     # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
     # that run outside a nix server
     sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go
 
-  '' + optionalString stdenv.isAarch32 ''
+  '' + lib.optionalString stdenv.isAarch32 ''
     echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
-  '' + optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace src/race.bash --replace \
       "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true
     sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go
@@ -178,16 +188,18 @@ stdenv.mkDerivation rec {
 
   # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
   # to be different from CC/CXX
-  CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CC_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}cc"
     else
       null;
-  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+  CXX_FOR_TARGET =
+    if (stdenv.buildPlatform != stdenv.targetPlatform) then
       "${targetCC}/bin/${targetCC.targetPrefix}c++"
     else
       null;
 
-  GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]);
+  GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
   GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
   CGO_ENABLED = 1;
   # Hopefully avoids test timeouts on Hydra
@@ -197,7 +209,7 @@ stdenv.mkDerivation rec {
   # Some tests assume things like home directories and users exists
   GO_BUILDER_NAME = "nix";
 
-  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
+  GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
 
   postConfigure = ''
     export GOCACHE=$TMPDIR/go-cache
@@ -206,7 +218,7 @@ stdenv.mkDerivation rec {
 
     export PATH=$(pwd)/bin:$PATH
 
-    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
+    ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
     # Independent from host/target, CC should produce code for the building system.
     # We only set it when cross-compiling.
     export CC=${buildPackages.stdenv.cc}/bin/cc
@@ -234,12 +246,12 @@ stdenv.mkDerivation rec {
   '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
     mv bin/*_*/* bin
     rmdir bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH}
     ''}
   '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then ''
     rm -rf bin/*_*
-    ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
+    ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) ''
       rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
     ''}
   '' else "");
diff --git a/nixpkgs/pkgs/development/compilers/go/binary.nix b/nixpkgs/pkgs/development/compilers/go/binary.nix
index 7eb8f8f7b984..a2fff4f6d074 100644
--- a/nixpkgs/pkgs/development/compilers/go/binary.nix
+++ b/nixpkgs/pkgs/development/compilers/go/binary.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   dontStrip = stdenv.hostPlatform.isDarwin;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/go $out/bin
     mv bin/* $out/bin
     cp -r . $out/share/go
@@ -37,5 +38,6 @@ stdenv.mkDerivation rec {
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       $out/bin/go
     '')}
-  '' ;
+    runHook postInstall
+  '';
 }
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix b/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix
index 3a8fca2c1a05..0d12d5fe2dfb 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/community-edition.nix
@@ -6,7 +6,7 @@
 , makeWrapper
 # minimum dependencies
 , Foundation
-, alsaLib
+, alsa-lib
 , fontconfig
 , freetype
 , glibc
@@ -82,7 +82,7 @@ let
         ];
 
         buildInputs = lib.optionals stdenv.isLinux [
-          alsaLib # libasound.so wanted by lib/libjsound.so
+          alsa-lib # libasound.so wanted by lib/libjsound.so
           fontconfig
           freetype
           openssl # libssl.so wanted by languages/ruby/lib/mri/openssl.so
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/enterprise-edition.nix b/nixpkgs/pkgs/development/compilers/graalvm/enterprise-edition.nix
index eb3045d52ad6..f3ca8a4f5bbb 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/enterprise-edition.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/enterprise-edition.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, requireFile, perl, unzip, glibc, zlib, bzip2, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg, libGL, atk, alsaLib, setJavaClassPath }:
+{ lib, stdenv, requireFile, perl, unzip, glibc, zlib, bzip2, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg, libGL, atk, alsa-lib, setJavaClassPath }:
 
 let
   common = javaVersion:
@@ -125,7 +125,7 @@ let
                     }.${javaVersion}
                  }:${
             lib.strings.makeLibraryPath [ glibc xorg.libXxf86vm xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender
-                                                 glib zlib bzip2 alsaLib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg libGL ]}"
+                                                 glib zlib bzip2 alsa-lib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg libGL ]}"
 
           for f in $(find $out -type f -perm -0100); do
             patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
diff --git a/nixpkgs/pkgs/development/compilers/halide/default.nix b/nixpkgs/pkgs/development/compilers/halide/default.nix
index 69b7cd4d8682..916d8fa56f75 100644
--- a/nixpkgs/pkgs/development/compilers/halide/default.nix
+++ b/nixpkgs/pkgs/development/compilers/halide/default.nix
@@ -41,7 +41,17 @@ llvmPackages.stdenv.mkDerivation rec {
   # Note: only openblas and not atlas part of this Nix expression
   # see pkgs/development/libraries/science/math/liblapack/3.5.0.nix
   # to get a hint howto setup atlas instead of openblas
-  buildInputs = [ llvmPackages.llvm libpng libjpeg mesa eigen openblas ];
+  buildInputs = [
+    llvmPackages.llvm
+    llvmPackages.lld
+    llvmPackages.openmp
+    llvmPackages.libclang
+    libpng
+    libjpeg
+    mesa
+    eigen
+    openblas
+  ];
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/development/compilers/haxe/default.nix b/nixpkgs/pkgs/development/compilers/haxe/default.nix
index c9e5a097de1f..d5277899892e 100644
--- a/nixpkgs/pkgs/development/compilers/haxe/default.nix
+++ b/nixpkgs/pkgs/development/compilers/haxe/default.nix
@@ -2,7 +2,7 @@
 
 let
   ocamlDependencies = version:
-    if lib.versionAtLeast version "4.0"
+    if lib.versionAtLeast version "4.2"
     then with ocaml-ng.ocamlPackages; [
       ocaml
       findlib
@@ -13,8 +13,19 @@ let
       sha
       dune_2
       luv
-      (if lib.versionAtLeast version "4.2"
-      then ocaml_extlib else ocaml_extlib-1-7-7)
+      ocaml_extlib
+    ] else if lib.versionAtLeast version "4.0"
+    then with ocaml-ng.ocamlPackages_4_10; [
+      ocaml
+      findlib
+      sedlex_2
+      xml-light
+      ptmap
+      camlp5
+      sha
+      dune_2
+      luv
+      ocaml_extlib-1-7-7
     ] else with ocaml-ng.ocamlPackages_4_05; [
       ocaml
       camlp4
diff --git a/nixpkgs/pkgs/development/compilers/inform6/default.nix b/nixpkgs/pkgs/development/compilers/inform6/default.nix
index f0c182f02077..950bafa67d90 100644
--- a/nixpkgs/pkgs/development/compilers/inform6/default.nix
+++ b/nixpkgs/pkgs/development/compilers/inform6/default.nix
@@ -11,7 +11,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ perl ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "PREFIX=${placeholder "out"}"
+  ];
 
   meta = with lib; {
     description = "Interactive fiction compiler and libraries";
diff --git a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
index 512865829607..75687de4e9e2 100644
--- a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -18,7 +18,7 @@ let
     inherit spirv-llvm-translator;
   };
   inherit (llvmPkgs) llvm;
-  inherit (if buildWithPatches then opencl-clang else llvmPkgs) clang clang-unwrapped spirv-llvm-translator;
+  inherit (if buildWithPatches then opencl-clang else llvmPkgs) clang libclang spirv-llvm-translator;
   inherit (lib) getVersion optional optionals versionOlder versions;
 in
 
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
       ln -s ${clang}/bin/clang $out/
       ln -s clang $out/clang-${versions.major (getVersion clang)}
       ln -s ${opencl-clang}/lib/* $out/
-      ln -s ${clang-unwrapped}/lib/clang/${getVersion clang}/include/opencl-c.h $out/
+      ln -s ${lib.getLib libclang}/lib/clang/${getVersion clang}/include/opencl-c.h $out/
     '';
   };
 
diff --git a/nixpkgs/pkgs/development/compilers/ispc/default.nix b/nixpkgs/pkgs/development/compilers/ispc/default.nix
index fd7481587115..bbe17e0755ce 100644
--- a/nixpkgs/pkgs/development/compilers/ispc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ispc/default.nix
@@ -28,10 +28,9 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ cmake which m4 bison flex python3 ];
+  nativeBuildInputs = [ cmake which m4 bison flex python3 llvmPackages.llvm.dev ];
   buildInputs = with llvmPackages; [
-    # we need to link against libclang, so we need the unwrapped
-    llvm llvmPackages.clang-unwrapped
+    llvm llvmPackages.libclang
   ];
 
   postPatch = ''
@@ -66,6 +65,7 @@ stdenv.mkDerivation rec {
   '';
 
   cmakeFlags = [
+    "-DLLVM_CONFIG_EXECUTABLE=${llvmPackages.llvm.dev}/bin/llvm-config"
     "-DCLANG_EXECUTABLE=${llvmPackages.clang}/bin/clang"
     "-DCLANGPP_EXECUTABLE=${llvmPackages.clang}/bin/clang++"
     "-DISPC_INCLUDE_EXAMPLES=OFF"
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.0-bin.nix b/nixpkgs/pkgs/development/compilers/julia/1.0-bin.nix
new file mode 100644
index 000000000000..dfda8da9e4de
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/1.0-bin.nix
@@ -0,0 +1,80 @@
+{ autoPatchelfHook, fetchurl, lib, makeWrapper, openssl, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "julia-bin";
+  version = "1.0.5";
+
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
+      sha256 = "00vbszpjmz47nqy19v83xa463ajhzwanjyg5mvcfp9kvfw9xdvcx";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  # Julia’s source files are in different locations for source and binary
+  # releases. Thus we temporarily create symlinks to allow us to share patches
+  # with source releases.
+  prePatch = ''
+    ln -s share/julia/stdlib/v${lib.versions.majorMinor version} stdlib
+    ln -s share/julia/test
+  '';
+  patches = [
+    # Source release Nix patch(es) relevant for binary releases as well.
+    ./patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
+  ];
+  postPatch = ''
+    # Revert symlink hack.
+    rm stdlib test
+  '';
+
+  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  installPhase = ''
+    runHook preInstall
+    cp -r . $out
+    # Setting `LD_LIBRARY_PATH` resolves `Libdl` failures. Not sure why this is
+    # only necessary on v1.0.x and a cleaner solution is welcome, but after
+    # staring at `strace` for a few hours this is as clean as I could make it.
+    wrapProgram $out/bin/julia \
+      --suffix LD_LIBRARY_PATH : $out/lib
+    runHook postInstall
+  '';
+
+  # Breaks backtraces, etc.
+  dontStrip = true;
+
+  doInstallCheck = true;
+  installCheckInputs = [ openssl ];
+  preInstallCheck = ''
+    # Some tests require read/write access to $HOME.
+    export HOME="$TMPDIR"
+  '';
+  installCheckPhase = ''
+    runHook preInstallCheck
+    # Command lifted from `test/Makefile`.
+    $out/bin/julia \
+      --check-bounds=yes \
+      --startup-file=no \
+      --depwarn=error \
+      $out/share/julia/test/runtests.jl
+    runHook postInstallCheck
+  '';
+
+  meta = {
+    description = "High-level, high-performance dynamic language for technical computing";
+    homepage = "https://julialang.org";
+    # Bundled and linked with various GPL code, although Julia itself is MIT.
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ ninjin raskin ];
+    platforms = [ "x86_64-linux" ];
+    knownVulnerabilities = [
+      # Built with libgit2 v0.27.2:
+      #   https://github.com/JuliaLang/julia/blob/e0837d1e64a9e4d17534a9f981e9a2a3f221356f/deps/libgit2.version
+      # https://nvd.nist.gov/vuln/detail/CVE-2020-12278
+      "CVE-2020-12278"
+      # https://nvd.nist.gov/vuln/detail/CVE-2020-12279
+      "CVE-2020-12279"
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.0.nix b/nixpkgs/pkgs/development/compilers/julia/1.0.nix
index 5b1a4674a88a..4f05329f595a 100644
--- a/nixpkgs/pkgs/development/compilers/julia/1.0.nix
+++ b/nixpkgs/pkgs/development/compilers/julia/1.0.nix
@@ -88,13 +88,7 @@ stdenv.mkDerivation rec {
   ;
 
   patches = [
-    # Julia recompiles a precompiled file if the mtime stored *in* the
-    # .ji file differs from the mtime of the .ji file.  This
-    # doesn't work in Nix because Nix changes the mtime of files in
-    # the Nix store to 1. So patch Julia to accept mtimes of 1.
-    ./allow_nix_mtime.patch
-    ./diagonal-test.patch
-    ./use-system-utf8proc-julia-1.0.patch
+    ./patches/1.0/use-system-utf8proc-julia-1.0.patch
   ];
 
   postPatch = ''
@@ -184,6 +178,8 @@ stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
   '';
 
+  enableParallelBuilding = true;
+
   postInstall = ''
     # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia,
     # as using a wrapper with LD_LIBRARY_PATH causes segmentation
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.3.nix b/nixpkgs/pkgs/development/compilers/julia/1.3.nix
deleted file mode 100644
index 5e431a552332..000000000000
--- a/nixpkgs/pkgs/development/compilers/julia/1.3.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-{ lib, stdenv, fetchurl, fetchzip, fetchFromGitHub
-# build tools
-, gfortran, m4, makeWrapper, patchelf, perl, which, python2
-, cmake
-# libjulia dependencies
-, libunwind, readline, utf8proc, zlib
-# standard library dependencies
-, curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2
-# linear algebra
-, blas, lapack, arpack
-# Darwin frameworks
-, CoreServices, ApplicationServices
-}:
-
-assert (!blas.isILP64) && (!lapack.isILP64);
-
-with lib;
-
-let
-  majorVersion = "1";
-  minorVersion = "3";
-  maintenanceVersion = "1";
-  src_sha256 = "0q9a7yc3b235psrwl5ghyxgwly25lf8n818l8h6bkf2ymdbsv5p6";
-  version = "${majorVersion}.${minorVersion}.${maintenanceVersion}";
-in
-
-stdenv.mkDerivation rec {
-  pname = "julia";
-  inherit version;
-
-   src = fetchzip {
-     url = "https://github.com/JuliaLang/julia/releases/download/v${majorVersion}.${minorVersion}.${maintenanceVersion}/julia-${majorVersion}.${minorVersion}.${maintenanceVersion}-full.tar.gz";
-     sha256 = src_sha256;
-   };
-
-  prePatch = ''
-    export PATH=$PATH:${cmake}/bin
-    '';
-
-  patches = [
-    ./use-system-utf8proc-julia-1.3.patch
-
-    # Julia recompiles a precompiled file if the mtime stored *in* the
-    # .ji file differs from the mtime of the .ji file.  This
-    # doesn't work in Nix because Nix changes the mtime of files in
-    # the Nix store to 1. So patch Julia to accept mtimes of 1.
-    ./allow_nix_mtime.patch
-  ];
-
-  postPatch = ''
-    patchShebangs . contrib
-    for i in backtrace cmdlineargs; do
-      mv test/$i.jl{,.off}
-      touch test/$i.jl
-    done
-    rm stdlib/Sockets/test/runtests.jl && touch stdlib/Sockets/test/runtests.jl
-    rm stdlib/Distributed/test/runtests.jl && touch stdlib/Distributed/test/runtests.jl
-    sed -e 's/Invalid Content-Type:/invalid Content-Type:/g' -i ./stdlib/LibGit2/test/libgit2.jl
-    sed -e 's/Failed to resolve /failed to resolve /g' -i ./stdlib/LibGit2/test/libgit2.jl
-  '';
-
-  buildInputs = [
-    arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr
-    pcre2.dev blas lapack openlibm openspecfun readline utf8proc
-    zlib
-  ]
-  ++ lib.optionals stdenv.isDarwin [CoreServices ApplicationServices]
-  ;
-
-  nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which ];
-
-  makeFlags =
-    let
-      arch = head (splitString "-" stdenv.system);
-      march = {
-        x86_64 = stdenv.hostPlatform.gcc.arch or "x86-64";
-        i686 = "pentium4";
-        aarch64 = "armv8-a";
-      }.${arch}
-              or (throw "unsupported architecture: ${arch}");
-      # Julia requires Pentium 4 (SSE2) or better
-      cpuTarget = { x86_64 = "x86-64"; i686 = "pentium4"; aarch64 = "generic"; }.${arch}
-                  or (throw "unsupported architecture: ${arch}");
-    in [
-      "ARCH=${arch}"
-      "MARCH=${march}"
-      "JULIA_CPU_TARGET=${cpuTarget}"
-      "PREFIX=$(out)"
-      "prefix=$(out)"
-      "SHELL=${stdenv.shell}"
-
-      (lib.optionalString (!stdenv.isDarwin) "USE_SYSTEM_BLAS=1")
-      "USE_BLAS64=${if blas.isILP64 then "1" else "0"}"
-
-      "USE_SYSTEM_LAPACK=1"
-
-      "USE_SYSTEM_ARPACK=1"
-      "USE_SYSTEM_FFTW=1"
-      "USE_SYSTEM_GMP=1"
-      "USE_SYSTEM_LIBGIT2=1"
-      "USE_SYSTEM_LIBUNWIND=1"
-
-      "USE_SYSTEM_MPFR=1"
-      "USE_SYSTEM_OPENLIBM=1"
-      "USE_SYSTEM_OPENSPECFUN=1"
-      "USE_SYSTEM_PATCHELF=1"
-      "USE_SYSTEM_PCRE=1"
-      "PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config"
-      "PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h"
-      "USE_SYSTEM_READLINE=1"
-      "USE_SYSTEM_UTF8PROC=1"
-      "USE_SYSTEM_ZLIB=1"
-
-      "USE_BINARYBUILDER=0"
-    ];
-
-  LD_LIBRARY_PATH = makeLibraryPath [
-    arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm
-    openspecfun pcre2 lapack
-  ];
-
-  # Other versions of Julia pass the tests, but we are not sure why these fail.
-  doCheck = false;
-  checkTarget = "testall";
-  # Julia's tests require read/write access to $HOME
-  preCheck = ''
-    export HOME="$NIX_BUILD_TOP"
-  '';
-
-  preBuild = ''
-    sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile
-    sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile
-    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
-  '';
-
-  postInstall = ''
-    # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia,
-    # as using a wrapper with LD_LIBRARY_PATH causes segmentation
-    # faults when program returns an error:
-    #   $ julia -e 'throw(Error())'
-    find $(echo $LD_LIBRARY_PATH | sed 's|:| |g') -maxdepth 1 -name '*.${if stdenv.isDarwin then "dylib" else "so"}*' | while read lib; do
-      if [[ ! -e $out/lib/julia/$(basename $lib) ]]; then
-        ln -sv $lib $out/lib/julia/$(basename $lib)
-      fi
-    done
-  '';
-
-  passthru = {
-    inherit majorVersion minorVersion maintenanceVersion;
-    site = "share/julia/site/v${majorVersion}.${minorVersion}";
-  };
-
-  meta = {
-    description = "High-level performance-oriented dynamical language for technical computing";
-    homepage = "https://julialang.org/";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ raskin rob garrison ];
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
-    broken = stdenv.isi686;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.5.nix b/nixpkgs/pkgs/development/compilers/julia/1.5.nix
index b4c33faa44cd..06c0e2a30e8c 100644
--- a/nixpkgs/pkgs/development/compilers/julia/1.5.nix
+++ b/nixpkgs/pkgs/development/compilers/julia/1.5.nix
@@ -33,27 +33,11 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    ./use-system-utf8proc-julia-1.3.patch
-
-    # Julia recompiles a precompiled file if the mtime stored *in* the
-    # .ji file differs from the mtime of the .ji file.  This
-    # doesn't work in Nix because Nix changes the mtime of files in
-    # the Nix store to 1. So patch Julia to accept mtimes of 1.
-    ./allow_nix_mtime.patch
+    ./patches/1.5/use-system-utf8proc-julia-1.3.patch
   ];
 
   postPatch = ''
     patchShebangs . contrib
-    for i in backtrace cmdlineargs; do
-      mv test/$i.jl{,.off}
-      touch test/$i.jl
-    done
-    rm stdlib/Sockets/test/runtests.jl && touch stdlib/Sockets/test/runtests.jl
-    rm stdlib/Distributed/test/runtests.jl && touch stdlib/Distributed/test/runtests.jl
-    # LibGit2 fails with a weird error, so we skip it as well now
-    rm stdlib/LibGit2/test/runtests.jl && touch stdlib/LibGit2/test/runtests.jl
-    sed -e 's/Invalid Content-Type:/invalid Content-Type:/g' -i ./stdlib/LibGit2/test/libgit2.jl
-    sed -e 's/Failed to resolve /failed to resolve /g' -i ./stdlib/LibGit2/test/libgit2.jl
   '';
 
   dontUseCmakeConfigure = true;
@@ -118,17 +102,21 @@ stdenv.mkDerivation rec {
     openspecfun pcre2 lapack
   ];
 
-  # Julia's tests require read/write access to $HOME
-  preCheck = ''
-    export HOME="$NIX_BUILD_TOP"
-  '';
-
   preBuild = ''
     sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile
     sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile
     export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
   '';
 
+  enableParallelBuilding = true;
+
+  # Julia's tests require read/write access to $HOME
+  preCheck = ''
+    export HOME="$NIX_BUILD_TOP"
+  '';
+  doCheck = true;
+  checkTarget = "test";
+
   postInstall = ''
     # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia,
     # as using a wrapper with LD_LIBRARY_PATH causes segmentation
@@ -152,6 +140,8 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ raskin rob garrison ];
     platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
-    broken = stdenv.isi686;
+    # Unfortunately, this derivation does not pass Julia's test suite. See
+    # https://github.com/NixOS/nixpkgs/pull/121114.
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix b/nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix
new file mode 100644
index 000000000000..19aab27ba748
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/1.6-bin.nix
@@ -0,0 +1,73 @@
+{ autoPatchelfHook, fetchurl, lib, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "julia-bin";
+  version = "1.6.1";
+
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
+      sha256 = "01i5sm4vqb0y5qznql571zap19b42775drrcxnzsyhpaqgg8m23w";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  # Julia’s source files are in different locations for source and binary
+  # releases. Thus we temporarily create a symlink to allow us to share patches
+  # with source releases.
+  prePatch = ''
+    ln -s share/julia/test
+  '';
+  patches = [
+    # Source release Nix patch(es) relevant for binary releases as well.
+    ./patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
+    ./patches/1.6-bin/0003-nix-Skip-chown-tests-broken-in-sandbox.patch
+    ./patches/1.6-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
+  ];
+  postPatch = ''
+    # Revert symlink hack.
+    rm test
+
+    # Julia fails to pick up our Certification Authority root certificates, but
+    # it provides its own so we can simply disable the test. Patching in the
+    # dynamic path to ours require us to rebuild the Julia system image.
+    substituteInPlace share/julia/stdlib/v${lib.versions.majorMinor version}/NetworkOptions/test/runtests.jl \
+      --replace '@test ca_roots_path() != bundled_ca_roots()' \
+        '@test_skip ca_roots_path() != bundled_ca_roots()'
+  '';
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  installPhase = ''
+    runHook preInstall
+    cp -r . $out
+    runHook postInstall
+  '';
+
+  # Breaks backtraces, etc.
+  dontStrip = true;
+
+  doInstallCheck = true;
+  preInstallCheck = ''
+    # Some tests require read/write access to $HOME.
+    export HOME="$TMPDIR"
+  '';
+  installCheckPhase = ''
+    runHook preInstallCheck
+    # Command lifted from `test/Makefile`.
+    $out/bin/julia \
+      --check-bounds=yes \
+      --startup-file=no \
+      --depwarn=error \
+      $out/share/julia/test/runtests.jl
+    runHook postInstallCheck
+  '';
+
+  meta = {
+    description = "High-level, high-performance dynamic language for technical computing.";
+    homepage = "https://julialang.org";
+    # Bundled and linked with various GPL code, although Julia itself is MIT.
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ ninjin raskin ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/julia/README.md b/nixpkgs/pkgs/development/compilers/julia/README.md
new file mode 100644
index 000000000000..d37c01bc8ce6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/README.md
@@ -0,0 +1,24 @@
+Julia
+=====
+
+[Julia][julia], as a full-fledged programming language with an extensive
+standard library that covers numerical computing, can be somewhat challenging to
+package. This file aims to provide pointers which could not easily be included
+as comments in the expressions themselves.
+
+[julia]: https://julialang.org
+
+For Nixpkgs, the manual is as always your primary reference, and for the Julia
+side of things you probably want to familiarise yourself with the [README
+][readme], [build instructions][build], and [release process][release_process].
+Remember that these can change between Julia releases, especially if the LTS and
+release branches have deviated greatly. A lot of the build process is
+underdocumented and thus there is no substitute for digging into the code that
+controls the build process. You are very likely to need to use the test suite to
+locate and address issues and in the end passing it, while only disabling a
+minimal set of broken or incompatible tests you think you have a good reason to
+disable, is your best bet at arriving at a solid derivation.
+
+[readme]: https://github.com/JuliaLang/julia/blob/master/README.md
+[build]: https://github.com/JuliaLang/julia/blob/master/doc/build/build.md
+[release_process]: https://julialang.org/blog/2019/08/release-process
diff --git a/nixpkgs/pkgs/development/compilers/julia/allow_nix_mtime.patch b/nixpkgs/pkgs/development/compilers/julia/allow_nix_mtime.patch
deleted file mode 100644
index e4a164cfa1ad..000000000000
--- a/nixpkgs/pkgs/development/compilers/julia/allow_nix_mtime.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f79775378a9eeec5b99f18cc95735b12d172aba3 Mon Sep 17 00:00:00 2001
-From: Tom McLaughlin <pyro777@gmail.com>
-Date: Wed, 12 Dec 2018 13:01:32 -0800
-Subject: [PATCH] Patch to make work better with nix
-
----
- base/loading.jl | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/base/loading.jl b/base/loading.jl
-index 51201b98b6..b40c0690f6 100644
---- a/base/loading.jl
-+++ b/base/loading.jl
-@@ -1384,7 +1384,7 @@ function stale_cachefile(modpath::String, cachefile::String)
-                 # Issue #13606: compensate for Docker images rounding mtimes
-                 # Issue #20837: compensate for GlusterFS truncating mtimes to microseconds
-                 ftime = mtime(f)
--                if ftime != ftime_req && ftime != floor(ftime_req) && ftime != trunc(ftime_req, digits=6)
-+                if ftime != ftime_req && ftime != floor(ftime_req) && ftime != trunc(ftime_req, digits=6) && ftime != 1.0
-                     @debug "Rejecting stale cache file $cachefile (mtime $ftime_req) because file $f (mtime $ftime) has changed"
-                     return true
-                 end
--- 
-2.17.1
-
diff --git a/nixpkgs/pkgs/development/compilers/julia/diagonal-test.patch b/nixpkgs/pkgs/development/compilers/julia/diagonal-test.patch
deleted file mode 100644
index dd31e67e9d34..000000000000
--- a/nixpkgs/pkgs/development/compilers/julia/diagonal-test.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9eb180c523b877a53b9e1cf53a4d5e6dad3d7bfe Mon Sep 17 00:00:00 2001
-From: Lars Jellema <lars.jellema@gmail.com>
-Date: Sat, 19 Sep 2020 13:52:20 +0200
-Subject: [PATCH] Use approximate comparisons for diagonal tests
-
----
- stdlib/LinearAlgebra/test/diagonal.jl | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/stdlib/LinearAlgebra/test/diagonal.jl b/stdlib/LinearAlgebra/test/diagonal.jl
-index e420d5bc6d..7f1b5d0aec 100644
---- a/stdlib/LinearAlgebra/test/diagonal.jl
-+++ b/stdlib/LinearAlgebra/test/diagonal.jl
-@@ -450,8 +450,8 @@ end
-         M = randn(T, 5, 5)
-         MM = [randn(T, 2, 2) for _ in 1:2, _ in 1:2]
-         for transform in (identity, adjoint, transpose, Adjoint, Transpose)
--            @test lmul!(transform(D), copy(M)) == *(transform(Matrix(D)), M)
--            @test rmul!(copy(M), transform(D)) == *(M, transform(Matrix(D)))
-+            @test lmul!(transform(D), copy(M)) ≈ *(transform(Matrix(D)), M)
-+            @test rmul!(copy(M), transform(D)) ≈ *(M, transform(Matrix(D)))
-             @test lmul!(transform(DD), copy(MM)) == *(transform(fullDD), MM)
-             @test rmul!(copy(MM), transform(DD)) == *(MM, transform(fullDD))
-         end
--- 
-2.28.0
-
diff --git a/nixpkgs/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch b/nixpkgs/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
new file mode 100644
index 000000000000..0de1f7c010d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
@@ -0,0 +1,87 @@
+From 4954b99efae367da49412edd31a7bd832ec62c69 Mon Sep 17 00:00:00 2001
+From: Pontus Stenetorp <pontus@stenetorp.se>
+Date: Mon, 15 Mar 2021 05:55:18 +0000
+Subject: [PATCH 2/3] nix: Skip tests that require network access
+
+Necessary as the Nix build sandbox does not permit network access.
+---
+ stdlib/Sockets/test/runtests.jl | 40 ++++++++++++++++-----------------
+ test/file.jl                    |  4 ++--
+ 2 files changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/stdlib/Sockets/test/runtests.jl b/stdlib/Sockets/test/runtests.jl
+index 6145f87616..9cc7a001e5 100644
+--- a/stdlib/Sockets/test/runtests.jl
++++ b/stdlib/Sockets/test/runtests.jl
+@@ -151,33 +151,33 @@ defaultport = rand(2000:4000)
+ end
+ 
+ @testset "getnameinfo on some unroutable IP addresses (RFC 5737)" begin
+-    @test getnameinfo(ip"192.0.2.1") == "192.0.2.1"
+-    @test getnameinfo(ip"198.51.100.1") == "198.51.100.1"
+-    @test getnameinfo(ip"203.0.113.1") == "203.0.113.1"
+-    @test getnameinfo(ip"0.1.1.1") == "0.1.1.1"
+-    @test getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
+-    @test getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
+-    @test getnameinfo(ip"2001:db8::1") == "2001:db8::1"
++    @test_skip getnameinfo(ip"192.0.2.1") == "192.0.2.1"
++    @test_skip getnameinfo(ip"198.51.100.1") == "198.51.100.1"
++    @test_skip getnameinfo(ip"203.0.113.1") == "203.0.113.1"
++    @test_skip getnameinfo(ip"0.1.1.1") == "0.1.1.1"
++    @test_skip getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
++    @test_skip getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
++    @test_skip getnameinfo(ip"2001:db8::1") == "2001:db8::1"
+ end
+ 
+ @testset "getnameinfo on some valid IP addresses" begin
+     @test !isempty(getnameinfo(ip"::")::String)
+-    @test !isempty(getnameinfo(ip"0.0.0.0")::String)
+-    @test !isempty(getnameinfo(ip"10.1.0.0")::String)
+-    @test !isempty(getnameinfo(ip"10.1.0.255")::String)
+-    @test !isempty(getnameinfo(ip"10.1.255.1")::String)
+-    @test !isempty(getnameinfo(ip"255.255.255.255")::String)
+-    @test !isempty(getnameinfo(ip"255.255.255.0")::String)
+-    @test !isempty(getnameinfo(ip"192.168.0.1")::String)
+-    @test !isempty(getnameinfo(ip"::1")::String)
++    @test_skip !isempty(getnameinfo(ip"0.0.0.0")::String)
++    @test_skip !isempty(getnameinfo(ip"10.1.0.0")::String)
++    @test_skip !isempty(getnameinfo(ip"10.1.0.255")::String)
++    @test_skip !isempty(getnameinfo(ip"10.1.255.1")::String)
++    @test_skip !isempty(getnameinfo(ip"255.255.255.255")::String)
++    @test_skip !isempty(getnameinfo(ip"255.255.255.0")::String)
++    @test_skip !isempty(getnameinfo(ip"192.168.0.1")::String)
++    @test_skip !isempty(getnameinfo(ip"::1")::String)
+ end
+ 
+ @testset "getaddrinfo" begin
+-    let localhost = getnameinfo(ip"127.0.0.1")::String
+-        @test !isempty(localhost) && localhost != "127.0.0.1"
+-        @test !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
+-        @test getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
+-        @test try
++    let localhost = getnameinfo(ip"::")::String
++        @test_skip !isempty(localhost) && localhost != "127.0.0.1"
++        @test_skip !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
++        @test_skip getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
++        @test_skip try
+             getaddrinfo(localhost, IPv6)::IPv6 != ip"::"
+         catch ex
+             isa(ex, Sockets.DNSError) && ex.code == Base.UV_EAI_NONAME && ex.host == localhost
+diff --git a/test/file.jl b/test/file.jl
+index e86476f975..579276f82c 100644
+--- a/test/file.jl
++++ b/test/file.jl
+@@ -874,8 +874,8 @@ if !Sys.iswindows() || (Sys.windows_version() >= Sys.WINDOWS_VISTA_VER)
+ else
+     @test_throws ErrorException symlink(file, "ba\0d")
+ end
+-@test_throws ArgumentError download("good", "ba\0d")
+-@test_throws ArgumentError download("ba\0d", "good")
++@test_skip @test_throws ArgumentError download("good", "ba\0d")
++@test_skip @test_throws ArgumentError download("ba\0d", "good")
+ 
+ ###################
+ #     walkdir     #
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.0.patch b/nixpkgs/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch
index be4391399f55..be4391399f55 100644
--- a/nixpkgs/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.0.patch
+++ b/nixpkgs/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch
diff --git a/nixpkgs/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch b/nixpkgs/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch
index 63e0ba9ab057..63e0ba9ab057 100644
--- a/nixpkgs/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch
+++ b/nixpkgs/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch
diff --git a/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch b/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
new file mode 100644
index 000000000000..d47efe25c5a0
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
@@ -0,0 +1,28 @@
+From ffe227676352a910754d96d92e9b06e475f28ff1 Mon Sep 17 00:00:00 2001
+From: Pontus Stenetorp <pontus@stenetorp.se>
+Date: Thu, 8 Apr 2021 04:25:19 +0000
+Subject: [PATCH 2/6] nix: Skip `tempname` test broken in sandbox
+
+Reported upstream:
+
+    https://github.com/JuliaLang/julia/issues/38873
+---
+ test/file.jl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/file.jl b/test/file.jl
+index 0f39bc7c14..bd4dd78f62 100644
+--- a/test/file.jl
++++ b/test/file.jl
+@@ -95,7 +95,7 @@ end
+     @test dirname(t) == tempdir()
+     mktempdir() do d
+         t = tempname(d)
+-        @test dirname(t) == d
++        @test_skip dirname(t) == d
+     end
+     @test_throws ArgumentError tempname(randstring())
+ end
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0003-nix-Skip-chown-tests-broken-in-sandbox.patch b/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0003-nix-Skip-chown-tests-broken-in-sandbox.patch
new file mode 100644
index 000000000000..e63c88c8fe3b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0003-nix-Skip-chown-tests-broken-in-sandbox.patch
@@ -0,0 +1,27 @@
+From b20357fb1044d2c100172b1d5cbdf6c6d9bd3590 Mon Sep 17 00:00:00 2001
+From: Pontus Stenetorp <pontus@stenetorp.se>
+Date: Thu, 8 Apr 2021 05:10:39 +0000
+Subject: [PATCH 3/6] nix: Skip `chown` tests broken in sandbox
+
+---
+ test/file.jl | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/file.jl b/test/file.jl
+index bd4dd78f62..06fd4e49da 100644
+--- a/test/file.jl
++++ b/test/file.jl
+@@ -503,8 +503,8 @@ if !Sys.iswindows()
+         @test stat(file).gid == 0
+         @test stat(file).uid == 0
+     else
+-        @test_throws Base._UVError("chown($(repr(file)), -2, -1)", Base.UV_EPERM) chown(file, -2, -1)  # Non-root user cannot change ownership to another user
+-        @test_throws Base._UVError("chown($(repr(file)), -1, -2)", Base.UV_EPERM) chown(file, -1, -2)  # Non-root user cannot change group to a group they are not a member of (eg: nogroup)
++        @test_skip @test_throws Base._UVError("chown($(repr(file)), -2, -1)", Base.UV_EPERM) chown(file, -2, -1)  # Non-root user cannot change ownership to another user
++        @test_skip @test_throws Base._UVError("chown($(repr(file)), -1, -2)", Base.UV_EPERM) chown(file, -1, -2)  # Non-root user cannot change group to a group they are not a member of (eg: nogroup)
+     end
+ else
+     # test that chown doesn't cause any errors for Windows
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch b/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
new file mode 100644
index 000000000000..243a9cfd76ae
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/julia/patches/1.6-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
@@ -0,0 +1,30 @@
+From 44c2c979c4f2222567ce65f506cf47fb87482348 Mon Sep 17 00:00:00 2001
+From: Pontus Stenetorp <pontus@stenetorp.se>
+Date: Thu, 8 Apr 2021 04:37:44 +0000
+Subject: [PATCH 5/6] nix: Enable parallel unit tests for sandbox
+
+Disabled by default due to lack of networking in the Nix sandbox. This
+greatly speeds up the build process on a multi-core system.
+---
+ test/runtests.jl | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/test/runtests.jl b/test/runtests.jl
+index 2f9cd058bb..2f8c19fa32 100644
+--- a/test/runtests.jl
++++ b/test/runtests.jl
+@@ -83,8 +83,9 @@ prepend!(tests, linalg_tests)
+ import LinearAlgebra
+ cd(@__DIR__) do
+     n = 1
+-    if net_on
+-        n = min(Sys.CPU_THREADS, length(tests))
++    if net_on || haskey(ENV, "NIX_BUILD_CORES")
++        x = haskey(ENV, "NIX_BUILD_CORES") ? parse(Int, ENV["NIX_BUILD_CORES"]) : Sys.CPU_THREADS
++        n = min(x, Sys.CPU_THREADS, length(tests))
+         n > 1 && addprocs_with_testenv(n)
+         LinearAlgebra.BLAS.set_num_threads(1)
+     end
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/compilers/julia/update-1.5.py b/nixpkgs/pkgs/development/compilers/julia/update-1.5.py
deleted file mode 100755
index e37f37d456bf..000000000000
--- a/nixpkgs/pkgs/development/compilers/julia/update-1.5.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i python3 -p python3 python3Packages.requests
-
-import os
-import re
-import requests
-import subprocess
-
-latest = requests.get("https://api.github.com/repos/JuliaLang/julia/releases/latest").json()["tag_name"]
-assert latest[0] == "v"
-major, minor, patch = latest[1:].split(".")
-assert major == "1"
-# When a new minor version comes out we'll have to refactor/copy this update script.
-assert minor == "5"
-
-sha256 = subprocess.check_output(["nix-prefetch-url", "--unpack", f"https://github.com/JuliaLang/julia/releases/download/v{major}.{minor}.{patch}/julia-{major}.{minor}.{patch}-full.tar.gz"], text=True).strip()
-
-nix_path = os.path.join(os.path.dirname(__file__), "1.5.nix")
-nix0 = open(nix_path, "r").read()
-nix1 = re.sub("maintenanceVersion = \".*\";", f"maintenanceVersion = \"{patch}\";", nix0)
-nix2 = re.sub("src_sha256 = \".*\";", f"src_sha256 = \"{sha256}\";", nix1)
-open(nix_path, "w").write(nix2)
diff --git a/nixpkgs/pkgs/development/compilers/koka/default.nix b/nixpkgs/pkgs/development/compilers/koka/default.nix
index 6523dcca2f62..30e273271ae3 100644
--- a/nixpkgs/pkgs/development/compilers/koka/default.nix
+++ b/nixpkgs/pkgs/development/compilers/koka/default.nix
@@ -4,12 +4,12 @@
 , parsec, process, regex-compat, text, time }:
 
 let
-  version = "2.1.1";
+  version = "2.1.4";
   src = fetchFromGitHub {
     owner = "koka-lang";
     repo = "koka";
     rev = "v${version}";
-    sha256 = "sha256-cq+dljfTKJh5NgwQfxQQP9jRcg2PQxxBVEgQ59ll36o=";
+    sha256 = "sha256-MPMA8ZErEKv1SrkliLsy35k88GrdsPqIK6yokQreIjE=";
     fetchSubmodules = true;
   };
   kklib = stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/development/compilers/kotlin/default.nix b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
index 9154b7d76a64..5fdf58e56f5d 100644
--- a/nixpkgs/pkgs/development/compilers/kotlin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
@@ -1,14 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, unzip }:
 
-let
-  version = "1.4.21";
-in stdenv.mkDerivation {
-  inherit version;
+stdenv.mkDerivation rec {
   pname = "kotlin";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "1ixnwrvgs14f9160d9d69r7w2dfp5cdwiwpk1ky0ps8nly8hjwj6";
+    sha256 = "1dyiis96skflhlsmc8byp5j8j3vsicmlslwyrkn1pv4gc8gzqhq3";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/nixpkgs/pkgs/development/compilers/ldc/generic.nix b/nixpkgs/pkgs/development/compilers/ldc/generic.nix
index 4261c2b65334..f79fb24a56b4 100644
--- a/nixpkgs/pkgs/development/compilers/ldc/generic.nix
+++ b/nixpkgs/pkgs/development/compilers/ldc/generic.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    cmake ldcBootstrap lit lit.python llvm_11 makeWrapper ninja unzip
+    cmake ldcBootstrap lit lit.python llvm_11.dev makeWrapper ninja unzip
   ]
   ++ lib.optionals stdenv.hostPlatform.isDarwin [
     darwin.apple_sdk.frameworks.Foundation
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/bintools.nix b/nixpkgs/pkgs/development/compilers/llvm/10/bintools/default.nix
index 53f7941e3369..53f7941e3369 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/bintools.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/bintools/default.nix
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/clang/default.nix
index 35b7ab313d8e..e0c52651cadc 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/clang/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
 }:
@@ -18,28 +19,33 @@ let
       mv clang-tools-extra-* $sourceRoot/tools/extra
     '';
 
-    nativeBuildInputs = [ cmake python3 lld ]
+    nativeBuildInputs = [ cmake python3 ]
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++14"
       "-DCLANGD_BUILD_XPC=OFF"
       "-DLLVM_ENABLE_RTTI=ON"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
     ];
 
     patches = [
       ./purity.patch
       # https://reviews.llvm.org/D51899
       ./compiler-rt-baremetal.patch
+      ./gnu-install-dirs.patch
     ];
 
     postPatch = ''
@@ -56,12 +62,12 @@ let
         --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -80,18 +86,30 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -110,6 +128,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..454c81875eab
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/clang/gnu-install-dirs.patch
@@ -0,0 +1,248 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dc1413f4b597..c173531e624f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,6 +9,8 @@ endif()
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(LLVM_CONFIG)
+@@ -417,7 +419,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -427,7 +429,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+@@ -447,7 +449,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
+   install(PROGRAMS utils/bash-autocomplete.sh
+-          DESTINATION share/clang
++          DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+           COMPONENT bash-autocomplete)
+   if(NOT LLVM_ENABLE_IDE)
+     add_llvm_install_targets(install-bash-autocomplete
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index 577cc11ab015..a4f4481d8442 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -114,9 +114,9 @@ macro(add_clang_library name)
+       install(TARGETS ${name}
+         COMPONENT ${name}
+         ${export_to_clangtargets}
+-        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        RUNTIME DESTINATION bin)
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+         add_llvm_install_targets(install-${name}
+@@ -160,7 +160,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT LLVM_ENABLE_IDE)
+@@ -175,7 +175,7 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+ 
+ function(clang_target_link_libraries target type)
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index 85c3124234ad..64c48235d914 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -191,7 +191,7 @@ set_target_properties(clang-resource-headers PROPERTIES
+   FOLDER "Misc"
+   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
+ 
+-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${files} ${generated_files}
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index ceef4b08637c..8efad5520ca4 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index 35ecdb11253c..d77d75de0094 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index cda8e29ec5b1..0134d8ccd70b 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt
+index a95444be40ee..136d96d9bf5b 100644
+--- a/tools/diagtool/CMakeLists.txt
++++ b/tools/diagtool/CMakeLists.txt
+@@ -21,7 +21,7 @@ clang_target_link_libraries(diagtool
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(TARGETS diagtool
+     COMPONENT diagtool
+-    RUNTIME DESTINATION bin)
++    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+   if (NOT LLVM_ENABLE_IDE)
+     add_llvm_install_targets(install-diagtool
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 973655361f71..0181002e4e3b 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -141,7 +141,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+@@ -172,7 +172,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+           COMPONENT
+             libclang-python-bindings
+           DESTINATION
+-            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
++            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
+ endforeach()
+ if(NOT LLVM_ENABLE_IDE)
+   add_custom_target(libclang-python-bindings)
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index 28241245fcb7..d6b59f02fc2a 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -42,7 +42,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -56,7 +56,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+     install(PROGRAMS libexec/${LibexecFile}
+-            DESTINATION libexec
++            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -84,7 +84,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+     install(FILES share/scan-build/${ShareFile}
+-            DESTINATION share/scan-build
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build
+             COMPONENT scan-build)
+   endforeach()
+ 
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index 22edb974bac7..9f140a9a4538 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -22,7 +22,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-view)
+   endforeach()
+ 
+@@ -36,7 +36,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+     install(FILES share/${ShareFile}
+-            DESTINATION share/scan-view
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view
+             COMPONENT scan-view)
+   endforeach()
+ 
+diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
+index 62f2de0cb15c..6aa66825b6ec 100644
+--- a/utils/hmaptool/CMakeLists.txt
++++ b/utils/hmaptool/CMakeLists.txt
+@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+ 
+ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+ install(PROGRAMS ${CLANG_HMAPTOOL}
+-        DESTINATION bin
++        DESTINATION ${CMAKE_INSTALL_BINDIR}
+         COMPONENT hmaptool)
+ 
+ add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/default.nix
index 1d759c903fc9..37c7e0599b5f 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/default.nix
@@ -1,19 +1,20 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
   useLLVM = stdenv.hostPlatform.useLLVM or false;
   bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
   inherit (stdenv.hostPlatform) isMusl;
 
 in
 
-stdenv.mkDerivation rec {
-  pname = "compiler-rt";
+stdenv.mkDerivation {
+  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
   inherit version;
-  src = fetch pname "1yjqjri753w0fzmxcyz687nvd97sbc9rsqrxzpq720na47hwh3fr";
+  src = fetch "compiler-rt" "1yjqjri753w0fzmxcyz687nvd97sbc9rsqrxzpq720na47hwh3fr";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
 
   NIX_CFLAGS_COMPILE = [
@@ -29,14 +30,15 @@ stdenv.mkDerivation rec {
     "-DCOMPILER_RT_BUILD_XRAY=OFF"
     "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
     "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
+  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
     "-DCMAKE_C_COMPILER_WORKS=ON"
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
     "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
     "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+  ] ++ lib.optionals (useLLVM && !haveLibc) [
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
   ] ++ lib.optionals (useLLVM) [
     "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    "-DCMAKE_C_FLAGS=-nodefaultlibs"
     #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
     "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
   ] ++ lib.optionals (bareMetal) [
@@ -54,10 +56,10 @@ stdenv.mkDerivation rec {
   patches = [
     ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
     ./find-darwin-sdk-version.patch # don't test for macOS being >= 10.15
+    ./gnu-install-dirs.patch
   ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
 
-
   # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
   # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
   # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
@@ -88,4 +90,19 @@ stdenv.mkDerivation rec {
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
   '';
 
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..db0bd006eaf2
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,129 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8d768a404f21..74551dc5a004 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,6 +12,7 @@ endif()
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+ endif()
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index 35a48c6af29c..e4300f256091 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -493,7 +493,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -510,7 +510,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 9f501a61c4b6..f9a0d92dbca0 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -440,7 +440,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index 6e672b1e1818..64999709958e 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -371,7 +371,7 @@ endfunction()
+ function(get_compiler_rt_install_dir arch install_dir)
+   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+     get_compiler_rt_target(${arch} target)
+-    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
++    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
+   else()
+     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
+   endif()
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index b4b87aa53073..f1ae8668837c 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -65,11 +65,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -97,7 +97,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
+   set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ endif()
+ 
+ if(APPLE)
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index d47d7baeb118..507c8e5c713e 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -62,22 +62,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install fuzzer headers.
+ install(FILES ${FUZZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ # Install profile headers.
+ install(FILES ${PROFILE_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index 051215edbeb7..ecce1f52efb0 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -56,4 +56,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/default.nix
index 3fa91cd83749..11367d453cde 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/default.nix
@@ -1,8 +1,19 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+, gccForLibs, preLibcCrossHeaders
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
 }:
 
 let
@@ -17,32 +28,57 @@ let
 
   clang-tools-extra_src = fetch "clang-tools-extra" "06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh";
 
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-    mkExtraBuildCommands = cc: ''
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
+    mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
-      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
+
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
   in {
 
-    llvm = callPackage ./llvm { };
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
+
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit (tools) lld;
-      inherit clang-tools-extra_src;
+    libclang = callPackage ./clang {
+      inherit clang-tools-extra_src llvm_meta;
     };
 
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
     # disabled until recommonmark supports sphinx 3
-    #Llvm-manpages = lowPrio (tools.llvm.override {
+    #Llvm-manpages = lowPrio (tools.libllvm.override {
     #  enableManpages = true;
     #  python3 = pkgs.python3;  # don't use python-boot
     #});
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
@@ -53,8 +89,6 @@ let
     #   python3 = pkgs.python3;  # don't use python-boot
     # });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -77,9 +111,13 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld {};
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
 
-    lldb = callPackage ./lldb {};
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+    };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
     # fully LLVM toolchain from scratch. No GCC toolchain should be
@@ -88,14 +126,21 @@ let
     # doesn’t support like LLVM. Probably we should move to some other
     # file.
 
-    bintools = callPackage ./bintools.nix {};
+    bintools-unwrapped = callPackage ./bintools {};
+
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
 
-    lldClang = wrapCCWith rec {
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
+
+    clangUseLLVM = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
@@ -107,17 +152,17 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
+        echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibcxx = wrapCCWith rec {
+    clangNoLibcxx = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -128,13 +173,10 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibc = wrapCCWith rec {
+    clangNoLibc = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -144,17 +186,22 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoCompilerRt = wrapCCWith {
+    clangNoCompilerRt = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '';
+      '' + mkExtraBuildCommands0 cc;
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
     };
 
   });
@@ -163,33 +210,53 @@ let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
-      }));
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
+               else stdenv;
+    };
+
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt = if stdenv.hostPlatform.isAndroid
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
 
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
-
-    libcxxabi = callPackage ./libc++abi ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-        libunwind = libraries.libunwind;
-      }));
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    openmp = callPackage ./openmp.nix {};
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    libunwind = callPackage ./libunwind ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/libcxx/default.nix
index a3fb09273451..7c01e7317116 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libcxx/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
+{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
   src = fetch "libcxx" "0v78bfr6h2zifvdqnj2wlfk4pvxzrqn3hg1v6lqk3y12bx9p9xny";
@@ -13,7 +13,13 @@ stdenv.mkDerivation {
     export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
   '';
 
-  patches = lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    ../../libcxx-0001-musl-hacks.patch
+  ];
 
   preConfigure = ''
     # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
@@ -43,10 +49,15 @@ stdenv.mkDerivation {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.all;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..4b031e90bdd5
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,99 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 60564dc96c7b..77d832ad5a44 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,6 +26,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 10.0.1)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -415,7 +417,7 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+@@ -423,10 +425,10 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ endif()
+ 
+ file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index 10f100f7f0fb..95ed3978ab73 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -61,7 +61,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
+ 
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 302da8a131b4..4c6ab463f564 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -244,7 +244,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   foreach(file ${files})
+     get_filename_component(dir ${file} DIRECTORY)
+     install(FILES ${file}
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
+       COMPONENT ${CXX_HEADER_TARGET}
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     )
+@@ -253,7 +253,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   if (LIBCXX_NEEDS_SITE_CONFIG)
+     # Install the generated header as __config.
+     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+       RENAME __config
+       COMPONENT ${CXX_HEADER_TARGET})
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 120505fe18da..9b8456d8405a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -341,21 +341,21 @@ if (LIBCXX_INSTALL_LIBRARY)
+     install(TARGETS cxx_shared
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   if (LIBCXX_INSTALL_STATIC_LIBRARY)
+     install(TARGETS cxx_static
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
+     install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${experimental_lib}
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/default.nix
index 1909996614dc..b427949a8426 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/default.nix
@@ -1,27 +1,14 @@
-{ lib, stdenv, cmake, fetch, libcxx, libunwind, llvm, version
+{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
   src = fetch "libcxxabi" "0yqs722y76cwvmfsq0lb917r9m3fci7bf5z3yzl71yz9n88ghzm9";
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  patches = [ ./no-threads.patch ];
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -35,6 +22,24 @@ stdenv.mkDerivation {
     patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch}
   '';
 
+  patches = [
+    ./no-threads.patch
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
@@ -58,11 +63,15 @@ stdenv.mkDerivation {
       ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.all;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..0f80ade7c389
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8f9572586b4a..bf0e41dfc751 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 10.0.1)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -214,17 +216,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/no-threads.patch b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/no-threads.patch
index 787f3e16500e..787f3e16500e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/no-threads.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/no-threads.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/wasm.patch b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/wasm.patch
index 4ebfe46aa813..4ebfe46aa813 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/libc++abi/wasm.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libcxxabi/wasm.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/libunwind/default.nix
index f0f45780a22c..8124cf0821e0 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, version, fetch, cmake, fetchpatch
+{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
@@ -8,7 +8,25 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "09syx66idnm2pr46x2vmk0jn3iwdv0lkd04xy4zjbwmz3vn066bl";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch
new file mode 100644
index 000000000000..8cea7d3e3341
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/libunwind/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c033069ef1d0..e2846896eece 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
+   project(libunwind)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(NOT LLVM_CONFIG_PATH)
+@@ -189,17 +191,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+     string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ else()
+   set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/lld/default.nix
index a94c1b5b0dd3..5d590aec35ac 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/lld/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , cmake
 , libxml2
-, llvm
+, libllvm
 , version
 }:
 
@@ -12,20 +13,31 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "0ynzi35r4fckvp6842alpd43qr810j3728yfslc66fk2mbh4j52r";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
+  buildInputs = [ libllvm libxml2 ];
 
-  outputs = [ "out" "dev" ];
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
+      WebAssembly in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..232f5cbac9dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 641f71c114ae..9d44c1463aff 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -202,7 +204,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index fa48b428d26b..e7967aad3ceb 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index a15e296e31df..654c2cfdb9c0 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -17,7 +17,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/lldb/default.nix
index 7fb8ed57a01f..04b9e06e77a3 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , cmake
 , zlib
@@ -7,8 +7,8 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , python3
 , version
 , darwin
@@ -22,19 +22,22 @@ stdenv.mkDerivation (rec {
 
   src = fetch pname "051p5b04y6z3g730rmc2n2v71lipbw7k69riww3a6sl74myfiaq7";
 
-  patches = [ ./procfs.patch ];
+  patches = [
+    ./procfs.patch
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
 
-  nativeBuildInputs = [ cmake python3 which swig lit ]
-    ++ lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
+  nativeBuildInputs = [
+    cmake python3 which swig lit
+  ] ++ lib.optionals enableManpages [
+    python3.pkgs.sphinx python3.pkgs.recommonmark
+  ];
 
   buildInputs = [
-    ncurses
-    zlib
-    libedit
-    libxml2
-    llvm
-  ]
-  ++ lib.optionals stdenv.isDarwin [
+    ncurses zlib libedit libxml2 libllvm
+  ] ++ lib.optionals stdenv.isDarwin [
     darwin.libobjc
     darwin.apple_sdk.libs.xpc
     darwin.apple_sdk.frameworks.Foundation
@@ -46,8 +49,9 @@ stdenv.mkDerivation (rec {
   hardeningDisable = [ "format" ];
 
   cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
     "-DLLVM_ENABLE_RTTI=OFF"
-    "-DClang_DIR=${clang-unwrapped}/lib/cmake"
+    "-DClang_DIR=${libclang.dev}/lib/cmake"
     "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
@@ -57,33 +61,42 @@ stdenv.mkDerivation (rec {
     "-DLLVM_ENABLE_SPHINX=ON"
     "-DSPHINX_OUTPUT_MAN=ON"
     "-DSPHINX_OUTPUT_HTML=OFF"
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
   ];
 
+  doCheck = false;
+
   postInstall = ''
     # Editor support
     # vscode:
     install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
     mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
-    ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+    ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage = "https://lldb.llvm.org";
-    license = licenses.ncsa;
-    platforms = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "lldb-manpages";
 
   buildPhase = ''
-    make docs-lldb-man
+    make docs-man
   '';
 
   propagatedBuildInputs = [];
 
+  # manually install lldb man page
   installPhase = ''
-    # manually install lldb man page
     mkdir -p $out/share/man/man1
     install docs/man/lldb.1 -t $out/share/man/man1/
   '';
@@ -95,5 +108,7 @@ stdenv.mkDerivation (rec {
 
   doCheck = false;
 
-  meta.description = "man pages for LLDB ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLDB ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..053a580e45ec
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/lldb/gnu-install-dirs.patch
@@ -0,0 +1,65 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 573b8556989e..a12cc6f6ba77 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -17,6 +17,8 @@ set(CMAKE_MODULE_PATH
+ # If we are not building as part of LLVM, build LLDB as a standalone project,
+ # using LLVM as an external library.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
++  include(GNUInstallDirs)
++
+   project(lldb)
+   include(LLDBStandalone)
+ 
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index ecf0b66a41a3..6f2d97af7a11 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -107,13 +107,13 @@ function(add_lldb_library name)
+   endif()
+ 
+   if(PARAM_SHARED)
+-    set(install_dest lib${LLVM_LIBDIR_SUFFIX})
++    set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+     if(PARAM_INSTALL_PREFIX)
+       set(install_dest ${PARAM_INSTALL_PREFIX})
+     endif()
+     # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
+     install(TARGETS ${name} COMPONENT ${name}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       LIBRARY DESTINATION ${install_dest}
+       ARCHIVE DESTINATION ${install_dest}
+       FRAMEWORK DESTINATION ${install_dest})
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index 4a15a343ee1d..c74bbb6878d7 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -238,7 +238,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+@@ -247,7 +247,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index aff75d7db334..98a527c5e761 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -64,4 +64,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix
index 3100eaf4db4d..93cdc7307daa 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/llvm/default.nix
@@ -1,5 +1,7 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
+, fetchpatch
 , cmake
 , python3
 , libffi
@@ -10,10 +12,10 @@
 , version
 , release_version
 , zlib
-, buildPackages
+, buildLlvmTools
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
 , enablePFM ? !(stdenv.isDarwin
   || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
   || stdenv.isAarch32 # broken for the armv7l builder
@@ -44,8 +46,7 @@ in stdenv.mkDerivation (rec {
     mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
@@ -55,10 +56,21 @@ in stdenv.mkDerivation (rec {
 
   propagatedBuildInputs = [ ncurses zlib ];
 
+  patches = [
+    ./gnu-install-dirs.patch
+    # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
+    (fetchpatch {
+      name = "uops-CMOV16rm-noreg.diff";
+      url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
+      sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
+      stripLen = 1;
+    })
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
@@ -97,6 +109,7 @@ in stdenv.mkDerivation (rec {
   '';
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -120,7 +133,20 @@ in stdenv.mkDerivation (rec {
     "-DCAN_TARGET_i386=false"
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildPackages.llvm_10}/bin/llvm-tblgen"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
@@ -134,20 +160,19 @@ in stdenv.mkDerivation (rec {
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-  ''
-  + optionalString (enableSharedLibraries && (!stdenv.isDarwin)) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
   doCheck = stdenv.isLinux && (!stdenv.isx86_32);
@@ -155,12 +180,23 @@ in stdenv.mkDerivation (rec {
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -182,5 +218,7 @@ in stdenv.mkDerivation (rec {
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..3353058d8ab1
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,106 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index 9939097f743e..8cc538da912a 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.4.3)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -145,14 +149,14 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 211f95512717..f9e04a4844b6 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index 86de6f10686e..91f30891ccbe 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 8ffd984e542b..261cc19f3238 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -274,7 +274,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..155bab32f439
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/llvm/gnu-install-dirs.patch
@@ -0,0 +1,416 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0e85afa82c76..3e700d9c5fae 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -253,15 +253,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -527,9 +533,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -993,7 +999,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1005,7 +1011,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1020,13 +1026,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   if (LLVM_INSTALL_MODULEMAPS)
+     install(DIRECTORY include/llvm include/llvm-c
+-            DESTINATION include
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+             COMPONENT llvm-headers
+             FILES_MATCHING
+             PATTERN "module.modulemap"
+             )
+     install(FILES include/llvm/module.install.modulemap
+-            DESTINATION include/llvm
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
+             COMPONENT llvm-headers
+             RENAME "module.extern.modulemap"
+             )
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index f5a1b0d6f238..a7387224d68f 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -729,9 +729,9 @@ macro(add_llvm_library name)
+ 
+       install(TARGETS ${name}
+               ${export_to_llvmexports}
+-              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              RUNTIME DESTINATION bin COMPONENT ${name})
++              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+         add_llvm_install_targets(install-${name}
+@@ -934,7 +934,7 @@ function(process_llvm_pass_plugins)
+           "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
+       install(FILES
+           ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
+-          DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
++          DESTINATION ${LLVM_INSTALL_CMAKE_DIR}
+           COMPONENT cmake-exports)
+ 
+       set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
+@@ -1147,7 +1147,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1713,7 +1713,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1730,7 +1730,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1753,7 +1753,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
+@@ -1836,7 +1836,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -1958,9 +1959,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 554046b20edf..4d1ad980641e 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -144,9 +144,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index 2bf654b60c44..450ee45d86e6 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -78,7 +78,7 @@ function (add_sphinx_target builder project)
+         endif()
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index af757d6199a8..b0fb7e7705d1 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -96,13 +96,13 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+ set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
+ set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
+ configure_file(
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 09fed8085c23..aa79f192abf0 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message(STATUS "Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index a86ebb3a37bd..e720711e2b3c 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -516,8 +516,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -548,13 +548,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   macOS Only: If enabled CMake will generate a target named
+@@ -740,9 +760,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt
+index 3206f90d0916..1822965fc35f 100644
+--- a/examples/Bye/CMakeLists.txt
++++ b/examples/Bye/CMakeLists.txt
+@@ -9,5 +9,5 @@ add_llvm_pass_plugin(Bye
+   BUILDTREE_ONLY
+  )
+ 
+-install(TARGETS ${name} RUNTIME DESTINATION examples)
++install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+ set_target_properties(${name} PROPERTIES FOLDER "Examples")
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index 1d5ca3ba92b0..026f5453c1da 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -4,5 +4,5 @@ add_subdirectory(Support)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index 63cef75368b7..6295478b1f3d 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -23,6 +23,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index fb12e29a36a8..dbb6c2b90332 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -358,12 +358,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = path.str();
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index b86e4abd01a7..02ce5773f17d 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -23,7 +23,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
+ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index ead73ec13a8f..250362021f17 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,7 +8,7 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
+ 
+diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
+index e948496c603a..1f4df8a98b10 100644
+--- a/tools/remarks-shlib/CMakeLists.txt
++++ b/tools/remarks-shlib/CMakeLists.txt
+@@ -11,7 +11,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/Remarks.exports)
+ add_llvm_library(Remarks SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES})
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT Remarks)
+ 
+ if (APPLE)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/10/openmp.nix
deleted file mode 100644
index 2946c51fafe2..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/10/openmp.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch pname "0i4bn84lkpm5w3qkpvwm5z6jdj8fynp7d3bcasa1xyq4is6757yi";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/10/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/10/openmp/default.nix
new file mode 100644
index 000000000000..a1b04c7c66b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/10/openmp/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch pname "0i4bn84lkpm5w3qkpvwm5z6jdj8fynp7d3bcasa1xyq4is6757yi";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/bintools.nix b/nixpkgs/pkgs/development/compilers/llvm/11/bintools/default.nix
index 53f7941e3369..53f7941e3369 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/bintools.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/bintools/default.nix
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
index 2e03112d827d..74078c1ac667 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
@@ -1,6 +1,8 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+{ lib, stdenv, llvm_meta, fetch, fetchpatch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
+, enablePolly ? false
 }:
 
 let
@@ -19,26 +21,47 @@ let
       mv clang-tools-extra-* $sourceRoot/tools/extra
     '';
 
-    nativeBuildInputs = [ cmake python3 lld ]
+    nativeBuildInputs = [ cmake python3 ]
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++14"
       "-DCLANGD_BUILD_XPC=OFF"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
+    ] ++ lib.optionals enablePolly [
+      "-DWITH_POLLY=ON"
+      "-DLINK_POLLY_INTO_TOOLS=ON"
     ];
 
+
     patches = [
       ./purity.patch
       # https://reviews.llvm.org/D51899
+      ./gnu-install-dirs.patch
+      # Revert: [Driver] Default to -fno-common for all targets
+      # https://reviews.llvm.org/D75056
+      #
+      # Maintains compatibility with packages that haven't been fixed yet, and
+      # matches gcc10's configuration in nixpkgs.
+      (fetchpatch {
+        revert = true;
+        url = "https://github.com/llvm/llvm-project/commit/0a9fc9233e172601e26381810d093e02ef410f65.diff";
+        stripLen = 1;
+        excludes = [ "docs/*" "test/*" ];
+        sha256 = "0gxgmi0qbm89mq911dahallhi8m6wa9vpklklqmxafx4rplrr8ph";
+      })
     ];
 
     postPatch = ''
@@ -55,12 +78,12 @@ let
         --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -79,18 +102,30 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -109,6 +144,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..98ea97e05808
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch
@@ -0,0 +1,235 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bb4b801f01c8..77a8b43b22c8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,6 +9,8 @@ endif()
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard to conform to")
+   set(CMAKE_CXX_STANDARD_REQUIRED YES)
+   set(CMAKE_CXX_EXTENSIONS NO)
+@@ -447,7 +449,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -457,7 +459,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+@@ -477,7 +479,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
+   install(PROGRAMS utils/bash-autocomplete.sh
+-          DESTINATION share/clang
++          DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+           COMPONENT bash-autocomplete)
+   if(NOT LLVM_ENABLE_IDE)
+     add_llvm_install_targets(install-bash-autocomplete
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index 704278a0e93b..d25c8d325c71 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -123,9 +123,9 @@ macro(add_clang_library name)
+         install(TARGETS ${lib}
+           COMPONENT ${lib}
+           ${export_to_clangtargets}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          RUNTIME DESTINATION bin)
++          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+         if (NOT LLVM_ENABLE_IDE)
+           add_llvm_install_targets(install-${lib}
+@@ -170,7 +170,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT LLVM_ENABLE_IDE)
+@@ -185,7 +185,7 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+ 
+ function(clang_target_link_libraries target type)
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index 0692fe75a441..6f201e7207d0 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -208,7 +208,7 @@ set_target_properties(clang-resource-headers PROPERTIES
+   FOLDER "Misc"
+   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
+ 
+-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${files} ${generated_files}
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index ceef4b08637c..8efad5520ca4 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index 35ecdb11253c..d77d75de0094 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index cda8e29ec5b1..0134d8ccd70b 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 5cd9ac5cddc1..a197676fedbd 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -165,7 +165,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+@@ -196,7 +196,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+           COMPONENT
+             libclang-python-bindings
+           DESTINATION
+-            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
++            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
+ endforeach()
+ if(NOT LLVM_ENABLE_IDE)
+   add_custom_target(libclang-python-bindings)
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index ec0702d76f18..d25d982f51da 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -61,7 +61,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+     install(PROGRAMS libexec/${LibexecFile}
+-            DESTINATION libexec
++            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -89,7 +89,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+     install(FILES share/scan-build/${ShareFile}
+-            DESTINATION share/scan-build
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build
+             COMPONENT scan-build)
+   endforeach()
+ 
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index 22edb974bac7..9f140a9a4538 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -22,7 +22,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-view)
+   endforeach()
+ 
+@@ -36,7 +36,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+     install(FILES share/${ShareFile}
+-            DESTINATION share/scan-view
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view
+             COMPONENT scan-view)
+   endforeach()
+ 
+diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
+index 62f2de0cb15c..6aa66825b6ec 100644
+--- a/utils/hmaptool/CMakeLists.txt
++++ b/utils/hmaptool/CMakeLists.txt
+@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+ 
+ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+ install(PROGRAMS ${CLANG_HMAPTOOL}
+-        DESTINATION bin
++        DESTINATION ${CMAKE_INSTALL_BINDIR}
+         COMPONENT hmaptool)
+ 
+ add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
index 6ab36063077f..65b024e8cc32 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
@@ -1,20 +1,21 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
   useLLVM = stdenv.hostPlatform.useLLVM or false;
+  isNewDarwinBootstrap = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
   bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
   inherit (stdenv.hostPlatform) isMusl;
 
 in
 
-stdenv.mkDerivation rec {
-  pname = "compiler-rt";
+stdenv.mkDerivation {
+  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
   inherit version;
-  src = fetch pname "0x1j8ngf1zj63wlnns9vlibafq48qcm72p4jpaxkmkb4qw0grwfy";
+  src = fetch "compiler-rt" "0x1j8ngf1zj63wlnns9vlibafq48qcm72p4jpaxkmkb4qw0grwfy";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
-  buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
 
   NIX_CFLAGS_COMPILE = [
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
@@ -24,27 +25,28 @@ stdenv.mkDerivation rec {
     "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
     "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
     "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
-    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
-  ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
+  ] ++ lib.optionals (useLLVM || bareMetal || isMusl || isNewDarwinBootstrap) [
     "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
     "-DCOMPILER_RT_BUILD_XRAY=OFF"
     "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
     "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
+  ] ++ lib.optionals (!haveLibc || bareMetal) [
     "-DCMAKE_C_COMPILER_WORKS=ON"
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
     "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
     "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
-  ] ++ lib.optionals (useLLVM) [
-    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
+  ] ++ lib.optionals (!haveLibc) [
     "-DCMAKE_C_FLAGS=-nodefaultlibs"
+  ] ++ lib.optionals (useLLVM || isNewDarwinBootstrap) [
+    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
     #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
     "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
   ] ++ lib.optionals (bareMetal) [
     "-DCOMPILER_RT_OS_DIR=baremetal"
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
+    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
+    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
@@ -52,10 +54,18 @@ stdenv.mkDerivation rec {
   patches = [
     ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
     ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
+    ./gnu-install-dirs.patch
+    # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
+    # extra `/`.
+    ./normalize-var.patch
   ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
 
 
+  preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    cmakeFlagsArray+=("-DCMAKE_LIPO=$(command -v ${stdenv.cc.targetPrefix}lipo)")
+  '';
+
   # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
   # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
   # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
@@ -66,7 +76,7 @@ stdenv.mkDerivation rec {
       --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
   '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace cmake/builtin-config-ix.cmake \
-      --replace 'set(ARM64 arm64 arm64e)' 'set(ARM64)'
+      --replace 'foreach(arch ''${ARM64})' 'foreach(arch)'
     substituteInPlace cmake/config-ix.cmake \
       --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
   '' + lib.optionalString (useLLVM) ''
@@ -88,4 +98,19 @@ stdenv.mkDerivation rec {
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
   '';
 
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..91e208829295
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,129 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fa62814b635d..6328614d829e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,6 +12,7 @@ endif()
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+ endif()
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index 7c127a93dfa7..6a95a65b70a7 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -524,7 +524,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -541,7 +541,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index be8d7e733c7a..ab256bdff26c 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -498,7 +498,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index 99b9f0e4af44..c5183ffa746e 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -375,7 +375,7 @@ endfunction()
+ function(get_compiler_rt_install_dir arch install_dir)
+   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+     get_compiler_rt_target(${arch} target)
+-    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
++    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
+   else()
+     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
+   endif()
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index 964dd598f102..2acaab87d349 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -66,11 +66,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -98,7 +98,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
+   set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ endif()
+ 
+ if(APPLE)
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index d47d7baeb118..507c8e5c713e 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -62,22 +62,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install fuzzer headers.
+ install(FILES ${FUZZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ # Install profile headers.
+ install(FILES ${PROFILE_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index 051215edbeb7..ecce1f52efb0 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -56,4 +56,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch
new file mode 100644
index 000000000000..b9986910e516
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch
@@ -0,0 +1,16 @@
+diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+index c5183ffa746e..e4e4a007335d 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -299,8 +299,9 @@ macro(load_llvm_config)
+     # Get some LLVM variables from LLVMConfig.
+     include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
+ 
+-    set(LLVM_LIBRARY_OUTPUT_INTDIR
+-      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
++    get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR
++      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}
++      REALPATH)
+   endif()
+ endmacro()
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
index 22209ffb6470..1aad123fba9a 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
@@ -1,8 +1,19 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+, gccForLibs, preLibcCrossHeaders
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
 }:
 
 let
@@ -19,32 +30,70 @@ let
 
   clang-tools-extra_src = fetch "clang-tools-extra" "18n1w1hkv931xzq02b34wglbv6zd6sd0r5kb8piwvag7klj7qw3n";
 
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-    mkExtraBuildCommands = cc: ''
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
+    mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
-      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
+
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
   in {
 
-    llvm = callPackage ./llvm { };
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
+
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
+
+    libllvm-polly = callPackage ./llvm {
+      inherit llvm_meta;
+      enablePolly = true;
+    };
+
+    llvm-polly = tools.libllvm-polly.lib // { outputUnspecified = true; };
+
+    libclang = callPackage ./clang {
+      inherit clang-tools-extra_src llvm_meta;
+    };
+
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit (tools) lld;
+    clang-polly-unwrapped = callPackage ./clang {
+      inherit llvm_meta;
       inherit clang-tools-extra_src;
+      libllvm = tools.libllvm-polly;
+      enablePolly = true;
     };
 
-    # disabled until recommonmark supports sphinx 3
-    #Llvm-manpages = lowPrio (tools.llvm.override {
-    #  enableManpages = true;
-    #  python3 = pkgs.python3;  # don't use python-boot
-    #});
+    llvm-manpages = lowPrio (tools.libllvm.override {
+      enableManpages = true;
+      python3 = pkgs.python3;  # don't use python-boot
+    });
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
@@ -55,8 +104,6 @@ let
     #   python3 = pkgs.python3;  # don't use python-boot
     # });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -79,9 +126,13 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld {};
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
 
-    lldb = callPackage ./lldb {};
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+    };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
     # fully LLVM toolchain from scratch. No GCC toolchain should be
@@ -90,14 +141,21 @@ let
     # doesn’t support like LLVM. Probably we should move to some other
     # file.
 
-    bintools = callPackage ./bintools.nix {};
+    bintools-unwrapped = callPackage ./bintools {};
+
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
+
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
 
-    lldClang = wrapCCWith rec {
+    clangUseLLVM = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
@@ -109,17 +167,17 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
+        echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibcxx = wrapCCWith rec {
+    clangNoLibcxx = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -130,13 +188,10 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibc = wrapCCWith rec {
+    clangNoLibc = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -146,17 +201,22 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoCompilerRt = wrapCCWith {
+    clangNoCompilerRt = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '';
+      '' + mkExtraBuildCommands0 cc;
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
     };
 
   });
@@ -165,33 +225,53 @@ let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
-      }));
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
+               else stdenv;
+    };
+
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt = if stdenv.hostPlatform.isAndroid || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
 
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
-
-    libcxxabi = callPackage ./libc++abi ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-        libunwind = libraries.libunwind;
-      }));
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    openmp = callPackage ./openmp.nix {};
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    libunwind = callPackage ./libunwind ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix
index 6adb824f539d..596d7f9976bb 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetch, fetchpatch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
+{ lib, stdenv, llvm_meta, fetch, fetchpatch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
   src = fetch "libcxx" "1rgqsqpgi0vkga5d7hy0iyfsqgzfz7q1xy7afdfa1snp1qjks8xv";
@@ -15,6 +15,8 @@ stdenv.mkDerivation {
     mv llvm-* llvm
   '';
 
+  outputs = [ "out" "dev" ];
+
   patches = [
     (fetchpatch {
       # Backported from LLVM 12, avoids clashes with commonly used "block.h" header.
@@ -22,7 +24,10 @@ stdenv.mkDerivation {
       sha256 = "sha256-aWa66ogmPkG0xHzSfcpD0qZyZQcNKwLV44js4eiun78=";
       stripLen = 1;
     })
-  ] ++ lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    ../../libcxx-0001-musl-hacks.patch
+  ];
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
@@ -41,16 +46,34 @@ stdenv.mkDerivation {
       "-DLIBCXX_ENABLE_THREADS=OFF"
       "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
       "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
+    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"
+
+    # TODO: this is a bit of a hack to cross compile to Apple Silicon.  libcxx
+    # starting with 11 enables CMAKE_BUILD_WITH_INSTALL_NAME_DIR which requires
+    # platform setup for rpaths. In cmake, this is enabled when macos is newer
+    # than 10.5. However CMAKE_SYSTEM_VERSION is set to empty (TODO: why?)
+    # which prevents the conditional configuration, and configure fails.  The
+    # value here corresponds to `uname -r`. If stdenv.hostPlatform.release is
+    # not null, then this property will be set via mkDerivation (TODO: how can
+    # we set this?).
+    ++ lib.optional (
+      stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 &&
+      stdenv.hostPlatform != stdenv.buildPlatform
+    ) "-DCMAKE_SYSTEM_VERSION=20.1.0";
 
   passthru = {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.all;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..2b95d6a85d8f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,100 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 910d04b54b6d..80ef692d83eb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -31,6 +31,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 11.1.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -418,7 +420,7 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+@@ -426,11 +428,11 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
+   set(LIBCXX_HEADER_DIR  ${CMAKE_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ endif()
+ 
+ file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index c5aa26739e36..8841c4a5252d 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -63,7 +63,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
+ 
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index be8141c98166..93847e5758cc 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -257,7 +257,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   foreach(file ${files})
+     get_filename_component(dir ${file} DIRECTORY)
+     install(FILES ${file}
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
+       COMPONENT ${CXX_HEADER_TARGET}
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     )
+@@ -265,7 +265,7 @@ if (LIBCXX_INSTALL_HEADERS)
+ 
+   # Install the generated header as __config.
+   install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
++    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     RENAME __config
+     COMPONENT ${CXX_HEADER_TARGET})
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 2001c09761d9..5bd11ea6b400 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -344,21 +344,21 @@ if (LIBCXX_INSTALL_LIBRARY)
+     install(TARGETS cxx_shared
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   if (LIBCXX_INSTALL_STATIC_LIBRARY)
+     install(TARGETS cxx_static
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
+     install(TARGETS cxx_experimental
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix
index c35ec706a023..65e0139a5910 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix
@@ -1,27 +1,14 @@
-{ lib, stdenv, cmake, fetch, libcxx, libunwind, llvm, version
+{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
   src = fetch "libcxxabi" "1azcf31mxw59hb1x17xncnm3dyw90ylh8rqx462lvypqh3nr6c8l";
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  patches = [ ./no-threads.patch ];
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -36,6 +23,24 @@ stdenv.mkDerivation {
     patch -p1 -d llvm -i ${./wasm.patch}
   '';
 
+  patches = [
+    ./no-threads.patch
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
@@ -43,7 +48,7 @@ stdenv.mkDerivation {
         # the magic combination of necessary CMake variables
         # if you fancy a try, take a look at
         # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-        install_name_tool -id $out/$file $file
+        ${stdenv.cc.targetPrefix}install_name_tool -id $out/$file $file
       done
       make install
       install -d 755 $out/include
@@ -59,11 +64,15 @@ stdenv.mkDerivation {
       ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.all;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..10651c1255ef
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 36c6b2249e2b..a93c13ccaed9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -24,6 +24,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 11.1.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -160,17 +162,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/no-threads.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/no-threads.patch
index 787f3e16500e..787f3e16500e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/no-threads.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/no-threads.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/wasm.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/wasm.patch
index 4ebfe46aa813..4ebfe46aa813 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libc++abi/wasm.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/wasm.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix
index 0c635cabc0a9..462d63283baf 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, version, fetch, cmake, fetchpatch
+{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
@@ -8,7 +8,25 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "1vpqs2c358v8fbr1r8jmzkfqk12jllimjcfmgxga127ksq9b37nj";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch
new file mode 100644
index 000000000000..b5b9c209278e
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e44a103648f9..aaf1f9555d7f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
+   project(libunwind LANGUAGES C CXX ASM)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(NOT LLVM_CONFIG_PATH)
+@@ -192,17 +194,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+     string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ else()
+   set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix
index 1a16184a6e71..d344d3d3c117 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , cmake
 , libxml2
-, llvm
+, libllvm
 , version
 }:
 
@@ -12,20 +13,31 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "1kk61i7z5bi9i11rzsd2b388d42if1c7a45zkaa4mk0yps67hyh1";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
+  buildInputs = [ libllvm libxml2 ];
 
-  outputs = [ "out" "dev" ];
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
+      WebAssembly in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..19cf5526aa50
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 040bb2c8f6d7..f765f0096d97 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -205,7 +207,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index 23df41312403..d62372c88de7 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index e6f72fcd3488..d903609e6e4f 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -21,7 +21,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/lldb/default.nix
index fc9b471ec9ab..785ac4671ef5 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , cmake
 , zlib
@@ -7,8 +7,8 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , python3
 , version
 , darwin
@@ -22,19 +22,22 @@ stdenv.mkDerivation (rec {
 
   src = fetch pname "1vlyg015dyng43xqb8cg2l6r9ix8klibxsajazbfnckdnh54hwxj";
 
-  patches = [ ./procfs.patch ];
+  patches = [
+    ./procfs.patch
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
 
-  nativeBuildInputs = [ cmake python3 which swig lit ]
-    ++ lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
+  nativeBuildInputs = [
+    cmake python3 which swig lit
+  ] ++ lib.optionals enableManpages [
+    python3.pkgs.sphinx python3.pkgs.recommonmark
+  ];
 
   buildInputs = [
-    ncurses
-    zlib
-    libedit
-    libxml2
-    llvm
-  ]
-  ++ lib.optionals stdenv.isDarwin [
+    ncurses zlib libedit libxml2 libllvm
+  ] ++ lib.optionals stdenv.isDarwin [
     darwin.libobjc
     darwin.apple_sdk.libs.xpc
     darwin.apple_sdk.frameworks.Foundation
@@ -46,8 +49,9 @@ stdenv.mkDerivation (rec {
   hardeningDisable = [ "format" ];
 
   cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
     "-DLLVM_ENABLE_RTTI=OFF"
-    "-DClang_DIR=${clang-unwrapped}/lib/cmake"
+    "-DClang_DIR=${libclang.dev}/lib/cmake"
     "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
@@ -57,33 +61,42 @@ stdenv.mkDerivation (rec {
     "-DLLVM_ENABLE_SPHINX=ON"
     "-DSPHINX_OUTPUT_MAN=ON"
     "-DSPHINX_OUTPUT_HTML=OFF"
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
   ];
 
+  doCheck = false;
+
   postInstall = ''
     # Editor support
     # vscode:
     install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
     mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
-    ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+    ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage = "https://lldb.llvm.org";
-    license = licenses.ncsa;
-    platforms = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "lldb-manpages";
 
   buildPhase = ''
-    make docs-lldb-man
+    make docs-man
   '';
 
   propagatedBuildInputs = [];
 
+  # manually install lldb man page
   installPhase = ''
-    # manually install lldb man page
     mkdir -p $out/share/man/man1
     install docs/man/lldb.1 -t $out/share/man/man1/
   '';
@@ -95,5 +108,7 @@ stdenv.mkDerivation (rec {
 
   doCheck = false;
 
-  meta.description = "man pages for LLDB ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLDB ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..a4769109523d
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch
@@ -0,0 +1,65 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bf748020ea40..34103d2b5e1a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -17,6 +17,8 @@ set(CMAKE_MODULE_PATH
+ # If we are not building as part of LLVM, build LLDB as a standalone project,
+ # using LLVM as an external library.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
++  include(GNUInstallDirs)
++
+   project(lldb)
+   include(LLDBStandalone)
+ 
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index 4ed5c647c5d2..89f96e710d55 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -107,13 +107,13 @@ function(add_lldb_library name)
+   endif()
+ 
+   if(PARAM_SHARED)
+-    set(install_dest lib${LLVM_LIBDIR_SUFFIX})
++    set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+     if(PARAM_INSTALL_PREFIX)
+       set(install_dest ${PARAM_INSTALL_PREFIX})
+     endif()
+     # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
+     install(TARGETS ${name} COMPONENT ${name}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       LIBRARY DESTINATION ${install_dest}
+       ARCHIVE DESTINATION ${install_dest}
+       FRAMEWORK DESTINATION ${install_dest})
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index 8465cfe3b7b7..01b7eae136e2 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -245,7 +245,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+@@ -254,7 +254,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index efba2f74904f..e08413b1dbb1 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -65,4 +65,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
index ee2fe9c90b2b..192cacd6510c 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
@@ -1,5 +1,7 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
+, fetchpatch
 , cmake
 , python3
 , libffi
@@ -10,15 +12,15 @@
 , version
 , release_version
 , zlib
-, buildPackages
+, buildLlvmTools
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
 , enablePFM ? !(stdenv.isDarwin
   || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
   || stdenv.isAarch32 # broken for the armv7l builder
 )
-, enablePolly ? false
+, enablePolly ? false # TODO should be on by default
 }:
 
 let
@@ -44,8 +46,7 @@ in stdenv.mkDerivation (rec {
     mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
@@ -55,10 +56,21 @@ in stdenv.mkDerivation (rec {
 
   propagatedBuildInputs = [ ncurses zlib ];
 
+  patches = [
+    ./gnu-install-dirs.patch
+    # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
+    (fetchpatch {
+      name = "uops-CMOV16rm-noreg.diff";
+      url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
+      sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
+      stripLen = 1;
+    })
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
@@ -99,6 +111,7 @@ in stdenv.mkDerivation (rec {
   LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -122,7 +135,20 @@ in stdenv.mkDerivation (rec {
     "-DCAN_TARGET_i386=false"
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildPackages.llvm_11}/bin/llvm-tblgen"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
@@ -136,33 +162,43 @@ in stdenv.mkDerivation (rec {
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-  ''
-  + optionalString (enableSharedLibraries && (!stdenv.isDarwin)) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
-  doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
+  doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isRiscV);
 
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -184,5 +220,7 @@ in stdenv.mkDerivation (rec {
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..fff2d4953e94
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,106 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index 9939097f743e..8cc538da912a 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.4.3)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -145,14 +149,14 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 211f95512717..f9e04a4844b6 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index 86de6f10686e..91f30891ccbe 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 1039079cb49c..28b499ae1e9e 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -275,7 +275,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..29df98a693f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch
@@ -0,0 +1,417 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 247ad36d3845..815e2c4ba955 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -269,15 +269,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -559,9 +565,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -1107,7 +1113,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1119,7 +1125,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1134,13 +1140,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   if (LLVM_INSTALL_MODULEMAPS)
+     install(DIRECTORY include/llvm include/llvm-c
+-            DESTINATION include
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+             COMPONENT llvm-headers
+             FILES_MATCHING
+             PATTERN "module.modulemap"
+             )
+     install(FILES include/llvm/module.install.modulemap
+-            DESTINATION include/llvm
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
+             COMPONENT llvm-headers
+             RENAME "module.extern.modulemap"
+             )
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index b74adc11ade9..a5aa258cde30 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -766,9 +766,9 @@ macro(add_llvm_library name)
+ 
+       install(TARGETS ${name}
+               ${export_to_llvmexports}
+-              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              RUNTIME DESTINATION bin COMPONENT ${name})
++              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+         add_llvm_install_targets(install-${name}
+@@ -981,7 +981,7 @@ function(process_llvm_pass_plugins)
+           "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
+       install(FILES
+           ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
+-          DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
++          DESTINATION ${LLVM_INSTALL_CMAKE_DIR}
+           COMPONENT cmake-exports)
+ 
+       set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
+@@ -1201,7 +1201,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1819,7 +1819,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1836,7 +1836,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1859,7 +1859,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
+@@ -1942,7 +1942,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -2064,9 +2065,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 554046b20edf..4d1ad980641e 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -144,9 +144,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index b5babb30abcf..190b1222a9f9 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -84,7 +84,7 @@ function (add_sphinx_target builder project)
+         endif()
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index 4b8879f65fe4..f01920bcc60f 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -108,13 +108,13 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+ set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ 
+ # Generate a default location for lit
+ if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 09fed8085c23..aa79f192abf0 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message(STATUS "Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index 1f908d3e95b1..1315e0aa40e1 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -516,8 +516,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -548,13 +548,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   macOS Only: If enabled CMake will generate a target named
+@@ -752,9 +772,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt
+index bb96edb4b4bf..678c22fb43c8 100644
+--- a/examples/Bye/CMakeLists.txt
++++ b/examples/Bye/CMakeLists.txt
+@@ -14,6 +14,6 @@ if (NOT WIN32)
+     BUILDTREE_ONLY
+    )
+ 
+-  install(TARGETS ${name} RUNTIME DESTINATION examples)
++  install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endif()
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index b46319f24fc8..2feabd1954e4 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -5,5 +5,5 @@ add_subdirectory(Frontend)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index 63cef75368b7..6295478b1f3d 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -23,6 +23,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 7e74b7c90816..f185e9283f83 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -358,12 +358,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = std::string(path.str());
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index 2963f97cad88..69d66c9c9ca1 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -25,7 +25,7 @@ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS
+     intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index ead73ec13a8f..250362021f17 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,7 +8,7 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
+ 
+diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
+index e948496c603a..1f4df8a98b10 100644
+--- a/tools/remarks-shlib/CMakeLists.txt
++++ b/tools/remarks-shlib/CMakeLists.txt
+@@ -11,7 +11,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/Remarks.exports)
+ add_llvm_library(Remarks SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES})
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT Remarks)
+ 
+ if (APPLE)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix
deleted file mode 100644
index c99358cd2878..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/openmp.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, fetchpatch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch pname "0bh5cswgpc79awlq8j5i7hp355adaac7s6zaz0zwp6mkflxli1yi";
-
-  patches = [
-    # Fix compilation on aarch64-darwin, remove after the next release.
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/7b5254223acbf2ef9cd278070c5a84ab278d7e5f.patch";
-      sha256 = "sha256-A+9/IVIoazu68FK5H5CiXcOEYe1Hpp4xTx2mIw7m8Es=";
-      stripLen = 1;
-    })
-  ];
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix
new file mode 100644
index 000000000000..330560a677dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, fetchpatch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch pname "0bh5cswgpc79awlq8j5i7hp355adaac7s6zaz0zwp6mkflxli1yi";
+
+  patches = [
+    # Fix compilation on aarch64-darwin, remove after the next release.
+    (fetchpatch {
+      url = "https://github.com/llvm/llvm-project/commit/7b5254223acbf2ef9cd278070c5a84ab278d7e5f.patch";
+      sha256 = "sha256-A+9/IVIoazu68FK5H5CiXcOEYe1Hpp4xTx2mIw7m8Es=";
+      stripLen = 1;
+    })
+  ];
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
index ab329e3d85d7..3d1106dbc52c 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
 }:
@@ -18,26 +19,31 @@ let
       unpackFile ${clang-tools-extra_src}
     '';
 
-    nativeBuildInputs = [ cmake python3 lld ]
+    nativeBuildInputs = [ cmake python3 ]
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++14"
       "-DCLANGD_BUILD_XPC=OFF"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
     ];
 
     patches = [
       ./purity.patch
       # https://reviews.llvm.org/D51899
+      ./gnu-install-dirs.patch
     ];
 
     postPatch = ''
@@ -51,12 +57,12 @@ let
       sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -75,11 +81,14 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
     meta = llvm_meta // {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..b834d386b4eb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/clang/gnu-install-dirs.patch
@@ -0,0 +1,235 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9e74014134a0..976e6a1757fd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.13.4)
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard to conform to")
+   set(CMAKE_CXX_STANDARD_REQUIRED YES)
+   set(CMAKE_CXX_EXTENSIONS NO)
+@@ -416,7 +418,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -425,7 +427,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+@@ -445,7 +447,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
+   install(PROGRAMS utils/bash-autocomplete.sh
+-          DESTINATION share/clang
++          DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+           COMPONENT bash-autocomplete)
+   if(NOT LLVM_ENABLE_IDE)
+     add_llvm_install_targets(install-bash-autocomplete
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index 704278a0e93b..d25c8d325c71 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -123,9 +123,9 @@ macro(add_clang_library name)
+         install(TARGETS ${lib}
+           COMPONENT ${lib}
+           ${export_to_clangtargets}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          RUNTIME DESTINATION bin)
++          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+         if (NOT LLVM_ENABLE_IDE)
+           add_llvm_install_targets(install-${lib}
+@@ -170,7 +170,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT LLVM_ENABLE_IDE)
+@@ -185,7 +185,7 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+ 
+ function(clang_target_link_libraries target type)
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index b2c0ce8dd4a0..19e5443d8c25 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -215,7 +215,7 @@ set_target_properties(clang-resource-headers PROPERTIES
+   FOLDER "Misc"
+   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
+ 
+-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${files} ${generated_files}
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index ceef4b08637c..8efad5520ca4 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index 35ecdb11253c..d77d75de0094 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index cda8e29ec5b1..0134d8ccd70b 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 51ff2e7e1565..1ed5f8a079a1 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -166,7 +166,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+@@ -196,7 +196,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+           COMPONENT
+             libclang-python-bindings
+           DESTINATION
+-            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
++            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
+ endforeach()
+ if(NOT LLVM_ENABLE_IDE)
+   add_custom_target(libclang-python-bindings)
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index ec0702d76f18..d25d982f51da 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -61,7 +61,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+     install(PROGRAMS libexec/${LibexecFile}
+-            DESTINATION libexec
++            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -89,7 +89,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+     install(FILES share/scan-build/${ShareFile}
+-            DESTINATION share/scan-build
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build
+             COMPONENT scan-build)
+   endforeach()
+ 
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index dd3d33439299..fea19c12ce70 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -19,7 +19,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-view)
+   endforeach()
+ 
+@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+     install(FILES share/${ShareFile}
+-            DESTINATION share/scan-view
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view
+             COMPONENT scan-view)
+   endforeach()
+ 
+diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
+index 62f2de0cb15c..6aa66825b6ec 100644
+--- a/utils/hmaptool/CMakeLists.txt
++++ b/utils/hmaptool/CMakeLists.txt
+@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+ 
+ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+ install(PROGRAMS ${CLANG_HMAPTOOL}
+-        DESTINATION bin
++        DESTINATION ${CMAKE_INSTALL_BINDIR}
+         COMPONENT hmaptool)
+ 
+ add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-X86-support-extension.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/X86-support-extension.patch
index f6f9336ad5ad..f6f9336ad5ad 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-X86-support-extension.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/X86-support-extension.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-armv7l.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/armv7l.patch
index 120cfe6feb2a..120cfe6feb2a 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-armv7l.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/armv7l.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-codesign.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/codesign.patch
index 3cc12b94b200..3cc12b94b200 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-codesign.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/codesign.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch
new file mode 100644
index 000000000000..425dc2af01e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/darwin-targetconditionals.patch
@@ -0,0 +1,71 @@
+diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp
+--- a/lib/sanitizer_common/sanitizer_mac.cpp
++++ b/lib/sanitizer_common/sanitizer_mac.cpp
+@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) {
+ // Offset example:
+ // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4
+ constexpr u16 GetOSMajorKernelOffset() {
+-  if (TARGET_OS_OSX) return 4;
+-  if (TARGET_OS_IOS || TARGET_OS_TV) return 6;
+-  if (TARGET_OS_WATCH) return 13;
++#if TARGET_OS_OSX
++  return 4;
++#endif
++#if TARGET_OS_IOS || TARGET_OS_TV
++  return 6;
++#endif
++#if TARGET_OS_WATCH
++  return 13;
++#endif
+ }
+ 
+ using VersStr = char[64];
+@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) {
+   u16 os_major = kernel_major - offset;
+ 
+   const char *format = "%d.0";
+-  if (TARGET_OS_OSX) {
+-    if (os_major >= 16) {  // macOS 11+
+-      os_major -= 5;
+-    } else {  // macOS 10.15 and below
+-      format = "10.%d";
+-    }
++#if TARGET_OS_OSX
++  if (os_major >= 16) {  // macOS 11+
++    os_major -= 5;
++  } else {  // macOS 10.15 and below
++    format = "10.%d";
+   }
++#endif
+   return internal_snprintf(vers, sizeof(VersStr), format, os_major);
+ }
+ 
+@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) {
+ // Aligned versions example:
+ // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6
+ static void MapToMacos(u16 *major, u16 *minor) {
+-  if (TARGET_OS_OSX)
+-    return;
+-
+-  if (TARGET_OS_IOS || TARGET_OS_TV)
++#if !TARGET_OS_OSX
++#if TARGET_OS_IOS || TARGET_OS_TV
+     *major += 2;
+-  else if (TARGET_OS_WATCH)
++#elif TARGET_OS_WATCH
+     *major += 9;
+-  else
++#else
+     UNREACHABLE("unsupported platform");
++#endif
+ 
+   if (*major >= 16) {  // macOS 11+
+     *major -= 5;
+@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) {
+     *minor = *major;
+     *major = 10;
+   }
++#endif
+ }
+ 
+ static MacosVersion GetMacosAlignedVersionInternal() {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
index bf7f4bc4312a..cde1317ca35d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
@@ -4,16 +4,17 @@ let
 
   useLLVM = stdenv.hostPlatform.useLLVM or false;
   bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
   inherit (stdenv.hostPlatform) isMusl;
 
 in
 
-stdenv.mkDerivation rec {
-  pname = "compiler-rt";
+stdenv.mkDerivation {
+  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
   inherit version;
-  src = fetch pname "0d444qihq9jhqnfv003cr704v363va72zl6qaw2algj1c85cva45";
+  src = fetch "compiler-rt" "0d444qihq9jhqnfv003cr704v363va72zl6qaw2algj1c85cva45";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
 
   NIX_CFLAGS_COMPILE = [
@@ -24,36 +25,43 @@ stdenv.mkDerivation rec {
     "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
     "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
     "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
   ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
     "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
     "-DCOMPILER_RT_BUILD_XRAY=OFF"
     "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
     "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
+  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
     "-DCMAKE_C_COMPILER_WORKS=ON"
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
     "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
     "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+  ] ++ lib.optionals (useLLVM && !haveLibc) [
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
   ] ++ lib.optionals (useLLVM) [
     "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    "-DCMAKE_C_FLAGS=-nodefaultlibs"
     #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
     "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
   ] ++ lib.optionals (bareMetal) [
     "-DCOMPILER_RT_OS_DIR=baremetal"
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
+    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
+    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
   ];
 
   outputs = [ "out" "dev" ];
 
   patches = [
-    ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
-    ./compiler-rt-X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
+    ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
+    ./gnu-install-dirs.patch
+    # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
+    # extra `/`.
+    ./normalize-var.patch
   ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
-    ++ lib.optional stdenv.hostPlatform.isAarch32 ./compiler-rt-armv7l.patch;
-
+    # Prevent a compilation error on darwin
+    ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch
+    ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
 
   # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
   # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..5f025764de1c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,129 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b44ad2c2118e..d42f5664d448 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.13.4)
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+ endif()
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index 361538a58e47..f0d8d9ab80f1 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -495,7 +495,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -512,7 +512,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 456a8dcda59f..7a09e74c7c79 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -508,7 +508,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index f61d487e93a0..f1f46fb9599c 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -378,7 +378,7 @@ endfunction()
+ function(get_compiler_rt_install_dir arch install_dir)
+   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+     get_compiler_rt_target(${arch} target)
+-    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
++    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
+   else()
+     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
+   endif()
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index 1edab43e7c0d..1aac6b73ff82 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -65,11 +65,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -97,7 +97,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
+   set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ endif()
+ 
+ if(APPLE)
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index b00e8caa1ddd..0fe64e4862c9 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -69,22 +69,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install fuzzer headers.
+ install(FILES ${FUZZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ # Install profile headers.
+ install(FILES ${PROFILE_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index a29de8deff1b..d39ff01613d2 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -57,4 +57,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/normalize-var.patch b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/normalize-var.patch
new file mode 100644
index 000000000000..135cf625ef78
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/normalize-var.patch
@@ -0,0 +1,16 @@
+diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+index f1f46fb9599c..6f19e69507ba 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -302,8 +302,9 @@ macro(load_llvm_config)
+     # Get some LLVM variables from LLVMConfig.
+     include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
+ 
+-    set(LLVM_LIBRARY_OUTPUT_INTDIR
+-      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
++    get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR
++      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}
++      REALPATH)
+   endif()
+ endmacro()
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
index a6d68d2e2a44..35228eac43be 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
@@ -1,8 +1,19 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+, gccForLibs, preLibcCrossHeaders
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
 , darwin
 }:
 
@@ -27,34 +38,50 @@ let
   };
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-    mkExtraBuildCommands = cc: ''
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
+    mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
       ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
       ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
-      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
 
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
   in {
 
-    llvm = callPackage ./llvm {
+    libllvm = callPackage ./llvm {
       inherit llvm_meta;
     };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit (tools) lld;
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
+
+    libclang = callPackage ./clang {
       inherit clang-tools-extra_src llvm_meta;
     };
 
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
     # disabled until recommonmark supports sphinx 3
-    #Llvm-manpages = lowPrio (tools.llvm.override {
+    #Llvm-manpages = lowPrio (tools.libllvm.override {
     #  enableManpages = true;
     #  python3 = pkgs.python3;  # don't use python-boot
     #});
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
@@ -65,8 +92,6 @@ let
     #   python3 = pkgs.python3;  # don't use python-boot
     # });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -91,7 +116,7 @@ let
 
     lld = callPackage ./lld {
       inherit llvm_meta;
-      libunwind = libraries.libunwind;
+      inherit (libraries) libunwind;
     };
 
     lldb = callPackage ./lldb {
@@ -108,14 +133,21 @@ let
     # doesn’t support like LLVM. Probably we should move to some other
     # file.
 
-    bintools = callPackage ./bintools {};
+    bintools-unwrapped = callPackage ./bintools {};
+
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
+
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
 
-    lldClang = wrapCCWith rec {
+    clangUseLLVM = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
@@ -127,17 +159,17 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
+        echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibcxx = wrapCCWith rec {
+    clangNoLibcxx = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -148,13 +180,10 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibc = wrapCCWith rec {
+    clangNoLibc = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -164,17 +193,22 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoCompilerRt = wrapCCWith {
+    clangNoCompilerRt = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '';
+      '' + mkExtraBuildCommands0 cc;
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
     };
 
   });
@@ -183,33 +217,54 @@ let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt ({ inherit llvm_meta; } //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
-      }));
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
+               else stdenv;
+    };
+
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt = if stdenv.hostPlatform.isAndroid
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
 
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libcxx ({ inherit llvm_meta; } //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
-
-    libcxxabi = callPackage ./libcxxabi ({ inherit llvm_meta; } //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-        libunwind = libraries.libunwind;
-      }));
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    openmp = callPackage ./openmp { inherit llvm_meta; };
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    libunwind = callPackage ./libunwind ({ inherit llvm_meta; } //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      inherit (buildLlvmTools) llvm;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix
index 7b3b26b959e4..1c9a7dd3c53b 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix
@@ -15,7 +15,13 @@ stdenv.mkDerivation {
     mv llvm-* llvm
   '';
 
-  patches = lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    ../../libcxx-0001-musl-hacks.patch
+  ];
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..1f9de00a9d56
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,100 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9bf1a02f0908..612cd4aab76c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,6 +28,8 @@ set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build")
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 12.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -402,7 +404,7 @@ endif ()
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+@@ -410,11 +412,11 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
+   set(LIBCXX_HEADER_DIR  ${CMAKE_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ endif()
+ 
+ file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index 5d2764e870e9..bb1ec5de6ca2 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -63,7 +63,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
+ 
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 29a317b8ae9a..4747263cfd1b 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -252,7 +252,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   foreach(file ${files})
+     get_filename_component(dir ${file} DIRECTORY)
+     install(FILES ${file}
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
+       COMPONENT cxx-headers
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     )
+@@ -260,7 +260,7 @@ if (LIBCXX_INSTALL_HEADERS)
+ 
+   # Install the generated header as __config.
+   install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
++    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     RENAME __config
+     COMPONENT cxx-headers)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9965104cb5b2..9b55dbb1d822 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -352,21 +352,21 @@ if (LIBCXX_INSTALL_SHARED_LIBRARY)
+   install(TARGETS cxx_shared
+     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+ endif()
+ 
+ if (LIBCXX_INSTALL_STATIC_LIBRARY)
+   install(TARGETS cxx_static
+     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+ endif()
+ 
+ if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
+   install(TARGETS cxx_experimental
+     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+ endif()
+ 
+ # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
index dab6c583e889..e360cf8d0b2f 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
@@ -8,18 +8,7 @@ stdenv.mkDerivation {
 
   src = fetch "libcxxabi" "1cbmzspwjlr8f6sp73pw6ivf4dpg6rpc61by0q1m2zca2k6yif3a";
 
-  nativeBuildInputs = [ cmake python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -31,9 +20,26 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
     patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch}
   '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d llvm -i ${./libcxxabi-wasm.patch}
+    patch -p1 -d llvm -i ${./wasm.patch}
   '';
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake python3 ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..b49b1685940f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 426c855288fc..a9812a994f53 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,6 +27,8 @@ set(LIBCXXABI_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 11.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -180,17 +182,17 @@ set(CMAKE_MODULE_PATH
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/wasm.patch b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/wasm.patch
index 4ebfe46aa813..4ebfe46aa813 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/wasm.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/wasm.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix
index 8b75146d7b22..abfe950614ad 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
     mv llvm-* llvm
   '';
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/gnu-install-dirs.patch
new file mode 100644
index 000000000000..a791d6c43231
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48cb8e004e08..fec8144fb95a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -23,6 +23,8 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
+   project(libunwind LANGUAGES C CXX ASM)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libunwind)
+   set(PACKAGE_VERSION 12.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -115,17 +117,17 @@ set(CMAKE_MODULE_PATH
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+     string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ else()
+   set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/lld/default.nix
index 18b72a904071..e2c7470d2fc5 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lld/default.nix
@@ -1,9 +1,10 @@
 { lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , libunwind
 , cmake
 , libxml2
-, llvm
+, libllvm
 , version
 }:
 
@@ -13,8 +14,9 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "1zakyxk5bwnh7jarckcd4rbmzi58jgn2dbah5j5cwcyfyfbx9drc";
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
 
   postPatch = ''
     substituteInPlace MachO/CMakeLists.txt --replace \
@@ -23,12 +25,16 @@ stdenv.mkDerivation rec {
     tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/"
   '';
 
-  outputs = [ "out" "dev" ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libllvm libxml2 ];
+
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
   meta = llvm_meta // {
     homepage = "https://lld.llvm.org/";
@@ -37,7 +43,7 @@ stdenv.mkDerivation rec {
       LLD is a linker from the LLVM project that is a drop-in replacement for
       system linkers and runs much faster than them. It also provides features
       that are useful for toolchain developers.
-      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS) and
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
       WebAssembly in descending order of completeness. Internally, LLD consists
       of several different linkers.
     '';
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..61e2f0e48653
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d4e561b50d8f..cfa5bdd79c2a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -179,7 +181,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     )
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index 23df41312403..d62372c88de7 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index 5cff736ff57f..64e775c771b9 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -21,7 +21,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/default.nix
index 1fce82d7990e..07517308b467 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, llvm_meta
+, runCommand
 , fetch
 , cmake
 , zlib
@@ -7,8 +8,8 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , python3
 , version
 , libobjc
@@ -27,17 +28,30 @@ stdenv.mkDerivation (rec {
 
   src = fetch pname "1v85qyq3snk81vjmwq5q7xikyyqsfpqy2c4qmr81mps4avsw1g0l";
 
-  patches = [ ./lldb-procfs.patch ];
+  patches = [
+    ./procfs.patch
+    (runCommand "resource-dir.patch" {
+      clangLibDir = "${libclang.lib}/lib";
+    } ''
+      substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir
+    '')
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
 
-  nativeBuildInputs = [ cmake python3 which swig lit ]
-    ++ lib.optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
+  nativeBuildInputs = [
+    cmake python3 which swig lit
+  ] ++ lib.optionals enableManpages [
+    python3.pkgs.sphinx python3.pkgs.recommonmark
+  ];
 
   buildInputs = [
     ncurses
     zlib
     libedit
     libxml2
-    llvm
+    libllvm
   ]
   ++ lib.optionals stdenv.isDarwin [
     libobjc
@@ -51,8 +65,9 @@ stdenv.mkDerivation (rec {
   hardeningDisable = [ "format" ];
 
   cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
     "-DLLVM_ENABLE_RTTI=OFF"
-    "-DClang_DIR=${clang-unwrapped}/lib/cmake"
+    "-DClang_DIR=${libclang.dev}/lib/cmake"
     "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
@@ -62,8 +77,13 @@ stdenv.mkDerivation (rec {
     "-DLLVM_ENABLE_SPHINX=ON"
     "-DSPHINX_OUTPUT_MAN=ON"
     "-DSPHINX_OUTPUT_HTML=OFF"
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
   ];
 
+  doCheck = false;
+
   postInstall = ''
     # Editor support
     # vscode:
@@ -90,6 +110,7 @@ stdenv.mkDerivation (rec {
   '';
 
   propagatedBuildInputs = [];
+
   # manually install lldb man page
   installPhase = ''
     mkdir -p $out/share/man/man1
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..98321f4479e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch
@@ -0,0 +1,65 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b5633e21c56a..f2f1035e9238 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,6 +10,8 @@ set(CMAKE_MODULE_PATH
+ # If we are not building as part of LLVM, build LLDB as a standalone project,
+ # using LLVM as an external library.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
++  include(GNUInstallDirs)
++
+   project(lldb)
+   include(LLDBStandalone)
+ 
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index 4ed5c647c5d2..89f96e710d55 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -107,13 +107,13 @@ function(add_lldb_library name)
+   endif()
+ 
+   if(PARAM_SHARED)
+-    set(install_dest lib${LLVM_LIBDIR_SUFFIX})
++    set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+     if(PARAM_INSTALL_PREFIX)
+       set(install_dest ${PARAM_INSTALL_PREFIX})
+     endif()
+     # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
+     install(TARGETS ${name} COMPONENT ${name}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       LIBRARY DESTINATION ${install_dest}
+       ARCHIVE DESTINATION ${install_dest}
+       FRAMEWORK DESTINATION ${install_dest})
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index 2fdf1502d055..37364341ff8b 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -225,7 +225,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".cmake" EXCLUDE
+@@ -233,7 +233,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".cmake" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index 734167e51bc5..f95761b5df58 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -65,4 +65,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lldb/lldb-procfs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/procfs.patch
index b075dbaeee0a..b075dbaeee0a 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/lldb/lldb-procfs.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/procfs.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/lldb/resource-dir.patch b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/resource-dir.patch
new file mode 100644
index 000000000000..e0db80afeb9f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/lldb/resource-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake
+index 37364341ff8b..7f74c1a3e257 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers)
+   # Iterate over the possible places where the external resource directory
+   # could be and pick the first that exists.
+   foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}"
+-                    "${LLVM_BUILD_LIBRARY_DIR}"
++                    "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@"
+                     "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
+     # Build the resource directory path by appending 'clang/<version number>'.
+     set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix
index 33bb7b931f1e..d2365745b982 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
+, fetchpatch
 , cmake
 , python3
 , libffi
@@ -10,10 +12,10 @@
 , version
 , release_version
 , zlib
-, buildPackages
+, buildLlvmTools
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
 , enablePFM ? !(stdenv.isDarwin
   || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
   || stdenv.isAarch32 # broken for the armv7l builder
@@ -44,8 +46,7 @@ in stdenv.mkDerivation (rec {
     mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
@@ -56,20 +57,25 @@ in stdenv.mkDerivation (rec {
   propagatedBuildInputs = [ ncurses zlib ];
 
   patches = [
-    # Force a test to evaluate the saved benchmark for a CPU for which LLVM has
-    # an execution model. See NixOS/nixpkgs#119673.
-    ../../exegesis-force-bdver2.patch
-  ];
+    ./gnu-install-dirs.patch
+    # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
+    (fetchpatch {
+      name = "uops-CMOV16rm-noreg.diff";
+      url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
+      sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
+      stripLen = 1;
+    })
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
-    substitute '${./llvm-outputs.patch}' ./llvm-outputs.patch --subst-var lib
-    patch -p1 < ./llvm-outputs.patch
+    substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
+    patch -p1 < ./outputs.patch
   '' + ''
     # FileSystem permissions tests fail with various special bits
     substituteInPlace unittests/Support/CMakeLists.txt \
@@ -108,6 +114,7 @@ in stdenv.mkDerivation (rec {
   LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -131,11 +138,24 @@ in stdenv.mkDerivation (rec {
     "-DCAN_TARGET_i386=false"
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildPackages.llvm_12}/bin/llvm-tblgen"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
-    rm -R $out
+    rm -fR $out
   '';
 
   preCheck = ''
@@ -145,20 +165,19 @@ in stdenv.mkDerivation (rec {
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-  ''
-  + optionalString (enableSharedLibraries && (!stdenv.isDarwin)) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
   doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
@@ -191,6 +210,8 @@ in stdenv.mkDerivation (rec {
     make docs-llvm-man
   '';
 
+  propagatedBuildInputs = [];
+
   installPhase = ''
     make -C docs install
   '';
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..68f3c45396f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,105 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index ca7c04c565bb..6ed5db5dd4f8 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.13.4)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -122,13 +126,13 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 7cc129ba2e90..137be25e4b80 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index 518a09b45a42..bd9d6f5542ad 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 8991094d92c7..178d8ad606bb 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -275,7 +275,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..da8dc1445171
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs.patch
@@ -0,0 +1,417 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 277d0fe54d7b..af69c8be8745 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -256,15 +256,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -567,9 +573,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -1027,7 +1033,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1038,7 +1044,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1052,13 +1058,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   if (LLVM_INSTALL_MODULEMAPS)
+     install(DIRECTORY include/llvm include/llvm-c
+-            DESTINATION include
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+             COMPONENT llvm-headers
+             FILES_MATCHING
+             PATTERN "module.modulemap"
+             )
+     install(FILES include/llvm/module.install.modulemap
+-            DESTINATION include/llvm
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
+             COMPONENT llvm-headers
+             RENAME "module.extern.modulemap"
+             )
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 97c9980c7de3..409e8b615f75 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -804,9 +804,9 @@ macro(add_llvm_library name)
+ 
+       install(TARGETS ${name}
+               ${export_to_llvmexports}
+-              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              RUNTIME DESTINATION bin COMPONENT ${name})
++              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+         add_llvm_install_targets(install-${name}
+@@ -1022,7 +1022,7 @@ function(process_llvm_pass_plugins)
+           "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
+       install(FILES
+           ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
+-          DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
++          DESTINATION ${LLVM_INSTALL_CMAKE_DIR}
+           COMPONENT cmake-exports)
+ 
+       set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
+@@ -1242,7 +1242,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1854,7 +1854,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1871,7 +1871,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1894,7 +1894,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
+@@ -1977,7 +1977,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -2100,9 +2101,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 554046b20edf..4d1ad980641e 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -144,9 +144,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index e80c3b5c1cac..482f6d715ef5 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -90,7 +90,7 @@ function (add_sphinx_target builder project)
+         endif()
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index 505dc9a29d70..36e6c63af3f4 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -107,13 +107,13 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+ set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ 
+ # Generate a default location for lit
+ if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 09fed8085c23..aa79f192abf0 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message(STATUS "Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index bb821b417ad9..6a528f7c2ad3 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -550,8 +550,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -582,13 +582,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   macOS Only: If enabled CMake will generate a target named
+@@ -786,9 +806,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt
+index bb96edb4b4bf..678c22fb43c8 100644
+--- a/examples/Bye/CMakeLists.txt
++++ b/examples/Bye/CMakeLists.txt
+@@ -14,6 +14,6 @@ if (NOT WIN32)
+     BUILDTREE_ONLY
+    )
+ 
+-  install(TARGETS ${name} RUNTIME DESTINATION examples)
++  install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endif()
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index b46319f24fc8..2feabd1954e4 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -5,5 +5,5 @@ add_subdirectory(Frontend)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index ebe5b73a5c65..70c497be12f5 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -23,6 +23,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 1a2f04552d13..44fa7d3eec6b 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -357,12 +357,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = std::string(path.str());
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index 2963f97cad88..69d66c9c9ca1 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -25,7 +25,7 @@ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS
+     intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index ead73ec13a8f..250362021f17 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,7 +8,7 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
+ 
+diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
+index 865436247270..ce1daa62f6ab 100644
+--- a/tools/remarks-shlib/CMakeLists.txt
++++ b/tools/remarks-shlib/CMakeLists.txt
+@@ -19,7 +19,7 @@ if(LLVM_ENABLE_PIC)
+   endif()
+   
+   install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
+-    DESTINATION include/llvm-c
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+     COMPONENT Remarks)
+ 
+   if (APPLE)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/llvm-outputs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/outputs.patch
index 40096fa3497f..40096fa3497f 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/llvm-outputs.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/outputs.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/clang/default.nix
index 21961f4f0413..b5887a23c65e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/clang/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
 }:
@@ -22,20 +23,27 @@ let
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
       "-DLLVM_ENABLE_RTTI=ON"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
     ];
 
-    patches = [ ./purity.patch ];
+    patches = [
+      ./purity.patch
+      ./gnu-install-dirs.patch
+    ];
 
     postPatch = ''
       sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
@@ -48,12 +56,12 @@ let
       sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -70,18 +78,30 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -100,6 +120,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/5/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..7e6903222f45
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/clang/gnu-install-dirs.patch
@@ -0,0 +1,242 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2667b1d6892e..87c5ad58738f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.4.3)
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   find_program(LLVM_CONFIG "llvm-config")
+@@ -344,7 +346,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.def"
+     PATTERN "*.h"
+@@ -353,7 +355,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+     PATTERN "*.inc"
+@@ -361,7 +363,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(PROGRAMS utils/bash-autocomplete.sh
+-    DESTINATION share/clang
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+     )
+ endif()
+ 
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index e657059744a4..19da44638fe6 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -99,9 +99,9 @@ macro(add_clang_library name)
+       install(TARGETS ${name}
+         COMPONENT ${name}
+         ${export_to_clangtargets}
+-        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        RUNTIME DESTINATION bin)
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+       if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+         add_custom_target(install-${name}
+@@ -143,7 +143,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -160,5 +160,5 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index a621c02644e3..e140efc9c83c 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -129,13 +129,13 @@ install(
+   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${cuda_wrapper_files}
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's.
+   add_custom_target(install-clang-headers
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index ad990e010eef..92e52d05afb9 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -48,7 +48,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
+index 04151a8e0331..13918d91c4ba 100644
+--- a/tools/clang-check/CMakeLists.txt
++++ b/tools/clang-check/CMakeLists.txt
+@@ -19,4 +19,4 @@ target_link_libraries(clang-check
+   )
+ 
+ install(TARGETS clang-check
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index a13633eaefc4..9b0094783690 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -20,20 +20,20 @@ if( LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-offload-bundler/CMakeLists.txt b/tools/clang-offload-bundler/CMakeLists.txt
+index 6161d08ae587..a003292d1676 100644
+--- a/tools/clang-offload-bundler/CMakeLists.txt
++++ b/tools/clang-offload-bundler/CMakeLists.txt
+@@ -21,4 +21,4 @@ target_link_libraries(clang-offload-bundler
+   ${CLANG_OFFLOAD_BUNDLER_LIB_DEPS}
+   )
+ 
+-install(TARGETS clang-offload-bundler RUNTIME DESTINATION bin)
++install(TARGETS clang-offload-bundler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index 771e3bdea6f0..d1396e62b28f 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -14,11 +14,11 @@ target_link_libraries(clang-rename
+   clangToolingRefactor
+   )
+ 
+-install(TARGETS clang-rename RUNTIME DESTINATION bin)
++install(TARGETS clang-rename RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 2dd670307636..1fe576f77ddb 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -121,7 +121,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index 380379300b09..adfd58ed5f7d 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -41,7 +41,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(LibexecFile ${LibexecFiles})
+@@ -53,7 +53,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/libexec/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+-    install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec)
++    install(PROGRAMS libexec/${LibexecFile} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
+   endforeach()
+ 
+   foreach(ManPage ${ManPages})
+@@ -77,7 +77,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/share/scan-build/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+-    install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build)
++    install(FILES share/scan-build/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build)
+   endforeach()
+ 
+   add_custom_target(scan-build ALL DEPENDS ${Depends})
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index b305ca562a72..554bcb379061 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -21,7 +21,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(ShareFile ${ShareFiles})
+@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/share/scan-view/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+-    install(FILES share/${ShareFile} DESTINATION share/scan-view)
++    install(FILES share/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view)
+   endforeach()
+ 
+   add_custom_target(scan-view ALL DEPENDS ${Depends})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/default.nix
index 705c5994bd14..a14823571e17 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetch "compiler-rt" "0ipd4jdxpczgr2w6lzrabymz6dhzj69ywmyybjjc1q397zgrvziy";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
 
   NIX_CFLAGS_COMPILE = [
@@ -54,6 +54,7 @@ stdenv.mkDerivation {
     ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
     # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
     ../../common/compiler-rt/glibc.patch
+    ./gnu-install-dirs.patch
   ] ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ lib.optional (stdenv.hostPlatform.libc == "glibc") ./sys-ustat.patch
     ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
@@ -85,4 +86,19 @@ stdenv.mkDerivation {
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o
   '';
 
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..618e597e96d4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,103 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f997c53410c1..ac079d89b57b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,6 +12,7 @@ cmake_minimum_required(VERSION 3.4.3)
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+ endif()
+ 
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index bc5fb9ff722b..91fb79d1980c 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -344,7 +344,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_PREFIX}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -361,7 +361,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index f646975475bb..75885bf305b8 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -391,7 +391,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index b38c6ca96fac..a4580414cbc8 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -43,11 +43,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -67,9 +67,9 @@ if(NOT DEFINED COMPILER_RT_OS_DIR)
+   string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR)
+ endif()
+ set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+-  ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
++  ${COMPILER_RT_OUTPUT_DIR}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-  ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++  ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ 
+ if(APPLE)
+   # On Darwin if /usr/include doesn't exist, the user probably has Xcode but not
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index ec3bf40b95e6..af119f10ee2b 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -44,8 +44,8 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ # Install sanitizer headers.
+ install(FILES ${SANITIZER_HEADERS}
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index 2c486bff821b..0ee715da95f8 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -44,4 +44,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH})
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_PREFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/default.nix
index 86bba415c015..d11c08329d54 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/default.nix
@@ -1,6 +1,5 @@
 { lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 }:
@@ -17,35 +16,55 @@ let
 
   clang-tools-extra_src = fetch "clang-tools-extra" "018b3fiwah8f8br5i26qmzh6sjvzchpn358sn8v079m49f2jldm3";
 
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
     mkExtraBuildCommands = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
     '';
+
   in {
 
-    llvm = callPackage ./llvm { };
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
+
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
+
+    libllvm-polly = callPackage ./llvm {
+      inherit llvm_meta;
+      enablePolly = true;
+    };
+
+    llvm-polly = tools.libllvm-polly.lib // { outputUnspecified = true; };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit clang-tools-extra_src;
+    libclang = callPackage ./clang {
+      inherit clang-tools-extra_src llvm_meta;
     };
 
-    llvm-manpages = lowPrio (tools.llvm.override {
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
+    llvm-manpages = lowPrio (tools.libllvm.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -68,26 +87,38 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld {};
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
 
-    lldb = callPackage ./lldb {};
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+    };
   });
 
   libraries = lib.makeExtensible (libraries: let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt {};
+    compiler-rt = callPackage ./compiler-rt {
+      inherit llvm_meta;
+    };
 
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ {};
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+    };
 
-    libcxxabi = callPackage ./libc++abi {};
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+    };
 
-    openmp = callPackage ./openmp.nix {};
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/libcxx/default.nix
index 164836e1a4ce..44026fba187b 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/libcxx/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version }:
+{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
   src = fetch "libcxx" "1672aaf95fgy4xsfra8pw24f6r93zwzpan1033hkcm8p2glqipvf";
@@ -11,7 +11,11 @@ stdenv.mkDerivation {
     export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
   '';
 
-  patches = lib.optionals stdenv.hostPlatform.isMusl [
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
     ../../libcxx-0001-musl-hacks.patch
   ];
 
@@ -41,10 +45,15 @@ stdenv.mkDerivation {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.unix;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/5/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..d9ea0dc7dfd0
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,72 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ca5afba86d19..ed69e4043c3d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,6 +22,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 5.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index b1f6bee8f945..1b455fceed7f 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -55,7 +55,7 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
+           )
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT libcxx
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 5a1b2ccdc426..106d3d6c1d3c 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -20,7 +20,7 @@ endif()
+ 
+ if (LIBCXX_INSTALL_HEADERS)
+   install(DIRECTORY .
+-    DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1
++    DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+     COMPONENT cxx-headers
+     FILES_MATCHING
+     ${LIBCXX_HEADER_PATTERN}
+@@ -44,7 +44,7 @@ if (LIBCXX_INSTALL_HEADERS)
+     set(generated_config_deps generate_config_header)
+     # Install the generated header as __config.
+     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-      DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1
++      DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+       RENAME __config
+       COMPONENT cxx-headers)
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index 578651423f3b..277befd631ac 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -355,8 +355,8 @@ if (LIBCXX_INSTALL_LIBRARY)
+     set(experimental_lib cxx_experimental)
+   endif()
+   install(TARGETS ${LIBCXX_TARGETS} ${experimental_lib}
+-    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+-    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+     )
+   # NOTE: This install command must go after the cxx install command otherwise
+   # it will not be executed after the library symlinks are installed.
+@@ -364,7 +364,7 @@ if (LIBCXX_INSTALL_LIBRARY)
+     # Replace the libc++ filename with $<TARGET_LINKER_FILE:cxx>
+     # after we required CMake 3.0.
+     install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}"
+-      DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX}
++      DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX}
+       COMPONENT libcxx)
+   endif()
+ endif()
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/libc++abi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/libcxxabi/default.nix
index dd148a8917f9..5146e20089b7 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/libc++abi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/libcxxabi/default.nix
@@ -1,13 +1,12 @@
-{ lib, stdenv, cmake, fetch, libcxx, libunwind, llvm, version }:
+{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
   src = fetch "libcxxabi" "12lp799rskr4fc2xr64qn4jfkjnfd8b1aymvsxyn4k9ar7r9pgqv";
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -19,6 +18,13 @@ stdenv.mkDerivation {
     patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '';
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
@@ -41,11 +47,15 @@ stdenv.mkDerivation {
       ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.unix;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/5/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..760d7194f7b9
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4db3328deb9c..74b39acfe588 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 5.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index adcc412880c9..71758665af05 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -174,8 +174,8 @@ endif()
+ add_custom_target(cxxabi DEPENDS ${LIBCXXABI_TARGETS})
+ 
+ install(TARGETS ${LIBCXXABI_TARGETS}
+-  LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+-  ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++  LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++  ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+   )
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/lld/default.nix
index 244960cf41ba..7e74e79a15c7 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/lld/default.nix
@@ -1,31 +1,42 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , cmake
-, llvm
+, libllvm
 , version
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lld";
   inherit version;
 
   src = fetch "lld" "1ah75rjly6747jk1zbwca3z0svr9b09ylgxd4x9ns721xir6sia6";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm ];
+  buildInputs = [ libllvm ];
 
-  outputs = [ "out" "dev" ];
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
-    badPlatforms = [ "x86_64-darwin" ];
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), and Mach-O (macOS)
+      in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/5/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..ed673870dec5
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e2ab0e35f1ab..f68e23d2a70d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -203,7 +205,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index fd1d44199ca6..2ec1831ed8f6 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_custom_target(install-${name}
+@@ -56,7 +56,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -73,5 +73,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index 2df10697ff66..94aa8d092220 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -13,7 +13,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/lldb/default.nix
index 61a9e60391c8..951e9c8e1ac6 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , fetchpatch
 , cmake
@@ -8,14 +8,14 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , python3
 , version
 , darwin
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lldb";
   inherit version;
 
@@ -28,38 +28,59 @@ stdenv.mkDerivation {
       sha256 = "1zbx4m0m8kbg0wq6740jcw151vb2pb1p25p401wiq8diqqagkjps";
       stripLen = 1;
     })
+    ./gnu-install-dirs.patch
   ];
 
   postPatch = ''
     # Fix up various paths that assume llvm and clang are installed in the same place
-    sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \
+    sed -i 's,".*ClangConfig.cmake","${libclang.dev}/lib/cmake/clang/ClangConfig.cmake",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \
+    sed -i 's,".*tools/clang/include","${libclang.dev}/include",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \
+    sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \
       cmake/modules/LLDBStandalone.cmake
   '';
 
-  nativeBuildInputs = [ cmake python3 which swig ];
-  buildInputs = [ ncurses zlib libedit libxml2 llvm ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa ];
+  outputs = [ "out" "lib" "dev" ];
+
+  nativeBuildInputs = [
+    cmake python3 which swig
+  ];
+
+  buildInputs = [
+    ncurses zlib libedit libxml2 libllvm
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+    darwin.apple_sdk.libs.xpc
+    darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
+  ];
 
   CXXFLAGS = "-fno-rtti";
   hardeningDisable = [ "format" ];
 
   cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
     "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
   ];
 
+  doCheck = false;
+
   postInstall = ''
     mkdir -p $out/share/man/man1
     cp ../docs/lldb.1 $out/share/man/man1/
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage    = "https://llvm.org/";
-    license     = licenses.ncsa;
-    platforms   = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/5/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..5c6193b028fa
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/lldb/gnu-install-dirs.patch
@@ -0,0 +1,76 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ada293811b3e..6c2149309f65 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,8 @@ set(CMAKE_MODULE_PATH
+   "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
+   )
+ 
++include(GNUInstallDirs)
++
+ include(LLDBStandalone)
+ include(LLDBConfig)
+ include(AddLLDB)
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index 4c6f1efd673d..179a12b49cce 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -54,14 +54,14 @@ function(add_lldb_library name)
+         endif()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          RUNTIME DESTINATION bin
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+           LIBRARY DESTINATION ${out_dir}
+           ARCHIVE DESTINATION ${out_dir})
+       else()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       endif()
+       if (NOT CMAKE_CONFIGURATION_TYPES)
+         add_custom_target(install-${name}
+@@ -126,7 +126,7 @@ function(add_lldb_executable name)
+   if(ARG_GENERATE_INSTALL AND NOT (ARG_INCLUDE_IN_FRAMEWORK AND LLDB_BUILD_FRAMEWORK ))
+     install(TARGETS ${name}
+           COMPONENT ${name}
+-          RUNTIME DESTINATION bin)
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+     if (NOT CMAKE_CONFIGURATION_TYPES)
+       add_custom_target(install-${name}
+                         DEPENDS ${name}
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index 726552675f47..f1f769f34446 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -276,7 +276,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb_headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+@@ -286,7 +286,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb_headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/tools/intel-mpx/CMakeLists.txt b/tools/intel-mpx/CMakeLists.txt
+index 29ba9a1cacec..30e2f9334b95 100644
+--- a/tools/intel-mpx/CMakeLists.txt
++++ b/tools/intel-mpx/CMakeLists.txt
+@@ -12,4 +12,4 @@ target_link_libraries(lldb-intel-mpxtable
+                       PUBLIC liblldb LLVMSupport)
+ 
+ install(TARGETS lldb-intel-mpxtable
+-  LIBRARY DESTINATION bin)
++  LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix
index 94d2a1e58638..54fd783a7c2d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/llvm/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
 , fetchpatch
 , cmake
@@ -10,9 +11,11 @@
 , version
 , release_version
 , zlib
+, buildLlvmTools
 , debugVersion ? false
 , enableManpages ? false
 , enableSharedLibraries ? !enableManpages
+, enablePolly ? false
 }:
 
 let
@@ -29,15 +32,18 @@ stdenv.mkDerivation ({
   inherit version;
 
   src = fetch "llvm" "0g1bbj2n6xv4p1n6hh17vj3vpvg56wacipc81dgwga9mg2lys8nm";
+  polly_src = fetch "polly" "1f4i1qsw7ywx25v262p8syz339zcbvfkx295xz26hmqrn944xa6x";
 
   unpackPhase = ''
     unpackFile $src
     mv llvm-${version}* llvm
     sourceRoot=$PWD/llvm
+  '' + optionalString enablePolly ''
+    unpackFile $polly_src
+    mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optional enableManpages python3.pkgs.sphinx;
@@ -59,11 +65,13 @@ stdenv.mkDerivation ({
     #  sha256 = "0injj1hqgrbcbihhwp2nbal88jfykad30r54f2cdcx7gws2fcy8i";
     #  stripLen = 1;
     #})
-  ];
+    ./gnu-install-dirs.patch
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
@@ -90,6 +98,7 @@ stdenv.mkDerivation ({
   '';
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -100,20 +109,36 @@ stdenv.mkDerivation ({
     "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
     "-DTARGET_TRIPLE=${stdenv.hostPlatform.config}"
   ]
-  ++ optional enableSharedLibraries
+  ++ lib.optional enableSharedLibraries
     "-DLLVM_LINK_LLVM_DYLIB=ON"
-  ++ optionals enableManpages [
+  ++ lib.optionals enableManpages [
     "-DLLVM_BUILD_DOCS=ON"
     "-DLLVM_ENABLE_SPHINX=ON"
     "-DSPHINX_OUTPUT_MAN=ON"
     "-DSPHINX_OUTPUT_HTML=OFF"
     "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
   ]
-  ++ optional (!isDarwin)
+  ++ lib.optional (!isDarwin)
     "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
-  ++ optionals (isDarwin) [
+  ++ lib.optionals (isDarwin) [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DCAN_TARGET_i386=false"
+  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DCMAKE_CROSSCOMPILING=True"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
@@ -127,21 +152,20 @@ stdenv.mkDerivation ({
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-    moveToOutput "lib/libLTO${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLTO.dylib" "$lib/lib/libLTO.dylib"
     ${lib.concatMapStringsSep "\n" (v: ''
       ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
     '') versionSuffixes}
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
   doCheck = stdenv.isLinux && (!stdenv.isi686);
@@ -149,12 +173,23 @@ stdenv.mkDerivation ({
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -173,5 +208,7 @@ stdenv.mkDerivation ({
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..40f6fa06036c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,106 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index 9ddc0f7ff81d..7ca45f286d47 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.4.3)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -157,14 +161,14 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 969292cd6b00..d7aea77bdd20 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index 32bed50bb060..cca5bfff4970 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 286c04fba287..07905e68f595 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -268,7 +268,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..3f6d6acb83f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/llvm/gnu-install-dirs.patch
@@ -0,0 +1,386 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c1e03aed4809..8b8bbb8c403e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -279,15 +279,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "bin" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -512,9 +518,9 @@ option (LLVM_ENABLE_DOXYGEN "Use doxygen to generate llvm API documentation." OF
+ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -945,7 +951,7 @@ add_subdirectory(cmake/modules)
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -957,7 +963,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 1c922651b133..d555fd627a4f 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -589,11 +589,11 @@ macro(add_llvm_library name)
+   else()
+     if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO" OR
+         (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM"))
+-      set(install_dir lib${LLVM_LIBDIR_SUFFIX})
++      set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       if(ARG_SHARED OR BUILD_SHARED_LIBS)
+         if(WIN32 OR CYGWIN OR MINGW)
+           set(install_type RUNTIME)
+-          set(install_dir bin)
++          set(install_dir ${CMAKE_INSTALL_BINDIR})
+         else()
+           set(install_type LIBRARY)
+         endif()
+@@ -637,9 +637,9 @@ macro(add_llvm_loadable_module name)
+       if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+         if(WIN32 OR CYGWIN)
+           # DLL platform
+-          set(dlldir "bin")
++          set(dlldir "${CMAKE_INSTALL_BINDIR}")
+         else()
+-          set(dlldir "lib${LLVM_LIBDIR_SUFFIX}")
++          set(dlldir "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+         endif()
+ 
+         if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+@@ -651,7 +651,7 @@ macro(add_llvm_loadable_module name)
+         install(TARGETS ${name}
+                 ${export_to_llvmexports}
+                 LIBRARY DESTINATION ${dlldir}
+-                ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++                ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       endif()
+       set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+     endif()
+@@ -864,7 +864,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1275,7 +1275,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1293,7 +1293,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1316,7 +1316,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE)
+@@ -1400,7 +1400,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -1452,9 +1453,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 1d8094cc505f..afdbe6e6d19c 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -140,9 +140,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index 4540c5c36c8e..4cefb17fbd55 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -73,7 +73,7 @@ function (add_sphinx_target builder project)
+ 
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index ac4b0b7c0304..21a6a3da8667 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -84,11 +84,11 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
+ set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
+ configure_file(
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 482697b06baf..af2ac1e6c979 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message("Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index b6ebf37adc92..34c73d2869e0 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -461,8 +461,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -493,13 +493,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   OS X Only: If enabled CMake will generate a target named
+@@ -651,9 +671,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index 1d5ca3ba92b0..026f5453c1da 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -4,5 +4,5 @@ add_subdirectory(Support)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index f201e1f7bff0..4582ed556a02 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -24,6 +24,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 08b096afb052..2deae0dcfacc 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -332,12 +332,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = path.str();
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index 6e913519a809..85641eef721f 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
+ add_llvm_library(LTO SHARED ${SOURCES} DEPENDS intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index 19b606933082..27b9f71b3d79 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,6 +8,6 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/5/openmp.nix
deleted file mode 100644
index 169c9c50324e..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/5/openmp.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch "openmp" "0p2n52676wlq6y9q99n5pivq6pvvda1p994r69fxj206ahn59jir";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/5/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/5/openmp/default.nix
new file mode 100644
index 000000000000..3a1f97919dc3
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/5/openmp/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch "openmp" "0p2n52676wlq6y9q99n5pivq6pvvda1p994r69fxj206ahn59jir";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/clang/default.nix
index 41202dd3f5dc..eba9111d9d32 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/clang/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
 }:
@@ -22,20 +23,27 @@ let
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
       "-DLLVM_ENABLE_RTTI=ON"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
     ];
 
-    patches = [ ./purity.patch ];
+    patches = [
+      ./purity.patch
+      ./gnu-install-dirs.patch
+    ];
 
     postPatch = ''
       sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
@@ -48,12 +56,12 @@ let
       sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -70,18 +78,30 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -100,6 +120,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/6/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..bdbbae955169
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/clang/gnu-install-dirs.patch
@@ -0,0 +1,258 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2eee8e6148f7..63efc7d2fdd0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.4.3)
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   find_program(LLVM_CONFIG "llvm-config")
+@@ -365,7 +367,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.def"
+     PATTERN "*.h"
+@@ -374,7 +376,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+     PATTERN "*.inc"
+@@ -382,7 +384,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(PROGRAMS utils/bash-autocomplete.sh
+-    DESTINATION share/clang
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+     )
+ endif()
+ 
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index c09a8423f9f6..39f37e0097eb 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -99,9 +99,9 @@ macro(add_clang_library name)
+       install(TARGETS ${name}
+         COMPONENT ${name}
+         ${export_to_clangtargets}
+-        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        RUNTIME DESTINATION bin)
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+       if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+         add_llvm_install_targets(install-${name}
+@@ -141,7 +141,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -156,5 +156,5 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index 97ba3edea1c5..9d2bc5714af5 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -142,13 +142,13 @@ install(
+   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${cuda_wrapper_files}
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's.
+   add_llvm_install_targets(install-clang-headers
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index d38c7bb28709..c9b5499cb756 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -50,7 +50,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
+index c5ace26c2914..97bdfca7d896 100644
+--- a/tools/clang-check/CMakeLists.txt
++++ b/tools/clang-check/CMakeLists.txt
+@@ -20,4 +20,4 @@ target_link_libraries(clang-check
+   )
+ 
+ install(TARGETS clang-check
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index a295e8cd0b2a..1973ff82c7f6 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-func-mapping/CMakeLists.txt b/tools/clang-func-mapping/CMakeLists.txt
+index ae28e28d532d..8ecb2e37a8f7 100644
+--- a/tools/clang-func-mapping/CMakeLists.txt
++++ b/tools/clang-func-mapping/CMakeLists.txt
+@@ -20,4 +20,4 @@ target_link_libraries(clang-func-mapping
+   )
+ 
+ install(TARGETS clang-func-mapping
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-offload-bundler/CMakeLists.txt b/tools/clang-offload-bundler/CMakeLists.txt
+index 8718015be76a..7a038f39622e 100644
+--- a/tools/clang-offload-bundler/CMakeLists.txt
++++ b/tools/clang-offload-bundler/CMakeLists.txt
+@@ -22,4 +22,4 @@ target_link_libraries(clang-offload-bundler
+   ${CLANG_OFFLOAD_BUNDLER_LIB_DEPS}
+   )
+ 
+-install(TARGETS clang-offload-bundler RUNTIME DESTINATION bin)
++install(TARGETS clang-offload-bundler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-refactor/CMakeLists.txt b/tools/clang-refactor/CMakeLists.txt
+index d2029066b9b7..9bc152a675af 100644
+--- a/tools/clang-refactor/CMakeLists.txt
++++ b/tools/clang-refactor/CMakeLists.txt
+@@ -21,4 +21,4 @@ target_link_libraries(clang-refactor
+   clangToolingRefactor
+   )
+ 
+-install(TARGETS clang-refactor RUNTIME DESTINATION bin)
++install(TARGETS clang-refactor RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index 9689e1c6804d..6087716510a9 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -16,8 +16,8 @@ target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 44406378207b..3b64b18ad4a5 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -130,7 +130,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index 380379300b09..adfd58ed5f7d 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -41,7 +41,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(LibexecFile ${LibexecFiles})
+@@ -53,7 +53,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/libexec/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+-    install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec)
++    install(PROGRAMS libexec/${LibexecFile} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
+   endforeach()
+ 
+   foreach(ManPage ${ManPages})
+@@ -77,7 +77,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/share/scan-build/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+-    install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build)
++    install(FILES share/scan-build/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build)
+   endforeach()
+ 
+   add_custom_target(scan-build ALL DEPENDS ${Depends})
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index b305ca562a72..554bcb379061 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -21,7 +21,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(ShareFile ${ShareFiles})
+@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/share/scan-view/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+-    install(FILES share/${ShareFile} DESTINATION share/scan-view)
++    install(FILES share/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view)
+   endforeach()
+ 
+   add_custom_target(scan-view ALL DEPENDS ${Depends})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/default.nix
index f0a1c7ecc34f..0ba96e5375b7 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetch "compiler-rt" "1fcr3jn24yr8lh36nc0c4ikli4744i2q9m1ik67p1jymwwaixkgl";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
 
   NIX_CFLAGS_COMPILE = [
@@ -54,6 +54,7 @@ stdenv.mkDerivation {
     ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
     # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
     ../../common/compiler-rt/glibc.patch
+    ./gnu-install-dirs.patch
   ] ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
 
@@ -87,4 +88,19 @@ stdenv.mkDerivation {
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o
   '';
 
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..8daf03994b57
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,107 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4b953b212829..a10b69aa67dc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.4.3)
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+ endif()
+ 
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index 139b6140011c..502354a37d67 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -439,7 +439,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_PREFIX}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -456,7 +456,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index a25540bf46d1..77ea739fea74 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -375,7 +375,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index b208f0852408..cacf4e8fb69d 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -46,11 +46,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -70,9 +70,9 @@ if(NOT DEFINED COMPILER_RT_OS_DIR)
+   string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR)
+ endif()
+ set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+-  ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
++  ${COMPILER_RT_OUTPUT_DIR}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-  ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++  ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ 
+ if(APPLE)
+   # On Darwin if /usr/include doesn't exist, the user probably has Xcode but not
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index f7efb102ab63..ab8a94d9ff40 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -47,12 +47,12 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index 2c486bff821b..0ee715da95f8 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -44,4 +44,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH})
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_PREFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/default.nix
index 2c4c11c89bd2..a0cc84d8d733 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/default.nix
@@ -1,6 +1,5 @@
 { lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 }:
@@ -17,36 +16,56 @@ let
 
   clang-tools-extra_src = fetch "clang-tools-extra" "1w8ml7fyn4vyxmy59n2qm4r1k1kgwgwkaldp6m45fdv4g0kkfbhd";
 
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
     mkExtraBuildCommands = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
     '';
+
   in {
 
-    llvm = callPackage ./llvm { };
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
+
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
+
+    libllvm-polly = callPackage ./llvm {
+      inherit llvm_meta;
+      enablePolly = true;
+    };
+
+    llvm-polly = tools.libllvm-polly.lib // { outputUnspecified = true; };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit clang-tools-extra_src;
+    libclang = callPackage ./clang {
+      inherit clang-tools-extra_src llvm_meta;
     };
 
-    llvm-manpages = lowPrio (tools.llvm.override {
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
+    llvm-manpages = lowPrio (tools.libllvm.override {
       enableManpages = true;
       enableSharedLibraries = false;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -69,26 +88,38 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld {};
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
 
-    lldb = callPackage ./lldb {};
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+    };
   });
 
   libraries = lib.makeExtensible (libraries: let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt {};
+    compiler-rt = callPackage ./compiler-rt {
+      inherit llvm_meta;
+    };
 
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ {};
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+    };
 
-    libcxxabi = callPackage ./libc++abi {};
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+    };
 
-    openmp = callPackage ./openmp.nix {};
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/libcxx/default.nix
index ac489db54fcf..3e39dd840424 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/libcxx/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version }:
+{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
   src = fetch "libcxx" "0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n";
@@ -11,7 +11,11 @@ stdenv.mkDerivation {
     export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
   '';
 
-  patches = lib.optionals stdenv.hostPlatform.isMusl [
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
     ../../libcxx-0001-musl-hacks.patch
   ];
 
@@ -41,10 +45,15 @@ stdenv.mkDerivation {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.unix;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/6/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..33ff9ef123a4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,72 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9e8e9d5e3d9b..e1d6d2392b92 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,6 +22,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 6.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index 558e11ba2cc1..c6a99cec0191 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -55,7 +55,7 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
+           )
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index b98e09260ca1..c920f48697bc 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -20,7 +20,7 @@ endif()
+ 
+ if (LIBCXX_INSTALL_HEADERS)
+   install(DIRECTORY .
+-    DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1
++    DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+     COMPONENT cxx-headers
+     FILES_MATCHING
+     ${LIBCXX_HEADER_PATTERN}
+@@ -44,7 +44,7 @@ if (LIBCXX_INSTALL_HEADERS)
+     set(generated_config_deps generate_config_header)
+     # Install the generated header as __config.
+     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-      DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1
++      DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+       RENAME __config
+       COMPONENT cxx-headers)
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index aa5ebf1568ec..36d85b94c3ba 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -357,8 +357,8 @@ if (LIBCXX_INSTALL_LIBRARY)
+     set(experimental_lib cxx_experimental)
+   endif()
+   install(TARGETS ${LIBCXX_TARGETS} ${experimental_lib}
+-    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+-    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+     )
+   # NOTE: This install command must go after the cxx install command otherwise
+   # it will not be executed after the library symlinks are installed.
+@@ -366,7 +366,7 @@ if (LIBCXX_INSTALL_LIBRARY)
+     # Replace the libc++ filename with $<TARGET_LINKER_FILE:cxx>
+     # after we required CMake 3.0.
+     install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}"
+-      DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX}
++      DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX}
+       COMPONENT libcxx)
+   endif()
+ endif()
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/libc++abi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/libcxxabi/default.nix
index c0d90f6c8e48..6a03d8a1835e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/libc++abi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/libcxxabi/default.nix
@@ -1,13 +1,12 @@
-{ lib, stdenv, cmake, fetch, libcxx, libunwind, llvm, version }:
+{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
   src = fetch "libcxxabi" "0prqvdj317qrc8nddaq1hh2ag9algkd9wbkj3y4mr5588k12x7r0";
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -19,6 +18,13 @@ stdenv.mkDerivation {
     patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '';
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
@@ -41,11 +47,15 @@ stdenv.mkDerivation {
       ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.unix;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/6/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..649d28d6c459
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1adbdb338322..2978631e1c58 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 6.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 240f6d0d103b..7ad5c31ec7b4 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -181,8 +181,8 @@ add_custom_target(cxxabi DEPENDS ${LIBCXXABI_TARGETS})
+ 
+ if (LIBCXXABI_INSTALL_LIBRARY)
+   install(TARGETS ${LIBCXXABI_TARGETS}
+-    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+-    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+     )
+ endif()
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/lld/default.nix
index b80385248059..83b1991f453c 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/lld/default.nix
@@ -1,31 +1,43 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , cmake
 , libxml2
-, llvm
+, libllvm
 , version
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lld";
   inherit version;
 
-  src = fetch "lld" "04afcfq2h7ysyqxxhyhb7ig4p0vdw7mi63kh8mffl74j0rc781p7";
+  src = fetch pname "04afcfq2h7ysyqxxhyhb7ig4p0vdw7mi63kh8mffl74j0rc781p7";
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
+  buildInputs = [ libllvm libxml2 ];
 
-  outputs = [ "out" "dev" ];
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), and Mach-O (macOS)
+      in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/6/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..8c6886c68907
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e2fbdbfbbb47..d601b231ebb8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -203,7 +205,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index 0d951799cdfe..7d8546ba87f8 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index d8829493fc22..df748a0e749b 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -16,7 +16,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix
index 7c6f8b1bd979..da3c4a73a590 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , fetchpatch
 , cmake
@@ -8,14 +8,14 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , python3
 , version
 , darwin
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lldb";
   inherit version;
 
@@ -28,38 +28,59 @@ stdenv.mkDerivation {
       sha256 = "1zbx4m0m8kbg0wq6740jcw151vb2pb1p25p401wiq8diqqagkjps";
       stripLen = 1;
     })
+    ./gnu-install-dirs.patch
   ];
 
   postPatch = ''
     # Fix up various paths that assume llvm and clang are installed in the same place
-    sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \
+    sed -i 's,".*ClangConfig.cmake","${libclang.dev}/lib/cmake/clang/ClangConfig.cmake",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \
+    sed -i 's,".*tools/clang/include","${libclang.dev}/include",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \
+    sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \
       cmake/modules/LLDBStandalone.cmake
   '';
 
-  nativeBuildInputs = [ cmake python3 which swig ];
-  buildInputs = [ ncurses zlib libedit libxml2 llvm ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa ];
+  outputs = [ "out" "lib" "dev" ];
+
+  nativeBuildInputs = [
+    cmake python3 which swig
+  ];
+
+  buildInputs = [
+    ncurses zlib libedit libxml2 libllvm
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+    darwin.apple_sdk.libs.xpc
+    darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
+  ];
 
   CXXFLAGS = "-fno-rtti";
   hardeningDisable = [ "format" ];
 
   cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
     "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
   ];
 
+  doCheck = false;
+
   postInstall = ''
     mkdir -p $out/share/man/man1
     cp ../docs/lldb.1 $out/share/man/man1/
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage    = "https://llvm.org/";
-    license     = licenses.ncsa;
-    platforms   = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/6/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..a240ecaab17d
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/lldb/gnu-install-dirs.patch
@@ -0,0 +1,76 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c6b082e104e5..568a99837e1f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,8 @@ set(CMAKE_MODULE_PATH
+   "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
+   )
+ 
++include(GNUInstallDirs)
++
+ include(LLDBStandalone)
+ include(LLDBConfig)
+ include(AddLLDB)
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index 2fd8b384d9e3..4db5e786c493 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -56,14 +56,14 @@ function(add_lldb_library name)
+         endif()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          RUNTIME DESTINATION bin
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+           LIBRARY DESTINATION ${out_dir}
+           ARCHIVE DESTINATION ${out_dir})
+       else()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       endif()
+       if (NOT CMAKE_CONFIGURATION_TYPES)
+         add_llvm_install_targets(install-${name}
+@@ -132,7 +132,7 @@ function(add_lldb_executable name)
+   if(ARG_GENERATE_INSTALL AND NOT (ARG_INCLUDE_IN_FRAMEWORK AND LLDB_BUILD_FRAMEWORK ))
+     install(TARGETS ${name}
+           COMPONENT ${name}
+-          RUNTIME DESTINATION bin)
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+     if (NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+                                DEPENDS ${name}
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index 24878b5913f3..b9d27788bb87 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -278,7 +278,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+@@ -288,7 +288,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index b5316540fdf3..3c3c882d503f 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -64,4 +64,4 @@ if (NOT LLDB_DISABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix
index de99691094b7..0907c8956171 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/llvm/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
 , cmake
 , python3
@@ -9,11 +10,12 @@
 , version
 , release_version
 , zlib
-, buildPackages
+, buildLlvmTools
 , fetchpatch
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
+, enablePolly ? false
 }:
 
 let
@@ -30,15 +32,18 @@ stdenv.mkDerivation ({
   inherit version;
 
   src = fetch "llvm" "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn";
+  polly_src = fetch "polly" "1k2frwg5mkqh0raia8xf69h3jhdw7a5nxd6vjscjn44cdkgmyxp7";
 
   unpackPhase = ''
     unpackFile $src
     mv llvm-${version}* llvm
     sourceRoot=$PWD/llvm
+  '' + optionalString enablePolly ''
+    unpackFile $polly_src
+    mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optional enableManpages python3.pkgs.sphinx;
@@ -58,12 +63,13 @@ stdenv.mkDerivation ({
       includes = [ "test/tools/gold/X86/common.ll" ];
       sha256 = "0fxgrxmfnjx17w3lcq19rk68b2xksh1bynz3ina784kma7hp4wdb";
     })
-  ];
+    ./gnu-install-dirs.patch
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
@@ -88,6 +94,7 @@ stdenv.mkDerivation ({
   '';
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -112,7 +119,20 @@ stdenv.mkDerivation ({
     "-DCAN_TARGET_i386=false"
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildPackages.llvm_6}/bin/llvm-tblgen"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
@@ -126,19 +146,20 @@ stdenv.mkDerivation ({
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
     ${lib.concatMapStringsSep "\n" (v: ''
       ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
     '') versionSuffixes}
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
   doCheck = stdenv.isLinux && (!stdenv.isi686);
@@ -146,12 +167,23 @@ stdenv.mkDerivation ({
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -170,5 +202,7 @@ stdenv.mkDerivation ({
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..b4fda24a55f3
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,106 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index 9ddc0f7ff81d..7ca45f286d47 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.4.3)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -157,14 +161,14 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 969292cd6b00..d7aea77bdd20 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index 32bed50bb060..cca5bfff4970 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index b3c6e73a7a00..c67acf8576c7 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -268,7 +268,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..987f97210fb8
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/llvm/gnu-install-dirs.patch
@@ -0,0 +1,386 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f8da6cf92119..881e4cda4971 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -271,15 +271,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "bin" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -510,9 +516,9 @@ option (LLVM_ENABLE_DOXYGEN "Use doxygen to generate llvm API documentation." OF
+ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -944,7 +950,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -956,7 +962,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index fd5627eecbb2..29e09c6f3f8a 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -621,11 +621,11 @@ macro(add_llvm_library name)
+   else()
+     if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO" OR
+         (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM"))
+-      set(install_dir lib${LLVM_LIBDIR_SUFFIX})
++      set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       if(ARG_SHARED OR BUILD_SHARED_LIBS)
+         if(WIN32 OR CYGWIN OR MINGW)
+           set(install_type RUNTIME)
+-          set(install_dir bin)
++          set(install_dir ${CMAKE_INSTALL_BINDIR})
+         else()
+           set(install_type LIBRARY)
+         endif()
+@@ -667,9 +667,9 @@ macro(add_llvm_loadable_module name)
+       if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+         if(WIN32 OR CYGWIN)
+           # DLL platform
+-          set(dlldir "bin")
++          set(dlldir "${CMAKE_INSTALL_BINDIR}")
+         else()
+-          set(dlldir "lib${LLVM_LIBDIR_SUFFIX}")
++          set(dlldir "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+         endif()
+ 
+         if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+@@ -681,7 +681,7 @@ macro(add_llvm_loadable_module name)
+         install(TARGETS ${name}
+                 ${export_to_llvmexports}
+                 LIBRARY DESTINATION ${dlldir}
+-                ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++                ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       endif()
+       set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+     endif()
+@@ -892,7 +892,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1410,7 +1410,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1426,7 +1426,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1449,7 +1449,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE)
+@@ -1531,7 +1531,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -1583,9 +1584,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 02bab6846376..eff26adb2efc 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -140,9 +140,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index 22e3dcb776aa..ba77b9c195e2 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -73,7 +73,7 @@ function (add_sphinx_target builder project)
+ 
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index 6074e8358594..9d0be6c2ced5 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -84,11 +84,11 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
+ set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
+ configure_file(
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 482697b06baf..af2ac1e6c979 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message("Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index 05edec64da33..6db014f04656 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -465,8 +465,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -497,13 +497,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   OS X Only: If enabled CMake will generate a target named
+@@ -660,9 +680,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index 1d5ca3ba92b0..026f5453c1da 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -4,5 +4,5 @@ add_subdirectory(Support)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index f201e1f7bff0..4582ed556a02 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -24,6 +24,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 08b096afb052..2deae0dcfacc 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -332,12 +332,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = path.str();
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index 6e913519a809..85641eef721f 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
+ add_llvm_library(LTO SHARED ${SOURCES} DEPENDS intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index 19b606933082..27b9f71b3d79 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,6 +8,6 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/6/openmp.nix
deleted file mode 100644
index 9de18065918c..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/6/openmp.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch "openmp" "0nhwfba9c351r16zgyjyfwdayr98nairky3c2f0b2lc360mwmbv6";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/6/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/6/openmp/default.nix
new file mode 100644
index 000000000000..bc21220af7c7
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/6/openmp/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch "openmp" "0nhwfba9c351r16zgyjyfwdayr98nairky3c2f0b2lc360mwmbv6";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/bintools.nix b/nixpkgs/pkgs/development/compilers/llvm/7/bintools/default.nix
index 53f7941e3369..53f7941e3369 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/bintools.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/bintools/default.nix
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/clang/default.nix
index 4ab13441e36f..e1b031ad352b 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/clang/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
 , enablePolly ? false # TODO: get this info from llvm (passthru?)
@@ -23,17 +24,21 @@ let
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm lld ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
       "-DLLVM_ENABLE_RTTI=ON"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
     ] ++ lib.optionals enablePolly [
       "-DWITH_POLLY=ON"
       "-DLINK_POLLY_INTO_TOOLS=ON"
@@ -43,6 +48,10 @@ let
       ./purity.patch
       # make clang -xhip use $PATH to find executables
       ./HIP-use-PATH-7.patch
+      # Backport for the `--unwindlib=[libgcc|compiler-rt]` flag, which is
+      # needed for our bootstrapping to not interfere with C.
+      ./unwindlib.patch
+      ./gnu-install-dirs.patch
     ];
 
     postPatch = ''
@@ -59,12 +68,12 @@ let
         --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -81,18 +90,30 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -111,6 +132,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..540c043a2db9
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/clang/gnu-install-dirs.patch
@@ -0,0 +1,281 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 52b881939499..85662a2113e7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.4.3)
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   find_program(LLVM_CONFIG "llvm-config")
+@@ -374,7 +376,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.def"
+     PATTERN "*.h"
+@@ -383,7 +385,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+     PATTERN "*.inc"
+@@ -391,7 +393,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(PROGRAMS utils/bash-autocomplete.sh
+-    DESTINATION share/clang
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+     )
+ endif()
+ 
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index c09a8423f9f6..39f37e0097eb 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -99,9 +99,9 @@ macro(add_clang_library name)
+       install(TARGETS ${name}
+         COMPONENT ${name}
+         ${export_to_clangtargets}
+-        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        RUNTIME DESTINATION bin)
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+       if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+         add_llvm_install_targets(install-${name}
+@@ -141,7 +141,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -156,5 +156,5 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index 1930d8e225c7..bb9158093079 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -162,19 +162,19 @@ install(
+   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${cuda_wrapper_files}
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's.
+   add_llvm_install_targets(install-clang-headers
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index 53e3421f1b35..79ae5bb4c399 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
+index c5ace26c2914..97bdfca7d896 100644
+--- a/tools/clang-check/CMakeLists.txt
++++ b/tools/clang-check/CMakeLists.txt
+@@ -20,4 +20,4 @@ target_link_libraries(clang-check
+   )
+ 
+ install(TARGETS clang-check
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index a295e8cd0b2a..1973ff82c7f6 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-func-mapping/CMakeLists.txt b/tools/clang-func-mapping/CMakeLists.txt
+index ae28e28d532d..8ecb2e37a8f7 100644
+--- a/tools/clang-func-mapping/CMakeLists.txt
++++ b/tools/clang-func-mapping/CMakeLists.txt
+@@ -20,4 +20,4 @@ target_link_libraries(clang-func-mapping
+   )
+ 
+ install(TARGETS clang-func-mapping
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-offload-bundler/CMakeLists.txt b/tools/clang-offload-bundler/CMakeLists.txt
+index 8718015be76a..7a038f39622e 100644
+--- a/tools/clang-offload-bundler/CMakeLists.txt
++++ b/tools/clang-offload-bundler/CMakeLists.txt
+@@ -22,4 +22,4 @@ target_link_libraries(clang-offload-bundler
+   ${CLANG_OFFLOAD_BUNDLER_LIB_DEPS}
+   )
+ 
+-install(TARGETS clang-offload-bundler RUNTIME DESTINATION bin)
++install(TARGETS clang-offload-bundler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index 3b3ab1540a80..9aca9ba4a2cf 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -18,8 +18,8 @@ target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt
+index 96d1c390249c..41c762b37b76 100644
+--- a/tools/diagtool/CMakeLists.txt
++++ b/tools/diagtool/CMakeLists.txt
+@@ -21,7 +21,7 @@ target_link_libraries(diagtool
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(TARGETS diagtool
+     COMPONENT diagtool
+-    RUNTIME DESTINATION bin)
++    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+   if (NOT CMAKE_CONFIGURATION_TYPES)
+     add_llvm_install_targets(install-diagtool
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index e539c8308e75..4e1fbccea35d 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -130,7 +130,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index 380379300b09..adfd58ed5f7d 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -41,7 +41,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(LibexecFile ${LibexecFiles})
+@@ -53,7 +53,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/libexec/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+-    install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec)
++    install(PROGRAMS libexec/${LibexecFile} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
+   endforeach()
+ 
+   foreach(ManPage ${ManPages})
+@@ -77,7 +77,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/share/scan-build/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+-    install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build)
++    install(FILES share/scan-build/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build)
+   endforeach()
+ 
+   add_custom_target(scan-build ALL DEPENDS ${Depends})
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index b305ca562a72..554bcb379061 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -21,7 +21,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(ShareFile ${ShareFiles})
+@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/share/scan-view/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+-    install(FILES share/${ShareFile} DESTINATION share/scan-view)
++    install(FILES share/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view)
+   endforeach()
+ 
+   add_custom_target(scan-view ALL DEPENDS ${Depends})
+diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
+index 5573009d343a..24b3a90f233f 100644
+--- a/utils/hmaptool/CMakeLists.txt
++++ b/utils/hmaptool/CMakeLists.txt
+@@ -9,7 +9,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+                    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${CLANG_HMAPTOOL})
+ 
+ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+-install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION bin)
++install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ add_custom_target(hmaptool ALL DEPENDS ${Depends})
+ set_target_properties(hmaptool PROPERTIES FOLDER "Utils")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/clang/unwindlib.patch b/nixpkgs/pkgs/development/compilers/llvm/7/clang/unwindlib.patch
new file mode 100644
index 000000000000..59a092d7c706
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/clang/unwindlib.patch
@@ -0,0 +1,227 @@
+commit a5cacb5ba7f1f18e7bb6f6709e42683eeb7e6470
+Author: Sterling Augustine <saugustine@google.com>
+Date:   Tue Mar 19 20:01:59 2019 +0000
+
+    Add --unwindlib=[libgcc|compiler-rt] to parallel --rtlib= [take 2]
+    
+    "clang++ hello.cc --rtlib=compiler-rt"
+    
+    now can works without specifying additional unwind or exception
+    handling libraries.
+    
+    This reworked version of the feature no longer modifies today's default
+    unwind library for compiler-rt: which is nothing. Rather, a user
+    can specify -DCLANG_DEFAULT_UNWINDLIB=libunwind when configuring
+    the compiler.
+    
+    This should address the issues from the previous version.
+    
+    Update tests for new --unwindlib semantics.
+    
+    Differential Revision: https://reviews.llvm.org/D59109
+    
+    llvm-svn: 356508
+
+diff --git clang/CMakeLists.txt clang/CMakeLists.txt
+index 52b881939499..2c3fb62f6e73 100644
+--- clang/CMakeLists.txt
++++ clang/CMakeLists.txt
+@@ -244,6 +244,24 @@ if (NOT(CLANG_DEFAULT_RTLIB STREQUAL "" OR
+     "Default runtime library to use (\"libgcc\" or \"compiler-rt\", empty for platform default)" FORCE)
+ endif()
+ 
++set(CLANG_DEFAULT_UNWINDLIB "" CACHE STRING
++  "Default unwind library to use (\"none\" \"libgcc\" or \"libunwind\", empty to match runtime library.)")
++if (CLANG_DEFAULT_UNWINDLIB STREQUAL "")
++  if (CLANG_DEFAULT_RTLIB STREQUAL "libgcc")
++    set (CLANG_DEFAULT_UNWINDLIB "libgcc" CACHE STRING "" FORCE)
++  elseif (CLANG_DEFAULT_RTLIBS STREQUAL "libunwind")
++    set (CLANG_DEFAULT_UNWINDLIB "none" CACHE STRING "" FORCE)
++  endif()
++endif()
++
++if (NOT(CLANG_DEFAULT_UNWINDLIB STREQUAL "none" OR
++        CLANG_DEFAULT_UNWINDLIB STREQUAL "libgcc" OR
++        CLANG_DEFAULT_UNWINDLIB STREQUAL "libunwind"))
++  message(WARNING "Resetting default unwindlib to use platform default")
++  set(CLANG_DEFAULT_UNWINDLIB "" CACHE STRING
++    "Default unwind library to use (\"none\" \"libgcc\" or \"libunwind\", empty for none)" FORCE)
++endif()
++
+ set(CLANG_DEFAULT_OBJCOPY "objcopy" CACHE STRING
+   "Default objcopy executable to use.")
+ 
+diff --git clang/include/clang/Basic/DiagnosticDriverKinds.td clang/include/clang/Basic/DiagnosticDriverKinds.td
+index 7f75f45c6578..7e1bb33b5cef 100644
+--- clang/include/clang/Basic/DiagnosticDriverKinds.td
++++ clang/include/clang/Basic/DiagnosticDriverKinds.td
+@@ -52,6 +52,10 @@ def err_drv_invalid_rtlib_name : Error<
+   "invalid runtime library name in argument '%0'">;
+ def err_drv_unsupported_rtlib_for_platform : Error<
+   "unsupported runtime library '%0' for platform '%1'">;
++def err_drv_invalid_unwindlib_name : Error<
++  "invalid unwind library name in argument '%0'">;
++def err_drv_incompatible_unwindlib : Error<
++  "--rtlib=libgcc requires --unwindlib=libgcc">;
+ def err_drv_invalid_stdlib_name : Error<
+   "invalid library name in argument '%0'">;
+ def err_drv_invalid_output_with_multiple_archs : Error<
+diff --git clang/include/clang/Config/config.h.cmake clang/include/clang/Config/config.h.cmake
+index 1d624450b9d9..2d4cb747e87e 100644
+--- clang/include/clang/Config/config.h.cmake
++++ clang/include/clang/Config/config.h.cmake
+@@ -23,6 +23,9 @@
+ /* Default runtime library to use. */
+ #define CLANG_DEFAULT_RTLIB "${CLANG_DEFAULT_RTLIB}"
+ 
++/* Default unwind library to use. */
++#define CLANG_DEFAULT_UNWINDLIB "${CLANG_DEFAULT_UNWINDLIB}"
++
+ /* Default objcopy to use */
+ #define CLANG_DEFAULT_OBJCOPY "${CLANG_DEFAULT_OBJCOPY}"
+ 
+diff --git clang/include/clang/Driver/Options.td clang/include/clang/Driver/Options.td
+index 601aa8744967..0e74a2d36dea 100644
+--- clang/include/clang/Driver/Options.td
++++ clang/include/clang/Driver/Options.td
+@@ -2428,6 +2428,8 @@ def std_EQ : Joined<["-", "--"], "std=">, Flags<[CC1Option]>,
+   }]>;
+ def stdlib_EQ : Joined<["-", "--"], "stdlib=">, Flags<[CC1Option]>,
+   HelpText<"C++ standard library to use">, Values<"libc++,libstdc++,platform">;
++def unwindlib_EQ : Joined<["-", "--"], "unwindlib=">, Flags<[CC1Option]>,
++  HelpText<"Unwind library to use">, Values<"libgcc,unwindlib,platform">;
+ def sub__library : JoinedOrSeparate<["-"], "sub_library">;
+ def sub__umbrella : JoinedOrSeparate<["-"], "sub_umbrella">;
+ def system_header_prefix : Joined<["--"], "system-header-prefix=">,
+diff --git clang/include/clang/Driver/ToolChain.h clang/include/clang/Driver/ToolChain.h
+index 2f9c2c190e32..d5b131bcf112 100644
+--- clang/include/clang/Driver/ToolChain.h
++++ clang/include/clang/Driver/ToolChain.h
+@@ -99,6 +99,12 @@ public:
+     RLT_Libgcc
+   };
+ 
++  enum UnwindLibType {
++    UNW_None,
++    UNW_CompilerRT,
++    UNW_Libgcc
++  };
++
+   enum RTTIMode {
+     RM_Enabled,
+     RM_Disabled,
+@@ -352,6 +358,10 @@ public:
+     return ToolChain::CST_Libstdcxx;
+   }
+ 
++  virtual UnwindLibType GetDefaultUnwindLibType() const {
++    return ToolChain::UNW_None;
++  }
++
+   virtual std::string getCompilerRTPath() const;
+ 
+   virtual std::string getCompilerRT(const llvm::opt::ArgList &Args,
+@@ -484,6 +494,10 @@ public:
+   // given compilation arguments.
+   virtual CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const;
+ 
++  // GetUnwindLibType - Determine the unwind library type to use with the
++  // given compilation arguments.
++  virtual UnwindLibType GetUnwindLibType(const llvm::opt::ArgList &Args) const;
++
+   /// AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set
+   /// the include paths to use for the given C++ standard library type.
+   virtual void
+diff --git clang/lib/Driver/ToolChain.cpp clang/lib/Driver/ToolChain.cpp
+index cf3db34688df..d980dd5d23fb 100644
+--- clang/lib/Driver/ToolChain.cpp
++++ clang/lib/Driver/ToolChain.cpp
+@@ -665,6 +665,33 @@ ToolChain::RuntimeLibType ToolChain::GetRuntimeLibType(
+   return GetDefaultRuntimeLibType();
+ }
+ 
++ToolChain::UnwindLibType ToolChain::GetUnwindLibType(
++    const ArgList &Args) const {
++  const Arg *A = Args.getLastArg(options::OPT_unwindlib_EQ);
++  StringRef LibName = A ? A->getValue() : CLANG_DEFAULT_UNWINDLIB;
++
++  if (LibName == "none")
++    return ToolChain::UNW_None;
++  else if (LibName == "platform" || LibName == "") {
++    ToolChain::RuntimeLibType RtLibType = GetRuntimeLibType(Args);
++    if (RtLibType == ToolChain::RLT_CompilerRT)
++      return ToolChain::UNW_None;
++    else if (RtLibType == ToolChain::RLT_Libgcc)
++      return ToolChain::UNW_Libgcc;
++  } else if (LibName == "libunwind") {
++    if (GetRuntimeLibType(Args) == RLT_Libgcc)
++      getDriver().Diag(diag::err_drv_incompatible_unwindlib);
++    return ToolChain::UNW_CompilerRT;
++  } else if (LibName == "libgcc")
++    return ToolChain::UNW_Libgcc;
++
++  if (A)
++    getDriver().Diag(diag::err_drv_invalid_unwindlib_name)
++        << A->getAsString(Args);
++
++  return GetDefaultUnwindLibType();
++}
++
+ ToolChain::CXXStdlibType ToolChain::GetCXXStdlibType(const ArgList &Args) const{
+   const Arg *A = Args.getLastArg(options::OPT_stdlib_EQ);
+   StringRef LibName = A ? A->getValue() : CLANG_DEFAULT_CXX_STDLIB;
+diff --git clang/test/Driver/compiler-rt-unwind.c clang/test/Driver/compiler-rt-unwind.c
+new file mode 100644
+index 000000000000..00024dfa7ed3
+--- /dev/null
++++ clang/test/Driver/compiler-rt-unwind.c
+@@ -0,0 +1,49 @@
++// General tests that the driver handles combinations of --rtlib=XXX and
++// --unwindlib=XXX properly.
++//
++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
++// RUN:     --target=x86_64-unknown-linux \
++// RUN:     --gcc-toolchain="" \
++// RUN:   | FileCheck --check-prefix=RTLIB-EMPTY %s
++// RTLIB-EMPTY: "{{.*}}lgcc"
++// RTLIB-EMPTY: "{{.*}}-lgcc_s"
++//
++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
++// RUN:     --target=x86_64-unknown-linux -rtlib=libgcc \
++// RUN:     --gcc-toolchain="" \
++// RUN:   | FileCheck --check-prefix=RTLIB-GCC %s
++// RTLIB-GCC: "{{.*}}lgcc"
++// RTLIB-GCC: "{{.*}}lgcc_s"
++//
++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
++// RUN:     --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \
++// RUN:     --gcc-toolchain="" \
++// RUN:   | FileCheck --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER-RT %s
++// RTLIB-GCC-UNWINDLIB-COMPILER-RT: "{{.*}}lgcc"
++// RTLIB-GCC-UNWINDLIB-COMPILER-RT: "{{.*}}lunwind"
++//
++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1   \
++// RUN:     --target=x86_64-unknown-linux -rtlib=compiler-rt \
++// RUN:     --gcc-toolchain="" \
++// RUN:   | FileCheck --check-prefix=RTLIB-COMPILER-RT %s
++// RTLIB-COMPILER-RT: "{{.*}}libclang_rt.builtins-x86_64.a"
++//
++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1   \
++// RUN:     --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \
++// RUN:     --gcc-toolchain="" \
++// RUN:   | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC %s
++// RTLIB-COMPILER-RT-UNWINDLIB-GCC: "{{.*}}libclang_rt.builtins-x86_64.a"
++// RTLIB-COMPILER-RT-UNWINDLIB-GCC: "{{.*}}lgcc_s"
++//
++// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1              \
++// RUN:     --target=x86_64-unknown-linux -rtlib=compiler-rt --unwindlib=libgcc \
++// RUN:     -static --gcc-toolchain="" \
++// RUN:   | FileCheck --check-prefix=RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC %s
++// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC: "{{.*}}libclang_rt.builtins-x86_64.a"
++// RTLIB-COMPILER-RT-UNWINDLIB-GCC-STATIC: "{{.*}}lgcc_eh"
++//
++// RUN: not %clang -no-canonical-prefixes %s -o %t.o 2> %t.err              \
++// RUN:     --target=x86_64-unknown-linux -rtlib=libgcc --unwindlib=libunwind \
++// RUN:     --gcc-toolchain="" \
++// RUN: FileCheck --input-file=%t.err --check-prefix=RTLIB-GCC-UNWINDLIB-COMPILER_RT %s
++// RTLIB-GCC-UNWINDLIB-COMPILER_RT: "{{[.|\\\n]*}}--rtlib=libgcc requires --unwindlib=libgcc"
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/default.nix
index 218421315995..5f64e2f2a27e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/default.nix
@@ -1,19 +1,20 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
   useLLVM = stdenv.hostPlatform.useLLVM or false;
   bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
   inherit (stdenv.hostPlatform) isMusl;
 
 in
 
 stdenv.mkDerivation {
-  pname = "compiler-rt";
+  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
   inherit version;
   src = fetch "compiler-rt" "1n48p8gjarihkws0i2bay5w9bdwyxyxxbpwyng7ba58jb30dlyq5";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
 
   NIX_CFLAGS_COMPILE = [
@@ -29,14 +30,15 @@ stdenv.mkDerivation {
     "-DCOMPILER_RT_BUILD_XRAY=OFF"
     "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
     "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
+  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
     "-DCMAKE_C_COMPILER_WORKS=ON"
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
     "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
     "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+  ] ++ lib.optionals (useLLVM && !haveLibc) [
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
   ] ++ lib.optionals (useLLVM) [
     "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    "-DCMAKE_C_FLAGS=-nodefaultlibs"
     #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
     "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
   ] ++ lib.optionals (bareMetal) [
@@ -54,6 +56,7 @@ stdenv.mkDerivation {
     # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
     ../../common/compiler-rt/glibc.patch
     ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ./gnu-install-dirs.patch
   ] ++ lib.optional (useLLVM) ./crtbegin-and-end.patch
     ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
@@ -82,10 +85,25 @@ stdenv.mkDerivation {
   postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
     ln -s "$out/lib"/*/* "$out/lib"
   '' + lib.optionalString (useLLVM) ''
-    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o
-    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o
-    ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o
-    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/linux/crtendS.o
+    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
+    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
+    ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
+    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
   '';
 
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..41b501ec6497
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,117 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 86ca2b3ef74b..555103bd97fe 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.4.3)
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+ endif()
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index cd4c704fc824..5abcd1260381 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -478,7 +478,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -495,7 +495,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 04cc955980fa..a99f6dfb2f82 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -377,7 +377,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index e5651718fa34..d95cfc984a85 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -330,7 +330,7 @@ endfunction()
+ function(get_compiler_rt_install_dir arch install_dir)
+   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+     get_compiler_rt_target(${arch} target)
+-    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${target}/lib PARENT_SCOPE)
++    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${target}/${CMAKE_INSTALL_FULL_LIBDIR} PARENT_SCOPE)
+   else()
+     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
+   endif()
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index 91fe2494b476..b59a0ffc69f4 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -53,11 +53,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -85,7 +85,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
+   set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ endif()
+ 
+ if(APPLE)
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index c4b93b89a30c..3913dc3a1ee6 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -48,12 +48,12 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index b3ae713cf02c..52b364b900f5 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -54,4 +54,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/default.nix
index 2170177117e1..4057f206caf1 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/default.nix
@@ -1,8 +1,19 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+, gccForLibs, preLibcCrossHeaders
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
 }:
 
 let
@@ -17,43 +28,74 @@ let
 
   clang-tools-extra_src = fetch "clang-tools-extra" "0lb4kdh7j2fhfz8kd6iv5df7m3pikiryk1vvwsf87spc90n09q0w";
 
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-    mkExtraBuildCommands = cc: ''
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
+    mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
+    '';
+
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
   in {
 
-    llvm = callPackage ./llvm { };
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
 
-    llvm-polly = callPackage ./llvm { enablePolly = true; };
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit (tools) lld;
-      inherit clang-tools-extra_src;
+    libllvm-polly = callPackage ./llvm {
+      inherit llvm_meta;
+      enablePolly = true;
+    };
+
+    llvm-polly = tools.libllvm-polly.lib // { outputUnspecified = true; };
+
+    libclang = callPackage ./clang {
+      inherit clang-tools-extra_src llvm_meta;
     };
+
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
     clang-polly-unwrapped = callPackage ./clang {
+      inherit llvm_meta;
       inherit clang-tools-extra_src;
-      llvm = tools.llvm-polly;
+      libllvm = tools.libllvm-polly;
       enablePolly = true;
     };
 
-    llvm-manpages = lowPrio (tools.llvm.override {
+    llvm-manpages = lowPrio (tools.libllvm.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -76,9 +118,13 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld {};
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
 
-    lldb = callPackage ./lldb {};
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+    };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
     # fully LLVM toolchain from scratch. No GCC toolchain should be
@@ -87,34 +133,43 @@ let
     # doesn’t support like LLVM. Probably we should move to some other
     # file.
 
-    bintools = callPackage ./bintools.nix {};
+    bintools-unwrapped = callPackage ./bintools {};
+
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
+
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
 
-    lldClang = wrapCCWith rec {
+    clangUseLLVM = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
+      ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
+        targetLlvmLibraries.libunwind
       ];
       extraBuildCommands = ''
         echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
+        echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibcxx = wrapCCWith rec {
+    clangNoLibcxx = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -125,13 +180,10 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibc = wrapCCWith rec {
+    clangNoLibc = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -141,17 +193,22 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoCompilerRt = wrapCCWith {
+    clangNoCompilerRt = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '';
+      '' + mkExtraBuildCommands0 cc;
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
     };
 
   });
@@ -160,28 +217,55 @@ let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt {
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
     };
 
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt =
+      if stdenv.hostPlatform.isAndroid || (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.isDarwin)
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
+
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
+
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    libcxxabi = callPackage ./libc++abi ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-        libunwind = libraries.libunwind;
-      }));
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      inherit (buildLlvmTools) llvm;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    openmp = callPackage ./openmp.nix {};
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/libcxx/default.nix
index fb50c4e24d72..ac10e8eb77e3 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/libcxx/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
+{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
   src = fetch "libcxx" "0kmhcapm2cjwalyiqasj9dmqbw59mcwdl8fgl951wg7ax84b8hj4";
@@ -13,7 +13,13 @@ stdenv.mkDerivation {
     export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
   '';
 
-  patches = lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    ../../libcxx-0001-musl-hacks.patch
+  ];
 
   prePatch = ''
     substituteInPlace lib/CMakeLists.txt --replace "/usr/lib/libc++" "\''${LIBCXX_LIBCXXABI_LIB_PATH}/libc++"
@@ -30,23 +36,29 @@ stdenv.mkDerivation {
     ++ lib.optional stdenv.hostPlatform.isMusl python3
     ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-  buildInputs = [ libcxxabi ] ;
+  buildInputs = [ libcxxabi ];
 
   cmakeFlags = [
     "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib"
     "-DLIBCXX_LIBCPPABI_VERSION=2"
     "-DLIBCXX_CXX_ABI=libcxxabi"
   ] ++ lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"
-  ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF" ;
+    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
+    ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF" ;
 
   passthru = {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.unix;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..910e5287a866
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,72 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index acb49565ce97..6a863926cbca 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,6 +26,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 7.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index 1c19d7e01af7..9c8aee8e8bb7 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -59,7 +59,7 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
+ 
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index d9def18d725c..16494dacaf6f 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -243,7 +243,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   foreach(file ${files})
+     get_filename_component(dir ${file} DIRECTORY)
+     install(FILES ${file}
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
+       COMPONENT cxx-headers
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     )
+@@ -252,7 +252,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   if (LIBCXX_NEEDS_SITE_CONFIG)
+     # Install the generated header as __config.
+     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+       RENAME __config
+       COMPONENT cxx-headers)
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index e068edc8a7af..b63ad92d1d78 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -399,8 +399,8 @@ if (LIBCXX_INSTALL_LIBRARY)
+     set(experimental_lib cxx_experimental)
+   endif()
+   install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${filesystem_lib} ${experimental_lib}
+-    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+-    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+     )
+   # NOTE: This install command must go after the cxx install command otherwise
+   # it will not be executed after the library symlinks are installed.
+@@ -408,7 +408,7 @@ if (LIBCXX_INSTALL_LIBRARY)
+     # Replace the libc++ filename with $<TARGET_LINKER_FILE:cxx>
+     # after we required CMake 3.0.
+     install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}"
+-      DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX}
++      DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX}
+       COMPONENT libcxx)
+   endif()
+ endif()
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/libc++abi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/default.nix
index 84c478651416..1663b8c7291d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/libc++abi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/default.nix
@@ -1,16 +1,17 @@
-{ lib, stdenv, cmake, fetch, libcxx, llvm, version
-, standalone ? false
+{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
+, standalone ? stdenv.hostPlatform.useLLVM or false
+, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
   # on musl the shared objects don't build
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
   src = fetch "libcxxabi" "1zcqxsdjhawgz1cvpk07y3jl6fg9p3ay4nl69zsirqb2ghgyhhb2";
 
-  nativeBuildInputs = [ cmake ];
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -22,9 +23,18 @@ stdenv.mkDerivation {
     patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '';
 
-  cmakeFlags =
-     lib.optional standalone "-DLLVM_ENABLE_LIBCXX=ON" ++
-     lib.optional (!enableShared) "-DLIBCXXABI_ENABLE_SHARED=OFF";
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional withLibunwind libunwind;
+
+  cmakeFlags = lib.optionals standalone [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+  ] ++ lib.optionals (standalone && withLibunwind) [
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optional (!enableShared) "-DLIBCXXABI_ENABLE_SHARED=OFF";
 
   installPhase = if stdenv.isDarwin
     then ''
@@ -48,11 +58,15 @@ stdenv.mkDerivation {
       ${lib.optionalString enableShared "ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1"}
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.unix;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..92d9e94fdee7
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d6648ede1f59..55a8f17ca5e6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 7.0.0svn)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 776c51294330..314b45feac69 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -195,8 +195,8 @@ add_custom_target(cxxabi DEPENDS ${LIBCXXABI_BUILD_TARGETS})
+ 
+ if (LIBCXXABI_INSTALL_LIBRARY)
+   install(TARGETS ${LIBCXXABI_INSTALL_TARGETS}
+-    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+-    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+     )
+ endif()
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/libunwind/default.nix
new file mode 100644
index 000000000000..426895029b3e
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/libunwind/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, llvm_meta, version, fetch, fetchpatch, cmake, llvm
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libunwind";
+  inherit version;
+
+  src = fetch pname "035dsxs10nyiqd00q07yycvmkjl01yz4jdlrjvmch8klxg4pyjhp";
+
+  postUnpack = ''
+    unpackFile ${llvm.src}
+    cmakeFlagsArray=($cmakeFlagsArray -DLLVM_PATH=$PWD/$(ls -d llvm-*))
+  '';
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    # removes use of `new` that require libc++
+    (fetchpatch {
+      url = "https://github.com/llvm-mirror/libunwind/commit/34a45c630d4c79af403661d267db42fbe7de1178.patch";
+      sha256 = "0n0pv6jvcky8pn3srhrf9x5kbnd0d2kia9xlx2g590f5q0bgwfhv";
+    })
+    # cleans up remaining libc++ dependencies (mostly header inclusions)
+    (fetchpatch {
+      url = "https://github.com/llvm-mirror/libunwind/commit/e050272d2eb57eb4e56a37b429a61df2ebb8aa3e.patch";
+      sha256 = "170mwmj0wf40iyk1kzdpaiy36rz9n8dpl881h4h7s5da0rh51xya";
+      includes = [ "src/libunwind.cpp" "src/UnwindCursor.hpp" ];
+    })
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = lib.optionals (!enableShared) [
+    "-DLIBUNWIND_ENABLE_SHARED=OFF"
+  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+  ];
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/libunwind/gnu-install-dirs.patch
new file mode 100644
index 000000000000..21d4fa80ea13
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/libunwind/gnu-install-dirs.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0e48d713837a..05483c367bd1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libunwind)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(NOT LLVM_CONFIG_PATH)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 937159e2cb86..07f8b936e7e5 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -141,8 +141,8 @@ add_custom_target(unwind DEPENDS ${LIBUNWIND_BUILD_TARGETS})
+ 
+ if (LIBUNWIND_INSTALL_LIBRARY)
+   install(TARGETS ${LIBUNWIND_INSTALL_TARGETS}
+-    LIBRARY DESTINATION ${LIBUNWIND_INSTALL_PREFIX}lib${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind
+-    ARCHIVE DESTINATION ${LIBUNWIND_INSTALL_PREFIX}lib${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind)
++    LIBRARY DESTINATION ${LIBUNWIND_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind
++    ARCHIVE DESTINATION ${LIBUNWIND_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind)
+ endif()
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES AND LIBUNWIND_INSTALL_LIBRARY)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/lld/default.nix
index f4c58abef8a3..09a0a68e2572 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/lld/default.nix
@@ -1,31 +1,43 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , cmake
 , libxml2
-, llvm
+, libllvm
 , version
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lld";
   inherit version;
 
-  src = fetch "lld" "0rsqb7zcnij5r5ipfhr129j7skr5n9pyr388kjpqwh091952f3x1";
+  src = fetch pname "0rsqb7zcnij5r5ipfhr129j7skr5n9pyr388kjpqwh091952f3x1";
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
+  buildInputs = [ libllvm libxml2 ];
 
-  outputs = [ "out" "dev" ];
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), and Mach-O (macOS)
+      in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..acc2d3d47760
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e2fbdbfbbb47..d601b231ebb8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -203,7 +205,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index fa48b428d26b..e7967aad3ceb 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index d8829493fc22..df748a0e749b 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -16,7 +16,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/lldb/default.nix
index 3fa5b411f634..e2eab31697d7 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , cmake
 , zlib
@@ -7,32 +7,31 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , perl
 , python3
 , version
 , darwin
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lldb";
   inherit version;
 
   src = fetch "lldb" "0klsscg1sczc4nw2l53xggi969k361cng2sjjrfp3bv4g5x14s4v";
 
-  nativeBuildInputs = [ cmake perl python3 which swig ];
-  buildInputs = [ ncurses zlib libedit libxml2 llvm ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa ];
-
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
 
   postPatch = ''
     # Fix up various paths that assume llvm and clang are installed in the same place
-    sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \
+    sed -i 's,".*ClangConfig.cmake","${libclang.dev}/lib/cmake/clang/ClangConfig.cmake",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \
+    sed -i 's,".*tools/clang/include","${libclang.dev}/include",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \
+    sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \
       cmake/modules/LLDBStandalone.cmake
     sed -i -e 's,message(SEND_ERROR "Cannot find debugserver on system."),,' \
            -e 's,string(STRIP ''${XCODE_DEV_DIR} XCODE_DEV_DIR),,' \
@@ -42,9 +41,18 @@ stdenv.mkDerivation {
     patchShebangs scripts
   '';
 
-  cmakeFlags = [
-    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
-    "-DSKIP_DEBUGSERVER=ON"
+  outputs = [ "out" "lib" "dev" ];
+
+  nativeBuildInputs = [
+    cmake perl python3 which swig
+  ];
+
+  buildInputs = [
+    ncurses zlib libedit libxml2 libllvm
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+    darwin.apple_sdk.libs.xpc
+    darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
   ];
 
   CXXFLAGS = "-fno-rtti";
@@ -52,15 +60,30 @@ stdenv.mkDerivation {
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-I${libxml2.dev}/include/libxml2";
 
+  cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
+    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+    "-DSKIP_DEBUGSERVER=ON"
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
+  ];
+
+  doCheck = false;
+
   postInstall = ''
     mkdir -p $out/share/man/man1
     cp ../docs/lldb.1 $out/share/man/man1/
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage    = "https://llvm.org/";
-    license     = licenses.ncsa;
-    platforms   = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..40645743ecc7
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/lldb/gnu-install-dirs.patch
@@ -0,0 +1,76 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 00ddcdc1488f..af2aa238939a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,8 @@ set(CMAKE_MODULE_PATH
+   "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
+   )
+ 
++include(GNUInstallDirs)
++
+ include(LLDBStandalone)
+ include(LLDBConfig)
+ include(AddLLDB)
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index 129a5ef7500d..fb3fb3ce655c 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -56,14 +56,14 @@ function(add_lldb_library name)
+         endif()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          RUNTIME DESTINATION bin
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+           LIBRARY DESTINATION ${out_dir}
+           ARCHIVE DESTINATION ${out_dir})
+       else()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       endif()
+       if (NOT CMAKE_CONFIGURATION_TYPES)
+         add_llvm_install_targets(install-${name}
+@@ -121,7 +121,7 @@ function(add_lldb_executable name)
+   endif()
+ 
+   if(ARG_GENERATE_INSTALL)
+-    set(out_dir "bin")
++    set(out_dir "${CMAKE_INSTALL_BINDIR}")
+     if (LLDB_BUILD_FRAMEWORK AND ARG_INCLUDE_IN_SUITE)
+       set(out_dir ${LLDB_FRAMEWORK_INSTALL_DIR}/${LLDB_FRAMEWORK_RESOURCE_DIR})
+     endif()
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index dae6e365da38..ef272d5de5c0 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -278,7 +278,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+@@ -288,7 +288,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index b5316540fdf3..3c3c882d503f 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -64,4 +64,4 @@ if (NOT LLDB_DISABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
index 53a7301b19b1..4a9b4f518205 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
 , fetchpatch
 , cmake
@@ -11,10 +12,10 @@
 , version
 , release_version
 , zlib
-, buildPackages
+, buildLlvmTools
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
 , enablePFM ? !(stdenv.isDarwin
   || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
   || stdenv.isAarch32 # broken for the armv7l builder
@@ -46,8 +47,7 @@ in stdenv.mkDerivation ({
     mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optional enableManpages python3.pkgs.sphinx;
@@ -67,12 +67,13 @@ in stdenv.mkDerivation ({
       url = "https://github.com/llvm-mirror/llvm/commit/cc1f2a595ead516812a6c50398f0f3480ebe031f.patch";
       sha256 = "0k6k1p5yisgwx417a67s7sr9930rqh1n0zv5jvply8vjjy4b3kf8";
     })
-  ];
+    ./gnu-install-dirs.patch
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
@@ -110,6 +111,7 @@ in stdenv.mkDerivation ({
   '';
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -134,7 +136,20 @@ in stdenv.mkDerivation ({
     "-DCAN_TARGET_i386=false"
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildPackages.llvm_7}/bin/llvm-tblgen"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
@@ -148,19 +163,20 @@ in stdenv.mkDerivation ({
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
     ${lib.concatMapStringsSep "\n" (v: ''
       ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
     '') versionSuffixes}
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
   doCheck = stdenv.isLinux && (!stdenv.isx86_32);
@@ -168,12 +184,23 @@ in stdenv.mkDerivation ({
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -195,5 +222,7 @@ in stdenv.mkDerivation ({
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..0b2d3b79e41f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,106 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index 9939097f743e..8cc538da912a 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.4.3)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -145,14 +149,14 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 969292cd6b00..d7aea77bdd20 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index e48203871884..5bc8a2a52541 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 8ffd984e542b..261cc19f3238 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -274,7 +274,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..7e7921e49ab0
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/llvm/gnu-install-dirs.patch
@@ -0,0 +1,386 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a3d3013cedcd..b298d6ef04af 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -275,15 +275,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -531,9 +537,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -966,7 +972,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -978,7 +984,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index c0f90ba7068d..d656156ff9c8 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -638,11 +638,11 @@ macro(add_llvm_library name)
+   else()
+     if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO" OR
+         (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM"))
+-      set(install_dir lib${LLVM_LIBDIR_SUFFIX})
++      set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       if(ARG_SHARED OR BUILD_SHARED_LIBS)
+         if(WIN32 OR CYGWIN OR MINGW)
+           set(install_type RUNTIME)
+-          set(install_dir bin)
++          set(install_dir ${CMAKE_INSTALL_BINDIR})
+         else()
+           set(install_type LIBRARY)
+         endif()
+@@ -684,9 +684,9 @@ macro(add_llvm_loadable_module name)
+       if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+         if(WIN32 OR CYGWIN)
+           # DLL platform
+-          set(dlldir "bin")
++          set(dlldir "${CMAKE_INSTALL_BINDIR}")
+         else()
+-          set(dlldir "lib${LLVM_LIBDIR_SUFFIX}")
++          set(dlldir "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+         endif()
+ 
+         if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+@@ -698,7 +698,7 @@ macro(add_llvm_loadable_module name)
+         install(TARGETS ${name}
+                 ${export_to_llvmexports}
+                 LIBRARY DESTINATION ${dlldir}
+-                ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++                ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       endif()
+       set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+     endif()
+@@ -912,7 +912,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1430,7 +1430,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1446,7 +1446,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1469,7 +1469,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE)
+@@ -1551,7 +1551,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -1635,9 +1636,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 02bab6846376..eff26adb2efc 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -140,9 +140,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index 22e3dcb776aa..ba77b9c195e2 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -73,7 +73,7 @@ function (add_sphinx_target builder project)
+ 
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index 6c316a2f04fb..129c0995059c 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -90,11 +90,11 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
+ set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
+ configure_file(
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 1a04de931ff7..1c5ea4200635 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message("Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index cbcadc212498..a3da96546f43 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -473,8 +473,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -505,13 +505,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   OS X Only: If enabled CMake will generate a target named
+@@ -676,9 +696,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index 1d5ca3ba92b0..026f5453c1da 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -4,5 +4,5 @@ add_subdirectory(Support)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index f201e1f7bff0..4582ed556a02 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -24,6 +24,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 892adc3b9dd8..cabe7fcc630f 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -333,12 +333,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = path.str();
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index 6e913519a809..85641eef721f 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
+ add_llvm_library(LTO SHARED ${SOURCES} DEPENDS intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index 19b606933082..27b9f71b3d79 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,6 +8,6 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/7/openmp.nix
deleted file mode 100644
index 53f52c326c55..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/7/openmp.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch "openmp" "1dg53wzsci2kra8lh1y0chh60h2l8h1by93br5spzvzlxshkmrqy";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/7/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/7/openmp/default.nix
new file mode 100644
index 000000000000..c331762712f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/7/openmp/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch "openmp" "1dg53wzsci2kra8lh1y0chh60h2l8h1by93br5spzvzlxshkmrqy";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/bintools.nix b/nixpkgs/pkgs/development/compilers/llvm/8/bintools/default.nix
index 53f7941e3369..53f7941e3369 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/bintools.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/bintools/default.nix
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/clang/default.nix
index 8f44ffc0615d..c3399dccd1d7 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/clang/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
 , enablePolly ? false # TODO: get this info from llvm (passthru?)
@@ -23,18 +24,22 @@ let
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm lld ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
       "-DCLANGD_BUILD_XPC=OFF"
       "-DLLVM_ENABLE_RTTI=ON"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
     ] ++ lib.optionals enablePolly [
       "-DWITH_POLLY=ON"
       "-DLINK_POLLY_INTO_TOOLS=ON"
@@ -42,7 +47,7 @@ let
 
     patches = [
       ./purity.patch
-      ./clang-xpc.patch
+      ./xpc.patch
       # Backport for -static-pie, which the latter touches, and which is nice in
       # its own right.
       ./static-pie.patch
@@ -53,6 +58,7 @@ let
       ./compiler-rt-baremetal.patch
       # make clang -xhip use $PATH to find executables
       ./HIP-use-PATH-8.patch
+      ./gnu-install-dirs.patch
     ];
 
     postPatch = ''
@@ -69,12 +75,12 @@ let
         --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -91,18 +97,30 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -121,6 +139,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..e4b9c3f8ddd6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/clang/gnu-install-dirs.patch
@@ -0,0 +1,290 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c2016a45ca6b..9224797da0b5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,6 +9,8 @@ endif()
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(LLVM_CONFIG)
+@@ -382,7 +384,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.def"
+     PATTERN "*.h"
+@@ -391,7 +393,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+     PATTERN "*.inc"
+@@ -399,7 +401,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(PROGRAMS utils/bash-autocomplete.sh
+-    DESTINATION share/clang
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+     )
+ endif()
+ 
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index 7e22f16f365b..3c0c1d245969 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -99,9 +99,9 @@ macro(add_clang_library name)
+       install(TARGETS ${name}
+         COMPONENT ${name}
+         ${export_to_clangtargets}
+-        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        RUNTIME DESTINATION bin)
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+       if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+         add_llvm_install_targets(install-${name}
+@@ -142,7 +142,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -157,5 +157,5 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index e444c9c8706f..f8e4d06366a4 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -164,19 +164,19 @@ install(
+   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_fp16.h
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${cuda_wrapper_files}
+   COMPONENT clang-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
++  DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include/cuda_wrappers)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's.
+   add_llvm_install_targets(install-clang-headers
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index 53e3421f1b35..79ae5bb4c399 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
+index b837b0a0a5d9..9e30bd5780a5 100644
+--- a/tools/clang-check/CMakeLists.txt
++++ b/tools/clang-check/CMakeLists.txt
+@@ -21,4 +21,4 @@ target_link_libraries(clang-check
+   )
+ 
+ install(TARGETS clang-check
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-extdef-mapping/CMakeLists.txt b/tools/clang-extdef-mapping/CMakeLists.txt
+index 6c81689a831a..dacc14737719 100644
+--- a/tools/clang-extdef-mapping/CMakeLists.txt
++++ b/tools/clang-extdef-mapping/CMakeLists.txt
+@@ -18,4 +18,4 @@ target_link_libraries(clang-extdef-mapping
+   )
+ 
+ install(TARGETS clang-extdef-mapping
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index a295e8cd0b2a..1973ff82c7f6 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-offload-bundler/CMakeLists.txt b/tools/clang-offload-bundler/CMakeLists.txt
+index 8718015be76a..7a038f39622e 100644
+--- a/tools/clang-offload-bundler/CMakeLists.txt
++++ b/tools/clang-offload-bundler/CMakeLists.txt
+@@ -22,4 +22,4 @@ target_link_libraries(clang-offload-bundler
+   ${CLANG_OFFLOAD_BUNDLER_LIB_DEPS}
+   )
+ 
+-install(TARGETS clang-offload-bundler RUNTIME DESTINATION bin)
++install(TARGETS clang-offload-bundler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index 45cbd763425c..f534e022024a 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -19,8 +19,8 @@ target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt
+index 96d1c390249c..41c762b37b76 100644
+--- a/tools/diagtool/CMakeLists.txt
++++ b/tools/diagtool/CMakeLists.txt
+@@ -21,7 +21,7 @@ target_link_libraries(diagtool
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(TARGETS diagtool
+     COMPONENT diagtool
+-    RUNTIME DESTINATION bin)
++    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+   if (NOT CMAKE_CONFIGURATION_TYPES)
+     add_llvm_install_targets(install-diagtool
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 32333b011ad1..258dfb2d520c 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -131,7 +131,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+@@ -162,7 +162,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+           COMPONENT
+             libclang-python-bindings
+           DESTINATION
+-            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
++            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
+ endforeach()
+ if(NOT CMAKE_CONFIGURATION_TYPES)
+   add_custom_target(libclang-python-bindings)
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index 380379300b09..adfd58ed5f7d 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -41,7 +41,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(LibexecFile ${LibexecFiles})
+@@ -53,7 +53,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/libexec/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+-    install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec)
++    install(PROGRAMS libexec/${LibexecFile} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
+   endforeach()
+ 
+   foreach(ManPage ${ManPages})
+@@ -77,7 +77,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/share/scan-build/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+-    install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build)
++    install(FILES share/scan-build/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build)
+   endforeach()
+ 
+   add_custom_target(scan-build ALL DEPENDS ${Depends})
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index b305ca562a72..554bcb379061 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -21,7 +21,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(ShareFile ${ShareFiles})
+@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/share/scan-view/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+-    install(FILES share/${ShareFile} DESTINATION share/scan-view)
++    install(FILES share/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view)
+   endforeach()
+ 
+   add_custom_target(scan-view ALL DEPENDS ${Depends})
+diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
+index 5573009d343a..24b3a90f233f 100644
+--- a/utils/hmaptool/CMakeLists.txt
++++ b/utils/hmaptool/CMakeLists.txt
+@@ -9,7 +9,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+                    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${CLANG_HMAPTOOL})
+ 
+ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+-install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION bin)
++install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ add_custom_target(hmaptool ALL DEPENDS ${Depends})
+ set_target_properties(hmaptool PROPERTIES FOLDER "Utils")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/clang/clang-xpc.patch b/nixpkgs/pkgs/development/compilers/llvm/8/clang/xpc.patch
index eb57d3458228..eb57d3458228 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/clang/clang-xpc.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/clang/xpc.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/default.nix
index 3da3d59d1110..d6d60b241501 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/default.nix
@@ -1,19 +1,20 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
   useLLVM = stdenv.hostPlatform.useLLVM or false;
   bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
   inherit (stdenv.hostPlatform) isMusl;
 
 in
 
 stdenv.mkDerivation {
-  pname = "compiler-rt";
+  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
   inherit version;
   src = fetch "compiler-rt" "0dqqf8f930l8gag4d9qjgn1n0pj0nbv2anviqqhdi1rkhas8z0hi";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
 
   NIX_CFLAGS_COMPILE = [
@@ -29,14 +30,15 @@ stdenv.mkDerivation {
     "-DCOMPILER_RT_BUILD_XRAY=OFF"
     "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
     "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
+  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
     "-DCMAKE_C_COMPILER_WORKS=ON"
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
     "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
     "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+  ] ++ lib.optionals (useLLVM && !haveLibc) [
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
   ] ++ lib.optionals (useLLVM) [
     "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    "-DCMAKE_C_FLAGS=-nodefaultlibs"
     #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
     "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
   ] ++ lib.optionals (bareMetal) [
@@ -54,6 +56,7 @@ stdenv.mkDerivation {
     # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
     ../../common/compiler-rt/glibc.patch
     ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ./gnu-install-dirs.patch
   ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ lib.optional (useLLVM) ./crtbegin-and-end.patch
     ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
@@ -88,4 +91,19 @@ stdenv.mkDerivation {
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
   '';
 
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..a25fa90f9800
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,117 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aa360a3ef36e..a39676148181 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.4.3)
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+ endif()
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index 81b110203c27..df7598a11caf 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -479,7 +479,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -496,7 +496,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 04cc955980fa..a99f6dfb2f82 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -377,7 +377,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index 5348f2064b67..d7b8fe190789 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -363,7 +363,7 @@ endfunction()
+ function(get_compiler_rt_install_dir arch install_dir)
+   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+     get_compiler_rt_target(${arch} target)
+-    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${target}/lib PARENT_SCOPE)
++    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${target}/${CMAKE_INSTALL_FULL_LIBDIR} PARENT_SCOPE)
+   else()
+     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
+   endif()
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index aeabf17653f5..0a927fbfc750 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -59,11 +59,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -91,7 +91,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
+   set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ endif()
+ 
+ if(APPLE)
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index c4b93b89a30c..3913dc3a1ee6 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -48,12 +48,12 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index b3ae713cf02c..52b364b900f5 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -54,4 +54,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/default.nix
index 6d6d8b4f7830..a7a293cfbbf6 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/default.nix
@@ -1,8 +1,19 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+, gccForLibs, preLibcCrossHeaders
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
 }:
 
 let
@@ -17,44 +28,75 @@ let
 
   clang-tools-extra_src = fetch "clang-tools-extra" "1qf3097bc5ia8p6cpmbx985rjr3yaah5s8fc0nv7pw742yv7jw8q";
 
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-    mkExtraBuildCommands = cc: ''
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
+    mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
+    '';
+
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
   in {
 
-    llvm = callPackage ./llvm { };
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
 
-    llvm-polly = callPackage ./llvm { enablePolly = true; };
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit (tools) lld;
-      inherit clang-tools-extra_src;
+    libllvm-polly = callPackage ./llvm {
+      inherit llvm_meta;
+      enablePolly = true;
     };
+
+    llvm-polly = tools.libllvm-polly.lib // { outputUnspecified = true; };
+
+    libclang = callPackage ./clang {
+      inherit clang-tools-extra_src llvm_meta;
+    };
+
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
     clang-polly-unwrapped = callPackage ./clang {
+      inherit llvm_meta;
       inherit clang-tools-extra_src;
-      llvm = tools.llvm-polly;
+      libllvm = tools.libllvm-polly;
       enablePolly = true;
     };
 
     # disabled until recommonmark supports sphinx 3
-    #llvm-manpages = lowPrio (tools.llvm.override {
+    #llvm-manpages = lowPrio (tools.libllvm.override {
     #  enableManpages = true;
     #  python3 = pkgs.python3;  # don't use python-boot
     #});
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -77,9 +119,13 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld {};
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
 
-    lldb = callPackage ./lldb {};
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+    };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
     # fully LLVM toolchain from scratch. No GCC toolchain should be
@@ -88,14 +134,21 @@ let
     # doesn’t support like LLVM. Probably we should move to some other
     # file.
 
-    bintools = callPackage ./bintools.nix {};
+    bintools-unwrapped = callPackage ./bintools {};
 
-    lldClang = wrapCCWith rec {
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
+
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
+
+    clangUseLLVM = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
@@ -107,17 +160,17 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
+        echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibcxx = wrapCCWith rec {
+    clangNoLibcxx = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -128,13 +181,10 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibc = wrapCCWith rec {
+    clangNoLibc = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -144,17 +194,22 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoCompilerRt = wrapCCWith {
+    clangNoCompilerRt = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '';
+      '' + mkExtraBuildCommands0 cc;
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
     };
 
   });
@@ -163,33 +218,53 @@ let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
-      }));
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
+               else stdenv;
+    };
+
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt = if stdenv.hostPlatform.isAndroid
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
 
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
-
-    libcxxabi = callPackage ./libc++abi ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-        libunwind = libraries.libunwind;
-      }));
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    openmp = callPackage ./openmp.nix {};
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    libunwind = callPackage ./libunwind ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/libcxx/default.nix
index 70e4d9e1a65e..804b9a53c24a 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libcxx/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
+{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
   src = fetch "libcxx" "0y4vc9z36c1zlq15cnibdzxnc1xi5glbc6klnm8a41q3db4541kz";
@@ -13,7 +13,13 @@ stdenv.mkDerivation {
     export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
   '';
 
-  patches = lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    ../../libcxx-0001-musl-hacks.patch
+  ];
 
   prePatch = ''
     substituteInPlace lib/CMakeLists.txt --replace "/usr/lib/libc++" "\''${LIBCXX_LIBCXXABI_LIB_PATH}/libc++"
@@ -47,10 +53,15 @@ stdenv.mkDerivation {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.all;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..6af403ac86b4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,72 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6b83bce1ae72..63cda3e4e80c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,6 +26,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 8.0.1)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index 1c19d7e01af7..9c8aee8e8bb7 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -59,7 +59,7 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs)
+ 
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 73f7cfc4d8e3..92cf0864ac7e 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -243,7 +243,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   foreach(file ${files})
+     get_filename_component(dir ${file} DIRECTORY)
+     install(FILES ${file}
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
+       COMPONENT cxx-headers
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     )
+@@ -252,7 +252,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   if (LIBCXX_NEEDS_SITE_CONFIG)
+     # Install the generated header as __config.
+     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+       RENAME __config
+       COMPONENT cxx-headers)
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index 24489e8fb5e8..7327e5ee4b85 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -414,8 +414,8 @@ if (LIBCXX_INSTALL_LIBRARY)
+     set(experimental_lib cxx_experimental)
+   endif()
+   install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${filesystem_lib} ${experimental_lib}
+-    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+-    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
++    ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} COMPONENT cxx
+     )
+   # NOTE: This install command must go after the cxx install command otherwise
+   # it will not be executed after the library symlinks are installed.
+@@ -423,7 +423,7 @@ if (LIBCXX_INSTALL_LIBRARY)
+     # Replace the libc++ filename with $<TARGET_LINKER_FILE:cxx>
+     # after we required CMake 3.0.
+     install(FILES "${LIBCXX_LIBRARY_DIR}/libc++${CMAKE_SHARED_LIBRARY_SUFFIX}"
+-      DESTINATION ${LIBCXX_INSTALL_PREFIX}lib${LIBCXX_LIBDIR_SUFFIX}
++      DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX}
+       COMPONENT libcxx)
+   endif()
+ endif()
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/default.nix
index bde67f86640d..593b1df9b7ad 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/default.nix
@@ -1,27 +1,14 @@
-{ lib, stdenv, cmake, fetch, libcxx, libunwind, llvm, version
+{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
   src = fetch "libcxxabi" "1vznz8n1z1h8af0ga451m98lc2hjnv4fyzl71napsvjhvk4g6nxp";
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  patches = [ ./no-threads.patch ];
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -35,6 +22,24 @@ stdenv.mkDerivation {
     patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch}
   '';
 
+  patches = [
+    ./no-threads.patch
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
@@ -58,11 +63,15 @@ stdenv.mkDerivation {
       ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.all;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..3f924b0efbea
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 92c7dc5dc557..556b3e05a042 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 8.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 7e21fb2d7926..30711099a19c 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -220,8 +220,8 @@ add_custom_target(cxxabi DEPENDS ${LIBCXXABI_BUILD_TARGETS})
+ 
+ if (LIBCXXABI_INSTALL_LIBRARY)
+   install(TARGETS ${LIBCXXABI_INSTALL_TARGETS}
+-    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+-    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}lib${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++    LIBRARY DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
++    ARCHIVE DESTINATION ${LIBCXXABI_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} COMPONENT cxxabi
+     )
+ endif()
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/no-threads.patch b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/no-threads.patch
index 787f3e16500e..787f3e16500e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/libc++abi/no-threads.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/no-threads.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/wasm.patch b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/wasm.patch
index 4ebfe46aa813..4ebfe46aa813 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/wasm.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libcxxabi/wasm.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/libunwind/default.nix
index d1bd54fbd349..244b5775bdc8 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libunwind/default.nix
@@ -1,14 +1,12 @@
-{ lib, stdenv, version, fetch, cmake, fetchpatch
+{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "libunwind";
   inherit version;
 
-  src = fetch "libunwind" "0vhgcgzsb33l83qaikrkj87ypqb48mi607rccczccwiiv8ficw0q";
-
-  nativeBuildInputs = [ cmake ];
+  src = fetch pname "0vhgcgzsb33l83qaikrkj87ypqb48mi607rccczccwiiv8ficw0q";
 
   patches = [
     (fetchpatch {
@@ -19,7 +17,24 @@ stdenv.mkDerivation {
       url = "https://github.com/llvm-mirror/libunwind/commit/e050272d2eb57eb4e56a37b429a61df2ebb8aa3e.patch";
       sha256 = "1sxyx5xnax8k713jjcxgq3jq3cpnxygs2rcdf5vfja0f2k9jzldl";
     })
+    ./gnu-install-dirs.patch
   ];
 
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake ];
+
   cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch
new file mode 100644
index 000000000000..ffabba8137d6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/libunwind/gnu-install-dirs.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3d06073cfe74..55c7d1635fcd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   project(libunwind)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(NOT LLVM_CONFIG_PATH)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f7523f88b6ac..4060dad214de 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -151,8 +151,8 @@ add_custom_target(unwind DEPENDS ${LIBUNWIND_BUILD_TARGETS})
+ 
+ if (LIBUNWIND_INSTALL_LIBRARY)
+   install(TARGETS ${LIBUNWIND_INSTALL_TARGETS}
+-    LIBRARY DESTINATION ${LIBUNWIND_INSTALL_PREFIX}lib${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind
+-    ARCHIVE DESTINATION ${LIBUNWIND_INSTALL_PREFIX}lib${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind)
++    LIBRARY DESTINATION ${LIBUNWIND_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind
++    ARCHIVE DESTINATION ${LIBUNWIND_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} COMPONENT unwind)
+ endif()
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES AND LIBUNWIND_INSTALL_LIBRARY)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/lld/default.nix
index 8009beb7bc13..66b59937e5f1 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/lld/default.nix
@@ -1,31 +1,43 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , cmake
 , libxml2
-, llvm
+, libllvm
 , version
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lld";
   inherit version;
 
-  src = fetch "lld" "121xhxrlvwy3k5nf6p1wv31whxlb635ssfkci8z93mwv4ja1xflz";
+  src = fetch pname "121xhxrlvwy3k5nf6p1wv31whxlb635ssfkci8z93mwv4ja1xflz";
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
+  buildInputs = [ libllvm libxml2 ];
 
-  outputs = [ "out" "dev" ];
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
+      WebAssembly in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..acc2d3d47760
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e2fbdbfbbb47..d601b231ebb8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -203,7 +205,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index fa48b428d26b..e7967aad3ceb 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index d8829493fc22..df748a0e749b 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -16,7 +16,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/lldb/default.nix
index 83c171d2a572..ee1f678996a6 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , cmake
 , zlib
@@ -7,53 +7,77 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , python3
 , version
 , darwin
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lldb";
   inherit version;
 
   src = fetch "lldb" "1mriw4adrwm6kzabrjr7yqmdiylxd6glf6samd80dp8idnm9p9z8";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
   postPatch = ''
     # Fix up various paths that assume llvm and clang are installed in the same place
-    sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \
+    sed -i 's,".*ClangConfig.cmake","${libclang.dev}/lib/cmake/clang/ClangConfig.cmake",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,".*tools/clang/include","${clang-unwrapped}/include",' \
+    sed -i 's,".*tools/clang/include","${libclang.dev}/include",' \
       cmake/modules/LLDBStandalone.cmake
-    sed -i 's,"$.LLVM_LIBRARY_DIR.",${llvm}/lib ${clang-unwrapped}/lib,' \
+    sed -i 's,"$.LLVM_LIBRARY_DIR.",${libllvm.lib}/lib ${libclang.lib}/lib,' \
       cmake/modules/LLDBStandalone.cmake
   '';
 
-  nativeBuildInputs = [ cmake python3 which swig ];
-  buildInputs = [ ncurses zlib libedit libxml2 llvm ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.libobjc darwin.apple_sdk.libs.xpc darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa ];
+  outputs = [ "out" "lib" "dev" ];
+
+  nativeBuildInputs = [
+    cmake python3 which swig
+  ];
+
+  buildInputs = [
+    ncurses zlib libedit libxml2 libllvm
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+    darwin.apple_sdk.libs.xpc
+    darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
+  ];
 
   CXXFLAGS = "-fno-rtti";
   hardeningDisable = [ "format" ];
 
   cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
     "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
   ];
 
+  doCheck = false;
+
   postInstall = ''
     mkdir -p $out/share/man/man1
     cp ../docs/lldb.1 $out/share/man/man1/
 
     install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
-    mkdir $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
-    ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+    mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+    ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage    = "https://llvm.org/";
-    license     = licenses.ncsa;
-    platforms   = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..b2e79086beda
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/lldb/gnu-install-dirs.patch
@@ -0,0 +1,81 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cdf22c4b0fc8..8def776f2b4a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,8 @@ set(CMAKE_MODULE_PATH
+   "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
+   )
+ 
++include(GNUInstallDirs)
++
+ include(LLDBStandalone)
+ include(LLDBConfig)
+ include(AddLLDB)
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index f82c11d3d317..776e6d6ef9de 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -63,18 +63,18 @@ function(add_lldb_library name)
+             set(install_dir ".")
+           endif()
+         else()
+-          set(install_dir lib${LLVM_LIBDIR_SUFFIX})
++          set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+         endif()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          RUNTIME DESTINATION bin
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+           LIBRARY DESTINATION ${install_dir}
+           ARCHIVE DESTINATION ${install_dir})
+       else()
+         install(TARGETS ${name}
+           COMPONENT ${name}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       endif()
+       if (NOT CMAKE_CONFIGURATION_TYPES)
+         add_llvm_install_targets(install-${name}
+@@ -122,7 +122,7 @@ function(add_lldb_executable name)
+   if(ARG_GENERATE_INSTALL)
+     install(TARGETS ${name}
+             COMPONENT ${name}
+-            RUNTIME DESTINATION bin)
++            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+     if (NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+                                DEPENDS ${name}
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index 109c5132d3be..8b9092faa29d 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -319,7 +319,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+@@ -329,7 +329,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index b5316540fdf3..3c3c882d503f 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -64,4 +64,4 @@ if (NOT LLDB_DISABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
index c0b88e7ff3e0..6f14b375c62c 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
 , fetchpatch
 , cmake
@@ -11,10 +12,10 @@
 , version
 , release_version
 , zlib
-, buildPackages
+, buildLlvmTools
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
 , enablePFM ? !(stdenv.isDarwin
   || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
   || stdenv.isAarch32 # broken for the armv7l builder
@@ -45,8 +46,7 @@ in stdenv.mkDerivation ({
     mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
@@ -62,12 +62,13 @@ in stdenv.mkDerivation ({
       url = "https://bugs.gentoo.org/attachment.cgi?id=612792";
       sha256 = "0rwx6jpqq4xnf4mvfm8v2d4r34y1yi05am0mx5k2d5bha9j64lqg";
     })
-  ];
+    ./gnu-install-dirs.patch
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
@@ -96,6 +97,7 @@ in stdenv.mkDerivation ({
   '';
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -119,7 +121,20 @@ in stdenv.mkDerivation ({
     "-DCAN_TARGET_i386=false"
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildPackages.llvm_8}/bin/llvm-tblgen"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
@@ -133,18 +148,19 @@ in stdenv.mkDerivation ({
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
   doCheck = stdenv.isLinux && (!stdenv.isx86_32);
@@ -152,12 +168,23 @@ in stdenv.mkDerivation ({
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -179,5 +206,7 @@ in stdenv.mkDerivation ({
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..7c477c7df58a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,106 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index 9939097f743e..8cc538da912a 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.4.3)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -145,14 +149,14 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 211f95512717..f9e04a4844b6 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index e48203871884..5bc8a2a52541 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 8ffd984e542b..261cc19f3238 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -274,7 +274,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..027e43f7caca
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/llvm/gnu-install-dirs.patch
@@ -0,0 +1,394 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 81c2bab39ec9..075e68be6125 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -251,15 +251,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -517,9 +523,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -956,7 +962,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -968,7 +974,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -983,13 +989,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   if (LLVM_INSTALL_MODULEMAPS)
+     install(DIRECTORY include/llvm include/llvm-c
+-            DESTINATION include
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+             COMPONENT llvm-headers
+             FILES_MATCHING
+             PATTERN "module.modulemap"
+             )
+     install(FILES include/llvm/module.install.modulemap
+-            DESTINATION include/llvm
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
+             COMPONENT llvm-headers
+             RENAME "module.extern.modulemap"
+             )
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 1a417447278b..0c2aef338078 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -646,11 +646,11 @@ macro(add_llvm_library name)
+     if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO" OR
+         ${name} STREQUAL "OptRemarks" OR
+         (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM"))
+-      set(install_dir lib${LLVM_LIBDIR_SUFFIX})
++      set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+       if(ARG_MODULE OR ARG_SHARED OR BUILD_SHARED_LIBS)
+         if(WIN32 OR CYGWIN OR MINGW)
+           set(install_type RUNTIME)
+-          set(install_dir bin)
++          set(install_dir ${CMAKE_INSTALL_BINDIR})
+         else()
+           set(install_type LIBRARY)
+         endif()
+@@ -898,7 +898,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1442,7 +1442,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1458,7 +1458,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1481,7 +1481,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
+@@ -1563,7 +1563,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -1670,9 +1671,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 02bab6846376..eff26adb2efc 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -140,9 +140,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index 22e3dcb776aa..ba77b9c195e2 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -73,7 +73,7 @@ function (add_sphinx_target builder project)
+ 
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index f5cc0006fa06..77698aeaf000 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -90,11 +90,11 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
+ set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
+ configure_file(
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 1a04de931ff7..1c5ea4200635 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message("Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index eb219c58560b..6f32532f8ebf 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -479,8 +479,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -511,13 +511,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   OS X Only: If enabled CMake will generate a target named
+@@ -691,9 +711,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index 1d5ca3ba92b0..026f5453c1da 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -4,5 +4,5 @@ add_subdirectory(Support)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index f201e1f7bff0..4582ed556a02 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -24,6 +24,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index bec89fef98ca..31d78f925d45 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -333,12 +333,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = path.str();
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index 6e913519a809..85641eef721f 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
+ add_llvm_library(LTO SHARED ${SOURCES} DEPENDS intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-remarks/CMakeLists.txt b/tools/opt-remarks/CMakeLists.txt
+index a87beae1e893..149ea3d10168 100644
+--- a/tools/opt-remarks/CMakeLists.txt
++++ b/tools/opt-remarks/CMakeLists.txt
+@@ -11,7 +11,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/OptRemarks.exports)
+ add_llvm_library(OptRemarks SHARED ${SOURCES})
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/OptRemarks.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT OptRemarks)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index 19b606933082..27b9f71b3d79 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,6 +8,6 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/8/openmp.nix
deleted file mode 100644
index b5d75d9c8724..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/8/openmp.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch "openmp" "0b3jlxhqbpyd1nqkpxjfggm5d9va5qpyf7d4i5y7n4a1mlydv19y";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/8/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/8/openmp/default.nix
new file mode 100644
index 000000000000..e8459d279829
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/8/openmp/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch "openmp" "0b3jlxhqbpyd1nqkpxjfggm5d9va5qpyf7d4i5y7n4a1mlydv19y";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/bintools.nix b/nixpkgs/pkgs/development/compilers/llvm/9/bintools/default.nix
index 53f7941e3369..53f7941e3369 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/bintools.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/bintools/default.nix
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix
index 87b29163f43e..700fcb414fce 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/clang/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
+, buildLlvmTools
 , fixDarwinDylibNames
 , enableManpages ? false
 , enablePolly ? false # TODO: get this info from llvm (passthru?)
@@ -23,18 +24,22 @@ let
       ++ lib.optional enableManpages python3.pkgs.sphinx
       ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-    buildInputs = [ libxml2 llvm lld ];
+    buildInputs = [ libxml2 libllvm ];
 
     cmakeFlags = [
       "-DCMAKE_CXX_FLAGS=-std=c++11"
       "-DCLANGD_BUILD_XPC=OFF"
       "-DLLVM_ENABLE_RTTI=ON"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
     ] ++ lib.optionals enableManpages [
       "-DCLANG_INCLUDE_DOCS=ON"
       "-DLLVM_ENABLE_SPHINX=ON"
       "-DSPHINX_OUTPUT_MAN=ON"
       "-DSPHINX_OUTPUT_HTML=OFF"
       "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
     ] ++ lib.optionals enablePolly [
       "-DWITH_POLLY=ON"
       "-DLINK_POLLY_INTO_TOOLS=ON"
@@ -46,6 +51,7 @@ let
       ./compiler-rt-baremetal.patch
       # make clang -xhip use $PATH to find executables
       ./HIP-use-PATH-9.patch
+      ./gnu-install-dirs.patch
     ];
 
     postPatch = ''
@@ -62,12 +68,12 @@ let
         --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
     '';
 
-    outputs = [ "out" "lib" "python" ];
+    outputs = [ "out" "lib" "dev" "python" ];
 
     # Clang expects to find LLVMgold in its own prefix
     postInstall = ''
-      if [ -e ${llvm}/lib/LLVMgold.so ]; then
-        ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
       fi
 
       ln -sv $out/bin/clang $out/bin/cpp
@@ -86,18 +92,30 @@ let
       fi
       mv $out/share/clang/*.py $python/share/clang
       rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
     '';
 
     passthru = {
       isClang = true;
-      inherit llvm;
+      inherit libllvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -116,6 +134,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..625cbcc72361
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/clang/gnu-install-dirs.patch
@@ -0,0 +1,278 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 60937aa9db38..45522ff32998 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,6 +9,8 @@ endif()
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(LLVM_CONFIG)
+@@ -413,7 +415,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -423,7 +425,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+@@ -442,7 +444,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   endif()
+ 
+   install(PROGRAMS utils/bash-autocomplete.sh
+-    DESTINATION share/clang
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+     )
+ endif()
+ 
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index cbd618e18afb..63ba43f18e64 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -109,9 +109,9 @@ macro(add_clang_library name)
+       install(TARGETS ${name}
+         COMPONENT ${name}
+         ${export_to_clangtargets}
+-        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-        RUNTIME DESTINATION bin)
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+         add_llvm_install_targets(install-${name}
+@@ -155,7 +155,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT LLVM_ENABLE_IDE)
+@@ -170,7 +170,7 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+ 
+ function(clang_target_link_libraries target type)
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index a3c0b08fa364..aa4215c0999c 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -185,7 +185,7 @@ set_target_properties(clang-resource-headers PROPERTIES
+   FOLDER "Misc"
+   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
+ 
+-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${files} ${generated_files}
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index ceef4b08637c..8efad5520ca4 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-check/CMakeLists.txt b/tools/clang-check/CMakeLists.txt
+index 4576d78bcfb4..7c3b302d8d59 100644
+--- a/tools/clang-check/CMakeLists.txt
++++ b/tools/clang-check/CMakeLists.txt
+@@ -21,4 +21,4 @@ clang_target_link_libraries(clang-check
+   )
+ 
+ install(TARGETS clang-check
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-extdef-mapping/CMakeLists.txt b/tools/clang-extdef-mapping/CMakeLists.txt
+index 4798bdb71ad0..02d07b9982ac 100644
+--- a/tools/clang-extdef-mapping/CMakeLists.txt
++++ b/tools/clang-extdef-mapping/CMakeLists.txt
+@@ -18,4 +18,4 @@ clang_target_link_libraries(clang-extdef-mapping
+   )
+ 
+ install(TARGETS clang-extdef-mapping
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index 35ecdb11253c..d77d75de0094 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-offload-bundler/CMakeLists.txt b/tools/clang-offload-bundler/CMakeLists.txt
+index 465bef040a6c..729369ed9429 100644
+--- a/tools/clang-offload-bundler/CMakeLists.txt
++++ b/tools/clang-offload-bundler/CMakeLists.txt
+@@ -22,4 +22,4 @@ clang_target_link_libraries(clang-offload-bundler
+   ${CLANG_OFFLOAD_BUNDLER_LIB_DEPS}
+   )
+ 
+-install(TARGETS clang-offload-bundler RUNTIME DESTINATION bin)
++install(TARGETS clang-offload-bundler RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index cda8e29ec5b1..0134d8ccd70b 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt
+index a95444be40ee..136d96d9bf5b 100644
+--- a/tools/diagtool/CMakeLists.txt
++++ b/tools/diagtool/CMakeLists.txt
+@@ -21,7 +21,7 @@ clang_target_link_libraries(diagtool
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(TARGETS diagtool
+     COMPONENT diagtool
+-    RUNTIME DESTINATION bin)
++    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+   if (NOT LLVM_ENABLE_IDE)
+     add_llvm_install_targets(install-diagtool
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 613ead1a36b6..e5c7bf27f739 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -137,7 +137,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+@@ -168,7 +168,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+           COMPONENT
+             libclang-python-bindings
+           DESTINATION
+-            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
++            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
+ endforeach()
+ if(NOT LLVM_ENABLE_IDE)
+   add_custom_target(libclang-python-bindings)
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index 380379300b09..adfd58ed5f7d 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -41,7 +41,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(LibexecFile ${LibexecFiles})
+@@ -53,7 +53,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/libexec/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+-    install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec)
++    install(PROGRAMS libexec/${LibexecFile} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
+   endforeach()
+ 
+   foreach(ManPage ${ManPages})
+@@ -77,7 +77,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                          ${CMAKE_BINARY_DIR}/share/scan-build/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+-    install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build)
++    install(FILES share/scan-build/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build)
+   endforeach()
+ 
+   add_custom_target(scan-build ALL DEPENDS ${Depends})
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index b305ca562a72..554bcb379061 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -21,7 +21,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/bin/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+-    install(PROGRAMS bin/${BinFile} DESTINATION bin)
++    install(PROGRAMS bin/${BinFile} DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endforeach()
+ 
+   foreach(ShareFile ${ShareFiles})
+@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                          ${CMAKE_BINARY_DIR}/share/scan-view/
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+-    install(FILES share/${ShareFile} DESTINATION share/scan-view)
++    install(FILES share/${ShareFile} DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view)
+   endforeach()
+ 
+   add_custom_target(scan-view ALL DEPENDS ${Depends})
+diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
+index 5573009d343a..24b3a90f233f 100644
+--- a/utils/hmaptool/CMakeLists.txt
++++ b/utils/hmaptool/CMakeLists.txt
+@@ -9,7 +9,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+                    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${CLANG_HMAPTOOL})
+ 
+ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+-install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION bin)
++install(PROGRAMS ${CLANG_HMAPTOOL} DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ add_custom_target(hmaptool ALL DEPENDS ${Depends})
+ set_target_properties(hmaptool PROPERTIES FOLDER "Utils")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/default.nix
index cfc8e0ea74a2..c31ce78ea0f7 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/default.nix
@@ -1,19 +1,20 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
   useLLVM = stdenv.hostPlatform.useLLVM or false;
   bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
   inherit (stdenv.hostPlatform) isMusl;
 
 in
 
-stdenv.mkDerivation rec {
-  pname = "compiler-rt";
+stdenv.mkDerivation {
+  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
   inherit version;
-  src = fetch pname "0xwh79g3zggdabxgnd0bphry75asm1qz7mv3hcqihqwqr6aspgy2";
+  src = fetch "compiler-rt" "0xwh79g3zggdabxgnd0bphry75asm1qz7mv3hcqihqwqr6aspgy2";
 
-  nativeBuildInputs = [ cmake python3 llvm ];
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
 
   NIX_CFLAGS_COMPILE = [
@@ -29,14 +30,15 @@ stdenv.mkDerivation rec {
     "-DCOMPILER_RT_BUILD_XRAY=OFF"
     "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
     "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
+  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
     "-DCMAKE_C_COMPILER_WORKS=ON"
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
     "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
     "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+  ] ++ lib.optionals (useLLVM && !haveLibc) [
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
   ] ++ lib.optionals (useLLVM) [
     "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    "-DCMAKE_C_FLAGS=-nodefaultlibs"
     #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
     "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
   ] ++ lib.optionals (bareMetal) [
@@ -54,6 +56,7 @@ stdenv.mkDerivation rec {
     # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
     ../../common/compiler-rt/glibc.patch
     ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ./gnu-install-dirs.patch
   ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
     ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
 
@@ -86,4 +89,20 @@ stdenv.mkDerivation rec {
     ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
   '';
+
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..9f63bef2f861
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,117 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f26ae25ada30..8ba536afdccc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,6 +12,7 @@ endif()
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+ endif()
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index f7ee932f214f..ef94a97c4be9 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -488,7 +488,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -505,7 +505,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index b50d55b56940..7e5729ad9c8e 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -386,7 +386,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index 6e672b1e1818..64999709958e 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -371,7 +371,7 @@ endfunction()
+ function(get_compiler_rt_install_dir arch install_dir)
+   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+     get_compiler_rt_target(${arch} target)
+-    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
++    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
+   else()
+     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
+   endif()
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index cef0e0d73d87..db33fb028287 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -55,11 +55,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -87,7 +87,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
+   set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ endif()
+ 
+ if(APPLE)
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 38bd6e41a912..2092d0d08247 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -50,12 +50,12 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index b3ae713cf02c..52b364b900f5 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -54,4 +54,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/default.nix
index 1b8bdad07bbd..8521354dbb8e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/default.nix
@@ -1,8 +1,19 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+, gccForLibs, preLibcCrossHeaders
 , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildPackages
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
 }:
 
 let
@@ -17,44 +28,75 @@ let
 
   clang-tools-extra_src = fetch "clang-tools-extra" "01vgzd4k1q93nfs8gyl83mjlc4x0qsgfqw32lacbjzdxg0mdfvxj";
 
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-    mkExtraBuildCommands = cc: ''
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
+    mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
+    '';
+
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
   in {
 
-    llvm = callPackage ./llvm { };
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
 
-    llvm-polly = callPackage ./llvm { enablePolly = true; };
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
 
-    clang-unwrapped = callPackage ./clang {
-      inherit (tools) lld;
-      inherit clang-tools-extra_src;
+    libllvm-polly = callPackage ./llvm {
+      inherit llvm_meta;
+      enablePolly = true;
     };
+
+    llvm-polly = tools.libllvm-polly.lib // { outputUnspecified = true; };
+
+    libclang = callPackage ./clang {
+      inherit clang-tools-extra_src llvm_meta;
+    };
+
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
     clang-polly-unwrapped = callPackage ./clang {
+      inherit llvm_meta;
       inherit clang-tools-extra_src;
-      llvm = tools.llvm-polly;
+      libllvm = tools.libllvm-polly;
       enablePolly = true;
     };
 
     # disabled until recommonmark supports sphinx 3
-    #llvm-manpages = lowPrio (tools.llvm.override {
+    #llvm-manpages = lowPrio (tools.libllvm.override {
     #  enableManpages = true;
     #  python3 = pkgs.python3;  # don't use python-boot
     #});
 
-    clang-manpages = lowPrio (tools.clang-unwrapped.override {
+    clang-manpages = lowPrio (tools.libclang.override {
       enableManpages = true;
       python3 = pkgs.python3;  # don't use python-boot
     });
 
-    libclang = tools.clang-unwrapped.lib;
-
     clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
@@ -77,9 +119,13 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld {};
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
 
-    lldb = callPackage ./lldb {};
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+    };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
     # fully LLVM toolchain from scratch. No GCC toolchain should be
@@ -88,14 +134,21 @@ let
     # doesn’t support like LLVM. Probably we should move to some other
     # file.
 
-    bintools = callPackage ./bintools.nix {};
+    bintools-unwrapped = callPackage ./bintools {};
 
-    lldClang = wrapCCWith rec {
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
+
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
+
+    clangUseLLVM = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.libcxxabi
         targetLlvmLibraries.compiler-rt
@@ -107,17 +160,17 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
         echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
+        echo "-lunwind" >> $out/nix-support/cc-ldflags
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibcxx = wrapCCWith rec {
+    clangNoLibcxx = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-      };
+      bintools = bintools';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -128,13 +181,10 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoLibc = wrapCCWith rec {
+    clangNoLibc = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [
         targetLlvmLibraries.compiler-rt
       ];
@@ -144,17 +194,22 @@ let
       '' + mkExtraBuildCommands cc;
     };
 
-    lldClangNoCompilerRt = wrapCCWith {
+    clangNoCompilerRt = wrapCCWith rec {
       cc = tools.clang-unwrapped;
       libcxx = null;
-      bintools = wrapBintoolsWith {
-        inherit (tools) bintools;
-        libc = null;
-      };
+      bintools = bintoolsNoLibc';
       extraPackages = [ ];
       extraBuildCommands = ''
         echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '';
+      '' + mkExtraBuildCommands0 cc;
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
     };
 
   });
@@ -163,33 +218,53 @@ let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
-      }));
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
+               else stdenv;
+    };
+
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt = if stdenv.hostPlatform.isAndroid
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
 
     stdenv = overrideCC stdenv buildLlvmTools.clang;
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
-
-    libcxxabi = callPackage ./libc++abi ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-        libunwind = libraries.libunwind;
-      }));
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    openmp = callPackage ./openmp.nix {};
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
-    libunwind = callPackage ./libunwind ({} //
-      (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
-        stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
-      }));
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
 
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
   });
 
 in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libc++/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/default.nix
index 6ea1e28e7b4b..b2022f23e511 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/libc++/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
+{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
   src = fetch "libcxx" "0d2bj5i6mk4caq7skd5nsdmz8c2m5w5anximl5wz3x32p08zz089";
@@ -13,7 +13,13 @@ stdenv.mkDerivation {
     export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include"
   '';
 
-  patches = lib.optional stdenv.hostPlatform.isMusl ../../libcxx-0001-musl-hacks.patch;
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    ../../libcxx-0001-musl-hacks.patch
+  ];
 
   preConfigure = ''
     # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package
@@ -43,10 +49,15 @@ stdenv.mkDerivation {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.all;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..424488bd2e52
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,99 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ec1869ddc7ae..a1c040235c8d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,6 +26,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 9.0.1)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -416,7 +418,7 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+@@ -424,10 +426,10 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ endif()
+ 
+ file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index 10f100f7f0fb..95ed3978ab73 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -61,7 +61,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
+ 
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 7cbf82caa81f..7cbde7accd78 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -243,7 +243,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   foreach(file ${files})
+     get_filename_component(dir ${file} DIRECTORY)
+     install(FILES ${file}
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
+       COMPONENT ${CXX_HEADER_TARGET}
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     )
+@@ -252,7 +252,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   if (LIBCXX_NEEDS_SITE_CONFIG)
+     # Install the generated header as __config.
+     install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+       RENAME __config
+       COMPONENT ${CXX_HEADER_TARGET})
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 31cd24333a5e..a419cef662b0 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -437,21 +437,21 @@ if (LIBCXX_INSTALL_LIBRARY)
+     install(TARGETS cxx_shared
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   if (LIBCXX_INSTALL_STATIC_LIBRARY)
+     install(TARGETS cxx_static
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
+     install(TARGETS ${LIBCXX_INSTALL_TARGETS} ${experimental_lib}
+       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+   endif()
+ 
+   # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/default.nix
index 99d3918b89da..2af3322fd68d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/default.nix
@@ -1,27 +1,14 @@
-{ lib, stdenv, cmake, fetch, libcxx, libunwind, llvm, version
+{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
   src = fetch "libcxxabi" "1b4aiaa8cirx52vk2p5kfk57qmbqf1ipb4nqnjhdgqps9jm7iyg8";
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  patches = [ ./no-threads.patch ];
+  outputs = [ "out" "dev" ];
 
   postUnpack = ''
     unpackFile ${libcxx.src}
@@ -35,6 +22,24 @@ stdenv.mkDerivation {
     patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch}
   '';
 
+  patches = [
+    ./no-threads.patch
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
   installPhase = if stdenv.isDarwin
     then ''
       for file in lib/*.dylib; do
@@ -58,11 +63,15 @@ stdenv.mkDerivation {
       ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.all;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..70b41a6ff531
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aa0b124fc3c4..d74373f465c5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 9.0.1)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -181,17 +183,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/no-threads.patch b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/no-threads.patch
index 787f3e16500e..787f3e16500e 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/libc++abi/no-threads.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/no-threads.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/libcxxabi-wasm.patch b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/wasm.patch
index 4ebfe46aa813..4ebfe46aa813 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/libcxxabi-wasm.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libcxxabi/wasm.patch
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/libunwind/default.nix
index 4c4c85512e3d..65b89c6bb18f 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, version, fetch, cmake, fetchpatch
+{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
@@ -8,7 +8,25 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "1wb02ha3gl6p0a321hwpll74pz5qvjr11xmjqx62g288f1m10njk";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/libunwind/gnu-install-dirs.patch
new file mode 100644
index 000000000000..12171bb51550
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/libunwind/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index df68491d686e..3b53267ae464 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
+   project(libunwind)
+ 
++  include(GNUInstallDirs)
++
+   # Rely on llvm-config.
+   set(CONFIG_OUTPUT)
+   if(NOT LLVM_CONFIG_PATH)
+@@ -189,17 +191,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+     string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ else()
+   set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/lld/default.nix
index 8b12642d2a70..d13e6a107dd9 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/lld/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
 , fetch
 , cmake
 , libxml2
-, llvm
+, libllvm
 , version
 }:
 
@@ -12,20 +13,31 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "10hckfxpapfnh6y9apjiya2jpw9nmbbmh8ayijx89mrg7snjn9l6";
 
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
+  buildInputs = [ libllvm libxml2 ];
 
-  outputs = [ "out" "dev" ];
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
 
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
+  outputs = [ "out" "lib" "dev" ];
 
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
+      WebAssembly in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..232f5cbac9dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 641f71c114ae..9d44c1463aff 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -202,7 +204,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index fa48b428d26b..e7967aad3ceb 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index a15e296e31df..654c2cfdb9c0 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -17,7 +17,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/lldb/default.nix
index d75acf135f36..9957a0218da8 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/lldb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , cmake
 , zlib
@@ -7,8 +7,8 @@
 , which
 , libedit
 , libxml2
-, llvm
-, clang-unwrapped
+, libllvm
+, libclang
 , python3
 , version
 , darwin
@@ -21,17 +21,20 @@ stdenv.mkDerivation rec {
 
   src = fetch pname "02gb3fbz09kyw8n71218v5v77ip559x3gqbcp8y3w6n3jpbryywa";
 
-  patches = [ ./procfs.patch ];
+  patches = [
+    ./procfs.patch
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
+
+  nativeBuildInputs = [
+    cmake python3 which swig lit
+  ];
 
-  nativeBuildInputs = [ cmake python3 which swig lit ];
   buildInputs = [
-    ncurses
-    zlib
-    libedit
-    libxml2
-    llvm
-  ]
-  ++ lib.optionals stdenv.isDarwin [
+    ncurses zlib libedit libxml2 libllvm
+  ] ++ lib.optionals stdenv.isDarwin [
     darwin.libobjc
     darwin.apple_sdk.libs.xpc
     darwin.apple_sdk.frameworks.Foundation
@@ -44,11 +47,17 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   cmakeFlags = [
-    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
-    "-DClang_DIR=${clang-unwrapped}/lib/cmake"
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
+    "-DClang_DIR=${libclang.dev}/lib/cmake"
     "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
+    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
   ];
 
+  doCheck = false;
+
   postInstall = ''
     # man page
     mkdir -p $out/share/man/man1
@@ -58,13 +67,17 @@ stdenv.mkDerivation rec {
     # vscode:
     install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
     mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
-    ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+    ln -s $out/bin/llvm-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage = "https://llvm.org/";
-    license = licenses.ncsa;
-    platforms = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..cb4e400b3678
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/lldb/gnu-install-dirs.patch
@@ -0,0 +1,65 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5d52f6450657..a05130cf80b9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,6 +14,8 @@ set(CMAKE_MODULE_PATH
+ # If we are not building as part of LLVM, build LLDB as a standalone project,
+ # using LLVM as an external library.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
++  include(GNUInstallDirs)
++
+   include(LLDBStandalone)
+ endif()
+ 
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index 4c99278c583b..36d3640a6afc 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -94,13 +94,13 @@ function(add_lldb_library name)
+   endif()
+ 
+   if(PARAM_SHARED)
+-    set(install_dest lib${LLVM_LIBDIR_SUFFIX})
++    set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+     if(PARAM_INSTALL_PREFIX)
+       set(install_dest ${PARAM_INSTALL_PREFIX})
+     endif()
+     # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
+     install(TARGETS ${name} COMPONENT ${name}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       LIBRARY DESTINATION ${install_dest}
+       ARCHIVE DESTINATION ${install_dest}
+       FRAMEWORK DESTINATION ${install_dest})
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index e1a133709ff2..357b4bb4492a 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -335,7 +335,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+@@ -345,7 +345,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index b5316540fdf3..3c3c882d503f 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -64,4 +64,4 @@ if (NOT LLDB_DISABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
index b795f07d472b..e763d3e1e7d0 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
 , fetch
 , cmake
 , python3
@@ -10,10 +11,10 @@
 , version
 , release_version
 , zlib
-, buildPackages
+, buildLlvmTools
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
 , enablePFM ? !(stdenv.isDarwin
   || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
   || stdenv.isAarch32 # broken for the armv7l builder
@@ -44,8 +45,7 @@ in stdenv.mkDerivation (rec {
     mv polly-* $sourceRoot/tools/polly
   '';
 
-  outputs = [ "out" "python" ]
-    ++ optional enableSharedLibraries "lib";
+  outputs = [ "out" "lib" "dev" "python" ];
 
   nativeBuildInputs = [ cmake python3 ]
     ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
@@ -55,10 +55,17 @@ in stdenv.mkDerivation (rec {
 
   propagatedBuildInputs = [ ncurses zlib ];
 
+  patches = [
+    ./gnu-install-dirs.patch
+    # Force a test to evaluate the saved benchmark for a CPU for which LLVM has
+    # an execution model. See NixOS/nixpkgs#119673.
+    ../../exegesis-force-bdver2.patch
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../lib" ''${extra_libdir})' ""
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
   ''
   # Patch llvm-config to return correct library path based on --link-{shared,static}.
   + optionalString (enableSharedLibraries) ''
@@ -104,6 +111,7 @@ in stdenv.mkDerivation (rec {
   '';
 
   cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
     "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
     "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
     "-DLLVM_BUILD_TESTS=ON"
@@ -127,7 +135,20 @@ in stdenv.mkDerivation (rec {
     "-DCAN_TARGET_i386=false"
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildPackages.llvm_9}/bin/llvm-tblgen"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
   ];
 
   postBuild = ''
@@ -141,31 +162,43 @@ in stdenv.mkDerivation (rec {
   postInstall = ''
     mkdir -p $python/share
     mv $out/share/opt-viewer $python/share/opt-viewer
-  ''
-  + optionalString enableSharedLibraries ''
-    moveToOutput "lib/libLLVM-*" "$lib"
-    moveToOutput "lib/libLLVM${stdenv.hostPlatform.extensions.sharedLibrary}" "$lib"
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-"
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
   ''
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
     ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
   '';
 
-  doCheck = stdenv.isLinux && (!stdenv.isx86_32);
+  doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isRiscV);
 
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -187,5 +220,7 @@ in stdenv.mkDerivation (rec {
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..7c477c7df58a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,106 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index 9939097f743e..8cc538da912a 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.4.3)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -145,14 +149,14 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".svn" EXCLUDE
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 211f95512717..f9e04a4844b6 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index e48203871884..5bc8a2a52541 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 8ffd984e542b..261cc19f3238 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -274,7 +274,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..380cc3f6df39
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/llvm/gnu-install-dirs.patch
@@ -0,0 +1,395 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b9a10685b99f..c2750500df99 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -242,15 +242,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -534,9 +540,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -1002,7 +1008,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1014,7 +1020,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1029,13 +1035,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   if (LLVM_INSTALL_MODULEMAPS)
+     install(DIRECTORY include/llvm include/llvm-c
+-            DESTINATION include
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+             COMPONENT llvm-headers
+             FILES_MATCHING
+             PATTERN "module.modulemap"
+             )
+     install(FILES include/llvm/module.install.modulemap
+-            DESTINATION include/llvm
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
+             COMPONENT llvm-headers
+             RENAME "module.extern.modulemap"
+             )
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 619e986b8aa0..842b4f71d07e 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -697,9 +697,9 @@ macro(add_llvm_library name)
+ 
+       install(TARGETS ${name}
+               ${export_to_llvmexports}
+-              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              RUNTIME DESTINATION bin COMPONENT ${name})
++              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+         add_llvm_install_targets(install-${name}
+@@ -930,7 +930,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1485,7 +1485,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1501,7 +1501,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1524,7 +1524,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
+@@ -1606,7 +1606,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -1728,9 +1729,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 02bab6846376..eff26adb2efc 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -140,9 +140,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index 22e3dcb776aa..ba77b9c195e2 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -73,7 +73,7 @@ function (add_sphinx_target builder project)
+ 
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index 9cf22b436fa7..486e40010cd8 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -96,13 +96,13 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+ set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
+ set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
+ configure_file(
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 09fed8085c23..aa79f192abf0 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message(STATUS "Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index 91fb5282206f..d2c9fd94d131 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -492,8 +492,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -524,13 +524,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   macOS Only: If enabled CMake will generate a target named
+@@ -710,9 +730,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index 1d5ca3ba92b0..026f5453c1da 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -4,5 +4,5 @@ add_subdirectory(Support)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index 3a24d3e974e1..987d82c1bb97 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -23,6 +23,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 7ef7c46a2627..1f71f8b0f820 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -332,12 +332,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = path.str();
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index b86e4abd01a7..02ce5773f17d 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -23,7 +23,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
+ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index 19b606933082..27b9f71b3d79 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,6 +8,6 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
+diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
+index e948496c603a..1f4df8a98b10 100644
+--- a/tools/remarks-shlib/CMakeLists.txt
++++ b/tools/remarks-shlib/CMakeLists.txt
+@@ -11,7 +11,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/Remarks.exports)
+ add_llvm_library(Remarks SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES})
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT Remarks)
+ 
+ if (APPLE)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/openmp.nix b/nixpkgs/pkgs/development/compilers/llvm/9/openmp.nix
deleted file mode 100644
index 416916f57ff2..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/9/openmp.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch pname "1knafnpp0f7hylx8q20lkd6g1sf0flly572dayc5d5kghh7hd52w";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/9/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/9/openmp/default.nix
new file mode 100644
index 000000000000..bedd191d5134
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/9/openmp/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch pname "1knafnpp0f7hylx8q20lkd6g1sf0flly572dayc5d5kghh7hd52w";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/bintools/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/bintools/default.nix
new file mode 100644
index 000000000000..53f7941e3369
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/bintools/default.nix
@@ -0,0 +1,29 @@
+{ runCommand, stdenv, llvm, lld, version }:
+
+let
+  prefix =
+    if stdenv.hostPlatform != stdenv.targetPlatform
+    then "${stdenv.targetPlatform.config}-"
+    else "";
+in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
+   mkdir -p $out/bin
+   for prog in ${lld}/bin/*; do
+     ln -s $prog $out/bin/${prefix}$(basename $prog)
+   done
+   for prog in ${llvm}/bin/*; do
+     ln -sf $prog $out/bin/${prefix}$(basename $prog)
+   done
+
+   ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
+   ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as
+   ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
+   ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
+   ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
+   ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
+   ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib
+   ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf
+   ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
+   ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip
+
+   ln -s ${lld}/bin/lld $out/bin/${prefix}ld
+''
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix
new file mode 100644
index 000000000000..cfafe43c3a5f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/clang/default.nix
@@ -0,0 +1,123 @@
+{ lib, stdenv, llvm_meta, src, cmake, libxml2, libllvm, version, python3
+, buildLlvmTools
+, fixDarwinDylibNames
+, enableManpages ? false
+}:
+
+let
+  self = stdenv.mkDerivation ({
+    pname = "clang";
+    inherit version;
+
+    inherit src;
+    sourceRoot = "source/clang";
+
+    nativeBuildInputs = [ cmake python3 ]
+      ++ lib.optional enableManpages python3.pkgs.sphinx
+      ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+
+    buildInputs = [ libxml2 libllvm ];
+
+    cmakeFlags = [
+      "-DCMAKE_CXX_FLAGS=-std=c++14"
+      "-DCLANGD_BUILD_XPC=OFF"
+      "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+    ] ++ lib.optionals enableManpages [
+      "-DCLANG_INCLUDE_DOCS=ON"
+      "-DLLVM_ENABLE_SPHINX=ON"
+      "-DSPHINX_OUTPUT_MAN=ON"
+      "-DSPHINX_OUTPUT_HTML=OFF"
+      "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
+    ];
+
+    patches = [
+      ./purity.patch
+      # https://reviews.llvm.org/D51899
+      ./gnu-install-dirs.patch
+    ];
+
+    postPatch = ''
+      sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
+             -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
+             lib/Driver/ToolChains/*.cpp
+
+      # Patch for standalone doc building
+      sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
+    '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
+    '';
+
+    outputs = [ "out" "lib" "dev" "python" ];
+
+    # Clang expects to find LLVMgold in its own prefix
+    postInstall = ''
+      if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then
+        ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib
+      fi
+
+      ln -sv $out/bin/clang $out/bin/cpp
+
+      # Move libclang to 'lib' output
+      moveToOutput "lib/libclang.*" "$lib"
+      moveToOutput "lib/libclang-cpp.*" "$lib"
+      substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
+          --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \
+          --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp."
+
+      mkdir -p $python/bin $python/share/clang/
+      mv $out/bin/{git-clang-format,scan-view} $python/bin
+      if [ -e $out/bin/set-xcode-analyzer ]; then
+        mv $out/bin/set-xcode-analyzer $python/bin
+      fi
+      mv $out/share/clang/*.py $python/share/clang
+      rm $out/bin/c-index-test
+
+      mkdir -p $dev/bin
+      cp bin/clang-tblgen $dev/bin
+    '';
+
+    passthru = {
+      isClang = true;
+      inherit libllvm;
+    };
+
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
+    };
+  } // lib.optionalAttrs enableManpages {
+    pname = "clang-manpages";
+
+    buildPhase = ''
+      make docs-clang-man
+    '';
+
+    installPhase = ''
+      mkdir -p $out/share/man/man1
+      # Manually install clang manpage
+      cp docs/man/*.1 $out/share/man/man1/
+    '';
+
+    outputs = [ "out" ];
+
+    doCheck = false;
+
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
+  });
+in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
new file mode 100644
index 000000000000..b834d386b4eb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
@@ -0,0 +1,235 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9e74014134a0..976e6a1757fd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.13.4)
+ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+   project(Clang)
+ 
++  include(GNUInstallDirs)
++
+   set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard to conform to")
+   set(CMAKE_CXX_STANDARD_REQUIRED YES)
+   set(CMAKE_CXX_EXTENSIONS NO)
+@@ -416,7 +418,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/clang include/clang-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -425,7 +427,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT clang-headers
+     FILES_MATCHING
+     PATTERN "CMakeFiles" EXCLUDE
+@@ -445,7 +447,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
+   install(PROGRAMS utils/bash-autocomplete.sh
+-          DESTINATION share/clang
++          DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+           COMPONENT bash-autocomplete)
+   if(NOT LLVM_ENABLE_IDE)
+     add_llvm_install_targets(install-bash-autocomplete
+diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
+index 704278a0e93b..d25c8d325c71 100644
+--- a/cmake/modules/AddClang.cmake
++++ b/cmake/modules/AddClang.cmake
+@@ -123,9 +123,9 @@ macro(add_clang_library name)
+         install(TARGETS ${lib}
+           COMPONENT ${lib}
+           ${export_to_clangtargets}
+-          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-          RUNTIME DESTINATION bin)
++          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+         if (NOT LLVM_ENABLE_IDE)
+           add_llvm_install_targets(install-${lib}
+@@ -170,7 +170,7 @@ macro(add_clang_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_clangtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT LLVM_ENABLE_IDE)
+@@ -185,7 +185,7 @@ endmacro()
+ macro(add_clang_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+ 
+ function(clang_target_link_libraries target type)
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index b2c0ce8dd4a0..19e5443d8c25 100644
+--- a/lib/Headers/CMakeLists.txt
++++ b/lib/Headers/CMakeLists.txt
+@@ -215,7 +215,7 @@ set_target_properties(clang-resource-headers PROPERTIES
+   FOLDER "Misc"
+   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
+ 
+-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ 
+ install(
+   FILES ${files} ${generated_files}
+diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
+index ceef4b08637c..8efad5520ca4 100644
+--- a/tools/c-index-test/CMakeLists.txt
++++ b/tools/c-index-test/CMakeLists.txt
+@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
+        "@executable_path/../../lib")
+   else()
+-    set(INSTALL_DESTINATION bin)
++    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
+   endif()
+ 
+   install(TARGETS c-index-test
+diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
+index 35ecdb11253c..d77d75de0094 100644
+--- a/tools/clang-format/CMakeLists.txt
++++ b/tools/clang-format/CMakeLists.txt
+@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
+ endif()
+ 
+ install(PROGRAMS clang-format-bbedit.applescript
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-diff.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format-sublime.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS clang-format.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-format)
+ install(PROGRAMS git-clang-format
+-  DESTINATION bin
++  DESTINATION ${CMAKE_INSTALL_BINDIR}
+   COMPONENT clang-format)
+diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
+index cda8e29ec5b1..0134d8ccd70b 100644
+--- a/tools/clang-rename/CMakeLists.txt
++++ b/tools/clang-rename/CMakeLists.txt
+@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
+   )
+ 
+ install(PROGRAMS clang-rename.py
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+ install(PROGRAMS clang-rename.el
+-  DESTINATION share/clang
++  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
+   COMPONENT clang-rename)
+diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
+index 51ff2e7e1565..1ed5f8a079a1 100644
+--- a/tools/libclang/CMakeLists.txt
++++ b/tools/libclang/CMakeLists.txt
+@@ -166,7 +166,7 @@ endif()
+ if(INTERNAL_INSTALL_PREFIX)
+   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
+ else()
+-  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
++  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ endif()
+ 
+ install(DIRECTORY ../../include/clang-c
+@@ -196,7 +196,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+           COMPONENT
+             libclang-python-bindings
+           DESTINATION
+-            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
++            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
+ endforeach()
+ if(NOT LLVM_ENABLE_IDE)
+   add_custom_target(libclang-python-bindings)
+diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
+index ec0702d76f18..d25d982f51da 100644
+--- a/tools/scan-build/CMakeLists.txt
++++ b/tools/scan-build/CMakeLists.txt
+@@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -61,7 +61,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
+     install(PROGRAMS libexec/${LibexecFile}
+-            DESTINATION libexec
++            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
+             COMPONENT scan-build)
+   endforeach()
+ 
+@@ -89,7 +89,7 @@ if(CLANG_INSTALL_SCANBUILD)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
+     install(FILES share/scan-build/${ShareFile}
+-            DESTINATION share/scan-build
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build
+             COMPONENT scan-build)
+   endforeach()
+ 
+diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
+index dd3d33439299..fea19c12ce70 100644
+--- a/tools/scan-view/CMakeLists.txt
++++ b/tools/scan-view/CMakeLists.txt
+@@ -19,7 +19,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
+     install(PROGRAMS bin/${BinFile}
+-            DESTINATION bin
++            DESTINATION ${CMAKE_INSTALL_BINDIR}
+             COMPONENT scan-view)
+   endforeach()
+ 
+@@ -33,7 +33,7 @@ if(CLANG_INSTALL_SCANVIEW)
+                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
+     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
+     install(FILES share/${ShareFile}
+-            DESTINATION share/scan-view
++            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view
+             COMPONENT scan-view)
+   endforeach()
+ 
+diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
+index 62f2de0cb15c..6aa66825b6ec 100644
+--- a/utils/hmaptool/CMakeLists.txt
++++ b/utils/hmaptool/CMakeLists.txt
+@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+ 
+ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
+ install(PROGRAMS ${CLANG_HMAPTOOL}
+-        DESTINATION bin
++        DESTINATION ${CMAKE_INSTALL_BINDIR}
+         COMPONENT hmaptool)
+ 
+ add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/clang/purity.patch b/nixpkgs/pkgs/development/compilers/llvm/git/clang/purity.patch
new file mode 100644
index 000000000000..deb230a36c5b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/clang/purity.patch
@@ -0,0 +1,28 @@
+From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Thu, 18 May 2017 11:56:12 -0500
+Subject: [PATCH] "purity" patch for 5.0
+
+---
+ lib/Driver/ToolChains/Gnu.cpp | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
+index fe3c0191bb..c6a482bece 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+   if (!IsStatic) {
+     if (Args.hasArg(options::OPT_rdynamic))
+       CmdArgs.push_back("-export-dynamic");
+-
+-    if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) {
+-      CmdArgs.push_back("-dynamic-linker");
+-      CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) +
+-                                           ToolChain.getDynamicLinker(Args)));
+-    }
+   }
+ 
+   CmdArgs.push_back("-o");
+-- 
+2.11.0
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch
new file mode 100644
index 000000000000..f6f9336ad5ad
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch
@@ -0,0 +1,23 @@
+diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt
+index 3a66dd9c3fb..7efc85d9f9f 100644
+--- a/lib/builtins/CMakeLists.txt
++++ b/lib/builtins/CMakeLists.txt
+@@ -301,6 +301,10 @@ if (NOT MSVC)
+     i386/umoddi3.S
+   )
+ 
++  set(i486_SOURCES ${i386_SOURCES})
++  set(i586_SOURCES ${i386_SOURCES})
++  set(i686_SOURCES ${i386_SOURCES})
++
+   if (WIN32)
+     set(i386_SOURCES
+       ${i386_SOURCES}
+@@ -608,6 +612,7 @@ else ()
+   endif()
+ 
+   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
++      message("arch: ${arch}")
+     if (CAN_TARGET_${arch})
+       # For ARM archs, exclude any VFP builtins if VFP is not supported
+       if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/armv7l.patch b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/armv7l.patch
new file mode 100644
index 000000000000..120cfe6feb2a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/armv7l.patch
@@ -0,0 +1,32 @@
+diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake
+--- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake	2020-03-24 00:01:02.000000000 +0900
++++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake	2020-05-10 03:42:00.883450706 +0900
+@@ -24,7 +24,7 @@
+ 
+ 
+ set(ARM64 aarch64)
+-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
++set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
+ set(HEXAGON hexagon)
+ set(X86 i386)
+ set(X86_64 x86_64)
+diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt
+--- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt	2020-03-24 00:01:02.000000000 +0900
++++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt	2020-05-10 03:44:49.468579650 +0900
+@@ -474,6 +474,7 @@
+ set(armv7_SOURCES ${arm_SOURCES})
+ set(armv7s_SOURCES ${arm_SOURCES})
+ set(armv7k_SOURCES ${arm_SOURCES})
++set(armv7l_SOURCES ${arm_SOURCES})
+ set(arm64_SOURCES ${aarch64_SOURCES})
+ 
+ # macho_embedded archs
+@@ -595,7 +596,7 @@
+   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
+     if (CAN_TARGET_${arch})
+       # For ARM archs, exclude any VFP builtins if VFP is not supported
+-      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
++      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
+         string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
+         check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
+         if(NOT COMPILER_RT_HAS_${arch}_VFP)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/codesign.patch b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/codesign.patch
new file mode 100644
index 000000000000..3cc12b94b200
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/codesign.patch
@@ -0,0 +1,33 @@
+From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Tue, 19 Sep 2017 13:13:06 -0500
+Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
+ needs it
+
+---
+ cmake/Modules/AddCompilerRT.cmake |  8 ------
+ test/asan/CMakeLists.txt          | 52 ---------------------------------------
+ test/tsan/CMakeLists.txt          | 47 -----------------------------------
+ 3 files changed, 107 deletions(-)
+
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index bc5fb9ff7..b64eb4246 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
+         set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
+         set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
+       endif()
+-      if(APPLE)
+-        # Ad-hoc sign the dylibs
+-        add_custom_command(TARGET ${libname}
+-          POST_BUILD  
+-          COMMAND codesign --sign - $<TARGET_FILE:${libname}>
+-          WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
+-        )
+-      endif()
+     endif()
+     install(TARGETS ${libname}
+       ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
+2.14.1
+
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
new file mode 100644
index 000000000000..8aeaabb0cd33
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
@@ -0,0 +1,113 @@
+{ lib, stdenv, llvm_meta, version, src, cmake, python3, llvm, libcxxabi }:
+
+let
+
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+  bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
+  haveLibc = stdenv.cc.libc != null;
+  inherit (stdenv.hostPlatform) isMusl;
+
+in
+
+stdenv.mkDerivation {
+  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/compiler-rt";
+
+  nativeBuildInputs = [ cmake python3 llvm.dev ];
+  buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+
+  NIX_CFLAGS_COMPILE = [
+    "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
+  ];
+
+  cmakeFlags = [
+    "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
+    "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
+    "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
+  ] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
+    "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
+    "-DCOMPILER_RT_BUILD_XRAY=OFF"
+    "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
+    "-DCOMPILER_RT_BUILD_PROFILE=OFF"
+  ] ++ lib.optionals ((useLLVM || bareMetal) && !haveLibc) [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
+    "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
+  ] ++ lib.optionals (useLLVM && !haveLibc) [
+    "-DCMAKE_C_FLAGS=-nodefaultlibs"
+  ] ++ lib.optionals (useLLVM) [
+    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
+    #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
+    "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
+  ] ++ lib.optionals (bareMetal) [
+    "-DCOMPILER_RT_OS_DIR=baremetal"
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
+    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
+    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
+    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
+    ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
+    ./gnu-install-dirs.patch
+    # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
+    # extra `/`.
+    ./normalize-var.patch
+  ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch
+    ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
+
+  # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
+  # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
+  # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
+  # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
+  # a flag and turn the flag off during the stdenv build.
+  postPatch = lib.optionalString (!stdenv.isDarwin) ''
+    substituteInPlace cmake/builtin-config-ix.cmake \
+      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace cmake/builtin-config-ix.cmake \
+      --replace 'set(ARM64 arm64 arm64e)' 'set(ARM64)'
+    substituteInPlace cmake/config-ix.cmake \
+      --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
+  '' + lib.optionalString (useLLVM) ''
+    substituteInPlace lib/builtins/int_util.c \
+      --replace "#include <stdlib.h>" ""
+    substituteInPlace lib/builtins/clear_cache.c \
+      --replace "#include <assert.h>" ""
+    substituteInPlace lib/builtins/cpu_model.c \
+      --replace "#include <assert.h>" ""
+  '';
+
+  # Hack around weird upsream RPATH bug
+  postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
+    ln -s "$out/lib"/*/* "$out/lib"
+  '' + lib.optionalString (useLLVM) ''
+    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
+    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
+    ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
+    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
+  '';
+
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch
new file mode 100644
index 000000000000..5f025764de1c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch
@@ -0,0 +1,129 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b44ad2c2118e..d42f5664d448 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,7 @@ cmake_minimum_required(VERSION 3.13.4)
+ # Check if compiler-rt is built as a standalone project.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
+   project(CompilerRT C CXX ASM)
++  include(GNUInstallDirs)
+   set(COMPILER_RT_STANDALONE_BUILD TRUE)
+   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+ endif()
+diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
+index 361538a58e47..f0d8d9ab80f1 100644
+--- a/cmake/Modules/AddCompilerRT.cmake
++++ b/cmake/Modules/AddCompilerRT.cmake
+@@ -495,7 +495,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
+   add_custom_target(${target_name} DEPENDS ${dst_file})
+   # Install in Clang resource directory.
+   install(FILES ${file_name}
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
+     COMPONENT ${component})
+   add_dependencies(${component} ${target_name})
+ 
+@@ -512,7 +512,7 @@ macro(add_compiler_rt_script name)
+   add_custom_target(${name} DEPENDS ${dst})
+   install(FILES ${dst}
+     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+-    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
++    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
+ endmacro(add_compiler_rt_script src name)
+ 
+ # Builds custom version of libc++ and installs it in <prefix>.
+diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
+index 456a8dcda59f..7a09e74c7c79 100644
+--- a/cmake/Modules/CompilerRTDarwinUtils.cmake
++++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
+@@ -508,7 +508,7 @@ macro(darwin_add_embedded_builtin_libraries)
+     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
+       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
+     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
+-      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
++      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
+       
+     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
+     set(CFLAGS_i386 "-march=pentium")
+diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
+index f61d487e93a0..f1f46fb9599c 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -378,7 +378,7 @@ endfunction()
+ function(get_compiler_rt_install_dir arch install_dir)
+   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+     get_compiler_rt_target(${arch} target)
+-    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
++    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
+   else()
+     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
+   endif()
+diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
+index 1edab43e7c0d..1aac6b73ff82 100644
+--- a/cmake/base-config-ix.cmake
++++ b/cmake/base-config-ix.cmake
+@@ -65,11 +65,11 @@ if (LLVM_TREE_AVAILABLE)
+ else()
+     # Take output dir and install path from the user.
+   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
+-    "Path where built compiler-rt libraries should be stored.")
++    "Path where built compiler-rt build artifacts should be stored.")
+   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
+     "Path where built compiler-rt executables should be stored.")
+-  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
+-    "Path where built compiler-rt libraries should be installed.")
++  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
++    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
+   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
+   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
+   # Use a host compiler to compile/link tests.
+@@ -97,7 +97,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
+     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
+   set(COMPILER_RT_LIBRARY_INSTALL_DIR
+-    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
++    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
+ endif()
+ 
+ if(APPLE)
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index b00e8caa1ddd..0fe64e4862c9 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -69,22 +69,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
+ install(FILES ${SANITIZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
+ # Install fuzzer headers.
+ install(FILES ${FUZZER_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer)
+ # Install xray headers.
+ install(FILES ${XRAY_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
+ # Install profile headers.
+ install(FILES ${PROFILE_HEADERS}
+   COMPONENT compiler-rt-headers
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile)
++  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile)
+ 
+ if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
+   add_custom_target(install-compiler-rt-headers
+diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
+index a29de8deff1b..d39ff01613d2 100644
+--- a/lib/dfsan/CMakeLists.txt
++++ b/lib/dfsan/CMakeLists.txt
+@@ -57,4 +57,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
+                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
+ add_dependencies(dfsan dfsan_abilist)
+ install(FILES ${dfsan_abilist_filename}
+-        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
++        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch
new file mode 100644
index 000000000000..135cf625ef78
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch
@@ -0,0 +1,16 @@
+diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+index f1f46fb9599c..6f19e69507ba 100644
+--- a/cmake/Modules/CompilerRTUtils.cmake
++++ b/cmake/Modules/CompilerRTUtils.cmake
+@@ -302,8 +302,9 @@ macro(load_llvm_config)
+     # Get some LLVM variables from LLVMConfig.
+     include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
+ 
+-    set(LLVM_LIBRARY_OUTPUT_INTDIR
+-      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
++    get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR
++      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}
++      REALPATH)
+   endif()
+ endmacro()
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/sanitizers-nongnu.patch b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/sanitizers-nongnu.patch
new file mode 100644
index 000000000000..1f2ac97818eb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/sanitizers-nongnu.patch
@@ -0,0 +1,412 @@
+From f7a253f8f85d0f49df6b73996737a3e84ac64236 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Mon, 24 Sep 2018 11:17:25 -0500
+Subject: [PATCH] Ported to 7.0, taken from gentoo-musl project.
+
+------
+Ported to compiler-rt-sanitizers-5.0.0. Taken from
+
+https://gist.githubusercontent.com/pwaller/2337f3290f12634cad3e3730cff0a6c1/raw/83c87a8585e2f9662494db5662e5361beb093c26/nongnu.patch
+Signed-off-by: Jory A. Pratt <anarchy@gentoo.org>
+
+Taken from gentoo-musl project, with a few additional minor fixes.
+---
+ lib/asan/asan_linux.cc                        |  4 +-
+ lib/interception/interception_linux.cc        |  2 +-
+ lib/interception/interception_linux.h         |  2 +-
+ lib/msan/msan_linux.cc                        |  2 +-
+ lib/sanitizer_common/sanitizer_allocator.cc   |  2 +-
+ .../sanitizer_common_interceptors_ioctl.inc   |  4 +-
+ .../sanitizer_common_syscalls.inc             |  2 +-
+ lib/sanitizer_common/sanitizer_linux.cc       |  8 +++-
+ .../sanitizer_linux_libcdep.cc                | 10 ++---
+ lib/sanitizer_common/sanitizer_platform.h     |  6 +++
+ .../sanitizer_platform_interceptors.h         |  4 +-
+ .../sanitizer_platform_limits_posix.cc        | 37 +++++++++++--------
+ lib/tsan/rtl/tsan_platform_linux.cc           |  2 +-
+ 13 files changed, 51 insertions(+), 34 deletions(-)
+
+diff --git a/lib/asan/asan_linux.cc b/lib/asan/asan_linux.cc
+index 625f32d40..73cf77aca 100644
+--- a/lib/asan/asan_linux.cc
++++ b/lib/asan/asan_linux.cc
+@@ -46,7 +46,7 @@
+ #include <link.h>
+ #endif
+ 
+-#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS
++#if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
+ #include <ucontext.h>
+ extern "C" void* _DYNAMIC;
+ #elif SANITIZER_NETBSD
+@@ -139,7 +139,7 @@ void AsanApplyToGlobals(globals_op_fptr op, const void *needle) {
+   UNIMPLEMENTED();
+ }
+ 
+-#if SANITIZER_ANDROID
++#if SANITIZER_ANDROID || SANITIZER_NONGNU
+ // FIXME: should we do anything for Android?
+ void AsanCheckDynamicRTPrereqs() {}
+ void AsanCheckIncompatibleRT() {}
+diff --git a/lib/interception/interception_linux.cc b/lib/interception/interception_linux.cc
+index 26bfcd8f6..529b234f7 100644
+--- a/lib/interception/interception_linux.cc
++++ b/lib/interception/interception_linux.cc
+@@ -43,7 +43,7 @@ bool GetRealFunctionAddress(const char *func_name, uptr *func_addr,
+ }
+ 
+ // Android and Solaris do not have dlvsym
+-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ void *GetFuncAddrVer(const char *func_name, const char *ver) {
+   return dlvsym(RTLD_NEXT, func_name, ver);
+ }
+diff --git a/lib/interception/interception_linux.h b/lib/interception/interception_linux.h
+index 942c25609..24a4d5080 100644
+--- a/lib/interception/interception_linux.h
++++ b/lib/interception/interception_linux.h
+@@ -36,7 +36,7 @@ void *GetFuncAddrVer(const char *func_name, const char *ver);
+       (::__interception::uptr) & WRAP(func))
+ 
+ // Android,  Solaris and OpenBSD do not have dlvsym
+-#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
++#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ #define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
+   (::__interception::real_##func = (func##_f)(                \
+        unsigned long)::__interception::GetFuncAddrVer(#func, symver))
+diff --git a/lib/msan/msan_linux.cc b/lib/msan/msan_linux.cc
+index 385a650c4..6e30a8ce9 100644
+--- a/lib/msan/msan_linux.cc
++++ b/lib/msan/msan_linux.cc
+@@ -13,7 +13,7 @@
+ //===----------------------------------------------------------------------===//
+ 
+ #include "sanitizer_common/sanitizer_platform.h"
+-#if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD
++#if SANITIZER_FREEBSD || (SANITIZER_LINUX && !SANITIZER_NONGNU) || SANITIZER_NETBSD
+ 
+ #include "msan.h"
+ #include "msan_report.h"
+diff --git a/lib/sanitizer_common/sanitizer_allocator.cc b/lib/sanitizer_common/sanitizer_allocator.cc
+index 6bfd5e5ee..048f6154f 100644
+--- a/lib/sanitizer_common/sanitizer_allocator.cc
++++ b/lib/sanitizer_common/sanitizer_allocator.cc
+@@ -27,7 +27,7 @@ const char *SecondaryAllocatorName = "LargeMmapAllocator";
+ 
+ // ThreadSanitizer for Go uses libc malloc/free.
+ #if SANITIZER_GO || defined(SANITIZER_USE_MALLOC)
+-# if SANITIZER_LINUX && !SANITIZER_ANDROID
++# if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ extern "C" void *__libc_malloc(uptr size);
+ #  if !SANITIZER_GO
+ extern "C" void *__libc_memalign(uptr alignment, uptr size);
+diff --git a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+index 2d633c173..b6eb23116 100644
+--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
++++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+@@ -104,7 +104,7 @@ static void ioctl_table_fill() {
+   _(SIOCGETVIFCNT, WRITE, struct_sioc_vif_req_sz);
+ #endif
+ 
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX && !SANITIZER_NONGNU
+   // Conflicting request ids.
+   // _(CDROMAUDIOBUFSIZ, NONE, 0);
+   // _(SNDCTL_TMR_CONTINUE, NONE, 0);
+@@ -365,7 +365,7 @@ static void ioctl_table_fill() {
+   _(VT_WAITACTIVE, NONE, 0);
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
+   _(CYGETDEFTHRESH, WRITE, sizeof(int));
+   _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
+diff --git a/lib/sanitizer_common/sanitizer_common_syscalls.inc b/lib/sanitizer_common/sanitizer_common_syscalls.inc
+index 469c8eb7e..24f87867d 100644
+--- a/lib/sanitizer_common/sanitizer_common_syscalls.inc
++++ b/lib/sanitizer_common/sanitizer_common_syscalls.inc
+@@ -2038,7 +2038,7 @@ POST_SYSCALL(setrlimit)(long res, long resource, void *rlim) {
+   }
+ }
+ 
+-#if !SANITIZER_ANDROID
++#if !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ PRE_SYSCALL(prlimit64)(long pid, long resource, const void *new_rlim,
+                        void *old_rlim) {
+   if (new_rlim) PRE_READ(new_rlim, struct_rlimit64_sz);
+diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc
+index 96d6c1eff..9e2b7fb9d 100644
+--- a/lib/sanitizer_common/sanitizer_linux.cc
++++ b/lib/sanitizer_common/sanitizer_linux.cc
+@@ -541,13 +541,13 @@ const char *GetEnv(const char *name) {
+ #endif
+ }
+ 
+-#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD
++#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_NONGNU
+ extern "C" {
+ SANITIZER_WEAK_ATTRIBUTE extern void *__libc_stack_end;
+ }
+ #endif
+ 
+-#if !SANITIZER_GO && !SANITIZER_FREEBSD && !SANITIZER_NETBSD &&                \
++#if (!SANITIZER_GO || SANITIZER_NONGNU) && !SANITIZER_FREEBSD && !SANITIZER_NETBSD &&                \
+     !SANITIZER_OPENBSD
+ static void ReadNullSepFileToArray(const char *path, char ***arr,
+                                    int arr_size) {
+@@ -590,6 +590,10 @@ static void GetArgsAndEnv(char ***argv, char ***envp) {
+ #elif SANITIZER_NETBSD
+   *argv = __ps_strings->ps_argvstr;
+   *envp = __ps_strings->ps_envstr;
++#elif SANITIZER_NONGNU
++    static const int kMaxArgv = 2000, kMaxEnvp = 2000;
++    ReadNullSepFileToArray("/proc/self/cmdline", argv, kMaxArgv);
++    ReadNullSepFileToArray("/proc/self/environ", envp, kMaxEnvp);
+ #else // SANITIZER_FREEBSD
+ #if !SANITIZER_GO
+   if (&__libc_stack_end) {
+diff --git a/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+index 4962ff832..438f94dbe 100644
+--- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc
++++ b/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+@@ -179,7 +179,7 @@ __attribute__((unused)) static bool GetLibcVersion(int *major, int *minor,
+ }
+ 
+ #if !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO &&               \
+-    !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS
++    !SANITIZER_NETBSD && !SANITIZER_OPENBSD && !SANITIZER_SOLARIS && !SANITIZER_NONGNU
+ static uptr g_tls_size;
+ 
+ #ifdef __i386__
+@@ -261,7 +261,7 @@ void InitTlsSize() { }
+ #if (defined(__x86_64__) || defined(__i386__) || defined(__mips__) ||          \
+      defined(__aarch64__) || defined(__powerpc64__) || defined(__s390__) ||    \
+      defined(__arm__)) &&                                                      \
+-    SANITIZER_LINUX && !SANITIZER_ANDROID
++    SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ // sizeof(struct pthread) from glibc.
+ static atomic_uintptr_t thread_descriptor_size;
+ 
+@@ -426,7 +426,7 @@ int GetSizeFromHdr(struct dl_phdr_info *info, size_t size, void *data) {
+ 
+ #if !SANITIZER_GO
+ static void GetTls(uptr *addr, uptr *size) {
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ # if defined(__x86_64__) || defined(__i386__) || defined(__s390__)
+   *addr = ThreadSelf();
+   *size = GetTlsSize();
+@@ -470,7 +470,7 @@ static void GetTls(uptr *addr, uptr *size) {
+ #elif SANITIZER_OPENBSD
+   *addr = 0;
+   *size = 0;
+-#elif SANITIZER_ANDROID
++#elif SANITIZER_ANDROID || SANITIZER_NONGNU
+   *addr = 0;
+   *size = 0;
+ #elif SANITIZER_SOLARIS
+@@ -486,7 +486,7 @@ static void GetTls(uptr *addr, uptr *size) {
+ #if !SANITIZER_GO
+ uptr GetTlsSize() {
+ #if SANITIZER_FREEBSD || SANITIZER_ANDROID || SANITIZER_NETBSD ||              \
+-    SANITIZER_OPENBSD || SANITIZER_SOLARIS
++    SANITIZER_OPENBSD || SANITIZER_SOLARIS || SANITIZER_NONGNU
+   uptr addr, size;
+   GetTls(&addr, &size);
+   return size;
+diff --git a/lib/sanitizer_common/sanitizer_platform.h b/lib/sanitizer_common/sanitizer_platform.h
+index d81e25580..e10680ac8 100644
+--- a/lib/sanitizer_common/sanitizer_platform.h
++++ b/lib/sanitizer_common/sanitizer_platform.h
+@@ -208,6 +208,12 @@
+ # define SANITIZER_SOLARIS32 0
+ #endif
+ 
++#if defined(__linux__) && !defined(__GLIBC__)
++# define SANITIZER_NONGNU 1
++#else
++# define SANITIZER_NONGNU 0
++#endif
++
+ #if defined(__myriad2__)
+ # define SANITIZER_MYRIAD2 1
+ #else
+diff --git a/lib/sanitizer_common/sanitizer_platform_interceptors.h b/lib/sanitizer_common/sanitizer_platform_interceptors.h
+index f95539a73..6c53b3415 100644
+--- a/lib/sanitizer_common/sanitizer_platform_interceptors.h
++++ b/lib/sanitizer_common/sanitizer_platform_interceptors.h
+@@ -39,7 +39,7 @@
+ # include "sanitizer_platform_limits_solaris.h"
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ # define SI_LINUX_NOT_ANDROID 1
+ #else
+ # define SI_LINUX_NOT_ANDROID 0
+@@ -322,7 +322,7 @@
+ #define SANITIZER_INTERCEPT_ETHER_R (SI_FREEBSD || SI_LINUX_NOT_ANDROID)
+ #define SANITIZER_INTERCEPT_SHMCTL          \
+   (SI_NETBSD || SI_OPENBSD || SI_SOLARIS || \
+-  ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && \
++  ((SI_FREEBSD || SI_LINUX_NOT_ANDROID || SANITIZER_NONGNU) && \
+     SANITIZER_WORDSIZE == 64))  // NOLINT
+ #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID
+ #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_POSIX
+diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+index 54da635d7..2f6ff69c3 100644
+--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -14,6 +14,9 @@
+ 
+ #include "sanitizer_platform.h"
+ 
++// Workaround musl <--> linux conflicting definition of 'struct sysinfo'
++#define _LINUX_SYSINFO_H
++
+ #if SANITIZER_LINUX || SANITIZER_FREEBSD || SANITIZER_MAC
+ // Tests in this file assume that off_t-dependent data structures match the
+ // libc ABI. For example, struct dirent here is what readdir() function (as
+@@ -138,12 +141,14 @@ typedef struct user_fpregs elf_fpregset_t;
+ 
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ #include <glob.h>
+-#include <obstack.h>
++#  if !SANITIZER_NONGNU
++#    include <obstack.h>
++#  endif
+ #include <mqueue.h>
+-#include <net/if_ppp.h>
+-#include <netax25/ax25.h>
+-#include <netipx/ipx.h>
+-#include <netrom/netrom.h>
++#include <linux/if_ppp.h>
++#include <linux/ax25.h>
++#include <linux/ipx.h>
++#include <linux/netrom.h>
+ #if HAVE_RPC_XDR_H
+ # include <rpc/xdr.h>
+ #elif HAVE_TIRPC_RPC_XDR_H
+@@ -251,7 +256,7 @@ namespace __sanitizer {
+   unsigned struct_itimerspec_sz = sizeof(struct itimerspec);
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
+   // has been removed from glibc 2.28.
+ #if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
+@@ -322,7 +327,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(ElfW(Phdr));
+ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+ #endif
+ 
+-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
++#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   int glob_nomatch = GLOB_NOMATCH;
+   int glob_altdirfunc = GLOB_ALTDIRFUNC;
+ #endif
+@@ -416,7 +421,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+   unsigned struct_termios_sz = sizeof(struct termios);
+   unsigned struct_winsize_sz = sizeof(struct winsize);
+ 
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX && !SANITIZER_NONGNU
+   unsigned struct_arpreq_sz = sizeof(struct arpreq);
+   unsigned struct_cdrom_msf_sz = sizeof(struct cdrom_msf);
+   unsigned struct_cdrom_multisession_sz = sizeof(struct cdrom_multisession);
+@@ -466,7 +471,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+   unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
+   unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
+ #if EV_VERSION > (0x010000)
+@@ -834,7 +839,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+   unsigned IOCTL_VT_WAITACTIVE = VT_WAITACTIVE;
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
+   unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
+   unsigned IOCTL_CYGETMON = CYGETMON;
+@@ -989,7 +994,7 @@ CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phdr);
+ CHECK_SIZE_AND_OFFSET(dl_phdr_info, dlpi_phnum);
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ 
+-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
++#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ CHECK_TYPE_SIZE(glob_t);
+ CHECK_SIZE_AND_OFFSET(glob_t, gl_pathc);
+ CHECK_SIZE_AND_OFFSET(glob_t, gl_pathv);
+@@ -1023,6 +1028,7 @@ CHECK_TYPE_SIZE(iovec);
+ CHECK_SIZE_AND_OFFSET(iovec, iov_base);
+ CHECK_SIZE_AND_OFFSET(iovec, iov_len);
+ 
++#if !SANITIZER_NONGNU
+ CHECK_TYPE_SIZE(msghdr);
+ CHECK_SIZE_AND_OFFSET(msghdr, msg_name);
+ CHECK_SIZE_AND_OFFSET(msghdr, msg_namelen);
+@@ -1036,6 +1042,7 @@ CHECK_TYPE_SIZE(cmsghdr);
+ CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_len);
+ CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_level);
+ CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_type);
++#endif
+ 
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(x, y) 0
+@@ -1145,7 +1152,7 @@ CHECK_SIZE_AND_OFFSET(mntent, mnt_passno);
+ 
+ CHECK_TYPE_SIZE(ether_addr);
+ 
+-#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID
++#if (SANITIZER_LINUX || SANITIZER_FREEBSD) && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ CHECK_TYPE_SIZE(ipc_perm);
+ # if SANITIZER_FREEBSD
+ CHECK_SIZE_AND_OFFSET(ipc_perm, key);
+@@ -1206,7 +1213,7 @@ CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_dstaddr);
+ CHECK_SIZE_AND_OFFSET(ifaddrs, ifa_data);
+ #endif
+ 
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX && !SANITIZER_NONGNU
+ COMPILER_CHECK(sizeof(__sanitizer_mallinfo) == sizeof(struct mallinfo));
+ #endif
+ 
+@@ -1256,7 +1263,7 @@ COMPILER_CHECK(__sanitizer_XDR_DECODE == XDR_DECODE);
+ COMPILER_CHECK(__sanitizer_XDR_FREE == XDR_FREE);
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ COMPILER_CHECK(sizeof(__sanitizer_FILE) <= sizeof(FILE));
+ CHECK_SIZE_AND_OFFSET(FILE, _flags);
+ CHECK_SIZE_AND_OFFSET(FILE, _IO_read_ptr);
+@@ -1275,7 +1282,7 @@ CHECK_SIZE_AND_OFFSET(FILE, _chain);
+ CHECK_SIZE_AND_OFFSET(FILE, _fileno);
+ #endif
+ 
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+ COMPILER_CHECK(sizeof(__sanitizer__obstack_chunk) <= sizeof(_obstack_chunk));
+ CHECK_SIZE_AND_OFFSET(_obstack_chunk, limit);
+ CHECK_SIZE_AND_OFFSET(_obstack_chunk, prev);
+diff --git a/lib/tsan/rtl/tsan_platform_linux.cc b/lib/tsan/rtl/tsan_platform_linux.cc
+index de989b780..51a97b554 100644
+--- a/lib/tsan/rtl/tsan_platform_linux.cc
++++ b/lib/tsan/rtl/tsan_platform_linux.cc
+@@ -294,7 +294,7 @@ void InitializePlatform() {
+ // This is required to properly "close" the fds, because we do not see internal
+ // closes within glibc. The code is a pure hack.
+ int ExtractResolvFDs(void *state, int *fds, int nfd) {
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if SANITIZER_LINUX && !SANITIZER_ANDROID && !SANITIZER_NONGNU
+   int cnt = 0;
+   struct __res_state *statp = (struct __res_state*)state;
+   for (int i = 0; i < MAXNS && cnt < nfd; i++) {
+-- 
+2.19.0
+
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/default.nix
new file mode 100644
index 000000000000..38de0f70cf2e
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/default.nix
@@ -0,0 +1,269 @@
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+, gccForLibs, preLibcCrossHeaders
+, libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
+, buildLlvmTools # tools, but from the previous stage, for cross
+, targetLlvmLibraries # libraries, but from the next stage, for cross
+# This is the default binutils, but with *this* version of LLD rather
+# than the default LLVM verion's, if LLD is the choice. We use these for
+# the `useLLVM` bootstrapping below.
+, bootBintoolsNoLibc ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintoolsNoLibc
+, bootBintools ?
+    if stdenv.targetPlatform.linker == "lld"
+    then null
+    else pkgs.bintools
+, darwin
+}:
+
+let
+  release_version = "12.0.0";
+  candidate = ""; # empty or "rcN"
+  dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
+  rev = ""; # When using a Git commit
+  version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
+  targetConfig = stdenv.targetPlatform.config;
+
+  src = fetchFromGitHub {
+    owner = "llvm";
+    repo = "llvm-project";
+    rev = if rev != "" then rev else "llvmorg-${version}";
+    sha256 = "07jz8pywc2qqa1srdnqg5p2y4lx3ki1inpigarzgxc3j20r4gb58";
+  };
+
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
+
+  tools = lib.makeExtensible (tools: let
+    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version src buildLlvmTools; });
+    mkExtraBuildCommands0 = cc: ''
+      rsrc="$out/resource-root"
+      mkdir "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
+    '';
+    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
+      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
+    '';
+
+  bintoolsNoLibc' =
+    if bootBintoolsNoLibc == null
+    then tools.bintoolsNoLibc
+    else bootBintoolsNoLibc;
+  bintools' =
+    if bootBintools == null
+    then tools.bintools
+    else bootBintools;
+
+  in {
+
+    libllvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
+
+    # `llvm` historically had the binaries.  When choosing an output explicitly,
+    # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get*
+    llvm = tools.libllvm.out // { outputUnspecified = true; };
+
+    libclang = callPackage ./clang {
+      inherit llvm_meta;
+    };
+
+    clang-unwrapped = tools.libclang.out // { outputUnspecified = true; };
+
+    # disabled until recommonmark supports sphinx 3
+    #Llvm-manpages = lowPrio (tools.libllvm.override {
+    #  enableManpages = true;
+    #  python3 = pkgs.python3;  # don't use python-boot
+    #});
+
+    clang-manpages = lowPrio (tools.libclang.override {
+      enableManpages = true;
+      python3 = pkgs.python3;  # don't use python-boot
+    });
+
+    # disabled until recommonmark supports sphinx 3
+    # lldb-manpages = lowPrio (tools.lldb.override {
+    #   enableManpages = true;
+    #   python3 = pkgs.python3;  # don't use python-boot
+    # });
+
+    clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+
+    libstdcxxClang = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
+      libcxx = null;
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+    };
+
+    libcxxClang = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = targetLlvmLibraries.libcxx;
+      extraPackages = [
+        targetLlvmLibraries.libcxxabi
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = mkExtraBuildCommands cc;
+    };
+
+    lld = callPackage ./lld {
+      inherit llvm_meta;
+    };
+
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
+      inherit (darwin) libobjc bootstrap_cmds;
+      inherit (darwin.apple_sdk.libs) xpc;
+      inherit (darwin.apple_sdk.frameworks) Foundation Carbon Cocoa;
+    };
+
+    # Below, is the LLVM bootstrapping logic. It handles building a
+    # fully LLVM toolchain from scratch. No GCC toolchain should be
+    # pulled in. As a consequence, it is very quick to build different
+    # targets provided by LLVM and we can also build for what GCC
+    # doesn’t support like LLVM. Probably we should move to some other
+    # file.
+
+    bintools-unwrapped = callPackage ./bintools {};
+
+    bintoolsNoLibc = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+      libc = preLibcCrossHeaders;
+    };
+
+    bintools = wrapBintoolsWith {
+      bintools = tools.bintools-unwrapped;
+    };
+
+    clangUseLLVM = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = targetLlvmLibraries.libcxx;
+      bintools = bintools';
+      extraPackages = [
+        targetLlvmLibraries.libcxxabi
+        targetLlvmLibraries.compiler-rt
+      ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
+        targetLlvmLibraries.libunwind
+      ];
+      extraBuildCommands = ''
+        echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
+        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
+        echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
+      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
+        echo "-lunwind" >> $out/nix-support/cc-ldflags
+      '' + lib.optionalString stdenv.targetPlatform.isWasm ''
+        echo "-fno-exceptions" >> $out/nix-support/cc-cflags
+      '' + mkExtraBuildCommands cc;
+    };
+
+    clangNoLibcxx = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = ''
+        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
+        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
+        echo "-nostdlib++" >> $out/nix-support/cc-cflags
+      '' + mkExtraBuildCommands cc;
+    };
+
+    clangNoLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintoolsNoLibc';
+      extraPackages = [
+        targetLlvmLibraries.compiler-rt
+      ];
+      extraBuildCommands = ''
+        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
+        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
+      '' + mkExtraBuildCommands cc;
+    };
+
+    clangNoCompilerRt = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintoolsNoLibc';
+      extraPackages = [ ];
+      extraBuildCommands = ''
+        echo "-nostartfiles" >> $out/nix-support/cc-cflags
+      '' + mkExtraBuildCommands0 cc;
+    };
+
+    clangNoCompilerRtWithLibc = wrapCCWith rec {
+      cc = tools.clang-unwrapped;
+      libcxx = null;
+      bintools = bintools';
+      extraPackages = [ ];
+      extraBuildCommands = mkExtraBuildCommands0 cc;
+    };
+
+  });
+
+  libraries = lib.makeExtensible (libraries: let
+    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version src; });
+  in {
+
+    compiler-rt-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
+               else stdenv;
+    };
+
+    compiler-rt-no-libc = callPackage ./compiler-rt {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
+               else stdenv;
+    };
+
+    # N.B. condition is safe because without useLLVM both are the same.
+    compiler-rt = if stdenv.hostPlatform.isAndroid
+      then libraries.compiler-rt-libc
+      else libraries.compiler-rt-no-libc;
+
+    stdenv = overrideCC stdenv buildLlvmTools.clang;
+
+    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
+
+    libcxx = callPackage ./libcxx {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
+
+    libcxxabi = callPackage ./libcxxabi {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
+
+    libunwind = callPackage ./libunwind {
+      inherit llvm_meta;
+      stdenv = if stdenv.hostPlatform.useLLVM or false
+               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
+               else stdenv;
+    };
+
+    openmp = callPackage ./openmp {
+      inherit llvm_meta;
+    };
+  });
+
+in { inherit tools libraries; } // libraries // tools
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix
new file mode 100644
index 000000000000..8fb6b4a7dbd4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, llvm_meta, src, cmake, python3, libcxxabi, fixDarwinDylibNames, version
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libcxx";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/${pname}";
+
+  outputs = [ "out" "dev" ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    ../../libcxx-0001-musl-hacks.patch
+  ];
+
+  preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
+    patchShebangs utils/cat_files.py
+  '';
+
+  nativeBuildInputs = [ cmake python3 ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  buildInputs = [ libcxxabi ];
+
+  cmakeFlags = [
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+  ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
+    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
+    ++ lib.optional stdenv.hostPlatform.isWasm [
+      "-DLIBCXX_ENABLE_THREADS=OFF"
+      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
+
+  passthru = {
+    isLLVM = true;
+  };
+
+  meta = llvm_meta // {
+    homepage = "https://libcxx.llvm.org/";
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/gnu-install-dirs.patch
new file mode 100644
index 000000000000..1f9de00a9d56
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/gnu-install-dirs.patch
@@ -0,0 +1,100 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9bf1a02f0908..612cd4aab76c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,6 +28,8 @@ set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build")
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
+   project(libcxx CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxx)
+   set(PACKAGE_VERSION 12.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -402,7 +404,7 @@ endif ()
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
+@@ -410,11 +412,11 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
+   set(LIBCXX_HEADER_DIR  ${CMAKE_BINARY_DIR})
+-  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
++  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
+ endif()
+ 
+ file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
+diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
+index 5d2764e870e9..bb1ec5de6ca2 100644
+--- a/cmake/Modules/HandleLibCXXABI.cmake
++++ b/cmake/Modules/HandleLibCXXABI.cmake
+@@ -63,7 +63,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
+ 
+         if (LIBCXX_INSTALL_HEADERS)
+           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
+-            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
++            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
+             COMPONENT cxx-headers
+             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+             )
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 29a317b8ae9a..4747263cfd1b 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -252,7 +252,7 @@ if (LIBCXX_INSTALL_HEADERS)
+   foreach(file ${files})
+     get_filename_component(dir ${file} DIRECTORY)
+     install(FILES ${file}
+-      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
++      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
+       COMPONENT cxx-headers
+       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     )
+@@ -260,7 +260,7 @@ if (LIBCXX_INSTALL_HEADERS)
+ 
+   # Install the generated header as __config.
+   install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
+-    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
++    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
+     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+     RENAME __config
+     COMPONENT cxx-headers)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9965104cb5b2..9b55dbb1d822 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -352,21 +352,21 @@ if (LIBCXX_INSTALL_SHARED_LIBRARY)
+   install(TARGETS cxx_shared
+     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+ endif()
+ 
+ if (LIBCXX_INSTALL_STATIC_LIBRARY)
+   install(TARGETS cxx_static
+     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+ endif()
+ 
+ if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
+   install(TARGETS cxx_experimental
+     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
+-    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
++    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
+ endif()
+ 
+ # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix
new file mode 100644
index 000000000000..3bb82d651ec7
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix
@@ -0,0 +1,73 @@
+{ lib, stdenv, llvm_meta, cmake, python3, src, libunwind, version
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libcxxabi";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/${pname}";
+
+  outputs = [ "out" "dev" ];
+
+  postUnpack = lib.optionalString stdenv.isDarwin ''
+    export TRIPLE=x86_64-apple-darwin
+  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+    patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch}
+  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
+    patch -p1 -d llvm -i ${./wasm.patch}
+  '';
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake python3 ];
+  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+
+  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  installPhase = if stdenv.isDarwin
+    then ''
+      for file in lib/*.dylib; do
+        # this should be done in CMake, but having trouble figuring out
+        # the magic combination of necessary CMake variables
+        # if you fancy a try, take a look at
+        # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
+        install_name_tool -id $out/$file $file
+      done
+      make install
+      install -d 755 $out/include
+      install -m 644 ../include/*.h $out/include
+    ''
+    else ''
+      install -d -m 755 $out/include $out/lib
+      install -m 644 lib/libc++abi.a $out/lib
+      install -m 644 ../include/cxxabi.h $out/include
+    '' + lib.optionalString enableShared ''
+      install -m 644 lib/libc++abi.so.1.0 $out/lib
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
+      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
+    '';
+
+  meta = llvm_meta // {
+    homepage = "https://libcxxabi.llvm.org/";
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch
new file mode 100644
index 000000000000..b49b1685940f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 426c855288fc..a9812a994f53 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,6 +27,8 @@ set(LIBCXXABI_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
+   project(libcxxabi CXX C)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libcxxabi)
+   set(PACKAGE_VERSION 11.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -180,17 +182,17 @@ set(CMAKE_MODULE_PATH
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ else()
+   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
+-  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
++  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/wasm.patch b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/wasm.patch
new file mode 100644
index 000000000000..4ebfe46aa813
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/wasm.patch
@@ -0,0 +1,16 @@
+diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
+index 15497d405e0..33f7f18193a 100644
+--- a/cmake/modules/HandleLLVMOptions.cmake
++++ b/cmake/modules/HandleLLVMOptions.cmake
+@@ -127,7 +127,10 @@ else(WIN32)
+       set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
+     endif()
+   else(FUCHSIA OR UNIX)
+-    MESSAGE(SEND_ERROR "Unable to determine platform")
++    if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
++    else()
++      MESSAGE(SEND_ERROR "Unable to determine platform")
++    endif()
+   endif(FUCHSIA OR UNIX)
+ endif(WIN32)
+ 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/libunwind/default.nix
new file mode 100644
index 000000000000..b6017e741728
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libunwind/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, llvm_meta, version, src, cmake
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libunwind";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/${pname}";
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch
new file mode 100644
index 000000000000..a791d6c43231
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48cb8e004e08..fec8144fb95a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -23,6 +23,8 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
+   project(libunwind LANGUAGES C CXX ASM)
+ 
++  include(GNUInstallDirs)
++
+   set(PACKAGE_NAME libunwind)
+   set(PACKAGE_VERSION 12.0.0)
+   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+@@ -115,17 +117,17 @@ set(CMAKE_MODULE_PATH
+ 
+ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
+   if(LIBCXX_LIBDIR_SUBDIR)
+     string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+     string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
+   endif()
+ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
+   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ else()
+   set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
+-  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
++  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
+ endif()
+ 
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/lld/default.nix
new file mode 100644
index 000000000000..34ac265f4bfd
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/lld/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, llvm_meta
+, buildLlvmTools
+, src
+, cmake
+, libxml2
+, libllvm
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lld";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/${pname}";
+
+  patches = [
+    ./gnu-install-dirs.patch
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libllvm libxml2 ];
+
+  cmakeFlags = [
+    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
+
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
+      WebAssembly in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
new file mode 100644
index 000000000000..61e2f0e48653
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
@@ -0,0 +1,68 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d4e561b50d8f..cfa5bdd79c2a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+   set(CMAKE_INCLUDE_CURRENT_DIR ON)
+   set(LLD_BUILT_STANDALONE TRUE)
+ 
++  include(GNUInstallDirs)
++
+   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
+   if(NOT LLVM_CONFIG_PATH)
+     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
+@@ -179,7 +181,7 @@ include_directories(BEFORE
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     )
+diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
+index 23df41312403..d62372c88de7 100644
+--- a/cmake/modules/AddLLD.cmake
++++ b/cmake/modules/AddLLD.cmake
+@@ -20,9 +20,9 @@ macro(add_lld_library name)
+     install(TARGETS ${name}
+       COMPONENT ${name}
+       ${export_to_lldtargets}
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      RUNTIME DESTINATION bin)
++      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
+       add_llvm_install_targets(install-${name}
+@@ -54,7 +54,7 @@ macro(add_lld_tool name)
+ 
+     install(TARGETS ${name}
+       ${export_to_lldtargets}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       COMPONENT ${name})
+ 
+     if(NOT CMAKE_CONFIGURATION_TYPES)
+@@ -69,5 +69,5 @@ endmacro()
+ macro(add_lld_symlink name dest)
+   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
+   # Always generate install targets
+-  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
++  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
+ endmacro()
+diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
+index 5cff736ff57f..64e775c771b9 100644
+--- a/tools/lld/CMakeLists.txt
++++ b/tools/lld/CMakeLists.txt
+@@ -21,7 +21,7 @@ target_link_libraries(lld
+   )
+ 
+ install(TARGETS lld
+-  RUNTIME DESTINATION bin)
++  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+ if(NOT LLD_SYMLINKS_TO_CREATE)
+   set(LLD_SYMLINKS_TO_CREATE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/lldb/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/default.nix
new file mode 100644
index 000000000000..f8c7e7b55e67
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/default.nix
@@ -0,0 +1,131 @@
+{ lib, stdenv, llvm_meta
+, runCommand
+, src
+, cmake
+, zlib
+, ncurses
+, swig
+, which
+, libedit
+, libxml2
+, libllvm
+, libclang
+, python3
+, version
+, libobjc
+, xpc
+, Foundation
+, bootstrap_cmds
+, Carbon
+, Cocoa
+, lit
+, enableManpages ? false
+}:
+
+stdenv.mkDerivation (rec {
+  pname = "lldb";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/${pname}";
+
+  patches = [
+    ./procfs.patch
+    (runCommand "resource-dir.patch" {
+      clangLibDir = "${libclang.lib}/lib";
+    } ''
+      substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir
+    '')
+    ./gnu-install-dirs.patch
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
+
+  nativeBuildInputs = [
+    cmake python3 which swig lit
+  ] ++ lib.optionals enableManpages [
+    python3.pkgs.sphinx python3.pkgs.recommonmark
+  ];
+
+  buildInputs = [
+    ncurses
+    zlib
+    libedit
+    libxml2
+    libllvm
+  ]
+  ++ lib.optionals stdenv.isDarwin [
+    libobjc
+    xpc
+    Foundation
+    bootstrap_cmds
+    Carbon
+    Cocoa
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  cmakeFlags = [
+    "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
+    "-DLLVM_ENABLE_RTTI=OFF"
+    "-DClang_DIR=${libclang.dev}/lib/cmake"
+    "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
+  ] ++ lib.optionals enableManpages [
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+  ] ++ lib.optionals doCheck [
+    "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
+    "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
+  ];
+
+  doCheck = false;
+
+  postInstall = ''
+    # Editor support
+    # vscode:
+    install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
+    mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+    ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
+  '';
+
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
+    description = "A next-generation high-performance debugger";
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
+  };
+} // lib.optionalAttrs enableManpages {
+  pname = "lldb-manpages";
+
+  buildPhase = ''
+    make docs-lldb-man
+  '';
+
+  propagatedBuildInputs = [];
+
+  # manually install lldb man page
+  installPhase = ''
+    mkdir -p $out/share/man/man1
+    install docs/man/lldb.1 -t $out/share/man/man1/
+  '';
+
+  postPatch = null;
+  postInstall = null;
+
+  outputs = [ "out" ];
+
+  doCheck = false;
+
+  meta = llvm_meta // {
+    description = "man pages for LLDB ${version}";
+  };
+})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/gnu-install-dirs.patch
new file mode 100644
index 000000000000..98321f4479e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/gnu-install-dirs.patch
@@ -0,0 +1,65 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b5633e21c56a..f2f1035e9238 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,6 +10,8 @@ set(CMAKE_MODULE_PATH
+ # If we are not building as part of LLVM, build LLDB as a standalone project,
+ # using LLVM as an external library.
+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
++  include(GNUInstallDirs)
++
+   project(lldb)
+   include(LLDBStandalone)
+ 
+diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
+index 4ed5c647c5d2..89f96e710d55 100644
+--- a/cmake/modules/AddLLDB.cmake
++++ b/cmake/modules/AddLLDB.cmake
+@@ -107,13 +107,13 @@ function(add_lldb_library name)
+   endif()
+ 
+   if(PARAM_SHARED)
+-    set(install_dest lib${LLVM_LIBDIR_SUFFIX})
++    set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+     if(PARAM_INSTALL_PREFIX)
+       set(install_dest ${PARAM_INSTALL_PREFIX})
+     endif()
+     # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
+     install(TARGETS ${name} COMPONENT ${name}
+-      RUNTIME DESTINATION bin
++      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       LIBRARY DESTINATION ${install_dest}
+       ARCHIVE DESTINATION ${install_dest}
+       FRAMEWORK DESTINATION ${install_dest})
+diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
+index 2fdf1502d055..37364341ff8b 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -225,7 +225,7 @@ include_directories(BEFORE
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".cmake" EXCLUDE
+@@ -233,7 +233,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
+     COMPONENT lldb-headers
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN ".cmake" EXCLUDE
+diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
+index 734167e51bc5..f95761b5df58 100644
+--- a/tools/intel-features/CMakeLists.txt
++++ b/tools/intel-features/CMakeLists.txt
+@@ -65,4 +65,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
+ endif()
+ 
+ install(TARGETS lldbIntelFeatures
+-  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/lldb/procfs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/procfs.patch
new file mode 100644
index 000000000000..b075dbaeee0a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/procfs.patch
@@ -0,0 +1,31 @@
+--- a/source/Plugins/Process/Linux/Procfs.h
++++ b/source/Plugins/Process/Linux/Procfs.h
+@@ -11,21 +11,12 @@
+ // sys/procfs.h on Android/Linux for all supported architectures.
+ 
+ #include <sys/ptrace.h>
++#include <asm/ptrace.h>
+ 
+-#ifdef __ANDROID__
+-#if defined(__arm64__) || defined(__aarch64__)
+-typedef unsigned long elf_greg_t;
+-typedef elf_greg_t
+-    elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
+-typedef struct user_fpsimd_state elf_fpregset_t;
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#elif defined(__mips__)
+-#ifndef NT_FPREGSET
+-#define NT_FPREGSET NT_PRFPREG
+-#endif // NT_FPREGSET
+-#endif
+-#else // __ANDROID__
++#if !defined(__GLIBC__) && defined(__powerpc__)
++#define pt_regs musl_pt_regs
++#include <sys/procfs.h>
++#undef pt_regs
++#else
+ #include <sys/procfs.h>
+-#endif // __ANDROID__
++#endif
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/lldb/resource-dir.patch b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/resource-dir.patch
new file mode 100644
index 000000000000..e0db80afeb9f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/lldb/resource-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake
+index 37364341ff8b..7f74c1a3e257 100644
+--- a/cmake/modules/LLDBConfig.cmake
++++ b/cmake/modules/LLDBConfig.cmake
+@@ -257,7 +257,7 @@ if (NOT TARGET clang-resource-headers)
+   # Iterate over the possible places where the external resource directory
+   # could be and pick the first that exists.
+   foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}"
+-                    "${LLVM_BUILD_LIBRARY_DIR}"
++                    "${LLVM_BUILD_LIBRARY_DIR}" "@clangLibDir@"
+                     "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
+     # Build the resource directory path by appending 'clang/<version number>'.
+     set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix
new file mode 100644
index 000000000000..f65476a6fddd
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix
@@ -0,0 +1,220 @@
+{ lib, stdenv, llvm_meta
+, pkgsBuildBuild
+, src
+, fetchpatch
+, cmake
+, python3
+, libffi
+, libbfd
+, libpfm
+, libxml2
+, ncurses
+, version
+, release_version
+, zlib
+, buildLlvmTools
+, debugVersion ? false
+, enableManpages ? false
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
+, enablePFM ? !(stdenv.isDarwin
+  || stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
+  || stdenv.isAarch32 # broken for the armv7l builder
+)
+, enablePolly ? false
+}:
+
+let
+  inherit (lib) optional optionals optionalString;
+
+  # Used when creating a version-suffixed symlink of libLLVM.dylib
+  shortVersion = with lib;
+    concatStringsSep "." (take 1 (splitString "." release_version));
+
+in stdenv.mkDerivation (rec {
+  pname = "llvm";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/${pname}";
+
+  outputs = [ "out" "lib" "dev" "python" ];
+
+  nativeBuildInputs = [ cmake python3 ]
+    ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
+
+  buildInputs = [ libxml2 libffi ]
+    ++ optional enablePFM libpfm; # exegesis
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  patches = [
+    ./gnu-install-dirs.patch
+    # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
+    (fetchpatch {
+      name = "uops-CMOV16rm-noreg.diff";
+      url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
+      sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
+      stripLen = 1;
+    })
+  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+
+  postPatch = optionalString stdenv.isDarwin ''
+    substituteInPlace cmake/modules/AddLLVM.cmake \
+      --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
+      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
+  ''
+  # Patch llvm-config to return correct library path based on --link-{shared,static}.
+  + optionalString (enableSharedLibraries) ''
+    substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
+    patch -p1 < ./outputs.patch
+  '' + ''
+    # FileSystem permissions tests fail with various special bits
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "Path.cpp" ""
+    rm unittests/Support/Path.cpp
+    substituteInPlace unittests/IR/CMakeLists.txt \
+      --replace "PassBuilderCallbacksTest.cpp" ""
+    rm unittests/IR/PassBuilderCallbacksTest.cpp
+  '' + optionalString stdenv.hostPlatform.isMusl ''
+    patch -p1 -i ${../../TLI-musl.patch}
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "add_subdirectory(DynamicLibrary)" ""
+    rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+    # valgrind unhappy with musl or glibc, but fails w/musl only
+    rm test/CodeGen/AArch64/wineh4.mir
+  '' + optionalString stdenv.hostPlatform.isAarch32 ''
+    # skip failing X86 test cases on 32-bit ARM
+    rm test/DebugInfo/X86/convert-debugloc.ll
+    rm test/DebugInfo/X86/convert-inlined.ll
+    rm test/DebugInfo/X86/convert-linked.ll
+    rm test/tools/dsymutil/X86/op-convert.test
+  '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
+    # Seems to require certain floating point hardware (NEON?)
+    rm test/ExecutionEngine/frem.ll
+  '' + ''
+    patchShebangs test/BugPoint/compile-custom.ll.py
+  '';
+
+  # hacky fix: created binaries need to be run before installation
+  preBuild = ''
+    mkdir -p $out/
+    ln -sv $PWD/lib $out
+  '';
+
+  # E.g. mesa.drivers use the build-id as a cache key (see #93946):
+  LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
+
+  cmakeFlags = with stdenv; [
+    "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+    "-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
+    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
+    "-DLLVM_BUILD_TESTS=ON"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_ENABLE_RTTI=ON"
+    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
+    "-DLLVM_ENABLE_DUMP=ON"
+  ] ++ optionals enableSharedLibraries [
+    "-DLLVM_LINK_LLVM_DYLIB=ON"
+  ] ++ optionals enableManpages [
+    "-DLLVM_BUILD_DOCS=ON"
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_OUTPUT_HTML=OFF"
+    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+  ] ++ optionals (!isDarwin) [
+    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
+  ] ++ optionals isDarwin [
+    "-DLLVM_ENABLE_LIBCXX=ON"
+    "-DCAN_TARGET_i386=false"
+  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DCMAKE_CROSSCOMPILING=True"
+    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    (
+      let
+        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
+        nativeBintools = nativeCC.bintools.bintools;
+        nativeToolchainFlags = [
+          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+        ];
+      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+    )
+  ];
+
+  postBuild = ''
+    rm -fR $out
+  '';
+
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
+  '';
+
+  postInstall = ''
+    mkdir -p $python/share
+    mv $out/share/opt-viewer $python/share/opt-viewer
+    moveToOutput "bin/llvm-config*" "$dev"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
+      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
+    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
+      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
+  ''
+  + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
+    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
+    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+  ''
+  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
+  '';
+
+  doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
+
+  checkTarget = "check-all";
+
+  requiredSystemFeatures = [ "big-parallel" ];
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
+  };
+} // lib.optionalAttrs enableManpages {
+  pname = "llvm-manpages";
+
+  buildPhase = ''
+    make docs-llvm-man
+  '';
+
+  propagatedBuildInputs = [];
+
+  installPhase = ''
+    make -C docs install
+  '';
+
+  postPatch = null;
+  postInstall = null;
+
+  outputs = [ "out" ];
+
+  doCheck = false;
+
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
+})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch
new file mode 100644
index 000000000000..68f3c45396f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch
@@ -0,0 +1,105 @@
+diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
+index ca7c04c565bb..6ed5db5dd4f8 100644
+--- a/tools/polly/CMakeLists.txt
++++ b/tools/polly/CMakeLists.txt
+@@ -2,7 +2,11 @@
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+   cmake_minimum_required(VERSION 3.13.4)
++endif()
++
++include(GNUInstallDirs)
+ 
++if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   # Where is LLVM installed?
+   find_package(LLVM CONFIG REQUIRED)
+   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+@@ -122,13 +126,13 @@ include_directories(
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     )
+ 
+   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     FILES_MATCHING
+     PATTERN "*.h"
+     PATTERN "CMakeFiles" EXCLUDE
+diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
+index 7cc129ba2e90..137be25e4b80 100644
+--- a/tools/polly/cmake/CMakeLists.txt
++++ b/tools/polly/cmake/CMakeLists.txt
+@@ -79,18 +79,18 @@ file(GENERATE
+ 
+ # Generate PollyConfig.cmake for the install tree.
+ unset(POLLY_EXPORTS)
+-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
++set(POLLY_INSTALL_PREFIX "")
+ set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
+-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
++set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
++set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+ if (POLLY_BUNDLED_ISL)
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
+-    "${POLLY_INSTALL_PREFIX}/include/polly"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
+     )
+ else()
+   set(POLLY_CONFIG_INCLUDE_DIRS
+-    "${POLLY_INSTALL_PREFIX}/include"
++    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
+     ${ISL_INCLUDE_DIRS}
+     )
+ endif()
+@@ -100,12 +100,12 @@ endif()
+ foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
+   get_target_property(tgt_type ${tgt} TYPE)
+   if (tgt_type STREQUAL "EXECUTABLE")
+-    set(tgt_prefix "bin/")
++    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
+   else()
+-    set(tgt_prefix "lib/")
++    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
+   endif()
+ 
+-  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
++  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
+   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
+ 
+   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
+diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
+index 518a09b45a42..bd9d6f5542ad 100644
+--- a/tools/polly/cmake/polly_macros.cmake
++++ b/tools/polly/cmake/polly_macros.cmake
+@@ -44,8 +44,8 @@ macro(add_polly_library name)
+   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+     install(TARGETS ${name}
+       EXPORT LLVMExports
+-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
++	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
++      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   endif()
+   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+ endmacro(add_polly_library)
+diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
+index 8991094d92c7..178d8ad606bb 100644
+--- a/tools/polly/lib/External/CMakeLists.txt
++++ b/tools/polly/lib/External/CMakeLists.txt
+@@ -275,7 +275,7 @@ if (POLLY_BUNDLED_ISL)
+     install(DIRECTORY
+       ${ISL_SOURCE_DIR}/include/
+       ${ISL_BINARY_DIR}/include/
+-      DESTINATION include/polly
++      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
+       FILES_MATCHING
+       PATTERN "*.h"
+       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
new file mode 100644
index 000000000000..da8dc1445171
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
@@ -0,0 +1,417 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 277d0fe54d7b..af69c8be8745 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -256,15 +256,21 @@ if (CMAKE_BUILD_TYPE AND
+   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+ endif()
+ 
++include(GNUInstallDirs)
++
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ 
+-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
++set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
++    "Path for binary subdirectory (defaults to 'bin')")
+ mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+ 
+ set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
+     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
+ mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
+ 
++set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
++	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
++
+ # They are used as destination of target generators.
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+@@ -567,9 +573,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
+ option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
+ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
+ 
+-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
++set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
+     CACHE STRING "Doxygen-generated HTML documentation install directory")
+-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
++set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
+     CACHE STRING "OCamldoc-generated HTML documentation install directory")
+ 
+ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
+@@ -1027,7 +1033,7 @@ endif()
+ 
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+   install(DIRECTORY include/llvm include/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1038,7 +1044,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+     )
+ 
+   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
+-    DESTINATION include
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+     COMPONENT llvm-headers
+     FILES_MATCHING
+     PATTERN "*.def"
+@@ -1052,13 +1058,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ 
+   if (LLVM_INSTALL_MODULEMAPS)
+     install(DIRECTORY include/llvm include/llvm-c
+-            DESTINATION include
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+             COMPONENT llvm-headers
+             FILES_MATCHING
+             PATTERN "module.modulemap"
+             )
+     install(FILES include/llvm/module.install.modulemap
+-            DESTINATION include/llvm
++            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
+             COMPONENT llvm-headers
+             RENAME "module.extern.modulemap"
+             )
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 97c9980c7de3..409e8b615f75 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -804,9 +804,9 @@ macro(add_llvm_library name)
+ 
+       install(TARGETS ${name}
+               ${export_to_llvmexports}
+-              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+-              RUNTIME DESTINATION bin COMPONENT ${name})
++              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
++              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name})
+ 
+       if (NOT LLVM_ENABLE_IDE)
+         add_llvm_install_targets(install-${name}
+@@ -1022,7 +1022,7 @@ function(process_llvm_pass_plugins)
+           "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
+       install(FILES
+           ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
+-          DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
++          DESTINATION ${LLVM_INSTALL_CMAKE_DIR}
+           COMPONENT cmake-exports)
+ 
+       set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
+@@ -1242,7 +1242,7 @@ macro(add_llvm_example name)
+   endif()
+   add_llvm_executable(${name} ${ARGN})
+   if( LLVM_BUILD_EXAMPLES )
+-    install(TARGETS ${name} RUNTIME DESTINATION examples)
++    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   endif()
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endmacro(add_llvm_example name)
+@@ -1854,7 +1854,7 @@ function(llvm_install_library_symlink name dest type)
+   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
+   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
+ 
+-  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
++  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+   if(WIN32 AND "${type}" STREQUAL "SHARED")
+     set(output_dir bin)
+   endif()
+@@ -1871,7 +1871,7 @@ function(llvm_install_library_symlink name dest type)
+   endif()
+ endfunction()
+ 
+-function(llvm_install_symlink name dest)
++function(llvm_install_symlink name dest output_dir)
+   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
+   foreach(path ${CMAKE_MODULE_PATH})
+     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+@@ -1894,7 +1894,7 @@ function(llvm_install_symlink name dest)
+   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
+ 
+   install(SCRIPT ${INSTALL_SYMLINK}
+-          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
++          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
+           COMPONENT ${component})
+ 
+   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
+@@ -1977,7 +1977,8 @@ function(add_llvm_tool_symlink link_name target)
+     endif()
+ 
+     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
+-      llvm_install_symlink(${link_name} ${target})
++      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
++      llvm_install_symlink(${link_name} ${target} ${output_dir})
+     endif()
+   endif()
+ endfunction()
+@@ -2100,9 +2101,9 @@ function(llvm_setup_rpath name)
+ 
+   if (APPLE)
+     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+   elseif(UNIX)
+-    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
++    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
+       set_property(TARGET ${name} APPEND_STRING PROPERTY
+                    LINK_FLAGS " -Wl,-z,origin ")
+diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
+index 554046b20edf..4d1ad980641e 100644
+--- a/cmake/modules/AddOCaml.cmake
++++ b/cmake/modules/AddOCaml.cmake
+@@ -144,9 +144,9 @@ function(add_ocaml_library name)
+   endforeach()
+ 
+   if( APPLE )
+-    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   elseif( UNIX )
+-    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
++    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
+   endif()
+   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
+ 
+diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
+index e80c3b5c1cac..482f6d715ef5 100644
+--- a/cmake/modules/AddSphinxTarget.cmake
++++ b/cmake/modules/AddSphinxTarget.cmake
+@@ -90,7 +90,7 @@ function (add_sphinx_target builder project)
+         endif()
+       elseif (builder STREQUAL html)
+         string(TOUPPER "${project}" project_upper)
+-        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
++        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
+             CACHE STRING "HTML documentation install directory for ${project}")
+ 
+         # '/.' indicates: copy the contents of the directory directly into
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index 505dc9a29d70..36e6c63af3f4 100644
+--- a/cmake/modules/CMakeLists.txt
++++ b/cmake/modules/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
++set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
+ 
+ # First for users who use an installed LLVM, create the LLVMExports.cmake file.
+@@ -107,13 +107,13 @@ foreach(p ${_count})
+   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
+ endforeach(p)
+-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
++set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+ set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
+-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
++set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
+ set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
+ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
+-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
++set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+ 
+ # Generate a default location for lit
+ if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
+diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
+index 09fed8085c23..aa79f192abf0 100644
+--- a/cmake/modules/LLVMInstallSymlink.cmake
++++ b/cmake/modules/LLVMInstallSymlink.cmake
+@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
+     set(LINK_OR_COPY copy)
+   endif()
+ 
+-  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
++  set(bindir "${DESTDIR}${outdir}/")
+ 
+   message(STATUS "Creating ${name}")
+ 
+diff --git a/docs/CMake.rst b/docs/CMake.rst
+index bb821b417ad9..6a528f7c2ad3 100644
+--- a/docs/CMake.rst
++++ b/docs/CMake.rst
+@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
+ **LLVM_LIBDIR_SUFFIX**:STRING
+   Extra suffix to append to the directory where libraries are to be
+   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
+-  to install libraries to ``/usr/lib64``.
++  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
+ 
+ **CMAKE_C_FLAGS**:STRING
+   Extra flags to use when compiling C source files.
+@@ -550,8 +550,8 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
+   The path to install Doxygen-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/doxygen-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
+ 
+ **LLVM_ENABLE_SPHINX**:BOOL
+   If specified, CMake will search for the ``sphinx-build`` executable and will make
+@@ -582,13 +582,33 @@ LLVM-specific variables
+ 
+ **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
+   The path to install Sphinx-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
+ 
+ **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
+   The path to install OCamldoc-generated HTML documentation to. This path can
+-  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
+-  `share/doc/llvm/ocaml-html`.
++  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
++  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
++
++**CMAKE_INSTALL_BINDIR**:STRING
++  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `bin`.
++
++**CMAKE_INSTALL_LIBDIR**:STRING
++  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `lib`.
++
++**CMAKE_INSTALL_INCLUDEDIR**:STRING
++  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `include`.
++
++**CMAKE_INSTALL_DOCDIR**:STRING
++  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/doc`.
++
++**CMAKE_INSTALL_MANDIR**:STRING
++  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
++  Defaults to `share/man`.
+ 
+ **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
+   macOS Only: If enabled CMake will generate a target named
+@@ -786,9 +806,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
+ 
+ This file is available in two different locations.
+ 
+-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
+-  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
+-  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
++* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
++  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
++  installed as part of an installed version of LLVM. This is typically
++  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
++  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
+ 
+ * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
+   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
+diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt
+index bb96edb4b4bf..678c22fb43c8 100644
+--- a/examples/Bye/CMakeLists.txt
++++ b/examples/Bye/CMakeLists.txt
+@@ -14,6 +14,6 @@ if (NOT WIN32)
+     BUILDTREE_ONLY
+    )
+ 
+-  install(TARGETS ${name} RUNTIME DESTINATION examples)
++  install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
+   set_target_properties(${name} PROPERTIES FOLDER "Examples")
+ endif()
+diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
+index b46319f24fc8..2feabd1954e4 100644
+--- a/include/llvm/CMakeLists.txt
++++ b/include/llvm/CMakeLists.txt
+@@ -5,5 +5,5 @@ add_subdirectory(Frontend)
+ # If we're doing an out-of-tree build, copy a module map for generated
+ # header files into the build area.
+ if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+-  configure_file(module.modulemap.build module.modulemap COPYONLY)
++  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
+ endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index ebe5b73a5c65..70c497be12f5 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -23,6 +23,10 @@
+ #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
++#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
++#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
++#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
++#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+ #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 1a2f04552d13..44fa7d3eec6b 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -357,12 +357,26 @@ int main(int argc, char **argv) {
+         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+   } else {
+     ActivePrefix = CurrentExecPrefix;
+-    ActiveIncludeDir = ActivePrefix + "/include";
+-    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+-    sys::fs::make_absolute(ActivePrefix, path);
+-    ActiveBinDir = std::string(path.str());
+-    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+-    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveIncludeDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveBinDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveLibDir = std::string(path.str());
++    }
++    {
++      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
++      sys::fs::make_absolute(ActivePrefix, path);
++      ActiveCMakeDir = std::string(path.str());
++    }
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
+diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
+index 2963f97cad88..69d66c9c9ca1 100644
+--- a/tools/lto/CMakeLists.txt
++++ b/tools/lto/CMakeLists.txt
+@@ -25,7 +25,7 @@ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS
+     intrinsics_gen)
+ 
+ install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+-  DESTINATION include/llvm-c
++  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+   COMPONENT LTO)
+ 
+ if (APPLE)
+diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
+index ead73ec13a8f..250362021f17 100644
+--- a/tools/opt-viewer/CMakeLists.txt
++++ b/tools/opt-viewer/CMakeLists.txt
+@@ -8,7 +8,7 @@ set (files
+ 
+ foreach (file ${files})
+   install(PROGRAMS ${file}
+-    DESTINATION share/opt-viewer
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
+     COMPONENT opt-viewer)
+ endforeach (file)
+ 
+diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
+index 865436247270..ce1daa62f6ab 100644
+--- a/tools/remarks-shlib/CMakeLists.txt
++++ b/tools/remarks-shlib/CMakeLists.txt
+@@ -19,7 +19,7 @@ if(LLVM_ENABLE_PIC)
+   endif()
+   
+   install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
+-    DESTINATION include/llvm-c
++    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
+     COMPONENT Remarks)
+ 
+   if (APPLE)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/outputs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/outputs.patch
new file mode 100644
index 000000000000..40096fa3497f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/outputs.patch
@@ -0,0 +1,26 @@
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 94d426b..37f7794 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -333,6 +333,21 @@ int main(int argc, char **argv) {
+     ActiveIncludeOption = "-I" + ActiveIncludeDir;
+   }
+ 
++  /// Nix-specific multiple-output handling: override ActiveLibDir if --link-shared
++  if (!IsInDevelopmentTree) {
++    bool WantShared = true;
++    for (int i = 1; i < argc; ++i) {
++      StringRef Arg = argv[i];
++      if (Arg == "--link-shared")
++        WantShared = true;
++      else if (Arg == "--link-static")
++        WantShared = false; // the last one wins
++    }
++
++    if (WantShared)
++      ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
++  }
++
+   /// We only use `shared library` mode in cases where the static library form
+   /// of the components provided are not available; note however that this is
+   /// skipped if we're run from within the build dir. However, once installed,
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/openmp/default.nix
new file mode 100644
index 000000000000..07488c1c33f4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/openmp/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, llvm_meta
+, src
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  inherit src;
+  sourceRoot = "source/${pname}";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix
index 6a11ded0529a..581d05746718 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/rocm/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, callPackage, wrapCCWith }:
+{ lib, buildPackages, fetchFromGitHub, callPackage, wrapCCWith }:
 
 let
   version = "4.1.0";
@@ -15,7 +15,7 @@ in rec {
       clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc}/lib/clang/$clang_version/include" "$rsrc"
+      ln -s "${lib.getLib cc}/lib/clang/$clang_version/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
       echo "-Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
       rm $out/nix-support/add-hardening.sh
@@ -31,6 +31,7 @@ in rec {
   lld = callPackage ./lld {
     inherit llvm version;
     src = "${src}/lld";
+    buildLlvmTools = buildPackages.llvmPackages_rocm;
   };
 
   llvm = callPackage ./llvm {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/rocm/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/rocm/lld/default.nix
index a6e993bb203f..ef60747b0138 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/rocm/lld/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/rocm/lld/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv
+, buildLlvmTools
 , cmake
 , libxml2
 , llvm
@@ -13,12 +14,17 @@ stdenv.mkDerivation rec {
   pname = "lld";
 
   nativeBuildInputs = [ cmake ];
-
   buildInputs = [ libxml2 llvm ];
 
-  outputs = [ "out" "dev" ];
 
-  cmakeFlags = [ "-DLLVM_MAIN_SRC_DIR=${llvm.src}" ];
+  cmakeFlags = [
+    "-DLLVM_MAIN_SRC_DIR=${llvm.src}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
+    "-DLLVM_CONFIG_PATH=${llvm.dev}/bin/llvm-config-native"
+  ];
+
+  outputs = [ "out" "dev" ];
 
   postInstall = ''
     moveToOutput include "$dev"
diff --git a/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix
index 62559bf13926..b3e8c06195ff 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/rocm/llvm/default.nix
@@ -9,7 +9,7 @@
 , zlib
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? true
+, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
 
 , version
 , src
diff --git a/nixpkgs/pkgs/development/compilers/llvm/update-git.py b/nixpkgs/pkgs/development/compilers/llvm/update-git.py
new file mode 100755
index 000000000000..ec1a30c6b0ff
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/llvm/update-git.py
@@ -0,0 +1,70 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python3 -p python3 nix
+
+import csv
+import fileinput
+import json
+import os
+import re
+import subprocess
+
+from codecs import iterdecode
+from datetime import datetime
+from urllib.request import urlopen, Request
+
+
+def get_latest_chromium_build():
+    HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
+    print(f'GET {HISTORY_URL}')
+    with urlopen(HISTORY_URL) as resp:
+        builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+        for build in builds:
+            if build['channel'] != 'dev':
+                continue
+            return build
+
+
+def get_file_revision(revision, file_path):
+    """Fetches the requested Git revision of the given Chromium file."""
+    url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}'
+    with urlopen(url) as http_response:
+        return http_response.read().decode()
+
+
+def get_commit(ref):
+    url = f'https://api.github.com/repos/llvm/llvm-project/commits/{ref}'
+    headers = {'Accept': 'application/vnd.github.v3+json'}
+    request = Request(url, headers=headers)
+    with urlopen(request) as http_response:
+        return json.loads(http_response.read().decode())
+
+
+def nix_prefetch_url(url, algo='sha256'):
+    """Prefetches the content of the given URL."""
+    print(f'nix-prefetch-url {url}')
+    out = subprocess.check_output(['nix-prefetch-url', '--type', algo, '--unpack', url])
+    return out.decode('utf-8').rstrip()
+
+
+chromium_build = get_latest_chromium_build()
+chromium_version = chromium_build['version']
+print(f'chromiumDev version: {chromium_version}')
+print('Getting LLVM commit...')
+clang_update_script = get_file_revision(chromium_version, 'tools/clang/scripts/update.py')
+clang_revision = re.search(r"^CLANG_REVISION = '(.+)'$", clang_update_script, re.MULTILINE).group(1)
+clang_commit_short = re.search(r"llvmorg-[0-9]+-init-[0-9]+-g([0-9a-f]{8})", clang_revision).group(1)
+release_version = re.search(r"^RELEASE_VERSION = '(.+)'$", clang_update_script, re.MULTILINE).group(1)
+commit = get_commit(clang_commit_short)
+date = datetime.fromisoformat(commit['commit']['committer']['date'].rstrip('Z')).date().isoformat()
+version = f'unstable-{date}'
+print('Prefetching source tarball...')
+hash = nix_prefetch_url(f'https://github.com/llvm/llvm-project/archive/{commit["sha"]}.tar.gz')
+print('Updating default.nix...')
+default_nix = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'git/default.nix')
+with fileinput.FileInput(default_nix, inplace=True) as f:
+    for line in f:
+        result = re.sub(r'^  release_version = ".+";', f'  release_version = "{release_version}";', line)
+        result = re.sub(r'^  version = ".+";', f'  version = "{version}";', result)
+        result = re.sub(r'^  rev = ".*";', f'  rev = "{commit["sha"]}";', result)
+        result = re.sub(r'^    sha256 = ".+";', f'    sha256 = "{hash}";', result)
+        print(result, end='')
diff --git a/nixpkgs/pkgs/development/compilers/mezzo/default.nix b/nixpkgs/pkgs/development/compilers/mezzo/default.nix
index 4c535be4d494..1710fb986ead 100644
--- a/nixpkgs/pkgs/development/compilers/mezzo/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mezzo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir, yojson, ulex, pprint, fix, functory }:
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir, menhirLib, yojson, ulex, pprint, fix, functory }:
 
 if lib.versionAtLeast ocaml.version "4.06"
 then throw "mezzo is not available for OCaml ${ocaml.version}"
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     sha256 = "0yck5r6di0935s3iy2mm9538jkf77ssr789qb06ms7sivd7g3ip6";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild yojson menhir ulex pprint fix functory ];
+  buildInputs = [ ocaml findlib ocamlbuild yojson menhir menhirLib ulex pprint fix functory ];
 
   # Sets warning 3 as non-fatal
   prePatch = lib.optionalString (check-ocaml-version "4.02") ''
diff --git a/nixpkgs/pkgs/development/compilers/mono/5.nix b/nixpkgs/pkgs/development/compilers/mono/5.nix
index 0ecb362acb4d..c49379c670e0 100644
--- a/nixpkgs/pkgs/development/compilers/mono/5.nix
+++ b/nixpkgs/pkgs/development/compilers/mono/5.nix
@@ -2,7 +2,7 @@
 
 callPackage ./generic.nix ({
   inherit Foundation libobjc;
-  version = "5.20.1.27";
-  sha256 = "15rpwxw642ad1na93k5nj7d2lb24f21kncr924gxr00178a9x0jy";
+  version = "5.20.1.34";
+  sha256 = "12vw5dkhmp1vk9l658pil8jiqirkpdsc5z8dm5mpj595yr6d94fd";
   enableParallelBuilding = true;
 })
diff --git a/nixpkgs/pkgs/development/compilers/mrustc/bootstrap.nix b/nixpkgs/pkgs/development/compilers/mrustc/bootstrap.nix
index 35e7daaf2103..85b328848b1f 100644
--- a/nixpkgs/pkgs/development/compilers/mrustc/bootstrap.nix
+++ b/nixpkgs/pkgs/development/compilers/mrustc/bootstrap.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
     # Use shared mrustc/minicargo/llvm instead of rebuilding them
     "MRUSTC=${mrustc}/bin/mrustc"
     "MINICARGO=${mrustc-minicargo}/bin/minicargo"
-    "LLVM_CONFIG=${llvm_7}/bin/llvm-config"
+    "LLVM_CONFIG=${llvm_7.dev}/bin/llvm-config"
     "RUSTC_TARGET=${rust.toRustTarget stdenv.targetPlatform}"
   ];
 
diff --git a/nixpkgs/pkgs/development/compilers/nim/default.nix b/nixpkgs/pkgs/development/compilers/nim/default.nix
index 676e35b06bb4..21d1017a6753 100644
--- a/nixpkgs/pkgs/development/compilers/nim/default.nix
+++ b/nixpkgs/pkgs/development/compilers/nim/default.nix
@@ -95,12 +95,12 @@ in {
 
   nim-unwrapped = stdenv.mkDerivation rec {
     pname = "nim-unwrapped";
-    version = "1.4.4";
+    version = "1.4.6";
     strictDeps = true;
 
     src = fetchurl {
       url = "https://nim-lang.org/download/nim-${version}.tar.xz";
-      sha256 = "03k642nnjca0s6jlbn1v4jld51mbkix97jli4ky74gqlxyfp4wvd";
+      hash = "sha256-D7wPkoLP/oXembxHv6h2Ulud3aKi6uVcGFoIgEuY070=";
     };
 
     buildInputs = [ boehmgc openssl pcre readline sqlite ];
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/11.nix b/nixpkgs/pkgs/development/compilers/openjdk/11.nix
index f9dd7205659e..ef593422ff26 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/11.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/11.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, bash, pkg-config, autoconf, cpio, file, which, unzip
-, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
+, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
 , libXcursor, libXrandr, fontconfig, openjdk11-bootstrap
 , setJavaClassPath
@@ -27,7 +27,7 @@ let
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk11-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -142,6 +142,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo asbachb ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/12.nix b/nixpkgs/pkgs/development/compilers/openjdk/12.nix
index 8c12b5be7f2e..66aeff306e38 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/12.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/12.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip
-, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
+, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
 , libXcursor, libXrandr, fontconfig, openjdk11, fetchpatch
 , setJavaClassPath
@@ -24,7 +24,7 @@ let
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk11
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -151,6 +151,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/13.nix b/nixpkgs/pkgs/development/compilers/openjdk/13.nix
index 7e4d9fc7d693..96a567895d6a 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/13.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/13.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip
-, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
+, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
 , libXcursor, libXrandr, fontconfig, openjdk13-bootstrap, fetchpatch
 , setJavaClassPath
@@ -24,7 +24,7 @@ let
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk13-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -151,6 +151,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/14.nix b/nixpkgs/pkgs/development/compilers/openjdk/14.nix
index d98d0e9f8ee6..fae27b8ca754 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/14.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/14.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip
-, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
+, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
 , libXcursor, libXrandr, fontconfig, openjdk14-bootstrap
 , setJavaClassPath
@@ -24,7 +24,7 @@ let
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk14-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -147,6 +147,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/15.nix b/nixpkgs/pkgs/development/compilers/openjdk/15.nix
index ddd523ad7871..11333b1ef66a 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/15.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/15.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip
-, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
+, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
 , libXcursor, libXrandr, fontconfig, openjdk15-bootstrap
 , setJavaClassPath
@@ -22,9 +22,9 @@ let
       sha256 = "1h8n5figc9q0k9p8b0qggyhvqagvxanfih1lj5j492c74cd1mx1l";
     };
 
-    nativeBuildInputs = [ pkg-config autoconf ];
+    nativeBuildInputs = [ pkg-config autoconf unzip zip file which ];
     buildInputs = [
-      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio perl zlib cups freetype alsa-lib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk15-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -147,6 +147,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/16.nix b/nixpkgs/pkgs/development/compilers/openjdk/16.nix
index e35369e75c52..99033e8738c5 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/16.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/16.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchFromGitHub, bash, pkg-config, autoconf, cpio
-, file, which, unzip, zip, perl, cups, freetype, alsaLib, libjpeg, giflib
+, file, which, unzip, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib
 , libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst
 , libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk16-bootstrap
 , setJavaClassPath
@@ -28,7 +28,7 @@ let
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
     buildInputs = [
-      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk16-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -153,6 +153,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/8.nix b/nixpkgs/pkgs/development/compilers/openjdk/8.nix
index 75dc722b1b22..7a69038d5e0a 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/8.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/8.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, pkg-config, lndir, bash, cpio, file, which, unzip, zip
-, cups, freetype, alsaLib, cacert, perl, liberation_ttf, fontconfig, zlib
+, cups, freetype, alsa-lib, cacert, perl, liberation_ttf, fontconfig, zlib
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr
 , libjpeg, giflib
 , openjdk8-bootstrap
@@ -85,7 +85,7 @@ let
 
     nativeBuildInputs = [ pkg-config lndir unzip ];
     buildInputs = [
-      cpio file which zip perl openjdk8-bootstrap zlib cups freetype alsaLib
+      cpio file which zip perl openjdk8-bootstrap zlib cups freetype alsa-lib
       libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -106,6 +106,7 @@ let
       ./fix-java-home-jdk8.patch
       ./read-truststore-from-env-jdk8.patch
       ./currency-date-range-jdk8.patch
+      ./fix-library-path-jdk8.patch
     ] ++ lib.optionals (!headless && enableGnome2) [
       ./swing-use-gtk-jdk8.patch
     ];
@@ -262,6 +263,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix b/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix
index 6bcd79b274be..5dd979e5521a 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/darwin/11.nix
@@ -1,5 +1,23 @@
-{ lib, stdenv, fetchurl, unzip, setJavaClassPath, freetype }:
+{ lib, stdenv, fetchurl, unzip, setJavaClassPath }:
 let
+  # Details from https://www.azul.com/downloads/?version=java-11-lts&os=macos&package=jdk
+  # Note that the latest build may differ by platform
+  dist = {
+    x86_64-darwin = {
+      arch = "x64";
+      zuluVersion = "11.48.21";
+      jdkVersion = "11.0.11";
+      sha256 = "0v0n7h7i04pvna41wpdq2k9qiy70sbbqzqzvazfdvgm3gb22asw6";
+    };
+
+    aarch64-darwin = {
+      arch = "aarch64";
+      zuluVersion = "11.48.21";
+      jdkVersion = "11.0.11";
+      sha256 = "066whglrxx81c95grv2kxdbvyh32728ixhml2v44ildh549n4lhc";
+    };
+  }."${stdenv.hostPlatform.system}";
+
   jce-policies = fetchurl {
     # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK!
     url    = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
@@ -7,16 +25,16 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    name = "zulu11.43.21-ca-jdk11.0.9";
+    pname = "zulu${dist.zuluVersion}-ca-jdk";
+    version = dist.jdkVersion;
 
     src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
-      sha256 = "1j19fb5mwdkfn6y8wfsnvxsz6wfpcab4xv439fqssxy520n6q4zs";
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/";
+      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-ca-jdk${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
+      inherit (dist) sha256;
+      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
 
     nativeBuildInputs = [ unzip ];
-    buildInputs = [ freetype ];
 
     installPhase = ''
       mkdir -p $out
@@ -41,8 +59,6 @@ let
       mkdir -p $out/nix-support
       printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
-      install_name_tool -change /usr/X11/lib/libfreetype.6.dylib ${freetype}/lib/libfreetype.6.dylib $out/lib/libfontmanager.dylib
-
       # Set JAVA_HOME automatically.
       cat <<EOF >> $out/nix-support/setup-hook
       if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix b/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix
index a5cd15817e9a..0941aa728ead 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/darwin/8.nix
@@ -1,25 +1,43 @@
-{ lib, stdenv, fetchurl, unzip, setJavaClassPath, freetype }:
+{ lib, stdenv, fetchurl, unzip, setJavaClassPath }:
 let
+  # Details from https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk
+  # Note that the latest build may differ by platform
+  dist = {
+    x86_64-darwin = {
+      arch = "x64";
+      zuluVersion = "8.54.0.21";
+      jdkVersion = "8.0.292";
+      sha256 = "1pgl0bir4r5v349gkxk54k6v62w241q7vw4gjxhv2g6pfq6hv7in";
+    };
+
+    aarch64-darwin = {
+      arch = "aarch64";
+      zuluVersion = "8.54.0.21";
+      jdkVersion = "8.0.292";
+      sha256 = "05w89wfjlfbpqfjnv6wisxmaf13qb28b2223f9264jyx30qszw1c";
+    };
+  }."${stdenv.hostPlatform.system}";
+
   jce-policies = fetchurl {
     # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK!
     url    = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
     sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
   };
 
-  jdk = stdenv.mkDerivation {
+  jdk = stdenv.mkDerivation rec {
     # @hlolli: Later version than 1.8.0_202 throws error when building jvmci.
     # dyld: lazy symbol binding failed: Symbol not found: _JVM_BeforeHalt
     # Referenced from: ../libjava.dylib Expected in: .../libjvm.dylib
-    name = "zulu1.8.0_202-8.36.0.1";
+    pname = "zulu${dist.zuluVersion}-ca-jdk";
+    version = dist.jdkVersion;
 
     src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu8.36.0.1-ca-jdk8.0.202-macosx_x64.zip";
-      sha256 = "0s92l1wlf02vjx8dvrsla2kq7qwxnmgh325b38mgqy872016jm9p";
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-linux/";
+      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-ca-jdk${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
+      inherit (dist) sha256;
+      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
 
     nativeBuildInputs = [ unzip ];
-    buildInputs = [ freetype ];
 
     installPhase = ''
       mkdir -p $out
@@ -44,8 +62,6 @@ let
       mkdir -p $out/nix-support
       printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
-      install_name_tool -change /usr/X11/lib/libfreetype.6.dylib ${freetype}/lib/libfreetype.6.dylib $out/jre/lib/libfontmanager.dylib
-
       # Set JAVA_HOME automatically.
       cat <<EOF >> $out/nix-support/setup-hook
       if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix b/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix
index 731ff4d56de2..509d1ab55227 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/darwin/default.nix
@@ -1,5 +1,23 @@
-{ lib, stdenv, fetchurl, unzip, setJavaClassPath, freetype }:
+{ lib, stdenv, fetchurl, unzip, setJavaClassPath }:
 let
+  # Details from https://www.azul.com/downloads/?version=java-16-sts&os=macos&package=jdk
+  # Note that the latest build may differ by platform
+  dist = {
+    x86_64-darwin = {
+      arch = "x64";
+      zuluVersion = "16.30.15";
+      jdkVersion = "16.0.1";
+      sha256 = "1jihn125dmxr9y5h9jq89zywm3z6rbwv5q7msfzsf2wzrr13jh0z";
+    };
+
+    aarch64-darwin = {
+      arch = "aarch64";
+      zuluVersion = "16.30.19";
+      jdkVersion = "16.0.1";
+      sha256 = "1i0bcjx3acb5dhslf6cabdcnd6mrz9728vxw9hb4al5y3f5fll4w";
+    };
+  }."${stdenv.hostPlatform.system}";
+
   jce-policies = fetchurl {
     # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK!
     url    = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
@@ -7,17 +25,16 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    pname = "zulu16.28.11-ca-jdk";
-    version = "16.0.0";
+    pname = "zulu${dist.zuluVersion}-ca-jdk";
+    version = dist.jdkVersion;
 
     src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/${pname}${version}-macosx_x64.tar.gz";
-      sha256 = "6d47ef22dc56ce1f5a102ed39e21d9a97320f0bb786818e2c686393109d79bc5";
+      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-ca-jdk${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
+      inherit (dist) sha256;
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
 
     nativeBuildInputs = [ unzip ];
-    buildInputs = [ freetype ];
 
     installPhase = ''
       mkdir -p $out
@@ -42,8 +59,6 @@ let
       mkdir -p $out/nix-support
       printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
 
-      install_name_tool -change /usr/X11/lib/libfreetype.6.dylib ${freetype}/lib/libfreetype.6.dylib $out/lib/libfontmanager.dylib
-
       # Set JAVA_HOME automatically.
       cat <<EOF >> $out/nix-support/setup-hook
       if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/fix-library-path-jdk8.patch b/nixpkgs/pkgs/development/compilers/openjdk/fix-library-path-jdk8.patch
new file mode 100644
index 000000000000..3780e95ea5b6
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/openjdk/fix-library-path-jdk8.patch
@@ -0,0 +1,37 @@
+diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
+index c477851c1b..ff5e28d95b 100644
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -368,13 +368,13 @@ void os::init_system_properties_values() {
+ //        ...
+ //        7: The default directories, normally /lib and /usr/lib.
+ #if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390))
+-#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib"
++#define DEFAULT_LIBPATH ""
+ #else
+-#define DEFAULT_LIBPATH "/lib:/usr/lib"
++#define DEFAULT_LIBPATH ""
+ #endif
+ 
+ // Base path of extensions installed on the system.
+-#define SYS_EXT_DIR     "/usr/java/packages"
++#define SYS_EXT_DIR     ""
+ #define EXTENSIONS_DIR  "/lib/ext"
+ #define ENDORSED_DIR    "/lib/endorsed"
+ 
+@@ -437,13 +437,13 @@ void os::init_system_properties_values() {
+                                                      strlen(v) + 1 +
+                                                      sizeof(SYS_EXT_DIR) + sizeof("/lib/") + strlen(cpu_arch) + sizeof(DEFAULT_LIBPATH) + 1,
+                                                      mtInternal);
+-    sprintf(ld_library_path, "%s%s" SYS_EXT_DIR "/lib/%s:" DEFAULT_LIBPATH, v, v_colon, cpu_arch);
++    sprintf(ld_library_path, "%s", v);
+     Arguments::set_library_path(ld_library_path);
+     FREE_C_HEAP_ARRAY(char, ld_library_path, mtInternal);
+   }
+ 
+   // Extensions directories.
+-  sprintf(buf, "%s" EXTENSIONS_DIR ":" SYS_EXT_DIR EXTENSIONS_DIR, Arguments::get_java_home());
++  sprintf(buf, "%s" EXTENSIONS_DIR, Arguments::get_java_home());
+   Arguments::set_ext_dirs(buf);
+ 
+   // Endorsed standards default directory.
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/jre.nix b/nixpkgs/pkgs/development/compilers/openjdk/jre.nix
index 436bd0468c52..78dec7885d93 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/jre.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/jre.nix
@@ -1,6 +1,7 @@
 { stdenv
 , jdk
 , lib
+, callPackage
 , modules ? [ "java.base" ]
 }:
 
@@ -29,6 +30,10 @@ let
 
     passthru = {
       home = "${jre}";
+      tests = [
+        (callPackage ./tests/test_jre_minimal.nix {})
+        (callPackage ./tests/test_jre_minimal_with_logging.nix {})
+      ];
     };
   };
 in jre
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/jre_minimal_test1.nix b/nixpkgs/pkgs/development/compilers/openjdk/jre_minimal_test1.nix
new file mode 100644
index 000000000000..eebd11fb2fdf
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/openjdk/jre_minimal_test1.nix
@@ -0,0 +1,16 @@
+{ runCommand
+, callPackage
+, jdk
+, jre_minimal
+}:
+
+let
+  hello = callPackage tests/hello.nix {
+    jdk = jdk;
+    jre = jre_minimal;
+  };
+in
+  runCommand "test" {} ''
+    ${hello}/bin/hello | grep "Hello, world!"
+    touch $out
+  ''
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix
index 8688831cdaac..228dbf9b14e9 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/11.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, writeText, gradleGen, pkg-config, perl, cmake
-, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsaLib, ffmpeg_3, python, ruby
+, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg, python, ruby
 , openjdk11-bootstrap }:
 
 let
@@ -19,7 +19,7 @@ let
       sha256 = "1h7qsylr7rnwnbimqjyn3whszp9kv4h3gpicsrb3mradxc9yv194";
     };
 
-    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg_3 ];
+    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg ];
     nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python ruby ];
 
     dontUseCmakeConfigure = true;
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
index 655b29f6535d..c36cbaa03f95 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/15.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradleGen
-, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsaLib
+, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
 , ffmpeg, python3, ruby }:
 
 let
@@ -21,7 +21,7 @@ let
       sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1";
     };
 
-    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg ];
+    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg ];
     nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
 
     dontUseCmakeConfigure = true;
@@ -95,8 +95,9 @@ in makePackage {
 
   postFixup = ''
     # Remove references to bootstrap.
+    export openjdkOutPath='${openjdk11_headless.outPath}'
     find "$out" -name \*.so | while read lib; do
-      new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${lib.escape ["+"] openjdk11_headless.outPath}[^:]*,,')"
+      new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
       patchelf --set-rpath "$new_refs" "$lib"
     done
   '';
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/tests/hello-logging.nix b/nixpkgs/pkgs/development/compilers/openjdk/tests/hello-logging.nix
new file mode 100644
index 000000000000..71f3a5543f7c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/openjdk/tests/hello-logging.nix
@@ -0,0 +1,47 @@
+{ jdk
+, jre
+, pkgs
+}:
+
+/* 'Hello world' Java application derivation for use in tests */
+let
+  source = pkgs.writeTextDir "src/Hello.java" ''
+    import java.util.logging.Logger;
+    import java.util.logging.Level;
+
+    class Hello {
+      static Logger logger = Logger.getLogger(Hello.class.getName());
+
+      public static void main(String[] args) {
+        logger.log(Level.INFO, "Hello, world!");
+      }
+    }
+  '';
+in
+  pkgs.stdenv.mkDerivation {
+    pname = "hello";
+    version = "1.0.0";
+
+    src = source;
+
+    buildPhase = ''
+      runHook preBuildPhase
+      ${jdk}/bin/javac src/Hello.java
+      runHook postBuildPhase
+    '';
+    installPhase = ''
+      runHook preInstallPhase
+
+      mkdir -p $out/lib
+      cp src/Hello.class $out/lib
+
+      mkdir -p $out/bin
+      cat >$out/bin/hello <<EOF;
+      #!/usr/bin/env sh
+      ${jre}/bin/java -cp $out/lib Hello
+      EOF
+      chmod a+x $out/bin/hello
+
+      runHook postInstallPhase
+    '';
+  }
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/tests/hello.nix b/nixpkgs/pkgs/development/compilers/openjdk/tests/hello.nix
new file mode 100644
index 000000000000..bc5be4a9e9a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/openjdk/tests/hello.nix
@@ -0,0 +1,42 @@
+{ jdk
+, jre
+, pkgs
+}:
+
+/* 'Hello world' Java application derivation for use in tests */
+let
+  source = pkgs.writeTextDir "src/Hello.java" ''
+    class Hello {
+      public static void main(String[] args) {
+        System.out.println("Hello, world!");
+      }
+    }
+  '';
+in
+  pkgs.stdenv.mkDerivation {
+    pname = "hello";
+    version = "1.0.0";
+
+    src = source;
+
+    buildPhase = ''
+      runHook preBuildPhase
+      ${jdk}/bin/javac src/Hello.java
+      runHook postBuildPhase
+    '';
+    installPhase = ''
+      runHook preInstallPhase
+
+      mkdir -p $out/lib
+      cp src/Hello.class $out/lib
+
+      mkdir -p $out/bin
+      cat >$out/bin/hello <<EOF;
+      #!/usr/bin/env sh
+      ${jre}/bin/java -cp $out/lib Hello
+      EOF
+      chmod a+x $out/bin/hello
+
+      runHook postInstallPhase
+    '';
+  }
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix b/nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix
new file mode 100644
index 000000000000..ed7b839cd22b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix
@@ -0,0 +1,16 @@
+{ runCommand
+, callPackage
+, jdk
+, jre_minimal
+}:
+
+let
+  hello = callPackage ./hello.nix {
+    jdk = jdk;
+    jre = jre_minimal;
+  };
+in
+  runCommand "test" {} ''
+    ${hello}/bin/hello | grep "Hello, world!"
+    touch $out
+  ''
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix b/nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix
new file mode 100644
index 000000000000..b9c417d3949c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix
@@ -0,0 +1,21 @@
+{ runCommand
+, callPackage
+, jdk
+, jre_minimal
+}:
+
+let
+  hello-logging = callPackage ./hello-logging.nix {
+    jdk = jdk;
+    jre = jre_minimal.override {
+      modules = [
+        "java.base"
+        "java.logging"
+      ];
+    };
+  };
+in
+  runCommand "test" {} ''
+    ${hello-logging}/bin/hello &>/dev/stdout | grep "Hello, world!"
+    touch $out
+  ''
diff --git a/nixpkgs/pkgs/development/compilers/ophis/default.nix b/nixpkgs/pkgs/development/compilers/ophis/default.nix
index f28513a9bb26..2ddfa849b664 100644
--- a/nixpkgs/pkgs/development/compilers/ophis/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ophis/default.nix
@@ -11,7 +11,7 @@ buildPythonApplication rec {
     sha256 = "2x8vwLTSngqQqmVrVh/mM4peATgaRqOSwrfm5XCkg/g=";
   };
 
-  sourceRoot = "./src";
+  sourceRoot = "${src.name}/src";
 
   meta = with lib; {
     homepage = "http://michaelcmartin.github.io/Ophis/";
diff --git a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
index 41f4befe469f..713b32a349b4 100644
--- a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
+++ b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
@@ -18,7 +18,7 @@
 , config
 , glib
 , libxml2
-, ffmpeg_3
+, ffmpeg
 , libxslt
 , libGL
 , freetype
@@ -26,7 +26,7 @@
 , gtk2
 , pango
 , cairo
-, alsaLib
+, alsa-lib
 , atk
 , gdk-pixbuf
 , setJavaClassPath
@@ -168,7 +168,7 @@ let result = stdenv.mkDerivation rec {
    * libXt is only needed on amd64
    */
   libraries =
-    [stdenv.cc.libc glib libxml2 ffmpeg_3 libxslt libGL xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk-pixbuf atk] ++
+    [stdenv.cc.libc glib libxml2 ffmpeg libxslt libGL xorg.libXxf86vm alsa-lib fontconfig freetype pango gtk2 cairo gdk-pixbuf atk] ++
     lib.optionals swingSupport [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc];
 
   rpath = lib.strings.makeLibraryPath libraries;
@@ -184,6 +184,7 @@ let result = stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" "armv7l-linux" "aarch64-linux" ]; # some inherit jre.meta.platforms
+    mainProgram = "java";
   };
 
 }; in result
diff --git a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix
index eafe23c8e76d..a232b796a068 100644
--- a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix
@@ -3,7 +3,7 @@
 , xorg
 , zlib
 , freetype
-, alsaLib
+, alsa-lib
 , setJavaClassPath
 }:
 
@@ -30,7 +30,7 @@ let result = stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    rpath="$out/lib/jli:$out/lib/server:$out/lib:${lib.strings.makeLibraryPath [ zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsaLib]}"
+    rpath="$out/lib/jli:$out/lib/server:$out/lib:${lib.strings.makeLibraryPath [ zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsa-lib]}"
 
     for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
       patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
diff --git a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix
index b1655cd8b8fe..6604ebbef82d 100644
--- a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix
@@ -3,7 +3,7 @@
 , xorg
 , zlib
 , freetype
-, alsaLib
+, alsa-lib
 , setJavaClassPath
 }:
 
@@ -30,7 +30,7 @@ let result = stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    rpath="$out/lib/jli:$out/lib/server:$out/lib:${lib.strings.makeLibraryPath [ stdenv.cc.cc zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsaLib]}"
+    rpath="$out/lib/jli:$out/lib/server:$out/lib:${lib.strings.makeLibraryPath [ stdenv.cc.cc zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsa-lib]}"
 
     for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
       patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
diff --git a/nixpkgs/pkgs/development/compilers/pakcs/default.nix b/nixpkgs/pkgs/development/compilers/pakcs/default.nix
index 98fab9eb210b..e2dceaab3975 100644
--- a/nixpkgs/pkgs/development/compilers/pakcs/default.nix
+++ b/nixpkgs/pkgs/development/compilers/pakcs/default.nix
@@ -94,7 +94,7 @@ in stdenv.mkDerivation {
       with dynamic web pages, prototyping embedded systems).
     '';
 
-    maintainers = with maintainers; [ kkallio gnidorah ];
+    maintainers = with maintainers; [ kkallio ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/passerine/default.nix b/nixpkgs/pkgs/development/compilers/passerine/default.nix
new file mode 100644
index 000000000000..e9427f892e64
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/passerine/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "passerine";
+  version = "0.9.2";
+
+  src = fetchFromGitHub {
+    owner = "vrtbl";
+    repo = "passerine";
+    rev = "dd8a6f5efc5dcb03d45b102f61cc8a50d46e8e98";
+    sha256 = "sha256-/QzqKLkxAVqvTY4Uft1qk7nJat6nozykB/4X1YGqu/I=";
+  };
+
+  cargoSha256 = "sha256-8WiiDLIJ/abXELF8S+4s+BPA/Lr/rpKmC1NWPCLzQWA=";
+
+  meta = with lib; {
+    description = "A small extensible programming language designed for concise expression with little code";
+    homepage = "https://github.com/vrtbl/passerine";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/ponyc/default.nix b/nixpkgs/pkgs/development/compilers/ponyc/default.nix
index 9fc8188daa10..36a83d47d6fd 100644
--- a/nixpkgs/pkgs/development/compilers/ponyc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ponyc/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation (rec {
   pname = "ponyc";
-  version = "0.38.3";
+  version = "0.41.1";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = pname;
     rev = version;
-    sha256 = "14kivmyphi7gbd7mgd4cnsiwl4cl7wih8kwzh7n79s2s4c5hj4ak";
+    sha256 = "02wx070cy1193xzv58vh79yzwgpqiayqlwd3i285698fppbcg69a";
 
 # Due to a bug in LLVM 9.x, ponyc has to include its own vendored patched
 # LLVM.  (The submodule is a specific tag in the LLVM source tree).
@@ -23,34 +23,33 @@ stdenv.mkDerivation (rec {
     fetchSubmodules = true;
   };
 
-  ponygbenchmark = fetchurl {
-    url = "https://github.com/google/benchmark/archive/v1.5.0.tar.gz";
-    sha256 = "06i2cr4rj126m1zfz0x1rbxv1mw1l7a11mzal5kqk56cdrdicsiw";
-    name = "v1.5.0.tar.gz";
+  ponygbenchmark = fetchFromGitHub {
+    owner = "google";
+    repo = "benchmark";
+    rev = "v1.5.2";
+    sha256 = "13rxagpzw6bal6ajlmrxlh9kgfvcixn6j734b2bvfqz7lch8n0pa";
   };
 
   nativeBuildInputs = [ cmake makeWrapper which ];
   buildInputs = [ libxml2 z3 ];
-  propagatedBuildInputs = [ cc ];
 
   # Sandbox disallows network access, so disabling problematic networking tests
   patches = [
     ./disable-tests.patch
+    ./fix-libstdcpp-path.patch
     (substituteAll {
       src = ./make-safe-for-sandbox.patch;
       googletest = fetchurl {
         url = "https://github.com/google/googletest/archive/release-1.8.1.tar.gz";
         sha256 = "17147961i01fl099ygxjx4asvjanwdd446nwbq9v8156h98zxwcv";
-        name = "release-1.8.1.tar.gz";
       };
     })
   ];
 
   postUnpack = ''
     mkdir -p source/build/build_libs/gbenchmark-prefix/src
-    tar -C source/build/build_libs/gbenchmark-prefix/src -zxvf "$ponygbenchmark"
-    mv source/build/build_libs/gbenchmark-prefix/src/benchmark-1.5.0 \
-       source/build/build_libs/gbenchmark-prefix/src/benchmark
+    cp -r "$ponygbenchmark"/ source/build/build_libs/gbenchmark-prefix/src/benchmark
+    chmod -R u+w source/build/build_libs/gbenchmark-prefix/src/benchmark
   '';
 
   dontConfigure = true;
@@ -61,7 +60,6 @@ stdenv.mkDerivation (rec {
     patch -d lib/llvm/src/ -p1 < lib/llvm/patches/2020-09-01-is-trivially-copyable.diff
     patch -d lib/llvm/src/ -p1 < lib/llvm/patches/2020-01-07-01-c-exports.diff
     patch -d lib/llvm/src/ -p1 < lib/llvm/patches/2019-12-23-01-jit-eh-frames.diff
-
     substituteInPlace packages/process/_test.pony \
         --replace '"/bin/' '"${coreutils}/bin/' \
         --replace '=/bin' "${coreutils}/bin"
@@ -91,7 +89,6 @@ stdenv.mkDerivation (rec {
     + lib.optionalString stdenv.isDarwin "bits=64 "
     + lib.optionalString (stdenv.isDarwin && (!lto)) "lto=no "
     + '' install
-
     wrapProgram $out/bin/ponyc \
       --prefix PATH ":" "${stdenv.cc}/bin" \
       --set-default CC "$CC" \
diff --git a/nixpkgs/pkgs/development/compilers/ponyc/fix-libstdcpp-path.patch b/nixpkgs/pkgs/development/compilers/ponyc/fix-libstdcpp-path.patch
new file mode 100644
index 000000000000..63b0fa699129
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/ponyc/fix-libstdcpp-path.patch
@@ -0,0 +1,14 @@
+diff --git a/src/libponyc/CMakeLists.txt b/src/libponyc/CMakeLists.txt
+index bf2c385e..11d0d619 100644
+--- a/src/libponyc/CMakeLists.txt
++++ b/src/libponyc/CMakeLists.txt
+@@ -136,7 +136,7 @@ elseif(${CMAKE_HOST_SYSTEM_NAME} MATCHES "DragonFly")
+ else()
+     # add a rule to generate the standalone library if needed
+     add_custom_command(OUTPUT libponyc-standalone.a
+-        COMMAND cp `find /usr/lib/ -name 'libstdc++.a' -print -quit` libstdcpp.a
++        COMMAND cp `${CMAKE_CXX_COMPILER} --print-file-name='libstdc++.a'` libstdcpp.a
+         COMMAND echo "create libponyc-standalone.a" > standalone.mri
+         COMMAND echo "addlib ${PROJECT_SOURCE_DIR}/../../build/libs/lib/libblake2.a" >> standalone.mri
+         COMMAND echo "addlib libstdcpp.a" >> standalone.mri
+
diff --git a/nixpkgs/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch b/nixpkgs/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch
index b07763a475d2..49addcbc616e 100644
--- a/nixpkgs/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch
+++ b/nixpkgs/pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch
@@ -1,10 +1,10 @@
---- a/lib/CMakeLists.txt	2020-09-27 02:39:12.862940179 +0000
-+++ b/lib/CMakeLists.txt	2020-09-27 02:39:16.451957865 +0000
+--- a/lib/CMakeLists.txt	2021-05-27 15:58:36.819331229 -0400
++++ b/lib/CMakeLists.txt	2021-05-27 16:00:19.768268649 -0400
 @@ -10,12 +10,12 @@
  endif()
  
  ExternalProject_Add(gbenchmark
--    URL https://github.com/google/benchmark/archive/v1.5.0.tar.gz
+-    URL https://github.com/google/benchmark/archive/v1.5.2.tar.gz
 +    SOURCE_DIR gbenchmark-prefix/src/benchmark
      CMAKE_ARGS -DCMAKE_BUILD_TYPE=${PONYC_LIBS_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DCMAKE_CXX_FLAGS=-fpic --no-warn-unused-cli
  )
@@ -30,12 +30,12 @@
 -        option(GIT_SUBMODULE "Check submodules during build" ON)
 -        if(GIT_SUBMODULE)
 -            message(STATUS "Updating submodules...")
--            execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
+-            execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --depth 1
 -                            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 -                            RESULT_VARIABLE git_submod_result)
 -            #message("git_submod_result ${git_submod_result}")
 -            if(NOT git_submod_result EQUAL "0")
--                message(FATAL_ERROR "git submodule update --init --recursive failed with ${git_submod_result}, please checkout submodules")
+-                message(FATAL_ERROR "git submodule update --init --recursive --depth 1 failed with ${git_submod_result}, please checkout submodules")
 -            endif()
 -
 -            # we check to make sure the submodule hash matches
diff --git a/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix b/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix
index 8910d7f1e610..e9473b81f484 100644
--- a/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix
+++ b/nixpkgs/pkgs/development/compilers/ponyc/pony-corral.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation ( rec {
   pname = "corral";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = pname;
     rev = version;
-    sha256 = "sha256-YJZ1jGMOeZKGZaTrWO2mtR94F0voC2DXaghi0LytF7I=";
+    sha256 = "sha256-mQ/SxnppChZ+6PKVo5VM+QiNn94F4qJT1kQSrwXTa7k=";
   };
 
   buildInputs = [ ponyc ];
diff --git a/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix b/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
index 6d7f05ebdae7..568407c3614e 100644
--- a/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
+++ b/nixpkgs/pkgs/development/compilers/purescript/purescript/default.nix
@@ -18,19 +18,19 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "purescript";
-  version = "0.14.0";
+  version = "0.14.2";
 
   src =
     if stdenv.isDarwin
     then
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz";
-      sha256 = "0dfnn5ar7zgvgvxcvw5f6vwpkgkwa017y07s7mvdv44zf4hzsj3s";
+      sha256 = "1ga2hn9br71dyzn3p9jvjiksvnq21p6i5hp1z1j5fpz9la28nqzf";
     }
     else
     fetchurl {
       url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz";
-      sha256 = "1l3i7mxlzb2dkq6ff37rvnaarikxzxj0fg9i2kk26s8pz7vpqgjh";
+      sha256 = "1kv7dm1nw85lw3brrclkj7xc9p021jx3n8wgp2fg3572s86ypskw";
     };
 
 
@@ -61,5 +61,7 @@ in stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ justinwoo mbbx6spp cdepillabout ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "purs";
+    changelog = "https://github.com/purescript/purescript/releases/tag/v${version}";
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/reason/default.nix b/nixpkgs/pkgs/development/compilers/reason/default.nix
index 2293c83cc02c..dbc6f40a68ce 100644
--- a/nixpkgs/pkgs/development/compilers/reason/default.nix
+++ b/nixpkgs/pkgs/development/compilers/reason/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, makeWrapper, fetchFromGitHub, ocaml, findlib, dune_2
-, fix, menhir, merlin-extend, ppx_tools_versioned, utop, cppo
+{ lib, callPackage, stdenv, makeWrapper, fetchFromGitHub, ocaml, findlib, dune_2
+, fix, menhir, menhirLib, menhirSdk, merlin-extend, ppxlib, utop, cppo, ppx_derivers
 }:
 
 stdenv.mkDerivation rec {
@@ -13,11 +13,28 @@ stdenv.mkDerivation rec {
     sha256 = "0m6ldrci1a4j0qv1cbwh770zni3al8qxsphl353rv19f6rblplhs";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-
-  propagatedBuildInputs = [ menhir merlin-extend ppx_tools_versioned ];
-
-  buildInputs = [ ocaml findlib dune_2 cppo fix utop menhir ];
+  nativeBuildInputs = [
+    makeWrapper
+    menhir
+  ];
+
+  buildInputs = [
+    cppo
+    dune_2
+    findlib
+    fix
+    menhir
+    menhirSdk
+    ocaml
+    ppxlib
+    utop
+  ];
+
+  propagatedBuildInputs = [
+    menhirLib
+    merlin-extend
+    ppx_derivers
+  ];
 
   buildFlags = [ "build" ]; # do not "make tests" before reason lib is installed
 
@@ -29,11 +46,16 @@ stdenv.mkDerivation rec {
       --prefix OCAMLPATH : "$OCAMLPATH:$OCAMLFIND_DESTDIR"
   '';
 
+  passthru.tests = {
+    hello = callPackage ./tests/hello { };
+  };
+
   meta = with lib; {
     homepage = "https://reasonml.github.io/";
+    downloadPage = "https://github.com/reasonml/reason";
     description = "Facebook's friendly syntax to OCaml";
     license = licenses.mit;
     inherit (ocaml.meta) platforms;
-    maintainers = [ maintainers.volth ];
+    maintainers = with maintainers; [ superherointj ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/reason/tests/hello/default.nix b/nixpkgs/pkgs/development/compilers/reason/tests/hello/default.nix
new file mode 100644
index 000000000000..9b551a0a1ee5
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/reason/tests/hello/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, reason }:
+
+buildDunePackage rec {
+  pname = "helloreason";
+  version = "0.0.1";
+
+  src = ./.;
+
+  useDune2 = true;
+
+  buildInputs = [
+    reason
+  ];
+
+  doCheck = true;
+
+  doInstallCheck = true;
+  postInstallCheck = ''
+    $out/bin/${pname} | grep -q "Hello From Reason" > /dev/null
+  '';
+
+  meta.timeout = 60;
+}
diff --git a/nixpkgs/pkgs/development/compilers/reason/tests/hello/dune b/nixpkgs/pkgs/development/compilers/reason/tests/hello/dune
new file mode 100644
index 000000000000..578a56dc6de4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/reason/tests/hello/dune
@@ -0,0 +1,4 @@
+(executable
+ (name helloreason)
+ (public_name helloreason)
+ (libraries reason))
diff --git a/nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.opam b/nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.opam
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.opam
diff --git a/nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.re b/nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.re
new file mode 100644
index 000000000000..795bd314dcfb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/reason/tests/hello/helloreason.re
@@ -0,0 +1,6 @@
+let sayHello = () => {
+  let fromWhom = "From Reason";
+  print_endline("Hello " ++ fromWhom);
+};
+
+sayHello();
diff --git a/nixpkgs/pkgs/development/compilers/rust/1_45.nix b/nixpkgs/pkgs/development/compilers/rust/1_45.nix
index 13b1b3ef488c..f499fc9e9b08 100644
--- a/nixpkgs/pkgs/development/compilers/rust/1_45.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/1_45.nix
@@ -20,9 +20,9 @@ import ./default.nix {
   rustcVersion = "1.45.2";
   rustcSha256 = "0273a1g3f59plyi1n0azf21qjzwml1yqdnj5z472crz37qggr8xp";
 
-  llvmSharedForBuild = pkgsBuildBuild.llvm_10.override { enableSharedLibraries = true; };
-  llvmSharedForHost = pkgsBuildHost.llvm_10.override { enableSharedLibraries = true; };
-  llvmSharedForTarget = pkgsBuildTarget.llvm_10.override { enableSharedLibraries = true; };
+  llvmSharedForBuild = pkgsBuildBuild.llvmPackages_10.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForHost = pkgsBuildHost.llvmPackages_10.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForTarget = pkgsBuildTarget.llvmPackages_10.libllvm.override { enableSharedLibraries = true; };
 
   llvmBootstrapForDarwin = llvmPackages_5;
 
diff --git a/nixpkgs/pkgs/development/compilers/rust/1_51.nix b/nixpkgs/pkgs/development/compilers/rust/1_51.nix
deleted file mode 100644
index a489df471a8c..000000000000
--- a/nixpkgs/pkgs/development/compilers/rust/1_51.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-# New rust versions should first go to staging.
-# Things to check after updating:
-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
-#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
-#    This testing can be also done by other volunteers as part of the pull
-#    request review, in case platforms cannot be covered.
-# 2. The LLVM version used for building should match with rust upstream.
-#    Check the version number in the src/llvm-project git submodule in:
-#    https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
-# 3. Firefox and Thunderbird should still build on x86_64-linux.
-
-{ stdenv, lib
-, buildPackages
-, newScope, callPackage
-, CoreFoundation, Security
-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
-, makeRustPlatform
-, llvmPackages_11, llvm_11
-} @ args:
-
-import ./default.nix {
-  rustcVersion = "1.51.0";
-  rustcSha256 = "0ixqkqglv3isxbvl4ldr4byrkx692wghsz3fasy1pn5kr2prnsvs";
-
-  llvmSharedForBuild = pkgsBuildBuild.llvm_11.override { enableSharedLibraries = true; };
-  llvmSharedForHost = pkgsBuildHost.llvm_11.override { enableSharedLibraries = true; };
-  llvmSharedForTarget = pkgsBuildTarget.llvm_11.override { enableSharedLibraries = true; };
-
-  llvmBootstrapForDarwin = llvmPackages_11;
-
-  # For use at runtime
-  llvmShared = llvm_11.override { enableSharedLibraries = true; };
-
-  # Note: the version MUST be one version prior to the version we're
-  # building
-  bootstrapVersion = "1.50.0";
-
-  # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
-  bootstrapHashes = {
-    i686-unknown-linux-gnu = "dee56dc425ed5d8e8112f26fba3060fd324c49f1261e0b7e8e29f7d9b852b09a";
-    x86_64-unknown-linux-gnu = "fa889b53918980aea2dea42bfae4e858dcb2104c6fdca6e4fe359f3a49767701";
-    x86_64-unknown-linux-musl = "867cbfb35f5dc9b43e230132ea9e7bfa98d471a9248e41b08ced2266e5ccd00f";
-    arm-unknown-linux-gnueabihf = "1b72979244450e4047ab536448d6720699e1fae0ab1c4ade114099a3037e274b";
-    armv7-unknown-linux-gnueabihf = "f1dde566c4e6ca2e1133c84170e46e566765a21894e1038e1cdc32745d7274ef";
-    aarch64-unknown-linux-gnu = "1db7a4fbddc68cd29eb9bca9fa7d0d2d9e3d59ede7ddaad66222fb4336a6bacf";
-    aarch64-unknown-linux-musl = "adcc6c76a8967bacb6687b565d3cf739e35fde066b03edb745b05b52fa8b5b36";
-    x86_64-apple-darwin = "1bf5a7ecf6468ce1bf9fe49c8083b3f648b40c16fbfb7539d106fe28eb0e792e";
-    aarch64-apple-darwin = "1ed91a867e7b86cc4bc84c0838240f1c25acd007100ec9f7a14c4873e4b56561";
-    powerpc64le-unknown-linux-gnu = "e0472589d3f9ba7ebf27f033af320e0d5cfb70222955bd8ed73ce2c9a70ae535";
-  };
-
-  selectRustPackage = pkgs: pkgs.rust_1_51;
-
-  rustcPatches = [
-  ];
-}
-
-(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvm_11"])
diff --git a/nixpkgs/pkgs/development/compilers/rust/1_52.nix b/nixpkgs/pkgs/development/compilers/rust/1_52.nix
new file mode 100644
index 000000000000..bfd6fc47ad20
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/rust/1_52.nix
@@ -0,0 +1,59 @@
+# New rust versions should first go to staging.
+# Things to check after updating:
+# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
+#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
+#    This testing can be also done by other volunteers as part of the pull
+#    request review, in case platforms cannot be covered.
+# 2. The LLVM version used for building should match with rust upstream.
+#    Check the version number in the src/llvm-project git submodule in:
+#    https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
+# 3. Firefox and Thunderbird should still build on x86_64-linux.
+
+{ stdenv, lib
+, buildPackages
+, newScope, callPackage
+, CoreFoundation, Security
+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
+, makeRustPlatform
+, llvmPackages_11, llvm_11
+} @ args:
+
+import ./default.nix {
+  rustcVersion = "1.52.1";
+  rustcSha256 = "sha256-Om8jom0Oj4erv78yxc19qgwLcdCYar78Vrml+/vQv5g=";
+
+  llvmSharedForBuild = pkgsBuildBuild.llvmPackages_11.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForHost = pkgsBuildHost.llvmPackages_11.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForTarget = pkgsBuildTarget.llvmPackages_11.libllvm.override { enableSharedLibraries = true; };
+
+  llvmBootstrapForDarwin = llvmPackages_11;
+
+  # For use at runtime
+  llvmShared = llvm_11.override { enableSharedLibraries = true; };
+
+  # Note: the version MUST be one version prior to the version we're
+  # building
+  bootstrapVersion = "1.51.0";
+
+  # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
+  bootstrapHashes = {
+    i686-unknown-linux-gnu = "de2e8ef724d89ba6f567f07ebacf5a244c7cdae30ee559f1913310eda38d9cd1";
+    x86_64-unknown-linux-gnu = "9e125977aa13f012a68fdc6663629c685745091ae244f0587dd55ea4e3a3e42f";
+    x86_64-unknown-linux-musl = "cb65c3a19ba0e09a94ccfd8551e648efaa1db52b0db19ae475d35a46f8750871";
+    arm-unknown-linux-gnueabihf = "ab26464947ce80b4c361b08242dc215a5664f9f4ad23f66891ec27d55a0440b7";
+    armv7-unknown-linux-gnueabihf = "5d381b7ee16c559efefedfac7ec4d392e838fddaf50049255844dcff2b2614dd";
+    aarch64-unknown-linux-gnu = "fd31c78fffad52c03cac5a7c1ee5db3f34b2a77d7bc862707c0f71e209180a84";
+    aarch64-unknown-linux-musl = "06cdaa1117dcdd392ede938b655b9bc45cf2a76bd42870ca223189e6eb29d435";
+    x86_64-apple-darwin = "765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4";
+    aarch64-apple-darwin = "95d0410bbd20b05f8b7d5adf70e8737873995bc86611a90e643d7081ca35147f";
+    powerpc64le-unknown-linux-gnu = "7362f561104d7be4836507d3a53cd39444efcdf065813d559beb1f54ce9f7680";
+    riscv64gc-unknown-linux-gnu = "9d0c2c4ab2397e78758de8b6b57051482bcf20b6748e0e16d9d5bd23ce73d72a";
+  };
+
+  selectRustPackage = pkgs: pkgs.rust_1_52;
+
+  rustcPatches = [
+  ];
+}
+
+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvm_11"])
diff --git a/nixpkgs/pkgs/development/compilers/rust/cargo.nix b/nixpkgs/pkgs/development/compilers/rust/cargo.nix
index 3a7f29e32293..3ada23e74882 100644
--- a/nixpkgs/pkgs/development/compilers/rust/cargo.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/cargo.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, file, curl, pkg-config, python3, openssl, cmake, zlib
-, installShellFiles, makeWrapper, libiconv, cacert, rustPlatform, rustc
+, installShellFiles, makeWrapper, cacert, rustPlatform, rustc
 , CoreFoundation, Security
 }:
 
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage {
 
   nativeBuildInputs = [ pkg-config cmake installShellFiles makeWrapper ];
   buildInputs = [ cacert file curl python3 openssl zlib ]
-    ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security libiconv ];
+    ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
 
   # cargo uses git-rs which is made for a version of libgit2 from recent master that
   # is not compatible with the current version in nixpkgs.
diff --git a/nixpkgs/pkgs/development/compilers/rust/default.nix b/nixpkgs/pkgs/development/compilers/rust/default.nix
index 6203eaf47baf..fee21023c4c2 100644
--- a/nixpkgs/pkgs/development/compilers/rust/default.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/default.nix
@@ -35,6 +35,8 @@
       "armv7a" = "armv7";
       "armv7l" = "armv7";
       "armv6l" = "arm";
+      "armv5tel" = "armv5te";
+      "riscv64" = "riscv64gc";
     }.${cpu.name} or cpu.name;
   in platform.rustc.config
     or "${cpu_}-${vendor.name}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
diff --git a/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix b/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
index 584b1fdbe438..53ce0391e45b 100644
--- a/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
@@ -13,9 +13,11 @@ rec {
 
   buildRustPackage = callPackage ../../../build-support/rust {
     inherit cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook
-      fetchCargoTarball rustc;
+      fetchCargoTarball importCargoLock rustc;
   };
 
+  importCargoLock = buildPackages.callPackage ../../../build-support/rust/import-cargo-lock.nix {};
+
   rustcSrc = callPackage ./rust-src.nix {
     inherit rustc;
   };
@@ -26,6 +28,6 @@ rec {
 
   # Hooks
   inherit (callPackage ../../../build-support/rust/hooks {
-    inherit cargo;
+    inherit cargo rustc;
   }) cargoBuildHook cargoCheckHook cargoInstallHook cargoSetupHook maturinBuildHook;
 }
diff --git a/nixpkgs/pkgs/development/compilers/rust/print-hashes.sh b/nixpkgs/pkgs/development/compilers/rust/print-hashes.sh
index c24052fcc058..ebf8d900bb3b 100755
--- a/nixpkgs/pkgs/development/compilers/rust/print-hashes.sh
+++ b/nixpkgs/pkgs/development/compilers/rust/print-hashes.sh
@@ -18,6 +18,7 @@ PLATFORMS=(
   x86_64-apple-darwin
   aarch64-apple-darwin
   powerpc64le-unknown-linux-gnu
+  riscv64gc-unknown-linux-gnu
 )
 BASEURL=https://static.rust-lang.org/dist
 VERSION=${1:-}
diff --git a/nixpkgs/pkgs/development/compilers/rust/rustc.nix b/nixpkgs/pkgs/development/compilers/rust/rustc.nix
index 315fe7c0c6d1..b8fca884edcf 100644
--- a/nixpkgs/pkgs/development/compilers/rust/rustc.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/rustc.nix
@@ -3,6 +3,7 @@
 , fetchurl, file, python3
 , darwin, cmake, rust, rustPlatform
 , pkg-config, openssl
+, libiconv
 , which, libffi
 , withBundledLLVM ? false
 , enableRustcDev ? true
@@ -88,9 +89,9 @@ in stdenv.mkDerivation rec {
     "${setTarget}.cxx=${cxxForTarget}"
   ] ++ optionals (!withBundledLLVM) [
     "--enable-llvm-link-shared"
-    "${setBuild}.llvm-config=${llvmSharedForBuild}/bin/llvm-config"
-    "${setHost}.llvm-config=${llvmSharedForHost}/bin/llvm-config"
-    "${setTarget}.llvm-config=${llvmSharedForTarget}/bin/llvm-config"
+    "${setBuild}.llvm-config=${llvmSharedForBuild.dev}/bin/llvm-config"
+    "${setHost}.llvm-config=${llvmSharedForHost.dev}/bin/llvm-config"
+    "${setTarget}.llvm-config=${llvmSharedForTarget.dev}/bin/llvm-config"
   ] ++ optionals (stdenv.isLinux && !stdenv.targetPlatform.isRedox) [
     "--enable-profiler" # build libprofiler_builtins
   ] ++ optionals stdenv.buildPlatform.isMusl [
@@ -137,7 +138,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [ openssl ]
-    ++ optional stdenv.isDarwin Security
+    ++ optionals stdenv.isDarwin [ libiconv Security ]
     ++ optional (!withBundledLLVM) llvmShared;
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix b/nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix
index bbc171a8d986..1784bf672b31 100644
--- a/nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix
+++ b/nixpkgs/pkgs/development/compilers/sbcl/2.0.8.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "2.0.8";
-  sha256 = "1xwrwvps7drrpyw3wg5h3g2qajmkwqs9gz0fdw1ns9adp7vld390";
+  version = "2.1.2";
+  sha256 = "sha256-t3EFUJOYVe1JWYxKAUSD7RILaZFliio7avpHcT3OTAs=";
 }
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix b/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix
index 8bdbbadc9d60..eaf1ff24d3e7 100644
--- a/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix
+++ b/nixpkgs/pkgs/development/compilers/sbcl/bootstrap.nix
@@ -2,6 +2,11 @@
 
 let
   options = rec {
+    aarch64-darwin = {
+      version = "2.1.2";
+      system = "arm64-darwin";
+      sha256 = "sha256-H0ALigXcWIypdA+fTf7jERscwbb7QIAfcoxCtGDh0RU=";
+    };
     x86_64-darwin = {
       version = "1.2.11";
       system = "x86-64-darwin";
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/common.nix b/nixpkgs/pkgs/development/compilers/sbcl/common.nix
index 11ae960a5317..b020eeafc5cb 100644
--- a/nixpkgs/pkgs/development/compilers/sbcl/common.nix
+++ b/nixpkgs/pkgs/development/compilers/sbcl/common.nix
@@ -2,7 +2,7 @@
 
 { lib, stdenv, fetchurl, writeText, sbclBootstrap
 , sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
-, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
+, threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system || "aarch64-darwin" == stdenv.hostPlatform.system)
 , disableImmobileSpace ? false
   # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
   # Note that the created binaries still need `patchelf --set-interpreter ...`
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
                   lib.concatStringsSep " "
                     (builtins.map (x: "--with-${x}") enableFeatures ++
                      builtins.map (x: "--without-${x}") disableFeatures)
-                }
+                } ${if stdenv.hostPlatform.system == "aarch64-darwin" then "--arch=arm64" else ""}
     (cd doc/manual ; make info)
 
     runHook postBuild
diff --git a/nixpkgs/pkgs/development/compilers/scala/2.x.nix b/nixpkgs/pkgs/development/compilers/scala/2.x.nix
index a0a5f1a2b22c..fe821f18c156 100644
--- a/nixpkgs/pkgs/development/compilers/scala/2.x.nix
+++ b/nixpkgs/pkgs/development/compilers/scala/2.x.nix
@@ -26,8 +26,8 @@ let
     };
 
     "2.13" = {
-      version = "2.13.5";
-      sha256 = "1ah5rw6xqksiayi5i95r3pcff961q71ilishzn2kmg673z0j2b7d";
+      version = "2.13.6";
+      sha256 = "Sd+SUDzRHMPGSWg9s2jlh4t+eS5AFW0jd+UjJuk17UM=";
       pname = "scala_2_13";
     };
   };
diff --git a/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix b/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
index 66a634914dfb..05d1ead1fb6f 100644
--- a/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
+++ b/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.26.0-RC1";
+  version = "3.0.0";
   pname = "dotty-bare";
 
   src = fetchurl {
-    url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
-    sha256 = "16njy9f0lk7q5x5w1k4yqy644005w4cxhq20r8i2qslhxjndz66f";
+    url = "https://github.com/lampepfl/dotty/releases/download/${version}/scala3-${version}.tar.gz";
+    sha256 = "/F2yv4XH0I3oC3IFqj+jwpzShCtTEfTzg+J26Xl+P+Y=";
   };
 
   propagatedBuildInputs = [ jre ncurses.dev ] ;
diff --git a/nixpkgs/pkgs/development/compilers/scala/dotty.nix b/nixpkgs/pkgs/development/compilers/scala/dotty.nix
index 7bc7fa3d4c24..c99ed24c2149 100644
--- a/nixpkgs/pkgs/development/compilers/scala/dotty.nix
+++ b/nixpkgs/pkgs/development/compilers/scala/dotty.nix
@@ -13,9 +13,10 @@ stdenv.mkDerivation {
 
   installPhase = ''
     mkdir -p $out/bin
-    ln -s ${dotty-bare}/bin/dotc $out/bin/dotc
-    ln -s ${dotty-bare}/bin/dotd $out/bin/dotd
-    ln -s ${dotty-bare}/bin/dotr $out/bin/dotr
+    ln -s ${dotty-bare}/bin/scalac $out/bin/scalac
+    ln -s ${dotty-bare}/bin/scaladoc $out/bin/scaladoc
+    ln -s ${dotty-bare}/bin/scala $out/bin/scala
+    ln -s ${dotty-bare}/bin/common $out/bin/common
   '';
 
   inherit (dotty-bare) meta;
diff --git a/nixpkgs/pkgs/development/compilers/solc/0.7.nix b/nixpkgs/pkgs/development/compilers/solc/0.7.nix
deleted file mode 100644
index 99b67b56510d..000000000000
--- a/nixpkgs/pkgs/development/compilers/solc/0.7.nix
+++ /dev/null
@@ -1,78 +0,0 @@
-{ lib, gccStdenv, fetchzip, boost, cmake, ncurses, python3, coreutils
-, z3Support ? true, z3 ? null, cvc4Support ? true, cvc4 ? null
-, cln ? null, gmp ? null
-}:
-
-# compiling source/libsmtutil/CVC4Interface.cpp breaks on clang on Darwin,
-# general commandline tests fail at abiencoderv2_no_warning/ on clang on NixOS
-
-assert z3Support -> z3 != null && lib.versionAtLeast z3.version "4.6.0";
-assert cvc4Support -> cvc4 != null && cln != null && gmp != null;
-
-let
-  jsoncppVersion = "1.9.4";
-  jsoncppUrl = "https://github.com/open-source-parsers/jsoncpp/archive/${jsoncppVersion}.tar.gz";
-  jsoncpp = fetchzip {
-    url = jsoncppUrl;
-    sha256 = "0qnx5y6c90fphl9mj9d20j2dfgy6s5yr5l0xnzid0vh71zrp6jwv";
-  };
-in
-gccStdenv.mkDerivation rec {
-
-  pname = "solc";
-  version = "0.7.4";
-
-  # upstream suggests avoid using archive generated by github
-  src = fetchzip {
-    url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz";
-    sha256 = "02261l54jdbvxk612z7zsyvmchy1rx4lf27b3f616sd7r56krpkg";
-  };
-
-  postPatch = ''
-    substituteInPlace cmake/jsoncpp.cmake \
-      --replace "${jsoncppUrl}" ${jsoncpp}
-  '';
-
-  cmakeFlags = [
-    "-DBoost_USE_STATIC_LIBS=OFF"
-  ] ++ lib.optionals (!z3Support) [
-    "-DUSE_Z3=OFF"
-  ] ++ lib.optionals (!cvc4Support) [
-    "-DUSE_CVC4=OFF"
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ boost ]
-    ++ lib.optionals z3Support [ z3 ]
-    ++ lib.optionals cvc4Support [ cvc4 cln gmp ];
-  checkInputs = [ ncurses python3 ];
-
-  # Test fails on darwin for unclear reason
-  doCheck = gccStdenv.hostPlatform.isLinux;
-
-  checkPhase = ''
-    while IFS= read -r -d ''' dir
-    do
-      LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$(pwd)/$dir
-      export LD_LIBRARY_PATH
-    done <   <(find . -type d -print0)
-
-    pushd ..
-    # IPC tests need aleth avaliable, so we disable it
-    sed -i "s/IPC_ENABLED=true/IPC_ENABLED=false\nIPC_FLAGS=\"--no-ipc\"/" ./scripts/tests.sh
-    for i in ./scripts/*.sh ./scripts/*.py ./test/*.sh; do
-      patchShebangs "$i"
-    done
-    TERM=xterm ./scripts/tests.sh
-    popd
-  '';
-
-  meta = with lib; {
-    description = "Compiler for Ethereum smart contract language Solidity";
-    homepage = "https://github.com/ethereum/solidity";
-    license = licenses.gpl3;
-    platforms = with platforms; linux; # darwin is currently broken
-    maintainers = with maintainers; [ dbrock akru lionello sifmelcara ];
-    inherit version;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/solc/default.nix b/nixpkgs/pkgs/development/compilers/solc/default.nix
index c8f0c50d8a59..c01cc761e8c6 100644
--- a/nixpkgs/pkgs/development/compilers/solc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/solc/default.nix
@@ -7,7 +7,7 @@
 , python3
 , z3Support ? true
 , z3 ? null
-, cvc4Support ? true
+, cvc4Support ? gccStdenv.isLinux
 , cvc4 ? null
 , cln ? null
 , gmp ? null
@@ -98,7 +98,6 @@ let
       description = "Compiler for Ethereum smart contract language Solidity";
       homepage = "https://github.com/ethereum/solidity";
       license = licenses.gpl3;
-      platforms = with platforms; linux; # darwin is currently broken
       maintainers = with maintainers; [ dbrock akru lionello sifmelcara ];
       inherit version;
     };
diff --git a/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix b/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
index 324e0b07ad87..e4549a7d65d7 100644
--- a/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
+++ b/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , cmake
+, pkg-config
 
 , lit
 , llvm_8
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
     sha256 = "0hxalc3fkliqs61hpr97phbm3qsx4b8vgnlg30aimzr6aas403r5";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ pkg-config cmake llvm_8.dev ];
 
   buildInputs = [ llvm_8 ];
 
diff --git a/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix b/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix
index addf64138011..cb4cf580a0e9 100644
--- a/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swi-prolog/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
 
   # Add the packInstall path to the swipl pack search path
   postPatch = ''
-    echo "user:file_search_path(pack, '$out/lib/swipl/pack')." >> /build/$sourceRoot/boot/init.pl
+    echo "user:file_search_path(pack, '$out/lib/swipl/pack')." >> boot/init.pl
   '';
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/compilers/vala/default.nix b/nixpkgs/pkgs/development/compilers/vala/default.nix
index b56f509b31aa..0c002227914a 100644
--- a/nixpkgs/pkgs/development/compilers/vala/default.nix
+++ b/nixpkgs/pkgs/development/compilers/vala/default.nix
@@ -40,6 +40,8 @@ let
 
         "0.50" = ./disable-graphviz-0.46.1.patch;
 
+        "0.52" = ./disable-graphviz-0.46.1.patch;
+
       }.${lib.versions.majorMinor version} or (throw "no graphviz patch for this version of vala");
 
     disableGraphviz = lib.versionAtLeast version "0.38" && !withGraphviz;
@@ -88,7 +90,7 @@ let
 
     # Wait for PR #59372
     # passthru = {
-    #  updateScript = gnome3.updateScript {
+    #  updateScript = gnome.updateScript {
     #    attrPath = "${pname}_${lib.versions.major version}_${lib.versions.minor version}";
     #    packageName = pname;
     #  };
@@ -99,7 +101,7 @@ let
       homepage = "https://wiki.gnome.org/Projects/Vala";
       license = licenses.lgpl21Plus;
       platforms = platforms.unix;
-      maintainers = with maintainers; [ antono jtojnar lethalman peterhoeg worldofpeace ];
+      maintainers = with maintainers; [ antono jtojnar peterhoeg ];
     };
   });
 
@@ -125,8 +127,8 @@ in rec {
   };
 
   vala_0_48 = generic {
-    version = "0.48.14";
-    sha256 = "0iz3zzimmk5wxvy5bi75v8ckv153gjrz3r5iqvl8xqackzi7v9fw";
+    version = "0.48.17";
+    sha256 = "1wlb4vd7k6hg10s09npglbhfcgjzxkywd4v0l96qhn19m9b8cszj";
   };
 
   vala_0_50 = generic {
@@ -134,5 +136,10 @@ in rec {
     sha256 = "1353j852h04d1x6b4n6lbg3ay40ph0adb9yi25dh74pligx33z2q";
   };
 
-  vala = vala_0_48;
+  vala_0_52 = generic {
+    version = "0.52.2";
+    sha256 = "sha256-OjxGCAO6Zh5RO+PQmEtYPgVHP2AsdfqY6RdVUDcUqXs=";
+  };
+
+  vala = vala_0_52;
 }
diff --git a/nixpkgs/pkgs/development/compilers/z88dk/default.nix b/nixpkgs/pkgs/development/compilers/z88dk/default.nix
index 026a205cd26d..b825af6a202e 100644
--- a/nixpkgs/pkgs/development/compilers/z88dk/default.nix
+++ b/nixpkgs/pkgs/development/compilers/z88dk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "z88dk";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "z88dk";
     repo = "z88dk";
     rev = "v${version}";
-    sha256 = "14r9bjw6lgz85a59a4ajspvg12swiqxi17zicl8r7p29pi9lsibp";
+    sha256 = "sha256-NgO8rbM31IX4nrJRU0p1DUafHPagMQepKLLoOLuGlT8=";
     fetchSubmodules = true;
   };
 
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   makeFlags = [
     "git_rev=${short_rev}"
     "version=${version}"
-    "prefix=$(out)"
+    "DESTDIR=$(out)"
     "git_count=0"
   ];
 
diff --git a/nixpkgs/pkgs/development/compilers/zasm/default.nix b/nixpkgs/pkgs/development/compilers/zasm/default.nix
index 97c7aa3c2acf..88d77653f923 100644
--- a/nixpkgs/pkgs/development/compilers/zasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zasm/default.nix
@@ -1,20 +1,26 @@
-{ fetchFromGitHub, zlib, lib, stdenv }:
+{ lib, stdenv, fetchFromGitHub, zlib }:
 let
   libs-src = fetchFromGitHub {
     owner = "megatokio";
     repo = "Libraries";
-    rev = "97ea480051b106e83a086dd42583dfd3e9d458a1";
-    sha256 = "1kqmjb9660mnb0r18s1grrrisx6b73ijsinlyr97vz6992jd5dzh";
+    # 2021-02-02
+    rev = "c5cb3ed512c677db6f33e2d3539dfbb6e547030b";
+    sha256 = "sha256-GiplhZf640uScVdKL6E/fegOgtC9SE1xgBqcX86XADk=";
   };
 in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "zasm";
-  version = "4.2.6";
+  version = "4.4.7";
+
   src = fetchFromGitHub {
     owner = "megatokio";
     repo = "zasm";
-    rev = "f1424add17a5514895a598d6b5e3982579961519";
-    sha256 = "1kqnqdqp2bfsazs6vfx2aiqanxxagn8plx8g6rc11vmr8yqnnpks";
+    rev = version;
+    sha256 = "sha256-Zbno8kmzss1H2FjwzHB4U7UXxa6oDfsPV80MVVFfM68=";
+    extraPostFetch = ''
+      # remove folder containing files with weird names (causes the hash to turn out differently under macOS vs. Linux)
+      rm -rv $out/Test
+    '';
   };
 
   buildInputs = [ zlib ];
@@ -23,22 +29,23 @@ stdenv.mkDerivation {
     ln -sf ${libs-src} Libraries
   '';
 
-  buildPhase = ''
-    cd Linux
-    make
-  '';
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+    "LINK=${stdenv.cc.targetPrefix}c++"
+    "STRIP=${stdenv.cc.targetPrefix}strip"
+  ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    mv zasm $out/bin
+    install -Dm755 -t $out/bin zasm
   '';
 
   meta = with lib; {
-    description = "Z80 / 8080 assembler (for unix-style OS)";
+    description = "Z80 / 8080 / Z180 assembler (for unix-style OS)";
     homepage = "https://k1.spdns.de/Develop/Projects/zasm/Distributions/";
     license = licenses.bsd2;
     maintainers = [ maintainers.turbomack ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     badPlatforms = platforms.aarch64;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/zig/default.nix b/nixpkgs/pkgs/development/compilers/zig/default.nix
index bd96010e8bfb..a31a9e6ca43f 100644
--- a/nixpkgs/pkgs/development/compilers/zig/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zig/default.nix
@@ -1,45 +1,51 @@
-{ lib, stdenv, fetchFromGitHub, cmake, llvmPackages, libxml2, zlib, substituteAll }:
+{ lib
+, fetchFromGitHub
+, cmake
+, llvmPackages
+, libxml2
+, zlib
+}:
 
-llvmPackages.stdenv.mkDerivation rec {
-  version = "0.7.1";
+let
+  inherit (llvmPackages) stdenv;
+in
+stdenv.mkDerivation rec {
   pname = "zig";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "ziglang";
     repo = pname;
     rev = version;
-    sha256 = "1z6c4ym9jmga46cw2arn7zv2drcpmrf3vw139gscxp27n7q2z5md";
+    hash = "sha256-bILjcKX8jPl2n1HRYvYRb7jJkobwqmSJ+hHXSn9n2ag=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+    llvmPackages.llvm.dev
+  ];
   buildInputs = [
-    llvmPackages.clang-unwrapped
-    llvmPackages.llvm
-    llvmPackages.lld
     libxml2
     zlib
-  ];
+  ] ++ (with llvmPackages; [
+    libclang
+    lld
+    llvm
+  ]);
 
   preBuild = ''
     export HOME=$TMPDIR;
   '';
 
-  checkPhase = ''
-    runHook preCheck
-    ./zig test --cache-dir "$TMPDIR" -I $src/test $src/test/stage1/behavior.zig
-    runHook postCheck
-  '';
-
-  doCheck = true;
-
   meta = with lib; {
+    homepage = "https://ziglang.org/";
     description =
       "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
-    homepage = "https://ziglang.org/";
     license = licenses.mit;
+    maintainers = with maintainers; [ andrewrk AndersonTorres ];
     platforms = platforms.unix;
-    maintainers = [ maintainers.andrewrk ];
     # See https://github.com/NixOS/nixpkgs/issues/86299
     broken = stdenv.isDarwin;
   };
 }
+# TODO: checkPhase
diff --git a/nixpkgs/pkgs/development/compilers/zulu/8.nix b/nixpkgs/pkgs/development/compilers/zulu/8.nix
index dd1660d9fec7..6fcdacf535b8 100644
--- a/nixpkgs/pkgs/development/compilers/zulu/8.nix
+++ b/nixpkgs/pkgs/development/compilers/zulu/8.nix
@@ -7,7 +7,7 @@
 , setJavaClassPath
 , zulu
 # minimum dependencies
-, alsaLib
+, alsa-lib
 , fontconfig
 , freetype
 , xorg
@@ -49,7 +49,7 @@ in stdenv.mkDerivation {
   };
 
   buildInputs = lib.optionals stdenv.isLinux [
-    alsaLib # libasound.so wanted by lib/libjsound.so
+    alsa-lib # libasound.so wanted by lib/libjsound.so
     fontconfig
     freetype
     stdenv.cc.cc # libstdc++.so.6
@@ -105,5 +105,6 @@ in stdenv.mkDerivation {
     '';
     maintainers = with maintainers; [ fpletz ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "java";
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/zulu/default.nix b/nixpkgs/pkgs/development/compilers/zulu/default.nix
index c7b01877ad54..81edb8b469a8 100644
--- a/nixpkgs/pkgs/development/compilers/zulu/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zulu/default.nix
@@ -7,7 +7,7 @@
 , setJavaClassPath
 , zulu
 # minimum dependencies
-, alsaLib
+, alsa-lib
 , fontconfig
 , freetype
 , zlib
@@ -50,7 +50,7 @@ in stdenv.mkDerivation {
   };
 
   buildInputs = lib.optionals stdenv.isLinux [
-    alsaLib # libasound.so wanted by lib/libjsound.so
+    alsa-lib # libasound.so wanted by lib/libjsound.so
     fontconfig
     freetype
     stdenv.cc.cc # libstdc++.so.6
@@ -108,5 +108,6 @@ in stdenv.mkDerivation {
     '';
     maintainers = with maintainers; [ fpletz ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "java";
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/zz/default.nix b/nixpkgs/pkgs/development/compilers/zz/default.nix
index 81c6e546e95f..a0bf9a9ad8ff 100644
--- a/nixpkgs/pkgs/development/compilers/zz/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zz/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  cargoSha256 = "0i3c459d4699z4dwvdw1495krdv3c2qpygrsw0cz3j0zd2n5gqj6";
+  cargoSha256 = "03xdmm4993hqdb3cihjjv4n4mdk8lnlccva08fh6m1d56p807rni";
 
   postPatch = ''
     # remove search path entry which would reference /build
diff --git a/nixpkgs/pkgs/development/coq-modules/CoLoR/default.nix b/nixpkgs/pkgs/development/coq-modules/CoLoR/default.nix
index 4c5b6a4f6a9a..46738343431a 100644
--- a/nixpkgs/pkgs/development/coq-modules/CoLoR/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/CoLoR/default.nix
@@ -5,11 +5,13 @@ with lib; mkCoqDerivation {
   owner = "fblanqui";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
+    {case = range "8.12" "8.13"; out = "1.8.1"; }
     {case = range "8.10" "8.11"; out = "1.7.0"; }
     {case = range "8.8"  "8.9";  out = "1.6.0"; }
     {case = range "8.6"  "8.7";  out = "1.4.0"; }
   ] null;
 
+  release."1.8.1".sha256 = "0knhca9fffmyldn4q16h9265i7ih0h4jhcarq4rkn0wnn7x8w8yw";
   release."1.7.0".rev    = "08b5481ed6ea1a5d2c4c068b62156f5be6d82b40";
   release."1.7.0".sha256 = "1w7fmcpf0691gcwq00lm788k4ijlwz3667zj40j5jjc8j8hj7cq3";
   release."1.6.0".rev    = "328aa06270584b578edc0d2925e773cced4f14c8";
diff --git a/nixpkgs/pkgs/development/coq-modules/VST/default.nix b/nixpkgs/pkgs/development/coq-modules/VST/default.nix
index af560ec49a0b..ad5caec94921 100644
--- a/nixpkgs/pkgs/development/coq-modules/VST/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/VST/default.nix
@@ -7,7 +7,11 @@ with lib; mkCoqDerivation {
   owner = "PrincetonUniversity";
   repo = "VST";
   inherit version;
-  defaultVersion = if coq.coq-version == "8.11" then "2.6" else null;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = range "8.12" "8.13"; out = "2.7.1"; }
+    { case = "8.11"; out = "2.6"; }
+  ] null;
+  release."2.7.1".sha256 = "1674j7bkvihiv19vizm99dp6gj3lryb00zx6a87jz214f3ydcvnj";
   release."2.6".sha256 = "00bf9hl4pvmsqa08lzjs1mrxyfgfxq4k6778pnldmc8ichm90jgk";
   releaseRev = v: "v${v}";
   propagatedBuildInputs = [ compcert ];
diff --git a/nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix b/nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix
new file mode 100644
index 000000000000..445a0422446a
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix
@@ -0,0 +1,46 @@
+{ lib, mkCoqDerivation, coq, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "aac-tactics";
+
+  releaseRev = v: "v${v}";
+
+  release."8.13.0".sha256 = "sha256-MAnMc4KzC551JInrRcfKED4nz04FO0GyyyuDVRmnYTY=";
+  release."8.12.0".sha256 = "sha256-dPNA19kZo/2t3rbyX/R5yfGcaEfMhbm9bo71Uo4ZwoM=";
+  release."8.11.0".sha256 = "sha256-CKKMiJLltIb38u+ZKwfQh/NlxYawkafp+okY34cGCYU=";
+  release."8.10.0".sha256 = "sha256-Ny3AgfLAzrz3FnoUqejXLApW+krlkHBmYlo3gAG0JsM=";
+  release."8.9.0".sha256 = "sha256-6Pp0dgYEnVaSnkJR/2Cawt5qaxWDpBI4m0WAbQboeWY=";
+  release."8.8.0".sha256 = "sha256-mwIKp3kf/6i9IN3cyIWjoRtW8Yf8cc3MV744zzFM3u4=";
+  release."8.6.1".sha256 = "sha256-PfovQ9xJnzr0eh/tO66yJ3Yp7A5E1SQG46jLIrrbZFg=";
+  release."8.5.0".sha256 = "sha256-7yNxJn6CH5xS5w/zsXfcZYORa6e5/qS9v8PUq2o02h4=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = "8.13"; out = "8.13.0"; }
+    { case = "8.12"; out = "8.12.0"; }
+    { case = "8.11"; out = "8.11.0"; }
+    { case = "8.10"; out = "8.10.0"; }
+    { case = "8.9"; out = "8.9.0"; }
+    { case = "8.8"; out = "8.8.0"; }
+    { case = "8.6"; out = "8.6.1"; }
+    { case = "8.5"; out = "8.5.0"; }
+  ] null;
+
+  mlPlugin = true;
+
+  meta = {
+    description = "Coq plugin providing tactics for rewriting universally quantified equations";
+    longDescription = ''
+      This Coq plugin provides tactics for rewriting universally quantified
+      equations, modulo associativity and commutativity of some operator.
+      The tactics can be applied for custom operators by registering the
+      operators and their properties as type class instances. Many common
+      operator instances, such as for Z binary arithmetic and booleans, are
+      provided with the plugin.
+    '';
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/autosubst/0001-changes-to-work-with-Coq-8.6.patch b/nixpkgs/pkgs/development/coq-modules/autosubst/0001-changes-to-work-with-Coq-8.6.patch
deleted file mode 100644
index dde0e2e03eb6..000000000000
--- a/nixpkgs/pkgs/development/coq-modules/autosubst/0001-changes-to-work-with-Coq-8.6.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From 5b40a32e35fe446cda20ed34c756a010856f39ce Mon Sep 17 00:00:00 2001
-From: Theo Giannakopoulos <theo.giannakopoulos@baesystems.com>
-Date: Wed, 5 Apr 2017 15:48:55 -0400
-Subject: [PATCH] changes to work with Coq 8.6
-
----
- theories/Autosubst_Derive.v | 12 ++++++++++++
- theories/Autosubst_MMap.v   |  3 ++-
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/theories/Autosubst_Derive.v b/theories/Autosubst_Derive.v
-index 61995de..cf87f67 100644
---- a/theories/Autosubst_Derive.v
-+++ b/theories/Autosubst_Derive.v
-@@ -18,6 +18,7 @@ Hint Extern 0 (Ids _) => derive_Ids : derive.
- 
- Ltac derive_Rename :=
-   match goal with [ |- Rename ?term ] =>
-+    let inst := fresh "inst" in
-     hnf; fix inst 2; change _ with (Rename term) in inst;
-     intros xi s; change (annot term s); destruct s;
-     match goal with
-@@ -66,6 +67,7 @@ Ltac has_var s :=
- Ltac derive_Subst :=
-   match goal with [ |- Subst ?term ] =>
-     require_instance (Rename term);
-+    let inst := fresh "inst" in
-     hnf; fix inst 2; change _ with (Subst term) in inst;
-     intros sigma s; change (annot term s); destruct s;
-     match goal with
-@@ -107,6 +109,7 @@ Hint Extern 0 (Subst _) => derive_Subst : derive.
- Ltac derive_HSubst :=
-   match goal with [ |- HSubst ?inner ?outer ] =>
-     require_instance (Subst inner);
-+    let inst := fresh "inst" in
-     hnf; fix inst 2; change _ with (HSubst inner outer) in inst;
-     intros sigma s; change (annot outer s); destruct s;
-     match goal with
-@@ -327,6 +330,7 @@ Ltac derive_SubstLemmas :=
-      assert (up_upren_n :
-                forall xi n, upn n (ren xi) = ren (iterate upren n xi)) by
-        (apply up_upren_n_internal, up_upren);
-+     let ih := fresh "ih" in
-      fix ih 2; intros xi s; destruct s; try reflexivity; simpl; f_equal;
-      try apply mmap_ext; intros; rewrite ?up_upren, ?up_upren_n; apply ih);
- 
-@@ -337,6 +341,7 @@ Ltac derive_SubstLemmas :=
-        (apply up_id_internal; reflexivity);
-      assert (up_id_n : forall n, upn n ids = ids) by
-        (apply up_id_n_internal, up_id);
-+     let ih := fresh "ih" in
-      fix ih 1; intros s; destruct s; simpl; f_equal; try reflexivity;
-      rewrite ?up_id, ?up_id_n; try apply mmap_id_ext; intros; apply ih);
- 
-@@ -344,6 +349,7 @@ Ltac derive_SubstLemmas :=
- 
-     assert (ren_subst_comp :
-        forall xi sigma (s : term), (rename xi s).[sigma] = s.[xi >>> sigma]) by(
-+     let ih := fresh "ih" in
-      fix ih 3; intros xi sigma s; destruct s; try reflexivity; simpl; f_equal;
-      rewrite ?up_comp_ren_subst, ?up_comp_ren_subst_n, ?mmap_comp;
-      try apply mmap_ext; intros; apply ih);
-@@ -357,6 +363,7 @@ Ltac derive_SubstLemmas :=
-      assert (up_comp_subst_ren_n :
-       forall sigma xi n, upn n (sigma >>> rename xi) = upn n sigma >>> rename (iterate upren n xi))
-       by (apply up_comp_subst_ren_n_internal; apply up_comp_subst_ren);
-+     let ih := fresh "ih" in
-      fix ih 3; intros sigma xi s; destruct s; try reflexivity; simpl;
-      f_equal; rewrite ?up_comp_subst_ren, ?up_comp_subst_ren_n, ?mmap_comp;
-      try (rewrite hcomp_ren_internal; [|apply rename_subst]);
-@@ -368,6 +375,7 @@ Ltac derive_SubstLemmas :=
-       by (apply up_comp_internal; [reflexivity|apply ren_subst_comp|apply subst_ren_comp]);
-      assert (up_comp_n : forall sigma tau n, upn n (sigma >> tau) = upn n sigma >> upn n tau)
-       by (apply up_comp_n_internal; apply up_comp);
-+     let ih := fresh "ih" in
-      fix ih 3; intros sigma tau s; destruct s; try reflexivity; simpl; f_equal;
-      rewrite ?up_comp, ?up_comp_n, ?mmap_comp, ?hcomp_dist_internal;
-      try apply mmap_ext; intros; apply ih);
-@@ -382,6 +390,7 @@ Ltac derive_HSubstLemmas :=
-   let ids := constr:(ids : var -> inner) in
- 
-   assert (hsubst_id : forall (s : outer), s.|[ids] = s) by (
-+    let ih := fresh "ih" in
-     fix ih 1; intros s; destruct s; try reflexivity; simpl; f_equal;
-     rewrite ?up_id, ?up_id_n; try apply mmap_id_ext; intros;
-     (apply subst_id || apply ih)
-@@ -390,6 +399,7 @@ Ltac derive_HSubstLemmas :=
-   assert (hsubst_comp : forall (theta eta : var -> inner) (s : outer),
-     s.|[theta].|[eta] = s.|[theta >> eta])
-   by (
-+    let ih := fresh "ih" in
-     fix ih 3; intros sigma tau s; destruct s; try reflexivity; simpl; f_equal;
-     rewrite <- ?up_comp, <- ?up_comp_n, ?mmap_comp; try apply mmap_ext; intros;
-     (apply subst_comp || apply ih)
-@@ -405,6 +415,7 @@ Ltac derive_SubstHSubstComp :=
-   assert (ren_hsubst_comp : forall xi (theta : var -> inner) (s : outer),
-     rename xi s.|[theta] = (rename xi s).|[theta]
-   ) by (
-+    let ih := fresh "ih" in
-     fix ih 3; intros xi theta s; destruct s; try reflexivity; simpl; f_equal;
-     rewrite ?mmap_comp; try apply mmap_ext; intros; simpl; apply ih
-   );
-@@ -421,6 +432,7 @@ Ltac derive_SubstHSubstComp :=
-     apply up_hcomp_n_internal; apply up_hcomp
-   );
- 
-+  let ih := fresh "ih" in
-   fix ih 3; intros sigma tau s; destruct s; try reflexivity; simpl; f_equal;
-   rewrite ?up_hcomp, ?up_hcomp_n, ?hcomp_lift_n_internal, ?mmap_comp;
-   try apply mmap_ext; intros; apply ih
-diff --git a/theories/Autosubst_MMap.v b/theories/Autosubst_MMap.v
-index f8387e7..7af7902 100644
---- a/theories/Autosubst_MMap.v
-+++ b/theories/Autosubst_MMap.v
-@@ -23,7 +23,7 @@ Arguments mmap {A B _} f !s /.
- Class MMapExt (A B : Type) `{MMap A B} := 
-   mmap_ext : forall f g,
-     (forall t, f t = g t) -> forall s, mmap f s = mmap g s.
--Arguments mmap_ext {A B _ _ f g} H s.
-+Arguments mmap_ext {A B H' _ f g} H s : rename.
- 
- Class MMapLemmas (A B : Type) `{MMap A B} := {
-   mmap_id x : mmap id x = x;
-@@ -123,6 +123,7 @@ Tactic Notation "msimpl" "in" "*" := (in_all msimplH); msimpl.
- 
- Ltac derive_MMap :=
-   hnf; match goal with [ |- (?A -> ?A) -> ?B -> ?B ] =>
-+    let map := fresh "map" in
-     intros f; fix map 1; intros xs; change (annot B xs); destruct xs;
-     match goal with
-       | [ |- annot _ ?ys ] =>
--- 
-2.13.2
-
diff --git a/nixpkgs/pkgs/development/coq-modules/autosubst/default.nix b/nixpkgs/pkgs/development/coq-modules/autosubst/default.nix
index b2609d5dfc32..a5f7cbb2f0b1 100644
--- a/nixpkgs/pkgs/development/coq-modules/autosubst/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/autosubst/default.nix
@@ -1,22 +1,23 @@
-{ lib, mkCoqDerivation, coq, mathcomp, version ? null }:
+{ lib, mkCoqDerivation, coq, mathcomp-ssreflect, version ? null }:
+with lib;
 
-with lib; mkCoqDerivation {
-  pname   = "autosubst";
-  owner   = "uds-psl";
-  inherit version;
-  defaultVersion = with versions;
-    if range "8.5" "8.7" coq.coq-version then "5b40a32e" else null;
+mkCoqDerivation {
+  pname = "autosubst";
 
-  release."5b40a32e".rev    = "1c3bb3bbf5477e3b33533a0fc090399f45fe3034";
-  release."5b40a32e".sha256 = "1wqfzc9az85fvx71xxfii502jgc3mp0r3xwfb8vnb03vkk625ln0";
+  release."1.7".rev    = "v1.7";
+  release."1.7".sha256 = "sha256-qoyteQ5W2Noxf12uACOVeHhPLvgmTzrvEo6Ts+FKTGI=";
 
-  propagatedBuildInputs = [ mathcomp.ssreflect ];
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.10"; out = "1.7"; }
+  ] null;
 
-  patches = [./0001-changes-to-work-with-Coq-8.6.patch];
+  propagatedBuildInputs = [ mathcomp-ssreflect ];
 
   meta = {
     homepage = "https://www.ps.uni-saarland.de/autosubst/";
     description = "Automation for de Bruijn syntax and substitution in Coq";
-    maintainers = with maintainers; [ jwiegley ];
+    maintainers = with maintainers; [ siraben jwiegley ];
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix b/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
index 0aff0e3b54d4..5bf0cd8f8351 100644
--- a/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -4,7 +4,7 @@ with builtins; with lib; let
   elpi = coq.ocamlPackages.elpi.override (lib.switch coq.coq-version [
     { case = "8.11"; out = { version = "1.11.4"; };}
     { case = "8.12"; out = { version = "1.12.0"; };}
-    { case = "8.13"; out = { version = "1.13.1"; };}
+    { case = "8.13"; out = { version = "1.13.5"; };}
   ] {});
 in mkCoqDerivation {
   pname = "elpi";
@@ -12,10 +12,11 @@ in mkCoqDerivation {
   owner = "LPCIC";
   inherit version;
   defaultVersion = lib.switch coq.coq-version [
-    { case = "8.13"; out = "1.9.7"; }
+    { case = "8.13"; out = "1.10.1"; }
     { case = "8.12"; out = "1.8.3_8.12"; }
     { case = "8.11"; out = "1.6.3_8.11"; }
   ] null;
+  release."1.10.1".sha256      = "1zsyx26dvj7pznfd2msl2w7zbw51q1nsdw0bdvdha6dga7ijf7xk";
   release."1.9.7".sha256      = "0rvn12h9dpk9s4pxy32p8j0a1h7ib7kg98iv1cbrdg25y5vs85n1";
   release."1.9.5".sha256      = "0gjdwmb6bvb5gh0a6ra48bz5fb3pr5kpxijb7a8mfydvar5i9qr6";
   release."1.9.4".sha256      = "0nii7238mya74f9g6147qmpg6gv6ic9b54x5v85nb6q60d9jh0jq";
@@ -46,6 +47,6 @@ in mkCoqDerivation {
   meta = {
     description = "Coq plugin embedding ELPI.";
     maintainers = [ maintainers.cohencyril ];
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/coqeal/default.nix b/nixpkgs/pkgs/development/coq-modules/coqeal/default.nix
index 4c978a791db8..615c200c633e 100644
--- a/nixpkgs/pkgs/development/coq-modules/coqeal/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coqeal/default.nix
@@ -7,10 +7,12 @@ with lib; mkCoqDerivation {
   owner = "CoqEAL";
   inherit version;
   defaultVersion = with versions; switch [ coq.version mathcomp.version ]  [
+      { cases = [ (isGe "8.10") (range "1.11.0" "1.12.0") ]; out = "1.0.5"; }
       { cases = [ (isGe "8.7") "1.11.0" ]; out = "1.0.4"; }
       { cases = [ (isGe "8.7") "1.10.0" ]; out = "1.0.3"; }
     ] null;
 
+  release."1.0.5".sha256 = "0cmvky8glb5z2dy3q62aln6qbav4lrf2q1589f6h1gn5bgjrbzkm";
   release."1.0.4".sha256 = "1g5m26lr2lwxh6ld2gykailhay4d0ayql4bfh0aiwqpmmczmxipk";
   release."1.0.3".sha256 = "0hc63ny7phzbihy8l7wxjvn3haxx8jfnhi91iw8hkq8n29i23v24";
 
diff --git a/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix b/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix
index 79db14610758..d738041d5d23 100644
--- a/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix
@@ -6,7 +6,7 @@ with lib; mkCoqDerivation {
   owner = "thery";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = "8.12";              out = "8.12"; }
+    { case = range "8.12" "8.13"; out = "8.12"; }
     { case = range "8.10" "8.11"; out = "8.10"; }
     { case = range "8.8"  "8.9";  out = "8.8"; }
     { case = "8.7";               out = "8.7.2"; }
diff --git a/nixpkgs/pkgs/development/coq-modules/goedel/default.nix b/nixpkgs/pkgs/development/coq-modules/goedel/default.nix
new file mode 100644
index 000000000000..f6ed9491e98c
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/goedel/default.nix
@@ -0,0 +1,24 @@
+{ lib, mkCoqDerivation, coq, hydra-battles, pocklington, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "goedel";
+  owner = "coq-community";
+
+  release."8.12.0".rev    = "v8.12.0";
+  release."8.12.0".sha256 = "sha256-4lAwWFHGUzPcfHI9u5b+N+7mQ0sLJ8bH8beqQubfFEQ=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.11"; out = "8.12.0"; }
+  ] null;
+
+  propagatedBuildInputs = [ hydra-battles pocklington ];
+
+  meta = {
+    description = "The Gödel-Rosser 1st incompleteness theorem in Coq";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/hydra-battles/default.nix b/nixpkgs/pkgs/development/coq-modules/hydra-battles/default.nix
new file mode 100644
index 000000000000..a74eec4b64fc
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/hydra-battles/default.nix
@@ -0,0 +1,29 @@
+{ lib, mkCoqDerivation, coq, mathcomp, equations, paramcoq, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "hydra-battles";
+  owner = "coq-community";
+
+  release."0.3".rev    = "v0.3";
+  release."0.3".sha256 = "sha256-rXP/vJqVEg2tN/I9LWV13YQ1+C7M6lzGu3oI+7pSZzg=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.11"; out = "0.3"; }
+  ] null;
+
+  propagatedBuildInputs = [ mathcomp equations paramcoq ];
+
+  meta = {
+    description = "Variations on Kirby & Paris' hydra battles and other entertaining math in Coq";
+    longDescription = ''
+       Variations on Kirby & Paris' hydra battles and other
+       entertaining math in Coq (collaborative, documented, includes
+       exercises)
+    '';
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/interval/default.nix b/nixpkgs/pkgs/development/coq-modules/interval/default.nix
index 8671eba67241..cdb904523651 100644
--- a/nixpkgs/pkgs/development/coq-modules/interval/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/interval/default.nix
@@ -1,6 +1,4 @@
-{ lib, mkCoqDerivation, which, autoconf
-, coq, coquelicot, flocq, mathcomp
-, bignums ? null, version ? null }:
+{ lib, mkCoqDerivation, which, autoconf, coq, coquelicot, flocq, bignums ? null, version ? null }:
 
 with lib; mkCoqDerivation {
   pname = "interval";
@@ -8,12 +6,12 @@ with lib; mkCoqDerivation {
   domain = "gitlab.inria.fr";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = isGe "8.8" ;        out = "4.1.0"; }
+    { case = isGe "8.8" ;        out = "4.1.1"; }
     { case = range "8.8" "8.12"; out = "4.0.0"; }
     { case = range "8.7" "8.11"; out = "3.4.2"; }
     { case = range "8.5" "8.6";  out = "3.3.0"; }
   ] null;
-  release."4.1.0".sha256 = "1jv27n5c4f3a9d8sizraa920iqi35x8cik8lm7pjp1dkiifz47nb";
+  release."4.1.1".sha256 = "sha256-h2NJ6sZt1C/88v7W2xyuftEDoyRt3H6kqm5g2hc1aoU=";
   release."4.0.0".sha256 = "1hhih6zmid610l6c8z3x4yzdzw9jniyjiknd1vpkyb2rxvqm3gzp";
   release."3.4.2".sha256 = "07ngix32qarl3pjnm9d0vqc9fdrgm08gy7zp306hwxjyq7h1v7z0";
   release."3.3.0".sha256 = "0lz2hgggzn4cvklvm8rpaxvwaryf37i8mzqajqgdxdbd8f12acsz";
diff --git a/nixpkgs/pkgs/development/coq-modules/mathcomp-zify/default.nix b/nixpkgs/pkgs/development/coq-modules/mathcomp-zify/default.nix
new file mode 100644
index 000000000000..65af999d08f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/mathcomp-zify/default.nix
@@ -0,0 +1,22 @@
+{ lib, mkCoqDerivation, coq, mathcomp-algebra, version ? null }:
+
+with lib; mkCoqDerivation rec {
+  pname = "mathcomp-zify";
+  repo = "mczify";
+  owner = "math-comp";
+  inherit version;
+
+  defaultVersion = with versions;
+     switch [ coq.coq-version mathcomp-algebra.version ] [
+       { cases = [ (isEq "8.13") (isEq "1.12") ]; out = "1.0.0+1.12+8.13"; }
+     ] null;
+
+  release."1.0.0+1.12+8.13".sha256 = "1j533vx6lacr89bj1bf15l1a0s7rvrx4l00wyjv99aczkfbz6h6k";
+
+  propagatedBuildInputs = [ mathcomp-algebra ];
+
+  meta = {
+    description = "Micromega tactics for Mathematical Components";
+    maintainers = with maintainers; [ cohencyril ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/metalib/default.nix b/nixpkgs/pkgs/development/coq-modules/metalib/default.nix
index 3ce3c625d268..14f1bab574ad 100644
--- a/nixpkgs/pkgs/development/coq-modules/metalib/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/metalib/default.nix
@@ -4,7 +4,7 @@ with lib; mkCoqDerivation {
   pname = "metalib";
   owner = "plclub";
   inherit version;
-  defaultVersion = if versions.range "8.10" "8.12" coq.coq-version then "20200527" else null;
+  defaultVersion = if versions.range "8.10" "8.13" coq.coq-version then "20200527" else null;
   release."20200527".rev    = "597fd7d0c93eb159274e84a39d554f10f1efccf8";
   release."20200527".sha256 = "0wbypc05d2lqfm9qaw98ynr5yc1p0ipsvyc3bh1rk9nz7zwirmjs";
 
diff --git a/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix b/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix
index 342e4225a3c2..8f2ef30d37cc 100644
--- a/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix
@@ -3,9 +3,10 @@
 with lib; mkCoqDerivation {
   pname = "paramcoq";
   inherit version;
-  defaultVersion = if versions.range "8.7" "8.12" coq.coq-version
+  defaultVersion = if versions.range "8.7" "8.13" coq.coq-version
     then "1.1.2+coq${coq.coq-version}" else null;
   displayVersion = { paramcoq = "1.1.2"; };
+  release."1.1.2+coq8.13".sha256 = "02vnf8p04ynf3qk8myvjzsbga15395235mpdpj54pvxis3h5qq22";
   release."1.1.2+coq8.12".sha256 = "0qd72r45if4h7c256qdfiimv75zyrs0w0xqij3m866jxaq591v4i";
   release."1.1.2+coq8.11".sha256 = "09c6813988nvq4fpa45s33k70plnhxsblhm7cxxkg0i37mhvigsa";
   release."1.1.2+coq8.10".sha256 = "1lq1mw15w4yky79qg3rm0mpzqi2ir51b6ak04ismrdr7ixky49y8";
diff --git a/nixpkgs/pkgs/development/coq-modules/pocklington/default.nix b/nixpkgs/pkgs/development/coq-modules/pocklington/default.nix
new file mode 100644
index 000000000000..111bffeca2c9
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/pocklington/default.nix
@@ -0,0 +1,22 @@
+{ lib, mkCoqDerivation, coq, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "pocklington";
+  owner = "coq-community";
+
+  release."8.12.0".rev    = "v8.12.0";
+  release."8.12.0".sha256 = "sha256-0xBrw9+4g14niYdNqp0nx00fPJoSSnaDSDEaIVpPfjs=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.7"; out = "8.12.0"; }
+  ] null;
+
+  meta = {
+    description = "Pocklington's criterion for primality in Coq";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/reglang/default.nix b/nixpkgs/pkgs/development/coq-modules/reglang/default.nix
new file mode 100644
index 000000000000..bc18108264a1
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/reglang/default.nix
@@ -0,0 +1,25 @@
+{ lib, mkCoqDerivation, coq, ssreflect, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "reglang";
+
+  releaseRev = v: "v${v}";
+
+  release."1.1.2".sha256 = "sha256-SEnMilLNxh6a3oiDNGLaBr8quQ/nO2T9Fwdf/1il2Yk=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = range "8.10" "8.13"; out = "1.1.2"; }
+  ] null;
+
+
+  propagatedBuildInputs = [ ssreflect ];
+
+  meta = {
+    description = "Regular Language Representations in Coq";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.cecill-b;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/relation-algebra/default.nix b/nixpkgs/pkgs/development/coq-modules/relation-algebra/default.nix
new file mode 100644
index 000000000000..da74215d537f
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/relation-algebra/default.nix
@@ -0,0 +1,35 @@
+{ lib, mkCoqDerivation, coq, aac-tactics, mathcomp, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "relation-algebra";
+  owner = "damien-pous";
+
+  releaseRev = v: "v${v}";
+
+  release."1.7.5".sha256 = "sha256-XdO8agoJmNXPv8Ho+KTlLCB4oRlQsb0w06aM9M16ZBU=";
+  release."1.7.4".sha256 = "sha256-o+v2CIAa2+9tJ/V8DneDTf4k31KMHycgMBLaQ+A4ufM=";
+  release."1.7.3".sha256 = "sha256-4feSNfi7h4Yhwn5L+9KP9K1S7HCPvsvaVWwoQSTFvos=";
+  release."1.7.2".sha256 = "sha256-f4oNjXspNMEz3AvhIeYO3avbUa1AThoC9DbcHMb5A2o=";
+  release."1.7.1".sha256 = "sha256-WWVMcR6z8rT4wzZPb8SlaVWGe7NC8gScPqawd7bltQA=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.13"; out = "1.7.5"; }
+    { case = isGe "8.12"; out = "1.7.4"; }
+    { case = isGe "8.11"; out = "1.7.3"; }
+    { case = isGe "8.10"; out = "1.7.2"; }
+    { case = isGe "8.9"; out = "1.7.1"; }
+  ] null;
+
+  mlPlugin = true;
+
+  propagatedBuildInputs = [ aac-tactics mathcomp.ssreflect ];
+
+  meta = {
+    description = "Relation algebra library for Coq";
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/topology/default.nix b/nixpkgs/pkgs/development/coq-modules/topology/default.nix
new file mode 100644
index 000000000000..b4367f0a8fcc
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/topology/default.nix
@@ -0,0 +1,38 @@
+{ lib, mkCoqDerivation, coq, mathcomp, zorns-lemma, version ? null }:
+with lib;
+
+mkCoqDerivation rec {
+  pname = "topology";
+
+  releaseRev = v: "v${v}";
+
+  release."8.12.0".sha256 = "sha256-ypHmHwzwZ6MQPYwuS3QyZmVOEPUCSbO2lhVaA6TypgQ=";
+  release."8.10.0".sha256 = "sha256-mCLF3JYIiO3AEW9yvlcLeF7zN4SjW3LG+Y5vYB0l55A=";
+  release."8.9.0".sha256 = "sha256-ZJh1BM34iZOQ75zqLIA+KtBjO2y33y0UpAw/ydCWQYc=";
+  release."8.8.0".sha256 = "sha256-Yfm3UymEP1e+BKMNPhdRFLdFhynMirtQ8E0HXnRiqHU=";
+  release."8.7.0".sha256 = "sha256-qcZQKvMRs5wWIAny8ciF9TrmEQfKKO9fWhwIRL+s7VA=";
+  release."8.6.0".sha256 = "sha256-eu/dBEFo3y6vnXlJljUD4hds6+qgAPQVvsuspyGHcj8=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.12"; out = "8.12.0"; }
+    { case = "8.11"; out = "8.12.0"; }
+    { case = "8.10"; out = "8.10.0"; }
+    { case = "8.9"; out = "8.9.0"; }
+    { case = "8.8"; out = "8.8.0"; }
+    { case = "8.7"; out = "8.7.0"; }
+    { case = "8.6"; out = "8.6.0"; }
+  ] null;
+
+  propagatedBuildInputs = optional (versions.isLe "8.12" defaultVersion) zorns-lemma;
+
+  meta = {
+    description = "General topology in Coq";
+    longDescription = ''
+      This library develops some of the basic concepts and results of
+      general topology in Coq.
+    '';
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.lgpl21Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/zorns-lemma/default.nix b/nixpkgs/pkgs/development/coq-modules/zorns-lemma/default.nix
new file mode 100644
index 000000000000..84c3fd805197
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/zorns-lemma/default.nix
@@ -0,0 +1,38 @@
+{ lib, mkCoqDerivation, coq, version ? null }:
+with lib;
+
+mkCoqDerivation {
+  pname = "zorns-lemma";
+
+  releaseRev = v: "v${v}";
+
+  release."8.11.0".sha256 = "sha256-2Hf7YwRcFmP/DqwFtF1p78MCNV50qUWfMVQtZbwKd0k=";
+  release."8.10.0".sha256 = "sha256-qLPLK2ZLJQ4SmJX2ADqFiP4kgHuQFJTeNXkBbjiFS+4=";
+  release."8.9.0".sha256 = "sha256-lEh978cXehglFX9D92RVltEuvN8umfPo/hvmFZm2NGo=";
+  release."8.8.0".sha256 = "sha256-ikXGzABu8VW7O0xNtCNvIq29c+mlDUm4k/ygVcsgDOI=";
+  release."8.7.0".sha256 = "sha256-jozvkkKLFBllN6K4oeYD0lNG+MdnOuKrDUPDocHUG6c=";
+  release."8.6.0".sha256 = "sha256-jozvkkKLFBllN6K4oeYD0lNG+MdnOuKrDUPDocHUG6c=";
+  release."8.5.0".sha256 = "sha256-mH/v02ObMjbVPYx2H+Jhz+Xp0XRKN67iMAdA1VNFzso=";
+
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.11"; out = "8.11.0"; }
+    { case = "8.10"; out = "8.10.0"; }
+    { case = "8.9"; out = "8.9.0"; }
+    { case = "8.8"; out = "8.8.0"; }
+    { case = "8.7"; out = "8.7.0"; }
+    { case = "8.6"; out = "8.6.0"; }
+    { case = "8.5"; out = "8.5.0"; }
+  ] null;
+
+  meta = {
+    description = "Development of basic set theory";
+    longDescription = ''
+      This Coq library develops some basic set theory.  The main
+      purpose the author had in writing it was as support for the
+      Topology library.
+    '';
+    maintainers = with maintainers; [ siraben ];
+    license = licenses.lgpl21Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/create_deps.sh b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/create_deps.sh
index f3cdcbc0c108..37f0585d1fef 100755
--- a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/create_deps.sh
+++ b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/create_deps.sh
@@ -4,6 +4,8 @@
 # Run this script to generate deps.nix
 # ./create_deps.sh /path/to/microsoft/python/language/server/source/checkout
 
+set -euo pipefail
+
 SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 
 if [ -d "$1" ]; then
@@ -14,13 +16,13 @@ else
 fi
 
 # Generate lockfiles in source checkout
-cd $CHECKOUT_PATH/src
+cd "$CHECKOUT_PATH/src"
 dotnet nuget locals all --clear
 dotnet restore -v normal --no-cache PLS.sln --use-lock-file -r linux-x64
 
 # Use the lockfiles to make a file with two columns: name and version number
 # for all possible package dependencies
-cd $SCRIPTDIR
+cd "$SCRIPTDIR"
 echo "" > all_versions.txt
 for lockfile in $(find "$CHECKOUT_PATH" -name packages.lock.json); do
     echo "Processing lockfile $lockfile"
diff --git a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix
index 526e93f84c42..6502890af2be 100644
--- a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix
+++ b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix
@@ -11,7 +11,7 @@
 
 let deps = import ./deps.nix { inherit fetchurl; };
 
-    version = "2020-06-19";
+    version = "2020-10-08";
 
     # Build the nuget source needed for the later build all by itself
     # since it's a time-consuming step that only depends on ./deps.nix.
@@ -49,8 +49,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "python-language-server";
-    rev = "838ba78e00173d639bd90f54d8610ec16b4ba3a2";
-    sha256 = "0nj8l1apcb67gqwy5i49v0f01fs4lvdfmmp4w2hvrpss9if62c1m";
+    rev = "76a29da373a4bb1e81b052f25802f3ca872d0a67";
+    sha256 = "16jb90lacdrhi4dpp084bqzx351mv23f4mhl4lz5h6rkfzj5jxgg";
   };
 
   buildInputs = [dotnet-sdk_3 openssl icu];
@@ -62,6 +62,8 @@ stdenv.mkDerivation {
   ];
 
   buildPhase = ''
+    runHook preBuild
+
     mkdir home
     export HOME=$(mktemp -d)
     export DOTNET_CLI_TELEMETRY_OPTOUT=1
@@ -75,14 +77,20 @@ stdenv.mkDerivation {
     pushd src/LanguageServer/Impl
     dotnet publish --no-restore -c Release -r linux-x64
     popd
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out
     cp -r output/bin/Release/linux-x64/publish $out/lib
 
     mkdir $out/bin
     makeWrapper $out/lib/Microsoft.Python.LanguageServer $out/bin/python-language-server
+
+    runHook postInstall
   '';
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix
index 6a494e7e5214..899f38d256dd 100644
--- a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix
+++ b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix
@@ -47,18 +47,6 @@ in [
   })
 
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.App.Ref";
-    version = "3.0.1";
-    sha256 = "0k2ry757qhm99xwm0wh4zalxn9nmxhfswd184z1fjr42szr511fb";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
-    version = "3.0.3";
-    sha256 = "1jcqy8i9fzb1pmkazi80yqr09zi5nk30n57i46ggr5ky45jngfq9";
-  })
-
-  (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
     version = "3.1.8";
     sha256 = "140zr3nwkmf6xc52gq4iz6ycyh95fxy0jpgn637pkd9z423z8135";
@@ -72,8 +60,8 @@ in [
 
   (fetchNuGet {
     name = "Microsoft.CodeCoverage";
-    version = "16.5.0";
-    sha256 = "0610wzn4qyywf9lb4538vwqhprxc4g0g7gjbmnjzvx97jr5nd5mf";
+    version = "16.7.1";
+    sha256 = "1farw63445cdyciplfs6l9j1gayxw16rkzmrwsiswfyjhqz70xd4";
   })
 
   (fetchNuGet {
@@ -84,38 +72,8 @@ in [
 
   (fetchNuGet {
     name = "Microsoft.Extensions.FileSystemGlobbing";
-    version = "3.1.2";
-    sha256 = "1zwvzp0607irs7irfbq8vnclg5nj2jpyggw9agm4a32la5ngg27m";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NetCore.App.Host.linux-x64";
-    version = "3.0.3";
-    sha256 = "19igfvwsjzwkh90gqzabl6pdkyygslj2iwpsxg680phffzr411w4";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NetCore.App.Host.linux-x64";
     version = "3.1.8";
-    sha256 = "0iawz5mqaf1c4r5cf0ks4wqhgpbqi185l80q4909axh516xsjnvs";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NetCore.App.Ref";
-    version = "3.0.0";
-    sha256 = "1qi382157ln7yngazvr3nskpjkab4x8sqx11l13xyg56vyyjyyiw";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NetCore.App.Ref";
-    version = "3.1.0";
-    sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NetCore.App.Runtime.linux-x64";
-    version = "3.0.3";
-    sha256 = "1ykgfnphbkyck0gqbbh5n96w59z2bq47g896ygal1j4nblj3s44v";
+    sha256 = "1v2lr0vbssqayzgxvdwb54jmvz7mvlih4l9h7i71gm3c62nlbq8y";
   })
 
   (fetchNuGet {
@@ -138,8 +96,8 @@ in [
 
   (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
-    version = "2.0.0";
-    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
+    version = "3.0.0";
+    sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51";
   })
 
   (fetchNuGet {
@@ -156,44 +114,38 @@ in [
 
   (fetchNuGet {
     name = "Microsoft.NET.Test.Sdk";
-    version = "16.5.0";
-    sha256 = "19f5bvzci5mmfz81jwc4dax4qdf7w4k67n263383mn8mawf22bfq";
+    version = "16.7.1";
+    sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8";
   })
 
   (fetchNuGet {
     name = "Microsoft.TestPlatform.ObjectModel";
-    version = "16.5.0";
-    sha256 = "02h7j1fr0fwcggn0wgddh59k8b2wmly3snckwhswzqvks5rvfnnw";
+    version = "16.7.1";
+    sha256 = "0s9dyh99gzdpk1i5v468i2r9m6i3jrr41r394pwdwiajsz99kay0";
   })
 
   (fetchNuGet {
     name = "Microsoft.TestPlatform.TestHost";
-    version = "16.5.0";
-    sha256 = "08cvss66lqa92h55dxkbrzn796jckhlyj53zz22x3qyr6xi21v5v";
+    version = "16.7.1";
+    sha256 = "1xik06rxn9ps83in0zn9vcl2ibv3acmdqvrx07qq89lxj1sgqlhs";
   })
 
   (fetchNuGet {
     name = "Microsoft.VisualStudio.Threading";
-    version = "16.4.33";
-    sha256 = "09djx2xz22w48csd0bkpwi1rgpjpaj3mml16wfy8jlsnc66swmnh";
+    version = "16.5.132";
+    sha256 = "05lngndl6hg4v3vk9l1n1g2lbfjb7jnr5dnkjld9wx3vamdfcfxw";
   })
 
   (fetchNuGet {
     name = "Microsoft.VisualStudio.Threading";
-    version = "16.4.45";
-    sha256 = "16p61kxsnwanp3nac0gkarl7a94c02qyqjzdkijl5va9k3fa97m6";
+    version = "16.6.13";
+    sha256 = "0qbvcwy7njz5zpqgfqdf41gf9xqcz64z4rkfjf6bi4zynpkv6n1l";
   })
 
   (fetchNuGet {
     name = "Microsoft.VisualStudio.Threading.Analyzers";
-    version = "16.4.45";
-    sha256 = "12m0f037pz3ynm69810p4c96nrlnqihx6w4qyrs0kqsxiajf16jc";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.VisualStudio.Validation";
-    version = "15.3.15";
-    sha256 = "1v3r2rlichlvxjrmj1grii1blnl9lp9npg2p6q3q4j6lamskxa9r";
+    version = "16.6.13";
+    sha256 = "09nqkjnarwj0chb6xrzscq98mpgi86n2a3mfdd3y695kviq99s18";
   })
 
   (fetchNuGet {
@@ -210,8 +162,8 @@ in [
 
   (fetchNuGet {
     name = "Microsoft.Win32.Registry";
-    version = "4.5.0";
-    sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q";
+    version = "4.6.0";
+    sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s";
   })
 
   (fetchNuGet {
@@ -222,20 +174,20 @@ in [
 
   (fetchNuGet {
     name = "MSTest.TestAdapter";
-    version = "2.1.0";
-    sha256 = "1g1v8yjnk4nr1c36k3cz116889bnpiw1i1jkmqnpb19wms7sq7cz";
+    version = "2.1.2";
+    sha256 = "1390nyc0sf5c4j75cq58bzqjcw77sp2lmpllmm5sp8ysi0fjyfs5";
   })
 
   (fetchNuGet {
     name = "MSTest.TestFramework";
-    version = "2.1.0";
-    sha256 = "0mac4h7ylw953chclhz0lrn19yks3bab9dn9x9fpjqi7309gid0p";
+    version = "2.1.2";
+    sha256 = "1617q2accpa8fwy9n1snmjxyx2fz3phks62mdi45cl65kdin0x4z";
   })
 
   (fetchNuGet {
     name = "Nerdbank.Streams";
-    version = "2.4.60";
-    sha256 = "01554nbs6dj4fjd59b95kaw84j27kfb5y5ixjbl23nh62kpgrd3r";
+    version = "2.5.76";
+    sha256 = "017h8m1zrm247alhlz4vqsz580b8b88s50cyxb939hmc2nn0qlfv";
   })
 
   (fetchNuGet {
@@ -276,8 +228,8 @@ in [
 
   (fetchNuGet {
     name = "NSubstitute";
-    version = "4.2.1";
-    sha256 = "0wgfjh032qds994fmgxvsg88nhgjrx7p9rnv6z678jm62qi14asy";
+    version = "4.2.2";
+    sha256 = "1zi1z5i61c2nq8p3jwbkca28yaannrvv6g6q5mmz1775apmfyh79";
   })
 
   (fetchNuGet {
@@ -600,8 +552,8 @@ in [
 
   (fetchNuGet {
     name = "StreamJsonRpc";
-    version = "2.3.103";
-    sha256 = "0z8ahxkbbrzsn56ylzlciriiid4bslf6y1rk49wzahwpvzlik1iw";
+    version = "2.5.46";
+    sha256 = "0rsgxfxcfgbx1w2jhllx1cwnbj9vra6034gv4kgzahh0v5vn8shf";
   })
 
   (fetchNuGet {
@@ -804,14 +756,8 @@ in [
 
   (fetchNuGet {
     name = "System.IO.Pipelines";
-    version = "4.5.3";
-    sha256 = "1z44vn1qp866lkx78cfqdd4vs7xn1hcfn7in6239sq2kgf5qiafb";
-  })
-
-  (fetchNuGet {
-    name = "System.IO.Pipelines";
-    version = "4.6.0";
-    sha256 = "0r9ygjbxpyi6jgb67qnpbp42b7yvvhgmcjxnb50k3lb416claavh";
+    version = "4.7.0";
+    sha256 = "1cx6bl2bhzp30ahy2csnwbphmlwwp840j56wgab105xc32la0mg4";
   })
 
   (fetchNuGet {
@@ -1080,8 +1026,8 @@ in [
 
   (fetchNuGet {
     name = "System.Security.AccessControl";
-    version = "4.5.0";
-    sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
+    version = "4.6.0";
+    sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf";
   })
 
   (fetchNuGet {
@@ -1146,8 +1092,8 @@ in [
 
   (fetchNuGet {
     name = "System.Security.Principal.Windows";
-    version = "4.5.0";
-    sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
+    version = "4.6.0";
+    sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm";
   })
 
   (fetchNuGet {
diff --git a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt
index 169ddfbb7b51..ec49eee7e9cf 100644
--- a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt
+++ b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt
@@ -1,14 +1,2 @@
-Microsoft.AspNetCore.App.Runtime.linux-x64 3.1.3
-Microsoft.AspNetCore.App.Ref 3.0.1
-Microsoft.AspNetCore.App.Runtime.linux-x64 3.1.2
-Microsoft.AspNetCore.App.Runtime.linux-x64 3.0.3
-Microsoft.AspNetCore.App.Runtime.linux-x64 3.0.2
-Microsoft.NetCore.App.Ref 3.1.0
-Microsoft.NetCore.App.Ref 3.0.0
-Microsoft.NetCore.App.Runtime.linux-x64 3.1.3
-Microsoft.NetCore.App.Runtime.linux-x64 3.1.2
-Microsoft.NetCore.App.Runtime.linux-x64 3.0.2
-Microsoft.NetCore.App.Runtime.linux-x64 3.0.3
-Microsoft.NetCore.App.Host.linux-x64 3.1.3
-Microsoft.NetCore.App.Host.linux-x64 3.0.2
-Microsoft.NetCore.App.Host.linux-x64 3.0.3
+Microsoft.AspNetCore.App.Runtime.linux-x64 3.1.8
+Microsoft.NetCore.App.Runtime.linux-x64 3.1.8
diff --git a/nixpkgs/pkgs/development/go-modules/generic/default.nix b/nixpkgs/pkgs/development/go-modules/generic/default.nix
index 65d63fc9a2fa..7533d52c989e 100644
--- a/nixpkgs/pkgs/development/go-modules/generic/default.nix
+++ b/nixpkgs/pkgs/development/go-modules/generic/default.nix
@@ -9,6 +9,9 @@ let
     , passthru ? {}
     , patches ? []
 
+    # Go linker flags, passed to go via -ldflags
+    , ldflags ? []
+
     # A function to override the go-modules derivation
     , overrideModAttrs ? (_oldAttrs : {})
 
@@ -155,7 +158,7 @@ let
             echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
             [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
             local OUT
-            if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" -v -p $NIX_BUILD_CORES $d 2>&1)"; then
+            if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
               if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
                 echo "$OUT" >&2
                 return 1
diff --git a/nixpkgs/pkgs/development/go-packages/generic/default.nix b/nixpkgs/pkgs/development/go-packages/generic/default.nix
index 8a093a03d1c1..88d7acb42fc9 100644
--- a/nixpkgs/pkgs/development/go-packages/generic/default.nix
+++ b/nixpkgs/pkgs/development/go-packages/generic/default.nix
@@ -7,6 +7,9 @@
 , preFixup ? ""
 , shellHook ? ""
 
+# Go linker flags, passed to go via -ldflags
+, ldflags ? []
+
 # We want parallel builds by default
 , enableParallelBuilding ? true
 
@@ -148,7 +151,7 @@ let
         echo "$d" | grep -q "\(/_\|examples\|Godeps\)" && return 0
         [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
         local OUT
-        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" -v -p $NIX_BUILD_CORES $d 2>&1)"; then
+        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
           if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
             echo "$OUT" >&2
             return 1
diff --git a/nixpkgs/pkgs/development/haskell-modules/HACKING.md b/nixpkgs/pkgs/development/haskell-modules/HACKING.md
new file mode 100644
index 000000000000..7c46e1560fd3
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/HACKING.md
@@ -0,0 +1,270 @@
+
+## Maintainer Workflow
+
+The goal of the [@NixOS/haskell](https://github.com/orgs/NixOS/teams/haskell)
+team is to keep the Haskell packages in Nixpkgs up-to-date, while making sure
+there are no Haskell-related evaluation errors or build errors that get into
+the Nixpkgs `master` branch.
+
+We do this by periodically merging an updated set of Haskell packages on the
+`haskell-updates` branch into the `master` branch.  Each member of the team
+takes a two week period where they are in charge of merging the
+`haskell-updates` branch into `master`.  This is the documentation for this
+workflow.
+
+The workflow generally proceeds in three main steps:
+
+1. create the initial `haskell-updates` PR, and update Stackage and Hackage snapshots
+1. wait for contributors to fix newly broken Haskell packages
+1. merge `haskell-updates` into `master`
+
+Each of these steps is described in a separate section.
+
+### Initial `haskell-updates` PR
+
+In this section we create the PR for merging `haskell-updates` into `master`.
+
+1.  Make sure the `haskell-updates` branch is up-to-date with `master`.
+
+1.  Update the Stackage Nightly resolver used by Nixpkgs and create a commit:
+
+    ```console
+    $ ./maintainers/scripts/haskell/update-stackage.sh --do-commit
+    ```
+
+1.  Update the Hackage package set used by Nixpkgs and create a commit:
+
+    ```console
+    $ ./maintainers/scripts/haskell/update-hackage.sh --do-commit
+    ```
+
+1.  Regenerate the Haskell package set used in Nixpkgs and create a commit:
+
+    ```console
+    $ ./maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit
+    ```
+
+1.  Push these commits to the Nixpkgs repository.
+
+1.  Open a PR on Nixpkgs merging `haskell-updates` into `master`.
+
+Use the following message body:
+
+```markdown
+### This Merge
+
+This PR is the regular merge of the `haskell-updates` branch into `master`.
+
+This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.
+
+I will aim to merge this PR **by 2021-TODO-TODO**. If I can merge it earlier, there might be successor PRs in that time window. As part of our rotation @TODO will continue these merges from 2021-TODO-TODO to 2021-TODO-TODO.
+
+### haskellPackages Workflow Summary
+
+Our workflow is currently described in
+[`pkgs/development/haskell-modules/HACKING.md`](https://github.com/NixOS/nixpkgs/blob/haskell-updates/pkgs/development/haskell-modules/HACKING.md).
+
+The short version is this:
+* We regularly update the Stackage and Hackage pins on `haskell-updates` (normally at the beginning of a merge window).
+* The community fixes builds of Haskell packages on that branch.
+* We aim at at least one merge of `haskell-updates` into `master` every two weeks.
+* We only do the merge if the `mergeable` job is succeeding on hydra.
+* If a maintained package is still broken at the time of merge, we will only merge if the maintainer has been pinged 7 days in advance. (If you care about a Haskell package, become a maintainer!)
+
+---
+
+This is the follow-up to #TODO.
+```
+
+Make sure to replace all TODO with the actual values.
+
+### Notify Maintainers and Fix Broken Packages
+
+After you've done the previous steps, Hydra will start building the new and
+updated Haskell packages.  You can see the progress Hydra is making at
+https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.  This Hydra jobset is
+defined in the file [release-haskell.nix](../../top-level/release-haskell.nix).
+
+#### Notify Maintainers
+
+When Hydra finishes building all the updated packages for the `haskell-updates`
+jobset, you should generate a build report to notify maintainers of their
+newly broken packages.  You can do that with the following commands:
+
+```console
+$ ./maintainers/scripts/haskell/hydra-report.hs get-report
+$ ./maintainers/scripts/haskell/hydra-report.hs ping-maintainers
+```
+
+The `hyda-report.hs ping-maintainers` command generates a Markdown document
+that you can paste in a GitHub comment on the PR opened above.  This
+comment describes which Haskell packages are now failing to build.  It also
+pings the maintainers so that they know to fix up their packages.
+
+It may be helpful to pipe `hydra-report.hs ping-maintainers` into `xclip`
+(XOrg) or `wl-copy` (Wayland) in order to post on GitHub.
+
+This build report can be fetched and re-generated for new Hydra evaluations.
+It may help contributors to try to keep the GitHub comment updated with the
+most recent build report.
+
+Maintainers should be given at least 7 days to fix up their packages when they
+break.  If maintainers don't fix up their packages with 7 days, then they
+may be marked broken before merging `haskell-updates` into `master`.
+
+#### Fix Broken Packages
+
+After getting the build report, you can see which packages and Hydra jobs are
+failing to build.  The most important jobs are the `maintained` and `mergeable`
+jobs. These are both defined in
+[`release-haskell.nix`](../../top-level/release-haskell.nix).
+
+`mergeable` is a set of the most important Haskell packages, including things
+like Pandoc and XMonad.  These packages are widely used.  We would like to
+always keep these building.
+
+`maintained` is a set of Haskell packages that have maintainers in Nixpkgs.
+We should be proactive in working with maintainers to keep their packages
+building.
+
+Steps to fix Haskell packages that are failing to build is out of scope for
+this document, but it usually requires fixing up dependencies that are now
+out-of-bounds.
+
+#### Mark Broken Packages
+
+Packages that do not get fixed can be marked broken with the following
+commands.  First check which packages are broken:
+
+```console
+$ ./maintainers/scripts/haskell/hydra-report.hs get-report
+$ ./maintainers/scripts/haskell/hydra-report.hs mark-broken-list
+```
+
+This shows a list of packages that reported a build failure on `x86_64-linux` on Hydra.
+
+Next, run the following command:
+
+```console
+$ ./maintainers/scripts/haskell/mark-broken.sh --do-commit
+```
+
+This first opens up an editor with the broken package list.  Some of these
+packages may have a maintainer in Nixpkgs.  If these maintainers have not been
+given 7 days to fix up their package, then make sure to remove those packages
+from the list before continuing.  After saving and exiting the editor, the
+following will happen:
+
+-   Packages from the list will be added to
+    [`configuration-hackage2nix/broken.yaml`](configuration-hackage2nix/broken.yaml).
+    This is a list of Haskell packages that are known to be broken.
+
+-   [`hackage-packages.nix`](hackage-packages.nix) will be regenerated.  This
+    will mark all Haskell pacakges in `configuration-hackage2nix/broken.yaml`
+    as `broken`.
+
+-   The
+    [`configuration-hackage2nix/transitive-broken.yaml`](configuration-hackage2nix/transitive-broken.yaml)
+    file will be updated.  This is a list of Haskell packages that
+    depend on a package in `configuration-hackage2nix/broken.yaml` or
+    `configuration-hackage2nix/transitive-broken.yaml`
+
+-   `hackage-packages.nix` will be regenerated again.  This will set
+    `hydraPlatforms = none` for all the packages in
+    `configuration-hackage2nix/transitive-broken.yaml`.  This makes
+    sure that Hydra does not try to build any of these packages.
+
+-   All updated files will be committed.
+
+#### Merge `master` into `haskell-updates`
+
+You should occasionally merge the `master` branch into the `haskell-updates`
+branch.
+
+In an ideal world, when we merge `haskell-updates` into `master`, it would
+cause few Hydra rebuilds on `master`.  Ideally, the `nixos-unstable` channel
+would never be prevented from progressing because of needing to wait for
+rebuilding Haskell packages.
+
+In order to make sure that there are a minimal number of rebuilds after merging
+`haskell-updates` into `master`, `master` should occasionally be merged into
+the `haskell-updates` branch.
+
+This is especially important after `staging-next` is merged into `master`,
+since there is a high chance that this will cause all the Haskell packages to
+rebuild.
+
+### Merge `haskell-updates` into `master`
+
+Now it is time to merge the `haskell-updates` PR you opened above.
+
+Before doing this, make sure of the following:
+
+-   All Haskell packages that fail to build are correctly marked broken or
+    transitively broken.
+
+-   The `maintained` and `mergeable` jobs are passing on Hydra.
+
+-   The maintainers for any maintained Haskell packages that are newly broken
+    have been pinged on GitHub and given at least a week to fix their packages.
+    This is especially important for widely-used packages like `cachix`.
+
+-   Make sure you first merge the `master` branch into `haskell-updates`.  Wait
+    for Hydra to evaluate the new `haskell-updates` jobset.  Make sure you only
+    merge `haskell-updates` into `master` when there are no evaluation errors.
+
+When you've double-checked these points, go ahead and merge the `haskell-updates` PR.
+After merging, **make sure not to delete the `haskell-updates` branch**, since it
+causes all currently open Haskell-related pull-requests to be automatically closed on GitHub.
+
+### Additional Info
+
+Here are some additional tips that didn't fit in above.
+
+-   Hydra tries to evalute the `haskell-updates` branch (in the
+    [`nixpkgs:haskell-updates`](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates)
+    jobset) every 4 hours.  It is possible to force a new Hydra evaluation without
+    waiting 4 hours by the following steps:
+
+    1. Log into Hydra with your GitHub or Google account.
+    1. Go to the [nixpkgs:haskell-updates](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates) jobset.
+    1. Click the `Actions` button.
+    1. Select `Evaluate this jobset`.
+    1. If you refresh the page, there should be a new `Evaluation running since:` line.
+    1. Evaluations take about 10 minutes to finish.
+
+-   It is sometimes helpful to update the version of
+    [`cabal2nix` / `hackage2nix`](https://github.com/NixOS/cabal2nix) that our
+    maintainer scripts use.  This can be done with the
+    [`maintainers/scripts/haskell/update-cabal2nix-unstable.sh`](../../../maintainers/scripts/haskell/update-cabal2nix-unstable.sh)
+    script.
+
+    You might want to do this if a user contributes a fix to `cabal2nix` that
+    will immediately fix a Haskell package in Nixpkgs.  First, merge in
+    the PR to `cabal2nix`, then run `update-cabal2nix-upstable.sh`.  Finally, run
+    [`regenerate-hackage-packages.sh`](../../../maintainers/scripts/haskell/regenerate-hackage-packages.sh)
+    to regenerate the Hackage package set with the updated version of `hackage2nix`.
+
+-   Make sure never to update the Hackage package hashes in
+    [`pkgs/data/misc/hackage/`](../../../pkgs/data/misc/hackage/), or the
+    pinned Stackage Nightly versions on the release branches (like
+    `release-21.05`).
+
+    This means that the
+    [`update-hackage.sh`](../../../maintainers/scripts/haskell/update-hackage.sh)
+    and
+    [`update-stackage.sh`](../../../maintainers/scripts/haskell/update-stackage.sh)
+    scripts should never be used on the release branches.
+
+    However, changing other files in `./.` and regenerating the package set is encouraged.
+    This can be done with
+    [`regenerate-hackage-packages.sh`](../../../maintainers/scripts/haskell/regenerate-hackage-packages.sh)
+    as described above.
+
+-   The Haskell team members generally hang out in the Matrix room
+    [#haskell:nixos.org](https://matrix.to/#/#haskell:nixos.org).
+
+## Contributor Workflow
+
+(TODO: this section is to describe the type of workflow for non-committers to
+contribute to `haskell-updates`)
diff --git a/nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix b/nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix
new file mode 100644
index 000000000000..00bd9061f01a
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix
@@ -0,0 +1,40 @@
+# This file defines cabal2nix-unstable, used by maintainers/scripts/haskell/regenerate-hackage-packages.sh.
+{ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, Cabal
+, containers, deepseq, directory, distribution-nixpkgs, fetchzip
+, filepath, hackage-db, hopenssl, hpack, language-nix, lens, lib
+, monad-par, monad-par-extras, mtl, optparse-applicative, pretty
+, process, split, tasty, tasty-golden, text, time, transformers
+, yaml
+}:
+mkDerivation {
+  pname = "cabal2nix";
+  version = "unstable-2021-05-28";
+  src = fetchzip {
+    url = "https://github.com/NixOS/cabal2nix/archive/5fb325e094af91328e02cc2ecfd211feaeb135a7.tar.gz";
+    sha256 = "1zbd336s99rgk24yjqlp012d0f66s5nf190sjmsl7mfhqx9j2y4l";
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson ansi-wl-pprint base bytestring Cabal containers deepseq
+    directory distribution-nixpkgs filepath hackage-db hopenssl hpack
+    language-nix lens optparse-applicative pretty process split text
+    time transformers yaml
+  ];
+  executableHaskellDepends = [
+    aeson base bytestring Cabal containers directory
+    distribution-nixpkgs filepath hopenssl language-nix lens monad-par
+    monad-par-extras mtl optparse-applicative pretty
+  ];
+  testHaskellDepends = [
+    base Cabal containers directory filepath language-nix lens pretty
+    process tasty tasty-golden
+  ];
+  preCheck = ''
+    export PATH="$PWD/dist/build/cabal2nix:$PATH"
+    export HOME="$TMPDIR/home"
+  '';
+  homepage = "https://github.com/nixos/cabal2nix#readme";
+  description = "Convert Cabal files into Nix build instructions";
+  license = lib.licenses.bsd3;
+}
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-arm.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-arm.nix
new file mode 100644
index 000000000000..b9f868b04ca5
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-arm.nix
@@ -0,0 +1,97 @@
+# ARM-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
+#
+# This extension is applied to all haskell package sets in nixpkgs
+# if `stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64`
+# to apply arm specific workarounds or fixes.
+#
+# The file is split into three parts:
+#
+# * Overrides that are applied for all arm platforms
+# * Overrides for aarch32 platforms
+# * Overrides for aarch64 platforms
+#
+# This may be extended in the future to also include compiler-
+# specific sections as compiler and linker related bugs may
+# get fixed subsequently.
+#
+# When adding new overrides, try to research which section they
+# belong into. Most likely we'll be favouring aarch64 overrides
+# in practice since that is the only platform we can test on
+# Hydra. Also take care to group overrides by the issue they
+# solve, so refactors and updates to this file are less tedious.
+{ pkgs, haskellLib }:
+
+let
+  inherit (pkgs) lib;
+in
+
+with haskellLib;
+
+self: super: {
+  # COMMON ARM OVERRIDES
+
+  # moved here from configuration-common.nix, no reason given.
+  servant-docs = dontCheck super.servant-docs;
+  swagger2 = dontHaddock (dontCheck super.swagger2);
+
+  # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
+  happy = dontCheck super.happy;
+
+} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
+  # AARCH64-SPECIFIC OVERRIDES
+
+  # Doctests fail on aarch64 due to a GHCi linking bug
+  # https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295437
+  # TODO: figure out if needed on aarch32 as well
+  language-nix = dontCheck super.language-nix;
+  trifecta = dontCheck super.trifecta;
+  ad = dontCheck super.ad;
+  vinyl = dontCheck super.vinyl;
+  BNFC = dontCheck super.BNFC;
+  C-structs = dontCheck super.C-structs;
+  accelerate = dontCheck super.accelerate;
+  focuslist = dontCheck super.focuslist;
+  flight-kml = dontCheck super.flight-kml;
+  exact-real = dontCheck super.exact-real;
+  autoapply = dontCheck super.autoapply;
+  hint = dontCheck super.hint;
+  hgeometry = dontCheck super.hgeometry;
+  headroom = dontCheck super.headroom;
+  haskell-time-range = dontCheck super.haskell-time-range;
+  hsakamai = dontCheck super.hsakamai;
+  hsemail-ns = dontCheck super.hsemail-ns;
+  openapi3 = dontCheck super.openapi3;
+  strict-writer = dontCheck super.strict-writer;
+  xml-html-qq = dontCheck super.xml-html-qq;
+  static = dontCheck super.static;
+  hhp = dontCheck super.hhp;
+  groupBy = dontCheck super.groupBy;
+  greskell = dontCheck super.greskell;
+  html-validator-cli = dontCheck super.html-validator-cli;
+  hw-fingertree-strict = dontCheck super.hw-fingertree-strict;
+  hw-prim = dontCheck super.hw-prim;
+  hw-packed-vector = dontCheck super.hw-packed-vector;
+  hw-xml = dontCheck super.hw-xml;
+  lens-regex = dontCheck super.lens-regex;
+  meep = dontCheck super.meep;
+  ranged-list = dontCheck super.ranged-list;
+  rank2classes = dontCheck super.rank2classes;
+  schedule = dontCheck super.schedule;
+  twiml = dontCheck super.twiml;
+  twitter-conduit = dontCheck super.twitter-conduit;
+  validationt = dontCheck super.validationt;
+  vgrep = dontCheck super.vgrep;
+  vulkan-utils = dontCheck super.vulkan-utils;
+  yaml-combinators = dontCheck super.yaml-combinators;
+  yesod-paginator = dontCheck super.yesod-paginator;
+  grammatical-parsers = dontCheck super.grammatical-parsers;
+  construct = dontCheck super.construct;
+  orbits = dontCheck super.orbits;
+
+  # https://github.com/ekmett/half/issues/35
+  half = dontCheck super.half;
+
+} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch32 {
+  # AARCH32-SPECIFIC OVERRIDES
+
+}
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
index 552e35b9c362..cc39fb4fd10f 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
@@ -64,7 +64,7 @@ self: super: {
       name = "git-annex-${super.git-annex.version}-src";
       url = "git://git-annex.branchable.com/";
       rev = "refs/tags/" + super.git-annex.version;
-      sha256 = "13n62v3cdkx23fywdccczcr8vsf0vmjbimmgin766bf428jlhh6h";
+      sha256 = "1wig8nw2rxgq86y88m1f1qf93z5yckidf1cs33ribmhqa1hs300p";
     };
   }).override {
     dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@@ -75,10 +75,6 @@ self: super: {
   # Fix test trying to access /home directory
   shell-conduit = overrideCabal super.shell-conduit (drv: {
     postPatch = "sed -i s/home/tmp/ test/Spec.hs";
-
-    # the tests for shell-conduit on Darwin illegitimatey assume non-GNU echo
-    # see: https://github.com/psibi/shell-conduit/issues/12
-    doCheck = !pkgs.stdenv.isDarwin;
   });
 
   # https://github.com/froozen/kademlia/issues/2
@@ -117,15 +113,6 @@ self: super: {
   # Jailbreak is necessary for QuickCheck dependency.
   vector = doJailbreak (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector);
 
-  conduit-extra = if pkgs.stdenv.isDarwin
-    then super.conduit-extra.overrideAttrs (drv: { __darwinAllowLocalNetworking = true; })
-    else super.conduit-extra;
-
-  # Fix Darwin build.
-  halive = if pkgs.stdenv.isDarwin
-    then addBuildDepend super.halive pkgs.darwin.apple_sdk.frameworks.AppKit
-    else super.halive;
-
   # Test suite fails due golden tests checking text representation
   # of normalized dhall expressions, and newer dhall versions format
   # differently.
@@ -134,19 +121,6 @@ self: super: {
     then throw "Drop dontCheck override for hpack-dhall > 0.5.2"
     else dontCheck super.hpack-dhall;
 
-  barbly = addBuildDepend super.barbly pkgs.darwin.apple_sdk.frameworks.AppKit;
-
-  # Hakyll's tests are broken on Darwin (3 failures); and they require util-linux
-  hakyll = if pkgs.stdenv.isDarwin
-    then dontCheck (overrideCabal super.hakyll (drv: {
-      testToolDepends = [];
-    }))
-    else super.hakyll;
-
-  double-conversion = if !pkgs.stdenv.isDarwin
-    then super.double-conversion
-    else addExtraLibrary super.double-conversion pkgs.libcxx;
-
   inline-c-cpp = overrideCabal super.inline-c-cpp (drv: {
     postPatch = (drv.postPatch or "") + ''
       substituteInPlace inline-c-cpp.cabal --replace "-optc-std=c++11" ""
@@ -196,8 +170,50 @@ self: super: {
   # base bound
   digit = doJailbreak super.digit;
 
-  # 2020-06-05: HACK: does not pass own build suite - `dontCheck`
-  hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck super.hnix);
+  hnix = generateOptparseApplicativeCompletion "hnix"
+    (overrideCabal super.hnix (drv: {
+      # 2020-06-05: HACK: does not pass own build suite - `dontCheck`
+      doCheck = false;
+      # 2021-05-12: Revert a few dependency cleanups which depend on release
+      # that are not in stackage yet:
+      # * Depend on semialign-indexed for Data.Semialign.Indexed
+      #   (remove when semialign >= 1.2 in stackage)
+      # * Readd dependencies to text and unordered-containers.
+      #   (remove when relude >= 1.0.0.0 is in stackage, see
+      #   https://github.com/haskell-nix/hnix/issues/933)
+      libraryHaskellDepends = [
+        self.semialign-indexed
+      ] ++ drv.libraryHaskellDepends;
+      patches = [
+        # depend on semialign-indexed again
+        (pkgs.fetchpatch {
+          url = "https://github.com/haskell-nix/hnix/commit/16fc342a4f2974f855968472252cd9274609f177.patch";
+          sha256 = "0gm4gy3jpn4dqnrhnqlsavfpw9c1j1xa8002v54knnlw6vpk9niy";
+          revert = true;
+        })
+        # depend on text again
+        (pkgs.fetchpatch {
+          url = "https://github.com/haskell-nix/hnix/commit/73057618576e86bb87dfd42f62b855d24bbdf469.patch";
+          sha256 = "03cyk96d5ad362i1pnz9bs8ifr84kpv8phnr628gys4j6a0bqwzc";
+          revert = true;
+        })
+        # depend on unordered-containers again
+        (pkgs.fetchpatch {
+          url = "https://github.com/haskell-nix/hnix/commit/70643481883ed448b51221a030a76026fb5eb731.patch";
+          sha256 = "0pqmijfkysjixg3gb4kmrqdif7s2saz8qi6k337jf15i0npzln8d";
+          revert = true;
+        })
+        # allow relude < 1.0 again
+        (pkgs.fetchpatch {
+          url = "https://github.com/haskell-nix/hnix/commit/f4ea5dcb344369916586498ba33c00d0fc605a79.patch";
+          sha256 = "1ajl7d49d658xhalgf3pc5svmbq73dsysy6z434n75vb1357mx86";
+          revert = true;
+        })
+      ] ++ (drv.patches or []);
+      # make sure patches are not broken by cabal file revisions
+      revision = null;
+      editedCabalFile = null;
+    }));
 
   # Fails for non-obvious reasons while attempting to use doctest.
   search = dontCheck super.search;
@@ -258,9 +274,6 @@ self: super: {
   github-rest = dontCheck super.github-rest;  # test suite needs the network
   gitlib-cmdline = dontCheck super.gitlib-cmdline;
   GLFW-b = dontCheck super.GLFW-b;                      # https://github.com/bsl/GLFW-b/issues/50
-  #next release supports random 1.1; jailbroken because i didn't know about vty when glguy was updating the bounds
-  #should be fixed soon. maybe even before this is merged. currently glirc is 2.37
-  glirc = doJailbreak (super.glirc.override { random = self.random_1_2_0; });
   hackport = dontCheck super.hackport;
   hadoop-formats = dontCheck super.hadoop-formats;
   haeredes = dontCheck super.haeredes;
@@ -284,32 +297,27 @@ self: super: {
   hsbencher = dontCheck super.hsbencher;
   hsexif = dontCheck super.hsexif;
   hspec-server = dontCheck super.hspec-server;
-  HTF = dontCheck super.HTF;
+  HTF = overrideCabal super.HTF (orig: {
+    # The scripts in scripts/ are needed to build the test suite.
+    preBuild = "patchShebangs --build scripts";
+  });
   htsn = dontCheck super.htsn;
   htsn-import = dontCheck super.htsn-import;
   http-link-header = dontCheck super.http-link-header; # non deterministic failure https://hydra.nixos.org/build/75041105
-  ihaskell = dontCheck super.ihaskell;
   influxdb = dontCheck super.influxdb;
   integer-roots = dontCheck super.integer-roots; # requires an old version of smallcheck, will be fixed in > 1.0
   itanium-abi = dontCheck super.itanium-abi;
   katt = dontCheck super.katt;
-  language-nix = if (pkgs.stdenv.hostPlatform.isAarch64 || pkgs.stdenv.hostPlatform.isi686) then dontCheck super.language-nix else super.language-nix; # aarch64: https://ghc.haskell.org/trac/ghc/ticket/15275
   language-slice = dontCheck super.language-slice;
   ldap-client = dontCheck super.ldap-client;
   lensref = dontCheck super.lensref;
   lvmrun = disableHardening (dontCheck super.lvmrun) ["format"];
-  math-functions = if pkgs.stdenv.isDarwin
-    then dontCheck super.math-functions # "erf table" test fails on Darwin https://github.com/bos/math-functions/issues/63
-    else super.math-functions;
   matplotlib = dontCheck super.matplotlib;
   # https://github.com/matterhorn-chat/matterhorn/issues/679 they do not want to be on stackage
   matterhorn = doJailbreak super.matterhorn; # this is needed until the end of time :')
   memcache = dontCheck super.memcache;
   metrics = dontCheck super.metrics;
   milena = dontCheck super.milena;
-  mockery = if pkgs.stdenv.isDarwin
-    then overrideCabal super.mockery (drv: { preCheck = "export TRAVIS=true"; }) # darwin doesn't have sub-second resolution https://github.com/hspec/mockery/issues/11
-    else super.mockery;
   modular-arithmetic = dontCheck super.modular-arithmetic; # tests require a very old Glob (0.7.*)
   nats-queue = dontCheck super.nats-queue;
   netpbm = dontCheck super.netpbm;
@@ -359,7 +367,6 @@ self: super: {
   tickle = dontCheck super.tickle;
   tpdb = dontCheck super.tpdb;
   translatable-intset = dontCheck super.translatable-intset;
-  trifecta = if pkgs.stdenv.hostPlatform.isAarch64 then dontCheck super.trifecta else super.trifecta; # affected by this bug https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295461
   ua-parser = dontCheck super.ua-parser;
   unagi-chan = dontCheck super.unagi-chan;
   wai-logger = dontCheck super.wai-logger;
@@ -451,9 +458,8 @@ self: super: {
   # https://github.com/andrewthad/haskell-ip/issues/67
   ip = dontCheck super.ip;
 
-  # https://github.com/ndmitchell/shake/issues/206
-  # https://github.com/ndmitchell/shake/issues/267
-  shake = overrideCabal super.shake (drv: { doCheck = !pkgs.stdenv.isDarwin && false; });
+  # https://github.com/ndmitchell/shake/issues/804
+  shake = dontCheck super.shake;
 
   # https://github.com/nushio3/doctest-prop/issues/1
   doctest-prop = dontCheck super.doctest-prop;
@@ -541,10 +547,7 @@ self: super: {
   elm-yesod = markBroken super.elm-yesod;
 
   # https://github.com/Euterpea/Euterpea2/issues/40
-  Euterpea = appendPatch super.Euterpea (pkgs.fetchpatch {
-    url = "https://github.com/Euterpea/Euterpea2/pull/38.patch";
-    sha256 = "13g462qmj8c7if797gnyvf8h0cddmm3xy0pjldw48w8f8sr4qsj0";
-  });
+  Euterpea = doJailbreak super.Euterpea;
 
   # Install icons, metadata and cli program.
   bustle = overrideCabal super.bustle (drv: {
@@ -700,6 +703,9 @@ self: super: {
 
   # 2021-03-12: All of this libraries have to restrictive upper bounds
   # https://github.com/diagrams/diagrams-core/issues/112
+  # https://github.com/diagrams/diagrams-cairo/issues/77
+  # https://github.com/diagrams/diagrams-rasterific/issues/63
+  # https://github.com/diagrams/diagrams-cairo/issues/77
   active = doJailbreak super.active;
   statestack = doJailbreak super.statestack;
   force-layout = doJailbreak super.force-layout;
@@ -709,13 +715,20 @@ self: super: {
   diagrams-postscript = doJailbreak super.diagrams-postscript;
   diagrams-svg = doJailbreak super.diagrams-svg;
   diagrams-contrib = doJailbreak super.diagrams-contrib;
-  # apply patch from master to add compat with optparse-applicative >= 0.16
+  # Apply patch from master to add compat with optparse-applicative >= 0.16.
+  # We unfortunately can't upgrade to 1.4.4 which includes this patch yet
+  # since it would require monoid-extras 0.6 which breaks other diagrams libs.
   diagrams-lib = doJailbreak (appendPatch super.diagrams-lib
     (pkgs.fetchpatch {
       url = "https://github.com/diagrams/diagrams-lib/commit/4b9842c3e3d653be69af19778970337775e2404d.patch";
       sha256 = "0xqvzh3ip9i0nv8xnh41afxki64r259pxq8ir1a4v99ggnldpjaa";
       includes = [ "*/CmdLine.hs" ];
     }));
+  diagrams-rasterific = doJailbreak super.diagrams-rasterific;
+  diagrams-cairo = doJailbreak super.diagrams-cairo;
+
+  # https://github.com/diagrams/diagrams-solve/issues/4
+  diagrams-solve = dontCheck super.diagrams-solve;
 
   # https://github.com/danidiaz/streaming-eversion/issues/1
   streaming-eversion = dontCheck super.streaming-eversion;
@@ -733,9 +746,6 @@ self: super: {
   # Has a dependency on outdated versions of directory.
   cautious-file = doJailbreak (dontCheck super.cautious-file);
 
-  # https://github.com/diagrams/diagrams-solve/issues/4
-  diagrams-solve = dontCheck super.diagrams-solve;
-
   # test suite does not compile with recent versions of QuickCheck
   integer-logarithms = dontCheck (super.integer-logarithms);
 
@@ -828,7 +838,6 @@ self: super: {
   # With ghc-8.2.x haddock would time out for unknown reason
   # See https://github.com/haskell/haddock/issues/679
   language-puppet = dontHaddock super.language-puppet;
-  filecache = overrideCabal super.filecache (drv: { doCheck = !pkgs.stdenv.isDarwin; });
 
   # https://github.com/alphaHeavy/protobuf/issues/34
   protobuf = dontCheck super.protobuf;
@@ -839,20 +848,23 @@ self: super: {
     configureFlags = ["--ghc-option=-DU_DEFINE_FALSE_AND_TRUE=1"]; # https://github.com/haskell/text-icu/issues/49
   });
 
-  # aarch64 and armv7l fixes.
-  happy = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontCheck super.happy else super.happy; # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
-  hashable = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontCheck super.hashable else super.hashable; # https://github.com/tibbe/hashable/issues/95
-  servant-docs =
-    let
-      f = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64)
-          then dontCheck
-          else pkgs.lib.id;
-    in doJailbreak (f super.servant-docs); # jailbreak tasty < 1.2 until servant-docs > 0.11.3 is on hackage.
+  # jailbreak tasty < 1.2 until servant-docs > 0.11.3 is on hackage.
+  servant-docs = doJailbreak super.servant-docs;
   snap-templates = doJailbreak super.snap-templates; # https://github.com/snapframework/snap-templates/issues/22
-  swagger2 = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontHaddock (dontCheck super.swagger2) else super.swagger2;
 
   # hledger-lib requires the latest version of pretty-simple
-  hledger-lib = super.hledger-lib.override { pretty-simple = self.pretty-simple; };
+  hledger-lib = appendPatch super.hledger-lib
+    # This patch has been merged but not released yet:
+    # https://github.com/simonmichael/hledger/pull/1512. It is
+    # important for ledger-autosync test suite:
+    # https://github.com/egh/ledger-autosync/issues/123
+    (pkgs.fetchpatch {
+      name   = "hledger-properly-escape-quotes-csv.patch";
+      url    = "https://github.com/simonmichael/hledger/commit/c9a72e1615e2ddc2824f2e248456e1042eb31e1d.patch";
+      sha256 = "10knvrd5bl9nrmi27i0pm82sfr64jy04xgbjp228qywyijpr3pqv";
+      includes = [ "Hledger/Read/CsvReader.hs" ];
+      stripLen = 1;
+    });
 
   # Copy hledger man pages from data directory into the proper place. This code
   # should be moved into the cabal2nix generator.
@@ -1056,9 +1068,6 @@ self: super: {
   # Has tasty < 1.2 requirement, but works just fine with 1.2
   temporary-resourcet = doJailbreak super.temporary-resourcet;
 
-  # Requires dhall >= 1.23.0
-  ats-pkg = dontCheck (super.ats-pkg.override { dhall = self.dhall_1_29_0; });
-
   # fake a home dir and capture generated man page
   ats-format = overrideCabal super.ats-format (old : {
     preConfigure = "export HOME=$PWD";
@@ -1087,18 +1096,6 @@ self: super: {
   # https://github.com/erikd/hjsmin/issues/32
   hjsmin = dontCheck super.hjsmin;
 
-  nix-tools = super.nix-tools.overrideScope (self: super: {
-    # Needs https://github.com/peti/hackage-db/pull/9
-    hackage-db = super.hackage-db.overrideAttrs (old: {
-      src = pkgs.fetchFromGitHub {
-        owner = "ElvishJerricco";
-        repo = "hackage-db";
-        rev = "84ca9fc75ad45a71880e938e0d93ea4bde05f5bd";
-        sha256 = "0y3kw1hrxhsqmyx59sxba8npj4ya8dpgjljc21gkgdvdy9628q4c";
-      };
-    });
-  });
-
   # upstream issue: https://github.com/vmchale/atspkg/issues/12
   language-ats = dontCheck super.language-ats;
 
@@ -1140,11 +1137,6 @@ self: super: {
     '';
   });
 
-  # gtk/gtk3 needs to be told on Darwin to use the Quartz
-  # rather than X11 backend (see eg https://github.com/gtk2hs/gtk2hs/issues/249).
-  gtk3 = appendConfigureFlags super.gtk3 (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
-  gtk = appendConfigureFlags super.gtk (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
-
   # Chart-tests needs and compiles some modules from Chart itself
   Chart-tests = (addExtraLibrary super.Chart-tests self.QuickCheck).overrideAttrs (old: {
     preCheck = old.postPatch or "" + ''
@@ -1158,6 +1150,23 @@ self: super: {
   # Therefore we jailbreak it.
   hakyll-contrib-hyphenation = doJailbreak super.hakyll-contrib-hyphenation;
 
+  # Jailbreak due to bounds on multiple dependencies,
+  # bound on pandoc needs to be patched since it is conditional
+  hakyll = doJailbreak (overrideCabal super.hakyll (drv: {
+    patches = [
+      # Remove when Hakyll > 4.14.0.0
+      (pkgs.fetchpatch {
+        url = "https://github.com/jaspervdj/hakyll/commit/0dc6127d81ff688e27c36ce469230320eee60246.patch";
+        sha256 = "sha256-YyRz3bAmIBODTEeS5kGl2J2x31SjiPoLzUZUlo3nHvQ=";
+      })
+      # Remove when Hakyll > 4.14.0.0
+      (pkgs.fetchpatch {
+        url = "https://github.com/jaspervdj/hakyll/commit/af9e29b5456c105dc948bc46c93e989a650b5ed1.patch";
+        sha256 = "sha256-ghc0V5L9OybNHWKmM0vhjRBN2rIvDlp+ClcK/aQst44=";
+      })
+    ];
+  }));
+
   # 2020-06-22: NOTE: > 0.4.0 => rm Jailbreak: https://github.com/serokell/nixfmt/issues/71
   nixfmt = doJailbreak super.nixfmt;
 
@@ -1209,14 +1218,10 @@ self: super: {
   hasql-notifications = dontCheck super.hasql-notifications;
   hasql-pool = dontCheck super.hasql-pool;
 
-  # This bumps optparse-applicative to <0.16 in the cabal file, as otherwise
-  # the version bounds are not satisfied.  This can be removed if the PR at
-  # https://github.com/ananthakumaran/webify/pull/27 is merged and a new
-  # release of webify is published.
-  webify = appendPatch super.webify (pkgs.fetchpatch {
-    url = "https://github.com/ananthakumaran/webify/pull/27/commits/6d653e7bdc1ffda75ead46851b5db45e87cb2aa0.patch";
-    sha256 = "0xbfhzhzg94b4r5qy5dg1c40liswwpqarrc2chcwgfbfnrmwkfc2";
-  });
+  # We jailbreak webify, as optparse-applicative evolved past the version bound
+  # and the corresponding (and outdated) PR was not merged for a year.
+  # https://github.com/ananthakumaran/webify/pull/27
+  webify = doJailbreak super.webify;
 
   # hasn‘t bumped upper bounds
   # upstream: https://github.com/obsidiansystems/which/pull/6
@@ -1281,16 +1286,30 @@ self: super: {
   # https://github.com/kowainik/policeman/issues/57
   policeman = doJailbreak super.policeman;
 
-  haskell-gi-base = addBuildDepends super.haskell-gi-base [ pkgs.gobject-introspection ];
-
-  # 2020-08-14: Needs some manual patching to be compatible with haskell-gi-base 0.24
-  # Created upstream PR @ https://github.com/ghcjs/jsaddle/pull/119
-  jsaddle-webkit2gtk = appendPatch super.jsaddle-webkit2gtk (pkgs.fetchpatch {
-    url = "https://github.com/ghcjs/jsaddle/compare/9727365...f842748.patch";
-    sha256 = "07l4l999lmlx7sqxf7v4f70rmxhx9r0cjblkgc4n0y6jin4iv1cb";
-    stripLen = 2;
-    extraPrefix = "";
-  });
+  # nixpkgs has bumped gdkpixbuf C lib, so we need gi-gdkpixbuf_2_0_26 to link against that.
+  # This leads to all this bumps which can be removed once stackage has haskell-gi 0.25.
+  haskell-gi = self.haskell-gi_0_25_0;
+  haskell-gi-base = addBuildDepends super.haskell-gi-base_0_25_0 [ pkgs.gobject-introspection ];
+  gi-glib = self.gi-glib_2_0_25;
+  gi-cairo = self.gi-cairo_1_0_25;
+  gi-gobject = self.gi-gobject_2_0_26;
+  gi-atk = self.gi-atk_2_0_23;
+  gi-gio = self.gi-gio_2_0_28;
+  gi-harfbuzz = self.gi-harfbuzz_0_0_4;
+  gi-javascriptcore = self.gi-javascriptcore_4_0_23;
+  gi-pango = self.gi-pango_1_0_24;
+  gi-soup = self.gi-soup_2_4_24;
+  gi-gdkpixbuf = self.gi-gdkpixbuf_2_0_26;
+  gi-gdk = self.gi-gdk_3_0_24;
+  gi-gtk = self.gi-gtk_3_0_37;
+  gi-webkit2 = self.gi-webkit2_4_0_27;
+  gi-cairo-render = doJailbreak super.gi-cairo-render;
+  gi-cairo-connector = doJailbreak super.gi-cairo-connector;
+  gi-gtk-hs = self.gi-gtk-hs_0_3_10;
+  gi-dbusmenu = self.gi-dbusmenu_0_4_9;
+  gi-xlib = self.gi-xlib_2_0_10;
+  gi-gdkx11 = self.gi-gdkx11_3_0_11;
+  gi-dbusmenugtk3 = self.gi-dbusmenugtk3_0_4_10;
 
   # Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released)
   # https://github.com/lehins/massiv/pull/104
@@ -1381,10 +1400,6 @@ self: super: {
           pkgs.lib.makeBinPath deps
         }"
       '';
-
-      # 2021-04-09: test failure
-      # PR pending https://github.com/expipiplus1/update-nix-fetchgit/pull/60
-      doCheck = false;
     }));
 
   # Our quickcheck-instances is too old for the newer binary-instances, but
@@ -1396,6 +1411,12 @@ self: super: {
   # https://github.com/haskell/haskell-language-server/issues/611
   haskell-language-server = dontCheck super.haskell-language-server;
 
+  # 2021-05-08: Tests fail: https://github.com/haskell/haskell-language-server/issues/1808
+  hls-splice-plugin = dontCheck super.hls-splice-plugin;
+
+  # 2021-05-08: Tests fail: https://github.com/haskell/haskell-language-server/issues/1809
+  hls-eval-plugin = dontCheck super.hls-eval-plugin;
+
   # 2021-03-19: Too restrictive upper bound on optparse-applicative
   stylish-haskell = doJailbreak super.stylish-haskell;
 
@@ -1423,9 +1444,6 @@ self: super: {
     ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_0_0_4;
   });
 
-  # 2021-03-09: Overrides because nightly is to old for hls 1.0.0
-  lsp-test = doDistribute (dontCheck self.lsp-test_0_13_0_0);
-
   # 2021-03-21 Test hangs
   # https://github.com/haskell/haskell-language-server/issues/1562
   # Jailbreak because of: https://github.com/haskell/haskell-language-server/pull/1595
@@ -1479,11 +1497,6 @@ self: super: {
   # Due to tests restricting base in 0.8.0.0 release
   http-media = doJailbreak super.http-media;
 
-  # https://github.com/ekmett/half/issues/35
-  half = if pkgs.stdenv.isAarch64
-    then dontCheck super.half
-    else super.half;
-
   # 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
   heist = doJailbreak super.heist;
 
@@ -1538,10 +1551,6 @@ self: super: {
   # https://github.com/yesodweb/yesod/issues/1714
   yesod-core = dontCheck super.yesod-core;
 
-  # Add ApplicationServices on darwin
-  apecs-physics = addPkgconfigDepends super.apecs-physics
-    (pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.ApplicationServices);
-
   # Break out of overspecified constraint on QuickCheck.
   algebraic-graphs = dontCheck super.algebraic-graphs;
   attoparsec = doJailbreak super.attoparsec;      # https://github.com/haskell/attoparsec/pull/168
@@ -1787,4 +1796,161 @@ self: super: {
     excludes = ["test/buildtest"];
   });
 
+  # workaround for https://github.com/peti/distribution-nixpkgs/issues/9
+  pam = super.pam.override { inherit (pkgs) pam; };
+
+  # Too strict version bounds on base:
+  # https://github.com/obsidiansystems/database-id/issues/1
+  database-id-class = doJailbreak super.database-id-class;
+
+  cabal2nix-unstable = overrideCabal super.cabal2nix-unstable {
+    passthru.updateScript = ../../../maintainers/scripts/haskell/update-cabal2nix-unstable.sh;
+  };
+
+  # Too strict version bounds on base
+  # https://github.com/gibiansky/IHaskell/issues/1217
+  ihaskell-display = doJailbreak super.ihaskell-display;
+  ihaskell-basic = doJailbreak super.ihaskell-basic;
+
+  # Fixes too strict version bounds on regex libraries
+  # Presumably to be removed at the next release
+  yi-language = appendPatch super.yi-language (pkgs.fetchpatch {
+    url = "https://github.com/yi-editor/yi/commit/0d3bcb5ba4c237d57ce33a3dc39b63c56d890765.patch";
+    sha256 = "0r4mzngs0x1akqpajzx7ssa9rax977fvj5ra8d3grfbpx6z0nm01";
+    includes = [ "yi-language.cabal" ];
+    stripLen = 2;
+    extraPrefix = "";
+  });
+
+  # https://github.com/ghcjs/jsaddle/issues/123
+  jsaddle = overrideCabal super.jsaddle (drv: {
+    # lift conditional version constraint on ref-tf
+    postPatch = ''
+      sed -i 's/ref-tf.*,/ref-tf,/' jsaddle.cabal
+    '' + (drv.postPatch or "");
+  });
+
+  # Tests need to lookup target triple x86_64-unknown-linux
+  # https://github.com/llvm-hs/llvm-hs/issues/334
+  llvm-hs = overrideCabal super.llvm-hs {
+    doCheck = pkgs.stdenv.targetPlatform.system == "x86_64-linux";
+  };
+
+  # * Fix build failure by picking patch from 8.5, we need
+  #   this version of sbv for petrinizer
+  # * Pin version of crackNum that still exposes its library
+  sbv_7_13 = appendPatch (super.sbv_7_13.override {
+    crackNum = self.crackNum_2_4;
+  }) (pkgs.fetchpatch {
+    url = "https://github.com/LeventErkok/sbv/commit/57014b9c7c67dd9b63619a996e2c66e32c33c958.patch";
+    sha256 = "10npa8nh2413n6p6qld795qfkbld08icm02bspmk93y0kabpgmgm";
+  });
+
+  # Too strict bounds on dimensional
+  # https://github.com/enomsg/science-constants-dimensional/pull/1
+  science-constants-dimensional = doJailbreak super.science-constants-dimensional;
+
+  # Tests are flaky on busy machines
+  # https://github.com/merijn/paramtree/issues/4
+  paramtree = dontCheck super.paramtree;
+
+  # Too strict version bounds on haskell-gi
+  # https://github.com/owickstrom/gi-gtk-declarative/issues/100
+  gi-gtk-declarative = doJailbreak super.gi-gtk-declarative;
+  gi-gtk-declarative-app-simple = doJailbreak super.gi-gtk-declarative-app-simple;
+
+  # 2021-05-09: Restrictive bound on hspec-golden. Dep removed in newer versions.
+  tomland = assert super.tomland.version == "1.3.2.0"; doJailbreak super.tomland;
+
+  # 2021-05-09 haskell-ci pins ShellCheck 0.7.1
+  # https://github.com/haskell-CI/haskell-ci/issues/507
+  haskell-ci = super.haskell-ci.override {
+    ShellCheck = self.ShellCheck_0_7_1;
+  };
+
+  Frames-streamly = overrideCabal (super.Frames-streamly.override { relude = super.relude_1_0_0_1; }) (drv: {
+    # https://github.com/adamConnerSax/Frames-streamly/issues/1
+    patchPhase = ''
+cat > example_data/acs100k.csv <<EOT
+"YEAR","REGION","STATEFIP","DENSITY","METRO","PUMA","PERWT","SEX","AGE","RACE","RACED","HISPAN","HISPAND","CITIZEN","LANGUAGE","LANGUAGED","SPEAKENG","EDUC","EDUCD","GRADEATT","GRADEATTD","EMPSTAT","EMPSTATD","INCTOT","INCSS","POVERTY"
+2006,32,1,409.6,3,2300,87.0,1,47,1,100,0,0,0,1,100,3,6,65,0,0,1,12,36000,0,347
+EOT
+    ''; });
+
+  # 2021-05-09: compilation requires patches from master,
+  # remove at next release (current is 0.1.0.4).
+  large-hashable = appendPatches super.large-hashable [
+    # Fix compilation of TH code for GHC >= 8.8
+    (pkgs.fetchpatch {
+      url = "https://github.com/factisresearch/large-hashable/commit/ee7afe4bd181cf15a324c7f4823f7a348e4a0e6b.patch";
+      sha256 = "1ha77v0bc6prxacxhpdfgcsgw8348gvhl9y81smigifgjbinphxv";
+      excludes = [
+        ".travis.yml"
+        "stack**"
+      ];
+    })
+    # Fix cpp invocation
+    (pkgs.fetchpatch {
+      url = "https://github.com/factisresearch/large-hashable/commit/7b7c2ed6ac6e096478e8ee00160fa9d220df853a.patch";
+      sha256 = "1sf9h3k8jbbgfshzrclaawlwx7k2frb09z2a64f93jhvk6ci6vgx";
+    })
+  ];
+
+  # BSON defaults to requiring network instead of network-bsd which is
+  # required nowadays: https://github.com/mongodb-haskell/bson/issues/26
+  bson = appendConfigureFlag (super.bson.override {
+    network = self.network-bsd;
+  }) "-f-_old_network";
+
+  # 2021-05-14: Testsuite is failing.
+  # https://github.com/kcsongor/generic-lens/issues/133
+  generic-optics = dontCheck super.generic-optics;
+
+  # 2021-05-19: Allow random 1.2.0
+  # Remove at (presumably next release) which is > 1.3.1.0
+  hashable = overrideCabal super.hashable (drv: {
+    patches = [
+      (pkgs.fetchpatch {
+        url = "https://github.com/haskell-unordered-containers/hashable/commit/78fa8fdb4f8bec5d221f34110d6afa0d0a00b5f9.patch";
+        sha256 = "0bzgp9qf53zk4rzk73x5cf2kfqncvlmihcallpplaibpslzalyi4";
+      })
+    ] ++ (drv.patches or []);
+    # fix line endings preventing patch from applying
+    prePatch = ''
+      ${pkgs.dos2unix}/bin/dos2unix hashable.cabal
+    '' + (drv.prePatch or "");
+  });
+
+  # Too strict bound on random
+  # https://github.com/haskell-hvr/missingh/issues/56
+  MissingH = doJailbreak super.MissingH;
+
+  # Too strict bound on containers
+  # https://github.com/batterseapower/parallel-io/issues/14#issuecomment-853441933
+  parallel-io = doJailbreak super.parallel-io;
+
+  # Disable flaky tests
+  # https://github.com/DavidEichmann/alpaca-netcode/issues/2
+  alpaca-netcode = overrideCabal super.alpaca-netcode {
+    # use testTarget to also pass some flags to the test suite.
+    # TODO: We should add proper support for this to the builder.
+    testTarget = "test --test-options='-p \"!/[NOCI]/\"'";
+  };
+
+  # Tests require to run a binary which isn't built
+  lsp-test = dontCheck super.lsp-test;
+
+  # 2021-05-22: Tests fail sometimes (even consistently on hydra)
+  # when running a fs-related test with >= 12 jobs. To work around
+  # this, run tests with only a single job.
+  # https://github.com/vmchale/libarchive/issues/20
+  libarchive = overrideCabal super.libarchive {
+    # TODO: We should add proper support for this to the builder.
+    testTarget = "libarchive-test --test-options='-j1'";
+  };
+
+  # unrestrict bounds for hashable and semigroups
+  # https://github.com/HeinrichApfelmus/reactive-banana/issues/215
+  reactive-banana = doJailbreak super.reactive-banana;
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-darwin.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-darwin.nix
new file mode 100644
index 000000000000..7e02a6653c77
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -0,0 +1,174 @@
+# DARWIN-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
+
+{ pkgs, haskellLib }:
+
+let
+  inherit (pkgs) lib darwin;
+in
+
+with haskellLib;
+
+self: super: {
+
+  # the tests for shell-conduit on Darwin illegitimatey assume non-GNU echo
+  # see: https://github.com/psibi/shell-conduit/issues/12
+  shell-conduit = dontCheck super.shell-conduit;
+
+  conduit-extra = super.conduit-extra.overrideAttrs (drv: {
+    __darwinAllowLocalNetworking = true;
+  });
+
+  halive = addBuildDepend super.halive darwin.apple_sdk.frameworks.AppKit;
+
+  # Hakyll's tests are broken on Darwin (3 failures); and they require util-linux
+  hakyll = overrideCabal super.hakyll {
+    testToolDepends = [];
+    doCheck = false;
+  };
+
+  barbly = addBuildDepend super.barbly darwin.apple_sdk.frameworks.AppKit;
+
+  double-conversion = addExtraLibrary super.double-conversion pkgs.libcxx;
+
+  apecs-physics = addPkgconfigDepends super.apecs-physics [
+    darwin.apple_sdk.frameworks.ApplicationServices
+  ];
+
+  # "erf table" test fails on Darwin
+  # https://github.com/bos/math-functions/issues/63
+  math-functions = dontCheck super.math-functions;
+
+  # darwin doesn't have sub-second resolution
+  # https://github.com/hspec/mockery/issues/11
+  mockery = overrideCabal super.mockery (drv: {
+    preCheck = ''
+      export TRAVIS=true
+    '' + (drv.preCheck or "");
+  });
+
+  # https://github.com/ndmitchell/shake/issues/206
+  shake = dontCheck super.shake;
+
+  filecache = dontCheck super.filecache;
+
+  # gtk/gtk3 needs to be told on Darwin to use the Quartz
+  # rather than X11 backend (see eg https://github.com/gtk2hs/gtk2hs/issues/249).
+  gtk3 = appendConfigureFlag super.gtk3 "-f have-quartz-gtk";
+  gtk = appendConfigureFlag super.gtk "-f have-quartz-gtk";
+
+  OpenAL = addExtraLibrary super.OpenAL darwin.apple_sdk.frameworks.OpenAL;
+
+  proteaaudio = addExtraLibrary super.proteaaudio darwin.apple_sdk.frameworks.AudioToolbox;
+
+  # the system-fileio tests use canonicalizePath, which fails in the sandbox
+  system-fileio = dontCheck super.system-fileio;
+
+  # Prevents needing to add `security_tool` as a run-time dependency for
+  # everything using x509-system to give access to the `security` executable.
+  #
+  # darwin.security_tool is broken in Mojave (#45042)
+  #
+  # We will use the system provided security for now.
+  # Beware this WILL break in sandboxes!
+  #
+  # TODO(matthewbauer): If someone really needs this to work in sandboxes,
+  # I think we can add a propagatedImpureHost dep here, but I’m hoping to
+  # get a proper fix available soonish.
+  x509-system = overrideCabal super.x509-system (drv:
+    lib.optionalAttrs (!pkgs.stdenv.cc.nativeLibc) {
+      postPatch = ''
+        substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
+      '' + (drv.postPatch or "");
+    });
+
+  # https://github.com/haskell-foundation/foundation/pull/412
+  foundation = dontCheck super.foundation;
+
+  llvm-hs = overrideCabal super.llvm-hs (oldAttrs: {
+    # One test fails on darwin.
+    doCheck = false;
+    # llvm-hs's Setup.hs file tries to add the lib/ directory from LLVM8 to
+    # the DYLD_LIBRARY_PATH environment variable.  This messes up clang
+    # when called from GHC, probably because clang is version 7, but we are
+    # using LLVM8.
+    preCompileBuildDriver = ''
+      substituteInPlace Setup.hs --replace "addToLdLibraryPath libDir" "pure ()"
+    '' + (oldAttrs.preCompileBuildDriver or "");
+  });
+
+  yesod-bin = addBuildDepend super.yesod-bin darwin.apple_sdk.frameworks.Cocoa;
+
+  hmatrix = addBuildDepend super.hmatrix darwin.apple_sdk.frameworks.Accelerate;
+
+  # Ensure the necessary frameworks are propagatedBuildInputs on darwin
+  OpenGLRaw = overrideCabal super.OpenGLRaw (drv: {
+    librarySystemDepends = [];
+    libraryHaskellDepends = drv.libraryHaskellDepends ++ [
+      darwin.apple_sdk.frameworks.OpenGL
+    ];
+    preConfigure = ''
+      frameworkPaths=($(for i in $nativeBuildInputs; do if [ -d "$i"/Library/Frameworks ]; then echo "-F$i/Library/Frameworks"; fi done))
+      frameworkPaths=$(IFS=, ; echo "''${frameworkPaths[@]}")
+      configureFlags+=$(if [ -n "$frameworkPaths" ]; then echo -n "--ghc-options=-optl=$frameworkPaths"; fi)
+    '' + (drv.preConfigure or "");
+  });
+  GLURaw = overrideCabal super.GLURaw (drv: {
+    librarySystemDepends = [];
+    libraryHaskellDepends = drv.libraryHaskellDepends ++ [
+      darwin.apple_sdk.frameworks.OpenGL
+    ];
+  });
+  bindings-GLFW = overrideCabal super.bindings-GLFW (drv: {
+    librarySystemDepends = [];
+    libraryHaskellDepends = drv.libraryHaskellDepends ++ [
+      darwin.apple_sdk.frameworks.AGL
+      darwin.apple_sdk.frameworks.Cocoa
+      darwin.apple_sdk.frameworks.OpenGL
+      darwin.apple_sdk.frameworks.IOKit
+      darwin.apple_sdk.frameworks.Kernel
+      darwin.apple_sdk.frameworks.CoreVideo
+      darwin.CF
+    ];
+  });
+  OpenCL = overrideCabal super.OpenCL (drv: {
+    librarySystemDepends = [];
+    libraryHaskellDepends = drv.libraryHaskellDepends ++ [
+      darwin.apple_sdk.frameworks.OpenCL
+    ];
+  });
+
+  # cabal2nix likes to generate dependencies on hinotify when hfsevents is
+  # really required on darwin: https://github.com/NixOS/cabal2nix/issues/146.
+  hinotify = self.hfsevents;
+
+  # FSEvents API is very buggy and tests are unreliable. See
+  # http://openradar.appspot.com/10207999 and similar issues.
+  fsnotify = addBuildDepend (dontCheck super.fsnotify)
+    darwin.apple_sdk.frameworks.Cocoa;
+
+  FractalArt = overrideCabal super.FractalArt (drv: {
+    librarySystemDepends = [
+      darwin.libobjc
+      darwin.apple_sdk.frameworks.AppKit
+    ] ++ (drv.librarySystemDepends or []);
+  });
+
+  arbtt = overrideCabal super.arbtt (drv: {
+    librarySystemDepends = [
+      darwin.apple_sdk.frameworks.Foundation
+      darwin.apple_sdk.frameworks.Carbon
+      darwin.apple_sdk.frameworks.IOKit
+    ] ++ (drv.librarySystemDepends or []);
+  });
+
+  HTF = overrideCabal super.HTF (drv: {
+    # GNU find is not prefixed in stdenv
+    postPatch = ''
+      substituteInPlace scripts/local-htfpp --replace "find=gfind" "find=find"
+    '' + (drv.postPatch or "");
+  });
+
+  # 2021-05-25: Tests fail and I have no way to debug them.
+  hls-class-plugin = dontCheck super.hls-class-plugin;
+
+}
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index c4bab1f0785e..36fe13151f3c 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -5,7 +5,7 @@ with haskellLib;
 self: super: {
 
   # This compiler version needs llvm 9.x.
-  llvmPackages = pkgs.llvmPackages_9;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_9;
 
   # Disable GHC 8.10.x core libraries.
   array = null;
@@ -42,13 +42,10 @@ self: super: {
   unix = null;
   xhtml = null;
 
-  # cabal-install needs more recent versions of Cabal and random, but an older
-  # version of base16-bytestring.
+  # cabal-install needs more recent versions of Cabal and base16-bytestring.
   cabal-install = super.cabal-install.overrideScope (self: super: {
     Cabal = self.Cabal_3_4_0_0;
     base16-bytestring = self.base16-bytestring_0_1_1_7;
-    random = dontCheck super.random_1_2_0;  # break infinite recursion
-    hashable = doJailbreak super.hashable;  # allow random 1.2.x
   });
 
   # cabal-install-parsers is written for Cabal 3.4
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index bcce0bb897c5..99b53b9f14f3 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -5,7 +5,7 @@ with haskellLib;
 self: super: {
 
   # This compiler version needs llvm 6.x.
-  llvmPackages = pkgs.llvmPackages_6;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_6;
 
   # Disable GHC 8.6.x core libraries.
   array = null;
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index 00797c0c86f1..aab26897cca4 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -5,7 +5,7 @@ with haskellLib;
 self: super: {
 
   # This compiler version needs llvm 7.x.
-  llvmPackages = pkgs.llvmPackages_7;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_7;
 
   # Disable GHC 8.8.x core libraries.
   array = null;
@@ -60,8 +60,6 @@ self: super: {
   cabal-install = super.cabal-install.overrideScope (self: super: {
     Cabal = self.Cabal_3_4_0_0;
     base16-bytestring = self.base16-bytestring_0_1_1_7;
-    random = dontCheck super.random_1_2_0;  # break infinite recursion
-    hashable = doJailbreak super.hashable;  # allow random 1.2.x
   });
 
   # Ignore overly restrictive upper version bounds.
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index 1b8b087326e8..16c85d1fef76 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -5,7 +5,7 @@ with haskellLib;
 self: super: {
 
   # This compiler version needs llvm 10.x.
-  llvmPackages = pkgs.llvmPackages_10;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10;
 
   # Disable GHC 9.0.x core libraries.
   array = null;
@@ -43,13 +43,10 @@ self: super: {
   unix = null;
   xhtml = null;
 
-  # cabal-install needs more recent versions of random, but an older
-  # version of base16-bytestring.
+  # cabal-install needs more recent versions of Cabal and base16-bytestring.
   cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
     Cabal = null;
     base16-bytestring = self.base16-bytestring_0_1_1_7;
-    random = dontCheck super.random_1_2_0;  # break infinite recursion
-    hashable = doJailbreak super.hashable;  # allow random 1.2.x
   });
 
   # Jailbreaks & Version Updates
@@ -79,8 +76,8 @@ self: super: {
 
   # Apply patches from head.hackage.
   alex = appendPatch (dontCheck super.alex) (pkgs.fetchpatch {
-    url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/alex-3.2.5.patch";
-    sha256 = "0q8x49k3jjwyspcmidwr6b84s4y43jbf4wqfxfm6wz8x2dxx6nwh";
+    url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/fe192e12b88b09499d4aff0e562713e820544bd6/patches/alex-3.2.6.patch";
+    sha256 = "1rzs764a0nhx002v4fadbys98s6qblw4kx4g46galzjf5f7n2dn4";
   });
   doctest = dontCheck (doJailbreak super.doctest_0_18_1);
   generic-deriving = appendPatch (doJailbreak super.generic-deriving) (pkgs.fetchpatch {
@@ -98,4 +95,10 @@ self: super: {
   # The test suite seems pretty broken.
   base64-bytestring = dontCheck super.base64-bytestring;
 
+  # 5.6 introduced support for GHC 9.0.x, but hasn't landed in stackage yet
+  profunctors = super.profunctors_5_6_2;
+
+  # 5 introduced support for GHC 9.0.x, but hasn't landed in stackage yet
+  lens = super.lens_5_0_1;
+
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix
index cbfd4b84b2ff..ca455a7c8929 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix
@@ -11,8 +11,7 @@ with haskellLib;
 
 self: super: {
 
-  # This compiler version needs llvm 6.x.
-  llvmPackages = pkgs.llvmPackages_6;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10;
 
   # Disable GHC 8.7.x core libraries.
   array = null;
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
deleted file mode 100644
index 3bf834c16daf..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ /dev/null
@@ -1,11954 +0,0 @@
-# pkgs/development/haskell-modules/configuration-hackage2nix.yaml
-
-compiler: ghc-8.10.4
-
-core-packages:
-  - array-0.5.4.0
-  - base-4.14.1.0
-  - binary-0.8.8.0
-  - bytestring-0.10.12.0
-  - Cabal-3.2.1.0
-  - containers-0.6.2.1
-  - deepseq-1.4.4.0
-  - directory-1.3.6.0
-  - exceptions-0.10.4
-  - filepath-1.4.2.1
-  - ghc-8.10.4
-  - ghc-boot-8.10.4
-  - ghc-boot-th-8.10.4
-  - ghc-compact-0.1.0.0
-  - ghc-heap-8.10.4
-  - ghc-prim-0.6.1
-  - ghci-8.10.4
-  - haskeline-0.8.0.1
-  - hpc-0.6.1.0
-  - integer-gmp-1.0.3.0
-  - libiserv-8.10.4
-  - mtl-2.2.2
-  - parsec-3.1.14.0
-  - pretty-1.1.3.6
-  - process-1.6.9.0
-  - rts-1.0
-  - stm-2.5.0.0
-  - template-haskell-2.16.0.0
-  - terminfo-0.4.1.4
-  - text-1.2.4.1
-  - time-1.9.3
-  - transformers-0.5.6.2
-  - unix-2.7.2.2
-  - xhtml-3000.2.2.1
-
-  # Hack: The following package is a core package of GHCJS. If we don't declare
-  # it, then hackage2nix will generate a Hackage database where all dependants
-  # of this library are marked as "broken".
-  - ghcjs-base-0
-
-# This is a list of packages with versions from the latest Stackage LTS release.
-#
-# The packages and versions in this list cause the `hackage2nix` tool to
-# generate the package at the given version.
-#
-# For instance, with a line like the following:
-#
-# - aeson ==1.4.6.0
-#
-# `hackage2nix` will generate the `aeson` package at version 1.4.6.0 in the
-# ./hackage-packages.nix file.
-#
-# Since the packages in the LTS package set are sometimes older than the latest
-# on Hackage, `hackage2nix` is smart enough to also generate the latest version
-# of a given package.
-#
-# In the above example with aeson, if there was version 1.5.0.0 of aeson
-# available on Hackage, `hackage2nix` would generate two packages, `aeson`
-# at version 1.4.6.0 and `aeson_1_5_0_0` at version 1.5.0.0.
-#
-# WARNING: This list is generated semiautomatically based on the most recent
-# LTS package set. If you want to add entries to it, you must do so before the
-# comment saying "# LTS Haskell x.y". Any changes after that comment will be
-# lost the next time `update-stackage.sh` runs.
-default-package-overrides:
-  # This was only intended for ghc-7.0.4, and has very old deps, one hidden behind a flag
-  - MissingH ==1.4.2.0
-  # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
-  # not yet available in Nixpkgs
-  - gi-gdkx11 < 4
-  # Needs Cabal 3.4 for Setup.hs
-  - gi-javascriptcore < 4.0.23 #
-  - gi-soup < 2.4.24 #
-  - gi-webkit2 < 4.0.27 #
-  # To stay hls 1.0 compatible
-  - ghcide < 1.1
-  - hls-retrie-plugin < 1.0.0.1
-  - lsp < 1.2
-  - lsp-types < 1.2
-  - hls-plugin-api < 1.1.0.0
-  - hls-explicit-imports-plugin < 1.0.0.1
-  # 2021-04-02: Stackage Nighlty has haskell-gi* < 0.25,
-  # so we need to restrict these to compatible versions
-  # Remove these as soon as haskell-gi{,-base} are 0.25.*
-  # in Stackage Nightly!
-  - gi-ggit < 1.0.10
-  - gi-girepository < 1.0.24
-  - gi-gst < 1.0.24
-  - gi-gstbase < 1.0.24
-  - gi-gstvideo < 1.0.24
-  - gi-gtksource < 3.0.24
-  - gi-ibus < 1.5.3
-  - gi-notify < 0.7.23
-  - gi-ostree < 1.0.14
-  - gi-pangocairo < 1.0.25
-  - gi-secret < 0.0.13
-  - gi-vte < 2.91.28
-
-  # Stackage Nightly 2021-04-15
-  - abstract-deque ==0.3
-  - abstract-par ==0.3.3
-  - AC-Angle ==1.0
-  - accuerr ==0.2.0.2
-  - ace ==0.6
-  - action-permutations ==0.0.0.1
-  - ad ==4.4.1
-  - adjunctions ==4.4
-  - adler32 ==0.1.2.0
-  - aeson ==1.5.6.0
-  - aeson-attoparsec ==0.0.0
-  - aeson-better-errors ==0.9.1.0
-  - aeson-casing ==0.2.0.0
-  - aeson-combinators ==0.0.5.0
-  - aeson-commit ==1.3
-  - aeson-compat ==0.3.9
-  - aeson-default ==0.9.1.0
-  - aeson-diff ==1.1.0.9
-  - aeson-generic-compat ==0.0.1.3
-  - aeson-lens ==0.5.0.0
-  - aeson-optics ==1.1.0.1
-  - aeson-picker ==0.1.0.5
-  - aeson-pretty ==0.8.8
-  - aeson-qq ==0.8.3
-  - aeson-schemas ==1.3.3
-  - aeson-with ==0.1.2.0
-  - aeson-yak ==0.1.1.3
-  - aeson-yaml ==1.1.0.0
-  - Agda ==2.6.1.3
-  - agda2lagda ==0.2020.11.1
-  - al ==0.1.4.2
-  - alarmclock ==0.7.0.5
-  - alerts ==0.1.2.0
-  - alex ==3.2.6
-  - alex-meta ==0.3.0.13
-  - alg ==0.2.13.1
-  - algebraic-graphs ==0.5
-  - Allure ==0.10.2.0
-  - almost-fix ==0.0.2
-  - alsa-core ==0.5.0.1
-  - alsa-mixer ==0.3.0
-  - alsa-pcm ==0.6.1.1
-  - alsa-seq ==0.6.0.8
-  - alternative-vector ==0.0.0
-  - ALUT ==2.4.0.3
-  - amazonka-apigateway ==1.6.1
-  - amazonka-application-autoscaling ==1.6.1
-  - amazonka-appstream ==1.6.1
-  - amazonka-athena ==1.6.1
-  - amazonka-autoscaling ==1.6.1
-  - amazonka-budgets ==1.6.1
-  - amazonka-certificatemanager ==1.6.1
-  - amazonka-cloudformation ==1.6.1
-  - amazonka-cloudfront ==1.6.1
-  - amazonka-cloudhsm ==1.6.1
-  - amazonka-cloudsearch ==1.6.1
-  - amazonka-cloudsearch-domains ==1.6.1
-  - amazonka-cloudtrail ==1.6.1
-  - amazonka-cloudwatch ==1.6.1
-  - amazonka-cloudwatch-events ==1.6.1
-  - amazonka-cloudwatch-logs ==1.6.1
-  - amazonka-codebuild ==1.6.1
-  - amazonka-codecommit ==1.6.1
-  - amazonka-codedeploy ==1.6.1
-  - amazonka-codepipeline ==1.6.1
-  - amazonka-cognito-identity ==1.6.1
-  - amazonka-cognito-idp ==1.6.1
-  - amazonka-cognito-sync ==1.6.1
-  - amazonka-config ==1.6.1
-  - amazonka-core ==1.6.1
-  - amazonka-datapipeline ==1.6.1
-  - amazonka-devicefarm ==1.6.1
-  - amazonka-directconnect ==1.6.1
-  - amazonka-discovery ==1.6.1
-  - amazonka-dms ==1.6.1
-  - amazonka-ds ==1.6.1
-  - amazonka-dynamodb ==1.6.1
-  - amazonka-dynamodb-streams ==1.6.1
-  - amazonka-ecr ==1.6.1
-  - amazonka-ecs ==1.6.1
-  - amazonka-efs ==1.6.1
-  - amazonka-elasticache ==1.6.1
-  - amazonka-elasticbeanstalk ==1.6.1
-  - amazonka-elasticsearch ==1.6.1
-  - amazonka-elastictranscoder ==1.6.1
-  - amazonka-elb ==1.6.1
-  - amazonka-elbv2 ==1.6.1
-  - amazonka-emr ==1.6.1
-  - amazonka-gamelift ==1.6.1
-  - amazonka-glacier ==1.6.1
-  - amazonka-glue ==1.6.1
-  - amazonka-health ==1.6.1
-  - amazonka-iam ==1.6.1
-  - amazonka-importexport ==1.6.1
-  - amazonka-inspector ==1.6.1
-  - amazonka-iot ==1.6.1
-  - amazonka-iot-dataplane ==1.6.1
-  - amazonka-kinesis ==1.6.1
-  - amazonka-kinesis-analytics ==1.6.1
-  - amazonka-kinesis-firehose ==1.6.1
-  - amazonka-kms ==1.6.1
-  - amazonka-lambda ==1.6.1
-  - amazonka-lightsail ==1.6.1
-  - amazonka-marketplace-analytics ==1.6.1
-  - amazonka-marketplace-metering ==1.6.1
-  - amazonka-ml ==1.6.1
-  - amazonka-opsworks ==1.6.1
-  - amazonka-opsworks-cm ==1.6.1
-  - amazonka-pinpoint ==1.6.1
-  - amazonka-polly ==1.6.1
-  - amazonka-rds ==1.6.1
-  - amazonka-redshift ==1.6.1
-  - amazonka-rekognition ==1.6.1
-  - amazonka-route53 ==1.6.1
-  - amazonka-route53-domains ==1.6.1
-  - amazonka-s3 ==1.6.1
-  - amazonka-sdb ==1.6.1
-  - amazonka-servicecatalog ==1.6.1
-  - amazonka-ses ==1.6.1
-  - amazonka-shield ==1.6.1
-  - amazonka-sms ==1.6.1
-  - amazonka-snowball ==1.6.1
-  - amazonka-sns ==1.6.1
-  - amazonka-sqs ==1.6.1
-  - amazonka-ssm ==1.6.1
-  - amazonka-stepfunctions ==1.6.1
-  - amazonka-storagegateway ==1.6.1
-  - amazonka-sts ==1.6.1
-  - amazonka-support ==1.6.1
-  - amazonka-swf ==1.6.1
-  - amazonka-test ==1.6.1
-  - amazonka-waf ==1.6.1
-  - amazonka-workspaces ==1.6.1
-  - amazonka-xray ==1.6.1
-  - amqp ==0.22.0
-  - amqp-utils ==0.6.1.0
-  - annotated-wl-pprint ==0.7.0
-  - ansi-terminal ==0.11
-  - ansi-wl-pprint ==0.6.9
-  - ANum ==0.2.0.2
-  - apecs ==0.9.2
-  - apecs-gloss ==0.2.4
-  - apecs-physics ==0.4.5
-  - api-field-json-th ==0.1.0.2
-  - api-maker ==0.1.0.0
-  - ap-normalize ==0.1.0.0
-  - appar ==0.1.8
-  - appendmap ==0.1.5
-  - apply-refact ==0.9.2.0
-  - apportionment ==0.0.0.3
-  - approximate ==0.3.4
-  - approximate-equality ==1.1.0.2
-  - app-settings ==0.2.0.12
-  - arbor-lru-cache ==0.1.1.1
-  - arithmoi ==0.11.0.1
-  - array-memoize ==0.6.0
-  - arrow-extras ==0.1.0.1
-  - ascii ==1.0.1.4
-  - ascii-case ==1.0.0.4
-  - ascii-char ==1.0.0.8
-  - asciidiagram ==1.3.3.3
-  - ascii-group ==1.0.0.4
-  - ascii-predicates ==1.0.0.4
-  - ascii-progress ==0.3.3.0
-  - ascii-superset ==1.0.1.4
-  - ascii-th ==1.0.0.4
-  - asif ==6.0.4
-  - asn1-encoding ==0.9.6
-  - asn1-parse ==0.9.5
-  - asn1-types ==0.3.4
-  - assert-failure ==0.1.2.5
-  - assoc ==1.0.2
-  - astro ==0.4.2.1
-  - async ==2.2.3
-  - async-extra ==0.2.0.0
-  - async-pool ==0.9.1
-  - async-refresh ==0.3.0.0
-  - async-refresh-tokens ==0.4.0.0
-  - atom-basic ==0.2.5
-  - atomic-primops ==0.8.4
-  - atomic-write ==0.2.0.7
-  - attoparsec ==0.13.2.5
-  - attoparsec-base64 ==0.0.0
-  - attoparsec-binary ==0.2
-  - attoparsec-expr ==0.1.1.2
-  - attoparsec-iso8601 ==1.0.2.0
-  - attoparsec-path ==0.0.0.1
-  - audacity ==0.0.2
-  - aur ==7.0.6
-  - aura ==3.2.4
-  - authenticate ==1.3.5
-  - authenticate-oauth ==1.6.0.1
-  - auto ==0.4.3.1
-  - autoexporter ==1.1.20
-  - auto-update ==0.1.6
-  - avers ==0.0.17.1
-  - avro ==0.5.2.0
-  - aws-cloudfront-signed-cookies ==0.2.0.6
-  - backprop ==0.2.6.4
-  - backtracking ==0.1.0
-  - bank-holidays-england ==0.2.0.6
-  - barbies ==2.0.2.0
-  - base16 ==0.3.0.1
-  - base16-bytestring ==1.0.1.0
-  - base16-lens ==0.1.3.2
-  - base32 ==0.2.0.0
-  - base32-lens ==0.1.1.1
-  - base32string ==0.9.1
-  - base58-bytestring ==0.1.0
-  - base58string ==0.10.0
-  - base64 ==0.4.2.3
-  - base64-bytestring ==1.1.0.0
-  - base64-bytestring-type ==1.0.1
-  - base64-lens ==0.3.1
-  - base64-string ==0.2
-  - base-compat ==0.11.2
-  - base-compat-batteries ==0.11.2
-  - basement ==0.0.11
-  - base-orphans ==0.8.4
-  - base-prelude ==1.4
-  - base-unicode-symbols ==0.2.4.2
-  - basic-prelude ==0.7.0
-  - bazel-runfiles ==0.12
-  - bbdb ==0.8
-  - bcp47 ==0.2.0.3
-  - bcp47-orphans ==0.1.0.3
-  - bcrypt ==0.0.11
-  - bech32 ==1.1.0
-  - bech32-th ==1.0.2
-  - bench ==1.0.12
-  - benchpress ==0.2.2.16
-  - between ==0.11.0.0
-  - bibtex ==0.1.0.6
-  - bifunctors ==5.5.10
-  - bimap ==0.4.0
-  - bimaps ==0.1.0.2
-  - bimap-server ==0.1.0.1
-  - bin ==0.1.1
-  - binary-conduit ==1.3.1
-  - binary-ext ==2.0.4
-  - binary-ieee754 ==0.1.0.0
-  - binary-instances ==1.0.1
-  - binary-list ==1.1.1.2
-  - binary-orphans ==1.0.1
-  - binary-parser ==0.5.7
-  - binary-parsers ==0.2.4.0
-  - binary-search ==2.0.0
-  - binary-shared ==0.8.3
-  - binary-tagged ==0.3
-  - bindings-DSL ==1.0.25
-  - bindings-GLFW ==3.3.2.0
-  - bindings-libzip ==1.0.1
-  - bindings-uname ==0.1
-  - bins ==0.1.2.0
-  - bitarray ==0.0.1.1
-  - bits ==0.5.3
-  - bitset-word8 ==0.1.1.2
-  - bits-extra ==0.0.2.0
-  - bitvec ==1.1.1.0
-  - bitwise-enum ==1.0.1.0
-  - blake2 ==0.3.0
-  - blanks ==0.5.0
-  - blas-carray ==0.1.0.1
-  - blas-comfort-array ==0.0.0.2
-  - blas-ffi ==0.1
-  - blaze-bootstrap ==0.1.0.1
-  - blaze-builder ==0.4.2.1
-  - blaze-html ==0.9.1.2
-  - blaze-markup ==0.8.2.8
-  - blaze-svg ==0.3.6.1
-  - blaze-textual ==0.2.1.0
-  - bmp ==1.2.6.3
-  - BNFC ==2.9.1
-  - BNFC-meta ==0.6.1
-  - board-games ==0.3
-  - boltzmann-samplers ==0.1.1.0
-  - Boolean ==0.2.4
-  - boolean-like ==0.1.1.0
-  - boolsimplifier ==0.1.8
-  - boots ==0.2.0.1
-  - bordacount ==0.1.0.0
-  - boring ==0.2
-  - both ==0.1.1.1
-  - bound ==2.0.3
-  - BoundedChan ==1.0.3.0
-  - bounded-queue ==1.0.0
-  - boundingboxes ==0.2.3
-  - bower-json ==1.0.0.1
-  - boxes ==0.1.5
-  - brick ==0.61
-  - broadcast-chan ==0.2.1.1
-  - bsb-http-chunked ==0.0.0.4
-  - bson ==0.4.0.1
-  - btrfs ==0.2.0.0
-  - buffer-builder ==0.2.4.7
-  - buffer-pipe ==0.0
-  - bugsnag-haskell ==0.0.4.1
-  - bugsnag-hs ==0.2.0.3
-  - bugzilla-redhat ==0.3.1
-  - burrito ==1.2.0.1
-  - butcher ==1.3.3.2
-  - buttplug-hs-core ==0.1.0.0
-  - bv ==0.5
-  - bv-little ==1.1.1
-  - byteable ==0.1.1
-  - byte-count-reader ==0.10.1.2
-  - bytedump ==1.0
-  - byte-order ==0.1.2.0
-  - byteorder ==1.0.4
-  - bytes ==0.17.1
-  - byteset ==0.1.1.0
-  - bytestring-builder ==0.10.8.2.0
-  - bytestring-conversion ==0.3.1
-  - bytestring-lexing ==0.5.0.2
-  - bytestring-mmap ==0.2.2
-  - bytestring-strict-builder ==0.4.5.4
-  - bytestring-to-vector ==0.3.0.1
-  - bytestring-tree-builder ==0.2.7.9
-  - bz2 ==1.0.1.0
-  - bzlib ==0.5.1.0
-  - bzlib-conduit ==0.3.0.2
-  - c14n ==0.1.0.1
-  - c2hs ==0.28.7
-  - cabal-appimage ==0.3.0.2
-  - cabal-debian ==5.1
-  - cabal-doctest ==1.0.8
-  - cabal-file ==0.1.1
-  - cabal-flatpak ==0.1.0.2
-  - cabal-plan ==0.7.2.0
-  - cabal-rpm ==2.0.8
-  - cache ==0.1.3.0
-  - cacophony ==0.10.1
-  - calendar-recycling ==0.0.0.1
-  - call-stack ==0.3.0
-  - can-i-haz ==0.3.1.0
-  - ca-province-codes ==1.0.0.0
-  - cardano-coin-selection ==1.0.1
-  - carray ==0.1.6.8
-  - casa-client ==0.0.1
-  - casa-types ==0.0.2
-  - cased ==0.1.0.0
-  - case-insensitive ==1.2.1.0
-  - cases ==0.1.4.1
-  - casing ==0.1.4.1
-  - cassava ==0.5.2.0
-  - cassava-conduit ==0.6.0
-  - cassava-megaparsec ==2.0.2
-  - cast ==0.1.0.2
-  - category ==0.2.5.0
-  - cayley-client ==0.4.15
-  - cborg ==0.2.5.0
-  - cborg-json ==0.2.2.0
-  - cereal ==0.5.8.1
-  - cereal-conduit ==0.8.0
-  - cereal-text ==0.1.0.2
-  - cereal-vector ==0.2.0.1
-  - cfenv ==0.1.0.0
-  - cgi ==3001.5.0.0
-  - chan ==0.0.4.1
-  - ChannelT ==0.0.0.7
-  - character-cases ==0.1.0.6
-  - charset ==0.3.8
-  - charsetdetect-ae ==1.1.0.4
-  - Chart ==1.9.3
-  - chaselev-deque ==0.5.0.5
-  - ChasingBottoms ==1.3.1.10
-  - cheapskate ==0.1.1.2
-  - cheapskate-highlight ==0.1.0.0
-  - cheapskate-lucid ==0.1.0.0
-  - checkers ==0.5.6
-  - checksum ==0.0
-  - chimera ==0.3.1.0
-  - chiphunk ==0.1.4.0
-  - choice ==0.2.2
-  - chronologique ==0.3.1.3
-  - chronos ==1.1.1
-  - chronos-bench ==0.2.0.2
-  - chunked-data ==0.3.1
-  - cipher-aes ==0.2.11
-  - cipher-camellia ==0.0.2
-  - cipher-des ==0.0.6
-  - cipher-rc4 ==0.1.4
-  - circle-packing ==0.1.0.6
-  - circular ==0.3.1.1
-  - citeproc ==0.3.0.9
-  - clash-ghc ==1.2.5
-  - clash-lib ==1.2.5
-  - clash-prelude ==1.2.5
-  - classy-prelude ==1.5.0
-  - classy-prelude-conduit ==1.5.0
-  - clay ==0.13.3
-  - clientsession ==0.9.1.2
-  - climb ==0.3.3
-  - Clipboard ==2.3.2.0
-  - clock ==0.8
-  - clock-extras ==0.1.0.2
-  - closed ==0.2.0.1
-  - clumpiness ==0.17.0.2
-  - ClustalParser ==1.3.0
-  - cmark ==0.6
-  - cmark-gfm ==0.2.2
-  - cmark-lucid ==0.1.0.0
-  - cmdargs ==0.10.21
-  - codec-beam ==0.2.0
-  - code-page ==0.2.1
-  - co-log-concurrent ==0.5.0.0
-  - co-log-core ==0.2.1.1
-  - Color ==0.3.1
-  - colorful-monoids ==0.2.1.3
-  - colorize-haskell ==1.0.1
-  - colour ==2.3.5
-  - combinatorial ==0.1.0.1
-  - comfort-array ==0.4.1
-  - comfort-graph ==0.0.3.1
-  - commonmark ==0.1.1.4
-  - commonmark-extensions ==0.2.0.4
-  - commonmark-pandoc ==0.2.0.1
-  - commutative ==0.0.2
-  - comonad ==5.0.8
-  - comonad-extras ==4.0.1
-  - compactmap ==0.1.4.2.1
-  - compdata ==0.12.1
-  - compensated ==0.8.3
-  - compiler-warnings ==0.1.0
-  - composable-associations ==0.1.0.0
-  - composable-associations-aeson ==0.1.0.1
-  - composite-aeson ==0.7.5.0
-  - composite-aeson-path ==0.7.5.0
-  - composite-aeson-refined ==0.7.5.0
-  - composite-base ==0.7.5.0
-  - composite-binary ==0.7.5.0
-  - composite-ekg ==0.7.5.0
-  - composite-hashable ==0.7.5.0
-  - composite-tuple ==0.1.2.0
-  - composite-xstep ==0.1.0.0
-  - composition ==1.0.2.2
-  - composition-extra ==2.0.0
-  - concise ==0.1.0.1
-  - concurrency ==1.11.0.1
-  - concurrent-extra ==0.7.0.12
-  - concurrent-output ==1.10.12
-  - concurrent-split ==0.0.1.1
-  - concurrent-supply ==0.1.8
-  - cond ==0.4.1.1
-  - conduit ==1.3.4.1
-  - conduit-algorithms ==0.0.11.0
-  - conduit-combinators ==1.3.0
-  - conduit-concurrent-map ==0.1.1
-  - conduit-extra ==1.3.5
-  - conduit-parse ==0.2.1.0
-  - conduit-zstd ==0.0.2.0
-  - conferer ==1.1.0.0
-  - conferer-aeson ==1.1.0.1
-  - conferer-hspec ==1.1.0.0
-  - conferer-warp ==1.1.0.0
-  - ConfigFile ==1.1.4
-  - config-ini ==0.2.4.0
-  - configurator ==0.3.0.0
-  - configurator-export ==0.1.0.1
-  - configurator-pg ==0.2.5
-  - connection ==0.3.1
-  - connection-pool ==0.2.2
-  - console-style ==0.0.2.1
-  - constraint ==0.1.4.0
-  - constraints ==0.13
-  - constraint-tuples ==0.1.2
-  - construct ==0.3.0.2
-  - contravariant ==1.5.3
-  - contravariant-extras ==0.3.5.2
-  - control-bool ==0.2.1
-  - control-dsl ==0.2.1.3
-  - control-monad-free ==0.6.2
-  - control-monad-omega ==0.3.2
-  - convertible ==1.1.1.0
-  - cookie ==0.4.5
-  - core-data ==0.2.1.9
-  - core-program ==0.2.6.0
-  - core-text ==0.3.0.0
-  - countable ==1.0
-  - country ==0.2.1
-  - cpphs ==1.20.9.1
-  - cprng-aes ==0.6.1
-  - cpu ==0.1.2
-  - cpuinfo ==0.1.0.2
-  - crackNum ==2.4
-  - crc32c ==0.0.0
-  - credential-store ==0.1.2
-  - criterion ==1.5.9.0
-  - criterion-measurement ==0.1.2.0
-  - cron ==0.7.0
-  - crypto-api ==0.13.3
-  - crypto-cipher-types ==0.0.9
-  - cryptocompare ==0.1.2
-  - crypto-enigma ==0.1.1.6
-  - cryptohash ==0.11.9
-  - cryptohash-cryptoapi ==0.1.4
-  - cryptohash-md5 ==0.11.100.1
-  - cryptohash-sha1 ==0.11.100.1
-  - cryptohash-sha256 ==0.11.102.0
-  - cryptohash-sha512 ==0.11.100.1
-  - cryptonite ==0.28
-  - cryptonite-conduit ==0.2.2
-  - cryptonite-openssl ==0.7
-  - crypto-numbers ==0.2.7
-  - crypto-pubkey ==0.2.8
-  - crypto-pubkey-types ==0.4.3
-  - crypto-random ==0.0.9
-  - crypto-random-api ==0.2.0
-  - csp ==1.4.0
-  - css-syntax ==0.1.0.0
-  - css-text ==0.1.3.0
-  - csv ==0.1.2
-  - ctrie ==0.2
-  - cubicbezier ==0.6.0.6
-  - cubicspline ==0.1.2
-  - cuckoo-filter ==0.2.0.2
-  - cue-sheet ==2.0.1
-  - curl ==1.3.8
-  - currencies ==0.2.0.0
-  - currency ==0.2.0.0
-  - cursor ==0.3.0.0
-  - cursor-brick ==0.1.0.0
-  - cursor-fuzzy-time ==0.0.0.0
-  - cursor-gen ==0.3.0.0
-  - cutter ==0.0
-  - cyclotomic ==1.1.1
-  - czipwith ==1.0.1.3
-  - d10 ==0.2.1.6
-  - data-accessor ==0.2.3
-  - data-accessor-mtl ==0.2.0.4
-  - data-accessor-template ==0.2.1.16
-  - data-accessor-transformers ==0.2.1.7
-  - data-ascii ==1.0.0.6
-  - data-binary-ieee754 ==0.4.4
-  - data-bword ==0.1.0.1
-  - data-checked ==0.3
-  - data-clist ==0.1.2.3
-  - data-compat ==0.1.0.3
-  - data-default ==0.7.1.1
-  - data-default-class ==0.1.2.0
-  - data-default-instances-containers ==0.0.1
-  - data-default-instances-dlist ==0.0.1
-  - data-default-instances-old-locale ==0.0.1
-  - data-diverse ==4.7.0.0
-  - datadog ==0.2.5.0
-  - data-dword ==0.3.2
-  - data-endian ==0.1.1
-  - data-fix ==0.3.1
-  - data-forest ==0.1.0.8
-  - data-has ==0.4.0.0
-  - data-hash ==0.2.0.1
-  - data-interval ==2.1.0
-  - data-inttrie ==0.1.4
-  - data-lens-light ==0.1.2.2
-  - data-memocombinators ==0.5.1
-  - data-msgpack ==0.0.13
-  - data-msgpack-types ==0.0.3
-  - data-or ==1.0.0.5
-  - data-ordlist ==0.4.7.0
-  - data-ref ==0.0.2
-  - data-reify ==0.6.3
-  - data-serializer ==0.3.5
-  - data-textual ==0.3.0.3
-  - dataurl ==0.1.0.0
-  - DAV ==1.3.4
-  - DBFunctor ==0.1.1.1
-  - dbus ==1.2.17
-  - dbus-hslogger ==0.1.0.1
-  - debian ==4.0.2
-  - debian-build ==0.10.2.0
-  - debug-trace-var ==0.2.0
-  - dec ==0.0.4
-  - Decimal ==0.5.2
-  - declarative ==0.5.4
-  - deepseq-generics ==0.2.0.0
-  - deepseq-instances ==0.1.0.1
-  - deferred-folds ==0.9.17
-  - dejafu ==2.4.0.2
-  - dense-linear-algebra ==0.1.0.0
-  - depq ==0.4.2
-  - deque ==0.4.3
-  - deriveJsonNoPrefix ==0.1.0.1
-  - derive-topdown ==0.0.2.2
-  - deriving-aeson ==0.2.6.1
-  - deriving-compat ==0.5.10
-  - derulo ==1.0.10
-  - dhall ==1.38.1
-  - dhall-bash ==1.0.36
-  - dhall-json ==1.7.6
-  - dhall-lsp-server ==1.0.14
-  - dhall-yaml ==1.2.6
-  - diagrams-solve ==0.1.3
-  - dialogflow-fulfillment ==0.1.1.3
-  - di-core ==1.0.4
-  - dictionary-sharing ==0.1.0.0
-  - Diff ==0.4.0
-  - digest ==0.0.1.2
-  - digits ==0.3.1
-  - dimensional ==1.3
-  - di-monad ==1.3.1
-  - directory-tree ==0.12.1
-  - direct-sqlite ==2.3.26
-  - dirichlet ==0.1.0.2
-  - discount ==0.1.1
-  - disk-free-space ==0.1.0.1
-  - distributed-closure ==0.4.2.0
-  - distribution-opensuse ==1.1.1
-  - distributive ==0.6.2.1
-  - dl-fedora ==0.8
-  - dlist ==0.8.0.8
-  - dlist-instances ==0.1.1.1
-  - dlist-nonempty ==0.1.1
-  - dns ==4.0.1
-  - dockerfile ==0.2.0
-  - doclayout ==0.3.0.2
-  - doctemplates ==0.9
-  - doctest ==0.16.3
-  - doctest-discover ==0.2.0.0
-  - doctest-driver-gen ==0.3.0.3
-  - doctest-exitcode-stdio ==0.0
-  - doctest-extract ==0.1
-  - doctest-lib ==0.1
-  - doldol ==0.4.1.2
-  - do-list ==1.0.1
-  - do-notation ==0.1.0.2
-  - dot ==0.3
-  - dotenv ==0.8.0.7
-  - dotgen ==0.4.3
-  - dotnet-timespan ==0.0.1.0
-  - double-conversion ==2.0.2.0
-  - download ==0.3.2.7
-  - download-curl ==0.1.4
-  - drinkery ==0.4
-  - dsp ==0.2.5.1
-  - dual ==0.1.1.1
-  - dublincore-xml-conduit ==0.1.0.2
-  - dunai ==0.7.0
-  - duration ==0.2.0.0
-  - dvorak ==0.1.0.0
-  - dynamic-state ==0.3.1
-  - dyre ==0.8.12
-  - eap ==0.9.0.2
-  - earcut ==0.1.0.4
-  - Earley ==0.13.0.1
-  - easy-file ==0.2.2
-  - Ebnf2ps ==1.0.15
-  - echo ==0.1.4
-  - ecstasy ==0.2.1.0
-  - ed25519 ==0.0.5.0
-  - edit-distance ==0.2.2.1
-  - edit-distance-vector ==1.0.0.4
-  - editor-open ==0.6.0.0
-  - egison ==4.1.2
-  - egison-pattern-src ==0.2.1.2
-  - egison-pattern-src-th-mode ==0.2.1.2
-  - either ==5.0.1.1
-  - either-both ==0.1.1.1
-  - either-unwrap ==1.1
-  - ekg ==0.4.0.15
-  - ekg-core ==0.1.1.7
-  - ekg-json ==0.1.0.6
-  - ekg-statsd ==0.2.5.0
-  - elerea ==2.9.0
-  - elf ==0.30
-  - eliminators ==0.7
-  - elm2nix ==0.2.1
-  - elm-bridge ==0.6.1
-  - elm-core-sources ==1.0.0
-  - elm-export ==0.6.0.1
-  - elynx ==0.5.0.2
-  - elynx-markov ==0.5.0.2
-  - elynx-nexus ==0.5.0.2
-  - elynx-seq ==0.5.0.2
-  - elynx-tools ==0.5.0.2
-  - elynx-tree ==0.5.0.2
-  - email-validate ==2.3.2.13
-  - emojis ==0.1
-  - enclosed-exceptions ==1.0.3
-  - ENIG ==0.0.1.0
-  - entropy ==0.4.1.6
-  - enummapset ==0.6.0.3
-  - enumset ==0.0.5
-  - enum-subset-generate ==0.1.0.0
-  - envelope ==0.2.2.0
-  - envparse ==0.4.1
-  - envy ==2.1.0.0
-  - epub-metadata ==4.5
-  - eq ==4.2.1
-  - equal-files ==0.0.5.3
-  - equational-reasoning ==0.7.0.0
-  - equivalence ==0.3.5
-  - erf ==2.0.0.0
-  - error-or ==0.1.2.0
-  - error-or-utils ==0.1.1
-  - errors ==2.3.0
-  - errors-ext ==0.4.2
-  - ersatz ==0.4.9
-  - esqueleto ==3.4.1.1
-  - essence-of-live-coding ==0.2.5
-  - essence-of-live-coding-gloss ==0.2.5
-  - essence-of-live-coding-pulse ==0.2.5
-  - essence-of-live-coding-quickcheck ==0.2.5
-  - etc ==0.4.1.0
-  - eve ==0.1.9.0
-  - eventful-core ==0.2.0
-  - eventful-test-helpers ==0.2.0
-  - event-list ==0.1.2
-  - eventstore ==1.4.1
-  - every ==0.0.1
-  - exact-combinatorics ==0.2.0.9
-  - exact-pi ==0.5.0.1
-  - exception-hierarchy ==0.1.0.4
-  - exception-mtl ==0.4.0.1
-  - exceptions ==0.10.4
-  - exception-transformers ==0.4.0.9
-  - exception-via ==0.1.0.0
-  - executable-path ==0.0.3.1
-  - exit-codes ==1.0.0
-  - exomizer ==1.0.0
-  - experimenter ==0.1.0.12
-  - expiring-cache-map ==0.0.6.1
-  - explicit-exception ==0.1.10
-  - exp-pairs ==0.2.1.0
-  - express ==0.1.4
-  - extended-reals ==0.2.4.0
-  - extensible-effects ==5.0.0.1
-  - extensible-exceptions ==0.1.1.4
-  - extra ==1.7.9
-  - extractable-singleton ==0.0.1
-  - extrapolate ==0.4.2
-  - fail ==4.9.0.0
-  - failable ==1.2.4.0
-  - fakedata ==0.8.0
-  - fakedata-parser ==0.1.0.0
-  - fakefs ==0.3.0.2
-  - fakepull ==0.3.0.2
-  - faktory ==1.0.2.1
-  - fast-digits ==0.3.0.0
-  - fast-logger ==3.0.3
-  - fast-math ==1.0.2
-  - fb ==2.1.1
-  - fclabels ==2.0.5
-  - feature-flags ==0.1.0.1
-  - fedora-dists ==1.1.2
-  - fedora-haskell-tools ==0.9
-  - feed ==1.3.2.0
-  - FenwickTree ==0.1.2.1
-  - fft ==0.1.8.6
-  - fgl ==5.7.0.3
-  - file-embed ==0.0.13.0
-  - file-embed-lzma ==0
-  - filelock ==0.1.1.5
-  - filemanip ==0.3.6.3
-  - file-modules ==0.1.2.4
-  - filepath-bytestring ==1.4.2.1.7
-  - file-path-th ==0.1.0.0
-  - filepattern ==0.1.2
-  - fileplow ==0.1.0.0
-  - filtrable ==0.1.4.0
-  - fin ==0.2
-  - FindBin ==0.0.5
-  - fingertree ==0.1.4.2
-  - finite-typelits ==0.1.4.2
-  - first-class-families ==0.8.0.1
-  - first-class-patterns ==0.3.2.5
-  - fitspec ==0.4.8
-  - fixed ==0.3
-  - fixed-length ==0.2.2.1
-  - fixed-vector ==1.2.0.0
-  - fixed-vector-hetero ==0.6.1.0
-  - fix-whitespace ==0.0.5
-  - flac ==0.2.0
-  - flac-picture ==0.1.2
-  - flags-applicative ==0.1.0.3
-  - flat ==0.4.4
-  - flat-mcmc ==1.5.2
-  - flexible-defaults ==0.0.3
-  - FloatingHex ==0.5
-  - floatshow ==0.2.4
-  - flow ==1.0.22
-  - flush-queue ==1.0.0
-  - fmlist ==0.9.4
-  - fmt ==0.6.1.2
-  - fn ==0.3.0.2
-  - focus ==1.0.2
-  - focuslist ==0.1.0.2
-  - foldable1 ==0.1.0.0
-  - fold-debounce ==0.2.0.9
-  - fold-debounce-conduit ==0.2.0.6
-  - foldl ==1.4.11
-  - folds ==0.7.6
-  - follow-file ==0.0.3
-  - FontyFruity ==0.5.3.5
-  - foreign-store ==0.2
-  - ForestStructures ==0.0.1.0
-  - forkable-monad ==0.2.0.3
-  - forma ==1.1.3
-  - format-numbers ==0.1.0.1
-  - formatting ==6.3.7
-  - foundation ==0.0.25
-  - free ==5.1.5
-  - free-categories ==0.2.0.2
-  - freenect ==1.2.1
-  - freer-simple ==1.2.1.1
-  - freetype2 ==0.2.0
-  - free-vl ==0.1.4
-  - friendly-time ==0.4.1
-  - from-sum ==0.2.3.0
-  - frontmatter ==0.1.0.2
-  - fsnotify ==0.3.0.1
-  - fsnotify-conduit ==0.1.1.1
-  - ftp-client ==0.5.1.4
-  - ftp-client-conduit ==0.5.0.5
-  - funcmp ==1.9
-  - function-builder ==0.3.0.1
-  - functor-classes-compat ==1.0.1
-  - fusion-plugin ==0.2.2
-  - fusion-plugin-types ==0.1.0
-  - fuzzcheck ==0.1.1
-  - fuzzy ==0.1.0.0
-  - fuzzy-dates ==0.1.1.2
-  - fuzzyset ==0.2.0
-  - fuzzy-time ==0.1.0.0
-  - gauge ==0.2.5
-  - gd ==3000.7.3
-  - gdp ==0.0.3.0
-  - general-games ==1.1.1
-  - generic-aeson ==0.2.0.12
-  - generic-arbitrary ==0.1.0
-  - generic-constraints ==1.1.1.1
-  - generic-data ==0.9.2.0
-  - generic-data-surgery ==0.3.0.0
-  - generic-deriving ==1.13.1
-  - generic-functor ==0.2.0.0
-  - generic-lens ==2.1.0.0
-  - generic-lens-core ==2.1.0.0
-  - generic-monoid ==0.1.0.1
-  - generic-optics ==2.1.0.0
-  - GenericPretty ==1.2.2
-  - generic-random ==1.3.0.1
-  - generics-eot ==0.4.0.1
-  - generics-sop ==0.5.1.1
-  - generics-sop-lens ==0.2.0.1
-  - geniplate-mirror ==0.7.7
-  - genvalidity ==0.11.0.0
-  - genvalidity-aeson ==0.3.0.0
-  - genvalidity-bytestring ==0.6.0.0
-  - genvalidity-containers ==0.9.0.0
-  - genvalidity-criterion ==0.2.0.0
-  - genvalidity-hspec ==0.7.0.4
-  - genvalidity-hspec-aeson ==0.3.1.1
-  - genvalidity-hspec-binary ==0.2.0.4
-  - genvalidity-hspec-cereal ==0.2.0.4
-  - genvalidity-hspec-hashable ==0.2.0.5
-  - genvalidity-hspec-optics ==0.1.1.2
-  - genvalidity-hspec-persistent ==0.0.0.1
-  - genvalidity-mergeful ==0.2.0.0
-  - genvalidity-mergeless ==0.2.0.0
-  - genvalidity-path ==0.3.0.4
-  - genvalidity-persistent ==0.0.0.0
-  - genvalidity-property ==0.5.0.1
-  - genvalidity-scientific ==0.2.1.1
-  - genvalidity-sydtest ==0.0.0.0
-  - genvalidity-sydtest-aeson ==0.0.0.0
-  - genvalidity-sydtest-hashable ==0.0.0.0
-  - genvalidity-sydtest-lens ==0.0.0.0
-  - genvalidity-sydtest-persistent ==0.0.0.1
-  - genvalidity-text ==0.7.0.2
-  - genvalidity-time ==0.3.0.0
-  - genvalidity-typed-uuid ==0.0.0.2
-  - genvalidity-unordered-containers ==0.3.0.1
-  - genvalidity-uuid ==0.1.0.4
-  - genvalidity-vector ==0.3.0.1
-  - geojson ==4.0.2
-  - getopt-generics ==0.13.0.4
-  - ghc-byteorder ==4.11.0.0.10
-  - ghc-check ==0.5.0.4
-  - ghc-core ==0.5.6
-  - ghc-events ==0.16.0
-  - ghc-exactprint ==0.6.4
-  - ghcid ==0.8.7
-  - ghci-hexcalc ==0.1.1.0
-  - ghcjs-codemirror ==0.0.0.2
-  - ghc-lib ==8.10.4.20210206
-  - ghc-lib-parser ==8.10.4.20210206
-  - ghc-lib-parser-ex ==8.10.0.19
-  - ghc-parser ==0.2.2.0
-  - ghc-paths ==0.1.0.12
-  - ghc-prof ==1.4.1.8
-  - ghc-source-gen ==0.4.0.0
-  - ghc-syntax-highlighter ==0.0.6.0
-  - ghc-tcplugins-extra ==0.4.1
-  - ghc-trace-events ==0.1.2.2
-  - ghc-typelits-extra ==0.4.2
-  - ghc-typelits-knownnat ==0.7.5
-  - ghc-typelits-natnormalise ==0.7.4
-  - ghc-typelits-presburger ==0.6.0.0
-  - ghost-buster ==0.1.1.0
-  - gi-atk ==2.0.22
-  - gi-cairo ==1.0.24
-  - gi-cairo-connector ==0.1.0
-  - gi-cairo-render ==0.1.0
-  - gi-dbusmenu ==0.4.8
-  - gi-dbusmenugtk3 ==0.4.9
-  - gi-gdk ==3.0.23
-  - gi-gdkpixbuf ==2.0.24
-  - gi-gdkx11 ==3.0.10
-  - gi-gio ==2.0.27
-  - gi-glib ==2.0.24
-  - gi-gobject ==2.0.25
-  - gi-graphene ==1.0.2
-  - gi-gtk ==3.0.36
-  - gi-gtk-hs ==0.3.9
-  - gi-harfbuzz ==0.0.3
-  - ginger ==0.10.1.0
-  - gingersnap ==0.3.1.0
-  - gi-pango ==1.0.23
-  - githash ==0.1.5.0
-  - github-release ==1.3.7
-  - github-rest ==1.0.3
-  - github-types ==0.2.1
-  - github-webhooks ==0.15.0
-  - gitlab-haskell ==0.2.5
-  - gitrev ==1.3.1
-  - gi-xlib ==2.0.9
-  - gl ==0.9
-  - glabrous ==2.0.3
-  - GLFW-b ==3.3.0.0
-  - Glob ==0.10.1
-  - gloss ==1.13.2.1
-  - gloss-rendering ==1.13.1.1
-  - GLURaw ==2.0.0.4
-  - GLUT ==2.7.0.16
-  - gluturtle ==0.0.58.1
-  - gnuplot ==0.5.6.1
-  - google-isbn ==1.0.3
-  - gopher-proxy ==0.1.1.2
-  - gothic ==0.1.6
-  - gpolyline ==0.1.0.1
-  - graph-core ==0.3.0.0
-  - graphite ==0.10.0.1
-  - graphql-client ==1.1.1
-  - graphs ==0.7.1
-  - graphula ==2.0.0.4
-  - graphviz ==2999.20.1.0
-  - graph-wrapper ==0.2.6.0
-  - gravatar ==0.8.0
-  - greskell ==1.2.0.1
-  - greskell-core ==0.1.3.6
-  - greskell-websocket ==0.1.2.5
-  - groom ==0.1.2.1
-  - group-by-date ==0.1.0.4
-  - groups ==0.5.2
-  - gtk-sni-tray ==0.1.6.0
-  - gtk-strut ==0.1.3.0
-  - guarded-allocation ==0.0.1
-  - H ==0.9.0.1
-  - hackage-db ==2.1.0
-  - hackage-security ==0.6.0.1
-  - haddock-library ==1.9.0
-  - hadoop-streaming ==0.2.0.3
-  - hakyll-convert ==0.3.0.4
-  - half ==0.3.1
-  - hall-symbols ==0.1.0.6
-  - hamtsolo ==1.0.3
-  - HandsomeSoup ==0.4.2
-  - hapistrano ==0.4.1.3
-  - happstack-server ==7.7.0
-  - happy ==1.20.0
-  - happy-meta ==0.2.0.11
-  - HasBigDecimal ==0.1.1
-  - hasbolt ==0.1.4.4
-  - hashable ==1.3.0.0
-  - hashable-time ==0.2.1
-  - hashids ==1.0.2.4
-  - hashing ==0.1.0.1
-  - hashmap ==1.3.3
-  - hashtables ==1.2.4.1
-  - haskeline ==0.8.1.2
-  - haskell-gi ==0.24.7
-  - haskell-gi-base ==0.24.5
-  - haskell-gi-overloading ==1.0
-  - haskell-import-graph ==1.0.4
-  - haskell-lexer ==1.1
-  - haskell-lsp ==0.22.0.0
-  - haskell-lsp-types ==0.22.0.0
-  - haskell-names ==0.9.9
-  - haskell-src ==1.0.3.1
-  - haskell-src-exts ==1.23.1
-  - haskell-src-exts-util ==0.2.5
-  - haskell-src-meta ==0.8.7
-  - haskey-btree ==0.3.0.1
-  - hasql ==1.4.5.1
-  - hasql-notifications ==0.2.0.0
-  - hasql-optparse-applicative ==0.3.0.6
-  - hasql-pool ==0.5.2
-  - hasql-queue ==1.2.0.2
-  - hasql-transaction ==1.0.0.2
-  - hasty-hamiltonian ==1.3.4
-  - HaTeX ==3.22.3.0
-  - HaXml ==1.25.5
-  - haxr ==3000.11.4.1
-  - HCodecs ==0.5.2
-  - hdaemonize ==0.5.6
-  - HDBC ==2.4.0.3
-  - HDBC-session ==0.1.2.0
-  - headroom ==0.4.1.0
-  - heap ==1.0.4
-  - heaps ==0.4
-  - hebrew-time ==0.1.2
-  - hedgehog ==1.0.5
-  - hedgehog-corpus ==0.2.0
-  - hedgehog-fakedata ==0.0.1.4
-  - hedgehog-fn ==1.0
-  - hedgehog-quickcheck ==0.1.1
-  - hedis ==0.14.2
-  - hedn ==0.3.0.2
-  - here ==1.2.13
-  - heredoc ==0.2.0.0
-  - heterocephalus ==1.0.5.4
-  - hexml ==0.3.4
-  - hexml-lens ==0.2.1
-  - hexpat ==0.20.13
-  - hformat ==0.3.3.1
-  - hfsevents ==0.1.6
-  - hgrev ==0.2.6
-  - hidapi ==0.1.7
-  - hie-bios ==0.7.5
-  - hi-file-parser ==0.1.2.0
-  - higher-leveldb ==0.6.0.0
-  - highlighting-kate ==0.6.4
-  - hinfo ==0.0.3.0
-  - hinotify ==0.4.1
-  - hint ==0.9.0.4
-  - hjsmin ==0.2.0.4
-  - hkd-default ==1.1.0.0
-  - hkgr ==0.2.7
-  - hlibcpuid ==0.2.0
-  - hlibgit2 ==0.18.0.16
-  - hlibsass ==0.1.10.1
-  - hmatrix ==0.20.2
-  - hmatrix-backprop ==0.1.3.0
-  - hmatrix-gsl ==0.19.0.1
-  - hmatrix-gsl-stats ==0.4.1.8
-  - hmatrix-morpheus ==0.1.1.2
-  - hmatrix-vector-sized ==0.1.3.0
-  - hmm-lapack ==0.4
-  - hmpfr ==0.4.4
-  - hnock ==0.4.0
-  - hoauth2 ==1.16.0
-  - hocon ==0.1.0.4
-  - hOpenPGP ==2.9.5
-  - hopenpgp-tools ==0.23.6
-  - hopfli ==0.2.2.1
-  - hosc ==0.18.1
-  - hostname ==1.0
-  - hostname-validate ==1.0.0
-  - hourglass ==0.2.12
-  - hourglass-orphans ==0.1.0.0
-  - hp2pretty ==0.10
-  - hpack ==0.34.4
-  - hpack-dhall ==0.5.2
-  - hpc-codecov ==0.3.0.0
-  - hpc-lcov ==1.0.1
-  - hprotoc ==2.4.17
-  - hruby ==0.3.8.1
-  - hsass ==0.8.0
-  - hs-bibutils ==6.10.0.0
-  - hsc2hs ==0.68.7
-  - hscolour ==1.24.4
-  - hsdns ==1.8
-  - hsebaysdk ==0.4.1.0
-  - hsemail ==2.2.1
-  - hs-functors ==0.1.7.1
-  - hs-GeoIP ==0.3
-  - hsini ==0.5.1.2
-  - hsinstall ==2.6
-  - HSlippyMap ==3.0.1
-  - hslogger ==1.3.1.0
-  - hslua ==1.3.0.1
-  - hslua-aeson ==1.0.3.1
-  - hslua-module-doclayout ==0.2.0.1
-  - hslua-module-path ==0.1.0.1
-  - hslua-module-system ==0.2.2.1
-  - hslua-module-text ==0.3.0.1
-  - HsOpenSSL ==0.11.6.2
-  - HsOpenSSL-x509-system ==0.1.0.4
-  - hsp ==0.10.0
-  - hspec ==2.7.9
-  - hspec-attoparsec ==0.1.0.2
-  - hspec-checkers ==0.1.0.2
-  - hspec-contrib ==0.5.1
-  - hspec-core ==2.7.9
-  - hspec-discover ==2.7.9
-  - hspec-expectations ==0.8.2
-  - hspec-expectations-json ==1.0.0.3
-  - hspec-expectations-lifted ==0.10.0
-  - hspec-expectations-pretty-diff ==0.7.2.5
-  - hspec-golden ==0.1.0.3
-  - hspec-golden-aeson ==0.7.0.0
-  - hspec-hedgehog ==0.0.1.2
-  - hspec-junit-formatter ==1.0.0.2
-  - hspec-leancheck ==0.0.4
-  - hspec-megaparsec ==2.2.0
-  - hspec-meta ==2.7.8
-  - hspec-need-env ==0.1.0.6
-  - hspec-parsec ==0
-  - hspec-smallcheck ==0.5.2
-  - hspec-tables ==0.0.1
-  - hspec-wai ==0.11.0
-  - hspec-wai-json ==0.11.0
-  - hs-php-session ==0.0.9.3
-  - hsshellscript ==3.5.0
-  - hs-tags ==0.1.5
-  - HStringTemplate ==0.8.7
-  - HSvm ==0.1.1.3.22
-  - HsYAML ==0.2.1.0
-  - HsYAML-aeson ==0.2.0.0
-  - hsyslog ==5.0.2
-  - htaglib ==1.2.0
-  - HTF ==0.14.0.6
-  - html ==1.0.1.2
-  - html-conduit ==1.3.2.1
-  - html-entities ==1.1.4.5
-  - html-entity-map ==0.1.0.0
-  - htoml ==1.0.0.3
-  - http2 ==2.0.6
-  - HTTP ==4000.3.16
-  - http-api-data ==0.4.2
-  - http-client ==0.6.4.1
-  - http-client-openssl ==0.3.2.0
-  - http-client-overrides ==0.1.1.0
-  - http-client-tls ==0.3.5.3
-  - http-common ==0.8.2.1
-  - http-conduit ==2.3.8
-  - http-date ==0.0.11
-  - http-directory ==0.1.8
-  - http-download ==0.2.0.0
-  - httpd-shed ==0.4.1.1
-  - http-link-header ==1.2.0
-  - http-media ==0.8.0.0
-  - http-query ==0.1.0.1
-  - http-reverse-proxy ==0.6.0
-  - http-streams ==0.8.7.2
-  - http-types ==0.12.3
-  - human-readable-duration ==0.2.1.4
-  - HUnit ==1.6.2.0
-  - HUnit-approx ==1.1.1.1
-  - hunit-dejafu ==2.0.0.4
-  - hvect ==0.4.0.0
-  - hvega ==0.11.0.0
-  - hw-balancedparens ==0.4.1.1
-  - hw-bits ==0.7.2.1
-  - hw-conduit ==0.2.1.0
-  - hw-conduit-merges ==0.2.1.0
-  - hw-diagnostics ==0.0.1.0
-  - hw-dsv ==0.4.1.0
-  - hweblib ==0.6.3
-  - hw-eliasfano ==0.1.2.0
-  - hw-excess ==0.2.3.0
-  - hw-fingertree ==0.1.2.0
-  - hw-fingertree-strict ==0.1.2.0
-  - hw-hedgehog ==0.1.1.0
-  - hw-hspec-hedgehog ==0.1.1.0
-  - hw-int ==0.0.2.0
-  - hw-ip ==2.4.2.0
-  - hw-json ==1.3.2.2
-  - hw-json-simd ==0.1.1.0
-  - hw-json-simple-cursor ==0.1.1.0
-  - hw-json-standard-cursor ==0.2.3.1
-  - hw-kafka-client ==4.0.3
-  - hw-mquery ==0.2.1.0
-  - hw-packed-vector ==0.2.1.0
-  - hw-parser ==0.1.1.0
-  - hw-prim ==0.6.3.0
-  - hw-rankselect ==0.13.4.0
-  - hw-rankselect-base ==0.3.4.1
-  - hw-simd ==0.1.2.0
-  - hw-streams ==0.0.1.0
-  - hw-string-parse ==0.0.0.4
-  - hw-succinct ==0.1.0.1
-  - hw-xml ==0.5.1.0
-  - hxt ==9.3.1.22
-  - hxt-charproperties ==9.5.0.0
-  - hxt-css ==0.1.0.3
-  - hxt-curl ==9.1.1.1
-  - hxt-expat ==9.1.1
-  - hxt-http ==9.1.5.2
-  - hxt-regex-xmlschema ==9.2.0.7
-  - hxt-tagsoup ==9.1.4
-  - hxt-unicode ==9.0.2.4
-  - hybrid-vectors ==0.2.2
-  - hyper ==0.2.1.0
-  - hyperloglog ==0.4.4
-  - hyphenation ==0.8.1
-  - iconv ==0.4.1.3
-  - identicon ==0.2.2
-  - ieee754 ==0.8.0
-  - if ==0.1.0.0
-  - iff ==0.0.6
-  - ihaskell ==0.10.1.2
-  - ihs ==0.1.0.3
-  - ilist ==0.4.0.1
-  - imagesize-conduit ==1.1
-  - Imlib ==0.1.2
-  - immortal ==0.3
-  - immortal-queue ==0.1.0.1
-  - inbox ==0.1.0
-  - include-file ==0.1.0.4
-  - incremental-parser ==0.5.0.2
-  - indents ==0.5.0.1
-  - indexed ==0.1.3
-  - indexed-containers ==0.1.0.2
-  - indexed-list-literals ==0.2.1.3
-  - indexed-profunctors ==0.1.1
-  - indexed-traversable ==0.1.1
-  - indexed-traversable-instances ==0.1
-  - infer-license ==0.2.0
-  - inflections ==0.4.0.6
-  - influxdb ==1.9.1.2
-  - ini ==0.4.1
-  - inj ==1.0
-  - inline-c ==0.9.1.4
-  - inline-c-cpp ==0.4.0.3
-  - inline-r ==0.10.4
-  - inliterate ==0.1.0
-  - input-parsers ==0.2.2
-  - insert-ordered-containers ==0.2.4
-  - inspection-testing ==0.4.3.0
-  - instance-control ==0.1.2.0
-  - int-cast ==0.2.0.0
-  - integer-logarithms ==1.0.3.1
-  - integer-roots ==1.0
-  - integration ==0.2.1
-  - intern ==0.9.4
-  - interpolate ==0.2.1
-  - interpolatedstring-perl6 ==1.0.2
-  - interpolation ==0.1.1.1
-  - interpolator ==1.1.0.2
-  - IntervalMap ==0.6.1.2
-  - intervals ==0.9.2
-  - intro ==0.9.0.0
-  - intset-imperative ==0.1.0.0
-  - invariant ==0.5.4
-  - invertible ==0.2.0.7
-  - invertible-grammar ==0.1.3
-  - io-machine ==0.2.0.0
-  - io-manager ==0.1.0.3
-  - io-memoize ==1.1.1.0
-  - io-region ==0.1.1
-  - io-storage ==0.3
-  - io-streams ==1.5.2.0
-  - io-streams-haproxy ==1.0.1.0
-  - ip6addr ==1.0.2
-  - iproute ==1.7.11
-  - IPv6Addr ==2.0.2
-  - ipynb ==0.1.0.1
-  - ipython-kernel ==0.10.2.1
-  - irc ==0.6.1.0
-  - irc-client ==1.1.2.0
-  - irc-conduit ==0.3.0.4
-  - irc-ctcp ==0.1.3.0
-  - isbn ==1.1.0.2
-  - islink ==0.1.0.0
-  - iso3166-country-codes ==0.20140203.8
-  - iso639 ==0.1.0.3
-  - iso8601-time ==0.1.5
-  - iterable ==3.0
-  - ixset-typed ==0.5
-  - ixset-typed-binary-instance ==0.1.0.2
-  - ixset-typed-conversions ==0.1.2.0
-  - ixset-typed-hashable-instance ==0.1.0.2
-  - ix-shapable ==0.1.0
-  - jack ==0.7.2
-  - jalaali ==1.0.0.0
-  - jira-wiki-markup ==1.3.4
-  - jose ==0.8.4
-  - jose-jwt ==0.9.2
-  - js-chart ==2.9.4.1
-  - js-dgtable ==0.5.2
-  - js-flot ==0.8.3
-  - js-jquery ==3.3.1
-  - json-feed ==1.0.12
-  - jsonpath ==0.2.0.0
-  - json-rpc ==1.0.3
-  - json-rpc-generic ==0.2.1.5
-  - JuicyPixels ==3.3.5
-  - JuicyPixels-blurhash ==0.1.0.3
-  - JuicyPixels-extra ==0.4.1
-  - JuicyPixels-scale-dct ==0.1.2
-  - junit-xml ==0.1.0.2
-  - justified-containers ==0.3.0.0
-  - jwt ==0.10.0
-  - kan-extensions ==5.2.2
-  - kanji ==3.4.1
-  - katip ==0.8.5.0
-  - katip-logstash ==0.1.0.0
-  - kawhi ==0.3.0
-  - kazura-queue ==0.1.0.4
-  - kdt ==0.2.4
-  - keep-alive ==0.2.0.0
-  - keycode ==0.2.2
-  - keys ==3.12.3
-  - ki ==0.2.0.1
-  - kind-apply ==0.3.2.0
-  - kind-generics ==0.4.1.0
-  - kind-generics-th ==0.2.2.2
-  - kmeans ==0.1.3
-  - koofr-client ==1.0.0.3
-  - krank ==0.2.2
-  - kubernetes-webhook-haskell ==0.2.0.3
-  - l10n ==0.1.0.1
-  - labels ==0.3.3
-  - lackey ==1.0.14
-  - LambdaHack ==0.10.2.0
-  - lame ==0.2.0
-  - language-avro ==0.1.3.1
-  - language-bash ==0.9.2
-  - language-c ==0.8.3
-  - language-c-quote ==0.12.2.1
-  - language-docker ==9.2.0
-  - language-java ==0.2.9
-  - language-javascript ==0.7.1.0
-  - language-protobuf ==1.0.1
-  - language-python ==0.5.8
-  - language-thrift ==0.12.0.0
-  - lapack ==0.3.2
-  - lapack-carray ==0.0.3
-  - lapack-comfort-array ==0.0.0.1
-  - lapack-ffi ==0.0.3
-  - lapack-ffi-tools ==0.1.2.1
-  - largeword ==1.2.5
-  - latex ==0.1.0.4
-  - lattices ==2.0.2
-  - lawful ==0.1.0.0
-  - lazy-csv ==0.5.1
-  - lazyio ==0.1.0.4
-  - lca ==0.4
-  - leancheck ==0.9.3
-  - leancheck-instances ==0.0.4
-  - leapseconds-announced ==2017.1.0.1
-  - learn-physics ==0.6.5
-  - lens ==4.19.2
-  - lens-action ==0.2.5
-  - lens-aeson ==1.1.1
-  - lens-csv ==0.1.1.0
-  - lens-datetime ==0.3
-  - lens-family ==2.0.0
-  - lens-family-core ==2.0.0
-  - lens-family-th ==0.5.2.0
-  - lens-misc ==0.0.2.0
-  - lens-process ==0.4.0.0
-  - lens-properties ==4.11.1
-  - lens-regex ==0.1.3
-  - lens-regex-pcre ==1.1.0.0
-  - lenz ==0.4.2.0
-  - leveldb-haskell ==0.6.5
-  - libffi ==0.1
-  - libgit ==0.3.1
-  - libgraph ==1.14
-  - libjwt-typed ==0.2
-  - libmpd ==0.10.0.0
-  - liboath-hs ==0.0.1.2
-  - libyaml ==0.1.2
-  - LibZip ==1.0.1
-  - lifted-async ==0.10.2
-  - lifted-base ==0.2.3.12
-  - lift-generics ==0.2
-  - line ==4.0.1
-  - linear ==1.21.5
-  - linear-circuit ==0.1.0.2
-  - linenoise ==0.3.2
-  - linux-file-extents ==0.2.0.0
-  - linux-namespaces ==0.1.3.0
-  - liquid-fixpoint ==0.8.10.2
-  - List ==0.6.2
-  - ListLike ==4.7.4
-  - list-predicate ==0.1.0.1
-  - listsafe ==0.1.0.1
-  - list-singleton ==1.0.0.5
-  - list-t ==1.0.4
-  - ListTree ==0.2.3
-  - little-rio ==0.2.2
-  - llvm-hs ==9.0.1
-  - llvm-hs-pure ==9.0.0
-  - lmdb ==0.2.5
-  - load-env ==0.2.1.0
-  - loc ==0.1.3.10
-  - locators ==0.3.0.3
-  - loch-th ==0.2.2
-  - lockfree-queue ==0.2.3.1
-  - log-domain ==0.13.1
-  - logfloat ==0.13.3.3
-  - logging ==3.0.5
-  - logging-facade ==0.3.0
-  - logging-facade-syslog ==1
-  - logict ==0.7.1.0
-  - logstash ==0.1.0.1
-  - loop ==0.3.0
-  - lrucache ==1.2.0.1
-  - lrucaching ==0.3.3
-  - lsp-test ==0.11.0.5
-  - lucid ==2.9.12.1
-  - lucid-cdn ==0.2.2.0
-  - lucid-extras ==0.2.2
-  - lukko ==0.1.1.3
-  - lz4-frame-conduit ==0.1.0.1
-  - lzma ==0.0.0.3
-  - lzma-conduit ==1.2.1
-  - machines ==0.7.2
-  - magic ==1.1
-  - magico ==0.0.2.1
-  - mainland-pretty ==0.7.0.1
-  - main-tester ==0.2.0.1
-  - makefile ==1.1.0.0
-  - managed ==1.0.8
-  - MapWith ==0.2.0.0
-  - markdown ==0.1.17.4
-  - markdown-unlit ==0.5.1
-  - markov-chain ==0.0.3.4
-  - massiv ==0.6.0.0
-  - massiv-io ==0.4.1.0
-  - massiv-persist ==0.1.0.0
-  - massiv-serialise ==0.1.0.0
-  - massiv-test ==0.1.6.1
-  - mathexpr ==0.3.0.0
-  - math-extras ==0.1.1.0
-  - math-functions ==0.3.4.2
-  - matplotlib ==0.7.5
-  - matrices ==0.5.0
-  - matrix ==0.3.6.1
-  - matrix-as-xyz ==0.1.2.2
-  - matrix-market-attoparsec ==0.1.1.3
-  - matrix-static ==0.3
-  - maximal-cliques ==0.1.1
-  - mbox ==0.3.4
-  - mbox-utility ==0.0.3.1
-  - mcmc ==0.4.0.0
-  - mcmc-types ==1.0.3
-  - medea ==1.2.0
-  - median-stream ==0.7.0.0
-  - med-module ==0.1.2.1
-  - megaparsec ==9.0.1
-  - megaparsec-tests ==9.0.1
-  - membrain ==0.0.0.2
-  - memory ==0.15.0
-  - MemoTrie ==0.6.10
-  - mercury-api ==0.1.0.2
-  - mergeful ==0.2.0.0
-  - mergeless ==0.3.0.0
-  - mersenne-random-pure64 ==0.2.2.0
-  - messagepack ==0.5.4
-  - metrics ==0.4.1.1
-  - mfsolve ==0.3.2.0
-  - microlens ==0.4.12.0
-  - microlens-aeson ==2.3.1
-  - microlens-contra ==0.1.0.2
-  - microlens-ghc ==0.4.13
-  - microlens-mtl ==0.2.0.1
-  - microlens-platform ==0.4.2
-  - microlens-process ==0.2.0.2
-  - microlens-th ==0.4.3.9
-  - microspec ==0.2.1.3
-  - microstache ==1.0.1.2
-  - midair ==0.2.0.1
-  - midi ==0.2.2.2
-  - mighty-metropolis ==2.0.0
-  - mime-mail ==0.5.1
-  - mime-mail-ses ==0.4.3
-  - mime-types ==0.1.0.9
-  - mini-egison ==1.0.0
-  - minimal-configuration ==0.1.4
-  - minimorph ==0.3.0.0
-  - minio-hs ==1.5.3
-  - miniutter ==0.5.1.1
-  - min-max-pqueue ==0.1.0.2
-  - mintty ==0.1.2
-  - missing-foreign ==0.1.1
-  - MissingH ==1.4.3.0
-  - mixed-types-num ==0.4.1
-  - mltool ==0.2.0.1
-  - mmap ==0.5.9
-  - mmark ==0.0.7.2
-  - mmark-cli ==0.0.5.0
-  - mmark-ext ==0.2.1.3
-  - mmorph ==1.1.5
-  - mnist-idx ==0.1.2.8
-  - mockery ==0.3.5
-  - mock-time ==0.1.0
-  - mod ==0.1.2.2
-  - model ==0.5
-  - modern-uri ==0.3.4.1
-  - modular ==0.1.0.8
-  - monad-chronicle ==1.0.0.1
-  - monad-control ==1.0.2.3
-  - monad-control-aligned ==0.0.1.1
-  - monad-coroutine ==0.9.1
-  - monad-extras ==0.6.0
-  - monadic-arrays ==0.2.2
-  - monad-journal ==0.8.1
-  - monadlist ==0.0.2
-  - monad-logger ==0.3.36
-  - monad-logger-json ==0.1.0.0
-  - monad-logger-logstash ==0.1.0.0
-  - monad-logger-prefix ==0.1.12
-  - monad-loops ==0.4.3
-  - monad-memo ==0.5.3
-  - monad-metrics ==0.2.2.0
-  - monad-par ==0.3.5
-  - monad-parallel ==0.7.2.4
-  - monad-par-extras ==0.3.3
-  - monad-peel ==0.2.1.2
-  - monad-primitive ==0.1
-  - monad-products ==4.0.1
-  - MonadPrompt ==1.0.0.5
-  - MonadRandom ==0.5.3
-  - monad-resumption ==0.1.4.0
-  - monad-skeleton ==0.1.5
-  - monad-st ==0.2.4.1
-  - monads-tf ==0.1.0.3
-  - monad-time ==0.3.1.0
-  - monad-unlift ==0.2.0
-  - monad-unlift-ref ==0.2.1
-  - mongoDB ==2.7.0.0
-  - monoid-subclasses ==1.0.1
-  - monoid-transformer ==0.0.4
-  - mono-traversable ==1.0.15.1
-  - mono-traversable-instances ==0.1.1.0
-  - mono-traversable-keys ==0.1.0
-  - more-containers ==0.2.2.2
-  - morpheus-graphql ==0.17.0
-  - morpheus-graphql-app ==0.17.0
-  - morpheus-graphql-client ==0.17.0
-  - morpheus-graphql-core ==0.17.0
-  - morpheus-graphql-subscriptions ==0.17.0
-  - moss ==0.2.0.0
-  - mountpoints ==1.0.2
-  - mpi-hs ==0.7.2.0
-  - mpi-hs-binary ==0.1.1.0
-  - mpi-hs-cereal ==0.1.0.0
-  - mtl-compat ==0.2.2
-  - mtl-prelude ==2.0.3.1
-  - multiarg ==0.30.0.10
-  - multi-containers ==0.1.1
-  - multimap ==1.2.1
-  - multipart ==0.2.1
-  - multiset ==0.3.4.3
-  - multistate ==0.8.0.3
-  - murmur3 ==1.0.4
-  - murmur-hash ==0.1.0.9
-  - MusicBrainz ==0.4.1
-  - mustache ==2.3.1
-  - mutable-containers ==0.3.4
-  - mwc-probability ==2.3.1
-  - mwc-random ==0.14.0.0
-  - mwc-random-monad ==0.7.3.1
-  - mx-state-codes ==1.0.0.0
-  - mysql ==0.2
-  - mysql-simple ==0.4.5
-  - n2o ==0.11.1
-  - nagios-check ==0.3.2
-  - names-th ==0.3.0.1
-  - nano-erl ==0.1.0.1
-  - nanospec ==0.2.2
-  - nats ==1.1.2
-  - natural-induction ==0.2.0.0
-  - natural-sort ==0.1.2
-  - natural-transformation ==0.4
-  - ndjson-conduit ==0.1.0.5
-  - neat-interpolation ==0.5.1.2
-  - netcode-io ==0.0.2
-  - netlib-carray ==0.1
-  - netlib-comfort-array ==0.0.0.1
-  - netlib-ffi ==0.1.1
-  - netpbm ==1.0.4
-  - nettle ==0.3.0
-  - netwire ==5.0.3
-  - netwire-input ==0.0.7
-  - netwire-input-glfw ==0.0.11
-  - network ==3.1.1.1
-  - network-bsd ==2.8.1.0
-  - network-byte-order ==0.1.6
-  - network-conduit-tls ==1.3.2
-  - network-info ==0.2.0.10
-  - network-ip ==0.3.0.3
-  - network-messagepack-rpc ==0.1.2.0
-  - network-messagepack-rpc-websocket ==0.1.1.1
-  - network-simple ==0.4.5
-  - network-simple-tls ==0.4
-  - network-transport ==0.5.4
-  - network-transport-composed ==0.2.1
-  - network-uri ==2.6.4.1
-  - newtype ==0.2.2.0
-  - newtype-generics ==0.6
-  - nicify-lib ==1.0.1
-  - NineP ==0.0.2.1
-  - nix-derivation ==1.1.2
-  - nix-paths ==1.0.1
-  - nonce ==1.0.7
-  - nondeterminism ==1.4
-  - non-empty ==0.3.3
-  - nonempty-containers ==0.3.4.1
-  - nonemptymap ==0.0.6.0
-  - non-empty-sequence ==0.2.0.4
-  - nonempty-vector ==0.2.1.0
-  - nonempty-zipper ==1.0.0.2
-  - non-negative ==0.1.2
-  - not-gloss ==0.7.7.0
-  - no-value ==1.0.0.0
-  - nowdoc ==0.1.1.0
-  - nqe ==0.6.3
-  - nri-env-parser ==0.1.0.6
-  - nri-observability ==0.1.0.1
-  - nri-prelude ==0.5.0.3
-  - nsis ==0.3.3
-  - numbers ==3000.2.0.2
-  - numeric-extras ==0.1
-  - numeric-prelude ==0.4.3.3
-  - numhask ==0.6.0.2
-  - NumInstances ==1.4
-  - numtype-dk ==0.5.0.2
-  - nuxeo ==0.3.2
-  - nvim-hs ==2.1.0.4
-  - nvim-hs-contrib ==2.0.0.0
-  - nvim-hs-ghcid ==2.0.0.0
-  - oauthenticated ==0.2.1.0
-  - ObjectName ==1.1.0.1
-  - o-clock ==1.2.0.1
-  - odbc ==0.2.2
-  - oeis2 ==1.0.5
-  - ofx ==0.4.4.0
-  - old-locale ==1.0.0.7
-  - old-time ==1.1.0.3
-  - once ==0.4
-  - one-liner ==1.0
-  - one-liner-instances ==0.1.2.1
-  - OneTuple ==0.2.2.1
-  - Only ==0.1
-  - oo-prototypes ==0.1.0.0
-  - opaleye ==0.7.1.0
-  - OpenAL ==1.7.0.5
-  - openapi3 ==3.0.2.0
-  - open-browser ==0.2.1.0
-  - openexr-write ==0.1.0.2
-  - OpenGL ==3.0.3.0
-  - OpenGLRaw ==3.3.4.0
-  - openpgp-asciiarmor ==0.1.2
-  - opensource ==0.1.1.0
-  - openssl-streams ==1.2.3.0
-  - opentelemetry ==0.6.1
-  - opentelemetry-extra ==0.6.1
-  - opentelemetry-lightstep ==0.6.1
-  - opentelemetry-wai ==0.6.1
-  - operational ==0.2.3.5
-  - operational-class ==0.3.0.0
-  - optics ==0.3
-  - optics-core ==0.3.0.1
-  - optics-extra ==0.3
-  - optics-th ==0.3.0.2
-  - optics-vl ==0.2.1
-  - optional-args ==1.0.2
-  - options ==1.2.1.1
-  - optparse-applicative ==0.16.1.0
-  - optparse-generic ==1.4.4
-  - optparse-simple ==0.1.1.3
-  - optparse-text ==0.1.1.0
-  - ordered-containers ==0.2.2
-  - ormolu ==0.1.4.1
-  - overhang ==1.0.0
-  - packcheck ==0.5.1
-  - packdeps ==0.6.0.0
-  - pager ==0.1.1.0
-  - pagination ==0.2.2
-  - pagure-cli ==0.2
-  - pandoc ==2.13
-  - pandoc-plot ==1.1.1
-  - pandoc-types ==1.22
-  - pantry ==0.5.1.5
-  - parallel ==3.2.2.0
-  - parallel-io ==0.3.3
-  - parameterized ==0.5.0.0
-  - paripari ==0.7.0.0
-  - parseargs ==0.2.0.9
-  - parsec-class ==1.0.0.0
-  - parsec-numbers ==0.1.0
-  - parsec-numeric ==0.1.0.0
-  - ParsecTools ==0.0.2.0
-  - parser-combinators ==1.2.1
-  - parser-combinators-tests ==1.2.1
-  - parsers ==0.12.10
-  - partial-handler ==1.0.3
-  - partial-isomorphisms ==0.2.2.1
-  - partial-semigroup ==0.5.1.8
-  - password ==3.0.0.0
-  - password-instances ==3.0.0.0
-  - password-types ==1.0.0.0
-  - path ==0.7.0
-  - path-binary-instance ==0.1.0.1
-  - path-extensions ==0.1.1.0
-  - path-extra ==0.2.0
-  - path-io ==1.6.2
-  - path-like ==0.2.0.2
-  - path-pieces ==0.2.1
-  - path-text-utf8 ==0.0.1.6
-  - pathtype ==0.8.1.1
-  - pathwalk ==0.3.1.2
-  - pattern-arrows ==0.0.2
-  - pava ==0.1.1.1
-  - pcg-random ==0.1.3.7
-  - pcre2 ==1.1.4
-  - pcre-heavy ==1.0.0.2
-  - pcre-light ==0.4.1.0
-  - pcre-utils ==0.1.8.2
-  - pdfinfo ==1.5.4
-  - peano ==0.1.0.1
-  - pem ==0.2.4
-  - percent-format ==0.0.1
-  - peregrin ==0.3.1
-  - perfect-hash-generator ==0.2.0.6
-  - perfect-vector-shuffle ==0.1.1.1
-  - persist ==0.1.1.5
-  - persistable-record ==0.6.0.5
-  - persistable-types-HDBC-pg ==0.0.3.5
-  - persistent ==2.11.0.4
-  - persistent-documentation ==0.1.0.2
-  - persistent-mtl ==0.2.1.0
-  - persistent-mysql ==2.10.3.1
-  - persistent-pagination ==0.1.1.2
-  - persistent-postgresql ==2.11.0.1
-  - persistent-qq ==2.9.2.1
-  - persistent-sqlite ==2.11.1.0
-  - persistent-template ==2.9.1.0
-  - persistent-test ==2.0.3.5
-  - persistent-typed-db ==0.1.0.2
-  - pg-harness-client ==0.6.0
-  - pgp-wordlist ==0.1.0.3
-  - pg-transact ==0.3.1.1
-  - phantom-state ==0.2.1.2
-  - pid1 ==0.1.2.0
-  - pinboard ==0.10.2.0
-  - pipes ==4.3.15
-  - pipes-aeson ==0.4.1.8
-  - pipes-attoparsec ==0.5.1.5
-  - pipes-binary ==0.4.2
-  - pipes-bytestring ==2.1.7
-  - pipes-concurrency ==2.0.12
-  - pipes-csv ==1.4.3
-  - pipes-extras ==1.0.15
-  - pipes-fastx ==0.3.0.0
-  - pipes-group ==1.0.12
-  - pipes-http ==1.0.6
-  - pipes-network ==0.6.5
-  - pipes-network-tls ==0.4
-  - pipes-ordered-zip ==1.2.1
-  - pipes-parse ==3.0.9
-  - pipes-random ==1.0.0.5
-  - pipes-safe ==2.3.3
-  - pipes-wai ==3.2.0
-  - pkcs10 ==0.2.0.0
-  - pkgtreediff ==0.4
-  - place-cursor-at ==1.0.1
-  - placeholders ==0.1
-  - plaid ==0.1.0.4
-  - plotlyhs ==0.2.1
-  - pointed ==5.0.2
-  - pointedlist ==0.6.1
-  - pointless-fun ==1.1.0.6
-  - poll ==0.0.0.2
-  - poly ==0.5.0.0
-  - poly-arity ==0.1.0
-  - polynomials-bernstein ==1.1.2
-  - polyparse ==1.13
-  - pooled-io ==0.0.2.2
-  - port-utils ==0.2.1.0
-  - posix-paths ==0.2.1.6
-  - possibly ==1.0.0.0
-  - postgres-options ==0.2.0.0
-  - postgresql-binary ==0.12.4
-  - postgresql-libpq ==0.9.4.3
-  - postgresql-libpq-notify ==0.2.0.0
-  - postgresql-orm ==0.5.1
-  - postgresql-simple ==0.6.4
-  - postgresql-typed ==0.6.2.0
-  - postgrest ==7.0.1
-  - post-mess-age ==0.2.1.0
-  - pptable ==0.3.0.0
-  - pqueue ==1.4.1.3
-  - prairie ==0.0.1.0
-  - prefix-units ==0.2.0
-  - prelude-compat ==0.0.0.2
-  - prelude-safeenum ==0.1.1.2
-  - prettyclass ==1.0.0.0
-  - pretty-class ==1.0.1.1
-  - pretty-diff ==0.4.0.3
-  - pretty-hex ==1.1
-  - prettyprinter ==1.7.0
-  - prettyprinter-ansi-terminal ==1.1.2
-  - prettyprinter-compat-annotated-wl-pprint ==1.1
-  - prettyprinter-compat-ansi-wl-pprint ==1.0.1
-  - prettyprinter-compat-wl-pprint ==1.0.0.1
-  - prettyprinter-convert-ansi-wl-pprint ==1.1.1
-  - pretty-relative-time ==0.2.0.0
-  - pretty-show ==1.10
-  - pretty-simple ==4.0.0.0
-  - pretty-sop ==0.2.0.3
-  - pretty-terminal ==0.1.0.0
-  - primes ==0.2.1.0
-  - primitive ==0.7.1.0
-  - primitive-addr ==0.1.0.2
-  - primitive-extras ==0.10.1
-  - primitive-unaligned ==0.1.1.1
-  - primitive-unlifted ==0.1.3.0
-  - print-console-colors ==0.1.0.0
-  - probability ==0.2.7
-  - process-extras ==0.7.4
-  - product-isomorphic ==0.0.3.3
-  - product-profunctors ==0.11.0.2
-  - profiterole ==0.1
-  - profunctors ==5.5.2
-  - projectroot ==0.2.0.1
-  - project-template ==0.2.1.0
-  - prometheus ==2.2.2
-  - prometheus-client ==1.0.1
-  - prometheus-wai-middleware ==1.0.1.0
-  - promises ==0.3
-  - prompt ==0.1.1.2
-  - prospect ==0.1.0.0
-  - proto3-wire ==1.2.0
-  - protobuf ==0.2.1.3
-  - protobuf-simple ==0.1.1.0
-  - protocol-buffers ==2.4.17
-  - protocol-buffers-descriptor ==2.4.17
-  - protocol-radius ==0.0.1.1
-  - protocol-radius-test ==0.1.0.1
-  - proto-lens ==0.7.0.0
-  - proto-lens-protobuf-types ==0.7.0.0
-  - proto-lens-protoc ==0.7.0.0
-  - proto-lens-runtime ==0.7.0.0
-  - proto-lens-setup ==0.4.0.4
-  - protolude ==0.3.0
-  - proxied ==0.3.1
-  - psqueues ==0.2.7.2
-  - publicsuffix ==0.20200526
-  - pulse-simple ==0.1.14
-  - pureMD5 ==2.1.3
-  - purescript-bridge ==0.14.0.0
-  - pushbullet-types ==0.4.1.0
-  - pusher-http-haskell ==2.1.0.0
-  - pvar ==1.0.0.0
-  - PyF ==0.9.0.3
-  - qchas ==1.1.0.1
-  - qm-interpolated-string ==0.3.0.0
-  - qrcode-core ==0.9.4
-  - qrcode-juicypixels ==0.8.2
-  - quadratic-irrational ==0.1.1
-  - QuasiText ==0.1.2.6
-  - QuickCheck ==2.14.2
-  - quickcheck-arbitrary-adt ==0.3.1.0
-  - quickcheck-assertions ==0.3.0
-  - quickcheck-classes ==0.6.5.0
-  - quickcheck-classes-base ==0.6.2.0
-  - quickcheck-higherorder ==0.1.0.0
-  - quickcheck-instances ==0.3.25.2
-  - quickcheck-io ==0.2.0
-  - quickcheck-simple ==0.1.1.1
-  - quickcheck-special ==0.1.0.6
-  - quickcheck-text ==0.1.2.1
-  - quickcheck-transformer ==0.3.1.1
-  - quickcheck-unicode ==1.0.1.0
-  - quiet ==0.2
-  - quote-quot ==0.2.0.0
-  - radius ==0.7.1.0
-  - rainbow ==0.34.2.2
-  - rainbox ==0.26.0.0
-  - ral ==0.2
-  - rampart ==1.1.0.2
-  - ramus ==0.1.2
-  - rando ==0.0.0.4
-  - random ==1.1
-  - random-bytestring ==0.1.4
-  - random-fu ==0.2.7.4
-  - random-shuffle ==0.0.4
-  - random-source ==0.3.0.8
-  - random-tree ==0.6.0.5
-  - range ==0.3.0.2
-  - ranged-list ==0.1.0.0
-  - Ranged-sets ==0.4.0
-  - range-set-list ==0.1.3.1
-  - rank1dynamic ==0.4.1
-  - rank2classes ==1.4.1
-  - Rasterific ==0.7.5.3
-  - rasterific-svg ==0.3.3.2
-  - ratel ==1.0.14
-  - rate-limit ==1.4.2
-  - ratel-wai ==1.1.5
-  - rattle ==0.2
-  - rattletrap ==11.0.1
-  - Rattus ==0.5
-  - rawfilepath ==0.2.4
-  - rawstring-qm ==0.2.3.0
-  - raw-strings-qq ==1.1
-  - rcu ==0.2.5
-  - rdf ==0.1.0.5
-  - rdtsc ==1.3.0.1
-  - re2 ==0.3
-  - readable ==0.3.1
-  - read-editor ==0.1.0.2
-  - read-env-var ==1.0.0.0
-  - rebase ==1.6.1
-  - record-dot-preprocessor ==0.2.10
-  - record-hasfield ==1.0
-  - records-sop ==0.1.1.0
-  - record-wrangler ==0.1.1.0
-  - recursion-schemes ==5.2.2.1
-  - reducers ==3.12.3
-  - refact ==0.3.0.2
-  - ref-fd ==0.4.0.2
-  - refined ==0.6.2
-  - reflection ==2.1.6
-  - reform ==0.2.7.4
-  - reform-blaze ==0.2.4.3
-  - reform-hamlet ==0.0.5.3
-  - reform-happstack ==0.2.5.4
-  - RefSerialize ==0.4.0
-  - ref-tf ==0.4.0.2
-  - regex ==1.1.0.0
-  - regex-applicative ==0.3.4
-  - regex-applicative-text ==0.1.0.1
-  - regex-base ==0.94.0.1
-  - regex-compat ==0.95.2.1
-  - regex-compat-tdfa ==0.95.1.4
-  - regex-pcre ==0.95.0.0
-  - regex-pcre-builtin ==0.95.2.3.8.43
-  - regex-posix ==0.96.0.0
-  - regex-tdfa ==1.3.1.0
-  - regex-with-pcre ==1.1.0.0
-  - registry ==0.2.0.3
-  - reinterpret-cast ==0.1.0
-  - relapse ==1.0.0.0
-  - relational-query ==0.12.2.3
-  - relational-query-HDBC ==0.7.2.0
-  - relational-record ==0.2.2.0
-  - relational-schemas ==0.1.8.0
-  - reliable-io ==0.0.1
-  - relude ==0.7.0.0
-  - renderable ==0.2.0.1
-  - replace-attoparsec ==1.4.4.0
-  - replace-megaparsec ==1.4.4.0
-  - repline ==0.4.0.0
-  - req ==3.9.0
-  - req-conduit ==1.0.0
-  - rerebase ==1.6.1
-  - rescue ==0.4.2.1
-  - resistor-cube ==0.0.1.2
-  - resolv ==0.1.2.0
-  - resource-pool ==0.2.3.2
-  - resourcet ==1.2.4.2
-  - resourcet-pool ==0.1.0.0
-  - result ==0.2.6.0
-  - rethinkdb-client-driver ==0.0.25
-  - retry ==0.8.1.2
-  - rev-state ==0.1.2
-  - rfc1751 ==0.1.3
-  - rfc5051 ==0.2
-  - rhbzquery ==0.4.3
-  - rhine ==0.7.0
-  - rhine-gloss ==0.7.0
-  - rigel-viz ==0.2.0.0
-  - rio ==0.1.20.0
-  - rio-orphans ==0.1.2.0
-  - rio-prettyprint ==0.1.1.0
-  - roc-id ==0.1.0.0
-  - rocksdb-haskell ==1.0.1
-  - rocksdb-haskell-jprupp ==2.1.3
-  - rocksdb-query ==0.4.2
-  - roles ==0.2.0.0
-  - rope-utf16-splay ==0.3.2.0
-  - rosezipper ==0.2
-  - rot13 ==0.2.0.1
-  - rpmbuild-order ==0.4.3.2
-  - RSA ==2.4.1
-  - runmemo ==1.0.0.1
-  - rvar ==0.2.0.6
-  - safe ==0.3.19
-  - safe-coloured-text ==0.0.0.0
-  - safecopy ==0.10.4.2
-  - safe-decimal ==0.2.0.0
-  - safe-exceptions ==0.1.7.1
-  - safe-foldable ==0.1.0.0
-  - safeio ==0.0.5.0
-  - safe-json ==1.1.1.1
-  - safe-money ==0.9
-  - SafeSemaphore ==0.10.1
-  - safe-tensor ==0.2.1.1
-  - salak ==0.3.6
-  - salak-yaml ==0.3.5.3
-  - saltine ==0.1.1.1
-  - salve ==1.0.11
-  - sample-frame ==0.0.3
-  - sample-frame-np ==0.0.4.1
-  - sampling ==0.3.5
-  - say ==0.1.0.1
-  - sbp ==2.6.3
-  - scalpel ==0.6.2
-  - scalpel-core ==0.6.2
-  - scanf ==0.1.0.0
-  - scanner ==0.3.1
-  - scheduler ==1.5.0
-  - scientific ==0.3.6.2
-  - scotty ==0.12
-  - scrypt ==0.5.0
-  - sdl2 ==2.5.3.0
-  - sdl2-gfx ==0.2
-  - sdl2-image ==2.0.0
-  - sdl2-mixer ==1.1.0
-  - sdl2-ttf ==2.1.2
-  - search-algorithms ==0.3.1
-  - secp256k1-haskell ==0.5.0
-  - securemem ==0.1.10
-  - selda ==0.5.1.0
-  - selda-json ==0.1.1.0
-  - selda-postgresql ==0.1.8.1
-  - selda-sqlite ==0.1.7.1
-  - selections ==0.3.0.0
-  - selective ==0.4.2
-  - semialign ==1.1.0.1
-  - semialign-indexed ==1.1
-  - semialign-optics ==1.1
-  - semigroupoid-extras ==5
-  - semigroupoids ==5.3.5
-  - semigroups ==0.19.1
-  - semirings ==0.6
-  - semiring-simple ==1.0.0.1
-  - semver ==0.4.0.1
-  - sendfile ==0.7.11.1
-  - sendgrid-v3 ==0.3.0.0
-  - seqalign ==0.2.0.4
-  - seqid ==0.6.2
-  - seqid-streams ==0.7.2
-  - sequence-formats ==1.6.1
-  - sequenceTools ==1.4.0.5
-  - serf ==0.1.1.0
-  - serialise ==0.2.3.0
-  - servant ==0.18.2
-  - servant-blaze ==0.9.1
-  - servant-client ==0.18.2
-  - servant-client-core ==0.18.2
-  - servant-conduit ==0.15.1
-  - servant-docs ==0.11.8
-  - servant-errors ==0.1.6.0
-  - servant-exceptions ==0.2.1
-  - servant-exceptions-server ==0.2.1
-  - servant-foreign ==0.15.3
-  - servant-http-streams ==0.18.2
-  - servant-machines ==0.15.1
-  - servant-multipart ==0.12
-  - servant-openapi3 ==2.0.1.1
-  - servant-pipes ==0.15.2
-  - servant-rawm ==1.0.0.0
-  - servant-server ==0.18.2
-  - servant-swagger ==1.1.10
-  - servant-swagger-ui ==0.3.4.3.37.2
-  - servant-swagger-ui-core ==0.3.4
-  - serverless-haskell ==0.12.6
-  - serversession ==1.0.2
-  - serversession-frontend-wai ==1.0
-  - ses-html ==0.4.0.0
-  - set-cover ==0.1.1
-  - setenv ==0.1.1.3
-  - setlocale ==1.0.0.10
-  - sexp-grammar ==2.3.0
-  - SHA ==1.6.4.4
-  - shake-language-c ==0.12.0
-  - shake-plus ==0.3.3.1
-  - shake-plus-extended ==0.4.1.0
-  - shakespeare ==2.0.25
-  - shared-memory ==0.2.0.0
-  - shell-conduit ==5.0.0
-  - shell-escape ==0.2.0
-  - shellmet ==0.0.4.0
-  - shelltestrunner ==1.9
-  - shell-utility ==0.1
-  - shelly ==1.9.0
-  - shikensu ==0.3.11
-  - shortcut-links ==0.5.1.1
-  - should-not-typecheck ==2.1.0
-  - show-combinators ==0.2.0.0
-  - siggy-chardust ==1.0.0
-  - signal ==0.1.0.4
-  - silently ==1.2.5.1
-  - simple-affine-space ==0.1.1
-  - simple-cabal ==0.1.3
-  - simple-cmd ==0.2.3
-  - simple-cmd-args ==0.1.6
-  - simple-log ==0.9.12
-  - simple-reflect ==0.3.3
-  - simple-sendfile ==0.2.30
-  - simple-templates ==1.0.0
-  - simple-vec3 ==0.6.0.1
-  - simplistic-generics ==2.0.0
-  - since ==0.0.0
-  - singleton-bool ==0.1.5
-  - singleton-nats ==0.4.5
-  - singletons ==2.7
-  - singletons-presburger ==0.6.0.0
-  - siphash ==1.0.3
-  - sitemap-gen ==0.1.0.0
-  - sized ==1.0.0.0
-  - skein ==1.0.9.4
-  - skews ==0.1.0.3
-  - skip-var ==0.1.1.0
-  - skylighting ==0.10.5.1
-  - skylighting-core ==0.10.5.1
-  - slack-api ==0.12
-  - slack-progressbar ==0.1.0.1
-  - slick ==1.1.1.0
-  - slist ==0.2.0.0
-  - slynx ==0.5.0.2
-  - smallcheck ==1.2.1
-  - smash ==0.1.2
-  - smash-aeson ==0.1.0.0
-  - smash-lens ==0.1.0.1
-  - smash-microlens ==0.1.0.0
-  - smoothie ==0.4.2.11
-  - smtp-mail ==0.3.0.0
-  - snap-blaze ==0.2.1.5
-  - snap-core ==1.0.4.2
-  - snap-server ==1.1.2.0
-  - snowflake ==0.1.1.1
-  - soap ==0.2.3.6
-  - soap-openssl ==0.1.0.2
-  - soap-tls ==0.1.1.4
-  - socket ==0.8.3.0
-  - socks ==0.6.1
-  - some ==1.0.3
-  - sop-core ==0.5.0.1
-  - sort ==1.0.0.0
-  - sorted-list ==0.2.1.0
-  - sourcemap ==0.1.6
-  - sox ==0.2.3.1
-  - soxlib ==0.0.3.1
-  - spacecookie ==1.0.0.0
-  - sparse-linear-algebra ==0.3.1
-  - sparse-tensor ==0.2.1.5
-  - spatial-math ==0.5.0.1
-  - special-values ==0.1.0.0
-  - speculate ==0.4.4
-  - speedy-slice ==0.3.2
-  - Spintax ==0.3.6
-  - splice ==0.6.1.1
-  - splint ==1.0.1.4
-  - split ==0.2.3.4
-  - splitmix ==0.1.0.3
-  - spoon ==0.3.1
-  - spreadsheet ==0.1.3.8
-  - sqlcli ==0.2.2.0
-  - sqlcli-odbc ==0.2.0.1
-  - sqlite-simple ==0.4.18.0
-  - sql-words ==0.1.6.4
-  - squeal-postgresql ==0.7.0.1
-  - squeather ==0.6.0.0
-  - srcloc ==0.5.1.2
-  - stache ==2.2.1
-  - stackcollapse-ghc ==0.0.1.3
-  - stack-templatizer ==0.1.0.2
-  - stateref ==0.3
-  - StateVar ==1.2.1
-  - static-text ==0.2.0.6
-  - statistics ==0.15.2.0
-  - status-notifier-item ==0.3.0.5
-  - stb-image-redux ==0.2.1.3
-  - step-function ==0.2
-  - stm-chans ==3.0.0.4
-  - stm-conduit ==4.0.1
-  - stm-containers ==1.2
-  - stm-delay ==0.1.1.1
-  - stm-extras ==0.1.0.3
-  - stm-hamt ==1.2.0.6
-  - stm-lifted ==2.5.0.0
-  - STMonadTrans ==0.4.5
-  - stm-split ==0.0.2.1
-  - stopwatch ==0.1.0.6
-  - storable-complex ==0.2.3.0
-  - storable-endian ==0.2.6
-  - storable-record ==0.0.5
-  - storable-tuple ==0.0.3.3
-  - storablevector ==0.2.13.1
-  - store ==0.7.10
-  - store-core ==0.4.4.4
-  - store-streaming ==0.2.0.3
-  - stratosphere ==0.59.1
-  - streaming ==0.2.3.0
-  - streaming-attoparsec ==1.0.0.1
-  - streaming-bytestring ==0.2.0
-  - streaming-commons ==0.2.2.1
-  - streamly ==0.7.3
-  - streams ==3.3
-  - strict ==0.4.0.1
-  - strict-concurrency ==0.2.4.3
-  - strict-list ==0.1.5
-  - strict-tuple ==0.1.4
-  - strict-tuple-lens ==0.1.0.1
-  - stringbuilder ==0.5.1
-  - string-class ==0.1.7.0
-  - string-combinators ==0.6.0.5
-  - string-conv ==0.1.2
-  - string-conversions ==0.4.0.1
-  - string-interpolate ==0.3.1.0
-  - string-qq ==0.0.4
-  - string-random ==0.1.4.1
-  - stringsearch ==0.3.6.6
-  - string-transform ==1.1.1
-  - stripe-concepts ==1.0.2.6
-  - stripe-core ==2.6.2
-  - stripe-haskell ==2.6.2
-  - stripe-http-client ==2.6.2
-  - stripe-tests ==2.6.2
-  - strive ==5.0.14
-  - structs ==0.1.5
-  - structured ==0.1.0.1
-  - structured-cli ==2.7.0.1
-  - subcategories ==0.1.1.0
-  - sum-type-boilerplate ==0.1.1
-  - sundown ==0.6
-  - superbuffer ==0.3.1.1
-  - svg-tree ==0.6.2.4
-  - swagger ==0.3.0
-  - swagger2 ==2.6
-  - sweet-egison ==0.1.1.3
-  - swish ==0.10.0.4
-  - syb ==0.7.2.1
-  - sydtest ==0.1.0.0
-  - sydtest-discover ==0.0.0.0
-  - sydtest-persistent-sqlite ==0.0.0.0
-  - sydtest-servant ==0.0.0.0
-  - sydtest-wai ==0.0.0.0
-  - sydtest-yesod ==0.0.0.0
-  - symbol ==0.2.4
-  - symengine ==0.1.2.0
-  - symmetry-operations-symbols ==0.0.2.1
-  - sysinfo ==0.1.1
-  - system-argv0 ==0.1.1
-  - systemd ==2.3.0
-  - system-fileio ==0.3.16.4
-  - system-filepath ==0.4.14
-  - system-info ==0.5.2
-  - tabular ==0.2.2.8
-  - taffybar ==3.2.3
-  - tagchup ==0.4.1.1
-  - tagged ==0.8.6.1
-  - tagged-binary ==0.2.0.1
-  - tagged-identity ==0.1.3
-  - tagged-transformer ==0.8.1
-  - tagshare ==0.0
-  - tagsoup ==0.14.8
-  - tao ==1.0.0
-  - tao-example ==1.0.0
-  - tar ==0.5.1.1
-  - tar-conduit ==0.3.2
-  - tardis ==0.4.3.0
-  - tasty ==1.4.1
-  - tasty-ant-xml ==1.1.8
-  - tasty-bench ==0.2.5
-  - tasty-dejafu ==2.0.0.7
-  - tasty-discover ==4.2.2
-  - tasty-expected-failure ==0.12.3
-  - tasty-focus ==1.0.1
-  - tasty-golden ==2.3.4
-  - tasty-hedgehog ==1.0.1.0
-  - tasty-hspec ==1.1.6
-  - tasty-hunit ==0.10.0.3
-  - tasty-hunit-compat ==0.2.0.1
-  - tasty-kat ==0.0.3
-  - tasty-leancheck ==0.0.1
-  - tasty-lua ==0.2.3.2
-  - tasty-program ==1.0.5
-  - tasty-quickcheck ==0.10.1.2
-  - tasty-rerun ==1.1.18
-  - tasty-silver ==3.2.1
-  - tasty-smallcheck ==0.8.2
-  - tasty-test-reporter ==0.1.1.4
-  - tasty-th ==0.1.7
-  - tasty-wai ==0.1.1.1
-  - Taxonomy ==2.1.0
-  - TCache ==0.12.1
-  - tce-conf ==1.3
-  - tdigest ==0.2.1.1
-  - template-haskell-compat-v0208 ==0.1.5
-  - temporary ==1.3
-  - temporary-rc ==1.2.0.3
-  - temporary-resourcet ==0.1.0.1
-  - tensorflow-test ==0.1.0.0
-  - tensors ==0.1.5
-  - termbox ==0.3.0
-  - terminal-progress-bar ==0.4.1
-  - terminal-size ==0.3.2.1
-  - test-framework ==0.8.2.0
-  - test-framework-hunit ==0.3.0.2
-  - test-framework-leancheck ==0.0.1
-  - test-framework-quickcheck2 ==0.3.0.5
-  - test-framework-smallcheck ==0.2
-  - test-fun ==0.1.0.0
-  - testing-type-modifiers ==0.1.0.1
-  - texmath ==0.12.2
-  - text-ansi ==0.1.1
-  - text-binary ==0.2.1.1
-  - text-builder ==0.6.6.2
-  - text-conversions ==0.3.1
-  - text-format ==0.3.2
-  - text-icu ==0.7.0.1
-  - text-latin1 ==0.3.1
-  - text-ldap ==0.1.1.13
-  - textlocal ==0.1.0.5
-  - text-manipulate ==0.3.0.0
-  - text-metrics ==0.3.0
-  - text-postgresql ==0.0.3.1
-  - text-printer ==0.5.0.1
-  - text-regex-replace ==0.1.1.4
-  - text-region ==0.3.1.0
-  - text-short ==0.1.3
-  - text-show ==3.9
-  - text-show-instances ==3.8.4
-  - text-zipper ==0.11
-  - tfp ==1.0.2
-  - tf-random ==0.5
-  - th-abstraction ==0.4.2.0
-  - th-bang-compat ==0.0.1.0
-  - th-compat ==0.1.2
-  - th-constraint-compat ==0.0.1.0
-  - th-data-compat ==0.1.0.0
-  - th-desugar ==1.11
-  - th-env ==0.1.0.2
-  - these ==1.1.1.1
-  - these-lens ==1.0.1.2
-  - these-optics ==1.0.1.2
-  - these-skinny ==0.7.4
-  - th-expand-syns ==0.4.8.0
-  - th-extras ==0.0.0.4
-  - th-lift ==0.8.2
-  - th-lift-instances ==0.1.18
-  - th-nowq ==0.1.0.5
-  - th-orphans ==0.13.11
-  - th-printf ==0.7
-  - thread-hierarchy ==0.3.0.2
-  - thread-local-storage ==0.2
-  - threads ==0.5.1.6
-  - thread-supervisor ==0.2.0.0
-  - threepenny-gui ==0.9.0.0
-  - th-reify-compat ==0.0.1.5
-  - th-reify-many ==0.1.9
-  - throttle-io-stream ==0.2.0.1
-  - through-text ==0.1.0.0
-  - throwable-exceptions ==0.1.0.9
-  - th-strict-compat ==0.1.0.1
-  - th-test-utils ==1.1.0
-  - th-utilities ==0.2.4.3
-  - thyme ==0.3.5.5
-  - tidal ==1.7.3
-  - tile ==0.3.0.0
-  - time-compat ==1.9.5
-  - timeit ==2.0
-  - timelens ==0.2.0.2
-  - time-lens ==0.4.0.2
-  - time-locale-compat ==0.1.1.5
-  - time-locale-vietnamese ==1.0.0.0
-  - time-manager ==0.0.0
-  - time-parsers ==0.1.2.1
-  - timerep ==2.0.1.0
-  - timer-wheel ==0.3.0
-  - time-units ==1.0.0
-  - timezone-olson ==0.2.0
-  - timezone-series ==0.1.9
-  - tinylog ==0.15.0
-  - titlecase ==1.0.1
-  - tldr ==0.9.0
-  - tls ==1.5.5
-  - tls-debug ==0.4.8
-  - tls-session-manager ==0.0.4
-  - tlynx ==0.5.0.2
-  - tmapchan ==0.0.3
-  - tmapmvar ==0.0.4
-  - tmp-postgres ==1.34.1.0
-  - tomland ==1.3.2.0
-  - tonalude ==0.1.1.1
-  - topograph ==1.0.0.1
-  - torsor ==0.1
-  - tostring ==0.2.1.1
-  - transaction ==0.1.1.3
-  - transformers-base ==0.4.5.2
-  - transformers-bifunctors ==0.1
-  - transformers-compat ==0.6.6
-  - transformers-fix ==1.0
-  - traverse-with-class ==1.0.1.0
-  - tree-diff ==0.2
-  - tree-fun ==0.8.1.0
-  - tree-view ==0.5.1
-  - trifecta ==2.1.1
-  - triplesec ==0.2.2.1
-  - tsv2csv ==0.1.0.2
-  - ttc ==0.4.0.0
-  - ttl-hashtables ==1.4.1.0
-  - ttrie ==0.1.2.1
-  - tuple ==0.3.0.2
-  - tuples-homogenous-h98 ==0.1.1.0
-  - tuple-sop ==0.3.1.0
-  - tuple-th ==0.2.5
-  - turtle ==1.5.22
-  - typecheck-plugin-nat-simple ==0.1.0.2
-  - TypeCompose ==0.9.14
-  - typed-process ==0.2.6.0
-  - typed-uuid ==0.0.0.2
-  - type-equality ==1
-  - type-errors ==0.2.0.0
-  - type-errors-pretty ==0.0.1.1
-  - type-hint ==0.1
-  - type-level-integers ==0.0.1
-  - type-level-kv-list ==1.1.0
-  - type-level-natural-number ==2.0
-  - type-level-numbers ==0.1.1.1
-  - type-map ==0.1.6.0
-  - type-natural ==1.1.0.0
-  - typenums ==0.1.4
-  - type-of-html ==1.6.2.0
-  - type-of-html-static ==0.1.0.2
-  - type-operators ==0.2.0.0
-  - typerep-map ==0.3.3.0
-  - type-spec ==0.4.0.0
-  - tzdata ==0.2.20201021.0
-  - ua-parser ==0.7.6.0
-  - uglymemo ==0.1.0.1
-  - ulid ==0.3.0.0
-  - unagi-chan ==0.4.1.3
-  - unbounded-delays ==0.1.1.1
-  - unboxed-ref ==0.4.0.0
-  - unboxing-vector ==0.2.0.0
-  - uncaught-exception ==0.1.0
-  - uncertain ==0.3.1.0
-  - unconstrained ==0.1.0.2
-  - unexceptionalio ==0.5.1
-  - unexceptionalio-trans ==0.5.1
-  - unicode ==0.0.1.1
-  - unicode-show ==0.1.0.4
-  - unicode-transforms ==0.3.7.1
-  - unification-fd ==0.11.1
-  - union-find ==0.2
-  - unipatterns ==0.0.0.0
-  - uniplate ==1.6.13
-  - uniprot-kb ==0.1.2.0
-  - uniq-deep ==1.2.0
-  - unique ==0.0.1
-  - unique-logic ==0.4
-  - unique-logic-tf ==0.5.1
-  - unit-constraint ==0.0.0
-  - universe ==1.2.1
-  - universe-base ==1.1.2
-  - universe-instances-base ==1.1
-  - universe-instances-extended ==1.1.2
-  - universe-instances-trans ==1.1
-  - universe-reverse-instances ==1.1.1
-  - universe-some ==1.2.1
-  - universum ==1.7.2
-  - unix-bytestring ==0.3.7.3
-  - unix-compat ==0.5.3
-  - unix-time ==0.4.7
-  - unliftio ==0.2.14
-  - unliftio-core ==0.2.0.1
-  - unliftio-pool ==0.2.1.1
-  - unliftio-streams ==0.1.1.1
-  - unlit ==0.4.0.0
-  - unordered-containers ==0.2.13.0
-  - unsafe ==0.0
-  - urbit-hob ==0.3.3
-  - uri-bytestring ==0.3.3.0
-  - uri-bytestring-aeson ==0.1.0.8
-  - uri-encode ==1.5.0.7
-  - url ==2.1.3
-  - users ==0.5.0.0
-  - utf8-conversions ==0.1.0.4
-  - utf8-light ==0.4.2
-  - utf8-string ==1.0.2
-  - util ==0.1.17.1
-  - utility-ht ==0.0.16
-  - uuid ==1.3.14
-  - uuid-types ==1.0.4
-  - validation ==1.1.1
-  - validation-selective ==0.1.0.1
-  - validity ==0.11.0.0
-  - validity-aeson ==0.2.0.4
-  - validity-bytestring ==0.4.1.1
-  - validity-containers ==0.5.0.4
-  - validity-path ==0.4.0.1
-  - validity-persistent ==0.0.0.0
-  - validity-primitive ==0.0.0.1
-  - validity-scientific ==0.2.0.3
-  - validity-text ==0.3.1.1
-  - validity-time ==0.4.0.0
-  - validity-unordered-containers ==0.2.0.3
-  - validity-uuid ==0.1.0.3
-  - validity-vector ==0.2.0.3
-  - valor ==0.1.0.0
-  - vault ==0.3.1.5
-  - vec ==0.4
-  - vector ==0.12.3.0
-  - vector-algorithms ==0.8.0.4
-  - vector-binary-instances ==0.2.5.2
-  - vector-buffer ==0.4.1
-  - vector-builder ==0.3.8.1
-  - vector-bytes-instances ==0.1.1
-  - vector-circular ==0.1.3
-  - vector-instances ==3.4
-  - vector-mmap ==0.0.3
-  - vector-rotcev ==0.1.0.0
-  - vector-sized ==1.4.3.1
-  - vector-space ==0.16
-  - vector-split ==1.0.0.2
-  - vector-th-unbox ==0.2.1.9
-  - verbosity ==0.4.0.0
-  - versions ==4.0.3
-  - vformat ==0.14.1.0
-  - vformat-aeson ==0.1.0.1
-  - vformat-time ==0.1.0.0
-  - ViennaRNAParser ==1.3.3
-  - vinyl ==0.13.1
-  - void ==0.7.3
-  - vty ==5.33
-  - wai ==3.2.3
-  - wai-app-static ==3.1.7.2
-  - wai-conduit ==3.0.0.4
-  - wai-cors ==0.2.7
-  - wai-enforce-https ==0.0.2.1
-  - wai-eventsource ==3.0.0
-  - wai-extra ==3.1.6
-  - wai-feature-flags ==0.1.0.1
-  - wai-handler-launch ==3.0.3.1
-  - wai-logger ==2.3.6
-  - wai-middleware-auth ==0.2.4.1
-  - wai-middleware-caching ==0.1.0.2
-  - wai-middleware-clacks ==0.1.0.1
-  - wai-middleware-static ==0.9.0
-  - wai-rate-limit ==0.1.0.0
-  - wai-rate-limit-redis ==0.1.0.0
-  - wai-saml2 ==0.2.1.2
-  - wai-session ==0.3.3
-  - wai-slack-middleware ==0.2.0
-  - wai-websockets ==3.0.1.2
-  - wakame ==0.1.0.0
-  - warp ==3.3.14
-  - warp-tls ==3.3.0
-  - warp-tls-uid ==0.2.0.6
-  - wave ==0.2.0
-  - wcwidth ==0.0.2
-  - webby ==1.0.1
-  - webdriver ==0.9.0.1
-  - webex-teams-api ==0.2.0.1
-  - webex-teams-conduit ==0.2.0.1
-  - webex-teams-pipes ==0.2.0.1
-  - webgear-server ==0.2.1
-  - webrtc-vad ==0.1.0.3
-  - websockets ==0.12.7.2
-  - websockets-snap ==0.10.3.1
-  - weigh ==0.0.16
-  - wide-word ==0.1.1.2
-  - wikicfp-scraper ==0.1.0.12
-  - wild-bind ==0.1.2.7
-  - wild-bind-x11 ==0.2.0.12
-  - Win32 ==2.6.1.0
-  - Win32-notify ==0.3.0.3
-  - windns ==0.1.0.1
-  - witch ==0.0.0.5
-  - witherable ==0.4.1
-  - within ==0.2.0.1
-  - with-location ==0.1.0
-  - with-utf8 ==1.0.2.2
-  - wizards ==1.0.3
-  - wl-pprint-annotated ==0.1.0.1
-  - wl-pprint-console ==0.1.0.2
-  - wl-pprint-text ==1.2.0.1
-  - word24 ==2.0.1
-  - word8 ==0.1.3
-  - word-trie ==0.3.0
-  - word-wrap ==0.4.1
-  - world-peace ==1.0.2.0
-  - wrap ==0.0.0
-  - wreq ==0.5.3.3
-  - writer-cps-exceptions ==0.1.0.1
-  - writer-cps-mtl ==0.1.1.6
-  - writer-cps-transformers ==0.5.6.1
-  - wss-client ==0.3.0.0
-  - wuss ==1.1.18
-  - X11 ==1.9.2
-  - X11-xft ==0.3.1
-  - x11-xim ==0.0.9.0
-  - x509 ==1.7.5
-  - x509-store ==1.6.7
-  - x509-system ==1.6.6
-  - x509-validation ==1.6.11
-  - Xauth ==0.1
-  - xdg-basedir ==0.2.2
-  - xdg-desktop-entry ==0.1.1.1
-  - xdg-userdirs ==0.1.0.2
-  - xeno ==0.4.2
-  - xlsx ==0.8.3
-  - xlsx-tabular ==0.2.2.1
-  - xml ==1.3.14
-  - xml-basic ==0.1.3.1
-  - xml-conduit ==1.9.1.0
-  - xml-conduit-writer ==0.1.1.2
-  - xmlgen ==0.6.2.2
-  - xml-hamlet ==0.5.0.1
-  - xml-helpers ==1.0.0
-  - xml-html-qq ==0.1.0.1
-  - xml-indexed-cursor ==0.1.1.0
-  - xml-lens ==0.3
-  - xml-picklers ==0.3.6
-  - xml-to-json ==2.0.1
-  - xml-to-json-fast ==2.0.0
-  - xml-types ==0.3.8
-  - xmonad ==0.15
-  - xmonad-contrib ==0.16
-  - xmonad-extras ==0.15.3
-  - xss-sanitize ==0.3.6
-  - xxhash-ffi ==0.2.0.0
-  - yaml ==0.11.5.0
-  - yamlparse-applicative ==0.1.0.3
-  - yesod ==1.6.1.0
-  - yesod-auth ==1.6.10.2
-  - yesod-auth-hashdb ==1.7.1.5
-  - yesod-auth-oauth2 ==0.6.3.0
-  - yesod-bin ==1.6.1
-  - yesod-core ==1.6.19.0
-  - yesod-fb ==0.6.1
-  - yesod-form ==1.6.7
-  - yesod-gitrev ==0.2.1
-  - yesod-markdown ==0.12.6.8
-  - yesod-newsfeed ==1.7.0.0
-  - yesod-page-cursor ==2.0.0.6
-  - yesod-paginator ==1.1.1.0
-  - yesod-persistent ==1.6.0.6
-  - yesod-sitemap ==1.6.0
-  - yesod-static ==1.6.1.0
-  - yesod-test ==1.6.12
-  - yesod-websockets ==0.3.0.3
-  - yes-precure5-command ==5.5.3
-  - yi-rope ==0.11
-  - yjsvg ==0.2.0.1
-  - yjtools ==0.9.18
-  - yoga ==0.0.0.5
-  - youtube ==0.2.1.1
-  - zenacy-html ==2.0.3
-  - zenacy-unicode ==1.0.1
-  - zero ==0.1.5
-  - zeromq4-haskell ==0.8.0
-  - zeromq4-patterns ==0.3.1.0
-  - zim-parser ==0.2.1.0
-  - zio ==0.1.0.2
-  - zip ==1.7.0
-  - zip-archive ==0.4.1
-  - zipper-extra ==0.1.3.2
-  - zippers ==0.3.1
-  - zip-stream ==0.2.1.0
-  - zlib ==0.6.2.3
-  - zlib-bindings ==0.1.1.5
-  - zlib-lens ==0.1.2.1
-  - zot ==0.0.3
-  - zstd ==0.1.2.0
-  - ztail ==1.2.0.2
-  - zydiskell ==0.2.0.0
-
-extra-packages:
-  - base16-bytestring < 1               # required for cabal-install etc.
-  - Cabal == 2.2.*                      # required for jailbreak-cabal etc.
-  - Cabal == 2.4.*                      # required for cabal-install etc.
-  - Cabal == 3.2.*                      # required for cabal-install etc.
-  - dependent-map == 0.2.4.0            # required by Hasura 1.3.1, 2020-08-20
-  - dependent-sum == 0.4                # required by Hasura 1.3.1, 2020-08-20
-  - dhall == 1.29.0                     # required for ats-pkg
-  - Diff < 0.4                          # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
-  - ghc-tcplugins-extra ==0.3.2         # required for polysemy-plugin 0.2.5.0
-  - haddock == 2.23.*                   # required on GHC < 8.10.x
-  - haddock-api == 2.23.*               # required on GHC < 8.10.x
-  - haddock-library ==1.7.*             # required by stylish-cabal-0.5.0.0
-  - happy == 1.19.9                     # for purescript
-  - hinotify == 0.3.9                   # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
-  - hlint < 3.3                         # We don‘t have ghc-lib-parser 9.0.X yet.
-  - immortal == 0.2.2.1                 # required by Hasura 1.3.1, 2020-08-20
-  - lsp-test < 0.14                     # needed for hls 1.0.0
-  - mmorph == 1.1.3                     # Newest working version of mmorph on ghc 8.6.5. needed for hls
-  - network == 2.6.3.1                  # required by pkgs/games/hedgewars/default.nix, 2020-11-15
-  - optparse-applicative < 0.16         # needed for niv-0.2.19
-  - refinery == 0.3.*                   # required by hls-tactics-plugin-1.0.0.0
-  - resolv == 0.1.1.2                   # required to build cabal-install-3.0.0.0 with pre ghc-8.8.x
-
-package-maintainers:
-  peti:
-    - cabal-install
-    - cabal2nix
-    - cabal2spec
-    - distribution-nixpkgs
-    - funcmp
-    - git-annex
-    - hackage-db
-    - hledger
-    - hledger-interest
-    - hledger-ui
-    - hledger-web
-    - hopenssl
-    - hsdns
-    - hsemail
-    - hsyslog
-    - jailbreak-cabal
-    - language-nix
-    - logging-facade-syslog
-    - nix-paths
-    - pandoc
-    - structured-haskell-mode
-    - titlecase
-    - xmonad
-    - xmonad-contrib
-  gridaphobe:
-    - located-base
-  jb55:
-    # - bson-lens
-    - cased
-    - elm-export-persistent
-    # - pipes-mongodb
-    - streaming-wai
-  kiwi:
-    - config-schema
-    - config-value
-    - glirc
-    - irc-core
-    - matterhorn
-    - mattermost-api
-    - mattermost-api-qc
-    - Unique
-  psibi:
-    - path-pieces
-    - persistent
-    - persistent-sqlite
-    - persistent-template
-    - shakespeare
-  abbradar:
-    - Agda
-  roberth:
-    - arion-compose
-    - hercules-ci-agent
-    - hercules-ci-api
-    - hercules-ci-api-agent
-    - hercules-ci-api-core
-    - hercules-ci-cli
-    - hercules-ci-cnix-expr
-    - hercules-ci-cnix-store
-  cdepillabout:
-    - pretty-simple
-    - spago
-  rkrzr:
-    - icepeak
-  terlar:
-    - nix-diff
-  maralorn:
-    - reflex-dom
-    - cabal-fmt
-    - shh
-    - neuron
-    - releaser
-    - taskwarrior
-    - haskell-language-server
-    - shake-bench
-    - iCalendar
-    - stm-containers
-  sorki:
-    - cayenne-lpp
-    - data-stm32
-    - gcodehs
-    - nix-derivation
-    - nix-narinfo
-    - ttn
-    - ttn-client
-    - update-nix-fetchgit
-    - zre
-  utdemir:
-    - nix-tree
-  turion:
-    - rhine
-    - rhine-gloss
-    - essence-of-live-coding
-    - essence-of-live-coding-gloss
-    - essence-of-live-coding-pulse
-    - essence-of-live-coding-quickcheck
-    - Agda
-    - dunai
-    - finite-typelits
-    - pulse-simple
-    - simple-affine-space
-  sternenseemann:
-    # also maintain upstream package
-    - spacecookie
-    - gopher-proxy
-    # other packages I can help out for
-    - systemd
-    - fast-logger
-    - Euterpea2
-    - utc
-    - socket
-    - gitit
-    - yarn-lock
-    - yarn2nix
-  poscat:
-    - hinit
-
-unsupported-platforms:
-  alsa-mixer:                                   [ x86_64-darwin ]
-  alsa-pcm:                                     [ x86_64-darwin ]
-  alsa-seq:                                     [ x86_64-darwin ]
-  AWin32Console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  barbly:                                       [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
-  bindings-directfb:                            [ x86_64-darwin ]
-  d3d11binding:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  DirectSound:                                  [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  dx9base:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  dx9d3d:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  dx9d3dx:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  freenect:                                     [ x86_64-darwin ]
-  FTGL:                                         [ x86_64-darwin ]
-  gi-ostree:                                    [ x86_64-darwin ]
-  gtk-mac-integration:                          [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
-  hcwiid:                                       [ x86_64-darwin ]
-  HFuse:                                        [ x86_64-darwin ]
-  hommage-ds:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  lio-fs:                                       [ x86_64-darwin ]
-  midi-alsa:                                    [ x86_64-darwin ]
-  pam:                                          [ x86_64-darwin ]
-  PortMidi:                                     [ x86_64-darwin ]
-  Raincat:                                      [ x86_64-darwin ]
-  reactivity:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  rtlsdr:                                       [ x86_64-darwin ]
-  rubberband:                                   [ x86_64-darwin ]
-  sdl2-mixer:                                   [ x86_64-darwin ]
-  sdl2-ttf:                                     [ x86_64-darwin ]
-  tokyotyrant-haskell:                          [ x86_64-darwin ]
-  vulkan:                                       [ i686-linux, armv7l-linux ]
-  VulkanMemoryAllocator:                        [ i686-linux, armv7l-linux ]
-  Win32-console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-dhcp-server:                            [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-errors:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-extras:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-junction-point:                         [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-notify:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-security:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-services-wrapper:                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-services:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  Win32:                                        [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  xattr:                                        [ x86_64-darwin ]
-  XInput:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
-  xmobar:                                       [ x86_64-darwin ]
-
-dont-distribute-packages:
-  # Depends on shine, which is a ghcjs project.
-  - shine-varying
-
-  # these packages depend on software with an unfree license
-  - accelerate-bignum
-  - accelerate-blas
-  - accelerate-cublas
-  - accelerate-cuda
-  - accelerate-cufft
-  - accelerate-examples
-  - accelerate-fft
-  - accelerate-fourier-benchmark
-  - accelerate-io-array
-  - accelerate-io-bmp
-  - accelerate-io-bytestring
-  - accelerate-io-cereal
-  - accelerate-io-JuicyPixels
-  - accelerate-io-repa
-  - accelerate-io-vector
-  - accelerate-kullback-liebler
-  - accelerate-llvm-ptx
-  - bindings-yices
-  - boolector
-  - ccelerate-cuda
-  - containers-accelerate
-  - cplex-hs
-  - cublas
-  - cuda # 2020-08-18 because of dependency nvidia-x11
-  - cufft
-  - cusolver
-  - cusparse
-  - gloss-raster-accelerate
-  - hashable-accelerate
-  - libnvvm
-  - matlab
-  - nvvm
-  - Obsidian
-  - odpic-raw
-  - patch-image
-  # license for input data unclear, dependency not on Hackage
-  # see https://github.com/NixOS/nixpkgs/pull/88604
-  - tensorflow-mnist
-  - yices-easy
-  - yices-painless
-
-  # these packages don't evaluate because they have broken (system) dependencies
-  - XML
-  - comark
-  - couch-simple
-  - diagrams-hsqml
-  - diagrams-reflex
-  - dialog
-  - fltkhs-demos
-  - fltkhs-fluid-demos
-  - fltkhs-hello-world
-  - fltkhs-themes
-  - ghcjs-dom-hello
-  - ghcjs-dom-webkit
-  - gi-javascriptcore
-  - gi-webkit
-  - gi-webkit2
-  - gi-webkit2webextension
-  - gsmenu
-  - haste-gapi
-  - haste-perch
-  - hbro
-  - hplayground
-  - hs-mesos
-  - hsqml
-  - hsqml-datamodel
-  - hsqml-datamodel-vinyl
-  - hsqml-datemodel-vinyl
-  - hsqml-demo-manic
-  - hsqml-demo-morris
-  - hsqml-demo-notes
-  - hsqml-demo-notes
-  - hsqml-demo-samples
-  - hsqml-morris
-  - hsqml-morris
-  - hstorchat
-  - imprevu-happstack
-  - jsaddle-webkit2gtk
-  - jsaddle-webkitgtk
-  - jsc
-  - lambdacat
-  - leksah
-  - manatee-all
-  - manatee-browser
-  - manatee-reader
-  - markup-preview
-  - nomyx-api
-  - nomyx-core
-  - nomyx-language
-  - nomyx-library
-  - nomyx-server
-  - passman-cli
-  - passman-core
-  - reflex-dom-colonnade
-  - reflex-dom-contrib
-  - reflex-dom-fragment-shader-canvas
-  - reflex-dom-helpers
-  - reflex-jsx
-  - sneathlane-haste
-  - spike
-  - tianbar
-  - trasa-reflex
-  - treersec
-  - wai-middleware-brotli
-  - web-browser-in-haskell
-  - webkit
-  - webkitgtk3
-  - webkitgtk3-javascriptcore
-  - websnap
-
-broken-packages:
-  # These packages don't compile or depend on packages that don't compile.
-  - 3dmodels
-  - 4Blocks
-  - a50
-  - AAI
-  - abcBridge
-  - abcnotation
-  - abeson
-  - abides
-  - abnf
-  - AbortT-monadstf
-  - AbortT-mtl
-  - AbortT-transformers
-  - abstract-par-accelerate
-  - abt
-  - AC-BuildPlatform
-  - AC-EasyRaster-GTK
-  - AC-HalfInteger
-  - ac-machine
-  - ac-machine-conduit
-  - AC-MiniTest
-  - AC-Terminal
-  - AC-VanillaArray
-  - AC-Vector
-  - AC-Vector-Fancy
-  - acc
-  - accelerate-arithmetic
-  - accelerate-fftw
-  - accelerate-fourier
-  - accelerate-llvm-native
-  - accelerate-random
-  - accelerate-typelits
-  - accelerate-utility
-  - accentuateus
-  - access-time
-  - access-token-provider
-  - achille
-  - acid-state-dist
-  - acid-state-tls
-  - ACME
-  - acme-all-monad
-  - acme-comonad
-  - acme-dont
-  - acme-flipping-tables
-  - acme-hq9plus
-  - acme-http
-  - acme-inator
-  - acme-kitchen-sink
-  - acme-left-pad
-  - acme-miscorder
-  - acme-mutable-package
-  - acme-now
-  - acme-numbersystem
-  - acme-operators
-  - acme-php
-  - acme-schoenfinkel
-  - acme-strfry
-  - acme-stringly-typed
-  - acme-this
-  - acme-zero
-  - acousticbrainz-client
-  - ActionKid
-  - activehs
-  - activehs-base
-  - activitypub
-  - activitystreams-aeson
-  - actor
-  - acts
-  - Adaptive
-  - Adaptive-Blaisorblade
-  - adaptive-containers
-  - adaptive-tuple
-  - adb
-  - addy
-  - adhoc-network
-  - adict
-  - adjunction
-  - adobe-swatch-exchange
-  - adp-multi
-  - adp-multi-monadiccp
-  - ADPfusion
-  - ADPfusionForest
-  - ADPfusionSet
-  - adtrees
-  - advent-of-code-api
-  - Advgame
-  - Advise-me
-  - AERN-Basics
-  - AERN-Net
-  - AERN-Real
-  - AERN-Real-Double
-  - AERN-Real-Interval
-  - AERN-RnToRm
-  - AERN-RnToRm-Plot
-  - aern2-mp
-  - aern2-real
-  - aeson-applicative
-  - aeson-decode
-  - aeson-diff-generic
-  - aeson-extra
-  - aeson-filthy
-  - aeson-flowtyped
-  - aeson-injector
-  - aeson-match-qq
-  - aeson-native
-  - aeson-options
-  - aeson-prefix
-  - aeson-schema
-  - aeson-schemas
-  - aeson-smart
-  - aeson-streams
-  - aeson-t
-  - aeson-tiled
-  - aeson-typescript
-  - aeson-utils
-  - aeson-via
-  - affection
-  - affine-invariant-ensemble-mcmc
-  - afv
-  - ag-pictgen
-  - Agata
-  - agda-server
-  - agda-snippets
-  - agda-snippets-hakyll
-  - agda-unused
-  - agentx
-  - AGI
-  - AhoCorasick
-  - aig
-  - aip
-  - air-th
-  - airbrake
-  - airship
-  - airtable-api
-  - aivika-distributed
-  - aivika-experiment-diagrams
-  - ajhc
-  - AlanDeniseEricLauren
-  - alerta
-  - alex-prelude
-  - alfred
-  - alga
-  - algebra-checkers
-  - algebra-dag
-  - algebra-driven-design
-  - algebra-sql
-  - algebraic
-  - algebraic-prelude
-  - algo-s
-  - algolia
-  - AlgoRhythm
-  - AlgorithmW
-  - align-text
-  - AlignmentAlgorithms
-  - Allure
-  - ally-invest
-  - alms
-  - alpha
-  - alphachar
-  - alsa
-  - alsa-gui
-  - alsa-midi
-  - alsa-pcm-tests
-  - alsa-seq-tests
-  - altcomposition
-  - alternative-extra
-  - alternative-io
-  - alto
-  - alure
-  - amazon-emailer
-  - amazon-emailer-client-snap
-  - amazon-products
-  - amazonka-ec2
-  - amazonka-s3-streaming
-  - amby
-  - AMI
-  - ampersand
-  - amqp-conduit
-  - amqp-streamly
-  - analyze
-  - analyze-client
-  - anansi-pandoc
-  - anatomy
-  - android
-  - android-activity
-  - android-lint-summary
-  - AndroidViewHierarchyImporter
-  - angel
-  - angle
-  - Animas
-  - animascii
-  - animate
-  - animate-example
-  - animate-frames
-  - animate-preview
-  - animate-sdl2
-  - annah
-  - annotated-fix
-  - Annotations
-  - anonymous-sums
-  - anonymous-sums-tests
-  - ansi-terminal-game
-  - ansigraph
-  - antagonist
-  - antfarm
-  - anticiv
-  - antigate
-  - antimirov
-  - antiope-athena
-  - antiope-contract
-  - antiope-core
-  - antiope-dynamodb
-  - antiope-es
-  - antiope-messages
-  - antiope-optparse-applicative
-  - antiope-s3
-  - antiope-shell
-  - antiope-sns
-  - antiope-sqs
-  - antiquoter
-  - antisplice
-  - antlr-haskell
-  - antlrc
-  - anydbm
-  - aop-prelude
-  - aos-signature
-  - aosd
-  - apart
-  - apecs-stm
-  - apelsin
-  - api-builder
-  - api-rpc-factom
-  - api-rpc-pegnet
-  - api-tools
-  - api-yoti
-  - apiary
-  - apiary-authenticate
-  - apiary-clientsession
-  - apiary-cookie
-  - apiary-eventsource
-  - apiary-helics
-  - apiary-http-client
-  - apiary-logger
-  - apiary-memcached
-  - apiary-mongoDB
-  - apiary-persistent
-  - apiary-purescript
-  - apiary-redis
-  - apiary-session
-  - apiary-websockets
-  - apis
-  - apns-http2
-  - apotiki
-  - app-lens
-  - appc
-  - ApplePush
-  - AppleScript
-  - applicative-fail
-  - applicative-parsec
-  - applicative-quoters
-  - applicative-splice
-  - apply-unordered
-  - approveapi
-  - approx
-  - ApproxFun-hs
-  - arb-fft
-  - arbb-vm
-  - arbor-datadog
-  - arbor-monad-counter
-  - arbor-monad-logger
-  - arbor-monad-metric
-  - arbor-monad-metric-datadog
-  - arbor-postgres
-  - arch-hs
-  - arch-web
-  - archive-libarchive
-  - archiver
-  - archlinux
-  - archlinux-web
-  - archnews
-  - arduino-copilot
-  - arena
-  - arff
-  - arghwxhaskell
-  - argon
-  - argon2
-  - argparser
-  - arguedit
-  - ariadne
-  - arion
-  - arithmetic-circuits
-  - armada
-  - armor
-  - arpa
-  - arpack
-  - array-builder
-  - array-chunks
-  - array-forth
-  - array-list
-  - array-primops
-  - arrayfire
-  - arraylist
-  - ArrayRef
-  - arrow-improve
-  - arrow-list
-  - arrowapply-utils
-  - arrowp
-  - arrowp-qq
-  - ArrowVHDL
-  - artery
-  - artifact
-  - asap
-  - ascii-flatten
-  - ascii-string
-  - ascii-table
-  - ascii-vector-avc
-  - ascii85-conduit
-  - asic
-  - asil
-  - asn
-  - ASN1
-  - asn1-codec
-  - asn1-data
-  - assert
-  - assert4hs
-  - assert4hs-tasty
-  - assertions
-  - asset-map
-  - assimp
-  - assumpta
-  - ast-monad
-  - ast-monad-json
-  - astrds
-  - astview
-  - async-combinators
-  - async-dejafu
-  - async-manager
-  - async-timer
-  - asynchronous-exceptions
-  - aterm-utils
-  - atlassian-connect-core
-  - atlassian-connect-descriptor
-  - atmos-dimensional-tf
-  - atndapi
-  - atom-msp430
-  - atomic-modify
-  - atomic-primops-foreign
-  - atomic-primops-vector
-  - atomo
-  - atp
-  - atp-haskell
-  - ats-pkg
-  - ats-setup
-  - ats-storable
-  - attempt
-  - attic-schedule
-  - atto-lisp
-  - AttoBencode
-  - AttoJson
-  - attomail
-  - attoparsec-enumerator
-  - attoparsec-ip
-  - attoparsec-iteratee
-  - attoparsec-text
-  - attoparsec-text-enumerator
-  - attoparsec-trans
-  - attoparsec-uri
-  - attosplit
-  - Attrac
-  - atuin
-  - audiovisual
-  - augeas
-  - augur
-  - aur
-  - aur-api
-  - aura
-  - Aurochs
-  - authenticate-ldap
-  - authinfo-hs
-  - authoring
-  - AutoForms
-  - autom
-  - automata
-  - autonix-deps
-  - autonix-deps-kf5
-  - autopack
-  - avatar-generator
-  - avers
-  - avers-api
-  - avers-api-docs
-  - avers-server
-  - avl-static
-  - AvlTree
-  - avr-shake
-  - avro-piper
-  - awesome-prelude
-  - awesomium
-  - awesomium-glut
-  - awesomium-raw
-  - aws-cloudfront-signer
-  - aws-configuration-tools
-  - aws-dynamodb-conduit
-  - aws-dynamodb-streams
-  - aws-easy
-  - aws-ec2
-  - aws-ec2-knownhosts
-  - aws-elastic-transcoder
-  - aws-general
-  - aws-kinesis
-  - aws-kinesis-client
-  - aws-kinesis-reshard
-  - aws-lambda
-  - aws-lambda-haskell-runtime-wai
-  - aws-lambda-runtime
-  - aws-larpi
-  - aws-mfa-credentials
-  - aws-performance-tests
-  - aws-route53
-  - aws-sdk
-  - aws-sdk-text-converter
-  - aws-sdk-xml-unordered
-  - aws-ses-easy
-  - aws-sign4
-  - aws-simple
-  - aws-sns
-  - axel
-  - axiom
-  - azimuth-hs
-  - azubi
-  - azure-acs
-  - azure-email
-  - azure-functions-worker
-  - azure-service-api
-  - azure-servicebus
-  - azurify
-  - b-tree
-  - b9
-  - babylon
-  - backblaze-b2-hs
-  - backdropper
-  - backstop
-  - backtracking-exceptions
-  - backward-state
-  - bag
-  - Baggins
-  - bake
-  - ballast
-  - bamboo
-  - bamboo-launcher
-  - bamboo-plugin-highlight
-  - bamboo-plugin-photo
-  - bamboo-theme-blueprint
-  - bamboo-theme-mini-html5
-  - bamse
-  - bamstats
-  - ban-instance
-  - Bang
-  - bank-holiday-usa
-  - banwords
-  - barchart
-  - barcodes-code128
-  - barecheck
-  - Barracuda
-  - barrie
-  - barrier
-  - barrier-monad
-  - base-compat-migrate
-  - base-encoding
-  - base-feature-macros
-  - base-generics
-  - base-io-access
-  - base16
-  - base16-lens
-  - base32-bytestring
-  - base62
-  - base64-bytes
-  - base64-conduit
-  - baserock-schema
-  - basex-client
-  - BASIC
-  - basic
-  - basic-sop
-  - baskell
-  - batchd
-  - battlenet
-  - battlenet-yesod
-  - battleplace
-  - battleplace-api
-  - battleship-combinatorics
-  - battleships
-  - bayes-stack
-  - bazel-coverage-report-renderer
-  - bbi
-  - BCMtools
-  - bcp47
-  - bcp47-orphans
-  - bdcs
-  - bdcs-api
-  - bdd
-  - bdo
-  - beam
-  - beam-automigrate
-  - beam-core
-  - beam-migrate
-  - beam-mysql
-  - beam-newtype-field
-  - beam-postgres
-  - beam-sqlite
-  - beam-th
-  - beamable
-  - beautifHOL
-  - bech32
-  - bech32-th
-  - bed-and-breakfast
-  - beeminder-api
-  - Befunge93
-  - bein
-  - belka
-  - bench-graph
-  - bench-show
-  - BenchmarkHistory
-  - bencodex
-  - berkeleydb
-  - BerkeleyDBXML
-  - BerlekampAlgorithm
-  - berp
-  - bert
-  - besout
-  - bet
-  - betacode
-  - betris
-  - bff
-  - bglib
-  - bgmax
-  - bgzf
-  - bhoogle
-  - bibdb
-  - bidi-icu
-  - bidirectional
-  - bidirectionalization-combined
-  - bidispec
-  - bidispec-extras
-  - BiGUL
-  - billboard-parser
-  - billeksah-forms
-  - billeksah-main
-  - billeksah-pane
-  - billeksah-services
-  - binary-bits
-  - binary-communicator
-  - binary-derive
-  - binary-ext
-  - binary-file
-  - binary-indexed-tree
-  - binary-protocol
-  - binary-protocol-zmq
-  - binary-streams
-  - binary-tagged
-  - binary-typed
-  - bind-marshal
-  - BinderAnn
-  - binding-core
-  - binding-gtk
-  - binding-wx
-  - bindings-apr
-  - bindings-apr-util
-  - bindings-bfd
-  - bindings-cctools
-  - bindings-common
-  - bindings-dc1394
-  - bindings-eskit
-  - bindings-EsounD
-  - bindings-fann
-  - bindings-fluidsynth
-  - bindings-friso
-  - bindings-gsl
-  - bindings-hamlib
-  - bindings-hdf5
-  - bindings-K8055
-  - bindings-libftdi
-  - bindings-libg15
-  - bindings-libpci
-  - bindings-librrd
-  - bindings-libstemmer
-  - bindings-libusb
-  - bindings-libv4l2
-  - bindings-linux-videodev2
-  - bindings-monetdb-mapi
-  - bindings-mpdecimal
-  - bindings-ppdev
-  - bindings-sc3
-  - bindings-sipc
-  - bindings-wlc
-  - bindynamic
-  - binembed
-  - binembed-example
-  - bio
-  - bio-sequence
-  - bioace
-  - bioalign
-  - Biobase
-  - BiobaseBlast
-  - BiobaseDotP
-  - BiobaseENA
-  - BiobaseEnsembl
-  - BiobaseFasta
-  - BiobaseFR3D
-  - BiobaseHTTP
-  - BiobaseHTTPTools
-  - BiobaseInfernal
-  - BiobaseMAF
-  - BiobaseNewick
-  - BiobaseTrainingData
-  - BiobaseTurner
-  - BiobaseTypes
-  - BiobaseVienna
-  - BiobaseXNA
-  - biocore
-  - biofasta
-  - biofastq
-  - biohazard
-  - BioHMM
-  - bioinformatics-toolkit
-  - biophd
-  - biopsl
-  - biosff
-  - biostockholm
-  - bip32
-  - birch-beer
-  - bird
-  - BirdPP
-  - birds-of-paradise
-  - bisect-binary
-  - bishbosh
-  - bit-array
-  - bit-stream
-  - bitcoin-address
-  - bitcoin-api
-  - bitcoin-api-extra
-  - bitcoin-block
-  - bitcoin-compact-filters
-  - bitcoin-hs
-  - bitcoin-keys
-  - bitcoin-rpc
-  - bitcoin-script
-  - bitcoin-scripting
-  - bitcoin-tx
-  - bitcoin-types
-  - bitcoind-regtest
-  - bitcoind-rpc
-  - Bitly
-  - bitly-cli
-  - bitmaps
-  - bits-atomic
-  - bits-conduit
-  - bits-extras
-  - bitset
-  - bitspeak
-  - BitStringRandomMonad
-  - BitSyntax
-  - bittorrent
-  - bitwise-enum
-  - bitx-bitcoin
-  - bizzlelude
-  - bizzlelude-js
-  - bkr
-  - bla
-  - blakesum
-  - blakesum-demo
-  - blas
-  - BlastHTTP
-  - blastxml
-  - blatex
-  - blaze-builder-enumerator
-  - blaze-colonnade
-  - blaze-html-contrib
-  - blaze-html-hexpat
-  - blaze-html-truncate
-  - blaze-json
-  - blaze-textual-native
-  - blazeT
-  - ble
-  - blink1
-  - blip
-  - bliplib
-  - Blobs
-  - blockchain
-  - blockhash
-  - Blogdown
-  - blogination
-  - BlogLiterately
-  - BlogLiterately-diagrams
-  - bloodhound
-  - bloodhound-amazonka-auth
-  - bloomfilter-redis
-  - blosum
-  - bloxorz
-  - blubber
-  - blubber-server
-  - Blueprint
-  - bluetile
-  - bluetileutils
-  - blunk-hask-tests
-  - blunt
-  - bno055-haskell
-  - bogocopy
-  - bogre-banana
-  - boilerplate
-  - bolt
-  - boltzmann-brain
-  - bond
-  - bond-haskell
-  - bond-haskell-compiler
-  - bookkeeper
-  - bookkeeper-permissions
-  - Bookshelf
-  - boolean-normal-forms
-  - boolexpr
-  - boombox
-  - boomslang
-  - boopadoop
-  - boots-app
-  - boots-cloud
-  - boots-web
-  - borel
-  - boring-window-switcher
-  - bot
-  - botpp
-  - bound-extras
-  - bounded-array
-  - bowntz
-  - box
-  - box-csv
-  - box-socket
-  - braid
-  - brain-bleep
-  - Bravo
-  - breakout
-  - breve
-  - brians-brain
-  - brick-dropdownmenu
-  - bricks
-  - bricks-internal
-  - bricks-internal-test
-  - bricks-parsec
-  - bricks-rendering
-  - bricks-syntax
-  - brillig
-  - broccoli
-  - brok
-  - broker-haskell
-  - bronyradiogermany-common
-  - bronyradiogermany-streaming
-  - brotli
-  - brotli-conduit
-  - brotli-streams
-  - browscap
-  - bsd-sysctl
-  - bson
-  - bson-generic
-  - bson-generics
-  - bson-lens
-  - bsparse
-  - btree
-  - btree-concurrent
-  - buchhaltung
-  - buffer
-  - buffer-builder
-  - buffer-builder-aeson
-  - BufferedSocket
-  - buffet
-  - buffon
-  - bugsnag-haskell
-  - bugzilla
-  - build
-  - buildable
-  - buildbox
-  - buildbox-tools
-  - builder
-  - buildwrapper
-  - bullet
-  - bulletproofs
-  - bulmex
-  - bumper
-  - bunz
-  - burnt-explorer
-  - burst-detection
-  - bus-pirate
-  - Buster
-  - buster
-  - buster-gtk
-  - buster-network
-  - butter
-  - butterflies
-  - bv-sized
-  - byline
-  - bytable
-  - bytearray-parsing
-  - bytebuild
-  - bytehash
-  - bytelog
-  - byteslice
-  - bytesmith
-  - bytestring-arbitrary
-  - bytestring-builder-varword
-  - bytestring-class
-  - bytestring-csv
-  - bytestring-plain
-  - bytestring-read
-  - bytestring-rematch
-  - bytestring-show
-  - bytestring-substring
-  - bytestring-time
-  - bytestring-trie
-  - bytestring-typenats
-  - bytestringparser
-  - bytestringparser-temporary
-  - bytestringreadp
-  - c-dsl
-  - c-io
-  - c-mosquitto
-  - c0check
-  - c0parser
-  - c10k
-  - c2ats
-  - cab
-  - cabal-appimage
-  - cabal-audit
-  - cabal-bounds
-  - cabal-bundle-clib
-  - cabal-cache
-  - cabal-cargs
-  - cabal-constraints
-  - cabal-db
-  - cabal-dependency-licenses
-  - cabal-dev
-  - cabal-dir
-  - cabal-edit
-  - cabal-file-th
-  - cabal-ghc-dynflags
-  - cabal-ghci
-  - cabal-graphdeps
-  - Cabal-ide-backend
-  - cabal-info
-  - cabal-install-bundle
-  - cabal-install-ghc72
-  - cabal-install-ghc74
-  - cabal-lenses
-  - cabal-meta
-  - cabal-mon
-  - cabal-nirvana
-  - cabal-progdeps
-  - cabal-query
-  - cabal-setup
-  - cabal-sort
-  - cabal-src
-  - cabal-test
-  - cabal-test-quickcheck
-  - cabal-upload
-  - cabal2arch
-  - cabal2doap
-  - cabal2ebuild
-  - cabal2ghci
-  - cabalgraph
-  - cabalish
-  - cabalmdvrpm
-  - cabalQuery
-  - cabalrpmdeps
-  - CabalSearch
-  - cabalvchk
-  - cabin
-  - cabocha
-  - cache-polysemy
-  - cached
-  - caching
-  - caching-vault
-  - cacophony
-  - cafeteria-prelude
-  - caffegraph
-  - cairo-core
-  - cake
-  - cake3
-  - cakyrespa
-  - cal-layout
-  - cal3d
-  - cal3d-examples
-  - cal3d-opengl
-  - calamity
-  - calc
-  - calculator
-  - caldims
-  - caledon
-  - calenderweek
-  - call
-  - call-alloy
-  - call-haskell-from-anything
-  - camfort
-  - campfire
-  - candid
-  - canon
-  - canonical-filepath
-  - canonical-json
-  - canteven-http
-  - canteven-listen-http
-  - canteven-log
-  - canteven-parsedate
-  - cantor
-  - cao
-  - cap
-  - Capabilities
-  - capnp
-  - capped-list
-  - capri
-  - car-pool
-  - caramia
-  - carbonara
-  - carboncopy
-  - cardano-coin-selection
-  - carettah
-  - CarneadesDSL
-  - CarneadesIntoDung
-  - carte
-  - cartel
-  - Cartesian
-  - casa-abbreviations-and-acronyms
-  - casadi-bindings
-  - casadi-bindings-control
-  - casadi-bindings-core
-  - casadi-bindings-internal
-  - casadi-bindings-ipopt-interface
-  - casadi-bindings-snopt-interface
-  - Cascade
-  - cascading
-  - caseof
-  - cases
-  - cash
-  - cassandra-cql
-  - Cassava
-  - cassava-conduit
-  - cassava-records
-  - cassette
-  - cassy
-  - castle
-  - casui
-  - catamorphism
-  - Catana
-  - catch-fd
-  - categorical-algebra
-  - category-extras
-  - category-traced
-  - catnplus
-  - cautious-file
-  - cautious-gen
-  - cayley-client
-  - CBOR
-  - CC-delcont-alt
-  - CC-delcont-cxe
-  - CC-delcont-exc
-  - CC-delcont-ref
-  - CC-delcont-ref-tf
-  - CCA
-  - cci
-  - ccnx
-  - cctools-workqueue
-  - cedict
-  - cef
-  - cef3-raw
-  - cef3-simple
-  - ceilometer-common
-  - cellrenderer-cairo
-  - celtchar
-  - cerberus
-  - cereal-derive
-  - cereal-enumerator
-  - cereal-ieee754
-  - cereal-io-streams
-  - cereal-plus
-  - cereal-streams
-  - certificate
-  - cf
-  - cfenv
-  - cfipu
-  - cflp
-  - cfopu
-  - cg
-  - cgen
-  - cgi-utils
-  - cgrep
-  - chainweb-mining-client
-  - chakra
-  - chalkboard
-  - chalkboard-viewer
-  - character-cases
-  - charade
-  - chart-cli
-  - Chart-fltkhs
-  - chart-histogram
-  - Chart-simple
-  - chart-svg
-  - chart-svg-various
-  - Chart-tests
-  - chart-unit
-  - charter
-  - chatty-text
-  - chatwork
-  - cheapskate-terminal
-  - check-pvp
-  - Checked
-  - checked
-  - checkmate
-  - chell-quickcheck
-  - chessIO
-  - chevalier-common
-  - chiasma
-  - chiphunk
-  - chitauri
-  - Chitra
-  - choose
-  - choose-exe
-  - chorale
-  - chorale-geo
-  - chp
-  - chp-mtl
-  - chp-plus
-  - chp-spec
-  - chp-transformers
-  - chr-core
-  - chr-lang
-  - chr-parse
-  - ChristmasTree
-  - chromatin
-  - chronograph
-  - chronos-bench
-  - chu2
-  - chunks
-  - chunky
-  - church
-  - church-maybe
-  - churros
-  - cielo
-  - cil
-  - cinvoke
-  - cio
-  - cipher-blowfish
-  - ciphersaber2
-  - circlehs
-  - circular
-  - citation-resolve
-  - citeproc-hs
-  - citeproc-hs-pandoc-filter
-  - cj-token
-  - cjk
-  - cl3
-  - cl3-hmatrix-interface
-  - cl3-linear-interface
-  - clac
-  - clafer
-  - claferIG
-  - claferwiki
-  - clang-compilation-database
-  - clang-pure
-  - clanki
-  - clarifai
-  - CLASE
-  - clash
-  - clash-ghc
-  - clash-lib
-  - clash-multisignal
-  - clash-prelude
-  - Clash-Royale-Hack-Cheats
-  - clash-systemverilog
-  - clash-verilog
-  - clash-vhdl
-  - classify-frog
-  - ClassLaws
-  - classy-influxdb-simple
-  - classy-miso
-  - classy-parallel
-  - classyplate
-  - ClassyPrelude
-  - clckwrks
-  - clckwrks-cli
-  - clckwrks-dot-com
-  - clckwrks-plugin-bugs
-  - clckwrks-plugin-ircbot
-  - clckwrks-plugin-mailinglist
-  - clckwrks-plugin-media
-  - clckwrks-plugin-page
-  - clckwrks-plugin-redirect
-  - clckwrks-theme-bootstrap
-  - clckwrks-theme-clckwrks
-  - clckwrks-theme-geo-bootstrap
-  - cld2
-  - Clean
-  - clean-unions
-  - cless
-  - clevercss
-  - clexer
-  - CLI
-  - cli-builder
-  - cli-extras
-  - cli-git
-  - cli-nix
-  - clickhouse-haskell
-  - clif
-  - clifford
-  - clifm
-  - clingo
-  - clippard
-  - clipper
-  - clippings
-  - clisparkline
-  - clit
-  - clocked
-  - clogparse
-  - clone-all
-  - closure
-  - cloud-haskell
-  - cloud-seeder
-  - cloudfront-signer
-  - clr-inline
-  - clua
-  - cluss
-  - ClustalParser
-  - clustering
-  - clustertools
-  - clutterhs
-  - cmark-highlight
-  - cmark-patterns
-  - cmark-sections
-  - cmath
-  - cmathml3
-  - CMCompare
-  - cmd-item
-  - cmdlib
-  - cmdtheline
-  - cmf
-  - cmonad
-  - cmph
-  - cmptype
-  - CMQ
-  - cmt
-  - cmv
-  - cnc-spec-compiler
-  - co-log-polysemy
-  - co-log-polysemy-formatting
-  - co-log-sys
-  - Coadjute
-  - coalpit
-  - cobot-io
-  - cobot-tools
-  - code-builder
-  - codec
-  - codec-beam
-  - codec-libevent
-  - codec-rpm
-  - codecov-haskell
-  - codemonitor
-  - codepad
-  - codeworld-api
-  - codex
-  - codo-notation
-  - coercible-utils
-  - coin
-  - coinbase-exchange
-  - coinbase-pro
-  - coincident-root-loci
-  - colada
-  - colchis
-  - collada-output
-  - collapse-duplication
-  - collapse-util
-  - collection-json
-  - collections
-  - collections-api
-  - collections-base-instances
-  - colonnade
-  - color-counter
-  - colorless
-  - colorless-http-client
-  - colorless-scotty
-  - colour-space
-  - coltrane
-  - columbia
-  - columnar
-  - com
-  - comark-syntax
-  - combinat
-  - combinat-diagrams
-  - combinator-interactive
-  - combinatorial-problems
-  - Combinatorrent
-  - combobuffer
-  - comic
-  - Command
-  - commander
-  - Commando
-  - commodities
-  - commsec
-  - commsec-keyexchange
-  - ComonadSheet
-  - compact-list
-  - compact-map
-  - compact-mutable
-  - compact-mutable-vector
-  - compact-socket
-  - compact-string
-  - compact-string-fix
-  - compact-word-vectors
-  - Compactable
-  - compactable
-  - compdata
-  - compdata-automata
-  - compdata-dags
-  - compdata-param
-  - compendium-client
-  - competition
-  - compilation
-  - complex-generic
-  - complexity
-  - compose-trans
-  - composite-opaleye
-  - composite-swagger
-  - composition-tree
-  - comprehensions-ghc
-  - compressed
-  - compstrat
-  - comptrans
-  - computational-algebra
-  - computational-geometry
-  - computations
-  - concraft
-  - concraft-hr
-  - concraft-pl
-  - concrete-haskell
-  - concrete-haskell-autogen
-  - concrete-relaxng-parser
-  - concrete-typerep
-  - concurrency-benchmarks
-  - concurrent-buffer
-  - Concurrent-Cache
-  - concurrent-machines
-  - concurrent-state
-  - Concurrential
-  - Condor
-  - condor
-  - condorcet
-  - conductive-base
-  - conductive-hsc3
-  - conductive-song
-  - conduit-audio-lame
-  - conduit-audio-samplerate
-  - conduit-find
-  - conduit-iconv
-  - conduit-network-stream
-  - conduit-resumablesink
-  - conduit-throttle
-  - conduit-tokenize-attoparsec
-  - conduit-vfs
-  - conduit-vfs-zip
-  - conf
-  - confcrypt
-  - conferer-dhall
-  - conferer-provider-dhall
-  - conferer-provider-json
-  - conferer-provider-yaml
-  - conferer-snap
-  - conferer-source-dhall
-  - conferer-source-json
-  - conferer-source-yaml
-  - conffmt
-  - confide
-  - config-parser
-  - config-select
-  - config-value-getopt
-  - ConfigFileTH
-  - Configger
-  - configifier
-  - Configurable
-  - configuration
-  - configurator-ng
-  - confsolve
-  - congruence-relation
-  - conjure
-  - conkin
-  - conlogger
-  - connection-string
-  - connections
-  - Conscript
-  - consistent
-  - console-program
-  - const-math-ghc-plugin
-  - constr-eq
-  - constrained-categories
-  - constrained-category
-  - constrained-dynamic
-  - constrained-monads
-  - constraint-manip
-  - ConstraintKinds
-  - constraints-emerge
-  - constructible
-  - constructive-algebra
-  - consul-haskell
-  - Consumer
-  - consumers
-  - container
-  - containers-benchmark
-  - containers-verified
-  - ContArrow
-  - content-store
-  - context-free-grammar
-  - context-stack
-  - ContextAlgebra
-  - contiguous
-  - contiguous-checked
-  - contiguous-fft
-  - continue
-  - continuum
-  - continuum-client
-  - Contract
-  - control
-  - control-iso
-  - control-monad-attempt
-  - control-monad-exception-monadsfd
-  - control-monad-failure
-  - control-monad-failure-mtl
-  - Control-Monad-MultiPass
-  - Control-Monad-ST2
-  - contstuff-monads-tf
-  - contstuff-transformers
-  - conversions
-  - convert
-  - convert-annotation
-  - convertible-ascii
-  - convertible-text
-  - cookies
-  - coordinate
-  - copilot
-  - copilot-c99
-  - copilot-cbmc
-  - copilot-language
-  - copilot-libraries
-  - copilot-sbv
-  - copilot-theorem
-  - copr
-  - COrdering
-  - core
-  - core-haskell
-  - corebot-bliki
-  - CoreDump
-  - CoreErlang
-  - CoreFoundation
-  - corenlp-parser
-  - Coroutine
-  - coroutine-enumerator
-  - coroutine-iteratee
-  - coroutine-object
-  - couch-hs
-  - CouchDB
-  - couchdb-conduit
-  - couchdb-enumerator
-  - countable-inflections
-  - counter
-  - country-codes
-  - courier
-  - court
-  - coverage
-  - cparsing
-  - CPBrainfuck
-  - cpio-conduit
-  - cpkg
-  - CPL
-  - cplusplus-th
-  - cprng-aes-effect
-  - cpuperf
-  - cpython
-  - cql-io
-  - cql-io-tinylog
-  - cqrs-core
-  - cqrs-example
-  - cqrs-memory
-  - cqrs-postgresql
-  - cqrs-sqlite3
-  - cqrs-test
-  - cqrs-testkit
-  - cr
-  - crack
-  - craft
-  - Craft3e
-  - craftwerk
-  - craftwerk-cairo
-  - craftwerk-gtk
-  - crawlchain
-  - craze
-  - crc
-  - crc16
-  - crdt
-  - crdt-event-fold
-  - creatur
-  - credential-store
-  - crf-chain1
-  - crf-chain1-constrained
-  - crf-chain2-generic
-  - crf-chain2-tiers
-  - critbit
-  - criterion-cmp
-  - criterion-compare
-  - criterion-plus
-  - criterion-to-html
-  - criu-rpc
-  - criu-rpc-types
-  - crjdt-haskell
-  - crockford
-  - crocodile
-  - cron-compat
-  - cruncher-types
-  - crunghc
-  - crypt-sha512
-  - crypto-cipher-benchmarks
-  - crypto-classical
-  - crypto-conduit
-  - crypto-keys-ssh
-  - crypto-multihash
-  - crypto-pubkey-openssh
-  - crypto-random-effect
-  - crypto-simple
-  - cryptocipher
-  - cryptocompare
-  - cryptoconditions
-  - cryptoids
-  - cryptoids-class
-  - cryptoids-types
-  - cryptol
-  - cryptsy-api
-  - crystalfontz
-  - cse-ghc-plugin
-  - csg
-  - CSPM-cspm
-  - CSPM-FiringRules
-  - CSPM-Frontend
-  - CSPM-Interpreter
-  - CSPM-ToProlog
-  - cspmchecker
-  - cspretty
-  - css
-  - css-easings
-  - css-selectors
-  - csv-enumerator
-  - csv-nptools
-  - ctemplate
-  - ctkl
-  - ctpl
-  - cube
-  - cubical
-  - cuboid
-  - cuckoo
-  - curl-runnings
-  - currency-codes
-  - currency-convert
-  - curry-frontend
-  - CurryDB
-  - curryer-rpc
-  - cursedcsv
-  - cursor-fuzzy-time-gen
-  - curves
-  - custom-prelude
-  - CV
-  - cv-combinators
-  - cypher
-  - d-bus
-  - d3js
-  - dag
-  - DAG-Tournament
-  - damnpacket
-  - Dangerous
-  - danibot
-  - Dao
-  - dao
-  - dapi
-  - darcs-benchmark
-  - darcs-beta
-  - darcs-buildpackage
-  - darcs-cabalized
-  - darcs-fastconvert
-  - darcs-graph
-  - darcs-monitor
-  - darcs2dot
-  - darcsden
-  - DarcsHelpers
-  - darcswatch
-  - darkplaces-demo
-  - darkplaces-rcon
-  - darkplaces-rcon-util
-  - darkplaces-text
-  - dash-haskell
-  - data-accessor-monads-fd
-  - data-accessor-monads-tf
-  - data-aviary
-  - data-base
-  - data-basic
-  - data-check
-  - data-combinator-gen
-  - data-concurrent-queue
-  - data-construction
-  - data-cycle
-  - data-dispersal
-  - data-diverse-lens
-  - data-easy
-  - data-elf
-  - data-embed
-  - data-emoticons
-  - data-filepath
-  - data-fin
-  - data-fin-simple
-  - data-flagset
-  - data-interval
-  - data-ivar
-  - data-kiln
-  - data-layer
-  - data-lens
-  - data-lens-fd
-  - data-lens-ixset
-  - data-lens-template
-  - data-map-multikey
-  - data-nat
-  - data-object
-  - data-object-json
-  - data-object-yaml
-  - data-pprint
-  - data-quotientref
-  - data-r-tree
-  - data-reify-cse
-  - data-repr
-  - data-result
-  - data-rev
-  - Data-Rope
-  - data-rope
-  - data-rtuple
-  - data-size
-  - data-spacepart
-  - data-standards
-  - data-store
-  - data-stringmap
-  - data-structure-inferrer
-  - data-sword
-  - data-type
-  - data-util
-  - data-validation
-  - data-variant
-  - database-id-class
-  - database-id-groundhog
-  - database-study
-  - datadog
-  - datadog-tracing
-  - datafix
-  - dataflow
-  - datalog
-  - datapacker
-  - datasets
-  - DataTreeView
-  - dataurl
-  - DataVersion
-  - date-conversions
-  - dates
-  - datetime
-  - datetime-sb
-  - dawdle
-  - dawg
-  - dbcleaner
-  - dbf
-  - DBFunctor
-  - dbjava
-  - DBlimited
-  - dbm
-  - dbmigrations-mysql
-  - dbmigrations-postgresql
-  - dbmigrations-sqlite
-  - DBus
-  - dbus-client
-  - dbus-core
-  - dbus-qq
-  - dclabel
-  - dclabel-eci11
-  - dcpu16
-  - ddate
-  - ddc-base
-  - ddc-build
-  - ddc-code
-  - ddc-core
-  - ddc-core-babel
-  - ddc-core-eval
-  - ddc-core-flow
-  - ddc-core-llvm
-  - ddc-core-salt
-  - ddc-core-simpl
-  - ddc-core-tetra
-  - ddc-driver
-  - ddc-interface
-  - ddc-source-tetra
-  - ddc-tools
-  - ddc-war
-  - ddci-core
-  - dead-code-detection
-  - dead-simple-json
-  - Deadpan-DDP
-  - debug
-  - debug-me
-  - debug-trace-var
-  - debug-tracy
-  - decepticons
-  - decidable
-  - decimal-arithmetic
-  - decimal-literals
-  - DecisionTree
-  - decoder-conduit
-  - dedukti
-  - deep-transformations
-  - DeepArrow
-  - deepcontrol
-  - DeepDarkFantasy
-  - deeplearning-hs
-  - deepseq-bounded
-  - deepseq-magic
-  - deepseq-th
-  - deepzoom
-  - defargs
-  - DefendTheKing
-  - deka
-  - deka-tests
-  - delaunay
-  - delicious
-  - delimited-text
-  - delimiter-separated
-  - delta
-  - delta-h
-  - Delta-Lambda
-  - delude
-  - demarcate
-  - denominate
-  - dense
-  - dense-int-set
-  - dep-t
-  - dep-t-advice
-  - dependent-hashmap
-  - dependent-monoidal-map
-  - dependent-state
-  - depends
-  - dephd
-  - deptrack-core
-  - deptrack-devops
-  - deptrack-dot
-  - dequeue
-  - derangement
-  - derivation-trees
-  - derive
-  - derive-enumerable
-  - derive-gadt
-  - derive-IG
-  - derive-monoid
-  - derive-trie
-  - derp-lib
-  - describe
-  - descript-lang
-  - deterministic-game-engine
-  - detour-via-uom
-  - deunicode
-  - devil
-  - devtools
-  - dewdrop
-  - dfinity-radix-tree
-  - Dflow
-  - dfsbuild
-  - dgim
-  - dgs
-  - dhall-check
-  - dhall-docs
-  - dhall-fly
-  - dhall-nix
-  - dhall-nixpkgs
-  - dhall-recursive-adt
-  - dhall-text
-  - dhall-to-cabal
-  - dhcp-lease-parser
-  - dhrun
-  - dia-base
-  - dia-functions
-  - diagrams-boolean
-  - diagrams-braille
-  - diagrams-builder
-  - diagrams-cairo
-  - diagrams-canvas
-  - diagrams-graphviz
-  - diagrams-gtk
-  - diagrams-haddock
-  - diagrams-html5
-  - diagrams-pandoc
-  - diagrams-pdf
-  - diagrams-pgf
-  - diagrams-qrcode
-  - diagrams-rasterific
-  - diagrams-rubiks-cube
-  - diagrams-tikz
-  - diagrams-wx
-  - dib
-  - dice2tex
-  - dicom
-  - dictionaries
-  - dictparser
-  - diet
-  - diff
-  - diffcabal
-  - difference-monoid
-  - DifferenceLogic
-  - differential
-  - DifferentialEvolution
-  - diffmap
-  - difftodo
-  - digestive-bootstrap
-  - digestive-foundation-lucid
-  - digestive-functors-aeson
-  - digestive-functors-happstack
-  - digestive-functors-hsp
-  - DigitalOcean
-  - digitalocean-kzs
-  - digits
-  - dimensional-codata
-  - dimensional-tf
-  - DimensionalHash
-  - dingo-core
-  - dingo-example
-  - dingo-widgets
-  - diohsc
-  - diophantine
-  - diplomacy
-  - diplomacy-server
-  - direct-binary-files
-  - direct-fastcgi
-  - direct-http
-  - direct-plugins
-  - direct-rocksdb
-  - directed-cubical
-  - directory-contents
-  - direm
-  - dirfiles
-  - discogs-haskell
-  - discord-gateway
-  - discord-hs
-  - discord-register
-  - discord-rest
-  - discord-types
-  - discordian-calendar
-  - discrete
-  - DiscussionSupportSystem
-  - Dish
-  - disjoint-containers
-  - disjoint-set
-  - disjoint-set-stateful
-  - Dist
-  - dist-upload
-  - distance
-  - DisTract
-  - distributed-fork-aws-lambda
-  - distributed-process
-  - distributed-process-async
-  - distributed-process-azure
-  - distributed-process-client-server
-  - distributed-process-ekg
-  - distributed-process-execution
-  - distributed-process-extras
-  - distributed-process-fsm
-  - distributed-process-lifted
-  - distributed-process-monad-control
-  - distributed-process-p2p
-  - distributed-process-platform
-  - distributed-process-registry
-  - distributed-process-simplelocalnet
-  - distributed-process-supervisor
-  - distributed-process-systest
-  - distributed-process-task
-  - distributed-process-tests
-  - distributed-process-zookeeper
-  - distribution
-  - distribution-plot
-  - diversity
-  - dixi
-  - djembe
-  - djinn-th
-  - dl-fedora
-  - dmcc
-  - dmenu
-  - dmenu-pkill
-  - dmenu-pmount
-  - dmenu-search
-  - DMuCheck
-  - DnaProteinAlignment
-  - dnscache
-  - dnsrbl
-  - dnssd
-  - dobutok
-  - doc-review
-  - doccheck
-  - docidx
-  - docker
-  - docker-build-cacher
-  - dockercook
-  - docopt
-  - docrecords
-  - DocTest
-  - doctest-discover-configurator
-  - doctest-prop
-  - docusign-base
-  - docusign-base-minimal
-  - docusign-client
-  - docusign-example
-  - docvim
-  - doi
-  - DOM
-  - domain
-  - domain-core
-  - domain-optics
-  - domplate
-  - dot-linker
-  - dotfs
-  - doublify-toolkit
-  - dow
-  - download-media-content
-  - downloader
-  - dozenal
-  - dozens
-  - DP
-  - dph-base
-  - dph-examples
-  - dph-lifted-base
-  - dph-lifted-copy
-  - dph-lifted-vseg
-  - dph-prim-interface
-  - dph-prim-par
-  - dph-prim-seq
-  - dpkg
-  - DPM
-  - dpor
-  - dragen
-  - drawille
-  - drClickOn
-  - dresdner-verkehrsbetriebe
-  - DrHylo
-  - DrIFT
-  - DrIFT-cabalized
-  - drifter
-  - drifter-postgresql
-  - drifter-sqlite
-  - drmaa
-  - drone
-  - dropbox
-  - dropbox-sdk
-  - dropsolve
-  - ds-kanren
-  - DSA
-  - dsc
-  - DSH
-  - dsh-sql
-  - dsmc
-  - dsmc-tools
-  - dson
-  - dson-parsec
-  - DSTM
-  - dstring
-  - DTC
-  - dtd
-  - dtd-text
-  - dtw
-  - dualizer
-  - duet
-  - dumb-cas
-  - dump-core
-  - dunai-core
-  - Dung
-  - duplo
-  - dura
-  - Dust
-  - Dust-crypto
-  - Dust-tools
-  - Dust-tools-pcap
-  - dvault
-  - dvda
-  - dvdread
-  - dvi-processing
-  - dwarf
-  - dwarfadt
-  - dyckword
-  - dyepack
-  - dynamic-cabal
-  - dynamic-graphs
-  - dynamic-mvector
-  - dynamic-object
-  - dynamic-plot
-  - dynamic-pp
-  - DynamicTimeWarp
-  - dynamodb-simple
-  - dynloader
-  - dynobud
-  - DysFRP
-  - DysFRP-Cairo
-  - DysFRP-Craftwerk
-  - dywapitchtrack
-  - dzen-dhall
-  - dzen-utils
-  - each
-  - earclipper
-  - early
-  - easy-api
-  - easy-bitcoin
-  - easyjson
-  - easyplot
-  - easytensor
-  - easytensor-vulkan
-  - easytest
-  - ebeats
-  - ebnf-bff
-  - ec2-unikernel
-  - eccrypto
-  - eccrypto-ed25519-bindings
-  - ecma262
-  - ecu
-  - eddie
-  - ede
-  - edenmodules
-  - edenskel
-  - edentv
-  - edge
-  - edges
-  - edis
-  - edit
-  - edit-lenses
-  - editable
-  - editline
-  - EditTimeReport
-  - effect-handlers
-  - effect-monad
-  - effect-stack
-  - effin
-  - egison
-  - egison-pattern-src
-  - egison-pattern-src-haskell-mode
-  - egison-pattern-src-th-mode
-  - egison-quote
-  - egison-tutorial
-  - ehaskell
-  - ehs
-  - eibd-client-simple
-  - eigen
-  - Eight-Ball-Pool-Hack-Cheats
-  - eio
-  - either-list-functions
-  - either-unwrap
-  - EitherT
-  - ejdb2-binding
-  - ekg-bosun
-  - ekg-carbon
-  - ekg-cloudwatch
-  - ekg-elastic
-  - ekg-elasticsearch
-  - ekg-log
-  - ekg-push
-  - ekg-rrd
-  - ekg-wai
-  - elerea-examples
-  - elevator
-  - elision
-  - elliptic-curve
-  - elm-street
-  - elm-websocket
-  - elsa
-  - elynx
-  - elynx-tree
-  - emacs-keys
-  - emacs-module
-  - email
-  - email-header
-  - email-postmark
-  - emailaddress
-  - emailparse
-  - embeddock
-  - embeddock-example
-  - embla
-  - embroidery
-  - emgm
-  - Emping
-  - Empty
-  - empty-monad
-  - enchant
-  - encoding
-  - encoding-io
-  - encryptable
-  - engine-io
-  - engine-io-growler
-  - engine-io-snap
-  - engine-io-wai
-  - engine-io-yesod
-  - entangle
-  - EntrezHTTP
-  - entwine
-  - enum-text
-  - enum-text-rio
-  - enum-utf8
-  - EnumContainers
-  - enumerate
-  - enumerate-function
-  - enumerator
-  - enumerator-fd
-  - enumerator-tf
-  - enumfun
-  - EnumMap
-  - enummapmap
-  - env-extra
-  - env-parser
-  - envstatus
-  - epanet-haskell
-  - epass
-  - ephemeral
-  - epi-sim
-  - epic
-  - epoll
-  - eprocess
-  - epubname
-  - Eq
-  - EqualitySolver
-  - equational-reasoning-induction
-  - equeue
-  - erf-native
-  - erlang
-  - erlang-ffi
-  - eros
-  - eros-client
-  - eros-http
-  - error-codes
-  - error-context
-  - error-continuations
-  - error-list
-  - error-loc
-  - error-message
-  - error-util
-  - errors-ext
-  - ersaconcat
-  - ersatz
-  - ersatz-toysat
-  - ert
-  - escape-artist
-  - escoger
-  - esotericbot
-  - EsounD
-  - espial
-  - ess
-  - estimators
-  - EstProgress
-  - estreps
-  - Etage
-  - Etage-Graph
-  - EtaMOO
-  - eternal
-  - Eternal10Seconds
-  - eternity
-  - eternity-timestamped
-  - ether
-  - Etherbunny
-  - ethereum-analyzer
-  - ethereum-analyzer-cli
-  - ethereum-analyzer-webui
-  - ethereum-client-haskell
-  - ethereum-merkle-patricia-db
-  - ethereum-rlp
-  - euphoria
-  - eurofxref
-  - evdev
-  - evdev-streamly
-  - eve-cli
-  - event
-  - event-driven
-  - event-monad
-  - eventful-dynamodb
-  - eventful-postgresql
-  - eventful-sql-common
-  - eventful-sqlite
-  - eventlog2html
-  - eventloop
-  - EventSocket
-  - eventsource-geteventstore-store
-  - eventstore
-  - every-bit-counts
-  - ewe
-  - exact-cover
-  - exact-real-positional
-  - except-exceptions
-  - exception-monads-fd
-  - exceptional
-  - exceptionfree-readfile
-  - exchangerates
-  - execs
-  - executor
-  - exference
-  - exh
-  - exherbo-cabal
-  - exif
-  - exigo-schema
-  - exinst-deepseq
-  - exinst-hashable
-  - exists
-  - exitcode
-  - exp-extended
-  - expand
-  - expat-enumerator
-  - expiring-containers
-  - explain
-  - explicit-constraint-lens
-  - explicit-determinant
-  - explicit-iomodes
-  - explicit-iomodes-bytestring
-  - explicit-iomodes-text
-  - explicit-sharing
-  - explore
-  - exposed-containers
-  - expression-parser
-  - expressions
-  - expressions-z3
-  - expresso
-  - extcore
-  - extemp
-  - extended-categories
-  - extensible-data
-  - extensible-effects-concurrent
-  - extensible-skeleton
-  - external-sort
-  - Extra
-  - extract-dependencies
-  - extractelf
-  - extralife
-  - ez-couch
-  - ez3
-  - f-algebra-gen
-  - f-ree-hack-cheats-free-v-bucks-generator
-  - Facebook-Password-Hacker-Online-Latest-Version
-  - faceted
-  - factory
-  - Facts
-  - facts
-  - factual-api
-  - fadno
-  - fadno-braids
-  - fadno-xml
-  - failable-list
-  - failure-detector
-  - FailureT
-  - fake
-  - fake-type
-  - faktory
-  - falling-turnip
-  - fallingblocks
-  - family-tree
-  - fast-arithmetic
-  - fast-combinatorics
-  - fast-digits
-  - fast-nats
-  - fasta
-  - fastbayes
-  - fastedit
-  - fastirc
-  - fastly
-  - fastpbkdf2
-  - FastPush
-  - fastsum
-  - FastxPipe
-  - fathead-util
-  - fault-tree
-  - fay-builder
-  - fay-hsx
-  - fay-simplejson
-  - fb-persistent
-  - fbmessenger-api
-  - fbrnch
-  - fca
-  - fcache
-  - fcd
-  - fcf-containers
-  - fcg
-  - fckeditor
-  - fclabels-monadlib
-  - fcm-client
-  - FComp
-  - fdo-trash
-  - feature-flipper
-  - feature-flipper-postgres
-  - fedora-img-dl
-  - fedora-packages
-  - feed-cli
-  - feed-collect
-  - feed-crawl
-  - feed-gipeda
-  - feed-translator
-  - feed2lj
-  - feed2twitter
-  - fei-base
-  - fei-cocoapi
-  - fei-dataiter
-  - fei-datasets
-  - fei-examples
-  - fei-modelzoo
-  - fei-nn
-  - feldspar-compiler
-  - feldspar-language
-  - fenfire
-  - FermatsLastMargin
-  - fernet
-  - FerryCore
-  - festung
-  - Feval
-  - fez-conf
-  - ffeed
-  - fficxx
-  - ffmpeg-tutorials
-  - ffunctor
-  - fgl-extras-decompositions
-  - fibon
-  - ficketed
-  - fields
-  - FieldTrip
-  - fieldwise
-  - fig
-  - file-collection
-  - file-command-qq
-  - file-embed-poly
-  - file-location
-  - filecache
-  - filediff
-  - FileManip
-  - FileManipCompat
-  - fileneglect
-  - filepath-crypto
-  - filepath-io-access
-  - FilePather
-  - filepather
-  - fileplow
-  - Files
-  - FileSystem
-  - filesystem-abstractions
-  - filesystem-conduit
-  - filesystem-enumerator
-  - filesystem-trees
-  - fillit
-  - Fin
-  - final-pretty-printer
-  - Finance-Quote-Yahoo
-  - Finance-Treasury
-  - find-clumpiness
-  - find-conduit
-  - find-source-files
-  - findhttp
-  - fingertree-psqueue
-  - fingertree-tf
-  - finitary-derive
-  - FiniteMap
-  - firefly-example
-  - first-and-last
-  - first-class-instances
-  - firstify
-  - FirstOrderTheory
-  - fishfood
-  - fit
-  - fits-parse
-  - fitsio
-  - fix-imports
-  - fix-parser-simple
-  - fix-symbols-gitit
-  - fixed-point
-  - fixed-point-vector
-  - fixed-point-vector-space
-  - fixed-precision
-  - fixed-storable-array
-  - fixed-timestep
-  - fixed-vector-binary
-  - fixed-vector-cborg
-  - fixed-vector-cereal
-  - fixed-width
-  - fixer
-  - fixfile
-  - fixhs
-  - fixie
-  - fizzbuzz
-  - fizzbuzz-as-a-service
-  - flac
-  - flac-picture
-  - flaccuraterip
-  - flamethrower
-  - flamingra
-  - flashblast
-  - flat-maybe
-  - flatbuffers
-  - flay
-  - flexible-time
-  - flexiwrap
-  - flexiwrap-smallcheck
-  - flickr
-  - flink-statefulfun
-  - Flippi
-  - flite
-  - float-binstring
-  - floating-bits
-  - flow-er
-  - flowdock
-  - flowdock-api
-  - flowdock-rest
-  - flower
-  - flowlocks-framework
-  - flowsim
-  - flp
-  - fltkhs
-  - fltkhs-fluid-examples
-  - fluent-logger
-  - fluffy-parser
-  - fluidsynth
-  - flux-monoid
-  - FM-SBLEX
-  - fmark
-  - FModExRaw
-  - fmt-for-rio
-  - fmt-terminal-colors
-  - fn-extra
-  - foldl-incremental
-  - foldl-statistics
-  - foldl-transduce
-  - foldl-transduce-attoparsec
-  - folds-common
-  - follow
-  - follower
-  - foma
-  - font-opengl-basic4x6
-  - foo
-  - for-free
-  - forbidden-fruit
-  - fordo
-  - forecast-io
-  - foreign-var
-  - forest
-  - forest-fire
-  - Forestry
-  - forex2ledger
-  - forger
-  - ForkableT
-  - formal
-  - FormalGrammars
-  - format
-  - format-status
-  - formatn
-  - formattable
-  - forml
-  - formlets
-  - formlets-hsp
-  - formura
-  - ForSyDe
-  - forsyde-deep
-  - forth-hll
-  - Fortnite-Hack-Cheats-Free-V-Bucks-Generator
-  - fortran-src
-  - fortran-src-extras
-  - fortytwo
-  - foscam-directory
-  - foscam-filename
-  - foscam-sort
-  - Foster
-  - fp-ieee
-  - fpco-api
-  - fplll
-  - fpnla-examples
-  - FPretty
-  - fptest
-  - Fractaler
-  - fractals
-  - fraction
-  - frag
-  - frame-markdown
-  - Frames-beam
-  - Frames-dsv
-  - Frames-map-reduce
-  - franchise
-  - Frank
-  - fraxl
-  - freddy
-  - free-algebras
-  - free-category
-  - free-concurrent
-  - free-game
-  - free-http
-  - free-operational
-  - free-theorems
-  - free-theorems-counterexamples
-  - free-theorems-seq
-  - free-theorems-seq-webui
-  - free-theorems-webui
-  - free-v-bucks-generator-no-survey
-  - free-v-bucks-generator-ps4-no-survey
-  - freekick2
-  - freelude
-  - freer-converse
-  - freer-effects
-  - freer-simple-catching
-  - freer-simple-http
-  - freer-simple-profiling
-  - freer-simple-random
-  - freer-simple-time
-  - freesect
-  - freesound
-  - freetype-simple
-  - FreeTypeGL
-  - freq
-  - fresh
-  - friday-devil
-  - friday-scale-dct
-  - friendly
-  - front
-  - frown
-  - frp-arduino
-  - frpnow
-  - frpnow-gloss
-  - frpnow-gtk
-  - frpnow-gtk3
-  - frpnow-vty
-  - fs-events
-  - fsh-csv
-  - fsmActions
-  - fst
-  - fsutils
-  - fswait
-  - fswatch
-  - ft-generator
-  - ftdi
-  - FTGL-bytestring
-  - ftp-client
-  - ftp-client-conduit
-  - ftp-conduit
-  - ftphs
-  - FTPLine
-  - ftree
-  - ftshell
-  - full-sessions
-  - funbot
-  - funbot-client
-  - funbot-git-hook
-  - funcons-lambda-cbv-mp
-  - funcons-simple
-  - funcons-tools
-  - funcons-values
-  - function-combine
-  - function-instances-algebra
-  - functional-arrow
-  - functor
-  - functor-combinators
-  - functor-combo
-  - functor-friends
-  - functor-infix
-  - functor-products
-  - functor-utils
-  - functorm
-  - funflow
-  - funflow-nix
-  - Fungi
-  - funion
-  - funnyprint
-  - funpat
-  - funsat
-  - funspection
-  - fused-effects-resumable
-  - fused-effects-squeal
-  - fused-effects-th
-  - fusion
-  - futun
-  - future
-  - fuzzy-time-gen
-  - fuzzy-timings
-  - fwgl
-  - fwgl-glfw
-  - fwgl-javascript
-  - fxpak
-  - g-npm
-  - g2
-  - g2q
-  - g4ip
-  - gact
-  - galois-fft
-  - galois-field
-  - game-probability
-  - gameclock
-  - gamgee
-  - Gamgine
-  - gamma
-  - Ganymede
-  - garepinoh
-  - gargoyle-postgresql-connect
-  - gargoyle-postgresql-nix
-  - gas
-  - gather
-  - gbu
-  - gc-monitoring-wai
-  - gconf
-  - gdax
-  - gdiff-ig
-  - gdiff-th
-  - GeBoP
-  - gedcom
-  - geek
-  - geek-server
-  - gegl
-  - gelatin
-  - gelatin-freetype2
-  - gelatin-fruity
-  - gelatin-gl
-  - gelatin-sdl2
-  - gelatin-shaders
-  - gemini-textboard
-  - gemstone
-  - gen-imports
-  - gen-passwd
-  - Genbank
-  - gencheck
-  - gender
-  - genders
-  - Gene-CluEDO
-  - general-prelude
-  - GeneralTicTacToe
-  - generator
-  - generators
-  - generic-accessors
-  - generic-binary
-  - generic-church
-  - generic-enum
-  - generic-enumeration
-  - generic-labels
-  - generic-lens-labels
-  - generic-lucid-scaffold
-  - generic-maybe
-  - generic-override-aeson
-  - generic-pretty
-  - generic-server
-  - generic-storable
-  - generic-tree
-  - generic-trie
-  - generic-xml
-  - generic-xmlpickler
-  - generics-mrsop
-  - generics-mrsop-gdiff
-  - genericserialize
-  - genesis
-  - genesis-test
-  - genetics
-  - GenI
-  - geni-gui
-  - geni-util
-  - geniconvert
-  - geniplate
-  - geniserver
-  - genprog
-  - GenSmsPdu
-  - gentlemark
-  - GenussFold
-  - genvalidity-persistent
-  - geo-resolver
-  - GeocoderOpenCage
-  - geodetic
-  - geodetic-types
-  - geojson-types
-  - geolite-csv
-  - geom2d
-  - GeomPredicates-SSE
-  - geos
-  - Get
-  - getemx
-  - getflag
-  - GGg
-  - ggtsTC
-  - gh-labeler
-  - ghc-clippy-plugin
-  - ghc-core-smallstep
-  - ghc-datasize
-  - ghc-dump-core
-  - ghc-dump-tree
-  - ghc-dump-util
-  - ghc-dup
-  - ghc-events-analyze
-  - ghc-events-parallel
-  - ghc-generic-instances
-  - ghc-imported-from
-  - ghc-instances
-  - ghc-justdoit
-  - ghc-man-completion
-  - ghc-mod
-  - ghc-parmake
-  - ghc-pkg-autofix
-  - ghc-pkg-lib
-  - ghc-plugs-out
-  - ghc-proofs
-  - ghc-session
-  - ghc-simple
-  - ghc-srcspan-plugin
-  - ghc-syb
-  - ghc-syb-utils
-  - ghc-tags-core
-  - ghc-tags-plugin
-  - ghc-time-alloc-prof
-  - ghc-usage
-  - ghc-vis
-  - ghci-dap
-  - ghci-diagrams
-  - ghci-haskeline
-  - ghci-history-parser
-  - ghci-lib
-  - ghci-ng
-  - ghci-pretty
-  - ghcjs-dom-jsffi
-  - ghcjs-fetch
-  - ghcjs-hplay
-  - ghcjs-promise
-  - ghcjs-xhr
-  - ghclive
-  - ghcprofview
-  - ghcup
-  - ght
-  - gi-cairo-again
-  - gi-graphene
-  - gi-gsk
-  - gi-gstaudio
-  - gi-gstpbutils
-  - gi-gsttag
-  - gi-gtkosxapplication
-  - gi-gtksheet
-  - gi-handy
-  - gi-poppler
-  - gi-wnck
-  - giak
-  - Gifcurry
-  - ginsu
-  - gipeda
-  - giphy-api
-  - GiST
-  - gist
-  - git
-  - git-all
-  - git-checklist
-  - git-config
-  - git-cuk
-  - git-date
-  - git-fmt
-  - git-gpush
-  - git-jump
-  - git-monitor
-  - git-object
-  - git-remote-ipfs
-  - git-repair
-  - git-sanity
-  - git-vogue
-  - gitdo
-  - github-backup
-  - github-data
-  - github-tools
-  - github-utils
-  - github-webhook-handler
-  - github-webhook-handler-snap
-  - githud
-  - gitignore
-  - gitlab-api
-  - gitlib
-  - gitlib-cmdline
-  - gitlib-cross
-  - gitlib-libgit2
-  - gitlib-s3
-  - gitlib-sample
-  - gitlib-test
-  - gitlib-utils
-  - gitson
-  - gitter
-  - givegif
-  - glade
-  - gladexml-accessor
-  - glapp
-  - glazier
-  - glazier-pipes
-  - glazier-react
-  - glazier-react-examples
-  - glazier-react-widget
-  - Gleam
-  - GLFW
-  - GLFW-b-demo
-  - GLFW-OGL
-  - GLFW-task
-  - gli
-  - glider-nlp
-  - GLMatrix
-  - glob-posix
-  - global
-  - global-config
-  - global-variables
-  - glome-hs
-  - GlomeTrace
-  - GlomeView
-  - gloss-banana
-  - gloss-devil
-  - gloss-examples
-  - gloss-export
-  - gloss-game
-  - gloss-sodium
-  - glpk-headers
-  - glpk-hs
-  - gltf-codec
-  - glue
-  - gmap
-  - gmndl
-  - gnome-desktop
-  - gnomevfs
-  - gnss-converters
-  - gnuidn
-  - goa
-  - goal-core
-  - goal-geometry
-  - goal-probability
-  - goal-simulation
-  - goatee
-  - goatee-gtk
-  - gochan
-  - godot-haskell
-  - gofer-prelude
-  - goldplate
-  - gooey
-  - google-cloud
-  - google-drive
-  - google-html5-slide
-  - google-mail-filters
-  - google-maps-geocoding
-  - google-oauth2
-  - google-oauth2-easy
-  - google-oauth2-jwt
-  - google-search
-  - google-server-api
-  - google-static-maps
-  - google-translate
-  - GoogleCodeJam
-  - GoogleDirections
-  - googleplus
-  - googlepolyline
-  - GoogleSB
-  - GoogleTranslate
-  - gopherbot
-  - gopro-plus
-  - gore-and-ash
-  - gore-and-ash-actor
-  - gore-and-ash-async
-  - gore-and-ash-demo
-  - gore-and-ash-glfw
-  - gore-and-ash-lambdacube
-  - gore-and-ash-logging
-  - gore-and-ash-network
-  - gore-and-ash-sdl
-  - gore-and-ash-sync
-  - GotoT-transformers
-  - gpah
-  - GPipe
-  - GPipe-Collada
-  - GPipe-Examples
-  - GPipe-GLFW
-  - GPipe-TextureLoad
-  - gps
-  - gps2htmlReport
-  - GPX
-  - gpx-conduit
-  - grab
-  - grab-form
-  - graceful
-  - grafana
-  - graflog
-  - Grafos
-  - grakn
-  - grammar-combinators
-  - GrammarProducts
-  - grammatical-parsers
-  - grapefruit-examples
-  - grapefruit-frp
-  - grapefruit-records
-  - grapefruit-ui
-  - grapefruit-ui-gtk
-  - graph-core
-  - graph-matchings
-  - graph-rewriting
-  - graph-rewriting-cl
-  - graph-rewriting-gl
-  - graph-rewriting-lambdascope
-  - graph-rewriting-layout
-  - graph-rewriting-ski
-  - graph-rewriting-strategies
-  - graph-rewriting-trs
-  - graph-rewriting-ww
-  - graph-serialize
-  - graph-utils
-  - graph-visit
-  - Graph500
-  - graphbuilder
-  - graphene
-  - GraphHammer
-  - GraphHammer-examples
-  - graphics-drawingcombinators
-  - graphics-formats-collada
-  - graphicsFormats
-  - graphicstools
-  - graphmod-plugin
-  - graphql
-  - graphql-api
-  - graphql-client
-  - graphql-utils
-  - graphql-w-persistent
-  - graphted
-  - graphtype
-  - graphula
-  - graphula-core
-  - graql
-  - grasp
-  - gray-code
-  - greencard
-  - greencard-lib
-  - greg-client
-  - gremlin-haskell
-  - Grempa
-  - grenade
-  - grid-proto
-  - gridbounds
-  - gridland
-  - grm
-  - groot
-  - gross
-  - GroteTrap
-  - groundhog-converters
-  - groundhog-mysql
-  - group-theory
-  - group-with
-  - grouped-list
-  - groups-generic
-  - growler
-  - GrowlNotify
-  - grpc-api-etcd
-  - grpc-etcd-client
-  - grpc-haskell
-  - grpc-haskell-core
-  - gruff
-  - gruff-examples
-  - gscholar-rss
-  - gsl-random
-  - gsl-random-fu
-  - gstorable
-  - gstreamer
-  - GTALib
-  - gtfs
-  - gtfs-realtime
-  - gtk-serialized-event
-  - gtk-toy
-  - gtk2hs-hello
-  - gtk2hs-rpn
-  - Gtk2hsGenerics
-  - gtk3-mac-integration
-  - gtkglext
-  - GtkGLTV
-  - gtkimageview
-  - gtkrsync
-  - gtksourceview2
-  - gtksourceview3
-  - GtkTV
-  - guarded-rewriting
-  - guess-combinator
-  - GuiHaskell
-  - GuiTV
-  - gulcii
-  - gw
-  - gyah-bin
-  - gym-http-api
-  - h-booru
-  - h-gpgme
-  - h-reversi
-  - h2048
-  - h2c
-  - haar
-  - habit
-  - hablo
-  - hablog
-  - HABQT
-  - Hach
-  - hack-contrib
-  - hack-contrib-press
-  - hack-frontend-happstack
-  - hack-handler-cgi
-  - hack-handler-epoll
-  - hack-handler-evhttp
-  - hack-handler-fastcgi
-  - hack-handler-happstack
-  - hack-handler-hyena
-  - hack-handler-kibro
-  - hack-handler-simpleserver
-  - hack-middleware-cleanpath
-  - hack-middleware-clientsession
-  - hack-middleware-jsonp
-  - hack2-handler-happstack-server
-  - hack2-handler-mongrel2-http
-  - hack2-handler-snap-server
-  - hack2-handler-warp
-  - hackage-api
-  - hackage-diff
-  - hackage-mirror
-  - hackage-processing
-  - hackage-proxy
-  - hackage-repo-tool
-  - hackage-server
-  - hackage-whatsnew
-  - hackage2hwn
-  - hackage2twitter
-  - hackager
-  - hackernews
-  - HackMail
-  - hackmanager
-  - hackport
-  - hactor
-  - hactors
-  - haddock
-  - haddock-api
-  - haddock-cheatsheet
-  - haddock-leksah
-  - haddock-test
-  - haddocset
-  - hadoop-formats
-  - hadoop-rpc
-  - hadoop-tools
-  - hafar
-  - haggis
-  - Haggressive
-  - hahp
-  - haiji
-  - hailgun-send
-  - hails-bin
-  - hairy
-  - hakaru
-  - hakismet
-  - hakka
-  - hako
-  - hakyll
-  - hakyll-agda
-  - hakyll-alectryon
-  - hakyll-blaze-templates
-  - hakyll-contrib
-  - hakyll-contrib-csv
-  - hakyll-contrib-elm
-  - hakyll-contrib-hyphenation
-  - hakyll-contrib-links
-  - hakyll-dhall
-  - hakyll-dir-list
-  - hakyll-elm
-  - hakyll-favicon
-  - hakyll-filestore
-  - hakyll-images
-  - hakyll-ogmarkup
-  - hakyll-process
-  - hakyll-R
-  - hakyll-sass
-  - hakyll-series
-  - hakyll-shakespeare
-  - hakyll-shortcode
-  - hakyll-shortcut-links
-  - hakyll-typescript
-  - hal
-  - halberd
-  - HaLeX
-  - halfs
-  - halipeto
-  - halive
-  - hall-symbols
-  - halma
-  - halma-gui
-  - halma-telegram-bot
-  - halves
-  - ham
-  - HaMinitel
-  - hampp
-  - hamsql
-  - hamtmap
-  - hamusic
-  - hanabi-dealer
-  - handa-gdata
-  - handle-like
-  - HandlerSocketClient
-  - handsy
-  - Hangman
-  - hannahci
-  - hans
-  - hans-pcap
-  - hanspell
-  - haphviz
-  - happindicator
-  - happindicator3
-  - happlets
-  - happlets-lib-gtk
-  - happraise
-  - HAppS-Data
-  - happs-hsp
-  - happs-hsp-template
-  - HAppS-IxSet
-  - HAppS-Server
-  - HAppS-State
-  - happs-tutorial
-  - HAppS-Util
-  - happstack
-  - happstack-auth
-  - happstack-authenticate
-  - happstack-contrib
-  - happstack-data
-  - happstack-dlg
-  - happstack-facebook
-  - happstack-fay
-  - happstack-fay-ajax
-  - happstack-foundation
-  - happstack-hamlet
-  - happstack-heist
-  - happstack-helpers
-  - happstack-hstringtemplate
-  - happstack-ixset
-  - happstack-jmacro
-  - happstack-lite
-  - happstack-monad-peel
-  - happstack-plugins
-  - happstack-server-tls-cryptonite
-  - happstack-state
-  - happstack-util
-  - happstack-yui
-  - happy-hour
-  - happybara
-  - happybara-webkit
-  - happybara-webkit-server
-  - HappyTree
-  - hapstone
-  - HaPy
-  - haquery
-  - haquil
-  - harchive
-  - hArduino
-  - hardware-edsl
-  - HaRe
-  - harg
-  - hark
-  - harmony
-  - HarmTrace
-  - haroonga
-  - haroonga-httpd
-  - harpy
-  - harvest-api
-  - has
-  - has-th
-  - hasbolt
-  - hasbolt-extras
-  - HasCacBDD
-  - hascard
-  - hascas
-  - Haschoo
-  - HasGP
-  - hash
-  - hashable-extras
-  - hashable-generics
-  - hashable-orphans
-  - hashabler
-  - hashed-storage
-  - Hashell
-  - hashflare
-  - hashring
-  - hashtables-plus
-  - hasim
-  - hask
-  - hask-home
-  - haskarrow
-  - haskbot-core
-  - haskdeep
-  - haskeem
-  - haskeline-class
-  - haskelisp
-  - haskell-abci
-  - haskell-aliyun
-  - haskell-awk
-  - haskell-bitmex-client
-  - haskell-bitmex-rest
-  - haskell-brainfuck
-  - haskell-ci
-  - haskell-cnc
-  - haskell-coffee
-  - haskell-compression
-  - haskell-conll
-  - haskell-course-preludes
-  - haskell-debug-adapter
-  - haskell-disque
-  - haskell-docs
-  - haskell-eigen-util
-  - haskell-formatter
-  - haskell-ftp
-  - haskell-generate
-  - haskell-go-checkers
-  - haskell-holes-th
-  - haskell-igraph
-  - haskell-in-space
-  - haskell-kubernetes
-  - haskell-lsp-client
-  - haskell-ml
-  - haskell-mpfr
-  - haskell-mpi
-  - haskell-names
-  - haskell-neo4j-client
-  - haskell-openflow
-  - haskell-overridez
-  - haskell-packages
-  - haskell-pdf-presenter
-  - haskell-platform-test
-  - haskell-player
-  - haskell-plot
-  - haskell-postal
-  - haskell-read-editor
-  - haskell-reflect
-  - haskell-rules
-  - haskell-spacegoo
-  - haskell-src-exts-observe
-  - haskell-src-exts-prisms
-  - haskell-src-exts-qq
-  - haskell-src-exts-sc
-  - haskell-src-match
-  - haskell-src-meta-mwotton
-  - haskell-stack-trace-plugin
-  - haskell-token-utils
-  - haskell-tools-ast
-  - haskell-tools-ast-fromghc
-  - haskell-tools-ast-gen
-  - haskell-tools-ast-trf
-  - haskell-tools-backend-ghc
-  - haskell-tools-builtin-refactorings
-  - haskell-tools-cli
-  - haskell-tools-daemon
-  - haskell-tools-debug
-  - haskell-tools-demo
-  - haskell-tools-experimental-refactorings
-  - haskell-tools-prettyprint
-  - haskell-tools-refactor
-  - haskell-tools-rewrite
-  - haskell-tor
-  - haskell-type-exts
-  - haskell-typescript
-  - haskell-tyrant
-  - haskell2010
-  - haskell2020
-  - haskell98
-  - haskell98libraries
-  - HaskellAnalysisProgram
-  - haskelldb
-  - haskelldb-connect-hdbc
-  - haskelldb-connect-hdbc-catchio-mtl
-  - haskelldb-connect-hdbc-catchio-tf
-  - haskelldb-connect-hdbc-catchio-transformers
-  - haskelldb-connect-hdbc-lifted
-  - haskelldb-dynamic
-  - haskelldb-flat
-  - haskelldb-hdbc
-  - haskelldb-hdbc-mysql
-  - haskelldb-hdbc-odbc
-  - haskelldb-hdbc-postgresql
-  - haskelldb-hdbc-sqlite3
-  - haskelldb-hsql
-  - haskelldb-hsql-mysql
-  - haskelldb-hsql-odbc
-  - haskelldb-hsql-postgresql
-  - haskelldb-hsql-sqlite3
-  - haskelldb-th
-  - haskelldb-wx
-  - haskellish
-  - HaskellLM
-  - HaskellNet
-  - HaskellNet-SSL
-  - HaskellNN
-  - Haskelloids
-  - haskellscrabble
-  - haskellscript
-  - HaskellTorrent
-  - HaskellTutorials
-  - haskelm
-  - haskelzinc
-  - haskeme
-  - haskey
-  - haskey-mtl
-  - haskgame
-  - haskheap
-  - haskhol-core
-  - haskmon
-  - haskoin
-  - haskoin-bitcoind
-  - haskoin-core
-  - haskoin-crypto
-  - haskoin-node
-  - haskoin-protocol
-  - haskoin-script
-  - haskoin-store
-  - haskoin-store-data
-  - haskoin-util
-  - haskoin-wallet
-  - haskoon
-  - haskoon-httpspec
-  - haskoon-salvia
-  - haskore
-  - haskore-realtime
-  - haskore-supercollider
-  - haskore-synthesizer
-  - HaskRel
-  - hasktorch
-  - hasktorch-codegen
-  - hasktorch-ffi-th
-  - hasktorch-ffi-thc
-  - hasktorch-indef
-  - hasktorch-signatures
-  - hasktorch-signatures-partial
-  - hasktorch-signatures-support
-  - hasktorch-zoo
-  - haskus-binary
-  - haskus-system-build
-  - haskus-utils
-  - haskus-utils-compat
-  - haskus-utils-data
-  - haskus-utils-types
-  - haskus-utils-variant
-  - haskus-web
-  - haskyapi
-  - haslo
-  - hasloGUI
-  - hasmin
-  - hasparql-client
-  - hasql-backend
-  - hasql-class
-  - hasql-cursor-query
-  - hasql-cursor-transaction
-  - hasql-dynamic-statements
-  - hasql-generic
-  - hasql-postgres
-  - hasql-postgres-options
-  - hasql-queue
-  - hasql-simple
-  - hasql-th
-  - hasql-url
-  - hastache
-  - hastache-aeson
-  - haste
-  - haste-app
-  - haste-lib
-  - haste-markup
-  - haste-prim
-  - Hate
-  - hatex-guide
-  - HaTeX-meta
-  - HaTeX-qq
-  - hats
-  - hatt
-  - haven
-  - haverer
-  - HaVSA
-  - hawitter
-  - Hawk
-  - hax
-  - haxl-amazonka
-  - haxl-facebook
-  - haxparse
-  - haxr-th
-  - haxy
-  - hayland
-  - Hayoo
-  - hayoo-cli
-  - hback
-  - hbayes
-  - hbb
-  - hbcd
-  - hBDD-CMUBDD
-  - hBDD-CUDD
-  - hbeanstalk
-  - hbeat
-  - hbf
-  - hblas
-  - hblock
-  - hburg
-  - hcad
-  - HCard
-  - hcc
-  - hcg-minus
-  - hcg-minus-cairo
-  - hcheat
-  - hcheckers
-  - hchesslib
-  - HCL
-  - hcltest
-  - hCM
-  - hcoap
-  - hcom
-  - hcount
-  - hcron
-  - hCsound
-  - hcube
-  - hdaemonize-buildfix
-  - hdbc-aeson
-  - HDBC-mysql
-  - HDBC-postgresql-hstore
-  - hdbc-postgresql-hstore
-  - hdbi
-  - hdbi-conduit
-  - hdbi-postgresql
-  - hdbi-sqlite
-  - hdbi-tests
-  - hdevtools
-  - hdf
-  - hDFA
-  - hdiff
-  - hdigest
-  - hdirect
-  - hdis86
-  - hdiscount
-  - hdm
-  - hdo
-  - hdocs
-  - hdph
-  - hdph-closure
-  - hdr-histogram
-  - HDRUtils
-  - headergen
-  - heap-console
-  - heapsort
-  - heart-app
-  - heart-core
-  - heartbeat-streams
-  - heatitup
-  - heatitup-complete
-  - heavy-log-shortcuts
-  - heavy-logger
-  - heavy-logger-amazon
-  - heavy-logger-instances
-  - hebrew-time
-  - hecc
-  - heckle
-  - hedgehog-checkers
-  - hedgehog-checkers-lens
-  - hedgehog-fakedata
-  - hedgehog-gen-json
-  - hedgehog-generic
-  - hedgehog-golden
-  - hedgehog-servant
-  - Hedi
-  - hedis-config
-  - hedis-namespace
-  - hedis-pile
-  - hedis-simple
-  - hedis-tags
-  - hedn-functor
-  - hedra
-  - heidi
-  - hein
-  - heist-aeson
-  - heist-async
-  - helics
-  - helics-wai
-  - helisp
-  - helium
-  - helix
-  - hell
-  - hellage
-  - hellnet
-  - help-esb
-  - hemkay
-  - hemokit
-  - hen
-  - henet
-  - hepevt
-  - her-lexer
-  - her-lexer-parsec
-  - HERA
-  - herbalizer
-  - HerbiePlugin
-  - heredocs
-  - Hermes
-  - hermit
-  - hermit-syb
-  - herms
-  - herringbone
-  - herringbone-embed
-  - herringbone-wai
-  - hesh
-  - hesql
-  - hetero-dict
-  - heterogeneous-list-literals
-  - heterolist
-  - hetris
-  - heukarya
-  - hevm
-  - hevolisa
-  - hevolisa-dph
-  - hex-text
-  - HExcel
-  - hexchat
-  - hexif
-  - hexmino
-  - hexml-lens
-  - hexpat-iteratee
-  - hexpat-pickle-generic
-  - hexpr
-  - hexpress
-  - hexquote
-  - hexstring
-  - hext
-  - hextream
-  - heyefi
-  - heyting-algebras
-  - hF2
-  - hfann
-  - hfd
-  - hfiar
-  - HFitUI
-  - hfmt
-  - hfoil
-  - hfov
-  - hfractal
-  - HFrequencyQueue
-  - hfusion
-  - hg-buildpackage
-  - hgalib
-  - hgdbmi
-  - HGE2D
-  - hgearman
-  - hGelf
-  - hgen
-  - hgeometric
-  - hgeometry-ipe
-  - hgeometry-svg
-  - hgeos
-  - hgettext
-  - hgis
-  - hgithub
-  - hgmp
-  - hgom
-  - hgopher
-  - HGraphStorage
-  - hgrep
-  - hgrib
-  - hharp
-  - HHDL
-  - hhp
-  - hhwloc
-  - hi
-  - hi3status
-  - hiccup
-  - hichi
-  - hid-examples
-  - hidden-char
-  - hie-core
-  - hieraclus
-  - hierarchical-clustering-diagrams
-  - hierarchical-exceptions
-  - hierarchical-spectral-clustering
-  - hierarchy
-  - hiernotify
-  - Hieroglyph
-  - higgledy
-  - HiggsSet
-  - higherorder
-  - highjson
-  - highjson-swagger
-  - highjson-th
-  - highlight-versions
-  - highWaterMark
-  - himg
-  - himpy
-  - hindent
-  - hindley-milner
-  - hinduce-classifier
-  - hinduce-classifier-decisiontree
-  - hinduce-examples
-  - hinquire
-  - hinstaller
-  - hint-server
-  - hinter
-  - hinterface
-  - hinvaders
-  - hinze-streams
-  - hip
-  - hipbot
-  - hipchat-hs
-  - hipe
-  - Hipmunk-Utils
-  - hircules
-  - hirt
-  - Hish
-  - hissmetrics
-  - hist-pl
-  - hist-pl-dawg
-  - hist-pl-fusion
-  - hist-pl-lexicon
-  - hist-pl-lmf
-  - hist-pl-types
-  - historian
-  - hit
-  - hit-graph
-  - hit-on
-  - HJavaScript
-  - hjcase
-  - hjs
-  - HJScript
-  - hjson-query
-  - hjsonpointer
-  - hjsonschema
-  - hjugement-cli
-  - HJVM
-  - hkd-delta
-  - hkd-lens
-  - hkt
-  - hlbfgsb
-  - hlcm
-  - HLearn-algebra
-  - HLearn-approximation
-  - HLearn-classification
-  - HLearn-datastructures
-  - HLearn-distributions
-  - hledger-api
-  - hledger-chart
-  - hledger-irr
-  - hledger-vty
-  - hlibBladeRF
-  - hlibev
-  - hlibfam
-  - HList
-  - hlivy
-  - HLogger
-  - hlogger
-  - hlongurl
-  - hlrdb
-  - hlrdb-core
-  - hls
-  - hls-exactprint-utils
-  - hlwm
-  - hly
-  - hmark
-  - hmarkup
-  - hmatrix-banded
-  - hmatrix-mmap
-  - hmatrix-nipals
-  - hmatrix-sparse
-  - hmatrix-static
-  - hmatrix-sundials
-  - hmatrix-svdlibc
-  - hmatrix-syntax
-  - hmatrix-tests
-  - hmeap
-  - hmeap-utils
-  - hmenu
-  - hmep
-  - hmk
-  - HMM
-  - hmm
-  - hmm-hmatrix
-  - hmm-lapack
-  - hMollom
-  - hmp3
-  - Hmpf
-  - hmt
-  - hmt-diagrams
-  - hmumps
-  - hnetcdf
-  - HNM
-  - hnormalise
-  - ho-rewriting
-  - hoauth
-  - hob
-  - hobbes
-  - hobbits
-  - hocilib
-  - hocker
-  - hodatime
-  - HODE
-  - hoe
-  - Hoed
-  - hOff-display
-  - hog
-  - hogg
-  - hoggl
-  - hogre
-  - hogre-examples
-  - hois
-  - hol
-  - hold-em
-  - hole
-  - holmes
-  - Holumbus-Searchengine
-  - holy-project
-  - homeomorphic
-  - hommage
-  - homoiconic
-  - homplexity
-  - HongoDB
-  - honi
-  - hoobuddy
-  - hood
-  - hood-off
-  - hood2
-  - hoodie
-  - hoodle
-  - hoodle-builder
-  - hoodle-core
-  - hoodle-extra
-  - hoodle-parser
-  - hoodle-publish
-  - hoodle-render
-  - hoodle-types
-  - hoogle-index
-  - hooks-dir
-  - hoop
-  - hoopl
-  - hoovie
-  - hopencc
-  - hopencl
-  - HOpenCV
-  - hopfield
-  - hops
-  - hoq
-  - horizon
-  - horname
-  - hosc-json
-  - hosts-server
-  - hothasktags
-  - hotswap
-  - hourglass-fuzzy-parsing
-  - houseman
-  - hp2any-core
-  - hp2any-graph
-  - hp2any-manager
-  - hpack-convert
-  - hpack-dhall
-  - hpaco
-  - hpaco-lib
-  - hpage
-  - hpapi
-  - hpaste
-  - hpasteit
-  - HPath
-  - hpc-coveralls
-  - hpc-tracer
-  - hPDB
-  - hPDB-examples
-  - HPDF
-  - hpg
-  - HPi
-  - hpio
-  - hplaylist
-  - HPlot
-  - hpodder
-  - HPong
-  - hpqtypes
-  - hpqtypes-extras
-  - hprotoc
-  - hprotoc-fork
-  - hps
-  - hps-cairo
-  - hps-kmeans
-  - hPushover
-  - hpygments
-  - hpylos
-  - hpyrg
-  - hpython
-  - hquantlib
-  - hquantlib-time
-  - hR
-  - hranker
-  - HRay
-  - hreader
-  - hreader-lens
-  - hreq-client
-  - hreq-conduit
-  - hreq-core
-  - Hricket
-  - hricket
-  - hriemann
-  - HROOT
-  - HROOT-core
-  - HROOT-graf
-  - HROOT-hist
-  - HROOT-io
-  - HROOT-math
-  - HROOT-tree
-  - hs-blake2
-  - hs-brotli
-  - hs-carbon-examples
-  - hs-cdb
-  - hs-conllu
-  - hs-di
-  - hs-dotnet
-  - hs-excelx
-  - hs-ffmpeg
-  - hs-fltk
-  - hs-gen-iface
-  - hs-gizapp
-  - hs-inspector
-  - hs-java
-  - hs-json-rpc
-  - hs-logo
-  - hs-nombre-generator
-  - hs-pattrans
-  - hs-pgms
-  - hs-pkg-config
-  - hs-pkpass
-  - hs-re
-  - hs-rqlite
-  - hs-rs-notify
-  - hs-scrape
-  - hs-snowtify
-  - hs-speedscope
-  - hs-tags
-  - hs-twitter
-  - hs-twitterarchiver
-  - hs-vcard
-  - hs-watchman
-  - hs2bf
-  - Hs2lib
-  - hs2ps
-  - hsaml2
-  - hsautogui
-  - hsay
-  - hsbackup
-  - hsbc
-  - hsbencher
-  - hsbencher-codespeed
-  - hsbencher-fusion
-  - hsc3
-  - hsc3-auditor
-  - hsc3-cairo
-  - hsc3-data
-  - hsc3-db
-  - hsc3-dot
-  - hsc3-forth
-  - hsc3-graphs
-  - hsc3-lang
-  - hsc3-lisp
-  - hsc3-plot
-  - hsc3-process
-  - hsc3-rec
-  - hsc3-rw
-  - hsc3-server
-  - hsc3-sf
-  - hsc3-sf-hsndfile
-  - hsc3-unsafe
-  - hsc3-utils
-  - hscaffold
-  - hscamwire
-  - hscassandra
-  - hscd
-  - hsclock
-  - hscope
-  - hScraper
-  - hscuid
-  - hsdev
-  - hsdif
-  - hsdip
-  - hsdns-cache
-  - Hsed
-  - hsendxmpp
-  - hsenv
-  - HSet
-  - hset
-  - hsfacter
-  - hsfcsh
-  - HSFFIG
-  - hsfilt
-  - hsforce
-  - HSGEP
-  - hsgnutls
-  - hsgnutls-yj
-  - hsgsom
-  - HsHaruPDF
-  - HSHHelpers
-  - HsHTSLib
-  - HsHyperEstraier
-  - hsI2C
-  - hSimpleDB
-  - hsimport
-  - hsinspect
-  - hsinspect-lsp
-  - HsJudy
-  - hskeleton
-  - hslackbuilder
-  - hslibsvm
-  - hslinks
-  - hslogger-reader
-  - hslogger-template
-  - hslogstash
-  - hsluv-haskell
-  - hsmagick
-  - HSmarty
-  - hsmodetweaks
-  - Hsmtlib
-  - hsmtpclient
-  - hsnock
-  - hsns
-  - hsnsq
-  - hsntp
-  - hsoptions
-  - HSoundFile
-  - hsoz
-  - hsp-cgi
-  - hsparql
-  - HsParrot
-  - hspear
-  - hspec-expectations-json
-  - hspec-expectations-match
-  - hspec-expectations-pretty
-  - hspec-experimental
-  - hspec-hashable
-  - hspec-jenkins
-  - hspec-monad-control
-  - hspec-pg-transact
-  - hspec-setup
-  - hspec-shouldbe
-  - hspec-snap
-  - hspec-structured-formatter
-  - hspec-test-sandbox
-  - hspec-webdriver
-  - hspec2
-  - hspecVariant
-  - HsPerl5
-  - hspkcs11
-  - hspread
-  - hspresent
-  - hsprocess
-  - hsql
-  - hsql-mysql
-  - hsql-odbc
-  - hsql-postgresql
-  - hsql-sqlite3
-  - hsreadability
-  - hsrelp
-  - hsseccomp
-  - hsSqlite3
-  - hssqlppp
-  - hssqlppp-th
-  - HsSVN
-  - hstar
-  - hstats
-  - hstatsd
-  - hstest
-  - hstidy
-  - hstox
-  - hstradeking
-  - HStringTemplateHelpers
-  - hstyle
-  - hstzaar
-  - hsubconvert
-  - hsudoku
-  - HsWebots
-  - hswip
-  - hsx
-  - hsx-jmacro
-  - hsx-xhtml
-  - hsXenCtrl
-  - hsyscall
-  - hsyslog-tcp
-  - hszephyr
-  - HTab
-  - htags
-  - hTalos
-  - htar
-  - htdp-image
-  - hTensor
-  - htestu
-  - HTF
-  - HTicTacToe
-  - htiled
-  - htlset
-  - html-charset
-  - html-kure
-  - html-rules
-  - html-tokenizer
-  - hts
-  - htsn
-  - htsn-import
-  - htssets
-  - http-attoparsec
-  - http-client-auth
-  - http-client-lens
-  - http-client-request-modifiers
-  - http-client-session
-  - http-client-streams
-  - http-client-websockets
-  - http-conduit-browser
-  - http-conduit-downloader
-  - http-directory
-  - http-dispatch
-  - http-enumerator
-  - http-grammar
-  - http-io-streams
-  - http-kinder
-  - http-listen
-  - http-monad
-  - http-pony
-  - http-pony-serve-wai
-  - http-proxy
-  - http-querystring
-  - http-response-decoder
-  - http-rfc7807
-  - http-server
-  - http-shed
-  - http-wget
-  - http2-client-grpc
-  - http2-grpc-proto-lens
-  - http2-grpc-proto3-wire
-  - https-everywhere-rules
-  - https-everywhere-rules-raw
-  - httpspec
-  - htune
-  - htvm
-  - htzaar
-  - huck
-  - HueAPI
-  - huff
-  - huffman
-  - hugs2yc
-  - hulk
-  - HulkImport
-  - human-parse
-  - human-text
-  - humble-prelude
-  - hums
-  - hunch
-  - HUnit-Diff
-  - hunit-gui
-  - hunit-rematch
-  - hunp
-  - hunspell-hs
-  - hunt-searchengine
-  - hunt-server
-  - hup
-  - hurdle
-  - hurl
-  - hurriyet
-  - husk-scheme
-  - husk-scheme-libs
-  - husky
-  - hutton
-  - huttons-razor
-  - huzzy
-  - hVOIDP
-  - hw-all
-  - hw-aws-sqs-conduit
-  - hw-ci-assist
-  - hw-dsv
-  - hw-json
-  - hw-json-lens
-  - hw-json-simd
-  - hw-json-simple-cursor
-  - hw-json-standard-cursor
-  - hw-kafka-avro
-  - hw-prim-bits
-  - hw-simd
-  - hw-simd-cli
-  - hw-uri
-  - hwall-auth-iitk
-  - hweblib
-  - hwhile
-  - hworker
-  - hworker-ses
-  - hwormhole
-  - hws
-  - hwsl2
-  - hwsl2-bytevector
-  - hwsl2-reducers
-  - hx
-  - HXMPP
-  - hxmppc
-  - hxournal
-  - HXQ
-  - hxt-pickle-utils
-  - hxthelper
-  - hxweb
-  - hyahtzee
-  - hyakko
-  - hybrid
-  - hydra-hs
-  - hydra-print
-  - Hydrogen
-  - hydrogen
-  - hydrogen-cli
-  - hydrogen-cli-args
-  - hydrogen-data
-  - hydrogen-multimap
-  - hydrogen-parsing
-  - hydrogen-prelude
-  - hydrogen-prelude-parsec
-  - hydrogen-syntax
-  - hydrogen-util
-  - hyena
-  - hylide
-  - hylolib
-  - hylotab
-  - hyloutils
-  - hyper-extra
-  - hyper-haskell-server
-  - hyperdrive
-  - hyperfunctions
-  - hyperion
-  - hyperloglogplus
-  - hyperpublic
-  - hypher
-  - hzk
-  - hzulip
-  - i18n
-  - I1M
-  - i3ipc
-  - iap-verifier
-  - ib-api
-  - iban
-  - ical
-  - ice40-prim
-  - IcoGrid
-  - iconv-typed
-  - ide-backend
-  - ide-backend-common
-  - ide-backend-server
-  - ideas
-  - ideas-math
-  - ideas-math-types
-  - ideas-statistics
-  - idempotent
-  - identifiers
-  - idiii
-  - idna2008
-  - IDynamic
-  - ieee-utils
-  - iexcloud
-  - ifcxt
-  - IFS
-  - ig
-  - ige
-  - ige-mac-integration
-  - ignore
-  - igraph
-  - ihaskell
-  - ihaskell-aeson
-  - ihaskell-basic
-  - ihaskell-blaze
-  - ihaskell-charts
-  - ihaskell-diagrams
-  - ihaskell-display
-  - ihaskell-gnuplot
-  - ihaskell-graphviz
-  - ihaskell-hatex
-  - ihaskell-hvega
-  - ihaskell-inline-r
-  - ihaskell-juicypixels
-  - ihaskell-magic
-  - ihaskell-parsec
-  - ihaskell-plot
-  - ihaskell-rlangqq
-  - ihaskell-widgets
-  - ihttp
-  - illuminate
-  - imagepaste
-  - imap
-  - imapget
-  - imbib
-  - imgur
-  - imgurder
-  - imj-animation
-  - imj-base
-  - imj-game-hamazed
-  - imj-measure-stdout
-  - imj-prelude
-  - imm
-  - immortal-worker
-  - imparse
-  - imperative-edsl
-  - imperative-edsl-vhdl
-  - ImperativeHaskell
-  - impl
-  - implicit-logging
-  - implicit-params
-  - importify
-  - imports
-  - impossible
-  - imprint
-  - improve
-  - INblobs
-  - inch
-  - inchworm
-  - incremental-computing
-  - incremental-maps
-  - increments
-  - indentation
-  - indentation-core
-  - indentation-parsec
-  - indentation-trifecta
-  - indents
-  - index-core
-  - indexation
-  - IndexedList
-  - indextype
-  - indices
-  - indieweb-algorithms
-  - inf-interval
-  - infer-upstream
-  - infernal
-  - infernu
-  - infinity
-  - infix
-  - InfixApplicative
-  - inflist
-  - informative
-  - ini-qq
-  - inilist
-  - initialize
-  - inject-function
-  - inline-asm
-  - inline-java
-  - inserts
-  - inspector-wrecker
-  - instana-haskell-trace-sdk
-  - instance-map
-  - instant-aeson
-  - instant-bytes
-  - instant-deepseq
-  - instant-generics
-  - instant-hashable
-  - instant-zipper
-  - instapaper-sender
-  - instinct
-  - int-multimap
-  - intcode
-  - integer-pure
-  - integreat
-  - intel-aes
-  - intensional-datatys
-  - interlude-l
-  - internetmarke
-  - intero
-  - interpol
-  - interpolatedstring-qq
-  - interpolatedstring-qq-mwotton
-  - interpolatedstring-qq2
-  - interruptible
-  - interval
-  - IntFormats
-  - intricacy
-  - intro-prelude
-  - introduction
-  - introduction-test
-  - intset
-  - invert
-  - invertible-hlist
-  - invertible-syntax
-  - io-capture
-  - io-choice
-  - io-reactive
-  - ioctl
-  - ion
-  - IOR
-  - IORefCAS
-  - iostring
-  - iothread
-  - iotransaction
-  - ip
-  - ip-quoter
-  - ip2location
-  - ip2proxy
-  - ipatch
-  - ipc
-  - ipfs
-  - ipfs-api
-  - ipld-cid
-  - ipopt-hs
-  - ipprint
-  - iptables-helpers
-  - iptadmin
-  - IPv6DB
-  - Irc
-  - irc-dcc
-  - irc-fun-bot
-  - irc-fun-client
-  - irc-fun-color
-  - irc-fun-messages
-  - irc-fun-types
-  - iri
-  - iridium
-  - iron-mq
-  - ironforge
-  - irt
-  - isdicom
-  - isevaluated
-  - ismtp
-  - IsNull
-  - iso8601-duration
-  - isobmff
-  - isobmff-builder
-  - isohunt
-  - isotope
-  - itcli
-  - itemfield
-  - iter-stats
-  - iteratee
-  - iteratee-compress
-  - iteratee-mtl
-  - iteratee-parsec
-  - iteratee-stm
-  - iterIO
-  - iterio-server
-  - iterm-show
-  - iterm-show-diagrams
-  - iterm-show-JuicyPixels
-  - ivor
-  - ivory
-  - ivory-avr-atmega328p-registers
-  - ivory-backend-c
-  - ivory-bitdata
-  - ivory-eval
-  - ivory-examples
-  - ivory-hw
-  - ivory-opts
-  - ivory-quickcheck
-  - ivory-serialize
-  - ivory-stdlib
-  - ivy-web
-  - ixdopp
-  - ixmonad
-  - ixshader
-  - iyql
-  - j
-  - j2hs
-  - jack-bindings
-  - JackMiniMix
-  - jackminimix
-  - jacobi-roots
-  - jaeger-flamegraph
-  - jail
-  - jalla
-  - jarfind
-  - jarify
-  - jason
-  - java-bridge
-  - java-bridge-extras
-  - java-character
-  - java-reflect
-  - javascript-bridge
-  - Javasf
-  - javasf
-  - Javav
-  - javav
-  - jbi
-  - jcdecaux-vls
-  - Jdh
-  - jdi
-  - jenga
-  - jenkinsPlugins2nix
-  - jespresso
-  - jinquantities
-  - jmacro
-  - jmacro-rpc
-  - jmacro-rpc-happstack
-  - jmacro-rpc-snap
-  - jml-web-service
-  - jmonkey
-  - jni
-  - jobqueue
-  - jobs-ui
-  - join
-  - join-api
-  - joinlist
-  - jonathanscard
-  - jot
-  - jpeg
-  - js-good-parts
-  - jsaddle-hello
-  - jsaddle-wkwebview
-  - JsContracts
-  - jsmw
-  - json-alt
-  - json-assertions
-  - json-ast-json-encoder
-  - json-ast-quickcheck
-  - json-autotype
-  - json-b
-  - json-builder
-  - JSON-Combinator
-  - JSON-Combinator-Examples
-  - json-encoder
-  - json-enumerator
-  - json-extra
-  - json-fu
-  - json-incremental-decoder
-  - json-litobj
-  - json-pointer-hasql
-  - json-pointy
-  - json-python
-  - json-query
-  - json-rpc-client
-  - json-schema
-  - json-sop
-  - json-syntax
-  - json-to-haskell
-  - json-togo
-  - json-tokens
-  - json-tools
-  - json-tracer
-  - json2
-  - json2-hdbc
-  - JSONb
-  - jsonextfilter
-  - JsonGrammar
-  - jsonifier
-  - jsonnet
-  - jsonresume
-  - jsonrpc-conduit
-  - jsons-to-schema
-  - jsonschema-gen
-  - jsonsql
-  - jsontsv
-  - jsonxlsx
-  - jspath
-  - juandelacosa
-  - judge
-  - judy
-  - JuicyPixels-blp
-  - JuicyPixels-canvas
-  - JunkDB
-  - JunkDB-driver-gdbm
-  - JunkDB-driver-hashtables
-  - jupyter
-  - JuPyTer-notebook
-  - JustParse
-  - jvm
-  - jvm-batching
-  - jvm-binary
-  - jvm-parser
-  - jvm-streaming
-  - JYU-Utils
-  - kademlia
-  - kafka-client
-  - kafka-client-sync
-  - kafka-device
-  - kafka-device-glut
-  - kafka-device-joystick
-  - kafka-device-leap
-  - kafka-device-spacenav
-  - kafka-device-vrpn
-  - kaleidoscope
-  - Kalman
-  - kalman
-  - kangaroo
-  - kansas-lava
-  - kansas-lava-cores
-  - kansas-lava-papilio
-  - kansas-lava-shake
-  - karakuri
-  - karps
-  - katip-elasticsearch
-  - katip-kafka
-  - katip-raven
-  - katip-rollbar
-  - katip-scalyr-scribe
-  - katip-syslog
-  - katt
-  - katydid
-  - kawaii
-  - kawhi
-  - kd-tree
-  - kdesrc-build-extra
-  - keccak
-  - keera-hails-i18n
-  - keera-hails-mvc-environment-gtk
-  - keera-hails-mvc-model-lightmodel
-  - keera-hails-mvc-model-protectedmodel
-  - keera-hails-mvc-solutions-gtk
-  - keera-hails-reactive-cbmvar
-  - keera-hails-reactive-fs
-  - keera-hails-reactive-gtk
-  - keera-hails-reactive-htmldom
-  - keera-hails-reactive-network
-  - keera-hails-reactive-polling
-  - keera-hails-reactive-wx
-  - keera-hails-reactive-yampa
-  - keera-hails-reactivelenses
-  - keera-hails-reactivevalues
-  - kempe
-  - kerry
-  - Ketchup
-  - keter
-  - kevin
-  - keyed
-  - keyring
-  - keysafe
-  - keystore
-  - keyvaluehash
-  - keyword-args
-  - khph
-  - kicad-data
-  - kickass-torrents-dump-parser
-  - kickchan
-  - kif-parser
-  - kit
-  - kleene
-  - kmeans-par
-  - kmeans-vector
-  - kmonad
-  - kmp-dfa
-  - knead
-  - knead-arithmetic
-  - knit-haskell
-  - knots
-  - koellner-phonetic
-  - kontra-config
-  - korfu
-  - kparams
-  - kqueue
-  - kraken
-  - krapsh
-  - Kriens
-  - krpc
-  - ks-test
-  - KSP
-  - ktx
-  - ktx-codec
-  - kubernetes-client
-  - kubernetes-client-core
-  - kuifje
-  - kure
-  - kure-your-boilerplate
-  - kurita
-  - KyotoCabinet
-  - l-bfgs-b
-  - L-seed
-  - labeled-graph
-  - laborantin-hs
-  - labsat
-  - labyrinth
-  - labyrinth-server
-  - lackey
-  - lagrangian
-  - laika
-  - lambda-bridge
-  - lambda-calculator
-  - lambda-canvas
-  - lambda-devs
-  - lambda-options
-  - lambda-toolbox
-  - lambda2js
-  - lambdaBase
-  - lambdabot-utils
-  - lambdabot-zulip
-  - lambdacms-core
-  - lambdacms-media
-  - lambdacube
-  - lambdacube-bullet
-  - lambdacube-compiler
-  - lambdacube-core
-  - lambdacube-edsl
-  - lambdacube-engine
-  - lambdacube-examples
-  - lambdacube-gl
-  - lambdacube-ir
-  - lambdacube-samples
-  - LambdaDesigner
-  - lambdaFeed
-  - LambdaHack
-  - LambdaINet
-  - Lambdajudge
-  - lambdaLit
-  - LambdaNet
-  - LambdaPrettyQuote
-  - LambdaShell
-  - lambdatex
-  - lambdatwit
-  - Lambdaya
-  - lambdaya-bus
-  - lambdiff
-  - lame
-  - lame-tester
-  - lang
-  - language-asn
-  - language-boogie
-  - language-c-comments
-  - language-c-inline
-  - language-conf
-  - language-csharp
-  - language-dart
-  - language-dickinson
-  - language-dockerfile
-  - language-eiffel
-  - language-elm
-  - language-fortran
-  - language-gcl
-  - language-go
-  - language-guess
-  - language-hcl
-  - language-java-classfile
-  - language-kort
-  - language-lua-qq
-  - language-lua2
-  - language-mixal
-  - language-Modula2
-  - language-ninja
-  - language-oberon
-  - language-objc
-  - language-ocaml
-  - language-openscad
-  - language-pig
-  - language-puppet
-  - language-python-colour
-  - language-qux
-  - language-rust
-  - language-sh
-  - language-spelling
-  - language-sqlite
-  - language-sygus
-  - language-thrift
-  - language-tl
-  - language-typescript
-  - language-vhdl
-  - language-webidl
-  - lapack
-  - lapack-carray
-  - lapack-comfort-array
-  - lapack-ffi
-  - large-hashable
-  - Lastik
-  - lat
-  - latest-npm-version
-  - latex-formulae-hakyll
-  - latex-formulae-image
-  - latex-formulae-pandoc
-  - latex-svg-hakyll
-  - latex-svg-image
-  - latex-svg-pandoc
-  - LATS
-  - launchdarkly-server-sdk
-  - launchpad-control
-  - lawless-concurrent-machines
-  - layered-state
-  - layers
-  - layers-game
-  - layout
-  - layout-bootstrap
-  - layout-rules
-  - layouting
-  - lazy-hash
-  - lazy-hash-cache
-  - lazy-io-streams
-  - lazy-priority-queue
-  - lazy-search
-  - lazyarray
-  - lazyboy
-  - lazyset
-  - LazyVault
-  - ld-intervals
-  - lda
-  - ldapply
-  - LDAPv3
-  - ldif
-  - leaf
-  - leaky
-  - lean
-  - leanpub-wreq
-  - leapseconds
-  - learn
-  - learn-physics-examples
-  - Learning
-  - leb128
-  - leetify
-  - legion
-  - legion-discovery
-  - legion-discovery-client
-  - legion-extra
-  - leksah-server
-  - lendingclub
-  - lens-filesystem
-  - lens-labels
-  - lens-prelude
-  - lens-process
-  - lens-simple
-  - lens-text-encoding
-  - lens-th-rewrite
-  - lens-time
-  - lens-toml-parser
-  - lens-tutorial
-  - lens-typelevel
-  - lens-utils
-  - lensref
-  - lentil
-  - level-monad
-  - Level0
-  - levmar
-  - levmar-chart
-  - lex-applicative
-  - lfst
-  - lgtk
-  - lha
-  - lhae
-  - lhc
-  - lhe
-  - lhs2TeX-hl
-  - lhslatex
-  - libarchive
-  - LibClang
-  - libconfig
-  - libcspm
-  - libexpect
-  - libfuse3
-  - libGenI
-  - libhbb
-  - libinfluxdb
-  - libjenkins
-  - libjwt-typed
-  - liblastfm
-  - liblawless
-  - liblinear-enumerator
-  - libltdl
-  - libmolude
-  - libnix
-  - liboath-hs
-  - liboleg
-  - libpafe
-  - libpq
-  - libraft
-  - librandomorg
-  - librato
-  - libssh2
-  - libssh2-conduit
-  - libsystemd-daemon
-  - libtagc
-  - libxls
-  - libxml-enumerator
-  - libxslt
-  - lie
-  - life-sync
-  - lifetimes
-  - lifted-base-tf
-  - lifted-protolude
-  - lifter
-  - ligature
-  - lightning-haskell
-  - lightstep-haskell
-  - lighttpd-conf
-  - lighttpd-conf-qq
-  - lilypond
-  - Limit
-  - limp-cbc
-  - linda
-  - linden
-  - line-bot-sdk
-  - line-drawing
-  - linear-algebra-cblas
-  - linear-base
-  - linear-circuit
-  - linear-code
-  - linear-maps
-  - linear-opengl
-  - linear-vect
-  - linearmap-category
-  - linearscan
-  - linearscan-hoopl
-  - LinearSplit
-  - lines-of-action
-  - LinkChecker
-  - linkchk
-  - linkcore
-  - linked-list-with-iterator
-  - linkedhashmap
-  - linklater
-  - linnet
-  - linnet-aeson
-  - linnet-conduit
-  - linode
-  - linode-v4
-  - linux-blkid
-  - linux-cgroup
-  - linux-kmod
-  - linux-perf
-  - linux-ptrace
-  - linx-gateway
-  - lio-eci11
-  - lio-simple
-  - lion
-  - lipsum-gen
-  - liquid
-  - liquid-base
-  - liquid-bytestring
-  - liquid-containers
-  - liquid-ghc-prim
-  - liquid-parallel
-  - liquid-platform
-  - liquid-prelude
-  - liquid-vector
-  - liquidhaskell
-  - liquidhaskell-cabal
-  - Liquorice
-  - list-fusion-probe
-  - list-mux
-  - list-prompt
-  - list-remote-forwards
-  - list-t-attoparsec
-  - list-t-html-parser
-  - list-t-http-client
-  - list-t-text
-  - list-witnesses
-  - list-zip-def
-  - list-zipper
-  - listenbrainz-client
-  - listlike-instances
-  - ListT
-  - liszt
-  - lit
-  - literals
-  - LiterateMarkdown
-  - little-logger
-  - live-sequencer
-  - ll-picosat
-  - llsd
-  - llvm
-  - llvm-analysis
-  - llvm-base
-  - llvm-base-types
-  - llvm-base-util
-  - llvm-data-interop
-  - llvm-dsl
-  - llvm-extension
-  - llvm-extra
-  - llvm-ffi
-  - llvm-ffi-tools
-  - llvm-general
-  - llvm-general-pure
-  - llvm-general-quote
-  - llvm-ht
-  - llvm-pkg-config
-  - llvm-pretty
-  - llvm-pretty-bc-parser
-  - llvm-tf
-  - llvm-tools
-  - lmonad
-  - lmonad-yesod
-  - load-balancing
-  - load-font
-  - local-address
-  - local-search
-  - localize
-  - located
-  - located-monad-logger
-  - loch
-  - locked-poll
-  - log
-  - log-postgres
-  - log-utils
-  - log-warper
-  - log2json
-  - log4hs
-  - logentries
-  - logger
-  - logging-effect-extra
-  - logging-effect-extra-file
-  - logging-effect-extra-handler
-  - Logic
-  - logic-classes
-  - LogicGrowsOnTrees
-  - LogicGrowsOnTrees-MPI
-  - LogicGrowsOnTrees-network
-  - LogicGrowsOnTrees-processes
-  - logicst
-  - logict-state
-  - logplex-parse
-  - lojban
-  - lojbanParser
-  - lojbanXiragan
-  - lojysamban
-  - lol
-  - lol-apps
-  - lol-benches
-  - lol-calculus
-  - lol-cpp
-  - lol-repa
-  - lol-tests
-  - lol-typing
-  - loli
-  - longboi
-  - longshot
-  - lookup-tables
-  - loop-effin
-  - loop-while
-  - loopbreaker
-  - looper
-  - loops
-  - loopy
-  - lord
-  - lorem
-  - lorentz
-  - loris
-  - loshadka
-  - lostcities
-  - loup
-  - lowgl
-  - lp-diagrams-svg
-  - LRU
-  - ls-usb
-  - lscabal
-  - lsfrom
-  - LslPlus
-  - lsystem
-  - lti13
-  - ltk
-  - LTS
-  - lua-bc
-  - luachunk
-  - luautils
-  - lucid-colonnade
-  - lucienne
-  - Lucu
-  - luhn
-  - lui
-  - luis-client
-  - luka
-  - luminance
-  - luminance-samples
-  - lushtags
-  - luthor
-  - lvish
-  - lvmlib
-  - lxc
-  - lxd-client
-  - lye
-  - Lykah
-  - lz4-bytes
-  - lz4-conduit
-  - lz4-frame-conduit
-  - lzip
-  - lzma-enumerator
-  - lzma-streams
-  - lzo
-  - maam
-  - mac
-  - macaroon-shop
-  - macbeth-lib
-  - machinecell
-  - machines-amazonka
-  - machines-attoparsec
-  - machines-binary
-  - machines-bytestring
-  - machines-directory
-  - machines-encoding
-  - machines-io
-  - machines-process
-  - machines-zlib
-  - macho
-  - maclight
-  - macos-corelibs
-  - macosx-make-standalone
-  - macrm
-  - madlang
-  - mage
-  - magic-tyfams
-  - magic-wormhole
-  - magicbane
-  - MagicHaskeller
-  - magico
-  - magma
-  - mahoro
-  - maid
-  - mail-pool
-  - mail-reports
-  - mailchimp
-  - mailchimp-subscribe
-  - MailchimpSimple
-  - mailgun
-  - majordomo
-  - majority
-  - make-hard-links
-  - make-monofoldable-foldable
-  - make-package
-  - makedo
-  - makefile
-  - mallard
-  - manatee
-  - manatee-anything
-  - manatee-core
-  - manatee-curl
-  - manatee-editor
-  - manatee-filemanager
-  - manatee-imageviewer
-  - manatee-ircclient
-  - manatee-mplayer
-  - manatee-pdfviewer
-  - manatee-processmanager
-  - manatee-template
-  - manatee-terminal
-  - manatee-welcome
-  - mandrill
-  - mandulia
-  - mangopay
-  - manifold-random
-  - manifolds
-  - Map
-  - map-exts
-  - mapalgebra
-  - Mapping
-  - mappy
-  - marionetta
-  - markdown-kate
-  - markdown-pap
-  - markdown2svg
-  - marked-pretty
-  - markov-processes
-  - markov-realization
-  - markup
-  - marmalade-upload
-  - marquise
-  - mars
-  - marvin
-  - marvin-interpolate
-  - masakazu-bot
-  - MASMGen
-  - massiv-persist
-  - massiv-serialise
-  - master-plan
-  - matchers
-  - math-grads
-  - math-interpolate
-  - math-metric
-  - math-programming
-  - math-programming-glpk
-  - math-programming-tests
-  - mathblog
-  - mathflow
-  - mathlink
-  - matrix-as-xyz
-  - matrix-market
-  - matrix-sized
-  - matsuri
-  - maude
-  - maxent
-  - maxent-learner-hw
-  - maxent-learner-hw-gui
-  - maxsharing
-  - maybench
-  - MaybeT
-  - MaybeT-monads-tf
-  - MaybeT-transformers
-  - MazesOfMonad
-  - MBot
-  - mbox-tools
-  - mbug
-  - MC-Fold-DP
-  - mcl
-  - mcm
-  - mcmaster-gloss-examples
-  - mcmc
-  - mcmc-samplers
-  - mcmc-synthesis
-  - mcpi
-  - mdapi
-  - mdcat
-  - mDNSResponder-client
-  - mdp
-  - mealstrom
-  - mealy
-  - MeanShift
-  - Measure
-  - mecab
-  - mech
-  - Mecha
-  - Mechs
-  - mechs
-  - mediabus
-  - mediabus-fdk-aac
-  - mediabus-rtp
-  - mediawiki
-  - medium-sdk-haskell
-  - mega-sdist
-  - megalisp
-  - mellon-core
-  - mellon-gpio
-  - mellon-web
-  - melody
-  - memcache
-  - memcache-conduit
-  - memcache-haskell
-  - memcached-binary
-  - memis
-  - memo-ptr
-  - memoization-utils
-  - memorypool
-  - menoh
-  - menshen
-  - mergeful-persistent
-  - mergeless-persistent
-  - merkle-patricia-db
-  - merkle-tree
-  - messagepack-rpc
-  - messente
-  - meta-misc
-  - meta-par
-  - meta-par-accelerate
-  - metadata
-  - MetaHDBC
-  - metaheuristics
-  - MetaObject
-  - metaplug
-  - metar
-  - metar-http
-  - metric
-  - Metrics
-  - metricsd-client
-  - metronome
-  - mezzo
-  - mezzolens
-  - MFlow
-  - mgeneric
-  - Mhailist
-  - MHask
-  - mi
-  - Michelangelo
-  - miconix-test
-  - micro-gateway
-  - micro-recursion-schemes
-  - microbase
-  - microformats2-parser
-  - microformats2-types
-  - microgroove
-  - microlens-each
-  - micrologger
-  - microsoft-translator
-  - MicrosoftTranslator
-  - mida
-  - midi-music-box
-  - midi-utils
-  - midimory
-  - midisurface
-  - mighttpd
-  - migrant-core
-  - migrant-hdbc
-  - migrant-postgresql-simple
-  - migrant-sqlite-simple
-  - mikmod
-  - mikrokosmos
-  - miku
-  - milena
-  - mime-directory
-  - minecraft-data
-  - minesweeper
-  - mini-egison
-  - miniforth
-  - minilens
-  - minilight
-  - minilight-lua
-  - minimung
-  - minions
-  - minioperational
-  - miniplex
-  - minirotate
-  - ministg
-  - minizinc-process
-  - minst-idx
-  - mios
-  - MIP
-  - MIP-glpk
-  - mirror-tweet
-  - miso
-  - miso-action-logger
-  - miso-examples
-  - miss
-  - miss-porcelain
-  - missing-py2
-  - MissingPy
-  - mit-3qvpPyAi6mH
-  - mix-arrows
-  - mixed-strategies
-  - mixpanel-client
-  - mkbndl
-  - mkcabal
-  - ml-w
-  - mlist
-  - mm2
-  - mmark
-  - mmark-cli
-  - mmark-ext
-  - mmsyn7h
-  - mmtf
-  - mmtl
-  - mmtl-base
-  - moan
-  - Mobile-Legends-Hack-Cheats
-  - modelicaparser
-  - modify-fasta
-  - modsplit
-  - modular-prelude
-  - modular-prelude-classy
-  - modularity
-  - module-management
-  - modulespection
-  - modulo
-  - Moe
-  - moe
-  - MoeDict
-  - moesocks
-  - mohws
-  - mole
-  - mollie-api-haskell
-  - monad-atom
-  - monad-atom-simple
-  - monad-bayes
-  - monad-branch
-  - monad-exception
-  - monad-fork
-  - monad-http
-  - monad-interleave
-  - monad-levels
-  - monad-lgbt
-  - monad-log
-  - monad-lrs
-  - monad-mersenne-random
-  - monad-metrics-extensible
-  - monad-mock
-  - monad-open
-  - monad-parallel-progressbar
-  - monad-param
-  - monad-persist
-  - monad-ran
-  - monad-recorder
-  - monad-state
-  - monad-statevar
-  - monad-ste
-  - monad-stlike-io
-  - monad-stlike-stm
-  - monad-task
-  - monad-timing
-  - monad-tx
-  - monad-unify
-  - monad-var
-  - monad-wrap
-  - monadacme
-  - MonadCatchIO-mtl
-  - MonadCatchIO-mtl-foreign
-  - MonadCatchIO-transformers
-  - MonadCatchIO-transformers-foreign
-  - MonadCompose
-  - monadic-recursion-schemes
-  - monadiccp
-  - monadiccp-gecode
-  - Monadius
-  - MonadLab
-  - monadLib-compose
-  - monadloc-pp
-  - monadlog
-  - Monadoro
-  - monadplus
-  - monads-fd
-  - MonadStack
-  - monarch
-  - Monaris
-  - Monatron
-  - Monatron-IO
-  - mondo
-  - monetdb-mapi
-  - money
-  - mongoDB
-  - mongodb-queue
-  - mongrel2-handler
-  - monitor
-  - monky
-  - mono-foldable
-  - Monocle
-  - monoid
-  - monoid-absorbing
-  - monoid-owns
-  - monoidplus
-  - monoids
-  - monopati
-  - monte-carlo
-  - months
-  - monus
-  - monzo
-  - moo
-  - morfette
-  - morfeusz
-  - morley
-  - morloc
-  - morpheus-graphql
-  - morpheus-graphql-app
-  - morpheus-graphql-cli
-  - morpheus-graphql-subscriptions
-  - morphisms-functors
-  - morphisms-functors-inventory
-  - morphisms-objects
-  - morte
-  - mosaico-lib
-  - moto-postgresql
-  - motor-diagrams
-  - motor-reflection
-  - mount
-  - movie-monad
-  - mp
-  - mpdmate
-  - mpppc
-  - mprelude
-  - mpretty
-  - mpris
-  - mprover
-  - mps
-  - mptcp-pm
-  - mpvguihs
-  - mqtt
-  - mqtt-hs
-  - mrifk
-  - mrm
-  - ms
-  - msgpack
-  - msgpack-aeson
-  - msgpack-binary
-  - msgpack-idl
-  - msgpack-rpc
-  - msgpack-rpc-conduit
-  - msh
-  - msi-kb-backlit
-  - MSQueue
-  - MTGBuilder
-  - mtgoxapi
-  - mtl-c
-  - mtl-evil-instances
-  - mtl-extras
-  - mtl-tf
-  - mtlx
-  - mtp
-  - mu-avro
-  - mu-graphql
-  - mu-grpc-client
-  - mu-grpc-common
-  - mu-grpc-server
-  - mu-kafka
-  - mu-lens
-  - mu-optics
-  - mu-persistent
-  - mu-prometheus
-  - mu-protobuf
-  - mu-rpc
-  - mu-schema
-  - mu-servant-server
-  - mu-tracing
-  - MuCheck
-  - MuCheck-Hspec
-  - MuCheck-HUnit
-  - MuCheck-QuickCheck
-  - MuCheck-SmallCheck
-  - mud
-  - muesli
-  - mulang
-  - multext-east-msd
-  - multi-cabal
-  - multi-instance
-  - multi-trie
-  - multiaddr
-  - multiarg
-  - multibase
-  - multifocal
-  - multihash
-  - multihash-serialise
-  - multilinear
-  - multilinear-io
-  - multipass
-  - multipath
-  - multiplate-simplified
-  - multiplicity
-  - multipool-persistent-postgresql
-  - multirec
-  - multirec-alt-deriver
-  - multirec-binary
-  - multisetrewrite
-  - multivariant
-  - Munkres-simple
-  - muon
-  - murder
-  - murmur
-  - murmur3
-  - murmurhash3
-  - mushu
-  - music-graphics
-  - music-parts
-  - music-pitch
-  - music-preludes
-  - music-score
-  - music-sibelius
-  - music-suite
-  - music-util
-  - musicbrainz-email
-  - musicScroll
-  - musicxml
-  - musicxml2
-  - mustache-haskell
-  - mutable-iter
-  - MutationOrder
-  - mute-unmute
-  - mvar-lock
-  - mvc
-  - mvc-updates
-  - mvclient
-  - mxnet
-  - mxnet-dataiter
-  - mxnet-examples
-  - mxnet-nn
-  - mxnet-nnvm
-  - my-package-testing
-  - my-test-docs
-  - myanimelist-export
-  - myo
-  - MyPrimes
-  - mysnapsession
-  - mysnapsession-example
-  - mysql-effect
-  - mysql-haskell-openssl
-  - mysql-simple-quasi
-  - mysql-simple-typed
-  - mystem
-  - myTestlll
-  - mywatch
-  - myxine-client
-  - mzv
-  - n-tuple
-  - n2o-protocols
-  - n2o-web
-  - nagios-plugin-ekg
-  - nakadi-client
-  - named-lock
-  - named-servant
-  - named-servant-client
-  - named-servant-server
-  - named-sop
-  - namelist
-  - namespace
-  - nano-hmac
-  - nano-md5
-  - nanocurses
-  - nanomsg
-  - nanomsg-haskell
-  - nanoparsec
-  - NanoProlog
-  - nanovg
-  - nanovg-simple
-  - nanq
-  - naperian
-  - NaperianNetCDF
-  - naqsha
-  - narc
-  - nat-sized-numbers
-  - nationstates
-  - nats-client
-  - nats-queue
-  - natural
-  - natural-number
-  - NaturalLanguageAlphabets
-  - NaturalSort
-  - naver-translate
-  - nbt
-  - NearContextAlgebra
-  - neat
-  - needle
-  - neet
-  - nehe-tuts
-  - neither
-  - neko-lib
-  - Neks
-  - nemesis-titan
-  - neptune-backend
-  - nerf
-  - nero
-  - nero-wai
-  - nero-warp
-  - nest
-  - nested-routes
-  - nested-sequence
-  - NestedFunctor
-  - nestedmap
-  - net-spider
-  - net-spider-cli
-  - net-spider-pangraph
-  - net-spider-rpl
-  - net-spider-rpl-cli
-  - netclock
-  - netcore
-  - netease-fm
-  - netlines
-  - netrium
-  - NetSNMP
-  - netspec
-  - netstring-enumerator
-  - nettle-frp
-  - nettle-netkit
-  - nettle-openflow
-  - netwire-input-javascript
-  - netwire-vinylglfw-examples
-  - network-address
-  - network-anonymous-i2p
-  - network-anonymous-tor
-  - network-api-support
-  - network-arbitrary
-  - network-attoparsec
-  - network-bitcoin
-  - network-builder
-  - network-bytestring
-  - network-carbon
-  - network-connection
-  - network-dns
-  - network-enumerator
-  - network-hans
-  - network-house
-  - network-interfacerequest
-  - network-messagepack-rpc-websocket
-  - network-minihttp
-  - network-msgpack-rpc
-  - network-netpacket
-  - network-packet-linux
-  - network-protocol-xmpp
-  - network-rpca
-  - network-server
-  - network-service
-  - network-simple-sockaddr
-  - network-simple-wss
-  - network-socket-options
-  - network-stream
-  - network-topic-models
-  - network-transport-amqp
-  - network-transport-inmemory
-  - network-uri-json
-  - network-voicetext
-  - network-wai-router
-  - network-websocket
-  - networked-game
-  - neural
-  - neural-network-blashs
-  - neural-network-hmatrix
-  - newhope
-  - newports
-  - newsletter
-  - newsletter-mailgun
-  - newt
-  - newtype-deriving
-  - newtype-th
-  - newtype-zoo
-  - next-ref
-  - nextstep-plist
-  - nfc
-  - NGrams
-  - ngrams-loader
-  - ngx-export-tools-extra
-  - niagra
-  - nibblestring
-  - nice-html
-  - nicovideo-translator
-  - nikepub
-  - Ninjas
-  - nirum
-  - nitro
-  - nix-delegate
-  - nix-deploy
-  - nix-eval
-  - nix-freeze-tree
-  - nix-thunk
-  - nix-tools
-  - nixfromnpm
-  - nixpkgs-update
-  - nkjp
-  - nlp-scores
-  - nlp-scores-scripts
-  - nm
-  - NMap
-  - nntp
-  - no-role-annots
-  - noether
-  - nofib-analyse
-  - nofib-analyze
-  - noise
-  - noli
-  - nom
-  - Nomyx
-  - Nomyx-Core
-  - Nomyx-Language
-  - Nomyx-Rules
-  - Nomyx-Web
-  - non-empty-zipper
-  - NonEmpty
-  - nonempty-lift
-  - NonEmptyList
-  - normalization-insensitive
-  - NoSlow
-  - not-gloss-examples
-  - notcpp
-  - notifications-tray-icon
-  - notmuch-haskell
-  - notmuch-web
-  - NoTrace
-  - now-haskell
-  - np-extras
-  - np-linear
-  - nptools
-  - ntp-control
-  - ntrip-client
-  - nuha
-  - null-canvas
-  - nullary
-  - nullpipe
-  - numbered-semigroups
-  - NumberSieves
-  - NumberTheory
-  - numerals
-  - numerals-base
-  - numeric-ode
-  - numeric-qq
-  - numeric-ranges
-  - numerical
-  - numhask-array
-  - numhask-free
-  - numhask-hedgehog
-  - numhask-histogram
-  - numhask-prelude
-  - numhask-range
-  - numhask-space
-  - numhask-test
-  - Nussinov78
-  - Nutri
-  - NXT
-  - NXTDSL
-  - nylas
-  - nymphaea
-  - nyx-game
-  - oanda-rest-api
-  - oasis-xrd
-  - oauth2-jwt-bearer
-  - oauthenticated
-  - obd
-  - obdd
-  - oberon0
-  - obj
-  - Object
-  - objectid
-  - ObjectIO
-  - objective
-  - oblivious-transfer
-  - ocaml-export
-  - ochan
-  - octane
-  - octohat
-  - octopus
-  - Octree
-  - oculus
-  - odbc
-  - odd-jobs
-  - OddWord
-  - oden-go-packages
-  - oeis2
-  - off-simple
-  - OGL
-  - ogmarkup
-  - ohloh-hs
-  - oi
-  - oidc-client
-  - ois-input-manager
-  - olwrapper
-  - om-actor
-  - om-elm
-  - om-fail
-  - om-http-logging
-  - omaketex
-  - ombra
-  - Omega
-  - omega
-  - omnifmt
-  - on-a-horse
-  - on-demand-ssh-tunnel
-  - onama
-  - ONC-RPC
-  - oneormore
-  - online
-  - online-csv
-  - onpartitions
-  - OnRmt
-  - onu-course
-  - op
-  - opaleye-classy
-  - opaleye-sqlite
-  - opaleye-trans
-  - open-adt
-  - open-adt-tutorial
-  - open-haddock
-  - open-pandoc
-  - open-signals
-  - open-typerep
-  - open-union
-  - OpenAFP
-  - OpenAFP-Utils
-  - openai-hs
-  - openai-servant
-  - openapi-petstore
-  - openapi-typed
-  - openapi3
-  - openapi3-code-generator
-  - opench-meteo
-  - OpenCL
-  - OpenCLRaw
-  - OpenCLWrappers
-  - opencv-raw
-  - opendatatable
-  - OpenGLCheck
-  - opengles
-  - openid-connect
-  - OpenSCAD
-  - opensoundcontrol-ht
-  - openssh-github-keys
-  - openssh-protocol
-  - opentelemetry-http-client
-  - opentheory-char
-  - opentok
-  - opentracing-jaeger
-  - opentracing-zipkin-v1
-  - opentype
-  - OpenVG
-  - OpenVGRaw
-  - openweathermap
-  - Operads
-  - operate-do
-  - operational-extra
-  - oplang
-  - opn
-  - optima
-  - optima-for-hasql
-  - optimal-blocks
-  - optimization
-  - optimusprime
-  - optional
-  - options-time
-  - optparse-applicative-simple
-  - optparse-enum
-  - optparse-helper
-  - orc
-  - orchestrate
-  - OrchestrateDB
-  - orchid
-  - orchid-demo
-  - order-maintenance
-  - order-statistics
-  - ordinal
-  - Ordinary
-  - ordrea
-  - oref
-  - org-mode
-  - org-mode-lucid
-  - organize-imports
-  - orgmode
-  - orgstat
-  - origami
-  - orizentic
-  - OrPatterns
-  - osc
-  - oscpacking
-  - oset
-  - Oslo-Vectize
-  - OSM
-  - osm-conduit
-  - osm-download
-  - oso2pdf
-  - osx-ar
-  - ot
-  - OTP
-  - otp-authenticator
-  - ottparse-pretty
-  - overloaded
-  - overloaded-records
-  - overture
-  - pack
-  - package-description-remote
-  - package-o-tron
-  - package-vt
-  - packed
-  - packed-dawg
-  - packed-multikey-map
-  - packedstring
-  - packer-messagepack
-  - packman
-  - packunused
-  - pacman-memcache
-  - padKONTROL
-  - pads-haskell
-  - pagarme
-  - PageIO
-  - pagure-hook-receiver
-  - Paillier
-  - pairing
-  - palette
-  - pam
-  - pan-os-syslog
-  - panda
-  - pandoc-citeproc
-  - pandoc-csv2table
-  - pandoc-filter-graphviz
-  - pandoc-filter-indent
-  - pandoc-include
-  - pandoc-japanese-filters
-  - pandoc-lens
-  - pandoc-markdown-ghci-filter
-  - pandoc-placetable
-  - pandoc-plantuml-diagrams
-  - pandoc-pyplot
-  - pandoc-sidenote
-  - pandoc-unlit
-  - pandoc-utils
-  - PandocAgda
-  - pang-a-lambda
-  - pangraph
-  - panpipe
-  - pansite
-  - pantry-tmp
-  - papa
-  - papa-base
-  - papa-base-export
-  - papa-base-implement
-  - papa-export
-  - papa-implement
-  - papa-include
-  - papa-prelude
-  - papa-prelude-core
-  - papa-prelude-lens
-  - papa-prelude-semigroupoids
-  - papa-prelude-semigroups
-  - papa-semigroupoids
-  - papa-semigroupoids-implement
-  - paphragen
-  - papillon
-  - pappy
-  - paprika
-  - par-dual
-  - paragon
-  - Paraiso
-  - Parallel-Arrows-Eden
-  - parallel-tasks
-  - parameterized-utils
-  - paranoia
-  - parco
-  - parco-attoparsec
-  - parco-parsec
-  - parcom-lib
-  - parconc-examples
-  - pareto
-  - parochial
-  - parquet-hs
-  - Parry
-  - parse-help
-  - parseargs
-  - parsec-free
-  - parsec-parsers
-  - parsec-pratt
-  - parsec2
-  - parsec3
-  - parseerror-eq
-  - parsely
-  - parser-combinators-tests
-  - parser-helper
-  - parser241
-  - parsergen
-  - parsers-megaparsec
-  - parsestar
-  - parsimony
-  - parsnip
-  - partage
-  - partial-lens
-  - partial-records
-  - partly
-  - passage
-  - passman
-  - PasswordGenerator
-  - passwords
-  - pasta
-  - pastis
-  - pasty
-  - patat
-  - patches-vector
-  - Pathfinder
-  - pathfindingcore
-  - PathTree
-  - patronscraper
-  - patterns
-  - paypal-adaptive-hoops
-  - paypal-api
-  - paypal-rest-client
-  - pb
-  - pb-next
-  - pbc4hs
-  - PBKDF2
-  - pcap-enumerator
-  - pcapng
-  - pcd-loader
-  - pcf
-  - pcf-font
-  - pcf-font-embed
-  - PCLT
-  - PCLT-DB
-  - pcre-light-extra
-  - pdf-slave
-  - pdf-slave-template
-  - pdf-toolbox-content
-  - pdf-toolbox-core
-  - pdf-toolbox-document
-  - pdf-toolbox-viewer
-  - pdfname
-  - pdfsplit
-  - pdftotext
-  - pdynload
-  - peakachu
-  - PeanoWitnesses
-  - pec
-  - pecoff
-  - pedersen-commitment
-  - pedestrian-dag
-  - peg
-  - peggy
-  - pell
-  - pencil
-  - penntreebank-megaparsec
-  - penny
-  - penny-bin
-  - penny-lib
-  - penrose
-  - peparser
-  - percent-encoder
-  - perceptron
-  - perceptual-hash
-  - peregrin
-  - perf
-  - perf-analysis
-  - PerfectHash
-  - perfecthash
-  - perhaps
-  - periodic
-  - periodic-server
-  - perm
-  - permutation
-  - permutations
-  - permute
-  - PermuteEffects
-  - persist2er
-  - Persistence
-  - persistent-audit
-  - persistent-cereal
-  - persistent-database-url
-  - persistent-equivalence
-  - persistent-hssqlppp
-  - persistent-map
-  - persistent-migration
-  - persistent-mongoDB
-  - persistent-mysql-haskell
-  - persistent-odbc
-  - persistent-protobuf
-  - persistent-ratelimit
-  - persistent-redis
-  - persistent-relational-record
-  - persistent-template-classy
-  - persistent-test
-  - persistent-vector
-  - persistent-zookeeper
-  - persona
-  - persona-idp
-  - pesca
-  - peyotls
-  - peyotls-codec
-  - pez
-  - pg-extras
-  - pg-harness
-  - pg-harness-server
-  - pg-recorder
-  - pg-store
-  - pg-transact
-  - pgdl
-  - pgf2
-  - pgsql-simple
-  - pgstream
-  - phasechange
-  - phaser
-  - phoityne
-  - phone-numbers
-  - phone-push
-  - phonetic-languages-examples
-  - phonetic-languages-properties
-  - phonetic-languages-simplified-lists-examples
-  - phonetic-languages-simplified-properties-lists
-  - phonetic-languages-simplified-properties-lists-double
-  - phooey
-  - photoname
-  - phraskell
-  - Phsu
-  - phybin
-  - pi-calculus
-  - pi-forall
-  - pi-hoole
-  - pia-forward
-  - pianola
-  - picedit
-  - pickle
-  - picologic
-  - picoparsec
-  - pictikz
-  - pier
-  - pier-core
-  - piet
-  - pig
-  - pinboard
-  - pinch
-  - pinch-gen
-  - pinchot
-  - ping
-  - pinpon
-  - Pipe
-  - pipe-enumerator
-  - pipes-async
-  - pipes-attoparsec-streaming
-  - pipes-bgzf
-  - pipes-brotli
-  - pipes-cacophony
-  - pipes-cereal
-  - pipes-cereal-plus
-  - pipes-conduit
-  - pipes-core
-  - pipes-courier
-  - pipes-errors
-  - pipes-extra
-  - pipes-files
-  - pipes-illumina
-  - pipes-interleave
-  - pipes-io
-  - pipes-key-value-csv
-  - pipes-mongodb
-  - pipes-p2p
-  - pipes-p2p-examples
-  - pipes-protolude
-  - pipes-rt
-  - pipes-s3
-  - pipes-shell
-  - pipes-sqlite-simple
-  - pipes-transduce
-  - pipes-vector
-  - pipes-zeromq4
-  - pisigma
-  - Piso
-  - pit
-  - pitchtrack
-  - pivotal-tracker
-  - pixel-printer
-  - pixelated-avatar-generator
-  - pixiv
-  - pkcs10
-  - pkcs7
-  - pkggraph
-  - pkgtreediff
-  - plailude
-  - plan-applicative
-  - plan-b
-  - planar-graph
-  - planb-token-introspection
-  - planet-mitchell
-  - planet-mitchell-test
-  - plankton
-  - plat
-  - platinum-parsing
-  - PlayingCards
-  - plist
-  - plist-buddy
-  - plocketed
-  - plot-gtk
-  - plot-gtk-ui
-  - plot-gtk3
-  - Plot-ho-matic
-  - plot-lab
-  - plots
-  - PlslTools
-  - plugins
-  - plugins-auto
-  - plugins-multistage
-  - plumbers
-  - plur
-  - plural
-  - plzwrk
-  - png-file
-  - pngload
-  - pngload-fixed
-  - pocket
-  - pocket-dns
-  - point-octree
-  - pointedalternative
-  - pointfree-fancy
-  - pointful
-  - pointless-haskell
-  - pointless-lenses
-  - pointless-rewrite
-  - poke
-  - pokemon-go-protobuf-types
-  - poker-eval
-  - pokitdok
-  - polar-configfile
-  - polar-shader
-  - polh-lexicon
-  - Pollutocracy
-  - poly-cont
-  - poly-control
-  - polydata
-  - polydata-core
-  - polynomial
-  - polysemy-chronos
-  - polysemy-conc
-  - polysemy-http
-  - polysemy-log
-  - polysemy-log-co
-  - polysemy-log-di
-  - polysemy-methodology
-  - polysemy-methodology-composite
-  - polysemy-optics
-  - polysemy-path
-  - polysemy-RandomFu
-  - polysemy-resume
-  - polysemy-test
-  - polysemy-time
-  - polyseq
-  - polytypeable
-  - polytypeable-utils
-  - pomaps
-  - pomodoro
-  - pomohoro
-  - ponder
-  - pong-server
-  - pontarius-xmpp
-  - pool
-  - pool-conduit
-  - pop3-client
-  - popenhs
-  - popkey
-  - poppler
-  - porcupine-core
-  - porcupine-http
-  - porcupine-s3
-  - portager
-  - porte
-  - PortFusion
-  - ports
-  - poseidon
-  - poseidon-postgis
-  - positron
-  - posix-acl
-  - posix-api
-  - posix-realtime
-  - posix-waitpid
-  - postcodes
-  - postgres-embedded
-  - postgres-tmp
-  - postgres-websockets
-  - postgresql-lo-stream
-  - postgresql-named
-  - postgresql-query
-  - postgresql-simple-bind
-  - postgresql-simple-migration
-  - postgresql-simple-named
-  - postgresql-simple-queue
-  - postgresql-simple-sop
-  - postgresql-simple-typed
-  - postgresql-simple-url
-  - postgresql-syntax
-  - postgresql-tx-query
-  - postgresql-tx-squeal
-  - postgresql-tx-squeal-compat-simple
-  - postgresql-typed-lifted
-  - postgrest-ws
-  - postie
-  - postmark
-  - postmark-streams
-  - postmaster
-  - potato-tool
-  - potoki
-  - potoki-cereal
-  - potoki-conduit
-  - potoki-core
-  - potoki-hasql
-  - potoki-zlib
-  - potrace-diagrams
-  - powermate
-  - powerpc
-  - powerqueue-levelmem
-  - powerqueue-sqs
-  - pprecord
-  - PPrinter
-  - pqc
-  - pqueue-mtl
-  - practice-room
-  - praglude
-  - preamble
-  - precursor
-  - pred-set
-  - pred-trie
-  - predicate-class
-  - predicate-transformers
-  - predicate-typed
-  - prednote
-  - prednote-test
-  - prefork
-  - pregame
-  - preliminaries
-  - Prelude
-  - prelude-generalize
-  - prelude-plus
-  - preprocess-haskell
-  - preprocessor
-  - preql
-  - presburger
-  - present
-  - press
-  - presto-hdbc
-  - pretty-ghci
-  - pretty-ncols
-  - pretty-types
-  - prettyprinter-lucid
-  - prettyprinter-vty
-  - preview
-  - prim-array
-  - prim-instances
-  - prim-ref
-  - primal
-  - primal-memory
-  - primes-type
-  - primitive-atomic
-  - primitive-checked
-  - primitive-containers
-  - primitive-convenience
-  - primitive-foreign
-  - primitive-indexed
-  - primitive-maybe
-  - primitive-simd
-  - primitive-sort
-  - primitive-stablename
-  - PrimitiveArray-Pretty
-  - primula-board
-  - primula-bot
-  - pringletons
-  - print-debugger
-  - printcess
-  - Printf-TH
-  - prints
-  - priority-queue
-  - PriorityChansConverger
-  - ProbabilityMonads
-  - probable
-  - proc
-  - process-conduit
-  - process-iterio
-  - process-leksah
-  - process-listlike
-  - process-progress
-  - process-qq
-  - process-streaming
-  - processing
-  - processmemory
-  - procrastinating-variable
-  - procstat
-  - producer
-  - prof-flamegraph
-  - prof2dot
-  - prof2pretty
-  - profunctor-monad
-  - progress
-  - progress-meter
-  - progress-reporting
-  - progressbar
-  - progression
-  - progressive
-  - proj4-hs-bindings
-  - project-m36
-  - projectile
-  - prolens
-  - prolog-graph
-  - prologue
-  - prolude
-  - prometheus-effect
-  - promise
-  - pronounce
-  - proof-combinators
-  - propane
-  - Proper
-  - properties
-  - property-list
-  - proplang
-  - prosidy
-  - prosidyc
-  - prosper
-  - proteaaudio
-  - proteaaudio-sdl
-  - proteome
-  - proto-lens-arbitrary
-  - proto-lens-combinators
-  - proto-lens-descriptors
-  - proto-lens-optparse
-  - proto3-suite
-  - proto3-wire
-  - protobuf-native
-  - protocol
-  - protocol-buffers-descriptor-fork
-  - protocol-buffers-fork
-  - protolude-lifted
-  - proton
-  - proton-haskell
-  - prototype
-  - prove-everywhere-server
-  - provenience
-  - proxy-kindness
-  - proxy-mapping
-  - psc-ide
-  - pseudo-boolean
-  - pseudo-trie
-  - PTQ
-  - ptr-poker
-  - publicsuffixlistcreate
-  - publish
-  - pubnub
-  - pubsub
-  - puffytools
-  - pugixml
-  - Pugs
-  - pugs-compat
-  - pugs-DrIFT
-  - pugs-hsregex
-  - PUH-Project
-  - punkt
-  - Pup-Events
-  - Pup-Events-Demo
-  - Pup-Events-Server
-  - puppetresources
-  - pure-cdb
-  - pure-io
-  - pure-priority-queue
-  - pure-priority-queue-tests
-  - pure-zlib
-  - purescheme-wai-routing-core
-  - purescript
-  - purescript-ast
-  - purescript-cst
-  - purescript-iso
-  - purescript-tsd-gen
-  - push-notifications
-  - push-notify
-  - push-notify-apn
-  - push-notify-ccs
-  - push-notify-general
-  - pusher-haskell
-  - pusher-ws
-  - pushme
-  - putlenses
-  - puzzle-draw
-  - puzzle-draw-cmdline
-  - pvd
-  - pyffi
-  - pyfi
-  - python-pickle
-  - q4c12-twofinger
-  - qc-oi-testgenerator
-  - qd
-  - qd-vec
-  - qed
-  - qhs
-  - qhull-simple
-  - qif
-  - QIO
-  - QLearn
-  - qlinear
-  - qnap-decrypt
-  - qr-imager
-  - qr-repa
-  - qsem
-  - QuadEdge
-  - QuadTree
-  - quantfin
-  - quantification
-  - quantum-arrow
-  - quantum-random
-  - quarantimer
-  - qudb
-  - Quelea
-  - quenya-verb
-  - queryparser
-  - queryparser-demo
-  - queryparser-hive
-  - queryparser-presto
-  - queryparser-vertica
-  - questioner
-  - queuelike
-  - quick-schema
-  - QuickAnnotate
-  - quickbench
-  - quickbooks
-  - quickcheck-arbitrary-template
-  - quickcheck-poly
-  - quickcheck-property-comb
-  - quickcheck-property-monad
-  - quickcheck-regex
-  - quickcheck-relaxng
-  - quickcheck-rematch
-  - quickcheck-report
-  - quickcheck-state-machine
-  - quickcheck-state-machine-distributed
-  - quickcheck-string-random
-  - quickcheck-webdriver
-  - QuickCheckVariant
-  - quickjs-hs
-  - QuickPlot
-  - quickpull
-  - quickset
-  - Quickson
-  - quickspec
-  - quicktest
-  - quickwebapp
-  - quipper
-  - quipper-algorithms
-  - quipper-all
-  - quipper-cabal
-  - quipper-core
-  - quipper-demos
-  - quipper-language
-  - quipper-libraries
-  - quipper-rendering
-  - quipper-tools
-  - quipper-utils
-  - quiver
-  - quiver-binary
-  - quiver-bytestring
-  - quiver-cell
-  - quiver-csv
-  - quiver-enumerator
-  - quiver-groups
-  - quiver-http
-  - quiver-instances
-  - quiver-interleave
-  - quiver-sort
-  - quokka
-  - quoridor-hs
-  - qux
-  - R-pandoc
-  - raaz
-  - RabbitMQ
-  - rad
-  - radian
-  - radium
-  - radium-formula-parser
-  - radix
-  - rados-haskell
-  - raft
-  - rail-compiler-editor
-  - rails-session
-  - rainbow-tests
-  - raketka
-  - rakhana
-  - rakuten
-  - ralist
-  - rallod
-  - raml
-  - rand-vars
-  - randfile
-  - rando
-  - random-access-list
-  - random-derive
-  - random-eff
-  - random-effin
-  - random-hypergeometric
-  - random-stream
-  - RandomDotOrg
-  - Range
-  - range-set-list
-  - range-space
-  - rangemin
-  - Ranka
-  - rapid
-  - rapid-term
-  - rasa
-  - rasa-example-config
-  - rasa-ext-bufs
-  - rasa-ext-cmd
-  - rasa-ext-cursors
-  - rasa-ext-files
-  - rasa-ext-logger
-  - rasa-ext-slate
-  - rasa-ext-status-bar
-  - rasa-ext-style
-  - rasa-ext-views
-  - rasa-ext-vim
-  - rascal
-  - Rasenschach
-  - rating-chgk-info
-  - rational-list
-  - rattle
-  - rattletrap
-  - raven-haskell-scotty
-  - raw-feldspar
-  - rawr
-  - raz
-  - razom-text-util
-  - rbr
-  - rbst
-  - rc
-  - rclient
-  - rdioh
-  - react-flux
-  - react-flux-servant
-  - react-haskell
-  - react-tutorial-haskell-server
-  - reaction-logic
-  - reactive-bacon
-  - reactive-balsa
-  - reactive-banana
-  - reactive-banana-automation
-  - reactive-banana-bunch
-  - reactive-banana-gi-gtk
-  - reactive-banana-sdl
-  - reactive-banana-sdl2
-  - reactive-banana-threepenny
-  - reactive-banana-wx
-  - reactive-fieldtrip
-  - reactive-glut
-  - reactive-jack
-  - reactive-midyim
-  - reactive-thread
-  - reactor
-  - read-bounded
-  - read-ctags
-  - read-io
-  - readability
-  - readline
-  - readline-statevar
-  - readme-lhs
-  - readpyc
-  - readshp
-  - really-simple-xml-parser
-  - reanimate
-  - reanimate-svg
-  - reasonable-lens
-  - record
-  - record-aeson
-  - record-encode
-  - record-gl
-  - record-preprocessor
-  - record-syntax
-  - records
-  - records-th
-  - recursion-schemes
-  - recursion-schemes-ext
-  - recursors
-  - red-black-record
-  - reddit
-  - redis-hs
-  - redis-simple
-  - redland
-  - Redmine
-  - reduce-equations
-  - reedsolomon
-  - reenact
-  - Ref
-  - ref
-  - ref-mtl
-  - refcount
-  - Referees
-  - references
-  - refh
-  - refined-http-api-data
-  - reflection-extras
-  - reflex-animation
-  - reflex-backend-socket
-  - reflex-backend-wai
-  - reflex-basic-host
-  - reflex-dom-retractable
-  - reflex-dom-svg
-  - reflex-dynamic-containers
-  - reflex-fsnotify
-  - reflex-gadt-api
-  - reflex-ghci
-  - reflex-gi-gtk
-  - reflex-gloss
-  - reflex-gloss-scene
-  - reflex-libtelnet
-  - reflex-localize
-  - reflex-localize-dom
-  - reflex-orphans
-  - reflex-process
-  - reflex-sdl2
-  - reflex-transformers
-  - reflex-vty
-  - reformat
-  - refractor
-  - refresht
-  - refurb
-  - reg-alloc
-  - reg-alloc-graph-color
-  - regex-deriv
-  - regex-dfa
-  - regex-generator
-  - regex-parsec
-  - regex-pcre-text
-  - regex-pderiv
-  - regex-posix-unittest
-  - regex-tdfa-pipes
-  - regex-tdfa-quasiquoter
-  - regex-tdfa-rc
-  - regex-tdfa-text
-  - regex-tdfa-unittest
-  - regex-tdfa-utf8
-  - regex-tre
-  - regex-type
-  - regex-wrapper
-  - regex-xmlschema
-  - regexp-tries
-  - regexpr-symbolic
-  - regexqq
-  - regional-pointers
-  - regions
-  - regions-monadsfd
-  - regions-monadstf
-  - regions-mtl
-  - register-machine-typelevel
-  - registry
-  - registry-hedgehog
-  - regress
-  - regression-simple
-  - regular
-  - regular-extras
-  - regular-web
-  - regular-xmlpickler
-  - reheat
-  - rehoo
-  - rei
-  - reified-records
-  - reify
-  - relacion
-  - relapse
-  - relational-postgresql8
-  - relational-query-postgresql-pure
-  - relative-date
-  - relevant-time
-  - reload
-  - remark
-  - remarks
-  - remote
-  - remote-debugger
-  - remote-json
-  - remote-json-client
-  - remote-json-server
-  - remote-monad
-  - remotion
-  - render-utf8
-  - repa-algorithms
-  - repa-array
-  - repa-bytestring
-  - repa-convert
-  - repa-devil
-  - repa-eval
-  - repa-examples
-  - repa-flow
-  - repa-linear-algebra
-  - repa-plugin
-  - repa-scalar
-  - repa-series
-  - repa-stream
-  - repa-v4l2
-  - repl
-  - RepLib
-  - replica
-  - replicant
-  - ReplicateEffects
-  - repo-based-blog
-  - repr
-  - representable-functors
-  - representable-tries
-  - reprinter
-  - reproject
-  - req-conduit
-  - req-oauth2
-  - req-url-extra
-  - reqcatcher
-  - request-monad
-  - rere
-  - rescue
-  - reserve
-  - reservoir
-  - resin
-  - resistor-cube
-  - resolve
-  - resolve-trivial-conflicts
-  - resource-effect
-  - resource-embed
-  - resource-pool-catchio
-  - resource-simple
-  - respond
-  - rest-client
-  - rest-core
-  - rest-example
-  - rest-gen
-  - rest-happstack
-  - rest-snap
-  - rest-stringmap
-  - rest-types
-  - rest-wai
-  - restartable
-  - restful-snap
-  - restricted-workers
-  - restyle
-  - rethinkdb
-  - rethinkdb-client-driver
-  - rethinkdb-model
-  - rethinkdb-wereHamster
-  - retryer
-  - reverse-geocoding
-  - reversi
-  - ReviewBoard
-  - rewrite
-  - rewrite-inspector
-  - rewriting
-  - rezoom
-  - rfc
-  - rfc-env
-  - rfc-http-client
-  - rfc-prelude
-  - rfc-psql
-  - rfc-redis
-  - rfc-servant
-  - rg
-  - rhbzquery
-  - rhythm-game-tutorial
-  - rib
-  - ribbit
-  - RichConditional
-  - ridley
-  - ridley-extras
-  - riemann
-  - riff
-  - ring-buffer
-  - ring-buffers
-  - rio-process-pool
-  - riot
-  - risc-v
-  - risc386
-  - riscv-isa
-  - Ritt-Wu
-  - rivers
-  - rivet
-  - rivet-migration
-  - rivet-simple-deploy
-  - RJson
-  - rl-satton
-  - Rlang-QQ
-  - rlglue
-  - RLP
-  - rlwe-challenges
-  - rmonad
-  - RMP
-  - RNAdesign
-  - RNAdraw
-  - RNAFold
-  - RNAFoldProgs
-  - RNAlien
-  - RNAwolf
-  - rncryptor
-  - rob
-  - robin
-  - robots-txt
-  - roc-cluster
-  - roc-cluster-demo
-  - rock
-  - rocksdb-haskell
-  - rocksdb-haskell-jprupp
-  - rocksdb-query
-  - roku-api
-  - rollbar
-  - rollbar-cli
-  - rollbar-client
-  - rollbar-hs
-  - rollbar-wai
-  - rollbar-yesod
-  - roller
-  - RollingDirectory
-  - ron-rdt
-  - ron-schema
-  - ron-storage
-  - rope
-  - rose-trees
-  - rose-trie
-  - rosebud
-  - roshask
-  - rosmsg
-  - rosmsg-bin
-  - rosso
-  - rotating-log
-  - rounded
-  - rounded-hw
-  - rounding
-  - roundtrip-aeson
-  - roundtrip-xml
-  - route-planning
-  - rowrecord
-  - rpc
-  - rpc-framework
-  - rpf
-  - rpm
-  - rpmbuild-order
-  - rrule
-  - rsagl
-  - rsagl-frp
-  - rsagl-math
-  - rspp
-  - rss
-  - rss-conduit
-  - rss2irc
-  - rstream
-  - rtcm
-  - RtMidi
-  - rtnetlink
-  - rtorrent-rpc
-  - rts-loader
-  - ruby-marshal
-  - ruby-qq
-  - ruff
-  - ruin
-  - ruler
-  - ruler-core
-  - run-st
-  - rungekutta
-  - runhs
-  - runmany
-  - runtime-arbitrary
-  - rv
-  - rws
-  - RxHaskell
-  - s-expression
-  - S3
-  - SableCC2Hs
-  - safe-buffer-monad
-  - safe-coerce
-  - safe-freeze
-  - safe-globals
-  - safe-lazy-io
-  - safe-length
-  - safe-numeric
-  - safe-plugins
-  - safe-printf
-  - safecopy-migrate
-  - safecopy-store
-  - safeint
-  - safepath
-  - safer-file-handles
-  - safer-file-handles-bytestring
-  - safer-file-handles-text
-  - saferoute
-  - sai-shape-syb
-  - sajson
-  - sak
-  - salak-toml
-  - Salsa
-  - saltine-quickcheck
-  - salvia
-  - salvia-demo
-  - salvia-extras
-  - salvia-protocol
-  - salvia-sessions
-  - salvia-websocket
-  - samtools
-  - samtools-conduit
-  - samtools-enumerator
-  - samtools-iteratee
-  - sandlib
-  - sandman
-  - sarasvati
-  - sarsi
-  - sasl
-  - sat
-  - sat-micro-hs
-  - satchmo
-  - satchmo-backends
-  - satchmo-examples
-  - satchmo-funsat
-  - satchmo-minisat
-  - satchmo-toysat
-  - Saturnin
-  - savage
-  - sax
-  - SBench
-  - sbvPlugin
-  - sc2-lowlevel
-  - sc2-proto
-  - sc2-support
-  - sc3-rdu
-  - scalable-server
-  - scaleimage
-  - SCalendar
-  - scalendar
-  - scalp-webhooks
-  - scalpel-search
-  - scan-metadata
-  - scan-vector-machine
-  - scc
-  - scenegraph
-  - scgi
-  - schedevr
-  - schedule-planner
-  - schedyield
-  - schema
-  - schemas
-  - schematic
-  - scholdoc
-  - scholdoc-citeproc
-  - scholdoc-texmath
-  - scholdoc-types
-  - sci-ratio
-  - SciBaseTypes
-  - scidb-hquery
-  - scientific-notation
-  - SciFlow
-  - SciFlow-drmaa
-  - scion
-  - scion-browser
-  - scons2dot
-  - scope
-  - scope-cairo
-  - scottish
-  - scotty-binding-play
-  - scotty-blaze
-  - scotty-fay
-  - scotty-form
-  - scotty-format
-  - scotty-hastache
-  - scotty-params-parser
-  - scotty-resource
-  - scotty-rest
-  - scotty-session
-  - scotty-tls
-  - scotty-view
-  - scp-streams
-  - scrabble-bot
-  - scrapbook
-  - scrapbook-core
-  - scrape-changes
-  - ScratchFs
-  - script-monad
-  - SCRIPTWriter
-  - scrobble
-  - Scurry
-  - scythe
-  - scyther-proof
-  - sde-solver
-  - sdl2-cairo-image
-  - sdl2-compositor
-  - sdl2-fps
-  - sdr
-  - seakale
-  - seakale-postgresql
-  - seakale-tests
-  - sec
-  - secdh
-  - seclib
-  - second-transfer
-  - secp256k1
-  - secp256k1-haskell
-  - secp256k1-legacy
-  - secret-santa
-  - secrm
-  - secure-sockets
-  - SecureHash-SHA3
-  - secureUDP
-  - sednaDBXML
-  - seitz-symbol
-  - selectors
-  - SelectSequencesFromMSA
-  - selenium
-  - selenium-server
-  - self-extract
-  - selinux
-  - semantic-source
-  - Semantique
-  - semdoc
-  - semi-iso
-  - semialign-extras
-  - semibounded-lattices
-  - Semigroup
-  - semigroupoids-syntax
-  - semigroups-actions
-  - semiring
-  - semiring-num
-  - sendgrid-haskell
-  - sendgrid-v3
-  - sensei
-  - sensenet
-  - sensu-run
-  - sentence-jp
-  - sentry
-  - seonbi
-  - seqaid
-  - SeqAlign
-  - seqloc
-  - seqloc-datafiles
-  - sequent-core
-  - sequor
-  - serialize-instances
-  - serialport
-  - serokell-util
-  - serpentine
-  - serv
-  - serv-wai
-  - servant-aeson-specs
-  - servant-auth-cookie
-  - servant-auth-docs
-  - servant-auth-hmac
-  - servant-auth-token
-  - servant-auth-token-acid
-  - servant-auth-token-api
-  - servant-auth-token-leveldb
-  - servant-auth-token-persistent
-  - servant-auth-token-rocksdb
-  - servant-auth-wordpress
-  - servant-avro
-  - servant-cassava
-  - servant-checked-exceptions
-  - servant-checked-exceptions-core
-  - servant-cli
-  - servant-client-js
-  - servant-client-namedargs
-  - servant-csharp
-  - servant-db
-  - servant-db-postgresql
-  - servant-dhall
-  - servant-docs-simple
-  - servant-ede
-  - servant-ekg
-  - servant-elm
-  - servant-event-stream
-  - servant-examples
-  - servant-fiat-content
-  - servant-generate
-  - servant-generic
-  - servant-github
-  - servant-haxl-client
-  - servant-hmac-auth
-  - servant-http-streams
-  - servant-http2-client
-  - servant-iCalendar
-  - servant-jquery
-  - servant-js
-  - servant-JuicyPixels
-  - servant-kotlin
-  - servant-matrix-param
-  - servant-mock
-  - servant-multipart
-  - servant-namedargs
-  - servant-nix
-  - servant-openapi3
-  - servant-pagination
-  - servant-pandoc
-  - servant-polysemy
-  - servant-pool
-  - servant-postgresql
-  - servant-proto-lens
-  - servant-purescript
-  - servant-pushbullet-client
-  - servant-py
-  - servant-quickcheck
-  - servant-rawm-client
-  - servant-rawm-docs
-  - servant-reason
-  - servant-reflex
-  - servant-router
-  - servant-scotty
-  - servant-seo
-  - servant-serf
-  - servant-server-namedargs
-  - servant-smsc-ru
-  - servant-snap
-  - servant-static-th
-  - servant-streaming
-  - servant-streaming-client
-  - servant-streaming-docs
-  - servant-streaming-server
-  - servant-swagger-tags
-  - servant-to-elm
-  - servant-waargonaut
-  - servant-yaml
-  - servant-zeppelin
-  - servant-zeppelin-client
-  - servant-zeppelin-server
-  - servant-zeppelin-swagger
-  - server-generic
-  - serversession
-  - serversession-backend-acid-state
-  - serversession-backend-persistent
-  - serversession-backend-redis
-  - serversession-frontend-snap
-  - serversession-frontend-wai
-  - serversession-frontend-yesod
-  - services
-  - ses-html-snaplet
-  - SessionLogger
-  - sessions
-  - sessiontypes
-  - sessiontypes-distributed
-  - Set
-  - set-of
-  - set-with
-  - setdown
-  - setgame
-  - setoid
-  - setters
-  - sexp
-  - sexp-grammar
-  - sexpr-parser
-  - sext
-  - SFML
-  - SFML-control
-  - sfmt
-  - sfnt2woff
-  - SFont
-  - SG
-  - sgd
-  - SGdemo
-  - sgf
-  - SGplus
-  - sgrep
-  - sh2md
-  - sha-streams
-  - sha1
-  - shade
-  - shadower
-  - shake-bindist
-  - shake-cabal-build
-  - shake-dhall
-  - shake-extras
-  - shake-minify
-  - shake-minify-css
-  - shake-pack
-  - shake-path
-  - shake-persist
-  - shakebook
-  - shaker
-  - shakespeare-babel
-  - shakespeare-sass
-  - shapefile
-  - shapely-data
-  - shared-buffer
-  - shared-fields
-  - she
-  - shelduck
-  - shell-pipe
-  - Shellac
-  - Shellac-compatline
-  - Shellac-editline
-  - Shellac-haskeline
-  - Shellac-readline
-  - shellish
-  - shellmate
-  - shellmate-extras
-  - shimmer
-  - shine-examples
-  - shivers-cfg
-  - shoap
-  - shopify
-  - shortcut-links
-  - shorten-strings
-  - ShortestPathProblems
-  - show-prettyprint
-  - showdown
-  - Shpadoinkle-backend-pardiff
-  - Shpadoinkle-backend-snabbdom
-  - Shpadoinkle-backend-static
-  - Shpadoinkle-developer-tools
-  - Shpadoinkle-disembodied
-  - Shpadoinkle-examples
-  - Shpadoinkle-html
-  - Shpadoinkle-router
-  - Shpadoinkle-streaming
-  - Shpadoinkle-template
-  - Shpadoinkle-widgets
-  - shpider
-  - shuffle
-  - shwifty
-  - si-clock
-  - sibe
-  - sifflet
-  - sifflet-lib
-  - sigma-ij
-  - sign
-  - signable
-  - signals
-  - signature
-  - signed-multiset
-  - signify-hs
-  - silkscreen
-  - silvi
-  - simd
-  - simgi
-  - simple-actors
-  - simple-atom
-  - simple-bluetooth
-  - simple-c-value
-  - simple-conduit
-  - simple-config
-  - simple-css
-  - simple-download
-  - simple-eval
-  - simple-firewire
-  - simple-genetic-algorithm
-  - simple-index
-  - simple-log-syslog
-  - simple-logging
-  - simple-money
-  - simple-neural-networks
-  - simple-nix
-  - simple-pascal
-  - simple-pipe
-  - simple-rope
-  - simple-server
-  - simple-sql-parser
-  - simple-stacked-vm
-  - simple-tabular
-  - simple-tar
-  - simple-ui
-  - simple-units
-  - simple-vec3
-  - simple-zipper
-  - simpleargs
-  - simpleconfig
-  - SimpleGL
-  - simpleirc
-  - simpleirc-lens
-  - SimpleLog
-  - simplenote
-  - simpleprelude
-  - SimpleServer
-  - simplesmtpclient
-  - simplest-sqlite
-  - simseq
-  - singleton-dict
-  - singleton-typelits
-  - singletons-base
-  - singletons-th
-  - singnal
-  - singular-factory
-  - sink
-  - siphon
-  - siren-json
-  - sirkel
-  - sitepipe
-  - sixfiguregroup
-  - sized-grid
-  - sized-types
-  - sized-vector
-  - sizes
-  - sjsp
-  - SJW
-  - skeletal-set
-  - skeleton
-  - skeletons
-  - skell
-  - skemmtun
-  - skews
-  - skulk
-  - skylark-client
-  - skylighting-lucid
-  - skype4hs
-  - slack
-  - slack-notify-haskell
-  - slack-verify
-  - slack-web
-  - slave-thread
-  - sliceofpy
-  - slidemews
-  - Slides
-  - slim
-  - slip32
-  - sloane
-  - slot-lambda
-  - sloth
-  - slug
-  - slugify
-  - slynx
-  - small-bytearray-builder
-  - smallarray
-  - smallcheck-kind-generics
-  - smallcheck-laws
-  - smallcheck-lens
-  - smallpt-hs
-  - smallstring
-  - smap
-  - smartcheck
-  - smartconstructor
-  - smartGroup
-  - smartword
-  - smcdel
-  - sme
-  - smerdyakov
-  - smiles
-  - smith
-  - smith-cli
-  - smith-client
-  - Smooth
-  - smsaero
-  - smt-lib
-  - smt2-parser
-  - SmtLib
-  - smtlib2
-  - smtlib2-debug
-  - smtlib2-pipe
-  - smtlib2-quickcheck
-  - smtlib2-timing
-  - smtp-mail-ng
-  - SMTPClient
-  - smtps-gmail
-  - smuggler
-  - smuggler2
-  - snake
-  - snake-game
-  - snap-accept
-  - snap-auth-cli
-  - snap-blaze-clay
-  - snap-configuration-utilities
-  - snap-elm
-  - snap-error-collector
-  - snap-extras
-  - snap-routes
-  - snap-stream
-  - snap-testing
-  - snap-utils
-  - snap-web-routes
-  - snaplet-acid-state
-  - snaplet-actionlog
-  - snaplet-amqp
-  - snaplet-auth-acid
-  - snaplet-coffee
-  - snaplet-css-min
-  - snaplet-customauth
-  - snaplet-environments
-  - snaplet-fay
-  - snaplet-hasql
-  - snaplet-haxl
-  - snaplet-hdbc
-  - snaplet-hslogger
-  - snaplet-influxdb
-  - snaplet-lss
-  - snaplet-mandrill
-  - snaplet-mongoDB
-  - snaplet-mongodb-minimalistic
-  - snaplet-mysql-simple
-  - snaplet-oauth
-  - snaplet-persistent
-  - snaplet-postgresql-simple
-  - snaplet-postmark
-  - snaplet-purescript
-  - snaplet-recaptcha
-  - snaplet-redis
-  - snaplet-redson
-  - snaplet-rest
-  - snaplet-riak
-  - snaplet-sass
-  - snaplet-scoped-session
-  - snaplet-sedna
-  - snaplet-ses-html
-  - snaplet-sqlite-simple
-  - snaplet-sqlite-simple-jwt-auth
-  - snaplet-stripe
-  - snaplet-tasks
-  - snaplet-typed-sessions
-  - snaplet-wordpress
-  - snappy-conduit
-  - snappy-iteratee
-  - sndfile-enumerators
-  - sneakyterm
-  - SNet
-  - snipcheck
-  - snm
-  - snmp
-  - snorkels
-  - snow-white
-  - snowflake-core
-  - snowflake-server
-  - snowtify
-  - Snusmumrik
-  - SoccerFun
-  - SoccerFunGL
-  - socket-activation
-  - socket-io
-  - socket-sctp
-  - socket-unix
-  - socketed
-  - socketio
-  - sockets
-  - sockets-and-pipes
-  - socketson
-  - sodium
-  - soegtk
-  - softfloat-hs
-  - solga
-  - solga-swagger
-  - solr
-  - sonic-visualiser
-  - Sonnex
-  - SoOSiM
-  - sorted
-  - sorting
-  - sorty
-  - souffle-dsl
-  - souffle-haskell
-  - sound-collage
-  - sounddelay
-  - soundgen
-  - source-code-server
-  - SourceGraph
-  - sousit
-  - soyuz
-  - SpaceInvaders
-  - spacepart
-  - SpacePrivateers
-  - spake2
-  - spanout
-  - sparkle
-  - sparrow
-  - spars
-  - sparse
-  - sparse-lin-alg
-  - sparsebit
-  - sparsecheck
-  - sparser
-  - spata
-  - special-functors
-  - special-keys
-  - specialize-th
-  - species
-  - spectral-clustering
-  - speculation
-  - speculation-transformers
-  - speechmatics
-  - spelling-suggest
-  - sphero
-  - sphinx
-  - sphinx-cli
-  - sphinxesc
-  - spice
-  - SpinCounter
-  - spir-v
-  - spiros
-  - splay
-  - splaytree
-  - spline3
-  - splines
-  - splint
-  - split-morphism
-  - splitter
-  - Spock
-  - Spock-api-ghcjs
-  - Spock-auth
-  - Spock-lucid
-  - Spock-worker
-  - spoonutil
-  - spoty
-  - Sprig
-  - sprinkles
-  - spritz
-  - sproxy
-  - sproxy-web
-  - sproxy2
-  - spsa
-  - spy
-  - sql-simple
-  - sql-simple-mysql
-  - sql-simple-pool
-  - sql-simple-postgresql
-  - sql-simple-sqlite
-  - sqlcipher
-  - sqlite
-  - sqlite-simple-errors
-  - sqlite-simple-typed
-  - sqlvalue-list
-  - sqsd-local
-  - squeal-postgresql
-  - squeeze
-  - sr-extra
-  - srcinst
-  - sscan
-  - sscgi
-  - ssh
-  - ssh-tunnel
-  - sshd-lint
-  - sssp
-  - sstable
-  - SSTG
-  - st2
-  - stable-heap
-  - stable-maps
-  - stable-marriage
-  - stable-memo
-  - stable-tree
-  - stack-bump
-  - stack-fix
-  - stack-hpc-coveralls
-  - stack-lib
-  - stack-network
-  - stack-prism
-  - stack-run
-  - stack-run-auto
-  - stack-type
-  - stack-wrapper
-  - stack2cabal
-  - stack2nix
-  - stackage
-  - stackage-build-plan
-  - stackage-cabal
-  - stackage-cli
-  - stackage-curator
-  - stackage-metadata
-  - stackage-query
-  - stackage-sandbox
-  - stackage-setup
-  - stackage-to-hackage
-  - stackage-types
-  - stackage-upload
-  - stackage2nix
-  - stackcollapse-ghc
-  - staged-gg
-  - standalone-derive-topdown
-  - standalone-haddock
-  - starling
-  - stash
-  - Stasis
-  - state
-  - state-bag
-  - state-plus
-  - state-record
-  - stateful-mtl
-  - static-canvas
-  - static-closure
-  - static-tensor
-  - static-text
-  - statistics-dirichlet
-  - statistics-fusion
-  - statistics-hypergeometric-genvar
-  - stats
-  - statsd
-  - statsd-client
-  - statsdi
-  - statvfs
-  - stb-image-redux
-  - stc-lang
-  - stdata
-  - stdf
-  - stdio
-  - steambrowser
-  - stego-uuid
-  - stemmer
-  - stemmer-german
-  - stepwise
-  - stern-brocot
-  - stgi
-  - STL
-  - STLinkUSB
-  - stm-chunked-queues
-  - stm-firehose
-  - stm-promise
-  - stm-stats
-  - STM32-Zombie
-  - stmcontrol
-  - stochastic
-  - StockholmAlignment
-  - stocks
-  - Stomp
-  - storable
-  - storable-static-array
-  - storablevector-streamfusion
-  - stp
-  - str
-  - Strafunski-ATermLib
-  - Strafunski-Sdf2Haskell
-  - Strafunski-StrategyLib
-  - StrappedTemplates
-  - stratum-tool
-  - stratux
-  - stratux-demo
-  - stratux-http
-  - stratux-types
-  - stratux-websockets
-  - stream
-  - stream-fusion
-  - stream-monad
-  - streamdeck
-  - streamed
-  - streaming-base64
-  - streaming-benchmarks
-  - streaming-brotli
-  - streaming-cassava
-  - streaming-concurrency
-  - streaming-conduit
-  - streaming-events
-  - streaming-fft
-  - streaming-lzma
-  - streaming-osm
-  - streaming-pcap
-  - streaming-png
-  - streaming-process
-  - streaming-sort
-  - streaming-utils
-  - streaming-with
-  - streamly-archive
-  - streamly-fsnotify
-  - streamly-lmdb
-  - streamproc
-  - strelka
-  - strict-base-types
-  - strict-data
-  - strict-ghc-plugin
-  - strict-tuple-lens
-  - StrictBench
-  - StrictCheck
-  - strictly
-  - string-isos
-  - string-quote
-  - string-typelits
-  - stringlike
-  - stringtable-atom
-  - stripe
-  - stripe-hs
-  - stripe-http-streams
-  - stripe-scotty
-  - stripe-signature
-  - stripe-wreq
-  - strongswan-sql
-  - structural-induction
-  - structural-traversal
-  - structured-mongoDB
-  - structures
-  - stt
-  - stunclient
-  - stunts
-  - stutter
-  - stylish-cabal
-  - stylist
-  - stylized
-  - suavemente
-  - sub-state
-  - subhask
-  - subleq-toolchain
-  - submark
-  - subsample
-  - substring-parser
-  - subwordgraph
-  - successors
-  - suffix-array
-  - suffixarray
-  - SuffixStructures
-  - sugarhaskell
-  - suitable
-  - summoner
-  - summoner-tui
-  - sump
-  - sunlight
-  - sunroof-compiler
-  - sunroof-examples
-  - sunroof-server
-  - super-user-spark
-  - superbubbles
-  - supercollider-ht
-  - supercollider-midi
-  - superconstraints
-  - superevent
-  - supermonad
-  - supernova
-  - supero
-  - supervisor
-  - supplemented
-  - surjective
-  - sv
-  - sv-cassava
-  - sv-core
-  - sv-svfactor
-  - SVD2HS
-  - svfactor
-  - svg-builder-fork
-  - SVG2Q
-  - svg2q
-  - svgcairo
-  - svgone
-  - svgutils
-  - svm-light-utils
-  - svm-simple
-  - svndump
-  - swagger-petstore
-  - swagger-test
-  - swapper
-  - swearjure
-  - sweet-egison
-  - swf
-  - swift-lda
-  - swiss-ephemeris
-  - switch
-  - sws
-  - syb-extras
-  - syb-with-class-instances-text
-  - SybWidget
-  - syfco
-  - sylvia
-  - sym
-  - sym-plot
-  - symantic
-  - symantic-atom
-  - symantic-cli
-  - symantic-http
-  - symantic-http-client
-  - symantic-http-demo
-  - symantic-http-pipes
-  - symantic-http-server
-  - symantic-http-test
-  - symantic-lib
-  - symantic-parser
-  - symantic-xml
-  - symbiote
-  - symbolic-link
-  - symengine
-  - symengine-hs
-  - symmetry-operations-symbols
-  - sync
-  - sync-mht
-  - syncthing-hs
-  - syntactic
-  - syntax
-  - syntax-attoparsec
-  - syntax-example
-  - syntax-example-json
-  - syntax-pretty
-  - syntax-printer
-  - syntax-trees
-  - syntax-trees-fork-bairyn
-  - SyntaxMacros
-  - syntaxnet-haskell
-  - synthesizer
-  - synthesizer-llvm
-  - sys-process
-  - Sysmon
-  - system-canonicalpath
-  - system-command
-  - system-extra
-  - system-inotify
-  - system-lifted
-  - system-linux-proc
-  - system-locale
-  - system-random-effect
-  - systemstats
-  - t-regex
-  - t3-client
-  - t3-server
-  - ta
-  - table
-  - table-layout
-  - table-tennis
-  - tableaux
-  - Tables
-  - tables
-  - tablestorage
-  - Tablify
-  - tabloid
-  - tabs
-  - tag-bits
-  - tag-stream
-  - tagged-exception-core
-  - tagged-list
-  - tagged-th
-  - tagged-timers
-  - taglib-api
-  - tagsoup-ht
-  - tagsoup-megaparsec
-  - tagsoup-navigate
-  - tagsoup-parsec
-  - tagsoup-selection
-  - tagstew
-  - tai
-  - tai64
-  - takahashi
-  - Takusen
-  - takusen-oracle
-  - tal
-  - tamarin-prover
-  - tamarin-prover-term
-  - tamarin-prover-theory
-  - tamarin-prover-utils
-  - Tape
-  - tapioca
-  - target
-  - task
-  - task-distribution
-  - TaskMonad
-  - tasty-auto
-  - tasty-bdd
-  - tasty-checklist
-  - tasty-fail-fast
-  - tasty-grading-system
-  - tasty-groundhog-converters
-  - tasty-hedgehog-coverage
-  - tasty-html
-  - tasty-integrate
-  - tasty-jenkins-xml
-  - tasty-laws
-  - tasty-lens
-  - tasty-mgolden
-  - tasty-silver
-  - tasty-stats
-  - tasty-test-vector
-  - tateti-tateti
-  - Taxonomy
-  - TaxonomyTools
-  - TBC
-  - TBit
-  - tbox
-  - tcache-AWS
-  - tccli
-  - tcod-haskell
-  - tcp
-  - tcp-streams-openssl
-  - tdd-util
-  - tdigest-Chart
-  - tdlib
-  - tdlib-gen
-  - tdlib-types
-  - tds
-  - TeaHS
-  - teams
-  - techlab
-  - teeth
-  - telegram
-  - telegram-api
-  - telegram-bot
-  - telegram-bot-simple
-  - telegram-raw-api
-  - telegram-types
-  - teleport
-  - teleshell
-  - tellbot
-  - tempi
-  - template-default
-  - template-haskell-util
-  - template-hsml
-  - template-yj
-  - templateify
-  - templatepg
-  - tempodb
-  - temporal-csound
-  - tempus
-  - tensor
-  - tensor-safe
-  - tensorflow
-  - tensorflow-core-ops
-  - tensorflow-logging
-  - tensorflow-opgen
-  - tensorflow-ops
-  - term-rewriting
-  - termbox-banana
-  - termbox-bindings
-  - terminal-text
-  - termination-combinators
-  - termplot
-  - terntup
-  - terraform-http-backend-pass
-  - terrahs
-  - tersmu
-  - tesla
-  - test-fixture
-  - test-framework-doctest
-  - test-framework-quickcheck
-  - test-framework-sandbox
-  - test-framework-skip
-  - test-framework-testing-feat
-  - test-framework-th-prime
-  - test-karya
-  - test-pkg
-  - test-sandbox
-  - test-sandbox-compose
-  - test-sandbox-hunit
-  - test-sandbox-quickcheck
-  - test-shouldbe
-  - test-simple
-  - testbench
-  - testCom
-  - testcontainers
-  - testloop
-  - testpack
-  - testpattern
-  - testrunner
-  - TeX-my-math
-  - tex2txt
-  - texbuilder
-  - texrunner
-  - text-all
-  - text-and-plots
-  - text-ascii
-  - text-containers
-  - text-format-heavy
-  - text-generic-pretty
-  - text-icu-normalized
-  - text-lens
-  - text-lips
-  - text-markup
-  - text-normal
-  - text-offset
-  - text-plus
-  - text-position
-  - text-register-machine
-  - text-replace
-  - text-trie
-  - text-utf8
-  - text-utils
-  - text-xml-qq
-  - text-zipper-monad
-  - text1
-  - textmatetags
-  - textocat-api
-  - textual
-  - tfp-th
-  - tftp
-  - tga
-  - th-alpha
-  - th-build
-  - th-context
-  - th-dict-discovery
-  - th-fold
-  - th-format
-  - th-instance-reification
-  - th-instances
-  - th-kinds
-  - th-kinds-fork
-  - th-lego
-  - th-pprint
-  - th-sccs
-  - th-tc
-  - th-to-exp
-  - th-traced
-  - th-typegraph
-  - thank-you-stars
-  - theatre
-  - thentos-cookie-session
-  - Theora
-  - theoremquest
-  - theoremquest-client
-  - thih
-  - thimk
-  - Thingie
-  - thock
-  - thorn
-  - threadmanager
-  - threepenny-editors
-  - threepenny-gui-contextmenu
-  - threepenny-gui-flexbox
-  - thrift
-  - throttled-io-loop
-  - thumbnail-plus
-  - thumbnail-polish
-  - tic-tac-toe
-  - tickle
-  - TicTacToe
-  - tictactoe3d
-  - tidal-midi
-  - tidal-serial
-  - tidal-vis
-  - tie-knot
-  - tiempo
-  - tiger
-  - tightrope
-  - tighttp
-  - timberc
-  - time-extras
-  - time-exts
-  - time-http
-  - time-io-access
-  - time-machine
-  - time-qq
-  - time-quote
-  - time-recurrence
-  - time-series
-  - time-series-lib
-  - time-w3c
-  - time-warp
-  - timecalc
-  - timemap
-  - timeout
-  - timeout-with-results
-  - timeparsers
-  - TimePiece
-  - timeprint
-  - timeseries
-  - timeutils
-  - timezone-detect
-  - timezone-olson-th
-  - timezone-unix
-  - tini
-  - tintin
-  - tiny-scheduler
-  - TinyLaunchbury
-  - tinyMesh
-  - tinytemplate
-  - TinyURL
-  - tinyXml
-  - tip-haskell-frontend
-  - tip-lib
-  - titan
-  - titan-debug-yampa
-  - titan-record-yampa
-  - Titim
-  - tkhs
-  - tkyprof
-  - tls-extra
-  - tlynx
-  - tmp-postgres
-  - tn
-  - to-haskell
-  - to-string-class
-  - to-string-instances
-  - toboggan
-  - todo
-  - todos
-  - tofromxml
-  - toilet
-  - token-limiter
-  - token-search
-  - tokenify
-  - tokenizer-streaming
-  - tokstyle
-  - toktok
-  - tokyocabinet-haskell
-  - tokyotyrant-haskell
-  - tomato-rubato-openal
-  - toml
-  - tonatona-google-server-api
-  - tonatona-persistent-postgresql
-  - tonatona-persistent-sqlite
-  - tonatona-servant
-  - too-many-cells
-  - toodles
-  - Top
-  - top
-  - topkata
-  - torch
-  - TORCS
-  - total-map
-  - TotalMap
-  - touched
-  - Tournament
-  - toxcore
-  - toxcore-c
-  - toxiproxy-haskell
-  - toysolver
-  - tpar
-  - tpb
-  - tptp
-  - trace
-  - trace-call
-  - trace-function-call
-  - traced
-  - tracetree
-  - tracing
-  - tracing-control
-  - tracked-files
-  - tracker
-  - trackit
-  - traction
-  - tracy
-  - traildb
-  - trajectory
-  - transactional-events
-  - transf
-  - transfer-db
-  - transformations
-  - TransformeR
-  - transformers-compose
-  - transformers-convert
-  - transformers-lift
-  - transformers-runnable
-  - TransformersStepByStep
-  - transient-universe
-  - transient-universe-tls
-  - translatable-intset
-  - translate
-  - translate-cli
-  - trasa
-  - trasa-client
-  - trasa-extra
-  - trasa-form
-  - trasa-server
-  - trasa-th
-  - traversal-template
-  - travis
-  - travis-meta-yaml
-  - trawl
-  - traypoweroff
-  - treap
-  - tree-render-text
-  - tree-traversals
-  - TreeCounter
-  - treemap
-  - treemap-html
-  - treemap-html-tools
-  - TreeStructures
-  - Treiber
-  - trek-app
-  - trek-db
-  - tremulous-query
-  - TrendGraph
-  - trhsx
-  - triangulation
-  - TrieMap
-  - tries
-  - trigger
-  - trim
-  - trimpolya
-  - tripLL
-  - trivia
-  - trivial-constraint
-  - tropical
-  - tropical-geometry
-  - true-name
-  - truelevel
-  - trurl
-  - tsession
-  - tsession-happstack
-  - tsp-viz
-  - tsparse
-  - tsuntsun
-  - tsvsql
-  - tsweb
-  - ttask
-  - tttool
-  - tubes
-  - tuntap
-  - tuntap-simple
-  - tup-functor
-  - tuple-gen
-  - tuple-lenses
-  - tuple-morph
-  - tuple-ops
-  - tupleinstances
-  - turing-machines
-  - turing-music
-  - turingMachine
-  - turtle-options
-  - TV
-  - tweak
-  - twee
-  - tweet-hs
-  - twentefp-eventloop-graphics
-  - twentefp-eventloop-trees
-  - twentefp-graphs
-  - twentefp-rosetree
-  - twentefp-trees
-  - twentefp-websockets
-  - twentyseven
-  - twfy-api-client
-  - twhs
-  - twidge
-  - twilight-stm
-  - twilio
-  - twill
-  - twine
-  - twirp
-  - twitter
-  - twitter-conduit
-  - twitter-enumerator
-  - twitter-feed
-  - tx
-  - txt
-  - txtblk
-  - TYB
-  - tyfam-witnesses
-  - typalyze
-  - type-assertions
-  - type-cache
-  - type-cereal
-  - type-combinators
-  - type-combinators-quote
-  - type-combinators-singletons
-  - type-digits
-  - type-eq
-  - type-fun
-  - type-indexed-queues
-  - type-int
-  - type-interpreter
-  - type-level-bst
-  - type-level-natural-number-induction
-  - type-level-natural-number-operations
-  - type-list
-  - type-of-html-static
-  - type-ord
-  - type-ord-spine-cereal
-  - type-prelude
-  - type-sets
-  - type-settheory
-  - type-spine
-  - type-structure
-  - type-sub-th
-  - type-tree
-  - type-unary
-  - typeable-th
-  - TypeClass
-  - typed-encoding
-  - typed-encoding-encoding
-  - typed-spreadsheet
-  - typed-streams
-  - typed-wire
-  - typedflow
-  - typedquery
-  - typehash
-  - TypeIlluminator
-  - typelevel
-  - typelevel-rewrite-rules
-  - typelevel-tensor
-  - TypeNat
-  - typenums
-  - typeparams
-  - types-compat
-  - typesafe-precure
-  - typescript-docs
-  - typograffiti
-  - typson-beam
-  - typson-esqueleto
-  - typson-selda
-  - tyro
-  - u2f
-  - uber
-  - uberlast
-  - ucam-webauth
-  - ucam-webauth-types
-  - ucd
-  - uconv
-  - udp-conduit
-  - udp-streaming
-  - uhc-light
-  - uhc-util
-  - uhexdump
-  - uhttpc
-  - ui-command
-  - UMM
-  - unagi-bloomfilter
-  - unamb-custom
-  - unbound
-  - unbounded-delays-units
-  - unboxed-containers
-  - unboxed-references
-  - unbreak
-  - unescaping-print
-  - unfix-binders
-  - uni-events
-  - uni-graphs
-  - uni-htk
-  - uni-posixutil
-  - uni-reactor
-  - uni-uDrawGraph
-  - uni-util
-  - unicode-normalization
-  - unicode-prelude
-  - unicode-show
-  - unicode-symbols
-  - unicode-tricks
-  - uniform-io
-  - union
-  - union-map
-  - uniprot-kb
-  - uniqueid
-  - uniquely-represented-sets
-  - uniqueness-periods-vector-examples
-  - uniqueness-periods-vector-properties
-  - units-attoparsec
-  - unittyped
-  - unitym-yesod
-  - universal-binary
-  - universe
-  - universe-instances-base
-  - universe-instances-extended
-  - universe-instances-trans
-  - universe-th
-  - unix-fcntl
-  - unix-handle
-  - unix-process-conduit
-  - unix-recursive
-  - unix-simple
-  - unlifted-list
-  - unliftio-messagebox
-  - unliftio-streams
-  - unm-hip
-  - unordered-containers-rematch
-  - unordered-graphs
-  - unordered-intmap
-  - unpack-funcs
-  - unpacked-either
-  - unpacked-maybe
-  - unpacked-maybe-numeric
-  - unpacked-these
-  - unpacked-validation
-  - unparse-attoparsec
-  - unroll-ghc-plugin
-  - unsafely
-  - unscramble
-  - unsequential
-  - unused
-  - uom-plugin
-  - up
-  - Updater
-  - uploadcare
-  - upskirt
-  - urbit-airlock
-  - urbit-api
-  - urbit-hob
-  - ureader
-  - urembed
-  - uri
-  - uri-conduit
-  - uri-encoder
-  - uri-enumerator
-  - uri-enumerator-file
-  - uri-parse
-  - uri-template
-  - uri-templater
-  - url-bytes
-  - url-decoders
-  - url-generic
-  - URLb
-  - urlcheck
-  - urldecode
-  - UrlDisp
-  - urldisp-happstack
-  - urlencoded
-  - urlpath
-  - URLT
-  - urn
-  - urn-random
-  - urxml
-  - usb
-  - usb-enumerator
-  - usb-hid
-  - usb-id-database
-  - usb-iteratee
-  - usb-safe
-  - userid
-  - users-mysql-haskell
-  - users-persistent
-  - utf
-  - utf8-prelude
-  - utf8-validator
-  - UTFTConverter
-  - util-exception
-  - util-logict
-  - util-plus
-  - util-primitive
-  - util-primitive-control
-  - util-universe
-  - uu-cco
-  - uu-cco-examples
-  - uu-cco-hut-parsing
-  - uu-cco-uu-parsinglib
-  - uuagc-bootstrap
-  - uuagc-diagrams
-  - uuid-aeson
-  - uuid-bytes
-  - uuid-crypto
-  - uvector
-  - uvector-algorithms
-  - uxadt
-  - v4l2
-  - v4l2-examples
-  - vabal
-  - vabal-lib
-  - vacuum
-  - vacuum-cairo
-  - vacuum-graphviz
-  - vacuum-opengl
-  - vacuum-ubigraph
-  - valid-names
-  - validate-input
-  - validated-types
-  - Validation
-  - validations
-  - value-supply
-  - vampire
-  - var
-  - varan
-  - variable-precision
-  - variables
-  - variation
-  - vault-tool-server
-  - vault-trans
-  - vaultaire-common
-  - vcache
-  - vcache-trie
-  - vcard
-  - vcatt
-  - vcf
-  - vcsgui
-  - vcswrapper
-  - Vec-Boolean
-  - Vec-OpenGLRaw
-  - Vec-Transform
-  - vect-floating
-  - vect-floating-accelerate
-  - vect-opengl
-  - vector-bytestring
-  - vector-clock
-  - vector-conduit
-  - vector-endian
-  - vector-functorlazy
-  - vector-heterogenous
-  - vector-instances-collections
-  - vector-random
-  - vector-read-instances
-  - vector-space-map
-  - vector-space-opengl
-  - vector-space-points
-  - vector-static
-  - vector-text
-  - vega-view
-  - venzone
-  - Verba
-  - verbalexpressions
-  - verdict
-  - verdict-json
-  - verifiable-expressions
-  - verify
-  - verilog
-  - verismith
-  - versioning
-  - versioning-servant
-  - vflow-types
-  - vfr-waypoints
-  - vgrep
-  - vhd
-  - vhdl
-  - vicinity
-  - ViennaRNA-extras
-  - viewprof
-  - views
-  - vigilance
-  - Villefort
-  - vimeta
-  - vimus
-  - vintage-basic
-  - vinyl-json
-  - vinyl-named-sugar
-  - vinyl-operational
-  - vinyl-plus
-  - vinyl-utils
-  - vinyl-vectors
-  - virthualenv
-  - visibility
-  - vision
-  - visual-graphrewrite
-  - visual-prof
-  - visualize-cbn
-  - vitrea
-  - vk-aws-route53
-  - VKHS
-  - vocoder
-  - vocoder-audio
-  - vocoder-conduit
-  - vocoder-dunai
-  - voicebase
-  - vowpal-utils
-  - voyeur
-  - vpq
-  - VRML
-  - vte
-  - vtegtk3
-  - vty-examples
-  - vty-menu
-  - vty-ui
-  - vty-ui-extras
-  - vulkan-api
-  - waargonaut
-  - wacom-daemon
-  - waddle
-  - wahsp
-  - wai-cli
-  - wai-devel
-  - wai-git-http
-  - wai-graceful
-  - wai-handler-devel
-  - wai-handler-fastcgi
-  - wai-handler-hal
-  - wai-handler-scgi
-  - wai-handler-snap
-  - wai-handler-webkit
-  - wai-hmac-auth
-  - wai-lens
-  - wai-lite
-  - wai-logger-buffered
-  - wai-logger-prefork
-  - wai-make-assets
-  - wai-middleware-cache
-  - wai-middleware-cache-redis
-  - wai-middleware-catch
-  - wai-middleware-consul
-  - wai-middleware-content-type
-  - wai-middleware-crowd
-  - wai-middleware-delegate
-  - wai-middleware-etag
-  - wai-middleware-headers
-  - wai-middleware-hmac-client
-  - wai-middleware-preprocessor
-  - wai-middleware-rollbar
-  - wai-middleware-route
-  - wai-middleware-static-caching
-  - wai-middleware-travisci
-  - wai-middleware-validation
-  - wai-rate-limit-redis
-  - wai-request-spec
-  - wai-responsible
-  - wai-router
-  - wai-routes
-  - wai-routing
-  - wai-secure-cookies
-  - wai-session-alt
-  - wai-session-mysql
-  - wai-session-postgresql
-  - wai-static-cache
-  - wai-thrift
-  - wai-throttler
-  - waitfree
-  - waitra
-  - waldo
-  - wallpaper
-  - warc
-  - warp-dynamic
-  - warp-static
-  - warp-systemd
-  - warped
-  - WashNGo
-  - wasm
-  - watchdog
-  - watcher
-  - watchit
-  - WAVE
-  - WaveFront
-  - wavefront
-  - wavefront-obj
-  - wavesurfer
-  - wavy
-  - weak-bag
-  - weather-api
-  - web-css
-  - web-encodings
-  - web-mongrel2
-  - web-output
-  - web-page
-  - web-push
-  - web-rep
-  - web-routes-quasi
-  - web-routes-regular
-  - web-routes-transformers
-  - web-routing
-  - web3
-  - webapi
-  - webapp
-  - webauthn
-  - WebBits
-  - WebBits-Html
-  - WebBits-multiplate
-  - webcloud
-  - WebCont
-  - webcrank
-  - webcrank-dispatch
-  - webcrank-wai
-  - webdriver-angular
-  - webdriver-snoy
-  - webdriver-w3c
-  - WeberLogic
-  - webfinger-client
-  - webify
-  - webkit-javascriptcore
-  - webmention
-  - Webrexp
-  - webserver
-  - webshow
-  - websockets-rpc
-  - webwire
-  - WEditor
-  - WEditorBrick
-  - WEditorHyphen
-  - weekdaze
-  - weighted
-  - weighted-regexp
-  - welshy
-  - werewolf
-  - werewolf-slack
-  - what4
-  - Wheb
-  - wheb-mongo
-  - wheb-redis
-  - wheb-strapped
-  - while-lang-parser
-  - whim
-  - whiskers
-  - whitespace
-  - whois
-  - why3
-  - wide-word
-  - wide-word-instances
-  - WikimediaParser
-  - wikipedia4epub
-  - wild-bind-indicator
-  - wild-bind-task-x11
-  - windns
-  - windowslive
-  - winerror
-  - winery
-  - winio
-  - Wired
-  - wires
-  - wiring
-  - witty
-  - wkt
-  - wkt-geom
-  - wl-pprint-ansiterm
-  - wl-pprint-extras
-  - wl-pprint-terminfo
-  - WL500gPControl
-  - WL500gPLib
-  - wlc-hs
-  - WMSigner
-  - wobsurv
-  - woe
-  - woffex
-  - wol
-  - wolf
-  - word
-  - word2vec-model
-  - WordAlignment
-  - wordchoice
-  - wordify
-  - wordlist
-  - WordNet
-  - WordNet-ghc74
-  - wordpass
-  - wordpress-auth
-  - wordsearch
-  - work-time
-  - workdays
-  - Workflow
-  - workflow-extra
-  - workflow-osx
-  - workflow-pure
-  - workflow-types
-  - workflow-windows
-  - wp-archivebot
-  - wraxml
-  - wrecker
-  - wrecker-ui
-  - wreq-patchable
-  - wreq-sb
-  - wright
-  - writer-cps-full
-  - writer-cps-lens
-  - writer-cps-monads-tf
-  - writer-cps-morph
-  - ws
-  - wsdl
-  - wsedit
-  - wshterm
-  - wsjtx-udp
-  - wss-client
-  - wtk
-  - wtk-gtk
-  - wu-wei
-  - wumpus-basic
-  - wumpus-core
-  - wumpus-drawing
-  - wumpus-microprint
-  - wumpus-tree
-  - WURFL
-  - wxAsteroids
-  - WXDiffCtrl
-  - wxdirect
-  - wxFruit
-  - WxGeneric
-  - wxhnotepad
-  - wxSimpleCanvas
-  - wxturtle
-  - wyvern
-  - x-dsp
-  - X11-extras
-  - X11-rm
-  - X11-xdamage
-  - X11-xfixes
-  - xchat-plugin
-  - xcp
-  - xdcc
-  - xdot
-  - Xec
-  - xenstore
-  - xfconf
-  - xformat
-  - xhaskell-library
-  - xhb
-  - xhb-atom-cache
-  - xhb-ewmh
-  - xilinx-lava
-  - xine
-  - xing-api
-  - xkbcommon
-  - xkcd
-  - xleb
-  - xls
-  - xlsior
-  - xlsx-tabular
-  - xlsx-templater
-  - xml-catalog
-  - xml-conduit-decode
-  - xml-conduit-selectors
-  - xml-conduit-stylist
-  - xml-enumerator
-  - xml-enumerator-combinators
-  - xml-html-conduit-lens
-  - xml-monad
-  - xml-parsec
-  - xml-pipe
-  - xml-prettify
-  - xml-push
-  - xml-query
-  - xml-query-xml-conduit
-  - xml-query-xml-types
-  - xml-tydom-conduit
-  - xml-tydom-core
-  - xml2json
-  - xml2x
-  - XmlHtmlWriter
-  - xmltv
-  - XMMS
-  - xmms2-client
-  - xmms2-client-glib
-  - xmonad-bluetilebranch
-  - xmonad-contrib-bluetilebranch
-  - xmonad-contrib-gpl
-  - xmonad-dbus
-  - xmonad-eval
-  - xmonad-vanessa
-  - xmonad-windownames
-  - xmpipe
-  - XMPP
-  - xor
-  - xorshift-plus
-  - Xorshift128Plus
-  - xournal-builder
-  - xournal-convert
-  - xournal-parser
-  - xournal-render
-  - xournal-types
-  - xrefcheck
-  - xsact
-  - XSaiga
-  - xsd
-  - xslt
-  - xtc
-  - xxhash
-  - y0l0bot
-  - yabi-muno
-  - Yablog
-  - yackage
-  - YACPong
-  - yahoo-finance-api
-  - yahoo-finance-conduit
-  - yahoo-prices
-  - yahoo-web-search
-  - yajl
-  - yajl-enumerator
-  - yall
-  - yam
-  - yam-config
-  - yam-datasource
-  - yam-logger
-  - yam-redis
-  - yam-servant
-  - yam-transaction
-  - yam-transaction-odbc
-  - yam-web
-  - yaml-pretty-extras
-  - yaml-rpc
-  - yaml-rpc-scotty
-  - yaml-rpc-snap
-  - yaml-unscrambler
-  - YamlReference
-  - yampa-glfw
-  - yampa-gloss
-  - yampa-glut
-  - yampa-sdl2
-  - yampa-test
-  - yampa2048
-  - YampaSynth
-  - yandex-translate
-  - yaop
-  - yap
-  - yarr
-  - yarr-image-io
-  - yasi
-  - yavie
-  - yaya-test
-  - yaya-unsafe-test
-  - ycextra
-  - yeamer
-  - yeller
-  - yeshql
-  - yeshql-hdbc
-  - yeshql-postgresql-simple
-  - yesod-angular
-  - yesod-angular-ui
-  - yesod-articles
-  - yesod-auth-account
-  - yesod-auth-account-fork
-  - yesod-auth-bcrypt
-  - yesod-auth-bcryptdb
-  - yesod-auth-deskcom
-  - yesod-auth-hmac-keccak
-  - yesod-auth-kerberos
-  - yesod-auth-ldap
-  - yesod-auth-ldap-mediocre
-  - yesod-auth-ldap-native
-  - yesod-auth-lti13
-  - yesod-auth-nopassword
-  - yesod-auth-oauth2
-  - yesod-auth-pam
-  - yesod-auth-smbclient
-  - yesod-auth-zendesk
-  - yesod-bootstrap
-  - yesod-colonnade
-  - yesod-comments
-  - yesod-content-pdf
-  - yesod-continuations
-  - yesod-crud
-  - yesod-crud-persist
-  - yesod-datatables
-  - yesod-dsl
-  - yesod-examples
-  - yesod-fast-devel
-  - yesod-fay
-  - yesod-filter
-  - yesod-form-richtext
-  - yesod-gitrev
-  - yesod-goodies
-  - yesod-ip
-  - yesod-job-queue
-  - yesod-links
-  - yesod-lucid
-  - yesod-mangopay
-  - yesod-markdown
-  - yesod-media-simple
-  - yesod-page-cursor
-  - yesod-paginate
-  - yesod-pagination
-  - yesod-paypal-rest
-  - yesod-platform
-  - yesod-pnotify
-  - yesod-pure
-  - yesod-purescript
-  - yesod-raml
-  - yesod-raml-bin
-  - yesod-raml-docs
-  - yesod-raml-mock
-  - yesod-recaptcha
-  - yesod-routes
-  - yesod-routes-flow
-  - yesod-routes-typescript
-  - yesod-rst
-  - yesod-s3
-  - yesod-sass
-  - yesod-session-redis
-  - yesod-static-angular
-  - yesod-static-remote
-  - yesod-test-json
-  - yesod-tls
-  - yesod-vend
-  - yesod-worker
-  - YFrob
-  - yggdrasil
-  - yhccore
-  - yhseq
-  - yi
-  - yi-contrib
-  - yi-core
-  - yi-dynamic-configuration
-  - yi-emacs-colours
-  - yi-frontend-pango
-  - yi-frontend-vty
-  - yi-fuzzy-open
-  - yi-ireader
-  - yi-keymap-cua
-  - yi-keymap-emacs
-  - yi-keymap-vim
-  - yi-language
-  - yi-misc-modes
-  - yi-mode-haskell
-  - yi-mode-javascript
-  - yi-monokai
-  - yi-snippet
-  - yi-solarized
-  - yi-spolsky
-  - yices
-  - yjftp
-  - yjftp-libs
-  - yoctoparsec
-  - yoda
-  - Yogurt
-  - Yogurt-Standalone
-  - yoko
-  - york-lava
-  - yql
-  - yst
-  - yu-auth
-  - yu-core
-  - yu-launch
-  - yu-tool
-  - yu-utils
-  - yuuko
-  - yx
-  - yxdb-utils
-  - Z-Data
-  - Z-IO
-  - Z-MessagePack
-  - Z-YAML
-  - z3-encoding
-  - z85
-  - zabt
-  - zampolit
-  - zasni-gerna
-  - zbar
-  - ZEBEDDE
-  - zendesk-api
-  - zenhack-prelude
-  - zeno
-  - zephyr
-  - zerobin
-  - zeromq-haskell
-  - zeromq3-conduit
-  - zeromq3-haskell
-  - zeromq4-clone-pattern
-  - zeromq4-conduit
-  - zeromq4-patterns
-  - zeroth
-  - zettelkast
-  - ZFS
-  - zifter
-  - zifter-cabal
-  - zifter-git
-  - zifter-google-java-format
-  - zifter-hindent
-  - zifter-hlint
-  - zifter-stack
-  - zigbee-znet25
-  - zip-conduit
-  - zipedit
-  - zipkin
-  - zipper
-  - zippo
-  - ziptastic-client
-  - ziptastic-core
-  - zlib-enum
-  - zm
-  - ZMachine
-  - zmcat
-  - zmidi-score
-  - zoneinfo
-  - zoom
-  - zoom-cache
-  - zoom-cache-pcm
-  - zoom-cache-sndfile
-  - zoom-refs
-  - zoovisitor
-  - zsdd
-  - zsh-battery
-  - zsyntax
-  - ztar
-  - zuramaru
-  - Zwaluw
-  - zxcvbn-dvorak
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
new file mode 100644
index 000000000000..bc9881ee1fca
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -0,0 +1,5336 @@
+broken-packages:
+  # These packages don't compile.
+  - 3d-graphics-examples
+  - 3dmodels
+  - AAI
+  - abcnotation
+  - abeson
+  - abides
+  - abnf
+  - AbortT-transformers
+  - abstract-par-accelerate
+  - abt
+  - AC-BuildPlatform
+  - acc
+  - accelerate-fftw
+  - accelerate-llvm-native
+  - accelerate-random
+  - accelerate-utility
+  - accentuateus
+  - access-time
+  - AC-EasyRaster-GTK
+  - AC-HalfInteger
+  - achille
+  - acid-state-dist
+  - acid-state-tls
+  - ac-machine
+  - ACME
+  - acme-all-monad
+  - acme-comonad
+  - acme-dont
+  - acme-flipping-tables
+  - acme-hq9plus
+  - acme-http
+  - acme-inator
+  - acme-kitchen-sink
+  - acme-left-pad
+  - acme-memorandom
+  - acme-miscorder
+  - acme-mutable-package
+  - acme-now
+  - acme-numbersystem
+  - acme-operators
+  - acme-schoenfinkel
+  - acme-strfry
+  - acme-stringly-typed
+  - acme-this
+  - acme-zalgo
+  - acme-zero
+  - AC-MiniTest
+  - AC-Terminal
+  - ActionKid
+  - activehs-base
+  - activitypub
+  - activitystreams-aeson
+  - acts
+  - AC-VanillaArray
+  - AC-Vector
+  - Adaptive
+  - Adaptive-Blaisorblade
+  - adaptive-containers
+  - adaptive-tuple
+  - adb
+  - adjunction
+  - adobe-swatch-exchange
+  - ADPfusion
+  - adp-multi
+  - adtrees
+  - aern2-mp
+  - AERN-Basics
+  - aeson-applicative
+  - aeson-decode
+  - aeson-diff-generic
+  - aeson-filthy
+  - aeson-flowtyped
+  - aeson-match-qq
+  - aeson-options
+  - aeson-prefix
+  - aeson-schema
+  - aeson-schemas
+  - aeson-smart
+  - aeson-streams
+  - aeson-t
+  - aeson-tiled
+  - aeson-typescript
+  - aeson-utils
+  - aeson-via
+  - affection
+  - affine-invariant-ensemble-mcmc
+  - Agata
+  - agda-language-server
+  - agda-snippets
+  - AGI
+  - ag-pictgen
+  - AhoCorasick
+  - aig
+  - airbrake
+  - airtable-api
+  - air-th
+  - ajhc
+  - AlanDeniseEricLauren
+  - alerta
+  - alex-prelude
+  - alfred
+  - alga
+  - algebra-dag
+  - algebraic
+  - algebraic-prelude
+  - AlgorithmW
+  - algo-s
+  - align-text
+  - ally-invest
+  - alphachar
+  - alsa
+  - alsa-midi
+  - altcomposition
+  - alternative-extra
+  - alternative-io
+  - alto
+  - alure
+  - amazon-emailer
+  - amazon-products
+  - amby
+  - AMI
+  - amqp-conduit
+  - analyze
+  - anansi-pandoc
+  - android
+  - android-activity
+  - android-lint-summary
+  - angel
+  - angle
+  - Animas
+  - animascii
+  - animate
+  - annotated-fix
+  - anonymous-sums
+  - ansigraph
+  - antfarm
+  - antigate
+  - antimirov
+  - antiope-optparse-applicative
+  - antiquoter
+  - antisplice
+  - antlr-haskell
+  - anydbm
+  - aop-prelude
+  - aosd
+  - aos-signature
+  - apart
+  - apecs-stm
+  - api-builder
+  - api-rpc-factom
+  - apns-http2
+  - appc
+  - app-lens
+  - AppleScript
+  - applicative-fail
+  - applicative-parsec
+  - applicative-quoters
+  - applicative-splice
+  - apply-unordered
+  - approveapi
+  - approx
+  - ApproxFun-hs
+  - arbb-vm
+  - arb-fft
+  - arbor-monad-counter
+  - arbor-monad-logger
+  - arbor-monad-metric
+  - arbor-postgres
+  - archiver
+  - archlinux
+  - archnews
+  - arena
+  - argon2
+  - argparser
+  - arguedit
+  - arion
+  - armada
+  - arpa
+  - arpack
+  - arrayfire
+  - array-primops
+  - ArrayRef
+  - arrowapply-utils
+  - arrow-improve
+  - arrow-list
+  - arrowp
+  - arrowp-qq
+  - ArrowVHDL
+  - artery
+  - artifact
+  - asap
+  - ascii85-conduit
+  - ascii-flatten
+  - ascii-string
+  - ascii-vector-avc
+  - asil
+  - asn
+  - asn1-codec
+  - asn1-data
+  - assert
+  - assert4hs
+  - assert4hs-core
+  - assertions
+  - asset-map
+  - assumpta
+  - ast-monad
+  - astrds
+  - async-combinators
+  - async-dejafu
+  - asynchronous-exceptions
+  - async-manager
+  - async-timer
+  - aterm-utils
+  - atndapi
+  - atomic-modify
+  - atomic-primops-vector
+  - atom-msp430
+  - atomo
+  - atp-haskell
+  - ats-pkg
+  - ats-setup
+  - ats-storable
+  - attempt
+  - attic-schedule
+  - AttoBencode
+  - atto-lisp
+  - attomail
+  - attoparsec-text
+  - attoparsec-trans
+  - attosplit
+  - Attrac
+  - augeas
+  - augur
+  - aur
+  - aur-api
+  - Aurochs
+  - authenticate-ldap
+  - authinfo-hs
+  - auto
+  - autom
+  - automata
+  - autonix-deps
+  - autopack
+  - avatar-generator
+  - avl-static
+  - avr-shake
+  - awesome-prelude
+  - awesomium-raw
+  - aws-cloudfront-signer
+  - aws-easy
+  - aws-ec2
+  - aws-ec2-knownhosts
+  - aws-general
+  - aws-larpi
+  - aws-performance-tests
+  - aws-route53
+  - aws-sdk-text-converter
+  - aws-simple
+  - axel
+  - azubi
+  - azure-acs
+  - azure-email
+  - azurify
+  - b9
+  - backstop
+  - backtracking-exceptions
+  - backward-state
+  - bag
+  - Baggins
+  - bake
+  - Bang
+  - ban-instance
+  - bank-holiday-usa
+  - banwords
+  - barchart
+  - barcodes-code128
+  - barecheck
+  - barrie
+  - barrier
+  - barrier-monad
+  - base16
+  - base64-conduit
+  - base-compat-migrate
+  - base-encoding
+  - base-feature-macros
+  - base-generics
+  - base-io-access
+  - basex-client
+  - basic
+  - basic-sop
+  - baskell
+  - battlenet
+  - battleship-combinatorics
+  - bazel-coverage-report-renderer
+  - BCMtools
+  - bdd
+  - bdo
+  - beam
+  - beamable
+  - beam-core
+  - bech32
+  - bed-and-breakfast
+  - beeminder-api
+  - Befunge93
+  - BenchmarkHistory
+  - bench-show
+  - bencodex
+  - berkeleydb
+  - BerkeleyDBXML
+  - bert
+  - besout
+  - bet
+  - betacode
+  - betris
+  - bgmax
+  - bgzf
+  - bhoogle
+  - bibdb
+  - bidi-icu
+  - bidirectional
+  - bidirectionalization-combined
+  - bidispec
+  - bidispec-extras
+  - BiGUL
+  - billeksah-services
+  - binary-bits
+  - binary-communicator
+  - binary-derive
+  - binary-ext
+  - binary-indexed-tree
+  - binary-protocol
+  - binary-typed
+  - BinderAnn
+  - binding-gtk
+  - bindings-apr
+  - bindings-bfd
+  - bindings-cctools
+  - bindings-common
+  - bindings-dc1394
+  - bindings-eskit
+  - bindings-EsounD
+  - bindings-fann
+  - bindings-fluidsynth
+  - bindings-friso
+  - bindings-gsl
+  - bindings-hamlib
+  - bindings-hdf5
+  - bindings-K8055
+  - bindings-levmar
+  - bindings-libftdi
+  - bindings-libg15
+  - bindings-libpci
+  - bindings-librrd
+  - bindings-libstemmer
+  - bindings-libusb
+  - bindings-libv4l2
+  - bindings-monetdb-mapi
+  - bindings-mpdecimal
+  - bindings-sc3
+  - bindings-sipc
+  - bindings-wlc
+  - bind-marshal
+  - bindynamic
+  - binembed
+  - bio
+  - BiobaseNewick
+  - biocore
+  - biohazard
+  - bio-sequence
+  - birds-of-paradise
+  - bisect-binary
+  - bishbosh
+  - bitcoin-hs
+  - bitcoin-script
+  - bits-atomic
+  - bits-conduit
+  - bitset
+  - bits-extras
+  - bitspeak
+  - bit-stream
+  - BitStringRandomMonad
+  - bitx-bitcoin
+  - bizzlelude-js
+  - bkr
+  - blakesum
+  - blas
+  - blaze-html-contrib
+  - blaze-html-hexpat
+  - blaze-html-truncate
+  - blaze-json
+  - blazeT
+  - blaze-textual-native
+  - bliplib
+  - blockchain
+  - blockhash
+  - Blogdown
+  - bloodhound
+  - bloomfilter-redis
+  - blosum
+  - blubber-server
+  - Blueprint
+  - bluetileutils
+  - blunk-hask-tests
+  - bogocopy
+  - boilerplate
+  - bolt
+  - boltzmann-brain
+  - bond
+  - bookkeeper
+  - boolean-normal-forms
+  - boolexpr
+  - boombox
+  - boots-app
+  - boring-window-switcher
+  - bot
+  - botpp
+  - bottom
+  - bounded-array
+  - bound-extras
+  - braid
+  - brain-bleep
+  - Bravo
+  - brians-brain
+  - brick-dropdownmenu
+  - bricks-internal
+  - brillig
+  - broccoli
+  - brok
+  - broker-haskell
+  - bronyradiogermany-common
+  - brotli
+  - browscap
+  - bsd-sysctl
+  - bson-generic
+  - bson-generics
+  - bsparse
+  - btree-concurrent
+  - buffer
+  - buffer-builder-aeson
+  - BufferedSocket
+  - buffet
+  - buffon
+  - buffon-machines
+  - bugsnag-haskell
+  - bugzilla
+  - build
+  - buildable
+  - buildbox
+  - builder
+  - bullet
+  - bumper
+  - bunz
+  - burst-detection
+  - buster
+  - Buster
+  - butter
+  - buttplug-hs-core
+  - bv-sized
+  - bytable
+  - bytearray-parsing
+  - bytestring-arbitrary
+  - bytestring-builder-varword
+  - bytestring-class
+  - bytestring-csv
+  - bytestringparser
+  - bytestringparser-temporary
+  - bytestring-plain
+  - bytestringreadp
+  - bytestring-rematch
+  - bytestring-show
+  - bytestring-substring
+  - bytestring-time
+  - bytestring-trie
+  - bytestring-typenats
+  - c0parser
+  - c10k
+  - c2ats
+  - cabal2doap
+  - cabal2ebuild
+  - cabal2ghci
+  - cabal-audit
+  - cabal-bundle-clib
+  - cabal-constraints
+  - cabal-db
+  - cabal-dependency-licenses
+  - cabal-dev
+  - cabal-dir
+  - cabal-edit
+  - cabal-file-th
+  - cabal-ghc-dynflags
+  - cabal-ghci
+  - cabalgraph
+  - cabal-graphdeps
+  - Cabal-ide-backend
+  - cabal-info
+  - cabal-install-bundle
+  - cabal-install-ghc72
+  - cabal-install-ghc74
+  - cabalish
+  - cabal-lenses
+  - cabal-meta
+  - cabal-mon
+  - cabal-nirvana
+  - cabal-progdeps
+  - cabalQuery
+  - CabalSearch
+  - cabal-setup
+  - cabal-sort
+  - cabal-src
+  - cabal-test-quickcheck
+  - cabal-upload
+  - cabalvchk
+  - cabin
+  - cabocha
+  - cached
+  - cache-polysemy
+  - caching
+  - cacophony
+  - caerbannog
+  - cafeteria-prelude
+  - caffegraph
+  - cairo-core
+  - cake3
+  - cal3d
+  - calamity
+  - caledon
+  - calenderweek
+  - call-alloy
+  - cal-layout
+  - call-haskell-from-anything
+  - canon
+  - canonical-filepath
+  - canonical-json
+  - canteven-listen-http
+  - canteven-log
+  - canteven-parsedate
+  - cantor
+  - Capabilities
+  - capnp
+  - capped-list
+  - capri
+  - caramia
+  - carbonara
+  - carettah
+  - CarneadesDSL
+  - carte
+  - Cartesian
+  - casa-abbreviations-and-acronyms
+  - casadi-bindings-internal
+  - Cascade
+  - cascading
+  - caseof
+  - Cassava
+  - cassava-conduit
+  - cassava-records
+  - cassette
+  - castle
+  - catamorphism
+  - Catana
+  - catch-fd
+  - category-traced
+  - catnplus
+  - cautious-file
+  - cautious-gen
+  - cayene-lpp
+  - cayley-client
+  - CCA
+  - CC-delcont-cxe
+  - CC-delcont-exc
+  - CC-delcont-ref
+  - CC-delcont-ref-tf
+  - cci
+  - ccnx
+  - c-dsl
+  - cedict
+  - cef
+  - cef3-raw
+  - cellrenderer-cairo
+  - cerberus
+  - cereal-derive
+  - cereal-ieee754
+  - cereal-plus
+  - cf
+  - cfenv
+  - cg
+  - cgen
+  - cgi-utils
+  - chalkboard
+  - chalmers-lava2000
+  - character-cases
+  - charter
+  - chart-histogram
+  - Chart-simple
+  - chatty-text
+  - chatwork
+  - checked
+  - Checked
+  - checkmate
+  - chell-quickcheck
+  - chiasma
+  - Chitra
+  - choose
+  - chorale
+  - chp
+  - chp-spec
+  - ChristmasTree
+  - chronograph
+  - chr-parse
+  - chunky
+  - church
+  - church-maybe
+  - cielo
+  - cil
+  - cinvoke
+  - c-io
+  - cio
+  - cipher-blowfish
+  - circlehs
+  - circular
+  - citeproc-hs
+  - cjk
+  - cj-token
+  - clang-compilation-database
+  - clang-pure
+  - clanki
+  - clarifai
+  - CLASE
+  - clash-prelude
+  - Clash-Royale-Hack-Cheats
+  - ClassLaws
+  - classy-influxdb-simple
+  - classy-parallel
+  - classyplate
+  - ClassyPrelude
+  - cld2
+  - Clean
+  - clean-unions
+  - clevercss
+  - clexer
+  - CLI
+  - cli-builder
+  - clickhouse-haskell
+  - clif
+  - clifm
+  - clingo
+  - clippard
+  - clipper
+  - clisparkline
+  - clit
+  - clogparse
+  - clone-all
+  - closure
+  - cloudfront-signer
+  - clr-inline
+  - cluss
+  - clustering
+  - cmark-highlight
+  - cmark-patterns
+  - cmark-sections
+  - cmath
+  - cmd-item
+  - cmdlib
+  - cmdtheline
+  - cmf
+  - cmonad
+  - c-mosquitto
+  - cmph
+  - CMQ
+  - cmt
+  - coalpit
+  - cobot-io
+  - cobot-tools
+  - code-builder
+  - codec-beam
+  - codec-libevent
+  - codecov-haskell
+  - codepad
+  - codeworld-api
+  - codex
+  - codo-notation
+  - coin
+  - coinbase-pro
+  - coincident-root-loci
+  - colchis
+  - collada-output
+  - collapse-util
+  - collections
+  - collections-api
+  - co-log-polysemy
+  - co-log-sys
+  - colonnade
+  - colorless
+  - coltrane
+  - com
+  - comark-syntax
+  - combinat-diagrams
+  - combinatorial-problems
+  - combinator-interactive
+  - combobuffer
+  - Command
+  - commander
+  - Commando
+  - commodities
+  - commonmark-cli
+  - commsec
+  - compactable
+  - Compactable
+  - compact-list
+  - compact-map
+  - compact-mutable-vector
+  - compact-socket
+  - compact-string
+  - compact-string-fix
+  - compdata-dags
+  - compdata-param
+  - competition
+  - compilation
+  - complex-generic
+  - compose-trans
+  - composite-opaleye
+  - composition-tree
+  - comprehensions-ghc
+  - compressed
+  - compstrat
+  - comptrans
+  - computational-geometry
+  - computations
+  - ConClusion
+  - concrete-relaxng-parser
+  - concrete-typerep
+  - concurrent-buffer
+  - Concurrent-Cache
+  - Concurrential
+  - concurrent-state
+  - condorcet
+  - conductive-base
+  - conduit-audio-lame
+  - conduit-audio-samplerate
+  - conduit-find
+  - conduit-iconv
+  - conduit-network-stream
+  - conduit-resumablesink
+  - conduit-throttle
+  - conduit-tokenize-attoparsec
+  - conduit-vfs
+  - conf
+  - conferer-provider-json
+  - conferer-snap
+  - conferer-source-json
+  - confide
+  - ConfigFileTH
+  - config-parser
+  - Configurable
+  - configuration
+  - config-value-getopt
+  - confsolve
+  - congruence-relation
+  - conjure
+  - conkin
+  - conlogger
+  - connection-string
+  - Conscript
+  - consistent
+  - console-program
+  - const-math-ghc-plugin
+  - constrained-categories
+  - constrained-category
+  - constrained-dynamic
+  - constrained-monads
+  - ConstraintKinds
+  - constraints-emerge
+  - constr-eq
+  - constructive-algebra
+  - consul-haskell
+  - Consumer
+  - containers-benchmark
+  - containers-verified
+  - ContArrow
+  - content-store
+  - ContextAlgebra
+  - context-free-grammar
+  - context-stack
+  - contiguous-checked
+  - continue
+  - Contract
+  - control-iso
+  - control-monad-failure
+  - control-monad-failure-mtl
+  - Control-Monad-ST2
+  - contstuff-monads-tf
+  - contstuff-transformers
+  - convert-annotation
+  - copilot-sbv
+  - copr
+  - COrdering
+  - core
+  - corebot-bliki
+  - CoreDump
+  - CoreErlang
+  - core-haskell
+  - Coroutine
+  - coroutine-object
+  - CouchDB
+  - couchdb-conduit
+  - couch-hs
+  - counter
+  - courier
+  - court
+  - coverage
+  - cparsing
+  - cpio-conduit
+  - cplusplus-th
+  - cpuperf
+  - cpython
+  - cql-io
+  - cqrs-core
+  - cr
+  - crack
+  - Craft3e
+  - craftwerk
+  - crawlchain
+  - crc
+  - crc16
+  - crdt-event-fold
+  - creatur
+  - credential-store
+  - critbit
+  - criterion-compare
+  - criterion-plus
+  - criterion-to-html
+  - criu-rpc-types
+  - crjdt-haskell
+  - crocodile
+  - cruncher-types
+  - crunghc
+  - crypto-cipher-benchmarks
+  - crypto-classical
+  - cryptocompare
+  - cryptoconditions
+  - cryptoids-types
+  - crypto-keys-ssh
+  - crypto-multihash
+  - crypto-pubkey-openssh
+  - crypto-random-effect
+  - crypto-simple
+  - cryptsy-api
+  - cse-ghc-plugin
+  - CSPM-FiringRules
+  - CSPM-Frontend
+  - cspretty
+  - css
+  - css-easings
+  - css-selectors
+  - csv-nptools
+  - ctemplate
+  - ctkl
+  - cubical
+  - cuboid
+  - cuckoo
+  - curl-runnings
+  - currency-convert
+  - CurryDB
+  - curryer-rpc
+  - curry-frontend
+  - curves
+  - custom-prelude
+  - CV
+  - d3js
+  - dag
+  - DAG-Tournament
+  - damnpacket
+  - danibot
+  - dao
+  - Dao
+  - darcs2dot
+  - darcs-buildpackage
+  - darcs-cabalized
+  - darcs-graph
+  - darcs-monitor
+  - darkplaces-rcon
+  - darkplaces-text
+  - data-accessor-monads-tf
+  - data-aviary
+  - data-base
+  - database-id-groundhog
+  - database-study
+  - data-check
+  - data-combinator-gen
+  - data-concurrent-queue
+  - data-construction
+  - data-dispersal
+  - data-diverse-lens
+  - datadog
+  - data-easy
+  - data-embed
+  - data-emoticons
+  - data-filepath
+  - data-fin
+  - data-fin-simple
+  - datafix
+  - data-flagset
+  - data-ivar
+  - data-kiln
+  - data-lens
+  - datalog
+  - data-map-multikey
+  - data-nat
+  - data-object
+  - datapacker
+  - data-pprint
+  - data-quotientref
+  - data-reify-cse
+  - data-repr
+  - data-rev
+  - data-rope
+  - Data-Rope
+  - data-r-tree
+  - data-size
+  - data-spacepart
+  - data-standards
+  - data-store
+  - data-stringmap
+  - data-sword
+  - DataTreeView
+  - data-type
+  - data-util
+  - data-validation
+  - data-variant
+  - DataVersion
+  - dates
+  - datetime
+  - datetime-sb
+  - dawdle
+  - dawg
+  - dbcleaner
+  - dbf
+  - DBFunctor
+  - DBlimited
+  - dbm
+  - dbmigrations-mysql
+  - dbmigrations-postgresql
+  - dbmigrations-sqlite
+  - d-bus
+  - DBus
+  - dbus-core
+  - dbus-qq
+  - dclabel
+  - dclabel-eci11
+  - dcpu16
+  - ddc-base
+  - ddc-code
+  - dead-code-detection
+  - Deadpan-DDP
+  - dead-simple-json
+  - debug-me
+  - debug-tracy
+  - decepticons
+  - decimal-literals
+  - DecisionTree
+  - decoder-conduit
+  - deepcontrol
+  - DeepDarkFantasy
+  - deepseq-bounded
+  - deepseq-magic
+  - deepseq-th
+  - deep-transformations
+  - deka
+  - Delta-Lambda
+  - delude
+  - demarcate
+  - denominate
+  - dense-int-set
+  - dependent-hashmap
+  - dependent-monoidal-map
+  - depends
+  - dep-t
+  - deptrack-core
+  - derangement
+  - derivation-trees
+  - derive
+  - derive-enumerable
+  - derive-gadt
+  - derive-monoid
+  - derive-trie
+  - derp-lib
+  - describe
+  - descript-lang
+  - deterministic-game-engine
+  - deunicode
+  - devil
+  - Dflow
+  - dfsbuild
+  - dgim
+  - dgs
+  - dhall-check
+  - dhall-fly
+  - dhall-text
+  - dhall-to-cabal
+  - dhrun
+  - dia-base
+  - diagrams-boolean
+  - diagrams-builder
+  - diagrams-canvas
+  - diagrams-graphviz
+  - diagrams-gtk
+  - diagrams-pdf
+  - diagrams-qrcode
+  - diagrams-tikz
+  - dib
+  - dice2tex
+  - dicom
+  - dictionaries
+  - dictparser
+  - diet
+  - diff
+  - diffcabal
+  - differential
+  - DifferentialEvolution
+  - diffmap
+  - difftodo
+  - digestive-bootstrap
+  - digestive-foundation-lucid
+  - digestive-functors-aeson
+  - digestive-functors-happstack
+  - digest-pure
+  - DigitalOcean
+  - digitalocean-kzs
+  - digits
+  - DimensionalHash
+  - dimensional-tf
+  - diohsc
+  - diophantine
+  - direct-binary-files
+  - directed-cubical
+  - direct-fastcgi
+  - direct-http
+  - directory-contents
+  - direct-plugins
+  - direct-rocksdb
+  - direm
+  - discord-haskell
+  - discordian-calendar
+  - discord-types
+  - discrete
+  - DiscussionSupportSystem
+  - Dish
+  - disjoint-containers
+  - disjoint-set
+  - disjoint-set-stateful
+  - Dist
+  - distance
+  - distributed-fork-aws-lambda
+  - distributed-process
+  - distribution
+  - dist-upload
+  - djembe
+  - djinn-th
+  - dmcc
+  - dmenu
+  - dnscache
+  - dnsrbl
+  - dnssd
+  - dobutok
+  - doccheck
+  - docidx
+  - docker
+  - docker-build-cacher
+  - dockercook
+  - dockerfile-creator
+  - docopt
+  - docrecords
+  - doctest-discover-configurator
+  - doctest-prop
+  - docusign-example
+  - docvim
+  - domplate
+  - dotfs
+  - dot-linker
+  - doublify-toolkit
+  - downloader
+  - dozenal
+  - dozens
+  - dph-base
+  - dpkg
+  - DPM
+  - dpor
+  - dragen
+  - drawille
+  - drClickOn
+  - dresdner-verkehrsbetriebe
+  - DrIFT
+  - DrIFT-cabalized
+  - drifter-postgresql
+  - drmaa
+  - drone
+  - DSA
+  - dsc
+  - ds-kanren
+  - dsmc
+  - dson
+  - dson-parsec
+  - dstring
+  - DTC
+  - dtd-text
+  - dtw
+  - dualizer
+  - duet
+  - dump-core
+  - dunai-core
+  - Dung
+  - duplo
+  - dura
+  - Dust-crypto
+  - dvault
+  - dvdread
+  - dvi-processing
+  - dwarf
+  - dwarfadt
+  - dyckword
+  - dyepack
+  - dynamic-graphs
+  - dynamic-mvector
+  - dynamic-object
+  - dynamic-pp
+  - DynamicTimeWarp
+  - dynamodb-simple
+  - dynloader
+  - DysFRP
+  - dywapitchtrack
+  - dzen-dhall
+  - dzen-utils
+  - each
+  - earclipper
+  - early
+  - easy-api
+  - easy-bitcoin
+  - easyjson
+  - easyplot
+  - easytest
+  - ebeats
+  - ebnf-bff
+  - eccrypto
+  - ecma262
+  - ecu
+  - eddie
+  - ede
+  - edenmodules
+  - edis
+  - edit
+  - edit-lenses
+  - editline
+  - effect-handlers
+  - effect-monad
+  - effect-stack
+  - effin
+  - egison-pattern-src
+  - ehaskell
+  - ehs
+  - eibd-client-simple
+  - eigen
+  - Eight-Ball-Pool-Hack-Cheats
+  - eio
+  - EitherT
+  - either-unwrap
+  - ejdb2-binding
+  - ekg-bosun
+  - ekg-carbon
+  - ekg-elastic
+  - ekg-elasticsearch
+  - ekg-log
+  - ekg-push
+  - ekg-rrd
+  - ekg-wai
+  - elevator
+  - elision
+  - elm-street
+  - elm-websocket
+  - emacs-module
+  - emailaddress
+  - email-header
+  - email-postmark
+  - embla
+  - emgm
+  - Emping
+  - Empty
+  - empty-monad
+  - enchant
+  - encoding
+  - encoding-io
+  - encryptable
+  - engine-io-snap
+  - engine-io-wai
+  - engine-io-yesod
+  - entwine
+  - EnumContainers
+  - enumerator
+  - enumfun
+  - EnumMap
+  - enummapmap
+  - enum-utf8
+  - env-parser
+  - envstatus
+  - epanet-haskell
+  - epass
+  - epic
+  - epoll
+  - eprocess
+  - epubname
+  - Eq
+  - EqualitySolver
+  - equational-reasoning-induction
+  - equeue
+  - erlang
+  - erlang-ffi
+  - eros
+  - errata
+  - error-context
+  - error-continuations
+  - error-list
+  - error-loc
+  - error-util
+  - ersaconcat
+  - ersatz
+  - ert
+  - escape-artist
+  - escoger
+  - espial
+  - ess
+  - estimators
+  - EstProgress
+  - Etage
+  - eternal
+  - ethereum-rlp
+  - euphoria
+  - eurofxref
+  - evdev
+  - eve-cli
+  - event
+  - event-driven
+  - eventful-dynamodb
+  - eventful-sql-common
+  - eventlog2html
+  - eventloop
+  - eventstore
+  - ewe
+  - exact-cover
+  - exact-real-positional
+  - except-exceptions
+  - exceptional
+  - exceptionfree-readfile
+  - exchangerates
+  - execs
+  - executor
+  - exh
+  - exherbo-cabal
+  - exif
+  - exigo-schema
+  - exinst-deepseq
+  - exinst-hashable
+  - exists
+  - exitcode
+  - exp-cache
+  - exp-extended
+  - explain
+  - explicit-constraint-lens
+  - explicit-determinant
+  - explicit-iomodes
+  - exposed-containers
+  - expression-parser
+  - expressions
+  - expresso
+  - extcore
+  - extended-categories
+  - extensible-effects-concurrent
+  - extensible-skeleton
+  - external-sort
+  - Extra
+  - extractelf
+  - extralife
+  - ez3
+  - ez-couch
+  - Facebook-Password-Hacker-Online-Latest-Version
+  - faceted
+  - facts
+  - fadno-braids
+  - failable-list
+  - failure-detector
+  - fakedata
+  - fake-type
+  - faktory
+  - f-algebra-gen
+  - fastbayes
+  - fast-combinatorics
+  - fastedit
+  - fastly
+  - fast-nats
+  - fastpbkdf2
+  - FastPush
+  - FastxPipe
+  - fathead-util
+  - fay-builder
+  - fay-hsx
+  - fay-simplejson
+  - fbmessenger-api
+  - fb-persistent
+  - fca
+  - fcache
+  - fcg
+  - fckeditor
+  - fclabels-monadlib
+  - fcm-client
+  - fdo-trash
+  - feature-flipper
+  - fedora-packages
+  - feed-cli
+  - feed-collect
+  - feed-crawl
+  - fenfire
+  - fernet
+  - FerryCore
+  - Feval
+  - fez-conf
+  - ffeed
+  - fficxx
+  - ffunctor
+  - fgl-extras-decompositions
+  - fibon
+  - fieldwise
+  - fig
+  - file-collection
+  - file-command-qq
+  - filediff
+  - file-embed-poly
+  - file-location
+  - FileManip
+  - FileManipCompat
+  - fileneglect
+  - Files
+  - FileSystem
+  - filesystem-abstractions
+  - filesystem-conduit
+  - filesystem-trees
+  - fillit
+  - final-pretty-printer
+  - Finance-Quote-Yahoo
+  - find-conduit
+  - find-source-files
+  - fingertree-psqueue
+  - fingertree-tf
+  - finitary-derive
+  - firefly-example
+  - first-and-last
+  - first-class-instances
+  - fit
+  - fitsio
+  - fits-parse
+  - fixed-point
+  - fixedprec
+  - fixed-precision
+  - fixed-storable-array
+  - fixed-timestep
+  - fixed-vector-binary
+  - fixed-vector-cborg
+  - fixed-vector-cereal
+  - fixed-width
+  - fixer
+  - fixfile
+  - fixie
+  - fix-symbols-gitit
+  - fizzbuzz
+  - fizzbuzz-as-a-service
+  - flac
+  - flaccuraterip
+  - flamethrower
+  - flamingra
+  - flat-maybe
+  - flay
+  - flexible-time
+  - flickr
+  - flight-kml
+  - flink-statefulfun
+  - float-binstring
+  - floating-bits
+  - flowdock
+  - flowdock-rest
+  - flow-er
+  - flowlocks-framework
+  - flp
+  - fltkhs
+  - fluffy-parser
+  - fluidsynth
+  - flux-monoid
+  - fmark
+  - FModExRaw
+  - fn-extra
+  - foldl-incremental
+  - foldl-statistics
+  - foldl-transduce
+  - folds-common
+  - follow
+  - font-opengl-basic4x6
+  - forbidden-fruit
+  - fordo
+  - forecast-io
+  - foreign-var
+  - forest
+  - forest-fire
+  - forex2ledger
+  - for-free
+  - forger
+  - ForkableT
+  - formatn
+  - formattable
+  - formura
+  - ForSyDe
+  - forsyde-deep
+  - Fortnite-Hack-Cheats-Free-V-Bucks-Generator
+  - fortran-src
+  - fortytwo
+  - foscam-filename
+  - fpco-api
+  - FPretty
+  - fptest
+  - Fractaler
+  - fractals
+  - fraction
+  - frag
+  - Frames-map-reduce
+  - franchise
+  - fraxl
+  - freddy
+  - free-concurrent
+  - free-game
+  - f-ree-hack-cheats-free-v-bucks-generator
+  - free-http
+  - free-operational
+  - freer-effects
+  - freer-simple-catching
+  - freer-simple-http
+  - freer-simple-profiling
+  - freer-simple-random
+  - freer-simple-time
+  - freesect
+  - freesound
+  - free-theorems
+  - FreeTypeGL
+  - freetype-simple
+  - free-v-bucks-generator-no-survey
+  - free-v-bucks-generator-ps4-no-survey
+  - freq
+  - fresh
+  - friday-devil
+  - friday-scale-dct
+  - friendly
+  - frown
+  - frp-arduino
+  - frpnow
+  - fs-events
+  - fsh-csv
+  - fsmActions
+  - fst
+  - fsutils
+  - fswait
+  - fswatch
+  - ft-generator
+  - FTGL-bytestring
+  - ftp-client
+  - ftp-conduit
+  - ftphs
+  - full-sessions
+  - funbot-client
+  - funcons-values
+  - function-instances-algebra
+  - functor
+  - functor-combinators
+  - functor-friends
+  - functor-infix
+  - functorm
+  - functor-products
+  - functor-utils
+  - funflow
+  - Fungi
+  - funpat
+  - funspection
+  - fused-effects-exceptions
+  - fused-effects-resumable
+  - fusion
+  - futun
+  - future
+  - fuzzy-time-gen
+  - fuzzy-timings
+  - fwgl
+  - g4ip
+  - galois-field
+  - gameclock
+  - game-probability
+  - gamgee
+  - gamma
+  - Ganymede
+  - garepinoh
+  - gargoyle-postgresql-nix
+  - gas
+  - gather
+  - gc-monitoring-wai
+  - gconf
+  - gdiff-th
+  - gegl
+  - gelatin
+  - gemstone
+  - gencheck
+  - gender
+  - genders
+  - general-prelude
+  - GeneralTicTacToe
+  - generator
+  - generators
+  - generic-accessors
+  - generic-binary
+  - generic-church
+  - generic-enum
+  - generic-enumeration
+  - generic-labels
+  - generic-lens-labels
+  - generic-lucid-scaffold
+  - generic-maybe
+  - generic-override-aeson
+  - generic-pretty
+  - genericserialize
+  - generic-server
+  - generics-mrsop
+  - generic-storable
+  - generic-tree
+  - generic-trie
+  - generic-xml
+  - generic-xmlpickler
+  - genetics
+  - gen-imports
+  - geniplate
+  - gen-passwd
+  - genprog
+  - gentlemark
+  - genvalidity-persistent
+  - GeocoderOpenCage
+  - geodetics
+  - geodetic-types
+  - geojson-types
+  - geom2d
+  - GeomPredicates-SSE
+  - geo-resolver
+  - geos
+  - Get
+  - getflag
+  - GGg
+  - ggtsTC
+  - ghc-clippy-plugin
+  - ghc-core-smallstep
+  - ghc-datasize
+  - ghc-dump-tree
+  - ghc-dup
+  - ghc-events-analyze
+  - ghc-events-parallel
+  - ghc-generic-instances
+  - ghci-diagrams
+  - ghci-haskeline
+  - ghci-history-parser
+  - ghci-lib
+  - ghci-ng
+  - ghcjs-dom-jsffi
+  - ghcjs-fetch
+  - ghcjs-promise
+  - ghcjs-xhr
+  - ghc-justdoit
+  - ghclive
+  - ghc-man-completion
+  - ghc-parmake
+  - ghc-pkg-autofix
+  - ghc-pkg-lib
+  - ghc-plugs-out
+  - ghcprofview
+  - ghc-proofs
+  - ghc-session
+  - ghc-simple
+  - ghc-srcspan-plugin
+  - ghc-syb
+  - ghc-syb-utils
+  - ghc-tags
+  - ghc-tags-core
+  - ghc-time-alloc-prof
+  - ghc-usage
+  - gh-labeler
+  - giak
+  - Gifcurry
+  - gi-graphene
+  - gi-gsttag
+  - gi-gtkosxapplication
+  - gi-gtksheet
+  - gi-handy
+  - ginsu
+  - gipeda
+  - giphy-api
+  - gist
+  - GiST
+  - git
+  - git-all
+  - git-checklist
+  - git-config
+  - git-cuk
+  - git-date
+  - gitdo
+  - github-backup
+  - github-data
+  - github-tools
+  - github-utils
+  - github-webhook-handler
+  - githud
+  - gitignore
+  - git-jump
+  - gitlab-api
+  - gitlib-cmdline
+  - gitlib-utils
+  - git-repair
+  - git-sanity
+  - gitson
+  - gitter
+  - git-vogue
+  - gi-vips
+  - gi-wnck
+  - glade
+  - glapp
+  - Gleam
+  - GLFW
+  - GLFW-b-demo
+  - gli
+  - glider-nlp
+  - GLMatrix
+  - global-variables
+  - glob-posix
+  - GlomeTrace
+  - gloss-banana
+  - gloss-export
+  - gloss-game
+  - glpk-headers
+  - gltf-codec
+  - glue
+  - g-npm
+  - goa
+  - goal-core
+  - gochan
+  - godot-haskell
+  - gofer-prelude
+  - gooey
+  - google-cloud
+  - GoogleCodeJam
+  - google-html5-slide
+  - google-oauth2
+  - google-oauth2-easy
+  - googlepolyline
+  - google-search
+  - google-translate
+  - gopherbot
+  - gopro-plus
+  - gore-and-ash
+  - GotoT-transformers
+  - gpah
+  - GPipe
+  - GPipe-Core
+  - gpx-conduit
+  - grab
+  - graceful
+  - grafana
+  - Grafos
+  - grakn
+  - grapefruit-frp
+  - Graph500
+  - Graphalyze
+  - graphbuilder
+  - graphene
+  - graphics-drawingcombinators
+  - graphics-formats-collada
+  - graph-matchings
+  - graphmod-plugin
+  - graphql-api
+  - graphql-utils
+  - graphql-w-persistent
+  - graph-rewriting
+  - graph-serialize
+  - graphted
+  - graphula-core
+  - graph-utils
+  - graql
+  - grasp
+  - gray-code
+  - greencard
+  - greg-client
+  - gremlin-haskell
+  - Grempa
+  - grenade
+  - grm
+  - groot
+  - gross
+  - GroteTrap
+  - groundhog-converters
+  - groundhog-mysql
+  - grouped-list
+  - group-theory
+  - group-with
+  - growler
+  - grpc-api-etcd
+  - gsl-random
+  - gstreamer
+  - GTALib
+  - gtfs-realtime
+  - gtk2hs-hello
+  - gtk2hs-rpn
+  - gtk3-mac-integration
+  - gtkglext
+  - gtksourceview2
+  - gtksourceview3
+  - gtk-toy
+  - gulcii
+  - gw
+  - gyah-bin
+  - gym-http-api
+  - h2048
+  - h2c
+  - haar
+  - HABQT
+  - hack2-handler-warp
+  - hackage2hwn
+  - hackage-api
+  - hackage-diff
+  - hackage-mirror
+  - hackage-processing
+  - hackage-proxy
+  - hackager
+  - hackage-repo-tool
+  - hackage-whatsnew
+  - hackernews
+  - hack-frontend-happstack
+  - hack-handler-cgi
+  - hack-handler-happstack
+  - hack-handler-kibro
+  - HackMail
+  - hackport
+  - hactor
+  - hactors
+  - haddock-api
+  - haddock-cheatsheet
+  - haddock-leksah
+  - haddock-test
+  - hadoop-formats
+  - hadoop-rpc
+  - hafar
+  - Haggressive
+  - hahp
+  - haiji
+  - hailgun-send
+  - hairy
+  - hakaru
+  - hakismet
+  - hakka
+  - hako
+  - hakyll-blaze-templates
+  - hakyll-contrib
+  - hakyll-contrib-csv
+  - hakyll-contrib-elm
+  - hakyll-contrib-links
+  - hakyll-dhall
+  - hakyll-dir-list
+  - hakyll-process
+  - hakyll-R
+  - hakyll-series
+  - hakyll-shortcode
+  - hakyll-shortcut-links
+  - HaLeX
+  - halfs
+  - halipeto
+  - halive
+  - halma
+  - halves
+  - hampp
+  - hamsql
+  - hamtmap
+  - hanabi-dealer
+  - handa-gdata
+  - handle-like
+  - HandlerSocketClient
+  - handsy
+  - Hangman
+  - hannahci
+  - hans
+  - hanspell
+  - haphviz
+  - hapistrano
+  - happindicator
+  - happindicator3
+  - happlets
+  - happraise
+  - happstack
+  - happstack-fay-ajax
+  - happstack-foundation
+  - happstack-hamlet
+  - happstack-heist
+  - happstack-hstringtemplate
+  - happstack-lite
+  - happstack-monad-peel
+  - happstack-server-tls-cryptonite
+  - happstack-util
+  - HAppS-Util
+  - happybara
+  - happybara-webkit-server
+  - happy-hour
+  - HappyTree
+  - hapstone
+  - HaPy
+  - haquery
+  - harchive
+  - haroonga
+  - harpy
+  - harvest-api
+  - has
+  - hasbolt-extras
+  - HasCacBDD
+  - hascard
+  - hascas
+  - Haschoo
+  - hash
+  - hashable-extras
+  - hashable-generics
+  - hashable-orphans
+  - hashabler
+  - hashed-storage
+  - hashring
+  - hashtables-plus
+  - hasim
+  - hask
+  - haskbot-core
+  - haskeline-class
+  - haskelisp
+  - haskell2010
+  - haskell2020
+  - haskell98
+  - haskell98libraries
+  - HaskellAnalysisProgram
+  - haskell-awk
+  - haskell-bitmex-rest
+  - haskell-brainfuck
+  - haskell-cnc
+  - haskell-coffee
+  - haskell-compression
+  - haskell-conll
+  - haskell-course-preludes
+  - haskelldb
+  - haskelldb-wx
+  - haskell-disque
+  - haskell-formatter
+  - haskell-generate
+  - haskell-go-checkers
+  - haskell-holes-th
+  - haskell-igraph
+  - haskell-in-space
+  - haskell-kubernetes
+  - HaskellLM
+  - haskell-lsp-client
+  - haskell-ml
+  - haskell-mpfr
+  - haskell-mpi
+  - haskell-names
+  - haskell-neo4j-client
+  - HaskellNet-SSL
+  - HaskellNN
+  - Haskelloids
+  - haskell-openflow
+  - haskell-overridez
+  - haskell-packages
+  - haskell-player
+  - haskell-plot
+  - haskell-postal
+  - haskell-read-editor
+  - haskell-rules
+  - haskellscrabble
+  - haskellscript
+  - haskell-snake
+  - haskell-spacegoo
+  - haskell-src-exts-prisms
+  - haskell-src-exts-qq
+  - haskell-src-exts-sc
+  - haskell-src-match
+  - haskell-src-meta-mwotton
+  - haskell-stack-trace-plugin
+  - HaskellTorrent
+  - HaskellTutorials
+  - haskell-type-exts
+  - haskell-typescript
+  - haskell-tyrant
+  - haskelzinc
+  - haskeme
+  - haskey
+  - haskheap
+  - haskhol-core
+  - hasklepias
+  - haskmon
+  - haskoin
+  - haskoin-util
+  - haskore
+  - hasktorch-codegen
+  - hasktorch-ffi-th
+  - hasktorch-signatures-partial
+  - hasktorch-signatures-support
+  - haskus-binary
+  - haskyapi
+  - hasmin
+  - hasqlator-mysql
+  - hasql-backend
+  - hasql-class
+  - hasql-cursor-transaction
+  - hasql-dynamic-statements
+  - hasql-generic
+  - hasql-simple
+  - hastache
+  - haste
+  - haste-prim
+  - hatex-guide
+  - hats
+  - hatt
+  - haven
+  - haverer
+  - hax
+  - haxl-amazonka
+  - haxl-facebook
+  - haxparse
+  - haxr-th
+  - hayland
+  - hayoo-cli
+  - hBDD-CMUBDD
+  - hBDD-CUDD
+  - hbeanstalk
+  - hbeat
+  - hblas
+  - hblock
+  - h-booru
+  - hburg
+  - hcad
+  - HCard
+  - hcc
+  - hcg-minus
+  - hchesslib
+  - hcltest
+  - hcoap
+  - hcom
+  - hcount
+  - hcron
+  - hCsound
+  - hcube
+  - hdaemonize-buildfix
+  - hdbc-aeson
+  - HDBC-mysql
+  - hdbc-postgresql-hstore
+  - HDBC-postgresql-hstore
+  - hdevtools
+  - hDFA
+  - hdigest
+  - hdis86
+  - hdiscount
+  - hdm
+  - hdo
+  - hdph-closure
+  - hdr-histogram
+  - HDRUtils
+  - headergen
+  - heap-console
+  - heapsort
+  - heart-core
+  - hebrew-time
+  - heckle
+  - hedgehog-checkers
+  - hedgehog-generic
+  - hedgehog-golden
+  - hedgehog-servant
+  - hedis-config
+  - hedis-namespace
+  - hedis-simple
+  - hedis-tags
+  - hedra
+  - hein
+  - heist-async
+  - helisp
+  - helix
+  - hell
+  - help-esb
+  - hemkay
+  - HERA
+  - herbalizer
+  - HerbiePlugin
+  - heredocs
+  - her-lexer
+  - Hermes
+  - herms
+  - hetero-dict
+  - heterogeneous-list-literals
+  - hetris
+  - heukarya
+  - hevm
+  - HExcel
+  - hexchat
+  - hexif
+  - hexmino
+  - hexml-lens
+  - hexpat-pickle-generic
+  - hexpr
+  - hexpress
+  - hexquote
+  - hexstring
+  - hext
+  - heyefi
+  - hF2
+  - hfann
+  - HFitUI
+  - hfmt
+  - hfoil
+  - hfov
+  - hfractal
+  - HFrequencyQueue
+  - hfusion
+  - hg-buildpackage
+  - hgdbmi
+  - HGE2D
+  - hgearman
+  - hGelf
+  - hgeometric
+  - hgeometry-ipe
+  - hgettext
+  - hgis
+  - hgom
+  - hgopher
+  - h-gpgme
+  - HGraphStorage
+  - hgrep
+  - hgrib
+  - hharp
+  - HHDL
+  - hhwloc
+  - hi
+  - hi3status
+  - hichi
+  - hidden-char
+  - hid-examples
+  - hie-core
+  - hieraclus
+  - hierarchical-env
+  - hierarchical-exceptions
+  - hierarchy
+  - hiernotify
+  - higgledy
+  - higherorder
+  - highjson
+  - highlight-versions
+  - highWaterMark
+  - himg
+  - hindley-milner
+  - hinquire
+  - hinstaller
+  - hinter
+  - hinterface
+  - hipchat-hs
+  - hipe
+  - Hipmunk
+  - hipsql-api
+  - hircules
+  - Hish
+  - hissmetrics
+  - historian
+  - hist-pl-types
+  - hit-on
+  - HJavaScript
+  - hjcase
+  - hjs
+  - hjsonpointer
+  - hjson-query
+  - hjugement-protocol
+  - HJVM
+  - hkd-delta
+  - hkd-lens
+  - hkt
+  - hlbfgsb
+  - hledger-chart
+  - hledger-flow
+  - hledger-irr
+  - hledger-vty
+  - hlibBladeRF
+  - hlibev
+  - hlibfam
+  - HList
+  - hlivy
+  - hlogger
+  - HLogger
+  - hlongurl
+  - hlrdb-core
+  - hls-exactprint-utils
+  - hls-floskell-plugin
+  - hls-fourmolu-plugin
+  - hls-pragmas-plugin
+  - hlwm
+  - hmarkup
+  - hmatrix-banded
+  - hmatrix-mmap
+  - hmatrix-nipals
+  - hmatrix-sparse
+  - hmatrix-static
+  - hmatrix-sundials
+  - hmatrix-svdlibc
+  - hmatrix-syntax
+  - hmatrix-tests
+  - hmenu
+  - hmk
+  - hmm
+  - HMM
+  - hmm-hmatrix
+  - hMollom
+  - hmp3
+  - Hmpf
+  - hmumps
+  - hnetcdf
+  - hnn
+  - hoauth
+  - hobbes
+  - hocilib
+  - hocker
+  - hodatime
+  - HODE
+  - hoe
+  - hog
+  - hogg
+  - hois
+  - hol
+  - hold-em
+  - hole
+  - holmes
+  - homeomorphic
+  - homoiconic
+  - homplexity
+  - honi
+  - hoobuddy
+  - hood2
+  - hoodle-types
+  - hood-off
+  - hoogle-index
+  - hooks-dir
+  - hoop
+  - hoopl
+  - hopencc
+  - hopencl
+  - HOpenCV
+  - hopfield
+  - hops
+  - ho-rewriting
+  - horizon
+  - horname
+  - hosc-json
+  - hosts-server
+  - hothasktags
+  - hotswap
+  - hourglass-fuzzy-parsing
+  - houseman
+  - hp2any-core
+  - hpack-convert
+  - hpapi
+  - hpasteit
+  - HPath
+  - hpc-coveralls
+  - hpg
+  - HPi
+  - hpio
+  - hplaylist
+  - hpodder
+  - hpqtypes
+  - hprotoc
+  - hps-kmeans
+  - hPushover
+  - hpygments
+  - hpylos
+  - hpyrg
+  - hquantlib-time
+  - hR
+  - hreq-core
+  - h-reversi
+  - hricket
+  - Hricket
+  - hs2bf
+  - hs2ps
+  - hsaml2
+  - hsay
+  - hsbc
+  - hsbencher
+  - hsc3
+  - hsc3-rw
+  - hsc3-sf
+  - hscaffold
+  - hscamwire
+  - hs-carbon-examples
+  - hscd
+  - hs-cdb
+  - hsclock
+  - hScraper
+  - hscuid
+  - hs-di
+  - hsdif
+  - hsdip
+  - hsdns-cache
+  - hs-dotnet
+  - hsenv
+  - HSet
+  - hs-excelx
+  - hsfcsh
+  - HSFFIG
+  - hsfilt
+  - hs-fltk
+  - hsforce
+  - hs-gizapp
+  - hsgnutls
+  - hsgnutls-yj
+  - hsgsom
+  - HsHaruPDF
+  - HsHTSLib
+  - HsHyperEstraier
+  - hsI2C
+  - hSimpleDB
+  - hsimport
+  - hsinspect-lsp
+  - hs-java
+  - hs-json-rpc
+  - HsJudy
+  - hskeleton
+  - hslackbuilder
+  - hslibsvm
+  - hslinks
+  - hslogger-reader
+  - hslogger-template
+  - hs-logo
+  - hsluv-haskell
+  - hsmagick
+  - hsmodetweaks
+  - Hsmtlib
+  - hsmtpclient
+  - hs-nombre-generator
+  - hsns
+  - hsnsq
+  - hsntp
+  - hsoptions
+  - hsoz
+  - hsparql
+  - hs-pattrans
+  - hsp-cgi
+  - hspear
+  - hspec2
+  - hspec-expectations-match
+  - hspec-experimental
+  - hspec-jenkins
+  - hspec-monad-control
+  - hspec-snap
+  - hspec-structured-formatter
+  - hspec-webdriver
+  - HsPerl5
+  - hs-pgms
+  - hspkcs11
+  - hs-pkg-config
+  - hspread
+  - hspresent
+  - hspretty
+  - hsql
+  - hs-re
+  - hsrelp
+  - hs-rqlite
+  - hs-rs-notify
+  - hs-scrape
+  - hsseccomp
+  - hs-snowtify
+  - hs-speedscope
+  - hsSqlite3
+  - hssqlppp
+  - HsSVN
+  - hs-tags
+  - hstats
+  - hstatsd
+  - hstest
+  - hstidy
+  - hs-twitter
+  - hs-twitterarchiver
+  - hstyle
+  - hsudoku
+  - hs-vcard
+  - hs-watchman
+  - hsx
+  - hsXenCtrl
+  - hsyscall
+  - hsyslog-tcp
+  - hszephyr
+  - hTalos
+  - htar
+  - htdp-image
+  - hTensor
+  - htestu
+  - HTicTacToe
+  - htiled
+  - htlset
+  - html-charset
+  - html-kure
+  - html-rules
+  - html-tokenizer
+  - htsn
+  - htsn-import
+  - htssets
+  - http2-client
+  - http2-grpc-proto-lens
+  - http-attoparsec
+  - http-client-lens
+  - http-client-request-modifiers
+  - http-client-session
+  - http-client-streams
+  - http-client-websockets
+  - http-conduit-browser
+  - http-conduit-downloader
+  - http-directory
+  - http-dispatch
+  - http-grammar
+  - http-kinder
+  - http-listen
+  - http-monad
+  - http-pony
+  - http-pony-serve-wai
+  - http-proxy
+  - http-querystring
+  - http-response-decoder
+  - http-server
+  - http-shed
+  - http-wget
+  - htune
+  - htvm
+  - htzaar
+  - huck
+  - HueAPI
+  - huff
+  - huffman
+  - HulkImport
+  - human-parse
+  - human-text
+  - humble-prelude
+  - hums
+  - hunch
+  - HUnit-Diff
+  - hunit-rematch
+  - hunspell-hs
+  - hup
+  - hurriyet
+  - hutton
+  - huttons-razor
+  - hVOIDP
+  - hwall-auth-iitk
+  - hw-ci-assist
+  - hweblib
+  - hwhile
+  - hw-json-simd
+  - hworker
+  - hw-simd
+  - hwsl2
+  - hx
+  - HXQ
+  - hxt-cache
+  - hxt-pickle-utils
+  - hyakko
+  - hydra-hs
+  - hydra-print
+  - hydrogen
+  - hydrogen-multimap
+  - hylide
+  - hylolib
+  - hyperdrive
+  - hyperfunctions
+  - hyperion
+  - hyperloglogplus
+  - hypher
+  - hzulip
+  - i18n
+  - I1M
+  - i3ipc
+  - iap-verifier
+  - iban
+  - ib-api
+  - ical
+  - icepeak
+  - IcoGrid
+  - iconv-typed
+  - ideas
+  - idempotent
+  - identifiers
+  - idiii
+  - idna2008
+  - IDynamic
+  - ieee-utils
+  - iexcloud
+  - ifcxt
+  - IFS
+  - ig
+  - ige
+  - ignore
+  - igraph
+  - ihaskell-parsec
+  - ihaskell-widgets
+  - illuminate
+  - imagepaste
+  - imapget
+  - imgur
+  - imj-prelude
+  - immortal-worker
+  - imperative-edsl
+  - ImperativeHaskell
+  - impl
+  - implicit-logging
+  - implicit-params
+  - imports
+  - impossible
+  - imprint
+  - inchworm
+  - indentation-core
+  - index-core
+  - indextype
+  - indices
+  - infer-upstream
+  - infinity
+  - inf-interval
+  - infix
+  - inflist
+  - informative
+  - inilist
+  - ini-qq
+  - initialize
+  - inject-function
+  - inline-asm
+  - inserts
+  - instana-haskell-trace-sdk
+  - instance-map
+  - instant-generics
+  - instinct
+  - intcode
+  - integer-pure
+  - integreat
+  - intel-aes
+  - intensional-datatys
+  - interlude-l
+  - internetmarke
+  - intero
+  - interpol
+  - interpolatedstring-qq2
+  - interruptible
+  - interval
+  - IntFormats
+  - int-multimap
+  - intricacy
+  - introduction
+  - intro-prelude
+  - invert
+  - invertible-syntax
+  - io-capture
+  - io-choice
+  - ioctl
+  - IOR
+  - io-reactive
+  - iostring
+  - iothread
+  - iotransaction
+  - ip2location
+  - ip2proxy
+  - ipfs
+  - ipopt-hs
+  - ip-quoter
+  - iptables-helpers
+  - IPv6DB
+  - Irc
+  - irc-dcc
+  - irc-fun-types
+  - iridium
+  - iron-mq
+  - irt
+  - isdicom
+  - IsNull
+  - iso8601-duration
+  - isobmff
+  - isotope
+  - itcli
+  - itemfield
+  - iteratee
+  - iterIO
+  - it-has
+  - ivory
+  - ixdopp
+  - ixmonad
+  - ixshader
+  - j
+  - jack-bindings
+  - jackminimix
+  - JackMiniMix
+  - jacobi-roots
+  - jaeger-flamegraph
+  - jalla
+  - jarfind
+  - jarify
+  - jason
+  - java-bridge
+  - javascript-bridge
+  - javav
+  - Javav
+  - jbi
+  - jcdecaux-vls
+  - Jdh
+  - jdi
+  - jenga
+  - jenkinsPlugins2nix
+  - jespresso
+  - jinquantities
+  - jml-web-service
+  - jni
+  - jobqueue
+  - join-api
+  - joinlist
+  - jonathanscard
+  - jpeg
+  - jsaddle-hello
+  - jsaddle-wkwebview
+  - js-good-parts
+  - json2
+  - json-alt
+  - json-assertions
+  - json-ast-quickcheck
+  - json-builder
+  - json-encoder
+  - jsonextfilter
+  - json-extra
+  - json-fu
+  - json-litobj
+  - jsonnet
+  - json-pointer-hasql
+  - json-pointy
+  - json-python
+  - jsonresume
+  - json-rpc-client
+  - json-schema
+  - jsonschema-gen
+  - jsonsql
+  - json-tools
+  - json-tracer
+  - jsontsv
+  - jsonxlsx
+  - judge
+  - judy
+  - JuicyPixels-blp
+  - JuicyPixels-canvas
+  - JunkDB
+  - jupyter
+  - JustParse
+  - jvm-binary
+  - jvm-parser
+  - JYU-Utils
+  - kademlia
+  - kafka-client
+  - kafka-client-sync
+  - kalman
+  - Kalman
+  - kangaroo
+  - karps
+  - katip-kafka
+  - katip-raven
+  - katip-scalyr-scribe
+  - katip-syslog
+  - katt
+  - katydid
+  - kawaii
+  - kawhi
+  - kdesrc-build-extra
+  - kd-tree
+  - keccak
+  - keera-hails-reactivevalues
+  - kempe
+  - kerry
+  - Ketchup
+  - keter
+  - keyed
+  - keyring
+  - khph
+  - kickass-torrents-dump-parser
+  - kickchan
+  - kmonad
+  - kmp-dfa
+  - koellner-phonetic
+  - kontra-config
+  - kparams
+  - kqueue
+  - kraken
+  - krapsh
+  - Kriens
+  - krpc
+  - KSP
+  - ktx
+  - ktx-codec
+  - kuifje
+  - kure-your-boilerplate
+  - KyotoCabinet
+  - labeled-graph
+  - lagrangian
+  - lambda2js
+  - lambdaBase
+  - lambdabot-utils
+  - lambda-bridge
+  - lambda-canvas
+  - lambdacms-core
+  - lambdacube-ir
+  - Lambdajudge
+  - LambdaNet
+  - lambdatex
+  - lambda-toolbox
+  - lambdatwit
+  - Lambdaya
+  - lame
+  - lame-tester
+  - language-asn
+  - language-c-comments
+  - language-c-inline
+  - language-conf
+  - language-csharp
+  - language-dart
+  - language-dockerfile
+  - language-elm
+  - language-gcl
+  - language-go
+  - language-guess
+  - language-hcl
+  - language-java-classfile
+  - language-lua2
+  - language-lua-qq
+  - language-mixal
+  - language-objc
+  - language-ocaml
+  - language-openscad
+  - language-pig
+  - language-puppet
+  - language-rust
+  - language-sh
+  - language-sqlite
+  - language-sygus
+  - language-tl
+  - language-typescript
+  - language-vhdl
+  - language-webidl
+  - lapack-ffi
+  - Lastik
+  - latest-npm-version
+  - latex-formulae-image
+  - latex-svg-image
+  - LATS
+  - launchpad-control
+  - lawless-concurrent-machines
+  - layers
+  - layout
+  - layout-bootstrap
+  - lazyarray
+  - lazyboy
+  - lazy-priority-queue
+  - lazyset
+  - LazyVault
+  - l-bfgs-b
+  - lda
+  - ldif
+  - ld-intervals
+  - leaf
+  - leapseconds
+  - learn
+  - Learning
+  - learn-physics-examples
+  - leb128
+  - leetify
+  - lendingclub
+  - lens-filesystem
+  - lens-labels
+  - lens-prelude
+  - lens-process
+  - lensref
+  - lens-simple
+  - lens-text-encoding
+  - lens-th-rewrite
+  - lens-time
+  - lens-toml-parser
+  - lens-tutorial
+  - lens-typelevel
+  - Level0
+  - level-monad
+  - lfst
+  - lhc
+  - lhs2TeX-hl
+  - lhslatex
+  - LibClang
+  - libexpect
+  - libfuse3
+  - libGenI
+  - libhbb
+  - libinfluxdb
+  - libjenkins
+  - libjwt-typed
+  - libltdl
+  - libnix
+  - liboath-hs
+  - liboleg
+  - libpafe
+  - libpq
+  - librandomorg
+  - libssh2
+  - libsystemd-daemon
+  - libtagc
+  - libxls
+  - libxslt
+  - lie
+  - life-sync
+  - lifted-protolude
+  - lifter
+  - ligature
+  - lilypond
+  - Limit
+  - limp-cbc
+  - linda
+  - linden
+  - linear-algebra-cblas
+  - linear-base
+  - linear-code
+  - linear-maps
+  - linear-opengl
+  - linearscan
+  - linear-vect
+  - line-drawing
+  - lines-of-action
+  - linkedhashmap
+  - linked-list-with-iterator
+  - linklater
+  - linode
+  - linode-v4
+  - linux-blkid
+  - linux-cgroup
+  - linux-kmod
+  - linux-perf
+  - linx-gateway
+  - lio-simple
+  - lipsum-gen
+  - liquid
+  - liquidhaskell
+  - liquidhaskell-cabal
+  - Liquorice
+  - list-fusion-probe
+  - listlike-instances
+  - list-mux
+  - list-prompt
+  - list-remote-forwards
+  - ListT
+  - list-t-http-client
+  - list-t-text
+  - list-zip-def
+  - list-zipper
+  - liszt
+  - lit
+  - literals
+  - LiterateMarkdown
+  - ll-picosat
+  - llsd
+  - llvm-base
+  - llvm-ffi
+  - llvm-ffi-tools
+  - llvm-general-pure
+  - llvm-ht
+  - llvm-pkg-config
+  - llvm-pretty
+  - lmonad
+  - load-balancing
+  - load-font
+  - local-address
+  - located
+  - located-monad-logger
+  - loch
+  - log2json
+  - log4hs
+  - logentries
+  - logger
+  - logging-effect-extra-file
+  - logging-effect-extra-handler
+  - Logic
+  - logicst
+  - logict-state
+  - logplex-parse
+  - log-warper
+  - lojbanParser
+  - lojbanXiragan
+  - lol
+  - lol-calculus
+  - longboi
+  - lookup-tables
+  - loopbreaker
+  - looper
+  - loops
+  - loop-while
+  - loopy
+  - lord
+  - lorem
+  - loris
+  - loshadka
+  - lowgl
+  - lp-diagrams-svg
+  - LRU
+  - lscabal
+  - L-seed
+  - lsfrom
+  - ltext
+  - ltiv1p1
+  - ltk
+  - LTS
+  - lua-bc
+  - luautils
+  - luis-client
+  - luka
+  - luminance
+  - lushtags
+  - luthor
+  - lvmlib
+  - lxc
+  - lxd-client
+  - lye
+  - lz4-frame-conduit
+  - lzip
+  - lzma-streams
+  - lzo
+  - maam
+  - mac
+  - macaroon-shop
+  - machinecell
+  - machines-bytestring
+  - machines-directory
+  - machines-encoding
+  - machines-zlib
+  - macho
+  - maclight
+  - macos-corelibs
+  - macrm
+  - madlang
+  - mage
+  - MagicHaskeller
+  - magic-tyfams
+  - magma
+  - mailchimp
+  - MailchimpSimple
+  - mailchimp-subscribe
+  - makedo
+  - makefile
+  - make-hard-links
+  - make-monofoldable-foldable
+  - make-package
+  - mallard
+  - mandrill
+  - mandulia
+  - mangopay
+  - Map
+  - mapalgebra
+  - map-exts
+  - Mapping
+  - mappy
+  - markdown-kate
+  - marked-pretty
+  - markov-realization
+  - mars
+  - marvin-interpolate
+  - MASMGen
+  - massiv-persist
+  - massiv-serialise
+  - master-plan
+  - mathflow
+  - math-grads
+  - math-interpolate
+  - math-metric
+  - math-programming
+  - matrix-as-xyz
+  - matrix-market
+  - matrix-sized
+  - maude
+  - maxent-learner-hw
+  - maybench
+  - MaybeT
+  - MaybeT-monads-tf
+  - MazesOfMonad
+  - MBot
+  - mbox-tools
+  - mbug
+  - mcl
+  - mcm
+  - mcmaster-gloss-examples
+  - mcmc-synthesis
+  - mcpi
+  - mdapi
+  - mdcat
+  - mdp
+  - mealstrom
+  - MeanShift
+  - Measure
+  - mecab
+  - mech
+  - Mecha
+  - mechs
+  - Mechs
+  - mediabus
+  - mediawiki
+  - medium-sdk-haskell
+  - megalisp
+  - mega-sdist
+  - mellon-core
+  - melody
+  - memcached-binary
+  - memcache-haskell
+  - memis
+  - memoization-utils
+  - memo-ptr
+  - memorable-bits
+  - memorypool
+  - menoh
+  - menshen
+  - merkle-tree
+  - messagepack-rpc
+  - messente
+  - metadata
+  - MetaHDBC
+  - metaheuristics
+  - meta-misc
+  - meta-par
+  - metric
+  - metricsd-client
+  - mezzo
+  - mezzolens
+  - mgeneric
+  - MHask
+  - mi
+  - miconix-test
+  - microbase
+  - microgroove
+  - microlens-each
+  - micrologger
+  - micro-recursion-schemes
+  - microsoft-translator
+  - mida
+  - midi-music-box
+  - midisurface
+  - midi-utils
+  - migrant-hdbc
+  - migrant-postgresql-simple
+  - mikmod
+  - mikrokosmos
+  - miku
+  - milena
+  - mime-directory
+  - minilens
+  - minilight
+  - minions
+  - miniplex
+  - minirotate
+  - ministg
+  - minizinc-process
+  - minst-idx
+  - mios
+  - MIP
+  - mirror-tweet
+  - miso-action-logger
+  - miso-examples
+  - mit-3qvpPyAi6mH
+  - mix-arrows
+  - mixpanel-client
+  - mltool
+  - ml-w
+  - mm2
+  - mmark
+  - mmtf
+  - mmtl
+  - Mobile-Legends-Hack-Cheats
+  - modelicaparser
+  - modular-prelude
+  - module-management
+  - modulespection
+  - moe
+  - Moe
+  - MoeDict
+  - moesocks
+  - mohws
+  - mollie-api-haskell
+  - monadacme
+  - monad-atom
+  - monad-atom-simple
+  - monad-bayes
+  - monad-branch
+  - MonadCatchIO-transformers
+  - MonadCompose
+  - monad-fork
+  - monad-http
+  - monadiccp
+  - monadic-recursion-schemes
+  - monad-interleave
+  - Monadius
+  - monad-levels
+  - monad-lgbt
+  - monadLib-compose
+  - monadloc-pp
+  - monad-log
+  - monadlog
+  - monad-lrs
+  - monad-mersenne-random
+  - monad-mock
+  - monad-open
+  - Monadoro
+  - monad-parallel-progressbar
+  - monad-param
+  - monad-persist
+  - monadplus
+  - monad-ran
+  - monad-recorder
+  - monads-fd
+  - MonadStack
+  - monad-statevar
+  - monad-ste
+  - monad-stlike-io
+  - monad-task
+  - monad-timing
+  - monad-tx
+  - monad-unify
+  - monad-wrap
+  - Monatron
+  - mondo
+  - money
+  - mongodb-queue
+  - monitor
+  - mono-foldable
+  - monoid
+  - monoid-absorbing
+  - monoid-owns
+  - monoidplus
+  - monoids
+  - monopati
+  - months
+  - monus
+  - monzo
+  - morfette
+  - morfeusz
+  - morpheus-graphql-cli
+  - morphisms-functors
+  - morphisms-objects
+  - morte
+  - moto-postgresql
+  - motor-reflection
+  - mount
+  - movie-monad
+  - mpppc
+  - mpris
+  - mpvguihs
+  - mqtt
+  - mqtt-hs
+  - mrifk
+  - mrm
+  - ms
+  - msgpack
+  - msgpack-binary
+  - msh
+  - msi-kb-backlit
+  - MTGBuilder
+  - mtl-c
+  - mtl-evil-instances
+  - mtl-extras
+  - mtl-tf
+  - mtlx
+  - mtp
+  - MuCheck
+  - mud
+  - muesli
+  - mulang
+  - multext-east-msd
+  - multiaddr
+  - multiarg
+  - multi-except
+  - multihash
+  - multi-instance
+  - multilinear
+  - multipass
+  - multipath
+  - multiplate-simplified
+  - multipool-persistent-postgresql
+  - multirec
+  - multivariant
+  - Munkres-simple
+  - muon
+  - murmur
+  - murmur3
+  - mushu
+  - musicScroll
+  - music-util
+  - musicxml
+  - mustache-haskell
+  - mvar-lock
+  - mvc
+  - mxnet
+  - mxnet-nnvm
+  - myanimelist-export
+  - myo
+  - my-package-testing
+  - MyPrimes
+  - mysnapsession
+  - mysql-effect
+  - mysql-simple-quasi
+  - mystem
+  - my-test-docs
+  - myxine-client
+  - mzv
+  - n2o-protocols
+  - nagios-plugin-ekg
+  - named-lock
+  - named-servant-server
+  - named-sop
+  - namelist
+  - nanocurses
+  - nano-hmac
+  - nano-md5
+  - nanomsg
+  - nanomsg-haskell
+  - nanoparsec
+  - NanoProlog
+  - nanovg
+  - nanq
+  - naperian
+  - naqsha
+  - narc
+  - nationstates
+  - nats-client
+  - nat-sized-numbers
+  - natural
+  - NaturalLanguageAlphabets
+  - NaturalSort
+  - naver-translate
+  - nbt
+  - neat
+  - needle
+  - neet
+  - nehe-tuts
+  - neither
+  - neko-lib
+  - Neks
+  - neptune-backend
+  - nero
+  - nest
+  - NestedFunctor
+  - nestedmap
+  - nested-sequence
+  - netclock
+  - netease-fm
+  - netrium
+  - NetSNMP
+  - netspec
+  - net-spider
+  - netwire-input-javascript
+  - netwire-vinylglfw-examples
+  - network-address
+  - network-api-support
+  - network-attoparsec
+  - network-bitcoin
+  - network-builder
+  - network-bytestring
+  - network-dns
+  - networked-game
+  - network-house
+  - network-metrics
+  - network-msg
+  - network-msgpack-rpc
+  - network-packet-linux
+  - network-server
+  - network-service
+  - network-simple-sockaddr
+  - network-simple-wss
+  - network-socket-options
+  - network-transport-amqp
+  - network-transport-inmemory
+  - network-transport-tests
+  - network-uri-json
+  - network-voicetext
+  - network-wai-router
+  - neural
+  - neural-network-blashs
+  - neural-network-hmatrix
+  - newhope
+  - newports
+  - newsletter
+  - newt
+  - newtype-deriving
+  - newtype-th
+  - next-ref
+  - nextstep-plist
+  - nfc
+  - NGrams
+  - niagra
+  - nibblestring
+  - nice-html
+  - nicovideo-translator
+  - nitro
+  - nix-delegate
+  - nix-deploy
+  - nix-eval
+  - nix-freeze-tree
+  - nixfromnpm
+  - nixpkgs-update
+  - nix-tools
+  - nkjp
+  - nlp-scores
+  - nm
+  - NMap
+  - nntp
+  - noether
+  - nofib-analyse
+  - nofib-analyze
+  - noise
+  - nom
+  - NonEmpty
+  - nonempty-lift
+  - non-empty-zipper
+  - no-role-annots
+  - notcpp
+  - not-gloss-examples
+  - notifications-tray-icon
+  - NoTrace
+  - now-haskell
+  - np-extras
+  - np-linear
+  - nptools
+  - ntp-control
+  - ntrip-client
+  - n-tuple
+  - nullary
+  - null-canvas
+  - nullpipe
+  - numbered-semigroups
+  - NumberSieves
+  - NumberTheory
+  - numerals
+  - numerals-base
+  - numeric-qq
+  - numeric-ranges
+  - numhask
+  - numhask-array
+  - numhask-free
+  - numhask-prelude
+  - numhask-space
+  - Nutri
+  - NXTDSL
+  - nylas
+  - nyx-game
+  - oanda-rest-api
+  - oasis-xrd
+  - oauth2-jwt-bearer
+  - oauthenticated
+  - Object
+  - ObjectIO
+  - objective
+  - oblivious-transfer
+  - ocaml-export
+  - Octree
+  - odbc
+  - OddWord
+  - oden-go-packages
+  - oeis2
+  - OGL
+  - ogmarkup
+  - oi
+  - oidc-client
+  - om-actor
+  - omaketex
+  - ombra
+  - om-doh
+  - omega
+  - Omega
+  - om-elm
+  - om-fail
+  - om-http-logging
+  - omnifmt
+  - on-a-horse
+  - onama
+  - ONC-RPC
+  - on-demand-ssh-tunnel
+  - one-liner-instances
+  - oneormore
+  - onpartitions
+  - onu-course
+  - op
+  - opaleye-classy
+  - opaleye-sqlite
+  - open-adt
+  - OpenAFP
+  - openai-hs
+  - openapi3-code-generator
+  - openapi-petstore
+  - openapi-typed
+  - opencc
+  - opench-meteo
+  - OpenCL
+  - OpenCLRaw
+  - OpenCLWrappers
+  - opencv-raw
+  - opendatatable
+  - opengles
+  - open-haddock
+  - openid-connect
+  - open-pandoc
+  - open-signals
+  - opensoundcontrol-ht
+  - openssh-protocol
+  - opentelemetry-http-client
+  - opentheory-char
+  - opentok
+  - opentype
+  - OpenVGRaw
+  - Operads
+  - operate-do
+  - operational-extra
+  - oplang
+  - opn
+  - optima
+  - optimization
+  - optional
+  - options-time
+  - optparse-applicative-simple
+  - optparse-helper
+  - orc
+  - orchestrate
+  - OrchestrateDB
+  - ordered
+  - order-statistics
+  - ordinal
+  - Ordinary
+  - ordrea
+  - oref
+  - organize-imports
+  - org-mode
+  - orgmode
+  - origami
+  - orizentic
+  - OrPatterns
+  - osc
+  - oscpacking
+  - oset
+  - Oslo-Vectize
+  - osm-conduit
+  - oso2pdf
+  - osx-ar
+  - ot
+  - OTP
+  - ottparse-pretty
+  - overloaded
+  - overloaded-records
+  - overture
+  - pack
+  - package-description-remote
+  - package-o-tron
+  - package-vt
+  - packed
+  - packed-dawg
+  - packed-multikey-map
+  - packedstring
+  - packer-messagepack
+  - packman
+  - packunused
+  - pacman-memcache
+  - pads-haskell
+  - pagarme
+  - pagure-hook-receiver
+  - Paillier
+  - palette
+  - PandocAgda
+  - pandoc-citeproc
+  - pandoc-filter-graphviz
+  - pandoc-filter-indent
+  - pandoc-include
+  - pandoc-lens
+  - pandoc-markdown-ghci-filter
+  - pandoc-placetable
+  - pandoc-pyplot
+  - pandoc-unlit
+  - pandoc-utils
+  - pang-a-lambda
+  - pangraph
+  - panpipe
+  - pansite
+  - pantry-tmp
+  - papa-base-export
+  - papa-include
+  - papa-prelude
+  - papa-prelude-core
+  - papa-prelude-lens
+  - papa-prelude-semigroupoids
+  - papa-prelude-semigroups
+  - papa-semigroupoids-implement
+  - paphragen
+  - papillon
+  - pappy
+  - paragon
+  - parallel-tasks
+  - paranoia
+  - parco
+  - parcom-lib
+  - par-dual
+  - pareto
+  - parochial
+  - Parry
+  - parseargs
+  - parsec2
+  - parsec3
+  - parsec-free
+  - parsec-parsers
+  - parsec-pratt
+  - parseerror-eq
+  - parsely
+  - parser241
+  - parser-combinators-tests
+  - parsergen
+  - parser-helper
+  - parsers-megaparsec
+  - parsimony
+  - parsley
+  - parsnip
+  - partage
+  - partial-records
+  - partly
+  - passage
+  - passman
+  - passman-core
+  - PasswordGenerator
+  - passwords
+  - pasta
+  - pastis
+  - pasty
+  - patat
+  - patches-vector
+  - Pathfinder
+  - pathfindingcore
+  - PathTree
+  - patronscraper
+  - paypal-adaptive-hoops
+  - paypal-api
+  - paypal-rest-client
+  - pb
+  - pbc4hs
+  - PBKDF2
+  - pb-next
+  - pcd-loader
+  - pcf-font
+  - pcgen
+  - PCLT
+  - pcre-light-extra
+  - pdfname
+  - pdf-slave-template
+  - pdfsplit
+  - pdf-toolbox-viewer
+  - pdftotext
+  - pdynload
+  - PeanoWitnesses
+  - pecoff
+  - pedersen-commitment
+  - pedestrian-dag
+  - peg
+  - peggy
+  - pencil
+  - penntreebank-megaparsec
+  - percent-encoder
+  - perceptron
+  - peregrin
+  - perf
+  - PerfectHash
+  - perhaps
+  - periodic
+  - periodic-common
+  - permutation
+  - permutations
+  - permute
+  - persist2er
+  - Persistence
+  - persistent-cereal
+  - persistent-database-url
+  - persistent-discover
+  - persistent-documentation
+  - persistent-equivalence
+  - persistent-migration
+  - persistent-mongoDB
+  - persistent-mysql-haskell
+  - persistent-odbc
+  - persistent-protobuf
+  - persistent-ratelimit
+  - persistent-redis
+  - persistent-relational-record
+  - persistent-template-classy
+  - persistent-zookeeper
+  - persona
+  - pesca
+  - pez
+  - pgdl
+  - pg-extras
+  - pgf2
+  - pg-harness
+  - pg-harness-server
+  - pg-recorder
+  - pg-store
+  - pgstream
+  - phasechange
+  - phaser
+  - phoityne
+  - phone-numbers
+  - phone-push
+  - phonetic-languages-properties
+  - phonetic-languages-simplified-properties-lists
+  - phonetic-languages-simplified-properties-lists-double
+  - phraskell
+  - Phsu
+  - phybin
+  - pia-forward
+  - pi-calculus
+  - picedit
+  - pickle
+  - picologic
+  - picoparsec
+  - pictikz
+  - pier-core
+  - piet
+  - pi-forall
+  - pig
+  - pi-hoole
+  - pinch
+  - pinchot
+  - Pipe
+  - pipes-async
+  - pipes-bgzf
+  - pipes-cereal
+  - pipes-core
+  - pipes-errors
+  - pipes-interleave
+  - pipes-io
+  - pipes-protolude
+  - pipes-rt
+  - pipes-s3
+  - pipes-shell
+  - pipes-sqlite-simple
+  - pipes-transduce
+  - pipes-vector
+  - pipes-zeromq4
+  - Piso
+  - pit
+  - pivotal-tracker
+  - pixelated-avatar-generator
+  - pixel-printer
+  - pkcs10
+  - pkcs7
+  - pkggraph
+  - plailude
+  - plan-applicative
+  - planar-graph
+  - plan-b
+  - planb-token-introspection
+  - planet-mitchell-test
+  - plankton
+  - plat
+  - platinum-parsing
+  - PlayingCards
+  - plist
+  - plist-buddy
+  - plot-gtk
+  - plot-gtk3
+  - plot-gtk-ui
+  - plot-lab
+  - plugins-auto
+  - plugins-multistage
+  - plumbers
+  - plur
+  - plural
+  - plzwrk
+  - pngload-fixed
+  - pocket
+  - pointedalternative
+  - pointfree-fancy
+  - pointful
+  - pointless-haskell
+  - pokemon-go-protobuf-types
+  - poker-eval
+  - pokitdok
+  - polar-configfile
+  - polar-shader
+  - Pollutocracy
+  - poly-cont
+  - poly-control
+  - polydata-core
+  - polynomial
+  - polysemy-zoo
+  - polytypeable
+  - pomohoro
+  - ponder
+  - pong-server
+  - pool
+  - pool-conduit
+  - pop3-client
+  - popkey
+  - poppler
+  - portager
+  - porte
+  - PortFusion
+  - positron
+  - posix-acl
+  - posix-api
+  - posix-realtime
+  - posix-waitpid
+  - postcodes
+  - postgres-embedded
+  - postgresql-lo-stream
+  - postgresql-named
+  - postgresql-simple-bind
+  - postgresql-simple-named
+  - postgresql-simple-sop
+  - postgresql-simple-url
+  - postgresql-syntax
+  - postgresql-typed-lifted
+  - postgres-tmp
+  - postgrest-ws
+  - postgres-websockets
+  - postie
+  - postmark-streams
+  - postmaster
+  - potato-tool
+  - potoki-core
+  - powerdns
+  - powermate
+  - powerpc
+  - powerqueue-levelmem
+  - pprecord
+  - PPrinter
+  - pqc
+  - praglude
+  - preamble
+  - precursor
+  - predicate-class
+  - predicate-typed
+  - prednote
+  - prefork
+  - pregame
+  - preliminaries
+  - Prelude
+  - prelude-generalize
+  - prelude-plus
+  - preprocess-haskell
+  - preprocessor
+  - preql
+  - presburger
+  - present
+  - press
+  - pretty-ghci
+  - pretty-ncols
+  - prettyprinter-vty
+  - prim-array
+  - primes-type
+  - prim-instances
+  - PrimitiveArray-Pretty
+  - primitive-atomic
+  - primitive-checked
+  - primitive-convenience
+  - primitive-foreign
+  - primitive-indexed
+  - primitive-maybe
+  - primitive-simd
+  - primitive-stablename
+  - prim-ref
+  - pringletons
+  - printcess
+  - print-debugger
+  - prints
+  - PriorityChansConverger
+  - priority-queue
+  - probable
+  - process-conduit
+  - processing
+  - process-leksah
+  - process-listlike
+  - processmemory
+  - procrastinating-variable
+  - procstat
+  - prof2pretty
+  - prof-flamegraph
+  - profunctor-monad
+  - progress
+  - progression
+  - progressive
+  - progress-meter
+  - progress-reporting
+  - proj4-hs-bindings
+  - projectile
+  - prolog-graph
+  - promise
+  - pronounce
+  - proof-combinators
+  - Proper
+  - properties
+  - property-list
+  - prosidy
+  - prosper
+  - proteaaudio
+  - proteaaudio-sdl
+  - protocol
+  - protocol-buffers-fork
+  - proto-lens-arbitrary
+  - proto-lens-combinators
+  - proto-lens-optparse
+  - protolude-lifted
+  - proton-haskell
+  - prototype
+  - prove-everywhere-server
+  - provenience
+  - proxy-kindness
+  - proxy-mapping
+  - pseudo-trie
+  - PTQ
+  - ptr-poker
+  - publicsuffixlistcreate
+  - publish
+  - pubnub
+  - pubsub
+  - pugixml
+  - pugs-DrIFT
+  - PUH-Project
+  - Pup-Events-Server
+  - pure-io
+  - pure-priority-queue
+  - purescript-cst
+  - pure-zlib
+  - pusher-haskell
+  - pusher-ws
+  - pushme
+  - push-notifications
+  - putlenses
+  - puzzle-draw
+  - pyffi
+  - pyfi
+  - python-pickle
+  - q4c12-twofinger
+  - qc-oi-testgenerator
+  - qd
+  - qed
+  - qhull-simple
+  - qif
+  - QIO
+  - QLearn
+  - qlinear
+  - qnap-decrypt
+  - qr-imager
+  - qsem
+  - QuadEdge
+  - QuadTree
+  - quantfin
+  - quantification
+  - quantum-arrow
+  - quarantimer
+  - qudb
+  - quenya-verb
+  - QuickAnnotate
+  - quickbooks
+  - quickcheck-property-comb
+  - quickcheck-property-monad
+  - quickcheck-rematch
+  - quickcheck-report
+  - QuickCheckVariant
+  - quickcheck-webdriver
+  - quickjs-hs
+  - QuickPlot
+  - quickpull
+  - quick-schema
+  - quickset
+  - Quickson
+  - quickspec
+  - quickwebapp
+  - quipper-core
+  - quipper-utils
+  - quiver
+  - quokka
+  - quoridor-hs
+  - raaz
+  - RabbitMQ
+  - rad
+  - radian
+  - radium
+  - radium-formula-parser
+  - radix
+  - rados-haskell
+  - raft
+  - rakhana
+  - rakuten
+  - raml
+  - randfile
+  - rando
+  - random-access-list
+  - random-derive
+  - RandomDotOrg
+  - random-eff
+  - random-stream
+  - rand-vars
+  - Range
+  - rangemin
+  - range-set-list
+  - rapid
+  - rapid-term
+  - rascal
+  - Rasenschach
+  - rational-list
+  - rattle
+  - rattletrap
+  - raven-haskell-scotty
+  - raz
+  - rbst
+  - rclient
+  - react-flux
+  - react-haskell
+  - reaction-logic
+  - reactive-bacon
+  - reactive-banana-gi-gtk
+  - reactive-banana-sdl2
+  - reactive-banana-threepenny
+  - reactive-thread
+  - react-tutorial-haskell-server
+  - readability
+  - read-bounded
+  - read-ctags
+  - read-io
+  - readline
+  - readme-lhs
+  - readshp
+  - really-simple-xml-parser
+  - reanimate-svg
+  - reasonable-lens
+  - record
+  - record-encode
+  - records
+  - recursors
+  - red-black-record
+  - redis-hs
+  - redis-simple
+  - redland
+  - Redmine
+  - reedsolomon
+  - reenact
+  - ref
+  - Ref
+  - refcount
+  - Referees
+  - references
+  - refined-http-api-data
+  - reflection-extras
+  - reflex-basic-host
+  - reflex-dom-contrib
+  - reflex-dom-helper
+  - reflex-dom-helpers
+  - reflex-dom-retractable
+  - reflex-dom-svg
+  - reflex-dynamic-containers
+  - reflex-fsnotify
+  - reflex-gadt-api
+  - reflex-gi-gtk
+  - reflex-gloss
+  - reflex-jsx
+  - reflex-libtelnet
+  - reflex-orphans
+  - reflex-sdl2
+  - reflex-transformers
+  - reflex-vty
+  - ref-mtl
+  - reformat
+  - refractor
+  - refresht
+  - reg-alloc
+  - regex-dfa
+  - regex-generator
+  - regex-parsec
+  - regex-posix-unittest
+  - regexpr-symbolic
+  - regexqq
+  - regex-tdfa-pipes
+  - regex-tdfa-quasiquoter
+  - regex-tdfa-rc
+  - regex-tdfa-text
+  - regex-tdfa-unittest
+  - regex-tdfa-utf8
+  - regex-tre
+  - regex-type
+  - regions
+  - register-machine-typelevel
+  - registry
+  - regress
+  - regression-simple
+  - regular
+  - rehoo
+  - rei
+  - reified-records
+  - reify
+  - relacion
+  - relapse
+  - relational-postgresql8
+  - relational-query-postgresql-pure
+  - relevant-time
+  - reload
+  - remark
+  - remarks
+  - remote
+  - remote-debugger
+  - remote-monad
+  - reorder-expression
+  - repa-algorithms
+  - repa-bytestring
+  - repa-devil
+  - repa-eval
+  - repa-linear-algebra
+  - repa-scalar
+  - repa-series
+  - repl
+  - RepLib
+  - replica
+  - ReplicateEffects
+  - repo-based-blog
+  - representable-functors
+  - reproject
+  - reqcatcher
+  - req-conduit
+  - request-monad
+  - req-url-extra
+  - reserve
+  - reservoir
+  - resin
+  - resolve
+  - resolve-trivial-conflicts
+  - resource-effect
+  - resource-embed
+  - restartable
+  - restyle
+  - rethinkdb
+  - rethinkdb-client-driver
+  - rethinkdb-wereHamster
+  - retryer
+  - reverse-geocoding
+  - reversi
+  - ReviewBoard
+  - rewrite-inspector
+  - rfc-prelude
+  - rhbzquery
+  - ribbit
+  - ribosome
+  - RichConditional
+  - ridley
+  - riemann
+  - riff
+  - ring-buffer
+  - riscv-isa
+  - Ritt-Wu
+  - rivers
+  - rivet-migration
+  - rivet-simple-deploy
+  - RJson
+  - rlglue
+  - RLP
+  - rl-satton
+  - robin
+  - robots-txt
+  - roc-cluster
+  - roku-api
+  - rollbar
+  - rollbar-client
+  - rollbar-hs
+  - roller
+  - ron-rdt
+  - rope
+  - rosebud
+  - rose-trees
+  - rosmsg
+  - rosso
+  - rotating-log
+  - rounding
+  - roundtrip-aeson
+  - rowrecord
+  - R-pandoc
+  - rpc-framework
+  - rpm
+  - rpmbuild-order
+  - rrule
+  - rspp
+  - rss
+  - rss2irc
+  - rstream
+  - RtMidi
+  - rtnetlink
+  - rtorrent-rpc
+  - rts-loader
+  - ruby-marshal
+  - ruby-qq
+  - ruff
+  - ruin
+  - rungekutta
+  - runhs
+  - runmany
+  - rws
+  - RxHaskell
+  - SableCC2Hs
+  - safe-buffer-monad
+  - safe-coerce
+  - safe-coloured-text-gen
+  - safe-coloured-text-layout
+  - safe-coloured-text-terminfo
+  - safecopy-migrate
+  - safecopy-store
+  - safe-freeze
+  - safe-globals
+  - safeint
+  - safe-lazy-io
+  - safe-length
+  - safepath
+  - safe-plugins
+  - safe-printf
+  - saferoute
+  - sajson
+  - salak-toml
+  - Salsa
+  - salvia-protocol
+  - sandlib
+  - sandman
+  - sarasvati
+  - sat
+  - satchmo
+  - Saturnin
+  - savage
+  - sax
+  - sbvPlugin
+  - sc2-proto
+  - scaleimage
+  - scalendar
+  - scanner-attoparsec
+  - scc
+  - scenegraph
+  - scgi
+  - schedevr
+  - schedule-planner
+  - schedyield
+  - schemas
+  - scholdoc-types
+  - SciBaseTypes
+  - scidb-hquery
+  - sci-ratio
+  - scons2dot
+  - scottish
+  - scotty-binding-play
+  - scotty-blaze
+  - scotty-fay
+  - scotty-form
+  - scotty-format
+  - scotty-params-parser
+  - scotty-resource
+  - scotty-rest
+  - scotty-session
+  - scotty-tls
+  - scotty-view
+  - scrapbook-core
+  - scrape-changes
+  - ScratchFs
+  - script-monad
+  - scrobble
+  - scythe
+  - scyther-proof
+  - sdl2-cairo-image
+  - sdl2-compositor
+  - sdl2-fps
+  - sdr
+  - seakale
+  - sec
+  - secdh
+  - seclib
+  - second-transfer
+  - secp256k1
+  - secp256k1-haskell
+  - secp256k1-legacy
+  - secret-santa
+  - SecureHash-SHA3
+  - secure-sockets
+  - secureUDP
+  - selectors
+  - selenium
+  - selinux
+  - semantic-source
+  - Semantique
+  - semdoc
+  - semialign-extras
+  - semibounded-lattices
+  - Semigroup
+  - semigroupoids-syntax
+  - semigroups-actions
+  - sendgrid-haskell
+  - sendgrid-v3
+  - sensei
+  - sensu-run
+  - sentry
+  - SeqAlign
+  - sequent-core
+  - serialize-instances
+  - serialport
+  - serokell-util
+  - servant-aeson-specs
+  - servant-auth-cookie
+  - servant-auth-hmac
+  - servant-auth-token-api
+  - servant-avro
+  - servant-client-js
+  - servant-db
+  - servant-dhall
+  - servant-docs-simple
+  - servant-ekg
+  - servant-elm
+  - servant-fiat-content
+  - servant-generate
+  - servant-generic
+  - servant-github
+  - servant-haxl-client
+  - servant-hmac-auth
+  - servant-http-streams
+  - servant-jquery
+  - servant-js
+  - servant-JuicyPixels
+  - servant-kotlin
+  - servant-mock
+  - servant-namedargs
+  - servant-nix
+  - servant-pagination
+  - servant-pandoc
+  - servant-pool
+  - servant-proto-lens
+  - servant-purescript
+  - servant-pushbullet-client
+  - servant-py
+  - servant-quickcheck
+  - servant-reason
+  - servant-reflex
+  - servant-router
+  - servant-scotty
+  - servant-seo
+  - servant-smsc-ru
+  - servant-static-th
+  - servant-streaming
+  - servant-to-elm
+  - servant-yaml
+  - servant-zeppelin
+  - server-generic
+  - serversession-backend-persistent
+  - serversession-backend-redis
+  - serversession-frontend-yesod
+  - services
+  - ses-html-snaplet
+  - SessionLogger
+  - sessions
+  - sessiontypes
+  - Set
+  - setgame
+  - set-of
+  - setoid
+  - setters
+  - set-with
+  - sexp
+  - sexpr-parser
+  - sext
+  - SFML
+  - sfmt
+  - sfnt2woff
+  - SG
+  - sgd
+  - SGplus
+  - sh2md
+  - shade
+  - shadower
+  - shake-bindist
+  - shakebook
+  - shake-cabal-build
+  - shake-dhall
+  - shake-extras
+  - shake-minify
+  - shake-pack
+  - shake-path
+  - shake-persist
+  - shakespeare-babel
+  - shakespeare-sass
+  - shared-buffer
+  - shared-fields
+  - sha-streams
+  - she
+  - Shellac
+  - shellish
+  - shellmate
+  - shell-pipe
+  - shimmer
+  - shine-examples
+  - shivers-cfg
+  - shoap
+  - shopify
+  - shorten-strings
+  - show-prettyprint
+  - Shpadoinkle-backend-snabbdom
+  - Shpadoinkle-streaming
+  - shwifty
+  - sifflet
+  - sifflet-lib
+  - signed-multiset
+  - simd
+  - simple-actors
+  - simpleargs
+  - simple-atom
+  - simple-bluetooth
+  - simple-conduit
+  - simple-config
+  - simpleconfig
+  - simple-css
+  - simple-download
+  - simple-eval
+  - simple-genetic-algorithm
+  - simple-index
+  - simpleirc
+  - simple-logging
+  - simple-log-syslog
+  - simple-money
+  - simple-neural-networks
+  - simplenote
+  - simple-pipe
+  - simpleprelude
+  - simple-rope
+  - simple-server
+  - simplesmtpclient
+  - simple-sql-parser
+  - simple-stacked-vm
+  - simplest-sqlite
+  - simple-tabular
+  - simple-tar
+  - simple-ui
+  - simple-units
+  - simple-vec3
+  - simplexmq
+  - simple-zipper
+  - singleton-dict
+  - singletons-th
+  - singleton-typelits
+  - singnal
+  - singular-factory
+  - sink
+  - sitepipe
+  - sixfiguregroup
+  - sized-grid
+  - sized-types
+  - sized-vector
+  - sizes
+  - sjsp
+  - SJW
+  - skeletal-set
+  - skell
+  - skemmtun
+  - skews
+  - skulk
+  - skylighting-lucid
+  - skype4hs
+  - slack
+  - slack-notify-haskell
+  - slack-verify
+  - slave-thread
+  - sliceofpy
+  - Slides
+  - slim
+  - sloane
+  - sloth
+  - slot-lambda
+  - slug
+  - slugify
+  - smallarray
+  - smallcheck-kind-generics
+  - smallcheck-laws
+  - smallcheck-lens
+  - smallpt-hs
+  - smap
+  - smartcheck
+  - smartconstructor
+  - smartGroup
+  - sme
+  - smerdyakov
+  - smiles
+  - smsaero
+  - smt2-parser
+  - smt-lib
+  - SmtLib
+  - smtlib2
+  - SMTPClient
+  - smtp-mail-ng
+  - smtps-gmail
+  - smuggler
+  - smuggler2
+  - snake
+  - snake-game
+  - snap-accept
+  - snap-blaze-clay
+  - snap-configuration-utilities
+  - snap-error-collector
+  - snaplet-acid-state
+  - snaplet-amqp
+  - snaplet-css-min
+  - snaplet-customauth
+  - snaplet-environments
+  - snaplet-fay
+  - snaplet-hslogger
+  - snaplet-influxdb
+  - snaplet-mongodb-minimalistic
+  - snaplet-persistent
+  - snaplet-postgresql-simple
+  - snaplet-sass
+  - snaplet-scoped-session
+  - snaplet-ses-html
+  - snaplet-sqlite-simple
+  - snaplet-typed-sessions
+  - snappy-conduit
+  - snap-routes
+  - snap-stream
+  - snap-testing
+  - snap-web-routes
+  - sneakyterm
+  - SNet
+  - snipcheck
+  - snorkels
+  - snowtify
+  - socket-activation
+  - socketed
+  - socketio
+  - sockets-and-pipes
+  - socket-sctp
+  - socketson
+  - socket-unix
+  - sodium
+  - soegtk
+  - softfloat-hs
+  - solga
+  - sonic-visualiser
+  - Sonnex
+  - SoOSiM
+  - sorted
+  - sorting
+  - sorty
+  - souffle-haskell
+  - sound-collage
+  - sousit
+  - soyuz
+  - SpaceInvaders
+  - spacepart
+  - SpacePrivateers
+  - spake2
+  - spanout
+  - spars
+  - sparse
+  - sparsecheck
+  - sparse-lin-alg
+  - special-functors
+  - special-keys
+  - speculate
+  - speculation
+  - sphinx
+  - sphinxesc
+  - spiros
+  - spir-v
+  - splay
+  - splaytree
+  - splint
+  - split-morphism
+  - splitter
+  - Spock
+  - Spock-api-ghcjs
+  - spoonutil
+  - spoty
+  - Sprig
+  - spritz
+  - spsa
+  - spy
+  - sqlcipher
+  - sqlite
+  - sqlite-simple-errors
+  - sql-simple
+  - sqlvalue-list
+  - sqsd-local
+  - squeal-postgresql
+  - srcinst
+  - sscan
+  - ssh
+  - ssh-tunnel
+  - SSTG
+  - st2
+  - stable-heap
+  - stable-maps
+  - stable-marriage
+  - stable-memo
+  - stack2cabal
+  - stack2nix
+  - stackage-cli
+  - stackage-curator
+  - stackage-metadata
+  - stackage-to-hackage
+  - stackage-types
+  - stack-bump
+  - stackcollapse-ghc
+  - stack-fix
+  - stack-lib
+  - stack-prism
+  - stack-run
+  - stack-type
+  - stack-wrapper
+  - staged-gg
+  - standalone-derive-topdown
+  - standalone-haddock
+  - starling
+  - stash
+  - Stasis
+  - state
+  - state-bag
+  - state-plus
+  - state-record
+  - static-canvas
+  - static-tensor
+  - statistics-dirichlet
+  - statistics-fusion
+  - statistics-hypergeometric-genvar
+  - stats
+  - statsd
+  - statvfs
+  - stb-image-redux
+  - stc-lang
+  - stdata
+  - stdf
+  - stdio
+  - steambrowser
+  - stego-uuid
+  - stemmer
+  - stemmer-german
+  - stepwise
+  - stern-brocot
+  - stgi
+  - STL
+  - stm-chunked-queues
+  - stm-firehose
+  - stm-promise
+  - stm-stats
+  - stochastic
+  - Stomp
+  - storable
+  - storable-static-array
+  - stp
+  - str
+  - Strafunski-ATermLib
+  - Strafunski-StrategyLib
+  - StrappedTemplates
+  - stratum-tool
+  - stratux-types
+  - stream
+  - streamdeck
+  - streamed
+  - stream-fusion
+  - streaming-conduit
+  - streaming-events
+  - streaming-lzma
+  - streaming-osm
+  - streaming-pcap
+  - streaming-png
+  - streaming-utils
+  - streaming-with
+  - streamly-fsnotify
+  - stream-monad
+  - streamproc
+  - StrictBench
+  - StrictCheck
+  - strict-ghc-plugin
+  - strictly
+  - strict-tuple-lens
+  - string-isos
+  - stringlike
+  - string-quote
+  - stringtable-atom
+  - stripe
+  - stripe-hs
+  - stripe-http-streams
+  - stripe-signature
+  - stripe-tests
+  - strongswan-sql
+  - structural-traversal
+  - structures
+  - stt
+  - stunclient
+  - stylish-cabal
+  - stylized
+  - subleq-toolchain
+  - submark
+  - subsample
+  - sub-state
+  - subwordgraph
+  - suffix-array
+  - suffixarray
+  - SuffixStructures
+  - sugarhaskell
+  - suitable
+  - summoner
+  - sunlight
+  - sunroof-compiler
+  - superbubbles
+  - superevent
+  - supermonad
+  - supernova
+  - supero
+  - super-user-spark
+  - supervisor
+  - supplemented
+  - surjective
+  - sv-core
+  - SVD2HS
+  - svfactor
+  - svg-builder-fork
+  - svgcairo
+  - svgutils
+  - svm-light-utils
+  - svm-simple
+  - svndump
+  - swagger-petstore
+  - swagger-test
+  - swf
+  - swift-lda
+  - swiss-ephemeris
+  - swisstable
+  - syb-extras
+  - SybWidget
+  - syb-with-class-instances-text
+  - syfco
+  - sym
+  - symantic
+  - symantic-cli
+  - symantic-http-test
+  - symantic-parser
+  - symantic-xml
+  - symbolic-link
+  - symengine
+  - symengine-hs
+  - sync
+  - sync-mht
+  - syntax-trees
+  - syntax-trees-fork-bairyn
+  - synthesizer
+  - synthesizer-alsa
+  - Sysmon
+  - sys-process
+  - system-canonicalpath
+  - system-command
+  - system-extra
+  - system-inotify
+  - system-lifted
+  - system-linux-proc
+  - system-locale
+  - system-random-effect
+  - t3-server
+  - table
+  - tableaux
+  - table-layout
+  - tables
+  - Tables
+  - tablestorage
+  - table-tennis
+  - Tablify
+  - tabloid
+  - tabs
+  - tag-bits
+  - tagged-exception-core
+  - tagged-timers
+  - taglib-api
+  - tagsoup-ht
+  - tagsoup-megaparsec
+  - tagsoup-parsec
+  - tagsoup-selection
+  - tai
+  - tai64
+  - takahashi
+  - Takusen
+  - takusen-oracle
+  - tamarin-prover-utils
+  - Tape
+  - tapioca
+  - TaskMonad
+  - tasty-auto
+  - tasty-fail-fast
+  - tasty-grading-system
+  - tasty-hedgehog-coverage
+  - tasty-mgolden
+  - tasty-stats
+  - tasty-test-vector
+  - TBC
+  - TBit
+  - tcache-AWS
+  - tcod-haskell
+  - tcp
+  - tcp-streams-openssl
+  - tds
+  - teams
+  - teeth
+  - telegram
+  - telegram-api
+  - teleport
+  - teleshell
+  - tellbot
+  - tempi
+  - template-default
+  - template-haskell-util
+  - template-hsml
+  - templateify
+  - templatepg
+  - template-yj
+  - tempodb
+  - temporal-csound
+  - tempus
+  - tensor
+  - tensorflow
+  - tensorflow-opgen
+  - tensor-safe
+  - termbox-bindings
+  - termination-combinators
+  - termplot
+  - term-rewriting
+  - terntup
+  - terraform-http-backend-pass
+  - tersmu
+  - testCom
+  - testcontainers
+  - test-fixture
+  - test-framework-doctest
+  - test-framework-quickcheck
+  - test-framework-skip
+  - test-framework-testing-feat
+  - test-framework-th-prime
+  - testloop
+  - testpack
+  - testpattern
+  - test-pkg
+  - testrunner
+  - test-sandbox
+  - test-shouldbe
+  - tex2txt
+  - texbuilder
+  - texrunner
+  - text1
+  - text-all
+  - text-and-plots
+  - text-ascii
+  - text-containers
+  - text-format-heavy
+  - text-generic-pretty
+  - text-icu-normalized
+  - text-lens
+  - text-lips
+  - text-markup
+  - text-normal
+  - textocat-api
+  - text-offset
+  - text-position
+  - text-register-machine
+  - text-replace
+  - textual
+  - text-utf8
+  - text-xml-qq
+  - text-zipper-monad
+  - tfp-th
+  - tftp
+  - tga
+  - thank-you-stars
+  - th-build
+  - th-dict-discovery
+  - thentos-cookie-session
+  - Theora
+  - theoremquest
+  - th-fold
+  - th-format
+  - thih
+  - Thingie
+  - th-instance-reification
+  - th-kinds
+  - th-kinds-fork
+  - th-lego
+  - thock
+  - thorn
+  - th-pprint
+  - threadmanager
+  - threepenny-editors
+  - threepenny-gui-contextmenu
+  - threepenny-gui-flexbox
+  - thrift
+  - Thrift
+  - throttled-io-loop
+  - th-sccs
+  - th-tc
+  - th-to-exp
+  - th-traced
+  - thumbnail-plus
+  - tianbar
+  - TicTacToe
+  - tictactoe3d
+  - tidal-midi
+  - tidal-vis
+  - tie-knot
+  - tiempo
+  - tiger
+  - tightrope
+  - timecalc
+  - time-extras
+  - time-machine
+  - timemap
+  - timeout
+  - timeout-with-results
+  - timeparsers
+  - TimePiece
+  - time-qq
+  - time-quote
+  - time-recurrence
+  - time-series
+  - timeseries
+  - time-series-lib
+  - timeutils
+  - time-w3c
+  - timezone-detect
+  - timezone-olson-th
+  - tini
+  - tintin
+  - TinyLaunchbury
+  - tiny-scheduler
+  - tinytemplate
+  - TinyURL
+  - tinyXml
+  - titan-debug-yampa
+  - titan-record-yampa
+  - Titim
+  - tkhs
+  - tkyprof
+  - tmp-postgres
+  - todo
+  - tofromxml
+  - to-haskell
+  - toilet
+  - tokenify
+  - tokenizer-streaming
+  - token-limiter
+  - token-search
+  - tokstyle
+  - tokyocabinet-haskell
+  - tokyotyrant-haskell
+  - tomato-rubato-openal
+  - toml
+  - tonatona-persistent-postgresql
+  - tonatona-persistent-sqlite
+  - tonatona-servant
+  - toodles
+  - Top
+  - torch
+  - TORCS
+  - to-string-class
+  - TotalMap
+  - touched
+  - Tournament
+  - toxiproxy-haskell
+  - tptp
+  - trace
+  - trace-call
+  - traced
+  - trace-function-call
+  - tracetree
+  - tracing-control
+  - tracked-files
+  - tracker
+  - trackit
+  - traction
+  - tracy
+  - traildb
+  - transactional-events
+  - TransformeR
+  - transformers-compose
+  - transformers-lift
+  - transformers-runnable
+  - TransformersStepByStep
+  - transient
+  - transient-universe
+  - translatable-intset
+  - translate
+  - translate-cli
+  - traversal-template
+  - travis
+  - travis-meta-yaml
+  - trawl
+  - traypoweroff
+  - treap
+  - treemap
+  - treemap-html
+  - tree-render-text
+  - TreeStructures
+  - tree-traversals
+  - t-regex
+  - tremulous-query
+  - TrendGraph
+  - trhsx
+  - trigger
+  - trim
+  - tripLL
+  - trivia
+  - tropical
+  - tropical-geometry
+  - true-name
+  - tsession
+  - tsparse
+  - tsp-viz
+  - tsuntsun
+  - tsvsql
+  - ttask
+  - tttool
+  - tubes
+  - tuntap
+  - tuple-gen
+  - tupleinstances
+  - tuple-lenses
+  - turing-machines
+  - turing-music
+  - turtle-options
+  - tweak
+  - twentefp-websockets
+  - twfy-api-client
+  - twhs
+  - twilio
+  - twine
+  - twirp
+  - twitter-feed
+  - tx
+  - txtblk
+  - TYB
+  - tyfam-witnesses
+  - typalyze
+  - typeable-th
+  - type-combinators
+  - typed-encoding
+  - typedflow
+  - typedquery
+  - typed-time
+  - typed-wire
+  - type-eq
+  - type-fun
+  - typehash
+  - type-indexed-queues
+  - type-int
+  - type-interpreter
+  - type-level-bst
+  - type-level-natural-number-induction
+  - type-level-natural-number-operations
+  - typelevel-tensor
+  - type-list
+  - TypeNat
+  - type-of-html-static
+  - typeparams
+  - type-prelude
+  - typesafe-precure
+  - types-compat
+  - type-settheory
+  - type-spine
+  - type-tree
+  - type-unary
+  - typograffiti
+  - tyro
+  - uberlast
+  - ucam-webauth-types
+  - ucd
+  - uconv
+  - udp-conduit
+  - udp-streaming
+  - uhexdump
+  - uhttpc
+  - ui-command
+  - ulid
+  - unamb-custom
+  - unbounded-delays-units
+  - unboxed-containers
+  - unboxed-references
+  - unbreak
+  - unfix-binders
+  - unfoldable
+  - unicode-prelude
+  - unicode-show
+  - unicode-symbols
+  - unicode-tricks
+  - uniform-fileio
+  - union-map
+  - uniprot-kb
+  - uniqueid
+  - uniquely-represented-sets
+  - uniqueness-periods-vector-properties
+  - units-attoparsec
+  - unittyped
+  - unitym-yesod
+  - uni-util
+  - universal-binary
+  - unix-handle
+  - unix-process-conduit
+  - unix-recursive
+  - unlifted-list
+  - unliftio-messagebox
+  - unm-hip
+  - unordered-containers-rematch
+  - unordered-graphs
+  - unordered-intmap
+  - unpacked-either
+  - unpacked-maybe
+  - unpack-funcs
+  - unroll-ghc-plugin
+  - unsafely
+  - unsatisfiable
+  - unsequential
+  - unused
+  - uom-plugin
+  - Updater
+  - uploadcare
+  - upskirt
+  - uri
+  - uri-conduit
+  - uri-encoder
+  - uri-parse
+  - uri-template
+  - uri-templater
+  - URLb
+  - urlcheck
+  - urldecode
+  - url-decoders
+  - urldisp-happstack
+  - urlencoded
+  - url-generic
+  - urn
+  - urn-random
+  - urxml
+  - users-mysql-haskell
+  - users-persistent
+  - utf
+  - utf8-prelude
+  - utf8-validator
+  - UTFTConverter
+  - util-logict
+  - util-plus
+  - util-primitive
+  - util-universe
+  - uuagc-bootstrap
+  - uu-cco
+  - uuid-aeson
+  - uuid-orphans
+  - uvector
+  - uxadt
+  - vabal-lib
+  - vacuum
+  - validated-types
+  - Validation
+  - validations
+  - valid-names
+  - value-supply
+  - vampire
+  - var
+  - varan
+  - variables
+  - variadic
+  - variation
+  - vaultaire-common
+  - vault-tool-server
+  - vault-trans
+  - vcache
+  - vcatt
+  - vcf
+  - vcswrapper
+  - Vec-Boolean
+  - Vec-OpenGLRaw
+  - vect-floating
+  - vect-opengl
+  - vector-bytestring
+  - vector-clock
+  - vector-conduit
+  - vector-fftw
+  - vector-functorlazy
+  - vector-heterogenous
+  - vector-random
+  - vector-read-instances
+  - vector-space-map
+  - vector-space-opengl
+  - vector-space-points
+  - vector-static
+  - Vec-Transform
+  - Verba
+  - verbalexpressions
+  - verdict
+  - verify
+  - verilog
+  - verismith
+  - versioning
+  - vformat
+  - vhd
+  - vhdl
+  - vicinity
+  - viewprof
+  - views
+  - Villefort
+  - vimus
+  - vintage-basic
+  - vinyl-json
+  - vinyl-named-sugar
+  - vinyl-plus
+  - vinyl-utils
+  - vinyl-vectors
+  - virthualenv
+  - visibility
+  - visualize-cbn
+  - visual-prof
+  - vitrea
+  - vk-aws-route53
+  - VKHS
+  - vowpal-utils
+  - voyeur
+  - vpq
+  - VRML
+  - vte
+  - vtegtk3
+  - vty-examples
+  - vty-menu
+  - vty-ui
+  - wacom-daemon
+  - waddle
+  - wai-git-http
+  - wai-graceful
+  - wai-handler-devel
+  - wai-handler-fastcgi
+  - wai-handler-scgi
+  - wai-handler-webkit
+  - wai-hmac-auth
+  - wai-lens
+  - wai-lite
+  - wai-logger-buffered
+  - wai-logger-prefork
+  - wai-make-assets
+  - wai-middleware-catch
+  - wai-middleware-crowd
+  - wai-middleware-delegate
+  - wai-middleware-etag
+  - wai-middleware-headers
+  - wai-middleware-hmac-client
+  - wai-middleware-preprocessor
+  - wai-middleware-static-caching
+  - wai-middleware-travisci
+  - wai-rate-limit-redis
+  - wai-request-spec
+  - wai-responsible
+  - wai-router
+  - wai-routes
+  - wai-routing
+  - wai-secure-cookies
+  - wai-session-alt
+  - wai-session-mysql
+  - wai-session-postgresql
+  - wai-session-redis
+  - wai-static-cache
+  - waitfree
+  - wai-throttler
+  - waitra
+  - wallpaper
+  - warc
+  - warp-dynamic
+  - warp-grpc
+  - warp-static
+  - warp-systemd
+  - wasm
+  - watchdog
+  - watcher
+  - watchit
+  - wavefront
+  - wavefront-obj
+  - weak-bag
+  - weather-api
+  - webapp
+  - WebBits
+  - webcloud
+  - webcrank
+  - webcrank-dispatch
+  - web-css
+  - webdriver-angular
+  - webdriver-snoy
+  - web-encodings
+  - WeberLogic
+  - webfinger-client
+  - webkit-javascriptcore
+  - webmention
+  - web-output
+  - web-push
+  - Webrexp
+  - web-routes-quasi
+  - web-routes-transformers
+  - webshow
+  - websockets-rpc
+  - webwire
+  - WEditor
+  - weekdaze
+  - weighted-regexp
+  - welshy
+  - werewolf
+  - Wheb
+  - while-lang-parser
+  - whim
+  - whiskers
+  - whois
+  - why3
+  - wide-word
+  - WikimediaParser
+  - windns
+  - winerror
+  - Wired
+  - wires
+  - wiring
+  - witty
+  - wkt
+  - wkt-geom
+  - WL500gPLib
+  - wl-pprint-extras
+  - WMSigner
+  - woe
+  - woffex
+  - wol
+  - word2vec-model
+  - wordify
+  - wordlist
+  - WordNet
+  - WordNet-ghc74
+  - wordpass
+  - wordpress-auth
+  - wordsearch
+  - workdays
+  - Workflow
+  - workflow-osx
+  - workflow-windows
+  - work-time
+  - wp-archivebot
+  - wreq-patchable
+  - wreq-sb
+  - writer-cps-lens
+  - writer-cps-monads-tf
+  - writer-cps-morph
+  - wsdl
+  - wsedit
+  - wsjtx-udp
+  - wtk
+  - wumpus-core
+  - wxdirect
+  - X11-extras
+  - X11-rm
+  - X11-xdamage
+  - X11-xfixes
+  - xchat-plugin
+  - xcp
+  - x-dsp
+  - Xec
+  - xenstore
+  - xfconf
+  - xformat
+  - xhaskell-library
+  - xhb
+  - xilinx-lava
+  - xine
+  - xing-api
+  - xkbcommon
+  - xkcd
+  - xleb
+  - xls
+  - xlsior
+  - xlsx-templater
+  - xml2json
+  - xml-conduit-decode
+  - xml-conduit-selectors
+  - xml-conduit-stylist
+  - xml-html-conduit-lens
+  - XmlHtmlWriter
+  - xml-parsec
+  - xml-prettify
+  - xml-query
+  - xml-tydom-core
+  - XMMS
+  - xmonad-bluetilebranch
+  - xmonad-contrib-gpl
+  - xmonad-dbus
+  - xmonad-eval
+  - xmonad-vanessa
+  - xmonad-wallpaper
+  - xmonad-windownames
+  - xor
+  - Xorshift128Plus
+  - xorshift-plus
+  - xournal-types
+  - xrefcheck
+  - xsact
+  - xsd
+  - xslt
+  - xxhash
+  - y0l0bot
+  - yabi-muno
+  - yackage
+  - yahoo-finance-api
+  - yahoo-finance-conduit
+  - yahoo-prices
+  - yahoo-web-search
+  - yajl
+  - yall
+  - yam-app
+  - yam-config
+  - yaml-pretty-extras
+  - YamlReference
+  - yaml-rpc
+  - yampa2048
+  - yampa-glfw
+  - yampa-gloss
+  - yampa-glut
+  - yampa-sdl2
+  - YampaSynth
+  - yampa-test
+  - yam-servant
+  - yandex-translate
+  - yaop
+  - yap
+  - yarr
+  - yaya-test
+  - yaya-unsafe-test
+  - yeller
+  - yeshql-hdbc
+  - yeshql-postgresql-simple
+  - yesod-angular
+  - yesod-angular-ui
+  - yesod-auth-account
+  - yesod-auth-account-fork
+  - yesod-auth-bcrypt
+  - yesod-auth-bcryptdb
+  - yesod-auth-deskcom
+  - yesod-auth-hmac-keccak
+  - yesod-auth-kerberos
+  - yesod-auth-ldap-mediocre
+  - yesod-auth-ldap-native
+  - yesod-auth-nopassword
+  - yesod-auth-pam
+  - yesod-auth-smbclient
+  - yesod-auth-zendesk
+  - yesod-bootstrap
+  - yesod-comments
+  - yesod-content-pdf
+  - yesod-crud
+  - yesod-crud-persist
+  - yesod-datatables
+  - yesod-dsl
+  - yesod-fast-devel
+  - yesod-filter
+  - yesod-form-richtext
+  - yesod-gitrev
+  - yesod-goodies
+  - yesod-job-queue
+  - yesod-links
+  - yesod-lucid
+  - yesod-paginate
+  - yesod-pagination
+  - yesod-pnotify
+  - yesod-pure
+  - yesod-raml
+  - yesod-recaptcha
+  - yesod-routes
+  - yesod-routes-flow
+  - yesod-rst
+  - yesod-s3
+  - yesod-sass
+  - yesod-static-angular
+  - yesod-static-remote
+  - yesod-test-json
+  - yesod-tls
+  - yesod-vend
+  - yesod-worker
+  - YFrob
+  - yggdrasil
+  - yhccore
+  - yhseq
+  - yices
+  - yi-contrib
+  - yi-monokai
+  - yi-solarized
+  - yi-spolsky
+  - yoda
+  - yst
+  - yu-core
+  - yu-tool
+  - yxdb-utils
+  - z3-encoding
+  - z85
+  - zabt
+  - zampolit
+  - Z-Data
+  - ZEBEDDE
+  - zendesk-api
+  - zenhack-prelude
+  - zeno
+  - zeromq4-clone-pattern
+  - zeromq4-conduit
+  - zeromq4-patterns
+  - zeromq-haskell
+  - zettelkast
+  - ZFS
+  - zifter
+  - zigbee-znet25
+  - zip-conduit
+  - zipedit
+  - zipkin
+  - ziptastic-core
+  - zm
+  - ZMachine
+  - zmidi-score
+  - zoneinfo
+  - zoom
+  - zoom-refs
+  - zsdd
+  - zsh-battery
+  - zsyntax
+  - ztar
+  - Zwaluw
+  - zxcvbn-dvorak
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
new file mode 100644
index 000000000000..6f3808103063
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -0,0 +1,519 @@
+# pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+
+compiler: ghc-8.10.4
+
+core-packages:
+  - array-0.5.4.0
+  - base-4.14.1.0
+  - binary-0.8.8.0
+  - bytestring-0.10.12.0
+  - Cabal-3.2.1.0
+  - containers-0.6.2.1
+  - deepseq-1.4.4.0
+  - directory-1.3.6.0
+  - exceptions-0.10.4
+  - filepath-1.4.2.1
+  - ghc-8.10.4
+  - ghc-boot-8.10.4
+  - ghc-boot-th-8.10.4
+  - ghc-compact-0.1.0.0
+  - ghc-heap-8.10.4
+  - ghc-prim-0.6.1
+  - ghci-8.10.4
+  - haskeline-0.8.0.1
+  - hpc-0.6.1.0
+  - integer-gmp-1.0.3.0
+  - libiserv-8.10.4
+  - mtl-2.2.2
+  - parsec-3.1.14.0
+  - pretty-1.1.3.6
+  - process-1.6.9.0
+  - rts-1.0
+  - stm-2.5.0.0
+  - template-haskell-2.16.0.0
+  - terminfo-0.4.1.4
+  - text-1.2.4.1
+  - time-1.9.3
+  - transformers-0.5.6.2
+  - unix-2.7.2.2
+  - xhtml-3000.2.2.1
+
+  # Hack: The following package is a core package of GHCJS. If we don't declare
+  # it, then hackage2nix will generate a Hackage database where all dependants
+  # of this library are marked as "broken".
+  - ghcjs-base-0
+
+# This is a list of packages with versions from the latest Stackage LTS release.
+#
+# The packages and versions in this list cause the `hackage2nix` tool to
+# generate the package at the given version.
+#
+# For instance, with a line like the following:
+#
+# - aeson ==1.4.6.0
+#
+# `hackage2nix` will generate the `aeson` package at version 1.4.6.0 in the
+# ./hackage-packages.nix file.
+#
+# Since the packages in the LTS package set are sometimes older than the latest
+# on Hackage, `hackage2nix` is smart enough to also generate the latest version
+# of a given package.
+#
+# In the above example with aeson, if there was version 1.5.0.0 of aeson
+# available on Hackage, `hackage2nix` would generate two packages, `aeson`
+# at version 1.4.6.0 and `aeson_1_5_0_0` at version 1.5.0.0.
+#
+# WARNING: This list is generated semiautomatically based on the most recent
+# LTS package set. If you want to add entries to it, you must do so before the
+# comment saying "# LTS Haskell x.y". Any changes after that comment will be
+# lost the next time `update-stackage.sh` runs.
+default-package-overrides:
+  # This was only intended for ghc-7.0.4, and has very old deps, one hidden behind a flag
+  - MissingH ==1.4.2.0
+  # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
+  # not yet available in Nixpkgs
+  - gi-gdkx11 < 4
+  # Needs Cabal 3.4 for Setup.hs
+  - gi-javascriptcore < 4.0.23 #
+  - gi-soup < 2.4.24 #
+  - gi-webkit2 < 4.0.27 #
+  # 2021-05-11: not all diagrams libraries have adjusted to
+  # monoid-extras 0.6 yet, keep them pinned to lower versions
+  # until we can do a full migration, see
+  # https://github.com/diagrams/diagrams-core/issues/115
+  # We can keep this pin at most until base 4.15
+  - monoid-extras < 0.6
+  - diagrams-core < 1.5.0
+  - diagrams-lib < 1.4.4
+  # 2021-05-11: Pin for hls 1.1.0
+  - ghcide == 1.2.*
+  - hls-plugin-api == 1.1.0.0
+  - hls-explicit-imports-plugin < 1.0.0.2
+  # 2021-05-12: remove once versions >= 5.0.0 is in stackage
+  - futhark < 0.19.5
+  # 2021-06-05: remove once pandoc 2.14 is in stackage
+  - pandoc-crossref < 0.3.11.0
+
+extra-packages:
+  - base16-bytestring < 1               # required for cabal-install etc.
+  - Cabal == 2.2.*                      # required for jailbreak-cabal etc.
+  - Cabal == 2.4.*                      # required for cabal-install etc.
+  - Cabal == 3.2.*                      # required for cabal-install etc.
+  - dependent-map == 0.2.4.0            # required by Hasura 1.3.1, 2020-08-20
+  - dependent-sum == 0.4                # required by Hasura 1.3.1, 2020-08-20
+  - dhall == 1.29.0                     # required for ats-pkg
+  - Diff < 0.4                          # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
+  - ghc-tcplugins-extra ==0.3.2         # required for polysemy-plugin 0.2.5.0
+  - haddock == 2.23.*                   # required on GHC < 8.10.x
+  - haddock-api == 2.23.*               # required on GHC < 8.10.x
+  - haddock-library ==1.7.*             # required by stylish-cabal-0.5.0.0
+  - happy == 1.19.9                     # for purescript
+  - hinotify == 0.3.9                   # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
+  - hlint < 3.3                         # We don‘t have ghc-lib-parser 9.0.X yet.
+  - immortal == 0.2.2.1                 # required by Hasura 1.3.1, 2020-08-20
+  - mmorph == 1.1.3                     # Newest working version of mmorph on ghc 8.6.5. needed for hls
+  - network == 2.6.3.1                  # required by pkgs/games/hedgewars/default.nix, 2020-11-15
+  - optparse-applicative < 0.16         # needed for niv-0.2.19
+  - refinery == 0.3.*                   # required by hls-tactics-plugin-1.0.0.0
+  - resolv == 0.1.1.2                   # required to build cabal-install-3.0.0.0 with pre ghc-8.8.x
+  - sbv == 7.13                         # required for pkgs.petrinizer
+  - crackNum < 3.0                      # 2021-05-21: 3.0 removed the lib which sbv 7.13 uses
+  - gi-gdk == 3.0.24                    # 2021-05-07: For haskell-gi 0.25 without gtk4
+  - gi-gtk < 4.0                        # 2021-05-07: For haskell-gi 0.25 without gtk4
+  - gi-gdkx11 == 3.0.11                 # 2021-05-07: For haskell-gi 0.25 without gtk4
+  - ShellCheck == 0.7.1                 # 2021-05-09: haskell-ci 0.12.1 pins this version
+
+package-maintainers:
+  abbradar:
+    - Agda
+  berberman:
+    - nvfetcher
+    - arch-web
+    - uusi
+  bdesham:
+    - pinboard-notes-backup
+  cdepillabout:
+    - password
+    - password-instances
+    - pretty-simple
+    - spago
+    - termonad
+  expipiplus1:
+    - VulkanMemoryAllocator
+    - autoapply
+    - exact-real
+    - language-c
+    - orbits
+    - update-nix-fetchgit
+    - vector-sized
+    - vulkan
+    - vulkan-utils
+  erictapen:
+    - hakyll
+    - hakyll-contrib-hyphenation
+    - webify
+  Gabriel439:
+    - annah
+    - bench
+    - break
+    - dhall-bash
+    - dhall-docs
+    - dhall-json
+    - dhall-lsp-server
+    - dhall-nix
+    - dhall-nixpkgs
+    - dhall-openapi
+    - dhall-text
+    - dhall-yaml
+    - dhall
+    - dirstream
+    - errors
+    - foldl
+    - index-core
+    - lens-tutorial
+    - list-transformer
+    - managed
+    - mmorph
+    - morte
+    - mvc-updates
+    - mvc
+    - nix-derivation
+    - nix-diff
+    - optional-args
+    - optparse-generic
+    - pipes-bytestring
+    - pipes-concurrency
+    - pipes-csv
+    - pipes-extras
+    - pipes-group
+    - pipes-http
+    - pipes-parse
+    - pipes-safe
+    - pipes
+    - server-generic
+    - total
+    - turtle
+    - typed-spreadsheet
+  gridaphobe:
+    - located-base
+  jb55:
+    # - bson-lens
+    - cased
+    - elm-export-persistent
+    # - pipes-mongodb
+    - streaming-wai
+  kiwi:
+    - config-schema
+    - config-value
+    - glirc
+    - irc-core
+    - matterhorn
+    - mattermost-api
+    - mattermost-api-qc
+    - Unique
+  maralorn:
+    - arbtt
+    - cabal-fmt
+    - generic-optics
+    - ghcup
+    - ghcide
+    - haskell-language-server
+    - hedgehog
+    - hlint
+    - hmatrix
+    - iCalendar
+    - neuron
+    - optics
+    - reflex-dom
+    - releaser
+    - req
+    - shake-bench
+    - shh
+    - snap
+    - stm-containers
+    - streamly
+    - taskwarrior
+  pacien:
+    - ldgallery-compiler
+  peti:
+    - cabal-install
+    - cabal2nix
+    - cabal2spec
+    - distribution-nixpkgs
+    - funcmp
+    - git-annex
+    - hackage-db
+    - hledger
+    - hledger-interest
+    - hledger-ui
+    - hledger-web
+    - hopenssl
+    - hsdns
+    - hsemail
+    - hsyslog
+    - jailbreak-cabal
+    - language-nix
+    - logging-facade-syslog
+    - nix-paths
+    - pandoc
+    - structured-haskell-mode
+    - titlecase
+    - xmonad
+    - xmonad-contrib
+  poscat:
+    - hinit
+  psibi:
+    - path-pieces
+    - persistent
+    - persistent-sqlite
+    - persistent-template
+    - shakespeare
+  roberth:
+    - arion-compose
+    - hercules-ci-agent
+    - hercules-ci-api
+    - hercules-ci-api-agent
+    - hercules-ci-api-core
+    - hercules-ci-cli
+    - hercules-ci-cnix-expr
+    - hercules-ci-cnix-store
+  rvl:
+    - taffybar
+    - arbtt
+    - lentil
+  sorki:
+    - cayenne-lpp
+    - data-stm32
+    - gcodehs
+    - nix-derivation
+    - nix-narinfo
+    - ttn
+    - ttn-client
+    - update-nix-fetchgit
+    - zre
+  sternenseemann:
+    # also maintain upstream package
+    - spacecookie
+    - gopher-proxy
+    # other packages I can help out for
+    - systemd
+    - fast-logger
+    - flat
+    - Euterpea2
+    - utc
+    - socket
+    - gitit
+    - yarn-lock
+    - yarn2nix
+    - large-hashable
+    - haskell-ci
+    - diagrams
+    # owothia
+    - irc-client
+    - chatter
+    - envy
+  terlar:
+    - nix-diff
+  turion:
+    - rhine
+    - rhine-gloss
+    - essence-of-live-coding
+    - essence-of-live-coding-gloss
+    - essence-of-live-coding-pulse
+    - essence-of-live-coding-quickcheck
+    - Agda
+    - dunai
+    - finite-typelits
+    - pulse-simple
+    - simple-affine-space
+  utdemir:
+    - nix-tree
+
+unsupported-platforms:
+  Allure:                                       [ x86_64-darwin ]
+  alsa-mixer:                                   [ x86_64-darwin ]
+  alsa-pcm:                                     [ x86_64-darwin ]
+  alsa-seq:                                     [ x86_64-darwin ]
+  AWin32Console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  barbly:                                       [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
+  bdcs-api:                                     [ x86_64-darwin ]
+  bindings-directfb:                            [ x86_64-darwin ]
+  bindings-sane:                                [ x86_64-darwin ]
+  bustle:                                       [ x86_64-darwin ] # uses glibc-specific ptsname_r
+  charsetdetect:                                [ aarch64-linux ] # not supported by vendored lib / not configured properly https://github.com/batterseapower/libcharsetdetect/issues/3
+  crackNum:                                     [ aarch64-linux ] # depends on sbv, which is not supported on aarch64-linux
+  cut-the-crap:                                 [ x86_64-darwin ]
+  d3d11binding:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  DirectSound:                                  [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  dx9base:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  dx9d3d:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  dx9d3dx:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Euterpea:                                     [ x86_64-darwin ]
+  follow-file:                                  [ x86_64-darwin ]
+  freenect:                                     [ x86_64-darwin ]
+  FTGL:                                         [ x86_64-darwin ]
+  ghcjs-dom-hello:                              [ x86_64-darwin ]
+  gi-dbusmenugtk3:                              [ x86_64-darwin ]
+  gi-dbusmenu:                                  [ x86_64-darwin ]
+  gi-ggit:                                      [ x86_64-darwin ]
+  gi-ibus:                                      [ x86_64-darwin ]
+  gi-ostree:                                    [ x86_64-darwin ]
+  gi-vte:                                       [ x86_64-darwin ]
+  gnome-keyring:                                [ x86_64-darwin ]
+  gtk-mac-integration:                          [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
+  gtk-sni-tray:                                 [ x86_64-darwin ]
+  haskell-snake:                                [ x86_64-darwin ]
+  hcwiid:                                       [ x86_64-darwin ]
+  HFuse:                                        [ x86_64-darwin ]
+  hidapi:                                       [ x86_64-darwin ]
+  hinotify-bytestring:                          [ x86_64-darwin ]
+  hommage-ds:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  honk:                                         [ x86_64-darwin ]
+  hpapi:                                        [ x86_64-darwin ]
+  HSoM:                                         [ x86_64-darwin ]
+  iwlib:                                        [ x86_64-darwin ]
+  jsaddle-webkit2gtk:                           [ x86_64-darwin ]
+  LambdaHack:                                   [ x86_64-darwin ]
+  large-hashable:                               [ aarch64-linux ] # https://github.com/factisresearch/large-hashable/issues/17
+  libmodbus:                                    [ x86_64-darwin ]
+  libsystemd-journal:                           [ x86_64-darwin ]
+  libtelnet:                                    [ x86_64-darwin ]
+  libzfs:                                       [ x86_64-darwin ]
+  linearEqSolver:                               [ aarch64-linux ]
+  linux-evdev:                                  [ x86_64-darwin ]
+  linux-file-extents:                           [ x86_64-darwin ]
+  linux-inotify:                                [ x86_64-darwin ]
+  linux-mount:                                  [ x86_64-darwin ]
+  linux-namespaces:                             [ x86_64-darwin ]
+  lio-fs:                                       [ x86_64-darwin ]
+  logging-facade-journald:                      [ x86_64-darwin ]
+  midi-alsa:                                    [ x86_64-darwin ]
+  mpi-hs:                                       [ aarch64-linux, x86_64-darwin ]
+  mpi-hs-binary:                                [ aarch64-linux, x86_64-darwin ]
+  mpi-hs-cereal:                                [ aarch64-linux, x86_64-darwin ]
+  mpi-hs-store:                                 [ aarch64-linux, x86_64-darwin ]
+  mplayer-spot:                                 [ aarch64-linux ]
+  netlink:                                      [ x86_64-darwin ]
+  oculus:                                       [ x86_64-darwin ]
+  pam:                                          [ x86_64-darwin ]
+  parport:                                      [ x86_64-darwin ]
+  password:                                     [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
+  password-instances:                           [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
+  persist-state:                                [ aarch64-linux, armv7l-linux ] # https://github.com/minad/persist-state/blob/6fd68c0b8b93dec78218f6d5a1f4fa06ced4e896/src/Data/PersistState.hs#L122-L128
+  piyo:                                         [ x86_64-darwin ]
+  PortMidi-simple:                              [ x86_64-darwin ]
+  PortMidi:                                     [ x86_64-darwin ]
+  posix-api:                                    [ x86_64-darwin ]
+  Raincat:                                      [ x86_64-darwin ]
+  reactive-balsa:                               [ x86_64-darwin ] # depends on alsa-core
+  reactivity:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  reflex-dom-fragment-shader-canvas:            [ x86_64-darwin, aarch64-linux ]
+  reflex-dom:                                   [ x86_64-darwin, aarch64-linux ]
+  reflex-localize-dom:                          [ x86_64-darwin, aarch64-linux ]
+  rtlsdr:                                       [ x86_64-darwin ]
+  rubberband:                                   [ x86_64-darwin ]
+  sbv:                                          [ aarch64-linux ]
+  scat:                                         [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
+  scrypt:                                       [ aarch64-linux, armv7l-linux ] # https://github.com/informatikr/scrypt/issues/8
+  sdl2-mixer:                                   [ x86_64-darwin ]
+  sdl2-ttf:                                     [ x86_64-darwin ]
+  synthesizer-alsa:                             [ x86_64-darwin ]
+  taffybar:                                     [ x86_64-darwin ]
+  termonad:                                     [ x86_64-darwin ]
+  tokyotyrant-haskell:                          [ x86_64-darwin ]
+  udev:                                         [ x86_64-darwin ]
+  Unixutils-shadow:                             [ x86_64-darwin ]
+  verifiable-expressions:                       [ aarch64-linux ]
+  vrpn:                                         [ x86_64-darwin ]
+  vulkan:                                       [ i686-linux, armv7l-linux, x86_64-darwin ]
+  VulkanMemoryAllocator:                        [ i686-linux, armv7l-linux, x86_64-darwin ]
+  vulkan-utils:                                 [ x86_64-darwin ]
+  webkit2gtk3-javascriptcore:                   [ x86_64-darwin ]
+  Win32-console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-dhcp-server:                            [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-errors:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-extras:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32:                                        [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-junction-point:                         [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-notify:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-security:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-services:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  Win32-services-wrapper:                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  xattr:                                        [ x86_64-darwin ]
+  xgboost-haskell:                              [ aarch64-linux, armv7l-linux ]
+  XInput:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
+  xmobar:                                       [ x86_64-darwin ]
+  xmonad-extras:                                [ x86_64-darwin ]
+  xmonad-volume:                                [ x86_64-darwin ]
+
+dont-distribute-packages:
+  # Depends on shine, which is a ghcjs project.
+  - shine-varying
+
+  # these packages depend on software with an unfree license
+  - accelerate-bignum
+  - accelerate-blas
+  - accelerate-cublas
+  - accelerate-cuda
+  - accelerate-cufft
+  - accelerate-examples
+  - accelerate-fft
+  - accelerate-fourier-benchmark
+  - accelerate-io-array
+  - accelerate-io-bmp
+  - accelerate-io-bytestring
+  - accelerate-io-cereal
+  - accelerate-io-JuicyPixels
+  - accelerate-io-repa
+  - accelerate-io-vector
+  - accelerate-kullback-liebler
+  - accelerate-llvm-ptx
+  - bindings-yices
+  - boolector
+  - ccelerate-cuda
+  - containers-accelerate
+  - cplex-hs
+  - cublas
+  - cuda # 2020-08-18 because of dependency nvidia-x11
+  - cufft
+  - cusolver
+  - cusparse
+  - gloss-raster-accelerate
+  - hashable-accelerate
+  - libnvvm
+  - matlab
+  - nvvm
+  - Obsidian
+  - odpic-raw
+  - patch-image
+  # license for input data unclear, dependency not on Hackage
+  # see https://github.com/NixOS/nixpkgs/pull/88604
+  - tensorflow-mnist
+  - yices-easy
+  - yices-painless
+
+  # These packages don‘t build because they use deprecated webkit versions.
+  - diagrams-hsqml
+  - dialog
+  - ghcjs-dom-webkit
+  - gi-webkit
+  - hs-mesos
+  - hsqml
+  - hsqml-datamodel
+  - hsqml-demo-manic
+  - hsqml-demo-notes
+  - hsqml-demo-samples
+  - hstorchat
+  - jsaddle-webkitgtk
+  - jsc
+  - lambdacat
+  - manatee-all
+  - manatee-browser
+  - manatee-reader
+  - markup-preview
+  - spike
+  - web-browser-in-haskell
+  - webkit
+  - webkitgtk3
+  - webkitgtk3-javascriptcore
+  - websnap
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
new file mode 100644
index 000000000000..bfe0b93b3e41
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -0,0 +1,2724 @@
+# Stackage Nightly 2021-06-01
+# This file is auto-generated by
+# maintainers/scripts/haskell/update-stackage.sh
+default-package-overrides:
+  - abstract-deque ==0.3
+  - abstract-par ==0.3.3
+  - AC-Angle ==1.0
+  - accuerr ==0.2.0.2
+  - ace ==0.6
+  - action-permutations ==0.0.0.1
+  - ad ==4.4.1
+  - adjunctions ==4.4
+  - adler32 ==0.1.2.0
+  - aern2-mp ==0.2.6.0
+  - aern2-real ==0.2.6.0
+  - aeson ==1.5.6.0
+  - aeson-attoparsec ==0.0.0
+  - aeson-better-errors ==0.9.1.0
+  - aeson-casing ==0.2.0.0
+  - aeson-combinators ==0.0.5.0
+  - aeson-commit ==1.3
+  - aeson-compat ==0.3.9
+  - aeson-default ==0.9.1.0
+  - aeson-diff ==1.1.0.9
+  - aeson-generic-compat ==0.0.1.3
+  - aeson-lens ==0.5.0.0
+  - aeson-optics ==1.1.0.1
+  - aeson-picker ==0.1.0.5
+  - aeson-pretty ==0.8.8
+  - aeson-qq ==0.8.3
+  - aeson-schemas ==1.3.3
+  - aeson-typescript ==0.3.0.1
+  - aeson-with ==0.1.2.0
+  - aeson-yak ==0.1.1.3
+  - aeson-yaml ==1.1.0.0
+  - Agda ==2.6.1.3
+  - agda2lagda ==0.2020.11.1
+  - al ==0.1.4.2
+  - alarmclock ==0.7.0.5
+  - alerts ==0.1.2.0
+  - alex ==3.2.6
+  - alex-meta ==0.3.0.13
+  - alg ==0.2.13.1
+  - algebraic-graphs ==0.5
+  - Allure ==0.10.2.0
+  - almost-fix ==0.0.2
+  - alsa-core ==0.5.0.1
+  - alsa-mixer ==0.3.0
+  - alsa-pcm ==0.6.1.1
+  - alsa-seq ==0.6.0.8
+  - alternative-vector ==0.0.0
+  - ALUT ==2.4.0.3
+  - amazonka-apigateway ==1.6.1
+  - amazonka-application-autoscaling ==1.6.1
+  - amazonka-appstream ==1.6.1
+  - amazonka-athena ==1.6.1
+  - amazonka-autoscaling ==1.6.1
+  - amazonka-budgets ==1.6.1
+  - amazonka-certificatemanager ==1.6.1
+  - amazonka-cloudformation ==1.6.1
+  - amazonka-cloudfront ==1.6.1
+  - amazonka-cloudhsm ==1.6.1
+  - amazonka-cloudsearch ==1.6.1
+  - amazonka-cloudsearch-domains ==1.6.1
+  - amazonka-cloudtrail ==1.6.1
+  - amazonka-cloudwatch ==1.6.1
+  - amazonka-cloudwatch-events ==1.6.1
+  - amazonka-cloudwatch-logs ==1.6.1
+  - amazonka-codebuild ==1.6.1
+  - amazonka-codecommit ==1.6.1
+  - amazonka-codedeploy ==1.6.1
+  - amazonka-codepipeline ==1.6.1
+  - amazonka-cognito-identity ==1.6.1
+  - amazonka-cognito-idp ==1.6.1
+  - amazonka-cognito-sync ==1.6.1
+  - amazonka-config ==1.6.1
+  - amazonka-core ==1.6.1
+  - amazonka-datapipeline ==1.6.1
+  - amazonka-devicefarm ==1.6.1
+  - amazonka-directconnect ==1.6.1
+  - amazonka-discovery ==1.6.1
+  - amazonka-dms ==1.6.1
+  - amazonka-ds ==1.6.1
+  - amazonka-dynamodb ==1.6.1
+  - amazonka-dynamodb-streams ==1.6.1
+  - amazonka-ecr ==1.6.1
+  - amazonka-ecs ==1.6.1
+  - amazonka-efs ==1.6.1
+  - amazonka-elasticache ==1.6.1
+  - amazonka-elasticbeanstalk ==1.6.1
+  - amazonka-elasticsearch ==1.6.1
+  - amazonka-elastictranscoder ==1.6.1
+  - amazonka-elb ==1.6.1
+  - amazonka-elbv2 ==1.6.1
+  - amazonka-emr ==1.6.1
+  - amazonka-gamelift ==1.6.1
+  - amazonka-glacier ==1.6.1
+  - amazonka-glue ==1.6.1
+  - amazonka-health ==1.6.1
+  - amazonka-iam ==1.6.1
+  - amazonka-importexport ==1.6.1
+  - amazonka-inspector ==1.6.1
+  - amazonka-iot ==1.6.1
+  - amazonka-iot-dataplane ==1.6.1
+  - amazonka-kinesis ==1.6.1
+  - amazonka-kinesis-analytics ==1.6.1
+  - amazonka-kinesis-firehose ==1.6.1
+  - amazonka-kms ==1.6.1
+  - amazonka-lambda ==1.6.1
+  - amazonka-lightsail ==1.6.1
+  - amazonka-marketplace-analytics ==1.6.1
+  - amazonka-marketplace-metering ==1.6.1
+  - amazonka-ml ==1.6.1
+  - amazonka-opsworks ==1.6.1
+  - amazonka-opsworks-cm ==1.6.1
+  - amazonka-pinpoint ==1.6.1
+  - amazonka-polly ==1.6.1
+  - amazonka-rds ==1.6.1
+  - amazonka-redshift ==1.6.1
+  - amazonka-rekognition ==1.6.1
+  - amazonka-route53 ==1.6.1
+  - amazonka-route53-domains ==1.6.1
+  - amazonka-s3 ==1.6.1
+  - amazonka-sdb ==1.6.1
+  - amazonka-servicecatalog ==1.6.1
+  - amazonka-ses ==1.6.1
+  - amazonka-shield ==1.6.1
+  - amazonka-sms ==1.6.1
+  - amazonka-snowball ==1.6.1
+  - amazonka-sns ==1.6.1
+  - amazonka-sqs ==1.6.1
+  - amazonka-ssm ==1.6.1
+  - amazonka-stepfunctions ==1.6.1
+  - amazonka-storagegateway ==1.6.1
+  - amazonka-sts ==1.6.1
+  - amazonka-support ==1.6.1
+  - amazonka-swf ==1.6.1
+  - amazonka-test ==1.6.1
+  - amazonka-waf ==1.6.1
+  - amazonka-workspaces ==1.6.1
+  - amazonka-xray ==1.6.1
+  - amqp ==0.22.0
+  - amqp-utils ==0.6.1.1
+  - annotated-wl-pprint ==0.7.0
+  - ansi-terminal ==0.11
+  - ansi-wl-pprint ==0.6.9
+  - ANum ==0.2.0.2
+  - apecs ==0.9.2
+  - apecs-gloss ==0.2.4
+  - apecs-physics ==0.4.5
+  - api-field-json-th ==0.1.0.2
+  - api-maker ==0.1.0.0
+  - ap-normalize ==0.1.0.1
+  - appar ==0.1.8
+  - appendmap ==0.1.5
+  - apply-refact ==0.9.3.0
+  - apportionment ==0.0.0.3
+  - approximate ==0.3.4
+  - approximate-equality ==1.1.0.2
+  - app-settings ==0.2.0.12
+  - arbor-lru-cache ==0.1.1.1
+  - arithmoi ==0.11.0.1
+  - array-memoize ==0.6.0
+  - arrow-extras ==0.1.0.1
+  - arrows ==0.4.4.2
+  - ascii ==1.0.1.4
+  - ascii-case ==1.0.0.4
+  - ascii-char ==1.0.0.8
+  - asciidiagram ==1.3.3.3
+  - ascii-group ==1.0.0.4
+  - ascii-predicates ==1.0.0.4
+  - ascii-progress ==0.3.3.0
+  - ascii-superset ==1.0.1.4
+  - ascii-th ==1.0.0.4
+  - asif ==6.0.4
+  - asn1-encoding ==0.9.6
+  - asn1-parse ==0.9.5
+  - asn1-types ==0.3.4
+  - assert-failure ==0.1.2.5
+  - assoc ==1.0.2
+  - astro ==0.4.3.0
+  - async ==2.2.3
+  - async-extra ==0.2.0.0
+  - async-pool ==0.9.1
+  - async-refresh ==0.3.0.0
+  - async-refresh-tokens ==0.4.0.0
+  - atom-basic ==0.2.5
+  - atomic-primops ==0.8.4
+  - atomic-write ==0.2.0.7
+  - attoparsec ==0.13.2.5
+  - attoparsec-base64 ==0.0.0
+  - attoparsec-binary ==0.2
+  - attoparsec-expr ==0.1.1.2
+  - attoparsec-iso8601 ==1.0.2.0
+  - attoparsec-path ==0.0.0.1
+  - audacity ==0.0.2
+  - aur ==7.0.6
+  - aura ==3.2.4
+  - authenticate ==1.3.5
+  - authenticate-oauth ==1.6.0.1
+  - autoexporter ==1.1.20
+  - auto-update ==0.1.6
+  - avers ==0.0.17.1
+  - avro ==0.5.2.0
+  - aws-cloudfront-signed-cookies ==0.2.0.6
+  - aws-xray-client ==0.1.0.0
+  - aws-xray-client-wai ==0.1.0.0
+  - backprop ==0.2.6.4
+  - backtracking ==0.1.0
+  - bank-holidays-england ==0.2.0.6
+  - barbies ==2.0.2.0
+  - base16 ==0.3.0.1
+  - base16-bytestring ==1.0.1.0
+  - base16-lens ==0.1.3.2
+  - base32 ==0.2.0.0
+  - base32-lens ==0.1.1.1
+  - base32string ==0.9.1
+  - base58-bytestring ==0.1.0
+  - base58string ==0.10.0
+  - base64 ==0.4.2.3
+  - base64-bytestring ==1.1.0.0
+  - base64-bytestring-type ==1.0.1
+  - base64-lens ==0.3.1
+  - base64-string ==0.2
+  - base-compat ==0.11.2
+  - base-compat-batteries ==0.11.2
+  - basement ==0.0.12
+  - base-orphans ==0.8.4
+  - base-prelude ==1.4
+  - base-unicode-symbols ==0.2.4.2
+  - basic-prelude ==0.7.0
+  - bazel-runfiles ==0.12
+  - bbdb ==0.8
+  - bcp47 ==0.2.0.4
+  - bcp47-orphans ==0.1.0.4
+  - bcrypt ==0.0.11
+  - bech32 ==1.1.0
+  - bech32-th ==1.0.2
+  - bench ==1.0.12
+  - benchpress ==0.2.2.16
+  - between ==0.11.0.0
+  - bibtex ==0.1.0.6
+  - bifunctors ==5.5.11
+  - bimap ==0.4.0
+  - bimaps ==0.1.0.2
+  - bimap-server ==0.1.0.1
+  - bin ==0.1.1
+  - binary-conduit ==1.3.1
+  - binary-ext ==2.0.4
+  - binary-ieee754 ==0.1.0.0
+  - binary-instances ==1.0.1
+  - binary-list ==1.1.1.2
+  - binary-orphans ==1.0.1
+  - binary-parser ==0.5.7
+  - binary-parsers ==0.2.4.0
+  - binary-search ==2.0.0
+  - binary-shared ==0.8.3
+  - binary-tagged ==0.3
+  - bindings-DSL ==1.0.25
+  - bindings-GLFW ==3.3.2.0
+  - bindings-libzip ==1.0.1
+  - bindings-uname ==0.1
+  - bins ==0.1.2.0
+  - bitarray ==0.0.1.1
+  - bits ==0.5.3
+  - bitset-word8 ==0.1.1.2
+  - bits-extra ==0.0.2.0
+  - bitvec ==1.1.1.0
+  - bitwise-enum ==1.0.1.0
+  - blake2 ==0.3.0
+  - blanks ==0.5.0
+  - blas-carray ==0.1.0.1
+  - blas-comfort-array ==0.0.0.2
+  - blas-ffi ==0.1
+  - blaze-bootstrap ==0.1.0.1
+  - blaze-builder ==0.4.2.1
+  - blaze-html ==0.9.1.2
+  - blaze-markup ==0.8.2.8
+  - blaze-svg ==0.3.6.1
+  - blaze-textual ==0.2.1.0
+  - bmp ==1.2.6.3
+  - BNFC ==2.9.1
+  - BNFC-meta ==0.6.1
+  - board-games ==0.3
+  - boltzmann-samplers ==0.1.1.0
+  - Boolean ==0.2.4
+  - boolean-like ==0.1.1.0
+  - boolsimplifier ==0.1.8
+  - boots ==0.2.0.1
+  - bordacount ==0.1.0.0
+  - boring ==0.2
+  - both ==0.1.1.1
+  - bound ==2.0.3
+  - BoundedChan ==1.0.3.0
+  - bounded-queue ==1.0.0
+  - boundingboxes ==0.2.3
+  - bower-json ==1.0.0.1
+  - boxes ==0.1.5
+  - brick ==0.62
+  - broadcast-chan ==0.2.1.1
+  - bsb-http-chunked ==0.0.0.4
+  - bson ==0.4.0.1
+  - btrfs ==0.2.0.0
+  - buffer-builder ==0.2.4.7
+  - buffer-pipe ==0.0
+  - bugsnag-haskell ==0.0.4.1
+  - bugsnag-hs ==0.2.0.3
+  - bugzilla-redhat ==0.3.1
+  - burrito ==1.2.0.2
+  - butcher ==1.3.3.2
+  - buttplug-hs-core ==0.1.0.0
+  - bv ==0.5
+  - bv-little ==1.1.1
+  - byteable ==0.1.1
+  - byte-count-reader ==0.10.1.3
+  - bytedump ==1.0
+  - byte-order ==0.1.2.0
+  - byteorder ==1.0.4
+  - bytes ==0.17.1
+  - byteset ==0.1.1.0
+  - bytestring-builder ==0.10.8.2.0
+  - bytestring-conversion ==0.3.1
+  - bytestring-lexing ==0.5.0.2
+  - bytestring-mmap ==0.2.2
+  - bytestring-strict-builder ==0.4.5.4
+  - bytestring-to-vector ==0.3.0.1
+  - bytestring-tree-builder ==0.2.7.9
+  - bz2 ==1.0.1.0
+  - bzlib ==0.5.1.0
+  - bzlib-conduit ==0.3.0.2
+  - c14n ==0.1.0.1
+  - c2hs ==0.28.7
+  - cabal-appimage ==0.3.0.2
+  - cabal-debian ==5.1
+  - cabal-doctest ==1.0.8
+  - cabal-file ==0.1.1
+  - cabal-flatpak ==0.1.0.2
+  - cabal-plan ==0.7.2.0
+  - cabal-rpm ==2.0.8
+  - cache ==0.1.3.0
+  - cacophony ==0.10.1
+  - calendar-recycling ==0.0.0.1
+  - call-stack ==0.3.0
+  - can-i-haz ==0.3.1.0
+  - capability ==0.4.0.0
+  - ca-province-codes ==1.0.0.0
+  - cardano-coin-selection ==1.0.1
+  - carray ==0.1.6.8
+  - casa-client ==0.0.1
+  - casa-types ==0.0.2
+  - cased ==0.1.0.0
+  - case-insensitive ==1.2.1.0
+  - cases ==0.1.4.1
+  - casing ==0.1.4.1
+  - cassava ==0.5.2.0
+  - cassava-conduit ==0.6.0
+  - cassava-megaparsec ==2.0.2
+  - cast ==0.1.0.2
+  - category ==0.2.5.0
+  - cayley-client ==0.4.15
+  - cborg ==0.2.5.0
+  - cborg-json ==0.2.2.0
+  - cdar-mBound ==0.1.0.2
+  - c-enum ==0.1.0.1
+  - cereal ==0.5.8.1
+  - cereal-conduit ==0.8.0
+  - cereal-text ==0.1.0.2
+  - cereal-vector ==0.2.0.1
+  - cfenv ==0.1.0.0
+  - cgi ==3001.5.0.0
+  - chan ==0.0.4.1
+  - ChannelT ==0.0.0.7
+  - character-cases ==0.1.0.6
+  - charset ==0.3.8
+  - charsetdetect-ae ==1.1.0.4
+  - Chart ==1.9.3
+  - chaselev-deque ==0.5.0.5
+  - ChasingBottoms ==1.3.1.10
+  - cheapskate ==0.1.1.2
+  - cheapskate-highlight ==0.1.0.0
+  - cheapskate-lucid ==0.1.0.0
+  - checkers ==0.5.6
+  - checksum ==0.0
+  - chimera ==0.3.1.0
+  - chiphunk ==0.1.4.0
+  - choice ==0.2.2
+  - chronologique ==0.3.1.3
+  - chronos ==1.1.1
+  - chronos-bench ==0.2.0.2
+  - chunked-data ==0.3.1
+  - cipher-aes ==0.2.11
+  - cipher-camellia ==0.0.2
+  - cipher-des ==0.0.6
+  - cipher-rc4 ==0.1.4
+  - circle-packing ==0.1.0.6
+  - circular ==0.3.1.1
+  - citeproc ==0.3.0.9
+  - clash-ghc ==1.4.2
+  - clash-lib ==1.4.2
+  - clash-prelude ==1.4.2
+  - classy-prelude ==1.5.0
+  - classy-prelude-conduit ==1.5.0
+  - clay ==0.13.3
+  - clientsession ==0.9.1.2
+  - climb ==0.3.3
+  - Clipboard ==2.3.2.0
+  - clock ==0.8
+  - clock-extras ==0.1.0.2
+  - closed ==0.2.0.1
+  - clumpiness ==0.17.0.2
+  - ClustalParser ==1.3.0
+  - cmark ==0.6
+  - cmark-gfm ==0.2.2
+  - cmark-lucid ==0.1.0.0
+  - cmdargs ==0.10.21
+  - codec-beam ==0.2.0
+  - code-page ==0.2.1
+  - collect-errors ==0.1.5.0
+  - co-log-concurrent ==0.5.0.0
+  - co-log-core ==0.2.1.1
+  - Color ==0.3.1
+  - colorful-monoids ==0.2.1.3
+  - colorize-haskell ==1.0.1
+  - colour ==2.3.5
+  - combinatorial ==0.1.0.1
+  - comfort-array ==0.4.1
+  - comfort-graph ==0.0.3.1
+  - commonmark ==0.1.1.4
+  - commonmark-extensions ==0.2.0.4
+  - commonmark-pandoc ==0.2.0.1
+  - commutative ==0.0.2
+  - comonad ==5.0.8
+  - comonad-extras ==4.0.1
+  - compactmap ==0.1.4.2.1
+  - compdata ==0.12.1
+  - compensated ==0.8.3
+  - compiler-warnings ==0.1.0
+  - composable-associations ==0.1.0.0
+  - composable-associations-aeson ==0.1.0.1
+  - composite-aeson ==0.7.5.0
+  - composite-aeson-path ==0.7.5.0
+  - composite-aeson-refined ==0.7.5.0
+  - composite-aeson-throw ==0.1.0.0
+  - composite-base ==0.7.5.0
+  - composite-binary ==0.7.5.0
+  - composite-ekg ==0.7.5.0
+  - composite-hashable ==0.7.5.0
+  - composite-tuple ==0.1.2.0
+  - composite-xstep ==0.1.0.0
+  - composition ==1.0.2.2
+  - composition-extra ==2.0.0
+  - concise ==0.1.0.1
+  - concurrency ==1.11.0.1
+  - concurrent-extra ==0.7.0.12
+  - concurrent-output ==1.10.12
+  - concurrent-split ==0.0.1.1
+  - concurrent-supply ==0.1.8
+  - cond ==0.4.1.1
+  - conduino ==0.2.2.0
+  - conduit ==1.3.4.1
+  - conduit-algorithms ==0.0.11.0
+  - conduit-combinators ==1.3.0
+  - conduit-concurrent-map ==0.1.1
+  - conduit-extra ==1.3.5
+  - conduit-parse ==0.2.1.0
+  - conduit-zstd ==0.0.2.0
+  - conferer ==1.1.0.0
+  - conferer-aeson ==1.1.0.1
+  - conferer-hspec ==1.1.0.0
+  - conferer-warp ==1.1.0.0
+  - config-ini ==0.2.4.0
+  - configurator ==0.3.0.0
+  - configurator-export ==0.1.0.1
+  - configurator-pg ==0.2.5
+  - connection ==0.3.1
+  - connection-pool ==0.2.2
+  - console-style ==0.0.2.1
+  - constraint ==0.1.4.0
+  - constraints ==0.13
+  - constraints-extras ==0.3.1.0
+  - constraint-tuples ==0.1.2
+  - construct ==0.3.0.2
+  - contravariant ==1.5.3
+  - contravariant-extras ==0.3.5.2
+  - control-bool ==0.2.1
+  - control-dsl ==0.2.1.3
+  - control-monad-free ==0.6.2
+  - control-monad-omega ==0.3.2
+  - convertible ==1.1.1.0
+  - cookie ==0.4.5
+  - core-data ==0.2.1.9
+  - core-program ==0.2.7.1
+  - core-text ==0.3.0.0
+  - countable ==1.0
+  - country ==0.2.1
+  - cpphs ==1.20.9.1
+  - cprng-aes ==0.6.1
+  - cpu ==0.1.2
+  - cpuinfo ==0.1.0.2
+  - crackNum ==3.1
+  - crc32c ==0.0.0
+  - credential-store ==0.1.2
+  - criterion ==1.5.9.0
+  - criterion-measurement ==0.1.2.0
+  - cron ==0.7.0
+  - crypto-api ==0.13.3
+  - crypto-cipher-types ==0.0.9
+  - crypto-enigma ==0.1.1.6
+  - cryptohash ==0.11.9
+  - cryptohash-cryptoapi ==0.1.4
+  - cryptohash-md5 ==0.11.100.1
+  - cryptohash-sha1 ==0.11.100.1
+  - cryptohash-sha256 ==0.11.102.0
+  - cryptohash-sha512 ==0.11.100.1
+  - cryptonite ==0.28
+  - cryptonite-conduit ==0.2.2
+  - cryptonite-openssl ==0.7
+  - crypto-numbers ==0.2.7
+  - crypto-pubkey ==0.2.8
+  - crypto-pubkey-types ==0.4.3
+  - crypto-random ==0.0.9
+  - crypto-random-api ==0.2.0
+  - csp ==1.4.0
+  - css-syntax ==0.1.0.0
+  - css-text ==0.1.3.0
+  - c-struct ==0.1.0.1
+  - csv ==0.1.2
+  - ctrie ==0.2
+  - cubicbezier ==0.6.0.6
+  - cubicspline ==0.1.2
+  - cuckoo-filter ==0.2.0.2
+  - cue-sheet ==2.0.1
+  - curl ==1.3.8
+  - currencies ==0.2.0.0
+  - currency ==0.2.0.0
+  - cursor ==0.3.0.0
+  - cursor-brick ==0.1.0.0
+  - cursor-fuzzy-time ==0.0.0.0
+  - cursor-gen ==0.3.0.0
+  - cutter ==0.0
+  - cyclotomic ==1.1.1
+  - czipwith ==1.0.1.3
+  - d10 ==0.2.1.6
+  - data-accessor ==0.2.3
+  - data-accessor-mtl ==0.2.0.4
+  - data-accessor-template ==0.2.1.16
+  - data-accessor-transformers ==0.2.1.7
+  - data-ascii ==1.0.0.6
+  - data-binary-ieee754 ==0.4.4
+  - data-bword ==0.1.0.1
+  - data-checked ==0.3
+  - data-clist ==0.1.2.3
+  - data-compat ==0.1.0.3
+  - data-default ==0.7.1.1
+  - data-default-class ==0.1.2.0
+  - data-default-instances-containers ==0.0.1
+  - data-default-instances-dlist ==0.0.1
+  - data-default-instances-old-locale ==0.0.1
+  - data-diverse ==4.7.0.0
+  - datadog ==0.2.5.0
+  - data-dword ==0.3.2
+  - data-endian ==0.1.1
+  - data-fix ==0.3.1
+  - data-forest ==0.1.0.8
+  - data-has ==0.4.0.0
+  - data-hash ==0.2.0.1
+  - data-interval ==2.1.0
+  - data-inttrie ==0.1.4
+  - data-lens-light ==0.1.2.2
+  - data-memocombinators ==0.5.1
+  - data-msgpack ==0.0.13
+  - data-msgpack-types ==0.0.3
+  - data-or ==1.0.0.5
+  - data-ordlist ==0.4.7.0
+  - data-ref ==0.0.2
+  - data-reify ==0.6.3
+  - data-serializer ==0.3.5
+  - data-textual ==0.3.0.3
+  - dataurl ==0.1.0.0
+  - DAV ==1.3.4
+  - DBFunctor ==0.1.2.1
+  - dbus ==1.2.17
+  - dbus-hslogger ==0.1.0.1
+  - debian ==4.0.2
+  - debian-build ==0.10.2.0
+  - debug-trace-var ==0.2.0
+  - dec ==0.0.4
+  - Decimal ==0.5.2
+  - declarative ==0.5.4
+  - deepseq-generics ==0.2.0.0
+  - deepseq-instances ==0.1.0.1
+  - deferred-folds ==0.9.17
+  - dejafu ==2.4.0.2
+  - dense-linear-algebra ==0.1.0.0
+  - dependent-map ==0.4.0.0
+  - dependent-sum ==0.7.1.0
+  - dependent-sum-template ==0.1.0.3
+  - depq ==0.4.2
+  - deque ==0.4.3
+  - deriveJsonNoPrefix ==0.1.0.1
+  - derive-topdown ==0.0.2.2
+  - deriving-aeson ==0.2.6.1
+  - deriving-compat ==0.5.10
+  - derulo ==1.0.10
+  - dhall ==1.38.1
+  - dhall-bash ==1.0.36
+  - dhall-json ==1.7.6
+  - dhall-lsp-server ==1.0.14
+  - dhall-yaml ==1.2.6
+  - diagrams-solve ==0.1.3
+  - dialogflow-fulfillment ==0.1.1.4
+  - di-core ==1.0.4
+  - dictionary-sharing ==0.1.0.0
+  - Diff ==0.4.0
+  - digest ==0.0.1.2
+  - digits ==0.3.1
+  - dimensional ==1.4
+  - di-monad ==1.3.1
+  - directory-tree ==0.12.1
+  - direct-sqlite ==2.3.26
+  - dirichlet ==0.1.0.4
+  - discount ==0.1.1
+  - disk-free-space ==0.1.0.1
+  - distributed-closure ==0.4.2.0
+  - distribution-opensuse ==1.1.1
+  - distributive ==0.6.2.1
+  - dl-fedora ==0.9
+  - dlist ==0.8.0.8
+  - dlist-instances ==0.1.1.1
+  - dlist-nonempty ==0.1.1
+  - dns ==4.0.1
+  - dockerfile ==0.2.0
+  - doclayout ==0.3.0.2
+  - doctemplates ==0.9
+  - doctest ==0.16.3
+  - doctest-discover ==0.2.0.0
+  - doctest-driver-gen ==0.3.0.3
+  - doctest-exitcode-stdio ==0.0
+  - doctest-extract ==0.1
+  - doctest-lib ==0.1
+  - doldol ==0.4.1.2
+  - do-list ==1.0.1
+  - do-notation ==0.1.0.2
+  - dot ==0.3
+  - dotenv ==0.8.0.7
+  - dotgen ==0.4.3
+  - dotnet-timespan ==0.0.1.0
+  - double-conversion ==2.0.2.0
+  - download ==0.3.2.7
+  - download-curl ==0.1.4
+  - drinkery ==0.4
+  - dsp ==0.2.5.1
+  - dual ==0.1.1.1
+  - dublincore-xml-conduit ==0.1.0.2
+  - dunai ==0.7.0
+  - duration ==0.2.0.0
+  - dvorak ==0.1.0.0
+  - dynamic-state ==0.3.1
+  - dyre ==0.9.1
+  - eap ==0.9.0.2
+  - earcut ==0.1.0.4
+  - Earley ==0.13.0.1
+  - easy-file ==0.2.2
+  - Ebnf2ps ==1.0.15
+  - echo ==0.1.4
+  - ecstasy ==0.2.1.0
+  - ed25519 ==0.0.5.0
+  - edit-distance ==0.2.2.1
+  - edit-distance-vector ==1.0.0.4
+  - editor-open ==0.6.0.0
+  - egison ==4.1.2
+  - egison-pattern-src ==0.2.1.2
+  - egison-pattern-src-th-mode ==0.2.1.2
+  - either ==5.0.1.1
+  - either-both ==0.1.1.1
+  - either-unwrap ==1.1
+  - ekg ==0.4.0.15
+  - ekg-core ==0.1.1.7
+  - ekg-json ==0.1.0.6
+  - ekg-statsd ==0.2.5.0
+  - elerea ==2.9.0
+  - elf ==0.30
+  - eliminators ==0.7
+  - elm2nix ==0.2.1
+  - elm-bridge ==0.6.1
+  - elm-core-sources ==1.0.0
+  - elm-export ==0.6.0.1
+  - elynx ==0.5.0.2
+  - elynx-markov ==0.5.0.2
+  - elynx-nexus ==0.5.0.2
+  - elynx-seq ==0.5.0.2
+  - elynx-tools ==0.5.0.2
+  - elynx-tree ==0.5.0.2
+  - email-validate ==2.3.2.13
+  - emd ==0.2.0.0
+  - emojis ==0.1
+  - enclosed-exceptions ==1.0.3
+  - ENIG ==0.0.1.0
+  - entropy ==0.4.1.6
+  - enummapset ==0.6.0.3
+  - enumset ==0.0.5
+  - enum-subset-generate ==0.1.0.0
+  - envelope ==0.2.2.0
+  - envparse ==0.4.1
+  - envy ==2.1.0.0
+  - epub-metadata ==4.5
+  - eq ==4.2.1
+  - equal-files ==0.0.5.3
+  - equational-reasoning ==0.7.0.0
+  - equivalence ==0.3.5
+  - erf ==2.0.0.0
+  - error-or ==0.1.2.0
+  - error-or-utils ==0.1.1
+  - errors ==2.3.0
+  - errors-ext ==0.4.2
+  - ersatz ==0.4.9
+  - esqueleto ==3.5.0.0
+  - essence-of-live-coding ==0.2.5
+  - essence-of-live-coding-gloss ==0.2.5
+  - essence-of-live-coding-pulse ==0.2.5
+  - essence-of-live-coding-quickcheck ==0.2.5
+  - etc ==0.4.1.0
+  - eve ==0.1.9.0
+  - eventful-core ==0.2.0
+  - eventful-test-helpers ==0.2.0
+  - event-list ==0.1.2
+  - eventstore ==1.4.1
+  - every ==0.0.1
+  - exact-combinatorics ==0.2.0.9
+  - exact-pi ==0.5.0.1
+  - exception-hierarchy ==0.1.0.4
+  - exception-mtl ==0.4.0.1
+  - exceptions ==0.10.4
+  - exception-transformers ==0.4.0.9
+  - exception-via ==0.1.0.0
+  - executable-path ==0.0.3.1
+  - exit-codes ==1.0.0
+  - exomizer ==1.0.0
+  - experimenter ==0.1.0.12
+  - expiring-cache-map ==0.0.6.1
+  - explicit-exception ==0.1.10
+  - exp-pairs ==0.2.1.0
+  - express ==0.1.12
+  - extended-reals ==0.2.4.0
+  - extensible-effects ==5.0.0.1
+  - extensible-exceptions ==0.1.1.4
+  - extra ==1.7.9
+  - extractable-singleton ==0.0.1
+  - extrapolate ==0.4.4
+  - fail ==4.9.0.0
+  - failable ==1.2.4.0
+  - fakedata ==0.8.0
+  - fakedata-parser ==0.1.0.0
+  - fakefs ==0.3.0.2
+  - fakepull ==0.3.0.2
+  - faktory ==1.0.3.0
+  - fast-digits ==0.3.0.0
+  - fast-logger ==3.0.5
+  - fast-math ==1.0.2
+  - fb ==2.1.1
+  - fclabels ==2.0.5.1
+  - feature-flags ==0.1.0.1
+  - fedora-dists ==1.1.2
+  - fedora-haskell-tools ==0.9
+  - feed ==1.3.2.0
+  - FenwickTree ==0.1.2.1
+  - fft ==0.1.8.7
+  - fgl ==5.7.0.3
+  - file-embed ==0.0.14.0
+  - file-embed-lzma ==0
+  - filelock ==0.1.1.5
+  - filemanip ==0.3.6.3
+  - filepath-bytestring ==1.4.2.1.7
+  - file-path-th ==0.1.0.0
+  - filepattern ==0.1.2
+  - fileplow ==0.1.0.0
+  - filtrable ==0.1.4.0
+  - fin ==0.2
+  - FindBin ==0.0.5
+  - fingertree ==0.1.4.2
+  - finite-typelits ==0.1.4.2
+  - first-class-families ==0.8.0.1
+  - first-class-patterns ==0.3.2.5
+  - fitspec ==0.4.8
+  - fixed ==0.3
+  - fixed-length ==0.2.2.1
+  - fixed-vector ==1.2.0.0
+  - fixed-vector-hetero ==0.6.1.0
+  - fix-whitespace ==0.0.5
+  - flac ==0.2.0
+  - flac-picture ==0.1.2
+  - flags-applicative ==0.1.0.3
+  - flat ==0.4.4
+  - flat-mcmc ==1.5.2
+  - flexible-defaults ==0.0.3
+  - FloatingHex ==0.5
+  - floatshow ==0.2.4
+  - flow ==1.0.22
+  - flush-queue ==1.0.0
+  - fmlist ==0.9.4
+  - fmt ==0.6.1.2
+  - fn ==0.3.0.2
+  - focus ==1.0.2
+  - focuslist ==0.1.0.2
+  - foldable1 ==0.1.0.0
+  - fold-debounce ==0.2.0.9
+  - fold-debounce-conduit ==0.2.0.6
+  - foldl ==1.4.11
+  - folds ==0.7.6
+  - follow-file ==0.0.3
+  - FontyFruity ==0.5.3.5
+  - foreign-store ==0.2
+  - ForestStructures ==0.0.1.0
+  - forkable-monad ==0.2.0.3
+  - forma ==1.1.3
+  - format-numbers ==0.1.0.1
+  - formatting ==6.3.7
+  - foundation ==0.0.26.1
+  - fourmolu ==0.3.0.0
+  - free ==5.1.5
+  - free-categories ==0.2.0.2
+  - freenect ==1.2.1
+  - freer-simple ==1.2.1.1
+  - freetype2 ==0.2.0
+  - free-vl ==0.1.4
+  - friendly-time ==0.4.1
+  - from-sum ==0.2.3.0
+  - frontmatter ==0.1.0.2
+  - fsnotify ==0.3.0.1
+  - fsnotify-conduit ==0.1.1.1
+  - ftp-client ==0.5.1.4
+  - ftp-client-conduit ==0.5.0.5
+  - funcmp ==1.9
+  - function-builder ==0.3.0.1
+  - functor-classes-compat ==1.0.1
+  - functor-combinators ==0.3.6.0
+  - fusion-plugin ==0.2.2
+  - fusion-plugin-types ==0.1.0
+  - fuzzcheck ==0.1.1
+  - fuzzy ==0.1.0.0
+  - fuzzy-dates ==0.1.1.2
+  - fuzzyset ==0.2.1
+  - fuzzy-time ==0.1.0.0
+  - gauge ==0.2.5
+  - gd ==3000.7.3
+  - gdp ==0.0.3.0
+  - general-games ==1.1.1
+  - generic-aeson ==0.2.0.12
+  - generic-arbitrary ==0.1.0
+  - generic-constraints ==1.1.1.1
+  - generic-data ==0.9.2.0
+  - generic-data-surgery ==0.3.0.0
+  - generic-deriving ==1.13.1
+  - generic-functor ==0.2.0.0
+  - generic-lens ==2.1.0.0
+  - generic-lens-core ==2.1.0.0
+  - generic-monoid ==0.1.0.1
+  - generic-optics ==2.1.0.0
+  - GenericPretty ==1.2.2
+  - generic-random ==1.4.0.0
+  - generics-eot ==0.4.0.1
+  - generics-sop ==0.5.1.1
+  - generics-sop-lens ==0.2.0.1
+  - geniplate-mirror ==0.7.7
+  - genvalidity ==0.11.0.0
+  - genvalidity-aeson ==0.3.0.0
+  - genvalidity-bytestring ==0.6.0.0
+  - genvalidity-containers ==0.9.0.0
+  - genvalidity-criterion ==0.2.0.0
+  - genvalidity-hspec ==0.7.0.4
+  - genvalidity-hspec-aeson ==0.3.1.1
+  - genvalidity-hspec-binary ==0.2.0.4
+  - genvalidity-hspec-cereal ==0.2.0.4
+  - genvalidity-hspec-hashable ==0.2.0.5
+  - genvalidity-hspec-optics ==0.1.1.2
+  - genvalidity-hspec-persistent ==0.0.0.1
+  - genvalidity-mergeful ==0.2.0.0
+  - genvalidity-mergeless ==0.2.0.0
+  - genvalidity-path ==0.3.0.4
+  - genvalidity-persistent ==0.0.0.0
+  - genvalidity-property ==0.5.0.1
+  - genvalidity-scientific ==0.2.1.1
+  - genvalidity-sydtest ==0.0.0.0
+  - genvalidity-sydtest-aeson ==0.0.0.0
+  - genvalidity-sydtest-hashable ==0.0.0.0
+  - genvalidity-sydtest-lens ==0.0.0.0
+  - genvalidity-sydtest-persistent ==0.0.0.1
+  - genvalidity-text ==0.7.0.2
+  - genvalidity-time ==0.3.0.0
+  - genvalidity-typed-uuid ==0.0.0.2
+  - genvalidity-unordered-containers ==0.3.0.1
+  - genvalidity-uuid ==0.1.0.4
+  - genvalidity-vector ==0.3.0.1
+  - geojson ==4.0.2
+  - getopt-generics ==0.13.0.4
+  - ghc-byteorder ==4.11.0.0.10
+  - ghc-check ==0.5.0.4
+  - ghc-core ==0.5.6
+  - ghc-events ==0.17.0
+  - ghc-exactprint ==0.6.4
+  - ghcid ==0.8.7
+  - ghci-hexcalc ==0.1.1.0
+  - ghcjs-codemirror ==0.0.0.2
+  - ghc-lib ==8.10.4.20210206
+  - ghc-lib-parser ==8.10.4.20210206
+  - ghc-lib-parser-ex ==8.10.0.19
+  - ghc-parser ==0.2.3.0
+  - ghc-paths ==0.1.0.12
+  - ghc-prof ==1.4.1.8
+  - ghc-source-gen ==0.4.0.0
+  - ghc-syntax-highlighter ==0.0.6.0
+  - ghc-tcplugins-extra ==0.4.1
+  - ghc-trace-events ==0.1.2.2
+  - ghc-typelits-extra ==0.4.2
+  - ghc-typelits-knownnat ==0.7.5
+  - ghc-typelits-natnormalise ==0.7.4
+  - ghc-typelits-presburger ==0.6.0.0
+  - ghost-buster ==0.1.1.0
+  - gi-atk ==2.0.22
+  - gi-cairo ==1.0.24
+  - gi-cairo-connector ==0.1.0
+  - gi-cairo-render ==0.1.0
+  - gi-dbusmenu ==0.4.8
+  - gi-dbusmenugtk3 ==0.4.9
+  - gi-gdk ==3.0.23
+  - gi-gdkpixbuf ==2.0.24
+  - gi-gdkx11 ==3.0.10
+  - gi-gio ==2.0.27
+  - gi-glib ==2.0.24
+  - gi-gobject ==2.0.25
+  - gi-graphene ==1.0.2
+  - gi-gtk ==3.0.36
+  - gi-gtk-hs ==0.3.9
+  - gi-harfbuzz ==0.0.3
+  - ginger ==0.10.1.0
+  - gingersnap ==0.3.1.0
+  - gi-pango ==1.0.23
+  - githash ==0.1.5.0
+  - github-release ==1.3.7
+  - github-rest ==1.0.3
+  - github-types ==0.2.1
+  - github-webhooks ==0.15.0
+  - gitlab-haskell ==0.2.5
+  - gitrev ==1.3.1
+  - gi-xlib ==2.0.9
+  - gl ==0.9
+  - glabrous ==2.0.4
+  - GLFW-b ==3.3.0.0
+  - Glob ==0.10.1
+  - gloss ==1.13.2.1
+  - gloss-rendering ==1.13.1.1
+  - GLURaw ==2.0.0.4
+  - GLUT ==2.7.0.16
+  - gluturtle ==0.0.58.1
+  - gnuplot ==0.5.6.1
+  - goldplate ==0.2.0
+  - google-isbn ==1.0.3
+  - gopher-proxy ==0.1.1.2
+  - gothic ==0.1.6
+  - gpolyline ==0.1.0.1
+  - graph-core ==0.3.0.0
+  - graphite ==0.10.0.1
+  - graphql-client ==1.1.1
+  - graphs ==0.7.1
+  - graphula ==2.0.0.5
+  - graphviz ==2999.20.1.0
+  - graph-wrapper ==0.2.6.0
+  - gravatar ==0.8.0
+  - greskell ==1.2.0.1
+  - greskell-core ==0.1.3.6
+  - greskell-websocket ==0.1.2.5
+  - groom ==0.1.2.1
+  - group-by-date ==0.1.0.4
+  - groups ==0.5.3
+  - gtk-sni-tray ==0.1.6.2
+  - gtk-strut ==0.1.3.0
+  - guarded-allocation ==0.0.1
+  - H ==0.9.0.1
+  - hackage-db ==2.1.1
+  - hackage-security ==0.6.0.1
+  - haddock-library ==1.9.0
+  - hadoop-streaming ==0.2.0.3
+  - hakyll-convert ==0.3.0.4
+  - hal ==0.4.8
+  - half ==0.3.1
+  - hall-symbols ==0.1.0.6
+  - hamtsolo ==1.0.3
+  - HandsomeSoup ==0.4.2
+  - hapistrano ==0.4.1.3
+  - happstack-server ==7.7.1
+  - happy ==1.20.0
+  - happy-meta ==0.2.0.11
+  - HasBigDecimal ==0.1.1
+  - hasbolt ==0.1.5.0
+  - hashable ==1.3.0.0
+  - hashable-time ==0.2.1
+  - hashids ==1.0.2.4
+  - hashing ==0.1.0.1
+  - hashmap ==1.3.3
+  - hashtables ==1.2.4.1
+  - haskeline ==0.8.1.2
+  - haskell-awk ==1.2.0.1
+  - haskell-gi ==0.24.7
+  - haskell-gi-base ==0.24.5
+  - haskell-gi-overloading ==1.0
+  - haskell-import-graph ==1.0.4
+  - haskell-lexer ==1.1
+  - haskell-lsp ==0.24.0.0
+  - haskell-lsp-types ==0.24.0.0
+  - haskell-names ==0.9.9
+  - HaskellNet ==0.6
+  - haskell-src ==1.0.3.1
+  - haskell-src-exts ==1.23.1
+  - haskell-src-exts-util ==0.2.5
+  - haskell-src-meta ==0.8.7
+  - haskey-btree ==0.3.0.1
+  - hasql ==1.4.5.1
+  - hasql-notifications ==0.2.0.0
+  - hasql-optparse-applicative ==0.3.0.6
+  - hasql-pool ==0.5.2
+  - hasql-queue ==1.2.0.2
+  - hasql-transaction ==1.0.0.2
+  - hasty-hamiltonian ==1.3.4
+  - HaTeX ==3.22.3.0
+  - HaXml ==1.25.5
+  - haxr ==3000.11.4.1
+  - HCodecs ==0.5.2
+  - hdaemonize ==0.5.6
+  - HDBC ==2.4.0.3
+  - HDBC-session ==0.1.2.0
+  - headroom ==0.4.1.0
+  - heap ==1.0.4
+  - heaps ==0.4
+  - hebrew-time ==0.1.2
+  - hedgehog ==1.0.5
+  - hedgehog-corpus ==0.2.0
+  - hedgehog-fakedata ==0.0.1.4
+  - hedgehog-fn ==1.0
+  - hedgehog-quickcheck ==0.1.1
+  - hedis ==0.14.4
+  - hedn ==0.3.0.2
+  - here ==1.2.13
+  - heredoc ==0.2.0.0
+  - heterocephalus ==1.0.5.4
+  - hexml ==0.3.4
+  - hexml-lens ==0.2.1
+  - hexpat ==0.20.13
+  - hformat ==0.3.3.1
+  - hfsevents ==0.1.6
+  - hgrev ==0.2.6
+  - hidapi ==0.1.7
+  - hie-bios ==0.7.5
+  - hi-file-parser ==0.1.2.0
+  - higher-leveldb ==0.6.0.0
+  - highlighting-kate ==0.6.4
+  - hinfo ==0.0.3.0
+  - hinotify ==0.4.1
+  - hint ==0.9.0.4
+  - hjsmin ==0.2.0.4
+  - hkd-default ==1.1.0.0
+  - hkgr ==0.3
+  - hlibcpuid ==0.2.0
+  - hlibgit2 ==0.18.0.16
+  - hlibsass ==0.1.10.1
+  - hmatrix ==0.20.2
+  - hmatrix-backprop ==0.1.3.0
+  - hmatrix-gsl ==0.19.0.1
+  - hmatrix-gsl-stats ==0.4.1.8
+  - hmatrix-morpheus ==0.1.1.2
+  - hmatrix-vector-sized ==0.1.3.0
+  - hmm-lapack ==0.4
+  - hmpfr ==0.4.4
+  - hnock ==0.4.0
+  - hoauth2 ==1.16.0
+  - hOpenPGP ==2.9.5
+  - hopenpgp-tools ==0.23.6
+  - hopfli ==0.2.2.1
+  - hosc ==0.18.1
+  - hostname ==1.0
+  - hostname-validate ==1.0.0
+  - hourglass ==0.2.12
+  - hourglass-orphans ==0.1.0.0
+  - hp2pretty ==0.10
+  - hpack ==0.34.4
+  - hpack-dhall ==0.5.2
+  - hpc-codecov ==0.3.0.0
+  - hpc-lcov ==1.0.1
+  - hprotoc ==2.4.17
+  - hruby ==0.3.8.1
+  - hsass ==0.8.0
+  - hs-bibutils ==6.10.0.0
+  - hsc2hs ==0.68.7
+  - hscolour ==1.24.4
+  - hsdns ==1.8
+  - hsebaysdk ==0.4.1.0
+  - hsemail ==2.2.1
+  - hs-functors ==0.1.7.1
+  - hs-GeoIP ==0.3
+  - hsini ==0.5.1.2
+  - hsinstall ==2.6
+  - HSlippyMap ==3.0.1
+  - hslogger ==1.3.1.0
+  - hslua ==1.3.0.1
+  - hslua-aeson ==1.0.3.1
+  - hslua-module-doclayout ==0.2.0.1
+  - hslua-module-path ==0.1.0.1
+  - hslua-module-system ==0.2.2.1
+  - hslua-module-text ==0.3.0.1
+  - HsOpenSSL ==0.11.7
+  - HsOpenSSL-x509-system ==0.1.0.4
+  - hsp ==0.10.0
+  - hspec ==2.7.10
+  - hspec-attoparsec ==0.1.0.2
+  - hspec-checkers ==0.1.0.2
+  - hspec-contrib ==0.5.1
+  - hspec-core ==2.7.10
+  - hspec-discover ==2.7.10
+  - hspec-expectations ==0.8.2
+  - hspec-expectations-json ==1.0.0.4
+  - hspec-expectations-lifted ==0.10.0
+  - hspec-expectations-pretty-diff ==0.7.2.5
+  - hspec-golden ==0.1.0.3
+  - hspec-golden-aeson ==0.7.0.0
+  - hspec-hedgehog ==0.0.1.2
+  - hspec-junit-formatter ==1.0.0.4
+  - hspec-leancheck ==0.0.4
+  - hspec-megaparsec ==2.2.0
+  - hspec-meta ==2.7.8
+  - hspec-need-env ==0.1.0.7
+  - hspec-parsec ==0
+  - hspec-smallcheck ==0.5.2
+  - hspec-tables ==0.0.1
+  - hspec-wai ==0.11.0
+  - hspec-wai-json ==0.11.0
+  - hs-php-session ==0.0.9.3
+  - hsshellscript ==3.5.0
+  - hs-tags ==0.1.5
+  - HStringTemplate ==0.8.7
+  - HSvm ==0.1.1.3.22
+  - HsYAML ==0.2.1.0
+  - HsYAML-aeson ==0.2.0.0
+  - hsyslog ==5.0.2
+  - htaglib ==1.2.0
+  - HTF ==0.14.0.6
+  - html ==1.0.1.2
+  - html-conduit ==1.3.2.1
+  - html-entities ==1.1.4.5
+  - html-entity-map ==0.1.0.0
+  - htoml ==1.0.0.3
+  - http2 ==3.0.1
+  - HTTP ==4000.3.16
+  - http-api-data ==0.4.2
+  - http-client ==0.6.4.1
+  - http-client-openssl ==0.3.2.0
+  - http-client-overrides ==0.1.1.0
+  - http-client-tls ==0.3.5.3
+  - http-common ==0.8.2.1
+  - http-conduit ==2.3.8
+  - http-date ==0.0.11
+  - http-directory ==0.1.8
+  - http-download ==0.2.0.0
+  - httpd-shed ==0.4.1.1
+  - http-link-header ==1.2.0
+  - http-media ==0.8.0.0
+  - http-query ==0.1.0.1
+  - http-reverse-proxy ==0.6.0
+  - http-streams ==0.8.7.2
+  - http-types ==0.12.3
+  - human-readable-duration ==0.2.1.4
+  - HUnit ==1.6.2.0
+  - HUnit-approx ==1.1.1.1
+  - hunit-dejafu ==2.0.0.4
+  - hvect ==0.4.0.0
+  - hvega ==0.11.0.1
+  - hw-balancedparens ==0.4.1.1
+  - hw-bits ==0.7.2.1
+  - hw-conduit ==0.2.1.0
+  - hw-conduit-merges ==0.2.1.0
+  - hw-diagnostics ==0.0.1.0
+  - hw-dsv ==0.4.1.0
+  - hweblib ==0.6.3
+  - hw-eliasfano ==0.1.2.0
+  - hw-excess ==0.2.3.0
+  - hw-fingertree ==0.1.2.0
+  - hw-fingertree-strict ==0.1.2.0
+  - hw-hedgehog ==0.1.1.0
+  - hw-hspec-hedgehog ==0.1.1.0
+  - hw-int ==0.0.2.0
+  - hw-ip ==2.4.2.0
+  - hw-json ==1.3.2.2
+  - hw-json-simd ==0.1.1.0
+  - hw-json-simple-cursor ==0.1.1.0
+  - hw-json-standard-cursor ==0.2.3.1
+  - hw-kafka-client ==4.0.3
+  - hw-mquery ==0.2.1.0
+  - hw-packed-vector ==0.2.1.0
+  - hw-parser ==0.1.1.0
+  - hw-prim ==0.6.3.0
+  - hw-rankselect ==0.13.4.0
+  - hw-rankselect-base ==0.3.4.1
+  - hw-simd ==0.1.2.0
+  - hw-streams ==0.0.1.0
+  - hw-string-parse ==0.0.0.4
+  - hw-succinct ==0.1.0.1
+  - hw-xml ==0.5.1.0
+  - hxt ==9.3.1.22
+  - hxt-charproperties ==9.5.0.0
+  - hxt-css ==0.1.0.3
+  - hxt-curl ==9.1.1.1
+  - hxt-expat ==9.1.1
+  - hxt-http ==9.1.5.2
+  - hxt-regex-xmlschema ==9.2.0.7
+  - hxt-tagsoup ==9.1.4
+  - hxt-unicode ==9.0.2.4
+  - hybrid-vectors ==0.2.2
+  - hyper ==0.2.1.1
+  - hyperloglog ==0.4.4
+  - hyphenation ==0.8.1
+  - iconv ==0.4.1.3
+  - identicon ==0.2.2
+  - ieee754 ==0.8.0
+  - if ==0.1.0.0
+  - iff ==0.0.6
+  - ihaskell ==0.10.2.0
+  - ihs ==0.1.0.3
+  - ilist ==0.4.0.1
+  - imagesize-conduit ==1.1
+  - Imlib ==0.1.2
+  - immortal ==0.3
+  - immortal-queue ==0.1.0.1
+  - inbox ==0.1.0
+  - include-file ==0.1.0.4
+  - incremental-parser ==0.5.0.2
+  - indents ==0.5.0.1
+  - indexed ==0.1.3
+  - indexed-containers ==0.1.0.2
+  - indexed-list-literals ==0.2.1.3
+  - indexed-profunctors ==0.1.1
+  - indexed-traversable ==0.1.1
+  - indexed-traversable-instances ==0.1
+  - infer-license ==0.2.0
+  - inflections ==0.4.0.6
+  - influxdb ==1.9.1.2
+  - ini ==0.4.1
+  - inj ==1.0
+  - inline-c ==0.9.1.4
+  - inline-c-cpp ==0.4.0.3
+  - inline-r ==0.10.4
+  - inliterate ==0.1.0
+  - input-parsers ==0.2.2
+  - insert-ordered-containers ==0.2.5
+  - inspection-testing ==0.4.5.0
+  - instance-control ==0.1.2.0
+  - int-cast ==0.2.0.0
+  - integer-logarithms ==1.0.3.1
+  - integer-roots ==1.0
+  - integration ==0.2.1
+  - intern ==0.9.4
+  - interpolate ==0.2.1
+  - interpolatedstring-perl6 ==1.0.2
+  - interpolation ==0.1.1.1
+  - interpolator ==1.1.0.2
+  - IntervalMap ==0.6.1.2
+  - intervals ==0.9.2
+  - intro ==0.9.0.0
+  - intset-imperative ==0.1.0.0
+  - invariant ==0.5.4
+  - invertible ==0.2.0.7
+  - invertible-grammar ==0.1.3
+  - io-machine ==0.2.0.0
+  - io-manager ==0.1.0.3
+  - io-memoize ==1.1.1.0
+  - io-region ==0.1.1
+  - io-storage ==0.3
+  - io-streams ==1.5.2.1
+  - io-streams-haproxy ==1.0.1.0
+  - ip6addr ==1.0.2
+  - ipa ==0.3.1
+  - iproute ==1.7.11
+  - IPv6Addr ==2.0.2
+  - ipynb ==0.1.0.1
+  - ipython-kernel ==0.10.2.1
+  - irc ==0.6.1.0
+  - irc-client ==1.1.2.1
+  - irc-conduit ==0.3.0.4
+  - irc-ctcp ==0.1.3.0
+  - isbn ==1.1.0.2
+  - islink ==0.1.0.0
+  - iso3166-country-codes ==0.20140203.8
+  - iso639 ==0.1.0.3
+  - iso8601-time ==0.1.5
+  - iterable ==3.0
+  - ixset-typed ==0.5
+  - ixset-typed-binary-instance ==0.1.0.2
+  - ixset-typed-conversions ==0.1.2.0
+  - ixset-typed-hashable-instance ==0.1.0.2
+  - ix-shapable ==0.1.0
+  - jack ==0.7.2
+  - jalaali ==1.0.0.0
+  - jira-wiki-markup ==1.3.5
+  - jose ==0.8.4
+  - jose-jwt ==0.9.2
+  - js-chart ==2.9.4.1
+  - js-dgtable ==0.5.2
+  - js-flot ==0.8.3
+  - js-jquery ==3.3.1
+  - json-feed ==1.0.13
+  - jsonpath ==0.2.0.0
+  - json-rpc ==1.0.3
+  - json-rpc-generic ==0.2.1.5
+  - JuicyPixels ==3.3.5
+  - JuicyPixels-blurhash ==0.1.0.3
+  - JuicyPixels-extra ==0.5.0
+  - JuicyPixels-scale-dct ==0.1.2
+  - junit-xml ==0.1.0.2
+  - justified-containers ==0.3.0.0
+  - jwt ==0.10.0
+  - kan-extensions ==5.2.2
+  - kanji ==3.4.1
+  - katip ==0.8.5.0
+  - katip-logstash ==0.1.0.0
+  - kawhi ==0.3.0
+  - kazura-queue ==0.1.0.4
+  - kdt ==0.2.4
+  - keep-alive ==0.2.0.0
+  - keycode ==0.2.2
+  - keys ==3.12.3
+  - ki ==0.2.0.1
+  - kind-apply ==0.3.2.0
+  - kind-generics ==0.4.1.0
+  - kind-generics-th ==0.2.2.2
+  - kmeans ==0.1.3
+  - koji ==0.0.2
+  - koofr-client ==1.0.0.3
+  - krank ==0.2.2
+  - kubernetes-webhook-haskell ==0.2.0.3
+  - l10n ==0.1.0.1
+  - labels ==0.3.3
+  - lackey ==1.0.15
+  - lambdabot-core ==5.3.0.1
+  - LambdaHack ==0.10.2.0
+  - lame ==0.2.0
+  - language-avro ==0.1.3.1
+  - language-bash ==0.9.2
+  - language-c ==0.8.3
+  - language-c-quote ==0.13
+  - language-docker ==10.0.1
+  - language-java ==0.2.9
+  - language-javascript ==0.7.1.0
+  - language-protobuf ==1.0.1
+  - language-python ==0.5.8
+  - language-thrift ==0.12.0.0
+  - lapack ==0.3.2
+  - lapack-carray ==0.0.3
+  - lapack-comfort-array ==0.0.0.1
+  - lapack-ffi ==0.0.3
+  - lapack-ffi-tools ==0.1.2.1
+  - largeword ==1.2.5
+  - latex ==0.1.0.4
+  - lattices ==2.0.2
+  - lawful ==0.1.0.0
+  - lazy-csv ==0.5.1
+  - lazyio ==0.1.0.4
+  - lazysmallcheck ==0.6
+  - lca ==0.4
+  - leancheck ==0.9.6
+  - leancheck-instances ==0.0.4
+  - leapseconds-announced ==2017.1.0.1
+  - learn-physics ==0.6.5
+  - lens ==4.19.2
+  - lens-action ==0.2.5
+  - lens-aeson ==1.1.1
+  - lens-csv ==0.1.1.0
+  - lens-datetime ==0.3
+  - lens-family ==2.0.0
+  - lens-family-core ==2.0.0
+  - lens-family-th ==0.5.2.0
+  - lens-misc ==0.0.2.0
+  - lens-process ==0.4.0.0
+  - lens-properties ==4.11.1
+  - lens-regex ==0.1.3
+  - lens-regex-pcre ==1.1.0.0
+  - lenz ==0.4.2.0
+  - leveldb-haskell ==0.6.5
+  - libBF ==0.6.2
+  - libffi ==0.1
+  - libgit ==0.3.1
+  - libgraph ==1.14
+  - libjwt-typed ==0.2
+  - libmpd ==0.10.0.0
+  - liboath-hs ==0.0.1.2
+  - libyaml ==0.1.2
+  - LibZip ==1.0.1
+  - lifted-async ==0.10.2
+  - lifted-base ==0.2.3.12
+  - lift-generics ==0.2
+  - lift-type ==0.1.0.1
+  - line ==4.0.1
+  - linear ==1.21.5
+  - linear-circuit ==0.1.0.2
+  - linenoise ==0.3.2
+  - linux-file-extents ==0.2.0.0
+  - linux-namespaces ==0.1.3.0
+  - liquid-fixpoint ==0.8.10.2
+  - List ==0.6.2
+  - ListLike ==4.7.4
+  - list-predicate ==0.1.0.1
+  - listsafe ==0.1.0.1
+  - list-singleton ==1.0.0.5
+  - list-t ==1.0.4
+  - list-transformer ==1.0.7
+  - ListTree ==0.2.3
+  - literatex ==0.1.0.0
+  - little-rio ==0.2.2
+  - llvm-hs ==9.0.1
+  - llvm-hs-pure ==9.0.0
+  - lmdb ==0.2.5
+  - load-env ==0.2.1.0
+  - loc ==0.1.3.10
+  - locators ==0.3.0.3
+  - loch-th ==0.2.2
+  - lockfree-queue ==0.2.3.1
+  - log-domain ==0.13.1
+  - logfloat ==0.13.3.3
+  - logging ==3.0.5
+  - logging-facade ==0.3.0
+  - logging-facade-syslog ==1
+  - logict ==0.7.1.0
+  - logstash ==0.1.0.1
+  - loop ==0.3.0
+  - lrucache ==1.2.0.1
+  - lrucaching ==0.3.3
+  - lsp ==1.2.0.0
+  - lsp-test ==0.14.0.0
+  - lsp-types ==1.2.0.0
+  - lucid ==2.9.12.1
+  - lucid-cdn ==0.2.2.0
+  - lucid-extras ==0.2.2
+  - lukko ==0.1.1.3
+  - lz4-frame-conduit ==0.1.0.1
+  - lzma ==0.0.0.3
+  - lzma-conduit ==1.2.1
+  - machines ==0.7.2
+  - machines-binary ==7.0.0.0
+  - magic ==1.1
+  - magico ==0.0.2.1
+  - mainland-pretty ==0.7.1
+  - main-tester ==0.2.0.1
+  - makefile ==1.1.0.0
+  - managed ==1.0.8
+  - MapWith ==0.2.0.0
+  - markdown ==0.1.17.4
+  - markdown-unlit ==0.5.1
+  - markov-chain ==0.0.3.4
+  - massiv ==0.6.0.0
+  - massiv-io ==0.4.1.0
+  - massiv-persist ==0.1.0.0
+  - massiv-serialise ==0.1.0.0
+  - massiv-test ==0.1.6.1
+  - mathexpr ==0.3.0.0
+  - math-extras ==0.1.1.0
+  - math-functions ==0.3.4.2
+  - matplotlib ==0.7.5
+  - matrices ==0.5.0
+  - matrix ==0.3.6.1
+  - matrix-as-xyz ==0.1.2.2
+  - matrix-market-attoparsec ==0.1.1.3
+  - matrix-static ==0.3
+  - maximal-cliques ==0.1.1
+  - mbox ==0.3.4
+  - mbox-utility ==0.0.3.1
+  - mcmc ==0.4.0.0
+  - mcmc-types ==1.0.3
+  - medea ==1.2.0
+  - median-stream ==0.7.0.0
+  - med-module ==0.1.2.1
+  - megaparsec ==9.0.1
+  - megaparsec-tests ==9.0.1
+  - membrain ==0.0.0.2
+  - memory ==0.15.0
+  - MemoTrie ==0.6.10
+  - mercury-api ==0.1.0.2
+  - mergeful ==0.2.0.0
+  - mergeless ==0.3.0.0
+  - mersenne-random-pure64 ==0.2.2.0
+  - messagepack ==0.5.4
+  - metrics ==0.4.1.1
+  - mfsolve ==0.3.2.0
+  - microlens ==0.4.12.0
+  - microlens-aeson ==2.3.1
+  - microlens-contra ==0.1.0.2
+  - microlens-ghc ==0.4.13
+  - microlens-mtl ==0.2.0.1
+  - microlens-platform ==0.4.2
+  - microlens-process ==0.2.0.2
+  - microlens-th ==0.4.3.10
+  - microspec ==0.2.1.3
+  - microstache ==1.0.1.2
+  - midair ==0.2.0.1
+  - midi ==0.2.2.2
+  - mighty-metropolis ==2.0.0
+  - mime-mail ==0.5.1
+  - mime-mail-ses ==0.4.3
+  - mime-types ==0.1.0.9
+  - mini-egison ==1.0.0
+  - minimal-configuration ==0.1.4
+  - minimorph ==0.3.0.0
+  - minio-hs ==1.5.3
+  - miniutter ==0.5.1.1
+  - min-max-pqueue ==0.1.0.2
+  - mintty ==0.1.2
+  - missing-foreign ==0.1.1
+  - mixed-types-num ==0.5.7.0
+  - mltool ==0.2.0.1
+  - mmap ==0.5.9
+  - mmark ==0.0.7.2
+  - mmark-cli ==0.0.5.0
+  - mmark-ext ==0.2.1.3
+  - mmorph ==1.1.5
+  - mnist-idx ==0.1.2.8
+  - mnist-idx-conduit ==0.4.0.0
+  - mockery ==0.3.5
+  - mock-time ==0.1.0
+  - mod ==0.1.2.2
+  - model ==0.5
+  - modern-uri ==0.3.4.1
+  - modular ==0.1.0.8
+  - monad-chronicle ==1.0.0.1
+  - monad-control ==1.0.2.3
+  - monad-control-aligned ==0.0.1.1
+  - monad-coroutine ==0.9.1.2
+  - monad-extras ==0.6.0
+  - monadic-arrays ==0.2.2
+  - monad-journal ==0.8.1
+  - monadlist ==0.0.2
+  - monad-logger ==0.3.36
+  - monad-logger-json ==0.1.0.0
+  - monad-logger-logstash ==0.1.0.0
+  - monad-logger-prefix ==0.1.12
+  - monad-loops ==0.4.3
+  - monad-memo ==0.5.3
+  - monad-metrics ==0.2.2.0
+  - monad-par ==0.3.5
+  - monad-parallel ==0.7.2.4
+  - monad-par-extras ==0.3.3
+  - monad-peel ==0.2.1.2
+  - monad-primitive ==0.1
+  - monad-products ==4.0.1
+  - MonadPrompt ==1.0.0.5
+  - MonadRandom ==0.5.3
+  - monad-resumption ==0.1.4.0
+  - monad-skeleton ==0.1.5
+  - monad-st ==0.2.4.1
+  - monads-tf ==0.1.0.3
+  - monad-time ==0.3.1.0
+  - monad-unlift ==0.2.0
+  - monad-unlift-ref ==0.2.1
+  - mongoDB ==2.7.0.0
+  - monoid-subclasses ==1.0.1
+  - monoid-transformer ==0.0.4
+  - mono-traversable ==1.0.15.1
+  - mono-traversable-instances ==0.1.1.0
+  - mono-traversable-keys ==0.1.0
+  - more-containers ==0.2.2.2
+  - morpheus-graphql ==0.17.0
+  - morpheus-graphql-app ==0.17.0
+  - morpheus-graphql-client ==0.17.0
+  - morpheus-graphql-core ==0.17.0
+  - morpheus-graphql-subscriptions ==0.17.0
+  - moss ==0.2.0.0
+  - mountpoints ==1.0.2
+  - mpi-hs ==0.7.2.0
+  - mpi-hs-binary ==0.1.1.0
+  - mpi-hs-cereal ==0.1.0.0
+  - mtl-compat ==0.2.2
+  - mtl-prelude ==2.0.3.1
+  - multiarg ==0.30.0.10
+  - multi-containers ==0.1.1
+  - multimap ==1.2.1
+  - multipart ==0.2.1
+  - multiset ==0.3.4.3
+  - multistate ==0.8.0.3
+  - murmur3 ==1.0.4
+  - murmur-hash ==0.1.0.9
+  - MusicBrainz ==0.4.1
+  - mustache ==2.3.1
+  - mutable-containers ==0.3.4
+  - mwc-probability ==2.3.1
+  - mwc-random ==0.14.0.0
+  - mwc-random-monad ==0.7.3.1
+  - mx-state-codes ==1.0.0.0
+  - mysql ==0.2.0.1
+  - mysql-simple ==0.4.6
+  - n2o ==0.11.1
+  - nagios-check ==0.3.2
+  - names-th ==0.3.0.1
+  - nano-erl ==0.1.0.1
+  - nanospec ==0.2.2
+  - nats ==1.1.2
+  - natural-induction ==0.2.0.0
+  - natural-sort ==0.1.2
+  - natural-transformation ==0.4
+  - ndjson-conduit ==0.1.0.5
+  - neat-interpolation ==0.5.1.2
+  - netcode-io ==0.0.2
+  - netlib-carray ==0.1
+  - netlib-comfort-array ==0.0.0.1
+  - netlib-ffi ==0.1.1
+  - net-mqtt ==0.7.1.0
+  - net-mqtt-lens ==0.1.0.0
+  - netpbm ==1.0.4
+  - nettle ==0.3.0
+  - netwire ==5.0.3
+  - netwire-input ==0.0.7
+  - netwire-input-glfw ==0.0.11
+  - network ==3.1.1.1
+  - network-bsd ==2.8.1.0
+  - network-byte-order ==0.1.6
+  - network-conduit-tls ==1.3.2
+  - network-info ==0.2.0.10
+  - network-ip ==0.3.0.3
+  - network-messagepack-rpc ==0.1.2.0
+  - network-messagepack-rpc-websocket ==0.1.1.1
+  - network-run ==0.2.4
+  - network-simple ==0.4.5
+  - network-simple-tls ==0.4
+  - network-transport ==0.5.4
+  - network-transport-composed ==0.2.1
+  - network-uri ==2.6.4.1
+  - newtype ==0.2.2.0
+  - newtype-generics ==0.6
+  - nicify-lib ==1.0.1
+  - NineP ==0.0.2.1
+  - nix-derivation ==1.1.2
+  - nix-paths ==1.0.1
+  - nonce ==1.0.7
+  - nondeterminism ==1.4
+  - non-empty ==0.3.3
+  - nonempty-containers ==0.3.4.1
+  - nonemptymap ==0.0.6.0
+  - non-empty-sequence ==0.2.0.4
+  - nonempty-vector ==0.2.1.0
+  - nonempty-zipper ==1.0.0.2
+  - non-negative ==0.1.2
+  - not-gloss ==0.7.7.0
+  - no-value ==1.0.0.0
+  - nowdoc ==0.1.1.0
+  - nqe ==0.6.3
+  - nri-env-parser ==0.1.0.7
+  - nri-observability ==0.1.0.2
+  - nri-prelude ==0.6.0.0
+  - nsis ==0.3.3
+  - numbers ==3000.2.0.2
+  - numeric-extras ==0.1
+  - numeric-prelude ==0.4.3.3
+  - numhask ==0.7.1.0
+  - NumInstances ==1.4
+  - numtype-dk ==0.5.0.2
+  - nuxeo ==0.3.2
+  - nvim-hs ==2.1.0.4
+  - nvim-hs-contrib ==2.0.0.0
+  - nvim-hs-ghcid ==2.0.0.0
+  - oauthenticated ==0.2.1.0
+  - ObjectName ==1.1.0.1
+  - o-clock ==1.2.0.1
+  - odbc ==0.2.2
+  - oeis2 ==1.0.5
+  - ofx ==0.4.4.0
+  - old-locale ==1.0.0.7
+  - old-time ==1.1.0.3
+  - once ==0.4
+  - one-liner ==1.0
+  - OneTuple ==0.2.2.1
+  - Only ==0.1
+  - oo-prototypes ==0.1.0.0
+  - opaleye ==0.7.1.0
+  - OpenAL ==1.7.0.5
+  - openapi3 ==3.1.0
+  - open-browser ==0.2.1.0
+  - openexr-write ==0.1.0.2
+  - OpenGL ==3.0.3.0
+  - OpenGLRaw ==3.3.4.0
+  - openpgp-asciiarmor ==0.1.2
+  - opensource ==0.1.1.0
+  - openssl-streams ==1.2.3.0
+  - opentelemetry ==0.6.1
+  - opentelemetry-extra ==0.6.1
+  - opentelemetry-lightstep ==0.6.1
+  - opentelemetry-wai ==0.6.1
+  - operational ==0.2.3.5
+  - operational-class ==0.3.0.0
+  - optics ==0.3
+  - optics-core ==0.3.0.1
+  - optics-extra ==0.3
+  - optics-th ==0.3.0.2
+  - optics-vl ==0.2.1
+  - optional-args ==1.0.2
+  - options ==1.2.1.1
+  - optparse-applicative ==0.16.1.0
+  - optparse-generic ==1.4.4
+  - optparse-simple ==0.1.1.3
+  - optparse-text ==0.1.1.0
+  - ordered-containers ==0.2.2
+  - ormolu ==0.1.4.1
+  - overhang ==1.0.0
+  - packcheck ==0.5.1
+  - packdeps ==0.6.0.0
+  - pager ==0.1.1.0
+  - pagination ==0.2.2
+  - pagure-cli ==0.2
+  - pandoc ==2.13
+  - pandoc-dhall-decoder ==0.1.0.1
+  - pandoc-plot ==1.2.2
+  - pandoc-throw ==0.1.0.0
+  - pandoc-types ==1.22
+  - pantry ==0.5.2.1
+  - parallel ==3.2.2.0
+  - parameterized ==0.5.0.0
+  - paripari ==0.7.0.0
+  - parseargs ==0.2.0.9
+  - parsec-class ==1.0.0.0
+  - parsec-numbers ==0.1.0
+  - parsec-numeric ==0.1.0.0
+  - ParsecTools ==0.0.2.0
+  - parser-combinators ==1.2.1
+  - parser-combinators-tests ==1.2.1
+  - parsers ==0.12.10
+  - partial-handler ==1.0.3
+  - partial-isomorphisms ==0.2.2.1
+  - partial-semigroup ==0.5.1.12
+  - password ==3.0.0.0
+  - password-instances ==3.0.0.0
+  - password-types ==1.0.0.0
+  - path ==0.7.1
+  - path-binary-instance ==0.1.0.1
+  - path-extensions ==0.1.1.0
+  - path-extra ==0.2.0
+  - path-io ==1.6.2
+  - path-like ==0.2.0.2
+  - path-pieces ==0.2.1
+  - path-text-utf8 ==0.0.1.6
+  - pathtype ==0.8.1.1
+  - pathwalk ==0.3.1.2
+  - pattern-arrows ==0.0.2
+  - pava ==0.1.1.1
+  - pcg-random ==0.1.3.7
+  - pcre2 ==1.1.5
+  - pcre-heavy ==1.0.0.2
+  - pcre-light ==0.4.1.0
+  - pcre-utils ==0.1.8.2
+  - pdfinfo ==1.5.4
+  - peano ==0.1.0.1
+  - pem ==0.2.4
+  - percent-format ==0.0.1
+  - peregrin ==0.3.1
+  - perfect-hash-generator ==0.2.0.6
+  - perfect-vector-shuffle ==0.1.1.1
+  - persist ==0.1.1.5
+  - persistable-record ==0.6.0.5
+  - persistable-types-HDBC-pg ==0.0.3.5
+  - persistent ==2.13.0.2
+  - persistent-mtl ==0.2.1.0
+  - persistent-mysql ==2.13.0.1
+  - persistent-pagination ==0.1.1.2
+  - persistent-postgresql ==2.13.0.1
+  - persistent-qq ==2.12.0.1
+  - persistent-sqlite ==2.13.0.3
+  - persistent-template ==2.12.0.0
+  - persistent-test ==2.13.0.3
+  - persistent-typed-db ==0.1.0.4
+  - pg-harness-client ==0.6.0
+  - pgp-wordlist ==0.1.0.3
+  - pg-transact ==0.3.1.1
+  - phantom-state ==0.2.1.2
+  - pid1 ==0.1.2.0
+  - pinboard ==0.10.2.0
+  - pipes ==4.3.16
+  - pipes-aeson ==0.4.1.8
+  - pipes-attoparsec ==0.5.1.5
+  - pipes-binary ==0.4.2
+  - pipes-bytestring ==2.1.7
+  - pipes-concurrency ==2.0.12
+  - pipes-csv ==1.4.3
+  - pipes-extras ==1.0.15
+  - pipes-fastx ==0.3.0.0
+  - pipes-group ==1.0.12
+  - pipes-http ==1.0.6
+  - pipes-network ==0.6.5
+  - pipes-network-tls ==0.4
+  - pipes-ordered-zip ==1.2.1
+  - pipes-parse ==3.0.9
+  - pipes-random ==1.0.0.5
+  - pipes-safe ==2.3.3
+  - pipes-wai ==3.2.0
+  - pkcs10 ==0.2.0.0
+  - pkgtreediff ==0.4.1
+  - place-cursor-at ==1.0.1
+  - placeholders ==0.1
+  - plaid ==0.1.0.4
+  - plotlyhs ==0.2.1
+  - pointed ==5.0.2
+  - pointedlist ==0.6.1
+  - pointless-fun ==1.1.0.6
+  - poll ==0.0.0.2
+  - poly ==0.5.0.0
+  - poly-arity ==0.1.0
+  - polynomials-bernstein ==1.1.2
+  - polyparse ==1.13
+  - polysemy ==1.5.0.0
+  - polysemy-plugin ==0.3.0.0
+  - pooled-io ==0.0.2.2
+  - port-utils ==0.2.1.0
+  - posix-paths ==0.3.0.0
+  - possibly ==1.0.0.0
+  - postgres-options ==0.2.0.0
+  - postgresql-binary ==0.12.4
+  - postgresql-libpq ==0.9.4.3
+  - postgresql-libpq-notify ==0.2.0.0
+  - postgresql-orm ==0.5.1
+  - postgresql-simple ==0.6.4
+  - postgresql-typed ==0.6.2.0
+  - postgrest ==7.0.1
+  - post-mess-age ==0.2.1.0
+  - pptable ==0.3.0.0
+  - pqueue ==1.4.1.3
+  - prairie ==0.0.1.0
+  - prefix-units ==0.2.0
+  - prelude-compat ==0.0.0.2
+  - prelude-safeenum ==0.1.1.2
+  - prettyclass ==1.0.0.0
+  - pretty-class ==1.0.1.1
+  - pretty-diff ==0.4.0.3
+  - pretty-hex ==1.1
+  - prettyprinter ==1.7.0
+  - prettyprinter-ansi-terminal ==1.1.2
+  - prettyprinter-compat-annotated-wl-pprint ==1.1
+  - prettyprinter-compat-ansi-wl-pprint ==1.0.1
+  - prettyprinter-compat-wl-pprint ==1.0.0.1
+  - prettyprinter-convert-ansi-wl-pprint ==1.1.1
+  - pretty-relative-time ==0.2.0.0
+  - pretty-show ==1.10
+  - pretty-simple ==4.0.0.0
+  - pretty-sop ==0.2.0.3
+  - pretty-terminal ==0.1.0.0
+  - primes ==0.2.1.0
+  - primitive ==0.7.1.0
+  - primitive-addr ==0.1.0.2
+  - primitive-extras ==0.10.1
+  - primitive-unaligned ==0.1.1.1
+  - primitive-unlifted ==0.1.3.0
+  - prim-uniq ==0.2
+  - print-console-colors ==0.1.0.0
+  - probability ==0.2.7
+  - process-extras ==0.7.4
+  - product-isomorphic ==0.0.3.3
+  - product-profunctors ==0.11.0.2
+  - profiterole ==0.1
+  - profunctors ==5.5.2
+  - projectroot ==0.2.0.1
+  - project-template ==0.2.1.0
+  - prometheus ==2.2.2
+  - prometheus-client ==1.0.1
+  - prometheus-wai-middleware ==1.0.1.0
+  - promises ==0.3
+  - prompt ==0.1.1.2
+  - prospect ==0.1.0.0
+  - proto3-wire ==1.2.2
+  - protobuf ==0.2.1.3
+  - protobuf-simple ==0.1.1.0
+  - protocol-buffers ==2.4.17
+  - protocol-buffers-descriptor ==2.4.17
+  - protocol-radius ==0.0.1.1
+  - protocol-radius-test ==0.1.0.1
+  - proto-lens ==0.7.0.0
+  - proto-lens-protobuf-types ==0.7.0.0
+  - proto-lens-protoc ==0.7.0.0
+  - proto-lens-runtime ==0.7.0.0
+  - proto-lens-setup ==0.4.0.4
+  - protolude ==0.3.0
+  - proxied ==0.3.1
+  - psqueues ==0.2.7.2
+  - publicsuffix ==0.20200526
+  - pulse-simple ==0.1.14
+  - pureMD5 ==2.1.3
+  - purescript-bridge ==0.14.0.0
+  - pushbullet-types ==0.4.1.0
+  - pusher-http-haskell ==2.1.0.2
+  - pvar ==1.0.0.0
+  - PyF ==0.9.0.3
+  - qchas ==1.1.0.1
+  - qm-interpolated-string ==0.3.0.0
+  - qrcode-core ==0.9.4
+  - qrcode-juicypixels ==0.8.2
+  - quadratic-irrational ==0.1.1
+  - QuasiText ==0.1.2.6
+  - QuickCheck ==2.14.2
+  - quickcheck-arbitrary-adt ==0.3.1.0
+  - quickcheck-assertions ==0.3.0
+  - quickcheck-classes ==0.6.5.0
+  - quickcheck-classes-base ==0.6.2.0
+  - quickcheck-higherorder ==0.1.0.0
+  - quickcheck-instances ==0.3.25.2
+  - quickcheck-io ==0.2.0
+  - quickcheck-simple ==0.1.1.1
+  - quickcheck-special ==0.1.0.6
+  - quickcheck-text ==0.1.2.1
+  - quickcheck-transformer ==0.3.1.1
+  - quickcheck-unicode ==1.0.1.0
+  - quiet ==0.2
+  - quote-quot ==0.2.0.0
+  - radius ==0.7.1.0
+  - rainbow ==0.34.2.2
+  - rainbox ==0.26.0.0
+  - ral ==0.2
+  - rampart ==1.1.0.3
+  - ramus ==0.1.2
+  - rando ==0.0.0.4
+  - random ==1.2.0
+  - random-bytestring ==0.1.4
+  - random-fu ==0.2.7.7
+  - random-shuffle ==0.0.4
+  - random-source ==0.3.0.11
+  - random-tree ==0.6.0.5
+  - range ==0.3.0.2
+  - ranged-list ==0.1.0.0
+  - Ranged-sets ==0.4.0
+  - range-set-list ==0.1.3.1
+  - rank1dynamic ==0.4.1
+  - rank2classes ==1.4.1
+  - Rasterific ==0.7.5.4
+  - rasterific-svg ==0.3.3.2
+  - ratel ==1.0.15
+  - rate-limit ==1.4.2
+  - ratel-wai ==1.1.5
+  - rattle ==0.2
+  - rattletrap ==11.1.1
+  - Rattus ==0.5
+  - rawfilepath ==0.2.4
+  - rawstring-qm ==0.2.3.0
+  - raw-strings-qq ==1.1
+  - rcu ==0.2.5
+  - rdf ==0.1.0.5
+  - rdtsc ==1.3.0.1
+  - re2 ==0.3
+  - readable ==0.3.1
+  - read-editor ==0.1.0.2
+  - read-env-var ==1.0.0.0
+  - rebase ==1.6.1
+  - record-dot-preprocessor ==0.2.11
+  - record-hasfield ==1.0
+  - records-sop ==0.1.1.0
+  - record-wrangler ==0.1.1.0
+  - recursion-schemes ==5.2.2.1
+  - reducers ==3.12.3
+  - refact ==0.3.0.2
+  - ref-fd ==0.5
+  - refined ==0.6.2
+  - reflection ==2.1.6
+  - reform ==0.2.7.4
+  - reform-blaze ==0.2.4.3
+  - reform-hamlet ==0.0.5.3
+  - reform-happstack ==0.2.5.4
+  - RefSerialize ==0.4.0
+  - ref-tf ==0.5
+  - regex ==1.1.0.0
+  - regex-applicative ==0.3.4
+  - regex-applicative-text ==0.1.0.1
+  - regex-base ==0.94.0.1
+  - regex-compat ==0.95.2.1
+  - regex-compat-tdfa ==0.95.1.4
+  - regex-pcre ==0.95.0.0
+  - regex-pcre-builtin ==0.95.2.3.8.43
+  - regex-posix ==0.96.0.0
+  - regex-tdfa ==1.3.1.0
+  - regex-with-pcre ==1.1.0.0
+  - registry ==0.2.0.3
+  - reinterpret-cast ==0.1.0
+  - relapse ==1.0.0.0
+  - relational-query ==0.12.2.3
+  - relational-query-HDBC ==0.7.2.0
+  - relational-record ==0.2.2.0
+  - relational-schemas ==0.1.8.0
+  - reliable-io ==0.0.1
+  - relude ==0.7.0.0
+  - renderable ==0.2.0.1
+  - replace-attoparsec ==1.4.4.0
+  - replace-megaparsec ==1.4.4.0
+  - repline ==0.4.0.0
+  - req ==3.9.0
+  - req-conduit ==1.0.0
+  - rerebase ==1.6.1
+  - rescue ==0.4.2.1
+  - resistor-cube ==0.0.1.2
+  - resolv ==0.1.2.0
+  - resource-pool ==0.2.3.2
+  - resourcet ==1.2.4.2
+  - result ==0.2.6.0
+  - rethinkdb-client-driver ==0.0.25
+  - retry ==0.8.1.2
+  - rev-state ==0.1.2
+  - rfc1751 ==0.1.3
+  - rfc5051 ==0.2
+  - rhbzquery ==0.4.3
+  - rhine ==0.7.0
+  - rhine-gloss ==0.7.0
+  - rigel-viz ==0.2.0.0
+  - rio ==0.1.20.0
+  - rio-orphans ==0.1.2.0
+  - rio-prettyprint ==0.1.1.0
+  - roc-id ==0.1.0.0
+  - rocksdb-haskell ==1.0.1
+  - rocksdb-haskell-jprupp ==2.1.3
+  - rocksdb-query ==0.4.2
+  - roles ==0.2.0.0
+  - rope-utf16-splay ==0.3.2.0
+  - rosezipper ==0.2
+  - rot13 ==0.2.0.1
+  - rpmbuild-order ==0.4.5
+  - rp-tree ==0.3.6
+  - RSA ==2.4.1
+  - runmemo ==1.0.0.1
+  - rvar ==0.2.0.6
+  - safe ==0.3.19
+  - safe-coloured-text ==0.0.0.0
+  - safecopy ==0.10.4.2
+  - safe-decimal ==0.2.0.0
+  - safe-exceptions ==0.1.7.1
+  - safe-foldable ==0.1.0.0
+  - safeio ==0.0.5.0
+  - safe-json ==1.1.1.1
+  - safe-money ==0.9
+  - SafeSemaphore ==0.10.1
+  - safe-tensor ==0.2.1.1
+  - salak ==0.3.6
+  - salak-yaml ==0.3.5.3
+  - saltine ==0.1.1.1
+  - salve ==1.0.11
+  - sample-frame ==0.0.3
+  - sample-frame-np ==0.0.4.1
+  - sampling ==0.3.5
+  - sandwich ==0.1.0.6
+  - sandwich-quickcheck ==0.1.0.5
+  - sandwich-slack ==0.1.0.4
+  - sandwich-webdriver ==0.1.0.4
+  - say ==0.1.0.1
+  - sbp ==2.6.3
+  - sbv ==8.15
+  - scalpel ==0.6.2
+  - scalpel-core ==0.6.2
+  - scanf ==0.1.0.0
+  - scanner ==0.3.1
+  - scheduler ==1.5.0
+  - scientific ==0.3.7.0
+  - scotty ==0.12
+  - scrypt ==0.5.0
+  - sdl2 ==2.5.3.0
+  - sdl2-gfx ==0.2
+  - sdl2-image ==2.0.0
+  - sdl2-mixer ==1.1.0
+  - sdl2-ttf ==2.1.2
+  - search-algorithms ==0.3.1
+  - secp256k1-haskell ==0.5.0
+  - securemem ==0.1.10
+  - selda ==0.5.1.0
+  - selda-json ==0.1.1.0
+  - selda-postgresql ==0.1.8.1
+  - selda-sqlite ==0.1.7.1
+  - selections ==0.3.0.0
+  - selective ==0.4.2
+  - semialign ==1.1.0.1
+  - semialign-indexed ==1.1
+  - semialign-optics ==1.1
+  - semigroupoid-extras ==5
+  - semigroupoids ==5.3.5
+  - semigroups ==0.19.1
+  - semirings ==0.6
+  - semiring-simple ==1.0.0.1
+  - semver ==0.4.0.1
+  - sendfile ==0.7.11.1
+  - sendgrid-v3 ==0.3.0.0
+  - seqalign ==0.2.0.4
+  - seqid ==0.6.2
+  - seqid-streams ==0.7.2
+  - sequence-formats ==1.6.1
+  - sequenceTools ==1.4.0.5
+  - serf ==0.1.1.0
+  - serialise ==0.2.3.0
+  - servant ==0.18.2
+  - servant-auth ==0.4.0.0
+  - servant-auth-client ==0.4.1.0
+  - servant-auth-docs ==0.2.10.0
+  - servant-auth-server ==0.4.6.0
+  - servant-auth-swagger ==0.2.10.1
+  - servant-auth-wordpress ==1.0.0.2
+  - servant-blaze ==0.9.1
+  - servant-client ==0.18.2
+  - servant-client-core ==0.18.2
+  - servant-conduit ==0.15.1
+  - servant-docs ==0.11.8
+  - servant-elm ==0.7.2
+  - servant-errors ==0.1.6.0
+  - servant-exceptions ==0.2.1
+  - servant-exceptions-server ==0.2.1
+  - servant-foreign ==0.15.3
+  - servant-http-streams ==0.18.2
+  - servant-machines ==0.15.1
+  - servant-multipart ==0.12
+  - servant-openapi3 ==2.0.1.2
+  - servant-pipes ==0.15.2
+  - servant-rawm ==1.0.0.0
+  - servant-server ==0.18.2
+  - servant-swagger ==1.1.10
+  - servant-swagger-ui ==0.3.5.3.47.1
+  - servant-swagger-ui-core ==0.3.5
+  - serverless-haskell ==0.12.6
+  - serversession ==1.0.2
+  - serversession-frontend-wai ==1.0
+  - ses-html ==0.4.0.0
+  - set-cover ==0.1.1
+  - setenv ==0.1.1.3
+  - setlocale ==1.0.0.10
+  - sexp-grammar ==2.3.0
+  - SHA ==1.6.4.4
+  - shake-language-c ==0.12.0
+  - shake-plus ==0.3.3.1
+  - shake-plus-extended ==0.4.1.0
+  - shakespeare ==2.0.25
+  - shared-memory ==0.2.0.0
+  - shell-conduit ==5.0.0
+  - shell-escape ==0.2.0
+  - shellmet ==0.0.4.0
+  - shelltestrunner ==1.9
+  - shell-utility ==0.1
+  - shelly ==1.9.0
+  - shikensu ==0.3.11
+  - shortcut-links ==0.5.1.1
+  - should-not-typecheck ==2.1.0
+  - show-combinators ==0.2.0.0
+  - siggy-chardust ==1.0.0
+  - signal ==0.1.0.4
+  - silently ==1.2.5.1
+  - simple-affine-space ==0.1.1
+  - simple-cabal ==0.1.3
+  - simple-cmd ==0.2.3
+  - simple-cmd-args ==0.1.6
+  - simple-log ==0.9.12
+  - simple-reflect ==0.3.3
+  - simple-sendfile ==0.2.30
+  - simple-templates ==1.0.0
+  - simple-vec3 ==0.6.0.1
+  - simplistic-generics ==2.0.0
+  - since ==0.0.0
+  - singleton-bool ==0.1.5
+  - singleton-nats ==0.4.5
+  - singletons ==2.7
+  - singletons-presburger ==0.6.0.0
+  - siphash ==1.0.3
+  - sitemap-gen ==0.1.0.0
+  - sized ==1.0.0.0
+  - skein ==1.0.9.4
+  - skews ==0.1.0.3
+  - skip-var ==0.1.1.0
+  - skylighting ==0.10.5.1
+  - skylighting-core ==0.10.5.1
+  - slack-api ==0.12
+  - slack-progressbar ==0.1.0.1
+  - slick ==1.1.1.0
+  - slist ==0.2.0.0
+  - slynx ==0.5.0.2
+  - smallcheck ==1.2.1
+  - smash ==0.1.2
+  - smash-aeson ==0.1.0.0
+  - smash-lens ==0.1.0.1
+  - smash-microlens ==0.1.0.0
+  - smoothie ==0.4.2.11
+  - smtp-mail ==0.3.0.0
+  - snap-blaze ==0.2.1.5
+  - snap-core ==1.0.4.2
+  - snap-server ==1.1.2.0
+  - snowflake ==0.1.1.1
+  - soap ==0.2.3.6
+  - soap-openssl ==0.1.0.2
+  - soap-tls ==0.1.1.4
+  - socket ==0.8.3.0
+  - socks ==0.6.1
+  - some ==1.0.2
+  - sop-core ==0.5.0.1
+  - sort ==1.0.0.0
+  - sorted-list ==0.2.1.0
+  - sourcemap ==0.1.6.1
+  - sox ==0.2.3.1
+  - soxlib ==0.0.3.1
+  - spacecookie ==1.0.0.0
+  - sparse-linear-algebra ==0.3.1
+  - sparse-tensor ==0.2.1.5
+  - spatial-math ==0.5.0.1
+  - special-values ==0.1.0.0
+  - speculate ==0.4.6
+  - speedy-slice ==0.3.2
+  - Spintax ==0.3.6
+  - splice ==0.6.1.1
+  - splint ==1.0.1.4
+  - split ==0.2.3.4
+  - splitmix ==0.1.0.3
+  - splitmix-distributions ==0.9.0.0
+  - spoon ==0.3.1
+  - spreadsheet ==0.1.3.8
+  - sqlcli ==0.2.2.0
+  - sqlcli-odbc ==0.2.0.1
+  - sqlite-simple ==0.4.18.0
+  - sql-words ==0.1.6.4
+  - squeal-postgresql ==0.7.0.1
+  - squeather ==0.8.0.0
+  - srcloc ==0.6
+  - stache ==2.3.0
+  - stackcollapse-ghc ==0.0.1.3
+  - stack-templatizer ==0.1.0.2
+  - stateref ==0.3
+  - StateVar ==1.2.1
+  - static-text ==0.2.0.6
+  - statistics ==0.15.2.0
+  - status-notifier-item ==0.3.0.5
+  - stb-image-redux ==0.2.1.3
+  - step-function ==0.2
+  - stm-chans ==3.0.0.4
+  - stm-conduit ==4.0.1
+  - stm-containers ==1.2
+  - stm-delay ==0.1.1.1
+  - stm-extras ==0.1.0.3
+  - stm-hamt ==1.2.0.6
+  - stm-lifted ==2.5.0.0
+  - STMonadTrans ==0.4.5
+  - stm-split ==0.0.2.1
+  - stopwatch ==0.1.0.6
+  - storable-complex ==0.2.3.0
+  - storable-endian ==0.2.6
+  - storable-record ==0.0.5
+  - storable-tuple ==0.0.3.3
+  - storablevector ==0.2.13.1
+  - store ==0.7.11
+  - store-core ==0.4.4.4
+  - store-streaming ==0.2.0.3
+  - stratosphere ==0.59.1
+  - Stream ==0.4.7.2
+  - streaming ==0.2.3.0
+  - streaming-attoparsec ==1.0.0.1
+  - streaming-bytestring ==0.2.0
+  - streaming-commons ==0.2.2.1
+  - streamly ==0.7.3
+  - streams ==3.3
+  - streamt ==0.5.0.0
+  - strict ==0.4.0.1
+  - strict-concurrency ==0.2.4.3
+  - strict-list ==0.1.5
+  - strict-tuple ==0.1.4
+  - strict-tuple-lens ==0.1.0.1
+  - stringbuilder ==0.5.1
+  - string-class ==0.1.7.0
+  - string-combinators ==0.6.0.5
+  - string-conv ==0.1.2
+  - string-conversions ==0.4.0.1
+  - string-interpolate ==0.3.1.1
+  - string-qq ==0.0.4
+  - string-random ==0.1.4.1
+  - stringsearch ==0.3.6.6
+  - string-transform ==1.1.1
+  - stripe-concepts ==1.0.2.6
+  - stripe-core ==2.6.2
+  - stripe-haskell ==2.6.2
+  - stripe-http-client ==2.6.2
+  - strive ==5.0.14
+  - structs ==0.1.6
+  - structured ==0.1.0.1
+  - structured-cli ==2.7.0.1
+  - subcategories ==0.1.1.0
+  - sum-type-boilerplate ==0.1.1
+  - sundown ==0.6
+  - superbuffer ==0.3.1.1
+  - svg-tree ==0.6.2.4
+  - swagger ==0.3.0
+  - swagger2 ==2.6
+  - sweet-egison ==0.1.1.3
+  - swish ==0.10.0.4
+  - syb ==0.7.2.1
+  - sydtest ==0.1.0.0
+  - sydtest-discover ==0.0.0.0
+  - sydtest-persistent-sqlite ==0.0.0.0
+  - sydtest-servant ==0.0.0.0
+  - sydtest-wai ==0.0.0.0
+  - sydtest-yesod ==0.0.0.0
+  - symbol ==0.2.4
+  - symengine ==0.1.2.0
+  - symmetry-operations-symbols ==0.0.2.1
+  - sysinfo ==0.1.1
+  - system-argv0 ==0.1.1
+  - systemd ==2.3.0
+  - system-fileio ==0.3.16.4
+  - system-filepath ==0.4.14
+  - system-info ==0.5.2
+  - tabular ==0.2.2.8
+  - tagchup ==0.4.1.1
+  - tagged ==0.8.6.1
+  - tagged-binary ==0.2.0.1
+  - tagged-identity ==0.1.3
+  - tagged-transformer ==0.8.1
+  - tagshare ==0.0
+  - tagsoup ==0.14.8
+  - tao ==1.0.0
+  - tao-example ==1.0.0
+  - tar ==0.5.1.1
+  - tar-conduit ==0.3.2
+  - tardis ==0.4.3.0
+  - tasty ==1.4.1
+  - tasty-ant-xml ==1.1.8
+  - tasty-bench ==0.2.5
+  - tasty-dejafu ==2.0.0.7
+  - tasty-discover ==4.2.2
+  - tasty-expected-failure ==0.12.3
+  - tasty-focus ==1.0.1
+  - tasty-golden ==2.3.4
+  - tasty-hedgehog ==1.0.1.0
+  - tasty-hspec ==1.1.6
+  - tasty-hunit ==0.10.0.3
+  - tasty-hunit-compat ==0.2.0.1
+  - tasty-inspection-testing ==0.1
+  - tasty-kat ==0.0.3
+  - tasty-leancheck ==0.0.1
+  - tasty-lua ==0.2.3.2
+  - tasty-program ==1.0.5
+  - tasty-quickcheck ==0.10.1.2
+  - tasty-rerun ==1.1.18
+  - tasty-silver ==3.2.1
+  - tasty-smallcheck ==0.8.2
+  - tasty-test-reporter ==0.1.1.4
+  - tasty-th ==0.1.7
+  - tasty-wai ==0.1.1.1
+  - Taxonomy ==2.2.0
+  - TCache ==0.12.1
+  - tce-conf ==1.3
+  - tdigest ==0.2.1.1
+  - template-haskell-compat-v0208 ==0.1.5
+  - temporary ==1.3
+  - temporary-rc ==1.2.0.3
+  - temporary-resourcet ==0.1.0.1
+  - tensorflow-test ==0.1.0.0
+  - tensors ==0.1.5
+  - termbox ==0.3.0
+  - terminal-progress-bar ==0.4.1
+  - terminal-size ==0.3.2.1
+  - test-framework ==0.8.2.0
+  - test-framework-hunit ==0.3.0.2
+  - test-framework-leancheck ==0.0.1
+  - test-framework-quickcheck2 ==0.3.0.5
+  - test-framework-smallcheck ==0.2
+  - test-fun ==0.1.0.0
+  - testing-type-modifiers ==0.1.0.1
+  - texmath ==0.12.2
+  - text-ansi ==0.1.1
+  - text-binary ==0.2.1.1
+  - text-builder ==0.6.6.2
+  - text-conversions ==0.3.1
+  - text-format ==0.3.2
+  - text-icu ==0.7.1.0
+  - text-latin1 ==0.3.1
+  - text-ldap ==0.1.1.13
+  - textlocal ==0.1.0.5
+  - text-manipulate ==0.3.0.0
+  - text-metrics ==0.3.0
+  - text-postgresql ==0.0.3.1
+  - text-printer ==0.5.0.1
+  - text-regex-replace ==0.1.1.4
+  - text-region ==0.3.1.0
+  - text-short ==0.1.3
+  - text-show ==3.9
+  - text-show-instances ==3.8.4
+  - text-zipper ==0.11
+  - tfp ==1.0.2
+  - tf-random ==0.5
+  - th-abstraction ==0.4.2.0
+  - th-bang-compat ==0.0.1.0
+  - th-compat ==0.1.2
+  - th-constraint-compat ==0.0.1.0
+  - th-data-compat ==0.1.0.0
+  - th-desugar ==1.11
+  - th-env ==0.1.0.2
+  - these ==1.1.1.1
+  - these-lens ==1.0.1.2
+  - these-optics ==1.0.1.2
+  - these-skinny ==0.7.4
+  - th-expand-syns ==0.4.8.0
+  - th-extras ==0.0.0.4
+  - th-lift ==0.8.2
+  - th-lift-instances ==0.1.18
+  - th-nowq ==0.1.0.5
+  - th-orphans ==0.13.11
+  - th-printf ==0.7
+  - thread-hierarchy ==0.3.0.2
+  - thread-local-storage ==0.2
+  - threads ==0.5.1.6
+  - thread-supervisor ==0.2.0.0
+  - threepenny-gui ==0.9.1.0
+  - th-reify-compat ==0.0.1.5
+  - th-reify-many ==0.1.9
+  - throttle-io-stream ==0.2.0.1
+  - through-text ==0.1.0.0
+  - throwable-exceptions ==0.1.0.9
+  - th-strict-compat ==0.1.0.1
+  - th-test-utils ==1.1.0
+  - th-utilities ==0.2.4.3
+  - thyme ==0.3.5.5
+  - tidal ==1.7.4
+  - tile ==0.3.0.0
+  - time-compat ==1.9.5
+  - timeit ==2.0
+  - timelens ==0.2.0.2
+  - time-lens ==0.4.0.2
+  - time-locale-compat ==0.1.1.5
+  - time-locale-vietnamese ==1.0.0.0
+  - time-manager ==0.0.0
+  - time-parsers ==0.1.2.1
+  - timerep ==2.0.1.0
+  - timer-wheel ==0.3.0
+  - time-units ==1.0.0
+  - timezone-olson ==0.2.0
+  - timezone-series ==0.1.9
+  - tinylog ==0.15.0
+  - titlecase ==1.0.1
+  - tldr ==0.9.0
+  - tls ==1.5.5
+  - tls-debug ==0.4.8
+  - tls-session-manager ==0.0.4
+  - tlynx ==0.5.0.2
+  - tmapchan ==0.0.3
+  - tmapmvar ==0.0.4
+  - tmp-postgres ==1.34.1.0
+  - tomland ==1.3.2.0
+  - tonalude ==0.1.1.1
+  - topograph ==1.0.0.1
+  - torsor ==0.1
+  - tostring ==0.2.1.1
+  - transaction ==0.1.1.3
+  - transformers-base ==0.4.5.2
+  - transformers-bifunctors ==0.1
+  - transformers-compat ==0.6.6
+  - transformers-fix ==1.0
+  - traverse-with-class ==1.0.1.0
+  - tree-diff ==0.2
+  - tree-fun ==0.8.1.0
+  - tree-view ==0.5.1
+  - trifecta ==2.1.1
+  - triplesec ==0.2.2.1
+  - trivial-constraint ==0.7.0.0
+  - tsv2csv ==0.1.0.2
+  - ttc ==0.4.0.0
+  - ttl-hashtables ==1.4.1.0
+  - ttrie ==0.1.2.1
+  - tuple ==0.3.0.2
+  - tuples-homogenous-h98 ==0.1.1.0
+  - tuple-sop ==0.3.1.0
+  - tuple-th ==0.2.5
+  - turtle ==1.5.22
+  - typecheck-plugin-nat-simple ==0.1.0.2
+  - TypeCompose ==0.9.14
+  - typed-process ==0.2.6.0
+  - typed-uuid ==0.1.0.0
+  - type-equality ==1
+  - type-errors ==0.2.0.0
+  - type-errors-pretty ==0.0.1.1
+  - type-hint ==0.1
+  - type-level-integers ==0.0.1
+  - type-level-kv-list ==1.1.0
+  - type-level-natural-number ==2.0
+  - type-level-numbers ==0.1.1.1
+  - typelits-witnesses ==0.4.0.0
+  - type-map ==0.1.6.0
+  - type-natural ==1.1.0.0
+  - typenums ==0.1.4
+  - type-of-html ==1.6.2.0
+  - type-of-html-static ==0.1.0.2
+  - type-operators ==0.2.0.0
+  - typerep-map ==0.3.3.0
+  - type-spec ==0.4.0.0
+  - tzdata ==0.2.20201021.0
+  - ua-parser ==0.7.6.0
+  - uglymemo ==0.1.0.1
+  - unagi-chan ==0.4.1.3
+  - unbounded-delays ==0.1.1.1
+  - unboxed-ref ==0.4.0.0
+  - unboxing-vector ==0.2.0.0
+  - uncaught-exception ==0.1.0
+  - uncertain ==0.3.1.0
+  - unconstrained ==0.1.0.2
+  - unexceptionalio ==0.5.1
+  - unexceptionalio-trans ==0.5.1
+  - unicode ==0.0.1.1
+  - unicode-show ==0.1.0.4
+  - unicode-transforms ==0.3.7.1
+  - unification-fd ==0.11.1
+  - union-find ==0.2
+  - unipatterns ==0.0.0.0
+  - uniplate ==1.6.13
+  - uniprot-kb ==0.1.2.0
+  - uniq-deep ==1.2.0
+  - unique ==0.0.1
+  - unique-logic ==0.4
+  - unique-logic-tf ==0.5.1
+  - unit-constraint ==0.0.0
+  - universe ==1.2.1
+  - universe-base ==1.1.2
+  - universe-dependent-sum ==1.3
+  - universe-instances-base ==1.1
+  - universe-instances-extended ==1.1.2
+  - universe-instances-trans ==1.1
+  - universe-reverse-instances ==1.1.1
+  - universe-some ==1.2.1
+  - universum ==1.7.2
+  - unix-bytestring ==0.3.7.3
+  - unix-compat ==0.5.3
+  - unix-time ==0.4.7
+  - unliftio ==0.2.17
+  - unliftio-core ==0.2.0.1
+  - unliftio-pool ==0.2.1.1
+  - unliftio-streams ==0.1.1.1
+  - unlit ==0.4.0.0
+  - unordered-containers ==0.2.14.0
+  - unsafe ==0.0
+  - urbit-hob ==0.3.3
+  - uri-bytestring ==0.3.3.0
+  - uri-bytestring-aeson ==0.1.0.8
+  - uri-encode ==1.5.0.7
+  - url ==2.1.3
+  - users ==0.5.0.0
+  - utf8-conversions ==0.1.0.4
+  - utf8-light ==0.4.2
+  - utf8-string ==1.0.2
+  - util ==0.1.17.1
+  - utility-ht ==0.0.16
+  - uuid ==1.3.15
+  - uuid-types ==1.0.5
+  - validation ==1.1.1
+  - validation-selective ==0.1.0.1
+  - validity ==0.11.0.0
+  - validity-aeson ==0.2.0.4
+  - validity-bytestring ==0.4.1.1
+  - validity-containers ==0.5.0.4
+  - validity-path ==0.4.0.1
+  - validity-persistent ==0.0.0.0
+  - validity-primitive ==0.0.0.1
+  - validity-scientific ==0.2.0.3
+  - validity-text ==0.3.1.1
+  - validity-time ==0.4.0.0
+  - validity-unordered-containers ==0.2.0.3
+  - validity-uuid ==0.1.0.3
+  - validity-vector ==0.2.0.3
+  - valor ==0.1.0.0
+  - vault ==0.3.1.5
+  - vcs-ignore ==0.0.1.0
+  - vec ==0.4
+  - vector ==0.12.3.0
+  - vector-algorithms ==0.8.0.4
+  - vector-binary-instances ==0.2.5.2
+  - vector-buffer ==0.4.1
+  - vector-builder ==0.3.8.1
+  - vector-bytes-instances ==0.1.1
+  - vector-circular ==0.1.3
+  - vector-instances ==3.4
+  - vector-mmap ==0.0.3
+  - vector-rotcev ==0.1.0.0
+  - vector-sized ==1.4.3.1
+  - vector-space ==0.16
+  - vector-split ==1.0.0.2
+  - vector-th-unbox ==0.2.1.9
+  - verbosity ==0.4.0.0
+  - versions ==4.0.3
+  - vformat ==0.14.1.0
+  - vformat-aeson ==0.1.0.1
+  - vformat-time ==0.1.0.0
+  - ViennaRNAParser ==1.3.3
+  - vinyl ==0.13.3
+  - void ==0.7.3
+  - vty ==5.33
+  - wai ==3.2.3
+  - wai-app-static ==3.1.7.2
+  - wai-conduit ==3.0.0.4
+  - wai-cors ==0.2.7
+  - wai-enforce-https ==0.0.2.1
+  - wai-eventsource ==3.0.0
+  - wai-extra ==3.1.6
+  - wai-feature-flags ==0.1.0.1
+  - wai-handler-launch ==3.0.3.1
+  - wai-logger ==2.3.6
+  - wai-middleware-auth ==0.2.4.1
+  - wai-middleware-caching ==0.1.0.2
+  - wai-middleware-clacks ==0.1.0.1
+  - wai-middleware-static ==0.9.0
+  - wai-rate-limit ==0.1.0.0
+  - wai-rate-limit-redis ==0.1.0.0
+  - wai-saml2 ==0.2.1.2
+  - wai-session ==0.3.3
+  - wai-session-redis ==0.1.0.2
+  - wai-slack-middleware ==0.2.0
+  - wai-websockets ==3.0.1.2
+  - wakame ==0.1.0.0
+  - warp ==3.3.16
+  - warp-tls ==3.3.1
+  - warp-tls-uid ==0.2.0.6
+  - wave ==0.2.0
+  - wcwidth ==0.0.2
+  - webby ==1.0.1
+  - webdriver ==0.9.0.1
+  - webex-teams-api ==0.2.0.1
+  - webex-teams-conduit ==0.2.0.1
+  - webex-teams-pipes ==0.2.0.1
+  - webgear-server ==0.2.1
+  - webrtc-vad ==0.1.0.3
+  - websockets ==0.12.7.2
+  - websockets-snap ==0.10.3.1
+  - weigh ==0.0.16
+  - wide-word ==0.1.1.2
+  - wikicfp-scraper ==0.1.0.12
+  - wild-bind ==0.1.2.7
+  - wild-bind-x11 ==0.2.0.12
+  - Win32 ==2.6.1.0
+  - Win32-notify ==0.3.0.3
+  - windns ==0.1.0.1
+  - witch ==0.3.3.0
+  - witherable ==0.4.1
+  - within ==0.2.0.1
+  - with-location ==0.1.0
+  - with-utf8 ==1.0.2.2
+  - wizards ==1.0.3
+  - wl-pprint-annotated ==0.1.0.1
+  - wl-pprint-console ==0.1.0.2
+  - wl-pprint-text ==1.2.0.1
+  - word24 ==2.0.1
+  - word8 ==0.1.3
+  - wordpress-auth ==1.0.0.1
+  - word-trie ==0.3.0
+  - word-wrap ==0.4.1
+  - world-peace ==1.0.2.0
+  - wrap ==0.0.0
+  - wreq ==0.5.3.3
+  - writer-cps-exceptions ==0.1.0.1
+  - writer-cps-mtl ==0.1.1.6
+  - writer-cps-transformers ==0.5.6.1
+  - wss-client ==0.3.0.0
+  - wuss ==1.1.18
+  - X11 ==1.9.2
+  - X11-xft ==0.3.1
+  - x11-xim ==0.0.9.0
+  - x509 ==1.7.5
+  - x509-store ==1.6.7
+  - x509-system ==1.6.6
+  - x509-validation ==1.6.11
+  - Xauth ==0.1
+  - xdg-basedir ==0.2.2
+  - xdg-userdirs ==0.1.0.2
+  - xeno ==0.4.2
+  - xlsx ==0.8.3
+  - xlsx-tabular ==0.2.2.1
+  - xml ==1.3.14
+  - xml-basic ==0.1.3.1
+  - xml-conduit ==1.9.1.1
+  - xml-conduit-writer ==0.1.1.2
+  - xmlgen ==0.6.2.2
+  - xml-hamlet ==0.5.0.1
+  - xml-helpers ==1.0.0
+  - xml-html-qq ==0.1.0.1
+  - xml-indexed-cursor ==0.1.1.0
+  - xml-lens ==0.3
+  - xml-picklers ==0.3.6
+  - xml-to-json ==2.0.1
+  - xml-to-json-fast ==2.0.0
+  - xml-types ==0.3.8
+  - xmonad ==0.15
+  - xmonad-contrib ==0.16
+  - xmonad-extras ==0.15.3
+  - xss-sanitize ==0.3.6
+  - xxhash-ffi ==0.2.0.0
+  - yaml ==0.11.5.0
+  - yamlparse-applicative ==0.1.0.4
+  - yesod ==1.6.1.1
+  - yesod-auth ==1.6.10.3
+  - yesod-auth-hashdb ==1.7.1.7
+  - yesod-auth-oauth2 ==0.6.3.4
+  - yesod-bin ==1.6.1
+  - yesod-core ==1.6.20.1
+  - yesod-fb ==0.6.1
+  - yesod-form ==1.6.7
+  - yesod-gitrev ==0.2.1
+  - yesod-markdown ==0.12.6.11
+  - yesod-newsfeed ==1.7.0.0
+  - yesod-page-cursor ==2.0.0.8
+  - yesod-paginator ==1.1.1.0
+  - yesod-persistent ==1.6.0.7
+  - yesod-sitemap ==1.6.0
+  - yesod-static ==1.6.1.0
+  - yesod-test ==1.6.12
+  - yesod-websockets ==0.3.0.3
+  - yes-precure5-command ==5.5.3
+  - yi-rope ==0.11
+  - yjsvg ==0.2.0.1
+  - yjtools ==0.9.18
+  - yoga ==0.0.0.5
+  - youtube ==0.2.1.1
+  - zenacy-html ==2.0.3
+  - zenacy-unicode ==1.0.1
+  - zero ==0.1.5
+  - zeromq4-haskell ==0.8.0
+  - zeromq4-patterns ==0.3.1.0
+  - zim-parser ==0.2.1.0
+  - zio ==0.1.0.2
+  - zip ==1.7.0
+  - zip-archive ==0.4.1
+  - zipper-extra ==0.1.3.2
+  - zippers ==0.3.1
+  - zip-stream ==0.2.1.0
+  - zlib ==0.6.2.3
+  - zlib-bindings ==0.1.1.5
+  - zlib-lens ==0.1.2.1
+  - zot ==0.0.3
+  - zstd ==0.1.2.0
+  - ztail ==1.2.0.2
+  - zydiskell ==0.2.0.0
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
new file mode 100644
index 000000000000..e813a2a83475
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -0,0 +1,3282 @@
+# This file is automatically generated by
+# maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
+# It is supposed to list all haskellPackages that cannot evaluate because they
+# depend on a dependency marked as broken.
+dont-distribute-packages:
+
+ - 4Blocks
+ - a50
+ - abcBridge
+ - AbortT-monadstf
+ - AbortT-mtl
+ - accelerate-arithmetic
+ - accelerate-fourier
+ - accelerate-typelits
+ - access-token-provider
+ - ac-machine-conduit
+ - acme-php
+ - acme-safe
+ - acousticbrainz-client
+ - activehs
+ - actor
+ - AC-Vector-Fancy
+ - addy
+ - adhoc-network
+ - adict
+ - ADPfusionForest
+ - ADPfusionSet
+ - adp-multi-monadiccp
+ - Advgame
+ - Advise-me
+ - aern2-real
+ - aern2-real_0_2_7_0
+ - AERN-Net
+ - AERN-Real
+ - AERN-Real-Double
+ - AERN-Real-Interval
+ - AERN-RnToRm
+ - AERN-RnToRm-Plot
+ - aeson-native
+ - afv
+ - agda-server
+ - agda-snippets-hakyll
+ - agentx
+ - aip
+ - airship
+ - aivika-distributed
+ - algebra-checkers
+ - algebra-driven-design
+ - algebra-sql
+ - algolia
+ - AlgoRhythm
+ - AlignmentAlgorithms
+ - alms
+ - alpha
+ - alsa-gui
+ - alsa-pcm-tests
+ - alsa-seq-tests
+ - amazon-emailer-client-snap
+ - ampersand
+ - amqp-streamly
+ - analyze-client
+ - anatomy
+ - AndroidViewHierarchyImporter
+ - animate-example
+ - animate-frames
+ - animate-preview
+ - animate-sdl2
+ - annah
+ - Annotations
+ - anonymous-sums-tests
+ - antagonist
+ - anticiv
+ - antlrc
+ - apelsin
+ - apiary
+ - apiary-authenticate
+ - apiary-clientsession
+ - apiary-cookie
+ - apiary-eventsource
+ - apiary-helics
+ - apiary-http-client
+ - apiary-logger
+ - apiary-memcached
+ - apiary-mongoDB
+ - apiary-persistent
+ - apiary-purescript
+ - apiary-redis
+ - apiary-session
+ - apiary-websockets
+ - api-rpc-pegnet
+ - apis
+ - api-yoti
+ - apotiki
+ - ApplePush
+ - approx-rand-test
+ - arbor-monad-metric-datadog
+ - archlinux-web
+ - arduino-copilot
+ - arff
+ - arghwxhaskell
+ - argon
+ - ariadne
+ - arithmetic-circuits
+ - array-forth
+ - arraylist
+ - ascii-table
+ - asic
+ - ASN1
+ - assert4hs-hspec
+ - assert4hs-tasty
+ - assimp
+ - ast-monad-json
+ - astview
+ - atlassian-connect-core
+ - atmos-dimensional-tf
+ - atomic-primops-foreign
+ - atp
+ - AttoJson
+ - attoparsec-enumerator
+ - attoparsec-ip
+ - attoparsec-iteratee
+ - attoparsec-text-enumerator
+ - attoparsec-uri
+ - atuin
+ - audiovisual
+ - aura
+ - authoring
+ - AutoForms
+ - autonix-deps-kf5
+ - avers
+ - avers-api
+ - avers-api-docs
+ - avers-server
+ - AvlTree
+ - avro-piper
+ - awesomium
+ - awesomium-glut
+ - aws-configuration-tools
+ - aws-dynamodb-conduit
+ - aws-dynamodb-streams
+ - aws-elastic-transcoder
+ - aws-kinesis
+ - aws-kinesis-client
+ - aws-kinesis-reshard
+ - aws-lambda
+ - aws-mfa-credentials
+ - aws-sdk
+ - aws-sdk-xml-unordered
+ - aws-sign4
+ - aws-sns
+ - axiom
+ - azimuth-hs
+ - azure-functions-worker
+ - azure-service-api
+ - azure-servicebus
+ - babylon
+ - backblaze-b2-hs
+ - backdropper
+ - ballast
+ - bamboo
+ - bamboo-launcher
+ - bamboo-plugin-highlight
+ - bamboo-plugin-photo
+ - bamboo-theme-blueprint
+ - bamboo-theme-mini-html5
+ - bamse
+ - bamstats
+ - Barracuda
+ - base16-lens
+ - base32-bytestring
+ - base62
+ - base64-bytes
+ - baserock-schema
+ - BASIC
+ - batchd
+ - battlenet-yesod
+ - battleships
+ - bayes-stack
+ - bbi
+ - bdcs
+ - bdcs-api
+ - beam-automigrate
+ - beam-migrate
+ - beam-mysql
+ - beam-newtype-field
+ - beam-postgres
+ - beam-sqlite
+ - beam-th
+ - beautifHOL
+ - bech32-th
+ - bein
+ - belka
+ - BerlekampAlgorithm
+ - berp
+ - bff
+ - bglib
+ - billboard-parser
+ - billeksah-forms
+ - billeksah-main
+ - billeksah-pane
+ - binary-file
+ - binary-protocol-zmq
+ - binary-streams
+ - bindings-apr-util
+ - bindings-linux-videodev2
+ - bindings-ppdev
+ - binding-wx
+ - binembed-example
+ - bioace
+ - bioalign
+ - Biobase
+ - BiobaseBlast
+ - BiobaseDotP
+ - BiobaseENA
+ - BiobaseEnsembl
+ - BiobaseFasta
+ - BiobaseFR3D
+ - BiobaseHTTP
+ - BiobaseHTTPTools
+ - BiobaseInfernal
+ - BiobaseMAF
+ - BiobaseTrainingData
+ - BiobaseTurner
+ - BiobaseTypes
+ - BiobaseVienna
+ - BiobaseXNA
+ - biofasta
+ - biofastq
+ - BioHMM
+ - bioinformatics-toolkit
+ - biophd
+ - biopsl
+ - biosff
+ - biostockholm
+ - bip32
+ - birch-beer
+ - bird
+ - BirdPP
+ - bit-array
+ - bitcoin-address
+ - bitcoin-api
+ - bitcoin-api-extra
+ - bitcoin-block
+ - bitcoin-compact-filters
+ - bitcoind-regtest
+ - bitcoind-rpc
+ - bitcoin-keys
+ - bitcoin-rpc
+ - bitcoin-scripting
+ - bitcoin-tx
+ - bitcoin-types
+ - Bitly
+ - bitly-cli
+ - bitmaps
+ - bittorrent
+ - bla
+ - blakesum-demo
+ - BlastHTTP
+ - blastxml
+ - blatex
+ - blaze-builder-enumerator
+ - blaze-colonnade
+ - ble
+ - blink1
+ - blip
+ - Blobs
+ - blogination
+ - BlogLiterately
+ - BlogLiterately-diagrams
+ - bloodhound-amazonka-auth
+ - bloxorz
+ - blubber
+ - bluetile
+ - blunt
+ - bno055-haskell
+ - bogre-banana
+ - bond-haskell
+ - bond-haskell-compiler
+ - bookkeeper-permissions
+ - Bookshelf
+ - boomslang
+ - boopadoop
+ - boots-cloud
+ - boots-web
+ - borel
+ - bowntz
+ - box
+ - box-csv
+ - box-socket
+ - breakout
+ - bricks
+ - bricks-internal-test
+ - bricks-parsec
+ - bricks-rendering
+ - bricks-syntax
+ - bronyradiogermany-streaming
+ - brotli-conduit
+ - brotli-streams
+ - b-tree
+ - btree
+ - buchhaltung
+ - buildbox-tools
+ - buildwrapper
+ - bulletproofs
+ - bulmex
+ - burnt-explorer
+ - bus-pirate
+ - buster-gtk
+ - buster-network
+ - butterflies
+ - bv-sized-lens
+ - bytebuild
+ - bytehash
+ - bytelog
+ - bytesmith
+ - bytestring-read
+ - c0check
+ - cabal2arch
+ - cabal-bounds
+ - cabal-cache
+ - cabal-cargs
+ - cabalmdvrpm
+ - cabal-query
+ - cabalrpmdeps
+ - cabal-test
+ - cake
+ - cakyrespa
+ - cal3d-examples
+ - cal3d-opengl
+ - calc
+ - calculator
+ - caldims
+ - call
+ - camfort
+ - campfire
+ - candid
+ - canteven-http
+ - cao
+ - cap
+ - carboncopy
+ - CarneadesIntoDung
+ - car-pool
+ - cartel
+ - casadi-bindings
+ - casadi-bindings-control
+ - casadi-bindings-core
+ - casadi-bindings-ipopt-interface
+ - casadi-bindings-snopt-interface
+ - cash
+ - cassandra-cql
+ - cassandra-thrift
+ - cassy
+ - casui
+ - categorical-algebra
+ - category-extras
+ - CBOR
+ - CC-delcont-alt
+ - cctools-workqueue
+ - cef3-simple
+ - ceilometer-common
+ - celtchar
+ - cereal-enumerator
+ - cereal-io-streams
+ - cereal-streams
+ - certificate
+ - cfipu
+ - cflp
+ - cfopu
+ - cgrep
+ - chainweb-mining-client
+ - chakra
+ - chalkboard-viewer
+ - charade
+ - chart-cli
+ - Chart-fltkhs
+ - chart-svg
+ - chart-svg-various
+ - chart-unit
+ - cheapskate-terminal
+ - check-pvp
+ - chevalier-common
+ - chitauri
+ - choose-exe
+ - chorale-geo
+ - chp-mtl
+ - chp-plus
+ - chp-transformers
+ - chr-core
+ - chr-lang
+ - chromatin
+ - chu2
+ - chunks
+ - ciphersaber2
+ - citation-resolve
+ - citeproc-hs-pandoc-filter
+ - clac
+ - clafer
+ - claferIG
+ - claferwiki
+ - clash
+ - clash-ghc
+ - clash-lib
+ - clash-multisignal
+ - clash-prelude-quickcheck
+ - clash-systemverilog
+ - clash-verilog
+ - clash-vhdl
+ - classify-frog
+ - classy-miso
+ - clckwrks
+ - clckwrks-cli
+ - clckwrks-dot-com
+ - clckwrks-plugin-bugs
+ - clckwrks-plugin-ircbot
+ - clckwrks-plugin-mailinglist
+ - clckwrks-plugin-media
+ - clckwrks-plugin-page
+ - clckwrks-plugin-redirect
+ - clckwrks-theme-bootstrap
+ - clckwrks-theme-clckwrks
+ - clckwrks-theme-geo-bootstrap
+ - cless
+ - click-clack
+ - clifford
+ - clippings
+ - clocked
+ - cloud-haskell
+ - cloud-seeder
+ - cloudyfs
+ - clua
+ - ClustalParser
+ - clustertools
+ - clutterhs
+ - cmathml3
+ - CMCompare
+ - cmptype
+ - cmv
+ - cnc-spec-compiler
+ - Coadjute
+ - codec
+ - code-conjure
+ - codec-rpm
+ - codemonitor
+ - cognimeta-utils
+ - coinbase-exchange
+ - colada
+ - collapse-duplication
+ - collection-json
+ - collections-base-instances
+ - co-log-polysemy-formatting
+ - color-counter
+ - colorless-http-client
+ - colorless-scotty
+ - colour-space
+ - columbia
+ - comark
+ - Combinatorrent
+ - comic
+ - commsec-keyexchange
+ - comonad-random
+ - ComonadSheet
+ - compact-mutable
+ - complexity
+ - computational-algebra
+ - concraft
+ - concraft-hr
+ - concraft-pl
+ - concrete-haskell
+ - concrete-haskell-autogen
+ - condor
+ - Condor
+ - conductive-hsc3
+ - conductive-song
+ - conduit-vfs-zip
+ - confcrypt
+ - conferer-provider-dhall
+ - conferer-provider-yaml
+ - conferer-source-dhall
+ - conferer-source-yaml
+ - conffmt
+ - Configger
+ - configifier
+ - config-select
+ - configurator-ng
+ - constraint-manip
+ - constructible
+ - consumers
+ - container
+ - containers-accelerate
+ - continuum
+ - continuum-client
+ - control
+ - control-monad-attempt
+ - control-monad-exception-monadsfd
+ - Control-Monad-MultiPass
+ - conversions
+ - convert
+ - convertible-ascii
+ - convertible-text
+ - coordinate
+ - copilot
+ - copilot-c99
+ - copilot-cbmc
+ - copilot-language
+ - copilot-libraries
+ - copilot-theorem
+ - CoreFoundation
+ - coroutine-enumerator
+ - coroutine-iteratee
+ - couchdb-enumerator
+ - couch-simple
+ - CPBrainfuck
+ - CPL
+ - cprng-aes-effect
+ - cql-io-tinylog
+ - cqrs-example
+ - cqrs-memory
+ - cqrs-postgresql
+ - cqrs-sqlite3
+ - cqrs-test
+ - cqrs-testkit
+ - craft
+ - craftwerk-cairo
+ - craftwerk-gtk
+ - craze
+ - crf-chain1
+ - crf-chain1-constrained
+ - crf-chain2-generic
+ - crf-chain2-tiers
+ - criu-rpc
+ - crockford
+ - cron-compat
+ - cryptocipher
+ - crypto-conduit
+ - cryptoids
+ - cryptoids-class
+ - cryptol
+ - crystalfontz
+ - csg
+ - cspmchecker
+ - CSPM-cspm
+ - CSPM-Interpreter
+ - CSPM-ToProlog
+ - csv-enumerator
+ - ctpl
+ - cube
+ - cursedcsv
+ - cursor-fuzzy-time-gen
+ - cv-combinators
+ - cypher
+ - Dangerous
+ - dapi
+ - darcs-benchmark
+ - darcs-beta
+ - darcsden
+ - darcs-fastconvert
+ - DarcsHelpers
+ - darcswatch
+ - darkplaces-demo
+ - darkplaces-rcon-util
+ - dash-haskell
+ - data-accessor-monads-fd
+ - data-basic
+ - data-cycle
+ - datadog-tracing
+ - data-elf
+ - dataflow
+ - data-layer
+ - data-lens-fd
+ - data-lens-ixset
+ - data-lens-template
+ - data-object-json
+ - data-object-yaml
+ - data-result
+ - data-rtuple
+ - data-structure-inferrer
+ - date-conversions
+ - dbjava
+ - dbus-client
+ - ddate
+ - ddc-build
+ - ddc-core
+ - ddc-core-babel
+ - ddc-core-eval
+ - ddc-core-flow
+ - ddc-core-llvm
+ - ddc-core-salt
+ - ddc-core-simpl
+ - ddc-core-tetra
+ - ddc-driver
+ - ddci-core
+ - ddc-interface
+ - ddc-source-tetra
+ - ddc-tools
+ - ddc-war
+ - debug
+ - debug-trace-var
+ - decidable
+ - decimal-arithmetic
+ - dedukti
+ - deeplearning-hs
+ - deepzoom
+ - defargs
+ - DefendTheKing
+ - definitive-graphics
+ - deka-tests
+ - delaunay
+ - delicious
+ - delimited-text
+ - delimiter-separated
+ - delta
+ - delta-h
+ - dependent-state
+ - dephd
+ - dep-t-advice
+ - deptrack-devops
+ - deptrack-dot
+ - dequeue
+ - derive-IG
+ - detour-via-uom
+ - devtools
+ - dewdrop
+ - dfinity-radix-tree
+ - dhall-docs
+ - dhcp-lease-parser
+ - dia-functions
+ - diagrams-haddock
+ - diagrams-html5
+ - diagrams-pandoc
+ - diagrams-pgf
+ - diagrams-reflex
+ - diagrams-wx
+ - DifferenceLogic
+ - difference-monoid
+ - digestive-functors-hsp
+ - dingo-core
+ - dingo-example
+ - dingo-widgets
+ - diplomacy
+ - diplomacy-server
+ - dirfiles
+ - discogs-haskell
+ - discord-gateway
+ - discord-hs
+ - discord-register
+ - discord-rest
+ - DisTract
+ - distributed-process-async
+ - distributed-process-azure
+ - distributed-process-client-server
+ - distributed-process-ekg
+ - distributed-process-execution
+ - distributed-process-extras
+ - distributed-process-fsm
+ - distributed-process-lifted
+ - distributed-process-monad-control
+ - distributed-process-p2p
+ - distributed-process-platform
+ - distributed-process-registry
+ - distributed-process-simplelocalnet
+ - distributed-process-supervisor
+ - distributed-process-systest
+ - distributed-process-task
+ - distributed-process-tests
+ - distributed-process-zookeeper
+ - distribution-plot
+ - dixi
+ - dl-fedora
+ - dmenu-pkill
+ - dmenu-pmount
+ - dmenu-search
+ - DMuCheck
+ - DnaProteinAlignment
+ - doc-review
+ - DocTest
+ - doi
+ - DOM
+ - domain
+ - domain-core
+ - domain-optics
+ - dow
+ - download-media-content
+ - DP
+ - dph-examples
+ - dph-lifted-base
+ - dph-lifted-copy
+ - dph-lifted-vseg
+ - dph-prim-interface
+ - dph-prim-par
+ - dph-prim-seq
+ - DrHylo
+ - dropbox-sdk
+ - dropsolve
+ - DSH
+ - dsh-sql
+ - dsmc-tools
+ - DSTM
+ - dtd
+ - dumb-cas
+ - Dust
+ - Dust-tools
+ - Dust-tools-pcap
+ - dvda
+ - dynamic-cabal
+ - dynamic-plot
+ - dynobud
+ - DysFRP-Cairo
+ - DysFRP-Craftwerk
+ - eccrypto-ed25519-bindings
+ - ecdsa
+ - edenskel
+ - edentv
+ - edge
+ - edges
+ - editable
+ - EditTimeReport
+ - effective-aspects-mzv
+ - egison
+ - egison-pattern-src-haskell-mode
+ - egison-pattern-src-th-mode
+ - egison-quote
+ - egison-tutorial
+ - elerea-examples
+ - eliminators_0_8
+ - elliptic-curve
+ - elsa
+ - emacs-keys
+ - email
+ - emailparse
+ - embeddock
+ - embeddock-example
+ - embroidery
+ - engine-io-growler
+ - entangle
+ - EntrezHTTP
+ - enumerate
+ - enumerate-function
+ - enumerator-fd
+ - enumerator-tf
+ - ephemeral
+ - erf-native
+ - eros-client
+ - eros-http
+ - error-message
+ - errors-ext
+ - ersatz-toysat
+ - esotericbot
+ - EsounD
+ - estreps
+ - Etage-Graph
+ - EtaMOO
+ - Eternal10Seconds
+ - eternity
+ - eternity-timestamped
+ - ether
+ - Etherbunny
+ - ethereum-analyzer
+ - ethereum-analyzer-cli
+ - ethereum-analyzer-webui
+ - ethereum-client-haskell
+ - ethereum-merkle-patricia-db
+ - evdev-streamly
+ - eventful-postgresql
+ - eventful-sqlite
+ - event-monad
+ - EventSocket
+ - eventsource-geteventstore-store
+ - every-bit-counts
+ - exception-monads-fd
+ - exference
+ - expand
+ - expat-enumerator
+ - expiring-containers
+ - explicit-iomodes-bytestring
+ - explicit-iomodes-text
+ - explicit-sharing
+ - explore
+ - expressions-z3
+ - extemp
+ - extensible-data
+ - extract-dependencies
+ - extrapolate
+ - Facts
+ - factual-api
+ - FailureT
+ - fakedata-quickcheck
+ - fallingblocks
+ - falling-turnip
+ - family-tree
+ - fast-digits
+ - fastirc
+ - fault-tree
+ - fbrnch
+ - fcd
+ - FComp
+ - feature-flipper-postgres
+ - fedora-img-dl
+ - feed2lj
+ - feed2twitter
+ - feed-gipeda
+ - feed-translator
+ - fei-base
+ - fei-cocoapi
+ - fei-dataiter
+ - fei-datasets
+ - fei-examples
+ - fei-modelzoo
+ - fei-nn
+ - feldspar-compiler
+ - feldspar-language
+ - FermatsLastMargin
+ - festung
+ - ffmpeg-tutorials
+ - ficketed
+ - fields
+ - FieldTrip
+ - filepath-crypto
+ - filepather
+ - FilePather
+ - filepath-io-access
+ - filesystem-enumerator
+ - Finance-Treasury
+ - find-clumpiness
+ - findhttp
+ - FiniteMap
+ - firstify
+ - FirstOrderTheory
+ - fixed-point-vector
+ - fixed-point-vector-space
+ - fixhs
+ - fix-parser-simple
+ - flac-picture
+ - flashblast
+ - flatbuffers
+ - flexiwrap
+ - flexiwrap-smallcheck
+ - Flippi
+ - flite
+ - flowdock-api
+ - flower
+ - flowsim
+ - fltkhs-demos
+ - fltkhs-fluid-demos
+ - fltkhs-fluid-examples
+ - fltkhs-hello-world
+ - fltkhs-themes
+ - fluent-logger
+ - fluent-logger-conduit
+ - FM-SBLEX
+ - foldl-transduce-attoparsec
+ - follower
+ - foo
+ - Forestry
+ - formal
+ - FormalGrammars
+ - format
+ - format-status
+ - forml
+ - formlets
+ - formlets-hsp
+ - forth-hll
+ - fortran-src-extras
+ - foscam-directory
+ - foscam-sort
+ - Foster
+ - fp-ieee
+ - fplll
+ - fpnla-examples
+ - frame-markdown
+ - Frames-beam
+ - Frames-dsv
+ - Frank
+ - freekick2
+ - freelude
+ - freer-converse
+ - free-theorems-counterexamples
+ - free-theorems-seq
+ - free-theorems-seq-webui
+ - free-theorems-webui
+ - frpnow-gloss
+ - frpnow-gtk
+ - frpnow-gtk3
+ - frpnow-vty
+ - ftdi
+ - ftp-client-conduit
+ - FTPLine
+ - ftree
+ - ftshell
+ - funbot
+ - funbot-git-hook
+ - funcons-lambda-cbv-mp
+ - funcons-simple
+ - funcons-tools
+ - functional-arrow
+ - function-combine
+ - functor-combo
+ - funflow-nix
+ - funion
+ - funnyprint
+ - funsat
+ - fused-effects-squeal
+ - fwgl-glfw
+ - fwgl-javascript
+ - fxpak
+ - g2
+ - g2q
+ - gact
+ - galois-fft
+ - Gamgine
+ - gargoyle-postgresql-connect
+ - gbu
+ - gdax
+ - gdiff-ig
+ - GeBoP
+ - gedcom
+ - geek
+ - geek-server
+ - gelatin-freetype2
+ - gelatin-fruity
+ - gelatin-gl
+ - gelatin-sdl2
+ - gelatin-shaders
+ - Genbank
+ - Gene-CluEDO
+ - generics-mrsop-gdiff
+ - genesis
+ - genesis-test
+ - GenI
+ - geniconvert
+ - geni-gui
+ - geniserver
+ - geni-util
+ - GenSmsPdu
+ - GenussFold
+ - geodetic
+ - geolite-csv
+ - getemx
+ - ghc-imported-from
+ - ghc-instances
+ - ghci-pretty
+ - ghcjs-hplay
+ - ghc-mod
+ - ghc-tags-plugin
+ - ghc-vis
+ - ght
+ - gi-cairo-again
+ - gi-gsk
+ - gi-gstpbutils
+ - gi-gtk_4_0_4
+ - git-fmt
+ - git-gpush
+ - github-webhook-handler-snap
+ - gitlib-cross
+ - gitlib-s3
+ - git-object
+ - git-remote-ipfs
+ - givegif
+ - gladexml-accessor
+ - glazier
+ - glazier-pipes
+ - glazier-react
+ - glazier-react-examples
+ - glazier-react-widget
+ - GLFW-OGL
+ - GLFW-task
+ - global
+ - global-config
+ - glome-hs
+ - GlomeView
+ - gloss-devil
+ - gloss-examples
+ - gloss-sodium
+ - gmap
+ - gmndl
+ - gnome-desktop
+ - gnomevfs
+ - gnss-converters
+ - gnuidn
+ - goal-geometry
+ - goal-probability
+ - goal-simulation
+ - goat
+ - GoogleDirections
+ - google-drive
+ - google-mail-filters
+ - google-maps-geocoding
+ - googleplus
+ - GoogleSB
+ - google-static-maps
+ - GoogleTranslate
+ - gore-and-ash-actor
+ - gore-and-ash-async
+ - gore-and-ash-demo
+ - gore-and-ash-glfw
+ - gore-and-ash-lambdacube
+ - gore-and-ash-logging
+ - gore-and-ash-network
+ - gore-and-ash-sdl
+ - gore-and-ash-sync
+ - GPipe-Collada
+ - GPipe-Examples
+ - GPipe-GLFW
+ - GPipe-GLFW4
+ - GPipe-TextureLoad
+ - gps
+ - gps2htmlReport
+ - GPX
+ - grab-form
+ - graflog
+ - grammar-combinators
+ - GrammarProducts
+ - grapefruit-examples
+ - grapefruit-records
+ - grapefruit-ui
+ - grapefruit-ui-gtk
+ - GraphHammer
+ - GraphHammer-examples
+ - graphicsFormats
+ - graphicstools
+ - graphql-client
+ - graph-rewriting-cl
+ - graph-rewriting-gl
+ - graph-rewriting-lambdascope
+ - graph-rewriting-layout
+ - graph-rewriting-ski
+ - graph-rewriting-strategies
+ - graph-rewriting-trs
+ - graph-rewriting-ww
+ - graphtype
+ - graph-visit
+ - greencard-lib
+ - gridbounds
+ - gridland
+ - grid-proto
+ - GrowlNotify
+ - grpc-etcd-client
+ - grpc-haskell
+ - grpc-haskell-core
+ - gruff
+ - gruff-examples
+ - gscholar-rss
+ - gsl-random-fu
+ - gsmenu
+ - gstorable
+ - gtfs
+ - gtk2hs-cast-glade
+ - gtk2hs-cast-gnomevfs
+ - gtk2hs-cast-gtkglext
+ - gtk2hs-cast-gtksourceview2
+ - Gtk2hsGenerics
+ - GtkGLTV
+ - gtkimageview
+ - gtkrsync
+ - gtk-serialized-event
+ - guarded-rewriting
+ - guess-combinator
+ - GuiHaskell
+ - GuiTV
+ - habit
+ - hablo
+ - hablog
+ - Hach
+ - hack2-handler-happstack-server
+ - hack2-handler-mongrel2-http
+ - hack2-handler-snap-server
+ - hackage2twitter
+ - hackage-server
+ - hack-contrib
+ - hack-contrib-press
+ - hack-handler-epoll
+ - hack-handler-evhttp
+ - hack-handler-fastcgi
+ - hack-handler-hyena
+ - hack-handler-simpleserver
+ - hackmanager
+ - hack-middleware-cleanpath
+ - hack-middleware-clientsession
+ - hack-middleware-jsonp
+ - haddock
+ - haddock_2_23_1
+ - haddocset
+ - hadoop-tools
+ - haggis
+ - hails-bin
+ - hakyll-elm
+ - hakyll-ogmarkup
+ - hakyll-typescript
+ - halberd
+ - hall-symbols
+ - halma-gui
+ - halma-telegram-bot
+ - ham
+ - HaMinitel
+ - hamusic
+ - hans-pcap
+ - happlets-lib-gtk
+ - HAppS-Data
+ - happs-hsp
+ - happs-hsp-template
+ - HAppS-IxSet
+ - HAppS-Server
+ - HAppS-State
+ - happstack-auth
+ - happstack-authenticate
+ - happstack-contrib
+ - happstack-data
+ - happstack-dlg
+ - happstack-facebook
+ - happstack-fay
+ - happstack-helpers
+ - happstack-ixset
+ - happstack-jmacro
+ - happstack-plugins
+ - happstack-state
+ - happstack-yui
+ - happs-tutorial
+ - happybara-webkit
+ - haquil
+ - hArduino
+ - hardware-edsl
+ - HaRe
+ - harg
+ - hark
+ - harmony
+ - HarmTrace
+ - haroonga-httpd
+ - hascat
+ - hascat-lib
+ - hascat-setup
+ - hascat-system
+ - HasGP
+ - Hashell
+ - hashflare
+ - haskarrow
+ - haskdeep
+ - haskeem
+ - haskell-abci
+ - haskell-aliyun
+ - haskell-bitmex-client
+ - haskelldb-connect-hdbc
+ - haskelldb-connect-hdbc-catchio-mtl
+ - haskelldb-connect-hdbc-catchio-tf
+ - haskelldb-connect-hdbc-catchio-transformers
+ - haskelldb-connect-hdbc-lifted
+ - haskelldb-dynamic
+ - haskelldb-flat
+ - haskelldb-hdbc
+ - haskelldb-hdbc-mysql
+ - haskelldb-hdbc-odbc
+ - haskelldb-hdbc-postgresql
+ - haskelldb-hdbc-sqlite3
+ - haskelldb-hsql
+ - haskelldb-hsql-mysql
+ - haskelldb-hsql-odbc
+ - haskelldb-hsql-postgresql
+ - haskelldb-hsql-sqlite3
+ - haskelldb-th
+ - haskell-docs
+ - haskell-eigen-util
+ - haskell-ftp
+ - haskell-pdf-presenter
+ - haskell-platform-test
+ - haskell-reflect
+ - haskell-src-exts-observe
+ - haskell-token-utils
+ - haskell-tools-ast
+ - haskell-tools-ast-fromghc
+ - haskell-tools-ast-gen
+ - haskell-tools-ast-trf
+ - haskell-tools-backend-ghc
+ - haskell-tools-builtin-refactorings
+ - haskell-tools-cli
+ - haskell-tools-daemon
+ - haskell-tools-debug
+ - haskell-tools-demo
+ - haskell-tools-experimental-refactorings
+ - haskell-tools-prettyprint
+ - haskell-tools-refactor
+ - haskell-tools-rewrite
+ - haskell-tor
+ - haskelm
+ - haskey-mtl
+ - haskgame
+ - hask-home
+ - haskoin-bitcoind
+ - haskoin-core
+ - haskoin-crypto
+ - haskoin-node
+ - haskoin-protocol
+ - haskoin-script
+ - haskoin-store
+ - haskoin-store-data
+ - haskoin-wallet
+ - haskoon
+ - haskoon-httpspec
+ - haskoon-salvia
+ - haskore-realtime
+ - haskore-supercollider
+ - haskore-synthesizer
+ - HaskRel
+ - hasktorch
+ - hasktorch-ffi-thc
+ - hasktorch-indef
+ - hasktorch-signatures
+ - hasktorch-zoo
+ - haskus-utils-compat
+ - haskus-web
+ - haslo
+ - hasloGUI
+ - hasparql-client
+ - hasql-cursor-query
+ - hasql-postgres
+ - hasql-postgres-options
+ - hasql-queue
+ - hasql-th
+ - hastache-aeson
+ - haste-app
+ - haste-gapi
+ - haste-lib
+ - haste-markup
+ - haste-perch
+ - has-th
+ - Hate
+ - HaTeX-meta
+ - hatexmpp3
+ - HaTeX-qq
+ - HaVSA
+ - hawitter
+ - Hawk
+ - haxy
+ - Hayoo
+ - hback
+ - hbayes
+ - hbb
+ - hbcd
+ - hbf
+ - hcg-minus-cairo
+ - hcheat
+ - hcheckers
+ - hdbi
+ - hdbi-conduit
+ - hdbi-postgresql
+ - hdbi-sqlite
+ - hdbi-tests
+ - hdf
+ - hdiff
+ - hdirect
+ - hdocs
+ - hdph
+ - heart-app
+ - heatitup
+ - heavy-logger
+ - heavy-logger-amazon
+ - heavy-logger-instances
+ - heavy-log-shortcuts
+ - hecc
+ - hedgehog-checkers-lens
+ - hedgehog-fakedata
+ - hedgehog-gen-json
+ - Hedi
+ - hedis-pile
+ - heidi
+ - heist-aeson
+ - helics
+ - helics-wai
+ - helium
+ - hellage
+ - hellnet
+ - hemokit
+ - hen
+ - henet
+ - hepevt
+ - her-lexer-parsec
+ - hermit
+ - hermit-syb
+ - herringbone
+ - herringbone-embed
+ - herringbone-wai
+ - hesh
+ - hesql
+ - heterolist
+ - hevolisa
+ - hevolisa-dph
+ - hexpat-iteratee
+ - hfd
+ - hfiar
+ - hgalib
+ - HGamer3D-API
+ - HGamer3D-CAudio-Binding
+ - HGamer3D-OIS-Binding
+ - hgen
+ - hgeometry-svg
+ - hgithub
+ - hiccup
+ - hierarchical-spectral-clustering
+ - Hieroglyph
+ - HiggsSet
+ - highjson-swagger
+ - highjson-th
+ - himpy
+ - hinduce-classifier
+ - hinduce-classifier-decisiontree
+ - hinduce-examples
+ - hint-server
+ - hinvaders
+ - hinze-streams
+ - hipbot
+ - HipmunkPlayground
+ - Hipmunk-Utils
+ - hipsql-client
+ - hipsql-server
+ - hirt
+ - hist-pl
+ - hist-pl-dawg
+ - hist-pl-fusion
+ - hist-pl-lexicon
+ - hist-pl-lmf
+ - hit
+ - hit-graph
+ - HJScript
+ - hjsonschema
+ - hjugement-cli
+ - hlcm
+ - HLearn-algebra
+ - HLearn-approximation
+ - HLearn-classification
+ - HLearn-datastructures
+ - HLearn-distributions
+ - hledger-api
+ - hlrdb
+ - hls
+ - hly
+ - hmark
+ - hmeap
+ - hmeap-utils
+ - hmep
+ - hmm-lapack
+ - hmt
+ - hmt-diagrams
+ - HNM
+ - hnormalise
+ - hob
+ - Hoed
+ - hOff-display
+ - hogre
+ - hogre-examples
+ - Holumbus-Distribution
+ - Holumbus-MapReduce
+ - Holumbus-Searchengine
+ - Holumbus-Storage
+ - holy-project
+ - hommage
+ - HongoDB
+ - hood
+ - hoodie
+ - hoodle
+ - hoodle-builder
+ - hoodle-core
+ - hoodle-extra
+ - hoodle-parser
+ - hoodle-publish
+ - hoodle-render
+ - hoovie
+ - hoq
+ - hp2any-graph
+ - hp2any-manager
+ - hpaco
+ - hpaco-lib
+ - hpage
+ - hpaste
+ - hpc-tracer
+ - hPDB
+ - hPDB-examples
+ - hplayground
+ - HPlot
+ - HPong
+ - hpqtypes-extras
+ - hprotoc-fork
+ - hps
+ - hps-cairo
+ - hpython
+ - hquantlib
+ - hranker
+ - HRay
+ - hreader
+ - hreader-lens
+ - hreq-client
+ - hreq-conduit
+ - HROOT
+ - HROOT-core
+ - HROOT-graf
+ - HROOT-hist
+ - HROOT-io
+ - HROOT-math
+ - HROOT-tree
+ - hs2dot
+ - Hs2lib
+ - hsautogui
+ - hsbackup
+ - hsbencher-codespeed
+ - hsbencher-fusion
+ - hs-blake2
+ - hs-brotli
+ - hsc3-auditor
+ - hsc3-cairo
+ - hsc3-data
+ - hsc3-db
+ - hsc3-dot
+ - hsc3-forth
+ - hsc3-graphs
+ - hsc3-lang
+ - hsc3-lisp
+ - hsc3-plot
+ - hsc3-process
+ - hsc3-rec
+ - hsc3-server
+ - hsc3-sf-hsndfile
+ - hsc3-unsafe
+ - hsc3-utils
+ - hscassandra
+ - hscope
+ - hsdev
+ - Hsed
+ - hset
+ - hsfacter
+ - hs-ffmpeg
+ - hs-gen-iface
+ - HSGEP
+ - HSHHelpers
+ - hslogstash
+ - hsnock
+ - HSoundFile
+ - HsParrot
+ - hspec-expectations-pretty
+ - hspec-pg-transact
+ - hspec-setup
+ - hspec-shouldbe
+ - hspec-test-sandbox
+ - hspecVariant
+ - hs-pkpass
+ - hsprocess
+ - hsql-mysql
+ - hsql-odbc
+ - hsql-postgresql
+ - hsql-sqlite3
+ - hsqml-datamodel-vinyl
+ - hsqml-demo-morris
+ - hsqml-morris
+ - hsreadability
+ - hssqlppp-th
+ - hs-swisstable-hashtables-class
+ - hstar
+ - hstox
+ - hstradeking
+ - HStringTemplateHelpers
+ - hstzaar
+ - hsubconvert
+ - HsWebots
+ - hswip
+ - hsx-jmacro
+ - hsx-xhtml
+ - HTab
+ - hts
+ - http2-client-exe
+ - http2-client-grpc
+ - http-client-auth
+ - http-enumerator
+ - http-io-streams
+ - https-everywhere-rules
+ - https-everywhere-rules-raw
+ - httpspec
+ - hubris
+ - hugs2yc
+ - hulk
+ - hunit-gui
+ - hunp
+ - hunt-searchengine
+ - hunt-server
+ - hurdle
+ - husky
+ - huzzy
+ - hw-all
+ - hw-dsv
+ - hw-json
+ - hw-json-lens
+ - hw-json-simple-cursor
+ - hw-json-standard-cursor
+ - hw-kafka-avro
+ - hworker-ses
+ - hwormhole
+ - hws
+ - hw-simd-cli
+ - hwsl2-bytevector
+ - hwsl2-reducers
+ - hw-uri
+ - HXMPP
+ - hxmppc
+ - hxournal
+ - hxt-binary
+ - hxt-filter
+ - hxthelper
+ - hxweb
+ - hybrid
+ - Hydrogen
+ - hydrogen-cli
+ - hydrogen-cli-args
+ - hydrogen-data
+ - hydrogen-parsing
+ - hydrogen-prelude
+ - hydrogen-prelude-parsec
+ - hydrogen-syntax
+ - hydrogen-util
+ - hyena
+ - hylotab
+ - hyloutils
+ - hyperpublic
+ - ice40-prim
+ - ideas-math
+ - ideas-math-types
+ - ideas-statistics
+ - ide-backend
+ - ide-backend-common
+ - ide-backend-server
+ - ige-mac-integration
+ - ihaskell-rlangqq
+ - ihttp
+ - imap
+ - imbib
+ - imgurder
+ - imj-animation
+ - imj-base
+ - imj-game-hamazed
+ - imj-measure-stdout
+ - imm
+ - imparse
+ - imperative-edsl-vhdl
+ - importify
+ - imprevu-happstack
+ - improve
+ - INblobs
+ - inch
+ - incremental-computing
+ - incremental-maps
+ - increments
+ - indentation
+ - indentation-parsec
+ - indentation-trifecta
+ - indexation
+ - IndexedList
+ - indieweb-algorithms
+ - infernu
+ - InfixApplicative
+ - inline-java
+ - inspector-wrecker
+ - instant-aeson
+ - instant-bytes
+ - instant-deepseq
+ - instant-hashable
+ - instant-zipper
+ - instapaper-sender
+ - interpolatedstring-qq
+ - interpolatedstring-qq-mwotton
+ - introduction-test
+ - intset
+ - invertible-hlist
+ - ion
+ - IORefCAS
+ - ip
+ - ipatch
+ - ipc
+ - ipld-cid
+ - ipprint
+ - iptadmin
+ - irc-fun-bot
+ - irc-fun-client
+ - irc-fun-color
+ - irc-fun-messages
+ - iri
+ - ironforge
+ - isevaluated
+ - ismtp
+ - isobmff-builder
+ - isohunt
+ - iteratee-compress
+ - iteratee-mtl
+ - iteratee-parsec
+ - iteratee-stm
+ - iterio-server
+ - iter-stats
+ - ivor
+ - ivory-avr-atmega328p-registers
+ - ivory-backend-c
+ - ivory-bitdata
+ - ivory-eval
+ - ivory-examples
+ - ivory-hw
+ - ivory-opts
+ - ivory-quickcheck
+ - ivory-serialize
+ - ivory-stdlib
+ - ivy-web
+ - iyql
+ - j2hs
+ - jail
+ - java-bridge-extras
+ - java-character
+ - javaclass
+ - java-reflect
+ - javasf
+ - Javasf
+ - jmacro
+ - jmacro-rpc
+ - jmacro-rpc-happstack
+ - jmacro-rpc-snap
+ - jmonkey
+ - jobs-ui
+ - join
+ - jot
+ - JsContracts
+ - jsmw
+ - json2-hdbc
+ - json-ast-json-encoder
+ - json-autotype
+ - json-b
+ - JSONb
+ - JSON-Combinator
+ - JSON-Combinator-Examples
+ - json-enumerator
+ - JsonGrammar
+ - jsonifier
+ - json-incremental-decoder
+ - json-query
+ - jsons-to-schema
+ - json-syntax
+ - json-togo
+ - json-tokens
+ - jspath
+ - JunkDB-driver-gdbm
+ - JunkDB-driver-hashtables
+ - JuPyTer-notebook
+ - jvm
+ - jvm-batching
+ - jvm-streaming
+ - kafka-device
+ - kafka-device-glut
+ - kafka-device-joystick
+ - kafka-device-leap
+ - kafka-device-spacenav
+ - kafka-device-vrpn
+ - kaleidoscope
+ - kansas-lava
+ - kansas-lava-cores
+ - kansas-lava-papilio
+ - kansas-lava-shake
+ - karakuri
+ - katip-elasticsearch
+ - katip-rollbar
+ - keera-hails-i18n
+ - keera-hails-mvc-environment-gtk
+ - keera-hails-mvc-model-lightmodel
+ - keera-hails-mvc-model-protectedmodel
+ - keera-hails-mvc-solutions-gtk
+ - keera-hails-reactive-cbmvar
+ - keera-hails-reactive-fs
+ - keera-hails-reactive-gtk
+ - keera-hails-reactive-htmldom
+ - keera-hails-reactivelenses
+ - keera-hails-reactive-network
+ - keera-hails-reactive-polling
+ - keera-hails-reactive-wx
+ - keera-hails-reactive-yampa
+ - keera-posture
+ - kevin
+ - keysafe
+ - keyvaluehash
+ - keyword-args
+ - kicad-data
+ - KiCS
+ - KiCS-debugger
+ - KiCS-prophecy
+ - kif-parser
+ - kit
+ - kleene
+ - kmeans-par
+ - kmeans-vector
+ - knead
+ - knead-arithmetic
+ - knit-haskell
+ - knots
+ - korfu
+ - ks-test
+ - kubernetes-client
+ - kurita
+ - laborantin-hs
+ - labsat
+ - labyrinth
+ - labyrinth-server
+ - laika
+ - lambdabot-zulip
+ - lambda-calculator
+ - lambdacms-media
+ - lambdacube
+ - lambdacube-bullet
+ - lambdacube-compiler
+ - lambdacube-core
+ - lambdacube-edsl
+ - lambdacube-engine
+ - lambdacube-examples
+ - lambdacube-gl
+ - lambdacube-samples
+ - LambdaDesigner
+ - lambda-devs
+ - lambdaFeed
+ - LambdaINet
+ - lambdaLit
+ - lambda-options
+ - LambdaPrettyQuote
+ - LambdaShell
+ - lambdaya-bus
+ - lambdiff
+ - lang
+ - language-boogie
+ - language-eiffel
+ - language-kort
+ - language-Modula2
+ - language-ninja
+ - language-oberon
+ - language-python-colour
+ - language-qux
+ - language-spelling
+ - lapack
+ - lapack-carray
+ - lapack-comfort-array
+ - lat
+ - latex-formulae-hakyll
+ - latex-formulae-pandoc
+ - latex-svg-hakyll
+ - latex-svg-pandoc
+ - layered-state
+ - layers-game
+ - layouting
+ - lazy-hash
+ - lazy-hash-cache
+ - ldapply
+ - LDAPv3
+ - leaky
+ - lean
+ - legion
+ - legion-discovery
+ - legion-discovery-client
+ - legion-extra
+ - leksah
+ - leksah-server
+ - lens-utils
+ - levmar
+ - levmar-chart
+ - lex-applicative
+ - lgtk
+ - lha
+ - lhae
+ - lhe
+ - libconfig
+ - libcspm
+ - liblastfm
+ - liblawless
+ - liblinear-enumerator
+ - libmolude
+ - libraft
+ - librato
+ - libssh2-conduit
+ - libxml-enumerator
+ - lifetimes
+ - lifted-base-tf
+ - lightning-haskell
+ - lightstep-haskell
+ - lighttpd-conf
+ - lighttpd-conf-qq
+ - linear-circuit
+ - linearmap-category
+ - linearscan-hoopl
+ - LinearSplit
+ - LinkChecker
+ - linkchk
+ - linkcore
+ - linux-ptrace
+ - lio-eci11
+ - lion
+ - liquid-base
+ - liquid-bytestring
+ - liquid-containers
+ - liquid-ghc-prim
+ - liquidhaskell-cabal-demo
+ - liquid-parallel
+ - liquid-platform
+ - liquid-prelude
+ - liquid-vector
+ - listenbrainz-client
+ - list-t-attoparsec
+ - list-t-html-parser
+ - list-witnesses
+ - live-sequencer
+ - llvm
+ - llvm-analysis
+ - llvm-base-types
+ - llvm-base-util
+ - llvm-data-interop
+ - llvm-dsl
+ - llvm-extension
+ - llvm-extra
+ - llvm-general
+ - llvm-general-quote
+ - llvm-pretty-bc-parser
+ - llvm-tf
+ - llvm-tools
+ - lmonad-yesod
+ - localize
+ - local-search
+ - locked-poll
+ - log
+ - logging-effect-extra
+ - logic-classes
+ - LogicGrowsOnTrees
+ - LogicGrowsOnTrees-MPI
+ - LogicGrowsOnTrees-network
+ - LogicGrowsOnTrees-processes
+ - log-postgres
+ - log-utils
+ - lojban
+ - lojysamban
+ - lol-apps
+ - lol-benches
+ - lol-cpp
+ - loli
+ - lol-repa
+ - lol-tests
+ - lol-typing
+ - longshot
+ - loop-effin
+ - lorentz
+ - lostcities
+ - loup
+ - LslPlus
+ - ls-usb
+ - lsystem
+ - lti13
+ - luachunk
+ - lucid-colonnade
+ - lucienne
+ - Lucu
+ - luhn
+ - lui
+ - luminance-samples
+ - lvish
+ - Lykah
+ - lz4-conduit
+ - lzma-enumerator
+ - macbeth-lib
+ - machines-amazonka
+ - macosx-make-standalone
+ - magicbane
+ - magico
+ - magic-wormhole
+ - mahoro
+ - maid
+ - mailgun
+ - mail-pool
+ - majordomo
+ - majority
+ - manatee
+ - manatee-anything
+ - manatee-core
+ - manatee-curl
+ - manatee-editor
+ - manatee-filemanager
+ - manatee-imageviewer
+ - manatee-ircclient
+ - manatee-mplayer
+ - manatee-pdfviewer
+ - manatee-processmanager
+ - manatee-template
+ - manatee-terminal
+ - manatee-welcome
+ - manifold-random
+ - manifolds
+ - marionetta
+ - markdown2svg
+ - markdown-pap
+ - markov-processes
+ - markup
+ - marmalade-upload
+ - marquise
+ - marvin
+ - masakazu-bot
+ - matchers
+ - mathblog
+ - mathlink
+ - math-programming-glpk
+ - math-programming-tests
+ - matsuri
+ - maxent
+ - maxent-learner-hw-gui
+ - maxsharing
+ - MaybeT-transformers
+ - MC-Fold-DP
+ - mcmc
+ - mcmc-samplers
+ - mDNSResponder-client
+ - mealy
+ - mediabus-fdk-aac
+ - mediabus-rtp
+ - mellon-gpio
+ - mellon-web
+ - memcache-conduit
+ - mergeful-persistent
+ - mergeless-persistent
+ - merkle-patricia-db
+ - MetaObject
+ - meta-par-accelerate
+ - metaplug
+ - metar
+ - metar-http
+ - Metrics
+ - metronome
+ - MFlow
+ - Mhailist
+ - Michelangelo
+ - microformats2-parser
+ - microformats2-types
+ - micro-gateway
+ - MicrosoftTranslator
+ - midimory
+ - mighttpd
+ - minecraft-data
+ - minesweeper
+ - mini-egison
+ - miniforth
+ - minilight-lua
+ - minimung
+ - minioperational
+ - MIP-glpk
+ - miss
+ - MissingPy
+ - missing-py2
+ - miss-porcelain
+ - mixed-strategies
+ - mkbndl
+ - mkcabal
+ - mlist
+ - mmark-cli
+ - mmark-ext
+ - mmtl-base
+ - moan
+ - modify-fasta
+ - modsplit
+ - modularity
+ - modular-prelude-classy
+ - modulo
+ - mole
+ - MonadCatchIO-mtl
+ - MonadCatchIO-mtl-foreign
+ - MonadCatchIO-transformers-foreign
+ - monad-exception
+ - monadiccp-gecode
+ - MonadLab
+ - monad-state
+ - monad-stlike-stm
+ - monarch
+ - Monaris
+ - Monatron-IO
+ - monetdb-mapi
+ - mongrel2-handler
+ - monky
+ - Monocle
+ - monte-carlo
+ - moo
+ - moo-nad
+ - morley
+ - morloc
+ - morphisms-functors-inventory
+ - mosaico-lib
+ - motor-diagrams
+ - mp
+ - mp3decoder
+ - mpdmate
+ - mprelude
+ - mpretty
+ - mprover
+ - mps
+ - mptcp-pm
+ - msgpack-aeson
+ - msgpack-idl
+ - msgpack-rpc
+ - msgpack-rpc-conduit
+ - MSQueue
+ - mtgoxapi
+ - MuCheck-Hspec
+ - MuCheck-HUnit
+ - MuCheck-QuickCheck
+ - MuCheck-SmallCheck
+ - mu-grpc-client
+ - mu-grpc-server
+ - multibase
+ - multi-cabal
+ - multifocal
+ - multihash-serialise
+ - multilinear-io
+ - multiplicity
+ - multirec-alt-deriver
+ - multirec-binary
+ - multisetrewrite
+ - murder
+ - murmurhash3
+ - musicbrainz-email
+ - music-graphics
+ - music-parts
+ - music-pitch
+ - music-preludes
+ - music-score
+ - music-sibelius
+ - music-suite
+ - musicxml2
+ - mutable-iter
+ - MutationOrder
+ - mute-unmute
+ - mu-tracing
+ - mvclient
+ - mvc-updates
+ - mxnet-dataiter
+ - mxnet-examples
+ - mxnet-nn
+ - mysnapsession-example
+ - mysql-haskell-openssl
+ - mysql-simple-typed
+ - myTestlll
+ - mywatch
+ - n2o-web
+ - nakadi-client
+ - nanovg-simple
+ - NaperianNetCDF
+ - nats-queue
+ - natural-number
+ - NearContextAlgebra
+ - nemesis-titan
+ - nerf
+ - nero-wai
+ - nero-warp
+ - nested-routes
+ - netcore
+ - netlines
+ - net-spider-cli
+ - net-spider-pangraph
+ - net-spider-rpl
+ - net-spider-rpl-cli
+ - netstring-enumerator
+ - nettle-frp
+ - nettle-netkit
+ - nettle-openflow
+ - network-anonymous-i2p
+ - network-anonymous-tor
+ - network-connection
+ - network-enumerator
+ - network-hans
+ - network-interfacerequest
+ - network-messagepack-rpc-websocket
+ - network-minihttp
+ - network-netpacket
+ - network-pgi
+ - network-protocol-xmpp
+ - network-rpca
+ - network-stream
+ - network-topic-models
+ - network-websocket
+ - newsletter-mailgun
+ - newsynth
+ - ngrams-loader
+ - ngx-export-tools-extra
+ - nikepub
+ - Ninjas
+ - nirum
+ - nlp-scores-scripts
+ - Nomyx
+ - nomyx-api
+ - nomyx-core
+ - Nomyx-Core
+ - nomyx-language
+ - Nomyx-Language
+ - nomyx-library
+ - Nomyx-Rules
+ - nomyx-server
+ - Nomyx-Web
+ - NonEmptyList
+ - NoSlow
+ - notmuch-haskell
+ - notmuch-web
+ - nri-prelude_0_6_0_1
+ - numerical
+ - numeric-ode
+ - numhask-hedgehog
+ - numhask-histogram
+ - numhask-range
+ - numhask-test
+ - Nussinov78
+ - NXT
+ - nymphaea
+ - obd
+ - obdd
+ - oberon0
+ - obj
+ - objectid
+ - ochan
+ - octane
+ - octohat
+ - octopus
+ - oculus
+ - odd-jobs
+ - off-simple
+ - ohloh-hs
+ - ois-input-manager
+ - olwrapper
+ - one-liner_2_0
+ - online
+ - online-csv
+ - OnRmt
+ - open-adt-tutorial
+ - OpenAFP-Utils
+ - OpenGLCheck
+ - openpgp-crypto-api
+ - OpenSCAD
+ - openssh-github-keys
+ - opentracing-jaeger
+ - opentracing-zipkin-v1
+ - open-union
+ - OpenVG
+ - optima-for-hasql
+ - optimal-blocks
+ - optimusprime
+ - orchid
+ - orchid-demo
+ - order-maintenance
+ - org-mode-lucid
+ - OSM
+ - osm-download
+ - otp-authenticator
+ - padKONTROL
+ - PageIO
+ - pairing
+ - panda
+ - pandoc-japanese-filters
+ - pan-os-syslog
+ - papa
+ - papa-base
+ - papa-base-implement
+ - papa-export
+ - papa-implement
+ - papa-semigroupoids
+ - paprika
+ - Paraiso
+ - Parallel-Arrows-Eden
+ - parco-attoparsec
+ - parconc-examples
+ - parco-parsec
+ - parquet-hs
+ - parse-help
+ - parsestar
+ - partial-lens
+ - passman-cli
+ - patch-image
+ - patterns
+ - pcap-enumerator
+ - pcapng
+ - pcf
+ - pcf-font-embed
+ - PCLT-DB
+ - pdf-slave
+ - peakachu
+ - pec
+ - pell
+ - penny
+ - penny-bin
+ - penny-lib
+ - penrose
+ - peparser
+ - perdure
+ - perf-analysis
+ - perfecthash
+ - periodic-client
+ - periodic-client-exe
+ - periodic-server
+ - perm
+ - PermuteEffects
+ - persistent-audit
+ - persistent-hssqlppp
+ - persistent-map
+ - persona-idp
+ - peyotls
+ - peyotls-codec
+ - pgsql-simple
+ - pg-transact
+ - phonetic-languages-examples
+ - phonetic-languages-simplified-lists-examples
+ - phooey
+ - photoname
+ - pianola
+ - pier
+ - ping
+ - pinpon
+ - pipe-enumerator
+ - pipes-attoparsec-streaming
+ - pipes-brotli
+ - pipes-cacophony
+ - pipes-cereal-plus
+ - pipes-conduit
+ - pipes-courier
+ - pipes-extra
+ - pipes-files
+ - pipes-illumina
+ - pipes-key-value-csv
+ - pipes-p2p
+ - pipes-p2p-examples
+ - pisigma
+ - pitchtrack
+ - pkgtreediff
+ - planet-mitchell
+ - plocketed
+ - ploterific
+ - Plot-ho-matic
+ - PlslTools
+ - png-file
+ - pngload
+ - pocket-dns
+ - pointless-lenses
+ - pointless-rewrite
+ - point-octree
+ - poke
+ - polh-lexicon
+ - polydata
+ - polysemy-extra
+ - polysemy-fskvstore
+ - polysemy-kvstore-jsonfile
+ - polysemy-log-co
+ - polysemy-methodology
+ - polysemy-methodology-composite
+ - polysemy-optics
+ - polysemy-path
+ - polysemy-RandomFu
+ - polysemy-vinyl
+ - polyseq
+ - polytypeable-utils
+ - pomodoro
+ - pontarius-mediaserver
+ - popenhs
+ - porcupine-core
+ - porcupine-http
+ - porcupine-s3
+ - ports
+ - poseidon
+ - poseidon-postgis
+ - postgresql-query
+ - postgresql-simple-queue
+ - postgresql-simple-typed
+ - postgresql-tx-query
+ - postgresql-tx-squeal
+ - postgresql-tx-squeal-compat-simple
+ - postmark
+ - potoki
+ - potoki-cereal
+ - potoki-conduit
+ - potoki-hasql
+ - potoki-zlib
+ - powerqueue-sqs
+ - pqueue-mtl
+ - practice-room
+ - prednote-test
+ - pred-set
+ - pred-trie
+ - presto-hdbc
+ - preview
+ - primula-board
+ - primula-bot
+ - Printf-TH
+ - ProbabilityMonads
+ - proc
+ - process-iterio
+ - process-progress
+ - process-qq
+ - process-streaming
+ - procrastinating-structure
+ - producer
+ - prof2dot
+ - progressbar
+ - project-m36
+ - prologue
+ - prolude
+ - prometheus-effect
+ - propane
+ - proplang
+ - prosidyc
+ - proteome
+ - proto3-suite
+ - protobuf-native
+ - protocol-buffers-descriptor-fork
+ - proto-lens-descriptors
+ - proton
+ - psc-ide
+ - puffytools
+ - Pugs
+ - pugs-compat
+ - pugs-hsregex
+ - punkt
+ - Pup-Events
+ - Pup-Events-Demo
+ - puppetresources
+ - pure-cdb
+ - pure-priority-queue-tests
+ - purescript
+ - purescript-iso
+ - purescript-tsd-gen
+ - push-notify
+ - push-notify-apn
+ - push-notify-ccs
+ - push-notify-general
+ - puzzle-draw-cmdline
+ - pvd
+ - qd-vec
+ - qhs
+ - qr-repa
+ - quantum-random
+ - Quelea
+ - queryparser
+ - queryparser-demo
+ - queryparser-hive
+ - queryparser-presto
+ - queryparser-vertica
+ - questioner
+ - queuelike
+ - quickbench
+ - quickcheck-combinators
+ - quickcheck-poly
+ - quickcheck-regex
+ - quickcheck-relaxng
+ - quickcheck-state-machine
+ - quickcheck-state-machine-distributed
+ - quicktest
+ - quipper
+ - quipper-algorithms
+ - quipper-all
+ - quipper-cabal
+ - quipper-demos
+ - quipper-language
+ - quipper-libraries
+ - quipper-rendering
+ - quipper-tools
+ - quiver-binary
+ - quiver-bytestring
+ - quiver-cell
+ - quiver-csv
+ - quiver-enumerator
+ - quiver-groups
+ - quiver-http
+ - quiver-instances
+ - quiver-interleave
+ - quiver-sort
+ - qux
+ - rail-compiler-editor
+ - rails-session
+ - rainbow-tests
+ - raketka
+ - rallod
+ - random-effin
+ - random-hypergeometric
+ - range-space
+ - Ranka
+ - rasa
+ - rasa-example-config
+ - rasa-ext-bufs
+ - rasa-ext-cmd
+ - rasa-ext-cursors
+ - rasa-ext-files
+ - rasa-ext-logger
+ - rasa-ext-slate
+ - rasa-ext-status-bar
+ - rasa-ext-style
+ - rasa-ext-views
+ - rasa-ext-vim
+ - rating-chgk-info
+ - raw-feldspar
+ - rawr
+ - razom-text-util
+ - rbr
+ - rc
+ - rdioh
+ - react-flux-servant
+ - reactive
+ - reactive-banana-sdl
+ - reactive-banana-wx
+ - reactive-fieldtrip
+ - reactive-glut
+ - reactor
+ - readline-statevar
+ - readpyc
+ - reanimate
+ - record-aeson
+ - record-gl
+ - record-preprocessor
+ - records-th
+ - record-syntax
+ - reddit
+ - redHandlers
+ - reduce-equations
+ - refh
+ - reflex-animation
+ - reflex-backend-socket
+ - reflex-backend-wai
+ - reflex-dom-colonnade
+ - reflex-ghci
+ - reflex-gloss-scene
+ - reflex-process
+ - refurb
+ - reg-alloc-graph-color
+ - regex-deriv
+ - regex-genex
+ - regex-pcre-text
+ - regex-pderiv
+ - regexp-tries
+ - regex-xmlschema
+ - regional-pointers
+ - regions-monadsfd
+ - regions-monadstf
+ - regions-mtl
+ - registry-hedgehog
+ - regular-extras
+ - regular-web
+ - regular-xmlpickler
+ - reheat
+ - relative-date
+ - remote-json
+ - remote-json-client
+ - remote-json-server
+ - remotion
+ - repa-array
+ - repa-convert
+ - repa-examples
+ - repa-flow
+ - repa-plugin
+ - repa-stream
+ - repa-v4l2
+ - replicant
+ - repr
+ - representable-tries
+ - req-oauth2
+ - resistor-cube
+ - resource-pool-catchio
+ - resource-simple
+ - respond
+ - rest-client
+ - rest-core
+ - rest-example
+ - restful-snap
+ - rest-gen
+ - rest-happstack
+ - RESTng
+ - restricted-workers
+ - rest-snap
+ - rest-stringmap
+ - rest-types
+ - rest-wai
+ - rethinkdb-model
+ - rewrite
+ - rewriting
+ - rezoom
+ - rfc
+ - rfc-env
+ - rfc-http-client
+ - rfc-psql
+ - rfc-redis
+ - rfc-servant
+ - rhythm-game-tutorial
+ - rib
+ - ribosome-root
+ - ribosome-test
+ - ridley-extras
+ - rio-process-pool
+ - riot
+ - ripple
+ - risc-v
+ - rivet
+ - Rlang-QQ
+ - rlwe-challenges
+ - rmonad
+ - RMP
+ - RNAdesign
+ - RNAdraw
+ - RNAFold
+ - RNAFoldProgs
+ - RNAlien
+ - RNAwolf
+ - rncryptor
+ - rob
+ - robot
+ - roc-cluster-demo
+ - rock
+ - roguestar-engine
+ - roguestar-gl
+ - roguestar-glut
+ - rollbar-cli
+ - rollbar-wai
+ - rollbar-yesod
+ - RollingDirectory
+ - ron-schema
+ - ron-storage
+ - rose-trie
+ - roshask
+ - rosmsg-bin
+ - rounded-hw
+ - roundtrip-xml
+ - route-generator
+ - route-planning
+ - rpc
+ - rpf
+ - rsagl
+ - rsagl-frp
+ - rsagl-math
+ - rtcm
+ - ruler
+ - ruler-core
+ - runtime-arbitrary
+ - S3
+ - safe-coloured-text-layout-gen
+ - safe-numeric
+ - safer-file-handles
+ - safer-file-handles-bytestring
+ - safer-file-handles-text
+ - sai-shape-syb
+ - sak
+ - saltine-quickcheck
+ - salvia
+ - salvia-demo
+ - salvia-extras
+ - salvia-sessions
+ - salvia-websocket
+ - samtools
+ - samtools-conduit
+ - samtools-enumerator
+ - samtools-iteratee
+ - sarsi
+ - sasl
+ - satchmo-backends
+ - satchmo-examples
+ - satchmo-funsat
+ - satchmo-minisat
+ - satchmo-toysat
+ - sat-micro-hs
+ - SBench
+ - sc2hs
+ - sc2-lowlevel
+ - sc2-support
+ - sc3-rdu
+ - scalable-server
+ - SCalendar
+ - scalpel-search
+ - scalp-webhooks
+ - scan-vector-machine
+ - schema
+ - schematic
+ - scholdoc
+ - scholdoc-citeproc
+ - scholdoc-texmath
+ - scientific-notation
+ - SciFlow
+ - SciFlow-drmaa
+ - scion
+ - scion-browser
+ - scope
+ - scope-cairo
+ - scotty-hastache
+ - scp-streams
+ - scrabble-bot
+ - scrapbook
+ - SCRIPTWriter
+ - Scurry
+ - sde-solver
+ - seakale-postgresql
+ - seakale-tests
+ - secrm
+ - sednaDBXML
+ - seitz-symbol
+ - SelectSequencesFromMSA
+ - selenium-server
+ - self-extract
+ - semi-iso
+ - semiring
+ - semiring-num
+ - sensenet
+ - sentence-jp
+ - seonbi
+ - seqaid
+ - seqloc
+ - seqloc-datafiles
+ - sequor
+ - serpentine
+ - serv
+ - servant-auth-token
+ - servant-auth-token-acid
+ - servant-auth-token-leveldb
+ - servant-auth-token-persistent
+ - servant-auth-token-rocksdb
+ - servant-auth-wordpress
+ - servant-cli
+ - servant-client-namedargs
+ - servant-csharp
+ - servant-db-postgresql
+ - servant-ede
+ - servant-event-stream
+ - servant-examples
+ - servant-http2-client
+ - servant-matrix-param
+ - servant-polysemy
+ - servant-postgresql
+ - servant-server-namedargs
+ - servant-snap
+ - servant-streaming-client
+ - servant-streaming-docs
+ - servant-streaming-server
+ - servant-swagger-tags
+ - servant-waargonaut
+ - servant-zeppelin-client
+ - servant-zeppelin-server
+ - servant-zeppelin-swagger
+ - serv-wai
+ - sessiontypes-distributed
+ - setdown
+ - s-expression
+ - SFML-control
+ - SFont
+ - SGdemo
+ - sgf
+ - sgrep
+ - sha1
+ - shake-minify-css
+ - shaker
+ - shapefile
+ - shapely-data
+ - shelduck
+ - Shellac-compatline
+ - Shellac-editline
+ - Shellac-haskeline
+ - Shellac-readline
+ - shellmate-extras
+ - shine-varying
+ - ShortestPathProblems
+ - showdown
+ - Shpadoinkle-backend-pardiff
+ - Shpadoinkle-backend-static
+ - Shpadoinkle-developer-tools
+ - Shpadoinkle-disembodied
+ - Shpadoinkle-examples
+ - Shpadoinkle-html
+ - Shpadoinkle-router
+ - Shpadoinkle-template
+ - Shpadoinkle-widgets
+ - shpider
+ - shuffle
+ - sibe
+ - si-clock
+ - sigma-ij
+ - signable
+ - signals
+ - signature
+ - signify-hs
+ - silvi
+ - simgi
+ - simple-c-value
+ - simple-firewire
+ - SimpleGL
+ - simpleirc-lens
+ - SimpleLog
+ - simple-nix
+ - simple-pascal
+ - SimpleServer
+ - simseq
+ - singleton-nats_0_4_6
+ - singletons-base
+ - siphon
+ - siren-json
+ - sirkel
+ - skeleton
+ - skeletons
+ - skylark-client
+ - slidemews
+ - slip32
+ - small-bytearray-builder
+ - smallstring
+ - smartword
+ - smcdel
+ - smith
+ - smith-cli
+ - smith-client
+ - Smooth
+ - smtlib2-debug
+ - smtlib2-pipe
+ - smtlib2-quickcheck
+ - smtlib2-timing
+ - smtp2mta
+ - snap-auth-cli
+ - snap-elm
+ - snap-extras
+ - snaplet-actionlog
+ - snaplet-auth-acid
+ - snaplet-coffee
+ - snaplet-hasql
+ - snaplet-haxl
+ - snaplet-hdbc
+ - snaplet-lss
+ - snaplet-mandrill
+ - snaplet-mongoDB
+ - snaplet-mysql-simple
+ - snaplet-oauth
+ - snaplet-postmark
+ - snaplet-recaptcha
+ - snaplet-redson
+ - snaplet-rest
+ - snaplet-riak
+ - snaplet-sedna
+ - snaplet-sqlite-simple-jwt-auth
+ - snaplet-stripe
+ - snaplet-tasks
+ - snaplet-wordpress
+ - snappy-iteratee
+ - snap-utils
+ - sndfile-enumerators
+ - sneathlane-haste
+ - snm
+ - snmp
+ - snowflake-core
+ - snowflake-server
+ - snow-white
+ - Snusmumrik
+ - SoccerFun
+ - SoccerFunGL
+ - sock2stream
+ - sockets
+ - solga-swagger
+ - solr
+ - souffle-dsl
+ - sounddelay
+ - soundgen
+ - source-code-server
+ - SourceGraph
+ - sparkle
+ - sparrow
+ - sparsebit
+ - sparser
+ - spata
+ - specialize-th
+ - species
+ - spectral-clustering
+ - speculation-transformers
+ - speechmatics
+ - spelling-suggest
+ - sphero
+ - sphinx-cli
+ - spice
+ - SpinCounter
+ - spline3
+ - splines
+ - Spock-auth
+ - Spock-lucid
+ - Spock-worker
+ - sprinkles
+ - sproxy
+ - sproxy2
+ - sproxy-web
+ - sqlite-simple-typed
+ - sql-simple-mysql
+ - sql-simple-pool
+ - sql-simple-postgresql
+ - sql-simple-sqlite
+ - sr-extra
+ - sscgi
+ - sshd-lint
+ - sssp
+ - sstable
+ - stable-tree
+ - stackage
+ - stackage2nix
+ - stackage-build-plan
+ - stackage-cabal
+ - stackage-query
+ - stackage-sandbox
+ - stackage-setup
+ - stackage-upload
+ - stack-hpc-coveralls
+ - stack-network
+ - stack-run-auto
+ - starrover2
+ - stateful-mtl
+ - static-closure
+ - statsd-client
+ - statsdi
+ - STLinkUSB
+ - STM32-Zombie
+ - stmcontrol
+ - StockholmAlignment
+ - storablevector-streamfusion
+ - Strafunski-Sdf2Haskell
+ - stratux
+ - stratux-demo
+ - stratux-http
+ - stratux-websockets
+ - streaming-base64
+ - streaming-brotli
+ - streaming-concurrency
+ - streaming-fft
+ - streaming-process
+ - streaming-sort
+ - strelka
+ - strict-data
+ - string-typelits
+ - stripe-haskell
+ - stripe-http-client
+ - stripe-scotty
+ - structural-induction
+ - structured-mongoDB
+ - stunts
+ - stutter
+ - subhask
+ - substring-parser
+ - summoner-tui
+ - sump
+ - sunroof-examples
+ - sunroof-server
+ - supercollider-ht
+ - supercollider-midi
+ - superconstraints
+ - sv
+ - sv-cassava
+ - svg2q
+ - SVG2Q
+ - svgone
+ - sv-svfactor
+ - swapper
+ - swearjure
+ - sweet-egison
+ - switch
+ - sylvia
+ - symantic-atom
+ - symantic-lib
+ - symbiote
+ - symmetry-operations-symbols
+ - sym-plot
+ - syncthing-hs
+ - syntax
+ - syntax-attoparsec
+ - syntax-example
+ - syntax-example-json
+ - SyntaxMacros
+ - syntaxnet-haskell
+ - syntax-pretty
+ - syntax-printer
+ - synthesizer-llvm
+ - systemstats
+ - t3-client
+ - ta
+ - tagged-list
+ - tagged-th
+ - tagsoup-navigate
+ - tagstew
+ - tag-stream
+ - tal
+ - tamarin-prover
+ - tamarin-prover-term
+ - tamarin-prover-theory
+ - target
+ - task
+ - task-distribution
+ - tasty-bdd
+ - tasty-groundhog-converters
+ - tasty-integrate
+ - tasty-jenkins-xml
+ - tasty-laws
+ - tasty-lens
+ - tateti-tateti
+ - Taxonomy
+ - TaxonomyTools
+ - tbox
+ - tccli
+ - tdd-util
+ - tdlib
+ - tdlib-gen
+ - tdlib-types
+ - TeaHS
+ - techlab
+ - telegram-bot
+ - telegram-raw-api
+ - telegram-types
+ - tensorflow-core-ops
+ - tensorflow-logging
+ - tensorflow-ops
+ - terminal-text
+ - terrahs
+ - testbench
+ - test-framework-sandbox
+ - test-sandbox-compose
+ - test-sandbox-hunit
+ - test-sandbox-quickcheck
+ - test-simple
+ - TeX-my-math
+ - textmatetags
+ - text-plus
+ - text-trie
+ - text-xml-generic
+ - th-alpha
+ - th-context
+ - theatre
+ - theoremquest-client
+ - thimk
+ - th-instances
+ - th-typegraph
+ - thumbnail-polish
+ - tickle
+ - tic-tac-toe
+ - tidal-serial
+ - tighttp
+ - timberc
+ - time-exts
+ - time-http
+ - time-io-access
+ - timeprint
+ - time-warp
+ - timezone-unix
+ - tinyMesh
+ - tip-haskell-frontend
+ - tip-lib
+ - titan
+ - tls-extra
+ - tn
+ - toboggan
+ - todos
+ - toktok
+ - too-many-cells
+ - top
+ - topkata
+ - to-string-instances
+ - total-map
+ - toxcore
+ - toxcore-c
+ - toysolver
+ - tpar
+ - tpb
+ - trajectory
+ - transf
+ - transfer-db
+ - transformations
+ - transformers-convert
+ - transient-universe-tls
+ - trasa
+ - trasa-client
+ - trasa-extra
+ - trasa-form
+ - trasa-reflex
+ - trasa-server
+ - trasa-th
+ - TreeCounter
+ - treemap-html-tools
+ - treersec
+ - Treiber
+ - trek-app
+ - trek-db
+ - triangulation
+ - TrieMap
+ - tries
+ - trimpolya
+ - truelevel
+ - trurl
+ - tsession-happstack
+ - tsweb
+ - tuntap-simple
+ - tup-functor
+ - tuple-hlist
+ - tuple-morph
+ - tuple-ops
+ - turingMachine
+ - twentefp-eventloop-graphics
+ - twentefp-eventloop-trees
+ - twentefp-graphs
+ - twentefp-rosetree
+ - twentefp-trees
+ - twentyseven
+ - twidge
+ - twilight-stm
+ - twill
+ - twitter
+ - twitter-enumerator
+ - type-assertions
+ - type-cache
+ - type-cereal
+ - TypeClass
+ - type-combinators-quote
+ - type-combinators-singletons
+ - typed-encoding-encoding
+ - type-digits
+ - typed-spreadsheet
+ - typed-streams
+ - TypeIlluminator
+ - typelevel
+ - typelevel-rewrite-rules
+ - type-ord
+ - type-ord-spine-cereal
+ - typescript-docs
+ - type-sets
+ - type-structure
+ - type-sub-th
+ - typson-beam
+ - typson-esqueleto
+ - typson-selda
+ - u2f
+ - uber
+ - ucam-webauth
+ - uhc-light
+ - uhc-util
+ - UMM
+ - unagi-bloomfilter
+ - unbound
+ - unfoldable-restricted
+ - unicode-normalization
+ - uni-events
+ - uniformBase
+ - uniform-io
+ - uni-graphs
+ - uni-htk
+ - uni-posixutil
+ - uniqueness-periods-vector-examples
+ - uni-reactor
+ - uni-uDrawGraph
+ - universe-th
+ - unix-fcntl
+ - unix-simple
+ - unpacked-maybe-numeric
+ - unpacked-these
+ - unpacked-validation
+ - unparse-attoparsec
+ - unscramble
+ - up
+ - urbit-airlock
+ - urbit-api
+ - urbit-hob
+ - ureader
+ - urembed
+ - uri-enumerator
+ - uri-enumerator-file
+ - url-bytes
+ - UrlDisp
+ - urlpath
+ - URLT
+ - usb
+ - usb-enumerator
+ - usb-hid
+ - usb-id-database
+ - usb-iteratee
+ - usb-safe
+ - util-exception
+ - util-primitive-control
+ - uu-cco-examples
+ - uu-cco-hut-parsing
+ - uu-cco-uu-parsinglib
+ - uuid-bytes
+ - uuid-crypto
+ - uvector-algorithms
+ - v4l2
+ - v4l2-examples
+ - vabal
+ - vacuum-cairo
+ - vacuum-graphviz
+ - vacuum-opengl
+ - vacuum-ubigraph
+ - variable-precision
+ - vcache-trie
+ - vcard
+ - vcsgui
+ - vect-floating-accelerate
+ - vector-endian
+ - vector-instances-collections
+ - vector-text
+ - venzone
+ - verdict-json
+ - versioning-servant
+ - vflow-types
+ - vformat-aeson
+ - vformat-time
+ - vfr-waypoints
+ - ViennaRNA-extras
+ - vigilance
+ - vinyl-operational
+ - vision
+ - visual-graphrewrite
+ - vocoder
+ - vocoder-audio
+ - vocoder-conduit
+ - vocoder-dunai
+ - voicebase
+ - vty-ui-extras
+ - waargonaut
+ - wahsp
+ - wai-cli
+ - wai-devel
+ - wai-dispatch
+ - wai-handler-snap
+ - wai-hastache
+ - wai-middleware-brotli
+ - wai-middleware-cache
+ - wai-middleware-cache-redis
+ - wai-middleware-consul
+ - wai-middleware-content-type
+ - wai-middleware-rollbar
+ - wai-middleware-route
+ - wai-session-tokyocabinet
+ - wai-thrift
+ - waldo
+ - warped
+ - WashNGo
+ - WAVE
+ - WaveFront
+ - wavesurfer
+ - wavy
+ - web3
+ - webapi
+ - WebBits-Html
+ - WebBits-multiplate
+ - WebCont
+ - webcrank-wai
+ - webdriver-w3c
+ - web-mongrel2
+ - web-page
+ - web-rep
+ - web-routes-regular
+ - web-routing
+ - webserver
+ - WEditorBrick
+ - WEditorHyphen
+ - weighted
+ - werewolf-slack
+ - what4
+ - wheb-mongo
+ - wheb-redis
+ - wheb-strapped
+ - whitespace
+ - wide-word-instances
+ - wikipedia4epub
+ - windowslive
+ - winio
+ - WL500gPControl
+ - wlc-hs
+ - wl-pprint-ansiterm
+ - wl-pprint-terminfo
+ - wobsurv
+ - wolf
+ - WordAlignment
+ - workflow-extra
+ - workflow-pure
+ - workflow-types
+ - wraxml
+ - wrecker
+ - wrecker-ui
+ - wright
+ - writer-cps-full
+ - ws
+ - wss-client
+ - wtk-gtk
+ - wumpus-basic
+ - wumpus-drawing
+ - wumpus-microprint
+ - wumpus-tree
+ - WURFL
+ - wu-wei
+ - wx
+ - wxAsteroids
+ - wxc
+ - wxcore
+ - WXDiffCtrl
+ - wxFruit
+ - WxGeneric
+ - wxhnotepad
+ - wxSimpleCanvas
+ - wxturtle
+ - wyvern
+ - xdcc
+ - xhb-atom-cache
+ - xhb-ewmh
+ - XML
+ - xml2x
+ - xml-catalog
+ - xml-enumerator
+ - xml-enumerator-combinators
+ - xml-monad
+ - xml-pipe
+ - xml-push
+ - xml-query-xml-conduit
+ - xml-query-xml-types
+ - xmltv
+ - xml-tydom-conduit
+ - xmms2-client
+ - xmms2-client-glib
+ - xmonad-contrib-bluetilebranch
+ - xmpipe
+ - XMPP
+ - xournal-builder
+ - xournal-convert
+ - xournal-parser
+ - xournal-render
+ - XSaiga
+ - xtc
+ - Yablog
+ - YACPong
+ - yajl-enumerator
+ - yam
+ - yam-datasource
+ - yam-job
+ - yam-logger
+ - yaml-rpc-scotty
+ - yaml-rpc-snap
+ - yaml-unscrambler
+ - yam-redis
+ - yam-transaction
+ - yam-transaction-odbc
+ - yam-transaction-postgresql
+ - yam-web
+ - yarr-image-io
+ - yavie
+ - ycextra
+ - yeamer
+ - yeshql
+ - yesod-articles
+ - yesod-auth-ldap
+ - yesod-auth-lti13
+ - yesod-colonnade
+ - yesod-continuations
+ - yesod-examples
+ - yesod-ip
+ - yesod-mangopay
+ - yesod-paypal-rest
+ - yesod-platform
+ - yesod-purescript
+ - yesod-raml-bin
+ - yesod-raml-docs
+ - yesod-raml-mock
+ - yesod-routes-typescript
+ - yesod-session-redis
+ - yjftp
+ - yjftp-libs
+ - Yogurt
+ - Yogurt-Standalone
+ - yoko
+ - york-lava
+ - yql
+ - yu-launch
+ - yuuko
+ - zasni-gerna
+ - Z-Botan
+ - zephyr
+ - zerobin
+ - zeromq3-conduit
+ - zeromq3-haskell
+ - zeroth
+ - zifter-cabal
+ - zifter-git
+ - zifter-google-java-format
+ - zifter-hindent
+ - zifter-hlint
+ - zifter-stack
+ - Z-IO
+ - zipper
+ - zippo
+ - ziptastic-client
+ - zlib-enum
+ - zmcat
+ - Z-MessagePack
+ - zoom-cache
+ - zoom-cache-pcm
+ - zoom-cache-sndfile
+ - zoovisitor
+ - zuramaru
+ - Z-YAML
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
index ba00d2000737..538d5381a96a 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
@@ -101,17 +101,6 @@ self: super: builtins.intersectAttrs super {
   ormolu = enableSeparateBinOutput super.ormolu;
   ghcid = enableSeparateBinOutput super.ghcid;
 
-  # Ensure the necessary frameworks for Darwin.
-  OpenAL = if pkgs.stdenv.isDarwin
-    then addExtraLibrary super.OpenAL pkgs.darwin.apple_sdk.frameworks.OpenAL
-    else super.OpenAL;
-
-  # Ensure the necessary frameworks for Darwin.
-  proteaaudio = if pkgs.stdenv.isDarwin
-    then addExtraLibrary super.proteaaudio pkgs.darwin.apple_sdk.frameworks.AudioToolbox
-    else super.proteaaudio;
-
-
   hzk = overrideCabal super.hzk (drv: {
     preConfigure = "sed -i -e /include-dirs/d hzk.cabal";
     configureFlags = [ "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" ];
@@ -131,39 +120,11 @@ self: super: builtins.intersectAttrs super {
   # Foreign dependency name clashes with another Haskell package.
   libarchive-conduit = super.libarchive-conduit.override { archive = pkgs.libarchive; };
 
-  # Fix Darwin build.
-  halive = if pkgs.stdenv.isDarwin
-    then addBuildDepend super.halive pkgs.darwin.apple_sdk.frameworks.AppKit
-    else super.halive;
-
   # Heist's test suite requires system pandoc
   heist = overrideCabal super.heist (drv: {
     testToolDepends = [pkgs.pandoc];
   });
 
-  # the system-fileio tests use canonicalizePath, which fails in the sandbox
-  system-fileio = if pkgs.stdenv.isDarwin then dontCheck super.system-fileio else super.system-fileio;
-
-  # Prevents needing to add `security_tool` as a run-time dependency for
-  # everything using x509-system to give access to the `security` executable.
-  x509-system =
-    if pkgs.stdenv.hostPlatform.isDarwin && !pkgs.stdenv.cc.nativeLibc
-    then
-      # darwin.security_tool is broken in Mojave (#45042)
-
-      # We will use the system provided security for now.
-      # Beware this WILL break in sandboxes!
-
-      # TODO(matthewbauer): If someone really needs this to work in sandboxes,
-      # I think we can add a propagatedImpureHost dep here, but I’m hoping to
-      # get a proper fix available soonish.
-      overrideCabal super.x509-system (drv: {
-        postPatch = (drv.postPatch or "") + ''
-          substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
-        '';
-      })
-    else super.x509-system;
-
   # https://github.com/NixOS/cabal2nix/issues/136 and https://github.com/NixOS/cabal2nix/issues/216
   gio = disableHardening (addPkgconfigDepend (addBuildTool super.gio self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"];
   glib = disableHardening (addPkgconfigDepend (addBuildTool super.glib self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"];
@@ -235,6 +196,7 @@ self: super: builtins.intersectAttrs super {
   tcp-streams = dontCheck super.tcp-streams;
   holy-project = dontCheck super.holy-project;
   mustache = dontCheck super.mustache;
+  arch-web = dontCheck super.arch-web;
 
   # Tries to mess with extended POSIX attributes, but can't in our chroot environment.
   xattr = dontCheck super.xattr;
@@ -266,12 +228,6 @@ self: super: builtins.intersectAttrs super {
   # /homeless-shelter. Disabled.
   purescript = dontCheck super.purescript;
 
-  # https://github.com/haskell-foundation/foundation/pull/412
-  foundation =
-    if pkgs.stdenv.isDarwin
-    then dontCheck super.foundation
-    else super.foundation;
-
   # Hardcoded include path
   poppler = overrideCabal super.poppler (drv: {
     postPatch = ''
@@ -283,23 +239,8 @@ self: super: builtins.intersectAttrs super {
   # Uses OpenGL in testing
   caramia = dontCheck super.caramia;
 
-  llvm-hs =
-    let llvmHsWithLlvm9 = super.llvm-hs.override { llvm-config = pkgs.llvm_9; };
-    in
-    if pkgs.stdenv.isDarwin
-    then
-      overrideCabal llvmHsWithLlvm9 (oldAttrs: {
-        # One test fails on darwin.
-        doCheck = false;
-        # llvm-hs's Setup.hs file tries to add the lib/ directory from LLVM8 to
-        # the DYLD_LIBRARY_PATH environment variable.  This messes up clang
-        # when called from GHC, probably because clang is version 7, but we are
-        # using LLVM8.
-        preCompileBuildDriver = oldAttrs.preCompileBuildDriver or "" + ''
-          substituteInPlace Setup.hs --replace "addToLdLibraryPath libDir" "pure ()"
-        '';
-      })
-    else llvmHsWithLlvm9;
+  # requires llvm 9 specifically https://github.com/llvm-hs/llvm-hs/#building-from-source
+  llvm-hs = super.llvm-hs.override { llvm-config = pkgs.llvm_9; };
 
   # Needs help finding LLVM.
   spaceprobe = addBuildTool super.spaceprobe self.llvmPackages.llvm;
@@ -307,7 +248,7 @@ self: super: builtins.intersectAttrs super {
   # Tries to run GUI in tests
   leksah = dontCheck (overrideCabal super.leksah (drv: {
     executableSystemDepends = (drv.executableSystemDepends or []) ++ (with pkgs; [
-      gnome3.adwaita-icon-theme # Fix error: Icon 'window-close' not present in theme ...
+      gnome.adwaita-icon-theme # Fix error: Icon 'window-close' not present in theme ...
       wrapGAppsHook           # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
       gtk3                    # Fix error: GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed
     ]);
@@ -319,16 +260,18 @@ self: super: builtins.intersectAttrs super {
     '';
   }));
 
-  # Patch to consider NIX_GHC just like xmonad does
-  dyre = appendPatch super.dyre ./patches/dyre-nix.patch;
-
-  yesod-bin = if pkgs.stdenv.isDarwin
-    then addBuildDepend super.yesod-bin pkgs.darwin.apple_sdk.frameworks.Cocoa
-    else super.yesod-bin;
-
-  hmatrix = if pkgs.stdenv.isDarwin
-    then addBuildDepend super.hmatrix pkgs.darwin.apple_sdk.frameworks.Accelerate
-    else super.hmatrix;
+  dyre =
+    appendPatch
+      # dyre's tests appear to be trying to directly call GHC.
+      (dontCheck super.dyre)
+      # Dyre needs special support for reading the NIX_GHC env var.  This is
+      # available upstream in https://github.com/willdonnelly/dyre/pull/43, but
+      # hasn't been released to Hackage as of dyre-0.9.1.  Likely included in
+      # next version.
+      (pkgs.fetchpatch {
+        url = "https://github.com/willdonnelly/dyre/commit/c7f29d321aae343d6b314f058812dffcba9d7133.patch";
+        sha256 = "10m22k35bi6cci798vjpy4c2l08lq5nmmj24iwp0aflvmjdgscdb";
+      });
 
   # https://github.com/edwinb/EpiVM/issues/13
   # https://github.com/edwinb/EpiVM/issues/14
@@ -405,43 +348,8 @@ self: super: builtins.intersectAttrs super {
   # Looks like Avahi provides the missing library
   dnssd = super.dnssd.override { dns_sd = pkgs.avahi.override { withLibdnssdCompat = true; }; };
 
-  # Ensure the necessary frameworks are propagatedBuildInputs on darwin
-  OpenGLRaw = overrideCabal super.OpenGLRaw (drv: {
-    librarySystemDepends =
-      pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
-    libraryHaskellDepends = drv.libraryHaskellDepends
-      ++ pkgs.lib.optionals pkgs.stdenv.isDarwin
-                            [ pkgs.darwin.apple_sdk.frameworks.OpenGL ];
-    preConfigure = pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
-      frameworkPaths=($(for i in $nativeBuildInputs; do if [ -d "$i"/Library/Frameworks ]; then echo "-F$i/Library/Frameworks"; fi done))
-      frameworkPaths=$(IFS=, ; echo "''${frameworkPaths[@]}")
-      configureFlags+=$(if [ -n "$frameworkPaths" ]; then echo -n "--ghc-options=-optl=$frameworkPaths"; fi)
-    '';
-  });
-  GLURaw = overrideCabal super.GLURaw (drv: {
-    librarySystemDepends =
-      pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
-    libraryHaskellDepends = drv.libraryHaskellDepends
-      ++ pkgs.lib.optionals pkgs.stdenv.isDarwin
-                            [ pkgs.darwin.apple_sdk.frameworks.OpenGL ];
-  });
-  bindings-GLFW = overrideCabal super.bindings-GLFW (drv: {
-    doCheck = false; # requires an active X11 display
-    librarySystemDepends =
-      pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
-    libraryHaskellDepends = drv.libraryHaskellDepends
-      ++ pkgs.lib.optionals pkgs.stdenv.isDarwin
-                            (with pkgs.darwin.apple_sdk.frameworks;
-                             [ AGL Cocoa OpenGL IOKit Kernel CoreVideo
-                               pkgs.darwin.CF ]);
-  });
-  OpenCL = overrideCabal super.OpenCL (drv: {
-    librarySystemDepends =
-      pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
-    libraryHaskellDepends = drv.libraryHaskellDepends
-      ++ pkgs.lib.optionals pkgs.stdenv.isDarwin
-                            [ pkgs.darwin.apple_sdk.frameworks.OpenCL ];
-  });
+  # requires an X11 display
+  bindings-GLFW = dontCheck super.bindings-GLFW;
 
   # requires an X11 display in test suite
   gi-gtk-declarative = dontCheck super.gi-gtk-declarative;
@@ -474,16 +382,8 @@ self: super: builtins.intersectAttrs super {
     testHaskellDepends = (drv.testHaskellDepends or []) ++ [ self.test-framework self.test-framework-hunit ];
   });
 
-  # cabal2nix likes to generate dependencies on hinotify when hfsevents is really required
-  # on darwin: https://github.com/NixOS/cabal2nix/issues/146.
-  hinotify = if pkgs.stdenv.isDarwin then self.hfsevents else super.hinotify;
-
-  # FSEvents API is very buggy and tests are unreliable. See
-  # http://openradar.appspot.com/10207999 and similar issues.
   # https://github.com/haskell-fswatch/hfsnotify/issues/62
-  fsnotify = if pkgs.stdenv.isDarwin
-    then addBuildDepend (dontCheck super.fsnotify) pkgs.darwin.apple_sdk.frameworks.Cocoa
-    else dontCheck super.fsnotify;
+  fsnotify = dontCheck super.fsnotify;
 
   hidapi = addExtraLibrary super.hidapi pkgs.udev;
 
@@ -596,7 +496,7 @@ self: super: builtins.intersectAttrs super {
 
   # Compile manpages (which are in RST and are compiled with Sphinx).
   futhark = with pkgs;
-    overrideCabal (addBuildTools super.futhark [makeWrapper python37Packages.sphinx])
+    overrideCabal (addBuildTools super.futhark [makeWrapper python3Packages.sphinx])
       (_drv: {
         postBuild = (_drv.postBuild or "") + ''
         make -C docs man
@@ -657,10 +557,6 @@ self: super: builtins.intersectAttrs super {
 
   spago =
     let
-      # spago requires an older version of megaparsec, but it appears to work
-      # fine with newer versions.
-      spagoWithOverrides = doJailbreak super.spago;
-
       docsSearchApp_0_0_10 = pkgs.fetchurl {
         url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.10/docs-search-app.js";
         sha256 = "0m5ah29x290r0zk19hx2wix2djy7bs4plh9kvjz6bs9r45x25pa5";
@@ -681,17 +577,8 @@ self: super: builtins.intersectAttrs super {
         sha256 = "1hjdprm990vyxz86fgq14ajn0lkams7i00h8k2i2g1a0hjdwppq6";
       };
 
-      spagoFixHpack = overrideCabal spagoWithOverrides (drv: {
+      spagoDocs = overrideCabal super.spago (drv: {
         postUnpack = (drv.postUnpack or "") + ''
-          # The source for spago is pulled directly from GitHub.  It uses a
-          # package.yaml file with hpack, not a .cabal file.  In the package.yaml file,
-          # it uses defaults from the master branch of the hspec repo.  It will try to
-          # fetch these at build-time (but it will fail if running in the sandbox).
-          #
-          # The following line modifies the package.yaml to not pull in
-          # defaults from the hspec repo.
-          substituteInPlace "$sourceRoot/package.yaml" --replace 'defaults: hspec/hspec@master' ""
-
           # Spago includes the following two files directly into the binary
           # with Template Haskell.  They are fetched at build-time from the
           # `purescript-docs-search` repo above.  If they cannot be fetched at
@@ -717,9 +604,8 @@ self: super: builtins.intersectAttrs super {
         '';
       });
 
-      # Because of the problem above with pulling in hspec defaults to the
-      # package.yaml file, the tests are disabled.
-      spagoWithoutChecks = dontCheck spagoFixHpack;
+      # Tests require network access.
+      spagoWithoutChecks = dontCheck spagoDocs;
     in
     spagoWithoutChecks;
 
@@ -741,7 +627,7 @@ self: super: builtins.intersectAttrs super {
   primitive_0_7_1_0 = dontCheck super.primitive_0_7_1_0;
 
   cut-the-crap =
-    let path = pkgs.lib.makeBinPath [ pkgs.ffmpeg_3 pkgs.youtube-dl ];
+    let path = pkgs.lib.makeBinPath [ pkgs.ffmpeg pkgs.youtube-dl ];
     in overrideCabal (addBuildTool super.cut-the-crap pkgs.makeWrapper) (_drv: {
       postInstall = ''
         wrapProgram $out/bin/cut-the-crap \
@@ -826,4 +712,125 @@ self: super: builtins.intersectAttrs super {
 
   # Tests access internet
   prune-juice = dontCheck super.prune-juice;
+
+  # based on https://github.com/gibiansky/IHaskell/blob/aafeabef786154d81ab7d9d1882bbcd06fc8c6c4/release.nix
+  ihaskell = overrideCabal super.ihaskell (drv: {
+    configureFlags = (drv.configureFlags or []) ++ [
+      # ihaskell's cabal file forces building a shared executable,
+      # but without passing --enable-executable-dynamic, the RPATH
+      # contains /build/ and leads to a build failure with nix
+      "--enable-executable-dynamic"
+    ];
+    preCheck = ''
+      export HOME=$TMPDIR/home
+      export PATH=$PWD/dist/build/ihaskell:$PATH
+      export GHC_PACKAGE_PATH=$PWD/dist/package.conf.inplace/:$GHC_PACKAGE_PATH
+    '';
+  });
+
+  # tests need to execute the built executable
+  stutter = overrideCabal super.stutter (drv: {
+    preCheck = ''
+      export PATH=dist/build/stutter:$PATH
+    '' + (drv.preCheck or "");
+  });
+
+  # Install man page and generate shell completions
+  pinboard-notes-backup = overrideCabal
+    (generateOptparseApplicativeCompletion "pnbackup" super.pinboard-notes-backup)
+    (drv: {
+      postInstall = ''
+        install -D man/pnbackup.1 $out/share/man/man1/pnbackup.1
+      '' + (drv.postInstall or "");
+    });
+
+  # set more accurate set of platforms instead of maintaining
+  # an ever growing list of platforms to exclude via unsupported-platforms
+  cpuid = overrideCabal super.cpuid {
+    platforms = pkgs.lib.platforms.x86;
+  };
+
+  # Pass the correct libarchive into the package.
+  streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
+
+  # passes the -msse2 flag which only works on x86 platforms
+  hsignal = overrideCabal super.hsignal {
+    platforms = pkgs.lib.platforms.x86;
+  };
+
+  # uses x86 intrinsics
+  blake3 = overrideCabal super.blake3 {
+    platforms = pkgs.lib.platforms.x86;
+  };
+
+  # uses x86 intrinsics, see also https://github.com/NixOS/nixpkgs/issues/122014
+  crc32c = overrideCabal super.crc32c {
+    platforms = pkgs.lib.platforms.x86;
+  };
+
+  # uses x86 intrinsics
+  seqalign = overrideCabal super.seqalign {
+    platforms = pkgs.lib.platforms.x86;
+  };
+
+  hls-brittany-plugin = overrideCabal super.hls-brittany-plugin (drv: {
+    testToolDepends = [ pkgs.git ];
+    preCheck = ''
+      export HOME=$TMPDIR/home
+    '';
+  });
+  hls-class-plugin = overrideCabal super.hls-class-plugin (drv: {
+    testToolDepends = [ pkgs.git ];
+    preCheck = ''
+      export HOME=$TMPDIR/home
+    '';
+  });
+  # Tests have file permissions expections that don‘t work with the nix store.
+  hls-stylish-haskell-plugin = dontCheck super.hls-stylish-haskell-plugin;
+  hls-haddock-comments-plugin = overrideCabal super.hls-haddock-comments-plugin (drv: {
+    testToolDepends = [ pkgs.git ];
+    preCheck = ''
+      export HOME=$TMPDIR/home
+    '';
+  });
+  hls-eval-plugin = overrideCabal super.hls-eval-plugin (drv: {
+    preCheck = ''
+      export HOME=$TMPDIR/home
+    '';
+  });
+
+  taglib = overrideCabal super.taglib (drv: {
+    librarySystemDepends = [
+      pkgs.zlib
+    ] ++ (drv.librarySystemDepends or []);
+  });
+
+  # uses x86 assembler
+  inline-asm = overrideCabal super.inline-asm {
+    platforms = pkgs.lib.platforms.x86;
+  };
+
+  # uses x86 assembler in C bits
+  hw-prim-bits = overrideCabal super.hw-prim-bits {
+    platforms = pkgs.lib.platforms.x86;
+  };
+
+  # random 1.2.0 has tests that indirectly depend on
+  # itself causing an infinite recursion at evaluation
+  # time
+  random = dontCheck super.random;
+
+  # Since this package is primarily used by nixpkgs maintainers and is probably
+  # not used to link against by anyone, we can make it’s closure smaller.
+  cabal2nix-unstable = justStaticExecutables super.cabal2nix-unstable;
+
+  # test suite needs local redis daemon
+  nri-redis = dontCheck super.nri-redis;
+
+  # Make tophat find itself for _compiling_ its test suite
+  tophat = overrideCabal super.tophat (drv: {
+    postPatch = ''
+      sed -i 's|"tophat"|"./dist/build/tophat/tophat"|' app-test-bin/*.hs
+    '' + (drv.postPatch or "");
+  });
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/default.nix b/nixpkgs/pkgs/development/haskell-modules/default.nix
index a4f0399cf3c6..8392e751da2d 100644
--- a/nixpkgs/pkgs/development/haskell-modules/default.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/default.nix
@@ -7,6 +7,8 @@
 , nonHackagePackages ? import ./non-hackage-packages.nix
 , configurationCommon ? import ./configuration-common.nix
 , configurationNix ? import ./configuration-nix.nix
+, configurationArm ? import ./configuration-arm.nix
+, configurationDarwin ? import ./configuration-darwin.nix
 }:
 
 let
@@ -19,17 +21,24 @@ let
     inherit stdenv haskellLib ghc buildHaskellPackages extensible-self all-cabal-hashes;
   };
 
-  commonConfiguration = configurationCommon { inherit pkgs haskellLib; };
-  nixConfiguration = configurationNix { inherit pkgs haskellLib; };
-
-  extensible-self = makeExtensible
-    (extends overrides
-      (extends packageSetConfig
-        (extends compilerConfig
-          (extends commonConfiguration
-            (extends nixConfiguration
-              (extends nonHackagePackages
-                haskellPackages))))));
+  isArm = with stdenv.hostPlatform; isAarch64 || isAarch32;
+  platformConfigurations = lib.optionals isArm [
+    (configurationArm { inherit pkgs haskellLib; })
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    (configurationDarwin { inherit pkgs haskellLib; })
+  ];
+
+  extensions = lib.composeManyExtensions ([
+    nonHackagePackages
+    (configurationNix { inherit pkgs haskellLib; })
+    (configurationCommon { inherit pkgs haskellLib; })
+  ] ++ platformConfigurations ++ [
+    compilerConfig
+    packageSetConfig
+    overrides
+  ]);
+
+  extensible-self = makeExtensible (extends extensions haskellPackages);
 
 in
 
diff --git a/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix b/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
index faf80da0c7d9..a9c8f11223f7 100644
--- a/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
@@ -72,7 +72,7 @@ in
 , shellHook ? ""
 , coreSetup ? false # Use only core packages to build Setup.hs.
 , useCpphs ? false
-, hardeningDisable ? lib.optional (ghc.isHaLVM or false) "all"
+, hardeningDisable ? null
 , enableSeparateBinOutput ? false
 , enableSeparateDataOutput ? false
 , enableSeparateDocOutput ? doHaddock
@@ -417,6 +417,17 @@ stdenv.mkDerivation ({
   configurePlatforms = [];
   inherit configureFlags;
 
+  # Note: the options here must be always added, regardless of whether the
+  # package specifies `hardeningDisable`.
+  hardeningDisable = lib.optionals (args ? hardeningDisable) hardeningDisable
+    ++ lib.optional (ghc.isHaLVM or false) "all"
+    # Static libraries (ie. all of pkgsStatic.haskellPackages) fail to build
+    # because by default Nix adds `-pie` to the linker flags: this
+    # conflicts with the `-r` and `-no-pie` flags added by GHC (see
+    # https://gitlab.haskell.org/ghc/ghc/-/issues/19580). hardeningDisable
+    # changes the default Nix behavior regarding adding "hardening" flags.
+    ++ lib.optional enableStaticLibraries "pie";
+
   configurePhase = ''
     runHook preConfigure
 
@@ -464,7 +475,12 @@ stdenv.mkDerivation ({
   installPhase = ''
     runHook preInstall
 
-    ${if !isLibrary then "${setupCommand} install" else ''
+    ${if !isLibrary && buildTarget == "" then "${setupCommand} install"
+      # ^^ if the project is not a library, and no build target is specified, we can just use "install".
+      else if !isLibrary then "${setupCommand} copy ${buildTarget}"
+      # ^^ if the project is not a library, and we have a build target, then use "copy" to install
+      # just the target specified; "install" will error here, since not all targets have been built.
+    else ''
       ${setupCommand} copy
       local packageConfDir="$out/lib/${ghc.name}/package.conf.d"
       local packageConfFile="$packageConfDir/${pname}-${version}.conf"
@@ -669,7 +685,6 @@ stdenv.mkDerivation ({
 // optionalAttrs (args ? preFixup)               { inherit preFixup; }
 // optionalAttrs (args ? postFixup)              { inherit postFixup; }
 // optionalAttrs (args ? dontStrip)              { inherit dontStrip; }
-// optionalAttrs (args ? hardeningDisable)       { inherit hardeningDisable; }
 // optionalAttrs (stdenv.buildPlatform.libc == "glibc"){ LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; }
 )
 )
diff --git a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
index 7869388c5447..2d65d3355cc7 100644
--- a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
@@ -15,6 +15,8 @@ self: {
        executableHaskellDepends = [ base GLUT OpenGL random ];
        description = "Examples of 3D graphics programming with OpenGL";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "3dmodels" = callPackage
@@ -46,7 +48,6 @@ self: {
        description = "A tetris-like game (works with GHC 6.8.3 and Gtk2hs 0.9.13)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AAI" = callPackage
@@ -243,7 +244,6 @@ self: {
        description = "Fancy type-system stuff for AC-Vector";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ACME" = callPackage
@@ -317,7 +317,6 @@ self: {
        description = "Dynamic programming on tree and forest structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ADPfusionSet" = callPackage
@@ -343,7 +342,6 @@ self: {
        description = "Dynamic programming for Set data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AERN-Basics" = callPackage
@@ -381,7 +379,6 @@ self: {
        description = "Compositional lazy dataflow networks for exact real number computation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AERN-Real" = callPackage
@@ -399,7 +396,6 @@ self: {
        description = "arbitrary precision real interval arithmetic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AERN-Real-Double" = callPackage
@@ -424,7 +420,6 @@ self: {
        description = "arbitrary precision real interval arithmetic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AERN-Real-Interval" = callPackage
@@ -442,7 +437,6 @@ self: {
        description = "arbitrary precision real interval arithmetic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AERN-RnToRm" = callPackage
@@ -460,7 +454,6 @@ self: {
        description = "polynomial function enclosures (PFEs) approximating exact real functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AERN-RnToRm-Plot" = callPackage
@@ -479,7 +472,6 @@ self: {
        description = "GL plotting of polynomial function enclosures (PFEs)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AES" = callPackage
@@ -582,7 +574,6 @@ self: {
        description = "ASN.1 support for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AVar" = callPackage
@@ -618,7 +609,6 @@ self: {
        description = "Monads-tf instances for the AbortT monad transformer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AbortT-mtl" = callPackage
@@ -631,7 +621,6 @@ self: {
        description = "mtl instances for the AbortT monad transformer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AbortT-transformers" = callPackage
@@ -723,7 +712,6 @@ self: {
        description = "Lisperati's adventure game in Lisp translated to Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Advise-me" = callPackage
@@ -754,7 +742,6 @@ self: {
        description = "Assessment services for the Advise-Me project";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AesonBson" = callPackage
@@ -909,7 +896,6 @@ self: {
        description = "Algorithmic music composition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AlgorithmW" = callPackage
@@ -942,7 +928,6 @@ self: {
        description = "Collection of alignment algorithms";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Allure" = callPackage
@@ -971,8 +956,9 @@ self: {
        ];
        description = "Near-future Sci-Fi roguelike and tactical squad combat game";
        license = lib.licenses.agpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "AndroidViewHierarchyImporter" = callPackage
@@ -993,7 +979,6 @@ self: {
        description = "Android view hierarchy importer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Animas" = callPackage
@@ -1020,7 +1005,6 @@ self: {
        description = "Constructing, analyzing and destructing annotated trees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Ansi2Html" = callPackage
@@ -1067,7 +1051,6 @@ self: {
        description = "Library for Apple Push Notification Service";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AppleScript" = callPackage
@@ -1174,7 +1157,6 @@ self: {
        description = "Simple lightweight JSON parser, generator & manipulator based on ByteString";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Attrac" = callPackage
@@ -1223,7 +1205,6 @@ self: {
        description = "GUI library based upon generic programming (SYB3)";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "AvlTree" = callPackage
@@ -1236,7 +1217,6 @@ self: {
        description = "Balanced binary trees using the AVL algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BASIC" = callPackage
@@ -1249,7 +1229,6 @@ self: {
        description = "Embedded BASIC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BCMtools" = callPackage
@@ -1385,7 +1364,6 @@ self: {
        description = "An ad-hoc P2P chat program";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Befunge93" = callPackage
@@ -1461,7 +1439,6 @@ self: {
        description = "Factorization of polynomials over finite field";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiGUL" = callPackage
@@ -1540,7 +1517,6 @@ self: {
        description = "Libary for Hidden Markov Models in HMMER3 format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Biobase" = callPackage
@@ -1563,7 +1539,6 @@ self: {
        description = "Base library for bioinformatics";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseBlast" = callPackage
@@ -1591,7 +1566,6 @@ self: {
        description = "BLAST-related tools";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseDotP" = callPackage
@@ -1604,7 +1578,6 @@ self: {
        description = "Vienna / DotBracket / ExtSS parsers";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseENA" = callPackage
@@ -1628,7 +1601,6 @@ self: {
        description = "European Nucleotide Archive data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseEnsembl" = callPackage
@@ -1647,7 +1619,6 @@ self: {
        description = "Ensembl related datastructures and functions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseFR3D" = callPackage
@@ -1664,7 +1635,6 @@ self: {
        description = "Importer for FR3D resources";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseFasta" = callPackage
@@ -1690,7 +1660,6 @@ self: {
        description = "streaming FASTA parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseHTTP" = callPackage
@@ -1709,7 +1678,6 @@ self: {
        description = "Libary to interface with the Bioinformatics HTTP services - Entrez Ensembl";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseHTTPTools" = callPackage
@@ -1731,7 +1699,6 @@ self: {
        description = "Tools to query Bioinformatics HTTP services e.g. Entrez, Ensembl.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseInfernal" = callPackage
@@ -1771,7 +1738,6 @@ self: {
        description = "Infernal data structures and tools";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseMAF" = callPackage
@@ -1784,7 +1750,6 @@ self: {
        description = "Multiple Alignment Format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseNewick" = callPackage
@@ -1834,7 +1799,6 @@ self: {
        description = "RNA folding training data";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseTurner" = callPackage
@@ -1853,7 +1817,6 @@ self: {
        description = "Import Turner RNA parameters";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseTypes" = callPackage
@@ -1887,7 +1850,6 @@ self: {
        description = "Collection of types for bioinformatics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseVienna" = callPackage
@@ -1904,7 +1866,6 @@ self: {
        description = "Import Vienna energy parameters";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BiobaseXNA" = callPackage
@@ -1947,7 +1908,6 @@ self: {
        description = "Efficient RNA/DNA/Protein Primary/Secondary Structure";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BirdPP" = callPackage
@@ -1962,7 +1922,6 @@ self: {
        description = "A preprocessor for Bird-style Literate Haskell comments with Haddock markup";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BitStringRandomMonad" = callPackage
@@ -1997,8 +1956,6 @@ self: {
        ];
        description = "A module to aid in the (de)serialisation of binary data";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Bitly" = callPackage
@@ -2011,7 +1968,6 @@ self: {
        description = "A library to access bit.ly URL shortener.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BlastHTTP" = callPackage
@@ -2030,7 +1986,6 @@ self: {
        description = "Libary to interface with the NCBI blast REST interface";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Blobs" = callPackage
@@ -2053,7 +2008,6 @@ self: {
        description = "Diagram editor";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BlogLiterately" = callPackage
@@ -2079,7 +2033,6 @@ self: {
        description = "A tool for posting Haskelly articles to blogs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "BlogLiterately-diagrams" = callPackage
@@ -2102,7 +2055,6 @@ self: {
        description = "Include images in blog posts with inline diagrams code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Blogdown" = callPackage
@@ -2178,7 +2130,6 @@ self: {
        description = "A simple document organizer with some wiki functionality";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Boolean" = callPackage
@@ -2297,7 +2248,6 @@ self: {
        description = "Encode/Decode values to/from CBOR";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CC-delcont" = callPackage
@@ -2328,7 +2278,6 @@ self: {
        description = "Three new monad transformers for multi-prompt delimited control";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CC-delcont-cxe" = callPackage
@@ -2464,7 +2413,6 @@ self: {
        description = "Infernal covariance model comparison";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CMQ" = callPackage
@@ -2511,7 +2459,6 @@ self: {
        description = "A simple Brainfuck interpretter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CPL" = callPackage
@@ -2528,7 +2475,6 @@ self: {
        description = "An interpreter of Hagino's Categorical Programming Language (CPL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CSPM-CoreLanguage" = callPackage
@@ -2594,7 +2540,6 @@ self: {
        description = "An interpreter for CSPM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CSPM-ToProlog" = callPackage
@@ -2609,7 +2554,6 @@ self: {
        description = "some modules specific for the ProB tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CSPM-cspm" = callPackage
@@ -2636,7 +2580,6 @@ self: {
        description = "cspm command line tool for analyzing CSPM specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "CTRex" = callPackage
@@ -2907,7 +2850,6 @@ self: {
        description = "A translation from the Carneades argumentation model into Dung's AFs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Cartesian" = callPackage
@@ -3064,7 +3006,6 @@ self: {
        description = "A backend for the Chart library for FLTKHS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Chart-gtk" = callPackage
@@ -3141,8 +3082,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Tests of the Charts library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ChasingBottoms" = callPackage
@@ -3326,7 +3265,6 @@ self: {
        description = "Libary for parsing Clustal tools output";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Coadjute" = callPackage
@@ -3345,7 +3283,6 @@ self: {
        description = "A generic build tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Codec-Compression-LZF" = callPackage
@@ -3414,7 +3351,6 @@ self: {
        description = "A concurrent bittorrent client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Command" = callPackage
@@ -3470,7 +3406,6 @@ self: {
        description = "A library for expressing spreadsheet-like computations as the fixed-points of comonads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Compactable" = callPackage
@@ -3486,6 +3421,30 @@ self: {
        broken = true;
      }) {};
 
+  "ConClusion" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, cmdargs, containers
+     , formatting, hmatrix, massiv, optics, psqueues, rio, text
+     }:
+     mkDerivation {
+       pname = "ConClusion";
+       version = "0.0.2";
+       sha256 = "1n2wyvcyh950v67z4szvnr19vdh0fg2zvhxqyfqblpb1njayy92l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base containers formatting hmatrix massiv psqueues
+         rio
+       ];
+       executableHaskellDepends = [
+         aeson attoparsec base cmdargs containers formatting hmatrix massiv
+         optics psqueues rio text
+       ];
+       description = "Cluster algorithms, PCA, and chemical conformere analysis";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "Concurrent-Cache" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -3532,7 +3491,6 @@ self: {
        description = "Information retrieval library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ConfigFile" = callPackage
@@ -3573,7 +3531,6 @@ self: {
        description = "Parse config files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Configurable" = callPackage
@@ -3716,7 +3673,6 @@ self: {
        description = "A Library for Writing Multi-Pass Algorithms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Control-Monad-ST2" = callPackage
@@ -3781,7 +3737,6 @@ self: {
        description = "Bindings to Mac OSX's CoreFoundation framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Coroutine" = callPackage
@@ -3943,26 +3898,26 @@ self: {
 
   "DBFunctor" = callPackage
     ({ mkDerivation, base, bytestring, cassava, cereal, containers
-     , deepseq, either, MissingH, text, time, transformers
-     , unordered-containers, vector
+     , deepseq, either, text, time, transformers, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "DBFunctor";
-       version = "0.1.1.1";
-       sha256 = "0n3qmgjf9ly5vpnsvh8rhwbd94l157d1asy95n8yqpmrb6xqc1k4";
+       version = "0.1.2.1";
+       sha256 = "0ikb4s9g1mrp4pdz1119dq1vci7mfcvcw92xs47rcin26a3ysdcz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring cassava cereal containers deepseq either MissingH
-         text time transformers unordered-containers vector
+         base bytestring cassava cereal containers deepseq either text time
+         transformers unordered-containers vector
        ];
        executableHaskellDepends = [
-         base bytestring cassava cereal containers deepseq either MissingH
-         text time transformers unordered-containers vector
+         base bytestring cassava cereal containers deepseq either text time
+         transformers unordered-containers vector
        ];
        testHaskellDepends = [
-         base bytestring cassava cereal containers deepseq either MissingH
-         text time transformers unordered-containers vector
+         base bytestring cassava cereal containers deepseq either text time
+         transformers unordered-containers vector
        ];
        description = "DBFunctor - Functional Data Management => ETL/ELT Data Processing in Haskell";
        license = lib.licenses.bsd3;
@@ -4021,7 +3976,6 @@ self: {
        description = "Distributed Mutation Analysis framework for MuCheck";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DOH" = callPackage
@@ -4059,7 +4013,6 @@ self: {
        description = "DOM Level 2 bindings for the WebBits package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DP" = callPackage
@@ -4076,7 +4029,6 @@ self: {
        description = "Pragmatic framework for dynamic programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DPM" = callPackage
@@ -4217,7 +4169,6 @@ self: {
        description = "Database Supported Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DSTM" = callPackage
@@ -4240,7 +4191,6 @@ self: {
        description = "A framework for using STM within distributed systems";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DTC" = callPackage
@@ -4266,7 +4216,6 @@ self: {
        description = "Monads for operations that can exit early and produce warnings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Dao" = callPackage
@@ -4311,7 +4260,6 @@ self: {
        description = "Code used by Patch-Shack that seemed sensible to open for reusability";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Data-Angle" = callPackage
@@ -4483,8 +4431,6 @@ self: {
        libraryHaskellDepends = [ base haskell-src mtl TypeCompose ];
        description = "Arrows for \"deep application\"";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DeepDarkFantasy" = callPackage
@@ -4524,7 +4470,6 @@ self: {
        description = "A simple RTS game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Delta-Lambda" = callPackage
@@ -4628,7 +4573,6 @@ self: {
        description = "A theory solver for conjunctions of literals in difference logic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DifferentialEvolution" = callPackage
@@ -4729,7 +4673,6 @@ self: {
        description = "Distributed Bug Tracking System";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DiscussionSupportSystem" = callPackage
@@ -4832,7 +4775,6 @@ self: {
        description = "Frameshift-aware alignment of protein sequences with DNA sequences";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DocTest" = callPackage
@@ -4851,7 +4793,6 @@ self: {
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Docs" = callPackage
@@ -4882,7 +4823,6 @@ self: {
        description = "A tool for deriving hylomorphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DrIFT" = callPackage
@@ -4959,7 +4899,6 @@ self: {
        description = "Polymorphic protocol engine";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Dust-crypto" = callPackage
@@ -5013,7 +4952,6 @@ self: {
        description = "Network filtering exploration tools";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Dust-tools-pcap" = callPackage
@@ -5036,7 +4974,6 @@ self: {
        description = "Network filtering exploration tools that rely on pcap";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DynamicTimeWarp" = callPackage
@@ -5083,7 +5020,6 @@ self: {
        description = "dysFunctional Reactive Programming on Cairo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "DysFRP-Craftwerk" = callPackage
@@ -5101,7 +5037,6 @@ self: {
        description = "dysFunctional Reactive Programming on Craftwerk";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "EEConfig" = callPackage
@@ -5216,7 +5151,6 @@ self: {
        description = "Query language and report generator for edit logs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Eight-Ball-Pool-Hack-Cheats" = callPackage
@@ -5361,7 +5295,6 @@ self: {
        description = "Libary to interface with the NCBI Entrez REST service";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Enum" = callPackage
@@ -5455,7 +5388,6 @@ self: {
        description = "Type-safe bindings to EsounD (ESD; Enlightened Sound Daemon)";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "EstProgress" = callPackage
@@ -5494,7 +5426,6 @@ self: {
        description = "A new implementation of the LambdaMOO server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) pcre;};
 
   "Etage" = callPackage
@@ -5531,7 +5462,6 @@ self: {
        description = "Data-flow based graph algorithms";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Eternal10Seconds" = callPackage
@@ -5547,7 +5477,6 @@ self: {
        description = "A 2-D shooting game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Etherbunny" = callPackage
@@ -5570,7 +5499,6 @@ self: {
        description = "A network analysis toolkit for Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libpcap;};
 
   "EuroIT" = callPackage
@@ -5598,6 +5526,9 @@ self: {
        ];
        description = "Library for computer music research and education";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "EventSocket" = callPackage
@@ -5614,7 +5545,6 @@ self: {
        description = "Interfaces with FreeSwitch Event Socket";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Extra" = callPackage
@@ -5674,7 +5604,6 @@ self: {
        description = "Compose music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FM-SBLEX" = callPackage
@@ -5689,7 +5618,6 @@ self: {
        description = "A set of computational morphology tools for Swedish diachronic lexicons";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FModExRaw" = callPackage
@@ -5782,7 +5710,6 @@ self: {
        description = "A command-line FTP client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Facebook-Password-Hacker-Online-Latest-Version" = callPackage
@@ -5825,7 +5752,6 @@ self: {
        description = "A collection of facts about the real world";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FailureT" = callPackage
@@ -5838,7 +5764,6 @@ self: {
        description = "Failure Monad Transformer";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FastPush" = callPackage
@@ -5903,7 +5828,6 @@ self: {
        description = "Annotate ps and pdf documents";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FerryCore" = callPackage
@@ -5954,7 +5878,6 @@ self: {
        description = "Functional 3D";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FileManip" = callPackage
@@ -6006,7 +5929,6 @@ self: {
        description = "Functions on System.FilePath";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FileSystem" = callPackage
@@ -6059,8 +5981,6 @@ self: {
        ];
        description = "Finite totally-ordered sets";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Finance-Quote-Yahoo" = callPackage
@@ -6095,7 +6015,6 @@ self: {
        description = "Obtain Treasury yield curve data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FindBin" = callPackage
@@ -6119,7 +6038,6 @@ self: {
        description = "A finite map implementation, derived from the paper: Efficient sets: a balancing act, S. Adams, Journal of functional programming 3(4) Oct 1993, pp553-562";
        license = lib.licenses.bsdOriginal;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FirstOrderTheory" = callPackage
@@ -6132,7 +6050,6 @@ self: {
        description = "Grammar and typeclass for first order theories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FixedPoint-simple" = callPackage
@@ -6163,7 +6080,6 @@ self: {
        description = "Wiki";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FloatingHex" = callPackage
@@ -6287,7 +6203,6 @@ self: {
        description = "Comparison of trees and forests";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ForkableT" = callPackage
@@ -6326,7 +6241,6 @@ self: {
        description = "(Context-free) grammars in formal language theory";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Fortnite-Hack-Cheats-Free-V-Bucks-Generator" = callPackage
@@ -6372,7 +6286,6 @@ self: {
        description = "Utilities to generate and solve puzzles";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FpMLv53" = callPackage
@@ -6434,8 +6347,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames";
-       version = "0.7.1";
-       sha256 = "10js8xhp1v6gk6aagrzkn5c2c2gg4xml9vavpvhjfvj2jz77rfkm";
+       version = "0.7.2";
+       sha256 = "08q3zfhb6wf4b8020d63v6zpmb3834ba50hnb478vvjqd8rrp1mh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -6476,7 +6389,6 @@ self: {
        description = "A library for accessing Postgres tables as in-memory data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Frames-dsv" = callPackage
@@ -6495,7 +6407,6 @@ self: {
        description = "Alternative CSV parser for the Frames package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Frames-map-reduce" = callPackage
@@ -6505,8 +6416,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames-map-reduce";
-       version = "0.4.0.0";
-       sha256 = "1ajqkzg3q59hg1gwbamff72j9sxljqq7sghrqw5xbnxfd4867dcf";
+       version = "0.4.1.1";
+       sha256 = "0cxk86bbl6mbpg7ywb5cm8kfixl508gww8yxq6vwyrxbs7q4j25z";
        libraryHaskellDepends = [
          base containers foldl Frames hashable map-reduce-folds newtype
          profunctors vinyl
@@ -6521,16 +6432,16 @@ self: {
      }) {};
 
   "Frames-streamly" = callPackage
-    ({ mkDerivation, base, exceptions, Frames, primitive, streamly
-     , text, vinyl
+    ({ mkDerivation, base, exceptions, Frames, primitive, relude
+     , streamly, strict, text, vinyl
      }:
      mkDerivation {
        pname = "Frames-streamly";
-       version = "0.1.0.2";
-       sha256 = "0i007clm5q2rjmj7qfyig4sajk2bi1fc57w132j4vrvgp3p9p4rr";
+       version = "0.1.1.1";
+       sha256 = "05al2v7wivvpwxq0gxypbm30ch4ssxmxw1wl4k9az3dqfvr0xgal";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base exceptions Frames primitive streamly text vinyl
+         base exceptions Frames primitive relude streamly strict text vinyl
        ];
        testHaskellDepends = [ base Frames streamly text vinyl ];
        description = "A streamly layer for Frames I/O";
@@ -6549,7 +6460,6 @@ self: {
        description = "An experimental programming language with typed algebraic effects";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "FreeTypeGL" = callPackage
@@ -6671,7 +6581,6 @@ self: {
        description = "A binding for GLFW (OGL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
 
   "GLFW-b" = callPackage
@@ -6722,7 +6631,6 @@ self: {
        description = "GLFW utility functions to use together with monad-task";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GLHUI" = callPackage
@@ -6842,7 +6750,6 @@ self: {
        description = "Parse GPX files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GPipe" = callPackage
@@ -6876,7 +6783,6 @@ self: {
        description = "Load GPipe meshes from Collada files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GPipe-Core" = callPackage
@@ -6898,6 +6804,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion lens ];
        description = "Typesafe functional GPU graphics programming";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "GPipe-Examples" = callPackage
@@ -6916,7 +6824,6 @@ self: {
        description = "Examples for the GPipes package";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GPipe-GLFW" = callPackage
@@ -6930,7 +6837,6 @@ self: {
        description = "GLFW OpenGL context creation for GPipe";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GPipe-GLFW4" = callPackage
@@ -6960,6 +6866,7 @@ self: {
        ];
        description = "GLFW OpenGL context creation for GPipe";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "GPipe-TextureLoad" = callPackage
@@ -6972,7 +6879,6 @@ self: {
        description = "Load GPipe textures from filesystem";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GTALib" = callPackage
@@ -7015,7 +6921,6 @@ self: {
        description = "Some kind of game library or set of utilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Ganymede" = callPackage
@@ -7063,7 +6968,6 @@ self: {
        description = "Several games";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GenI" = callPackage
@@ -7098,7 +7002,6 @@ self: {
        description = "A natural language generator (specifically, an FB-LTAG surface realiser)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GenSmsPdu" = callPackage
@@ -7113,7 +7016,6 @@ self: {
        description = "Automatic SMS message generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Genbank" = callPackage
@@ -7133,7 +7035,6 @@ self: {
        description = "Libary for processing the NCBI genbank format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Gene-CluEDO" = callPackage
@@ -7160,7 +7061,6 @@ self: {
        description = "Hox gene clustering";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GeneralTicTacToe" = callPackage
@@ -7215,7 +7115,6 @@ self: {
        description = "MCFGs for Genus-1 RNA Pseudoknots";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GeoIp" = callPackage
@@ -7420,7 +7319,6 @@ self: {
        description = "SDL Frontend for Glome ray tracer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GoogleChart" = callPackage
@@ -7465,7 +7363,6 @@ self: {
        description = "Haskell Interface to Google Directions API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GoogleSB" = callPackage
@@ -7482,7 +7379,6 @@ self: {
        description = "Interface to Google Safe Browsing API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GoogleSuggest" = callPackage
@@ -7511,7 +7407,6 @@ self: {
        description = "Interface to Google Translate API";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GotoT-transformers" = callPackage
@@ -7561,7 +7456,6 @@ self: {
        description = "Grammar products and higher-dimensional grammars";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Graph500" = callPackage
@@ -7597,7 +7491,6 @@ self: {
        description = "GraphHammer Haskell graph analyses framework inspired by STINGER";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GraphHammer-examples" = callPackage
@@ -7616,7 +7509,6 @@ self: {
        description = "Test harness for TriangleCount analysis";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GraphSCC" = callPackage
@@ -7645,6 +7537,7 @@ self: {
        description = "Graph-Theoretic Analysis library";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Grempa" = callPackage
@@ -7724,7 +7617,6 @@ self: {
        description = "Notification utility for Growl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Gtk2hsGenerics" = callPackage
@@ -7741,7 +7633,6 @@ self: {
        description = "Convenience functions to extend Gtk2hs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GtkGLTV" = callPackage
@@ -7758,7 +7649,6 @@ self: {
        description = "OpenGL support for Gtk-based GUIs for Tangible Values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GtkTV" = callPackage
@@ -7772,8 +7662,6 @@ self: {
        ];
        description = "Gtk-based GUIs for Tangible Values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GuiHaskell" = callPackage
@@ -7793,7 +7681,6 @@ self: {
        description = "A graphical REPL and development environment for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "GuiTV" = callPackage
@@ -7806,7 +7693,6 @@ self: {
        description = "GUIs for Tangible Values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "H" = callPackage
@@ -7885,7 +7771,6 @@ self: {
        description = "HAppS data manipulation libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HAppS-IxSet" = callPackage
@@ -7902,7 +7787,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HAppS-Server" = callPackage
@@ -7924,7 +7808,6 @@ self: {
        description = "Web related tools and services";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HAppS-State" = callPackage
@@ -7945,7 +7828,6 @@ self: {
        description = "Event-based distributed state";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HAppS-Util" = callPackage
@@ -7996,8 +7878,6 @@ self: {
        ];
        description = "High-level library for building command line interfaces";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HCard" = callPackage
@@ -8650,7 +8530,6 @@ self: {
        description = "HJScript is a Haskell EDSL for writing JavaScript programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HJVM" = callPackage
@@ -8710,7 +8589,6 @@ self: {
        description = "Algebraic foundation for homomorphic learning";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HLearn-approximation" = callPackage
@@ -8730,7 +8608,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HLearn-classification" = callPackage
@@ -8754,7 +8631,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HLearn-datastructures" = callPackage
@@ -8771,7 +8647,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HLearn-distributions" = callPackage
@@ -8796,7 +8671,6 @@ self: {
        description = "Distributions for use with the HLearn library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HList" = callPackage
@@ -8921,7 +8795,6 @@ self: {
        description = "Happy Network Manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HNumeric" = callPackage
@@ -8996,8 +8869,6 @@ self: {
        testHaskellDepends = [ base HTF ];
        description = "Generation of PDF documents";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HPath" = callPackage
@@ -9071,7 +8942,6 @@ self: {
        description = "A minimal monadic PLplot interface for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {plplotd-gnome2 = null;};
 
   "HPong" = callPackage
@@ -9091,7 +8961,6 @@ self: {
        description = "A simple OpenGL Pong game based on GLFW";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HROOT" = callPackage
@@ -9110,7 +8979,6 @@ self: {
        description = "Haskell binding to the ROOT data analysis framework";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HROOT-core" = callPackage
@@ -9125,7 +8993,6 @@ self: {
        description = "Haskell binding to ROOT Core modules";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HROOT-graf" = callPackage
@@ -9142,7 +9009,6 @@ self: {
        description = "Haskell binding to ROOT Graf modules";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HROOT-hist" = callPackage
@@ -9159,7 +9025,6 @@ self: {
        description = "Haskell binding to ROOT Hist modules";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HROOT-io" = callPackage
@@ -9176,7 +9041,6 @@ self: {
        description = "Haskell binding to ROOT IO modules";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HROOT-math" = callPackage
@@ -9193,7 +9057,6 @@ self: {
        description = "Haskell binding to ROOT Math modules";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HROOT-tree" = callPackage
@@ -9210,7 +9073,6 @@ self: {
        description = "Haskell binding to ROOT Tree modules";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HRay" = callPackage
@@ -9226,7 +9088,6 @@ self: {
        description = "Haskell raytracer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HSFFIG" = callPackage
@@ -9268,7 +9129,6 @@ self: {
        description = "Gene Expression Programming evolutionary algorithm in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HSH" = callPackage
@@ -9306,7 +9166,6 @@ self: {
        description = "Convenience functions that use HSH, instances for HSH";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HSet" = callPackage
@@ -9350,8 +9209,6 @@ self: {
        testHaskellDepends = [ aeson attoparsec base HTF text ];
        description = "Small template engine";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HSoM" = callPackage
@@ -9368,6 +9225,9 @@ self: {
        ];
        description = "Library for computer music education";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "HSoundFile" = callPackage
@@ -9384,7 +9244,6 @@ self: {
        description = "Audio file reading/writing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HStringTemplate" = callPackage
@@ -9422,7 +9281,6 @@ self: {
        description = "Convenience functions and instances for HStringTemplate";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HSvm" = callPackage
@@ -9469,8 +9327,6 @@ self: {
        ];
        description = "The Haskell Test Framework";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HTTP" = callPackage
@@ -9522,7 +9378,6 @@ self: {
        description = "Tableau based theorem prover for hybrid logics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HTicTacToe" = callPackage
@@ -9627,7 +9482,6 @@ self: {
        description = "A (prototyped) easy to use XMPP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HXQ" = callPackage
@@ -9675,7 +9529,6 @@ self: {
        description = "An Haskell library to drive the french Minitel through a serial port";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaPy" = callPackage
@@ -9724,7 +9577,6 @@ self: {
        description = "the Haskell Refactorer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaTeX" = callPackage
@@ -9764,7 +9616,6 @@ self: {
        description = "This package is deprecated. From version 3, HaTeX does not need this anymore.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaTeX-qq" = callPackage
@@ -9781,7 +9632,6 @@ self: {
        description = "Quasiquoters for HaTeX";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaVSA" = callPackage
@@ -9802,7 +9652,6 @@ self: {
        description = "An implementation of the Version Space Algebra learning framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaXml" = callPackage
@@ -9840,7 +9689,6 @@ self: {
        description = "Simple chat";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HackMail" = callPackage
@@ -9974,7 +9822,6 @@ self: {
        description = "Harmony Analysis and Retrieval of Music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HarmTrace-Base" = callPackage
@@ -10043,7 +9890,6 @@ self: {
        description = "A Haskell library for inference using Gaussian processes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Haschoo" = callPackage
@@ -10083,7 +9929,6 @@ self: {
        description = "Simple shell written in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaskRel" = callPackage
@@ -10101,7 +9946,6 @@ self: {
        description = "HaskRel, Haskell as a DBMS with support for the relational algebra";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaskellAnalysisProgram" = callPackage
@@ -10180,8 +10024,6 @@ self: {
        ];
        description = "Client support for POP3, SMTP, and IMAP";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HaskellNet-SSL" = callPackage
@@ -10301,7 +10143,6 @@ self: {
        description = "A small 2D game framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Hawk" = callPackage
@@ -10324,7 +10165,6 @@ self: {
        description = "Haskell Web Application Kit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Hayoo" = callPackage
@@ -10352,7 +10192,6 @@ self: {
        description = "The Hayoo! search engine for Haskell API search on hackage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Hclip" = callPackage
@@ -10386,7 +10225,6 @@ self: {
        description = "Line oriented editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HerbiePlugin" = callPackage
@@ -10445,7 +10283,6 @@ self: {
        description = "Purely functional 2D graphics for visualization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HiggsSet" = callPackage
@@ -10463,7 +10300,6 @@ self: {
        description = "A multi-index set with advanced query capabilites";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Hipmunk" = callPackage
@@ -10478,6 +10314,7 @@ self: {
        description = "A Haskell binding for Chipmunk";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Hipmunk-Utils" = callPackage
@@ -10491,7 +10328,6 @@ self: {
        description = "Useful functions for Hipmunk";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HipmunkPlayground" = callPackage
@@ -10585,7 +10421,6 @@ self: {
        description = "Lightweight algorithmic debugging";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HoleyMonoid" = callPackage
@@ -10660,7 +10495,6 @@ self: {
        description = "A search and indexing engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Holumbus-Storage" = callPackage
@@ -10712,7 +10546,6 @@ self: {
        description = "A Simple Key Value Store";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HostAndPort" = callPackage
@@ -10769,7 +10602,6 @@ self: {
        description = "A Library and Preprocessor that makes it easier to create shared libs from Haskell programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HsASA" = callPackage
@@ -10855,20 +10687,6 @@ self: {
     ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
      mkDerivation {
        pname = "HsOpenSSL";
-       version = "0.11.6.2";
-       sha256 = "160fpl2lcardzf4gy5dimhad69gvkkvnpp5nqbf8fcxzm4vgg76y";
-       setupHaskellDepends = [ base Cabal ];
-       libraryHaskellDepends = [ base bytestring network time ];
-       librarySystemDepends = [ openssl ];
-       testHaskellDepends = [ base bytestring ];
-       description = "Partial OpenSSL binding for Haskell";
-       license = lib.licenses.publicDomain;
-     }) {inherit (pkgs) openssl;};
-
-  "HsOpenSSL_0_11_7" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
-     mkDerivation {
-       pname = "HsOpenSSL";
        version = "0.11.7";
        sha256 = "0kji758bi8agcjvpbb3hpppv55qm9g2r02mamiv568zwmlkkxsm3";
        setupHaskellDepends = [ base Cabal ];
@@ -10877,7 +10695,6 @@ self: {
        testHaskellDepends = [ base bytestring ];
        description = "Partial OpenSSL binding for Haskell";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) openssl;};
 
   "HsOpenSSL-x509-system" = callPackage
@@ -10904,7 +10721,6 @@ self: {
        description = "Haskell integration with Parrot virtual machine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HsPerl5" = callPackage
@@ -10980,7 +10796,6 @@ self: {
        description = "Webots bindings for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {Controller = null; driver = null;};
 
   "HsYAML" = callPackage
@@ -11046,7 +10861,6 @@ self: {
        description = "Stream Editor in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Hsmtlib" = callPackage
@@ -11140,7 +10954,6 @@ self: {
        description = "The library for generating a WebGL scene for the web";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "I1M" = callPackage
@@ -11149,8 +10962,8 @@ self: {
      }:
      mkDerivation {
        pname = "I1M";
-       version = "0.0.3";
-       sha256 = "0lk34g47iid2cfcj9zfdwbkpvhfhanh83jzh64r9sdrqgw9p25w3";
+       version = "0.1.0";
+       sha256 = "0a5bh9hlsn6hmdqinc47hxlav1isv9jh2i4x3zfyfp4y4xrp2h93";
        libraryHaskellDepends = [ array base QuickCheck ];
        testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ];
        description = "Code for the Haskell course taught at the University of Seville";
@@ -11207,7 +11020,6 @@ self: {
        description = "Editor and interpreter for Interaction Nets";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "IOR" = callPackage
@@ -11241,7 +11053,6 @@ self: {
        description = "Atomic compare and swap for IORefs and STRefs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "IOSpec" = callPackage
@@ -11372,7 +11183,6 @@ self: {
        description = "Length- and element-indexed lists sitting somewhere between homogeneous and fully heterogeneous";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "InfixApplicative" = callPackage
@@ -11385,7 +11195,6 @@ self: {
        description = "liftA2 for infix operators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "IntFormats" = callPackage
@@ -11551,7 +11360,6 @@ self: {
        description = "A combinator library on top of a generalised JSON type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JSON-Combinator-Examples" = callPackage
@@ -11566,7 +11374,6 @@ self: {
        description = "Example uses of the JSON-Combinator library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JSONParser" = callPackage
@@ -11599,7 +11406,6 @@ self: {
        description = "JSON parser that uses byte strings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JYU-Utils" = callPackage
@@ -11651,7 +11457,6 @@ self: {
        description = "A utility to print the SourceFile attribute of one or more Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Javav" = callPackage
@@ -11715,7 +11520,6 @@ self: {
        description = "Design-by-contract for JavaScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JsonGrammar" = callPackage
@@ -11738,7 +11542,6 @@ self: {
        description = "Combinators for bidirectional JSON parsing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JuPyTer-notebook" = callPackage
@@ -11756,7 +11559,6 @@ self: {
        description = "JuPyTer notebook parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JuicyPixels" = callPackage
@@ -11848,8 +11650,8 @@ self: {
      }:
      mkDerivation {
        pname = "JuicyPixels-extra";
-       version = "0.4.1";
-       sha256 = "0k2bz2xn15qg400xl6xs52j2abcc3js42rd9p9sy4dwlkcdmblbj";
+       version = "0.5.0";
+       sha256 = "1r6rpasakl4s7x53y6wz34rkg4xxjhh8zfm9aqdjnxc7b8ir0nbb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base JuicyPixels ];
        testHaskellDepends = [ base hspec JuicyPixels ];
@@ -11948,7 +11750,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JunkDB-driver-hashtables" = callPackage
@@ -11964,7 +11765,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "JustParse" = callPackage
@@ -12280,7 +12080,6 @@ self: {
        description = "Lightweight Directory Access Protocol (LDAP) version 3";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LParse" = callPackage
@@ -12389,7 +12188,6 @@ self: {
        description = "A type-safe EDSL for TouchDesigner written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LambdaHack" = callPackage
@@ -12425,8 +12223,9 @@ self: {
        ];
        description = "A game engine library for tactical squad ASCII roguelike dungeon crawlers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "LambdaINet" = callPackage
@@ -12447,7 +12246,6 @@ self: {
        description = "Graphical Interaction Net Evaluator for Optimal Evaluation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LambdaNet" = callPackage
@@ -12490,7 +12288,6 @@ self: {
        description = "Quasiquoter, and Arbitrary helpers for the lambda calculus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LambdaShell" = callPackage
@@ -12509,7 +12306,6 @@ self: {
        description = "Simple shell for evaluating lambda expressions";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Lambdajudge" = callPackage
@@ -12724,7 +12520,6 @@ self: {
        description = "Partition the sequence of items to the subsequences in the order given";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LinguisticsTypes" = callPackage
@@ -12770,7 +12565,6 @@ self: {
        description = "Check a bunch of local html files for broken links";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Liquorice" = callPackage
@@ -12943,7 +12737,6 @@ self: {
        description = "a parallel implementation of logic programming using distributed tree exploration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LogicGrowsOnTrees-MPI" = callPackage
@@ -12966,7 +12759,6 @@ self: {
        description = "an adapter for LogicGrowsOnTrees that uses MPI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {openmpi = null;};
 
   "LogicGrowsOnTrees-network" = callPackage
@@ -12993,7 +12785,6 @@ self: {
        description = "an adapter for LogicGrowsOnTrees that uses multiple processes running in a network";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LogicGrowsOnTrees-processes" = callPackage
@@ -13021,7 +12812,6 @@ self: {
        description = "an adapter for LogicGrowsOnTrees that uses multiple processes for parallelism";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "LslPlus" = callPackage
@@ -13043,7 +12833,6 @@ self: {
        description = "An execution and testing framework for the Linden Scripting Language (LSL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Lucu" = callPackage
@@ -13065,7 +12854,6 @@ self: {
        description = "HTTP Daemonic Library";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Lykah" = callPackage
@@ -13095,7 +12883,6 @@ self: {
        description = "A static website and blog generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MASMGen" = callPackage
@@ -13142,7 +12929,6 @@ self: {
        description = "Folding algorithm based on nucleotide cyclic motifs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MFlow" = callPackage
@@ -13169,7 +12955,6 @@ self: {
        description = "stateful, RESTful web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MHask" = callPackage
@@ -13237,7 +13022,6 @@ self: {
        description = "A GLPK backend to the MIP library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) glpk;};
 
   "MSQueue" = callPackage
@@ -13250,7 +13034,6 @@ self: {
        description = "Michael-Scott queue";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MTGBuilder" = callPackage
@@ -13401,7 +13184,6 @@ self: {
        description = "MaybeT monad transformer using transformers instead of mtl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MazesOfMonad" = callPackage
@@ -13517,7 +13299,6 @@ self: {
        description = "A meta-object system for Haskell based on Perl 6";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Metrics" = callPackage
@@ -13530,7 +13311,6 @@ self: {
        description = "Evaluation metrics commonly used in supervised machine learning";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Mhailist" = callPackage
@@ -13550,7 +13330,6 @@ self: {
        description = "Haskell mailing list manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Michelangelo" = callPackage
@@ -13568,7 +13347,6 @@ self: {
        description = "OpenGL for dummies";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MicrosoftTranslator" = callPackage
@@ -13586,7 +13364,6 @@ self: {
        description = "Interface for Microsoft Translator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MiniAgda" = callPackage
@@ -13617,6 +13394,29 @@ self: {
      }:
      mkDerivation {
        pname = "MissingH";
+       version = "1.4.2.0";
+       sha256 = "1wfhpb351nrqjryf9si9j13nkvrqybhkkyc9643wqq8ywkdd59b9";
+       libraryHaskellDepends = [
+         array base containers directory filepath hslogger mtl network
+         network-bsd old-locale old-time parsec process random regex-compat
+         time unix
+       ];
+       testHaskellDepends = [
+         base containers directory errorcall-eq-instance filepath HUnit
+         old-time parsec regex-compat time unix
+       ];
+       description = "Large utility library";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "MissingH_1_4_3_0" = callPackage
+    ({ mkDerivation, array, base, containers, directory
+     , errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network
+     , network-bsd, old-locale, old-time, parsec, process, random
+     , regex-compat, time, unix
+     }:
+     mkDerivation {
+       pname = "MissingH";
        version = "1.4.3.0";
        sha256 = "196cniya5wzcv2d777nr0f7hinclpals4ia1mkzzv35870pqr6lw";
        libraryHaskellDepends = [
@@ -13630,6 +13430,7 @@ self: {
        ];
        description = "Large utility library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "MissingK" = callPackage
@@ -13670,7 +13471,6 @@ self: {
        description = "Haskell interface to Python";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Mobile-Legends-Hack-Cheats" = callPackage
@@ -13755,7 +13555,6 @@ self: {
        description = "Monad-transformer version of the Control.Exception module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MonadCatchIO-mtl-foreign" = callPackage
@@ -13768,7 +13567,6 @@ self: {
        description = "Polymorphic combinators for working with foreign functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MonadCatchIO-transformers" = callPackage
@@ -13802,7 +13600,6 @@ self: {
        description = "Polymorphic combinators for working with foreign functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MonadCompose" = callPackage
@@ -13833,7 +13630,6 @@ self: {
        description = "Automatically generate layered monads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MonadPrompt" = callPackage
@@ -13855,6 +13651,8 @@ self: {
        pname = "MonadRandom";
        version = "0.5.3";
        sha256 = "17qaw1gg42p9v6f87dj5vih7l88lddbyd8880ananj8avanls617";
+       revision = "1";
+       editedCabalFile = "1wpgmcv704i7x38jwalnbmx8c10vdw269gbvzjxaj4rlvff3s4sq";
        libraryHaskellDepends = [
          base mtl primitive random transformers transformers-compat
        ];
@@ -13936,7 +13734,6 @@ self: {
        description = "A simple tetris clone";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Monatron" = callPackage
@@ -13962,7 +13759,6 @@ self: {
        description = "MonadIO instances for the Monatron transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Monocle" = callPackage
@@ -13975,7 +13771,6 @@ self: {
        description = "Symbolic computations in strict monoidal categories with LaTeX output";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MorseCode" = callPackage
@@ -14024,7 +13819,6 @@ self: {
        description = "Automated Mutation Testing for HUnit tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MuCheck-Hspec" = callPackage
@@ -14040,7 +13834,6 @@ self: {
        description = "Automated Mutation Testing for Hspec tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MuCheck-QuickCheck" = callPackage
@@ -14056,7 +13849,6 @@ self: {
        description = "Automated Mutation Testing for QuickCheck tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MuCheck-SmallCheck" = callPackage
@@ -14072,7 +13864,6 @@ self: {
        description = "Automated Mutation Testing for SmallCheck tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Munkres" = callPackage
@@ -14164,7 +13955,6 @@ self: {
        description = "Most likely order of mutation events in RNA";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "MyPrimes" = callPackage
@@ -14251,7 +14041,6 @@ self: {
        description = "A Haskell interface to Lego Mindstorms NXT";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {bluetooth = null;};
 
   "NXTDSL" = callPackage
@@ -14308,6 +14097,24 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "NanoID" = callPackage
+    ({ mkDerivation, base, bytestring, extra, mwc-random
+     , optparse-applicative
+     }:
+     mkDerivation {
+       pname = "NanoID";
+       version = "1.2.0";
+       sha256 = "1fwbzdj7cn96fbq4vsp4582p317qw3piy237vxf79d0wmdp006zn";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bytestring extra mwc-random ];
+       executableHaskellDepends = [
+         base bytestring mwc-random optparse-applicative
+       ];
+       description = "NanoID generator";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "NanoProlog" = callPackage
     ({ mkDerivation, base, containers, ListLike, uu-parsinglib }:
      mkDerivation {
@@ -14349,7 +14156,6 @@ self: {
        description = "Instances of NcStore for hypercuboids";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "NaturalLanguageAlphabets" = callPackage
@@ -14414,7 +14220,6 @@ self: {
        description = "Context Algebra of near";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Neks" = callPackage
@@ -14542,7 +14347,6 @@ self: {
        description = "Ninja game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "NoHoed" = callPackage
@@ -14574,7 +14378,6 @@ self: {
        description = "Microbenchmarks for various array libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "NoTrace" = callPackage
@@ -14620,7 +14423,6 @@ self: {
        description = "A Nomic game in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Nomyx-Core" = callPackage
@@ -14648,7 +14450,6 @@ self: {
        description = "A Nomic game in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Nomyx-Language" = callPackage
@@ -14669,7 +14470,6 @@ self: {
        description = "Language to express rules for Nomic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Nomyx-Rules" = callPackage
@@ -14688,7 +14488,6 @@ self: {
        description = "Language to express rules for Nomic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Nomyx-Web" = callPackage
@@ -14714,7 +14513,6 @@ self: {
        description = "Web gui for Nomyx";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "NonEmpty" = callPackage
@@ -14745,7 +14543,6 @@ self: {
        description = "A list with a length of at least one";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "NumInstances" = callPackage
@@ -14824,7 +14621,6 @@ self: {
        description = "Nussinov78 using the ADPfusion library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Nutri" = callPackage
@@ -14893,7 +14689,6 @@ self: {
        description = "Parse OpenStreetMap files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "OTP" = callPackage
@@ -15061,7 +14856,6 @@ self: {
        description = "Text UI library for performing parallel remote SSH operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "OneTuple" = callPackage
@@ -15127,7 +14921,6 @@ self: {
        description = "Assorted utilities to work with AFP data streams";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "OpenAL" = callPackage
@@ -15220,7 +15013,6 @@ self: {
        description = "Quickcheck instances for various data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "OpenGLRaw" = callPackage
@@ -15269,7 +15061,6 @@ self: {
        description = "ADT wrapper and renderer for OpenSCAD models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "OpenVG" = callPackage
@@ -15282,7 +15073,6 @@ self: {
        description = "OpenVG (ShivaVG-0.2.1) binding";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "OpenVGRaw" = callPackage
@@ -15481,7 +15271,6 @@ self: {
        description = "An addon to PCLT package: enchance PCLT catalog with PostgreSQL powers";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "PDBtools" = callPackage
@@ -15588,7 +15377,6 @@ self: {
        description = "Page-oriented extraction and composition library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Paillier" = callPackage
@@ -15656,7 +15444,6 @@ self: {
        description = "a code generator for partial differential equations solvers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Parallel-Arrows-BaseSpec" = callPackage
@@ -15707,7 +15494,6 @@ self: {
        description = "Eden based backend for @Parallel-Arrows-Definition@";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Parallel-Arrows-Multicore" = callPackage
@@ -15911,7 +15697,6 @@ self: {
        description = "Permutations of effectful computations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Persistence" = callPackage
@@ -16041,7 +15826,6 @@ self: {
        description = "Real-time line plotter for generic data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "PlslTools" = callPackage
@@ -16062,7 +15846,6 @@ self: {
        description = "So far just a lint like program for PL/SQL. Diff and refactoring tools are planned";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Plural" = callPackage
@@ -16107,7 +15890,7 @@ self: {
      }) {};
 
   "PortMidi" = callPackage
-    ({ mkDerivation, alsaLib, base }:
+    ({ mkDerivation, alsa-lib, base }:
      mkDerivation {
        pname = "PortMidi";
        version = "0.2.0.0";
@@ -16115,13 +15898,13 @@ self: {
        revision = "1";
        editedCabalFile = "0h3gql271mdz3kh0jgimxv8ada34b0h4n8wnyf5i759fqxpf6w86";
        libraryHaskellDepends = [ base ];
-       librarySystemDepends = [ alsaLib ];
+       librarySystemDepends = [ alsa-lib ];
        description = "A binding for PortMedia/PortMidi";
        license = lib.licenses.bsd3;
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "PortMidi-simple" = callPackage
     ({ mkDerivation, base, PortMidi }:
@@ -16135,6 +15918,9 @@ self: {
        executableHaskellDepends = [ base PortMidi ];
        description = "Simplified PortMidi wrapper";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "PostgreSQL" = callPackage
@@ -16166,32 +15952,34 @@ self: {
 
   "PrimitiveArray" = callPackage
     ({ mkDerivation, aeson, base, binary, bits, cereal, cereal-vector
-     , containers, criterion, deepseq, DPutils, hashable, lens
-     , log-domain, mtl, OrderedBits, primitive, QuickCheck, smallcheck
-     , tasty, tasty-quickcheck, tasty-smallcheck, tasty-th, text, vector
+     , containers, criterion, deepseq, DPutils, hashable, hashtables
+     , lens, log-domain, mtl, OrderedBits, primitive, QuickCheck
+     , smallcheck, tasty, tasty-quickcheck, tasty-smallcheck, tasty-th
+     , text, unordered-containers, vector, vector-algorithms
      , vector-binary-instances, vector-th-unbox
      }:
      mkDerivation {
        pname = "PrimitiveArray";
-       version = "0.10.0.0";
-       sha256 = "0g9shj3zqk8rdp905di9i5g5bhga5msc7cs609fk3nkjm16ms0vi";
+       version = "0.10.1.0";
+       sha256 = "1qjld82q0fdaav6y9ky0bkmqjxvv48502zd3s9i1b72wn436zhib";
        libraryHaskellDepends = [
          aeson base binary bits cereal cereal-vector containers deepseq
-         DPutils hashable lens log-domain mtl OrderedBits primitive
-         QuickCheck smallcheck text vector vector-binary-instances
-         vector-th-unbox
+         DPutils hashable hashtables lens log-domain mtl OrderedBits
+         primitive QuickCheck smallcheck text unordered-containers vector
+         vector-algorithms vector-binary-instances vector-th-unbox
        ];
        testHaskellDepends = [
          aeson base binary bits cereal cereal-vector containers deepseq
-         DPutils hashable lens log-domain mtl OrderedBits primitive
-         QuickCheck smallcheck tasty tasty-quickcheck tasty-smallcheck
-         tasty-th text vector vector-binary-instances vector-th-unbox
+         DPutils hashable hashtables lens log-domain mtl OrderedBits
+         primitive QuickCheck smallcheck tasty tasty-quickcheck
+         tasty-smallcheck tasty-th text unordered-containers vector
+         vector-algorithms vector-binary-instances vector-th-unbox
        ];
        benchmarkHaskellDepends = [
          aeson base binary bits cereal cereal-vector containers criterion
-         deepseq DPutils hashable lens log-domain mtl OrderedBits primitive
-         QuickCheck smallcheck text vector vector-binary-instances
-         vector-th-unbox
+         deepseq DPutils hashable hashtables lens log-domain mtl OrderedBits
+         primitive QuickCheck smallcheck text unordered-containers vector
+         vector-algorithms vector-binary-instances vector-th-unbox
        ];
        description = "Efficient multidimensional arrays";
        license = lib.licenses.bsd3;
@@ -16230,7 +16018,6 @@ self: {
        libraryHaskellDepends = [ base haskell98 pretty template-haskell ];
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "PriorityChansConverger" = callPackage
@@ -16256,7 +16043,17 @@ self: {
        description = "Probability distribution monads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "Probnet" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "Probnet";
+       version = "0.1.0.4";
+       sha256 = "02q4c7mp268r8f3p2f37yksssginjrs89ldqljpn80aj53ylcqyf";
+       libraryHaskellDepends = [ base ];
+       description = "Geometric Extrapolation of Integer Sequences with error prediction";
+       license = lib.licenses.mit;
      }) {};
 
   "PropLogic" = callPackage
@@ -16323,7 +16120,6 @@ self: {
        description = "A Perl 6 Implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Pup-Events" = callPackage
@@ -16344,7 +16140,6 @@ self: {
        description = "A networked event handling framework for hooking into other programs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Pup-Events-Client" = callPackage
@@ -16379,7 +16174,6 @@ self: {
        description = "A networked event handling framework for hooking into other programs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Pup-Events-PQueue" = callPackage
@@ -16519,7 +16313,6 @@ self: {
        description = "Programming with Eventual Consistency over Cassandra";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "QuickAnnotate" = callPackage
@@ -16763,7 +16556,6 @@ self: {
        description = "Binding to code that controls a Segway RMP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {canlib = null; ftd2xx = null;};
 
   "RNAFold" = callPackage
@@ -16787,7 +16579,6 @@ self: {
        description = "RNA secondary structure prediction";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RNAFoldProgs" = callPackage
@@ -16808,7 +16599,6 @@ self: {
        description = "RNA secondary structure folding";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RNAdesign" = callPackage
@@ -16835,7 +16625,6 @@ self: {
        description = "Multi-target RNA sequence design";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RNAdraw" = callPackage
@@ -16856,7 +16645,6 @@ self: {
        description = "Draw RNA secondary structures";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RNAlien" = callPackage
@@ -16890,7 +16678,6 @@ self: {
        description = "Unsupervized construction of RNA family models";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RNAwolf" = callPackage
@@ -16912,7 +16699,6 @@ self: {
        description = "RNA folding with non-canonical basepairs and base-triplets";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RSA" = callPackage
@@ -17080,7 +16866,6 @@ self: {
        description = "HTTP to XMPP omegle chats gate";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Rasenschach" = callPackage
@@ -17112,8 +16897,8 @@ self: {
      }:
      mkDerivation {
        pname = "Rasterific";
-       version = "0.7.5.3";
-       sha256 = "164ivzwrla90baqz6gapmcmi1yg5bk0sczqv4xawx3l7dzkz8ghv";
+       version = "0.7.5.4";
+       sha256 = "07silf2b85kxq7wvl5mnwrg5p0gwzlapipj9hi224i9ix1knn5f1";
        libraryHaskellDepends = [
          base bytestring containers dlist FontyFruity free JuicyPixels mtl
          primitive transformers vector vector-algorithms
@@ -17344,7 +17129,6 @@ self: {
        description = "quasiquoter for inline-R code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RollingDirectory" = callPackage
@@ -17370,7 +17154,6 @@ self: {
        description = "Limits the size of a directory's contents";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "RoyalMonad" = callPackage
@@ -17385,7 +17168,7 @@ self: {
      }) {};
 
   "RtMidi" = callPackage
-    ({ mkDerivation, alsaLib, base, deepseq, pretty-simple, tasty
+    ({ mkDerivation, alsa-lib, base, deepseq, pretty-simple, tasty
      , tasty-hunit, unliftio-core, vector
      }:
      mkDerivation {
@@ -17395,14 +17178,14 @@ self: {
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base deepseq unliftio-core vector ];
-       librarySystemDepends = [ alsaLib ];
+       librarySystemDepends = [ alsa-lib ];
        executableHaskellDepends = [ base pretty-simple vector ];
        testHaskellDepends = [ base tasty tasty-hunit vector ];
        description = "Haskell wrapper for RtMidi, the lightweight, cross-platform MIDI I/O library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "RxHaskell" = callPackage
     ({ mkDerivation, base, containers, stm, transformers }:
@@ -17436,7 +17219,6 @@ self: {
        description = "Library for accessing S3 compatible storage services";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SBench" = callPackage
@@ -17455,7 +17237,6 @@ self: {
        description = "A benchmark suite for runtime and heap measurements over a series of inputs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SCRIPTWriter" = callPackage
@@ -17476,7 +17257,6 @@ self: {
        description = "ESCRIPT: a human friendly language for programming Bitcoin scripts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SCalendar" = callPackage
@@ -17494,7 +17274,6 @@ self: {
        description = "This is a library for handling calendars and resource availability based on the \"top-nodes algorithm\" and set operations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SDL" = callPackage
@@ -17627,7 +17406,6 @@ self: {
        description = "Higher level library on top of SFML";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SFont" = callPackage
@@ -17640,7 +17418,6 @@ self: {
        description = "SFont SDL Bitmap Fonts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SG" = callPackage
@@ -17668,7 +17445,6 @@ self: {
        description = "An example of using the SG and OpenGL libraries";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SGplus" = callPackage
@@ -17836,7 +17612,6 @@ self: {
        description = "STLink USB interface in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "STM32-Zombie" = callPackage
@@ -17854,7 +17629,6 @@ self: {
        description = "control a STM32F103 microcontroller";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "STM32F103xx-SVD" = callPackage
@@ -17917,7 +17691,6 @@ self: {
        description = "Code generation tool for Quartz code from a SVG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SVGFonts" = callPackage
@@ -18105,7 +17878,6 @@ self: {
        description = "Scientific workflow management system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SciFlow-drmaa" = callPackage
@@ -18123,7 +17895,6 @@ self: {
        description = "Scientific workflow management system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ScratchFs" = callPackage
@@ -18163,7 +17934,6 @@ self: {
        description = "A cross platform P2P VPN application built using Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SecureHash-SHA3" = callPackage
@@ -18217,7 +17987,6 @@ self: {
        description = "Selects a representative subset of sequences from multiple sequence alignment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Semantique" = callPackage
@@ -18298,6 +18067,34 @@ self: {
        broken = true;
      }) {};
 
+  "ShellCheck_0_7_1" = callPackage
+    ({ mkDerivation, aeson, array, base, bytestring, containers
+     , deepseq, Diff, directory, filepath, mtl, parsec, process
+     , QuickCheck, regex-tdfa
+     }:
+     mkDerivation {
+       pname = "ShellCheck";
+       version = "0.7.1";
+       sha256 = "06m4wh891nah3y0br4wh3adpsb16zawkb2ijgf1vcz61fznj6ps1";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson array base bytestring containers deepseq Diff directory
+         filepath mtl parsec process QuickCheck regex-tdfa
+       ];
+       executableHaskellDepends = [
+         aeson array base bytestring containers deepseq Diff directory
+         filepath mtl parsec QuickCheck regex-tdfa
+       ];
+       testHaskellDepends = [
+         aeson array base bytestring containers deepseq Diff directory
+         filepath mtl parsec QuickCheck regex-tdfa
+       ];
+       description = "Shell script analysis tool";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ShellCheck" = callPackage
     ({ mkDerivation, aeson, array, base, bytestring, containers
      , deepseq, Diff, directory, filepath, mtl, parsec, process
@@ -18352,7 +18149,6 @@ self: {
        description = "\"compatline\" backend module for Shellac";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shellac-editline" = callPackage
@@ -18367,7 +18163,6 @@ self: {
        description = "Editline backend module for Shellac";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shellac-haskeline" = callPackage
@@ -18380,7 +18175,6 @@ self: {
        description = "Haskeline backend module for Shellac";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shellac-readline" = callPackage
@@ -18395,7 +18189,6 @@ self: {
        description = "Readline backend module for Shellac";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ShortestPathProblems" = callPackage
@@ -18417,7 +18210,6 @@ self: {
        description = "grammars for TSP and SHP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ShowF" = callPackage
@@ -18465,7 +18257,6 @@ self: {
        description = "A Virtual Dom in pure Haskell, based on Html as an Alignable Functor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-backend-snabbdom" = callPackage
@@ -18497,7 +18288,6 @@ self: {
        description = "A backend for rendering Shpadoinkle as Text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-console" = callPackage
@@ -18544,7 +18334,6 @@ self: {
        description = "Chrome extension to aide in development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-disembodied" = callPackage
@@ -18564,7 +18353,6 @@ self: {
        description = "Shpadoinkle as a static site";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-examples" = callPackage
@@ -18597,7 +18385,6 @@ self: {
        description = "Example usages of Shpadoinkle";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-html" = callPackage
@@ -18617,7 +18404,6 @@ self: {
        description = "A typed, template generated Html DSL, and helpers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-lens" = callPackage
@@ -18653,7 +18439,6 @@ self: {
        description = "A single page application rounter for Shpadoinkle based on Servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-streaming" = callPackage
@@ -18688,7 +18473,6 @@ self: {
        description = "Read standard file formats into Shpadoinkle with Template Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shpadoinkle-widgets" = callPackage
@@ -18713,7 +18497,6 @@ self: {
        description = "A collection of common reusable types and components";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Shrub" = callPackage
@@ -18777,7 +18560,6 @@ self: {
        description = "A Simple Graphics Library from the SimpleH framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SimpleH" = callPackage
@@ -18815,7 +18597,6 @@ self: {
        description = "Simple, configurable logging";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SimpleServer" = callPackage
@@ -18837,7 +18618,6 @@ self: {
        description = "A simple static file server, for when apache is overkill";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SimpleTableGenerator" = callPackage
@@ -18916,7 +18696,6 @@ self: {
        description = "A tiny, lazy SMT solver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SmtLib" = callPackage
@@ -18953,7 +18732,6 @@ self: {
        description = "E-library directory based on FUSE virtual file system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) zip;};
 
   "SoOSiM" = callPackage
@@ -18992,7 +18770,6 @@ self: {
        description = "Football simulation framework for teaching functional programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SoccerFunGL" = callPackage
@@ -19013,7 +18790,6 @@ self: {
        description = "OpenGL UI for the SoccerFun framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Sonnex" = callPackage
@@ -19047,7 +18823,6 @@ self: {
        description = "Static code analysis using graph-theoretic techniques";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Southpaw" = callPackage
@@ -19117,7 +18892,6 @@ self: {
        description = "Lock free Spin Counter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Spintax" = callPackage
@@ -19209,7 +18983,6 @@ self: {
        description = "Provides authentification helpers for Spock";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Spock-core" = callPackage
@@ -19266,7 +19039,6 @@ self: {
        description = "Lucid support for Spock";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Spock-worker" = callPackage
@@ -19285,7 +19057,6 @@ self: {
        description = "Background workers for Spock";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "SpreadsheetML" = callPackage
@@ -19389,7 +19160,6 @@ self: {
        description = "Libary for Stockholm aligmnent format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Stomp" = callPackage
@@ -19440,7 +19210,6 @@ self: {
        description = "Converts SDF to Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Strafunski-StrategyLib" = callPackage
@@ -19604,7 +19373,6 @@ self: {
        description = "Syntax Macros in the form of an EDSL";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Sysmon" = callPackage
@@ -19739,8 +19507,6 @@ self: {
        libraryHaskellDepends = [ base DeepArrow TypeCompose ];
        description = "Tangible Values -- composable interfaces";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TYB" = callPackage
@@ -19885,19 +19651,18 @@ self: {
 
   "Taxonomy" = callPackage
     ({ mkDerivation, aeson, base, bytestring, either-unwrap, fgl
-     , parsec, text, vector
+     , graphviz, parsec, text, vector
      }:
      mkDerivation {
        pname = "Taxonomy";
-       version = "2.1.0";
-       sha256 = "1l64ma631q1gh57gwg09mpxz66hkhqbc9f9dn2bhy681p8ia7j50";
+       version = "2.2.0";
+       sha256 = "0rwm3p510k5nmzbdy8bxdviv37mba0bvygxq92f24wqb5gry8w9w";
        libraryHaskellDepends = [
-         aeson base bytestring either-unwrap fgl parsec text vector
+         aeson base bytestring either-unwrap fgl graphviz parsec text vector
        ];
        description = "Libary for parsing, processing and vizualization of taxonomy data";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TaxonomyTools" = callPackage
@@ -19918,7 +19683,6 @@ self: {
        description = "Tool for parsing, processing, comparing and visualizing taxonomy data";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TeX-my-math" = callPackage
@@ -19928,10 +19692,8 @@ self: {
      }:
      mkDerivation {
        pname = "TeX-my-math";
-       version = "0.202.1.0";
-       sha256 = "1cp3spzlssnnzvnxvkg59h4nnv2icvld9mdkhn97b043kvmbp4hl";
-       revision = "2";
-       editedCabalFile = "1j3nbbljj89mhhcld7dzgmixilfikwng05zcndsisnz75r1kp1gv";
+       version = "0.202.2.0";
+       sha256 = "1w074jr2qr603hjh644cvlc0n1miaz10r8mhkskq39jn184kriyl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -19948,7 +19710,6 @@ self: {
        description = "Render general Haskell math to LaTeX. Or: math typesetting with high signal-to-noise–ratio.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TeaHS" = callPackage
@@ -19965,7 +19726,6 @@ self: {
        description = "TeaHS Game Creation Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Tensor" = callPackage
@@ -20063,6 +19823,7 @@ self: {
        description = "Haskell bindings for the Apache Thrift RPC system";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Tic-Tac-Toe" = callPackage
@@ -20295,7 +20056,6 @@ self: {
        description = "Wait-free Tree Counter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TreeStructures" = callPackage
@@ -20332,7 +20092,6 @@ self: {
        description = "Lock free Treiber stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TrendGraph" = callPackage
@@ -20369,7 +20128,6 @@ self: {
        description = "Automatic type inference of generalized tries with Template Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Twofish" = callPackage
@@ -20409,7 +20167,6 @@ self: {
        description = "Typing speed game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TypeCompose" = callPackage
@@ -20437,7 +20194,6 @@ self: {
        description = "TypeIlluminator is a prototype tool exploring debugging of type errors/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "TypeNat" = callPackage
@@ -20497,7 +20253,6 @@ self: {
        description = "A small command-line accounting tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "URLT" = callPackage
@@ -20516,7 +20271,6 @@ self: {
        description = "Library for maintaining correctness of URLs within an application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "URLb" = callPackage
@@ -20603,6 +20357,9 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "A simple interface to shadow passwords (aka, shadow.h)";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "Updater" = callPackage
@@ -20628,7 +20385,6 @@ self: {
        description = "Url dispatcher. Helps to retain friendly URLs in web applications.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Useful" = callPackage
@@ -20844,7 +20600,6 @@ self: {
        description = "ViennaRNA v2 extensions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ViennaRNAParser" = callPackage
@@ -20917,7 +20672,8 @@ self: {
        ];
        description = "Bindings to the VulkanMemoryAllocator library";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
+       platforms = [ "aarch64-linux" "x86_64-linux" ];
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "WAVE" = callPackage
@@ -20935,7 +20691,6 @@ self: {
        description = "WAVE audio file IO library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WEditor" = callPackage
@@ -20966,7 +20721,6 @@ self: {
        description = "Text-editor widget with dynamic line-wrapping for use with Brick";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WEditorHyphen" = callPackage
@@ -20980,7 +20734,6 @@ self: {
        description = "Language-specific hyphenation policies for WEditor";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WL500gPControl" = callPackage
@@ -20998,7 +20751,6 @@ self: {
        description = "A simple command line tools to control the Asus WL500gP router";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WL500gPLib" = callPackage
@@ -21048,7 +20800,6 @@ self: {
        description = "Convert the WURFL file into a Parsec parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WXDiffCtrl" = callPackage
@@ -21062,7 +20813,6 @@ self: {
        description = "WXDiffCtrl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WashNGo" = callPackage
@@ -21082,7 +20832,6 @@ self: {
        description = "WASH is a family of EDSLs for programming Web applications in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WaveFront" = callPackage
@@ -21100,7 +20849,6 @@ self: {
        description = "Parsers and utilities for the OBJ WaveFront 3D model format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Weather" = callPackage
@@ -21145,7 +20893,6 @@ self: {
        description = "JavaScript analysis tools";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WebBits-multiplate" = callPackage
@@ -21163,7 +20910,6 @@ self: {
        description = "A Multiplate instance for JavaScript";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WebCont" = callPackage
@@ -21183,7 +20929,6 @@ self: {
        description = "Continuation based web programming for Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WeberLogic" = callPackage
@@ -21489,7 +21234,6 @@ self: {
        description = "Bigram word pair alignments";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "WordNet" = callPackage
@@ -21571,7 +21315,6 @@ self: {
        description = "Generic (SYB3) construction of wxHaskell widgets";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "X" = callPackage
@@ -21607,6 +21350,25 @@ self: {
          inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXinerama; 
          inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXrender;};
 
+  "X11_1_10" = callPackage
+    ({ mkDerivation, base, data-default-class, libX11, libXext
+     , libXinerama, libXrandr, libXrender, libXScrnSaver
+     }:
+     mkDerivation {
+       pname = "X11";
+       version = "1.10";
+       sha256 = "1zrdqryx99izjvsrsalb65ihpmikm9r6cjlci7cfp6wlwa3i585n";
+       libraryHaskellDepends = [ base data-default-class ];
+       librarySystemDepends = [
+         libX11 libXext libXinerama libXrandr libXrender libXScrnSaver
+       ];
+       description = "A binding to the X11 graphics library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXScrnSaver; 
+         inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXinerama; 
+         inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXrender;};
+
   "X11-extras" = callPackage
     ({ mkDerivation, base, libX11, X11 }:
      mkDerivation {
@@ -21772,7 +21534,6 @@ self: {
        description = "XMPP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "XSaiga" = callPackage
@@ -21800,7 +21561,6 @@ self: {
        description = "An implementation of a polynomial-time top-down parser suitable for NLP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Xauth" = callPackage
@@ -21880,7 +21640,6 @@ self: {
        description = "Yet Another Pong Clone using SDL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "YFrob" = callPackage
@@ -21929,7 +21688,6 @@ self: {
        description = "A simple blog engine powered by Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "YamlReference" = callPackage
@@ -22036,7 +21794,6 @@ self: {
        description = "A MUD client library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Yogurt-Standalone" = callPackage
@@ -22057,9 +21814,31 @@ self: {
        description = "A functional MUD client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) readline;};
 
+  "Z-Botan" = callPackage
+    ({ mkDerivation, base, Cabal, directory, filepath, ghc-prim, hspec
+     , hspec-discover, HUnit, integer-gmp, QuickCheck
+     , quickcheck-instances, scientific, stm, time, Z-Data, Z-IO
+     }:
+     mkDerivation {
+       pname = "Z-Botan";
+       version = "0.3.1.0";
+       sha256 = "0920pzs9q105h32d7yp83bblhq0id5vzzw3d2pysg4dd127933xc";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal directory filepath ];
+       libraryHaskellDepends = [
+         base ghc-prim integer-gmp scientific stm time Z-Data Z-IO
+       ];
+       libraryToolDepends = [ hspec-discover ];
+       testHaskellDepends = [
+         base hspec HUnit QuickCheck quickcheck-instances Z-Data Z-IO
+       ];
+       description = "Crypto for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "Z-Data" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, case-insensitive
      , containers, deepseq, ghc-prim, hashable, hspec, hspec-discover
@@ -22068,8 +21847,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-Data";
-       version = "0.8.1.0";
-       sha256 = "19w5g5flsjnhjpvnmw7s8b5jg5nlpg0md99zgp3by8gjyigappc7";
+       version = "0.8.3.0";
+       sha256 = "1y8vgz3jps2vsg5ay9s792knfyk5cvc6549q5li51jaqibsrw99m";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq ghc-prim
@@ -22096,8 +21875,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-IO";
-       version = "0.7.1.0";
-       sha256 = "18d2q9fg4ydqpnrzvpcx1arjv4yl2966aax68fz3izgmsbp95k0l";
+       version = "0.8.1.0";
+       sha256 = "08nw9jxg2n8yls5p1dhyy976qbcj5kwv468fq1dijn91f7ylhfix";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -22113,7 +21892,6 @@ self: {
        description = "Simple and high performance IO toolkit for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Z-MessagePack" = callPackage
@@ -22124,8 +21902,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-MessagePack";
-       version = "0.4.0.1";
-       sha256 = "1i1ycf1bhahbh7d9rvz4hl5jq16mld8sya2h2xrxlvg9yqab19hy";
+       version = "0.4.1.0";
+       sha256 = "0sq4w488dyhk3nxgdw394i9n79j45hhxp3yzgw2fpmjh9xwfv1m9";
        libraryHaskellDepends = [
          base containers deepseq hashable integer-gmp primitive QuickCheck
          scientific tagged time unordered-containers Z-Data Z-IO
@@ -22139,7 +21917,6 @@ self: {
        description = "MessagePack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Z-YAML" = callPackage
@@ -22148,8 +21925,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-YAML";
-       version = "0.3.2.0";
-       sha256 = "01v0vza54lpxijg4znp2pcnjw2z6ybvx453xqy7ljwf9289csfq8";
+       version = "0.3.3.0";
+       sha256 = "012flgd88rwya7g5lkbla4841pzq2b1b9m4jkmggk38kpbrhf515";
        libraryHaskellDepends = [
          base primitive scientific transformers unordered-containers Z-Data
          Z-IO
@@ -22158,7 +21935,6 @@ self: {
        description = "YAML tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ZEBEDDE" = callPackage
@@ -22278,7 +22054,6 @@ self: {
        description = "Compare genome assemblies";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "abacate" = callPackage
@@ -22333,7 +22108,6 @@ self: {
        description = "Bindings for ABC, A System for Sequential Synthesis and Verification";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {abc = null;};
 
   "abcnotation" = callPackage
@@ -22506,7 +22280,6 @@ self: {
        description = "Drive Aho-Corasick machines in Conduit pipelines";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "acc" = callPackage
@@ -22574,7 +22347,6 @@ self: {
        description = "Linear algebra and interpolation using the Accelerate framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "accelerate-bignum" = callPackage
@@ -22814,7 +22586,6 @@ self: {
        description = "Fast Fourier transform and convolution using the Accelerate framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "accelerate-fourier-benchmark" = callPackage
@@ -23092,7 +22863,6 @@ self: {
        description = "a typesafe way encode accelerate matrices and vectors";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "accelerate-utility" = callPackage
@@ -23159,7 +22929,6 @@ self: {
        description = "Provides Access Token for Services";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "accuerr" = callPackage
@@ -23610,6 +23379,8 @@ self: {
        libraryHaskellDepends = [ base MemoTrie random ];
        description = "Memoized random number generation";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "acme-microwave" = callPackage
@@ -23735,7 +23506,6 @@ self: {
        description = "The flexibility of Haskell and the safety of PHP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "acme-pointful-numbers" = callPackage
@@ -23892,6 +23662,8 @@ self: {
        libraryHaskellDepends = [ array base random ];
        description = "A somewhat flexible Zalgo̐ te̳͜x̥̖̉̓͞t̍̌̔ ̀̃t̴̢̞̜͓̝r̶̬̆̂̒͟á̧̡͎͔̯̰̕n̹̾̓ͬͦ̍͘ṡ̢͓͉ͮ͆l̠̖̹̗̳̖̽̌ͤ͞a͚̭͙̹̲ͭͩt͈͐o̢̭͇͍̟͐ͬ̾ͪ͜r͇.̸̅ͭ̐̀̊ͨ͛";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "acme-zero" = callPackage
@@ -23929,7 +23701,6 @@ self: {
        description = "AcousticBrainz API client";
        license = lib.licenses.cc0;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "acquire" = callPackage
@@ -23960,10 +23731,8 @@ self: {
      }:
      mkDerivation {
        pname = "active";
-       version = "0.2.0.14";
-       sha256 = "0x3b4ln6csa554qls28wbxvclkbdz3yi60i1m0q5ing0cs16fifz";
-       revision = "1";
-       editedCabalFile = "01j431dkl3ax98g974v6mgxv9xha4c0hlpjqq5fvh7l8lyjan676";
+       version = "0.2.0.15";
+       sha256 = "019xr66pahsssqr2hybs88mga4qshv1vmd22j7624wqafqm57d74";
        libraryHaskellDepends = [
          base lens linear semigroupoids semigroups vector
        ];
@@ -24001,7 +23770,6 @@ self: {
        description = "Haskell code presentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "activehs-base" = callPackage
@@ -24058,7 +23826,6 @@ self: {
        description = "Actors with multi-headed receive clauses";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "acts" = callPackage
@@ -24151,8 +23918,8 @@ self: {
      }:
      mkDerivation {
        pname = "adblock2privoxy";
-       version = "2.0.1";
-       sha256 = "048l78mf3ccb7l0p1zg1wsvqmvpsaqwgik29xm333y7fjlcm0kq6";
+       version = "2.0.2";
+       sha256 = "0klw0rbxp5g240igrv10808inqmlh3wr3d46zphy5xjxjih07yf3";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -24198,7 +23965,6 @@ self: {
        description = "A full-featured library for parsing, validating, and rendering email addresses";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "adhoc-network" = callPackage
@@ -24217,7 +23983,6 @@ self: {
        description = "Ad-hoc P2P network protocol";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "adict" = callPackage
@@ -24240,7 +24005,6 @@ self: {
        description = "Approximate dictionary searching";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "adjunction" = callPackage
@@ -24358,7 +24122,6 @@ self: {
        description = "Subword construction in adp-multi using monadiccp";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "adtrees" = callPackage
@@ -24394,8 +24157,6 @@ self: {
        testHaskellDepends = [ base directory filepath HUnit text ];
        description = "Advent of Code REST API bindings and servant API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "advent-of-code-ocr" = callPackage
@@ -24430,19 +24191,45 @@ self: {
      }) {};
 
   "aern2-mp" = callPackage
-    ({ mkDerivation, base, convertible, hspec, integer-logarithms, lens
-     , mixed-types-num, QuickCheck, regex-tdfa, rounded
-     , template-haskell
+    ({ mkDerivation, base, cdar-mBound, collect-errors, deepseq, hspec
+     , integer-logarithms, mixed-types-num, QuickCheck, reflection
+     , regex-tdfa, template-haskell
      }:
      mkDerivation {
        pname = "aern2-mp";
-       version = "0.1.4";
-       sha256 = "1q4ygvpxndvj0lsxb7aqw754nkxj1r2037f263g79vpjczkzzfwf";
+       version = "0.2.6.0";
+       sha256 = "0vfjgcf2pnspaixgxg8av7k0cqv5cqmy161zkgjr822n118an1ch";
        libraryHaskellDepends = [
-         base convertible hspec integer-logarithms lens mixed-types-num
-         QuickCheck regex-tdfa rounded template-haskell
+         base cdar-mBound collect-errors deepseq hspec integer-logarithms
+         mixed-types-num QuickCheck reflection regex-tdfa template-haskell
+       ];
+       testHaskellDepends = [
+         base cdar-mBound collect-errors deepseq hspec integer-logarithms
+         mixed-types-num QuickCheck reflection regex-tdfa template-haskell
+       ];
+       description = "Multi-precision ball (interval) arithmetic";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "aern2-mp_0_2_7_0" = callPackage
+    ({ mkDerivation, base, cdar-mBound, collect-errors, deepseq, hspec
+     , integer-logarithms, mixed-types-num, QuickCheck, reflection
+     , regex-tdfa, template-haskell
+     }:
+     mkDerivation {
+       pname = "aern2-mp";
+       version = "0.2.7.0";
+       sha256 = "1gsqaggg6mpcpl9s3z566gmbynj4l6n1fhni5b0p8pf5hj8n93gg";
+       libraryHaskellDepends = [
+         base cdar-mBound collect-errors deepseq hspec integer-logarithms
+         mixed-types-num QuickCheck reflection regex-tdfa template-haskell
+       ];
+       testHaskellDepends = [
+         base cdar-mBound collect-errors deepseq hspec integer-logarithms
+         mixed-types-num QuickCheck reflection regex-tdfa template-haskell
        ];
-       testHaskellDepends = [ base hspec QuickCheck ];
        description = "Multi-precision ball (interval) arithmetic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -24450,28 +24237,45 @@ self: {
      }) {};
 
   "aern2-real" = callPackage
-    ({ mkDerivation, aern2-mp, aeson, base, bytestring, containers
-     , convertible, hspec, lens, mixed-types-num, QuickCheck, random
-     , stm, transformers
+    ({ mkDerivation, aern2-mp, base, collect-errors, hspec
+     , integer-logarithms, mixed-types-num, QuickCheck
      }:
      mkDerivation {
        pname = "aern2-real";
-       version = "0.1.2";
-       sha256 = "1br2glj89xcm3iyb32yi1xwgzkva9mmvl9gih38kgg4ldidflvn8";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.2.6.0";
+       sha256 = "182vjrbdzjcpbbhmpsmv6i685jrnw94vda37646d1gph5v3hvfw6";
        libraryHaskellDepends = [
-         aern2-mp aeson base bytestring containers convertible hspec lens
-         mixed-types-num QuickCheck stm transformers
+         aern2-mp base collect-errors hspec integer-logarithms
+         mixed-types-num QuickCheck
        ];
-       executableHaskellDepends = [
-         aern2-mp base mixed-types-num QuickCheck random
+       testHaskellDepends = [
+         aern2-mp base collect-errors hspec integer-logarithms
+         mixed-types-num QuickCheck
        ];
-       testHaskellDepends = [ base hspec QuickCheck ];
-       description = "Exact real numbers via Cauchy sequences and MPFR";
+       description = "Real numbers as sequences of MPBalls";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "aern2-real_0_2_7_0" = callPackage
+    ({ mkDerivation, aern2-mp, base, collect-errors, hspec
+     , integer-logarithms, mixed-types-num, QuickCheck
+     }:
+     mkDerivation {
+       pname = "aern2-real";
+       version = "0.2.7.0";
+       sha256 = "0dsph1775rifr9vvx4w7v55bryqmh04fhk6nyk7d91yhn1sf6wc9";
+       libraryHaskellDepends = [
+         aern2-mp base collect-errors hspec integer-logarithms
+         mixed-types-num QuickCheck
+       ];
+       testHaskellDepends = [
+         aern2-mp base collect-errors hspec integer-logarithms
+         mixed-types-num QuickCheck
+       ];
+       description = "Real numbers as sequences of MPBalls";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aeson" = callPackage
@@ -24786,8 +24590,6 @@ self: {
        ];
        description = "Extra goodies for aeson";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aeson-filthy" = callPackage
@@ -24932,8 +24734,6 @@ self: {
        ];
        description = "Injecting fields into aeson values";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aeson-iproute" = callPackage
@@ -25020,7 +24820,6 @@ self: {
        description = "Fast JSON parsing and encoding (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aeson-optics" = callPackage
@@ -25340,20 +25139,21 @@ self: {
 
   "aeson-typescript" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, hspec, interpolate, mtl, process, template-haskell
-     , temporary, text, th-abstraction, unordered-containers
+     , filepath, hspec, mtl, process, string-interpolate
+     , template-haskell, temporary, text, th-abstraction
+     , unordered-containers
      }:
      mkDerivation {
        pname = "aeson-typescript";
-       version = "0.2.0.0";
-       sha256 = "15w28x2b8h402fic5agq96g51ssryvd7q3zs22n5mz9aa43qlphw";
+       version = "0.3.0.1";
+       sha256 = "0xbj6m1lxpv4qclz5msrdplpy3mdxq5icjl3fq4bwbqy5rs6vczv";
        libraryHaskellDepends = [
-         aeson base containers interpolate mtl template-haskell text
+         aeson base containers mtl string-interpolate template-haskell text
          th-abstraction unordered-containers
        ];
        testHaskellDepends = [
-         aeson base bytestring containers directory filepath hspec
-         interpolate mtl process template-haskell temporary text
+         aeson base bytestring containers directory filepath hspec mtl
+         process string-interpolate template-haskell temporary text
          th-abstraction unordered-containers
        ];
        description = "Generate TypeScript definition files from your ADTs";
@@ -25569,7 +25369,6 @@ self: {
        description = "Infinite state model checking of iterative C programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ag-pictgen" = callPackage
@@ -25611,6 +25410,8 @@ self: {
        ];
        description = "LSP server for Agda";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "agda-server" = callPackage
@@ -25632,7 +25433,6 @@ self: {
        description = "Http server for Agda (prototype)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "agda-snippets" = callPackage
@@ -25672,31 +25472,28 @@ self: {
        description = "Literate Agda support using agda-snippets, for Hakyll pages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "agda-unused" = callPackage
     ({ mkDerivation, aeson, Agda, base, containers, directory, filepath
-     , hspec, megaparsec, mtl, optparse-applicative, text
+     , hspec, mtl, optparse-applicative, text
      }:
      mkDerivation {
        pname = "agda-unused";
-       version = "0.1.0";
-       sha256 = "1g0iyv9x46ql8j9ggb6nw58274vqb6z850x26glaqcdwa3wvn1i1";
+       version = "0.2.0";
+       sha256 = "0fxrmcc0kn3jyjbij2fv72pw0r1l2rvg8wglj1i8d438jqpffigw";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         Agda base containers directory filepath megaparsec mtl text
+         Agda base containers directory filepath mtl text
        ];
        executableHaskellDepends = [
-         aeson base directory filepath mtl optparse-applicative text
+         aeson base directory mtl optparse-applicative text
        ];
        testHaskellDepends = [ base containers filepath hspec text ];
        description = "Check for unused code in an Agda project";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "agda2lagda" = callPackage
@@ -25714,6 +25511,26 @@ self: {
        license = lib.licenses.publicDomain;
      }) {};
 
+  "agda2lagda_0_2021_6_1" = callPackage
+    ({ mkDerivation, base, directory, filepath, goldplate
+     , optparse-applicative, process
+     }:
+     mkDerivation {
+       pname = "agda2lagda";
+       version = "0.2021.6.1";
+       sha256 = "1108xzl4fv86qpasg1wbc26bypd06s41kmgzybrggc76pv15hbis";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base directory filepath optparse-applicative
+       ];
+       testHaskellDepends = [ base process ];
+       testToolDepends = [ goldplate ];
+       description = "Translate .agda files into .lagda.tex files.";
+       license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "agentx" = callPackage
     ({ mkDerivation, base, binary, bitwise, bytestring, containers
      , data-default, Diff, fclabels, mtl, network, pipes
@@ -25734,7 +25551,6 @@ self: {
        description = "AgentX protocol for write SNMP subagents";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "agum" = callPackage
@@ -25798,7 +25614,6 @@ self: {
        description = "Aeronautical Information Package (AIP)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "air" = callPackage
@@ -25906,7 +25721,6 @@ self: {
        description = "A Webmachine-inspired HTTP library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "airtable-api" = callPackage
@@ -25975,7 +25789,6 @@ self: {
        description = "Parallel distributed discrete event simulation module for the Aivika library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aivika-experiment" = callPackage
@@ -26041,8 +25854,6 @@ self: {
        ];
        description = "Diagrams-based charting backend for the Aivika simulation library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aivika-gpss" = callPackage
@@ -26398,7 +26209,6 @@ self: {
        description = "Model and test API surfaces algebraically";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "algebra-dag" = callPackage
@@ -26435,7 +26245,6 @@ self: {
        description = "Companion library for the book Algebra-Driven Design by Sandy Maguire";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "algebra-sql" = callPackage
@@ -26463,7 +26272,6 @@ self: {
        description = "Relational Algebra and SQL Code Generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "algebraic" = callPackage
@@ -26605,7 +26413,6 @@ self: {
        description = "A client implementing the Algolia search API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "algorithmic-composition-additional" = callPackage
@@ -26837,7 +26644,6 @@ self: {
        description = "a practical affine language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "alpaca-netcode" = callPackage
@@ -26876,7 +26682,6 @@ self: {
        description = "A compiler for the Alpha language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "alphachar" = callPackage
@@ -26925,7 +26730,7 @@ self: {
      }) {};
 
   "alsa" = callPackage
-    ({ mkDerivation, alsaLib, array, base, extensible-exceptions
+    ({ mkDerivation, alsa-lib, array, base, extensible-exceptions
      , sample-frame
      }:
      mkDerivation {
@@ -26935,27 +26740,27 @@ self: {
        libraryHaskellDepends = [
          array base extensible-exceptions sample-frame
        ];
-       librarySystemDepends = [ alsaLib ];
+       librarySystemDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "alsa-core" = callPackage
-    ({ mkDerivation, alsaLib, base, extensible-exceptions }:
+    ({ mkDerivation, alsa-lib, base, extensible-exceptions }:
      mkDerivation {
        pname = "alsa-core";
        version = "0.5.0.1";
        sha256 = "1avh4a419h9d2zsslg6j8hm87ppgsgqafz8ll037rk2yy1g4jl7b";
        libraryHaskellDepends = [ base extensible-exceptions ];
-       libraryPkgconfigDepends = [ alsaLib ];
+       libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (Exceptions)";
        license = lib.licenses.bsd3;
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "alsa-gui" = callPackage
     ({ mkDerivation, alsa-core, alsa-seq, base, midi, midi-alsa, wx
@@ -26973,11 +26778,10 @@ self: {
        description = "Some simple interactive programs for sending MIDI control messages via ALSA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "alsa-midi" = callPackage
-    ({ mkDerivation, alsaLib, array, base, event-list, midi
+    ({ mkDerivation, alsa-lib, array, base, event-list, midi
      , non-negative
      }:
      mkDerivation {
@@ -26990,32 +26794,32 @@ self: {
        libraryHaskellDepends = [
          array base event-list midi non-negative
        ];
-       librarySystemDepends = [ alsaLib ];
-       executableSystemDepends = [ alsaLib ];
+       librarySystemDepends = [ alsa-lib ];
+       executableSystemDepends = [ alsa-lib ];
        description = "Bindings for the ALSA sequencer API (MIDI stuff)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "alsa-mixer" = callPackage
-    ({ mkDerivation, alsa-core, alsaLib, base, c2hs, unix }:
+    ({ mkDerivation, alsa-core, alsa-lib, base, c2hs, unix }:
      mkDerivation {
        pname = "alsa-mixer";
        version = "0.3.0";
        sha256 = "00ny2p3276jilidjs44npc8zmbhynz3f2lpmlwwl6swwx5yijsnb";
        libraryHaskellDepends = [ alsa-core base unix ];
-       librarySystemDepends = [ alsaLib ];
+       librarySystemDepends = [ alsa-lib ];
        libraryToolDepends = [ c2hs ];
        description = "Bindings to the ALSA simple mixer API";
        license = lib.licenses.bsd3;
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "alsa-pcm" = callPackage
-    ({ mkDerivation, alsa-core, alsaLib, array, base
+    ({ mkDerivation, alsa-core, alsa-lib, array, base
      , extensible-exceptions, sample-frame, semigroups, storable-record
      }:
      mkDerivation {
@@ -27028,13 +26832,13 @@ self: {
          alsa-core array base extensible-exceptions sample-frame semigroups
          storable-record
        ];
-       libraryPkgconfigDepends = [ alsaLib ];
+       libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (PCM audio)";
        license = lib.licenses.bsd3;
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "alsa-pcm-tests" = callPackage
     ({ mkDerivation, alsa, base }:
@@ -27048,11 +26852,10 @@ self: {
        description = "Tests for the ALSA audio signal library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "alsa-seq" = callPackage
-    ({ mkDerivation, alsa-core, alsaLib, array, base, bytestring
+    ({ mkDerivation, alsa-core, alsa-lib, array, base, bytestring
      , data-accessor, enumset, extensible-exceptions, poll, transformers
      , utility-ht
      }:
@@ -27066,13 +26869,13 @@ self: {
          alsa-core array base bytestring data-accessor enumset
          extensible-exceptions poll transformers utility-ht
        ];
-       libraryPkgconfigDepends = [ alsaLib ];
+       libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (MIDI sequencer)";
        license = lib.licenses.bsd3;
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-     }) {inherit (pkgs) alsaLib;};
+     }) {inherit (pkgs) alsa-lib;};
 
   "alsa-seq-tests" = callPackage
     ({ mkDerivation, alsa, base }:
@@ -27086,7 +26889,6 @@ self: {
        description = "Tests for the ALSA sequencer library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "altcomposition" = callPackage
@@ -27272,7 +27074,6 @@ self: {
        description = "Client library for amazon-emailer daemon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "amazon-products" = callPackage
@@ -28155,8 +27956,6 @@ self: {
        ];
        description = "Amazon Elastic Compute Cloud SDK";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "amazonka-ecr" = callPackage
@@ -29268,8 +29067,6 @@ self: {
        ];
        description = "Provides conduits to upload data to S3 using the Multipart API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "amazonka-sagemaker" = callPackage
@@ -29791,7 +29588,6 @@ self: {
        description = "Toolsuite for automated design of business processes";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "amqp" = callPackage
@@ -29858,7 +29654,6 @@ self: {
        description = "A simple streamly wrapper for amqp";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "amqp-utils" = callPackage
@@ -29868,8 +29663,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp-utils";
-       version = "0.6.1.0";
-       sha256 = "0h0mjgaiyhhx8y6zd3zxm1jzd0vgc6crq3980l5cal0zv6vs9zc1";
+       version = "0.6.1.1";
+       sha256 = "1lffc76ybvk73k57qn5m6788m2nkfsqavs7mfs1kaqw38pya940c";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -29983,7 +29778,6 @@ self: {
        description = "Client for analyze service";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "anansi" = callPackage
@@ -30065,7 +29859,6 @@ self: {
        description = "Anatomy: Atomo documentation system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "android" = callPackage
@@ -30250,7 +30043,6 @@ self: {
        description = "Animation for sprites";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "animate-frames" = callPackage
@@ -30273,7 +30065,6 @@ self: {
        description = "Convert sprite frames to animate files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "animate-preview" = callPackage
@@ -30300,7 +30091,6 @@ self: {
        description = "Preview tool for sprite animation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "animate-sdl2" = callPackage
@@ -30313,7 +30103,6 @@ self: {
        description = "sdl2 + animate auxiliary library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "anki-tools" = callPackage
@@ -30358,7 +30147,7 @@ self: {
        description = "Medium-level language that desugars to Morte";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "annihilator" = callPackage
@@ -30421,7 +30210,6 @@ self: {
        description = "QuickCheck functions to accompany the anonymous-sums package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ansi-escape-codes" = callPackage
@@ -30491,8 +30279,6 @@ self: {
        ];
        description = "sdl-like functions for terminal applications, based on ansi-terminal";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ansi-wl-pprint" = callPackage
@@ -30550,7 +30336,6 @@ self: {
        description = "A web interface to Antisplice dungeons";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antfarm" = callPackage
@@ -30601,7 +30386,6 @@ self: {
        description = "This is an IRC bot for Mafia and Resistance";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antigate" = callPackage
@@ -30658,8 +30442,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-contract" = callPackage
@@ -30673,8 +30455,6 @@ self: {
        ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-core" = callPackage
@@ -30701,8 +30481,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-dynamodb" = callPackage
@@ -30725,8 +30503,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-es" = callPackage
@@ -30746,8 +30522,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-messages" = callPackage
@@ -30772,8 +30546,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-optparse-applicative" = callPackage
@@ -30825,8 +30597,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-shell" = callPackage
@@ -30856,8 +30626,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-sns" = callPackage
@@ -30881,8 +30649,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-sqs" = callPackage
@@ -30909,8 +30675,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "antiope-swf" = callPackage
@@ -31016,7 +30780,6 @@ self: {
        description = "Haskell binding to the ANTLR parser generator C runtime library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {antlr3c = null;};
 
   "anydbm" = callPackage
@@ -31040,8 +30803,8 @@ self: {
     ({ mkDerivation, base, ghc-prim, integer-gmp }:
      mkDerivation {
        pname = "aop-prelude";
-       version = "0.4.0.0";
-       sha256 = "0jg572zz9lbhpp4bxldrc0gs0ac0f4hfcrxds77gr51xizxfa7cn";
+       version = "0.4.1.0";
+       sha256 = "1ha39yfmiw61g907h83wsjw9zyvvkzi7zbr3y9dcciv2cgnb5h6a";
        libraryHaskellDepends = [ base ghc-prim integer-gmp ];
        testHaskellDepends = [ base ghc-prim ];
        description = "prelude for Algebra of Programming";
@@ -31098,8 +30861,8 @@ self: {
     ({ mkDerivation, base, inspection-testing, transformers }:
      mkDerivation {
        pname = "ap-normalize";
-       version = "0.1.0.0";
-       sha256 = "0iqfilamnp0k170af7sw0ydn0cmba7ab06yinkl8vfppf583a4la";
+       version = "0.1.0.1";
+       sha256 = "1212zxc4qn6msk0w13yhrza2qjs79h78misllb4chng75jqi61l2";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base inspection-testing transformers ];
        description = "Self-normalizing applicative expressions";
@@ -31265,7 +31028,6 @@ self: {
        description = "Server and community browser for the game Tremulous";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "api-builder" = callPackage
@@ -31418,7 +31180,6 @@ self: {
        description = "simple json-rpc client for PegNet";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "api-tools" = callPackage
@@ -31453,8 +31214,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion text time ];
        description = "DSL for generating API boilerplate and docs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "api-yoti" = callPackage
@@ -31476,7 +31235,6 @@ self: {
        description = "Api bindings for Yoti services";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary" = callPackage
@@ -31510,7 +31268,6 @@ self: {
        description = "Simple and type safe web framework that generate web API documentation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-authenticate" = callPackage
@@ -31531,7 +31288,6 @@ self: {
        description = "authenticate support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-clientsession" = callPackage
@@ -31550,7 +31306,6 @@ self: {
        description = "clientsession support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-cookie" = callPackage
@@ -31567,7 +31322,6 @@ self: {
        description = "Cookie support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-eventsource" = callPackage
@@ -31580,7 +31334,6 @@ self: {
        description = "eventsource support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-helics" = callPackage
@@ -31601,7 +31354,6 @@ self: {
        description = "helics support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-http-client" = callPackage
@@ -31619,7 +31371,6 @@ self: {
        description = "A http client for Apiary";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-logger" = callPackage
@@ -31638,7 +31389,6 @@ self: {
        description = "fast-logger support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-memcached" = callPackage
@@ -31658,7 +31408,6 @@ self: {
        description = "memcached client for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-mongoDB" = callPackage
@@ -31677,7 +31426,6 @@ self: {
        description = "mongoDB support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-persistent" = callPackage
@@ -31696,7 +31444,6 @@ self: {
        description = "persistent support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-purescript" = callPackage
@@ -31717,7 +31464,6 @@ self: {
        description = "purescript compiler for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-redis" = callPackage
@@ -31730,7 +31476,6 @@ self: {
        description = "redis support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-session" = callPackage
@@ -31743,7 +31488,6 @@ self: {
        description = "session support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apiary-websockets" = callPackage
@@ -31756,7 +31500,6 @@ self: {
        description = "websockets support for apiary web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apioiaf-client" = callPackage
@@ -31790,7 +31533,6 @@ self: {
        description = "A Template Haskell library for generating type safe API calls";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apns-http2" = callPackage
@@ -31851,7 +31593,6 @@ self: {
        description = "a faster debian repository";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "app-lens" = callPackage
@@ -32038,8 +31779,8 @@ self: {
      }:
      mkDerivation {
        pname = "apply-refact";
-       version = "0.9.2.0";
-       sha256 = "1j0afdl6g51wyb3g47wss15v0yl50n23k3icbyla8h89rxh74lcx";
+       version = "0.9.3.0";
+       sha256 = "1sn5g71sx8xa4ggyk49m661iip6zrzl65vb87l16l31kf79bbm7w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -32297,8 +32038,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Datadog client for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arbor-lru-cache" = callPackage
@@ -32415,7 +32154,6 @@ self: {
        description = "Metric library backend for datadog";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arbor-postgres" = callPackage
@@ -32465,6 +32203,7 @@ self: {
        ];
        description = "Automatic Rule-Based Time Tracker";
        license = lib.licenses.gpl2Only;
+       maintainers = with lib.maintainers; [ maralorn rvl ];
      }) {};
 
   "arcgrid" = callPackage
@@ -32501,21 +32240,21 @@ self: {
      , bytestring, Cabal, conduit, conduit-extra, containers, deepseq
      , Diff, directory, filepath, hackage-db, http-client
      , http-client-tls, megaparsec, microlens, microlens-th
-     , neat-interpolation, optparse-applicative, polysemy, prettyprinter
+     , neat-interpolation, optparse-simple, polysemy, prettyprinter
      , prettyprinter-ansi-terminal, servant-client, split, tar-conduit
      , template-haskell, text
      }:
      mkDerivation {
        pname = "arch-hs";
-       version = "0.8.0.0";
-       sha256 = "1g33ss6jvvpdgpcl0kwmbvnkawq8cngphjmsbv0jcpnh17brgf8x";
+       version = "0.9.0.0";
+       sha256 = "09i5b4pdbc1x7977icq0m7amk59iy0822ki5dlhd7y74m2dmdf9z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson algebraic-graphs arch-web base bytestring Cabal conduit
          conduit-extra containers deepseq Diff directory filepath hackage-db
          http-client http-client-tls megaparsec microlens microlens-th
-         neat-interpolation optparse-applicative polysemy prettyprinter
+         neat-interpolation optparse-simple polysemy prettyprinter
          prettyprinter-ansi-terminal servant-client split tar-conduit
          template-haskell text
        ];
@@ -32523,14 +32262,12 @@ self: {
          aeson algebraic-graphs arch-web base bytestring Cabal conduit
          conduit-extra containers deepseq Diff directory filepath hackage-db
          http-client http-client-tls megaparsec microlens microlens-th
-         neat-interpolation optparse-applicative polysemy prettyprinter
+         neat-interpolation optparse-simple polysemy prettyprinter
          prettyprinter-ansi-terminal servant-client split tar-conduit
          template-haskell text
        ];
        description = "Distribute hackage packages to archlinux";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arch-web" = callPackage
@@ -32554,8 +32291,7 @@ self: {
        ];
        description = "Arch Linux official and AUR web interface binding";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ berberman ];
      }) {};
 
   "archive" = callPackage
@@ -32595,8 +32331,6 @@ self: {
        libraryToolDepends = [ cpphs ];
        description = "Common interface using libarchive";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "archive-sig" = callPackage
@@ -32706,7 +32440,6 @@ self: {
        description = "Website maintenance for Arch Linux packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "archnews" = callPackage
@@ -32733,8 +32466,8 @@ self: {
      }:
      mkDerivation {
        pname = "arduino-copilot";
-       version = "1.5.3";
-       sha256 = "18aa6qqgk1cd5adydyby7xm3imrg739hhmdl0m67b61gf7f3ch3x";
+       version = "1.5.4";
+       sha256 = "15z3ndcg1ycnfzvqbbfalx1gfa61pyi5n2fy1dj8qm0gqkhz23lh";
        libraryHaskellDepends = [
          base containers copilot copilot-c99 copilot-language directory
          filepath mtl optparse-applicative temporary
@@ -32743,7 +32476,6 @@ self: {
        description = "Arduino programming in haskell using the Copilot stream DSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arena" = callPackage
@@ -32788,7 +32520,6 @@ self: {
        description = "Generate Attribute-Relation File Format (ARFF) files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arghwxhaskell" = callPackage
@@ -32803,7 +32534,6 @@ self: {
        description = "An interpreter for the Argh! programming language in wxHaskell";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "argon" = callPackage
@@ -32831,7 +32561,6 @@ self: {
        description = "Measure your code's complexity";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "argon2" = callPackage
@@ -32913,7 +32642,6 @@ self: {
        description = "Go-to-definition for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arion" = callPackage
@@ -33063,7 +32791,6 @@ self: {
        description = "Arithmetic circuits for zkSNARKs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arithmoi" = callPackage
@@ -33127,24 +32854,20 @@ self: {
 
   "armor" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, hspec, HUnit, lens, text
+     , filepath, hashable, hspec, HUnit, lens, text
      }:
      mkDerivation {
        pname = "armor";
-       version = "0.1";
-       sha256 = "0jmq6lhi1byhjzgkvnn4p481z8wik93angx7sf6cjfj5j0kqzv71";
-       revision = "4";
-       editedCabalFile = "1vnjq91pawr4r7parg2kxs01d47b3lp8jpsji270bbmimqa0nql9";
+       version = "0.2.0.1";
+       sha256 = "1pp9y7y9i01mbnkrx4870m4a4crpyzikpi4w8znn3avjbl5c1bxx";
        libraryHaskellDepends = [
-         base bytestring containers directory filepath HUnit lens
+         base bytestring containers directory filepath hashable HUnit lens
        ];
        testHaskellDepends = [
          aeson base bytestring containers directory hspec HUnit lens text
        ];
        description = "Prevent serialization backwards compatibility problems using golden tests";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arpa" = callPackage
@@ -33212,8 +32935,6 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Builders for arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "array-chunks" = callPackage
@@ -33231,8 +32952,6 @@ self: {
        ];
        description = "Lists of chunks";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "array-forth" = callPackage
@@ -33259,7 +32978,6 @@ self: {
        description = "A simple interpreter for arrayForth, the language used on GreenArrays chips";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "array-list" = callPackage
@@ -33274,8 +32992,6 @@ self: {
        ];
        description = "IsList instances of Array for OverloadedLists extension";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "array-memoize" = callPackage
@@ -33361,7 +33077,6 @@ self: {
        description = "Memory-efficient ArrayList implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "arrow-extras" = callPackage
@@ -33748,7 +33463,6 @@ self: {
        description = "ASCII table";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ascii-th" = callPackage
@@ -33854,7 +33568,6 @@ self: {
        description = "Action Script Instrumentation Compiler";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "asif" = callPackage
@@ -34124,6 +33837,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A set of assertion for writing more readable tests cases";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "assert4hs-hspec" = callPackage
@@ -34136,6 +33851,7 @@ self: {
        testHaskellDepends = [ assert4hs-core base hspec HUnit ];
        description = "integration point of assert4hs and hspec";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "assert4hs-tasty" = callPackage
@@ -34149,7 +33865,6 @@ self: {
        description = "Provider for tasty runner to run assert4hs tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "assertions" = callPackage
@@ -34211,7 +33926,6 @@ self: {
        description = "The Assimp asset import library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) assimp;};
 
   "assoc" = callPackage
@@ -34322,7 +34036,6 @@ self: {
        description = "A library for writing JSON";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ast-path" = callPackage
@@ -34388,8 +34101,8 @@ self: {
      }:
      mkDerivation {
        pname = "astro";
-       version = "0.4.2.1";
-       sha256 = "0agy9a91n1sy6rgdgwvdz354x452j2lg7nr3by7z9r22rwdxwpfs";
+       version = "0.4.3.0";
+       sha256 = "1zbraw0l40r190vw9dc7bwwcrac4p6yqwng5qa8n277v6cwy5kv5";
        libraryHaskellDepends = [ base matrix time ];
        testHaskellDepends = [
          base HUnit QuickCheck test-framework test-framework-hunit
@@ -34418,7 +34131,6 @@ self: {
        description = "A GTK-based abstract syntax tree viewer for custom languages and parsers";
        license = lib.licenses.bsdOriginal;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "astview-utils" = callPackage
@@ -34735,7 +34447,6 @@ self: {
        description = "Atlassian Connect snaplet for the Snap Framework and helper code";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "atlassian-connect-descriptor" = callPackage
@@ -34757,8 +34468,6 @@ self: {
        ];
        description = "Code that helps you create a valid Atlassian Connect Descriptor";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "atmos" = callPackage
@@ -34798,7 +34507,6 @@ self: {
        description = "dimensional-tf wrapper on atmos package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "atndapi" = callPackage
@@ -34949,7 +34657,6 @@ self: {
        description = "An atomic counter implemented using the FFI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "atomic-primops-vector" = callPackage
@@ -35028,7 +34735,6 @@ self: {
        description = "Interface to automated theorem provers";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "atp-haskell" = callPackage
@@ -35383,7 +35089,6 @@ self: {
        description = "Pass input from an enumerator to an Attoparsec parser";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "attoparsec-expr" = callPackage
@@ -35414,7 +35119,6 @@ self: {
        description = "Parse IP data types with attoparsec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "attoparsec-iso8601" = callPackage
@@ -35448,7 +35152,6 @@ self: {
        description = "An adapter to convert attoparsec Parsers into blazing-fast Iteratees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "attoparsec-parsec" = callPackage
@@ -35507,7 +35210,6 @@ self: {
        description = "(deprecated)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "attoparsec-time" = callPackage
@@ -35558,7 +35260,6 @@ self: {
        description = "URI parser / printer using attoparsec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "attoparsec-varword" = callPackage
@@ -35606,7 +35307,6 @@ self: {
        description = "Embedded Turtle language compiler in Haskell, with Epic output";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "audacity" = callPackage
@@ -35649,7 +35349,6 @@ self: {
        description = "A battery-included audiovisual framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "augeas" = callPackage
@@ -35764,7 +35463,6 @@ self: {
        description = "A secure package manager for Arch Linux and the AUR";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "authenticate" = callPackage
@@ -35860,7 +35558,6 @@ self: {
        description = "A library for writing papers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "auto" = callPackage
@@ -35878,6 +35575,8 @@ self: {
        ];
        description = "Denotative, locally stateful programming DSL & platform";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "auto-update" = callPackage
@@ -35908,6 +35607,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Template Haskell to automatically pass values to functions";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "autoexporter" = callPackage
@@ -36049,7 +35749,6 @@ self: {
        description = "Generate dependencies for KDE 5 Nix expressions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "autopack" = callPackage
@@ -36153,7 +35852,6 @@ self: {
        description = "Server-side implementation of the Avers storage model";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "avers-api" = callPackage
@@ -36171,7 +35869,6 @@ self: {
        description = "Types describing the core and extended Avers APIs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "avers-api-docs" = callPackage
@@ -36191,7 +35888,6 @@ self: {
        description = "Swagger documentation for the Avers API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "avers-server" = callPackage
@@ -36213,7 +35909,6 @@ self: {
        description = "Server implementation of the Avers API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aviation-cessna172-diagrams" = callPackage
@@ -36376,7 +36071,6 @@ self: {
        description = "Tool for decoding avro";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "avwx" = callPackage
@@ -36425,7 +36119,6 @@ self: {
        description = "High-level Awesomium bindings";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "awesomium-glut" = callPackage
@@ -36438,7 +36131,6 @@ self: {
        description = "Utilities for using Awesomium with GLUT";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "awesomium-raw" = callPackage
@@ -36571,7 +36263,6 @@ self: {
        description = "Configuration types, parsers & renderers for AWS services";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-dynamodb-conduit" = callPackage
@@ -36590,7 +36281,6 @@ self: {
        description = "Conduit-based interface for AWS DynamoDB";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-dynamodb-streams" = callPackage
@@ -36614,7 +36304,6 @@ self: {
        description = "Haskell bindings for Amazon DynamoDB Streams";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-easy" = callPackage
@@ -36718,7 +36407,6 @@ self: {
        description = "Haskell suite for the Elastic Transcoder service";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-general" = callPackage
@@ -36772,7 +36460,6 @@ self: {
        description = "Bindings for Amazon Kinesis";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-kinesis-client" = callPackage
@@ -36808,7 +36495,6 @@ self: {
        description = "A producer & consumer client library for AWS Kinesis";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-kinesis-reshard" = callPackage
@@ -36838,7 +36524,6 @@ self: {
        description = "Reshard AWS Kinesis streams in response to Cloud Watch metrics";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-lambda" = callPackage
@@ -36859,7 +36544,6 @@ self: {
        description = "Haskell bindings for AWS Lambda";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-lambda-haskell-runtime" = callPackage
@@ -36870,8 +36554,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime";
-       version = "4.1.0";
-       sha256 = "1zb426bj1k3b3sp5hlg0ajx19mf0vwvr39zdg6p9l9i830qfdjfw";
+       version = "4.1.1";
+       sha256 = "0w4pdyagcs7m05kccdq0x3s1d4vbr2ihqjrbill0p0gn25q9h6cc";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive exceptions hashable
          http-client http-types mtl path path-io safe-exceptions-checked
@@ -36903,8 +36587,6 @@ self: {
        ];
        description = "Run wai applications on AWS Lambda";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-lambda-runtime" = callPackage
@@ -36929,8 +36611,6 @@ self: {
        executableHaskellDepends = [ aeson base lens lens-aeson text ];
        description = "Haskell on AWS Lambda Runtime API";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-larpi" = callPackage
@@ -36970,7 +36650,6 @@ self: {
        description = "Keep your AWS credentials file up to date with MFA-carrying credentials";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-performance-tests" = callPackage
@@ -37046,7 +36725,6 @@ self: {
        description = "AWS SDK for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-sdk-text-converter" = callPackage
@@ -37091,7 +36769,6 @@ self: {
        description = "The xml parser for aws-sdk package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-ses-easy" = callPackage
@@ -37111,8 +36788,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Wrapper over Amazonka's SES";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-sign4" = callPackage
@@ -37137,7 +36812,6 @@ self: {
        description = "Amazon Web Services (AWS) Signature v4 HTTP request signer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aws-simple" = callPackage
@@ -37181,7 +36855,61 @@ self: {
        description = "Bindings for AWS SNS Version 2013-03-31";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "aws-xray-client" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, async, base, bytestring
+     , criterion, deepseq, generic-arbitrary, hspec, http-types, lens
+     , network, QuickCheck, random, text, time
+     }:
+     mkDerivation {
+       pname = "aws-xray-client";
+       version = "0.1.0.0";
+       sha256 = "0rb46hz2y9mz0prgyb5m2v31j05cx18j6yl01pawhrb6v8pb7z00";
+       libraryHaskellDepends = [
+         aeson base bytestring deepseq http-types lens network random text
+         time
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq base generic-arbitrary hspec lens QuickCheck random
+         text
+       ];
+       benchmarkHaskellDepends = [ async base criterion random time ];
+       description = "A client for AWS X-Ray";
+       license = lib.licenses.mit;
+     }) {};
+
+  "aws-xray-client-persistent" = callPackage
+    ({ mkDerivation, aws-xray-client, base, conduit, containers, lens
+     , persistent, random, resourcet, text, time
+     }:
+     mkDerivation {
+       pname = "aws-xray-client-persistent";
+       version = "0.1.0.1";
+       sha256 = "1b45g9gswr2c16xphprqkrpyh2q29kgnr10hm29zjw5pcahgc8mg";
+       libraryHaskellDepends = [
+         aws-xray-client base conduit containers lens persistent random
+         resourcet text time
+       ];
+       description = "A client for AWS X-Ray integration with Persistent";
+       license = lib.licenses.mit;
+     }) {};
+
+  "aws-xray-client-wai" = callPackage
+    ({ mkDerivation, aws-xray-client, base, bytestring, containers
+     , http-types, lens, random, text, time, unliftio, unliftio-core
+     , vault, wai
+     }:
+     mkDerivation {
+       pname = "aws-xray-client-wai";
+       version = "0.1.0.0";
+       sha256 = "1vrgx2l3f08bd73z0an15zh3fla0d5sxqvwbsk1jxkrjfy2c43rd";
+       libraryHaskellDepends = [
+         aws-xray-client base bytestring containers http-types lens random
+         text time unliftio unliftio-core vault wai
+       ];
+       description = "A client for AWS X-Ray integration with WAI";
+       license = lib.licenses.mit;
      }) {};
 
   "axel" = callPackage
@@ -37252,7 +36980,6 @@ self: {
        description = "Web EDSL for running in browsers and server nodes using transient";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "axiomatic-classes" = callPackage
@@ -37293,7 +37020,6 @@ self: {
        description = "Interact with Azimuth from Haskell";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "azubi" = callPackage
@@ -37381,7 +37107,6 @@ self: {
        description = "Azure Functions Worker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "azure-service-api" = callPackage
@@ -37401,7 +37126,6 @@ self: {
        description = "Haskell bindings for the Microsoft Azure Service Management API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "azure-servicebus" = callPackage
@@ -37420,7 +37144,6 @@ self: {
        description = "Haskell wrapper over Microsoft Azure ServiceBus REST API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "azurify" = callPackage
@@ -37478,7 +37201,6 @@ self: {
        description = "Immutable disk-based B* trees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "b9" = callPackage
@@ -37552,7 +37274,6 @@ self: {
        description = "An implementation of a simple 2-player board game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "backblaze-b2-hs" = callPackage
@@ -37586,7 +37307,6 @@ self: {
        description = "A client library to access Backblaze B2 cloud storage in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "backdropper" = callPackage
@@ -37605,7 +37325,6 @@ self: {
        description = "Rotates backdrops for X11 displays using Imagemagic";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "backprop" = callPackage
@@ -37784,7 +37503,6 @@ self: {
        description = "Shipwire API client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamboo" = callPackage
@@ -37806,7 +37524,6 @@ self: {
        description = "A blog engine on Hack";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamboo-launcher" = callPackage
@@ -37828,7 +37545,6 @@ self: {
        description = "bamboo-launcher";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamboo-plugin-highlight" = callPackage
@@ -37847,7 +37563,6 @@ self: {
        description = "A highlight middleware";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamboo-plugin-photo" = callPackage
@@ -37867,7 +37582,6 @@ self: {
        description = "A photo album middleware";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamboo-theme-blueprint" = callPackage
@@ -37887,7 +37601,6 @@ self: {
        description = "bamboo blueprint theme";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamboo-theme-mini-html5" = callPackage
@@ -37911,7 +37624,6 @@ self: {
        description = "bamboo mini html5 theme";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamse" = callPackage
@@ -37930,7 +37642,6 @@ self: {
        description = "A Windows Installer (MSI) generator framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bamstats" = callPackage
@@ -37945,7 +37656,6 @@ self: {
        description = "A program to extract various information from BAM alignmnet files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ban-instance" = callPackage
@@ -38409,7 +38119,6 @@ self: {
        description = "Optics for the Base16 library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "base32" = callPackage
@@ -38451,7 +38160,6 @@ self: {
        description = "Fast base32 and base32hex codec for ByteStrings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "base32-lens" = callPackage
@@ -38573,7 +38281,6 @@ self: {
        description = "Base62 encoding and decoding";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "base64" = callPackage
@@ -38625,7 +38332,6 @@ self: {
        description = "Base64 encoding of byte sequences";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "base64-bytestring" = callPackage
@@ -38764,10 +38470,10 @@ self: {
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
        pname = "basement";
-       version = "0.0.11";
-       sha256 = "0srlws74yiraqaapgcjd9p5d1fwb3zr9swcz74jpjm55fls2nn37";
-       revision = "3";
-       editedCabalFile = "1indgsrk0yhkbqlxj39qqb5xqicwkmcliggb8wn87vgfswxpi1dn";
+       version = "0.0.12";
+       sha256 = "12zsnxkgv86im2prslk6ddhy0zwpawwjc1h4ff63kpxp2xdl7i2k";
+       revision = "1";
+       editedCabalFile = "1gr3zqf9xl3wlr2ajc03h9iya3jpx2h4jyjv2vhqxdvm6myiiffb";
        libraryHaskellDepends = [ base ghc-prim ];
        description = "Foundation scrap box of array & string";
        license = lib.licenses.bsd3;
@@ -38828,7 +38534,6 @@ self: {
        description = "Baserock Definitions Schema";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "basex-client" = callPackage
@@ -39008,7 +38713,6 @@ self: {
        description = "Batch processing toolset for Linux / Unix";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "battlenet" = callPackage
@@ -39038,7 +38742,6 @@ self: {
        description = "Yesod integration for the battlenet package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "battleplace" = callPackage
@@ -39056,8 +38759,6 @@ self: {
        ];
        description = "Core definitions for BattlePlace.io service";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "battleplace-api" = callPackage
@@ -39071,8 +38772,6 @@ self: {
        ];
        description = "Public API definitions of BattlePlace.io service";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "battleship-combinatorics" = callPackage
@@ -39131,7 +38830,6 @@ self: {
        description = "A web-based implementation of battleships including an AI opponent";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bayes-stack" = callPackage
@@ -39152,7 +38850,6 @@ self: {
        description = "Framework for inferring generative probabilistic models with Gibbs sampling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bazel-coverage-report-renderer" = callPackage
@@ -39219,7 +38916,6 @@ self: {
        description = "Tools for reading Big Binary Indexed files, e.g., bigBed, bigWig";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bcp47" = callPackage
@@ -39228,8 +38924,8 @@ self: {
      }:
      mkDerivation {
        pname = "bcp47";
-       version = "0.2.0.3";
-       sha256 = "07gz8bflc3klw0370albaff8v9vlgyqgrc5lifl35vs2ia891fhn";
+       version = "0.2.0.4";
+       sha256 = "1a3z0kg88061sffawq19girs7q640jv6yn24mailz7c89ajcawj7";
        libraryHaskellDepends = [
          aeson base containers country generic-arbitrary iso639 megaparsec
          QuickCheck text
@@ -39239,8 +38935,6 @@ self: {
        ];
        description = "Language tags as specified by BCP 47";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bcp47-orphans" = callPackage
@@ -39249,8 +38943,8 @@ self: {
      }:
      mkDerivation {
        pname = "bcp47-orphans";
-       version = "0.1.0.3";
-       sha256 = "1dm65nq49zqbc6kxkh2kmsracc9a7vlbq4mpq60jh2wxgvzcfghm";
+       version = "0.1.0.4";
+       sha256 = "08kx00dxmwj0vxazcd2s88q069swnzjfnj61kla5pczaz0aqh11w";
        libraryHaskellDepends = [
          base bcp47 cassava errors esqueleto hashable http-api-data
          path-pieces persistent text
@@ -39260,8 +38954,6 @@ self: {
        ];
        description = "BCP47 orphan instances";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bcrypt" = callPackage
@@ -39321,7 +39013,6 @@ self: {
        description = "Tools for managing a content store of software packages";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) ostree;};
 
   "bdcs-api" = callPackage
@@ -39358,8 +39049,10 @@ self: {
        ];
        description = "BDCS API Server";
        license = lib.licenses.gpl3Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libgit2-glib;};
 
   "bdd" = callPackage
@@ -39466,7 +39159,6 @@ self: {
        description = "DB migration library for beam, targeting Postgres";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "beam-core" = callPackage
@@ -39511,7 +39203,6 @@ self: {
        description = "SQL DDL support and migrations support library for Beam";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "beam-mysql" = callPackage
@@ -39530,7 +39221,6 @@ self: {
        description = "Connection layer between beam and MySQL/MariaDB";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "beam-newtype-field" = callPackage
@@ -39547,7 +39237,6 @@ self: {
        description = "A newtype for wrapping newtypes into beam schemas";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "beam-postgres" = callPackage
@@ -39575,7 +39264,6 @@ self: {
        description = "Connection layer between beam and postgres";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "beam-sqlite" = callPackage
@@ -39599,7 +39287,6 @@ self: {
        description = "Beam driver for SQLite";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "beam-th" = callPackage
@@ -39622,7 +39309,6 @@ self: {
        description = "Template Haskell utilities for beam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "beamable" = callPackage
@@ -39678,7 +39364,6 @@ self: {
        description = "A pretty-printer for higher-order logic";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bech32" = callPackage
@@ -39726,7 +39411,6 @@ self: {
        description = "Template Haskell extensions to the Bech32 library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bed-and-breakfast" = callPackage
@@ -39794,7 +39478,6 @@ self: {
        description = "Bein is a provenance and workflow management system for bioinformatics";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "belka" = callPackage
@@ -39824,7 +39507,6 @@ self: {
        description = "HTTP client DSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bench" = callPackage
@@ -39844,6 +39526,7 @@ self: {
        ];
        description = "Command-line benchmark tool";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "bench-graph" = callPackage
@@ -39860,8 +39543,6 @@ self: {
        testHaskellDepends = [ base split text ];
        description = "Plot and compare benchmarks";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bench-show" = callPackage
@@ -40033,7 +39714,6 @@ self: {
        description = "An implementation of Python 3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bert" = callPackage
@@ -40181,7 +39861,6 @@ self: {
        description = "Bidirectionalization for Free! (POPL'09)";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bff-mono" = callPackage
@@ -40215,7 +39894,6 @@ self: {
        description = "Implementation of the BGAPI serial protocol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bgmax" = callPackage
@@ -40413,8 +40091,8 @@ self: {
      }:
      mkDerivation {
        pname = "bifunctors";
-       version = "5.5.10";
-       sha256 = "03d96df4j1aq9z7hrk3n519g3h7fjgjf82fmgp6wxxbaigyrqwp7";
+       version = "5.5.11";
+       sha256 = "070964w7gz578379lyj6xvdbcf367csmz22cryarjr5bz9r9csrb";
        libraryHaskellDepends = [
          base base-orphans comonad containers tagged template-haskell
          th-abstraction transformers
@@ -40460,7 +40138,6 @@ self: {
        description = "A parser for the Billboard chord dataset";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "billeksah-forms" = callPackage
@@ -40479,7 +40156,6 @@ self: {
        description = "Leksah library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "billeksah-main" = callPackage
@@ -40499,7 +40175,6 @@ self: {
        description = "Leksah plugin base";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "billeksah-main-static" = callPackage
@@ -40541,7 +40216,6 @@ self: {
        description = "Leksah library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "billeksah-services" = callPackage
@@ -40779,7 +40453,6 @@ self: {
        description = "read/write binary file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "binary-generic" = callPackage
@@ -41004,7 +40677,6 @@ self: {
        description = "Monad to ease implementing a binary network protocol over ZeroMQ";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "binary-search" = callPackage
@@ -41094,7 +40766,6 @@ self: {
        description = "data serialization/deserialization io-streams library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "binary-strict" = callPackage
@@ -41137,8 +40808,6 @@ self: {
        ];
        description = "Tagged binary serialisation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "binary-tree" = callPackage
@@ -41248,8 +40917,6 @@ self: {
        testHaskellDepends = [ base HTF HUnit QuickCheck random ];
        description = "Data Binding";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "binding-gtk" = callPackage
@@ -41281,7 +40948,6 @@ self: {
        description = "Data Binding in WxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bindings" = callPackage
@@ -41385,7 +41051,6 @@ self: {
        description = "Low level bindings to Apache Portable Runtime Utility (APR Utility)";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {apr-util = null;};
 
   "bindings-audiofile" = callPackage
@@ -41655,6 +41320,7 @@ self: {
        description = "Low level bindings to the C levmar (Levenberg-Marquardt) library";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) blas; liblapack = null;};
 
   "bindings-libcddb" = callPackage
@@ -41804,7 +41470,6 @@ self: {
        description = "bindings to Video For Linux Two (v4l2) kernel interfaces";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bindings-lxc" = callPackage
@@ -41933,7 +41598,6 @@ self: {
        description = "PPDev bindings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bindings-saga-cmd" = callPackage
@@ -41966,6 +41630,9 @@ self: {
        libraryPkgconfigDepends = [ sane-backends ];
        description = "FFI bindings to libsane";
        license = lib.licenses.lgpl3Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) sane-backends;};
 
   "bindings-sc3" = callPackage
@@ -42058,7 +41725,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {wlc = null;};
+     }) {inherit (pkgs) wlc;};
 
   "bindings-yices" = callPackage
     ({ mkDerivation, base, gmp, yices }:
@@ -42123,7 +41790,6 @@ self: {
        description = "Example project using binembed to embed data in object files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bini" = callPackage
@@ -42227,7 +41893,6 @@ self: {
        description = "Library for reading ace assembly files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bioalign" = callPackage
@@ -42240,7 +41905,6 @@ self: {
        description = "Data structures and helper functions for calculating alignments";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "biocore" = callPackage
@@ -42268,7 +41932,6 @@ self: {
        description = "Library for reading fasta sequence files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "biofastq" = callPackage
@@ -42281,7 +41944,6 @@ self: {
        description = "A library for reading FASTQ files";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "biohazard" = callPackage
@@ -42343,7 +42005,6 @@ self: {
        description = "A collection of bioinformatics tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "biophd" = callPackage
@@ -42360,7 +42021,6 @@ self: {
        description = "Library for reading phd sequence files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "biopsl" = callPackage
@@ -42378,7 +42038,6 @@ self: {
        description = "Library and executables for working with PSL files";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "biosff" = callPackage
@@ -42396,7 +42055,6 @@ self: {
        description = "Library and executables for working with SFF files";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "biostockholm" = callPackage
@@ -42420,7 +42078,6 @@ self: {
        description = "Parsing and rendering of Stockholm files (used by Pfam, Rfam and Infernal)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bip32" = callPackage
@@ -42442,7 +42099,6 @@ self: {
        description = "BIP-0032: Hierarchical Deterministic Wallets for Bitcoin and other cryptocurrencies";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "birch-beer" = callPackage
@@ -42478,7 +42134,6 @@ self: {
        description = "Plot a colorful tree";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bird" = callPackage
@@ -42500,15 +42155,14 @@ self: {
        description = "A simple, sinatra-inspired web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "birds-of-paradise" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "birds-of-paradise";
-       version = "0.2.0.0";
-       sha256 = "1jkj8li8yxl9kk5i8p63p9jkdcvdznmh473n12dxzimxnh15sf1y";
+       version = "0.2.1.0";
+       sha256 = "0kjwylhya86zqsmc5q6iqrbq4kp3hqxgx3kwam2pv1ls01qdsvvy";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Birds of Paradise";
@@ -42518,21 +42172,24 @@ self: {
      }) {};
 
   "bisc" = callPackage
-    ({ mkDerivation, base, configurator, directory, filepath, mtl
-     , selda, selda-sqlite, text
+    ({ mkDerivation, base, bytestring, configurator, data-default
+     , directory, exceptions, filepath, leveldb-haskell, mtl, selda
+     , selda-sqlite, snappy, text
      }:
      mkDerivation {
        pname = "bisc";
-       version = "0.2.3.0";
-       sha256 = "0x03smkfx0qnsxznlp1591gi938f15w057hywfp9497mhvkr7mxg";
+       version = "0.3.0.0";
+       sha256 = "097b25pp6pi7rq4xhk19g1i5v7v9hyx7ldyq0y3aj1cm50s2356m";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base configurator directory filepath mtl selda selda-sqlite text
+         base bytestring configurator data-default directory exceptions
+         filepath leveldb-haskell mtl selda selda-sqlite text
        ];
-       description = "A small tool that clears qutebrowser cookies";
+       executableSystemDepends = [ snappy ];
+       description = "A small tool that clears cookies (and more)";
        license = lib.licenses.gpl3Only;
-     }) {};
+     }) {inherit (pkgs) snappy;};
 
   "bisect-binary" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath, hashable
@@ -42599,7 +42256,6 @@ self: {
        description = "A bit array (aka bitset, bitmap, bit vector) API for numeric types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bit-protocol" = callPackage
@@ -42692,7 +42348,6 @@ self: {
        description = "Bitcoin address generation and rendering. Parsing coming soon.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-api" = callPackage
@@ -42718,7 +42373,6 @@ self: {
        description = "Provides access to the RPC API of Bitcoin Core";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-api-extra" = callPackage
@@ -42742,7 +42396,6 @@ self: {
        description = "Higher level constructs on top of the bitcoin-api package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-block" = callPackage
@@ -42764,7 +42417,6 @@ self: {
        description = "Utility functions for manipulating bitcoin blocks";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-compact-filters" = callPackage
@@ -42788,7 +42440,6 @@ self: {
        description = "BIP 158 compact block filters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-hash" = callPackage
@@ -42846,7 +42497,6 @@ self: {
        description = "Bitcoin keys";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-payment-channel" = callPackage
@@ -42913,7 +42563,6 @@ self: {
        description = "Library to communicate with the Satoshi Bitcoin daemon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-script" = callPackage
@@ -42957,7 +42606,6 @@ self: {
        description = "Resources for working with miniscript, and script descriptors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-tx" = callPackage
@@ -42979,7 +42627,6 @@ self: {
        description = "Utility functions for manipulating bitcoin transactions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoin-types" = callPackage
@@ -43000,7 +42647,6 @@ self: {
        description = "Provides consistent low-level types used commonly among Bitcoin implementations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoind-regtest" = callPackage
@@ -43031,7 +42677,6 @@ self: {
        description = "A library for working with bitcoin-core regtest networks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitcoind-rpc" = callPackage
@@ -43054,7 +42699,6 @@ self: {
        description = "A streamlined interface to bitcoin core using Haskoin types and Servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitly-cli" = callPackage
@@ -43071,7 +42715,6 @@ self: {
        description = "A command line tool to access bit.ly URL shortener.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitmap" = callPackage
@@ -43111,7 +42754,6 @@ self: {
        description = "Bitmap library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bits" = callPackage
@@ -43200,8 +42842,8 @@ self: {
        pname = "bits-extra";
        version = "0.0.2.0";
        sha256 = "1c54008kinzcx93kc8vcp7wq7la662m8nk82ax76i9b0gvbkk21f";
-       revision = "1";
-       editedCabalFile = "1ri4z6zj20qsyyzsrl89sjcm4ir2w6538i6l36a6ffz7f0h0ahng";
+       revision = "2";
+       editedCabalFile = "01qlnzbc3kgbyacqg9c7ldab2s91h9s4kalld0wz9q2k1d4063lv";
        libraryHaskellDepends = [ base ghc-prim vector ];
        testHaskellDepends = [
          base doctest doctest-discover ghc-prim hedgehog hspec hw-hedgehog
@@ -43357,7 +42999,6 @@ self: {
        description = "Bittorrent protocol implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bittrex" = callPackage
@@ -43439,8 +43080,6 @@ self: {
        ];
        description = "Bitwise operations on bounded enumerations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bitx-bitcoin" = callPackage
@@ -43481,8 +43120,6 @@ self: {
        ];
        description = "A lousy Prelude replacement by a lousy dude";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bizzlelude-js" = callPackage
@@ -43558,7 +43195,6 @@ self: {
        description = "a stupid cron";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "black-jewel" = callPackage
@@ -43661,7 +43297,6 @@ self: {
        description = "The BLAKE SHA-3 candidate hashes, in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blank-canvas" = callPackage
@@ -43791,7 +43426,6 @@ self: {
        description = "Library for reading Blast XML output";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blatex" = callPackage
@@ -43810,7 +43444,6 @@ self: {
        description = "Blog in LaTeX";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blaze" = callPackage
@@ -43882,7 +43515,6 @@ self: {
        description = "Enumeratees for the incremental conversion of builders to bytestrings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blaze-colonnade" = callPackage
@@ -43902,7 +43534,6 @@ self: {
        description = "blaze-html backend for colonnade";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blaze-from-html" = callPackage
@@ -44153,7 +43784,6 @@ self: {
        description = "Bluetooth Low Energy (BLE) peripherals";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blindpass" = callPackage
@@ -44188,7 +43818,6 @@ self: {
        description = "Control library for blink(1) LED from ThingM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blip" = callPackage
@@ -44208,7 +43837,6 @@ self: {
        description = "Python to bytecode compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bliplib" = callPackage
@@ -44307,7 +43935,6 @@ self: {
        description = "Very simple static blog software";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bloodhound" = callPackage
@@ -44361,7 +43988,6 @@ self: {
        description = "Adds convenient Amazon ElasticSearch Service authentication to Bloodhound";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bloomfilter" = callPackage
@@ -44440,7 +44066,6 @@ self: {
        description = "OpenGL Logic Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blubber" = callPackage
@@ -44459,7 +44084,6 @@ self: {
        description = "The blubber client; connects to the blubber server";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "blubber-server" = callPackage
@@ -44493,8 +44117,8 @@ self: {
      }:
      mkDerivation {
        pname = "blucontrol";
-       version = "0.3.0.0";
-       sha256 = "0xh1qxfmrfjdsprl5m748j5z9w0qmww8gkj8lhghfskdzxhy0qic";
+       version = "0.3.1.0";
+       sha256 = "035lrn1j6hrvl5vs5k0q1hb3zwbqh5bvxmfxvjvv9lncv8iy2nd9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -44573,7 +44197,6 @@ self: {
        description = "full-featured tiling for the GNOME desktop environment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gtk2;};
 
   "bluetileutils" = callPackage
@@ -44628,7 +44251,6 @@ self: {
        description = "Convert between pointfree and pointful expressions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bmp" = callPackage
@@ -44654,7 +44276,6 @@ self: {
        description = "Library for communication with the Bosch BNO055 orientation sensor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "board-games" = callPackage
@@ -44743,7 +44364,6 @@ self: {
        executableHaskellDepends = [ base hogre hois random ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "boilerplate" = callPackage
@@ -44907,7 +44527,6 @@ self: {
        description = "Runtime support for BOND serialization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bond-haskell-compiler" = callPackage
@@ -44930,7 +44549,6 @@ self: {
        description = "Bond code generator for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bookkeeper" = callPackage
@@ -44972,7 +44590,6 @@ self: {
        description = "Permissions for bookkeeper records";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bookkeeping" = callPackage
@@ -45198,7 +44815,6 @@ self: {
        description = "Boomshine clone";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "boop" = callPackage
@@ -45235,7 +44851,6 @@ self: {
        description = "Mathematically sound sound synthesis";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "boots" = callPackage
@@ -45292,7 +44907,6 @@ self: {
        description = "Factory for quickly building a microservice";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "boots-web" = callPackage
@@ -45313,7 +44927,6 @@ self: {
        description = "Factory for quickly building a web application";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bootstrap-types" = callPackage
@@ -45369,7 +44982,6 @@ self: {
        description = "Metering System for OpenStack metrics provided by Vaultaire";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "boring" = callPackage
@@ -45475,6 +45087,8 @@ self: {
        ];
        description = "Encoding and decoding for the Bottom spec";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bound" = callPackage
@@ -45616,7 +45230,6 @@ self: {
        description = "audio-visual pseudo-physical simulation of colliding circles";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "box" = callPackage
@@ -45645,7 +45258,6 @@ self: {
        description = "boxes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "box-csv" = callPackage
@@ -45663,7 +45275,6 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "box-socket" = callPackage
@@ -45688,7 +45299,6 @@ self: {
        description = "Box websockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "box-tuples" = callPackage
@@ -45848,6 +45458,7 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Break from a loop";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "breakout" = callPackage
@@ -45862,7 +45473,6 @@ self: {
        description = "A simple Breakout game implementation";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "breve" = callPackage
@@ -45886,8 +45496,6 @@ self: {
        ];
        description = "a url shortener";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "brians-brain" = callPackage
@@ -45914,8 +45522,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.61";
-       sha256 = "0cwrsndplgw5226cpdf7aad03jjidqh5wwwgm75anmya7c5lzl2d";
+       version = "0.62";
+       sha256 = "1f74m9yxwqv3xs1jhhpww2higfz3w0v1niff257wshhrvrkigh36";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46009,7 +45617,6 @@ self: {
        description = "Bricks is a lazy functional language based on Nix";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bricks-internal" = callPackage
@@ -46046,7 +45653,6 @@ self: {
        description = "...";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bricks-parsec" = callPackage
@@ -46068,7 +45674,6 @@ self: {
        description = "...";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bricks-rendering" = callPackage
@@ -46090,7 +45695,6 @@ self: {
        description = "...";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bricks-syntax" = callPackage
@@ -46112,7 +45716,6 @@ self: {
        description = "...";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "brillig" = callPackage
@@ -46147,8 +45750,8 @@ self: {
      }:
      mkDerivation {
        pname = "brittany";
-       version = "0.13.1.1";
-       sha256 = "1z47kzmff9vdnkg4xihpdvccfy5080i05mg4j8sy3nv4mwja0ki1";
+       version = "0.13.1.2";
+       sha256 = "1pa8qgsild3zl56sdmbsllka64k05jk2p16ij3bdla4rbfw96z5g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46342,7 +45945,6 @@ self: {
        description = "Streaming interface for the BronyRadioGermany API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "brotli" = callPackage
@@ -46385,7 +45987,6 @@ self: {
        description = "Conduit interface for Brotli (RFC7932) compression";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "brotli-streams" = callPackage
@@ -46407,7 +46008,6 @@ self: {
        description = "IO-Streams interface for Brotli (RFC7932) compression";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "browscap" = callPackage
@@ -46483,8 +46083,6 @@ self: {
        ];
        description = "BSON documents are JSON-like objects with a standard binary encoding";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bson-generic" = callPackage
@@ -46522,8 +46120,6 @@ self: {
        libraryHaskellDepends = [ base bson lens text ];
        description = "BSON lenses";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bson-mapping" = callPackage
@@ -46592,7 +46188,6 @@ self: {
        description = "B-Tree on Unmanaged Heap";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "btree-concurrent" = callPackage
@@ -46669,7 +46264,6 @@ self: {
        description = "Automates most of your plain text accounting data entry in ledger format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "buffer" = callPackage
@@ -46717,8 +46311,6 @@ self: {
        ];
        description = "Library for efficiently building up buffers, one piece at a time";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "buffer-builder-aeson" = callPackage
@@ -46824,6 +46416,8 @@ self: {
        ];
        description = "Perfect simulation of discrete random variables";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bug" = callPackage
@@ -46985,7 +46579,6 @@ self: {
        description = "Tools for working with buildbox benchmark result files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "builder" = callPackage
@@ -47040,7 +46633,6 @@ self: {
        description = "A library and an executable that provide an easy API for a Haskell IDE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bullet" = callPackage
@@ -47094,7 +46686,6 @@ self: {
        description = "Bulletproofs are short zero-knowledge proofs without a trusted setup";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bulmex" = callPackage
@@ -47120,7 +46711,6 @@ self: {
        description = "Reflex infused with bulma (css)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bumper" = callPackage
@@ -47177,7 +46767,6 @@ self: {
        description = "List OP_RETURN cryptocurrency transaction outputs";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "burrito" = callPackage
@@ -47186,8 +46775,8 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "1.2.0.1";
-       sha256 = "0swxc78vz1rj3q994cdnadgkanzcpm8rshvs2q49534rc2s6gq4g";
+       version = "1.2.0.2";
+       sha256 = "0d6qnajyh5v6hw89lw0d3lcan9l20zxkp8r3hq1imzbvb1mcasn5";
        libraryHaskellDepends = [
          base bytestring containers parsec template-haskell text
          transformers
@@ -47227,7 +46816,6 @@ self: {
        description = "Haskell interface to the Bus Pirate binary interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "buster" = callPackage
@@ -47263,7 +46851,6 @@ self: {
        description = "Almost but not quite entirely unlike FRP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "buster-network" = callPackage
@@ -47281,7 +46868,6 @@ self: {
        description = "Almost but not quite entirely unlike FRP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bustle" = callPackage
@@ -47314,6 +46900,9 @@ self: {
        testPkgconfigDepends = [ gio-unix ];
        description = "Draw sequence diagrams of D-Bus traffic";
        license = lib.licenses.lgpl21Plus;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {gio-unix = null; inherit (pkgs) libpcap; 
          system-glib = pkgs.glib;};
 
@@ -47381,7 +46970,6 @@ self: {
        description = "butterfly tilings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "buttplug-hs-core" = callPackage
@@ -47412,6 +47000,8 @@ self: {
        ];
        description = "Client library for buttplug.io";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bv" = callPackage
@@ -47466,18 +47056,21 @@ self: {
      }) {};
 
   "bv-sized" = callPackage
-    ({ mkDerivation, base, bitwise, bytestring, hedgehog, panic
-     , parameterized-utils, tasty, tasty-hedgehog, th-lift
+    ({ mkDerivation, base, bitwise, bytestring, deepseq, hedgehog
+     , MonadRandom, panic, parameterized-utils, random, tasty
+     , tasty-hedgehog, th-lift
      }:
      mkDerivation {
        pname = "bv-sized";
-       version = "1.0.2";
-       sha256 = "0lx7cm7404r71ciksv8g58797k6x02zh337ra88syhj7nzlnij5w";
+       version = "1.0.3";
+       sha256 = "1bqzj9gmx8lvfw037y4f3hibbcq6zafhm6xhjdhnvmlyc963n9v9";
        libraryHaskellDepends = [
-         base bitwise bytestring panic parameterized-utils th-lift
+         base bitwise bytestring deepseq panic parameterized-utils random
+         th-lift
        ];
        testHaskellDepends = [
-         base bytestring hedgehog parameterized-utils tasty tasty-hedgehog
+         base bytestring hedgehog MonadRandom parameterized-utils tasty
+         tasty-hedgehog
        ];
        description = "a bitvector datatype that is parameterized by the vector width";
        license = lib.licenses.bsd3;
@@ -47485,6 +47078,18 @@ self: {
        broken = true;
      }) {};
 
+  "bv-sized-lens" = callPackage
+    ({ mkDerivation, base, bv-sized, lens, parameterized-utils }:
+     mkDerivation {
+       pname = "bv-sized-lens";
+       version = "0.1.0.0";
+       sha256 = "1njwizsxpmlpb3vm460ciw2x7byfz4y0g8bhsnfiimmyn7yazdr6";
+       libraryHaskellDepends = [ base bv-sized lens parameterized-utils ];
+       description = "Well-typed lenses for bv-sized bitvectors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "byline" = callPackage
     ({ mkDerivation, ansi-terminal, attoparsec, base, colour
      , exceptions, free, haskeline, mtl, optparse-applicative, relude
@@ -47506,8 +47111,6 @@ self: {
        ];
        description = "Library for creating command-line interfaces (colors, menus, etc.)";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bytable" = callPackage
@@ -47528,8 +47131,8 @@ self: {
      }:
      mkDerivation {
        pname = "byte-count-reader";
-       version = "0.10.1.2";
-       sha256 = "11mzz8ahjlqq910s27wggk0vz9bjqxkyqs7lk8kr20cpx0by26s1";
+       version = "0.10.1.3";
+       sha256 = "1z02g8mkjwxdrbyxncbvrwg18knyiqa3w9n0x01y2xmbr279rsh0";
        libraryHaskellDepends = [ base extra parsec parsec-numbers text ];
        testHaskellDepends = [
          base extra hspec parsec parsec-numbers text
@@ -47604,7 +47207,6 @@ self: {
        description = "Serialize to a small byte arrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bytedump" = callPackage
@@ -47646,7 +47248,6 @@ self: {
        description = "Universal hashing of bytes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bytelog" = callPackage
@@ -47663,7 +47264,6 @@ self: {
        description = "Fast logging";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "byteorder" = callPackage
@@ -47728,8 +47328,6 @@ self: {
        benchmarkHaskellDepends = [ base gauge primitive ];
        description = "Slicing managed and unmanaged memory";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bytesmith" = callPackage
@@ -47755,7 +47353,6 @@ self: {
        description = "Nonresumable byte parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bytestring_0_11_1_0" = callPackage
@@ -47893,17 +47490,17 @@ self: {
      }) {};
 
   "bytestring-encoding" = callPackage
-    ({ mkDerivation, base, bytestring, QuickCheck, tasty, tasty-hunit
-     , tasty-quickcheck, tasty-th, text
+    ({ mkDerivation, base, bytestring, deepseq, QuickCheck, tasty
+     , tasty-hunit, tasty-quickcheck, tasty-th, text
      }:
      mkDerivation {
        pname = "bytestring-encoding";
-       version = "0.1.0.0";
-       sha256 = "05pjx59xxpi27j3qfh2cwy9ibfdsc7g0zcsfkdhsj33yxpls363d";
+       version = "0.1.1.0";
+       sha256 = "0m2w1nvj5izmb4j08c57lk89i3rnhhb0n0rz511pb6s75ijqrb71";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [
-         base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
-         tasty-th text
+         base bytestring deepseq QuickCheck tasty tasty-hunit
+         tasty-quickcheck tasty-th text
        ];
        description = "ByteString ↔ Text converter based on GHC.IO.Encoding";
        license = lib.licenses.bsd3;
@@ -48053,7 +47650,6 @@ self: {
        description = "fast ByteString to number converting library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bytestring-rematch" = callPackage
@@ -48361,6 +47957,18 @@ self: {
        broken = true;
      }) {};
 
+  "c-enum" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "c-enum";
+       version = "0.1.0.1";
+       sha256 = "1mg01qzmwaks9ix0269kpvjsa60fkvfc5hjn4wb47c7a6zam2rx0";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base template-haskell ];
+       description = "To make a type corresponding to an enum of C language";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "c-io" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -48419,6 +48027,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "c-struct" = callPackage
+    ({ mkDerivation, array, base, primitive, template-haskell }:
+     mkDerivation {
+       pname = "c-struct";
+       version = "0.1.0.1";
+       sha256 = "0932b00zhhss86baj6cqhvn4f66l6z8dax58l4gbaif81w9281zw";
+       libraryHaskellDepends = [ array base primitive template-haskell ];
+       testHaskellDepends = [ array base primitive template-haskell ];
+       description = "To make a wrapper for struct of C language";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "c0check" = callPackage
     ({ mkDerivation, base, c0parser }:
      mkDerivation {
@@ -48431,7 +48051,6 @@ self: {
        description = "Simple C0 Syntax Check";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "c0parser" = callPackage
@@ -48604,8 +48223,6 @@ self: {
        ];
        description = "A maintenance command of Haskell cabal packages";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal" = callPackage
@@ -48633,8 +48250,6 @@ self: {
        libraryHaskellDepends = [ base Cabal filepath ];
        description = "Cabal support for creating AppImage applications";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-audit" = callPackage
@@ -48690,7 +48305,6 @@ self: {
        description = "A command line program for managing the dependency versions in a cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-build-programs" = callPackage
@@ -48756,7 +48370,6 @@ self: {
        description = "CI Assistant for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-cargs" = callPackage
@@ -48780,7 +48393,6 @@ self: {
        description = "A command line program for extracting compiler arguments from a cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-constraints" = callPackage
@@ -49415,7 +49027,6 @@ self: {
        description = "Helpers for quering .cabal files or hackageDB's 00-index.tar";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-rpm" = callPackage
@@ -49542,7 +49153,6 @@ self: {
        description = "Automated test tool for cabal projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-test-bin" = callPackage
@@ -49649,7 +49259,6 @@ self: {
        description = "Create Arch Linux packages from Cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal2doap" = callPackage
@@ -49853,7 +49462,6 @@ self: {
        description = "Create mandriva rpm from cabal package";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabalrpmdeps" = callPackage
@@ -49869,7 +49477,6 @@ self: {
        description = "Autogenerate rpm dependencies from cabal files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabalvchk" = callPackage
@@ -50039,8 +49646,6 @@ self: {
        ];
        description = "A vault-style cache implementation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cachix" = callPackage
@@ -50149,14 +49754,16 @@ self: {
      }:
      mkDerivation {
        pname = "caerbannog";
-       version = "0.6.0.4";
-       sha256 = "0zm6vdbsb947nd3wcniyk8mjs52r6hwyyp64w1abnazajraqask8";
+       version = "0.6.0.5";
+       sha256 = "048d46g7xnqbkb061hs3ix8rzpp1mwww9iznpgrrkvimafb0r0m0";
        libraryHaskellDepends = [ base binary bytestring ];
        testHaskellDepends = [
          base binary bytestring hspec QuickCheck random
        ];
        description = "That rabbit's got a vicious streak a mile wide!";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "caf" = callPackage
@@ -50291,7 +49898,6 @@ self: {
        description = "A build-system library and driver";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cake3" = callPackage
@@ -50341,7 +49947,6 @@ self: {
        description = "run turtle like LOGO with lojban";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cal-layout" = callPackage
@@ -50387,7 +49992,6 @@ self: {
        description = "Examples for the Cal3d animation library";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cal3d-opengl" = callPackage
@@ -50400,33 +50004,34 @@ self: {
        description = "OpenGL rendering for the Cal3D animation library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "calamity" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, colour
-     , concurrent-extra, connection, containers, data-default-class
-     , data-flags, deepseq, deque, df1, di-core, di-polysemy, exceptions
-     , fmt, focus, generic-lens, hashable, http-api-data, http-client
-     , http-date, http-types, lens, lens-aeson, megaparsec, mime-types
-     , mtl, polysemy, polysemy-plugin, reflection, req, safe-exceptions
+    ({ mkDerivation, aeson, async, base, bytestring, calamity-commands
+     , colour, concurrent-extra, connection, containers
+     , data-default-class, data-flags, deepseq, deque, df1, di-core
+     , di-polysemy, exceptions, focus, generic-lens, hashable
+     , http-api-data, http-client, http-date, http-types, lens
+     , lens-aeson, megaparsec, mime-types, mtl, polysemy
+     , polysemy-plugin, PyF, reflection, req, safe-exceptions
      , scientific, stm, stm-chans, stm-containers, text, text-show, time
      , tls, typerep-map, unagi-chan, unboxing-vector
      , unordered-containers, vector, websockets, x509-system
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.1.28.4";
-       sha256 = "07ibhr3xngpwl7pq9ykbf6pxzlp8yx49d0qrlhyn7hj5xbswkv3f";
-       libraryHaskellDepends = [
-         aeson async base bytestring colour concurrent-extra connection
-         containers data-default-class data-flags deepseq deque df1 di-core
-         di-polysemy exceptions fmt focus generic-lens hashable
-         http-api-data http-client http-date http-types lens lens-aeson
-         megaparsec mime-types mtl polysemy polysemy-plugin reflection req
-         safe-exceptions scientific stm stm-chans stm-containers text
-         text-show time tls typerep-map unagi-chan unboxing-vector
-         unordered-containers vector websockets x509-system
+       version = "0.1.30.2";
+       sha256 = "0i0v8cb0a3mbkrb3liw60gb7zflnps5w04a6nx5aynini7mpwanj";
+       libraryHaskellDepends = [
+         aeson async base bytestring calamity-commands colour
+         concurrent-extra connection containers data-default-class
+         data-flags deepseq deque df1 di-core di-polysemy exceptions focus
+         generic-lens hashable http-api-data http-client http-date
+         http-types lens lens-aeson megaparsec mime-types mtl polysemy
+         polysemy-plugin PyF reflection req safe-exceptions scientific stm
+         stm-chans stm-containers text text-show time tls typerep-map
+         unagi-chan unboxing-vector unordered-containers vector websockets
+         x509-system
        ];
        description = "A library for writing discord bots in haskell";
        license = lib.licenses.mit;
@@ -50440,8 +50045,8 @@ self: {
      }:
      mkDerivation {
        pname = "calamity-commands";
-       version = "0.1.0.0";
-       sha256 = "0l2x65w7inib5bdfw0gzffm3pdlsylnivnjc8y82x7fi6jha8jcp";
+       version = "0.1.3.0";
+       sha256 = "0vhv63vapjc51hx6g9mjr5vgxlsfkss828wxcfjf5jd98qdv96dj";
        libraryHaskellDepends = [
          base generic-lens lens megaparsec polysemy polysemy-plugin text
          text-show unordered-containers
@@ -50462,7 +50067,6 @@ self: {
        description = "A small compiler for arithmetic expressions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "calculator" = callPackage
@@ -50485,7 +50089,6 @@ self: {
        description = "A calculator repl, with variables, functions & Mathematica like dynamic plots";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "caldims" = callPackage
@@ -50507,7 +50110,6 @@ self: {
        description = "Calculation tool and library supporting units";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "caledon" = callPackage
@@ -50585,7 +50187,6 @@ self: {
        description = "The call game engine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "call-alloy" = callPackage
@@ -50643,6 +50244,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "call-stack_0_4_0" = callPackage
+    ({ mkDerivation, base, filepath, nanospec }:
+     mkDerivation {
+       pname = "call-stack";
+       version = "0.4.0";
+       sha256 = "0yxq6v37kcmgv6rrna4g1ipr8mhkgf00ng2p359ybxq46j5cy2s3";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base filepath nanospec ];
+       description = "Use GHC call-stacks in a backward compatible way";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "camfort" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, fgl, filepath, flint, fortran-src
@@ -50679,7 +50293,6 @@ self: {
        description = "CamFort - Cambridge Fortran infrastructure";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) flint;};
 
   "camh" = callPackage
@@ -50713,7 +50326,6 @@ self: {
        description = "Haskell implementation of the Campfire API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "can-i-haz" = callPackage
@@ -50759,7 +50371,6 @@ self: {
        description = "Candid integration";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "canon" = callPackage
@@ -50842,7 +50453,6 @@ self: {
        description = "Utilities for HTTP programming";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "canteven-listen-http" = callPackage
@@ -50971,7 +50581,6 @@ self: {
        description = "CAO Compiler";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cap" = callPackage
@@ -50987,7 +50596,6 @@ self: {
        description = "Interprets and debug the cap language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "capability" = callPackage
@@ -51145,7 +50753,6 @@ self: {
        description = "Simple web-server for organizing car-pooling for an event";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "caramia" = callPackage
@@ -51206,7 +50813,6 @@ self: {
        description = "Drop emails from threads being watched into special CC folder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cardano-coin-selection" = callPackage
@@ -51228,8 +50834,6 @@ self: {
        ];
        description = "Algorithms for coin selection and fee balancing";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cardano-transactions" = callPackage
@@ -51354,7 +50958,6 @@ self: {
        description = "Specify Cabal files in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cas-hashable" = callPackage
@@ -51500,7 +51103,6 @@ self: {
        description = "mid-level bindings to CasADi";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {casadi = null;};
 
   "casadi-bindings-control" = callPackage
@@ -51518,7 +51120,6 @@ self: {
        description = "low level bindings to casadi-control";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {casadi_control = null;};
 
   "casadi-bindings-core" = callPackage
@@ -51536,7 +51137,6 @@ self: {
        description = "autogenerated low level bindings to casadi";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {casadi = null;};
 
   "casadi-bindings-internal" = callPackage
@@ -51568,7 +51168,6 @@ self: {
        description = "low level bindings to casadi-ipopt_interface";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {casadi_ipopt_interface = null;};
 
   "casadi-bindings-snopt-interface" = callPackage
@@ -51586,7 +51185,6 @@ self: {
        description = "low level bindings to casadi-snopt_interface";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {casadi_snopt_interface = null;};
 
   "cascading" = callPackage
@@ -51698,8 +51296,6 @@ self: {
        benchmarkHaskellDepends = [ gauge mwc-random rerebase ];
        description = "A converter for spinal, snake and camel cases";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cash" = callPackage
@@ -51717,7 +51313,6 @@ self: {
        description = "the Computer Algebra SHell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "casing" = callPackage
@@ -51925,7 +51520,6 @@ self: {
        description = "Haskell client for Cassandra's CQL protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cassandra-thrift" = callPackage
@@ -52125,7 +51719,6 @@ self: {
        description = "A high level driver for the Cassandra datastore";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cast" = callPackage
@@ -52214,7 +51807,6 @@ self: {
        description = "Equation Manipulator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "catalyst" = callPackage
@@ -52265,7 +51857,6 @@ self: {
        description = "Categorical Monoids and Semirings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "categories" = callPackage
@@ -52316,7 +51907,6 @@ self: {
        description = "A meta-package documenting various packages inspired by category theory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "category-printf" = callPackage
@@ -52429,6 +52019,8 @@ self: {
        testHaskellDepends = [ base base16-bytestring hspec ];
        description = "Cayenne Low Power Payload";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cayenne-lpp" = callPackage
@@ -52559,8 +52151,8 @@ self: {
        pname = "cborg-json";
        version = "0.2.2.0";
        sha256 = "0ysilz7rrjk94sqr3a61s98hr9qfi1xg13bskmlpc6mpgi2s4s5b";
-       revision = "2";
-       editedCabalFile = "1hbabjvmyqha75v2ivyvj6yzrnj9vs3h9988j4p68x9bcwmgyjyd";
+       revision = "3";
+       editedCabalFile = "1sn2f9nfjcbr0n62n4kklbdi3pzpwrcy7ilg7m3v41nwrk53ifwy";
        libraryHaskellDepends = [
          aeson aeson-pretty base cborg scientific text unordered-containers
          vector
@@ -52636,9 +52228,32 @@ self: {
        description = "High-level interface to CCTools' WorkQueue library";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {dttools = null;};
 
+  "cdar-mBound" = callPackage
+    ({ mkDerivation, base, containers, criterion, deepseq, integer-gmp
+     , parallel, QuickCheck, smallcheck, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-smallcheck
+     }:
+     mkDerivation {
+       pname = "cdar-mBound";
+       version = "0.1.0.2";
+       sha256 = "1qzpb9kwswln7vbj0v0qm6fsi6v3v9xx701hyfg12y3f9hz096zf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers deepseq integer-gmp ];
+       executableHaskellDepends = [ base containers deepseq integer-gmp ];
+       testHaskellDepends = [
+         base containers deepseq integer-gmp QuickCheck smallcheck tasty
+         tasty-hunit tasty-quickcheck tasty-smallcheck
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq integer-gmp parallel
+       ];
+       description = "Exact real arithmetic using Centred Dyadic Approximations";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "cdeps" = callPackage
     ({ mkDerivation, alex, array, base, bytestring, criterion
      , directory, filepath, hspec, optparse-applicative, text
@@ -52720,7 +52335,6 @@ self: {
        description = "Simple wrapper around cef3-raw";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ceilometer-common" = callPackage
@@ -52745,7 +52359,6 @@ self: {
        description = "Common Haskell types and encoding for OpenStack Ceilometer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cellrenderer-cairo" = callPackage
@@ -52786,7 +52399,6 @@ self: {
        description = "A tool to build a novel";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cerberus" = callPackage
@@ -52891,7 +52503,6 @@ self: {
        description = "Deserialize things with cereal and enumerator";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cereal-ieee754" = callPackage
@@ -52928,7 +52539,6 @@ self: {
        description = "io-streams support for the cereal binary serialization library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cereal-plus" = callPackage
@@ -52977,7 +52587,6 @@ self: {
        description = "Use cereal to encode/decode io-streams";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cereal-text" = callPackage
@@ -53059,7 +52668,6 @@ self: {
        description = "Certificates and Key Reader/Writer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cf" = callPackage
@@ -53115,7 +52723,6 @@ self: {
        description = "cfipu processor for toy brainfuck-like language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cflp" = callPackage
@@ -53135,7 +52742,6 @@ self: {
        description = "Constraint Functional-Logic Programming in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cfopu" = callPackage
@@ -53154,7 +52760,6 @@ self: {
        description = "cfopu processor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cg" = callPackage
@@ -53268,7 +52873,6 @@ self: {
        description = "Command line tool";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chain-codes" = callPackage
@@ -53308,7 +52912,6 @@ self: {
        description = "Mining Client for Kadena Chainweb";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chakra" = callPackage
@@ -53357,7 +52960,6 @@ self: {
        description = "A REST Web Api server template for building (micro)services";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chalk" = callPackage
@@ -53401,7 +53003,6 @@ self: {
        description = "OpenGL based viewer for chalkboard rendered images";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chalmers-lava2000" = callPackage
@@ -53414,6 +53015,8 @@ self: {
        libraryHaskellDepends = [ array base process random ];
        description = "Hardware description EDSL";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "chan" = callPackage
@@ -53550,7 +53153,6 @@ self: {
        description = "Rapid prototyping websites with Snap and Heist";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "charset" = callPackage
@@ -53577,6 +53179,9 @@ self: {
        libraryHaskellDepends = [ base bytestring ];
        description = "Character set detection using Mozilla's Universal Character Set Detector";
        license = "LGPL";
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
      }) {};
 
   "charsetdetect-ae" = callPackage
@@ -53608,7 +53213,6 @@ self: {
        description = "Command-line utility to draw charts from input data easily";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chart-histogram" = callPackage
@@ -53652,7 +53256,6 @@ self: {
        description = "Charting library targetting SVGs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chart-svg-various" = callPackage
@@ -53677,7 +53280,6 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chart-unit" = callPackage
@@ -53703,7 +53305,6 @@ self: {
        description = "Native haskell charts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "charter" = callPackage
@@ -53808,6 +53409,7 @@ self: {
        ];
        description = "A library of simple NLP algorithms";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "chatty" = callPackage
@@ -53959,7 +53561,17 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "check-cfg-ambiguity" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "check-cfg-ambiguity";
+       version = "0.0.0.1";
+       sha256 = "1qdg707a8yq61s5rs677yc8wp00sxdrf4vpr2r3c98q2psbkxl1n";
+       libraryHaskellDepends = [ base containers ];
+       description = "Checks context free grammar for ambiguity using brute force up to given limit";
+       license = lib.licenses.bsd3;
      }) {};
 
   "check-email" = callPackage
@@ -53992,7 +53604,6 @@ self: {
        description = "Check whether module and package imports conform to the PVP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "checked" = callPackage
@@ -54146,8 +53757,8 @@ self: {
      }:
      mkDerivation {
        pname = "chessIO";
-       version = "0.6.0.0";
-       sha256 = "0lc0bif9bp4h0131cy9rss90qv026mlknr16ayxlvfn3ynyarqv8";
+       version = "0.6.1.1";
+       sha256 = "0fnbbxsnfb53pcmqs8bhszbd36d44gn9wz0j029yhfh3i1fy40yy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -54168,8 +53779,6 @@ self: {
        ];
        description = "Basic chess library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chesshs" = callPackage
@@ -54201,31 +53810,41 @@ self: {
        description = "Query interface for Chevalier";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chiasma" = callPackage
-    ({ mkDerivation, base, bytestring, data-default-class, directory
-     , either, filepath, free, HTF, lens, mtl, parsec, posix-pty
-     , process, resourcet, split, transformers, typed-process, unix
-     , unliftio
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, composition
+     , composition-extra, conduit, conduit-extra, containers, cornea
+     , data-default, deepseq, directory, either, exceptions, filepath
+     , free, hedgehog, lens, mtl, parsec, parsers, posix-pty
+     , prettyprinter, prettyprinter-ansi-terminal, process, random
+     , relude, resourcet, split, stm-chans, stm-conduit, tasty
+     , tasty-hedgehog, text, transformers, typed-process, unix, unliftio
+     , unliftio-core, uuid
      }:
      mkDerivation {
        pname = "chiasma";
-       version = "0.1.0.0";
-       sha256 = "140p3qrrdh3im5qj43swl9cvljgyc39zy7ci5048j42h8x9q7glg";
-       libraryHaskellDepends = [
-         base bytestring data-default-class directory either filepath free
-         lens mtl parsec posix-pty process resourcet split transformers
-         typed-process unix unliftio
-       ];
-       testHaskellDepends = [
-         base bytestring data-default-class directory either filepath free
-         HTF lens mtl parsec posix-pty process resourcet split transformers
-         typed-process unix unliftio
+       version = "0.2.0.0";
+       sha256 = "11pbg9mlmp15hs2wdca0qyhbc94d91xkl75jlcaksla8l1qnnz9m";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring composition composition-extra
+         conduit conduit-extra containers cornea data-default deepseq
+         directory either exceptions filepath free lens mtl parsec parsers
+         posix-pty prettyprinter prettyprinter-ansi-terminal process random
+         relude resourcet split stm-chans stm-conduit text transformers
+         typed-process unix unliftio unliftio-core uuid
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base bytestring composition composition-extra
+         conduit conduit-extra containers cornea data-default deepseq
+         directory either exceptions filepath free hedgehog lens mtl parsec
+         parsers posix-pty prettyprinter prettyprinter-ansi-terminal process
+         random relude resourcet split stm-chans stm-conduit tasty
+         tasty-hedgehog text transformers typed-process unix unliftio
+         unliftio-core uuid
        ];
        description = "tmux api";
-       license = lib.licenses.mit;
+       license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -54267,8 +53886,6 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Haskell bindings for Chipmunk2D physics engine";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chitauri" = callPackage
@@ -54289,7 +53906,6 @@ self: {
        description = "Helper for the Major System";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "choice" = callPackage
@@ -54331,7 +53947,6 @@ self: {
        description = "Command-line program to choose random element from a stream";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chorale" = callPackage
@@ -54369,7 +53984,6 @@ self: {
        description = "A module containing basic geo functions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chp" = callPackage
@@ -54399,7 +54013,6 @@ self: {
        description = "MTL class instances for the CHP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chp-plus" = callPackage
@@ -54417,7 +54030,6 @@ self: {
        description = "A set of high-level concurrency utilities built on Communicating Haskell Processes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chp-spec" = callPackage
@@ -54447,7 +54059,6 @@ self: {
        description = "Transformers instances for the CHP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chr-core" = callPackage
@@ -54465,7 +54076,6 @@ self: {
        description = "Constraint Handling Rules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chr-data" = callPackage
@@ -54504,7 +54114,6 @@ self: {
        description = "AST + surface language around chr";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chr-parse" = callPackage
@@ -54569,7 +54178,6 @@ self: {
        description = "neovim package manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chronograph" = callPackage
@@ -54677,8 +54285,6 @@ self: {
        benchmarkHaskellDepends = [ base ];
        description = "Benchmarking tool with focus on comparing results";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chs-cabal" = callPackage
@@ -54727,7 +54333,6 @@ self: {
        description = "FFI for Chu2 Agda Web Server Interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chuchu" = callPackage
@@ -54773,7 +54378,6 @@ self: {
        description = "Simple template library with static safety";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chunky" = callPackage
@@ -54860,8 +54464,6 @@ self: {
        ];
        description = "Channel/Arrow based streaming computation library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cielo" = callPackage
@@ -55122,7 +54724,6 @@ self: {
        description = "Implementation of CipherSaber2 RC4 cryptography";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "circ" = callPackage
@@ -55276,7 +54877,6 @@ self: {
        description = "convert document IDs such as DOI, ISBN, arXiv ID to bibliographic reference";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "citeproc" = callPackage
@@ -55305,6 +54905,33 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "citeproc_0_4" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring
+     , case-insensitive, containers, data-default, Diff, directory
+     , file-embed, filepath, mtl, pandoc-types, pretty, safe, scientific
+     , text, timeit, transformers, unicode-collation, uniplate, vector
+     , xml-conduit
+     }:
+     mkDerivation {
+       pname = "citeproc";
+       version = "0.4";
+       sha256 = "0ca6xyv0pa0w10pzn7zmpvg6583xjs8ffj16ykkrw9gjd4nlginh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring case-insensitive containers
+         data-default file-embed filepath pandoc-types safe scientific text
+         transformers unicode-collation uniplate vector xml-conduit
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers Diff directory filepath mtl pretty
+         text timeit transformers
+       ];
+       description = "Generates citations and bibliography from CSL styles";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "citeproc-hs" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
      , hexpat, hs-bibutils, HTTP, json, mtl, network, network-uri
@@ -55344,7 +54971,6 @@ self: {
        description = "A Pandoc filter for processing bibliographic references with citeproc-hs";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cityhash" = callPackage
@@ -55418,8 +55044,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Clifford Algebra of three dimensional space";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cl3-hmatrix-interface" = callPackage
@@ -55431,8 +55055,6 @@ self: {
        libraryHaskellDepends = [ base cl3 hmatrix ];
        description = "Interface to/from Cl3 and HMatrix";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cl3-linear-interface" = callPackage
@@ -55444,8 +55066,6 @@ self: {
        libraryHaskellDepends = [ base cl3 linear ];
        description = "Interface to/from Cl3 and Linear";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clac" = callPackage
@@ -55465,7 +55085,6 @@ self: {
        description = "Simple CLI RPN calculator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clafer" = callPackage
@@ -55501,7 +55120,6 @@ self: {
        description = "Compiles Clafer models to other formats: Alloy, JavaScript, JSON, HTML, Dot";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "claferIG" = callPackage
@@ -55535,7 +55153,6 @@ self: {
        description = "claferIG is an interactive tool that generates instances of Clafer models";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "claferwiki" = callPackage
@@ -55556,7 +55173,6 @@ self: {
        description = "A wiki-based IDE for literate modeling with Clafer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clang-compilation-database" = callPackage
@@ -55651,43 +55267,11 @@ self: {
        description = "CAES Language for Synchronous Hardware (CLaSH)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clash-ghc" = callPackage
     ({ mkDerivation, array, base, bifunctors, bytestring, Cabal
      , clash-lib, clash-prelude, concurrent-supply, containers, deepseq
-     , directory, exceptions, filepath, ghc, ghc-boot, ghc-prim
-     , ghc-typelits-extra, ghc-typelits-knownnat
-     , ghc-typelits-natnormalise, ghci, hashable, haskeline, integer-gmp
-     , lens, mtl, primitive, process, reflection, split
-     , template-haskell, text, time, transformers, uniplate, unix
-     , unordered-containers, utf8-string, vector
-     }:
-     mkDerivation {
-       pname = "clash-ghc";
-       version = "1.2.5";
-       sha256 = "1wxlhcpwq0m7k4f12x16ybvp4s5m45p9qk27wjkgk133fw35y3pz";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bifunctors bytestring Cabal clash-lib clash-prelude
-         concurrent-supply containers deepseq directory exceptions filepath
-         ghc ghc-boot ghc-prim ghc-typelits-extra ghc-typelits-knownnat
-         ghc-typelits-natnormalise ghci hashable haskeline integer-gmp lens
-         mtl primitive process reflection split template-haskell text time
-         transformers uniplate unix unordered-containers utf8-string vector
-       ];
-       executableHaskellDepends = [ base ];
-       description = "CAES Language for Synchronous Hardware";
-       license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "clash-ghc_1_4_1" = callPackage
-    ({ mkDerivation, array, base, bifunctors, bytestring, Cabal
-     , clash-lib, clash-prelude, concurrent-supply, containers, deepseq
      , directory, exceptions, extra, filepath, ghc, ghc-boot, ghc-prim
      , ghc-typelits-extra, ghc-typelits-knownnat
      , ghc-typelits-natnormalise, ghci, hashable, haskeline, integer-gmp
@@ -55697,8 +55281,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-ghc";
-       version = "1.4.1";
-       sha256 = "0brfhgdb5ilrm4rxx8hsjsrzrj0lxppsd1g1k7m4jrdk7xp1mnlk";
+       version = "1.4.2";
+       sha256 = "04sj88mcxszgbr8rxnrwa48r2pkf7h612507gcyk131f5kf6mkss";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -55714,51 +55298,9 @@ self: {
        description = "Clash: a functional hardware description language - GHC frontend";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clash-lib" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, attoparsec, base, binary
-     , bytestring, clash-prelude, concurrent-supply, containers
-     , data-binary-ieee754, data-default, deepseq, directory, dlist
-     , errors, exceptions, extra, filepath, ghc, ghc-boot-th
-     , ghc-typelits-knownnat, hashable, haskell-src-exts
-     , haskell-src-meta, hint, integer-gmp, interpolate, lens, mtl
-     , ordered-containers, parsers, prettyprinter, primitive, process
-     , reducers, tasty, tasty-hunit, template-haskell, temporary
-     , terminal-size, text, text-show, time, transformers, trifecta
-     , unordered-containers, utf8-string, vector
-     , vector-binary-instances
-     }:
-     mkDerivation {
-       pname = "clash-lib";
-       version = "1.2.5";
-       sha256 = "14xi0llzm6f3ymlcfwq67d16ggdkqxrxkvr6rwmykxrca3j1b6r3";
-       revision = "1";
-       editedCabalFile = "15pvhd19yq2m1c2n33iawxngmpc6d0jfsh02038j8fbpzx68p7bw";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson ansi-terminal attoparsec base binary bytestring clash-prelude
-         concurrent-supply containers data-binary-ieee754 data-default
-         deepseq directory dlist errors exceptions extra filepath ghc
-         ghc-boot-th hashable haskell-src-meta hint integer-gmp interpolate
-         lens mtl ordered-containers parsers prettyprinter primitive process
-         reducers template-haskell temporary terminal-size text text-show
-         time transformers trifecta unordered-containers utf8-string vector
-         vector-binary-instances
-       ];
-       testHaskellDepends = [
-         base clash-prelude concurrent-supply containers data-default
-         deepseq ghc ghc-typelits-knownnat haskell-src-exts lens tasty
-         tasty-hunit template-haskell text transformers unordered-containers
-       ];
-       description = "CAES Language for Synchronous Hardware - As a Library";
-       license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "clash-lib_1_4_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array
      , attoparsec, base, base16-bytestring, binary, bytestring
      , clash-prelude, concurrent-supply, containers, cryptohash-sha256
@@ -55775,8 +55317,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-lib";
-       version = "1.4.1";
-       sha256 = "1gg2snjfhhclfmyz07l5hddn8pfh9k4l4xjba1bx5php76kyiz0v";
+       version = "1.4.2";
+       sha256 = "1gismfz0pahhgfgra8kn34i3g82ip5nfy9aj38ym3rcnpg4aw10m";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array attoparsec base
@@ -55799,7 +55341,6 @@ self: {
        description = "Clash: a functional hardware description language - As a library";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clash-multisignal" = callPackage
@@ -55815,50 +55356,9 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clash-prelude" = callPackage
-    ({ mkDerivation, array, base, bifunctors, binary, bytestring, Cabal
-     , cabal-doctest, constraints, containers, criterion
-     , data-binary-ieee754, data-default-class, deepseq, doctest
-     , ghc-prim, ghc-typelits-extra, ghc-typelits-knownnat
-     , ghc-typelits-natnormalise, half, hashable, hedgehog, hint
-     , integer-gmp, interpolate, lens, QuickCheck
-     , quickcheck-classes-base, recursion-schemes, reflection
-     , singletons, tasty, tasty-hedgehog, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, text-show, th-abstraction, th-lift
-     , th-orphans, time, transformers, type-errors, uniplate, vector
-     }:
-     mkDerivation {
-       pname = "clash-prelude";
-       version = "1.2.5";
-       sha256 = "0q97ap4a6cbf6s06934639pws9z1yyzmmaw6gj05p8jv7r4is239";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         array base bifunctors binary bytestring constraints containers
-         data-binary-ieee754 data-default-class deepseq ghc-prim
-         ghc-typelits-extra ghc-typelits-knownnat ghc-typelits-natnormalise
-         half hashable integer-gmp interpolate lens QuickCheck
-         recursion-schemes reflection singletons template-haskell text
-         text-show th-abstraction th-lift th-orphans time transformers
-         type-errors uniplate vector
-       ];
-       testHaskellDepends = [
-         base doctest ghc-typelits-extra ghc-typelits-knownnat
-         ghc-typelits-natnormalise hedgehog hint quickcheck-classes-base
-         tasty tasty-hedgehog tasty-hunit tasty-quickcheck template-haskell
-       ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq template-haskell
-       ];
-       description = "CAES Language for Synchronous Hardware - Prelude library";
-       license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "clash-prelude_1_4_1" = callPackage
     ({ mkDerivation, array, arrows, base, bifunctors, binary
      , bytestring, Cabal, cabal-doctest, constraints, containers
      , criterion, data-binary-ieee754, data-default-class, deepseq
@@ -55873,8 +55373,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-prelude";
-       version = "1.4.1";
-       sha256 = "12f3nlg6820grkjkljhyqgq43qc1x58akiy51gbxf6qp8k55akka";
+       version = "1.4.2";
+       sha256 = "04hshjdddd9sk697zvbwlq6cdvyvdfrw670ksfdxxgssyrcsid95";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array arrows base bifunctors binary bytestring constraints
@@ -55929,7 +55429,6 @@ self: {
        description = "CAES Language for Synchronous Hardware - SystemVerilog backend";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clash-verilog" = callPackage
@@ -55948,7 +55447,6 @@ self: {
        description = "CAES Language for Synchronous Hardware - Verilog backend";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clash-vhdl" = callPackage
@@ -55967,7 +55465,6 @@ self: {
        description = "CAES Language for Synchronous Hardware - VHDL backend";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "classify" = callPackage
@@ -56011,7 +55508,6 @@ self: {
        description = "Classify sounds produced by Xenopus laevis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "classy-influxdb-simple" = callPackage
@@ -56051,7 +55547,6 @@ self: {
        description = "Typeclass based support for Miso, the Tasty Web Framework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "classy-parallel" = callPackage
@@ -56196,7 +55691,6 @@ self: {
        description = "A secure, reliable content management system (CMS) and blogging platform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) openssl;};
 
   "clckwrks-cli" = callPackage
@@ -56220,7 +55714,6 @@ self: {
        description = "a command-line interface for adminstrating some aspects of clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-dot-com" = callPackage
@@ -56243,7 +55736,6 @@ self: {
        description = "clckwrks.com";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-plugin-bugs" = callPackage
@@ -56270,7 +55762,6 @@ self: {
        description = "bug tracking plugin for clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-plugin-ircbot" = callPackage
@@ -56295,7 +55786,6 @@ self: {
        description = "ircbot plugin for clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-plugin-mailinglist" = callPackage
@@ -56321,7 +55811,6 @@ self: {
        description = "mailing list plugin for clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-plugin-media" = callPackage
@@ -56345,7 +55834,6 @@ self: {
        description = "media plugin for clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-plugin-page" = callPackage
@@ -56372,7 +55860,6 @@ self: {
        description = "support for CMS/Blogging in clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-plugin-redirect" = callPackage
@@ -56398,7 +55885,6 @@ self: {
        description = "support redirects for CMS/Blogging in clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-theme-bootstrap" = callPackage
@@ -56417,7 +55903,6 @@ self: {
        description = "simple bootstrap based template for clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-theme-clckwrks" = callPackage
@@ -56436,7 +55921,6 @@ self: {
        description = "simple bootstrap based template for clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clckwrks-theme-geo-bootstrap" = callPackage
@@ -56450,7 +55934,6 @@ self: {
        description = "geo bootstrap based template for clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cld2" = callPackage
@@ -56513,7 +55996,6 @@ self: {
        description = "Colorized LESS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clevercss" = callPackage
@@ -56596,8 +56078,6 @@ self: {
        ];
        description = "Miscellaneous utilities for building and working with command line interfaces";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cli-git" = callPackage
@@ -56614,8 +56094,6 @@ self: {
        ];
        description = "Bindings to the git command-line interface";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cli-nix" = callPackage
@@ -56632,8 +56110,6 @@ self: {
        ];
        description = "Bindings to the nix command-line interface";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cli-setup" = callPackage
@@ -56779,7 +56255,6 @@ self: {
        description = "A Clifford algebra library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clifm" = callPackage
@@ -56896,7 +56371,6 @@ self: {
        description = "A parser/generator for Kindle-format clipping files (`My Clippings.txt`),";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clisparkline" = callPackage
@@ -57020,7 +56494,6 @@ self: {
        description = "timer functionality to clock IO commands";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {QtCore = null;};
 
   "clogparse" = callPackage
@@ -57133,7 +56606,6 @@ self: {
        description = "The Cloud Haskell Application Platform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cloud-seeder" = callPackage
@@ -57163,7 +56635,6 @@ self: {
        description = "A tool for interacting with AWS CloudFormation";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cloudfront-signer" = callPackage
@@ -57190,8 +56661,8 @@ self: {
      }:
      mkDerivation {
        pname = "cloudi";
-       version = "2.0.1";
-       sha256 = "0s01582a2iyibwhlkmmf4n9h0fs3w0sjip65j78c4hldc91ylvqd";
+       version = "2.0.2";
+       sha256 = "19m07hh2vrzgj6nalcm3fbrlxcv5c8ci6d9c9pihv82d444n37j6";
        libraryHaskellDepends = [
          array base binary bytestring containers network time unix zlib
        ];
@@ -57353,7 +56824,6 @@ self: {
        description = "C to Lua data wrapper generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clumpiness" = callPackage
@@ -57424,7 +56894,6 @@ self: {
        description = "Tools for manipulating sequence clusters";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "clutterhs" = callPackage
@@ -57443,7 +56912,6 @@ self: {
        description = "Bindings to the Clutter animation library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) clutter; inherit (pkgs) pango;};
 
   "cmaes" = callPackage
@@ -57610,7 +57078,6 @@ self: {
        description = "Data model, parser, serialiser and transformations for Content MathML 3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cmd-item" = callPackage
@@ -57777,7 +57244,6 @@ self: {
        description = "Compare types of any kinds";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cmt" = callPackage
@@ -57849,7 +57315,6 @@ self: {
        description = "Detailed visualization of CMs, HMMs and their comparisions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cnc-spec-compiler" = callPackage
@@ -57872,7 +57337,6 @@ self: {
        description = "Compiler/Translator for CnC Specification Files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cndict" = callPackage
@@ -57990,7 +57454,6 @@ self: {
        description = "A Polysemy logging effect for high quality (unstructured) logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "co-log-sys" = callPackage
@@ -58068,8 +57531,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.3.18";
-       sha256 = "1xyri98rlg4ph9vyjicivq8vb1kk085pbpv43ydw6qvpqlp97wk5";
+       version = "0.1.3.19";
+       sha256 = "1gs4q04iyzzfwij58bbmhz2app3gf4xj0dnd4x4bhkgwj7gmvf4m";
        libraryHaskellDepends = [
          array attoparsec base binary bytestring containers data-msgpack
          deepseq http-conduit hyraxAbif lens linear mtl split text vector
@@ -58123,6 +57586,23 @@ self: {
        broken = true;
      }) {};
 
+  "code-conjure" = callPackage
+    ({ mkDerivation, base, express, leancheck, speculate
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "code-conjure";
+       version = "0.3.2";
+       sha256 = "1mmsbs9n04vcrhaizxv6z6mkd0w5gvhvrffwyfxpfg995vf19gz9";
+       libraryHaskellDepends = [
+         base express leancheck speculate template-haskell
+       ];
+       testHaskellDepends = [ base express leancheck speculate ];
+       description = "conjure Haskell functions out of partial definitions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "code-page" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -58156,7 +57636,6 @@ self: {
        description = "Simple bidirectional serialization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "codec-beam" = callPackage
@@ -58232,7 +57711,6 @@ self: {
        description = "A library for manipulating RPM files";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "codecov-haskell" = callPackage
@@ -58277,7 +57755,6 @@ self: {
        description = "Tool that automatically runs arbitrary commands when files change on disk";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "codepad" = callPackage
@@ -58419,8 +57896,6 @@ self: {
        benchmarkHaskellDepends = [ base gauge ];
        description = "Utility functions for Coercible types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "coercion-extras" = callPackage
@@ -58573,7 +58048,6 @@ self: {
        description = "Connector library for the coinbase exchange";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "coinbase-pro" = callPackage
@@ -58652,7 +58126,6 @@ self: {
        description = "Colada implements incremental word class class induction using online LDA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "colchis" = callPackage
@@ -58740,7 +58213,6 @@ self: {
        description = "Collapse the duplication output into clones and return their frequencies";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "collapse-util" = callPackage
@@ -58758,6 +58230,17 @@ self: {
        broken = true;
      }) {};
 
+  "collect-errors" = callPackage
+    ({ mkDerivation, base, containers, deepseq, QuickCheck }:
+     mkDerivation {
+       pname = "collect-errors";
+       version = "0.1.5.0";
+       sha256 = "1hljcnmwpk47rivlds9901129hgkm7j8h3yhz2j1j2pga5w43ck9";
+       libraryHaskellDepends = [ base containers deepseq QuickCheck ];
+       description = "Error monad with a Float instance";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "collection-json" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hspec, hspec-discover
      , network-arbitrary, network-uri, network-uri-json, QuickCheck
@@ -58779,7 +58262,6 @@ self: {
        description = "Collection+JSON—Hypermedia Type Tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "collections" = callPackage
@@ -58826,7 +58308,6 @@ self: {
        description = "Useful standard collections types and related functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "colock" = callPackage
@@ -58886,7 +58367,6 @@ self: {
        description = "Count colors in images";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "colorful-monoids" = callPackage
@@ -58954,7 +58434,6 @@ self: {
        description = "Http Client addon for Colorless";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "colorless-scotty" = callPackage
@@ -58969,7 +58448,6 @@ self: {
        description = "Scotty server add-on for Colorless";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "colors" = callPackage
@@ -59029,7 +58507,6 @@ self: {
        description = "Instances of the manifold-classes for colour types";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "colourista" = callPackage
@@ -59085,7 +58562,6 @@ self: {
        description = "Enhanced serialization using seeking";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "columnar" = callPackage
@@ -59103,8 +58579,6 @@ self: {
        ];
        description = "A CSV toolkit based on cassava and enum-text";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "com" = callPackage
@@ -59201,28 +58675,24 @@ self: {
      }) {};
 
   "combinat" = callPackage
-    ({ mkDerivation, array, base, containers, QuickCheck, random, tasty
-     , tasty-hunit, tasty-quickcheck, test-framework
-     , test-framework-quickcheck2, transformers
+    ({ mkDerivation, array, base, compact-word-vectors, containers
+     , QuickCheck, random, tasty, tasty-hunit, tasty-quickcheck
+     , test-framework, test-framework-quickcheck2, transformers
      }:
      mkDerivation {
        pname = "combinat";
-       version = "0.2.9.0";
-       sha256 = "1y617qyhqh2k6d51j94c0xnj54i7b86d87n0j12idxlkaiv4j5sw";
-       revision = "1";
-       editedCabalFile = "0yjvvxfmyzjhh0q050cc2wkhaahzixsw7hf27n8dky3n4cxd5bix";
+       version = "0.2.10.0";
+       sha256 = "125yf5ycya722k85iph3dqv63bpj1a862c0ahs2y0snyd2qd6h35";
        libraryHaskellDepends = [
-         array base containers random transformers
+         array base compact-word-vectors containers random transformers
        ];
        testHaskellDepends = [
-         array base containers QuickCheck random tasty tasty-hunit
-         tasty-quickcheck test-framework test-framework-quickcheck2
-         transformers
+         array base compact-word-vectors containers QuickCheck random tasty
+         tasty-hunit tasty-quickcheck test-framework
+         test-framework-quickcheck2 transformers
        ];
        description = "Generate and manipulate various combinatorial objects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "combinat-compat" = callPackage
@@ -59404,7 +58874,6 @@ self: {
        description = "A format for describing comics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "comma" = callPackage
@@ -59539,24 +59008,49 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "commonmark_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, parsec, tasty
+     , tasty-bench, tasty-hunit, tasty-quickcheck, text, transformers
+     , unicode-transforms
+     }:
+     mkDerivation {
+       pname = "commonmark";
+       version = "0.2";
+       sha256 = "083xrmyxsgn6ivrxqgmjbqvv4k64n7a330pbf1n7xbsjqh78cg28";
+       libraryHaskellDepends = [
+         base bytestring containers parsec text transformers
+         unicode-transforms
+       ];
+       testHaskellDepends = [
+         base parsec tasty tasty-hunit tasty-quickcheck text
+         unicode-transforms
+       ];
+       benchmarkHaskellDepends = [ base tasty-bench text ];
+       description = "Pure Haskell commonmark parser";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "commonmark-cli" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, commonmark
      , commonmark-extensions, commonmark-pandoc, containers, mtl
-     , pandoc-types, pretty-simple, text
+     , pandoc-types, text
      }:
      mkDerivation {
        pname = "commonmark-cli";
-       version = "0.1.0.1";
-       sha256 = "1k7s7wzphllfydki1ifzab6b4x865vwxg50xldqdar141425s84l";
+       version = "0.2";
+       sha256 = "1g3i01acaqfqiqkl5xyxvzrh0alfx3il4r4rcjs4ii1nwaljdg6j";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson ansi-terminal base bytestring commonmark
          commonmark-extensions commonmark-pandoc containers mtl pandoc-types
-         pretty-simple text
+         text
        ];
        description = "Command-line commonmark converter and highlighter";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "commonmark-extensions" = callPackage
@@ -59583,6 +59077,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "commonmark-extensions_0_2_1_2" = callPackage
+    ({ mkDerivation, base, commonmark, containers, emojis, filepath
+     , network-uri, parsec, tasty, tasty-bench, tasty-hunit, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "commonmark-extensions";
+       version = "0.2.1.2";
+       sha256 = "1ky0j7086a8mqpg26j2nkrc5wfwiw5cd3h3jqncpy59vmj1prkx4";
+       libraryHaskellDepends = [
+         base commonmark containers emojis filepath network-uri parsec text
+         transformers
+       ];
+       testHaskellDepends = [
+         base commonmark parsec tasty tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [ base commonmark tasty-bench text ];
+       description = "Pure Haskell commonmark parser";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "commonmark-pandoc" = callPackage
     ({ mkDerivation, base, commonmark, commonmark-extensions
      , containers, pandoc-types, text
@@ -59598,6 +59114,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "commonmark-pandoc_0_2_1" = callPackage
+    ({ mkDerivation, base, commonmark, commonmark-extensions
+     , pandoc-types, text
+     }:
+     mkDerivation {
+       pname = "commonmark-pandoc";
+       version = "0.2.1";
+       sha256 = "0i5qavci8j63d15i2c6cbm0b53kcjh7s4vxadfgf4vkp2sy1ybvw";
+       libraryHaskellDepends = [
+         base commonmark commonmark-extensions pandoc-types text
+       ];
+       description = "Bridge between commonmark and pandoc AST";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "commsec" = callPackage
     ({ mkDerivation, base, bytestring, cipher-aes128, crypto-api
      , network
@@ -59632,7 +59164,6 @@ self: {
        description = "Key agreement for commsec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "commutative" = callPackage
@@ -59780,7 +59311,6 @@ self: {
        description = "Mutable arrays living on the compact heap";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "compact-mutable-vector" = callPackage
@@ -59866,16 +59396,14 @@ self: {
      }:
      mkDerivation {
        pname = "compact-word-vectors";
-       version = "0.2.0.1";
-       sha256 = "0ix8l6vvnf62vp6716gmypwqsrs6x5pzcx5yfj24bn4gk0xak3lm";
+       version = "0.2.0.2";
+       sha256 = "1yjlymp2b8is72xvdb29rf7hc1n96zmda1j3z5alzbp4py00jww8";
        libraryHaskellDepends = [ base primitive ];
        testHaskellDepends = [
          base primitive QuickCheck random tasty tasty-hunit tasty-quickcheck
        ];
        description = "Small vectors of small integers stored very compactly";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "compactable" = callPackage
@@ -59939,8 +59467,6 @@ self: {
        ];
        description = "Compositional Data Types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "compdata-automata" = callPackage
@@ -59956,8 +59482,6 @@ self: {
        ];
        description = "Tree automata on Compositional Data Types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "compdata-dags" = callPackage
@@ -60069,8 +59593,6 @@ self: {
        ];
        description = "Client for the Compendium schema server";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "compensated" = callPackage
@@ -60174,7 +59696,6 @@ self: {
        description = "Empirical algorithmic complexity";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "componentm" = callPackage
@@ -60465,8 +59986,6 @@ self: {
        ];
        description = "Swagger for Vinyl records";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "composite-tuple" = callPackage
@@ -60705,7 +60224,6 @@ self: {
        description = "Well-kinded computational algebra library, currently supporting Groebner basis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "computational-geometry" = callPackage
@@ -60815,7 +60333,6 @@ self: {
        description = "Morphological disambiguation based on constrained CRFs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "concraft-hr" = callPackage
@@ -60838,7 +60355,6 @@ self: {
        description = "Part-of-speech tagger for Croatian";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "concraft-pl" = callPackage
@@ -60868,7 +60384,6 @@ self: {
        description = "Morphological tagger for Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "concrete-haskell" = callPackage
@@ -60913,7 +60428,6 @@ self: {
        description = "Library for the Concrete data format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "concrete-haskell-autogen" = callPackage
@@ -60931,7 +60445,6 @@ self: {
        description = "Automatically generated Thrift definitions for the Concrete data format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "concrete-relaxng-parser" = callPackage
@@ -61027,8 +60540,6 @@ self: {
        ];
        description = "Benchmarks to compare concurrency APIs";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "concurrent-barrier" = callPackage
@@ -61160,8 +60671,6 @@ self: {
        benchmarkHaskellDepends = [ base machines time ];
        description = "Concurrent networked stream transducers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "concurrent-output" = callPackage
@@ -61320,7 +60829,6 @@ self: {
        description = "Information retrieval library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "condorcet" = callPackage
@@ -61375,7 +60883,6 @@ self: {
        description = "a library with examples of using Conductive with hsc3";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conductive-song" = callPackage
@@ -61388,7 +60895,6 @@ self: {
        description = "a library of functions which are useful for composing music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conduino" = callPackage
@@ -61840,7 +61346,6 @@ self: {
        description = "Zip archive interface for the Conduit Virtual File System";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conduit-zstd" = callPackage
@@ -61929,7 +61434,6 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conferer" = callPackage
@@ -61993,8 +61497,6 @@ self: {
        ];
        description = "Configuration for reading dhall files";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conferer-hedis" = callPackage
@@ -62040,7 +61542,6 @@ self: {
        description = "Configuration for reading dhall files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conferer-provider-json" = callPackage
@@ -62082,7 +61583,6 @@ self: {
        description = "Configuration for reading yaml files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conferer-snap" = callPackage
@@ -62126,7 +61626,6 @@ self: {
        description = "Configuration for reading dhall files";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conferer-source-json" = callPackage
@@ -62167,7 +61666,6 @@ self: {
        description = "Configuration for reading yaml files";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "conferer-warp" = callPackage
@@ -62236,7 +61734,6 @@ self: {
        description = "A .conf file formatter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "confide" = callPackage
@@ -62344,7 +61841,6 @@ self: {
        description = "A small program for swapping out dot files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "config-value" = callPackage
@@ -62406,7 +61902,6 @@ self: {
        description = "parser for config files, shell variables, command line args";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "configuration" = callPackage
@@ -62516,7 +62011,6 @@ self: {
        description = "The next generation of configuration management";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "configurator-pg" = callPackage
@@ -62695,20 +62189,20 @@ self: {
      }) {};
 
   "connections" = callPackage
-    ({ mkDerivation, base, containers, doctest, hedgehog }:
+    ({ mkDerivation, base, containers, doctest, extended-reals
+     , hedgehog, time
+     }:
      mkDerivation {
        pname = "connections";
-       version = "0.3.0";
-       sha256 = "0ias6f5nzd83i2x6823ypzp598d8rgp74wmhd4gk7slcyszgpj6l";
+       version = "0.3.1";
+       sha256 = "0candwv3sv6qk76a4dn3m64957462da1pyvixl8jazf0gvq1pp23";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base containers ];
+       libraryHaskellDepends = [ base containers extended-reals time ];
        executableHaskellDepends = [ base doctest ];
-       testHaskellDepends = [ base hedgehog ];
+       testHaskellDepends = [ base hedgehog time ];
        description = "Orders, Galois connections, and lattices";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "consistent" = callPackage
@@ -62968,7 +62462,6 @@ self: {
        description = "Some conviencience type functions for manipulating constraints";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "constraint-reflection" = callPackage
@@ -63055,6 +62548,8 @@ self: {
        pname = "constraints-extras";
        version = "0.3.1.0";
        sha256 = "0hr1xaxypkmd2a856ha8v3jhkh4hr6g8kar0lr4vj3jsj2h6cmks";
+       revision = "1";
+       editedCabalFile = "1hcaj1yk4f64v388zq2pd34ljkm68zds3vd8a3yhqr0xgr1wy3y7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base constraints template-haskell ];
@@ -63114,7 +62609,6 @@ self: {
        description = "Exact computation with constructible real numbers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "constructive-algebra" = callPackage
@@ -63164,10 +62658,8 @@ self: {
      }:
      mkDerivation {
        pname = "consumers";
-       version = "2.2.0.2";
-       sha256 = "0nml5hn6n95ngy1qvj6w4rkwa8r6qax0nc2vgimk68bawv4z97qd";
-       revision = "2";
-       editedCabalFile = "0fa67waf0af62kpljdksm00lvh29vm1rddfpjvy5c7lcy2a9ll97";
+       version = "2.2.0.3";
+       sha256 = "0jvh3mf7jmrv3zjplc5cjmpyj7h15573l6dlyzn3c2jhj61zjwkk";
        libraryHaskellDepends = [
          base containers exceptions extra hpqtypes lifted-base
          lifted-threads log-base monad-control monad-time mtl stm time
@@ -63181,7 +62673,6 @@ self: {
        description = "Concurrent PostgreSQL data consumers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "container" = callPackage
@@ -63196,7 +62687,6 @@ self: {
        description = "Containers abstraction and utilities";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "container-builder" = callPackage
@@ -63371,19 +62861,20 @@ self: {
      }) {};
 
   "context-free-grammar" = callPackage
-    ({ mkDerivation, array, base, containers, control-monad-omega
-     , dlist, HUnit, mtl, pretty, QuickCheck, quickcheck-properties
-     , template-haskell, test-framework, test-framework-hunit
-     , test-framework-quickcheck2
+    ({ mkDerivation, alex, array, base, containers, control-monad-omega
+     , dlist, happy, HUnit, mtl, pretty, QuickCheck
+     , quickcheck-properties, semigroups, template-haskell
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "context-free-grammar";
-       version = "0.1.0";
-       sha256 = "11s6v8h39iq0wy4p4y8cwpr8fjhphql07s38rgbm8qsq1hj9f3a1";
+       version = "0.1.1";
+       sha256 = "15xsm8v157jpz2v98lry7sr77nwk0785mmj3zdb21ajqnkccyb14";
        libraryHaskellDepends = [
          array base containers control-monad-omega dlist mtl pretty
-         template-haskell
+         semigroups template-haskell
        ];
+       libraryToolDepends = [ alex happy ];
        testHaskellDepends = [
          base containers HUnit pretty QuickCheck quickcheck-properties
          template-haskell test-framework test-framework-hunit
@@ -63480,8 +62971,6 @@ self: {
        ];
        description = "Unified interface for primitive arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "contiguous-checked" = callPackage
@@ -63506,8 +62995,6 @@ self: {
        libraryHaskellDepends = [ base contiguous primitive semirings ];
        description = "dft of contiguous memory structures";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "continue" = callPackage
@@ -63573,7 +63060,6 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "continuum-client" = callPackage
@@ -63589,7 +63075,6 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "contra-tracer" = callPackage
@@ -63661,7 +63146,6 @@ self: {
        description = "Class of monad transformers which control operations can be lifted thru";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "control-bool" = callPackage
@@ -63743,7 +63227,6 @@ self: {
        description = "Monad transformer for attempt. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "control-monad-exception" = callPackage
@@ -63776,7 +63259,6 @@ self: {
        description = "Monads-fd instances for the EMT exceptions monad transformer";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "control-monad-exception-monadstf" = callPackage
@@ -64005,7 +63487,6 @@ self: {
        description = "Injective explicit total and partial conversions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "convert" = callPackage
@@ -64024,7 +63505,6 @@ self: {
        description = "Safe and unsafe data conversion utilities with strong type-level operation. checking.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "convert-annotation" = callPackage
@@ -64084,7 +63564,6 @@ self: {
        description = "convertible instances for ascii";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "convertible-text" = callPackage
@@ -64106,7 +63585,6 @@ self: {
        description = "Typeclasses and instances for converting between types (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cookbook" = callPackage
@@ -64151,8 +63629,6 @@ self: {
        ];
        description = "web cookies";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "coordinate" = callPackage
@@ -64166,7 +63642,6 @@ self: {
        description = "A representation of latitude and longitude";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "copilot" = callPackage
@@ -64176,8 +63651,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot";
-       version = "3.2.1";
-       sha256 = "1gxa2sc6n7hswkzqrr9dzzgwynw7sdvccyigfhm7gcy1l79gl3iq";
+       version = "3.3";
+       sha256 = "166nin0861i2ak06gdhj6sv6zv7cc60wmqgv4mly9hjf0qp3w6j1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -64187,7 +63662,6 @@ self: {
        description = "A stream DSL for writing embedded C programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "copilot-c99" = callPackage
@@ -64198,8 +63672,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-c99";
-       version = "3.2.1";
-       sha256 = "0wi4bd0hmh05z6m7mjl69z1arhnw08v75hnwzxl6dibkrymmq286";
+       version = "3.3";
+       sha256 = "09qjfhf0dkccbi4kycwqavv7bxdpfj2j50vkljmzrxh59xq00jnz";
        libraryHaskellDepends = [
          base containers copilot-core directory filepath language-c99
          language-c99-simple language-c99-util mtl pretty
@@ -64211,7 +63685,6 @@ self: {
        description = "A compiler for Copilot targeting C99";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "copilot-cbmc" = callPackage
@@ -64229,15 +63702,14 @@ self: {
        description = "Copilot interface to a C model-checker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "copilot-core" = callPackage
     ({ mkDerivation, base, dlist, mtl, pretty }:
      mkDerivation {
        pname = "copilot-core";
-       version = "3.2.1";
-       sha256 = "1h9wqv75s49vvqagcdkxx8n5vwn0fsh271v2jm60msssdd7ljwp6";
+       version = "3.3";
+       sha256 = "19k206hsqd3lw2k40cjpjhnwfjsfraagw622bxn97rk4195jqhy6";
        libraryHaskellDepends = [ base dlist mtl pretty ];
        description = "An intermediate representation for Copilot";
        license = lib.licenses.bsd3;
@@ -64249,8 +63721,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-language";
-       version = "3.2.1";
-       sha256 = "03r50k3i24rzjkc1maklq7351flzjv3cc2i6d1shib3dklzjsw8l";
+       version = "3.3";
+       sha256 = "1x39jyn82j9mydsbi8n24a2nx8j00gcxw2rsxqagjpwqx10igyr2";
        libraryHaskellDepends = [
          array base containers copilot-core copilot-theorem data-reify
          ghc-prim mtl
@@ -64258,7 +63730,6 @@ self: {
        description = "A Haskell-embedded DSL for monitoring hard real-time distributed systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "copilot-libraries" = callPackage
@@ -64267,15 +63738,14 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-libraries";
-       version = "3.2.1";
-       sha256 = "1grcpc9lmqvsi3cb9j45w6hvqdljv7z0yylxf3i2i5y931gj6gpv";
+       version = "3.3";
+       sha256 = "0f8g67j26g1k5xph6zg5crypj0ys8mf0i5pazn04sy02lslsdmd9";
        libraryHaskellDepends = [
          array base containers copilot-language data-reify mtl parsec
        ];
        description = "Libraries for the Copilot language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "copilot-sbv" = callPackage
@@ -64297,23 +63767,22 @@ self: {
 
   "copilot-theorem" = callPackage
     ({ mkDerivation, ansi-terminal, base, bimap, bv-sized, containers
-     , copilot-core, data-default, directory, filepath, mtl, panic
-     , parameterized-utils, parsec, pretty, process, random
+     , copilot-core, data-default, directory, filepath, libBF, mtl
+     , panic, parameterized-utils, parsec, pretty, process, random
      , transformers, what4, xml
      }:
      mkDerivation {
        pname = "copilot-theorem";
-       version = "3.2.1";
-       sha256 = "1vns5bavlm95hc57qwwjpzaq0xj5pv3dk2n1ac0rbjdbpsa3dl4l";
+       version = "3.3";
+       sha256 = "1js4j9alfnlxi6zsvcdj8zf2r04lm9rp22r6zq6qkhams6pmmxly";
        libraryHaskellDepends = [
          ansi-terminal base bimap bv-sized containers copilot-core
-         data-default directory filepath mtl panic parameterized-utils
+         data-default directory filepath libBF mtl panic parameterized-utils
          parsec pretty process random transformers what4 xml
        ];
        description = "k-induction for Copilot";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "copr" = callPackage
@@ -64438,8 +63907,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.2.6.0";
-       sha256 = "1qyl7kcdqxfl2inx66n7pa1z2pqjxrz1bpg3jjknjj0kpw9rlhf3";
+       version = "0.2.7.1";
+       sha256 = "1bm75bdmcrjizmrspl52qqs4vq9hlyh7fjv5y5lfpkmqrs45045b";
        libraryHaskellDepends = [
          async base bytestring chronologique core-data core-text directory
          exceptions filepath fsnotify hashable hourglass mtl prettyprinter
@@ -64530,30 +63999,27 @@ self: {
        librarySystemDepends = [ rocksdb ];
        description = "Launches CoreNLP and parses the JSON output";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) rocksdb;};
 
   "cornea" = callPackage
-    ({ mkDerivation, base-noprelude, either, HTF, lens, lifted-base
-     , monad-control, mtl, relude, template-haskell, th-abstraction
-     , transformers
+    ({ mkDerivation, base, either, hedgehog, lens, lifted-base
+     , monad-control, mtl, relude, tasty, tasty-hedgehog
+     , template-haskell, th-abstraction, transformers
      }:
      mkDerivation {
        pname = "cornea";
-       version = "0.3.1.2";
-       sha256 = "04iika5r5w3347w87b8whwrxym5nzvgl5pr76fpxw78fwvi1nvzk";
+       version = "0.4.0.0";
+       sha256 = "0hm17g350gnklvgi5nsx03lgbx2zs9h4q11y2gi9zjnm6gv6gjrn";
        libraryHaskellDepends = [
-         base-noprelude either lens lifted-base monad-control mtl relude
+         base either lens lifted-base monad-control mtl relude
          template-haskell th-abstraction transformers
        ];
        testHaskellDepends = [
-         base-noprelude either HTF lens lifted-base monad-control mtl relude
-         template-haskell th-abstraction transformers
+         base either hedgehog lens lifted-base monad-control mtl relude
+         tasty tasty-hedgehog template-haskell th-abstraction transformers
        ];
        description = "classy optical monadic state";
-       license = "unknown";
-       hydraPlatforms = lib.platforms.none;
+       license = "BSD-2-Clause-Patent";
      }) {};
 
   "coroutine-enumerator" = callPackage
@@ -64566,7 +64032,6 @@ self: {
        description = "Bridge between the monad-coroutine and enumerator packages";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "coroutine-iteratee" = callPackage
@@ -64579,7 +64044,6 @@ self: {
        description = "Bridge between the monad-coroutine and iteratee packages";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "coroutine-object" = callPackage
@@ -64640,7 +64104,7 @@ self: {
        description = "A modern, lightweight, complete client for CouchDB";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-     }) {inherit (pkgs) couchdb;};
+     }) {couchdb = null;};
 
   "couchdb-conduit" = callPackage
     ({ mkDerivation, aeson, attoparsec, attoparsec-conduit, base
@@ -64699,7 +64163,6 @@ self: {
        description = "Couch DB client library using http-enumerator and aeson";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "count" = callPackage
@@ -64743,8 +64206,6 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck text ];
        description = "Countable Text Inflections";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "counter" = callPackage
@@ -64794,8 +64255,6 @@ self: {
        testHaskellDepends = [ aeson base HTF HUnit ];
        description = "ISO 3166 country codes and i18n names";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "courier" = callPackage
@@ -64939,8 +64398,6 @@ self: {
        testHaskellDepends = [ base hspec hspec-megaparsec megaparsec ];
        description = "Build tool for C";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cplex-hs" = callPackage
@@ -65042,7 +64499,6 @@ self: {
        description = "Run random effect using cprng-aes, a crypto pseudo number generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cps-except" = callPackage
@@ -65201,7 +64657,6 @@ self: {
        description = "Tinylog integration for cql-io";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cqrs" = callPackage
@@ -65254,7 +64709,6 @@ self: {
        description = "Example for cqrs package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cqrs-memory" = callPackage
@@ -65272,7 +64726,6 @@ self: {
        description = "Memory backend for the cqrs package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cqrs-postgresql" = callPackage
@@ -65297,7 +64750,6 @@ self: {
        description = "PostgreSQL backend for the cqrs package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cqrs-sqlite3" = callPackage
@@ -65319,7 +64771,6 @@ self: {
        description = "SQLite3 backend for the cqrs package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cqrs-test" = callPackage
@@ -65337,7 +64788,6 @@ self: {
        description = "Command-Query Responsibility Segregation Test Support";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cqrs-testkit" = callPackage
@@ -65356,7 +64806,6 @@ self: {
        description = "Command-Query Responsibility Segregation Test Support";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cqrs-types" = callPackage
@@ -65405,7 +64854,7 @@ self: {
        broken = true;
      }) {crack = null;};
 
-  "crackNum" = callPackage
+  "crackNum_2_4" = callPackage
     ({ mkDerivation, array, base, FloatingHex }:
      mkDerivation {
        pname = "crackNum";
@@ -65417,9 +64866,13 @@ self: {
        executableHaskellDepends = [ array base FloatingHex ];
        description = "Crack various integer, floating-point data formats";
        license = lib.licenses.bsd3;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "crackNum_3_1" = callPackage
+  "crackNum" = callPackage
     ({ mkDerivation, base, directory, filepath, libBF, process, sbv
      , tasty, tasty-golden
      }:
@@ -65434,7 +64887,9 @@ self: {
        ];
        description = "Crack various integer and floating-point data formats";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
      }) {};
 
   "craft" = callPackage
@@ -65467,7 +64922,6 @@ self: {
        description = "A UNIX configuration management library in Haskell";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "craftwerk" = callPackage
@@ -65495,7 +64949,6 @@ self: {
        description = "Cairo backend for Craftwerk";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "craftwerk-gtk" = callPackage
@@ -65514,7 +64967,6 @@ self: {
        description = "Gtk UI for Craftwerk";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crawlchain" = callPackage
@@ -65570,7 +65022,6 @@ self: {
        description = "HTTP Racing Library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crc" = callPackage
@@ -65647,8 +65098,6 @@ self: {
        ];
        description = "Conflict-free replicated data types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crdt-event-fold" = callPackage
@@ -65781,7 +65230,6 @@ self: {
        description = "First-order, linear-chain conditional random fields";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crf-chain1-constrained" = callPackage
@@ -65802,7 +65250,6 @@ self: {
        description = "First-order, constrained, linear-chain conditional random fields";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crf-chain2-generic" = callPackage
@@ -65821,7 +65268,6 @@ self: {
        description = "Second-order, generic, constrained, linear conditional random fields";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crf-chain2-tiers" = callPackage
@@ -65841,7 +65287,6 @@ self: {
        description = "Second-order, tiered, constrained, linear conditional random fields";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "critbit" = callPackage
@@ -65929,8 +65374,6 @@ self: {
        ];
        description = "A simple tool for comparing in Criterion benchmark results";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "criterion-compare" = callPackage
@@ -66035,7 +65478,6 @@ self: {
        description = "CRIU RPC client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "criu-rpc-types" = callPackage
@@ -66080,7 +65522,6 @@ self: {
        description = "An implementation of Douglas Crockford's base32 encoding";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crocodile" = callPackage
@@ -66145,7 +65586,6 @@ self: {
        description = "Cron datatypes and Attoparsec parser";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cronus" = callPackage
@@ -66218,8 +65658,6 @@ self: {
        ];
        description = "Pure Haskell implelementation for GNU SHA512 crypt algorithm";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crypto-api" = callPackage
@@ -66349,7 +65787,6 @@ self: {
        description = "Conduit interface for cryptographic operations (from crypto-api)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "crypto-enigma" = callPackage
@@ -66633,7 +66070,6 @@ self: {
        description = "Symmetrical block and stream ciphers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cryptocompare" = callPackage
@@ -66837,7 +66273,6 @@ self: {
        description = "Reversable and secure encoding of object ids as a bytestring";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cryptoids-class" = callPackage
@@ -66852,7 +66287,6 @@ self: {
        description = "Typeclass-based interface to cryptoids";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cryptoids-types" = callPackage
@@ -66910,7 +66344,6 @@ self: {
        description = "Cryptol: The Language of Cryptography";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cryptonite" = callPackage
@@ -66922,6 +66355,8 @@ self: {
        pname = "cryptonite";
        version = "0.28";
        sha256 = "1nx568qv25dxhbii7lzf1hbv0dyz95z715mmxjnnrkgpwdm8ibbl";
+       revision = "1";
+       editedCabalFile = "0hqbpdsj1b4fgisr11a9gmin5r7bqr3f83wc2xxc18dr01xhrw7d";
        libraryHaskellDepends = [
          base basement bytestring deepseq ghc-prim integer-gmp memory
        ];
@@ -66935,6 +66370,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "cryptonite_0_29" = callPackage
+    ({ mkDerivation, base, basement, bytestring, deepseq, gauge
+     , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit
+     , tasty-kat, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "cryptonite";
+       version = "0.29";
+       sha256 = "13xhp3hshb8x06bw37kp16c9jpjmgfn06nkj9drz745fv8f04fnq";
+       libraryHaskellDepends = [
+         base basement bytestring deepseq ghc-prim integer-gmp memory
+       ];
+       testHaskellDepends = [
+         base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring deepseq gauge memory random
+       ];
+       description = "Cryptography Primitives sink";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cryptonite-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-combinators
      , conduit-extra, cryptonite, exceptions, memory, resourcet, tasty
@@ -67032,7 +66490,6 @@ self: {
        description = "Control Crystalfontz LCD displays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "csa" = callPackage
@@ -67094,7 +66551,6 @@ self: {
        description = "Analytical CSG (Constructive Solid Geometry) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "csound-catalog" = callPackage
@@ -67103,8 +66559,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-catalog";
-       version = "0.7.4";
-       sha256 = "1ca70yk13b239383q9d8fwc4qd6jm22dqinfhasd88b4iv9p46h8";
+       version = "0.7.5";
+       sha256 = "1ly2s8lxy4wdcvkvsj9nw71r5dbsxpb0z8kzvywj9a5clqid109y";
        libraryHaskellDepends = [
          base csound-expression csound-sampler sharc-timbre transformers
        ];
@@ -67131,8 +66587,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression";
-       version = "5.3.4";
-       sha256 = "0v5mv2yhw114y7hixh3qjy88sfrry7xfyzkwwk1dpwnq8yycp0ir";
+       version = "5.4.1";
+       sha256 = "0dyafw91ycsr71sxf7z3fbvfbp9vh8l260l9ygfxlrg37971l4pj";
        libraryHaskellDepends = [
          base Boolean colour containers csound-expression-dynamic
          csound-expression-opcodes csound-expression-typed data-default
@@ -67149,8 +66605,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression-dynamic";
-       version = "0.3.6";
-       sha256 = "1s4gyn4rpkpfpb0glbb39hnzkw9vr4his3s4a4azx894cymyhzg0";
+       version = "0.3.7";
+       sha256 = "1qx9qig18y89k4sxpn333hvqz74c6f56nbvaf8dfbawx5asar0jm";
        libraryHaskellDepends = [
          array base Boolean containers data-default data-fix data-fix-cse
          deriving-compat hashable transformers wl-pprint
@@ -67165,8 +66621,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression-opcodes";
-       version = "0.0.5.0";
-       sha256 = "1qif8nx3652883zf84w4d0l2lzlbrk9n25rn4i5mxcmlv9px06ha";
+       version = "0.0.5.1";
+       sha256 = "0h1a9yklsqbykhdinmk8znm7kfg0jd1k394cx2lirpdxn136kbcm";
        libraryHaskellDepends = [
          base csound-expression-dynamic csound-expression-typed transformers
        ];
@@ -67182,8 +66638,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression-typed";
-       version = "0.2.4";
-       sha256 = "1hqmwlgx0dcci7z76w4i5xcq10c4jigzbm7fvf0xxwffmhf6j752";
+       version = "0.2.5";
+       sha256 = "1bid3wxg879l69w8c1vcana0xxrggxv30dw9bqi8zww2w23id54q";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base Boolean colour containers csound-expression-dynamic
@@ -67198,8 +66654,8 @@ self: {
     ({ mkDerivation, base, csound-expression, transformers }:
      mkDerivation {
        pname = "csound-sampler";
-       version = "0.0.10.0";
-       sha256 = "0mi7w39adkn5l1h05arfap3c0ddb8j65wv96i3jrswpc3ljf3b2y";
+       version = "0.0.10.1";
+       sha256 = "1c2g83a0n4y1fvq3amj9m2hygg9rbpl5x8zsicb52qjm7vjing2i";
        libraryHaskellDepends = [ base csound-expression transformers ];
        description = "A musical sampler based on Csound";
        license = lib.licenses.bsd3;
@@ -67234,7 +66690,6 @@ self: {
        description = "A command line type checker for CSPM files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cspretty" = callPackage
@@ -67269,8 +66724,8 @@ self: {
      }:
      mkDerivation {
        pname = "css-easings";
-       version = "0.2.0.0";
-       sha256 = "0i969cp4j154ddq7x2821p53qh8dnsr7f74rsdi4y9rbbls1fnpv";
+       version = "0.2.1.0";
+       sha256 = "0mn3h7fqp4bs7rqjzc05k29man8i77dg1avcajdyysf84azklyrw";
        libraryHaskellDepends = [
          aeson base blaze-markup data-default QuickCheck scientific
          shakespeare text
@@ -67282,22 +66737,23 @@ self: {
      }) {};
 
   "css-selectors" = callPackage
-    ({ mkDerivation, aeson, alex, array, base, blaze-markup
-     , data-default, Decimal, happy, QuickCheck, shakespeare
-     , template-haskell, test-framework, test-framework-quickcheck2
-     , text
+    ({ mkDerivation, aeson, alex, array, base, binary, blaze-markup
+     , bytestring, data-default, Decimal, happy, hashable, QuickCheck
+     , shakespeare, template-haskell, test-framework
+     , test-framework-quickcheck2, text, zlib
      }:
      mkDerivation {
        pname = "css-selectors";
-       version = "0.2.1.0";
-       sha256 = "1kcxbvp96imhkdrd7w9g2z4d586lmdcpnbgl8g5w04ri85qsq162";
+       version = "0.4.0.3";
+       sha256 = "1jz7s5lpfgs6axzkmwp2is1mhsn8jsb52ahxv8my07lx0yvy1g7v";
        libraryHaskellDepends = [
-         aeson array base blaze-markup data-default Decimal QuickCheck
-         shakespeare template-haskell text
+         aeson array base binary blaze-markup bytestring data-default
+         Decimal hashable QuickCheck shakespeare template-haskell text zlib
        ];
        libraryToolDepends = [ alex happy ];
        testHaskellDepends = [
-         base QuickCheck test-framework test-framework-quickcheck2 text
+         base binary hashable QuickCheck test-framework
+         test-framework-quickcheck2 text
        ];
        description = "Parsing, rendering and manipulating css selectors in Haskell";
        license = lib.licenses.bsd3;
@@ -67391,7 +66847,6 @@ self: {
        description = "A flexible, fast, enumerator-based CSV parser library for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "csv-nptools" = callPackage
@@ -67487,7 +66942,6 @@ self: {
        description = "A programming language for text modification";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ctrie" = callPackage
@@ -67529,7 +66983,6 @@ self: {
        description = "Cubic DSL for 3D printing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cubical" = callPackage
@@ -67883,8 +67336,6 @@ self: {
        testHaskellDepends = [ aeson base bson hspec QuickCheck ];
        description = "ISO-4217 Currency Codes";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "currency-convert" = callPackage
@@ -68055,7 +67506,6 @@ self: {
        description = "Terminal tool for viewing tabular data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cursor" = callPackage
@@ -68124,7 +67574,6 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cursor-gen" = callPackage
@@ -68270,6 +67719,9 @@ self: {
        testToolDepends = [ c2hs ];
        description = "Cuts out uninteresting parts of videos by detecting silences";
        license = lib.licenses.mit;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) pocketsphinx; inherit (pkgs) sphinxbase;};
 
   "cutter" = callPackage
@@ -68307,7 +67759,6 @@ self: {
        description = "Functional Combinators for Computer Vision";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "cve" = callPackage
@@ -68357,7 +67808,6 @@ self: {
        description = "Haskell bindings for the neo4j \"cypher\" query language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "czipwith" = callPackage
@@ -68601,7 +68051,6 @@ self: {
        description = "Prints a series of dates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "darcs" = callPackage
@@ -68620,8 +68069,8 @@ self: {
      }:
      mkDerivation {
        pname = "darcs";
-       version = "2.16.3";
-       sha256 = "1bf11ndz6k7fx9bb31l4l6dqfkrld3gxsrrqggcg7d57wa3yw9c9";
+       version = "2.16.4";
+       sha256 = "07dygwh6p4fsrlgxmq6r7yvxmf4n2y04izzd30jzqgs0pi9645p4";
        configureFlags = [ "-fforce-char8-encoding" "-flibrary" ];
        isLibrary = true;
        isExecutable = true;
@@ -68674,7 +68123,6 @@ self: {
        description = "Comparative benchmark suite for darcs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "darcs-beta" = callPackage
@@ -68707,7 +68155,6 @@ self: {
        description = "a distributed, interactive, smart revision control system";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) curl;};
 
   "darcs-buildpackage" = callPackage
@@ -68772,7 +68219,6 @@ self: {
        description = "Import/export git fast-import streams to/from darcs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "darcs-graph" = callPackage
@@ -68872,7 +68318,6 @@ self: {
        description = "Darcs repository UI and hosting/collaboration app (hub.darcs.net branch).";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "darcswatch" = callPackage
@@ -68896,7 +68341,6 @@ self: {
        description = "Track application of Darcs patches";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "darkplaces-demo" = callPackage
@@ -68925,7 +68369,6 @@ self: {
        description = "Utility and parser for DarkPlaces demo files";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "darkplaces-rcon" = callPackage
@@ -68974,7 +68417,6 @@ self: {
        description = "Darplaces rcon utility";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "darkplaces-text" = callPackage
@@ -69015,7 +68457,6 @@ self: {
        description = "Convert package Haddock to Dash docsets (IDE docs)";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-accessor" = callPackage
@@ -69053,7 +68494,6 @@ self: {
        description = "Use Accessor to access state in monads-fd State monad class";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-accessor-monads-tf" = callPackage
@@ -69184,7 +68624,6 @@ self: {
        description = "A database library with a focus on ease of use, type safety and useful error messages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-binary-ieee754" = callPackage
@@ -69360,7 +68799,6 @@ self: {
        description = "a cyclic doubly linked list";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-default" = callPackage
@@ -69666,7 +69104,6 @@ self: {
        description = "Executable and Linkable Format (ELF) data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-embed" = callPackage
@@ -69985,8 +69422,6 @@ self: {
        ];
        description = "Interval datatype, interval arithmetic and interval-based containers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-inttrie" = callPackage
@@ -70055,7 +69490,6 @@ self: {
        description = "Data layering utilities. Layer is a data-type which wrapps other one, but keeping additional information. If you want to access content of simple newtype object, use Lens.Wrapper instead.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-layout" = callPackage
@@ -70098,7 +69532,6 @@ self: {
        description = "Lenses";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-lens-ixset" = callPackage
@@ -70112,7 +69545,6 @@ self: {
        description = "A Lens for IxSet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-lens-light" = callPackage
@@ -70136,7 +69568,6 @@ self: {
        description = "Utilities for Data.Lens";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-list-sequences" = callPackage
@@ -70280,7 +69711,6 @@ self: {
        description = "Serialize JSON data to/from Haskell using the data-object library. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-object-yaml" = callPackage
@@ -70300,7 +69730,6 @@ self: {
        description = "Serialize data to and from Yaml files (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-or" = callPackage
@@ -70450,7 +69879,6 @@ self: {
        description = "Data types for returning results distinguishable by types";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-rev" = callPackage
@@ -70489,7 +69917,6 @@ self: {
        description = "Recursive tuple data structure. It is very usefull when implementing some lo-level operations, allowing to traverse different elements using Haskell's type classes.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-serializer" = callPackage
@@ -70645,7 +70072,6 @@ self: {
        description = "Program that infers the fastest data structure available for your program";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "data-sword" = callPackage
@@ -70829,8 +70255,6 @@ self: {
        libraryHaskellDepends = [ aeson base ];
        description = "Class for types with a database id";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "database-id-groundhog" = callPackage
@@ -70943,7 +70367,6 @@ self: {
        description = "Datadog tracing client and mock agent";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dataenc" = callPackage
@@ -71015,7 +70438,6 @@ self: {
        description = "Generate Graphviz documents from a Haskell representation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dataflower" = callPackage
@@ -71132,8 +70554,6 @@ self: {
        ];
        description = "Classical data sets for statistics and machine learning";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dataurl" = callPackage
@@ -71152,8 +70572,6 @@ self: {
        ];
        description = "Handle data-urls";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "date-cache" = callPackage
@@ -71178,7 +70596,6 @@ self: {
        description = "Date conversions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dates" = callPackage
@@ -71340,7 +70757,6 @@ self: {
        description = "Decompiler Bytecode Java";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dbm" = callPackage
@@ -71517,7 +70933,6 @@ self: {
        description = "Monadic and object-oriented interfaces to DBus";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dbus-core" = callPackage
@@ -71676,7 +71091,6 @@ self: {
        description = "Discordian Date Types for Haskell";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-base" = callPackage
@@ -71714,7 +71128,6 @@ self: {
        description = "Disciplined Disciple Compiler build framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-code" = callPackage
@@ -71746,7 +71159,6 @@ self: {
        description = "Disciplined Disciple Compiler core language and type checker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-core-babel" = callPackage
@@ -71761,7 +71173,6 @@ self: {
        description = "Disciplined Disciple Compiler PHP code generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-core-eval" = callPackage
@@ -71778,7 +71189,6 @@ self: {
        description = "Disciplined Disciple Compiler semantic evaluator for the core language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-core-flow" = callPackage
@@ -71797,7 +71207,6 @@ self: {
        description = "Disciplined Disciple Compiler data flow compiler";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-core-llvm" = callPackage
@@ -71815,7 +71224,6 @@ self: {
        description = "Disciplined Disciple Compiler LLVM code generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-core-salt" = callPackage
@@ -71832,7 +71240,6 @@ self: {
        description = "Disciplined Disciple Compiler C code generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-core-simpl" = callPackage
@@ -71849,7 +71256,6 @@ self: {
        description = "Disciplined Disciple Compiler code transformations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-core-tetra" = callPackage
@@ -71867,7 +71273,6 @@ self: {
        description = "Disciplined Disciple Compiler intermediate language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-driver" = callPackage
@@ -71888,7 +71293,6 @@ self: {
        description = "Disciplined Disciple Compiler top-level driver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-interface" = callPackage
@@ -71901,7 +71305,6 @@ self: {
        description = "Disciplined Disciple Compiler user interface support";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-source-tetra" = callPackage
@@ -71919,7 +71322,6 @@ self: {
        description = "Disciplined Disciple Compiler source language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-tools" = callPackage
@@ -71943,7 +71345,6 @@ self: {
        description = "Disciplined Disciple Compiler command line tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddc-war" = callPackage
@@ -71962,7 +71363,6 @@ self: {
        description = "Disciplined Disciple Compiler test driver and buildbot";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ddci-core" = callPackage
@@ -71982,7 +71382,6 @@ self: {
        description = "Disciple Core language interactive interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dde" = callPackage
@@ -72143,7 +71542,6 @@ self: {
        description = "Simple trace-based debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "debug-diff" = callPackage
@@ -72238,7 +71636,6 @@ self: {
        description = "You do not have to write variable names twice in Debug.Trace";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "debug-tracy" = callPackage
@@ -72307,7 +71704,6 @@ self: {
        description = "Combinators for manipulating dependently-typed predicates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "decimal-arithmetic" = callPackage
@@ -72323,7 +71719,6 @@ self: {
        description = "An implementation of the General Decimal Arithmetic Specification";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "decimal-literals" = callPackage
@@ -72411,7 +71806,6 @@ self: {
        description = "A type-checker for the λΠ-modulo calculus";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "deep-transformations" = callPackage
@@ -72501,7 +71895,6 @@ self: {
        description = "Deep Learning in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "deepseq_1_4_5_0" = callPackage
@@ -72612,7 +72005,6 @@ self: {
        description = "A DeepZoom image slicer. Only known to work on 32bit Linux";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "defargs" = callPackage
@@ -72625,7 +72017,6 @@ self: {
        description = "default arguments in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "deferred-folds" = callPackage
@@ -72832,7 +72223,6 @@ self: {
        description = "Tests for deka, decimal floating point arithmetic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "delaunay" = callPackage
@@ -72850,7 +72240,6 @@ self: {
        description = "Build a Delaunay triangulation of a set of points";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "delay" = callPackage
@@ -72882,7 +72271,6 @@ self: {
        description = "Accessing the del.icio.us APIs from Haskell (v2)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "delimited-text" = callPackage
@@ -72899,7 +72287,6 @@ self: {
        description = "Parse character delimited textual data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "delimiter-separated" = callPackage
@@ -72913,7 +72300,6 @@ self: {
        description = "Library for dealing with tab and/or comma (or other) separated files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "delta" = callPackage
@@ -72938,7 +72324,6 @@ self: {
        description = "A library for detecting file changes";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "delta-h" = callPackage
@@ -72961,7 +72346,6 @@ self: {
        description = "Online entropy-based model of lexical category acquisition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "delude" = callPackage
@@ -73029,8 +72413,6 @@ self: {
        ];
        description = "Mutable and immutable dense multidimensional arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dense-int-set" = callPackage
@@ -73114,7 +72496,6 @@ self: {
        description = "Giving good advice to functions in a DepT environment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dependency" = callPackage
@@ -73213,7 +72594,6 @@ self: {
        description = "Control structure similar to Control.Monad.State, allowing multiple nested states, distinguishable by provided phantom types.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dependent-sum_0_4" = callPackage
@@ -73313,7 +72693,6 @@ self: {
        description = "Analyze quality of nucleotide sequences";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "depq" = callPackage
@@ -73362,7 +72741,6 @@ self: {
        description = "DepTrack applied to DevOps";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "deptrack-dot" = callPackage
@@ -73376,7 +72754,6 @@ self: {
        description = "Facilitate Graphviz representations of DepTrack dependencies";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "deque" = callPackage
@@ -73410,7 +72787,6 @@ self: {
        description = "A typeclass and an implementation for double-ended queues";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "derangement" = callPackage
@@ -73473,7 +72849,6 @@ self: {
        description = "Macro to derive instances for Instant-Generics using Template Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "derive-enumerable" = callPackage
@@ -73880,7 +73255,6 @@ self: {
        description = "JSON and CSV encoding for quantities";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "detrospector" = callPackage
@@ -73956,7 +73330,6 @@ self: {
        description = "Haskell development tool agregate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dewdrop" = callPackage
@@ -73971,7 +73344,6 @@ self: {
        description = "Find gadgets for return-oriented programming on x86";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "df1" = callPackage
@@ -74047,7 +73419,6 @@ self: {
        description = "A generic data integrity layer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) leveldb;};
 
   "dfrac" = callPackage
@@ -74159,6 +73530,7 @@ self: {
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall" = callPackage
@@ -74182,6 +73554,8 @@ self: {
        pname = "dhall";
        version = "1.38.1";
        sha256 = "0g70x2crdrkwf41gvwr718am25dmbn9bg4cml9f9va7i1vx5rsgk";
+       revision = "2";
+       editedCabalFile = "02z0jmzzp20yj46iz6i384xwc6k2anxb33smvc4yhpmhqjs0aq8a";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -74213,6 +73587,7 @@ self: {
        doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-bash" = callPackage
@@ -74236,6 +73611,7 @@ self: {
        ];
        description = "Compile Dhall to Bash";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-check" = callPackage
@@ -74268,6 +73644,8 @@ self: {
        pname = "dhall-docs";
        version = "1.0.5";
        sha256 = "00s1vhwilnr6hvv56w98kc1md08lw6v80v8a7yhwrmg9qggwdc12";
+       revision = "1";
+       editedCabalFile = "0y8a02jxz5cap0q4b2106ck4av7haxqlv5vjhm0nmrsq10cl4nss";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -74284,7 +73662,7 @@ self: {
        description = "Generate HTML docs from a dhall package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-fly" = callPackage
@@ -74348,6 +73726,7 @@ self: {
        ];
        description = "Convert between Dhall and JSON or YAML";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-lex" = callPackage
@@ -74381,6 +73760,8 @@ self: {
        pname = "dhall-lsp-server";
        version = "1.0.14";
        sha256 = "1jy80w3lr6c0hvn0525h5kn6fh9rj6ir942hdkilrzd9farg6qj9";
+       revision = "1";
+       editedCabalFile = "10947mmbwy5fg52s63cs7lqa6hydrg3w8ka7rfkpdiqn2q9f146r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74396,6 +73777,7 @@ self: {
        ];
        description = "Language Server Protocol (LSP) server for Dhall";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-nix" = callPackage
@@ -74406,8 +73788,8 @@ self: {
        pname = "dhall-nix";
        version = "1.1.20";
        sha256 = "14d9icvgmrphnbjjwlskh88p7vgphgb0xqd91p217bf2xhl9k2xd";
-       revision = "1";
-       editedCabalFile = "16hz1i0vkp1qsqf9dm0d9pc1kap02nzdalzjpiw2r8p3qbykaann";
+       revision = "2";
+       editedCabalFile = "1w90jrkzmbv5nasafkkv0kyfmnqkngldx2lr891113h2mqbbr3wx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74419,8 +73801,7 @@ self: {
        ];
        description = "Dhall to Nix compiler";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-nixpkgs" = callPackage
@@ -74433,6 +73814,8 @@ self: {
        pname = "dhall-nixpkgs";
        version = "1.0.4";
        sha256 = "0yr7z17dvmr1zipk29fmzm46myxxsz514587n6a7h00c56dyvnc3";
+       revision = "1";
+       editedCabalFile = "1y08jxg51sbxx0i7ra45ii2v81plzf4hssmwlrw35l8n5gib1vcg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -74442,8 +73825,7 @@ self: {
        ];
        description = "Convert Dhall projects to Nix packages";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-openapi" = callPackage
@@ -74468,6 +73850,7 @@ self: {
        ];
        description = "Convert an OpenAPI specification to a Dhall package";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhall-recursive-adt" = callPackage
@@ -74488,8 +73871,6 @@ self: {
        ];
        description = "Convert recursive ADTs from and to Dhall";
        license = lib.licenses.cc0;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dhall-text" = callPackage
@@ -74508,6 +73889,7 @@ self: {
        description = "Template text using Dhall";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
        broken = true;
      }) {};
 
@@ -74567,6 +73949,7 @@ self: {
        ];
        description = "Convert between Dhall and YAML";
        license = lib.licenses.gpl3Only;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dhcp-lease-parser" = callPackage
@@ -74586,7 +73969,6 @@ self: {
        description = "Parse a DHCP lease file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dhrun" = callPackage
@@ -74749,7 +74131,6 @@ self: {
        description = "An EDSL for teaching Haskell with diagrams - functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams" = callPackage
@@ -74766,6 +74147,7 @@ self: {
        doHaddock = false;
        description = "Embedded domain-specific language for declarative vector graphics";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "diagrams-boolean" = callPackage
@@ -74806,8 +74188,6 @@ self: {
        ];
        description = "Braille diagrams with plain text";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-builder" = callPackage
@@ -74860,8 +74240,6 @@ self: {
        ];
        description = "Cairo backend for diagrams drawing EDSL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-canvas" = callPackage
@@ -74931,6 +74309,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "diagrams-core_1_5_0" = callPackage
+    ({ mkDerivation, adjunctions, base, containers, distributive
+     , dual-tree, lens, linear, monoid-extras, mtl, profunctors
+     , semigroups, unordered-containers
+     }:
+     mkDerivation {
+       pname = "diagrams-core";
+       version = "1.5.0";
+       sha256 = "0y3smp3hiyfdirdak3j4048cgqv7a5q9p2jb6z8na2llys5mrmdn";
+       libraryHaskellDepends = [
+         adjunctions base containers distributive dual-tree lens linear
+         monoid-extras mtl profunctors semigroups unordered-containers
+       ];
+       description = "Core libraries for diagrams EDSL";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "diagrams-graphviz" = callPackage
     ({ mkDerivation, base, containers, diagrams-lib, fgl, graphviz
      , split
@@ -74994,7 +74390,6 @@ self: {
        description = "Preprocessor for embedding diagrams in Haddock documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-hsqml" = callPackage
@@ -75031,7 +74426,6 @@ self: {
        description = "HTML5 canvas backend for diagrams drawing EDSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-lib" = callPackage
@@ -75067,6 +74461,38 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "diagrams-lib_1_4_4" = callPackage
+    ({ mkDerivation, active, adjunctions, array, base, bytestring
+     , cereal, colour, containers, criterion, data-default-class
+     , deepseq, diagrams-core, diagrams-solve, directory, distributive
+     , dual-tree, exceptions, filepath, fingertree, fsnotify, hashable
+     , intervals, JuicyPixels, lens, linear, monoid-extras, mtl
+     , numeric-extras, optparse-applicative, process, profunctors
+     , QuickCheck, semigroups, tagged, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "diagrams-lib";
+       version = "1.4.4";
+       sha256 = "09np7kj8si8kcb854f95a0cq392mgbxif8lnazbpfsa1k87d9vzy";
+       libraryHaskellDepends = [
+         active adjunctions array base bytestring cereal colour containers
+         data-default-class diagrams-core diagrams-solve directory
+         distributive dual-tree exceptions filepath fingertree fsnotify
+         hashable intervals JuicyPixels lens linear monoid-extras mtl
+         optparse-applicative process profunctors semigroups tagged text
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base deepseq diagrams-solve distributive lens numeric-extras
+         QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ base criterion diagrams-core ];
+       description = "Embedded domain-specific language for declarative graphics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "diagrams-pandoc" = callPackage
     ({ mkDerivation, base, diagrams-builder, diagrams-cairo
      , diagrams-core, diagrams-lib, diagrams-svg, directory, filepath
@@ -75091,7 +74517,6 @@ self: {
        description = "A Pandoc filter to express diagrams inline using the Haskell EDSL _Diagrams_";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-pdf" = callPackage
@@ -75131,7 +74556,6 @@ self: {
        description = "PGF backend for diagrams drawing EDSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-postscript" = callPackage
@@ -75178,10 +74602,8 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-rasterific";
-       version = "1.4.2";
-       sha256 = "161rsy3g59n3sfrbfyvd4i4hszl0zm59w21b7pk6w88n0bk8gf2l";
-       revision = "1";
-       editedCabalFile = "0q2nzcdv7j654bk8c5fjz3whiz1l6cdy21n6ah53f1s7rlsbiz0g";
+       version = "1.4.2.1";
+       sha256 = "09a1jnpc4kplg1yhv5kxhi0ph22m5xyr0vmnjv2c5wlz72c72z2z";
        libraryHaskellDepends = [
          base bytestring containers data-default-class diagrams-core
          diagrams-lib file-embed filepath FontyFruity hashable JuicyPixels
@@ -75190,8 +74612,6 @@ self: {
        testHaskellDepends = [ base diagrams-core diagrams-lib ];
        description = "Rasterific backend for diagrams";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-reflex" = callPackage
@@ -75225,8 +74645,6 @@ self: {
        ];
        description = "Library for drawing the Rubik's Cube";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-solve" = callPackage
@@ -75297,7 +74715,6 @@ self: {
        description = "Backend for rendering diagrams in wxWidgets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dialog" = callPackage
@@ -75324,8 +74741,8 @@ self: {
      }:
      mkDerivation {
        pname = "dialogflow-fulfillment";
-       version = "0.1.1.3";
-       sha256 = "10n91mfgvn3pi0rvw92ys8f4bcra4v24j0cjykrax3jdmk1wfmym";
+       version = "0.1.1.4";
+       sha256 = "0yy4h8pariapyi7pr1b237i73y4k8icjk862i9jxh9g9lilkpyzq";
        libraryHaskellDepends = [
          aeson base bytestring containers text unordered-containers
        ];
@@ -75628,7 +75045,6 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "differential" = callPackage
@@ -75734,6 +75150,7 @@ self: {
        description = "Pure hash functions for bytestrings";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "digest-sig" = callPackage
@@ -75889,7 +75306,6 @@ self: {
        description = "HSP support for digestive-functors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "digestive-functors-lucid" = callPackage
@@ -76045,10 +75461,8 @@ self: {
      }:
      mkDerivation {
        pname = "dimensional";
-       version = "1.3";
-       sha256 = "0i4k7m134w3pczj8qllc59djdhisj92z78qrzap9v0f4rx8jb8r9";
-       revision = "2";
-       editedCabalFile = "10xkgwjb9kqa95jck3b9wa3sz6vcb2lkygfmcqqz6hz6j65l79r8";
+       version = "1.4";
+       sha256 = "19w6plp97ylwqgwzhfy54cvjvh0dd1gj843y59cmryckh80jap8s";
        libraryHaskellDepends = [
          base deepseq exact-pi ieee754 numtype-dk semigroups vector
        ];
@@ -76057,7 +75471,7 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
-       description = "Statically checked physical dimensions, using Type Families and Data Kinds";
+       description = "Statically checked physical dimensions";
        license = lib.licenses.bsd3;
      }) {};
 
@@ -76065,13 +75479,11 @@ self: {
     ({ mkDerivation, base, dimensional, numtype-dk }:
      mkDerivation {
        pname = "dimensional-codata";
-       version = "2014.0.0.2";
-       sha256 = "1bmal7i0zvfivri5w7fbl4n0gyybnr2wy2cvz21b33jrzjblr1g0";
+       version = "2014.0.0.3";
+       sha256 = "1303i7f8c9nsr5x128qaqisny4r3fnfq7zarl4g9q0zckxgqhpgj";
        libraryHaskellDepends = [ base dimensional numtype-dk ];
        description = "CODATA Recommended Physical Constants with Dimensional Types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dimensional-tf" = callPackage
@@ -76124,7 +75536,6 @@ self: {
        description = "Dingo is a Rich Internet Application platform based on the Warp web server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dingo-example" = callPackage
@@ -76145,7 +75556,6 @@ self: {
        description = "Dingo Example";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dingo-widgets" = callPackage
@@ -76165,7 +75575,6 @@ self: {
        description = "Dingo Widgets";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dino" = callPackage
@@ -76198,8 +75607,8 @@ self: {
      }:
      mkDerivation {
        pname = "diohsc";
-       version = "0.1.5";
-       sha256 = "10336q53ghvj15gxxrdh1s10amfbyl7m69pgzg0rjxrs1p2bx7s7";
+       version = "0.1.6.1";
+       sha256 = "15shc82ii68dzpa0j9dqi6iyhqa6zbr9g2007c1na42rxhm8fg7j";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -76243,7 +75652,6 @@ self: {
        description = "Diplomacy board game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diplomacy-server" = callPackage
@@ -76268,7 +75676,6 @@ self: {
        description = "Play Diplomacy over HTTP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dir-traverse" = callPackage
@@ -76427,14 +75834,12 @@ self: {
        broken = true;
      }) {};
 
-  "directory_1_3_6_1" = callPackage
+  "directory_1_3_6_2" = callPackage
     ({ mkDerivation, base, filepath, time, unix }:
      mkDerivation {
        pname = "directory";
-       version = "1.3.6.1";
-       sha256 = "00cr2sshzjmn57rpvjj8wvgr60x2mk8c7w1nd40wxqs8s9xaa1bi";
-       revision = "2";
-       editedCabalFile = "14kwmqa1pf1bij7qang5aihw38ch7m5prsics0p0y72jkxx98y48";
+       version = "1.3.6.2";
+       sha256 = "0zgwx7bwhw0s5xc17hfn1ps3fxn9ihv174b2s7rz63flm8lsm0y3";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -76542,7 +75947,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dirichlet" = callPackage
@@ -76551,8 +75955,8 @@ self: {
      }:
      mkDerivation {
        pname = "dirichlet";
-       version = "0.1.0.2";
-       sha256 = "1xppfdz3s31md41848awahfipv5g6yhglkw2l5l3q0jc5wsc1vvw";
+       version = "0.1.0.4";
+       sha256 = "1qhkqcdzdryzds5zb9y55ckd35wij39yk2k58s7fdacnash9l3fg";
        libraryHaskellDepends = [
          base log-domain math-functions mwc-random primitive vector
        ];
@@ -76576,6 +75980,7 @@ self: {
        ];
        description = "Easily stream directory contents in constant memory";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "dirtree" = callPackage
@@ -76633,7 +76038,6 @@ self: {
        description = "Client for Discogs REST API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "discokitty" = callPackage
@@ -76663,7 +76067,6 @@ self: {
        description = "An API wrapper for Discord in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "discord-haskell" = callPackage
@@ -76674,8 +76077,8 @@ self: {
      }:
      mkDerivation {
        pname = "discord-haskell";
-       version = "1.8.5";
-       sha256 = "0hp3w1d5pwfj06m72dl44cp67h99b3c43kv641vz6dff7xk75hsm";
+       version = "1.8.7";
+       sha256 = "0nby3267nhdgc8692k5c28yy0a2bzvl84dn54sg25j6nchzs991g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -76687,6 +76090,8 @@ self: {
        executableHaskellDepends = [ base text unliftio ];
        description = "Write bots for Discord in Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "discord-hs" = callPackage
@@ -76704,40 +76109,36 @@ self: {
        description = "An API wrapper for Discord in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "discord-register" = callPackage
-    ({ mkDerivation, base, calamity, dhall, di, di-polysemy
-     , generic-lens, hspec, hspec-megaparsec, megaparsec, polysemy
-     , polysemy-plugin, text, text-show, unboxing-vector
-     , unordered-containers, vector
+    ({ mkDerivation, aeson, base, binary, bytestring, calamity
+     , calamity-commands, data-flags, di, di-polysemy, generic-lens
+     , hashable, hedis, lens, megaparsec, polysemy, polysemy-plugin
+     , regex-tdfa, text, text-show, unboxing-vector
+     , unordered-containers
      }:
      mkDerivation {
        pname = "discord-register";
-       version = "0.0.1";
-       sha256 = "1crwbdkyg6k4777lcc7yi5n47xpsnvl3s1652n896k1hck7ckrr8";
+       version = "0.0.2";
+       sha256 = "01imq7m41g26x7prm223y6bagjwyzb3glwy41fg4kdd244pz02wf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base calamity dhall di di-polysemy generic-lens hspec
-         hspec-megaparsec megaparsec polysemy polysemy-plugin text text-show
-         unboxing-vector unordered-containers vector
+         aeson base binary bytestring calamity calamity-commands data-flags
+         di di-polysemy generic-lens hashable hedis lens megaparsec polysemy
+         polysemy-plugin regex-tdfa text text-show unboxing-vector
+         unordered-containers
        ];
        executableHaskellDepends = [
-         base calamity dhall di di-polysemy generic-lens hspec
-         hspec-megaparsec megaparsec polysemy polysemy-plugin text text-show
-         unboxing-vector unordered-containers vector
-       ];
-       testHaskellDepends = [
-         base calamity dhall di di-polysemy generic-lens hspec
-         hspec-megaparsec megaparsec polysemy polysemy-plugin text text-show
-         unboxing-vector unordered-containers vector
+         aeson base binary bytestring calamity calamity-commands data-flags
+         di di-polysemy generic-lens hashable hedis lens megaparsec polysemy
+         polysemy-plugin regex-tdfa text text-show unboxing-vector
+         unordered-containers
        ];
        description = "Discord verification bot";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "discord-rest" = callPackage
@@ -76758,7 +76159,6 @@ self: {
        description = "An API wrapper for Discord in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "discord-types" = callPackage
@@ -77163,7 +76563,6 @@ self: {
        description = "Cloud Haskell Async API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-azure" = callPackage
@@ -77187,7 +76586,6 @@ self: {
        description = "Microsoft Azure backend for Cloud Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-client-server" = callPackage
@@ -77218,7 +76616,6 @@ self: {
        description = "The Cloud Haskell Application Platform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-ekg" = callPackage
@@ -77235,7 +76632,6 @@ self: {
        description = "Collect node stats for EKG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-execution" = callPackage
@@ -77272,7 +76668,6 @@ self: {
        description = "Execution Framework for The Cloud Haskell Application Platform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-extras" = callPackage
@@ -77304,7 +76699,6 @@ self: {
        description = "Cloud Haskell Extras";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-fsm" = callPackage
@@ -77338,7 +76732,6 @@ self: {
        description = "The Cloud Haskell implementation of Erlang/OTP gen_statem";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-lifted" = callPackage
@@ -77365,7 +76758,6 @@ self: {
        description = "monad-control style typeclass and transformer instances for Process monad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-monad-control" = callPackage
@@ -77383,7 +76775,6 @@ self: {
        description = "Orphan instances for MonadBase and MonadBaseControl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-p2p" = callPackage
@@ -77405,7 +76796,6 @@ self: {
        description = "Peer-to-peer node discovery for Cloud Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-platform" = callPackage
@@ -77437,7 +76827,6 @@ self: {
        description = "The Cloud Haskell Application Platform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-registry" = callPackage
@@ -77471,7 +76860,6 @@ self: {
        description = "Cloud Haskell Extended Process Registry";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-simplelocalnet" = callPackage
@@ -77495,7 +76883,6 @@ self: {
        description = "Simple zero-configuration backend for Cloud Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-supervisor" = callPackage
@@ -77528,7 +76915,6 @@ self: {
        description = "Supervisors for The Cloud Haskell Application Platform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-systest" = callPackage
@@ -77549,7 +76935,6 @@ self: {
        description = "Cloud Haskell Test Support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-task" = callPackage
@@ -77587,7 +76972,6 @@ self: {
        description = "Task Framework for The Cloud Haskell Application Platform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-tests" = callPackage
@@ -77612,7 +76996,6 @@ self: {
        description = "Tests and test support tools for distributed-process";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-process-zookeeper" = callPackage
@@ -77642,7 +77025,6 @@ self: {
        description = "A Zookeeper back-end for Cloud Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributed-static" = callPackage
@@ -77729,7 +77111,6 @@ self: {
        description = "Easily plot distributions from the distribution package..";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "distributive" = callPackage
@@ -77791,8 +77172,6 @@ self: {
        ];
        description = "Quantify the diversity of a population";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dixi" = callPackage
@@ -77831,7 +77210,6 @@ self: {
        description = "A wiki implemented with a firm theoretical foundation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "djembe" = callPackage
@@ -77911,29 +77289,6 @@ self: {
 
   "dl-fedora" = callPackage
     ({ mkDerivation, base, bytestring, directory, extra, filepath
-     , http-directory, http-types, optparse-applicative, regex-posix
-     , simple-cmd, simple-cmd-args, text, time, unix, xdg-userdirs
-     }:
-     mkDerivation {
-       pname = "dl-fedora";
-       version = "0.8";
-       sha256 = "1pd0cslszd9srr9bpcxzrm84cnk5r78xs79ig32528z0anc5ghcr";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring directory extra filepath http-directory http-types
-         optparse-applicative regex-posix simple-cmd simple-cmd-args text
-         time unix xdg-userdirs
-       ];
-       testHaskellDepends = [ base simple-cmd ];
-       description = "Fedora image download tool";
-       license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "dl-fedora_0_9" = callPackage
-    ({ mkDerivation, base, bytestring, directory, extra, filepath
      , http-client, http-client-tls, http-directory, http-types
      , optparse-applicative, regex-posix, simple-cmd, simple-cmd-args
      , text, time, unix, xdg-userdirs
@@ -77953,7 +77308,6 @@ self: {
        description = "Fedora image download tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dlist" = callPackage
@@ -78091,7 +77445,6 @@ self: {
        description = "dmenu script for killing applications. Sortable by process id or CPU/MEM usage.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dmenu-pmount" = callPackage
@@ -78110,7 +77463,6 @@ self: {
        description = "Mounting and unmounting linux devices as user with dmenu and pmount";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dmenu-search" = callPackage
@@ -78129,7 +77481,6 @@ self: {
        description = "dmenu script for searching the web with customizable search engines";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dns" = callPackage
@@ -78245,6 +77596,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "do-spaces" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring
+     , case-insensitive, conduit, conduit-extra, config-ini, containers
+     , cryptonite, exceptions, extra, filepath, generic-lens, hspec
+     , http-client-tls, http-conduit, http-types, memory, microlens
+     , mime-types, mtl, resourcet, text, time, transformers, xml-conduit
+     }:
+     mkDerivation {
+       pname = "do-spaces";
+       version = "0.1.0";
+       sha256 = "1xj0n2pmmwkm4ss5gvsbvw8m545w4890a3hhk1ns1vbbm06zmvsi";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring case-insensitive conduit
+         conduit-extra config-ini containers cryptonite exceptions extra
+         filepath generic-lens http-client-tls http-conduit http-types
+         memory microlens mime-types mtl text time transformers xml-conduit
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive conduit conduit-extra containers
+         generic-lens hspec http-client-tls http-conduit http-types
+         microlens mtl resourcet text time
+       ];
+       description = "DigitalOcean Spaces API bindings";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "dobutok" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -78419,7 +77796,6 @@ self: {
        description = "Document review Web application, like http://book.realworldhaskell.org/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "doccheck" = callPackage
@@ -78587,6 +77963,8 @@ self: {
          th-lift th-lift-instances time
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "doclayout" = callPackage
@@ -78884,8 +78262,6 @@ self: {
        ];
        description = "Low-level bindings to the DocuSign API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "docusign-base-minimal" = callPackage
@@ -78902,8 +78278,6 @@ self: {
        ];
        description = "Low-level bindings to the DocuSign API (only what is necessary for docusign-client)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "docusign-client" = callPackage
@@ -78923,8 +78297,6 @@ self: {
        ];
        description = "Client bindings for the DocuSign API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "docusign-example" = callPackage
@@ -79002,7 +78374,6 @@ self: {
        description = "Automatic Bibtex and fulltext of scientific articles";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "doldol" = callPackage
@@ -79112,8 +78483,8 @@ self: {
      }:
      mkDerivation {
        pname = "domain";
-       version = "0.1";
-       sha256 = "1lr97k14wc35myckknsv3vyximqfv5vq04f5kpd8167lk3vjahm2";
+       version = "0.1.1";
+       sha256 = "0ykf1bxd0xmgdhkvd8rp14p4zccpwp5ywj2yiyh6mpp4sp03qwiw";
        libraryHaskellDepends = [
          attoparsec base bytestring domain-core foldl hashable
          parser-combinators template-haskell template-haskell-compat-v0208
@@ -79126,7 +78497,6 @@ self: {
        description = "Codegen helping you define domain models";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "domain-auth" = callPackage
@@ -79162,7 +78532,6 @@ self: {
        description = "Low-level API of \"domain\"";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "domain-optics" = callPackage
@@ -79182,7 +78551,6 @@ self: {
        description = "Integration of domain with optics";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dominion" = callPackage
@@ -79533,7 +78901,6 @@ self: {
        description = "Dungeons of Wor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "download" = callPackage
@@ -79577,7 +78944,6 @@ self: {
        description = "Simple tool to download images from RSS feeds (e.g. Flickr, Picasa)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "downloader" = callPackage
@@ -79664,7 +79030,6 @@ self: {
        description = "Data Parallel Haskell example programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dph-lifted-base" = callPackage
@@ -79682,7 +79047,6 @@ self: {
        description = "Data Parallel Haskell common definitions used by other dph-lifted packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dph-lifted-copy" = callPackage
@@ -79699,7 +79063,6 @@ self: {
        description = "Data Parallel Haskell lifted array combinators. (deprecated version)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dph-lifted-vseg" = callPackage
@@ -79717,7 +79080,6 @@ self: {
        description = "Data Parallel Haskell lifted array combinators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dph-par" = callPackage
@@ -79741,7 +79103,6 @@ self: {
        description = "Data Parallel Haskell segmented arrays. (abstract interface)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dph-prim-par" = callPackage
@@ -79759,7 +79120,6 @@ self: {
        description = "Data Parallel Haskell segmented arrays. (production version)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dph-prim-seq" = callPackage
@@ -79776,7 +79136,6 @@ self: {
        description = "Data Parallel Haskell segmented arrays. (sequential implementation)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dph-seq" = callPackage
@@ -79891,8 +79250,8 @@ self: {
     ({ mkDerivation, base, ki, transformers, unagi-chan }:
      mkDerivation {
        pname = "drama";
-       version = "0.3.0.0";
-       sha256 = "17smzrvpaah2lcc2467dd61lns53q4n0bf0pl9glsv04j9kv2nl9";
+       version = "0.4.0.0";
+       sha256 = "15p8pac1xcl5iifv1g0bs09l99x6q8skid71wlyxh4g9j7hrgpdr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ki transformers unagi-chan ];
@@ -79972,8 +79331,6 @@ self: {
        ];
        description = "Simple schema management for arbitrary databases";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "drifter-postgresql" = callPackage
@@ -80015,8 +79372,6 @@ self: {
        ];
        description = "SQLite support for the drifter schema migraiton tool";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "drinkery" = callPackage
@@ -80030,6 +79385,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "driving-classes-plugin" = callPackage
+    ({ mkDerivation, base, containers, ghc }:
+     mkDerivation {
+       pname = "driving-classes-plugin";
+       version = "0.1.2.0";
+       sha256 = "013c4qs919yp8nm2ammzr55rqzcai4ybsszilg9g48bd913hzrzl";
+       libraryHaskellDepends = [ base containers ghc ];
+       testHaskellDepends = [ base ];
+       description = "Deriving without spelling out \"deriving\"";
+       license = lib.licenses.mit;
+     }) {};
+
   "drmaa" = callPackage
     ({ mkDerivation, base, c2hs, directory, drmaa, exceptions }:
      mkDerivation {
@@ -80091,8 +79458,6 @@ self: {
        ];
        description = "Dropbox API client";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dropbox-sdk" = callPackage
@@ -80115,7 +79480,6 @@ self: {
        description = "A library to access the Dropbox HTTP API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dropsolve" = callPackage
@@ -80135,7 +79499,6 @@ self: {
        description = "A command line tool for resolving dropbox conflicts. Deprecated! Please use confsolve.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "drunken-bishop" = callPackage
@@ -80216,7 +79579,6 @@ self: {
        description = "SQL backend for Database Supported Haskell (DSH)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dsmc" = callPackage
@@ -80256,7 +79618,6 @@ self: {
        description = "DSMC toolkit for rarefied gas dynamics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dson" = callPackage
@@ -80372,7 +79733,6 @@ self: {
        description = "Parse and render DTD files (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dtd-text" = callPackage
@@ -80473,8 +79833,8 @@ self: {
      }:
      mkDerivation {
        pname = "dual-tree";
-       version = "0.2.2.1";
-       sha256 = "17kdfnf0df0z5pkiifxrlmyd1xd7hjjaazd2kzyajl0gd00vbszx";
+       version = "0.2.3.0";
+       sha256 = "0qyn7kb42wvlcvb1wbf1qx3isc2y6k3hzp5iq6ab0r0llw9g6qlg";
        libraryHaskellDepends = [
          base monoid-extras newtype-generics semigroups
        ];
@@ -80605,7 +79965,6 @@ self: {
        description = "A computer “algebra” system that knows nothing about algebra, at the core";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dump" = callPackage
@@ -80825,7 +80184,6 @@ self: {
        description = "Efficient automatic differentiation and code generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dvdread" = callPackage
@@ -81037,7 +80395,6 @@ self: {
        description = "Access the functions from the Cabal library without depending on it";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dynamic-graph" = callPackage
@@ -81170,7 +80527,6 @@ self: {
        description = "Interactive diagram windows";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dynamic-pp" = callPackage
@@ -81283,27 +80639,10 @@ self: {
        description = "your dynamic optimization buddy";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "dyre" = callPackage
     ({ mkDerivation, base, binary, directory, executable-path, filepath
-     , ghc-paths, io-storage, process, time, unix, xdg-basedir
-     }:
-     mkDerivation {
-       pname = "dyre";
-       version = "0.8.12";
-       sha256 = "10hnlysy4bjvvznk8v902mlk4jx95qf972clyi1l32xkqrf30972";
-       libraryHaskellDepends = [
-         base binary directory executable-path filepath ghc-paths io-storage
-         process time unix xdg-basedir
-       ];
-       description = "Dynamic reconfiguration in Haskell";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "dyre_0_9_1" = callPackage
-    ({ mkDerivation, base, binary, directory, executable-path, filepath
      , io-storage, process, time, unix, xdg-basedir
      }:
      mkDerivation {
@@ -81317,7 +80656,6 @@ self: {
        testHaskellDepends = [ base directory process ];
        description = "Dynamic reconfiguration in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dywapitchtrack" = callPackage
@@ -81610,8 +80948,6 @@ self: {
        ];
        description = "Pure, type-indexed haskell vector, matrix, and tensor library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "easytensor-vulkan" = callPackage
@@ -81623,8 +80959,6 @@ self: {
        libraryHaskellDepends = [ base dimensions easytensor vulkan-api ];
        description = "Use easytensor with vulkan-api";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "easytest" = callPackage
@@ -81717,8 +81051,6 @@ self: {
        ];
        description = "A handy tool for uploading unikernels to Amazon's EC2";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "eccrypto" = callPackage
@@ -81751,7 +81083,6 @@ self: {
        description = "provides \"ed25519\" API using \"eccrypto\"";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ecdsa" = callPackage
@@ -81943,7 +81274,6 @@ self: {
        description = "Semi-explicit parallel programming skeleton library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "edentv" = callPackage
@@ -81965,7 +81295,6 @@ self: {
        description = "A Tool to Visualize Parallel Functional Program Executions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "edf" = callPackage
@@ -81996,7 +81325,6 @@ self: {
        description = "Top view space combat arcade game";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "edges" = callPackage
@@ -82025,7 +81353,6 @@ self: {
        description = "Tools for efficient immutable graphs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "edis" = callPackage
@@ -82159,7 +81486,6 @@ self: {
        description = "Interactive editors for Generics";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "editline" = callPackage
@@ -82391,7 +81717,6 @@ self: {
        description = "Programming language with non-linear pattern-matching against non-free data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "egison-pattern-src" = callPackage
@@ -82435,7 +81760,6 @@ self: {
        description = "Parser and pretty printer for Egison pattern expressions in Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "egison-pattern-src-th-mode" = callPackage
@@ -82459,7 +81783,6 @@ self: {
        description = "Parser and pretty printer for Egison pattern expressions to use with TH";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "egison-quote" = callPackage
@@ -82474,7 +81797,6 @@ self: {
        description = "A quasi quotes for using Egison expression in Haskell code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "egison-tutorial" = callPackage
@@ -82494,7 +81816,6 @@ self: {
        description = "A tutorial program for the Egison programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "egyptian-fractions" = callPackage
@@ -82650,8 +81971,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Functions involving lists of Either";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "either-result" = callPackage
@@ -82789,8 +82108,6 @@ self: {
        ];
        description = "An ekg backend for Amazon Cloudwatch";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ekg-core" = callPackage
@@ -83056,7 +82373,6 @@ self: {
        description = "Example applications for Elerea";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "elerea-sdl" = callPackage
@@ -83175,7 +82491,6 @@ self: {
        description = "Elliptic curve library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "elm-bridge" = callPackage
@@ -83667,7 +82982,6 @@ self: {
        description = "A tiny language for understanding the lambda-calculus";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "elynx" = callPackage
@@ -83685,8 +82999,6 @@ self: {
        ];
        description = "Validate and (optionally) redo ELynx analyses";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "elynx-markov" = callPackage
@@ -83787,8 +83099,36 @@ self: {
        ];
        description = "Handle phylogenetic trees";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "ema" = callPackage
+    ({ mkDerivation, aeson, async, base, blaze-html, blaze-markup
+     , commonmark, commonmark-extensions, commonmark-pandoc, containers
+     , data-default, directory, filepath, filepattern, fsnotify
+     , http-types, lvar, monad-logger, monad-logger-extras
+     , neat-interpolation, optparse-applicative, pandoc-types
+     , profunctors, relude, safe-exceptions, shower, stm, tagged, text
+     , time, unliftio, wai, wai-middleware-static, wai-websockets, warp
+     , websockets
+     }:
+     mkDerivation {
+       pname = "ema";
+       version = "0.1.0.0";
+       sha256 = "0b7drwqcdap52slnw59vx3mhpabcl72p7rinnfkzsh74jfx21vz0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base blaze-html blaze-markup commonmark
+         commonmark-extensions commonmark-pandoc containers data-default
+         directory filepath filepattern fsnotify http-types lvar
+         monad-logger monad-logger-extras neat-interpolation
+         optparse-applicative pandoc-types profunctors relude
+         safe-exceptions shower stm tagged text time unliftio wai
+         wai-middleware-static wai-websockets warp websockets
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Static site generator library with hot reload";
+       license = lib.licenses.agpl3Only;
      }) {};
 
   "emacs-keys" = callPackage
@@ -83808,7 +83148,6 @@ self: {
        description = "library to parse emacs style keybinding into the modifiers and the chars";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "emacs-module" = callPackage
@@ -83847,7 +83186,6 @@ self: {
        description = "Sending eMail in Haskell made easy";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "email-header" = callPackage
@@ -83985,7 +83323,6 @@ self: {
        description = "An email parser that will parse everything";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "embeddock" = callPackage
@@ -84003,7 +83340,6 @@ self: {
        description = "Embed the values in scope in the haddock documentation of the module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "embeddock-example" = callPackage
@@ -84016,7 +83352,6 @@ self: {
        description = "Example of using embeddock";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "embla" = callPackage
@@ -84049,7 +83384,6 @@ self: {
        description = "support for embroidery formats in haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "emd" = callPackage
@@ -84319,8 +83653,6 @@ self: {
        ];
        description = "A Haskell implementation of Engine.IO";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "engine-io-growler" = callPackage
@@ -84340,7 +83672,6 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "engine-io-snap" = callPackage
@@ -84425,7 +83756,6 @@ self: {
        description = "An application (and library) to convert quipper circuits into Qpmc models";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "entropy" = callPackage
@@ -84503,8 +83833,6 @@ self: {
        ];
        description = "A text rendering and parsing toolkit for enumerated types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "enum-text-rio" = callPackage
@@ -84521,8 +83849,6 @@ self: {
        ];
        description = "Making fmt available with rio";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "enum-types" = callPackage
@@ -84583,7 +83909,6 @@ self: {
        description = "enumerate all the values in a finite type (automatically)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "enumerate-function" = callPackage
@@ -84605,7 +83930,6 @@ self: {
        description = "simple package for inverting functions and testing totality, via brute enumeration of the domain";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "enumeration" = callPackage
@@ -84652,7 +83976,6 @@ self: {
        description = "Enumerator instances for monads-fd classes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "enumerator-tf" = callPackage
@@ -84665,7 +83988,6 @@ self: {
        description = "Enumerator instances for monads-tf classes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "enumfun" = callPackage
@@ -84779,8 +84101,6 @@ self: {
        ];
        description = "Safe helpers for accessing and modifying environment variables";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "env-locale" = callPackage
@@ -84882,6 +84202,7 @@ self: {
        ];
        description = "An environmentally friendly way to deal with environment variables";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "envy-extensible" = callPackage
@@ -84948,7 +84269,6 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "epi-sim" = callPackage
@@ -84967,8 +84287,6 @@ self: {
        ];
        description = "A library for simulating epidemics as birth-death processes";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "epic" = callPackage
@@ -85246,7 +84564,6 @@ self: {
        description = "Native Haskell implementation of the interface from the erf package";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "erlang" = callPackage
@@ -85318,7 +84635,6 @@ self: {
        description = "DEPRECATED in favor of eros-http";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "eros-http" = callPackage
@@ -85339,7 +84655,6 @@ self: {
        description = "JSON HTTP interface to Eros";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "errata" = callPackage
@@ -85358,6 +84673,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Source code error pretty printing";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "errno" = callPackage
@@ -85393,8 +84710,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Error code functions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "error-context" = callPackage
@@ -85485,7 +84800,6 @@ self: {
        description = "Composable error messages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "error-or" = callPackage
@@ -85548,6 +84862,7 @@ self: {
        ];
        description = "Simplified error-handling";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "errors-ext" = callPackage
@@ -85568,7 +84883,6 @@ self: {
        description = "`bracket`-like functions for `ExceptT` over `IO` monad";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ersaconcat" = callPackage
@@ -85638,7 +84952,6 @@ self: {
        description = "toysat driver as backend for ersatz";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ert" = callPackage
@@ -85754,7 +85067,6 @@ self: {
        description = "Esotericbot is a sophisticated, lightweight IRC bot";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "espial" = callPackage
@@ -85827,42 +85139,14 @@ self: {
     ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
      , conduit, containers, exceptions, hspec, monad-logger, mtl, mysql
      , mysql-simple, persistent, persistent-mysql, persistent-postgresql
-     , persistent-sqlite, persistent-template, postgresql-libpq
-     , postgresql-simple, resourcet, tagged, text, time, transformers
-     , unliftio, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "esqueleto";
-       version = "3.4.1.1";
-       sha256 = "15355vc3ysqr4yd149xz7zm7iba7pb04p3yxgp1n6dxczwldjf43";
-       libraryHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         monad-logger persistent resourcet tagged text time transformers
-         unliftio unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         exceptions hspec monad-logger mtl mysql mysql-simple persistent
-         persistent-mysql persistent-postgresql persistent-sqlite
-         persistent-template postgresql-libpq postgresql-simple resourcet
-         tagged text time transformers unliftio unordered-containers vector
-       ];
-       description = "Type-safe EDSL for SQL queries on persistent backends";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "esqueleto_3_4_2_0" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
-     , conduit, containers, exceptions, hspec, monad-logger, mtl, mysql
-     , mysql-simple, persistent, persistent-mysql, persistent-postgresql
      , persistent-sqlite, postgresql-libpq, postgresql-simple, resourcet
      , tagged, text, time, transformers, unliftio, unordered-containers
      , vector
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.4.2.0";
-       sha256 = "1gmh96a0vqvxizgs2k66p06jhjcgqrm5phbvahs7b2iavaralpr3";
+       version = "3.5.0.0";
+       sha256 = "00mamdsm4yc8gdvb5zfnhnp7iqkg7h9fd5jgzrbdh9q7isyc6kiy";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-html bytestring conduit containers
          monad-logger persistent resourcet tagged text time transformers
@@ -85877,7 +85161,6 @@ self: {
        ];
        description = "Type-safe EDSL for SQL queries on persistent backends";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ess" = callPackage
@@ -86065,7 +85348,6 @@ self: {
        description = "Repeats from ESTs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "etc" = callPackage
@@ -86141,7 +85423,6 @@ self: {
        description = "Native event-sourcing database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "eternity-timestamped" = callPackage
@@ -86160,7 +85441,6 @@ self: {
        description = "Automatic timestamping for Eternity";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ether" = callPackage
@@ -86190,7 +85470,6 @@ self: {
        description = "Monad transformers and classes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ethereum-analyzer" = callPackage
@@ -86215,7 +85494,6 @@ self: {
        description = "A Ethereum contract analyzer";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ethereum-analyzer-cli" = callPackage
@@ -86244,7 +85522,6 @@ self: {
        description = "A CLI frontend for ethereum-analyzer";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ethereum-analyzer-deps" = callPackage
@@ -86291,7 +85568,6 @@ self: {
        description = "A web frontend for ethereum-analyzer";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ethereum-client-haskell" = callPackage
@@ -86321,7 +85597,6 @@ self: {
        description = "A Haskell version of an Ethereum client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ethereum-merkle-patricia-db" = callPackage
@@ -86347,7 +85622,6 @@ self: {
        description = "A modified Merkle Patricia DB";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ethereum-rlp" = callPackage
@@ -86529,7 +85803,6 @@ self: {
        description = "Bridge for working with evdev and streamly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "eve" = callPackage
@@ -86652,7 +85925,6 @@ self: {
        description = "Event-graph simulation monad transformer";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "event-transformer" = callPackage
@@ -86757,7 +86029,6 @@ self: {
        description = "Postgres implementations for eventful";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "eventful-sql-common" = callPackage
@@ -86801,7 +86072,6 @@ self: {
        description = "SQLite implementations for eventful";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "eventful-test-helpers" = callPackage
@@ -86906,7 +86176,6 @@ self: {
        description = "GetEventStore store implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "eventsource-store-specs" = callPackage
@@ -87062,7 +86331,6 @@ self: {
        description = "A functional pearl on encoding and decoding using question-and-answer strategies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ewe" = callPackage
@@ -87153,8 +86421,8 @@ self: {
      }:
      mkDerivation {
        pname = "exact-real";
-       version = "0.12.4.1";
-       sha256 = "194qx4dq8c9w1nbr4vyalmvp0m1a0q1pxjckg59m7c3fsz9r88jg";
+       version = "0.12.5";
+       sha256 = "1xjj17h8a4sbja7f29xvasgzxzn58i2276ysqqkw8d5dsd5913lb";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base integer-gmp random ];
        testHaskellDepends = [
@@ -87164,6 +86432,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Exact real arithmetic";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "exact-real-positional" = callPackage
@@ -87244,7 +86513,6 @@ self: {
        description = "Exception monad transformer instances for monads-fd classes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "exception-monads-tf" = callPackage
@@ -87480,7 +86748,6 @@ self: {
        description = "Tool to search/generate (haskell) expressions with a given type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "exh" = callPackage
@@ -87571,10 +86838,8 @@ self: {
      }:
      mkDerivation {
        pname = "exiftool";
-       version = "0.1.0.0";
-       sha256 = "015f0ai0x6iv49k4ljz8058509h8z8kkgnp7p9l4s8z54sgqfw8y";
-       revision = "1";
-       editedCabalFile = "06w0g76jddjykbvym2zgcwjsa33alm1rwshhzaw0pqm573mqbp26";
+       version = "0.1.1.0";
+       sha256 = "1z0zk9axilxp3l13n0h83csia4lvahmqkwhlfp9mswbdy8v8fqm0";
        libraryHaskellDepends = [
          aeson base base64 bytestring hashable process scientific
          string-conversions temporary text unordered-containers vector
@@ -87877,6 +87142,8 @@ self: {
          base HUnit QuickCheck random tasty tasty-hunit tasty-quickcheck
        ];
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "exp-extended" = callPackage
@@ -87928,7 +87195,6 @@ self: {
        description = "Extensible Pandoc";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "expat-enumerator" = callPackage
@@ -87945,7 +87211,6 @@ self: {
        description = "Enumerator-based API for Expat";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "experimenter" = callPackage
@@ -88020,7 +87285,6 @@ self: {
        description = "Expiring containers";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "expiring-mvar" = callPackage
@@ -88116,7 +87380,6 @@ self: {
        description = "Extends explicit-iomodes with ByteString operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "explicit-iomodes-text" = callPackage
@@ -88129,7 +87392,6 @@ self: {
        description = "Extends explicit-iomodes with Text operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "explicit-sharing" = callPackage
@@ -88144,7 +87406,6 @@ self: {
        description = "Explicit Sharing of Monadic Effects";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "explore" = callPackage
@@ -88159,7 +87420,6 @@ self: {
        description = "Experimental Plot data Reconstructor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "exploring-interpreters" = callPackage
@@ -88199,8 +87459,8 @@ self: {
     ({ mkDerivation, base, leancheck, template-haskell }:
      mkDerivation {
        pname = "express";
-       version = "0.1.4";
-       sha256 = "0rhrlynb950n2c79s3gz0vyd6b34crlhzlva0w91qbzn9dpfrays";
+       version = "0.1.12";
+       sha256 = "1055qj5ymlzshva94i1gfr6sfmjgv1rhxpx5h76fdq5ia6hkd68z";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base leancheck ];
        benchmarkHaskellDepends = [ base leancheck ];
@@ -88257,7 +87517,6 @@ self: {
        description = "Encode and Decode expressions from Z3 ASTs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "expresso" = callPackage
@@ -88330,7 +87589,6 @@ self: {
        description = "automated printing for extemp speakers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "extend-record-data-th" = callPackage
@@ -88434,7 +87692,6 @@ self: {
        description = "Sums/products/lists/trees which can be extended in other modules";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "extensible-effects" = callPackage
@@ -88619,7 +87876,6 @@ self: {
        description = "Given a hackage package outputs the list of its dependencies";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "extractable-singleton" = callPackage
@@ -88676,14 +87932,15 @@ self: {
      }:
      mkDerivation {
        pname = "extrapolate";
-       version = "0.4.2";
-       sha256 = "1dhljcsqahpyn3khxjbxc15ih1r6kgqcagr5gbpg1d705ji7y3j0";
+       version = "0.4.4";
+       sha256 = "0indkjjahlh1isnal93w3iliy59azgdmi9lmdqz4jkbpd421zava";
        libraryHaskellDepends = [
          base express leancheck speculate template-haskell
        ];
        testHaskellDepends = [ base express leancheck speculate ];
        description = "generalize counter-examples of test properties";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ez-couch" = callPackage
@@ -88815,8 +88072,6 @@ self: {
        ];
        description = "Rational arithmetic in an irrational world";
        license = "GPL";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "facts" = callPackage
@@ -88850,7 +88105,6 @@ self: {
        description = "A driver for the Factual API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fad" = callPackage
@@ -88882,8 +88136,6 @@ self: {
        ];
        description = "Minimal library for music generation and notation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fadno-braids" = callPackage
@@ -88916,8 +88168,6 @@ self: {
        ];
        description = "XML/XSD combinators/schemas/codegen";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fail" = callPackage
@@ -89014,21 +88264,19 @@ self: {
      }) {};
 
   "fake" = callPackage
-    ({ mkDerivation, base, containers, generics-sop, hspec, random
-     , text, time
+    ({ mkDerivation, base, containers, generics-sop, hspec, lens
+     , random, text, time
      }:
      mkDerivation {
        pname = "fake";
-       version = "0.1.1.3";
-       sha256 = "07ciaxbfvhajjdj5sidvy9cxpjfssjkxykrbgnghihrla78pwq1n";
+       version = "0.1.2";
+       sha256 = "03v224sag70w1ibymw1cmi3lwby25wl0254p2gzy7s330fmlbymr";
        libraryHaskellDepends = [
          base containers generics-sop random text time
        ];
-       testHaskellDepends = [ base hspec random text time ];
+       testHaskellDepends = [ base hspec lens random text time ];
        description = "Randomly generated fake data";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fake-type" = callPackage
@@ -89075,6 +88323,8 @@ self: {
        ];
        description = "Library for producing fake data";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fakedata-parser" = callPackage
@@ -89102,6 +88352,7 @@ self: {
        ];
        description = "Fake a -> Gen a";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fakefs" = callPackage
@@ -89146,20 +88397,20 @@ self: {
 
   "faktory" = callPackage
     ({ mkDerivation, aeson, aeson-casing, async, base, bytestring
-     , connection, cryptonite, hspec, markdown-unlit, megaparsec, memory
-     , mtl, network, random, safe-exceptions, scanner, semigroups, text
-     , time, unix, unordered-containers
+     , connection, cryptonite, errors, hspec, markdown-unlit, megaparsec
+     , memory, mtl, network, random, safe-exceptions, scanner
+     , semigroups, text, time, unix, unordered-containers
      }:
      mkDerivation {
        pname = "faktory";
-       version = "1.0.2.1";
-       sha256 = "0n1pcchzb5bxhykdjdri84g0hnbrzd76brpqqx8f6yhwll5vaxsq";
+       version = "1.0.3.0";
+       sha256 = "1igarcl4cvipndg9rhg4lpcrl09mbfkpqcp3prr14izclcldr47y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-casing base bytestring connection cryptonite megaparsec
-         memory mtl network random safe-exceptions scanner semigroups text
-         time unix unordered-containers
+         aeson aeson-casing base bytestring connection cryptonite errors
+         megaparsec memory mtl network random safe-exceptions scanner
+         semigroups text time unix unordered-containers
        ];
        executableHaskellDepends = [ aeson base safe-exceptions ];
        testHaskellDepends = [
@@ -89201,7 +88452,6 @@ self: {
        description = "Falling sand game/cellular automata simulation using regular parallel arrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fallingblocks" = callPackage
@@ -89221,7 +88471,6 @@ self: {
        description = "A fun falling blocks game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "familiar-reflection" = callPackage
@@ -89250,7 +88499,6 @@ self: {
        description = "A family tree library for the Haskell programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "farmhash" = callPackage
@@ -89282,8 +88530,6 @@ self: {
        doHaddock = false;
        description = "Fast functions on integers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fast-builder" = callPackage
@@ -89343,7 +88589,6 @@ self: {
        description = "Integer-to-digits conversion";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fast-downward" = callPackage
@@ -89368,8 +88613,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-logger";
-       version = "3.0.3";
-       sha256 = "0s7hsbii1km7dqkxa27v2fw553wqx6x00204s6iapv2k20ra0qsp";
+       version = "3.0.5";
+       sha256 = "1mbnah6n8lig494523czcd95dfn01f438qai9pf20wpa2gdbz4x6";
        libraryHaskellDepends = [
          array auto-update base bytestring directory easy-file filepath text
          unix-compat unix-time
@@ -89485,8 +88730,6 @@ self: {
        ];
        description = "A simple, mindless parser for fasta files";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fastbayes" = callPackage
@@ -89552,7 +88795,6 @@ self: {
        description = "Fast Internet Relay Chat (IRC) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fastly" = callPackage
@@ -89633,8 +88875,6 @@ self: {
        ];
        description = "A fast open-union type suitable for 100+ contained alternatives";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fathead-util" = callPackage
@@ -89663,7 +88903,6 @@ self: {
        description = "A fault tree analysis library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fay" = callPackage
@@ -89914,16 +89153,16 @@ self: {
 
   "fbrnch" = callPackage
     ({ mkDerivation, aeson, async, base, bugzilla-redhat, bytestring
-     , config-ini, directory, email-validate, extra, filepath, haxr
-     , http-conduit, http-directory, http-query, lens, lens-aeson, mtl
+     , config-ini, directory, email-validate, extra, filepath
+     , http-conduit, http-directory, http-query, koji, lens, lens-aeson
      , network-uri, optparse-applicative, pretty-terminal, process
      , rpmbuild-order, simple-cmd, simple-cmd-args, text, time
      , typed-process, unordered-containers, utf8-string, xdg-basedir
      }:
      mkDerivation {
        pname = "fbrnch";
-       version = "0.8.0";
-       sha256 = "113mpna3crycw2kxsbniah5m71wvswy7v6j2p76ybl1qg50bq075";
+       version = "0.9";
+       sha256 = "1basamg578nyyjl677q3fax31pxcckxvdpw4f48gdmnmlnd9f6vm";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -89931,8 +89170,8 @@ self: {
        ];
        executableHaskellDepends = [
          aeson async base bugzilla-redhat bytestring config-ini directory
-         email-validate extra filepath haxr http-conduit http-directory
-         http-query mtl network-uri optparse-applicative pretty-terminal
+         email-validate extra filepath http-conduit http-directory
+         http-query koji network-uri optparse-applicative pretty-terminal
          process rpmbuild-order simple-cmd simple-cmd-args text time
          typed-process unordered-containers utf8-string xdg-basedir
        ];
@@ -89940,7 +89179,6 @@ self: {
        description = "Build and create Fedora package repos and branches";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fca" = callPackage
@@ -89997,7 +89235,6 @@ self: {
        description = "A faster way to navigate directories using the command line";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fcf-containers" = callPackage
@@ -90013,8 +89250,6 @@ self: {
        testHaskellDepends = [ base doctest first-class-families Glob ];
        description = "Data structures and algorithms for first-class-families";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fcg" = callPackage
@@ -90050,8 +89285,8 @@ self: {
      }:
      mkDerivation {
        pname = "fclabels";
-       version = "2.0.5";
-       sha256 = "0ppvc1s5bvx38y6yd6ib1wxi3y2j438xzl9iqhpr4hc1zwvsi6rx";
+       version = "2.0.5.1";
+       sha256 = "0g4ca5pm2bafsnpari7wqhy79i5qs8njb3kdknk0xsrazdsl174k";
        libraryHaskellDepends = [
          base base-orphans mtl template-haskell transformers
        ];
@@ -90204,7 +89439,6 @@ self: {
        description = "A minimally obtrusive feature flag library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fec" = callPackage
@@ -90267,7 +89501,6 @@ self: {
        description = "Fedora image download tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fedora-packages" = callPackage
@@ -90427,7 +89660,6 @@ self: {
        description = "CI service around gipeda";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "feed-translator" = callPackage
@@ -90450,7 +89682,6 @@ self: {
        description = "Translate syndication feeds";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "feed2lj" = callPackage
@@ -90470,7 +89701,6 @@ self: {
        description = "(unsupported)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "feed2twitter" = callPackage
@@ -90488,7 +89718,6 @@ self: {
        description = "Send posts from a feed to Twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fei-base" = callPackage
@@ -90517,7 +89746,6 @@ self: {
        description = "FFI to MXNet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) mxnet;};
 
   "fei-cocoapi" = callPackage
@@ -90546,7 +89774,6 @@ self: {
        description = "Cocodataset with cocoapi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fei-dataiter" = callPackage
@@ -90574,7 +89801,6 @@ self: {
        description = "mxnet dataiters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) mxnet;};
 
   "fei-datasets" = callPackage
@@ -90605,7 +89831,6 @@ self: {
        description = "Some datasets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fei-examples" = callPackage
@@ -90627,7 +89852,6 @@ self: {
        description = "fei examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fei-modelzoo" = callPackage
@@ -90645,7 +89869,6 @@ self: {
        description = "A collection of standard models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fei-nn" = callPackage
@@ -90668,7 +89891,6 @@ self: {
        description = "Train a neural network with MXNet in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "feldspar-compiler" = callPackage
@@ -90698,7 +89920,6 @@ self: {
        description = "Compiler for the Feldspar language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {gcc_s = null;};
 
   "feldspar-language" = callPackage
@@ -90723,7 +89944,6 @@ self: {
        description = "A functional embedded language for DSP and parallelism";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "feldspar-signal" = callPackage
@@ -90856,7 +90076,6 @@ self: {
        description = "Remote multi-db SQLCipher server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fez-conf" = callPackage
@@ -90960,7 +90179,6 @@ self: {
        description = "Tutorials on ffmpeg usage to play video/audio";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fft" = callPackage
@@ -90969,8 +90187,8 @@ self: {
      }:
      mkDerivation {
        pname = "fft";
-       version = "0.1.8.6";
-       sha256 = "0hjv3r09imb2ypgbz3qj9hf4f36v977z38gdcad3qa0334qdin1f";
+       version = "0.1.8.7";
+       sha256 = "1kkdw08qzsgjgg9z7pf5876cn2hlq22cgvc3k2amidn317n2d6vz";
        libraryHaskellDepends = [
          array base carray ix-shapable storable-complex syb transformers
        ];
@@ -91130,7 +90348,6 @@ self: {
        description = "update statically hosted file in a push stule through socketed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fields" = callPackage
@@ -91147,7 +90364,6 @@ self: {
        description = "First-class record field combinators with infix record field syntax";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fields-json" = callPackage
@@ -91230,12 +90446,12 @@ self: {
      }:
      mkDerivation {
        pname = "file-embed";
-       version = "0.0.13.0";
-       sha256 = "1sp1qq1ph2gr5a8ismn7n9vijnfwjyh38iqn338wa8mxn2mnhc6i";
+       version = "0.0.14.0";
+       sha256 = "1b45yk17339zw53zgp8zb5sjg5xn76kryrb6dkqk747vnbdnf0h5";
        libraryHaskellDepends = [
          base bytestring directory filepath template-haskell
        ];
-       testHaskellDepends = [ base filepath ];
+       testHaskellDepends = [ base bytestring filepath ];
        description = "Use Template Haskell to embed file contents directly";
        license = lib.licenses.bsd3;
      }) {};
@@ -91372,8 +90588,6 @@ self: {
        ];
        description = "A cache system associating values to files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "filediff" = callPackage
@@ -91484,7 +90698,6 @@ self: {
        description = "Reversable and secure encoding of object ids as filepaths";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "filepath-io-access" = callPackage
@@ -91497,7 +90710,6 @@ self: {
        description = "IO Access for filepath";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "filepather" = callPackage
@@ -91515,7 +90727,6 @@ self: {
        description = "Functions on System.FilePath";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "filepattern" = callPackage
@@ -91544,8 +90755,6 @@ self: {
        ];
        description = "Library to process and search large files or a collection of files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "filestore" = callPackage
@@ -91624,7 +90833,6 @@ self: {
        description = "Enumerator-based API for manipulating the filesystem";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "filesystem-trees" = callPackage
@@ -91789,7 +90997,6 @@ self: {
        description = "Find the clumpiness of labels in a tree";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "find-conduit" = callPackage
@@ -91858,7 +91065,6 @@ self: {
        description = "List http/html files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fingertree" = callPackage
@@ -92192,7 +91398,6 @@ self: {
        description = "Defunctionalisation for Yhc Core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fishfood" = callPackage
@@ -92216,8 +91421,6 @@ self: {
        ];
        description = "Calculates file-size frequency-distribution";
        license = "GPL";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fit" = callPackage
@@ -92296,6 +91499,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "fitspec_0_4_10" = callPackage
+    ({ mkDerivation, base, cmdargs, leancheck, pretty, template-haskell
+     }:
+     mkDerivation {
+       pname = "fitspec";
+       version = "0.4.10";
+       sha256 = "1jq4brkwq59hj8fpyfq60hywj9hx82qp0yjvyl0bmwy8jpc6j91k";
+       libraryHaskellDepends = [
+         base cmdargs leancheck template-haskell
+       ];
+       testHaskellDepends = [ base leancheck ];
+       benchmarkHaskellDepends = [ base pretty ];
+       description = "refining property sets for testing Haskell programs";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fix-imports" = callPackage
     ({ mkDerivation, base, containers, cpphs, deepseq, directory
      , filepath, haskell-src-exts, mtl, pretty, process, split
@@ -92317,8 +91537,6 @@ self: {
        ];
        description = "Program to manage the imports of a haskell module";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fix-parser-simple" = callPackage
@@ -92333,7 +91551,6 @@ self: {
        description = "Simple fix-expression parser";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fix-symbols-gitit" = callPackage
@@ -92426,7 +91643,6 @@ self: {
        description = "Unbox instances for the fixed-point package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fixed-point-vector-space" = callPackage
@@ -92439,7 +91655,6 @@ self: {
        description = "vector-space instances for the fixed-point package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fixed-precision" = callPackage
@@ -92585,6 +91800,8 @@ self: {
        libraryHaskellDepends = [ base random ];
        description = "A fixed-precision real number type";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fixedwidth-hs" = callPackage
@@ -92679,7 +91896,6 @@ self: {
        description = "FIX (co)parser";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fixie" = callPackage
@@ -92833,7 +92049,6 @@ self: {
        description = "Support for writing picture to FLAC metadata blocks with JuicyPixels";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flaccuraterip" = callPackage
@@ -92945,7 +92160,6 @@ self: {
        description = "Generate language learning flashcards from video";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flat" = callPackage
@@ -92972,6 +92186,7 @@ self: {
        ];
        description = "Principled and efficient bit-oriented binary serialization";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "flat-maybe" = callPackage
@@ -93052,7 +92267,6 @@ self: {
        description = "Haskell implementation of the FlatBuffers protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flatparse" = callPackage
@@ -93062,8 +92276,8 @@ self: {
      }:
      mkDerivation {
        pname = "flatparse";
-       version = "0.2.0.0";
-       sha256 = "0f7nhspfj90ypylwvya3c3dzvipvc462zyc6191xd1x40wn7qms9";
+       version = "0.2.1.0";
+       sha256 = "19vwh9fqda7fp7nv7sgxafvvc5kckaayizjw2vvmd634ka0bsyrr";
        libraryHaskellDepends = [
          base bytestring containers template-haskell
        ];
@@ -93143,7 +92357,6 @@ self: {
        description = "Flexible wrappers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flexiwrap-smallcheck" = callPackage
@@ -93158,7 +92371,6 @@ self: {
        description = "SmallCheck (Serial) instances for flexiwrap";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flick-duration" = callPackage
@@ -93225,6 +92437,8 @@ self: {
        ];
        description = "Parsing of pilot tracklogs dumped as KML";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "flink-statefulfun" = callPackage
@@ -93291,7 +92505,6 @@ self: {
        description = "f-lite compiler, interpreter and libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flo" = callPackage
@@ -93520,7 +92733,6 @@ self: {
        description = "API integration with Flowdock";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flowdock-rest" = callPackage
@@ -93568,7 +92780,6 @@ self: {
        description = "Analyze 454 flowgrams (.SFF files)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flowlocks-framework" = callPackage
@@ -93602,7 +92813,6 @@ self: {
        description = "Simulate 454 pyrosequencing";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "flp" = callPackage
@@ -93709,7 +92919,6 @@ self: {
        description = "Fltkhs Fluid Examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fltkhs-hello-world" = callPackage
@@ -93768,7 +92977,6 @@ self: {
        description = "A structured logger for Fluentd (Haskell)";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fluent-logger-conduit" = callPackage
@@ -93996,8 +93204,6 @@ self: {
        libraryHaskellDepends = [ base enum-text-rio ];
        description = "Adaptor for getting fmt to work with rio";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fmt-terminal-colors" = callPackage
@@ -94010,8 +93216,6 @@ self: {
        testHaskellDepends = [ ansi-terminal base fmt ];
        description = "ANSI terminal colors formatters for fmt library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fn" = callPackage
@@ -94174,6 +93378,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Composable, streaming, and efficient left folds";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "foldl-exceptions" = callPackage
@@ -94287,7 +93492,6 @@ self: {
        description = "Attoparsec and foldl-transduce integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "folds" = callPackage
@@ -94395,6 +93599,9 @@ self: {
        ];
        description = "Be notified when a file gets appended, solely with what was added. Warning - only works on linux and for files that are strictly appended, like log files.";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "follower" = callPackage
@@ -94414,7 +93621,6 @@ self: {
        description = "Follow Tweets anonymously";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "foma" = callPackage
@@ -94427,8 +93633,6 @@ self: {
        librarySystemDepends = [ foma ];
        description = "Simple Haskell bindings for Foma";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) foma;};
 
   "font-awesome-type" = callPackage
@@ -94472,7 +93676,6 @@ self: {
        description = "Paper soccer, an OpenGL game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "foobar" = callPackage
@@ -94746,7 +93949,6 @@ self: {
        description = "A statically typed, functional programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "format" = callPackage
@@ -94760,7 +93962,6 @@ self: {
        description = "Rendering from and scanning to format strings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "format-numbers" = callPackage
@@ -94791,7 +93992,6 @@ self: {
        description = "A utility for writing the date to dzen2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "formatn" = callPackage
@@ -94898,7 +94098,6 @@ self: {
        description = "A statically typed, functional programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "formlets" = callPackage
@@ -94916,7 +94115,6 @@ self: {
        description = "Formlets implemented in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "formlets-hsp" = callPackage
@@ -94934,7 +94132,6 @@ self: {
        description = "HSP support for Formlets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "formura" = callPackage
@@ -95015,7 +94212,6 @@ self: {
        description = "A simple eDSL for generating arrayForth code";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fortran-src" = callPackage
@@ -95025,8 +94221,8 @@ self: {
      }:
      mkDerivation {
        pname = "fortran-src";
-       version = "0.4.2";
-       sha256 = "03x1pxkpl41r4cf034qj5ls946azbzwdyxkp2nxxymjx0nm2lsv6";
+       version = "0.4.3";
+       sha256 = "0wmyx0zlz2hmbrag8wgm8k33z9p0c2ylf3490hf9nz9b2303wflq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -95067,7 +94263,6 @@ self: {
        description = "Common functions and utils for fortran-src";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fortytwo" = callPackage
@@ -95115,7 +94310,6 @@ self: {
        description = "Foscam File format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "foscam-filename" = callPackage
@@ -95164,17 +94358,14 @@ self: {
        description = "Foscam File format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "foundation" = callPackage
     ({ mkDerivation, base, basement, gauge, ghc-prim }:
      mkDerivation {
        pname = "foundation";
-       version = "0.0.25";
-       sha256 = "0q6kx57ygmznlpf8n499hid4x6mj3180paijx0a8dgi9hh7man61";
-       revision = "1";
-       editedCabalFile = "1ps5sk50sf4b5hd87k3jqykqrwcw2wzyp50rcy6pghd61h83cjg2";
+       version = "0.0.26.1";
+       sha256 = "1hri3raqf6nhh6631gfm2yrkv4039gb0cqfa9cqmjp8bbqv28w5d";
        libraryHaskellDepends = [ base basement ghc-prim ];
        testHaskellDepends = [ base basement ];
        benchmarkHaskellDepends = [ base basement gauge ];
@@ -95214,8 +94405,8 @@ self: {
        pname = "fourmolu";
        version = "0.3.0.0";
        sha256 = "0v89dvcr8l0swj23kkakc39q6lyxjz90rqgwy7m6a5p6iv3h2wms";
-       revision = "1";
-       editedCabalFile = "1n3avdmjqkd2910lhb5spxvjgzb7icln82pcrz3cmkfmjwxnirsc";
+       revision = "2";
+       editedCabalFile = "16ky7wzmnwhzkk18r63ynq78vlrg065z6mp3hqgs92khpjr33g1l";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -95251,7 +94442,6 @@ self: {
        description = "IEEE 754-2019 compliant operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fpco-api" = callPackage
@@ -95336,7 +94526,6 @@ self: {
        description = "Haskell bindings to <https://fplll.github.io/fplll/ fplll>";
        license = lib.licenses.lgpl21Plus;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) fplll;};
 
   "fpnla" = callPackage
@@ -95373,7 +94562,6 @@ self: {
        description = "Example implementations for FPNLA library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fptest" = callPackage
@@ -95512,7 +94700,6 @@ self: {
        description = "A markdown to Frame GUI writer for Pandoc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "franchise" = callPackage
@@ -95616,15 +94803,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "free_5_1_6" = callPackage
+  "free_5_1_7" = callPackage
     ({ mkDerivation, base, comonad, containers, distributive
      , exceptions, indexed-traversable, mtl, profunctors, semigroupoids
      , template-haskell, th-abstraction, transformers, transformers-base
      }:
      mkDerivation {
        pname = "free";
-       version = "5.1.6";
-       sha256 = "017cyz0d89560m3a2g2gpf8imzdzzlrd1rv0m6s2lvj41i2dhzfc";
+       version = "5.1.7";
+       sha256 = "121b81wxjk30nc27ivwzxjxi1dcwc30y0gy8l6wac3dxwvkx2c5j";
        libraryHaskellDepends = [
          base comonad containers distributive exceptions indexed-traversable
          mtl profunctors semigroupoids template-haskell th-abstraction
@@ -95653,8 +94840,6 @@ self: {
        ];
        description = "Free algebras";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "free-categories" = callPackage
@@ -95683,8 +94868,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "efficient data types for free categories and arrows";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "free-concurrent" = callPackage
@@ -95823,7 +95006,6 @@ self: {
        description = "Automatically Generating Counterexamples to Naive Free Theorems";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "free-theorems-seq" = callPackage
@@ -95842,7 +95024,6 @@ self: {
        description = "Taming Selective Strictness";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "free-theorems-seq-webui" = callPackage
@@ -95862,7 +95043,6 @@ self: {
        description = "Taming Selective Strictness";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "free-theorems-webui" = callPackage
@@ -95883,7 +95063,6 @@ self: {
        description = "CGI-based web interface for the free-theorems package";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "free-v-bucks-generator-no-survey" = callPackage
@@ -95974,7 +95153,6 @@ self: {
        description = "A soccer game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "freelude" = callPackage
@@ -95995,7 +95173,6 @@ self: {
        description = "A generalisation of the Category->Functor->Applicative->Monad hierarchy and more";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "freenect" = callPackage
@@ -96051,7 +95228,6 @@ self: {
        description = "Handle effects conversely using monadic conversation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "freer-effects" = callPackage
@@ -96484,8 +95660,6 @@ self: {
        ];
        description = "A reactive frontend web framework";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "frontmatter" = callPackage
@@ -96576,7 +95750,6 @@ self: {
        description = "Program awesome stuff with Gloss and frpnow!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "frpnow-gtk" = callPackage
@@ -96594,7 +95767,6 @@ self: {
        description = "Program GUIs with GTK and frpnow!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "frpnow-gtk3" = callPackage
@@ -96609,7 +95781,6 @@ self: {
        description = "Program GUIs with GTK3 and frpnow!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "frpnow-vty" = callPackage
@@ -96625,7 +95796,6 @@ self: {
        description = "Program terminal applications with vty and frpnow!";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "frquotes" = callPackage
@@ -96868,7 +96038,6 @@ self: {
        description = "A thin layer over USB to communicate with FTDI chips";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ftp-client" = callPackage
@@ -96905,7 +96074,6 @@ self: {
        description = "Transfer file with FTP and FTPS with Conduit";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ftp-conduit" = callPackage
@@ -96955,7 +96123,6 @@ self: {
        description = "Depth-typed functor-based trees, both top-down and bottom-up";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ftshell" = callPackage
@@ -96975,7 +96142,6 @@ self: {
        description = "Shell interface to the FreeTheorems library";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fugue" = callPackage
@@ -97068,7 +96234,6 @@ self: {
        description = "IRC bot for fun, learning, creativity and collaboration";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funbot-client" = callPackage
@@ -97120,7 +96285,6 @@ self: {
        description = "Git hook which sends events to FunBot";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funcmp" = callPackage
@@ -97173,7 +96337,6 @@ self: {
        description = "call-by-value lambda-calculus with meta-programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funcons-simple" = callPackage
@@ -97190,7 +96353,6 @@ self: {
        description = "A modular interpreter for executing SIMPLE funcons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funcons-tools" = callPackage
@@ -97218,7 +96380,6 @@ self: {
        description = "A modular interpreter for executing funcons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funcons-values" = callPackage
@@ -97260,7 +96421,6 @@ self: {
        description = "Combining functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "function-instances-algebra" = callPackage
@@ -97286,7 +96446,6 @@ self: {
        description = "Combinators that allow for a more functional/monadic style of Arrow programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "functional-kmp" = callPackage
@@ -97385,7 +96544,6 @@ self: {
        description = "Functor combinators with tries & zippers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "functor-friends" = callPackage
@@ -97538,7 +96696,6 @@ self: {
        description = "Utility functions for using funflow with nix";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fungll-combinators" = callPackage
@@ -97573,7 +96730,6 @@ self: {
        description = "A unioning file-system using HFuse";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funnyprint" = callPackage
@@ -97590,7 +96746,6 @@ self: {
        description = "funnyPrint function to colorize GHCi output";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funpat" = callPackage
@@ -97626,7 +96781,6 @@ self: {
        description = "A modern DPLL-style SAT solver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "funspection" = callPackage
@@ -97676,6 +96830,8 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Handle exceptions thrown in IO with fused-effects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fused-effects-lens" = callPackage
@@ -97779,7 +96935,6 @@ self: {
        description = "A fused-effects adapter for squeal-postgresql";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fused-effects-th" = callPackage
@@ -97796,8 +96951,6 @@ self: {
        ];
        description = "Template Haskell helpers for fused-effects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fusion" = callPackage
@@ -97884,6 +97037,46 @@ self: {
        license = lib.licenses.isc;
      }) {};
 
+  "futhark_0_19_6" = callPackage
+    ({ mkDerivation, aeson, alex, ansi-terminal, array, base, binary
+     , blaze-html, bmp, bytestring, bytestring-to-vector, cmark-gfm
+     , containers, directory, directory-tree, dlist, file-embed
+     , filepath, free, gitrev, happy, hashable, haskeline
+     , language-c-quote, mainland-pretty, megaparsec, mtl
+     , neat-interpolation, parallel, parser-combinators, pcg-random
+     , process, process-extras, QuickCheck, regex-tdfa, srcloc, tasty
+     , tasty-hunit, tasty-quickcheck, template-haskell, temporary
+     , terminal-size, text, time, transformers, unordered-containers
+     , utf8-string, vector, vector-binary-instances, versions
+     , zip-archive, zlib
+     }:
+     mkDerivation {
+       pname = "futhark";
+       version = "0.19.6";
+       sha256 = "1wpg2ad2xv60xsdvnq3246nps3ldc00n58k7jxmh8lrx5bjzg263";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal array base binary blaze-html bmp bytestring
+         bytestring-to-vector cmark-gfm containers directory directory-tree
+         dlist file-embed filepath free gitrev hashable haskeline
+         language-c-quote mainland-pretty megaparsec mtl neat-interpolation
+         parallel pcg-random process process-extras regex-tdfa srcloc
+         template-haskell temporary terminal-size text time transformers
+         unordered-containers utf8-string vector vector-binary-instances
+         versions zip-archive zlib
+       ];
+       libraryToolDepends = [ alex happy ];
+       executableHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base containers megaparsec mtl parser-combinators QuickCheck tasty
+         tasty-hunit tasty-quickcheck text
+       ];
+       description = "An optimising compiler for a functional, array-oriented language";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "futhask" = callPackage
     ({ mkDerivation, base, directory, raw-strings-qq, split }:
      mkDerivation {
@@ -98094,8 +97287,8 @@ self: {
      }:
      mkDerivation {
        pname = "fuzzyset";
-       version = "0.2.0";
-       sha256 = "0wx8bccfr1k5ax97x5w01mzrpjfwns27xgcr12xf6vbyi7q14mfg";
+       version = "0.2.1";
+       sha256 = "13hzy1qkxd7d7qirxhixi1qyrcjjvx6y3qmbggw5c0mkgckw7gpi";
        libraryHaskellDepends = [
          base data-default text text-metrics unordered-containers vector
        ];
@@ -98171,7 +97364,6 @@ self: {
        description = "FWGL GLFW backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fwgl-javascript" = callPackage
@@ -98188,7 +97380,6 @@ self: {
        description = "FWGL GHCJS backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fx" = callPackage
@@ -98206,13 +97397,12 @@ self: {
     ({ mkDerivation, base, bytestring, serialport }:
      mkDerivation {
        pname = "fxpak";
-       version = "0.1.1";
-       sha256 = "1nnb47i17b4rc2ayzq5qaydx0ss3m8yw02pjwfmipk8398qr8ss5";
+       version = "0.1.2";
+       sha256 = "1mrpbz32aczrh5aw550p1vzvj8zqhcnmj574sc012r3z1c0g1cin";
        libraryHaskellDepends = [ base bytestring serialport ];
        description = "Interface to the FXPak/FXPak Pro USB interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "g-npm" = callPackage
@@ -98261,7 +97451,6 @@ self: {
        description = "Haskell symbolic execution engine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "g2q" = callPackage
@@ -98274,7 +97463,6 @@ self: {
        description = "G2Q allows constraint programming, via writing Haskell predicates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "g4ip" = callPackage
@@ -98324,7 +97512,6 @@ self: {
        description = "General Alignment Clustering Tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "galois-fft" = callPackage
@@ -98352,7 +97539,6 @@ self: {
        description = "FFTs over finite fields";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "galois-field" = callPackage
@@ -98581,7 +97767,6 @@ self: {
        description = "Connect to gargoyle-managed postgresql instances";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gargoyle-postgresql-nix" = callPackage
@@ -98699,7 +97884,6 @@ self: {
        description = "planar graph embedding into a plane";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gc" = callPackage
@@ -98833,7 +98017,6 @@ self: {
        description = "API Wrapping for Coinbase's GDAX exchange";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gdelt" = callPackage
@@ -98875,7 +98058,6 @@ self: {
        description = "Generic diff for the instant-generics library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gdiff-th" = callPackage
@@ -98959,7 +98141,6 @@ self: {
        description = "Parser for the GEDCOM genealogy file format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "geek" = callPackage
@@ -98981,7 +98162,6 @@ self: {
        description = "Geek blog engine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "geek-server" = callPackage
@@ -99006,7 +98186,6 @@ self: {
        description = "Geek blog engine server";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gegl" = callPackage
@@ -99067,7 +98246,6 @@ self: {
        description = "FreeType2 based text rendering for the gelatin realtime rendering system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gelatin-fruity" = callPackage
@@ -99080,7 +98258,6 @@ self: {
        description = "Gelatin's support for rendering TTF outlines, using FontyFruity";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gelatin-gl" = callPackage
@@ -99103,7 +98280,6 @@ self: {
        description = "OpenGL rendering routines for the gelatin-picture graphics EDSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gelatin-sdl2" = callPackage
@@ -99122,7 +98298,6 @@ self: {
        description = "An SDL2 backend for the gelatin renderer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gelatin-shaders" = callPackage
@@ -99136,7 +98311,6 @@ self: {
        description = "Gelatin's OpenGL shaders";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gemini-router" = callPackage
@@ -99190,8 +98364,6 @@ self: {
        ];
        description = "A barebones textboard for the Gemini protocol";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gemstone" = callPackage
@@ -99546,6 +98718,8 @@ self: {
        pname = "generic-deriving";
        version = "1.14";
        sha256 = "00nbnxxkxyjfzj3zf6sxh3im24qv485w4jb1gj36c2wn4gjdbayh";
+       revision = "1";
+       editedCabalFile = "0g17hk01sxv5lmrlnmwqhkk73y3dy3xhy7l9myyg5qnw7hm7iin9";
        libraryHaskellDepends = [
          base containers ghc-prim template-haskell th-abstraction
        ];
@@ -99755,6 +98929,7 @@ self: {
        ];
        description = "Generically derive traversals, lenses and prisms";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "generic-optics-lite" = callPackage
@@ -99772,12 +98947,13 @@ self: {
      }) {};
 
   "generic-override" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, hspec }:
      mkDerivation {
        pname = "generic-override";
-       version = "0.0.0.0";
-       sha256 = "13v5zrhhzjzm4fib5zjsp4sf1hhgx9450mmy4v12h7bgljz8xfd5";
+       version = "0.2.0.0";
+       sha256 = "0hrya5rqdrgl66hm818v6jf11hfrvra242n1sdjypkv13zxzsk6x";
        libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
        description = "Provides functionality for overriding instances for generic derivation";
        license = lib.licenses.bsd3;
      }) {};
@@ -99786,8 +98962,8 @@ self: {
     ({ mkDerivation, aeson, base, generic-override, hspec, text }:
      mkDerivation {
        pname = "generic-override-aeson";
-       version = "0.0.0.0";
-       sha256 = "02xwssk7158k7hhh170knxn7f2s7slcp4sy7a4b3w4cn1r016bhz";
+       version = "0.0.0.2";
+       sha256 = "1hgrxhfssxm4l0c98ffgc20lbzy34bbhzr4vg06vqg51m4620b25";
        libraryHaskellDepends = [ aeson base generic-override ];
        testHaskellDepends = [ aeson base generic-override hspec text ];
        description = "Provides orphan instances necessary for integrating generic-override and aeson";
@@ -99817,15 +98993,13 @@ self: {
      }) {};
 
   "generic-random" = callPackage
-    ({ mkDerivation, base, deepseq, inspection-testing, QuickCheck }:
+    ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "generic-random";
-       version = "1.3.0.1";
-       sha256 = "0d9w7xcmsb31b95fr9d5jwbsajcl1yi4347dlbw4bybil2vjwd7k";
+       version = "1.4.0.0";
+       sha256 = "12rvb1dzrfjc46n9vdcw3yv773iih8vwhrac3hpzq70yp2z77jdw";
        libraryHaskellDepends = [ base QuickCheck ];
-       testHaskellDepends = [
-         base deepseq inspection-testing QuickCheck
-       ];
+       testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Generic random generators for QuickCheck";
        license = lib.licenses.mit;
      }) {};
@@ -99972,7 +99146,6 @@ self: {
        description = "Reimplementation of the gdiff algorithm for generics-mrsop";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "generics-sop" = callPackage
@@ -100047,7 +99220,6 @@ self: {
        description = "Opinionated bootstrapping for Haskell web services";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "genesis-test" = callPackage
@@ -100072,7 +99244,6 @@ self: {
        description = "Opinionated bootstrapping for Haskell web services";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "genetics" = callPackage
@@ -100112,7 +99283,6 @@ self: {
        description = "GenI graphical user interface";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "geni-util" = callPackage
@@ -100137,7 +99307,6 @@ self: {
        description = "Companion tools for use with the GenI surface realiser";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "geniconvert" = callPackage
@@ -100158,7 +99327,6 @@ self: {
        description = "Conversion utility for the GenI generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "genifunctors" = callPackage
@@ -100217,7 +99385,6 @@ self: {
        description = "Simple HTTP server for GenI results";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "genprog" = callPackage
@@ -100932,7 +100099,6 @@ self: {
        description = "Geodetic calculations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "geodetic-types" = callPackage
@@ -100965,6 +100131,8 @@ self: {
        ];
        description = "Terrestrial coordinate systems and geodetic calculations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "geohash" = callPackage
@@ -101045,7 +100213,6 @@ self: {
        description = "Geolite CSV Parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "geom2d" = callPackage
@@ -101084,6 +100251,24 @@ self: {
        broken = true;
      }) {inherit (pkgs) geos;};
 
+  "gerrit" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , http-client, http-client-tls, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "gerrit";
+       version = "0.1.0.0";
+       sha256 = "03lcf9xvyhypzkrs6lv7dnwsxnn52vnnl6mhsbbhmpv2bf59whq2";
+       libraryHaskellDepends = [
+         aeson base bytestring containers http-client http-client-tls text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory tasty tasty-hunit
+       ];
+       description = "A gerrit client library";
+       license = lib.licenses.asl20;
+     }) {};
+
   "getemx" = callPackage
     ({ mkDerivation, base, curl, directory, filepath, haskell98, hxt
      , mtl, old-locale, process, time
@@ -101101,7 +100286,6 @@ self: {
        description = "Fetch from emusic using .emx files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "getflag" = callPackage
@@ -101459,8 +100643,6 @@ self: {
        ];
        description = "An AST and compiler plugin for dumping GHC's Core representation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghc-dump-tree" = callPackage
@@ -101509,8 +100691,6 @@ self: {
        ];
        description = "Handy tools for working with ghc-dump dumps";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghc-dup" = callPackage
@@ -101532,8 +100712,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-events";
-       version = "0.16.0";
-       sha256 = "0cr6aj4v9j2fadwhhifjlbg4anyc05phfmy3pvd9h7gn12a2ydr9";
+       version = "0.17.0";
+       sha256 = "059csl9j391iqbxaia9kawsksgbiy3ffdk9pqabb68gqrn0b7icc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -101722,7 +100902,6 @@ self: {
        description = "Find the Haddock documentation for a symbol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghc-instances" = callPackage
@@ -101745,7 +100924,6 @@ self: {
        description = "Easily import all instances contained in GHC distributed libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghc-justdoit" = callPackage
@@ -101957,7 +101135,6 @@ self: {
        description = "Happy Haskell Hacking";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghc-mtl" = callPackage
@@ -102029,8 +101206,8 @@ self: {
     ({ mkDerivation, base, cpphs, ghc, happy }:
      mkDerivation {
        pname = "ghc-parser";
-       version = "0.2.2.0";
-       sha256 = "1pygg0538nah42ll0zai081y8hv8z7lwl0vr9l2k273i4fdif7hb";
+       version = "0.2.3.0";
+       sha256 = "1sm93n6w2zqkp4dhr604bk67sis1rb6jb6imsxr64vjfm7bkigln";
        libraryHaskellDepends = [ base ghc ];
        libraryToolDepends = [ cpphs happy ];
        description = "Haskell source parser from GHC";
@@ -102333,6 +101510,29 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "ghc-tags" = callPackage
+    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
+     , containers, deepseq, directory, filepath, ghc-lib, ghc-paths
+     , optparse-applicative, process, stm, temporary, text, time
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "ghc-tags";
+       version = "1.3";
+       sha256 = "1fshj5zdnhr879c9q48mb89f1fidc2skgmgi385sa5r8wxn1ili0";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async attoparsec base bytestring containers deepseq directory
+         filepath ghc-lib ghc-paths optparse-applicative process stm
+         temporary text time unordered-containers vector yaml
+       ];
+       description = "Utility for generating ctags and etags with GHC API";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ghc-tags-core" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cpphs, criterion
      , deepseq, directory, filepath, filepath-bytestring, ghc, lattices
@@ -102342,8 +101542,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-tags-core";
-       version = "0.2.4.1";
-       sha256 = "0d1srd72ajp2csyic6wpj6i7818rimqbcg5c3lxj76cz9zpjr1g8";
+       version = "0.3.0.0";
+       sha256 = "035k7akyhhn5jf2231ahplgggymc8h8k2kxia6i22v9cv976zgna";
        libraryHaskellDepends = [
          attoparsec base bytestring directory filepath-bytestring ghc mtl
          pipes pipes-attoparsec pipes-bytestring text transformers
@@ -102372,8 +101572,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-tags-plugin";
-       version = "0.2.4.1";
-       sha256 = "1hzv3s6pys1cqwj3hs1xww52v5yapisw9y3d5fmxzh0s6nawpxf2";
+       version = "0.3.0.0";
+       sha256 = "1d39jnz79vlxqqg2bw3cj1djii3bkmayqs4sm2a6bs5xzsplc5w3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -102384,7 +101584,6 @@ self: {
        description = "A compiler plugin which generates tags file from GHC parsed syntax tree";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghc-tcplugins-extra_0_3_2" = callPackage
@@ -102572,7 +101771,6 @@ self: {
        description = "Live visualization of data structures in GHCi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghcflags" = callPackage
@@ -102628,8 +101826,6 @@ self: {
        ];
        description = "ghci-dap is a GHCi having DAP interface";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghci-diagrams" = callPackage
@@ -102737,7 +101933,6 @@ self: {
        description = "colored pretty-printing within ghci";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghci-websockets" = callPackage
@@ -102783,28 +101978,31 @@ self: {
      }) {};
 
   "ghcide" = callPackage
-    ({ mkDerivation, aeson, array, async, base, base16-bytestring
-     , binary, bytestring, bytestring-encoding, case-insensitive
-     , containers, cryptohash-sha1, data-default, deepseq, dependent-map
-     , dependent-sum, Diff, directory, dlist, extra, filepath
-     , fingertree, fuzzy, ghc, ghc-boot, ghc-boot-th, ghc-check
-     , ghc-exactprint, ghc-paths, ghc-typelits-knownnat, gitrev, Glob
-     , haddock-library, hashable, heapsize, hie-bios, hie-compat, hiedb
-     , hls-plugin-api, hp2pretty, hslogger, implicit-hie
-     , implicit-hie-cradle, lens, lsp, lsp-test, lsp-types, mtl
-     , network-uri, opentelemetry, optparse-applicative, parallel
-     , prettyprinter, prettyprinter-ansi-terminal, process, QuickCheck
-     , quickcheck-instances, record-dot-preprocessor, record-hasfield
-     , regex-tdfa, retrie, rope-utf16-splay, safe, safe-exceptions
-     , shake, shake-bench, sorted-list, sqlite-simple, stm, syb, tasty
-     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
-     , tasty-rerun, text, time, transformers, unix, unliftio
-     , unliftio-core, unordered-containers, utf8-string, vector, yaml
+    ({ mkDerivation, aeson, aeson-pretty, array, async, base
+     , base16-bytestring, binary, bytestring, bytestring-encoding
+     , case-insensitive, containers, cryptohash-sha1, data-default
+     , deepseq, dependent-map, dependent-sum, Diff, directory, dlist
+     , extra, filepath, fingertree, fuzzy, ghc, ghc-boot, ghc-boot-th
+     , ghc-check, ghc-exactprint, ghc-paths, ghc-trace-events
+     , ghc-typelits-knownnat, gitrev, Glob, haddock-library, hashable
+     , heapsize, hie-bios, hie-compat, hiedb, hls-plugin-api, hp2pretty
+     , hslogger, implicit-hie, implicit-hie-cradle, lens, lsp, lsp-test
+     , lsp-types, mtl, network-uri, opentelemetry, optparse-applicative
+     , parallel, prettyprinter, prettyprinter-ansi-terminal, process
+     , QuickCheck, quickcheck-instances, record-dot-preprocessor
+     , record-hasfield, regex-tdfa, retrie, rope-utf16-splay, safe
+     , safe-exceptions, shake, shake-bench, sorted-list, sqlite-simple
+     , stm, syb, tasty, tasty-expected-failure, tasty-hunit
+     , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
+     , unliftio, unliftio-core, unordered-containers, utf8-string
+     , vector, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "1.0.0.0";
-       sha256 = "15hz49d68229bnp8g7q1ac60ryd4zbyc1rbxsfaq5lb586ps82k8";
+       version = "1.2.0.2";
+       sha256 = "0r3n23i4b51bb92q6pch9knj079a26jbz0q70qfpv66154d00wld";
+       revision = "1";
+       editedCabalFile = "1hv74yx0x6hh506kwg7ygkajkcczfn3l00f8rc4jnr3hkhkm5v85";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -102812,27 +102010,29 @@ self: {
          bytestring-encoding case-insensitive containers cryptohash-sha1
          data-default deepseq dependent-map dependent-sum Diff directory
          dlist extra filepath fingertree fuzzy ghc ghc-boot ghc-boot-th
-         ghc-check ghc-exactprint ghc-paths Glob haddock-library hashable
-         heapsize hie-bios hie-compat hiedb hls-plugin-api hslogger
-         implicit-hie-cradle lens lsp lsp-types mtl network-uri
-         opentelemetry parallel prettyprinter prettyprinter-ansi-terminal
-         regex-tdfa retrie rope-utf16-splay safe safe-exceptions shake
-         sorted-list sqlite-simple stm syb text time transformers unix
-         unliftio unliftio-core unordered-containers utf8-string vector
+         ghc-check ghc-exactprint ghc-paths ghc-trace-events Glob
+         haddock-library hashable heapsize hie-bios hie-compat hiedb
+         hls-plugin-api hslogger implicit-hie-cradle lens lsp lsp-types mtl
+         network-uri opentelemetry optparse-applicative parallel
+         prettyprinter prettyprinter-ansi-terminal regex-tdfa retrie
+         rope-utf16-splay safe safe-exceptions shake sorted-list
+         sqlite-simple stm syb text time transformers unix unliftio
+         unliftio-core unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
-         aeson base bytestring containers data-default directory extra
-         filepath ghc gitrev hashable heapsize hie-bios hiedb hls-plugin-api
-         lens lsp lsp-test lsp-types optparse-applicative process
-         safe-exceptions shake text unordered-containers
+         aeson aeson-pretty base bytestring containers data-default
+         directory extra filepath ghc gitrev hashable heapsize hie-bios
+         hiedb hls-plugin-api lens lsp lsp-test lsp-types
+         optparse-applicative process safe-exceptions shake text
+         unordered-containers
        ];
        testHaskellDepends = [
-         aeson base binary bytestring containers data-default directory
-         extra filepath ghc ghc-typelits-knownnat haddock-library
+         aeson async base binary bytestring containers data-default
+         directory extra filepath ghc ghc-typelits-knownnat haddock-library
          hls-plugin-api lens lsp lsp-test lsp-types network-uri
          optparse-applicative process QuickCheck quickcheck-instances
-         record-dot-preprocessor record-hasfield rope-utf16-splay safe
-         safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+         record-dot-preprocessor record-hasfield regex-tdfa rope-utf16-splay
+         safe safe-exceptions shake tasty tasty-expected-failure tasty-hunit
          tasty-quickcheck tasty-rerun text
        ];
        testToolDepends = [ implicit-hie ];
@@ -102843,9 +102043,10 @@ self: {
        benchmarkToolDepends = [ hp2pretty implicit-hie ];
        description = "The core of an IDE";
        license = lib.licenses.asl20;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
-  "ghcide_1_2_0_2" = callPackage
+  "ghcide_1_3_0_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, async, base
      , base16-bytestring, binary, bytestring, bytestring-encoding
      , case-insensitive, containers, cryptohash-sha1, data-default
@@ -102853,22 +102054,22 @@ self: {
      , extra, filepath, fingertree, fuzzy, ghc, ghc-boot, ghc-boot-th
      , ghc-check, ghc-exactprint, ghc-paths, ghc-trace-events
      , ghc-typelits-knownnat, gitrev, Glob, haddock-library, hashable
-     , heapsize, hie-bios, hie-compat, hiedb, hls-plugin-api, hp2pretty
-     , hslogger, implicit-hie, implicit-hie-cradle, lens, lsp, lsp-test
-     , lsp-types, mtl, network-uri, opentelemetry, optparse-applicative
-     , parallel, prettyprinter, prettyprinter-ansi-terminal, process
-     , QuickCheck, quickcheck-instances, record-dot-preprocessor
-     , record-hasfield, regex-tdfa, retrie, rope-utf16-splay, safe
-     , safe-exceptions, shake, shake-bench, sorted-list, sqlite-simple
-     , stm, syb, tasty, tasty-expected-failure, tasty-hunit
-     , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
-     , unliftio, unliftio-core, unordered-containers, utf8-string
-     , vector, yaml
+     , heapsize, hie-bios, hie-compat, hiedb, hls-graph, hls-plugin-api
+     , hp2pretty, hslogger, implicit-hie, implicit-hie-cradle, lens, lsp
+     , lsp-test, lsp-types, mtl, network-uri, opentelemetry
+     , optparse-applicative, parallel, prettyprinter
+     , prettyprinter-ansi-terminal, process, QuickCheck
+     , quickcheck-instances, record-dot-preprocessor, record-hasfield
+     , regex-tdfa, retrie, rope-utf16-splay, safe, safe-exceptions
+     , shake, shake-bench, sorted-list, sqlite-simple, stm, syb, tasty
+     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
+     , tasty-rerun, text, time, transformers, unix, unliftio
+     , unliftio-core, unordered-containers, utf8-string, vector, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "1.2.0.2";
-       sha256 = "0r3n23i4b51bb92q6pch9knj079a26jbz0q70qfpv66154d00wld";
+       version = "1.3.0.0";
+       sha256 = "1rmgrf4is669k5h5hbc9ryp2fc26fcacikzccjyg47jsc967ls9i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -102878,28 +102079,28 @@ self: {
          dlist extra filepath fingertree fuzzy ghc ghc-boot ghc-boot-th
          ghc-check ghc-exactprint ghc-paths ghc-trace-events Glob
          haddock-library hashable heapsize hie-bios hie-compat hiedb
-         hls-plugin-api hslogger implicit-hie-cradle lens lsp lsp-types mtl
-         network-uri opentelemetry optparse-applicative parallel
-         prettyprinter prettyprinter-ansi-terminal regex-tdfa retrie
-         rope-utf16-splay safe safe-exceptions shake sorted-list
+         hls-graph hls-plugin-api hslogger implicit-hie-cradle lens lsp
+         lsp-types mtl network-uri opentelemetry optparse-applicative
+         parallel prettyprinter prettyprinter-ansi-terminal regex-tdfa
+         retrie rope-utf16-splay safe safe-exceptions sorted-list
          sqlite-simple stm syb text time transformers unix unliftio
          unliftio-core unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
          aeson aeson-pretty base bytestring containers data-default
          directory extra filepath ghc gitrev hashable heapsize hie-bios
-         hiedb hls-plugin-api lens lsp lsp-test lsp-types
+         hiedb hls-graph hls-plugin-api lens lsp lsp-test lsp-types
          optparse-applicative process safe-exceptions shake text
          unordered-containers
        ];
        testHaskellDepends = [
          aeson async base binary bytestring containers data-default
          directory extra filepath ghc ghc-typelits-knownnat haddock-library
-         hls-plugin-api lens lsp lsp-test lsp-types network-uri
+         hls-graph hls-plugin-api lens lsp lsp-test lsp-types network-uri
          optparse-applicative process QuickCheck quickcheck-instances
          record-dot-preprocessor record-hasfield regex-tdfa rope-utf16-splay
          safe safe-exceptions shake tasty tasty-expected-failure tasty-hunit
-         tasty-quickcheck tasty-rerun text
+         tasty-quickcheck tasty-rerun text unordered-containers
        ];
        testToolDepends = [ implicit-hie ];
        benchmarkHaskellDepends = [
@@ -102910,6 +102111,7 @@ self: {
        description = "The core of an IDE";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "ghcjs-ajax" = callPackage
@@ -102923,33 +102125,16 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "ghcjs-base_0_2_0_0" = callPackage
-    ({ mkDerivation, aeson, array, attoparsec, base, binary, bytestring
-     , containers, deepseq, directory, dlist, ghc-prim, ghcjs-prim
-     , hashable, HUnit, integer-gmp, primitive, QuickCheck
-     , quickcheck-unicode, random, scientific, test-framework
-     , test-framework-hunit, test-framework-quickcheck2, text, time
-     , transformers, unordered-containers, vector
-     }:
+  "ghcjs-base_0_2_0_3" = callPackage
+    ({ mkDerivation }:
      mkDerivation {
        pname = "ghcjs-base";
-       version = "0.2.0.0";
-       sha256 = "0wvmxr33a3bsv1mh8lb10haapvcykp9200ppbdpjiz2wihnb4mk8";
-       libraryHaskellDepends = [
-         aeson attoparsec base binary bytestring containers deepseq dlist
-         ghc-prim ghcjs-prim hashable integer-gmp primitive scientific text
-         time transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         array base bytestring deepseq directory ghc-prim ghcjs-prim HUnit
-         primitive QuickCheck quickcheck-unicode random test-framework
-         test-framework-hunit test-framework-quickcheck2 text
-       ];
+       version = "0.2.0.3";
+       sha256 = "09sv5p57l8jczbycasbb06h4qsifi5fagxwsr665yil1gickfxyg";
        description = "base library for GHCJS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {ghcjs-prim = null;};
+     }) {};
 
   "ghcjs-base-stub" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, containers, deepseq
@@ -103014,7 +102199,9 @@ self: {
        ];
        description = "GHCJS DOM Hello World, an example package";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "ghcjs-dom-jsaddle" = callPackage
@@ -103090,7 +102277,6 @@ self: {
        description = "Client-side web EDSL for transient nodes running in the web browser";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghcjs-perch" = callPackage
@@ -103216,7 +102402,7 @@ self: {
      }) {};
 
   "ghcup" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ascii-string, async, base
+    ({ mkDerivation, aeson, aeson-pretty, async, base
      , base16-bytestring, binary, bytestring, bz2, case-insensitive
      , casing, concurrent-output, containers, cryptohash-sha256
      , generic-arbitrary, generics-sop, haskus-utils-types
@@ -103233,15 +102419,13 @@ self: {
      }:
      mkDerivation {
        pname = "ghcup";
-       version = "0.1.14.1";
-       sha256 = "1lx6ahn4mvjzs3x4qm32sdn1n8w4v7jqj2jslvan008zk664d5l2";
-       revision = "1";
-       editedCabalFile = "0a9c2ha61mlz9ci652djy4vmmzi4s1g8rwl1a2miymrw5b36zsmq";
+       version = "0.1.14.2";
+       sha256 = "1k18ira2i2ja4hd65fdxk3ab21xzh4fvd982q2rfjshzkds1a3hv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ascii-string async base base16-bytestring binary bytestring
-         bz2 case-insensitive casing concurrent-output containers
+         aeson async base base16-bytestring binary bytestring bz2
+         case-insensitive casing concurrent-output containers
          cryptohash-sha256 generics-sop haskus-utils-types
          haskus-utils-variant hpath hpath-directory hpath-filepath hpath-io
          hpath-posix libarchive lzma-static megaparsec monad-logger mtl
@@ -103266,8 +102450,7 @@ self: {
        ];
        description = "ghc toolchain installer";
        license = lib.licenses.lgpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "ghczdecode" = callPackage
@@ -103317,7 +102500,6 @@ self: {
        description = "Trivial routines for inspecting git repositories";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gi-atk" = callPackage
@@ -103420,7 +102602,6 @@ self: {
        description = "Bridge between packages gi-* and cairo-core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gi-cairo-connector" = callPackage
@@ -103472,6 +102653,9 @@ self: {
        libraryPkgconfigDepends = [ libdbusmenu ];
        description = "Dbusmenu bindings";
        license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) libdbusmenu;};
 
   "gi-dbusmenu_0_4_9" = callPackage
@@ -103491,6 +102675,9 @@ self: {
        libraryPkgconfigDepends = [ libdbusmenu ];
        description = "Dbusmenu bindings";
        license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libdbusmenu;};
 
@@ -103516,6 +102703,9 @@ self: {
        libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
        description = "DbusmenuGtk bindings";
        license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
   "gi-dbusmenugtk3_0_4_10" = callPackage
@@ -103540,6 +102730,9 @@ self: {
        libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
        description = "DbusmenuGtk bindings";
        license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
@@ -103567,6 +102760,31 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
+  "gi-gdk_3_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
+     , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk3
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-gdk";
+       version = "3.0.24";
+       sha256 = "17slysv7zj3nbzh302w8jkvcfkvwfk5s80n99lqhggd6lnhf5fjx";
+       setupHaskellDepends = [
+         base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango
+         haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cairo gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 ];
+       description = "Gdk bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) gtk3;};
+
   "gi-gdk_4_0_3" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk4
@@ -103657,15 +102875,15 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdkx11_4_0_3" = callPackage
+  "gi-gdkx11_3_0_11" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
-     , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk4-x11, haskell-gi
+     , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk3, haskell-gi
      , haskell-gi-base, haskell-gi-overloading, text, transformers
      }:
      mkDerivation {
        pname = "gi-gdkx11";
-       version = "4.0.3";
-       sha256 = "13m2dvab8hqwa7h648asjg3llvdnpwdf1rli9i44nb6n1dfk7jbv";
+       version = "3.0.11";
+       sha256 = "07r47fpx6rvsahgnv8g741fl6h1s6y1xrlyacbpc3d8cv7x4aax2";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-gio gi-gobject gi-xlib haskell-gi
        ];
@@ -103674,34 +102892,36 @@ self: {
          gi-xlib haskell-gi haskell-gi-base haskell-gi-overloading text
          transformers
        ];
-       libraryPkgconfigDepends = [ gtk4-x11 ];
+       libraryPkgconfigDepends = [ gtk3 ];
        description = "GdkX11 bindings";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-     }) {gtk4-x11 = null;};
+     }) {inherit (pkgs) gtk3;};
 
-  "gi-ggit" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
-     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, libgit2-glib, text, transformers
+  "gi-gdkx11_4_0_3" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
+     , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk4-x11, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
      }:
      mkDerivation {
-       pname = "gi-ggit";
-       version = "1.0.9";
-       sha256 = "0qvmppdby40ncd9alnnk8ang90qcaj00c0g0nrq0s0m1ynar8ccd";
+       pname = "gi-gdkx11";
+       version = "4.0.3";
+       sha256 = "13m2dvab8hqwa7h648asjg3llvdnpwdf1rli9i44nb6n1dfk7jbv";
        setupHaskellDepends = [
-         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+         base Cabal gi-cairo gi-gdk gi-gio gi-gobject gi-xlib haskell-gi
        ];
        libraryHaskellDepends = [
-         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
+         base bytestring containers gi-cairo gi-gdk gi-gio gi-gobject
+         gi-xlib haskell-gi haskell-gi-base haskell-gi-overloading text
+         transformers
        ];
-       libraryPkgconfigDepends = [ libgit2-glib ];
-       description = "libgit2-glib bindings";
+       libraryPkgconfigDepends = [ gtk4-x11 ];
+       description = "GdkX11 bindings";
        license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs) libgit2-glib;};
+       hydraPlatforms = lib.platforms.none;
+     }) {gtk4-x11 = null;};
 
-  "gi-ggit_1_0_10" = callPackage
+  "gi-ggit" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
      , haskell-gi-overloading, libgit2-glib, text, transformers
@@ -103720,7 +102940,9 @@ self: {
        libraryPkgconfigDepends = [ libgit2-glib ];
        description = "libgit2-glib bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) libgit2-glib;};
 
   "gi-gio" = callPackage
@@ -103769,25 +102991,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-girepository";
-       version = "1.0.23";
-       sha256 = "0a8sis3zayiywi7mgs1g4p7nr9szv392j7bimq5nvva04lj6sdzc";
-       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-glib gi-gobject haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ gobject-introspection ];
-       description = "GIRepository (gobject-introspection) bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs) gobject-introspection;};
-
-  "gi-girepository_1_0_24" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
-     , gi-gobject, gobject-introspection, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-girepository";
        version = "1.0.24";
        sha256 = "1sj68k3wih2345gkmv0jb1smka73pxnjy8jwmk2ifgl407f3hhfw";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
@@ -103798,7 +103001,6 @@ self: {
        libraryPkgconfigDepends = [ gobject-introspection ];
        description = "GIRepository (gobject-introspection) bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gobject-introspection;};
 
   "gi-glib" = callPackage
@@ -103963,7 +103165,6 @@ self: {
        description = "Gsk bindings";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gtk4;};
 
   "gi-gst" = callPackage
@@ -103973,25 +103174,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gst";
-       version = "1.0.23";
-       sha256 = "0w4xscgd49d6d00gvsqc210r63c0wj748dqa5ypppr4mzllsm0qv";
-       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-glib gi-gobject haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ gstreamer ];
-       description = "GStreamer bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs.gst_all_1) gstreamer;};
-
-  "gi-gst_1_0_24" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
-     , gi-gobject, gstreamer, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-gst";
        version = "1.0.24";
        sha256 = "01xbjxwipg1s93fkswag8gp8s696z1l1gaazl2w4wnpyykx4hh8s";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
@@ -104002,7 +103184,6 @@ self: {
        libraryPkgconfigDepends = [ gstreamer ];
        description = "GStreamer bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs.gst_all_1) gstreamer;};
 
   "gi-gstaudio" = callPackage
@@ -104024,8 +103205,6 @@ self: {
        libraryPkgconfigDepends = [ gst-plugins-base ];
        description = "GStreamerAudio bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
   "gi-gstbase" = callPackage
@@ -104035,27 +103214,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstbase";
-       version = "1.0.23";
-       sha256 = "0im25z9pf9j0cxj0b6lbbr3lis9kbvzzvzns65cmargbh1018959";
-       setupHaskellDepends = [
-         base Cabal gi-glib gi-gobject gi-gst haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-glib gi-gobject gi-gst haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ gst-plugins-base ];
-       description = "GStreamerBase bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
-
-  "gi-gstbase_1_0_24" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
-     , gi-gobject, gi-gst, gst-plugins-base, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-gstbase";
        version = "1.0.24";
        sha256 = "0b8k2xk3ha6b79kkw72kgdmj8vjyh40r26saavin54gznlgd5xh8";
        setupHaskellDepends = [
@@ -104068,7 +103226,6 @@ self: {
        libraryPkgconfigDepends = [ gst-plugins-base ];
        description = "GStreamerBase bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
   "gi-gstpbutils" = callPackage
@@ -104094,7 +103251,6 @@ self: {
        description = "GStreamer Plugins Base Utils bindings";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {gstreamer-pbutils = null;};
 
   "gi-gsttag" = callPackage
@@ -104127,8 +103283,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstvideo";
-       version = "1.0.23";
-       sha256 = "1kb09kal08x7nznc0g8c2n9jfijapdndbnsfs5cvz0p9smvd092i";
+       version = "1.0.24";
+       sha256 = "0qjfjk5jnpy1f4grn8i68kwdd1yvnq1yc55rk6yxhlj7wks1d35h";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -104141,29 +103297,31 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
-  "gi-gstvideo_1_0_24" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
-     , gi-gobject, gi-gst, gi-gstbase, gst-plugins-base, haskell-gi
-     , haskell-gi-base, haskell-gi-overloading, text, transformers
+  "gi-gtk" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
+     , gi-pango, gtk3, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
      }:
      mkDerivation {
-       pname = "gi-gstvideo";
-       version = "1.0.24";
-       sha256 = "0qjfjk5jnpy1f4grn8i68kwdd1yvnq1yc55rk6yxhlj7wks1d35h";
+       pname = "gi-gtk";
+       version = "3.0.36";
+       sha256 = "0bzb3xrax5k5r5fd6vv4by6hprmk77qrqr9mqn3dxqm6an8jwjn9";
        setupHaskellDepends = [
-         base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
+         base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-pango haskell-gi
        ];
        libraryHaskellDepends = [
-         base bytestring containers gi-glib gi-gobject gi-gst gi-gstbase
-         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
+         gi-gio gi-glib gi-gobject gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
        ];
-       libraryPkgconfigDepends = [ gst-plugins-base ];
-       description = "GStreamerVideo bindings";
+       libraryPkgconfigDepends = [ gtk3 ];
+       description = "Gtk bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
-     }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
+     }) {inherit (pkgs) gtk3;};
 
-  "gi-gtk" = callPackage
+  "gi-gtk_3_0_37" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
      , gi-pango, gtk3, haskell-gi, haskell-gi-base
@@ -104171,8 +103329,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk";
-       version = "3.0.36";
-       sha256 = "0bzb3xrax5k5r5fd6vv4by6hprmk77qrqr9mqn3dxqm6an8jwjn9";
+       version = "3.0.37";
+       sha256 = "1psg789lrpcnrwh1y80y7s09hcxl3hihi0gwsmd7j3v731dp7a0k";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
          gi-gobject gi-pango haskell-gi
@@ -104185,6 +103343,7 @@ self: {
        libraryPkgconfigDepends = [ gtk3 ];
        description = "Gtk bindings";
        license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gtk3;};
 
   "gi-gtk_4_0_4" = callPackage
@@ -104349,30 +103508,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtksource";
-       version = "3.0.23";
-       sha256 = "13rsxjbl62q8zhwqr8jm2fh5njzfa86izqwag4d6aw8xi71wqfrn";
-       setupHaskellDepends = [
-         base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
-         gi-gobject gi-gtk gi-pango haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
-         gi-gio gi-glib gi-gobject gi-gtk gi-pango haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ gtksourceview3 ];
-       description = "GtkSource bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs) gtksourceview3;};
-
-  "gi-gtksource_3_0_24" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
-     , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
-     , gi-gtk, gi-pango, gtksourceview3, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-gtksource";
        version = "3.0.24";
        sha256 = "0bnwqcn7y5a3z3lkl9l886m9albvc602nb7qsh2jkiilf0ng64dp";
        setupHaskellDepends = [
@@ -104387,7 +103522,6 @@ self: {
        libraryPkgconfigDepends = [ gtksourceview3 ];
        description = "GtkSource bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) gtksourceview3;};
 
   "gi-handy" = callPackage
@@ -104462,27 +103596,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ibus";
-       version = "1.5.2";
-       sha256 = "14chw0qhzdxixsqsn2ra31z561kn2zclk15b7hfpfzayqr6dqci1";
-       setupHaskellDepends = [
-         base Cabal gi-gio gi-glib gi-gobject haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ ibus ];
-       description = "IBus bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs) ibus;};
-
-  "gi-ibus_1_5_3" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
-     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, ibus, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-ibus";
        version = "1.5.3";
        sha256 = "1gbpbxcdl9f5di2vpnkx3zsy54dkfhz81h3yxss91r65lp9fwrm8";
        setupHaskellDepends = [
@@ -104495,7 +103608,9 @@ self: {
        libraryPkgconfigDepends = [ ibus ];
        description = "IBus bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) ibus;};
 
   "gi-javascriptcore" = callPackage
@@ -104515,7 +103630,6 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "JavaScriptCore bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-javascriptcore_4_0_23" = callPackage
@@ -104545,27 +103659,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-notify";
-       version = "0.7.22";
-       sha256 = "0j5cxx9dsxh2wafw4xa7yasr6n98h2qwpm1y08nm7m6i0kwrksap";
-       setupHaskellDepends = [
-         base Cabal gi-gdkpixbuf gi-glib gi-gobject haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-gdkpixbuf gi-glib gi-gobject
-         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ libnotify ];
-       description = "Libnotify bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs) libnotify;};
-
-  "gi-notify_0_7_23" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gdkpixbuf
-     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, libnotify, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-notify";
        version = "0.7.23";
        sha256 = "00p10lw9v9q8mh6630ijpz8smnpz5hiiw8kxk1fv8497akssxjsh";
        setupHaskellDepends = [
@@ -104578,7 +103671,6 @@ self: {
        libraryPkgconfigDepends = [ libnotify ];
        description = "Libnotify bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libnotify;};
 
   "gi-ostree" = callPackage
@@ -104588,30 +103680,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ostree";
-       version = "1.0.13";
-       sha256 = "07k02mffidw18f104crmhayr5nf3v5xcldc8fbmxdinp7wik5c7f";
-       setupHaskellDepends = [
-         base Cabal gi-gio gi-glib gi-gobject haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ ostree ];
-       description = "OSTree bindings";
-       license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
-     }) {inherit (pkgs) ostree;};
-
-  "gi-ostree_1_0_14" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
-     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, ostree, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-ostree";
        version = "1.0.14";
        sha256 = "08jglqkq0h497iv83rc0br83qrf000gm202hp0j1pnhwvdgp7d0f";
        setupHaskellDepends = [
@@ -104627,7 +103695,6 @@ self: {
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) ostree;};
 
   "gi-pango" = callPackage
@@ -104689,32 +103756,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-pangocairo";
-       version = "1.0.24";
-       sha256 = "1yya5gsqrkagmm33rsasshlj691nmax47fqdn1p2rnf4aqx1jcqr";
-       setupHaskellDepends = [
-         base Cabal gi-cairo gi-glib gi-gobject gi-pango haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-cairo gi-glib gi-gobject gi-pango
-         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ cairo pango ];
-       preCompileBuildDriver = ''
-         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
-         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
-       '';
-       description = "PangoCairo bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
-
-  "gi-pangocairo_1_0_25" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
-     , gi-cairo, gi-glib, gi-gobject, gi-pango, haskell-gi
-     , haskell-gi-base, haskell-gi-overloading, pango, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "gi-pangocairo";
        version = "1.0.25";
        sha256 = "1w7sdwxfsymysazv9b045li97mjj2xspgrfyhm74x7sd7b4jl4aa";
        setupHaskellDepends = [
@@ -104731,7 +103772,6 @@ self: {
        '';
        description = "PangoCairo bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
 
   "gi-poppler" = callPackage
@@ -104753,8 +103793,6 @@ self: {
        libraryPkgconfigDepends = [ poppler_gi ];
        description = "Poppler bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) poppler_gi;};
 
   "gi-secret" = callPackage
@@ -104764,27 +103802,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-secret";
-       version = "0.0.12";
-       sha256 = "19mr7mvay2slm5k6afqj0hhy4ddh0advrb5dyzqi75xysx7xagm8";
-       setupHaskellDepends = [
-         base Cabal gi-gio gi-glib gi-gobject haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
-       ];
-       libraryPkgconfigDepends = [ libsecret ];
-       description = "Libsecret bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {inherit (pkgs) libsecret;};
-
-  "gi-secret_0_0_13" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
-     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, libsecret, text, transformers
-     }:
-     mkDerivation {
-       pname = "gi-secret";
        version = "0.0.13";
        sha256 = "0n37sdm4q6q807j4wgwwsl28knc71d8jiyx4prxbl2d69gg6i2ka";
        setupHaskellDepends = [
@@ -104797,7 +103814,6 @@ self: {
        libraryPkgconfigDepends = [ libsecret ];
        description = "Libsecret bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libsecret;};
 
   "gi-soup" = callPackage
@@ -104860,6 +103876,8 @@ self: {
        libraryPkgconfigDepends = [ vips ];
        description = "libvips GObject bindings";
        license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) vips;};
 
   "gi-vte" = callPackage
@@ -104870,30 +103888,6 @@ self: {
      }:
      mkDerivation {
        pname = "gi-vte";
-       version = "2.91.27";
-       sha256 = "0a4n8yah3nirwciw0y1i8vpcjqbbk3pw15nd8av109cyxgl8nzx8";
-       setupHaskellDepends = [
-         base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
-         haskell-gi
-       ];
-       libraryHaskellDepends = [
-         base bytestring containers gi-atk gi-gdk gi-gio gi-glib gi-gobject
-         gi-gtk gi-pango haskell-gi haskell-gi-base haskell-gi-overloading
-         text transformers
-       ];
-       libraryPkgconfigDepends = [ vte_291 ];
-       description = "Vte bindings";
-       license = lib.licenses.lgpl21Only;
-     }) {vte_291 = pkgs.vte;};
-
-  "gi-vte_2_91_28" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
-     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi
-     , haskell-gi-base, haskell-gi-overloading, text, transformers
-     , vte_291
-     }:
-     mkDerivation {
-       pname = "gi-vte";
        version = "2.91.28";
        sha256 = "06bgl5r1r4ri22c43an4h538p0b3icrb8nq1w7fw8cmxqj7y5m33";
        setupHaskellDepends = [
@@ -104908,7 +103902,9 @@ self: {
        libraryPkgconfigDepends = [ vte_291 ];
        description = "Vte bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {vte_291 = pkgs.vte;};
 
   "gi-webkit" = callPackage
@@ -104956,7 +103952,6 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2 bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-webkit2_4_0_27" = callPackage
@@ -105006,7 +104001,6 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2-WebExtension bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-wnck" = callPackage
@@ -105324,25 +104318,25 @@ self: {
      , crypto-api, cryptonite, curl, data-default, DAV, dbus, deepseq
      , directory, disk-free-space, dlist, edit-distance, exceptions
      , fdo-notify, feed, filepath, filepath-bytestring, free, git
-     , git-lfs, gnupg, hinotify, hslogger, http-client
-     , http-client-restricted, http-client-tls, http-conduit, http-types
-     , IfElse, lsof, magic, memory, microlens, monad-control
-     , monad-logger, mountpoints, mtl, network, network-bsd
-     , network-info, network-multicast, network-uri, old-locale, openssh
-     , optparse-applicative, path-pieces, perl, persistent
-     , persistent-sqlite, persistent-template, process, QuickCheck
-     , random, regex-tdfa, resourcet, rsync, SafeSemaphore, sandi
-     , securemem, shakespeare, socks, split, stm, stm-chans, tagsoup
-     , tasty, tasty-hunit, tasty-quickcheck, tasty-rerun
-     , template-haskell, text, time, torrent, transformers, unix
-     , unix-compat, unliftio-core, unordered-containers, utf8-string
-     , uuid, vector, wai, wai-extra, warp, warp-tls, wget, which, yesod
-     , yesod-core, yesod-form, yesod-static
+     , git-lfs, gnupg, hinotify, http-client, http-client-restricted
+     , http-client-tls, http-conduit, http-types, IfElse, lsof, magic
+     , memory, microlens, monad-control, monad-logger, mountpoints, mtl
+     , network, network-bsd, network-info, network-multicast
+     , network-uri, old-locale, openssh, optparse-applicative
+     , path-pieces, perl, persistent, persistent-sqlite
+     , persistent-template, process, QuickCheck, random, regex-tdfa
+     , resourcet, rsync, SafeSemaphore, sandi, securemem, shakespeare
+     , socks, split, stm, stm-chans, tagsoup, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-rerun, template-haskell, text, time
+     , torrent, transformers, unix, unix-compat, unliftio-core
+     , unordered-containers, utf8-string, uuid, vector, wai, wai-extra
+     , warp, warp-tls, wget, which, yesod, yesod-core, yesod-form
+     , yesod-static
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "8.20210330";
-       sha256 = "07dhxlmnj48drgndcplafc7xhby0w3rks68fz9wsppxan929240p";
+       version = "8.20210428";
+       sha256 = "0xpvhpnl600874sa392wjfd2yd9s6ps2cq2qfkzyxxf90p9fcwg8";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -105352,8 +104346,8 @@ self: {
        isExecutable = true;
        setupHaskellDepends = [
          async base bytestring Cabal data-default directory exceptions
-         filepath filepath-bytestring hslogger IfElse process split
-         transformers unix-compat utf8-string
+         filepath filepath-bytestring IfElse process split time transformers
+         unix-compat utf8-string
        ];
        executableHaskellDepends = [
          aeson async attoparsec aws base blaze-builder bloomfilter byteable
@@ -105361,17 +104355,17 @@ self: {
          connection containers crypto-api cryptonite data-default DAV dbus
          deepseq directory disk-free-space dlist edit-distance exceptions
          fdo-notify feed filepath filepath-bytestring free git-lfs hinotify
-         hslogger http-client http-client-restricted http-client-tls
-         http-conduit http-types IfElse magic memory microlens monad-control
-         monad-logger mountpoints mtl network network-bsd network-info
-         network-multicast network-uri old-locale optparse-applicative
-         path-pieces persistent persistent-sqlite persistent-template
-         process QuickCheck random regex-tdfa resourcet SafeSemaphore sandi
-         securemem shakespeare socks split stm stm-chans tagsoup tasty
-         tasty-hunit tasty-quickcheck tasty-rerun template-haskell text time
-         torrent transformers unix unix-compat unliftio-core
-         unordered-containers utf8-string uuid vector wai wai-extra warp
-         warp-tls yesod yesod-core yesod-form yesod-static
+         http-client http-client-restricted http-client-tls http-conduit
+         http-types IfElse magic memory microlens monad-control monad-logger
+         mountpoints mtl network network-bsd network-info network-multicast
+         network-uri old-locale optparse-applicative path-pieces persistent
+         persistent-sqlite persistent-template process QuickCheck random
+         regex-tdfa resourcet SafeSemaphore sandi securemem shakespeare
+         socks split stm stm-chans tagsoup tasty tasty-hunit
+         tasty-quickcheck tasty-rerun template-haskell text time torrent
+         transformers unix unix-compat unliftio-core unordered-containers
+         utf8-string uuid vector wai wai-extra warp warp-tls yesod
+         yesod-core yesod-form yesod-static
        ];
        executableSystemDepends = [
          bup curl git gnupg lsof openssh perl rsync wget which
@@ -105398,8 +104392,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-brunch";
-       version = "1.4.4.0";
-       sha256 = "0kj22hx2ibidrnx19wb8kh6vyv4v0b5im616bywwhjqzspjqppmi";
+       version = "1.5.1.0";
+       sha256 = "057xsm5jzzrmivfxd40abph63lyy0q7pmfs2wvadlkhyhcb8nvgv";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -105534,7 +104528,6 @@ self: {
        description = "Custom git command for formatting code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "git-freq" = callPackage
@@ -105578,7 +104571,6 @@ self: {
        description = "More intelligent push-to-GitHub utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "git-jump" = callPackage
@@ -105651,8 +104643,6 @@ self: {
        ];
        description = "Passively snapshots working tree changes efficiently";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "git-object" = callPackage
@@ -105670,7 +104660,6 @@ self: {
        description = "Git object and its parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "git-remote-ipfs" = callPackage
@@ -105703,7 +104692,6 @@ self: {
        description = "Git remote helper to store git objects on IPFS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "git-repair" = callPackage
@@ -106099,7 +105087,6 @@ self: {
        description = "GitHub WebHook Handler implementation for Snap";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "github-webhooks" = callPackage
@@ -106259,8 +105246,6 @@ self: {
        ];
        description = "API library for working with Git repositories";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gitlib-cmdline" = callPackage
@@ -106308,7 +105293,6 @@ self: {
        description = "Run tests between repositories";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gitlib-libgit2" = callPackage
@@ -106335,8 +105319,6 @@ self: {
        ];
        description = "Libgit2 backend for gitlib";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gitlib-s3" = callPackage
@@ -106367,7 +105349,6 @@ self: {
        description = "Gitlib repository backend for storing Git objects in Amazon S3";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gitlib-sample" = callPackage
@@ -106381,8 +105362,6 @@ self: {
        ];
        description = "Sample backend for gitlib showing the basic structure for any backend";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gitlib-test" = callPackage
@@ -106401,8 +105380,6 @@ self: {
        ];
        description = "Test library for confirming gitlib backend compliance";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gitlib-utils" = callPackage
@@ -106510,7 +105487,6 @@ self: {
        description = "CLI Giphy search tool with previews in iTerm 2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gjk" = callPackage
@@ -106582,8 +105558,8 @@ self: {
      }:
      mkDerivation {
        pname = "glabrous";
-       version = "2.0.3";
-       sha256 = "06bpazshc07rg1w06sl171k12mry708512hrdckqw7winwfrwwkh";
+       version = "2.0.4";
+       sha256 = "0rzfs09njlll144l05s77hs9pm9mmnb8h705xlyr5yavllkv1ypk";
        libraryHaskellDepends = [
          aeson aeson-pretty attoparsec base bytestring cereal cereal-text
          either text unordered-containers
@@ -106623,7 +105599,6 @@ self: {
        description = "Automagically declares getters for widget handles in specified interface file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "glambda" = callPackage
@@ -106712,7 +105687,6 @@ self: {
        description = "Extensible effects using ContT, State and variants";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "glazier-pipes" = callPackage
@@ -106729,7 +105703,6 @@ self: {
        description = "A threaded rendering framework using glaizer and pipes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "glazier-react" = callPackage
@@ -106750,7 +105723,6 @@ self: {
        description = "ReactJS binding using Glazier.Command.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "glazier-react-examples" = callPackage
@@ -106776,7 +105748,6 @@ self: {
        description = "Examples of using glazier-react";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "glazier-react-widget" = callPackage
@@ -106797,7 +105768,6 @@ self: {
        description = "Generic widget library using glazier-react";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gli" = callPackage
@@ -106970,7 +105940,6 @@ self: {
        description = "Library enabling unique top-level declarations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "global-config" = callPackage
@@ -106992,7 +105961,6 @@ self: {
        description = "Global mutable configuration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "global-lock" = callPackage
@@ -107041,7 +106009,6 @@ self: {
        description = "ray tracer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gloss" = callPackage
@@ -107110,7 +106077,6 @@ self: {
        description = "Display images in Gloss using libdevil for decoding";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gloss-examples" = callPackage
@@ -107131,7 +106097,6 @@ self: {
        description = "Examples using the gloss library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gloss-export" = callPackage
@@ -107245,7 +106210,6 @@ self: {
        description = "A Sodium interface to the Gloss drawing package";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "glpk-headers" = callPackage
@@ -107284,8 +106248,6 @@ self: {
        ];
        description = "Comprehensive GLPK linear programming bindings";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) glpk;};
 
   "glsl" = callPackage
@@ -107484,7 +106446,6 @@ self: {
        description = "Composable maps and generic tries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gmndl" = callPackage
@@ -107504,7 +106465,6 @@ self: {
        description = "Mandelbrot Set explorer using GTK";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gmpint" = callPackage
@@ -107533,7 +106493,6 @@ self: {
        description = "Randomly set a picture as the GNOME desktop background";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gnome-keyring" = callPackage
@@ -107550,7 +106509,10 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings for libgnome-keyring";
        license = lib.licenses.gpl3Only;
-     }) {inherit (pkgs.gnome3) gnome-keyring; 
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+     }) {inherit (pkgs.gnome) gnome-keyring; 
          inherit (pkgs) libgnome-keyring;};
 
   "gnomevfs" = callPackage
@@ -107569,7 +106531,6 @@ self: {
        description = "Binding to the GNOME Virtual File System library";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {gnome-vfs = null; gnome-vfs_module = null;};
 
   "gnss-converters" = callPackage
@@ -107598,7 +106559,6 @@ self: {
        description = "GNSS Converters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gnuidn" = callPackage
@@ -107622,7 +106582,6 @@ self: {
        description = "Bindings for GNU IDN";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libidn;};
 
   "gnuplot" = callPackage
@@ -107710,7 +106669,6 @@ self: {
        description = "Scientific computing on geometric objects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "goal-probability" = callPackage
@@ -107731,7 +106689,6 @@ self: {
        description = "Manifolds of probability distributions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "goal-simulation" = callPackage
@@ -107756,7 +106713,6 @@ self: {
        description = "Mealy based simulation tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "goat" = callPackage
@@ -107791,8 +106747,6 @@ self: {
        testHaskellDepends = [ base containers HUnit mtl parsec ];
        description = "A monadic take on a 2,500-year-old board game - library";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "goatee-gtk" = callPackage
@@ -107813,8 +106767,6 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "A monadic take on a 2,500-year-old board game - GTK+ UI";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gochan" = callPackage
@@ -110137,25 +109089,21 @@ self: {
   "goldplate" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring, Diff
      , directory, filepath, Glob, optparse-applicative, process
-     , regex-pcre-builtin, text, time, unordered-containers
+     , regex-pcre-builtin, text, unordered-containers
      }:
      mkDerivation {
        pname = "goldplate";
-       version = "0.1.3";
-       sha256 = "109qhyq0n4w1jdz7y2hd8cjf44pikavv6mfnmf65vyfjangjq610";
-       revision = "1";
-       editedCabalFile = "1chrg7mfs4w4hbc0i1pdsj1350c4h3dhcv7xswn2ygq78337xxqk";
+       version = "0.2.0";
+       sha256 = "1f2n981676ykrv08fgdj87mj5r4841a18ywvgpc2hgapsgwbgma1";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson aeson-pretty async base bytestring Diff directory filepath
-         Glob optparse-applicative process regex-pcre-builtin text time
+         Glob optparse-applicative process regex-pcre-builtin text
          unordered-containers
        ];
        description = "A lightweight golden test runner";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gooey" = callPackage
@@ -110225,7 +109173,6 @@ self: {
        description = "Google Drive API access";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "google-html5-slide" = callPackage
@@ -110277,7 +109224,6 @@ self: {
        description = "Write GMail filters and output to importable XML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "google-maps-geocoding" = callPackage
@@ -110295,7 +109241,6 @@ self: {
        description = "Bindings to the Google Geocoding API (formerly Maps Geocoding API)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "google-oauth2" = callPackage
@@ -110371,8 +109316,6 @@ self: {
        ];
        description = "Get a signed JWT for Google Service Accounts";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "google-search" = callPackage
@@ -110409,8 +109352,6 @@ self: {
        ];
        description = "Google APIs for server to server applications";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "google-static-maps" = callPackage
@@ -110431,7 +109372,6 @@ self: {
        description = "Bindings to the Google Maps Static API (formerly Static Maps API)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "google-translate" = callPackage
@@ -110468,7 +109408,6 @@ self: {
        description = "Haskell implementation of the Google+ API v1";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "googlepolyline" = callPackage
@@ -110597,7 +109536,6 @@ self: {
        description = "Gore&Ash engine extension that implements actor style of programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-async" = callPackage
@@ -110621,7 +109559,6 @@ self: {
        description = "Core module for Gore&Ash engine that embeds async IO actions into game loop";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-demo" = callPackage
@@ -110648,7 +109585,6 @@ self: {
        description = "Demonstration game for Gore&Ash game engine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-glfw" = callPackage
@@ -110666,7 +109602,6 @@ self: {
        description = "Core module for Gore&Ash engine for GLFW input events";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-lambdacube" = callPackage
@@ -110687,7 +109622,6 @@ self: {
        description = "Core module for Gore&Ash engine that do something";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-logging" = callPackage
@@ -110707,7 +109641,6 @@ self: {
        description = "Core module for gore-and-ash with logging utilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-network" = callPackage
@@ -110730,7 +109663,6 @@ self: {
        description = "Core module for Gore&Ash engine with low level network API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-sdl" = callPackage
@@ -110750,7 +109682,6 @@ self: {
        description = "Gore&Ash core module for integration with SDL library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gore-and-ash-sync" = callPackage
@@ -110771,7 +109702,6 @@ self: {
        description = "Gore&Ash module for high level network synchronization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gothic" = callPackage
@@ -110896,7 +109826,6 @@ self: {
        description = "For manipulating GPS coordinates and trails";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gps2htmlReport" = callPackage
@@ -110918,7 +109847,6 @@ self: {
        description = "GPS to HTML Summary Report";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gpx-conduit" = callPackage
@@ -110943,8 +109871,8 @@ self: {
     ({ mkDerivation, base, criterion, hedgehog }:
      mkDerivation {
        pname = "grab";
-       version = "0.0.0.4";
-       sha256 = "0yanm9ak2sw266wn9lllz086g53sra7xfncpql6403d2lj3j1jj4";
+       version = "0.0.0.6";
+       sha256 = "0fhindbl5ygfncbww0wqbq4bkjr9q6v0f12f0rzblz71wapshnni";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hedgehog ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -110958,14 +109886,13 @@ self: {
     ({ mkDerivation, base, containers, grab, hedgehog, text }:
      mkDerivation {
        pname = "grab-form";
-       version = "0.0.0.4";
-       sha256 = "0ch8c0kfjky9s1ilrxyr27jhmvynrp61imb188rc3fv7yfr0b5n5";
+       version = "0.0.0.6";
+       sha256 = "18gk6p6fxvsiihlr6amvlqf9s7i4v0wi7vzpfjkc580zzvxd9c8n";
        libraryHaskellDepends = [ base containers grab text ];
        testHaskellDepends = [ base containers hedgehog text ];
        description = "Applicative parsers for form parameter lists";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graceful" = callPackage
@@ -111023,7 +109950,6 @@ self: {
        description = "Monadic correlated log events";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grakn" = callPackage
@@ -111067,7 +109993,6 @@ self: {
        description = "A parsing library of context-free grammar combinators";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grammatical-parsers" = callPackage
@@ -111103,8 +110028,6 @@ self: {
        ];
        description = "parsers that combine into grammars";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grapefruit-examples" = callPackage
@@ -111122,7 +110045,6 @@ self: {
        description = "Examples using the Grapefruit library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grapefruit-frp" = callPackage
@@ -111154,7 +110076,6 @@ self: {
        description = "A record system for Functional Reactive Programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grapefruit-ui" = callPackage
@@ -111174,7 +110095,6 @@ self: {
        description = "Declarative user interface programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grapefruit-ui-gtk" = callPackage
@@ -111195,7 +110115,6 @@ self: {
        description = "GTK+-based backend for declarative user interface programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph" = callPackage
@@ -111230,8 +110149,6 @@ self: {
        ];
        description = "Fast, memory efficient and persistent graph implementation";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-generators" = callPackage
@@ -111304,7 +110221,6 @@ self: {
        description = "Interactive graph rewriting system implementing various well-known combinators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-rewriting-gl" = callPackage
@@ -111322,7 +110238,6 @@ self: {
        description = "OpenGL interface for interactive port graph rewriting";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-rewriting-lambdascope" = callPackage
@@ -111345,7 +110260,6 @@ self: {
        description = "Lambdascope, an optimal evaluator of the lambda calculus, as an interactive graph-rewriting system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-rewriting-layout" = callPackage
@@ -111362,7 +110276,6 @@ self: {
        description = "Force-directed node placement intended for incremental graph drawing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-rewriting-ski" = callPackage
@@ -111383,7 +110296,6 @@ self: {
        description = "Two evalutors of the SKI combinator calculus as interactive graph rewrite systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-rewriting-strategies" = callPackage
@@ -111400,7 +110312,6 @@ self: {
        description = "Evaluation strategies for port-graph rewriting systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-rewriting-trs" = callPackage
@@ -111423,7 +110334,6 @@ self: {
        description = "Evaluate first-order applicative term rewrite systems interactively using graph reduction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-rewriting-ww" = callPackage
@@ -111445,7 +110355,6 @@ self: {
        description = "Evaluator of the lambda-calculus in an interactive graph rewriting system with explicit sharing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-serialize" = callPackage
@@ -111492,7 +110401,6 @@ self: {
        description = "Graph walk abstraction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graph-wrapper" = callPackage
@@ -111594,7 +110502,6 @@ self: {
        description = "Classes for renderable objects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graphicstools" = callPackage
@@ -111614,7 +110521,6 @@ self: {
        description = "Tools for creating graphical UIs, based on wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graphite" = callPackage
@@ -111697,8 +110603,6 @@ self: {
        ];
        description = "Haskell GraphQL implementation";
        license = "MPL-2.0 AND BSD-3-Clause";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graphql-api" = callPackage
@@ -111743,6 +110647,8 @@ self: {
        pname = "graphql-client";
        version = "1.1.1";
        sha256 = "1d00ib9c8ps8vv1qgrkjfzrjbgbsdnp1jiz7779bwm76j88vggb4";
+       revision = "3";
+       editedCabalFile = "0pnkq0wxjmfk67ji6wr7b42lsr2gp026cx91ryq146gh4c9gwacv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -111761,7 +110667,6 @@ self: {
        description = "A client for Haskell programs to query a GraphQL API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graphql-utils" = callPackage
@@ -111840,7 +110745,6 @@ self: {
        description = "A simple tool to illustrate dependencies between Haskell types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graphula" = callPackage
@@ -111852,8 +110756,8 @@ self: {
      }:
      mkDerivation {
        pname = "graphula";
-       version = "2.0.0.4";
-       sha256 = "1jqli2ws2n67cha6qd460h1y5iz688dwi5dn6h0a6jmc03yzgxni";
+       version = "2.0.0.5";
+       sha256 = "1ajpp5c3y93pl7i4b1bkfg8w6075xvbhdx6c4mj1cnz7mq6763a7";
        libraryHaskellDepends = [
          base containers directory generics-eot HUnit mtl persistent
          QuickCheck random semigroups temporary text transformers unliftio
@@ -111868,8 +110772,6 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "A declarative library for describing dependencies between data";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "graphula-core" = callPackage
@@ -112069,29 +110971,31 @@ self: {
        description = "A foreign function interface pre-processor library for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "greenclip" = callPackage
     ({ mkDerivation, base, binary, bytestring, directory, exceptions
-     , hashable, libXau, microlens, microlens-mtl, protolude, text, unix
-     , vector, wordexp, X11, xcb, xdmcp, xlibsWrapper
+     , hashable, libXau, libXScrnSaver, microlens, microlens-mtl
+     , protolude, text, tomland, unix, vector, wordexp, X11, xcb, xdmcp
+     , xlibsWrapper
      }:
      mkDerivation {
        pname = "greenclip";
-       version = "3.4.0";
-       sha256 = "0763nnh7k4blkamlswnapwxyqfn1l0g6ibpz7k1w2w2asj7a3q98";
+       version = "4.1.0";
+       sha256 = "1z52ffb3f0iflls3bjlwzpz4w3a904vj67c1zsdyql6j2xpln6n4";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          base binary bytestring directory exceptions hashable microlens
-         microlens-mtl protolude text unix vector wordexp X11
+         microlens-mtl protolude text tomland unix vector wordexp X11
+       ];
+       executablePkgconfigDepends = [
+         libXau libXScrnSaver xcb xdmcp xlibsWrapper
        ];
-       executablePkgconfigDepends = [ libXau xcb xdmcp xlibsWrapper ];
        description = "Simple clipboard manager to be integrated with rofi";
        license = lib.licenses.bsd3;
-     }) {inherit (pkgs.xorg) libXau; xcb = null; xdmcp = null; 
-         inherit (pkgs) xlibsWrapper;};
+     }) {inherit (pkgs.xorg) libXScrnSaver; inherit (pkgs.xorg) libXau; 
+         xcb = null; xdmcp = null; inherit (pkgs) xlibsWrapper;};
 
   "greg-client" = callPackage
     ({ mkDerivation, base, binary, bytestring, clock, hostname, network
@@ -112279,7 +111183,6 @@ self: {
        description = "Grid-based prototyping framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gridbounds" = callPackage
@@ -112293,7 +111196,6 @@ self: {
        description = "Collision detection for GridBox";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gridbox" = callPackage
@@ -112343,7 +111245,6 @@ self: {
        description = "Grid-based multimedia engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grids" = callPackage
@@ -112626,8 +111527,8 @@ self: {
     ({ mkDerivation, base, containers, groups }:
      mkDerivation {
        pname = "group-theory";
-       version = "0.2.1.0";
-       sha256 = "11cm59l3g831pz0h5qr94rf1g7km4bn0gqrb8ikssf4xwnjxib46";
+       version = "0.2.2";
+       sha256 = "0lbmfsycc8znbzc5vxz2a3kxq2r74xamm6bwr6bpdvka6c8bfzn8";
        libraryHaskellDepends = [ base containers groups ];
        description = "The theory of groups";
        license = lib.licenses.bsd3;
@@ -112714,8 +111615,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "groups";
-       version = "0.5.2";
-       sha256 = "0ghabk9r3pqccwfshy80p460awv0niyfi3nirg5bqnxm923c4njn";
+       version = "0.5.3";
+       sha256 = "0f5c8dg9b74glfw2sdvdcl9c8igs6knz1bayk4gvvzvypsl547nf";
        libraryHaskellDepends = [ base ];
        description = "Groups";
        license = lib.licenses.bsd3;
@@ -112730,8 +111631,6 @@ self: {
        libraryHaskellDepends = [ base generic-data groups ];
        description = "Generically derive Group instances";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grow-vector" = callPackage
@@ -112804,7 +111703,6 @@ self: {
        description = "gRPC client for etcd";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grpc-haskell" = callPackage
@@ -112817,6 +111715,8 @@ self: {
        pname = "grpc-haskell";
        version = "0.1.0";
        sha256 = "1qqa4qn6ql8zvacaikd1a154ib7bah2h96fjfvd3hz6j79bbfqw4";
+       revision = "1";
+       editedCabalFile = "06yi4isj2qcd1nnc2vf6355wbqq33amhvcwg12jh0zbxpywrs45g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -112834,7 +111734,6 @@ self: {
        description = "Haskell implementation of gRPC layered on shared C library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "grpc-haskell-core" = callPackage
@@ -112845,8 +111744,8 @@ self: {
      }:
      mkDerivation {
        pname = "grpc-haskell-core";
-       version = "0.0.0.0";
-       sha256 = "1pvcdr1jrn94nwhni5992l8mv401150wl8yi519hncs173n2fx88";
+       version = "0.1.0";
+       sha256 = "1djyjlbqsdk64b3ymli4hlh6w0rkl481f9r5m0q56gwpbp5h1zp6";
        libraryHaskellDepends = [
          base bytestring clock containers managed sorted-list stm
          transformers
@@ -112861,7 +111760,6 @@ self: {
        description = "Haskell implementation of gRPC layered on shared C library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {gpr = null; inherit (pkgs) grpc;};
 
   "gruff" = callPackage
@@ -112884,7 +111782,6 @@ self: {
        description = "fractal explorer GUI using the ruff library";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gruff-examples" = callPackage
@@ -112904,7 +111801,6 @@ self: {
        description = "Mandelbrot Set examples using ruff and gruff";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gsasl" = callPackage
@@ -112951,7 +111847,6 @@ self: {
        description = "scrapes google scholar, provides RSS feed";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gsl-random" = callPackage
@@ -112978,7 +111873,6 @@ self: {
        description = "Instances for using gsl-random with random-fu";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gsmenu" = callPackage
@@ -113044,7 +111938,6 @@ self: {
        description = "Generic implementation of Storable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gstreamer" = callPackage
@@ -113100,7 +111993,6 @@ self: {
        description = "The General Transit Feed Specification format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gtfs-realtime" = callPackage
@@ -113213,7 +112105,6 @@ self: {
        description = "GTK+ Serialized event";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gtk2;};
 
   "gtk-simple-list-view" = callPackage
@@ -113237,8 +112128,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk-sni-tray";
-       version = "0.1.6.0";
-       sha256 = "0i8k6jk6jq97cahlgbj8acqdqw4zkh0cyy8i6clznbknl02qqp2i";
+       version = "0.1.6.2";
+       sha256 = "1rcw57d5f0298y40ajmb2664ryrqsmcwbr2y1pk0sl2ggwr1zzsl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -113255,6 +112146,9 @@ self: {
        ];
        description = "A standalone StatusNotifierItem/AppIndicator tray";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) gtk3;};
 
   "gtk-strut" = callPackage
@@ -113551,7 +112445,6 @@ self: {
        description = "Binding to the GtkImageView library";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gtkimageview;};
 
   "gtkrsync" = callPackage
@@ -113571,7 +112464,6 @@ self: {
        description = "Gnome rsync progress display";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "gtksourceview2" = callPackage
@@ -113637,7 +112529,6 @@ self: {
        description = "Datatype-generic rewriting with preconditions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "guess-combinator" = callPackage
@@ -113650,7 +112541,6 @@ self: {
        description = "Generate simple combinators given their type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "guid" = callPackage
@@ -113875,7 +112765,6 @@ self: {
        description = "Control your Arduino board from Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hBDD" = callPackage
@@ -113937,8 +112826,6 @@ self: {
        testHaskellDepends = [ base hashable ];
        description = "Conceptual modelling support for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hCsound" = callPackage
@@ -114060,7 +112947,6 @@ self: {
        description = "The tool to transform the OFF to other image format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hOff-parser" = callPackage
@@ -114139,7 +113025,6 @@ self: {
        description = "Protein Databank file format library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hPDB-examples" = callPackage
@@ -114167,7 +113052,6 @@ self: {
        description = "Examples for hPDB library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hPushover" = callPackage
@@ -114369,7 +113253,6 @@ self: {
        description = "Haskell message bot framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hable" = callPackage
@@ -114406,7 +113289,6 @@ self: {
        description = "A minimalist static blog generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hablog" = callPackage
@@ -114430,7 +113312,6 @@ self: {
        description = "A blog system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hacanon-light" = callPackage
@@ -114474,7 +113355,6 @@ self: {
        description = "Hack contrib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack-contrib-press" = callPackage
@@ -114492,7 +113372,6 @@ self: {
        description = "Hack helper that renders Press templates";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack-frontend-happstack" = callPackage
@@ -114555,7 +113434,6 @@ self: {
        description = "hack handler implementation using epoll";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack-handler-evhttp" = callPackage
@@ -114575,7 +113453,6 @@ self: {
        description = "Hack EvHTTP (libevent) Handler";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {event = null;};
 
   "hack-handler-fastcgi" = callPackage
@@ -114589,7 +113466,6 @@ self: {
        description = "Hack handler direct to fastcgi (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) fcgi;};
 
   "hack-handler-happstack" = callPackage
@@ -114626,7 +113502,6 @@ self: {
        description = "Hyena hack handler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack-handler-kibro" = callPackage
@@ -114659,7 +113534,6 @@ self: {
        description = "A simplistic HTTP server handler for Hack. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack-middleware-cleanpath" = callPackage
@@ -114674,7 +113548,6 @@ self: {
        description = "Applies some basic redirect rules to get cleaner paths. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack-middleware-clientsession" = callPackage
@@ -114691,7 +113564,6 @@ self: {
        description = "Middleware for easily keeping session data in client cookies. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack-middleware-gzip" = callPackage
@@ -114719,7 +113591,6 @@ self: {
        description = "Automatic wrapping of JSON responses to convert into JSONP. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack2" = callPackage
@@ -114783,7 +113654,6 @@ self: {
        description = "Hack2 Happstack server handler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack2-handler-mongrel2-http" = callPackage
@@ -114805,7 +113675,6 @@ self: {
        description = "Hack2 Mongrel2 HTTP handler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack2-handler-snap-server" = callPackage
@@ -114825,7 +113694,6 @@ self: {
        description = "Hack2 Snap server handler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hack2-handler-warp" = callPackage
@@ -114888,10 +113756,8 @@ self: {
      }:
      mkDerivation {
        pname = "hackage-db";
-       version = "2.1.0";
-       sha256 = "1vsc0lrbrb525frycqq0c5z846whymgcjl888gnlqd16nknbsn3l";
-       revision = "1";
-       editedCabalFile = "1h3x5a8xmqkkcd3h1m7z0il1vbsh2c77685y68zmyp21zb1y88hy";
+       version = "2.1.1";
+       sha256 = "16y1iqb3y019hjdsq7q3zx51qy834ky3mw5vszqmzzhflqpicd31";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115120,7 +113986,6 @@ self: {
        description = "The Hackage web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hackage-sparks" = callPackage
@@ -115188,7 +114053,6 @@ self: {
        description = "Send new Hackage releases to Twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hackager" = callPackage
@@ -115271,7 +114135,6 @@ self: {
        description = "Generate useful files for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hackport" = callPackage
@@ -115357,7 +114220,6 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haddock" = callPackage
@@ -115375,7 +114237,6 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haddock-api_2_23_1" = callPackage
@@ -115568,7 +114429,6 @@ self: {
        description = "Generate docset of Dash by Haddock haskell documentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hadolint" = callPackage
@@ -115581,8 +114441,8 @@ self: {
      }:
      mkDerivation {
        pname = "hadolint";
-       version = "2.3.0";
-       sha256 = "03cz3inkkqbdnwwvsf7dhclp9svi8c0lpjmcp81ff9vxr1v6x73x";
+       version = "2.4.1";
+       sha256 = "166jpi6bzq2j6ss652225byn6pdz8ya71fxdndlmqgsram2hrlyn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115684,7 +114544,6 @@ self: {
        description = "Fast command line tools for working with Hadoop";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haeredes" = callPackage
@@ -115744,7 +114603,6 @@ self: {
        description = "A static site generator with blogging/comments support";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haggle" = callPackage
@@ -115754,8 +114612,8 @@ self: {
      }:
      mkDerivation {
        pname = "haggle";
-       version = "0.1.0.0";
-       sha256 = "0fpbmllp0p23c258gam7xm0dvwphw0zpmydmg9ygl4yl1kiav470";
+       version = "0.1.0.1";
+       sha256 = "1j598hcjw0p9iac4h91w47k4rh9k0h2r9gk3rrfkklvw84aznkrz";
        libraryHaskellDepends = [
          base containers deepseq hashable monad-primitive primitive ref-tf
          vector
@@ -115955,7 +114813,6 @@ self: {
        description = "Dynamic launcher of Hails applications";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hairy" = callPackage
@@ -116117,8 +114974,7 @@ self: {
        testToolDepends = [ utillinux ];
        description = "A static website compiler library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ erictapen ];
      }) {inherit (pkgs) utillinux;};
 
   "hakyll-R" = callPackage
@@ -116151,8 +115007,6 @@ self: {
        ];
        description = "Wrapper to integrate literate Agda files with Hakyll";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-alectryon" = callPackage
@@ -116169,8 +115023,6 @@ self: {
        ];
        description = "Hakyll extension for rendering Coq code using Alectryon";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-blaze-templates" = callPackage
@@ -116250,8 +115102,7 @@ self: {
        libraryHaskellDepends = [ base hakyll hyphenation split tagsoup ];
        description = "automatic hyphenation for Hakyll";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ erictapen ];
      }) {};
 
   "hakyll-contrib-i18n" = callPackage
@@ -116379,7 +115230,6 @@ self: {
        description = "Hakyll wrapper for the Elm compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-favicon" = callPackage
@@ -116394,8 +115244,6 @@ self: {
        executableHaskellDepends = [ base hakyll ];
        testHaskellDepends = [ base ];
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-filestore" = callPackage
@@ -116410,8 +115258,6 @@ self: {
        ];
        description = "FileStore utilities for Hakyll";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-images" = callPackage
@@ -116433,8 +115279,6 @@ self: {
        ];
        description = "Hakyll utilities to work with images";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-ogmarkup" = callPackage
@@ -116447,7 +115291,6 @@ self: {
        description = "Integrate ogmarkup document with Hakyll";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-process" = callPackage
@@ -116476,8 +115319,6 @@ self: {
        ];
        description = "Hakyll SASS compiler over hsass";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-series" = callPackage
@@ -116508,8 +115349,6 @@ self: {
        ];
        description = "Hakyll Hamlet compiler";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hakyll-shortcode" = callPackage
@@ -116568,33 +115407,33 @@ self: {
        description = "Typescript and javascript hakyll compilers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hal" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , case-insensitive, conduit, conduit-extra, containers, envy
-     , exceptions, hspec, http-client, http-types, mtl, text, time
-     , unordered-containers
+     , exceptions, hashable, hedgehog, hspec, hspec-hedgehog
+     , http-client, http-types, mtl, scientific, text, time
+     , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "hal";
-       version = "0.4.7";
-       sha256 = "1bf2d4djbw8gpkcgrvjm52hsyw8hv20rsk0qdxfi8aml6mp152k5";
+       version = "0.4.8";
+       sha256 = "1j3prf81ni5v003byl992dxvvkv8prgmsqmnpkwpd0365ilxyv2y";
        revision = "1";
-       editedCabalFile = "19hic5cgxyk2nz8nnrz091hv79al49q7ah9pv9d7fwagjzi027ch";
+       editedCabalFile = "0jz54lz3wd05b2vabwlid31pyhvjrwbdr35nbqb9kdf13jfdgahr";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive conduit
-         conduit-extra containers envy exceptions http-client http-types mtl
-         text time unordered-containers
+         conduit-extra containers envy exceptions hashable http-client
+         http-types mtl text time unordered-containers
        ];
        testHaskellDepends = [
-         aeson base containers hspec http-client http-types time
+         aeson base base64-bytestring bytestring case-insensitive containers
+         hedgehog hspec hspec-hedgehog http-client http-types scientific
+         text time transformers unordered-containers vector
        ];
        description = "A runtime environment for Haskell applications running on AWS Lambda";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "halberd" = callPackage
@@ -116624,7 +115463,6 @@ self: {
        description = "A tool to generate missing import statements for Haskell modules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "half" = callPackage
@@ -116730,7 +115568,6 @@ self: {
        description = "Symmetry operations generater of Hall Symbols";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "halma" = callPackage
@@ -116740,8 +115577,8 @@ self: {
      }:
      mkDerivation {
        pname = "halma";
-       version = "0.3.0.1";
-       sha256 = "1bmc7s4vl1k2i66q1ir6mkzn67j5gycshkkwp4d2v1dd86sswf28";
+       version = "0.3.0.2";
+       sha256 = "1fs2095hp8m5k0iq0ilhxc6qmlasdygx9wjdb6288jssdjbvvpyq";
        libraryHaskellDepends = [
          aeson base containers data-default diagrams-lib grid
        ];
@@ -116772,7 +115609,6 @@ self: {
        description = "GTK application for playing Halma";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "halma-telegram-bot" = callPackage
@@ -116798,7 +115634,6 @@ self: {
        description = "Telegram bot for playing Halma";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haltavista" = callPackage
@@ -116873,7 +115708,6 @@ self: {
        testHaskellDepends = [ base bytestring ];
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hamid" = callPackage
@@ -117023,7 +115857,6 @@ self: {
        description = "Library to handle abstract music";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "han2zen" = callPackage
@@ -117260,7 +116093,6 @@ self: {
        description = "Driver for real ethernet devices for HaNS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hans-pfq" = callPackage
@@ -117357,6 +116189,40 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A deployment library for Haskell applications";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "hapistrano_0_4_1_4" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, base, directory
+     , filepath, formatting, gitrev, hspec, hspec-discover, mtl
+     , optparse-applicative, path, path-io, process, QuickCheck
+     , silently, stm, temporary, time, transformers, typed-process, yaml
+     }:
+     mkDerivation {
+       pname = "hapistrano";
+       version = "0.4.1.4";
+       sha256 = "1ci2q3vkjw51k5hbswmcajk7gl1zpmwx3npbkf3kng3j1kcv0bzw";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base filepath gitrev mtl path process stm time
+         transformers typed-process yaml
+       ];
+       executableHaskellDepends = [
+         aeson async base formatting gitrev optparse-applicative path
+         path-io stm yaml
+       ];
+       testHaskellDepends = [
+         base directory filepath hspec mtl path path-io process QuickCheck
+         silently temporary yaml
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A deployment library for Haskell applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "happindicator" = callPackage
@@ -117434,7 +116300,6 @@ self: {
        description = "The \"Haskell Applets\" Gtk+ ver. 2 back-end for \"happlets\".";
        license = "AGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happraise" = callPackage
@@ -117464,7 +116329,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happs-hsp-template" = callPackage
@@ -117482,7 +116346,6 @@ self: {
        description = "Utilities for using HSP templates in HAppS applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happs-tutorial" = callPackage
@@ -117508,7 +116371,6 @@ self: {
        description = "A Happstack Tutorial that is its own web 2.0-type demo.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack" = callPackage
@@ -117544,7 +116406,6 @@ self: {
        description = "A Happstack Authentication Suite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-authenticate" = callPackage
@@ -117575,7 +116436,6 @@ self: {
        description = "Happstack Authentication Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-clientsession" = callPackage
@@ -117613,7 +116473,6 @@ self: {
        description = "Web related tools and services";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-data" = callPackage
@@ -117636,7 +116495,6 @@ self: {
        description = "Happstack data manipulation libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-dlg" = callPackage
@@ -117655,7 +116513,6 @@ self: {
        description = "Cross-request user interactions for Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-facebook" = callPackage
@@ -117682,7 +116539,6 @@ self: {
        description = "A package for building Facebook applications using Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-fastcgi" = callPackage
@@ -117715,7 +116571,6 @@ self: {
        description = "Support for using Fay with Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-fay-ajax" = callPackage
@@ -117807,7 +116662,6 @@ self: {
        description = "Convenience functions for Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-hsp" = callPackage
@@ -117860,7 +116714,6 @@ self: {
        description = "Efficient relational queries on Haskell sets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-jmacro" = callPackage
@@ -117879,7 +116732,6 @@ self: {
        description = "Support for using JMacro with Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-lite" = callPackage
@@ -117928,7 +116780,6 @@ self: {
        description = "The haskell application server stack + reload";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-server" = callPackage
@@ -117942,8 +116793,8 @@ self: {
      }:
      mkDerivation {
        pname = "happstack-server";
-       version = "7.7.0";
-       sha256 = "0jyjnksgwvasnhwwn8scqms1kja4hzlbpn0lmyr6yng5n4989d0x";
+       version = "7.7.1";
+       sha256 = "1zxdv7nihw3kjq2fvw5cl3s27pwm5gkli3sl15iqxfm7mdxz8rm0";
        libraryHaskellDepends = [
          base base64-bytestring blaze-html bytestring containers directory
          exceptions extensible-exceptions filepath hslogger html
@@ -118015,7 +116866,6 @@ self: {
        description = "Event-based distributed state";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happstack-static-routing" = callPackage
@@ -118078,7 +116928,6 @@ self: {
        description = "Utilities for using YUI3 with Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happy_1_19_9" = callPackage
@@ -118201,7 +117050,6 @@ self: {
        description = "WebKit Happybara driver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "happybara-webkit-server" = callPackage
@@ -118274,7 +117122,6 @@ self: {
        description = "A Haskell implementation of the Quil instruction set for quantum computing";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "har" = callPackage
@@ -118327,7 +117174,6 @@ self: {
        description = "Deep embedding of hardware descriptions with code generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "harg" = callPackage
@@ -118346,7 +117192,6 @@ self: {
        description = "Haskell program configuration using higher kinded data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hark" = callPackage
@@ -118366,7 +117211,6 @@ self: {
        description = "A Gentoo package query tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "harmony" = callPackage
@@ -118393,7 +117237,6 @@ self: {
        description = "A web service specification compiler that generates implementation and tests";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haroonga" = callPackage
@@ -118431,7 +117274,6 @@ self: {
        description = "Yet another Groonga http server";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "harp" = callPackage
@@ -118510,7 +117352,6 @@ self: {
        description = "Template Haskell function for Has records";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasbolt" = callPackage
@@ -118520,10 +117361,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasbolt";
-       version = "0.1.4.4";
-       sha256 = "0kk1lamyms1mf8d290c3asnvgk51i8sqj810whms2a5346w9n4ll";
-       revision = "1";
-       editedCabalFile = "1bnbhq6k2af08riyaplfgm2lzghhi3nc0ijiw0yk1y5pq618zhxy";
+       version = "0.1.5.0";
+       sha256 = "0q0nd8d22knf6b1xwqz3gxmpymbvlx1p20hyahd5qr1yhjgpch0b";
        libraryHaskellDepends = [
          base binary bytestring connection containers data-binary-ieee754
          data-default mtl network text
@@ -118533,8 +117372,6 @@ self: {
        ];
        description = "Haskell driver for Neo4j 3+ (BOLT protocol)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasbolt-extras" = callPackage
@@ -118545,8 +117382,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasbolt-extras";
-       version = "0.0.1.6";
-       sha256 = "0il6752lvq0li29aipc66syc7kd9h57439akshlpqpd25b536zd9";
+       version = "0.0.1.7";
+       sha256 = "1dnia4da5g9c8ckiap4wsacv6lccr69ai24i3n6mywdykhy159f1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118614,8 +117451,8 @@ self: {
      }:
      mkDerivation {
        pname = "hascard";
-       version = "0.5.0.1";
-       sha256 = "08j3bi6a04pkkf99ghw2h7z1bdisby0d3hyqv559a1pxwpbi7k22";
+       version = "0.5.0.2";
+       sha256 = "1sh4903x05fwci7nmlqd0f2wjjs5b9bqckmgrkjpnawcnsbby1ds";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118822,15 +117659,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "hashable_1_3_1_0" = callPackage
+  "hashable_1_3_2_0" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, ghc-prim, HUnit
      , integer-gmp, QuickCheck, random, test-framework
      , test-framework-hunit, test-framework-quickcheck2, text, unix
      }:
      mkDerivation {
        pname = "hashable";
-       version = "1.3.1.0";
-       sha256 = "1i57iibad5gjk88yq1svi35mjcbgjmms7jzd28wva8f598x84qc0";
+       version = "1.3.2.0";
+       sha256 = "0dyn343wdwbm1facpcjiyd8w0s0hk23jqh7mbj108az5dx5rdgar";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-prim integer-gmp text
        ];
@@ -118917,11 +117754,26 @@ self: {
        pname = "hashable-time";
        version = "0.2.1";
        sha256 = "1zw2gqagpbwq1hgx5rlvy6mhsnb15cxg3pmhawwv0ylfihmx2yxh";
+       revision = "1";
+       editedCabalFile = "151gxiprdlj3masa95vvrxal9nwa72n3p1y15xyj4hp7mvvl4s2l";
        libraryHaskellDepends = [ base hashable time time-compat ];
        description = "Hashable instances for Data.Time";
        license = lib.licenses.bsd3;
      }) {};
 
+  "hashable-time_0_3" = callPackage
+    ({ mkDerivation, base, hashable, time-compat }:
+     mkDerivation {
+       pname = "hashable-time";
+       version = "0.3";
+       sha256 = "15zv0pgxp7rgd6v7skhyxgyf2sd8gr1br12bpd17r650yscw9fij";
+       libraryHaskellDepends = [ base time-compat ];
+       testHaskellDepends = [ base hashable time-compat ];
+       description = "Hashable instances for Data.Time";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hashabler" = callPackage
     ({ mkDerivation, array, base, bytestring, ghc-prim, integer-gmp
      , primitive, template-haskell, text
@@ -118974,7 +117826,6 @@ self: {
        description = "A library for working with HashFlare.io contracts and hashrates";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hashids" = callPackage
@@ -119190,7 +118041,6 @@ self: {
        description = "Generate homepages for cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskades" = callPackage
@@ -119271,7 +118121,6 @@ self: {
        description = "A dialect of haskell with order of execution based on dependency resolution";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskbot-core" = callPackage
@@ -119319,7 +118168,6 @@ self: {
        description = "Computes and audits file hashes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskdogs" = callPackage
@@ -119357,7 +118205,6 @@ self: {
        description = "A small scheme interpreter";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskeline_0_8_1_2" = callPackage
@@ -119447,7 +118294,6 @@ self: {
        description = "Haskell Application BlockChain Interface (ABCI) Server Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-aliyun" = callPackage
@@ -119471,7 +118317,6 @@ self: {
        description = "haskell client of aliyun service";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-awk" = callPackage
@@ -119484,10 +118329,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-awk";
-       version = "1.2";
-       sha256 = "14jfw5s3xw7amwasw37mxfinzwvxd6pr64iypmy65z7bkx3l01cj";
-       revision = "1";
-       editedCabalFile = "1d6smaalvf66h0d9d1vq9q8ldxcvg11m05wg70cbsq3s2vh6iz4p";
+       version = "1.2.0.1";
+       sha256 = "1r4hsvzbqagk06fc81cr1awfz0zqgs4hmbwl99mip47z578wrw9l";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -119495,15 +118338,15 @@ self: {
          base bytestring containers ghc list-t stringsearch
        ];
        executableHaskellDepends = [
-         base bytestring containers directory exceptions extra filelock
-         filepath ghc haskell-src-exts hint list-t mtl process stringsearch
-         template-haskell time transformers
+         base bytestring containers directory extra filelock filepath ghc
+         haskell-src-exts hint list-t mtl process template-haskell
+         transformers
        ];
        testHaskellDepends = [
          aeson attoparsec base bytestring containers directory doctest
          easy-file exceptions extra filelock filepath ghc haskell-src-exts
-         hint hspec HUnit list-t mtl process stringsearch template-haskell
-         temporary test-framework test-framework-hunit time transformers
+         hint hspec HUnit list-t mtl process template-haskell temporary
+         test-framework test-framework-hunit time transformers
        ];
        description = "Transform text from the command-line using Haskell expressions";
        license = lib.licenses.asl20;
@@ -119548,7 +118391,6 @@ self: {
        description = "Complete BitMEX Client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-bitmex-rest" = callPackage
@@ -119633,8 +118475,7 @@ self: {
        doHaddock = false;
        description = "Cabal package script generator for Travis-CI";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "haskell-cnc" = callPackage
@@ -119767,8 +118608,6 @@ self: {
        ];
        description = "Haskell Debug Adapter";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-disque" = callPackage
@@ -119810,7 +118649,6 @@ self: {
        description = "A program to find and display the docs and type of a name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-eigen-util" = callPackage
@@ -119824,7 +118662,6 @@ self: {
        description = "Some utility functions for haskell-eigen library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-exp-parser" = callPackage
@@ -119906,7 +118743,6 @@ self: {
        description = "A Haskell ftp server with configurable backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-generate" = callPackage
@@ -120155,53 +118991,49 @@ self: {
      }) {};
 
   "haskell-language-server" = callPackage
-    ({ mkDerivation, aeson, async, base, base16-bytestring, binary
-     , blaze-markup, brittany, bytestring, containers, cryptohash-sha1
-     , data-default, deepseq, directory, extra, filepath, floskell
-     , fourmolu, fuzzy, ghc, ghc-boot-th, ghc-paths, ghcide, gitrev
-     , hashable, hie-bios, hiedb, hls-class-plugin, hls-eval-plugin
-     , hls-explicit-imports-plugin, hls-haddock-comments-plugin
-     , hls-hlint-plugin, hls-plugin-api, hls-retrie-plugin
-     , hls-splice-plugin, hls-tactics-plugin, hslogger, hspec
-     , hspec-core, hspec-expectations, lens, lsp, lsp-test, megaparsec
-     , mtl, optparse-applicative, optparse-simple, ormolu, process
-     , regex-tdfa, safe-exceptions, shake, sqlite-simple, stm
-     , stylish-haskell, tasty, tasty-ant-xml, tasty-expected-failure
-     , tasty-golden, tasty-hunit, tasty-rerun, temporary, text
-     , transformers, unordered-containers, with-utf8, yaml
+    ({ mkDerivation, aeson, aeson-pretty, async, base
+     , base16-bytestring, binary, bytestring, containers
+     , cryptohash-sha1, data-default, deepseq, directory, extra
+     , filepath, floskell, fourmolu, fuzzy, ghc, ghc-boot-th, ghc-paths
+     , ghcide, gitrev, hashable, hie-bios, hiedb, hls-brittany-plugin
+     , hls-class-plugin, hls-eval-plugin, hls-explicit-imports-plugin
+     , hls-haddock-comments-plugin, hls-hlint-plugin, hls-plugin-api
+     , hls-retrie-plugin, hls-splice-plugin, hls-stylish-haskell-plugin
+     , hls-tactics-plugin, hls-test-utils, hslogger, hspec-expectations
+     , lens, lsp, lsp-test, lsp-types, mtl, optparse-applicative
+     , optparse-simple, ormolu, process, regex-tdfa, safe-exceptions
+     , shake, sqlite-simple, temporary, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "haskell-language-server";
-       version = "1.0.0.0";
-       sha256 = "0jchps7rwsbfq1fsyyf4jgxb4b11d8c3iaq2p4c5vz7vz2d6w1s3";
+       version = "1.1.0.0";
+       sha256 = "0zbr8qr097mjcsbgdkm6a8ala1ifdajmllr8basvrndn28zgi5cg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base base16-bytestring bytestring containers cryptohash-sha1
-         data-default directory extra filepath ghc ghcide gitrev hie-bios
-         hiedb hls-plugin-api hslogger lsp optparse-applicative
-         optparse-simple process safe-exceptions shake sqlite-simple text
-         unordered-containers
+         aeson-pretty async base base16-bytestring bytestring containers
+         cryptohash-sha1 data-default directory extra filepath ghc ghcide
+         gitrev hie-bios hiedb hls-plugin-api hslogger lsp
+         optparse-applicative optparse-simple process safe-exceptions shake
+         sqlite-simple text unordered-containers
        ];
        executableHaskellDepends = [
-         aeson async base base16-bytestring binary brittany bytestring
-         containers cryptohash-sha1 data-default deepseq directory extra
-         filepath floskell fourmolu fuzzy ghc ghc-boot-th ghc-paths ghcide
-         gitrev hashable hie-bios hiedb hls-class-plugin hls-eval-plugin
-         hls-explicit-imports-plugin hls-haddock-comments-plugin
-         hls-hlint-plugin hls-plugin-api hls-retrie-plugin hls-splice-plugin
+         aeson async base base16-bytestring binary bytestring containers
+         cryptohash-sha1 data-default deepseq directory extra filepath
+         floskell fourmolu fuzzy ghc ghc-boot-th ghc-paths ghcide gitrev
+         hashable hie-bios hiedb hls-brittany-plugin hls-class-plugin
+         hls-eval-plugin hls-explicit-imports-plugin
+         hls-haddock-comments-plugin hls-hlint-plugin hls-plugin-api
+         hls-retrie-plugin hls-splice-plugin hls-stylish-haskell-plugin
          hls-tactics-plugin hslogger lens lsp mtl optparse-applicative
          optparse-simple ormolu process regex-tdfa safe-exceptions shake
-         sqlite-simple stylish-haskell temporary text transformers
-         unordered-containers with-utf8
+         sqlite-simple temporary text transformers unordered-containers
        ];
        testHaskellDepends = [
-         aeson base blaze-markup bytestring containers data-default deepseq
-         directory extra filepath ghcide hie-bios hls-plugin-api hslogger
-         hspec hspec-core hspec-expectations lens lsp lsp-test megaparsec
-         process stm tasty tasty-ant-xml tasty-expected-failure tasty-golden
-         tasty-hunit tasty-rerun temporary text transformers
-         unordered-containers yaml
+         aeson base bytestring containers data-default directory extra
+         filepath ghcide hls-plugin-api hls-test-utils hspec-expectations
+         lens lsp-test lsp-types process text unordered-containers
        ];
        testToolDepends = [ ghcide ];
        description = "LSP server for GHC";
@@ -120229,35 +119061,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-lsp";
-       version = "0.22.0.0";
-       sha256 = "0mh2b3dza633plxp370zhvml50kfx4szk4hrzmcfm6aij2di2l0w";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base bytestring containers data-default
-         directory filepath hashable haskell-lsp-types hslogger lens mtl
-         network-uri rope-utf16-splay sorted-list stm temporary text time
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hashable hspec lens network-uri QuickCheck quickcheck-instances
-         rope-utf16-splay sorted-list stm text unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell library for the Microsoft Language Server Protocol";
-       license = lib.licenses.mit;
-     }) {};
-
-  "haskell-lsp_0_24_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, data-default, directory, filepath, hashable
-     , haskell-lsp-types, hslogger, hspec, hspec-discover, lens, mtl
-     , network-uri, QuickCheck, quickcheck-instances, rope-utf16-splay
-     , sorted-list, stm, temporary, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp";
        version = "0.24.0.0";
        sha256 = "0gw289wy91h0qv4filw3glw3rrjvmr5j591wrdiwc1bl3w56bpig";
        isLibrary = true;
@@ -120276,7 +119079,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "haskell-lsp-client" = callPackage
@@ -120308,23 +119110,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-lsp-types";
-       version = "0.22.0.0";
-       sha256 = "05475d5rwkmsh50q18lans7zzd34jhfdpg80m7aijg829dkphskm";
-       libraryHaskellDepends = [
-         aeson base binary bytestring data-default deepseq filepath hashable
-         lens network-uri scientific text unordered-containers
-       ];
-       description = "Haskell library for the Microsoft Language Server Protocol, data types";
-       license = lib.licenses.mit;
-     }) {};
-
-  "haskell-lsp-types_0_24_0_0" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, data-default
-     , deepseq, filepath, hashable, lens, network-uri, scientific, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp-types";
        version = "0.24.0.0";
        sha256 = "1p7k2g2xs95ylsnnz2np0w8c7p5dzmlss41g0kzblaz5n3352kbn";
        libraryHaskellDepends = [
@@ -120333,7 +119118,6 @@ self: {
        ];
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "haskell-menu" = callPackage
@@ -120549,7 +119333,6 @@ self: {
        description = "Tool for presenting PDF-based presentations";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-platform-test" = callPackage
@@ -120579,7 +119362,6 @@ self: {
        description = "A test system for the Haskell Platform environment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-player" = callPackage
@@ -120722,7 +119504,6 @@ self: {
        description = "Reflect Haskell types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-rules" = callPackage
@@ -120770,6 +119551,11 @@ self: {
        ];
        description = "Snake game implemetation in Haskell using SDL2";
        license = lib.licenses.gpl3Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskell-spacegoo" = callPackage
@@ -120836,7 +119622,6 @@ self: {
        description = "Observable orphan instances for haskell-src-exts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-src-exts-prisms" = callPackage
@@ -120979,8 +119764,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-stack-trace-plugin";
-       version = "0.1.1.1";
-       sha256 = "0mm1nyhlia00vawpwcq6dda0j9d8sgd1ls4xin0s84jplw5z9hwz";
+       version = "0.1.3.0";
+       sha256 = "1vlqf0j88qshqkc1j688x38h4sqdkww5ya4ihaz3fy8l86wwmnvw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ghc ];
@@ -121049,7 +119834,6 @@ self: {
        description = "Utilities to tie up tokens to an AST";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-ast" = callPackage
@@ -121067,7 +119851,6 @@ self: {
        description = "Haskell AST for efficient tooling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-ast-fromghc" = callPackage
@@ -121086,7 +119869,6 @@ self: {
        description = "Creating the Haskell-Tools AST from GHC's representations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-ast-gen" = callPackage
@@ -121104,7 +119886,6 @@ self: {
        description = "Facilities for generating new parts of the Haskell-Tools AST";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-ast-trf" = callPackage
@@ -121121,7 +119902,6 @@ self: {
        description = "Conversions on Haskell-Tools AST to prepare for refactorings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-backend-ghc" = callPackage
@@ -121140,7 +119920,6 @@ self: {
        description = "Creating the Haskell-Tools AST from GHC's representations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-builtin-refactorings" = callPackage
@@ -121173,7 +119952,6 @@ self: {
        description = "Refactoring Tool for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-cli" = callPackage
@@ -121210,7 +119988,6 @@ self: {
        description = "Command-line frontend for Haskell-tools Refact";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-daemon" = callPackage
@@ -121245,7 +120022,6 @@ self: {
        description = "Background process for Haskell-tools that editors can connect to";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-debug" = callPackage
@@ -121271,7 +120047,6 @@ self: {
        description = "Debugging Tools for Haskell-tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-demo" = callPackage
@@ -121303,7 +120078,6 @@ self: {
        description = "A web-based demo for Haskell-tools Refactor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-experimental-refactorings" = callPackage
@@ -121335,7 +120109,6 @@ self: {
        description = "Refactoring Tool for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-prettyprint" = callPackage
@@ -121353,7 +120126,6 @@ self: {
        description = "Pretty printing of Haskell-Tools AST";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-refactor" = callPackage
@@ -121384,7 +120156,6 @@ self: {
        description = "Refactoring Tool for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tools-rewrite" = callPackage
@@ -121407,7 +120178,6 @@ self: {
        description = "Facilities for generating new parts of the Haskell-Tools AST";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-tor" = callPackage
@@ -121442,7 +120212,6 @@ self: {
        description = "A Haskell Tor Node";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskell-type-exts" = callPackage
@@ -121615,7 +120384,6 @@ self: {
        description = "Bracketed HDBC session for HaskellDB";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-connect-hdbc-catchio-mtl" = callPackage
@@ -121632,7 +120400,6 @@ self: {
        description = "Bracketed HaskellDB HDBC session using MonadCatchIO-mtl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-connect-hdbc-catchio-tf" = callPackage
@@ -121650,7 +120417,6 @@ self: {
        description = "Bracketed HaskellDB HDBC session using MonadCatchIO-transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-connect-hdbc-catchio-transformers" = callPackage
@@ -121668,7 +120434,6 @@ self: {
        description = "Bracketed HaskellDB HDBC session using MonadCatchIO-transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-connect-hdbc-lifted" = callPackage
@@ -121686,7 +120451,6 @@ self: {
        description = "Bracketed HaskellDB HDBC session using lifted-base";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-dynamic" = callPackage
@@ -121702,7 +120466,6 @@ self: {
        description = "HaskellDB support for the dynamically loaded drivers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-flat" = callPackage
@@ -121721,7 +120484,6 @@ self: {
        description = "An experimental HaskellDB back-end in pure Haskell (no SQL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hdbc" = callPackage
@@ -121738,7 +120500,6 @@ self: {
        description = "HaskellDB support for HDBC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hdbc-mysql" = callPackage
@@ -121757,7 +120518,6 @@ self: {
        description = "HaskellDB support for the HDBC MySQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hdbc-odbc" = callPackage
@@ -121776,7 +120536,6 @@ self: {
        description = "HaskellDB support for the HDBC ODBC driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hdbc-postgresql" = callPackage
@@ -121796,7 +120555,6 @@ self: {
        description = "HaskellDB support for the HDBC PostgreSQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) postgresql;};
 
   "haskelldb-hdbc-sqlite3" = callPackage
@@ -121815,7 +120573,6 @@ self: {
        description = "HaskellDB support for the HDBC SQLite driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hsql" = callPackage
@@ -121828,7 +120585,6 @@ self: {
        description = "HaskellDB support for HSQL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hsql-mysql" = callPackage
@@ -121847,7 +120603,6 @@ self: {
        description = "HaskellDB support for the HSQL MySQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hsql-odbc" = callPackage
@@ -121866,7 +120621,6 @@ self: {
        description = "HaskellDB support for the HSQL ODBC driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hsql-oracle" = callPackage
@@ -121904,7 +120658,6 @@ self: {
        description = "HaskellDB support for the HSQL PostgreSQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-hsql-sqlite" = callPackage
@@ -121942,7 +120695,6 @@ self: {
        description = "HaskellDB support for the HSQL SQLite3 driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-th" = callPackage
@@ -121955,7 +120707,6 @@ self: {
        description = "Template Haskell utilities for HaskellDB";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelldb-wx" = callPackage
@@ -121983,8 +120734,6 @@ self: {
        ];
        description = "For parsing Haskell-ish languages";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskellscrabble" = callPackage
@@ -122062,7 +120811,6 @@ self: {
        description = "Elm to Haskell translation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskelzinc" = callPackage
@@ -122170,7 +120918,6 @@ self: {
        description = "A monad transformer supporting Haskey transactions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskgame" = callPackage
@@ -122183,7 +120930,6 @@ self: {
        description = "Haskell game library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskheap" = callPackage
@@ -122245,6 +120991,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hasklepias" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, flow, hspec
+     , interval-algebra, QuickCheck, safe, text, time
+     , unordered-containers, vector, witherable
+     }:
+     mkDerivation {
+       pname = "hasklepias";
+       version = "0.7.1";
+       sha256 = "1w6gs3n1g12sw2w72l04l27na3kgmyqsip8d53wpmslqwccr6blc";
+       libraryHaskellDepends = [
+         aeson base bytestring containers flow interval-algebra QuickCheck
+         safe text time unordered-containers vector witherable
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers flow hspec interval-algebra
+         QuickCheck text time unordered-containers vector
+       ];
+       description = "Define features from events";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "haskmon" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, http-streams
      , io-streams, time, vector
@@ -122306,7 +121075,6 @@ self: {
        description = "An adapter for haskoin to network-bitcoin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-core" = callPackage
@@ -122319,8 +121087,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.20.0";
-       sha256 = "10pdpg75r2gch32p3mkiz82qip9rwkc5lrq0zxy13pqrmxdy162k";
+       version = "0.20.3";
+       sha256 = "0g5d6w6vwkbxf4iqx998q2c5cnhq1bav0ikksdbj98w8b7ga6v0z";
        libraryHaskellDepends = [
          aeson array base base16 binary bytes bytestring cereal conduit
          containers cryptonite deepseq entropy hashable hspec memory mtl
@@ -122339,7 +121107,6 @@ self: {
        description = "Bitcoin & Bitcoin Cash library for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-crypto" = callPackage
@@ -122363,7 +121130,6 @@ self: {
        description = "Implementation of Bitcoin cryptographic primitives";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-node" = callPackage
@@ -122376,8 +121142,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.17.2";
-       sha256 = "04i8016qrrwzbz8yxnppfzlrba1d86zp2j71dqd0p7lc3341caa8";
+       version = "0.17.12";
+       sha256 = "0jb1ypscy5hgvbw5jrd5qjl7mdi2qgc7h3amyi50zh2m3lhmgjnv";
        libraryHaskellDepends = [
          base bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core monad-logger mtl network nqe
@@ -122396,7 +121162,6 @@ self: {
        description = "P2P library for Bitcoin and Bitcoin Cash";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-protocol" = callPackage
@@ -122420,7 +121185,6 @@ self: {
        description = "Implementation of the Bitcoin network protocol messages";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-script" = callPackage
@@ -122446,7 +121210,6 @@ self: {
        description = "Implementation of Bitcoin script parsing and evaluation";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-store" = callPackage
@@ -122462,8 +121225,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.52.8";
-       sha256 = "14qwdh0fwyqhb3pgykprgp1vs78y4ixn2dn55bsi9x53cjjvp1qp";
+       version = "0.53.2";
+       sha256 = "04wm92b7687qivwjia69gahd9y2dasirmyxcbv8liqfp5xfmjbmz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122497,7 +121260,6 @@ self: {
        description = "Storage and index for Bitcoin and Bitcoin Cash";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-store-data" = callPackage
@@ -122509,8 +121271,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "0.52.6";
-       sha256 = "0npiib582rnbk3w9f0m71y84xpk7akzkypfxrd9n1s4h3dh0qsfw";
+       version = "0.53.2";
+       sha256 = "1i949izj89g797zp07qxjx16sd2591gsxbpq94v52vzgd6rl9h7n";
        libraryHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core http-client http-types lens mtl
@@ -122527,7 +121289,6 @@ self: {
        description = "Data for Haskoin Store";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoin-util" = callPackage
@@ -122595,7 +121356,6 @@ self: {
        description = "Implementation of a Bitcoin SPV Wallet with BIP32 and multisig support";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoon" = callPackage
@@ -122614,7 +121374,6 @@ self: {
        description = "Web Application Abstraction";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoon-httpspec" = callPackage
@@ -122631,7 +121390,6 @@ self: {
        description = "Integrating HttpSpec with Haskoon";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskoon-salvia" = callPackage
@@ -122650,7 +121408,6 @@ self: {
        description = "Integrating HttpSpec with Haskoon";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskore" = callPackage
@@ -122695,7 +121452,6 @@ self: {
        description = "Routines for realtime playback of Haskore songs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskore-supercollider" = callPackage
@@ -122718,7 +121474,6 @@ self: {
        description = "Haskore back-end for SuperCollider";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskore-synthesizer" = callPackage
@@ -122739,7 +121494,6 @@ self: {
        description = "Music rendering coded in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskore-vintage" = callPackage
@@ -122834,7 +121588,6 @@ self: {
        description = "Torch for tensors and neural networks in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasktorch-codegen" = callPackage
@@ -122925,7 +121678,6 @@ self: {
        description = "Bindings to Cutorch";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {ATen = null;};
 
   "hasktorch-indef" = callPackage
@@ -122955,7 +121707,6 @@ self: {
        description = "Core Hasktorch abstractions wrapping FFI bindings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasktorch-signatures" = callPackage
@@ -122982,7 +121733,6 @@ self: {
        description = "Backpack signatures for Tensor operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasktorch-signatures-partial" = callPackage
@@ -123079,7 +121829,6 @@ self: {
        description = "Neural architectures in hasktorch";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskus-binary" = callPackage
@@ -123125,8 +121874,6 @@ self: {
        ];
        description = "Haskus system build tool";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskus-utils" = callPackage
@@ -123149,8 +121896,6 @@ self: {
        ];
        description = "Haskus utility modules";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskus-utils-compat" = callPackage
@@ -123168,7 +121913,6 @@ self: {
        description = "Compatibility modules with other external packages (ByteString, etc.)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskus-utils-data" = callPackage
@@ -123186,8 +121930,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Haskus data utility modules";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskus-utils-types" = callPackage
@@ -123200,8 +121942,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Haskus types utility modules";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskus-utils-variant" = callPackage
@@ -123224,8 +121964,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq QuickCheck ];
        description = "Variant and EADT";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskus-web" = callPackage
@@ -123243,7 +121981,6 @@ self: {
        description = "Haskus web";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haskyapi" = callPackage
@@ -123292,7 +122029,6 @@ self: {
        description = "Loan calculator engine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasloGUI" = callPackage
@@ -123312,7 +122048,6 @@ self: {
        description = "Loan calculator Gtk GUI. Based on haslo (Haskell Loan) library.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasmin" = callPackage
@@ -123357,7 +122092,6 @@ self: {
        description = "This package enables to write SPARQL queries to remote endpoints";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haspell" = callPackage
@@ -123461,7 +122195,6 @@ self: {
        description = "A declarative abstraction over PostgreSQL Cursor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-cursor-transaction" = callPackage
@@ -123657,7 +122390,6 @@ self: {
        description = "A \"PostgreSQL\" backend for the \"hasql\" library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-postgres-options" = callPackage
@@ -123673,7 +122405,6 @@ self: {
        description = "An \"optparse-applicative\" parser for \"hasql-postgres\"";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-queue" = callPackage
@@ -123709,7 +122440,6 @@ self: {
        description = "A PostgreSQL backed queue";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-simple" = callPackage
@@ -123747,7 +122477,6 @@ self: {
        description = "Template Haskell utilities for Hasql";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-transaction" = callPackage
@@ -123782,6 +122511,24 @@ self: {
        testHaskellDepends = [ base hasql tasty tasty-quickcheck ];
        description = "Parse PostgreSQL connection URI into Hasql.Connection Settings";
        license = lib.licenses.mit;
+     }) {};
+
+  "hasqlator-mysql" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, containers, dlist
+     , io-streams, megaparsec, mtl, mysql-haskell, pretty-simple
+     , prettyprinter, scientific, template-haskell, text, time
+     }:
+     mkDerivation {
+       pname = "hasqlator-mysql";
+       version = "0.0.3";
+       sha256 = "1b1nw3l96gvf2laxw7w72w8ya8aazdhv4w7c5ly47n09hx9q77zp";
+       libraryHaskellDepends = [
+         aeson base binary bytestring containers dlist io-streams megaparsec
+         mtl mysql-haskell pretty-simple prettyprinter scientific
+         template-haskell text time
+       ];
+       description = "composable SQL generation";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -123846,7 +122593,6 @@ self: {
        description = "render hastache templates using aeson values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haste" = callPackage
@@ -123882,7 +122628,6 @@ self: {
        description = "Framework for type-safe, distributed web applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haste-compiler" = callPackage
@@ -123946,7 +122691,6 @@ self: {
        description = "Base libraries for haste-compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haste-markup" = callPackage
@@ -123962,7 +122706,6 @@ self: {
        description = "A port of blaze-markup and blaze-html to Haste";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "haste-perch" = callPackage
@@ -124262,7 +123005,6 @@ self: {
        description = "A twitter client for GTK+. Beta version.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hax" = callPackage
@@ -124434,7 +123176,6 @@ self: {
        description = "A simple HTTP proxy server library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hayland" = callPackage
@@ -124496,7 +123237,6 @@ self: {
        description = "N-back memory game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hbayes" = callPackage
@@ -124527,7 +123267,6 @@ self: {
        description = "Bayesian Networks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hbb" = callPackage
@@ -124545,7 +123284,6 @@ self: {
        description = "Haskell Busy Bee, a backend for text editors";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hbcd" = callPackage
@@ -124558,7 +123296,6 @@ self: {
        description = "Packed binary-coded decimal (BCD) serialization";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hbeanstalk" = callPackage
@@ -124633,7 +123370,6 @@ self: {
        description = "An optimizing Brainfuck compiler and evaluator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hblas" = callPackage
@@ -124821,7 +123557,6 @@ self: {
        description = "haskell cg (minus) (cairo rendering)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hcheat" = callPackage
@@ -124835,40 +123570,40 @@ self: {
        description = "A collection of code cheatsheet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hcheckers" = callPackage
     ({ mkDerivation, aeson, array, base, binary, bits, bytes
      , bytestring, clock, concurrent-extra, containers, data-default
-     , directory, ekg, ekg-core, exceptions, fast-logger, filepath
-     , hashable, hashtables, heavy-logger, hsyslog, http-types
-     , megaparsec, microlens, monad-metrics, mtl, mwc-random, network
-     , optparse-applicative, psqueues, random, random-access-file
-     , random-shuffle, scotty, stm, stm-containers, store
-     , template-haskell, text, text-format-heavy, unix, unix-bytestring
-     , unordered-containers, vector, wai, warp, yaml
+     , directory, ekg, ekg-core, exceptions, fast-logger, filepath, Glob
+     , hashable, hashtables, heavy-logger, hsyslog, http-types, list-t
+     , megaparsec, microlens, modern-uri, monad-metrics, mtl, mwc-random
+     , network, optparse-applicative, psqueues, random
+     , random-access-file, random-shuffle, req, scotty, stm
+     , stm-containers, store, template-haskell, text, text-format-heavy
+     , unix, unix-bytestring, unordered-containers, vector, wai, warp
+     , yaml
      }:
      mkDerivation {
        pname = "hcheckers";
-       version = "0.1.0.1";
-       sha256 = "1l4cj7v4scnz5cq05294ym4gyv163ry09bpxp1vg1m1v88ww5i2w";
+       version = "0.1.0.2";
+       sha256 = "1v4hnqvi47kn10c1rjgsggxmajy7xnl462ghb2fs61ksbmrdi5b8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson array base binary bits bytes bytestring clock
          concurrent-extra containers data-default directory ekg ekg-core
-         exceptions fast-logger filepath hashable hashtables heavy-logger
-         hsyslog http-types megaparsec microlens monad-metrics mtl
-         mwc-random network optparse-applicative psqueues random
-         random-access-file random-shuffle scotty stm stm-containers store
-         template-haskell text text-format-heavy unix unix-bytestring
-         unordered-containers vector wai warp yaml
+         exceptions fast-logger filepath Glob hashable hashtables
+         heavy-logger hsyslog http-types list-t megaparsec microlens
+         modern-uri monad-metrics mtl mwc-random network
+         optparse-applicative psqueues random random-access-file
+         random-shuffle req scotty stm stm-containers store template-haskell
+         text text-format-heavy unix unix-bytestring unordered-containers
+         vector wai warp yaml
        ];
        description = "Implementation of checkers (\"draughts\") board game - server application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hchesslib" = callPackage
@@ -125165,7 +123900,6 @@ self: {
        description = "Haskell Database Independent interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdbi-conduit" = callPackage
@@ -125187,7 +123921,6 @@ self: {
        description = "Conduit glue for HDBI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdbi-postgresql" = callPackage
@@ -125216,7 +123949,6 @@ self: {
        description = "PostgreSQL driver for hdbi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdbi-sqlite" = callPackage
@@ -125237,7 +123969,6 @@ self: {
        description = "SQlite driver for HDBI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdbi-tests" = callPackage
@@ -125258,7 +123989,6 @@ self: {
        description = "test suite for testing HDBI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdevtools" = callPackage
@@ -125298,7 +124028,6 @@ self: {
        description = "HDF: Uniform Rate Audio Signal Processing in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdf5-lite" = callPackage
@@ -125352,7 +124081,6 @@ self: {
        description = "Pattern-Expression-based differencing of arbitrary types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdigest" = callPackage
@@ -125388,7 +124116,6 @@ self: {
        description = "An IDL compiler for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdis86" = callPackage
@@ -125485,7 +124212,6 @@ self: {
        description = "Haskell docs tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdph" = callPackage
@@ -125513,7 +124239,6 @@ self: {
        description = "Haskell distributed parallel Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hdph-closure" = callPackage
@@ -125707,7 +124432,6 @@ self: {
        description = "An opinionated app prelude and framework in the UnliftIO style";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heart-core" = callPackage
@@ -125740,8 +124464,6 @@ self: {
        libraryHaskellDepends = [ async base io-streams time ];
        description = "Heartbeats for io-streams";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heatitup" = callPackage
@@ -125772,7 +124494,6 @@ self: {
        description = "Find and annotate ITDs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heatitup-complete" = callPackage
@@ -125796,8 +124517,6 @@ self: {
        ];
        description = "Find and annotate ITDs with assembly or read pair joining";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heatshrink" = callPackage
@@ -125832,7 +124551,6 @@ self: {
        description = "Simle api for heavy logger";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heavy-logger" = callPackage
@@ -125855,7 +124573,6 @@ self: {
        description = "Full-weight logging based on fast-logger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heavy-logger-amazon" = callPackage
@@ -125872,7 +124589,6 @@ self: {
        description = "heavy-logger compatibility with amazonka-core logging";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heavy-logger-instances" = callPackage
@@ -125894,7 +124610,6 @@ self: {
        description = "Orphan instances for data types in heavy-logger package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hebrew-time" = callPackage
@@ -125922,7 +124637,6 @@ self: {
        description = "Elliptic Curve Cryptography for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heckin" = callPackage
@@ -125980,6 +124694,7 @@ self: {
        ];
        description = "Release with confidence";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "hedgehog-checkers" = callPackage
@@ -126009,7 +124724,6 @@ self: {
        testHaskellDepends = [ base hedgehog hedgehog-checkers lens ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hedgehog-classes" = callPackage
@@ -126054,7 +124768,6 @@ self: {
        description = "Use 'fakedata' with 'hedgehog'";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hedgehog-fn" = callPackage
@@ -126108,7 +124821,6 @@ self: {
        description = "JSON generators for Hedgehog";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hedgehog-generic" = callPackage
@@ -126163,8 +124875,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-servant";
-       version = "0.0.0.1";
-       sha256 = "04plk39ni5m9arcphb4464bpl12r6aw2zfnzlzhpa1i49qlpivc3";
+       version = "0.0.1.1";
+       sha256 = "17dnj82jgbz23is22kqc60nz46vb4rhlsn1aimaynx7cld0g63vd";
        libraryHaskellDepends = [
          base bytestring case-insensitive hedgehog http-client http-media
          http-types servant servant-client servant-server string-conversions
@@ -126190,8 +124902,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedis";
-       version = "0.14.2";
-       sha256 = "1zm8llpbbvr5f5s0i4qsn025734s1mamfvm1dgxw4p87m9zhprlm";
+       version = "0.14.4";
+       sha256 = "0h6s3x3pylyidjbzjqyrmc2cm5ls67m9iij35fn48rvq4l41w9h9";
        libraryHaskellDepends = [
          async base bytestring bytestring-lexing containers deepseq errors
          exceptions HTTP mtl network network-uri resource-pool scanner stm
@@ -126286,7 +124998,6 @@ self: {
        description = "Caching mandatory data with Redis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hedis-simple" = callPackage
@@ -126357,8 +125068,6 @@ self: {
        ];
        description = "Base functor for EDN AST";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hedra" = callPackage
@@ -126388,6 +125097,8 @@ self: {
        pname = "heidi";
        version = "0.1.0";
        sha256 = "1l4am8pqk3xrmjmjv48jia60d2vydpj2wy0iyxqiidnc7b8p5j8m";
+       revision = "1";
+       editedCabalFile = "0fbx6hkxdbrhh30j2bs3zrxknrlr6z29r7srxnpsgd4n0rkdajar";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -126402,7 +125113,6 @@ self: {
        description = "Tidy data in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hein" = callPackage
@@ -126482,7 +125192,6 @@ self: {
        description = "Use JSON directly from Heist templates";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heist-async" = callPackage
@@ -126544,7 +125253,6 @@ self: {
        description = "New Relic® agent SDK wrapper for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {newrelic-collector-client = null; newrelic-common = null; 
          newrelic-transaction = null;};
 
@@ -126564,7 +125272,6 @@ self: {
        description = "New Relic® agent SDK wrapper for wai";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "helisp" = callPackage
@@ -126604,7 +125311,6 @@ self: {
        description = "The Helium Compiler";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "helium-overture" = callPackage
@@ -126692,7 +125398,6 @@ self: {
        description = "Distributed hackage mirror";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hellnet" = callPackage
@@ -126718,7 +125423,6 @@ self: {
        description = "Simple, distributed, anonymous data sharing network";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hello" = callPackage
@@ -126832,7 +125536,6 @@ self: {
        description = "Haskell port of the Emokit EEG project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hen" = callPackage
@@ -126854,7 +125557,6 @@ self: {
        description = "Haskell bindings to Xen hypervisor interface";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {xenctrl = null;};
 
   "henet" = callPackage
@@ -126870,7 +125572,6 @@ self: {
        description = "Bindings and high level interface for to ENet v1.3.9";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hepevt" = callPackage
@@ -126883,7 +125584,6 @@ self: {
        description = "HEPEVT parser";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "her-lexer" = callPackage
@@ -126909,7 +125609,6 @@ self: {
        description = "Parsec frontend to \"her-lexer\" for Haskell source code";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "herbalizer" = callPackage
@@ -127185,8 +125884,8 @@ self: {
      }:
      mkDerivation {
        pname = "heredocs";
-       version = "0.2.0.0";
-       sha256 = "1649vhzymizmmi3ggmqxyq4b0fhrpipj4ljy1w7hca2wyh4jm1yw";
+       version = "0.2.1.0";
+       sha256 = "0wjj5sy4mpd4ahavdmi67j70xs1wrga8dnzr5jv8cjnqjj2p8f59";
        libraryHaskellDepends = [
          base bytestring doctest parsec template-haskell text
        ];
@@ -127237,7 +125936,6 @@ self: {
        description = "Haskell Equational Reasoning Model-to-Implementation Tunnel";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hermit-syb" = callPackage
@@ -127254,7 +125952,6 @@ self: {
        description = "HERMIT plugin for optimizing Scrap-Your-Boilerplate traversals";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "herms" = callPackage
@@ -127339,7 +126036,6 @@ self: {
        description = "A library for compiling and serving static web assets";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "herringbone-embed" = callPackage
@@ -127357,7 +126053,6 @@ self: {
        description = "Embed preprocessed web assets in your executable with Template Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "herringbone-wai" = callPackage
@@ -127375,7 +126070,6 @@ self: {
        description = "Wai adapter for the Herringbone web asset preprocessor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hesh" = callPackage
@@ -127403,7 +126097,6 @@ self: {
        description = "the Haskell Extensible Shell: Haskell for Bash-style scripts";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hesql" = callPackage
@@ -127422,7 +126115,6 @@ self: {
        description = "Haskell's embedded SQL";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hetero-dict" = callPackage
@@ -127506,7 +126198,6 @@ self: {
        description = "A heterogeneous list type";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hetris" = callPackage
@@ -127557,8 +126248,8 @@ self: {
      }:
      mkDerivation {
        pname = "hevm";
-       version = "0.44.1";
-       sha256 = "1ygrksnqav1cw9pq1x2xi0na5fxy0phyc0v48nkzpis868gy0b97";
+       version = "0.46.0";
+       sha256 = "1pqs4hcjy1gipdp63d8jcy035n96rfx14x0s67ihmh16s11i85bz";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -127607,7 +126298,6 @@ self: {
        description = "Genetic Mona Lisa problem in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hevolisa-dph" = callPackage
@@ -127627,7 +126317,6 @@ self: {
        description = "Genetic Mona Lisa problem in Haskell - using Data Parallel Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hex" = callPackage
@@ -127651,8 +126340,6 @@ self: {
        testHaskellDepends = [ base bytestring text ];
        description = "ByteString-Text hexidecimal conversions";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hexchat" = callPackage
@@ -127795,7 +126482,6 @@ self: {
        description = "Chunked XML parsing using iteratees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hexpat-lens" = callPackage
@@ -127996,8 +126682,6 @@ self: {
        ];
        description = "Streaming-friendly XML parsers";
        license = lib.licenses.cc0;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heyefi" = callPackage
@@ -128052,8 +126736,6 @@ self: {
        ];
        description = "Heyting and Boolean algebras";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hfann" = callPackage
@@ -128090,7 +126772,6 @@ self: {
        description = "Flash debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hfiar" = callPackage
@@ -128107,7 +126788,6 @@ self: {
        description = "Four in a Row in Haskell!!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hflags" = callPackage
@@ -128295,7 +126975,6 @@ self: {
        description = "Haskell Genetic Algorithm Library";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hgdbmi" = callPackage
@@ -128351,7 +127030,6 @@ self: {
        description = "Random generation of modal and hybrid logic formulas";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hgeometric" = callPackage
@@ -128488,7 +127166,6 @@ self: {
        description = "Writing geometric primitives from HGeometry as SVG Files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hgeos" = callPackage
@@ -128503,8 +127180,6 @@ self: {
        testHaskellDepends = [ base MissingH ];
        description = "Simple Haskell bindings to GEOS C API";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) geos;};
 
   "hgettext" = callPackage
@@ -128575,7 +127250,6 @@ self: {
        description = "Haskell bindings to the GitHub API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hgl-example" = callPackage
@@ -128605,8 +127279,6 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Haskell interface to GMP";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hgom" = callPackage
@@ -128739,8 +127411,6 @@ self: {
        ];
        description = "Happy Haskell Programming";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hhwloc" = callPackage
@@ -128845,7 +127515,6 @@ self: {
        description = "Relatively efficient Tcl interpreter with support for basic operations";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hichi" = callPackage
@@ -128926,6 +127595,9 @@ self: {
        librarySystemDepends = [ systemd ];
        description = "Haskell bindings to HIDAPI";
        license = lib.licenses.mit;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) systemd;};
 
   "hidden-char" = callPackage
@@ -129098,8 +127770,6 @@ self: {
        ];
        description = "Draw diagrams of dendrograms made by hierarchical-clustering";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hierarchical-env" = callPackage
@@ -129109,8 +127779,8 @@ self: {
      }:
      mkDerivation {
        pname = "hierarchical-env";
-       version = "0.1.0.0";
-       sha256 = "0syx9i9z9j75wbqsrwl8nqhr025df6vmgb4p767sdb7dncpqkph9";
+       version = "0.2.0.2";
+       sha256 = "08la6kwszxgziri6yhiy9blx1fqlbjpj2jggplrn6pjl2swa0np0";
        libraryHaskellDepends = [
          base method microlens microlens-mtl microlens-th rio
          template-haskell th-abstraction
@@ -129122,6 +127792,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "hierarchical environments for dependency injection";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hierarchical-exceptions" = callPackage
@@ -129166,7 +127838,6 @@ self: {
        description = "Hierarchical spectral clustering of a graph";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hierarchy" = callPackage
@@ -129314,8 +127985,8 @@ self: {
      }:
      mkDerivation {
        pname = "highjson";
-       version = "0.4.0.0";
-       sha256 = "0qk9l84arc1qhagjmvna7l69s196ndhbs8ndxngdb7dx3bnhbsy3";
+       version = "0.5.0.0";
+       sha256 = "0phf4dsfsvcgrf465xf7jqxnvjfvypsqfpg1p92dqp7m7iqa2hwd";
        libraryHaskellDepends = [ aeson base hvect lens text ];
        testHaskellDepends = [ aeson base hspec lens QuickCheck text ];
        benchmarkHaskellDepends = [
@@ -129333,8 +128004,8 @@ self: {
      }:
      mkDerivation {
        pname = "highjson-swagger";
-       version = "0.4.0.0";
-       sha256 = "07vyp16gvzk9k1fr1hkxv0mibfhl2cc9xrad16357zb4swpjvw1d";
+       version = "0.5.0.0";
+       sha256 = "1nc1fknag944fzjfg0fshbqzv47awrxz5yv6gdj2nz9gmfshcjg9";
        libraryHaskellDepends = [
          base highjson hvect insert-ordered-containers lens swagger2 text
        ];
@@ -129344,7 +128015,6 @@ self: {
        description = "Derive swagger instances from highjson specs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "highjson-th" = callPackage
@@ -129354,8 +128024,8 @@ self: {
      }:
      mkDerivation {
        pname = "highjson-th";
-       version = "0.4.0.0";
-       sha256 = "1i826b3z730vd2c0fqisbrsb9wsshmvfzvxrm37b2vnvm4vlj37k";
+       version = "0.5.0.0";
+       sha256 = "0ama2kks0z7cg7kmrs6gl6mf23dg1bkzhvmp5myjgn01y4sb9w91";
        libraryHaskellDepends = [
          aeson base highjson highjson-swagger swagger2 template-haskell text
        ];
@@ -129366,7 +128036,6 @@ self: {
        description = "Template Haskell helpers for highjson specs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "highlight" = callPackage
@@ -129557,7 +128226,6 @@ self: {
        description = "multithreaded snmp poller for riemann";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hindent" = callPackage
@@ -129592,8 +128260,6 @@ self: {
        ];
        description = "Extensible Haskell pretty printer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hindley-milner" = callPackage
@@ -129639,7 +128305,6 @@ self: {
        description = "Interface and utilities for classifiers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hinduce-classifier-decisiontree" = callPackage
@@ -129658,7 +128323,6 @@ self: {
        description = "Decision Tree Classifiers for hInduce";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hinduce-examples" = callPackage
@@ -129679,7 +128343,6 @@ self: {
        description = "Example data for hInduce";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hinduce-missingh" = callPackage
@@ -129788,6 +128451,9 @@ self: {
        ];
        description = "Haskell binding to inotify, using ByteString filepaths";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "hinquire" = callPackage
@@ -129863,7 +128529,6 @@ self: {
        description = "A server process that runs hint";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hinter" = callPackage
@@ -129930,7 +128595,6 @@ self: {
        description = "Space Invaders";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hinze-streams" = callPackage
@@ -129943,7 +128607,6 @@ self: {
        description = "Streams and Unique Fixed Points";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hip" = callPackage
@@ -129968,8 +128631,6 @@ self: {
        ];
        description = "Haskell Image Processing (HIP) Library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hipbot" = callPackage
@@ -129995,7 +128656,6 @@ self: {
        description = "A library for building HipChat Bots";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hipchat-hs" = callPackage
@@ -130058,6 +128718,8 @@ self: {
        sha256 = "18hwc5x902k2dsk8895sr8nil4445b9lazzdzbjzpllx4smf0lvz";
        libraryHaskellDepends = [ aeson base bytestring servant ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hipsql-client" = callPackage
@@ -130080,6 +128742,7 @@ self: {
          http-types mtl servant-client servant-client-core
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hipsql-monad" = callPackage
@@ -130111,6 +128774,7 @@ self: {
          servant-server warp
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hircules" = callPackage
@@ -130152,7 +128816,6 @@ self: {
        description = "Calculates IRT 2PL and 3PL models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hissmetrics" = callPackage
@@ -130194,7 +128857,6 @@ self: {
        description = "Umbrella package for the historical dictionary of Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hist-pl-dawg" = callPackage
@@ -130210,7 +128872,6 @@ self: {
        description = "A generic, DAWG-based dictionary";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hist-pl-fusion" = callPackage
@@ -130228,7 +128889,6 @@ self: {
        description = "Merging historical dictionary with PoliMorf";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hist-pl-lexicon" = callPackage
@@ -130246,7 +128906,6 @@ self: {
        description = "A binary representation of the historical dictionary of Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hist-pl-lmf" = callPackage
@@ -130259,7 +128918,6 @@ self: {
        description = "LMF parsing for the historical dictionary of Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hist-pl-transliter" = callPackage
@@ -130369,7 +129027,6 @@ self: {
        description = "Git like program in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hit-graph" = callPackage
@@ -130386,7 +129043,6 @@ self: {
        description = "Use graph algorithms to access and manipulate Git repos";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hit-on" = callPackage
@@ -130560,7 +129216,6 @@ self: {
        description = "JSON Schema library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hjugement" = callPackage
@@ -130611,7 +129266,6 @@ self: {
        description = "Majority Judgment and Helios-C command line tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hjugement-protocol" = callPackage
@@ -130639,6 +129293,8 @@ self: {
        ];
        description = "A cryptographic protocol for the Majority Judgment";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hkd" = callPackage
@@ -130711,8 +129367,8 @@ self: {
      }:
      mkDerivation {
        pname = "hkgr";
-       version = "0.2.7";
-       sha256 = "1p03qigrfkjj0q8ps9gx50pnz6s2rdmn2lqnybhfz8pifsqj0z7k";
+       version = "0.3";
+       sha256 = "1w8ww2dkskdfs0lh6wbn5byhnrf6mwih7n5yp81fr6awdc0k1qrm";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -130800,7 +129456,6 @@ self: {
        description = "Fast algorithm for mining closed frequent itemsets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hleap" = callPackage
@@ -130892,7 +129547,6 @@ self: {
        description = "Web API server for the hledger accounting tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hledger-chart" = callPackage
@@ -130951,6 +129605,8 @@ self: {
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hledger-iadd" = callPackage
@@ -131082,20 +129738,24 @@ self: {
 
   "hledger-stockquotes" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cmdargs, containers
-     , hedgehog, hledger-lib, req, safe, scientific, split, tasty
-     , tasty-hedgehog, tasty-hunit, text, time, unordered-containers
+     , directory, hedgehog, hledger-lib, raw-strings-qq, req, safe
+     , safe-exceptions, scientific, split, tasty, tasty-hedgehog
+     , tasty-hunit, text, time, unordered-containers, xdg-basedir, yaml
      }:
      mkDerivation {
        pname = "hledger-stockquotes";
-       version = "0.1.1.0";
-       sha256 = "1srgl70zsixbfgmh22psg7q4wqfiay2jiybyvml42iv712n7z8xx";
+       version = "0.1.2.0";
+       sha256 = "064q6qz6rrahk9ri5hr1y6n17nmd4l124xb3l8q5rvm81x3hzp3x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bytestring containers hledger-lib req safe scientific
          split text time unordered-containers
        ];
-       executableHaskellDepends = [ base bytestring cmdargs text time ];
+       executableHaskellDepends = [
+         aeson base bytestring cmdargs directory raw-strings-qq
+         safe-exceptions text time xdg-basedir yaml
+       ];
        testHaskellDepends = [
          base hedgehog tasty tasty-hedgehog tasty-hunit
        ];
@@ -131294,6 +129954,7 @@ self: {
        description = "Source code suggestions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "hlint" = callPackage
@@ -131305,8 +129966,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "3.3";
-       sha256 = "1cbmaw3ikni2fqkzyngc6qwg8k6ighy48979msfs97qg0kxjmbbd";
+       version = "3.3.1";
+       sha256 = "12l2p5pbgh1wcn2bh0ax36sclwaiky8hf09ivgz453pb5ss0jghc";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -131319,6 +129980,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Source code suggestions";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "hlint-test" = callPackage
@@ -131418,7 +130080,6 @@ self: {
        description = "High-level Redis Database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hlrdb-core" = callPackage
@@ -131452,7 +130113,6 @@ self: {
        description = "Haskell Lindenmayer Systems";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hls-brittany-plugin" = callPackage
@@ -131471,23 +130131,26 @@ self: {
        testHaskellDepends = [ base bytestring hls-test-utils text ];
        description = "Integration with the Brittany code formatter";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {hls-test-utils = null;};
+     }) {};
 
   "hls-class-plugin" = callPackage
-    ({ mkDerivation, aeson, base, containers, ghc, ghc-exactprint
-     , ghcide, hls-plugin-api, lens, lsp, shake, text, transformers
+    ({ mkDerivation, aeson, base, bytestring, containers, filepath, ghc
+     , ghc-exactprint, ghcide, hls-plugin-api, hls-test-utils, lens, lsp
+     , lsp-test, lsp-types, shake, text, transformers
      , unordered-containers
      }:
      mkDerivation {
        pname = "hls-class-plugin";
-       version = "1.0.0.0";
-       sha256 = "103rswyrbs35q6mmv19bnj4cp4r1n5mx6aazcabfakh1cix0fn60";
+       version = "1.0.0.1";
+       sha256 = "0s9pkdcgvfb9qhj9qjy6bygdyshanczcn9apq3qcw8yznl1zqilc";
        libraryHaskellDepends = [
          aeson base containers ghc ghc-exactprint ghcide hls-plugin-api lens
          lsp shake text transformers unordered-containers
        ];
+       testHaskellDepends = [
+         base bytestring filepath hls-test-utils lens lsp-test lsp-types
+         text
+       ];
        description = "Class/instance management plugin for Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
@@ -131495,15 +130158,15 @@ self: {
   "hls-eval-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, Diff, directory
      , dlist, extra, filepath, ghc, ghc-boot-th, ghc-paths, ghcide
-     , hashable, hls-plugin-api, lens, lsp, lsp-types, megaparsec, mtl
-     , parser-combinators, pretty-simple, QuickCheck, safe-exceptions
-     , shake, temporary, text, time, transformers, unliftio
-     , unordered-containers
+     , hashable, hls-plugin-api, hls-test-utils, lens, lsp, lsp-test
+     , lsp-types, megaparsec, mtl, parser-combinators, pretty-simple
+     , QuickCheck, safe-exceptions, shake, temporary, text, time
+     , transformers, unliftio, unordered-containers
      }:
      mkDerivation {
        pname = "hls-eval-plugin";
-       version = "1.0.0.0";
-       sha256 = "0pslyhgvs6xrwijkyf4jdh873mnsb8iijmkbc9aq3dljdy080fdg";
+       version = "1.1.0.0";
+       sha256 = "138l49a8y0g7yk29xdjs0jv0xmz3y8lvig45g944spj3xi8snpfx";
        libraryHaskellDepends = [
          aeson base containers deepseq Diff directory dlist extra filepath
          ghc ghc-boot-th ghc-paths ghcide hashable hls-plugin-api lens lsp
@@ -131511,6 +130174,10 @@ self: {
          QuickCheck safe-exceptions shake temporary text time transformers
          unliftio unordered-containers
        ];
+       testHaskellDepends = [
+         aeson base directory extra filepath hls-test-utils lens lsp-test
+         lsp-types text
+       ];
        description = "Eval plugin for Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
@@ -131540,10 +130207,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-explicit-imports-plugin";
-       version = "1.0.0.0";
-       sha256 = "14j89l8pkxrffllg06fj6215xqdswrbndyv5xa22f0g00acmwi6w";
-       revision = "1";
-       editedCabalFile = "0gch9wkz1h4g06xc48jhvs06jji9d0npa2zrj2gv1cbf6hjs0s92";
+       version = "1.0.0.1";
+       sha256 = "1ygs667pkc3zn66yqz6ssrxifhrc906sddmcgjnkprk7zappk2nc";
        libraryHaskellDepends = [
          aeson base containers deepseq ghc ghcide hls-plugin-api lsp
          lsp-types shake text unordered-containers
@@ -131552,35 +130217,96 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "hls-explicit-imports-plugin_1_0_0_1" = callPackage
+  "hls-explicit-imports-plugin_1_0_0_2" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, ghc, ghcide
-     , hls-plugin-api, lsp, lsp-types, shake, text, unordered-containers
+     , hls-graph, hls-plugin-api, lsp, lsp-types, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hls-explicit-imports-plugin";
-       version = "1.0.0.1";
-       sha256 = "1ygs667pkc3zn66yqz6ssrxifhrc906sddmcgjnkprk7zappk2nc";
+       version = "1.0.0.2";
+       sha256 = "1ga7phiy7i6kmin0zi0dykbkv29vh46hzrn0bkvfqjkrb41mbi8q";
        libraryHaskellDepends = [
-         aeson base containers deepseq ghc ghcide hls-plugin-api lsp
-         lsp-types shake text unordered-containers
+         aeson base containers deepseq ghc ghcide hls-graph hls-plugin-api
+         lsp lsp-types text unordered-containers
        ];
        description = "Explicit imports plugin for Haskell Language Server";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "hls-floskell-plugin" = callPackage
+    ({ mkDerivation, base, floskell, ghcide, hls-plugin-api
+     , hls-test-utils, lsp-types, text, transformers
+     }:
+     mkDerivation {
+       pname = "hls-floskell-plugin";
+       version = "1.0.0.0";
+       sha256 = "0wf4483a4xhvynqqgj6gf1qg5nv9rv4gv9rm2hwsbjq123bs0wy8";
+       libraryHaskellDepends = [
+         base floskell ghcide hls-plugin-api lsp-types text transformers
+       ];
+       testHaskellDepends = [ base hls-test-utils text ];
+       description = "Integration with the Floskell code formatter";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "hls-fourmolu-plugin" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, data-default
+     , extra, filepath, fourmolu, ghc, ghc-boot-th, ghcide
+     , hls-plugin-api, hls-test-utils, hspec-expectations, lens, lsp
+     , lsp-test, lsp-types, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hls-fourmolu-plugin";
+       version = "1.0.0.0";
+       sha256 = "1x1v9jjy80w05cg2yl0nzk3h97q16bymrqy59g1s0lzihg3wizs7";
+       libraryHaskellDepends = [
+         base extra filepath fourmolu ghc ghc-boot-th ghcide hls-plugin-api
+         lens lsp lsp-types text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers data-default filepath ghcide
+         hls-plugin-api hls-test-utils hspec-expectations lens lsp-test
+         lsp-types text unordered-containers
+       ];
+       description = "Integration with the Fourmolu code formatter";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "hls-graph" = callPackage
+    ({ mkDerivation, base, bytestring, shake, unordered-containers }:
+     mkDerivation {
+       pname = "hls-graph";
+       version = "1.3.0.0";
+       sha256 = "0mz9443jljwgi2zd6gafixfp2k8gpnrn5269qb9bjd5p4ai0bbp7";
+       libraryHaskellDepends = [
+         base bytestring shake unordered-containers
+       ];
+       description = "Haskell Language Server internal graph API";
+       license = lib.licenses.asl20;
+     }) {};
+
   "hls-haddock-comments-plugin" = callPackage
-    ({ mkDerivation, base, containers, ghc, ghc-exactprint, ghcide
-     , hls-plugin-api, lsp-types, text, unordered-containers
+    ({ mkDerivation, base, bytestring, containers, filepath, ghc
+     , ghc-exactprint, ghcide, hls-plugin-api, hls-test-utils, lsp-types
+     , text, unordered-containers
      }:
      mkDerivation {
        pname = "hls-haddock-comments-plugin";
-       version = "1.0.0.0";
-       sha256 = "1azy3rrbdi465c65f603ycj14mz1cvc9h92rrf0b0frs90hs66r3";
+       version = "1.0.0.1";
+       sha256 = "1qny8y52myd3ic893wxapbqhfdcdbil8acky91lfcylr9141154i";
        libraryHaskellDepends = [
          base containers ghc ghc-exactprint ghcide hls-plugin-api lsp-types
          text unordered-containers
        ];
+       testHaskellDepends = [
+         base bytestring filepath hls-test-utils text
+       ];
        description = "Haddock comments plugin for Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
@@ -131594,8 +130320,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-hlint-plugin";
-       version = "1.0.0.1";
-       sha256 = "0hnfh6x8l20nrj54hpkkq2yj8xkgw15xcba27hagapam2yxi1xga";
+       version = "1.0.0.2";
+       sha256 = "1qi654azf4l24sc7zaimbxm7z59xfvdvn33fsa5d8y7910w17d73";
        libraryHaskellDepends = [
          aeson apply-refact base binary bytestring containers data-default
          deepseq Diff directory extra filepath ghc ghc-exactprint ghcide
@@ -131614,8 +130340,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-plugin-api";
-       version = "1.0.0.0";
-       sha256 = "03pj0irgf9p84jn5kfd4cfyqk4xyfdf9pfrwqhb0c1ipnm4l7wal";
+       version = "1.1.0.0";
+       sha256 = "1i18a5gxa409882zpviy4paldaq43j4z1zmgr9mag2mn64vplrxy";
        libraryHaskellDepends = [
          aeson base containers data-default dependent-map dependent-sum Diff
          dlist hashable hslogger lens lsp opentelemetry process regex-tdfa
@@ -131625,45 +130351,49 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "hls-plugin-api_1_1_0_0" = callPackage
+  "hls-plugin-api_1_1_0_1" = callPackage
     ({ mkDerivation, aeson, base, containers, data-default
-     , dependent-map, dependent-sum, Diff, dlist, hashable, hslogger
-     , lens, lsp, opentelemetry, process, regex-tdfa, shake, text, unix
-     , unordered-containers
+     , dependent-map, dependent-sum, Diff, dlist, hashable, hls-graph
+     , hslogger, lens, lsp, opentelemetry, process, regex-tdfa, text
+     , unix, unordered-containers
      }:
      mkDerivation {
        pname = "hls-plugin-api";
-       version = "1.1.0.0";
-       sha256 = "1i18a5gxa409882zpviy4paldaq43j4z1zmgr9mag2mn64vplrxy";
+       version = "1.1.0.1";
+       sha256 = "0xxkpaqnzm39blgaa2f9v35pwnp8rx3jbmgysnsnb9nchnjprg9z";
        libraryHaskellDepends = [
          aeson base containers data-default dependent-map dependent-sum Diff
-         dlist hashable hslogger lens lsp opentelemetry process regex-tdfa
-         shake text unix unordered-containers
+         dlist hashable hls-graph hslogger lens lsp opentelemetry process
+         regex-tdfa text unix unordered-containers
        ];
        description = "Haskell Language Server API for plugin communication";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "hls-retrie-plugin" = callPackage
-    ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
-     , ghc, ghcide, hashable, hls-plugin-api, lsp, lsp-types, retrie
-     , safe-exceptions, shake, text, transformers, unordered-containers
+  "hls-pragmas-plugin" = callPackage
+    ({ mkDerivation, base, extra, filepath, fuzzy, ghcide
+     , hls-plugin-api, hls-test-utils, lens, lsp, lsp-test, lsp-types
+     , text, transformers, unordered-containers
      }:
      mkDerivation {
-       pname = "hls-retrie-plugin";
+       pname = "hls-pragmas-plugin";
        version = "1.0.0.0";
-       sha256 = "1m4r6nxbq1lvjkl6g1i0lbxdx4zimw6g478alnqv8n208q6fiw26";
+       sha256 = "1zkq95dklc6sdhczgr6l2hdkkrbrjy3zwp0qfz3qvf55gpxspzzs";
        libraryHaskellDepends = [
-         aeson base containers deepseq directory extra ghc ghcide hashable
-         hls-plugin-api lsp lsp-types retrie safe-exceptions shake text
-         transformers unordered-containers
+         base extra fuzzy ghcide hls-plugin-api lens lsp text transformers
+         unordered-containers
        ];
-       description = "Retrie integration plugin for Haskell Language Server";
+       testHaskellDepends = [
+         base filepath hls-test-utils lens lsp-test lsp-types text
+       ];
+       description = "Pragmas plugin for Haskell Language Server";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
-  "hls-retrie-plugin_1_0_0_2" = callPackage
+  "hls-retrie-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
      , ghc, ghcide, hashable, hls-plugin-api, lsp, lsp-types, retrie
      , safe-exceptions, shake, text, transformers, unordered-containers
@@ -131672,6 +130402,8 @@ self: {
        pname = "hls-retrie-plugin";
        version = "1.0.0.2";
        sha256 = "0jw1q0dk5jl80wbyvi1a6vszj9x3s7d2bnsbnyycbh4zgl33agwb";
+       revision = "1";
+       editedCabalFile = "03r3cb93493hr4rbd8n1ip63myssfycyijg2507kcmsly39i2qkz";
        libraryHaskellDepends = [
          aeson base containers deepseq directory extra ghc ghcide hashable
          hls-plugin-api lsp lsp-types retrie safe-exceptions shake text
@@ -131679,64 +130411,101 @@ self: {
        ];
        description = "Retrie integration plugin for Haskell Language Server";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hls-splice-plugin" = callPackage
-    ({ mkDerivation, aeson, base, containers, dlist, extra, foldl, ghc
-     , ghc-exactprint, ghcide, hls-plugin-api, lens, lsp, retrie, shake
-     , syb, text, transformers, unliftio-core, unordered-containers
+    ({ mkDerivation, aeson, base, containers, directory, dlist, extra
+     , filepath, foldl, ghc, ghc-exactprint, ghcide, hls-plugin-api
+     , hls-test-utils, lens, lsp, retrie, shake, syb, text, transformers
+     , unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "hls-splice-plugin";
-       version = "1.0.0.0";
-       sha256 = "1xm9ji64g89fn4b81gd5g0ijv88b2zhyn303hr3jxhydqpfcipjb";
+       version = "1.0.0.2";
+       sha256 = "15vg5dmssd54dazipc82sgkbc399mnfydc8y8i2i6lhz3hsgvpg1";
        libraryHaskellDepends = [
          aeson base containers dlist extra foldl ghc ghc-exactprint ghcide
          hls-plugin-api lens lsp retrie shake syb text transformers
          unliftio-core unordered-containers
        ];
+       testHaskellDepends = [
+         base directory extra filepath hls-test-utils text
+       ];
        description = "HLS Plugin to expand TemplateHaskell Splices and QuasiQuotes";
        license = lib.licenses.asl20;
      }) {};
 
+  "hls-stylish-haskell-plugin" = callPackage
+    ({ mkDerivation, base, bytestring, directory, filepath, ghc
+     , ghc-boot-th, ghcide, hls-plugin-api, hls-test-utils, lsp-types
+     , mtl, stylish-haskell, text
+     }:
+     mkDerivation {
+       pname = "hls-stylish-haskell-plugin";
+       version = "1.0.0.0";
+       sha256 = "1f2banm7lbl2grqrm0d9dnhk5fimxqan3xlsl4hjyqgy42xqqai2";
+       libraryHaskellDepends = [
+         base directory filepath ghc ghc-boot-th ghcide hls-plugin-api
+         lsp-types mtl stylish-haskell text
+       ];
+       testHaskellDepends = [ base bytestring hls-test-utils text ];
+       description = "Integration with the Stylish Haskell code formatter";
+       license = lib.licenses.asl20;
+     }) {};
+
   "hls-tactics-plugin" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, checkers, containers
-     , data-default, deepseq, directory, extra, filepath, fingertree
-     , generic-lens, ghc, ghc-boot-th, ghc-exactprint, ghc-source-gen
-     , ghcide, hie-bios, hls-plugin-api, hspec, hspec-discover
-     , hspec-expectations, lens, lsp, lsp-test, lsp-types, megaparsec
-     , mtl, QuickCheck, refinery, retrie, shake, syb, tasty
-     , tasty-ant-xml, tasty-expected-failure, tasty-golden, tasty-hunit
-     , tasty-rerun, text, transformers
+    ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
+     , filepath, fingertree, generic-lens, ghc, ghc-boot-th
+     , ghc-exactprint, ghc-source-gen, ghcide, hls-plugin-api
+     , hls-test-utils, hspec, hspec-discover, hspec-expectations, lens
+     , lsp, lsp-types, mtl, QuickCheck, refinery, retrie, shake, syb
+     , tasty-hspec, tasty-hunit, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hls-tactics-plugin";
-       version = "1.0.0.0";
-       sha256 = "0cd6d3m3w1n7x22k5xndjl9r440s5nx6q2fg3wcmdsbd3s3pg1qa";
-       isLibrary = true;
-       isExecutable = true;
+       version = "1.1.0.0";
+       sha256 = "13qysl6dwrn15kn310r04g1yv7jj9xhar659lrc8h230c4khn2qv";
        libraryHaskellDepends = [
          aeson base containers deepseq directory extra filepath fingertree
          generic-lens ghc ghc-boot-th ghc-exactprint ghc-source-gen ghcide
          hls-plugin-api lens lsp mtl refinery retrie shake syb text
-         transformers
-       ];
-       executableHaskellDepends = [
-         base data-default ghcide hls-plugin-api shake
+         transformers unordered-containers
        ];
        testHaskellDepends = [
-         aeson base bytestring checkers containers data-default deepseq
-         directory filepath ghc ghcide hie-bios hls-plugin-api hspec
-         hspec-expectations lens lsp-test lsp-types megaparsec mtl
-         QuickCheck tasty tasty-ant-xml tasty-expected-failure tasty-golden
-         tasty-hunit tasty-rerun text
+         aeson base containers deepseq directory filepath ghc ghcide
+         hls-plugin-api hls-test-utils hspec hspec-expectations lens
+         lsp-types mtl QuickCheck tasty-hspec tasty-hunit text
        ];
        testToolDepends = [ hspec-discover ];
        description = "Wingman plugin for Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
 
+  "hls-test-utils" = callPackage
+    ({ mkDerivation, aeson, async, base, blaze-markup, bytestring
+     , containers, data-default, directory, extra, filepath, ghcide
+     , hls-plugin-api, hspec, hspec-core, lens, lsp, lsp-test, lsp-types
+     , shake, tasty, tasty-expected-failure, tasty-golden, tasty-hunit
+     , tasty-rerun, temporary, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hls-test-utils";
+       version = "1.0.0.0";
+       sha256 = "18n7vb9fa39jkgr0gvsrjfc0nh09w2xlniifb25bn6z3qc3w0h6i";
+       revision = "1";
+       editedCabalFile = "048all6d50kyzln2nfp096ry5zwbair2srifhshnipg8qvs2cwpl";
+       libraryHaskellDepends = [
+         aeson async base blaze-markup bytestring containers data-default
+         directory extra filepath ghcide hls-plugin-api hspec hspec-core
+         lens lsp lsp-test lsp-types shake tasty tasty-expected-failure
+         tasty-golden tasty-hunit tasty-rerun temporary text
+         unordered-containers
+       ];
+       description = "Utilities used in the tests of Haskell Language Server";
+       license = lib.licenses.asl20;
+     }) {};
+
   "hlwm" = callPackage
     ({ mkDerivation, base, stm, transformers, unix, X11 }:
      mkDerivation {
@@ -131767,7 +130536,6 @@ self: {
        description = "Haskell LilyPond";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmark" = callPackage
@@ -131787,7 +130555,6 @@ self: {
        description = "A tool and library for Markov chains based text generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmarkup" = callPackage
@@ -131822,6 +130589,7 @@ self: {
        librarySystemDepends = [ openblasCompat ];
        description = "Numeric Linear Algebra";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {inherit (pkgs) openblasCompat;};
 
   "hmatrix-backprop" = callPackage
@@ -132154,7 +130922,6 @@ self: {
        description = "Haskell Meapsoft Parser";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmeap-utils" = callPackage
@@ -132175,7 +130942,6 @@ self: {
        description = "Haskell Meapsoft Parser Utilities";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmemdb" = callPackage
@@ -132226,7 +130992,6 @@ self: {
        description = "HMEP Multi Expression Programming – a genetic programming variant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmidi" = callPackage
@@ -132319,7 +131084,6 @@ self: {
        description = "Hidden Markov Models using LAPACK primitives";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmp3" = callPackage
@@ -132396,7 +131160,6 @@ self: {
        description = "Haskell Music Theory";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmt-diagrams" = callPackage
@@ -132415,7 +131178,6 @@ self: {
        description = "Haskell Music Theory Diagrams";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hmumps" = callPackage
@@ -132478,18 +131240,18 @@ self: {
      , http-types, lens-family, lens-family-core, lens-family-th, logict
      , megaparsec, monad-control, monadlist, mtl, neat-interpolation
      , optparse-applicative, parser-combinators, pretty-show
-     , prettyprinter, process, ref-tf, regex-tdfa, repline, scientific
-     , semialign, semialign-indexed, serialise, some, split, syb, tasty
+     , prettyprinter, process, ref-tf, regex-tdfa, relude, repline
+     , scientific, semialign, serialise, some, split, syb, tasty
      , tasty-hedgehog, tasty-hunit, tasty-th, template-haskell, text
-     , these, time, transformers, transformers-base, unix
-     , unordered-containers, vector, xml
+     , th-lift-instances, these, time, transformers, transformers-base
+     , unix, unordered-containers, vector, xml
      }:
      mkDerivation {
        pname = "hnix";
-       version = "0.12.0.1";
-       sha256 = "013jlmzzr5fcvl0w9rrvhsg8jikg0hbc8z57yzxgz109x7hrnjzc";
+       version = "0.13.1";
+       sha256 = "12mqwhvxk0w0fjbdl3ignayp08nm31qi028wq5qrkcyxw29ff1k7";
        revision = "1";
-       editedCabalFile = "136lwfb5hjwdbfik5c5dw1nhsmy8v410czmjn4i242s8jv5wm9yb";
+       editedCabalFile = "01dmzpcqav7p764dpicih8jm0g6yiiqgww8b5m6c0bfvvgfqyx2h";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -132501,27 +131263,24 @@ self: {
          lens-family lens-family-core lens-family-th logict megaparsec
          monad-control monadlist mtl neat-interpolation optparse-applicative
          parser-combinators pretty-show prettyprinter process ref-tf
-         regex-tdfa scientific semialign semialign-indexed serialise some
-         split syb template-haskell text these time transformers
+         regex-tdfa relude scientific semialign serialise some split syb
+         template-haskell text th-lift-instances these time transformers
          transformers-base unix unordered-containers vector xml
        ];
        executableHaskellDepends = [
-         aeson base base16-bytestring bytestring comonad containers data-fix
-         deepseq exceptions filepath free haskeline mtl optparse-applicative
-         pretty-show prettyprinter ref-tf repline serialise template-haskell
-         text time transformers unordered-containers
+         aeson base comonad containers data-fix deepseq exceptions filepath
+         free haskeline optparse-applicative pretty-show prettyprinter
+         ref-tf relude repline serialise template-haskell time
        ];
        testHaskellDepends = [
-         base base16-bytestring bytestring containers data-fix deepseq Diff
-         directory exceptions filepath Glob hedgehog megaparsec mtl
-         neat-interpolation optparse-applicative pretty-show prettyprinter
-         process serialise split tasty tasty-hedgehog tasty-hunit tasty-th
-         template-haskell text time transformers unix unordered-containers
+         base containers data-fix Diff directory exceptions filepath Glob
+         hedgehog megaparsec neat-interpolation optparse-applicative
+         pretty-show prettyprinter process relude serialise split tasty
+         tasty-hedgehog tasty-hunit tasty-th template-haskell time unix
        ];
        benchmarkHaskellDepends = [
-         base base16-bytestring bytestring containers criterion data-fix
-         deepseq exceptions filepath mtl optparse-applicative serialise
-         template-haskell text time transformers unordered-containers
+         base criterion data-fix exceptions filepath optparse-applicative
+         relude serialise template-haskell time
        ];
        description = "Haskell implementation of the Nix language";
        license = lib.licenses.bsd3;
@@ -132531,16 +131290,16 @@ self: {
     ({ mkDerivation, algebraic-graphs, attoparsec, base
      , base16-bytestring, base64-bytestring, binary, bytestring, cereal
      , containers, cryptohash-md5, cryptohash-sha1, cryptohash-sha256
-     , cryptohash-sha512, directory, filepath, hashable, lifted-base
-     , monad-control, mtl, nix-derivation, process, saltine, tasty
-     , tasty-discover, tasty-golden, tasty-hspec, tasty-hunit
+     , cryptohash-sha512, directory, filepath, hashable, hspec
+     , lifted-base, monad-control, mtl, nix-derivation, process, saltine
+     , tasty, tasty-discover, tasty-golden, tasty-hspec, tasty-hunit
      , tasty-quickcheck, temporary, text, time, unix
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "hnix-store-core";
-       version = "0.4.2.0";
-       sha256 = "02i7vxhpaqwyjvd6w2raxjz7r0xxs37x5b6pq9rw6l1l0k18nx5i";
+       version = "0.4.3.0";
+       sha256 = "17l7198s3dzjx416nplinyghbqgignvpvxkww241gjv4p23izf77";
        libraryHaskellDepends = [
          algebraic-graphs attoparsec base base16-bytestring
          base64-bytestring bytestring cereal containers cryptohash-md5
@@ -132550,8 +131309,9 @@ self: {
        ];
        testHaskellDepends = [
          attoparsec base base16-bytestring base64-bytestring binary
-         bytestring containers directory filepath process tasty tasty-golden
-         tasty-hspec tasty-hunit tasty-quickcheck temporary text unix
+         bytestring containers directory filepath hspec process tasty
+         tasty-golden tasty-hspec tasty-hunit tasty-quickcheck temporary
+         text unix
        ];
        testToolDepends = [ tasty-discover ];
        description = "Core effects for interacting with the Nix store";
@@ -132565,8 +131325,8 @@ self: {
      }:
      mkDerivation {
        pname = "hnix-store-remote";
-       version = "0.4.2.0";
-       sha256 = "17v785dql4rl2yn1qdagvnyx8y9r3bd02npg51mfqhl49knd92fr";
+       version = "0.4.3.1";
+       sha256 = "1wp6z5f13fkgh3mdzr1zcqdvsx1j90l5isf671gsg43brsv4c2vl";
        libraryHaskellDepends = [
          attoparsec base binary bytestring containers hnix-store-core mtl
          network nix-derivation text time unordered-containers
@@ -132591,6 +131351,8 @@ self: {
        ];
        description = "A reasonably fast and simple neural network library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hnock" = callPackage
@@ -132661,7 +131423,6 @@ self: {
        description = "Log message normalisation tool producing structured JSON messages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ho-rewriting" = callPackage
@@ -132746,7 +131507,6 @@ self: {
        description = "A source code editor aiming for the convenience of use";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hobbes" = callPackage
@@ -132783,8 +131543,6 @@ self: {
        ];
        description = "A library for canonically representing terms with binding";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hocilib" = callPackage
@@ -132982,8 +131740,6 @@ self: {
        ];
        description = "Bindings to the Toggl.com REST API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hogre" = callPackage
@@ -133000,7 +131756,6 @@ self: {
        description = "Haskell binding to a subset of OGRE";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {OGRE = null; OgreMain = null; cgen-hs = null; grgen = null;};
 
   "hogre-examples" = callPackage
@@ -133017,7 +131772,6 @@ self: {
        description = "Examples for using Hogre";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {OgreMain = null;};
 
   "hois" = callPackage
@@ -133178,7 +131932,6 @@ self: {
        description = "Start your Haskell project with cabal, git and tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "homeomorphic" = callPackage
@@ -133206,7 +131959,6 @@ self: {
        description = "Haskell Offline Music Manipulation And Generation EDSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hommage-ds" = callPackage
@@ -133322,6 +132074,9 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Cross-platform interface to the PC speaker";
        license = lib.licenses.asl20;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "hoobuddy" = callPackage
@@ -133355,7 +132110,6 @@ self: {
        description = "Debugging by observing in place";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hood-off" = callPackage
@@ -133400,7 +132154,6 @@ self: {
        description = "A small, toy roguelike";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoodle" = callPackage
@@ -133422,7 +132175,6 @@ self: {
        description = "Executable for hoodle";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoodle-builder" = callPackage
@@ -133440,7 +132192,6 @@ self: {
        description = "text builder for hoodle file format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoodle-core" = callPackage
@@ -133474,7 +132225,6 @@ self: {
        description = "Core library for hoodle";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXi;};
 
   "hoodle-extra" = callPackage
@@ -133501,7 +132251,6 @@ self: {
        description = "extra hoodle tools";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoodle-parser" = callPackage
@@ -133520,7 +132269,6 @@ self: {
        description = "Hoodle file parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoodle-publish" = callPackage
@@ -133548,7 +132296,6 @@ self: {
        description = "publish hoodle files as a static web site";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoodle-render" = callPackage
@@ -133570,7 +132317,6 @@ self: {
        description = "Hoodle file renderer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hoodle-types" = callPackage
@@ -133739,7 +132485,6 @@ self: {
        description = "Haskell Media Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hopencc" = callPackage
@@ -134008,7 +132753,6 @@ self: {
        description = "A language based on homotopy type theory with an interval type";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hora" = callPackage
@@ -134341,7 +133085,6 @@ self: {
        description = "Real-time heap graphing utility and profile stream server with a reusable graphing module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) freeglut; inherit (pkgs) libGL; 
          inherit (pkgs) libGLU;};
 
@@ -134364,7 +133107,6 @@ self: {
        description = "A utility to visualise and compare heap profiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hp2html" = callPackage
@@ -134498,8 +133240,6 @@ self: {
        ];
        description = "hpack's dhalling";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hpaco" = callPackage
@@ -134518,7 +133258,6 @@ self: {
        description = "Modular template compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hpaco-lib" = callPackage
@@ -134537,7 +133276,6 @@ self: {
        description = "Modular template compiler library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hpage" = callPackage
@@ -134560,7 +133298,6 @@ self: {
        description = "A scrapbook for Haskell developers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hpapi" = callPackage
@@ -134573,6 +133310,9 @@ self: {
        librarySystemDepends = [ papi ];
        description = "Binding for the PAPI library";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) papi;};
@@ -134603,7 +133343,6 @@ self: {
        description = "Haskell paste web site";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hpasteit" = callPackage
@@ -134778,8 +133517,8 @@ self: {
        pname = "hpc-lcov";
        version = "1.0.1";
        sha256 = "01ws5y2vavgm7151dcabw3jwny1prrnzn5b04q76m5gc6a36wivl";
-       revision = "1";
-       editedCabalFile = "1jv81ywwzvr37zki8hjylj6gfhamq7fi7rpjyk1g0d06ac9ix0zp";
+       revision = "2";
+       editedCabalFile = "1sbd4wk977hh7jvy2ingmavkqx7fzicfa70figipa7lzdq3lg0ls";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -134840,7 +133579,6 @@ self: {
        description = "Tracer with AJAX interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hpdft" = callPackage
@@ -134996,8 +133734,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpqtypes";
-       version = "1.9.1.0";
-       sha256 = "13q20ak0zakwvlc05y187iq2vpvdjx9dlmvmgvv2gjd263sqcgm2";
+       version = "1.9.1.1";
+       sha256 = "0s5dyia6v59vz7xk8m6gj0shdygk39pmks5yr7dlzksb8gqfgral";
        setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
          aeson async base bytestring containers exceptions lifted-base
@@ -135028,6 +133766,8 @@ self: {
        pname = "hpqtypes-extras";
        version = "1.11.0.0";
        sha256 = "0574ma8b149rhpdk9mdg5sawhl3db4d0qxs5az31g83i93hf4mwq";
+       revision = "2";
+       editedCabalFile = "1n98wpppwd0gwchwfis525qac3808j1vnvb3vxziq1d9x088gqf6";
        libraryHaskellDepends = [
          base base16-bytestring bytestring containers cryptohash exceptions
          extra fields-json hpqtypes lifted-base log-base monad-control mtl
@@ -135041,7 +133781,6 @@ self: {
        description = "Extra utilities for hpqtypes library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hprotoc" = callPackage
@@ -135102,7 +133841,6 @@ self: {
        description = "Parse Google Protocol Buffer specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hprox" = callPackage
@@ -135138,7 +133876,6 @@ self: {
        description = "Haskell Postscript";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hps-cairo" = callPackage
@@ -135155,7 +133892,6 @@ self: {
        description = "Cairo rendering for the haskell postscript library";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hps-kmeans" = callPackage
@@ -135263,7 +133999,6 @@ self: {
        description = "Python language tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hquantlib" = callPackage
@@ -135294,7 +134029,6 @@ self: {
        description = "HQuantLib is a port of essencial parts of QuantLib to Haskell";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hquantlib-time" = callPackage
@@ -135339,7 +134073,6 @@ self: {
        description = "Basic utility for ranking a list of items";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hreader" = callPackage
@@ -135360,7 +134093,6 @@ self: {
        description = "Generalization of MonadReader and ReaderT using hset";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hreader-lens" = callPackage
@@ -135377,7 +134109,6 @@ self: {
        description = "Optics for hreader package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hreq-client" = callPackage
@@ -135407,7 +134138,6 @@ self: {
        description = "A Type dependent Highlevel HTTP client library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hreq-conduit" = callPackage
@@ -135433,7 +134163,6 @@ self: {
        description = "Conduit streaming support for Hreq";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hreq-core" = callPackage
@@ -135508,8 +134237,6 @@ self: {
        ];
        description = "A Riemann Client for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hruby" = callPackage
@@ -135595,7 +134322,6 @@ self: {
        description = "A cryptohash-inspired library for blake2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libb2;};
 
   "hs-brotli" = callPackage
@@ -135615,7 +134341,6 @@ self: {
        description = "Compression and decompression in the brotli format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {brotlidec = null; brotlienc = null;};
 
   "hs-captcha" = callPackage
@@ -135695,8 +134420,6 @@ self: {
        ];
        description = "Conllu validating parser and utils";
        license = lib.licenses.lgpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hs-di" = callPackage
@@ -135793,7 +134516,6 @@ self: {
        description = "Bindings to FFMPEG library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hs-fltk" = callPackage
@@ -135851,7 +134573,6 @@ self: {
        description = "Utility to generate haskell-names interface files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hs-gizapp" = callPackage
@@ -135881,8 +134602,6 @@ self: {
        testHaskellDepends = [ base haskell-src hspec ];
        description = "Haskell source code analyzer";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hs-ix" = callPackage
@@ -136127,7 +134846,6 @@ self: {
        description = "A library for Passbook pass creation & signing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hs-popen" = callPackage
@@ -136293,6 +135011,7 @@ self: {
        testHaskellDepends = [ base hashtables swisstable ];
        description = "Data.HashTable.Class instance definition for Data.HashTable.ST.Swiss";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hs-tags" = callPackage
@@ -136673,7 +135392,6 @@ self: {
        description = "Haskell bindings for PyAutoGUI, a library for automating user interaction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsay" = callPackage
@@ -136726,7 +135444,6 @@ self: {
        description = "simple utility for rolling filesystem backups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsbc" = callPackage
@@ -136785,7 +135502,6 @@ self: {
        description = "Backend for uploading benchmark data to CodeSpeed";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsbencher-fusion" = callPackage
@@ -136810,7 +135526,6 @@ self: {
        description = "Backend for uploading benchmark data to Google Fusion Tables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc2hs" = callPackage
@@ -136869,7 +135584,6 @@ self: {
        description = "Haskell SuperCollider Auditor";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-cairo" = callPackage
@@ -136883,7 +135597,6 @@ self: {
        description = "haskell supercollider cairo drawing";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-data" = callPackage
@@ -136902,7 +135615,6 @@ self: {
        description = "haskell supercollider data";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-db" = callPackage
@@ -136916,7 +135628,6 @@ self: {
        description = "Haskell SuperCollider Unit Generator Database";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-dot" = callPackage
@@ -136930,7 +135641,6 @@ self: {
        description = "haskell supercollider graph drawing";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-forth" = callPackage
@@ -136951,7 +135661,6 @@ self: {
        description = "FORTH SUPERCOLLIDER";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-graphs" = callPackage
@@ -136977,7 +135686,6 @@ self: {
        description = "Haskell SuperCollider Graphs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-lang" = callPackage
@@ -136999,7 +135707,6 @@ self: {
        description = "Haskell SuperCollider Language";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-lisp" = callPackage
@@ -137020,7 +135727,6 @@ self: {
        description = "LISP SUPERCOLLIDER";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-plot" = callPackage
@@ -137039,7 +135745,6 @@ self: {
        description = "Haskell SuperCollider Plotting";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-process" = callPackage
@@ -137060,7 +135765,6 @@ self: {
        description = "Create and control scsynth processes";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-rec" = callPackage
@@ -137074,7 +135778,6 @@ self: {
        description = "Haskell SuperCollider Record Variants";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-rw" = callPackage
@@ -137121,7 +135824,6 @@ self: {
        description = "SuperCollider server resource management and synchronization";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-sf" = callPackage
@@ -137153,7 +135855,6 @@ self: {
        description = "Haskell SuperCollider SoundFile";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-unsafe" = callPackage
@@ -137167,7 +135868,6 @@ self: {
        description = "Unsafe Haskell SuperCollider";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsc3-utils" = callPackage
@@ -137190,7 +135890,6 @@ self: {
        description = "Haskell SuperCollider Utilities";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hscaffold" = callPackage
@@ -137252,7 +135951,6 @@ self: {
        description = "cassandra database interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hscd" = callPackage
@@ -137417,7 +136115,6 @@ self: {
        description = "cscope like browser for Haskell code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hscrtmpl" = callPackage
@@ -137528,7 +136225,6 @@ self: {
        description = "Haskell development library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsdif" = callPackage
@@ -137654,8 +136350,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsendxmpp";
-       version = "0.1.2.5";
-       sha256 = "0wyfcsc0vjyx87r5dv51frfligf4d7v0n1m7967vg4d6jkw2zxd9";
+       version = "0.1.2.6";
+       sha256 = "1w3jm8lsll65i57iqlspw1vzvw5rr4q9qwarq896s0vr8kz68irh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -137664,8 +136360,6 @@ self: {
        ];
        description = "sendxmpp clone, sending XMPP messages via CLI";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsenv" = callPackage
@@ -137714,7 +136408,6 @@ self: {
        description = "Primitive list with elements of unique types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsexif" = callPackage
@@ -137745,7 +136438,6 @@ self: {
        description = "A small and ugly library that emulates the output of the puppet facter program";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsfcsh" = callPackage
@@ -137978,8 +136670,6 @@ self: {
        ];
        description = "Inspect Haskell source files";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsinspect-lsp" = callPackage
@@ -138186,7 +136876,6 @@ self: {
        description = "A library to work with, or as, a logstash server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hslua" = callPackage
@@ -138466,7 +137155,6 @@ self: {
        description = "Nock 5K interpreter";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsnoise" = callPackage
@@ -138680,8 +137368,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.7.9";
-       sha256 = "03k8djbzkl47x1kgsplbjjrwx8qqdb31zg9aw0c6ii3d8r49gkyn";
+       version = "2.7.10";
+       sha256 = "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -138689,14 +137377,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec_2_7_10" = callPackage
+  "hspec_2_8_2" = callPackage
     ({ mkDerivation, base, hspec-core, hspec-discover
      , hspec-expectations, QuickCheck
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.7.10";
-       sha256 = "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw";
+       version = "2.8.2";
+       sha256 = "1s03c1928ndl8bqi3n9fb8a5adr0lycl9qs3x1i6aprzr851myh5";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -138768,8 +137456,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.7.9";
-       sha256 = "0lqqvrdya7jszdxkzjnwd5g02w1ggmlfkh67bpcmzch6h0v609yj";
+       version = "2.7.10";
+       sha256 = "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
          filepath hspec-expectations HUnit QuickCheck quickcheck-io random
@@ -138787,7 +137475,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec-core_2_7_10" = callPackage
+  "hspec-core_2_8_2" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
      , deepseq, directory, filepath, hspec-expectations, hspec-meta
      , HUnit, process, QuickCheck, quickcheck-io, random, setenv
@@ -138795,8 +137483,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.7.10";
-       sha256 = "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1";
+       version = "2.8.2";
+       sha256 = "0id4c70hq46y2s623y4zsj9pycqp90a3ig991shrhxxd6836c4cx";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
          filepath hspec-expectations HUnit QuickCheck quickcheck-io random
@@ -138838,8 +137526,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.7.9";
-       sha256 = "1zr6h8r8ggi4482hnx0p2vsrkirfjimq8zy9yfiiyn5mkcqzxl4v";
+       version = "2.7.10";
+       sha256 = "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -138852,13 +137540,13 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec-discover_2_7_10" = callPackage
+  "hspec-discover_2_8_2" = callPackage
     ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.7.10";
-       sha256 = "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa";
+       version = "2.8.2";
+       sha256 = "0bmdph9q4rg5rgr6s65h7si2l5rxyyqv80j5rri6zb4d1n9ih6hs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -138890,8 +137578,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-expectations-json";
-       version = "1.0.0.3";
-       sha256 = "06k2gk289v6xxzj5mp5nsz6ixqlh2z3zx8z1jlxza35pkzkv34x7";
+       version = "1.0.0.4";
+       sha256 = "1m244ypfr4cg2jll3ackn9khm8zwdp1yp7hf4b24bfzws0qmb1b7";
        libraryHaskellDepends = [
          aeson aeson-pretty base Diff HUnit scientific text
          unordered-containers vector
@@ -138899,8 +137587,6 @@ self: {
        testHaskellDepends = [ aeson-qq base hspec ];
        description = "Hspec expectations for JSON Values";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-expectations-lens" = callPackage
@@ -138962,7 +137648,6 @@ self: {
        description = "hspec-expectations with pretty printing on failure";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-expectations-pretty-diff" = callPackage
@@ -139012,6 +137697,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-golden_0_2_0_0" = callPackage
+    ({ mkDerivation, base, directory, filepath, hspec, hspec-core
+     , optparse-applicative, silently
+     }:
+     mkDerivation {
+       pname = "hspec-golden";
+       version = "0.2.0.0";
+       sha256 = "0sg9f73x2i1g6n1pjcvb1zx4nx17w5drdrrhzp2z3lsxc9yxs8nk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory filepath hspec-core ];
+       executableHaskellDepends = [ base directory optparse-applicative ];
+       testHaskellDepends = [ base directory hspec hspec-core silently ];
+       description = "Golden tests for hspec";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-golden-aeson" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, directory
      , filepath, hspec, hspec-core, QuickCheck, quickcheck-arbitrary-adt
@@ -139069,8 +137772,6 @@ self: {
        ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-hedgehog" = callPackage
@@ -139111,8 +137812,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-junit-formatter";
-       version = "1.0.0.2";
-       sha256 = "19mmzzjg041sqv22w66cls0mcypdamsqx43n00hnn2gqk0jkhhll";
+       version = "1.0.0.4";
+       sha256 = "1fyxx847d37ib0dhdn4n7y6sk7d0xw1zcind39m3hmbvxvx3j648";
        libraryHaskellDepends = [
          base conduit directory exceptions hashable hspec hspec-core
          resourcet temporary text xml-conduit xml-types
@@ -139121,6 +137822,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-junit-formatter_1_0_1_0" = callPackage
+    ({ mkDerivation, base, conduit, containers, directory, exceptions
+     , filepath, hspec, hspec-core, text, time, xml-conduit, xml-types
+     }:
+     mkDerivation {
+       pname = "hspec-junit-formatter";
+       version = "1.0.1.0";
+       sha256 = "1n0hv2xhplpg6fhy8dxzp63k4b7mfzm1g92wglrsqc2lsvnx09ky";
+       libraryHaskellDepends = [
+         base conduit containers directory exceptions filepath hspec-core
+         text time xml-conduit xml-types
+       ];
+       testHaskellDepends = [ base hspec ];
+       description = "A JUnit XML runner/formatter for hspec";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-laws" = callPackage
     ({ mkDerivation, base, hspec, markdown-unlit, QuickCheck }:
      mkDerivation {
@@ -139226,8 +137945,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-need-env";
-       version = "0.1.0.6";
-       sha256 = "0drbjdm6wld2bnfmv2jqhw4ija9v85pa4p5aq9qgh1gs6c5d50bq";
+       version = "0.1.0.7";
+       sha256 = "068cv4n3j5x0zdjrhrk2acc17gr2rvr9n5d4znzmmfbmcrpqhwkp";
        libraryHaskellDepends = [ base hspec-core hspec-expectations ];
        testHaskellDepends = [ base hspec hspec-core setenv transformers ];
        testToolDepends = [ hspec-discover ];
@@ -139264,7 +137983,6 @@ self: {
        description = "Helpers for creating database tests with hspec and pg-transact";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-server" = callPackage
@@ -139313,7 +138031,6 @@ self: {
        description = "Add an hspec test-suite in one command";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-shouldbe" = callPackage
@@ -139326,7 +138043,6 @@ self: {
        description = "Convenience wrapper and utilities for hspec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-slow" = callPackage
@@ -139468,7 +138184,6 @@ self: {
        description = "Hspec convenience functions for use with test-sandbox";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-wai" = callPackage
@@ -139579,7 +138294,6 @@ self: {
        description = "Spec for testing properties for variant types";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspkcs11" = callPackage
@@ -139646,6 +138360,29 @@ self: {
        broken = true;
      }) {};
 
+  "hspretty" = callPackage
+    ({ mkDerivation, ansi-terminal, base, bytestring, directory
+     , doctest, optparse-applicative, ormolu, path, path-io, process
+     , streamly, text, text-short, unliftio, void
+     }:
+     mkDerivation {
+       pname = "hspretty";
+       version = "0.1.0.0";
+       sha256 = "11mbrr785j6pa02zil705sy67cdvjhwq9l927mm74barf9ph776r";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base bytestring directory optparse-applicative ormolu
+         path path-io process streamly text text-short unliftio void
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest ];
+       description = "My opinionated Haskell project formatter";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hsprocess" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, easy-file
      , filepath, hint, hspec, HUnit, MonadCatchIO-mtl, process
@@ -139670,7 +138407,6 @@ self: {
        description = "The Haskell Stream Processor command line utility";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsql" = callPackage
@@ -139699,7 +138435,6 @@ self: {
        description = "MySQL driver for HSQL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {mysqlclient = null;};
 
   "hsql-odbc" = callPackage
@@ -139713,7 +138448,6 @@ self: {
        description = "A Haskell Interface to ODBC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) unixODBC;};
 
   "hsql-postgresql" = callPackage
@@ -139727,7 +138461,6 @@ self: {
        description = "A Haskell Interface to PostgreSQL via the PQ library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) postgresql;};
 
   "hsql-sqlite3" = callPackage
@@ -139741,7 +138474,6 @@ self: {
        description = "SQLite3 driver for HSQL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) sqlite;};
 
   "hsqml" = callPackage
@@ -139906,7 +138638,6 @@ self: {
        description = "Access to the Readability API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsrelp" = callPackage
@@ -140030,7 +138761,6 @@ self: {
        description = "hssqlppp extras which need template-haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hstar" = callPackage
@@ -140054,7 +138784,6 @@ self: {
        description = "Haskell version of tar CLI utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hstatistics" = callPackage
@@ -140187,7 +138916,6 @@ self: {
        description = "A Tox protocol implementation in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hstradeking" = callPackage
@@ -140213,7 +138941,6 @@ self: {
        description = "Tradeking API bindings for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hstyle" = callPackage
@@ -140254,7 +138981,6 @@ self: {
        description = "A two player abstract strategy game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsubconvert" = callPackage
@@ -140277,7 +139003,6 @@ self: {
        description = "One-time, faithful conversion of Subversion repositories to Git";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsudoku" = callPackage
@@ -140340,7 +139065,6 @@ self: {
        description = "embedding prolog in haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) ncurses; inherit (pkgs) readline; 
          swipl = null;};
 
@@ -140373,7 +139097,6 @@ self: {
        description = "hsp+jmacro support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsx-xhtml" = callPackage
@@ -140386,7 +139109,6 @@ self: {
        description = "XHTML utilities to use together with HSX";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsx2hs" = callPackage
@@ -140519,8 +139241,6 @@ self: {
        ];
        description = "A Haskell98 parsing tags program similar to ctags";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "htar" = callPackage
@@ -141026,7 +139746,6 @@ self: {
        description = "Haskell Music Typesetting";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "htsn" = callPackage
@@ -141262,7 +139981,6 @@ self: {
        description = "HTTP authorization (both basic and digest) done right";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "http-client-conduit" = callPackage
@@ -141483,14 +140201,14 @@ self: {
 
   "http-client-websockets" = callPackage
     ({ mkDerivation, base, bytestring, hspec, http-client
-     , http-client-tls, network-uri, utf8-string, websockets
+     , http-client-tls, network-uri, text, websockets
      }:
      mkDerivation {
        pname = "http-client-websockets";
-       version = "0.1.1.1";
-       sha256 = "0b5kvyrfhhj7c5ys8ccxwv6prhb6sj0ycinzbk1yrwnd3wrmzk78";
+       version = "0.1.1.2";
+       sha256 = "0g2zhj0fzhynyls5rxpzh50hxjsygx7037rw2h79ihca10crsqgm";
        libraryHaskellDepends = [
-         base bytestring http-client network-uri utf8-string websockets
+         base bytestring http-client network-uri text websockets
        ];
        testHaskellDepends = [
          base bytestring hspec http-client-tls network-uri websockets
@@ -141714,7 +140432,6 @@ self: {
        description = "HTTP client package with enumerator interface and HTTPS support. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "http-grammar" = callPackage
@@ -141750,7 +140467,6 @@ self: {
        description = "HTTP and WebSocket client based on io-streams";
        license = "BSD-3-Clause AND GPL-2.0-or-later";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "http-kinder" = callPackage
@@ -142104,8 +140820,6 @@ self: {
        ];
        description = "RFC7807 style response messages";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "http-server" = callPackage
@@ -142241,37 +140955,6 @@ self: {
      }) {};
 
   "http2" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, array, base
-     , base16-bytestring, bytestring, case-insensitive, containers
-     , directory, doctest, filepath, gauge, Glob, heaps, hspec
-     , http-types, mwc-random, network, network-byte-order, psqueues
-     , stm, text, time-manager, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "http2";
-       version = "2.0.6";
-       sha256 = "17m1avrppiz8i6qwjlgg77ha88sx8f8vvfa57z369aszhld6nx9a";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring case-insensitive containers http-types
-         network network-byte-order psqueues stm time-manager
-       ];
-       testHaskellDepends = [
-         aeson aeson-pretty array base base16-bytestring bytestring
-         case-insensitive containers directory doctest filepath Glob hspec
-         http-types network network-byte-order psqueues stm text
-         time-manager unordered-containers vector
-       ];
-       benchmarkHaskellDepends = [
-         array base bytestring case-insensitive containers gauge heaps
-         mwc-random network-byte-order psqueues stm
-       ];
-       description = "HTTP/2 library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "http2_3_0_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, async, base
      , base16-bytestring, bytestring, case-insensitive, containers
      , cryptonite, directory, filepath, gauge, Glob, heaps, hspec
@@ -142303,7 +140986,6 @@ self: {
        ];
        description = "HTTP/2 library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http2-client" = callPackage
@@ -142322,6 +141004,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "A native HTTP2 client library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "http2-client-exe" = callPackage
@@ -142341,6 +141025,7 @@ self: {
        ];
        description = "A command-line http2 client";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http2-client-grpc" = callPackage
@@ -142361,7 +141046,6 @@ self: {
        description = "Implement gRPC-over-HTTP2 clients";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "http2-grpc-proto-lens" = callPackage
@@ -142398,8 +141082,6 @@ self: {
        ];
        description = "Encoders based on `proto3-wire` for gRPC over HTTP2";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "http2-grpc-types" = callPackage
@@ -142451,7 +141133,6 @@ self: {
        description = "High-level access to HTTPS Everywhere rulesets";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "https-everywhere-rules-raw" = callPackage
@@ -142467,7 +141148,6 @@ self: {
        description = "Low-level (i.e. XML) access to HTTPS Everywhere rulesets.";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "httpspec" = callPackage
@@ -142486,7 +141166,6 @@ self: {
        description = "Specification of HTTP request/response generators and parsers";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "htune" = callPackage
@@ -142686,7 +141365,6 @@ self: {
        description = "Hugs Front-end to Yhc Core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hulk" = callPackage
@@ -142714,7 +141392,6 @@ self: {
        description = "IRC server written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hum" = callPackage
@@ -142877,7 +141554,6 @@ self: {
        description = "A GUI testrunner for HUnit";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hunit-parsec" = callPackage
@@ -142922,7 +141598,6 @@ self: {
        description = "Unpacker tool with DWIM";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hunspell-hs" = callPackage
@@ -142973,7 +141648,6 @@ self: {
        description = "A search and indexing engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hunt-server" = callPackage
@@ -142998,7 +141672,6 @@ self: {
        description = "A search and indexing engine server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hunt-server-cli" = callPackage
@@ -143070,7 +141743,6 @@ self: {
        description = "Extract function names from Windows DLLs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hurl" = callPackage
@@ -143095,8 +141767,6 @@ self: {
        executableHaskellDepends = [ base directory network-uri ];
        description = "Haskell URL resolver";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hurriyet" = callPackage
@@ -143141,8 +141811,6 @@ self: {
        ];
        description = "R5RS Scheme interpreter, compiler, and library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "husk-scheme-libs" = callPackage
@@ -143158,8 +141826,6 @@ self: {
        ];
        description = "Extra libraries for the husk Scheme platform";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "husky" = callPackage
@@ -143178,7 +141844,6 @@ self: {
        description = "A simple command line calculator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hutton" = callPackage
@@ -143228,7 +141893,6 @@ self: {
        description = "Fuzzy logic library with support for T1, IT2, GT2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hvect" = callPackage
@@ -143249,8 +141913,8 @@ self: {
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.11.0.0";
-       sha256 = "1lz5f04yi97wkqhyxvav262ayyvvl96xrgvgzyk1ca1g299dw866";
+       version = "0.11.0.1";
+       sha256 = "13w2637ylmmwv4kylf1rc2rvd85281a50p82x3888bc1cnzv536x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
@@ -143318,7 +141982,6 @@ self: {
        description = "Demo library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-aws-sqs-conduit" = callPackage
@@ -143335,8 +141998,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "AWS SQS conduit";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-balancedparens" = callPackage
@@ -143524,7 +142185,6 @@ self: {
        description = "Unbelievably fast streaming DSV file parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-dump" = callPackage
@@ -143801,7 +142461,6 @@ self: {
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-json-lens" = callPackage
@@ -143832,7 +142491,6 @@ self: {
        description = "Lens for hw-json";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-json-simd" = callPackage
@@ -143899,7 +142557,6 @@ self: {
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-json-standard-cursor" = callPackage
@@ -143940,7 +142597,6 @@ self: {
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-kafka-avro" = callPackage
@@ -143968,7 +142624,6 @@ self: {
        description = "Avro support for Kafka infrastructure";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-kafka-client" = callPackage
@@ -144124,8 +142779,8 @@ self: {
        pname = "hw-prim";
        version = "0.6.3.0";
        sha256 = "0gqn7s0ki9x951n5whyh0pkcbbqz4kpcn80xxpsv1c0v34946xv7";
-       revision = "1";
-       editedCabalFile = "1z3fcff42xq0j430q72ncjv6zc0zvzzq94ifh06m342z0x8imv83";
+       revision = "2";
+       editedCabalFile = "14x1bijg1d8jdh963rxrlwzlqa1p1vh0bc7hjdysk8dzbrc7fbmv";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-prim mmap transformers unliftio-core
          vector
@@ -144161,8 +142816,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Primitive support for bit manipulation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-rankselect" = callPackage
@@ -144295,7 +142948,6 @@ self: {
        description = "SIMD library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-streams" = callPackage
@@ -144412,7 +143064,6 @@ self: {
        description = "Supports IO on URIs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-vector" = callPackage
@@ -144594,7 +143245,6 @@ self: {
        description = "Library for sending email with Amazon's SES and hworker";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hwormhole" = callPackage
@@ -144628,7 +143278,6 @@ self: {
        description = "magic-wormhole client";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hws" = callPackage
@@ -144648,7 +143297,6 @@ self: {
        description = "Simple Haskell Web Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hwsl2" = callPackage
@@ -144682,7 +143330,6 @@ self: {
        description = "A hashed byte-vector based on algebraic hashes and finger trees";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hwsl2-reducers" = callPackage
@@ -144697,7 +143344,6 @@ self: {
        description = "Semigroup and Reducer instances for Data.Hash.SL2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hx" = callPackage
@@ -144730,7 +143376,6 @@ self: {
        description = "Haskell XMPP (Jabber Client) Command Line Interface (CLI)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hxournal" = callPackage
@@ -144758,7 +143403,6 @@ self: {
        description = "A pen notetaking program written in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hxt" = callPackage
@@ -144810,6 +143454,7 @@ self: {
        description = "Cache for HXT XML Documents and other binary data";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hxt-charproperties" = callPackage
@@ -145021,7 +143666,6 @@ self: {
        description = "Helper functions for HXT";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hxweb" = callPackage
@@ -145034,7 +143678,6 @@ self: {
        description = "Minimal webframework using fastcgi, libxml2 and libxslt";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hyahtzee" = callPackage
@@ -145048,8 +143691,6 @@ self: {
        executableHaskellDepends = [ base containers HUnit random ];
        description = "A Yahtzee game implementation in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hyakko" = callPackage
@@ -145090,7 +143731,6 @@ self: {
        description = "A implementation of a type-checker for Lambda-H";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hybrid-vectors" = callPackage
@@ -145193,7 +143833,6 @@ self: {
        description = "Hydrogen Data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-cli-args" = callPackage
@@ -145210,7 +143849,6 @@ self: {
        description = "Hydrogen Command Line Arguments Parser";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-data" = callPackage
@@ -145223,7 +143861,6 @@ self: {
        description = "Hydrogen Data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-multimap" = callPackage
@@ -145251,7 +143888,6 @@ self: {
        description = "Hydrogen Parsing Utilities";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-prelude" = callPackage
@@ -145272,7 +143908,6 @@ self: {
        description = "Hydrogen Prelude";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-prelude-parsec" = callPackage
@@ -145285,7 +143920,6 @@ self: {
        description = "Hydrogen Prelude /w Parsec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-syntax" = callPackage
@@ -145303,7 +143937,6 @@ self: {
        description = "Hydrogen Syntax";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-util" = callPackage
@@ -145319,7 +143952,6 @@ self: {
        description = "Hydrogen Tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hydrogen-version" = callPackage
@@ -145349,7 +143981,6 @@ self: {
        description = "Simple web application server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hylide" = callPackage
@@ -145416,7 +144047,6 @@ self: {
        description = "Tableau based theorem prover for hybrid logics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hyloutils" = callPackage
@@ -145433,15 +144063,14 @@ self: {
        description = "Very small programs for hybrid logics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hyper" = callPackage
     ({ mkDerivation, base, blaze-html, deepseq, text }:
      mkDerivation {
        pname = "hyper";
-       version = "0.2.1.0";
-       sha256 = "14vl52v4qshdyp45qrg8ii8xzpi6n05qdgz3ri59wis8hdw1v06z";
+       version = "0.2.1.1";
+       sha256 = "14p7r57g75ny8l9h4ilbm6mhdsfiysfs3rd56300dl0jkpgrh8r2";
        libraryHaskellDepends = [ base blaze-html deepseq text ];
        description = "Display class for the HyperHaskell graphical Haskell interpreter";
        license = lib.licenses.bsd3;
@@ -145453,15 +144082,13 @@ self: {
      }:
      mkDerivation {
        pname = "hyper-extra";
-       version = "0.2.0.0";
-       sha256 = "1zcbs9cpr6rfzhsqrv867j79gb3521pyrl32qbp5jwqiy1iyddm5";
+       version = "0.2.0.1";
+       sha256 = "13ipxwhxrndl505zzxcq7gz874l0r2g0ma1yhq14bihvlwh3qr8d";
        libraryHaskellDepends = [
          base diagrams-lib diagrams-svg hyper QuickCheck svg-builder text
        ];
        description = "Display instances for the HyperHaskell graphical Haskell interpreter";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hyper-haskell-server" = callPackage
@@ -145481,8 +144108,6 @@ self: {
        ];
        description = "Server back-end for the HyperHaskell graphical Haskell interpreter";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hyperdrive" = callPackage
@@ -145601,7 +144226,6 @@ self: {
        description = "A thin wrapper for the Hyperpublic API";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hyphenate" = callPackage
@@ -145766,8 +144390,6 @@ self: {
        testSystemDepends = [ zookeeper_mt ];
        description = "Haskell client library for Apache Zookeeper";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) zookeeper_mt;};
 
   "hzulip" = callPackage
@@ -145992,7 +144614,6 @@ self: {
        description = "Lattice iCE40 Primitive IP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "icepeak" = callPackage
@@ -146038,7 +144659,8 @@ self: {
        ];
        description = "A fast JSON document store with push notification support";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ rkrzr ];
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "icfpc2020-galaxy" = callPackage
@@ -146137,7 +144759,6 @@ self: {
        description = "An IDE backend library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ide-backend-common" = callPackage
@@ -146163,7 +144784,6 @@ self: {
        description = "Shared library used be ide-backend and ide-backend-server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ide-backend-rts" = callPackage
@@ -146199,7 +144819,6 @@ self: {
        description = "An IDE backend server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ideas" = callPackage
@@ -146239,7 +144858,6 @@ self: {
        description = "Interactive domain reasoner for logic and mathematics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ideas-math-types" = callPackage
@@ -146254,7 +144872,6 @@ self: {
        description = "Common types for mathematical domain reasoners";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ideas-statistics" = callPackage
@@ -146271,7 +144888,6 @@ self: {
        description = "Interactive domain reasoner for statistics";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "idempotent" = callPackage
@@ -146664,7 +145280,6 @@ self: {
        description = "Bindings for the Gtk/OS X integration library";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {ige-mac-integration = null;};
 
   "ignore" = callPackage
@@ -146722,25 +145337,25 @@ self: {
 
   "ihaskell" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring, cereal
-     , cmdargs, containers, directory, filepath, ghc, ghc-boot
-     , ghc-parser, ghc-paths, haskeline, haskell-src-exts, here, hlint
-     , hspec, hspec-contrib, http-client, http-client-tls, HUnit
+     , cmdargs, containers, directory, exceptions, filepath, ghc
+     , ghc-boot, ghc-parser, ghc-paths, haskeline, here, hlint, hspec
+     , hspec-contrib, http-client, http-client-tls, HUnit
      , ipython-kernel, mtl, parsec, process, random, raw-strings-qq
      , setenv, shelly, split, stm, strict, text, time, transformers
      , unix, unordered-containers, utf8-string, vector
      }:
      mkDerivation {
        pname = "ihaskell";
-       version = "0.10.1.2";
-       sha256 = "1gs2j0qgxzf346nlnq0zx12yj528ykxia5r3rlldpf6f01zs89v8";
+       version = "0.10.2.0";
+       sha256 = "061gpwclcykrs4pqhsb96hrbwnpmq0q6fx9701wk684v01xjfddk";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring cereal cmdargs containers
-         directory filepath ghc ghc-boot ghc-parser ghc-paths haskeline
-         haskell-src-exts hlint http-client http-client-tls ipython-kernel
-         mtl parsec process random shelly split stm strict text time
+         directory exceptions filepath ghc ghc-boot ghc-parser ghc-paths
+         haskeline hlint http-client http-client-tls ipython-kernel mtl
+         parsec process random shelly split stm strict text time
          transformers unix unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
@@ -146753,8 +145368,6 @@ self: {
        ];
        description = "A Haskell backend kernel for the IPython project";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-aeson" = callPackage
@@ -146770,8 +145383,6 @@ self: {
        ];
        description = "IHaskell display instances for Aeson";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-basic" = callPackage
@@ -146783,8 +145394,6 @@ self: {
        libraryHaskellDepends = [ base ihaskell ];
        description = "IHaskell display instances for basic types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-blaze" = callPackage
@@ -146796,8 +145405,6 @@ self: {
        libraryHaskellDepends = [ base blaze-html blaze-markup ihaskell ];
        description = "IHaskell display instances for blaze-html types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-charts" = callPackage
@@ -146814,8 +145421,6 @@ self: {
        ];
        description = "IHaskell display instances for charts types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-diagrams" = callPackage
@@ -146832,8 +145437,6 @@ self: {
        ];
        description = "IHaskell display instances for diagram types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-display" = callPackage
@@ -146845,8 +145448,6 @@ self: {
        libraryHaskellDepends = [ base classy-prelude ihaskell ];
        description = "IHaskell display instances for basic types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-gnuplot" = callPackage
@@ -146858,8 +145459,6 @@ self: {
        libraryHaskellDepends = [ base bytestring gnuplot ihaskell ];
        description = "IHaskell display instance for Gnuplot (from gnuplot package)";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-graphviz" = callPackage
@@ -146871,8 +145470,6 @@ self: {
        libraryHaskellDepends = [ base bytestring ihaskell process ];
        description = "IHaskell display instance for GraphViz (external binary)";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-hatex" = callPackage
@@ -146884,8 +145481,6 @@ self: {
        libraryHaskellDepends = [ base HaTeX ihaskell text ];
        description = "IHaskell display instances for hatex";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-hvega" = callPackage
@@ -146897,8 +145492,6 @@ self: {
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-inline-r" = callPackage
@@ -146916,8 +145509,6 @@ self: {
        ];
        description = "Embed R quasiquotes and plots in IHaskell notebooks";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-juicypixels" = callPackage
@@ -146932,8 +145523,6 @@ self: {
        ];
        description = "IHaskell - IHaskellDisplay instances of the image types of the JuicyPixels package";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-magic" = callPackage
@@ -146950,8 +145539,6 @@ self: {
        ];
        description = "IHaskell display instances for bytestrings";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-parsec" = callPackage
@@ -146980,8 +145567,6 @@ self: {
        libraryHaskellDepends = [ base bytestring hmatrix ihaskell plot ];
        description = "IHaskell display instance for Plot (from plot package)";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-rlangqq" = callPackage
@@ -147000,7 +145585,6 @@ self: {
        description = "a rDisp quasiquote to show plots from Rlang-QQ in IHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ihaskell-widgets" = callPackage
@@ -147052,7 +145636,6 @@ self: {
        description = "Incremental HTTP iteratee";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ilist" = callPackage
@@ -147209,7 +145792,6 @@ self: {
        description = "An efficient IMAP client library, with SSL and streaming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imapget" = callPackage
@@ -147251,7 +145833,6 @@ self: {
        description = "Minimalistic reference manager";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imgur" = callPackage
@@ -147290,7 +145871,6 @@ self: {
        description = "Uploader for Imgur";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imj-animation" = callPackage
@@ -147304,7 +145884,6 @@ self: {
        description = "Animation Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imj-base" = callPackage
@@ -147330,7 +145909,6 @@ self: {
        description = "Game engine with geometry, easing, animated text, delta rendering";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imj-game-hamazed" = callPackage
@@ -147352,7 +145930,6 @@ self: {
        description = "A game with flying numbers and 8-bit color animations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imj-measure-stdout" = callPackage
@@ -147369,7 +145946,6 @@ self: {
        description = "An application to determine the maximum capacity of stdout buffer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imj-prelude" = callPackage
@@ -147398,8 +145974,8 @@ self: {
      }:
      mkDerivation {
        pname = "imm";
-       version = "2.1.0.0";
-       sha256 = "01jpwxqp2c5ih9cw38w4j7x1dff0z7z1d43yx1rri83w8shpjbl3";
+       version = "2.1.1.0";
+       sha256 = "1w3kypakf8zqz8r44r9bx0z5v4wxvhnf446jzarawn9fg7yigcqn";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -147422,7 +145998,6 @@ self: {
        description = "Execute arbitrary actions for each item from RSS/Atom feeds";
        license = lib.licenses.cc0;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "immortal_0_2_2_1" = callPackage
@@ -147510,7 +146085,6 @@ self: {
        description = "Multi-platform parser analyzer and generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imperative-edsl" = callPackage
@@ -147555,7 +146129,6 @@ self: {
        description = "Deep embedding of VHDL programs with code generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "impl" = callPackage
@@ -147707,7 +146280,6 @@ self: {
        description = "Tool for haskell imports refactoring";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "imports" = callPackage
@@ -147806,7 +146378,6 @@ self: {
        description = "An imperative, verifiable programming language for high assurance applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "impure-containers" = callPackage
@@ -147916,7 +146487,6 @@ self: {
        description = "A type-checker for Haskell with integer constraints";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "inchworm" = callPackage
@@ -147985,7 +146555,6 @@ self: {
        description = "Incremental computing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "incremental-maps" = callPackage
@@ -148010,7 +146579,6 @@ self: {
        description = "Package for doing incremental computations on maps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "incremental-parser" = callPackage
@@ -148065,7 +146633,6 @@ self: {
        description = "type classes for incremental updates to data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "indent" = callPackage
@@ -148097,7 +146664,6 @@ self: {
        description = "Indentation sensitive parsing combinators for Parsec and Trifecta";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "indentation-core" = callPackage
@@ -148126,7 +146692,6 @@ self: {
        description = "Indentation sensitive parsing combinators for Parsec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "indentation-trifecta" = callPackage
@@ -148144,7 +146709,6 @@ self: {
        description = "Indentation sensitive parsing combinators for Trifecta";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "indentparser" = callPackage
@@ -148172,8 +146736,6 @@ self: {
        testHaskellDepends = [ base mtl parsec tasty tasty-hunit ];
        description = "indentation sensitive parser-combinators for parsec";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "index-core" = callPackage
@@ -148186,6 +146748,7 @@ self: {
        description = "Indexed Types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
        broken = true;
      }) {};
 
@@ -148209,7 +146772,6 @@ self: {
        description = "Tools for entity indexation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "indexed" = callPackage
@@ -148398,7 +146960,6 @@ self: {
        description = "A collection of implementations of IndieWeb algorithms";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "indigo" = callPackage
@@ -148507,8 +147068,6 @@ self: {
        ];
        description = "The Infernal Machine - An AWS Lambda Custom Runtime for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "infernu" = callPackage
@@ -148530,7 +147089,6 @@ self: {
        description = "Type inference and checker for JavaScript (experimental)";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "infinite-search" = callPackage
@@ -148882,6 +147440,8 @@ self: {
        pname = "inline-java";
        version = "0.10.0";
        sha256 = "0rs2rw21y0yc0h4c1rz25qblk39flkg19fwjz87s6l0ly1hvcrm5";
+       revision = "1";
+       editedCabalFile = "07qpgqy66zpmg1yz38y1w5gbbcc0nvidmlg2z4anj0k5rifzgdv6";
        libraryHaskellDepends = [
          base bytestring Cabal directory filepath ghc jni jvm language-java
          mtl process template-haskell temporary text
@@ -148895,7 +147455,6 @@ self: {
        description = "Java interop via inline Java code in Haskell modules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "inline-r" = callPackage
@@ -148984,17 +147543,17 @@ self: {
      }) {aether = null;};
 
   "insert-ordered-containers" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, hashable
+    ({ mkDerivation, aeson, base, base-compat, deepseq, hashable
      , indexed-traversable, lens, optics-core, optics-extra, QuickCheck
      , semigroupoids, semigroups, tasty, tasty-quickcheck, text
      , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "insert-ordered-containers";
-       version = "0.2.4";
-       sha256 = "174maygil2mffjz2ssqawlmv36413m65zp3ng67hzij4dh8piz7x";
+       version = "0.2.5";
+       sha256 = "0bb3ggzic8z5zmvmzp1fsnb572c2v383740b0ddf1fwihpn52c1y";
        libraryHaskellDepends = [
-         aeson base base-compat hashable indexed-traversable lens
+         aeson base base-compat deepseq hashable indexed-traversable lens
          optics-core optics-extra semigroupoids semigroups text transformers
          unordered-containers
        ];
@@ -149043,8 +147602,8 @@ self: {
      }:
      mkDerivation {
        pname = "inspection-testing";
-       version = "0.4.3.0";
-       sha256 = "1pba3br5vd11svk9fpg5s977q55qlvhlf95nd5ay79bwdjm10hj3";
+       version = "0.4.5.0";
+       sha256 = "1d8bi60m97yw4vxmajclg66xhaap8nj4dli8bxni0mf4mcm0px01";
        libraryHaskellDepends = [
          base containers ghc mtl template-haskell transformers
        ];
@@ -149053,23 +147612,6 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "inspection-testing_0_4_4_0" = callPackage
-    ({ mkDerivation, base, containers, ghc, mtl, template-haskell
-     , transformers
-     }:
-     mkDerivation {
-       pname = "inspection-testing";
-       version = "0.4.4.0";
-       sha256 = "1zr7c7xpmnfwn2p84rqw69n1g91rdkh7d20awvj0s56nbdikgiyh";
-       libraryHaskellDepends = [
-         base containers ghc mtl template-haskell transformers
-       ];
-       testHaskellDepends = [ base ];
-       description = "GHC plugin to do inspection testing";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "inspector-wrecker" = callPackage
     ({ mkDerivation, aeson, base, bytestring, case-insensitive
      , connection, data-default, http-client, http-client-tls
@@ -149091,22 +147633,21 @@ self: {
        description = "Create benchmarks from the HAR files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "instana-haskell-trace-sdk" = callPackage
-    ({ mkDerivation, aeson, aeson-extra, base, binary, bytestring
-     , case-insensitive, containers, directory, ekg-core, exceptions
-     , hslogger, http-client, http-client-tls, http-types, HUnit
-     , network, process, random, regex-base, regex-compat, regex-pcre
-     , regex-tdfa, retry, scientific, servant, servant-server, stm
-     , sysinfo, text, time, transformers, unix, unordered-containers
-     , wai, warp
+    ({ mkDerivation, aeson, aeson-extra, array, base, binary
+     , bytestring, case-insensitive, containers, directory, ekg-core
+     , exceptions, hslogger, http-client, http-client-tls, http-types
+     , HUnit, network, process, random, regex-base, regex-compat
+     , regex-pcre, regex-tdfa, retry, scientific, servant
+     , servant-server, stm, sysinfo, text, time, transformers, unix
+     , unordered-containers, vector, wai, warp
      }:
      mkDerivation {
        pname = "instana-haskell-trace-sdk";
-       version = "0.6.2.0";
-       sha256 = "1yvxsz1b9qrhyw6zamqs5254mpba3vijhach1n424mqa6aq1935s";
+       version = "0.7.0.0";
+       sha256 = "0y76rmz8m2fqw00hzyzalqrhv2rzkg2vvx7qaph3mfrq23ynrgaf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -149121,10 +147662,10 @@ self: {
          transformers unix unordered-containers wai warp
        ];
        testHaskellDepends = [
-         aeson aeson-extra base bytestring directory ekg-core exceptions
-         hslogger http-client http-types HUnit process random regex-base
-         regex-compat regex-pcre regex-tdfa retry scientific text unix
-         unordered-containers
+         aeson aeson-extra array base bytestring case-insensitive directory
+         ekg-core exceptions hslogger http-client http-types HUnit process
+         random regex-base regex-compat regex-pcre regex-tdfa retry
+         scientific text unix unordered-containers vector wai
        ];
        description = "SDK for adding custom Instana tracing support to Haskell applications";
        license = lib.licenses.mit;
@@ -149176,7 +147717,6 @@ self: {
        description = "Generic Aeson instances through instant-generics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "instant-bytes" = callPackage
@@ -149194,7 +147734,6 @@ self: {
        description = "Generic Serial instances through instant-generics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "instant-deepseq" = callPackage
@@ -149207,7 +147746,6 @@ self: {
        description = "Generic NFData instances through instant-generics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "instant-generics" = callPackage
@@ -149235,7 +147773,6 @@ self: {
        description = "Generic Hashable instances through instant-generics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "instant-zipper" = callPackage
@@ -149250,7 +147787,6 @@ self: {
        description = "Heterogenous Zipper in Instant Generics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "instapaper-sender" = callPackage
@@ -149271,7 +147807,6 @@ self: {
        description = "Basic HTTP gateway to save articles to Instapaper";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "instinct" = callPackage
@@ -149336,8 +147871,8 @@ self: {
        pname = "int-cast";
        version = "0.2.0.0";
        sha256 = "0s8rqm5d9f4y2sskajsw8ff7q8xp52vwqa18m6bajldp11m9a1p0";
-       revision = "3";
-       editedCabalFile = "1b99lqxwbhg96iykfr2l7qd388cbx9sf8bln728505qgj6kgsvj7";
+       revision = "4";
+       editedCabalFile = "1l5n3hsa8gr0wzc3cb32ha2j8kcf976i84z04580q41macf0r0h6";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base QuickCheck test-framework test-framework-quickcheck2
@@ -149818,7 +148353,6 @@ self: {
        description = "QuasiQuoter for Ruby-style multi-line interpolated strings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "interpolatedstring-qq-mwotton" = callPackage
@@ -149835,7 +148369,6 @@ self: {
        description = "DO NOT USE THIS. interpolatedstring-qq works now.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "interpolatedstring-qq2" = callPackage
@@ -149957,13 +148490,19 @@ self: {
      }) {};
 
   "interval-algebra" = callPackage
-    ({ mkDerivation, base, hspec, QuickCheck, time, witherable }:
+    ({ mkDerivation, base, containers, hspec, QuickCheck, safe, time
+     , witherable
+     }:
      mkDerivation {
        pname = "interval-algebra";
-       version = "0.3.3";
-       sha256 = "0njlirr5ymsdw27snixxf3c4dgj8grffqv94a1hz97k801a3axkh";
-       libraryHaskellDepends = [ base QuickCheck time witherable ];
-       testHaskellDepends = [ base hspec QuickCheck time ];
+       version = "0.8.2";
+       sha256 = "1xa9rlb9klf0bnig0ccryjxcbz023hwy1wnxp4vwn5ggb0fbmzys";
+       libraryHaskellDepends = [
+         base containers QuickCheck safe time witherable
+       ];
+       testHaskellDepends = [
+         base containers hspec QuickCheck safe time
+       ];
        description = "An implementation of Allen's interval algebra for temporal logic";
        license = lib.licenses.bsd3;
      }) {};
@@ -150122,7 +148661,6 @@ self: {
        description = "A prelude for the tests of safe new projects";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "intset" = callPackage
@@ -150135,7 +148673,6 @@ self: {
        description = "Pure, mergeable, succinct Int sets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "intset-imperative" = callPackage
@@ -150211,17 +148748,15 @@ self: {
      }:
      mkDerivation {
        pname = "invert";
-       version = "1.0";
-       sha256 = "18q070bawfnyi4wl6rxb6l5ihda0xzmlb8g1z0sg46vghvbs985v";
-       revision = "2";
-       editedCabalFile = "1829iy3jg0zwms16cqd4rdg5khl348ih44b3mz7l7cy9wlci3cli";
+       version = "1.0.0.1";
+       sha256 = "07p7vcc3mc4zq0j2qlm4yp0cfsashb32ndx5i9ib0x6lk6rb9djp";
        libraryHaskellDepends = [
          base containers generic-deriving hashable unordered-containers
          vector
        ];
        testHaskellDepends = [ base ];
        benchmarkHaskellDepends = [ base criterion ];
-       description = "Automatically generate a function's inverse";
+       description = "Automatically generate a function’s inverse";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -150276,7 +148811,6 @@ self: {
        description = "invertible functions and instances for HList";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "invertible-hxt" = callPackage
@@ -150434,28 +148968,27 @@ self: {
      }) {};
 
   "io-streams" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, bytestring-builder
-     , deepseq, directory, filepath, HUnit, mtl, network, primitive
-     , process, QuickCheck, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, text, time, transformers, vector
-     , zlib, zlib-bindings
+    ({ mkDerivation, attoparsec, base, bytestring, deepseq, directory
+     , filepath, HUnit, mtl, network, primitive, process, QuickCheck
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, time, transformers, vector, zlib, zlib-bindings
      }:
      mkDerivation {
        pname = "io-streams";
-       version = "1.5.2.0";
-       sha256 = "1hbabrk5145d77qi23688piaf1wc93n8vaj846n0s3zk953z1lk3";
-       revision = "2";
-       editedCabalFile = "1mr0y8m6xdkgvvk76n7pn1airqzgdp8kd8x6jd9w97iy5wjp14q7";
+       version = "1.5.2.1";
+       sha256 = "1y3sqmxrwiksz7pl4hf3vzvg8p8n00qnv98nj5xbpcadlh468rny";
+       revision = "1";
+       editedCabalFile = "0zgrhvafnk9ds29n6x93cifw4993mgvvx3p2d3922frkjvd6xa5v";
        configureFlags = [ "-fnointeractivetests" ];
        libraryHaskellDepends = [
-         attoparsec base bytestring bytestring-builder network primitive
-         process text time transformers vector zlib-bindings
+         attoparsec base bytestring network primitive process text time
+         transformers vector zlib-bindings
        ];
        testHaskellDepends = [
-         attoparsec base bytestring bytestring-builder deepseq directory
-         filepath HUnit mtl network primitive process QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2 text
-         time transformers vector zlib zlib-bindings
+         attoparsec base bytestring deepseq directory filepath HUnit mtl
+         network primitive process QuickCheck test-framework
+         test-framework-hunit test-framework-quickcheck2 text time
+         transformers vector zlib zlib-bindings
        ];
        description = "Simple, composable, and easy-to-use stream I/O";
        license = lib.licenses.bsd3;
@@ -150559,7 +149092,6 @@ self: {
        description = "EDSL for concurrent, realtime, embedded programming on top of Ivory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ioref-stable" = callPackage
@@ -150641,7 +149173,6 @@ self: {
        description = "Library for IP and MAC addresses";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ip-quoter" = callPackage
@@ -150700,16 +149231,15 @@ self: {
      }) {};
 
   "ipa" = callPackage
-    ({ mkDerivation, attoparsec, base, hspec, text, unicode-transforms
+    ({ mkDerivation, attoparsec, base, hspec, template-haskell, text
+     , unicode-transforms
      }:
      mkDerivation {
        pname = "ipa";
-       version = "0.3";
-       sha256 = "0cm9ahqaf2kdqny6nmk9ff1h413v0iqbfsf6glrr5vkhmx60h9qm";
-       revision = "2";
-       editedCabalFile = "1jafvzz7vdbkcwywdhx49g2q1f0gah0bz921kia6lbi5jnyaail1";
+       version = "0.3.1";
+       sha256 = "1l658qnqfs63dwarmiaw7vf6v2xl8hhvzlb95w168rpa7wfkrh5n";
        libraryHaskellDepends = [
-         attoparsec base text unicode-transforms
+         attoparsec base template-haskell text unicode-transforms
        ];
        testHaskellDepends = [ base hspec text ];
        description = "Internal Phonetic Alphabet (IPA)";
@@ -150733,7 +149263,6 @@ self: {
        description = "interactive patch editor";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ipc" = callPackage
@@ -150750,7 +149279,6 @@ self: {
        description = "High level inter-process communication library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ipcvar" = callPackage
@@ -150810,8 +149338,6 @@ self: {
        ];
        description = "Auto-generated IPFS HTTP API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ipld-cid" = callPackage
@@ -150834,7 +149360,6 @@ self: {
        description = "IPLD Content-IDentifiers <https://github.com/ipld/cid>";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ipopt-hs" = callPackage
@@ -150870,7 +149395,6 @@ self: {
        description = "Tiny helper for pretty-printing values in ghci console";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iproute" = callPackage
@@ -150935,7 +149459,6 @@ self: {
        description = "web-interface for iptables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ipynb" = callPackage
@@ -151019,8 +149542,8 @@ self: {
      }:
      mkDerivation {
        pname = "irc-client";
-       version = "1.1.2.0";
-       sha256 = "0gd7ww2cmnh7im0gicsj1617540kl97780860hzf8nkixn71hwqr";
+       version = "1.1.2.1";
+       sha256 = "1zaa8na730m96flgiyzcwq95v2ianvflsw3abvdavf7xpq4s71ld";
        libraryHaskellDepends = [
          base bytestring conduit connection containers contravariant
          exceptions irc-conduit irc-ctcp mtl network-conduit-tls old-locale
@@ -151029,6 +149552,7 @@ self: {
        ];
        description = "An IRC client library";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "irc-colors" = callPackage
@@ -151134,7 +149658,6 @@ self: {
        description = "Library for writing fun IRC bots";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "irc-fun-client" = callPackage
@@ -151154,7 +149677,6 @@ self: {
        description = "Another library for writing IRC clients";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "irc-fun-color" = callPackage
@@ -151172,7 +149694,6 @@ self: {
        description = "Add color and style decorations to IRC messages";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "irc-fun-messages" = callPackage
@@ -151187,7 +149708,6 @@ self: {
        description = "Types and functions for working with the IRC protocol";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "irc-fun-types" = callPackage
@@ -151270,7 +149790,6 @@ self: {
        description = "RFC-based resource identifier library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iridium" = callPackage
@@ -151336,7 +149855,6 @@ self: {
        description = "A technical demo for Antisplice";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "irt" = callPackage
@@ -151407,7 +149925,6 @@ self: {
        description = "Check whether a value has been evaluated";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "isiz" = callPackage
@@ -151449,7 +149966,6 @@ self: {
        description = "Advanced ESMTP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iso-deriving" = callPackage
@@ -151587,7 +150103,6 @@ self: {
        description = "A (bytestring-) builder for the ISO-14496-12 base media file format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "isohunt" = callPackage
@@ -151605,7 +150120,6 @@ self: {
        description = "Bindings to the isoHunt torrent search API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "isotope" = callPackage
@@ -151650,6 +150164,8 @@ self: {
        testHaskellDepends = [ base generic-lens QuickCheck ];
        description = "Automatically derivable Has instances";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "itanium-abi" = callPackage
@@ -151736,7 +150252,6 @@ self: {
        description = "iteratees for statistical processing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iterIO" = callPackage
@@ -151815,7 +150330,6 @@ self: {
        description = "Enumeratees for compressing and decompressing streams";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) bzip2; inherit (pkgs) zlib;};
 
   "iteratee-mtl" = callPackage
@@ -151834,7 +150348,6 @@ self: {
        description = "Iteratee-based I/O";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iteratee-parsec" = callPackage
@@ -151851,7 +150364,6 @@ self: {
        description = "Package allowing parsec parser initeratee";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iteratee-stm" = callPackage
@@ -151866,7 +150378,6 @@ self: {
        description = "Concurrent iteratees using STM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iterio-server" = callPackage
@@ -151884,7 +150395,6 @@ self: {
        description = "Library for building servers with IterIO";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iterm-show" = callPackage
@@ -151901,8 +150411,6 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Enable graphical display of images inline on some terminals";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iterm-show-JuicyPixels" = callPackage
@@ -151916,8 +150424,6 @@ self: {
        libraryHaskellDepends = [ base iterm-show JuicyPixels ];
        description = "Orphan Show instances for JuciyPixels image types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iterm-show-diagrams" = callPackage
@@ -151935,8 +150441,6 @@ self: {
        ];
        description = "Orphan Show instances for diagrams package that render inline in some terminals";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ival" = callPackage
@@ -151983,7 +150487,6 @@ self: {
        description = "Theorem proving library based on dependent type theory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory" = callPackage
@@ -152033,7 +150536,6 @@ self: {
        description = "Ivory register bindings for the Atmega328p";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-backend-c" = callPackage
@@ -152055,7 +150557,6 @@ self: {
        description = "Ivory C backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-bitdata" = callPackage
@@ -152075,7 +150576,6 @@ self: {
        description = "Ivory bit-data support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-eval" = callPackage
@@ -152095,7 +150595,6 @@ self: {
        description = "Simple concrete evaluator for Ivory programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-examples" = callPackage
@@ -152119,7 +150618,6 @@ self: {
        description = "Ivory examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-hw" = callPackage
@@ -152133,7 +150631,6 @@ self: {
        description = "Ivory hardware model (STM32F4)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-opts" = callPackage
@@ -152151,7 +150648,6 @@ self: {
        description = "Ivory compiler optimizations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-quickcheck" = callPackage
@@ -152174,7 +150670,6 @@ self: {
        description = "QuickCheck driver for Ivory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-serialize" = callPackage
@@ -152192,7 +150687,6 @@ self: {
        description = "Serialization library for Ivory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivory-stdlib" = callPackage
@@ -152206,7 +150700,6 @@ self: {
        description = "Ivory standard library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ivy-web" = callPackage
@@ -152223,7 +150716,6 @@ self: {
        description = "A lightweight web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "iwlib" = callPackage
@@ -152236,6 +150728,9 @@ self: {
        librarySystemDepends = [ wirelesstools ];
        description = "Bindings for the iw C library";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) wirelesstools;};
 
   "ix" = callPackage
@@ -152409,7 +150904,6 @@ self: {
        description = "CLI (command line interface) to YQL";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "j" = callPackage
@@ -152447,7 +150941,6 @@ self: {
        description = "j2hs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ja-base-extra" = callPackage
@@ -152564,7 +151057,6 @@ self: {
        description = "Jailed IO monad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jailbreak-cabal" = callPackage
@@ -152780,7 +151272,6 @@ self: {
        description = "Utilities for working with the java-bridge package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "java-character" = callPackage
@@ -152793,7 +151284,6 @@ self: {
        description = "Functions to simulate Java's Character class";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "java-poker" = callPackage
@@ -152820,7 +151310,6 @@ self: {
        description = "Tools for reflecting on Java classes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "javaclass" = callPackage
@@ -152906,7 +151395,6 @@ self: {
        description = "A utility to print the SourceFile attribute of one or more Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "javav" = callPackage
@@ -153094,8 +151582,8 @@ self: {
     ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "jira-wiki-markup";
-       version = "1.3.4";
-       sha256 = "0rrqaibgafbynrlcsp7f7hkzgkp2gix7ji2hkpgpby6fvp6965fh";
+       version = "1.3.5";
+       sha256 = "0k5z2lxj5xp9hpr3mmdbzkd0yn718477pqjvymyz361h938rqnz5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl parsec text ];
@@ -153105,6 +151593,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "jira-wiki-markup_1_4_0" = callPackage
+    ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit, text }:
+     mkDerivation {
+       pname = "jira-wiki-markup";
+       version = "1.4.0";
+       sha256 = "0p6axj6km4440ss5naw68r3r85si4qxqgrklp6ssfyapawy0s88w";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base mtl parsec text ];
+       executableHaskellDepends = [ base text ];
+       testHaskellDepends = [ base parsec tasty tasty-hunit text ];
+       description = "Handle Jira wiki markup";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "jmacro" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers
      , haskell-src-exts, haskell-src-meta, mtl, parseargs, parsec
@@ -153130,7 +151634,6 @@ self: {
        description = "QuasiQuotation library for programmatic generation of Javascript code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jmacro-rpc" = callPackage
@@ -153150,7 +151653,6 @@ self: {
        description = "JSON-RPC clients and servers using JMacro, and evented client-server Reactive Programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jmacro-rpc-happstack" = callPackage
@@ -153168,7 +151670,6 @@ self: {
        description = "Happstack backend for jmacro-rpc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jmacro-rpc-snap" = callPackage
@@ -153185,7 +151686,6 @@ self: {
        description = "Snap backend for jmacro-rpc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jml-web-service" = callPackage
@@ -153221,7 +151721,6 @@ self: {
        description = "Jmonkey is very restricted but handy EDSL for JavaScript";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jni" = callPackage
@@ -153233,6 +151732,8 @@ self: {
        pname = "jni";
        version = "0.8.0";
        sha256 = "0m94p2zx877snh3imwcdnwa8ajfb76cg2rjgjx3pan508ham1h5i";
+       revision = "2";
+       editedCabalFile = "1ql65nfmd5mhn7y2xdifx240mk5my5z8w3pn85497hzk27qllybi";
        libraryHaskellDepends = [
          async base bytestring choice constraints containers deepseq
          inline-c singletons stm text
@@ -153292,7 +151793,6 @@ self: {
        description = "A library for creating a jobs management website running custom jobs";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "join" = callPackage
@@ -153306,7 +151806,6 @@ self: {
        description = "Parallel Join Patterns with Guards and Propagation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "join-api" = callPackage
@@ -153472,7 +151971,6 @@ self: {
        description = "Tiny markdown notebook";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jpeg" = callPackage
@@ -153574,8 +152072,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle";
-       version = "0.9.7.1";
-       sha256 = "1igkv5lvlbq0xl2dp6d8fp4ybwnwmgrc3r4sfjsric0bj8sq2k86";
+       version = "0.9.8.0";
+       sha256 = "0g3jdh4x80fsbrcj5kd81inv8hcx662v5dsn9d6q1dla0cz8w8i9";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat base64-bytestring bytestring
          containers deepseq exceptions filepath ghc-prim http-types lens
@@ -153592,8 +152090,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-clib";
-       version = "0.9.7.1";
-       sha256 = "07s2iy136dm526mr7q43mxqq9qndg8jbi9kz1652qgl0ivn8lapc";
+       version = "0.9.8.0";
+       sha256 = "0axgfkxgvm4awvklss2pqa8a4112m3q7k38h71anxs6i199lgkyq";
        libraryHaskellDepends = [
          aeson base base-compat bytestring data-default jsaddle text
        ];
@@ -153641,8 +152139,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-warp";
-       version = "0.9.7.1";
-       sha256 = "1piyxxmik1bwdzkz46vgdhdp0gw4p01fww591zqbxzjk6rmrpby0";
+       version = "0.9.8.0";
+       sha256 = "06bf071xnfx7mjzf7jdyjspjw28s2z3br5gmx9vcs7paji20c8np";
        libraryHaskellDepends = [
          aeson base bytestring containers foreign-store http-types jsaddle
          stm text time transformers wai wai-websockets warp websockets
@@ -153666,8 +152164,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-webkit2gtk";
-       version = "0.9.7.1";
-       sha256 = "0f2siaid0b03zrjzpb3lr9k9w5np2vml6apd961zd97dghvvhiix";
+       version = "0.9.8.0";
+       sha256 = "01iav691d3h6l9x7vw0spb68n4y5m9pb8d02iyp5lvkqr2y4h9kv";
        libraryHaskellDepends = [
          aeson base bytestring directory gi-gio gi-glib gi-gtk
          gi-javascriptcore gi-webkit2 haskell-gi-base haskell-gi-overloading
@@ -153675,7 +152173,9 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "jsaddle-webkitgtk" = callPackage
@@ -153698,17 +152198,11 @@ self: {
      }) {};
 
   "jsaddle-wkwebview" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, data-default
-     , directory, jsaddle, text
-     }:
+    ({ mkDerivation }:
      mkDerivation {
        pname = "jsaddle-wkwebview";
-       version = "0.9.7.1";
-       sha256 = "0dfaysw7fzmv2b62wi5id45f4i0x2vbjp9irbdkmv1h2z3ydwy20";
-       libraryHaskellDepends = [
-         aeson base bytestring containers data-default directory jsaddle
-         text
-       ];
+       version = "0.9.8.0";
+       sha256 = "1cjncl2jqnx4j83pmcnnvcc0rswhwwb5grwh636b11yyp4vv58dw";
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -153742,7 +152236,6 @@ self: {
        description = "Javascript Monadic Writer base package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json" = callPackage
@@ -153868,7 +152361,6 @@ self: {
        description = "Encoders of JSON AST";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-ast-quickcheck" = callPackage
@@ -153920,7 +152412,6 @@ self: {
        description = "Automatic type declaration for JSON input data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-b" = callPackage
@@ -153944,7 +152435,6 @@ self: {
        description = "JSON parser that uses byte strings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-builder" = callPackage
@@ -154039,7 +152529,6 @@ self: {
        description = "Pure-Haskell utilities for dealing with JSON with the enumerator package. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-extra" = callPackage
@@ -154066,8 +152555,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "1.0.12";
-       sha256 = "0baav0mvprja5jdmndan6psxqm37173yvrjrr04kfxs9568dvzyf";
+       version = "1.0.13";
+       sha256 = "14wqv8qk7xax6kvj96wsx2sarxardbkddm8hkllkkf8b9jz04si5";
        libraryHaskellDepends = [
          aeson base bytestring mime-types network-uri tagsoup text time
        ];
@@ -154122,7 +152611,6 @@ self: {
        description = "Incremental JSON parser with early termination and a declarative DSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-litobj" = callPackage
@@ -154267,7 +152755,6 @@ self: {
        description = "Kitchen sink for querying JSON";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-rpc" = callPackage
@@ -154415,8 +152902,6 @@ self: {
        ];
        description = "Generics JSON (de)serialization using generics-sop";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-state" = callPackage
@@ -154481,7 +152966,6 @@ self: {
        description = "High-performance JSON parser and encoder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-to-haskell" = callPackage
@@ -154513,8 +152997,6 @@ self: {
          recursion-schemes text unordered-containers vector
        ];
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-togo" = callPackage
@@ -154533,7 +153015,6 @@ self: {
        description = "Effectful parsing of JSON documents";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-tokens" = callPackage
@@ -154562,7 +153043,6 @@ self: {
        description = "Tokenize JSON";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json-tools" = callPackage
@@ -154654,7 +153134,6 @@ self: {
        description = "Support JSON for SQL Database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "json2-types" = callPackage
@@ -154737,30 +153216,29 @@ self: {
        description = "Fast and simple JSON encoding toolkit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jsonnet" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring
+    ({ mkDerivation, aeson, ansi-wl-pprint, base, binary, bytestring
      , containers, data-fix, deriving-compat, directory, exceptions
-     , filepath, hashable, megaparsec, mtl, optparse-applicative
-     , parser-combinators, scientific, semigroupoids, tasty
+     , filepath, hashable, lens, megaparsec, mtl, optparse-applicative
+     , parser-combinators, scientific, semigroupoids, tasty, tasty-bench
      , tasty-golden, tasty-hunit, template-haskell, text
-     , transformers-compat, unbound-generics, unordered-containers
-     , vector
+     , th-lift-instances, th-utilities, transformers-compat
+     , unbound-generics, unordered-containers, vector
      }:
      mkDerivation {
        pname = "jsonnet";
-       version = "0.2.0.0";
-       sha256 = "0ns2yij8yl555n5rb0pahxpqrwxgzfvdr4ajp0dy5amqsv13hhmh";
+       version = "0.3.1.1";
+       sha256 = "021kklj3ycpm5n2r6bjqc0vicn9vdv5a56sd1la6pf430i1fd7z9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint base bytestring containers data-fix
-         deriving-compat directory exceptions filepath hashable megaparsec
-         mtl optparse-applicative parser-combinators scientific
-         semigroupoids template-haskell text transformers-compat
-         unbound-generics unordered-containers vector
+         aeson ansi-wl-pprint base binary bytestring containers data-fix
+         deriving-compat directory exceptions filepath hashable lens
+         megaparsec mtl parser-combinators scientific semigroupoids
+         template-haskell text th-lift-instances th-utilities
+         transformers-compat unbound-generics unordered-containers vector
        ];
        executableHaskellDepends = [
          aeson ansi-wl-pprint base bytestring mtl optparse-applicative text
@@ -154769,6 +153247,9 @@ self: {
          ansi-wl-pprint base bytestring filepath mtl tasty tasty-golden
          tasty-hunit text
        ];
+       benchmarkHaskellDepends = [
+         ansi-wl-pprint base bytestring tasty-bench text
+       ];
        description = "Jsonnet implementaton in pure Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -154820,8 +153301,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsonrpc-conduit";
-       version = "0.3.3";
-       sha256 = "16dcj85ycjsm82pb32abc3wb05gh87mrkyaij89imvbqsv5k0sy1";
+       version = "0.3.4";
+       sha256 = "18lqkcq69k3hjbqzxycdgrfrd2a5m3ahxwja0yw8xi9x6mw33cxi";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring conduit conduit-extra mtl text
          transformers unordered-containers
@@ -154832,8 +153313,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "JSON-RPC 2.0 server over a Conduit.";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jsons-to-schema" = callPackage
@@ -154866,7 +153345,6 @@ self: {
        description = "JSON to JSON Schema";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jsonschema-gen" = callPackage
@@ -154996,7 +153474,6 @@ self: {
        description = "Extract substructures from JSON by following a path";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "juandelacosa" = callPackage
@@ -155020,8 +153497,6 @@ self: {
        ];
        description = "Manage users in MariaDB >= 10.1.1";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "judge" = callPackage
@@ -155110,8 +153585,8 @@ self: {
      }:
      mkDerivation {
        pname = "jukebox";
-       version = "0.5.2";
-       sha256 = "1nhz7rf8sczrhph0h9hia1vqxig1bcpc8v6zvxgrywmacl1mnky6";
+       version = "0.5.3";
+       sha256 = "00774gby970jxa69zw8baki40r6nw7vrprc670n8skmlp03p38j2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -155217,6 +153692,8 @@ self: {
        pname = "jvm";
        version = "0.6.0";
        sha256 = "119davscv5mrw2mnlrklx8hbjrc7lhf5a9jphdnnxs6bywi8i2zm";
+       revision = "2";
+       editedCabalFile = "1p0p50w0zjf79a3p5wiwg1wfnsgvqf2n04ydpacrfwm96id667kp";
        libraryHaskellDepends = [
          base bytestring choice constraints distributed-closure exceptions
          jni singletons template-haskell text vector
@@ -155230,7 +153707,6 @@ self: {
        description = "Call JVM methods from Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jvm-batching" = callPackage
@@ -155242,6 +153718,8 @@ self: {
        pname = "jvm-batching";
        version = "0.2.0";
        sha256 = "19z0db10y181n4adkz23cmly0q4zp953zh6f3r7rmxcd78758pbk";
+       revision = "1";
+       editedCabalFile = "1ni0gnww6r18dg2pm1hmdkfzaghq5ssirpp737i1c81ya1k95m2n";
        setupHaskellDepends = [ base Cabal inline-java ];
        libraryHaskellDepends = [
          base bytestring distributed-closure inline-java jni jvm singletons
@@ -155256,7 +153734,6 @@ self: {
        description = "Provides batched marshalling of values between Java and Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jvm-binary" = callPackage
@@ -155268,8 +153745,8 @@ self: {
      }:
      mkDerivation {
        pname = "jvm-binary";
-       version = "0.9.0";
-       sha256 = "1ks5mbp1anrgm100sf3ycv1prwm3vj1vyag7l0ihs4cr2sqzq3a2";
+       version = "0.10.0";
+       sha256 = "11c3rhny06zjw8xv830khq1kdjbpzkr7wmzzymld4zcmhfmk9qda";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          attoparsec base binary bytestring containers data-binary-ieee754
@@ -155320,6 +153797,8 @@ self: {
        pname = "jvm-streaming";
        version = "0.4.0";
        sha256 = "0k8y6kvbymmjlr3bvgcws0z2hwdznyr3b3alkwsjag49lsgp21sd";
+       revision = "1";
+       editedCabalFile = "01f3j02qzqi7ls876vwzl2db3621xr7psmzm3cx9pk414bhj5f56";
        setupHaskellDepends = [ base Cabal inline-java jvm-batching ];
        libraryHaskellDepends = [
          base distributed-closure inline-java jni jvm jvm-batching
@@ -155334,7 +153813,6 @@ self: {
        description = "Expose Java iterators as streams from the streaming package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jwt" = callPackage
@@ -155455,7 +153933,6 @@ self: {
        description = "UI device events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kafka-device-glut" = callPackage
@@ -155471,7 +153948,6 @@ self: {
        description = "GLUT events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kafka-device-joystick" = callPackage
@@ -155493,7 +153969,6 @@ self: {
        description = "Linux joystick events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kafka-device-leap" = callPackage
@@ -155513,7 +153988,6 @@ self: {
        description = "Leap Motion events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kafka-device-spacenav" = callPackage
@@ -155535,7 +154009,6 @@ self: {
        description = "Linux SpaceNavigator events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kafka-device-vrpn" = callPackage
@@ -155551,7 +154024,6 @@ self: {
        description = "VRPN events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kaleidoscope" = callPackage
@@ -155575,7 +154047,6 @@ self: {
        description = "Haskell Kaleidoscope tutorial";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kalman" = callPackage
@@ -155696,7 +154167,6 @@ self: {
        description = "Kansas Lava is a hardware simulator and VHDL generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kansas-lava-cores" = callPackage
@@ -155717,7 +154187,6 @@ self: {
        description = "FPGA Cores Written in Kansas Lava";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kansas-lava-papilio" = callPackage
@@ -155737,7 +154206,6 @@ self: {
        description = "Kansas Lava support files for the Papilio FPGA board";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kansas-lava-shake" = callPackage
@@ -155755,7 +154223,6 @@ self: {
        description = "Shake rules for building Kansas Lava projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "karakuri" = callPackage
@@ -155772,7 +154239,6 @@ self: {
        description = "Good stateful automata";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "karps" = callPackage
@@ -155909,7 +154375,6 @@ self: {
        description = "ElasticSearch scribe for the Katip logging framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "katip-kafka" = callPackage
@@ -156002,7 +154467,6 @@ self: {
        description = "Katip scribe that logs to Rollbar";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "katip-scalyr-scribe" = callPackage
@@ -156393,7 +154857,6 @@ self: {
        description = "Rapid Gtk Application Development - I18N";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-mvc-controller" = callPackage
@@ -156422,7 +154885,6 @@ self: {
        description = "Haskell on Gtk rails - Gtk-based global environment for MVC applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-mvc-model-lightmodel" = callPackage
@@ -156440,7 +154902,6 @@ self: {
        description = "Rapid Gtk Application Development - Reactive Protected Light Models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-mvc-model-protectedmodel" = callPackage
@@ -156458,7 +154919,6 @@ self: {
        description = "Rapid Gtk Application Development - Protected Reactive Models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-mvc-solutions-config" = callPackage
@@ -156492,7 +154952,6 @@ self: {
        description = "Haskell on Gtk rails - Common solutions to recurrent problems in Gtk applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-mvc-view" = callPackage
@@ -156536,7 +154995,6 @@ self: {
        description = "Reactive Haskell on Rails - CBMVars as reactive values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactive-fs" = callPackage
@@ -156553,7 +155011,6 @@ self: {
        description = "Haskell on Rails - Files as Reactive Values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactive-gtk" = callPackage
@@ -156571,7 +155028,6 @@ self: {
        description = "Haskell on Gtk rails - Reactive Fields for Gtk widgets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactive-htmldom" = callPackage
@@ -156590,7 +155046,6 @@ self: {
        description = "Keera Hails Reactive bindings for HTML DOM via GHCJS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactive-network" = callPackage
@@ -156607,7 +155062,6 @@ self: {
        description = "Haskell on Rails - Sockets as Reactive Values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactive-polling" = callPackage
@@ -156623,7 +155077,6 @@ self: {
        description = "Haskell on Rails - Polling based Readable RVs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactive-wx" = callPackage
@@ -156638,7 +155091,6 @@ self: {
        description = "Haskell on Rails - Reactive Fields for WX widgets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactive-yampa" = callPackage
@@ -156655,7 +155107,6 @@ self: {
        description = "Haskell on Rails - FRP Yampa Signal Functions as RVs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactivelenses" = callPackage
@@ -156668,7 +155119,6 @@ self: {
        description = "Reactive Haskell on Rails - Lenses applied to Reactive Values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keera-hails-reactivevalues" = callPackage
@@ -156757,8 +155207,8 @@ self: {
      }:
      mkDerivation {
        pname = "kempe";
-       version = "0.2.0.1";
-       sha256 = "1xs2jism3r2pgvir1rr318dfrjagkagvzzdrs7n9070xzv3p3c5q";
+       version = "0.2.0.4";
+       sha256 = "0rzpid5lnjnjgsip3fvm5d313hh8wb7gqla3dyf56l9q7y4r20js";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -156772,8 +155222,8 @@ self: {
          base bytestring optparse-applicative prettyprinter
        ];
        testHaskellDepends = [
-         base bytestring composition-prelude deepseq filepath prettyprinter
-         process tasty tasty-golden tasty-hunit temporary text
+         base bytestring composition-prelude deepseq extra filepath
+         prettyprinter process tasty tasty-golden tasty-hunit temporary text
        ];
        benchmarkHaskellDepends = [
          base bytestring criterion prettyprinter temporary text
@@ -156884,7 +155334,6 @@ self: {
        description = "a dAmn ↔ IRC proxy";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "key" = callPackage
@@ -156953,8 +155402,8 @@ self: {
        pname = "keycode";
        version = "0.2.2";
        sha256 = "046k8d1h5wwadf5z4pppjkc3g7v2zxlzb06s1xgixc42y5y41yan";
-       revision = "6";
-       editedCabalFile = "0acc224njxf8y7r381pnzxx6z3lvshs5mwfafkcrn36nb0wfplng";
+       revision = "7";
+       editedCabalFile = "1xfhm486mgkf744nbx94aw0b1lraj1yv29c57rbx1c2b84v2z8k2";
        libraryHaskellDepends = [
          base containers ghc-prim template-haskell
        ];
@@ -157047,7 +155496,6 @@ self: {
        description = "back up a secret key securely to the cloud";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keystore" = callPackage
@@ -157079,8 +155527,6 @@ self: {
        ];
        description = "Managing stores of secret things";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keyvaluehash" = callPackage
@@ -157098,7 +155544,6 @@ self: {
        description = "Pure Haskell key/value store implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "keyword-args" = callPackage
@@ -157121,7 +155566,6 @@ self: {
        description = "Extract data from a keyword-args config file format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "khph" = callPackage
@@ -157188,7 +155632,6 @@ self: {
        description = "Parser and writer for KiCad files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kickass-torrents-dump-parser" = callPackage
@@ -157247,7 +155690,6 @@ self: {
        description = "Process KIF iOS test logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kind-apply" = callPackage
@@ -157318,7 +155760,6 @@ self: {
        description = "A dependency manager for Xcode (Objective-C) projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kleene" = callPackage
@@ -157341,7 +155782,6 @@ self: {
        description = "Kleene algebra";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kleene-list" = callPackage
@@ -157392,7 +155832,6 @@ self: {
        description = "Sequential and parallel implementations of Lloyd's algorithm";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kmeans-vector" = callPackage
@@ -157410,7 +155849,6 @@ self: {
        description = "An implementation of the kmeans clustering algorithm based on the vector package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kmonad" = callPackage
@@ -157468,7 +155906,6 @@ self: {
        description = "Repa-like array processing using LLVM JIT";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "knead-arithmetic" = callPackage
@@ -157483,7 +155920,6 @@ self: {
        description = "Linear algebra and interpolation using LLVM JIT";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "knit" = callPackage
@@ -157536,7 +155972,6 @@ self: {
        description = "a minimal Rmarkdown sort-of-thing for haskell, by way of Pandoc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "knob" = callPackage
@@ -157567,7 +156002,6 @@ self: {
        description = "Khovanov homology computations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "koellner-phonetic" = callPackage
@@ -157589,8 +156023,8 @@ self: {
     ({ mkDerivation, base, haxr, mtl }:
      mkDerivation {
        pname = "koji";
-       version = "0.0.1";
-       sha256 = "0yxx6xk5xld7jf7ph4x0r7k4bqcg02yl7597awbgbq82x97gyfb8";
+       version = "0.0.2";
+       sha256 = "1ypr552453r0b9s5xlsw0gllka2jaf9xwphlnx55fn05f17zh7qd";
        libraryHaskellDepends = [ base haxr mtl ];
        description = "Koji buildsystem XML-RPC API bindings";
        license = lib.licenses.gpl2Only;
@@ -157682,7 +156116,6 @@ self: {
        description = "The Korfu ORF Utility";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kparams" = callPackage
@@ -157831,7 +156264,6 @@ self: {
        description = "Kolmogorov distribution and Kolmogorov-Smirnov test";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ksystools" = callPackage
@@ -157914,7 +156346,6 @@ self: {
        description = "Client library for Kubernetes";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kubernetes-client-core" = callPackage
@@ -157942,8 +156373,6 @@ self: {
        ];
        description = "Auto-generated kubernetes-client-core API Client";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kubernetes-webhook-haskell" = callPackage
@@ -157984,8 +156413,6 @@ self: {
        libraryHaskellDepends = [ base dlist transformers ];
        description = "Combinators for Strategic Programming";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kure-your-boilerplate" = callPackage
@@ -158032,7 +156459,6 @@ self: {
        description = "Find the alpha emoji";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "kvitable" = callPackage
@@ -158149,7 +156575,6 @@ self: {
        description = "an experiment management framework";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "labsat" = callPackage
@@ -158174,7 +156599,6 @@ self: {
        description = "LabSat TCP Interface Wrapper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "labyrinth" = callPackage
@@ -158197,7 +156621,6 @@ self: {
        description = "A complicated turn-based game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "labyrinth-server" = callPackage
@@ -158232,21 +156655,18 @@ self: {
        description = "A complicated turn-based game - Web server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lackey" = callPackage
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "1.0.14";
-       sha256 = "01yi2si0gakmjk66jmm93hz50nl7xa1zhmhcrhqn8ip0mkpncnqk";
+       version = "1.0.15";
+       sha256 = "144wlp75gaz7yjb3rb1f1l79qmh2mms3vrrn5v4a13wjmqsd7brw";
        libraryHaskellDepends = [ base servant servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lacroix" = callPackage
@@ -158300,7 +156720,6 @@ self: {
        description = "Minimalistic type-checked compile-time template engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambda-ast" = callPackage
@@ -158348,7 +156767,6 @@ self: {
        description = "A lambda calculus interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambda-calculus-interpreter" = callPackage
@@ -158404,7 +156822,6 @@ self: {
        description = "a Paralell-DEVS implementaion based on distributed-process";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambda-options" = callPackage
@@ -158420,7 +156837,6 @@ self: {
        description = "Declarative command-line parser with type-driven pattern matching";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambda-placeholders" = callPackage
@@ -158505,7 +156921,6 @@ self: {
        description = "RSS 2.0 feed generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdaLit" = callPackage
@@ -158524,7 +156939,6 @@ self: {
        description = "...";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdabot" = callPackage
@@ -158764,7 +157178,6 @@ self: {
        description = "Lambdabot for Zulip Chat";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacat" = callPackage
@@ -158827,7 +157240,6 @@ self: {
        description = "LambdaCms \"media\" extension";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube" = callPackage
@@ -158842,7 +157254,6 @@ self: {
        description = "A simple lambda cube type checker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-bullet" = callPackage
@@ -158857,7 +157268,6 @@ self: {
        description = "Example for combining LambdaCube and Bullet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-compiler" = callPackage
@@ -158883,7 +157293,6 @@ self: {
        description = "LambdaCube 3D is a DSL to program GPUs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-core" = callPackage
@@ -158900,7 +157309,6 @@ self: {
        description = "LambdaCube 3D IR";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-edsl" = callPackage
@@ -158918,7 +157326,6 @@ self: {
        description = "LambdaCube 3D EDSL definition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-engine" = callPackage
@@ -158939,7 +157346,6 @@ self: {
        description = "3D rendering engine written entirely in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-examples" = callPackage
@@ -158957,7 +157363,6 @@ self: {
        description = "Examples for LambdaCube";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-gl" = callPackage
@@ -158977,7 +157382,6 @@ self: {
        description = "OpenGL 3.3 Core Profile backend for LambdaCube 3D";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdacube-ir" = callPackage
@@ -159013,7 +157417,6 @@ self: {
        description = "Samples for LambdaCube 3D";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdatex" = callPackage
@@ -159077,7 +157480,6 @@ self: {
        description = "Fpga bus core and serialization for RedPitaya";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lambdiff" = callPackage
@@ -159096,7 +157498,6 @@ self: {
        description = "Diff Viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lame" = callPackage
@@ -159154,7 +157555,6 @@ self: {
        description = "A Lisp";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-Modula2" = callPackage
@@ -159188,7 +157588,6 @@ self: {
        description = "Parser, pretty-printer, and more for the Modula-2 programming language";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-asn" = callPackage
@@ -159311,7 +157710,6 @@ self: {
        description = "Interpreter and language infrastructure for Boogie";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-c" = callPackage
@@ -159330,6 +157728,7 @@ self: {
        testHaskellDepends = [ base directory filepath process ];
        description = "Analysis and generation of C code";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "language-c_0_9_0_1" = callPackage
@@ -159349,6 +157748,7 @@ self: {
        description = "Analysis and generation of C code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "language-c-comments" = callPackage
@@ -159388,20 +157788,20 @@ self: {
     ({ mkDerivation, alex, array, base, bytestring, containers
      , exception-mtl, exception-transformers, filepath, happy
      , haskell-src-meta, HUnit, mainland-pretty, mtl, srcloc, syb
-     , symbol, template-haskell, test-framework, test-framework-hunit
+     , template-haskell, test-framework, test-framework-hunit
      }:
      mkDerivation {
        pname = "language-c-quote";
-       version = "0.12.2.1";
-       sha256 = "0hwv4b40wj953f39gqn8ji4ycli67c90b8xbizskd4i1x3nqbi35";
+       version = "0.13";
+       sha256 = "02axz6498sg2rf24qds39n9gysc4lm3v354h2qyhrhadlfq8sf6d";
        libraryHaskellDepends = [
          array base bytestring containers exception-mtl
          exception-transformers filepath haskell-src-meta mainland-pretty
-         mtl srcloc syb symbol template-haskell
+         mtl srcloc syb template-haskell
        ];
        libraryToolDepends = [ alex happy ];
        testHaskellDepends = [
-         base bytestring HUnit mainland-pretty srcloc symbol test-framework
+         base bytestring HUnit mainland-pretty srcloc test-framework
          test-framework-hunit
        ];
        description = "C/CUDA/OpenCL/Objective-C quasiquoting library";
@@ -159557,8 +157957,6 @@ self: {
        doHaddock = false;
        description = "A language for generative literature";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-docker" = callPackage
@@ -159568,29 +157966,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-docker";
-       version = "9.2.0";
-       sha256 = "08nq78091w7dii823fy7bvp2gxn1j1fp1fj151z37hvf423w19ds";
-       libraryHaskellDepends = [
-         base bytestring containers data-default-class megaparsec
-         prettyprinter split text time
-       ];
-       testHaskellDepends = [
-         base bytestring containers data-default-class hspec HUnit
-         megaparsec prettyprinter QuickCheck split text time
-       ];
-       description = "Dockerfile parser, pretty-printer and embedded DSL";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "language-docker_9_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, data-default-class
-     , hspec, HUnit, megaparsec, prettyprinter, QuickCheck, split, text
-     , time
-     }:
-     mkDerivation {
-       pname = "language-docker";
-       version = "9.3.0";
-       sha256 = "1n9v0b6lwr528b6919y11a8d27mhsp0mm870rx0rjg9l5j4mnbvn";
+       version = "10.0.1";
+       sha256 = "19pyms0ik37wpzjnlplj2vwikbjdjaw78llpfjp0a0467wlk7na6";
        libraryHaskellDepends = [
          base bytestring containers data-default-class megaparsec
          prettyprinter split text time
@@ -159601,7 +157978,6 @@ self: {
        ];
        description = "Dockerfile parser, pretty-printer and embedded DSL";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "language-dockerfile" = callPackage
@@ -159706,7 +158082,6 @@ self: {
        description = "Parser and pretty printer for the Eiffel language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-elm" = callPackage
@@ -159739,8 +158114,6 @@ self: {
        libraryToolDepends = [ alex happy ];
        description = "Fortran lexer and parser, language support, and extensions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-gcl" = callPackage
@@ -159949,7 +158322,6 @@ self: {
        description = "Parser and serializer for the Kort information language";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-lua" = callPackage
@@ -160074,7 +158446,6 @@ self: {
        description = "A library for dealing with the Ninja build language";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-nix" = callPackage
@@ -160123,7 +158494,6 @@ self: {
        description = "Parser, pretty-printer, and more for the Oberon programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-objc" = callPackage
@@ -160297,7 +158667,6 @@ self: {
        description = "Generate coloured XHTML for Python code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-python-test" = callPackage
@@ -160328,7 +158697,6 @@ self: {
        description = "Utilities for working with the Qux language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-rust" = callPackage
@@ -160429,7 +158797,6 @@ self: {
        description = "Various tools to detect/correct mistakes in words";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-sqlite" = callPackage
@@ -160485,8 +158852,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Parser and pretty printer for the Thrift IDL format";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "language-tl" = callPackage
@@ -160596,7 +158961,6 @@ self: {
        description = "Numerical Linear Algebra using LAPACK";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lapack-carray" = callPackage
@@ -160614,7 +158978,6 @@ self: {
        description = "Auto-generated interface to Fortran LAPACK via CArrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lapack-comfort-array" = callPackage
@@ -160632,7 +158995,6 @@ self: {
        description = "Auto-generated interface to Fortran LAPACK via comfort-array";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lapack-ffi" = callPackage
@@ -160699,8 +159061,10 @@ self: {
        ];
        description = "Efficiently hash (large) Haskell values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
+       maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
   "largeword" = callPackage
@@ -160738,7 +159102,6 @@ self: {
        description = "Tool to track security alerts on LWN";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "latest-npm-version" = callPackage
@@ -160801,7 +159164,6 @@ self: {
        description = "Use actual LaTeX to render formulae inside Hakyll pages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "latex-formulae-image" = callPackage
@@ -160844,7 +159206,6 @@ self: {
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX installation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "latex-function-tables" = callPackage
@@ -160898,7 +159259,6 @@ self: {
        description = "Use actual LaTeX to render formulae inside Hakyll pages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "latex-svg-image" = callPackage
@@ -160938,7 +159298,6 @@ self: {
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lattices" = callPackage
@@ -160997,8 +159356,6 @@ self: {
        ];
        description = "Server-side SDK for integrating with LaunchDarkly";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "launchpad-control" = callPackage
@@ -161097,7 +159454,6 @@ self: {
        description = "Control structure similar to Control.Monad.State, allowing multiple nested states, distinguishable by provided phantom types.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "layers" = callPackage
@@ -161131,7 +159487,6 @@ self: {
        description = "A prototypical 2d platform game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "layout" = callPackage
@@ -161169,8 +159524,6 @@ self: {
        libraryHaskellDepends = [ alex-tools base text ];
        description = "A collection of different layout implementations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "layouting" = callPackage
@@ -161187,7 +159540,6 @@ self: {
        description = "General layouting library. Currently supports layouting 2D areas and can be used as a backend for text pretty printing or automatic windows layouting managers.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lazy" = callPackage
@@ -161232,7 +159584,6 @@ self: {
        description = "Identifiers for not-yet-computed values";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lazy-hash-cache" = callPackage
@@ -161254,7 +159605,6 @@ self: {
        description = "Storing computed values for re-use when the same program runs again";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lazy-io" = callPackage
@@ -161279,8 +159629,6 @@ self: {
        libraryHaskellDepends = [ base bytestring io-streams ];
        description = "Get lazy with your io-streams";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lazy-priority-queue" = callPackage
@@ -161310,8 +159658,6 @@ self: {
        libraryHaskellDepends = [ base size-based ];
        description = "Finds values satisfying a lazy predicate";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lazyarray" = callPackage
@@ -161502,7 +159848,6 @@ self: {
        description = "LDIF idempotent apply tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ldif" = callPackage
@@ -161566,7 +159911,6 @@ self: {
        description = "Robust space leak, and its strictification";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lean" = callPackage
@@ -161583,7 +159927,6 @@ self: {
        description = "Bonds to Lean theorem prover";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lean-peano" = callPackage
@@ -161608,25 +159951,12 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "leancheck";
-       version = "0.9.3";
-       sha256 = "14wi7h07pipd56grhaqmhb8wmr52llgd3xb7fm8hi9fb1sfzmvg0";
-       libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base ];
-       description = "Enumerative property-based testing";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "leancheck_0_9_4" = callPackage
-    ({ mkDerivation, base, template-haskell }:
-     mkDerivation {
-       pname = "leancheck";
-       version = "0.9.4";
-       sha256 = "0w17ymj7k4sr9jwp9yrgh3l94l3kgjyxxnpxwj2sdqk8fvmjpkny";
+       version = "0.9.6";
+       sha256 = "0nw7hm9aawv6xljii3cjy9qbdbb5p05k5rmc9qv4dkajjjyhyna9";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base ];
        description = "Enumerative property-based testing";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "leancheck-enum-instances" = callPackage
@@ -161699,8 +160029,6 @@ self: {
        ];
        description = "Use the Leanpub API via Wreq";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "leapseconds" = callPackage
@@ -161806,6 +160134,8 @@ self: {
        pname = "leb128";
        version = "0.1.0.0";
        sha256 = "097xzdj1q17whnzwlpwnfapppgc4lqwmmfcv2694gzlil84rqwk7";
+       revision = "1";
+       editedCabalFile = "02vn6ffdfvrvcnil22hx4v85ykdxj1j0bsnv111rkxi17j2s76sp";
        libraryHaskellDepends = [ base bytestring ghc-prim transformers ];
        testHaskellDepends = [
          base bytestring QuickCheck test-framework
@@ -161883,7 +160213,6 @@ self: {
        description = "Distributed, stateful, homogeneous microservice framework";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "legion-discovery" = callPackage
@@ -161910,7 +160239,6 @@ self: {
        description = "A discovery service based on Legion";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "legion-discovery-client" = callPackage
@@ -161931,7 +160259,6 @@ self: {
        description = "Client library for communicating with legion-discovery";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "legion-extra" = callPackage
@@ -161954,7 +160281,6 @@ self: {
        description = "Extra non-essential utilities for building legion applications";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "leksah" = callPackage
@@ -162031,7 +160357,6 @@ self: {
        description = "Metadata collection for leksah";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lendingclub" = callPackage
@@ -162067,8 +160392,8 @@ self: {
        pname = "lens";
        version = "4.19.2";
        sha256 = "0fy2vr5r11cc6ana8m2swqgs3zals4kims55vd6119bi76p5iy2j";
-       revision = "5";
-       editedCabalFile = "1r9rhblsw1g2y2lyf8vhps05hvx6jxs5r6y1rf868hxz0z242i7q";
+       revision = "6";
+       editedCabalFile = "1k08my9rh1il3ibiyhljxkgndfgk143pn5a6nyzjnckw3la09myl";
        setupHaskellDepends = [ base Cabal cabal-doctest filepath ];
        libraryHaskellDepends = [
          array base base-orphans bifunctors bytestring call-stack comonad
@@ -162109,6 +160434,8 @@ self: {
        pname = "lens";
        version = "5.0.1";
        sha256 = "0gzwx4b758phm51hz5i4bbkbvjw1ka7qj04zd9l9sh9n6s9ksm7c";
+       revision = "1";
+       editedCabalFile = "0lk83zwnl91yyhzkq6zx18plkk85pdvdf8x0y5rivqkgmr1vwzy9";
        libraryHaskellDepends = [
          array assoc base base-orphans bifunctors bytestring call-stack
          comonad containers contravariant distributive exceptions filepath
@@ -162541,6 +160868,7 @@ self: {
        description = "Tutorial for the lens library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
        broken = true;
      }) {};
 
@@ -162572,7 +160900,6 @@ self: {
        description = "Collection of missing lens utilities";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lens-xml" = callPackage
@@ -162638,8 +160965,7 @@ self: {
        ];
        description = "frugal issue tracker";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ rvl ];
      }) {};
 
   "lenz" = callPackage
@@ -162793,7 +161119,6 @@ self: {
        description = "An implementation of the Levenberg-Marquardt algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "levmar-chart" = callPackage
@@ -162808,7 +161133,6 @@ self: {
        description = "Plots the results of the Levenberg-Marquardt algorithm in a chart";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lex-applicative" = callPackage
@@ -162829,7 +161153,6 @@ self: {
        description = "See README for more info";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lexer-applicative" = callPackage
@@ -162888,7 +161211,6 @@ self: {
        description = "Lens GUI Toolkit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lha" = callPackage
@@ -162901,7 +161223,6 @@ self: {
        description = "Data structures for the Les Houches Accord";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lhae" = callPackage
@@ -162922,7 +161243,6 @@ self: {
        description = "Simple spreadsheet program";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lhc" = callPackage
@@ -162950,7 +161270,6 @@ self: {
        description = "Parser and writer for Les-Houches event files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lhs2TeX-hl" = callPackage
@@ -163085,8 +161404,6 @@ self: {
        ];
        description = "Haskell interface to libarchive";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libarchive;};
 
   "libarchive-conduit" = callPackage
@@ -163124,7 +161441,6 @@ self: {
        description = "Haskell bindings to libconfig";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libconfig;};
 
   "libcspm" = callPackage
@@ -163146,7 +161462,6 @@ self: {
        description = "A library providing a parser, type checker and evaluator for CSPM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "libexpect" = callPackage
@@ -163390,7 +161705,6 @@ self: {
        description = "Lastfm API interface";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liblawless" = callPackage
@@ -163427,7 +161741,6 @@ self: {
        description = "Prelude based on protolude for GHC 8 and beyond";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liblinear-enumerator" = callPackage
@@ -163442,7 +161755,6 @@ self: {
        description = "liblinear iteratee";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "libltdl" = callPackage
@@ -163470,6 +161782,9 @@ self: {
        librarySystemDepends = [ modbus ];
        description = "Haskell bindings to the C modbus library";
        license = lib.licenses.bsd2;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {modbus = null;};
 
   "libmolude" = callPackage
@@ -163503,7 +161818,6 @@ self: {
        description = "Prelude based on protolude for GHC 8 and beyond";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "libmpd" = callPackage
@@ -163699,7 +162013,6 @@ self: {
        description = "Raft consensus algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "librandomorg" = callPackage
@@ -163734,7 +162047,6 @@ self: {
        description = "Bindings to the Librato API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "libravatar" = callPackage
@@ -163821,8 +162133,8 @@ self: {
      }:
      mkDerivation {
        pname = "libssh2";
-       version = "0.2.0.7";
-       sha256 = "05h0awwhqlswjjybw6y1p8byyvfggnx63n0cbqvknrkq338qfnyw";
+       version = "0.2.0.8";
+       sha256 = "01dc3przjwhh2aws74ypm19wqrp98mjjpsarhp69r1asq9dv0h0k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring network syb time unix ];
@@ -163851,7 +162163,6 @@ self: {
        description = "Conduit wrappers for libssh2 FFI bindings (see libssh2 package)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "libstackexchange" = callPackage
@@ -163910,6 +162221,9 @@ self: {
        libraryPkgconfigDepends = [ systemd ];
        description = "Haskell bindings to libsystemd-journal";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) systemd;};
 
   "libtagc" = callPackage
@@ -163934,12 +162248,17 @@ self: {
        pname = "libtelnet";
        version = "0.1.0.1";
        sha256 = "13g7wpibjncj9h6yva8gj9fqs8j806r1vnina78wgv8f980dqxks";
+       revision = "1";
+       editedCabalFile = "13lg79nlwmhd5qqyr31bk7wpfl0mvr37q4ha3q83gxya03f34v5h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring ];
        libraryPkgconfigDepends = [ libtelnet ];
        description = "Bindings to libtelnet";
        license = lib.licenses.gpl3Plus;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) libtelnet;};
 
   "libversion" = callPackage
@@ -164020,7 +162339,6 @@ self: {
        description = "Enumerator-based API for libXML's SAX interface";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "libxml-sax" = callPackage
@@ -164077,18 +162395,24 @@ self: {
        executableSystemDepends = [ nvpair zfs ];
        description = "Bindings to libzfs, for dealing with the Z File System and Zpools";
        license = lib.licenses.mit;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {nvpair = null; inherit (pkgs) zfs;};
 
   "licensor" = callPackage
-    ({ mkDerivation, base, Cabal, containers, directory, process }:
+    ({ mkDerivation, base, bytestring, Cabal, containers, directory
+     , http-client, http-client-tls, process, tar, temporary, zlib
+     }:
      mkDerivation {
        pname = "licensor";
-       version = "0.4.3";
-       sha256 = "19ydisxc5yzm0ccj76p7sg39cpjg5c57wd3gaybc5k7bqrlv14c6";
+       version = "0.5.0";
+       sha256 = "0i49l4d5dvvj4s6fbdhg38dmdclxr4ld69lzm1s5xx9m7aqy3al9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base Cabal containers directory process
+         base bytestring Cabal containers directory http-client
+         http-client-tls process tar temporary zlib
        ];
        executableHaskellDepends = [ base Cabal containers directory ];
        description = "A license compatibility helper";
@@ -164171,7 +162495,6 @@ self: {
        description = "Flexible manual resource management";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lift-generics" = callPackage
@@ -164211,12 +162534,11 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "lift-type";
-       version = "0.1.0.0";
-       sha256 = "0832xn7bfv1kwg02mmh6my11inljb066mci01b7p0xkcip1kmrhy";
-       revision = "1";
-       editedCabalFile = "1m89kzw7zrys8jjg7sbdpfq3bsqdvqr8bcszsnwvx0nmj1c6hciw";
+       version = "0.1.0.1";
+       sha256 = "1195iyf0s8zmibjmvd10bszyccp1a2g4wdysn7yk10d3j0q9xdxf";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base template-haskell ];
+       description = "Lift a type from a Typeable constraint to a Template Haskell type";
        license = lib.licenses.bsd3;
      }) {};
 
@@ -164284,7 +162606,6 @@ self: {
        description = "lifted IO operations from the base library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lifted-protolude" = callPackage
@@ -164415,7 +162736,6 @@ self: {
        description = "Haskell client for lightning-viz REST API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lightstep-haskell" = callPackage
@@ -164448,7 +162768,6 @@ self: {
        description = "LightStep OpenTracing client library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lighttpd-conf" = callPackage
@@ -164466,7 +162785,6 @@ self: {
        description = "Lighttpd configuration file tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lighttpd-conf-qq" = callPackage
@@ -164484,7 +162802,6 @@ self: {
        description = "A QuasiQuoter for lighttpd configuration files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lilypond" = callPackage
@@ -164661,8 +162978,6 @@ self: {
        ];
        description = "Haskell SDK for LINE Messaging API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "line-break" = callPackage
@@ -164833,7 +163148,6 @@ self: {
        description = "Compute resistance of linear electrical circuits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linear-code" = callPackage
@@ -164957,27 +163271,35 @@ self: {
        libraryHaskellDepends = [ base sbv ];
        description = "Use SMT solvers to solve linear systems over integers and rationals";
        license = lib.licenses.bsd3;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
      }) {};
 
   "linearmap-category" = callPackage
     ({ mkDerivation, base, call-stack, constrained-categories
-     , containers, free-vector-spaces, ieee754, lens, linear
-     , manifolds-core, QuickCheck, semigroups, tagged, transformers
-     , vector, vector-space
+     , containers, data-default-class, free-vector-spaces, hashable
+     , ieee754, lens, linear, manifolds-core, MemoTrie, QuickCheck
+     , semigroups, tagged, tasty, tasty-quickcheck, template-haskell
+     , transformers, vector, vector-space
      }:
      mkDerivation {
        pname = "linearmap-category";
-       version = "0.4.0.1";
-       sha256 = "1zc7zns49d832wm22dsbv5xvh5x6s4zg6ky1vr941rs1z9jskmyj";
+       version = "0.4.1.0";
+       sha256 = "01cpl44wg5kyx9lxv23hcsxd8dw90psqj9sgaklhxklbdvn77bvr";
        libraryHaskellDepends = [
          base call-stack constrained-categories containers
-         free-vector-spaces ieee754 lens linear manifolds-core QuickCheck
-         semigroups tagged transformers vector vector-space
+         data-default-class free-vector-spaces hashable ieee754 lens linear
+         manifolds-core MemoTrie QuickCheck semigroups tagged
+         template-haskell transformers vector vector-space
+       ];
+       testHaskellDepends = [
+         base constrained-categories linear manifolds-core QuickCheck tasty
+         tasty-quickcheck vector-space
        ];
        description = "Native, complete, matrix-free linear algebra";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linearscan" = callPackage
@@ -165014,7 +163336,6 @@ self: {
        description = "Makes it easy to use the linearscan register allocator with Hoopl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linebreak" = callPackage
@@ -165125,7 +163446,6 @@ self: {
        description = "linkchk is a network interface link ping monitor";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linkcore" = callPackage
@@ -165143,7 +163463,6 @@ self: {
        description = "Combines multiple GHC Core modules into a single module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linked-list-with-iterator" = callPackage
@@ -165232,8 +163551,6 @@ self: {
        ];
        description = "Lightweight library for building HTTP API";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linnet-aeson" = callPackage
@@ -165251,8 +163568,6 @@ self: {
        ];
        description = "Aeson JSON support for Linnet";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linnet-conduit" = callPackage
@@ -165273,8 +163588,6 @@ self: {
        ];
        description = "Conduit-backed support for streaming in Linnet";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linode" = callPackage
@@ -165371,6 +163684,9 @@ self: {
        libraryHaskellDepends = [ base bytestring time unix ];
        description = "Bindings to Linux evdev input device interface";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "linux-file-extents" = callPackage
@@ -165384,6 +163700,9 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "Retrieve file fragmentation information under Linux";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "linux-framebuffer" = callPackage
@@ -165407,6 +163726,9 @@ self: {
        libraryHaskellDepends = [ base bytestring hashable unix ];
        description = "Thinner binding to the Linux Kernel's inotify interface";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "linux-kmod" = callPackage
@@ -165432,6 +163754,9 @@ self: {
        libraryHaskellDepends = [ base bytestring ];
        description = "Mount and unmount filesystems";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "linux-namespaces" = callPackage
@@ -165443,6 +163768,9 @@ self: {
        libraryHaskellDepends = [ base bytestring unix ];
        description = "Work with linux namespaces: create new or enter existing ones";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "linux-perf" = callPackage
@@ -165485,7 +163813,6 @@ self: {
        description = "Wrapping of Linux' ptrace(2)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "linux-xattr" = callPackage
@@ -165547,7 +163874,6 @@ self: {
        description = "Labeled IO library";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lio-fs" = callPackage
@@ -165610,7 +163936,6 @@ self: {
        description = "RISC-V Core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lipsum-gen" = callPackage
@@ -165664,7 +163989,6 @@ self: {
        description = "Drop-in base replacement for LiquidHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquid-bytestring" = callPackage
@@ -165681,7 +164005,6 @@ self: {
        description = "LiquidHaskell specs for the bytestring package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquid-containers" = callPackage
@@ -165698,7 +164021,6 @@ self: {
        description = "LiquidHaskell specs for the containers package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquid-fixpoint" = callPackage
@@ -165747,7 +164069,6 @@ self: {
        description = "Drop-in ghc-prim replacement for LiquidHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquid-parallel" = callPackage
@@ -165763,7 +164084,6 @@ self: {
        description = "LiquidHaskell specs for the parallel package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquid-platform" = callPackage
@@ -165784,7 +164104,6 @@ self: {
        description = "A battery-included platform for LiquidHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquid-prelude" = callPackage
@@ -165802,7 +164121,6 @@ self: {
        description = "General utility modules for LiquidHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquid-vector" = callPackage
@@ -165817,7 +164135,6 @@ self: {
        description = "LiquidHaskell specs for the vector package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liquidhaskell" = callPackage
@@ -166083,7 +164400,6 @@ self: {
        description = "An \"attoparsec\" adapter for \"list-t\"";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "list-t-html-parser" = callPackage
@@ -166108,7 +164424,6 @@ self: {
        description = "Streaming HTML parser";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "list-t-http-client" = callPackage
@@ -166175,6 +164490,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "List monad transformer";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "list-tries" = callPackage
@@ -166231,7 +164547,6 @@ self: {
        description = "Witnesses for working with type-level lists";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "list-zip-def" = callPackage
@@ -166287,7 +164602,6 @@ self: {
        description = "A client library to the ListenBrainz project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "listlike-instances" = callPackage
@@ -166407,6 +164721,42 @@ self: {
        broken = true;
      }) {};
 
+  "literatex" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, bytestring, conduit
+     , filepath, optparse-applicative, tasty, tasty-hunit, text, ttc
+     , unliftio
+     }:
+     mkDerivation {
+       pname = "literatex";
+       version = "0.1.0.0";
+       sha256 = "0nfmvblm3a370a59hyd28wv8xnq1wlxcm5xz4n6b3n5cprj4h99z";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring conduit text ttc unliftio
+       ];
+       executableHaskellDepends = [
+         ansi-wl-pprint base optparse-applicative ttc
+       ];
+       testHaskellDepends = [
+         base bytestring filepath tasty tasty-hunit text ttc unliftio
+       ];
+       description = "transform literate source code to Markdown";
+       license = lib.licenses.mit;
+     }) {};
+
+  "little-earley" = callPackage
+    ({ mkDerivation, base, containers, mtl, tasty, tasty-hunit }:
+     mkDerivation {
+       pname = "little-earley";
+       version = "0.2.0.0";
+       sha256 = "0zqlnaj1w6m2h7g55xg9cjl978ij66lw69x4v5b9vi7x7maa44ms";
+       libraryHaskellDepends = [ base containers mtl ];
+       testHaskellDepends = [ base containers mtl tasty tasty-hunit ];
+       description = "Simple implementation of Earley parsing";
+       license = lib.licenses.mit;
+     }) {};
+
   "little-logger" = callPackage
     ({ mkDerivation, base, co-log, co-log-core, microlens, mtl, tasty
      , tasty-hunit, text, unliftio-core
@@ -166424,8 +164774,6 @@ self: {
        ];
        description = "Basic logging based on co-log";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "little-rio" = callPackage
@@ -166470,7 +164818,6 @@ self: {
        description = "Live coding of MIDI music";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "liveplot" = callPackage
@@ -166558,7 +164905,6 @@ self: {
        description = "Bindings to the LLVM compiler toolkit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-analysis" = callPackage
@@ -166587,7 +164933,6 @@ self: {
        description = "A Haskell library for analyzing LLVM bitcode";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-base" = callPackage
@@ -166622,7 +164967,6 @@ self: {
        description = "The base types for a mostly pure Haskell LLVM analysis library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-base-util" = callPackage
@@ -166635,7 +164979,6 @@ self: {
        description = "Utilities for bindings to the LLVM compiler toolkit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-data-interop" = callPackage
@@ -166657,7 +165000,6 @@ self: {
        description = "A low-level data interoperability binding for LLVM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-dsl" = callPackage
@@ -166676,7 +165018,6 @@ self: {
        description = "Support for writing an EDSL with LLVM-JIT as target";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-extension" = callPackage
@@ -166696,7 +165037,6 @@ self: {
        description = "Processor specific intrinsics for the llvm interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-extra" = callPackage
@@ -166723,7 +165063,6 @@ self: {
        description = "Utility functions for the llvm interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-ffi" = callPackage
@@ -166786,7 +165125,6 @@ self: {
        description = "General purpose LLVM bindings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {llvm-config = null;};
 
   "llvm-general-pure" = callPackage
@@ -166833,7 +165171,6 @@ self: {
        description = "QuasiQuoting llvm code for llvm-general";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-hs" = callPackage
@@ -166982,7 +165319,6 @@ self: {
        description = "LLVM bitcode parsing library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-tf" = callPackage
@@ -167005,7 +165341,6 @@ self: {
        description = "Bindings to the LLVM compiler toolkit using type families";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-tools" = callPackage
@@ -167034,7 +165369,6 @@ self: {
        description = "Useful tools built on llvm-analysis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lmdb" = callPackage
@@ -167127,7 +165461,6 @@ self: {
        description = "LMonad for Yesod integrates LMonad's IFC with Yesod web applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "load-balancing" = callPackage
@@ -167239,7 +165572,6 @@ self: {
        description = "Generalised local search within Haskell, for applications in combinatorial optimisation";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "localization" = callPackage
@@ -167270,7 +165602,6 @@ self: {
        description = "GNU Gettext-based messages localization library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "located" = callPackage
@@ -167397,7 +165728,6 @@ self: {
        description = "Very simple poll lock";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lockfree-queue" = callPackage
@@ -167456,7 +165786,6 @@ self: {
        description = "Structured logging solution with multiple backends";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "log-base" = callPackage
@@ -167467,8 +165796,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-base";
-       version = "0.9.1.0";
-       sha256 = "0p0zb805a8zlxdnii6r0gmf0zic4g4zxkvcq84j6g8973qx1fch9";
+       version = "0.9.1.1";
+       sha256 = "0b69q4vhayqg0n8kzqb4lma289av39zm5qbinnam4hh9inqhayfk";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring deepseq exceptions mmorph
          monad-control monad-time mtl semigroups stm text time
@@ -167560,10 +165889,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-postgres";
-       version = "0.7.1.4";
-       sha256 = "1m96d5486xadypm5iby8rkb979k82md394j5iaik6xk5aavcn6xx";
-       revision = "1";
-       editedCabalFile = "0yyaxibkq8c9bwhaday8ijmfbm8k3i14wd9zsgfby99b6rxra351";
+       version = "0.7.1.5";
+       sha256 = "0g89403ijgp2xznd497xhvifh2jlgph4raz4l5fh5ajxvcf33hvn";
        libraryHaskellDepends = [
          aeson aeson-pretty base base64-bytestring bytestring deepseq
          hpqtypes http-client lifted-base log-base mtl semigroups split text
@@ -167572,7 +165899,6 @@ self: {
        description = "Structured logging solution (PostgreSQL back end)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "log-utils" = callPackage
@@ -167596,7 +165922,6 @@ self: {
        description = "Utils for working with logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "log-warper" = callPackage
@@ -167811,7 +166136,6 @@ self: {
        description = "Supplemental packages for `logging-effect`";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "logging-effect-extra-file" = callPackage
@@ -167883,6 +166207,9 @@ self: {
        ];
        description = "Journald back-end for logging-facade";
        license = lib.licenses.mit;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "logging-facade-syslog" = callPackage
@@ -167943,7 +166270,6 @@ self: {
        description = "Framework for propositional and first order logic, theorem proving";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "logicst" = callPackage
@@ -168063,7 +166389,6 @@ self: {
        description = "Useful utilities for the Lojban language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lojbanParser" = callPackage
@@ -168110,7 +166435,6 @@ self: {
        description = "Prolog with lojban";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lol" = callPackage
@@ -168162,7 +166486,6 @@ self: {
        description = "Lattice-based cryptographic applications using <https://hackage.haskell.org/package/lol lol>.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lol-benches" = callPackage
@@ -168180,7 +166503,6 @@ self: {
        description = "A library for benchmarking <https://hackage.haskell.org/package/lol lol>.";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lol-calculus" = callPackage
@@ -168224,7 +166546,6 @@ self: {
        description = "A fast C++ backend for <https://hackage.haskell.org/package/lol lol>.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lol-repa" = callPackage
@@ -168245,7 +166566,6 @@ self: {
        description = "A repa backend for <https://hackage.haskell.org/package/lol lol>.";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lol-tests" = callPackage
@@ -168266,7 +166586,6 @@ self: {
        description = "A library for testing <https://hackage.haskell.org/package/lol Λ ∘ λ>.";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lol-typing" = callPackage
@@ -168292,7 +166611,6 @@ self: {
        description = "Type inferencer for LOL (λω language)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "loli" = callPackage
@@ -168311,7 +166629,6 @@ self: {
        description = "A minimum web dev DSL in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "long-double" = callPackage
@@ -168368,7 +166685,6 @@ self: {
        description = "Fast Brute-force search using parallelism";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lookup-tables" = callPackage
@@ -168413,7 +166729,6 @@ self: {
        description = "control-monad-loop port for effin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "loop-while" = callPackage
@@ -168585,7 +166900,6 @@ self: {
        description = "EDSL for the Michelson Language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "loris" = callPackage
@@ -168639,7 +166953,6 @@ self: {
        description = "An implementation of an adictive two-player card game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "louis" = callPackage
@@ -168674,7 +166987,6 @@ self: {
        description = "Amazon Simple Workflow Service Wrapper for Work Pools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lowgl" = callPackage
@@ -168800,7 +167112,6 @@ self: {
        description = "List USB devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lscabal" = callPackage
@@ -168852,36 +167163,6 @@ self: {
      }:
      mkDerivation {
        pname = "lsp";
-       version = "1.1.1.0";
-       sha256 = "04ndz4v1mwga13qndmnaaj145y5zqw7zv64px7ak26qvd1m26h9r";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base bytestring containers data-default
-         dependent-map directory filepath hashable hslogger lens lsp-types
-         mtl network-uri random scientific sorted-list stm text time
-         transformers unliftio-core unordered-containers uuid
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hashable hspec lens network-uri QuickCheck quickcheck-instances
-         rope-utf16-splay sorted-list stm text unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell library for the Microsoft Language Server Protocol";
-       license = lib.licenses.mit;
-     }) {};
-
-  "lsp_1_2_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, data-default, dependent-map, directory, filepath
-     , hashable, hslogger, hspec, hspec-discover, lens, lsp-types, mtl
-     , network-uri, QuickCheck, quickcheck-instances, random
-     , rope-utf16-splay, scientific, sorted-list, stm, text, time
-     , transformers, unliftio-core, unordered-containers, uuid
-     }:
-     mkDerivation {
-       pname = "lsp";
        version = "1.2.0.0";
        sha256 = "0ca8s84xlh9kmi1lx47d6z3c8c827q30spmbxi1nl37dn35ib4b6";
        isLibrary = true;
@@ -168900,67 +167181,11 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lsp-test" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-parse, containers, data-default
-     , Diff, directory, filepath, Glob, haskell-lsp, hspec, lens, mtl
-     , parser-combinators, process, text, transformers, unix
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "lsp-test";
-       version = "0.11.0.5";
-       sha256 = "0r038x65lc0ij6hs8klgj8v8f0fqqrn12dyxc0k8zf9pan9bwnph";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson aeson-pretty ansi-terminal async base bytestring conduit
-         conduit-parse containers data-default Diff directory filepath Glob
-         haskell-lsp lens mtl parser-combinators process text transformers
-         unix unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base data-default directory filepath haskell-lsp hspec lens
-         text unordered-containers
-       ];
-       description = "Functional test framework for LSP servers";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "lsp-test_0_13_0_0" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
-     , bytestring, conduit, conduit-parse, containers, data-default
-     , Diff, directory, filepath, Glob, hspec, lens, lsp-types, mtl
-     , parser-combinators, process, some, text, time, transformers, unix
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "lsp-test";
-       version = "0.13.0.0";
-       sha256 = "1xyxmzcd6r56jj1k11lz1g6yld5q3k6cgb0bsf45px120dsf1dpy";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson aeson-pretty ansi-terminal async base bytestring conduit
-         conduit-parse containers data-default Diff directory filepath Glob
-         lens lsp-types mtl parser-combinators process some text time
-         transformers unix unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base data-default directory filepath hspec lens lsp-types
-         text unordered-containers
-       ];
-       description = "Functional test framework for LSP servers";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
-  "lsp-test_0_14_0_0" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
-     , bytestring, conduit, conduit-parse, containers, data-default
      , Diff, directory, extra, filepath, Glob, hspec, lens, lsp
      , lsp-types, mtl, parser-combinators, process, some, text, time
      , transformers, unix, unliftio, unordered-containers
@@ -168983,7 +167208,6 @@ self: {
        benchmarkHaskellDepends = [ base extra lsp process ];
        description = "Functional test framework for LSP servers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lsp-types" = callPackage
@@ -168995,29 +167219,6 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-types";
-       version = "1.1.0.0";
-       sha256 = "19lkdqwh9a5rsx5nby37v54zhwyja306z0dyslsmdmwqw92qxx54";
-       revision = "1";
-       editedCabalFile = "0iifws4r1h9v1mbsrmbvssvm0gmvzm9yh9h85izly0s51869bbq4";
-       libraryHaskellDepends = [
-         aeson base binary bytestring containers data-default deepseq
-         dependent-sum dependent-sum-template directory filepath hashable
-         hslogger lens network-uri rope-utf16-splay scientific some
-         template-haskell temporary text unordered-containers
-       ];
-       description = "Haskell library for the Microsoft Language Server Protocol, data types";
-       license = lib.licenses.mit;
-     }) {};
-
-  "lsp-types_1_2_0_0" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, containers
-     , data-default, deepseq, dependent-sum, dependent-sum-template
-     , directory, filepath, hashable, hslogger, lens, network-uri
-     , rope-utf16-splay, scientific, some, template-haskell, temporary
-     , text, unordered-containers
-     }:
-     mkDerivation {
-       pname = "lsp-types";
        version = "1.2.0.0";
        sha256 = "1axl62yafkxh414dxr5i7pwqw0s3kkqphs7b259qk33vin3qayk3";
        libraryHaskellDepends = [
@@ -169028,7 +167229,6 @@ self: {
        ];
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lss" = callPackage
@@ -169067,7 +167267,6 @@ self: {
        description = "Paint an L-System Grammar";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ltext" = callPackage
@@ -169099,6 +167298,8 @@ self: {
        ];
        description = "Parameterized file evaluator";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lti13" = callPackage
@@ -169120,7 +167321,6 @@ self: {
        description = "Core functionality for LTI 1.3.";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ltiv1p1" = callPackage
@@ -169140,6 +167340,8 @@ self: {
        ];
        description = "Partial implementation of a service provider for LTI 1.1.";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ltk" = callPackage
@@ -169238,7 +167440,6 @@ self: {
        description = "Library functions for reading and writing Lua chunks";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "luautils" = callPackage
@@ -169319,7 +167520,6 @@ self: {
        description = "Helper functions for using lucid with colonnade";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lucid-extras" = callPackage
@@ -169387,7 +167587,6 @@ self: {
        description = "Server side feed aggregator/reader";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "luhn" = callPackage
@@ -169400,7 +167599,6 @@ self: {
        description = "An implementation of Luhn's check digit algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lui" = callPackage
@@ -169417,7 +167615,6 @@ self: {
        description = "Purely FunctionaL User Interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "luis-client" = callPackage
@@ -169526,7 +167723,6 @@ self: {
        description = "Luminance samples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lushtags" = callPackage
@@ -169558,6 +167754,17 @@ self: {
        broken = true;
      }) {};
 
+  "lvar" = callPackage
+    ({ mkDerivation, base, containers, relude, stm }:
+     mkDerivation {
+       pname = "lvar";
+       version = "0.1.0.0";
+       sha256 = "1hllvr4nsjv3c3x5aybp05wr9pdvwlw101vq7c37ydnb91hbfdv4";
+       libraryHaskellDepends = [ base containers relude stm ];
+       description = "TMVar that can be listened to";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "lvish" = callPackage
     ({ mkDerivation, async, atomic-primops, base, bits-atomic
      , containers, deepseq, ghc-prim, HUnit, lattices, missing-foreign
@@ -169584,7 +167791,6 @@ self: {
        description = "Parallel scheduler, LVar data structures, and infrastructure to build more";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lvmlib" = callPackage
@@ -169737,8 +167943,6 @@ self: {
        ];
        description = "Bindings to LZ4";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lz4-conduit" = callPackage
@@ -169763,7 +167967,6 @@ self: {
        description = "LZ4 compression for conduits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "lz4-frame-conduit" = callPackage
@@ -169918,7 +168121,6 @@ self: {
        description = "Enumerator interface for lzma/xz compression";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) xz;};
 
   "lzma-static" = callPackage
@@ -169991,7 +168193,6 @@ self: {
        description = "Library for talking to the mDNSResponder daemon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "maam" = callPackage
@@ -170071,7 +168272,6 @@ self: {
        description = "Macbeth - A beautiful and minimalistic FICS client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "maccatcher" = callPackage
@@ -170161,7 +168361,6 @@ self: {
        description = "Machine transducers for Amazonka calls";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "machines-attoparsec" = callPackage
@@ -170182,8 +168381,6 @@ self: {
        ];
        description = "Parse machines streams with attoparsec parsers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "machines-binary" = callPackage
@@ -170195,8 +168392,6 @@ self: {
        libraryHaskellDepends = [ base binary bytestring machines ];
        description = "Binary utilities for the machines library";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "machines-bytestring" = callPackage
@@ -170255,8 +168450,6 @@ self: {
        ];
        description = "IO utilities for the machines library";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "machines-process" = callPackage
@@ -170271,8 +168464,6 @@ self: {
        ];
        description = "Process (system) utilities for the machines library";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "machines-zlib" = callPackage
@@ -170389,7 +168580,6 @@ self: {
        description = "Make a macosx app standalone deployable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "macrm" = callPackage
@@ -170543,7 +168733,6 @@ self: {
        description = "Interact with Magic Wormhole";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "magicbane" = callPackage
@@ -170575,7 +168764,6 @@ self: {
        description = "A web framework that integrates Servant, RIO, EKG, fast-logger, wai-cli…";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "magico" = callPackage
@@ -170594,7 +168782,6 @@ self: {
        description = "Compute solutions for Magico puzzle";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "magma" = callPackage
@@ -170642,7 +168829,6 @@ self: {
        description = "ImageBoards to XMPP gate";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "maid" = callPackage
@@ -170665,7 +168851,6 @@ self: {
        description = "A simple static web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mail-pool" = callPackage
@@ -170689,7 +168874,6 @@ self: {
        description = "Preconfigured email connection pool on top of smtp";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mail-reports" = callPackage
@@ -170705,8 +168889,6 @@ self: {
        ];
        description = "A parser library for DMARC and SMTP TLS reports";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mailbox-count" = callPackage
@@ -170791,7 +168973,6 @@ self: {
        description = "API binding for Mailgun";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "main-tester" = callPackage
@@ -170814,8 +168995,8 @@ self: {
     ({ mkDerivation, base, containers, srcloc, text, transformers }:
      mkDerivation {
        pname = "mainland-pretty";
-       version = "0.7.0.1";
-       sha256 = "0cifvdpqcb1cvjazgqwaxvl2ga7kap5a6f89yw1xn8y5yw7nz1c8";
+       version = "0.7.1";
+       sha256 = "19z2769rik6kwvsil2if2bfq2v59jmwv74jy3fy4q3q3zy4239p1";
        libraryHaskellDepends = [
          base containers srcloc text transformers
        ];
@@ -170842,7 +169023,6 @@ self: {
        description = "Majordomo protocol for ZeroMQ";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "majority" = callPackage
@@ -170855,7 +169035,6 @@ self: {
        description = "Boyer-Moore Majority Vote Algorithm";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "make-hard-links" = callPackage
@@ -170997,6 +169176,7 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "A monad for managed values";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "manatee" = callPackage
@@ -171018,7 +169198,6 @@ self: {
        description = "The Haskell/Gtk+ Integrated Live Environment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-all" = callPackage
@@ -171066,7 +169245,6 @@ self: {
        description = "Multithread interactive input/search framework for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-browser" = callPackage
@@ -171111,7 +169289,6 @@ self: {
        description = "The core of Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-curl" = callPackage
@@ -171135,7 +169312,6 @@ self: {
        description = "Download Manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-editor" = callPackage
@@ -171157,7 +169333,6 @@ self: {
        description = "Editor extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-filemanager" = callPackage
@@ -171179,7 +169354,6 @@ self: {
        description = "File manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-imageviewer" = callPackage
@@ -171201,7 +169375,6 @@ self: {
        description = "Image viewer extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-ircclient" = callPackage
@@ -171227,7 +169400,6 @@ self: {
        description = "IRC client extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-mplayer" = callPackage
@@ -171250,7 +169422,6 @@ self: {
        description = "Mplayer client extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-pdfviewer" = callPackage
@@ -171272,7 +169443,6 @@ self: {
        description = "PDF viewer extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-processmanager" = callPackage
@@ -171293,7 +169463,6 @@ self: {
        description = "Process manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-reader" = callPackage
@@ -171335,7 +169504,6 @@ self: {
        description = "Template code to create Manatee application";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-terminal" = callPackage
@@ -171356,7 +169524,6 @@ self: {
        description = "Terminal Emulator extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manatee-welcome" = callPackage
@@ -171377,7 +169544,6 @@ self: {
        description = "Welcome module to help user play Manatee quickly";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mancala" = callPackage
@@ -171515,7 +169681,6 @@ self: {
        description = "Sampling random points on general manifolds";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manifolds" = callPackage
@@ -171546,7 +169711,6 @@ self: {
        description = "Coordinate-free hypersurfaces";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "manifolds-core" = callPackage
@@ -171600,8 +169764,8 @@ self: {
      }:
      mkDerivation {
        pname = "map-reduce-folds";
-       version = "0.1.0.5";
-       sha256 = "0a0xavn4dlcpkjw75lc8k9f8w8620m60s8q9r4c157010mb4w829";
+       version = "0.1.0.7";
+       sha256 = "0khwcxw5cxx3y9rryak7qb65q055lg6b7gsbj20rvskq300asbk0";
        libraryHaskellDepends = [
          base containers discrimination foldl hashable hashtables parallel
          profunctors split streaming streamly text unordered-containers
@@ -171741,7 +169905,6 @@ self: {
        description = "A study of marionetta movements";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "markdown" = callPackage
@@ -171801,7 +169964,6 @@ self: {
        description = "markdown parser with papillon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "markdown-unlit" = callPackage
@@ -171842,7 +170004,6 @@ self: {
        description = "markdown to svg converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "marked-pretty" = callPackage
@@ -171913,7 +170074,6 @@ self: {
        description = "Hidden Markov processes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "markov-realization" = callPackage
@@ -171947,7 +170107,6 @@ self: {
        description = "Abstraction for HTML-embedded content";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "markup-preview" = callPackage
@@ -171997,7 +170156,6 @@ self: {
        description = "Upload packages to Marmalade";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "marquise" = callPackage
@@ -172033,7 +170191,6 @@ self: {
        description = "Client library for Vaultaire";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mars" = callPackage
@@ -172101,7 +170258,6 @@ self: {
        description = "A framework for modular, portable chat bots";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "marvin-interpolate" = callPackage
@@ -172166,7 +170322,6 @@ self: {
        description = "@minamiyama1994_bot on haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mason" = callPackage
@@ -172409,7 +170564,6 @@ self: {
        description = "Text matchers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) pcre;};
 
   "math-extras" = callPackage
@@ -172533,7 +170687,6 @@ self: {
        description = "A GLPK backend to the math-programming library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) glpk;};
 
   "math-programming-tests" = callPackage
@@ -172550,7 +170703,6 @@ self: {
        description = "Utility functions for testing implementations of the math-programming library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mathblog" = callPackage
@@ -172578,7 +170730,6 @@ self: {
        description = "A program for creating and managing a static weblog with LaTeX math and diagrams";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mathexpr" = callPackage
@@ -172670,7 +170821,6 @@ self: {
        description = "Write Mathematica packages in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "matlab" = callPackage
@@ -172906,7 +171056,6 @@ self: {
        description = "ncurses XMPP client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "matterhorn" = callPackage
@@ -173032,7 +171181,6 @@ self: {
        description = "Compute Maximum Entropy Distributions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "maxent-learner-hw" = callPackage
@@ -173080,7 +171228,6 @@ self: {
        description = "GUI for maxent-learner-hw";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "maximal-cliques" = callPackage
@@ -173114,7 +171261,6 @@ self: {
        description = "Maximal sharing of terms in the lambda calculus with letrec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "maybe-justify" = callPackage
@@ -173349,7 +171495,6 @@ self: {
        description = "Sample from a posterior using Markov chain Monte Carlo";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mcmc-samplers" = callPackage
@@ -173366,7 +171511,6 @@ self: {
        description = "Combinators for MCMC sampling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mcmc-synthesis" = callPackage
@@ -173526,7 +171670,6 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "means" = callPackage
@@ -173621,8 +171764,8 @@ self: {
        pname = "medea";
        version = "1.2.0";
        sha256 = "019jfz29gz3d06b5yi7fygqa79lp6c6vbzxcb5ka7d8w0zv7w60v";
-       revision = "1";
-       editedCabalFile = "1zkwy3p9q3rd4qcnmgr67xi3fv9frw35rsqpwh5l1mfvv772qap9";
+       revision = "2";
+       editedCabalFile = "18yzwhmvxafxn0zq7pv8dna28qkpr87q35q0sw9907y1iqcixxfh";
        libraryHaskellDepends = [
          aeson algebraic-graphs base bytestring containers deepseq free
          hashable megaparsec microlens-ghc mtl nonempty-containers
@@ -173695,7 +171838,6 @@ self: {
        description = "Mediabus plugin for the Frauenhofer ISO-14496-3 AAC FDK";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {fdk-aac = null;};
 
   "mediabus-rtp" = callPackage
@@ -173734,7 +171876,6 @@ self: {
        description = "Receive and Send RTP Packets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "median-stream" = callPackage
@@ -173960,7 +172101,6 @@ self: {
        description = "GPIO support for mellon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mellon-web" = callPackage
@@ -174003,7 +172143,6 @@ self: {
        description = "A REST web service for Mellon controllers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "melody" = callPackage
@@ -174080,8 +172219,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "A memcached client library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "memcache-conduit" = callPackage
@@ -174102,7 +172239,6 @@ self: {
        description = "Conduit library for memcache procotol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "memcache-haskell" = callPackage
@@ -174312,6 +172448,8 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion random ];
        description = "Generate human memorable strings from binary data";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "memory" = callPackage
@@ -174322,8 +172460,8 @@ self: {
        pname = "memory";
        version = "0.15.0";
        sha256 = "0a9mxcddnqn4359hk59d6l2zbh0vp154yb5vs1a8jw4l38n8kzz3";
-       revision = "1";
-       editedCabalFile = "136qfj1cbg9571mlwywaqml75ijx3pcgvbpbgwxrqsl71ssj8w5y";
+       revision = "2";
+       editedCabalFile = "0fd40y5byy4cq4x6m66zxadxbw96gzswplgfyvdqnjlasq28xw68";
        libraryHaskellDepends = [
          base basement bytestring deepseq ghc-prim
        ];
@@ -174332,6 +172470,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "memory_0_16_0" = callPackage
+    ({ mkDerivation, base, basement, bytestring, deepseq, foundation
+     , ghc-prim
+     }:
+     mkDerivation {
+       pname = "memory";
+       version = "0.16.0";
+       sha256 = "0zzxyr2b7gj92h3jzaq1lfqfyfkfj4l636ry35191i9bp3wa0v8l";
+       libraryHaskellDepends = [
+         base basement bytestring deepseq ghc-prim
+       ];
+       testHaskellDepends = [ base basement bytestring foundation ];
+       description = "memory and related abstraction stuff";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "memorypool" = callPackage
     ({ mkDerivation, base, containers, transformers, unsafe, vector }:
      mkDerivation {
@@ -174495,7 +172650,6 @@ self: {
        description = "Support for using mergeful from persistent-based databases";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mergeless" = callPackage
@@ -174535,7 +172689,6 @@ self: {
        description = "Support for using mergeless from persistent-based databases";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "merkle-log" = callPackage
@@ -174588,7 +172741,6 @@ self: {
        description = "A modified Merkle Patricia DB";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "merkle-tree" = callPackage
@@ -174739,7 +172891,6 @@ self: {
        description = "Support for integrated Accelerate computations within Meta-par";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "metadata" = callPackage
@@ -174790,7 +172941,6 @@ self: {
        description = "a tiny ghc api wrapper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "metar" = callPackage
@@ -174817,7 +172967,6 @@ self: {
        description = "Australian METAR";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "metar-http" = callPackage
@@ -174843,17 +172992,23 @@ self: {
        description = "HTTP for METAR";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "method" = callPackage
-    ({ mkDerivation, base, hspec, hspec-discover, rio, transformers }:
+    ({ mkDerivation, base, containers, hspec, hspec-discover, rio
+     , template-haskell, th-abstraction, transformers
+     }:
      mkDerivation {
        pname = "method";
-       version = "0.3.1.0";
-       sha256 = "0a96av07vbh3mvyczh2jiziqb098q81jx6q0c5kgn7pmlxijw1ba";
-       libraryHaskellDepends = [ base rio transformers ];
-       testHaskellDepends = [ base hspec rio transformers ];
+       version = "0.4.0.0";
+       sha256 = "0ca7xfy5yb8d68l530q6h82843i5yvp9grr9r23s7rfbisbysfpb";
+       libraryHaskellDepends = [
+         base containers rio template-haskell th-abstraction transformers
+       ];
+       testHaskellDepends = [
+         base containers hspec rio template-haskell th-abstraction
+         transformers
+       ];
        testToolDepends = [ hspec-discover ];
        description = "rebindable methods for improving testability";
        license = lib.licenses.bsd3;
@@ -175014,7 +173169,6 @@ self: {
        description = "Time Synchronized execution";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mezzo" = callPackage
@@ -175144,7 +173298,6 @@ self: {
        description = "A Micro service gateway";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "micro-recursion-schemes" = callPackage
@@ -175264,7 +173417,6 @@ self: {
        description = "A Microformats 2 parser";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "microformats2-types" = callPackage
@@ -175281,7 +173433,6 @@ self: {
        description = "Microformats 2 types (with Aeson instances)";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "microgroove" = callPackage
@@ -175422,8 +173573,8 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-th";
-       version = "0.4.3.9";
-       sha256 = "08gfqf24r95dcnw4jlnhh8ijmfwiyr9zaiiz4lbzp72hrkarlbiw";
+       version = "0.4.3.10";
+       sha256 = "1dg2xhj85fy8q39m5dd94kjlabjyxgc0336vzkg0174l6l110l1c";
        libraryHaskellDepends = [
          base containers microlens template-haskell th-abstraction
          transformers
@@ -175689,7 +173840,6 @@ self: {
        description = "A Memory-like (Concentration, Pairs, ...) game for tones";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "midisurface" = callPackage
@@ -175730,7 +173880,6 @@ self: {
        description = "Simple Web Server in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mighttpd2" = callPackage
@@ -175799,8 +173948,6 @@ self: {
        ];
        description = "Semi-automatic database schema migrations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "migrant-hdbc" = callPackage
@@ -175860,8 +174007,6 @@ self: {
        ];
        description = "Semi-automatic database schema migrations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mikmod" = callPackage
@@ -176098,7 +174243,6 @@ self: {
        description = "a DSL for generating minecraft commands and levels";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mines" = callPackage
@@ -176134,7 +174278,6 @@ self: {
        description = "Minesweeper game which is always solvable without guessing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mini-egison" = callPackage
@@ -176157,7 +174300,6 @@ self: {
        description = "Template Haskell Implementation of Egison Pattern Matching";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "miniball" = callPackage
@@ -176191,7 +174333,6 @@ self: {
        description = "Miniature FORTH-like interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "minilens" = callPackage
@@ -176263,7 +174404,6 @@ self: {
        description = "A binding library of minilight for Lua langauge";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "minimal-configuration" = callPackage
@@ -176306,7 +174446,6 @@ self: {
        description = "Shows how to run grabber on Mac OS X";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "minio-hs" = callPackage
@@ -176378,7 +174517,6 @@ self: {
        description = "fast and simple operational monad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "miniplex" = callPackage
@@ -176744,8 +174882,6 @@ self: {
        ];
        description = "A tasty Haskell front-end framework";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "miso-action-logger" = callPackage
@@ -176821,7 +174957,6 @@ self: {
        description = "A Haskell git implimentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "miss-porcelain" = callPackage
@@ -176841,7 +174976,6 @@ self: {
        description = "Useability extras built on top of miss";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "missing-foreign" = callPackage
@@ -176868,7 +175002,6 @@ self: {
        description = "Haskell interface to Python";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mit-3qvpPyAi6mH" = callPackage
@@ -176954,26 +175087,47 @@ self: {
        description = "Find optimal mixed strategies for two-player games";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mixed-types-num" = callPackage
-    ({ mkDerivation, base, hspec, hspec-smallcheck, mtl, QuickCheck
-     , smallcheck, template-haskell
+    ({ mkDerivation, base, collect-errors, hspec, hspec-smallcheck, mtl
+     , QuickCheck, smallcheck, template-haskell
      }:
      mkDerivation {
        pname = "mixed-types-num";
-       version = "0.4.1";
-       sha256 = "159zx9b5p3g1ywhnbihjbxkpxylgrkhhrswmazymqbh49f4s758y";
+       version = "0.5.7.0";
+       sha256 = "0fnf165ff6c4vbc2hlfrydb7w8csk1hjxd86lvnh4y9w6sc9g6hp";
        libraryHaskellDepends = [
-         base hspec hspec-smallcheck mtl QuickCheck smallcheck
-         template-haskell
+         base collect-errors hspec hspec-smallcheck mtl QuickCheck
+         smallcheck template-haskell
+       ];
+       testHaskellDepends = [
+         base collect-errors hspec hspec-smallcheck QuickCheck smallcheck
        ];
-       testHaskellDepends = [ base hspec hspec-smallcheck QuickCheck ];
        description = "Alternative Prelude with numeric and logic expressions typed bottom-up";
        license = lib.licenses.bsd3;
      }) {};
 
+  "mixed-types-num_0_5_8_0" = callPackage
+    ({ mkDerivation, base, collect-errors, hspec, hspec-smallcheck, mtl
+     , QuickCheck, smallcheck, template-haskell
+     }:
+     mkDerivation {
+       pname = "mixed-types-num";
+       version = "0.5.8.0";
+       sha256 = "1i40g6kf4my91i7xg54wfi6n2s8ivmx5k08ccqz3iycn6gha8pr7";
+       libraryHaskellDepends = [
+         base collect-errors hspec hspec-smallcheck mtl QuickCheck
+         smallcheck template-haskell
+       ];
+       testHaskellDepends = [
+         base collect-errors hspec hspec-smallcheck QuickCheck smallcheck
+       ];
+       description = "Alternative Prelude with numeric and logic expressions typed bottom-up";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "mixpanel-client" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring, hspec
      , hspec-discover, http-client, http-client-tls, markdown-unlit
@@ -177012,7 +175166,6 @@ self: {
        description = "Makes an OS X .app bundle from a binary.";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mkcabal" = callPackage
@@ -177032,7 +175185,6 @@ self: {
        description = "Generate cabal files for a Haskell project";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ml-w" = callPackage
@@ -177061,7 +175213,6 @@ self: {
        description = "Monadic List alternative to lazy I/O";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mltool" = callPackage
@@ -177085,6 +175236,8 @@ self: {
        ];
        description = "Machine Learning Toolbox";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mm2" = callPackage
@@ -177197,7 +175350,6 @@ self: {
        description = "Command line interface to the MMark markdown processor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mmark-ext" = callPackage
@@ -177219,7 +175371,6 @@ self: {
        description = "Commonly useful extensions for the MMark markdown processor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mmorph_1_1_3" = callPackage
@@ -177234,6 +175385,7 @@ self: {
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "mmorph" = callPackage
@@ -177249,6 +175401,7 @@ self: {
        ];
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "mmsyn2" = callPackage
@@ -177375,8 +175528,6 @@ self: {
        ];
        description = "Produces a sound recording specified by the Ukrainian text";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mmsyn7l" = callPackage
@@ -177492,7 +175643,6 @@ self: {
        description = "MonadBase type-class for mmtl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mnist-idx" = callPackage
@@ -177508,6 +175658,23 @@ self: {
        license = lib.licenses.lgpl3Only;
      }) {};
 
+  "mnist-idx-conduit" = callPackage
+    ({ mkDerivation, base, binary, bytestring, conduit, containers
+     , exceptions, hspec, resourcet, vector
+     }:
+     mkDerivation {
+       pname = "mnist-idx-conduit";
+       version = "0.4.0.0";
+       sha256 = "0319icnnw38fivjwz9m142wyp059hn5rydr6cdjq73d5d9c77xhx";
+       libraryHaskellDepends = [
+         base binary bytestring conduit containers exceptions hspec
+         resourcet vector
+       ];
+       testHaskellDepends = [ base bytestring conduit hspec vector ];
+       description = "conduit utilities for MNIST IDX files";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "moan" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, dawg
      , regex-tdfa, regex-tdfa-text, tagset-positional, text, zlib
@@ -177523,7 +175690,6 @@ self: {
        description = "Language-agnostic analyzer for positional morphosyntactic tags";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mock-httpd" = callPackage
@@ -177723,7 +175889,6 @@ self: {
        description = "Modify fasta (and CLIP) files in several optional ways";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "modsplit" = callPackage
@@ -177745,7 +175910,6 @@ self: {
        description = "Haskell source splitter driven by special comments";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "modular" = callPackage
@@ -177800,7 +175964,6 @@ self: {
        description = "Reifying ClassyPrelude a la ModularPrelude";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "modularity" = callPackage
@@ -177817,7 +175980,6 @@ self: {
        description = "Find the modularity of a network";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "module-management" = callPackage
@@ -177888,7 +176050,6 @@ self: {
        description = "Modular C code generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "moe" = callPackage
@@ -177986,7 +176147,6 @@ self: {
        description = "A glorified string replacement tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mollie-api-haskell" = callPackage
@@ -178279,8 +176439,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-coroutine";
-       version = "0.9.1";
-       sha256 = "1d85jyfwf4h60cfp3dyrkmf7kw7ya37z2vqmv6rdbpqc1pslmb1i";
+       version = "0.9.1.2";
+       sha256 = "1s4975q1k23b2skyq9mwkkda08f2zxkv96x0yplzhz9n64kchhf3";
        libraryHaskellDepends = [
          base monad-parallel transformers transformers-compat
        ];
@@ -178319,7 +176479,6 @@ self: {
        description = "Exstensible monadic exceptions";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "monad-extras" = callPackage
@@ -178769,8 +176928,6 @@ self: {
        ];
        description = "An extensible and type-safe wrapper around EKG metrics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "monad-mock" = callPackage
@@ -179044,7 +177201,6 @@ self: {
        description = "Utility library for monads, particularly those involving state";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "monad-statevar" = callPackage
@@ -179105,7 +177261,6 @@ self: {
        description = "ST-like monad capturing variables to regions and supporting STM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "monad-stm" = callPackage
@@ -179264,8 +177419,6 @@ self: {
        libraryHaskellDepends = [ base base-compat stm ];
        description = "Generic operations over variables";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "monad-wrap" = callPackage
@@ -179390,8 +177543,8 @@ self: {
      }:
      mkDerivation {
        pname = "monadic-recursion-schemes";
-       version = "0.1.12.0";
-       sha256 = "0h5syc9p4imlf03qfb1rjsk4rq2kqry522zvw67x122q1xzdnwnw";
+       version = "0.1.13.0";
+       sha256 = "04n81zx1h68w9v8fihwhfbkyv7lb84p3nzppqf7zc55znbn67lym";
        libraryHaskellDepends = [
          base comonad containers free mtl recursion-schemes transformers
        ];
@@ -179438,7 +177591,6 @@ self: {
        description = "Constraint Programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {gecodeint = null; gecodekernel = null; gecodesearch = null; 
          gecodeset = null; gecodesupport = null;};
 
@@ -179595,7 +177747,6 @@ self: {
        description = "Monadic interface for TokyoTyrant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mondo" = callPackage
@@ -179633,7 +177784,6 @@ self: {
        description = "Mid-level bindings for the MonetDB API (mapi)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "money" = callPackage
@@ -179680,8 +177830,6 @@ self: {
        ];
        description = "Driver (client) for MongoDB, a free, scalable, fast, document DBMS";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mongodb-queue" = callPackage
@@ -179722,7 +177870,6 @@ self: {
        description = "Mongrel2 Handler Library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "monitor" = callPackage
@@ -179763,7 +177910,6 @@ self: {
        description = "A system state collecting library and application";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mono-foldable" = callPackage
@@ -179889,6 +178035,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monoid-extras_0_6" = callPackage
+    ({ mkDerivation, base, criterion, groups, semigroupoids, semigroups
+     }:
+     mkDerivation {
+       pname = "monoid-extras";
+       version = "0.6";
+       sha256 = "0ki1d3b1xpf653qj7brlqdgngghwrnmapy5gja75iiydfx2506a1";
+       libraryHaskellDepends = [ base groups semigroupoids ];
+       benchmarkHaskellDepends = [ base criterion semigroups ];
+       description = "Various extra monoid-related definitions and utilities";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monoid-owns" = callPackage
     ({ mkDerivation, base, bytestring, containers }:
      mkDerivation {
@@ -180127,7 +178287,6 @@ self: {
        description = "A monad and transformer for Monte Carlo calculations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "months" = callPackage
@@ -180213,7 +178372,21 @@ self: {
        description = "Genetic algorithm library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "moo-nad" = callPackage
+    ({ mkDerivation, base, dep-t, mtl, tasty, tasty-hunit, transformers
+     }:
+     mkDerivation {
+       pname = "moo-nad";
+       version = "0.1.0.2";
+       sha256 = "017yl4vy7apa6p91y4mhk4p36b4dgvwqdjplc38gijvk9zqd3rbm";
+       libraryHaskellDepends = [ base dep-t mtl transformers ];
+       testHaskellDepends = [ base dep-t mtl tasty tasty-hunit ];
+       doHaddock = false;
+       description = "Invocation helpers for the ReaderT-record-of-functions style";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "moonshine" = callPackage
@@ -180339,7 +178512,6 @@ self: {
        description = "Developer tools for the Michelson Language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "morley-prelude" = callPackage
@@ -180423,7 +178595,6 @@ self: {
        description = "A multi-lingual, typed, workflow language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "morph" = callPackage
@@ -180470,8 +178641,6 @@ self: {
        ];
        description = "Morpheus GraphQL";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "morpheus-graphql-app" = callPackage
@@ -180498,8 +178667,6 @@ self: {
        ];
        description = "Morpheus GraphQL Core";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "morpheus-graphql-cli" = callPackage
@@ -180594,8 +178761,6 @@ self: {
        ];
        description = "Morpheus GraphQL Subscriptions";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "morphisms" = callPackage
@@ -180631,7 +178796,6 @@ self: {
        description = "Inventory is state and store";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "morphisms-objects" = callPackage
@@ -180679,6 +178843,7 @@ self: {
        description = "A bare-bones calculus of constructions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
        broken = true;
      }) {};
 
@@ -180699,7 +178864,6 @@ self: {
        description = "Generación interactiva de mosaicos";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mosquitto-hs" = callPackage
@@ -180811,7 +178975,6 @@ self: {
        description = "Generate state diagrams from Motor FSM typeclasses";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "motor-reflection" = callPackage
@@ -180917,7 +179080,6 @@ self: {
        description = "Music player for linux";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mp3decoder" = callPackage
@@ -180950,7 +179112,6 @@ self: {
        description = "MPD/PowerMate executable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mpg123-bindings" = callPackage
@@ -180982,6 +179143,7 @@ self: {
        testSystemDepends = [ mpich ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
+       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
      }) {inherit (pkgs) mpich;};
 
   "mpi-hs-binary" = callPackage
@@ -180999,6 +179161,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
+       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
      }) {};
 
   "mpi-hs-cereal" = callPackage
@@ -181016,6 +179179,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
+       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
      }) {};
 
   "mpi-hs-store" = callPackage
@@ -181033,6 +179197,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
+       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
      }) {};
 
   "mplayer-spot" = callPackage
@@ -181053,6 +179218,9 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Save your spot when watching movies with @mplayer@";
        license = lib.licenses.bsd3;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
      }) {};
 
   "mpppc" = callPackage
@@ -181087,7 +179255,6 @@ self: {
        description = "A minimalish prelude";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mpretty" = callPackage
@@ -181105,7 +179272,6 @@ self: {
        description = "a monadic, extensible pretty printing library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mpris" = callPackage
@@ -181137,7 +179303,6 @@ self: {
        description = "Simple equational reasoning for a Haskell-ish language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mps" = callPackage
@@ -181158,33 +179323,36 @@ self: {
        description = "simply oo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mptcp-pm" = callPackage
     ({ mkDerivation, aeson, aeson-extra, aeson-pretty, base, bytestring
-     , bytestring-conversion, c2hs, c2hsc, cereal, containers
-     , fast-logger, filepath, hslogger, ip, netlink
-     , optparse-applicative, process, temporary, text
+     , bytestring-conversion, c2hs, cereal, containers, enumset
+     , filepath, hslogger, HUnit, ip, katip, mtl, netlink
+     , optparse-applicative, process, temporary, text, transformers
      , unordered-containers
      }:
      mkDerivation {
        pname = "mptcp-pm";
-       version = "0.0.2";
-       sha256 = "0l55734pa31znn9k0pxvixhh6abcmfkhgx162krn622l4lij3h8m";
-       isLibrary = false;
+       version = "0.0.3";
+       sha256 = "0h7r9i9izflsbgb8kimsz0hmglbd4s9pjycjsm0h64lg8b1sy4gs";
+       isLibrary = true;
        isExecutable = true;
-       executableHaskellDepends = [
+       libraryHaskellDepends = [
          aeson aeson-extra aeson-pretty base bytestring
-         bytestring-conversion c2hsc cereal containers fast-logger filepath
-         hslogger ip netlink optparse-applicative process temporary text
-         unordered-containers
+         bytestring-conversion cereal containers enumset ip katip mtl
+         netlink process text transformers unordered-containers
        ];
-       executableToolDepends = [ c2hs ];
-       description = "A work in progress Multipath TCP path manager";
+       libraryToolDepends = [ c2hs ];
+       executableHaskellDepends = [
+         aeson aeson-extra aeson-pretty base bytestring cereal containers
+         filepath hslogger ip mtl netlink optparse-applicative process
+         temporary text transformers
+       ];
+       testHaskellDepends = [ base HUnit ip text ];
+       description = "A Multipath TCP path manager";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mpvguihs" = callPackage
@@ -181381,7 +179549,6 @@ self: {
        description = "Aeson adapter for MessagePack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "msgpack-binary" = callPackage
@@ -181432,7 +179599,6 @@ self: {
        description = "An IDL Compiler for MessagePack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "msgpack-rpc" = callPackage
@@ -181454,7 +179620,6 @@ self: {
        description = "A MessagePack-RPC Implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "msgpack-rpc-conduit" = callPackage
@@ -181477,7 +179642,6 @@ self: {
        description = "A MessagePack-RPC Implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "msgpack-types" = callPackage
@@ -181607,7 +179771,6 @@ self: {
        description = "Library to communicate with Mt.Gox";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mtl_2_2_2" = callPackage
@@ -181815,8 +179978,6 @@ self: {
        ];
        description = "Avro serialization support for Mu microservices";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-graphql" = callPackage
@@ -181846,8 +180007,6 @@ self: {
        ];
        description = "GraphQL support for Mu";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-grpc-client" = callPackage
@@ -181872,7 +180031,6 @@ self: {
        description = "gRPC clients from Mu definitions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-grpc-common" = callPackage
@@ -181892,8 +180050,6 @@ self: {
        ];
        description = "gRPC for Mu, common modules for client and server";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-grpc-server" = callPackage
@@ -181921,7 +180077,6 @@ self: {
        description = "gRPC servers for Mu definitions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-kafka" = callPackage
@@ -181938,8 +180093,6 @@ self: {
        ];
        description = "Utilities for interoperation between Mu and Kafka";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-lens" = callPackage
@@ -181955,8 +180108,6 @@ self: {
        ];
        description = "Lenses for @mu-schema@ terms";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-optics" = callPackage
@@ -181971,8 +180122,6 @@ self: {
        ];
        description = "Optics for @mu-schema@ terms";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-persistent" = callPackage
@@ -181989,8 +180138,6 @@ self: {
        ];
        description = "Utilities for interoperation between Mu and Persistent";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-prometheus" = callPackage
@@ -182007,8 +180154,6 @@ self: {
        ];
        description = "Metrics support for Mu using Prometheus";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-protobuf" = callPackage
@@ -182036,8 +180181,6 @@ self: {
        ];
        description = "Protocol Buffers serialization and gRPC schema import for Mu microservices";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-rpc" = callPackage
@@ -182054,8 +180197,6 @@ self: {
        ];
        description = "Protocol-independent declaration of services and servers";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-schema" = callPackage
@@ -182074,8 +180215,6 @@ self: {
        ];
        description = "Format-independent schemas for serialization";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-servant-server" = callPackage
@@ -182099,8 +180238,6 @@ self: {
        ];
        description = "Servant servers for Mu definitions";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mu-tracing" = callPackage
@@ -182115,7 +180252,6 @@ self: {
        description = "Tracing support for Mu";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mucipher" = callPackage
@@ -182282,7 +180418,6 @@ self: {
        description = "A tool supporting multi cabal project builds";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multi-containers" = callPackage
@@ -182298,6 +180433,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "multi-except" = callPackage
+    ({ mkDerivation, base, dlist, hspec, semigroupoids }:
+     mkDerivation {
+       pname = "multi-except";
+       version = "0.2.1.0";
+       sha256 = "0ai19lk32wbpsmwxig5wzc7iqi81h0mxpykrmfw05vv4zwjqiqfz";
+       libraryHaskellDepends = [ base dlist semigroupoids ];
+       testHaskellDepends = [ base hspec semigroupoids ];
+       description = "Multiple Exceptions";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "multi-instance" = callPackage
     ({ mkDerivation, base, doctest }:
      mkDerivation {
@@ -182322,8 +180471,6 @@ self: {
        testHaskellDepends = [ base containers HTF ];
        description = "Trie of sets, as a model for compound names having multiple values";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multiaddr" = callPackage
@@ -182389,7 +180536,6 @@ self: {
        description = "Self-identifying base encodings, implementation of <https://github.com/multiformats/multihash>";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multifile" = callPackage
@@ -182434,7 +180580,6 @@ self: {
        description = "Bidirectional Two-level Transformation of XML Schemas";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multihash" = callPackage
@@ -182497,7 +180642,6 @@ self: {
        description = "CBOR encoding of multihashes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multihashmap" = callPackage
@@ -182556,7 +180700,6 @@ self: {
        description = "Conduit-based input/output capability for multilinear package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multimap" = callPackage
@@ -182671,7 +180814,6 @@ self: {
        description = "Wrapper program for duplicity, adding config files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multipool" = callPackage
@@ -182799,7 +180941,6 @@ self: {
        description = "Alternative multirec instances deriver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multirec-binary" = callPackage
@@ -182812,7 +180953,6 @@ self: {
        description = "Generic Data.Binary instances using MultiRec.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multiset" = callPackage
@@ -182855,7 +180995,6 @@ self: {
        description = "Multi-set rewrite rules with guards and a parallel execution scheme";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "multistate" = callPackage
@@ -182965,7 +181104,6 @@ self: {
        description = "MUtually Recursive Definitions Explicitly Represented";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "murmur" = callPackage
@@ -183038,7 +181176,6 @@ self: {
        description = "32-bit non-cryptographic hashing";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mushu" = callPackage
@@ -183132,7 +181269,6 @@ self: {
        description = "Diagrams-based visualization of musical data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "music-parts" = callPackage
@@ -183156,7 +181292,6 @@ self: {
        description = "Musical instruments, parts and playing techniques";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "music-pitch" = callPackage
@@ -183175,7 +181310,6 @@ self: {
        description = "Musical pitch representation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "music-pitch-literal" = callPackage
@@ -183217,7 +181351,6 @@ self: {
        description = "Some useful preludes for the Music Suite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "music-score" = callPackage
@@ -183242,7 +181375,6 @@ self: {
        description = "Musical score and part representation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "music-sibelius" = callPackage
@@ -183263,7 +181395,6 @@ self: {
        description = "Interaction with Sibelius";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "music-suite" = callPackage
@@ -183284,7 +181415,6 @@ self: {
        description = "A set of libraries for composition, analysis and manipulation of music";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "music-util" = callPackage
@@ -183364,7 +181494,6 @@ self: {
        description = "Send an email to all MusicBrainz editors";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "musicw" = callPackage
@@ -183420,7 +181549,6 @@ self: {
        description = "A representation of the MusicXML format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mustache" = callPackage
@@ -183551,7 +181679,6 @@ self: {
        description = "iteratees based upon mutable buffers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mutable-lens" = callPackage
@@ -183589,7 +181716,6 @@ self: {
        description = "Watches your screensaver and (un)mutes music when you (un)lock the screen";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mvar-lock" = callPackage
@@ -183620,6 +181746,7 @@ self: {
        description = "Model-view-controller";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
        broken = true;
      }) {};
 
@@ -183633,7 +181760,7 @@ self: {
        description = "Concurrent and combinable updates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "mvclient" = callPackage
@@ -183653,7 +181780,6 @@ self: {
        description = "Client library for metaverse systems like Second Life";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mwc-probability" = callPackage
@@ -183807,7 +181933,6 @@ self: {
        description = "mxnet dataiters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mxnet-examples" = callPackage
@@ -183822,7 +181947,6 @@ self: {
        description = "Examples for MXNet in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mxnet-nn" = callPackage
@@ -183849,7 +181973,6 @@ self: {
        description = "Train a neural network with MXNet in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mxnet-nnvm" = callPackage
@@ -183942,7 +182065,6 @@ self: {
        description = "None";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "myanimelist-export" = callPackage
@@ -184044,7 +182166,6 @@ self: {
        description = "Example projects using mysnapsession";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mysql" = callPackage
@@ -184052,8 +182173,8 @@ self: {
      }:
      mkDerivation {
        pname = "mysql";
-       version = "0.2";
-       sha256 = "09b1rhv16g8npjblq9jfi29bffsplvq4hnksdhknd39anr5gpqzc";
+       version = "0.2.0.1";
+       sha256 = "16m8hv9yy2nf4jwgqg6n9z53n2pzskbc3gwbp2i3kgff8wsmf8sd";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring containers ];
        librarySystemDepends = [ mysql ];
@@ -184134,7 +182255,6 @@ self: {
        description = "TLS support for mysql-haskell package using openssl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mysql-simple" = callPackage
@@ -184144,8 +182264,8 @@ self: {
      }:
      mkDerivation {
        pname = "mysql-simple";
-       version = "0.4.5";
-       sha256 = "1cbwdsxysz6a4182fgkkd869hm44v834lqv2igwsfbx6v0p44g5h";
+       version = "0.4.6";
+       sha256 = "1am8ck092s9cv4x1ambalil4mlazkp8w5qhjbl4nq0j2hpy73rby";
        libraryHaskellDepends = [
          attoparsec base base16-bytestring blaze-builder blaze-textual
          bytestring containers mysql old-locale pcre-light text time
@@ -184186,7 +182306,6 @@ self: {
        description = "Typed extension to mysql simple";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "mystem" = callPackage
@@ -184232,7 +182351,6 @@ self: {
        description = "Web application to view and kill MySQL queries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "myxine-client" = callPackage
@@ -184380,7 +182498,6 @@ self: {
        description = "N2O adapter for WebSockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nagios-check" = callPackage
@@ -184491,7 +182608,6 @@ self: {
        description = "Client library for the Nakadi Event Broker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "namecoin-update" = callPackage
@@ -184570,8 +182686,6 @@ self: {
        libraryHaskellDepends = [ base named servant ];
        description = "support records and named (from the named package) parameters in servant";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "named-servant-client" = callPackage
@@ -184587,8 +182701,6 @@ self: {
        ];
        description = "client support for named-servant";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "named-servant-server" = callPackage
@@ -184674,8 +182786,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "A Generic Haskell library for managing namespaces";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nano-cryptr" = callPackage
@@ -184873,7 +182983,6 @@ self: {
        description = "Simple interface to rendering with NanoVG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nanq" = callPackage
@@ -185072,7 +183181,6 @@ self: {
        description = "Haskell API for NATS messaging system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "natural" = callPackage
@@ -185134,7 +183242,6 @@ self: {
        description = "Natural numbers tagged with a type-level representation of the number";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "natural-numbers" = callPackage
@@ -185481,7 +183588,6 @@ self: {
        description = "A collection of Nemesis tasks to bootstrap a Haskell project with a focus on continuous integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "neptune-backend" = callPackage
@@ -185544,7 +183650,6 @@ self: {
        description = "Nerf, a named entity recognition tool based on linear-chain CRFs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nero" = callPackage
@@ -185581,7 +183686,6 @@ self: {
        description = "WAI adapter for Nero server applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nero-warp" = callPackage
@@ -185594,7 +183698,6 @@ self: {
        description = "Run Nero server applications with Warp";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nest" = callPackage
@@ -185642,7 +183745,6 @@ self: {
        description = "Declarative, compositional Wai responses";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nested-sequence" = callPackage
@@ -185825,7 +183927,6 @@ self: {
        description = "CLI option parsers for NetSpider objects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "net-spider-pangraph" = callPackage
@@ -185845,7 +183946,6 @@ self: {
        description = "Conversion between net-spider and pangraph";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "net-spider-rpl" = callPackage
@@ -185868,7 +183968,6 @@ self: {
        description = "NetSpider data model and utility for RPL networks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "net-spider-rpl-cli" = callPackage
@@ -185896,7 +183995,6 @@ self: {
        description = "CLI executable of NetSpider.RPL.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "netclock" = callPackage
@@ -185958,7 +184056,6 @@ self: {
        description = "The NetCore compiler and runtime system for OpenFlow networks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "netease-fm" = callPackage
@@ -186049,7 +184146,6 @@ self: {
        description = "Enumerator tools for text-based network protocols";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "netlink" = callPackage
@@ -186068,6 +184164,9 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Netlink communication for Haskell";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "netlist" = callPackage
@@ -186180,7 +184279,6 @@ self: {
        description = "Enumerator-based netstring parsing";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nettle" = callPackage
@@ -186223,7 +184321,6 @@ self: {
        description = "FRP for controlling networks of OpenFlow switches";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nettle-netkit" = callPackage
@@ -186240,7 +184337,6 @@ self: {
        description = "DSL for describing OpenFlow networks, and a compiler generating NetKit labs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nettle-openflow" = callPackage
@@ -186258,7 +184354,6 @@ self: {
        description = "OpenFlow protocol messages, binary formats, and servers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "netwire" = callPackage
@@ -186439,7 +184534,6 @@ self: {
        description = "Haskell API for I2P anonymous networking";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-anonymous-tor" = callPackage
@@ -186470,7 +184564,6 @@ self: {
        description = "Haskell API for Tor anonymous networking";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-api-support" = callPackage
@@ -186511,8 +184604,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Arbitrary Instances for Network Types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-attoparsec" = callPackage
@@ -186640,8 +184731,6 @@ self: {
        ];
        description = "A Haskell implementation of the Carbon protocol (part of the Graphite monitoring tools)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-conduit" = callPackage
@@ -186690,7 +184779,6 @@ self: {
        description = "A wrapper around a generic stream-like connection";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-data" = callPackage
@@ -186759,7 +184847,6 @@ self: {
        description = "Enumerators for network sockets";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-fancy" = callPackage
@@ -186783,7 +184870,6 @@ self: {
        description = "HaNS to Network shims for easier HaNS integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-house" = callPackage
@@ -186822,7 +184908,6 @@ self: {
        description = "Haskell bindings for the ifreq structure";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-ip" = callPackage
@@ -186905,7 +184990,6 @@ self: {
        description = "WebSocket backend for MessagePack RPC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-metrics" = callPackage
@@ -186922,6 +185006,7 @@ self: {
        description = "Send metrics to Ganglia, Graphite, and statsd";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "network-minihttp" = callPackage
@@ -186942,7 +185027,6 @@ self: {
        description = "A ByteString based library for writing HTTP(S) servers and clients";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-msg" = callPackage
@@ -186955,6 +185039,7 @@ self: {
        description = "Recvmsg and sendmsg bindings";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "network-msgpack-rpc" = callPackage
@@ -187007,7 +185092,6 @@ self: {
        description = "Haskell bindings for low-level packet sockets (AF_PACKET)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-packet-linux" = callPackage
@@ -187060,7 +185144,6 @@ self: {
        description = "Client library for the XMPP protocol";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-rpca" = callPackage
@@ -187079,7 +185162,6 @@ self: {
        description = "A cross-platform RPC library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-run" = callPackage
@@ -187239,7 +185321,6 @@ self: {
        description = "ByteString and Text streams for networking";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-topic-models" = callPackage
@@ -187262,7 +185343,6 @@ self: {
        description = "A few network topic model implementations for bayes-stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "network-transport" = callPackage
@@ -187373,6 +185453,8 @@ self: {
        ];
        description = "Unit tests for Network.Transport implementations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "network-transport-zeromq" = callPackage
@@ -187534,7 +185616,6 @@ self: {
        description = "WebSocket library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "networked-game" = callPackage
@@ -187803,7 +185884,6 @@ self: {
        description = "A mailgun backend for the newsletter package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "newsynth" = callPackage
@@ -187821,6 +185901,7 @@ self: {
        executableHaskellDepends = [ base random time ];
        description = "Exact and approximate synthesis of quantum circuits";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "newt" = callPackage
@@ -187924,8 +186005,6 @@ self: {
        ];
        description = "Newtype Wrapper Zoo";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "newtyper" = callPackage
@@ -188032,7 +186111,6 @@ self: {
        description = "Ngrams loader based on http://www.ngrams.info format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ngx-export" = callPackage
@@ -188087,7 +186165,6 @@ self: {
        description = "More extra tools for Nginx haskell module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "niagra" = callPackage
@@ -188222,7 +186299,6 @@ self: {
        description = "Command line utility publishes Nike+ runs on blogs and Twitter";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nimber" = callPackage
@@ -188273,7 +186349,6 @@ self: {
        description = "IDL compiler and RPC/distributed object framework for microservices";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nist-beacon" = callPackage
@@ -188399,7 +186474,7 @@ self: {
        benchmarkHaskellDepends = [ attoparsec base criterion text ];
        description = "Parse and render *.drv files";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = with lib.maintainers; [ Gabriel439 sorki ];
      }) {};
 
   "nix-diff" = callPackage
@@ -188419,7 +186494,7 @@ self: {
        ];
        description = "Explain why two Nix derivations differ";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ terlar ];
+       maintainers = with lib.maintainers; [ Gabriel439 terlar ];
      }) {};
 
   "nix-eval" = callPackage
@@ -188470,6 +186545,28 @@ self: {
        broken = true;
      }) {};
 
+  "nix-graph" = callPackage
+    ({ mkDerivation, algebraic-graphs, attoparsec, base, containers
+     , hashable, nix-derivation, optparse-applicative, stm, text, ttrie
+     , unliftio
+     }:
+     mkDerivation {
+       pname = "nix-graph";
+       version = "1.0.0.0";
+       sha256 = "1hxby1xpzld55whpb1kzzdl3gi250svpl1lw5xw9qg10a3md29zh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         algebraic-graphs attoparsec base containers hashable nix-derivation
+         stm text ttrie unliftio
+       ];
+       executableHaskellDepends = [
+         algebraic-graphs base optparse-applicative
+       ];
+       description = "Reify the Nix build graph into a Haskell graph data structure";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "nix-narinfo" = callPackage
     ({ mkDerivation, attoparsec, base, containers, filepath, hspec
      , QuickCheck, text
@@ -188528,8 +186625,6 @@ self: {
        ];
        description = "Lightweight dependency management with Nix";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nix-tools" = callPackage
@@ -188757,7 +186852,6 @@ self: {
        description = "NLP scoring command-line programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nm" = callPackage
@@ -188965,8 +187059,6 @@ self: {
        ];
        description = "A static site generator";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nom" = callPackage
@@ -189441,8 +187533,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
        description = "Normalization insensitive string comparison";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "normalize" = callPackage
@@ -189624,7 +187714,6 @@ self: {
        description = "Binding for notmuch MUA library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) notmuch;};
 
   "notmuch-web" = callPackage
@@ -189663,7 +187752,6 @@ self: {
        description = "A web interface to the notmuch email indexer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "notzero" = callPackage
@@ -189812,20 +187900,6 @@ self: {
      }:
      mkDerivation {
        pname = "nri-env-parser";
-       version = "0.1.0.6";
-       sha256 = "1hmq6676w3f5mpdpd4jbd1aa6g379q6yyidcvdyhazqxcb0dhirh";
-       libraryHaskellDepends = [
-         base modern-uri network-uri nri-prelude text
-       ];
-       description = "Read environment variables as settings to build 12-factor apps";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "nri-env-parser_0_1_0_7" = callPackage
-    ({ mkDerivation, base, modern-uri, network-uri, nri-prelude, text
-     }:
-     mkDerivation {
-       pname = "nri-env-parser";
        version = "0.1.0.7";
        sha256 = "1mm879mqpgl040p789wcjm5bhrqia5czn18c5dgni8bwa4y61ank";
        libraryHaskellDepends = [
@@ -189833,7 +187907,6 @@ self: {
        ];
        description = "Read environment variables as settings to build 12-factor apps";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "nri-observability" = callPackage
@@ -189844,30 +187917,6 @@ self: {
      }:
      mkDerivation {
        pname = "nri-observability";
-       version = "0.1.0.1";
-       sha256 = "02baq11z5qq9lq9yh8zc29s44i44qz1m593ypn3qd8rgc1arrfjj";
-       libraryHaskellDepends = [
-         aeson aeson-pretty async base bugsnag-hs bytestring directory
-         hostname http-client http-client-tls nri-env-parser nri-prelude
-         random safe-exceptions stm text time unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson aeson-pretty async base bugsnag-hs bytestring directory
-         hostname http-client http-client-tls nri-env-parser nri-prelude
-         random safe-exceptions stm text time unordered-containers
-       ];
-       description = "Report log spans collected by nri-prelude";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "nri-observability_0_1_0_2" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, async, base, bugsnag-hs
-     , bytestring, directory, hostname, http-client, http-client-tls
-     , nri-env-parser, nri-prelude, random, safe-exceptions, stm, text
-     , time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "nri-observability";
        version = "0.1.0.2";
        sha256 = "19nil7vyjbvbjlapvrxky8fkxdl3f2xhqdi3a5m5i5lyawm74b6z";
        libraryHaskellDepends = [
@@ -189882,7 +187931,6 @@ self: {
        ];
        description = "Report log spans collected by nri-prelude";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "nri-prelude" = callPackage
@@ -189893,8 +187941,8 @@ self: {
      }:
      mkDerivation {
        pname = "nri-prelude";
-       version = "0.5.0.3";
-       sha256 = "0k4mhgyazjc74hwf2xgznhhkryqhdmsc2pv1v9d32706qkr796wn";
+       version = "0.6.0.0";
+       sha256 = "02v83n08zxz8521skijgrn407a0mlkjc3fjn5q04gn932wf29g5s";
        libraryHaskellDepends = [
          aeson aeson-pretty async auto-update base bytestring containers
          directory exceptions filepath ghc hedgehog junit-xml pretty-diff
@@ -189911,33 +187959,73 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "nri-prelude_0_6_0_0" = callPackage
+  "nri-prelude_0_6_0_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, async, auto-update, base
      , bytestring, containers, directory, exceptions, filepath, ghc
      , hedgehog, junit-xml, pretty-diff, pretty-show, safe-coloured-text
-     , safe-exceptions, terminal-size, text, time, vector
+     , safe-coloured-text-terminfo, safe-exceptions, terminal-size, text
+     , time, vector
      }:
      mkDerivation {
        pname = "nri-prelude";
-       version = "0.6.0.0";
-       sha256 = "02v83n08zxz8521skijgrn407a0mlkjc3fjn5q04gn932wf29g5s";
+       version = "0.6.0.1";
+       sha256 = "10gfw6vs2vc1jll80lirzjplwx3p3l9yssddqjklnd67rnvm95r4";
        libraryHaskellDepends = [
          aeson aeson-pretty async auto-update base bytestring containers
          directory exceptions filepath ghc hedgehog junit-xml pretty-diff
-         pretty-show safe-coloured-text safe-exceptions terminal-size text
-         time vector
+         pretty-show safe-coloured-text safe-coloured-text-terminfo
+         safe-exceptions terminal-size text time vector
        ];
        testHaskellDepends = [
          aeson aeson-pretty async auto-update base bytestring containers
          directory exceptions filepath ghc hedgehog junit-xml pretty-diff
-         pretty-show safe-coloured-text safe-exceptions terminal-size text
-         time vector
+         pretty-show safe-coloured-text safe-coloured-text-terminfo
+         safe-exceptions terminal-size text time vector
        ];
        description = "A Prelude inspired by the Elm programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "nri-redis" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, conduit, hedis
+     , nri-env-parser, nri-observability, nri-prelude, resourcet
+     , safe-exceptions, text, unordered-containers, uuid
+     }:
+     mkDerivation {
+       pname = "nri-redis";
+       version = "0.1.0.0";
+       sha256 = "00im3rnb7w45xm60l42kzrj3sc9dg3098w988fdhdschwk34zqpc";
+       libraryHaskellDepends = [
+         aeson async base bytestring conduit hedis nri-env-parser
+         nri-observability nri-prelude resourcet safe-exceptions text
+         unordered-containers uuid
+       ];
+       testHaskellDepends = [
+         aeson async base bytestring conduit hedis nri-env-parser
+         nri-observability nri-prelude resourcet safe-exceptions text
+         unordered-containers uuid
+       ];
+       description = "An intuitive hedis wrapper library";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "nri-test-encoding" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, filepath
+     , nri-prelude, servant, servant-auth-server, servant-server, text
+     }:
+     mkDerivation {
+       pname = "nri-test-encoding";
+       version = "0.1.0.0";
+       sha256 = "11vk1f99xbqs678rxldxh9qfwailinxpjl6q6pvikb8f32rrb74y";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring filepath nri-prelude servant
+         servant-auth-server servant-server text
+       ];
+       description = "A library to simplify writing golden tests for encoding types";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "nsis" = callPackage
     ({ mkDerivation, base, directory, process, transformers, uniplate
      }:
@@ -190069,8 +188157,6 @@ self: {
        testHaskellDepends = [ base vector ];
        description = "Multidimensional arrays, Linear algebra, Numerical analysis";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "null-canvas" = callPackage
@@ -190321,7 +188407,6 @@ self: {
        description = "Ode solvers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "numeric-prelude" = callPackage
@@ -190426,7 +188511,6 @@ self: {
        description = "core package for Numerical Haskell project";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "numericpeano" = callPackage
@@ -190441,21 +188525,6 @@ self: {
      }) {};
 
   "numhask" = callPackage
-    ({ mkDerivation, base, bifunctors, mmorph, protolude, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "numhask";
-       version = "0.6.0.2";
-       sha256 = "1x8p92plblqz5kykqci86wjfvb79gsi00l0a5i2r1frs6imjvkjf";
-       libraryHaskellDepends = [
-         base bifunctors mmorph protolude text transformers
-       ];
-       description = "numeric classes";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "numhask_0_7_1_0" = callPackage
     ({ mkDerivation, base, bifunctors, doctest, mmorph, protolude
      , QuickCheck, random, text, transformers
      }:
@@ -190470,20 +188539,35 @@ self: {
        description = "A numeric class hierarchy";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "numhask_0_8_0_0" = callPackage
+    ({ mkDerivation, base, doctest, QuickCheck }:
+     mkDerivation {
+       pname = "numhask";
+       version = "0.8.0.0";
+       sha256 = "104vc3b43lbck6r39kv5rscvqx3hxxf8nyvzsw8shb9xifmnijkh";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest QuickCheck ];
+       description = "A numeric class hierarchy";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "numhask-array" = callPackage
-    ({ mkDerivation, adjunctions, base, deepseq, distributive, doctest
-     , numhask, vector
+    ({ mkDerivation, adjunctions, base, distributive, doctest, numhask
+     , vector
      }:
      mkDerivation {
        pname = "numhask-array";
-       version = "0.8.0";
-       sha256 = "03c12d34s20f01vc9kpgrm3n4xi8h4kqzlndj1ncpqb69xx3fhc5";
+       version = "0.9.0";
+       sha256 = "09l0cm2f66c5bagrwby8bj22b6lklbi8mbsgxxh0gw5zvb9bhgmr";
        libraryHaskellDepends = [
-         adjunctions base deepseq distributive numhask vector
+         adjunctions base distributive numhask vector
        ];
-       testHaskellDepends = [ base doctest numhask ];
+       testHaskellDepends = [ base doctest ];
        description = "Multi-dimensional array interface for numhask";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -190523,7 +188607,6 @@ self: {
        description = "Laws and tests for numhask";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "numhask-histogram" = callPackage
@@ -190541,7 +188624,6 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "numhask-prelude" = callPackage
@@ -190577,7 +188659,6 @@ self: {
        description = "Numbers that are range representations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "numhask-space" = callPackage
@@ -190587,13 +188668,13 @@ self: {
      }:
      mkDerivation {
        pname = "numhask-space";
-       version = "0.7.1.0";
-       sha256 = "1wn4fi2778dxmqfimwx9favwd6v507vzpwms04w2bk5gn1fxgcdg";
+       version = "0.8.0.0";
+       sha256 = "1ya4fcr0mxj4blijl2k2sdfkkywjmr616qcaddl7zqphjvrc4gd0";
        libraryHaskellDepends = [
          adjunctions base containers distributive numhask random
          semigroupoids tdigest text time vector
        ];
-       testHaskellDepends = [ base doctest numhask ];
+       testHaskellDepends = [ base doctest ];
        description = "Numerical spaces";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -190615,7 +188696,6 @@ self: {
        description = "Laws and tests for numhask";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nums" = callPackage
@@ -190703,6 +188783,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "nvfetcher" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, containers, extra
+     , free, microlens, microlens-th, neat-interpolation
+     , optparse-simple, shake, text, tomland, transformers
+     , validation-selective
+     }:
+     mkDerivation {
+       pname = "nvfetcher";
+       version = "0.2.0.0";
+       sha256 = "04gslnmamy79i563ma7kj2b36mqr2c1wlcivqs70akr7s4my3g7z";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base binary bytestring containers extra free microlens
+         microlens-th neat-interpolation shake text transformers
+       ];
+       executableHaskellDepends = [
+         aeson base binary bytestring containers extra free microlens
+         microlens-th neat-interpolation optparse-simple shake text tomland
+         transformers validation-selective
+       ];
+       description = "Generate nix sources expr for the latest version of packages";
+       license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ berberman ];
+     }) {};
+
   "nvim-hs" = callPackage
     ({ mkDerivation, base, bytestring, cereal, cereal-conduit, conduit
      , containers, data-default, deepseq, foreign-store, hslogger, hspec
@@ -190854,7 +188960,6 @@ self: {
        description = "An interactive GUI for manipulating L-systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nyx-game" = callPackage
@@ -191054,7 +189159,6 @@ self: {
        description = "Communicate to OBD interfaces over ELM327";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "obdd" = callPackage
@@ -191072,7 +189176,6 @@ self: {
        description = "Ordered Reduced Binary Decision Diagrams";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "oberon0" = callPackage
@@ -191093,7 +189196,6 @@ self: {
        description = "Oberon0 Compiler";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "obj" = callPackage
@@ -191114,7 +189216,6 @@ self: {
        description = "Reads and writes obj models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "objectid" = callPackage
@@ -191136,7 +189237,6 @@ self: {
        description = "Rather unique identifier for things that need to be stored";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "objective" = callPackage
@@ -191264,7 +189364,6 @@ self: {
        description = "Owned channels in the Ownership Monad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ochintin-daicho" = callPackage
@@ -191306,7 +189405,6 @@ self: {
        description = "Parse Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "octohat" = callPackage
@@ -191338,7 +189436,6 @@ self: {
        description = "A tested, minimal wrapper around GitHub's API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "octopus" = callPackage
@@ -191360,7 +189457,6 @@ self: {
        description = "Lisp with more dynamism, more power, more simplicity";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "oculus" = callPackage
@@ -191377,8 +189473,10 @@ self: {
        librarySystemDepends = [ libGL libX11 libXinerama ovr systemd ];
        description = "Oculus Rift ffi providing head tracking data";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libX11; 
          inherit (pkgs.xorg) libXinerama; ovr = null; 
          inherit (pkgs) systemd;};
@@ -191463,7 +189561,6 @@ self: {
        description = "A full-featured PostgreSQL-backed job queue (with an admin UI)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "oden-go-packages" = callPackage
@@ -191551,7 +189648,6 @@ self: {
        description = "A parser for simplified-syntax OFF files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ofx" = callPackage
@@ -191608,7 +189704,6 @@ self: {
        description = "Interface to the Ohloh API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "oi" = callPackage
@@ -191667,7 +189762,6 @@ self: {
        description = "wrapper for OIS input manager for use with hogre";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {OIS = null;};
 
   "old-locale" = callPackage
@@ -191732,7 +189826,6 @@ self: {
        description = "An OpenLayers JavaScript Wrapper and Webframework with snaplet-fay";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "om-actor" = callPackage
@@ -191748,6 +189841,24 @@ self: {
        broken = true;
      }) {};
 
+  "om-doh" = callPackage
+    ({ mkDerivation, base, base64, bytestring, http-api-data, resolv
+     , servant, servant-server, text
+     }:
+     mkDerivation {
+       pname = "om-doh";
+       version = "0.1.0.1";
+       sha256 = "1y9r70ppifww4ddk3rwvgwhfijn5hf9svlx4x46v1n027yjf9pgp";
+       libraryHaskellDepends = [
+         base base64 bytestring http-api-data resolv servant servant-server
+         text
+       ];
+       description = "om-doh";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "om-elm" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, directory
      , http-types, safe, safe-exceptions, template-haskell, text, unix
@@ -192040,6 +190151,8 @@ self: {
        libraryHaskellDepends = [ base one-liner random ];
        description = "Generics-based implementations for common typeclasses";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "one-time-password" = callPackage
@@ -192103,7 +190216,6 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "online-csv" = callPackage
@@ -192123,7 +190235,6 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "only" = callPackage
@@ -192285,8 +190396,6 @@ self: {
        ];
        description = "A monad transformer for Opaleye";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "open-adt" = callPackage
@@ -192324,7 +190433,6 @@ self: {
        description = "Open algebraic data type examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "open-browser" = callPackage
@@ -192419,8 +190527,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Open type representations and dynamic types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "open-union" = callPackage
@@ -192436,7 +190542,6 @@ self: {
        description = "Extensible, type-safe unions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "open-witness" = callPackage
@@ -192495,8 +190600,6 @@ self: {
        ];
        description = "Unofficial OpenAI servant types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "openapi-petstore" = callPackage
@@ -192560,45 +190663,10 @@ self: {
      }:
      mkDerivation {
        pname = "openapi3";
-       version = "3.0.2.0";
-       sha256 = "00qpbj2lvaysbwgbax7z1vyixzd0x7yzbz26aw5zxd4asddypbfg";
-       isLibrary = true;
-       isExecutable = true;
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         aeson aeson-pretty base base-compat-batteries bytestring containers
-         cookie generics-sop hashable http-media insert-ordered-containers
-         lens mtl network optics-core optics-th QuickCheck scientific
-         template-haskell text time transformers unordered-containers
-         uuid-types vector
-       ];
-       executableHaskellDepends = [ aeson base lens text ];
-       testHaskellDepends = [
-         aeson base base-compat-batteries bytestring containers doctest Glob
-         hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck
-         quickcheck-instances template-haskell text time
-         unordered-containers utf8-string vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "OpenAPI 3.0 data model";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "openapi3_3_1_0" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, base-compat-batteries
-     , bytestring, Cabal, cabal-doctest, containers, cookie, doctest
-     , generics-sop, Glob, hashable, hspec, hspec-discover, http-media
-     , HUnit, insert-ordered-containers, lens, mtl, network, optics-core
-     , optics-th, QuickCheck, quickcheck-instances, scientific
-     , template-haskell, text, time, transformers, unordered-containers
-     , utf8-string, uuid-types, vector
-     }:
-     mkDerivation {
-       pname = "openapi3";
        version = "3.1.0";
        sha256 = "011754qyxxw5mn06hdmxalvsiff7a4x4k2yb2r6ylzr6zhyz818z";
+       revision = "1";
+       editedCabalFile = "1rbsfjwraizp0b6j2zaimz63b46k7d8abfxw7jyb7j1cv6jkcll1";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -192619,8 +190687,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "OpenAPI 3.0 data model";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "openapi3-code-generator" = callPackage
@@ -192661,6 +190727,20 @@ self: {
        broken = true;
      }) {};
 
+  "opencc" = callPackage
+    ({ mkDerivation, base, bytestring, mtl, text, transformers }:
+     mkDerivation {
+       pname = "opencc";
+       version = "0.1.0.0";
+       sha256 = "09gsd816xh0237m94bnysdpjzqngsva3rl29f171rvhdpashcjx2";
+       libraryHaskellDepends = [ base bytestring mtl text transformers ];
+       testHaskellDepends = [ base bytestring mtl text transformers ];
+       description = "OpenCC bindings";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "opench-meteo" = callPackage
     ({ mkDerivation, aeson, base, data-default, text, time }:
      mkDerivation {
@@ -192902,8 +190982,8 @@ self: {
      }:
      mkDerivation {
        pname = "openid-connect";
-       version = "0.1.0.0";
-       sha256 = "12qp155dazycypv0fvw8mbh3rl5j5ybd2vyfga8wi55n16v1w8mv";
+       version = "0.1.1";
+       sha256 = "16qqndcvbs30nraik0ida1dw40hk3k9mi318dnqnjx64x6wvcgmr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -193071,7 +191151,6 @@ self: {
        description = "Fetch OpenSSH keys from a GitHub team";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "openssh-protocol" = callPackage
@@ -193513,7 +191592,6 @@ self: {
        description = "Jaeger backend for OpenTracing";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "opentracing-wai" = callPackage
@@ -193556,7 +191634,6 @@ self: {
        description = "Zipkin V1 backend for OpenTracing";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "opentracing-zipkin-v2" = callPackage
@@ -193615,8 +191692,6 @@ self: {
        ];
        description = "Access data at OpenWeatherMap";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "operate-do" = callPackage
@@ -193796,6 +191871,7 @@ self: {
        ];
        description = "Optics as an abstract interface";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "optics_0_4" = callPackage
@@ -193825,6 +191901,7 @@ self: {
        description = "Optics as an abstract interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "optics-core" = callPackage
@@ -193984,7 +192061,6 @@ self: {
        description = "Command-line arguments parsing for Hasql";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "optimal-blocks" = callPackage
@@ -194010,7 +192086,6 @@ self: {
        description = "Optimal Block boundary determination for rsync-like behaviours";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "optimization" = callPackage
@@ -194047,7 +192122,6 @@ self: {
        description = "A supercompiler for f-lite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "option" = callPackage
@@ -194088,6 +192162,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Optional function arguments";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "options" = callPackage
@@ -194196,8 +192271,6 @@ self: {
        ];
        description = "An enum-text based toolkit for optparse-applicative";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "optparse-generic" = callPackage
@@ -194216,6 +192289,7 @@ self: {
        ];
        description = "Auto-generate a command-line parser for your datatype";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "optparse-helper" = callPackage
@@ -194292,6 +192366,7 @@ self: {
        ];
        description = "Types and functions for Kepler orbits";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "orc" = callPackage
@@ -194357,7 +192432,6 @@ self: {
        description = "Haskell Wiki Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "orchid-demo" = callPackage
@@ -194378,7 +192452,6 @@ self: {
        description = "Haskell Wiki Demo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ord-adhoc" = callPackage
@@ -194407,7 +192480,6 @@ self: {
        description = "Algorithms for the order maintenance problem with a safe interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "order-statistic-tree" = callPackage
@@ -194454,6 +192526,7 @@ self: {
        description = "A definition of Posets";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ordered-containers" = callPackage
@@ -194498,11 +192571,11 @@ self: {
      }:
      mkDerivation {
        pname = "ordinal";
-       version = "0.4.0.0";
-       sha256 = "1k0hpp5p546zlvwsy1d8hypryfwqvqdifmk3cqifw3xsdrqv3d8y";
+       version = "0.4.0.5";
+       sha256 = "0m073n6yln9rfdzlkwd10fl04b725h3hpybz01r0wiyw4bfv2n3b";
        libraryHaskellDepends = [
-         base containers data-default regex template-haskell text time
-         vector
+         base containers data-default QuickCheck regex template-haskell text
+         time vector
        ];
        testHaskellDepends = [ base hspec QuickCheck text ];
        testToolDepends = [ hspec-discover ];
@@ -194576,7 +192649,6 @@ self: {
        description = "Lucid integration for org-mode";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "org2anki" = callPackage
@@ -194660,8 +192732,8 @@ self: {
      }:
      mkDerivation {
        pname = "orgstat";
-       version = "0.1.9";
-       sha256 = "09psfz4a2amgcyq00ygjp6zakzf5yx2y2kjykz62wncwpqkgnf53";
+       version = "0.1.10";
+       sha256 = "16p6wswh96ap4qj7n61qd3hrr0f5m84clb113vg4dncf46ivlfs6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -194682,8 +192754,6 @@ self: {
        ];
        description = "Statistics visualizer for org-mode";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "origami" = callPackage
@@ -194979,7 +193049,6 @@ self: {
        description = "Download Open Street Map tiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "oso2pdf" = callPackage
@@ -195062,7 +193131,6 @@ self: {
        description = "OTP Authenticator (a la google) command line client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ottparse-pretty" = callPackage
@@ -195136,20 +193204,20 @@ self: {
 
   "overloaded" = callPackage
     ({ mkDerivation, assoc, base, bin, boring, bytestring, constraints
-     , containers, fin, generic-lens-lite, ghc, hmatrix, HUnit, lens
-     , optics-core, profunctors, QuickCheck, ral, record-hasfield
-     , semigroupoids, singleton-bool, sop-core, split, splitmix, syb
-     , symbols, tasty, tasty-hunit, tasty-quickcheck, template-haskell
-     , text, th-compat, time, vec
+     , containers, fin, generic-lens-lite, ghc, hmatrix, HUnit
+     , indexed-traversable, lens, optics-core, profunctors, QuickCheck
+     , ral, record-hasfield, semigroupoids, singleton-bool, sop-core
+     , split, splitmix, syb, symbols, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, th-compat, time, vec
      }:
      mkDerivation {
        pname = "overloaded";
-       version = "0.3";
-       sha256 = "151xnpk7l1jg63m4bwr91h3dh1xb0d4xinc4vn1jsbhr96p662ap";
+       version = "0.3.1";
+       sha256 = "0ra33rcbjm58978gc0pjzcspyvab7g2vxnjk6z5hag7qh6ay76bg";
        libraryHaskellDepends = [
-         assoc base bin bytestring containers fin ghc optics-core
-         profunctors ral record-hasfield semigroupoids sop-core split syb
-         symbols template-haskell text th-compat time vec
+         assoc base bin bytestring containers fin ghc indexed-traversable
+         optics-core profunctors ral record-hasfield semigroupoids sop-core
+         split syb symbols template-haskell text th-compat time vec
        ];
        testHaskellDepends = [
          assoc base bin boring bytestring constraints containers fin
@@ -195449,6 +193517,25 @@ self: {
        broken = true;
      }) {};
 
+  "packstream" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers
+     , data-binary-ieee754, hspec, mtl, text
+     }:
+     mkDerivation {
+       pname = "packstream";
+       version = "0.1.0.2";
+       sha256 = "0skp7n6y9wzsa4mr456cpmqw0fzyb5613hqw7fs0qyzwb5swna2c";
+       libraryHaskellDepends = [
+         base binary bytestring containers data-binary-ieee754 mtl text
+       ];
+       testHaskellDepends = [
+         base binary bytestring containers data-binary-ieee754 hspec mtl
+         text
+       ];
+       description = "PackStream converter for Neo4j BOLT protocol";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "packunused" = callPackage
     ({ mkDerivation, base, Cabal, directory, filepath, haskell-src-exts
      , optparse-applicative, process, split
@@ -195486,6 +193573,24 @@ self: {
        broken = true;
      }) {};
 
+  "pact-time" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, cereal, clock
+     , Decimal, deepseq, microlens, mtl, tasty, tasty-hunit, text
+     , vector, vector-space
+     }:
+     mkDerivation {
+       pname = "pact-time";
+       version = "0.2.0.0";
+       sha256 = "04d8hd4hnbsjvzjjvnyabc68srhyp8k9459pp0y1sdc7z6c0qq1m";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring cereal clock Decimal deepseq
+         microlens mtl text vector vector-space
+       ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
+       description = "Time Library for Pact";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "padKONTROL" = callPackage
     ({ mkDerivation, base, containers, hmidi, minioperational
      , transformers
@@ -195500,7 +193605,6 @@ self: {
        description = "Controlling padKONTROL native mode";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "paddle" = callPackage
@@ -195702,7 +193806,6 @@ self: {
        description = "Bilinear pairings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "palette" = callPackage
@@ -195751,8 +193854,6 @@ self: {
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {pam = null;};
 
   "pan-os-syslog" = callPackage
@@ -195771,7 +193872,6 @@ self: {
        description = "Parse syslog traffic from PAN-OS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "panda" = callPackage
@@ -195793,7 +193893,6 @@ self: {
        description = "A simple static blog engine";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc" = callPackage
@@ -195854,6 +193953,65 @@ self: {
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
+  "pandoc_2_14_0_1" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, array, attoparsec, base
+     , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
+     , case-insensitive, citeproc, commonmark, commonmark-extensions
+     , commonmark-pandoc, connection, containers, data-default, deepseq
+     , Diff, directory, doclayout, doctemplates, emojis, exceptions
+     , file-embed, filepath, Glob, haddock-library, hslua
+     , hslua-module-path, hslua-module-system, hslua-module-text, HsYAML
+     , HTTP, http-client, http-client-tls, http-types, ipynb
+     , jira-wiki-markup, JuicyPixels, mtl, network, network-uri
+     , pandoc-types, parsec, process, QuickCheck, random, safe
+     , scientific, SHA, skylighting, skylighting-core, split, syb
+     , tagsoup, tasty, tasty-bench, tasty-golden, tasty-hunit, tasty-lua
+     , tasty-quickcheck, temporary, texmath, text, text-conversions
+     , time, unicode-collation, unicode-transforms, unix
+     , unordered-containers, xml, xml-conduit, zip-archive, zlib
+     }:
+     mkDerivation {
+       pname = "pandoc";
+       version = "2.14.0.1";
+       sha256 = "0fyhmdd1qnf9z4k1m8mm4m1p4lvpirlxx78plglch5h4xqidibr3";
+       configureFlags = [ "-fhttps" "-f-trypandoc" ];
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty array attoparsec base base64-bytestring binary
+         blaze-html blaze-markup bytestring case-insensitive citeproc
+         commonmark commonmark-extensions commonmark-pandoc connection
+         containers data-default deepseq directory doclayout doctemplates
+         emojis exceptions file-embed filepath Glob haddock-library hslua
+         hslua-module-path hslua-module-system hslua-module-text HsYAML HTTP
+         http-client http-client-tls http-types ipynb jira-wiki-markup
+         JuicyPixels mtl network network-uri pandoc-types parsec process
+         random safe scientific SHA skylighting skylighting-core split syb
+         tagsoup temporary texmath text text-conversions time
+         unicode-collation unicode-transforms unix unordered-containers xml
+         xml-conduit zip-archive zlib
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base bytestring containers Diff directory doctemplates exceptions
+         filepath Glob hslua mtl pandoc-types process QuickCheck tasty
+         tasty-golden tasty-hunit tasty-lua tasty-quickcheck text time xml
+         zip-archive
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers deepseq mtl tasty-bench text time
+       ];
+       postInstall = ''
+         mkdir -p $out/share/man/man1
+         mv "man/"*.1 $out/share/man/man1/
+       '';
+       description = "Conversion between markup formats";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ peti ];
+     }) {};
+
   "pandoc-citeproc" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
@@ -195946,6 +194104,43 @@ self: {
        license = lib.licenses.gpl2Only;
      }) {};
 
+  "pandoc-crossref_0_3_11_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, data-accessor
+     , data-accessor-template, data-accessor-transformers, data-default
+     , deepseq, directory, filepath, gitrev, hspec, mtl, open-browser
+     , optparse-applicative, pandoc, pandoc-types, roman-numerals, syb
+     , template-haskell, temporary, text, utility-ht
+     }:
+     mkDerivation {
+       pname = "pandoc-crossref";
+       version = "0.3.11.0";
+       sha256 = "1czz54px5pv5a5ijxllz3nrq5s5k4rb05xb8r29drrnz13j45chk";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base containers data-accessor data-accessor-template
+         data-accessor-transformers data-default directory filepath mtl
+         pandoc pandoc-types roman-numerals syb template-haskell text
+         utility-ht
+       ];
+       executableHaskellDepends = [
+         base deepseq gitrev open-browser optparse-applicative pandoc
+         pandoc-types template-haskell temporary text
+       ];
+       testHaskellDepends = [
+         base containers data-accessor data-default directory filepath hspec
+         mtl pandoc pandoc-types text
+       ];
+       benchmarkHaskellDepends = [
+         base criterion pandoc pandoc-types text
+       ];
+       doHaddock = false;
+       description = "Pandoc filter for cross-references";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pandoc-csv2table" = callPackage
     ({ mkDerivation, base, csv, pandoc, pandoc-types, text }:
      mkDerivation {
@@ -195959,8 +194154,6 @@ self: {
        executableHaskellDepends = [ base csv pandoc pandoc-types ];
        description = "Convert CSV to Pandoc Table Markdown";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-dhall-decoder" = callPackage
@@ -196132,7 +194325,6 @@ self: {
        description = "Japanese-specific markup filters for pandoc";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-lens" = callPackage
@@ -196232,31 +194424,29 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Render and insert PlantUML diagrams with Pandoc";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-plot" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion
-     , data-default, directory, filepath, githash, hashable, hspec
+     , data-default, directory, filepath, gitrev, hashable, hspec
      , hspec-expectations, lifted-async, lifted-base, mtl
      , optparse-applicative, pandoc, pandoc-types, shakespeare, tagsoup
      , tasty, tasty-hspec, tasty-hunit, template-haskell, text
-     , typed-process, yaml
+     , typed-process, unix, yaml
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "1.1.1";
-       sha256 = "10wwci7p3kphmjxlnpymbnx3cw2l3yfydm29l6k2vakz1pd7zdh0";
+       version = "1.2.2";
+       sha256 = "0lj4a1nn78zsv7rms3irk0fy390k2yfd6ck687x9h1xqmsdhd3kd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers data-default directory filepath hashable
          lifted-async lifted-base mtl pandoc pandoc-types shakespeare
-         tagsoup template-haskell text typed-process yaml
+         tagsoup template-haskell text typed-process unix yaml
        ];
        executableHaskellDepends = [
-         base containers directory filepath githash optparse-applicative
+         base containers directory filepath gitrev optparse-applicative
          pandoc pandoc-types template-haskell text typed-process
        ];
        testHaskellDepends = [
@@ -196314,8 +194504,6 @@ self: {
        executableHaskellDepends = [ base mtl pandoc-types text ];
        description = "Convert Pandoc Markdown-style footnotes into sidenotes";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-stylefrommeta" = callPackage
@@ -196425,8 +194613,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.4.0";
-       sha256 = "0jy41qiqn6xj6ib20klv85jyr8vn633xqhxbx38zxs5dsq885laq";
+       version = "0.4.1";
+       sha256 = "0gn47zw0rzvdj1d1gwqy49di6f8lpvy53wfcs2g163nz9vil8xka";
        description = "A box of patterns and paradigms";
        license = lib.licenses.mit;
      }) {};
@@ -196591,8 +194779,8 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.5.1.5";
-       sha256 = "18pnihbybgnaa1hs9pcz8vvvzlfn3wv8p2rnnf1p2w6m63n8vf9a";
+       version = "0.5.2.1";
+       sha256 = "0g1v78mgxa6mn0vm6yii3nzfdwpn4hgrlcld1h3mbwaxn6c8116k";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring Cabal casa-client casa-types
          conduit conduit-extra containers cryptonite cryptonite-conduit
@@ -196696,7 +194884,6 @@ self: {
        description = "Reasonable default import";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "papa-base" = callPackage
@@ -196711,7 +194898,6 @@ self: {
        description = "Prelude with only useful functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "papa-base-export" = callPackage
@@ -196737,7 +194923,6 @@ self: {
        description = "Useful base functions reimplemented";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "papa-bifunctors" = callPackage
@@ -196798,7 +194983,6 @@ self: {
        description = "Reasonable default import";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "papa-implement" = callPackage
@@ -196821,7 +195005,6 @@ self: {
        description = "Reasonable default import";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "papa-include" = callPackage
@@ -196981,7 +195164,6 @@ self: {
        description = "Prelude with only useful functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "papa-semigroupoids-export" = callPackage
@@ -197114,7 +195296,6 @@ self: {
        description = "The Haskell library and examples for the kids programming robot paprika";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "par-dual" = callPackage
@@ -197203,10 +195384,8 @@ self: {
     ({ mkDerivation, base, containers, extensible-exceptions, random }:
      mkDerivation {
        pname = "parallel-io";
-       version = "0.3.3";
-       sha256 = "0i86x3bf8pjlg6mdg1zg5lcrjpg75pbqs2mrgrbp4z4bkcmw051s";
-       revision = "2";
-       editedCabalFile = "0mggzni708nzxlsjbibdzf03s3b5lnqj2zi1hnbh1rd4j4jr07ym";
+       version = "0.3.4";
+       sha256 = "10bglxm685pljh0i896zrgs6g3iz0n7gl1qslvfn63pjxgvz5v2a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -197287,8 +195466,6 @@ self: {
        ];
        description = "Classes and data structures for working with data-kind indexed types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "paramtree" = callPackage
@@ -197359,7 +195536,6 @@ self: {
        description = "Generalised parser combinators - Attoparsec interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "parco-parsec" = callPackage
@@ -197372,7 +195548,6 @@ self: {
        description = "Generalised parser combinators - Parsec interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "parcom-lib" = callPackage
@@ -197419,7 +195594,6 @@ self: {
        description = "Examples to accompany the book \"Parallel and Concurrent Programming in Haskell\"";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pareto" = callPackage
@@ -197492,6 +195666,9 @@ self: {
        libraryHaskellDepends = [ array base ];
        description = "Simply interfacing the parallel port on linux";
        license = "GPL";
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "parquet-hs" = callPackage
@@ -197518,7 +195695,6 @@ self: {
        description = "Streaming Parquet reader";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "parse-dimacs" = callPackage
@@ -197567,7 +195743,6 @@ self: {
        description = "generate command line arguments from a --help output";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "parseargs" = callPackage
@@ -198036,7 +196211,6 @@ self: {
        description = "NMR-STAR file format parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "parsimony" = callPackage
@@ -198072,6 +196246,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "parsley" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, cpphs
+     , dependent-map, dependent-sum, ghc-prim, hashable, mtl
+     , pretty-terminal, template-haskell, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "parsley";
+       version = "0.1.0.1";
+       sha256 = "01rslkkisbrgdn2d8hzrag2z6hh9gjilp2bg0j87n8awzm1i2n19";
+       revision = "1";
+       editedCabalFile = "16rpf1l3ph3yil2jnyp9z0j46afb38bii52bwkl4blk2f781k97z";
+       libraryHaskellDepends = [
+         array base bytestring containers dependent-map dependent-sum
+         ghc-prim hashable mtl pretty-terminal template-haskell text
+         unordered-containers
+       ];
+       libraryToolDepends = [ cpphs ];
+       description = "A fast parser combinator library backed by Typed Template Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "parsnip" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers
      , data-default, ghc-prim, primitive
@@ -198157,7 +196354,6 @@ self: {
        description = "Haskell 98 Partial Lenses";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "partial-order" = callPackage
@@ -198194,8 +196390,8 @@ self: {
     ({ mkDerivation, base, doctest, hedgehog }:
      mkDerivation {
        pname = "partial-semigroup";
-       version = "0.5.1.8";
-       sha256 = "1lxvgz0z04fkd67lnva902j8y5qxp6naga7gfnnazwafsb0s9kww";
+       version = "0.5.1.12";
+       sha256 = "0dkbw136cgqqhgckcn7wj39gd8ng8jmbdbq99qan5l2h5090k30h";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest hedgehog ];
        description = "A partial binary associative operator";
@@ -198206,8 +196402,8 @@ self: {
     ({ mkDerivation, base, hedgehog, partial-semigroup }:
      mkDerivation {
        pname = "partial-semigroup-hedgehog";
-       version = "0.6.0.6";
-       sha256 = "0n0j8xlrz66mzkvrsa083b9057n3rgbir7pwqxqycwzgj18g68s6";
+       version = "0.6.0.8";
+       sha256 = "0gldqqrfc87x1ff33qgan3pp62siqgal3imkf81b9rynws0saxh7";
        libraryHaskellDepends = [ base hedgehog partial-semigroup ];
        description = "Property testing for partial semigroups using Hedgehog";
        license = lib.licenses.asl20;
@@ -198288,8 +196484,8 @@ self: {
      }:
      mkDerivation {
        pname = "passman";
-       version = "0.3.0";
-       sha256 = "1m3g4ah1wvga3kq9krvg13niisq4rqkb7i6f6lil39v6lplq5drq";
+       version = "0.3.1";
+       sha256 = "1k5d06blwq5aiidmbpm2iya24yvxdhl2aq0v7z04ppshjv9gi5qf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -198355,6 +196551,7 @@ self: {
        description = "Deterministic password generator core";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "password" = callPackage
@@ -198367,6 +196564,8 @@ self: {
        pname = "password";
        version = "3.0.0.0";
        sha256 = "0x6f4zkqqsa6vi5dvy5sj0f7pqkqq9zw3ph9f0d8vl631zcs2inb";
+       revision = "1";
+       editedCabalFile = "0083j7wnq6dv663i22n0lmrgq8df5pl96xlyad3jv9l27r4z4gdk";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base64 bytestring cryptonite memory password-types
@@ -198379,6 +196578,8 @@ self: {
        ];
        description = "Hashing and checking of passwords";
        license = lib.licenses.bsd3;
+       platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
+       maintainers = with lib.maintainers; [ cdepillabout ];
      }) {};
 
   "password-instances" = callPackage
@@ -198402,6 +196603,8 @@ self: {
        ];
        description = "typeclass instances for password package";
        license = lib.licenses.bsd3;
+       platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
+       maintainers = with lib.maintainers; [ cdepillabout ];
      }) {};
 
   "password-types" = callPackage
@@ -198413,6 +196616,8 @@ self: {
        pname = "password-types";
        version = "1.0.0.0";
        sha256 = "090aqq2xs6m5djvr9zfdj7rxafbmj8d05vij5rchj1f9c46dclb5";
+       revision = "1";
+       editedCabalFile = "1nw1fskhr42xmhdc1bp290333vzgmc3fkfvydfwjvlw0962lxzvy";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base bytestring memory text ];
        testHaskellDepends = [
@@ -198599,17 +196804,15 @@ self: {
      }:
      mkDerivation {
        pname = "path";
-       version = "0.7.0";
-       sha256 = "1dl7yjmkcdm3wlbj1s5qvkl31apl3dnwz5jc8h3hdq0w722x4a5k";
-       revision = "1";
-       editedCabalFile = "0ph5qs50lm8ac58v8df0mmivqfilb1wz14568q06aws6gwj9qqpi";
+       version = "0.7.1";
+       sha256 = "1z2gj4108827lb03f7cdqhijjgqjvv9glzrzfv96cxkwgi6y38jx";
        libraryHaskellDepends = [
          aeson base deepseq exceptions filepath hashable template-haskell
          text
        ];
        testHaskellDepends = [
          aeson base bytestring filepath genvalidity genvalidity-hspec
-         genvalidity-property hspec mtl QuickCheck validity
+         genvalidity-property hspec mtl QuickCheck template-haskell validity
        ];
        description = "Support for well-typed paths";
        license = lib.licenses.bsd3;
@@ -198956,7 +197159,6 @@ self: {
        description = "Common patterns in message-oriented applications";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pava" = callPackage
@@ -199152,7 +197354,6 @@ self: {
        description = "Convert a pcap into an enumerator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pcapng" = callPackage
@@ -199183,7 +197384,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pcd-loader" = callPackage
@@ -199228,7 +197428,6 @@ self: {
        description = "A one file compiler for PCF";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pcf-font" = callPackage
@@ -199261,7 +197460,6 @@ self: {
        description = "Template Haskell for embedding text rendered using PCF fonts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pcg-random" = callPackage
@@ -199294,6 +197492,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq random ];
        description = "A fast, pseudorandom number generator";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pcre-heavy" = callPackage
@@ -199375,8 +197575,8 @@ self: {
      }:
      mkDerivation {
        pname = "pcre2";
-       version = "1.1.4";
-       sha256 = "0wrw2slmkxxmw3zx85f9xv8374fsvhxsyf1l149fvkaqnvf19bs2";
+       version = "1.1.5";
+       sha256 = "0kwlcv2rh8hyx93i3q3xv8ijxccl02n5nbkv4g74dr12d41ggc1h";
        libraryHaskellDepends = [
          base containers mtl template-haskell text
        ];
@@ -199415,7 +197615,6 @@ self: {
        description = "Tool to generate PDF from haskintex templates and YAML input";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pdf-slave-server" = callPackage
@@ -199472,58 +197671,69 @@ self: {
 
   "pdf-toolbox-content" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
-     , containers, io-streams, pdf-toolbox-core, text
+     , containers, hspec, io-streams, pdf-toolbox-core, scientific, text
+     , vector
      }:
      mkDerivation {
        pname = "pdf-toolbox-content";
-       version = "0.0.5.1";
-       sha256 = "1244r2ij46gs10zxc3mlf2693nnb1jpyminqkpzh71hp5qilw40w";
+       version = "0.1.1";
+       sha256 = "0bdcakhmazxim5npqkb13lh0b65p1xqv2a05c61zv0g64n1d6k5f";
        libraryHaskellDepends = [
          attoparsec base base16-bytestring bytestring containers io-streams
-         pdf-toolbox-core text
+         pdf-toolbox-core scientific text vector
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring containers hspec io-streams
+         pdf-toolbox-core
        ];
        description = "A collection of tools for processing PDF files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pdf-toolbox-core" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, containers, errors
-     , io-streams, scientific, transformers, zlib-bindings
+    ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
+     , cipher-aes, cipher-rc4, containers, crypto-api, cryptohash
+     , hashable, hspec, io-streams, scientific, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "pdf-toolbox-core";
-       version = "0.0.4.1";
-       sha256 = "10d9fchmiwdbkbdxqmn5spim4pywc1qm9q9c0dhmsssryng99qyc";
+       version = "0.1.1";
+       sha256 = "1d5bk7qbcgz99xa61xi17z0hgr3w2by3d5mr2vgd0hpcdi5ygskz";
+       revision = "1";
+       editedCabalFile = "1h5nh360zaql29lw3mcykip7bvnnjjcxmpaaz3s842a227m9wflz";
        libraryHaskellDepends = [
-         attoparsec base bytestring containers errors io-streams scientific
-         transformers zlib-bindings
+         attoparsec base base16-bytestring bytestring cipher-aes cipher-rc4
+         containers crypto-api cryptohash hashable io-streams scientific
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring hspec io-streams unordered-containers
+         vector
        ];
        description = "A collection of tools for processing PDF files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pdf-toolbox-document" = callPackage
-    ({ mkDerivation, base, bytestring, cipher-aes, cipher-rc4
-     , containers, crypto-api, cryptohash, io-streams
-     , pdf-toolbox-content, pdf-toolbox-core, text, transformers
+    ({ mkDerivation, base, bytestring, containers, directory, hspec
+     , io-streams, pdf-toolbox-content, pdf-toolbox-core, text
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "pdf-toolbox-document";
-       version = "0.0.7.1";
-       sha256 = "1qghjsaya0wnl3vil8gv6a3crd94mmvl3y73k2cwzhc5madkfz9z";
+       version = "0.1.2";
+       sha256 = "172vxsv541hsdkk08rsr21rwdrcxwmf4pwjmgsq2rjwj4ba4723y";
        libraryHaskellDepends = [
-         base bytestring cipher-aes cipher-rc4 containers crypto-api
-         cryptohash io-streams pdf-toolbox-content pdf-toolbox-core text
-         transformers
+         base bytestring containers io-streams pdf-toolbox-content
+         pdf-toolbox-core text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base directory hspec io-streams pdf-toolbox-core
+         unordered-containers
        ];
        description = "A collection of tools for processing PDF files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pdf-toolbox-viewer" = callPackage
@@ -199671,7 +197881,6 @@ self: {
        description = "Experiemental library for composable interactive programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "peano" = callPackage
@@ -199722,7 +197931,6 @@ self: {
        description = "pec embedded compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pecoff" = callPackage
@@ -199831,7 +198039,6 @@ self: {
        description = "Package to solve the Generalized Pell Equation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pem" = callPackage
@@ -199937,7 +198144,6 @@ self: {
        description = "Extensible double-entry accounting system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "penny-bin" = callPackage
@@ -199957,7 +198163,6 @@ self: {
        description = "Deprecated - use penny package instead";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "penny-lib" = callPackage
@@ -199980,7 +198185,6 @@ self: {
        description = "Deprecated - use penny package instead";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "penrose" = callPackage
@@ -200017,7 +198221,6 @@ self: {
        description = "Create beautiful diagrams just by typing mathematical notation in plain text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "peparser" = callPackage
@@ -200030,7 +198233,6 @@ self: {
        description = "A parser for PE object files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "percent-encoder" = callPackage
@@ -200104,8 +198306,6 @@ self: {
        benchmarkToolDepends = [ cpphs ];
        description = "Find duplicate images";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "perdure" = callPackage
@@ -200195,7 +198395,6 @@ self: {
        description = "analysis example using perf";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "perfect-hash-generator" = callPackage
@@ -200275,7 +198474,6 @@ self: {
        description = "A perfect hashing library for mapping bytestrings to values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "perhaps" = callPackage
@@ -200350,6 +198548,7 @@ self: {
        ];
        description = "Periodic task system haskell client";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "periodic-client-exe" = callPackage
@@ -200374,6 +198573,7 @@ self: {
        ];
        description = "Periodic task system haskell client executables";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "periodic-common" = callPackage
@@ -200390,6 +198590,8 @@ self: {
        ];
        description = "Periodic task system common";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "periodic-polynomials" = callPackage
@@ -200431,7 +198633,6 @@ self: {
        description = "Periodic task system haskell server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "perm" = callPackage
@@ -200449,7 +198650,6 @@ self: {
        description = "permutation Applicative and Monad with many mtl instances";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "permutation" = callPackage
@@ -200540,6 +198740,7 @@ self: {
        ];
        description = "Serialization library with state and leb128 encoding";
        license = lib.licenses.bsd3;
+       platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
      }) {};
 
   "persist2er" = callPackage
@@ -200601,66 +198802,37 @@ self: {
 
   "persistent" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
-     , blaze-html, bytestring, conduit, containers, fast-logger, hspec
-     , http-api-data, monad-logger, mtl, path-pieces, resource-pool
-     , resourcet, scientific, shakespeare, silently, text, time
-     , transformers, unliftio, unliftio-core, unordered-containers
-     , vector
-     }:
-     mkDerivation {
-       pname = "persistent";
-       version = "2.11.0.4";
-       sha256 = "1n5wkhfvyqq6p57nkf9yx73kap6spyzam5w12ni8pmd1m6pk77xn";
-       libraryHaskellDepends = [
-         aeson attoparsec base base64-bytestring blaze-html bytestring
-         conduit containers fast-logger http-api-data monad-logger mtl
-         path-pieces resource-pool resourcet scientific silently text time
-         transformers unliftio unliftio-core unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base base64-bytestring blaze-html bytestring
-         containers hspec http-api-data path-pieces scientific shakespeare
-         text time transformers unordered-containers vector
-       ];
-       description = "Type-safe, multi-backend data serialization";
-       license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
-     }) {};
-
-  "persistent_2_12_1_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , blaze-html, bytestring, conduit, containers, criterion, deepseq
-     , deepseq-generics, fast-logger, file-embed, hspec, http-api-data
-     , monad-logger, mtl, path-pieces, QuickCheck, resource-pool
-     , resourcet, scientific, shakespeare, silently, template-haskell
-     , text, th-lift-instances, time, transformers, unliftio
-     , unliftio-core, unordered-containers, vector
+     , fast-logger, file-embed, hspec, http-api-data, lift-type
+     , monad-logger, mtl, path-pieces, QuickCheck, quickcheck-instances
+     , resource-pool, resourcet, scientific, shakespeare, silently
+     , template-haskell, text, th-lift-instances, time, transformers
+     , unliftio, unliftio-core, unordered-containers, vector
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.12.1.1";
-       sha256 = "00n463mvfnjpi7dz4i3lz379cf4gprsiv57j4jb7wh5a8xr2vfhz";
+       version = "2.13.0.2";
+       sha256 = "1fn3hjn3pxxnawvdif691vmxahnmal5ivr5rll0f26ia7rjqrnn2";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
-         conduit containers fast-logger http-api-data monad-logger mtl
-         path-pieces resource-pool resourcet scientific silently
+         conduit containers fast-logger http-api-data lift-type monad-logger
+         mtl path-pieces resource-pool resourcet scientific silently
          template-haskell text th-lift-instances time transformers unliftio
          unliftio-core unordered-containers vector
        ];
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
          conduit containers fast-logger hspec http-api-data monad-logger mtl
-         path-pieces QuickCheck resource-pool resourcet scientific
-         shakespeare silently template-haskell text th-lift-instances time
-         transformers unliftio unliftio-core unordered-containers vector
+         path-pieces QuickCheck quickcheck-instances resource-pool resourcet
+         scientific shakespeare silently template-haskell text
+         th-lift-instances time transformers unliftio unliftio-core
+         unordered-containers vector
        ];
        benchmarkHaskellDepends = [
-         base criterion deepseq deepseq-generics file-embed template-haskell
-         text
+         base criterion deepseq file-embed template-haskell text
        ];
        description = "Type-safe, multi-backend data serialization";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ psibi ];
      }) {};
 
@@ -200692,7 +198864,6 @@ self: {
        description = "Parses a Persist Model file and produces Audit Models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "persistent-cereal" = callPackage
@@ -200729,6 +198900,35 @@ self: {
        broken = true;
      }) {};
 
+  "persistent-discover" = callPackage
+    ({ mkDerivation, base, directory, dlist, file-embed, filepath
+     , hspec, hspec-discover, mtl, persistent, template-haskell
+     }:
+     mkDerivation {
+       pname = "persistent-discover";
+       version = "0.1.0.1";
+       sha256 = "1vncymwn132x3mf468r94r6wa6890zgmvjhq64gr5bhzh3mnah6c";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base directory dlist file-embed filepath mtl persistent
+         template-haskell
+       ];
+       executableHaskellDepends = [
+         base directory dlist file-embed filepath mtl persistent
+         template-haskell
+       ];
+       testHaskellDepends = [
+         base directory dlist file-embed filepath hspec hspec-discover mtl
+         persistent template-haskell
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Persistent module discover utilities";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "persistent-documentation" = callPackage
     ({ mkDerivation, base, containers, hspec, hspec-discover, mtl
      , persistent, persistent-template, template-haskell, text
@@ -200737,6 +198937,8 @@ self: {
        pname = "persistent-documentation";
        version = "0.1.0.2";
        sha256 = "0ys864vjzl97c9qv0gg5q9zviammrfvm0schvh7ckr9pdg062z17";
+       revision = "1";
+       editedCabalFile = "0pzgmwqjyzpql7d6bk9xkzkjvm21giq7f420y4fqq4wli3g2cwmx";
        libraryHaskellDepends = [
          base containers mtl persistent template-haskell text
        ];
@@ -200747,6 +198949,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Documentation DSL for persistent entities";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "persistent-equivalence" = callPackage
@@ -200788,7 +198992,6 @@ self: {
        description = "Declare Persistent entities using SQL SELECT query syntax";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "persistent-instances-iproute" = callPackage
@@ -200833,7 +199036,6 @@ self: {
        description = "A thread-safe (STM) persistency interface for finite map types";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "persistent-migration" = callPackage
@@ -200845,8 +199047,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-migration";
-       version = "0.1.0";
-       sha256 = "025hrjm95klj4b7wqlzwkcwra5yj37ilirr06hxxw6d3g668rllm";
+       version = "0.2.1";
+       sha256 = "0jxhd9bkzcak48nz02g1s8rmbc9fkylf13p4vxkn3x26g2qlig7i";
        libraryHaskellDepends = [
          base containers fgl mtl persistent text time unordered-containers
        ];
@@ -200873,6 +199075,8 @@ self: {
        pname = "persistent-mongoDB";
        version = "2.12.0.0";
        sha256 = "1s49d4c4kiqcblkap96wcrp3nc0179vpzbqp4fdibljq9ylzxmzg";
+       revision = "1";
+       editedCabalFile = "047riy3grn68jw99095qgqxvfs5bvxmcvmnz170nrqflrlr4l4dd";
        libraryHaskellDepends = [
          aeson base bson bytestring cereal conduit http-api-data mongoDB
          network path-pieces persistent resource-pool resourcet text time
@@ -200916,56 +199120,28 @@ self: {
 
   "persistent-mysql" = callPackage
     ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit
-     , containers, fast-logger, hspec, HUnit, monad-logger, mysql
-     , mysql-simple, persistent, persistent-qq, persistent-template
-     , persistent-test, QuickCheck, quickcheck-instances, resource-pool
-     , resourcet, text, time, transformers, unliftio-core
+     , containers, fast-logger, hspec, http-api-data, HUnit
+     , monad-logger, mysql, mysql-simple, path-pieces, persistent
+     , persistent-qq, persistent-test, QuickCheck, quickcheck-instances
+     , resource-pool, resourcet, text, time, transformers, unliftio-core
      }:
      mkDerivation {
        pname = "persistent-mysql";
-       version = "2.10.3.1";
-       sha256 = "00gs2ym5vw2cqahv48cx8fhi3kx06rn0s1pafm8pdlr98snvwif7";
-       revision = "1";
-       editedCabalFile = "1nd3l499kpv2rfhqqjw1b3qsn558rwz3794cy2x493l98rsspszp";
+       version = "2.13.0.1";
+       sha256 = "1gl48xcsczpzipg9v107x970rzi66vr26772ml9z8szxygamgsdb";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit containers monad-logger
          mysql mysql-simple persistent resource-pool resourcet text
          transformers unliftio-core
        ];
        testHaskellDepends = [
-         base bytestring containers fast-logger hspec HUnit monad-logger
-         mysql persistent persistent-qq persistent-template persistent-test
-         QuickCheck quickcheck-instances resourcet text time transformers
-         unliftio-core
-       ];
-       description = "Backend for the persistent library using MySQL database server";
-       license = lib.licenses.mit;
-     }) {};
-
-  "persistent-mysql_2_12_0_0" = callPackage
-    ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit
-     , containers, fast-logger, hspec, HUnit, monad-logger, mysql
-     , mysql-simple, persistent, persistent-qq, persistent-test
-     , QuickCheck, quickcheck-instances, resource-pool, resourcet, text
-     , time, transformers, unliftio-core
-     }:
-     mkDerivation {
-       pname = "persistent-mysql";
-       version = "2.12.0.0";
-       sha256 = "0bvwlkch8pr94dv1fib85vdsdrjpdla1rm4lslrmpg0dysgni9p3";
-       libraryHaskellDepends = [
-         aeson base blaze-builder bytestring conduit containers monad-logger
-         mysql mysql-simple persistent resource-pool resourcet text
+         aeson base bytestring containers fast-logger hspec http-api-data
+         HUnit monad-logger mysql path-pieces persistent persistent-qq
+         persistent-test QuickCheck quickcheck-instances resourcet text time
          transformers unliftio-core
        ];
-       testHaskellDepends = [
-         base bytestring containers fast-logger hspec HUnit monad-logger
-         mysql persistent persistent-qq persistent-test QuickCheck
-         quickcheck-instances resourcet text time transformers unliftio-core
-       ];
        description = "Backend for the persistent library using MySQL database server";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "persistent-mysql-haskell" = callPackage
@@ -201060,16 +199236,19 @@ self: {
   "persistent-postgresql" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
      , conduit, containers, fast-logger, hspec, hspec-expectations
-     , HUnit, monad-logger, mtl, persistent, persistent-qq
-     , persistent-template, persistent-test, postgresql-libpq
-     , postgresql-simple, QuickCheck, quickcheck-instances
-     , resource-pool, resourcet, string-conversions, text, time
-     , transformers, unliftio-core, unordered-containers, vector
+     , hspec-expectations-lifted, http-api-data, HUnit, monad-logger
+     , mtl, path-pieces, persistent, persistent-qq, persistent-test
+     , postgresql-libpq, postgresql-simple, QuickCheck
+     , quickcheck-instances, resource-pool, resourcet
+     , string-conversions, text, time, transformers, unliftio
+     , unliftio-core, unordered-containers, vector
      }:
      mkDerivation {
        pname = "persistent-postgresql";
-       version = "2.11.0.1";
-       sha256 = "08bmf52fqjwzyw4dnvh2ql4q3ai05fzzicgd5z6bim13b9s4ggmk";
+       version = "2.13.0.1";
+       sha256 = "186anbb0sgml094pw1nb529pddi4q1af0mcv3xa8bshr1xywpnd8";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder bytestring conduit containers
          monad-logger mtl persistent postgresql-libpq postgresql-simple
@@ -201078,29 +199257,29 @@ self: {
        ];
        testHaskellDepends = [
          aeson base bytestring containers fast-logger hspec
-         hspec-expectations HUnit monad-logger persistent persistent-qq
-         persistent-template persistent-test QuickCheck quickcheck-instances
-         resourcet text time transformers unliftio-core unordered-containers
-         vector
+         hspec-expectations hspec-expectations-lifted http-api-data HUnit
+         monad-logger path-pieces persistent persistent-qq persistent-test
+         QuickCheck quickcheck-instances resourcet text time transformers
+         unliftio unliftio-core unordered-containers vector
        ];
        description = "Backend for the persistent library using postgresql";
        license = lib.licenses.mit;
      }) {};
 
-  "persistent-postgresql_2_12_1_1" = callPackage
+  "persistent-postgresql_2_13_0_2" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
      , conduit, containers, fast-logger, hspec, hspec-expectations
-     , hspec-expectations-lifted, HUnit, monad-logger, mtl, persistent
-     , persistent-qq, persistent-test, postgresql-libpq
-     , postgresql-simple, QuickCheck, quickcheck-instances
-     , resource-pool, resourcet, string-conversions, text, time
-     , transformers, unliftio, unliftio-core, unordered-containers
-     , vector
+     , hspec-expectations-lifted, http-api-data, HUnit, monad-logger
+     , mtl, path-pieces, persistent, persistent-qq, persistent-test
+     , postgresql-libpq, postgresql-simple, QuickCheck
+     , quickcheck-instances, resource-pool, resourcet
+     , string-conversions, text, time, transformers, unliftio
+     , unliftio-core, unordered-containers, vector
      }:
      mkDerivation {
        pname = "persistent-postgresql";
-       version = "2.12.1.1";
-       sha256 = "1zyh40490r3vjr5qyr8hp2ih1pjqjwbmwm1ashdm1b1n9y5ary53";
+       version = "2.13.0.2";
+       sha256 = "1cbrwzk2s3xrdxpas64slk1habn38xspdg09xj2yazszkmr31hrh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -201111,10 +199290,10 @@ self: {
        ];
        testHaskellDepends = [
          aeson base bytestring containers fast-logger hspec
-         hspec-expectations hspec-expectations-lifted HUnit monad-logger
-         persistent persistent-qq persistent-test QuickCheck
-         quickcheck-instances resourcet text time transformers unliftio
-         unliftio-core unordered-containers vector
+         hspec-expectations hspec-expectations-lifted http-api-data HUnit
+         monad-logger path-pieces persistent persistent-qq persistent-test
+         QuickCheck quickcheck-instances resourcet text time transformers
+         unliftio unliftio-core unordered-containers vector
        ];
        description = "Backend for the persistent library using postgresql";
        license = lib.licenses.mit;
@@ -201142,34 +199321,12 @@ self: {
   "persistent-qq" = callPackage
     ({ mkDerivation, aeson, base, bytestring, fast-logger
      , haskell-src-meta, hspec, HUnit, monad-logger, mtl, persistent
-     , persistent-sqlite, persistent-template, resourcet
-     , template-haskell, text, unliftio
-     }:
-     mkDerivation {
-       pname = "persistent-qq";
-       version = "2.9.2.1";
-       sha256 = "0gnwkrjyh9fkli35qp0mvivbsycz58ng26z6rfqv377hgrjsvjiq";
-       libraryHaskellDepends = [
-         base haskell-src-meta mtl persistent template-haskell text
-       ];
-       testHaskellDepends = [
-         aeson base bytestring fast-logger haskell-src-meta hspec HUnit
-         monad-logger mtl persistent persistent-sqlite persistent-template
-         resourcet template-haskell text unliftio
-       ];
-       description = "Provides a quasi-quoter for raw SQL for persistent";
-       license = lib.licenses.mit;
-     }) {};
-
-  "persistent-qq_2_12_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, fast-logger
-     , haskell-src-meta, hspec, HUnit, monad-logger, mtl, persistent
      , persistent-sqlite, resourcet, template-haskell, text, unliftio
      }:
      mkDerivation {
        pname = "persistent-qq";
-       version = "2.12.0.0";
-       sha256 = "1mw565rwnzdsw0vc0gs31z4l4pw8qxb70l898invj7dfnq5vj62f";
+       version = "2.12.0.1";
+       sha256 = "1dvniapxjaw2vmdqd5cplwxdxiy2l6z6gns8gp3ci3rn3xp0pf6p";
        libraryHaskellDepends = [
          base haskell-src-meta mtl persistent template-haskell text
        ];
@@ -201180,7 +199337,6 @@ self: {
        ];
        description = "Provides a quasi-quoter for raw SQL for persistent";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "persistent-ratelimit" = callPackage
@@ -201203,8 +199359,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-redis";
-       version = "2.12.0.0";
-       sha256 = "0zibmgvlpkx4knh23jnz2vam1la6w57x2cibrdn17h0zd3s872p5";
+       version = "2.13.0.0";
+       sha256 = "1d43rlcx0islf7gn14kpxi922zaz6k5x6s4k4xc947l2r1zx40qs";
        libraryHaskellDepends = [
          aeson base binary bytestring hedis http-api-data mtl path-pieces
          persistent scientific text time transformers utf8-string
@@ -201281,38 +199437,6 @@ self: {
   "persistent-sqlite" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, containers
      , exceptions, fast-logger, hspec, HUnit, microlens, microlens-th
-     , monad-logger, mtl, persistent, persistent-template
-     , persistent-test, QuickCheck, resource-pool, resourcet, sqlite
-     , system-fileio, system-filepath, temporary, text, time
-     , transformers, unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "persistent-sqlite";
-       version = "2.11.1.0";
-       sha256 = "04rdzcckdkvs8nisx0hh96sdfyly82yr8c0mx6nsxpyi7m52by9j";
-       configureFlags = [ "-fsystemlib" ];
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring conduit containers microlens-th monad-logger
-         mtl persistent resource-pool resourcet text time transformers
-         unliftio-core unordered-containers
-       ];
-       librarySystemDepends = [ sqlite ];
-       testHaskellDepends = [
-         base bytestring conduit containers exceptions fast-logger hspec
-         HUnit microlens monad-logger mtl persistent persistent-template
-         persistent-test QuickCheck resourcet system-fileio system-filepath
-         temporary text time transformers unliftio-core
-       ];
-       description = "Backend for the persistent library using sqlite3";
-       license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
-     }) {inherit (pkgs) sqlite;};
-
-  "persistent-sqlite_2_12_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, conduit, containers
-     , exceptions, fast-logger, hspec, HUnit, microlens, microlens-th
      , monad-logger, mtl, persistent, persistent-test, QuickCheck
      , resource-pool, resourcet, sqlite, system-fileio, system-filepath
      , temporary, text, time, transformers, unliftio-core
@@ -201320,8 +199444,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-sqlite";
-       version = "2.12.0.0";
-       sha256 = "0qwh2zrg1dqrv7i752jkqgqfxwjbdvkxmdgnzhcfzhgn6bq1018m";
+       version = "2.13.0.3";
+       sha256 = "12za89crbk74mya4qxpw5fp5fqp64vwz5s8vbjd7m8r3j3vbw338";
        configureFlags = [ "-fsystemlib" ];
        isLibrary = true;
        isExecutable = true;
@@ -201339,41 +199463,10 @@ self: {
        ];
        description = "Backend for the persistent library using sqlite3";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ psibi ];
      }) {inherit (pkgs) sqlite;};
 
   "persistent-template" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, criterion
-     , deepseq, deepseq-generics, file-embed, hspec, http-api-data
-     , monad-control, monad-logger, path-pieces, persistent, QuickCheck
-     , template-haskell, text, th-lift-instances, transformers
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "persistent-template";
-       version = "2.9.1.0";
-       sha256 = "19ilgz8r6p5wy111rb4v0d6cnrj8jfiv2pnzdynpxd9ay66vgbca";
-       revision = "2";
-       editedCabalFile = "1lyrnh2lskkbvpjhbjiyh2ibndldsr8zgaiws7n37pa3vnmfx0qw";
-       libraryHaskellDepends = [
-         aeson base bytestring containers http-api-data monad-control
-         monad-logger path-pieces persistent template-haskell text
-         th-lift-instances transformers unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring hspec persistent QuickCheck text
-       ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq deepseq-generics file-embed persistent
-         template-haskell text
-       ];
-       description = "Type-safe, non-relational, multi-backend persistence";
-       license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
-     }) {};
-
-  "persistent-template_2_12_0_0" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "persistent-template";
@@ -201383,7 +199476,6 @@ self: {
        doHaddock = false;
        description = "Type-safe, non-relational, multi-backend persistence";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ psibi ];
      }) {};
 
@@ -201393,8 +199485,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-template-classy";
-       version = "0.1.0.1";
-       sha256 = "0ph5cfm5gj6qydv70s9bmb5ynymqnrhqiwcqpd0s87xj2iv9v46a";
+       version = "0.2.0";
+       sha256 = "0grfr7bb0c9m4fhg27g4qch43mgjqfrzw2c0gi0arq5ibm3n17kk";
        libraryHaskellDepends = [
          base lens persistent persistent-sqlite persistent-template
          template-haskell text
@@ -201411,88 +199503,37 @@ self: {
 
   "persistent-test" = callPackage
     ({ mkDerivation, aeson, base, blaze-html, bytestring, conduit
-     , containers, exceptions, hspec, hspec-expectations, HUnit
-     , monad-control, monad-logger, mtl, path-pieces, persistent
-     , persistent-template, QuickCheck, quickcheck-instances, random
-     , resourcet, text, time, transformers, transformers-base, unliftio
-     , unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "persistent-test";
-       version = "2.0.3.5";
-       sha256 = "16m3nlmpwxibfhgrfl3xqh3a518bkrd7qaa8hklfq2qwlvjbb31v";
-       libraryHaskellDepends = [
-         aeson base blaze-html bytestring conduit containers exceptions
-         hspec hspec-expectations HUnit monad-control monad-logger mtl
-         path-pieces persistent persistent-template QuickCheck
-         quickcheck-instances random resourcet text time transformers
-         transformers-base unliftio unliftio-core unordered-containers
-       ];
-       description = "Tests for Persistent";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "persistent-test_2_12_0_0" = callPackage
-    ({ mkDerivation, aeson, base, blaze-html, bytestring, conduit
-     , containers, exceptions, hspec, hspec-expectations, HUnit
-     , monad-control, monad-logger, mtl, path-pieces, persistent
+     , containers, exceptions, hspec, hspec-expectations, http-api-data
+     , HUnit, monad-control, monad-logger, mtl, path-pieces, persistent
      , QuickCheck, quickcheck-instances, random, resourcet, text, time
      , transformers, transformers-base, unliftio, unliftio-core
      , unordered-containers
      }:
      mkDerivation {
        pname = "persistent-test";
-       version = "2.12.0.0";
-       sha256 = "0vn6f8wmax68qg27ifw2sfr3d0zk12p6gaax5xshwmb5ypamrc50";
+       version = "2.13.0.3";
+       sha256 = "07q53jvhz00cf10k7a8fkvykgwcl10fgzh8k9gv1d248f336crvs";
        libraryHaskellDepends = [
          aeson base blaze-html bytestring conduit containers exceptions
-         hspec hspec-expectations HUnit monad-control monad-logger mtl
-         path-pieces persistent QuickCheck quickcheck-instances random
-         resourcet text time transformers transformers-base unliftio
-         unliftio-core unordered-containers
+         hspec hspec-expectations http-api-data HUnit monad-control
+         monad-logger mtl path-pieces persistent QuickCheck
+         quickcheck-instances random resourcet text time transformers
+         transformers-base unliftio unliftio-core unordered-containers
        ];
        description = "Tests for Persistent";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "persistent-typed-db" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, esqueleto, hspec
-     , http-api-data, monad-logger, path-pieces, persistent
-     , persistent-template, resource-pool, resourcet, template-haskell
-     , text, transformers
-     }:
-     mkDerivation {
-       pname = "persistent-typed-db";
-       version = "0.1.0.2";
-       sha256 = "1pdhdb29b7gyaw3kh1vr76dyr7gvwpx9ymib17fzfsxks6s76dxc";
-       libraryHaskellDepends = [
-         aeson base bytestring conduit http-api-data monad-logger
-         path-pieces persistent persistent-template resource-pool resourcet
-         template-haskell text transformers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring conduit esqueleto hspec http-api-data
-         monad-logger path-pieces persistent persistent-template
-         resource-pool resourcet template-haskell text transformers
-       ];
-       description = "Type safe access to multiple database schemata";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "persistent-typed-db_0_1_0_3" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, conduit, esqueleto, hspec
-     , http-api-data, monad-logger, path-pieces, persistent
-     , persistent-template, resource-pool, resourcet, template-haskell
-     , text, transformers
+     , hspec-discover, http-api-data, monad-logger, path-pieces
+     , persistent, resource-pool, resourcet, template-haskell, text
+     , transformers
      }:
      mkDerivation {
        pname = "persistent-typed-db";
-       version = "0.1.0.3";
-       sha256 = "15x4qfk4bwafqa495y8dsywa5mrcfnmqm7pyn419p20yngnyhzn8";
+       version = "0.1.0.4";
+       sha256 = "1dd5kig6zkiq5qkqv63icz9z8mn0b56b06w6z980hi7a2bmp6pk8";
        libraryHaskellDepends = [
          aeson base bytestring conduit http-api-data monad-logger
          path-pieces persistent resource-pool resourcet template-haskell
@@ -201500,12 +199541,12 @@ self: {
        ];
        testHaskellDepends = [
          aeson base bytestring conduit esqueleto hspec http-api-data
-         monad-logger path-pieces persistent persistent-template
-         resource-pool resourcet template-haskell text transformers
+         monad-logger path-pieces persistent resource-pool resourcet
+         template-haskell text transformers
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Type safe access to multiple database schemata";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "persistent-vector" = callPackage
@@ -201523,8 +199564,6 @@ self: {
        benchmarkHaskellDepends = [ base containers criterion deepseq ];
        description = "A persistent sequence based on array mapped tries";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "persistent-zookeeper" = callPackage
@@ -201596,7 +199635,6 @@ self: {
        description = "Persona (BrowserID) Identity Provider";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pesca" = callPackage
@@ -201640,7 +199678,6 @@ self: {
        description = "Pretty Easy YOshikuni-made TLS library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "peyotls-codec" = callPackage
@@ -201659,7 +199696,6 @@ self: {
        description = "Codec parts of Pretty Easy YOshikuni-made TLS library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pez" = callPackage
@@ -201823,7 +199859,6 @@ self: {
        description = "A postgresql-simple transaction monad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pgdl" = callPackage
@@ -201857,8 +199892,8 @@ self: {
     ({ mkDerivation, base, containers, gu, pgf, pretty }:
      mkDerivation {
        pname = "pgf2";
-       version = "1.2.1";
-       sha256 = "10nbwhdirhlsh68f14z8y75wlbs9f9xcn8cbgkf47m74x71jqqb3";
+       version = "1.3.0";
+       sha256 = "1sd21p6f9m9l6xnf853v7lxj6j6sbsrd7i09y0w0lsysp86p8h7m";
        libraryHaskellDepends = [ base containers pretty ];
        librarySystemDepends = [ gu pgf ];
        description = "Bindings to the C version of the PGF runtime";
@@ -201913,7 +199948,6 @@ self: {
        description = "A mid-level PostgreSQL client library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pgstream" = callPackage
@@ -202203,7 +200237,6 @@ self: {
        description = "A generalization of the uniqueness-periods-vector-examples functionality";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "phonetic-languages-filters-array" = callPackage
@@ -202256,12 +200289,21 @@ self: {
      }) {};
 
   "phonetic-languages-phonetics-basics" = callPackage
-    ({ mkDerivation, base, mmsyn2-array, mmsyn5 }:
+    ({ mkDerivation, base, foldable-ix, lists-flines, mmsyn2-array
+     , mmsyn5
+     }:
      mkDerivation {
        pname = "phonetic-languages-phonetics-basics";
-       version = "0.3.2.0";
-       sha256 = "0r4f69ky1y45h6fys1821z45ccg30h61yc68x16cf839awfri92l";
-       libraryHaskellDepends = [ base mmsyn2-array mmsyn5 ];
+       version = "0.6.3.0";
+       sha256 = "1hc1wmq2syvi0xsbkrm52hd5k8j2kk80n45695zd85fqwbayhj2c";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base foldable-ix lists-flines mmsyn2-array mmsyn5
+       ];
+       executableHaskellDepends = [
+         base foldable-ix lists-flines mmsyn2-array mmsyn5
+       ];
        description = "A library for working with generalized phonetic languages usage";
        license = lib.licenses.mit;
      }) {};
@@ -202358,8 +200400,8 @@ self: {
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-examples-array";
-       version = "0.4.1.0";
-       sha256 = "02z7c3ngcj4dz473j0ha05qh5wviiy4qp1mk3p4gidxrhkgbxhyc";
+       version = "0.4.2.0";
+       sha256 = "02lv4w9v8jf7v6dkrwwmy79h7yphmk37n54r9whii6kicns80ff2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -202407,6 +200449,66 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-simplified-generalized-examples-array" = callPackage
+    ({ mkDerivation, base, heaps, mmsyn2-array, parallel
+     , phonetic-languages-constraints-array
+     , phonetic-languages-filters-array
+     , phonetic-languages-permutations-array
+     , phonetic-languages-phonetics-basics, phonetic-languages-plus
+     , phonetic-languages-simplified-base
+     , phonetic-languages-simplified-generalized-examples-common
+     , phonetic-languages-simplified-generalized-properties-array, subG
+     }:
+     mkDerivation {
+       pname = "phonetic-languages-simplified-generalized-examples-array";
+       version = "0.2.1.0";
+       sha256 = "0bz5lyl75i143crva3piz4005k81ia26rj455cgbgz3yknj3qpaf";
+       libraryHaskellDepends = [
+         base heaps mmsyn2-array parallel
+         phonetic-languages-constraints-array
+         phonetic-languages-filters-array
+         phonetic-languages-permutations-array
+         phonetic-languages-phonetics-basics phonetic-languages-plus
+         phonetic-languages-simplified-base
+         phonetic-languages-simplified-generalized-examples-common
+         phonetic-languages-simplified-generalized-properties-array subG
+       ];
+       description = "Helps to create texts with the given phonetic properties (e. g. poetic).";
+       license = lib.licenses.mit;
+     }) {};
+
+  "phonetic-languages-simplified-generalized-examples-common" = callPackage
+    ({ mkDerivation, base, heaps, phonetic-languages-phonetics-basics
+     , subG
+     }:
+     mkDerivation {
+       pname = "phonetic-languages-simplified-generalized-examples-common";
+       version = "0.1.2.0";
+       sha256 = "1k65ynaz2mh35nqsf3izqq0lxqbkyj24i1g3r3gbfpbkajdhqz0v";
+       libraryHaskellDepends = [
+         base heaps phonetic-languages-phonetics-basics subG
+       ];
+       description = "Some common code for phonetic languages generalized functionality";
+       license = lib.licenses.mit;
+     }) {};
+
+  "phonetic-languages-simplified-generalized-properties-array" = callPackage
+    ({ mkDerivation, base, phonetic-languages-phonetics-basics
+     , phonetic-languages-rhythmicity
+     , phonetic-languages-simplified-base
+     }:
+     mkDerivation {
+       pname = "phonetic-languages-simplified-generalized-properties-array";
+       version = "0.1.2.0";
+       sha256 = "1vlzgcq8pv22m9pxwx0p1xss9zzlvwap11gn88pdgn0zgkhcsm0b";
+       libraryHaskellDepends = [
+         base phonetic-languages-phonetics-basics
+         phonetic-languages-rhythmicity phonetic-languages-simplified-base
+       ];
+       description = "Generalization of the functionality of the phonetic-languages-simplified-properties-array";
+       license = lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-simplified-lists-examples" = callPackage
     ({ mkDerivation, base, heaps, mmsyn2, parallel
      , phonetic-languages-constraints, phonetic-languages-permutations
@@ -202440,7 +200542,6 @@ self: {
        description = "Simplified and somewhat optimized version of the phonetic-languages-examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "phonetic-languages-simplified-properties-array" = callPackage
@@ -202547,7 +200648,6 @@ self: {
        description = "Functional user interfaces";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "photoname" = callPackage
@@ -202570,7 +200670,6 @@ self: {
        description = "Rename photo image files based on EXIF shoot date";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "phraskell" = callPackage
@@ -202771,7 +200870,6 @@ self: {
        description = "Remotely controlling Java Swing applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "picedit" = callPackage
@@ -202934,7 +201032,6 @@ self: {
        description = "Yet another Haskell build system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pier-core" = callPackage
@@ -203027,8 +201124,6 @@ self: {
        ];
        description = "Access to the Pinboard API";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pinboard-notes-backup" = callPackage
@@ -203049,6 +201144,7 @@ self: {
        ];
        description = "Back up the notes you've saved to Pinboard";
        license = lib.licenses.gpl3Only;
+       maintainers = with lib.maintainers; [ bdesham ];
      }) {};
 
   "pinch" = callPackage
@@ -203084,8 +201180,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinch-gen";
-       version = "0.4.0.0";
-       sha256 = "03fpcy2mdq83mpx4hv6x57csdwd07pkqcfqc0wd10zys77i75s46";
+       version = "0.4.2.0";
+       sha256 = "0saacr8q2varfqcq386dk9k04caijm90yi106wyl88pn3f5piaq3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -203094,8 +201190,6 @@ self: {
        ];
        description = "A code generator for the pinch Thrift library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pinchot" = callPackage
@@ -203158,7 +201252,6 @@ self: {
        description = "icmp echo requests";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ping-parser-attoparsec" = callPackage
@@ -203205,6 +201298,22 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "pinned-warnings" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, ghc
+     , tasty, tasty-hunit, time, transformers
+     }:
+     mkDerivation {
+       pname = "pinned-warnings";
+       version = "0.1.0.6";
+       sha256 = "1n0h2v71x3j0wn0g2f3zq3xw681s16hl7ffywi83z50hacd8x6kx";
+       libraryHaskellDepends = [
+         base bytestring containers directory ghc time transformers
+       ];
+       testHaskellDepends = [ base bytestring tasty tasty-hunit ];
+       description = "Preserve warnings in a GHCi session";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "pinpon" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, amazonka, amazonka-core
      , amazonka-sns, base, bytestring, containers, doctest, exceptions
@@ -203238,7 +201347,6 @@ self: {
        description = "A gateway for various cloud notification services";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipe-enumerator" = callPackage
@@ -203251,7 +201359,6 @@ self: {
        description = "A bidirectional bridge between pipes and iteratees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipeclip" = callPackage
@@ -203309,8 +201416,8 @@ self: {
      }:
      mkDerivation {
        pname = "pipes";
-       version = "4.3.15";
-       sha256 = "01hvzm7cp6y3wrdhca3wlb99y0az0rjy5lscmnds0v6i767kyxk1";
+       version = "4.3.16";
+       sha256 = "163lx5sf68zx5kik5h1fjsyckwr9shdsn5k2dsjq3mhg077nxqgl";
        libraryHaskellDepends = [
          base exceptions mmorph mtl transformers void
        ];
@@ -203323,6 +201430,7 @@ self: {
        ];
        description = "Compositional pipelines";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-aeson" = callPackage
@@ -203401,7 +201509,6 @@ self: {
        description = "Streaming parsing in the pipes-core framework with Attoparsec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-bgzf" = callPackage
@@ -203473,7 +201580,6 @@ self: {
        description = "Brotli (RFC7932) compressors and decompressors for the Pipes package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-bytestring" = callPackage
@@ -203490,6 +201596,7 @@ self: {
        ];
        description = "ByteString support for pipes";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-bzip" = callPackage
@@ -203530,7 +201637,6 @@ self: {
        description = "Pipes for Noise-secured network connections";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-category" = callPackage
@@ -203624,7 +201730,6 @@ self: {
        description = "A streaming serialization library on top of \"pipes\" and \"cereal-plus\"";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-cliff" = callPackage
@@ -203660,6 +201765,7 @@ self: {
        testHaskellDepends = [ async base pipes stm ];
        description = "Concurrency for the pipes ecosystem";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-conduit" = callPackage
@@ -203672,7 +201778,6 @@ self: {
        description = "Conduit adapters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-core" = callPackage
@@ -203702,7 +201807,6 @@ self: {
        description = "Pipes utilities for interfacing with the courier message-passing framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-csv" = callPackage
@@ -203724,6 +201828,7 @@ self: {
        ];
        description = "Fast, streaming csv parser";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-errors" = callPackage
@@ -203765,7 +201870,6 @@ self: {
        description = "Various basic utilities for Pipes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-extras" = callPackage
@@ -203784,6 +201888,7 @@ self: {
        ];
        description = "Extra utilities for pipes";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-fastx" = callPackage
@@ -203827,7 +201932,6 @@ self: {
        description = "Fast traversal of directory trees using pipes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-fluid" = callPackage
@@ -203868,6 +201972,7 @@ self: {
        testHaskellDepends = [ base doctest lens-family-core ];
        description = "Group streams into substreams";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-http" = callPackage
@@ -203885,6 +201990,7 @@ self: {
        ];
        description = "HTTP client with pipes interface";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-illumina" = callPackage
@@ -203901,7 +202007,6 @@ self: {
        description = "Illumina NGS data processing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-interleave" = callPackage
@@ -203974,7 +202079,6 @@ self: {
        description = "Streaming processing of CSV files preceded by key-value pairs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-lines" = callPackage
@@ -204042,8 +202146,6 @@ self: {
        testHaskellDepends = [ base monad-control mongoDB pipes text ];
        description = "Stream results from MongoDB";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-network" = callPackage
@@ -204120,7 +202222,6 @@ self: {
        description = "P2P network nodes with pipes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-p2p-examples" = callPackage
@@ -204140,7 +202241,6 @@ self: {
        description = "Examples using pipes-p2p";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pipes-parse" = callPackage
@@ -204152,6 +202252,7 @@ self: {
        libraryHaskellDepends = [ base pipes transformers ];
        description = "Parsing infrastructure for the pipes ecosystem";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-postgresql-simple" = callPackage
@@ -204274,6 +202375,7 @@ self: {
        ];
        description = "Safety for the pipes ecosystem";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "pipes-shell" = callPackage
@@ -204462,7 +202564,6 @@ self: {
        description = "A dependently typed core language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pit" = callPackage
@@ -204508,7 +202609,6 @@ self: {
        description = "Pitch tracking library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pivotal-tracker" = callPackage
@@ -204626,8 +202726,6 @@ self: {
        ];
        description = "Pixiv API binding based on servant-client";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "piyo" = callPackage
@@ -204652,6 +202750,9 @@ self: {
        ];
        description = "Haskell game engine like fantasy console";
        license = lib.licenses.mit;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "pkcs1" = callPackage
@@ -204718,27 +202819,6 @@ self: {
      }) {};
 
   "pkgtreediff" = callPackage
-    ({ mkDerivation, async, base, directory, filepath, Glob
-     , http-client, http-client-tls, http-directory, simple-cmd
-     , simple-cmd-args, text
-     }:
-     mkDerivation {
-       pname = "pkgtreediff";
-       version = "0.4";
-       sha256 = "00cah2sbfx824zvg4ywm3qw8rkibflj9lmw1z0ywsalgdmmlp460";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         async base directory filepath Glob http-client http-client-tls
-         http-directory simple-cmd simple-cmd-args text
-       ];
-       description = "Package tree diff tool";
-       license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "pkgtreediff_0_4_1" = callPackage
     ({ mkDerivation, async, base, directory, extra, filepath, Glob
      , http-client, http-client-tls, http-directory, koji, simple-cmd
      , simple-cmd-args, text
@@ -204757,7 +202837,6 @@ self: {
        description = "Package tree diff tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pktree" = callPackage
@@ -204979,7 +203058,6 @@ self: {
        description = "Planet Mitchell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "planet-mitchell-test" = callPackage
@@ -205183,7 +203261,6 @@ self: {
        description = "plot data from stdin through socketed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "plot" = callPackage
@@ -205303,6 +203380,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ploterific" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, colour, containers
+     , hvega, hvega-theme, lens, mtl, optparse-generic, palette, text
+     }:
+     mkDerivation {
+       pname = "ploterific";
+       version = "0.2.1.1";
+       sha256 = "1i5rgbnvi7s5rq13kj4fnanzmalzh53rim0r3nxxa82i25nb1sfq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring cassava colour containers hvega hvega-theme lens
+         mtl optparse-generic palette text
+       ];
+       executableHaskellDepends = [ base mtl optparse-generic text ];
+       description = "Basic plotting of tabular data for the command line";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "plotfont" = callPackage
     ({ mkDerivation, base, containers, tasty, tasty-hunit }:
      mkDerivation {
@@ -205373,8 +203470,6 @@ self: {
        ];
        description = "Diagrams based plotting library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "plotserver-api" = callPackage
@@ -205415,8 +203510,6 @@ self: {
        ];
        description = "Dynamic linking for Haskell and C objects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "plugins-auto" = callPackage
@@ -205552,7 +203645,6 @@ self: {
        description = "read/write png file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pngload" = callPackage
@@ -205570,7 +203662,6 @@ self: {
        description = "Pure Haskell loader for PNG images";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pngload-fixed" = callPackage
@@ -205648,7 +203739,6 @@ self: {
        description = "Multi-backend (zookeeper and sqlite) DNS Server using persistent-library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "point-octree" = callPackage
@@ -205668,7 +203758,6 @@ self: {
        description = "Point octree, with bounding boxes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pointed" = callPackage
@@ -205719,8 +203808,8 @@ self: {
      }:
      mkDerivation {
        pname = "pointfree";
-       version = "1.1.1.7";
-       sha256 = "19yvkh4akcsiy0blmrwy7ayirg729s3vs4w0qkb2w171aas34090";
+       version = "1.1.1.8";
+       sha256 = "0jfl6sp0kv2fdjdhzn85j3hb7a83w9g64girs67v6j53yljqx8vz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -205820,7 +203909,6 @@ self: {
        description = "Pointless Lenses library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pointless-rewrite" = callPackage
@@ -205837,7 +203925,6 @@ self: {
        description = "Pointless Rewrite library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "poke" = callPackage
@@ -205870,7 +203957,6 @@ self: {
        description = "Discord verification bot";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pokemon-go-protobuf-types" = callPackage
@@ -205980,7 +204066,6 @@ self: {
        description = "A library for manipulating the historical dictionary of Polish (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "policeman" = callPackage
@@ -206130,7 +204215,6 @@ self: {
        description = "Wrap together data and it's constraints";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polydata-core" = callPackage
@@ -206269,8 +204353,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-RandomFu";
-       version = "0.4.1.0";
-       sha256 = "1gr7nyzz1wwl7c22q21c8y8r94b8sp0r5kma20w3avg6p0l53bm3";
+       version = "0.4.2.0";
+       sha256 = "0rsmdp7p0asmaf13wf5ky0ngrmnqdfbi67y4a0vcwqvknqmlys2y";
        libraryHaskellDepends = [
          base polysemy polysemy-plugin polysemy-zoo random-fu random-source
        ];
@@ -206282,7 +204366,6 @@ self: {
        description = "Experimental, RandomFu effect and interpreters for polysemy";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-chronos" = callPackage
@@ -206304,8 +204387,6 @@ self: {
        ];
        description = "Polysemy effect for chronos";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-conc" = callPackage
@@ -206329,8 +204410,6 @@ self: {
        ];
        description = "Polysemy Effects for Concurrency";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-extra" = callPackage
@@ -206346,6 +204425,7 @@ self: {
        ];
        description = "Extra Input and Output functions for polysemy..";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-fs" = callPackage
@@ -206376,6 +204456,7 @@ self: {
        ];
        description = "Run a KVStore as a filesystem in polysemy";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-http" = callPackage
@@ -206405,8 +204486,6 @@ self: {
        ];
        description = "Polysemy effect for http-client";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-kvstore-jsonfile" = callPackage
@@ -206423,6 +204502,7 @@ self: {
        ];
        description = "Run a KVStore as a single json file in polysemy";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-log" = callPackage
@@ -206446,8 +204526,6 @@ self: {
        ];
        description = "Polysemy effects for logging";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-log-co" = callPackage
@@ -206471,7 +204549,6 @@ self: {
        description = "polysemy-log interpreter for co-log";
        license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-log-di" = callPackage
@@ -206493,8 +204570,6 @@ self: {
        ];
        description = "polysemy-log interpreter for di";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-methodology" = callPackage
@@ -206511,7 +204586,6 @@ self: {
        description = "Domain modelling algebra for polysemy";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-methodology-composite" = callPackage
@@ -206529,7 +204603,6 @@ self: {
        description = "Functions for using polysemy-methodology with composite";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-mocks" = callPackage
@@ -206557,7 +204630,6 @@ self: {
        description = "Optics for Polysemy";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-path" = callPackage
@@ -206574,7 +204646,6 @@ self: {
        description = "Polysemy versions of Path functions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-plugin" = callPackage
@@ -206615,8 +204686,6 @@ self: {
        ];
        description = "Polysemy error tracking";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-test" = callPackage
@@ -206641,8 +204710,6 @@ self: {
        ];
        description = "Polysemy effects for testing";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-time" = callPackage
@@ -206666,8 +204733,6 @@ self: {
        ];
        description = "Polysemy effect for time";
        license = "BSD-2-Clause-Patent";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysemy-video" = callPackage
@@ -206693,6 +204758,7 @@ self: {
        libraryHaskellDepends = [ base polysemy polysemy-extra vinyl ];
        description = "Functions for mapping vinyl records in polysemy";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-webserver" = callPackage
@@ -206738,6 +204804,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Experimental, user-contributed effects and interpreters for polysemy";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "polyseq" = callPackage
@@ -206759,7 +204827,6 @@ self: {
        description = "Taming Selective Strictness";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polysoup" = callPackage
@@ -206798,7 +204865,6 @@ self: {
        description = "Utilities for polytypeable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "polyvariadic" = callPackage
@@ -206836,8 +204902,6 @@ self: {
        ];
        description = "Maps and sets of partial orders";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pomodoro" = callPackage
@@ -206857,7 +204921,6 @@ self: {
        description = "pomodoro timer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pomohoro" = callPackage
@@ -206983,8 +205046,6 @@ self: {
        ];
        description = "An XMPP client library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pontarius-xmpp-extras" = callPackage
@@ -207109,7 +205170,6 @@ self: {
        description = "popenhs is a popen-like library for Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "popkey" = callPackage
@@ -207210,7 +205270,6 @@ self: {
        description = "Express portable, composable and reusable data tasks and pipelines";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "porcupine-http" = callPackage
@@ -207240,7 +205299,6 @@ self: {
        description = "A location accessor for porcupine to connect to HTTP sources/sinks";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "porcupine-s3" = callPackage
@@ -207272,7 +205330,6 @@ self: {
        description = "A location accessor for porcupine to connect to AWS S3 sources/sinks";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "porpoise" = callPackage
@@ -207401,7 +205458,6 @@ self: {
        description = "The Haskell Ports Library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ports-tools" = callPackage
@@ -207437,7 +205493,6 @@ self: {
        description = "Simple extensible library to run SQL file against PostgreSQL database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "poseidon-postgis" = callPackage
@@ -207459,7 +205514,6 @@ self: {
        description = "Extension of Poseidon library for Postgis (Spatial and Geographic objects for PostgreSQL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "positive" = callPackage
@@ -207529,6 +205583,9 @@ self: {
        ];
        description = "posix bindings";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) systemd;};
@@ -207569,13 +205626,13 @@ self: {
 
   "posix-paths" = callPackage
     ({ mkDerivation, base, bytestring, criterion, directory, doctest
-     , filepath, HUnit, process, QuickCheck, unix
+     , filepath, HUnit, process, QuickCheck, unix, unliftio
      }:
      mkDerivation {
        pname = "posix-paths";
-       version = "0.2.1.6";
-       sha256 = "0ibycc7z3gm6jr83cgsqwa7hkky2ldfqqd30ickgq6vn2rkp8fbj";
-       libraryHaskellDepends = [ base bytestring unix ];
+       version = "0.3.0.0";
+       sha256 = "1ljphynpaaibs9zjxwk1b774q66s3biinfx2sgdzxyzssbl9va42";
+       libraryHaskellDepends = [ base bytestring unix unliftio ];
        testHaskellDepends = [
          base bytestring doctest HUnit QuickCheck unix
        ];
@@ -208114,7 +206171,6 @@ self: {
        description = "Sql interpolating quasiquote plus some kind of primitive ORM using it";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postgresql-schema" = callPackage
@@ -208213,6 +206269,8 @@ self: {
        pname = "postgresql-simple-migration";
        version = "0.1.15.0";
        sha256 = "0j6nhyknxlmpl0yrdj1pifw1fbb24080jgg64grnhqjwh1d44dvd";
+       revision = "1";
+       editedCabalFile = "1a0a5295j207x0pzbhy5inv8qimrh76dmmp26zgaw073n1i8yg8j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -208226,8 +206284,6 @@ self: {
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postgresql-simple-named" = callPackage
@@ -208298,7 +206354,6 @@ self: {
        description = "A PostgreSQL backed queue";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postgresql-simple-sop" = callPackage
@@ -208329,7 +206384,6 @@ self: {
        description = "Typed extension for PostgreSQL simple";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postgresql-simple-url" = callPackage
@@ -208433,7 +206487,6 @@ self: {
        description = "postgresql-tx interfacing for use with postgresql-query";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postgresql-tx-simple" = callPackage
@@ -208466,7 +206519,6 @@ self: {
        description = "postgresql-tx interfacing for use with squeal-postgresql";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postgresql-tx-squeal-compat-simple" = callPackage
@@ -208481,7 +206533,6 @@ self: {
        description = "Connection interop from postgresql-simple connections to postgresql-libpq connections";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postgresql-typed" = callPackage
@@ -208652,7 +206703,6 @@ self: {
        description = "Library for postmarkapp.com HTTP Api";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "postmark-streams" = callPackage
@@ -208720,7 +206770,6 @@ self: {
        description = "Simple streaming in IO";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "potoki-cereal" = callPackage
@@ -208744,7 +206793,6 @@ self: {
        description = "Streaming serialization";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "potoki-conduit" = callPackage
@@ -208768,7 +206816,6 @@ self: {
        description = "Integration of \"potoki\" and \"conduit\"";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "potoki-core" = callPackage
@@ -208814,7 +206861,6 @@ self: {
        description = "Integration of \"potoki\" and \"hasql\"";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "potoki-zlib" = callPackage
@@ -208829,7 +206875,6 @@ self: {
        description = "Streaming ZLib decompression";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "potrace" = callPackage
@@ -208859,6 +206904,28 @@ self: {
        libraryHaskellDepends = [ base diagrams-lib JuicyPixels potrace ];
        description = "Potrace bindings for the diagrams library";
        license = lib.licenses.gpl2Only;
+     }) {};
+
+  "powerdns" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, containers, deepseq, http-client, servant
+     , servant-client, servant-client-core, tasty, tasty-hunit, text
+     , time
+     }:
+     mkDerivation {
+       pname = "powerdns";
+       version = "0.1";
+       sha256 = "1fg698m3qmm5f0g0fl394hx593pwg7ai730imwahv00fr846lqm1";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring case-insensitive containers
+         deepseq servant servant-client servant-client-core text time
+       ];
+       testHaskellDepends = [
+         base http-client servant-client servant-client-core tasty
+         tasty-hunit
+       ];
+       description = "PowerDNS API bindings for api/v1";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -208963,7 +207030,6 @@ self: {
        description = "A Amazon SQS backend for powerqueue";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ppm" = callPackage
@@ -209052,7 +207118,6 @@ self: {
        description = "Fully encapsulated monad transformers with queuelike functionality";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "practice-room" = callPackage
@@ -209072,7 +207137,6 @@ self: {
        description = "Practice Room";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "praglude" = callPackage
@@ -209201,7 +207265,6 @@ self: {
        description = "Simple cached predicates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pred-trie" = callPackage
@@ -209231,7 +207294,6 @@ self: {
        description = "Predicative tries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "predicate-class" = callPackage
@@ -209256,8 +207318,6 @@ self: {
        libraryHaskellDepends = [ adjunctions base deepseq lens mtl ];
        description = "A library for writing predicates and transformations over predicates in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "predicate-typed" = callPackage
@@ -209354,7 +207414,6 @@ self: {
        description = "Tests and QuickCheck generators to accompany prednote";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prefetch" = callPackage
@@ -209725,7 +207784,6 @@ self: {
        description = "An HDBC connector for Presto";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prettify" = callPackage
@@ -210018,8 +208076,6 @@ self: {
        testHaskellDepends = [ base hspec tagged ];
        description = "A small pretty printing DSL for complex types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prettyFunctionComposing" = callPackage
@@ -210165,8 +208221,6 @@ self: {
        libraryHaskellDepends = [ base lucid prettyprinter text ];
        description = "A prettyprinter backend for lucid";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prettyprinter-vty" = callPackage
@@ -210198,7 +208252,6 @@ self: {
        description = "The method of previewing data (instead of wholly show-ing it)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prim" = callPackage
@@ -210299,8 +208352,6 @@ self: {
        ];
        description = "Primeval world of Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "primal-memory" = callPackage
@@ -210320,8 +208371,6 @@ self: {
        ];
        description = "Unified interface for memory managemenet";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prime" = callPackage
@@ -210386,8 +208435,8 @@ self: {
        pname = "primitive";
        version = "0.7.1.0";
        sha256 = "1w53i4mk248g58xrffmksznr4nmn2bbbycajzpcqfxx5ybyyrsvb";
-       revision = "2";
-       editedCabalFile = "1m08slj8m596z4pqsw3ag25ijhzlv9ki809ydh4nbin141bpsdgn";
+       revision = "3";
+       editedCabalFile = "03vgkhib8w3g0m0zwpz74hsixrf0pvgh6ql0xcy05fpq1kynppi9";
        libraryHaskellDepends = [ base deepseq transformers ];
        testHaskellDepends = [
          base base-orphans ghc-prim QuickCheck quickcheck-classes-base
@@ -210459,8 +208508,6 @@ self: {
        ];
        description = "containers backed by arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "primitive-convenience" = callPackage
@@ -210590,8 +208637,6 @@ self: {
        benchmarkHaskellDepends = [ base gauge ghc-prim primitive random ];
        description = "Sort primitive arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "primitive-stablename" = callPackage
@@ -210672,7 +208717,6 @@ self: {
        description = "ImageBoard on Happstack and HSP";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "primula-bot" = callPackage
@@ -210692,7 +208736,6 @@ self: {
        description = "Jabber-bot for primula-board ImageBoard";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pringletons" = callPackage
@@ -210959,7 +209002,6 @@ self: {
        description = "Parse process information for Linux";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "proc-net" = callPackage
@@ -211050,7 +209092,6 @@ self: {
        description = "IterIO Process Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "process-leksah" = callPackage
@@ -211099,7 +209140,6 @@ self: {
        description = "Run a process and do reportsing on its progress";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "process-qq" = callPackage
@@ -211117,7 +209157,6 @@ self: {
        description = "Quasi-Quoters for exec process";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "process-sequential" = callPackage
@@ -211161,7 +209200,6 @@ self: {
        description = "Streaming interface to system processes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "processing" = callPackage
@@ -211300,7 +209338,6 @@ self: {
        description = "Simple streaming datatype";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "product" = callPackage
@@ -211375,7 +209412,6 @@ self: {
        description = "Convert GHC profiles into GraphViz's dot format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prof2pretty" = callPackage
@@ -211423,8 +209459,8 @@ self: {
      }:
      mkDerivation {
        pname = "profiteur";
-       version = "0.4.5.1";
-       sha256 = "0mq2fal93v42rkgiq0xwqzqc413dgkiawa09bxgv0sgajzslqx80";
+       version = "0.4.6.0";
+       sha256 = "0jkrx34hymx70aqxjcnw2a7pdiw1hy4nc6m2larjrgxjczshpfqx";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -211599,7 +209635,6 @@ self: {
        description = "Progressbar API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "progression" = callPackage
@@ -211723,7 +209758,6 @@ self: {
        description = "Relational Algebra Engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "project-template" = callPackage
@@ -211807,8 +209841,6 @@ self: {
        ];
        description = "Profunctor-based lightweight implementation of optics";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prolog" = callPackage
@@ -211881,7 +209913,6 @@ self: {
        description = "Better, more general Prelude exporting common utilities";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prolude" = callPackage
@@ -211904,7 +209935,6 @@ self: {
        description = "ITProTV's custom prelude";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prometheus" = callPackage
@@ -211976,7 +210006,6 @@ self: {
        description = "Instrument applications with metrics and publish/push to Prometheus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prometheus-metrics-ghc" = callPackage
@@ -212115,7 +210144,6 @@ self: {
        description = "Functional synthesis of images and animations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "propeller" = callPackage
@@ -212206,7 +210234,6 @@ self: {
        description = "A library for functional GUI development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "props" = callPackage
@@ -212265,7 +210292,6 @@ self: {
        description = "A DSL for processing Prosidy documents";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "prospect" = callPackage
@@ -212382,7 +210408,6 @@ self: {
        description = "neovim project manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "proto-lens" = callPackage
@@ -212461,7 +210486,6 @@ self: {
        description = "Protocol buffers for describing the definitions of messages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "proto-lens-jsonpb" = callPackage
@@ -212575,12 +210599,13 @@ self: {
      , optparse-applicative, optparse-generic, parsec, parsers, pretty
      , pretty-show, proto3-wire, QuickCheck, quickcheck-instances
      , range-set-list, safe, swagger2, system-filepath, tasty
-     , tasty-hunit, tasty-quickcheck, text, transformers, turtle, vector
+     , tasty-hunit, tasty-quickcheck, text, time, transformers, turtle
+     , vector
      }:
      mkDerivation {
        pname = "proto3-suite";
-       version = "0.4.1";
-       sha256 = "1zzw3kgxa875g0bpqi1zblw3q8h7lw53gcz4c8qjgkr2v1cr5nf3";
+       version = "0.4.2";
+       sha256 = "015cg6brf6v0h2h2d36hqqr9i69vr30bhc35av55v0d65ya0sczz";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -212590,7 +210615,7 @@ self: {
          hashable haskell-src insert-ordered-containers lens mtl
          neat-interpolation parsec parsers pretty pretty-show proto3-wire
          QuickCheck quickcheck-instances safe swagger2 system-filepath text
-         transformers turtle vector
+         time transformers turtle vector
        ];
        executableHaskellDepends = [
          base containers mtl optparse-applicative optparse-generic
@@ -212605,7 +210630,6 @@ self: {
        description = "A low level library for writing out data in the Protocol Buffers wire format";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "proto3-wire" = callPackage
@@ -212616,35 +210640,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto3-wire";
-       version = "1.2.0";
-       sha256 = "1xrnrh4njnw6af8xxg9xhcxrscg0g644jx4l9an4iqz6xmjp2nk2";
-       revision = "1";
-       editedCabalFile = "14cjzgh364b836sg7szwrkvmm19hg8w57hdbsrsgwa7k9rhqi349";
-       libraryHaskellDepends = [
-         base bytestring cereal containers deepseq ghc-prim hashable
-         parameterized primitive QuickCheck safe text transformers
-         unordered-containers vector
-       ];
-       testHaskellDepends = [
-         base bytestring cereal doctest QuickCheck tasty tasty-hunit
-         tasty-quickcheck text transformers vector
-       ];
-       description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
-       license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "proto3-wire_1_2_1" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, containers, deepseq
-     , doctest, ghc-prim, hashable, parameterized, primitive, QuickCheck
-     , safe, tasty, tasty-hunit, tasty-quickcheck, text, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "proto3-wire";
-       version = "1.2.1";
-       sha256 = "0i706y9j5iq5zyi86vkiybznp3b4h2x0flvq3jmr8mgpgahvh94r";
+       version = "1.2.2";
+       sha256 = "1fdzml0nsbz1bqf3lskvmfn46pgl5rnrc4b7azq8f0csm0v9ah4d";
        libraryHaskellDepends = [
          base bytestring cereal containers deepseq ghc-prim hashable
          parameterized primitive QuickCheck safe text transformers
@@ -212656,8 +210653,6 @@ self: {
        ];
        description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "protobuf" = callPackage
@@ -212703,7 +210698,6 @@ self: {
        description = "Protocol Buffers via C++";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "protobuf-simple" = callPackage
@@ -212792,7 +210786,6 @@ self: {
        description = "Text.DescriptorProto.Options and code generated from the Google Protocol Buffer specification";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "protocol-buffers-fork" = callPackage
@@ -212888,8 +210881,8 @@ self: {
      }:
      mkDerivation {
        pname = "proton";
-       version = "0.0.3";
-       sha256 = "0w68v8sglyg99jni1p1cz6x87cm6x1ayll08wlijaiwpqc2pma2n";
+       version = "0.0.4";
+       sha256 = "1z8w3ymn893jgzanxp89x6kga9d79kggvcgkm9mhwd9q88h97v91";
        libraryHaskellDepends = [
          adjunctions async base bifunctors comonad compactable containers
          contravariant distributive folds linear mtl profunctors tagged
@@ -212897,7 +210890,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "proton-haskell" = callPackage
@@ -212961,8 +210953,8 @@ self: {
      }:
      mkDerivation {
        pname = "provenience";
-       version = "0.1.1.0";
-       sha256 = "020kfw1laishiqy8npg2f2llq7dv1djii0d0khjfw7f1scy4x10n";
+       version = "0.1.2.0";
+       sha256 = "0irhlscjq3anfhzn2qs28w4k6z48p557a060iqpimjw2kjkyrr4d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -213081,7 +211073,6 @@ self: {
        description = "Language support for the PureScript programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pseudo-boolean" = callPackage
@@ -213092,10 +211083,8 @@ self: {
      }:
      mkDerivation {
        pname = "pseudo-boolean";
-       version = "0.1.9.0";
-       sha256 = "00n5mf7abprhr9xvh3k1mw40jn4l94wwxpc2h0546h0n9v7srb1b";
-       revision = "3";
-       editedCabalFile = "0x0a5rjylmh4pdmr9iyadywzh06qxypq48b78skvm09bkkvrxghq";
+       version = "0.1.10.0";
+       sha256 = "1p9w1d80d2kp7wp7wp6xf9dz1iv9knhy8b75mklz7zq3cf5gvnrh";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder containers deepseq
          dlist hashable megaparsec parsec void
@@ -213106,8 +211095,6 @@ self: {
        ];
        description = "Reading/Writing OPB/WBO files used in pseudo boolean competition";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pseudo-trie" = callPackage
@@ -213348,26 +211335,27 @@ self: {
 
   "publish" = callPackage
     ({ mkDerivation, base, bytestring, chronologique, core-data
-     , core-program, core-text, deepseq, directory, filepath, hinotify
-     , hspec, megaparsec, pandoc, pandoc-types, template-haskell, text
+     , core-program, core-text, deepseq, directory, filepath, hspec
+     , megaparsec, pandoc, pandoc-types, template-haskell, text
      , typed-process, unix, unordered-containers
      }:
      mkDerivation {
        pname = "publish";
-       version = "2.1.5";
-       sha256 = "1ncz9bijln0xmkmy5x6lv4w6xiqr08crgqiyb8cchc88dqacddhi";
+       version = "2.2.2";
+       sha256 = "19bvdldggklzq6wqgcbvnf4jjlbdbh1l80dm92aj0405a9rhsa28";
+       revision = "2";
+       editedCabalFile = "19ajwrsd1l9p4cm9ckii5i6nb5w28sxl7kr129xz8kwkpj4z6lfq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          base bytestring chronologique core-data core-program core-text
-         deepseq directory filepath hinotify megaparsec pandoc pandoc-types
+         deepseq directory filepath megaparsec pandoc pandoc-types
          template-haskell text typed-process unix unordered-containers
        ];
        testHaskellDepends = [
          base bytestring chronologique core-data core-program core-text
-         deepseq directory filepath hinotify hspec megaparsec pandoc
-         pandoc-types template-haskell text typed-process unix
-         unordered-containers
+         deepseq directory filepath hspec megaparsec pandoc pandoc-types
+         template-haskell text typed-process unix unordered-containers
        ];
        description = "Publishing tools for papers, books, and presentations";
        license = lib.licenses.mit;
@@ -213457,7 +211445,6 @@ self: {
        description = "A CLI assistant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pugixml" = callPackage
@@ -213534,7 +211521,6 @@ self: {
        description = "Portable Haskell/POSIX layer for Pugs";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pugs-hsregex" = callPackage
@@ -213547,7 +211533,6 @@ self: {
        description = "Haskell PCRE binding";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pulse" = callPackage
@@ -213605,7 +211590,6 @@ self: {
        description = "Multilingual unsupervised sentence tokenization with Punkt";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "punycode" = callPackage
@@ -213641,7 +211625,6 @@ self: {
        description = "A program that displays the puppet resources associated to a node given .pp files.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pure-cdb" = callPackage
@@ -213661,7 +211644,6 @@ self: {
        description = "Another pure-haskell CDB (Constant Database) implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pure-fft" = callPackage
@@ -213720,7 +211702,6 @@ self: {
        description = "Tests for the pure-priority-queue package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pure-shuffle" = callPackage
@@ -213832,8 +211813,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Simple Routing functions for Wai Applications";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "purescript" = callPackage
@@ -213909,7 +211888,6 @@ self: {
        description = "PureScript Programming Language Compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "purescript-ast" = callPackage
@@ -213927,8 +211905,6 @@ self: {
        ];
        description = "PureScript Programming Language Abstract Syntax Tree";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "purescript-bridge" = callPackage
@@ -214022,7 +211998,6 @@ self: {
        description = "Isomorphic trivial data type definitions over JSON";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "purescript-tsd-gen" = callPackage
@@ -214046,7 +212021,6 @@ self: {
        description = "TypeScript Declaration File (.d.ts) generator for PureScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pursuit-client" = callPackage
@@ -214108,7 +212082,6 @@ self: {
        description = "A server-side library for sending push notifications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "push-notify-apn" = callPackage
@@ -214135,7 +212108,6 @@ self: {
        description = "Send push notifications to mobile iOS devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "push-notify-ccs" = callPackage
@@ -214156,7 +212128,6 @@ self: {
        description = "A server-side library for sending/receiving push notifications through CCS (Google Cloud Messaging)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "push-notify-general" = callPackage
@@ -214176,7 +212147,6 @@ self: {
        description = "A general library for sending/receiving push notif. through dif. services.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pushbullet" = callPackage
@@ -214236,8 +212206,8 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "2.1.0.0";
-       sha256 = "1zmcpbd20m7pc1bc0dwkhy33vbakdwc478dmzpr4l80kck0mpmy6";
+       version = "2.1.0.2";
+       sha256 = "0xrmjdika7y2hkp67kzh7xqc3v9j6db1rq2ksih1j9yypa1iihka";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-client-tls http-types memory text time
@@ -214386,7 +212356,6 @@ self: {
        description = "Creating graphics for pencil puzzles, command line tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pvar" = callPackage
@@ -214425,7 +212394,6 @@ self: {
        description = "A photo viewer daemon application with remote controlling abilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libdevil;};
 
   "pvss" = callPackage
@@ -214652,7 +212620,6 @@ self: {
        description = "'Vec' instances for 'qd' types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "qed" = callPackage
@@ -214697,7 +212664,6 @@ self: {
        description = "Command line tool qhs, SQL queries on CSV and TSV files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "qhull-simple" = callPackage
@@ -214877,7 +212843,6 @@ self: {
        description = "Library to generate QR codes from bytestrings and objects and scale image files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "qrcode" = callPackage
@@ -215185,7 +213150,6 @@ self: {
        description = "Retrieve, store and manage real quantum random data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quarantimer" = callPackage
@@ -215273,7 +213237,6 @@ self: {
        description = "Analysis and parsing library for SQL queries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "queryparser-demo" = callPackage
@@ -215291,7 +213254,6 @@ self: {
        description = "Demo package containing queryparser examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "queryparser-hive" = callPackage
@@ -215312,7 +213274,6 @@ self: {
        description = "Parsing for Hive SQL queries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "queryparser-presto" = callPackage
@@ -215333,7 +213294,6 @@ self: {
        description = "Parsing for Presto SQL queries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "queryparser-vertica" = callPackage
@@ -215354,7 +213314,6 @@ self: {
        description = "Parsing for Vertica SQL queries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "querystring-pickle" = callPackage
@@ -215389,7 +213348,6 @@ self: {
        description = "A package for prompting values from the command-line";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "queue" = callPackage
@@ -215413,7 +213371,6 @@ self: {
        description = "A library of queuelike data structures, both functional and stateful";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quick-generator" = callPackage
@@ -215467,7 +213424,6 @@ self: {
        description = "quick & easy benchmarking of command-line programs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickbooks" = callPackage
@@ -215521,8 +213477,6 @@ self: {
        ];
        description = "Generate QuickCheck Gen for Sum Types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickcheck-assertions" = callPackage
@@ -215580,6 +213534,7 @@ self: {
        sha256 = "0qdjls949kmcv8wj3a27p4dz8nb1dq4i99zizkw7qyqn47r9ccxd";
        libraryHaskellDepends = [ base QuickCheck unfoldable-restricted ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "quickcheck-enum-instances" = callPackage
@@ -215662,7 +213617,6 @@ self: {
        description = "Automating QuickCheck for polymorphic and overlaoded properties";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickcheck-properties" = callPackage
@@ -215716,7 +213670,6 @@ self: {
        description = "Generate regex-constrained strings for QuickCheck";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickcheck-relaxng" = callPackage
@@ -215733,7 +213686,6 @@ self: {
        description = "Generate RelaxNG-constrained XML documents for QuickCheck";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickcheck-rematch" = callPackage
@@ -215840,7 +213792,6 @@ self: {
        description = "Test monadic programs using state machine based models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickcheck-state-machine-distributed" = callPackage
@@ -215865,7 +213816,6 @@ self: {
        description = "Test monadic programs using state machine based models";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickcheck-string-random" = callPackage
@@ -215882,8 +213832,6 @@ self: {
        ];
        description = "Helper to build generators with Text.StringRandom";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickcheck-text" = callPackage
@@ -216093,7 +214041,6 @@ self: {
        description = "A reflective batch tester for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quickwebapp" = callPackage
@@ -216143,7 +214090,6 @@ self: {
        description = "Meta-package for Quipper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-algorithms" = callPackage
@@ -216168,7 +214114,6 @@ self: {
        description = "A set of algorithms implemented in Quipper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-all" = callPackage
@@ -216185,7 +214130,6 @@ self: {
        description = "Meta-package for Quipper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-cabal" = callPackage
@@ -216198,7 +214142,6 @@ self: {
        description = "Some functions to aid in the creation of Cabal packages for Quipper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-core" = callPackage
@@ -216237,7 +214180,6 @@ self: {
        description = "Miscellaneous code snippets that illustrate various Quipper features";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-language" = callPackage
@@ -216259,7 +214201,6 @@ self: {
        description = "Quipper, an embedded functional programming language for quantum computation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-libraries" = callPackage
@@ -216283,7 +214224,6 @@ self: {
        description = "The standard libraries for Quipper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-rendering" = callPackage
@@ -216301,7 +214241,6 @@ self: {
        description = "An embedded, scalable functional programming language for quantum computing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-tools" = callPackage
@@ -216324,7 +214263,6 @@ self: {
        description = "Miscellaneous stand-alone tools for Quipper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quipper-utils" = callPackage
@@ -216373,7 +214311,6 @@ self: {
        description = "Binary serialisation support for Quivers";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-bytestring" = callPackage
@@ -216386,7 +214323,6 @@ self: {
        description = "Quiver combinators for bytestring streaming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-cell" = callPackage
@@ -216399,7 +214335,6 @@ self: {
        description = "Quiver combinators for cellular data processing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-csv" = callPackage
@@ -216416,7 +214351,6 @@ self: {
        description = "Quiver combinators for cellular CSV data processing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-enumerator" = callPackage
@@ -216429,7 +214363,6 @@ self: {
        description = "Bridge between Quiver and Iteratee paradigms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-groups" = callPackage
@@ -216443,7 +214376,6 @@ self: {
        description = "Group and chunk values within a Quiver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-http" = callPackage
@@ -216462,7 +214394,6 @@ self: {
        description = "Adapter to stream over HTTP(s) with quiver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-instances" = callPackage
@@ -216479,7 +214410,6 @@ self: {
        description = "Extra instances for Quiver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-interleave" = callPackage
@@ -216493,7 +214423,6 @@ self: {
        description = "Interleave values from multiple Quivers";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quiver-sort" = callPackage
@@ -216518,7 +214447,6 @@ self: {
        description = "Sort the values in a quiver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "quokka" = callPackage
@@ -216601,7 +214529,6 @@ self: {
        description = "Command line binary for working with the Qux language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "r-glpk-phonetic-languages-ukrainian-durations" = callPackage
@@ -216653,29 +214580,35 @@ self: {
      }) {};
 
   "raaz" = callPackage
-    ({ mkDerivation, base, blaze-builder, bytestring, criterion
+    ({ mkDerivation, attoparsec, base, bytestring
      , criterion-measurement, deepseq, hspec, hspec-discover, HUnit
-     , optparse-applicative, pretty, QuickCheck, transformers, vector
+     , optparse-applicative, pretty, QuickCheck, vector
      }:
      mkDerivation {
        pname = "raaz";
-       version = "0.2.2";
-       sha256 = "1v7zyk61vk4d6xniqq4fglwccgpx9clx7hxp1xr531spshadq99p";
+       version = "0.3.0";
+       sha256 = "0a322ji29s537kz1mazbl7grbg0s1wkz2cxg74zlvqa47xbk20k1";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base bytestring deepseq vector ];
-       executableHaskellDepends = [ base optparse-applicative ];
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring criterion-measurement deepseq hspec HUnit pretty
+         QuickCheck vector
+       ];
+       executableHaskellDepends = [
+         base bytestring deepseq optparse-applicative vector
+       ];
        testHaskellDepends = [
-         base bytestring hspec hspec-discover HUnit QuickCheck transformers
-         vector
+         attoparsec base bytestring deepseq hspec hspec-discover HUnit
+         QuickCheck vector
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         base blaze-builder bytestring criterion criterion-measurement
-         pretty
+         base bytestring criterion-measurement deepseq pretty vector
        ];
-       description = "The raaz cryptographic library";
-       license = lib.licenses.bsd3;
+       doHaddock = false;
+       description = "Fast and type safe cryptography";
+       license = "(Apache-2.0 OR BSD-3-Clause)";
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -216903,7 +214836,6 @@ self: {
        description = "Compiler and editor for the esolang rail";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rails-session" = callPackage
@@ -216928,7 +214860,6 @@ self: {
        description = "Decrypt Ruby on Rails sessions in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rainbow" = callPackage
@@ -216960,7 +214891,6 @@ self: {
        description = "Tests and QuickCheck generators to accompany rainbow";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rainbox" = callPackage
@@ -217022,7 +214952,6 @@ self: {
        description = "distributed-process node";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rakhana" = callPackage
@@ -217124,8 +215053,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Random access list with a list compatible interface";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rallod" = callPackage
@@ -217139,7 +215066,6 @@ self: {
        description = "'$' in reverse";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "raml" = callPackage
@@ -217163,8 +215089,8 @@ self: {
     ({ mkDerivation, base, criterion, hspec }:
      mkDerivation {
        pname = "rampart";
-       version = "1.1.0.2";
-       sha256 = "1lvzgdagjzvkxcdbc43n144vbva5vlvsjziz80rjzm7kg3mslg1r";
+       version = "1.1.0.3";
+       sha256 = "090n80qkfcp219lq3dqjpvvvr8dpnc8srzldch4f4vfazw289b0y";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -217236,20 +215162,6 @@ self: {
      }) {};
 
   "random" = callPackage
-    ({ mkDerivation, base, time }:
-     mkDerivation {
-       pname = "random";
-       version = "1.1";
-       sha256 = "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p";
-       revision = "1";
-       editedCabalFile = "1pv5d7bm2rgap7llp5vjsplrg048gvf0226y0v19gpvdsx7n4rvv";
-       libraryHaskellDepends = [ base time ];
-       testHaskellDepends = [ base ];
-       description = "random number library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "random_1_2_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, doctest
      , gauge, mtl, mwc-random, primitive, rdtsc, smallcheck, split
      , splitmix, tasty, tasty-expected-failure, tasty-hunit
@@ -217272,7 +215184,6 @@ self: {
        ];
        description = "Pseudo-random number generation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "random-access-file" = callPackage
@@ -217376,7 +215287,6 @@ self: {
        description = "A simple random generator library for effin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "random-extras" = callPackage
@@ -217395,23 +215305,6 @@ self: {
 
   "random-fu" = callPackage
     ({ mkDerivation, base, erf, math-functions, monad-loops, mtl
-     , random-shuffle, random-source, rvar, syb, template-haskell
-     , transformers, vector
-     }:
-     mkDerivation {
-       pname = "random-fu";
-       version = "0.2.7.4";
-       sha256 = "13dgx069lvdfxm7l2q2l6d7q0gd3wp41b8l4l6wmhlfbl5xici3m";
-       libraryHaskellDepends = [
-         base erf math-functions monad-loops mtl random-shuffle
-         random-source rvar syb template-haskell transformers vector
-       ];
-       description = "Random number generation";
-       license = lib.licenses.publicDomain;
-     }) {};
-
-  "random-fu_0_2_7_7" = callPackage
-    ({ mkDerivation, base, erf, math-functions, monad-loops, mtl
      , random, random-shuffle, random-source, rvar, syb
      , template-haskell, transformers, vector
      }:
@@ -217425,7 +215318,6 @@ self: {
        ];
        description = "Random number generation";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "random-fu-multivariate" = callPackage
@@ -217456,7 +215348,6 @@ self: {
        description = "Random variate generation from hypergeometric distributions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "random-names" = callPackage
@@ -217488,23 +215379,6 @@ self: {
      }:
      mkDerivation {
        pname = "random-source";
-       version = "0.3.0.8";
-       sha256 = "0kjvpmxhff6id99hhgjp3vvb4vlhs3shkrh1n5cbfm7450lpmmn2";
-       libraryHaskellDepends = [
-         base flexible-defaults mersenne-random-pure64 mtl mwc-random
-         primitive random stateref syb template-haskell th-extras
-       ];
-       description = "Generic basis for random number generators";
-       license = lib.licenses.publicDomain;
-     }) {};
-
-  "random-source_0_3_0_11" = callPackage
-    ({ mkDerivation, base, flexible-defaults, mersenne-random-pure64
-     , mtl, mwc-random, primitive, random, stateref, syb
-     , template-haskell, th-extras
-     }:
-     mkDerivation {
-       pname = "random-source";
        version = "0.3.0.11";
        sha256 = "0lwqbd0h495srgi2p8fsmsfk5hv5m3f6cxm12j61xx94fdyn98sv";
        libraryHaskellDepends = [
@@ -217513,7 +215387,6 @@ self: {
        ];
        description = "Generic basis for random number generators";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "random-stream" = callPackage
@@ -217694,7 +215567,6 @@ self: {
        description = "A Range type with vector-space instances";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ranged-list" = callPackage
@@ -217846,7 +215718,6 @@ self: {
        description = "A modular text editor";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-example-config" = callPackage
@@ -217867,7 +215738,6 @@ self: {
        description = "Example user config for Rasa";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-bufs" = callPackage
@@ -217883,7 +215753,6 @@ self: {
        description = "Rasa Ext for useful buffer utilities";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-cmd" = callPackage
@@ -217899,7 +215768,6 @@ self: {
        description = "Rasa Ext for running commands";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-cursors" = callPackage
@@ -217916,7 +215784,6 @@ self: {
        description = "Rasa Ext adding cursor(s)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-files" = callPackage
@@ -217934,7 +215801,6 @@ self: {
        description = "Rasa Ext for filesystem actions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-logger" = callPackage
@@ -217947,7 +215813,6 @@ self: {
        description = "Rasa Ext for logging state/actions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-slate" = callPackage
@@ -217965,7 +215830,6 @@ self: {
        description = "Rasa extension for rendering to terminal with vty";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-status-bar" = callPackage
@@ -217978,7 +215842,6 @@ self: {
        description = "Rasa Ext for populating status-bar";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-style" = callPackage
@@ -217991,7 +215854,6 @@ self: {
        description = "Rasa Ext managing rendering styles";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-views" = callPackage
@@ -218009,7 +215871,6 @@ self: {
        description = "Rasa Ext managing rendering views";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rasa-ext-vim" = callPackage
@@ -218029,7 +215890,6 @@ self: {
        description = "Rasa Ext for vim bindings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rascal" = callPackage
@@ -218107,8 +215967,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "1.0.14";
-       sha256 = "0yjr8hj5c5i2l4p9zinwvzf33vhn6s9lipndqwx0km4ry0rylwwx";
+       version = "1.0.15";
+       sha256 = "14g39xsfm60iywcddi7glxvk4b92vd7nk7yd5zhvjhxi3zqz50i2";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-client-tls http-types text uuid
@@ -218178,7 +216038,6 @@ self: {
        description = "Client for rating.chgk.info API and CSV tables (documentation in Russian)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rating-systems" = callPackage
@@ -218262,8 +216121,8 @@ self: {
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "11.0.1";
-       sha256 = "1s9n89i6mh3lw9mni5lgs8qnq5c1981hrz5bv0n9cffnnp45av6a";
+       version = "11.1.1";
+       sha256 = "0cfxdi2h6aqa6zylg1hgn563fpi72zqfqzl9gsipm7jz1532j2a3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -218337,7 +216196,6 @@ self: {
        description = "Resource-Aware Feldspar";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "raw-strings-qq" = callPackage
@@ -218380,7 +216238,6 @@ self: {
        description = "Anonymous extensible records";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rawstring-qm" = callPackage
@@ -218430,7 +216287,6 @@ self: {
        description = "Common text/parsing tools for Razom language packages";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rbpcp-api" = callPackage
@@ -218467,7 +216323,6 @@ self: {
        description = "Mask nucleotide (EST) sequences in Fasta format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rbst" = callPackage
@@ -218516,7 +216371,6 @@ self: {
        description = "Reservoir Computing, fast RNNs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rclient" = callPackage
@@ -218628,7 +216482,6 @@ self: {
        description = "A Haskell wrapper for Rdio's API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rdtsc" = callPackage
@@ -218696,7 +216549,6 @@ self: {
        description = "Allow react-flux stores to send requests to a servant server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "react-haskell" = callPackage
@@ -218803,8 +216655,9 @@ self: {
        ];
        description = "Programmatically edit MIDI events via ALSA and reactive-banana";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "reactive-banana" = callPackage
@@ -218827,8 +216680,6 @@ self: {
        ];
        description = "Library for functional reactive programming (FRP)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-banana-automation" = callPackage
@@ -218845,8 +216696,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "home (etc) automation using reactive-banana";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-banana-bunch" = callPackage
@@ -218862,8 +216711,6 @@ self: {
        ];
        description = "Extend reactive-banana to multiple events per time point";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-banana-gi-gtk" = callPackage
@@ -218899,7 +216746,6 @@ self: {
        description = "Reactive Banana bindings for SDL";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-banana-sdl2" = callPackage
@@ -218948,7 +216794,6 @@ self: {
        description = "Examples for the reactive-banana library, using wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-fieldtrip" = callPackage
@@ -218966,7 +216811,6 @@ self: {
        description = "Connect Reactive and FieldTrip";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-glut" = callPackage
@@ -218983,7 +216827,6 @@ self: {
        description = "Connects Reactive and GLUT";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-haskell" = callPackage
@@ -219026,8 +216869,6 @@ self: {
        ];
        description = "Process MIDI events via reactive-banana and JACK";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-midyim" = callPackage
@@ -219047,8 +216888,6 @@ self: {
        ];
        description = "Process MIDI events via reactive-banana";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reactive-thread" = callPackage
@@ -219102,7 +216941,6 @@ self: {
        description = "Reactor - task parallel reactive programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "read-bounded" = callPackage
@@ -219268,7 +217106,6 @@ self: {
        description = "Readline with variables (setX/getY) wrapped in state vars";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "readme-lhs" = callPackage
@@ -219306,7 +217143,6 @@ self: {
        description = "Read and pretty print Python bytecode (.pyc) files.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "readshp" = callPackage
@@ -219357,6 +217193,17 @@ self: {
        broken = true;
      }) {};
 
+  "realworldhaskell" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "realworldhaskell";
+       version = "0.0.1.0";
+       sha256 = "0695y4af42vm50njpldx3i03ia4bws0lx3yhw6p2rv032jhmp5w6";
+       libraryHaskellDepends = [ base ];
+       description = "The Real World Haskell Book";
+       license = lib.licenses.publicDomain;
+     }) {};
+
   "reanimate" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, attoparsec, base
      , base64-bytestring, bytestring, cassava, cereal, colour
@@ -219392,7 +217239,6 @@ self: {
        description = "Animation library based on SVGs";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reanimate-svg" = callPackage
@@ -219490,7 +217336,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "rebase_1_12_0_1" = callPackage
+  "rebase_1_13" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
      , contravariant, deepseq, dlist, either, hashable, hashable-time
      , mtl, profunctors, scientific, selective, semigroupoids, stm, text
@@ -219499,8 +217345,8 @@ self: {
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.12.0.1";
-       sha256 = "1yl09702psialskvm39i9rl3sag853qr1237jhs79yk7nhvdlaqx";
+       version = "1.13";
+       sha256 = "0cqpp2cn3yi9d825qzavs52ky77b628fm8p7w51zy9qjx1p7650v";
        libraryHaskellDepends = [
          base bifunctors bytestring comonad containers contravariant deepseq
          dlist either hashable hashable-time mtl profunctors scientific
@@ -219581,7 +217427,6 @@ self: {
        description = "Instances of \"aeson\" classes for the \"record\" types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "record-dot-preprocessor" = callPackage
@@ -219590,8 +217435,8 @@ self: {
      }:
      mkDerivation {
        pname = "record-dot-preprocessor";
-       version = "0.2.10";
-       sha256 = "1zwkc5mqcxlv4cm7qd75sdmvjckvpchcrqphsq82val41mp27nk5";
+       version = "0.2.11";
+       sha256 = "1hsk7n8hrskj30wcil4rvjhng3zcj7f9a0dn69371iay4x8d75md";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base extra ghc uniplate ];
@@ -219641,7 +217486,6 @@ self: {
        description = "Utilities for working with OpenGL's GLSL shading language and Nikita Volkov's \"Record\"s";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "record-hasfield" = callPackage
@@ -219674,7 +217518,6 @@ self: {
        description = "Compiler preprocessor introducing a syntactic extension for anonymous records";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "record-syntax" = callPackage
@@ -219699,7 +217542,6 @@ self: {
        description = "A library for parsing and processing the Haskell syntax sprinkled with anonymous records";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "record-wrangler" = callPackage
@@ -219760,7 +217602,6 @@ self: {
        description = "Template Haskell declarations for the records package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "recover-rtti" = callPackage
@@ -219811,8 +217652,6 @@ self: {
        testHaskellDepends = [ base HUnit template-haskell transformers ];
        description = "Representing common recursion patterns as higher-order functions";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "recursion-schemes-ext" = callPackage
@@ -219832,8 +217671,6 @@ self: {
        ];
        description = "Amateur addenda to recursion-schemes";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "recursion-schemes-ix" = callPackage
@@ -219955,7 +217792,6 @@ self: {
        description = "Library for interfacing with Reddit's API";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "redesigned-carnival" = callPackage
@@ -220137,7 +217973,6 @@ self: {
        description = "Simplify a set of equations by removing redundancies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reducers" = callPackage
@@ -220246,8 +218081,8 @@ self: {
     ({ mkDerivation, base, stm, transformers }:
      mkDerivation {
        pname = "ref-fd";
-       version = "0.4.0.2";
-       sha256 = "1camr7cv1fglicyp2ivv7qv1yidj36zxcglfvmw7giqdj7r7j5w8";
+       version = "0.5";
+       sha256 = "1r34xyyx0fyl1fc64n1hhk0m2s1l808kjb18dmj8w0y91w4ms6qj";
        libraryHaskellDepends = [ base stm transformers ];
        description = "A type class for monads with references using functional dependencies";
        license = lib.licenses.bsd3;
@@ -220270,8 +218105,8 @@ self: {
     ({ mkDerivation, base, stm, transformers }:
      mkDerivation {
        pname = "ref-tf";
-       version = "0.4.0.2";
-       sha256 = "0pq9pm8jsx9w1q81pf5pvc361ad8dbyklw94jq47drr2i0dc7n20";
+       version = "0.5";
+       sha256 = "06lf3267b68syiqcwvgw8a7yi0ki3khnh4i9s8z7zjrjnj6h9r4v";
        libraryHaskellDepends = [ base stm transformers ];
        description = "A type class for monads with references using type families";
        license = lib.licenses.bsd3;
@@ -220362,7 +218197,6 @@ self: {
        description = "A command-line tool for pasting to https://www.refheap.com";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "refined" = callPackage
@@ -220524,7 +218358,6 @@ self: {
        description = "Continuous animations support for reflex";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-backend-socket" = callPackage
@@ -220551,7 +218384,6 @@ self: {
        description = "Reflex bindings for TCP sockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-backend-wai" = callPackage
@@ -220573,7 +218405,6 @@ self: {
        description = "Reflex interface to `wai`";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-basic-host" = callPackage
@@ -220615,9 +218446,26 @@ self: {
        ];
        description = "Functional Reactive Web Apps with Reflex";
        license = lib.licenses.bsd3;
+       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
+  "reflex-dom-ace" = callPackage
+    ({ mkDerivation, base, containers, data-default, ghcjs-dom, jsaddle
+     , lens, mtl, reflex-dom-core, text
+     }:
+     mkDerivation {
+       pname = "reflex-dom-ace";
+       version = "0.3.0.3";
+       sha256 = "024xwgqasf2sciz0paq7p1ry1njcz46pz2l1cyjxm562hjqvsb0h";
+       libraryHaskellDepends = [
+         base containers data-default ghcjs-dom jsaddle lens mtl
+         reflex-dom-core text
+       ];
+       description = "Basic support for using the Ace editor with Reflex";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "reflex-dom-colonnade" = callPackage
     ({ mkDerivation, base, colonnade, containers, contravariant, reflex
      , reflex-dom, semigroups, text, vector
@@ -220652,6 +218500,7 @@ self: {
        description = "A playground for experimenting with infrastructure and common code for reflex applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "reflex-dom-core" = callPackage
@@ -220711,7 +218560,7 @@ self: {
        executableHaskellDepends = [ base reflex-dom text ];
        description = "A reflex-dom widget to draw on a canvas with a fragment shader program";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
+       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
      }) {};
 
   "reflex-dom-helpers" = callPackage
@@ -220729,6 +218578,7 @@ self: {
        description = "Html tag helpers for reflex-dom";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "reflex-dom-pandoc" = callPackage
@@ -220888,7 +218738,6 @@ self: {
        description = "A GHCi widget library for use in reflex applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-gi-gtk" = callPackage
@@ -220901,6 +218750,8 @@ self: {
        pname = "reflex-gi-gtk";
        version = "0.2.0.0";
        sha256 = "0dx9g5v5i0fhxn1kn6fsj8hpwnax8wq89drsv8q2fwk9pxd8i384";
+       revision = "2";
+       editedCabalFile = "0k0bnmwpss3j6zgrh4l576qx81khzv18g0n9hmzajfwjwp9ifwmz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -220961,7 +218812,6 @@ self: {
        description = "A simple scene-graph using reflex and gloss";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-jsx" = callPackage
@@ -220979,6 +218829,7 @@ self: {
        description = "Use jsx-like syntax in Reflex";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "reflex-libtelnet" = callPackage
@@ -221012,8 +218863,6 @@ self: {
        ];
        description = "Localization library for reflex";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-localize-dom" = callPackage
@@ -221031,8 +218880,7 @@ self: {
        ];
        description = "Helper widgets for reflex-localize";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
      }) {};
 
   "reflex-monad-auth" = callPackage
@@ -221092,7 +218940,6 @@ self: {
        description = "Reflex FRP interface for running system processes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-sdl2" = callPackage
@@ -221351,7 +219198,6 @@ self: {
        description = "Tools for maintaining a database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reg-alloc" = callPackage
@@ -221391,7 +219237,6 @@ self: {
        description = "Register allocation by graph colorization";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reg-alloc-types" = callPackage
@@ -221511,7 +219356,6 @@ self: {
        description = "Replaces/Enhances Text.Regex. Implementing regular expression matching using Brzozowski's Deriviatives";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regex-dfa" = callPackage
@@ -221701,7 +219545,6 @@ self: {
        description = "Text-based PCRE API for regex-base";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regex-pderiv" = callPackage
@@ -221719,7 +219562,6 @@ self: {
        description = "Replaces/Enhances Text.Regex. Implementing regular expression matching using Antimirov's partial derivatives.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regex-posix" = callPackage
@@ -221955,8 +219797,6 @@ self: {
        ];
        description = "Types that can only be constructed if they match a regular expression";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regex-xmlschema" = callPackage
@@ -221969,7 +219809,6 @@ self: {
        description = "A regular expression library for W3C XML Schema regular expressions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regexchar" = callPackage
@@ -222026,7 +219865,6 @@ self: {
        description = "Regular Expressions on Tries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regexpr" = callPackage
@@ -222082,7 +219920,6 @@ self: {
        description = "Regional memory pointers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regions" = callPackage
@@ -222116,7 +219953,6 @@ self: {
        description = "Monads-fd instances for the RegionT monad transformer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regions-monadstf" = callPackage
@@ -222133,7 +219969,6 @@ self: {
        description = "Monads-tf instances for the RegionT monad transformer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regions-mtl" = callPackage
@@ -222146,7 +219981,6 @@ self: {
        description = "mtl instances for the RegionT monad transformer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "register-machine-typelevel" = callPackage
@@ -222215,7 +220049,6 @@ self: {
        description = "utilities to work with Hedgehog generators and `registry`";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regress" = callPackage
@@ -222269,7 +220102,6 @@ self: {
        description = "Additional functions for regular: arbitrary, coarbitrary, and binary get/put";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regular-web" = callPackage
@@ -222286,7 +220118,6 @@ self: {
        description = "Generic programming for the web";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "regular-xmlpickler" = callPackage
@@ -222299,7 +220130,6 @@ self: {
        description = "Generic generation of HXT XmlPickler instances using Regular";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reheat" = callPackage
@@ -222315,7 +220145,6 @@ self: {
        description = "to make notes and reduce impact on idle time on writing other programms";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rehoo" = callPackage
@@ -222618,7 +220447,6 @@ self: {
        description = "Durations and generalized time parsing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "releaser" = callPackage
@@ -222884,7 +220712,6 @@ self: {
        description = "Remote Monad implementation of the JSON RPC protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "remote-json-client" = callPackage
@@ -222903,7 +220730,6 @@ self: {
        description = "Web client wrapper for remote-json";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "remote-json-server" = callPackage
@@ -222922,7 +220748,6 @@ self: {
        description = "Web server wrapper for remote-json";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "remote-monad" = callPackage
@@ -222980,7 +220805,6 @@ self: {
        description = "A library for client-server applications based on custom protocols";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "render-utf8" = callPackage
@@ -222996,8 +220820,6 @@ self: {
        ];
        description = "Simple Utf8 wrapper for ByteString Builder with conversion classes";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "renderable" = callPackage
@@ -223022,6 +220844,21 @@ self: {
        license = lib.licenses.publicDomain;
      }) {};
 
+  "reorder-expression" = callPackage
+    ({ mkDerivation, base, hspec, hspec-discover, optics, parsec }:
+     mkDerivation {
+       pname = "reorder-expression";
+       version = "0.1.0.0";
+       sha256 = "01d83j3mq2gz6maqbkzpjrz6ppyhsqrj4rj72xw49fkl2w34pa9f";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec optics parsec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Reorder expressions in a syntax tree according to operator fixities";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "reorderable" = callPackage
     ({ mkDerivation, base, constraints, haskell-src-exts
      , haskell-src-meta, template-haskell
@@ -223086,7 +220923,6 @@ self: {
        description = "Bulk array representations and operators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repa-bytestring" = callPackage
@@ -223117,7 +220953,6 @@ self: {
        description = "Packing and unpacking flat tables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repa-devil" = callPackage
@@ -223166,7 +221001,6 @@ self: {
        description = "Examples using the Repa array library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repa-fftw" = callPackage
@@ -223206,7 +221040,6 @@ self: {
        description = "Data-parallel data flows";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repa-io" = callPackage
@@ -223254,7 +221087,6 @@ self: {
        description = "Data Flow Fusion GHC Plugin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repa-scalar" = callPackage
@@ -223317,7 +221149,6 @@ self: {
        description = "Stream functions not present in the vector library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repa-v4l2" = callPackage
@@ -223338,7 +221169,6 @@ self: {
        description = "Provides high-level access to webcams";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repl" = callPackage
@@ -223453,7 +221283,6 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repline" = callPackage
@@ -223516,7 +221345,6 @@ self: {
        description = "Render overloaded expressions to their textual representation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repr-tree-syb" = callPackage
@@ -223579,23 +221407,23 @@ self: {
        description = "Tries from representations of polynomial functors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reprinter" = callPackage
-    ({ mkDerivation, base, mtl, syb, syz, text, transformers, uniplate
+    ({ mkDerivation, base, bytestring, hspec, hspec-discover, mtl, syb
+     , syz, text, transformers
      }:
      mkDerivation {
        pname = "reprinter";
-       version = "0.2.0.0";
-       sha256 = "1b3hdz7qq9qk7pbx0ny4ziagjm9hi9wfi9rl0aq0b8p70zzyjiq1";
+       version = "0.3.0.0";
+       sha256 = "04rzgk0q5q75z52x3qyq8ddhyb6krnz1ixhmmvzpcfaq39p00cgh";
        libraryHaskellDepends = [
-         base mtl syb syz text transformers uniplate
+         base bytestring mtl syb syz text transformers
        ];
+       testHaskellDepends = [ base hspec mtl text ];
+       testToolDepends = [ hspec-discover ];
        description = "Scrap Your Reprinter";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reproject" = callPackage
@@ -223641,6 +221469,7 @@ self: {
        doCheck = false;
        description = "Easy-to-use, type-safe, expandable, high-level HTTP client library";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "req-conduit" = callPackage
@@ -223690,7 +221519,6 @@ self: {
        description = "Provides OAuth2 authentication for use with Req";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "req-url-extra" = callPackage
@@ -223734,8 +221562,8 @@ self: {
      }:
      mkDerivation {
        pname = "request";
-       version = "0.1.3.0";
-       sha256 = "07ypsdmf227m6j8gkl29621z7grbsgr0pmk3dglx9zlrmq0zbn8j";
+       version = "0.2.1.0";
+       sha256 = "1a2zx0gb03mv6g4sw0r6pxkvih8ca5w9w44k6d3n7b5b7s8yznhk";
        libraryHaskellDepends = [
          base bytestring case-insensitive http-client http-client-tls
          http-types
@@ -223820,8 +221648,6 @@ self: {
        ];
        description = "Regular-expressions extended with fixpoints for context-free powers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rerebase" = callPackage
@@ -223835,12 +221661,12 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "rerebase_1_12_0_1" = callPackage
+  "rerebase_1_13" = callPackage
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.12.0.1";
-       sha256 = "0kh0022hfviywa4rkwnrqygc7s3vg8qvr9znh66v5c1i3gaibzq5";
+       version = "1.13";
+       sha256 = "1ng16dnlrxcy76mpw21mwf2sk70q4i0kmqhxikjhc2h06zdpkqfr";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = lib.licenses.mit;
@@ -223900,8 +221726,6 @@ self: {
        ];
        description = "More understandable exceptions";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "reserve" = callPackage
@@ -223967,7 +221791,6 @@ self: {
        description = "Compute total resistance of a cube of resistors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "resolv_0_1_1_2" = callPackage
@@ -224114,7 +221937,6 @@ self: {
        description = "Fork of resource-pool, with a MonadCatchIO constraint";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "resource-pool-monad" = callPackage
@@ -224147,7 +221969,6 @@ self: {
        description = "Allocate resources which are guaranteed to be released";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "resourcet" = callPackage
@@ -224204,7 +222025,6 @@ self: {
        description = "process and route HTTP requests and generate responses on top of WAI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-client" = callPackage
@@ -224227,7 +222047,6 @@ self: {
        description = "Utility library for use in generated API client libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-core" = callPackage
@@ -224256,7 +222075,6 @@ self: {
        description = "Rest API library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-example" = callPackage
@@ -224280,7 +222098,6 @@ self: {
        description = "Example project for rest";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-gen" = callPackage
@@ -224309,7 +222126,6 @@ self: {
        description = "Documentation and client generation from rest definition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-happstack" = callPackage
@@ -224328,7 +222144,6 @@ self: {
        description = "Rest driver for Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-snap" = callPackage
@@ -224347,7 +222162,6 @@ self: {
        description = "Rest driver for Snap";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-stringmap" = callPackage
@@ -224365,7 +222179,6 @@ self: {
        description = "Maps with stringy keys that can be transcoded to JSON and XML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-types" = callPackage
@@ -224386,7 +222199,6 @@ self: {
        description = "Silk Rest Framework Types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rest-wai" = callPackage
@@ -224407,7 +222219,6 @@ self: {
        description = "Rest driver for WAI applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "restartable" = callPackage
@@ -224441,7 +222252,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "restless-git" = callPackage
@@ -224479,7 +222289,6 @@ self: {
        description = "Running worker processes under system resource restrictions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "restyle" = callPackage
@@ -224591,7 +222400,6 @@ self: {
        description = "Useful tools for modeling data with rethinkdb";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rethinkdb-wereHamster" = callPackage
@@ -224773,7 +222581,6 @@ self: {
        description = "open file and rewrite it with new contents";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rewrite-inspector" = callPackage
@@ -224807,7 +222614,6 @@ self: {
        description = "Generic rewriting library for regular datatypes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rex" = callPackage
@@ -224844,7 +222650,6 @@ self: {
        description = "Github resume generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rfc" = callPackage
@@ -224879,7 +222684,6 @@ self: {
        description = "Robert Fischer's Common library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rfc-env" = callPackage
@@ -224892,7 +222696,6 @@ self: {
        description = "Environment variable support from the Robert Fischer Commons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rfc-http-client" = callPackage
@@ -224911,7 +222714,6 @@ self: {
        description = "The HTTP client extensions from the Robert Fischer Commons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rfc-prelude" = callPackage
@@ -224954,7 +222756,6 @@ self: {
        description = "The PostgreSQL extensions from the Robert Fischer Commons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rfc-redis" = callPackage
@@ -224967,7 +222768,6 @@ self: {
        description = "The Redis extensions from the Robert Fischer Commons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rfc-servant" = callPackage
@@ -224990,7 +222790,6 @@ self: {
        description = "The Servant extensions from the Robert Fischer Commons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rfc1413-server" = callPackage
@@ -225074,8 +222873,6 @@ self: {
        ];
        description = "A dynamic/unbounded alternative to Bounded Enum";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rgb-color-model" = callPackage
@@ -225161,7 +222958,6 @@ self: {
        description = "Haskell rhythm game tutorial";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "riak" = callPackage
@@ -225264,7 +223060,6 @@ self: {
        description = "Static site generator based on Shake";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rib-core" = callPackage
@@ -225302,28 +223097,28 @@ self: {
      }) {};
 
   "ribosome" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base-noprelude, bytestring
-     , cereal, cereal-conduit, chiasma, composition, composition-extra
-     , conduit, conduit-extra, containers, cornea, data-default, deepseq
-     , directory, either, exceptions, filepath, free, hslogger, lens
-     , lifted-async, lifted-base, messagepack, MissingH, monad-control
-     , monad-loops, mtl, nvim-hs, path, path-io, pretty-terminal
-     , prettyprinter, prettyprinter-ansi-terminal, process, relude
-     , resourcet, safe, split, stm, stm-chans, stm-conduit
-     , template-haskell, text, th-abstraction, time, transformers
-     , transformers-base, typed-process, unix, unliftio, unliftio-core
-     , utf8-string
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cereal
+     , cereal-conduit, chiasma, composition, composition-extra, conduit
+     , conduit-extra, containers, cornea, data-default, deepseq
+     , directory, either, exceptions, filepath, free, fuzzy, hourglass
+     , hslogger, lens, lifted-async, lifted-base, messagepack
+     , monad-control, monad-loops, mtl, nvim-hs, path, path-io
+     , pretty-terminal, prettyprinter, prettyprinter-ansi-terminal
+     , process, relude, resourcet, safe, split, stm, stm-chans
+     , stm-conduit, template-haskell, text, th-abstraction, time
+     , transformers, transformers-base, typed-process, unix, unliftio
+     , unliftio-core, utf8-string
      }:
      mkDerivation {
        pname = "ribosome";
-       version = "0.3.0.1";
-       sha256 = "1dka9hqh48nib7y0rz4bxr6d3iqavzw0163q64xwcjxaib293kks";
+       version = "0.4.0.0";
+       sha256 = "1h8x9gwm5g0jwf8zgpjb0wm76nj54x664l78v58n8cl5kwykr8ig";
        libraryHaskellDepends = [
-         aeson ansi-terminal base-noprelude bytestring cereal cereal-conduit
-         chiasma composition composition-extra conduit conduit-extra
-         containers cornea data-default deepseq directory either exceptions
-         filepath free hslogger lens lifted-async lifted-base messagepack
-         MissingH monad-control monad-loops mtl nvim-hs path path-io
+         aeson ansi-terminal base bytestring cereal cereal-conduit chiasma
+         composition composition-extra conduit conduit-extra containers
+         cornea data-default deepseq directory either exceptions filepath
+         free fuzzy hourglass hslogger lens lifted-async lifted-base
+         messagepack monad-control monad-loops mtl nvim-hs path path-io
          pretty-terminal prettyprinter prettyprinter-ansi-terminal process
          relude resourcet safe split stm stm-chans stm-conduit
          template-haskell text th-abstraction time transformers
@@ -225331,8 +223126,9 @@ self: {
          utf8-string
        ];
        description = "api extensions for nvim-hs";
-       license = "unknown";
+       license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ribosome-root" = callPackage
@@ -225368,24 +223164,39 @@ self: {
      }) {};
 
   "ribosome-test" = callPackage
-    ({ mkDerivation, base-noprelude, bytestring, chiasma, cornea
-     , data-default, directory, exceptions, filepath, free, hslogger
-     , HTF, lifted-base, messagepack, monad-control, mtl, nvim-hs
-     , process, relude, resourcet, ribosome, text, transformers
-     , typed-process, unix, unliftio, unliftio-core
+    ({ mkDerivation, aeson, base, bytestring, chiasma, composition
+     , composition-extra, conduit, containers, cornea, data-default
+     , directory, either, exceptions, filepath, free, hedgehog, hslogger
+     , lens, lifted-async, lifted-base, messagepack, monad-control, mtl
+     , nvim-hs, path, path-io, prettyprinter
+     , prettyprinter-ansi-terminal, process, relude, resourcet, ribosome
+     , tasty, tasty-hedgehog, template-haskell, text, transformers
+     , typed-process, unix, unliftio
      }:
      mkDerivation {
        pname = "ribosome-test";
-       version = "0.3.0.1";
-       sha256 = "18pmb6db23ak29y5vqzvblvq3yqpi2zn8qk0cp7825sbahqxn320";
+       version = "0.4.0.0";
+       sha256 = "1kjs1h4qvgal67xg177dfbc4zcinjsjvjvbkdv3zilxsc6scfq1n";
        libraryHaskellDepends = [
-         base-noprelude bytestring chiasma cornea data-default directory
-         exceptions filepath free hslogger HTF lifted-base messagepack
-         monad-control mtl nvim-hs process relude resourcet ribosome text
-         transformers typed-process unix unliftio unliftio-core
+         aeson base bytestring chiasma composition composition-extra conduit
+         containers cornea data-default directory either exceptions filepath
+         free hedgehog hslogger lens lifted-async lifted-base messagepack
+         monad-control mtl nvim-hs path path-io prettyprinter
+         prettyprinter-ansi-terminal process relude resourcet ribosome tasty
+         tasty-hedgehog template-haskell text transformers typed-process
+         unix unliftio
+       ];
+       testHaskellDepends = [
+         aeson base bytestring chiasma composition composition-extra conduit
+         containers cornea data-default directory either exceptions filepath
+         free hedgehog hslogger lens lifted-async lifted-base messagepack
+         monad-control mtl nvim-hs path path-io prettyprinter
+         prettyprinter-ansi-terminal process relude resourcet ribosome tasty
+         tasty-hedgehog template-haskell text transformers typed-process
+         unix unliftio
        ];
        description = "test helpers for ribosome";
-       license = "unknown";
+       license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -225446,7 +223257,6 @@ self: {
        description = "Handy metrics that don't belong to ridley";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "riemann" = callPackage
@@ -225546,8 +223356,6 @@ self: {
        testHaskellDepends = [ base HUnit primitive QuickCheck ];
        description = "mutable ring buffers with atomic updates in GHC Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rings" = callPackage
@@ -225661,7 +223469,6 @@ self: {
        description = "A library for process pools coupled with asynchronous message queues";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "riot" = callPackage
@@ -225682,7 +223489,6 @@ self: {
        description = "Riot is an Information Organisation Tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) ncurses;};
 
   "ripple" = callPackage
@@ -225741,7 +223547,6 @@ self: {
        description = "RISC-V";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "risc386" = callPackage
@@ -225757,8 +223562,6 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Reduced instruction set i386 simulator";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "riscv-isa" = callPackage
@@ -225822,7 +223625,6 @@ self: {
        description = "A project management tool for Haskell applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rivet-adaptor-postgresql" = callPackage
@@ -225972,7 +223774,6 @@ self: {
        description = "Ring-LWE/LWR challenges using Lol";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rmonad" = callPackage
@@ -225990,7 +223791,6 @@ self: {
        description = "Restricted monad library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rncryptor" = callPackage
@@ -226020,7 +223820,6 @@ self: {
        description = "Haskell implementation of the RNCryptor file format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rng-utils" = callPackage
@@ -226060,7 +223859,6 @@ self: {
        description = "Simple projects generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "robin" = callPackage
@@ -226172,7 +223970,6 @@ self: {
        description = "Gloss interactive demo for roc-cluster package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "roc-id" = callPackage
@@ -226218,7 +224015,6 @@ self: {
        description = "A build system for incremental, parallel, and demand-driven computations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rocksdb-haskell" = callPackage
@@ -226241,8 +224037,6 @@ self: {
        ];
        description = "Haskell bindings to RocksDB";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) rocksdb;};
 
   "rocksdb-haskell-jprupp" = callPackage
@@ -226263,8 +224057,6 @@ self: {
        ];
        description = "Haskell bindings for RocksDB";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) rocksdb;};
 
   "rocksdb-query" = callPackage
@@ -226284,8 +224076,6 @@ self: {
        ];
        description = "RocksDB database querying library for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "roguestar" = callPackage
@@ -226389,15 +224179,16 @@ self: {
 
   "rollbar" = callPackage
     ({ mkDerivation, aeson, base, basic-prelude, http-conduit
-     , lifted-base, monad-control, network, resourcet, text, vector
+     , lifted-base, monad-control, network, network-bsd, resourcet, text
+     , vector
      }:
      mkDerivation {
        pname = "rollbar";
-       version = "1.1.2";
-       sha256 = "1ip4bsnav2bwbbasz0mmfkq7cvi72jfdbz00r1ql4kpgwwkdhysz";
+       version = "1.1.3";
+       sha256 = "0mj8s2kfv8fw8mpb3xz8fvlyvdx46nsh1waw7jvw4cxphywfq9b8";
        libraryHaskellDepends = [
          aeson base basic-prelude http-conduit lifted-base monad-control
-         network resourcet text vector
+         network network-bsd resourcet text vector
        ];
        description = "error tracking through rollbar.com";
        license = lib.licenses.mit;
@@ -226421,7 +224212,6 @@ self: {
        description = "Simple CLI tool to perform commons tasks such as tracking deploys";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rollbar-client" = callPackage
@@ -226496,7 +224286,6 @@ self: {
        description = "Provides error reporting capabilities to WAI based applications through Rollbar API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rollbar-yesod" = callPackage
@@ -226519,7 +224308,6 @@ self: {
        description = "Provides error reporting capabilities to Yesod applications through Rollbar API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "roller" = callPackage
@@ -226638,7 +224426,6 @@ self: {
        description = "RON-Schema";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ron-storage" = callPackage
@@ -226657,7 +224444,6 @@ self: {
        description = "RON Storage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "roots" = callPackage
@@ -226780,7 +224566,6 @@ self: {
        description = "Trees with polymorphic paths to nodes, combining properties of Rose Trees and Tries";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rosebud" = callPackage
@@ -226842,7 +224627,6 @@ self: {
        description = "Haskell support for the ROS robotics framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rosmsg" = callPackage
@@ -226880,7 +224664,6 @@ self: {
        description = "ROS message management tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rospkg" = callPackage
@@ -226981,8 +224764,6 @@ self: {
        testHaskellDepends = [ base long-double ];
        description = "Correctly-rounded arbitrary-precision floating-point arithmetic";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
 
   "rounded-hw" = callPackage
@@ -227008,7 +224789,6 @@ self: {
        description = "Directed rounding for built-in floating types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rounding" = callPackage
@@ -227092,7 +224872,6 @@ self: {
        description = "Bidirectional (de-)serialization for XML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "route-generator" = callPackage
@@ -227128,7 +224907,6 @@ self: {
        description = "A library and utilities for creating a route";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "row" = callPackage
@@ -227202,6 +224980,36 @@ self: {
        broken = true;
      }) {};
 
+  "rp-tree" = callPackage
+    ({ mkDerivation, base, benchpress, boxes, bytestring, conduit
+     , containers, deepseq, hspec, QuickCheck, serialise, splitmix
+     , splitmix-distributions, transformers, vector, vector-algorithms
+     }:
+     mkDerivation {
+       pname = "rp-tree";
+       version = "0.3.6";
+       sha256 = "0dz2xkgmk3lfr0pnc7xzfz756bzdkbmb2m96zdpw7vgyz59h9i64";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base boxes bytestring conduit containers deepseq serialise splitmix
+         splitmix-distributions transformers vector vector-algorithms
+       ];
+       executableHaskellDepends = [
+         base conduit containers splitmix splitmix-distributions
+         transformers vector
+       ];
+       testHaskellDepends = [
+         base conduit hspec QuickCheck splitmix-distributions
+       ];
+       benchmarkHaskellDepends = [
+         base benchpress conduit deepseq splitmix splitmix-distributions
+         transformers vector
+       ];
+       description = "Random projection trees";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "rpc" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, derive
      , network-fancy, template-haskell, th-lift
@@ -227217,7 +225025,6 @@ self: {
        description = "type safe rpcs provided as basic IO actions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rpc-framework" = callPackage
@@ -227258,7 +225065,6 @@ self: {
        description = "Receiver Policy Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rpm" = callPackage
@@ -227278,24 +225084,26 @@ self: {
 
   "rpmbuild-order" = callPackage
     ({ mkDerivation, base, case-insensitive, containers, directory
-     , extra, fgl, filepath, hspec, optparse-applicative, process
-     , simple-cmd, simple-cmd-args, unix
+     , extra, fgl, filepath, graphviz, hspec, optparse-applicative
+     , process, simple-cmd, simple-cmd-args, unix
      }:
      mkDerivation {
        pname = "rpmbuild-order";
-       version = "0.4.3.2";
-       sha256 = "1510v4gbylzpdh7l23r4z6xhqmjalay3crxg2216lz8j0mb4sbq9";
+       version = "0.4.5";
+       sha256 = "1lz6w2nd8yq0arfpp6vnv7lazr9289wan00b6layfdhlql9f21vl";
+       revision = "1";
+       editedCabalFile = "05arkmpbh5fdqbqhkwl76isbigrsc0f54zkbdl21jap6k4g9kzsk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base case-insensitive containers directory extra fgl filepath
-         process
+         graphviz process
        ];
        executableHaskellDepends = [
          base directory extra fgl optparse-applicative simple-cmd-args
        ];
        testHaskellDepends = [ base extra hspec simple-cmd unix ];
-       description = "Order RPM packages by dependencies";
+       description = "Sort RPM packages in dependency order";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -227337,7 +225145,6 @@ self: {
        description = "The RogueStar Animation and Graphics Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rsagl-frp" = callPackage
@@ -227354,7 +225161,6 @@ self: {
        description = "The RogueStar Animation and Graphics Library: Functional Reactive Programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rsagl-math" = callPackage
@@ -227372,7 +225178,6 @@ self: {
        description = "The RogueStar Animation and Graphics Library: Mathematics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rset" = callPackage
@@ -227444,8 +225249,6 @@ self: {
        ];
        description = "Streaming parser/renderer for the RSS standard";
        license = lib.licenses.cc0;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rss2irc" = callPackage
@@ -227513,7 +225316,6 @@ self: {
        description = "Haskell bindings for RTCM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rtld" = callPackage
@@ -227738,7 +225540,6 @@ self: {
        description = "Ruler tool for UHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ruler-core" = callPackage
@@ -227757,7 +225558,6 @@ self: {
        ];
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "run-haskell-module" = callPackage
@@ -227780,8 +225580,6 @@ self: {
        libraryHaskellDepends = [ base primitive primitive-unlifted ];
        description = "runST without boxing penalty";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rungekutta" = callPackage
@@ -227875,7 +225673,6 @@ self: {
        description = "Runtime generation of Arbitrary values";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rv" = callPackage
@@ -227893,8 +225690,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "RISC-V";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "rvar" = callPackage
@@ -228003,7 +225798,6 @@ self: {
        description = "simple general-purpose s-expressions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "s3-signer" = callPackage
@@ -228091,6 +225885,97 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "safe-coloured-text_0_1_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, text, validity
+     , validity-bytestring, validity-text
+     }:
+     mkDerivation {
+       pname = "safe-coloured-text";
+       version = "0.1.0.0";
+       sha256 = "1fcqwllpbp9x1r1bvyry6bmp2s9rp8rlr3i94hdiydc71hpl7a0w";
+       libraryHaskellDepends = [
+         base bytestring text validity validity-bytestring validity-text
+       ];
+       description = "Safely output coloured text";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "safe-coloured-text-gen" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-bytestring
+     , genvalidity-sydtest, genvalidity-text, safe-coloured-text
+     , sydtest, sydtest-discover, text
+     }:
+     mkDerivation {
+       pname = "safe-coloured-text-gen";
+       version = "0.0.0.0";
+       sha256 = "1z5livjv0n1i05i3fi58hi7vqwvycapnr5rp1m8rpgj8lhsbi9qx";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-bytestring genvalidity-text
+         safe-coloured-text
+       ];
+       testHaskellDepends = [
+         base genvalidity-sydtest safe-coloured-text sydtest text
+       ];
+       testToolDepends = [ sydtest-discover ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "safe-coloured-text-layout" = callPackage
+    ({ mkDerivation, base, bytestring, safe-coloured-text, sydtest
+     , sydtest-discover, text, validity
+     }:
+     mkDerivation {
+       pname = "safe-coloured-text-layout";
+       version = "0.0.0.0";
+       sha256 = "11fbfqs96dlhyywkmy97b2fsws0fdsv3illdd61w3fckbxbdw6bw";
+       libraryHaskellDepends = [ base safe-coloured-text text validity ];
+       testHaskellDepends = [
+         base bytestring safe-coloured-text sydtest text
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Safely layout output coloured text";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "safe-coloured-text-layout-gen" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-sydtest
+     , safe-coloured-text, safe-coloured-text-gen
+     , safe-coloured-text-layout, sydtest, sydtest-discover
+     }:
+     mkDerivation {
+       pname = "safe-coloured-text-layout-gen";
+       version = "0.0.0.0";
+       sha256 = "1v4in8zl689j47jwac0z1k3rnnsc54qdclrbzja9aa364bmczzv8";
+       libraryHaskellDepends = [
+         base genvalidity safe-coloured-text-gen safe-coloured-text-layout
+       ];
+       testHaskellDepends = [
+         base genvalidity-sydtest safe-coloured-text safe-coloured-text-gen
+         safe-coloured-text-layout sydtest
+       ];
+       testToolDepends = [ sydtest-discover ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "safe-coloured-text-terminfo" = callPackage
+    ({ mkDerivation, base, safe-coloured-text, terminfo }:
+     mkDerivation {
+       pname = "safe-coloured-text-terminfo";
+       version = "0.0.0.0";
+       sha256 = "0f94zzmanmxplkcg1s954rq00ppv69icyjpzr5s0g6c14zp1k85b";
+       libraryHaskellDepends = [ base safe-coloured-text terminfo ];
+       description = "Safely output coloured text";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "safe-decimal" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, deepseq, doctest
      , exceptions, hspec, hspec-discover, QuickCheck, scientific
@@ -228379,7 +226264,6 @@ self: {
        description = "Safe arithmetic operations";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "safe-plugins" = callPackage
@@ -228435,6 +226319,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "safe-wild-cards" = callPackage
+    ({ mkDerivation, base, template-haskell, th-abstraction }:
+     mkDerivation {
+       pname = "safe-wild-cards";
+       version = "1.0.0";
+       sha256 = "1cgs7v30jamk2i8xbis7gc5n0f3c9rykxq7s81mxafyyj33ac36d";
+       libraryHaskellDepends = [ base template-haskell th-abstraction ];
+       testHaskellDepends = [ base ];
+       description = "Use RecordWildCards safely";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "safecopy" = callPackage
     ({ mkDerivation, array, base, bytestring, cereal, containers
      , generic-data, HUnit, lens, lens-action, old-time, QuickCheck
@@ -228572,7 +226468,6 @@ self: {
        description = "Type-safe file handling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "safer-file-handles-bytestring" = callPackage
@@ -228590,7 +226485,6 @@ self: {
        description = "Extends safer-file-handles with ByteString operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "safer-file-handles-text" = callPackage
@@ -228607,7 +226501,6 @@ self: {
        description = "Extends safer-file-handles with Text operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "saferoute" = callPackage
@@ -228637,7 +226530,6 @@ self: {
        description = "Obtain homogeneous values from arbitrary values, transforming or culling data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sajson" = callPackage
@@ -228684,7 +226576,6 @@ self: {
        description = "Compression command-line tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sakuraio-platform" = callPackage
@@ -228800,6 +226691,32 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) libsodium;};
 
+  "saltine_0_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, hashable
+     , libsodium, profunctors, QuickCheck, semigroups, test-framework
+     , test-framework-quickcheck2, text
+     }:
+     mkDerivation {
+       pname = "saltine";
+       version = "0.2.0.0";
+       sha256 = "1xgrnm6qmm0mymq3dh4mdvzi8sfssnpz06xsrw8zdpa1vl0a0gm6";
+       libraryHaskellDepends = [
+         base bytestring deepseq hashable profunctors text
+       ];
+       libraryPkgconfigDepends = [ libsodium ];
+       testHaskellDepends = [
+         base bytestring QuickCheck semigroups test-framework
+         test-framework-quickcheck2 text
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq text
+       ];
+       benchmarkSystemDepends = [ libsodium ];
+       description = "Cryptography that's easy to digest (NaCl/libsodium bindings)";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libsodium;};
+
   "saltine-quickcheck" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-arbitrary, hex
      , libsodium, QuickCheck, saltine, tasty, tasty-quickcheck
@@ -228818,7 +226735,6 @@ self: {
        description = "Quickcheck implementations for some NaCl data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libsodium;};
 
   "salve" = callPackage
@@ -228852,7 +226768,6 @@ self: {
        description = "Modular web application framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "salvia-demo" = callPackage
@@ -228876,7 +226791,6 @@ self: {
        description = "Demo Salvia servers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "salvia-extras" = callPackage
@@ -228898,7 +226812,6 @@ self: {
        description = "Collection of non-fundamental handlers for the Salvia web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "salvia-protocol" = callPackage
@@ -228935,7 +226848,6 @@ self: {
        description = "Session support for the Salvia webserver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "salvia-websocket" = callPackage
@@ -228953,7 +226865,6 @@ self: {
        description = "Websocket implementation for the Salvia Webserver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sample-frame" = callPackage
@@ -229011,7 +226922,6 @@ self: {
        description = "Binding to the C samtools library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) zlib;};
 
   "samtools-conduit" = callPackage
@@ -229033,7 +226943,6 @@ self: {
        description = "Conduit interface to SAM/BAM format files through samtools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "samtools-enumerator" = callPackage
@@ -229050,7 +226959,6 @@ self: {
        description = "Enumerator interface to SamTools library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "samtools-iteratee" = callPackage
@@ -229068,7 +226976,6 @@ self: {
        description = "Iteratee interface to SamTools library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sandi" = callPackage
@@ -229134,8 +227041,8 @@ self: {
      }:
      mkDerivation {
        pname = "sandwich";
-       version = "0.1.0.2";
-       sha256 = "1xcw3mdl85brj6pvynz58aclaf3ya0aq0y038cps9dsz58bqhbka";
+       version = "0.1.0.6";
+       sha256 = "18fl6zdz7q5cm9ypnlgxyk5gh9r0yq481k04q0z740j2h1m5vgj8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -229166,6 +227073,70 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "sandwich_0_1_0_7" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, base, brick
+     , bytestring, colour, containers, directory, exceptions, filepath
+     , free, haskell-src-exts, lens, lifted-async, microlens
+     , microlens-th, monad-control, monad-logger, mtl
+     , optparse-applicative, pretty-show, process, safe, safe-exceptions
+     , stm, string-interpolate, template-haskell, text, time
+     , transformers, transformers-base, unix, unliftio-core, vector, vty
+     }:
+     mkDerivation {
+       pname = "sandwich";
+       version = "0.1.0.7";
+       sha256 = "1ndw054vp2ygxd86whqbsdvrbv49khh1a6ia9zlqzx3gjbhqpxxi";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         directory exceptions filepath free haskell-src-exts lens
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty
+       ];
+       executableHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         directory exceptions filepath free haskell-src-exts lens
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty
+       ];
+       testHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         directory exceptions filepath free haskell-src-exts lens
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty
+       ];
+       description = "Yet another test framework for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "sandwich-quickcheck" = callPackage
+    ({ mkDerivation, base, brick, free, monad-control, QuickCheck
+     , safe-exceptions, sandwich, string-interpolate, text, time
+     }:
+     mkDerivation {
+       pname = "sandwich-quickcheck";
+       version = "0.1.0.5";
+       sha256 = "03z8g5q3yxfpazbwi56ji9554z3l2ac776mzz06xsb7cha3kf7lw";
+       libraryHaskellDepends = [
+         base brick free monad-control QuickCheck safe-exceptions sandwich
+         string-interpolate text time
+       ];
+       testHaskellDepends = [
+         base brick free monad-control QuickCheck safe-exceptions sandwich
+         string-interpolate text time
+       ];
+       description = "Sandwich integration with QuickCheck";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "sandwich-slack" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, lens
      , lens-aeson, monad-logger, mtl, safe, safe-exceptions, sandwich
@@ -229173,8 +227144,8 @@ self: {
      }:
      mkDerivation {
        pname = "sandwich-slack";
-       version = "0.1.0.1";
-       sha256 = "1c7csrdfq342733rgrfwx5rc6v14jhfb9wb44gn699pgzzj031kz";
+       version = "0.1.0.4";
+       sha256 = "1l296q3lxafj3gd7pr6n6qrvcb4zdkncsj2z6ra6q0qfw465jaqk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -229207,8 +227178,51 @@ self: {
      }:
      mkDerivation {
        pname = "sandwich-webdriver";
-       version = "0.1.0.1";
-       sha256 = "10s0zb3al4ii9gm3b6by8czvr8i3s424mlfk81v2hpdv5i7a0yqb";
+       version = "0.1.0.4";
+       sha256 = "0vmqm2f78vd8kk0adg7ldd6rlb5rw5hks9q705gws9dj6s4nyz9r";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers convertible data-default directory exceptions
+         filepath http-client http-client-tls http-conduit lifted-base
+         microlens microlens-aeson monad-control monad-logger mtl network
+         process random retry safe safe-exceptions sandwich
+         string-interpolate temporary text time transformers unix
+         unordered-containers vector webdriver X11
+       ];
+       executableHaskellDepends = [
+         aeson base containers convertible data-default directory exceptions
+         filepath http-client http-client-tls http-conduit lifted-base
+         microlens microlens-aeson monad-control monad-logger mtl network
+         process random retry safe safe-exceptions sandwich
+         string-interpolate temporary text time transformers unix
+         unordered-containers vector webdriver X11
+       ];
+       testHaskellDepends = [
+         aeson base containers convertible data-default directory exceptions
+         filepath http-client http-client-tls http-conduit lifted-base
+         microlens microlens-aeson monad-control monad-logger mtl network
+         process random retry safe safe-exceptions sandwich
+         string-interpolate temporary text time transformers unix
+         unordered-containers vector webdriver X11
+       ];
+       description = "Sandwich integration with Selenium WebDriver";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sandwich-webdriver_0_1_0_5" = callPackage
+    ({ mkDerivation, aeson, base, containers, convertible, data-default
+     , directory, exceptions, filepath, http-client, http-client-tls
+     , http-conduit, lifted-base, microlens, microlens-aeson
+     , monad-control, monad-logger, mtl, network, process, random, retry
+     , safe, safe-exceptions, sandwich, string-interpolate, temporary
+     , text, time, transformers, unix, unordered-containers, vector
+     , webdriver, X11
+     }:
+     mkDerivation {
+       pname = "sandwich-webdriver";
+       version = "0.1.0.5";
+       sha256 = "113as1i4f3hghbwrf4ii8lnxxb8nih177ffjbx3shsddnhx0fa8y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -229237,6 +227251,7 @@ self: {
        ];
        description = "Sandwich integration with Selenium WebDriver";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sarasvati" = callPackage
@@ -229253,32 +227268,32 @@ self: {
      }) {};
 
   "sarsi" = callPackage
-    ({ mkDerivation, async, attoparsec, base, binary, bytestring, Cabal
-     , containers, cryptonite, data-msgpack, directory, filepath
+    ({ mkDerivation, ansi-terminal, async, attoparsec, base, binary
+     , bytestring, Cabal, containers, cryptonite, directory, filepath
      , fsnotify, machines, machines-binary, machines-io
-     , machines-process, network, process, stm, text
+     , machines-process, msgpack, network, process, stm, text
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "sarsi";
-       version = "0.0.4.0";
-       sha256 = "0lv7mlhkf894q4750x53qr7fa7479hpczhgm1xw2xm5n49z35iy9";
+       version = "0.0.5.2";
+       sha256 = "1xqnpqq2hhqkp4y9lp11l0lmp61v19wfqx0g5dfaq8z7k0dq41fm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async attoparsec base binary bytestring containers cryptonite
-         data-msgpack directory filepath fsnotify machines machines-binary
-         machines-io machines-process network process stm text vector
+         ansi-terminal async attoparsec base binary bytestring containers
+         cryptonite directory filepath fsnotify machines machines-binary
+         machines-io machines-process msgpack network process stm text
+         vector
        ];
        executableHaskellDepends = [
-         base binary bytestring Cabal containers data-msgpack directory
-         filepath machines machines-binary machines-io machines-process
-         network process text unordered-containers vector
+         async base binary bytestring Cabal containers directory filepath
+         machines machines-binary machines-io machines-process msgpack
+         network process stm text unordered-containers vector
        ];
        description = "A universal quickfix toolkit and his protocol";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sasl" = callPackage
@@ -229296,7 +227311,6 @@ self: {
        description = "SASL implementation using simple-pipe";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sat" = callPackage
@@ -229330,7 +227344,6 @@ self: {
        description = "A minimal SAT solver";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "satchmo" = callPackage
@@ -229367,7 +227380,6 @@ self: {
        description = "driver for external satchmo backends";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "satchmo-examples" = callPackage
@@ -229386,7 +227398,6 @@ self: {
        description = "examples that show how to use satchmo";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "satchmo-funsat" = callPackage
@@ -229403,7 +227414,6 @@ self: {
        description = "funsat driver as backend for satchmo";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "satchmo-minisat" = callPackage
@@ -229416,7 +227426,6 @@ self: {
        description = "minisat driver as backend for satchmo";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "satchmo-toysat" = callPackage
@@ -229433,7 +227442,6 @@ self: {
        description = "toysat driver as backend for satchmo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "savage" = callPackage
@@ -229553,6 +227561,37 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "sbv_7_13" = callPackage
+    ({ mkDerivation, array, async, base, bytestring, containers
+     , crackNum, deepseq, directory, doctest, filepath, generic-deriving
+     , ghc, Glob, hlint, mtl, pretty, process, QuickCheck, random, syb
+     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+     , template-haskell, time, z3
+     }:
+     mkDerivation {
+       pname = "sbv";
+       version = "7.13";
+       sha256 = "0bk400swnb4s98c5p71ml1px6jndaiqhf5dj7zmnliyplqcgpfik";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array async base containers crackNum deepseq directory filepath
+         generic-deriving ghc mtl pretty process QuickCheck random syb
+         template-haskell time
+       ];
+       testHaskellDepends = [
+         base bytestring containers crackNum directory doctest filepath Glob
+         hlint mtl QuickCheck random syb tasty tasty-golden tasty-hunit
+         tasty-quickcheck template-haskell
+       ];
+       testSystemDepends = [ z3 ];
+       description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
+       license = lib.licenses.bsd3;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) z3;};
+
   "sbv" = callPackage
     ({ mkDerivation, array, async, base, bench-show, bytestring
      , containers, deepseq, directory, doctest, filepath, gauge, Glob
@@ -229562,8 +227601,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbv";
-       version = "8.14";
-       sha256 = "1yf350daksxwz084j81ngamr53jpz7y2fi4cnpni6vy16mb0sxz1";
+       version = "8.15";
+       sha256 = "11qzh2gfq9v8cxz6jjbipnfiwjs0hw34ghg5gdpr0h7bj77in30p";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array async base containers deepseq directory filepath libBF mtl
@@ -229582,6 +227621,9 @@ self: {
        ];
        description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
        license = lib.licenses.bsd3;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
      }) {inherit (pkgs) z3;};
 
   "sbvPlugin" = callPackage
@@ -229623,7 +227665,6 @@ self: {
        description = "Low-level Starcraft II API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sc2-proto" = callPackage
@@ -229662,7 +227703,6 @@ self: {
        description = "Support and utility library for sc2hs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sc2hs" = callPackage
@@ -229704,7 +227744,6 @@ self: {
        description = "Haskell bindings to sc3-rdu (sc3 rd ugens)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scalable-server" = callPackage
@@ -229723,7 +227762,6 @@ self: {
        description = "Library for writing fast/scalable TCP-based services";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scaleimage" = callPackage
@@ -229784,7 +227822,6 @@ self: {
        description = "Test webhooks locally";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scalpel" = callPackage
@@ -229837,7 +227874,6 @@ self: {
        description = "scalpel scrapers for search engines";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scan" = callPackage
@@ -229870,8 +227906,6 @@ self: {
        ];
        description = "Metadata types for Albedo Scanners";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scan-vector-machine" = callPackage
@@ -229885,7 +227919,6 @@ self: {
        description = "An implementation of the Scan Vector Machine instruction set in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scanf" = callPackage
@@ -229927,6 +227960,8 @@ self: {
        testHaskellDepends = [ attoparsec base bytestring hspec scanner ];
        description = "Inject attoparsec parser with backtracking into non-backtracking scanner";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "scat" = callPackage
@@ -229950,6 +227985,7 @@ self: {
        ];
        description = "Generates unique passwords for various websites from a single password";
        license = lib.licenses.bsd3;
+       platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
      }) {};
 
   "scc" = callPackage
@@ -230129,7 +228165,6 @@ self: {
        description = "Encoding-independent schemas for Haskell data types";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "schemas" = callPackage
@@ -230185,7 +228220,6 @@ self: {
        description = "JSON-biased spec and validation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scholdoc" = callPackage
@@ -230231,7 +228265,6 @@ self: {
        description = "Converts ScholarlyMarkdown documents to HTML5/LaTeX/Docx format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scholdoc-citeproc" = callPackage
@@ -230266,7 +228299,6 @@ self: {
        description = "Scholdoc fork of pandoc-citeproc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scholdoc-texmath" = callPackage
@@ -230290,7 +228322,6 @@ self: {
        description = "Scholdoc fork of texmath";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scholdoc-types" = callPackage
@@ -230398,20 +228429,20 @@ self: {
   "scientific" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, criterion
      , deepseq, hashable, integer-gmp, integer-logarithms, primitive
-     , QuickCheck, smallcheck, tasty, tasty-ant-xml, tasty-hunit
-     , tasty-quickcheck, tasty-smallcheck, text
+     , QuickCheck, smallcheck, tasty, tasty-hunit, tasty-quickcheck
+     , tasty-smallcheck, template-haskell, text
      }:
      mkDerivation {
        pname = "scientific";
-       version = "0.3.6.2";
-       sha256 = "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397";
+       version = "0.3.7.0";
+       sha256 = "1aa3ngb71l2sh1x2829napnr1w285q0sn2f7z2wvi3ynng2238d3";
        libraryHaskellDepends = [
          base binary bytestring containers deepseq hashable integer-gmp
-         integer-logarithms primitive text
+         integer-logarithms primitive template-haskell text
        ];
        testHaskellDepends = [
-         base binary bytestring QuickCheck smallcheck tasty tasty-ant-xml
-         tasty-hunit tasty-quickcheck tasty-smallcheck text
+         base binary bytestring QuickCheck smallcheck tasty tasty-hunit
+         tasty-quickcheck tasty-smallcheck text
        ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "Numbers represented using scientific notation";
@@ -230442,7 +228473,6 @@ self: {
        description = "Scientific notation intended for tokenization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scion" = callPackage
@@ -230469,7 +228499,6 @@ self: {
        description = "Haskell IDE library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scion-browser" = callPackage
@@ -230505,7 +228534,6 @@ self: {
        description = "Command-line interface for browsing and searching packages documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scons2dot" = callPackage
@@ -230539,7 +228567,6 @@ self: {
        description = "An interactive renderer for plotting time-series data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scope-cairo" = callPackage
@@ -230564,7 +228591,6 @@ self: {
        description = "An interactive renderer for plotting time-series data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scottish" = callPackage
@@ -230598,8 +228624,8 @@ self: {
        pname = "scotty";
        version = "0.12";
        sha256 = "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1";
-       revision = "2";
-       editedCabalFile = "1a5xv44fkjxw6ggp415543zbb1mrkdi05kprf5y8rv3wc8avnssd";
+       revision = "3";
+       editedCabalFile = "0lvvfbjf4w73y43ax80h9yb2nvf3n2kc859j9advcmfnmdn33x5v";
        libraryHaskellDepends = [
          aeson base base-compat-batteries blaze-builder bytestring
          case-insensitive data-default-class exceptions fail http-types
@@ -230745,7 +228771,6 @@ self: {
        description = "Easy Mustache templating support for Scotty";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scotty-haxl" = callPackage
@@ -230921,7 +228946,6 @@ self: {
        description = "An SCP protocol implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scrabble-bot" = callPackage
@@ -230942,7 +228966,6 @@ self: {
        description = "Scrabble play generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scrapbook" = callPackage
@@ -230967,7 +228990,6 @@ self: {
        description = "collect posts of site that is wrote in config yaml using feed or scraping";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "scrapbook-core" = callPackage
@@ -231123,6 +229145,7 @@ self: {
        ];
        description = "Stronger password hashing via sequential memory-hard functions";
        license = lib.licenses.bsd3;
+       platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
      }) {};
 
   "scrz" = callPackage
@@ -231223,7 +229246,6 @@ self: {
        description = "Distributed SDE solver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sdf2p1-parser" = callPackage
@@ -231695,7 +229717,6 @@ self: {
        description = "PostgreSQL backend for Seakale";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "seakale-tests" = callPackage
@@ -231712,7 +229733,6 @@ self: {
        description = "Helpers to test code using Seakale";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "seal-module" = callPackage
@@ -231973,7 +229993,6 @@ self: {
        description = "Example of writing \"secure\" file removal in Haskell rather than C";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "secure-sockets" = callPackage
@@ -232034,7 +230053,6 @@ self: {
        description = "Sedna C API XML Binding";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {sedna = null;};
 
   "seitz-symbol" = callPackage
@@ -232055,7 +230073,6 @@ self: {
        description = "Read and Display Seitz Symbol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "selda" = callPackage
@@ -232213,7 +230230,6 @@ self: {
        description = "Run the selenium standalone server for usage with webdriver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "self-extract" = callPackage
@@ -232234,7 +230250,6 @@ self: {
        description = "A Haskell library to make self-extracting executables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "selfrestart" = callPackage
@@ -232342,7 +230357,6 @@ self: {
        description = "Weakened partial isomorphisms, reversible computations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "semialign" = callPackage
@@ -232582,7 +230596,6 @@ self: {
        description = "Semirings, ring-like structures used for dynamic programming applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "semiring-num" = callPackage
@@ -232609,7 +230622,6 @@ self: {
        description = "Basic semiring class and instances";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "semiring-simple" = callPackage
@@ -232767,7 +230779,6 @@ self: {
        description = "Distributed sensor network for the raspberry pi";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sensu-run" = callPackage
@@ -232805,7 +230816,6 @@ self: {
        description = "Easily generating message of japanese natural language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sentiwordnet-parser" = callPackage
@@ -232862,13 +230872,13 @@ self: {
      , cassava, containers, data-default, directory, doctest
      , doctest-discover, file-embed, filepath, hlint, hspec
      , hspec-discover, html-charset, http-client, http-types
-     , optparse-applicative, QuickCheck, temporary, text, text-trie
-     , unicode-show, wai, warp, zip
+     , interpolatedstring-perl6, optparse-applicative, QuickCheck
+     , random, temporary, text, text-trie, unicode-show, wai, warp, zip
      }:
      mkDerivation {
        pname = "seonbi";
-       version = "0.1.1";
-       sha256 = "1jsikmlr647c51zmd471wnff6wzxybmp7bvidvyx5fkzb3nlhrqb";
+       version = "0.2.0";
+       sha256 = "1bj428ds0lw6vg0927mn9ss63zrrzfi9jn7fy1hpr583vywc8pba";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -232885,14 +230895,14 @@ self: {
          optparse-applicative text wai warp
        ];
        testHaskellDepends = [
-         aeson base bytestring containers doctest doctest-discover hlint
-         hspec hspec-discover QuickCheck text unicode-show
+         aeson base bytestring containers directory doctest doctest-discover
+         filepath hlint hspec hspec-discover interpolatedstring-perl6
+         QuickCheck random text unicode-show
        ];
        testToolDepends = [ hspec-discover ];
        description = "SmartyPants for Korean language";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "separated" = callPackage
@@ -232940,7 +230950,6 @@ self: {
        description = "Dynamic strictness control, including space leak repair";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "seqalign" = callPackage
@@ -232995,7 +231004,6 @@ self: {
        description = "Handle sequence locations for bioinformatics";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "seqloc-datafiles" = callPackage
@@ -233030,7 +231038,6 @@ self: {
        description = "Read and write BED and GTF format genome annotations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sequence" = callPackage
@@ -233146,7 +231153,6 @@ self: {
        description = "A sequence labeler based on Collins's sequence perceptron";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "serf" = callPackage
@@ -233328,7 +231334,6 @@ self: {
        description = "Simple project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "serv" = callPackage
@@ -233343,7 +231348,6 @@ self: {
        description = "Dependently typed API framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "serv-wai" = callPackage
@@ -233369,7 +231373,6 @@ self: {
        description = "Dependently typed API servers with Serv";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant" = callPackage
@@ -233383,6 +231386,8 @@ self: {
        pname = "servant";
        version = "0.18.2";
        sha256 = "18mfjj9za8g9rgj7a6j0ly6lf1ykfwrlpy3cf53lv1gxvb19gmk5";
+       revision = "1";
+       editedCabalFile = "0f783bj89vb7j5cj5hk6hdmplhk3ay1z6swsinlr7a7f9h59x6vh";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat bifunctors bytestring
          case-insensitive deepseq http-api-data http-media http-types mmorph
@@ -233542,8 +231547,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "servant-docs/servant-auth compatibility";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-auth-hmac" = callPackage
@@ -233649,7 +231652,6 @@ self: {
        description = "Servant based API and server for token based authorisation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-auth-token-acid" = callPackage
@@ -233672,7 +231674,6 @@ self: {
        description = "Acid-state backend for servant-auth-token server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-auth-token-api" = callPackage
@@ -233713,7 +231714,6 @@ self: {
        description = "Leveldb backend for servant-auth-token server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-auth-token-persistent" = callPackage
@@ -233734,7 +231734,6 @@ self: {
        description = "Persistent backend for servant-auth-token server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-auth-token-rocksdb" = callPackage
@@ -233758,7 +231757,6 @@ self: {
        description = "RocksDB backend for servant-auth-token server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-auth-wordpress" = callPackage
@@ -233767,15 +231765,14 @@ self: {
      }:
      mkDerivation {
        pname = "servant-auth-wordpress";
-       version = "1.0.0.1";
-       sha256 = "08ngbgmzksp27n8znigrj5i2nvsqjansn4vv3my38vdqqgzm09w8";
+       version = "1.0.0.2";
+       sha256 = "0j4n5anlw3a2cgclmyblg01dcls91hzlmxgc2jkcdpwd49i0pv5n";
        libraryHaskellDepends = [
          base mtl servant-server text time wai wordpress-auth
        ];
        description = "Authenticate Routes Using Wordpress Cookies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-avro" = callPackage
@@ -233797,6 +231794,27 @@ self: {
        broken = true;
      }) {};
 
+  "servant-benchmark" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, hspec, http-media, http-types, QuickCheck
+     , servant, text, utf8-string, yaml
+     }:
+     mkDerivation {
+       pname = "servant-benchmark";
+       version = "0.1.2.0";
+       sha256 = "0lqqk410nx48g895pfxkbbk85b1ijs4bfl9zr2li2p7wwwc4gyi9";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring case-insensitive http-media
+         http-types QuickCheck servant text yaml
+       ];
+       testHaskellDepends = [
+         aeson base base64-bytestring bytestring case-insensitive hspec
+         http-media http-types QuickCheck servant text utf8-string yaml
+       ];
+       description = "Generate benchmark files from a Servant API";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "servant-blaze" = callPackage
     ({ mkDerivation, base, blaze-html, http-media, servant
      , servant-server, wai, warp
@@ -233828,8 +231846,6 @@ self: {
        ];
        description = "Servant CSV content-type for cassava";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-checked-exceptions" = callPackage
@@ -233854,8 +231870,6 @@ self: {
        ];
        description = "Checked exceptions for Servant APIs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-checked-exceptions-core" = callPackage
@@ -233877,8 +231891,6 @@ self: {
        testHaskellDepends = [ base doctest Glob ];
        description = "Checked exceptions for Servant APIs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-cli" = callPackage
@@ -233907,7 +231919,6 @@ self: {
        description = "Command line interface for Servant API clients";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-client" = callPackage
@@ -233923,6 +231934,8 @@ self: {
        pname = "servant-client";
        version = "0.18.2";
        sha256 = "0acwpjmi5r62jgmpw508jq942kq5dhdy5602w9v7g318inxzwwi1";
+       revision = "1";
+       editedCabalFile = "1phjfsqzmwc5m45f9zbpp76f7f9z96v0in7ngxz6pj8r90bcv8ga";
        libraryHaskellDepends = [
          base base-compat bytestring containers deepseq exceptions
          http-client http-media http-types kan-extensions monad-control mtl
@@ -233950,8 +231963,8 @@ self: {
        pname = "servant-client-core";
        version = "0.18.2";
        sha256 = "0b449c28z20sx98pc2d4p65jr3m9glsa47jjc2w4gf90jisl173r";
-       revision = "1";
-       editedCabalFile = "0vwj97h6x7zwvyx3ra09yhpi37mnn2kw5m27wnkzwwvk487swqxd";
+       revision = "2";
+       editedCabalFile = "0clbchlla9r0scz0giqmy3pwsnlfcf19hwkqj3yl1y77qx7kv4lr";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring bytestring containers
          deepseq exceptions free http-media http-types network-uri safe
@@ -234004,7 +232017,6 @@ self: {
        description = "Automatically derive API client functions with named and optional parameters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-conduit" = callPackage
@@ -234045,7 +232057,6 @@ self: {
        description = "Generate servant client library for C#";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-db" = callPackage
@@ -234085,7 +232096,6 @@ self: {
        description = "Derive a postgres client to database API specified by servant-db";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-dhall" = callPackage
@@ -234185,7 +232195,6 @@ self: {
        description = "Combinators for rendering EDE templates in servant web applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-ekg" = callPackage
@@ -234282,7 +232291,6 @@ self: {
        description = "Servant support for Server-Sent events";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-examples" = callPackage
@@ -234306,7 +232314,6 @@ self: {
        description = "Example programs for servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-exceptions" = callPackage
@@ -234373,6 +232380,8 @@ self: {
        pname = "servant-foreign";
        version = "0.15.3";
        sha256 = "1bz2ry5pd8cx5pmsvg7q29r9gd5kqjjv9nd97f7abwjqi8as2413";
+       revision = "1";
+       editedCabalFile = "0d9h941g7ja73g10az13pad9rjlp126b662f71q7c8yd6kh4jl9r";
        libraryHaskellDepends = [
          base base-compat http-types lens servant text
        ];
@@ -234533,6 +232542,8 @@ self: {
        pname = "servant-http-streams";
        version = "0.18.2";
        sha256 = "1kyiv8qamw9dxv2ax7hx9n7w9507vjvwn89x4nvlsc87nq91hvg0";
+       revision = "1";
+       editedCabalFile = "0hkcyz93px5x6l5nyh9ymswhwpfidbji2kmlhrw7ksg4zsxkl2p9";
        libraryHaskellDepends = [
          base base-compat bytestring case-insensitive containers deepseq
          exceptions http-common http-media http-streams http-types
@@ -234577,7 +232588,6 @@ self: {
        description = "Generate HTTP2 clients from Servant API descriptions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-iCalendar" = callPackage
@@ -234594,8 +232604,6 @@ self: {
        ];
        description = "Servant support for iCalendar";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-jquery" = callPackage
@@ -234778,7 +232786,6 @@ self: {
        description = "Matrix parameter combinator for servant";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-mock" = callPackage
@@ -234822,8 +232829,8 @@ self: {
        pname = "servant-multipart";
        version = "0.12";
        sha256 = "1hs1h66zjhknfnz1bdi5c0d2sfb20fc7x9adbc87gq168k8riqvl";
-       revision = "1";
-       editedCabalFile = "0pc254b458v4k5xw729fvw3q3klwpkai2mmp455dw2i7g02dv0da";
+       revision = "2";
+       editedCabalFile = "019zk4vlm9gv8n85qv6819i6qn0ddiz56birlmabz2n95l715m7y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -234841,8 +232848,6 @@ self: {
        ];
        description = "multipart/form-data (e.g file upload) support for servant";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-named" = callPackage
@@ -234910,40 +232915,10 @@ self: {
      }:
      mkDerivation {
        pname = "servant-openapi3";
-       version = "2.0.1.1";
-       sha256 = "1cyzyljmdfr3gigdszcpj1i7l698fnxpc9hr83mzspm6qcmbqmgf";
-       revision = "2";
-       editedCabalFile = "0y214pgkfkysvdll15inf44psyqj7dmzcwp2vjynwdlywy2j0y16";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         aeson aeson-pretty base base-compat bytestring hspec http-media
-         insert-ordered-containers lens openapi3 QuickCheck servant
-         singleton-bool text unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base base-compat directory doctest filepath hspec lens
-         lens-aeson openapi3 QuickCheck servant template-haskell text time
-         utf8-string vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Generate a Swagger/OpenAPI/OAS 3.0 specification for your servant API.";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "servant-openapi3_2_0_1_2" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
-     , Cabal, cabal-doctest, directory, doctest, filepath, hspec
-     , hspec-discover, http-media, insert-ordered-containers, lens
-     , lens-aeson, openapi3, QuickCheck, servant, singleton-bool
-     , template-haskell, text, time, unordered-containers, utf8-string
-     , vector
-     }:
-     mkDerivation {
-       pname = "servant-openapi3";
        version = "2.0.1.2";
        sha256 = "1lqvycbv49x0i3adbsdlcl49n65wxfjzhiz9pj11hg4k0j952q5p";
+       revision = "1";
+       editedCabalFile = "19mag4xbiswaxpdxjn5yj3jbascbwza0y89zppgzb342prqdryjr";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -234958,8 +232933,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Generate a Swagger/OpenAPI/OAS 3.0 specification for your servant API.";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-options" = callPackage
@@ -235045,8 +233018,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-polysemy";
-       version = "0.1.2";
-       sha256 = "05qk2kl90lqszwhi1yqnj63zkx3qvd6jbaxsxjw68k7ppsjvnyks";
+       version = "0.1.3";
+       sha256 = "132yf6fp0hl6k3859sywkfzsca8xsaqd3a4ca4vdqqjrllk0m88i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -235061,7 +233034,6 @@ self: {
        description = "Utilities for using servant in a polysemy stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-pool" = callPackage
@@ -235094,7 +233066,6 @@ self: {
        description = "Useful functions and instances for using servant with a PostgreSQL context";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-proto-lens" = callPackage
@@ -235240,8 +233211,6 @@ self: {
        libraryHaskellDepends = [ base servant-client-core servant-rawm ];
        description = "The client implementation of servant-rawm";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-rawm-docs" = callPackage
@@ -235257,8 +233226,6 @@ self: {
        ];
        description = "Documentation generator for 'RawM' endpoints";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-rawm-server" = callPackage
@@ -235432,8 +233399,6 @@ self: {
        doHaddock = false;
        description = "Generates a servant API module";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-server" = callPackage
@@ -235449,6 +233414,8 @@ self: {
        pname = "servant-server";
        version = "0.18.2";
        sha256 = "05ricb3w1app6c094zwaq2jnqv53jpf4n89ffynm31dvf6h9qdih";
+       revision = "1";
+       editedCabalFile = "0xhq2rpc4ry1xgwz835bcm8qdnsifpc8wck9wa5r510ff21dqw4d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -235487,7 +233454,6 @@ self: {
        description = "Automatically derive API server functions with named and optional parameters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-smsc-ru" = callPackage
@@ -235550,7 +233516,6 @@ self: {
        description = "A family of combinators for defining webservices APIs and serving them";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-stache" = callPackage
@@ -235643,7 +233608,6 @@ self: {
        description = "Client instances for the 'servant-streaming' package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-streaming-docs" = callPackage
@@ -235662,7 +233626,6 @@ self: {
        description = "Client instances for the 'servant-docs' package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-streaming-server" = callPackage
@@ -235690,7 +233653,6 @@ self: {
        description = "Server instances for the 'servant-streaming' package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-subscriber" = callPackage
@@ -235762,26 +233724,9 @@ self: {
        description = "Swagger Tags for Servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-swagger-ui" = callPackage
-    ({ mkDerivation, base, bytestring, file-embed-lzma, servant
-     , servant-server, servant-swagger-ui-core, swagger2, text
-     }:
-     mkDerivation {
-       pname = "servant-swagger-ui";
-       version = "0.3.4.3.37.2";
-       sha256 = "1kx8i2x3ffbwbjh2i2ljha2cl6vfj1fcad9wkmc9ll9mbj6cpl8v";
-       libraryHaskellDepends = [
-         base bytestring file-embed-lzma servant servant-server
-         servant-swagger-ui-core swagger2 text
-       ];
-       description = "Servant swagger ui";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-swagger-ui_0_3_5_3_47_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, file-embed-lzma, servant
      , servant-server, servant-swagger-ui-core, text
      }:
@@ -235795,28 +233740,9 @@ self: {
        ];
        description = "Servant swagger ui";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-swagger-ui-core" = callPackage
-    ({ mkDerivation, base, blaze-markup, bytestring, http-media
-     , servant, servant-blaze, servant-server, swagger2, text
-     , transformers, transformers-compat, wai-app-static
-     }:
-     mkDerivation {
-       pname = "servant-swagger-ui-core";
-       version = "0.3.4";
-       sha256 = "05vi74kgsf3yhkbw9cjl1zxs5swhh9jib6bwqf1h11cg0nr5i8ab";
-       libraryHaskellDepends = [
-         base blaze-markup bytestring http-media servant servant-blaze
-         servant-server swagger2 text transformers transformers-compat
-         wai-app-static
-       ];
-       description = "Servant swagger ui core components";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-swagger-ui-core_0_3_5" = callPackage
     ({ mkDerivation, aeson, base, blaze-markup, bytestring, http-media
      , servant, servant-blaze, servant-server, text, transformers
      , transformers-compat, wai-app-static
@@ -235831,7 +233757,6 @@ self: {
        ];
        description = "Servant swagger ui core components";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-swagger-ui-jensoleg" = callPackage
@@ -235962,7 +233887,6 @@ self: {
        description = "Servant Integration for Waargonaut JSON Package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-wasm" = callPackage
@@ -236078,7 +234002,6 @@ self: {
        description = "Client library for servant-zeppelin combinators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-zeppelin-server" = callPackage
@@ -236103,7 +234026,6 @@ self: {
        description = "Server library for servant-zeppelin combinators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-zeppelin-swagger" = callPackage
@@ -236126,7 +234048,6 @@ self: {
        description = "Swagger instances for servant-zeppelin combinators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "server-generic" = callPackage
@@ -236143,6 +234064,7 @@ self: {
        description = "Auto-generate a server for your datatype";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
        broken = true;
      }) {};
 
@@ -236195,8 +234117,6 @@ self: {
        ];
        description = "Secure, modular server-side sessions";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "serversession-backend-acid-state" = callPackage
@@ -236217,8 +234137,6 @@ self: {
        ];
        description = "Storage backend for serversession using acid-state";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "serversession-backend-persistent" = callPackage
@@ -236287,8 +234205,6 @@ self: {
        ];
        description = "Snap bindings for serversession";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "serversession-frontend-wai" = callPackage
@@ -236306,8 +234222,6 @@ self: {
        ];
        description = "wai-session bindings for serversession";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "serversession-frontend-yesod" = callPackage
@@ -236476,7 +234390,6 @@ self: {
        description = "Session types distributed";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "set-cover" = callPackage
@@ -236579,7 +234492,6 @@ self: {
        description = "Treating files as sets to perform rapid set manipulation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "setenv" = callPackage
@@ -236787,8 +234699,6 @@ self: {
        ];
        description = "Invertible grammar combinators for S-expressions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sexp-show" = callPackage
@@ -236970,7 +234880,6 @@ self: {
        description = "SGF (Smart Game Format) parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sgrep" = callPackage
@@ -236985,7 +234894,6 @@ self: {
        description = "Sgrep - grep Fasta files for sequences matching a regular expression";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sh2md" = callPackage
@@ -237047,7 +234955,6 @@ self: {
        description = "SHA-1 Hash";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shade" = callPackage
@@ -237432,7 +235339,6 @@ self: {
        description = "Shake rules for CSS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shake-pack" = callPackage
@@ -237584,7 +235490,6 @@ self: {
        description = "simple and interactive command-line build tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shakers" = callPackage
@@ -237752,7 +235657,6 @@ self: {
        description = "Parser and related tools for ESRI shapefile format";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shapely-data" = callPackage
@@ -237772,7 +235676,6 @@ self: {
        description = "Generics using @(,)@ and @Either@, with algebraic operations and typed conversions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shapes" = callPackage
@@ -237959,7 +235862,6 @@ self: {
        description = "Test webhooks locally";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shell-conduit" = callPackage
@@ -238088,7 +235990,6 @@ self: {
        description = "Extra functionality for shellmate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shellmet" = callPackage
@@ -238453,8 +236354,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Link shortcuts for use in text markup";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shorten-strings" = callPackage
@@ -238570,7 +236469,6 @@ self: {
        description = "A simple gtk based Russian Roulette game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shower" = callPackage
@@ -238613,7 +236511,6 @@ self: {
        description = "Web automation library in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shplit" = callPackage
@@ -238664,7 +236561,6 @@ self: {
        description = "Shuffle tool for UHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "shunya-library" = callPackage
@@ -238721,7 +236617,6 @@ self: {
        description = "An interface to the Silicon Labs Si5351 clock chip";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sibe" = callPackage
@@ -238748,7 +236643,6 @@ self: {
        description = "Machine Learning algorithms";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sieve" = callPackage
@@ -238846,7 +236740,6 @@ self: {
        description = "Thom polynomials of second order Thom-Boardman singularities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sign" = callPackage
@@ -238869,8 +236762,6 @@ self: {
        ];
        description = "Arithmetic over signs and sets of signs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "signable" = callPackage
@@ -238900,7 +236791,6 @@ self: {
        description = "Deterministic serialisation and signatures with proto-lens support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "signable-haskell-protoc" = callPackage
@@ -238951,7 +236841,6 @@ self: {
        description = "Synchronous signal processing for DSLs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "signature" = callPackage
@@ -238970,7 +236859,6 @@ self: {
        description = "Hmac sha256 signature json and http payload";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "signed-multiset" = callPackage
@@ -239008,7 +236896,6 @@ self: {
        description = "A Haskell clone of OpenBSD signify";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "silently" = callPackage
@@ -239032,8 +236919,6 @@ self: {
        libraryHaskellDepends = [ base prettyprinter ];
        description = "Prettyprinting transformers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "silvi" = callPackage
@@ -239052,7 +236937,6 @@ self: {
        description = "A generator for different kinds of data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simd" = callPackage
@@ -239084,7 +236968,6 @@ self: {
        description = "stochastic simulation engine";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simple" = callPackage
@@ -239202,7 +237085,6 @@ self: {
        description = "A simple C value type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simple-cabal" = callPackage
@@ -239387,7 +237269,6 @@ self: {
        description = "Simplified interface for firewire cameras";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simple-form" = callPackage
@@ -239606,7 +237487,6 @@ self: {
        description = "Simple parsing/pretty printing for Nix expressions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simple-observer" = callPackage
@@ -239657,7 +237537,6 @@ self: {
        description = "Simplified Pascal language to SSVM compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simple-pipe" = callPackage
@@ -240035,7 +237914,6 @@ self: {
        description = "Lenses for simpleirc types";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simplelru" = callPackage
@@ -240184,6 +238062,51 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "simplexmq" = callPackage
+    ({ mkDerivation, ansi-terminal, asn1-encoding, asn1-types, async
+     , attoparsec, base, base64-bytestring, bytestring, containers
+     , cryptonite, cryptostore, directory, filepath, generic-random
+     , hspec, hspec-core, HUnit, ini, iso8601-time, memory, mtl, network
+     , network-transport, optparse-applicative, QuickCheck, random
+     , simple-logger, sqlite-simple, stm, template-haskell, text, time
+     , timeit, transformers, unliftio, unliftio-core, websockets, x509
+     }:
+     mkDerivation {
+       pname = "simplexmq";
+       version = "0.3.2";
+       sha256 = "1bxg91ycmpa8762v5vdviqvyzkfap4iv9plnr7gcibf8vsd39qxl";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal asn1-encoding asn1-types async attoparsec base
+         base64-bytestring bytestring containers cryptonite directory
+         filepath generic-random iso8601-time memory mtl network
+         network-transport QuickCheck random simple-logger sqlite-simple stm
+         template-haskell text time transformers unliftio unliftio-core
+         websockets x509
+       ];
+       executableHaskellDepends = [
+         ansi-terminal asn1-encoding asn1-types async attoparsec base
+         base64-bytestring bytestring containers cryptonite cryptostore
+         directory filepath generic-random ini iso8601-time memory mtl
+         network network-transport optparse-applicative QuickCheck random
+         simple-logger sqlite-simple stm template-haskell text time
+         transformers unliftio unliftio-core websockets x509
+       ];
+       testHaskellDepends = [
+         ansi-terminal asn1-encoding asn1-types async attoparsec base
+         base64-bytestring bytestring containers cryptonite directory
+         filepath generic-random hspec hspec-core HUnit iso8601-time memory
+         mtl network network-transport QuickCheck random simple-logger
+         sqlite-simple stm template-haskell text time timeit transformers
+         unliftio unliftio-core websockets x509
+       ];
+       description = "SimpleXMQ message broker";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "simplistic-generics" = callPackage
     ({ mkDerivation, base, containers, deepseq, kind-apply, mtl
      , template-haskell
@@ -240212,7 +238135,6 @@ self: {
        description = "Simulate sequencing with different models for priming and errors";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "simtreelo" = callPackage
@@ -240265,15 +238187,15 @@ self: {
      }) {inherit (pkgs.xorg) libXft;};
 
   "single-tuple" = callPackage
-    ({ mkDerivation, base, hspec, hspec-discover, OneTuple, Only }:
+    ({ mkDerivation, base, ghc-prim, hspec, hspec-discover, OneTuple
+     , Only
+     }:
      mkDerivation {
        pname = "single-tuple";
-       version = "0.1.1.0";
-       sha256 = "1cviix5did4pm4bimg12v2qa9ms5icf19k3iz13g07d5q9jyiwji";
-       revision = "1";
-       editedCabalFile = "0gmki1bz7sn1lw5f1f1zp3rfphwba03fv6825djlidybln8snld0";
-       libraryHaskellDepends = [ base OneTuple Only ];
-       testHaskellDepends = [ base hspec OneTuple Only ];
+       version = "0.1.2.0";
+       sha256 = "1dxrdddfdvs69icv6ixjv5crfznllxvg8sjiw9xwyn26f36g2mw8";
+       libraryHaskellDepends = [ base ghc-prim OneTuple Only ];
+       testHaskellDepends = [ base ghc-prim hspec OneTuple Only ];
        testToolDepends = [ hspec-discover ];
        description = "a class for single tuple implementations";
        license = lib.licenses.asl20;
@@ -240424,7 +238346,6 @@ self: {
        description = "A promoted and singled version of the base library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "singletons-presburger" = callPackage
@@ -240555,7 +238476,6 @@ self: {
        description = "Encode and decode CSV files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "siren-json" = callPackage
@@ -240581,7 +238501,6 @@ self: {
        description = "Siren Tools for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sirkel" = callPackage
@@ -240599,7 +238518,6 @@ self: {
        description = "Sirkel, a Chord DHT";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sitemap" = callPackage
@@ -240906,7 +238824,6 @@ self: {
        description = "a tool to access the OSX keychain";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "skeletons" = callPackage
@@ -240926,7 +238843,6 @@ self: {
        description = "Manage project skeletons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "skell" = callPackage
@@ -241045,7 +238961,6 @@ self: {
        description = "Skylark client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "skylighting" = callPackage
@@ -241312,8 +239227,6 @@ self: {
        ];
        description = "Bindings for the Slack web API";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "slate" = callPackage
@@ -241350,8 +239263,8 @@ self: {
      }:
      mkDerivation {
        pname = "slave-thread";
-       version = "1.1";
-       sha256 = "02b64s0m7k81s187wj81yzr7l73p79iyh7a59dqf7r72l4r7akbd";
+       version = "1.1.0.1";
+       sha256 = "05hz0qglxg889l3b0sw9f79xqssw70fd62a766xcvj7aalmrc32i";
        libraryHaskellDepends = [
          base deferred-folds focus foldl stm-containers
        ];
@@ -241456,7 +239369,6 @@ self: {
        description = "ws convert markdown to reveal-js";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "slim" = callPackage
@@ -241495,7 +239407,6 @@ self: {
        description = "SLIP-0032: Extended serialization format for BIP-32 wallets";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "slist" = callPackage
@@ -241627,8 +239538,8 @@ self: {
      }:
      mkDerivation {
        pname = "slugify";
-       version = "0.1.0.0";
-       sha256 = "1bsb9jhd85zpa27wfv365axg9qx973wqi1nlnjds262i0ywdc45s";
+       version = "0.1.0.1";
+       sha256 = "1h5lbp33hd10lr2d5cplac7515aphyd56jyj3wlzw5pg3sih8qvv";
        libraryHaskellDepends = [ base text unicode-transforms ];
        testHaskellDepends = [ base hspec QuickCheck text ];
        testToolDepends = [ hspec-discover ];
@@ -241658,8 +239569,6 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Handle molecular sequences";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "small-bytearray-builder" = callPackage
@@ -241673,7 +239582,6 @@ self: {
        description = "Serialize to bytes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smallarray" = callPackage
@@ -241819,7 +239727,6 @@ self: {
        description = "A Unicode text type, optimized for low memory overhead";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smaoin" = callPackage
@@ -241960,7 +239867,6 @@ self: {
        description = "Web based flash card for Word Smart I and II vocabularies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smash" = callPackage
@@ -242068,7 +239974,6 @@ self: {
        description = "Symbolic Model Checking for Dynamic Epistemic Logic";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sme" = callPackage
@@ -242127,7 +240032,6 @@ self: {
        description = "Parse arrays of tokens";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smith-cli" = callPackage
@@ -242152,7 +240056,6 @@ self: {
        description = "Command line tool for <https://smith.st/ Smith>.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smith-client" = callPackage
@@ -242177,7 +240080,6 @@ self: {
        description = "API client for <https://smith.st/ Smith>.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smoothie" = callPackage
@@ -242296,7 +240198,6 @@ self: {
        description = "Dump the communication with an SMT solver for debugging purposes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smtlib2-pipe" = callPackage
@@ -242319,7 +240220,6 @@ self: {
        description = "A type-safe interface to communicate with an SMT solver";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smtlib2-quickcheck" = callPackage
@@ -242336,7 +240236,6 @@ self: {
        description = "Helper functions to create SMTLib expressions in QuickCheck";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smtlib2-timing" = callPackage
@@ -242349,7 +240248,6 @@ self: {
        description = "Get timing informations for SMT queries";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "smtp-mail" = callPackage
@@ -242534,6 +240432,7 @@ self: {
        ];
        description = "Top-level package for the Snap Web Framework";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "snap-accept" = callPackage
@@ -242583,7 +240482,6 @@ self: {
        description = "Command-line tool to manage Snap AuthManager database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snap-blaze" = callPackage
@@ -242688,7 +240586,6 @@ self: {
        description = "Serve Elm files through the Snap web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snap-error-collector" = callPackage
@@ -242739,7 +240636,6 @@ self: {
        description = "A collection of useful helpers and utilities for Snap web applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snap-language" = callPackage
@@ -242950,7 +240846,6 @@ self: {
        description = "Snap Framework utilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snap-web-routes" = callPackage
@@ -243008,7 +240903,6 @@ self: {
        description = "Generic action log snaplet for the Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-amqp" = callPackage
@@ -243049,7 +240943,6 @@ self: {
        description = "Provides an Acid-State backend for the Auth Snaplet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-coffee" = callPackage
@@ -243068,7 +240961,6 @@ self: {
        description = "CoffeeScript for Snap, auto-compilation and pre-compilation";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-css-min" = callPackage
@@ -243185,7 +241077,6 @@ self: {
        description = "A Hasql snaplet";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-haxl" = callPackage
@@ -243202,7 +241093,6 @@ self: {
        description = "Snaplet for Facebook's Haxl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-hdbc" = callPackage
@@ -243224,7 +241114,6 @@ self: {
        description = "HDBC snaplet for Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-hslogger" = callPackage
@@ -243303,7 +241192,6 @@ self: {
        description = "Lexical Style Sheets - Snap Web Framework adaptor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-mandrill" = callPackage
@@ -243321,7 +241209,6 @@ self: {
        description = "Snap framework snaplet for the Mandrill API library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-mongoDB" = callPackage
@@ -243342,7 +241229,6 @@ self: {
        description = "Snap Framework MongoDB support as Snaplet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-mongodb-minimalistic" = callPackage
@@ -243380,7 +241266,6 @@ self: {
        description = "mysql-simple snaplet for the Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-oauth" = callPackage
@@ -243407,7 +241292,6 @@ self: {
        description = "snaplet-oauth";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-persistent" = callPackage
@@ -243475,7 +241359,6 @@ self: {
        description = "Postmark snaplet for the Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-purescript" = callPackage
@@ -243492,8 +241375,6 @@ self: {
        ];
        description = "Automatic (re)compilation of purescript projects";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-recaptcha" = callPackage
@@ -243512,7 +241393,6 @@ self: {
        description = "A ReCAPTCHA verification snaplet with Heist integration and connection sharing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-redis" = callPackage
@@ -243532,8 +241412,6 @@ self: {
        ];
        description = "Redis support for Snap Framework";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-redson" = callPackage
@@ -243554,7 +241432,6 @@ self: {
        description = "CRUD for JSON data with Redis storage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-rest" = callPackage
@@ -243573,7 +241450,6 @@ self: {
        description = "REST resources for the Snap web framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-riak" = callPackage
@@ -243592,7 +241468,6 @@ self: {
        description = "A Snaplet for the Riak database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-sass" = callPackage
@@ -243647,7 +241522,6 @@ self: {
        description = "Snaplet for Sedna Bindings. Essentailly a rip of snaplet-hdbc.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-ses-html" = callPackage
@@ -243718,7 +241592,6 @@ self: {
        description = "Snaplet for JWT authentication with snaplet-sqlite-simple";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-stripe" = callPackage
@@ -243738,7 +241611,6 @@ self: {
        description = "Stripe snaplet for the Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-tasks" = callPackage
@@ -243756,7 +241628,6 @@ self: {
        description = "Snaplet for Snap Framework enabling developers to administrative tasks akin to Rake tasks from Ruby On Rails framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snaplet-typed-sessions" = callPackage
@@ -243803,7 +241674,6 @@ self: {
        description = "A snaplet that communicates with wordpress over its api";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snappy" = callPackage
@@ -243858,7 +241728,6 @@ self: {
        description = "An enumeratee that uses Google's snappy compression library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snappy-lazy" = callPackage
@@ -243892,7 +241761,6 @@ self: {
        description = "Audio file reading/writing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sneakyterm" = callPackage
@@ -243970,7 +241838,6 @@ self: {
        description = "The Simple Nice-Looking Manual Generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snmp" = callPackage
@@ -243990,7 +241857,6 @@ self: {
        description = "SNMP protocol library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snorkels" = callPackage
@@ -244028,7 +241894,6 @@ self: {
        description = "encode any binary instance to white space";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snowball" = callPackage
@@ -244077,7 +241942,6 @@ self: {
        description = "twitter's snowflake";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snowflake-server" = callPackage
@@ -244097,7 +241961,6 @@ self: {
        description = "snowflake http server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "snowglobe" = callPackage
@@ -244280,8 +242143,6 @@ self: {
          transformers unordered-containers vector
        ];
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "socket-sctp" = callPackage
@@ -244404,22 +242265,19 @@ self: {
        description = "High-level network sockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sockets-and-pipes" = callPackage
     ({ mkDerivation, aeson, ascii, async, base, blaze-html, bytestring
-     , containers, network, safe-exceptions, stm, text, time
+     , containers, network, pipes, safe-exceptions, stm, text, time
      }:
      mkDerivation {
        pname = "sockets-and-pipes";
-       version = "0.1";
-       sha256 = "02xc2kddcz93d9yqdchml0yh9gypcx64315baj766adgf8np42nv";
-       revision = "4";
-       editedCabalFile = "1lv2zpyblqryr59ii3zvwi5f06vxsgnla1xa14rardhncs36fa8r";
+       version = "0.2";
+       sha256 = "13xc6f525la66k76y515r0dwjqh583zl7z1k4z1w6hraim6kg95v";
        libraryHaskellDepends = [
          aeson ascii async base blaze-html bytestring containers network
-         safe-exceptions stm text time
+         pipes safe-exceptions stm text time
        ];
        description = "Support for the Sockets and Pipes book";
        license = lib.licenses.asl20;
@@ -244562,7 +242420,6 @@ self: {
        description = "Swagger generation for Solga";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "solr" = callPackage
@@ -244588,7 +242445,6 @@ self: {
        description = "A minimal Solr client library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "solve" = callPackage
@@ -244610,12 +242466,25 @@ self: {
     ({ mkDerivation, base, deepseq }:
      mkDerivation {
        pname = "some";
+       version = "1.0.2";
+       sha256 = "12mv5gzcvl4n5rz685r2nmmiykvnkvrvx7k4cvwscdjjgnqa9y6c";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [ base ];
+       description = "Existential type: Some";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "some_1_0_3" = callPackage
+    ({ mkDerivation, base, deepseq }:
+     mkDerivation {
+       pname = "some";
        version = "1.0.3";
        sha256 = "0w3syapwz9v916zf1i4f8vxymdfg7syc2cpxgnqr018pbswzxrk2";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base ];
        description = "Existential type: Some";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sonic-visualiser" = callPackage
@@ -244786,27 +242655,33 @@ self: {
        description = "Haskell EDSL for Souffle";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "souffle-haskell" = callPackage
-    ({ mkDerivation, array, base, containers, deepseq, directory
-     , filepath, hedgehog, hspec, hspec-hedgehog, mtl
-     , neat-interpolation, process, template-haskell, temporary, text
-     , type-errors-pretty, vector
+    ({ mkDerivation, array, base, bytestring, containers, criterion
+     , deepseq, directory, filepath, hedgehog, hspec, hspec-hedgehog
+     , mtl, neat-interpolation, process, template-haskell, temporary
+     , text, text-short, type-errors-pretty, vector
      }:
      mkDerivation {
        pname = "souffle-haskell";
-       version = "2.1.0";
-       sha256 = "1szkv27my46xgwqanhb6wkgncll08yznpl0p2m1wq5cifxir2m7h";
+       version = "3.0.0";
+       sha256 = "0zwz28w8fmz8lfwd5bzhysc43y5gfsa1px2xhlkxg5psy0j1935q";
        libraryHaskellDepends = [
-         array base containers deepseq directory filepath mtl process
-         template-haskell temporary text type-errors-pretty vector
+         array base bytestring containers deepseq directory filepath mtl
+         process template-haskell temporary text text-short
+         type-errors-pretty vector
        ];
        testHaskellDepends = [
-         array base containers deepseq directory filepath hedgehog hspec
-         hspec-hedgehog mtl neat-interpolation process template-haskell
-         temporary text type-errors-pretty vector
+         array base bytestring containers deepseq directory filepath
+         hedgehog hspec hspec-hedgehog mtl neat-interpolation process
+         template-haskell temporary text text-short type-errors-pretty
+         vector
+       ];
+       benchmarkHaskellDepends = [
+         array base bytestring containers criterion deepseq directory
+         filepath mtl process template-haskell temporary text text-short
+         type-errors-pretty vector
        ];
        description = "Souffle Datalog bindings for Haskell";
        license = lib.licenses.mit;
@@ -244850,7 +242725,6 @@ self: {
        description = "Audio delay line";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "soundgen" = callPackage
@@ -244865,7 +242739,6 @@ self: {
        description = "sound generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "source-code-server" = callPackage
@@ -244890,7 +242763,6 @@ self: {
        description = "The server backend for the source code iPhone app";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "source-constraints" = callPackage
@@ -244918,10 +242790,8 @@ self: {
      }:
      mkDerivation {
        pname = "sourcemap";
-       version = "0.1.6";
-       sha256 = "0ynfm44ym8y592wnzdwa0d05dbkffyyg5sm26y5ylzpynk64r85r";
-       revision = "1";
-       editedCabalFile = "1f7q44ar6qfip8fsllg43jyn7r15ifn2r0vz32cbmx0sb0d38dax";
+       version = "0.1.6.1";
+       sha256 = "0kz8xpcd5syg5s4qa2qq8ylaxjhabj127w42may46vv6i0q1bf8a";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring process text unordered-containers
          utf8-string
@@ -245162,6 +243032,8 @@ self: {
        pname = "sparkle";
        version = "0.7.4";
        sha256 = "174rs21fgj43rq3nshzgff6mydi93n26nkcq9cadq0bzcasc2n3q";
+       revision = "1";
+       editedCabalFile = "1jwg12rmsa1il8y53ip535bjf02z7jnrnws1qi9y0xfpqblzmw6r";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal inline-java jvm-streaming ];
@@ -245176,7 +243048,6 @@ self: {
        description = "Distributed Apache Spark applications in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sparql-protocol" = callPackage
@@ -245223,7 +243094,6 @@ self: {
        description = "Unified streaming data-dependency framework for web apps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spars" = callPackage
@@ -245341,7 +243211,6 @@ self: {
        description = "Sparse bitmaps for pattern match coverage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sparsecheck" = callPackage
@@ -245371,7 +243240,6 @@ self: {
        description = "Lightweight parsing library based on partial functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spartacon" = callPackage
@@ -245403,7 +243271,6 @@ self: {
        description = "brainless form validation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spatial-math" = callPackage
@@ -245575,7 +243442,6 @@ self: {
        description = "Create specialized types from polymorphic ones using TH";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "species" = callPackage
@@ -245595,7 +243461,6 @@ self: {
        description = "Computational combinatorial species";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spectral-clustering" = callPackage
@@ -245614,15 +243479,14 @@ self: {
        description = "Library for spectral clustering";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "speculate" = callPackage
     ({ mkDerivation, base, cmdargs, containers, express, leancheck }:
      mkDerivation {
        pname = "speculate";
-       version = "0.4.4";
-       sha256 = "0vmxi8rapbld7b3llw2v6fz1v6vqyv90rpbnzjdfa29kdza4m5sf";
+       version = "0.4.6";
+       sha256 = "0vpc2vxfpziyz0hzapni4j31g1i12m2gnsrq72zf42qbhjwif57g";
        libraryHaskellDepends = [
          base cmdargs containers express leancheck
        ];
@@ -245630,6 +243494,25 @@ self: {
        benchmarkHaskellDepends = [ base express leancheck ];
        description = "discovery of properties about Haskell functions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "speculate_0_4_8" = callPackage
+    ({ mkDerivation, base, cmdargs, containers, express, leancheck }:
+     mkDerivation {
+       pname = "speculate";
+       version = "0.4.8";
+       sha256 = "1xrrd1r4sbhvahdd3k9xnh8w9mmk4zh738q9blrjnvnd560wybp4";
+       libraryHaskellDepends = [
+         base cmdargs containers express leancheck
+       ];
+       testHaskellDepends = [ base express leancheck ];
+       benchmarkHaskellDepends = [ base express leancheck ];
+       description = "discovery of properties about Haskell functions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "speculation" = callPackage
@@ -245656,7 +243539,6 @@ self: {
        description = "Merged into 'speculation'. Use that instead.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "speechmatics" = callPackage
@@ -245688,7 +243570,6 @@ self: {
        description = "Speechmatics api client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "speedy-slice" = callPackage
@@ -245728,7 +243609,6 @@ self: {
        description = "Spelling suggestion tool with library and command-line interfaces";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spherical" = callPackage
@@ -245756,7 +243636,6 @@ self: {
        description = "Orbotix Sphero client library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sphinx" = callPackage
@@ -245789,7 +243668,6 @@ self: {
        description = "Sphinx CLI and demo of Haskell Sphinx library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sphinxesc" = callPackage
@@ -245827,7 +243705,6 @@ self: {
        description = "An FRP-based game engine written in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spike" = callPackage
@@ -245968,7 +243845,6 @@ self: {
        description = "A parallel implementation of the Sorokina/Zeilfelder spline scheme";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "splines" = callPackage
@@ -245991,7 +243867,6 @@ self: {
        description = "B-Splines, other splines, and NURBS";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "splint" = callPackage
@@ -246098,6 +243973,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "splitmix-distributions" = callPackage
+    ({ mkDerivation, base, containers, erf, exceptions, hspec, mtl
+     , splitmix, transformers
+     }:
+     mkDerivation {
+       pname = "splitmix-distributions";
+       version = "0.9.0.0";
+       sha256 = "0y6v93kgbldkf9pznrfy8848njy7cln7bd3nrx2b7dmrz6yd4rpz";
+       libraryHaskellDepends = [
+         base containers erf exceptions mtl splitmix transformers
+       ];
+       testHaskellDepends = [ base erf hspec mtl splitmix transformers ];
+       description = "Random samplers for some common distributions, based on splitmix";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "splitter" = callPackage
     ({ mkDerivation, base, directory, filepath, parsec, range }:
      mkDerivation {
@@ -246264,7 +244155,6 @@ self: {
        description = "JSON API to HTML website wrapper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spritz" = callPackage
@@ -246303,7 +244193,6 @@ self: {
        description = "HTTP proxy for authenticating users via OAuth2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sproxy-web" = callPackage
@@ -246330,7 +244219,6 @@ self: {
        description = "Web interface to sproxy database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sproxy2" = callPackage
@@ -246357,7 +244245,6 @@ self: {
        description = "Secure HTTP proxy for authenticating users via OAuth2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "spsa" = callPackage
@@ -246440,7 +244327,6 @@ self: {
        description = "mysql backend for sql-simple";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sql-simple-pool" = callPackage
@@ -246458,7 +244344,6 @@ self: {
        description = "conection pool for sql-simple";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sql-simple-postgresql" = callPackage
@@ -246475,7 +244360,6 @@ self: {
        description = "postgresql backend for sql-simple";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sql-simple-sqlite" = callPackage
@@ -246488,7 +244372,6 @@ self: {
        description = "sqlite backend for sql-simple";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sql-words" = callPackage
@@ -246615,7 +244498,6 @@ self: {
        description = "Typed extension to sqlite simple";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sqlvalue-list" = callPackage
@@ -246717,8 +244599,8 @@ self: {
      }:
      mkDerivation {
        pname = "squeather";
-       version = "0.6.0.0";
-       sha256 = "05cs67xcvfq0497kddmvzrccf7ihav87mv4hmi8kgl2jp8hqmk7p";
+       version = "0.8.0.0";
+       sha256 = "1pjiq97gq8rjp4v7cx2bhj7zcwkswc593fxdwqajssi1i39679r6";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [
          base bytestring directory filepath hedgehog lifted-base temporary
@@ -246749,8 +244631,6 @@ self: {
        ];
        description = "A file-packing application";
        license = "GPL";
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sr-extra" = callPackage
@@ -246779,7 +244659,6 @@ self: {
        description = "Module limbo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "srcinst" = callPackage
@@ -246806,8 +244685,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "srcloc";
-       version = "0.5.1.2";
-       sha256 = "0vn0zqsk191ghh2993hls05hp7kvnskaafnfrrqhfbmpdg7dp7h6";
+       version = "0.6";
+       sha256 = "1vcp9vgfi5rscy09l4qaq0pp426b6qcdpzs6kpbzg0k5x81kcsbb";
        libraryHaskellDepends = [ base ];
        description = "Data types for managing source code locations";
        license = lib.licenses.bsd3;
@@ -246860,7 +244739,6 @@ self: {
        description = "Simple SCGI Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sscript" = callPackage
@@ -246968,7 +244846,6 @@ self: {
        description = "Check sshd configuration for adherence to best practices";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sshtun" = callPackage
@@ -247017,7 +244894,6 @@ self: {
        description = "HTTP proxy for S3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sstable" = callPackage
@@ -247037,7 +244913,6 @@ self: {
        description = "SSTables in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ssv" = callPackage
@@ -247102,8 +244977,8 @@ self: {
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
        pname = "stable-marriage";
-       version = "0.2.0.0";
-       sha256 = "1qxns33mmr1nxw6gabi5s1i70ksp0ls54q7cf95fy7vs1nwngz0n";
+       version = "0.2.1.0";
+       sha256 = "1dv4333an20mlhmsxhaldjcj54pnkjvp7zpiasd6shii5d4cn0z1";
        libraryHaskellDepends = [ base ghc-prim ];
        testHaskellDepends = [ base ghc-prim ];
        description = "algorithms around stable marriage";
@@ -247150,7 +245025,6 @@ self: {
        description = "Trees whose branches are resistant to change";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stache" = callPackage
@@ -247162,8 +245036,8 @@ self: {
      }:
      mkDerivation {
        pname = "stache";
-       version = "2.2.1";
-       sha256 = "1vkvi9rrf15a8lbihvcmrslykby4qc4jmc5zaqm1ikxsid9x5704";
+       version = "2.3.0";
+       sha256 = "1gfmr9gcq9zm7ljp2nqmc41lpig11d19xsqzazr2mvm5ddsi69cr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -247209,8 +245083,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack";
-       version = "2.5.1.1";
-       sha256 = "0fdm4wc8hxawfab7dv2ayr853mna93gznb7g162gw4h4zxnyzwyc";
+       version = "2.7.1";
+       sha256 = "09mw5jwgcmbkwsgvg1ls114hq9v2vl49pdvix8ir7vvgicvdhnv0";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -247287,8 +245161,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack-all";
-       version = "0.2";
-       sha256 = "0q64g4frvcmj308x27mibi89m6rwjf5v47ql4yy6cnf9arjzqf9f";
+       version = "0.2.1";
+       sha256 = "07azc2phnljxwxskxlipmx52vjyavxn54q87k1bakapla469fdr4";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -247381,7 +245255,6 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stack-lib" = callPackage
@@ -247441,7 +245314,6 @@ self: {
        description = "A program for extending Stack to add distributed capabilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stack-prism" = callPackage
@@ -247511,7 +245383,6 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stack-tag" = callPackage
@@ -247670,7 +245541,6 @@ self: {
        description = "Dummy package forcing installation of other Stackage packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackage-build-plan" = callPackage
@@ -247696,7 +245566,6 @@ self: {
        description = "Calculate and print (in different formats) Stackage build plans";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackage-cabal" = callPackage
@@ -247718,7 +245587,6 @@ self: {
        description = "A CLI executable for cabal-based stackage commands";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackage-cli" = callPackage
@@ -247862,7 +245730,6 @@ self: {
        description = "Tool for querying Stackage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackage-sandbox" = callPackage
@@ -247884,7 +245751,6 @@ self: {
        description = "Work with shared stackage sandboxes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackage-setup" = callPackage
@@ -247909,7 +245775,6 @@ self: {
        description = "An executable for downloading a Haskell setup";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackage-to-hackage" = callPackage
@@ -247995,7 +245860,6 @@ self: {
        description = "A more secure version of cabal upload which uses HTTPS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackage2nix" = callPackage
@@ -248027,7 +245891,6 @@ self: {
        description = "Convert Stack files into Nix build instructions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stackcollapse-ghc" = callPackage
@@ -248055,6 +245918,31 @@ self: {
        broken = true;
      }) {};
 
+  "stackcollapse-ghc_0_0_1_4" = callPackage
+    ({ mkDerivation, base, bytestring, containers, extra, filepath
+     , foldl, hspec, hspec-golden, recursion-schemes, rosezipper, safe
+     , text, transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "stackcollapse-ghc";
+       version = "0.0.1.4";
+       sha256 = "1scqjjp1cpz3zzvqa6wmfz11qrhsbqwgq7h8qjg0d8ri3r9z82lb";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring containers extra foldl recursion-schemes rosezipper
+         safe text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers extra filepath foldl hspec hspec-golden
+         recursion-schemes rosezipper safe text transformers utf8-string
+       ];
+       description = "Program to fold GHC prof files into flamegraph input";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "stacked-dag" = callPackage
     ({ mkDerivation, base, containers, doctest, graphviz
      , optparse-applicative, text
@@ -248400,7 +246288,6 @@ self: {
        description = "Typeclass instances for monad transformer stacks with an ST thread at the bottom";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stateref" = callPackage
@@ -248420,6 +246307,8 @@ self: {
        pname = "statestack";
        version = "0.3";
        sha256 = "1b8yd314h8a97ggjv82cy4mr0f4scb5pjvslxq7hwxxq7cw7mgns";
+       revision = "1";
+       editedCabalFile = "03kk2zab7mcr5m89mxxl0zivag2hb024ijfdi0mp794hswncwhxy";
        libraryHaskellDepends = [
          base mtl transformers transformers-compat
        ];
@@ -248507,7 +246396,6 @@ self: {
        description = "Serialisable static pointers to functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "static-hash" = callPackage
@@ -248586,8 +246474,6 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Lists, Texts, ByteStrings and Vectors of statically known length";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "staticanalysis" = callPackage
@@ -248762,7 +246648,6 @@ self: {
        description = "Statsd UDP client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "statsd-datadog" = callPackage
@@ -248802,7 +246687,6 @@ self: {
        description = "A lovely [Dog]StatsD implementation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "status-notifier-item" = callPackage
@@ -248844,15 +246728,15 @@ self: {
   "staversion" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, Cabal
      , containers, directory, filepath, hashable, heredoc, hspec
-     , http-client, http-client-tls, http-types, megaparsec
-     , optparse-applicative, pretty, process, QuickCheck, semigroups
-     , text, transformers, transformers-compat, unordered-containers
-     , yaml
+     , hspec-discover, http-client, http-client-tls, http-types
+     , megaparsec, optparse-applicative, pretty, process, QuickCheck
+     , semigroups, text, transformers, transformers-compat
+     , unordered-containers, yaml
      }:
      mkDerivation {
        pname = "staversion";
-       version = "0.2.4.0";
-       sha256 = "1n6f7ka4ncadp4svd3bc81qxdgiff85mws5apx7wdhcwfn8wbsib";
+       version = "0.2.4.1";
+       sha256 = "0i6z6dm9bksvhnfc1jj5gmf7nimz9hg7vvc6aj1vla7v5m0bkwrr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -248866,6 +246750,7 @@ self: {
          base bytestring Cabal filepath heredoc hspec QuickCheck semigroups
          text unordered-containers
        ];
+       testToolDepends = [ hspec-discover ];
        description = "What version is the package X in stackage lts-Y.ZZ?";
        license = lib.licenses.bsd3;
      }) {};
@@ -249225,14 +247110,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "stm_2_5_0_0" = callPackage
+  "stm_2_5_0_1" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
        pname = "stm";
-       version = "2.5.0.0";
-       sha256 = "1illcj8zgzmpl91hzgk0j74ha436a379gw13siq4gifbcrf6iqsr";
-       revision = "1";
-       editedCabalFile = "189fxk75h7n27kw7ndyn8nkxm3117qdh1dpag1mcs487kxghff62";
+       version = "2.5.0.1";
+       sha256 = "1fipf3bbk34mbld1apwnq6kbjxbrz2nc9cxxmhkk2bdcc2z4y7j5";
        libraryHaskellDepends = [ array base ];
        description = "Software Transactional Memory";
        license = lib.licenses.bsd3;
@@ -249579,7 +247462,6 @@ self: {
        description = "Control communication among retrying transactions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stochastic" = callPackage
@@ -249614,8 +247496,6 @@ self: {
        testHaskellDepends = [ base bytestring HUnit ];
        description = "Library for the IEX Trading API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stomp-conduit" = callPackage
@@ -249829,7 +247709,6 @@ self: {
        description = "Conversion between storablevector and stream-fusion lists with fusion";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "store" = callPackage
@@ -249846,54 +247725,6 @@ self: {
      }:
      mkDerivation {
        pname = "store";
-       version = "0.7.10";
-       sha256 = "0026bjff7nsw23i1l5427qnvw69ncbii5s2q1nshkrs1nrspb0i2";
-       libraryHaskellDepends = [
-         array async base base-orphans base64-bytestring bifunctors
-         bytestring containers contravariant cryptohash deepseq directory
-         filepath free ghc-prim hashable hspec hspec-smallcheck integer-gmp
-         lifted-base monad-control mono-traversable nats network primitive
-         resourcet safe smallcheck store-core syb template-haskell text
-         th-lift th-lift-instances th-orphans th-reify-many th-utilities
-         time transformers unordered-containers vector void
-       ];
-       testHaskellDepends = [
-         array async base base-orphans base64-bytestring bifunctors
-         bytestring clock containers contravariant cryptohash deepseq
-         directory filepath free ghc-prim hashable hspec hspec-smallcheck
-         integer-gmp lifted-base monad-control mono-traversable nats network
-         primitive resourcet safe smallcheck store-core syb template-haskell
-         text th-lift th-lift-instances th-orphans th-reify-many
-         th-utilities time transformers unordered-containers vector void
-       ];
-       benchmarkHaskellDepends = [
-         array async base base-orphans base64-bytestring bifunctors
-         bytestring cereal cereal-vector containers contravariant criterion
-         cryptohash deepseq directory filepath free ghc-prim hashable hspec
-         hspec-smallcheck integer-gmp lifted-base monad-control
-         mono-traversable nats network primitive resourcet safe smallcheck
-         store-core syb template-haskell text th-lift th-lift-instances
-         th-orphans th-reify-many th-utilities time transformers
-         unordered-containers vector vector-binary-instances void weigh
-       ];
-       description = "Fast binary serialization";
-       license = lib.licenses.mit;
-     }) {};
-
-  "store_0_7_11" = callPackage
-    ({ mkDerivation, array, async, base, base-orphans
-     , base64-bytestring, bifunctors, bytestring, cereal, cereal-vector
-     , clock, containers, contravariant, criterion, cryptohash, deepseq
-     , directory, filepath, free, ghc-prim, hashable, hspec
-     , hspec-smallcheck, integer-gmp, lifted-base, monad-control
-     , mono-traversable, nats, network, primitive, resourcet, safe
-     , smallcheck, store-core, syb, template-haskell, text, th-lift
-     , th-lift-instances, th-orphans, th-reify-many, th-utilities, time
-     , transformers, unordered-containers, vector
-     , vector-binary-instances, void, weigh
-     }:
-     mkDerivation {
-       pname = "store";
        version = "0.7.11";
        sha256 = "03i9gd18xqbfmj5kmiv4k4sw44gn6mn4faj71r2723abm3qwklwr";
        libraryHaskellDepends = [
@@ -249926,7 +247757,6 @@ self: {
        ];
        description = "Fast binary serialization";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "store-core" = callPackage
@@ -250060,7 +247890,6 @@ self: {
        description = "A library for stratux";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stratux-demo" = callPackage
@@ -250084,7 +247913,6 @@ self: {
        description = "A demonstration of the stratux library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stratux-http" = callPackage
@@ -250101,7 +247929,6 @@ self: {
        description = "A library for using HTTP with stratux";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stratux-types" = callPackage
@@ -250136,7 +247963,6 @@ self: {
        description = "A library for using websockets with stratux";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stream" = callPackage
@@ -250277,7 +248103,6 @@ self: {
        description = "Streaming conversion from/to base64";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-benchmarks" = callPackage
@@ -250303,8 +248128,6 @@ self: {
        ];
        description = "Benchmarks to compare streaming packages";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-binary" = callPackage
@@ -250361,7 +248184,6 @@ self: {
        description = "Streaming interface for Brotli (RFC7932) compression";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-bytestring" = callPackage
@@ -250404,8 +248226,6 @@ self: {
        ];
        description = "Cassava support for the streaming ecosystem";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-commons" = callPackage
@@ -250453,7 +248273,6 @@ self: {
        description = "Concurrency support for the streaming ecosystem";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-conduit" = callPackage
@@ -250526,7 +248345,6 @@ self: {
        description = "online streaming fft";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-histogram" = callPackage
@@ -250688,7 +248506,6 @@ self: {
        description = "Streaming support for running system process";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-sort" = callPackage
@@ -250711,7 +248528,6 @@ self: {
        description = "Sorting streams";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "streaming-utils" = callPackage
@@ -250797,6 +248613,7 @@ self: {
        ];
        description = "Beautiful Streaming, Concurrent and Reactive Composition";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "streamly-archive" = callPackage
@@ -250806,8 +248623,8 @@ self: {
      }:
      mkDerivation {
        pname = "streamly-archive";
-       version = "0.0.1";
-       sha256 = "055jcqndkzg14c2fvkncn9034bw60n8s8yjkkjx7kqrj9p0kp01a";
+       version = "0.0.2";
+       sha256 = "00cd5ssa5hi4pvc5li24z68f1k50h02frn4668gcrv8lr5kh6s50";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base bytestring streamly ];
        librarySystemDepends = [ archive ];
@@ -250818,8 +248635,6 @@ self: {
        testSystemDepends = [ archive ];
        description = "Stream data from archives using the streamly library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {archive = null;};
 
   "streamly-binary" = callPackage
@@ -250909,8 +248724,8 @@ self: {
      }:
      mkDerivation {
        pname = "streamly-lmdb";
-       version = "0.2.0";
-       sha256 = "1mkcnn7y4rwc8m0qvcqyw20jd7ax3nm455228fwp3yaslgw4mcvy";
+       version = "0.2.1";
+       sha256 = "08rj29i3vb4ahgrd2zhyi2sl1lk95s7vk020xx9mwzi8sbn0ay05";
        libraryHaskellDepends = [ async base bytestring streamly ];
        librarySystemDepends = [ lmdb ];
        testHaskellDepends = [
@@ -250920,8 +248735,6 @@ self: {
        testSystemDepends = [ lmdb ];
        description = "Stream data to or from LMDB databases using the streamly library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) lmdb;};
 
   "streamly-posix" = callPackage
@@ -250975,6 +248788,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "streamt" = callPackage
+    ({ mkDerivation, async, base, criterion, hspec, logict, mtl, tasty
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "streamt";
+       version = "0.5.0.0";
+       sha256 = "0r2r6ribk85hwmzdn2imgajb28q5d5gbhysr62bw2jhmd5xy7985";
+       libraryHaskellDepends = [ base logict mtl ];
+       testHaskellDepends = [
+         async base criterion hspec mtl tasty tasty-hunit
+       ];
+       description = "Simple, Fair and Terminating Backtracking Monad Transformer";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "strelka" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-data, base, base-prelude
      , base64-bytestring, bifunctors, bytestring
@@ -250995,7 +248824,6 @@ self: {
        description = "A simple, flexible and composable web-router";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "strelka-core" = callPackage
@@ -251072,8 +248900,6 @@ self: {
        ];
        description = "Strict variants of the types provided in base";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "strict-concurrency" = callPackage
@@ -251164,7 +248990,6 @@ self: {
        description = "A collection of commonly used strict data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "strict-ghc-plugin" = callPackage
@@ -251438,8 +249263,8 @@ self: {
      }:
      mkDerivation {
        pname = "string-interpolate";
-       version = "0.3.1.0";
-       sha256 = "0hyrcndhwd06phlmykyz7bklj5gnj4amcn11ckfvw0iws3sksl8d";
+       version = "0.3.1.1";
+       sha256 = "0hhzvrs9msyqsxwsqqm55lyxf85vhg4vcsszl735zsbs7431av69";
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta split
          template-haskell text text-conversions utf8-string
@@ -251478,8 +249303,8 @@ self: {
     ({ mkDerivation, base, bytestring, text }:
      mkDerivation {
        pname = "string-like";
-       version = "0.1.0.0";
-       sha256 = "1b87532fhv2wn6pnzsaw20lzj5j399smlfn7lai0h0ph2axb2dbi";
+       version = "0.1.0.1";
+       sha256 = "1sadf4cdxs3ilax99w1yvkfz2v1n77rj9grck4csjbwswxw2d2dn";
        libraryHaskellDepends = [ base bytestring text ];
        description = "A package that aims to provide a uniform interface to string-like types";
        license = lib.licenses.bsd3;
@@ -251579,7 +249404,6 @@ self: {
        description = "Type-level Chars and Strings, with decidable equality";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stringable" = callPackage
@@ -251761,6 +249585,7 @@ self: {
        libraryHaskellDepends = [ base stripe-core stripe-http-client ];
        description = "Stripe API for Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "stripe-hs" = callPackage
@@ -251807,6 +249632,7 @@ self: {
        ];
        description = "Stripe API for Haskell - http-client backend";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "stripe-http-streams" = callPackage
@@ -251846,7 +249672,6 @@ self: {
        description = "Listen for Stripe webhook events with Scotty";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stripe-servant" = callPackage
@@ -251899,6 +249724,8 @@ self: {
        ];
        description = "Tests for Stripe API bindings for Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-wreq" = callPackage
@@ -251915,8 +249742,6 @@ self: {
        ];
        description = "Use the Stripe API via Wreq";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stripeapi" = callPackage
@@ -252018,8 +249843,8 @@ self: {
      }:
      mkDerivation {
        pname = "structs";
-       version = "0.1.5";
-       sha256 = "1qsj5w6g0lcvbrm0zs37f1yk3im1swhnb4j1mbpr3fyc3zswwbjf";
+       version = "0.1.6";
+       sha256 = "0wzbhsvix46aans0hdm11pvsigk1lxpdaha2sxslx0ip1xsdg0gk";
        libraryHaskellDepends = [
          base deepseq ghc-prim primitive template-haskell th-abstraction
        ];
@@ -252049,7 +249874,6 @@ self: {
        description = "Instantiate structural induction schemas for algebraic data types";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "structural-traversal" = callPackage
@@ -252141,7 +249965,6 @@ self: {
        description = "Structured MongoDB interface";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "structures" = callPackage
@@ -252238,7 +250061,6 @@ self: {
        description = "A revival of the classic game Stunts (LambdaCube tech demo)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stutter" = callPackage
@@ -252267,7 +250089,6 @@ self: {
        description = "(Stutter Text|String)-Utterer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stylish-cabal" = callPackage
@@ -252349,8 +250170,6 @@ self: {
        ];
        description = "Apply CSS styles to a document tree";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "stylized" = callPackage
@@ -252403,8 +250222,6 @@ self: {
        ];
        description = "An applicative functor that seamlessly talks to HTML inputs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sub-state" = callPackage
@@ -252502,7 +250319,6 @@ self: {
        description = "Type safe interface for programming in subcategories of Hask";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "subleq-toolchain" = callPackage
@@ -252610,7 +250426,6 @@ self: {
        description = "Match / replace substrings with a parser combinators";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "subtitleParser" = callPackage
@@ -252687,8 +250502,6 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "An applicative functor to manage successors";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "suffix-array" = callPackage
@@ -252839,7 +250652,6 @@ self: {
        description = "Tool for scaffolding fully configured batteries-included production-level Haskell projects using TUI";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sump" = callPackage
@@ -252858,7 +250670,6 @@ self: {
        description = "A Haskell interface to SUMP-compatible logic analyzers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sundown" = callPackage
@@ -252929,7 +250740,6 @@ self: {
        description = "Tests for Sunroof";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sunroof-server" = callPackage
@@ -252952,7 +250762,6 @@ self: {
        description = "Monadic Javascript Compiler - Server Utilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "super-user-spark" = callPackage
@@ -253035,7 +250844,6 @@ self: {
        description = "Haskell SuperCollider utilities";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "supercollider-midi" = callPackage
@@ -253059,7 +250867,6 @@ self: {
        description = "Demonstrate how to control SuperCollider via ALSA-MIDI";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "superconstraints" = callPackage
@@ -253077,7 +250884,6 @@ self: {
        description = "Access an instance's constraints";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "superdoc" = callPackage
@@ -253302,7 +251108,6 @@ self: {
        description = "Encode and decode separated values (CSV, PSV, ...)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sv-cassava" = callPackage
@@ -253325,7 +251130,6 @@ self: {
        description = "Integration to use sv with cassava's parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sv-core" = callPackage
@@ -253373,7 +251177,6 @@ self: {
        description = "sv-core + svfactor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "svfactor" = callPackage
@@ -253472,7 +251275,6 @@ self: {
        description = "Code generation tool for Quartz code from a SVG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "svgcairo" = callPackage
@@ -253515,7 +251317,6 @@ self: {
        description = "Optimise SVGs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "svgutils" = callPackage
@@ -253725,7 +251526,6 @@ self: {
        description = "Transparently swapping data from in-memory structures to disk";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) tokyocabinet;};
 
   "swearjure" = callPackage
@@ -253746,7 +251546,6 @@ self: {
        description = "Clojure without alphanumerics";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sweet-egison" = callPackage
@@ -253770,7 +251569,6 @@ self: {
        description = "Shallow embedding implementation of non-linear pattern matching";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "swf" = callPackage
@@ -253865,6 +251663,8 @@ self: {
        ];
        description = "SwissTable hash map";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "switch" = callPackage
@@ -253882,7 +251682,6 @@ self: {
        description = "Nintendo Switch Controller Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sws" = callPackage
@@ -253906,8 +251705,6 @@ self: {
        ];
        description = "A simple web server for serving directories";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sxml" = callPackage
@@ -254158,7 +251955,6 @@ self: {
        description = "Lambda calculus visualization";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "sym" = callPackage
@@ -254185,7 +251981,6 @@ self: {
        description = "Plot permutations; an addition to the sym package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic" = callPackage
@@ -254226,7 +252021,6 @@ self: {
        description = "Library for reading and writing Atom";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic-base" = callPackage
@@ -254304,8 +252098,6 @@ self: {
        ];
        description = "Symantic combinators for deriving clients or a server from an HTTP API";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic-http-client" = callPackage
@@ -254324,8 +252116,6 @@ self: {
        ];
        description = "symantic-http applied to the derivation of HTTP clients";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic-http-demo" = callPackage
@@ -254352,8 +252142,6 @@ self: {
        ];
        description = "Demo for symantic-http and its companion libraries";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic-http-pipes" = callPackage
@@ -254375,8 +252163,6 @@ self: {
        ];
        description = "Streaming support through pipes for symantic-http";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic-http-server" = callPackage
@@ -254395,8 +252181,6 @@ self: {
        ];
        description = "symantic-http applied to the derivation of HTTP servers";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic-http-test" = callPackage
@@ -254449,7 +252233,6 @@ self: {
        description = "Symantics for common types";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symantic-parser" = callPackage
@@ -254532,7 +252315,6 @@ self: {
        description = "Data serialization, communication, and operation verification implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symbol" = callPackage
@@ -254638,7 +252420,6 @@ self: {
        description = "Derivation of symbols and coordinate triplets Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "symon" = callPackage
@@ -254745,7 +252526,6 @@ self: {
        description = "Haskell bindings for the Syncthing REST API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "synt" = callPackage
@@ -254794,8 +252574,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Generic representation and manipulation of abstract syntax";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syntactical" = callPackage
@@ -254825,7 +252603,6 @@ self: {
        description = "Reversible parsing and pretty-printing";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syntax-attoparsec" = callPackage
@@ -254842,7 +252619,6 @@ self: {
        description = "Syntax instances for Attoparsec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syntax-example" = callPackage
@@ -254862,7 +252638,6 @@ self: {
        description = "Example application using syntax, a library for abstract syntax descriptions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syntax-example-json" = callPackage
@@ -254882,7 +252657,6 @@ self: {
        description = "Example JSON parser/pretty-printer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syntax-pretty" = callPackage
@@ -254898,7 +252672,6 @@ self: {
        description = "Syntax instance for pretty, the pretty printing library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syntax-printer" = callPackage
@@ -254916,7 +252689,6 @@ self: {
        description = "Text and ByteString printers for 'syntax'";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syntax-trees" = callPackage
@@ -254970,7 +252742,6 @@ self: {
        description = "Working with Google's SyntaxNet output files - CoNLL, Tree";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "synthesizer" = callPackage
@@ -255016,6 +252787,11 @@ self: {
        ];
        description = "Control synthesizer effects via ALSA/MIDI";
        license = "GPL";
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "synthesizer-core" = callPackage
@@ -255133,7 +252909,6 @@ self: {
        description = "Efficient signal processing using runtime compilation";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "synthesizer-midi" = callPackage
@@ -255561,7 +253336,6 @@ self: {
        description = "An application that regularly logs system stats for later analysis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "syz" = callPackage
@@ -255604,7 +253378,6 @@ self: {
        description = "tic-tac-toe Rexports for client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "t3-game" = callPackage
@@ -255658,7 +253431,6 @@ self: {
        description = "Transito Abierto: convenience library when using Takusen and Oracle";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tabl" = callPackage
@@ -255879,8 +253651,8 @@ self: {
      }:
      mkDerivation {
        pname = "taffybar";
-       version = "3.2.3";
-       sha256 = "0c5w030b289qy05pzs1bx3sd23sxxdm44605hs4ibzffaf0pr7b0";
+       version = "3.2.5";
+       sha256 = "1gfdlqgdqq2ivvzj7cgqahpm2bmwg90ri5ss7ah38alrp5rvda1v";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -255904,6 +253676,10 @@ self: {
        executablePkgconfigDepends = [ gtk3 ];
        description = "A desktop bar similar to xmobar, but with more GUI";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       maintainers = with lib.maintainers; [ rvl ];
      }) {inherit (pkgs) gtk3;};
 
   "tag-bits" = callPackage
@@ -255933,7 +253709,6 @@ self: {
        description = "streamlined html tag parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tagchup" = callPackage
@@ -256033,7 +253808,6 @@ self: {
        description = "Lists tagged with a type-level natural number representing their length";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tagged-th" = callPackage
@@ -256048,7 +253822,6 @@ self: {
        description = "QuasiQuoter and Template Haskell splices for creating proxies at higher-kinds";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tagged-timers" = callPackage
@@ -256271,7 +254044,6 @@ self: {
        description = "Tagsoup Navigate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tagsoup-parsec" = callPackage
@@ -256319,7 +254091,6 @@ self: {
        description = "Black magic tagsoup";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tagstream-conduit" = callPackage
@@ -256485,7 +254256,28 @@ self: {
        description = "An implementation of Typed Assembly Language (Morrisett, Walker, Crary, Glew)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "talash" = callPackage
+    ({ mkDerivation, alfred-margaret, base, brick, bytestring
+     , colorful-monoids, containers, directory, ghc-compact, intro
+     , microlens, microlens-th, text, unix, unordered-containers, vector
+     , vector-algorithms, vector-sized, vty
+     }:
+     mkDerivation {
+       pname = "talash";
+       version = "0.1.0.1";
+       sha256 = "1j28i5aipldjknfx22dil0xi1gwlv89frl1fn606yl1g84q1kr5n";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         alfred-margaret base brick bytestring colorful-monoids containers
+         directory ghc-compact intro microlens microlens-th text unix
+         unordered-containers vector vector-algorithms vector-sized vty
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Line oriented fast enough text search";
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tamarin-prover" = callPackage
@@ -256516,7 +254308,6 @@ self: {
        description = "The Tamarin prover for security protocol analysis";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tamarin-prover-term" = callPackage
@@ -256536,7 +254327,6 @@ self: {
        description = "Term manipulation library for the tamarin prover";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tamarin-prover-theory" = callPackage
@@ -256559,7 +254349,6 @@ self: {
        description = "Term manipulation library for the tamarin prover";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tamarin-prover-utils" = callPackage
@@ -256773,7 +254562,6 @@ self: {
        description = "Generate test-suites from refinement types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) z3;};
 
   "tart" = callPackage
@@ -256816,7 +254604,6 @@ self: {
        description = "A command line tool for keeping track of tasks you worked on";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "task-distribution" = callPackage
@@ -256854,7 +254641,6 @@ self: {
        description = "Distributed processing of changing tasks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "taskell" = callPackage
@@ -256913,8 +254699,8 @@ self: {
        pname = "taskwarrior";
        version = "0.3.0.0";
        sha256 = "1h24d799q1s6b36hd40bxa4c9m1izkgh6j7p2jv1p6cxngz28ni0";
-       revision = "4";
-       editedCabalFile = "1rwlyw01i07xryhja4h7jadlj5rdznmb1jwl74qllkrhrvqjfmrg";
+       revision = "5";
+       editedCabalFile = "1h7ybnxx5f0w1h13wzbx30ycf578dnv12wx4pqn3pfxqz1jz3gjg";
        libraryHaskellDepends = [
          aeson base bytestring containers process random text time
          unordered-containers uuid
@@ -257009,7 +254795,6 @@ self: {
        description = "BDD tests language and tasty provider";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-bench" = callPackage
@@ -257042,8 +254827,6 @@ self: {
        ];
        description = "Check multiple items during a tasty test";
        license = lib.licenses.isc;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-dejafu" = callPackage
@@ -257194,7 +254977,6 @@ self: {
        description = "Tasty Tests for groundhog converters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-hedgehog" = callPackage
@@ -257274,6 +255056,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "tasty-hspec_1_2" = callPackage
+    ({ mkDerivation, base, hspec, hspec-core, QuickCheck, tasty
+     , tasty-quickcheck, tasty-smallcheck
+     }:
+     mkDerivation {
+       pname = "tasty-hspec";
+       version = "1.2";
+       sha256 = "0hnq6q4mk2avirb8cgibaxj5m2c4rf5xsqry04zx4nc15la5xniw";
+       libraryHaskellDepends = [
+         base hspec hspec-core QuickCheck tasty tasty-quickcheck
+         tasty-smallcheck
+       ];
+       description = "Hspec support for the Tasty test framework";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tasty-html" = callPackage
     ({ mkDerivation, base, blaze-html, bytestring, containers, filepath
      , generic-deriving, mtl, semigroups, stm, tagged, tasty, text
@@ -257290,8 +255089,6 @@ self: {
        ];
        description = "Render tasty output to HTML";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-hunit" = callPackage
@@ -257327,6 +255124,21 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "tasty-inspection-testing" = callPackage
+    ({ mkDerivation, base, ghc, inspection-testing, tasty
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "tasty-inspection-testing";
+       version = "0.1";
+       sha256 = "18awafrclxg8lfw8gg4ndzfwwpaz8qmad23fi24rhpdj9c7xdyhw";
+       libraryHaskellDepends = [
+         base ghc inspection-testing tasty template-haskell
+       ];
+       description = "Inspection testing support for tasty";
+       license = lib.licenses.mit;
+     }) {};
+
   "tasty-integrate" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cmdargs, containers
      , deepseq, directory, either, haskell-src-exts
@@ -257356,7 +255168,6 @@ self: {
        description = "automated integration of QuickCheck properties into tasty suites";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-jenkins-xml" = callPackage
@@ -257377,7 +255188,6 @@ self: {
        description = "Render tasty output to both console and XML for Jenkins";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-json" = callPackage
@@ -257427,7 +255237,6 @@ self: {
        description = "Test common laws";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-leancheck" = callPackage
@@ -257457,7 +255266,6 @@ self: {
        description = "Tasty TestTrees for Lens validation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-lua" = callPackage
@@ -257589,8 +255397,6 @@ self: {
        ];
        description = "A fancy test runner, including support for golden tests";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-smallcheck" = callPackage
@@ -257777,7 +255583,6 @@ self: {
        description = "Meta tic-tac-toe ncurses game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tau" = callPackage
@@ -257820,7 +255625,6 @@ self: {
        description = "Transactional variables and data structures with IO hooks";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tcache-AWS" = callPackage
@@ -257856,7 +255660,6 @@ self: {
        description = "TokyoCabinet CLI interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tce-conf" = callPackage
@@ -257989,7 +255792,6 @@ self: {
        description = "Test framework wrapper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tdigest" = callPackage
@@ -258032,8 +255834,6 @@ self: {
        ];
        description = "Chart generation from tdigest";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tdlib" = callPackage
@@ -258062,7 +255862,6 @@ self: {
        description = "complete binding to the Telegram Database Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) tdlib;};
 
   "tdlib-gen" = callPackage
@@ -258092,7 +255891,6 @@ self: {
        description = "Codegen for TDLib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tdlib-types" = callPackage
@@ -258114,7 +255912,6 @@ self: {
        description = "Types and Functions generated from tdlib api spec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tdoc" = callPackage
@@ -258209,7 +256006,6 @@ self: {
        description = "Bleeding edge prelude";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "technique" = callPackage
@@ -258336,7 +256132,6 @@ self: {
        description = "Telegram Bot microframework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "telegram-bot-simple" = callPackage
@@ -258368,8 +256163,6 @@ self: {
        ];
        description = "Easy to use library for building Telegram bots";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "telegram-raw-api" = callPackage
@@ -258395,7 +256188,6 @@ self: {
        description = "Servant bindings to the Telegram bot API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "telegram-types" = callPackage
@@ -258418,7 +256210,6 @@ self: {
        description = "Types used in Telegram bot API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "telegraph" = callPackage
@@ -259006,7 +256797,6 @@ self: {
        description = "Haskell wrappers for Core Tensorflow Ops";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tensorflow-logging" = callPackage
@@ -259036,7 +256826,6 @@ self: {
        description = "TensorBoard related functionality";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tensorflow-mnist" = callPackage
@@ -259121,7 +256910,6 @@ self: {
        description = "Friendly layer around TensorFlow bindings";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tensorflow-proto" = callPackage
@@ -259244,8 +257032,6 @@ self: {
        libraryHaskellDepends = [ base reactive-banana termbox ];
        description = "reactive-banana + termbox";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "termbox-bindings" = callPackage
@@ -259359,7 +257145,6 @@ self: {
        description = "Text data type for styled terminal output, including all standard ANSI effects (bold, italic, blinking) and ANSI / 256 / truecolor colors support for Unix and Windows (whenever possible)";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "termination-combinators" = callPackage
@@ -259381,6 +257166,8 @@ self: {
        pname = "terminfo";
        version = "0.4.1.4";
        sha256 = "170pnql6ycpk6gwy9v28mppm0w2n89l0n6fhnzph2za9kwrs9fqh";
+       revision = "1";
+       editedCabalFile = "0f82h8mj3swx7c2cxls76nzqx0qnibvsncmvqcbc7v5db4mkfmm1";
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ ncurses ];
        description = "Haskell bindings to the terminfo library";
@@ -259437,6 +257224,10 @@ self: {
        ];
        description = "Terminal emulator configurable in Haskell";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       maintainers = with lib.maintainers; [ cdepillabout ];
      }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
          vte_291 = pkgs.vte;};
 
@@ -259512,7 +257303,6 @@ self: {
        description = "A Haskell GIS Programming Environment";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {terralib4c = null; translib = null;};
 
   "tersmu" = callPackage
@@ -259563,8 +257353,6 @@ self: {
        ];
        description = "Tesla API client";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "test-fixture" = callPackage
@@ -259739,7 +257527,6 @@ self: {
        description = "test-sandbox support for the test-framework package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "test-framework-skip" = callPackage
@@ -259872,8 +257659,6 @@ self: {
        ];
        description = "Testing framework";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "test-lib" = callPackage
@@ -259987,7 +257772,6 @@ self: {
        description = "Lightweight development enviroments using test-sandbox";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "test-sandbox-hunit" = callPackage
@@ -260000,7 +257784,6 @@ self: {
        description = "HUnit convenience functions for use with test-sandbox";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "test-sandbox-quickcheck" = callPackage
@@ -260017,7 +257800,6 @@ self: {
        description = "QuickCheck convenience functions for use with test-sandbox";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "test-shouldbe" = callPackage
@@ -260052,7 +257834,6 @@ self: {
        description = "Simple Perl inspired testing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "testCom" = callPackage
@@ -260108,7 +257889,6 @@ self: {
        description = "Create tests and benchmarks together";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "testcontainers" = callPackage
@@ -260325,6 +258105,29 @@ self: {
        license = lib.licenses.gpl2Only;
      }) {};
 
+  "texmath_0_12_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , mtl, pandoc-types, parsec, process, split, syb, temporary, text
+     , utf8-string, xml
+     }:
+     mkDerivation {
+       pname = "texmath";
+       version = "0.12.3";
+       sha256 = "0lhbgnswhss56lrp25i70hvmn6zg6xcfwdigfmwjggmhz0h5q88x";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers mtl pandoc-types parsec split syb text xml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath process temporary text
+         utf8-string xml
+       ];
+       description = "Conversion between formats used to represent mathematics";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "texrunner" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, directory, filepath
      , HUnit, io-streams, lens, mtl, process, semigroups, temporary
@@ -260606,8 +258409,8 @@ self: {
      }:
      mkDerivation {
        pname = "text-icu";
-       version = "0.7.0.1";
-       sha256 = "0y3z5jda7v2iyll2148ivxfd2yhp27d3ryxrspp0cdq394klqxp2";
+       version = "0.7.1.0";
+       sha256 = "0s9gcd9lcrhk92ydhizyk0vbpf542ipc4hj60fa02b2g2x9q93ij";
        libraryHaskellDepends = [ base bytestring deepseq text ];
        librarySystemDepends = [ icu ];
        testHaskellDepends = [
@@ -260870,7 +258673,6 @@ self: {
        description = "Utils for text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "text-position" = callPackage
@@ -260987,12 +258789,14 @@ self: {
      }:
      mkDerivation {
        pname = "text-replace";
-       version = "0.0.0.6";
-       sha256 = "05hr2185q4rcn1hvrrkqy2sbl8xzk7ij00x61vhvmyk29dbbk2cf";
+       version = "0.1";
+       sha256 = "0jzqq709r4jpbvgkix9ybi6asvhshl0ayz5a4gddrccli5k430n6";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base containers ];
-       executableHaskellDepends = [ base optparse-applicative parsec ];
+       libraryHaskellDepends = [ base containers text ];
+       executableHaskellDepends = [
+         base optparse-applicative parsec text
+       ];
        testHaskellDepends = [ base hedgehog neat-interpolation text ];
        description = "Simple text replacements from a list of search/replace pairs";
        license = lib.licenses.asl20;
@@ -261137,7 +258941,6 @@ self: {
        description = "An efficient finite map from Text to values, based on bytestring-trie";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "text-utf7" = callPackage
@@ -261193,8 +258996,6 @@ self: {
        testHaskellDepends = [ base HTF text ];
        description = "Various text utilities";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "text-xml-generic" = callPackage
@@ -261311,7 +259112,6 @@ self: {
        description = "A simple Haskell program to provide tags for Haskell code completion in TextMate";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "textocat-api" = callPackage
@@ -261441,6 +259241,8 @@ self: {
        pname = "th-abstraction";
        version = "0.4.2.0";
        sha256 = "0h0wl442a82llpjsxv45i7grgyanlzjj7k28mhnvbi2zlb6v41pa";
+       revision = "1";
+       editedCabalFile = "1yc17r29vkwi4qzbrxy1d3gra87hk3ghy1jzfmrl2q8zjc0v59vb";
        libraryHaskellDepends = [
          base containers ghc-prim template-haskell
        ];
@@ -261467,7 +259269,6 @@ self: {
        description = "Alpha equivalence for TH Exp";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "th-bang-compat" = callPackage
@@ -261556,7 +259357,6 @@ self: {
        description = "Test instance context";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "th-data-compat" = callPackage
@@ -261754,7 +259554,6 @@ self: {
        description = "A place to collect orphan instances for Template Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "th-kinds" = callPackage
@@ -261820,6 +259619,8 @@ self: {
        pname = "th-lift";
        version = "0.8.2";
        sha256 = "1r2wrnrn6qwy6ysyfnlqn6xbfckw0b22h8n00pk67bhhg81jfn9s";
+       revision = "1";
+       editedCabalFile = "1l8fsxbxfsgcy6qxlgn6qxwhiqwwmmaj2vb1gbrjyb905gb3lpwm";
        libraryHaskellDepends = [
          base ghc-prim template-haskell th-abstraction
        ];
@@ -262056,7 +259857,6 @@ self: {
        description = "Graph of the subtype relation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "th-utilities" = callPackage
@@ -262118,7 +259918,6 @@ self: {
        description = "Minimalistic actor library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "themoviedb" = callPackage
@@ -262220,7 +260019,6 @@ self: {
        description = "A simple client for the TheoremQuest theorem proving game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "these" = callPackage
@@ -262326,7 +260124,6 @@ self: {
        description = "Command-line spelling word suggestion tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "thock" = callPackage
@@ -262598,10 +260395,8 @@ self: {
      }:
      mkDerivation {
        pname = "threepenny-gui";
-       version = "0.9.0.0";
-       sha256 = "0mvx661xk3nzvvxcda4vdk2ka7mff8jbpib1x59n230w80bc5sja";
-       revision = "1";
-       editedCabalFile = "0g07sdc3r1cg16m5nbhwaa95zr7kbzag60f8han5pnp67c79n67i";
+       version = "0.9.1.0";
+       sha256 = "00sjkfa9qfnnwqfdw68yb8hq6nm1y5qv9896rzn5aachr7mlfpx2";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -262741,8 +260536,8 @@ self: {
        pname = "through-text";
        version = "0.1.0.0";
        sha256 = "1kdl36n98kajaa7v7js2sy8bi09p8rrxmlfcclcfc1l92bd2aclk";
-       revision = "5";
-       editedCabalFile = "1fdy2wyczl2jncy9gg0asasb8bybcnif8aqnw9fq73sr1778kjpf";
+       revision = "6";
+       editedCabalFile = "12mqlm77g0fymx3xwlkf6s9nqivcf78szhrzkvssi7lq1lqq9lbc";
        libraryHaskellDepends = [ base bytestring case-insensitive text ];
        description = "Convert textual types through Text without needing O(n^2) instances";
        license = lib.licenses.bsd3;
@@ -262817,7 +260612,6 @@ self: {
        description = "Image thumbnail creation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "thyme" = callPackage
@@ -262886,6 +260680,7 @@ self: {
        description = "A desktop bar based on WebKit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3; inherit (pkgs) webkitgtk;};
 
   "tibetan-utils" = callPackage
@@ -262919,7 +260714,6 @@ self: {
        description = "Useful if reading \"Why FP matters\" by John Hughes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ticker" = callPackage
@@ -262957,7 +260751,6 @@ self: {
        description = "A port of @Data.Binary@";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tictactoe3d" = callPackage
@@ -262980,28 +260773,6 @@ self: {
      }:
      mkDerivation {
        pname = "tidal";
-       version = "1.7.3";
-       sha256 = "0z0brlicisn7xpwag20vdrq6ympczxcyd886pm6am5phmifkmfif";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bifunctors bytestring clock colour containers deepseq hosc
-         network parsec primitive random text transformers
-       ];
-       testHaskellDepends = [
-         base containers deepseq hosc microspec parsec
-       ];
-       benchmarkHaskellDepends = [ base criterion weigh ];
-       description = "Pattern language for improvised music";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "tidal_1_7_4" = callPackage
-    ({ mkDerivation, base, bifunctors, bytestring, clock, colour
-     , containers, criterion, deepseq, hosc, microspec, network, parsec
-     , primitive, random, text, transformers, weigh
-     }:
-     mkDerivation {
-       pname = "tidal";
        version = "1.7.4";
        sha256 = "080zncw6gp0dzwm9vd82c789v1x00nfzz8r1ldb4hl67v04jf8hi";
        enableSeparateDataOutput = true;
@@ -263015,7 +260786,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion weigh ];
        description = "Pattern language for improvised music";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tidal-midi" = callPackage
@@ -263049,7 +260819,6 @@ self: {
        description = "Serial support for tidal";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tidal-vis" = callPackage
@@ -263164,7 +260933,26 @@ self: {
        description = "Tiny and Incrementally-Growing HTTP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "tikzsd" = callPackage
+    ({ mkDerivation, array, base, containers, lens, mtl, parsec
+     , transformers
+     }:
+     mkDerivation {
+       pname = "tikzsd";
+       version = "1.0.0";
+       sha256 = "1y2pxbmm22dmrvgsqv2gvy3nf8vh3ln5pinrfsbim8qk1qfayina";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base containers lens mtl parsec transformers
+       ];
+       executableHaskellDepends = [
+         array base containers lens mtl parsec transformers
+       ];
+       description = "A program for generating LaTeX code of string diagrams";
+       license = lib.licenses.mit;
      }) {};
 
   "tile" = callPackage
@@ -263208,25 +260996,23 @@ self: {
        description = "The Timber Compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
-  "time_1_11_1_1" = callPackage
+  "time_1_11_1_2" = callPackage
     ({ mkDerivation, base, criterion, deepseq, QuickCheck, random
-     , tasty, tasty-hunit, tasty-quickcheck, unix
+     , tasty, tasty-hunit, tasty-quickcheck
      }:
      mkDerivation {
        pname = "time";
-       version = "1.11.1.1";
-       sha256 = "0xrs9j4fskxz98zgwhgh7w4d9a6im3ipahg6ahp0689qhs61cx9p";
+       version = "1.11.1.2";
+       sha256 = "0r33rxxrrpyzxpdihky93adlpdj0r8k6wh2i1sx0nb7zhvfnfj27";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [
          base deepseq QuickCheck random tasty tasty-hunit tasty-quickcheck
-         unix
        ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "A time library";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -263264,6 +261050,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "time-compat_1_9_6" = callPackage
+    ({ mkDerivation, base, base-compat, base-orphans, deepseq, hashable
+     , HUnit, QuickCheck, tagged, tasty, tasty-hunit, tasty-quickcheck
+     , time
+     }:
+     mkDerivation {
+       pname = "time-compat";
+       version = "1.9.6";
+       sha256 = "0k466nyn7v8g3lx0gjfq6hzs4gmm4ws2wcm7xqyw48fmn55pb5rx";
+       libraryHaskellDepends = [
+         base base-orphans deepseq hashable time
+       ];
+       testHaskellDepends = [
+         base base-compat deepseq hashable HUnit QuickCheck tagged tasty
+         tasty-hunit tasty-quickcheck time
+       ];
+       description = "Compatibility package for time";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "time-extras" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -263297,7 +261104,6 @@ self: {
        description = "Yet another time library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "time-http" = callPackage
@@ -263322,7 +261128,6 @@ self: {
        description = "Parse and format HTTP/1.1 Date and Time strings";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "time-interval" = callPackage
@@ -263346,7 +261151,6 @@ self: {
        description = "IO Access for time";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "time-lens" = callPackage
@@ -263602,7 +261406,6 @@ self: {
        description = "Distributed systems execution emulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "timecalc" = callPackage
@@ -263836,7 +261639,6 @@ self: {
        description = "Prints timestamps after each line evaluated";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "timer-wheel" = callPackage
@@ -264086,7 +261888,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "timing-convenience" = callPackage
@@ -264168,7 +261969,6 @@ self: {
        description = "TinyMesh - communicating with auto-meshing sensor network";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tinyXml" = callPackage
@@ -264263,7 +262063,6 @@ self: {
        description = "Convert from Haskell to Tip";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tip-lib" = callPackage
@@ -264288,7 +262087,6 @@ self: {
        description = "tons of inductive problems - support library and tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tiphys" = callPackage
@@ -264334,7 +262132,6 @@ self: {
        description = "Testing Infrastructure for Temporal AbstractioNs - GUI to debug temporal programs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "titan-debug-yampa" = callPackage
@@ -264468,16 +262265,18 @@ self: {
 
   "tlex" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
-     , hspec, hspec-discover, QuickCheck, tlex-core
+     , enummapset-th, hspec, hspec-discover, QuickCheck, tlex-core
      }:
      mkDerivation {
        pname = "tlex";
-       version = "0.2.0.0";
-       sha256 = "0ad2zxlwrkpz2lgqp9lyj4aaq0nicj8vxfys0hn63cv23arwr0cc";
+       version = "0.3.0.0";
+       sha256 = "1sbs6zxa6x2isxvynlqjf8rgy0y1syr6svvgb22bj43qsg3p3vnx";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [ base containers tlex-core ];
+       libraryHaskellDepends = [
+         base containers enummapset-th tlex-core
+       ];
        testHaskellDepends = [
-         base containers doctest hspec QuickCheck tlex-core
+         base containers doctest enummapset-th hspec QuickCheck tlex-core
        ];
        testToolDepends = [ hspec-discover ];
        description = "A lexer generator";
@@ -264486,20 +262285,21 @@ self: {
 
   "tlex-core" = callPackage
     ({ mkDerivation, array, base, Cabal, cabal-doctest, containers
-     , doctest, hashable, hspec, hspec-discover, QuickCheck
-     , transformers, unordered-containers
+     , doctest, enummapset-th, hashable, hspec, hspec-discover
+     , QuickCheck, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "tlex-core";
-       version = "0.2.1.0";
-       sha256 = "1qjzxsz7rl1fmfp1yzc2cdxjwz9nwjrxz6d18023cz41v1jympzq";
+       version = "0.3.0.0";
+       sha256 = "0nmxy35xxz6d2i7hcci68cwv9fm1ffsg00n9minaqgkwcyrk2qba";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         array base containers hashable transformers unordered-containers
+         array base containers enummapset-th hashable transformers
+         unordered-containers
        ];
        testHaskellDepends = [
-         array base containers doctest hashable hspec QuickCheck
-         transformers unordered-containers
+         array base containers doctest enummapset-th hashable hspec
+         QuickCheck transformers unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        description = "A lexer generator";
@@ -264508,20 +262308,20 @@ self: {
 
   "tlex-debug" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
-     , hspec, hspec-discover, QuickCheck, tlex, tlex-core
+     , enummapset-th, hspec, hspec-discover, QuickCheck, tlex, tlex-core
      , unordered-containers
      }:
      mkDerivation {
        pname = "tlex-debug";
-       version = "0.2.0.0";
-       sha256 = "0qj1wcdg9spf7vfwmpkqp5z74qzh9xkb4m6gv0v015krr8qvwc01";
+       version = "0.3.0.0";
+       sha256 = "012554saxmnqfm1rvgjgzn7aakvp1ai95xpavr6b3h1pqy63md6s";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base containers tlex tlex-core unordered-containers
+         base containers enummapset-th tlex tlex-core unordered-containers
        ];
        testHaskellDepends = [
-         base containers doctest hspec QuickCheck tlex tlex-core
-         unordered-containers
+         base containers doctest enummapset-th hspec QuickCheck tlex
+         tlex-core unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Debug utilities for Tlex";
@@ -264530,16 +262330,20 @@ self: {
 
   "tlex-encoding" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, charset, containers
-     , doctest, hspec, hspec-discover, QuickCheck, tlex, tlex-core
+     , doctest, enummapset-th, hspec, hspec-discover, QuickCheck, tlex
+     , tlex-core
      }:
      mkDerivation {
        pname = "tlex-encoding";
-       version = "0.2.0.0";
-       sha256 = "0krisx0fh85dccgcw6y1b3b1q2brwqz75hqg6r7w39rn0w7b5xm7";
+       version = "0.3.0.0";
+       sha256 = "1ip1zfjfn5jw817i4q8cav98d261jq7h00qaxfsmkcv7kqiqzbac";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [ base charset containers tlex tlex-core ];
+       libraryHaskellDepends = [
+         base charset containers enummapset-th tlex tlex-core
+       ];
        testHaskellDepends = [
-         base charset containers doctest hspec QuickCheck tlex tlex-core
+         base charset containers doctest enummapset-th hspec QuickCheck tlex
+         tlex-core
        ];
        testToolDepends = [ hspec-discover ];
        description = "Encoding plugin for Tlex";
@@ -264548,20 +262352,21 @@ self: {
 
   "tlex-th" = callPackage
     ({ mkDerivation, array, base, Cabal, cabal-doctest, containers
-     , doctest, ghc-prim, hspec, hspec-discover, QuickCheck
-     , template-haskell, tlex, tlex-core
+     , doctest, enummapset-th, ghc-prim, hspec, hspec-discover
+     , QuickCheck, template-haskell, tlex, tlex-core
      }:
      mkDerivation {
        pname = "tlex-th";
-       version = "0.2.0.1";
-       sha256 = "19hlj81rxnki90imiz4zjklfl4ffbpkkd9iycq4wbj92i9vw4n8v";
+       version = "0.3.0.0";
+       sha256 = "1fhp2md3v2n51irivgdij5zdql1lx8iay9yvsrmj9nhvlfjq2b4g";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         array base containers ghc-prim template-haskell tlex tlex-core
+         array base containers enummapset-th ghc-prim template-haskell tlex
+         tlex-core
        ];
        testHaskellDepends = [
-         array base containers doctest ghc-prim hspec QuickCheck
-         template-haskell tlex tlex-core
+         array base containers doctest enummapset-th ghc-prim hspec
+         QuickCheck template-haskell tlex tlex-core
        ];
        testToolDepends = [ hspec-discover ];
        description = "TemplateHaskell plugin for Tlex";
@@ -264632,7 +262437,6 @@ self: {
        description = "TLS extra default values and helpers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tls-session-manager" = callPackage
@@ -264670,8 +262474,6 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Handle phylogenetic trees";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tmapchan" = callPackage
@@ -264782,7 +262584,6 @@ self: {
        description = "A simple daily journal program";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tnet" = callPackage
@@ -264857,7 +262658,6 @@ self: {
        description = "Instances for the ToString class";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "toboggan" = callPackage
@@ -264877,7 +262677,6 @@ self: {
        description = "Twitter bot generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "todo" = callPackage
@@ -264917,7 +262716,6 @@ self: {
        description = "Easy-to-use TODOs manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tofromxml" = callPackage
@@ -265120,7 +262918,6 @@ self: {
        executableHaskellDepends = [ base bytestring gf iconv ];
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tokyocabinet-haskell" = callPackage
@@ -265343,8 +263140,6 @@ self: {
        ];
        description = "tonatona plugin for google-server-api";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tonatona-logger" = callPackage
@@ -265470,7 +263265,6 @@ self: {
        description = "Cluster single cells and analyze cell clade relationships";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "toodles" = callPackage
@@ -265550,7 +263344,21 @@ self: {
        description = "Top (typed oriented protocol) API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "tophat" = callPackage
+    ({ mkDerivation, base, filepath, hspec, profunctors, text }:
+     mkDerivation {
+       pname = "tophat";
+       version = "1.0.0.0";
+       sha256 = "0zwhik8x2z1kbyv873kvdbnzyyg4f6qky1gw03icarxan9553s7m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base profunctors text ];
+       executableHaskellDepends = [ base filepath text ];
+       testHaskellDepends = [ base hspec profunctors text ];
+       description = "Template-to-Haskell preprocessor, and templating language";
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "topkata" = callPackage
@@ -265570,7 +263378,6 @@ self: {
        description = "OpenGL Arcade Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "topograph" = callPackage
@@ -265649,6 +263456,7 @@ self: {
        libraryHaskellDepends = [ base void ];
        description = "Exhaustive pattern matching using lenses, traversals, and prisms";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "total-alternative" = callPackage
@@ -265672,7 +263480,6 @@ self: {
        description = "Finitely represented total maps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "total-maps" = callPackage
@@ -265752,7 +263559,6 @@ self: {
        description = "A Tox protocol implementation in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "toxcore-c" = callPackage
@@ -265779,7 +263585,6 @@ self: {
        description = "Haskell bindings to the C reference implementation of Tox";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {toxcore = null;};
 
   "toxiproxy-haskell" = callPackage
@@ -265821,8 +263626,8 @@ self: {
        pname = "toysolver";
        version = "0.7.0";
        sha256 = "1r8z8fg3iyz5cc7cmwv29i7gwdcb789s7p6yklfgmz8w314m83gj";
-       revision = "1";
-       editedCabalFile = "1gnpyqjrcpsc2qjnnajr77j5x0xnyxpsmcxqa2qfbahw0r9qvmfw";
+       revision = "2";
+       editedCabalFile = "0ccdmmckw9gkqxvr8f8h84m4mybcpbmrv1yv0kvbl1qhrb01ihli";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -265857,7 +263662,6 @@ self: {
        description = "Assorted decision procedures for SAT, SMT, Max-SAT, PB, MIP, etc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tpar" = callPackage
@@ -265895,7 +263699,6 @@ self: {
        description = "simple, parallel job scheduling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tpb" = callPackage
@@ -265922,7 +263725,6 @@ self: {
        description = "Applications for interacting with the Pushbullet API";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tpdb" = callPackage
@@ -266074,8 +263876,6 @@ self: {
        ];
        description = "Distributed tracing";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tracing-control" = callPackage
@@ -266269,7 +264069,6 @@ self: {
        description = "Tools and a library for working with Trajectory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trans-fx-core" = callPackage
@@ -266354,7 +264153,6 @@ self: {
        description = "Text transformer and interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "transfer-db" = callPackage
@@ -266384,7 +264182,6 @@ self: {
        description = "ODBC database transfer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "transformations" = callPackage
@@ -266406,7 +264203,6 @@ self: {
        description = "Generic representation of tree transformations";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "transformers_0_5_6_2" = callPackage
@@ -266517,7 +264313,6 @@ self: {
        description = "Sensible conversions between some of the monad transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "transformers-eff" = callPackage
@@ -266645,6 +264440,8 @@ self: {
        ];
        description = "composing programs with multithreading, events and distributed computing";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "transient-universe" = callPackage
@@ -266699,7 +264496,6 @@ self: {
        description = "transient with secure communications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "translatable-intset" = callPackage
@@ -266767,7 +264563,6 @@ self: {
        description = "Type Safe Web Routing";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trasa-client" = callPackage
@@ -266785,7 +264580,6 @@ self: {
        description = "Type safe http requests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trasa-extra" = callPackage
@@ -266804,7 +264598,6 @@ self: {
        description = "Extra functions for trasa";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trasa-form" = callPackage
@@ -266824,7 +264617,6 @@ self: {
        description = "generate forms using lucid, ditto and trasa";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trasa-reflex" = callPackage
@@ -266859,7 +264651,6 @@ self: {
        description = "Type safe web server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trasa-th" = callPackage
@@ -266877,7 +264668,6 @@ self: {
        description = "Template Haskell to generate trasa routes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "traversal-template" = callPackage
@@ -267336,7 +265126,6 @@ self: {
        description = "Treemap related commands for producing foldable TreeMap HTML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "treersec" = callPackage
@@ -267418,7 +265207,6 @@ self: {
        description = "A PostgreSQL Database Migrator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trek-db" = callPackage
@@ -267443,7 +265231,6 @@ self: {
        description = "A PostgreSQL Database Migrator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trek-lens" = callPackage
@@ -267538,7 +265325,6 @@ self: {
        description = "triangulation of polygons";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trie-simple" = callPackage
@@ -267588,7 +265374,6 @@ self: {
        description = "Various trie implementations in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trifecta" = callPackage
@@ -267667,7 +265452,6 @@ self: {
        description = "Search for, annotate and trim poly-A tail";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tripLL" = callPackage
@@ -267723,13 +265507,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "trivial-constraint";
-       version = "0.6.0.0";
-       sha256 = "0y0iyll7ml5qz271cqa0dc3w2j3w1d8jjaxwaf2flcidigws69z5";
+       version = "0.7.0.0";
+       sha256 = "0kyjifqfjf4lmrba4fb65m82s8qqv2nld9lj0qvh2qxc8bfw4hj7";
        libraryHaskellDepends = [ base ];
        description = "Constraints that any type, resp. no type fulfills";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tropical" = callPackage
@@ -267799,7 +265581,6 @@ self: {
        description = "Audio file compressor-limiter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "trurl" = callPackage
@@ -267823,7 +265604,6 @@ self: {
        description = "Haskell template code generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "truthful" = callPackage
@@ -267864,7 +265644,6 @@ self: {
        description = "A Transaction Framework for Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tsetchan" = callPackage
@@ -268072,7 +265851,6 @@ self: {
        description = "An API binding Web.Spock to Database.Beam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ttask" = callPackage
@@ -268274,7 +266052,6 @@ self: {
        description = "A simple tun/tap library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tup-functor" = callPackage
@@ -268290,7 +266067,6 @@ self: {
        description = "Homogeneous tuples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tuple" = callPackage
@@ -268365,7 +266141,6 @@ self: {
        description = "Morph between tuples, or convert them from and to HLists";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tuple-ops" = callPackage
@@ -268378,7 +266153,6 @@ self: {
        description = "various operations on n-ary tuples via GHC.Generics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tuple-sop" = callPackage
@@ -268499,7 +266273,6 @@ self: {
        description = "An implementation of Turing Machine and Automaton";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "turkish-deasciifier" = callPackage
@@ -268562,6 +266335,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Shell programming, Haskell-style";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "turtle-options" = callPackage
@@ -268595,6 +266369,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "twain" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive, cookie
+     , either, http-types, text, time, transformers, wai, wai-extra
+     , warp
+     }:
+     mkDerivation {
+       pname = "twain";
+       version = "1.0.0.0";
+       sha256 = "0brxvqddnhxs4q5hm9g8fzkznk3xjagivy0glfiqrx24p4k8s9yb";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive cookie either http-types
+         text time transformers wai wai-extra warp
+       ];
+       description = "Tiny web application framework for WAI";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "tweak" = callPackage
     ({ mkDerivation, base, containers, lens, stm, transformers }:
      mkDerivation {
@@ -268623,8 +266414,6 @@ self: {
        ];
        description = "An equational theorem prover";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twee-lib" = callPackage
@@ -268668,8 +266457,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion megaparsec ];
        description = "Command-line tool for twitter";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twentefp" = callPackage
@@ -268699,7 +266486,6 @@ self: {
        description = "Used as Lab Assignments Environment at the University of Twente";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twentefp-eventloop-trees" = callPackage
@@ -268712,7 +266498,6 @@ self: {
        description = "Tree type and show functions for lab assignment of University of Twente. Contains RoseTree and RedBlackTree";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twentefp-graphs" = callPackage
@@ -268725,7 +266510,6 @@ self: {
        description = "Lab Assignments Environment at Univeriteit Twente";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twentefp-number" = callPackage
@@ -268752,7 +266536,6 @@ self: {
        description = "RoseTree type and show functions for lab assignment of University of Twente";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twentefp-trees" = callPackage
@@ -268765,7 +266548,6 @@ self: {
        description = "Tree type and show functions for lab assignment of University of Twente. Contains RoseTree and ParseTree";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twentefp-websockets" = callPackage
@@ -268816,7 +266598,6 @@ self: {
        description = "Rubik's cube solver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twfy-api-client" = callPackage
@@ -268897,7 +266678,6 @@ self: {
        description = "Unix Command-Line Twitter and Identica Client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twilight-stm" = callPackage
@@ -268910,7 +266690,6 @@ self: {
        description = "STM library with safe irrevocable I/O and inconsistency repair";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twilio" = callPackage
@@ -268958,7 +266737,6 @@ self: {
        description = "Twilio API interaction";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twiml" = callPackage
@@ -269070,7 +266848,6 @@ self: {
        description = "A Haskell-based CLI Twitter client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twitter-conduit" = callPackage
@@ -269101,8 +266878,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Twitter API package with conduit interface and Streaming API support";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twitter-enumerator" = callPackage
@@ -269122,7 +266897,6 @@ self: {
        description = "Twitter API package with enumerator interface and Streaming API support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "twitter-feed" = callPackage
@@ -269217,8 +266991,6 @@ self: {
        testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
        description = "Text";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "txt-sushi" = callPackage
@@ -269333,7 +267105,6 @@ self: {
        description = "Runtime type assertions for testing";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-booleans" = callPackage
@@ -269361,7 +267132,6 @@ self: {
        description = "Utilities for caching type families results. Sometimes complex type families take long time to compile, so it is proficient to cache them and use the final result without the need of re-computation.";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-cereal" = callPackage
@@ -269379,7 +267149,6 @@ self: {
        description = "Type-level serialization of type constructors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-combinators" = callPackage
@@ -269411,7 +267180,6 @@ self: {
        description = "Quasiquoters for the 'type-combinators' package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-combinators-singletons" = callPackage
@@ -269424,7 +267192,6 @@ self: {
        description = "Interop between /type-combinators/ and /singletons/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-digits" = callPackage
@@ -269437,7 +267204,6 @@ self: {
        description = "Arbitrary-base type-level digits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-eq" = callPackage
@@ -269854,7 +267620,6 @@ self: {
        description = "Type-level comparison operator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-ord-spine-cereal" = callPackage
@@ -269871,7 +267636,6 @@ self: {
        description = "Generic type-level comparison of types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-prelude" = callPackage
@@ -269898,7 +267662,6 @@ self: {
        description = "Type-level sets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-settheory" = callPackage
@@ -269968,7 +267731,6 @@ self: {
        description = "Type structure analysis";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-sub-th" = callPackage
@@ -269994,7 +267756,6 @@ self: {
        description = "Substitute types for other types with Template Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "type-tree" = callPackage
@@ -270163,7 +267924,6 @@ self: {
        description = "Bridge between encoding and typed-encoding packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "typed-process" = callPackage
@@ -270203,7 +267963,7 @@ self: {
        description = "Typed and composable spreadsheets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
   "typed-streams" = callPackage
@@ -270226,26 +267986,23 @@ self: {
        description = "A stream based replacement for lists";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
-  "typed-uuid" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, deepseq, hashable
-     , http-api-data, random, text, uuid, validity, validity-uuid
-     }:
+  "typed-time" = callPackage
+    ({ mkDerivation, base, hspec, hspec-core, time }:
      mkDerivation {
-       pname = "typed-uuid";
-       version = "0.0.0.2";
-       sha256 = "01gh95cxymimjyvhpba0w5bzw6vnx9jzgc6a5jj7vqxi421cc7ss";
-       libraryHaskellDepends = [
-         aeson base binary bytestring deepseq hashable http-api-data random
-         text uuid validity validity-uuid
-       ];
-       description = "Phantom-Typed version of UUID";
-       license = lib.licenses.mit;
+       pname = "typed-time";
+       version = "0.1.0.0";
+       sha256 = "0fk8zb198i5xfwrc820br8hh1nfcqcrzyzkyf0srijjf88m92y27";
+       libraryHaskellDepends = [ base time ];
+       testHaskellDepends = [ base hspec hspec-core time ];
+       description = "A strongly typed way to handle time and date formats";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
-  "typed-uuid_0_1_0_0" = callPackage
+  "typed-uuid" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, deepseq, hashable
      , http-api-data, random, text, uuid, validity, validity-uuid
      , yamlparse-applicative
@@ -270260,7 +268017,6 @@ self: {
        ];
        description = "Phantom-Typed version of UUID";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "typed-wire" = callPackage
@@ -270366,7 +268122,6 @@ self: {
        description = "Useful type level operations (type families and related operators)";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "typelevel-rewrite-rules" = callPackage
@@ -270384,7 +268139,6 @@ self: {
        description = "Solve type equalities using custom type-level rewrite rules";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "typelevel-tensor" = callPackage
@@ -270439,8 +268193,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Type level numbers using existing Nat functionality";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "typeof" = callPackage
@@ -270563,7 +268315,6 @@ self: {
        description = "A documentation generator for TypeScript Definition files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "typical" = callPackage
@@ -270641,7 +268392,6 @@ self: {
        description = "Typson Beam Integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "typson-core" = callPackage
@@ -270682,7 +268432,6 @@ self: {
        description = "Typson Esqueleto Integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "typson-selda" = callPackage
@@ -270706,7 +268455,6 @@ self: {
        description = "Typson Selda Integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tyro" = callPackage
@@ -270796,7 +268544,6 @@ self: {
        description = "Haskell Universal Two Factor helper toolbox library thing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uAgda" = callPackage
@@ -270875,7 +268622,6 @@ self: {
        description = "Uber client for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uberlast" = callPackage
@@ -270919,7 +268665,6 @@ self: {
        description = "The Ucam-Webauth protocol, used by Raven";
        license = "(BSD-3-Clause OR Apache-2.0)";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ucam-webauth-types" = callPackage
@@ -271126,7 +268871,6 @@ self: {
        description = "Part of UHC packaged as cabal/hackage installable library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uhc-util" = callPackage
@@ -271147,7 +268891,6 @@ self: {
        description = "UHC utilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uhexdump" = callPackage
@@ -271265,6 +269008,8 @@ self: {
        ];
        description = "Implementation of ULID - Universally Unique Lexicographically Sortable Identifier";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "una" = callPackage
@@ -271300,7 +269045,6 @@ self: {
        description = "A fast, cache-efficient, concurrent bloom filter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unagi-chan" = callPackage
@@ -271400,7 +269144,6 @@ self: {
        description = "Generic support for programming with names and binders";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unbound-generics" = callPackage
@@ -271615,8 +269358,6 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Tiny package providing unescaping versions of show and print";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unexceptionalio" = callPackage
@@ -271675,6 +269416,8 @@ self: {
        ];
        description = "Class of data structures that can be unfolded";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unfoldable-restricted" = callPackage
@@ -271691,6 +269434,7 @@ self: {
        ];
        description = "An alternative to the Unfoldable typeclass";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ungadtagger" = callPackage
@@ -271714,7 +269458,6 @@ self: {
        description = "Event handling for the uniform workbench";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uni-graphs" = callPackage
@@ -271731,7 +269474,6 @@ self: {
        description = "Graphs";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uni-htk" = callPackage
@@ -271749,7 +269491,6 @@ self: {
        description = "Graphical User Interface for Haskell Programs";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uni-posixutil" = callPackage
@@ -271766,7 +269507,6 @@ self: {
        description = "Posix utilities for the uniform workbench";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uni-reactor" = callPackage
@@ -271782,7 +269522,6 @@ self: {
        description = "Reactors for the uniform workbench";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uni-uDrawGraph" = callPackage
@@ -271800,7 +269539,6 @@ self: {
        description = "Graphs binding";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uni-util" = callPackage
@@ -271836,22 +269574,25 @@ self: {
      }) {};
 
   "unicode-collation" = callPackage
-    ({ mkDerivation, base, binary, bytestring, bytestring-lexing
-     , containers, filepath, parsec, QuickCheck, quickcheck-instances
-     , tasty, tasty-bench, tasty-hunit, template-haskell, text, text-icu
+    ({ mkDerivation, base, binary, bytestring, containers, parsec
+     , QuickCheck, quickcheck-instances, tasty, tasty-bench, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, text-icu
      , th-lift-instances, unicode-transforms
      }:
      mkDerivation {
        pname = "unicode-collation";
-       version = "0.1.2";
-       sha256 = "1q77rd3d2c1r5d35f0z1mhismc3rf8bg1dwfg32wvdd9hpszc52v";
+       version = "0.1.3";
+       sha256 = "0nbxkpd29ivdi6vcikbaasffkcz9m2vd4nhv29p6gmvckzmhj7zi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base binary bytestring bytestring-lexing containers filepath parsec
-         template-haskell text th-lift-instances unicode-transforms
+         base binary bytestring containers parsec template-haskell text
+         th-lift-instances
+       ];
+       testHaskellDepends = [
+         base bytestring tasty tasty-hunit tasty-quickcheck text
+         unicode-transforms
        ];
-       testHaskellDepends = [ base bytestring tasty tasty-hunit text ];
        benchmarkHaskellDepends = [
          base QuickCheck quickcheck-instances tasty-bench text text-icu
        ];
@@ -271901,7 +269642,6 @@ self: {
        description = "Unicode normalization using the ICU library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) icu;};
 
   "unicode-prelude" = callPackage
@@ -271980,15 +269720,17 @@ self: {
      }) {};
 
   "unicode-tricks" = callPackage
-    ({ mkDerivation, base, data-default, hspec, hspec-discover
-     , QuickCheck, text
+    ({ mkDerivation, base, containers, data-default, hashable, hspec
+     , hspec-discover, QuickCheck, text
      }:
      mkDerivation {
        pname = "unicode-tricks";
-       version = "0.8.0.0";
-       sha256 = "1ilbl1f5kigb09n1a8nkm484sjyvi7k3wnga6gj5jgss00xj4xfb";
-       libraryHaskellDepends = [ base data-default QuickCheck text ];
-       testHaskellDepends = [ base hspec QuickCheck ];
+       version = "0.10.1.0";
+       sha256 = "0f9giqhd4jjqdd0wcbrrd8f01bhqv25m13ss3f1jfaaacaiylpam";
+       libraryHaskellDepends = [
+         base containers data-default hashable QuickCheck text
+       ];
+       testHaskellDepends = [ base hashable hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
        description = "Functions to work with unicode blocks more convenient";
        license = lib.licenses.bsd3;
@@ -272041,6 +269783,55 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "uniform-algebras" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "uniform-algebras";
+       version = "0.1.0";
+       sha256 = "19grz10hagzi8x9am59i6jifm1zjf31698k8r4l7bbhyww4w6p91";
+       libraryHaskellDepends = [ base ];
+       description = "Pointless functions and a simplistic zero and monoid";
+       license = lib.licenses.gpl2Only;
+     }) {};
+
+  "uniform-error" = callPackage
+    ({ mkDerivation, base, monads-tf, safe, uniform-strings }:
+     mkDerivation {
+       pname = "uniform-error";
+       version = "0.1.0";
+       sha256 = "1ap8wrnh08yvv9hwd92mp1g5fz4g7l0aij1h0hfl3j7ijd028pmx";
+       libraryHaskellDepends = [ base monads-tf safe uniform-strings ];
+       description = "Handling errors in the uniform framework";
+       license = lib.licenses.gpl2Only;
+     }) {};
+
+  "uniform-fileio" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, directory, exceptions
+     , filepath, HTF, monads-tf, path, path-io, pipes, pureMD5
+     , quickcheck-text, safe, test-invariant, text, uniform-algebras
+     , uniform-error, uniform-strings, uniform-time, unix, zlib
+     }:
+     mkDerivation {
+       pname = "uniform-fileio";
+       version = "0.1.0";
+       sha256 = "0rxhjn4qv2dbdycdfqblymyfj3wax586ar77zwdgkyld7v7s12ya";
+       libraryHaskellDepends = [
+         base bytestring deepseq directory exceptions filepath monads-tf
+         path path-io pipes pureMD5 safe text uniform-algebras uniform-error
+         uniform-strings uniform-time unix zlib
+       ];
+       testHaskellDepends = [
+         base bytestring deepseq directory exceptions filepath HTF monads-tf
+         path path-io pipes pureMD5 quickcheck-text safe test-invariant text
+         uniform-algebras uniform-error uniform-strings uniform-time unix
+         zlib
+       ];
+       description = "Uniform file handling operations";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "uniform-io" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, Cabal
      , data-default-class, interruptible, iproute, monad-control
@@ -272059,7 +269850,6 @@ self: {
        description = "Uniform IO over files, network, anything";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) openssl;};
 
   "uniform-pair" = callPackage
@@ -272078,6 +269868,56 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "uniform-strings" = callPackage
+    ({ mkDerivation, base, bytestring, MissingH, monads-tf, network-uri
+     , pretty-show, safe, snap-core, split, text, text-icu
+     , uniform-algebras
+     }:
+     mkDerivation {
+       pname = "uniform-strings";
+       version = "0.1.0";
+       sha256 = "17w04fxx81gk02xl7ca64amc0hb06i77fbanhykp3qd70nd2k8ix";
+       libraryHaskellDepends = [
+         base bytestring MissingH monads-tf network-uri pretty-show safe
+         snap-core split text text-icu uniform-algebras
+       ];
+       description = "Manipulate and convert strings of characters uniformly and consistently";
+       license = lib.licenses.gpl2Only;
+     }) {};
+
+  "uniform-time" = callPackage
+    ({ mkDerivation, base, convertible, monads-tf, time
+     , uniform-algebras, uniform-error, uniform-strings
+     }:
+     mkDerivation {
+       pname = "uniform-time";
+       version = "0.1.0";
+       sha256 = "08p40xl4zzswhax3i6j4ps0zy2m9qsbcpj4b00xvizc3g9fxnzsh";
+       libraryHaskellDepends = [
+         base convertible monads-tf time uniform-algebras uniform-error
+         uniform-strings
+       ];
+       description = "Time in the uniform framework";
+       license = lib.licenses.gpl2Only;
+     }) {};
+
+  "uniformBase" = callPackage
+    ({ mkDerivation, base, uniform-algebras, uniform-error
+     , uniform-fileio, uniform-strings, uniform-time
+     }:
+     mkDerivation {
+       pname = "uniformBase";
+       version = "0.1.0";
+       sha256 = "1ya87jzfmzldd66rwxrccidkrpknqws5rslq9zdsjcdngn2w0sa9";
+       libraryHaskellDepends = [
+         base uniform-algebras uniform-error uniform-fileio uniform-strings
+         uniform-time
+       ];
+       description = "A uniform base to build apps on";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "union" = callPackage
     ({ mkDerivation, base, criterion, deepseq, hashable, lens
      , profunctors, tagged, vinyl
@@ -272094,8 +269934,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq lens ];
        description = "Extensible type-safe unions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "union-find" = callPackage
@@ -272350,7 +270188,6 @@ self: {
        description = "Usage examples for the uniqueness-periods-vector series of packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uniqueness-periods-vector-filters" = callPackage
@@ -272623,8 +270460,6 @@ self: {
        ];
        description = "A class for finite and recursively enumerable types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "universe-base" = callPackage
@@ -272662,8 +270497,6 @@ self: {
        libraryHaskellDepends = [ base universe-base ];
        description = "Universe instances for types from the base package";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "universe-instances-extended" = callPackage
@@ -272681,8 +270514,6 @@ self: {
        ];
        description = "Universe instances for types from selected extra packages";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "universe-instances-trans" = callPackage
@@ -272696,8 +270527,6 @@ self: {
        libraryHaskellDepends = [ base universe-base ];
        description = "Universe instances for types from the transformers and mtl packages";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "universe-reverse-instances" = callPackage
@@ -272749,7 +270578,6 @@ self: {
        description = "Construct a Dec's ancestor list";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "universum" = callPackage
@@ -272825,7 +270653,6 @@ self: {
        description = "Comprehensive bindings to fcntl(2)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unix-handle" = callPackage
@@ -272933,7 +270760,6 @@ self: {
        description = "Straightforward bindings to the posix API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unix-time" = callPackage
@@ -273039,8 +270865,33 @@ self: {
      }:
      mkDerivation {
        pname = "unliftio";
-       version = "0.2.14";
-       sha256 = "0gwifnzfcpjhzch06vkx1jkl7jf6j844grd4frl7w513bipb7w0r";
+       version = "0.2.17";
+       sha256 = "1z37bqnrzhqhg7dfmsqz31lq8ng3qnkknc9d4pxbjbbmf1g21hfv";
+       libraryHaskellDepends = [
+         async base bytestring deepseq directory filepath process stm time
+         transformers unix unliftio-core
+       ];
+       testHaskellDepends = [
+         async base bytestring containers deepseq directory filepath hspec
+         process QuickCheck stm time transformers unix unliftio-core
+       ];
+       benchmarkHaskellDepends = [
+         async base bytestring deepseq directory filepath gauge process stm
+         time transformers unix unliftio-core
+       ];
+       description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)";
+       license = lib.licenses.mit;
+     }) {};
+
+  "unliftio_0_2_18" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, deepseq
+     , directory, filepath, gauge, hspec, process, QuickCheck, stm, time
+     , transformers, unix, unliftio-core
+     }:
+     mkDerivation {
+       pname = "unliftio";
+       version = "0.2.18";
+       sha256 = "0yg5x2v3p4pdw7892l1mkihmdbak14qvmni1vk2a0y2gdmxfvx1y";
        libraryHaskellDepends = [
          async base bytestring deepseq directory filepath process stm time
          transformers unix unliftio-core
@@ -273055,6 +270906,7 @@ self: {
        ];
        description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "unliftio-core" = callPackage
@@ -273142,8 +270994,6 @@ self: {
        ];
        description = "Generalization of io-streams to MonadUnliftIO";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unlit" = callPackage
@@ -273197,8 +271047,8 @@ self: {
      }:
      mkDerivation {
        pname = "unordered-containers";
-       version = "0.2.13.0";
-       sha256 = "0mbvld5dym17jc13ycl862k73kg26y9khb8578w13cwfmdli7c46";
+       version = "0.2.14.0";
+       sha256 = "0rw8kmg7xjlacmr1hcpin95abkd387awf154s9ran7zg9jllh3x1";
        libraryHaskellDepends = [ base deepseq hashable ];
        testHaskellDepends = [
          base ChasingBottoms containers hashable HUnit QuickCheck random
@@ -273342,7 +271192,6 @@ self: {
        description = "maybes of numeric values with fewer indirections";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unpacked-maybe-text" = callPackage
@@ -273371,7 +271220,6 @@ self: {
        description = "An unpacked these data type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unpacked-validation" = callPackage
@@ -273389,7 +271237,6 @@ self: {
        description = "An unpacked validation data type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unparse-attoparsec" = callPackage
@@ -273411,7 +271258,6 @@ self: {
        description = "An attoparsec roundtrip";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unroll-ghc-plugin" = callPackage
@@ -273477,6 +271323,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "unsatisfiable" = callPackage
+    ({ mkDerivation, base, ghc }:
+     mkDerivation {
+       pname = "unsatisfiable";
+       version = "0";
+       sha256 = "0cvlqrrr31dn2agd7cz2s5gnf2m1yy21kwmymcpdg5zk34dc19wh";
+       libraryHaskellDepends = [ base ghc ];
+       description = "Unsatisfiable type class";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "unscramble" = callPackage
     ({ mkDerivation, array, base, optparse-applicative, stream-fusion
      , unordered-containers
@@ -273494,7 +271353,6 @@ self: {
        description = "Solve Boggle-like word games";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "unsequential" = callPackage
@@ -273607,7 +271465,6 @@ self: {
        description = "Command-line tool to generate paths for moving upward in a file system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "up-grade" = callPackage
@@ -273643,8 +271500,8 @@ self: {
      }:
      mkDerivation {
        pname = "update-nix-fetchgit";
-       version = "0.2.5";
-       sha256 = "0lga69cnzysayvsflbcf43i7ncnib9mq62azi30kpm860s0h5lfb";
+       version = "0.2.7";
+       sha256 = "0knwn11c3kdh1xbpa8l6kgskis9fcsjr06hxay3rl4yiqprf80xn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -273662,7 +271519,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A program to update fetchgit values in Nix expressions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = with lib.maintainers; [ expipiplus1 sorki ];
      }) {};
 
   "update-repos" = callPackage
@@ -273744,7 +271601,6 @@ self: {
        description = "Talk to Urbit from Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "urbit-api" = callPackage
@@ -273762,7 +271618,6 @@ self: {
        description = "Talk to Urbit from Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "urbit-hob" = callPackage
@@ -273779,7 +271634,6 @@ self: {
        description = "Hoon-style atom manipulation and printing functions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ureader" = callPackage
@@ -273804,7 +271658,6 @@ self: {
        description = "Minimalistic CLI RSS reader";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "urembed" = callPackage
@@ -273826,7 +271679,6 @@ self: {
        description = "Ur/Web static content generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uri" = callPackage
@@ -273956,7 +271808,6 @@ self: {
        description = "Read and write URIs (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uri-enumerator-file" = callPackage
@@ -273976,7 +271827,6 @@ self: {
        description = "uri-enumerator backend for the file scheme (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uri-parse" = callPackage
@@ -274071,7 +271921,6 @@ self: {
        description = "Memory efficient url type and parser";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "url-decoders" = callPackage
@@ -274195,7 +272044,6 @@ self: {
        description = "Painfully simple URL deployment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "urn" = callPackage
@@ -274274,7 +272122,6 @@ self: {
        description = "Communicate with USB devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "usb-enumerator" = callPackage
@@ -274292,7 +272139,6 @@ self: {
        description = "Iteratee enumerators for the usb package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "usb-hid" = callPackage
@@ -274307,7 +272153,6 @@ self: {
        description = "Parser and request Library for USB HIDs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "usb-id-database" = callPackage
@@ -274328,7 +272173,6 @@ self: {
        description = "A database of USB identifiers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "usb-iteratee" = callPackage
@@ -274346,7 +272190,6 @@ self: {
        description = "Iteratee enumerators for the usb package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "usb-safe" = callPackage
@@ -274364,7 +272207,6 @@ self: {
        description = "Type-safe communication with USB devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "useragents" = callPackage
@@ -274394,8 +272236,6 @@ self: {
        ];
        description = "The UserId type and useful instances for web development";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "users" = callPackage
@@ -274631,7 +272471,6 @@ self: {
        description = "Exceptional utilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "util-logict" = callPackage
@@ -274697,7 +272536,6 @@ self: {
        description = "Utilities for stateful primitive types and types based on them";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "util-universe" = callPackage
@@ -274761,7 +272599,6 @@ self: {
        description = "Utilities for compiler construction: example programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uu-cco-hut-parsing" = callPackage
@@ -274774,7 +272611,6 @@ self: {
        description = "Utilities for compiler construction: Feedback wrapper around parser in uulib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uu-cco-uu-parsinglib" = callPackage
@@ -274787,7 +272623,6 @@ self: {
        description = "Utilities for compiler construction: Feedback wrapper around parser in uu-parsinglib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uu-interleaved" = callPackage
@@ -274913,8 +272748,6 @@ self: {
        libraryHaskellDepends = [ base diagrams-lib SVGFonts ];
        description = "Utility for drawing attribute grammar pictures with the diagrams package";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uuagd" = callPackage
@@ -274940,8 +272773,8 @@ self: {
      }:
      mkDerivation {
        pname = "uuid";
-       version = "1.3.14";
-       sha256 = "1msj296faldr9fiwjqi9ixx3xl638mg6ffk7axic14wf8b9zw73a";
+       version = "1.3.15";
+       sha256 = "0r05h16gd7fgfpq9iz43jcn9jzrgfa0gk4cv1xy0p4rli66rb1gq";
        libraryHaskellDepends = [
          base binary bytestring cryptohash-md5 cryptohash-sha1 entropy
          network-info random text time uuid-types
@@ -274988,7 +272821,6 @@ self: {
        description = "UUID parsing using byteverse packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uuid-crypto" = callPackage
@@ -275008,7 +272840,6 @@ self: {
        description = "Reversable and secure encoding of object ids as uuids";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uuid-le" = callPackage
@@ -275035,6 +272866,8 @@ self: {
        ];
        description = "Orphan instances for the UUID datatype";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "uuid-quasi" = callPackage
@@ -275051,18 +272884,19 @@ self: {
   "uuid-types" = callPackage
     ({ mkDerivation, base, binary, bytestring, deepseq, ghc-byteorder
      , hashable, QuickCheck, random, tasty, tasty-hunit
-     , tasty-quickcheck, text
+     , tasty-quickcheck, template-haskell, text
      }:
      mkDerivation {
        pname = "uuid-types";
-       version = "1.0.4";
-       sha256 = "01pc93z6in6g717mxkhl111qc842fz1c2z7ml6n5jhm7lg52ran2";
+       version = "1.0.5";
+       sha256 = "1pd7xd6inkmmwjscf7pmiwqjks9y0gi1p8ahqbapvh34gadvhs5d";
        libraryHaskellDepends = [
-         base binary bytestring deepseq hashable random text
+         base binary bytestring deepseq hashable random template-haskell
+         text
        ];
        testHaskellDepends = [
          base binary bytestring ghc-byteorder QuickCheck tasty tasty-hunit
-         tasty-quickcheck
+         tasty-quickcheck template-haskell
        ];
        description = "Type definitions for Universally Unique Identifiers";
        license = lib.licenses.bsd3;
@@ -275098,6 +272932,7 @@ self: {
        ];
        description = "Tweak .cabal files";
        license = lib.licenses.mit;
+       maintainers = with lib.maintainers; [ berberman ];
      }) {};
 
   "uvector" = callPackage
@@ -275125,7 +272960,6 @@ self: {
        description = "Efficient algorithms for uvector unboxed arrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "uxadt" = callPackage
@@ -275167,7 +273001,6 @@ self: {
        description = "interface to Video For Linux Two (V4L2)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "v4l2-examples" = callPackage
@@ -275182,7 +273015,6 @@ self: {
        description = "video for linux two examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vabal" = callPackage
@@ -275205,7 +273037,6 @@ self: {
        description = "the cabal companion";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vabal-lib" = callPackage
@@ -275255,7 +273086,6 @@ self: {
        description = "Visualize live Haskell data structures using vacuum, graphviz and cairo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vacuum-graphviz" = callPackage
@@ -275268,7 +273098,6 @@ self: {
        description = "A library for transforming vacuum graphs into GraphViz output";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vacuum-opengl" = callPackage
@@ -275289,7 +273118,6 @@ self: {
        description = "Visualize live Haskell data structures using vacuum, graphviz and OpenGL";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vacuum-ubigraph" = callPackage
@@ -275302,7 +273130,6 @@ self: {
        description = "Visualize Haskell data structures using vacuum and Ubigraph";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vado" = callPackage
@@ -275378,8 +273205,6 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Input validation combinator library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "validated-literals" = callPackage
@@ -275771,7 +273596,6 @@ self: {
        description = "variable-precision floating point";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "variables" = callPackage
@@ -275788,6 +273612,25 @@ self: {
        broken = true;
      }) {};
 
+  "variadic" = callPackage
+    ({ mkDerivation, base, containers, criterion, hspec
+     , hspec-expectations-lifted, mmorph, mtl, process
+     }:
+     mkDerivation {
+       pname = "variadic";
+       version = "0.0.0.0";
+       sha256 = "1wlf8bxxmal6zmjhdw6ghvcdxi2lvlhs2vn7c7sn0jb88im0i18s";
+       libraryHaskellDepends = [ base mmorph mtl ];
+       testHaskellDepends = [
+         base containers hspec hspec-expectations-lifted mmorph mtl process
+       ];
+       benchmarkHaskellDepends = [ base criterion mmorph mtl ];
+       description = "Abstractions for working with variadic functions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "variation" = callPackage
     ({ mkDerivation, base, cereal, containers, deepseq, semigroupoids
      }:
@@ -275954,7 +273797,6 @@ self: {
        description = "patricia tries modeled above VCache";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vcard" = callPackage
@@ -275969,7 +273811,6 @@ self: {
        description = "A library for parsing/printing vCards from/to various formats";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vcatt" = callPackage
@@ -276017,6 +273858,31 @@ self: {
        broken = true;
      }) {};
 
+  "vcs-ignore" = callPackage
+    ({ mkDerivation, base, containers, directory, doctest, exceptions
+     , filepath, Glob, hspec, hspec-discover, optparse-applicative, text
+     }:
+     mkDerivation {
+       pname = "vcs-ignore";
+       version = "0.0.1.0";
+       sha256 = "0zz4vwvzxgdqpi30ncp82irdwjyam23z0bdz834xxghfg70q2b5m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory exceptions filepath Glob text
+       ];
+       executableHaskellDepends = [
+         base containers directory exceptions filepath optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base containers directory doctest exceptions filepath hspec text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Library for handling files ignored by VCS systems";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "vcs-revision" = callPackage
     ({ mkDerivation, base, process }:
      mkDerivation {
@@ -276061,7 +273927,6 @@ self: {
        description = "GUI library for source code management systems";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vcswrapper" = callPackage
@@ -276169,7 +274034,6 @@ self: {
        description = "Accelerate instances for vect-floating types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vect-opengl" = callPackage
@@ -276393,7 +274257,6 @@ self: {
        description = "Storable vectors with cpu-independent representation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vector-extras" = callPackage
@@ -276439,6 +274302,8 @@ self: {
        ];
        description = "A binding to the fftw library for one-dimensional vectors";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) fftw;};
 
   "vector-functorlazy" = callPackage
@@ -276497,7 +274362,6 @@ self: {
        description = "Instances of the Data.Collections classes for Data.Vector.*";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vector-mmap" = callPackage
@@ -276580,6 +274444,7 @@ self: {
        ];
        description = "Size tagged vectors";
        license = lib.licenses.bsd3;
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "vector-space" = callPackage
@@ -276695,7 +274560,6 @@ self: {
        description = "Text implementation based on unboxed char vector";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vector-th-unbox" = callPackage
@@ -276754,8 +274618,6 @@ self: {
        ];
        description = "Easily view Vega or Vega-Lite visualizations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "venzone" = callPackage
@@ -276783,7 +274645,6 @@ self: {
        description = "ASCII platform-adventure game";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "verbalexpressions" = callPackage
@@ -276852,7 +274713,6 @@ self: {
        description = "JSON instances and JSON Schema for verdict";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "verifiable-expressions" = callPackage
@@ -276868,8 +274728,9 @@ self: {
        ];
        description = "An intermediate language for Hoare logic style verification";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = [
+         "armv7l-linux" "i686-linux" "x86_64-darwin" "x86_64-linux"
+       ];
      }) {};
 
   "verify" = callPackage
@@ -276981,7 +274842,6 @@ self: {
        description = "Servant combinators for the versioning library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "versions" = callPackage
@@ -277044,7 +274904,6 @@ self: {
        description = "types for ingesting vflow data with aeson";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vformat" = callPackage
@@ -277065,6 +274924,8 @@ self: {
        ];
        description = "A Python str.format() like formatter";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "vformat-aeson" = callPackage
@@ -277087,6 +274948,7 @@ self: {
        ];
        description = "Extend vformat to Aeson datatypes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "vformat-time" = callPackage
@@ -277101,6 +274963,7 @@ self: {
        testHaskellDepends = [ base time vformat ];
        description = "Extend vformat to time datatypes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "vfr-waypoints" = callPackage
@@ -277123,7 +274986,6 @@ self: {
        description = "VFR waypoints, as published in the AIP (ERSA)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vgrep" = callPackage
@@ -277155,8 +275017,6 @@ self: {
        ];
        description = "A pager for grep";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vhd" = callPackage
@@ -277288,7 +275148,6 @@ self: {
        description = "An extensible dead-man's switch system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vimeta" = callPackage
@@ -277315,8 +275174,6 @@ self: {
        ];
        description = "Frontend for video metadata tagging tools";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vimus" = callPackage
@@ -277373,19 +275230,19 @@ self: {
      }) {};
 
   "vinyl" = callPackage
-    ({ mkDerivation, aeson, array, base, criterion, deepseq, doctest
-     , ghc-prim, hspec, lens, lens-aeson, linear, microlens, mtl
-     , mwc-random, primitive, should-not-typecheck, singletons, tagged
-     , text, unordered-containers, vector
+    ({ mkDerivation, aeson, array, base, criterion, deepseq, ghc-prim
+     , hspec, lens, lens-aeson, linear, microlens, mtl, mwc-random
+     , primitive, should-not-typecheck, tagged, text
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "vinyl";
-       version = "0.13.1";
-       sha256 = "1aip3v1jnxmx44bkshxkmd1iixml65987b4sbh4gncm6q7brkn0k";
+       version = "0.13.3";
+       sha256 = "0mlk94n3s4ah8y9w9vcrk1n7gnsm19d1iijk9da4219dwrkaax2l";
        libraryHaskellDepends = [ array base deepseq ghc-prim ];
        testHaskellDepends = [
-         aeson base doctest hspec lens lens-aeson microlens mtl
-         should-not-typecheck singletons text unordered-containers vector
+         aeson base hspec lens lens-aeson microlens mtl should-not-typecheck
+         text unordered-containers vector
        ];
        benchmarkHaskellDepends = [
          base criterion linear microlens mwc-random primitive tagged vector
@@ -277487,7 +275344,6 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vinyl-plus" = callPackage
@@ -277598,7 +275454,6 @@ self: {
        description = "An XMMS2 client";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "visual-graphrewrite" = callPackage
@@ -277627,7 +275482,6 @@ self: {
        description = "Visualize the graph-rewrite steps of a Haskell program";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "visual-prof" = callPackage
@@ -277791,7 +275645,6 @@ self: {
        description = "Phase vocoder";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vocoder-audio" = callPackage
@@ -277811,7 +275664,6 @@ self: {
        description = "Phase vocoder for conduit-audio";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vocoder-conduit" = callPackage
@@ -277834,7 +275686,6 @@ self: {
        description = "Phase vocoder for Conduit";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vocoder-dunai" = callPackage
@@ -277857,7 +275708,6 @@ self: {
        description = "Phase vocoder for Dunai and Rhine";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "voicebase" = callPackage
@@ -277883,7 +275733,6 @@ self: {
        description = "Upload audio files to voicebase to get a transcription";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "void" = callPackage
@@ -277937,6 +275786,30 @@ self: {
        broken = true;
      }) {};
 
+  "vp-tree" = callPackage
+    ({ mkDerivation, base, boxes, bytestring, conduit, containers
+     , deepseq, depq, hspec, mtl, mwc-probability, primitive, psqueues
+     , QuickCheck, sampling, serialise, transformers, vector
+     , vector-algorithms, weigh
+     }:
+     mkDerivation {
+       pname = "vp-tree";
+       version = "0.1.0.1";
+       sha256 = "1hzzz5ld397ig0lskr09sdz2cdd4nkk6pckhb9r04vzmqczpiarp";
+       libraryHaskellDepends = [
+         base boxes containers deepseq depq mtl mwc-probability primitive
+         psqueues sampling serialise transformers vector vector-algorithms
+       ];
+       testHaskellDepends = [
+         base hspec mwc-probability primitive QuickCheck vector
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring conduit containers deepseq vector weigh
+       ];
+       description = "Vantage Point Trees";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "vpq" = callPackage
     ({ mkDerivation, base, primitive, smallcheck, tasty
      , tasty-smallcheck, util, vector
@@ -277969,6 +275842,9 @@ self: {
        executableSystemDepends = [ quat vrpn ];
        description = "Bindings to VRPN";
        license = lib.licenses.mit;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {quat = null; inherit (pkgs) vrpn;};
 
   "vt-utils" = callPackage
@@ -278140,7 +276016,6 @@ self: {
        description = "Extra vty-ui functionality not included in the core library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vulkan" = callPackage
@@ -278153,7 +276028,8 @@ self: {
        libraryPkgconfigDepends = [ vulkan ];
        description = "Bindings to the Vulkan graphics API";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
+       platforms = [ "aarch64-linux" "x86_64-linux" ];
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {vulkan = null;};
 
   "vulkan-api" = callPackage
@@ -278165,8 +276041,6 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Low-level low-overhead vulkan api bindings";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "vulkan-utils" = callPackage
@@ -278188,6 +276062,10 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Utils for the vulkan package";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
   "waargonaut" = callPackage
@@ -278227,7 +276105,6 @@ self: {
        description = "JSON wrangling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wacom-daemon" = callPackage
@@ -278298,7 +276175,6 @@ self: {
        description = "A haskell binding of the Web Audio API ala blank-canvas";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai" = callPackage
@@ -278419,7 +276295,6 @@ self: {
        description = "Command line runner for Wai apps (using Warp) with TLS, CGI, socket activation & graceful shutdown";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-conduit" = callPackage
@@ -278504,7 +276379,6 @@ self: {
        description = "A web server for the development of WAI compliant web applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-digestive-functors" = callPackage
@@ -278717,14 +276591,14 @@ self: {
        pname = "wai-handler-hal";
        version = "0.1.0.0";
        sha256 = "0sjw01k5dyhdi33ld1pd4mf9plpij0spzxf2b228cjyc8x5zx7rj";
+       revision = "1";
+       editedCabalFile = "0gnl0xfsx1ahm0w0xykdzm96h3riz497wz9gxdmvzv0aflcg6jw9";
        libraryHaskellDepends = [
          base base64-bytestring bytestring case-insensitive hal http-types
          network text unordered-containers vault wai
        ];
        description = "Wrap WAI applications to run on AWS Lambda";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-handler-launch" = callPackage
@@ -278771,7 +276645,6 @@ self: {
        description = "Web Application Interface handler using snap-server. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-handler-webkit" = callPackage
@@ -279094,7 +276967,6 @@ self: {
        description = "Caching middleware for WAI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-middleware-cache-redis" = callPackage
@@ -279114,7 +276986,6 @@ self: {
        description = "Redis backend for wai-middleware-cache";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-middleware-caching" = callPackage
@@ -279221,7 +277092,6 @@ self: {
        description = "Wai Middleware for Consul";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-middleware-content-type" = callPackage
@@ -279255,7 +277125,6 @@ self: {
        description = "Route to different middlewares based on the incoming Accept header";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-middleware-crowd" = callPackage
@@ -279502,7 +277371,6 @@ self: {
        description = "Middleware that communicates to Rollbar";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-middleware-route" = callPackage
@@ -279524,7 +277392,6 @@ self: {
        description = "Wai dispatch middleware";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-middleware-slack-verify" = callPackage
@@ -279663,8 +277530,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-middleware-validation";
-       version = "0.1.0.0";
-       sha256 = "0cbp32j31xkmniml56gnh278g94zhhfc8xlp842n8lll5hh13bf4";
+       version = "0.1.0.2";
+       sha256 = "1qrkfy31slmlbiw9gkz96yd9q6mrw72rjyjl0a5pnjif5ps12vpq";
        libraryHaskellDepends = [
          aeson base bytestring containers filepath http-types
          insert-ordered-containers lens openapi3 text wai
@@ -279675,8 +277542,6 @@ self: {
        ];
        description = "WAI Middleware to validate the request and response bodies";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-middleware-verbs" = callPackage
@@ -280020,8 +277885,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-session-redis";
-       version = "0.1.0.1";
-       sha256 = "14n5996y8fpq19jfn5ahfliq4gk2ydi5l8zcq8agqqpg875hzzcw";
+       version = "0.1.0.2";
+       sha256 = "15l0sq5y9lalprn3k7fcw37fnmzphhd00qkpwna3wxpr0vrlihzs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -280037,6 +277902,8 @@ self: {
        ];
        description = "Simple Redis backed wai-session backend";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "wai-session-tokyocabinet" = callPackage
@@ -280131,7 +277998,6 @@ self: {
        description = "Thrift transport layer for Wai";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wai-throttler" = callPackage
@@ -280307,7 +278173,6 @@ self: {
        description = "A generator of comics based on some ascertainable data about the requester";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wallpaper" = callPackage
@@ -280367,69 +278232,35 @@ self: {
     ({ mkDerivation, array, async, auto-update, base, bsb-http-chunked
      , bytestring, case-insensitive, containers, directory, gauge
      , ghc-prim, hashable, hspec, http-client, http-date, http-types
-     , http2, HUnit, iproute, lifted-base, network, process, QuickCheck
+     , http2, HUnit, iproute, network, process, QuickCheck
      , simple-sendfile, stm, streaming-commons, text, time, time-manager
-     , unix, unix-compat, vault, wai, word8, x509
+     , unix, unix-compat, unliftio, vault, wai, word8, x509
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.14";
-       sha256 = "0whmh6dbl7321a2kg6ypngw5kgvvxqdk161li0l4hr3wqqddlc93";
+       version = "3.3.16";
+       sha256 = "1qnngw7afh448hv7fzp4l36j7hz6f8a8f1qga976j8l53qhmgcf1";
        libraryHaskellDepends = [
-         array async auto-update base bsb-http-chunked bytestring
-         case-insensitive containers ghc-prim hashable http-date http-types
-         http2 iproute network simple-sendfile stm streaming-commons text
-         time-manager unix unix-compat vault wai word8 x509
+         array auto-update base bsb-http-chunked bytestring case-insensitive
+         containers ghc-prim hashable http-date http-types http2 iproute
+         network simple-sendfile stm streaming-commons text time-manager
+         unix unix-compat unliftio vault wai word8 x509
        ];
        testHaskellDepends = [
          array async auto-update base bsb-http-chunked bytestring
          case-insensitive containers directory ghc-prim hashable hspec
-         http-client http-date http-types http2 HUnit iproute lifted-base
-         network process QuickCheck simple-sendfile stm streaming-commons
-         text time time-manager unix unix-compat vault wai word8 x509
+         http-client http-date http-types http2 HUnit iproute network
+         process QuickCheck simple-sendfile stm streaming-commons text time
+         time-manager unix unix-compat unliftio vault wai word8 x509
        ];
        benchmarkHaskellDepends = [
          auto-update base bytestring containers gauge hashable http-date
-         http-types network time-manager unix unix-compat x509
+         http-types network time-manager unix unix-compat unliftio x509
        ];
        description = "A fast, light-weight web server for WAI applications";
        license = lib.licenses.mit;
      }) {};
 
-  "warp_3_3_15" = callPackage
-    ({ mkDerivation, array, async, auto-update, base, bsb-http-chunked
-     , bytestring, case-insensitive, containers, directory, gauge
-     , ghc-prim, hashable, hspec, http-client, http-date, http-types
-     , http2, HUnit, iproute, lifted-base, network, process, QuickCheck
-     , simple-sendfile, stm, streaming-commons, text, time, time-manager
-     , unix, unix-compat, vault, wai, word8, x509
-     }:
-     mkDerivation {
-       pname = "warp";
-       version = "3.3.15";
-       sha256 = "0nj4xxzjcy33hyfdagpc2ij6ga71r1fmc248rjgwsyfflial63bz";
-       libraryHaskellDepends = [
-         array async auto-update base bsb-http-chunked bytestring
-         case-insensitive containers ghc-prim hashable http-date http-types
-         http2 iproute network simple-sendfile stm streaming-commons text
-         time-manager unix unix-compat vault wai word8 x509
-       ];
-       testHaskellDepends = [
-         array async auto-update base bsb-http-chunked bytestring
-         case-insensitive containers directory ghc-prim hashable hspec
-         http-client http-date http-types http2 HUnit iproute lifted-base
-         network process QuickCheck simple-sendfile stm streaming-commons
-         text time time-manager unix unix-compat vault wai word8 x509
-       ];
-       benchmarkHaskellDepends = [
-         auto-update base bytestring containers gauge hashable http-date
-         http-types network time-manager unix unix-compat x509
-       ];
-       description = "A fast, light-weight web server for WAI applications";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "warp-dynamic" = callPackage
     ({ mkDerivation, base, data-default, dyre, http-types, wai, warp }:
      mkDerivation {
@@ -280463,6 +278294,8 @@ self: {
        ];
        description = "A minimal gRPC server on top of Warp";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "warp-static" = callPackage
@@ -280502,15 +278335,16 @@ self: {
 
   "warp-tls" = callPackage
     ({ mkDerivation, base, bytestring, cryptonite, data-default-class
-     , network, streaming-commons, tls, tls-session-manager, wai, warp
+     , network, streaming-commons, tls, tls-session-manager, unliftio
+     , wai, warp
      }:
      mkDerivation {
        pname = "warp-tls";
-       version = "3.3.0";
-       sha256 = "03fwwggl6lhxs7swwylgpk9j8g5szq2h871nfbgs6xzr1b5hpas1";
+       version = "3.3.1";
+       sha256 = "1k8f3r0l36mgwm69fikprv6pyjzj15702kq25dr9nc3sv5lcs162";
        libraryHaskellDepends = [
          base bytestring cryptonite data-default-class network
-         streaming-commons tls tls-session-manager wai warp
+         streaming-commons tls tls-session-manager unliftio wai warp
        ];
        description = "HTTP over TLS support for Warp via the TLS package";
        license = lib.licenses.mit;
@@ -280552,7 +278386,6 @@ self: {
        description = "Warp and Wai Library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wasm" = callPackage
@@ -280735,7 +278568,6 @@ self: {
        description = "Parse WaveSurfer files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wavy" = callPackage
@@ -280757,7 +278589,6 @@ self: {
        description = "Process WAVE files in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wcwidth" = callPackage
@@ -280911,7 +278742,6 @@ self: {
        description = "Bindings for the Mongrel2 web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "web-output" = callPackage
@@ -280952,7 +278782,6 @@ self: {
        description = "Monoidally construct web pages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "web-plugins" = callPackage
@@ -281021,7 +278850,6 @@ self: {
        description = "representations of a web page";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "web-routes" = callPackage
@@ -281128,7 +278956,6 @@ self: {
        description = "portable, type-safe URL routing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "web-routes-th" = callPackage
@@ -281193,7 +279020,6 @@ self: {
        description = "simple routing library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "web3" = callPackage
@@ -281234,7 +279060,6 @@ self: {
        description = "Web3 API for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "webapi" = callPackage
@@ -281262,7 +279087,6 @@ self: {
        description = "WAI based library for web api";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "webapp" = callPackage
@@ -281306,8 +279130,6 @@ self: {
        ];
        description = "Web Authentication API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "webby" = callPackage
@@ -281414,7 +279236,6 @@ self: {
        description = "Build a WAI Application from Webcrank Resources";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "webdriver" = callPackage
@@ -281525,7 +279346,6 @@ self: {
        description = "Bindings to the WebDriver API";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "webex-teams-api" = callPackage
@@ -281694,8 +279514,7 @@ self: {
        ];
        description = "webfont generator";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = with lib.maintainers; [ erictapen ];
      }) {};
 
   "webkit" = callPackage
@@ -281744,6 +279563,9 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "JavaScriptCore FFI from webkitgtk";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {inherit (pkgs) webkitgtk;};
 
   "webkitgtk3" = callPackage
@@ -281865,7 +279687,6 @@ self: {
        description = "HTTP server library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "webshow" = callPackage
@@ -282150,7 +279971,6 @@ self: {
        description = "Writer monad which uses semiring constraint";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "weighted-regexp" = callPackage
@@ -282262,7 +280082,6 @@ self: {
        description = "A chat interface for playing werewolf in Slack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "what4" = callPackage
@@ -282301,7 +280120,6 @@ self: {
        description = "Solver-agnostic symbolic values support for issuing queries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wheb-mongo" = callPackage
@@ -282314,7 +280132,6 @@ self: {
        description = "MongoDB plugin for Wheb";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wheb-redis" = callPackage
@@ -282327,7 +280144,6 @@ self: {
        description = "Redis connection for Wheb";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wheb-strapped" = callPackage
@@ -282340,7 +280156,6 @@ self: {
        description = "Strapped templates for Wheb";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "which" = callPackage
@@ -282413,7 +280228,6 @@ self: {
        description = "Whitespace, an esoteric programming language";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "whois" = callPackage
@@ -282498,7 +280312,6 @@ self: {
        description = "Instances for wide-word";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wigner-symbols" = callPackage
@@ -282567,7 +280380,6 @@ self: {
        description = "Wikipedia EPUB E-Book construction from Firefox history";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wild-bind" = callPackage
@@ -282604,8 +280416,6 @@ self: {
        ];
        description = "Graphical indicator for WildBind";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wild-bind-task-x11" = callPackage
@@ -282622,8 +280432,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Task to install and export everything you need to use WildBind in X11";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wild-bind-x11" = callPackage
@@ -282728,7 +280536,6 @@ self: {
        description = "Implements Windows Live Web Authentication and Delegated Authentication";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "winerror" = callPackage
@@ -282779,8 +280586,6 @@ self: {
        ];
        description = "A compact, well-typed seralisation format for Haskell values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "winio" = callPackage
@@ -282798,7 +280603,6 @@ self: {
        description = "I/O library for Windows";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {kernel32 = null; ws2_32 = null;};
 
   "wire-streams" = callPackage
@@ -282878,36 +280682,21 @@ self: {
      }) {};
 
   "witch" = callPackage
-    ({ mkDerivation, base, bytestring, containers, hspec, QuickCheck
-     , text
-     }:
-     mkDerivation {
-       pname = "witch";
-       version = "0.0.0.5";
-       sha256 = "1j12mh8zap8c0lb358bzk4sq29h64lv0jrwq9r4nssx4yybrz9gg";
-       libraryHaskellDepends = [ base bytestring containers text ];
-       testHaskellDepends = [
-         base bytestring containers hspec QuickCheck text
-       ];
-       description = "Convert values from one type into another";
-       license = lib.licenses.isc;
-     }) {};
-
-  "witch_0_2_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, hspec
-     , template-haskell, text
+    ({ mkDerivation, base, bytestring, containers, HUnit
+     , template-haskell, text, time
      }:
      mkDerivation {
        pname = "witch";
-       version = "0.2.0.0";
-       sha256 = "03rnpljng4vy913zm3cxnhlq3i8d5p57661wa1cwj46hkhy7rhj7";
+       version = "0.3.3.0";
+       sha256 = "0wckjjy7yxq899f515xhwl2izqmrr9zck0kjlgz6qfa1fsl6lbvx";
        libraryHaskellDepends = [
-         base bytestring containers template-haskell text
+         base bytestring containers template-haskell text time
+       ];
+       testHaskellDepends = [
+         base bytestring containers HUnit text time
        ];
-       testHaskellDepends = [ base bytestring containers hspec text ];
        description = "Convert values from one type into another";
        license = lib.licenses.isc;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "with-index" = callPackage
@@ -283167,7 +280956,6 @@ self: {
        description = "ANSI Terminal support with wl-pprint-extras";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wl-pprint-console" = callPackage
@@ -283222,7 +281010,6 @@ self: {
        description = "A color pretty printer with terminfo support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wl-pprint-text" = callPackage
@@ -283253,8 +281040,7 @@ self: {
        description = "Haskell bindings for the wlc library";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {wlc = null;};
+     }) {inherit (pkgs) wlc;};
 
   "wobsurv" = callPackage
     ({ mkDerivation, aeson, attoparsec, base-prelude, bytestring
@@ -283290,7 +281076,6 @@ self: {
        description = "A simple and highly performant HTTP file server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "woe" = callPackage
@@ -283360,7 +281145,6 @@ self: {
        description = "Amazon Simple Workflow Service Wrapper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "woot" = callPackage
@@ -283391,8 +281175,6 @@ self: {
        testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
        description = "Words of arbitrary size";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "word-trie" = callPackage
@@ -283518,8 +281300,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion pandoc text ];
        description = "Get word counts and distributions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wordcloud" = callPackage
@@ -283647,8 +281427,8 @@ self: {
      }:
      mkDerivation {
        pname = "wordpress-auth";
-       version = "1.0.0.0";
-       sha256 = "150rri8lrl6j3f9q7wc34ajg06rakgk8a5npzz7vdap64994wy5c";
+       version = "1.0.0.1";
+       sha256 = "10drplm0bg72ph87apbdmm4ar7gh09x6w6sgwgvdkz4zpkc48s0j";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cookie cryptohash-md5
          cryptohash-sha256 hs-php-session http-types mtl text time
@@ -283757,7 +281537,6 @@ self: {
        description = "Utilities (e.g. Googling the clipboard contents) for the `workflow` pacakge";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "workflow-osx" = callPackage
@@ -283802,7 +281581,6 @@ self: {
        description = "manipulate `workflow-types:Workflow`'s";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "workflow-types" = callPackage
@@ -283822,7 +281600,6 @@ self: {
        description = "Automate keyboard\\/mouse\\/clipboard\\/application interaction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "workflow-windows" = callPackage
@@ -283926,7 +281703,6 @@ self: {
        description = "Lazy wrapper to HaXML, HXT, TagSoup via custom XML tree structure";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wrecker" = callPackage
@@ -283966,7 +281742,6 @@ self: {
        description = "An HTTP Performance Benchmarker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wrecker-ui" = callPackage
@@ -284000,7 +281775,6 @@ self: {
        description = "A web interface for Wrecker, the HTTP Performance Benchmarker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wreq" = callPackage
@@ -284162,7 +281936,6 @@ self: {
        description = "Colour space transformations and metrics";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "write-buffer-core" = callPackage
@@ -284224,7 +281997,6 @@ self: {
        description = "WriteT and RWST monad transformers (Reexport with all dependencies)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "writer-cps-lens" = callPackage
@@ -284338,7 +282110,6 @@ self: {
        description = "A simple CLI utility for interacting with a websocket";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ws-chans" = callPackage
@@ -284422,8 +282193,6 @@ self: {
        ];
        description = "Terminal emulator over websockets";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wsjtx-udp" = callPackage
@@ -284463,7 +282232,6 @@ self: {
        description = "A-little-higher-level WebSocket client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wstunnel" = callPackage
@@ -284521,7 +282289,6 @@ self: {
        description = "GTK tools within Wojcik Tool Kit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wu-wei" = callPackage
@@ -284538,7 +282305,6 @@ self: {
        description = "Unimportant Unix adminstration tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wumpus-basic" = callPackage
@@ -284555,7 +282321,6 @@ self: {
        description = "Basic objects and system code built on Wumpus-Core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wumpus-core" = callPackage
@@ -284587,7 +282352,6 @@ self: {
        description = "High-level drawing objects built on Wumpus-Basic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wumpus-microprint" = callPackage
@@ -284604,7 +282368,6 @@ self: {
        description = "Microprints - \"greek-text\" pictures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wumpus-tree" = callPackage
@@ -284622,7 +282385,6 @@ self: {
        description = "Drawing trees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wuss" = callPackage
@@ -284665,7 +282427,6 @@ self: {
        description = "Try to avoid the asteroids with your space ship";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wxFruit" = callPackage
@@ -284681,7 +282442,6 @@ self: {
        description = "An implementation of Fruit using wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wxSimpleCanvas" = callPackage
@@ -284694,7 +282454,6 @@ self: {
        description = "Simple zoomable canvas for wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wxc" = callPackage
@@ -284774,7 +282533,6 @@ self: {
        description = "An example of how to implement a basic notepad with wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wxturtle" = callPackage
@@ -284791,7 +282549,6 @@ self: {
        description = "turtle like LOGO with wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wybor" = callPackage
@@ -284832,7 +282589,6 @@ self: {
        description = "An autoresponder for Dragon Go Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "x-dsp" = callPackage
@@ -285129,7 +282885,6 @@ self: {
        description = "A wget-like utility for retrieving files from XDCC bots on IRC";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xdg-basedir" = callPackage
@@ -285191,8 +282946,6 @@ self: {
        ];
        description = "Parse Graphviz xdot files and interactively view them using GTK and Cairo";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xeno" = callPackage
@@ -285281,6 +283034,7 @@ self: {
        executableSystemDepends = [ xgboost ];
        description = "XGBoost library for Haskell";
        license = lib.licenses.mit;
+       platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ];
      }) {inherit (pkgs) xgboost;};
 
   "xhaskell-library" = callPackage
@@ -285332,7 +283086,6 @@ self: {
        description = "Atom cache for XHB";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xhb-ewmh" = callPackage
@@ -285350,7 +283103,6 @@ self: {
        description = "EWMH utilities for XHB";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xhtml_3000_2_2_1" = callPackage
@@ -285607,8 +283359,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Xlsx table cell value extraction utility";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xlsx-templater" = callPackage
@@ -285675,7 +283425,6 @@ self: {
        description = "Parse XML catalog files (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-conduit" = callPackage
@@ -285686,30 +283435,6 @@ self: {
      }:
      mkDerivation {
        pname = "xml-conduit";
-       version = "1.9.1.0";
-       sha256 = "0ag0g9x5qnw1nfgc31h6bj2qv0h1c2y7n1l0g99l4dkn428dk9ca";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         attoparsec base blaze-html blaze-markup bytestring conduit
-         conduit-extra containers data-default-class deepseq resourcet text
-         transformers xml-types
-       ];
-       testHaskellDepends = [
-         base blaze-markup bytestring conduit containers doctest hspec HUnit
-         resourcet text transformers xml-types
-       ];
-       description = "Pure-Haskell utilities for dealing with XML with the conduit package";
-       license = lib.licenses.mit;
-     }) {};
-
-  "xml-conduit_1_9_1_1" = callPackage
-    ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
-     , bytestring, Cabal, cabal-doctest, conduit, conduit-extra
-     , containers, data-default-class, deepseq, doctest, hspec, HUnit
-     , resourcet, text, transformers, xml-types
-     }:
-     mkDerivation {
-       pname = "xml-conduit";
        version = "1.9.1.1";
        sha256 = "1zzh7xnmbm68dab1vqsjkr6ghxqgnla5nik4amrwlmhbdih1gcdx";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -285724,7 +283449,6 @@ self: {
        ];
        description = "Pure-Haskell utilities for dealing with XML with the conduit package";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "xml-conduit-decode" = callPackage
@@ -285851,7 +283575,6 @@ self: {
        description = "Pure-Haskell utilities for dealing with XML with the enumerator package. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-enumerator-combinators" = callPackage
@@ -285870,7 +283593,6 @@ self: {
        description = "Parser combinators for xml-enumerator and compatible XML parsers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-extractors" = callPackage
@@ -286029,7 +283751,6 @@ self: {
        description = "Monadic extensions to the xml package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-optics" = callPackage
@@ -286086,7 +283807,6 @@ self: {
        description = "XML parser which uses simple-pipe";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-prettify" = callPackage
@@ -286124,7 +283844,6 @@ self: {
        description = "Push XML from/to client to/from server over XMPP or HTTP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-query" = callPackage
@@ -286155,7 +283874,6 @@ self: {
        description = "A binding for the \"xml-query\" and \"xml-conduit\" libraries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-query-xml-types" = callPackage
@@ -286180,7 +283898,6 @@ self: {
        description = "An interpreter of \"xml-query\" queries for the \"xml-types\" documents";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-to-json" = callPackage
@@ -286238,7 +283955,6 @@ self: {
        description = "Typed XML encoding for an xml-conduit backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xml-tydom-core" = callPackage
@@ -286324,7 +284040,6 @@ self: {
        description = "Convert BLAST output in XML format to CSV or HTML";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xmlbf" = callPackage
@@ -286457,7 +284172,6 @@ self: {
        description = "Show tv channels in the terminal";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xmms2-client" = callPackage
@@ -286475,7 +284189,6 @@ self: {
        description = "An XMMS2 client library";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xmms2-client-glib" = callPackage
@@ -286489,7 +284202,6 @@ self: {
        description = "An XMMS2 client library — GLib integration";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xmobar" = callPackage
@@ -286503,8 +284215,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmobar";
-       version = "0.37";
-       sha256 = "0bjjja73ip7c1s8r3j3dimzm2j17sx38nsh51nl3axf4z5pbif74";
+       version = "0.38";
+       sha256 = "1h7y5bnrsxc9k92zn5pfyimpdvm9245b93rxf0ff1avssnp1i31s";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -286549,6 +284261,8 @@ self: {
        pname = "xmonad";
        version = "0.15";
        sha256 = "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa";
+       revision = "1";
+       editedCabalFile = "0yqh96qqphllr0zyz5j93cij5w2qvf39xxnrb52pz0qz3pywz9wd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -286599,6 +284313,8 @@ self: {
        pname = "xmonad-contrib";
        version = "0.16";
        sha256 = "1pddgkvnbww28wykncc7j0yb0lv15bk7xnnhdcbrwkxzw66w6wmd";
+       revision = "1";
+       editedCabalFile = "0vimkby2gq6sgzxzbvz67caba609xqlv2ii2gi8a1cjrnn6ib011";
        libraryHaskellDepends = [
          base bytestring containers directory extensible-exceptions filepath
          mtl old-locale old-time process random semigroups unix utf8-string
@@ -286626,7 +284342,6 @@ self: {
        description = "Third party extensions for xmonad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xmonad-contrib-gpl" = callPackage
@@ -286709,6 +284424,9 @@ self: {
        ];
        description = "Third party extensions for xmonad with wacky dependencies";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "xmonad-screenshot" = callPackage
@@ -286786,6 +284504,9 @@ self: {
        ];
        description = "XMonad volume controls";
        license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
      }) {};
 
   "xmonad-wallpaper" = callPackage
@@ -286799,6 +284520,8 @@ self: {
        libraryHaskellDepends = [ base magic mtl random unix xmonad ];
        description = "xmonad wallpaper extension";
        license = lib.licenses.lgpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "xmonad-windownames" = callPackage
@@ -286833,7 +284556,6 @@ self: {
        description = "XMPP implementation using simple-PIPE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xor" = callPackage
@@ -286917,7 +284639,6 @@ self: {
        description = "text builder for xournal file format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xournal-convert" = callPackage
@@ -286940,7 +284661,6 @@ self: {
        description = "convert utility for xoj files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xournal-parser" = callPackage
@@ -286961,7 +284681,6 @@ self: {
        description = "Xournal file parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xournal-render" = callPackage
@@ -286980,7 +284699,6 @@ self: {
        description = "Xournal file renderer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xournal-types" = callPackage
@@ -287158,7 +284876,6 @@ self: {
        description = "eXtended & Typed Controls for wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "xtest" = callPackage
@@ -287406,7 +285123,6 @@ self: {
        description = "Enumerator-based interface to YAJL, an event-based JSON implementation";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yak" = callPackage
@@ -287470,7 +285186,6 @@ self: {
        description = "A wrapper of servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yam-app" = callPackage
@@ -287494,6 +285209,8 @@ self: {
        ];
        description = "Yam App";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yam-config" = callPackage
@@ -287530,7 +285247,6 @@ self: {
        description = "Yam DataSource Middleware";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yam-job" = callPackage
@@ -287541,6 +285257,7 @@ self: {
        sha256 = "0c6frqjf3xhd5bksaz6rvd6qbqbj15y441476dgj2asm2yd64895";
        libraryHaskellDepends = [ base cron yam-app ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yam-logger" = callPackage
@@ -287557,7 +285274,6 @@ self: {
        description = "Yam Logger";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yam-redis" = callPackage
@@ -287575,7 +285291,6 @@ self: {
        description = "Yam Redis Middleware";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yam-servant" = callPackage
@@ -287615,7 +285330,6 @@ self: {
        description = "Yam transaction";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yam-transaction-odbc" = callPackage
@@ -287629,7 +285343,6 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yam-transaction-postgresql" = callPackage
@@ -287644,6 +285357,7 @@ self: {
          base containers persistent-postgresql unliftio-core yam-app
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yam-web" = callPackage
@@ -287674,7 +285388,6 @@ self: {
        description = "Yam Web";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yamemo" = callPackage
@@ -287833,7 +285546,6 @@ self: {
        description = "Scotty server backend for yaml-rpc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yaml-rpc-snap" = callPackage
@@ -287851,7 +285563,6 @@ self: {
        description = "Snap server backend for yaml-rpc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yaml-union" = callPackage
@@ -287891,8 +285602,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml-unscrambler";
-       version = "0.1.0.1";
-       sha256 = "05z892g8c9alwmjwjm1405s43s8cdbj42ymqc9jlb27qc8ikc4n7";
+       version = "0.1.0.2";
+       sha256 = "03wvb5skx41kdmdc6zhydr7zddzyshy2cgk8zmwy26q70z3g01zf";
        libraryHaskellDepends = [
          acc attoparsec attoparsec-data attoparsec-time base base64
          bytestring conduit containers foldl hashable libyaml mtl scientific
@@ -287906,7 +285617,6 @@ self: {
        description = "Flexible declarative YAML parsing toolkit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yaml2owl" = callPackage
@@ -287953,8 +285663,8 @@ self: {
      }:
      mkDerivation {
        pname = "yamlparse-applicative";
-       version = "0.1.0.3";
-       sha256 = "14fp7qyfh9ax2cqp5amvj2hi8fl9imdq25j8bx5mil8f2jxqr6bi";
+       version = "0.1.0.4";
+       sha256 = "19z6bg8pvhaccc4pc89a2hc1f1g9x66ma179gfx36pjgqdkp0fg1";
        libraryHaskellDepends = [
          aeson base bytestring containers optparse-applicative path path-io
          prettyprinter safe-coloured-text scientific text
@@ -288242,7 +285952,6 @@ self: {
        description = "Image IO for Yarr library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libdevil;};
 
   "yasi" = callPackage
@@ -288262,8 +285971,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Yet another string interpolator";
        license = lib.licenses.cc0;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yate" = callPackage
@@ -288303,7 +286010,6 @@ self: {
        description = "yet another visual editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yaya" = callPackage
@@ -288400,7 +286106,6 @@ self: {
        description = "Additional utilities to work with Yhc Core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yeamer" = callPackage
@@ -288437,7 +286142,6 @@ self: {
        description = "Yesod-based server for interactive presentation slides";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yeganesh" = callPackage
@@ -288516,7 +286220,6 @@ self: {
        description = "YesQL-style SQL database abstraction (legacy compatibility wrapper)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yeshql-core" = callPackage
@@ -288592,27 +286295,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod";
-       version = "1.6.1.0";
-       sha256 = "1jk55fm58ywp69khacw8n3qk2aybsrlh4bkinjgrah3w01kflmyw";
-       libraryHaskellDepends = [
-         aeson base bytestring conduit data-default-class directory
-         fast-logger file-embed monad-logger shakespeare streaming-commons
-         template-haskell text unix unordered-containers wai wai-extra
-         wai-logger warp yaml yesod-core yesod-form yesod-persistent
-       ];
-       description = "Creation of type-safe, RESTful web applications";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yesod_1_6_1_1" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, conduit
-     , data-default-class, directory, fast-logger, file-embed
-     , monad-logger, shakespeare, streaming-commons, template-haskell
-     , text, unix, unordered-containers, wai, wai-extra, wai-logger
-     , warp, yaml, yesod-core, yesod-form, yesod-persistent
-     }:
-     mkDerivation {
-       pname = "yesod";
        version = "1.6.1.1";
        sha256 = "1iiaixd1xrqjcvknl9g3yvr26nbpfa2amh2ayfxmnpjlxvdhfnyn";
        libraryHaskellDepends = [
@@ -288623,7 +286305,6 @@ self: {
        ];
        description = "Creation of type-safe, RESTful web applications";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-alerts" = callPackage
@@ -288701,7 +286382,6 @@ self: {
        description = "Automatically generate article previews for a yesod site";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-auth" = callPackage
@@ -288717,34 +286397,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth";
-       version = "1.6.10.2";
-       sha256 = "16c4rddfmpw1smk7zayflwp1xy3avrqcr0cv6qx4aq949zpn6lz8";
-       libraryHaskellDepends = [
-         aeson authenticate base base16-bytestring base64-bytestring binary
-         blaze-builder blaze-html blaze-markup bytestring conduit
-         conduit-extra containers cryptonite data-default email-validate
-         file-embed http-client http-client-tls http-conduit http-types
-         memory network-uri nonce persistent random safe shakespeare
-         template-haskell text time transformers unliftio unliftio-core
-         unordered-containers wai yesod-core yesod-form yesod-persistent
-       ];
-       description = "Authentication for Yesod";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yesod-auth_1_6_10_3" = callPackage
-    ({ mkDerivation, aeson, authenticate, base, base16-bytestring
-     , base64-bytestring, binary, blaze-builder, blaze-html
-     , blaze-markup, bytestring, conduit, conduit-extra, containers
-     , cryptonite, data-default, email-validate, file-embed, http-client
-     , http-client-tls, http-conduit, http-types, memory, network-uri
-     , nonce, persistent, random, safe, shakespeare, template-haskell
-     , text, time, transformers, unliftio, unliftio-core
-     , unordered-containers, wai, yesod-core, yesod-form
-     , yesod-persistent
-     }:
-     mkDerivation {
-       pname = "yesod-auth";
        version = "1.6.10.3";
        sha256 = "00a7gbp2czg6ixxx62k2nmrj5g1la6cjh697y8vg9xhxq7vpyshg";
        libraryHaskellDepends = [
@@ -288758,7 +286410,6 @@ self: {
        ];
        description = "Authentication for Yesod";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-auth-account" = callPackage
@@ -288913,8 +286564,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-hashdb";
-       version = "1.7.1.5";
-       sha256 = "14isl9mwxarba14aqhidi82yci36jdws6af2jirv7z8mfnrwysbi";
+       version = "1.7.1.7";
+       sha256 = "1daibkn5qhw131pp0sfyahyicwlgpin90zkcrwr2qk05ms5j3hj5";
        libraryHaskellDepends = [
          aeson base bytestring persistent text yesod-auth yesod-core
          yesod-form yesod-persistent
@@ -288929,32 +286580,6 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "yesod-auth-hashdb_1_7_1_6" = callPackage
-    ({ mkDerivation, aeson, base, basic-prelude, bytestring, containers
-     , hspec, http-conduit, http-types, monad-logger, network-uri
-     , persistent, persistent-sqlite, resourcet, text
-     , unordered-containers, wai-extra, yesod, yesod-auth, yesod-core
-     , yesod-form, yesod-persistent, yesod-test
-     }:
-     mkDerivation {
-       pname = "yesod-auth-hashdb";
-       version = "1.7.1.6";
-       sha256 = "062f2fv4ixr5bd5xcs208xfg2i18z25g3imf86qrziv0yxxg5qpc";
-       libraryHaskellDepends = [
-         aeson base bytestring persistent text yesod-auth yesod-core
-         yesod-form yesod-persistent
-       ];
-       testHaskellDepends = [
-         aeson base basic-prelude bytestring containers hspec http-conduit
-         http-types monad-logger network-uri persistent-sqlite resourcet
-         text unordered-containers wai-extra yesod yesod-auth yesod-core
-         yesod-test
-       ];
-       description = "Authentication plugin for Yesod";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "yesod-auth-hmac-keccak" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cryptonite, mtl
      , persistent, random, shakespeare, text, yesod-auth, yesod-core
@@ -289009,7 +286634,6 @@ self: {
        description = "LDAP Authentication for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-auth-ldap-mediocre" = callPackage
@@ -289069,7 +286693,6 @@ self: {
        description = "A yesod-auth plugin for LTI 1.3";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-auth-nopassword" = callPackage
@@ -289114,8 +286737,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.6.3.0";
-       sha256 = "0h2rvq0fb4alwz595a2rzmfv2a370shy58ga9n18vp4xg0pw6i28";
+       version = "0.6.3.4";
+       sha256 = "1hy90iz3f52kg7vs5k27mqpzhfncvag9sb9vs8gl7v89caa1pdjz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -289126,8 +286749,6 @@ self: {
        testHaskellDepends = [ base hspec uri-bytestring ];
        description = "OAuth 2.0 authentication plugins";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-auth-pam" = callPackage
@@ -289185,6 +286806,25 @@ self: {
        broken = true;
      }) {};
 
+  "yesod-autoreload" = callPackage
+    ({ mkDerivation, base, shakespeare, text, yesod-core
+     , yesod-websockets
+     }:
+     mkDerivation {
+       pname = "yesod-autoreload";
+       version = "0.0.0.0";
+       sha256 = "1dzig02l00hw9xz974pf923yr6045x45sw8nnhnqw8rd67r2l7d3";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base shakespeare text yesod-core yesod-websockets
+       ];
+       executableHaskellDepends = [ base yesod-core ];
+       testHaskellDepends = [ base ];
+       description = "Auto-reload a yesod app during development";
+       license = lib.licenses.mit;
+     }) {};
+
   "yesod-bin" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, conduit, conduit-extra
      , containers, data-default-class, directory, file-embed, filepath
@@ -289247,7 +286887,6 @@ self: {
        description = "Helper functions for using yesod with colonnade";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-comments" = callPackage
@@ -289310,28 +286949,27 @@ self: {
        description = "Continuations for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-core" = callPackage
     ({ mkDerivation, aeson, async, auto-update, base, blaze-html
      , blaze-markup, bytestring, case-insensitive, cereal, clientsession
-     , conduit, conduit-extra, containers, cookie, deepseq, fast-logger
-     , gauge, hspec, hspec-expectations, http-types, HUnit, memory
-     , monad-logger, mtl, network, parsec, path-pieces, primitive
-     , random, resourcet, shakespeare, streaming-commons
+     , conduit, conduit-extra, containers, cookie, deepseq, entropy
+     , fast-logger, gauge, hspec, hspec-expectations, http-types, HUnit
+     , memory, monad-logger, mtl, network, parsec, path-pieces
+     , primitive, random, resourcet, shakespeare, streaming-commons
      , template-haskell, text, time, transformers, unix-compat, unliftio
      , unordered-containers, vector, wai, wai-extra, wai-logger, warp
      , word8
      }:
      mkDerivation {
        pname = "yesod-core";
-       version = "1.6.19.0";
-       sha256 = "00mqvq47jf4ljqwj20jn5326hrap5gbm5bqq2xkijfs4ymmyw6vd";
+       version = "1.6.20.1";
+       sha256 = "1y24sn30fm7bjq9rfv4lclz3vraaac9qbd2xgz949agm2irjwg4p";
        libraryHaskellDepends = [
          aeson auto-update base blaze-html blaze-markup bytestring
          case-insensitive cereal clientsession conduit conduit-extra
-         containers cookie deepseq fast-logger http-types memory
+         containers cookie deepseq entropy fast-logger http-types memory
          monad-logger mtl parsec path-pieces primitive random resourcet
          shakespeare template-haskell text time transformers unix-compat
          unliftio unordered-containers vector wai wai-extra wai-logger warp
@@ -289527,7 +287165,6 @@ self: {
        description = "Example programs using the Yesod Web Framework. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) sqlite;};
 
   "yesod-fast-devel" = callPackage
@@ -289570,8 +287207,6 @@ self: {
        ];
        description = "Utilities for using the Fay Haskell-to-JS compiler with Yesod";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-fb" = callPackage
@@ -289814,7 +287449,6 @@ self: {
        description = "Code for using the ip package with yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-job-queue" = callPackage
@@ -289912,7 +287546,6 @@ self: {
        description = "Yesod library for MangoPay API access";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-markdown" = callPackage
@@ -289922,28 +287555,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-markdown";
-       version = "0.12.6.8";
-       sha256 = "1jlnci0wkfg04qvad7qx19321s8jf2rskjghirwcqy1abg3bf96p";
-       libraryHaskellDepends = [
-         base blaze-html blaze-markup bytestring directory pandoc persistent
-         shakespeare text xss-sanitize yesod-core yesod-form
-       ];
-       testHaskellDepends = [ base blaze-html hspec text ];
-       description = "Tools for using markdown in a yesod application";
-       license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "yesod-markdown_0_12_6_9" = callPackage
-    ({ mkDerivation, base, blaze-html, blaze-markup, bytestring
-     , directory, hspec, pandoc, persistent, shakespeare, text
-     , xss-sanitize, yesod-core, yesod-form
-     }:
-     mkDerivation {
-       pname = "yesod-markdown";
-       version = "0.12.6.9";
-       sha256 = "05s63nx27f823b47yy70p9kqxi1cvfk226zgb0qhs5a2q70nxj7z";
+       version = "0.12.6.11";
+       sha256 = "044m6a949yifvyxbbc15ms11sdxvljvb68187h5v6xk0qw0p33i9";
        libraryHaskellDepends = [
          base blaze-html blaze-markup bytestring directory pandoc persistent
          shakespeare text xss-sanitize yesod-core yesod-form
@@ -289951,8 +287564,6 @@ self: {
        testHaskellDepends = [ base blaze-html hspec text ];
        description = "Tools for using markdown in a yesod application";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-media-simple" = callPackage
@@ -289969,8 +287580,6 @@ self: {
        ];
        description = "Simple display of media types, served by yesod";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-newsfeed" = callPackage
@@ -289998,8 +287607,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-page-cursor";
-       version = "2.0.0.6";
-       sha256 = "0if4pwpzpr48cz1vixk234fdl4lj3895ma9ak8x917sc3cgp2kv1";
+       version = "2.0.0.8";
+       sha256 = "1azd2kv5b36kryz3l587mn329a46m8mp4z8knzx5va24bmhca9jy";
        libraryHaskellDepends = [
          aeson base bytestring containers http-link-header network-uri text
          unliftio yesod-core
@@ -290011,8 +287620,6 @@ self: {
          time unliftio unliftio-core wai-extra yesod yesod-core yesod-test
        ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-paginate" = callPackage
@@ -290083,7 +287690,6 @@ self: {
        description = "Yesod plugin to use PayPal with the paypal-rest-client library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-persistent" = callPackage
@@ -290093,8 +287699,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-persistent";
-       version = "1.6.0.6";
-       sha256 = "169bwdnaxw926yr5wbcgf7n6v914sgv2vw6ywc95b5xpm0i0dyph";
+       version = "1.6.0.7";
+       sha256 = "102xmp7n08sk1g5rv31jpln2v9kqf1zsqsnmi83mnhmgggcbj1k4";
        libraryHaskellDepends = [
          base blaze-builder conduit persistent persistent-template
          resource-pool resourcet transformers yesod-core
@@ -290175,7 +287781,6 @@ self: {
        description = "Meta package for Yesod (deprecated)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-pnotify" = callPackage
@@ -290231,7 +287836,6 @@ self: {
        description = "PureScript integration for Yesod";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-raml" = callPackage
@@ -290280,7 +287884,6 @@ self: {
        description = "The raml helper executable";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-raml-docs" = callPackage
@@ -290298,7 +287901,6 @@ self: {
        description = "A html documentation generator library for RAML";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-raml-mock" = callPackage
@@ -290323,7 +287925,6 @@ self: {
        description = "A mock-handler generator library from RAML";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-recaptcha" = callPackage
@@ -290417,7 +288018,6 @@ self: {
        description = "generate TypeScript routes for Yesod";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-rst" = callPackage
@@ -290490,7 +288090,6 @@ self: {
        description = "Redis-Powered Sessions for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-sitemap" = callPackage
@@ -290888,8 +288487,6 @@ self: {
        ];
        description = "Yi editor";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-contrib" = callPackage
@@ -290940,8 +288537,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq yi-rope ];
        description = "Yi editor core library";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-dynamic-configuration" = callPackage
@@ -290958,8 +288553,6 @@ self: {
        ];
        description = "Dynamic configuration support for Yi";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-emacs-colours" = callPackage
@@ -290971,8 +288564,6 @@ self: {
        libraryHaskellDepends = [ base containers split yi-language ];
        description = "Simple mapping from colour names used in emacs to Color";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-frontend-pango" = callPackage
@@ -290992,8 +288583,6 @@ self: {
        ];
        description = "Pango frontend for Yi editor";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-frontend-vty" = callPackage
@@ -291011,8 +288600,6 @@ self: {
        ];
        description = "Vty frontend for Yi editor";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-fuzzy-open" = callPackage
@@ -291031,8 +288618,6 @@ self: {
        ];
        description = "Fuzzy open plugin for yi";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-gtk" = callPackage
@@ -291060,8 +288645,6 @@ self: {
        ];
        description = "Yi editor incremental reader";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-keymap-cua" = callPackage
@@ -291077,8 +288660,6 @@ self: {
        ];
        description = "Cua keymap for Yi editor";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-keymap-emacs" = callPackage
@@ -291096,8 +288677,6 @@ self: {
        ];
        description = "Emacs keymap for Yi editor";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-keymap-vim" = callPackage
@@ -291124,8 +288703,6 @@ self: {
        ];
        description = "Vim keymap for Yi editor";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-language" = callPackage
@@ -291153,8 +288730,6 @@ self: {
        ];
        description = "Collection of language-related Yi libraries";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-misc-modes" = callPackage
@@ -291172,8 +288747,6 @@ self: {
        libraryToolDepends = [ alex ];
        description = "Yi editor miscellaneous modes";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-mode-haskell" = callPackage
@@ -291191,8 +288764,6 @@ self: {
        libraryToolDepends = [ alex ];
        description = "Yi editor haskell mode";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-mode-javascript" = callPackage
@@ -291211,8 +288782,6 @@ self: {
        libraryToolDepends = [ alex ];
        description = "Yi editor javascript mode";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-monokai" = callPackage
@@ -291265,8 +288834,6 @@ self: {
        ];
        description = "Snippet support for yi";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yi-solarized" = callPackage
@@ -291391,7 +288958,6 @@ self: {
        description = "CUI FTP client like 'ftp', 'ncftp'";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yjftp-libs" = callPackage
@@ -291406,7 +288972,6 @@ self: {
        description = "CUI FTP client like 'ftp', 'ncftp'";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yjsvg" = callPackage
@@ -291458,8 +289023,6 @@ self: {
        libraryHaskellDepends = [ base free mtl ];
        description = "A truly tiny monadic parsing library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yoda" = callPackage
@@ -291506,7 +289069,6 @@ self: {
        description = "Generic Programming with Disbanded Data Types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "york-lava" = callPackage
@@ -291519,7 +289081,6 @@ self: {
        description = "A library for digital circuit description";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "youtube" = callPackage
@@ -291561,7 +289122,6 @@ self: {
        description = "A YQL engine to execute Open Data Tables";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yst" = callPackage
@@ -291614,8 +289174,6 @@ self: {
        testHaskellDepends = [ base MonadRandom random yu-utils ];
        description = "Auth module for Yu";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yu-core" = callPackage
@@ -291646,7 +289204,6 @@ self: {
        description = "The launcher for Yu";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yu-tool" = callPackage
@@ -291689,8 +289246,6 @@ self: {
        ];
        description = "Utils for Yu";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yuiGrid" = callPackage
@@ -291727,7 +289282,6 @@ self: {
        description = "A transcendental HTML parser gently wrapping the HXT library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yx" = callPackage
@@ -291740,8 +289294,6 @@ self: {
        testHaskellDepends = [ array base bytestring hspec mtl ];
        description = "Row-major coordinates";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yxdb-utils" = callPackage
@@ -291895,7 +289447,6 @@ self: {
        description = "lojban parser (zasni gerna)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zbar" = callPackage
@@ -291909,8 +289460,6 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "zbar bindings in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) zbar;};
 
   "zcache" = callPackage
@@ -292102,7 +289651,6 @@ self: {
        description = "Zephyr, tree-shaking for the PureScript language";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zero" = callPackage
@@ -292136,7 +289684,6 @@ self: {
        description = "Post to 0bin services";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zeromq-haskell" = callPackage
@@ -292174,7 +289721,6 @@ self: {
        description = "Conduit bindings for zeromq3-haskell";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zeromq3-haskell" = callPackage
@@ -292198,7 +289744,6 @@ self: {
        description = "Bindings to ZeroMQ 3.x";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) zeromq;};
 
   "zeromq4-clone-pattern" = callPackage
@@ -292332,7 +289877,6 @@ self: {
        description = "ZeroTH - remove unnecessary TH dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zettelkast" = callPackage
@@ -292400,7 +289944,6 @@ self: {
        description = "zifter-cabal";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zifter-git" = callPackage
@@ -292413,7 +289956,6 @@ self: {
        description = "zifter-git";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zifter-google-java-format" = callPackage
@@ -292430,7 +289972,6 @@ self: {
        description = "zifter-google-java-format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zifter-hindent" = callPackage
@@ -292447,7 +289988,6 @@ self: {
        description = "zifter-hindent";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zifter-hlint" = callPackage
@@ -292463,7 +290003,6 @@ self: {
        description = "zifter-hlint";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zifter-stack" = callPackage
@@ -292484,7 +290023,6 @@ self: {
        description = "zifter-stack";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zigbee-znet25" = callPackage
@@ -292715,7 +290253,6 @@ self: {
        description = "Generic zipper for families of recursive datatypes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zipper-extra" = callPackage
@@ -292759,7 +290296,6 @@ self: {
        description = "A simple lens-based, generic, heterogenous, type-checked zipper library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ziptastic-client" = callPackage
@@ -292782,7 +290318,6 @@ self: {
        description = "A type-safe client for the Ziptastic API for doing forward and reverse geocoding";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ziptastic-core" = callPackage
@@ -292865,7 +290400,6 @@ self: {
        description = "Enumerator interface for zlib compression";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zlib-lens" = callPackage
@@ -292916,7 +290450,6 @@ self: {
        description = "Command-line tool for ZeroMQ";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zmidi-core" = callPackage
@@ -293030,7 +290563,6 @@ self: {
        description = "A streamable, seekable, zoomable cache file format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zoom-cache-pcm" = callPackage
@@ -293048,7 +290580,6 @@ self: {
        description = "Library for zoom-cache PCM audio codecs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zoom-cache-sndfile" = callPackage
@@ -293069,7 +290600,6 @@ self: {
        description = "Tools for generating zoom-cache-pcm files";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zoom-refs" = callPackage
@@ -293089,15 +290619,14 @@ self: {
     ({ mkDerivation, base, hspec, Z-Data, Z-IO, zookeeper_mt }:
      mkDerivation {
        pname = "zoovisitor";
-       version = "0.1.1.0";
-       sha256 = "16y2j12zl8arwv2m0crllrrf09l4ar1s2v9wrfzjmxnk80vhncf1";
+       version = "0.1.1.1";
+       sha256 = "1mg3wz3drddxdrbr1b0yw5wayzqi99zfdlgiwvgcc5pxb98i6wk3";
        libraryHaskellDepends = [ base Z-Data Z-IO ];
        librarySystemDepends = [ zookeeper_mt ];
        testHaskellDepends = [ base hspec ];
        description = "A haskell binding to Apache Zookeeper C library(mt) using Haskell Z project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) zookeeper_mt;};
 
   "zot" = callPackage
@@ -293298,7 +290827,6 @@ self: {
        description = "A lisp processor, An inline-lisp, in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "zuul" = callPackage
diff --git a/nixpkgs/pkgs/development/haskell-modules/lib.nix b/nixpkgs/pkgs/development/haskell-modules/lib.nix
index 1537cd6466cd..b0d036e0e3e8 100644
--- a/nixpkgs/pkgs/development/haskell-modules/lib.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/lib.nix
@@ -196,6 +196,16 @@ rec {
   appendPatch = drv: x: appendPatches drv [x];
   appendPatches = drv: xs: overrideCabal drv (drv: { patches = (drv.patches or []) ++ xs; });
 
+  /* Set a specific build target instead of compiling all targets in the package.
+   * For example, imagine we have a .cabal file with a library, and 2 executables "dev" and "server".
+   * We can build only "server" and not wait on the compilation of "dev" by using setBuildTarget as follows:
+   *
+   *   setBuildTarget (callCabal2nix "thePackageName" thePackageSrc {}) "server"
+   *
+   */
+  setBuildTargets = drv: xs: overrideCabal drv (drv: { buildTarget = lib.concatStringsSep " " xs; });
+  setBuildTarget = drv: x: setBuildTargets drv [x];
+
   doHyperlinkSource = drv: overrideCabal drv (drv: { hyperlinkSource = true; });
   dontHyperlinkSource = drv: overrideCabal drv (drv: { hyperlinkSource = false; });
 
diff --git a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
index 2641892672af..5d178e3b5a1b 100644
--- a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
@@ -249,7 +249,7 @@ in package-set { inherit pkgs lib callPackage; } self // {
     # a cabal flag with '--flag=myflag'.
     developPackage =
       { root
-      , name ? builtins.baseNameOf root
+      , name ? if builtins.typeOf root == "path" then builtins.baseNameOf root else ""
       , source-overrides ? {}
       , overrides ? self: super: {}
       , modifier ? drv: drv
diff --git a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
index 86123d8a70f4..1882d68f2343 100644
--- a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -11,6 +11,10 @@ self: super: {
 
   ldgallery-compiler = self.callPackage ../../tools/graphics/ldgallery/compiler { };
 
+  # Used by maintainers/scripts/regenerate-hackage-packages.sh, and generated
+  # from the latest master instead of the current version on Hackage.
+  cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix { };
+
   # https://github.com/channable/vaultenv/issues/1
   vaultenv = self.callPackage ../tools/haskell/vaultenv { };
 
diff --git a/nixpkgs/pkgs/development/haskell-modules/patches/dyre-nix.patch b/nixpkgs/pkgs/development/haskell-modules/patches/dyre-nix.patch
deleted file mode 100644
index 458e540e0c4a..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/patches/dyre-nix.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- dyre-0.8.12/Config/Dyre/Compile.hs	2015-04-13 11:00:20.794278350 +0100
-+++ dyre-0.8.12-patched/Config/Dyre/Compile.hs	2015-04-13 11:07:26.938893502 +0100
-@@ -10,11 +10,13 @@
- import System.FilePath   ( (</>) )
- import System.Directory  ( getCurrentDirectory, doesFileExist
-                          , createDirectoryIfMissing )
-+import System.Environment ( lookupEnv )
-+import Control.Applicative ((<$>))
- import Control.Exception ( bracket )
--import GHC.Paths         ( ghc )
- 
- import Config.Dyre.Paths  ( getPaths )
- import Config.Dyre.Params ( Params(..) )
-+import Data.Maybe         ( fromMaybe )
- 
- -- | Return the path to the error file.
- getErrorPath :: Params cfgType -> IO FilePath
-@@ -47,6 +49,7 @@
-     errFile <- getErrorPath params
-     result <- bracket (openFile errFile WriteMode) hClose $ \errHandle -> do
-         ghcOpts <- makeFlags params configFile tempBinary cacheDir libsDir
-+        ghc <- fromMaybe "ghc" <$> lookupEnv "NIX_GHC"
-         ghcProc <- runProcess ghc ghcOpts (Just cacheDir) Nothing
-                               Nothing Nothing (Just errHandle)
-         waitForProcess ghcProc
diff --git a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 0e566aa2e6e4..fdcd40fc99b0 100644
--- a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, ghc, llvmPackages, packages, symlinkJoin, makeWrapper
-, withLLVM ? false
+, withLLVM ? !(stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isPowerPC)
 , postBuild ? ""
 , ghcLibdir ? null # only used by ghcjs, when resolving plugins
 }:
diff --git a/nixpkgs/pkgs/development/idris-modules/data.nix b/nixpkgs/pkgs/development/idris-modules/data.nix
deleted file mode 100644
index 0517edec2d24..000000000000
--- a/nixpkgs/pkgs/development/idris-modules/data.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ build-idris-package
-, fetchFromGitHub
-, contrib
-, lib
-}:
-build-idris-package  {
-  name = "data";
-  version = "2018-03-19";
-
-  idrisDeps = [ contrib ];
-
-  src = fetchFromGitHub {
-    owner = "jdevuyst";
-    repo = "idris-data";
-    rev = "105b78ac13235edc596287367a675d7cd04ce5d5";
-    sha256 = "17wz4jddan39984qibx2x7nv2zkqznv0fpab20nrm4zgy17v77ii";
-  };
-
-  meta = {
-    description = "Functional data structures in Idris";
-    homepage = "https://github.com/jdevuyst/idris-data";
-    license = lib.licenses.bsd3;
-    maintainers = [ lib.maintainers.brainrape ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/idris-modules/default.nix b/nixpkgs/pkgs/development/idris-modules/default.nix
index 7011a513c101..d6fb1ac78bd6 100644
--- a/nixpkgs/pkgs/development/idris-modules/default.nix
+++ b/nixpkgs/pkgs/development/idris-modules/default.nix
@@ -75,8 +75,6 @@
 
     cube = callPackage ./cube.nix {};
 
-    data = callPackage ./data.nix {};
-
     derive = callPackage ./derive.nix {};
 
     descncrunch = callPackage ./descncrunch.nix {};
diff --git a/nixpkgs/pkgs/development/idris-modules/sdl2.nix b/nixpkgs/pkgs/development/idris-modules/sdl2.nix
index 943db9e87a0f..2e06b0368255 100644
--- a/nixpkgs/pkgs/development/idris-modules/sdl2.nix
+++ b/nixpkgs/pkgs/development/idris-modules/sdl2.nix
@@ -12,8 +12,11 @@ build-idris-package rec {
 
   idrisDeps = [ effects ];
 
-  extraBuildInputs = [
+  nativeBuildInputs = [
     pkg-config
+  ];
+
+  extraBuildInputs = [
     SDL2
     SDL2_gfx
   ];
@@ -24,7 +27,7 @@ build-idris-package rec {
     owner = "steshaw";
     repo = "idris-sdl2";
     rev = version;
-    sha256 = "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv";
+    sha256 = "1jslnlzyw04dcvcd7xsdjqa7waxzkm5znddv76sv291jc94xhl4a";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
index b9a61b88a306..5c10c176c14a 100644
--- a/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
@@ -1,6 +1,11 @@
 { lib, stdenv, fetchurl, zlib, unzip }:
 
-stdenv.mkDerivation rec {
+let
+
+  cxx = "${stdenv.cc.targetPrefix}c++";
+  libName = "libipasirglucose4" + stdenv.targetPlatform.extensions.sharedLibrary;
+
+in stdenv.mkDerivation rec {
   pname = "libipasirglucose4";
   # This library has no version number AFAICT (beyond generally being based on
   # Glucose 4.x), but it was submitted to the 2017 SAT competition so let's use
@@ -18,13 +23,16 @@ stdenv.mkDerivation rec {
   sourceRoot = "sat/glucose4";
   patches = [ ./0001-Support-shared-library-build.patch ];
 
+  makeFlags = [ "CXX=${cxx}" ];
+
   postBuild = ''
-    g++ -shared -Wl,-soname,libipasirglucose4.so -o libipasirglucose4.so \
+    ${cxx} -shared -o ${libName} \
+        ${if stdenv.cc.isClang then "" else "-Wl,-soname,${libName}"} \
         ipasirglucoseglue.o libipasirglucose4.a
   '';
 
   installPhase = ''
-    install -D libipasirglucose4.so $out/lib/libipasirglucose4.so
+    install -D ${libName} $out/lib/${libName}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/interpreters/angelscript/default.nix b/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
index 3fbd64467fec..9a6aae053f9d 100644
--- a/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/angelscript/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, unzip}:
+{ lib, stdenv, fetchurl, unzip, cmake }:
 let
   s = # Generated upstream information
   rec {
@@ -12,25 +12,32 @@ let
 in
 stdenv.mkDerivation {
   inherit (s) name version;
-  nativeBuildInputs = [ unzip ];
+
   src = fetchurl {
     inherit (s) url sha256;
   };
+
+  nativeBuildInputs = [ unzip cmake ];
+
   preConfigure = ''
-    cd angelscript/projects/gnuc
-    export makeFlags="$makeFlags PREFIX=$out"
+    export ROOT=$PWD
+    cd angelscript/projects/cmake
   '';
+
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
+
   postInstall = ''
     mkdir -p "$out/share/docs/angelscript"
-    cp -r ../../../docs/* "$out/share/docs/angelscript"
+    cp -r $ROOT/docs/* "$out/share/docs/angelscript"
   '';
-  meta = {
+
+  meta = with lib; {
     inherit (s) version;
     description = "Light-weight scripting library";
-    license = lib.licenses.zlib ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
-    downloadPage = "http://www.angelcode.com/angelscript/downloads.html";
-    homepage="http://www.angelcode.com/angelscript/";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.all;
+    downloadPage = "https://www.angelcode.com/angelscript/downloads.html";
+    homepage = "https://www.angelcode.com/angelscript/";
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/cling/default.nix b/nixpkgs/pkgs/development/interpreters/cling/default.nix
index dbc2751e7899..73ed5b523dde 100644
--- a/nixpkgs/pkgs/development/interpreters/cling/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/cling/default.nix
@@ -10,6 +10,7 @@
 , runCommandNoCC
 , llvmPackages_5
 , glibc
+, ncurses
 }:
 
 let
@@ -38,8 +39,8 @@ let
       chmod -R a+w ./tools/cling
     '';
 
-    nativeBuildInputs = [ python3 git cmake ];
-    buildInputs = [ libffi llvmPackages_5.llvm zlib ];
+    nativeBuildInputs = [ python3 git cmake llvmPackages_5.llvm.dev ];
+    buildInputs = [ libffi llvmPackages_5.llvm zlib ncurses ];
 
     strictDeps = true;
 
@@ -76,8 +77,8 @@ let
     "-nostdinc"
     "-nostdinc++"
     "-isystem" "${lib.getDev stdenv.cc.libc}/include"
-    "-I" "${unwrapped}/include"
-    "-I" "${unwrapped}/lib/clang/5.0.2/include"
+    "-I" "${lib.getDev unwrapped}/include"
+    "-I" "${lib.getLib unwrapped}/lib/clang/5.0.2/include"
   ];
 
   # Autodetect the include paths for the compiler used to build Cling, in the same way Cling does at
diff --git a/nixpkgs/pkgs/development/interpreters/clips/default.nix b/nixpkgs/pkgs/development/interpreters/clips/default.nix
index 64fd89008e33..2edeaf9e4e87 100644
--- a/nixpkgs/pkgs/development/interpreters/clips/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clips/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "6.31";
+  version = "6.40";
   pname = "clips";
 
   src = fetchurl {
     url = "mirror://sourceforge/clipsrules/CLIPS/${version}/clips_core_source_${
         builtins.replaceStrings [ "." ] [ "" ] version
       }.tar.gz";
-    sha256 = "165k0z7dsv04q432sanmw0jxmxwf56cnhsdfw5ffjqxd3lzkjnv6";
+    sha256 = "1pr5l61zxf6kjs8b2b028g2aq45pigavwjmrf4l5mrdmlnk3fq5d";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
index 774bcbe11b21..e52d6c20b970 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "babashka";
-  version = "0.3.5";
+  version = "0.4.3";
 
   reflectionJson = fetchurl {
     name = "reflection.json";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-tOLT5W5kK38fb9XL9jOQpw0LjHPjbn+BarckbCuwQAc=";
+    sha256 = "sha256-teZKAwSv9wliVFKdT76yQjMC5g7SGPAqcq/jZ07sYjQ=";
   };
 
   dontUnpack = true;
@@ -110,9 +110,15 @@ stdenv.mkDerivation rec {
     - Batteries included (tools.cli, cheshire, ...)
     - Library support via popular tools like the clojure CLI
     '';
-    homepage = "https://github.com/borkdude/babashka";
+    homepage = "https://github.com/babashka/babashka";
     license = licenses.epl10;
     platforms = graalvm11-ce.meta.platforms;
-    maintainers = with maintainers; [ bandresen bhougland DerGuteMoritz jlesquembre ];
+    maintainers = with maintainers; [
+      bandresen
+      bhougland
+      DerGuteMoritz
+      jlesquembre
+      thiagokokada
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/default.nix b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
index a96fb03aab20..9ae94f0a2487 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.3.814";
+  version = "1.10.3.855";
 
   src = fetchurl {
     # https://clojure.org/releases/tools
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "sha256-+jpnhuKPvxKJA8xDo9GiRKpFJdPYRJTssmZtafadEn4=";
+    sha256 = "sha256-y2PuOBRq5kZlTpPV8NwkWhspQKlNxwjl+k/Drwixk4Q=";
   };
 
   nativeBuildInputs = [
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     makeWrapper
   ];
 
-  # See https://github.com/clojure/brew-install/blob/1.10.1/src/main/resources/clojure/install/linux-install.sh
+  # See https://github.com/clojure/brew-install/blob/1.10.3/src/main/resources/clojure/install/linux-install.sh
   installPhase =
     let
       binPath = lib.makeBinPath [ rlwrap jdk ];
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
       echo "Installing clojure and clj into $bin_dir"
       substituteInPlace clojure --replace PREFIX $out
+      substituteInPlace clj --replace BINDIR $bin_dir
       install -Dm755 clojure "$bin_dir/clojure"
       install -Dm755 clj "$bin_dir/clj"
 
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.12.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.12.nix
new file mode 100644
index 000000000000..cd5246d989d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/elixir/1.12.nix
@@ -0,0 +1,9 @@
+{ mkDerivation }:
+
+# How to obtain `sha256`:
+# nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
+mkDerivation {
+  version = "1.12.1";
+  sha256 = "sha256-gRgGXb4btMriQwT/pRIYOJt+NM7rtYBd+A3SKfowC7k=";
+  minimumOTPVersion = "22";
+}
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
index 0e4beaa8508f..646fd70ff8f9 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -1,5 +1,14 @@
-{ pkgs, lib, stdenv, fetchFromGitHub, erlang, makeWrapper,
-  coreutils, curl, bash, debugInfo ? false }:
+{ pkgs
+, lib
+, stdenv
+, fetchFromGitHub
+, erlang
+, makeWrapper
+, coreutils
+, curl
+, bash
+, debugInfo ? false
+}:
 
 { baseName ? "elixir"
 , version
@@ -13,62 +22,58 @@ let
   inherit (lib) getVersion versionAtLeast optional;
 
 in
-  assert versionAtLeast (getVersion erlang) minimumOTPVersion;
+assert versionAtLeast (getVersion erlang) minimumOTPVersion;
 
-  stdenv.mkDerivation ({
-    name = "${baseName}-${version}";
+stdenv.mkDerivation ({
+  name = "${baseName}-${version}";
 
-    inherit src version;
+  inherit src version debugInfo;
 
-    nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ erlang ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ erlang ];
 
-    LANG = "C.UTF-8";
-    LC_TYPE = "C.UTF-8";
+  LANG = "C.UTF-8";
+  LC_TYPE = "C.UTF-8";
 
-    setupHook = ./setup-hook.sh;
+  buildFlags = optional debugInfo "ERL_COMPILER_OPTIONS=debug_info";
 
-    inherit debugInfo;
+  preBuild = ''
+    patchShebangs lib/elixir/generate_app.escript || true
 
-    buildFlags = optional debugInfo "ERL_COMPILER_OPTIONS=debug_info";
+    substituteInPlace Makefile \
+      --replace "/usr/local" $out
+  '';
 
-    preBuild = ''
-      patchShebangs lib/elixir/generate_app.escript || true
+  postFixup = ''
+    # Elixir binaries are shell scripts which run erl. Add some stuff
+    # to PATH so the scripts can run without problems.
 
-      substituteInPlace Makefile \
-        --replace "/usr/local" $out
-    '';
+    for f in $out/bin/*; do
+     b=$(basename $f)
+      if [ "$b" = mix ]; then continue; fi
+      wrapProgram $f \
+        --prefix PATH ":" "${lib.makeBinPath [ erlang coreutils curl bash ]}"
+    done
 
-    postFixup = ''
-      # Elixir binaries are shell scripts which run erl. Add some stuff
-      # to PATH so the scripts can run without problems.
+    substituteInPlace $out/bin/mix \
+          --replace "/usr/bin/env elixir" "${coreutils}/bin/env elixir"
+  '';
 
-      for f in $out/bin/*; do
-       b=$(basename $f)
-        if [ "$b" = mix ]; then continue; fi
-        wrapProgram $f \
-          --prefix PATH ":" "${lib.makeBinPath [ erlang coreutils curl bash ]}"
-      done
+  pos = builtins.unsafeGetAttrPos "sha256" args;
+  meta = with lib; {
+    homepage = "https://elixir-lang.org/";
+    description = "A functional, meta-programming aware language built on top of the Erlang VM";
 
-      substituteInPlace $out/bin/mix \
-            --replace "/usr/bin/env elixir" "${coreutils}/bin/env elixir"
+    longDescription = ''
+      Elixir is a functional, meta-programming aware language built on
+      top of the Erlang VM. It is a dynamic language with flexible
+      syntax and macro support that leverages Erlang's abilities to
+      build concurrent, distributed and fault-tolerant applications
+      with hot code upgrades.
     '';
 
-    pos = builtins.unsafeGetAttrPos "sha256" args;
-    meta = with lib; {
-      homepage = "https://elixir-lang.org/";
-      description = "A functional, meta-programming aware language built on top of the Erlang VM";
-
-      longDescription = ''
-        Elixir is a functional, meta-programming aware language built on
-        top of the Erlang VM. It is a dynamic language with flexible
-        syntax and macro support that leverages Erlang's abilities to
-        build concurrent, distributed and fault-tolerant applications
-        with hot code upgrades.
-      '';
-
-      license = licenses.epl10;
-      platforms = platforms.unix;
-      maintainers = teams.beam.members;
-    };
-  })
+    license = licenses.epl10;
+    platforms = platforms.unix;
+    maintainers = teams.beam.members;
+  };
+})
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/setup-hook.sh b/nixpkgs/pkgs/development/interpreters/elixir/setup-hook.sh
deleted file mode 100644
index 501eca3cf02a..000000000000
--- a/nixpkgs/pkgs/development/interpreters/elixir/setup-hook.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-addErlLibPath() {
-    addToSearchPath ERL_LIBS $1/lib/elixir/lib
-}
-
-addEnvHooks "$hostOffset" addErlLibPath
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R18.nix b/nixpkgs/pkgs/development/interpreters/erlang/R18.nix
deleted file mode 100644
index c99596ea026f..000000000000
--- a/nixpkgs/pkgs/development/interpreters/erlang/R18.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ mkDerivation, fetchpatch }:
-
-let
-  rmAndPwdPatch = fetchpatch {
-     url = "https://github.com/erlang/otp/commit/98b8650d22e94a5ff839170833f691294f6276d0.patch";
-     sha256 = "0zjs7as83prgq4d5gaw2cmnajnsprdk8cjl5kklknx0pc2b3hfg5";
-  };
-
-  envAndCpPatch = fetchpatch {
-     url = "https://github.com/erlang/otp/commit/9f9841eb7327c9fe73e84e197fd2965a97b639cf.patch";
-     sha256 = "00fx5wc88ki3z71z5q4xzi9h3whhjw1zblpn09w995ygn07m9qhm";
-  };
-
-  makeOrderingPatch = fetchpatch {
-     url = "https://github.com/erlang/otp/commit/2f1a37f1011ff9d129bc35a6efa0ab937a2aa0e9.patch";
-     sha256 = "0xfa6hzxh9d7qllkyidcgh57xrrx11w65y7s1hyg52alm06l6b9n";
-  };
-
-  makeParallelInstallPatch = fetchpatch {
-     url ="https://github.com/erlang/otp/commit/de8fe86f67591dd992bae33f7451523dab36e5bd.patch";
-     sha256 = "1cj9fjhdng6yllajjm3gkk04ag9bwyb3n70hrb5nk6c292v8a45c";
-  };
-
-in mkDerivation {
-  version = "18.3.4.11";
-  sha256 = "190xbv77v5x2g8xkzdg9bpwa1ylkc18d03ag2a0frcwcv76x53k1";
-
-  patches = [
-    rmAndPwdPatch
-    envAndCpPatch
-    makeOrderingPatch
-    makeParallelInstallPatch
-  ];
-}
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R19.nix b/nixpkgs/pkgs/development/interpreters/erlang/R19.nix
deleted file mode 100644
index 65ac57413f60..000000000000
--- a/nixpkgs/pkgs/development/interpreters/erlang/R19.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ mkDerivation, fetchpatch }:
-
-mkDerivation {
-  version = "19.3.6.13";
-  sha256 = "1zbg54p7pdr8bjyrxvi7vs41vgamqa8lsynnm6ac6845q0xwpwid";
-
-  patches = [
-    # macOS 10.13 crypto fix from OTP-20.1.2
-    (fetchpatch {
-      name = "darwin-crypto.patch";
-      url = "https://github.com/erlang/otp/commit/882c90f72ba4e298aa5a7796661c28053c540a96.patch";
-      sha256 = "1gggzpm8ssamz6975z7px0g8qq5i4jqw81j846ikg49c5cxvi0hi";
-    })
-  ];
-
-  prePatch = ''
-    substituteInPlace configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
-  '';
-}
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R20.nix b/nixpkgs/pkgs/development/interpreters/erlang/R20.nix
deleted file mode 100644
index dfa363c0f25c..000000000000
--- a/nixpkgs/pkgs/development/interpreters/erlang/R20.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ mkDerivation }:
-
-mkDerivation {
-  version = "20.3.8.26";
-  sha256 = "062405s59hkdkmw2dryq0qc1k03jsncj7yqisgj35x9sqpzm4w7a";
-
-  prePatch = ''
-    substituteInPlace configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
-  '';
-}
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R21.nix b/nixpkgs/pkgs/development/interpreters/erlang/R21.nix
index f0291bcfd9f1..7706bd69fbf5 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R21.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R21.nix
@@ -1,6 +1,6 @@
 { mkDerivation }:
 
 mkDerivation {
-  version = "21.3.8.22";
-  sha256 = "sha256-k6dChY/ogWqmcNz9P3t+p9C7oywXhR5oqdBfNtkh6I4=";
+  version = "21.3.8.24";
+  sha256 = "sha256-FNs+M4KFFKzfb4EG513HtyQ9eRRtxSPMpYq0bmRgY3g=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R22.nix b/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
index 5be67081b112..c69c26d4cb01 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R22.nix
@@ -3,6 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "22.3.4.17";
-  sha256 = "sha256-YhKU9I4qN+TVG3t//t9htUBkOu8DS75vbn/qWvS1zc0=";
+  version = "22.3.4.19";
+  sha256 = "sha256-U3ks7pDIqS8HVJ+yBobhEbKvnd9svEcQd9BsJQwajDs=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R23.nix b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
index 0e8e402ab3b0..ee788560dcf4 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
@@ -3,6 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "23.3.1";
-  sha256 = "1nx9yv3l8hf37js7pqs536ywy786mxhkqba1jsmy1b3yc6xki1mq";
+  version = "23.3.4.2";
+  sha256 = "QAIkiYBhYnUzyRg70SQ4BwjjYqclDA4uruqRNTgB2Sk=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R24.nix b/nixpkgs/pkgs/development/interpreters/erlang/R24.nix
new file mode 100644
index 000000000000..a4fe839bff4c
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R24.nix
@@ -0,0 +1,8 @@
+{ mkDerivation }:
+
+# How to obtain `sha256`:
+# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
+mkDerivation {
+  version = "24.0.2";
+  sha256 = "gAiQc+AVj5xjwAnn9mF4xprjZOft1JvfEFVJMG5isxg=";
+}
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
index c32a1b038e44..13d2d33abfcd 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -1,12 +1,32 @@
-{ pkgs, lib, stdenv, fetchFromGitHub, makeWrapper, gawk, gnum4, gnused
-, libxml2, libxslt, ncurses, openssl, perl, autoconf
+{ pkgs
+, lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, gawk
+, gnum4
+, gnused
+, libxml2
+, libxslt
+, ncurses
+, openssl
+, perl
+, autoconf
 , openjdk11 ? null # javacSupport
 , unixODBC ? null # odbcSupport
-, libGL ? null, libGLU ? null, wxGTK ? null, wxmac ? null, xorg ? null
+, libGL ? null
+, libGLU ? null
+, wxGTK ? null
+, wxmac ? null
+, xorg ? null
 , parallelBuild ? false
-, systemd, wxSupport ? true
-# updateScript deps
-, writeScript, common-updater-scripts, coreutils, git
+, systemd
+, wxSupport ? true
+  # updateScript deps
+, writeScript
+, common-updater-scripts
+, coreutils
+, git
 }:
 { baseName ? "erlang"
 , version
@@ -18,25 +38,42 @@
 , enableThreads ? true
 , enableSmpSupport ? true
 , enableKernelPoll ? true
-, javacSupport ? false, javacPackages ? [ openjdk11 ]
-, odbcSupport ? false, odbcPackages ? [ unixODBC ]
+, javacSupport ? false
+, javacPackages ? [ openjdk11 ]
+, odbcSupport ? false
+, odbcPackages ? [ unixODBC ]
 , withSystemd ? stdenv.isLinux # systemd support in epmd
 , opensslPackage ? openssl
 , wxPackages ? [ libGL libGLU wxGTK xorg.libX11 ]
-, preUnpack ? "", postUnpack ? ""
-, patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
-, configureFlags ? [], configurePhase ? "", preConfigure ? "", postConfigure ? ""
-, buildPhase ? "", preBuild ? "", postBuild ? ""
-, installPhase ? "", preInstall ? "", postInstall ? ""
+, preUnpack ? ""
+, postUnpack ? ""
+, patches ? [ ]
+, patchPhase ? ""
+, prePatch ? ""
+, postPatch ? ""
+, configureFlags ? [ ]
+, configurePhase ? ""
+, preConfigure ? ""
+, postConfigure ? ""
+, buildPhase ? ""
+, preBuild ? ""
+, postBuild ? ""
+, installPhase ? ""
+, preInstall ? ""
+, postInstall ? ""
 , installTargets ? [ "install" "install-docs" ]
-, checkPhase ? "", preCheck ? "", postCheck ? ""
-, fixupPhase ? "", preFixup ? "", postFixup ? ""
-, meta ? {}
+, checkPhase ? ""
+, preCheck ? ""
+, postCheck ? ""
+, fixupPhase ? ""
+, preFixup ? ""
+, postFixup ? ""
+, meta ? { }
 }:
 
 assert wxSupport -> (if stdenv.isDarwin
-  then wxmac != null
-  else libGL != null && libGLU != null && wxGTK != null && xorg != null);
+then wxmac != null
+else libGL != null && libGLU != null && wxGTK != null && xorg != null);
 
 assert odbcSupport -> unixODBC != null;
 assert javacSupport -> openjdk11 != null;
@@ -45,7 +82,8 @@ let
   inherit (lib) optional optionals optionalAttrs optionalString;
   wxPackages2 = if stdenv.isDarwin then [ wxmac ] else wxPackages;
 
-in stdenv.mkDerivation ({
+in
+stdenv.mkDerivation ({
   name = "${baseName}-${version}"
     + optionalString javacSupport "-javac"
     + optionalString odbcSupport "-odbc";
@@ -76,7 +114,8 @@ in stdenv.mkDerivation ({
     ./otp_build autoconf
   '';
 
-  configureFlags = [ "--with-ssl=${lib.getDev opensslPackage}" ]
+  configureFlags = [ "--with-ssl=${lib.getOutput "out" opensslPackage}" ]
+    ++ [ "--with-ssl-incl=${lib.getDev opensslPackage}" ] # This flag was introduced in R24
     ++ optional enableThreads "--enable-threads"
     ++ optional enableSmpSupport "--enable-smp-support"
     ++ optional enableKernelPoll "--enable-kernel-poll"
@@ -103,24 +142,23 @@ in stdenv.mkDerivation ({
     wrapProgram $out/lib/erlang/bin/start_erl --prefix PATH ":" "${lib.makeBinPath [ gnused gawk ]}"
   '';
 
-  setupHook = ./setup-hook.sh;
-
   passthru = {
     updateScript =
       let major = builtins.head (builtins.splitVersion version);
-      in writeScript "update.sh" ''
-      #!${stdenv.shell}
-      set -ox errexit
-      PATH=${lib.makeBinPath [ common-updater-scripts coreutils git gnused ]}
-      latest=$(list-git-tags https://github.com/erlang/otp.git | sed -n 's/^OTP-${major}/${major}/p' | sort -V | tail -1)
-      if [ "$latest" != "${version}" ]; then
-        nixpkgs="$(git rev-parse --show-toplevel)"
-        nix_file="$nixpkgs/pkgs/development/interpreters/erlang/R${major}.nix"
-        update-source-version ${baseName}R${major} "$latest" --version-key=version --print-changes --file="$nix_file"
-      else
-        echo "${baseName}R${major} is already up-to-date"
-      fi
-    '';
+      in
+      writeScript "update.sh" ''
+        #!${stdenv.shell}
+        set -ox errexit
+        PATH=${lib.makeBinPath [ common-updater-scripts coreutils git gnused ]}
+        latest=$(list-git-tags https://github.com/erlang/otp.git | sed -n 's/^OTP-${major}/${major}/p' | sort -V | tail -1)
+        if [ "$latest" != "${version}" ]; then
+          nixpkgs="$(git rev-parse --show-toplevel)"
+          nix_file="$nixpkgs/pkgs/development/interpreters/erlang/R${major}.nix"
+          update-source-version ${baseName}R${major} "$latest" --version-key=version --print-changes --file="$nix_file"
+        else
+          echo "${baseName}R${major} is already up-to-date"
+        fi
+      '';
   };
 
   meta = with lib; ({
@@ -142,24 +180,24 @@ in stdenv.mkDerivation ({
     license = licenses.asl20;
   } // meta);
 }
-// optionalAttrs (preUnpack != "")      { inherit preUnpack; }
-// optionalAttrs (postUnpack != "")     { inherit postUnpack; }
-// optionalAttrs (patches != [])        { inherit patches; }
-// optionalAttrs (prePatch != "")       { inherit prePatch; }
-// optionalAttrs (patchPhase != "")     { inherit patchPhase; }
+// optionalAttrs (preUnpack != "") { inherit preUnpack; }
+// optionalAttrs (postUnpack != "") { inherit postUnpack; }
+// optionalAttrs (patches != [ ]) { inherit patches; }
+// optionalAttrs (prePatch != "") { inherit prePatch; }
+// optionalAttrs (patchPhase != "") { inherit patchPhase; }
 // optionalAttrs (configurePhase != "") { inherit configurePhase; }
-// optionalAttrs (preConfigure != "")   { inherit preConfigure; }
-// optionalAttrs (postConfigure != "")  { inherit postConfigure; }
-// optionalAttrs (buildPhase != "")     { inherit buildPhase; }
-// optionalAttrs (preBuild != "")       { inherit preBuild; }
-// optionalAttrs (postBuild != "")      { inherit postBuild; }
-// optionalAttrs (checkPhase != "")     { inherit checkPhase; }
-// optionalAttrs (preCheck != "")       { inherit preCheck; }
-// optionalAttrs (postCheck != "")      { inherit postCheck; }
-// optionalAttrs (installPhase != "")   { inherit installPhase; }
-// optionalAttrs (installTargets != []) { inherit installTargets; }
-// optionalAttrs (preInstall != "")     { inherit preInstall; }
-// optionalAttrs (fixupPhase != "")     { inherit fixupPhase; }
-// optionalAttrs (preFixup != "")       { inherit preFixup; }
-// optionalAttrs (postFixup != "")      { inherit postFixup; }
+// optionalAttrs (preConfigure != "") { inherit preConfigure; }
+// optionalAttrs (postConfigure != "") { inherit postConfigure; }
+// optionalAttrs (buildPhase != "") { inherit buildPhase; }
+// optionalAttrs (preBuild != "") { inherit preBuild; }
+// optionalAttrs (postBuild != "") { inherit postBuild; }
+// optionalAttrs (checkPhase != "") { inherit checkPhase; }
+// optionalAttrs (preCheck != "") { inherit preCheck; }
+// optionalAttrs (postCheck != "") { inherit postCheck; }
+// optionalAttrs (installPhase != "") { inherit installPhase; }
+// optionalAttrs (installTargets != [ ]) { inherit installTargets; }
+// optionalAttrs (preInstall != "") { inherit preInstall; }
+// optionalAttrs (fixupPhase != "") { inherit fixupPhase; }
+// optionalAttrs (preFixup != "") { inherit preFixup; }
+// optionalAttrs (postFixup != "") { inherit postFixup; }
 )
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/setup-hook.sh b/nixpkgs/pkgs/development/interpreters/erlang/setup-hook.sh
deleted file mode 100644
index 3962d154ba9f..000000000000
--- a/nixpkgs/pkgs/development/interpreters/erlang/setup-hook.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-addErlangLibPath() {
-    addToSearchPath ERL_LIBS $1/lib/erlang/lib
-}
-
-addEnvHooks "$hostOffset" addErlangLibPath
diff --git a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
index 7f248c8d430f..7dabff3d2e5e 100644
--- a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
@@ -1,22 +1,25 @@
-{ cargo, fetchFromGitHub, makeWrapper, pkg-config, rustPlatform, lib, stdenv, gcc, Security, cmake }:
+{ cargo, fetchFromGitHub, makeWrapper, pkg-config, rustPlatform, lib, stdenv
+, gcc, cmake, libiconv, CoreServices, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.8.1";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
     rev = "v${version}";
-    sha256 = "sha256-5YbvPDyGaoKPelLep2tVica08SI7Cyo9SLMnE6dmWe4=";
+    sha256 = "sha256-EPxWLPw+V5eIm+eL8m8Xw14adgshthJSDRyWohsJH88=";
   };
 
-  cargoSha256 = "sha256-hqVmNBrvagqhGPWTaBXuY8lULolWIoR5ovEhH5k1tz4=";
+  cargoSha256 = "sha256-5jGrv0YRVMo2X9p/WPgjYV3z193hl2+NiFTZr3v0Iik=";
 
   RUST_SRC_PATH = "${rustPlatform.rustLibSrc}";
 
   nativeBuildInputs = [ pkg-config makeWrapper cmake ];
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin
+    [ libiconv CoreServices Security ];
+
   postInstall = let
     wrap = exe: ''
       wrapProgram $out/bin/${exe} \
diff --git a/nixpkgs/pkgs/development/interpreters/falcon/default.nix b/nixpkgs/pkgs/development/interpreters/falcon/default.nix
index ecac643f1ea9..0d2aa0b64203 100644
--- a/nixpkgs/pkgs/development/interpreters/falcon/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/falcon/default.nix
@@ -1,23 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, pcre, zlib, sqlite }:
+{ lib, gccStdenv, fetchFromGitHub, cmake, pkg-config, pcre, zlib, sqlite }:
 
-stdenv.mkDerivation {
+gccStdenv.mkDerivation {
   pname = "falcon";
-  version = "2013-09-19";
+  version = "unstable-2018-10-23";
 
   src = fetchFromGitHub {
     owner = "falconpl";
     repo = "falcon";
-    rev = "095141903c4ebab928ce803055f9bda363215c37";
-    sha256 = "1x3gdcz1gqhi060ngqi0ghryf69v8bn50yrbzfad8bhblvhzzdlf";
+    rev = "637e2d5cd950a874496042993c02ab7d17c1b688";
+    sha256 = "iCyvvZJjXb1CR396EJ6GiP6d4e7iAc6QQlAOQoAfehg=";
   };
 
+  # -Wnarrowing is enabled by default in recent GCC versions,
+  # causing compilation to fail.
+  NIX_CFLAGS_COMPILE = "-Wno-narrowing";
+
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ pcre zlib sqlite ];
 
   meta = with lib; {
     description = "Programming language with macros and syntax at once";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ pSub ];
-    platforms = with platforms; linux;
+    platforms = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix b/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix
index 9ae373ff7a81..abfa74bb67d3 100644
--- a/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
     "-Wno-error=class-memaccess"
     "-Wno-error=restrict"
     "-Wno-error=format-truncation"
+    # Needed with GCC 10
+    "-Wno-error=maybe-uninitialized"
    ]) ++ optional stdenv.cc.isClang "-Wno-error=null-dereference");
 
   patchPhase = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/interpreters/j/default.nix b/nixpkgs/pkgs/development/interpreters/j/default.nix
index 8875a9cf55eb..e41d71ef960b 100644
--- a/nixpkgs/pkgs/development/interpreters/j/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/j/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "j";
-  version = "901";
-  jtype = "release-f";
+  version = "902";
+  jtype = "release-b";
   src = fetchFromGitHub {
     owner = "jsoftware";
     repo = "jsource";
     rev = "j${version}-${jtype}";
-    sha256 = "1776021m0j1aanzwg60by83n53pw7i6afd5wplfzczwk8bywax4p";
+    sha256 = "0j67vgikqflwjqacsdicasvyv1k54s2c8vjgwmf0ix7l41p4xqz0";
     name = "jsource";
   };
 
diff --git a/nixpkgs/pkgs/development/interpreters/janet/default.nix b/nixpkgs/pkgs/development/interpreters/janet/default.nix
index 163c255c5222..4c836264017b 100644
--- a/nixpkgs/pkgs/development/interpreters/janet/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "janet";
-  version = "1.15.4";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lE2BAwiwvewydIpVYoN+zrfpzQbMbe5Nb1r0mzdxMao=";
+    sha256 = "sha256-Wrr2zie251oB+uhsLMmkPBV0b3MwTmcPTgNJOsgCems=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/nixpkgs/pkgs/development/interpreters/joker/default.nix b/nixpkgs/pkgs/development/interpreters/joker/default.nix
index a8e73339ee16..8a2130050bfa 100644
--- a/nixpkgs/pkgs/development/interpreters/joker/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/joker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "sha256-ckbKxWzcISo9yOXuwgOiSfR2hs+5od0Ru0Ku2I52Gu8=";
+    sha256 = "sha256-3OimYXcQ3KPav44sClbC60220/YK4Jhq+l5UfRFYoJI=";
   };
 
   vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA=";
diff --git a/nixpkgs/pkgs/development/interpreters/jruby/default.nix b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
index be1a1a15c84e..4e540dc8aacb 100644
--- a/nixpkgs/pkgs/development/interpreters/jruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
@@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "5" "7" "";
 jruby = stdenv.mkDerivation rec {
   pname = "jruby";
 
-  version = "9.2.16.0";
+  version = "9.2.17.0";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha256 = "sha256-WuJ/FJ9z8/6k80NZy7dzwl2dmH5yte3snouTlXmX6zA=";
+    sha256 = "sha256-dwHTU3s6YG0nZaxtXEDmdd2qAdPOutJqIaZuOq3VwgI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/interpreters/lfe/fix-rebar-config.patch b/nixpkgs/pkgs/development/interpreters/lfe/fix-rebar-config.patch
new file mode 100644
index 000000000000..ac385351b1cf
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/lfe/fix-rebar-config.patch
@@ -0,0 +1,29 @@
+diff --git a/rebar.config b/rebar.config
+index 1d5a68e..a86ee39 100644
+--- a/rebar.config
++++ b/rebar.config
+@@ -2,20 +2,20 @@
+ 
+ {erl_opts, [debug_info]}.
+ 
+-{profiles, [{test, [{deps, [proper]}]}]}.
++%%{profiles, [{test, [{deps, [proper]}]}]}.
+ 
+ {pre_hooks, [{"(linux|darwin|solaris|freebsd|netbsd|openbsd)", ct,
+               "bin/lfe bin/lfec"
+-              " -o $REBAR_DEPS_DIR/lfe/test"
++              " -o test"
+               " test/*_SUITE.lfe"},
+              {"(linux|darwin|solaris|freebsd|netbsd|openbsd)", eunit,
+               "bin/lfe bin/lfec"
+-              " -o $REBAR_DEPS_DIR/lfe/ebin"
++              " -o ebin"
+               " test/clj-tests.lfe"},
+              %% TODO: Test this on a win32 box
+              %%  {"win32", ct,
+              %%   "bin/lfe bin/lfec -o $REBAR_DEPS_DIR/lfe/test test/*_SUITE.lfe"}
+              {"(linux|darwin|solaris|freebsd|netbsd|openbsd)", app_compile,
+-              "bin/lfe bin/lfec -o $REBAR_DEPS_DIR/lfe/ebin src/*.lfe"}
++              "bin/lfe bin/lfec -o ebin src/*.lfe"}
+              %% TODO: equivalent win32 hook
+             ]}.
diff --git a/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix
index 397be81e7c85..620568967452 100644
--- a/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/lfe/generic-builder.nix
@@ -39,7 +39,7 @@ buildRebar3 {
 
   buildInputs = [ erlang makeWrapper ];
   beamDeps    = [ proper ];
-  patches     = [ ./no-test-deps.patch ./dedup-ebins.patch ] ++ patches;
+  patches     = [ ./fix-rebar-config.patch ./dedup-ebins.patch ] ++ patches;
   doCheck     = true;
   checkTarget = "travis";
 
diff --git a/nixpkgs/pkgs/development/interpreters/lfe/no-test-deps.patch b/nixpkgs/pkgs/development/interpreters/lfe/no-test-deps.patch
deleted file mode 100644
index 8c3faf1ff402..000000000000
--- a/nixpkgs/pkgs/development/interpreters/lfe/no-test-deps.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/rebar.config b/rebar.config
-index 1d5a68e..ca33be7 100644
---- a/rebar.config
-+++ b/rebar.config
-@@ -2,7 +2,7 @@
- 
- {erl_opts, [debug_info]}.
- 
--{profiles, [{test, [{deps, [proper]}]}]}.
-+%% {profiles, [{test, [{deps, [proper]}]}]}.
- 
- {pre_hooks, [{"(linux|darwin|solaris|freebsd|netbsd|openbsd)", ct,
-               "bin/lfe bin/lfec"
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/5.4.darwin.patch b/nixpkgs/pkgs/development/interpreters/lua-5/5.4.darwin.patch
new file mode 100644
index 000000000000..eb16ed9c6897
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/5.4.darwin.patch
@@ -0,0 +1,48 @@
+--- a/Makefile	2021-05-14 22:39:14.407200562 +0300
++++ b/Makefile	2021-05-14 22:36:23.828513407 +0300
+@@ -41,7 +41,7 @@
+ # What to install.
+ TO_BIN= lua luac
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
+-TO_LIB= liblua.a
++TO_LIB= liblua.${version}.dylib
+ TO_MAN= lua.1 luac.1
+ 
+ # Lua version and release.
+@@ -60,6 +60,8 @@
+ 	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+ 	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+ 	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
++	ln -s -f liblua.${version}.dylib $(INSTALL_LIB)/liblua.${luaversion}.dylib
++	ln -s -f liblua.${luaversion}.dylib $(INSTALL_LIB)/liblua.dylib
+ 
+ uninstall:
+ 	cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN)
+--- a/src/Makefile	2021-05-14 22:35:38.575051882 +0300
++++ b/src/Makefile	2021-05-14 22:35:33.584631206 +0300
+@@ -32,7 +32,7 @@
+ 
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
+ 
+-LUA_A=	liblua.a
++LUA_A=	liblua.${version}.dylib
+ CORE_O=	lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
+ LIB_O=	lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+@@ -57,11 +57,13 @@
+ a:	$(ALL_A)
+ 
+ $(LUA_A): $(BASE_O)
+-	$(AR) $@ $(BASE_O)
+-	$(RANLIB) $@
++	$(CC) -dynamiclib -install_name $(out)/lib/liblua.${version}.dylib \
++		-compatibility_version ${version} -current_version ${version} \
++		-o liblua.${version}.dylib $^
+ 
+ $(LUA_T): $(LUA_O) $(LUA_A)
+-	$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
++	$(CC) -fno-common $(MYLDFLAGS) \
++		-o $@ $(LUA_O) $(LUA_A) -L. -llua.${version} $(LIBS)
+ 
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+ 	$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
index 3a52d58ffaba..d2ba451b9e60 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix
@@ -1,27 +1,12 @@
 # similar to interpreters/python/default.nix
 { stdenv, lib, callPackage, fetchurl, fetchpatch }:
-let
-  dsoPatch51 = fetchurl {
-    url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/lua-arch.patch?h=packages/lua51";
-    sha256 = "11fcyb4q55p4p7kdb8yp85xlw8imy14kzamp2khvcyxss4vw8ipw";
-    name = "lua-arch.patch";
-  };
-
-  dsoPatch52 = fetchurl {
-    url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/liblua.so.patch?h=packages/lua52";
-    sha256 = "1by1dy4ql61f5c6njq9ibf9kaqm3y633g2q8j54iyjr4cxvqwqz9";
-    name = "lua-arch.patch";
-  };
 
-in rec {
+rec {
   lua5_4 = callPackage ./interpreter.nix {
-    sourceVersion = { major = "5"; minor = "4"; patch = "2"; };
-    hash = "0ksj5zpj74n0jkamy3di1p6l10v4gjnd2zjnb453qc6px6bhsmqi";
-    patches = [
-      # build lua as a shared library as well, MIT-licensed from
-      # https://github.com/archlinux/svntogit-packages/tree/packages/lua/trunk
-      ./liblua.so.patch
-    ];
+    sourceVersion = { major = "5"; minor = "4"; patch = "3"; };
+    hash = "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq";
+
+    patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch;
   };
 
   lua5_4_compat = lua5_4.override({
@@ -35,11 +20,6 @@ in rec {
     patches =
       lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ];
 
-    postConfigure = lib.optionalString (!stdenv.isDarwin) ''
-      cat ${./lua-5.3-dso.make} >> src/Makefile
-      sed -e 's/ALL_T *= */& $(LUA_SO)/' -i src/Makefile
-    '';
-
     postBuild = lib.optionalString (!stdenv.isDarwin) ''
       ( cd src; make $makeFlags "''${makeFlagsArray[@]}" liblua.so )
     '';
@@ -53,7 +33,7 @@ in rec {
   lua5_2 = callPackage ./interpreter.nix {
     sourceVersion = { major = "5"; minor = "2"; patch = "4"; };
     hash = "0jwznq0l8qg9wh5grwg07b5cy3lzngvl5m2nl1ikp6vqssmf9qmr";
-    patches = if stdenv.isDarwin then [ ./5.2.darwin.patch ] else [ dsoPatch52 ];
+    patches = lib.optional stdenv.isDarwin ./5.2.darwin.patch;
   };
 
   lua5_2_compat = lua5_2.override({
@@ -64,7 +44,7 @@ in rec {
   lua5_1 = callPackage ./interpreter.nix {
     sourceVersion = { major = "5"; minor = "1"; patch = "5"; };
     hash = "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333";
-    patches = (if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch51 ])
+    patches = (lib.optional stdenv.isDarwin ./5.1.darwin.patch)
       ++ [ ./CVE-2014-5461.patch ];
   };
 
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix b/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix
index 35a074add097..fd8c47d751b3 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix
@@ -11,6 +11,15 @@
 let
 luaPackages = callPackage ../../lua-modules {lua=self; overrides=packageOverrides;};
 
+plat = if stdenv.isLinux then "linux"
+       else if stdenv.isDarwin then "macosx"
+       else if stdenv.hostPlatform.isMinGW then "mingw"
+       else if stdenv.isFreeBSD then "freebsd"
+       else if stdenv.isSunOS then "solaris"
+       else if stdenv.hostPlatform.isBSD then "bsd"
+       else if stdenv.hostPlatform.isUnix then "posix"
+       else "generic";
+
 self = stdenv.mkDerivation rec {
   pname = "lua";
   luaversion = with sourceVersion; "${major}.${minor}";
@@ -29,6 +38,14 @@ self = stdenv.mkDerivation rec {
 
   inherit patches;
 
+  postPatch = lib.optionalString (!stdenv.isDarwin) ''
+    # 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 = [
     "INSTALL_TOP=${placeholder "out"}"
@@ -36,21 +53,17 @@ self = stdenv.mkDerivation rec {
     "R=${version}"
     "LDFLAGS=-fPIC"
     "V=${luaversion}"
-  ] ++ (if stdenv.isDarwin then [
-    "PLAT=macosx"
-  ] else [
-    "PLAT=linux"
-  ]) ++ (if stdenv.buildPlatform != stdenv.hostPlatform then [
-    "CC=${stdenv.hostPlatform.config}-gcc"
-    "RANLIB=${stdenv.hostPlatform.config}-ranlib"
-  ] else [])
-  ;
+    "PLAT=${plat}"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "RANLIB=${stdenv.cc.targetPrefix}ranlib"
+  ];
 
   configurePhase = ''
     runHook preConfigure
 
-    makeFlagsArray+=(CFLAGS="-DLUA_USE_LINUX -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" )
-    makeFlagsArray+=(${lib.optionalString stdenv.isDarwin "CC=\"$CC\""}${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) " 'AR=${stdenv.hostPlatform.config}-ar rcu'"})
+    makeFlagsArray+=(CFLAGS='-O2 -fPIC${lib.optionalString compat " -DLUA_COMPAT_ALL"} $(${
+      if lib.versionAtLeast luaversion "5.2" then "SYSCFLAGS" else "MYCFLAGS"})' )
+    makeFlagsArray+=(${lib.optionalString stdenv.isDarwin "CC=\"$CC\""}${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) " 'AR=${stdenv.cc.targetPrefix}ar rcu'"})
 
     installFlagsArray=( TO_BIN="lua luac" INSTALL_DATA='cp -d' \
       TO_LIB="${if stdenv.isDarwin then "liblua.${version}.dylib" else "liblua.a liblua.so liblua.so.${luaversion} liblua.so.${version}"}" )
@@ -80,7 +93,7 @@ self = stdenv.mkDerivation rec {
     Description: An Extensible Extension Language
     Version: ${version}
     Requires:
-    Libs: -L$out/lib -llua -lm
+    Libs: -L$out/lib -llua
     Cflags: -I$out/include
     EOF
     ln -s "$out/lib/pkgconfig/lua.pc" "$out/lib/pkgconfig/lua-${luaversion}.pc"
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/liblua.so.patch b/nixpkgs/pkgs/development/interpreters/lua-5/liblua.so.patch
deleted file mode 100644
index 197832116c19..000000000000
--- a/nixpkgs/pkgs/development/interpreters/lua-5/liblua.so.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 416f444..eeaff03 100644
---- a/Makefile
-+++ b/Makefile
-@@ -52,7 +52,7 @@ R= $V.0
- all:	$(PLAT)
- 
- $(PLATS) help test clean:
--	@cd src && $(MAKE) $@
-+	@cd src && $(MAKE) $@ V=$(V) R=$(R)
- 
- install: dummy
- 	cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
-diff --git a/src/Makefile b/src/Makefile
-index 514593d..372a6dc 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -33,6 +33,7 @@ CMCFLAGS= -Os
- PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
- 
- LUA_A=	liblua.a
-+LUA_SO= liblua.so
- CORE_O=	lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
- LIB_O=	lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
- BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
-@@ -44,7 +45,7 @@ LUAC_T=	luac
- LUAC_O=	luac.o
- 
- ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
--ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
-+ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
- ALL_A= $(LUA_A)
- 
- # Targets start here.
-@@ -60,6 +61,12 @@ $(LUA_A): $(BASE_O)
- 	$(AR) $@ $(BASE_O)
- 	$(RANLIB) $@
- 
-+$(LUA_SO): $(CORE_O) $(LIB_O)
-+	$(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
-+	ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
-+	ln -sf $(LUA_SO).$(R) $(LUA_SO)
-+
-+
- $(LUA_T): $(LUA_O) $(LUA_A)
- 	$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
- 
-diff --git a/src/luaconf.h b/src/luaconf.h
-index bdf927e..7e15198 100644
---- a/src/luaconf.h
-+++ b/src/luaconf.h
-@@ -227,7 +227,7 @@
- 
- #else			/* }{ */
- 
--#define LUA_ROOT	"/usr/local/"
-+#define LUA_ROOT	"/usr/"
- #define LUA_LDIR	LUA_ROOT "share/lua/" LUA_VDIR "/"
- #define LUA_CDIR	LUA_ROOT "lib/lua/" LUA_VDIR "/"
- 
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/lua-5.3-dso.make b/nixpkgs/pkgs/development/interpreters/lua-5/lua-dso.make
index c70dbc4f9cc2..19c57685677d 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/lua-5.3-dso.make
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/lua-dso.make
@@ -1,8 +1,4 @@
-
-LUA_SO=liblua.so
-
 $(LUA_SO): $(CORE_O) $(LIB_O)
-	$(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
+	$(CC) -shared $(LIBS) -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? $(MYLDFLAGS)
 	ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
 	ln -sf $(LUA_SO).$(R) $(LUA_SO)
-
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
index ffc406a2a7a3..528c14a8b247 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,10 +1,10 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.0.5-2020-12-28";
-  rev = "56c04accf975bff2519c34721dccbbdb7b8e6963";
+  version = "2.0.5-2021-05-29";
+  rev = "c2cfa04231785116d9d198462830f41ef94147c0";
   isStable = true;
-  sha256 = "0mmx7dy843iqdpyxxdfks860np0311gg58gi4zczx10h62y6jacm";
+  sha256 = "1fw64pv0dvzb9bgr2zwcv9q8gqgsmfnvrcrmrdfgj4ncamgdnilj";
   extraMeta = { # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: p != "aarch64-linux")
       (platforms.linux ++ platforms.darwin);
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
index 7335ecd656ac..f85fc0932cca 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,8 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.1.0-2020-12-28";
-  rev = "65378759f38bb946e40f31799992434effd01bba";
+  version = "2.1.0-2021-05-29";
+  rev = "839fb5bd72341d8e67b6cfc2053e2acffdb75567";
   isStable = false;
-  sha256 = "1h78gydlrmvkdrql4ra5a3xr78iiq12bfmny6kiq65v1jbk8f19g";
+  sha256 = "1gyzq4n0fwah0245wazv4c43q9in1mwbk3dhh6cb1ijnjcxp2bb6";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/mujs/default.nix b/nixpkgs/pkgs/development/interpreters/mujs/default.nix
index d9b52af92544..46f86f85fc3a 100644
--- a/nixpkgs/pkgs/development/interpreters/mujs/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/mujs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mujs";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchurl {
     url = "https://mujs.com/downloads/mujs-${version}.tar.xz";
-    sha256 = "sha256-meYfyWGfHVULVjVyA7NJ2Ih9CjbffblWc1yijU/3e7A=";
+    sha256 = "sha256-cZ6IK7fZhkDvoWM4Hpto7xzjXIekIuKqQZDJ5AIlh10=";
   };
 
   buildInputs = [ readline ];
diff --git a/nixpkgs/pkgs/development/interpreters/octave/build-env.nix b/nixpkgs/pkgs/development/interpreters/octave/build-env.nix
index 433026f0a7e9..59575f95fc4b 100644
--- a/nixpkgs/pkgs/development/interpreters/octave/build-env.nix
+++ b/nixpkgs/pkgs/development/interpreters/octave/build-env.nix
@@ -40,11 +40,15 @@ in buildEnv {
          cd $out
       fi
 
-      # Remove symlinks to the input tarballs, they aren't needed.
-      rm $out/*.tar.gz
+      # Remove symlinks to the input tarballs, they aren't needed, use -f so it
+      # will not fail if no .tar.gz symlinks are there - for example if
+      # sommething which is not a tarball used as a package
+      rm -f $out/*.tar.gz
 
       createOctavePackagesPath $out ${octave}
 
+      # Create the file even if the loop afterwards has no packages to run over
+      touch $out/.octave_packages
       for path in ${lib.concatStringsSep " " packages}; do
           if [ -e $path/*.tar.gz ]; then
              $out/bin/octave-cli --eval "pkg local_list $out/.octave_packages; \
diff --git a/nixpkgs/pkgs/development/interpreters/perl/default.nix b/nixpkgs/pkgs/development/interpreters/perl/default.nix
index 01b3e995f5e4..5c75894c4f7e 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/default.nix
@@ -1,4 +1,5 @@
-{ config, lib, stdenv, fetchurl, pkgs, buildPackages, callPackage
+{ config, lib, stdenv, fetchurl, fetchFromGitHub, pkgs, buildPackages
+, callPackage
 , enableThreading ? true, coreutils, makeWrapper
 }:
 
@@ -171,18 +172,22 @@ let
       priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
     };
   } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-    crossVersion = "e53999d0c340769792ba18d749751b0df3d1d177"; # Mar 21, 2021
-
-    perl-cross-src = fetchurl {
-      url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "14vcpwjhq667yh0cs7ism70df8l7068vn4a0ww59hdjyj7yc84i6";
+    crossVersion = "1.3.6";
+
+    perl-cross-src = fetchFromGitHub {
+      name = "perl-cross-${crossVersion}";
+      owner = "arsv";
+      repo = "perl-cross";
+      rev = crossVersion;
+      sha256 = "0k5vyj40czbkfl7r3dcwxpc7dvdlp2xliaav358bviq3dq9vq9bb";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
 
     postUnpack = ''
       unpackFile ${perl-cross-src}
-      cp -R perl-cross-${crossVersion}/* perl-${version}/
+      chmod -R u+w ${perl-cross-src.name}
+      cp -R ${perl-cross-src.name}/* perl-${version}/
     '';
 
     configurePlatforms = [ "build" "host" "target" ];
@@ -211,7 +216,7 @@ in {
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.33.8";
-    sha256 = "1zr6sdsfcmk86n3f8j65x07xkv29v0pi8bwc986ahmjx7x92xzgl";
+    version = "5.35.0";
+    sha256 = "0217nbswhkjhw60kng2p64611xna7za681kk30fkriyicd3yph6n";
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/php/7.3.nix b/nixpkgs/pkgs/development/interpreters/php/7.3.nix
deleted file mode 100644
index d611cb7693c6..000000000000
--- a/nixpkgs/pkgs/development/interpreters/php/7.3.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ callPackage, lib, stdenv, nixosTests, ... }@_args:
-
-let
-  generic = (import ./generic.nix) _args;
-
-  base = callPackage generic (_args // {
-    version = "7.3.27";
-    sha256 = "00z0vadxazm2flks9g8qmchj2pwkli880kg313jgbb1mx3shc84x";
-
-    # https://bugs.php.net/bug.php?id=76826
-    extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
-  });
-
-in base.withExtensions ({ all, ... }: with all; ([
-  bcmath calendar curl ctype dom exif fileinfo filter ftp gd
-  gettext gmp hash iconv intl json ldap mbstring mysqli mysqlnd
-  opcache openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql pdo_sqlite
-  pgsql posix readline session simplexml sockets soap sodium sqlite3
-  tokenizer xmlreader xmlwriter zip zlib
-] ++ lib.optionals (!stdenv.isDarwin) [ imap ]))
diff --git a/nixpkgs/pkgs/development/interpreters/php/7.4.nix b/nixpkgs/pkgs/development/interpreters/php/7.4.nix
index 812a59ec8a33..c4e566ee27ce 100644
--- a/nixpkgs/pkgs/development/interpreters/php/7.4.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/7.4.nix
@@ -1,11 +1,9 @@
-{ callPackage, lib, stdenv, nixosTests, ... }@_args:
+{ callPackage, lib, stdenv, ... }@_args:
 
 let
-  generic = (import ./generic.nix) _args;
-
-  base = callPackage generic (_args // {
-    version = "7.4.16";
-    sha256 = "0gnfb4vaj71fiap0q9lk6vs1xs7l6sha60isw6aaw3zxgh00ywc5";
+  base = callPackage ./generic.nix (_args // {
+    version = "7.4.20";
+    sha256 = "0d5ncz97y0271dsmz269wl4721vhq2fn6pmm9rxglc756p36pnha";
   });
 
 in base.withExtensions ({ all, ... }: with all; ([
diff --git a/nixpkgs/pkgs/development/interpreters/php/8.0.nix b/nixpkgs/pkgs/development/interpreters/php/8.0.nix
index 233b0da4380c..90f7c3b796c0 100644
--- a/nixpkgs/pkgs/development/interpreters/php/8.0.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/8.0.nix
@@ -1,11 +1,9 @@
-{ callPackage, lib, stdenv, nixosTests, ... }@_args:
+{ callPackage, lib, stdenv, ... }@_args:
 
 let
-  generic = (import ./generic.nix) _args;
-
-  base = callPackage generic (_args // {
-    version = "8.0.3";
-    sha256 = "04mh5sznbgwv67x9p0qz4i377zwdb5cc6r1mb3925y1lkqfn5y4m";
+  base = callPackage ./generic.nix (_args // {
+    version = "8.0.7";
+    sha256 = "0yazcc9x66xg1gmi3rpgk891g6s3mm7aywcadqfqnx1mdz4z5ckj";
   });
 
 in base.withExtensions ({ all, ... }: with all; ([
diff --git a/nixpkgs/pkgs/development/interpreters/php/generic.nix b/nixpkgs/pkgs/development/interpreters/php/generic.nix
index ad53e7558350..558fa45a1fd9 100644
--- a/nixpkgs/pkgs/development/interpreters/php/generic.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/generic.nix
@@ -1,13 +1,11 @@
 # We have tests for PCRE and PHP-FPM in nixos/tests/php/ or
 # both in the same attribute named nixosTests.php
 
-{ callPackage, lib, stdenv, nixosTests, ... }:
-
 let
   generic =
     { callPackage, lib, stdenv, nixosTests, fetchurl, makeWrapper
     , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
-    , pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
+    , pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre2
     , systemd, system-sendmail, valgrind, xcbuild
 
     , version
@@ -33,252 +31,251 @@ let
     , valgrindSupport ? !stdenv.isDarwin
     , ztsSupport ? apxs2Support
     }@args:
-      let
-        # buildEnv wraps php to provide additional extensions and
-        # configuration. Its usage is documented in
-        # doc/languages-frameworks/php.section.md.
-        #
-        # Create a buildEnv with earlier overridden values and
-        # extensions functions in its closure. This is necessary for
-        # consecutive calls to buildEnv and overrides to work as
-        # expected.
-        mkBuildEnv = prevArgs: prevExtensionFunctions: lib.makeOverridable (
-          { extensions ? ({ enabled, ... }: enabled), extraConfig ? "", ... }@innerArgs:
-            let
-              allArgs = args // prevArgs // innerArgs;
-              filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ];
-              php = generic filteredArgs;
-
-              php-packages = (callPackage ../../../top-level/php-packages.nix {
-                phpPackage = phpWithExtensions;
-              }).overrideScope' packageOverrides;
-
-              allExtensionFunctions = prevExtensionFunctions ++ [ extensions ];
-              enabledExtensions =
-                builtins.foldl'
-                  (enabled: f:
-                    f { inherit enabled; all = php-packages.extensions; })
-                  []
-                  allExtensionFunctions;
-
-              getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name;
-
-              # Recursively get a list of all internal dependencies
-              # for a list of extensions.
-              getDepsRecursively = extensions:
-                let
-                  deps = lib.concatMap
-                           (ext: (ext.internalDeps or []) ++ (ext.peclDeps or []))
-                           extensions;
-                in
-                  if ! (deps == []) then
-                    deps ++ (getDepsRecursively deps)
-                  else
-                    deps;
-
-              # Generate extension load configuration snippets from the
-              # extension parameter. This is an attrset suitable for use
-              # with textClosureList, which is used to put the strings in
-              # the right order - if a plugin which is dependent on
-              # another plugin is placed before its dependency, it will
-              # fail to load.
-              extensionTexts =
-                lib.listToAttrs
-                  (map (ext:
-                    let
-                      extName = getExtName ext;
-                      phpDeps = (ext.internalDeps or []) ++ (ext.peclDeps or []);
-                      type = "${lib.optionalString (ext.zendExtension or false) "zend_"}extension";
-                    in
-                      lib.nameValuePair extName {
-                        text = "${type}=${ext}/lib/php/extensions/${extName}.so";
-                        deps = map getExtName phpDeps;
-                      })
-                    (enabledExtensions ++ (getDepsRecursively enabledExtensions)));
-
-              extNames = map getExtName enabledExtensions;
-              extraInit = writeText "php-extra-init-${version}.ini" ''
-                ${lib.concatStringsSep "\n"
-                  (lib.textClosureList extensionTexts extNames)}
-                ${extraConfig}
-              '';
 
-              phpWithExtensions = symlinkJoin rec {
-                name = "php-with-extensions-${version}";
-                inherit (php) version;
-                nativeBuildInputs = [ makeWrapper ];
-                passthru = php.passthru // {
-                  buildEnv = mkBuildEnv allArgs allExtensionFunctions;
-                  withExtensions = mkWithExtensions allArgs allExtensionFunctions;
-                  phpIni = "${phpWithExtensions}/lib/php.ini";
-                  unwrapped = php;
-                  # Select the right php tests for the php version
-                  tests = nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}";
-                  inherit (php-packages) extensions buildPecl;
-                  packages = php-packages.tools;
-                  meta = php.meta // {
-                    outputsToInstall = [ "out" ];
-                  };
+    let
+      # buildEnv wraps php to provide additional extensions and
+      # configuration. Its usage is documented in
+      # doc/languages-frameworks/php.section.md.
+      #
+      # Create a buildEnv with earlier overridden values and
+      # extensions functions in its closure. This is necessary for
+      # consecutive calls to buildEnv and overrides to work as
+      # expected.
+      mkBuildEnv = prevArgs: prevExtensionFunctions: lib.makeOverridable (
+        { extensions ? ({ enabled, ... }: enabled), extraConfig ? "", ... }@innerArgs:
+          let
+            allArgs = args // prevArgs // innerArgs;
+            filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ];
+            php = generic filteredArgs;
+
+            php-packages = (callPackage ../../../top-level/php-packages.nix {
+              phpPackage = phpWithExtensions;
+            }).overrideScope' packageOverrides;
+
+            allExtensionFunctions = prevExtensionFunctions ++ [ extensions ];
+            enabledExtensions =
+              builtins.foldl'
+                (enabled: f:
+                  f { inherit enabled; all = php-packages.extensions; })
+                []
+                allExtensionFunctions;
+
+            getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name;
+
+            # Recursively get a list of all internal dependencies
+            # for a list of extensions.
+            getDepsRecursively = extensions:
+              let
+                deps = lib.concatMap
+                         (ext: (ext.internalDeps or []) ++ (ext.peclDeps or []))
+                         extensions;
+              in
+                if ! (deps == []) then
+                  deps ++ (getDepsRecursively deps)
+                else
+                  deps;
+
+            # Generate extension load configuration snippets from the
+            # extension parameter. This is an attrset suitable for use
+            # with textClosureList, which is used to put the strings in
+            # the right order - if a plugin which is dependent on
+            # another plugin is placed before its dependency, it will
+            # fail to load.
+            extensionTexts =
+              lib.listToAttrs
+                (map (ext:
+                  let
+                    extName = getExtName ext;
+                    phpDeps = (ext.internalDeps or []) ++ (ext.peclDeps or []);
+                    type = "${lib.optionalString (ext.zendExtension or false) "zend_"}extension";
+                  in
+                    lib.nameValuePair extName {
+                      text = "${type}=${ext}/lib/php/extensions/${extName}.so";
+                      deps = map getExtName phpDeps;
+                    })
+                  (enabledExtensions ++ (getDepsRecursively enabledExtensions)));
+
+            extNames = map getExtName enabledExtensions;
+            extraInit = writeText "php-extra-init-${version}.ini" ''
+              ${lib.concatStringsSep "\n"
+                (lib.textClosureList extensionTexts extNames)}
+              ${extraConfig}
+            '';
+
+            phpWithExtensions = symlinkJoin {
+              name = "php-with-extensions-${version}";
+              inherit (php) version;
+              nativeBuildInputs = [ makeWrapper ];
+              passthru = php.passthru // {
+                buildEnv = mkBuildEnv allArgs allExtensionFunctions;
+                withExtensions = mkWithExtensions allArgs allExtensionFunctions;
+                phpIni = "${phpWithExtensions}/lib/php.ini";
+                unwrapped = php;
+                # Select the right php tests for the php version
+                tests = nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}";
+                inherit (php-packages) extensions buildPecl;
+                packages = php-packages.tools;
+                meta = php.meta // {
+                  outputsToInstall = [ "out" ];
                 };
-                paths = [ php ];
-                postBuild = ''
-                  ln -s ${extraInit} $out/lib/php.ini
-
-                  if test -e $out/bin/php; then
-                    wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
-                  fi
-
-                  if test -e $out/bin/php-fpm; then
-                    wrapProgram $out/bin/php-fpm --set PHP_INI_SCAN_DIR $out/lib
-                  fi
-
-                  if test -e $out/bin/phpdbg; then
-                    wrapProgram $out/bin/phpdbg --set PHP_INI_SCAN_DIR $out/lib
-                  fi
-                '';
               };
-            in
-              phpWithExtensions);
-
-        mkWithExtensions = prevArgs: prevExtensionFunctions: extensions:
-          mkBuildEnv prevArgs prevExtensionFunctions { inherit extensions; };
-
-        pcre' = if (lib.versionAtLeast version "7.3") then pcre2 else pcre;
-      in
-        stdenv.mkDerivation {
-          pname = "php";
-
-          inherit version;
-
-          enableParallelBuilding = true;
-
-          nativeBuildInputs = [ autoconf automake bison flex libtool pkg-config re2c ]
-            ++ lib.optional stdenv.isDarwin xcbuild;
-
-          buildInputs =
-            # PCRE extension
-            [ pcre' ]
-
-            # Enable sapis
-            ++ lib.optional pearSupport [ libxml2.dev ]
-
-            # Misc deps
-            ++ lib.optional apxs2Support apacheHttpd
-            ++ lib.optional argon2Support libargon2
-            ++ lib.optional systemdSupport systemd
-            ++ lib.optional valgrindSupport valgrind
-          ;
-
-          CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11";
-
-          configureFlags =
-            # Disable all extensions
-            [ "--disable-all" ]
-
-            # PCRE
-            ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre'.dev}" ]
-            ++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
-            ++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
-            ++ [ "PCRE_LIBDIR=${pcre'}" ]
-
-
-            # Enable sapis
-            ++ lib.optional (!cgiSupport) "--disable-cgi"
-            ++ lib.optional (!cliSupport) "--disable-cli"
-            ++ lib.optional fpmSupport    "--enable-fpm"
-            ++ lib.optional pearSupport [ "--with-pear" "--enable-xml" "--with-libxml" ]
-            ++ lib.optionals (pearSupport && (lib.versionOlder version "7.4")) [
-              "--enable-libxml"
-              "--with-libxml-dir=${libxml2.dev}"
-            ]
-            ++ lib.optional pharSupport   "--enable-phar"
-            ++ lib.optional phpdbgSupport "--enable-phpdbg"
-
-
-            # Misc flags
-            ++ lib.optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs"
-            ++ lib.optional argon2Support "--with-password-argon2=${libargon2}"
-            ++ lib.optional cgotoSupport "--enable-re2c-cgoto"
-            ++ lib.optional embedSupport "--enable-embed"
-            ++ lib.optional (!ipv6Support) "--disable-ipv6"
-            ++ lib.optional systemdSupport "--with-fpm-systemd"
-            ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}"
-            ++ lib.optional (ztsSupport && (lib.versionOlder version "8.0")) "--enable-maintainer-zts"
-            ++ lib.optional (ztsSupport && (lib.versionAtLeast version "8.0")) "--enable-zts"
-
-
-            # Sendmail
-            ++ [ "PROG_SENDMAIL=${system-sendmail}/bin/sendmail" ]
-          ;
-
-          hardeningDisable = [ "bindnow" ];
-
-          preConfigure =
-          # Don't record the configure flags since this causes unnecessary
-          # runtime dependencies
-          ''
-            for i in main/build-defs.h.in scripts/php-config.in; do
-              substituteInPlace $i \
-                --replace '@CONFIGURE_COMMAND@' '(omitted)' \
-                --replace '@CONFIGURE_OPTIONS@' "" \
-                --replace '@PHP_LDFLAGS@' ""
-            done
-
-            export EXTENSION_DIR=$out/lib/php/extensions
-          ''
-          # PKG_CONFIG need not be a relative path
-          + lib.optionalString (! lib.versionAtLeast version "7.4") ''
-            for i in $(find . -type f -name "*.m4"); do
-              substituteInPlace $i \
-                --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null'
-            done
-          '' + ''
-            ./buildconf --copy --force
-
-            if test -f $src/genfiles; then
-              ./genfiles
-            fi
-          '' + lib.optionalString stdenv.isDarwin ''
-            substituteInPlace configure --replace "-lstdc++" "-lc++"
-          '';
-
-          postInstall = ''
-            test -d $out/etc || mkdir $out/etc
-            cp php.ini-production $out/etc/php.ini
-          '';
-
-          postFixup = ''
-            mkdir -p $dev/bin $dev/share/man/man1
-            mv $out/bin/phpize $out/bin/php-config $dev/bin/
-            mv $out/share/man/man1/phpize.1.gz \
-               $out/share/man/man1/php-config.1.gz \
-               $dev/share/man/man1/
-          '';
-
-          src = fetchurl {
-            url = "https://www.php.net/distributions/php-${version}.tar.bz2";
-            inherit sha256;
-          };
-
-          patches = [ ./fix-paths-php7.patch ] ++ extraPatches;
-
-          separateDebugInfo = true;
-
-          outputs = [ "out" "dev" ];
-
-          passthru = {
-            buildEnv = mkBuildEnv {} [];
-            withExtensions = mkWithExtensions {} [];
-            inherit ztsSupport;
-          };
-
-          meta = with lib; {
-            description = "An HTML-embedded scripting language";
-            homepage = "https://www.php.net/";
-            license = licenses.php301;
-            maintainers = teams.php.members;
-            platforms = platforms.all;
-            outputsToInstall = [ "out" "dev" ];
-          };
-        };
+              paths = [ php ];
+              postBuild = ''
+                ln -s ${extraInit} $out/lib/php.ini
+
+                if test -e $out/bin/php; then
+                  wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
+                fi
+
+                if test -e $out/bin/php-fpm; then
+                  wrapProgram $out/bin/php-fpm --set PHP_INI_SCAN_DIR $out/lib
+                fi
+
+                if test -e $out/bin/phpdbg; then
+                  wrapProgram $out/bin/phpdbg --set PHP_INI_SCAN_DIR $out/lib
+                fi
+              '';
+            };
+          in
+            phpWithExtensions);
+
+      mkWithExtensions = prevArgs: prevExtensionFunctions: extensions:
+        mkBuildEnv prevArgs prevExtensionFunctions { inherit extensions; };
+    in
+    stdenv.mkDerivation {
+      pname = "php";
+
+      inherit version;
+
+      enableParallelBuilding = true;
+
+      nativeBuildInputs = [ autoconf automake bison flex libtool pkg-config re2c ]
+        ++ lib.optional stdenv.isDarwin xcbuild;
+
+      buildInputs =
+        # PCRE extension
+        [ pcre2 ]
+
+        # Enable sapis
+        ++ lib.optional pearSupport [ libxml2.dev ]
+
+        # Misc deps
+        ++ lib.optional apxs2Support apacheHttpd
+        ++ lib.optional argon2Support libargon2
+        ++ lib.optional systemdSupport systemd
+        ++ lib.optional valgrindSupport valgrind
+      ;
+
+      CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11";
+
+      configureFlags =
+        # Disable all extensions
+        [ "--disable-all" ]
+
+        # PCRE
+        ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre2.dev}" ]
+        ++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre2.dev}" ]
+        ++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre2.dev}" ]
+        ++ [ "PCRE_LIBDIR=${pcre2}" ]
+
+
+        # Enable sapis
+        ++ lib.optional (!cgiSupport) "--disable-cgi"
+        ++ lib.optional (!cliSupport) "--disable-cli"
+        ++ lib.optional fpmSupport    "--enable-fpm"
+        ++ lib.optional pearSupport [ "--with-pear" "--enable-xml" "--with-libxml" ]
+        ++ lib.optionals (pearSupport && (lib.versionOlder version "7.4")) [
+          "--enable-libxml"
+          "--with-libxml-dir=${libxml2.dev}"
+        ]
+        ++ lib.optional pharSupport   "--enable-phar"
+        ++ lib.optional (!phpdbgSupport) "--disable-phpdbg"
+
+
+        # Misc flags
+        ++ lib.optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs"
+        ++ lib.optional argon2Support "--with-password-argon2=${libargon2}"
+        ++ lib.optional cgotoSupport "--enable-re2c-cgoto"
+        ++ lib.optional embedSupport "--enable-embed"
+        ++ lib.optional (!ipv6Support) "--disable-ipv6"
+        ++ lib.optional systemdSupport "--with-fpm-systemd"
+        ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}"
+        ++ lib.optional (ztsSupport && (lib.versionOlder version "8.0")) "--enable-maintainer-zts"
+        ++ lib.optional (ztsSupport && (lib.versionAtLeast version "8.0")) "--enable-zts"
+
+
+        # Sendmail
+        ++ [ "PROG_SENDMAIL=${system-sendmail}/bin/sendmail" ]
+      ;
+
+      hardeningDisable = [ "bindnow" ];
+
+      preConfigure =
+      # Don't record the configure flags since this causes unnecessary
+      # runtime dependencies
+      ''
+        for i in main/build-defs.h.in scripts/php-config.in; do
+          substituteInPlace $i \
+            --replace '@CONFIGURE_COMMAND@' '(omitted)' \
+            --replace '@CONFIGURE_OPTIONS@' "" \
+            --replace '@PHP_LDFLAGS@' ""
+        done
+
+        export EXTENSION_DIR=$out/lib/php/extensions
+      ''
+      # PKG_CONFIG need not be a relative path
+      + lib.optionalString (! lib.versionAtLeast version "7.4") ''
+        for i in $(find . -type f -name "*.m4"); do
+          substituteInPlace $i \
+            --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null'
+        done
+      '' + ''
+        ./buildconf --copy --force
+
+        if test -f $src/genfiles; then
+          ./genfiles
+        fi
+      '' + lib.optionalString stdenv.isDarwin ''
+        substituteInPlace configure --replace "-lstdc++" "-lc++"
+      '';
+
+      postInstall = ''
+        test -d $out/etc || mkdir $out/etc
+        cp php.ini-production $out/etc/php.ini
+      '';
+
+      postFixup = ''
+        mkdir -p $dev/bin $dev/share/man/man1
+        mv $out/bin/phpize $out/bin/php-config $dev/bin/
+        mv $out/share/man/man1/phpize.1.gz \
+           $out/share/man/man1/php-config.1.gz \
+           $dev/share/man/man1/
+      '';
+
+      src = fetchurl {
+        url = "https://www.php.net/distributions/php-${version}.tar.bz2";
+        inherit sha256;
+      };
+
+      patches = [ ./fix-paths-php7.patch ] ++ extraPatches;
+
+      separateDebugInfo = true;
+
+      outputs = [ "out" "dev" ];
+
+      passthru = {
+        buildEnv = mkBuildEnv {} [];
+        withExtensions = mkWithExtensions {} [];
+        inherit ztsSupport;
+      };
+
+      meta = with lib; {
+        description = "An HTML-embedded scripting language";
+        homepage = "https://www.php.net/";
+        license = licenses.php301;
+        maintainers = teams.php.members;
+        platforms = platforms.all;
+        outputsToInstall = [ "out" "dev" ];
+      };
+    };
 in generic
diff --git a/nixpkgs/pkgs/development/interpreters/php/php73-darwin-isfinite.patch b/nixpkgs/pkgs/development/interpreters/php/php73-darwin-isfinite.patch
deleted file mode 100644
index 7f784e0f5a95..000000000000
--- a/nixpkgs/pkgs/development/interpreters/php/php73-darwin-isfinite.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -ru a/configure.ac b/configure.ac
---- a/configure.ac      2018-12-04 19:12:20.000000000 +0300
-+++ b/configure.ac      2018-12-10 12:30:37.798917520 +0300
-@@ -68,7 +68,7 @@
- #include <math.h>
-
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -77,7 +77,7 @@
- #endif
- #endif
-
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -88,7 +88,7 @@
- #define zend_isinf(a) 0
- #endif
-
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
-diff -ru a/Zend/configure.ac b/Zend/configure.ac
---- a/Zend/configure.ac 2018-12-04 19:12:30.000000000 +0300
-+++ b/Zend/configure.ac 2018-12-10 12:28:50.350929699 +0300
-@@ -59,7 +59,7 @@
- #include <math.h>
-
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -68,7 +68,7 @@
- #endif
- #endif
-
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -79,7 +79,7 @@
- #define zend_isinf(a) 0
- #endif
-
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
diff --git a/nixpkgs/pkgs/development/interpreters/pure/default.nix b/nixpkgs/pkgs/development/interpreters/pure/default.nix
index 863df66899b1..d1c03bba5a31 100644
--- a/nixpkgs/pkgs/development/interpreters/pure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/pure/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper,
-  llvm, gmp, mpfr, readline, bison, flex }:
+  libllvm, gmp, mpfr, readline, bison, flex }:
 
 stdenv.mkDerivation rec {
   baseName="pure";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ bison flex ];
-  propagatedBuildInputs = [ llvm gmp mpfr readline ];
+  propagatedBuildInputs = [ libllvm gmp mpfr readline ];
   NIX_LDFLAGS = "-lLLVMJIT";
 
   postPatch = ''
@@ -25,10 +25,10 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--enable-release" ];
   doCheck = true;
   checkPhase = ''
-    LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${llvm}/lib make check
+    LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${libllvm}/lib make check
   '';
   postInstall = ''
-    wrapProgram $out/bin/pure --prefix LD_LIBRARY_PATH : ${llvm}/lib
+    wrapProgram $out/bin/pure --prefix LD_LIBRARY_PATH : ${libllvm}/lib
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/interpreters/python/conda/default.nix b/nixpkgs/pkgs/development/interpreters/python/conda/default.nix
new file mode 100644
index 000000000000..77bda13f266c
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/conda/default.nix
@@ -0,0 +1,25 @@
+{ pkgs }: {
+
+  # List of libraries that are needed for conda binary packages.
+  # When installing a conda binary package, just extend
+  # the `buildInputs` with `condaAutopatchLibs`.
+  condaPatchelfLibs = builtins.map (p: p.lib or p) ([
+    pkgs.alsa-lib
+    pkgs.cups
+    pkgs.gcc-unwrapped
+    pkgs.libGL
+  ] ++ (with pkgs.xorg; [
+    libSM
+    libICE
+    libX11
+    libXau
+    libXdamage
+    libXi
+    libXrender
+    libXrandr
+    libXcomposite
+    libXcursor
+    libXtst
+    libXScrnSaver])
+  );
+}
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
index d6ba795d20ad..5ee88ebb8810 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -258,7 +258,7 @@ in with passthru; stdenv.mkDerivation ({
     LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
     inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
 
-    NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2"
+    NIX_CFLAGS_COMPILE = optionalString (stdenv.targetPlatform.system == "x86_64-darwin") "-msse2"
       + optionalString stdenv.hostPlatform.isMusl " -DTHREAD_STACK_SIZE=0x100000";
     DETERMINISTIC_BUILD = 1;
 
diff --git a/nixpkgs/pkgs/development/interpreters/python/default.nix b/nixpkgs/pkgs/development/interpreters/python/default.nix
index e3124bcc0c58..9c4499b18432 100644
--- a/nixpkgs/pkgs/development/interpreters/python/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/default.nix
@@ -44,6 +44,8 @@ with pkgs;
               toPythonModule toPythonApplication
               buildSetupcfg
 
+              condaInstallHook
+              condaUnpackHook
               eggUnpackHook
               eggBuildHook
               eggInstallHook
@@ -69,15 +71,18 @@ with pkgs;
               recursivePthLoader
             ;
           };
+          extra = _: {};
           optionalExtensions = cond: as: if cond then as else [];
           python2Extension = import ../../../top-level/python2-packages.nix;
           extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ [ overrides ]);
+          aliases = self: super: lib.optionalAttrs (config.allowAliases or true) (import ../../../top-level/python-aliases.nix lib self super);
         in lib.makeScopeWithSplicing
           pkgs.splicePackages
           pkgs.newScope
           otherSplices
           keep
-          (lib.extends extensions pythonPackagesFun))
+          extra
+          (lib.extends (lib.composeExtensions aliases extensions) pythonPackagesFun))
         {
           overrides = packageOverrides;
         };
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/conda-install-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/conda-install-hook.sh
new file mode 100644
index 000000000000..af9ed60a038d
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/conda-install-hook.sh
@@ -0,0 +1,27 @@
+# Setup hook to use in case a conda binary package is installed
+echo "Sourcing conda install hook"
+
+condaInstallPhase(){
+    echo "Executing condaInstallPhase"
+    runHook preInstall
+
+    # There are two different formats of conda packages.
+    # It either contains only a site-packages directory
+    # or multiple top level directories.
+    siteDir=@pythonSitePackages@
+    if [ -e ./site-packages ]; then
+      mkdir -p $out/$siteDir
+      cp -r ./site-packages/* $out/$siteDir
+    else
+      cp -r . $out
+      rm $out/env-vars
+    fi
+
+    runHook postInstall
+    echo "Finished executing condaInstallPhase"
+}
+
+if [ -z "${installPhase-}" ]; then
+    echo "Using condaInstallPhase"
+    installPhase=condaInstallPhase
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/conda-unpack-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/conda-unpack-hook.sh
new file mode 100644
index 000000000000..6204c13b7221
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/conda-unpack-hook.sh
@@ -0,0 +1,18 @@
+# Setup hook to use in case a conda binary package is fetched
+echo "Sourcing conda unpack hook"
+
+condaUnpackPhase(){
+    echo "Executing condaUnpackPhase"
+    runHook preUnpack
+
+    # use lbzip2 for parallel decompression (bz2 is slow)
+    lbzip2 -dc -n $NIX_BUILD_CORES $src | tar --exclude='info' -x
+
+    # runHook postUnpack # Calls find...?
+    echo "Finished executing condaUnpackPhase"
+}
+
+if [ -z "${unpackPhase-}" ]; then
+    echo "Using condaUnpackPhase"
+    unpackPhase=condaUnpackPhase
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
index 1a64c79232bc..1a0618225a37 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
@@ -16,6 +16,21 @@ let
   setuppy = ../run_setup.py;
 in rec {
 
+  condaInstallHook = callPackage ({ gnutar, lbzip2 }:
+    makeSetupHook {
+      name = "conda-install-hook";
+      deps = [ gnutar lbzip2 ];
+      substitutions = {
+        inherit pythonSitePackages;
+      };
+    } ./conda-install-hook.sh) {};
+
+  condaUnpackHook = callPackage ({}:
+    makeSetupHook {
+      name = "conda-unpack-hook";
+      deps = [];
+    } ./conda-unpack-hook.sh) {};
+
   eggBuildHook = callPackage ({ }:
     makeSetupHook {
       name = "egg-build-hook.sh";
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
index eb45205ff731..0f708f888292 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh
@@ -2,7 +2,7 @@
 echo "Sourcing pytest-check-hook"
 
 declare -ar disabledTests
-declare -ar disabledTestPaths
+declare -a disabledTestPaths
 
 function _concatSep {
     local result
@@ -37,6 +37,11 @@ function pytestCheckPhase() {
         disabledTestsString=$(_pytestComputeDisabledTestsString "${disabledTests[@]}")
       args+=" -k \""$disabledTestsString"\""
     fi
+
+    if [ -n "${disabledTestPaths-}" ]; then
+        eval "disabledTestPaths=($disabledTestPaths)"
+    fi
+
     for path in ${disabledTestPaths[@]}; do
       if [ ! -e "$path" ]; then
         echo "Disabled tests path \"$path\" does not exist. Aborting"
diff --git a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
index e9c769821d6f..4917b167046e 100644
--- a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -93,6 +93,8 @@
 
 , doCheck ? config.doCheckByDefault or false
 
+, disabledTestPaths ? []
+
 , ... } @ attrs:
 
 
@@ -108,6 +110,7 @@ let
 
   self = toPythonModule (stdenv.mkDerivation ((builtins.removeAttrs attrs [
     "disabled" "checkPhase" "checkInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format"
+    "disabledTestPaths"
   ]) // {
 
     name = namePrefix + name_;
@@ -178,6 +181,8 @@ let
     # If given use the specified checkPhase, otherwise use the setup hook.
     # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
     installCheckPhase = attrs.checkPhase;
+  } //  lib.optionalAttrs (disabledTestPaths != []) {
+      disabledTestPaths = lib.escapeShellArgs disabledTestPaths;
   }));
 
   passthru.updateScript = let
diff --git a/nixpkgs/pkgs/development/interpreters/python/tests.nix b/nixpkgs/pkgs/development/interpreters/python/tests.nix
index cfba04da9380..872123338f8c 100644
--- a/nixpkgs/pkgs/development/interpreters/python/tests.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/tests.nix
@@ -121,4 +121,37 @@ let
     # in assert myPackages.foobar == myPackages.numpy; myPackages.python.withPackages(ps: with ps; [ foobar ]);
   };
 
-in lib.optionalAttrs (stdenv.hostPlatform == stdenv.buildPlatform ) (environmentTests // integrationTests // overrideTests)
+  condaTests = let
+    requests = callPackage ({
+        autoPatchelfHook,
+        fetchurl,
+        pythonCondaPackages,
+      }:
+      python.pkgs.buildPythonPackage {
+        pname = "requests";
+        version = "2.24.0";
+        format = "other";
+        src = fetchurl {
+          url = "https://repo.anaconda.com/pkgs/main/noarch/requests-2.24.0-py_0.tar.bz2";
+          sha256 = "02qzaf6gwsqbcs69pix1fnjxzgnngwzvrsy65h1d521g750mjvvp";
+        };
+        nativeBuildInputs = [ autoPatchelfHook ] ++ (with python.pkgs; [
+          condaUnpackHook condaInstallHook
+        ]);
+        buildInputs = [
+          pythonCondaPackages.condaPatchelfLibs
+        ];
+        propagatedBuildInputs = with python.pkgs; [
+          chardet idna urllib3 certifi
+        ];
+      }
+    ) {};
+    pythonWithRequests = requests.pythonModule.withPackages (ps: [ requests ]);
+    in
+    {
+      condaExamplePackage = runCommand "import-requests" {} ''
+        ${pythonWithRequests.interpreter} -c "import requests" > $out
+      '';
+    };
+
+in lib.optionalAttrs (stdenv.hostPlatform == stdenv.buildPlatform ) (environmentTests // integrationTests // overrideTests // condaTests)
diff --git a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
index ac70a50eaa72..4bc0ec528a01 100644
--- a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
@@ -1,17 +1,37 @@
-{ lib, stdenv, fetchurl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, texinfo
+}:
 
 stdenv.mkDerivation rec {
   pname = "quickjs";
-  version = "2020-11-08";
+  version = "2021-03-27";
 
-  src = fetchurl {
-    url = "https://bellard.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0yqqcjxi3cqagw184mqrxpvqg486x7c233r3cp9mxachngd6779f";
+  src = fetchFromGitHub {
+    owner = "bellard";
+    repo = pname;
+    rev = "b5e62895c619d4ffc75c9d822c8d85f1ece77e5b";
+    hash = "sha256-VMaxVVQuJ3DAwYrC14uJqlRBg0//ugYvtyhOXsTUbCA=";
   };
 
   makeFlags = [ "prefix=${placeholder "out"}" ];
   enableParallelBuilding = true;
 
+  nativeBuildInputs = [
+    texinfo
+  ];
+
+  postBuild = ''
+    (cd doc
+     makeinfo *texi)
+  '';
+
+  postInstall = ''
+    (cd doc
+     install -Dt $out/share/doc *texi *info)
+  '';
+
   doInstallCheck = true;
   installCheckPhase = ''
     PATH="$out/bin:$PATH"
@@ -32,7 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A small and embeddable Javascript engine";
     homepage = "https://bellard.org/quickjs/";
-    maintainers = with maintainers; [ stesie ];
+    maintainers = with maintainers; [ stesie AndersonTorres ];
     platforms = platforms.linux;
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/interpreters/renpy/default.nix b/nixpkgs/pkgs/development/interpreters/renpy/default.nix
index ae5227fb1989..b0c10c8a6520 100644
--- a/nixpkgs/pkgs/development/interpreters/renpy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/renpy/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, python2Packages, pkg-config, SDL2
-, libpng, ffmpeg_3, freetype, glew, libGL, libGLU, fribidi, zlib
+, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib
 , glib
 }:
 
@@ -32,13 +32,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     python cython wrapPython tkinter
-    SDL2 libpng ffmpeg_3 freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
+    SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib
   ];
 
   pythonPath = [ pygame_sdl2 tkinter ];
 
   RENPY_DEPS_INSTALL = lib.concatStringsSep "::" (map (path: path) [
-    SDL2 SDL2.dev libpng ffmpeg_3 ffmpeg_3.out freetype glew.dev glew.out libGLU libGL fribidi zlib
+    SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU libGL fribidi zlib
   ]);
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
index 0b19b64e180a..8563eb60210d 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
@@ -11,7 +11,7 @@ let
   opString = lib.optionalString;
   patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
   config = import ./config.nix { inherit fetchFromSavannah; };
-  rubygems = import ./rubygems { inherit stdenv lib fetchurl fetchpatch; };
+  rubygems = import ./rubygems { inherit stdenv lib fetchurl; };
 
   # Contains the ruby version heuristics
   rubyVersion = import ./ruby-version.nix { inherit lib; };
@@ -62,13 +62,7 @@ let
       #   Or (usually):
       #     $(nix-build -A ruby)/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb
       # - In $out/lib/libruby.so and/or $out/lib/libruby.dylib
-      #
-      # Since some Gems require JIT support, there's probably no
-      # escape from this reference. Hence, it was decided to enable this
-      # feature by default, as it's enabled by default by ruby's ./configure
-      # script. If you'd like to have a ruby without reference to cc, setting
-      # jitSupport to false should remove all known references mentioned above.
-      , removeReferencesTo, jitSupport ? true
+      , removeReferencesTo, jitSupport ? false
       , autoreconfHook, bison, autoconf
       , buildEnv, bundler, bundix
       , libiconv, libobjc, libunwind, Foundation
@@ -121,7 +115,17 @@ let
             patchLevel = ver.patchLevel;
           }).${ver.majMinTiny}
           ++ op atLeast27 ./do-not-regenerate-revision.h.patch
-          ++ op (atLeast30 && useRailsExpress) ./do-not-update-gems-baseruby.patch;
+          ++ op (atLeast30 && useRailsExpress) ./do-not-update-gems-baseruby.patch
+          # Ruby prior to 3.0 has a bug the installer (tools/rbinstall.rb) but
+          # the resulting error was swallowed. Newer rubygems no longer swallows
+          # this error. We upgrade rubygems when rubygemsSupport is enabled, so
+          # we have to fix this bug to prevent the install step from failing.
+          # See https://github.com/ruby/ruby/pull/2930
+          ++ op (!atLeast30 && rubygemsSupport)
+            (fetchpatch {
+              url = "https://github.com/ruby/ruby/commit/261d8dd20afd26feb05f00a560abd99227269c1c.patch";
+              sha256 = "0wrii25cxcz2v8bgkrf7ibcanjlxwclzhayin578bf0qydxdm9qy";
+            });
 
         postUnpack = opString rubygemsSupport ''
           rm -rf $sourceRoot/{lib,test}/rubygems*
@@ -183,8 +187,9 @@ let
         installFlags = lib.optional docSupport "install-doc";
         # Bundler tries to create this directory
         postInstall = ''
+          rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
           # Remove unnecessary groff reference from runtime closure, since it's big
-          sed -i '/NROFF/d' $out/lib/ruby/*/*/rbconfig.rb
+          sed -i '/NROFF/d' $rbConfig
           ${
             lib.optionalString (!jitSupport) ''
               # Get rid of the CC runtime dependency
@@ -193,7 +198,8 @@ let
                 $out/lib/libruby*
               ${removeReferencesTo}/bin/remove-references-to \
                 -t ${stdenv.cc} \
-                $out/${passthru.libPath}/${stdenv.hostPlatform.system}/rbconfig.rb
+                $rbConfig
+              sed -i '/CC_VERSION_MESSAGE/d' $rbConfig
             ''
           }
           # Bundler tries to create this directory
@@ -211,8 +217,6 @@ let
           addEnvHooks "$hostOffset" addGemPath
           addEnvHooks "$hostOffset" addRubyLibPath
           EOF
-
-          rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
         '' + opString docSupport ''
           # Prevent the docs from being included in the closure
           sed -i "s|\$(DESTDIR)$devdoc|\$(datarootdir)/\$(RI_BASE_NAME)|" $rbConfig
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
index 19eed817ec29..db508caae310 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -1,23 +1,18 @@
-{ stdenv, lib, fetchurl, fetchpatch }:
+{ stdenv, lib, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "rubygems";
-  version = "3.1.3";
+  version = "3.2.16";
 
   src = fetchurl {
     url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
-    sha256 = "181wjclxnq5lrwnr53famy9pg8911hi9w2v0vy7dqgjqnc4iy1hp";
+    sha256 = "1bpn45hchcbirqvqwxcxyk1xy2xkdd915jci2hfjq4y6zc4idns0";
   };
 
   patches = [
     ./0001-add-post-extract-hook.patch
     ./0002-binaries-with-env-shebang.patch
     ./0003-gem-install-default-to-user.patch
-
-    (fetchpatch {
-      url = "https://github.com/rubygems/rubygems/commit/0af4d2d369ff580ef54839ec15a8c7ec419978cb.patch";
-      sha256 = "13gyfxn4rmxq1dbxq5rzphnhagn8n8kpp8lb9h6h4s9d4zaklax9";
-    })
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix
deleted file mode 100644
index 4892e0b8abef..000000000000
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.5.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{ stdenv, lib, autoconf213, fetchurl, fetchpatch, pkg-config, nspr, perl, python2, zip }:
-
-stdenv.mkDerivation {
-  pname = "spidermonkey";
-  version = "1.8.5";
-
-  src = fetchurl {
-    url = "mirror://mozilla/js/js185-1.0.0.tar.gz";
-    sha256 = "5d12f7e1f5b4a99436685d97b9b7b75f094d33580227aa998c406bbae6f2a687";
-  };
-
-  propagatedBuildInputs = [ nspr ];
-
-  nativeBuildInputs = [ pkg-config ] ++ lib.optional stdenv.isAarch32 autoconf213;
-  buildInputs = [ perl python2 zip ];
-
-  postUnpack = "sourceRoot=\${sourceRoot}/js/src";
-
-  preConfigure = ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
-    export LIBXUL_DIST=$out
-    ${lib.optionalString stdenv.isAarch32 "autoreconf --verbose --force"}
-  '';
-
-  patches = [
-    (fetchpatch {
-      name = "gcc6.patch";
-      url = "https://sources.debian.org/data/main/m/mozjs/1.8.5-1.0.0+dfsg-6/debian/patches/fix-811665.patch";
-      sha256 = "1q8477xqxiy5d8376k5902l45gd0qkd4nxmhl8vr6rr1pxfcny99";
-    })
-  ] ++ lib.optionals stdenv.isAarch32 [
-    # Explained below in configureFlags for ARM
-    ./1.8.5-findvanilla.patch
-    # Fix for hard float flags.
-    ./1.8.5-arm-flags.patch
-  ];
-
-  patchFlags = [ "-p3" ];
-
-  # fixes build on gcc8
-  postPatch = ''
-    substituteInPlace ./methodjit/MethodJIT.cpp \
-      --replace 'asm volatile' 'asm'
-  '';
-
-  # On the Sheevaplug, ARM, its nanojit thing segfaults in japi-tests in
-  # "make check". Disabling tracejit makes it work, but then it needs the
-  # patch findvanilla.patch do disable a checker about allocator safety. In case
-  # of polkit, which is what matters most, it does not override the allocator
-  # so the failure of that test does not matter much.
-  configureFlags = [ "--enable-threadsafe" "--with-system-nspr" ] ++
-    lib.optionals (stdenv.hostPlatform.system == "armv5tel-linux") [
-        "--with-cpu-arch=armv5t"
-        "--disable-tracejit" ];
-
-  # hack around a make problem, see https://github.com/NixOS/nixpkgs/issues/1279#issuecomment-29547393
-  preBuild = ''
-    touch -- {.,shell,jsapi-tests}/{-lpthread,-ldl}
-    ${if stdenv.isAarch32 then "rm -r jit-test/tests/jaeger/bug563000" else ""}
-  '';
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
-
-  preCheck = ''
-    rm jit-test/tests/sunspider/check-date-format-tofte.js    # https://bugzil.la/600522
-  '';
-
-  meta = with lib; {
-    description = "Mozilla's JavaScript engine written in C/C++";
-    homepage = "https://developer.mozilla.org/en/SpiderMonkey";
-    # TODO: MPL/GPL/LGPL tri-license.
-    maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
-    broken = stdenv.isAarch64; # 2018-08-21, broken since 2017-03-08
-  };
-}
-
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix
index 0ac005b07dea..f867e606140f 100644
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix
+++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix
@@ -55,7 +55,7 @@ in stdenv.mkDerivation rec {
     "--with-system-zlib"
     "--with-system-icu"
 
-    "--with-libclang-path=${llvmPackages.libclang}/lib"
+    "--with-libclang-path=${llvmPackages.libclang.lib}/lib"
     "--with-clang-path=${llvmPackages.clang}/bin/clang"
 
     "--enable-shared-js"
diff --git a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
index b7efc37ae044..fc8d8f1652de 100644
--- a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, alsaLib
+{ lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, alsa-lib
 , libjack2, libsndfile, fftw, curl, gcc
 , libXt, qtbase, qttools, qtwebengine
 , readline, qtwebsockets, useSCEL ? false, emacs
@@ -27,7 +27,7 @@ mkDerivation rec {
 
   buildInputs = [
     gcc libjack2 libsndfile fftw curl libXt qtbase qtwebengine qtwebsockets readline ]
-      ++ optional (!stdenv.isDarwin) alsaLib
+      ++ optional (!stdenv.isDarwin) alsa-lib
       ++ optional useSCEL emacs;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
index 8077177d8b8f..d19600f39b85 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "08r2b4s005w8r207jwq2fd43y3prgd8pg1m72aww1r7yrbxdr0v2";
+  cargoSha256 = "140bzxhsyfif99x5a1m1d45ppb6jzvy9m4xil7z1wg2pnq9k7zz8";
 
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
     "--features" "test-cranelift,test-jit"
   ];
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   meta = with lib; {
     description = "The Universal WebAssembly Runtime";
diff --git a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
index 3d13dddb6425..675a7cdd6bc0 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
@@ -12,12 +12,12 @@ rustPlatform.buildRustPackage rec {
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "1r1fm28zaxfbzd17jzaz8ql6ss6y6djgdhpfpkvpbw9l8l06x4lc";
+  cargoSha256 = "1wlig9gls7s1k1swxwhl82vfga30bady8286livxc4y2zp0vb18w";
 
   nativeBuildInputs = [ python cmake clang ];
   buildInputs = [ llvmPackages.libclang ] ++
    lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/java-modules/postgresql_jdbc/default.nix b/nixpkgs/pkgs/development/java-modules/postgresql_jdbc/default.nix
index e7968cf80c0a..524273e080fe 100644
--- a/nixpkgs/pkgs/development/java-modules/postgresql_jdbc/default.nix
+++ b/nixpkgs/pkgs/development/java-modules/postgresql_jdbc/default.nix
@@ -2,19 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "postgresql-jdbc";
-  version = "42.2.5";
+  version = "42.2.20";
 
   src = fetchMavenArtifact {
     artifactId = "postgresql";
     groupId = "org.postgresql";
-    sha256 = "1p0cbb7ka41xxipzjy81hmcndkqynav22xyipkg7qdqrqvw4dykz";
+    sha256 = "0kjilsrz9shymfki48kg1q84la1870ixlh2lnfw347x8mqw2k2vh";
     inherit version;
   };
 
   phases = [ "installPhase" ];
 
   installPhase = ''
+    runHook preInstall
     install -m444 -D $src/share/java/*postgresql-${version}.jar $out/share/java/postgresql-jdbc.jar
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/CGAL/default.nix b/nixpkgs/pkgs/development/libraries/CGAL/default.nix
index 7ff9ac43343e..bd8edc14a8bb 100644
--- a/nixpkgs/pkgs/development/libraries/CGAL/default.nix
+++ b/nixpkgs/pkgs/development/libraries/CGAL/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cgal";
-  version = "5.2";
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner = "CGAL";
     repo = "releases";
     rev = "CGAL-${version}";
-    sha256 = "1+ov1fu79MXoW0D8odInMZPFMYg69st//PoMW42oXpA=";
+    sha256 = "sha256-sJyeehgt84rLX8ZBYIbFgHLG2aJDDHEj5GeVnQhjiOQ=";
   };
 
   # note: optional component libCGAL_ImageIO would need zlib and opengl;
diff --git a/nixpkgs/pkgs/development/libraries/SDL/default.nix b/nixpkgs/pkgs/development/libraries/SDL/default.nix
index b51bc3f7cdd8..bf76bc1e8570 100644
--- a/nixpkgs/pkgs/development/libraries/SDL/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, config, fetchurl, fetchpatch, pkg-config, audiofile, libcap, libiconv
 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 , openglSupport ? libGLSupported, libGL, libGLU
-, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
+, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsa-lib
 , x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
 , libXext, libICE, libXrandr
 , pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid, libpulseaudio
@@ -17,7 +17,7 @@ let
   extraPropagatedBuildInputs = [ ]
     ++ optionals x11Support [ libXext libICE libXrandr ]
     ++ optionals openglSupport [ libGL libGLU ]
-    ++ optional alsaSupport alsaLib
+    ++ optional alsaSupport alsa-lib
     ++ optional pulseaudioSupport libpulseaudio
     ++ optional stdenv.isDarwin Cocoa;
   rpath = makeLibraryPath extraPropagatedBuildInputs;
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   # Please try revert the change that introduced this comment when updating SDL.
   ] ++ optional stdenv.isDarwin "--disable-x11-shared"
     ++ optional (!x11Support) "--without-x"
-    ++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib";
+    ++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib";
 
   patches = [
     ./find-headers.patch
diff --git a/nixpkgs/pkgs/development/libraries/SDL2/default.nix b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
index f70a46e2f8ed..d02dac1f562f 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, config, fetchurl, pkg-config
 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 , openglSupport ? libGLSupported, libGL
-, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
+, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsa-lib
 , x11Support ? !stdenv.targetPlatform.isWindows && !stdenv.hostPlatform.isAndroid
 , libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor
 , libXinerama, libXext, libXxf86vm, libXrandr
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     ++ optionals x11Support [ libX11 xorgproto ];
 
   dlopenBuildInputs = [ ]
-    ++ optionals  alsaSupport [ alsaLib audiofile ]
+    ++ optionals  alsaSupport [ alsa-lib audiofile ]
     ++ optional  dbusSupport dbus
     ++ optional  pulseaudioSupport libpulseaudio
     ++ optional  udevSupport udev
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--disable-oss"
   ] ++ optional (!x11Support) "--without-x"
-    ++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib"
+    ++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib"
     ++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles"
     ++ optional stdenv.isDarwin "--disable-sdltest";
 
diff --git a/nixpkgs/pkgs/development/libraries/SDL2_image/default.nix b/nixpkgs/pkgs/development/libraries/SDL2_image/default.nix
index 96f85ddb0ea5..a0f770178cc9 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2_image/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2_image/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, SDL2, libpng, libjpeg, libtiff, libungif, libwebp, libXpm, zlib, Foundation }:
+{ lib, stdenv, fetchurl, SDL2, libpng, libjpeg, libtiff, giflib, libwebp, libXpm, zlib, Foundation }:
 
 stdenv.mkDerivation rec {
   pname = "SDL2_image";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1l0864kas9cwpp2d32yxl81g98lx40dhbdp03dz7sbv84vhgdmdx";
   };
 
-  buildInputs = [ SDL2 libpng libjpeg libtiff libungif libwebp libXpm zlib ]
+  buildInputs = [ SDL2 libpng libjpeg libtiff giflib libwebp libXpm zlib ]
     ++ lib.optional stdenv.isDarwin Foundation;
 
 
diff --git a/nixpkgs/pkgs/development/libraries/SDL_image/default.nix b/nixpkgs/pkgs/development/libraries/SDL_image/default.nix
index 2e5841b3f482..fe97f0167439 100644
--- a/nixpkgs/pkgs/development/libraries/SDL_image/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL_image/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, libungif, libXpm }:
+{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, giflib, libXpm }:
 
 stdenv.mkDerivation rec {
   pname = "SDL_image";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     "--disable-tif-shared"
   ] ++ lib.optional stdenv.isDarwin "--disable-sdltest";
 
-  buildInputs = [ SDL libpng libjpeg libtiff libungif libXpm ];
+  buildInputs = [ SDL libpng libjpeg libtiff giflib libXpm ];
 
   meta = with lib; {
     description = "SDL image library";
diff --git a/nixpkgs/pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch b/nixpkgs/pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch
new file mode 100644
index 000000000000..c18420711b90
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch
@@ -0,0 +1,15 @@
+diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake
+index 1a80b5b..1fa57a7 100644
+--- a/CMake/AbseilHelpers.cmake
++++ b/CMake/AbseilHelpers.cmake
+@@ -171,8 +171,8 @@ function(absl_cc_library)
+       FILE(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/lib/pkgconfig/absl_${_NAME}.pc" CONTENT "\
+ prefix=${CMAKE_INSTALL_PREFIX}\n\
+ exec_prefix=\${prefix}\n\
+-libdir=\${prefix}/${CMAKE_INSTALL_LIBDIR}\n\
+-includedir=\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}\n\
++libdir=${CMAKE_INSTALL_FULL_LIBDIR}\n\
++includedir=${CMAKE_INSTALL_FULL_INCLUDEDIR}\n\
+ \n\
+ Name: absl_${_NAME}\n\
+ Description: Abseil ${_NAME} library\n\
diff --git a/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix b/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix
index 0813a965524b..a1610ce82624 100644
--- a/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/abseil-cpp/default.nix
@@ -1,16 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, cmake, static ? stdenv.hostPlatform.isStatic }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, static ? stdenv.hostPlatform.isStatic }:
 
 stdenv.mkDerivation rec {
   pname = "abseil-cpp";
-  version = "20200923.3";
+  version = "20210324.1";
 
   src = fetchFromGitHub {
     owner = "abseil";
     repo = "abseil-cpp";
     rev = version;
-    sha256 = "1p4djhm1f011ficbjjxx3n8428p8481p20j4glpaawnpsi362hkl";
+    sha256 = "16w63brfwgiayiyhvawsnr14xyy5hpp68k8fj0z6yk0bjzw6jvjw";
   };
 
+  patches = [
+    # Use CMAKE_INSTALL_FULL_{LIBDIR,INCLUDEDIR}
+    # https://github.com/abseil/abseil-cpp/pull/963
+    (fetchpatch {
+      url = "https://github.com/abseil/abseil-cpp/commit/5bfa70c75e621c5d5ec095c8c4c0c050dcb2957e.patch";
+      sha256 = "0nhjxqfxpi2pkfinnqvd5m4npf9l1kg39mjx9l3087ajhadaywl5";
+    })
+  ];
+
   cmakeFlags = [
     "-DCMAKE_CXX_STANDARD=17"
     "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
diff --git a/nixpkgs/pkgs/development/libraries/ace/default.nix b/nixpkgs/pkgs/development/libraries/ace/default.nix
index 8210bdb4425e..b27cb8aae35a 100644
--- a/nixpkgs/pkgs/development/libraries/ace/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ace";
-  version = "7.0.1";
+  version = "7.0.2";
 
   src = fetchurl {
     url = "https://download.dre.vanderbilt.edu/previous_versions/ACE-${version}.tar.bz2";
-    sha256 = "sha256-5nH5a0tBOcGfA07eeh9EjH0vgT3gTRWYHXoeO+QFQjQ=";
+    sha256 = "sha256-IftPSQOrZOqMLHHlUFEFa3WcvsqN5kdS5rSlGE8ETC4=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/alembic/default.nix b/nixpkgs/pkgs/development/libraries/alembic/default.nix
index cbfec4dd46af..333dbb053f52 100644
--- a/nixpkgs/pkgs/development/libraries/alembic/default.nix
+++ b/nixpkgs/pkgs/development/libraries/alembic/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec
 {
   pname = "alembic";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "alembic";
     repo = "alembic";
     rev = version;
-    sha256 = "sha256-c4SN3kNY8415+O/2AYuHNQFEmuTBtLaWj5fsj0yJ2vs=";
+    sha256 = "sha256-ObjpWreabeVzKYVgC62JaoGUf1BZCxP0STjox3akDvo=";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/nixpkgs/pkgs/development/libraries/allegro/5.nix b/nixpkgs/pkgs/development/libraries/allegro/5.nix
index 314347411261..5cd6584f18fe 100644
--- a/nixpkgs/pkgs/development/libraries/allegro/5.nix
+++ b/nixpkgs/pkgs/development/libraries/allegro/5.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, texinfo, libXext, xorgproto, libX11
-, libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis
+, libXpm, libXt, libXcursor, alsa-lib, cmake, zlib, libpng, libvorbis
 , libXxf86dga, libXxf86misc
 , libXxf86vm, openal, libGLU, libGL, libjpeg, flac
 , libXi, libXfixes, freetype, libopus, libtheora
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     texinfo libXext xorgproto libX11 libXpm libXt libXcursor
-    alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
+    alsa-lib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
     libXxf86vm openal libGLU libGL
     libjpeg flac
     libXi libXfixes
diff --git a/nixpkgs/pkgs/development/libraries/allegro/default.nix b/nixpkgs/pkgs/development/libraries/allegro/default.nix
index 9fefbe01ace0..6abf632806a4 100644
--- a/nixpkgs/pkgs/development/libraries/allegro/default.nix
+++ b/nixpkgs/pkgs/development/libraries/allegro/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, texinfo6_5, libXext, xorgproto, libX11
-, libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis
+, libXpm, libXt, libXcursor, alsa-lib, cmake, zlib, libpng, libvorbis
 , libXxf86dga, libXxf86misc
 , libXxf86vm, openal, libGLU, libGL }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     texinfo6_5 libXext xorgproto libX11 libXpm libXt libXcursor
-    alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
+    alsa-lib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
     libXxf86vm openal libGLU libGL
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/amdvlk/default.nix b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
index 1d0256f3b274..e3bc04a6d226 100644
--- a/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
@@ -21,13 +21,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2021.Q1.6";
+  version = "2021.Q2.4";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "FSQ/bYlvdw0Ih3Yl329o8Gizw0YcZTLtiI222Ju4M8w=";
+    sha256 = "KPWkwbD55BoztF6DPmvau9i1AMhR+5ad5VrrD8I2YyI=";
   };
 
   buildInputs = [
@@ -70,12 +70,8 @@ in stdenv.mkDerivation rec {
 
   installPhase = ''
     install -Dm755 -t $out/lib icd/amdvlk${suffix}.so
-    install -Dm644 -t $out/share/vulkan/icd.d ../drivers/AMDVLK/json/Redhat/amd_icd${suffix}.json
-
-    substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \
-      "/usr/lib64" "$out/lib"
-    substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \
-      "/usr/lib" "$out/lib"
+    install -Dm644 -t $out/share/vulkan/icd.d icd/amd_icd${suffix}.json
+    install -Dm644 -t $out/share/vulkan/implicit_layer.d icd/amd_icd${suffix}.json
 
     patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so
   '';
diff --git a/nixpkgs/pkgs/development/libraries/amtk/default.nix b/nixpkgs/pkgs/development/libraries/amtk/default.nix
index f144f847bcf0..5743a18c0fd0 100644
--- a/nixpkgs/pkgs/development/libraries/amtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/amtk/default.nix
@@ -1,23 +1,27 @@
 { lib, stdenv
 , fetchurl
 , gtk3
+, meson
+, ninja
 , pkg-config
 , gobject-introspection
-, gnome3
+, gnome
 , dbus
-, xvfb_run
+, xvfb-run
 }:
 
 stdenv.mkDerivation rec {
   pname = "amtk";
-  version = "5.2.0";
+  version = "5.3.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0y3hmmflw4i0y0yb9a8rlihbv3cbwnvdcf1n5jycwzpq9jxla1c2";
+    sha256 = "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm";
   };
 
   nativeBuildInputs = [
+    meson
+    ninja
     pkg-config
     dbus
     gobject-introspection
@@ -30,12 +34,15 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.isLinux;
   checkPhase = ''
     export NO_AT_BRIDGE=1
-    ${xvfb_run}/bin/xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+    ${xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
-      make check
+      meson test --print-errorlogs
   '';
 
-  passthru.updateScript = gnome3.updateScript { packageName = pname; };
+  passthru.updateScript = gnome.updateScript {
+    packageName = pname;
+    versionPolicy = "none";
+  };
 
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/Amtk";
diff --git a/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix b/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
index 136ffb79804a..79c1715c61d7 100644
--- a/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-activemq";
-  version = "5.16.1";
+  version = "5.16.2";
 
   src = fetchurl {
-    sha256 = "sha256-Q9PzqJC/+uhcbxAC6c+VD8wf0X8/XlXcO4XTnQni4yM=";
+    sha256 = "sha256-IS/soe5Lx1C+/UWnNcv+8AwMmu5FHvURbpkTMMGrEFs=";
     url = "mirror://apache/activemq/${version}/${pname}-${version}-bin.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/applet-window-buttons/default.nix b/nixpkgs/pkgs/development/libraries/applet-window-buttons/default.nix
new file mode 100644
index 000000000000..d1d20ef0e489
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/applet-window-buttons/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, kcoreaddons
+, kdeclarative
+, kdecoration
+, plasma-framework
+}:
+
+mkDerivation rec {
+  pname = "applet-window-buttons";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "psifidotos";
+    repo = "applet-window-buttons";
+    rev = version;
+    sha256 = "sha256-ikgUE8GaiTpNjwrz7SbNQ3+b8KiigDgMREQ7J2b+EEs=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kcoreaddons
+    kdeclarative
+    kdecoration
+    plasma-framework
+  ];
+
+  meta = with lib; {
+    description = "Plasma 5 applet in order to show window buttons in your panels";
+    homepage = "https://github.com/psifidotos/applet-window-buttons";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/appstream-glib/default.nix b/nixpkgs/pkgs/development/libraries/appstream-glib/default.nix
index 1cd9fb2c8b76..64c0b031e47d 100644
--- a/nixpkgs/pkgs/development/libraries/appstream-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/appstream-glib/default.nix
@@ -89,6 +89,6 @@ stdenv.mkDerivation rec {
     homepage = "https://people.freedesktop.org/~hughsient/appstream-glib/";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ lethalman matthewbauer ];
+    maintainers = with maintainers; [ matthewbauer ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/appstream/default.nix b/nixpkgs/pkgs/development/libraries/appstream/default.nix
index 6fa4a6e0a4ab..96c6b3623983 100644
--- a/nixpkgs/pkgs/development/libraries/appstream/default.nix
+++ b/nixpkgs/pkgs/development/libraries/appstream/default.nix
@@ -1,20 +1,40 @@
-{ lib, stdenv, substituteAll, fetchFromGitHub, meson, ninja, pkg-config, gettext
-, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt
-, libstemmer, glib, xapian, libxml2, libyaml, gobject-introspection
-, pcre, itstool, gperf, vala, lmdb, libsoup
+{ lib
+, stdenv
+, substituteAll
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, gettext
+, xmlto
+, docbook-xsl-nons
+, docbook_xml_dtd_45
+, libxslt
+, libstemmer
+, glib
+, xapian
+, libxml2
+, libyaml
+, gobject-introspection
+, pcre
+, itstool
+, gperf
+, vala
+, lmdb
+, curl
 }:
 
 stdenv.mkDerivation rec {
   pname = "appstream";
-  version = "0.14.0";
+  version = "0.14.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
-    owner  = "ximion";
-    repo   = "appstream";
-    rev    = "v${version}";
-    sha256 = "sha256-iYqmQ1/58t3ZdJTxYLDc5jkTG1lMBtQWMFFsYsszH9Q=";
+    owner = "ximion";
+    repo = "appstream";
+    rev = "v${version}";
+    sha256 = "sha256-wCQR+4/F5lVqWHHcH/WS4irBGRivz3c1imasyLDIZIs=";
   };
 
   patches = [
@@ -26,12 +46,30 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    meson ninja pkg-config gettext
-    libxslt xmlto docbook_xsl docbook_xml_dtd_45
-    gobject-introspection itstool vala
+    meson
+    ninja
+    pkg-config
+    gettext
+    libxslt
+    xmlto
+    docbook-xsl-nons
+    docbook_xml_dtd_45
+    gobject-introspection
+    itstool
+    vala
   ];
 
-  buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf lmdb libsoup ];
+  buildInputs = [
+    libstemmer
+    pcre
+    glib
+    xapian
+    libxml2
+    libyaml
+    gperf
+    lmdb
+    curl
+  ];
 
   mesonFlags = [
     "-Dapidocs=false"
@@ -41,14 +79,14 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Software metadata handling library";
-    homepage    = "https://www.freedesktop.org/wiki/Distributions/AppStream/";
+    homepage = "https://www.freedesktop.org/wiki/Distributions/AppStream/";
     longDescription = ''
       AppStream is a cross-distro effort for building Software-Center applications
       and enhancing metadata provided by software components.  It provides
       specifications for meta-information which is shipped by upstream projects and
       can be consumed by other software.
     '';
-    license     = licenses.lgpl21Plus;
-    platforms   = platforms.unix;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.unix;
  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/apr/default.nix b/nixpkgs/pkgs/development/libraries/apr/default.nix
index c7a1073d137a..03b6c9777dfd 100644
--- a/nixpkgs/pkgs/development/libraries/apr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/apr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   name = "apr-1.7.0";
@@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
 
   CPPFLAGS=lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-DAPR_IOVEC_DEFINED";
 
+  nativeBuildInputs =
+    # Update libtool for macOS 11 support
+    lib.optional (stdenv.isDarwin && stdenv.isAarch64) [ autoreconfHook ];
+
   enableParallelBuilding = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/aravis/default.nix b/nixpkgs/pkgs/development/libraries/aravis/default.nix
index a915723e2ca7..67e621ad8597 100644
--- a/nixpkgs/pkgs/development/libraries/aravis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aravis/default.nix
@@ -6,7 +6,7 @@
 , gst-plugins-good ? null
 , gst-plugins-bad ? null
 , libnotify ? null
-, gnome3 ? null
+, gnome ? null
 , gtk3 ? null
 , enableUsb ? true
 , enablePacketSocket ? true
@@ -26,7 +26,7 @@ in
   assert enableGstPlugin -> lib.all (pkg: pkg != null) [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ];
   assert enableViewer -> enableGstPlugin;
   assert enableViewer -> libnotify != null;
-  assert enableViewer -> gnome3 != null;
+  assert enableViewer -> gnome != null;
   assert enableViewer -> gtk3 != null;
   assert enableViewer -> gstreamerAtLeastVersion1;
 
@@ -56,7 +56,7 @@ in
       ++ lib.optional enableUsb libusb1
       ++ lib.optional enablePacketSocket audit
       ++ lib.optionals (enableViewer || enableGstPlugin) [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]
-      ++ lib.optionals (enableViewer) [ libnotify gtk3 gnome3.adwaita-icon-theme ];
+      ++ lib.optionals (enableViewer) [ libnotify gtk3 gnome.adwaita-icon-theme ];
 
     preAutoreconf = "./autogen.sh";
 
diff --git a/nixpkgs/pkgs/development/libraries/armadillo/default.nix b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
index 22264fe01f30..9e81ce0c6c8f 100644
--- a/nixpkgs/pkgs/development/libraries/armadillo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "10.3.0";
+  version = "10.5.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "sha256-qx7/+lr5AAChGhmjkwL9+8XEq/b6tXipvQ6clc+B5Mc=";
+    sha256 = "sha256-lq1uHLzyjz0cH/ly3ixA2t3b12gyVrrVAtPEY9L2TN8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix b/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
index 8a9074ccb904..a13ebf281934 100644
--- a/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames
+{ stdenv, lib, fetchurl, fetchFromGitHub, fixDarwinDylibNames
 , autoconf, boost, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4
-, perl, python3, rapidjson, re2, snappy, thrift, utf8proc, which, zlib, zstd
+, perl, python3, rapidjson, re2, snappy, thrift, utf8proc, which, xsimd
+, zlib, zstd
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
@@ -15,18 +16,18 @@ let
   parquet-testing = fetchFromGitHub {
     owner = "apache";
     repo = "parquet-testing";
-    rev = "e31fe1a02c9e9f271e4bfb8002d403c52f1ef8eb";
-    sha256 = "02f51dvx8w5mw0bx3hn70hkn55mn1m65kzdps1ifvga9hghpy0sh";
+    rev = "ddd898958803cb89b7156c6350584d1cda0fe8de";
+    sha256 = "0n16xqlpxn2ryp43w8pppxrbwmllx6sk4hv3ycgikfj57nd3ibc0";
   };
 
 in stdenv.mkDerivation rec {
   pname = "arrow-cpp";
-  version = "3.0.0";
+  version = "4.0.1";
 
   src = fetchurl {
     url =
       "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    sha256 = "0yp2b02wrc3s50zd56fmpz4nhhbihp0zw329v4zizaipwlxwrhkk";
+    sha256 = "0vl926i6jvsvj5vigdgqzp9v1i1h5zzj1abqr6qwc9drfsibzk3m";
   };
   sourceRoot = "apache-arrow-${version}/cpp";
 
@@ -90,6 +91,10 @@ in stdenv.mkDerivation rec {
     "-DARROW_VERBOSE_THIRDPARTY_BUILD=ON"
     "-DARROW_DEPENDENCY_SOURCE=SYSTEM"
     "-DARROW_DEPENDENCY_USE_SHARED=${if enableShared then "ON" else "OFF"}"
+    "-DARROW_COMPUTE=ON"
+    "-DARROW_CSV=ON"
+    "-DARROW_DATASET=ON"
+    "-DARROW_JSON=ON"
     "-DARROW_PLASMA=ON"
     # Disable Python for static mode because openblas is currently broken there.
     "-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}"
@@ -111,6 +116,8 @@ in stdenv.mkDerivation rec {
     "-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables
   ] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF";
 
+  ARROW_XSIMD_URL = xsimd.src;
+
   doInstallCheck = true;
   ARROW_TEST_DATA =
     if doInstallCheck then "${arrow-testing}/data" else null;
@@ -139,11 +146,11 @@ in stdenv.mkDerivation rec {
       --exclude-regex '^(${builtins.concatStringsSep "|" excludedTests})$'
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A  cross-language development platform for in-memory data";
     homepage = "https://arrow.apache.org/";
-    license = lib.licenses.asl20;
-    platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ tobim veprbl ];
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ tobim veprbl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/at-spi2-atk/default.nix b/nixpkgs/pkgs/development/libraries/at-spi2-atk/default.nix
index 1e5a1d3fd64c..7989cfd85777 100644
--- a/nixpkgs/pkgs/development/libraries/at-spi2-atk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/at-spi2-atk/default.nix
@@ -11,7 +11,7 @@
 , glib
 , libxml2
 
-, gnome3 # To pass updateScript
+, gnome # To pass updateScript
 }:
 
 stdenv.mkDerivation rec {
@@ -29,8 +29,9 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails with "No test data file provided"
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix b/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
index 7e1181cf3bdf..4e85c7a92a64 100644
--- a/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
@@ -14,23 +14,25 @@
 , libX11
 , libXtst # at-spi2-core can be build without X support, but due it is a client-side library, GUI-less usage is a very rare case
 , libXi
+, libXext
 
-, gnome3 # To pass updateScript
+, gnome # To pass updateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "at-spi2-core";
-  version = "2.38.0";
+  version = "2.40.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "hONsP+ZoYhM/X+Ipdyt2qiUm4Q3lAUo3ePL6Rs5VDaU=";
+    sha256 = "0miqn8531czy9ffpxnsxsnk12w3d6sqjda3qyix8kns2xsjf6rlz";
   };
 
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ meson ninja pkg-config gobject-introspection makeWrapper ];
-  buildInputs = [ libX11 libXtst libXi ];
+  # libXext is a transitive dependency of libXi
+  buildInputs = [ libX11 libXtst libXi libXext ];
   # In atspi-2.pc dbus-1 glib-2.0
   propagatedBuildInputs = [ dbus glib ];
 
@@ -43,8 +45,9 @@ stdenv.mkDerivation rec {
   mesonFlags = [ "-Ddbus_daemon=/run/current-system/sw/bin/dbus-daemon" ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/atk/default.nix b/nixpkgs/pkgs/development/libraries/atk/default.nix
index 53eb4459770d..7961211dc63e 100644
--- a/nixpkgs/pkgs/development/libraries/atk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/atk/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, meson, ninja, gettext, pkg-config, glib
-, fixDarwinDylibNames, gobject-introspection, gnome3
+, fixDarwinDylibNames, gobject-introspection, gnome
 }:
 
 let
@@ -34,8 +34,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/atkmm/default.nix b/nixpkgs/pkgs/development/libraries/atkmm/default.nix
index e9c63eb650f7..b357ed047259 100644
--- a/nixpkgs/pkgs/development/libraries/atkmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/atkmm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, atk, glibmm, pkg-config, gnome3 }:
+{ lib, stdenv, fetchurl, atk, glibmm, pkg-config, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "atkmm";
@@ -18,8 +18,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/aubio/default.nix b/nixpkgs/pkgs/development/libraries/aubio/default.nix
index b1c6c6396c86..e1f2d326879c 100644
--- a/nixpkgs/pkgs/development/libraries/aubio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aubio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, fftw, libjack2, libsamplerate
+{ lib, stdenv, fetchurl, alsa-lib, fftw, libjack2, libsamplerate
 , libsndfile, pkg-config, python3, wafHook
 }:
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config python3 wafHook ];
-  buildInputs = [ alsaLib fftw libjack2 libsamplerate libsndfile ];
+  buildInputs = [ alsa-lib fftw libjack2 libsamplerate libsndfile ];
 
   strictDeps = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/audio/rtaudio/default.nix b/nixpkgs/pkgs/development/libraries/audio/rtaudio/default.nix
index 03048abcc321..4f2f78f20cf0 100644
--- a/nixpkgs/pkgs/development/libraries/audio/rtaudio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/rtaudio/default.nix
@@ -6,7 +6,7 @@
 , cmake
 , pkg-config
 , alsaSupport ? stdenv.hostPlatform.isLinux
-, alsaLib
+, alsa-lib
 , pulseaudioSupport ? config.pulseaudio or stdenv.hostPlatform.isLinux
 , libpulseaudio
 , jackSupport ? true
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = lib.optional alsaSupport alsaLib
+  buildInputs = lib.optional alsaSupport alsa-lib
     ++ lib.optional pulseaudioSupport libpulseaudio
     ++ lib.optional jackSupport jack
     ++ lib.optional coreaudioSupport CoreAudio;
diff --git a/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix b/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix
index ccfafd36a8a3..6c75b9866e89 100644
--- a/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/rtmidi/default.nix
@@ -5,7 +5,7 @@
 , cmake
 , pkg-config
 , alsaSupport ? stdenv.hostPlatform.isLinux
-, alsaLib
+, alsa-lib
 , jackSupport ? true
 , jack
 , coremidiSupport ? stdenv.hostPlatform.isDarwin
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = lib.optional alsaSupport alsaLib
+  buildInputs = lib.optional alsaSupport alsa-lib
     ++ lib.optional jackSupport jack
     ++ lib.optionals coremidiSupport [ CoreMIDI CoreAudio CoreServices ];
 
diff --git a/nixpkgs/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix b/nixpkgs/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
index 45f5fcfe3a44..afecd561b727 100644
--- a/nixpkgs/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl , alsaLib, }:
+{ lib, stdenv, fetchurl , alsa-lib, }:
 
 stdenv.mkDerivation rec {
   pname = "zita-alsa-pcmi";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "12d7vdg74yh21w69qi0wg57iz4876j94qbiq09bvscih6xz9y78s";
   };
 
-  buildInputs = [ alsaLib ];
+  buildInputs = [ alsa-lib ];
 
   buildPhase = ''
     cd source
diff --git a/nixpkgs/pkgs/development/libraries/audiofile/default.nix b/nixpkgs/pkgs/development/libraries/audiofile/default.nix
index 88b1840955d3..54df6d7b2550 100644
--- a/nixpkgs/pkgs/development/libraries/audiofile/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audiofile/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchpatch, alsaLib, AudioUnit, CoreServices }:
+{ stdenv, lib, fetchurl, fetchpatch, alsa-lib, AudioUnit, CoreServices }:
 
 let
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     lib.optionals stdenv.isLinux [
-      alsaLib
+      alsa-lib
     ] ++ lib.optionals stdenv.isDarwin [
       CoreServices AudioUnit
     ];
diff --git a/nixpkgs/pkgs/development/libraries/avahi/default.nix b/nixpkgs/pkgs/development/libraries/avahi/default.nix
index dd54ba79db72..a52d1be566e6 100644
--- a/nixpkgs/pkgs/development/libraries/avahi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/avahi/default.nix
@@ -1,5 +1,6 @@
 { fetchurl, fetchpatch, lib, stdenv, pkg-config, libdaemon, dbus, perlPackages
 , expat, gettext, intltool, glib, libiconv, writeShellScriptBin, libevent
+, nixosTests
 , gtk3Support ? false, gtk3 ? null
 , qt4 ? null
 , qt4Support ? false
@@ -77,6 +78,11 @@ stdenv.mkDerivation rec {
     ln -s avahi-compat-howl.pc $out/lib/pkgconfig/howl.pc
   */
 
+  passthru.tests = {
+    smoke-test = nixosTests.avahi;
+    smoke-test-resolved = nixosTests.avahi-with-resolved;
+  };
+
   meta = with lib; {
     description = "mDNS/DNS-SD implementation";
     homepage    = "http://avahi.org";
diff --git a/nixpkgs/pkgs/development/libraries/avro-c/default.nix b/nixpkgs/pkgs/development/libraries/avro-c/default.nix
index a5acd7c7898b..95e3053b5340 100644
--- a/nixpkgs/pkgs/development/libraries/avro-c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/avro-c/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, cmake, fetchurl, pkg-config, jansson, zlib }:
 
 let
-  version = "1.9.1";
+  version = "1.10.2";
 in stdenv.mkDerivation {
   pname = "avro-c";
   inherit version;
 
   src = fetchurl {
     url = "mirror://apache/avro/avro-${version}/c/avro-c-${version}.tar.gz";
-    sha256 = "0hj6w1w5mqkhnhkvjc0zz5njnnrbcjv5ml4f8gq80wff2cgbrxvx";
+    sha256 = "sha256-rj+zK+xKBon1Rn4JIBGS7cbo80ITTvBq1FLKhw9Wt+I=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
index 057aad447d5e..3246c572962f 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
@@ -13,7 +13,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ aws-c-common openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ aws-c-common openssl ];
+
+  propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security ];
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix
index 988a27a58789..9913631e8548 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-common/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-common";
-  version = "0.5.4";
+  version = "0.5.11";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NH66WAOqAaMm/IIu8L5R7CUFhX56yTLH7mPY1Q4jDC4=";
+    sha256 = "sha256-4CYbL+ICabKvpfjlALJ0wRbuwgy+JKJnKqYbQFsHQsI=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -22,9 +22,6 @@ stdenv.mkDerivation rec {
     "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests
   ];
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin
-    "-Wno-nullability-extension -Wno-typedef-redefinition";
-
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix
index 337149e6f8e3..80112926ca61 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-io/default.nix
@@ -13,15 +13,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ aws-c-cal aws-c-common s2n-tls] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ aws-c-cal aws-c-common s2n-tls ];
+  propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security ];
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
     "-DCMAKE_MODULE_PATH=${aws-c-common}/lib/cmake"
   ];
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error";
-
   meta = with lib; {
     description = "AWS SDK for C module for IO and TLS";
     homepage = "https://github.com/awslabs/aws-c-io";
diff --git a/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix b/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix
index 7fd7b2fbbdda..2aa5ea015fda 100644
--- a/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -25,13 +25,22 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake curl ];
 
   buildInputs = [
-    curl openssl s2n-tls zlib
-    aws-c-cal aws-c-common aws-c-event-stream aws-c-io aws-checksums
+    curl openssl zlib
   ] ++ lib.optionals (stdenv.isDarwin &&
                         ((builtins.elem "text-to-speech" apis) ||
                          (builtins.elem "*" apis)))
          [ CoreAudio AudioToolbox ];
 
+  # propagation is needed for Security.framework to be available when linking
+  propagatedBuildInputs = [
+    aws-c-cal
+    aws-c-event-stream
+    aws-c-io
+    aws-c-common
+    aws-checksums
+    s2n-tls
+  ];
+
   cmakeFlags = [
     "-DBUILD_DEPS=OFF"
     "-DCMAKE_SKIP_BUILD_RPATH=OFF"
diff --git a/nixpkgs/pkgs/development/libraries/bamf/default.nix b/nixpkgs/pkgs/development/libraries/bamf/default.nix
index 95d54993e069..faee853808cc 100644
--- a/nixpkgs/pkgs/development/libraries/bamf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bamf/default.nix
@@ -3,7 +3,7 @@
 , autoconf
 , automake
 , libtool
-, gnome3
+, gnome
 , which
 , fetchgit
 , libgtop
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     automake
     dbus
     docbook_xsl
-    gnome3.gnome-common
+    gnome.gnome-common
     gobject-introspection
     gtk-doc
     libtool
diff --git a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
index 5a9bbd5a49db..c482b55c60b9 100644
--- a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "4.5.1";
+  version = "4.5.15";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1mm3v01jz2mp8vajsl45s23gw90zafbgg3br5n5yz03aan08f395";
+    sha256 = "sha256-yN9dfeJBuUxXfG7zDoawn2nKGsrhetBcXpGDmcekU20=";
   };
 
   # Do not build static libraries
diff --git a/nixpkgs/pkgs/development/libraries/beignet/default.nix b/nixpkgs/pkgs/development/libraries/beignet/default.nix
index 8e8e455e59a6..3d88c93784a8 100644
--- a/nixpkgs/pkgs/development/libraries/beignet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/beignet/default.nix
@@ -2,8 +2,8 @@
 , fetchFromGitHub
 , cmake
 , pkg-config
-, clang-unwrapped
-, llvm
+, libclang
+, libllvm
 , libdrm
 , libX11
 , libpthreadstubs
@@ -35,11 +35,11 @@ stdenv.mkDerivation rec {
     patchShebangs src/git_sha1.sh
   '';
 
-  cmakeFlags = [ "-DCLANG_LIBRARY_DIR=${clang-unwrapped}/lib" ];
+  cmakeFlags = [ "-DCLANG_LIBRARY_DIR=${libclang.lib}/lib" ];
 
   buildInputs = [
-    llvm
-    clang-unwrapped
+    libllvm
+    libclang
     libX11
     libXext
     libpthreadstubs
diff --git a/nixpkgs/pkgs/development/libraries/belcard/default.nix b/nixpkgs/pkgs/development/libraries/belcard/default.nix
index 36af06dfc55a..dbc85992ba4e 100644
--- a/nixpkgs/pkgs/development/libraries/belcard/default.nix
+++ b/nixpkgs/pkgs/development/libraries/belcard/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belcard";
-  version = "4.5.1";
+  version = "4.5.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "14hkgwr2a9zw44v1s8xscqxa2mwin06jsxpwb3hflh9mp16ymfzv";
+    sha256 = "sha256-+7vqTbg1QergWPx2LQ2wkVehOma6Ix02IfwnJTJ/E5I=";
   };
 
   buildInputs = [ bctoolbox belr ];
diff --git a/nixpkgs/pkgs/development/libraries/belle-sip/default.nix b/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
index 0f8a61bed244..4032734416e4 100644
--- a/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belle-sip";
-  version = "4.5.1";
+  version = "4.5.14";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0d1wf0jv9lb0s6r49i9gz5nrx8jzpkx558hywll7idma9d0mr61p";
+    sha256 = "sha256-L6dhgBJrzYgBuMNd2eMZJCqB/GIZjKipfn1SffxBFWw=";
   };
 
   nativeBuildInputs = [ antlr3_4 cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/belr/default.nix b/nixpkgs/pkgs/development/libraries/belr/default.nix
index 252ac3e80edc..90e27a6a9dc1 100644
--- a/nixpkgs/pkgs/development/libraries/belr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/belr/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belr";
-  version = "4.5.1";
+  version = "4.5.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0m0s7g8d25nbnafbl76w9v3x7q4jhsypxmz1gg80pj7j34xc2dsd";
+    sha256 = "sha256-TTfBOhnyyAvQe+HXfr2GkuDTx07cHLqcsssW0dA7GlQ=";
   };
 
   buildInputs = [ bctoolbox ];
diff --git a/nixpkgs/pkgs/development/libraries/boringssl/default.nix b/nixpkgs/pkgs/development/libraries/boringssl/default.nix
index f8c27f96dcc1..d51cf159598d 100644
--- a/nixpkgs/pkgs/development/libraries/boringssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/boringssl/default.nix
@@ -52,7 +52,6 @@ buildGoModule {
   meta = with lib; {
     description = "Free TLS/SSL implementation";
     homepage    = "https://boringssl.googlesource.com";
-    platforms   = platforms.all;
     maintainers = [ maintainers.thoughtpolice ];
     license = with licenses; [ openssl isc mit bsd3 ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/botan/2.0.nix b/nixpkgs/pkgs/development/libraries/botan/2.0.nix
index cb40e535b0c3..a486ba498205 100644
--- a/nixpkgs/pkgs/development/libraries/botan/2.0.nix
+++ b/nixpkgs/pkgs/development/libraries/botan/2.0.nix
@@ -1,9 +1,9 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  baseVersion = "2.17";
-  revision = "3";
-  sha256 = "121vn1aryk36cpks70kk4c4cfic5g0qs82bf92xap9258ijkn4kr";
+  baseVersion = "2.18";
+  revision = "0";
+  sha256 = "09z3fy31q1pvnvpy4fswrsl2aq8ksl94lbh5rl7b6nqc3qp8ar6c";
   postPatch = ''
     sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
   '';
diff --git a/nixpkgs/pkgs/development/libraries/botan/default.nix b/nixpkgs/pkgs/development/libraries/botan/default.nix
index 8bcc6aaa8efb..c494fa25f771 100644
--- a/nixpkgs/pkgs/development/libraries/botan/default.nix
+++ b/nixpkgs/pkgs/development/libraries/botan/default.nix
@@ -9,4 +9,8 @@ callPackage ./generic.nix (args // {
   postPatch = ''
     sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
   '';
+  knownVulnerabilities = [
+    # https://botan.randombit.net/security.html#id1
+    "2020-03-24: Side channel during CBC padding"
+  ];
 })
diff --git a/nixpkgs/pkgs/development/libraries/botan/generic.nix b/nixpkgs/pkgs/development/libraries/botan/generic.nix
index 33f9daf7b50f..2fc5abc2928a 100644
--- a/nixpkgs/pkgs/development/libraries/botan/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/botan/generic.nix
@@ -4,6 +4,7 @@
 , sourceExtension ? "tar.xz"
 , extraConfigureFlags ? ""
 , postPatch ? null
+, knownVulnerabilities ? [ ]
 , CoreServices
 , Security
 , ...
@@ -49,6 +50,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
     license = licenses.bsd2;
+    inherit knownVulnerabilities;
   };
   passthru.updateInfo.downloadPage = "http://files.randombit.net/botan/";
 }
diff --git a/nixpkgs/pkgs/development/libraries/box2d/default.nix b/nixpkgs/pkgs/development/libraries/box2d/default.nix
index 47a1c0917f07..1b6ede9b3101 100644
--- a/nixpkgs/pkgs/development/libraries/box2d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/box2d/default.nix
@@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
   version = "2.3.1";
 
   src = fetchurl {
-    url = "https://github.com/erincatto/Box2D/archive/v${version}.tar.gz";
-    sha256 = "0llpcifl8zbjbpxdwz87drd01m3lwnv82xb4av6kca1xn4w2gmkm";
+    url = "https://github.com/erincatto/box2d/archive/v${version}.tar.gz";
+    sha256 = "0p03ngsmyz0r5kbpiaq10ns4fxwkjvvawi8k6pfall46b93wizsq";
   };
 
-  sourceRoot = "Box2D-${version}/Box2D";
+  sourceRoot = "box2d-${version}/Box2D";
 
   nativeBuildInputs = [ cmake unzip pkg-config ];
   buildInputs = [ libGLU libGL freeglut libX11 xorgproto libXi ];
diff --git a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
index b698cf7b404d..5236c92527e2 100644
--- a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzrtp";
-  version = "4.5.1";
+  version = "4.5.10";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1a500ncgznwha0j3c27ak3p4jh5jm6fnnb531k7c0a4i91745agj";
+    sha256 = "sha256-8qlCTkiRKMDODKMsa52pskBJ7pjqCDYkUJDb/5gFoKg=";
   };
 
   buildInputs = [ bctoolbox sqlite ];
diff --git a/nixpkgs/pkgs/development/libraries/caf/default.nix b/nixpkgs/pkgs/development/libraries/caf/default.nix
index a5baef8af1ed..60281e7e0c9f 100644
--- a/nixpkgs/pkgs/development/libraries/caf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/caf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "actor-framework";
-  version = "0.18.1";
+  version = "0.18.3";
 
   src = fetchFromGitHub {
     owner = "actor-framework";
     repo = "actor-framework";
     rev = version;
-    sha256 = "sha256-tRR+YFI/Ikf4rov4dzt59nDqaooALNspKEQehHP6sKU=";
+    sha256 = "sha256-9oQVsfh2mUVr64PjNXYD1wRBNJ8dCLO9eI5WnZ1SSww=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/cairomm/1.16.nix b/nixpkgs/pkgs/development/libraries/cairomm/1.16.nix
new file mode 100644
index 000000000000..df9b8572ad0f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/cairomm/1.16.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, lib
+, fetchurl
+, boost
+, meson
+, ninja
+, pkg-config
+, cairo
+, fontconfig
+, libsigcxx30
+, ApplicationServices
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cairomm";
+  version = "1.16.1";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://www.cairographics.org/releases/${pname}-${version}.tar.xz";
+    sha256 = "sha256-b2Bg2OmN1Lis/uIpX92904z0h8B8JqrY0ag7ub/0osY=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost # for tests
+    fontconfig
+  ] ++ lib.optionals stdenv.isDarwin [
+    ApplicationServices
+  ];
+
+  propagatedBuildInputs = [
+    cairo
+    libsigcxx30
+  ];
+
+  mesonFlags = [
+    "-Dbuild-tests=true"
+    "-Dboost-shared=true"
+  ];
+
+  # Meson is no longer able to pick up Boost automatically.
+  # https://github.com/NixOS/nixpkgs/issues/86131
+  BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
+  BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
+
+  # Tests fail on Darwin, possibly because of sandboxing.
+  doCheck = !stdenv.isDarwin;
+
+  meta = with lib; {
+    description = "A 2D graphics library with support for multiple output devices";
+    longDescription = ''
+      Cairo is a 2D graphics library with support for multiple output
+      devices.  Currently supported output targets include the X
+      Window System, Quartz, Win32, image buffers, PostScript, PDF,
+      and SVG file output.  Experimental backends include OpenGL
+      (through glitz), XCB, BeOS, OS/2, and DirectFB.
+
+      Cairo is designed to produce consistent output on all output
+      media while taking advantage of display hardware acceleration
+      when available (e.g., through the X Render Extension).
+    '';
+    homepage = "https://www.cairographics.org/";
+    license = with licenses; [ lgpl2Plus mpl10 ];
+    maintainers = teams.gnome.members;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/catch/default.nix b/nixpkgs/pkgs/development/libraries/catch/default.nix
index 2aa5c788dc36..c89fbd477c96 100644
--- a/nixpkgs/pkgs/development/libraries/catch/default.nix
+++ b/nixpkgs/pkgs/development/libraries/catch/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "catch";
@@ -14,6 +14,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   cmakeFlags = [ "-DUSE_CPP14=ON" ];
 
+  patches = [
+    # https://github.com/catchorg/Catch2/pull/2151
+    (fetchpatch {
+      url = "https://github.com/catchorg/Catch2/commit/bb6d08323f23a39eb65dd86671e68f4f5d3f2d6c.patch";
+      sha256 = "1vhbzx84nrhhf9zlbl6h5zmg3r5w5v833ihlswsysb9wp2i4isc5";
+    })
+  ];
+
   doCheck = true;
   checkTarget = "test";
 
diff --git a/nixpkgs/pkgs/development/libraries/cereal/default.nix b/nixpkgs/pkgs/development/libraries/cereal/default.nix
index d2321175f8bd..958a92dec34e 100644
--- a/nixpkgs/pkgs/development/libraries/cereal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cereal/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
 stdenv.mkDerivation rec {
   pname = "cereal";
   version = "1.3.0";
@@ -12,7 +12,19 @@ stdenv.mkDerivation rec {
     sha256 = "0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p";
   };
 
-  cmakeFlagsArray = [ "-DJUST_INSTALL_CEREAL=yes" ];
+  patches = [
+    # https://nvd.nist.gov/vuln/detail/CVE-2020-11105
+    # serialized std::shared_ptr variables cannot always be expected to
+    # serialize back into their original values. This can have any number of
+    # consequences, depending on the context within which this manifests.
+    (fetchpatch {
+      name = "CVE-2020-11105.patch";
+      url = "https://github.com/USCiLab/cereal/commit/f27c12d491955c94583512603bf32c4568f20929.patch";
+      sha256 = "CIkbJ7bAN0MXBhTXQdoQKXUmY60/wQvsdn99FaWt31w=";
+    })
+  ];
+
+  cmakeFlags = [ "-DJUST_INSTALL_CEREAL=yes" ];
 
   meta = with lib; {
     description = "A header-only C++11 serialization library";
diff --git a/nixpkgs/pkgs/development/libraries/cgreen/default.nix b/nixpkgs/pkgs/development/libraries/cgreen/default.nix
new file mode 100644
index 000000000000..5a1dd2d26400
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/cgreen/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "cgreen";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "cgreen-devs";
+    repo = "cgreen";
+    rev = version;
+    sha256 = "JEpvkM0EZiiQUZRngICNxHbNqS/qjqkEdMPckGbdWac=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    homepage = "https://github.com/cgreen-devs/cgreen";
+    description = "The Modern Unit Test and Mocking Framework for C and C++";
+    license = licenses.isc;
+    maintainers = [ maintainers.nichtsfrei ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/chmlib/default.nix b/nixpkgs/pkgs/development/libraries/chmlib/default.nix
index 8971acc7eddf..6e21984eb1da 100644
--- a/nixpkgs/pkgs/development/libraries/chmlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/chmlib/default.nix
@@ -12,10 +12,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  meta = {
+  meta = with lib; {
     homepage = "http://www.jedrea.com/chmlib";
-    license = lib.licenses.lgpl2;
+    license = licenses.lgpl2;
     description = "A library for dealing with Microsoft ITSS/CHM format files";
-    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux"];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/cjose/default.nix b/nixpkgs/pkgs/development/libraries/cjose/default.nix
new file mode 100644
index 000000000000..57b5c6c1b8bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/cjose/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, doxygen
+, check
+, jansson
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cjose";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "cisco";
+    repo = "cjose";
+    rev = version;
+    sha256 = "1msyjwmylb5c7jc16ryx3xb9cdwx682ihsm0ni766y6dfwx8bkhp";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
+  buildInputs = [ jansson openssl ];
+  checkInputs = [ check ];
+
+  configureFlags = [
+    "--with-jansson=${jansson}"
+    "--with-openssl=${openssl.dev}"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/cisco/cjose";
+    changelog = "https://github.com/cisco/cjose/blob/${version}/CHANGELOG.md";
+    description = "C library for Javascript Object Signing and Encryption";
+    license = licenses.mit;
+    maintainers = with maintainers; [ midchildan ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/clanlib/default.nix b/nixpkgs/pkgs/development/libraries/clanlib/default.nix
new file mode 100644
index 000000000000..0a0f976e0dc4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/clanlib/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, libGL
+, libpng
+, pkg-config
+, xorg
+, file
+, freetype
+, fontconfig
+, xlibsWrapper
+, alsa-lib
+, libXrender
+}:
+
+stdenv.mkDerivation rec {
+  pname = "clanlib";
+  version = "4.1.0";
+
+  src = fetchFromGitHub {
+    repo = "ClanLib";
+    owner = "sphair";
+    rev = "v${version}";
+    sha256 = "sha256-SVsLWcTP+PCIGDWLkadMpJPj4coLK9dJrW4sc2+HotE=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+  ];
+  buildInputs = [
+    libGL
+    libpng
+    xorg.xorgproto
+    freetype
+    fontconfig
+    xlibsWrapper
+    alsa-lib
+    libXrender
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/sphair/ClanLib";
+    description = "A cross platform toolkit library with a primary focus on game creation";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nixinator ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/clutter-gst/default.nix b/nixpkgs/pkgs/development/libraries/clutter-gst/default.nix
index 166d4e12c252..e4752c7748be 100644
--- a/nixpkgs/pkgs/development/libraries/clutter-gst/default.nix
+++ b/nixpkgs/pkgs/development/libraries/clutter-gst/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, pkg-config, clutter, gtk3, glib, cogl, gnome3, gdk-pixbuf }:
+{ fetchurl, lib, stdenv, pkg-config, clutter, gtk3, glib, cogl, gnome, gdk-pixbuf }:
 
 stdenv.mkDerivation rec {
   pname = "clutter-gst";
@@ -17,8 +17,9 @@ stdenv.mkDerivation rec {
   postBuild = "rm -rf $out/share/gtk-doc";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
 
     license = lib.licenses.lgpl2Plus;
 
-    maintainers = with lib.maintainers; [ lethalman ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.gnu ++ lib.platforms.linux;  # arbitrary choice
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/clutter-gtk/default.nix b/nixpkgs/pkgs/development/libraries/clutter-gtk/default.nix
index 0dfb8c7b9df0..7573da66c0d8 100644
--- a/nixpkgs/pkgs/development/libraries/clutter-gtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/clutter-gtk/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, lib, stdenv, pkg-config, meson, ninja
-, gobject-introspection, clutter, gtk3, gnome3 }:
+, gobject-introspection, clutter, gtk3, gnome }:
 
 let
   pname = "clutter-gtk";
@@ -22,8 +22,9 @@ stdenv.mkDerivation rec {
   postBuild = "rm -rf $out/share/gtk-doc";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
     description = "Clutter-GTK";
     homepage = "http://www.clutter-project.org/";
     license = lib.licenses.lgpl2Plus;
-    maintainers = with lib.maintainers; [ lethalman ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.gnu ++ lib.platforms.linux;  # arbitrary choice
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/clutter/default.nix b/nixpkgs/pkgs/development/libraries/clutter/default.nix
index 002db004dc19..aacb8581c8fc 100644
--- a/nixpkgs/pkgs/development/libraries/clutter/default.nix
+++ b/nixpkgs/pkgs/development/libraries/clutter/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, libGLU, libGL, libX11, libXext, libXfixes
 , libXdamage, libXcomposite, libXi, libxcb, cogl, pango, atk, json-glib
-, gobject-introspection, gtk3, gnome3, libinput, libgudev, libxkbcommon
+, gobject-introspection, gtk3, gnome, libinput, libgudev, libxkbcommon
 }:
 
 let
@@ -29,8 +29,9 @@ stdenv.mkDerivation rec {
   #doCheck = true; # no tests possible without a display
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl2Plus;
     homepage = "http://www.clutter-project.org/";
 
-    maintainers = with lib.maintainers; [ lethalman ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.mesaPlatforms;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/cogl/default.nix b/nixpkgs/pkgs/development/libraries/cogl/default.nix
index 8fd152072879..75ec2a2acc7f 100644
--- a/nixpkgs/pkgs/development/libraries/cogl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cogl/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, pkg-config, libGL, glib, gdk-pixbuf, xorg, libintl
-, pangoSupport ? true, pango, cairo, gobject-introspection, wayland, gnome3
+, pangoSupport ? true, pango, cairo, gobject-introspection, wayland, gnome
 , mesa, automake, autoconf
 , gstreamerSupport ? true, gst_all_1 }:
 
@@ -59,8 +59,9 @@ in stdenv.mkDerivation rec {
   #doCheck = true; # all tests fail (no idea why)
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix b/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix
index 3121741ca024..9dcfb79f3e3b 100644
--- a/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/coordgenlibs/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "coordgenlibs";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "schrodinger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BcDqrOotqRPMnzvfjzbeCf8gT3yQzKihywKrpah1D7w=";
+    sha256 = "sha256-uperQnJ1Q+s15pAlg/f4XR5VJI484ygZ0F6pMvcVDv8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix b/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
index 1d666d4d9843..de7bf560d3ea 100644
--- a/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
@@ -1,32 +1,35 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , cppunit
 }:
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.10.2";
+  version = "5.10.4";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hPcmO2nzXCuhU2GjE0B1Bz9OkJ4mY2txFr+cWGaw1bo=";
+    sha256 = "sha256-pZh/NbTzQR2kjMeauv1HcRn0hDBaCNRbaZ3+1qs5rxU=";
   };
 
   nativeBuildInputs = [ cmake ];
   checkInputs = [ cppunit ];
   # Otherwise, tests fail since the resulting shared object libc++utilities.so is only available in PWD of the make files
-  checkFlagsArray = [ "LD_LIBRARY_PATH=$(PWD)" ];
+  preCheck = ''
+    checkFlagsArray+=(
+      "LD_LIBRARY_PATH=$PWD"
+    )
+  '';
   doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/Martchus/cpp-utilities";
     description = "Common C++ classes and routines used by @Martchus' applications featuring argument parser, IO and conversion utilities";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/ctpl/default.nix b/nixpkgs/pkgs/development/libraries/ctpl/default.nix
index 69380c2eeeb4..634c2cf44cf4 100644
--- a/nixpkgs/pkgs/development/libraries/ctpl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ctpl/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     homepage = "http://ctpl.tuxfamily.org/";
     description = "Template engine library written in C";
     platforms = platforms.linux;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
     license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/cxxopts/default.nix b/nixpkgs/pkgs/development/libraries/cxxopts/default.nix
index 1df570d7d290..855a9eef8ea0 100644
--- a/nixpkgs/pkgs/development/libraries/cxxopts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cxxopts/default.nix
@@ -12,11 +12,17 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = lib.optional enableUnicodeHelp [ icu.dev ];
-  cmakeFlags = lib.optional enableUnicodeHelp [ "-DCXXOPTS_USE_UNICODE_HELP=TRUE" ];
+  cmakeFlags = [ "-DCXXOPTS_BUILD_EXAMPLES=OFF" ]
+    ++ lib.optional enableUnicodeHelp "-DCXXOPTS_USE_UNICODE_HELP=TRUE"
+    # Due to -Wsuggest-override, remove when cxxopts is updated
+    ++ lib.optional stdenv.isDarwin "-DCXXOPTS_ENABLE_WARNINGS=OFF";
   nativeBuildInputs = [ cmake ] ++ lib.optional enableUnicodeHelp [ pkg-config ];
 
   doCheck = true;
 
+  # Conflict on case-insensitive filesystems.
+  dontUseCmakeBuildDir = true;
+
   meta = with lib; {
     homepage = "https://github.com/jarro2783/cxxopts";
     description = "Lightweight C++ GNU-style option parser library";
diff --git a/nixpkgs/pkgs/development/libraries/dbus/default.nix b/nixpkgs/pkgs/development/libraries/dbus/default.nix
index fd7df4d5ba37..1d1df0d24fc7 100644
--- a/nixpkgs/pkgs/development/libraries/dbus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dbus/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
       libICE
       libSM
     ] ++ lib.optional enableSystemd systemd
-    ++ lib.optionals (!stdenv.isDarwin) [ audit libapparmor ];
+    ++ lib.optionals stdenv.isLinux [ audit libapparmor ];
   # ToDo: optional selinux?
 
   configureFlags = [
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
     "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
     "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
   ] ++ lib.optional (!x11Support) "--without-x"
-  ++ lib.optionals (!stdenv.isDarwin) [ "--enable-apparmor" "--enable-libaudit" ];
+  ++ lib.optionals stdenv.isLinux [ "--enable-apparmor" "--enable-libaudit" ];
 
   # Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11
   # (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands.
@@ -116,7 +116,7 @@ stdenv.mkDerivation rec {
     description = "Simple interprocess messaging system";
     homepage = "http://www.freedesktop.org/wiki/Software/dbus/";
     license = licenses.gpl2Plus; # most is also under AFL-2.1
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/dconf/default.nix b/nixpkgs/pkgs/development/libraries/dconf/default.nix
index 6834a605f1a5..550940f5a1e7 100644
--- a/nixpkgs/pkgs/development/libraries/dconf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dconf/default.nix
@@ -9,7 +9,7 @@
 , glib
 , bash-completion
 , dbus
-, gnome3
+, gnome
 , gtk-doc
 , docbook-xsl-nons
 , docbook_xml_dtd_42
@@ -19,14 +19,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "dconf";
-  version = "0.38.0";
+  version = "0.40.0";
 
   outputs = [ "out" "lib" "dev" ]
     ++ lib.optional (!isCross) "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0n2gqkp6d61h7gnnp2xnxp6w5wcl7w9ay58krrf729qd6d0hzxj5";
+    sha256 = "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg";
   };
 
   nativeBuildInputs = [
@@ -61,8 +61,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/dee/default.nix b/nixpkgs/pkgs/development/libraries/dee/default.nix
index 3d46028ec438..a023d164d8c3 100644
--- a/nixpkgs/pkgs/development/libraries/dee/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dee/default.nix
@@ -62,6 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://launchpad.net/dee";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ abbradar worldofpeace ];
+    maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/doctest/default.nix b/nixpkgs/pkgs/development/libraries/doctest/default.nix
index 233e01e03803..c8e31d43e953 100644
--- a/nixpkgs/pkgs/development/libraries/doctest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/doctest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "doctest";
-  version = "2.4.4";
+  version = "2.4.6";
 
   src = fetchFromGitHub {
     owner = "onqtam";
     repo = "doctest";
     rev = version;
-    hash = "sha256-NqXC5948prTCi4gsaR8bJPBTrmH+rJbHsGvwkJlpjXY=";
+    sha256 = "14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/dqlite/default.nix b/nixpkgs/pkgs/development/libraries/dqlite/default.nix
index 8f67259989b8..83e63abb3c6b 100644
--- a/nixpkgs/pkgs/development/libraries/dqlite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dqlite/default.nix
@@ -1,25 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, file, libco-canonical
-, libuv, raft-canonical, sqlite-replication }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, file, libuv
+, raft-canonical, sqlite-replication }:
 
 stdenv.mkDerivation rec {
   pname = "dqlite";
-  version = "1.5.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h7ypigj1b6xbspzc35y89jkp84v8rqiv9qgkyqlqylr7mcw952a";
+    sha256 = "sha256-lCMTmKnDv/fb5fP/Ch8AwpuNfmR+gecxeIweO6hHj5U=";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkg-config ];
   buildInputs = [
-    libco-canonical.dev
     libuv
     raft-canonical.dev
     sqlite-replication
   ];
 
+  enableParallelBuilding = true;
+
   # tests fail
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/libraries/drumstick/default.nix b/nixpkgs/pkgs/development/libraries/drumstick/default.nix
index 21572e52e235..ba3768227f32 100644
--- a/nixpkgs/pkgs/development/libraries/drumstick/default.nix
+++ b/nixpkgs/pkgs/development/libraries/drumstick/default.nix
@@ -1,19 +1,18 @@
 { lib, stdenv, fetchurl
-, cmake, docbook_xml_dtd_45, docbook_xsl, doxygen, pkg-config, wrapQtAppsHook
-, alsaLib, fluidsynth, qtbase, qtsvg, libpulseaudio
+, cmake, docbook_xml_dtd_45, docbook_xsl, doxygen, graphviz-nox, pkg-config, qttools, wrapQtAppsHook
+, alsa-lib, fluidsynth, qtbase, qtsvg, libpulseaudio
 }:
 
 stdenv.mkDerivation rec {
   pname = "drumstick";
-  version = "1.1.3";
+  version = "2.2.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/drumstick/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1n9wvg79yvkygrkc8xd8pgrd3d7hqmr7gh24dccf0px23lla9b3m";
+    sha256 = "sha256-UxXUEkO5qXPIjw99BdkAspikR9Nlu32clf28cTyf+W4=";
   };
 
   patches = [
-    ./drumstick-fluidsynth.patch
     ./drumstick-plugins.patch
   ];
 
@@ -24,15 +23,19 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "man" ];
 
   nativeBuildInputs = [
-    cmake docbook_xml_dtd_45 docbook_xml_dtd_45 docbook_xsl doxygen pkg-config wrapQtAppsHook
+    cmake docbook_xml_dtd_45 docbook_xml_dtd_45 docbook_xsl doxygen graphviz-nox pkg-config qttools wrapQtAppsHook
   ];
 
   buildInputs = [
-    alsaLib fluidsynth libpulseaudio qtbase qtsvg
+    alsa-lib fluidsynth libpulseaudio qtbase qtsvg
+  ];
+
+  cmakeFlags = [
+    "-DUSE_DBUS=ON"
   ];
 
   meta = with lib; {
-    maintainers = with maintainers; [ solson ];
+    maintainers = [];
     description = "MIDI libraries for Qt5/C++";
     homepage = "http://drumstick.sourceforge.net/";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch b/nixpkgs/pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch
deleted file mode 100644
index b8cdf63fb649..000000000000
--- a/nixpkgs/pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-It works with fluidsynth 2.
-
-Backported from r400: https://sourceforge.net/p/drumstick/code/400/
-
---- a/library/rt-backends/CMakeLists.txt
-+++ b/library/rt-backends/CMakeLists.txt
-@@ -54,1 +54,1 @@ if (PKG_CONFIG_FOUND)
--    pkg_check_modules(FLUIDSYNTH fluidsynth>=1.1.1 fluidsynth<=1.1.11)
-+    pkg_check_modules(FLUIDSYNTH fluidsynth>=1.1.1)
diff --git a/nixpkgs/pkgs/development/libraries/drumstick/drumstick-plugins.patch b/nixpkgs/pkgs/development/libraries/drumstick/drumstick-plugins.patch
index cbb0a0e34896..59711120a8e8 100644
--- a/nixpkgs/pkgs/development/libraries/drumstick/drumstick-plugins.patch
+++ b/nixpkgs/pkgs/development/libraries/drumstick/drumstick-plugins.patch
@@ -1,12 +1,14 @@
 Make it look for its plugin in its own installation directory.
 
+Without this vmpk fails to start with "Unable to initialize all MIDI drivers".
+
 --- a/library/rt/backendmanager.cpp
 +++ b/library/rt/backendmanager.cpp
 @@ -159,6 +159,7 @@ namespace rt {
          foreach(const QString& path, QCoreApplication::libraryPaths()) {
              d->appendDir( path + QDir::separator() + QSTR_DRUMSTICK, result );
          }
-+        d->appendDir( "@out@/lib/drumstick", result );
++        d->appendDir( "@out@/lib/" + QSTR_DRUMSTICK, result );
          return result;
      }
  
diff --git a/nixpkgs/pkgs/development/libraries/dssi/default.nix b/nixpkgs/pkgs/development/libraries/dssi/default.nix
index 9ce487b1b03a..ca7ea10afffa 100644
--- a/nixpkgs/pkgs/development/libraries/dssi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dssi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ladspaH, libjack2, liblo, alsaLib, qt4, libX11, libsndfile, libSM
+{ lib, stdenv, fetchurl, ladspaH, libjack2, liblo, alsa-lib, qt4, libX11, libsndfile, libSM
 , libsamplerate, libtool, autoconf, automake, xorgproto, libICE, pkg-config
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ ladspaH libjack2 liblo alsaLib qt4 libX11 libsndfile libSM
+    [ ladspaH libjack2 liblo alsa-lib qt4 libX11 libsndfile libSM
       libsamplerate libtool autoconf automake xorgproto libICE pkg-config
     ];
 
diff --git a/nixpkgs/pkgs/development/libraries/editline/default.nix b/nixpkgs/pkgs/development/libraries/editline/default.nix
index 82f65082b946..2b2ffbea31e2 100644
--- a/nixpkgs/pkgs/development/libraries/editline/default.nix
+++ b/nixpkgs/pkgs/development/libraries/editline/default.nix
@@ -1,20 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, nix-update-script, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "editline";
-  version = "1.17.0";
+  version = "1.17.1";
   src = fetchFromGitHub {
     owner = "troglobit";
     repo = "editline";
     rev = version;
-    sha256 = "0vjm42y6zjmi6hdcng0l7wkksw7s50agbmk5dxsc3292q8mvq8v6";
+    sha256 = "sha256-0FeDUVCUahbweH24nfaZwa7j7lSfZh1TnQK7KYqO+3g=";
   };
 
   patches = [
     (fetchpatch {
-      name = "fix-for-multiline-as-one-line.patch";
-      url = "https://github.com/troglobit/editline/commit/ceee039cfc819c8e09eebbfca192091b0cf8df75.patch";
-      sha256 = "149fmfva05ghzwkd0bq1sahdbkys3qyyky28ssqb5jq7q9hw3ddm";
+      name = "fix-for-home-end-in-tmux.patch";
+      url = "https://github.com/troglobit/editline/commit/265c1fb6a0b99bedb157dc7c320f2c9629136518.patch";
+      sha256 = "sha256-9fhQH0hT8BcykGzOUoT18HBtWjjoXnePSGDJQp8GH30=";
     })
   ];
 
@@ -22,11 +22,15 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" "man" "doc" ];
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
-    homepage = "https://troglobit.com/editline.html";
+    homepage = "https://troglobit.com/projects/editline/";
     description = "A readline() replacement for UNIX without termcap (ncurses)";
     license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ dtzWill ];
+    maintainers = with maintainers; [ dtzWill oxalica ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/embree/default.nix b/nixpkgs/pkgs/development/libraries/embree/default.nix
index b5baab5972aa..3350c046a51a 100644
--- a/nixpkgs/pkgs/development/libraries/embree/default.nix
+++ b/nixpkgs/pkgs/development/libraries/embree/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "embree";
-  version = "3.12.2";
+  version = "3.13.0";
 
   src = fetchFromGitHub {
     owner = "embree";
     repo = "embree";
     rev = "v${version}";
-    sha256 = "sha256-aIZAkpAGvE332HxT4rR+rykww/ZLq2qKGLKiZTWyHCk=";
+    sha256 = "sha256-w93GYslQRg0rvguMKv/CuT3+JzIis2CRbY9jYUFKWOM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/ethash/default.nix b/nixpkgs/pkgs/development/libraries/ethash/default.nix
index 2c9eb3ca4444..dcb10b8ba08e 100644
--- a/nixpkgs/pkgs/development/libraries/ethash/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ethash/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     description = "PoW algorithm for Ethereum 1.0 based on Dagger-Hashimoto";
     homepage = "https://github.com/ethereum/ethash";
     platforms = platforms.unix;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/exempi/default.nix b/nixpkgs/pkgs/development/libraries/exempi/default.nix
index 356959b429f2..332de1595a06 100644
--- a/nixpkgs/pkgs/development/libraries/exempi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/exempi/default.nix
@@ -11,12 +11,14 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-boost=${boost.dev}"
+  ] ++ lib.optionals (!doCheck) [
+    "--enable-unittest=no"
   ];
 
   buildInputs = [ expat zlib boost ]
     ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.CoreServices ];
 
-  doCheck = stdenv.isLinux;
+  doCheck = stdenv.isLinux && stdenv.is64bit;
 
   meta = with lib; {
     description = "An implementation of XMP (Adobe's Extensible Metadata Platform)";
diff --git a/nixpkgs/pkgs/development/libraries/fcft/default.nix b/nixpkgs/pkgs/development/libraries/fcft/default.nix
index e9cd3571c769..c431e6e2b3cf 100644
--- a/nixpkgs/pkgs/development/libraries/fcft/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fcft/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, pkg-config, meson, ninja, scdoc
+{ stdenv, lib, fetchzip, pkg-config, meson, ninja, scdoc
 , freetype, fontconfig, pixman, tllist, check
 , withHarfBuzz ? true
 , harfbuzz
@@ -6,12 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fcft";
-  version = "2.3.3";
+  version = "2.4.0";
 
-  src = fetchgit {
-    url = "https://codeberg.org/dnkl/fcft.git";
-    rev = version;
-    sha256 = "0314r038jl17hrhc9nrbx30jk0pz8ckbdnizws4r46b1rf4h0b1f";
+  src = fetchzip {
+    url = "https://codeberg.org/dnkl/fcft/archive/${version}.tar.gz";
+    sha256 = "0z1r0s5s3dr1g4f3ylxfcmy3xb0ax02rw9mg7z8hzh0gxazrpndx";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja scdoc ];
diff --git a/nixpkgs/pkgs/development/libraries/fcl/default.nix b/nixpkgs/pkgs/development/libraries/fcl/default.nix
new file mode 100644
index 000000000000..33a600805846
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/fcl/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, eigen, libccd, octomap }:
+
+stdenv.mkDerivation rec {
+  pname = "fcl";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "flexible-collision-library";
+    repo = pname;
+    rev = version;
+    sha256 = "1i1sd0fsvk5d529aw8aw29bsmymqgcmj3ci35sz58nzp2wjn0l5d";
+  };
+
+  patches = [
+    # Disable SSE on Emscripten (required for the next patch to apply cleanly)
+    # https://github.com/flexible-collision-library/fcl/pull/470
+    (fetchpatch {
+      url = "https://github.com/flexible-collision-library/fcl/commit/83a1af61ba4efa81ec0b552b3121100044a8cf46.patch";
+      sha256 = "0bbkv4xpkl3c0i8qdlkghj6qkybrrd491c8rd2cqnxfgspcd40p0";
+    })
+    # Detect SSE support to fix building on ARM
+    # https://github.com/flexible-collision-library/fcl/pull/506
+    (fetchpatch {
+      url = "https://github.com/flexible-collision-library/fcl/commit/cbfe1e9405aa68138ed1a8f33736429b85500dea.patch";
+      sha256 = "18qip8gwhm3fvbz1cvzf625rh5msq8m4669ld1m60fv6z50clr9h";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ eigen libccd octomap ];
+
+  outputs = [ "out" "dev" ];
+
+  meta = with lib; {
+    description = "Flexible Collision Library";
+    longDescription = ''
+      FCL is a library for performing three types of proximity queries on a
+      pair of geometric models composed of triangles.
+    '';
+    homepage = "https://github.com/flexible-collision-library/fcl";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix b/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
index d861d25e67a7..98d8ef434e06 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, ffmpeg, addOpenGLRunpath, fetchurl, fetchpatch, pkg-config, perl, texinfo, yasm
+{ lib, stdenv, ffmpeg, addOpenGLRunpath, pkg-config, perl, texinfo, yasm
 /*
  *  Licensing options (yes some are listed twice, filters and such are not listed)
  */
@@ -47,7 +47,7 @@
 /*
  *  External libraries options
  */
-, alsaLib ? null # Alsa in/output support
+, alsa-lib ? null # Alsa in/output support
 #, avisynth ? null # Support for reading AviSynth scripts
 , bzip2 ? null
 , celt ? null # CELT decoder
@@ -126,13 +126,14 @@
 , vid-stab ? null # Video stabilization
 #, vo-aacenc ? null # AAC encoder
 , vo-amrwbenc ? null # AMR-WB encoder
-, wavpack ? null # Wavpack encoder
 , x264 ? null # H.264/AVC encoder
 , x265 ? null # H.265/HEVC encoder
 , xavs ? null # AVS encoder
 , xvidcore ? null # Xvid encoder, native encoder exists
 , zeromq4 ? null # Message passing
 , zlib ? null
+, vulkan-loader ? null
+, glslang ? null
 #, zvbi ? null # Teletext support
 /*
  *  Developer options
@@ -244,15 +245,6 @@ stdenv.mkDerivation rec {
   pname = "ffmpeg-full";
   inherit (ffmpeg) src version;
 
-  # this should go away in the next release
-  patches = [
-    # Patch ffmpeg for svt-av1 until version 4.4
-    (fetchpatch {
-      url = "https://raw.githubusercontent.com/AOMediaCodec/SVT-AV1/v0.8.4/ffmpeg_plugin/0001-Add-ability-for-ffmpeg-to-run-svt-av1.patch";
-      sha256 = "1p4g8skr5gjw5h1648j7qrks81zx49lrnx9g0p81qgnrvxc2wwx0";
-    })
-  ];
-
   prePatch = ''
     patchShebangs .
   '' + lib.optionalString stdenv.isDarwin ''
@@ -280,7 +272,6 @@ stdenv.mkDerivation rec {
     # On some ARM platforms --enable-thumb
     "--enable-shared"
     (enableFeature true "pic")
-    (if stdenv.cc.isClang then "--cc=clang" else null)
     (enableFeature smallBuild "small")
     (enableFeature runtimeCpuDetectBuild "runtime-cpudetect")
     (enableFeature enableLto "lto")
@@ -405,13 +396,14 @@ stdenv.mkDerivation rec {
     (enableFeature (vid-stab != null && gplLicensing) "libvidstab") # Actual min. version 2.0
     #(enableFeature (vo-aacenc != null && version3Licensing) "libvo-aacenc")
     (enableFeature (vo-amrwbenc != null && version3Licensing) "libvo-amrwbenc")
-    (enableFeature (wavpack != null) "libwavpack")
     (enableFeature (x264 != null && gplLicensing) "libx264")
     (enableFeature (x265 != null && gplLicensing) "libx265")
     (enableFeature (xavs != null && gplLicensing) "libxavs")
     (enableFeature (xvidcore != null && gplLicensing) "libxvid")
     (enableFeature (zeromq4 != null) "libzmq")
     (enableFeature (zlib != null) "zlib")
+    (enableFeature (isLinux && vulkan-loader != null) "vulkan")
+    (enableFeature (isLinux && vulkan-loader != null && glslang != null) "libglslang")
     #(enableFeature (zvbi != null && gplLicensing) "libzvbi")
     /*
      * Developer flags
@@ -423,6 +415,9 @@ stdenv.mkDerivation rec {
   ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "--cross-prefix=${stdenv.cc.targetPrefix}"
     "--enable-cross-compile"
+  ] ++ optionals stdenv.cc.isClang [
+    "--cc=clang"
+    "--cxx=clang++"
   ];
 
   nativeBuildInputs = [ addOpenGLRunpath perl pkg-config texinfo yasm ];
@@ -432,13 +427,13 @@ stdenv.mkDerivation rec {
     libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa
     libogg libopus librsvg libssh libtheora libvdpau libvorbis libvpx libwebp libX11
     libxcb libXv libXext xz openal openjpeg libpulseaudio rav1e svt-av1 rtmpdump opencore-amr
-    samba SDL2 soxr speex srt vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
+    samba SDL2 soxr speex srt vid-stab vo-amrwbenc x264 x265 xavs xvidcore
     zeromq4 zlib
   ] ++ optionals openglExtlib [ libGL libGLU ]
     ++ optionals nonfreeLicensing [ fdk_aac openssl ]
     ++ optional ((isLinux || isFreeBSD) && libva != null) libva
     ++ optional (!isAarch64 && libvmaf != null && version3Licensing) libvmaf
-    ++ optionals isLinux [ alsaLib libraw1394 libv4l ]
+    ++ optionals isLinux [ alsa-lib libraw1394 libv4l vulkan-loader glslang ]
     ++ optional (isLinux && !isAarch64 && libmfx != null) libmfx
     ++ optional nvenc nv-codec-headers
     ++ optionals stdenv.isDarwin [ Cocoa CoreServices CoreAudio AVFoundation
@@ -465,6 +460,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
     homepage = "https://www.ffmpeg.org/";
+    changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${version}/Changelog";
     longDescription = ''
       FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
       mux, demux, stream, filter and play pretty much anything that humans and machines
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix
index 309cd2b3b356..6d94c2e9974b 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix
@@ -4,4 +4,7 @@ callPackage ./generic.nix (rec {
   version = "${branch}.17";
   branch = "2.8";
   sha256 = "05bnhvs2f82aq95z1wd3wr42sljdfq4kiyzqwhpji983mndx14vl";
+  knownVulnerabilities = [
+    "CVE-2021-30123"
+  ];
 } // args)
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix
index be341d588c1d..25c0a12f731a 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchpatch
+{ callPackage
 # Darwin frameworks
 , Cocoa, CoreMedia
 , ...
@@ -9,4 +9,7 @@ callPackage ./generic.nix (rec {
   branch = "3.4.8";
   sha256 = "1d0r4yja2dkkyhdwx1migq46gsrcbajiv66263a5sq5bfr9dqkch";
   darwinFrameworks = [ Cocoa CoreMedia ];
+  knownVulnerabilities = [
+    "CVE-2021-30123"
+  ];
 } // args)
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
index 95207b5386f8..df3d0732393e 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
@@ -1,12 +1,17 @@
-{ callPackage, fetchpatch
+{ callPackage
 # Darwin frameworks
 , Cocoa, CoreMedia, VideoToolbox
+, stdenv, lib
 , ...
 }@args:
 
 callPackage ./generic.nix (rec {
-  version = "4.3.2";
-  branch = "4.3";
-  sha256 = "0flik4y7c5kchj65p3p908mk1dsncqgzjdvzysjs12rmf1m6sfmb";
+  version = "4.4";
+  branch = "4.4";
+  sha256 = "03kxc29y8190k4y8s8qdpsghlbpmchv1m8iqygq2qn0vfm4ka2a2";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
+
+  /* Work around https://trac.ffmpeg.org/ticket/9242 */
+  patches = lib.optional stdenv.isDarwin
+    ./v2-0001-avcodec-videotoolboxenc-define-TARGET_CPU_ARM64-t.patch;
 } // args)
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
index 82f1a8bf5646..d52abd4ab09f 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPackages, fetchurl, pkg-config, addOpenGLRunpath, perl, texinfo, yasm
-, alsaLib, bzip2, fontconfig, freetype, gnutls, libiconv, lame, libass, libogg
+, alsa-lib, bzip2, fontconfig, freetype, gnutls, libiconv, lame, libass, libogg
 , libssh, libtheora, libva, libdrm, libvorbis, libvpx, xz, libpulseaudio, soxr
 , x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d
 , openglSupport ? false, libGLU ? null, libGL ? null
@@ -17,7 +17,7 @@
 # Darwin frameworks
 , Cocoa, darwinFrameworks ? [ Cocoa ]
 # Inherit generics
-, branch, sha256, version, patches ? [], ...
+, branch, sha256, version, patches ? [], knownVulnerabilities ? [], ...
 }:
 
 /* Maintainer notes:
@@ -179,7 +179,7 @@ stdenv.mkDerivation rec {
     ++ optionals (!isDarwin && !isAarch32) [ libpulseaudio ] # Need to be fixed on Darwin and ARM
     ++ optional ((isLinux || isFreeBSD) && !isAarch32) libva
     ++ optional ((isLinux || isFreeBSD) && !isAarch32) libdrm
-    ++ optional isLinux alsaLib
+    ++ optional isLinux alsa-lib
     ++ optionals isDarwin darwinFrameworks
     ++ optional vdpauSupport libvdpau
     ++ optional sdlSupport (if reqMin "3.2" then SDL2 else SDL)
@@ -213,7 +213,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
-    homepage = "http://www.ffmpeg.org/";
+    homepage = "https://www.ffmpeg.org/";
+    changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${version}/Changelog";
     longDescription = ''
       FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
       mux, demux, stream, filter and play pretty much anything that humans and machines
@@ -224,6 +225,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ codyopel ];
-    inherit branch;
+    inherit branch knownVulnerabilities;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/v2-0001-avcodec-videotoolboxenc-define-TARGET_CPU_ARM64-t.patch b/nixpkgs/pkgs/development/libraries/ffmpeg/v2-0001-avcodec-videotoolboxenc-define-TARGET_CPU_ARM64-t.patch
new file mode 100644
index 000000000000..c0c2c1fb23bb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/v2-0001-avcodec-videotoolboxenc-define-TARGET_CPU_ARM64-t.patch
@@ -0,0 +1,35 @@
+From 5b562aaddbc6e7a94a079c2e88230b205a7f4d73 Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Sat, 15 May 2021 19:33:52 +1000
+Subject: [PATCH v2] avcodec/videotoolboxenc: #define TARGET_CPU_ARM64 to 0 if
+ not provided by the SDK
+
+Fixes build failure on older SDKs without it.
+
+Fixes #9242
+
+Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
+---
+ libavcodec/videotoolboxenc.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+NB: This is untested, I do not have a Mac to try it on.
+
+diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
+index 58239e0ab9..f063a86e73 100644
+--- a/libavcodec/videotoolboxenc.c
++++ b/libavcodec/videotoolboxenc.c
+@@ -50,6 +50,10 @@ enum { kCVPixelFormatType_420YpCbCr10BiPlanarFullRange = 'xf20' };
+ enum { kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange = 'x420' };
+ #endif
+ 
++#ifndef TARGET_CPU_ARM64
++#   define TARGET_CPU_ARM64 0
++#endif
++
+ typedef OSStatus (*getParameterSetAtIndex)(CMFormatDescriptionRef videoDesc,
+                                            size_t parameterSetIndex,
+                                            const uint8_t **parameterSetPointerOut,
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/libraries/ffms/default.nix b/nixpkgs/pkgs/development/libraries/ffms/default.nix
index 7fa96cff7f88..283942df63f9 100644
--- a/nixpkgs/pkgs/development/libraries/ffms/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ffms/default.nix
@@ -1,20 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, zlib, ffmpeg_3, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, ffmpeg
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "ffms";
-  version = "2.23";
+  version = "2.40";
 
   src = fetchFromGitHub {
     owner = "FFMS";
     repo = "ffms2";
     rev = version;
-    sha256 = "0dkz5b3gxq5p4xz0qqg6l2sigszrlsinz3skyf0ln4wf3zrvf8m5";
+    sha256 = "sha256-3bPxt911T0bGpAIS2RxBjo+VV84xW06eKcCj3ZAcmvw=";
   };
 
   NIX_CFLAGS_COMPILE = "-fPIC";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ zlib ffmpeg_3 ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  preAutoreconf = ''
+    mkdir src/config
+  '';
+
+  buildInputs = [
+    ffmpeg
+    zlib
+  ];
 
   # ffms includes a built-in vapoursynth plugin, see:
   # https://github.com/FFMS/ffms2#avisynth-and-vapoursynth-plugin
@@ -25,9 +43,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/FFMS/ffms2/";
-    description = "Libav/ffmpeg based source library for easy frame accurate access";
+    description = "FFmpeg based source library for easy frame accurate access";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ tadeokondrak ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/flatbuffers/1.12.nix b/nixpkgs/pkgs/development/libraries/flatbuffers/1.12.nix
new file mode 100644
index 000000000000..df2980ba204f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/flatbuffers/1.12.nix
@@ -0,0 +1,26 @@
+{ callPackage, fetchpatch, lib, stdenv }:
+
+callPackage ./generic.nix {
+  version = "1.12.0";
+  sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
+
+  patches = [
+    (fetchpatch {
+      # Fixed a compilation error with GCC 10.0 to 11.0. June 1, 2020.
+      # Should be included in the next release after 1.12.0
+      url = "https://github.com/google/flatbuffers/commit/988164f6e1675bbea9c852e2d6001baf4d1fcf59.patch";
+      sha256 = "0d8c2bywqmkhdi0a41cry85wy4j58pl0vd6h5xpfqm3fr8w0mi9s";
+      excludes = [ "src/idl_gen_cpp.cpp" ];
+    })
+    (fetchpatch {
+      # Fixed a compilation error with GCC 10.0 to 11.0. July 6, 2020.
+      # Should be included in the next release after 1.12.0
+      url = "https://github.com/google/flatbuffers/pull/6020/commits/44c7a4cf439b0a298720b5a448bcc243a882b0c9.patch";
+      sha256 = "126xwkvnlc4ignjhxv9jygfd9j6kr1jx39hyk0ddpcmvzfqsccf4";
+    })
+  ];
+
+  preConfigure = lib.optional stdenv.buildPlatform.isDarwin ''
+    rm BUILD
+  '';
+}
diff --git a/nixpkgs/pkgs/development/libraries/flatbuffers/2.0.nix b/nixpkgs/pkgs/development/libraries/flatbuffers/2.0.nix
new file mode 100644
index 000000000000..2b907e77c499
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/flatbuffers/2.0.nix
@@ -0,0 +1,6 @@
+{ callPackage }:
+
+callPackage ./generic.nix {
+  version = "2.0.0";
+  sha256 = "1zbf6bdpps8369r1ql00irxrp58jnalycc8jcapb8iqg654vlfz8";
+}
diff --git a/nixpkgs/pkgs/development/libraries/flatbuffers/default.nix b/nixpkgs/pkgs/development/libraries/flatbuffers/default.nix
deleted file mode 100644
index 374203556a60..000000000000
--- a/nixpkgs/pkgs/development/libraries/flatbuffers/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
-
-stdenv.mkDerivation rec {
-  pname = "flatbuffers";
-  version = "1.12.0";
-
-  src = fetchFromGitHub {
-    owner = "google";
-    repo = "flatbuffers";
-    rev = "v${version}";
-    sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
-  };
-  patches = [
-    (fetchpatch {
-      # Fixed a compilation error with GCC 10.0 to 11.0. June 1, 2020.
-      # Should be included in the next release after 1.12.0
-      url = "https://github.com/google/flatbuffers/commit/988164f6e1675bbea9c852e2d6001baf4d1fcf59.patch";
-      sha256 = "0d8c2bywqmkhdi0a41cry85wy4j58pl0vd6h5xpfqm3fr8w0mi9s";
-      excludes = [ "src/idl_gen_cpp.cpp" ];
-    })
-    (fetchpatch {
-      # Fixed a compilation error with GCC 10.0 to 11.0. July 6, 2020.
-      # Should be included in the next release after 1.12.0
-      url = "https://github.com/google/flatbuffers/pull/6020/commits/44c7a4cf439b0a298720b5a448bcc243a882b0c9.patch";
-      sha256 = "126xwkvnlc4ignjhxv9jygfd9j6kr1jx39hyk0ddpcmvzfqsccf4";
-    })
-  ];
-
-  preConfigure = lib.optional stdenv.buildPlatform.isDarwin ''
-    rm BUILD
-  '';
-
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = [ "-DFLATBUFFERS_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" ];
-
-  # tests fail to compile
-  doCheck = false;
-  # doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
-  checkTarget = "test";
-
-  meta = with lib; {
-    description = "Memory Efficient Serialization Library";
-    longDescription = ''
-      FlatBuffers is an efficient cross platform serialization library for
-      games and other memory constrained apps. It allows you to directly
-      access serialized data without unpacking/parsing it first, while still
-      having great forwards/backwards compatibility.
-    '';
-    maintainers = [ maintainers.teh ];
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    homepage = "https://google.github.io/flatbuffers/";
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/flatbuffers/generic.nix b/nixpkgs/pkgs/development/libraries/flatbuffers/generic.nix
new file mode 100644
index 000000000000..1cdfb4b9c870
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/flatbuffers/generic.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, version
+, sha256
+, patches ? [ ]
+, preConfigure ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "flatbuffers";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "flatbuffers";
+    rev = "v${version}";
+    inherit sha256;
+  };
+
+  inherit patches preConfigure;
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    "-DFLATBUFFERS_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
+  ];
+
+  doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+  checkTarget = "test";
+
+  meta = with lib; {
+    description = "Memory Efficient Serialization Library";
+    longDescription = ''
+      FlatBuffers is an efficient cross platform serialization library for
+      games and other memory constrained apps. It allows you to directly
+      access serialized data without unpacking/parsing it first, while still
+      having great forwards/backwards compatibility.
+    '';
+    maintainers = [ maintainers.teh ];
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    homepage = "https://google.github.io/flatbuffers/";
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/flint/default.nix b/nixpkgs/pkgs/development/libraries/flint/default.nix
index 0adaa2fe5e74..475428167060 100644
--- a/nixpkgs/pkgs/development/libraries/flint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flint/default.nix
@@ -13,10 +13,12 @@ assert withBlas -> openblas != null && blas.implementation == "openblas" && lapa
 stdenv.mkDerivation rec {
   pname = "flint";
   version = "2.7.1";
+
   src = fetchurl {
     url = "http://www.flintlib.org/flint-${version}.tar.gz";
     sha256 = "07j8r96kdzp19cy3a5yvpjxf90mkd6103yr2n42qmpv7mgcjyvhq";
   };
+
   buildInputs = [
     gmp
     mpir
@@ -37,9 +39,6 @@ stdenv.mkDerivation rec {
     "--with-blas=${openblas}"
   ];
 
-  # issues with ntl -- https://github.com/wbhart/flint2/issues/487
-  NIX_CXXSTDLIB_COMPILE = "-std=c++11";
-
   doCheck = true;
   meta = {
     inherit version;
diff --git a/nixpkgs/pkgs/development/libraries/flite/default.nix b/nixpkgs/pkgs/development/libraries/flite/default.nix
index a80c317b06ee..cd8eb538462b 100644
--- a/nixpkgs/pkgs/development/libraries/flite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flite/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, alsa-lib, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "flite";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1n0p81jzndzc1rzgm66kw9ls189ricy5v1ps11y0p2fk1p56kbjf";
   };
 
-  buildInputs = lib.optionals stdenv.isLinux [ alsaLib ];
+  buildInputs = lib.optionals stdenv.isLinux [ alsa-lib ];
 
   # https://github.com/festvox/flite/pull/60.
   # Replaces `ar` with `$(AR)` in config/common_make_rules.
diff --git a/nixpkgs/pkgs/development/libraries/folks/default.nix b/nixpkgs/pkgs/development/libraries/folks/default.nix
index c930adbe9b2d..6cd651e66ebb 100644
--- a/nixpkgs/pkgs/development/libraries/folks/default.nix
+++ b/nixpkgs/pkgs/development/libraries/folks/default.nix
@@ -1,11 +1,10 @@
 { fetchurl
 , lib, stdenv
 , pkg-config
-, fetchpatch
 , meson
 , ninja
 , glib
-, gnome3
+, gnome
 , nspr
 , gettext
 , gobject-introspection
@@ -18,6 +17,7 @@
 , dbus
 , libgee
 , evolution-data-server
+, libgdata
 , libsecret
 , db
 , python3
@@ -34,29 +34,15 @@
 
 stdenv.mkDerivation rec {
   pname = "folks";
-  version = "0.14.0";
+  version = "0.15.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1f9b52vmwnq7s51vj26w2618dn2ph5g12ibbkbyk6fvxcgd7iryn";
+    sha256 = "08nirjax4m4g4ljr8ksq16wzmrvzq6myqh5rm0dw6pnijqk7nxzg";
   };
 
-  patches = [
-    # Fix tests with e-d-s linked with libphonenumber support
-    # https://gitlab.gnome.org/GNOME/folks/merge_requests/40
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/folks/commit/6d443480a137f6a6ff345b21bf3cb31066eefbcd.patch";
-      sha256 = "D/Y2g12TT0qrcH+iJ2umu4Hmp0EJ3Hoedh0H3aWI+HY=";
-    })
-  ];
-
-  mesonFlags = [
-    "-Ddocs=true"
-    "-Dtelepathy_backend=${lib.boolToString telepathySupport}"
-  ];
-
   nativeBuildInputs = [
     gettext
     gobject-introspection
@@ -75,6 +61,7 @@ stdenv.mkDerivation rec {
     db
     dbus-glib
     evolution-data-server
+    libgdata # required for some backends transitively
     libsecret
     libsoup
     libxml2
@@ -100,7 +87,17 @@ stdenv.mkDerivation rec {
     ]))
   ];
 
-  doCheck = true;
+  mesonFlags = [
+    "-Ddocs=true"
+    "-Dtelepathy_backend=${lib.boolToString telepathySupport}"
+    # For some reason, the tests are getting stuck on 31/32,
+    # even though the one missing test finishes just fine on next run,
+    # when tests are permuted differently. And another test that
+    # previously passed will be stuck instead.
+    "-Dtests=false"
+  ];
+
+  doCheck = false;
 
   # Prevents e-d-s add-contacts-stress-test from timing out
   checkPhase = ''
@@ -116,7 +113,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/default.nix b/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
index a7f8fa89c166..c0846edbbfe4 100644
--- a/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
@@ -61,6 +61,11 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/409b37c62780728755c908991c912a6b16f2389c.patch";
       sha256 = "zJFh37QErSAINPGFkFVJyhYRP27BuIN7PIgoDl/PIwI=";
     })
+
+    # Combination of
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/-/merge_requests/88
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/-/merge_requests/131
+    ./macos-atomics.h
   ];
 
   outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
@@ -118,6 +123,6 @@ stdenv.mkDerivation rec {
     homepage = "http://fontconfig.org/";
     license = licenses.bsd2; # custom but very bsd-like
     platforms = platforms.all;
-    maintainers = [ maintainers.vcunat ];
+    maintainers = with maintainers; teams.freedesktop.members ++ [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/macos-atomics.h b/nixpkgs/pkgs/development/libraries/fontconfig/macos-atomics.h
new file mode 100644
index 000000000000..07b0cf1d52dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/fontconfig/macos-atomics.h
@@ -0,0 +1,39 @@
+--- a/src/fcatomic.h	2020-11-27 13:23:44.000000000 +0900
++++ b/src/fcatomic.h	2020-11-27 13:24:43.000000000 +0900
+@@ -70,24 +70,25 @@
+ #elif !defined(FC_NO_MT) && defined(__APPLE__)
+ 
+ #include <libkern/OSAtomic.h>
+-#ifdef __MAC_OS_X_MIN_REQUIRED
+ #include <AvailabilityMacros.h>
+-#elif defined(__IPHONE_OS_MIN_REQUIRED)
+-#include <Availability.h>
+-#endif
+ 
+ typedef int fc_atomic_int_t;
+ #define fc_atomic_int_add(AI, V)	(OSAtomicAdd32Barrier ((V), &(AI)) - (V))
+ 
+-#define fc_atomic_ptr_get(P)		(OSMemoryBarrier (), (void *) *(P))
+-#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_VERSION_MIN_REQUIRED >= 20100)
+-#define fc_atomic_ptr_cmpexch(P,O,N)	OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P))
+-#else
+-#if __ppc64__ || __x86_64__
+-#define fc_atomic_ptr_cmpexch(P,O,N)	OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P))
++#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 20100)
++
++#if SIZEOF_VOID_P == 8
++#define fc_atomic_ptr_get(P)		OSAtomicAdd64Barrier (0, (int64_t*)(P))
++#elif SIZEOF_VOID_P == 4
++#define fc_atomic_ptr_get(P)		OSAtomicAdd32Barrier (0, (int32_t*)(P))
+ #else
+-#define fc_atomic_ptr_cmpexch(P,O,N)	OSAtomicCompareAndSwap32Barrier ((int32_t) (O), (int32_t) (N), (int32_t*) (P))
++#error "SIZEOF_VOID_P not 4 or 8 (assumes CHAR_BIT is 8)"
+ #endif
++
++#define fc_atomic_ptr_cmpexch(P,O,N)	OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P))
++
++#else
++#error "Your macOS / iOS targets are too old"
+ #endif
+ 
+ #elif !defined(FC_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES)
diff --git a/nixpkgs/pkgs/development/libraries/freeimage/default.nix b/nixpkgs/pkgs/development/libraries/freeimage/default.nix
index b50783e2719e..236305a572bf 100644
--- a/nixpkgs/pkgs/development/libraries/freeimage/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freeimage/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchsvn, darwin, libtiff
 , libpng, zlib, libwebp, libraw, openexr, openjpeg
-, libjpeg, jxrlib, pkg-config }:
+, libjpeg, jxrlib, pkg-config
+, fixDarwinDylibNames }:
 
 stdenv.mkDerivation {
   pname = "freeimage";
@@ -17,7 +18,12 @@ stdenv.mkDerivation {
   prePatch = "rm -rf Source/Lib* Source/OpenEXR Source/ZLib";
   patches = [ ./unbundle.diff ];
 
-  nativeBuildInputs = [ pkg-config ] ++ lib.optional stdenv.isDarwin darwin.cctools;
+  nativeBuildInputs = [
+    pkg-config
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.cctools
+    fixDarwinDylibNames
+  ];
   buildInputs = [ libtiff libtiff.dev_private libpng zlib libwebp libraw openexr openjpeg libjpeg libjpeg.dev_private jxrlib ];
 
   postBuild = lib.optionalString (!stdenv.isDarwin) ''
diff --git a/nixpkgs/pkgs/development/libraries/freetds/default.nix b/nixpkgs/pkgs/development/libraries/freetds/default.nix
index 0a9a4684e125..56f0e03921be 100644
--- a/nixpkgs/pkgs/development/libraries/freetds/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   pname = "freetds";
-  version = "1.2.18";
+  version = "1.2.21";
 
   src = fetchurl {
     url    = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-ENR+YJhs/FH4Fw+p6rpDEU7r3eC6bmscSBPYbwIaqt0=";
+    sha256 = "sha256-pea79tbz3AgWsZy9CDCNJ6CEsEkmqqBaxn+AjqB9PY0=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/fstrm/default.nix b/nixpkgs/pkgs/development/libraries/fstrm/default.nix
index 46a7118cefe4..15daa7e5a959 100644
--- a/nixpkgs/pkgs/development/libraries/fstrm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fstrm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fstrm";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "farsightsec";
     repo = "fstrm";
     rev = "v${version}";
-    sha256 = "0b6x9wgyn92vykkmd3ynhnpbdl77zb4wf4rm7p0h8p9pwq953hdm";
+    sha256 = "sha256-/WFP2g3Vuf/qaY8pprY8XFAlpEE+0SJUlFNWfa+7ZlE=";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/gcab/default.nix b/nixpkgs/pkgs/development/libraries/gcab/default.nix
index 0ad9f607dfea..efc533c55041 100644
--- a/nixpkgs/pkgs/development/libraries/gcab/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gcab/default.nix
@@ -12,7 +12,7 @@
 , vala
 , glib
 , zlib
-, gnome3
+, gnome
 , nixosTests
 }:
 
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/gcr/default.nix b/nixpkgs/pkgs/development/libraries/gcr/default.nix
index 92c0ec293cb2..37238a5f59ec 100644
--- a/nixpkgs/pkgs/development/libraries/gcr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gcr/default.nix
@@ -15,18 +15,18 @@
 , makeWrapper
 , libxslt
 , vala
-, gnome3
+, gnome
 , python3
 , shared-mime-info
 }:
 
 stdenv.mkDerivation rec {
   pname = "gcr";
-  version = "3.38.1";
+  version = "3.40.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "F/yvnEqTpl+xxyuCZDuxAsEzRAhGh9WIbqZjE4aNnsk=";
+    sha256 = "udNkWl/ZU6VChcxk1PwEZzZGPb1NzCXK9ce1m+0wJ/U=";
   };
 
   postPatch = ''
@@ -74,21 +74,20 @@ stdenv.mkDerivation rec {
 
   doCheck = false; # fails 21 out of 603 tests, needs dbus daemon
 
-  enableParallelBuilding = true;
-
   preFixup = ''
     wrapProgram "$out/bin/gcr-viewer" \
       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
   meta = with lib; {
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = teams.gnome.members;
     description = "GNOME crypto services (daemon and tools)";
     homepage = "https://gitlab.gnome.org/GNOME/gcr";
diff --git a/nixpkgs/pkgs/development/libraries/gdal/2.4.nix b/nixpkgs/pkgs/development/libraries/gdal/2.4.nix
index 70ae3b2b12aa..234d986b21fa 100644
--- a/nixpkgs/pkgs/development/libraries/gdal/2.4.nix
+++ b/nixpkgs/pkgs/development/libraries/gdal/2.4.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, unzip, libjpeg, libtiff, zlib
+{ lib, stdenv, fetchurl, libjpeg, libtiff, zlib
 , postgresql, libmysqlclient, libgeotiff, python2Packages, proj, geos, openssl
 , libpng, sqlite, libspatialite, poppler, hdf4, qhull, giflib, expat
 , libiconv, libxml2
@@ -16,7 +16,6 @@ stdenv.mkDerivation rec {
     sha256 = "1n6w0m2603q9cldlz0wyscp75ci561dipc36jqbf3mjmylybv0x3";
   };
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [ libjpeg libtiff libgeotiff libpng proj openssl sqlite
     libspatialite poppler hdf4 qhull giflib expat libxml2 proj ]
   ++ (with python2Packages; [ python numpy wrapPython ])
diff --git a/nixpkgs/pkgs/development/libraries/gdk-pixbuf/default.nix b/nixpkgs/pkgs/development/libraries/gdk-pixbuf/default.nix
index 2d8e60d06a73..fd2d62a032c3 100644
--- a/nixpkgs/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -7,16 +7,15 @@
 , pkg-config
 , gettext
 , python3
-, libxml2
 , libxslt
 , docbook-xsl-nons
 , docbook_xml_dtd_43
-, gtk-doc
+, gi-docgen
 , glib
 , libtiff
 , libjpeg
 , libpng
-, gnome3
+, gnome
 , gobject-introspection
 , doCheck ? false
 , makeWrapper
@@ -25,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gdk-pixbuf";
-  version = "2.42.2";
+  version = "2.42.6";
 
   outputs = [ "out" "dev" "man" "devdoc" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "05ggmzwvrxq9w4zcvmrnnd6qplsmb4n95lj4q607c7arzlf6mil3";
+    sha256 = "0zz7pmw2z46g7mr1yjxbsdldd5pd03xbjc58inj8rxfqgrdvg9n4";
   };
 
   patches = [
@@ -45,14 +44,15 @@ stdenv.mkDerivation rec {
     pkg-config
     gettext
     python3
-    libxml2
-    libxslt
-    docbook-xsl-nons
-    docbook_xml_dtd_43
-    gtk-doc
     gobject-introspection
     makeWrapper
     glib
+    gi-docgen
+
+    # for man pages
+    libxslt
+    docbook-xsl-nons
+    docbook_xml_dtd_43
   ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   propagatedBuildInputs = [
@@ -75,19 +75,26 @@ stdenv.mkDerivation rec {
     substituteInPlace tests/meson.build --subst-var-by installedtestsprefix "$installedTests"
   '';
 
+  preInstall = ''
+    PATH=$PATH:$out/bin # for install script
+  '';
+
   postInstall =
-    # meson erroneously installs loaders with .dylib extension on Darwin.
-    # Their @rpath has to be replaced before gdk-pixbuf-query-loaders looks at them.
-    lib.optionalString stdenv.isDarwin ''
+    ''
+      # All except one utility seem to be only useful during building.
+      moveToOutput "bin" "$dev"
+      moveToOutput "bin/gdk-pixbuf-thumbnailer" "$out"
+
+      # So that devhelp can find this.
+      mkdir -p "$devdoc/share/devhelp"
+      mv "$out/share/doc" "$devdoc/share/devhelp/books"
+    '' + lib.optionalString stdenv.isDarwin ''
+      # meson erroneously installs loaders with .dylib extension on Darwin.
+      # Their @rpath has to be replaced before gdk-pixbuf-query-loaders looks at them.
       for f in $out/${passthru.moduleDir}/*.dylib; do
           install_name_tool -change @rpath/libgdk_pixbuf-2.0.0.dylib $out/lib/libgdk_pixbuf-2.0.0.dylib $f
           mv $f ''${f%.dylib}.so
       done
-    ''
-    # All except one utility seem to be only useful during building.
-    + ''
-      moveToOutput "bin" "$dev"
-      moveToOutput "bin/gdk-pixbuf-thumbnailer" "$out"
     '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
       # We need to install 'loaders.cache' in lib/gdk-pixbuf-2.0/2.10.0/
       $dev/bin/gdk-pixbuf-query-loaders --update-cache
@@ -100,10 +107,6 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  preInstall = ''
-    PATH=$PATH:$out/bin # for install script
-  '';
-
   # The tests take an excessive amount of time (> 1.5 hours) and memory (> 6 GB).
   inherit doCheck;
 
@@ -112,8 +115,9 @@ stdenv.mkDerivation rec {
   separateDebugInfo = stdenv.isLinux;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
 
     tests = {
diff --git a/nixpkgs/pkgs/development/libraries/gdl/default.nix b/nixpkgs/pkgs/development/libraries/gdl/default.nix
index f924571deae1..5b73e3d7a139 100644
--- a/nixpkgs/pkgs/development/libraries/gdl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, gtk3, gnome3, intltool }:
+{ lib, stdenv, fetchurl, pkg-config, libxml2, gtk3, gnome, intltool }:
 
 stdenv.mkDerivation rec {
   pname = "gdl";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libxml2 gtk3 ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gdl";
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/gegl/4.0.nix b/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
index 2093328f5793..11f4f070c08f 100644
--- a/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
+++ b/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , pkg-config
 , vala
@@ -35,14 +36,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gegl";
-  version = "0.4.28";
+  version = "0.4.30";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-HRENhXfVTMo7NCOTFb03xXzLJ91DVWVQdKLSs/2JeQA=";
+    sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
   };
 
   nativeBuildInputs = [
@@ -103,8 +104,8 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-lm";
 
   postPatch = ''
-    chmod +x tests/opencl/opencl_test.sh tests/buffer/buffer-tests-run.sh
-    patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tests/buffer/buffer-tests-run.sh tools/xml_insert.sh
+    chmod +x tests/opencl/opencl_test.sh
+    patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh
   '';
 
   # tests fail to connect to the com.apple.fonts daemon in sandboxed mode
diff --git a/nixpkgs/pkgs/development/libraries/gensio/default.nix b/nixpkgs/pkgs/development/libraries/gensio/default.nix
index aef412468a95..a0c4f5a3e216 100644
--- a/nixpkgs/pkgs/development/libraries/gensio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gensio/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gensio";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tdMdIudB8zZWXF+Q0YhFo9Q4VHjLJh3rdfQsYhgo2DU=";
+    sha256 = "sha256-QC07NGgZa++qHyGZY3fjosjJVuRFfc7HYmdGxQHAz4s=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch b/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch
index 9eb53acebb0a..63948ab4fad3 100644
--- a/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch
+++ b/nixpkgs/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch
@@ -65,17 +65,20 @@ index fde6fa3..39b7b0a 100644
  conf.set_quoted('LOCALEDIR', localedir)
 -conf.set_quoted('SYSCONFDIR', sysconfdir)
 +conf.set_quoted('SYSCONFDIR', get_option('sysconfdir'))
+ conf.set_quoted('MOZILLA_API_KEY', get_option('mozilla-api-key'))
  conf.set10('GCLUE_USE_3G_SOURCE', get_option('3g-source'))
  conf.set10('GCLUE_USE_CDMA_SOURCE', get_option('cdma-source'))
- conf.set10('GCLUE_USE_MODEM_GPS_SOURCE', get_option('modem-gps-source'))
 diff --git a/meson_options.txt b/meson_options.txt
 index 83bc60e..b726329 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -34,3 +34,6 @@ option('systemd-system-unit-dir',
+@@ -34,6 +34,9 @@ option('systemd-system-unit-dir',
  option('dbus-srv-user',
         type: 'string', value: 'root',
         description: 'The user (existing) as which the service will run')
 +option('sysconfdir_install',
 +       type: 'string', value: '',
 +       description: 'sysconfdir to use during installation')
+ option('mozilla-api-key',
+        type: 'string', value: 'geoclue',
+        description: 'Your API key for Mozilla Location Service')
diff --git a/nixpkgs/pkgs/development/libraries/geoclue/default.nix b/nixpkgs/pkgs/development/libraries/geoclue/default.nix
index 711f1a444b38..360094ea7655 100644
--- a/nixpkgs/pkgs/development/libraries/geoclue/default.nix
+++ b/nixpkgs/pkgs/development/libraries/geoclue/default.nix
@@ -1,50 +1,98 @@
-{ lib, stdenv, fetchFromGitLab, intltool, meson, ninja, pkg-config, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, json-glib, libsoup, libnotify, gdk-pixbuf
-, modemmanager, avahi, glib-networking, python3, wrapGAppsHook, gobject-introspection, vala
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchpatch
+, intltool
+, meson
+, ninja
+, pkg-config
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_412
+, glib
+, json-glib
+, libsoup
+, libnotify
+, gdk-pixbuf
+, modemmanager
+, avahi
+, glib-networking
+, python3
+, wrapGAppsHook
+, gobject-introspection
+, vala
 , withDemoAgent ? false
 }:
 
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "geoclue";
-  version = "2.5.6";
+  version = "2.5.7";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "13fk6n4j74lvcsrg3kwbw1mkxgcr3iy9dnysmy0pclfsym8z5m5m";
+    sha256 = "1mv1vs4q94bqkmgkj53jcsw1x31kczwydyy3r27a7fycgzmii1pj";
   };
 
   patches = [
+    # Make the Mozilla API key configurable
+    # https://gitlab.freedesktop.org/geoclue/geoclue/merge_requests/54 (only partially backported)
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/geoclue/geoclue/commit/95c9ad4dc176860c85a07d0db4cb4179929bdb54.patch";
+      sha256 = "/lq/dLBJl2vf16tt7emYoTtXY6iUw+4s2XcABUHp3Kc=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/geoclue/geoclue/commit/1a00809a0d89b0849a57647c878d192354247a33.patch";
+      sha256 = "6FuiukgFWg2cEKt8LlKP4E0rfSH/ZQgk6Ip1mGJpNFQ=";
+    })
+
     ./add-option-for-installation-sysconfdir.patch
   ];
 
-  outputs = [ "out" "dev" "devdoc" ];
-
   nativeBuildInputs = [
-    pkg-config intltool meson ninja wrapGAppsHook python3 vala gobject-introspection
+    pkg-config
+    intltool
+    meson
+    ninja
+    wrapGAppsHook
+    python3
+    vala
+    gobject-introspection
     # devdoc
-    gtk-doc docbook_xsl docbook_xml_dtd_412
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_412
   ];
 
   buildInputs = [
-    glib json-glib libsoup avahi
-  ] ++ optionals withDemoAgent [
+    glib
+    json-glib
+    libsoup
+    avahi
+  ] ++ lib.optionals withDemoAgent [
     libnotify gdk-pixbuf
-  ] ++ optionals (!stdenv.isDarwin) [ modemmanager ];
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    modemmanager
+  ];
 
-  propagatedBuildInputs = [ glib glib-networking ];
+  propagatedBuildInputs = [
+    glib
+    glib-networking
+  ];
 
   mesonFlags = [
     "-Dsystemd-system-unit-dir=${placeholder "out"}/etc/systemd/system"
-    "-Ddemo-agent=${boolToString withDemoAgent}"
+    "-Ddemo-agent=${lib.boolToString withDemoAgent}"
     "--sysconfdir=/etc"
     "-Dsysconfdir_install=${placeholder "out"}/etc"
+    "-Dmozilla-api-key=5c28d1f4-9511-47ff-b11a-2bef80fc177c"
     "-Ddbus-srv-user=geoclue"
     "-Ddbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d"
-  ] ++ optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.isDarwin [
     "-D3g-source=false"
     "-Dcdma-source=false"
     "-Dmodem-gps-source=false"
diff --git a/nixpkgs/pkgs/development/libraries/geocode-glib/default.nix b/nixpkgs/pkgs/development/libraries/geocode-glib/default.nix
index f401c25aa394..458e0d59a0d5 100644
--- a/nixpkgs/pkgs/development/libraries/geocode-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/geocode-glib/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, meson, ninja, pkg-config, gettext, gtk-doc, docbook_xsl, gobject-introspection, gnome3, libsoup, json-glib, glib }:
+{ fetchurl, lib, stdenv, meson, ninja, pkg-config, gettext, gtk-doc, docbook_xsl, gobject-introspection, gnome, libsoup, json-glib, glib }:
 
 stdenv.mkDerivation rec {
   pname = "geocode-glib";
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/geos/default.nix b/nixpkgs/pkgs/development/libraries/geos/default.nix
index 19b03eb620ce..355e9e5f07ff 100644
--- a/nixpkgs/pkgs/development/libraries/geos/default.nix
+++ b/nixpkgs/pkgs/development/libraries/geos/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "geos";
@@ -11,8 +11,6 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ python ];
-
   # https://trac.osgeo.org/geos/ticket/993
   configureFlags = lib.optional stdenv.isAarch32 "--disable-inline";
 
diff --git a/nixpkgs/pkgs/development/libraries/getdata/default.nix b/nixpkgs/pkgs/development/libraries/getdata/default.nix
index de76924844fe..25321c22434e 100644
--- a/nixpkgs/pkgs/development/libraries/getdata/default.nix
+++ b/nixpkgs/pkgs/development/libraries/getdata/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libtool }:
+{ lib, stdenv, fetchurl, fetchpatch, libtool }:
 stdenv.mkDerivation rec {
   pname = "getdata";
   version = "0.10.0";
@@ -7,6 +7,13 @@ stdenv.mkDerivation rec {
     sha256 = "18xbb32vygav9x6yz0gdklif4chjskmkgp06rwnjdf9myhia0iym";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/libg/libgetdata/0.10.0-10/debian/patches/CVE-2021-20204.patch";
+      sha256 = "1lvp1c2pkk9kxniwlvax6d8fsmjrkpxawf71c7j4rfjm6dgvivzm";
+    })
+  ];
+
   buildInputs = [ libtool ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/gexiv2/default.nix b/nixpkgs/pkgs/development/libraries/gexiv2/default.nix
index 071e749b4002..c46a42049bce 100644
--- a/nixpkgs/pkgs/development/libraries/gexiv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gexiv2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, exiv2, glib, gnome3, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }:
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, exiv2, glib, gnome, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }:
 
 stdenv.mkDerivation rec {
   pname = "gexiv2";
@@ -22,8 +22,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix b/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix
index e3550b82a965..7f4625b66512 100644
--- a/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, glib, librest, gnome-online-accounts
-, gnome3, libsoup, json-glib, gobject-introspection
+, gnome, libsoup, json-glib, gobject-introspection
 , gtk-doc, pkgs, docbook-xsl-nons, autoconf, automake, libtool }:
 
 stdenv.mkDerivation rec {
@@ -35,8 +35,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/ghc_filesystem/default.nix b/nixpkgs/pkgs/development/libraries/ghc_filesystem/default.nix
new file mode 100644
index 000000000000..0ffad301a493
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/ghc_filesystem/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, cmake, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "filesystem";
+  version = "1.5.6";
+
+  src = fetchFromGitHub {
+    owner = "gulrak";
+    repo = "filesystem";
+    rev = "v${version}";
+    hash = "sha256-qnBZ9aCrCPOgxymjbzrRs0gssijo8MJOMiy7QWWMb5c=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "header-only single-file C++ std::filesystem compatible helper library";
+    homepage = "https://github.com/gulrak/filesystem";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lourkeur ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/giflib/libungif.nix b/nixpkgs/pkgs/development/libraries/giflib/libungif.nix
deleted file mode 100644
index d8c32d14fca2..000000000000
--- a/nixpkgs/pkgs/development/libraries/giflib/libungif.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{lib, stdenv, fetchurl}:
-
-stdenv.mkDerivation {
-  name = "libungif-4.1.4";
-  src = fetchurl {
-    url = "mirror://sourceforge/giflib/libungif-4.1.4.tar.gz";
-    sha256 = "5e65e1e5deacd0cde489900dbf54c6c2ee2ebc818199e720dbad685d87abda3d";
-  };
-
-  hardeningDisable = [ "format" ];
-
-  meta = with lib; {
-    description = "Library and utilities for processing GIFs";
-    platforms = platforms.unix;
-    license = licenses.mit;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gjs/default.nix b/nixpkgs/pkgs/development/libraries/gjs/default.nix
index 52b53a15b410..342d498f1547 100644
--- a/nixpkgs/pkgs/development/libraries/gjs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gjs/default.nix
@@ -1,10 +1,10 @@
 { fetchurl
-, fetchpatch
-, lib, stdenv
+, lib
+, stdenv
 , meson
 , ninja
 , pkg-config
-, gnome3
+, gnome
 , gtk3
 , atk
 , gobject-introspection
@@ -16,27 +16,36 @@
 , libxml2
 , dbus
 , gdk-pixbuf
+, harfbuzz
 , makeWrapper
 , which
-, xvfb_run
+, xvfb-run
 , nixosTests
 }:
 
 let
   testDeps = [
     gobject-introspection # for Gio and cairo typelibs
-    gtk3 atk pango.out gdk-pixbuf
+    gtk3 atk pango.out gdk-pixbuf harfbuzz
   ];
 in stdenv.mkDerivation rec {
   pname = "gjs";
-  version = "1.66.2";
+  version = "1.68.1";
+
+  outputs = [ "out" "dev" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "vX9fixcSd8wLue4XVLAkC2Lwana4sYyWjPRxs0qzTlk=";
+    sha256 = "0w2cbfpmc6alz7z8ycchhlkn586av5y8zk2xmgwzq10i0k13xyig";
   };
 
-  outputs = [ "out" "dev" "installedTests" ];
+  patches = [
+    # Hard-code various paths
+    ./fix-paths.patch
+
+    # Allow installing installed tests to a separate output.
+    ./installed-tests-path.patch
+  ];
 
   nativeBuildInputs = [
     meson
@@ -56,7 +65,7 @@ in stdenv.mkDerivation rec {
   ];
 
   checkInputs = [
-    xvfb_run
+    xvfb-run
   ] ++ testDeps;
 
   propagatedBuildInputs = [
@@ -68,14 +77,6 @@ in stdenv.mkDerivation rec {
     "-Dinstalled_test_prefix=${placeholder "installedTests"}"
   ];
 
-  patches = [
-    # Hard-code various paths
-    ./fix-paths.patch
-
-    # Allow installing installed tests to a separate output.
-    ./installed-tests-path.patch
-  ];
-
   doCheck = true;
 
   postPatch = ''
@@ -91,6 +92,7 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/lib $installedTests/libexec/installed-tests/gjs
     ln -s $PWD/libgjs.so.0 $out/lib/libgjs.so.0
     ln -s $PWD/installed-tests/js/libgimarshallingtests.so $installedTests/libexec/installed-tests/gjs/libgimarshallingtests.so
+    ln -s $PWD/installed-tests/js/libgjstesttools/libgjstesttools.so $installedTests/libexec/installed-tests/gjs/libgjstesttools.so
     ln -s $PWD/installed-tests/js/libregress.so $installedTests/libexec/installed-tests/gjs/libregress.so
     ln -s $PWD/installed-tests/js/libwarnlib.so $installedTests/libexec/installed-tests/gjs/libwarnlib.so
   '';
@@ -122,7 +124,7 @@ in stdenv.mkDerivation rec {
       installed-tests = nixosTests.installed-tests.gjs;
     };
 
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gjs";
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
index 38ef25770aa9..37c15225869f 100644
--- a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.3";
+  version = "3.3.4";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "sha256-NfEPXjpVnFvh3Y70RZm8nDG0QwJbefF9wYNUq0BZTN4=";
+    sha256 = "sha256-BP4wxjgm0x0E68tNz5eudkVUyBnXkQlP7LY3ppZunhw=";
   };
 
   propagatedBuildInputs = [ libGL ];
diff --git a/nixpkgs/pkgs/development/libraries/glib-networking/default.nix b/nixpkgs/pkgs/development/libraries/glib-networking/default.nix
index 585897341662..690279fcf213 100644
--- a/nixpkgs/pkgs/development/libraries/glib-networking/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glib-networking/default.nix
@@ -12,19 +12,19 @@
 , gnutls
 , p11-kit
 , libproxy
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 }:
 
 stdenv.mkDerivation rec {
   pname = "glib-networking";
-  version = "2.66.0";
+  version = "2.68.1";
 
   outputs = [ "out" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "16807qwflbghp0c66jdx2gnaffvdp4bla35ppzp9dlgx6wjbxmy5";
+    sha256 = "0c1vylxly8k7g454g02spi44ybjidlwg461vp713zxd94k8qnpfh";
   };
 
   patches = [
@@ -74,8 +74,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
 
     tests = {
diff --git a/nixpkgs/pkgs/development/libraries/glib/default.nix b/nixpkgs/pkgs/development/libraries/glib/default.nix
index ce64bef95adb..e15f59757862 100644
--- a/nixpkgs/pkgs/development/libraries/glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glib/default.nix
@@ -1,5 +1,5 @@
 { config, lib, stdenv, fetchurl, gettext, meson, ninja, pkg-config, perl, python3
-, libiconv, zlib, libffi, pcre, libelf, gnome3, libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45
+, libiconv, zlib, libffi, pcre, libelf, gnome, libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45
 # use util-linuxMinimal to avoid circular dependency (util-linux, systemd, glib)
 , util-linuxMinimal ? null
 , buildPackages
@@ -45,15 +45,16 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.66.8";
+  version = "2.68.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-l7yH3ZE2VYmvXLv+oldIM66nobcYQP02Xs0oUsdrnIs=";
+    sha256 = "sha256-7Md5ipzANOq9/X8kbm3UYc2/EXX8wumGfMfae3MJ4Ps=";
   };
 
   patches = optionals stdenv.isDarwin [
     ./darwin-compilation.patch
+    ./link-with-coreservices.patch
   ] ++ optionals stdenv.hostPlatform.isMusl [
     ./quark_init_on_demand.patch
     ./gobject_init_on_demand.patch
@@ -92,13 +93,23 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libelf setupHook pcre
     bash gnum4 # install glib-gettextize and m4 macros for other apps to use
-    gtk-doc
   ] ++ optionals stdenv.isLinux [
     libselinux
     util-linuxMinimal # for libmount
   ] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     AppKit Carbon Cocoa CoreFoundation CoreServices Foundation
-  ]);
+  ]) ++ optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
+    # Note: this needs to be both in buildInputs and nativeBuildInputs. The
+    # Meson gtkdoc module uses find_program to look it up (-> build dep), but
+    # glib's own Meson configuration uses the host pkg-config to find its
+    # version (-> host dep). We could technically go and fix this in glib, add
+    # pkg-config to depsBuildBuild, but this would be a futile exercise since
+    # Meson's gtkdoc integration does not support cross compilation[1] anyway
+    # and this derivation disables the docs build when cross compiling.
+    #
+    # [1] https://github.com/mesonbuild/meson/issues/2003
+    gtk-doc
+  ];
 
   strictDeps = true;
 
@@ -184,14 +195,14 @@ stdenv.mkDerivation rec {
     makeSchemaPath = dir: name: "${dir}/share/gsettings-schemas/${name}/glib-2.0/schemas";
     getSchemaPath = pkg: makeSchemaPath pkg pkg.name;
     inherit flattenInclude;
-    updateScript = gnome3.updateScript { packageName = "glib"; };
+    updateScript = gnome.updateScript { packageName = "glib"; };
   };
 
   meta = with lib; {
     description = "C library of programming buildings blocks";
     homepage    = "https://www.gtk.org/";
     license     = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ lovek323 raskin worldofpeace ];
+    maintainers = teams.gnome.members ++ (with maintainers; [ lovek323 raskin ]);
     platforms   = platforms.unix;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/libraries/glib/link-with-coreservices.patch b/nixpkgs/pkgs/development/libraries/glib/link-with-coreservices.patch
new file mode 100644
index 000000000000..dcc0a8998cc3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/glib/link-with-coreservices.patch
@@ -0,0 +1,11 @@
+--- a/meson.build.orig	2020-11-25 13:47:38.499149252 +0900
++++ b/meson.build	2020-11-25 13:48:47.098444800 +0900
+@@ -742,7 +742,7 @@
+ 
+   if glib_have_carbon
+     glib_conf.set('HAVE_CARBON', true)
+-    osx_ldflags += '-Wl,-framework,Carbon'
++    osx_ldflags += ['-Wl,-framework,Carbon', '-Wl,-framework,CoreServices']
+     glib_have_os_x_9_or_later = objcc.compiles('''#include <AvailabilityMacros.h>
+                                                   #if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
+                                                   #error Compiling for minimum OS X version before 10.9
diff --git a/nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gz b/nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gz
index bcf4d13443cf..2fda4294130a 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gz
+++ b/nixpkgs/pkgs/development/libraries/glibc/2.32-master.patch.gz
Binary files differdiff --git a/nixpkgs/pkgs/development/libraries/glibc/common.nix b/nixpkgs/pkgs/development/libraries/glibc/common.nix
index 7a83ffd36d74..888548d79f03 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/common.nix
+++ b/nixpkgs/pkgs/development/libraries/glibc/common.nix
@@ -32,7 +32,7 @@
 , python3Minimal
 }:
 
-{ name
+{ pname
 , withLinuxHeaders ? false
 , profilingLibraries ? false
 , withGd ? false
@@ -42,7 +42,7 @@
 
 let
   version = "2.32";
-  patchSuffix = "-40";
+  patchSuffix = "-46";
   sha256 = "0di848ibffrnwq7g2dvgqrnn4xqhj3h96csn69q4da51ymafl9qn";
 in
 
@@ -50,7 +50,7 @@ assert withLinuxHeaders -> linuxHeaders != null;
 assert withGd -> gd != null && libpng != null;
 
 stdenv.mkDerivation ({
-  inherit version;
+  version = version + patchSuffix;
   linuxHeaders = if withLinuxHeaders then linuxHeaders else null;
 
   inherit (stdenv) is64bit;
@@ -61,7 +61,7 @@ stdenv.mkDerivation ({
     [
       /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
           $ git fetch --all -p && git checkout origin/release/2.32/master && git describe
-          glibc-2.32-40-g778b8d3786
+          glibc-2.32-46-g1799ac8eab
           $ git show --minimal --reverse glibc-2.32.. | gzip -9n --rsyncable - > 2.32-master.patch.gz
 
          To compare the archive contents zdiff can be used.
@@ -187,14 +187,13 @@ stdenv.mkDerivation ({
   # bootstrap.
   BASH_SHELL = "/bin/sh";
 
+  # Used by libgcc, elf-header, and others to determine ABI
   passthru = { inherit version; };
 }
 
 // (removeAttrs args [ "withLinuxHeaders" "withGd" ]) //
 
 {
-  name = name + "-${version}${patchSuffix}";
-
   src = fetchurl {
     url = "mirror://gnu/glibc/glibc-${version}.tar.xz";
     inherit sha256;
@@ -227,6 +226,28 @@ stdenv.mkDerivation ({
     libc_cv_c_cleanup=yes
     libc_cv_gnu89_inline=yes
     EOF
+
+    # ./configure has logic like
+    #
+    #     AR=`$CC -print-prog-name=ar`
+    #
+    # This searches various directories in the gcc and its wrapper. In nixpkgs,
+    # this returns the bare string "ar", which is build ar. This can result as
+    # a build failure with the following message:
+    #
+    #     libc_pic.a: error adding symbols: archive has no index; run ranlib to add one
+    #
+    # (Observed cross compiling from aarch64-linux -> armv7l-linux).
+    #
+    # Nixpkgs passes a correct value for AR and friends, so to use the correct
+    # set of tools, we only need to delete this special handling.
+    sed -i \
+      -e '/^AR=/d' \
+      -e '/^AS=/d' \
+      -e '/^LD=/d' \
+      -e '/^OBJCOPY=/d' \
+      -e '/^OBJDUMP=/d' \
+      $configureScript
   '';
 
   preBuild = lib.optionalString withGd "unset NIX_DONT_SET_RPATH";
diff --git a/nixpkgs/pkgs/development/libraries/glibc/default.nix b/nixpkgs/pkgs/development/libraries/glibc/default.nix
index 9043c8fd0d4f..caaacfe4f436 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glibc/default.nix
@@ -14,7 +14,7 @@ let
 in
 
 callPackage ./common.nix { inherit stdenv; } {
-    name = "glibc" + lib.optionalString withGd "-gd";
+    pname = "glibc" + lib.optionalString withGd "-gd";
 
     inherit withLinuxHeaders profilingLibraries withGd;
 
diff --git a/nixpkgs/pkgs/development/libraries/glibc/info.nix b/nixpkgs/pkgs/development/libraries/glibc/info.nix
index 5cb004cc870d..7c4f3f63bf1c 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/info.nix
+++ b/nixpkgs/pkgs/development/libraries/glibc/info.nix
@@ -1,7 +1,7 @@
 { callPackage, texinfo, perl }:
 
 callPackage ./common.nix {} {
-  name = "glibc-info";
+  pname = "glibc-info";
 
   outputs = [ "out" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/glibc/locales.nix b/nixpkgs/pkgs/development/libraries/glibc/locales.nix
index 238cebf6209f..325e0d09936b 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/locales.nix
+++ b/nixpkgs/pkgs/development/libraries/glibc/locales.nix
@@ -11,7 +11,7 @@
 }:
 
 callPackage ./common.nix { inherit stdenv; } {
-  name = "glibc-locales";
+  pname = "glibc-locales";
 
   builder = ./locales-builder.sh;
 
diff --git a/nixpkgs/pkgs/development/libraries/glibmm/2.68.nix b/nixpkgs/pkgs/development/libraries/glibmm/2.68.nix
new file mode 100644
index 000000000000..db713cf9ea5f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/glibmm/2.68.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, gnum4
+, glib
+, libsigcxx30
+, gnome
+, Cocoa
+, meson
+, ninja
+}:
+
+stdenv.mkDerivation rec {
+  pname = "glibmm";
+  version = "2.68.1";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-ZmTifJqcyoHCnjVof0ny4NFzovyemMNCgxH3B9tTL4w=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+    gnum4
+    glib # for glib-compile-schemas
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    Cocoa
+  ];
+
+  propagatedBuildInputs = [
+    glib
+    libsigcxx30
+  ];
+
+  doCheck = false; # fails. one test needs the net, another /etc/fstab
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "glibmm_2_68";
+      versionPolicy = "odd-unstable";
+    };
+  };
+
+  meta = with lib; {
+    description = "C++ interface to the GLib library";
+    homepage = "https://gtkmm.org/";
+    license = licenses.lgpl2Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ raskin ]);
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/glibmm/default.nix b/nixpkgs/pkgs/development/libraries/glibmm/default.nix
index a9abfbd17764..344fcb43eba0 100644
--- a/nixpkgs/pkgs/development/libraries/glibmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glibmm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gnum4, glib, libsigcxx, gnome3, darwin, meson, ninja }:
+{ lib, stdenv, fetchurl, pkg-config, gnum4, glib, libsigcxx, gnome, darwin, meson, ninja }:
 
 stdenv.mkDerivation rec {
   pname = "glibmm";
@@ -24,13 +24,12 @@ stdenv.mkDerivation rec {
   ]);
   propagatedBuildInputs = [ glib libsigcxx ];
 
-  enableParallelBuilding = true;
-
   doCheck = false; # fails. one test needs the net, another /etc/fstab
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gmp/6.x.nix b/nixpkgs/pkgs/development/libraries/gmp/6.x.nix
index bf03bf08779b..177c15670526 100644
--- a/nixpkgs/pkgs/development/libraries/gmp/6.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gmp/6.x.nix
@@ -46,7 +46,7 @@ let self = stdenv.mkDerivation rec {
     # to build a .dll on windows, we need --disable-static + --enable-shared
     # see https://gmplib.org/manual/Notes-for-Particular-Systems.html
     ++ optional (!withStatic && stdenv.hostPlatform.isWindows) "--disable-static --enable-shared"
-    ;
+    ++ optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) "--disable-assembly";
 
   doCheck = true; # not cross;
 
diff --git a/nixpkgs/pkgs/development/libraries/gnome-menus/default.nix b/nixpkgs/pkgs/development/libraries/gnome-menus/default.nix
index c8e77148c6d8..0b3d6689cb0b 100644
--- a/nixpkgs/pkgs/development/libraries/gnome-menus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnome-menus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, glib, gobject-introspection, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, glib, gobject-introspection, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-menus";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib gobject-introspection ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix b/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
index ab71b2ccf9a9..2d349181deed 100644
--- a/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -20,7 +20,7 @@
 , libsoup
 , docbook-xsl-nons
 , docbook_xml_dtd_412
-, gnome3
+, gnome
 , gcr
 , libkrb5
 , gvfs
@@ -30,7 +30,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-online-accounts";
-  version = "3.38.1";
+  version = "3.40.0";
 
   # https://gitlab.gnome.org/GNOME/gnome-online-accounts/issues/87
   src = fetchFromGitLab {
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = "gnome-online-accounts";
     rev = version;
-    sha256 = "sha256-th7P++MC3GXX+349PJFEwHGGeMhxsGgoEDGnSYpY7E4=";
+    sha256 = "sha256-GuUWypfmfbovpDKnj6wSBuNeKJIfIyipY+01u/p4znU=";
   };
 
   outputs = [ "out" "man" "dev" "devdoc" ];
@@ -46,7 +46,6 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dfedora=false" # not useful in NixOS or for NixOS users.
     "-Dgtk_doc=true"
-    "-Dlastfm=true"
     "-Dman=true"
     "-Dmedia_server=true"
   ];
@@ -90,7 +89,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/gnome-video-effects/default.nix b/nixpkgs/pkgs/development/libraries/gnome-video-effects/default.nix
index a2206c19b1b4..e8fd3ca7e2c2 100644
--- a/nixpkgs/pkgs/development/libraries/gnome-video-effects/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnome-video-effects/default.nix
@@ -4,7 +4,7 @@
 , meson
 , ninja
 , gettext
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch b/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch
index d4160b51d68c..f74a7af1cff4 100644
--- a/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch
+++ b/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch
@@ -1,8 +1,10 @@
+diff --git a/gir/cairo-1.0.gir.in b/gir/cairo-1.0.gir.in
+index e4c9fb3d..3351b184 100644
 --- a/gir/cairo-1.0.gir.in
 +++ b/gir/cairo-1.0.gir.in
-@@ -5,7 +5,7 @@
-             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+@@ -6,7 +6,7 @@
    <package name="@CAIRO_GIR_PACKAGE@"/>
+   <c:include name="cairo-gobject.h"/>
    <namespace name="cairo" version="1.0"
 -	     shared-library="@CAIRO_SHARED_LIBRARY@"
 +	     shared-library="@cairoLib@/@CAIRO_SHARED_LIBRARY@"
diff --git a/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch b/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
index 775c29855301..c02330adf6d1 100644
--- a/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
+++ b/nixpkgs/pkgs/development/libraries/gobject-introspection/absolute_shlib_path.patch
@@ -40,7 +40,7 @@
  def _get_option_parser():
      parser = optparse.OptionParser('%prog [options] sources',
                                     version='%prog ' + giscanner.__version__)
-@@ -205,6 +238,10 @@ match the namespace prefix.""")
+@@ -214,6 +247,10 @@ match the namespace prefix.""")
      parser.add_option("", "--filelist",
                        action="store", dest="filelist", default=[],
                        help="file containing headers and sources to be scanned")
@@ -66,7 +66,7 @@
  # This is a what we do for non-la files. We assume that we are on an
  # ELF-like system where ldd exists and the soname extracted with ldd is
  # a filename that can be opened with dlopen().
-@@ -106,7 +112,8 @@ def _resolve_non_libtool(options, binary, libraries):
+@@ -108,7 +114,8 @@ def _resolve_non_libtool(options, binary, libraries):
              output = output.decode("utf-8", "replace")
  
          shlibs = resolve_from_ldd_output(libraries, output)
@@ -76,7 +76,7 @@
  
  
  def sanitize_shlib_path(lib):
-@@ -115,19 +122,18 @@ def sanitize_shlib_path(lib):
+@@ -117,19 +124,18 @@ def sanitize_shlib_path(lib):
      # In case we get relative paths on macOS (like @rpath) then we fall
      # back to the basename as well:
      # https://gitlab.gnome.org/GNOME/gobject-introspection/issues/222
@@ -101,7 +101,7 @@
      if len(patterns) == 0:
          return []
  
-@@ -139,8 +145,11 @@ def resolve_from_ldd_output(libraries, output):
+@@ -141,8 +147,11 @@ def resolve_from_ldd_output(libraries, output):
          if line.endswith(':'):
              continue
          for word in line.split():
@@ -117,7 +117,7 @@
                      shlibs.append(m.group())
 --- a/giscanner/utils.py
 +++ b/giscanner/utils.py
-@@ -111,17 +111,11 @@ def extract_libtool_shlib(la_file):
+@@ -113,16 +113,11 @@ def extract_libtool_shlib(la_file):
      if dlname is None:
          return None
  
@@ -129,8 +129,7 @@
 -        if libdir is None:
 -            return dlbasename
 -        return libdir + '/' + dlbasename
--    # From the comments in extract_libtool(), older libtools had
--    # a path rather than the raw dlname
+-    # Older libtools had a path rather than the raw dlname
 -    return os.path.basename(dlname)
 +    dlbasename = os.path.basename(dlname)
 +    libdir = _extract_libdir_field(la_file)
@@ -139,7 +138,7 @@
 +    return libdir + '/' + dlbasename
  
  
- def extract_libtool(la_file):
+ # Returns arguments for invoking libtool, if applicable, otherwise None
 --- a/tests/scanner/test_shlibs.py
 +++ b/tests/scanner/test_shlibs.py
 @@ -7,6 +7,30 @@ from giscanner.shlibs import resolve_from_ldd_output, sanitize_shlib_path
diff --git a/nixpkgs/pkgs/development/libraries/gobject-introspection/default.nix b/nixpkgs/pkgs/development/libraries/gobject-introspection/default.nix
index ae65f5aed280..e6a1ad979b91 100644
--- a/nixpkgs/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gobject-introspection/default.nix
@@ -14,7 +14,7 @@
 , python3
 , cctools
 , cairo
-, gnome3
+, gnome
 , substituteAll
 , nixStoreDir ? builtins.storeDir
 , x11Support ? true
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gobject-introspection";
-  version = "1.66.1";
+  version = "1.68.0";
 
   # outputs TODO: share/gobject-introspection-1.0/tests is needed during build
   # by pygobject3 (and maybe others), but it's only searched in $out
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "078n0q7b6z682mf4irclrksm73cyixq295mqnqifl9plwmgaai6x";
+    sha256 = "09sawnv3xj9pzgy2qrrk87dl3jibfphnswb61i5bh0d2h4j28afj";
   };
 
   patches = [
@@ -112,8 +112,9 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/goffice/default.nix b/nixpkgs/pkgs/development/libraries/goffice/default.nix
index 64b5be2e2d33..3a48fa524842 100644
--- a/nixpkgs/pkgs/development/libraries/goffice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/goffice/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, lib, stdenv, pkg-config, intltool, glib, gtk3, lasem
-, libgsf, libxml2, libxslt, cairo, pango, librsvg, gnome3 }:
+, libgsf, libxml2, libxslt, cairo, pango, librsvg, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "goffice";
@@ -24,8 +24,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gom/default.nix b/nixpkgs/pkgs/development/libraries/gom/default.nix
index 4b5effefa57c..d11ecc6a29a5 100644
--- a/nixpkgs/pkgs/development/libraries/gom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gom/default.nix
@@ -7,7 +7,7 @@
 , python3
 , sqlite
 , gdk-pixbuf
-, gnome3
+, gnome
 , gobject-introspection
 }:
 
@@ -48,8 +48,9 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.isx86_64;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/goocanvas/default.nix b/nixpkgs/pkgs/development/libraries/goocanvas/default.nix
index c9fd5b263429..1bc763349a86 100644
--- a/nixpkgs/pkgs/development/libraries/goocanvas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/goocanvas/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gtk2, cairo, glib, pkg-config, gnome3 }:
+{ lib, stdenv, fetchurl, gtk2, cairo, glib, pkg-config, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "goocanvas";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk2 cairo glib ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/goocanvasmm/default.nix b/nixpkgs/pkgs/development/libraries/goocanvasmm/default.nix
index 632e434631c9..4e706f409870 100644
--- a/nixpkgs/pkgs/development/libraries/goocanvasmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/goocanvasmm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, goocanvas2, gtkmm3, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, goocanvas2, gtkmm3, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "goocanvasmm";
@@ -16,9 +16,10 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "goocanvasmm2";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch b/nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch
index 51bc206659d5..9111217ea08e 100644
--- a/nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch
+++ b/nixpkgs/pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch
@@ -1,18 +1,18 @@
-From 2bf6614a6d7516e194e39eb691c05b486860153c Mon Sep 17 00:00:00 2001
+From 57bed86429db9d871f1442c94f14e94e38972ca3 Mon Sep 17 00:00:00 2001
 From: worldofpeace <worldofpeace@protonmail.ch>
 Date: Thu, 16 May 2019 21:15:15 -0400
 Subject: [PATCH] meson: add options for tests installation dirs
 
 ---
  meson_options.txt |  6 ++++++
- tests/meson.build | 19 ++++++++++++++-----
- 2 files changed, 20 insertions(+), 5 deletions(-)
+ tests/meson.build | 23 ++++++++++++++++-------
+ 2 files changed, 22 insertions(+), 7 deletions(-)
 
 diff --git a/meson_options.txt b/meson_options.txt
-index 578bdae..6f5fa23 100644
+index b9a2fb5..4b8629f 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -22,3 +22,9 @@ option('tests', type: 'boolean',
+@@ -23,3 +23,9 @@ option('tests', type: 'boolean',
  option('installed_tests', type: 'boolean',
         value: true,
         description: 'Install tests')
@@ -23,12 +23,12 @@ index 578bdae..6f5fa23 100644
 +       value: '',
 +       description: 'Installation directory for binary files in tests')
 diff --git a/tests/meson.build b/tests/meson.build
-index 1f9bd0e..0253ac3 100644
+index 77281f5..7522456 100644
 --- a/tests/meson.build
 +++ b/tests/meson.build
-@@ -22,8 +22,17 @@ unit_tests = [
- python = python3.find_python()
- gen_installed_test = join_paths(meson.current_source_dir(), 'gen-installed-test.py')
+@@ -21,8 +21,17 @@ unit_tests = [
+ 
+ gen_installed_test = find_program('gen-installed-test.py')
  
 -installed_test_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'installed-tests', graphene_api_path)
 -installed_test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), 'installed-tests', graphene_api_path)
@@ -46,9 +46,9 @@ index 1f9bd0e..0253ac3 100644
  
  # Make tests conditional on having mutest-1 installed system-wide, or
  # available as a subproject
-@@ -42,13 +51,13 @@ if mutest_dep.found()
+@@ -40,13 +49,13 @@ if mutest_dep.found()
+       output: wrapper,
        command: [
-         python,
          gen_installed_test,
 -        '--testdir=@0@'.format(installed_test_bindir),
 +        '--testdir=@0@'.format(test_bindir),
@@ -62,7 +62,7 @@ index 1f9bd0e..0253ac3 100644
      )
  
      test(unit,
-@@ -57,7 +66,7 @@ if mutest_dep.found()
+@@ -55,7 +64,7 @@ if mutest_dep.found()
          include_directories: graphene_inc,
          c_args: common_cflags,
          install: get_option('installed_tests'),
@@ -71,6 +71,27 @@ index 1f9bd0e..0253ac3 100644
        ),
        env: ['MUTEST_OUTPUT=tap'],
        protocol: 'tap',
+@@ -66,17 +75,18 @@ endif
+ if build_gir and host_system == 'linux' and not meson.is_cross_build()
+   foreach unit: ['introspection.py']
+     wrapper = '@0@.test'.format(unit)
++    install_data(unit, install_dir: test_bindir)
+     custom_target(wrapper,
+       output: wrapper,
+       command: [
+         gen_installed_test,
+-        '--testdir=@0@'.format(installed_test_bindir),
++        '--testdir=@0@'.format(test_bindir),
+         '--testname=@0@'.format(unit),
+         '--outdir=@OUTDIR@',
+         '--outfile=@0@'.format(wrapper),
+       ],
+       install: get_option('installed_tests'),
+-      install_dir: installed_test_datadir,
++      install_dir: test_datadir,
+     )
+ 
+     test(unit,
 -- 
-2.22.0
+2.31.1
 
diff --git a/nixpkgs/pkgs/development/libraries/graphene/default.nix b/nixpkgs/pkgs/development/libraries/graphene/default.nix
index 57cad4497653..a8e0d1179826 100644
--- a/nixpkgs/pkgs/development/libraries/graphene/default.nix
+++ b/nixpkgs/pkgs/development/libraries/graphene/default.nix
@@ -12,11 +12,12 @@
 , docbook_xsl
 , docbook_xml_dtd_43
 , gobject-introspection
+, makeWrapper
 }:
 
 stdenv.mkDerivation rec {
   pname = "graphene";
-  version = "1.10.2";
+  version = "1.10.6";
 
   outputs = [ "out" "devdoc" "installedTests" ];
 
@@ -24,19 +25,14 @@ stdenv.mkDerivation rec {
     owner = "ebassi";
     repo = pname;
     rev = version;
-    sha256 = "1ljhhjafi1nlndjswx7mg0d01zci90wz77yvz5w8bd9mm8ssw38s";
+    sha256 = "v6YH3fRMTzhp7wmU8in9ukcavzHmOAW54EK9ZwQyFxc=";
   };
 
   patches = [
+    # Add option for changing installation path of installed tests.
     ./0001-meson-add-options-for-tests-installation-dirs.patch
   ];
 
-  mesonFlags = [
-    "-Dgtk_doc=true"
-    "-Dinstalled_test_datadir=${placeholder "installedTests"}/share"
-    "-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec"
-  ];
-
   nativeBuildInputs = [
     docbook_xml_dtd_43
     docbook_xsl
@@ -46,6 +42,7 @@ stdenv.mkDerivation rec {
     pkg-config
     gobject-introspection
     python3
+    makeWrapper
   ];
 
   buildInputs = [
@@ -57,8 +54,24 @@ stdenv.mkDerivation rec {
     mutest
   ];
 
+  mesonFlags = [
+    "-Dgtk_doc=true"
+    "-Dinstalled_test_datadir=${placeholder "installedTests"}/share"
+    "-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec"
+  ];
+
   doCheck = true;
 
+  postPatch = ''
+    patchShebangs tests/gen-installed-test.py
+    PATH=${python3.withPackages (pp: [ pp.pygobject3 pp.tappy ])}/bin:$PATH patchShebangs tests/introspection.py
+  '';
+
+  postFixup = ''
+    wrapProgram "${placeholder "installedTests"}/libexec/installed-tests/graphene-1.0/introspection.py" \
+      --prefix GI_TYPELIB_PATH : "$out/lib/girepository-1.0"
+  '';
+
   passthru = {
     tests = {
       installedTests = nixosTests.installed-tests.graphene;
@@ -73,7 +86,7 @@ stdenv.mkDerivation rec {
     description = "A thin layer of graphic data types";
     homepage = "https://ebassi.github.com/graphene";
     license = licenses.mit;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = teams.gnome.members ++ (with maintainers; [ ]);
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix b/nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix
index b80e6256e467..13ec503fae0e 100644
--- a/nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grilo-plugins/default.nix
@@ -10,7 +10,7 @@
 , librest
 , libarchive
 , libsoup
-, gnome3
+, gnome
 , libxml2
 , lua5_3
 , liboauth
@@ -31,11 +31,11 @@
 
 stdenv.mkDerivation rec {
   pname = "grilo-plugins";
-  version = "0.3.12";
+  version = "0.3.13";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xr59gzb8gw2bgj14mjllgn8y7srh373j0fp0v16ak8nd84dzdn6";
+    sha256 = "HEMF1nNkqTBUODbMGYLzDpRpc7j/avPv4x2HcJq1IPg=";
   };
 
   patches = [
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/grilo/default.nix b/nixpkgs/pkgs/development/libraries/grilo/default.nix
index fbab49273e82..1b8c46394da3 100644
--- a/nixpkgs/pkgs/development/libraries/grilo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grilo/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, meson, ninja, pkg-config, gettext, vala, glib, liboauth, gtk3
 , gtk-doc, docbook_xsl, docbook_xml_dtd_43
-, libxml2, gnome3, gobject-introspection, libsoup, totem-pl-parser }:
+, libxml2, gnome, gobject-introspection, libsoup, totem-pl-parser }:
 
 let
   pname = "grilo";
@@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [ glib liboauth gtk3 libxml2 libsoup totem-pl-parser ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/grpc/default.nix b/nixpkgs/pkgs/development/libraries/grpc/default.nix
index 9dd5150f17d5..8a44c7bc13da 100644
--- a/nixpkgs/pkgs/development/libraries/grpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grpc/default.nix
@@ -3,13 +3,13 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.37.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
+  version = "1.38.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
   pname = "grpc";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    sha256 = "0q3hcnq351j0qm0gsbaxbsnz1gd9w3bk4cazkvq4l2lfmmiw7z56";
+    sha256 = "0an903nh8lz3xlf79zsh2v55nrwnjzzavkjlrsl7j9aysgwmgn4r";
     fetchSubmodules = true;
   };
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gsettings-desktop-schemas/default.nix b/nixpkgs/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
index 318d07dfacc8..e9814a43b244 100644
--- a/nixpkgs/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
@@ -7,16 +7,16 @@
 , ninja
 , python3
   # just for passthru
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
   pname = "gsettings-desktop-schemas";
-  version = "3.38.0";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0rwcg9sd5rv7gjwapcd1jjk6l16w0p3j7wkicq1rdch4c0kch12p";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "11an29br55dp0b26kfqlrfxj19glfrmhcdpds2n1w9n04gq3pf7i";
   };
 
   nativeBuildInputs = [
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/gsignond/default.nix b/nixpkgs/pkgs/development/libraries/gsignond/default.nix
index 92123dbc3ea5..912054eb85c3 100644
--- a/nixpkgs/pkgs/development/libraries/gsignond/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsignond/default.nix
@@ -54,7 +54,7 @@ unwrapped = stdenv.mkDerivation rec {
     description = "D-Bus service which performs user authentication on behalf of its clients";
     homepage = "https://gitlab.com/accounts-sso/gsignond";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 };
diff --git a/nixpkgs/pkgs/development/libraries/gsignond/plugins/lastfm.nix b/nixpkgs/pkgs/development/libraries/gsignond/plugins/lastfm.nix
index a05069f205fe..6141528a9fe6 100644
--- a/nixpkgs/pkgs/development/libraries/gsignond/plugins/lastfm.nix
+++ b/nixpkgs/pkgs/development/libraries/gsignond/plugins/lastfm.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
     description = "Plugin for the Accounts-SSO gSignOn daemon that handles Last.FM credentials";
     homepage = "https://gitlab.com/accounts-sso/gsignond-plugin-lastfm";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gsignond/plugins/mail.nix b/nixpkgs/pkgs/development/libraries/gsignond/plugins/mail.nix
index 8bce32f976ab..977bc1489420 100644
--- a/nixpkgs/pkgs/development/libraries/gsignond/plugins/mail.nix
+++ b/nixpkgs/pkgs/development/libraries/gsignond/plugins/mail.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "Plugin for the Accounts-SSO gSignOn daemon that handles E-Mail credentials";
     homepage = "https://gitlab.com/accounts-sso/gsignond-plugin-mail";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gsignond/plugins/oauth.nix b/nixpkgs/pkgs/development/libraries/gsignond/plugins/oauth.nix
index 3bf3ab194643..bc496e8ac2cc 100644
--- a/nixpkgs/pkgs/development/libraries/gsignond/plugins/oauth.nix
+++ b/nixpkgs/pkgs/development/libraries/gsignond/plugins/oauth.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
     description = "Plugin for the Accounts-SSO gSignOn daemon that handles the OAuth 1.0 and 2.0 authentication protocols";
     homepage = "https://gitlab.com/accounts-sso/gsignond-plugin-oa";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gsignond/plugins/sasl.nix b/nixpkgs/pkgs/development/libraries/gsignond/plugins/sasl.nix
index b73559f8a532..bd87d4f72bb5 100644
--- a/nixpkgs/pkgs/development/libraries/gsignond/plugins/sasl.nix
+++ b/nixpkgs/pkgs/development/libraries/gsignond/plugins/sasl.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
     description = "Plugin for the Accounts-SSO gSignOn daemon that handles the SASL authentication protocol";
     homepage = "https://gitlab.com/accounts-sso/gsignond-plugin-sasl";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gsl/default.nix b/nixpkgs/pkgs/development/libraries/gsl/default.nix
index 04c8bcbbbecc..2dc47a93be3c 100644
--- a/nixpkgs/pkgs/development/libraries/gsl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsl/default.nix
@@ -8,6 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "1a460zj9xmbgvcymkdhqh313c4l29mn9cffbi5vf33x3qygk70mp";
   };
 
+  preConfigure = if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '' else null;
+
   # do not let -march=skylake to enable FMA (https://lists.gnu.org/archive/html/bug-gsl/2011-11/msg00019.html)
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isx86_64 "-mno-fma";
 
diff --git a/nixpkgs/pkgs/development/libraries/gsound/default.nix b/nixpkgs/pkgs/development/libraries/gsound/default.nix
index 2a3e846d38d6..bcd39ce22733 100644
--- a/nixpkgs/pkgs/development/libraries/gsound/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsound/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, vala, libcanberra, gobject-introspection, libtool, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, glib, vala, libcanberra, gobject-introspection, libtool, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gsound";
@@ -13,8 +13,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib libcanberra ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gspell/default.nix b/nixpkgs/pkgs/development/libraries/gspell/default.nix
index 890fcb981181..f591246eaf81 100644
--- a/nixpkgs/pkgs/development/libraries/gspell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gspell/default.nix
@@ -8,7 +8,7 @@
 , icu
 , vala
 , gobject-introspection
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/gssdp/default.nix b/nixpkgs/pkgs/development/libraries/gssdp/default.nix
index 440caba25476..6a76c07fec7b 100644
--- a/nixpkgs/pkgs/development/libraries/gssdp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gssdp/default.nix
@@ -11,7 +11,7 @@
 , libsoup
 , gtk3
 , glib
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
index 40b10d0983ad..faf38a1a05fb 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , meson
 , ninja
 , gettext
@@ -103,6 +104,15 @@ stdenv.mkDerivation rec {
   patches = [
     # Use pkgconfig to inject the includedirs
     ./fix_pkgconfig_includedir.patch
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Fix “error: cannot initialize a parameter of type 'unsigned long *' with an rvalue of type 'typename std::remove_reference<decltype(*(&opencv_dilate_erode_type))>::type *' (aka 'volatile unsigned long *')” on Darwin.
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/640a65bf966df065d41a511e2d76d1f26a2e770c.patch";
+      sha256 = "E5pig+qEfR58Jticr6ydFxZOhM3ZJ8zgrf5K4BdiB/Y=";
+      includes = [
+        "ext/opencv/gstcvdilateerode.cpp"
+      ];
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
index 4f392622065b..699f70a0788a 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
@@ -26,7 +26,7 @@
 , wayland
 , wayland-protocols
 , enableAlsa ? stdenv.isLinux
-, alsaLib
+, alsa-lib
 # Enabling Cocoa seems to currently not work, giving compile
 # errors. Suspected is that a newer version than clang
 # is needed than 5.0 but it is not clear.
@@ -41,13 +41,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-base";
-  version = "1.18.2";
+  version = "1.18.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1b05kg46azrxxvq42c71071lfsnc34pw4vynnkczdqi6g0gzn16x";
+    sha256 = "08w3ivbc6n4vdds2ap6q7l8zdk9if8417nznyqidf0adm0lk5r99";
   };
 
   patches = [
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
     pango
     OpenGL
   ] ++ lib.optionals enableAlsa [
-    alsaLib
+    alsa-lib
   ] ++ lib.optionals enableX11 [
     libXext
     libXv
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
index 84badf304108..2d43a02725f9 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer";
-  version = "1.18.2";
+  version = "1.18.4";
 
   outputs = [
     "out"
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0ijlmvr660m8zn09xlmnq1ajrziqsivp2hig5a9mabhcjx7ypkb6";
+    sha256 = "1igv9l4hm21kp1jmlwlagzs7ly1vaxv1sbda29q8247372dwkvls";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
index a39eadafb0b7..517fe9b302d3 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-devtools";
-  version = "1.18.2";
+  version = "1.18.4";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0mhascwvgirgh7b5dykpnk06f7f5g62gh3sl30i6kygiidqkv9vf";
+    sha256 = "1kvcabcfzm7wqih3lzgrg9xjbn4xpx43d1m2zkkvab4i8161kggz";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
index 774fefbc3584..6ada053ea012 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -16,7 +16,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-editing-services";
-  version = "1.18.2";
+  version = "1.18.4";
 
   outputs = [
     "out"
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0pv2k8zlpn3vv2sdlspi3m63ixcwzi90pjly2ypbkg59ab97rb15";
+    sha256 = "010xg960qsh5dwmf0y9l1q13h0cymmrgapzla2zsw66ylxqbi1s6";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
index b08759b8dba1..86684893efd3 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
@@ -48,13 +48,13 @@ assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch64);
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
-  version = "1.18.2";
+  version = "1.18.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1929nhjsvbl4bw37nfagnfsnxz737cm2x3ayz9ayrn9lwkfm45zp";
+    sha256 = "1c1rpq709cy8maaykyn1n0kckj9c6fl3mhvixkk6xmdwkcx0xrdn";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix
index 2c683a84da4d..7123aa0d3ac1 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/gstreamermm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, file, glibmm, gst_all_1, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, file, glibmm, gst_all_1, gnome }:
 stdenv.mkDerivation rec {
   pname = "gstreamermm";
   version = "1.10.0";
@@ -17,9 +17,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      versionPolicy = "none"; # Unpredictable version stability
+    updateScript = gnome.updateScript {
+      packageName = "gst_all_1.gstreamermm";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
index f0755f201d48..009a1555f770 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-libav";
-  version = "1.18.2";
+  version = "1.18.4";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0jbzams9ggk3sq9ywv4gsl9rghyn203l2582m6l5c1sz9ka9m5in";
+    sha256 = "15n3x3vhshqa3icw93g4vqmqd46122anzqvfxwn6q8famlxlcjil";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index 037face3d128..56596960019b 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-rtsp-server";
-  version = "1.18.2";
+  version = "1.18.4";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1qjlp7az0hkzxvq53hwnp55sp6xhbybfwzaj66hp45jslsmj4fcp";
+    sha256 = "153c78klvzlmi86d0gmdf7w9crv11rkd4y82b14a0wdr83gbhsx4";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
index 7c70b7ead1ab..049e8a99f095 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-ugly";
-  version = "1.18.2";
+  version = "1.18.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1nwbcv5yaib3d8icvyja3zf6lyjf5zf1hndbijrhj8j7xlia0dx3";
+    sha256 = "0g6i4db1883q3j0l2gdv46fcqwiiaw63n6mhvsfcms1i1p7g1391";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
index 2c92cd2236ff..19e65c5a75eb 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer-vaapi";
-  version = "1.18.2";
+  version = "1.18.4";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1h67n7wk1297rzynknbyv44gdacblvkcvb37x8yxi5d0zms2qywc";
+    sha256 = "1sia4l88z7kkxm2z9j20l43rqkrnsa47xccski10s5gkhsprinwj";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gtk-engine-bluecurve/default.nix b/nixpkgs/pkgs/development/libraries/gtk-engine-bluecurve/default.nix
index 84920060c5ea..918e1679eba2 100644
--- a/nixpkgs/pkgs/development/libraries/gtk-engine-bluecurve/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk-engine-bluecurve/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation {
     description = "Original Bluecurve engine from Red Hat's artwork package";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
-    maintainers = [ lib.maintainers.gnidorah ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gtk-frdp/default.nix b/nixpkgs/pkgs/development/libraries/gtk-frdp/default.nix
new file mode 100644
index 000000000000..e6c6d9391933
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gtk-frdp/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, vala
+, gobject-introspection
+, glib
+, gtk3
+, freerdp
+, nix-update-script
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gtk-frdp";
+  version = "3.37.1-unstable-2020-10-26";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = pname;
+    rev = "805721e82ca1df6a50da3b5bd3b75d6747016482";
+    sha256 = "q/UFKYj3LUkAzll3KeKd6oec0GJnDtTuFMTTatKFlcs=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    freerdp
+  ];
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/GNOME/gtk-frdp";
+    description = "RDP viewer widget for GTK";
+    maintainers = teams.gnome.members;
+    license = licenses.lgpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/gtk-sharp/2.0.nix b/nixpkgs/pkgs/development/libraries/gtk-sharp/2.0.nix
index 1e7c86530658..f35f5e0552c4 100644
--- a/nixpkgs/pkgs/development/libraries/gtk-sharp/2.0.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk-sharp/2.0.nix
@@ -20,6 +20,7 @@
 , automake
 , libtool
 , which
+, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
@@ -34,6 +35,13 @@ stdenv.mkDerivation rec {
     sha256 = "1vy6yfwkfv6bb45bzf4g6dayiqkvqqvlr02rsnhd10793hlpqlgg";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://projects.archlinux.de/svntogit/packages.git/plain/trunk/gtk-sharp2-2.12.12-gtkrange.patch?h=packages/gtk-sharp-2";
+      sha256 = "bjx+OfgWnN8SO82p8G7pbGuxJ9EeQxMLeHnrtEm8RV8=";
+    })
+  ];
+
   postInstall = ''
     pushd $out/bin
     for f in gapi2-*
diff --git a/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix b/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix
index 491656a0c682..6b996244a9f3 100644
--- a/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix
@@ -42,6 +42,12 @@ stdenv.mkDerivation rec {
       url = "https://github.com/mono/gtk-sharp/commit/401df51bc461de93c1a78b6a7a0d5adc63cf186c.patch";
       sha256 = "0hrkcr5a7wkixnyp60v4d6j3arsb63h54rd30lc5ajfjb3p92kcf";
     })
+    # @see https://github.com/mono/gtk-sharp/pull/263
+    (fetchpatch {
+      name = "disambiguate_Gtk.Range.patch";
+      url = "https://github.com/mono/gtk-sharp/commit/a00552ad68ae349e89e440dca21b86dbd6bccd30.patch";
+      sha256 = "1ylplr9g9x7ybsgrydsgr6p3g7w6i46yng1hnl3afgn4vj45rag2";
+    })
   ];
 
   dontStrip = true;
diff --git a/nixpkgs/pkgs/development/libraries/gtk/2.x.nix b/nixpkgs/pkgs/development/libraries/gtk/2.x.nix
index 8f50c922f514..1a7cc57fbeaf 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/2.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/2.x.nix
@@ -1,15 +1,12 @@
 { config, lib, substituteAll, stdenv, fetchurl, pkg-config, gettext, glib, atk, pango, cairo, perl, xorg
 , gdk-pixbuf, xlibsWrapper, gobject-introspection
 , xineramaSupport ? stdenv.isLinux
-, cupsSupport ? config.gtk2.cups or stdenv.isLinux, cups ? null
+, cupsSupport ? config.gtk2.cups or stdenv.isLinux, cups
 , gdktarget ? if stdenv.isDarwin then "quartz" else "x11"
 , AppKit, Cocoa
 , fetchpatch
 }:
 
-assert xineramaSupport -> xorg.libXinerama != null;
-assert cupsSupport -> cups != null;
-
 with lib;
 
 let
@@ -64,6 +61,10 @@ stdenv.mkDerivation rec {
     ++ optionals cupsSupport [ cups ]
     ++ optionals stdenv.isDarwin [ AppKit Cocoa ];
 
+  preConfigure = if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '' else null;
+
   configureFlags = [
     "--with-gdktarget=${gdktarget}"
     "--with-xinput=yes"
diff --git a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
index 0d4bec5f3441..f9b5d5f68b56 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
@@ -29,7 +29,7 @@
 , libxkbcommon
 , libxml2
 , gmp
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 , sassc
 , trackerSupport ? stdenv.isLinux
@@ -42,14 +42,12 @@
 , xineramaSupport ? stdenv.isLinux
 , cupsSupport ? stdenv.isLinux
 , withGtkDoc ? stdenv.isLinux
-, cups ? null
+, cups
 , AppKit
 , Cocoa
 , broadwaySupport ? true
 }:
 
-assert cupsSupport -> cups != null;
-
 let
 
   gtkCleanImmodulesCache = substituteAll {
@@ -208,7 +206,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gtk+";
       attrPath = "gtk3";
     };
diff --git a/nixpkgs/pkgs/development/libraries/gtk/4.x.nix b/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
index b64b8bc36fde..8791d24ad361 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
@@ -5,9 +5,7 @@
 , pkg-config
 , gettext
 , graphene
-, docbook-xsl-nons
-, docbook_xml_dtd_43
-, gtk-doc
+, gi-docgen
 , meson
 , ninja
 , python3
@@ -30,7 +28,7 @@
 , libsoup
 , ffmpeg
 , gmp
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 , gst_all_1
 , sassc
@@ -45,15 +43,12 @@
 , wayland-protocols
 , xineramaSupport ? stdenv.isLinux
 , cupsSupport ? stdenv.isLinux
-, withGtkDoc ? stdenv.isLinux
-, cups ? null
+, cups
 , AppKit
 , Cocoa
 , broadwaySupport ? true
 }:
 
-assert cupsSupport -> cups != null;
-
 let
 
   gtkCleanImmodulesCache = substituteAll {
@@ -66,9 +61,9 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gtk4";
-  version = "4.0.3";
+  version = "4.2.1";
 
-  outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
+  outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
   outputBin = "dev";
 
   setupHooks = [
@@ -78,7 +73,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
-    sha256 = "18mJNyV5C1C9mjuyeIVtnVQ7RLa5uVHXtg573swTGJA=";
+    sha256 = "AjFpd13kPwof3gZvvBnXhUXqanViwZFavem4rkpzCeY=";
   };
 
   nativeBuildInputs = [
@@ -90,21 +85,17 @@ stdenv.mkDerivation rec {
     pkg-config
     python3
     sassc
-  ] ++ setupHooks ++ lib.optionals withGtkDoc [
-    pandoc
-    docbook_xml_dtd_43
-    docbook-xsl-nons
-    gtk-doc
-    # For xmllint
-    libxml2
-  ];
+    gi-docgen
+  ] ++ setupHooks;
 
   buildInputs = [
     libxkbcommon
     epoxy
     json-glib
     isocodes
+  ] ++ lib.optionals (!stdenv.isDarwin) [
     vulkan-headers
+  ] ++ [
     librest
     libsoup
     ffmpeg
@@ -143,18 +134,27 @@ stdenv.mkDerivation rec {
     glib
     graphene
     pango
-    vulkan-loader # TODO: Possibly not used on Darwin
-
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    vulkan-loader
+  ] ++ [
     # Required for GSettings schemas at runtime.
     # Will be picked up by wrapGAppsHook.
     gsettings-desktop-schemas
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=${lib.boolToString withGtkDoc}"
-    "-Dtests=false"
-    "-Dtracker3=${lib.boolToString trackerSupport}"
-    "-Dbroadway_backend=${lib.boolToString broadwaySupport}"
+    # ../docs/tools/shooter.c:4:10: fatal error: 'cairo-xlib.h' file not found
+    "-Dgtk_doc=${lib.boolToString x11Support}"
+    "-Dbuild-tests=false"
+    "-Dtracker=${if trackerSupport then "enabled" else "disabled"}"
+    "-Dbroadway-backend=${lib.boolToString broadwaySupport}"
+  ] ++ lib.optionals (!cupsSupport) [
+    "-Dprint-cups=disabled"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-Dvulkan=disabled"
+    "-Dmedia-gstreamer=disabled" # requires gstreamer-gl
+  ] ++ lib.optionals (!x11Support) [
+    "-Dx11-backend=false"
   ];
 
   doCheck = false; # needs X11
@@ -173,20 +173,12 @@ stdenv.mkDerivation rec {
       gdk/gen-gdk-gresources-xml.py
       gtk/gen-gtk-gresources-xml.py
       gtk/gentypefuncs.py
-      docs/reference/gtk/gtk-markdown-to-docbook
     )
 
     chmod +x ''${files[@]}
     patchShebangs ''${files[@]}
   '';
 
-  postBuild =  lib.optionalString withGtkDoc ''
-    # Meson not building `custom_target`s passed to `custom_files` argument of `gnome.gtkdoc` function
-    # as part of the `install` target. We have to build the docs manually first.
-    # https://github.com/mesonbuild/meson/issues/2831
-    ninja g{t,d,s}k4-doc
-  '';
-
   preInstall = ''
     OLD_PATH="$PATH"
     PATH="$PATH:$dev/bin" # so the install script finds gtk4-update-icon-cache
@@ -204,6 +196,13 @@ stdenv.mkDerivation rec {
     for f in $dev/bin/gtk4-encode-symbolic-svg; do
       wrapProgram $f --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
     done
+
+  '' + lib.optionalString x11Support ''
+    # So that DevHelp can find this.
+    # TODO: Remove this with DevHelp 41.
+    mkdir -p "$devdoc/share/devhelp/books"
+    mv "$out/share/doc/"* "$devdoc/share/devhelp/books"
+    rmdir -p --ignore-fail-on-non-empty "$out/share/doc"
   '';
 
   # Wrap demos
@@ -217,7 +216,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gtk";
       attrPath = "gtk4";
     };
@@ -237,7 +236,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://www.gtk.org/";
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ raskin lethalman worldofpeace ];
+    maintainers = teams.gnome.members ++ (with maintainers; [ raskin ]);
     platforms = platforms.all;
     changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${version}/NEWS";
   };
diff --git a/nixpkgs/pkgs/development/libraries/gtkd/default.nix b/nixpkgs/pkgs/development/libraries/gtkd/default.nix
index a3aa18b058a2..eaf8a94d137e 100644
--- a/nixpkgs/pkgs/development/libraries/gtkd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtkd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, fetchpatch, atk, cairo, ldc, gdk-pixbuf, gnome3, gst_all_1, librsvg
+{ lib, stdenv, fetchzip, fetchpatch, atk, cairo, ldc, gdk-pixbuf, gnome, gst_all_1, librsvg
 , glib, gtk3, gtksourceview4, libgda, libpeas, pango, pkg-config, which, vte }:
 
 let
diff --git a/nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix b/nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix
index 521f4ca15f30..cf26e22da5bc 100644
--- a/nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
     license = lib.licenses.lgpl2Plus;
 
-    maintainers = with lib.maintainers; [ raskin vcunat ];
+    maintainers = with lib.maintainers; [ raskin ];
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix b/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix
index 950e1a976a62..0f6811815f60 100644
--- a/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, gtk3, glibmm, cairomm, pangomm, atkmm, epoxy, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, gtk3, glibmm, cairomm, pangomm, atkmm, epoxy, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gtkmm";
-  version = "3.24.3";
+  version = "3.24.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-YEl8T381TDvSVXSF8CVPi3tM9L68n+4L4mp3dE6s1DU=";
+    sha256 = "sha256-m+txw+kM/Pt5A5a1Hj9ecWmWZ1Hv1PPvlpcRS+O+Z0M=";
   };
 
   outputs = [ "out" "dev" ];
@@ -16,15 +16,14 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ];
 
-  enableParallelBuilding = true;
-
   # https://bugzilla.gnome.org/show_bug.cgi?id=764521
   doCheck = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "${pname}3";
+      versionPolicy = "odd-unstable";
     };
   };
 
@@ -45,7 +44,7 @@ stdenv.mkDerivation rec {
 
     license = licenses.lgpl2Plus;
 
-    maintainers = with maintainers; [ raskin vcunat ];
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix b/nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix
new file mode 100644
index 000000000000..50839568462f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix
@@ -0,0 +1,91 @@
+{ stdenv
+, lib
+, fetchurl
+, pkg-config
+, meson
+, ninja
+, python3
+, gtk4
+, glibmm_2_68
+, cairomm_1_16
+, pangomm_2_48
+, epoxy
+, gnome
+, makeFontsConf
+, xvfb-run
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gtkmm";
+  version = "4.0.1";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-iXPZvHhI4CyyBR4F8+46S6/+L+tK9KVIfw4xMu7AOIQ=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    python3
+  ];
+
+  buildInputs = [
+    epoxy
+  ];
+
+  propagatedBuildInputs = [
+    glibmm_2_68
+    gtk4
+    cairomm_1_16
+    pangomm_2_48
+  ];
+
+  checkInputs = [
+    xvfb-run
+  ];
+
+  # Tests require fontconfig.
+  FONTCONFIG_FILE = makeFontsConf {
+    fontDirectories = [ ];
+  };
+
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+
+    xvfb-run -s '-screen 0 800x600x24' \
+      meson test --print-errorlogs
+
+    runHook postCheck
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "${pname}4";
+      versionPolicy = "odd-unstable";
+    };
+  };
+
+  meta = with lib; {
+    description = "C++ interface to the GTK graphical user interface library";
+    longDescription = ''
+      gtkmm is the official C++ interface for the popular GUI library
+      GTK.  Highlights include typesafe callbacks, and a
+      comprehensive set of widgets that are easily extensible via
+      inheritance.  You can create user interfaces either in code or
+      with the Glade User Interface designer, using libglademm.
+      There's extensive documentation, including API reference and a
+      tutorial.
+    '';
+    homepage = "https://gtkmm.org/";
+    license = licenses.lgpl2Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ raskin ]);
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix
index 84a20154b13c..dce589dd6474 100644
--- a/nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, atk, cairo, glib, gtk3, pango, vala
-, libxml2, perl, intltool, gettext, gobject-introspection, dbus, xvfb_run, shared-mime-info }:
+, libxml2, perl, intltool, gettext, gobject-introspection, dbus, xvfb-run, shared-mime-info }:
 
 stdenv.mkDerivation rec {
   pname = "gtksourceview";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config intltool perl gobject-introspection vala ];
 
-  checkInputs = [ xvfb_run dbus ];
+  checkInputs = [ xvfb-run dbus ];
 
   buildInputs = [ atk cairo glib pango libxml2 gettext ];
 
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
index 9ead894e0d25..eb92586ce84a 100644
--- a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
@@ -1,32 +1,42 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, atk, cairo, glib, gtk3, pango, fribidi, vala
-, libxml2, perl, gettext, gnome3, gobject-introspection, dbus, xvfb_run, shared-mime-info
-, meson, ninja }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, meson
+, ninja
+, pkg-config
+, atk
+, cairo
+, glib
+, gtk3
+, pango
+, fribidi
+, vala
+, libxml2
+, perl
+, gettext
+, gnome
+, gobject-introspection
+, dbus
+, xvfb-run
+, shared-mime-info
+}:
 
 stdenv.mkDerivation rec {
   pname = "gtksourceview";
   version = "4.8.1";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0WPXG1/K+8Wx7sbdhB7b283dOnURzV/c/9hri7/mmsE=";
   };
 
-  propagatedBuildInputs = [
-    # Required by gtksourceview-4.0.pc
-    gtk3
-    # Used by gtk_source_language_manager_guess_language
-    shared-mime-info
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ meson ninja pkg-config gettext perl gobject-introspection vala ];
-
-  checkInputs = [ xvfb_run dbus ];
-
-  buildInputs = [ atk cairo glib pango fribidi libxml2 ];
-
   patches = [
+    # By default, the library loads syntaxes from XDG_DATA_DIRS and user directory
+    # but not from its own datadr (it assumes it will be in XDG_DATA_DIRS).
+    # Since this is not generally true with Nix, let’s add $out/share unconditionally.
     ./4.x-nix_share_path.patch
 
     # fixes intermittent "gtksourceview-gresources.h: no such file" errors
@@ -37,27 +47,63 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    perl
+    gobject-introspection
+    vala
+  ];
+
+  buildInputs = [
+    atk
+    cairo
+    glib
+    pango
+    fribidi
+    libxml2
+  ];
+
+  propagatedBuildInputs = [
+    # Required by gtksourceview-4.0.pc
+    gtk3
+    # Used by gtk_source_language_manager_guess_language
+    shared-mime-info
+  ];
+
+  checkInputs = [
+    xvfb-run
+    dbus
+  ];
 
   doCheck = stdenv.isLinux;
+
   checkPhase = ''
+    runHook preCheck
+
     XDG_DATA_DIRS="$XDG_DATA_DIRS:${shared-mime-info}/share" \
     xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
       meson test --no-rebuild --print-errorlogs
+
+    runHook postCheck
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gtksourceview";
       attrPath = "gtksourceview4";
+      versionPolicy = "odd-unstable";
     };
   };
 
   meta = with lib; {
+    description = "Source code editing widget for GTK";
     homepage = "https://wiki.gnome.org/Projects/GtkSourceView";
-    platforms = with platforms; linux ++ darwin;
-    license = licenses.lgpl21;
+    platforms = platforms.unix;
+    license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/5.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/5.x.nix
new file mode 100644
index 000000000000..fd4a420012c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gtksourceview/5.x.nix
@@ -0,0 +1,99 @@
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, glib
+, pcre2
+, gtk4
+, pango
+, fribidi
+, vala
+, libxml2
+, perl
+, gettext
+, gnome
+, gobject-introspection
+, dbus
+, xvfb-run
+, shared-mime-info
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gtksourceview";
+  version = "5.0.0";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1hyrmh9r1zd5kjh5ch9d7bhk2kphbqhm7ijfxfkcdln8q0rnd0k4";
+  };
+
+  patches = [
+    # By default, the library loads syntaxes from XDG_DATA_DIRS and user directory
+    # but not from its own datadr (it assumes it will be in XDG_DATA_DIRS).
+    # Since this is not generally true with Nix, let’s add $out/share unconditionally.
+    ./4.x-nix_share_path.patch
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    perl
+    gobject-introspection
+    vala
+  ];
+
+  buildInputs = [
+    glib
+    pcre2
+    pango
+    fribidi
+    libxml2
+  ];
+
+  propagatedBuildInputs = [
+    # Required by gtksourceview-5.0.pc
+    gtk4
+    # Used by gtk_source_language_manager_guess_language
+    shared-mime-info
+  ];
+
+  checkInputs = [
+    xvfb-run
+    dbus
+  ];
+
+  doCheck = stdenv.isLinux;
+
+  checkPhase = ''
+    runHook preCheck
+
+    XDG_DATA_DIRS="$XDG_DATA_DIRS:${shared-mime-info}/share" \
+    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      meson test --no-rebuild --print-errorlogs
+
+    runHook postCheck
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gtksourceview";
+      attrPath = "gtksourceview5";
+      versionPolicy = "odd-unstable";
+    };
+  };
+
+  meta = with lib; {
+    description = "Source code editing widget for GTK";
+    homepage = "https://wiki.gnome.org/Projects/GtkSourceView";
+    platforms = platforms.unix;
+    license = licenses.lgpl21Plus;
+    maintainers = teams.gnome.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceviewmm/4.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceviewmm/4.x.nix
index 5e80f91abc1b..3011a126c10d 100644
--- a/nixpkgs/pkgs/development/libraries/gtksourceviewmm/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtksourceviewmm/4.x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gtkmm3, glibmm, gtksourceview4, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, gtkmm3, glibmm, gtksourceview4, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gtksourceviewmm";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceviewmm/default.nix b/nixpkgs/pkgs/development/libraries/gtksourceviewmm/default.nix
index 7ee6b656ead1..fc4439e223ee 100644
--- a/nixpkgs/pkgs/development/libraries/gtksourceviewmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtksourceviewmm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gtkmm3, glibmm, gtksourceview3, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, gtkmm3, glibmm, gtksourceview3, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gtksourceviewmm";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "gtksourceviewmm";
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/gupnp-av/default.nix b/nixpkgs/pkgs/development/libraries/gupnp-av/default.nix
index 9bf39d94aed3..8d800f979402 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp-av/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp-av/default.nix
@@ -8,7 +8,7 @@
 , docbook_xml_dtd_412
 , glib
 , libxml2
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -43,8 +43,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gupnp-dlna/default.nix b/nixpkgs/pkgs/development/libraries/gupnp-dlna/default.nix
index e11d86f82e19..f9efe352a84b 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp-dlna/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp-dlna/default.nix
@@ -8,7 +8,7 @@
 , docbook_xml_dtd_412
 , libxml2
 , gst_all_1
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -48,8 +48,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix b/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix
index 233eb7e3c85f..6eb44b9172ab 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp-igd/default.nix
@@ -10,7 +10,7 @@
 , docbook_xml_dtd_412
 , glib
 , gupnp
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -49,8 +49,9 @@ stdenv.mkDerivation rec {
   #doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gupnp/default.nix b/nixpkgs/pkgs/development/libraries/gupnp/default.nix
index d6465d71c50f..c91d25123f61 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchurl
+, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -14,7 +15,7 @@
 , libsoup
 , libxml2
 , libuuid
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -28,6 +29,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-96AwfqUfXkTRuDL0k92QRURKOk4hHvhd/Zql3W6up9E=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2021-33516.patch";
+      url = "https://gitlab.gnome.org/GNOME/gupnp/-/commit/ca6ec9dcb26fd7a2a630eb6a68118659b589afac.patch";
+      sha256 = "sha256-G7e/xNQB7Kp2fPzqVeD/cH3h1co9hZXh55QOUBnAnvU=";
+    })
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
@@ -58,7 +67,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/gvfs/default.nix b/nixpkgs/pkgs/development/libraries/gvfs/default.nix
index 2c9bac002fd3..547c35e66eca 100644
--- a/nixpkgs/pkgs/development/libraries/gvfs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gvfs/default.nix
@@ -23,7 +23,7 @@
 , samba
 , libmtp
 , gnomeSupport ? false
-, gnome3
+, gnome
 , gcr
 , glib-networking
 , gnome-online-accounts
@@ -41,11 +41,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gvfs";
-  version = "1.46.2";
+  version = "1.48.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "2D+hYChmcMA+uJAkBgbYr6fqajqBjorRfu7Y2XZIe9c=";
+    sha256 = "1hlxl6368h6nyqp1888szxs9hnpcw98k3h23dgqi29xd38klzsmj";
   };
 
   postPatch = ''
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
     gsettings-desktop-schemas
     # TODO: a ligther version of libsoup to have FTP/HTTP support?
   ] ++ lib.optionals gnomeSupport [
-    gnome3.libsoup
+    gnome.libsoup
     gcr
     glib-networking # TLS support
     gnome-online-accounts
@@ -117,8 +117,9 @@ stdenv.mkDerivation rec {
   doInstallCheck = doCheck;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
@@ -126,6 +127,6 @@ stdenv.mkDerivation rec {
     description = "Virtual Filesystem support library" + optionalString gnomeSupport " (full GNOME support)";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.lethalman ] ++ teams.gnome.members;
+    maintainers = [ ] ++ teams.gnome.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/herqq/default.nix b/nixpkgs/pkgs/development/libraries/herqq/default.nix
index f35d7528f4e8..65eacd7fffe3 100644
--- a/nixpkgs/pkgs/development/libraries/herqq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/herqq/default.nix
@@ -1,10 +1,10 @@
-{ lib, mkDerivation, unzip, fetchFromGitHub, qmake, qtmultimedia, qtbase }:
+{ lib, mkDerivation, fetchFromGitHub, qmake, qtmultimedia, qtbase }:
 
 mkDerivation rec {
   version = "unstable-20-06-26";
   pname = "herqq";
 
-  nativeBuildInputs = [ qmake unzip ];
+  nativeBuildInputs = [ qmake ];
   buildInputs = [ qtbase qtmultimedia ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/hivex/default.nix b/nixpkgs/pkgs/development/libraries/hivex/default.nix
index fb77e08ca6b0..b151db07df3d 100644
--- a/nixpkgs/pkgs/development/libraries/hivex/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hivex/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hivex";
-  version = "1.3.19";
+  version = "1.3.20";
 
   src = fetchurl {
     url = "https://libguestfs.org/download/hivex/${pname}-${version}.tar.gz";
-    sha256 = "0qppahpf7jq950nf8ial47h90nyqgnsffsj3zgdjjwkn958wq0ji";
+    sha256 = "sha256-9SPDe7BkpLq321IkkCw07uT5+rLZuBz2FbMsC4UJ0y0=";
   };
 
   patches = [ ./hivex-syms.patch ];
diff --git a/nixpkgs/pkgs/development/libraries/hotpatch/default.nix b/nixpkgs/pkgs/development/libraries/hotpatch/default.nix
index 9857f9f281cc..2dd894ff4a36 100644
--- a/nixpkgs/pkgs/development/libraries/hotpatch/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hotpatch/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "Hot patching executables on Linux using .so file injection";
     homepage = src.meta.homepage;
     license = licenses.bsd3;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = ["i686-linux" "x86_64-linux"];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
index 37b567896359..f1bcd4ad00c0 100644
--- a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -761,11 +761,11 @@ in rec {
   da_DK = da-dk;
   da-dk = mkDict rec {
     name = "hunspell-dict-da-dk-${version}";
-    version = "2.5.137";
+    version = "2.5.189";
 
     src = fetchurl {
       url = "https://stavekontrolden.dk/dictionaries/da_DK/da_DK-${version}.oxt";
-      sha256 = "16y0smkg1mq0133r1fbw5ak6s2xw39281knk5ivhanakayq789qx";
+      sha256 = "sha256:0i1cw0nfg24b0sg2yc3q7315ng5vc5245nvh0l1cndkn2c9z4978";
     };
 
     shortName = "da-dk";
diff --git a/nixpkgs/pkgs/development/libraries/hyperscan/default.nix b/nixpkgs/pkgs/development/libraries/hyperscan/default.nix
index f160afb99b7c..4093578156a6 100644
--- a/nixpkgs/pkgs/development/libraries/hyperscan/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hyperscan/default.nix
@@ -11,12 +11,12 @@
 
 stdenv.mkDerivation rec {
   pname = "hyperscan";
-  version = "5.3.0";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = pname;
-    sha256 = "0psfkzmyhqfrs750b10d0xv37rcz6nwsw1mnc7zagijckwis2wvj";
+    sha256 = "sha256-AJAjaXVnGqIlMk+gb6lpTLUdZr8nxn2XSW4fj6j/cmk=";
     rev = "v${version}";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/icu/69.nix b/nixpkgs/pkgs/development/libraries/icu/69.nix
new file mode 100644
index 000000000000..8cea41daadb9
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/icu/69.nix
@@ -0,0 +1,4 @@
+import ./base.nix {
+  version = "69.1";
+  sha256 = "0icps0avkwy5df3wwc5kybxcg63hcgk4phdh9g244g0xrmx7pfjc";
+}
diff --git a/nixpkgs/pkgs/development/libraries/igraph/default.nix b/nixpkgs/pkgs/development/libraries/igraph/default.nix
index 86b8b7130ff4..03573716fa35 100644
--- a/nixpkgs/pkgs/development/libraries/igraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/igraph/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "igraph";
-  version = "0.9.2";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Ylw02Mz9H4wIWfq59za/X7xfhgW9o0DNU55nLFqeUeo=";
+    sha256 = "sha256-tF+cnJRv125bSpZIpABTIHAfJO4TNfSBHjnzpNTbFgk=";
   };
 
   # Normally, igraph wants us to call bootstrap.sh, which will call
@@ -77,15 +77,17 @@ stdenv.mkDerivation rec {
     "-DIGRAPH_USE_INTERNAL_GMP=OFF"
     "-DIGRAPH_GLPK_SUPPORT=ON"
     "-DIGRAPH_GRAPHML_SUPPORT=ON"
-    "-DIGRAPH_ENABLE_LTO=ON"
+    "-DIGRAPH_ENABLE_LTO=AUTO"
     "-DIGRAPH_ENABLE_TLS=ON"
     "-DBUILD_SHARED_LIBS=ON"
   ];
 
   doCheck = true;
 
-  preCheck = ''
-    # needed to find libigraph.so
+  # needed to find libigraph, and liblas on darwin
+  preCheck = if stdenv.isDarwin then ''
+    export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [ blas ]}:$PWD/src"
+  '' else ''
     export LD_LIBRARY_PATH="$PWD/src"
   '';
 
@@ -94,6 +96,10 @@ stdenv.mkDerivation rec {
     cp -r doc "$out/share"
   '';
 
+  postFixup = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libigraph.dylib
+  '';
+
   meta = with lib; {
     description = "The network analysis package";
     homepage = "https://igraph.org/";
diff --git a/nixpkgs/pkgs/development/libraries/imlib/default.nix b/nixpkgs/pkgs/development/libraries/imlib/default.nix
index 53612f8205fe..1d6fed2281e7 100644
--- a/nixpkgs/pkgs/development/libraries/imlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/imlib/default.nix
@@ -1,4 +1,6 @@
-{lib, stdenv, fetchurl, fetchpatch, libX11, libXext, xorgproto, libjpeg, libungif, libtiff, libpng}:
+{ lib, stdenv, fetchurl, fetchpatch
+, libX11, libXext, xorgproto, libjpeg, giflib, libtiff, libpng
+}:
 
 stdenv.mkDerivation {
   name = "imlib-1.9.15";
@@ -13,6 +15,16 @@ stdenv.mkDerivation {
       url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/imlib/files/imlib-1.9.15-bpp16-CVE-2007-3568.patch";
       sha256 = "0lxfibi094gki39sq1w4p0hcx25xlk0875agbhjkjngzx862wvbg";
     })
+
+    # The following two patches fix the build with recent giflib.
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/imlib/files/imlib-1.9.15-giflib51-1.patch?id=c6d0ed89ad5653421f21cbf3b3d40fd9a1361828";
+      sha256 = "0jynlhxcyjiwnz1m8j48xwz4z5csgyg03jfjc8xgpvvcyid4m65l";
+    })
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/imlib/files/imlib-1.9.15-giflib51-2.patch?id=c6d0ed89ad5653421f21cbf3b3d40fd9a1361828";
+      sha256 = "164x7rd992930rqllmr89p5ahfmbz37ipi8x0igd8gkvc8a4fd5x";
+    })
   ];
 
   configureFlags = [
@@ -21,11 +33,11 @@ stdenv.mkDerivation {
     "--x-libraries=${libX11.out}/lib"
   ];
 
-  buildInputs = [libjpeg libXext libX11 xorgproto libtiff libungif libpng];
+  buildInputs = [ libjpeg libXext libX11 xorgproto libtiff giflib libpng ];
 
   meta = with lib; {
     description = "An image loading and rendering library for X11";
     platforms = platforms.unix;
-    license = with licenses; [ gpl2 lgpl2 ];
+    license = with licenses; [ gpl2Only lgpl2Only ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
index 651a42da0b12..a56422c87e13 100644
--- a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "21.1.2";
+  version = "21.1.3";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "gmmlib";
     rev    = "${pname}-${version}";
-    sha256 = "0zs8l0q1q7xps3kxlch6jddxjiny8n8avdg1ghiwbkvgf76gb3as";
+    sha256 = "05vcr2rv6l38j7rv34mvcvzpgc2gjmvsb73wyprgdj71mcwrksyq";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix b/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
index b983e01aa0ab..37375f52c32e 100644
--- a/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "21.2.0";
+  version = "21.2.2";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "media-driver";
     rev    = "intel-media-${version}";
-    sha256 = "101wbg5j00amdbfz4p6mpg90wi549dl78jd34mac5g6zhcpwqbh9";
+    sha256 = "0cz2zr5qmhlsb1ydffakpkw9adyvn5n2y269fp0k2sskqwlykn48";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix b/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
index 715e5621458e..78e2ebae96ac 100644
--- a/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-sdk";
-  version = "20.5.1";
+  version = "21.2.0";
 
   src = fetchFromGitHub {
     owner = "Intel-Media-SDK";
     repo = "MediaSDK";
     rev = "intel-mediasdk-${version}";
-    sha256 = "0l5m7r8585ycifbbi5i0bs63c9sb8rsmk43ik97mhfl1ivswf1mv";
+    sha256 = "sha256-LusgmvlWOMEQjy47IpA9IYcl/cUTSMmvxSwvV/ihs2g=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/irrlicht/default.nix b/nixpkgs/pkgs/development/libraries/irrlicht/default.nix
index 633108459713..260be948ce1d 100644
--- a/nixpkgs/pkgs/development/libraries/irrlicht/default.nix
+++ b/nixpkgs/pkgs/development/libraries/irrlicht/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, libGLU, libGL, unzip, libXrandr, libX11, libXxf86vm }:
+{ lib, stdenv, fetchzip, libGLU, libGL, libXrandr, libX11, libXxf86vm }:
 
 let
   common = import ./common.nix { inherit fetchzip; };
@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
     mkdir -p $out/lib
   '';
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [ libGLU libGL libXrandr libX11 libXxf86vm ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix b/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix
index 1235941b2dc3..a7901466081b 100644
--- a/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix
+++ b/nixpkgs/pkgs/development/libraries/irrlicht/mac.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, libGLU, libGL, unzip, fetchFromGitHub, cmake, Cocoa, OpenGL, IOKit }:
+{ lib, stdenv, fetchzip, libGLU, libGL, fetchFromGitHub, cmake, Cocoa, OpenGL, IOKit }:
 
 let
   common = import ./common.nix { inherit fetchzip; };
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     "-DIRRLICHT_BUILD_TOOLS=OFF"
   ];
 
-  nativeBuildInputs = [ cmake unzip ];
+  nativeBuildInputs = [ cmake ];
   buildInputs = [ OpenGL Cocoa IOKit ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/itk/default.nix b/nixpkgs/pkgs/development/libraries/itk/default.nix
index ac899ce26f10..d84b9f1df625 100644
--- a/nixpkgs/pkgs/development/libraries/itk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/itk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "itk";
-  version = "5.1.2";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "InsightSoftwareConsortium";
     repo = "ITK";
     rev = "v${version}";
-    sha256 = "0db91pm1zy40h4qr5zsdfl94znk16w9ysddz5cxbl198iyyqii8f";
+    sha256 = "19f65fc9spwvmywg43lkw9p2inrrzr1qrfzcbing3cjk0x2yrsnl";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/json-glib/default.nix b/nixpkgs/pkgs/development/libraries/json-glib/default.nix
index ed086dac90fb..9ef66fd2ce69 100644
--- a/nixpkgs/pkgs/development/libraries/json-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/json-glib/default.nix
@@ -6,48 +6,64 @@
 , ninja
 , pkg-config
 , gettext
+, withIntrospection ? stdenv.buildPlatform == stdenv.hostPlatform
 , gobject-introspection
 , fixDarwinDylibNames
 , gtk-doc
 , docbook-xsl-nons
 , docbook_xml_dtd_43
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
   pname = "json-glib";
   version = "1.6.2";
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ]
+    ++ lib.optional withIntrospection "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3";
   };
 
+  strictDeps = true;
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     gettext
-    gobject-introspection
     glib
-    gtk-doc
     docbook-xsl-nons
     docbook_xml_dtd_43
   ] ++ lib.optional stdenv.hostPlatform.isDarwin [
     fixDarwinDylibNames
+  ] ++ lib.optionals withIntrospection [
+    gobject-introspection
+    gtk-doc
   ];
 
   propagatedBuildInputs = [
     glib
   ];
 
+  mesonFlags = lib.optionals (!withIntrospection) [
+    "-Dintrospection=disabled"
+    # doc gen uses introspection, doesn't work properly
+    "-Dgtk_doc=disabled"
+  ];
+
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
index 90d3f1da6e63..f41bf0f0c80f 100644
--- a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     inherit version;
     homepage = "https://github.com/open-source-parsers/jsoncpp";
     description = "A C++ library for interacting with JSON";
-    maintainers = with maintainers; [ ttuegel cpages nand0p ];
+    maintainers = with maintainers; [ ttuegel cpages ];
     license = licenses.mit;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/libraries/jsonrpc-glib/default.nix b/nixpkgs/pkgs/development/libraries/jsonrpc-glib/default.nix
index 1ec9c3da41e2..b43bcd07ca6b 100644
--- a/nixpkgs/pkgs/development/libraries/jsonrpc-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jsonrpc-glib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, glib, json-glib, pkg-config, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_43, gnome3 }:
+{ lib, stdenv, fetchurl, meson, ninja, glib, json-glib, pkg-config, gobject-introspection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_43, gnome }:
 stdenv.mkDerivation rec {
   pname = "jsonrpc-glib";
   version = "3.38.0";
@@ -22,8 +22,9 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/jxrlib/default.nix b/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
index b2cc4ab08b45..3dcec13a18aa 100644
--- a/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python3 }:
+{ lib, stdenv, fetchFromGitHub, python3, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "jxrlib";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
       --replace '.so' '.dylib'
   '';
 
-  nativeBuildInputs = [ python3 ];
+  nativeBuildInputs = [ python3 ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   strictDeps = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
index 05506b19385c..55c1e02a955d 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.80/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.81/ -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index c4bee741d2a8..7c16dcf46507 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -1,14 +1,33 @@
-{
-  mkDerivation,
-  extra-cmake-modules,
-  attr, ebook_tools, exiv2, ffmpeg_3, karchive, kcoreaddons, ki18n, poppler, qtbase, qtmultimedia, taglib
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, attr
+, ebook_tools
+, exiv2
+, ffmpeg
+, karchive
+, kcoreaddons
+, ki18n
+, poppler
+, qtbase
+, qtmultimedia
+, taglib
 }:
 
 mkDerivation {
   name = "kfilemetadata";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
-    attr ebook_tools exiv2 ffmpeg_3 karchive kcoreaddons ki18n poppler qtbase qtmultimedia
+    attr
+    ebook_tools
+    exiv2
+    ffmpeg
+    karchive
+    kcoreaddons
+    ki18n
+    poppler
+    qtbase
+    qtmultimedia
     taglib
   ];
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
index 91d53f4df87c..3d5ad663dd32 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,667 +4,667 @@
 
 {
   attica = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/attica-5.80.0.tar.xz";
-      sha256 = "0wffjjrk6rka25kgfq05j9fzxawysimpzi8jj3sw3kfz05mqdap3";
-      name = "attica-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/attica-5.81.0.tar.xz";
+      sha256 = "0x1ga3y0kmr2ybgvsmns7imd0agfd5bfc2lf0010ks5s1v50whqr";
+      name = "attica-5.81.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/baloo-5.80.0.tar.xz";
-      sha256 = "0wdm03x1zm31nivf04qxih6gg18c97diff7ddaqqbz8c7jlhppzc";
-      name = "baloo-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/baloo-5.81.0.tar.xz";
+      sha256 = "0mnm282mc1yph9x08fkrycb22gsah4km8r7yk3kz20vnrs0wgljy";
+      name = "baloo-5.81.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/bluez-qt-5.80.0.tar.xz";
-      sha256 = "08g56gnh0gkh7n92wqama9lbqk6pfdby9xbh8f2vgmnkzy07zrwn";
-      name = "bluez-qt-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/bluez-qt-5.81.0.tar.xz";
+      sha256 = "13wy3nzbq26616s7pa0sx0jrq81v3bvf6a6dlmp1zzycvbk06jp3";
+      name = "bluez-qt-5.81.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/breeze-icons-5.80.0.tar.xz";
-      sha256 = "11353lgy2fh1d2fgbhg20fapsjzrpsxlf5zilrfkw8y0my690rm2";
-      name = "breeze-icons-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/breeze-icons-5.81.0.tar.xz";
+      sha256 = "1844jyair0kjflfq98cakis7xfgbdn7an383f02hp4072kjg127g";
+      name = "breeze-icons-5.81.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/extra-cmake-modules-5.80.0.tar.xz";
-      sha256 = "0r3gr6qrgljiq7bsks54xc68x9pf7i2gm9pgjq5kslw5ys0gsw13";
-      name = "extra-cmake-modules-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/extra-cmake-modules-5.81.0.tar.xz";
+      sha256 = "10svwghxf5vhbfwz7lza7xid2n1mj6r1n1amv6c616q68fwf8msz";
+      name = "extra-cmake-modules-5.81.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/frameworkintegration-5.80.0.tar.xz";
-      sha256 = "0sk9p4wk4hsr5sg0z24rc7fxrsdbxcpm5fw66v30lhncrlf9c7c7";
-      name = "frameworkintegration-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/frameworkintegration-5.81.0.tar.xz";
+      sha256 = "0vcbm0364zwkyp33nvcl42px6i9hgnp4wl3lg913qvxv1f7pd61v";
+      name = "frameworkintegration-5.81.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kactivities-5.80.0.tar.xz";
-      sha256 = "14im60ig074axryhgz3qw1zjqhfai1gg0hq88spabvz22r5f340s";
-      name = "kactivities-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kactivities-5.81.0.tar.xz";
+      sha256 = "0sskfpc8yfic2s8hvzf7cjk92pxd0idd0xl0azrjnn28ci5kvzvq";
+      name = "kactivities-5.81.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kactivities-stats-5.80.0.tar.xz";
-      sha256 = "1w3khp8p2a1v85s5hay3s0nznjsajaavrjx4iw2cxssxnzlvg2fn";
-      name = "kactivities-stats-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kactivities-stats-5.81.0.tar.xz";
+      sha256 = "0839g6y101qr5mr98ynfm74f554lxx7srnwm3anh7nj6zrlyxrq2";
+      name = "kactivities-stats-5.81.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kapidox-5.80.0.tar.xz";
-      sha256 = "010jigqkw3rs04irf942cwgd9wvi7j9b5lisdcrc3w65a19q053z";
-      name = "kapidox-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kapidox-5.81.0.tar.xz";
+      sha256 = "1wq4py1djmcnqf51l52cij43qw44n5fafz00qslxjb0rdakrvzs2";
+      name = "kapidox-5.81.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/karchive-5.80.0.tar.xz";
-      sha256 = "1xaxbhbx562ybd9rqna1bh3bpbyxh02c9x9xyisw84akiibqvq7w";
-      name = "karchive-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/karchive-5.81.0.tar.xz";
+      sha256 = "1flnylyglc2jdb9lfk3dl56wzxdliaaqpg2rzrlclzj14lz3l9hy";
+      name = "karchive-5.81.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kauth-5.80.0.tar.xz";
-      sha256 = "1pcnk34b912hhhpx606ajvz9hcz6xr37g7bl002zkar9fzh7vw16";
-      name = "kauth-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kauth-5.81.0.tar.xz";
+      sha256 = "1gf93wk95x1fmi4w3ybkj7acwrv7rlz9nw7f1n4nd1w3w7pn403y";
+      name = "kauth-5.81.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kbookmarks-5.80.0.tar.xz";
-      sha256 = "11imylvhw3pc46qiqz72q8rwa9igvgvd9gdchiivcrg4494k502q";
-      name = "kbookmarks-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kbookmarks-5.81.0.tar.xz";
+      sha256 = "0bqgl3vhr5lngajxz7v4l325kcyylj3d1qznaa946dcbsn2wrgzm";
+      name = "kbookmarks-5.81.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kcalendarcore-5.80.0.tar.xz";
-      sha256 = "1z8js2b5zb862ngwsdd2hwi6wqhkvkhsx5akbn7f1gmjs0pfrkg5";
-      name = "kcalendarcore-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kcalendarcore-5.81.0.tar.xz";
+      sha256 = "0a8m8l94cni1fv38sa9wa1mx1m7bnd7qb66wrjrhdd57cfrjij5s";
+      name = "kcalendarcore-5.81.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kcmutils-5.80.0.tar.xz";
-      sha256 = "0ncyffl60wv5awbfazknqpysaji11xxrpicabfl0mzmwcnlb34wc";
-      name = "kcmutils-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kcmutils-5.81.0.tar.xz";
+      sha256 = "15q2wvnz8s1g508jbssszzfcgssamdsp7s1vply1677ga8pcspmj";
+      name = "kcmutils-5.81.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kcodecs-5.80.0.tar.xz";
-      sha256 = "06l8c3jwx5z43cyv7vl6yfs91a7zmy0j089x826nn2a7jr678mjg";
-      name = "kcodecs-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kcodecs-5.81.0.tar.xz";
+      sha256 = "0r757k1rbz1bjk7mc0b2m0ybixai4qfidrs5wvbci971lfsaz4j3";
+      name = "kcodecs-5.81.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kcompletion-5.80.0.tar.xz";
-      sha256 = "14v0d1w01lric532vks9akh7v7z7nf9hgpf866qyhmb236k52hpg";
-      name = "kcompletion-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kcompletion-5.81.0.tar.xz";
+      sha256 = "15bw6g4ag1s0s3x6390r05i299kl279jrfajna9fxgq3fbjigb7p";
+      name = "kcompletion-5.81.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kconfig-5.80.0.tar.xz";
-      sha256 = "1chrvpfr72bdgv6fdgrkbfbiz76jgvzsncxsc6gjvkvcdag48016";
-      name = "kconfig-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kconfig-5.81.0.tar.xz";
+      sha256 = "13xfy3mhi73na4mv0a8l75ba5c8ddnkkdssmsnxp5kj084w9xpqx";
+      name = "kconfig-5.81.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kconfigwidgets-5.80.0.tar.xz";
-      sha256 = "12rc3l91h2snkxni70brdp8f21g19c0gabpxy7ssv614ci0fz7j7";
-      name = "kconfigwidgets-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kconfigwidgets-5.81.0.tar.xz";
+      sha256 = "1v7xxn6cd17z71cpdyw2qzfqw4vkzy96wwr1zn9dylnvl8mh4xg0";
+      name = "kconfigwidgets-5.81.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kcontacts-5.80.0.tar.xz";
-      sha256 = "173vpxncdr9mwpksizflvipsf18pnwn500b2xzpkaaz5w84vk1yk";
-      name = "kcontacts-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kcontacts-5.81.0.tar.xz";
+      sha256 = "15wkspgxqj6zh2pr3f7xqcahihbhf45qnqay1v56ry3vl42gncg4";
+      name = "kcontacts-5.81.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kcoreaddons-5.80.0.tar.xz";
-      sha256 = "1l9ydyvbmn2ih07jsy12snxavss7cyxyig0n65sz6gwbcxqr5qzc";
-      name = "kcoreaddons-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kcoreaddons-5.81.0.tar.xz";
+      sha256 = "1nzyijd8753p9n9fqfb14q30jid2k1j7cvwjqv99l5fxhwbcn35c";
+      name = "kcoreaddons-5.81.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kcrash-5.80.0.tar.xz";
-      sha256 = "1c2b8i9qay0mdr0i16jp2167vb18r792dd88nz0in77lzccfk8v4";
-      name = "kcrash-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kcrash-5.81.0.tar.xz";
+      sha256 = "1irw9blm1xsn26mcyaimd8xnygkdpaqh9m8gpf5gpn2s19iz4f81";
+      name = "kcrash-5.81.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kdav-5.80.0.tar.xz";
-      sha256 = "1cab4pppqyfqm53dhp5lm4ghijbhym77ndb0pr6crvi70kz4s101";
-      name = "kdav-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kdav-5.81.0.tar.xz";
+      sha256 = "0cxiif5pb8frz0dpqx0f9j7g29iaspx13alwzvzavbmi0bwzs00b";
+      name = "kdav-5.81.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kdbusaddons-5.80.0.tar.xz";
-      sha256 = "1w0vpjzi37z8jaq97p9bxjdl8x4288idm4vvpzxs8lc9hwcl74hl";
-      name = "kdbusaddons-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kdbusaddons-5.81.0.tar.xz";
+      sha256 = "0gbrmgpd8x16zapbqbyh2ipbvysz3z07qk1fc0cmx5x84x1j7xa9";
+      name = "kdbusaddons-5.81.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kdeclarative-5.80.0.tar.xz";
-      sha256 = "0gcx6pqyc0izw2cdvdcscxxl4wvksb74kjiq5zimjd2z8wrblmdz";
-      name = "kdeclarative-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kdeclarative-5.81.0.tar.xz";
+      sha256 = "0s6kal2ppw0vskv7baxvbqfip4hzh8s3399c1j7rahdw67nf9k3x";
+      name = "kdeclarative-5.81.0.tar.xz";
     };
   };
   kded = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kded-5.80.0.tar.xz";
-      sha256 = "0skk3zf3b6rlbvdq0fyd8swfrx3fqmppqxrglh6n5imcv5jxwms1";
-      name = "kded-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kded-5.81.0.tar.xz";
+      sha256 = "1100jrccadj50blq5wmr83wdc3ry46rn86y28dfy4h97cvn1nfsi";
+      name = "kded-5.81.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kdelibs4support-5.80.0.tar.xz";
-      sha256 = "01bd188iss14qmzm55dmsgdcs9wnwbdj0kh371achp9zqg55iqj3";
-      name = "kdelibs4support-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kdelibs4support-5.81.0.tar.xz";
+      sha256 = "1ck3i46k8sjkqgnaygy5pjqbw1np35sc6nhgxxcm7q84q3cdj536";
+      name = "kdelibs4support-5.81.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kdesignerplugin-5.80.0.tar.xz";
-      sha256 = "1d79qg3y7ndrh6yd9sygyz5yd5ig6gp8k71mw96xijdhlf5nxqs3";
-      name = "kdesignerplugin-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kdesignerplugin-5.81.0.tar.xz";
+      sha256 = "1rgnj6bns9dnn0g53xk374knc69ajpprjhyb50ffr0dn7cfcs1s3";
+      name = "kdesignerplugin-5.81.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kdesu-5.80.0.tar.xz";
-      sha256 = "1ksad8wcnjcrb8h73klrs2601482a32x3ycpr17k9fsi8mkylicd";
-      name = "kdesu-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kdesu-5.81.0.tar.xz";
+      sha256 = "176531kcvpmb4sklrqpvx4msna1radd2ki410700yvk0l2v4l2yy";
+      name = "kdesu-5.81.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kdewebkit-5.80.0.tar.xz";
-      sha256 = "11q6x9w2majzh6wva4b824dxrpz53xpb3vfsi65pwh199fhfyzci";
-      name = "kdewebkit-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kdewebkit-5.81.0.tar.xz";
+      sha256 = "022dpmw8r5wkb3pr87fycrybv9j5k2wy8d39rilhjvkqk8s65277";
+      name = "kdewebkit-5.81.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kdnssd-5.80.0.tar.xz";
-      sha256 = "0k8lk3h65ar07l54cmxhpakz1why9vbm5wg58nh16x69dkdhr8dg";
-      name = "kdnssd-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kdnssd-5.81.0.tar.xz";
+      sha256 = "1hl49w55r57abnnwdf4hvyjk7566zbqa24bai3zsq24a4nnm6vii";
+      name = "kdnssd-5.81.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kdoctools-5.80.0.tar.xz";
-      sha256 = "10xcq0pk1sqw293f2kw52sjj6dgphv17fdax4w0yy1hjch711bhy";
-      name = "kdoctools-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kdoctools-5.81.0.tar.xz";
+      sha256 = "11qayqx47h4h1y2yqzbm8bysdd7xwb2qjmkk59jxpih7xbmpg1ir";
+      name = "kdoctools-5.81.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kemoticons-5.80.0.tar.xz";
-      sha256 = "0jg5z6dbfprkypj35prlixgc93x65nn7zcw2fmxcqvshrnqzz2hb";
-      name = "kemoticons-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kemoticons-5.81.0.tar.xz";
+      sha256 = "17zv96cfmqg9fxrgm91pn8xwp4f03644g2203c3s7iq3bh8ig3gc";
+      name = "kemoticons-5.81.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kfilemetadata-5.80.0.tar.xz";
-      sha256 = "02k0yyksyl5nn373l25m6ybxhpdyrz8g0mr16zmk12pdxh24vkbm";
-      name = "kfilemetadata-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kfilemetadata-5.81.0.tar.xz";
+      sha256 = "0cba7lsjk563ql0hw2rcjxn2khadx1rz7hx4agjb40145f7x931i";
+      name = "kfilemetadata-5.81.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kglobalaccel-5.80.0.tar.xz";
-      sha256 = "015x173b57vdd16mmd4asz6l6bxw94k1hbkxr09v5cb463cspw1n";
-      name = "kglobalaccel-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kglobalaccel-5.81.0.tar.xz";
+      sha256 = "0adqlfmpfsbbfjiljvbyi4f4blx77qp18anx7npkwh5gjn32hczz";
+      name = "kglobalaccel-5.81.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kguiaddons-5.80.0.tar.xz";
-      sha256 = "1iadzp794q9qhs1kcvfp2g2w6rv2ifqcb3n8sv460fhv4qrg4qz5";
-      name = "kguiaddons-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kguiaddons-5.81.0.tar.xz";
+      sha256 = "1q9yrbbsjh98xl3k4yss5h39fd8nz8y5v9sd7vqjmy49mqsyxxz3";
+      name = "kguiaddons-5.81.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kholidays-5.80.0.tar.xz";
-      sha256 = "1knmsz1rzhz5a56q9s0i4747633dq9bhs4j8j6rnk49ccl5hz72z";
-      name = "kholidays-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kholidays-5.81.0.tar.xz";
+      sha256 = "1pcqzwpmyl6jp9w4xvlgj81iyzbazz2kd07g82cjybz0z3jcxs2c";
+      name = "kholidays-5.81.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/khtml-5.80.0.tar.xz";
-      sha256 = "188j1ssw9qlylqgj06iy2r2jbibzshxcxh9qbn1bgz6d2dq2c6mx";
-      name = "khtml-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/khtml-5.81.0.tar.xz";
+      sha256 = "0ag23xwl2f9hiwxnwxvwiz3xr07dxpin49li3q98vqq1qzaj1ngp";
+      name = "khtml-5.81.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/ki18n-5.80.0.tar.xz";
-      sha256 = "0yksjrcq5zip17kq1r97z2145qzzz6k48vz71y6195f7wvbpjfl8";
-      name = "ki18n-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/ki18n-5.81.0.tar.xz";
+      sha256 = "12m7ddyzw80y9y5gqyr7jgdyc5a0fmxa8zzsd41l7418i2sdajrc";
+      name = "ki18n-5.81.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kiconthemes-5.80.0.tar.xz";
-      sha256 = "133nv4zgqg6pkkvh1nyqcra847vgn3ai6w0xvynbgrmq7wvdrwlj";
-      name = "kiconthemes-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kiconthemes-5.81.0.tar.xz";
+      sha256 = "053a7zdig796zc3rnwdlkscylg6wldn1dk0dxqzn14cb8vkbwizw";
+      name = "kiconthemes-5.81.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kidletime-5.80.0.tar.xz";
-      sha256 = "1yjjhpkql8s7b4ddzirpyq5p0yicpsbkgbq15257k60xs66qgf83";
-      name = "kidletime-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kidletime-5.81.0.tar.xz";
+      sha256 = "12zrd9k27hx8ncywd9ahhbcv5xrn7rrw82pcvdkjmyniz0nazrqv";
+      name = "kidletime-5.81.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kimageformats-5.80.0.tar.xz";
-      sha256 = "0q3i6jkx6kahgdzfycygki50f22zjbspx3f9ibg2ak74hcan8r8x";
-      name = "kimageformats-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kimageformats-5.81.0.tar.xz";
+      sha256 = "0kl68dy1v4p403f52y7igv2w3wq6q2pb7n0r7fbnwz2113bs0cm3";
+      name = "kimageformats-5.81.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kinit-5.80.0.tar.xz";
-      sha256 = "101lvky2j6bxk3q36040kczchc21d5rb664ddxd89pl2n0f6s9fz";
-      name = "kinit-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kinit-5.81.0.tar.xz";
+      sha256 = "1wv8qyv4mayi80vczf47mdxxa6km4v7r2kz2j483w53nck5hjz4j";
+      name = "kinit-5.81.0.tar.xz";
     };
   };
   kio = {
-    version = "5.80.1";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kio-5.80.1.tar.xz";
-      sha256 = "0a2srmj8w80f2m8s359747xx0wg2gf8nd75ysv9f9y92l1hwwwfr";
-      name = "kio-5.80.1.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kio-5.81.0.tar.xz";
+      sha256 = "0zn0xh07hajcj3h1v5246a167ffm113k8j36p2xn7lbq368sway6";
+      name = "kio-5.81.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kirigami2-5.80.0.tar.xz";
-      sha256 = "0wljcyr0g4i5nsc6szy9yd976l180lxfjjzhz24py7czlrpzg3i2";
-      name = "kirigami2-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kirigami2-5.81.0.tar.xz";
+      sha256 = "1bcc2mfb2s4w67q9q35k04mc9154dx1x03vqzclh9ipzdvyjqmyn";
+      name = "kirigami2-5.81.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kitemmodels-5.80.0.tar.xz";
-      sha256 = "1bvghm4accgf273aacjng86rxiazmk05pbrnqkldda9958dqv54k";
-      name = "kitemmodels-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kitemmodels-5.81.0.tar.xz";
+      sha256 = "0vs75q08x9yi1953rihk3y234wcsjawdxb3g5xb597f961y634w0";
+      name = "kitemmodels-5.81.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kitemviews-5.80.0.tar.xz";
-      sha256 = "1j9m4qcmy83dj3k3v4y4skl5lgb8n3z4x9pa1f0rjpwwg4qsa0lp";
-      name = "kitemviews-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kitemviews-5.81.0.tar.xz";
+      sha256 = "0nmhc675bmilqah9fwwzy4p8rksib90cv8iihxd5c9d9snykk01n";
+      name = "kitemviews-5.81.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kjobwidgets-5.80.0.tar.xz";
-      sha256 = "1yy5n9jnj1sdh51n3n1bqzmaml44799kiqdpp3b7mq55fmj9najp";
-      name = "kjobwidgets-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kjobwidgets-5.81.0.tar.xz";
+      sha256 = "1gl8ia858jbmj2i9wp4x0mw27p42xm6mg84nj1a8yvvvbazs3hpa";
+      name = "kjobwidgets-5.81.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kjs-5.80.0.tar.xz";
-      sha256 = "1v3jiywzzi20c0pd67pgnwwnz0vg209a0wzzdhrpiz5v7qgji1ij";
-      name = "kjs-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kjs-5.81.0.tar.xz";
+      sha256 = "049aplmp1nlxshwaw0lfhfr09aazxh4vazvb78429gs84j8ir9xr";
+      name = "kjs-5.81.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kjsembed-5.80.0.tar.xz";
-      sha256 = "083gp9ks7yha90vnk0z4bkb9i4rphz90di8m8z19xgn575a6li57";
-      name = "kjsembed-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kjsembed-5.81.0.tar.xz";
+      sha256 = "0zkazfcrmd0gklzda0hbb4mc493ihsd3dafnmyj6cmgk4lz2w3q9";
+      name = "kjsembed-5.81.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kmediaplayer-5.80.0.tar.xz";
-      sha256 = "0a16rzyjy7j5pn66ahpj3kxpp5c2zmjxg3cmrm14gcm6gzysv56b";
-      name = "kmediaplayer-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kmediaplayer-5.81.0.tar.xz";
+      sha256 = "0z1ji717kwq84i6b2ay9wjhgc4vdkgn1jvwpzgpc1hqs9zly278b";
+      name = "kmediaplayer-5.81.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/knewstuff-5.80.0.tar.xz";
-      sha256 = "0pbk4j823zs2xikgdhaxqilb5b6f0a8k8hylq1vyhkwlzvvp9s6z";
-      name = "knewstuff-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/knewstuff-5.81.0.tar.xz";
+      sha256 = "0wmf86nndnxs1850bjzbwaag6kjdabz0si7b0p1r6hnwm2km9bnk";
+      name = "knewstuff-5.81.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/knotifications-5.80.0.tar.xz";
-      sha256 = "1sfn61vhdqg3mxfvb802wx0l0k59b312fbh6w9bqv0b8z0a9jz2s";
-      name = "knotifications-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/knotifications-5.81.0.tar.xz";
+      sha256 = "04yfrhd098asr45swslnfkzxkb9892izvyam5rf0h93pw78ggmqs";
+      name = "knotifications-5.81.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/knotifyconfig-5.80.0.tar.xz";
-      sha256 = "0b41ppif2qp7lkqmb7nv1r68hvavdl1lcgs4w50v2c0k4fflwizx";
-      name = "knotifyconfig-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/knotifyconfig-5.81.0.tar.xz";
+      sha256 = "0xrd9771g1x0s796pw6wkhl9jj9607pffmlxrj171c8n8hdfyjbs";
+      name = "knotifyconfig-5.81.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kpackage-5.80.0.tar.xz";
-      sha256 = "104qwyai3ivdw0jqgn6m59bajy07snas51rp75xgvb65hpllv2ch";
-      name = "kpackage-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kpackage-5.81.0.tar.xz";
+      sha256 = "1r1yv5y2swll38l88w559d8q0n4xizwgjp4qd8bh0vvsn24l65ka";
+      name = "kpackage-5.81.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kparts-5.80.0.tar.xz";
-      sha256 = "1fkfjazr7bwh5nniylh403qp0g4bgiv01ckv4djf46gjf7qn9d4y";
-      name = "kparts-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kparts-5.81.0.tar.xz";
+      sha256 = "1gjqmwg5pjj41vwfsdffvr1gfbkbm12f77rlyfn9gg4z6bjdx47b";
+      name = "kparts-5.81.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kpeople-5.80.0.tar.xz";
-      sha256 = "1cn9jqiah3j0qi7sg1j9c10yq97pcisvxhm9jjzzzxna39zz16cw";
-      name = "kpeople-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kpeople-5.81.0.tar.xz";
+      sha256 = "1a63s8c946wrivqs8n680jpmcys8iafyy9j3isl4z5n88df2nnih";
+      name = "kpeople-5.81.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kplotting-5.80.0.tar.xz";
-      sha256 = "073icgz0cgg7wis3rf1hlsmxklp9vk8swgihfdlks1jds90s4nxw";
-      name = "kplotting-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kplotting-5.81.0.tar.xz";
+      sha256 = "1s368amqfqjmr99bz4xc0xfm2sf29s99z3zpwbx2lbjvqh3p5yyb";
+      name = "kplotting-5.81.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kpty-5.80.0.tar.xz";
-      sha256 = "13blnrzni3n9p3xnn2kyd6g2hlpvvg0aqagknk64kchbvdkd5l4k";
-      name = "kpty-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kpty-5.81.0.tar.xz";
+      sha256 = "0la3jpkki1hskxg12nf3r59fw7r9q8n3sc7wcdik9r9c9rhlyjpk";
+      name = "kpty-5.81.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kquickcharts-5.80.0.tar.xz";
-      sha256 = "0kf72i9pkifcwg9njn296fw4d9gy3rc43g17128axj6a5jrd4bln";
-      name = "kquickcharts-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kquickcharts-5.81.0.tar.xz";
+      sha256 = "00w2m0pwilldip873w97l9hvgm6gfy1aj6blyzcxn7x1688lv1jz";
+      name = "kquickcharts-5.81.0.tar.xz";
     };
   };
   kross = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kross-5.80.0.tar.xz";
-      sha256 = "06dyqmhxbr9ykca1bskkgxmsd86jpxnk4adygcw1j84xsl6jiki9";
-      name = "kross-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kross-5.81.0.tar.xz";
+      sha256 = "02jsyarn7ihv547b3vv5xwjm1bs58x5lhdnb74v02cwsgb82wlm3";
+      name = "kross-5.81.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/krunner-5.80.0.tar.xz";
-      sha256 = "0bid6h0wmvmxfz664hmfhs4zp35mlk3n1p553rspfs55wh2f9xpw";
-      name = "krunner-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/krunner-5.81.0.tar.xz";
+      sha256 = "1yf04qw82hmz8g9hddyalh73b2dxk492n8g856d5m6ccq89c7ga5";
+      name = "krunner-5.81.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kservice-5.80.0.tar.xz";
-      sha256 = "06bk46l3qg7dh57zsg9vwx8vq31ikjmbmy4nqn65mq786yiz4s78";
-      name = "kservice-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kservice-5.81.0.tar.xz";
+      sha256 = "1kb6wz8d879b57hpfi4ybpc9d3r67b205xdjmp3bhz21894haszc";
+      name = "kservice-5.81.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/ktexteditor-5.80.0.tar.xz";
-      sha256 = "0g073m18bpzhxdwzhqcyclsclwi91cqsjqq3fjz1hy56ird6b0d0";
-      name = "ktexteditor-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/ktexteditor-5.81.0.tar.xz";
+      sha256 = "1pbxkkqzk4l8n9am5r6w2s1smqwwcc2wagy9in0k80gbyszp9rvm";
+      name = "ktexteditor-5.81.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/ktextwidgets-5.80.0.tar.xz";
-      sha256 = "1292knr3wblbk5j3qfzr1lqyiaa09pkhvkmh3jnlb0jvhc8xvmg8";
-      name = "ktextwidgets-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/ktextwidgets-5.81.0.tar.xz";
+      sha256 = "04mn22xmhkxqb138b9wf6jxz39dfp8rigdg3pzr5llx6gmrln9y8";
+      name = "ktextwidgets-5.81.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kunitconversion-5.80.0.tar.xz";
-      sha256 = "1hckj3k3jjsc4y89zvi5l9h6px6ns9kdqjrfkxbax459wha55b4l";
-      name = "kunitconversion-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kunitconversion-5.81.0.tar.xz";
+      sha256 = "1g9i253f3qjpcmfiy12zmbi41gld9fxy89d742b44xc88fhj3z1y";
+      name = "kunitconversion-5.81.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kwallet-5.80.0.tar.xz";
-      sha256 = "1pwrxhjxxdx7hl4456dk4x8z36ddw932cv08010fmz9m4w0yvjg1";
-      name = "kwallet-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kwallet-5.81.0.tar.xz";
+      sha256 = "1i05j20847bb9b7348f85fln6spqnkp3c9ysr7yvnm8wfyzrd1gz";
+      name = "kwallet-5.81.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kwayland-5.80.0.tar.xz";
-      sha256 = "1avr7ckyhw158wi5mlknzkcphn8vlf8dpb96gyizvsvg8b4gffs0";
-      name = "kwayland-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kwayland-5.81.0.tar.xz";
+      sha256 = "1a23zcf6aax1fyq4d6y88flyap8wwkbwnq4vkbybpbnxnkbwl8ny";
+      name = "kwayland-5.81.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kwidgetsaddons-5.80.0.tar.xz";
-      sha256 = "1wgwl08cxwzcd0nikvp2ph2dbj5fij6a5l65p9amvi6ladbgv6qs";
-      name = "kwidgetsaddons-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kwidgetsaddons-5.81.0.tar.xz";
+      sha256 = "0hmnlda1hgk6zwx6wnjzqc0b2awv835736sjyczrxcfaxlkfj99g";
+      name = "kwidgetsaddons-5.81.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kwindowsystem-5.80.0.tar.xz";
-      sha256 = "1ch44w27ilh994if3icskyqg6nhnbd5j430jxfj6fzfia9vvclmk";
-      name = "kwindowsystem-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kwindowsystem-5.81.0.tar.xz";
+      sha256 = "11ma5vhq8z570danzq9vdwwcq5n6drsm9m3rpvc1vd3kn2mslls7";
+      name = "kwindowsystem-5.81.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/kxmlgui-5.80.0.tar.xz";
-      sha256 = "17dpcv2igkg1pk238bd396mn83nqp325sscx7qsf8cbj15dp7bw1";
-      name = "kxmlgui-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/kxmlgui-5.81.0.tar.xz";
+      sha256 = "1l3a9qzc1x1ai2g1g551w05n2jxshxr03rcy0n8m8lbf518288yv";
+      name = "kxmlgui-5.81.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/portingAids/kxmlrpcclient-5.80.0.tar.xz";
-      sha256 = "0aas26kjxsbgrrrazjvsvjqdr9993v2hyxci62mfpi7xsp5js4h4";
-      name = "kxmlrpcclient-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/portingAids/kxmlrpcclient-5.81.0.tar.xz";
+      sha256 = "15q3w6wdn5ynhyv5244irq51qbm66bl7799zfs964c0y6dmmm3hg";
+      name = "kxmlrpcclient-5.81.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/modemmanager-qt-5.80.0.tar.xz";
-      sha256 = "1q14hx2228xhlggw14r9mhmnn2q3qvy3nc9hq5ynb9mwldns6nl6";
-      name = "modemmanager-qt-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/modemmanager-qt-5.81.0.tar.xz";
+      sha256 = "01rr4j09xqsja7h699yk58xif7qrlbszd0mim4cncy7pkgwn43h6";
+      name = "modemmanager-qt-5.81.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/networkmanager-qt-5.80.0.tar.xz";
-      sha256 = "1wdzn2n4m7nz6skjc37p70zaq42ighk5f1wg1hjx3yf3rlpprnp0";
-      name = "networkmanager-qt-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/networkmanager-qt-5.81.0.tar.xz";
+      sha256 = "1j26ja4r6ry7134yh8i6rkf6dy6kapnrjap9476mr78ig0d6r2if";
+      name = "networkmanager-qt-5.81.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/oxygen-icons5-5.80.0.tar.xz";
-      sha256 = "0kmq993vd6011qny949z13lli4qymprk616kl1628dazniapka9m";
-      name = "oxygen-icons5-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/oxygen-icons5-5.81.0.tar.xz";
+      sha256 = "1s0gvicrfw6dl164cccj05rfhp627mqa9ml0j4dvgvknnrgip6hz";
+      name = "oxygen-icons5-5.81.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/plasma-framework-5.80.0.tar.xz";
-      sha256 = "1nckb1801fy64hvm127r5fz14vgw81szw7w7miilqh6651v0zbyk";
-      name = "plasma-framework-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/plasma-framework-5.81.0.tar.xz";
+      sha256 = "0g36a632kafsvhamk33w46cafg1gyir3kkx12fkhyqll2vlpn0v7";
+      name = "plasma-framework-5.81.0.tar.xz";
     };
   };
   prison = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/prison-5.80.0.tar.xz";
-      sha256 = "1fcsvww08f7ihxq6x84jd2klp29m8hrbzp7rxqi7x9ghxxgysbpz";
-      name = "prison-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/prison-5.81.0.tar.xz";
+      sha256 = "1mrrwhg98br4r9g7lj6gn3w1z2gfh9kr7ycispssjalyp6bdf4yg";
+      name = "prison-5.81.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/purpose-5.80.0.tar.xz";
-      sha256 = "107xmhbjcw5mk068484gwqrzl2gkgy495737f4vj5q22m9rpal5d";
-      name = "purpose-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/purpose-5.81.0.tar.xz";
+      sha256 = "0188wxxy6rg6sm722db02nzhmlv3c540zs2qh6h9fbbf1k4h82jf";
+      name = "purpose-5.81.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/qqc2-desktop-style-5.80.0.tar.xz";
-      sha256 = "14dy7n6m9vdq6v7h3r0w71vw86yxyza40wyxp0hhj44nb63fvczg";
-      name = "qqc2-desktop-style-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/qqc2-desktop-style-5.81.0.tar.xz";
+      sha256 = "1ac4jc6yi6fwndyivc11brlaz3sncxyxzwrfdak8gg579z67zjx5";
+      name = "qqc2-desktop-style-5.81.0.tar.xz";
     };
   };
   solid = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/solid-5.80.0.tar.xz";
-      sha256 = "023zk7la6ycd7h2j62z7b409w94sq2r9k0c020ywry6psjydqkx5";
-      name = "solid-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/solid-5.81.0.tar.xz";
+      sha256 = "0w144jdhspjgqpv0xyxr6l6bnh2bazn9jfbw5iim8fj4q5dyr6c1";
+      name = "solid-5.81.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/sonnet-5.80.0.tar.xz";
-      sha256 = "13kqdfy6bgmqjfw82d2zh0bq4r53awa1f1cbshci6inwdslyvlmh";
-      name = "sonnet-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/sonnet-5.81.0.tar.xz";
+      sha256 = "0kin6xngk4bxxn7y06q1pm0vk5s66gh6riv58l051px27m6lwz2a";
+      name = "sonnet-5.81.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/syndication-5.80.0.tar.xz";
-      sha256 = "1j22yx2i2qxck6gy4jypjvmar4y93j5nmrmf7fkjx7z8hwxjgwhh";
-      name = "syndication-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/syndication-5.81.0.tar.xz";
+      sha256 = "1fxdhnd8kl0q13434vbkmjan9dakhn9bdrad9d4vd3x11c77ggkn";
+      name = "syndication-5.81.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/syntax-highlighting-5.80.0.tar.xz";
-      sha256 = "060jnfri24rzkryyvxadpr3yn5xn0856j01ba5l38w0khs8mix4i";
-      name = "syntax-highlighting-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/syntax-highlighting-5.81.0.tar.xz";
+      sha256 = "0paazw8y8kdvwg2waa45az5qgyxi2w5nkfbjg84v1is7yhb065yb";
+      name = "syntax-highlighting-5.81.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.80.0";
+    version = "5.81.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.80/threadweaver-5.80.0.tar.xz";
-      sha256 = "1j5m8gfjpi9cajhja77lhkrl3shq618wpza1k27azvi7r6jj4dva";
-      name = "threadweaver-5.80.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.81/threadweaver-5.81.0.tar.xz";
+      sha256 = "03mz4zibvmriaa9qxvqsnp3ahjnhylzjj80w5c6nc4jjywmi89af";
+      name = "threadweaver-5.81.0.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/keybinder/default.nix b/nixpkgs/pkgs/development/libraries/keybinder/default.nix
index 663abb152804..fb481c19d05f 100644
--- a/nixpkgs/pkgs/development/libraries/keybinder/default.nix
+++ b/nixpkgs/pkgs/development/libraries/keybinder/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoconf, automake, libtool, pkg-config, gnome3
+{ lib, stdenv, fetchurl, autoconf, automake, libtool, pkg-config, gnome
 , gtk-doc, gtk2, python2Packages, lua, gobject-introspection
 }:
 
@@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    autoconf automake libtool gnome3.gnome-common gtk-doc gtk2
+    autoconf automake libtool gnome.gnome-common gtk-doc gtk2
     python pygtk lua gobject-introspection
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/keybinder3/default.nix b/nixpkgs/pkgs/development/libraries/keybinder3/default.nix
index e291ec56bb21..78755a87919d 100644
--- a/nixpkgs/pkgs/development/libraries/keybinder3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/keybinder3/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, gnome3
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, gnome
 , gtk-doc, gtk3, libX11, libXext, libXrender, gobject-introspection
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake libtool pkg-config ];
   buildInputs = [
-    gnome3.gnome-common gtk-doc gtk3
+    gnome.gnome-common gtk-doc gtk3
     libX11 libXext libXrender gobject-introspection
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/kmsxx/default.nix b/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
index c88dde7e4450..222747b4d734 100644
--- a/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
     description = "C++11 library, utilities and python bindings for Linux kernel mode setting";
     homepage = "https://github.com/tomba/kmsxx";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
     broken = true; # marked broken 2021-03-26
   };
diff --git a/nixpkgs/pkgs/development/libraries/kronosnet/default.nix b/nixpkgs/pkgs/development/libraries/kronosnet/default.nix
index c74ff6716fee..cc282d9abc9c 100644
--- a/nixpkgs/pkgs/development/libraries/kronosnet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kronosnet/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kronosnet";
-  version = "1.20";
+  version = "1.21";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lP5W+4b9McU2Uqibh2SucIu2y4KluO3B1RpAJKgYq/M=";
+    sha256 = "14i4fl3g60gn5ay3dbwjcay3dnmnqr16zcp3g0wv9a3hjwh1if28";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
diff --git a/nixpkgs/pkgs/development/libraries/l-smash/default.nix b/nixpkgs/pkgs/development/libraries/l-smash/default.nix
index b1b5fd012062..40eb4bd10d36 100644
--- a/nixpkgs/pkgs/development/libraries/l-smash/default.nix
+++ b/nixpkgs/pkgs/development/libraries/l-smash/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ which ];
 
+  configureFlags = [
+    "--cc=cc"
+    "--cross-prefix=${stdenv.cc.targetPrefix}"
+  ];
+
   meta = with lib; {
     homepage = "http://l-smash.github.io/l-smash/";
     description = "MP4 container utilities";
diff --git a/nixpkgs/pkgs/development/libraries/lasem/default.nix b/nixpkgs/pkgs/development/libraries/lasem/default.nix
index 22f0436edca9..9c49429ece45 100644
--- a/nixpkgs/pkgs/development/libraries/lasem/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lasem/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, lib, stdenv, pkg-config, intltool, gobject-introspection, glib, gdk-pixbuf
-, libxml2, cairo, pango, gnome3 }:
+, libxml2, cairo, pango, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "lasem";
@@ -22,8 +22,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/lasso/default.nix b/nixpkgs/pkgs/development/libraries/lasso/default.nix
index 24efa689c581..e5503169fd5f 100644
--- a/nixpkgs/pkgs/development/libraries/lasso/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lasso/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
 
   pname = "lasso";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "https://dev.entrouvert.org/lasso/lasso-${version}.tar.gz";
-    sha256 = "1pniisy4z9cshf6lvlz28kfa3qnwnhldb2rvkjxzc0l84g7dpa7q";
+    sha256 = "138x8pmj4k1pbah32z14rd8ylyx4lgz70s93m39vd17f8sjz50lj";
 
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/leptonica/default.nix b/nixpkgs/pkgs/development/libraries/leptonica/default.nix
index 11f1c7fd9c67..363140b5f58f 100644
--- a/nixpkgs/pkgs/development/libraries/leptonica/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leptonica/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "leptonica";
-  version = "1.80.0";
+  version = "1.81.0";
 
   src = fetchurl {
     url = "http://www.leptonica.org/source/${pname}-${version}.tar.gz";
-    sha256 = "192bs676ind8627f0v3v8d1q7r4xwc7q0zvbdbxn1fgvmv14d77c";
+    sha256 = "sha256-0ZKwVem9YLhBEQI8yYDDc5Dm1CexlKj9K9YRVDo73a0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/lib2geom/default.nix b/nixpkgs/pkgs/development/libraries/lib2geom/default.nix
new file mode 100644
index 000000000000..755ed6b814e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/lib2geom/default.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, fetchFromGitLab
+, cmake
+, ninja
+, pkg-config
+, boost
+, glib
+, gsl
+, cairo
+, double-conversion
+, gtest
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lib2geom";
+  version = "1.1";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitLab {
+    owner = "inkscape";
+    repo = "lib2geom";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-u9pbpwVzAXzrM2/tQnd1B6Jo9Fzg6UZBr9AtUsNMfQ0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    glib
+    gsl
+    cairo
+    double-conversion
+  ];
+
+  checkInputs = [
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests
+    "-D2GEOM_BUILD_SHARED=ON"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Easy to use 2D geometry library in C++";
+    homepage = "https://gitlab.com/inkscape/lib2geom";
+    license = [ licenses.lgpl21Only licenses.mpl11 ];
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libAfterImage/default.nix b/nixpkgs/pkgs/development/libraries/libAfterImage/default.nix
index 1c88459ba9b6..de463cdf42cb 100644
--- a/nixpkgs/pkgs/development/libraries/libAfterImage/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libAfterImage/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchurl, zlib }:
+{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, libX11, zlib
+, static ? stdenv.hostPlatform.isStatic
+, withX ? !stdenv.isDarwin }:
 
 stdenv.mkDerivation {
   pname = "libAfterImage";
@@ -13,7 +15,56 @@ stdenv.mkDerivation {
     sha256 = "0n74rxidwig3yhr6fzxsk7y19n1nq1f296lzrvgj5pfiyi9k48vf";
   };
 
-  buildInputs = [ zlib ];
+  patches = [
+    # add back --with-gif option
+    (fetchpatch {
+      name = "libafterimage-gif.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-gif.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
+      sha256 = "16pa94wlqpd7h6mzs4f0qm794yk1xczrwsgf93kdd3g0zbjq3rnr";
+    })
+
+    # fix build with newer giflib
+    (fetchpatch {
+      name = "libafterimage-giflib5-v2.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-giflib5-v2.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
+      sha256 = "0qwydqy9bm73cg5n3vm97aj4jfi70p7fxqmfbi54vi78z593brln";
+      stripLen = 1;
+    })
+
+    # fix build with newer libpng
+    (fetchpatch {
+      name = "libafterimage-libpng15.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-libpng15.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
+      sha256 = "1qyvf7786hayasfnnilfbri3p99cfz5wjpbli3gdqj2cvk6mpydv";
+    })
+
+    # fix an ldconfig problem
+    (fetchpatch {
+      name = "libafterimage-makefile.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-makefile.in.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
+      sha256 = "1n6fniz6dldms615046yhc4mlg9gb53y4yfia8wfz6szgq5zicj4";
+    })
+  ];
+  patchFlags = [ "-p0" ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ giflib libjpeg libpng zlib ] ++ lib.optional withX libX11;
+
+  preConfigure = ''
+    rm -rf {libjpeg,libpng,libungif,zlib}/
+    substituteInPlace Makefile.in \
+      --replace "include .depend" ""
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile.in \
+      --replace "-soname," "-install_name,$out/lib/"
+  '';
+
+  configureFlags = [
+    "--with-gif"
+    "--disable-mmx-optimization"
+    "--${if static then "enable" else "disable"}-staticlibs"
+    "--${if !static then "enable" else "disable"}-sharedlibs"
+  ] ++ lib.optional withX "--with-x";
 
   meta = with lib; {
     homepage = "http://www.afterstep.org/afterimage/";
diff --git a/nixpkgs/pkgs/development/libraries/libadwaita/default.nix b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
new file mode 100644
index 000000000000..f3b9cad0720b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, docbook-xsl-nons
+, gtk-doc
+, meson
+, ninja
+, pkg-config
+, sassc
+, vala
+, gobject-introspection
+, gtk4
+, xvfb-run
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libadwaita";
+  version = "unstable-2021-05-01";
+
+  outputs = [ "out" "dev" "devdoc" ];
+  outputBin = "dev";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "libadwaita";
+    rev = "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe";
+    sha256 = "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q";
+  };
+
+  nativeBuildInputs = [
+    docbook-xsl-nons
+    gtk-doc
+    meson
+    ninja
+    pkg-config
+    sassc
+    vala
+  ];
+
+  mesonFlags = [
+    "-Dgtk_doc=true"
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk4
+  ];
+
+  checkInputs = [
+    xvfb-run
+  ];
+
+  doCheck = true;
+
+  checkPhase = ''
+    xvfb-run meson test
+  '';
+
+  meta = with lib; {
+    description = "Library to help with developing UI for mobile devices using GTK/GNOME";
+    homepage = "https://gitlab.gnome.org/GNOME/libadwaita";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix b/nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix
index 67404f9e5cf9..ee34afad4f74 100644
--- a/nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libamqpcpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libamqpcpp";
-  version = "4.3.11";
+  version = "4.3.12";
 
   src = fetchFromGitHub {
     owner = "CopernicaMarketingSoftware";
     repo = "AMQP-CPP";
     rev = "v${version}";
-    sha256 = "sha256-ZEvzZ++0f7Kf3iVbf3vQbyE8yd/dasU+dSxDDUu8Xug=";
+    sha256 = "sha256-veiD2RrJ08HYZ1Jy8EUe6ct2qh7a2xZCn3TTM+Hvu+0=";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/development/libraries/libao/default.nix b/nixpkgs/pkgs/development/libraries/libao/default.nix
index 99d38f0cfc43..4a07ba9da7d8 100644
--- a/nixpkgs/pkgs/development/libraries/libao/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libao/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config, libpulseaudio, alsaLib, libcap
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config, libpulseaudio, alsa-lib, libcap
 , CoreAudio, CoreServices, AudioUnit
 , usePulseAudio }:
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ] ++
     lib.optional  usePulseAudio   libpulseaudio ++
-    lib.optionals stdenv.isLinux  [ alsaLib libcap ] ++
+    lib.optionals stdenv.isLinux  [ alsa-lib libcap ] ++
     lib.optionals stdenv.isDarwin [ CoreAudio CoreServices AudioUnit ];
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libaom/default.nix b/nixpkgs/pkgs/development/libraries/libaom/default.nix
index 62045a79ebf5..83f5de4d0130 100644
--- a/nixpkgs/pkgs/development/libraries/libaom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libaom/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchgit, yasm, perl, cmake, pkg-config, python3 }:
+{ lib, stdenv, fetchzip, yasm, perl, cmake, pkg-config, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "libaom";
-  version = "3.0.0";
+  version = "3.1.0";
 
-  src = fetchgit {
-    url = "https://aomedia.googlesource.com/aom";
-    rev	= "v${version}";
-    sha256 = "178rq1d7i9q4lg40bipkyhdrk18j9wi5k5avpa5bls0zm7g5ifsx";
+  src = fetchzip {
+    url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz";
+    sha256 = "1v3i34jmbz1p3x8msj3vx46nl6jdzxbkr2lfbh06vard8adb16il";
+    stripRoot = false;
   };
 
   patches = [ ./outputs.patch ];
diff --git a/nixpkgs/pkgs/development/libraries/libass/default.nix b/nixpkgs/pkgs/development/libraries/libass/default.nix
index 6a180cb62c19..3a8c2a2655ac 100644
--- a/nixpkgs/pkgs/development/libraries/libass/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libass/default.nix
@@ -17,11 +17,11 @@ in
 with lib;
 stdenv.mkDerivation rec {
   pname = "libass";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchurl {
     url = "https://github.com/libass/libass/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0cz8v6kh3f2j5rdjrra2z0h715fa16vjm7kambvqx9hak86262cz";
+    sha256 = "sha256-HN05ydAHsG5zfnc4AE1/OM+bHpKEPzcweyTn/2OrjlM=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/libavif/default.nix b/nixpkgs/pkgs/development/libraries/libavif/default.nix
index 173422fa71e0..27427d5e6dc9 100644
--- a/nixpkgs/pkgs/development/libraries/libavif/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libavif/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libavif";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "AOMediaCodec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7p0w94Od33vjTI5wGLxmDC5P2hebAl7OwJPl1lANhKs=";
+    sha256 = "sha256-XWPB5JI4V/anvtHFGY4ejeSlBbxzK6KRG8e5vBhxL8A=";
   };
 
   # reco: encode libaom slowest but best, decode dav1d fastest
diff --git a/nixpkgs/pkgs/development/libraries/libblockdev/default.nix b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
index 584ea93293ef..9b1654420e74 100644
--- a/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, autoreconfHook, pkg-config, gtk-doc
+{ lib, stdenv, fetchFromGitHub, fetchpatch, substituteAll, autoreconfHook, pkg-config, gtk-doc
 , docbook_xml_dtd_43, python3, gobject-introspection, glib, udev, kmod, parted
 , cryptsetup, lvm2, dmraid, util-linux, libbytesize, libndctl, nss, volume_key
 , libxslt, docbook_xsl, gptfdisk, libyaml, autoconf-archive
@@ -22,6 +22,13 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       sgdisk = "${gptfdisk}/bin/sgdisk";
     })
+
+    # fix build with glib 2.68 (g_memdup is deprecated)
+    # https://github.com/storaged-project/libblockdev/pull/623
+    (fetchpatch {
+      url = "https://github.com/storaged-project/libblockdev/commit/5528baef6ccc835a06c45f9db34a2c9c3f2dd940.patch";
+      sha256 = "jxq4BLeyTMeNvBvY8k8QXIvYSJ2Gah0J75pq6FpG7PM=";
+    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/libcanberra/default.nix b/nixpkgs/pkgs/development/libraries/libcanberra/default.nix
index 0127c1ebe8a1..5d4bca0f1b9f 100644
--- a/nixpkgs/pkgs/development/libraries/libcanberra/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcanberra/default.nix
@@ -2,7 +2,7 @@
 , gtk ? null
 , libpulseaudio, gst_all_1, libvorbis, libcap
 , CoreServices
-, withAlsa ? stdenv.isLinux, alsaLib }:
+, withAlsa ? stdenv.isLinux, alsa-lib }:
 
 stdenv.mkDerivation rec {
   name = "libcanberra-0.30";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ])
     ++ lib.optional stdenv.isDarwin CoreServices
     ++ lib.optional stdenv.isLinux libcap
-    ++ lib.optional withAlsa alsaLib;
+    ++ lib.optional withAlsa alsa-lib;
 
   configureFlags = [ "--disable-oss" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libccd/default.nix b/nixpkgs/pkgs/development/libraries/libccd/default.nix
new file mode 100644
index 000000000000..c8e7c8af2104
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libccd/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "libccd";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "danfis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0sfmn5pd7k5kyhbxnd689xmsa5v843r7sska96dlysqpljd691jc";
+  };
+
+  patches = [
+    # Fix pkgconfig file with absolute CMAKE_INSTALL_*DIR
+    # https://github.com/danfis/libccd/pull/76
+    (fetchpatch {
+      url = "https://github.com/danfis/libccd/commit/cd16c4f168ae308e4c77db66ac97a2eaf47e059e.patch";
+      sha256 = "02wj21c185kwf8bn4qi4cnna0ypzqm481xw9rr8jy1i0cb1r9idg";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "Library for collision detection between two convex shapes";
+    homepage = "https://github.com/danfis/libccd";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libcef/default.nix b/nixpkgs/pkgs/development/libraries/libcef/default.nix
index ec1a5ee38281..8f01958a9bcf 100644
--- a/nixpkgs/pkgs/development/libraries/libcef/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcef/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, alsaLib, atk, cairo, cups, dbus, expat, fontconfig
+{ lib, stdenv, fetchurl, cmake, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig
 , GConf, gdk-pixbuf, glib, gtk2, libX11, libxcb, libXcomposite, libXcursor
 , libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXScrnSaver
 , libXtst, nspr, nss, pango, libpulseaudio, systemd, at-spi2-atk, at-spi2-core
@@ -7,7 +7,7 @@
 let
   libPath =
     lib.makeLibraryPath [
-      alsaLib atk cairo cups dbus expat fontconfig GConf gdk-pixbuf glib gtk2
+      alsa-lib atk cairo cups dbus expat fontconfig GConf gdk-pixbuf glib gtk2
       libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes libXi
       libXrandr libXrender libXScrnSaver libXtst nspr nss pango libpulseaudio
       systemd at-spi2-core at-spi2-atk
diff --git a/nixpkgs/pkgs/development/libraries/libchamplain/default.nix b/nixpkgs/pkgs/development/libraries/libchamplain/default.nix
index 22a062acd6ef..20609509b66d 100644
--- a/nixpkgs/pkgs/development/libraries/libchamplain/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libchamplain/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, meson, ninja, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, pkg-config, glib, gtk3, cairo, sqlite, gnome3
+{ fetchurl, lib, stdenv, meson, ninja, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, pkg-config, glib, gtk3, cairo, sqlite, gnome
 , clutter-gtk, libsoup, gobject-introspection /*, libmemphis */ }:
 
 stdenv.mkDerivation rec {
@@ -24,8 +24,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libchardet/default.nix b/nixpkgs/pkgs/development/libraries/libchardet/default.nix
index 260c332f7ef4..47ce911a6951 100644
--- a/nixpkgs/pkgs/development/libraries/libchardet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libchardet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libchardet";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "Joungkyun";
     repo = "libchardet";
     rev = version;
-    sha256 = "0c1k5hf3ssh3cm72w2zpy5k73vhy1gyq5s9rqdawqqa4al8syyvn";
+    sha256 = "sha256-JhEiWM3q8X+eEBHxv8k9yYOaTGoJOzI+/iFYC0gZJJs=";
   };
 
   nativeBuildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/development/libraries/libcint/default.nix b/nixpkgs/pkgs/development/libraries/libcint/default.nix
index d0fc8c3c4a27..a6f2e05d7361 100644
--- a/nixpkgs/pkgs/development/libraries/libcint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "4.1.1";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "sha256-HBZ/VMuTLAYpqcIPzQ4JbsMSXsI/sKc14ZFpbVhQF/g=";
+    hash = "sha256-nsIyosn8dBf217UmjXSKLTM2RhIQHCSvPlrvlqo5KLc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/libck/default.nix b/nixpkgs/pkgs/development/libraries/libck/default.nix
index a46a7b33900a..35a5541bc368 100644
--- a/nixpkgs/pkgs/development/libraries/libck/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libck/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ck";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "concurrencykit";
     repo = pname;
     rev = version;
-    sha256 = "1w7g0y1n7jslca693fb8sanlfi1biq956dw6avdx6pf3c2s7l9jd";
+    sha256 = "sha256-HUC+8Vd0koAmumRZ8gS5u6LVa7fUfkIYRaxVv6/7Hgg=";
   };
 
   dontDisableStatic = true;
diff --git a/nixpkgs/pkgs/development/libraries/libco-canonical/default.nix b/nixpkgs/pkgs/development/libraries/libco-canonical/default.nix
deleted file mode 100644
index a01bbf7419cc..000000000000
--- a/nixpkgs/pkgs/development/libraries/libco-canonical/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config }:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  pname = "libco-canonical";
-  version = "20";
-
-  src = fetchFromGitHub {
-    owner = "canonical";
-    repo = "libco";
-    rev = "v${version}";
-    sha256 = "0r5b1r0sxngx349s5a3zkkvfw5by9y492kr34b25gjspzvjchlxq";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
-
-  outputs = [ "dev" "out" ];
-
-  patchPhase = ''
-    # upstream project assumes all build products will go into single directory
-    # `$prefix` but we need `includedir` to point to "dev", not "out"
-    #
-    # pkgs/build-support/setup-hooks/multiple-outputs.sh would normally patch
-    # this automatically, but it fails here due to use of absolute paths
-
-    substituteInPlace Makefile \
-      --replace "@includedir@|\$(PREFIX)" "@includedir@|${placeholder "dev"}"
-  '';
-
-  meta = {
-    description = "A cooperative multithreading library written in C89";
-    homepage = "https://github.com/canonical/libco";
-    license = licenses.isc;
-    maintainers = with maintainers; [ wucke13 ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/libcommuni/default.nix b/nixpkgs/pkgs/development/libraries/libcommuni/default.nix
index 532c91a0edab..3e2c0daf0b46 100644
--- a/nixpkgs/pkgs/development/libraries/libcommuni/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcommuni/default.nix
@@ -19,7 +19,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   dontUseQmakeConfigure = true;
-  configureFlags = [ "-config" "release" ];
+  configureFlags = [ "-config" "release" ]
+    # Build mixes up dylibs/frameworks if one is not explicitely specified.
+    ++ lib.optionals stdenv.isDarwin [ "-config" "qt_framework" ];
 
   dontWrapQtApps = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/libcrafter/default.nix b/nixpkgs/pkgs/development/libraries/libcrafter/default.nix
index e7a6e6c98372..37ac9bf7f171 100644
--- a/nixpkgs/pkgs/development/libraries/libcrafter/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcrafter/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/pellegre/libcrafter";
     description = "High level C++ network packet sniffing and crafting library";
     license = lib.licenses.bsd3;
-    maintainers = [ lib.maintainers.lethalman ];
+    maintainers = [ ];
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libcryptui/default.nix b/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
index 5fdd60abe115..e816846842f1 100644
--- a/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, intltool, glib, gnome3, gtk3, gnupg22, gpgme, dbus-glib, libgnome-keyring }:
+{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, intltool, glib, gnome, gtk3, gnupg22, gpgme, dbus-glib, libgnome-keyring }:
 
 stdenv.mkDerivation rec {
   pname = "libcryptui";
@@ -20,8 +20,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libdazzle/default.nix b/nixpkgs/pkgs/development/libraries/libdazzle/default.nix
index d6ecb6e9747e..d62614c56c76 100644
--- a/nixpkgs/pkgs/development/libraries/libdazzle/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdazzle/default.nix
@@ -1,19 +1,19 @@
 { lib, stdenv, fetchurl, ninja, meson, pkg-config, vala, gobject-introspection, libxml2
-, gtk-doc, docbook_xsl, docbook_xml_dtd_43, dbus, xvfb_run, glib, gtk3, gnome3 }:
+, gtk-doc, docbook_xsl, docbook_xml_dtd_43, dbus, xvfb-run, glib, gtk3, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "libdazzle";
-  version = "3.38.0";
+  version = "3.40.0";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libdazzle/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13v7s46cgw135ycx0byn7am4inn33slrhljq0v0wwfwl2y1g52p1";
+    sha256 = "19abrrjsyjhhl1xflnb0likb9wwzz78fa1mk2b064rpscmz9mafv";
   };
 
-  nativeBuildInputs = [ ninja meson pkg-config vala gobject-introspection libxml2 gtk-doc docbook_xsl docbook_xml_dtd_43 dbus xvfb_run glib ];
+  nativeBuildInputs = [ ninja meson pkg-config vala gobject-introspection libxml2 gtk-doc docbook_xsl docbook_xml_dtd_43 dbus xvfb-run glib ];
   buildInputs = [ glib gtk3 ];
 
   mesonFlags = [
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/libdeltachat/default.nix b/nixpkgs/pkgs/development/libraries/libdeltachat/default.nix
new file mode 100644
index 000000000000..a5c0752b9ae1
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libdeltachat/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, openssl
+, perl
+, pkg-config
+, rustPlatform
+, sqlite
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libdeltachat";
+  version = "1.55.0";
+
+  src = fetchFromGitHub {
+    owner = "deltachat";
+    repo = "deltachat-core-rust";
+    rev = version;
+    sha256 = "sha256-D30usAVpyiqXQMrTvmdaGFig7jhyb3rMTBQL/E2UL50=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "1hf7lrqbv0ba9c0kmnjn5x1fispyyjip1gmllq77z6nsjpn0f9w8";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    perl
+    pkg-config
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+  ]);
+
+  buildInputs = [
+    openssl
+    sqlite
+  ];
+
+  checkInputs = with rustPlatform; [
+    cargoCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Delta Chat Rust Core library";
+    homepage = "https://github.com/deltachat/deltachat-core-rust/";
+    changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${version}/CHANGELOG.md";
+    license = licenses.mpl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
index 5b2914c141f3..c7a7673dc1b3 100644
--- a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
@@ -2,12 +2,12 @@
 , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
-  version = "3.14.5";
+  version = "3.14.6";
   pname = "libdigidocpp";
 
   src = fetchurl {
      url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
-     sha256 = "sha256-PSrYoz5ID88pYs/4rP2kz0NpI0pK6wcnx62HokE0g20=";
+     sha256 = "sha256-zDMxJyL/T3cXrqgMT15yZlCozgyOt5nNreottuuiGHk=";
   };
 
   nativeBuildInputs = [ cmake pkg-config xxd ];
diff --git a/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix b/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix
index 0f65a5cee5ce..4a9a4b0980e3 100644
--- a/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdivecomputer";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchurl {
     url = "https://www.libdivecomputer.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "0nm1mcscpxb9dv4p0lidd6rf5xg4vmcbigj6zqxvgn7pwnvpbzm0";
+    sha256 = "sha256-gNnxlOokUCA535hZhILgr8aw4zPeeds0wpstaJNNJbk=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/libepc/default.nix b/nixpkgs/pkgs/development/libraries/libepc/default.nix
index ee8dfb6e94f7..9755d0977c85 100644
--- a/nixpkgs/pkgs/development/libraries/libepc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libepc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gtk-doc, glib, avahi, gnutls, libuuid, libsoup, gtk3, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, intltool, gtk-doc, glib, avahi, gnutls, libuuid, libsoup, gtk3, gnome }:
 
 let
   avahiWithGtk = avahi.override { gtk3Support = true; };
@@ -32,8 +32,9 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libevent/default.nix b/nixpkgs/pkgs/development/libraries/libevent/default.nix
index b33e94114f63..24ded54d8e97 100644
--- a/nixpkgs/pkgs/development/libraries/libevent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libevent/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
     sha256 = "1fq30imk8zd26x8066di3kpc5zyfc5z6frr3zll685zcx4dxxrlj";
   };
 
+  preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '';
+
   # libevent_openssl is moved into its own output, so that openssl isn't present
   # in the default closure.
   outputs = [ "out" "dev" ]
diff --git a/nixpkgs/pkgs/development/libraries/libextractor/default.nix b/nixpkgs/pkgs/development/libraries/libextractor/default.nix
index d99cf6ef6214..cef1fbc512ae 100644
--- a/nixpkgs/pkgs/development/libraries/libextractor/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libextractor/default.nix
@@ -13,11 +13,11 @@
 # '';
 # See also <https://nixos.org/nixpkgs/manual/#sec-language-gnome>.
 , gtkSupport ? true, glib ? null, gtk3 ? null
-, videoSupport ? true, ffmpeg_3 ? null, libmpeg2 ? null}:
+, videoSupport ? true, ffmpeg ? null, libmpeg2 ? null}:
 
 assert gstreamerSupport -> gst_all_1 != null && builtins.isList (gstPlugins gst_all_1);
 assert gtkSupport -> glib != null && gtk3 != null;
-assert videoSupport -> ffmpeg_3 != null && libmpeg2 != null;
+assert videoSupport -> ffmpeg != null && libmpeg2 != null;
 
 stdenv.mkDerivation rec {
   pname = "libextractor";
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
    ] ++ lib.optionals gstreamerSupport
           ([ gst_all_1.gstreamer ] ++ gstPlugins gst_all_1)
      ++ lib.optionals gtkSupport [ glib gtk3 ]
-     ++ lib.optionals videoSupport [ ffmpeg_3 libmpeg2 ];
+     ++ lib.optionals videoSupport [ ffmpeg libmpeg2 ];
 
   configureFlags = [
     "--disable-ltdl-install"
diff --git a/nixpkgs/pkgs/development/libraries/libfaketime/default.nix b/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
index ced1c3e7bb9f..34c957715dde 100644
--- a/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfaketime/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "faketime";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libfido2/default.nix b/nixpkgs/pkgs/development/libraries/libfido2/default.nix
index f44ae4d01f24..64c16e92c44b 100644
--- a/nixpkgs/pkgs/development/libraries/libfido2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfido2/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , fetchpatch
 , cmake
@@ -7,30 +8,47 @@
 , libcbor
 , openssl
 , udev
+, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "libfido2";
-  version = "1.5.0";
+  version = "1.7.0";
+
+  # releases on https://developers.yubico.com/libfido2/Releases/ are signed
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "08iizxq3w8mpkwfrfpl59csffc20yz8x398bl3kf23rrr4izk42r";
+    sha256 = "13khkp2q8g447797l09p83qxy0z8vgmzr54l8dcnapy9lsr4jrqi";
   };
 
+  patches = [
+    # fix log truncation
+    # https://github.com/Yubico/libfido2/issues/318
+    # https://github.com/Yubico/libfido2/pull/319
+    (fetchpatch {
+      url = "https://github.com/Yubico/libfido2/commit/8edb9a204b2f4aeb487e282908c3187f1d02d606.patch";
+      sha256 = "1i360bghwbdccgkzjfzvhilscnwsj9lhfiviy000n928698l4wan";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ hidapi libcbor openssl ]
+  buildInputs = [ libcbor openssl zlib ]
+    ++ lib.optionals stdenv.isDarwin [ hidapi ]
     ++ lib.optionals stdenv.isLinux [ udev ];
 
   cmakeFlags = [
     "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d"
-    "-DUSE_HIDAPI=1"
     "-DCMAKE_INSTALL_LIBDIR=lib"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-DUSE_HIDAPI=1"
+  ] ++ lib.optionals stdenv.isLinux [
+    "-DNFC_LINUX=1"
   ];
 
   meta = with lib; {
     description = ''
-    Provides library functionality for FIDO 2.0, including communication with a device over USB.
+      Provides library functionality for FIDO 2.0, including communication with a device over USB.
     '';
     homepage = "https://github.com/Yubico/libfido2";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/libraries/libfive/default.nix b/nixpkgs/pkgs/development/libraries/libfive/default.nix
index 0f6ad84fe755..3833a7fe880a 100644
--- a/nixpkgs/pkgs/development/libraries/libfive/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfive/default.nix
@@ -10,6 +10,7 @@
 , libpng
 , boost
 , guile
+, stdenv
 }:
 
 mkDerivation {
@@ -26,8 +27,19 @@ mkDerivation {
   nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config ];
   buildInputs = [ eigen zlib libpng boost guile ];
 
-  # Link "Studio" binary to "libfive-studio" to be more obvious:
-  postFixup = ''
+  postInstall = if stdenv.isDarwin then ''
+    # No rules to install the mac app, so do it manually.
+    mkdir -p $out/Applications
+    cp -r studio/Studio.app $out/Applications/Studio.app
+
+    install_name_tool \
+      -change libfive.dylib $out/lib/libfive.dylib \
+      -change libfive-guile.dylib $out/lib/libfive-guile.dylib \
+      $out/Applications/Studio.app/Contents/MacOS/Studio
+
+    wrapQtApp $out/Applications/Studio.app/Contents/MacOS/Studio
+  '' else ''
+    # Link "Studio" binary to "libfive-studio" to be more obvious:
     ln -s "$out/bin/Studio" "$out/bin/libfive-studio"
   '';
 
diff --git a/nixpkgs/pkgs/development/libraries/libfixposix/default.nix b/nixpkgs/pkgs/development/libraries/libfixposix/default.nix
index d8659b9e15f0..4c7680f70469 100644
--- a/nixpkgs/pkgs/development/libraries/libfixposix/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfixposix/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, getconf }:
 
 stdenv.mkDerivation rec {
   pname = "libfixposix";
@@ -11,13 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "1x4q6yspi5g2s98vq4qszw4z3zjgk9l5zs8471w4d4cs6l97w08j";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ] ++ lib.optionals stdenv.isDarwin [ getconf ];
 
   meta = with lib; {
     homepage = "https://github.com/sionescu/libfixposix";
     description = "Thin wrapper over POSIX syscalls and some replacement functionality";
     license = licenses.boost;
     maintainers = with maintainers; [ orivej raskin ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libgda/6.x.nix b/nixpkgs/pkgs/development/libraries/libgda/6.x.nix
index fc24fe41c4d3..28235d65d98a 100644
--- a/nixpkgs/pkgs/development/libraries/libgda/6.x.nix
+++ b/nixpkgs/pkgs/development/libraries/libgda/6.x.nix
@@ -12,7 +12,7 @@
 , json-glib
 , isocodes
 , openssl
-, gnome3
+, gnome
 , gobject-introspection
 , vala
 , libgee
@@ -71,9 +71,10 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "libgda6";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libgda/default.nix b/nixpkgs/pkgs/development/libraries/libgda/default.nix
index 307cc14a6efe..b3f6e1a7cdd9 100644
--- a/nixpkgs/pkgs/development/libraries/libgda/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgda/default.nix
@@ -7,7 +7,7 @@
 , libxml2
 , gtk3
 , openssl
-, gnome3
+, gnome
 , gobject-introspection
 , vala
 , libgee
@@ -84,8 +84,9 @@ assert postgresSupport -> postgresql != null;
   hardeningDisable = [ "format" ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libgdamm/default.nix b/nixpkgs/pkgs/development/libraries/libgdamm/default.nix
index 44a0e8bc2121..ad5e0cbecd6e 100644
--- a/nixpkgs/pkgs/development/libraries/libgdamm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgdamm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, glibmm, libgda, libxml2, gnome3
+{ lib, stdenv, fetchurl, pkg-config, glibmm, libgda, libxml2, gnome
 , mysqlSupport ? false
 , postgresSupport ? false }:
 
@@ -24,8 +24,9 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libgdata/default.nix b/nixpkgs/pkgs/development/libraries/libgdata/default.nix
index fdaace2dc4f0..f85dbea54d9d 100644
--- a/nixpkgs/pkgs/development/libraries/libgdata/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgdata/default.nix
@@ -12,7 +12,7 @@
 , gcr
 , gnome-online-accounts
 , gobject-introspection
-, gnome3
+, gnome
 , p11-kit
 , openssl
 , uhttpmock
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none"; # Stable version has not been updated for a long time.
     };
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GData API library";
     homepage = "https://wiki.gnome.org/Projects/libgdata";
-    maintainers = with maintainers; [ raskin lethalman ] ++ teams.gnome.members;
+    maintainers = with maintainers; [ raskin ] ++ teams.gnome.members;
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
   };
diff --git a/nixpkgs/pkgs/development/libraries/libgee/default.nix b/nixpkgs/pkgs/development/libraries/libgee/default.nix
index 407b99b5a57b..1a40d1f17b41 100644
--- a/nixpkgs/pkgs/development/libraries/libgee/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgee/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, autoconf, vala, pkg-config, glib, gobject-introspection, gnome3 }:
+{ lib, stdenv, fetchurl, autoconf, vala, pkg-config, glib, gobject-introspection, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "libgee";
-  version = "0.20.3";
+  version = "0.20.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh";
+    sha256 = "03nyf8n7i7f67fsh220g52slmihdk1lv4iwspm7xmkgrj3rink2j";
   };
 
   doCheck = true;
@@ -20,8 +20,9 @@ stdenv.mkDerivation rec {
   PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libgepub/default.nix b/nixpkgs/pkgs/development/libraries/libgepub/default.nix
index e058c7ed5af3..7ae7bff50efa 100644
--- a/nixpkgs/pkgs/development/libraries/libgepub/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgepub/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, glib, gobject-introspection, gnome3
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, glib, gobject-introspection, gnome
 , webkitgtk, libsoup, libxml2, libarchive }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib webkitgtk libsoup libxml2 libarchive ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/libgig/default.nix b/nixpkgs/pkgs/development/libraries/libgig/default.nix
index f78a51db5de6..26e3b46d5510 100644
--- a/nixpkgs/pkgs/development/libraries/libgig/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgig/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgig";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
-    sha256 = "1zs5yy124bymfyapsnljr6rv2lnn5inwchm0xnwiw44b2d39l8hn";
+    sha256 = "sha256-oG0Jh4eAxsGd2NucM1RNU6kzV/niexSpg6qrpo//p5Q=";
   };
 
   nativeBuildInputs = [ autoconf automake libtool pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libgit2-glib/default.nix b/nixpkgs/pkgs/development/libraries/libgit2-glib/default.nix
index fe36a9d663f3..56259814d8a5 100644
--- a/nixpkgs/pkgs/development/libraries/libgit2-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgit2-glib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gnome3, meson, ninja, pkg-config, vala, libssh2
+{ lib, stdenv, fetchurl, gnome, meson, ninja, pkg-config, vala, libssh2
 , gtk-doc, gobject-introspection, libgit2, glib, python3 }:
 
 stdenv.mkDerivation rec {
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/libgksu/default.nix b/nixpkgs/pkgs/development/libraries/libgksu/default.nix
index cf8f5ab48786..b00e7b324518 100644
--- a/nixpkgs/pkgs/development/libraries/libgksu/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgksu/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, wrapGAppsHook, gtk2, gnome2, gnome3,
+{ lib, stdenv, fetchurl, pkg-config, wrapGAppsHook, gtk2, gnome2, gnome,
   libstartup_notification, libgtop, perlPackages,
   autoreconfHook, intltool, docbook_xsl, xauth
 }:
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk2 gnome2.GConf libstartup_notification
-    gnome3.libgnome-keyring libgtop gnome2.libglade
+    gnome.libgnome-keyring libgtop gnome2.libglade
   ] ++ (with perlPackages; [ perl XMLParser ]);
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/libglvnd/default.nix b/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
index 31a9579a8928..65d0651ed415 100644
--- a/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libglvnd";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "glvnd";
     repo = "libglvnd";
     rev = "v${version}";
-    sha256 = "10x7fgb114r4gikdg6flszl3kwzcb9y5qa7sj9936mk0zxhjaylz";
+    sha256 = "0gjk6m3gkdm12bmih2jflp0v5s1ibkixk7mrzrk0cj884m3hy1z6";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config python3 addOpenGLRunpath ];
diff --git a/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix b/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix
index 62228b8837a8..957c21342524 100644
--- a/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, file, intltool, glib, gtk3, libxklavier, wrapGAppsHook, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, file, intltool, glib, gtk3, libxklavier, wrapGAppsHook, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "libgnomekbd";
@@ -11,10 +11,6 @@ stdenv.mkDerivation rec {
     sha256 = "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = pname; };
-  };
-
   nativeBuildInputs = [
     file
     intltool
@@ -29,6 +25,13 @@ stdenv.mkDerivation rec {
     glib
   ];
 
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      versionPolicy = "odd-unstable";
+    };
+  };
+
   meta = with lib; {
     description = "Keyboard management library";
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/libraries/libgpiod/default.nix b/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
index 8f6d9fcab5ed..ccf1c4703647 100644
--- a/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgpiod";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
-    sha256 = "1k8mxkzvd6y9aawxghddrjkldzskhb6607qhbwjfl9f945ns87qa";
+    sha256 = "sha256-60RgcL4URP19MtMrvKU8Lzu7CiEZPbhhmM9gULeihEE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libgrss/default.nix b/nixpkgs/pkgs/development/libraries/libgrss/default.nix
index b8c7c7bc4977..8c5ea73af0b9 100644
--- a/nixpkgs/pkgs/development/libraries/libgrss/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgrss/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, vala, gobject-introspection, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, libxml2, libsoup, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, vala, gobject-introspection, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, libxml2, libsoup, gnome }:
 
 let
   version = "0.7.0";
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/libgsf/default.nix b/nixpkgs/pkgs/development/libraries/libgsf/default.nix
index 77fa161b773a..1ccc5d778967 100644
--- a/nixpkgs/pkgs/development/libraries/libgsf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgsf/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, lib, stdenv, pkg-config, intltool, gettext, glib, libxml2, zlib, bzip2
-, perl, gdk-pixbuf, libiconv, libintl, gnome3 }:
+, perl, gdk-pixbuf, libiconv, libintl, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "libgsf";
@@ -23,8 +23,9 @@ stdenv.mkDerivation rec {
   preCheck = "patchShebangs ./tests/";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libgtop/default.nix b/nixpkgs/pkgs/development/libraries/libgtop/default.nix
index af4fe04a0b42..98b0dc89fee8 100644
--- a/nixpkgs/pkgs/development/libraries/libgtop/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgtop/default.nix
@@ -5,7 +5,7 @@
 , perl
 , gettext
 , gobject-introspection
-, gnome3
+, gnome
 , gtk-doc
 }:
 
@@ -31,8 +31,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libgudev/default.nix b/nixpkgs/pkgs/development/libraries/libgudev/default.nix
index feeae05bf526..6fd108b3b7a6 100644
--- a/nixpkgs/pkgs/development/libraries/libgudev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgudev/default.nix
@@ -1,31 +1,49 @@
 { lib, stdenv
 , fetchurl
 , pkg-config
+, meson
+, ninja
 , udev
 , glib
 , gobject-introspection
-, gnome3
+, gnome
+, vala
 }:
 
 stdenv.mkDerivation rec {
   pname = "libgudev";
-  version = "234";
+  version = "236";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0drf39qhsdz35kwb18hnfj2ig4yfxhfks66m783zlhnvy2narbhv";
+    sha256 = "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5";
   };
 
-  nativeBuildInputs = [ pkg-config gobject-introspection ];
-  buildInputs = [ udev glib ];
+  nativeBuildInputs = [
+    pkg-config
+    gobject-introspection
+    meson
+    ninja
+    vala
+  ];
 
-  # There's a dependency cycle with umockdev and the tests fail to LD_PRELOAD anyway.
-  configureFlags = [ "--disable-umockdev" ];
+  buildInputs = [
+    udev
+    glib
+  ];
+
+  mesonFlags = [
+    # There's a dependency cycle with umockdev and the tests fail to LD_PRELOAD anyway
+    "-Dtests=disabled"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "-Dintrospection=disabled"
+    "-Dvapi=disabled"
+  ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/libguestfs/default.nix b/nixpkgs/pkgs/development/libraries/libguestfs/default.nix
index 0f56f8c97f38..47f6ffe2c52f 100644
--- a/nixpkgs/pkgs/development/libraries/libguestfs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libguestfs/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
   configureFlags = [ "--disable-appliance" "--disable-daemon" "--with-distro=NixOS" ]
     ++ lib.optionals (!javaSupport) [ "--disable-java" "--without-java" ];
-  patches = [ ./libguestfs-syms.patch ];
+  patches = [ ./libguestfs-syms.patch ./ocaml-4.12.patch ];
   NIX_CFLAGS_COMPILE="-I${libxml2.dev}/include/libxml2/";
   installFlags = [ "REALLY_INSTALL=yes" ];
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/libguestfs/ocaml-4.12.patch b/nixpkgs/pkgs/development/libraries/libguestfs/ocaml-4.12.patch
new file mode 100644
index 000000000000..032527d57130
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libguestfs/ocaml-4.12.patch
@@ -0,0 +1,11 @@
+--- a/common/mlstdutils/std_utils.ml	2019-02-07 15:45:56.516955598 +0100
++++ b/common/mlstdutils/std_utils.ml	2019-02-07 15:45:56.516955598 +0100
+@@ -305,7 +305,7 @@
+       | x::xs, y::ys, z::zs -> (x, y, z) :: combine3 xs ys zs
+       | _ -> invalid_arg "combine3"
+ 
+-    let rec assoc_lbl ?(cmp = compare) ~default x = function
++    let rec assoc_lbl ?(cmp = Pervasives.compare) ~default x = function
+       | [] -> default
+       | (y, y') :: _ when cmp x y = 0 -> y'
+       | _ :: ys -> assoc_lbl ~cmp ~default x ys
diff --git a/nixpkgs/pkgs/development/libraries/libgweather/default.nix b/nixpkgs/pkgs/development/libraries/libgweather/default.nix
index 9351d3f707fa..fbab67e08652 100644
--- a/nixpkgs/pkgs/development/libraries/libgweather/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgweather/default.nix
@@ -1,24 +1,57 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, libxml2, glib, gtk3, gettext, libsoup
-, gtk-doc, docbook_xsl, docbook_xml_dtd_43, gobject-introspection, python3, tzdata, geocode-glib, vala, gnome3 }:
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, libxml2
+, glib
+, gtk3
+, gettext
+, libsoup
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gobject-introspection
+, python3
+, tzdata
+, geocode-glib
+, vala
+, gnome
+}:
 
 stdenv.mkDerivation rec {
   pname = "libgweather";
-  version = "3.36.1";
+  version = "40.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0l74hc02rvzm4p530y539a67jwb080fqdaazdl8j0fr3xvq0j9yy";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config gettext vala gtk-doc docbook_xsl docbook_xml_dtd_43 gobject-introspection python3 ];
-  buildInputs = [ glib gtk3 libsoup libxml2 geocode-glib ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    vala
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+    gobject-introspection
+    python3
+    python3.pkgs.pygobject3
+  ];
 
-  postPatch = ''
-    chmod +x meson/meson_post_install.py
-    patchShebangs meson/meson_post_install.py
-  '';
+  buildInputs = [
+    glib
+    gtk3
+    libsoup
+    libxml2
+    geocode-glib
+  ];
 
   mesonFlags = [
     "-Dzoneinfo_dir=${tzdata}/share/zoneinfo"
@@ -26,9 +59,16 @@ stdenv.mkDerivation rec {
     "-Dgtk_doc=true"
   ];
 
+  postPatch = ''
+    chmod +x meson/meson_post_install.py
+    patchShebangs meson/meson_post_install.py
+    patchShebangs data/gen_locations_variant.py
+  '';
+
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libgxps/default.nix b/nixpkgs/pkgs/development/libraries/libgxps/default.nix
index be088496f2e1..fc871f174eb5 100644
--- a/nixpkgs/pkgs/development/libraries/libgxps/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgxps/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, meson, ninja, pkg-config, glib, gobject-introspection, cairo
-, libarchive, freetype, libjpeg, libtiff, gnome3, lcms2
+, libarchive, freetype, libjpeg, libtiff, gnome, lcms2
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix b/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix
index ff2093255cf0..7597aee697a8 100644
--- a/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix
+++ b/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitLab, meson, ninja, pkg-config, gobject-introspection, vala
 , gtk-doc, docbook_xsl, docbook_xml_dtd_43
-, gtk3, gnome3
-, dbus, xvfb_run, libxml2
+, gtk3, gnome
+, dbus, xvfb-run, libxml2
 , hicolor-icon-theme
 }:
 
@@ -24,8 +24,8 @@ stdenv.mkDerivation rec {
     meson ninja pkg-config gobject-introspection vala libxml2
     gtk-doc docbook_xsl docbook_xml_dtd_43
   ];
-  buildInputs = [ gnome3.gnome-desktop gtk3 libxml2 ];
-  checkInputs = [ dbus xvfb_run hicolor-icon-theme ];
+  buildInputs = [ gnome.gnome-desktop gtk3 libxml2 ];
+  checkInputs = [ dbus xvfb-run hicolor-icon-theme ];
 
   mesonFlags = [
     "-Dgtk_doc=true"
diff --git a/nixpkgs/pkgs/development/libraries/libhandy/default.nix b/nixpkgs/pkgs/development/libraries/libhandy/default.nix
index 4532edfd884b..891bd04ea543 100644
--- a/nixpkgs/pkgs/development/libraries/libhandy/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhandy/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , meson
 , ninja
@@ -6,35 +7,45 @@
 , gobject-introspection
 , vala
 , gtk-doc
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 , gtk3
+, enableGlade ? false
 , glade
 , dbus
-, xvfb_run
+, xvfb-run
 , libxml2
 , gdk-pixbuf
 , librsvg
 , hicolor-icon-theme
 , at-spi2-atk
 , at-spi2-core
+, gnome
+, libhandy
+, runCommand
 }:
 
 stdenv.mkDerivation rec {
   pname = "libhandy";
-  version = "1.2.0";
+  version = "1.2.2";
 
-  outputs = [ "out" "dev" "devdoc" "glade" ];
+  outputs = [
+    "out"
+    "dev"
+    "devdoc"
+  ] ++ lib.optionals enableGlade [
+    "glade"
+  ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-OfWQriCRDnb+HAYHsuvliXUPRWENau7Fww4u5gKiCyU=";
+    sha256 = "sha256-R//Shl0CvRyleVIt6t1+L5U2Lx8gJGL9XuriuBZosEg=";
   };
 
   nativeBuildInputs = [
     docbook_xml_dtd_43
-    docbook_xsl
+    docbook-xsl-nons
     gobject-introspection
     gtk-doc
     libxml2
@@ -46,14 +57,15 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gdk-pixbuf
-    glade
     gtk3
     libxml2
+  ] ++ lib.optionals enableGlade [
+    glade
   ];
 
   checkInputs = [
     dbus
-    xvfb_run
+    xvfb-run
     at-spi2-atk
     at-spi2-core
     librsvg
@@ -62,6 +74,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgtk_doc=true"
+    "-Dglade_catalog=${if enableGlade then "enabled" else "disabled"}"
   ];
 
   # Uses define_variable in pkg-config, but we still need it to use the glade output
@@ -79,6 +92,23 @@ stdenv.mkDerivation rec {
       meson test --print-errorlogs
   '';
 
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+    };
+  } // lib.optionalAttrs (!enableGlade) {
+    glade =
+      let
+        libhandyWithGlade = libhandy.override {
+          enableGlade = true;
+        };
+      in runCommand "${libhandy.name}-glade" {} ''
+        cp -r "${libhandyWithGlade.glade}" "$out"
+        chmod -R +w "$out"
+        sed -e "s#${libhandyWithGlade.out}#${libhandy.out}#g" -e "s#${libhandyWithGlade.glade}#$out#g" -i $(find "$out" -type f)
+      '';
+  };
+
   meta = with lib; {
     changelog = "https://gitlab.gnome.org/GNOME/libhandy/-/tags/${version}";
     description = "Building blocks for modern adaptive GNOME apps";
diff --git a/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix b/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
index ab0ad6fab23e..f8db7075ca76 100644
--- a/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libhdhomerun";
-  version = "20200907";
+  version = "20210224";
 
   src = fetchurl {
     url = "https://download.silicondust.com/hdhomerun/libhdhomerun_${version}.tgz";
-    sha256 = "1v80jk056ii2iv2w7sq24i3prjrbhxql5vqhafs7vq54qmwvgbnb";
+    sha256 = "sha256:1y1kwv34qg8nayfkbrxkw8163l46krsfqx8yvkcsc97ilsd3i5mr";
   };
 
   patchPhase = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/libraries/libheif/default.nix b/nixpkgs/pkgs/development/libraries/libheif/default.nix
index 71dfca5e6430..d445a7c3867e 100644
--- a/nixpkgs/pkgs/development/libraries/libheif/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libheif/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libheif";
-  version = "1.11.0";
+  version = "1.12.0";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "strukturag";
     repo = "libheif";
     rev = "v${version}";
-    sha256 = "sha256-xT0sfYPp5atYXnVpP8TYu2TC9/Z/ClyEP1OTSfcw1gw=";
+    sha256 = "sha256-RjGLaDSBO8T7ijRb5a16aUlkCy5vdFPs4O9caIJo4jI=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix b/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix
index 648eb89a514a..975ad2258131 100644
--- a/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhttpseverywhere/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, meson, ninja, makeFontsConf, vala, fetchpatch
-, gnome3, libgee, glib, json-glib, libarchive, libsoup, gobject-introspection }:
+, gnome, libgee, glib, json-glib, libarchive, libsoup, gobject-introspection }:
 
 let
   pname = "libhttpseverywhere";
@@ -34,8 +34,9 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "devdoc" ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libical/default.nix b/nixpkgs/pkgs/development/libraries/libical/default.nix
index fa396e966506..909ee73e69a6 100644
--- a/nixpkgs/pkgs/development/libraries/libical/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libical/default.nix
@@ -12,16 +12,15 @@
 , libical
 , python3
 , tzdata
+, fixDarwinDylibNames
 , introspectionSupport ? stdenv.buildPlatform == stdenv.hostPlatform
-, gobject-introspection ? null
-, vala ? null
+, gobject-introspection
+, vala
 }:
 
-assert introspectionSupport -> gobject-introspection != null && vala != null;
-
 stdenv.mkDerivation rec {
   pname = "libical";
-  version = "3.0.9";
+  version = "3.0.10";
 
   outputs = [ "out" "dev" ]; # "devdoc" ];
 
@@ -29,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "libical";
     repo = "libical";
     rev = "v${version}";
-    sha256 = "sha256-efdiGktLGITaQ6VinnfYG52fMhO0Av+JKROt2kTvS1U=";
+    sha256 = "sha256-fLmEJlkZLYLcKZqZwitf8rH261QDPTJZf/+/+FMsGIg=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +46,8 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals introspectionSupport [
     gobject-introspection
     vala
+  ] ++ lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
   ];
   installCheckInputs = [
     # running libical-glib tests
@@ -80,6 +81,13 @@ stdenv.mkDerivation rec {
   # LD_LIBRARY_PATH and GI_TYPELIB_PATH variables
   doInstallCheck = true;
   enableParallelChecking = false;
+  preInstallCheck = if stdenv.isDarwin then ''
+    for testexe in $(find ./src/test -maxdepth 1 -type f -executable); do
+      for lib in $(cd lib && ls *.3.dylib); do
+        install_name_tool -change $lib $out/lib/$lib $testexe
+      done
+    done
+  '' else null;
   installCheckPhase = ''
     runHook preInstallCheck
 
diff --git a/nixpkgs/pkgs/development/libraries/libidn2/default.nix b/nixpkgs/pkgs/development/libraries/libidn2/default.nix
index 30a334266395..b1d234476c4b 100644
--- a/nixpkgs/pkgs/development/libraries/libidn2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libidn2/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, libiconv, libunistring, help2man, buildPackages }:
+{ fetchurl, lib, stdenv, libiconv, libunistring, help2man, texinfo, buildPackages }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -9,18 +9,20 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "libidn2";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchurl {
     url = "mirror://gnu/gnu/libidn/${pname}-${version}.tar.gz";
-    sha256 = "1ddqr80kmz4l8g3r3gf7bmf2v29fgivlc2bgxfiscjg2sarivjz1";
+    sha256 = "sha256-ivaElDg2uLU5ZdX1tnFO8TwmyR6qNs59JC49IfXUDy0=";
   };
 
   outputs = [ "bin" "dev" "out" "info" "devdoc" ];
 
   patches = optional stdenv.isDarwin ./fix-error-darwin.patch;
 
-  nativeBuildInputs = optional stdenv.isDarwin help2man;
+  # The above patch causes the documentation to be regenerated, so the
+  # documentation tools are required.
+  nativeBuildInputs = optionals stdenv.isDarwin [ help2man texinfo ];
   buildInputs = [ libunistring ] ++ optional stdenv.isDarwin libiconv;
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libiio/cmake-fix-libxml2-find-package.patch b/nixpkgs/pkgs/development/libraries/libiio/cmake-fix-libxml2-find-package.patch
new file mode 100644
index 000000000000..25345bef90c4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libiio/cmake-fix-libxml2-find-package.patch
@@ -0,0 +1,13 @@
+diff --color -ur a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt	2021-05-30 13:46:22.256040282 +0200
++++ b/CMakeLists.txt	2021-05-30 14:15:42.530181216 +0200
+@@ -333,7 +333,7 @@
+ # So, try first to find the CMake module provided by libxml2 package, then fallback
+ # on the CMake's FindLibXml2.cmake module (which can lack some definition, especially
+ # in static build case).
+-find_package(LibXml2 QUIET NO_MODULE)
++find_package(LibXml2 QUIET MODULE)
+ if(DEFINED LIBXML2_VERSION_STRING)
+ 	set(LIBXML2_FOUND ON)
+ 	set(LIBXML2_INCLUDE_DIR ${LIBXML2_INCLUDE_DIRS})
+Seulement dans b: good.patch
diff --git a/nixpkgs/pkgs/development/libraries/libiio/default.nix b/nixpkgs/pkgs/development/libraries/libiio/default.nix
index 043e27fb4b2a..e704076ab57a 100644
--- a/nixpkgs/pkgs/development/libraries/libiio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libiio/default.nix
@@ -23,6 +23,10 @@ stdenv.mkDerivation rec {
     sha256 = "0psw67mzysdb8fkh8xpcwicm7z94k8plkcc8ymxyvl6inshq0mc7";
   };
 
+  # Revert after https://github.com/NixOS/nixpkgs/issues/125008 is
+  # fixed properly
+  patches = [ ./cmake-fix-libxml2-find-package.patch ];
+
   nativeBuildInputs = [
     cmake
     flex
diff --git a/nixpkgs/pkgs/development/libraries/libimagequant/default.nix b/nixpkgs/pkgs/development/libraries/libimagequant/default.nix
index ad1df00c2509..bc6492418722 100644
--- a/nixpkgs/pkgs/development/libraries/libimagequant/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libimagequant/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     patchShebangs ./configure
   '';
 
-  configureFlags = lib.optionals stdenv.isAarch64 [ "--disable-sse" ];
+  configureFlags = lib.optionals (!stdenv.isi686 && !stdenv.isx86_64) [ "--disable-sse" ];
 
   meta = with lib; {
     homepage = "https://pngquant.org/lib/";
diff --git a/nixpkgs/pkgs/development/libraries/libime/default.nix b/nixpkgs/pkgs/development/libraries/libime/default.nix
index f9fcdedf1803..4f0caa7cc33c 100644
--- a/nixpkgs/pkgs/development/libraries/libime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libime/default.nix
@@ -18,21 +18,21 @@ let
     url = "https://download.fcitx-im.org/data/lm_sc.3gm.arpa-${arpaVer}.tar.bz2";
     sha256 = "0bqy3l7mif0yygjrcm65qallszgn17mvgyxhvz7a54zaamyan6vm";
   };
-  dictVer = "20200715";
+  dictVer = "20210402";
   dict = fetchurl {
     url = "https://download.fcitx-im.org/data/dict.utf8-${dictVer}.tar.xz";
-    sha256 = "1ln7r64j8mc7wz4j0q4v8wd68wy7qqz4bz1dpxk7zqbdvza6rhr3";
+    sha256 = "sha256-gYz7tama5bQMJwe2FYc09KEBlkRIU0AMvWsUUFWS2A0=";
   };
 in
 stdenv.mkDerivation rec {
   pname = "libime";
-  version = "1.0.3";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "libime";
     rev = version;
-    sha256 = "sha256-Ykj4/3yKUqK0BRqW1E2zFYNgeUOXQ1DsotmKU6c8vEg=";
+    sha256 = "sha256-q/SXS6pT4vBkCkCTarPVHrZPXijYnc2t51YGRvzQ0FY=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix b/nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix
index b805be1257bd..94fce176127c 100644
--- a/nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libimobiledevice/default.nix
@@ -1,25 +1,36 @@
-{ lib, stdenv, fetchFromGitHub, automake, autoconf, libtool, pkg-config, gnutls
-, libgcrypt, libtasn1, glib, libplist, libusbmuxd }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, libtool
+, pkg-config
+, gnutls
+, libgcrypt
+, libtasn1
+, glib
+, libplist
+, libusbmuxd
+}:
 
 stdenv.mkDerivation rec {
   pname = "libimobiledevice";
-  version = "1.3.0";
+  version = "unstable-2021-06-02";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = version;
-    sha256 = "1jkq3hpg4n5a6s1k618ib0s80pwf00nlfcby7xckysq8mnd2pp39";
+    rev = "ca324155f8b33babf907704828c7903608db0aa2";
+    sha256 = "sha256-Q7THwld1+elMJQ14kRnlIJDohFt7MW7JeyIUGC0k52I=";
   };
 
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
-    autoconf
-    automake
+    autoreconfHook
     libtool
     pkg-config
   ];
+
   propagatedBuildInputs = [
     glib
     gnutls
@@ -29,12 +40,7 @@ stdenv.mkDerivation rec {
     libusbmuxd
   ];
 
-  preConfigure = "NOCONFIGURE=1 ./autogen.sh";
-
-  configureFlags = [
-    "--disable-openssl"
-    "--without-cython"
-  ];
+  configureFlags = [ "--disable-openssl" "--without-cython" ];
 
   meta = with lib; {
     homepage = "https://github.com/libimobiledevice/libimobiledevice";
diff --git a/nixpkgs/pkgs/development/libraries/libjcat/default.nix b/nixpkgs/pkgs/development/libraries/libjcat/default.nix
index 2e75894eb834..f027fbe3cb8b 100644
--- a/nixpkgs/pkgs/development/libraries/libjcat/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjcat/default.nix
@@ -8,7 +8,6 @@
 , gpgme
 , gobject-introspection
 , vala
-, help2man
 , gtk-doc
 , meson
 , ninja
@@ -19,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libjcat";
-  version = "0.1.6";
+  version = "0.1.7";
 
   outputs = [ "bin" "out" "dev" "devdoc" "man" "installedTests" ];
 
@@ -27,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libjcat";
     rev = version;
-    sha256 = "sha256-X+mFl0YZpnt6zzvVTGZN7PROVUaQ8ZmU3T0EgyoZX6g=";
+    sha256 = "sha256-WYCYRFjjy9nr1p1SqzBGCBZ5vkhFybddXpHUcwdEDIQ=";
   };
 
   patches = [
@@ -43,7 +42,6 @@ stdenv.mkDerivation rec {
     docbook-xsl-nons
     gobject-introspection
     vala
-    help2man
     gtk-doc
     (python3.withPackages (pkgs: with pkgs; [
       setuptools
diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
index f2d4e00d1aad..964a007cc80b 100644
--- a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,10 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, cmake, nasm
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, nasm
 , openjdk
 , enableJava ? false # whether to build the java wrapper
+, enableJpeg7 ? false # whether to build libjpeg with v7 compatibility
+, enableJpeg8 ? false # whether to build libjpeg with v8 compatibility
 , enableStatic ? stdenv.hostPlatform.isStatic
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
+assert !(enableJpeg7 && enableJpeg8);  # pick only one or none, not both
+
 stdenv.mkDerivation rec {
 
   pname = "libjpeg-turbo";
@@ -20,7 +28,7 @@ stdenv.mkDerivation rec {
   # This is needed by freeimage
   patches = [ ./0001-Compile-transupp.c-as-part-of-the-library.patch ]
     ++ lib.optional (stdenv.hostPlatform.libc or null == "msvcrt")
-      ./mingw-boolean.patch;
+    ./mingw-boolean.patch;
 
   outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ];
 
@@ -40,6 +48,14 @@ stdenv.mkDerivation rec {
     "-DENABLE_SHARED=${if enableShared then "1" else "0"}"
   ] ++ lib.optionals enableJava [
     "-DWITH_JAVA=1"
+  ] ++ lib.optionals enableJpeg7 [
+    "-DWITH_JPEG7=1"
+  ] ++ lib.optionals enableJpeg8 [
+    "-DWITH_JPEG8=1"
+  ] ++ lib.optionals stdenv.hostPlatform.isRiscV [
+    # https://github.com/libjpeg-turbo/libjpeg-turbo/issues/428
+    # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/88bf1d16786c74f76f2e4f6ec2873d092f577c75
+    "-DFLOATTEST=fp-contract"
   ];
 
   doInstallCheck = true;
@@ -49,7 +65,7 @@ stdenv.mkDerivation rec {
     homepage = "https://libjpeg-turbo.org/";
     description = "A faster (using SIMD) libjpeg implementation";
     license = licenses.ijg; # and some parts under other BSD-style licenses
-    maintainers = with maintainers; [ vcunat colemickens ];
+    maintainers = with maintainers; [ vcunat colemickens kamadorueda ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libjwt/default.nix b/nixpkgs/pkgs/development/libraries/libjwt/default.nix
index 9c7d624e7f6e..a81b60c425ec 100644
--- a/nixpkgs/pkgs/development/libraries/libjwt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjwt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libjwt";
-  version = "1.12.1";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "benmcollins";
     repo = "libjwt";
     rev = "v${version}";
-    sha256 = "1c69slf9k56gh0xcg6269v712ysm6wckracms4grdsc72xg6x7h2";
+    sha256 = "sha256-hS10Ecq0VVuYLDrBu4x+Y2mz6eeJV1SvnqttgbiQbi0=";
   };
 
   buildInputs = [ jansson openssl ];
diff --git a/nixpkgs/pkgs/development/libraries/liblinphone/default.nix b/nixpkgs/pkgs/development/libraries/liblinphone/default.nix
index 3ef64823a024..8a38aa36c097 100644
--- a/nixpkgs/pkgs/development/libraries/liblinphone/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblinphone/default.nix
@@ -10,7 +10,7 @@
 , cyrus_sasl
 , doxygen
 , fetchFromGitLab
-, ffmpeg_3
+, ffmpeg
 , gdk-pixbuf
 , glib
 , graphviz
@@ -46,7 +46,7 @@
 
 stdenv.mkDerivation rec {
   pname = "liblinphone";
-  version = "4.5.1";
+  version = "4.5.17";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "05ybbxq2yqzy3f3vzq8c3szs3qr0zl64la53icpqnmfakwnps5gs";
+    sha256 = "sha256-ryyT4bG3lnE72ydvCAoiT3IeHY4mZwX9nCqaTRC1wyc=";
   };
 
   # Do not build static libraries
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
     bzrtp
     cairo
     cyrus_sasl
-    ffmpeg_3
+    ffmpeg
     gdk-pixbuf
     glib
     gtk2
diff --git a/nixpkgs/pkgs/development/libraries/libmanette/default.nix b/nixpkgs/pkgs/development/libraries/libmanette/default.nix
index 76dd4eb20c1a..645b521b8172 100644
--- a/nixpkgs/pkgs/development/libraries/libmanette/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmanette/default.nix
@@ -11,7 +11,7 @@
 , glib
 , libgudev
 , libevdev
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -49,8 +49,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix b/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
index 05ae1af2e257..1c15519aaff9 100644
--- a/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmaxminddb";
-  version = "1.5.2";
+  version = "1.6.0";
 
   src = fetchurl {
     url = meta.homepage + "/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-UjcHbSUKX3wpfjMcNaQz7qrw3CBeBw5Ns1PJuhDzQKI=";
+    sha256 = "sha256-diCsGHxZHOIbzXvzUjdqPFapM+aEVYofa+9L1PP5gmc=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libmediaart/default.nix b/nixpkgs/pkgs/development/libraries/libmediaart/default.nix
index 28c8ae6db940..ee1b306c3e51 100644
--- a/nixpkgs/pkgs/development/libraries/libmediaart/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmediaart/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, gdk-pixbuf, gobject-introspection, gnome3, fetchpatch }:
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, gdk-pixbuf, gobject-introspection, gnome, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "libmediaart";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/libmikmod/default.nix b/nixpkgs/pkgs/development/libraries/libmikmod/default.nix
index a734a4b80092..02ccf0c66fb5 100644
--- a/nixpkgs/pkgs/development/libraries/libmikmod/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmikmod/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, texinfo, alsaLib, libpulseaudio, CoreAudio }:
+{ lib, stdenv, fetchurl, texinfo, alsa-lib, libpulseaudio, CoreAudio }:
 
 let
   inherit (lib) optional optionalString;
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   };
 
   buildInputs = [ texinfo ]
-    ++ optional stdenv.isLinux alsaLib
+    ++ optional stdenv.isLinux alsa-lib
     ++ optional stdenv.isDarwin CoreAudio;
   propagatedBuildInputs =
     optional stdenv.isLinux libpulseaudio;
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix b/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
index f95d39a02da8..edadff523f3a 100644
--- a/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libmodulemd";
-  version = "2.12.0";
+  version = "2.12.1";
 
   outputs = [ "bin" "out" "dev" "devdoc" "man" "py" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "fedora-modularity";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1mq9as98q4wyka404f8xwfc44cn5j4bsk0fch5pf07v81sagc1q9";
+    sha256 = "sha256-Relj14uG+dp9r5xWEbw/eAmlUJJ/kRwlPclcWGQxoJg=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libmwaw/default.nix b/nixpkgs/pkgs/development/libraries/libmwaw/default.nix
index 17e20e3d3997..aa42edfeadbf 100644
--- a/nixpkgs/pkgs/development/libraries/libmwaw/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmwaw/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="libmwaw";
-    version="0.3.17";
+    version="0.3.19";
     name="${baseName}-${version}";
-    hash="074ipcq9w7jbd5x316dzclddgia2ydw098ph9d7p3d713pmkf5cf";
-    url="mirror://sourceforge/libmwaw/libmwaw/libmwaw-0.3.17/libmwaw-0.3.17.tar.xz";
-    sha256="074ipcq9w7jbd5x316dzclddgia2ydw098ph9d7p3d713pmkf5cf";
+    hash="sha256-snLiNO78goxLuDRK8PBHpi4HD1MOni+6EbBMjbjtpa8=";
+    url="mirror://sourceforge/libmwaw/libmwaw/libmwaw-0.3.19/libmwaw-0.3.19.tar.xz";
+    sha256="sha256-snLiNO78goxLuDRK8PBHpi4HD1MOni+6EbBMjbjtpa8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libndp/default.nix b/nixpkgs/pkgs/development/libraries/libndp/default.nix
index fc68149c14c3..524f948703f3 100644
--- a/nixpkgs/pkgs/development/libraries/libndp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libndp/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     homepage = "http://libndp.org/";
     description = "Library for Neighbor Discovery Protocol";
     platforms = platforms.linux;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
     license = licenses.lgpl21;
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libnixxml/default.nix b/nixpkgs/pkgs/development/libraries/libnixxml/default.nix
index 40459dbca22a..48edfbfce2c0 100644
--- a/nixpkgs/pkgs/development/libraries/libnixxml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnixxml/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, lib, stdenv, autoreconfHook, pkg-config, libxml2, gd, glib, getopt, libxslt, nix }:
+{ fetchFromGitHub, lib, stdenv, autoreconfHook, pkg-config, libxml2, gd, glib, getopt, libxslt, nix, bash}:
 
 stdenv.mkDerivation {
   pname = "libnixxml";
@@ -11,17 +11,45 @@ stdenv.mkDerivation {
     sha256 = "sha256-HKQnCkO1TDs1e0MDil0Roq4YRembqRHQvb7lK3GAftQ=";
   };
 
-  preConfigure = ''
-    ./bootstrap
+  prePatch = ''
+    # Remove broken test
+    substituteInPlace tests/draw/Makefile.am \
+      --replace "draw-wrong.sh" ""
+    rm tests/draw/draw-wrong.sh
+
+    # Fix bash path
+    substituteInPlace scripts/nixexpr2xml.in \
+      --replace "/bin/bash" "${bash}/bin/bash"
+  '';
+
+  preAutoreconf = ''
+    # Copied from bootstrap script
+    ln -s README.md README
+    mkdir -p config
   '';
 
   configureFlags = [ "--with-gd" "--with-glib" ];
   CFLAGS = "-Wall";
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ libxml2 gd.dev glib getopt libxslt nix ];
+  strictDeps = true;
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    getopt
+    libxslt
+  ];
+  buildInputs = [
+    bash
+    libxml2
+    gd.dev
+    glib
+    nix
+  ];
+  checkInputs = [
+    nix
+  ];
 
-  doCheck = false;
+  doCheck = true;
 
   meta = with lib; {
     description = "XML-based Nix-friendly data integration library";
diff --git a/nixpkgs/pkgs/development/libraries/libnotify/default.nix b/nixpkgs/pkgs/development/libraries/libnotify/default.nix
index 29b371642280..b108a5c5eea5 100644
--- a/nixpkgs/pkgs/development/libraries/libnotify/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnotify/default.nix
@@ -8,7 +8,7 @@
 , glib
 , gdk-pixbuf
 , gobject-introspection
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/libofx/default.nix b/nixpkgs/pkgs/development/libraries/libofx/default.nix
index dc40086ad0a7..2cd480ee0103 100644
--- a/nixpkgs/pkgs/development/libraries/libofx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libofx/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libofx";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "LibOFX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-QIasZKwSD9YCidHCxT/HOThxE5HEQWD0I2/loDP6mlU=";
+    sha256 = "sha256-V9FyOVH9CB6UtTxDvXRyX6mWaXq2Y2K3t9lotjigK0M=";
   };
 
   preConfigure = "./autogen.sh";
diff --git a/nixpkgs/pkgs/development/libraries/libopus/default.nix b/nixpkgs/pkgs/development/libraries/libopus/default.nix
index 51179ecb9a05..8172bd38e107 100644
--- a/nixpkgs/pkgs/development/libraries/libopus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libopus/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation {
     description = "Open, royalty-free, highly versatile audio codec";
     license = lib.licenses.bsd3;
     homepage = "https://www.opus-codec.org/";
-    platforms = platforms.unix;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libosmium/default.nix b/nixpkgs/pkgs/development/libraries/libosmium/default.nix
index c5b801f5d47b..976c39a9ef11 100644
--- a/nixpkgs/pkgs/development/libraries/libosmium/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libosmium/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmium";
-  version = "2.16.0";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "libosmium";
     rev = "v${version}";
-    sha256 = "1na51g6xfm1bx0d0izbg99cwmqn0grp0g41znn93xnhs202qnb2h";
+    sha256 = "sha256-q938WA+vJDqGVutVzWdEP7ujDAmfj3vluliomVd0om0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/libow/default.nix b/nixpkgs/pkgs/development/libraries/libow/default.nix
index e4a8d95f4b0e..5340caeff0a8 100644
--- a/nixpkgs/pkgs/development/libraries/libow/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libow/default.nix
@@ -11,7 +11,28 @@ stdenv.mkDerivation rec {
     sha256 = "0dln1ar7bxwhpi36sccmpwapy7iz4j097rbf02mgn42lw5vrcg3s";
   };
 
-  nativeBuildInputs = [ autoconf automake pkg-config ];
+  nativeBuildInputs = [ autoconf automake libtool pkg-config ];
+
+  preConfigure = ''
+    # Tries to use glibtoolize on Darwin, but it shouldn't for Nix.
+    sed -i -e 's/glibtoolize/libtoolize/g' bootstrap
+    ./bootstrap
+  '';
+
+  configureFlags = [
+    "--disable-owtcl"
+    "--disable-owphp"
+    "--disable-owpython"
+    "--disable-zero"
+    "--disable-owshell"
+    "--disable-owhttpd"
+    "--disable-owftpd"
+    "--disable-owserver"
+    "--disable-owperl"
+    "--disable-owtap"
+    "--disable-owmon"
+    "--disable-owexternal"
+  ];
 
   meta = with lib; {
     description = "1-Wire File System full library";
@@ -20,24 +41,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ disserman ];
     platforms = platforms.unix;
   };
-
-  buildInputs = [ libtool ];
-
-  preConfigure = "./bootstrap";
-
-  configureFlags = [
-      "--disable-owtcl"
-      "--disable-owphp"
-      "--disable-owpython"
-      "--disable-zero"
-      "--disable-owshell"
-      "--disable-owhttpd"
-      "--disable-owftpd"
-      "--disable-owserver"
-      "--disable-owperl"
-      "--disable-owtcl"
-      "--disable-owtap"
-      "--disable-owmon"
-      "--disable-owexternal"
-    ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/libpeas/default.nix b/nixpkgs/pkgs/development/libraries/libpeas/default.nix
index a8ef9e2f9bb2..55c884d215fd 100644
--- a/nixpkgs/pkgs/development/libraries/libpeas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpeas/default.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gettext, gnome3
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gettext, gnome
 , glib, gtk3, gobject-introspection, python3, ncurses
 }:
 
 stdenv.mkDerivation rec {
   pname = "libpeas";
-  version = "1.28.0";
+  version = "1.30.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "05cb7drn6arc4gi02wgsvzibigi2riz5gnfnmlb0zmbfnj9ikna2";
+    sha256 = "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja gettext gobject-introspection ];
@@ -21,8 +21,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libplacebo/default.nix b/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
index 478e01f3575b..a7da64f787a3 100644
--- a/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
@@ -16,14 +16,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libplacebo";
-  version = "3.120.2";
+  version = "3.120.3";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wh5w7bx789ynnzr27xi0csql4jaxq80csawg6znabw3ld54wb86";
+    sha256 = "02hiyhnjdz3zqnzks9bi7my62a85k9k9vfgmh9fy19snsbkd6l80";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libportal/default.nix b/nixpkgs/pkgs/development/libraries/libportal/default.nix
index 5eacdaa8f3c8..97c5303eabe7 100644
--- a/nixpkgs/pkgs/development/libraries/libportal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libportal/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchFromGitHub
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libportal";
-  version = "0.3";
+  version = "0.4";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -20,22 +20,9 @@ stdenv.mkDerivation rec {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1s3g17zbbmq3m5jfs62fl94p4irln9hfhpybj7jb05z0p1939rk3";
+    sha256 = "fuYZWGkdazq6H0rThqpF6KIcvwgc17o+CiISb1LjBso=";
   };
 
-  patches = [
-    # Fix build and .pc file
-    # https://github.com/flatpak/libportal/pull/20
-    (fetchpatch {
-      url = "https://github.com/flatpak/libportal/commit/7828be4ec8f05f8de7b129a1e35b5039d8baaee3.patch";
-      sha256 = "04nadcxx69mbnzljwjrzm88cgapn14x3mghpkhr8b9yrjn7yj86h";
-    })
-    (fetchpatch {
-      url = "https://github.com/flatpak/libportal/commit/bf5de2f6fefec65f701b4ec8712b48b29a33fb71.patch";
-      sha256 = "1v0b09diq49c01j5gg2bpvn5f5gfw1a5nm1l8grc4qg4z9jck1z8";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/nixpkgs/pkgs/development/libraries/libpst/default.nix b/nixpkgs/pkgs/development/libraries/libpst/default.nix
index f27b58a02bb6..f51db1d6c6de 100644
--- a/nixpkgs/pkgs/development/libraries/libpst/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpst/default.nix
@@ -12,11 +12,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libpst-0.6.75";
+  pname = "libpst";
+  version = "0.6.76";
 
   src = fetchurl {
-    url = "http://www.five-ten-sg.com/libpst/packages/${name}.tar.gz";
-    sha256 = "11wrf47i3brlxg25wsfz17373q7m5fpjxn2lr41dj252ignqzaac";
+    url = "http://www.five-ten-sg.com/libpst/packages/${pname}-${version}.tar.gz";
+    sha256 = "0hhbbb8ddsgjhv9y1xd8s9ixlhdnjmhw12v06jwx4j6vpgp1na9x";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libqtav/default.nix b/nixpkgs/pkgs/development/libraries/libqtav/default.nix
index fc577d7e5082..e9a54dc478cd 100644
--- a/nixpkgs/pkgs/development/libraries/libqtav/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqtav/default.nix
@@ -2,7 +2,7 @@
 , qtbase, qtmultimedia, qtquick1, qttools
 , libGL, libX11
 , libass, openal, ffmpeg, libuchardet
-, alsaLib, libpulseaudio, libva
+, alsa-lib, libpulseaudio, libva
 }:
 
 with lib;
@@ -16,7 +16,7 @@ mkDerivation rec {
     qtbase qtmultimedia qtquick1
     libGL libX11
     libass openal ffmpeg libuchardet
-    alsaLib libpulseaudio libva
+    alsa-lib libpulseaudio libva
   ];
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix b/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
index 8ffe8f488b25..8a8f41981aae 100644
--- a/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   patches = [
     (fetchpatch {
       # https://github.com/raspberrypi/userland/pull/670
-      url = "https://github.com/raspberrypi/userland/pull/670/commits/37cb44f314ab1209fe2a0a2449ef78893b1e5f62.patch";
+      url = "https://github.com/raspberrypi/userland/commit/37cb44f314ab1209fe2a0a2449ef78893b1e5f62.patch";
       sha256 = "1fbrbkpc4cc010ji8z4ll63g17n6jl67kdy62m74bhlxn72gg9rw";
     })
   ];
diff --git a/nixpkgs/pkgs/development/libraries/librealsense/default.nix b/nixpkgs/pkgs/development/libraries/librealsense/default.nix
index 6607a4d00fb6..4015ab02a3a8 100644
--- a/nixpkgs/pkgs/development/libraries/librealsense/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librealsense/default.nix
@@ -7,7 +7,7 @@ assert enablePython -> pythonPackages != null;
 
 stdenv.mkDerivation rec {
   pname = "librealsense";
-  version = "2.43.0";
+  version = "2.45.0";
 
   outputs = [ "out" "dev" ];
 
@@ -15,17 +15,18 @@ stdenv.mkDerivation rec {
     owner = "IntelRealSense";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-N7EvpcJjtK3INHK7PgoiEVIMq9zGcHKMeI+/dwZ3bNs=";
+    sha256 = "0aqf48zl7825v7x8c3x5w4d17m4qq377f1mn6xyqzf9b0dnk4i1j";
   };
 
   buildInputs = [
     libusb1
     gcc.cc.lib
   ] ++ lib.optional cudaSupport cudatoolkit
-    ++ lib.optional enablePython pythonPackages.python;
+    ++ lib.optionals enablePython (with pythonPackages; [python pybind11 ]);
 
   patches = lib.optionals enablePython [
     ./py_sitepackage_dir.patch
+    ./py_pybind11_no_external_download.patch
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/librealsense/py_pybind11_no_external_download.patch b/nixpkgs/pkgs/development/libraries/librealsense/py_pybind11_no_external_download.patch
new file mode 100644
index 000000000000..2b48edb62e37
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/librealsense/py_pybind11_no_external_download.patch
@@ -0,0 +1,39 @@
+From 01e51b9c90ba51b2d0ca797dde676812cf3db415 Mon Sep 17 00:00:00 2001
+From: "Robert T. McGibbon" <rmcgibbo@gmail.com>
+Date: Mon, 10 May 2021 17:26:04 -0400
+Subject: [PATCH 1/1] V1
+
+---
+ wrappers/python/CMakeLists.txt | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+diff --git a/wrappers/python/CMakeLists.txt b/wrappers/python/CMakeLists.txt
+index aa83e4c77..4ec92ccfa 100644
+--- a/wrappers/python/CMakeLists.txt
++++ b/wrappers/python/CMakeLists.txt
+@@ -8,21 +8,8 @@ if (NOT BUILD_PYTHON_BINDINGS)
+ endif()
+ 
+ set(DEPENDENCIES realsense2)
+-# In order for the external project clone to occur during cmake configure step(rather than during compilation, as would normally happen),
+-# we copy the external project declaration to the build folder and then execute it
+-configure_file(${CMAKE_SOURCE_DIR}/third-party/pybind11/CMakeLists.txt ${CMAKE_BINARY_DIR}/external-projects/pybind11/CMakeLists.txt)
+-execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/pybind11"
+-)
+-execute_process(COMMAND "${CMAKE_COMMAND}" --build .
+-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/pybind11"
+-)
+ 
+-# Add pybind11 makefile
+-add_subdirectory("${CMAKE_BINARY_DIR}/third-party/pybind11"
+-                 "${CMAKE_BINARY_DIR}/third-party/pybind11"
+-                 EXCLUDE_FROM_ALL
+-)
++find_package(pybind11 REQUIRED)
+ 
+ set(PYBIND11_CPP_STANDARD -std=c++11)
+ # Force Pybind11 not to share pyrealsense2 resources with other pybind modules.
+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/development/libraries/librest/default.nix b/nixpkgs/pkgs/development/libraries/librest/default.nix
index 7b1ff8235aac..0c885f0764b5 100644
--- a/nixpkgs/pkgs/development/libraries/librest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librest/default.nix
@@ -1,4 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, libsoup, gobject-introspection, gnome3 }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, glib
+, libsoup
+, gobject-introspection
+, gnome
+}:
 
 stdenv.mkDerivation rec {
   pname = "rest";
@@ -9,23 +17,34 @@ stdenv.mkDerivation rec {
     sha256 = "0513aad38e5d3cedd4ae3c551634e3be1b9baaa79775e53b2dba9456f15b01c9";
   };
 
-  nativeBuildInputs = [ pkg-config gobject-introspection ];
-  buildInputs = [ glib libsoup ];
+  nativeBuildInputs = [
+    pkg-config
+    gobject-introspection
+  ];
 
-  configureFlags = [ "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" ];
+  buildInputs = [
+    glib
+    libsoup
+  ];
+
+  configureFlags = [
+    # Remove when https://gitlab.gnome.org/GNOME/librest/merge_requests/2 is merged.
+    "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt"
+  ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "librest";
+      versionPolicy = "odd-unstable";
     };
   };
 
   meta = with lib; {
     description = "Helper library for RESTful services";
     homepage = "https://wiki.gnome.org/Projects/Librest";
-    license = licenses.lgpl21;
-    platforms = platforms.linux;
+    license = licenses.lgpl21Only;
+    platforms = platforms.unix;
     maintainers = teams.gnome.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/librime/default.nix b/nixpkgs/pkgs/development/libraries/librime/default.nix
index e430a447336b..eb9c514d59d2 100644
--- a/nixpkgs/pkgs/development/libraries/librime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librime/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchFromGitHub, cmake, boost, glog, leveldb, marisa, opencc,
-  libyamlcpp, gtest }:
+  libyamlcpp, gtest, capnproto, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "librime";
-  version = "1.5.3";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "rime";
-    repo = "librime";
+    repo = pname;
     rev = version;
-    sha256 = "0xskhdhk7dgpc71r39pfzxi5vrlzy90aqj1gzv8nnapq91p2awhv";
+    sha256 = "023c7bpfnyf8wlrssn89ziwsjccflyanrxlaqmwcbx8a5dvipk01";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gtest ];
+  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gtest capnproto ];
 
   meta = with lib; {
     homepage    = "https://rime.im/";
diff --git a/nixpkgs/pkgs/development/libraries/librsvg/default.nix b/nixpkgs/pkgs/development/libraries/librsvg/default.nix
index efdbf5934630..02cd9accbaf0 100644
--- a/nixpkgs/pkgs/development/libraries/librsvg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librsvg/default.nix
@@ -1,47 +1,79 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, gdk-pixbuf, pango, cairo, libxml2
-, bzip2, libintl, darwin, rustc, cargo, gnome3
-, vala, gobject-introspection }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, glib
+, gdk-pixbuf
+, pango
+, cairo
+, libxml2
+, bzip2
+, libintl
+, ApplicationServices
+, Foundation
+, libobjc
+, rustc
+, cargo
+, gnome
+, vala
+, gobject-introspection
+, nixosTests
+}:
 
-let
-  pname = "librsvg";
-  version = "2.50.1";
-in
 stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "02csvx2nzygh8kyal2qiy3y6xb7d52vszxxr37dzav704a9pkncv";
-  };
+  pname = "librsvg";
+  version = "2.50.5";
 
   outputs = [ "out" "dev" "installedTests" ];
 
-  buildInputs = [ libxml2 bzip2 pango libintl ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.libobjc ];
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0wlj5g1jgp93sj3rr6qspj282whz13ahnv8ca99d7zilq9s1aw1j";
+  };
 
-  NIX_LDFLAGS = if stdenv.isDarwin then "-lobjc" else null;
+  nativeBuildInputs = [
+    pkg-config
+    rustc
+    cargo
+    vala
+    gobject-introspection
+  ] ++ lib.optionals stdenv.isDarwin [
+    ApplicationServices
+    Foundation
+  ];
 
-  propagatedBuildInputs = [ glib gdk-pixbuf cairo ];
+  buildInputs = [
+    libxml2
+    bzip2
+    pango
+    libintl
+  ] ++ lib.optionals stdenv.isDarwin [
+    libobjc
+  ];
 
-  nativeBuildInputs = [ pkg-config rustc cargo vala gobject-introspection ]
-    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
-      ApplicationServices
-    ]);
+  propagatedBuildInputs = [
+    glib
+    gdk-pixbuf
+    cairo
+  ];
 
   configureFlags = [
     "--enable-introspection"
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    # Vapi does not build on MacOS.
+    # https://github.com/NixOS/nixpkgs/pull/117081#issuecomment-827782004
     "--enable-vala"
+  ] ++ [
     "--enable-installed-tests"
     "--enable-always-build-tests"
   ] ++ lib.optional stdenv.isDarwin "--disable-Bsymbolic";
 
   makeFlags = [
-    "installed_test_metadir=$(installedTests)/share/installed-tests/RSVG"
-    "installed_testdir=$(installedTests)/libexec/installed-tests/RSVG"
+    "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/RSVG"
+    "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/RSVG"
   ];
 
-  NIX_CFLAGS_COMPILE
-    = lib.optionalString stdenv.isDarwin "-I${cairo.dev}/include/cairo";
+  doCheck = false; # all tests fail on libtool-generated rsvg-convert not being able to find coreutils
 
   # It wants to add loaders and update the loaders.cache in gdk-pixbuf
   # Patching the Makefiles to it creates rsvg specific loaders and the
@@ -63,8 +95,6 @@ stdenv.mkDerivation rec {
         -i gdk-pixbuf-loader/librsvg.thumbnailer.in
   '';
 
-  doCheck = false; # fails 20 of 145 tests, very likely to be buggy
-
   # Merge gdkpixbuf and librsvg loaders
   postInstall = ''
     mv $GDK_PIXBUF/loaders.cache $GDK_PIXBUF/loaders.cache.tmp
@@ -73,8 +103,13 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
+    };
+
+    tests = {
+      installedTests = nixosTests.installed-tests.librsvg;
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/librttopo/default.nix b/nixpkgs/pkgs/development/libraries/librttopo/default.nix
new file mode 100644
index 000000000000..d349278d5f5d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/librttopo/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitea
+, autoreconfHook
+, geos
+}:
+
+stdenv.mkDerivation rec {
+  pname = "librttopo";
+  version = "1.1.0";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitea {
+    domain = "git.osgeo.org/gitea";
+    owner = "rttopo";
+    repo = "librttopo";
+    rev = "librttopo-${version}";
+    sha256 = "0h7lzlkn9g4xky6h81ndy0aa6dxz8wb6rnl8v3987jy1i6pr072p";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ geos ];
+
+  meta = with lib; {
+    description = "RT Topology Library";
+    homepage = "https://git.osgeo.org/gitea/rttopo/librttopo";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libsecret/default.nix b/nixpkgs/pkgs/development/libraries/libsecret/default.nix
index 6c28b7d16c16..18f00a0933c3 100644
--- a/nixpkgs/pkgs/development/libraries/libsecret/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsecret/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, fetchpatch, glib, pkg-config, gettext, libxslt, python3
 , docbook_xsl, docbook_xml_dtd_42 , libgcrypt, gobject-introspection, vala
-, gtk-doc, gnome3, gjs, libintl, dbus, xvfb_run }:
+, gtk-doc, gnome, gjs, libintl, dbus, xvfb-run }:
 
 stdenv.mkDerivation rec {
   pname = "libsecret";
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   installCheckInputs = [
-    python3 python3.pkgs.dbus-python python3.pkgs.pygobject3 xvfb_run dbus gjs
+    python3 python3.pkgs.dbus-python python3.pkgs.pygobject3 xvfb-run dbus gjs
   ];
 
   # needs to run after install because typelibs point to absolute paths
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       # Does not seem to use the odd-unstable policy: https://gitlab.gnome.org/GNOME/libsecret/issues/30
       versionPolicy = "none";
diff --git a/nixpkgs/pkgs/development/libraries/libsigcxx/3.0.nix b/nixpkgs/pkgs/development/libraries/libsigcxx/3.0.nix
new file mode 100644
index 000000000000..edb74c807bfa
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libsigcxx/3.0.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, lib
+, fetchurl
+, pkg-config
+, meson
+, ninja
+, gnome
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libsigc++";
+  version = "3.0.6";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "tw7c9GEWUcVKQm4QmxcZbh+hfaCQWSpQAOLRNMA6xc4=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+  ];
+
+  doCheck = true;
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "libsigcxx30";
+      versionPolicy = "odd-unstable";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://libsigcplusplus.github.io/libsigcplusplus/";
+    description = "A typesafe callback system for standard C++";
+    license = licenses.lgpl21Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix b/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix
index c933d92f3255..cbc2c8a617b4 100644
--- a/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsigcxx/default.nix
@@ -1,22 +1,23 @@
-{ lib, stdenv, fetchurl, pkg-config, gnum4, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "libsigc++";
-  version = "2.10.1";
+  version = "2.10.6";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "00v08km4wwzbh6vjxb21388wb9dm6g2xh14rgwabnv4c2wk5z8n9";
+    sha256 = "sha256-3aF23EaBvanVoqwbxVJzvdOBZit6bUnpGCZ9E+h3Ths=";
   };
 
-  nativeBuildInputs = [ pkg-config gnum4 ];
+  nativeBuildInputs = [ pkg-config meson ninja ];
 
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "libsigcxx";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix b/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix
index ae7a6775de55..f20f80c28429 100644
--- a/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     description = "A library for managing single signon credentials which can be used from GLib applications";
     homepage = "https://gitlab.com/accounts-sso/libsignon-glib";
     license = licenses.lgpl21;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libslirp/default.nix b/nixpkgs/pkgs/development/libraries/libslirp/default.nix
index 8bd74d292430..5da6cf6bbbcb 100644
--- a/nixpkgs/pkgs/development/libraries/libslirp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libslirp/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitLab
 , meson
 , ninja
@@ -8,14 +9,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libslirp";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "slirp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0abh337jvij664w65zszjql42n720zzfap0ab0amr4qcvkzw7bjx";
+    sha256 = "sha256-UdKBED7xR0gDf3aj3+6I62CnAwGP7XxskaFzWeUUkkk=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libsolv/default.nix b/nixpkgs/pkgs/development/libraries/libsolv/default.nix
index 089fbe4b3512..c7dede355df6 100644
--- a/nixpkgs/pkgs/development/libraries/libsolv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsolv/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, cmake, ninja, zlib, expat, rpm, db }:
 
 stdenv.mkDerivation rec {
-  version  = "0.7.17";
+  version  = "0.7.19";
   pname = "libsolv";
 
   src = fetchFromGitHub {
     owner  = "openSUSE";
     repo   = "libsolv";
     rev    = version;
-    sha256 = "sha256-LPOS+yDwNpyO9tkFoIy4SCQymytOGB26Pfyd/EFEYnc=";
+    sha256 = "sha256-AN4cgpMBqTtK04CU89Yqd1ZfWyPrCociPd3XKdVONMU=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/libsoundio/default.nix b/nixpkgs/pkgs/development/libraries/libsoundio/default.nix
index ac9f3b256546..2ef629e5467b 100644
--- a/nixpkgs/pkgs/development/libraries/libsoundio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsoundio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, alsaLib, libjack2, libpulseaudio, AudioUnit }:
+{ lib, stdenv, fetchFromGitHub, cmake, alsa-lib, libjack2, libpulseaudio, AudioUnit }:
 
 stdenv.mkDerivation rec {
   version = "2.0.0";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ libjack2 libpulseaudio ]
-    ++ lib.optional stdenv.isLinux alsaLib
+    ++ lib.optional stdenv.isLinux alsa-lib
     ++ lib.optional stdenv.isDarwin AudioUnit;
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-strict-prototypes";
diff --git a/nixpkgs/pkgs/development/libraries/libsoup/default.nix b/nixpkgs/pkgs/development/libraries/libsoup/default.nix
index 47fcdd41f8ab..960591d1a22d 100644
--- a/nixpkgs/pkgs/development/libraries/libsoup/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsoup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, glib, libxml2, meson, ninja, pkg-config, gnome3, libsysprof-capture
+{ stdenv, lib, fetchurl, fetchpatch, glib, libxml2, meson, ninja, pkg-config, gnome, libsysprof-capture
 , gnomeSupport ? true, sqlite, glib-networking, gobject-introspection, vala
 , libpsl, python3, brotli
 }:
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     sha256 = "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p";
   };
 
+  patches = [
+    (fetchpatch {
+      # https://gitlab.gnome.org/GNOME/libsoup/-/issues/222
+      url = "https://gitlab.gnome.org/GNOME/libsoup/commit/b5e4f15a09d197b6a9b4b2d78b33779f27d828af.patch";
+      sha256 = "1hqk8lqzc200hi0nwbwq9qm6f03z296cnd79d4ql30683s80xqws";
+    })
+  ];
+
   postPatch = ''
     patchShebangs libsoup/
   '';
@@ -46,8 +54,9 @@ stdenv.mkDerivation rec {
 
   passthru = {
     propagatedUserEnvPackages = [ glib-networking.out ];
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libspatialite/default.nix b/nixpkgs/pkgs/development/libraries/libspatialite/default.nix
index 2e9dadf0bf5d..592b7101a074 100644
--- a/nixpkgs/pkgs/development/libraries/libspatialite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libspatialite/default.nix
@@ -1,34 +1,54 @@
-{ stdenv, lib, fetchurl, pkg-config, libxml2, sqlite, zlib, proj, geos, libiconv }:
-
-with lib;
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, geos
+, librttopo
+, libxml2
+, minizip
+, proj
+, sqlite
+, libiconv
+}:
 
 stdenv.mkDerivation rec {
-  name = "libspatialite-4.3.0a";
+  pname = "libspatialite";
+  version = "5.0.1";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/${name}.tar.gz";
-    sha256 = "16d4lpl7xrm9zy4gphy6nwanpjp8wn9g4wq2i2kh8abnlhq01448";
+    url = "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/${pname}-${version}.tar.gz";
+    sha256 = "sha256-7svJQxHHgBLQWevA+uhupe9u7LEzA+boKzdTwbNAnpg=";
   };
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ libxml2 sqlite zlib proj geos libiconv ];
+  buildInputs = [
+    geos
+    librttopo
+    libxml2
+    minizip
+    proj
+    sqlite
+  ] ++ lib.optionals stdenv.isDarwin [
+    libiconv
+  ];
 
   configureFlags = [ "--disable-freexl" ];
 
   enableParallelBuilding = true;
 
-  CFLAGS = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1";
-
-  postInstall = "" + optionalString stdenv.isDarwin ''
+  postInstall = lib.optionalString stdenv.isDarwin ''
     ln -s $out/lib/mod_spatialite.{so,dylib}
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Extensible spatial index library in C++";
     homepage = "https://www.gaia-gis.it/fossil/libspatialite";
     # They allow any of these
     license = with licenses; [ gpl2Plus lgpl21Plus mpl11 ];
     platforms = platforms.unix;
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libspnav/configure-socket-path.patch b/nixpkgs/pkgs/development/libraries/libspnav/configure-socket-path.patch
new file mode 100644
index 000000000000..9a8ef0d49811
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libspnav/configure-socket-path.patch
@@ -0,0 +1,47 @@
+diff --git a/spnav.c b/spnav.c
+index f9e10f8..27149f7 100644
+--- a/spnav.c
++++ b/spnav.c
+@@ -36,7 +36,7 @@ OF SUCH DAMAGE.
+ #include <sys/select.h>
+ #include "spnav.h"
+ 
+-#define SPNAV_SOCK_PATH "/var/run/spnav.sock"
++#define DEFAULT_SPNAV_SOCK_PATH "/run/spnav.sock"
+ 
+ #ifdef USE_X11
+ #include <X11/Xlib.h>
+@@ -70,6 +70,24 @@ static struct event_node *ev_queue, *ev_queue_tail;
+ /* AF_UNIX socket used for alternative communication with daemon */
+ static int sock = -1;
+ 
++static char *spath = NULL;
++
++static char *socket_path()
++{
++	char *xdg_runtime_dir;
++	if((xdg_runtime_dir = getenv("XDG_RUNTIME_DIR"))) {
++		if ( spath == NULL ) {
++			spath = malloc(strlen(xdg_runtime_dir) + strlen("/spnav.sock") + 1);
++			if ( spath != NULL ) {
++				sprintf(spath, "%s/spnav.sock", xdg_runtime_dir);
++			}
++		}
++		if(access(spath, F_OK) != -1){
++			return spath;
++		}
++	}
++	return DEFAULT_SPNAV_SOCK_PATH;
++}
+ 
+ int spnav_open(void)
+ {
+@@ -92,7 +110,7 @@ int spnav_open(void)
+ 
+ 	memset(&addr, 0, sizeof addr);
+ 	addr.sun_family = AF_UNIX;
+-	strncpy(addr.sun_path, SPNAV_SOCK_PATH, sizeof(addr.sun_path));
++	strncpy(addr.sun_path, socket_path(), sizeof(addr.sun_path));
+ 
+ 
+ 	if(connect(s, (struct sockaddr*)&addr, sizeof addr) == -1) {
diff --git a/nixpkgs/pkgs/development/libraries/libspnav/default.nix b/nixpkgs/pkgs/development/libraries/libspnav/default.nix
index fb2a2744d6ad..99f2a64d7b12 100644
--- a/nixpkgs/pkgs/development/libraries/libspnav/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libspnav/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, libX11}:
+{ stdenv, lib, fetchFromGitHub, libX11, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   version = "0.2.3";
@@ -11,9 +11,17 @@ stdenv.mkDerivation rec {
     sha256 = "098h1jhlj87axpza5zgy58prp0zn94wyrbch6x0s7q4mzh7dc8ba";
   };
 
+  nativeBuildInputs = lib.optional stdenv.isDarwin fixDarwinDylibNames;
   buildInputs = [ libX11 ];
 
+  patches = [
+    # Changes the socket path from /run/spnav.sock to $XDG_RUNTIME_DIR/spnav.sock
+    # to allow for a user service
+    ./configure-socket-path.patch
+  ];
+
   configureFlags = [ "--disable-debug"];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   preInstall = ''
     mkdir -p $out/{lib,include}
diff --git a/nixpkgs/pkgs/development/libraries/libspotify/default.nix b/nixpkgs/pkgs/development/libraries/libspotify/default.nix
index 004460abe312..d9be4a2964f4 100644
--- a/nixpkgs/pkgs/development/libraries/libspotify/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libspotify/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libspotify, alsaLib, readline, pkg-config, apiKey ? null, unzip, gnused }:
+{ lib, stdenv, fetchurl, libspotify, alsa-lib, readline, pkg-config, apiKey ? null, unzip, gnused }:
 
 let
   version = "12.1.51";
@@ -67,7 +67,7 @@ else stdenv.mkDerivation {
         src = libspotify.src;
   nativeBuildInputs = [ pkg-config ];
         buildInputs = [ libspotify readline ]
-          ++ lib.optional (!stdenv.isDarwin) alsaLib;
+          ++ lib.optional (!stdenv.isDarwin) alsa-lib;
         postUnpack = "sourceRoot=$sourceRoot/share/doc/libspotify/examples";
         patchPhase = "cp ${apiKey} appkey.c";
         installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/libsvm/default.nix b/nixpkgs/pkgs/development/libraries/libsvm/default.nix
index 6f4741ed4d05..fbc9bc4d3314 100644
--- a/nixpkgs/pkgs/development/libraries/libsvm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsvm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libsvm";
-  version = "3.24";
+  version = "3.25";
 
   src = fetchurl {
     url = "https://www.csie.ntu.edu.tw/~cjlin/libsvm/libsvm-${version}.tar.gz";
-    sha256 = "15l69y23fxslrap415dvqb383x5fxvbffp9giszjfqjf38h1m26m";
+    sha256 = "sha256-UjUOiqdAsXbh13Pp3AjxNAIYw34BvsN6uQ2wEn5LteU=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/libtgvoip/default.nix b/nixpkgs/pkgs/development/libraries/libtgvoip/default.nix
index 920315bb1bc2..dcf8990a879e 100644
--- a/nixpkgs/pkgs/development/libraries/libtgvoip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtgvoip/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, pkg-config, autoreconfHook
-, openssl, libopus, alsaLib, libpulseaudio
+, openssl, libopus, alsa-lib, libpulseaudio
 }:
 
 with lib;
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ openssl libopus alsaLib libpulseaudio ];
+  buildInputs = [ openssl libopus alsa-lib libpulseaudio ];
   enableParallelBuilding = true;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/libthreadar/default.nix b/nixpkgs/pkgs/development/libraries/libthreadar/default.nix
index c67be246928c..953800cdd576 100644
--- a/nixpkgs/pkgs/development/libraries/libthreadar/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libthreadar/default.nix
@@ -3,12 +3,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "1.3.1";
+  version = "1.3.2";
   pname = "libthreadar";
 
   src = fetchurl {
     url = "mirror://sourceforge/libthreadar/${pname}-${version}.tar.gz";
-    sha256 = "0x1kkccy81rcqbhlw88sw7lykp7398vmrvp6f9yy42k9bl4yxn2q";
+    sha256 = "sha256-q5FiBlncbhdXDgRm7wgxcd4rkxqje/1ls9kPGqmomP0=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix b/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix
index 7ed8fca3babd..936c92bf7c5d 100644
--- a/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, libtool }:
+{ lib, stdenv, fetchurl, fetchpatch, libtool, libtommath }:
 
 stdenv.mkDerivation rec {
   pname = "libtomcrypt";
@@ -17,14 +17,16 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ libtool ];
+  nativeBuildInputs = [ libtool libtommath ];
 
   postPatch = ''
     substituteInPlace makefile.shared --replace "LT:=glibtool" "LT:=libtool"
   '';
 
   preBuild = ''
-    makeFlagsArray=(PREFIX=$out \
+    makeFlagsArray+=(PREFIX=$out \
+      CFLAGS="-DUSE_LTM -DLTM_DESC -DLTC_PTHREAD" \
+      EXTRALIBS=\"-ltommath\" \
       INSTALL_GROUP=$(id -g) \
       INSTALL_USER=$(id -u))
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libubox/default.nix b/nixpkgs/pkgs/development/libraries/libubox/default.nix
index f8dfa80a9597..9261d1b81bac 100644
--- a/nixpkgs/pkgs/development/libraries/libubox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libubox/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "libubox";
-  version = "unstable-2020-01-20";
+  version = "unstable-2021-03-09";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/libubox.git";
-    rev = "43a103ff17ee5872669f8712606578c90c14591d";
-    sha256 = "0cihgckghamcfxrvqjjn69giib80xhsqaj98ldn0gd96zqh96sd4";
+    rev = "551d75b5662cccd0466b990d58136bdf799a804d";
+    sha256 = "05cnjjqjv9nvrs1d8pg4xxxf27jryiv6xk8plmdpmm7r2wkvwn3r";
   };
 
   cmakeFlags = [ "-DBUILD_LUA=OFF" "-DBUILD_EXAMPLES=OFF" ];
diff --git a/nixpkgs/pkgs/development/libraries/libunique/default.nix b/nixpkgs/pkgs/development/libraries/libunique/default.nix
index 27db05ee98ab..82f71f59070c 100644
--- a/nixpkgs/pkgs/development/libraries/libunique/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libunique/default.nix
@@ -9,6 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75";
   };
 
+  # Don't make deprecated usages hard errors
+  prePatch = ''
+    substituteInPlace configure --replace "-Werror" "";
+  '';
+
   # glib-2.62 deprecations
   NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
 
@@ -23,9 +28,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ glib gtk2 dbus-glib ];
 
-  # Don't make deprecated usages hard errors
-  preBuild = ''substituteInPlace unique/dbus/Makefile --replace -Werror ""'';
-
   doCheck = true;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/libunity/default.nix b/nixpkgs/pkgs/development/libraries/libunity/default.nix
index f6fb9a13e4cd..c27fce32ec00 100644
--- a/nixpkgs/pkgs/development/libraries/libunity/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libunity/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchgit
 , pkg-config
 , glib
@@ -14,16 +15,24 @@
 
 stdenv.mkDerivation {
   pname = "libunity";
-  version = "unstable-2019-03-19";
+  version = "unstable-2021-02-01";
 
   outputs = [ "out" "dev" "py" ];
 
+  # Obtained from https://git.launchpad.net/ubuntu/+source/libunity/log/
   src = fetchgit {
     url = "https://git.launchpad.net/ubuntu/+source/libunity";
-    rev = "import/7.1.4+19.04.20190319-0ubuntu1";
-    sha256 = "15b49v88v74q20a5c0lq867qnlz7fx20xifl6j8ha359r0zkfwzj";
+    rev = "import/7.1.4+19.04.20190319-5";
+    sha256 = "LHUs6kl1srS6Xektx+jmm4SXLR47VuQ9IhYbBxf2Wc8=";
   };
 
+  patches = [
+    # Fix builf with latest Vala
+    # https://code.launchpad.net/~jtojnar/libunity/libunity
+    # Did not send upstream because Ubuntu is stuck on Vala 0.48.
+    ./fix-vala.patch
+  ];
+
   nativeBuildInputs = [
     autoreconfHook
     gobject-introspection
@@ -43,11 +52,6 @@ stdenv.mkDerivation {
     libdbusmenu
   ];
 
-  patches = [
-    # See: https://gitlab.gnome.org/GNOME/vala/issues/766
-    ./fix-vala.patch
-  ];
-
   preConfigure = ''
     intltoolize
   '';
@@ -61,6 +65,6 @@ stdenv.mkDerivation {
     homepage = "https://launchpad.net/libunity";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libunity/fix-vala.patch b/nixpkgs/pkgs/development/libraries/libunity/fix-vala.patch
index ec34229b4443..555c2ad7bcb0 100644
--- a/nixpkgs/pkgs/development/libraries/libunity/fix-vala.patch
+++ b/nixpkgs/pkgs/development/libraries/libunity/fix-vala.patch
@@ -1,36 +1,12 @@
-diff -ru old/libunity/src/unity-aggregator-scope.vala libunity/src/unity-aggregator-scope.vala
---- old/libunity/src/unity-aggregator-scope.vala	1969-12-31 19:00:01.000000000 -0500
-+++ libunity/src/unity-aggregator-scope.vala	2019-09-21 17:06:12.663864891 -0400
-@@ -51,7 +51,7 @@
-    */
-   public abstract int category_index_for_scope_id (string scope_id);
+--- a/protocol/protocol-icon.vala	2013-08-27 12:53:57 +0000
++++ b/protocol/protocol-icon.vala	2021-04-13 22:34:41 +0000
+@@ -185,7 +185,7 @@
+   }
  
--  public AggregatorScope (string dbus_path_, string id_, MergeMode merge_mode = AggregatorScope.MergeMode.OWNER_SCOPE, bool proxy_filter_hints = false)
-+  protected AggregatorScope (string dbus_path_, string id_, MergeMode merge_mode = AggregatorScope.MergeMode.OWNER_SCOPE, bool proxy_filter_hints = false)
-   {
-     Object (dbus_path: dbus_path_, id: id_, is_master: true,
-             merge_mode: merge_mode, proxy_filter_hints: proxy_filter_hints);
-diff -ru old/libunity/src/unity-deprecated-scope.vala libunity/src/unity-deprecated-scope.vala
---- old/libunity/src/unity-deprecated-scope.vala	1969-12-31 19:00:01.000000000 -0500
-+++ libunity/src/unity-deprecated-scope.vala	2019-09-21 17:06:39.721627805 -0400
-@@ -61,7 +61,7 @@
-   internal CategorySet _categories;
-   internal FilterSet _filters;
-    
--  public DeprecatedScopeBase (string dbus_path_, string id_)
-+  protected DeprecatedScopeBase (string dbus_path_, string id_)
+   /* Added to GIcon interface in 2.37 */
+-  private Variant serialize ()
++  private Variant? serialize ()
    {
-     Object (dbus_path: dbus_path_, id: id_);
-   }
-diff -ru old/libunity/tools/preview-renderer.vala libunity/tools/preview-renderer.vala
---- old/libunity/tools/preview-renderer.vala	1969-12-31 19:00:01.000000000 -0500
-+++ libunity/tools/preview-renderer.vala	2019-09-21 17:09:16.201522110 -0400
-@@ -63,7 +63,7 @@
-      */
-     public abstract class GridRenderer: PreviewRenderer
-     {
--        public GridRenderer()
-+        protected GridRenderer()
-         {
-             Object();
-         }
+     Variant? ret = null;
+     return ret;
+
diff --git a/nixpkgs/pkgs/development/libraries/libunwind/default.nix b/nixpkgs/pkgs/development/libraries/libunwind/default.nix
index b2b5db2309c1..bda7f72a5576 100644
--- a/nixpkgs/pkgs/development/libraries/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libunwind/default.nix
@@ -38,8 +38,7 @@ stdenv.mkDerivation rec {
     description = "A portable and efficient API to determine the call-chain of a program";
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
+    badPlatforms = [ "riscv32-linux" "riscv64-linux" ];
     license = licenses.mit;
   };
-
-  passthru.supportsHost = !stdenv.hostPlatform.isRiscV;
 }
diff --git a/nixpkgs/pkgs/development/libraries/libvdpau-va-gl/default.nix b/nixpkgs/pkgs/development/libraries/libvdpau-va-gl/default.nix
index 85ebef12fe1f..7a042a172c82 100644
--- a/nixpkgs/pkgs/development/libraries/libvdpau-va-gl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvdpau-va-gl/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, libX11, libpthreadstubs, libXau, libXdmcp
-, libXext, libvdpau, glib, libva, ffmpeg_3, libGLU }:
+, libXext, libvdpau, glib, libva, libGLU }:
 
 stdenv.mkDerivation rec {
   pname = "libvdpau-va-gl";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libX11 libpthreadstubs libXau libXdmcp libXext libvdpau glib libva ffmpeg_3 libGLU ];
+  buildInputs = [ libX11 libpthreadstubs libXau libXdmcp libXext libvdpau glib libva libGLU ];
 
   doCheck = false; # fails. needs DRI access
 
diff --git a/nixpkgs/pkgs/development/libraries/libvirt-glib/default.nix b/nixpkgs/pkgs/development/libraries/libvirt-glib/default.nix
index a61094d17fe8..5e1c0c671d90 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt-glib/default.nix
@@ -1,21 +1,47 @@
-{ lib, stdenv, fetchurl, pkg-config, gobject-introspection, intltool, vala
-, libcap_ng, libvirt, libxml2
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, gobject-introspection
+, gettext
+, gtk-doc
+, docbook-xsl-nons
+, vala
+, libcap_ng
+, libvirt
+, libxml2
 }:
 
 stdenv.mkDerivation rec {
-  name = "libvirt-glib-3.0.0";
+  name = "libvirt-glib-4.0.0";
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "https://libvirt.org/sources/glib/${name}.tar.gz";
-    sha256 = "1zpbv4ninc57c9rw4zmmkvvqn7154iv1qfr20kyxn8xplalqrzvz";
+    url = "https://libvirt.org/sources/glib/${name}.tar.xz";
+    sha256 = "hCP3Bp2qR2MHMh0cEeLswoU0DNMsqfwFIHdihD7erL0=";
   };
 
-  nativeBuildInputs = [ pkg-config intltool vala gobject-introspection ];
-  buildInputs = [ libcap_ng libvirt libxml2 gobject-introspection ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    gtk-doc
+    docbook-xsl-nons
+    vala
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    libcap_ng
+    libvirt
+    libxml2
+    gobject-introspection
+  ];
 
-  enableParallelBuilding = true;
   strictDeps = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/default.nix b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
index ea4b40c3c891..28b67a801989 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
@@ -9,6 +9,7 @@
 , enableXen ? false, xen ? null
 , enableIscsi ? false, openiscsi
 , enableCeph ? false, ceph
+, enableGlusterfs ? false, glusterfs
 }:
 
 with lib;
@@ -72,6 +73,8 @@ in stdenv.mkDerivation rec {
     openiscsi
   ] ++ optionals enableCeph [
     ceph
+  ] ++ optionals enableGlusterfs [
+    glusterfs
   ] ++ optionals stdenv.isDarwin [
     libiconv gmp
   ];
@@ -119,6 +122,7 @@ in stdenv.mkDerivation rec {
     "-Dsecdriver_apparmor=enabled"
     "-Dnumad=enabled"
     "-Dstorage_disk=enabled"
+    (opt "glusterfs" enableGlusterfs)
     (opt "storage_rbd" enableCeph)
   ] ++ optionals stdenv.isDarwin [
     "-Dinit_script=none"
diff --git a/nixpkgs/pkgs/development/libraries/libvncserver/default.nix b/nixpkgs/pkgs/development/libraries/libvncserver/default.nix
index 7c8d4a76fc95..01a079a20512 100644
--- a/nixpkgs/pkgs/development/libraries/libvncserver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvncserver/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchzip, fetchpatch, cmake
 , libjpeg, openssl, zlib, libgcrypt, libpng
-, systemd
+, systemd, Carbon
 }:
 
 let
@@ -19,10 +19,11 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [
-    libjpeg openssl libgcrypt libpng
-  ] ++ lib.optional stdenv.isLinux systemd;
+  buildInputs = [ libjpeg openssl libgcrypt libpng ]
+    ++ lib.optional stdenv.isLinux systemd
+    ++ lib.optional stdenv.isDarwin Carbon;
   propagatedBuildInputs = [ zlib ];
+
   meta = {
     inherit (s) version;
     description = "VNC server library";
diff --git a/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix b/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix
index 3792b826f594..425a1bab3550 100644
--- a/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/libwnck/3.x.nix
@@ -16,7 +16,7 @@
 , libstartup_notification
 , gettext
 , gobject-introspection
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -60,9 +60,10 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "${pname}${lib.versions.major version}";
+      versionPolicy = "odd-unstable";
     };
   };
 
@@ -70,6 +71,6 @@ stdenv.mkDerivation rec {
     description = "Library to manage X windows and workspaces (via pagers, tasklists, etc.)";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.worldofpeace ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libwpe/default.nix b/nixpkgs/pkgs/development/libraries/libwpe/default.nix
index 4397f65ac4b6..9e7886eb68d1 100644
--- a/nixpkgs/pkgs/development/libraries/libwpe/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwpe/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libwpe";
-  version = "1.8.0";
+  version = "1.10.0";
 
   src = fetchurl {
     url = "https://wpewebkit.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-pvAKfQkcvU21f+fuO0wSxjUJIdZU7XmBKACibIiEgdI=";
+    sha256 = "sha256-JBXicNReNZXtQFK8EF9zN0TcLTZ34S/0qDHlAphBCE0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libxc/default.nix b/nixpkgs/pkgs/development/libraries/libxc/default.nix
index d4f6391fe6f4..48c5a4f9b475 100644
--- a/nixpkgs/pkgs/development/libraries/libxc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxc/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitLab, cmake, gfortran, perl }:
 
 let
-  version = "5.1.3";
+  version = "5.1.4";
 
 in stdenv.mkDerivation {
   pname = "libxc";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     owner = "libxc";
     repo = "libxc";
     rev = version;
-    sha256 = "14czspifznsmvvix5hcm1rk18iy590qk8p5m00p0y032gmn9i2zj";
+    sha256 = "0rs6v72zz3jr22r29zxxdk8wdsfv6wid6cx2661974z09dbvbr1f";
   };
 
   buildInputs = [ gfortran ];
diff --git a/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix b/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
index 8c37bb0c173b..b738089c853f 100644
--- a/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
@@ -1,34 +1,46 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, bison, doxygen
-, xkeyboard_config, libxcb, libxml2
+{ lib
+, stdenv
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, bison
+, doxygen
+, xkeyboard_config
+, libxcb
+, libxml2
 , python3
 , libX11
-# To enable the "interactive-wayland" subcommand of xkbcli:
-, withWaylandSupport ? false, wayland, wayland-protocols
+  # To enable the "interactive-wayland" subcommand of xkbcli. This is the
+  # wayland equivalent of `xev` on X11.
+, withWaylandTools ? stdenv.isLinux
+, wayland
+, wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
   pname = "libxkbcommon";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://xkbcommon.org/download/${pname}-${version}.tar.xz";
-    sha256 = "1cqzd4vd5jw3ghibmdqvy90mb1h8vvazc81bxgavk6sc0b9sfcz8";
+    sha256 = "0ysynzzgzd9jdrh1321r4bgw8wd5zljrlyn5y1a31g39xacf02bv";
   };
 
   outputs = [ "out" "dev" "doc" ];
 
   depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [ meson ninja pkg-config bison doxygen ]
-    ++ lib.optional withWaylandSupport wayland;
+    ++ lib.optional withWaylandTools wayland;
   buildInputs = [ xkeyboard_config libxcb libxml2 ]
-    ++ lib.optionals withWaylandSupport [ wayland wayland-protocols ];
+    ++ lib.optionals withWaylandTools [ wayland wayland-protocols ];
   checkInputs = [ python3 ];
 
   mesonFlags = [
     "-Dxkb-config-root=${xkeyboard_config}/etc/X11/xkb"
     "-Dxkb-config-extra-path=/etc/xkb" # default=$sysconfdir/xkb ($out/etc)
     "-Dx-locale-root=${libX11.out}/share/X11/locale"
-    "-Denable-wayland=${lib.boolToString withWaylandSupport}"
+    "-Denable-wayland=${lib.boolToString withWaylandTools}"
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/libxlsxwriter/default.nix b/nixpkgs/pkgs/development/libraries/libxlsxwriter/default.nix
index 849ebcf3c863..4bb80cb04a45 100644
--- a/nixpkgs/pkgs/development/libraries/libxlsxwriter/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxlsxwriter/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libxlsxwriter";
-  version = "1.0.3";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "jmcnamara";
     repo = "libxlsxwriter";
     rev = "RELEASE_${version}";
-    sha256 = "14c5rgx87nhzasr0j7mcfr1w7ifz0gmdiqy2xq59di5xvcdrpxpv";
+    sha256 = "03fdcbm0xnkxwv6fir4yy4x9q2p5h08j099w9xh5gc2ni7ygjlyx";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libxml2/default.nix b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
index 30a65e3a0a36..ca3cbc4a1884 100644
--- a/nixpkgs/pkgs/development/libraries/libxml2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, lib, fetchurl, fetchpatch
+{ stdenv, lib, fetchurl
 , zlib, xz, libintl, python, gettext, ncurses, findXMLCatalogs
 , pythonSupport ? enableShared && stdenv.buildPlatform == stdenv.hostPlatform
 , icuSupport ? false, icu ? null
 , enableShared ? stdenv.hostPlatform.libc != "msvcrt"
-, enableStatic ? !enableShared,
+, enableStatic ? !enableShared
 }:
 
 stdenv.mkDerivation rec {
   pname = "libxml2";
-  version = "2.9.10";
+  version = "2.9.12";
 
   src = fetchurl {
     url = "http://xmlsoft.org/sources/${pname}-${version}.tar.gz";
-    sha256 = "07xynh8hcxb2yb1fs051xrgszjvj37wnxvxgsj10rzmqzy9y3zma";
+    sha256 = "14hxwzmf5xqppx77z7i0ni9lpzg1a84dqpf8j8l1fvy570g6imn8";
   };
   patches = [
     # Upstream bugs:
@@ -27,28 +27,6 @@ stdenv.mkDerivation rec {
     #   https://github.com/NixOS/nixpkgs/pull/63174
     #   https://github.com/NixOS/nixpkgs/pull/72342
     ./utf8-xmlErrorFuncHandler.patch
-    (fetchpatch {
-      name = "CVE-2019-20388.patch";
-      url = "https://gitlab.gnome.org/GNOME/libxml2/commit/6088a74bcf7d0c42e24cff4594d804e1d3c9fbca.patch";
-      sha256 = "070s7al2r2k92320h9cdfc2097jy4kk04d0disc98ddc165r80jl";
-    })
-    (fetchpatch {
-      name = "CVE-2020-7595.patch";
-      url = "https://gitlab.gnome.org/GNOME/libxml2/commit/0e1a49c8907645d2e155f0d89d4d9895ac5112b5.patch";
-      sha256 = "0klvaxkzakkpyq0m44l9xrpn5kwaii194sqsivfm6zhnb9hhl15l";
-    })
-    (fetchpatch {
-      name = "CVE-2020-24977.patch";
-      url = "https://gitlab.gnome.org/GNOME/libxml2/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2.patch";
-      sha256 = "093f1ic5qfiq8nk9mc6b8p1qcs8m9hir3ardr6r5il4zi2dnjrj4";
-    })
-    # Fix compatibility with Python 3.9.
-    # https://gitlab.gnome.org/GNOME/libxml2/-/issues/149
-    (fetchpatch {
-      name = "python39.patch";
-      url = "https://gitlab.gnome.org/nwellnhof/libxml2/-/commit/e4fb36841800038c289997432ca547c9bfef9db1.patch";
-      sha256 = "0h3vpy9fg3339b14qa64640ypp65z3hrrrmpjl8qm72srkp24ci5";
-    })
   ];
 
   outputs = [ "bin" "dev" "out" "man" "doc" ]
@@ -75,6 +53,10 @@ stdenv.mkDerivation rec {
     (lib.withFeatureAs pythonSupport "python" python)
   ];
 
+  preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '';
+
   enableParallelBuilding = true;
 
   # disable test that's problematic with newer pythons: see
diff --git a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
index 161833a928cd..b476edaf5e60 100644
--- a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libxmlb";
-  version = "0.3.0";
+  version = "0.3.1";
 
   outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    sha256 = "sha256-prHsigfjifwiuBSUHaCWhjJIaw1LkOGHJu20cdPgH9c=";
+    sha256 = "sha256-4gJBmSbo5uGj12Y2Ov4gmS8nJshQxuBM9BAevY/lwjg=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libxmlxx/default.nix b/nixpkgs/pkgs/development/libraries/libxmlxx/default.nix
index 19282ddc822d..67c5a0794ed5 100644
--- a/nixpkgs/pkgs/development/libraries/libxmlxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmlxx/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, glibmm, perl, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, libxml2, glibmm, perl, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "libxml++";
@@ -16,8 +16,9 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ libxml2 glibmm ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libxslt/default.nix b/nixpkgs/pkgs/development/libraries/libxslt/default.nix
index 650e17d3179d..eb23e16d653a 100644
--- a/nixpkgs/pkgs/development/libraries/libxslt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxslt/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs, gettext, python3, libgcrypt
+{ lib, stdenv, fetchurl
+, pkg-config
+, libxml2, findXMLCatalogs, gettext, python3, libgcrypt
 , cryptoSupport ? false
 , pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 }:
@@ -14,6 +16,10 @@ stdenv.mkDerivation rec {
 
   outputs = [ "bin" "dev" "out" "man" "doc" ] ++ lib.optional pythonSupport "py";
 
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
   buildInputs = [ libxml2.dev ]
     ++ lib.optional stdenv.isDarwin gettext
     ++ lib.optionals pythonSupport [ libxml2.py python3 ]
@@ -22,7 +28,6 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ findXMLCatalogs ];
 
   configureFlags = [
-    "--with-libxml-prefix=${libxml2.dev}"
     "--without-debug"
     "--without-mem-debug"
     "--without-debugger"
diff --git a/nixpkgs/pkgs/development/libraries/libzapojit/default.nix b/nixpkgs/pkgs/development/libraries/libzapojit/default.nix
index d16f34039f19..8acb5e858df8 100644
--- a/nixpkgs/pkgs/development/libraries/libzapojit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libzapojit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, intltool, json-glib, librest, libsoup, gnome3, gnome-online-accounts, gobject-introspection }:
+{ lib, stdenv, fetchurl, pkg-config, glib, intltool, json-glib, librest, libsoup, gnome, gnome-online-accounts, gobject-introspection }:
 
 stdenv.mkDerivation rec {
   pname = "libzapojit";
@@ -15,8 +15,9 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ glib json-glib librest libsoup gnome-online-accounts ]; # zapojit-0.0.pc
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/lief/default.nix b/nixpkgs/pkgs/development/libraries/lief/default.nix
index 872327ed4b8f..706408061907 100644
--- a/nixpkgs/pkgs/development/libraries/lief/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lief/default.nix
@@ -10,13 +10,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "lief";
-  version = "0.11.4";
+  version = "0.11.5";
 
   src = fetchFromGitHub {
     owner = "lief-project";
     repo = "LIEF";
     rev = version;
-    sha256 = "DgsTrJ2+zdXJK6CdDOan7roakaaxQiwrVeiQnzJnk0A=";
+    sha256 = "sha256-crYFBeX+YaIvVAv3uvGEeNCg+ZbUryr0NacDG56TUGE=";
   };
 
   outputs = [ "out" "py" ];
diff --git a/nixpkgs/pkgs/development/libraries/lime/default.nix b/nixpkgs/pkgs/development/libraries/lime/default.nix
index 741f05bea6f9..4d52b848ae40 100644
--- a/nixpkgs/pkgs/development/libraries/lime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lime/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lime";
-  version = "4.5.1";
+  version = "4.5.14";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1fsldk7gxagxkbkzksz6dz8a8dmix1lxfy8nvvp0m355pzgqj6lb";
+    sha256 = "sha256-ixqJ37+ljAru3hZ512nosTak0G/m6/nnmv2p/s5sVLs=";
   };
 
   buildInputs = [ bctoolbox soci belle-sip sqlite ];
diff --git a/nixpkgs/pkgs/development/libraries/lirc/default.nix b/nixpkgs/pkgs/development/libraries/lirc/default.nix
index 6b7f0c102ee8..b93cc96bde02 100644
--- a/nixpkgs/pkgs/development/libraries/lirc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lirc/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, autoreconfHook, pkg-config, help2man, python3,
-  alsaLib, xlibsWrapper, libxslt, systemd, libusb-compat-0_1, libftdi1 }:
+  alsa-lib, xlibsWrapper, libxslt, systemd, libusb-compat-0_1, libftdi1 }:
 
 stdenv.mkDerivation rec {
   name = "lirc-0.10.1";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config help2man
     (python3.withPackages (p: with p; [ pyyaml setuptools ])) ];
 
-  buildInputs = [ alsaLib xlibsWrapper libxslt systemd libusb-compat-0_1 libftdi1 ];
+  buildInputs = [ alsa-lib xlibsWrapper libxslt systemd libusb-compat-0_1 libftdi1 ];
 
   configureFlags = [
     "--sysconfdir=/etc"
diff --git a/nixpkgs/pkgs/development/libraries/lmdb/default.nix b/nixpkgs/pkgs/development/libraries/lmdb/default.nix
index 229e82c323aa..0a3515db2622 100644
--- a/nixpkgs/pkgs/development/libraries/lmdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lmdb/default.nix
@@ -1,13 +1,15 @@
-{ lib, stdenv, fetchgit }:
+{ lib, stdenv, fetchFromGitLab }:
 
 stdenv.mkDerivation rec {
   pname = "lmdb";
-  version = "0.9.28";
+  version = "0.9.29";
 
-  src = fetchgit {
-    url = "https://git.openldap.org/openldap/openldap.git";
+  src = fetchFromGitLab {
+    domain = "git.openldap.org";
+    owner = "openldap";
+    repo = "openldap";
     rev = "LMDB_${version}";
-    sha256 = "012a8bs49cswsnzw7k4piis5b6dn4by85w7a7mai9i04xcjyy9as";
+    sha256 = "19zq5s1amrv1fhw1aszcn2w2xjrk080l6jj5hc9f46yiqf98jjg3";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
@@ -25,7 +27,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/liblmdb.so";
 
   doCheck = true;
-  checkPhase = "make test";
+  checkTarget = "test";
 
   postInstall = ''
     moveToOutput bin "$bin"
@@ -52,7 +54,7 @@ stdenv.mkDerivation rec {
       offering the persistence of standard disk-based databases, and is only
       limited to the size of the virtual address space.
     '';
-    homepage = "http://symas.com/mdb/";
+    homepage = "https://symas.com/lmdb/";
     maintainers = with maintainers; [ jb55 vcunat ];
     license = licenses.openldap;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/lmdbxx/default.nix b/nixpkgs/pkgs/development/libraries/lmdbxx/default.nix
index 2d037afbe213..4fc1573eea1a 100644
--- a/nixpkgs/pkgs/development/libraries/lmdbxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lmdbxx/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = {
-    homepage = "https://github.com/drycpp/lmdbxx#readme";
+    homepage = "https://github.com/hoytech/lmdbxx#readme";
     description = "C++11 wrapper for the LMDB embedded B+ tree database library";
     license = lib.licenses.unlicense;
     maintainers = with lib.maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/development/libraries/lucene++/default.nix b/nixpkgs/pkgs/development/libraries/lucene++/default.nix
index 2761329ea23c..79e28cc7bb4a 100644
--- a/nixpkgs/pkgs/development/libraries/lucene++/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lucene++/default.nix
@@ -1,13 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, boost, gtest }:
+{ lib, stdenv, fetchFromGitHub, cmake, boost, gtest }:
 
 stdenv.mkDerivation rec {
   pname = "lucene++";
   version = "3.0.7";
 
-  src = fetchurl {
-    url = "https://github.com/luceneplusplus/LucenePlusPlus/"
-        + "archive/rel_${version}.tar.gz";
-    sha256 = "032yb35b381ifm7wb8cy2m3yndklnxyi5cgprjh48jqy641z46bc";
+  src = fetchFromGitHub {
+    owner = "luceneplusplus";
+    repo = "LucenePlusPlus";
+    rev = "rel_${version}";
+    sha256 = "06b37fly6l27zc6kbm93f6khfsv61w792j8xihfagpcm9cfz2zi1";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/lyra/default.nix b/nixpkgs/pkgs/development/libraries/lyra/default.nix
index ed02af56f784..31b85b01d6a5 100644
--- a/nixpkgs/pkgs/development/libraries/lyra/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lyra/default.nix
@@ -13,8 +13,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja ];
 
-  enableParallelBuilding = true;
-
   postPatch = "sed -i s#/usr#$out#g meson.build";
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/libraries/malcontent/default.nix b/nixpkgs/pkgs/development/libraries/malcontent/default.nix
index 641f3b87c3fe..82635ae66d63 100644
--- a/nixpkgs/pkgs/development/libraries/malcontent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/malcontent/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "malcontent";
-  version = "0.10.0";
+  version = "0.10.1";
 
   outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "pwithnall";
     repo = pname;
     rev = version;
-    sha256 = "1b6rgf7h9gj2kw1b7ba0mvhsb89riwf9p4pviqjfzd1i5nmbmnyx";
+    sha256 = "sha256-GgY+E+1gzmiAAALzdKu1CjN3xPeVMhbmNLqJNB1zHaU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/mapnik/default.nix b/nixpkgs/pkgs/development/libraries/mapnik/default.nix
index d4f11c1d126a..45d5e0a40eb0 100644
--- a/nixpkgs/pkgs/development/libraries/mapnik/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mapnik/default.nix
@@ -23,18 +23,42 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ boost cairo freetype gdal harfbuzz icu libjpeg libpng libtiff
-      libwebp libxml2 proj python sqlite zlib
+      libwebp proj python sqlite zlib
 
       # optional inputs
       postgresql
     ];
 
+  propagatedBuildInputs = [ libxml2 ];
+
   prefixKey = "PREFIX=";
 
   preConfigure = ''
     patchShebangs ./configure
   '';
 
+  # NOTE: 2021-05-06:
+  # Add -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1 for backwards compatibility
+  # with major versions 6 and 7 of proj which are otherwise not compatible
+  # with mapnik 3.1.0. Note that:
+  #
+  # 1. Starting with proj version 8, this workaround will no longer be
+  #    supported by the upstream proj project.
+  #
+  # 2. Without the workaround, mapnik configures itself without proj support.
+  #
+  # 3. The master branch of mapnik (after 3.1.0) appears to add native support
+  #    for the proj 6 api, so this workaround is not likely to be needed in
+  #    subsequent mapnik releases. At that point, this block comment and the
+  #    NIX_CFLAGS_COMPILE expression can be removed.
+
+  NIX_CFLAGS_COMPILE =
+    if version != "3.1.0" && lib.versionAtLeast version "3.1.0"
+    then throw "The mapnik compatibility workaround for proj 6 may no longer be required. Remove workaround after checking."
+    else if lib.versionAtLeast (lib.getVersion proj) "8"
+    then throw ("mapnik currently requires a version of proj less than 8, but proj version is: " + (lib.getVersion proj))
+    else "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1";
+
   configureFlags = [
     "BOOST_INCLUDES=${boost.dev}/include"
     "BOOST_LIBS=${boost.out}/lib"
@@ -51,16 +75,19 @@ stdenv.mkDerivation rec {
     "JPEG_LIBS=${libjpeg.out}/lib"
     "PNG_INCLUDES=${libpng.dev}/include"
     "PNG_LIBS=${libpng.out}/lib"
-    "PROJ_INCLUDES=${proj}/include"
-    "PROJ_LIBS=${proj}/lib"
+    "PROJ_INCLUDES=${proj.dev}/include"
+    "PROJ_LIBS=${proj.out}/lib"
     "SQLITE_INCLUDES=${sqlite.dev}/include"
     "SQLITE_LIBS=${sqlite.out}/lib"
     "TIFF_INCLUDES=${libtiff.dev}/include"
     "TIFF_LIBS=${libtiff.out}/lib"
     "WEBP_INCLUDES=${libwebp}/include"
     "WEBP_LIBS=${libwebp}/lib"
-    "XML2_INCLUDES=${libxml2.dev}/include"
-    "XML2_LIBS=${libxml2.out}/lib"
+    "XMLPARSER=libxml2"
+  ];
+
+  buildFlags = [
+    "JOBS=$(NIX_BUILD_CORES)"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/matio/default.nix b/nixpkgs/pkgs/development/libraries/matio/default.nix
index 0b8143b69117..3b0e811097e7 100644
--- a/nixpkgs/pkgs/development/libraries/matio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/matio/default.nix
@@ -1,9 +1,9 @@
 { lib, stdenv, fetchurl }:
 stdenv.mkDerivation rec {
-  name = "matio-1.5.20";
+  name = "matio-1.5.21";
   src = fetchurl {
     url = "mirror://sourceforge/matio/${name}.tar.gz";
-    sha256 = "sha256-XR9yofUav2qc0j6qgS+xe4YQlwWQlfSMdoxINcWqJZg=";
+    sha256 = "sha256-IYCRd+VYOefJTa2nRO5Vwd6n11fdqriWBXdtUBIvsGU=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/mauikit-filebrowsing/default.nix b/nixpkgs/pkgs/development/libraries/mauikit-filebrowsing/default.nix
new file mode 100644
index 000000000000..5cce0382c8f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mauikit-filebrowsing/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, kconfig
+, kio
+, mauikit
+}:
+
+mkDerivation rec {
+  pname = "mauikit-filebrowsing";
+  version = "1.2.2";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "maui";
+    repo = "mauikit-filebrowsing";
+    rev = "v${version}";
+    sha256 = "1m56lil7w884wn8qycl7y55abvw2vanfy8c4g786200p6acsh3kl";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kconfig
+    kio
+    mauikit
+  ];
+
+  meta = with lib; {
+    homepage = "https://invent.kde.org/maui/mauikit-filebrowsing";
+    description = "MauiKit File Browsing utilities and controls";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/mauikit/default.nix b/nixpkgs/pkgs/development/libraries/mauikit/default.nix
index 38e938080ba3..22155a7a52a6 100644
--- a/nixpkgs/pkgs/development/libraries/mauikit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mauikit/default.nix
@@ -3,22 +3,23 @@
 , fetchFromGitLab
 , cmake
 , extra-cmake-modules
-, kio
+, kconfig
+, kcoreaddons
+, ki18n
 , qtbase
 , qtquickcontrols2
-, syntax-highlighting
 }:
 
 mkDerivation rec {
   pname = "mauikit";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "maui";
     repo = "mauikit";
     rev = "v${version}";
-    sha256 = "1wimbpbn9yqqdcjd59x83z0mw2fycjz09py2rwimfi8ldmvi5lgy";
+    sha256 = "1jz0a65bbznjg7aaq19rdyp956wn6xc1x4xigfkhj6mwsvnb49av";
   };
 
   nativeBuildInputs = [
@@ -27,9 +28,10 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    kio
+    kconfig
+    kcoreaddons
+    ki18n
     qtquickcontrols2
-    syntax-highlighting
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/md4c/default.nix b/nixpkgs/pkgs/development/libraries/md4c/default.nix
index a711ecb7c768..a29b521a2de5 100644
--- a/nixpkgs/pkgs/development/libraries/md4c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/md4c/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "md4c";
-  version = "0.4.7";
+  version = "0.4.8";
 
   src = fetchFromGitHub {
     owner = "mity";
     repo = pname;
     rev = "release-${version}";
-    hash = "sha256-nfMXUP1wu3ifn1QVTO/+XcfFRsThG8PlmYRv+b8AYlQ=";
+    hash = "sha256-+LObAD5JB8Vb4Rt4hTo1Z4ispxzfFkkXA2sw6TKB7Yo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix b/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix
index aaa31b29e9ea..5d9cc98b1a9c 100644
--- a/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mediastreamer/default.nix
@@ -1,10 +1,10 @@
-{ alsaLib
+{ alsa-lib
 , bctoolbox
 , bzrtp
 , cmake
 , doxygen
 , fetchFromGitLab
-, ffmpeg_3
+, ffmpeg
 , glew
 , gsm
 , intltool
@@ -33,7 +33,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mediastreamer2";
-  version = "4.5.1";
+  version = "4.5.15";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0aqma9834lzy1593qb9qwmzvzn50y6fzhmmg493jznf8977b0gsw";
+    sha256 = "sha256-n/EuXEQ9nJKC32PMvWkfP1G+E6uQQuu1/A168n8/cIY=";
   };
 
   patches = [
@@ -62,10 +62,10 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    alsaLib
+    alsa-lib
     bctoolbox
     bzrtp
-    ffmpeg_3
+    ffmpeg
     glew
     gsm
     libGL
diff --git a/nixpkgs/pkgs/development/libraries/mesa/default.nix b/nixpkgs/pkgs/development/libraries/mesa/default.nix
index 1186882aa809..2b94f9c3bb50 100644
--- a/nixpkgs/pkgs/development/libraries/mesa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mesa/default.nix
@@ -122,7 +122,7 @@ self = stdenv.mkDerivation {
   ];
 
   buildInputs = with xorg; [
-    expat llvmPackages.llvm libglvnd xorgproto
+    expat llvmPackages.libllvm libglvnd xorgproto
     libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr
     libffi libvdpau libelf libXvMC
     libpthreadstubs openssl /*or another sha1 provider*/
@@ -145,7 +145,6 @@ self = stdenv.mkDerivation {
   ] ++ optional stdenv.isLinux libdrm
     ++ optionals stdenv.isDarwin [ OpenGL Xplugin ];
 
-  enableParallelBuilding = true;
   doCheck = false;
 
   postInstall = ''
@@ -185,14 +184,14 @@ self = stdenv.mkDerivation {
   postFixup = optionalString stdenv.isLinux ''
     # set the default search path for DRI drivers; used e.g. by X server
     substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace "$drivers" "${libglvnd.driverLink}"
-    substituteInPlace "$dev/lib/pkgconfig/d3d.pc" --replace "$drivers" "${libglvnd.driverLink}"
+    [ -f "$dev/lib/pkgconfig/d3d.pc" ] && substituteInPlace "$dev/lib/pkgconfig/d3d.pc" --replace "$drivers" "${libglvnd.driverLink}"
 
     # remove pkgconfig files for GL/EGL; they are provided by libGL.
     rm -f $dev/lib/pkgconfig/{gl,egl}.pc
 
     # Move development files for libraries in $drivers to $driversdev
     mkdir -p $driversdev/include
-    mv $dev/include/xa_* $dev/include/d3d* $driversdev/include
+    mv $dev/include/xa_* $dev/include/d3d* -t $driversdev/include || true
     mkdir -p $driversdev/lib/pkgconfig
     for pc in lib/pkgconfig/{xatracker,d3d}.pc; do
       if [ -f "$dev/$pc" ]; then
diff --git a/nixpkgs/pkgs/development/libraries/microsoft_gsl/default.nix b/nixpkgs/pkgs/development/libraries/microsoft_gsl/default.nix
index af1c1c91a94f..5a5257168eb4 100644
--- a/nixpkgs/pkgs/development/libraries/microsoft_gsl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/microsoft_gsl/default.nix
@@ -21,7 +21,8 @@ stdenv.mkDerivation rec {
   buildPhase = if nativeBuild then "make" else "true";
 
   # https://github.com/microsoft/GSL/issues/806
-  cmakeFlags = [ "-DCMAKE_CXX_FLAGS=-Wno-catch-value" ];
+  cmakeFlags = lib.optionals stdenv.cc.isGNU
+    [ "-DCMAKE_CXX_FLAGS=-Wno-catch-value" ];
 
   installPhase = ''
     mkdir -p $out/include
diff --git a/nixpkgs/pkgs/development/libraries/mm-common/default.nix b/nixpkgs/pkgs/development/libraries/mm-common/default.nix
index a43d99503a3f..7ce2675e3017 100644
--- a/nixpkgs/pkgs/development/libraries/mm-common/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mm-common/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchurl
-, gnome3
+, gnome
 , meson
 , python3
 , ninja
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/mpfi/default.nix b/nixpkgs/pkgs/development/libraries/mpfi/default.nix
index db36ed38a953..5ff0dcd29e7e 100644
--- a/nixpkgs/pkgs/development/libraries/mpfi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpfi/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, autoconf, automake, libtool, texinfo, mpfr}:
+{lib, stdenv, fetchurl, autoreconfHook, texinfo, mpfr}:
 stdenv.mkDerivation rec {
   pname = "mpfi";
   version = "1.5.4";
@@ -12,13 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-Ozk4WV1yCvF5c96vcnz8DdQcixbCCtwQOpcPSkOuOlY=";
   };
 
-  nativeBuildInputs = [ autoconf automake libtool texinfo ];
+  nativeBuildInputs = [ autoreconfHook texinfo ];
   buildInputs = [ mpfr ];
 
-  preConfigure = ''
-    ./autogen.sh
-  '';
-
   meta = {
     inherit version;
     description = "A multiple precision interval arithmetic library based on MPFR";
diff --git a/nixpkgs/pkgs/development/libraries/mpich/default.nix b/nixpkgs/pkgs/development/libraries/mpich/default.nix
index 49af2593e51e..9227cd705430 100644
--- a/nixpkgs/pkgs/development/libraries/mpich/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpich/default.nix
@@ -1,41 +1,23 @@
 { stdenv, lib, fetchurl, perl, gfortran
-, openssh, hwloc, autoconf, automake, libtool
-# device options are ch3 or ch4
-, device ? "ch4"
-# backend option are libfabric or ucx
-, ch4backend ? "libfabric"
-, ucx, libfabric
+, openssh, hwloc
+# either libfabric or ucx work for ch4backend on linux. On darwin, neither of
+# these libraries currently build so this argument is ignored on Darwin.
+, ch4backend
 # Process manager to build
 , withPm ? "hydra:gforker"
 } :
 
-assert (ch4backend == "ucx" || ch4backend == "libfabric");
+assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
 
 stdenv.mkDerivation  rec {
   pname = "mpich";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchurl {
     url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
-    sha256 = "09wpfw9lsrc84vcmfw94razd4xv4znx4mmg7rqmljvgg0jc96dl8";
+    sha256 = "1gw7qpb27mhsj7ip0hhljshgpwvz2hmyhizhlp6793afp2lbw6aw";
   };
 
-  patches = [
-    # Reverts an upstream change that causes json-c test to fail
-    ./jsonc-test.patch
-  ];
-
-  # Required for the json-c patch
-  nativeBuildInputs = [ autoconf automake libtool ];
-
-  # Update configure after patch
-  postPatch = ''
-    cd modules/json-c
-    ./autogen.sh
-    cd ../..
-  '';
-
-
   configureFlags = [
     "--enable-shared"
     "--enable-sharedlib"
@@ -45,8 +27,7 @@ stdenv.mkDerivation  rec {
   enableParallelBuilding = true;
 
   buildInputs = [ perl gfortran openssh hwloc ]
-    ++ lib.optional (ch4backend == "ucx") ucx
-    ++ lib.optional (ch4backend == "libfabric") libfabric;
+    ++ lib.optional (!stdenv.isDarwin) ch4backend;
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/mpich/jsonc-test.patch b/nixpkgs/pkgs/development/libraries/mpich/jsonc-test.patch
deleted file mode 100644
index 2f8d87b409b4..000000000000
--- a/nixpkgs/pkgs/development/libraries/mpich/jsonc-test.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- b/modules/json-c/configure.ac
-+++ a/modules/json-c/configure.ac
-@@ -75,7 +75,7 @@
- AC_FUNC_VPRINTF
- AC_FUNC_MEMCMP
- AC_CHECK_FUNCS([realloc])
-+AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open strncasecmp setlocale)
--AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf open strncasecmp setlocale)
- AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]])
- AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]])
- AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
---- b/modules/json-c/json_pointer.c
-+++ a/modules/json-c/json_pointer.c
-@@ -208,7 +208,7 @@
- 	}
-
- 	va_start(args, path_fmt);
-+	rc = vasprintf(&path_copy, path_fmt, args);
--	rc = json_vasprintf(&path_copy, path_fmt, args);
- 	va_end(args);
-
- 	if (rc < 0)
-@@ -287,7 +287,7 @@
-
- 	/* pass a working copy to the recursive call */
- 	va_start(args, path_fmt);
-+	rc = vasprintf(&path_copy, path_fmt, args);
--	rc = json_vasprintf(&path_copy, path_fmt, args);
- 	va_end(args);
-
- 	if (rc < 0)
---- b/modules/json-c/printbuf.c
-+++ a/modules/json-c/printbuf.c
-@@ -129,7 +129,7 @@
-      would have been written - this code handles both cases. */
-   if(size == -1 || size > 127) {
-     va_start(ap, msg);
-+    if((size = vasprintf(&t, msg, ap)) < 0) { va_end(ap); return -1; }
--    if((size = json_vasprintf(&t, msg, ap)) < 0) { va_end(ap); return -1; }
-     va_end(ap);
-     printbuf_memappend(p, t, size);
-     free(t);
---- b/modules/json-c/vasprintf_compat.h
-+++ a/modules/json-c/vasprintf_compat.h
-@@ -8,8 +8,9 @@
-
- #include "snprintf_compat.h"
-
-+#if !defined(HAVE_VASPRINTF)
- /* CAW: compliant version of vasprintf */
-+static int vasprintf(char **buf, const char *fmt, va_list ap)
--static int json_vasprintf(char **buf, const char *fmt, va_list ap)
- {
- #ifndef WIN32
- 	static char _T_emptybuffer = '\0';
-@@ -40,5 +41,6 @@
-
- 	return chars;
- }
-+#endif /* !HAVE_VASPRINTF */
-
- #endif /* __vasprintf_compat_h */
diff --git a/nixpkgs/pkgs/development/libraries/mpir/default.nix b/nixpkgs/pkgs/development/libraries/mpir/default.nix
index 5e68ad80fc2e..36505b4a6670 100644
--- a/nixpkgs/pkgs/development/libraries/mpir/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpir/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1fvmhrqdjs925hzr2i8bszm50h00gwsh17p2kn2pi51zrxck9xjj";
   };
 
-  configureFlags = [ "--enable-cxx" "--enable-fat" ];
+  configureFlags = [ "--enable-cxx" ]
+    ++ lib.optionals stdenv.isLinux [ "--enable-fat" ];
 
   meta = {
     inherit version;
diff --git a/nixpkgs/pkgs/development/libraries/mutest/default.nix b/nixpkgs/pkgs/development/libraries/mutest/default.nix
index 9470b812586a..f2d3a5595530 100644
--- a/nixpkgs/pkgs/development/libraries/mutest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mutest/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
     homepage = "https://ebassi.github.io/mutest/mutest.md.html";
     description = "A BDD testing framework for C, inspired by Mocha";
     license = licenses.mit;
-    maintainers = with maintainers; [ jtojnar worldofpeace ];
+    maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/mvapich/default.nix b/nixpkgs/pkgs/development/libraries/mvapich/default.nix
new file mode 100644
index 000000000000..704a28dbb8cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mvapich/default.nix
@@ -0,0 +1,73 @@
+{ lib, stdenv, fetchurl, pkg-config, bison, numactl, libxml2
+, perl, gfortran, slurm, openssh, hwloc, zlib, makeWrapper
+# InfiniBand dependencies
+, opensm, rdma-core
+# OmniPath dependencies
+, libpsm2, libfabric
+# Compile with slurm as a process manager
+, useSlurm ? false
+# Network type for MVAPICH2
+, network ? "ethernet"
+} :
+
+assert builtins.elem network [ "ethernet" "infiniband" "omnipath" ];
+
+stdenv.mkDerivation rec {
+  pname = "mvapich";
+  version = "2.3.6";
+
+  src = fetchurl {
+    url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-${version}.tar.gz";
+    sha256 = "0jd28vy9ivl3rcpkxmhw73b6krzm0pd9jps8asw92wa00lm2z9mk";
+  };
+
+  nativeBuildInputs = [ pkg-config bison makeWrapper ];
+  propagatedBuildInputs = [ numactl rdma-core zlib opensm ];
+  buildInputs = with lib; [
+    numactl
+    libxml2
+    perl
+    gfortran
+    openssh
+    hwloc
+  ] ++ optionals (network == "infiniband") [ rdma-core opensm ]
+    ++ optionals (network == "omnipath") [ libpsm2 libfabric ]
+    ++ optional useSlurm slurm;
+
+  configureFlags = with lib; [
+    "--with-pm=hydra"
+    "--enable-fortran=all"
+    "--enable-cxx"
+    "--enable-threads=multiple"
+    "--enable-hybrid"
+    "--enable-shared"
+  ] ++ optional useSlurm "--with-pm=slurm"
+    ++ optional (network == "ethernet") "--with-device=ch3:sock"
+    ++ optionals (network == "infiniband") [ "--with-device=ch3:mrail" "--with-rdma=gen2" ]
+    ++ optionals (network == "omnipath") ["--with-device=ch3:psm" "--with-psm2=${libpsm2}"];
+
+  doCheck = true;
+
+  preFixup = ''
+    # /tmp/nix-build... ends up in the RPATH, fix it manually
+    for entry in $out/bin/mpichversion $out/bin/mpivars; do
+      echo "fix rpath: $entry"
+      patchelf --set-rpath "$out/lib" $entry
+    done
+
+    # Ensure the default compilers are the ones mvapich was built with
+    substituteInPlace $out/bin/mpicc --replace 'CC="gcc"' 'CC=${stdenv.cc}/bin/cc'
+    substituteInPlace $out/bin/mpicxx --replace 'CXX="g++"' 'CXX=${stdenv.cc}/bin/c++'
+    substituteInPlace $out/bin/mpifort --replace 'FC="gfortran"' 'FC=${gfortran}/bin/gfortran'
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "MPI-3.1 implementation optimized for Infiband transport";
+    homepage = "https://mvapich.cse.ohio-state.edu";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/mygui/default.nix b/nixpkgs/pkgs/development/libraries/mygui/default.nix
index 8e63cb681203..740c1fec8834 100644
--- a/nixpkgs/pkgs/development/libraries/mygui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mygui/default.nix
@@ -1,4 +1,4 @@
-{  lib, stdenv, fetchFromGitHub, libX11, unzip, cmake, ois, freetype, libuuid,
+{  lib, stdenv, fetchFromGitHub, libX11, cmake, ois, freetype, libuuid,
    boost, pkg-config, withOgre ? false, ogre ? null, libGL, libGLU ? null } :
 
 let
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
     sha256 = "0a4zi8w18pjj813n7kmxldl1d9r1jp0iyhkw7pbqgl8f7qaq994w";
   };
 
-  nativeBuildInputs = [ cmake pkg-config unzip ];
+  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ libX11 ois freetype libuuid boost ]
     ++ (if withOgre then [ ogre ] else [ libGL libGLU ]);
 
diff --git a/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix b/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix
index b594a672140f..494f4bf71575 100644
--- a/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix
+++ b/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix
@@ -1,15 +1,22 @@
-{ lib, stdenv, fetchurl, netcdf, hdf5, curl }:
+{ lib, stdenv, fetchzip, netcdf, hdf5, curl, cmake, ninja }:
 stdenv.mkDerivation rec {
   pname = "netcdf-cxx4";
-  version = "4.3.0";
+  version = "4.3.1";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "https://github.com/Unidata/netcdf-cxx4/archive/v${version}.tar.gz";
-    sha256 = "13zi8cbk18gggx1c12a580wdsbl714lw68a1wg7c86x0sybirni5";
+    sha256 = "05kydd5z9iil5iv4fp7l11cicda5n5lsg5sdmsmc55xpspnsg7hr";
   };
 
+  preConfigure = ''
+    cmakeFlags+="-Dabs_top_srcdir=$(readlink -f ./)"
+  '';
+
+  nativeBuildInputs = [ cmake ninja ];
   buildInputs = [ netcdf hdf5 curl ];
+
   doCheck = true;
+  enableParallelChecking = false;
 
   meta = {
     description = "C++ API to manipulate netcdf files";
diff --git a/nixpkgs/pkgs/development/libraries/nss/3.44.nix b/nixpkgs/pkgs/development/libraries/nss/3.44.nix
deleted file mode 100644
index b08b8b3ed2a7..000000000000
--- a/nixpkgs/pkgs/development/libraries/nss/3.44.nix
+++ /dev/null
@@ -1,144 +0,0 @@
-{ lib, stdenv, fetchurl, nspr, perl, zlib, sqlite, fixDarwinDylibNames, buildPackages }:
-
-let
-  nssPEM = fetchurl {
-    url = "http://dev.gentoo.org/~polynomial-c/mozilla/nss-3.15.4-pem-support-20140109.patch.xz";
-    sha256 = "10ibz6y0hknac15zr6dw4gv9nb5r5z9ym6gq18j3xqx7v7n3vpdw";
-  };
-  version = "3.44.4";
-  underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
-
-in stdenv.mkDerivation rec {
-  pname = "nss";
-  inherit version;
-
-  src = fetchurl {
-    url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
-    sha256 = "7ec1a52e20fd9a23e1907eeba8f4f2ecd619dac5d20fa023ec5b4faa1843e847";
-  };
-
-  depsBuildBuild = [ buildPackages.stdenv.cc ];
-
-  nativeBuildInputs = [ perl ]
-    ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-
-  buildInputs = [ zlib sqlite ];
-
-  propagatedBuildInputs = [ nspr ];
-
-  prePatch = ''
-    xz -d < ${nssPEM} | patch -p1
-  '';
-
-  patches =
-    [
-      # Based on http://patch-tracker.debian.org/patch/series/dl/nss/2:3.15.4-1/85_security_load.patch
-      ./85_security_load-3.44.patch
-      ./ckpem.patch
-    ];
-
-  patchFlags = [ "-p0" ];
-
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace nss/coreconf/Darwin.mk --replace '@executable_path/$(notdir $@)' "$out/lib/\$(notdir \$@)"
-  '';
-
-  outputs = [ "out" "dev" "tools" ];
-
-  preConfigure = "cd nss";
-
-  makeFlags = let
-    # NSS's build systems expects aarch32 to be called arm; if we pass in armv6l/armv7l, it
-    # fails with a linker error
-    cpu = if stdenv.hostPlatform.isAarch32 then "arm" else stdenv.hostPlatform.parsed.cpu.name;
-  in [
-    "NSPR_INCLUDE_DIR=${nspr.dev}/include"
-    "NSPR_LIB_DIR=${nspr.out}/lib"
-    "NSDISTMODE=copy"
-    "BUILD_OPT=1"
-    "SOURCE_PREFIX=\$(out)"
-    "NSS_ENABLE_ECC=1"
-    "USE_SYSTEM_ZLIB=1"
-    "NSS_USE_SYSTEM_SQLITE=1"
-    "NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc"
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    # Pass in CPU even if we're not cross compiling, because otherwise it tries to guess with
-    # uname, which can be wrong if e.g. we're compiling for aarch32 on aarch64
-    "OS_TEST=${cpu}"
-    "CPU_ARCH=${cpu}"
-  ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "CROSS_COMPILE=1"
-    "NSS_DISABLE_GTESTS=1" # don't want to build tests when cross-compiling
-  ] ++ lib.optional stdenv.is64bit "USE_64=1"
-    ++ lib.optional stdenv.isDarwin "CCC=clang++";
-
-  NIX_CFLAGS_COMPILE = "-Wno-error";
-
-  # TODO(@oxij): investigate this: `make -n check` works but `make
-  # check` fails with "no rule", same for "installcheck".
-  doCheck = false;
-  doInstallCheck = false;
-
-  postInstall = ''
-    rm -rf $out/private
-    mv $out/public $out/include
-    mv $out/*.OBJ/* $out/
-    rmdir $out/*.OBJ
-
-    ln -s lib $out/lib64
-
-    # Upstream issue: https://bugzilla.mozilla.org/show_bug.cgi?id=530672
-    # https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/nss/files/nss-3.32-gentoo-fixups.patch?id=af1acce6c6d2c3adb17689261dfe2c2b6771ab8a
-    NSS_MAJOR_VERSION=`grep "NSS_VMAJOR" lib/nss/nss.h | awk '{print $3}'`
-    NSS_MINOR_VERSION=`grep "NSS_VMINOR" lib/nss/nss.h | awk '{print $3}'`
-    NSS_PATCH_VERSION=`grep "NSS_VPATCH" lib/nss/nss.h | awk '{print $3}'`
-    PREFIX="$out"
-
-    mkdir -p $out/lib/pkgconfig
-    sed -e "s,%prefix%,$PREFIX," \
-        -e "s,%exec_prefix%,$PREFIX," \
-        -e "s,%libdir%,$PREFIX/lib64," \
-        -e "s,%includedir%,$dev/include/nss," \
-        -e "s,%NSS_VERSION%,$NSS_MAJOR_VERSION.$NSS_MINOR_VERSION.$NSS_PATCH_VERSION,g" \
-        -e "s,%NSPR_VERSION%,4.16,g" \
-        pkg/pkg-config/nss.pc.in > $out/lib/pkgconfig/nss.pc
-    chmod 0644 $out/lib/pkgconfig/nss.pc
-
-    sed -e "s,@prefix@,$PREFIX," \
-        -e "s,@MOD_MAJOR_VERSION@,$NSS_MAJOR_VERSION," \
-        -e "s,@MOD_MINOR_VERSION@,$NSS_MINOR_VERSION," \
-        -e "s,@MOD_PATCH_VERSION@,$NSS_PATCH_VERSION," \
-        pkg/pkg-config/nss-config.in > $out/bin/nss-config
-    chmod 0755 $out/bin/nss-config
-  '';
-
-  postFixup = let
-    isCross = stdenv.hostPlatform != stdenv.buildPlatform;
-    nss = if isCross then buildPackages.nss.tools else "$out";
-  in ''
-    for libname in freebl3 nssdbm3 softokn3
-    do '' +
-    (if stdenv.isDarwin
-     then ''
-       libfile="$out/lib/lib$libname.dylib"
-       DYLD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
-     '' else ''
-       libfile="$out/lib/lib$libname.so"
-       LD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
-     '') + ''
-        ${nss}/bin/shlibsign -v -i "$libfile"
-    done
-
-    moveToOutput bin "$tools"
-    moveToOutput bin/nss-config "$dev"
-    moveToOutput lib/libcrmf.a "$dev" # needed by firefox, for example
-    rm -f "$out"/lib/*.a
-  '';
-
-  meta = with lib; {
-    homepage = "https://developer.mozilla.org/en-US/docs/NSS";
-    description = "A set of libraries for development of security-enabled client and server applications";
-    license = licenses.mpl20;
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/nss/85_security_load-3.44.patch b/nixpkgs/pkgs/development/libraries/nss/85_security_load-3.44.patch
deleted file mode 100644
index 132d5a96b29f..000000000000
--- a/nixpkgs/pkgs/development/libraries/nss/85_security_load-3.44.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/cmd/shlibsign/shlibsign.c nss/cmd/shlibsign/shlibsign.c
---- nss/cmd/shlibsign/shlibsign.c	2017-01-04 15:24:24.000000000 +0100
-+++ nss/cmd/shlibsign/shlibsign.c	2017-01-24 14:43:31.030420852 +0100
-@@ -875,6 +875,8 @@
-         goto cleanup;
-     }
-     lib = PR_LoadLibrary(libname);
-+    if (!lib)
-+        lib = PR_LoadLibrary(NIX_NSS_LIBDIR"libsoftokn3.so");
-     assert(lib != NULL);
-     if (!lib) {
-         PR_fprintf(PR_STDERR, "loading softokn3 failed");
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/coreconf/config.mk nss/coreconf/config.mk
---- nss/coreconf/config.mk	2017-01-04 15:24:24.000000000 +0100
-+++ nss/coreconf/config.mk	2017-01-24 14:43:47.989432372 +0100
-@@ -202,3 +202,6 @@
- 
- # Hide old, deprecated, TLS cipher suite names when building NSS
- DEFINES += -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES
-+
-+# Nix specific stuff.
-+DEFINES += -DNIX_NSS_LIBDIR=\"$(out)/lib/\"
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/pk11wrap/pk11load.c nss/lib/pk11wrap/pk11load.c
---- nss/lib/pk11wrap/pk11load.c	2017-01-04 15:24:24.000000000 +0100
-+++ nss/lib/pk11wrap/pk11load.c	2017-01-24 14:45:06.883485652 +0100
-@@ -440,6 +440,13 @@
-          * unload the library if anything goes wrong from here on out...
-          */
-         library = PR_LoadLibrary(mod->dllName);
-+        if ((library == NULL) &&
-+            !rindex(mod->dllName, PR_GetDirectorySeparator())) {
-+            library = PORT_LoadLibraryFromOrigin(my_shlib_name,
-+                (PRFuncPtr) &softoken_LoadDSO,
-+                mod->dllName);
-+        }
-+
-         mod->library = (void *)library;
- 
-         if (library == NULL) {
-diff -ru -x '*~' -x '*.orig' -x '*.rej' nss/lib/util/secload.c nss/lib/util/secload.c
---- nss/lib/util/secload.c	2017-01-04 15:24:24.000000000 +0100
-+++ nss/lib/util/secload.c	2017-01-24 14:43:31.030420852 +0100
-@@ -70,9 +70,14 @@
- 
-     /* Remove the trailing filename from referencePath and add the new one */
-     c = strrchr(referencePath, PR_GetDirectorySeparator());
-+    if (!c) { /* referencePath doesn't contain a / means that dladdr gave us argv[0]
-+               * and program was called from $PATH. Hack to get libs from NIX_NSS_LIBDIR */
-+        referencePath = NIX_NSS_LIBDIR;
-+        c = (char*) &referencePath[sizeof(NIX_NSS_LIBDIR) - 1]; /* last / */
-+    }
-     if (c) {
-         size_t referencePathSize = 1 + c - referencePath;
--        fullName = (char*)PORT_Alloc(strlen(name) + referencePathSize + 1);
-+        fullName = (char*) PORT_Alloc(strlen(name) + referencePathSize + 5);
-         if (fullName) {
-             memcpy(fullName, referencePath, referencePathSize);
-             strcpy(fullName + referencePathSize, name);
-@@ -82,6 +87,11 @@
- #endif
-             libSpec.type = PR_LibSpec_Pathname;
-             libSpec.value.pathname = fullName;
-+            if ((referencePathSize >= 4) &&
-+                (strncmp(fullName + referencePathSize - 4, "bin", 3) == 0)) {
-+                memcpy(fullName + referencePathSize -4, "lib", 3);
-+            }
-+            strcpy(fullName + referencePathSize, name);
-             dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL
- #ifdef PR_LD_ALT_SEARCH_PATH
-                                                        /* allow library's dependencies to be found in the same directory
-@@ -89,6 +99,10 @@
-                                                        | PR_LD_ALT_SEARCH_PATH
- #endif
-                                           );
-+            if (! dlh) {
-+                strcpy(fullName + referencePathSize, name);
-+                dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL);
-+            }
-             PORT_Free(fullName);
-         }
-     }
diff --git a/nixpkgs/pkgs/development/libraries/nss/default.nix b/nixpkgs/pkgs/development/libraries/nss/default.nix
index e6e2190a1a60..962204268d7f 100644
--- a/nixpkgs/pkgs/development/libraries/nss/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nss/default.nix
@@ -18,7 +18,7 @@ let
   #       It will rebuild itself using the version of this package (NSS) and if
   #       an update is required do the required changes to the expression.
   #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
-  version = "3.63";
+  version = "3.64";
   underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
 
 in stdenv.mkDerivation rec {
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
-    sha256 = "0892xbjcaw6g4rd2rs4qa37nbda248cjrgxa4faaw0licbpjyb8q";
+    sha256 = "09hivz4qf3dw7m21lshw34l0yncinwn4ax5w3rpkm71f2wkm85yk";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix b/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix
index 3cdeb93dc9b1..0e08083c4d82 100644
--- a/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
     description = "A wrapper for the user, group and hosts NSS API";
     homepage = "https://git.samba.org/?p=nss_wrapper.git;a=summary;";
     license = licenses.bsd3;
-    platforms = platforms.all;
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/nv-codec-headers/10_x.nix b/nixpkgs/pkgs/development/libraries/nv-codec-headers/10_x.nix
new file mode 100644
index 000000000000..b1fe1611301f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/nv-codec-headers/10_x.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+  pname = "nv-codec-headers";
+  version = "10.0.26.2";
+
+  src = fetchgit {
+    url = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git";
+    rev = "n${version}";
+    sha256 = "0n5jlwjfv5irx1if1g0n52m279bw7ab6bd3jz2v4vwg9cdzbxx85";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = {
+    description = "FFmpeg version of headers for NVENC";
+    homepage = "https://ffmpeg.org/";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.MP2E ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/octomap/default.nix b/nixpkgs/pkgs/development/libraries/octomap/default.nix
new file mode 100644
index 000000000000..e35a0df79f08
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/octomap/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "octomap";
+  version = "1.9.7";
+
+  src = fetchFromGitHub {
+    owner = "OctoMap";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1pb58w6vka7wzs533lcy7i6y5nwjfrzy6b35fhrb1dhq2mgszc79";
+  };
+  sourceRoot = "source/octomap";
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "A probabilistic, flexible, and compact 3D mapping library for robotic systems";
+    homepage = "https://octomap.github.io/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/ogre/default.nix b/nixpkgs/pkgs/development/libraries/ogre/default.nix
index ae65da3f418b..d097dc623e76 100644
--- a/nixpkgs/pkgs/development/libraries/ogre/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ogre/default.nix
@@ -6,6 +6,7 @@
 , libXxf86vm, libICE
 , unzip
 , libXrender
+, SDL2
 , withNvidiaCg ? false, nvidia_cg_toolkit
 , withSamples ? false }:
 
@@ -18,7 +19,7 @@ stdenv.mkDerivation rec {
      sha256 = "1iv6k0dwdzg5nnzw2mcgcl663q4f7p2kj7nhs8afnsikrzxxgsi4";
   };
 
-  cmakeFlags = [ "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ]
+  cmakeFlags = [ "-DOGRE_BUILD_DEPENDENCIES=OFF" "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ]
     ++ map (x: "-DOGRE_BUILD_PLUGIN_${x}=on")
            ([ "BSP" "OCTREE" "PCZ" "PFX" ] ++ lib.optional withNvidiaCg "CG")
     ++ map (x: "-DOGRE_BUILD_RENDERSYSTEM_${x}=on") [ "GL" ];
@@ -32,6 +33,7 @@ stdenv.mkDerivation rec {
      libX11 libXmu libSM
      libXxf86vm libICE
      libXrender
+     SDL2
    ] ++ lib.optional withNvidiaCg nvidia_cg_toolkit;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/openal-soft/default.nix b/nixpkgs/pkgs/development/libraries/openal-soft/default.nix
index 43c781cf52ce..2d469a406dec 100644
--- a/nixpkgs/pkgs/development/libraries/openal-soft/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openal-soft/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, cmake
-, alsaSupport ? !stdenv.isDarwin, alsaLib ? null
+, alsaSupport ? !stdenv.isDarwin, alsa-lib ? null
 , pulseSupport ? !stdenv.isDarwin, libpulseaudio ? null
 , CoreServices, AudioUnit, AudioToolbox
 }:
 
 with lib;
 
-assert alsaSupport -> alsaLib != null;
+assert alsaSupport -> alsa-lib != null;
 assert pulseSupport -> libpulseaudio != null;
 
 stdenv.mkDerivation rec {
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   buildInputs = []
-    ++ optional alsaSupport alsaLib
+    ++ optional alsaSupport alsa-lib
     ++ optional pulseSupport libpulseaudio
     ++ optionals stdenv.isDarwin [ CoreServices AudioUnit AudioToolbox ];
 
diff --git a/nixpkgs/pkgs/development/libraries/openbsm/default.nix b/nixpkgs/pkgs/development/libraries/openbsm/default.nix
index 269b0138091b..4719b7fb7470 100644
--- a/nixpkgs/pkgs/development/libraries/openbsm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openbsm/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
 
   patches = lib.optional stdenv.isDarwin [ ./bsm-add-audit_token_to_pid.patch ];
 
+  preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '';
+
   configureFlags = [ "ac_cv_file__usr_include_mach_audit_triggers_defs=no" ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/opencl-clang/default.nix b/nixpkgs/pkgs/development/libraries/opencl-clang/default.nix
index 8bbde9796d9a..48c681973d16 100644
--- a/nixpkgs/pkgs/development/libraries/opencl-clang/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencl-clang/default.nix
@@ -32,7 +32,9 @@ let
 
   passthru = rec {
 
-    clang-unwrapped = addPatches "clang" llvmPkgs.clang-unwrapped;
+    libclang = addPatches "clang" llvmPkgs.libclang;
+
+    clang-unwrapped = libclang.out;
 
     clang = llvmPkgs.clang.override {
       cc = clang-unwrapped;
@@ -53,7 +55,7 @@ let
 
   library = let
     inherit (llvmPkgs) llvm;
-    inherit (if buildWithPatches then passthru else llvmPkgs) clang-unwrapped spirv-llvm-translator;
+    inherit (if buildWithPatches then passthru else llvmPkgs) libclang spirv-llvm-translator;
   in
     stdenv.mkDerivation rec {
       pname = "opencl-clang";
@@ -74,13 +76,20 @@ let
         ./opencl-headers-dir.patch
       ];
 
-      nativeBuildInputs = [ cmake git ];
+      # Uses linker flags that are not supported on Darwin.
+      postPatch = lib.optionalString stdenv.isDarwin ''
+        sed -i -e '/SET_LINUX_EXPORTS_FILE/d' CMakeLists.txt
+        substituteInPlace CMakeLists.txt \
+          --replace '-Wl,--no-undefined' ""
+      '';
+
+      nativeBuildInputs = [ cmake git llvm.dev ];
 
-      buildInputs = [ clang-unwrapped llvm spirv-llvm-translator ];
+      buildInputs = [ libclang llvm spirv-llvm-translator ];
 
       cmakeFlags = [
         "-DPREFERRED_LLVM_VERSION=${getVersion llvm}"
-        "-DOPENCL_HEADERS_DIR=${clang-unwrapped}/lib/clang/${getVersion clang-unwrapped}/include/"
+        "-DOPENCL_HEADERS_DIR=${libclang.lib}/lib/clang/${getVersion libclang}/include/"
 
         "-DLLVMSPIRV_INCLUDED_IN_LLVM=OFF"
         "-DSPIRV_TRANSLATOR_DIR=${spirv-llvm-translator}"
diff --git a/nixpkgs/pkgs/development/libraries/opencv/3.x.nix b/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
index a65e978f9816..33b1cd187571 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
@@ -22,7 +22,7 @@
 , enableGtk2      ? false, gtk2
 , enableGtk3      ? false, gtk3
 , enableVtk       ? false, vtk
-, enableFfmpeg    ? false, ffmpeg_3
+, enableFfmpeg    ? false, ffmpeg
 , enableGStreamer ? false, gst_all_1
 , enableTesseract ? false, tesseract, leptonica
 , enableTbb       ? false, tbb
@@ -188,7 +188,7 @@ stdenv.mkDerivation {
     ++ lib.optional enableTIFF libtiff
     ++ lib.optional enableWebP libwebp
     ++ lib.optionals enableEXR [ openexr ilmbase ]
-    ++ lib.optional enableFfmpeg ffmpeg_3
+    ++ lib.optional enableFfmpeg ffmpeg
     ++ lib.optionals (enableFfmpeg && stdenv.isDarwin)
                      [ VideoDecodeAcceleration bzip2 ]
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
diff --git a/nixpkgs/pkgs/development/libraries/opencv/4.x.nix b/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
index 15c8d46b6131..58609a9186d6 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
@@ -45,7 +45,7 @@
 , enableVtk ? false
 , vtk
 , enableFfmpeg ? true
-, ffmpeg_3
+, ffmpeg
 , enableGStreamer ? true
 , gst_all_1
 , enableTesseract ? false
@@ -252,7 +252,7 @@ stdenv.mkDerivation {
     ++ lib.optional enableTIFF libtiff
     ++ lib.optional enableWebP libwebp
     ++ lib.optionals enableEXR [ openexr ilmbase ]
-    ++ lib.optional enableFfmpeg ffmpeg_3
+    ++ lib.optional enableFfmpeg ffmpeg
     ++ lib.optionals (enableFfmpeg && stdenv.isDarwin)
       [ VideoDecodeAcceleration bzip2 ]
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
diff --git a/nixpkgs/pkgs/development/libraries/opencv/default.nix b/nixpkgs/pkgs/development/libraries/opencv/default.nix
index 2575f6bb45d5..005257780e40 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/default.nix
@@ -6,7 +6,7 @@
 , enablePNG ? true, libpng
 , enableTIFF ? true, libtiff
 , enableEXR ? (!stdenv.isDarwin), openexr, ilmbase
-, enableFfmpeg ? false, ffmpeg_3
+, enableFfmpeg ? false, ffmpeg
 , enableGStreamer ? false, gst_all_1
 , enableEigen ? true, eigen
 , Cocoa, QTKit
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional enablePNG libpng
     ++ lib.optional enableTIFF libtiff
     ++ lib.optionals enableEXR [ openexr ilmbase ]
-    ++ lib.optional enableFfmpeg ffmpeg_3
+    ++ lib.optional enableFfmpeg ffmpeg
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
     ++ lib.optional enableEigen eigen
     ++ lib.optionals stdenv.isDarwin [ Cocoa QTKit ]
diff --git a/nixpkgs/pkgs/development/libraries/openexr/default.nix b/nixpkgs/pkgs/development/libraries/openexr/default.nix
index 4e04de30d654..dc8004d8f481 100644
--- a/nixpkgs/pkgs/development/libraries/openexr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openexr/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, buildPackages
 , fetchFromGitHub
 , zlib
 , ilmbase
diff --git a/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix b/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix
index 1e3ee9896447..47b2f6395478 100644
--- a/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openexrid-unstable/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, unzip, re2, openfx, zlib, ilmbase, libGLU, libGL, openexr }:
+{ lib, stdenv, fetchFromGitHub, re2, openfx, zlib, ilmbase, libGLU, libGL, openexr }:
 
 stdenv.mkDerivation {
   pname = "openexrid-unstable";
@@ -25,7 +25,6 @@ stdenv.mkDerivation {
                        -I${openfx.dev}/include/OpenFX
                       '';
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [ re2 openfx zlib ilmbase libGLU libGL openexr ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/openfx/default.nix b/nixpkgs/pkgs/development/libraries/openfx/default.nix
index a26e97798aef..201bf16ad647 100644
--- a/nixpkgs/pkgs/development/libraries/openfx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openfx/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, unzip }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation {
   pname = "openfx";
@@ -11,8 +11,6 @@ stdenv.mkDerivation {
     sha256 = "0k9ggzr6bisn77mipjfvawg3mv4bz50b63v8f7w1jhldi1sfy548";
   };
 
-  nativeBuildInputs = [ unzip ];
-
   outputs = [ "dev" "out" ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix b/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix
index 61ffdcbb5cac..6547c321db70 100644
--- a/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "openimagedenoise";
-  version = "1.3.0";
+  version = "1.4.0";
 
   # The release tarballs include pretrained weights, which would otherwise need to be fetched with git-lfs
   src = fetchzip {
     url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${version}/oidn-${version}.src.tar.gz";
-    sha256 = "sha256-ls0F2D5pC+wqhQn1Zh8m8Q/KoK7rAkhKatTY9k+letQ=";
+    sha256 = "sha256-UsiZT3ufRVo1BQ/md/A3CXpUfMPrJR1DhZg9hrjOG2A=";
   };
 
   nativeBuildInputs = [ cmake python3 ispc ];
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.leshainc ];
     platforms = platforms.unix;
+    changelog = "https://github.com/OpenImageDenoise/oidn/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/openldap/default.nix b/nixpkgs/pkgs/development/libraries/openldap/default.nix
index 39831a3baf08..f9e2b3c0b3fc 100644
--- a/nixpkgs/pkgs/development/libraries/openldap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openldap/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openssl, db, groff, libtool
+{ lib, stdenv, fetchurl, openssl, db, groff, libtool, libsodium
 , withCyrusSasl ? true
 , cyrus_sasl
 }:
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ groff ];
 
-  buildInputs = [ openssl cyrus_sasl db libtool ];
+  buildInputs = [ openssl cyrus_sasl db libsodium libtool ];
 
   # Disable install stripping as it breaks cross-compiling.
   # We strip binaries anyway in fixupPhase.
@@ -30,6 +30,10 @@ stdenv.mkDerivation rec {
     "CC=${stdenv.cc.targetPrefix}cc"
   ];
 
+  preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '';
+
   configureFlags = [
     "--enable-overlays"
     "--disable-dependency-tracking"   # speeds up one-time build
@@ -46,6 +50,7 @@ stdenv.mkDerivation rec {
   postBuild = ''
     make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/sha2
     make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/pbkdf2
+    make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/argon2
   '';
 
   doCheck = false; # needs a running LDAP server
@@ -54,6 +59,9 @@ stdenv.mkDerivation rec {
     "sysconfdir=$(out)/etc"
     "localstatedir=$(out)/var"
     "moduledir=$(out)/lib/modules"
+    # The argon2 module hardcodes /usr/bin/install as the path for the
+    # `install` binary, which is overridden here.
+    "INSTALL=install"
   ];
 
   # 1. Libraries left in the build location confuse `patchelf --shrink-rpath`
@@ -76,6 +84,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     make $installFlags install -C contrib/slapd-modules/passwd/sha2
     make $installFlags install -C contrib/slapd-modules/passwd/pbkdf2
+    make $installFlags install-lib -C contrib/slapd-modules/passwd/argon2
     chmod +x "$out"/lib/*.{so,dylib}
   '';
 
diff --git a/nixpkgs/pkgs/development/libraries/openmpi/default.nix b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
index 46b2748cad98..2df08426368d 100644
--- a/nixpkgs/pkgs/development/libraries/openmpi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, gfortran, perl, libnl
+{ lib, stdenv, fetchurl, gfortran, perl, libnl
 , rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin
 , libpsm2, libfabric, pmix, ucx
 
@@ -18,7 +18,7 @@
 assert !cudaSupport || cudatoolkit != null;
 
 let
-  version = "4.1.0";
+  version = "4.1.1";
 
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = with lib.versions; fetchurl {
     url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-c4Zvt3CQgZtqjIXLhTljjTfWh3RVglt04onWR6Of1bU=";
+    sha256 = "1nkwq123vvmggcay48snm9qqmrh0bdzpln0l1jnp26niidvplkz2";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
index da7e9c755a03..6b446882ba13 100644
--- a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
@@ -11,7 +11,7 @@
   curlSupport ? true, curl,
   colladaSupport ? false, opencollada,
   opencascadeSupport ? false, opencascade,
-  ffmpegSupport ? false, ffmpeg_3,
+  ffmpegSupport ? false, ffmpeg,
   nvttSupport ? false, nvidia-texture-tools,
   freetypeSupport ? true, freetype,
   svgSupport ? false, librsvg,
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional curlSupport curl
     ++ lib.optional colladaSupport opencollada
     ++ lib.optional opencascadeSupport opencascade
-    ++ lib.optional ffmpegSupport ffmpeg_3
+    ++ lib.optional ffmpegSupport ffmpeg
     ++ lib.optional nvttSupport nvidia-texture-tools
     ++ lib.optional freetypeSupport freetype
     ++ lib.optional svgSupport librsvg
diff --git a/nixpkgs/pkgs/development/libraries/openslide/default.nix b/nixpkgs/pkgs/development/libraries/openslide/default.nix
new file mode 100644
index 000000000000..71c2017f9e5a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openslide/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook
+, pkg-config, cairo, glib, gdk-pixbuf, libjpeg
+, libpng, libtiff, libxml2, openjpeg, sqlite, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openslide";
+  version = "3.4.1";
+
+  src = fetchFromGitHub {
+    owner = "openslide";
+    repo = "openslide";
+    rev = "v${version}";
+    sha256 = "1g4hhjr4cbx754cwi9wl84k33bkg232w8ajic7aqhzm8x182hszp";
+  };
+
+  buildInputs = [ cairo glib gdk-pixbuf libjpeg libpng libtiff libxml2 openjpeg sqlite zlib ];
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  meta = with lib; {
+    homepage = "https://openslide.org";
+    description = "A C library that provides a simple interface to read whole-slide images.";
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ lromor ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/openssl/default.nix b/nixpkgs/pkgs/development/libraries/openssl/default.nix
index f6d45f66b1af..2a586f9e9efc 100644
--- a/nixpkgs/pkgs/development/libraries/openssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openssl/default.nix
@@ -6,7 +6,7 @@
 # Used to avoid cross compiling perl, for example, in darwin bootstrap tools.
 # This will cause c_rehash to refer to perl via the environment, but otherwise
 # will produce a perfectly functional openssl binary and library.
-, withPerl ? true
+, withPerl ? stdenv.hostPlatform == stdenv.buildPlatform
 }:
 
 assert (
@@ -42,8 +42,10 @@ let
         substituteInPlace "$a" \
           --replace /bin/rm rm
       done
-    '' + optionalString (versionAtLeast version "1.1.1") ''
-      substituteInPlace config --replace '/usr/bin/env' '${coreutils}/bin/env'
+    ''
+    # config is a configure script which is not installed.
+    + optionalString (versionAtLeast version "1.1.1") ''
+      substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env'
     '' + optionalString (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isMusl) ''
       substituteInPlace crypto/async/arch/async_posix.h \
         --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \
@@ -67,6 +69,7 @@ let
         armv6l-linux = "./Configure linux-armv4 -march=armv6";
         armv7l-linux = "./Configure linux-armv4 -march=armv7-a";
         x86_64-darwin  = "./Configure darwin64-x86_64-cc";
+        aarch64-darwin = "./Configure darwin64-arm64-cc";
         x86_64-linux = "./Configure linux-x86_64";
         x86_64-solaris = "./Configure solaris64-x86_64-gcc";
       }.${stdenv.hostPlatform.system} or (
@@ -123,8 +126,6 @@ let
       if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
           rm "$out/lib/"*.a
       fi
-
-      mkdir -p $bin
     '' + lib.optionalString (!stdenv.hostPlatform.isWindows)
       # Fix bin/c_rehash's perl interpreter line
       #
@@ -138,9 +139,9 @@ let
       # "#!/usr/bin/env perl"
     ''
       substituteInPlace $out/bin/c_rehash --replace ${buildPackages.perl}/bin/perl "/usr/bin/env perl"
-    '' +
-    ''
-      mv $out/bin $bin/
+    '' + ''
+      mkdir -p $bin
+      mv $out/bin $bin/bin
 
       mkdir $dev
       mv $out/include $dev/
diff --git a/nixpkgs/pkgs/development/libraries/openvdb/default.nix b/nixpkgs/pkgs/development/libraries/openvdb/default.nix
index b5317ce9aae8..655d664d8fa6 100644
--- a/nixpkgs/pkgs/development/libraries/openvdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openvdb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, unzip, openexr, boost, jemalloc, c-blosc, ilmbase, tbb }:
+{ lib, stdenv, fetchFromGitHub, openexr, boost, jemalloc, c-blosc, ilmbase, tbb }:
 
 stdenv.mkDerivation rec
 {
@@ -14,7 +14,6 @@ stdenv.mkDerivation rec
 
   outputs = [ "out" ];
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [ openexr boost tbb jemalloc c-blosc ilmbase ];
 
   setSourceRoot = ''
diff --git a/nixpkgs/pkgs/development/libraries/openvino/default.nix b/nixpkgs/pkgs/development/libraries/openvino/default.nix
index a083c06a334f..b4e487887999 100644
--- a/nixpkgs/pkgs/development/libraries/openvino/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openvino/default.nix
@@ -83,13 +83,13 @@ stdenv.mkDerivation rec {
     cmake
     autoPatchelfHook
     addOpenGLRunpath
+    unzip
   ];
 
   buildInputs = [
     git
     protobuf
     opencv
-    unzip
     python
     tbb
     shellcheck
diff --git a/nixpkgs/pkgs/development/libraries/oracle-instantclient/default.nix b/nixpkgs/pkgs/development/libraries/oracle-instantclient/default.nix
index c6efc901e8ae..df7ce6fd4b13 100644
--- a/nixpkgs/pkgs/development/libraries/oracle-instantclient/default.nix
+++ b/nixpkgs/pkgs/development/libraries/oracle-instantclient/default.nix
@@ -123,7 +123,7 @@ in stdenv.mkDerivation {
     '';
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    maintainers = with maintainers; [ pesterhazy flokli ];
+    maintainers = with maintainers; [ flokli ];
     hydraPlatforms = [];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix b/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix
index 9ba581e3a401..79bc2421dc99 100644
--- a/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix
+++ b/nixpkgs/pkgs/development/libraries/osm-gps-map/default.nix
@@ -1,4 +1,4 @@
-{ cairo, fetchzip, glib, gnome3, gtk3, gobject-introspection, pkg-config, lib, stdenv }:
+{ cairo, fetchzip, glib, gnome, gtk3, gobject-introspection, pkg-config, lib, stdenv }:
 
 stdenv.mkDerivation rec {
   pname = "osm-gps-map";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cairo glib gobject-introspection
-    gnome3.gnome-common gtk3 gnome3.libsoup
+    gnome.gnome-common gtk3 gnome.libsoup
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/pango/default.nix b/nixpkgs/pkgs/development/libraries/pango/default.nix
index 0369cedebf4c..f4dba00d3518 100644
--- a/nixpkgs/pkgs/development/libraries/pango/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pango/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , cairo
 , harfbuzz
@@ -10,7 +9,7 @@
 , gobject-introspection
 , darwin
 , fribidi
-, gnome3
+, gnome
 , gi-docgen
 , makeFontsConf
 , freefont_ttf
@@ -22,23 +21,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pango";
-  version = "1.48.3";
+  version = "1.48.4";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ijbkcs6217ygzphlpi0vajxkccifdbsl0jdjpy8wz11h9f19sin";
+    sha256 = "0ym3cvajy2asapj8xbhfpy05rak79afrhi32hiss0w900vxi72a1";
   };
 
-  patches = [
-    # Install developer documentation.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/pango/commit/a2f35860115e8cd44f07d5158e2df059e8163a08.patch";
-      sha256 = "hN7O4DBk4A+TmBl6DGx6RHni5qRBg6akdjv9o3iWKDQ=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson ninja
     glib # for glib-mkenum
@@ -88,8 +79,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/pangolin/default.nix b/nixpkgs/pkgs/development/libraries/pangolin/default.nix
index 0e5d705a1ce6..331284021e3b 100644
--- a/nixpkgs/pkgs/development/libraries/pangolin/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pangolin/default.nix
@@ -1,18 +1,18 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkg-config, doxygen, libGL, glew
-, xorg , ffmpeg_3, python3 , libjpeg, libpng, libtiff, eigen
+, xorg, ffmpeg, libjpeg, libpng, libtiff, eigen
 , Carbon ? null, Cocoa ? null
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "pangolin";
 
-  version = "2017-08-02";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "stevenlovegrove";
     repo = "Pangolin";
-    rev = "f05a8cdc4f0e32cc1664a430f1f85e60e233c407";
-    sha256 = "0pfbaarlsw7f7cmsppm7m13nz0k530wwwyczy2l9k448p3v7x9j0";
+    rev = "v${version}";
+    sha256 = "0abjajxj7lc2yajshimar4w8kf8115prsjnhy83s6jc7cbz63wj8";
   };
 
   nativeBuildInputs = [ cmake pkg-config doxygen ];
@@ -21,8 +21,7 @@ stdenv.mkDerivation {
     libGL
     glew
     xorg.libX11
-    ffmpeg_3
-    python3
+    ffmpeg
     libjpeg
     libpng
     libtiff
diff --git a/nixpkgs/pkgs/development/libraries/pangomm/2.48.nix b/nixpkgs/pkgs/development/libraries/pangomm/2.48.nix
new file mode 100644
index 000000000000..3c25d113d727
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pangomm/2.48.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, lib
+, fetchurl
+, pkg-config
+, meson
+, ninja
+, python3
+, pango
+, glibmm_2_68
+, cairomm_1_16
+, gnome
+, ApplicationServices
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pangomm";
+  version= "2.48.0";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-ng7UdMM/jCACyp4rYcoNHz2OQJ4J6Z9NjBnur8z1W3g=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    python3
+  ] ++ lib.optional stdenv.isDarwin [
+    ApplicationServices
+  ];
+
+  propagatedBuildInputs = [
+    pango
+    glibmm_2_68
+    cairomm_1_16
+  ];
+
+  doCheck = true;
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      attrPath = "${pname}_2_48";
+      versionPolicy = "odd-unstable";
+    };
+  };
+
+  meta = with lib; {
+    description = "C++ interface to the Pango text rendering library";
+    longDescription = ''
+      Pango is a library for laying out and rendering of text, with an
+      emphasis on internationalization.  Pango can be used anywhere
+      that text layout is needed, though most of the work on Pango so
+      far has been done in the context of the GTK widget toolkit.
+      Pango forms the core of text and font handling for GTK.
+    '';
+    homepage = "https://www.pango.org/";
+    license = licenses.lgpl21Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ lovek323 raskin ]);
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/pangomm/default.nix b/nixpkgs/pkgs/development/libraries/pangomm/default.nix
index 3eb5f39c3825..afb79c7eafed 100644
--- a/nixpkgs/pkgs/development/libraries/pangomm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pangomm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, pango, glibmm, cairomm, gnome3
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, pango, glibmm, cairomm, gnome
 , ApplicationServices }:
 
 stdenv.mkDerivation rec {
@@ -20,8 +20,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix b/nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix
index 1777b0856f80..5f09860cb3a4 100644
--- a/nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, git, cmake, catch2, asio, udev, IOKit }:
+{ lib, stdenv, fetchFromGitHub
+, cmake, git
+, asio, catch2, spdlog
+, IOKit, udev
+}:
 
 stdenv.mkDerivation rec {
   pname = "pc-ble-driver";
-  version = "4.1.1";
+  version = "4.1.4";
 
   src = fetchFromGitHub {
     owner = "NordicSemiconductor";
     repo = "pc-ble-driver";
     rev = "v${version}";
-    sha256 = "1llhkpbdbsq9d91m873vc96bprkgpb5wsm5fgs1qhzdikdhg077q";
+    sha256 = "1609x17sbfi668jfwyvnfk9z29w6cgzvgv67xcpvpx5jv0czpcdj";
   };
 
   cmakeFlags = [
@@ -16,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake git ];
-  buildInputs = [ catch2 asio ];
+  buildInputs = [ asio catch2 spdlog ];
 
   propagatedBuildInputs = [
 
diff --git a/nixpkgs/pkgs/development/libraries/pcaudiolib/default.nix b/nixpkgs/pkgs/development/libraries/pcaudiolib/default.nix
index ebdacdfc9bdb..2c7dd440da82 100644
--- a/nixpkgs/pkgs/development/libraries/pcaudiolib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcaudiolib/default.nix
@@ -1,6 +1,6 @@
 { config, stdenv, lib, fetchFromGitHub
 , autoconf, automake, which, libtool, pkg-config
-, portaudio, alsaLib
+, portaudio, alsa-lib
 , pulseaudioSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoconf automake which libtool pkg-config ];
 
   buildInputs = [ portaudio ]
-    ++ lib.optionals stdenv.isLinux [ alsaLib ]
+    ++ lib.optionals stdenv.isLinux [ alsa-lib ]
     ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
 
   preConfigure = "./autogen.sh";
diff --git a/nixpkgs/pkgs/development/libraries/pcl/default.nix b/nixpkgs/pkgs/development/libraries/pcl/default.nix
index b8cdff1f48c8..2b2763b5a05d 100644
--- a/nixpkgs/pkgs/development/libraries/pcl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcl/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , wrapQtAppsHook
 , cmake
 , qhull
@@ -30,6 +31,15 @@ stdenv.mkDerivation rec {
     sha256 = "1cli2rxqsk6nxp36p5mgvvahjz8hm4fb68yi8cf9nw4ygbcvcwb1";
   };
 
+  patches = [
+    # Support newer QHull versions (2020.2)
+    # Backport of https://github.com/PointCloudLibrary/pcl/pull/4540
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/conda-forge/pcl-feedstock/0b1eff402994a3fb891b44659c261e7e85c8d915/recipe/4540.patch";
+      sha256 = "0hhvw6ajigzrarn95aicni73zd3sdgnb8rc3wgjrrg19xs84z138";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook ];
   buildInputs = [
     qhull
diff --git a/nixpkgs/pkgs/development/libraries/pcmsolver/default.nix b/nixpkgs/pkgs/development/libraries/pcmsolver/default.nix
new file mode 100644
index 000000000000..8cd4b318cc5a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pcmsolver/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, cmake, perl, gfortran, python
+, boost, eigen, zlib
+} :
+
+stdenv.mkDerivation rec {
+  pname = "pcmsolver";
+  version = "1.3.0";
+
+  src = fetchFromGitHub  {
+    owner = "PCMSolver";
+    repo = pname;
+    rev = "v${version}";
+    sha256= "0jrxr8z21hjy7ik999hna9rdqy221kbkl3qkb06xw7g80rc9x9yr";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    gfortran
+    perl
+    python
+  ];
+
+  buildInputs = [
+    boost
+    eigen
+    zlib
+  ];
+
+  cmakeFlags = [ "-DENABLE_OPENMP=ON" ];
+
+  hardeningDisable = [ "format" ];
+
+  # Requires files, that are not installed.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "An API for the Polarizable Continuum Model";
+    homepage = "https://pcmsolver.readthedocs.io/en/stable/";
+    license = licenses.lgpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/pcre/default.nix b/nixpkgs/pkgs/development/libraries/pcre/default.nix
index 8d9b9ec02599..c91d4e2bd0c2 100644
--- a/nixpkgs/pkgs/development/libraries/pcre/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcre/default.nix
@@ -23,7 +23,8 @@ in stdenv.mkDerivation {
 
   outputs = [ "bin" "dev" "out" "doc" "man" ];
 
-  configureFlags = optional (!stdenv.hostPlatform.isRiscV) "--enable-jit" ++ [
+  # Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51
+  configureFlags = optional (!stdenv.hostPlatform.isRiscV && !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit" ++ [
     "--enable-unicode-properties"
     "--disable-cpp"
   ]
diff --git a/nixpkgs/pkgs/development/libraries/pcre2/default.nix b/nixpkgs/pkgs/development/libraries/pcre2/default.nix
index 6bf6cff98bbe..188fa9b16b7e 100644
--- a/nixpkgs/pkgs/development/libraries/pcre2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcre2/default.nix
@@ -8,10 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "0p3699msps07p40g9426lvxa3b41rg7k2fn7qxl2jm0kh4kkkvx9";
   };
 
+  # Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51
   configureFlags = [
     "--enable-pcre2-16"
     "--enable-pcre2-32"
-  ] ++ lib.optional (!stdenv.hostPlatform.isRiscV) "--enable-jit";
+  ] ++ lib.optional (!stdenv.hostPlatform.isRiscV && !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit";
 
   outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/physfs/default.nix b/nixpkgs/pkgs/development/libraries/physfs/default.nix
index 3eb4077d9852..faa338c94fcf 100644
--- a/nixpkgs/pkgs/development/libraries/physfs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physfs/default.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, doxygen, darwin
-, zlib }:
+{ lib, stdenv, fetchurl, cmake, doxygen, zlib, Foundation, Carbon }:
 
 let
   generic = version: sha256:
@@ -15,7 +14,7 @@ let
     nativeBuildInputs = [ cmake doxygen ];
 
     buildInputs = [ zlib ]
-      ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Foundation ];
+      ++ lib.optionals stdenv.isDarwin [ Foundation Carbon ];
 
     patchPhase = ''
       sed s,-Werror,, -i CMakeLists.txt
diff --git a/nixpkgs/pkgs/development/libraries/physics/apfel/default.nix b/nixpkgs/pkgs/development/libraries/physics/apfel/default.nix
index e3fd0a26a7fd..b0fff0c92ba5 100644
--- a/nixpkgs/pkgs/development/libraries/physics/apfel/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/apfel/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "apfel";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = fetchFromGitHub {
     owner = "scarrazza";
     repo = "apfel";
     rev = version;
-    sha256 = "13n5ygbqvskg3qq5n4sff1nbii0li0zf1vqissai7x0hynxgy7p6";
+    sha256 = "sha256-szEtSC/NouYlHSjVoX9Hoh7yQ0W82rVccYEF1L2tXoU=";
   };
 
   buildInputs = [ gfortran lhapdf python2 zlib ];
diff --git a/nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix b/nixpkgs/pkgs/development/libraries/physics/fastnlo_toolkit/default.nix
index 87e2ae9631c5..d6cbe7cc4dd0 100644
--- a/nixpkgs/pkgs/development/libraries/physics/fastnlo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/fastnlo_toolkit/default.nix
@@ -1,38 +1,44 @@
 { lib
 , stdenv
 , fetchurl
+, autoreconfHook
 , boost
-, fastjet
 , gfortran
 , lhapdf
-, python2
-, root
+, ncurses
+, python
+, swig
 , yoda
 , zlib
+, withPython ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "fastnlo_toolkit";
-  version = "2.3.1pre-2402";
+  version = "2.3.1pre-2411";
 
   src = fetchurl {
-    url = "https://fastnlo.hepforge.org/code/v23/${pname}-${version}.tar.gz";
-    sha256 = "1h41xnqcz401x3zbs8i2dsb4xlhbv8i5ps0561p6y7gcyridgcbl";
+    urls = [
+      "https://fastnlo.hepforge.org/code/v23/${pname}-${version}.tar.gz"
+      "https://sid.ethz.ch/debian/fastnlo/${pname}-${version}.tar.gz"
+    ];
+    sha256 = "0fm9k732pmi3prbicj2yaq815nmcjll95fagjqzf542ng3swpqnb";
   };
 
+  nativeBuildInputs = lib.optional withPython autoreconfHook;
+
   buildInputs = [
     boost
-    fastjet
     gfortran
     gfortran.cc.lib
     lhapdf
-    python2
-    root
     yoda
-  ];
+  ] ++ lib.optional withPython python
+    ++ lib.optional (withPython && python.isPy3k) ncurses;
+
   propagatedBuildInputs = [
     zlib
-  ];
+  ] ++ lib.optional withPython swig;
 
   preConfigure = ''
     substituteInPlace ./fastnlotoolkit/Makefile.in \
@@ -41,7 +47,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-yoda=${yoda}"
-  ];
+  ] ++ lib.optional withPython "--enable-pyext";
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix b/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix
index 19e9f9d9ec86..143f72541b4d 100644
--- a/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python2, makeWrapper }:
+{ lib, stdenv, fetchurl, python, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "lhapdf";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ python2 ];
+  buildInputs = [ python ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix b/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix
index 48fc95e788a5..8a58cd638b9d 100644
--- a/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix
@@ -2,14 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pythia";
-  version = "8.304";
+  version = "8.305";
 
   src = fetchurl {
     url = "http://home.thep.lu.se/~torbjorn/pythia8/pythia${builtins.replaceStrings ["."] [""] version}.tgz";
-    sha256 = "18frx7xyvxnz57fxjncjyjzsk169h0jz6hxzjfpmwm3dzcc712fk";
+    sha256 = "03rpy2bmx67217fh1spfn36x9xrk0igcj56byki77lgj0y5mz21a";
   };
 
-  buildInputs = [ boost fastjet hepmc zlib rsync lhapdf ];
+  nativeBuildInputs = [ rsync ];
+  buildInputs = [ boost fastjet hepmc zlib lhapdf ];
 
   preConfigure = ''
     patchShebangs ./configure
@@ -26,11 +27,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with lib; {
     description = "A program for the generation of high-energy physics events";
-    license     = lib.licenses.gpl2;
-    homepage    = "http://home.thep.lu.se/~torbjorn/Pythia.html";
-    platforms   = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ veprbl ];
+    license = licenses.gpl2Only;
+    homepage = "http://home.thep.lu.se/~torbjorn/Pythia.html";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
index 3b9057ad31a5..c5a83f782f46 100644
--- a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python, root, makeWrapper, zlib, withRootSupport ? false }:
+{ lib, stdenv, fetchurl, fetchpatch, python, root, makeWrapper, zlib, withRootSupport ? false }:
 
 stdenv.mkDerivation rec {
   pname = "yoda";
@@ -9,6 +9,24 @@ stdenv.mkDerivation rec {
     sha256 = "1x7xi6w7lb92x8202kbaxgqg1sly534wana4f38l3gpbzw9dwmcs";
   };
 
+  patches = [
+    # fix a minor bug
+    # https://gitlab.com/hepcedar/yoda/-/merge_requests/38
+    (fetchpatch {
+      name = "yoda-fix-fuzzy-compare-bin2d.patch";
+      url = "https://gitlab.com/hepcedar/yoda/-/commit/a2999d78cb3d9ed874f367bad375dc39a1a11148.diff";
+      sha256 = "sha256-BsaVm+4VtCvRoEuN4r6A4bj9XwgMe75UesKzN+b56Qw=";
+    })
+    # fix a regression
+    # https://gitlab.com/hepcedar/yoda/-/merge_requests/40
+    (fetchpatch {
+      name = "yoda-fix-for-yodagz.patch";
+      url = "https://gitlab.com/hepcedar/yoda/-/commit/3338ba5a7466599ac6969e4ae462f133d6cf4fd8.diff";
+      sha256 = "sha256-MZTOIt468bdPCS7UVfr5hQZUsVy3TpY/TjRrNySIL70=";
+      excludes = [ "ChangeLog" ];
+    })
+  ];
+
   nativeBuildInputs = with python.pkgs; [ cython makeWrapper ];
   buildInputs = [ python ]
     ++ (with python.pkgs; [ numpy matplotlib ])
diff --git a/nixpkgs/pkgs/development/libraries/pico-sdk/default.nix b/nixpkgs/pkgs/development/libraries/pico-sdk/default.nix
new file mode 100644
index 000000000000..3db4ff336ffb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pico-sdk/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "pico-sdk";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "raspberrypi";
+    repo = pname;
+    rev = version;
+    sha256 = "00z160f7ypws5pzp1ql7xrs3gmjcbw6gywnnq2fiwl47940balns";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  # SDK contains libraries and build-system to develop projects for RP2040 chip
+  # We only need to compile pioasm binary
+  sourceRoot = "source/tools/pioasm";
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/lib/pico-sdk
+    cp -a ../../../* $out/lib/pico-sdk/
+    chmod 755 $out/lib/pico-sdk/tools/pioasm/build/pioasm
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/raspberrypi/picotool";
+    description = "SDK provides the headers, libraries and build system necessary to write programs for the RP2040-based devices";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ musfay ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/0.2.nix b/nixpkgs/pkgs/development/libraries/pipewire/0.2.nix
index 1e686b980043..276ad6b8c492 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/0.2.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0.2.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, doxygen, graphviz, valgrind
-, glib, dbus, gst_all_1, alsaLib, ffmpeg_4, libjack2, udev, libva, xorg
+, glib, dbus, gst_all_1, alsa-lib, ffmpeg_4, libjack2, udev, libva, xorg
 , sbc, SDL2, makeFontsConf
 }:
 
@@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
   ];
   buildInputs = [
     glib dbus gst_all_1.gst-plugins-base gst_all_1.gstreamer
-    alsaLib ffmpeg_4 libjack2 udev libva xorg.libX11 sbc SDL2
+    alsa-lib ffmpeg_4 libjack2 udev libva xorg.libX11 sbc SDL2
   ];
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch b/nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
index c657d12f7d0c..fab89c4ffd93 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
@@ -1,13 +1,13 @@
 diff --git a/meson.build b/meson.build
-index ffee41b4..f3e4ec74 100644
+index 99a4b2d1..d4a4cda7 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -53,7 +53,7 @@ endif
+@@ -55,7 +55,7 @@ endif
  
- spa_plugindir = join_paths(pipewire_libdir, spa_name)
+ spa_plugindir = pipewire_libdir / spa_name
  
--alsadatadir = join_paths(pipewire_datadir, 'alsa-card-profile', 'mixer')
-+alsadatadir = join_paths(pipewire_libdir, '..', 'share', 'alsa-card-profile', 'mixer')
+-alsadatadir = pipewire_datadir / 'alsa-card-profile' / 'mixer'
++alsadatadir = pipewire_libdir / '..' / 'share' / 'alsa-card-profile' / 'mixer'
  
- pipewire_headers_dir = join_paths(pipewire_name, 'pipewire')
+ pipewire_headers_dir = pipewire_name / 'pipewire'
  
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch b/nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
index 4a6b21dd4312..fd7d031ee0fe 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
@@ -1,8 +1,8 @@
 diff --git a/meson_options.txt b/meson_options.txt
-index ce364d93..a6c8af72 100644
+index 66791f3a..93b5e2a9 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -152,6 +152,9 @@ option('udev',
+@@ -172,6 +172,9 @@ option('udev',
  option('udevrulesdir',
         type : 'string',
         description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
@@ -13,15 +13,15 @@ index ce364d93..a6c8af72 100644
         type : 'string',
         description : 'Directory for user systemd units (defaults to /usr/lib/systemd/user)')
 diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
-index 0a5e5042..4a70b0b0 100644
+index aa30a86f..1edebb2d 100644
 --- a/src/daemon/systemd/user/meson.build
 +++ b/src/daemon/systemd/user/meson.build
 @@ -9,7 +9,7 @@ install_data(
  
  systemd_config = configuration_data()
- systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
--systemd_config.set('PW_PULSE_BINARY', join_paths(pipewire_bindir, 'pipewire-pulse'))
-+systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
- systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session'))
+ systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
+-systemd_config.set('PW_PULSE_BINARY', pipewire_bindir / 'pipewire-pulse')
++systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse')
+ systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session')
  
  configure_file(input : 'pipewire.service.in',
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch b/nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
index a4fb8b41e7a1..be6683c3e7b7 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
@@ -1,8 +1,8 @@
 diff --git a/meson_options.txt b/meson_options.txt
-index e2a1e028..310029f2 100644
+index 93b5e2a9..1b915ac3 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -10,6 +10,9 @@ option('media-session',
+@@ -13,6 +13,9 @@ option('media-session',
         description: 'Build and install pipewire-media-session',
         type: 'feature',
         value: 'auto')
@@ -13,15 +13,15 @@ index e2a1e028..310029f2 100644
         description: 'Build manpages',
         type: 'feature',
 diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
-index 5c4d1af0..7296220f 100644
+index 1edebb2d..251270eb 100644
 --- a/src/daemon/systemd/user/meson.build
 +++ b/src/daemon/systemd/user/meson.build
 @@ -10,7 +10,7 @@ install_data(
  systemd_config = configuration_data()
- systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
- systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
--systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session'))
-+systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(get_option('media-session-prefix'), 'bin/pipewire-media-session'))
-
+ systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
+ systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse')
+-systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session')
++systemd_config.set('PW_MEDIA_SESSION_BINARY', get_option('media-session-prefix') / 'bin/pipewire-media-session')
+ 
  configure_file(input : 'pipewire.service.in',
                 output : 'pipewire.service',
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch b/nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
index cb695fa398ca..926de3062546 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
@@ -1,23 +1,23 @@
 diff --git a/meson.build b/meson.build
-index 97d4d939..b17358e5 100644
+index d4a4cda7..a27569bd 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd'
-
+ 
  alsa_dep = dependency('alsa', version : '>=1.1.7', required: get_option('pipewire-alsa'))
-
--installed_tests_metadir = join_paths(pipewire_datadir, 'installed-tests', pipewire_name)
--installed_tests_execdir = join_paths(pipewire_libexecdir, 'installed-tests', pipewire_name)
-+installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', pipewire_name)
-+installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', pipewire_name)
+ 
+-installed_tests_metadir = pipewire_datadir / 'installed-tests' / pipewire_name
+-installed_tests_execdir = pipewire_libexecdir / 'installed-tests' / pipewire_name
++installed_tests_metadir = get_option('installed_test_prefix') / 'share' / 'installed-tests' / pipewire_name
++installed_tests_execdir = get_option('installed_test_prefix') / 'libexec' / 'installed-tests' / pipewire_name
  installed_tests_enabled = not get_option('installed_tests').disabled()
  installed_tests_template = files('template.test.in')
-
+ 
 diff --git a/meson_options.txt b/meson_options.txt
-index fba0d647..8c6106cd 100644
+index 1b915ac3..85beb86a 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -26,6 +26,9 @@ option('installed_tests',
+@@ -29,6 +29,9 @@ option('installed_tests',
         description: 'Install manual and automated test executables',
         type: 'feature',
         value: 'disabled')
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch b/nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
index ad1ae93684b1..b92e2818ea07 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
+++ b/nixpkgs/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
@@ -1,30 +1,30 @@
 diff --git a/meson.build b/meson.build
-index 0073eb13..0ffc6863 100644
+index a27569bd..fcf18344 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -34,7 +34,10 @@ pipewire_libexecdir = join_paths(prefix, get_option('libexecdir'))
- pipewire_localedir = join_paths(prefix, get_option('localedir'))
- pipewire_sysconfdir = join_paths(prefix, get_option('sysconfdir'))
+@@ -36,7 +36,10 @@ pipewire_libexecdir = prefix / get_option('libexecdir')
+ pipewire_localedir = prefix / get_option('localedir')
+ pipewire_sysconfdir = prefix / get_option('sysconfdir')
  
--pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire')
+-pipewire_configdir = pipewire_sysconfdir / 'pipewire'
 +pipewire_configdir = get_option('pipewire_config_dir')
 +if pipewire_configdir == ''
-+  pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire')
++  pipewire_configdir = pipewire_sysconfdir / 'pipewire'
 +endif
- modules_install_dir = join_paths(pipewire_libdir, pipewire_name)
+ modules_install_dir = pipewire_libdir / pipewire_name
  
  if host_machine.system() == 'linux'
 diff --git a/meson_options.txt b/meson_options.txt
-index 4b9e46b8..8c301459 100644
+index 85beb86a..372e8faa 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -56,6 +56,9 @@ option('pipewire-pulseaudio',
- option('libpulse-path',
-        description: 'Where to install the libpulse.so library',
+@@ -67,6 +67,9 @@ option('jack-devel',
+ option('libjack-path',
+        description: 'Where to install the libjack.so library',
         type: 'string')
 +option('pipewire_config_dir',
 +       type : 'string',
 +       description : 'Directory for pipewire configuration (defaults to /etc/pipewire)')
  option('spa-plugins',
         description: 'Enable spa plugins integration',
-        type: 'boolean',
+        type: 'feature',
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index 47a85c36c23a..40f4e328c317 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -11,7 +11,7 @@
 , valgrind
 , glib
 , dbus
-, alsaLib
+, alsa-lib
 , libjack2
 , udev
 , libva
@@ -42,7 +42,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "0.3.25";
+    version = "0.3.27";
 
     outputs = [
       "out"
@@ -60,7 +60,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      hash = "sha256:EbXWcf6QLtbvm6/eXBI+PF2sTw2opYfmc+H/SMDEH1U=";
+      sha256 = "sha256-GfcMODQWtcahBvXnZ98/PKIm4pkqLaz09oOy7zQR4IA=";
     };
 
     patches = [
@@ -85,7 +85,7 @@ let
     ];
 
     buildInputs = [
-      alsaLib
+      alsa-lib
       dbus
       glib
       libjack2
@@ -146,29 +146,31 @@ let
       moveToOutput "bin/pipewire-pulse" "$pulse"
     '';
 
-    passthru.tests = {
-      installedTests = nixosTests.installed-tests.pipewire;
-
-      # This ensures that all the paths used by the NixOS module are found.
-      test-paths = callPackage ./test-paths.nix {
-        paths-out = [
-          "share/alsa/alsa.conf.d/50-pipewire.conf"
-          "nix-support/etc/pipewire/client.conf.json"
-          "nix-support/etc/pipewire/client-rt.conf.json"
-          "nix-support/etc/pipewire/jack.conf.json"
-          "nix-support/etc/pipewire/pipewire.conf.json"
-          "nix-support/etc/pipewire/pipewire-pulse.conf.json"
-        ];
-        paths-out-media-session = [
-          "nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
-          "nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
-          "nix-support/etc/pipewire/media-session.d/media-session.conf.json"
-          "nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
-        ];
-        paths-lib = [
-          "lib/alsa-lib/libasound_module_pcm_pipewire.so"
-          "share/alsa-card-profile/mixer"
-        ];
+    passthru = {
+      updateScript = ./update.sh;
+      tests = {
+        installedTests = nixosTests.installed-tests.pipewire;
+
+        # This ensures that all the paths used by the NixOS module are found.
+        test-paths = callPackage ./test-paths.nix {
+          paths-out = [
+            "share/alsa/alsa.conf.d/50-pipewire.conf"
+            "nix-support/etc/pipewire/client.conf.json"
+            "nix-support/etc/pipewire/jack.conf.json"
+            "nix-support/etc/pipewire/pipewire.conf.json"
+            "nix-support/etc/pipewire/pipewire-pulse.conf.json"
+          ];
+          paths-out-media-session = [
+            "nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
+            "nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
+            "nix-support/etc/pipewire/media-session.d/media-session.conf.json"
+            "nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
+          ];
+          paths-lib = [
+            "lib/alsa-lib/libasound_module_pcm_pipewire.so"
+            "share/alsa-card-profile/mixer"
+          ];
+        };
       };
     };
 
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix b/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix
index 11d00e7c2ca1..939b79686e3f 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/test-paths.nix
@@ -1,4 +1,4 @@
-{ lib, runCommand, pipewire, paths-out, paths-lib }:
+{ lib, runCommand, pipewire, paths-out, paths-lib, paths-out-media-session }:
 
 let
   check-path = output: path: ''
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/update.sh b/nixpkgs/pkgs/development/libraries/pipewire/update.sh
new file mode 100755
index 000000000000..6d0088c206cb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pipewire/update.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix-update -i bash
+# shellcheck shell=bash
+
+set -o errexit -o pipefail -o nounset -o errtrace
+shopt -s inherit_errexit
+shopt -s nullglob
+IFS=$'\n'
+
+NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"
+
+cd "$NIXPKGS_ROOT"
+nix-update pipewire
+outputs=$(nix-build . -A pipewire -A pipewire.mediaSession)
+for p in $outputs; do
+    conf_files=$(find "$p/nix-support/etc/pipewire/" -name '*.conf.json')
+    for c in $conf_files; do
+        file_name=$(basename "$c")
+        if [[ ! -e "nixos/modules/services/desktops/pipewire/$file_name" ]]; then
+            echo "New file $file_name found! Add it to the module config and passthru tests!"
+        fi
+        install -m 0644 "$c" "nixos/modules/services/desktops/pipewire/"
+    done
+done
diff --git a/nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix b/nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix
index 2d3a5239d7b7..ea02eb428db1 100644
--- a/nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix
+++ b/nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix
@@ -5,11 +5,11 @@
 
 mkDerivation rec {
   pname = "plasma-wayland-protocols";
-  version = "1.1.1";
+  version = "1.2.1";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-xUkzg9EVFxw0NeqaIbOWaGBjKoRFRP+sj1SJBDalHTg=";
+    url = "mirror://kde/stable/${pname}/${pname}-v${version}.tar.xz";
+    sha256 = "sha256-KHuQkD+afzlMdedcsYdCaGLq9kqS8b5+LvaOmf2Muqo=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules ];
diff --git a/nixpkgs/pkgs/development/libraries/pmdk/default.nix b/nixpkgs/pkgs/development/libraries/pmdk/default.nix
index 01392f232d9c..6e0b6ab6722b 100644
--- a/nixpkgs/pkgs/development/libraries/pmdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pmdk/default.nix
@@ -1,19 +1,19 @@
 { lib, stdenv, fetchFromGitHub
-, autoconf, libndctl, pkg-config
+, autoconf, libndctl, pkg-config, gnum4, pandoc
 }:
 
 stdenv.mkDerivation rec {
   pname = "pmdk";
-  version = "1.7";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner  = "pmem";
     repo   = "pmdk";
     rev    = "refs/tags/${version}";
-    sha256 = "1833sq0f1msaqwn31dn1fp37a6d5zp995i9gkazanydmppi2qy0i";
+    sha256 = "0awmkj6j9y2pbqqmp9ql00s7qa3mnpppa82dfy5324lindq0z8a1";
   };
 
-  nativeBuildInputs = [ autoconf pkg-config ];
+  nativeBuildInputs = [ autoconf pkg-config gnum4 pandoc ];
   buildInputs = [ libndctl ];
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/polkit/default.nix b/nixpkgs/pkgs/development/libraries/polkit/default.nix
index 7e8e95ef1eac..bc7f7e80d9c2 100644
--- a/nixpkgs/pkgs/development/libraries/polkit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/polkit/default.nix
@@ -34,6 +34,13 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.freedesktop.org/polkit/polkit/commit/5dd4e22efd05d55833c4634b56e473812b5acbf2.patch";
       sha256 = "17lv7xj5ksa27iv4zpm4zwd4iy8zbwjj4ximslfq3sasiz9kxhlp";
     })
+    (fetchpatch {
+      # https://www.openwall.com/lists/oss-security/2021/06/03/1
+      # https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/79
+      name = "CVE-2021-3560.patch";
+      url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/a04d13affe0fa53ff618e07aa8f57f4c0e3b9b81.patch";
+      sha256 = "157ddsizgr290jsb8fpafrc37gc1qw5pdvl351vnn3pzhqs7n6f4";
+    })
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
     # Make netgroup support optional (musl does not have it)
     # Upstream MR: https://gitlab.freedesktop.org/polkit/polkit/merge_requests/10
@@ -116,6 +123,6 @@ stdenv.mkDerivation rec {
     description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
     license = licenses.gpl2;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/poppler/default.nix b/nixpkgs/pkgs/development/libraries/poppler/default.nix
index fd2a8ab92cfa..8a5c6e132a71 100644
--- a/nixpkgs/pkgs/development/libraries/poppler/default.nix
+++ b/nixpkgs/pkgs/development/libraries/poppler/default.nix
@@ -1,10 +1,30 @@
-{ stdenv, lib, fetchurl, fetchpatch, cmake, ninja, pkg-config, libiconv, libintl
-, zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg
+{ stdenv
+, lib
+, fetchurl
+, fetchpatch
+, cmake
+, ninja
+, pkg-config
+, libiconv
+, libintl
+, zlib
+, curl
+, cairo
+, freetype
+, fontconfig
+, lcms
+, libjpeg
+, openjpeg
 , withData ? true, poppler_data
 , qt5Support ? false, qtbase ? null
 , introspectionSupport ? false, gobject-introspection ? null
 , utils ? false, nss ? null
-, minimal ? false, suffix ? "glib"
+, minimal ? false
+, suffix ? "glib"
+, inkscape
+, cups-filters
+, texlive
+, scribusUnstable
 }:
 
 let
@@ -12,33 +32,45 @@ let
 in
 stdenv.mkDerivation rec {
   name = "poppler-${suffix}-${version}";
-  version = "21.02.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
+  version = "21.05.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
+
+  outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/poppler-${version}.tar.xz";
-    sha256 = "sha256-XBR1nJmJHm5HKs7W1fD/Haz4XYDNkCbTZcVcZT7feSw=";
+    sha256 = "sha256-2v1Te2gPrRIVvED8U9HzjoRJ18GFvGDVqJ4dJskNvYw=";
   };
 
-  outputs = [ "out" "dev" ];
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+  ];
 
-  buildInputs = [ libiconv libintl ] ++ lib.optional withData poppler_data;
+  buildInputs = [
+    libiconv
+    libintl
+  ] ++ lib.optional withData [
+    poppler_data
+  ];
 
   # TODO: reduce propagation to necessary libs
-  propagatedBuildInputs = with lib;
-    [ zlib freetype fontconfig libjpeg openjpeg ]
-    ++ optionals (!minimal) [ cairo lcms curl ]
-    ++ optional qt5Support qtbase
-    ++ optional utils nss
-    ++ optional introspectionSupport gobject-introspection;
-
-  nativeBuildInputs = [ cmake ninja pkg-config ];
-
-  # Workaround #54606
-  preConfigure = lib.optionalString stdenv.isDarwin ''
-    sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
-  '';
-
-  dontWrapQtApps = true;
+  propagatedBuildInputs = [
+    zlib
+    freetype
+    fontconfig
+    libjpeg
+    openjpeg
+  ] ++ lib.optionals (!minimal) [
+    cairo
+    lcms
+    curl
+    nss
+  ] ++ lib.optionals qt5Support [
+    qtbase
+  ] ++ lib.optionals introspectionSupport [
+    gobject-introspection
+  ];
 
   cmakeFlags = [
     (mkFlag true "UNSTABLE_API_ABI_HEADERS") # previously "XPDF_HEADERS"
@@ -49,6 +81,20 @@ stdenv.mkDerivation rec {
     (mkFlag qt5Support "QT5")
   ];
 
+  dontWrapQtApps = true;
+
+  # Workaround #54606
+  preConfigure = lib.optionalString stdenv.isDarwin ''
+    sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
+  '';
+
+  passthru = {
+    tests = {
+      # These depend on internal poppler code that frequently changes.
+      inherit inkscape cups-filters texlive scribusUnstable;
+    };
+  };
+
   meta = with lib; {
     homepage = "https://poppler.freedesktop.org/";
     description = "A PDF rendering library";
@@ -59,7 +105,7 @@ stdenv.mkDerivation rec {
       installed separately.
     '';
 
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ ttuegel ] ++ teams.freedesktop.members;
   };
diff --git a/nixpkgs/pkgs/development/libraries/portaudio/default.nix b/nixpkgs/pkgs/development/libraries/portaudio/default.nix
index c7de116e879b..efa68146e8d8 100644
--- a/nixpkgs/pkgs/development/libraries/portaudio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/portaudio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, pkg-config, libjack2
+{ lib, stdenv, fetchurl, alsa-lib, pkg-config, libjack2
 , AudioUnit, AudioToolbox, CoreAudio, CoreServices, Carbon }:
 
 stdenv.mkDerivation {
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libjack2 ]
-    ++ lib.optional (!stdenv.isDarwin) alsaLib;
+    ++ lib.optional (!stdenv.isDarwin) alsa-lib;
 
   configureFlags = [ "--disable-mac-universal" "--enable-cxx" ];
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
     make install
   '' + lib.optionalString (!stdenv.isDarwin) ''
     # fixup .pc file to find alsa library
-    sed -i "s|-lasound|-L${alsaLib.out}/lib -lasound|" "$out/lib/pkgconfig/"*.pc
+    sed -i "s|-lasound|-L${alsa-lib.out}/lib -lasound|" "$out/lib/pkgconfig/"*.pc
   '' + lib.optionalString stdenv.isDarwin ''
     cp include/pa_mac_core.h $out/include/pa_mac_core.h
   '';
diff --git a/nixpkgs/pkgs/development/libraries/portmidi/default.nix b/nixpkgs/pkgs/development/libraries/portmidi/default.nix
index e9a868240bb3..0151d461c139 100644
--- a/nixpkgs/pkgs/development/libraries/portmidi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/portmidi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, unzip, cmake, /*jdk,*/ alsaLib }:
+{ lib, stdenv, fetchurl, unzip, cmake, /*jdk,*/ alsa-lib }:
 
 stdenv.mkDerivation rec {
   pname = "portmidi";
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ unzip cmake ];
-  buildInputs = [ alsaLib ];
+  buildInputs = [ alsa-lib ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/presage/default.nix b/nixpkgs/pkgs/development/libraries/presage/default.nix
new file mode 100644
index 000000000000..df15e73f73cf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/presage/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, dbus
+, doxygen
+, fontconfig
+, gettext
+, graphviz
+, help2man
+, pkg-config
+, sqlite
+, tinyxml
+, cppunit
+}:
+
+stdenv.mkDerivation rec {
+  pname = "presage";
+  version = "0.9.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/presage/presage/${version}/presage-${version}.tar.gz";
+    sha256 = "0rm3b3zaf6bd7hia0lr1wyvi1rrvxkn7hg05r5r1saj0a3ingmay";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://git.alpinelinux.org/aports/plain/community/presage/gcc6.patch";
+      sha256 = "0243nx1ygggmsly7057vndb4pkjxg9rpay5gyqqrq9jjzjzh63dj";
+    })
+    ./fixed-cppunit-detection.patch
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    doxygen
+    fontconfig
+    gettext
+    graphviz
+    help2man
+    pkg-config
+  ];
+
+  preBuild = ''
+    export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
+  '';
+
+  buildInputs = [
+    dbus
+    sqlite
+    tinyxml
+  ];
+
+  checkInputs = [
+    cppunit
+  ];
+
+  doCheck = true;
+
+  checkTarget = "check";
+
+  meta = with lib; {
+    description = "An intelligent predictive text entry system";
+    homepage = "https://presage.sourceforge.io/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/presage/fixed-cppunit-detection.patch b/nixpkgs/pkgs/development/libraries/presage/fixed-cppunit-detection.patch
new file mode 100644
index 000000000000..27238d2956d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/presage/fixed-cppunit-detection.patch
@@ -0,0 +1,46 @@
+From 5624aa156c551ab2b81bb86279844397ed690653 Mon Sep 17 00:00:00 2001
+From: Matteo Vescovi <matteo.vescovi@yahoo.co.uk>
+Date: Sun, 21 Jan 2018 17:17:12 +0000
+Subject: [PATCH] Fixed cppunit detection.
+
+---
+ configure.ac | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a02e9f1..1538a51 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -204,10 +204,16 @@ AM_CONDITIONAL([USE_SQLITE], [test "x$use_sqlite" = "xyes"])
+ dnl ==================
+ dnl Checks for CppUnit
+ dnl ==================
+-AM_PATH_CPPUNIT([1.9.6],
+-                [],
+-                [AC_MSG_WARN([CppUnit not found. Unit tests will not be built. CppUnit can be obtained from http://cppunit.sourceforge.net.])])
+-AM_CONDITIONAL([HAVE_CPPUNIT], [test "$CPPUNIT_LIBS"])
++PKG_CHECK_MODULES([CPPUNIT],
++                  [cppunit >= 1.9],
++                  [have_cppunit=yes],
++                  [AM_PATH_CPPUNIT([1.9],
++                                   [have_cppunit=yes],
++                                   [AC_MSG_WARN([CppUnit not found. Unit tests will not be built. CppUnit can be obtained from http://cppunit.sourceforge.net.])])
++                  ])
++AC_SUBST([CPPUNIT_CFLAGS])
++AC_SUBST([CPPUNIT_LIBS])
++AM_CONDITIONAL([HAVE_CPPUNIT], [test "x$have_cppunit" = "xyes"])
+ 
+ 
+ dnl ============================
+@@ -592,7 +598,7 @@ then
+ else
+     build_demo_application="no"
+ fi
+-if test "$CPPUNIT_LIBS"
++if test "x$have_cppunit" = "xyes"
+ then
+     build_unit_tests="yes"
+ else
+-- 
+2.31.1
+
diff --git a/nixpkgs/pkgs/development/libraries/proj/default.nix b/nixpkgs/pkgs/development/libraries/proj/default.nix
index 92119a8788d7..3bbc4c6da33a 100644
--- a/nixpkgs/pkgs/development/libraries/proj/default.nix
+++ b/nixpkgs/pkgs/development/libraries/proj/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, sqlite, autoreconfHook, libtiff, curl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, sqlite
+, libtiff
+, curl
+, gtest
+}:
 
 stdenv.mkDerivation rec {
   pname = "proj";
@@ -11,19 +20,34 @@ stdenv.mkDerivation rec {
     sha256 = "0mymvfvs8xggl4axvlj7kc1ksd9g94kaz6w1vdv0x2y5mqk93gx9";
   };
 
+  postPatch = lib.optionalString (version == "7.2.1") ''
+    substituteInPlace CMakeLists.txt \
+      --replace "MAJOR 7 MINOR 2 PATCH 0" "MAJOR 7 MINOR 2 PATCH 1"
+  '';
+
   outputs = [ "out" "dev"];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ sqlite libtiff curl ];
 
+  checkInputs = [ gtest ];
+
+  cmakeFlags = [
+    "-DUSE_EXTERNAL_GTEST=ON"
+  ];
+
   doCheck = stdenv.is64bit;
 
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
   meta = with lib; {
     description = "Cartographic Projections Library";
     homepage = "https://proj4.org";
     license = licenses.mit;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ vbgl ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ vbgl dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/protobuf/3.15.nix b/nixpkgs/pkgs/development/libraries/protobuf/3.15.nix
index 661a552882e8..e4783be6a351 100644
--- a/nixpkgs/pkgs/development/libraries/protobuf/3.15.nix
+++ b/nixpkgs/pkgs/development/libraries/protobuf/3.15.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }:
 
 callPackage ./generic-v3.nix {
-  version = "3.15.7";
-  sha256 = "03fx96rwxfbmr47f1nrflvaq5kk5p3a9wms4688nbnmymyghyml0";
+  version = "3.15.8";
+  sha256 = "1q3k8axhq6g8fqczmd6kbgzpdplrrgygppym4x1l99lzhplx9rqv";
 }
diff --git a/nixpkgs/pkgs/development/libraries/protobuf/3.16.nix b/nixpkgs/pkgs/development/libraries/protobuf/3.16.nix
new file mode 100644
index 000000000000..df8d53b9f1c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/protobuf/3.16.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... }:
+
+callPackage ./generic-v3.nix {
+  version = "3.16.0";
+  sha256 = "0jc523ys6xh1fk3l52f5mfqxhb4g8aim1js7330v0fdc3fjr8ncf";
+}
diff --git a/nixpkgs/pkgs/development/libraries/pslib/default.nix b/nixpkgs/pkgs/development/libraries/pslib/default.nix
index ec2362009ff3..b3439b7ee96f 100644
--- a/nixpkgs/pkgs/development/libraries/pslib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pslib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, zlib, libpng, libjpeg, libungif, libtiff
+{ lib, stdenv, fetchurl, cmake, pkg-config, zlib, libpng, libjpeg, giflib, libtiff
 }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ zlib libpng libjpeg libungif libtiff ];
+  buildInputs = [ zlib libpng libjpeg giflib libtiff ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/py3c/default.nix b/nixpkgs/pkgs/development/libraries/py3c/default.nix
new file mode 100644
index 000000000000..eec051f0cc1c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/py3c/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, python2, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "py3c";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "encukou";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04i2z7hrig78clc59q3i1z2hh24g7z1bfvxznlzxv00d4s57nhpi";
+  };
+
+  postPatch = lib.optionalString stdenv.cc.isClang ''
+    substituteInPlace test/setup.py \
+      --replace "'-Werror', " ""
+  '';
+
+  makeFlags = [
+    "prefix=${placeholder "out"}"
+  ];
+
+  doCheck = true;
+
+  checkInputs = [
+    python2
+    python3
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/encukou/py3c";
+    description = "Python 2/3 compatibility layer for C extensions";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ajs124 dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix b/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
index e53404557fba..f8159417378c 100644
--- a/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
@@ -14,10 +14,6 @@ stdenv.mkDerivation rec {
 
   dontWrapQtApps = true;
 
-  # Without this patch cmake fails with a "No known features for CXX compiler"
-  # error on darwin
-  patches = lib.optional stdenv.isDarwin ./move-project.patch ;
-
   # tells CMake to use this CA bundle file if it is accessible
   preConfigure = "export QC_CERTSTORE_PATH=/etc/ssl/certs/ca-certificates.crt";
 
diff --git a/nixpkgs/pkgs/development/libraries/qca-qt5/move-project.patch b/nixpkgs/pkgs/development/libraries/qca-qt5/move-project.patch
deleted file mode 100644
index dcecb83d7db9..000000000000
--- a/nixpkgs/pkgs/development/libraries/qca-qt5/move-project.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2f2b5d0..971dee3 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,10 +6,11 @@ if(NOT CMAKE_INSTALL_PREFIX)
-   unset(CMAKE_INSTALL_PREFIX CACHE)
- endif(NOT CMAKE_INSTALL_PREFIX)
- 
--project(qca)
- 
- cmake_minimum_required(VERSION 3.4)
- 
-+project(qca)
-+
- set(QCA_LIB_MAJOR_VERSION "2")
- set(QCA_LIB_MINOR_VERSION "2")
- set(QCA_LIB_PATCH_VERSION "1")
diff --git a/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix b/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix
index f739c1bc275e..e3bb938f5f8f 100644
--- a/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix
@@ -62,7 +62,7 @@ mkDerivation rec {
     description = "QPlatformTheme for a better Qt application inclusion in GNOME";
     homepage = "https://github.com/FedoraQt/QGnomePlatform";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = teams.gnome.members ++ (with maintainers; [ ]);
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/qhull/default.nix b/nixpkgs/pkgs/development/libraries/qhull/default.nix
index 0a6f39e672cd..a7f1bc271155 100644
--- a/nixpkgs/pkgs/development/libraries/qhull/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qhull/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "qhull";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-djUO3qzY8ch29AuhY3Bn1ajxWZ4/W70icWVrxWRAxRc=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   meta = with lib; {
     homepage = "http://www.qhull.org/";
diff --git a/nixpkgs/pkgs/development/libraries/qscintilla/default.nix b/nixpkgs/pkgs/development/libraries/qscintilla/default.nix
index 314bdabdb558..28c16e325350 100644
--- a/nixpkgs/pkgs/development/libraries/qscintilla/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qscintilla/default.nix
@@ -6,14 +6,14 @@
 
 let
   pname = "qscintilla-qt${if withQt5 then "5" else "4"}";
-  version = "2.11.5";
+  version = "2.11.6";
 
 in stdenv.mkDerivation rec {
   inherit pname version;
 
   src = fetchurl {
     url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla-${version}.tar.gz";
-    sha256 = "k2Hib9f7e1gZp+uSxcGIChjem9PtndLrAI5XOIaWcWs=";
+    sha256 = "5zRgV9tH0vs4RGf6/M/LE6oHQTc8XVk7xytVsvDdIKc=";
   };
 
   sourceRoot = "QScintilla-${version}/Qt4Qt5";
diff --git a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
index a4ac41d81df7..ed93d86a1979 100644
--- a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -3,7 +3,7 @@
 , libXfixes, libXrandr, libSM, freetype, fontconfig, zlib, libjpeg, libpng
 , libmng, which, libGLU, openssl, dbus, cups, pkg-config
 , libtiff, glib, icu, libmysqlclient, postgresql, sqlite, perl, coreutils, libXi
-, alsaLib
+, alsa-lib
 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 , gtkStyle ? stdenv.hostPlatform == stdenv.buildPlatform, gtk2, gdk-pixbuf
 , gnomeStyle ? false, libgnomeui, GConf, gnome_vfs
@@ -204,7 +204,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isLinux "-std=gnu++98" # gnu++ in (Obj)C flags is no good on Darwin
     ++ lib.optionals (stdenv.isFreeBSD || stdenv.isDarwin)
       [ "-I${glib.dev}/include/glib-2.0" "-I${glib.out}/lib/glib-2.0/include" ]
-    ++ lib.optional stdenv.isDarwin "-I${libcxx}/include/c++/v1");
+    ++ lib.optional stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1");
 
   NIX_LDFLAGS = lib.optionalString (stdenv.isFreeBSD || stdenv.isDarwin) "-lglib-2.0";
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
index 63e893ea69ff..fcb6297f5191 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -98,6 +98,11 @@ let
         url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
+      (fetchpatch {
+        name = "qtwebkit-glib-2.68.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/pull/1058/commits/5b698ba3faffd4e198a45be9fe74f53307395e4b.patch";
+        sha256 = "0a3xv0h4lv8wggckgy8cg8xnpkg7n9h45312pdjdnnwy87xvzss0";
+      })
       ./qtwebkit.patch
       ./qtwebkit-icu68.patch
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0003-qtbase-mkspecs.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0003-qtbase-mkspecs.patch
index d5d8e70b788f..506397bc6056 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0003-qtbase-mkspecs.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -1,6 +1,6 @@
-From 8bdbddc2e5fef1553b1ba0297d3c03b38e9b947b Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Wed, 18 Sep 2019 05:39:39 -0500
+From 9ffbcc5e362d17aea3e3d67e43cd3cd993e987eb Mon Sep 17 00:00:00 2001
+From: OPNA2608 <christoph.neidahl@gmail.com>
+Date: Mon, 12 Apr 2021 20:05:25 +0200
 Subject: [PATCH 03/12] qtbase-mkspecs
 
 ---
@@ -12,13 +12,13 @@ Subject: [PATCH 03/12] qtbase-mkspecs
  mkspecs/features/qt_build_paths.prf           |  4 +-
  mkspecs/features/qt_docs.prf                  | 10 +--
  mkspecs/features/qt_example_installs.prf      |  2 +-
- mkspecs/features/qt_functions.prf             |  2 +-
+ mkspecs/features/qt_functions.prf             | 27 ++++---
  mkspecs/features/qt_installs.prf              | 22 ++---
  mkspecs/features/qt_plugin.prf                |  2 +-
- 11 files changed, 39 insertions(+), 142 deletions(-)
+ 11 files changed, 53 insertions(+), 153 deletions(-)
 
 diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
-index 00da9bd33f..bd166fbfea 100644
+index 02e5775983..3782949d32 100644
 --- a/mkspecs/features/create_cmake.prf
 +++ b/mkspecs/features/create_cmake.prf
 @@ -21,7 +21,7 @@ load(cmake_functions)
@@ -96,7 +96,7 @@ index 00da9bd33f..bd166fbfea 100644
      INSTALLS += cmake_qt5_plugin_file
  
      return()
-@@ -333,7 +308,7 @@ exists($$cmake_macros_file.input) {
+@@ -334,7 +309,7 @@ exists($$cmake_macros_file.input) {
      cmake_qt5_module_files.files += $$cmake_macros_file.output
  }
  
@@ -370,18 +370,44 @@ index 43b58817fe..e635b8f67a 100644
  
  check_examples {
 diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
-index 1903e509c8..ae7b585989 100644
+index 1903e509c8..1dc117a388 100644
 --- a/mkspecs/features/qt_functions.prf
 +++ b/mkspecs/features/qt_functions.prf
-@@ -69,7 +69,7 @@ defineTest(qtHaveModule) {
+@@ -69,19 +69,22 @@ defineTest(qtHaveModule) {
  defineTest(qtPrepareTool) {
      cmd = $$eval(QT_TOOL.$${2}.binary)
      isEmpty(cmd) {
 -        cmd = $$[QT_HOST_BINS]/$$2
-+        cmd = $$system("command -v $$2")
-         exists($${cmd}.pl) {
-             $${1}_EXE = $${cmd}.pl
-             cmd = perl -w $$system_path($${cmd}.pl)
+-        exists($${cmd}.pl) {
+-            $${1}_EXE = $${cmd}.pl
+-            cmd = perl -w $$system_path($${cmd}.pl)
+-        } else: contains(QMAKE_HOST.os, Windows) {
+-            $${1}_EXE = $${cmd}.exe
+-            cmd = $$system_path($${cmd}.exe)
+-        } else:contains(QMAKE_HOST.os, Darwin) {
+-            BUNDLENAME = $${cmd}.app/Contents/MacOS/$$2
+-            exists($$BUNDLENAME) {
+-                cmd = $$BUNDLENAME
++        cmd = $$system("command -v $${2}")
++        isEmpty(cmd) {
++            cmd = $$system("command -v $${2}.pl")
++            !isEmpty(cmd) {
++                $${1}_EXE = $$cmd
++                cmd = perl -w $$system_path($${cmd})
++            } else: contains(QMAKE_HOST.os, Windows) {
++                cmd = $$system("command -v $${2}.exe")
++                $${1}_EXE = $$cmd
++            } else: contains(QMAKE_HOST.os, Darwin) {
++                cmd = $$system("command -v $${2}.app")
++                !isEmpty(cmd) {
++                    cmd = $${cmd}/Contents/MacOS/$${2}
++                    $${1}_EXE = $$cmd
++                }
+             }
+-            $${1}_EXE = $$cmd
+         } else {
+             $${1}_EXE = $$cmd
+         }
 diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
 index 1ebca17366..b784441da0 100644
 --- a/mkspecs/features/qt_installs.prf
@@ -461,5 +487,5 @@ index 40528a65e2..903f795284 100644
  
  TARGET = $$qt5LibraryTarget($$TARGET)
 -- 
-2.23.GIT
+2.29.3
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
index 3e3790ed1a4c..02b170e0eb17 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -111,6 +111,11 @@ let
         url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
+      (fetchpatch {
+        name = "qtwebkit-glib-2.68.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/pull/1058/commits/5b698ba3faffd4e198a45be9fe74f53307395e4b.patch";
+        sha256 = "0a3xv0h4lv8wggckgy8cg8xnpkg7n9h45312pdjdnnwy87xvzss0";
+      })
       ./qtwebkit.patch
       ./qtwebkit-icu68.patch
     ] ++ optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch
index b704d0dc8722..dbd6b3663443 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -1,6 +1,6 @@
-From 1cb5581d7f20bf87ac8d67a7295447a78a1d9645 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
-Date: Sat, 4 Apr 2020 00:25:52 +0200
+From 87c81a31d65862a2f32fdc575cfb47b7a46bfae7 Mon Sep 17 00:00:00 2001
+From: OPNA2608 <christoph.neidahl@gmail.com>
+Date: Mon, 12 Apr 2021 20:05:25 +0200
 Subject: [PATCH 03/10] qtbase-mkspecs
 
 ---
@@ -12,10 +12,10 @@ Subject: [PATCH 03/10] qtbase-mkspecs
  mkspecs/features/qt_build_paths.prf           |  4 +-
  mkspecs/features/qt_docs.prf                  | 10 +--
  mkspecs/features/qt_example_installs.prf      |  2 +-
- mkspecs/features/qt_functions.prf             |  2 +-
+ mkspecs/features/qt_functions.prf             | 27 ++++---
  mkspecs/features/qt_installs.prf              | 22 ++---
  mkspecs/features/qt_plugin.prf                |  2 +-
- 11 files changed, 38 insertions(+), 141 deletions(-)
+ 11 files changed, 52 insertions(+), 152 deletions(-)
 
 diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
 index 0e71fd0015..ba071d9a70 100644
@@ -369,18 +369,44 @@ index 72b47bce27..d59e949e78 100644
  
  check_examples {
 diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
-index 7777e615bd..abeb03a663 100644
+index 7777e615bd..b0c6880a74 100644
 --- a/mkspecs/features/qt_functions.prf
 +++ b/mkspecs/features/qt_functions.prf
-@@ -87,7 +87,7 @@ defineTest(qtHaveModule) {
+@@ -87,19 +87,22 @@ defineTest(qtHaveModule) {
  defineTest(qtPrepareTool) {
      cmd = $$eval(QT_TOOL.$${2}.binary)
      isEmpty(cmd) {
 -        cmd = $$[QT_HOST_BINS]/$$2
-+        cmd = $$system("command -v $$2")
-         exists($${cmd}.pl) {
-             $${1}_EXE = $${cmd}.pl
-             cmd = perl -w $$system_path($${cmd}.pl)
+-        exists($${cmd}.pl) {
+-            $${1}_EXE = $${cmd}.pl
+-            cmd = perl -w $$system_path($${cmd}.pl)
+-        } else: contains(QMAKE_HOST.os, Windows) {
+-            $${1}_EXE = $${cmd}.exe
+-            cmd = $$system_path($${cmd}.exe)
+-        } else:contains(QMAKE_HOST.os, Darwin) {
+-            BUNDLENAME = $${cmd}.app/Contents/MacOS/$$2
+-            exists($$BUNDLENAME) {
+-                cmd = $$BUNDLENAME
++        cmd = $$system("command -v $${2}")
++        isEmpty(cmd) {
++            cmd = $$system("command -v $${2}.pl")
++            !isEmpty(cmd) {
++                $${1}_EXE = $$cmd
++                cmd = perl -w $$system_path($${cmd})
++            } else: contains(QMAKE_HOST.os, Windows) {
++                cmd = $$system("command -v $${2}.exe")
++                $${1}_EXE = $$cmd
++            } else: contains(QMAKE_HOST.os, Darwin) {
++                cmd = $$system("command -v $${2}.app")
++                !isEmpty(cmd) {
++                    cmd = $${cmd}/Contents/MacOS/$${2}
++                    $${1}_EXE = $$cmd
++                }
+             }
+-            $${1}_EXE = $$cmd
+         } else {
+             $${1}_EXE = $$cmd
+         }
 diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
 index 1ebca17366..a8f958eae8 100644
 --- a/mkspecs/features/qt_installs.prf
@@ -460,5 +486,5 @@ index 573d717eea..024c624cb6 100644
  
  qt_libinfix_plugins: TARGET = $$TARGET$$QT_LIBINFIX
 -- 
-2.25.1
+2.29.3
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
index f969254b5952..5cfca8d80c71 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -135,6 +135,11 @@ let
         url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
+      (fetchpatch {
+        name = "qtwebkit-glib-2.68.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/pull/1058/commits/5b698ba3faffd4e198a45be9fe74f53307395e4b.patch";
+        sha256 = "0a3xv0h4lv8wggckgy8cg8xnpkg7n9h45312pdjdnnwy87xvzss0";
+      })
       ./qtwebkit.patch
       ./qtwebkit-icu68.patch
     ] ++ optionals stdenv.isDarwin [
@@ -181,6 +186,7 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {};
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch
index 9f8ef67ab5d9..1c9012c0f2e8 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -1,6 +1,6 @@
-From 82771c437957b3684ce296997d795432756aa8b1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
-Date: Sat, 4 Apr 2020 00:25:52 +0200
+From 03a5a7eab673d18d00c9b5eb8c7d5b790079e8ff Mon Sep 17 00:00:00 2001
+From: OPNA2608 <christoph.neidahl@gmail.com>
+Date: Mon, 12 Apr 2021 20:20:46 +0200
 Subject: [PATCH 03/11] qtbase-mkspecs
 
 ---
@@ -12,10 +12,10 @@ Subject: [PATCH 03/11] qtbase-mkspecs
  mkspecs/features/qt_build_paths.prf           |  4 +-
  mkspecs/features/qt_docs.prf                  | 10 +--
  mkspecs/features/qt_example_installs.prf      |  2 +-
- mkspecs/features/qt_functions.prf             |  2 +-
+ mkspecs/features/qt_functions.prf             | 27 ++++---
  mkspecs/features/qt_installs.prf              | 22 ++---
  mkspecs/features/qt_plugin.prf                |  2 +-
- 11 files changed, 38 insertions(+), 141 deletions(-)
+ 11 files changed, 52 insertions(+), 152 deletions(-)
 
 diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
 index 24ed125f12..f0666a1986 100644
@@ -105,7 +105,7 @@ index 24ed125f12..f0666a1986 100644
  # We are generating cmake files. Most developers of Qt are not aware of cmake,
  # so we require automatic tests to be available. The only module which should
 diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
-index 309798a767..b6c3ab8609 100644
+index db18dbece6..8246f37931 100644
 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
 +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
 @@ -2,30 +2,6 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0)
@@ -200,7 +200,7 @@ index 309798a767..b6c3ab8609 100644
  !!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
      include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL)
  !!ENDIF
-@@ -499,25 +455,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+@@ -491,25 +447,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
  !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
  !!IF isEmpty(CMAKE_DEBUG_TYPE)
  !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
@@ -226,7 +226,7 @@ index 309798a767..b6c3ab8609 100644
          _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
  !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
      endif()
-@@ -536,25 +480,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+@@ -528,25 +472,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
  !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
  !!IF isEmpty(CMAKE_RELEASE_TYPE)
  !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
@@ -252,7 +252,7 @@ index 309798a767..b6c3ab8609 100644
          _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
  !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
      endif()
-@@ -581,11 +513,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+@@ -573,11 +505,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
            IsDebugAndRelease)
          set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
  
@@ -265,7 +265,7 @@ index 309798a767..b6c3ab8609 100644
          set_target_properties(Qt5::${Plugin} PROPERTIES
              \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
 diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
-index c0b50416c9..cabe39b22e 100644
+index 3d6cd9b3db..ca8b0b2701 100644
 --- a/mkspecs/features/qml_module.prf
 +++ b/mkspecs/features/qml_module.prf
 @@ -51,7 +51,7 @@ builtin_resources {
@@ -369,18 +369,44 @@ index 15b373ba40..5c373fe1d5 100644
  
  check_examples {
 diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
-index 7777e615bd..abeb03a663 100644
+index 7777e615bd..b0c6880a74 100644
 --- a/mkspecs/features/qt_functions.prf
 +++ b/mkspecs/features/qt_functions.prf
-@@ -87,7 +87,7 @@ defineTest(qtHaveModule) {
+@@ -87,19 +87,22 @@ defineTest(qtHaveModule) {
  defineTest(qtPrepareTool) {
      cmd = $$eval(QT_TOOL.$${2}.binary)
      isEmpty(cmd) {
 -        cmd = $$[QT_HOST_BINS]/$$2
-+        cmd = $$system("command -v $$2")
-         exists($${cmd}.pl) {
-             $${1}_EXE = $${cmd}.pl
-             cmd = perl -w $$system_path($${cmd}.pl)
+-        exists($${cmd}.pl) {
+-            $${1}_EXE = $${cmd}.pl
+-            cmd = perl -w $$system_path($${cmd}.pl)
+-        } else: contains(QMAKE_HOST.os, Windows) {
+-            $${1}_EXE = $${cmd}.exe
+-            cmd = $$system_path($${cmd}.exe)
+-        } else:contains(QMAKE_HOST.os, Darwin) {
+-            BUNDLENAME = $${cmd}.app/Contents/MacOS/$$2
+-            exists($$BUNDLENAME) {
+-                cmd = $$BUNDLENAME
++        cmd = $$system("command -v $${2}")
++        isEmpty(cmd) {
++            cmd = $$system("command -v $${2}.pl")
++            !isEmpty(cmd) {
++                $${1}_EXE = $$cmd
++                cmd = perl -w $$system_path($${cmd})
++            } else: contains(QMAKE_HOST.os, Windows) {
++                cmd = $$system("command -v $${2}.exe")
++                $${1}_EXE = $$cmd
++            } else: contains(QMAKE_HOST.os, Darwin) {
++                cmd = $$system("command -v $${2}.app")
++                !isEmpty(cmd) {
++                    cmd = $${cmd}/Contents/MacOS/$${2}
++                    $${1}_EXE = $$cmd
++                }
+             }
+-            $${1}_EXE = $$cmd
+         } else {
+             $${1}_EXE = $$cmd
+         }
 diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
 index 1ebca17366..a8f958eae8 100644
 --- a/mkspecs/features/qt_installs.prf
@@ -460,5 +486,5 @@ index 573d717eea..024c624cb6 100644
  
  qt_libinfix_plugins: TARGET = $$TARGET$$QT_LIBINFIX
 -- 
-2.25.4
+2.29.3
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix
index 84d3a17ea8ce..f5d034bcc327 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtdeclarative }:
 
 qtModule {
-  name = "qtcharts";
+  pname = "qtcharts";
   qtInputs = [ qtbase qtdeclarative ];
   outputs = [ "out" "dev" "bin" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix
index f6aeb23fb7b4..ae3aa25427c8 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix
@@ -1,7 +1,7 @@
 { qtModule, lib, stdenv, qtbase, qtdeclarative, bluez }:
 
 qtModule {
-  name = "qtconnectivity";
+  pname = "qtconnectivity";
   qtInputs = [ qtbase qtdeclarative ];
   buildInputs = lib.optional stdenv.isLinux bluez;
   outputs = [ "out" "dev" "bin" ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix
index b611282294c6..97248ca18076 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix
@@ -3,7 +3,7 @@
 with lib;
 
 qtModule {
-  name = "qtdeclarative";
+  pname = "qtdeclarative";
   qtInputs = [ qtbase qtsvg ];
   nativeBuildInputs = [ python3 ];
   outputs = [ "out" "dev" "bin" ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix
index 10623962c430..4ef4915000e5 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix
@@ -1,7 +1,7 @@
 { qtModule, qtdeclarative }:
 
 qtModule {
-  name = "qtdoc";
+  pname = "qtdoc";
   qtInputs = [ qtdeclarative ];
   outputs = [ "out" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
index 6bc023eb9bbd..2e266060a341 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtdeclarative, pkg-config }:
 
 qtModule {
-  name = "qtgamepad";
+  pname = "qtgamepad";
   qtInputs = [ qtbase qtdeclarative ];
   buildInputs = [ ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix
index d0be6ae77694..c90280090b8e 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix
@@ -1,7 +1,7 @@
 { qtModule, qtdeclarative }:
 
 qtModule {
-  name = "qtgraphicaleffects";
+  pname = "qtgraphicaleffects";
   qtInputs = [ qtdeclarative ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
index 9c80507b7c70..52fa4d4ba8ff 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, libtiff }:
 
 qtModule {
-  name = "qtimageformats";
+  pname = "qtimageformats";
   qtInputs = [ qtbase ];
   propagatedBuildInputs = [ libtiff ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix
index 182b5f5bc334..687571f18d29 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, qtModule, qtbase, qtmultimedia }:
 
 qtModule {
-  name = "qtlocation";
+  pname = "qtlocation";
   qtInputs = [ qtbase qtmultimedia ];
   outputs = [ "bin" "out" "dev" ];
   qmakeFlags = lib.optional stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix
index 5e7ccf702045..30e363cff59a 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix
@@ -1,7 +1,7 @@
 { lib, qtModule, qtbase }:
 
 qtModule {
-  name = "qtmacextras";
+  pname = "qtmacextras";
   qtInputs = [ qtbase ];
   meta = with lib; {
     maintainers = with maintainers; [ periklis ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
index eb2c3bc7431d..0d2d565fe7ae 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
@@ -1,15 +1,15 @@
 { qtModule, lib, stdenv, qtbase, qtdeclarative, pkg-config
-, alsaLib, gstreamer, gst-plugins-base, libpulseaudio, wayland
+, alsa-lib, gstreamer, gst-plugins-base, libpulseaudio, wayland
 }:
 
 with lib;
 
 qtModule {
-  name = "qtmultimedia";
+  pname = "qtmultimedia";
   qtInputs = [ qtbase qtdeclarative ];
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ gstreamer gst-plugins-base libpulseaudio ]
-    ++ optional (stdenv.isLinux) alsaLib
+    ++ optional (stdenv.isLinux) alsa-lib
     ++ optional (versionAtLeast qtbase.version "5.14.0" && stdenv.isLinux) wayland;
   outputs = [ "bin" "dev" "out" ];
   qmakeFlags = [ "GST_VERSION=1.0" ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix
index e6ef428cc3c4..148ed890fc9e 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix
@@ -1,6 +1,6 @@
 { qtModule, qtbase }:
 
 qtModule {
-  name = "qtnetworkauth";
+  pname = "qtnetworkauth";
   qtInputs = [ qtbase ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix
index ba0f20bc0d83..6c85a91fb78c 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix
@@ -1,6 +1,6 @@
 { qtModule, qtdeclarative }:
 
 qtModule {
-  name = "qtquickcontrols";
+  pname = "qtquickcontrols";
   qtInputs = [ qtdeclarative ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix
index a9522f4b1f0c..a50ad9e2a304 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix
@@ -1,7 +1,7 @@
 { qtModule, qtdeclarative }:
 
 qtModule {
-  name = "qtquickcontrols2";
+  pname = "qtquickcontrols2";
   qtInputs = [ qtdeclarative ];
   outputs = [ "out" "dev" "bin" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix
index 5a1a462a9640..e7ce86b74a68 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix
@@ -1,6 +1,6 @@
 { qtModule, qtbase, qttools }:
 
 qtModule {
-  name = "qtscript";
+  pname = "qtscript";
   qtInputs = [ qtbase qttools ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix
index 62b428b08933..cf9af0bc7543 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtdeclarative }:
 
 qtModule {
-  name = "qtscxml";
+  pname = "qtscxml";
   qtInputs = [ qtbase qtdeclarative ];
   outputs = [ "out" "dev" "bin" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix
index 3b8732b68851..3fbd032b968f 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtdeclarative }:
 
 qtModule {
-  name = "qtsensors";
+  pname = "qtsensors";
   qtInputs = [ qtbase qtdeclarative ];
   outputs = [ "out" "dev" "bin" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix
index 48968a254c65..4fd6d7cb83c3 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix
@@ -1,6 +1,6 @@
 { qtModule, qtbase, qtserialport }:
 
 qtModule {
-  name = "qtserialbus";
+  pname = "qtserialbus";
   qtInputs = [ qtbase qtserialport ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix
index 516d38340dc5..caeaedbcf3d5 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix
@@ -3,7 +3,7 @@
 let inherit (lib) getLib optional; in
 
 qtModule {
-  name = "qtserialport";
+  pname = "qtserialport";
   qtInputs = [ qtbase ];
   NIX_CFLAGS_COMPILE =
     optional stdenv.isLinux
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix
index ddef01a9482e..d2748ba8d4c5 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix
@@ -1,7 +1,7 @@
 { qtModule }:
 
 qtModule {
-  name = "qtspeech";
+  pname = "qtspeech";
   qtInputs = [ ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix
index 3ce68e56e412..59c7cf67448c 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase }:
 
 qtModule {
-  name = "qtsvg";
+  pname = "qtsvg";
   qtInputs = [ qtbase ];
   outputs = [ "out" "dev" "bin" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix
index fae90972978f..437ec6cef743 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix
@@ -3,7 +3,7 @@
 with lib;
 
 qtModule {
-  name = "qttools";
+  pname = "qttools";
   qtInputs = [ qtbase qtdeclarative ];
   outputs = [ "out" "dev" "bin" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix
index 11a6e3fedcb1..f49a4eb9a85d 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix
@@ -1,6 +1,6 @@
 { qtModule, qttools }:
 
 qtModule {
-  name = "qttranslations";
+  pname = "qttranslations";
   qtInputs = [ qttools ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix
index 2ba720c8eedc..77f1948dbf43 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix
@@ -1,6 +1,6 @@
 { qtModule, qtbase, qtdeclarative, qtsvg, hunspell  }:
 
 qtModule {
-  name = "qtvirtualkeyboard";
+  pname = "qtvirtualkeyboard";
   qtInputs = [ qtbase qtdeclarative qtsvg hunspell ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix
index 5291ea9c9a78..1bd1adedaf04 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtquickcontrols, wayland, pkg-config }:
 
 qtModule {
-  name = "qtwayland";
+  pname = "qtwayland";
   qtInputs = [ qtbase qtquickcontrols ];
   buildInputs = [ wayland ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix
index 84fb88385a3e..f49e9e234901 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtdeclarative }:
 
 qtModule {
-  name = "qtwebchannel";
+  pname = "qtwebchannel";
   qtInputs = [ qtbase qtdeclarative ];
   outputs = [ "out" "dev" "bin" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index e2ca47f45f2c..729c5f388f99 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -8,14 +8,15 @@
 , fontconfig, freetype, harfbuzz, icu, dbus, libdrm
 , zlib, minizip, libjpeg, libpng, libtiff, libwebp, libopus
 , jsoncpp, protobuf, libvpx, srtp, snappy, nss, libevent
-, alsaLib
+, alsa-lib
 , libcap
 , pciutils
 , systemd
+, pipewire_0_2
 , enableProprietaryCodecs ? true
 , gn
 , cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
-, ffmpeg_3 ? null
+, ffmpeg ? null
 , lib, stdenv, fetchpatch
 , version ? null
 , qtCompatVersion
@@ -24,18 +25,10 @@
 with lib;
 
 qtModule {
-  name = "qtwebengine";
+  pname = "qtwebengine";
   qtInputs = [ qtdeclarative qtquickcontrols qtlocation qtwebchannel ];
   nativeBuildInputs = [
     bison coreutils flex git gperf ninja pkg-config python2 which gn nodejs
-
-    # qmake looks for syncqt instead of syncqt.pl and fails with a cryptic
-    # error if it can't find it. syncqt.pl also has a /usr/bin/env shebang, so
-    # it can't be directly used in a sandboxed build environment.
-    (writeScriptBin "syncqt" ''
-      #!${stdenv.shell}
-      exec ${perl}/bin/perl ${qtbase.dev}/bin/syncqt.pl "$@"
-    '')
   ] ++ optional stdenv.isDarwin xcbuild;
   doCheck = true;
   outputs = [ "bin" "dev" "out" ];
@@ -140,9 +133,9 @@ qtModule {
     fi
   '';
 
-  qmakeFlags = if stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64
-    then [ "--" "-system-ffmpeg" ] ++ optional enableProprietaryCodecs "-proprietary-codecs"
-    else optional enableProprietaryCodecs "-- -proprietary-codecs";
+  qmakeFlags = [ "--" "-system-ffmpeg" ]
+    ++ optional (stdenv.isLinux && (lib.versionAtLeast qtCompatVersion "5.15")) "-webengine-webrtc-pipewire"
+    ++ optional enableProprietaryCodecs "-proprietary-codecs";
 
   propagatedBuildInputs = [
     # Image formats
@@ -158,13 +151,12 @@ qtModule {
     harfbuzz icu
 
     libevent
-  ] ++ optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [
-    ffmpeg_3
+    ffmpeg
   ] ++ optionals (!stdenv.isDarwin) [
     dbus zlib minizip snappy nss protobuf jsoncpp
 
     # Audio formats
-    alsaLib
+    alsa-lib
 
     # Text rendering
     fontconfig freetype
@@ -175,6 +167,10 @@ qtModule {
     # X11 libs
     xorg.xrandr libXScrnSaver libXcursor libXrandr xorg.libpciaccess libXtst
     xorg.libXcomposite xorg.libXdamage libdrm
+
+  ] ++ optionals (stdenv.isLinux && (lib.versionAtLeast qtCompatVersion "5.15")) [
+    # Pipewire
+    pipewire_0_2
   ]
 
   # FIXME These dependencies shouldn't be needed but can't find a way
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix
index 444d0c1beae8..d8fd7a692370 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix
@@ -1,6 +1,6 @@
 { qtModule, qtbase, qtwebsockets }:
 
 qtModule {
-  name = "qtwebglplugin";
+  pname = "qtwebglplugin";
   qtInputs = [ qtbase qtwebsockets ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
index 288a0e30f690..e2dd0d4b19c7 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
@@ -22,7 +22,7 @@ let
   usingAnnulenWebkitFork = lib.versionAtLeast qtbase.version "5.11.0";
 in
 qtModule {
-  name = "qtwebkit";
+  pname = "qtwebkit";
   qtInputs = [ qtbase qtdeclarative qtlocation qtsensors ]
     ++ optional (stdenv.isDarwin && lib.versionAtLeast qtbase.version "5.9.0") qtmultimedia
     ++ optional usingAnnulenWebkitFork qtwebchannel;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix
index ad5e7625f289..540fcade73c9 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtdeclarative }:
 
 qtModule {
-  name = "qtwebsockets";
+  pname = "qtwebsockets";
   qtInputs = [ qtbase qtdeclarative ];
   outputs = [ "out" "dev" "bin" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix
index 4034dce49f56..1df8ef866389 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix
@@ -3,7 +3,7 @@
 with lib;
 
 qtModule {
-  name = "qtwebview";
+  pname = "qtwebview";
   qtInputs = [ qtdeclarative qtwebengine ];
   buildInputs = optional (stdenv.isDarwin) [
     darwin.apple_sdk.frameworks.CoreFoundation
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix
index 4d431fee278b..ad743523bb00 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix
@@ -1,6 +1,6 @@
 { qtModule, qtbase }:
 
 qtModule {
-  name = "qtx11extras";
+  pname = "qtx11extras";
   qtInputs = [ qtbase ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix
index 7ac922421f08..c602b1e39d2d 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix
@@ -1,7 +1,7 @@
 { qtModule, qtbase, qtdeclarative }:
 
 qtModule {
-  name = "qtxmlpatterns";
+  pname = "qtxmlpatterns";
   qtInputs = [ qtbase qtdeclarative ];
   devTools = [ "bin/xmlpatterns" "bin/xmlpatternsvalidator" ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix b/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
index 930ed9d67baa..767cbc91142d 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/qtModule.nix
@@ -7,15 +7,14 @@ let inherit (lib) licenses maintainers platforms; in
 args:
 
 let
-  inherit (args) name;
-  version = args.version or srcs.${name}.version;
-  src = args.src or srcs.${name}.src;
+  inherit (args) pname;
+  version = args.version or srcs.${pname}.version;
+  src = args.src or srcs.${pname}.src;
 in
 
 mkDerivation (args // {
-  name = "${name}-${version}";
-  inherit src;
-  patches = args.patches or patches.${name} or [];
+  inherit pname version src;
+  patches = args.patches or patches.${pname} or [];
 
   nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ perl self.qmake ];
   propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []);
diff --git a/nixpkgs/pkgs/development/libraries/qtfeedback/default.nix b/nixpkgs/pkgs/development/libraries/qtfeedback/default.nix
new file mode 100644
index 000000000000..a329ece074ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qtfeedback/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, perl
+, qmake
+, qtbase
+, qtdeclarative
+}:
+
+mkDerivation rec {
+  pname = "qtfeedback";
+  version = "unstable-2018-09-03";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "qt";
+    repo = "qtfeedback";
+    rev = "a14bd0bb1373cde86e09e3619fb9dc70f34c71f2";
+    sha256 = "0kiiffvriagql1cark6g1qxy7l9c3q3s13cx3s2plbz19nlnikj7";
+  };
+
+  nativeBuildInputs = [
+    perl
+    qmake
+  ];
+
+  buildInputs = [
+    qtdeclarative
+  ];
+
+  qmakeFlags = [ "CONFIG+=git_build" ];
+
+  doCheck = true;
+
+  postFixup = ''
+    # Drop QMAKE_PRL_BUILD_DIR because it references the build dir
+    find "$out/lib" -type f -name '*.prl' \
+      -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
+  '';
+
+  meta = with lib; {
+    description = "Qt Tactile Feedback";
+    homepage = "https://github.com/qt/qtfeedback";
+    license = with licenses; [ lgpl3Only /* or */ gpl2Plus ];
+    maintainers = with maintainers; [ dotlambda OPNA2608 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
index 85468bd4f183..ebc7bc081933 100644
--- a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
@@ -31,7 +31,7 @@ mkDerivation {
     description = "Additional style plugins for Qt5, including BB10, GTK, Cleanlooks, Motif, Plastique";
     homepage = "http://blog.qt.io/blog/2012/10/30/cleaning-up-styles-in-qt5-and-adding-fusion/";
     license = licenses.lgpl21;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/quazip/default.nix b/nixpkgs/pkgs/development/libraries/quazip/default.nix
index a12d6cafe4ae..4184f3276c06 100644
--- a/nixpkgs/pkgs/development/libraries/quazip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/quazip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quazip";
-  version = "0.9.1";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "stachenov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11icgwv2xyxhd1hm1add51xv54zwkcqkg85d1xqlgiigvbm196iq";
+    sha256 = "06srglrj6jvy5ngmidlgx03i0d5w91yhi7sf846wql00v8rvhc5h";
   };
 
   buildInputs = [ zlib qtbase ];
diff --git a/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix b/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix
index 69fa7f6eadc5..1ff8c2b0cc21 100644
--- a/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix
+++ b/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix
@@ -2,18 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "raft-canonical";
-  version = "0.9.23";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "raft";
     rev = "v${version}";
-    sha256 = "0swn95cf11fqczllmxr0nj3ig532rw4n3w6g3ckdnqka8520xjyr";
+    sha256 = "sha256-Q4m0CCIArgsobhmhqLvkr7fK40SX/qBk6K5Qu0eRLaI=";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkg-config ];
   buildInputs = [ libuv ];
 
+  enableParallelBuilding = true;
+
   preConfigure = ''
     substituteInPlace configure --replace /usr/bin/ " "
   '';
diff --git a/nixpkgs/pkgs/development/libraries/rarian/default.nix b/nixpkgs/pkgs/development/libraries/rarian/default.nix
index 522456cfa40d..b8995e6a2c48 100644
--- a/nixpkgs/pkgs/development/libraries/rarian/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rarian/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, pkg-config, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, gnome3}:
+{lib, stdenv, fetchurl, pkg-config, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, gnome}:
 let
   pname = "rarian";
   version = "0.8.1";
@@ -15,12 +15,6 @@ in stdenv.mkDerivation rec {
     ++ (with perlPackages; [ perl XMLParser ]);
   configureFlags = [ "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat" ];
 
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
   meta = with lib; {
     description = "Documentation metadata library based on the proposed Freedesktop.org spec";
     homepage = "https://rarian.freedesktop.org/";
diff --git a/nixpkgs/pkgs/development/libraries/raylib/default.nix b/nixpkgs/pkgs/development/libraries/raylib/default.nix
index 47d8fdb040b2..836bafd4280f 100644
--- a/nixpkgs/pkgs/development/libraries/raylib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/raylib/default.nix
@@ -1,46 +1,47 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, cmake,
   mesa, libGLU, glfw,
   libX11, libXi, libXcursor, libXrandr, libXinerama,
-  alsaSupport ? stdenv.hostPlatform.isLinux, alsaLib,
+  alsaSupport ? stdenv.hostPlatform.isLinux, alsa-lib,
   pulseSupport ? stdenv.hostPlatform.isLinux, libpulseaudio,
+  sharedLib ? true,
   includeEverything ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "raylib";
-  version = "3.5.0";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "raysan5";
     repo = pname;
     rev = version;
-    sha256 = "0syvd5js1lbx3g4cddwwncqg95l6hb3fdz5nsh5pqy7fr6v84kwj";
+    sha256 = "1w8v747hqy0ils6zmy8sm056f24ybjhn9bamqzlxvbqhvh9vvly1";
   };
 
   patches = [
-    # fixes examples not compiling in 3.5.0
+    # fixes incorrect version being set by cmake
     (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/raysan5/raylib/pull/1470.patch";
-      sha256 = "1ff5l839wl8dxwrs2bwky7kqa8kk9qmsflg31sk5vbil68dzbzg0";
+      url = "https://github.com/raysan5/raylib/commit/204aa4c46fdd6986aa0130eeba658562c540759f.patch";
+      sha256 = "10pl7828iy4kadach0wy4fs95vr7k08z3mxw90j8dm9xak1ri8fz";
     })
   ];
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [
     mesa libGLU glfw libX11 libXi libXcursor libXrandr libXinerama
-  ] ++ lib.optional alsaSupport alsaLib
+  ] ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional pulseSupport libpulseaudio;
 
   # https://github.com/raysan5/raylib/wiki/CMake-Build-Options
   cmakeFlags = [
     "-DUSE_EXTERNAL_GLFW=ON"
-    "-DSHARED=ON"
     "-DBUILD_EXAMPLES=OFF"
-  ] ++ lib.optional includeEverything "-DINCLUDE_EVERYTHING=ON";
+  ] ++ lib.optional includeEverything "-DINCLUDE_EVERYTHING=ON"
+    ++ lib.optional sharedLib "-DBUILD_SHARED_LIBS=ON";
 
   # fix libasound.so/libpulse.so not being found
   preFixup = ''
-    ${lib.optionalString alsaSupport "patchelf --add-needed ${alsaLib}/lib/libasound.so $out/lib/libraylib.so.${version}"}
+    ${lib.optionalString alsaSupport "patchelf --add-needed ${alsa-lib}/lib/libasound.so $out/lib/libraylib.so.${version}"}
     ${lib.optionalString pulseSupport "patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libraylib.so.${version}"}
   '';
 
diff --git a/nixpkgs/pkgs/development/libraries/re2/default.nix b/nixpkgs/pkgs/development/libraries/re2/default.nix
index 2d8d00597647..9b7a2e910117 100644
--- a/nixpkgs/pkgs/development/libraries/re2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/re2/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "re2";
-  version = "20201001";
+  version = "2021-04-01";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "re2";
-    rev = "2020-10-01";
-    sha256 = "0a5f7av1pk6p3jxc2w6prl00lyrplap97m68hnhw7jllnwljk0bx";
+    rev = version;
+    sha256 = "1iia0883lssj7ckbsr0n7yb3gdw24c8wnl2q5hhzlml23h4ipbh3";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/libraries/readline/8.0.nix b/nixpkgs/pkgs/development/libraries/readline/8.1.nix
index 9ea0277467e5..35835c1a1436 100644
--- a/nixpkgs/pkgs/development/libraries/readline/8.0.nix
+++ b/nixpkgs/pkgs/development/libraries/readline/8.1.nix
@@ -1,13 +1,13 @@
-{ fetchurl, lib, stdenv, ncurses
+{ fetchurl, stdenv, lib, ncurses
 }:
 
 stdenv.mkDerivation rec {
   pname = "readline";
-  version = "8.0p${toString (builtins.length upstreamPatches)}";
+  version = "8.1p${toString (builtins.length upstreamPatches)}";
 
   src = fetchurl {
     url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz";
-    sha256 = "0qg4924hf4hg0r0wbx2chswsr08734536fh5iagkd3a7f4czafg3";
+    sha256 = "00ibp0n9crbwx15k9vvckq5wsipw98b1px8pd8i34chy2gpb9kpq";
   };
 
   outputs = [ "out" "dev" "man" "doc" "info" ];
@@ -20,11 +20,11 @@ stdenv.mkDerivation rec {
     (let
        patch = nr: sha256:
          fetchurl {
-           url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline80-${nr}";
+           url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline81-${nr}";
            inherit sha256;
          };
      in
-       import ./readline-8.0-patches.nix patch);
+       import ./readline-8.1-patches.nix patch);
 
   patches =
     [ ./link-against-ncurses.patch
@@ -57,6 +57,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ dtzWill ];
 
     platforms = platforms.unix;
-    branch = "8.0";
+    branch = "8.1";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix b/nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix
deleted file mode 100644
index 2fac6a413c71..000000000000
--- a/nixpkgs/pkgs/development/libraries/readline/readline-8.0-patches.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-# Automatically generated by `update-patch-set.sh'; do not edit.
-
-patch: [
-(patch "001" "0sfh7wn0pr743xspnb1zndxndlv9rc0hcg14cbw5cmyg6f4ykrfq")
-(patch "002" "1xy8mv8xm8hsfixwp3ci9kfx3dii3y92cq27wwd0jq75y6zzxc1n")
-(patch "003" "1vza7sxjcsr2z295ij12nzgncdil1vb6as3mqy4m7svi1chv5pcl")
-(patch "004" "0k1rfx9w32lglxg564yvp0mw6jg6883p8ac2f2lxxqpf80m3vami")
-]
diff --git a/nixpkgs/pkgs/development/libraries/readline/readline-8.1-patches.nix b/nixpkgs/pkgs/development/libraries/readline/readline-8.1-patches.nix
new file mode 100644
index 000000000000..b8019fb33502
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/readline/readline-8.1-patches.nix
@@ -0,0 +1,4 @@
+# Automatically generated by `update-patch-set.sh'; do not edit.
+
+patch: [
+]
diff --git a/nixpkgs/pkgs/development/libraries/rlottie/default.nix b/nixpkgs/pkgs/development/libraries/rlottie/default.nix
index a8cd88cae507..f1d3ffd02124 100644
--- a/nixpkgs/pkgs/development/libraries/rlottie/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rlottie/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rlottie";
-  version = "0.1";
+  version = "0.2";
 
   src = fetchFromGitHub {
     owner = "Samsung";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-8KQ0ZnVg5rTb44IYnn02WBSe2SA5UGUOSLEdmmscUDs=";
+    sha256 = "10bxr1zf9wxl55d4cw2j02r6sgqln7mbxplhhfvhw0z92fi40kr3";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Samsung/rlottie";
     description = "A platform independent standalone c++ library for rendering vector based animations and art in realtime";
-    license = licenses.unfree; # Mixed, see https://github.com/Samsung/rlottie/blob/master/COPYING
+    license = with licenses; [ mit bsd3 mpl11 ftl ];
     platforms = platforms.all;
     maintainers = with maintainers; [ CRTified ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix b/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
index 2d3ebc6cb414..5bae8df59e6a 100644
--- a/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
@@ -2,23 +2,33 @@
 
 stdenv.mkDerivation rec {
   pname = "s2n-tls";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1q6kmgwb8jxmc4ijzk9pkqzz8lsbfsv9hyzqvy944w7306zx1r5h";
+    sha256 = "sha256-V/ZtO6t+Jxu/HmAEVzjkXuGWbZFwkGLsab1UCSG2tdk=";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  propagatedBuildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto).
+  outputs = [ "out" "dev"];
+
+  buildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto).
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
   ];
 
+  propagatedBuildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto).
+
+  postInstall = ''
+    substituteInPlace $out/lib/s2n/cmake/shared/s2n-targets.cmake \
+      --replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include"' 'INTERFACE_INCLUDE_DIRECTORIES ""'
+  '';
+
   meta = with lib; {
     description = "C99 implementation of the TLS/SSL protocols";
     homepage = "https://github.com/aws/s2n-tls";
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
index f7966046fa87..7a9a5a80700f 100644
--- a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "indilib";
-  version = "1.8.9";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi";
     rev = "v${version}";
-    sha256 = "sha256-W6LfrKL56K1B6srEfbNcq1MZwg7Oj8qoJkQ83ZhYhFs=";
+    sha256 = "sha256-YdVBzhz+Gim27/Js5MhEJNukoXp5eK9/dZ+JQVyls0M=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
index 34ef40887135..5909a06cfb59 100644
--- a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchFromGitHub
 , cmake
 , cfitsio
 , libusb1
@@ -18,39 +17,54 @@
 , libdc1394
 , gpsd
 , ffmpeg
+, version
+, src
+, withFirmware ? false
+, firmware ? null
 }:
 
 stdenv.mkDerivation rec {
   pname = "indi-3rdparty";
-  version = "1.8.9";
 
-  src = fetchFromGitHub {
-    owner = "indilib";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0klvknhp7l6y2ab4vyv4jq7znk1gjl5b3709kyplm7dsh4b8bppy";
-  };
+  inherit version src;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
+    libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
+  ] ++ lib.optionals withFirmware [
+    firmware
+  ];
+
+  postPatch = ''
+    for f in indi-qsi/CMakeLists.txt \
+             indi-dsi/CMakeLists.txt \
+             indi-armadillo-platypus/CMakeLists.txt
+    do
+      substituteInPlace $f \
+        --replace "/lib/udev/rules.d" "lib/udev/rules.d" \
+        --replace "/etc/udev/rules.d" "lib/udev/rules.d" \
+        --replace "/lib/firmware" "lib/firmware"
+    done
+  '';
 
   cmakeFlags = [
-    "-DINDI_DATA_DIR=\${CMAKE_INSTALL_PREFIX}/share/indi"
+    "-DINDI_DATA_DIR=share/indi"
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
     "-DRULES_INSTALL_DIR=lib/udev/rules.d"
+    # Pentax, Atik, and SX cmakelists are currently broken
+    "-DWITH_PENTAX=off"
+    "-DWITH_ATIK=off"
     "-DWITH_SX=off"
-    "-DWITH_SBIG=off"
+  ] ++ lib.optionals (!withFirmware) [
     "-DWITH_APOGEE=off"
-    "-DWITH_FISHCAMP=off"
     "-DWITH_DSI=off"
     "-DWITH_QHY=off"
     "-DWITH_ARMADILLO=off"
-    "-DWITH_PENTAX=off"
-  ];
-
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [
-    indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
-    libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
+    "-DWITH_FISHCAMP=off"
+    "-DWITH_SBIG=off"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix
new file mode 100644
index 000000000000..d23673ac37ae
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, lib
+, cmake
+, cfitsio
+, libusb1
+, zlib
+, boost
+, libnova
+, curl
+, libjpeg
+, gsl
+, fftw
+, indilib
+, libgphoto2
+, libraw
+, libftdi1
+, libdc1394
+, gpsd
+, ffmpeg
+, version
+, src
+}:
+
+stdenv.mkDerivation rec {
+  pname = "indi-firmware";
+
+  inherit version src;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
+    libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
+  ];
+
+  cmakeFlags = [
+    "-DINDI_DATA_DIR=\${CMAKE_INSTALL_PREFIX}/share/indi"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
+    "-DRULES_INSTALL_DIR=lib/udev/rules.d"
+    "-DFIRMWARE_INSTALL_DIR=\${CMAKE_INSTALL_PREFIX}/lib/firmware"
+    "-DCONF_DIR=etc"
+    "-DBUILD_LIBS=1"
+    "-DWITH_PENTAX=off"
+  ];
+
+  postPatch = ''
+    for f in libfishcamp/CMakeLists.txt libsbig/CMakeLists.txt
+    do
+      substituteInPlace $f --replace "/lib/firmware" "lib/firmware"
+    done
+  '';
+
+  postFixup = ''
+    rm $out/lib/udev/rules.d/99-fli.rules
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.indilib.org/";
+    description = "Third party firmware for the INDI astronomical software suite";
+    changelog = "https://github.com/indilib/indi-3rdparty/releases/tag/v${version}";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ hjones2199 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
index e52da9f2eab1..50aa9fb8b4ac 100644
--- a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
@@ -1,11 +1,30 @@
-{ callPackage, indilib, indi-3rdparty }:
+{ stdenv, lib, callPackage, fetchFromGitHub, indilib }:
 
 let
-  indi-with-drivers = ./indi-with-drivers.nix;
+  indi-version = "1.9.0";
+  indi-3rdparty-src = fetchFromGitHub {
+    owner = "indilib";
+    repo = "indi-3rdparty";
+    rev = "v${indi-version}";
+    sha256 = "sha256-5VR1MN52a0ZtaHYw4lD6LWmnvc1oHlfE5GLGbfBKvqE=";
+  };
+  indi-firmware = callPackage ./indi-firmware.nix {
+    version = indi-version;
+    src = indi-3rdparty-src;
+  };
+  indi-3rdparty = callPackage ./indi-3rdparty.nix {
+    version = indi-version;
+    src = indi-3rdparty-src;
+    withFirmware = stdenv.isx86_64;
+    firmware = indi-firmware;
+  };
 in
-callPackage indi-with-drivers {
-  pkgName = "indi-full";
+callPackage ./indi-with-drivers.nix {
+  pname = "indi-full";
+  version = indi-version;
   extraDrivers = [
     indi-3rdparty
+  ] ++ lib.optionals stdenv.isx86_64 [
+    indi-firmware
   ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
index 27ac86ddbadf..5ec1acdf21e9 100644
--- a/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
@@ -1,7 +1,7 @@
-{ buildEnv, indilib ? indilib, extraDrivers ? null , pkgName ? "indi-with-drivers" }:
+{ buildEnv, indilib ? indilib, pname ? "indi-with-drivers", version ? null, extraDrivers ? null }:
 
 buildEnv {
-  name = pkgName;
+  name = "${pname}-${version}";
   paths = [
     indilib
   ]
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix
index f55c72bd2095..c3a63c637c34 100644
--- a/nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/stellarsolver/default.nix
@@ -25,6 +25,6 @@ mkDerivation rec {
     description = "Astrometric plate solving library";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hjones2199 ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/benchmark/papi/default.nix b/nixpkgs/pkgs/development/libraries/science/benchmark/papi/default.nix
index c265f24c182b..d4610d60415b 100644
--- a/nixpkgs/pkgs/development/libraries/science/benchmark/papi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/benchmark/papi/default.nix
@@ -2,19 +2,17 @@
 , fetchurl
 }:
 
-stdenv.mkDerivation {
-  version = "5.6.0";
+stdenv.mkDerivation rec {
+  version = "6.0.0.1";
   pname = "papi";
 
   src = fetchurl {
-    url = "https://bitbucket.org/icl/papi/get/papi-5-6-0-t.tar.gz";
-    sha256 = "13mngf9kl0y2wfxqvkad0smdaag7k8fvw82b4312gx62nwhc1i6r";
+    url = "https://bitbucket.org/icl/papi/get/papi-${lib.replaceStrings ["."] ["-"] version}-t.tar.gz";
+    sha256 = "1jd67yadyffzxwsqlylsi0bx8ishb0cgj2ziz1wdslaz6ylvyf9j";
   };
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=format-truncation";
-
-  preConfigure = ''
-    cd src
+  setSourceRoot = ''
+    sourceRoot=$(echo */src)
   '';
 
   doCheck = true;
@@ -22,9 +20,9 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://icl.utk.edu/papi/";
-    description = "PAPI provides the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors";
+    description = "Library providing access to various hardware performance counters";
     license = licenses.bsdOriginal;
     platforms = platforms.linux;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc zhaofengli ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix b/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
index 23e44bf28b06..a26a3bb6d8d9 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
@@ -46,6 +46,10 @@ stdenv.mkDerivation rec {
     export OMP_NUM_THREADS=2
   '';
 
+  postFixup = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libarpack.dylib
+  '';
+
   meta = {
     homepage = "https://github.com/opencollab/arpack-ng";
     description = ''
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix b/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
index d4c7fcac9785..d2a5a8c2a790 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
@@ -30,12 +30,12 @@ in rec {
   cudnn_cudatoolkit_10 = cudnn_cudatoolkit_10_2;
 
   cudnn_cudatoolkit_11_0 = generic rec {
-    version = "8.1.0";
+    version = "8.1.1";
     cudatoolkit = cudatoolkit_11_0;
     # 8.1.0 is compatible with CUDA 11.0, 11.1, and 11.2:
     # https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions
-    srcName = "cudnn-11.2-linux-x64-v8.1.0.77.tgz";
-    sha256 = "sha256-2+gvrwcdkbqbzwBIAUatM/RiSC3+5WyvRHnBuNq+Pss=";
+    srcName = "cudnn-11.2-linux-x64-v8.1.1.33.tgz";
+    hash = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo=";
   };
 
   cudnn_cudatoolkit_11_1 = cudnn_cudatoolkit_11_0.override {
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix b/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
index d9c19e6790c6..f5a4fac1a908 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -1,8 +1,11 @@
 { version
 , srcName
-, sha256
+, hash ? null
+, sha256 ? null
 }:
 
+assert (hash != null) || (sha256 != null);
+
 { stdenv
 , lib
 , cudatoolkit
@@ -22,11 +25,13 @@ stdenv.mkDerivation {
   name = "cudatoolkit-${cudatoolkit.majorVersion}-cudnn-${version}";
 
   inherit version;
-  src = fetchurl {
+
+  src = let
+    hash_ = if hash != null then { inherit hash; } else { inherit sha256; };
+  in fetchurl ({
     # URL from NVIDIA docker containers: https://gitlab.com/nvidia/cuda/blob/centos7/7.0/runtime/cudnn4/Dockerfile
     url = "https://developer.download.nvidia.com/compute/redist/cudnn/v${version}/${srcName}";
-    inherit sha256;
-  };
+  } // hash_);
 
   nativeBuildInputs = [ addOpenGLRunpath ];
 
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
index 481836a4e115..87b5835aa9ef 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -18,7 +18,7 @@ let
   # this derivation. However, we should ensure on version bumps
   # that the CUDA toolkit for `passthru.tests` is still
   # up-to-date.
-  version = "1.8.0";
+  version = "1.8.1";
   device = if cudaSupport then "cuda" else "cpu";
   srcs = import ./binary-hashes.nix version;
   unavailable = throw "libtorch is not available for this platform";
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
index 208e0b7adab8..ec4522a75592 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
@@ -1,14 +1,14 @@
 version: {
   x86_64-darwin-cpu = {
     url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-${version}.zip";
-    hash = "sha256-V1lbztMB09wyWjdiJrwVwJ00DT8Kihy/TC2cKmdBLIE=";
+    hash = "sha256-FYgnd5zlycjCYnP5bZcjpMdGYXrRERwhFFBYo/SJgzs=";
   };
   x86_64-linux-cpu = {
     url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcpu.zip";
-    hash = "sha256-xBaNyI7eiQnSArHMITonrQQLZnZCZK/SWKOTWnxzdpc=";
+    hash = "sha256-xneCcVrY25Whgbs/kPbwdS1Lc0e6RxsDRpA5lHTZigc=";
   };
   x86_64-linux-cuda = {
     url = "https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcu111.zip";
-    hash = "sha256-uQ7ptOuzowJ0JSPIvJHyNotBfpsqAnxpMDLq7Vl6L00=";
+    hash = "sha256-VW+TW00nD49GBztCyxHE4dTyy81aN/kfYE3hKQOIm50=";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
index 60f9b5ad8846..eaea649d4340 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -42,8 +42,9 @@ in stdenv.mkDerivation {
     touch $out
   '';
 
-  checkPhase = ''
+  checkPhase = lib.optionalString cudaSupport ''
     LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
-      ./test
+  '' + ''
+    ./test
   '';
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix b/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
index c66e4ba44ef9..f464a755f6e4 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
@@ -15,6 +15,8 @@
 # Select a specific optimization target (other than the default)
 # See https://github.com/xianyi/OpenBLAS/blob/develop/TargetList.txt
 , target ? null
+# Select whether DYNAMIC_ARCH is enabled or not.
+, dynamicArch ? null
 , enableStatic ? stdenv.hostPlatform.isStatic
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
@@ -25,27 +27,28 @@ let blas64_ = blas64; in
 
 let
   setTarget = x: if target == null then x else target;
+  setDynamicArch = x: if dynamicArch == null then x else dynamicArch;
 
   # To add support for a new platform, add an element to this set.
   configs = {
     armv6l-linux = {
       BINARY = 32;
       TARGET = setTarget "ARMV6";
-      DYNAMIC_ARCH = false;
+      DYNAMIC_ARCH = setDynamicArch false;
       USE_OPENMP = true;
     };
 
     armv7l-linux = {
       BINARY = 32;
       TARGET = setTarget "ARMV7";
-      DYNAMIC_ARCH = false;
+      DYNAMIC_ARCH = setDynamicArch false;
       USE_OPENMP = true;
     };
 
     aarch64-darwin = {
       BINARY = 64;
       TARGET = setTarget "VORTEX";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = false;
       MACOSX_DEPLOYMENT_TARGET = "11.0";
     };
@@ -53,21 +56,21 @@ let
     aarch64-linux = {
       BINARY = 64;
       TARGET = setTarget "ARMV8";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = true;
     };
 
     i686-linux = {
       BINARY = 32;
       TARGET = setTarget "P2";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = true;
     };
 
     x86_64-darwin = {
       BINARY = 64;
       TARGET = setTarget "ATHLON";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = false;
       MACOSX_DEPLOYMENT_TARGET = "10.7";
     };
@@ -75,14 +78,14 @@ let
     x86_64-linux = {
       BINARY = 64;
       TARGET = setTarget "ATHLON";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = !stdenv.hostPlatform.isMusl;
     };
 
     powerpc64le-linux = {
       BINARY = 64;
       TARGET = setTarget "POWER5";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = !stdenv.hostPlatform.isMusl;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix b/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
index 2b6eb5705cd9..741c6f4898b6 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , abseil-cpp
 , bzip2
@@ -17,25 +16,16 @@
 
 stdenv.mkDerivation rec {
   pname = "or-tools";
-  version = "8.1";
+  version = "9.0";
   disabled = python.pythonOlder "3.6";  # not supported upstream
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "or-tools";
     rev = "v${version}";
-    sha256 = "1zqgvkaw5vf2d8pwsa34g9jysbpiwplzxc8jyy8kdbzmj8ax3gpg";
+    sha256 = "0yihrsg8wj4b82xwg1hbn97my8zqd7xhw7dk7wm2axsyvqd6m3b3";
   };
 
-  patches = [
-    # This patch (on master as of Feb 11, 2021) fixes or-tools failing to respect
-    # USE_SCIP=OFF and then failing to find scip/scip.h
-    (fetchpatch {
-      url = "https://github.com/google/or-tools/commit/17321869832b5adaccd9864e7e5576122730a5d5.patch";
-      sha256 = "0bi2z1hqlpdm1if3xa5dzc2zv0qlm5xi2x979brx10f8k779ghn0";
-    })
-  ];
-
   # The original build system uses cmake which does things like pull
   # in dependencies through git and Makefile creation time. We
   # obviously don't want to do this so instead we provide the
diff --git a/nixpkgs/pkgs/development/libraries/snack/default.nix b/nixpkgs/pkgs/development/libraries/snack/default.nix
index 4948e481ff58..41d776c68698 100644
--- a/nixpkgs/pkgs/development/libraries/snack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/snack/default.nix
@@ -1,4 +1,4 @@
-# alsaLib vorbis-tools python can be made optional
+# alsa-lib vorbis-tools python can be made optional
 
 { lib, stdenv, fetchurl, python, tcl, tk, vorbis-tools, pkg-config, xlibsWrapper }:
 
diff --git a/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix b/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix
index 593bd87a9829..c9db54fd59c4 100644
--- a/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sofia-sip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, glib, openssl, pkg-config, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, glib, openssl, pkg-config, autoreconfHook, SystemConfiguration }:
 
 stdenv.mkDerivation rec {
   pname = "sofia-sip";
@@ -11,13 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qMgZpLo/BHGJbJ0DDN8COHAhU3ujWgVK9oZOnnMwKas=";
   };
 
-  buildInputs = [ glib openssl ];
+  buildInputs = [ glib openssl ] ++ lib.optional stdenv.isDarwin SystemConfiguration;
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   meta = with lib; {
     description = "Open-source SIP User-Agent library, compliant with the IETF RFC3261 specification";
     homepage = "https://github.com/freeswitch/sofia-sip";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.lgpl2;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/spandsp/3.nix b/nixpkgs/pkgs/development/libraries/spandsp/3.nix
index b3522afdf860..ceb53e05744e 100644
--- a/nixpkgs/pkgs/development/libraries/spandsp/3.nix
+++ b/nixpkgs/pkgs/development/libraries/spandsp/3.nix
@@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A portable and modular SIP User-Agent with audio and video support";
     homepage = "https://github.com/freeswitch/spandsp";
-    platforms = with lib.platforms; linux;
-    maintainers = with lib.maintainers; [ ajs124 ];
+    platforms = with lib.platforms; unix;
+    maintainers = with lib.maintainers; [ ajs124 misuzu ];
     license = lib.licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/spatialite-tools/default.nix b/nixpkgs/pkgs/development/libraries/spatialite-tools/default.nix
index ffded04510b4..265769f872f4 100644
--- a/nixpkgs/pkgs/development/libraries/spatialite-tools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spatialite-tools/default.nix
@@ -1,15 +1,40 @@
-{ lib, stdenv, fetchurl, pkg-config, sqlite, expat, zlib, proj, geos, libspatialite, readosm }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, geos
+, expat
+, librttopo
+, libspatialite
+, libxml2
+, minizip
+, proj
+, readosm
+, sqlite
+}:
 
 stdenv.mkDerivation rec {
-  name = "spatialite-tools-4.1.1";
+  pname = "spatialite-tools";
+  version = "5.0.1";
 
   src = fetchurl {
-    url = "https://www.gaia-gis.it/gaia-sins/spatialite-tools-sources/${name}.tar.gz";
-    sha256 = "14aqmhvab63ydbb82fglsbig7jw1wmci8jjvci07aavdhvh1pyrv";
+    url = "https://www.gaia-gis.it/gaia-sins/spatialite-tools-sources/${pname}-${version}.tar.gz";
+    sha256 = "sha256-lgTCBeh/A3eJvFIwLGbM0TccPpjHTo7E4psHUt41Fxw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ sqlite expat zlib proj geos libspatialite readosm ];
+
+  buildInputs = [
+    expat
+    geos
+    librttopo
+    libspatialite
+    libxml2
+    minizip
+    proj
+    readosm
+    sqlite
+  ];
 
   configureFlags = [ "--disable-freexl" ];
 
@@ -17,10 +42,11 @@ stdenv.mkDerivation rec {
 
   NIX_LDFLAGS = "-lsqlite3";
 
-  meta = {
+  meta = with lib; {
     description = "A complete sqlite3-compatible CLI front-end for libspatialite";
     homepage = "https://www.gaia-gis.it/fossil/spatialite-tools";
-    license = with lib.licenses; [ mpl11 gpl2Plus lgpl21Plus ];
-    platforms = lib.platforms.linux;
+    license = with licenses; [ mpl11 gpl2Plus lgpl21Plus ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/spdk/default.nix b/nixpkgs/pkgs/development/libraries/spdk/default.nix
index a0c875079c44..eec08f3cc2d0 100644
--- a/nixpkgs/pkgs/development/libraries/spdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spdk/default.nix
@@ -13,31 +13,17 @@
 , openssl
 }:
 
-let
-  dpdk-compat-patch = fetchurl {
-    url = "https://review.spdk.io/gerrit/plugins/gitiles/spdk/spdk/+/6acb9a58755856fb9316baf9dbbb7239dc6b9446%5E%21/?format=TEXT";
-    sha256 = "18q0956fkjw19r29hp16x4pygkfv01alj9cld2wlqqyfgp41nhn0";
-  };
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "spdk";
-  version = "20.04.1";
+  version = "21.04";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "ApMyGamPrMalzZLbVkJlcwatiB8dOJmoxesdjkWZElk=";
+    sha256 = "sha256-Xmmgojgtt1HwTqG/1ZOJVo1BcdAH0sheu40d73OJ68w=";
   };
 
-  patches = [
-    ./spdk-dpdk-meson.patch
-    # https://review.spdk.io/gerrit/c/spdk/spdk/+/3134
-    (fetchpatch {
-      url = "https://github.com/spdk/spdk/commit/c954b5b722c5c163774d3598458ff726c48852ab.patch";
-      sha256 = "1n149hva5qxmpr0nmav10nya7zklafxi136f809clv8pag84g698";
-    })
-  ];
-
   nativeBuildInputs = [
     python3
   ];
@@ -48,14 +34,13 @@ in stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs .
-    base64 -d ${dpdk-compat-patch} | patch -p1
   '';
 
   configureFlags = [ "--with-dpdk=${dpdk}" ];
 
   NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile.
-
-  enableParallelBuilding = true;
+  # otherwise does not find strncpy when compiling
+  NIX_LDFLAGS = "-lbsd";
 
   meta = with lib; {
     description = "Set of libraries for fast user-mode storage";
diff --git a/nixpkgs/pkgs/development/libraries/speech-tools/default.nix b/nixpkgs/pkgs/development/libraries/speech-tools/default.nix
index c54b4a3721f6..8706b8789227 100644
--- a/nixpkgs/pkgs/development/libraries/speech-tools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/speech-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, ncurses }:
+{ lib, stdenv, fetchurl, alsa-lib, ncurses }:
 
 stdenv.mkDerivation rec {
   name = "speech_tools-${version}.0";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1k2xh13miyv48gh06rgsq2vj25xwj7z6vwq9ilsn8i7ig3nrgzg4";
   };
 
-  buildInputs = [ alsaLib ncurses ];
+  buildInputs = [ alsa-lib ncurses ];
 
   preConfigure = ''
     sed -e s@/usr/bin/@@g -i $( grep -rl '/usr/bin/' . )
diff --git a/nixpkgs/pkgs/development/libraries/speechd/default.nix b/nixpkgs/pkgs/development/libraries/speechd/default.nix
index b6ec4842e077..80034a5a9cf0 100644
--- a/nixpkgs/pkgs/development/libraries/speechd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/speechd/default.nix
@@ -2,6 +2,7 @@
 , substituteAll
 , pkg-config
 , fetchurl
+, fetchpatch
 , python3Packages
 , gettext
 , itstool
@@ -14,7 +15,7 @@
 , libsndfile
 , withLibao ? true, libao
 , withPulse ? false, libpulseaudio
-, withAlsa ? false, alsaLib
+, withAlsa ? false, alsa-lib
 , withOss ? false
 , withFlite ? true, flite
 # , withFestival ? false, festival-freebsoft-utils
@@ -51,6 +52,13 @@ in stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       utillinux = util-linux;
     })
+
+    # Fix build with Glib 2.68
+    # https://github.com/brailcom/speechd/pull/462
+    (fetchpatch {
+      url = "https://github.com/brailcom/speechd/commit/a2faab416e42cbdf3d73f98578a89eb7a235e25a.patch";
+      sha256 = "8Q7tUdKKBBtgXZZnj59OcJOkrCNeBR9gkBjhKlpW0hQ=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -69,7 +77,7 @@ in stdenv.mkDerivation rec {
     libsndfile
     libao
     libpulseaudio
-    alsaLib
+    alsa-lib
     python
   ] ++ optionals withEspeak [
     espeak
diff --git a/nixpkgs/pkgs/development/libraries/spice/default.nix b/nixpkgs/pkgs/development/libraries/spice/default.nix
index 584b1e15a8e3..ff1f5eb8041a 100644
--- a/nixpkgs/pkgs/development/libraries/spice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spice/default.nix
@@ -4,7 +4,7 @@
 , ninja
 , pkg-config
 , pixman
-, alsaLib
+, alsa-lib
 , openssl
 , libXrandr
 , libXfixes
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     cyrus_sasl
     glib
     gst_all_1.gst-plugins-base
diff --git a/nixpkgs/pkgs/development/libraries/sqlite/sqlar.nix b/nixpkgs/pkgs/development/libraries/sqlite/sqlar.nix
index 0828f2f45543..9063879b7e37 100644
--- a/nixpkgs/pkgs/development/libraries/sqlite/sqlar.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlite/sqlar.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, fuse, zlib }:
+{ lib, stdenv, fetchurl, fuse, zlib
+, withFuse ? true }:
 
 stdenv.mkDerivation {
   pname = "sqlar";
@@ -9,12 +10,21 @@ stdenv.mkDerivation {
     sha256 = "09pikkbp93gqypn3da9zi0dzc47jyypkwc9vnmfzhmw7kpyv8nm9";
   };
 
-  buildInputs = [ fuse zlib ];
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace 'gcc' '${stdenv.cc.targetPrefix}cc'
+  '';
+
+  buildInputs = [ zlib ]
+    ++ lib.optional withFuse fuse;
 
-  buildFlags = [ "sqlar" "sqlarfs" "CFLAGS=-Wno-error" ];
+  buildFlags = [ "CFLAGS=-Wno-error" "sqlar" ]
+    ++ lib.optional withFuse "sqlarfs";
 
   installPhase = ''
-    install -D -t $out/bin sqlar sqlarfs
+    install -D -t $out/bin sqlar
+  '' + lib.optionalString withFuse ''
+    install -D -t $out/bin sqlarfs
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/sqlite/tools.nix b/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
index d260c4211ec9..45bcda727edf 100644
--- a/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
@@ -22,7 +22,7 @@ let
       inherit description homepage;
       downloadPage = http://sqlite.org/download.html;
       license = licenses.publicDomain;
-      maintainers = with maintainers; [ pesterhazy johnazoidberg ];
+      maintainers = with maintainers; [ johnazoidberg ];
       platforms = platforms.unix;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/sqlitecpp/default.nix b/nixpkgs/pkgs/development/libraries/sqlitecpp/default.nix
index ffe5e4bbb838..60724aaa8046 100644
--- a/nixpkgs/pkgs/development/libraries/sqlitecpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlitecpp/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake, sqlite, cppcheck, gtest }:
 
 stdenv.mkDerivation rec {
-  pname = "SQLiteCpp";
+  pname = "sqlitecpp";
   version = "3.1.1";
 
   src = fetchFromGitHub {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "http://srombauts.github.com/SQLiteCpp";
+    homepage = "https://srombauts.github.io/SQLiteCpp/";
     description = "C++ SQLite3 wrapper";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/sundials/default.nix b/nixpkgs/pkgs/development/libraries/sundials/default.nix
index 3536ebd586e4..f04b22abe8c6 100644
--- a/nixpkgs/pkgs/development/libraries/sundials/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sundials/default.nix
@@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "examples" ];
 
   src = fetchurl {
-    url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
-    sha256 = "jW3QlP7Mu41uzEE0DsFqZfq6yC7UQVAj9tfBwjkOovM=";
+    url = "https://github.com/LLNL/sundials/releases/download/v${version}/sundials-${version}.tar.gz";
+    hash = "sha256-SNp7qoFS3bIq7RsC2C0du0+/6iKs9nY0ARqgMDoQCkM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/tachyon/darwin.patch b/nixpkgs/pkgs/development/libraries/tachyon/darwin.patch
deleted file mode 100644
index dbede586f073..000000000000
--- a/nixpkgs/pkgs/development/libraries/tachyon/darwin.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/unix/Make-arch b/unix/Make-arch
-index 08afb85..822c4fc 100644
---- a/unix/Make-arch
-+++ b/unix/Make-arch
-@@ -924,7 +924,7 @@ macosx-thr:
- 	$(MAKE) all \
- 	"ARCH = macosx-thr" \
- 	"CC = cc" \
--	"CFLAGS = -Os -ffast-math -DBsd -DTHR -F/System/Library/Frameworks $(MISCFLAGS)" \
-+	"CFLAGS = -Os -ffast-math -DBsd -DTHR $(MISCFLAGS)" \
- 	"AR = ar" \
- 	"ARFLAGS = r" \
- 	"STRIP = strip" \
-@@ -946,7 +946,7 @@ macosx-x86-thr:
- 	$(MAKE) all \
- 	"ARCH = macosx-x86-thr" \
- 	"CC = cc" \
--	"CFLAGS = -O2 -ffast-math -DBsd -DTHR -F/System/Library/Frameworks $(MISCFLAGS)" \
-+	"CFLAGS = -O2 -ffast-math -DBsd -DTHR $(MISCFLAGS)" \
- 	"AR = ar" \
- 	"ARFLAGS = r" \
- 	"STRIP = strip" \
-@@ -957,7 +957,7 @@ macosx-x86-thr-ogl:
- 	$(MAKE) all \
- 	"ARCH = macosx-x86-thr-ogl" \
- 	"CC = cc" \
--	"CFLAGS = -O2 -ffast-math -DBsd -DTHR -I/usr/X11R6/include -F/System/Library/Frameworks $(MISCFLAGS) -DUSEOPENGL" \
-+	"CFLAGS = -O2 -ffast-math -DBsd -DTHR -I/usr/X11R6/include $(MISCFLAGS) -DUSEOPENGL" \
- 	"AR = ar" \
- 	"ARFLAGS = r" \
- 	"STRIP = strip" \
diff --git a/nixpkgs/pkgs/development/libraries/tachyon/default.nix b/nixpkgs/pkgs/development/libraries/tachyon/default.nix
index 47cebd62df65..5994aeb0a590 100644
--- a/nixpkgs/pkgs/development/libraries/tachyon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tachyon/default.nix
@@ -48,14 +48,18 @@ stdenv.mkDerivation rec {
          if stdenv.hostPlatform.system == "x686-freebsd"   then "bsd"           else
          throw "Don't know what arch to select for tachyon build";
   makeFlags = [ arch ];
+
   patches = [
     # Remove absolute paths in Make-config (and unset variables so they can be set in preBuild)
     ./no-absolute-paths.patch
     # Include new targets (like arm)
     ./make-archs.patch
-  ] ++
-  # Ensure looks for nix-provided Carbon, not system frameworks
-  lib.optional stdenv.isDarwin ./darwin.patch;
+  ];
+  postPatch = ''
+    # Ensure looks for nix-provided Carbon, not system frameworks
+    substituteInPlace unix/Make-arch \
+      --replace '-F/System/Library/Frameworks' ""
+  '';
 
   installPhase = ''
     cd ../compile/${arch}
diff --git a/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix b/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix
index 44e107693c97..95afae065efe 100644
--- a/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix
+++ b/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, cmake, taglib}:
+{lib, stdenv, fetchurl, cmake, taglib, zlib}:
 
 stdenv.mkDerivation rec {
   name = "taglib-extras-1.0.1";
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     sha256 = "0cln49ws9svvvals5fzxjxlzqm0fzjfymn7yfp4jfcjz655nnm7y";
   };
   buildInputs = [ taglib ];
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake zlib ];
 
   # Workaround for upstream bug https://bugs.kde.org/show_bug.cgi?id=357181
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/libraries/taglib/default.nix b/nixpkgs/pkgs/development/libraries/taglib/default.nix
index 3fcfaa12339a..5f136a5e6b64 100644
--- a/nixpkgs/pkgs/development/libraries/taglib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/taglib/default.nix
@@ -1,39 +1,21 @@
-{ lib, stdenv, fetchurl, cmake, fetchpatch
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "taglib";
-  version = "1.11.1";
+  version = "1.12";
 
-  src = fetchurl {
-    url = "http://taglib.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn";
+  src = fetchFromGitHub {
+    owner = "taglib";
+    repo = "taglib";
+    rev = "v${version}";
+    sha256 = "sha256-omErajnYgxbflsbe6pS2KsexZcXisso0WGYnmIud7WA=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/taglib/taglib/issues/829
-      name = "CVE-2017-12678.patch";
-      url = "https://github.com/taglib/taglib/commit/eb9ded1206f18.patch";
-      sha256 = "1bvpxsvmlpi3by7myzss9kkpdkv405612n8ff68mw1ambj8h1m90";
-    })
-
-    (fetchpatch {
-      # https://github.com/taglib/taglib/pull/869
-      name = "CVE-2018-11439.patch";
-      url = "https://github.com/taglib/taglib/commit/272648ccfcccae30e002ccf34a22e075dd477278.patch";
-      sha256 = "0p397qq4anvcm0p8xs68mxa8hg6dl07chg260lc6k2929m34xv72";
-    })
-
-    (fetchpatch {
-      # many consumers of taglib have started vendoring taglib due to this bug
-      name = "fix_ogg_corruption.patch";
-      url = "https://github.com/taglib/taglib/commit/9336c82da3a04552168f208cd7a5fa4646701ea4.patch";
-      sha256 = "01wlwk4gmfxdg5hjj9jmrain7kia89z0zsdaf5gn3nibmy5bq70r";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ zlib ];
@@ -51,7 +33,6 @@ stdenv.mkDerivation rec {
       Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files.
     '';
     license = with licenses; [ lgpl3 mpl11 ];
-    inherit (cmake.meta) platforms;
     maintainers = with maintainers; [ ttuegel ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/tbb/default.nix b/nixpkgs/pkgs/development/libraries/tbb/default.nix
index 2047b0d5bc2e..7aef5ba74768 100644
--- a/nixpkgs/pkgs/development/libraries/tbb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tbb/default.nix
@@ -1,22 +1,44 @@
-{ lib, stdenv, fetchFromGitHub, fixDarwinDylibNames, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }:
+{ lib
+, stdenv
+, fetchurl
+, fetchFromGitHub
+, fixDarwinDylibNames
+}:
 
-with lib; stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "tbb";
-  version = "2019_U9";
+  version = "2020.3";
 
   src = fetchFromGitHub {
-    owner = "01org";
-    repo = "tbb";
-    rev = version;
-    sha256 = "1a39nflw7b2n51jfp3fdprnkpgzaspzww1dckfvaigflfli9s8rj";
+    owner = "oneapi-src";
+    repo = "oneTBB";
+    rev = "v${version}";
+    sha256 = "prO2O5hd+Wz5iA0vfrqmyHFr0Ptzk64so5KpSpvuKmU=";
   };
 
-  nativeBuildInputs = optional stdenv.isDarwin fixDarwinDylibNames;
+  patches = [
+    # Fixes build with Musl.
+    (fetchurl {
+      url = "https://github.com/openembedded/meta-openembedded/raw/39185eb1d1615e919e3ae14ae63b8ed7d3e5d83f/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch";
+      sha256 = "gUfXQ9OZQ82qD6brgauBCsKdjLvyHafMc18B+KxZoYs=";
+    })
 
-  makeFlags = optional (compiler != null) "compiler=${compiler}"
-    ++ optional (stdver != null) "stdver=${stdver}";
+    # Fixes build with Musl.
+    (fetchurl {
+      url = "https://github.com/openembedded/meta-openembedded/raw/39185eb1d1615e919e3ae14ae63b8ed7d3e5d83f/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch";
+      sha256 = "fhorfqO1hHKZ61uq+yTR7eQ8KYdyLwpM3K7WpwJpV74=";
+    })
+  ];
 
-  patches = lib.optional stdenv.hostPlatform.isMusl ./glibc-struct-mallinfo.patch;
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
+  ];
+
+  makeFlags = lib.optionals stdenv.cc.isClang [
+    "compiler=clang"
+  ];
+
+  enableParallelBuilding = true;
 
   installPhase = ''
     runHook preInstall
@@ -29,9 +51,24 @@ with lib; stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  enableParallelBuilding = true;
+  postInstall = let
+    pcTemplate = fetchurl {
+      url = "https://github.com/oneapi-src/oneTBB/raw/master/integration/pkg-config/tbb.pc.in";
+      sha256 = "2pCad9txSpNbzac0vp/VY3x7HNySaYkbH3Rx8LK53pI=";
+    };
+  in ''
+    # Generate pkg-config file based on upstream template.
+    # It should not be necessary with tbb after 2021.2.
+    mkdir -p "$out/lib/pkgconfig"
+    substitute "${pcTemplate}" "$out/lib/pkgconfig/tbb.pc" \
+      --subst-var-by CMAKE_INSTALL_PREFIX "$out" \
+      --subst-var-by CMAKE_INSTALL_LIBDIR "lib" \
+      --subst-var-by CMAKE_INSTALL_INCLUDEDIR "include" \
+      --subst-var-by TBB_VERSION "${version}" \
+      --subst-var-by TBB_LIB_NAME "tbb"
+  '';
 
-  meta = {
+  meta = with lib; {
     description = "Intel Thread Building Blocks C++ Library";
     homepage = "http://threadingbuildingblocks.org/";
     license = licenses.asl20;
@@ -43,7 +80,7 @@ with lib; stdenv.mkDerivation rec {
       represents a higher-level, task-based parallelism that abstracts platform
       details and threading mechanisms for scalability and performance.
     '';
-    platforms = with platforms; linux ++ darwin;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice dizfer ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch b/nixpkgs/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch
deleted file mode 100644
index 64056ecb1462..000000000000
--- a/nixpkgs/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b577153a10c98f4e13405dc93ea2ab1a7b990e07 Mon Sep 17 00:00:00 2001
-From: David Huffman <storedbox+alpine@outlook.com>
-Date: Wed, 6 Jan 2016 07:09:30 -0500
-Subject: [PATCH] hard-code glibc's definition of struct mallinfo
-
----
- src/tbbmalloc/proxy.h | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/src/tbbmalloc/proxy.h b/src/tbbmalloc/proxy.h
-index 781cadc..e1ea1ae 100644
---- a/src/tbbmalloc/proxy.h
-+++ b/src/tbbmalloc/proxy.h
-@@ -32,6 +32,26 @@
- 
- #include <stddef.h>
- 
-+// The following definition was taken from /usr/include/malloc.h as provided by
-+// the glibc-devel-2.19-17.4.x86_64 package on openSUSE Leap 42.1; it is
-+// made available under the GNU Lesser General Public License v2.1 or later.
-+// See <https://www.gnu.org/licenses>.
-+//
-+// Copyright (C) 1996-2014 Free Software Foundation, Inc.
-+struct mallinfo
-+{
-+  int arena;    /* non-mmapped space allocated from system */
-+  int ordblks;  /* number of free chunks */
-+  int smblks;   /* number of fastbin blocks */
-+  int hblks;    /* number of mmapped regions */
-+  int hblkhd;   /* space in mmapped regions */
-+  int usmblks;  /* maximum total allocated space */
-+  int fsmblks;  /* space available in freed fastbin blocks */
-+  int uordblks; /* total allocated space */
-+  int fordblks; /* total free space */
-+  int keepcost; /* top-most, releasable (via malloc_trim) space */
-+};
-+
- extern "C" {
-     void * scalable_malloc(size_t size);
-     void * scalable_calloc(size_t nobj, size_t size);
--- 
-2.6.2
-
diff --git a/nixpkgs/pkgs/development/libraries/template-glib/default.nix b/nixpkgs/pkgs/development/libraries/template-glib/default.nix
index 2c89e3f433ab..c0ee2c1d3506 100644
--- a/nixpkgs/pkgs/development/libraries/template-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/template-glib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, glib, gobject-introspection, flex, bison, vala, gettext, gnome3, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }:
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, glib, gobject-introspection, flex, bison, vala, gettext, gnome, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }:
 let
   version = "3.34.0";
   pname = "template-glib";
@@ -21,8 +21,9 @@ stdenv.mkDerivation {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/tepl/default.nix b/nixpkgs/pkgs/development/libraries/tepl/default.nix
index 84d50faf54e2..f561efb473c5 100644
--- a/nixpkgs/pkgs/development/libraries/tepl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tepl/default.nix
@@ -3,7 +3,7 @@
 , meson
 , ninja
 , amtk
-, gnome3
+, gnome
 , gobject-introspection
 , gtk3
 , gtksourceview4
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tepl";
-  version = "5.0.1";
+  version = "6.00.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sSdJZ2CfUkSEs4d1+p7LKWxtZhaqvQUvKGM5oomRKAQ=";
+    sha256 = "0qvs7s86gqyyrzi0r5fbrj8zczlgv8xhdjswgbgc1afwjnl9fqx8";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,10 @@ stdenv.mkDerivation rec {
   # correctly installed or GVfs metadata are not supported on this platform. In
   # the latter case, you should configure Tepl with --disable-gvfs-metadata.
 
-  passthru.updateScript = gnome3.updateScript { packageName = pname; };
+  passthru.updateScript = gnome.updateScript {
+    packageName = pname;
+    versionPolicy = "odd-unstable";
+  };
 
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/Tepl";
diff --git a/nixpkgs/pkgs/development/libraries/tk/generic.nix b/nixpkgs/pkgs/development/libraries/tk/generic.nix
index 57dc3dac2d09..ecb3840b2de3 100644
--- a/nixpkgs/pkgs/development/libraries/tk/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/tk/generic.nix
@@ -16,6 +16,12 @@ stdenv.mkDerivation {
     cd unix
   '';
 
+  postPatch = ''
+    for file in $(find library/demos/. -type f ! -name "*.*"); do
+      substituteInPlace $file --replace "exec wish" "exec $out/bin/wish"
+    done
+  '';
+
   postInstall = ''
     ln -s $out/bin/wish* $out/bin/wish
     cp ../{unix,generic}/*.h $out/include
diff --git a/nixpkgs/pkgs/development/libraries/totem-pl-parser/default.nix b/nixpkgs/pkgs/development/libraries/totem-pl-parser/default.nix
index c93ec8dccf9b..08c989b799b6 100644
--- a/nixpkgs/pkgs/development/libraries/totem-pl-parser/default.nix
+++ b/nixpkgs/pkgs/development/libraries/totem-pl-parser/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gettext, libxml2, gobject-introspection, gnome3 }:
+{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gettext, libxml2, gobject-introspection, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "totem-pl-parser";
@@ -10,8 +10,9 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix b/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix
index 5b4c1d195ece..c571e2238447 100644
--- a/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tracker-miners/default.nix
@@ -20,7 +20,7 @@
 , exempi
 , giflib
 , glib
-, gnome3
+, gnome
 , gst_all_1
 , icu
 , json-glib
@@ -48,11 +48,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tracker-miners";
-  version = "3.0.4";
+  version = "3.1.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-E877xx1S93RvPTfQQdjFvBM2pA/13ZK1Nw6GUMJqiY4=";
+    sha256 = "sha256-5NNhNRsVbyhipSRBX76/BTnHgc2HxmKWYvAmW0gDuLg=";
   };
 
   nativeBuildInputs = [
@@ -122,7 +122,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/libraries/tracker/default.nix b/nixpkgs/pkgs/development/libraries/tracker/default.nix
index ab769312c36f..0ee5e0fa5672 100644
--- a/nixpkgs/pkgs/development/libraries/tracker/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tracker/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchurl
+, fetchpatch
 , gettext
 , meson
 , ninja
@@ -17,7 +18,7 @@
 , sqlite
 , libxslt
 , libstemmer
-, gnome3
+, gnome
 , icu
 , libuuid
 , libsoup
@@ -27,15 +28,15 @@
 , substituteAll
 }:
 
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
   pname = "tracker";
-  version = "3.0.3";
+  version = "3.1.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-b1yEqzvh7aUgUBsq7XIhYWoM8VKRDFN3V7U4vAXv/KM=";
+    sha256 = "sha256-Q3bi6YRUBm9E96JC5FuZs7/kwDtn+rGauw7Vhsp0iuc=";
   };
 
   patches = [
@@ -43,6 +44,17 @@ stdenv.mkDerivation (rec {
       src = ./fix-paths.patch;
       inherit asciidoc;
     })
+
+    # Add missing build target dependencies to fix parallel building of docs.
+    # TODO: Upstream this.
+    ./fix-docs.patch
+
+    # Fix 32bit datetime issue, use this upstream patch until 3.1.2 lands
+    # https://gitlab.gnome.org/GNOME/tracker/-/merge_requests/401
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/tracker/merge_requests/401.patch";
+      sha256 = "QEf+ciGkkCzanmtGO0aig6nAxd+NxjvuNi4RbNOwZEA=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -74,22 +86,23 @@ stdenv.mkDerivation (rec {
     libstemmer
   ];
 
-  checkInputs = [
-    python3.pkgs.pygobject3
+  checkInputs = with python3.pkgs; [
+    pygobject3
+    tappy
   ];
 
   mesonFlags = [
     "-Ddocs=true"
   ];
 
-  # https://gitlab.gnome.org/GNOME/tracker/-/issues/292#note_1075369
-  doCheck = !stdenv.isi686;
+  doCheck = true;
 
   postPatch = ''
     patchShebangs utils/g-ir-merge/g-ir-merge
     patchShebangs utils/data-generators/cc/generate
     patchShebangs tests/functional-tests/test-runner.sh.in
     patchShebangs tests/functional-tests/*.py
+    patchShebangs examples/python/endpoint.py
   '';
 
   preCheck = ''
@@ -120,7 +133,7 @@ stdenv.mkDerivation (rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
@@ -134,8 +147,3 @@ stdenv.mkDerivation (rec {
     platforms = platforms.linux;
   };
 }
-  // {
-    # TMP: fatal error: libtracker-sparql/tracker-sparql-enum-types.h: No such file or directory
-    enableParallelBuilding = false;
-  }
-)
diff --git a/nixpkgs/pkgs/development/libraries/tracker/fix-docs.patch b/nixpkgs/pkgs/development/libraries/tracker/fix-docs.patch
new file mode 100644
index 000000000000..a6ff84cda3e5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tracker/fix-docs.patch
@@ -0,0 +1,28 @@
+diff --git a/docs/reference/libtracker-sparql/examples/meson.build b/docs/reference/libtracker-sparql/examples/meson.build
+index 1cb1d9f3f..313c72345 100644
+--- a/docs/reference/libtracker-sparql/examples/meson.build
++++ b/docs/reference/libtracker-sparql/examples/meson.build
+@@ -1,20 +1,20 @@
+ executable(
+   'readonly-example',
+   'readonly-example.c',
+-  dependencies: tracker_sparql_dep,
++  dependencies: [tracker_common_dep, tracker_sparql_dep],
+   build_by_default: true
+ )
+ 
+ executable(
+   'writeonly-example',
+   'writeonly-example.c',
+-  dependencies: tracker_sparql_dep,
++  dependencies: [tracker_common_dep, tracker_sparql_dep],
+   build_by_default: true
+ )
+ 
+ executable(
+   'writeonly-with-blank-nodes-example',
+   'writeonly-with-blank-nodes-example.c',
+-  dependencies: tracker_sparql_dep,
++  dependencies: [tracker_common_dep, tracker_sparql_dep],
+   build_by_default: true
+ )
diff --git a/nixpkgs/pkgs/development/libraries/ubus/default.nix b/nixpkgs/pkgs/development/libraries/ubus/default.nix
index db947d373a2d..4bbec39291a9 100644
--- a/nixpkgs/pkgs/development/libraries/ubus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ubus/default.nix
@@ -2,22 +2,22 @@
 
 stdenv.mkDerivation {
   pname = "ubus";
-  version = "unstable-2020-01-05";
+  version = "unstable-2021-02-15";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/ubus.git";
-    rev = "d35df8adda873dc75d876f72b78e84db8cfa72ee";
-    sha256 = "1ksrih5vfyixaafzsrs6ab88qw34d0197wvw201jl5p1fc7drgn4";
+    rev = "2537be01858710e714c329153760c64fe3f8a73e";
+    sha256 = "03ljxsn4w87bfrilccxhrkzqmd30hy6ihkvsinw0i3l7rpp5m4a7";
   };
 
-  cmakeFlags = [ "-D BUILD_LUA:BOOL=OFF" ];
+  cmakeFlags = [ "-DBUILD_LUA=OFF" ];
   buildInputs = [ libubox libjson ];
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
     description = "OpenWrt system message/RPC bus";
     homepage = "https://git.openwrt.org/?p=project/ubus.git;a=summary";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ petabyteboy ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/uci/default.nix b/nixpkgs/pkgs/development/libraries/uci/default.nix
index 0a5af8b907b8..49aba6cd1831 100644
--- a/nixpkgs/pkgs/development/libraries/uci/default.nix
+++ b/nixpkgs/pkgs/development/libraries/uci/default.nix
@@ -2,23 +2,23 @@
 
 stdenv.mkDerivation {
   pname = "uci";
-  version = "unstable-2020-04-27";
+  version = "unstable-2021-04-14";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/uci.git";
-    rev = "ec8d3233948603485e1b97384113fac9f1bab5d6";
-    sha256 = "0p765l8znvwhzhgkq7dp36w62k5rmzav59vgdqmqq1bjmlz1yyi6";
+    rev = "4b3db1179747b6a6779029407984bacef851325c";
+    sha256 = "1zflxazazzkrycpflzfg420kzp7kgy4dlz85cms279vk07dc1d52";
   };
 
   hardeningDisable = [ "all" ];
-  cmakeFlags = [ "-D BUILD_LUA:BOOL=OFF" ];
+  cmakeFlags = [ "-DBUILD_LUA=OFF" ];
   buildInputs = [ libubox ];
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
     description = "OpenWrt Unified Configuration Interface";
     homepage = "https://git.openwrt.org/?p=project/uci.git;a=summary";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ petabyteboy ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/ucx/default.nix b/nixpkgs/pkgs/development/libraries/ucx/default.nix
index fae81276878e..872e7fbc4f21 100644
--- a/nixpkgs/pkgs/development/libraries/ucx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ucx/default.nix
@@ -2,17 +2,15 @@
 , numactl, rdma-core, libbfd, libiberty, perl, zlib
 }:
 
-let
-  version = "1.9.0";
-
-in stdenv.mkDerivation {
-  name = "ucx-${version}";
+stdenv.mkDerivation rec {
+  pname = "ucx";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "openucx";
     repo = "ucx";
     rev = "v${version}";
-    sha256 = "0i0ji5ivzxjqh3ys1m517ghw3am7cw1hvf40ma7hsq3wznsyx5s1";
+    sha256 = "1jl7wrmcpf6lakpi1gvjcs18cy0mmwgsv5wdd80zyl41cpd8gm8d";
   };
 
   nativeBuildInputs = [ autoreconfHook doxygen ];
diff --git a/nixpkgs/pkgs/development/libraries/umockdev/default.nix b/nixpkgs/pkgs/development/libraries/umockdev/default.nix
index d27adb2a061d..2dac161bb4a4 100644
--- a/nixpkgs/pkgs/development/libraries/umockdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/umockdev/default.nix
@@ -1,6 +1,8 @@
-{ lib, stdenv
-, docbook_xsl
+{ stdenv
+, lib
+, docbook-xsl-nons
 , fetchurl
+, fetchpatch
 , glib
 , gobject-introspection
 , gtk-doc
@@ -19,21 +21,23 @@ stdenv.mkDerivation rec {
   pname = "umockdev";
   version = "0.15.4";
 
-  outputs = [ "bin" "out" "dev" "doc" ];
+  outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
     sha256 = "09k8jwvsphd97hcagf0zaf0hwzlzq2r8jfgbmvj55k7ylrg8hjxg";
   };
 
-  mesonFlags = [
-    "-Dgtk_doc=true"
+  patches = [
+    # Fix build with Vala 0.52
+    (fetchpatch {
+      url = "https://github.com/martinpitt/umockdev/commit/a236f0b55fbb6ff50a6429da9d404703d6637d94.patch";
+      sha256 = "sZs9Ove1r7te/a9vmWUmFetLVhyzhHmx7ijhkK/2S5o=";
+    })
   ];
 
-  buildInputs = [ glib systemd libgudev ];
-
   nativeBuildInputs = [
-    docbook_xsl
+    docbook-xsl-nons
     gobject-introspection
     gtk-doc
     meson
@@ -42,20 +46,27 @@ stdenv.mkDerivation rec {
     vala
   ];
 
-  checkInputs = [ python3 which usbutils ];
+  buildInputs = [
+    glib
+    systemd
+    libgudev
+  ];
+
+  checkInputs = [
+    python3
+    which
+    usbutils
+  ];
 
-  enableParallelBuilding = true;
+  mesonFlags = [
+    "-Dgtk_doc=true"
+  ];
 
   doCheck = true;
 
-  postInstall = ''
-    mkdir -p $doc/share/doc/umockdev/
-    mv docs/reference $doc/share/doc/umockdev/
-  '';
-
   meta = with lib; {
     description = "Mock hardware devices for creating unit tests";
-    license = licenses.lgpl2;
+    license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ flokli ];
     platforms = with platforms; linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/usrsctp/default.nix b/nixpkgs/pkgs/development/libraries/usrsctp/default.nix
new file mode 100644
index 000000000000..64b1debc0ce5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/usrsctp/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "usrsctp";
+  version = "0.9.5.0";
+
+  src = fetchFromGitHub {
+    owner = "sctplab";
+    repo = "usrsctp";
+    rev = version;
+    sha256 = "10ndzkip8blgkw572n3dicl6mgjaa7kygwn3vls80liq92vf1sa9";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    homepage = "https://github.com/sctplab/usrsctp";
+    description = "A portable SCTP userland stack";
+    maintainers = with maintainers; [ misuzu ];
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/v8/default.nix b/nixpkgs/pkgs/development/libraries/v8/default.nix
index d513e01b7a35..7c463aa01228 100644
--- a/nixpkgs/pkgs/development/libraries/v8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/v8/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchgit, fetchFromGitHub
-, gn, ninja, python, glib, pkg-config, icu
+, gn, ninja, python, pythonPackages, glib, pkg-config, icu
 , xcbuild, darwin
 , fetchpatch
 }:
@@ -55,6 +55,11 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   patches = [
+    # Remove unrecognized clang debug flags
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/saiarcot895/chromium-ubuntu-build/663dbfc492fd2f8ba28d9af40fb3b1327e6aa56e/debian/patches/revert-Xclang-instcombine-lower-dbg-declare.patch";
+      sha256 = "07qp4bjgbwbdrzqslvl2bgbzr3v97b9isbp0539x3lc8cy3h02g1";
+    })
     ./darwin.patch
     ./gcc_arm.patch  # Fix building zlib with gcc on aarch64, from https://gist.github.com/Adenilson/d973b6fd96c7709d33ddf08cf1dcb149
   ];
@@ -78,6 +83,13 @@ stdenv.mkDerivation rec {
   postPatch = lib.optionalString stdenv.isAarch64 ''
     substituteInPlace build/toolchain/linux/BUILD.gn \
       --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace build/config/compiler/compiler.gni \
+      --replace 'strip_absolute_paths_from_debug_symbols = true' \
+                'strip_absolute_paths_from_debug_symbols = false'
+    substituteInPlace build/config/compiler/BUILD.gn \
+      --replace 'current_toolchain == host_toolchain || !use_xcode_clang' \
+                'false'
   '';
 
   gnFlags = [
@@ -85,6 +97,7 @@ stdenv.mkDerivation rec {
     "is_clang=${lib.boolToString stdenv.cc.isClang}"
     "use_sysroot=false"
     # "use_system_icu=true"
+    "clang_use_chrome_plugins=false"
     "is_component_build=false"
     "v8_use_external_startup_data=false"
     "v8_monolithic=true"
@@ -93,16 +106,25 @@ stdenv.mkDerivation rec {
     "treat_warnings_as_errors=false"
     "v8_enable_i18n_support=true"
     "use_gold=false"
-    "use_system_xcode=true"
+    "init_stack_vars=false"
     # ''custom_toolchain="//build/toolchain/linux/unbundle:default"''
     ''host_toolchain="//build/toolchain/linux/unbundle:default"''
     ''v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"''
   ] ++ lib.optional stdenv.cc.isClang ''clang_base_path="${stdenv.cc}"'';
 
   NIX_CFLAGS_COMPILE = "-O2";
-
-  nativeBuildInputs = [ gn ninja pkg-config python ]
-    ++ lib.optionals stdenv.isDarwin [ xcbuild darwin.DarwinTools ];
+  FORCE_MAC_SDK_MIN = stdenv.targetPlatform.sdkVer or "10.12";
+
+  nativeBuildInputs = [
+    gn
+    ninja
+    pkg-config
+    python
+  ] ++ lib.optionals stdenv.isDarwin [
+    xcbuild
+    darwin.DarwinTools
+    pythonPackages.setuptools
+  ];
   buildInputs = [ glib icu ];
 
   ninjaFlags = [ ":d8" "v8_monolith" ];
diff --git a/nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix b/nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix
index 55b2b03c893e..95df3c97747f 100644
--- a/nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix
+++ b/nixpkgs/pkgs/development/libraries/vapoursynth/plugin-interface.nix
@@ -8,10 +8,11 @@ plugins: let
 
   getRecursivePropagatedBuildInputs = pkgs: lib.flatten
     (map
-      (pkg: pkg.propagatedBuildInputs ++ (getRecursivePropagatedBuildInputs pkg.propagatedBuildInputs))
+      (pkg: let cleanPropagatedBuildInputs = lib.filter lib.isDerivation pkg.propagatedBuildInputs;
+        in cleanPropagatedBuildInputs ++ (getRecursivePropagatedBuildInputs cleanPropagatedBuildInputs))
       pkgs);
 
-  deepPlugins = plugins ++ (getRecursivePropagatedBuildInputs plugins);
+  deepPlugins = lib.unique (plugins ++ (getRecursivePropagatedBuildInputs plugins));
 
   pluginsEnv = buildEnv {
     name = "vapoursynth-plugins-env";
diff --git a/nixpkgs/pkgs/development/libraries/vte/2.90.nix b/nixpkgs/pkgs/development/libraries/vte/2.90.nix
index 4a9e4d8a66c9..55ef86c88a0e 100644
--- a/nixpkgs/pkgs/development/libraries/vte/2.90.nix
+++ b/nixpkgs/pkgs/development/libraries/vte/2.90.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
       the system's terminfo database.
     '';
     license = licenses.lgpl2;
-    maintainers = with maintainers; [ astsmtl antono lethalman ];
+    maintainers = with maintainers; [ astsmtl antono ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/vte/default.nix b/nixpkgs/pkgs/development/libraries/vte/default.nix
index a17b164445f3..c3631cccbe01 100644
--- a/nixpkgs/pkgs/development/libraries/vte/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vte/default.nix
@@ -6,11 +6,12 @@
 , pkg-config
 , meson
 , ninja
-, gnome3
+, gnome
 , glib
 , gtk3
 , gobject-introspection
 , vala
+, python3
 , libxml2
 , gnutls
 , gperf
@@ -24,18 +25,25 @@
 
 stdenv.mkDerivation rec {
   pname = "vte";
-  version = "0.62.2";
+  version = "0.64.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-sDALvPDALfWBKhCjy45P/3I7q5LAjJegqQwWfPVDr/A=";
+    sha256 = "sha256-EvtBqf+OA8XxcRtGVgkQpLmzECrsPp52Cc7vTfqYqio=";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = pname; };
-  };
+  patches = [
+    # VTE needs a small patch to work with musl:
+    # https://gitlab.gnome.org/GNOME/vte/issues/72
+    # Taken from https://git.alpinelinux.org/aports/tree/community/vte3
+    (fetchpatch {
+      name = "0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch";
+      url = "https://git.alpinelinux.org/aports/plain/community/vte3/fix-W_EXITCODE.patch?id=4d35c076ce77bfac7655f60c4c3e4c86933ab7dd";
+      sha256 = "FkVyhsM0mRUzZmS2Gh172oqwcfXv6PyD6IEgjBhy2uU=";
+    })
+  ];
 
   nativeBuildInputs = [
     gettext
@@ -46,6 +54,7 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     vala
+    python3
   ];
 
   buildInputs = [
@@ -64,22 +73,20 @@ stdenv.mkDerivation rec {
     pango
   ];
 
-  patches =
-    # VTE needs a small patch to work with musl:
-    # https://gitlab.gnome.org/GNOME/vte/issues/72
-    lib.optional
-      stdenv.hostPlatform.isMusl
-      (fetchpatch {
-            name = "0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch";
-            url = "https://gitlab.gnome.org/GNOME/vte/uploads/c334f767f5d605e0f30ecaa2a0e4d226/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch";
-            sha256 = "1ii9db9i5l3fy2alxz7bjfsgjs3lappnlx339dvxbi2141zknf5r";
-      });
-
   postPatch = ''
     patchShebangs perf/*
     patchShebangs src/box_drawing_generate.sh
+    patchShebangs src/parser-seq.py
+    patchShebangs src/modes.py
   '';
 
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      versionPolicy = "odd-unstable";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://www.gnome.org/";
     description = "A library implementing a terminal emulator widget for GTK";
@@ -91,8 +98,8 @@ stdenv.mkDerivation rec {
       character set conversion, as well as emulating any terminal known to
       the system's terminfo database.
     '';
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ astsmtl antono lethalman ] ++ teams.gnome.members;
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ astsmtl antono ] ++ teams.gnome.members;
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/waffle/default.nix b/nixpkgs/pkgs/development/libraries/waffle/default.nix
index dd783036f230..e6d8a98b5335 100644
--- a/nixpkgs/pkgs/development/libraries/waffle/default.nix
+++ b/nixpkgs/pkgs/development/libraries/waffle/default.nix
@@ -1,36 +1,34 @@
 { stdenv
 , fetchFromGitLab
 , lib
+, cmake
 , meson
 , ninja
+, bash-completion
 , libGL
-, libglvnd ? null
+, libglvnd
 , makeWrapper
 , pkg-config
 , python3
-, x11Support ? true, libxcb ? null, libX11 ? null
-, waylandSupport ? true, wayland ? null
-, useGbm ? true, mesa ? null, libudev ? null
+, x11Support ? true, libxcb, libX11
+, waylandSupport ? true, wayland, wayland-protocols
+, useGbm ? true, mesa, udev
 }:
 
-assert x11Support -> (libxcb != null && libX11 != null);
-assert waylandSupport -> wayland != null;
-assert useGbm -> (mesa != null && libudev != null);
-assert with stdenv.hostPlatform; isUnix && !isDarwin -> libglvnd != null;
-
 stdenv.mkDerivation rec {
   pname = "waffle";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mesa";
     repo = "waffle";
     rev = "v${version}";
-    sha256 = "0s8gislmhccfa04zsj1yqk97lscbbnmxirr2zm4q3p8ybmpfhpqr";
+    sha256 = "iY+dAgXutD/uDFocwd9QXjq502IOsk+3RQMA2S/CMV4=";
   };
 
   buildInputs = [
+    bash-completion
     libGL
   ] ++ lib.optionals (with stdenv.hostPlatform; isUnix && !isDarwin) [
     libglvnd
@@ -39,19 +37,25 @@ stdenv.mkDerivation rec {
     libxcb
   ] ++ lib.optionals waylandSupport [
     wayland
+    wayland-protocols
   ] ++ lib.optionals useGbm [
+    udev
     mesa
-    libudev
   ];
 
+  dontUseCmakeConfigure = true;
+
   nativeBuildInputs = [
+    cmake
+    makeWrapper
     meson
     ninja
-    makeWrapper
     pkg-config
     python3
   ];
 
+  PKG_CONFIG_BASH_COMPLETION_COMPLETIONSDIR= "${placeholder "out"}/share/bash-completion/completions";
+
   postInstall = ''
     wrapProgram $out/bin/wflinfo \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libglvnd ]}
diff --git a/nixpkgs/pkgs/development/libraries/wasilibc/default.nix b/nixpkgs/pkgs/development/libraries/wasilibc/default.nix
index f8142f046b74..56ed7367b2b2 100644
--- a/nixpkgs/pkgs/development/libraries/wasilibc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wasilibc/default.nix
@@ -1,7 +1,8 @@
 { stdenv, fetchFromGitHub, lib }:
 
 stdenv.mkDerivation {
-  name = "wasilibc-20190712";
+  pname = "wasilibc";
+  version = "20190712";
   src = fetchFromGitHub {
     owner = "CraneStation";
     repo = "wasi-libc";
diff --git a/nixpkgs/pkgs/development/libraries/wayland/default.nix b/nixpkgs/pkgs/development/libraries/wayland/default.nix
index 07671ddebddc..08741c29dd6d 100644
--- a/nixpkgs/pkgs/development/libraries/wayland/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wayland/default.nix
@@ -1,11 +1,12 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , substituteAll
 , meson
 , pkg-config
 , ninja
-, wayland
+, wayland-scanner
 , expat
 , libxml2
 , withLibraries ? stdenv.isLinux
@@ -37,6 +38,11 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    # Picked from upstream 'main' branch for Darwin support.
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/wayland/wayland/-/commit/f452e41264387dee4fd737cbf1af58b34b53941b.patch";
+      sha256 = "00mk32a01vgn31sm3wk4p8mfwvqv3xv02rxvdj1ygnzgb1ac62r7";
+    })
     (substituteAll {
       src = ./0001-add-placeholder-for-nm.patch;
       nm = "${stdenv.cc.targetPrefix}nm";
@@ -64,7 +70,7 @@ stdenv.mkDerivation rec {
     pkg-config
     ninja
   ] ++ lib.optionals isCross [
-    wayland # For wayland-scanner during the build
+    wayland-scanner
   ] ++ lib.optionals withDocumentation [
     (graphviz-nox.override { pango = null; }) # To avoid an infinite recursion
     doxygen
@@ -85,6 +91,18 @@ stdenv.mkDerivation rec {
     docbook_xml_dtd_42
   ];
 
+  postFixup = ''
+    # The pkg-config file is required for cross-compilation:
+    mkdir -p $bin/lib/pkgconfig/
+    cat <<EOF > $bin/lib/pkgconfig/wayland-scanner.pc
+    wayland_scanner=$bin/bin/wayland-scanner
+
+    Name: Wayland Scanner
+    Description: Wayland scanner
+    Version: ${version}
+    EOF
+  '';
+
   meta = with lib; {
     description = "Core Wayland window system code and protocol";
     longDescription = ''
@@ -99,6 +117,8 @@ stdenv.mkDerivation rec {
     license = licenses.mit; # Expat version
     platforms = if withLibraries then platforms.linux else platforms.unix;
     maintainers = with maintainers; [ primeos codyopel qyliss ];
+    # big sur doesn't support gcc stdenv and wayland doesn't build with clang
+    broken = stdenv.isDarwin;
   };
 
   passthru.version = version;
diff --git a/nixpkgs/pkgs/development/libraries/wayland/protocols.nix b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix
index 23258aff3e93..8a2b05aa4dff 100644
--- a/nixpkgs/pkgs/development/libraries/wayland/protocols.nix
+++ b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix
@@ -1,19 +1,15 @@
-{ lib, stdenv, fetchurl, pkg-config
-, wayland
-}:
+{ lib, stdenv, fetchurl, wayland-scanner }:
 
 stdenv.mkDerivation rec {
   pname = "wayland-protocols";
-  version = "1.20";
+  version = "1.21";
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp";
+    sha256 = "1rfdlkzz67qsb955zqb8jbw3m22pl6ppvrvfq8bqiqcb5n24b6dr";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ wayland ];
+  nativeBuildInputs = [ wayland-scanner ];
 
   meta = {
     description = "Wayland protocol extensions";
diff --git a/nixpkgs/pkgs/development/libraries/webkitgtk/428774.patch b/nixpkgs/pkgs/development/libraries/webkitgtk/428774.patch
new file mode 100644
index 000000000000..85da185dc4e4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/webkitgtk/428774.patch
@@ -0,0 +1,86 @@
+diff -aru a/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp b/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp
+--- a/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp	2021-02-26 04:57:15.000000000 -0500
++++ b/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp	2021-05-16 14:45:32.000000000 -0400
+@@ -87,7 +87,7 @@
+     if (!m_store.createSharedMemoryHandle(handle))
+         return;
+ 
+-#if OS(DARWIN) || OS(WINDOWS)
++#if (OS(DARWIN) || OS(WINDOWS)) && !USE(UNIX_DOMAIN_SOCKETS)
+     uint64_t dataSize = handle.size();
+ #else
+     uint64_t dataSize = 0;
+diff -aru a/Source/WebKit/Platform/IPC/IPCSemaphore.cpp b/Source/WebKit/Platform/IPC/IPCSemaphore.cpp
+--- a/Source/WebKit/Platform/IPC/IPCSemaphore.cpp	2021-02-26 04:57:15.000000000 -0500
++++ b/Source/WebKit/Platform/IPC/IPCSemaphore.cpp	2021-05-16 15:54:53.000000000 -0400
+@@ -26,8 +26,6 @@
+ #include "config.h"
+ #include "IPCSemaphore.h"
+ 
+-#if !OS(DARWIN)
+-
+ namespace IPC {
+ 
+ Semaphore::Semaphore() = default;
+@@ -46,5 +44,3 @@
+ }
+ 
+ }
+-
+-#endif
+diff -aru a/Source/WebKit/Platform/IPC/IPCSemaphore.h b/Source/WebKit/Platform/IPC/IPCSemaphore.h
+--- a/Source/WebKit/Platform/IPC/IPCSemaphore.h	2021-02-26 04:57:15.000000000 -0500
++++ b/Source/WebKit/Platform/IPC/IPCSemaphore.h	2021-05-16 14:46:13.000000000 -0400
+@@ -29,7 +29,7 @@
+ #include <wtf/Optional.h>
+ #include <wtf/Seconds.h>
+ 
+-#if OS(DARWIN)
++#if PLATFORM(COCOA)
+ #include <mach/semaphore.h>
+ #include <wtf/MachSendRight.h>
+ #endif
+@@ -51,7 +51,7 @@
+     void encode(Encoder&) const;
+     static Optional<Semaphore> decode(Decoder&);
+ 
+-#if OS(DARWIN)
++#if PLATFORM(COCOA)
+     explicit Semaphore(MachSendRight&&);
+ 
+     void signal();
+@@ -64,7 +64,7 @@
+ #endif
+ 
+ private:
+-#if OS(DARWIN)
++#if PLATFORM(COCOA)
+     void destroy();
+     MachSendRight m_sendRight;
+     semaphore_t m_semaphore { SEMAPHORE_NULL };
+Only in b/Source/WebKit/Platform/IPC: IPCSemaphore.h.orig
+diff -aru a/Source/WebKit/Platform/SharedMemory.h b/Source/WebKit/Platform/SharedMemory.h
+--- a/Source/WebKit/Platform/SharedMemory.h	2021-02-26 04:57:15.000000000 -0500
++++ b/Source/WebKit/Platform/SharedMemory.h	2021-05-16 14:45:32.000000000 -0400
+@@ -75,7 +75,7 @@
+ 
+         bool isNull() const;
+ 
+-#if OS(DARWIN) || OS(WINDOWS)
++#if (OS(DARWIN) || OS(WINDOWS)) && !USE(UNIX_DOMAIN_SOCKETS)
+         size_t size() const { return m_size; }
+ #endif
+ 
+diff -aru a/Source/WebKit/UIProcess/VisitedLinkStore.cpp b/Source/WebKit/UIProcess/VisitedLinkStore.cpp
+--- a/Source/WebKit/UIProcess/VisitedLinkStore.cpp	2021-02-26 04:57:16.000000000 -0500
++++ b/Source/WebKit/UIProcess/VisitedLinkStore.cpp	2021-05-16 14:45:32.000000000 -0400
+@@ -119,7 +119,7 @@
+         return;
+ 
+     // FIXME: Get the actual size of data being sent from m_linkHashStore and send it in the SharedMemory::IPCHandle object.
+-#if OS(DARWIN) || OS(WINDOWS)
++#if (OS(DARWIN) || OS(WINDOWS)) && !USE(UNIX_DOMAIN_SOCKETS)
+     uint64_t dataSize = handle.size();
+ #else
+     uint64_t dataSize = 0;
+Only in b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics: DrawingAreaCoordinatedGraphics.cpp.orig
diff --git a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
index 84a9e2a1db77..40f51d6f48a3 100644
--- a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv
+, runCommandNoCC
 , fetchurl
+, fetchpatch
 , perl
 , python3
 , ruby
@@ -34,6 +36,7 @@
 , libidn
 , libedit
 , readline
+, sdk
 , libGL
 , libGLU
 , mesa
@@ -53,15 +56,14 @@
 , xdg-dbus-proxy
 , substituteAll
 , glib
+, addOpenGLRunpath
 }:
 
 assert enableGeoLocation -> geoclue2 != null;
 
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.32.0";
+  version = "2.32.1";
 
   outputs = [ "out" "dev" ];
 
@@ -69,15 +71,42 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "1w3b0w8izp0i070grhv19j631sdcd0mcqnjnax13k8mdx7dg8zcx";
+    sha256 = "05v9hgpkc6mi2klrd8nqql1n8xzq8rgdz3hvyy369xkhgwqifq8k";
   };
 
-  patches = optionals stdenv.isLinux [
+  patches = lib.optionals stdenv.isLinux [
     (substituteAll {
       src = ./fix-bubblewrap-paths.patch;
       inherit (builtins) storeDir;
+      inherit (addOpenGLRunpath) driverLink;
     })
     ./libglvnd-headers.patch
+  ] ++ lib.optionals stdenv.isDarwin [
+    (fetchpatch {
+      url = "https://github.com/WebKit/WebKit/commit/94cdcd289b993ed4d39c17d4b8b90db7c81a9b10.diff";
+      sha256 = "sha256-ywrTEjf3ATqI0Vvs60TeAZ+m58kCibum4DamRWrQfaA=";
+      excludes = [ "Source/WebKit/ChangeLog" ];
+    })
+
+    # https://bugs.webkit.org/show_bug.cgi?id=225856
+    (fetchpatch {
+      url = "https://bug-225856-attachments.webkit.org/attachment.cgi?id=428797";
+      sha256 = "sha256-ffo5p2EyyjXe3DxdrvAcDKqxwnoqHtYBtWod+1fOjMU=";
+      excludes = [ "Source/WebCore/ChangeLog" ];
+    })
+
+    # https://bugs.webkit.org/show_bug.cgi?id=225850
+    ./428774.patch # https://bug-225850-attachments.webkit.org/attachment.cgi?id=428774
+    (fetchpatch {
+      url = "https://bug-225850-attachments.webkit.org/attachment.cgi?id=428776";
+      sha256 = "sha256-ryNRYMsk72SL0lNdh6eaAdDV3OT8KEqVq1H0j581jmQ=";
+      excludes = [ "Source/WTF/ChangeLog" ];
+    })
+    (fetchpatch {
+      url = "https://bug-225850-attachments.webkit.org/attachment.cgi?id=428778";
+      sha256 = "sha256-78iP+T2vaIufO8TmIPO/tNDgmBgzlDzalklrOPrtUeo=";
+      excludes = [ "Source/WebKit/ChangeLog" ];
+    })
   ];
 
   preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
@@ -85,7 +114,7 @@ stdenv.mkDerivation rec {
     # pick up the wrong gettext. TODO: Find a better solution for
     # this, maybe make cmake not look up executables in
     # CMAKE_PREFIX_PATH.
-    cmakeFlags+=" -DCMAKE_IGNORE_PATH=${getBin gettext}/bin"
+    cmakeFlags+=" -DCMAKE_IGNORE_PATH=${lib.getBin gettext}/bin"
   '';
 
   nativeBuildInputs = [
@@ -96,6 +125,7 @@ stdenv.mkDerivation rec {
     gperf
     ninja
     perl
+    perl.pkgs.FileCopyRecursive # used by copy-user-interface-resources.pl
     pkg-config
     python3
     ruby
@@ -118,7 +148,9 @@ stdenv.mkDerivation rec {
     libgcrypt
     libidn
     libintl
+  ] ++ lib.optionals stdenv.isLinux [
     libmanette
+  ] ++ [
     libnotify
     libpthreadstubs
     libsecret
@@ -138,16 +170,22 @@ stdenv.mkDerivation rec {
     libXdmcp
     libXt
     libXtst
-  ]) ++ optionals stdenv.isDarwin [
+  ]) ++ lib.optionals stdenv.isDarwin [
     libedit
     readline
-  ] ++ optionals stdenv.isLinux [
+    # Pull a header that contains a definition of proc_pid_rusage().
+    # (We pick just that one because using the other headers from `sdk` is not
+    # compatible with our C++ standard library)
+    (runCommandNoCC "${pname}_headers" {} ''
+      install -Dm444 "${lib.getDev sdk}"/include/libproc.h "$out"/include/libproc.h
+    '')
+  ] ++ lib.optionals stdenv.isLinux [
     bubblewrap
     libseccomp
     systemd
     wayland
     xdg-dbus-proxy
-  ] ++ optional enableGeoLocation geoclue2;
+  ] ++ lib.optional enableGeoLocation geoclue2;
 
   propagatedBuildInputs = [
     gtk3
@@ -159,27 +197,34 @@ stdenv.mkDerivation rec {
     "-DPORT=GTK"
     "-DUSE_LIBHYPHEN=OFF"
     "-DUSE_WPE_RENDERER=OFF"
-  ] ++ optionals stdenv.isDarwin [
-    "-DENABLE_GRAPHICS_CONTEXT_3D=OFF"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-DENABLE_GAMEPAD=OFF"
     "-DENABLE_GTKDOC=OFF"
     "-DENABLE_MINIBROWSER=OFF"
-    "-DENABLE_OPENGL=OFF"
     "-DENABLE_QUARTZ_TARGET=ON"
     "-DENABLE_VIDEO=ON"
     "-DENABLE_WEBGL=OFF"
     "-DENABLE_WEB_AUDIO=OFF"
     "-DENABLE_X11_TARGET=OFF"
-    "-DUSE_ACCELERATE=0"
+    "-DUSE_APPLE_ICU=OFF"
+    "-DUSE_OPENGL_OR_ES=OFF"
     "-DUSE_SYSTEM_MALLOC=ON"
-  ] ++ optional (stdenv.isLinux && enableGLES) "-DENABLE_GLES2=ON";
+  ] ++ lib.optionals (!stdenv.isLinux) [
+    "-DUSE_SYSTEMD=OFF"
+  ] ++ lib.optional (stdenv.isLinux && enableGLES) "-DENABLE_GLES2=ON";
 
   postPatch = ''
     patchShebangs .
+  '' + lib.optionalString stdenv.isDarwin ''
+    # It needs malloc_good_size.
+    sed 22i'#include <malloc/malloc.h>' -i Source/WTF/wtf/FastMalloc.h
+    # <CommonCrypto/CommonRandom.h> needs CCCryptorStatus.
+    sed 43i'#include <CommonCrypto/CommonCryptor.h>' -i Source/WTF/wtf/RandomDevice.cpp
   '';
 
   requiredSystemFeatures = [ "big-parallel" ];
 
-  meta = {
+  meta = with lib; {
     description = "Web content rendering engine, GTK port";
     homepage = "https://webkitgtk.org/";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch b/nixpkgs/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch
index 03a6b6903a8a..d502958f4f1a 100644
--- a/nixpkgs/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch
@@ -1,16 +1,7 @@
 diff -ru old/webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
 --- old/webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp	2019-09-09 04:47:07.000000000 -0400
 +++ webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp	2019-09-20 21:14:10.537921173 -0400
-@@ -585,7 +585,7 @@
-         { SCMP_SYS(keyctl), nullptr },
-         { SCMP_SYS(request_key), nullptr },
- 
--        // Scary VM/NUMA ops 
-+        // Scary VM/NUMA ops
-         { SCMP_SYS(move_pages), nullptr },
-         { SCMP_SYS(mbind), nullptr },
-         { SCMP_SYS(get_mempolicy), nullptr },
-@@ -724,6 +724,11 @@
+@@ -724,6 +724,12 @@
          "--ro-bind-try", "/usr/local/lib64", "/usr/local/lib64",
  
          "--ro-bind-try", PKGLIBEXECDIR, PKGLIBEXECDIR,
@@ -18,7 +9,8 @@ diff -ru old/webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLa
 +        // Nix Directories
 +        "--ro-bind", "@storeDir@", "@storeDir@",
 +        "--ro-bind", "/run/current-system", "/run/current-system",
-+        "--ro-bind", "/run/opengl-driver", "/run/opengl-driver",
++        "--ro-bind-try", "@driverLink@/lib", "@driverLink@/lib",
++        "--ro-bind-try", "@driverLink@/share", "@driverLink@/share",
      };
      // We would have to parse ld config files for more info.
      bindPathVar(sandboxArgs, "LD_LIBRARY_PATH");
diff --git a/nixpkgs/pkgs/development/libraries/wiiuse/default.nix b/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
index 738c6a430084..d5d34fb618d6 100644
--- a/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
@@ -2,8 +2,10 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, pkg-config
 , bluez
+, libobjc
+, Foundation
+, IOBluetooth
 }:
 stdenv.mkDerivation rec {
 
@@ -19,15 +21,18 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ (lib.getDev bluez) ];
+  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ bluez ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ libobjc Foundation IOBluetooth ];
 
-  cmakeFlags = [ "-DBUILD_EXAMPLE_SDL=NO" ];
+  propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ bluez ];
+
+  cmakeFlags = [ "-DBUILD_EXAMPLE_SDL=OFF" ];
 
   meta = with lib; {
     description = "Feature complete cross-platform Wii Remote access library";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     homepage = "https://github.com/wiiuse/wiiuse";
     maintainers = with maintainers; [ shamilton ];
-    platforms = with platforms; linux;
+    platforms = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/wildmidi/default.nix b/nixpkgs/pkgs/development/libraries/wildmidi/default.nix
index 880823a84732..81c1b51e6589 100644
--- a/nixpkgs/pkgs/development/libraries/wildmidi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wildmidi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, alsaLib, freepats }:
+{ lib, stdenv, fetchurl, cmake, alsa-lib, freepats }:
 
 stdenv.mkDerivation rec {
   name = "wildmidi-0.4.3";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ alsaLib stdenv.cc.libc/*couldn't find libm*/ ];
+  buildInputs = [ alsa-lib stdenv.cc.libc/*couldn't find libm*/ ];
 
   preConfigure = ''
     substituteInPlace CMakeLists.txt \
diff --git a/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix b/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix
index 469da2523d99..b6064c42b5c9 100644
--- a/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix
@@ -14,7 +14,7 @@ let
   mkEnable = mkFlag "enable-" "disable-";
   mkWith = mkFlag "with-" "without-";
 
-  shouldUsePkg = pkg: if pkg != null && lib.any (lib.meta.platformMatch stdenv.hostPlatform) pkg.meta.platforms then pkg else null;
+  shouldUsePkg = pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null;
 
   optLz4 = shouldUsePkg lz4;
   optSnappy = shouldUsePkg snappy;
diff --git a/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix b/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
index 66d4fab2bf98..c21205beabc3 100644
--- a/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
+++ b/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ];
 
+  CFLAGS = "-Wno-error=deprecated-declarations";
+
   postFixup = ''
     # Install ALL example programs to $examples:
     # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
diff --git a/nixpkgs/pkgs/development/libraries/wt/default.nix b/nixpkgs/pkgs/development/libraries/wt/default.nix
index 8887c4410f4c..cb3ceeae2f1c 100644
--- a/nixpkgs/pkgs/development/libraries/wt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wt/default.nix
@@ -21,7 +21,7 @@ let
       buildInputs = [
         boost doxygen qt48Full libharu
         pango fcgi firebird libmysqlclient postgresql graphicsmagick glew
-        openssl pcre
+        openssl pcre harfbuzz
       ];
 
       cmakeFlags = [
@@ -32,8 +32,6 @@ let
         "-DWT_WRASTERIMAGE_IMPLEMENTATION=GraphicsMagick"
         "-DGM_PREFIX=${graphicsmagick}"
       ]
-      ++ lib.optional (harfbuzz != null)
-        "-DHARFBUZZ_INCLUDE_DIR=${harfbuzz.dev}/include"
       ++ lib.optional (libmysqlclient != null)
         "-DMYSQL_PREFIX=${libmysqlclient}";
 
@@ -52,7 +50,7 @@ in {
   };
 
   wt4 = generic {
-    version = "4.2.0";
-    sha256 = "0zrrdjz0sa8hrmybjp4aap1lcqcqvsicd7dj49zj1m5k8gnfpm4v";
+    version = "4.5.0";
+    sha256 = "16svzdma2mc2ggnpy5z7m1ggzhd5nrccmmj8xnc7bd1dd3486xwv";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/wxSVG/default.nix b/nixpkgs/pkgs/development/libraries/wxSVG/default.nix
index 5e7f7b71fbe5..f83f7e408977 100644
--- a/nixpkgs/pkgs/development/libraries/wxSVG/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxSVG/default.nix
@@ -1,34 +1,43 @@
-{ lib, stdenv, fetchurl
-, pkg-config, wxGTK
-, ffmpeg_3, libexif
-, cairo, pango }:
+{ lib
+, stdenv
+, fetchurl
+, cairo
+, ffmpeg
+, libexif
+, pango
+, pkg-config
+, wxGTK
+}:
 
 stdenv.mkDerivation rec {
-
   pname = "wxSVG";
-  srcName = "wxsvg-${version}";
   version = "1.5.22";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/${srcName}.tar.bz2";
-    sha256 = "0agmmwg0zlsw1idygvqjpj1nk41akzlbdha0hsdk1k8ckz6niq8d";
+    url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/wxsvg-${version}.tar.bz2";
+    hash = "sha256-DeFozZ8MzTCbhkDBtuifKpBpg7wS7+dbDFzTDx6v9Sk=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-
-  propagatedBuildInputs = [ wxGTK ffmpeg_3 libexif ];
-
-  buildInputs = [ cairo pango ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    cairo
+    ffmpeg
+    libexif
+    pango
+    wxGTK
+  ];
 
   meta = with lib; {
+    homepage = "http://wxsvg.sourceforge.net/";
     description = "A SVG manipulation library built with wxWidgets";
     longDescription = ''
-    wxSVG is C++ library to create, manipulate and render
-    Scalable Vector Graphics (SVG) files with the wxWidgets toolkit.
+      wxSVG is C++ library to create, manipulate and render Scalable Vector
+      Graphics (SVG) files with the wxWidgets toolkit.
     '';
-    homepage = "http://wxsvg.sourceforge.net/";
-    license = with licenses; gpl2;
+    license = with licenses; gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
-    platforms = with platforms; linux;
+    platforms = wxGTK.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/xcb-imdkit/default.nix b/nixpkgs/pkgs/development/libraries/xcb-imdkit/default.nix
index a3bcc822b367..b2e56c8193b5 100644
--- a/nixpkgs/pkgs/development/libraries/xcb-imdkit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xcb-imdkit/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xcb-imdkit";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "xcb-imdkit";
     rev = version;
-    sha256 = "sha256-ISaVsMtDsyfhbhsAwDSWkQ7ZcpNtvC7M9NFQsWA5ju8=";
+    sha256 = "sha256-IPuTRSgmrnCJRgGWcE4JRaxd0sGCcHrKRnn2B1OdDMU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index be96001c46fb..93a308a658da 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
@@ -5,7 +5,7 @@
 , libxml2
 , xdg-desktop-portal
 , gtk3
-, gnome3
+, gnome
 , glib
 , wrapGAppsHook
 , gsettings-desktop-schemas
@@ -32,10 +32,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    gsettings-desktop-schemas
+    gsettings-desktop-schemas # settings exposed by settings portal
     gtk3
-    gnome3.gnome-desktop
-    gnome3.gnome-settings-daemon # schemas needed for settings api (fonts, etc)
+    gnome.gnome-desktop
+    gnome.gnome-settings-daemon # schemas needed for settings api (mostly useless now that fonts were moved to g-d-s)
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
index da60f2b27fcc..3739284d70ac 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
@@ -1,25 +1,29 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, makeWrapper
 , meson, ninja, pkg-config, wayland-protocols
-, pipewire, wayland, systemd, libdrm }:
+, pipewire, wayland, systemd, libdrm, iniparser, scdoc, grim, slurp }:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-wlr";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vjz0y3ib1xw25z8hl679l2p6g4zcg7b8fcd502bhmnqgwgdcsfx";
+    sha256 = "sha256-6ArUQfWx5rNdpsd8Q22MqlpxLT8GTSsymAf21zGe1KI=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config wayland-protocols ];
-  buildInputs = [ pipewire wayland systemd libdrm ];
+  nativeBuildInputs = [ meson ninja pkg-config wayland-protocols makeWrapper ];
+  buildInputs = [ pipewire wayland systemd libdrm iniparser scdoc ];
 
   mesonFlags = [
     "-Dsd-bus-provider=libsystemd"
   ];
 
+  postInstall = ''
+    wrapProgram $out/libexec/xdg-desktop-portal-wlr --prefix PATH ":" ${lib.makeBinPath [ grim slurp ]}
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/emersion/xdg-desktop-portal-wlr";
     description = "xdg-desktop-portal backend for wlroots";
diff --git a/nixpkgs/pkgs/development/libraries/xgboost/default.nix b/nixpkgs/pkgs/development/libraries/xgboost/default.nix
index 973e7dc028e0..26872565de8f 100644
--- a/nixpkgs/pkgs/development/libraries/xgboost/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xgboost/default.nix
@@ -1,6 +1,14 @@
-{ config, stdenv, lib, fetchgit, cmake
-, cudaSupport ? config.cudaSupport or false, cudatoolkit
-, ncclSupport ? false, nccl
+{ config
+, stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, gtest
+, doCheck ? true
+, cudaSupport ? config.cudaSupport or false
+, cudatoolkit
+, ncclSupport ? false
+, nccl
 , llvmPackages
 }:
 
@@ -8,37 +16,43 @@ assert ncclSupport -> cudaSupport;
 
 stdenv.mkDerivation rec {
   pname = "xgboost";
-  version = "0.90";
-
-  # needs submodules
-  src = fetchgit {
-    url = "https://github.com/dmlc/xgboost";
-    rev = "refs/tags/v${version}";
-    sha256 = "1zs15k9crkiq7bnr4gqq53mkn3w8z9dq4nwlavmfcr5xr5gw2pw4";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "dmlc";
+    repo = pname;
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "12b1417dg8jqyxd72kg5a3xhg5h11vz0k7bkv72mzrv83jvgn5ci";
   };
 
   nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
 
-  buildInputs = lib.optional cudaSupport cudatoolkit
+  buildInputs = [ gtest ] ++ lib.optional cudaSupport cudatoolkit
                 ++ lib.optional ncclSupport nccl;
 
-  cmakeFlags = lib.optionals cudaSupport [ "-DUSE_CUDA=ON" "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc" ]
-               ++ lib.optional ncclSupport "-DUSE_NCCL=ON";
+  cmakeFlags = lib.optionals doCheck [ "-DGOOGLE_TEST=ON" ]
+    ++ lib.optionals cudaSupport [ "-DUSE_CUDA=ON" "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc" ]
+    ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ];
+
+  inherit doCheck;
 
   installPhase = let
     libname = "libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
   in ''
+    runHook preInstall
     mkdir -p $out
     cp -r ../include $out
     install -Dm755 ../lib/${libname} $out/lib/${libname}
     install -Dm755 ../xgboost $out/bin/xgboost
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library";
     homepage = "https://github.com/dmlc/xgboost";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/xine-lib/default.nix b/nixpkgs/pkgs/development/libraries/xine-lib/default.nix
index cbdc1a2dcf0b..70fdf24dd9f4 100644
--- a/nixpkgs/pkgs/development/libraries/xine-lib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xine-lib/default.nix
@@ -1,43 +1,80 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, xorg, alsaLib, libGLU, libGL, aalib
-, libvorbis, libtheora, speex, zlib, perl, ffmpeg_3
-, flac, libcaca, libpulseaudio, libmng, libcdio, libv4l, vcdimager
+{ lib
+, stdenv
+, fetchurl
+, aalib
+, alsa-lib
+, ffmpeg
+, flac
+, libGL
+, libGLU
+, libcaca
+, libcdio
+, libmng
 , libmpcdec
+, libpulseaudio
+, libtheora
+, libv4l
+, libvorbis
+, ncurses
+, perl
+, pkg-config
+, speex
+, vcdimager
+, xorg
+, zlib
 }:
 
 stdenv.mkDerivation rec {
-  name = "xine-lib-1.2.9";
+  pname = "xine-lib";
+  version = "1.2.11";
 
   src = fetchurl {
-    url = "mirror://sourceforge/xine/${name}.tar.xz";
-    sha256 = "13clir4qxl2zvsvvjd9yv3yrdhsnvcn5s7ambbbn5dzy9604xcrj";
+    url = "mirror://sourceforge/xine/xine-lib-${version}.tar.xz";
+    sha256 = "sha256-71GyHRDdoQRfp9cRvZFxz9rwpaKHQjO88W/98o7AcAU=";
   };
 
-  nativeBuildInputs = [ pkg-config perl ];
-
-  buildInputs = [
-    xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext
-    alsaLib libGLU libGL aalib libvorbis libtheora speex perl ffmpeg_3 flac
-    libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec
+  nativeBuildInputs = [
+    pkg-config
+    perl
   ];
+  buildInputs = [
+    aalib
+    alsa-lib
+    ffmpeg
+    flac
+    libGL
+    libGLU
+    libcaca
+    libcdio
+    libmng
+    libmpcdec
+    libpulseaudio
+    libtheora
+    libv4l
+    libvorbis
+    ncurses
+    perl
+    speex
+    vcdimager
+    zlib
+  ] ++ (with xorg; [
+    libX11
+    libXext
+    libXinerama
+    libXv
+    libxcb
+  ]);
 
-  patches = [
-    (fetchpatch {
-      name = "0001-fix-XINE_PLUGIN_PATH-splitting.patch";
-      url = "https://sourceforge.net/p/xine/mailman/attachment/32394053-5e27-6558-f0c9-49e0da0bc3cc%40gmx.de/1/";
-      sha256 = "0nrsdn7myvjs8fl9rj6k4g1bnv0a84prsscg1q9n49gwn339v5rc";
-    })
-  ];
+  enableParallelBuilding = true;
 
   NIX_LDFLAGS = "-lxcb-shm";
 
-  propagatedBuildInputs = [zlib];
-
-  enableParallelBuilding = true;
 
   meta = with lib; {
-    homepage = "http://www.xine-project.org/";
+    homepage = "http://www.xinehq.de/";
     description = "A high-performance, portable and reusable multimedia playback engine";
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
-    license = with licenses; [ gpl2 lgpl2 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/xsimd/default.nix b/nixpkgs/pkgs/development/libraries/xsimd/default.nix
new file mode 100644
index 000000000000..745ee9ee3fce
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/xsimd/default.nix
@@ -0,0 +1,56 @@
+{ lib, stdenv, fetchFromGitHub, cmake, gtest }:
+let
+  version = "7.5.0";
+
+  darwin_src = fetchFromGitHub {
+    owner = "xtensor-stack";
+    repo = "xsimd";
+    rev = version;
+    sha256 = "eGAdRSYhf7rbFdm8g1Tz1ZtSVu44yjH/loewblhv9Vs=";
+    # Avoid requiring apple_sdk. We're doing this here instead of in the patchPhase
+    # because this source is directly used in arrow-cpp.
+    # pyconfig.h defines _GNU_SOURCE to 1, so we need to stamp that out too.
+    # Upstream PR with a better fix: https://github.com/xtensor-stack/xsimd/pull/463
+    postFetch = ''
+      mkdir $out
+      tar -xf $downloadedFile --directory=$out --strip-components=1
+      substituteInPlace $out/include/xsimd/types/xsimd_scalar.hpp \
+        --replace 'defined(__APPLE__)' 0 \
+        --replace 'defined(_GNU_SOURCE)' 0
+    '';
+  };
+
+  src = fetchFromGitHub {
+    owner = "xtensor-stack";
+    repo = "xsimd";
+    rev = version;
+    sha256 = "0c9pq5vz43j99z83w3b9qylfi66mn749k1afpv5cwfxggbxvy63f";
+  };
+in stdenv.mkDerivation {
+  pname = "xsimd";
+  inherit version;
+  src = if stdenv.hostPlatform.isDarwin then darwin_src else src;
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [ "-DBUILD_TESTS=ON" ];
+
+  doCheck = true;
+  checkInputs = [ gtest ];
+  checkTarget = "xtest";
+  GTEST_FILTER = let
+      # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456
+      filteredTests = lib.optionals stdenv.hostPlatform.isDarwin [
+        "error_gamma_test/sse_double.gamma"
+        "error_gamma_test/avx_double.gamma"
+      ];
+    in "-${builtins.concatStringsSep ":" filteredTests}";
+
+  meta = with lib; {
+    description = "C++ wrappers for SIMD intrinsics";
+    homepage = "https://github.com/xtensor-stack/xsimd";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ tobim ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/xtensor/default.nix b/nixpkgs/pkgs/development/libraries/xtensor/default.nix
new file mode 100644
index 000000000000..fe978998d637
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/xtensor/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, xsimd
+, xtl
+}:
+stdenv.mkDerivation rec {
+  pname = "xtensor";
+  version = "0.23.10";
+
+  src = fetchFromGitHub {
+    owner = "xtensor-stack";
+    repo = "xtensor";
+    rev = version;
+    sha256 = "1ayrhyh9x33b87ic01b4jzxc8x27yxpxzya5x54ikazvz8p71n14";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ xtl xsimd ];
+
+  cmakeFlags = [ "-DBUILD_TESTS=ON" ];
+
+  doCheck = true;
+  checkInputs = [ gtest ];
+  checkTarget = "xtest";
+
+  meta = with lib; {
+    description = "Multi-dimensional arrays with broadcasting and lazy computing.";
+    homepage = "https://github.com/xtensor-stack/xtensor";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ cpcloud ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/xtl/default.nix b/nixpkgs/pkgs/development/libraries/xtl/default.nix
new file mode 100644
index 000000000000..fb50105cffa2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/xtl/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+}:
+stdenv.mkDerivation rec {
+  pname = "xtl";
+  version = "0.7.2";
+
+  src = fetchFromGitHub {
+    owner = "xtensor-stack";
+    repo = "xtl";
+    rev = version;
+    sha256 = "177ym67sz544wdylksfkkpi6bqn34kagycfnb3cv0nkmpipqj9lg";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [ "-DBUILD_TESTS=ON" ];
+
+  doCheck = true;
+  checkInputs = [ gtest ];
+  checkTarget = "xtest";
+
+  meta = with lib; {
+    description = "Basic tools (containers, algorithms) used by other quantstack packages";
+    homepage = "https://github.com/xtensor-stack/xtl";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ cpcloud ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/zchunk/default.nix b/nixpkgs/pkgs/development/libraries/zchunk/default.nix
index 2037d815a81b..cf0063f7780d 100644
--- a/nixpkgs/pkgs/development/libraries/zchunk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zchunk/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "zchunk";
-  version = "1.1.9";
+  version = "1.1.11";
 
   outputs = [ "out" "lib" "dev" ];
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     owner = "zchunk";
     repo = pname;
     rev = version;
-    hash = "sha256-MqnHtqOjLl6R5GZ4f2UX1iLoO9FUT2IfZlSN58wW8JA=";
+    hash = "sha256-r+qWJOUnTyPJjM9eW44Q2DMKxx4HloyfNrQ6xWDO9vQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/zeitgeist/default.nix b/nixpkgs/pkgs/development/libraries/zeitgeist/default.nix
index 039ecc610f41..de1953622e93 100644
--- a/nixpkgs/pkgs/development/libraries/zeitgeist/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zeitgeist/default.nix
@@ -20,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "zeitgeist";
-  version = "1.0.2";
+  version = "1.0.3";
 
   outputs = [ "out" "lib" "dev" "man" ] ++ lib.optional pythonSupport "py";
 
@@ -29,14 +29,14 @@ stdenv.mkDerivation rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ig3d3j1n0ghaxsgfww6g2hhcdwx8cljwwfmp9jk1nrvkxd6rnmv";
+    sha256 = "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp";
   };
 
   patches = [
-    # Fix build with gettext 0.20
+    # Fix build with Vala 0.52
     (fetchpatch {
-      url = "https://gitlab.freedesktop.org/zeitgeist/zeitgeist/commit/b5c00e80189fd59a059a95c4e276728a2492cb89.patch";
-      sha256 = "1r7f7j3l2p6xlzxajihgx8bzbc2sxcb9spc9pi26rz9bwmngdyq7";
+      url = "https://gitlab.freedesktop.org/zeitgeist/zeitgeist/commit/64ac3a6f94cd299e5e14945dc31b48f009dec152.patch";
+      sha256 = "Dw1kNE3JoFdmgcQ0eFoFLYvmxlPjXNj56Jkn2meINz4=";
     })
   ];
 
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A service which logs the users’s activities and events";
     homepage = "https://zeitgeist.freedesktop.org/";
-    maintainers = with maintainers; [ lethalman worldofpeace ];
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/zlib/default.nix b/nixpkgs/pkgs/development/libraries/zlib/default.nix
index da8aac5229b6..a9fadf46c4b2 100644
--- a/nixpkgs/pkgs/development/libraries/zlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zlib/default.nix
@@ -37,8 +37,8 @@ stdenv.mkDerivation (rec {
 
   postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
     substituteInPlace configure \
-      --replace '/usr/bin/libtool' 'ar' \
-      --replace 'AR="libtool"' 'AR="ar"' \
+      --replace '/usr/bin/libtool' '${stdenv.cc.targetPrefix}ar' \
+      --replace 'AR="libtool"' 'AR="${stdenv.cc.targetPrefix}ar"' \
       --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"'
   '';
 
@@ -84,7 +84,7 @@ stdenv.mkDerivation (rec {
   ''
     # Non-typical naming confuses libtool which then refuses to use zlib's DLL
     # in some cases, e.g. when compiling libpng.
-  + lib.optionalString (stdenv.hostPlatform.libc == "msvcrt") ''
+  + lib.optionalString (stdenv.hostPlatform.libc == "msvcrt" && shared) ''
     ln -s zlib1.dll $out/bin/libz.dll
   '';
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/README.txt b/nixpkgs/pkgs/development/lisp-modules/README.txt
index 08452d979ad2..46d7208bcd22 100644
--- a/nixpkgs/pkgs/development/lisp-modules/README.txt
+++ b/nixpkgs/pkgs/development/lisp-modules/README.txt
@@ -1,6 +1,6 @@
 Want to add a package?  There are 3 simple steps!
 1. Add the needed system names to quicklisp-to-nix-systems.txt.
-2. cd <path to quicklisp-to-nix-systems.txt> ; nix-shell --run 'quicklisp-to-nix .'
+2. cd <path to quicklisp-to-nix-systems.txt> ; nix-shell --pure --run 'quicklisp-to-nix .'
   You might want to specify also the --cacheSystemInfoDir and --cacheFaslDir
   parameters to preserve some data between runs. For example, it is very
   useful when you add new packages with native dependencies and fail to
diff --git a/nixpkgs/pkgs/development/lisp-modules/clwrapper/setup-hook.sh b/nixpkgs/pkgs/development/lisp-modules/clwrapper/setup-hook.sh
index abbbdc3e77a6..5cb238b2973f 100644
--- a/nixpkgs/pkgs/development/lisp-modules/clwrapper/setup-hook.sh
+++ b/nixpkgs/pkgs/development/lisp-modules/clwrapper/setup-hook.sh
@@ -9,7 +9,7 @@ addASDFPaths () {
 }
 
 setLisp () {
-    if [ -z "${NIX_LISP_COMMAND:-}" ]; then 
+    if [ -z "${NIX_LISP_COMMAND:-}" ]; then
       for j in "$1"/bin/*; do
           case "$(basename "$j")" in
               sbcl) NIX_LISP_COMMAND="$j" ;;
@@ -20,14 +20,14 @@ setLisp () {
           esac
       done
     fi
-    if [ -n "${NIX_LISP_COMMAND:-}" ] && [ -z "${NIX_LISP:-}" ]; then 
+    if [ -n "${NIX_LISP_COMMAND:-}" ] && [ -z "${NIX_LISP:-}" ]; then
         NIX_LISP="${NIX_LISP_COMMAND##*/}"
     fi
 }
 
 collectNixLispLDLP () {
-     if echo "$1/lib"/lib*.so* | grep . > /dev/null; then
-	 export NIX_LISP_LD_LIBRARY_PATH="${NIX_LISP_LD_LIBRARY_PATH-}${NIX_LISP_LD_LIBRARY_PATH:+:}$1/lib"
+     if echo "$1/lib"/lib*.{so,dylib}* | grep . > /dev/null; then
+     export NIX_LISP_LD_LIBRARY_PATH="${NIX_LISP_LD_LIBRARY_PATH-}${NIX_LISP_LD_LIBRARY_PATH:+:}$1/lib"
      fi
 }
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix b/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix
index 927254f52ae2..e4f623686a9a 100644
--- a/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/lisp-packages.nix
@@ -24,8 +24,8 @@ let lispPackages = rec {
       quicklispdist = pkgs.fetchurl {
         # Will usually be replaced with a fresh version anyway, but needs to be
         # a valid distinfo.txt
-        url = "https://beta.quicklisp.org/dist/quicklisp/2021-02-28/distinfo.txt";
-        sha256 = "sha256:1apc0s07fmm386rj866dbrhrkq3lrbgbd79kwcyp91ix7sza8z3z";
+        url = "https://beta.quicklisp.org/dist/quicklisp/2021-04-11/distinfo.txt";
+        sha256 = "sha256:1z7a7m9cm7iv4m9ajvyqphsw30s3qwb0l8g8ayfmkvmvhlj79g86";
       };
       buildPhase = "true; ";
       postInstall = ''
@@ -124,14 +124,21 @@ let lispPackages = rec {
   };
   nyxt = pkgs.lispPackages.buildLispPackage rec {
     baseName = "nyxt";
-    version = "2021-03-27";
-
+    version = "2.0.0";
 
     description = "Browser";
 
     overrides = x: {
       postInstall = ''
         echo "Building nyxt binary"
+        (
+          source "$out/lib/common-lisp-settings"/*-shell-config.sh
+          cd "$out/lib/common-lisp"/*/
+          makeFlags="''${makeFlags:-}"
+          make LISP=common-lisp.sh NYXT_INTERNAL_QUICKLISP=false PREFIX="$out" $makeFlags all
+          make LISP=common-lisp.sh NYXT_INTERNAL_QUICKLISP=false PREFIX="$out" $makeFlags install
+          cp nyxt "$out/bin/nyxt"
+        )
         NIX_LISP_PRELAUNCH_HOOK='
           nix_lisp_build_system nyxt/gtk-application \
            "(asdf/system:component-entry-point (asdf:find-system :nyxt/gtk-application))" \
@@ -181,13 +188,13 @@ let lispPackages = rec {
             fset
             cl-cffi-gtk
             cl-webkit2
+            cl-gobject-introspection
     ];
     src = pkgs.fetchFromGitHub {
       owner = "atlas-engineer";
       repo = "nyxt";
-      rev = "8ef171fd1eb62d168defe4a2d7115393230314d1";
-      sha256 = "sha256:1dz55mdmj68kmllih7ab70nmp0mwzqp9lh3im7kcjfmc1r64irdv";
-      # date = 2021-03-27T09:10:00+00:00;
+      rev = "${version}";
+      sha256 = "sha256-eSRNfzkAzGTorLjdHo1LQEKLx4ASdv3RGXIFZ5WFIXk=";
     };
 
     packageName = "nyxt";
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix
index 4fb5488b7a87..c8855a7f24b4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd-ext-code-blocks.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "_3bmd-ext-code-blocks";
-  version = "3bmd-20201220-git";
+  version = "3bmd-20210411-git";
 
   description = "extension to 3bmd implementing github style ``` delimited code blocks, with support for syntax highlighting using colorize, pygments, or chroma";
 
   deps = [ args."_3bmd" args."alexandria" args."colorize" args."esrap" args."html-encode" args."split-sequence" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz";
-    sha256 = "0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71";
+    url = "http://beta.quicklisp.org/archive/3bmd/2021-04-11/3bmd-20210411-git.tgz";
+    sha256 = "1gwl3r8cffr8yldi0x7zdzbmngqhli2d19wsky5cf8h80m30k4vp";
   };
 
   packageName = "3bmd-ext-code-blocks";
@@ -20,9 +20,9 @@ rec {
 }
 /* (SYSTEM 3bmd-ext-code-blocks DESCRIPTION
     extension to 3bmd implementing github style ``` delimited code blocks, with support for syntax highlighting using colorize, pygments, or chroma
-    SHA256 0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71 URL
-    http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz MD5
-    67b6e5fa51d18817e7110e4fef6517ac NAME 3bmd-ext-code-blocks FILENAME
+    SHA256 1gwl3r8cffr8yldi0x7zdzbmngqhli2d19wsky5cf8h80m30k4vp URL
+    http://beta.quicklisp.org/archive/3bmd/2021-04-11/3bmd-20210411-git.tgz MD5
+    09f9290aa1708aeb469fb5154ab1a397 NAME 3bmd-ext-code-blocks FILENAME
     _3bmd-ext-code-blocks DEPS
     ((NAME 3bmd FILENAME _3bmd) (NAME alexandria FILENAME alexandria)
      (NAME colorize FILENAME colorize) (NAME esrap FILENAME esrap)
@@ -33,7 +33,7 @@ rec {
     DEPENDENCIES
     (3bmd alexandria colorize esrap html-encode split-sequence
      trivial-with-current-source-form)
-    VERSION 3bmd-20201220-git SIBLINGS
+    VERSION 3bmd-20210411-git SIBLINGS
     (3bmd-ext-definition-lists 3bmd-ext-math 3bmd-ext-tables
      3bmd-ext-wiki-links 3bmd-youtube-tests 3bmd-youtube 3bmd)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix
index 8d8299a70309..630316bc8577 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/_3bmd.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "_3bmd";
-  version = "20201220-git";
+  version = "20210411-git";
 
   description = "markdown processor in CL using esrap parser.";
 
   deps = [ args."alexandria" args."esrap" args."split-sequence" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz";
-    sha256 = "0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71";
+    url = "http://beta.quicklisp.org/archive/3bmd/2021-04-11/3bmd-20210411-git.tgz";
+    sha256 = "1gwl3r8cffr8yldi0x7zdzbmngqhli2d19wsky5cf8h80m30k4vp";
   };
 
   packageName = "3bmd";
@@ -19,16 +19,16 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM 3bmd DESCRIPTION markdown processor in CL using esrap parser. SHA256
-    0hcx8p8la3fmwhj8ddqik7bwrn9rvf5mcv6m77glimwckh51na71 URL
-    http://beta.quicklisp.org/archive/3bmd/2020-12-20/3bmd-20201220-git.tgz MD5
-    67b6e5fa51d18817e7110e4fef6517ac NAME 3bmd FILENAME _3bmd DEPS
+    1gwl3r8cffr8yldi0x7zdzbmngqhli2d19wsky5cf8h80m30k4vp URL
+    http://beta.quicklisp.org/archive/3bmd/2021-04-11/3bmd-20210411-git.tgz MD5
+    09f9290aa1708aeb469fb5154ab1a397 NAME 3bmd FILENAME _3bmd DEPS
     ((NAME alexandria FILENAME alexandria) (NAME esrap FILENAME esrap)
      (NAME split-sequence FILENAME split-sequence)
      (NAME trivial-with-current-source-form FILENAME
       trivial-with-current-source-form))
     DEPENDENCIES
     (alexandria esrap split-sequence trivial-with-current-source-form) VERSION
-    20201220-git SIBLINGS
+    20210411-git SIBLINGS
     (3bmd-ext-code-blocks 3bmd-ext-definition-lists 3bmd-ext-math
      3bmd-ext-tables 3bmd-ext-wiki-links 3bmd-youtube-tests 3bmd-youtube)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/agutil.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/agutil.nix
new file mode 100644
index 000000000000..c159b2064185
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/agutil.nix
@@ -0,0 +1,42 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "agutil";
+  version = "20200325-git";
+
+  description = "A collection of utility functions not found in other utility libraries.";
+
+  deps = [ args."alexandria" args."closer-mop" args."introspect-environment" args."iterate" args."lisp-namespace" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" args."type-i" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/agutil/2020-03-25/agutil-20200325-git.tgz";
+    sha256 = "0jfbb2x3f8sm507r63qwrzx44lyyj98i36yyyaf4kpyqfir35z2k";
+  };
+
+  packageName = "agutil";
+
+  asdFilesToKeep = ["agutil.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM agutil DESCRIPTION
+    A collection of utility functions not found in other utility libraries.
+    SHA256 0jfbb2x3f8sm507r63qwrzx44lyyj98i36yyyaf4kpyqfir35z2k URL
+    http://beta.quicklisp.org/archive/agutil/2020-03-25/agutil-20200325-git.tgz
+    MD5 89e47bd15c0f9930a5025d04b9706b60 NAME agutil FILENAME agutil DEPS
+    ((NAME alexandria FILENAME alexandria)
+     (NAME closer-mop FILENAME closer-mop)
+     (NAME introspect-environment FILENAME introspect-environment)
+     (NAME iterate FILENAME iterate)
+     (NAME lisp-namespace FILENAME lisp-namespace)
+     (NAME trivia FILENAME trivia)
+     (NAME trivia.balland2006 FILENAME trivia_dot_balland2006)
+     (NAME trivia.level0 FILENAME trivia_dot_level0)
+     (NAME trivia.level1 FILENAME trivia_dot_level1)
+     (NAME trivia.level2 FILENAME trivia_dot_level2)
+     (NAME trivia.trivial FILENAME trivia_dot_trivial)
+     (NAME trivial-cltl2 FILENAME trivial-cltl2) (NAME type-i FILENAME type-i))
+    DEPENDENCIES
+    (alexandria closer-mop introspect-environment iterate lisp-namespace trivia
+     trivia.balland2006 trivia.level0 trivia.level1 trivia.level2
+     trivia.trivial trivial-cltl2 type-i)
+    VERSION 20200325-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
index f58416bffee7..324831796ef0 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "alexandria";
-  version = "20200925-git";
+  version = "20210411-git";
 
   description = "Alexandria is a collection of portable public domain utilities.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/alexandria/2020-09-25/alexandria-20200925-git.tgz";
-    sha256 = "1cpvnzfs807ah07hrk8kplim6ryzqs4r35ym03cpky5xdl8c89fl";
+    url = "http://beta.quicklisp.org/archive/alexandria/2021-04-11/alexandria-20210411-git.tgz";
+    sha256 = "0bd4axr1z1q6khvpyf5xvgybdajs1dc7my6g0rdzhhxbibfcf3yh";
   };
 
   packageName = "alexandria";
@@ -20,8 +20,8 @@ rec {
 }
 /* (SYSTEM alexandria DESCRIPTION
     Alexandria is a collection of portable public domain utilities. SHA256
-    1cpvnzfs807ah07hrk8kplim6ryzqs4r35ym03cpky5xdl8c89fl URL
-    http://beta.quicklisp.org/archive/alexandria/2020-09-25/alexandria-20200925-git.tgz
-    MD5 59c8237a854de6f4f93328cd5747cd14 NAME alexandria FILENAME alexandria
-    DEPS NIL DEPENDENCIES NIL VERSION 20200925-git SIBLINGS (alexandria-tests)
+    0bd4axr1z1q6khvpyf5xvgybdajs1dc7my6g0rdzhhxbibfcf3yh URL
+    http://beta.quicklisp.org/archive/alexandria/2021-04-11/alexandria-20210411-git.tgz
+    MD5 415c43451862b490577b20ee4fb8e8d7 NAME alexandria FILENAME alexandria
+    DEPS NIL DEPENDENCIES NIL VERSION 20210411-git SIBLINGS (alexandria-tests)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arrows.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arrows.nix
new file mode 100644
index 000000000000..13076ff26e87
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/arrows.nix
@@ -0,0 +1,31 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "arrows";
+  version = "20181018-git";
+
+  parasites = [ "arrows/test" ];
+
+  description = "Implements -> and ->> from Clojure, as well as several expansions on the
+idea.";
+
+  deps = [ args."hu_dot_dwim_dot_stefil" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/arrows/2018-10-18/arrows-20181018-git.tgz";
+    sha256 = "1b13pnn71z1dv1cwysh6p5jfgjsp3q8ivsdxfspl1hg1nh9mqa7r";
+  };
+
+  packageName = "arrows";
+
+  asdFilesToKeep = ["arrows.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM arrows DESCRIPTION
+    Implements -> and ->> from Clojure, as well as several expansions on the
+idea.
+    SHA256 1b13pnn71z1dv1cwysh6p5jfgjsp3q8ivsdxfspl1hg1nh9mqa7r URL
+    http://beta.quicklisp.org/archive/arrows/2018-10-18/arrows-20181018-git.tgz
+    MD5 c60b5d79680de19baad018a0fe87bc48 NAME arrows FILENAME arrows DEPS
+    ((NAME hu.dwim.stefil FILENAME hu_dot_dwim_dot_stefil)) DEPENDENCIES
+    (hu.dwim.stefil) VERSION 20181018-git SIBLINGS NIL PARASITES (arrows/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix
index f65c68e0d7fa..b33f95934f82 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-grovel.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cffi-grovel";
-  version = "cffi_0.23.0";
+  version = "cffi_0.24.1";
 
   description = "The CFFI Groveller";
 
   deps = [ args."alexandria" args."babel" args."cffi" args."cffi-toolchain" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz";
-    sha256 = "1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck";
+    url = "http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz";
+    sha256 = "1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh";
   };
 
   packageName = "cffi-grovel";
@@ -19,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cffi-grovel DESCRIPTION The CFFI Groveller SHA256
-    1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck URL
-    http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz MD5
-    a43e3c440fc4f20494e6d2347887c963 NAME cffi-grovel FILENAME cffi-grovel DEPS
+    1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh URL
+    http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz MD5
+    c3df5c460e00e5af8b8bd2cd03a4b5cc NAME cffi-grovel FILENAME cffi-grovel DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cffi FILENAME cffi) (NAME cffi-toolchain FILENAME cffi-toolchain)
      (NAME trivial-features FILENAME trivial-features))
     DEPENDENCIES (alexandria babel cffi cffi-toolchain trivial-features)
-    VERSION cffi_0.23.0 SIBLINGS
+    VERSION cffi_0.24.1 SIBLINGS
     (cffi-examples cffi-libffi cffi-tests cffi-toolchain cffi-uffi-compat cffi)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix
index af7c96639d6d..b326d625f4da 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-toolchain.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cffi-toolchain";
-  version = "cffi_0.23.0";
+  version = "cffi_0.24.1";
 
   description = "The CFFI toolchain";
 
   deps = [ args."alexandria" args."babel" args."cffi" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz";
-    sha256 = "1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck";
+    url = "http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz";
+    sha256 = "1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh";
   };
 
   packageName = "cffi-toolchain";
@@ -19,14 +19,14 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cffi-toolchain DESCRIPTION The CFFI toolchain SHA256
-    1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck URL
-    http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz MD5
-    a43e3c440fc4f20494e6d2347887c963 NAME cffi-toolchain FILENAME
+    1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh URL
+    http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz MD5
+    c3df5c460e00e5af8b8bd2cd03a4b5cc NAME cffi-toolchain FILENAME
     cffi-toolchain DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cffi FILENAME cffi)
      (NAME trivial-features FILENAME trivial-features))
-    DEPENDENCIES (alexandria babel cffi trivial-features) VERSION cffi_0.23.0
+    DEPENDENCIES (alexandria babel cffi trivial-features) VERSION cffi_0.24.1
     SIBLINGS
     (cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-uffi-compat cffi)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix
index ec452750457c..822b7a811661 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi-uffi-compat.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cffi-uffi-compat";
-  version = "cffi_0.23.0";
+  version = "cffi_0.24.1";
 
   description = "UFFI Compatibility Layer for CFFI";
 
   deps = [ args."alexandria" args."babel" args."cffi" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz";
-    sha256 = "1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck";
+    url = "http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz";
+    sha256 = "1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh";
   };
 
   packageName = "cffi-uffi-compat";
@@ -19,14 +19,14 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cffi-uffi-compat DESCRIPTION UFFI Compatibility Layer for CFFI
-    SHA256 1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck URL
-    http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz MD5
-    a43e3c440fc4f20494e6d2347887c963 NAME cffi-uffi-compat FILENAME
+    SHA256 1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh URL
+    http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz MD5
+    c3df5c460e00e5af8b8bd2cd03a4b5cc NAME cffi-uffi-compat FILENAME
     cffi-uffi-compat DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cffi FILENAME cffi)
      (NAME trivial-features FILENAME trivial-features))
-    DEPENDENCIES (alexandria babel cffi trivial-features) VERSION cffi_0.23.0
+    DEPENDENCIES (alexandria babel cffi trivial-features) VERSION cffi_0.24.1
     SIBLINGS
     (cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-toolchain cffi)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix
index 103f233fa41f..0738ea5909f4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cffi.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cffi";
-  version = "cffi_0.23.0";
+  version = "cffi_0.24.1";
 
   parasites = [ "cffi/c2ffi" "cffi/c2ffi-generator" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."babel" args."cl-json" args."cl-ppcre" args."trivial-features" args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz";
-    sha256 = "1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck";
+    url = "http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz";
+    sha256 = "1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh";
   };
 
   packageName = "cffi";
@@ -21,15 +21,15 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cffi DESCRIPTION The Common Foreign Function Interface SHA256
-    1szpbg5m5fjq7bpkblflpnwmgz3ncsvp1y43g3jzwlk7yfxrwxck URL
-    http://beta.quicklisp.org/archive/cffi/2020-07-15/cffi_0.23.0.tgz MD5
-    a43e3c440fc4f20494e6d2347887c963 NAME cffi FILENAME cffi DEPS
+    1ir8a4rrnilj9f8rv1hh6fhkg2wp8z8zcf9hiijcix50pabxq8qh URL
+    http://beta.quicklisp.org/archive/cffi/2021-04-11/cffi_0.24.1.tgz MD5
+    c3df5c460e00e5af8b8bd2cd03a4b5cc NAME cffi FILENAME cffi DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cl-json FILENAME cl-json) (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME trivial-features FILENAME trivial-features)
      (NAME uiop FILENAME uiop))
     DEPENDENCIES (alexandria babel cl-json cl-ppcre trivial-features uiop)
-    VERSION cffi_0.23.0 SIBLINGS
+    VERSION cffi_0.24.1 SIBLINGS
     (cffi-examples cffi-grovel cffi-libffi cffi-tests cffi-toolchain
      cffi-uffi-compat)
     PARASITES (cffi/c2ffi cffi/c2ffi-generator)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix
index b6940af59865..8e32a0b1abf4 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/chanl.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "chanl";
-  version = "20210124-git";
+  version = "20210411-git";
 
   parasites = [ "chanl/examples" "chanl/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."fiveam" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/chanl/2021-01-24/chanl-20210124-git.tgz";
-    sha256 = "1lb0k5nh51f8hskpm1pma5ds4lk1zpbk9czpw9bk8hdykr178mzc";
+    url = "http://beta.quicklisp.org/archive/chanl/2021-04-11/chanl-20210411-git.tgz";
+    sha256 = "1c1yiw616q5hv6vzyg1y4kg68v94p37s5jrq387rwadfnnf46rgi";
   };
 
   packageName = "chanl";
@@ -22,11 +22,11 @@ rec {
 }
 /* (SYSTEM chanl DESCRIPTION
     Communicating Sequential Process support for Common Lisp SHA256
-    1lb0k5nh51f8hskpm1pma5ds4lk1zpbk9czpw9bk8hdykr178mzc URL
-    http://beta.quicklisp.org/archive/chanl/2021-01-24/chanl-20210124-git.tgz
-    MD5 2f9e2d16caa2febff4f5beb6226b7ccf NAME chanl FILENAME chanl DEPS
+    1c1yiw616q5hv6vzyg1y4kg68v94p37s5jrq387rwadfnnf46rgi URL
+    http://beta.quicklisp.org/archive/chanl/2021-04-11/chanl-20210411-git.tgz
+    MD5 efaa5705b5feaa718290d25a95e2a684 NAME chanl FILENAME chanl DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME fiveam FILENAME fiveam))
-    DEPENDENCIES (alexandria bordeaux-threads fiveam) VERSION 20210124-git
+    DEPENDENCIES (alexandria bordeaux-threads fiveam) VERSION 20210411-git
     SIBLINGS NIL PARASITES (chanl/examples chanl/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix
index eb967399371b..99ff56f9b15e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-change-case.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-change-case";
-  version = "20210228-git";
+  version = "20210411-git";
 
   parasites = [ "cl-change-case/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."cl-ppcre" args."cl-ppcre-unicode" args."cl-unicode" args."fiveam" args."flexi-streams" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-change-case/2021-02-28/cl-change-case-20210228-git.tgz";
-    sha256 = "15x8zxwa3pxs02fh0qxmbvz6vi59x6ha09p5hs4rgd6axs0k4pmi";
+    url = "http://beta.quicklisp.org/archive/cl-change-case/2021-04-11/cl-change-case-20210411-git.tgz";
+    sha256 = "14s26b907h1nsnwdqbj6j4c9bvc4rc2l8ry2q1j7ibjfzqvhp4mj";
   };
 
   packageName = "cl-change-case";
@@ -22,13 +22,13 @@ rec {
 }
 /* (SYSTEM cl-change-case DESCRIPTION
     Convert strings between camelCase, param-case, PascalCase and more SHA256
-    15x8zxwa3pxs02fh0qxmbvz6vi59x6ha09p5hs4rgd6axs0k4pmi URL
-    http://beta.quicklisp.org/archive/cl-change-case/2021-02-28/cl-change-case-20210228-git.tgz
-    MD5 8fec07f0634a739134dc4fcec807fe16 NAME cl-change-case FILENAME
+    14s26b907h1nsnwdqbj6j4c9bvc4rc2l8ry2q1j7ibjfzqvhp4mj URL
+    http://beta.quicklisp.org/archive/cl-change-case/2021-04-11/cl-change-case-20210411-git.tgz
+    MD5 df72a3d71a6c65e149704688aec859b9 NAME cl-change-case FILENAME
     cl-change-case DEPS
     ((NAME cl-ppcre FILENAME cl-ppcre)
      (NAME cl-ppcre-unicode FILENAME cl-ppcre-unicode)
      (NAME cl-unicode FILENAME cl-unicode) (NAME fiveam FILENAME fiveam)
      (NAME flexi-streams FILENAME flexi-streams))
     DEPENDENCIES (cl-ppcre cl-ppcre-unicode cl-unicode fiveam flexi-streams)
-    VERSION 20210228-git SIBLINGS NIL PARASITES (cl-change-case/test)) */
+    VERSION 20210411-git SIBLINGS NIL PARASITES (cl-change-case/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix
index 5a8bea30a59e..5fac77896b69 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-colors2.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-colors2";
-  version = "20200218-git";
+  version = "20210411-git";
 
   parasites = [ "cl-colors2/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."cl-ppcre" args."clunit2" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-colors2/2020-02-18/cl-colors2-20200218-git.tgz";
-    sha256 = "0rpf8j232qv254zhkvkz3ja20al1kswvcqhvvv0r2ag6dks56j29";
+    url = "http://beta.quicklisp.org/archive/cl-colors2/2021-04-11/cl-colors2-20210411-git.tgz";
+    sha256 = "14kdi214x8rxil27wfbx0csgi7g8dg5wsifpsrdrqph0p7ps8snk";
   };
 
   packageName = "cl-colors2";
@@ -21,11 +21,11 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-colors2 DESCRIPTION Simple color library for Common Lisp SHA256
-    0rpf8j232qv254zhkvkz3ja20al1kswvcqhvvv0r2ag6dks56j29 URL
-    http://beta.quicklisp.org/archive/cl-colors2/2020-02-18/cl-colors2-20200218-git.tgz
-    MD5 054283564f17af46a09e259ff509b656 NAME cl-colors2 FILENAME cl-colors2
+    14kdi214x8rxil27wfbx0csgi7g8dg5wsifpsrdrqph0p7ps8snk URL
+    http://beta.quicklisp.org/archive/cl-colors2/2021-04-11/cl-colors2-20210411-git.tgz
+    MD5 e6b54e76e7d1cfcff45955dbd4752f1d NAME cl-colors2 FILENAME cl-colors2
     DEPS
     ((NAME alexandria FILENAME alexandria) (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME clunit2 FILENAME clunit2))
-    DEPENDENCIES (alexandria cl-ppcre clunit2) VERSION 20200218-git SIBLINGS
+    DEPENDENCIES (alexandria cl-ppcre clunit2) VERSION 20210411-git SIBLINGS
     NIL PARASITES (cl-colors2/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-environments.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-environments.nix
new file mode 100644
index 000000000000..803d138b2eab
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-environments.nix
@@ -0,0 +1,44 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-environments";
+  version = "20210411-git";
+
+  parasites = [ "cl-environments/test" ];
+
+  description = "Implements the CLTL2 environment access functionality
+                for implementations which do not provide the
+                functionality to the programmer.";
+
+  deps = [ args."alexandria" args."anaphora" args."cl-ansi-text" args."cl-colors" args."cl-ppcre" args."closer-mop" args."collectors" args."iterate" args."optima" args."prove" args."prove-asdf" args."symbol-munger" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-environments/2021-04-11/cl-environments-20210411-git.tgz";
+    sha256 = "1xs1wwf6fmzq5zxmv5d9f2mfmhc7j2w03519ky6id5md75j68lhk";
+  };
+
+  packageName = "cl-environments";
+
+  asdFilesToKeep = ["cl-environments.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-environments DESCRIPTION
+    Implements the CLTL2 environment access functionality
+                for implementations which do not provide the
+                functionality to the programmer.
+    SHA256 1xs1wwf6fmzq5zxmv5d9f2mfmhc7j2w03519ky6id5md75j68lhk URL
+    http://beta.quicklisp.org/archive/cl-environments/2021-04-11/cl-environments-20210411-git.tgz
+    MD5 87b7c0186d37d30d24df11d021ab4fba NAME cl-environments FILENAME
+    cl-environments DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
+     (NAME cl-ansi-text FILENAME cl-ansi-text)
+     (NAME cl-colors FILENAME cl-colors) (NAME cl-ppcre FILENAME cl-ppcre)
+     (NAME closer-mop FILENAME closer-mop)
+     (NAME collectors FILENAME collectors) (NAME iterate FILENAME iterate)
+     (NAME optima FILENAME optima) (NAME prove FILENAME prove)
+     (NAME prove-asdf FILENAME prove-asdf)
+     (NAME symbol-munger FILENAME symbol-munger))
+    DEPENDENCIES
+    (alexandria anaphora cl-ansi-text cl-colors cl-ppcre closer-mop collectors
+     iterate optima prove prove-asdf symbol-munger)
+    VERSION 20210411-git SIBLINGS NIL PARASITES (cl-environments/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-gobject-introspection.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-gobject-introspection.nix
new file mode 100644
index 000000000000..15b16ef84c1a
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-gobject-introspection.nix
@@ -0,0 +1,32 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-gobject-introspection";
+  version = "20210124-git";
+
+  description = "Binding to GObjectIntrospection";
+
+  deps = [ args."alexandria" args."babel" args."cffi" args."iterate" args."trivial-features" args."trivial-garbage" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-gobject-introspection/2021-01-24/cl-gobject-introspection-20210124-git.tgz";
+    sha256 = "1hrc451d9xdp3pfmwalw32r3iqfvw6ccy665kl5560lihwmk59w0";
+  };
+
+  packageName = "cl-gobject-introspection";
+
+  asdFilesToKeep = ["cl-gobject-introspection.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-gobject-introspection DESCRIPTION Binding to GObjectIntrospection
+    SHA256 1hrc451d9xdp3pfmwalw32r3iqfvw6ccy665kl5560lihwmk59w0 URL
+    http://beta.quicklisp.org/archive/cl-gobject-introspection/2021-01-24/cl-gobject-introspection-20210124-git.tgz
+    MD5 ad760b820c86142c0a1309af29541680 NAME cl-gobject-introspection FILENAME
+    cl-gobject-introspection DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
+     (NAME cffi FILENAME cffi) (NAME iterate FILENAME iterate)
+     (NAME trivial-features FILENAME trivial-features)
+     (NAME trivial-garbage FILENAME trivial-garbage))
+    DEPENDENCIES
+    (alexandria babel cffi iterate trivial-features trivial-garbage) VERSION
+    20210124-git SIBLINGS (cl-gobject-introspection-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
index 95f5d0373812..5e78f8e98c46 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-postgres";
-  version = "postmodern-20210124-git";
+  version = "postmodern-20210411-git";
 
   parasites = [ "cl-postgres/simple-date-tests" "cl-postgres/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-ppcre" args."fiveam" args."ironclad" args."md5" args."simple-date" args."simple-date_slash_postgres-glue" args."split-sequence" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
-    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz";
+    sha256 = "0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw";
   };
 
   packageName = "cl-postgres";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-postgres DESCRIPTION Low-level client library for PostgreSQL
-    SHA256 1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
-    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
-    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME cl-postgres FILENAME cl-postgres
+    SHA256 0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw URL
+    http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz
+    MD5 8a75a05ba9e371f672f2620d40724cb2 NAME cl-postgres FILENAME cl-postgres
     DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -36,5 +36,5 @@ rec {
     DEPENDENCIES
     (alexandria bordeaux-threads cl-base64 cl-ppcre fiveam ironclad md5
      simple-date simple-date/postgres-glue split-sequence uax-15 usocket)
-    VERSION postmodern-20210124-git SIBLINGS (postmodern s-sql simple-date)
+    VERSION postmodern-20210411-git SIBLINGS (postmodern s-sql simple-date)
     PARASITES (cl-postgres/simple-date-tests cl-postgres/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix
index 82beff705798..0284b2dfd223 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-typesetting.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-typesetting";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "Common Lisp Typesetting system";
 
   deps = [ args."cl-pdf" args."iterate" args."zpb-ttf" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-typesetting/2021-02-28/cl-typesetting-20210228-git.tgz";
-    sha256 = "13rmzyzp0glq35jq3qdlmrsdssa6csqp5g455li4wi7kq8clrwnp";
+    url = "http://beta.quicklisp.org/archive/cl-typesetting/2021-04-11/cl-typesetting-20210411-git.tgz";
+    sha256 = "1102n049hhg0kqnfvdfcisjq5l9yfvbw090nq0q8vd2bc688ng41";
   };
 
   packageName = "cl-typesetting";
@@ -19,11 +19,11 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-typesetting DESCRIPTION Common Lisp Typesetting system SHA256
-    13rmzyzp0glq35jq3qdlmrsdssa6csqp5g455li4wi7kq8clrwnp URL
-    http://beta.quicklisp.org/archive/cl-typesetting/2021-02-28/cl-typesetting-20210228-git.tgz
-    MD5 949e7de37838d63f4c6b6e7dd88befeb NAME cl-typesetting FILENAME
+    1102n049hhg0kqnfvdfcisjq5l9yfvbw090nq0q8vd2bc688ng41 URL
+    http://beta.quicklisp.org/archive/cl-typesetting/2021-04-11/cl-typesetting-20210411-git.tgz
+    MD5 f3fc7a47efb99cf849cb5eeede96dbaf NAME cl-typesetting FILENAME
     cl-typesetting DEPS
     ((NAME cl-pdf FILENAME cl-pdf) (NAME iterate FILENAME iterate)
      (NAME zpb-ttf FILENAME zpb-ttf))
-    DEPENDENCIES (cl-pdf iterate zpb-ttf) VERSION 20210228-git SIBLINGS
+    DEPENDENCIES (cl-pdf iterate zpb-ttf) VERSION 20210411-git SIBLINGS
     (xml-render cl-pdf-doc) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
index 56275d72740c..84005b13b205 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-webkit2";
-  version = "cl-webkit-20210228-git";
+  version = "cl-webkit-20210411-git";
 
   description = "An FFI binding to WebKit2GTK+";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk" args."cl-cffi-gtk-cairo" args."cl-cffi-gtk-gdk" args."cl-cffi-gtk-gdk-pixbuf" args."cl-cffi-gtk-gio" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."cl-cffi-gtk-pango" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-webkit/2021-02-28/cl-webkit-20210228-git.tgz";
-    sha256 = "1r6i64g37palar4hij6c5m240xbn2dwzwaashv015nhjwmra1ms1";
+    url = "http://beta.quicklisp.org/archive/cl-webkit/2021-04-11/cl-webkit-20210411-git.tgz";
+    sha256 = "10cky5v67s9mx2j96k0z01qbqfyc8w6a8byaamm7al5qkw997brh";
   };
 
   packageName = "cl-webkit2";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-webkit2 DESCRIPTION An FFI binding to WebKit2GTK+ SHA256
-    1r6i64g37palar4hij6c5m240xbn2dwzwaashv015nhjwmra1ms1 URL
-    http://beta.quicklisp.org/archive/cl-webkit/2021-02-28/cl-webkit-20210228-git.tgz
-    MD5 49f38c18ac292122628356762270e5ff NAME cl-webkit2 FILENAME cl-webkit2
+    10cky5v67s9mx2j96k0z01qbqfyc8w6a8byaamm7al5qkw997brh URL
+    http://beta.quicklisp.org/archive/cl-webkit/2021-04-11/cl-webkit-20210411-git.tgz
+    MD5 01b52f031fd8742ac9d422e4fcd2a225 NAME cl-webkit2 FILENAME cl-webkit2
     DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -41,4 +41,4 @@ rec {
      cl-cffi-gtk-gdk cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gio cl-cffi-gtk-glib
      cl-cffi-gtk-gobject cl-cffi-gtk-pango closer-mop iterate trivial-features
      trivial-garbage)
-    VERSION cl-webkit-20210228-git SIBLINGS NIL PARASITES NIL) */
+    VERSION cl-webkit-20210411-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
index 6811c62ad2e1..55eb89349458 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl_plus_ssl";
-  version = "cl+ssl-20210228-git";
+  version = "cl+ssl-20210411-git";
 
   description = "Common Lisp interface to OpenSSL.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."flexi-streams" args."split-sequence" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."uiop" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl+ssl/2021-02-28/cl+ssl-20210228-git.tgz";
-    sha256 = "1njppcg5fm8l0lhf7nf8nfyaz9vsr922y0vfxqdp9hp7qfid8yll";
+    url = "http://beta.quicklisp.org/archive/cl+ssl/2021-04-11/cl+ssl-20210411-git.tgz";
+    sha256 = "1rc13lc5wwzlkn7yhl3bwl6cmxxldmbfnz52nz5b83v4wlw2zbcw";
   };
 
   packageName = "cl+ssl";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl+ssl DESCRIPTION Common Lisp interface to OpenSSL. SHA256
-    1njppcg5fm8l0lhf7nf8nfyaz9vsr922y0vfxqdp9hp7qfid8yll URL
-    http://beta.quicklisp.org/archive/cl+ssl/2021-02-28/cl+ssl-20210228-git.tgz
-    MD5 01b61fd8ee6ad8d3c1c695ba56d510b6 NAME cl+ssl FILENAME cl_plus_ssl DEPS
+    1rc13lc5wwzlkn7yhl3bwl6cmxxldmbfnz52nz5b83v4wlw2zbcw URL
+    http://beta.quicklisp.org/archive/cl+ssl/2021-04-11/cl+ssl-20210411-git.tgz
+    MD5 9ef5b60ac4c8ad4f435a3ef6234897d0 NAME cl+ssl FILENAME cl_plus_ssl DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME flexi-streams FILENAME flexi-streams)
@@ -33,4 +33,4 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi flexi-streams split-sequence
      trivial-features trivial-garbage trivial-gray-streams uiop usocket)
-    VERSION cl+ssl-20210228-git SIBLINGS (cl+ssl.test) PARASITES NIL) */
+    VERSION cl+ssl-20210411-git SIBLINGS (cl+ssl.test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix
index ff3679a2639a..3c18fd911952 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-handler-hunchentoot.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-handler-hunchentoot";
-  version = "clack-20191007-git";
+  version = "clack-20210411-git";
 
   description = "Clack handler for Hunchentoot.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-fad" args."cl-ppcre" args."clack-socket" args."flexi-streams" args."hunchentoot" args."md5" args."rfc2388" args."split-sequence" args."trivial-backtrace" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz";
-    sha256 = "004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w";
+    url = "http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz";
+    sha256 = "0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf";
   };
 
   packageName = "clack-handler-hunchentoot";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clack-handler-hunchentoot DESCRIPTION Clack handler for Hunchentoot.
-    SHA256 004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w URL
-    http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz
-    MD5 25741855fa1e989d373ac06ddfabf351 NAME clack-handler-hunchentoot
+    SHA256 0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf URL
+    http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz
+    MD5 c47deb6287b72fc9033055914787f3a5 NAME clack-handler-hunchentoot
     FILENAME clack-handler-hunchentoot DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -43,7 +43,7 @@ rec {
      cl-ppcre clack-socket flexi-streams hunchentoot md5 rfc2388 split-sequence
      trivial-backtrace trivial-features trivial-garbage trivial-gray-streams
      usocket)
-    VERSION clack-20191007-git SIBLINGS
+    VERSION clack-20210411-git SIBLINGS
     (clack-handler-fcgi clack-handler-toot clack-handler-wookie clack-socket
      clack-test clack-v1-compat clack t-clack-handler-fcgi
      t-clack-handler-hunchentoot t-clack-handler-toot t-clack-handler-wookie
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
index e597bb66d60f..2fe47652ebbc 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-socket";
-  version = "clack-20191007-git";
+  version = "clack-20210411-git";
 
   description = "System lacks description";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz";
-    sha256 = "004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w";
+    url = "http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz";
+    sha256 = "0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf";
   };
 
   packageName = "clack-socket";
@@ -19,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clack-socket DESCRIPTION System lacks description SHA256
-    004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w URL
-    http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz
-    MD5 25741855fa1e989d373ac06ddfabf351 NAME clack-socket FILENAME
-    clack-socket DEPS NIL DEPENDENCIES NIL VERSION clack-20191007-git SIBLINGS
+    0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf URL
+    http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz
+    MD5 c47deb6287b72fc9033055914787f3a5 NAME clack-socket FILENAME
+    clack-socket DEPS NIL DEPENDENCIES NIL VERSION clack-20210411-git SIBLINGS
     (clack-handler-fcgi clack-handler-hunchentoot clack-handler-toot
      clack-handler-wookie clack-test clack-v1-compat clack t-clack-handler-fcgi
      t-clack-handler-hunchentoot t-clack-handler-toot t-clack-handler-wookie
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix
index d014ccc21110..ab2794fbdd1c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-test.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-test";
-  version = "clack-20191007-git";
+  version = "clack-20210411-git";
 
   description = "Testing Clack Applications.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."chipz" args."chunga" args."cl_plus_ssl" args."cl-annot" args."cl-base64" args."cl-cookie" args."cl-fad" args."cl-ppcre" args."cl-reexport" args."cl-syntax" args."cl-syntax-annot" args."cl-utilities" args."clack" args."clack-handler-hunchentoot" args."clack-socket" args."dexador" args."dissect" args."fast-http" args."fast-io" args."flexi-streams" args."http-body" args."hunchentoot" args."ironclad" args."jonathan" args."lack" args."lack-component" args."lack-middleware-backtrace" args."lack-util" args."local-time" args."md5" args."named-readtables" args."proc-parse" args."quri" args."rfc2388" args."rove" args."smart-buffer" args."split-sequence" args."static-vectors" args."trivial-backtrace" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."trivial-mimes" args."trivial-types" args."usocket" args."xsubseq" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz";
-    sha256 = "004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w";
+    url = "http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz";
+    sha256 = "0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf";
   };
 
   packageName = "clack-test";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clack-test DESCRIPTION Testing Clack Applications. SHA256
-    004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w URL
-    http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz
-    MD5 25741855fa1e989d373ac06ddfabf351 NAME clack-test FILENAME clack-test
+    0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf URL
+    http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz
+    MD5 c47deb6287b72fc9033055914787f3a5 NAME clack-test FILENAME clack-test
     DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -68,7 +68,7 @@ rec {
      proc-parse quri rfc2388 rove smart-buffer split-sequence static-vectors
      trivial-backtrace trivial-features trivial-garbage trivial-gray-streams
      trivial-mimes trivial-types usocket xsubseq)
-    VERSION clack-20191007-git SIBLINGS
+    VERSION clack-20210411-git SIBLINGS
     (clack-handler-fcgi clack-handler-hunchentoot clack-handler-toot
      clack-handler-wookie clack-socket clack-v1-compat clack
      t-clack-handler-fcgi t-clack-handler-hunchentoot t-clack-handler-toot
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix
index 6d90a5ef1f08..f93b8e1c9d67 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-v1-compat.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-v1-compat";
-  version = "clack-20191007-git";
+  version = "clack-20210411-git";
 
   description = "System lacks description";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."chipz" args."chunga" args."circular-streams" args."cl_plus_ssl" args."cl-annot" args."cl-base64" args."cl-cookie" args."cl-fad" args."cl-ppcre" args."cl-reexport" args."cl-syntax" args."cl-syntax-annot" args."cl-utilities" args."clack" args."clack-handler-hunchentoot" args."clack-socket" args."clack-test" args."dexador" args."dissect" args."fast-http" args."fast-io" args."flexi-streams" args."http-body" args."hunchentoot" args."ironclad" args."jonathan" args."lack" args."lack-component" args."lack-middleware-backtrace" args."lack-util" args."local-time" args."marshal" args."md5" args."named-readtables" args."proc-parse" args."quri" args."rfc2388" args."rove" args."smart-buffer" args."split-sequence" args."static-vectors" args."trivial-backtrace" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."trivial-mimes" args."trivial-types" args."uiop" args."usocket" args."xsubseq" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz";
-    sha256 = "004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w";
+    url = "http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz";
+    sha256 = "0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf";
   };
 
   packageName = "clack-v1-compat";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clack-v1-compat DESCRIPTION System lacks description SHA256
-    004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w URL
-    http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz
-    MD5 25741855fa1e989d373ac06ddfabf351 NAME clack-v1-compat FILENAME
+    0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf URL
+    http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz
+    MD5 c47deb6287b72fc9033055914787f3a5 NAME clack-v1-compat FILENAME
     clack-v1-compat DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -73,7 +73,7 @@ rec {
      split-sequence static-vectors trivial-backtrace trivial-features
      trivial-garbage trivial-gray-streams trivial-mimes trivial-types uiop
      usocket xsubseq)
-    VERSION clack-20191007-git SIBLINGS
+    VERSION clack-20210411-git SIBLINGS
     (clack-handler-fcgi clack-handler-hunchentoot clack-handler-toot
      clack-handler-wookie clack-socket clack-test clack t-clack-handler-fcgi
      t-clack-handler-hunchentoot t-clack-handler-toot t-clack-handler-wookie
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
index 78ffa543ece4..95447ca8ad78 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack";
-  version = "20191007-git";
+  version = "20210411-git";
 
   description = "Web application environment for Common Lisp";
 
-  deps = [ args."alexandria" args."bordeaux-threads" args."ironclad" args."lack" args."lack-component" args."lack-middleware-backtrace" args."lack-util" args."uiop" ];
+  deps = [ args."alexandria" args."bordeaux-threads" args."ironclad" args."lack" args."lack-component" args."lack-middleware-backtrace" args."lack-util" args."split-sequence" args."uiop" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz";
-    sha256 = "004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w";
+    url = "http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz";
+    sha256 = "0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf";
   };
 
   packageName = "clack";
@@ -19,19 +19,21 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clack DESCRIPTION Web application environment for Common Lisp SHA256
-    004drm82mhxmcsa00lbmq2l89g4fzwn6j2drfwdazrpi27z0ry5w URL
-    http://beta.quicklisp.org/archive/clack/2019-10-07/clack-20191007-git.tgz
-    MD5 25741855fa1e989d373ac06ddfabf351 NAME clack FILENAME clack DEPS
+    0yai9cx1gha684ljr8k1s5n4mi6mpj2wmvv6b9iw7pw1vhw5m8mf URL
+    http://beta.quicklisp.org/archive/clack/2021-04-11/clack-20210411-git.tgz
+    MD5 c47deb6287b72fc9033055914787f3a5 NAME clack FILENAME clack DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME ironclad FILENAME ironclad) (NAME lack FILENAME lack)
      (NAME lack-component FILENAME lack-component)
      (NAME lack-middleware-backtrace FILENAME lack-middleware-backtrace)
-     (NAME lack-util FILENAME lack-util) (NAME uiop FILENAME uiop))
+     (NAME lack-util FILENAME lack-util)
+     (NAME split-sequence FILENAME split-sequence) (NAME uiop FILENAME uiop)
+     (NAME usocket FILENAME usocket))
     DEPENDENCIES
     (alexandria bordeaux-threads ironclad lack lack-component
-     lack-middleware-backtrace lack-util uiop)
-    VERSION 20191007-git SIBLINGS
+     lack-middleware-backtrace lack-util split-sequence uiop usocket)
+    VERSION 20210411-git SIBLINGS
     (clack-handler-fcgi clack-handler-hunchentoot clack-handler-toot
      clack-handler-wookie clack-socket clack-test clack-v1-compat
      t-clack-handler-fcgi t-clack-handler-hunchentoot t-clack-handler-toot
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
index ff8e7cc953ca..876681846c89 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "closer-mop";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "Closer to MOP is a compatibility layer that rectifies many of the absent or incorrect CLOS MOP features across a broad range of Common Lisp implementations.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/closer-mop/2021-02-28/closer-mop-20210228-git.tgz";
-    sha256 = "0x3rp2v84zzw5mhcxrgbq2kcb9gs4jn1l9rh4ylsnih89l9lqc6i";
+    url = "http://beta.quicklisp.org/archive/closer-mop/2021-04-11/closer-mop-20210411-git.tgz";
+    sha256 = "0pynql962m2z7wqnmd51a2xm3wsqvgfxcq9maw2br0zs0icys236";
   };
 
   packageName = "closer-mop";
@@ -20,7 +20,7 @@ rec {
 }
 /* (SYSTEM closer-mop DESCRIPTION
     Closer to MOP is a compatibility layer that rectifies many of the absent or incorrect CLOS MOP features across a broad range of Common Lisp implementations.
-    SHA256 0x3rp2v84zzw5mhcxrgbq2kcb9gs4jn1l9rh4ylsnih89l9lqc6i URL
-    http://beta.quicklisp.org/archive/closer-mop/2021-02-28/closer-mop-20210228-git.tgz
-    MD5 49c0004ff21157bc99f227cecf7b6025 NAME closer-mop FILENAME closer-mop
-    DEPS NIL DEPENDENCIES NIL VERSION 20210228-git SIBLINGS NIL PARASITES NIL) */
+    SHA256 0pynql962m2z7wqnmd51a2xm3wsqvgfxcq9maw2br0zs0icys236 URL
+    http://beta.quicklisp.org/archive/closer-mop/2021-04-11/closer-mop-20210411-git.tgz
+    MD5 05b05d98ad294f8bd6f9779d04cc848a NAME closer-mop FILENAME closer-mop
+    DEPS NIL DEPENDENCIES NIL VERSION 20210411-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
index b7b7cf0eadc7..b035477eda47 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "dexador";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "Yet another HTTP client for Common Lisp";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."chipz" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-cookie" args."cl-ppcre" args."cl-reexport" args."cl-utilities" args."fast-http" args."fast-io" args."flexi-streams" args."local-time" args."proc-parse" args."quri" args."smart-buffer" args."split-sequence" args."static-vectors" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."trivial-mimes" args."usocket" args."xsubseq" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/dexador/2021-02-28/dexador-20210228-git.tgz";
-    sha256 = "0glzvi7nbr58izpwr8xzxvlcc78zmgwqaik374rmcy6w89q5ksw7";
+    url = "http://beta.quicklisp.org/archive/dexador/2021-04-11/dexador-20210411-git.tgz";
+    sha256 = "1px4llzb6x930cq3dmrkzidydqqc8rd2y4s3nlwpsrv4874cxwx1";
   };
 
   packageName = "dexador";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dexador DESCRIPTION Yet another HTTP client for Common Lisp SHA256
-    0glzvi7nbr58izpwr8xzxvlcc78zmgwqaik374rmcy6w89q5ksw7 URL
-    http://beta.quicklisp.org/archive/dexador/2021-02-28/dexador-20210228-git.tgz
-    MD5 e3b69c8ceb78d99351e574c40dfd0e12 NAME dexador FILENAME dexador DEPS
+    1px4llzb6x930cq3dmrkzidydqqc8rd2y4s3nlwpsrv4874cxwx1 URL
+    http://beta.quicklisp.org/archive/dexador/2021-04-11/dexador-20210411-git.tgz
+    MD5 10d59691af3e25e590a2dfff29c91292 NAME dexador FILENAME dexador DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME cffi-grovel FILENAME cffi-grovel)
@@ -48,4 +48,4 @@ rec {
      fast-http fast-io flexi-streams local-time proc-parse quri smart-buffer
      split-sequence static-vectors trivial-features trivial-garbage
      trivial-gray-streams trivial-mimes usocket xsubseq)
-    VERSION 20210228-git SIBLINGS (dexador-test) PARASITES NIL) */
+    VERSION 20210411-git SIBLINGS (dexador-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix
index c6bb4c1baaf0..6af2f0f24fee 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/file-attributes.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "file-attributes";
-  version = "20200925-git";
+  version = "20210411-git";
 
   description = "Access to file attributes (uid, gid, atime, mtime, mod)";
 
   deps = [ args."alexandria" args."babel" args."cffi" args."documentation-utils" args."trivial-features" args."trivial-indent" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/file-attributes/2020-09-25/file-attributes-20200925-git.tgz";
-    sha256 = "0wq3gs36zwl8dzknj3c794l60vg1zpf0siwhd7ad9pn81v3mdan7";
+    url = "http://beta.quicklisp.org/archive/file-attributes/2021-04-11/file-attributes-20210411-git.tgz";
+    sha256 = "0zsqimyzfivr08d6pdg6xxw6cj7q9pjh2wi9c460nh85z7a51yc9";
   };
 
   packageName = "file-attributes";
@@ -20,9 +20,9 @@ rec {
 }
 /* (SYSTEM file-attributes DESCRIPTION
     Access to file attributes (uid, gid, atime, mtime, mod) SHA256
-    0wq3gs36zwl8dzknj3c794l60vg1zpf0siwhd7ad9pn81v3mdan7 URL
-    http://beta.quicklisp.org/archive/file-attributes/2020-09-25/file-attributes-20200925-git.tgz
-    MD5 368468453cf57ecc29fa75f2a030a738 NAME file-attributes FILENAME
+    0zsqimyzfivr08d6pdg6xxw6cj7q9pjh2wi9c460nh85z7a51yc9 URL
+    http://beta.quicklisp.org/archive/file-attributes/2021-04-11/file-attributes-20210411-git.tgz
+    MD5 75e0f0e2c280c97fe496545e7105fa01 NAME file-attributes FILENAME
     file-attributes DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cffi FILENAME cffi)
@@ -31,4 +31,4 @@ rec {
      (NAME trivial-indent FILENAME trivial-indent))
     DEPENDENCIES
     (alexandria babel cffi documentation-utils trivial-features trivial-indent)
-    VERSION 20200925-git SIBLINGS NIL PARASITES NIL) */
+    VERSION 20210411-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/generic-cl.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/generic-cl.nix
new file mode 100644
index 000000000000..04750febab07
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/generic-cl.nix
@@ -0,0 +1,56 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "generic-cl";
+  version = "20201220-git";
+
+  parasites = [ "generic-cl/test" ];
+
+  description = "Standard Common Lisp functions implemented using generic functions.";
+
+  deps = [ args."agutil" args."alexandria" args."anaphora" args."arrows" args."cl-ansi-text" args."cl-colors" args."cl-custom-hash-table" args."cl-environments" args."cl-ppcre" args."closer-mop" args."collectors" args."introspect-environment" args."iterate" args."lisp-namespace" args."optima" args."prove" args."prove-asdf" args."static-dispatch" args."symbol-munger" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" args."type-i" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/generic-cl/2020-12-20/generic-cl-20201220-git.tgz";
+    sha256 = "02awl64bfykkasv3z9xpiiwq3v9vgcacqagbwvigqdk15hqrknyl";
+  };
+
+  packageName = "generic-cl";
+
+  asdFilesToKeep = ["generic-cl.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM generic-cl DESCRIPTION
+    Standard Common Lisp functions implemented using generic functions. SHA256
+    02awl64bfykkasv3z9xpiiwq3v9vgcacqagbwvigqdk15hqrknyl URL
+    http://beta.quicklisp.org/archive/generic-cl/2020-12-20/generic-cl-20201220-git.tgz
+    MD5 76aa19981d3addb9a741fd4705d5d3ff NAME generic-cl FILENAME generic-cl
+    DEPS
+    ((NAME agutil FILENAME agutil) (NAME alexandria FILENAME alexandria)
+     (NAME anaphora FILENAME anaphora) (NAME arrows FILENAME arrows)
+     (NAME cl-ansi-text FILENAME cl-ansi-text)
+     (NAME cl-colors FILENAME cl-colors)
+     (NAME cl-custom-hash-table FILENAME cl-custom-hash-table)
+     (NAME cl-environments FILENAME cl-environments)
+     (NAME cl-ppcre FILENAME cl-ppcre) (NAME closer-mop FILENAME closer-mop)
+     (NAME collectors FILENAME collectors)
+     (NAME introspect-environment FILENAME introspect-environment)
+     (NAME iterate FILENAME iterate)
+     (NAME lisp-namespace FILENAME lisp-namespace)
+     (NAME optima FILENAME optima) (NAME prove FILENAME prove)
+     (NAME prove-asdf FILENAME prove-asdf)
+     (NAME static-dispatch FILENAME static-dispatch)
+     (NAME symbol-munger FILENAME symbol-munger) (NAME trivia FILENAME trivia)
+     (NAME trivia.balland2006 FILENAME trivia_dot_balland2006)
+     (NAME trivia.level0 FILENAME trivia_dot_level0)
+     (NAME trivia.level1 FILENAME trivia_dot_level1)
+     (NAME trivia.level2 FILENAME trivia_dot_level2)
+     (NAME trivia.trivial FILENAME trivia_dot_trivial)
+     (NAME trivial-cltl2 FILENAME trivial-cltl2) (NAME type-i FILENAME type-i))
+    DEPENDENCIES
+    (agutil alexandria anaphora arrows cl-ansi-text cl-colors
+     cl-custom-hash-table cl-environments cl-ppcre closer-mop collectors
+     introspect-environment iterate lisp-namespace optima prove prove-asdf
+     static-dispatch symbol-munger trivia trivia.balland2006 trivia.level0
+     trivia.level1 trivia.level2 trivia.trivial trivial-cltl2 type-i)
+    VERSION 20201220-git SIBLINGS (generic-cl.util) PARASITES (generic-cl/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix
index c511435ac9c3..b6f602387e16 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/ironclad.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "ironclad";
-  version = "v0.54";
+  version = "v0.55";
 
   parasites = [ "ironclad/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."rt" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/ironclad/2021-01-24/ironclad-v0.54.tgz";
-    sha256 = "01mpsnjx8cgn3wx2n0dkv8v83z93da9zrxncn58ghbpyq3z1i4w2";
+    url = "http://beta.quicklisp.org/archive/ironclad/2021-04-11/ironclad-v0.55.tgz";
+    sha256 = "0vdqaad9i3dkz6z2y1iqmh6m77kc9jy49xh9bysgywl0gfdyhnq6";
   };
 
   packageName = "ironclad";
@@ -22,10 +22,10 @@ rec {
 }
 /* (SYSTEM ironclad DESCRIPTION
     A cryptographic toolkit written in pure Common Lisp SHA256
-    01mpsnjx8cgn3wx2n0dkv8v83z93da9zrxncn58ghbpyq3z1i4w2 URL
-    http://beta.quicklisp.org/archive/ironclad/2021-01-24/ironclad-v0.54.tgz
-    MD5 f99610509e4603aac66d9aa03ede2770 NAME ironclad FILENAME ironclad DEPS
+    0vdqaad9i3dkz6z2y1iqmh6m77kc9jy49xh9bysgywl0gfdyhnq6 URL
+    http://beta.quicklisp.org/archive/ironclad/2021-04-11/ironclad-v0.55.tgz
+    MD5 c3c4a88e71ef37c9604662071069afcc NAME ironclad FILENAME ironclad DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads) (NAME rt FILENAME rt))
-    DEPENDENCIES (alexandria bordeaux-threads rt) VERSION v0.54 SIBLINGS
+    DEPENDENCIES (alexandria bordeaux-threads rt) VERSION v0.55 SIBLINGS
     (ironclad-text) PARASITES (ironclad/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix
index e9e5ed5f1d16..e935d2b3d99d 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/marshal.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "marshal";
-  version = "cl-20201016-git";
+  version = "cl-20210411-git";
 
   description = "marshal: Simple (de)serialization of Lisp datastructures.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-marshal/2020-10-16/cl-marshal-20201016-git.tgz";
-    sha256 = "03j52yhgpc2myypgy07213l20rznxvf6m3sfbzy2wyapcmv7nxnz";
+    url = "http://beta.quicklisp.org/archive/cl-marshal/2021-04-11/cl-marshal-20210411-git.tgz";
+    sha256 = "0wi4csgl5qxgl0si5mcg19xx4qlmw125qn0w1i2f3dvvrzp20qrp";
   };
 
   packageName = "marshal";
@@ -20,8 +20,8 @@ rec {
 }
 /* (SYSTEM marshal DESCRIPTION
     marshal: Simple (de)serialization of Lisp datastructures. SHA256
-    03j52yhgpc2myypgy07213l20rznxvf6m3sfbzy2wyapcmv7nxnz URL
-    http://beta.quicklisp.org/archive/cl-marshal/2020-10-16/cl-marshal-20201016-git.tgz
-    MD5 243a2c3a5f1243ffb1639bca32a0aff0 NAME marshal FILENAME marshal DEPS NIL
-    DEPENDENCIES NIL VERSION cl-20201016-git SIBLINGS (marshal-tests) PARASITES
+    0wi4csgl5qxgl0si5mcg19xx4qlmw125qn0w1i2f3dvvrzp20qrp URL
+    http://beta.quicklisp.org/archive/cl-marshal/2021-04-11/cl-marshal-20210411-git.tgz
+    MD5 2463314a6bcd1a18bea2690deb6bce55 NAME marshal FILENAME marshal DEPS NIL
+    DEPENDENCIES NIL VERSION cl-20210411-git SIBLINGS (marshal-tests) PARASITES
     NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
index 53896192b52e..c22acbce4f0c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "mgl-pax";
-  version = "20210228-git";
+  version = "20210411-git";
 
   parasites = [ "mgl-pax/test" ];
 
@@ -12,8 +12,8 @@ rec {
   deps = [ args."_3bmd" args."_3bmd-ext-code-blocks" args."alexandria" args."babel" args."bordeaux-threads" args."cl-fad" args."colorize" args."esrap" args."html-encode" args."ironclad" args."named-readtables" args."pythonic-string-reader" args."split-sequence" args."swank" args."trivial-features" args."trivial-with-current-source-form" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/mgl-pax/2021-02-28/mgl-pax-20210228-git.tgz";
-    sha256 = "1dyhbnd69lb6ih89pvg8nn6pwsg25v5xjsfk1i5l1fdib14612cw";
+    url = "http://beta.quicklisp.org/archive/mgl-pax/2021-04-11/mgl-pax-20210411-git.tgz";
+    sha256 = "0dq5jkb6li0s1gqj6hfhifs6cd4kypavv2kjqg5zgs6zfs82sxh3";
   };
 
   packageName = "mgl-pax";
@@ -23,9 +23,9 @@ rec {
 }
 /* (SYSTEM mgl-pax DESCRIPTION Exploratory programming tool and documentation
   generator.
-    SHA256 1dyhbnd69lb6ih89pvg8nn6pwsg25v5xjsfk1i5l1fdib14612cw URL
-    http://beta.quicklisp.org/archive/mgl-pax/2021-02-28/mgl-pax-20210228-git.tgz
-    MD5 a256ce4ee76d669d233ee09830ef7968 NAME mgl-pax FILENAME mgl-pax DEPS
+    SHA256 0dq5jkb6li0s1gqj6hfhifs6cd4kypavv2kjqg5zgs6zfs82sxh3 URL
+    http://beta.quicklisp.org/archive/mgl-pax/2021-04-11/mgl-pax-20210411-git.tgz
+    MD5 44cf1bd71e6c40c256a43a87efa2c2a1 NAME mgl-pax FILENAME mgl-pax DEPS
     ((NAME 3bmd FILENAME _3bmd)
      (NAME 3bmd-ext-code-blocks FILENAME _3bmd-ext-code-blocks)
      (NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
@@ -44,4 +44,4 @@ rec {
      colorize esrap html-encode ironclad named-readtables
      pythonic-string-reader split-sequence swank trivial-features
      trivial-with-current-source-form)
-    VERSION 20210228-git SIBLINGS NIL PARASITES (mgl-pax/test)) */
+    VERSION 20210411-git SIBLINGS NIL PARASITES (mgl-pax/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix
index ef0817fbe7ca..fa7d1e047d93 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/plump.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "plump";
-  version = "20210124-git";
+  version = "20210411-git";
 
   description = "An XML / XHTML / HTML parser that aims to be as lenient as possible.";
 
   deps = [ args."array-utils" args."documentation-utils" args."trivial-indent" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/plump/2021-01-24/plump-20210124-git.tgz";
-    sha256 = "0br64xiz4mgmmsvkfmi43k2q16rmc6hbqf976x8cdafs3h266jdm";
+    url = "http://beta.quicklisp.org/archive/plump/2021-04-11/plump-20210411-git.tgz";
+    sha256 = "05zs9blznfhapz5yiy08968hw64rzdgqgvfgc9r9da45b45pl6dp";
   };
 
   packageName = "plump";
@@ -20,11 +20,11 @@ rec {
 }
 /* (SYSTEM plump DESCRIPTION
     An XML / XHTML / HTML parser that aims to be as lenient as possible. SHA256
-    0br64xiz4mgmmsvkfmi43k2q16rmc6hbqf976x8cdafs3h266jdm URL
-    http://beta.quicklisp.org/archive/plump/2021-01-24/plump-20210124-git.tgz
-    MD5 44a5d371dd1c3d4afc6b8801926b059a NAME plump FILENAME plump DEPS
+    05zs9blznfhapz5yiy08968hw64rzdgqgvfgc9r9da45b45pl6dp URL
+    http://beta.quicklisp.org/archive/plump/2021-04-11/plump-20210411-git.tgz
+    MD5 055e30ed07ae793426a48b55c947f9bb NAME plump FILENAME plump DEPS
     ((NAME array-utils FILENAME array-utils)
      (NAME documentation-utils FILENAME documentation-utils)
      (NAME trivial-indent FILENAME trivial-indent))
     DEPENDENCIES (array-utils documentation-utils trivial-indent) VERSION
-    20210124-git SIBLINGS (plump-dom plump-lexer plump-parser) PARASITES NIL) */
+    20210411-git SIBLINGS (plump-dom plump-lexer plump-parser) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
index f530d71eb687..245cb109a32c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "postmodern";
-  version = "20210124-git";
+  version = "20210411-git";
 
   parasites = [ "postmodern/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-postgres_plus_local-time" args."cl-postgres_slash_tests" args."cl-ppcre" args."cl-unicode" args."closer-mop" args."fiveam" args."flexi-streams" args."global-vars" args."ironclad" args."local-time" args."md5" args."s-sql" args."s-sql_slash_tests" args."simple-date" args."simple-date_slash_postgres-glue" args."split-sequence" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
-    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz";
+    sha256 = "0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw";
   };
 
   packageName = "postmodern";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM postmodern DESCRIPTION PostgreSQL programming API SHA256
-    1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
-    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
-    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME postmodern FILENAME postmodern
+    0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw URL
+    http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz
+    MD5 8a75a05ba9e371f672f2620d40724cb2 NAME postmodern FILENAME postmodern
     DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -46,5 +46,5 @@ rec {
      cl-postgres/tests cl-ppcre cl-unicode closer-mop fiveam flexi-streams
      global-vars ironclad local-time md5 s-sql s-sql/tests simple-date
      simple-date/postgres-glue split-sequence uax-15 usocket)
-    VERSION 20210124-git SIBLINGS (cl-postgres s-sql simple-date) PARASITES
+    VERSION 20210411-git SIBLINGS (cl-postgres s-sql simple-date) PARASITES
     (postmodern/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix
index 12ea17a3491b..48d98ca23959 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/quri.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "quri";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "Yet another URI library for Common Lisp";
 
   deps = [ args."alexandria" args."babel" args."cl-utilities" args."split-sequence" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/quri/2021-02-28/quri-20210228-git.tgz";
-    sha256 = "03hq6x715kv37c089b73f6j8b0f4ywhxr37wbw9any2jcgrswx0g";
+    url = "http://beta.quicklisp.org/archive/quri/2021-04-11/quri-20210411-git.tgz";
+    sha256 = "1j4al77bl8awj7755g8zvgvfskdh6gcl3gygbz2fi6lrrk9125d7";
   };
 
   packageName = "quri";
@@ -19,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM quri DESCRIPTION Yet another URI library for Common Lisp SHA256
-    03hq6x715kv37c089b73f6j8b0f4ywhxr37wbw9any2jcgrswx0g URL
-    http://beta.quicklisp.org/archive/quri/2021-02-28/quri-20210228-git.tgz MD5
-    67eac028850cc2539c076d31b049f7bd NAME quri FILENAME quri DEPS
+    1j4al77bl8awj7755g8zvgvfskdh6gcl3gygbz2fi6lrrk9125d7 URL
+    http://beta.quicklisp.org/archive/quri/2021-04-11/quri-20210411-git.tgz MD5
+    2727c706f51bef480171c59f6134bba5 NAME quri FILENAME quri DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cl-utilities FILENAME cl-utilities)
      (NAME split-sequence FILENAME split-sequence)
      (NAME trivial-features FILENAME trivial-features))
     DEPENDENCIES
     (alexandria babel cl-utilities split-sequence trivial-features) VERSION
-    20210228-git SIBLINGS (quri-test) PARASITES NIL) */
+    20210411-git SIBLINGS (quri-test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
index d6ac95810a48..d91ab87d8225 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "s-sql";
-  version = "postmodern-20210124-git";
+  version = "postmodern-20210411-git";
 
   parasites = [ "s-sql/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-postgres_slash_tests" args."cl-ppcre" args."cl-unicode" args."closer-mop" args."fiveam" args."global-vars" args."ironclad" args."md5" args."postmodern" args."split-sequence" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
-    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz";
+    sha256 = "0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw";
   };
 
   packageName = "s-sql";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM s-sql DESCRIPTION Lispy DSL for SQL SHA256
-    1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
-    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
-    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME s-sql FILENAME s-sql DEPS
+    0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw URL
+    http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz
+    MD5 8a75a05ba9e371f672f2620d40724cb2 NAME s-sql FILENAME s-sql DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cl-base64 FILENAME cl-base64)
@@ -39,5 +39,5 @@ rec {
     (alexandria bordeaux-threads cl-base64 cl-postgres cl-postgres/tests
      cl-ppcre cl-unicode closer-mop fiveam global-vars ironclad md5 postmodern
      split-sequence uax-15 usocket)
-    VERSION postmodern-20210124-git SIBLINGS
+    VERSION postmodern-20210411-git SIBLINGS
     (cl-postgres postmodern simple-date) PARASITES (s-sql/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
index cab4e8c14946..e97a639814e9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "serapeum";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "Utilities beyond Alexandria.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."closer-mop" args."fare-quasiquote" args."fare-quasiquote-extras" args."fare-quasiquote-optima" args."fare-quasiquote-readtable" args."fare-utils" args."global-vars" args."introspect-environment" args."iterate" args."lisp-namespace" args."named-readtables" args."parse-declarations-1_dot_0" args."parse-number" args."split-sequence" args."string-case" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_quasiquote" args."trivia_dot_trivial" args."trivial-cltl2" args."trivial-features" args."trivial-file-size" args."trivial-garbage" args."trivial-macroexpand-all" args."type-i" args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/serapeum/2021-02-28/serapeum-20210228-git.tgz";
-    sha256 = "1dici8bmvrx5h74disrlvwns8f8jl746i4cyzyclswhv208x2m3x";
+    url = "http://beta.quicklisp.org/archive/serapeum/2021-04-11/serapeum-20210411-git.tgz";
+    sha256 = "1zz0sjp2dwy7qg7a3h1asvflkl9z2ajwk9zqfqylm0mhl0mv2c01";
   };
 
   packageName = "serapeum";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM serapeum DESCRIPTION Utilities beyond Alexandria. SHA256
-    1dici8bmvrx5h74disrlvwns8f8jl746i4cyzyclswhv208x2m3x URL
-    http://beta.quicklisp.org/archive/serapeum/2021-02-28/serapeum-20210228-git.tgz
-    MD5 25502093ea13851021422000686a54b7 NAME serapeum FILENAME serapeum DEPS
+    1zz0sjp2dwy7qg7a3h1asvflkl9z2ajwk9zqfqylm0mhl0mv2c01 URL
+    http://beta.quicklisp.org/archive/serapeum/2021-04-11/serapeum-20210411-git.tgz
+    MD5 091a7c572d48164ba8499bb44a37a85f NAME serapeum FILENAME serapeum DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME closer-mop FILENAME closer-mop)
@@ -60,4 +60,4 @@ rec {
      trivia.level2 trivia.quasiquote trivia.trivial trivial-cltl2
      trivial-features trivial-file-size trivial-garbage trivial-macroexpand-all
      type-i uiop)
-    VERSION 20210228-git SIBLINGS NIL PARASITES NIL) */
+    VERSION 20210411-git SIBLINGS NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
index d861d72cccde..efe7f6a9eeed 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "simple-date";
-  version = "postmodern-20210124-git";
+  version = "postmodern-20210411-git";
 
   parasites = [ "simple-date/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."fiveam" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz";
-    sha256 = "1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz";
+    sha256 = "0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw";
   };
 
   packageName = "simple-date";
@@ -22,9 +22,9 @@ rec {
 }
 /* (SYSTEM simple-date DESCRIPTION
     Simple date library that can be used with postmodern SHA256
-    1fl103fga5iq2gf1p15xvbrmmjrcv2bbi3lz1zv32j6smy5aymhc URL
-    http://beta.quicklisp.org/archive/postmodern/2021-01-24/postmodern-20210124-git.tgz
-    MD5 05c2c5f4d2354a5fa69a32b7b96f8ff8 NAME simple-date FILENAME simple-date
+    0q8izkkddmqq5sw55chkx6jrycawgchaknik5i84vynv50zirsbw URL
+    http://beta.quicklisp.org/archive/postmodern/2021-04-11/postmodern-20210411-git.tgz
+    MD5 8a75a05ba9e371f672f2620d40724cb2 NAME simple-date FILENAME simple-date
     DEPS ((NAME fiveam FILENAME fiveam)) DEPENDENCIES (fiveam) VERSION
-    postmodern-20210124-git SIBLINGS (cl-postgres postmodern s-sql) PARASITES
+    postmodern-20210411-git SIBLINGS (cl-postgres postmodern s-sql) PARASITES
     (simple-date/tests)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix
new file mode 100644
index 000000000000..040bf87d306f
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix
@@ -0,0 +1,55 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "static-dispatch";
+  version = "20210411-git";
+
+  parasites = [ "static-dispatch/test" ];
+
+  description = "Static generic function dispatch for Common Lisp.";
+
+  deps = [ args."agutil" args."alexandria" args."anaphora" args."arrows" args."cl-ansi-text" args."cl-colors" args."cl-environments" args."cl-interpol" args."closer-mop" args."collectors" args."introspect-environment" args."iterate" args."lisp-namespace" args."optima" args."prove" args."prove-asdf" args."symbol-munger" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" args."type-i" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/static-dispatch/2021-04-11/static-dispatch-20210411-git.tgz";
+    sha256 = "0dqkapripvb5qrhpim1b5y2ymn99s2zcwf38vmqyiqk3n3hvjjh1";
+  };
+
+  packageName = "static-dispatch";
+
+  asdFilesToKeep = ["static-dispatch.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM static-dispatch DESCRIPTION
+    Static generic function dispatch for Common Lisp. SHA256
+    0dqkapripvb5qrhpim1b5y2ymn99s2zcwf38vmqyiqk3n3hvjjh1 URL
+    http://beta.quicklisp.org/archive/static-dispatch/2021-04-11/static-dispatch-20210411-git.tgz
+    MD5 7af665c6a3a1aa3315fe0a651ca559de NAME static-dispatch FILENAME
+    static-dispatch DEPS
+    ((NAME agutil FILENAME agutil) (NAME alexandria FILENAME alexandria)
+     (NAME anaphora FILENAME anaphora) (NAME arrows FILENAME arrows)
+     (NAME cl-ansi-text FILENAME cl-ansi-text)
+     (NAME cl-colors FILENAME cl-colors)
+     (NAME cl-environments FILENAME cl-environments)
+     (NAME cl-interpol FILENAME cl-interpol)
+     (NAME closer-mop FILENAME closer-mop)
+     (NAME collectors FILENAME collectors)
+     (NAME introspect-environment FILENAME introspect-environment)
+     (NAME iterate FILENAME iterate)
+     (NAME lisp-namespace FILENAME lisp-namespace)
+     (NAME optima FILENAME optima) (NAME prove FILENAME prove)
+     (NAME prove-asdf FILENAME prove-asdf)
+     (NAME symbol-munger FILENAME symbol-munger) (NAME trivia FILENAME trivia)
+     (NAME trivia.balland2006 FILENAME trivia_dot_balland2006)
+     (NAME trivia.level0 FILENAME trivia_dot_level0)
+     (NAME trivia.level1 FILENAME trivia_dot_level1)
+     (NAME trivia.level2 FILENAME trivia_dot_level2)
+     (NAME trivia.trivial FILENAME trivia_dot_trivial)
+     (NAME trivial-cltl2 FILENAME trivial-cltl2) (NAME type-i FILENAME type-i))
+    DEPENDENCIES
+    (agutil alexandria anaphora arrows cl-ansi-text cl-colors cl-environments
+     cl-interpol closer-mop collectors introspect-environment iterate
+     lisp-namespace optima prove prove-asdf symbol-munger trivia
+     trivia.balland2006 trivia.level0 trivia.level1 trivia.level2
+     trivia.trivial trivial-cltl2 type-i)
+    VERSION 20210411-git SIBLINGS NIL PARASITES (static-dispatch/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix
index b352c476e081..11ddf729c3ae 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/str.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "str";
-  version = "cl-20210124-git";
+  version = "cl-20210411-git";
 
   description = "Modern, consistent and terse Common Lisp string manipulation library.";
 
   deps = [ args."cl-change-case" args."cl-ppcre" args."cl-ppcre-unicode" args."cl-unicode" args."flexi-streams" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-str/2021-01-24/cl-str-20210124-git.tgz";
-    sha256 = "07y24mx8gmhwz6px63llgsz15aqicqa4m8gd5zwxy708xggv73jc";
+    url = "http://beta.quicklisp.org/archive/cl-str/2021-04-11/cl-str-20210411-git.tgz";
+    sha256 = "0xyazb3j4j0wsq443fpavv4hxnizkcvhkgz709lnp7cxygpdnl7m";
   };
 
   packageName = "str";
@@ -20,9 +20,9 @@ rec {
 }
 /* (SYSTEM str DESCRIPTION
     Modern, consistent and terse Common Lisp string manipulation library.
-    SHA256 07y24mx8gmhwz6px63llgsz15aqicqa4m8gd5zwxy708xggv73jc URL
-    http://beta.quicklisp.org/archive/cl-str/2021-01-24/cl-str-20210124-git.tgz
-    MD5 afd5d3e1078bef872b0507215855397e NAME str FILENAME str DEPS
+    SHA256 0xyazb3j4j0wsq443fpavv4hxnizkcvhkgz709lnp7cxygpdnl7m URL
+    http://beta.quicklisp.org/archive/cl-str/2021-04-11/cl-str-20210411-git.tgz
+    MD5 6c6b4de0886d448155a5cca0dd38a189 NAME str FILENAME str DEPS
     ((NAME cl-change-case FILENAME cl-change-case)
      (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME cl-ppcre-unicode FILENAME cl-ppcre-unicode)
@@ -30,4 +30,4 @@ rec {
      (NAME flexi-streams FILENAME flexi-streams))
     DEPENDENCIES
     (cl-change-case cl-ppcre cl-ppcre-unicode cl-unicode flexi-streams) VERSION
-    cl-20210124-git SIBLINGS (str.test) PARASITES NIL) */
+    cl-20210411-git SIBLINGS (str.test) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
index f59a9d34e3db..13b025ea5bed 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "stumpwm";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "A tiling, keyboard driven window manager";
 
   deps = [ args."alexandria" args."cl-ppcre" args."clx" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/stumpwm/2021-02-28/stumpwm-20210228-git.tgz";
-    sha256 = "0vfhn90vfyhlbjkfkzx0i7i6qh79p9q4c4hhsym80niz508xw5v8";
+    url = "http://beta.quicklisp.org/archive/stumpwm/2021-04-11/stumpwm-20210411-git.tgz";
+    sha256 = "0rrhmryfgbjrl04ww107pvm4lzm620xp7a5kwhqbh5d7hpbdk49j";
   };
 
   packageName = "stumpwm";
@@ -19,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM stumpwm DESCRIPTION A tiling, keyboard driven window manager SHA256
-    0vfhn90vfyhlbjkfkzx0i7i6qh79p9q4c4hhsym80niz508xw5v8 URL
-    http://beta.quicklisp.org/archive/stumpwm/2021-02-28/stumpwm-20210228-git.tgz
-    MD5 0506bcd0951463ea45cebfdb5ce76511 NAME stumpwm FILENAME stumpwm DEPS
+    0rrhmryfgbjrl04ww107pvm4lzm620xp7a5kwhqbh5d7hpbdk49j URL
+    http://beta.quicklisp.org/archive/stumpwm/2021-04-11/stumpwm-20210411-git.tgz
+    MD5 4497670e2aac3038ed5fb87121ff1b7a NAME stumpwm FILENAME stumpwm DEPS
     ((NAME alexandria FILENAME alexandria) (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME clx FILENAME clx))
-    DEPENDENCIES (alexandria cl-ppcre clx) VERSION 20210228-git SIBLINGS
+    DEPENDENCIES (alexandria cl-ppcre clx) VERSION 20210411-git SIBLINGS
     (stumpwm-tests) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix
index b8c330cc2fd8..7f1077ed0cdd 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase";
 
   deps = [ args."alexandria" args."closer-mop" args."introspect-environment" args."iterate" args."lisp-namespace" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" args."type-i" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
-    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz";
+    sha256 = "1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8";
   };
 
   packageName = "trivia";
@@ -20,9 +20,9 @@ rec {
 }
 /* (SYSTEM trivia DESCRIPTION
     NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase
-    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
-    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
-    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia FILENAME trivia DEPS
+    SHA256 1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8 URL
+    http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz
+    MD5 3fde6243390481d089cda082573876f6 NAME trivia FILENAME trivia DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
      (NAME introspect-environment FILENAME introspect-environment)
@@ -38,7 +38,7 @@ rec {
     (alexandria closer-mop introspect-environment iterate lisp-namespace
      trivia.balland2006 trivia.level0 trivia.level1 trivia.level2
      trivia.trivial trivial-cltl2 type-i)
-    VERSION 20210228-git SIBLINGS
+    VERSION 20210411-git SIBLINGS
     (trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.level2 trivia.ppcre trivia.quasiquote trivia.test
      trivia.trivial)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix
index 801781dd5a54..ce47f1d3df26 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_balland2006.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_balland2006";
-  version = "trivia-20210228-git";
+  version = "trivia-20210411-git";
 
   description = "Optimizer for Trivia based on (Balland 2006)";
 
   deps = [ args."alexandria" args."closer-mop" args."introspect-environment" args."iterate" args."lisp-namespace" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" args."type-i" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
-    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz";
+    sha256 = "1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8";
   };
 
   packageName = "trivia.balland2006";
@@ -20,9 +20,9 @@ rec {
 }
 /* (SYSTEM trivia.balland2006 DESCRIPTION
     Optimizer for Trivia based on (Balland 2006) SHA256
-    0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
-    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
-    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.balland2006 FILENAME
+    1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8 URL
+    http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz
+    MD5 3fde6243390481d089cda082573876f6 NAME trivia.balland2006 FILENAME
     trivia_dot_balland2006 DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -38,7 +38,7 @@ rec {
     (alexandria closer-mop introspect-environment iterate lisp-namespace
      trivia.level0 trivia.level1 trivia.level2 trivia.trivial trivial-cltl2
      type-i)
-    VERSION trivia-20210228-git SIBLINGS
+    VERSION trivia-20210411-git SIBLINGS
     (trivia trivia.benchmark trivia.cffi trivia.level0 trivia.level1
      trivia.level2 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix
index 327ac0cdf1c4..cfa992935f9c 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level0.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_level0";
-  version = "trivia-20210228-git";
+  version = "trivia-20210411-git";
 
   description = "Bootstrapping Pattern Matching Library for implementing Trivia";
 
   deps = [ args."alexandria" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
-    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz";
+    sha256 = "1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8";
   };
 
   packageName = "trivia.level0";
@@ -20,11 +20,11 @@ rec {
 }
 /* (SYSTEM trivia.level0 DESCRIPTION
     Bootstrapping Pattern Matching Library for implementing Trivia SHA256
-    0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
-    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
-    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.level0 FILENAME
+    1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8 URL
+    http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz
+    MD5 3fde6243390481d089cda082573876f6 NAME trivia.level0 FILENAME
     trivia_dot_level0 DEPS ((NAME alexandria FILENAME alexandria)) DEPENDENCIES
-    (alexandria) VERSION trivia-20210228-git SIBLINGS
+    (alexandria) VERSION trivia-20210411-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level1
      trivia.level2 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix
index eecb4c17eacd..5cadfcf57235 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level1.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_level1";
-  version = "trivia-20210228-git";
+  version = "trivia-20210411-git";
 
   description = "Core patterns of Trivia";
 
   deps = [ args."alexandria" args."trivia_dot_level0" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
-    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz";
+    sha256 = "1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8";
   };
 
   packageName = "trivia.level1";
@@ -19,13 +19,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM trivia.level1 DESCRIPTION Core patterns of Trivia SHA256
-    0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
-    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
-    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.level1 FILENAME
+    1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8 URL
+    http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz
+    MD5 3fde6243390481d089cda082573876f6 NAME trivia.level1 FILENAME
     trivia_dot_level1 DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME trivia.level0 FILENAME trivia_dot_level0))
-    DEPENDENCIES (alexandria trivia.level0) VERSION trivia-20210228-git
+    DEPENDENCIES (alexandria trivia.level0) VERSION trivia-20210411-git
     SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level2 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix
index ec0d99e06be3..9e8ceca1eebb 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_level2.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_level2";
-  version = "trivia-20210228-git";
+  version = "trivia-20210411-git";
 
   description = "NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase";
 
   deps = [ args."alexandria" args."closer-mop" args."lisp-namespace" args."trivia_dot_level0" args."trivia_dot_level1" args."trivial-cltl2" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
-    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz";
+    sha256 = "1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8";
   };
 
   packageName = "trivia.level2";
@@ -20,9 +20,9 @@ rec {
 }
 /* (SYSTEM trivia.level2 DESCRIPTION
     NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase
-    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
-    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
-    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.level2 FILENAME
+    SHA256 1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8 URL
+    http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz
+    MD5 3fde6243390481d089cda082573876f6 NAME trivia.level2 FILENAME
     trivia_dot_level2 DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -33,7 +33,7 @@ rec {
     DEPENDENCIES
     (alexandria closer-mop lisp-namespace trivia.level0 trivia.level1
      trivial-cltl2)
-    VERSION trivia-20210228-git SIBLINGS
+    VERSION trivia-20210411-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.ppcre trivia.quasiquote trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix
index 420e4ae30586..bf6b1fb3548e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_quasiquote.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_quasiquote";
-  version = "trivia-20210228-git";
+  version = "trivia-20210411-git";
 
   description = "fare-quasiquote extension for trivia";
 
   deps = [ args."alexandria" args."closer-mop" args."fare-quasiquote" args."fare-quasiquote-readtable" args."fare-utils" args."lisp-namespace" args."named-readtables" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_trivial" args."trivial-cltl2" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
-    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz";
+    sha256 = "1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8";
   };
 
   packageName = "trivia.quasiquote";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM trivia.quasiquote DESCRIPTION fare-quasiquote extension for trivia
-    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
-    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
-    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.quasiquote FILENAME
+    SHA256 1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8 URL
+    http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz
+    MD5 3fde6243390481d089cda082573876f6 NAME trivia.quasiquote FILENAME
     trivia_dot_quasiquote DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -39,7 +39,7 @@ rec {
     (alexandria closer-mop fare-quasiquote fare-quasiquote-readtable fare-utils
      lisp-namespace named-readtables trivia.level0 trivia.level1 trivia.level2
      trivia.trivial trivial-cltl2)
-    VERSION trivia-20210228-git SIBLINGS
+    VERSION trivia-20210411-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.level2 trivia.ppcre trivia.test trivia.trivial)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix
index 1173a24c8c60..3fe1ddbd06c6 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivia_dot_trivial.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivia_dot_trivial";
-  version = "trivia-20210228-git";
+  version = "trivia-20210411-git";
 
   description = "Base level system of Trivia with a trivial optimizer.
  Systems that intend to enhance Trivia should depend on this package, not the TRIVIA system,
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."closer-mop" args."lisp-namespace" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivial-cltl2" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz";
-    sha256 = "0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6";
+    url = "http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz";
+    sha256 = "1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8";
   };
 
   packageName = "trivia.trivial";
@@ -24,9 +24,9 @@ rec {
     Base level system of Trivia with a trivial optimizer.
  Systems that intend to enhance Trivia should depend on this package, not the TRIVIA system,
  in order to avoid the circular dependency.
-    SHA256 0qqyspq2mryl87wgrm43sj7d2wqb1pckk7fjvnmmyrf5kz5p4pc6 URL
-    http://beta.quicklisp.org/archive/trivia/2021-02-28/trivia-20210228-git.tgz
-    MD5 b374212a63c1e3b7e5c0e26348516106 NAME trivia.trivial FILENAME
+    SHA256 1dy35yhjhzcqsq5rwsan1f9x2ss8wcw55n2jzzgymj1vqvzp5mn8 URL
+    http://beta.quicklisp.org/archive/trivia/2021-04-11/trivia-20210411-git.tgz
+    MD5 3fde6243390481d089cda082573876f6 NAME trivia.trivial FILENAME
     trivia_dot_trivial DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME closer-mop FILENAME closer-mop)
@@ -38,7 +38,7 @@ rec {
     DEPENDENCIES
     (alexandria closer-mop lisp-namespace trivia.level0 trivia.level1
      trivia.level2 trivial-cltl2)
-    VERSION trivia-20210228-git SIBLINGS
+    VERSION trivia-20210411-git SIBLINGS
     (trivia trivia.balland2006 trivia.benchmark trivia.cffi trivia.level0
      trivia.level1 trivia.level2 trivia.ppcre trivia.quasiquote trivia.test)
     PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-arguments.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-arguments.nix
new file mode 100644
index 000000000000..9444b0b690df
--- /dev/null
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-arguments.nix
@@ -0,0 +1,27 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "trivial-arguments";
+  version = "20200925-git";
+
+  description = "A simple library to retrieve the lambda-list of a function.";
+
+  deps = [ ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/trivial-arguments/2020-09-25/trivial-arguments-20200925-git.tgz";
+    sha256 = "079xm6f1vmsng7dzgb2x3m7k46jfw19wskwf1l5cid5nm267d295";
+  };
+
+  packageName = "trivial-arguments";
+
+  asdFilesToKeep = ["trivial-arguments.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM trivial-arguments DESCRIPTION
+    A simple library to retrieve the lambda-list of a function. SHA256
+    079xm6f1vmsng7dzgb2x3m7k46jfw19wskwf1l5cid5nm267d295 URL
+    http://beta.quicklisp.org/archive/trivial-arguments/2020-09-25/trivial-arguments-20200925-git.tgz
+    MD5 3d7b76a729b272019c8827e40bfb6db8 NAME trivial-arguments FILENAME
+    trivial-arguments DEPS NIL DEPENDENCIES NIL VERSION 20200925-git SIBLINGS
+    NIL PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
index 272361dadc09..e762613bf086 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-features";
-  version = "20210228-git";
+  version = "20210411-git";
 
   description = "Ensures consistent *FEATURES* across multiple CLs.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivial-features/2021-02-28/trivial-features-20210228-git.tgz";
-    sha256 = "1najk88r8nlpbxm8mjfj8b22f9chr9h2hxg9wqz87kkmhg4rfwwj";
+    url = "http://beta.quicklisp.org/archive/trivial-features/2021-04-11/trivial-features-20210411-git.tgz";
+    sha256 = "0z6nzql8z7bz8kzd08mh36h0r54vqx7pwigy8r617jhvb0r0n0n4";
   };
 
   packageName = "trivial-features";
@@ -20,8 +20,8 @@ rec {
 }
 /* (SYSTEM trivial-features DESCRIPTION
     Ensures consistent *FEATURES* across multiple CLs. SHA256
-    1najk88r8nlpbxm8mjfj8b22f9chr9h2hxg9wqz87kkmhg4rfwwj URL
-    http://beta.quicklisp.org/archive/trivial-features/2021-02-28/trivial-features-20210228-git.tgz
-    MD5 6d628c0c941346773751a684213a52d7 NAME trivial-features FILENAME
-    trivial-features DEPS NIL DEPENDENCIES NIL VERSION 20210228-git SIBLINGS
+    0z6nzql8z7bz8kzd08mh36h0r54vqx7pwigy8r617jhvb0r0n0n4 URL
+    http://beta.quicklisp.org/archive/trivial-features/2021-04-11/trivial-features-20210411-git.tgz
+    MD5 5ec554fff48d38af5023604a1ae42d3a NAME trivial-features FILENAME
+    trivial-features DEPS NIL DEPENDENCIES NIL VERSION 20210411-git SIBLINGS
     (trivial-features-tests) PARASITES NIL) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix
index bbaf2de554f0..1e9decab3271 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-output/utilities_dot_print-items.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "utilities_dot_print-items";
-  version = "20190813-git";
+  version = "20210411-git";
 
   parasites = [ "utilities.print-items/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."fiveam" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/utilities.print-items/2019-08-13/utilities.print-items-20190813-git.tgz";
-    sha256 = "12l4kzz621qfcg8p5qzyxp4n4hh9wdlpiziykwb4c80g32rdwkc2";
+    url = "http://beta.quicklisp.org/archive/utilities.print-items/2021-04-11/utilities.print-items-20210411-git.tgz";
+    sha256 = "0da2m4b993w31wph2ybdmdd6rycadrp44ccjdba5pygpkf3x00gx";
   };
 
   packageName = "utilities.print-items";
@@ -22,10 +22,10 @@ rec {
 }
 /* (SYSTEM utilities.print-items DESCRIPTION
     A protocol for flexible and composable printing. SHA256
-    12l4kzz621qfcg8p5qzyxp4n4hh9wdlpiziykwb4c80g32rdwkc2 URL
-    http://beta.quicklisp.org/archive/utilities.print-items/2019-08-13/utilities.print-items-20190813-git.tgz
-    MD5 0f26580bb5d3587ed1815f70976b2a0a NAME utilities.print-items FILENAME
+    0da2m4b993w31wph2ybdmdd6rycadrp44ccjdba5pygpkf3x00gx URL
+    http://beta.quicklisp.org/archive/utilities.print-items/2021-04-11/utilities.print-items-20210411-git.tgz
+    MD5 35be0e5ee4c957699082fb6ae8f14ef2 NAME utilities.print-items FILENAME
     utilities_dot_print-items DEPS
     ((NAME alexandria FILENAME alexandria) (NAME fiveam FILENAME fiveam))
-    DEPENDENCIES (alexandria fiveam) VERSION 20190813-git SIBLINGS NIL
+    DEPENDENCIES (alexandria fiveam) VERSION 20210411-git SIBLINGS NIL
     PARASITES (utilities.print-items/test)) */
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
index 628001000e8c..dbc57cb8d1fc 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
@@ -276,4 +276,7 @@ $out/lib/common-lisp/query-fs"
     (extraLispDeps (with quicklisp-to-nix-packages; [cl-syslog]));
   md5 = ifLispNotIn ["sbcl" "ccl" "gcl"]
     (extraLispDeps (with quicklisp-to-nix-packages; [flexi-streams]));
+  cl-gobject-introspection = addNativeLibs (with pkgs; [glib gobject-introspection]);
+  generic-cl = x: { parasites = []; };
+  static-dispatch = x: { parasites = []; };
 }
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
index 27eb3c90eddb..6cbd7f4115a9 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
@@ -41,6 +41,7 @@ cl-emb
 cl-fad
 cl-fuse
 cl-fuse-meta-fs
+cl-gobject-introspection
 cl-hooks
 cl-html-diff
 cl-html5-parser
@@ -122,6 +123,7 @@ fiveam
 flexi-streams
 form-fiddle
 fset
+generic-cl
 gettext
 http-body
 hu.dwim.asdf
@@ -188,6 +190,7 @@ swank
 swap-bytes
 symbol-munger
 trivia
+trivial-arguments
 trivial-backtrace
 trivial-clipboard
 trivial-features
diff --git a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix
index 1e0952aabafd..ed8e87162c84 100644
--- a/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/quicklisp-to-nix.nix
@@ -289,15 +289,18 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
-  "type-i" = buildLispPackage
+  "trivia_dot_quasiquote" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."type-i" or (x: {}))
-       (import ./quicklisp-to-nix-output/type-i.nix {
+       (qlOverrides."trivia_dot_quasiquote" or (x: {}))
+       (import ./quicklisp-to-nix-output/trivia_dot_quasiquote.nix {
          inherit fetchurl;
            "alexandria" = quicklisp-to-nix-packages."alexandria";
            "closer-mop" = quicklisp-to-nix-packages."closer-mop";
-           "introspect-environment" = quicklisp-to-nix-packages."introspect-environment";
+           "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
+           "fare-quasiquote-readtable" = quicklisp-to-nix-packages."fare-quasiquote-readtable";
+           "fare-utils" = quicklisp-to-nix-packages."fare-utils";
            "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
+           "named-readtables" = quicklisp-to-nix-packages."named-readtables";
            "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
            "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
            "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
@@ -306,37 +309,47 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
-  "trivial-cltl2" = buildLispPackage
+  "fare-quasiquote-readtable" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."trivial-cltl2" or (x: {}))
-       (import ./quicklisp-to-nix-output/trivial-cltl2.nix {
+       (qlOverrides."fare-quasiquote-readtable" or (x: {}))
+       (import ./quicklisp-to-nix-output/fare-quasiquote-readtable.nix {
          inherit fetchurl;
+           "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
+           "fare-utils" = quicklisp-to-nix-packages."fare-utils";
+           "named-readtables" = quicklisp-to-nix-packages."named-readtables";
        }));
 
 
-  "trivia_dot_trivial" = buildLispPackage
+  "fare-quasiquote-optima" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."trivia_dot_trivial" or (x: {}))
-       (import ./quicklisp-to-nix-output/trivia_dot_trivial.nix {
+       (qlOverrides."fare-quasiquote-optima" or (x: {}))
+       (import ./quicklisp-to-nix-output/fare-quasiquote-optima.nix {
          inherit fetchurl;
            "alexandria" = quicklisp-to-nix-packages."alexandria";
            "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
+           "fare-quasiquote-readtable" = quicklisp-to-nix-packages."fare-quasiquote-readtable";
+           "fare-utils" = quicklisp-to-nix-packages."fare-utils";
            "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
+           "named-readtables" = quicklisp-to-nix-packages."named-readtables";
            "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
            "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
            "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
+           "trivia_dot_quasiquote" = quicklisp-to-nix-packages."trivia_dot_quasiquote";
+           "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
            "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
        }));
 
 
-  "trivia_dot_quasiquote" = buildLispPackage
+  "fare-quasiquote-extras" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."trivia_dot_quasiquote" or (x: {}))
-       (import ./quicklisp-to-nix-output/trivia_dot_quasiquote.nix {
+       (qlOverrides."fare-quasiquote-extras" or (x: {}))
+       (import ./quicklisp-to-nix-output/fare-quasiquote-extras.nix {
          inherit fetchurl;
            "alexandria" = quicklisp-to-nix-packages."alexandria";
            "closer-mop" = quicklisp-to-nix-packages."closer-mop";
            "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
+           "fare-quasiquote-optima" = quicklisp-to-nix-packages."fare-quasiquote-optima";
            "fare-quasiquote-readtable" = quicklisp-to-nix-packages."fare-quasiquote-readtable";
            "fare-utils" = quicklisp-to-nix-packages."fare-utils";
            "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
@@ -344,11 +357,52 @@ let quicklisp-to-nix-packages = rec {
            "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
            "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
            "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
+           "trivia_dot_quasiquote" = quicklisp-to-nix-packages."trivia_dot_quasiquote";
+           "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
+           "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+       }));
+
+
+  "type-i" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."type-i" or (x: {}))
+       (import ./quicklisp-to-nix-output/type-i.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "introspect-environment" = quicklisp-to-nix-packages."introspect-environment";
+           "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
+           "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
+           "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
+           "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
            "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
            "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
        }));
 
 
+  "trivial-cltl2" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."trivial-cltl2" or (x: {}))
+       (import ./quicklisp-to-nix-output/trivial-cltl2.nix {
+         inherit fetchurl;
+       }));
+
+
+  "trivia_dot_trivial" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."trivia_dot_trivial" or (x: {}))
+       (import ./quicklisp-to-nix-output/trivia_dot_trivial.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
+           "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
+           "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
+           "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
+           "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+       }));
+
+
   "trivia_dot_level2" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."trivia_dot_level2" or (x: {}))
@@ -401,6 +455,39 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "static-dispatch" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."static-dispatch" or (x: {}))
+       (import ./quicklisp-to-nix-output/static-dispatch.nix {
+         inherit fetchurl;
+           "agutil" = quicklisp-to-nix-packages."agutil";
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "arrows" = quicklisp-to-nix-packages."arrows";
+           "cl-ansi-text" = quicklisp-to-nix-packages."cl-ansi-text";
+           "cl-colors" = quicklisp-to-nix-packages."cl-colors";
+           "cl-environments" = quicklisp-to-nix-packages."cl-environments";
+           "cl-interpol" = quicklisp-to-nix-packages."cl-interpol";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "collectors" = quicklisp-to-nix-packages."collectors";
+           "introspect-environment" = quicklisp-to-nix-packages."introspect-environment";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
+           "optima" = quicklisp-to-nix-packages."optima";
+           "prove" = quicklisp-to-nix-packages."prove";
+           "prove-asdf" = quicklisp-to-nix-packages."prove-asdf";
+           "symbol-munger" = quicklisp-to-nix-packages."symbol-munger";
+           "trivia" = quicklisp-to-nix-packages."trivia";
+           "trivia_dot_balland2006" = quicklisp-to-nix-packages."trivia_dot_balland2006";
+           "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
+           "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
+           "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
+           "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
+           "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+           "type-i" = quicklisp-to-nix-packages."type-i";
+       }));
+
+
   "introspect-environment" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."introspect-environment" or (x: {}))
@@ -409,57 +496,53 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
-  "fare-quasiquote-readtable" = buildLispPackage
+  "cl-environments" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."fare-quasiquote-readtable" or (x: {}))
-       (import ./quicklisp-to-nix-output/fare-quasiquote-readtable.nix {
+       (qlOverrides."cl-environments" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-environments.nix {
          inherit fetchurl;
-           "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
-           "fare-utils" = quicklisp-to-nix-packages."fare-utils";
-           "named-readtables" = quicklisp-to-nix-packages."named-readtables";
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "cl-ansi-text" = quicklisp-to-nix-packages."cl-ansi-text";
+           "cl-colors" = quicklisp-to-nix-packages."cl-colors";
+           "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "collectors" = quicklisp-to-nix-packages."collectors";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "optima" = quicklisp-to-nix-packages."optima";
+           "prove" = quicklisp-to-nix-packages."prove";
+           "prove-asdf" = quicklisp-to-nix-packages."prove-asdf";
+           "symbol-munger" = quicklisp-to-nix-packages."symbol-munger";
        }));
 
 
-  "fare-quasiquote-optima" = buildLispPackage
+  "arrows" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."fare-quasiquote-optima" or (x: {}))
-       (import ./quicklisp-to-nix-output/fare-quasiquote-optima.nix {
+       (qlOverrides."arrows" or (x: {}))
+       (import ./quicklisp-to-nix-output/arrows.nix {
          inherit fetchurl;
-           "alexandria" = quicklisp-to-nix-packages."alexandria";
-           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
-           "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
-           "fare-quasiquote-readtable" = quicklisp-to-nix-packages."fare-quasiquote-readtable";
-           "fare-utils" = quicklisp-to-nix-packages."fare-utils";
-           "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
-           "named-readtables" = quicklisp-to-nix-packages."named-readtables";
-           "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
-           "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
-           "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
-           "trivia_dot_quasiquote" = quicklisp-to-nix-packages."trivia_dot_quasiquote";
-           "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
-           "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+           "hu_dot_dwim_dot_stefil" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil";
        }));
 
 
-  "fare-quasiquote-extras" = buildLispPackage
+  "agutil" = buildLispPackage
     ((f: x: (x // (f x)))
-       (qlOverrides."fare-quasiquote-extras" or (x: {}))
-       (import ./quicklisp-to-nix-output/fare-quasiquote-extras.nix {
+       (qlOverrides."agutil" or (x: {}))
+       (import ./quicklisp-to-nix-output/agutil.nix {
          inherit fetchurl;
            "alexandria" = quicklisp-to-nix-packages."alexandria";
            "closer-mop" = quicklisp-to-nix-packages."closer-mop";
-           "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
-           "fare-quasiquote-optima" = quicklisp-to-nix-packages."fare-quasiquote-optima";
-           "fare-quasiquote-readtable" = quicklisp-to-nix-packages."fare-quasiquote-readtable";
-           "fare-utils" = quicklisp-to-nix-packages."fare-utils";
+           "introspect-environment" = quicklisp-to-nix-packages."introspect-environment";
+           "iterate" = quicklisp-to-nix-packages."iterate";
            "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
-           "named-readtables" = quicklisp-to-nix-packages."named-readtables";
+           "trivia" = quicklisp-to-nix-packages."trivia";
+           "trivia_dot_balland2006" = quicklisp-to-nix-packages."trivia_dot_balland2006";
            "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
            "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
            "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
-           "trivia_dot_quasiquote" = quicklisp-to-nix-packages."trivia_dot_quasiquote";
            "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
            "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+           "type-i" = quicklisp-to-nix-packages."type-i";
        }));
 
 
@@ -1556,6 +1639,14 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "trivial-arguments" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."trivial-arguments" or (x: {}))
+       (import ./quicklisp-to-nix-output/trivial-arguments.nix {
+         inherit fetchurl;
+       }));
+
+
   "trivia" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."trivia" or (x: {}))
@@ -2414,6 +2505,41 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "generic-cl" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."generic-cl" or (x: {}))
+       (import ./quicklisp-to-nix-output/generic-cl.nix {
+         inherit fetchurl;
+           "agutil" = quicklisp-to-nix-packages."agutil";
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "arrows" = quicklisp-to-nix-packages."arrows";
+           "cl-ansi-text" = quicklisp-to-nix-packages."cl-ansi-text";
+           "cl-colors" = quicklisp-to-nix-packages."cl-colors";
+           "cl-custom-hash-table" = quicklisp-to-nix-packages."cl-custom-hash-table";
+           "cl-environments" = quicklisp-to-nix-packages."cl-environments";
+           "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "collectors" = quicklisp-to-nix-packages."collectors";
+           "introspect-environment" = quicklisp-to-nix-packages."introspect-environment";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
+           "optima" = quicklisp-to-nix-packages."optima";
+           "prove" = quicklisp-to-nix-packages."prove";
+           "prove-asdf" = quicklisp-to-nix-packages."prove-asdf";
+           "static-dispatch" = quicklisp-to-nix-packages."static-dispatch";
+           "symbol-munger" = quicklisp-to-nix-packages."symbol-munger";
+           "trivia" = quicklisp-to-nix-packages."trivia";
+           "trivia_dot_balland2006" = quicklisp-to-nix-packages."trivia_dot_balland2006";
+           "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
+           "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
+           "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
+           "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
+           "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+           "type-i" = quicklisp-to-nix-packages."type-i";
+       }));
+
+
   "fset" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."fset" or (x: {}))
@@ -3520,6 +3646,20 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-gobject-introspection" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-gobject-introspection" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-gobject-introspection.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "cffi" = quicklisp-to-nix-packages."cffi";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+           "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
+       }));
+
+
   "cl-fuse-meta-fs" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-fuse-meta-fs" or (x: {}))
@@ -3879,7 +4019,9 @@ let quicklisp-to-nix-packages = rec {
            "lack-component" = quicklisp-to-nix-packages."lack-component";
            "lack-middleware-backtrace" = quicklisp-to-nix-packages."lack-middleware-backtrace";
            "lack-util" = quicklisp-to-nix-packages."lack-util";
+           "split-sequence" = quicklisp-to-nix-packages."split-sequence";
            "uiop" = quicklisp-to-nix-packages."uiop";
+           "usocket" = quicklisp-to-nix-packages."usocket";
        }));
 
 
diff --git a/nixpkgs/pkgs/development/lisp-modules/shell.nix b/nixpkgs/pkgs/development/lisp-modules/shell.nix
index a8ed246e6f8f..bd6eea65f6f3 100644
--- a/nixpkgs/pkgs/development/lisp-modules/shell.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/shell.nix
@@ -11,6 +11,6 @@ self = rec {
     lispPackages.quicklisp-to-nix lispPackages.quicklisp-to-nix-system-info
   ];
   CPATH = "${libfixposix}/include";
-  LD_LIBRARY_PATH = "${openssl.out}/lib:${fuse}/lib:${libuv}/lib:${libev}/lib:${libmysqlclient}/lib:${libmysqlclient}/lib/mysql:${postgresql.lib}/lib:${sqlite.out}/lib:${libfixposix}/lib:${freetds}/lib:${openssl_lib_marked}/lib:${glib.out}/lib:${gdk-pixbuf}/lib:${cairo}/lib:${pango.out}/lib:${gtk3}/lib:${webkitgtk}/lib";
+  LD_LIBRARY_PATH = "${openssl.out}/lib:${fuse}/lib:${libuv}/lib:${libev}/lib:${libmysqlclient}/lib:${libmysqlclient}/lib/mysql:${postgresql.lib}/lib:${sqlite.out}/lib:${libfixposix}/lib:${freetds}/lib:${openssl_lib_marked}/lib:${glib.out}/lib:${gdk-pixbuf}/lib:${cairo}/lib:${pango.out}/lib:${gtk3}/lib:${webkitgtk}/lib:${gobject-introspection}/lib";
 };
 in stdenv.mkDerivation self
diff --git a/nixpkgs/pkgs/development/lua-modules/overrides.nix b/nixpkgs/pkgs/development/lua-modules/overrides.nix
index eec969f99caf..288f4fc078ba 100644
--- a/nixpkgs/pkgs/development/lua-modules/overrides.nix
+++ b/nixpkgs/pkgs/development/lua-modules/overrides.nix
@@ -173,7 +173,7 @@ with super;
       MYSQL_LIBDIR="${pkgs.libmysqlclient}/lib/mysql";
     };
     buildInputs = [
-      pkgs.mysql.client
+      pkgs.mariadb.client
       pkgs.libmysqlclient
     ];
   });
diff --git a/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix b/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
index 7f49430c15c3..17bedd5e7d32 100644
--- a/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
+++ b/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
@@ -6,9 +6,8 @@ mkDerivation {
   version = "0.16.1.0";
   src = fetchgit {
     url = "https://github.com/hercules-ci/optparse-applicative.git";
-    sha256 = "0v0r11jaav95im82if976256kncp0ji7nfdrlpbgmwxnkj1hxl48";
-    rev = "f9d1242f9889d2e09ff852db9dc2d231d9a3e8d8";
-    fetchSubmodules = true;
+    sha256 = "05vchaw2rf46hh2128qjpky686iy5hff964mbdhcyiz612jjflyp";
+    rev = "9e2968c09a7c5b29d04578dc68d81ce5aec0591e";
   };
   libraryHaskellDepends = [
     ansi-wl-pprint base process transformers transformers-compat
diff --git a/nixpkgs/pkgs/development/misc/loc/default.nix b/nixpkgs/pkgs/development/misc/loc/default.nix
index fb518279d00b..ce262d946a80 100644
--- a/nixpkgs/pkgs/development/misc/loc/default.nix
+++ b/nixpkgs/pkgs/development/misc/loc/default.nix
@@ -13,7 +13,7 @@ buildRustPackage rec {
     sha256 = "0086asrx48qlmc484pjz5r5znli85q6qgpfbd81gjlzylj7f57gg";
   };
 
-  cargoSha256 = "1fgv1kxiif48q9mm60ygn88r5nkxfyiacmvbgwp0jxiacv8r7779";
+  cargoSha256 = "1qfqhqimp56g34bir30zgl273yssrbmwf1h8h8yvdpzkybpd92gx";
 
   meta = with lib; {
     homepage = "https://github.com/cgag/loc";
diff --git a/nixpkgs/pkgs/development/misc/msp430/mspds/binary.nix b/nixpkgs/pkgs/development/misc/msp430/mspds/binary.nix
new file mode 100644
index 000000000000..690ed3e45e71
--- /dev/null
+++ b/nixpkgs/pkgs/development/misc/msp430/mspds/binary.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl, unzip, autoPatchelfHook }:
+
+with lib;
+
+let
+  archPostfix = optionalString (stdenv.is64bit && !stdenv.isDarwin) "_64";
+in stdenv.mkDerivation rec {
+  pname = "msp-debug-stack-bin";
+  version = "3.15.1.1";
+  src = fetchurl {
+    url = "http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPDS/3_15_1_001/export/MSP430_DLL_Developer_Package_Rev_3_15_1_1.zip";
+    sha256 = "1m1ssrwbhqvqwbp3m4hnjyxnz3f9d4acz9vl1av3fbnhvxr0d2hb";
+  };
+  sourceRoot = ".";
+
+  libname =
+    if stdenv.hostPlatform.isWindows then "MSP430${archPostfix}.dll"
+    else "libmsp430${archPostfix}${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+  nativeBuildInputs = [ unzip autoPatchelfHook ];
+  buildInputs = [ stdenv.cc.cc ];
+
+  installPhase = ''
+    install -Dm0755 $libname $out/lib/''${libname//_64/}
+    install -Dm0644 -t $out/include Inc/*.h
+  '';
+
+  meta = {
+    description = "Unfree binary release of the TI MSP430 FET debug driver";
+    homepage = https://www.ti.com/tool/MSPDS;
+    license = licenses.unfree;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ aerialx ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/misc/msp430/mspds/bsl430.patch b/nixpkgs/pkgs/development/misc/msp430/mspds/bsl430.patch
new file mode 100644
index 000000000000..6c57fb040e26
--- /dev/null
+++ b/nixpkgs/pkgs/development/misc/msp430/mspds/bsl430.patch
@@ -0,0 +1,51 @@
+diff -ruN a/Makefile b/Makefile
+--- a/Makefile	2020-06-03 16:10:18.000000000 -0700
++++ b/Makefile	2020-07-21 18:03:12.464121056 -0700
+@@ -42,7 +42,7 @@
+ 
+ PLATFORM := $(shell uname -s)
+ ifeq ($(PLATFORM),Linux)
+-	CXX:= g++
++	CXX?= g++
+ 	
+ 	STATICOUTPUT := linux64
+ 
+@@ -68,7 +68,7 @@
+ 
+ 	HIDOBJ := $(LIBTHIRD)/hid-libusb.o
+ else
+-	CXX:= clang++
++	CXX?= clang++
+ 
+ 	OUTPUT := libmsp430.dylib
+ 	STATICOUTPUT := mac64
+@@ -134,7 +134,7 @@
+ 	$(CXX) -c -o $@ $< $(USE_PCH) $(CXXFLAGS) $(INCLUDES) $(DEFINES)
+ 
+ $(BSLLIB):
+-	$(MAKE) -C ./ThirdParty/BSL430_DLL
++	$(MAKE) -C ./ThirdParty/BSL430_DLL OUTPUT=../../$(BSLLIB)
+ 
+ install:
+ 	cp $(OUTPUT) /usr/local/lib/
+diff -ruN a/ThirdParty/BSL430_DLL/Makefile b/ThirdParty/BSL430_DLL/Makefile
+--- a/ThirdParty/BSL430_DLL/Makefile	2019-11-18 13:16:00.000000000 -0800
++++ b/ThirdParty/BSL430_DLL/Makefile	2020-07-21 18:02:55.987782494 -0700
+@@ -36,7 +36,7 @@
+ 
+ PLATFORM := $(shell uname -s)
+ ifeq ($(PLATFORM),Linux)
+-	CXX:= g++
++	CXX?= g++
+ 
+ 	ifdef BIT32
+ 	CXXFLAGS += -m32
+@@ -47,7 +47,7 @@
+ 	INCLUDES += -I$(BOOST_DIR)
+ 	endif
+ else
+-	CXX:= clang++
++	CXX?= clang++
+ 
+ 	ifdef BOOST_DIR
+ 	INCLUDES += -I$(BOOST_DIR)/include
diff --git a/nixpkgs/pkgs/development/misc/msp430/mspds/default.nix b/nixpkgs/pkgs/development/misc/msp430/mspds/default.nix
new file mode 100644
index 000000000000..2481b50bfbef
--- /dev/null
+++ b/nixpkgs/pkgs/development/misc/msp430/mspds/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, lib
+, fetchurl, unzip
+, boost, pugixml
+, hidapi
+, libusb1 ? null
+}:
+
+with lib;
+assert stdenv.isLinux -> libusb1 != null;
+
+let
+  hidapiDriver = optionalString stdenv.isLinux "-libusb";
+
+in stdenv.mkDerivation {
+  pname = "msp-debug-stack";
+  version = "3.15.1.1";
+
+  src = fetchurl {
+    url = "http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPDS/3_15_1_001/export/MSPDebugStack_OS_Package_3_15_1_1.zip";
+    sha256 = "1j5sljqwc20zrb50mrji4mnmw5i680qc7n0lb0pakrrxqjc9m9g3";
+  };
+  sourceRoot = ".";
+
+  enableParallelBuilding = true;
+  libName = "libmsp430${stdenv.hostPlatform.extensions.sharedLibrary}";
+  makeFlags = [ "OUTPUT=$(libName)" "HIDOBJ=" ];
+  NIX_LDFLAGS = [ "-lpugixml" "-lhidapi${hidapiDriver}" ];
+  NIX_CFLAGS_COMPILE = [ "-I${hidapi}/include/hidapi" ];
+
+  patches = [ ./bsl430.patch ];
+
+  preBuild = ''
+    rm ThirdParty/src/pugixml.cpp
+    rm ThirdParty/include/pugi{config,xml}.hpp
+  '' + optionalString stdenv.isDarwin ''
+    makeFlagsArray+=(OUTNAME="-install_name ")
+  '';
+
+  installPhase = ''
+    install -Dm0755 -t $out/lib $libName
+    install -Dm0644 -t $out/include DLL430_v3/include/*.h
+  '';
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ boost hidapi pugixml ]
+    ++ optional stdenv.isLinux libusb1;
+
+  meta = {
+    description = "TI MSP430 FET debug driver";
+    homepage = https://www.ti.com/tool/MSPDS;
+    license = licenses.bsd3;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ aerialx ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/misc/umr/default.nix b/nixpkgs/pkgs/development/misc/umr/default.nix
index 158cef2eed1e..3dba51022d3c 100644
--- a/nixpkgs/pkgs/development/misc/umr/default.nix
+++ b/nixpkgs/pkgs/development/misc/umr/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "IwTkHEuJ82hngPjFVIihU2rSolLBqHxQTNsP8puYPaY=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config llvmPackages.llvm.dev ];
 
   buildInputs = [
     bash-completion
diff --git a/nixpkgs/pkgs/development/misc/yelp-tools/default.nix b/nixpkgs/pkgs/development/misc/yelp-tools/default.nix
index bf348d68041a..fc3be7421adb 100644
--- a/nixpkgs/pkgs/development/misc/yelp-tools/default.nix
+++ b/nixpkgs/pkgs/development/misc/yelp-tools/default.nix
@@ -4,34 +4,50 @@
 , libxml2
 , libxslt
 , itstool
-, gnome3
+, gnome
 , pkg-config
+, meson
+, ninja
+, python3
 }:
 
-stdenv.mkDerivation rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "yelp-tools";
-  version = "3.38.0";
+  version = "40.0";
+
+  format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/yelp-tools/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1c045c794sm83rrjan67jmsk20qacrw1m814p4nw85w5xsry8z30";
+    url = "mirror://gnome/sources/yelp-tools/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "1bkanqp3qwmirv06mi99qv2acr5ba5rlhy9zlh0fyrfxygraqjv6";
   };
 
   nativeBuildInputs = [
     pkg-config
+    meson
+    ninja
+  ];
+
+  propagatedBuildInputs = [
+    libxml2 # xmllint required by yelp-check.
+    libxslt # xsltproc required by yelp-build and yelp-check.
   ];
 
   buildInputs = [
-    libxml2
-    libxslt
-    itstool
-    gnome3.yelp-xsl
+    itstool # build script checks for its presence but I am not sure if anything uses it
+    gnome.yelp-xsl
   ];
 
+  pythonPath = [
+    python3.pkgs.lxml
+  ];
+
+  strictDeps = false; # TODO: Meson cannot find xmllint oherwise. Maybe add it to machine file?
+
   doCheck = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix b/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix
index c8fce166aa7d..2746a60247bf 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/emulator.nix
@@ -26,7 +26,7 @@ deployAndroidPackage {
     pkgs.freetype
     pkgs.nss
     pkgs.nspr
-    pkgs.alsaLib
+    pkgs.alsa-lib
   ];
   patchInstructions = lib.optionalString (os == "linux") ''
     addAutoPatchelfSearchPath $packageBaseDir/lib
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/examples/shell.nix b/nixpkgs/pkgs/development/mobile/androidenv/examples/shell.nix
index 95f6a3bdbbac..45cccf22c7df 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/examples/shell.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/examples/shell.nix
@@ -115,7 +115,7 @@ let
 in
 pkgs.mkShell rec {
   name = "androidenv-demo";
-  buildInputs = [ androidSdk platformTools jdk pkgs.android-studio ];
+  packages = [ androidSdk platformTools jdk pkgs.android-studio ];
 
   LANG = "C.UTF-8";
   LC_ALL = "C.UTF-8";
diff --git a/nixpkgs/pkgs/development/node-packages/default.nix b/nixpkgs/pkgs/development/node-packages/default.nix
index 7ed334ed0722..42f799274d8c 100644
--- a/nixpkgs/pkgs/development/node-packages/default.nix
+++ b/nixpkgs/pkgs/development/node-packages/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, nodejs, stdenv }:
+{ pkgs, nodejs, stdenv, fetchFromGitHub }:
 
 let
   since = (version: pkgs.lib.versionAtLeast nodejs.version version);
@@ -69,8 +69,9 @@ let
       };
     });
 
-    bitwarden-cli = pkgs.lib.overrideDerivation super."@bitwarden/cli" (drv: {
+    bitwarden-cli = super."@bitwarden/cli".override (drv: {
       name = "bitwarden-cli-${drv.version}";
+      meta.mainProgram = "bw";
     });
 
     fast-cli = super."fast-cli-1.x".override {
@@ -83,6 +84,7 @@ let
 
     flood = super.flood.override {
       buildInputs = [ self.node-pre-gyp ];
+      meta.mainProgram = "flood";
     };
 
     expo-cli = super."expo-cli".override (attrs: {
@@ -126,6 +128,10 @@ let
       '';
     };
 
+    markdownlint-cli = super.markdownlint-cli.override {
+      meta.mainProgram = "markdownlint";
+    };
+
     mirakurun = super.mirakurun.override rec {
       nativeBuildInputs = with pkgs; [ makeWrapper ];
       postInstall = let
@@ -217,6 +223,26 @@ let
       '';
     };
 
+    netlify-cli =
+      let
+        esbuild = pkgs.esbuild.overrideAttrs (old: rec {
+          version = "0.11.14";
+
+          src = fetchFromGitHub {
+            owner = "evanw";
+            repo = "esbuild";
+            rev = "v${version}";
+            sha256 = "sha256-N7WNam0zF1t++nLVhuxXSDGV/JaFtlFhufp+etinvmM=";
+          };
+
+        });
+      in
+      super.netlify-cli.override {
+        preRebuild = ''
+          export ESBUILD_BINARY_PATH="${esbuild}/bin/esbuild"
+        '';
+      };
+
     ssb-server = super.ssb-server.override {
       buildInputs = [ pkgs.automake pkgs.autoconf self.node-gyp-build ];
       meta.broken = since "10";
@@ -314,5 +340,16 @@ let
         --prefix NODE_PATH : ${self.prettier}/lib/node_modules
       '';
     };
+
+    wavedrom-cli = super.wavedrom-cli.override {
+      nativeBuildInputs = [ pkgs.pkg-config self.node-pre-gyp ];
+      # These dependencies are required by
+      # https://github.com/Automattic/node-canvas.
+      buildInputs = with pkgs; [
+        pixman
+        cairo
+        pango
+      ];
+    };
   };
 in self
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.json b/nixpkgs/pkgs/development/node-packages/node-packages.json
index d8b98ea14428..27d13e4adeb3 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.json
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.json
@@ -152,6 +152,7 @@
 , "livedown"
 , {"lumo-build-deps": "../interpreters/clojurescript/lumo" }
 , "madoko"
+, "markdownlint-cli"
 , "markdown-link-check"
 , "mastodon-bot"
 , "mathjax"
@@ -252,6 +253,7 @@
 , "vega-cli"
 , "vega-lite"
 , "vim-language-server"
+, "vls"
 , "vscode-css-languageserver-bin"
 , "vscode-html-languageserver-bin"
 , "vscode-json-languageserver"
@@ -259,6 +261,7 @@
 , { "vscode-lldb-build-deps": "../../misc/vscode-extensions/vscode-lldb/build-deps" }
 , "vue-cli"
 , "vue-language-server"
+, "wavedrom-cli"
 , "web-ext"
 , "webpack"
 , "webpack-cli"
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.nix b/nixpkgs/pkgs/development/node-packages/node-packages.nix
index 366e04440f98..d5381c9c288d 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.nix
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.nix
@@ -49,13 +49,13 @@ let
         sha512 = "o/xdK8b4P0t/xpCARgWXAeaiWeh9jeua6bP1jrcbfN39+Z4zC4x2jg4NysHNhz6spRG8dJFH3kJIUoIbs0Ckww==";
       };
     };
-    "@angular-devkit/architect-0.1102.9" = {
+    "@angular-devkit/architect-0.1200.2" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1102.9";
+      version = "0.1200.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.9.tgz";
-        sha512 = "AU7i0VqWUwBc04oyT98Pp6sMDMp67JTZd/Cfrz5AM4MqrCZsDJMsTlWH26fAbESSLHgNst7H91Eq0cnC8rCmOQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1200.2.tgz";
+        sha512 = "Vy/dE1iwEiV63cxcU+SC+Lf5SUnY64vg9J3YA3jxFlJnELbxxN+T7xDfjMEMPoLzTY02K9XNb8ZGLStZxVmZLg==";
       };
     };
     "@angular-devkit/core-11.2.4" = {
@@ -76,13 +76,13 @@ let
         sha512 = "3dA0Z6sIIxCDjZS/DucgmIKti7EZ/LgHoHgCO72Q50H5ZXbUSNBz5wGl5hVq2+gzrnFgU/0u40MIs6eptk30ZA==";
       };
     };
-    "@angular-devkit/core-11.2.9" = {
+    "@angular-devkit/core-12.0.2" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "11.2.9";
+      version = "12.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.9.tgz";
-        sha512 = "TqihgUEKjX4C1hSd8RgUyCwuezFRdput9Ctcq8c4VgOcseEnXq3BkCSJbXtUh4Fln8WPxM7WHM8HClcWya/41g==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-12.0.2.tgz";
+        sha512 = "n7BmZAW0nx4pEigdAsibvtIm4Vjk1IwY3Bbc8fqD+AQpdYCo+Ake1Eu6fL2XoW8Yco7U4JYYdn/uodWEgBdroQ==";
       };
     };
     "@angular-devkit/schematics-11.2.4" = {
@@ -103,13 +103,13 @@ let
         sha512 = "bhi2+5xtVAjtr3bsXKT8pnoBamQrArd/Y20ueA4Od7cd38YT97nzTA1wyHBFG0vWd0HMyg42ZS0aycNBuOebaA==";
       };
     };
-    "@angular-devkit/schematics-11.2.9" = {
+    "@angular-devkit/schematics-12.0.2" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "11.2.9";
+      version = "12.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.9.tgz";
-        sha512 = "NqcBMK9ZbfXykj+2/cSlZcLVmbep/N+yYb+dUSfvRup3rW3uYSpMMJAnys3ro0m7TnUrI7h7t0UTgX8oxjlCow==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.0.2.tgz";
+        sha512 = "PS+SrRhAc/lyRfuBsi6Rt2yV7IA34B7T6J0K8/Av0GABZ83x+0vLiZC39eSPS1X8qcM/U09pCfDT8Q6ZQPCICA==";
       };
     };
     "@angular-devkit/schematics-cli-0.1102.6" = {
@@ -238,22 +238,22 @@ let
         sha512 = "QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==";
       };
     };
-    "@apollo/protobufjs-1.0.5" = {
+    "@apollo/protobufjs-1.2.2" = {
       name = "_at_apollo_slash_protobufjs";
       packageName = "@apollo/protobufjs";
-      version = "1.0.5";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.5.tgz";
-        sha512 = "ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA==";
+        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.2.tgz";
+        sha512 = "vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ==";
       };
     };
-    "@apollographql/apollo-tools-0.4.9" = {
+    "@apollographql/apollo-tools-0.5.1" = {
       name = "_at_apollographql_slash_apollo-tools";
       packageName = "@apollographql/apollo-tools";
-      version = "0.4.9";
+      version = "0.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.9.tgz";
-        sha512 = "M50pk8oo3CGTu4waGOklIX3YtTZoPfWG9K/G9WB8NpyQGA1OwYTiBFv94XqUtKElTDoFwoMXpMQd3Wy5dINvxA==";
+        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz";
+        sha512 = "ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA==";
       };
     };
     "@apollographql/graphql-playground-html-1.6.27" = {
@@ -310,13 +310,13 @@ let
         sha1 = "e70187f8a862e191b1bce6c0268f13acd3a56b20";
       };
     };
-    "@babel/cli-7.13.14" = {
+    "@babel/cli-7.14.3" = {
       name = "_at_babel_slash_cli";
       packageName = "@babel/cli";
-      version = "7.13.14";
+      version = "7.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.13.14.tgz";
-        sha512 = "zmEFV8WBRsW+mPQumO1/4b34QNALBVReaiHJOkxhUsdo/AvYM62c+SKSuLi2aZ42t3ocK6OI0uwUXRvrIbREZw==";
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.14.3.tgz";
+        sha512 = "zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A==";
       };
     };
     "@babel/code-frame-7.10.4" = {
@@ -346,13 +346,13 @@ let
         sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==";
       };
     };
-    "@babel/compat-data-7.13.15" = {
+    "@babel/compat-data-7.14.4" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.13.15";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz";
-        sha512 = "ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz";
+        sha512 = "i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==";
       };
     };
     "@babel/core-7.10.5" = {
@@ -364,13 +364,13 @@ let
         sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
       };
     };
-    "@babel/core-7.13.15" = {
+    "@babel/core-7.14.3" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.13.15";
+      version = "7.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz";
-        sha512 = "6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz";
+        sha512 = "jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -382,13 +382,13 @@ let
         sha512 = "kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==";
       };
     };
-    "@babel/generator-7.13.9" = {
+    "@babel/generator-7.14.3" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.13.9";
+      version = "7.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz";
-        sha512 = "mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz";
+        sha512 = "bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==";
       };
     };
     "@babel/helper-annotate-as-pure-7.12.13" = {
@@ -409,40 +409,40 @@ let
         sha512 = "CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==";
       };
     };
-    "@babel/helper-compilation-targets-7.13.13" = {
+    "@babel/helper-compilation-targets-7.14.4" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.13.13";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz";
-        sha512 = "q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz";
+        sha512 = "JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.13.11" = {
+    "@babel/helper-create-class-features-plugin-7.14.4" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.13.11";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz";
-        sha512 = "ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz";
+        sha512 = "idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.12.17" = {
+    "@babel/helper-create-regexp-features-plugin-7.14.3" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.12.17";
+      version = "7.14.3";
       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.3.tgz";
+        sha512 = "JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA==";
       };
     };
-    "@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" = {
@@ -454,13 +454,13 @@ let
         sha512 = "qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==";
       };
     };
-    "@babel/helper-function-name-7.12.13" = {
+    "@babel/helper-function-name-7.14.2" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.12.13";
+      version = "7.14.2";
       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.14.2.tgz";
+        sha512 = "NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==";
       };
     };
     "@babel/helper-get-function-arity-7.12.13" = {
@@ -472,13 +472,13 @@ let
         sha512 = "DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==";
       };
     };
-    "@babel/helper-hoist-variables-7.13.0" = {
+    "@babel/helper-hoist-variables-7.13.16" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.13.0";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz";
-        sha512 = "0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz";
+        sha512 = "1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==";
       };
     };
     "@babel/helper-member-expression-to-functions-7.13.12" = {
@@ -499,13 +499,13 @@ let
         sha512 = "4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==";
       };
     };
-    "@babel/helper-module-transforms-7.13.14" = {
+    "@babel/helper-module-transforms-7.14.2" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.13.14";
+      version = "7.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz";
-        sha512 = "QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz";
+        sha512 = "OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==";
       };
     };
     "@babel/helper-optimise-call-expression-7.12.13" = {
@@ -544,13 +544,13 @@ let
         sha512 = "pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==";
       };
     };
-    "@babel/helper-replace-supers-7.13.12" = {
+    "@babel/helper-replace-supers-7.14.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.13.12";
+      version = "7.14.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.14.4.tgz";
+        sha512 = "zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==";
       };
     };
     "@babel/helper-simple-access-7.13.12" = {
@@ -580,13 +580,13 @@ let
         sha512 = "tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==";
       };
     };
-    "@babel/helper-validator-identifier-7.12.11" = {
+    "@babel/helper-validator-identifier-7.14.0" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.12.11";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
-        sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha512 = "V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==";
       };
     };
     "@babel/helper-validator-option-7.12.17" = {
@@ -607,31 +607,31 @@ let
         sha512 = "1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==";
       };
     };
-    "@babel/helpers-7.13.10" = {
+    "@babel/helpers-7.14.0" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.13.10";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz";
-        sha512 = "4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz";
+        sha512 = "+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==";
       };
     };
-    "@babel/highlight-7.13.10" = {
+    "@babel/highlight-7.14.0" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.13.10";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz";
-        sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha512 = "YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==";
       };
     };
-    "@babel/parser-7.13.15" = {
+    "@babel/parser-7.14.4" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.13.15";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz";
-        sha512 = "b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz";
+        sha512 = "ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==";
       };
     };
     "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12" = {
@@ -652,13 +652,13 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.13.15" = {
+    "@babel/plugin-proposal-async-generator-functions-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.13.15";
+      version = "7.14.2";
       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.14.2.tgz";
+        sha512 = "b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==";
       };
     };
     "@babel/plugin-proposal-class-properties-7.12.13" = {
@@ -679,13 +679,22 @@ let
         sha512 = "KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.13.8" = {
+    "@babel/plugin-proposal-class-static-block-7.14.3" = {
+      name = "_at_babel_slash_plugin-proposal-class-static-block";
+      packageName = "@babel/plugin-proposal-class-static-block";
+      version = "7.14.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz";
+        sha512 = "HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.13.8";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==";
       };
     };
     "@babel/plugin-proposal-export-default-from-7.12.13" = {
@@ -697,49 +706,49 @@ let
         sha512 = "idIsBT+DGXdOHL82U+8bwX4goHm/z10g8sGGrQroh+HCRcm7mDv/luaGdWJQMTuCX2FsdXS7X0Nyyzp4znAPJA==";
       };
     };
-    "@babel/plugin-proposal-export-namespace-from-7.12.13" = {
+    "@babel/plugin-proposal-export-namespace-from-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-export-namespace-from";
       packageName = "@babel/plugin-proposal-export-namespace-from";
-      version = "7.12.13";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.13.8" = {
+    "@babel/plugin-proposal-json-strings-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.13.8";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.13.8" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.13.8";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.13.8" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.13.8";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.12.13" = {
+    "@babel/plugin-proposal-numeric-separator-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.12.13";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==";
       };
     };
     "@babel/plugin-proposal-object-rest-spread-7.10.4" = {
@@ -751,31 +760,31 @@ let
         sha512 = "6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.13.8" = {
+    "@babel/plugin-proposal-object-rest-spread-7.14.4" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.13.8";
+      version = "7.14.4";
       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.4.tgz";
+        sha512 = "AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.13.8" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.13.8";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.13.12" = {
+    "@babel/plugin-proposal-optional-chaining-7.14.2" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.13.12";
+      version = "7.14.2";
       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.2.tgz";
+        sha512 = "qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==";
       };
     };
     "@babel/plugin-proposal-private-methods-7.13.0" = {
@@ -787,6 +796,15 @@ let
         sha512 = "MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==";
       };
     };
+    "@babel/plugin-proposal-private-property-in-object-7.14.0" = {
+      name = "_at_babel_slash_plugin-proposal-private-property-in-object";
+      packageName = "@babel/plugin-proposal-private-property-in-object";
+      version = "7.14.0";
+      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==";
+      };
+    };
     "@babel/plugin-proposal-unicode-property-regex-7.12.13" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
@@ -823,6 +841,15 @@ let
         sha512 = "fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==";
       };
     };
+    "@babel/plugin-syntax-class-static-block-7.12.13" = {
+      name = "_at_babel_slash_plugin-syntax-class-static-block";
+      packageName = "@babel/plugin-syntax-class-static-block";
+      version = "7.12.13";
+      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==";
+      };
+    };
     "@babel/plugin-syntax-dynamic-import-7.8.3" = {
       name = "_at_babel_slash_plugin-syntax-dynamic-import";
       packageName = "@babel/plugin-syntax-dynamic-import";
@@ -949,6 +976,15 @@ let
         sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
       };
     };
+    "@babel/plugin-syntax-private-property-in-object-7.14.0" = {
+      name = "_at_babel_slash_plugin-syntax-private-property-in-object";
+      packageName = "@babel/plugin-syntax-private-property-in-object";
+      version = "7.14.0";
+      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==";
+      };
+    };
     "@babel/plugin-syntax-top-level-await-7.12.13" = {
       name = "_at_babel_slash_plugin-syntax-top-level-await";
       packageName = "@babel/plugin-syntax-top-level-await";
@@ -994,22 +1030,22 @@ let
         sha512 = "zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.12.13" = {
+    "@babel/plugin-transform-block-scoping-7.14.4" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.12.13";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz";
-        sha512 = "Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz";
+        sha512 = "5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==";
       };
     };
-    "@babel/plugin-transform-classes-7.13.0" = {
+    "@babel/plugin-transform-classes-7.14.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.13.0";
+      version = "7.14.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.14.4.tgz";
+        sha512 = "p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==";
       };
     };
     "@babel/plugin-transform-computed-properties-7.13.0" = {
@@ -1021,13 +1057,13 @@ let
         sha512 = "RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.13.0" = {
+    "@babel/plugin-transform-destructuring-7.14.4" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.13.0";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz";
-        sha512 = "zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz";
+        sha512 = "JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==";
       };
     };
     "@babel/plugin-transform-dotall-regex-7.12.13" = {
@@ -1102,22 +1138,22 @@ let
         sha512 = "kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.13.0" = {
+    "@babel/plugin-transform-modules-amd-7.14.2" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.13.0";
+      version = "7.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz";
-        sha512 = "EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz";
+        sha512 = "hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.13.8" = {
+    "@babel/plugin-transform-modules-commonjs-7.14.0" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.13.8";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz";
-        sha512 = "9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz";
+        sha512 = "EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==";
       };
     };
     "@babel/plugin-transform-modules-systemjs-7.13.8" = {
@@ -1129,13 +1165,13 @@ let
         sha512 = "hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.13.0" = {
+    "@babel/plugin-transform-modules-umd-7.14.0" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.13.0";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz";
-        sha512 = "D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz";
+        sha512 = "nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==";
       };
     };
     "@babel/plugin-transform-named-capturing-groups-regex-7.12.13" = {
@@ -1174,13 +1210,13 @@ let
         sha512 = "JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.13.0" = {
+    "@babel/plugin-transform-parameters-7.14.2" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.13.0";
+      version = "7.14.2";
       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.14.2.tgz";
+        sha512 = "NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==";
       };
     };
     "@babel/plugin-transform-property-literals-7.12.13" = {
@@ -1192,22 +1228,22 @@ let
         sha512 = "nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==";
       };
     };
-    "@babel/plugin-transform-react-display-name-7.12.13" = {
+    "@babel/plugin-transform-react-display-name-7.14.2" = {
       name = "_at_babel_slash_plugin-transform-react-display-name";
       packageName = "@babel/plugin-transform-react-display-name";
-      version = "7.12.13";
+      version = "7.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz";
-        sha512 = "MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz";
+        sha512 = "zCubvP+jjahpnFJvPaHPiGVfuVUjXHhFvJKQdNnsmSsiU9kR/rCZ41jHc++tERD2zV+p7Hr6is+t5b6iWTCqSw==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.13.12" = {
+    "@babel/plugin-transform-react-jsx-7.14.3" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.13.12";
+      version = "7.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz";
-        sha512 = "jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz";
+        sha512 = "uuxuoUNVhdgYzERiHHFkE4dWoJx+UFVyuAl0aqN8P2/AKFHwqgUC5w2+4/PjpKXJsFgBlYAFXlUmDQ3k3DUkXw==";
       };
     };
     "@babel/plugin-transform-react-jsx-development-7.12.17" = {
@@ -1228,13 +1264,13 @@ let
         sha512 = "FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==";
       };
     };
-    "@babel/plugin-transform-react-jsx-source-7.12.13" = {
+    "@babel/plugin-transform-react-jsx-source-7.14.2" = {
       name = "_at_babel_slash_plugin-transform-react-jsx-source";
       packageName = "@babel/plugin-transform-react-jsx-source";
-      version = "7.12.13";
+      version = "7.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz";
-        sha512 = "O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.2.tgz";
+        sha512 = "OMorspVyjxghAjzgeAWc6O7W7vHbJhV69NeTGdl9Mxgz6PaweAuo7ffB9T5A1OQ9dGcw0As4SYMUhyNC4u7mVg==";
       };
     };
     "@babel/plugin-transform-react-pure-annotations-7.12.1" = {
@@ -1264,13 +1300,13 @@ let
         sha512 = "xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==";
       };
     };
-    "@babel/plugin-transform-runtime-7.13.15" = {
+    "@babel/plugin-transform-runtime-7.14.3" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.13.15";
+      version = "7.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz";
-        sha512 = "d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz";
+        sha512 = "t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg==";
       };
     };
     "@babel/plugin-transform-shorthand-properties-7.12.13" = {
@@ -1318,13 +1354,13 @@ let
         sha512 = "eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==";
       };
     };
-    "@babel/plugin-transform-typescript-7.13.0" = {
+    "@babel/plugin-transform-typescript-7.14.4" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.13.0";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz";
-        sha512 = "elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.4.tgz";
+        sha512 = "WYdcGNEO7mCCZ2XzRlxwGj3PgeAr50ifkofOUC/+IN/GzKLB+biDPVBUAQN2C/dVZTvEXCp80kfQ1FFZPrwykQ==";
       };
     };
     "@babel/plugin-transform-unicode-escapes-7.12.13" = {
@@ -1354,13 +1390,13 @@ let
         sha512 = "9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg==";
       };
     };
-    "@babel/preset-env-7.13.15" = {
+    "@babel/preset-env-7.14.4" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.13.15";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz";
-        sha512 = "D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz";
+        sha512 = "GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==";
       };
     };
     "@babel/preset-flow-7.13.13" = {
@@ -1426,31 +1462,31 @@ let
         sha512 = "LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw==";
       };
     };
-    "@babel/register-7.13.14" = {
+    "@babel/register-7.13.16" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.13.14";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.13.14.tgz";
-        sha512 = "iyw0hUwjh/fzN8qklVqZodbyWjEBOG0KdDnBOpv3zzIgK3NmuRXBmIXH39ZBdspkn8LTHvSboN+oYb4MT43+9Q==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.13.16.tgz";
+        sha512 = "dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg==";
       };
     };
-    "@babel/runtime-7.13.10" = {
+    "@babel/runtime-7.13.9" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.13.10";
+      version = "7.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz";
-        sha512 = "4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz";
+        sha512 = "aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==";
       };
     };
-    "@babel/runtime-7.13.9" = {
+    "@babel/runtime-7.14.0" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.13.9";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz";
-        sha512 = "aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz";
+        sha512 = "JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -1462,22 +1498,22 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
-    "@babel/runtime-corejs3-7.13.10" = {
+    "@babel/runtime-corejs3-7.14.0" = {
       name = "_at_babel_slash_runtime-corejs3";
       packageName = "@babel/runtime-corejs3";
-      version = "7.13.10";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz";
-        sha512 = "x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==";
+        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz";
+        sha512 = "0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==";
       };
     };
-    "@babel/standalone-7.13.15" = {
+    "@babel/standalone-7.14.4" = {
       name = "_at_babel_slash_standalone";
       packageName = "@babel/standalone";
-      version = "7.13.15";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.15.tgz";
-        sha512 = "gKEx9cfMLJegKYYVnI1/4swITcWQa2/e0HlAU9S/+h94xGdyXtoYVQiz8gcXabQ/8MMlOwGclkRoTL3cAxplZg==";
+        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.4.tgz";
+        sha512 = "oBvBtSdACtNeH2YAg2kyZhfbqfKQK7lgudfHo8IC03JiBrfuvvMlfkBaSrqxrpf9DmUCZJnDZH3uLNVN5QoXog==";
       };
     };
     "@babel/template-7.12.13" = {
@@ -1489,22 +1525,22 @@ let
         sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
       };
     };
-    "@babel/traverse-7.13.15" = {
+    "@babel/traverse-7.14.2" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.13.15";
+      version = "7.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz";
-        sha512 = "/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz";
+        sha512 = "TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==";
       };
     };
-    "@babel/types-7.13.14" = {
+    "@babel/types-7.14.4" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.13.14";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz";
-        sha512 = "A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz";
+        sha512 = "lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==";
       };
     };
     "@braintree/sanitize-url-3.1.0" = {
@@ -1516,22 +1552,22 @@ let
         sha512 = "GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==";
       };
     };
-    "@bugsnag/browser-7.9.2" = {
+    "@bugsnag/browser-7.10.1" = {
       name = "_at_bugsnag_slash_browser";
       packageName = "@bugsnag/browser";
-      version = "7.9.2";
+      version = "7.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.9.2.tgz";
-        sha512 = "vD0UEpInqoOWxqSdXhDN7wbt8hUnaqmHF/nyQK6pVYlPmBOaseexwjGBWQ1BCa4QWwK1CDDBy6sS9onUvWKsnw==";
+        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.10.1.tgz";
+        sha512 = "Yxm/DheT/NHX2PhadBDuafuHBhP547Iav6Y9jf+skBBSi1n0ZYkGhtVxh8ZWLgqz5W8MsJ0HFiLBqcg/mulSvQ==";
       };
     };
-    "@bugsnag/core-7.9.2" = {
+    "@bugsnag/core-7.10.0" = {
       name = "_at_bugsnag_slash_core";
       packageName = "@bugsnag/core";
-      version = "7.9.2";
+      version = "7.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.9.2.tgz";
-        sha512 = "iz18qkEhrF0Bra0lpEP4VC0EJa48R+3QDDiTtfHW9fiZGKw+ADrUhwW7pHJn+LDqWfq4kMqJNuQC+8s4dV3MYg==";
+        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.10.0.tgz";
+        sha512 = "sDa2nDxwsxHQx2/2/tsBWjYqH0TewCR8N/r5at6B+irwVkI0uts7Qc2JyqDTfiEiBXKVEXFK+fHTz1x9b8tsiA==";
       };
     };
     "@bugsnag/cuid-3.0.0" = {
@@ -1543,22 +1579,22 @@ let
         sha512 = "LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg==";
       };
     };
-    "@bugsnag/js-7.9.2" = {
+    "@bugsnag/js-7.10.1" = {
       name = "_at_bugsnag_slash_js";
       packageName = "@bugsnag/js";
-      version = "7.9.2";
+      version = "7.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.9.2.tgz";
-        sha512 = "RkajX7cnlYKm4uWclf4oQKZL69A9Vo5jNyQiE7u8uFXhotHoDyHi5QLkdHOSIOZHkBGkgoRV9tkbPAJKcnJSuQ==";
+        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.10.1.tgz";
+        sha512 = "1/MK/Bw2ViFx1hMG2TOX8MOq/LzT2VRd0VswknF4LYsZSgzohkRzz/hi6P2TSlLeapRs+bkDC6u2RCq4zYvyiA==";
       };
     };
-    "@bugsnag/node-7.9.2" = {
+    "@bugsnag/node-7.10.1" = {
       name = "_at_bugsnag_slash_node";
       packageName = "@bugsnag/node";
-      version = "7.9.2";
+      version = "7.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.9.2.tgz";
-        sha512 = "e+tEyUBQ6e5z4WJlPAi962rnbR0f+0wxPjSoUHV5uVFg5Dkjg3ioXDdzKVbxfOEv3nVpXlMD8DrQqYe5g0O6sA==";
+        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.10.1.tgz";
+        sha512 = "kpasrz/im5ljptt2JOqrjbOu4b0i5sAZOYU4L0psWXlD31/wXytk7im11QlNALdI8gZZBxIFsVo8ks6dR6mHzg==";
       };
     };
     "@bugsnag/safe-json-stringify-6.0.0" = {
@@ -1570,13 +1606,13 @@ let
         sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
-    "@cdktf/hcl2json-0.2.2" = {
+    "@cdktf/hcl2json-0.4.0" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.2.2";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.2.2.tgz";
-        sha512 = "C/IOl8ARTRiafC9mdZiIuJbqys6LRmaVM/grux7OASkVbkyYy2RHKPVXRBsD5mtfLBXQaL/NGjLLJ4aSC7jFZQ==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.4.0.tgz";
+        sha512 = "etFW1+DoAwQ7ENtdvpuKxmosJDDJ2rnQUDkJPZnNIqLUAXcGG3MdU6PWTnLQX/xwDMQq7xfCZlDK/hrV7g2rhA==";
       };
     };
     "@chemzqm/neovim-5.2.13" = {
@@ -1723,175 +1759,175 @@ let
         sha512 = "HilPrVrCosYWqSyjfpDtaaN1kJwdlBpS+IAflP3z+e7nsEgk3JGJf1Vg0NgHJooTf5HDfXSyZqMVg+5jvXCK0g==";
       };
     };
-    "@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==";
       };
     };
-    "@electron-forge/async-ora-6.0.0-beta.54" = {
+    "@electron-forge/async-ora-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_async-ora";
       packageName = "@electron-forge/async-ora";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.54.tgz";
-        sha512 = "OCoHds0BIXaB54HgKw6pjlHC1cnaTcfJfVVkPSJl1GLC3VShZ5bETJfsitwbiP2kbfKLUQFayW27sqbwnwQR2w==";
+        url = "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.57.tgz";
+        sha512 = "pinf6bB5etIKNwFgMx2V+kwsFlkjU4mApALv0Jn/lmcH5dlAB4zPwuKTccC44xVO4pp/bV1HWb1XJ4lHVxYaJg==";
       };
     };
-    "@electron-forge/core-6.0.0-beta.54" = {
+    "@electron-forge/core-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_core";
       packageName = "@electron-forge/core";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.54.tgz";
-        sha512 = "yggZeiwRLnIsQYCT5jKhx2L7I02CwUCjnIzA+CqUZXD0AU1c2o0BA/26dNOGvY/+pr5yWjOXcrGy1hvj3dnLmQ==";
+        url = "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.57.tgz";
+        sha512 = "pLYG0QefjAEjxRazgEjryb4TrxVeebGTqXqZsKOpABAlDaKU4EmBq06SeSu8H9IAzMPwzpDIa6PaXdkMclqhnA==";
       };
     };
-    "@electron-forge/installer-base-6.0.0-beta.54" = {
+    "@electron-forge/installer-base-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-base";
       packageName = "@electron-forge/installer-base";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.54.tgz";
-        sha512 = "q6Z5kBAE6StKqn+3Z5tXVHu7WGCb9OMeIomw9H9Q41UUIehF7V0J3tCWTkJdhZ8D6/tkXcis3GKptaj0wfMpyg==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.57.tgz";
+        sha512 = "qeQMUos0WADEddSGhViCUeMswsFz1IL+elIy5h06AxgjoRtOU75VVy9RgVfDAMIN0iKvEWNKLQz1CBUtVAt0fA==";
       };
     };
-    "@electron-forge/installer-darwin-6.0.0-beta.54" = {
+    "@electron-forge/installer-darwin-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-darwin";
       packageName = "@electron-forge/installer-darwin";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.54.tgz";
-        sha512 = "kRbH24+QBhbcIugnIvevnf43JGzLFLoyFsoY3YeyZeeDL3vfyg0vtSyUx0hfq1GpHG+zObDf3o18c3WbxdXlXA==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.57.tgz";
+        sha512 = "3dsa948r3gCkD+ooKeGwWSUyh5GEJ7ngi9t1dRD+f1jUnkU1e3SqcGXH68dr5NYn3OcsFDWreK3xvx/1qdEQAg==";
       };
     };
-    "@electron-forge/installer-deb-6.0.0-beta.54" = {
+    "@electron-forge/installer-deb-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-deb";
       packageName = "@electron-forge/installer-deb";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.54.tgz";
-        sha512 = "UbJR2Md0SBqex5AIv9YZ56hY2Iz5gZ6f1iAx0q4PlYpCY19W9nRXdudLNhx1w5go26DsT53+h6EzX2NGpBLq3Q==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.57.tgz";
+        sha512 = "Dnm68RUwR0UEe1hq1OPWso0LwdkZTa7Rpv0m9bHl+IvXTmrU//S5fdHEtjHAmto8f8PD5VadsLQcxsc3bQVNGQ==";
       };
     };
-    "@electron-forge/installer-dmg-6.0.0-beta.54" = {
+    "@electron-forge/installer-dmg-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-dmg";
       packageName = "@electron-forge/installer-dmg";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.54.tgz";
-        sha512 = "F9jwhUTzdFNlbLus7RQ8paoGPryr79JFYDLi42f0dyuFwlOjwlrA1wN5xWqrvcMeqFlc3DfjjeRWZ+10RQyorA==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.57.tgz";
+        sha512 = "kmAYga2yY5JcrRI3Dtpau5Ldsebzs4pGkCCBJqq5asqgDGdCpw+8Cky6ouJDaZMl853C0CEnqxeoGYDTAlVBKA==";
       };
     };
-    "@electron-forge/installer-exe-6.0.0-beta.54" = {
+    "@electron-forge/installer-exe-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-exe";
       packageName = "@electron-forge/installer-exe";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.54.tgz";
-        sha512 = "PE7RBPerSenNcSkKXJWpervKNl7AVT+JeMzx61OHUQSw3h63NHRvXWh31llxk32mmJcaKRgGle2GsWob87Lv/w==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.57.tgz";
+        sha512 = "hVh4vh2q7BxJ8npsVCSxSdoUMwQwcs0LidbanXK8CqHmTgnb9MNDSHomCxOnX+kMQX85mCj9Nc5ROviXnLN4Xg==";
       };
     };
-    "@electron-forge/installer-linux-6.0.0-beta.54" = {
+    "@electron-forge/installer-linux-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-linux";
       packageName = "@electron-forge/installer-linux";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.54.tgz";
-        sha512 = "WQVV5fitsfTyktjb18m9Bx+Dho6rCFvVILqFNZAu1RfXIsjLl/h0WdkozdGDccfeDMqlRYmaNs3e5THn5swnAg==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.57.tgz";
+        sha512 = "MTK4wLCWxYctzo/htghNhZ5ptIf46AE3UdeQItjiEhL4+KjJjQN8JAVkl40WeM+rUDA53WRQ35HeykNBmspb6A==";
       };
     };
-    "@electron-forge/installer-rpm-6.0.0-beta.54" = {
+    "@electron-forge/installer-rpm-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-rpm";
       packageName = "@electron-forge/installer-rpm";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.54.tgz";
-        sha512 = "8gaJA2m8+Y/ZhV4xEeijXz8UksrliMEzyUAdwM5ZdAsmfmGlnhchGr0L6rI23D66dQP9DeyvUIuUwXrsTlj1nQ==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.57.tgz";
+        sha512 = "cTzL6mwkhKEkl4v7NE2ATaEsptf5OhTbtwb/tRVIuEOblYKTxw3x9nnH8iGJ73xPW/54awGiU1kHJTKA6UhcUA==";
       };
     };
-    "@electron-forge/installer-zip-6.0.0-beta.54" = {
+    "@electron-forge/installer-zip-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_installer-zip";
       packageName = "@electron-forge/installer-zip";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.54.tgz";
-        sha512 = "KCY5zreA79wjZODhLmtrbFweTWdlh9JgmW9WruIrmHm3sK19rRhCdaZ+Dg5ZWUhMx2A79d5a2C7r78lWGcHl7A==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.57.tgz";
+        sha512 = "ip/mlC32/mdUzFsM/39cZWshLN1B1f6atYHd2OpXlyAz6IZWrRHdsrJGtYsGdpgeoV/wMm09MTyuKXku3ehPaQ==";
       };
     };
-    "@electron-forge/maker-base-6.0.0-beta.54" = {
+    "@electron-forge/maker-base-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_maker-base";
       packageName = "@electron-forge/maker-base";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.54.tgz";
-        sha512 = "4y0y15ieb1EOR5mibtFM9tZzaShbAO0RZu6ARLCpD5BgKuJBzXRPfWvEmY6WeDNzoWTJ+mQdYikLAeOL2E9mew==";
+        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.57.tgz";
+        sha512 = "VnoSCeyCHBv9q0Bz9JRgKC1b4k3z/Qb2T9DrpMqEVW6ClZVkOAZVmjyEtb+Xn8DnRPc4UtSjpAquycC/AZJ4MQ==";
       };
     };
-    "@electron-forge/plugin-base-6.0.0-beta.54" = {
+    "@electron-forge/plugin-base-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_plugin-base";
       packageName = "@electron-forge/plugin-base";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.54.tgz";
-        sha512 = "8HwGzgNCHo2PgUfNnTch3Gvj7l6fqOgjnARK1y056UfsxFy+hwvHaAO+7LLfr7ktNwU/bH3hGhOpE+ZmBSwSqQ==";
+        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.57.tgz";
+        sha512 = "lErdgdSGd+HcIzXsZC1Pf6VuLYsDVHTwFUzuZqUPdl28AOWKfwW+XpIZoPMDt2/Mdd5K0mCcYSylikcSa8RHYA==";
       };
     };
-    "@electron-forge/publisher-base-6.0.0-beta.54" = {
+    "@electron-forge/publisher-base-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_publisher-base";
       packageName = "@electron-forge/publisher-base";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.54.tgz";
-        sha512 = "Dny0jW0N8QcNYKHTtzQFZD4pBWJ7tclJWf3ZCX031vUKG7RhThdA06IPNzV6JtWJswrvAE9TPndzZONMza2V7g==";
+        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.57.tgz";
+        sha512 = "eJFVt4JI/zCw86PMu/LERMAMVcPchyFfZ9upFec4YuOOMLaJH1NvbO3gGgYj7vavH1hQWZA6Yn7u8b+E8y8Byw==";
       };
     };
-    "@electron-forge/shared-types-6.0.0-beta.54" = {
+    "@electron-forge/shared-types-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_shared-types";
       packageName = "@electron-forge/shared-types";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.54.tgz";
-        sha512 = "6CzWKFR17rxxeIqm1w5ZyT9uTAHSVAjhqL8c+TmizF2703GyCEusUkjP2UXt/tZNY4MJlukZoJM66Bct6oZJ+w==";
+        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.57.tgz";
+        sha512 = "8jRAf7HsfQC5BA8MTOwh8cXmqJ8JJqzO7WzDW9A50tHOKbpBxPW9YM8036SZzZ4GNZYBSWmJt3d3vW+KFLeYXg==";
       };
     };
-    "@electron-forge/template-base-6.0.0-beta.54" = {
+    "@electron-forge/template-base-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_template-base";
       packageName = "@electron-forge/template-base";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.54.tgz";
-        sha512 = "LuSpeOiM6AzUbamz5U/NqRkn4y7dzof1JK1ISAb+6tORf7JU014aKqDcLdwgP8Lxaz6P1bdlMmNJTvg5+SBrEw==";
+        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.57.tgz";
+        sha512 = "3Nc7ik99VHQK8eTUrO/lA2tMRM5a0fLX+GgjR32yzkaAv081qd6t/XWS7MfU3k5Ld5cYMturUywJnEP/QdxOvA==";
       };
     };
-    "@electron-forge/template-typescript-6.0.0-beta.54" = {
+    "@electron-forge/template-typescript-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_template-typescript";
       packageName = "@electron-forge/template-typescript";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.54.tgz";
-        sha512 = "7V87LWH+vJ1YibM9MsTttbz7upfwLrmXgchQ399EfLxK306g7q/ouyGkeTerhLr2gCUAvm/Oqx+sXQ7402ol9w==";
+        url = "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.57.tgz";
+        sha512 = "NhcyTaLjbBGtdCTkAJgazKR4B9+yNFNH8QiXm3u6bg0cv2MhPWydmPuiEjFRLqG+Vz6jS4sW6jSIyCjFRK42ow==";
       };
     };
-    "@electron-forge/template-typescript-webpack-6.0.0-beta.54" = {
+    "@electron-forge/template-typescript-webpack-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_template-typescript-webpack";
       packageName = "@electron-forge/template-typescript-webpack";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.54.tgz";
-        sha512 = "1MIw1eGlMZg7KLG4oAEE0rB28WDOtz01OSoW2a2NqkmUzmu4BxJdSvQ97Tp7xCU0naW0H1uU39B9QOjJQgLGCQ==";
+        url = "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.57.tgz";
+        sha512 = "S9AzVLB02AvOwEOtQvtSJlv7BPZPSX3gdqwhoxPcTP6Pi/hOvVeEweptkwwRzGsZmSI7/ifi1bq7avhnzjasZw==";
       };
     };
-    "@electron-forge/template-webpack-6.0.0-beta.54" = {
+    "@electron-forge/template-webpack-6.0.0-beta.57" = {
       name = "_at_electron-forge_slash_template-webpack";
       packageName = "@electron-forge/template-webpack";
-      version = "6.0.0-beta.54";
+      version = "6.0.0-beta.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.54.tgz";
-        sha512 = "4/zUOZ8MCZqs8PcUCeeG6ofpy6HT53tQiLknM23OPaFP6ckuE6kOunC6N/teijUrJuLpKl3P8d39SWPVacxEzg==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.57.tgz";
+        sha512 = "df4/jHKcZ6+8qIE+h2U9Ej5P36uGQZjI8+CcIPDE/46avHT+BwCmlMA/ZTGUQ787U9WkoMiI7122jdd7GNyuCQ==";
       };
     };
     "@electron/get-1.12.4" = {
@@ -1975,13 +2011,13 @@ let
         sha512 = "OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==";
       };
     };
-    "@eslint/eslintrc-0.4.0" = {
+    "@eslint/eslintrc-0.4.1" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "0.4.0";
+      version = "0.4.1";
       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.1.tgz";
+        sha512 = "5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==";
       };
     };
     "@exodus/schemasafe-1.0.0-rc.3" = {
@@ -1993,13 +2029,13 @@ let
         sha512 = "GoXw0U2Qaa33m3eUcxuHnHpNvHjNlLo0gtV091XBpaRINaB4X6FGCG5XKxSFNFiPpugUDqNruHzaqpTdDm4AOg==";
       };
     };
-    "@expo/apple-utils-0.0.0-alpha.17" = {
+    "@expo/apple-utils-0.0.0-alpha.20" = {
       name = "_at_expo_slash_apple-utils";
       packageName = "@expo/apple-utils";
-      version = "0.0.0-alpha.17";
+      version = "0.0.0-alpha.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/apple-utils/-/apple-utils-0.0.0-alpha.17.tgz";
-        sha512 = "ecpC6e3xTtMVVKWpp231L8vptoSPqwtKSmfJ8sXfMlQRtWbq8Bu1pCHR/pdAx9X4IYzygjrTa9IDAPpbGuSaMg==";
+        url = "https://registry.npmjs.org/@expo/apple-utils/-/apple-utils-0.0.0-alpha.20.tgz";
+        sha512 = "L/M9NPNlT1e38whA3M4QdnIDCClj6Y2GPXFOxBxuwzlmh847RHwZ/ojJpVP8sLVC+is54DS1hU9vtDkiPHGPRw==";
       };
     };
     "@expo/bunyan-4.0.0" = {
@@ -2011,58 +2047,58 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-3.3.36" = {
+    "@expo/config-4.0.2" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "3.3.36";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.36.tgz";
-        sha512 = "qUaq3Ct3O2uML3ISsjekol3UNTQUvJm2AMrRjlwYXHzxG2EVIHNaWseOZoFtXxrfAj3IqWXEtS9avfho+nbgBg==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-4.0.2.tgz";
+        sha512 = "zKKWt6Qs2lJLSwp8NeBCQ+iAPuKYkRJB6PZZJFIXaXD9AC5uJYSElUG+HVfy73se4KF/4JjndOWXWZEkCAivxw==";
       };
     };
-    "@expo/config-plugins-1.0.26" = {
+    "@expo/config-plugins-2.0.2" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "1.0.26";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.26.tgz";
-        sha512 = "zfdNL7FgM2yCYSX0sq7PUkcE9pk+w6GfgCnnXuYH5JOOi2UYtiOu0FgYc0M+ZmUlhNkTtiBZDt8aPGcikopwpw==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-2.0.2.tgz";
+        sha512 = "kaTfzLfg9sjy9uAHq708FVqC2hlVQyzCmrCsnfRguk2d+5V9ZyCVdMPiDdAIKHtWCPygIPNmlIP4FYQ093RNzQ==";
       };
     };
-    "@expo/config-types-40.0.0-beta.2" = {
+    "@expo/config-types-41.0.0" = {
       name = "_at_expo_slash_config-types";
       packageName = "@expo/config-types";
-      version = "40.0.0-beta.2";
+      version = "41.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-types/-/config-types-40.0.0-beta.2.tgz";
-        sha512 = "t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg==";
+        url = "https://registry.npmjs.org/@expo/config-types/-/config-types-41.0.0.tgz";
+        sha512 = "Ax0pHuY5OQaSrzplOkT9DdpdmNzaVDnq9VySb4Ujq7UJ4U4jriLy8u93W98zunOXpcu0iiKubPsqD6lCiq0pig==";
       };
     };
-    "@expo/configure-splash-screen-0.3.4" = {
+    "@expo/configure-splash-screen-0.4.0" = {
       name = "_at_expo_slash_configure-splash-screen";
       packageName = "@expo/configure-splash-screen";
-      version = "0.3.4";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.3.4.tgz";
-        sha512 = "HsukM03X5/EXSucVsLN/oLqyFq/1jAjpADkgU1HLaezFpkr+TOquI6yDwdDp1450kcm891PE/SYJ+mCdPxzDLw==";
+        url = "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.4.0.tgz";
+        sha512 = "IDPnr2/DW1tYpDHqedFYNCDzRTf9HYinWFQ7fOelNZLuOCMoErLbSStA5zfkv46o69AgcCpteqgKHSoxsIBz5g==";
       };
     };
-    "@expo/dev-server-0.1.62" = {
+    "@expo/dev-server-0.1.72" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.62";
+      version = "0.1.72";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.62.tgz";
-        sha512 = "ZNBQI/Q9Di19TjU7QT2lNxT+VEf8Aq6puwCNVQx2ohdKQjqh4+YSlvvChXY+x25SG1CorWc8SfLjTtXnIcheJg==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.72.tgz";
+        sha512 = "W1ULabPSCDiV1ySy3ZkX2nTUPiWLqj1ocMLE8sk1wddO8RWneKGB9FlrGDj0+RFTDOYi6ZmBESesKrH/elNkRw==";
       };
     };
-    "@expo/dev-tools-0.13.92" = {
+    "@expo/dev-tools-0.13.102" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.92";
+      version = "0.13.102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.92.tgz";
-        sha512 = "Fu5Bw5lk3Pl1aj9XMOSNP8trzksrmb4w969qiBzCGxVrrSql93xBPDwpd40oOiAesk+X7Qg6eF/IIJpYNfgUCg==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.102.tgz";
+        sha512 = "yVpt9EERqMrPXaFgjV5HumcDSoni0rhaafTB186NB4BYPNuBDytSeb9RnpxyHHWxzF3/mav5DIQ+x6HB6TdWig==";
       };
     };
     "@expo/devcert-1.0.0" = {
@@ -2074,58 +2110,67 @@ let
         sha512 = "cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==";
       };
     };
-    "@expo/image-utils-0.3.12" = {
+    "@expo/image-utils-0.3.14" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.3.12";
+      version = "0.3.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.12.tgz";
-        sha512 = "QMMAjyCJUFXI8b6AOrVC40gubkt++qYfRJdKgbegf9JHQNul/O4Q1ENWTgid+PH0EUqlMLbv6kJ6ai0ZjO08kw==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.14.tgz";
+        sha512 = "n+JkLZ71CWuNKLVVsPTzMGRwmbeKiVQw/2b99Ro7znCKzJy3tyE5T2C6WBvYh/5h/hjg8TqEODjXXWucRIzMXA==";
       };
     };
-    "@expo/json-file-8.2.28" = {
+    "@expo/json-file-8.2.30" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.2.28";
+      version = "8.2.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.28.tgz";
-        sha512 = "C28McDuCIOmCmp6e2ZgIpNaT/fZG+L3/WFv5x2DCrooOQmamrkLSH/4Dib0NUmLgWVhgIhXL2hU4RB+LjzVvkQ==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.30.tgz";
+        sha512 = "vrgGyPEXBoFI5NY70IegusCSoSVIFV3T3ry4tjJg1MFQKTUlR7E0r+8g8XR6qC705rc2PawaZQjqXMAVtV6s2A==";
       };
     };
-    "@expo/metro-config-0.1.62" = {
+    "@expo/metro-config-0.1.72" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.1.62";
+      version = "0.1.72";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.62.tgz";
-        sha512 = "CvEtzryyLCDky9faY0/+rilkF4wS/KlbdtCbRk5esu5eH3dc0hztEap6TrIP4axQJ481uHRxy/dN2FBivQfLdg==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.72.tgz";
+        sha512 = "PvWn5DZCV6hNYA9CTOBWEfwb9FCjyQCiyYnmxjsT0k9eplIBGTtfy74uIOd0SdDdCTPCgCO8SMyabc+Qg599xg==";
       };
     };
-    "@expo/osascript-2.0.25" = {
+    "@expo/osascript-2.0.28" = {
       name = "_at_expo_slash_osascript";
       packageName = "@expo/osascript";
-      version = "2.0.25";
+      version = "2.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.25.tgz";
-        sha512 = "rB+RLHCp72q0OBWmisoBswfTpyzc91OJMs3UQVWJP9mXVNJhemONt7PKjE+FinBm33uH1HCC6U7JPGigpVsJBg==";
+        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.28.tgz";
+        sha512 = "+0R/+DK/kTjFmkFShPlwowO3Ro0X0nQ3F7uRaOsXomZVjvrjSaOQOlFYRDr0Ci3pbEWS8MGUhlC7GXlba4VsTw==";
       };
     };
-    "@expo/package-manager-0.0.40" = {
+    "@expo/package-manager-0.0.43" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.40";
+      version = "0.0.43";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.40.tgz";
-        sha512 = "JE5i/IYQ7ActzugX1MgzK5vUjAJHtEm+btEyNtZyf8SQKOlk+DMeSUdQuC6h07IgTlFIfqFiw1O8GW/x8RD77A==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.43.tgz";
+        sha512 = "Keguxd7fH1JbFd/4fU3PuN3h4usZ3NyRFXgi7ZjAYul8uKt+/XB2HBvliukdThGJKhypMeVWcNYWuLCUm74B1Q==";
       };
     };
-    "@expo/plist-0.0.12" = {
+    "@expo/plist-0.0.13" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.0.12";
+      version = "0.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.12.tgz";
-        sha512 = "anGvLk58fxfeHY2PbtH79VxhrLDPGd+173pHYYXNg9HlfbrEVLI2Vo0ZBOrr/cYr7cgU5A/WNcMphRoO/KfYZQ==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.13.tgz";
+        sha512 = "zGPSq9OrCn7lWvwLLHLpHUUq2E40KptUFXn53xyZXPViI0k9lbApcR9KlonQZ95C+ELsf0BQ3gRficwK92Ivcw==";
+      };
+    };
+    "@expo/prebuild-config-1.0.3" = {
+      name = "_at_expo_slash_prebuild-config";
+      packageName = "@expo/prebuild-config";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-1.0.3.tgz";
+        sha512 = "4rkWeVs6FaO4TcOVf5GnH5HTPOaVHJX9d1GnqF/Msh3IdhX1+v+c3s6HYmxDezkild27SYwrinqu89CWRUtM/A==";
       };
     };
     "@expo/results-1.0.0" = {
@@ -2137,13 +2182,13 @@ let
         sha512 = "qECzzXX5oJot3m2Gu9pfRDz50USdBieQVwYAzeAtQRUTD3PVeTK1tlRUoDcrK8PSruDLuVYdKkLebX4w/o55VA==";
       };
     };
-    "@expo/schemer-1.3.27" = {
+    "@expo/schemer-1.3.29" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.27";
+      version = "1.3.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.27.tgz";
-        sha512 = "cuCvSo6qErgK7OOM8CoCtCsVifq+WX1wUCeu+fmSyhnZcqnz45ZTK20Ghk5bT3OrTNQipbTiCjn9RCDrkEMMkg==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.29.tgz";
+        sha512 = "7Ch3c39xZunAo/yv8lj62pc9m5jmKKeyCrz7wKe4p3dETvcvLpqaaxl8ylWm//Nok27D290y1q/pE5i12KA+Pg==";
       };
     };
     "@expo/simple-spinner-1.0.2" = {
@@ -2164,22 +2209,22 @@ let
         sha512 = "LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==";
       };
     };
-    "@expo/webpack-config-0.12.66" = {
+    "@expo/webpack-config-0.12.76" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.12.66";
+      version = "0.12.76";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.66.tgz";
-        sha512 = "8U3m44Q2VMmoOl9Gw9djOsdCIX5yT8yD5ZnVyfyQHMGILz9uXkqn3kM0QNFFWhT8TZN/zCP6YkmYrH8yL3rTkg==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.76.tgz";
+        sha512 = "8Q4sH+KBgM9jsH7Dp0A5lEmGiKvBXNcax2H6k8i54vfptaUh8gBZqohGuLshzeTJYT43I3LDulheOGr83yNB3g==";
       };
     };
-    "@expo/xcpretty-2.0.0" = {
+    "@expo/xcpretty-2.0.1" = {
       name = "_at_expo_slash_xcpretty";
       packageName = "@expo/xcpretty";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-2.0.0.tgz";
-        sha512 = "bukgcPcsiZq7dYxpSVPQ/qvSDrwpUVSkgEf8NQJS9UcClPakgpM+e5XIzYWe2WXLmHtskVJUPruoEX6zWUm8LA==";
+        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-2.0.1.tgz";
+        sha512 = "fyQbzvZpLiKpx68QDzeLlL1AtFhhEW35dqxIqb4QQ6e3iofu57NdWBQTmIAQzDOPcNNXUR9SFncu3M4iyWwQ7Q==";
       };
     };
     "@fast-csv/format-4.3.5" = {
@@ -2218,22 +2263,22 @@ let
         sha512 = "XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==";
       };
     };
-    "@fluentui/keyboard-key-0.2.16" = {
+    "@fluentui/keyboard-key-0.2.17" = {
       name = "_at_fluentui_slash_keyboard-key";
       packageName = "@fluentui/keyboard-key";
-      version = "0.2.16";
+      version = "0.2.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.16.tgz";
-        sha512 = "T4eQ0uqhbTScsoXVx10Tlp0C2RgNdAzlbe52qJ0Tn288/Nuztda5Z/aTCRd5Rp5MRYBycjAf4iNot6ZHAP864g==";
+        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.17.tgz";
+        sha512 = "iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==";
       };
     };
-    "@fluentui/react-7.168.0" = {
+    "@fluentui/react-7.170.1" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.168.0";
+      version = "7.170.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.168.0.tgz";
-        sha512 = "eM+vt4RDRnI/IGZtenxYp7cTssMOkXVY3GqFLJkiK/gHTRI3goMWPpLA9tux0lbuiB3zvnvgLrJ2k0ihWa3FCw==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.170.1.tgz";
+        sha512 = "v43+TQ+zcjzW3vPOebIIUQpj4j1p4McDVwrVGplUmIVgxXPg9wBvXGB0CcBvpaFRZq6tKG95uUdanRsEStBMxQ==";
       };
     };
     "@fluentui/react-focus-7.17.6" = {
@@ -2299,13 +2344,13 @@ let
         sha512 = "d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==";
       };
     };
-    "@google-cloud/pubsub-2.11.0" = {
+    "@google-cloud/pubsub-2.12.0" = {
       name = "_at_google-cloud_slash_pubsub";
       packageName = "@google-cloud/pubsub";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.11.0.tgz";
-        sha512 = "j9sIjVLFqSEVrAZdrGbmu4GVVuCW70Sg6/EBKSMjNKhN/ctQsgcP6kUVLVnnrrTWVF0+FfdlfuCHtdYxGy7mfw==";
+        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.12.0.tgz";
+        sha512 = "SF+y7sKX9Jo2ZoVqzwEuSReUyb6O4mwxzxP1B+dP3j0ArUk0XXSC/tFLQhYM7lC2ViLxGWoIbEZbRIw8SrIQnw==";
       };
     };
     "@graphql-cli/common-4.1.0" = {
@@ -2326,22 +2371,22 @@ let
         sha512 = "RNhQk0jMz6fZB4Ilu37PZj6YUQgSEZJrppXlaHpw/xYyDelcjYKZg/z9eMvYo6rxQPR2mGXjoj6by+zew1WgOw==";
       };
     };
-    "@graphql-tools/batch-execute-7.1.0" = {
+    "@graphql-tools/batch-execute-7.1.2" = {
       name = "_at_graphql-tools_slash_batch-execute";
       packageName = "@graphql-tools/batch-execute";
-      version = "7.1.0";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.0.tgz";
-        sha512 = "Yb4QRpHZqDk24+T4K3ARk/KFU26Dyl30XcbYeVvIrgIKcmeON/p3DfSeiB0+MaxYlsv+liQKvlxNbeC2hD31pA==";
+        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz";
+        sha512 = "IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==";
       };
     };
-    "@graphql-tools/delegate-7.1.2" = {
+    "@graphql-tools/delegate-7.1.5" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "7.1.2";
+      version = "7.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.2.tgz";
-        sha512 = "XvmIod9ZYKMLk2vV5ulbUyo1Va4SCvvp/VNq4RTae2SEvYwNewc1xs1Klmz8khV+c2V30xKSccNWGA6BWyTTog==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz";
+        sha512 = "bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==";
       };
     };
     "@graphql-tools/graphql-file-loader-6.2.7" = {
@@ -2353,13 +2398,13 @@ let
         sha512 = "5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==";
       };
     };
-    "@graphql-tools/import-6.3.0" = {
+    "@graphql-tools/import-6.3.1" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "6.3.0";
+      version = "6.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz";
-        sha512 = "zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz";
+        sha512 = "1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==";
       };
     };
     "@graphql-tools/json-file-loader-6.2.6" = {
@@ -2380,31 +2425,31 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/merge-6.2.13" = {
+    "@graphql-tools/merge-6.2.14" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "6.2.13";
+      version = "6.2.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.13.tgz";
-        sha512 = "Qjlki0fp+bBQPinhdv7rv24eurvThZ5oIFvGMpLxMZplbw/ovJ2c6llwXr5PCuWAk9HGZsyM9NxxDgtTRfq3dQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.14.tgz";
+        sha512 = "RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow==";
       };
     };
-    "@graphql-tools/schema-7.1.3" = {
+    "@graphql-tools/schema-7.1.5" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "7.1.3";
+      version = "7.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz";
-        sha512 = "ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz";
+        sha512 = "uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==";
       };
     };
-    "@graphql-tools/url-loader-6.8.2" = {
+    "@graphql-tools/url-loader-6.10.1" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "6.8.2";
+      version = "6.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.2.tgz";
-        sha512 = "YzsXSCOwlSj8UqOMhQThPzgEChgS/MonyWV7f0WKmN9gAT/f3fPaUcYhVamsH0vGbvTkfNM4JdoZO/39amRs5Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz";
+        sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -2416,22 +2461,22 @@ let
         sha512 = "ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==";
       };
     };
-    "@graphql-tools/utils-7.7.3" = {
+    "@graphql-tools/utils-7.10.0" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "7.7.3";
+      version = "7.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.3.tgz";
-        sha512 = "zF8Ll1v7DOFfCsZVYGkJqvi3Zpwfga8NutOZkToXrumMlTPaMhEDFkiuwoIK4lV2PMVUke5ZCmpn9pc5pqy4Tw==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz";
+        sha512 = "d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==";
       };
     };
-    "@graphql-tools/wrap-7.0.5" = {
+    "@graphql-tools/wrap-7.0.8" = {
       name = "_at_graphql-tools_slash_wrap";
       packageName = "@graphql-tools/wrap";
-      version = "7.0.5";
+      version = "7.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz";
-        sha512 = "KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz";
+        sha512 = "1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==";
       };
     };
     "@grpc/grpc-js-1.2.11" = {
@@ -2452,6 +2497,24 @@ let
         sha512 = "+gPCklP1eqIgrNPyzddYQdt9+GvZqPlLpIjIo+TveE+gbtp74VV1A2ju8ExeO8ma8f7MbpaGZx/KJPYVWL9eDw==";
       };
     };
+    "@grpc/grpc-js-1.3.1" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.1.tgz";
+        sha512 = "zyFq9eW0U4vGyhJS/oeW3mIeKTzB13we9rBclcisfRHxGQbC9FCOKQ5BBA2129yZwRVMt4hQia1igGzECeuY9g==";
+      };
+    };
+    "@grpc/grpc-js-1.3.2" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.2.tgz";
+        sha512 = "UXepkOKCATJrhHGsxt+CGfpZy9zUn1q9mop5kfcXq1fBkTePxVNPOdnISlCbJFlCtld+pSLGyZCzr9/zVprFKA==";
+      };
+    };
     "@grpc/proto-loader-0.5.6" = {
       name = "_at_grpc_slash_proto-loader";
       packageName = "@grpc/proto-loader";
@@ -2470,6 +2533,24 @@ let
         sha512 = "JwWZwGuN1nQuPdeL1d94hNGtnRtiOuy+SkdVUU8IwwQzksvdWvgKHyGDCesvAD0tndQTm1YUZHJw+JDTIDALyQ==";
       };
     };
+    "@grpc/proto-loader-0.6.1" = {
+      name = "_at_grpc_slash_proto-loader";
+      packageName = "@grpc/proto-loader";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.1.tgz";
+        sha512 = "4DIvEOZhw5nGj3RQngIoiMXRsre3InEH136krZTcirs/G2em3WMXdtx4Lqlnb4E2ertbWGs5gPeVDKU5BHffXw==";
+      };
+    };
+    "@grpc/proto-loader-0.6.2" = {
+      name = "_at_grpc_slash_proto-loader";
+      packageName = "@grpc/proto-loader";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.2.tgz";
+        sha512 = "q2Qle60Ht2OQBCp9S5hv1JbI4uBBq6/mqSevFNK3ZEgRDBCAkWqZPUhD/K9gXOHrHKluliHiVq2L9sw1mVyAIg==";
+      };
+    };
     "@gulp-sourcemaps/identity-map-1.0.2" = {
       name = "_at_gulp-sourcemaps_slash_identity-map";
       packageName = "@gulp-sourcemaps/identity-map";
@@ -3037,67 +3118,67 @@ let
         sha512 = "EjPkDQOzV/oZfbolEUgFT6SE++PtCccVBvjuACkttyCfl0P2jnpR49SwstyVLc2u8AwBAZEHHAw9lPYaMjtbXQ==";
       };
     };
-    "@joplin/fork-htmlparser2-4.1.23" = {
+    "@joplin/fork-htmlparser2-4.1.26" = {
       name = "_at_joplin_slash_fork-htmlparser2";
       packageName = "@joplin/fork-htmlparser2";
-      version = "4.1.23";
+      version = "4.1.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-htmlparser2/-/fork-htmlparser2-4.1.23.tgz";
-        sha512 = "nTbOVZJbF02d32AhvwhWME2uQbbCZsFYulMgqRZ/I4realfJgqkaUfXclLxYcyOPAjzngXd+Wb1/M/Pz6luXGw==";
+        url = "https://registry.npmjs.org/@joplin/fork-htmlparser2/-/fork-htmlparser2-4.1.26.tgz";
+        sha512 = "ltw7n6MdZyz+oM8DUzOxDeVPdOs/ZTavkmHeP4mp7FE4HYyU7ynhRAVsBpGmzRbXTCYXzl6QHVtocKEUZHkbSg==";
       };
     };
-    "@joplin/fork-sax-1.2.27" = {
+    "@joplin/fork-sax-1.2.30" = {
       name = "_at_joplin_slash_fork-sax";
       packageName = "@joplin/fork-sax";
-      version = "1.2.27";
+      version = "1.2.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-sax/-/fork-sax-1.2.27.tgz";
-        sha512 = "ON/8pg90WCRHKj8HttziC7Rtef+DKSSDZD9J3zjHYUvrXB0pu+7eZvRP8vF3Y2MSZnlshtFGQqiIRbwk3GVA+Q==";
+        url = "https://registry.npmjs.org/@joplin/fork-sax/-/fork-sax-1.2.30.tgz";
+        sha512 = "cRSVysAJwLnaRbFRGHCLDl3rB980iLThCDVwL5lVLpaB43pk+0GVJF3k288mJ1U20mPoZqwc0hV8C0Q5oDMKHw==";
       };
     };
-    "@joplin/lib-1.0.18" = {
+    "@joplin/lib-1.8.2" = {
       name = "_at_joplin_slash_lib";
       packageName = "@joplin/lib";
-      version = "1.0.18";
+      version = "1.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/lib/-/lib-1.0.18.tgz";
-        sha512 = "r0Z+bolszlPUsanaQIUk/tog3jHw0rGtUxXTHDMtycFWkWYVpjlT3bvxiYrV5MwLjyn/xnfUCIdHeUi/Lz3LPQ==";
+        url = "https://registry.npmjs.org/@joplin/lib/-/lib-1.8.2.tgz";
+        sha512 = "e/uEdz3PbxQQ8XUT6y1HNSM3LdpMjTEJbY+61E7LwC1PguyvAuQgr3tLS0/5OS/PJ1FP4Jm7gU61OJ28g4i4wA==";
       };
     };
-    "@joplin/renderer-1.0.26" = {
+    "@joplin/renderer-1.8.2" = {
       name = "_at_joplin_slash_renderer";
       packageName = "@joplin/renderer";
-      version = "1.0.26";
+      version = "1.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/renderer/-/renderer-1.0.26.tgz";
-        sha512 = "RDRYjuPCn1ltematEZQhgvZbIGBQ+2F3jgAdXpqByg71pmxrMZyOLLbNVYJyKK4w2Ecvmbpwuo0h9RbMb/56Ow==";
+        url = "https://registry.npmjs.org/@joplin/renderer/-/renderer-1.8.2.tgz";
+        sha512 = "Khl2DoM1aFEy15RX9JaMaYinjoNEYQHOgQqzMHq4wuWr+QuAQaX8/SofTe1FU2rS4SJrkObPA+XPavhVSAxpOQ==";
       };
     };
-    "@joplin/turndown-4.0.45" = {
+    "@joplin/turndown-4.0.48" = {
       name = "_at_joplin_slash_turndown";
       packageName = "@joplin/turndown";
-      version = "4.0.45";
+      version = "4.0.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/turndown/-/turndown-4.0.45.tgz";
-        sha512 = "u4J/ka4szy34ioQ5UVaCdLlfzfOxEQH/lDReHauYoNhH+H+EWt1qOwMh9A8fuTfoK2vnUUiPKHsWhOYCe+LRiw==";
+        url = "https://registry.npmjs.org/@joplin/turndown/-/turndown-4.0.48.tgz";
+        sha512 = "QJeys/bR9qtEdUs8EFfpwRTfu01+iGQ6GaW+gxQjgXttsmfV+NuoVWfz5/NCdZ+9hqF6DdE9tU45G4EX1diFJA==";
       };
     };
-    "@joplin/turndown-plugin-gfm-1.0.27" = {
+    "@joplin/turndown-plugin-gfm-1.0.30" = {
       name = "_at_joplin_slash_turndown-plugin-gfm";
       packageName = "@joplin/turndown-plugin-gfm";
-      version = "1.0.27";
+      version = "1.0.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.27.tgz";
-        sha512 = "4BPgTSkhvxPI3tbjG4BPiBq0VuNZji1Y77DRWHb09GnzsrgwBI+gpo3EI6obkyIeRuN/03wzf98W5u1iau2vpQ==";
+        url = "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.30.tgz";
+        sha512 = "81syBeLWxduhIM+gZSdM9OGOBL5XXFSMymwfWSFTzS8svYx/I95TPwq0oERcIz6rZkeqf6C9Q52iY30GvKEOog==";
       };
     };
-    "@josephg/resolvable-1.0.0" = {
+    "@josephg/resolvable-1.0.1" = {
       name = "_at_josephg_slash_resolvable";
       packageName = "@josephg/resolvable";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.0.tgz";
-        sha512 = "OfTtjoqB2doov5aTJxkyAMK8dXoo7CjCUQSYUEtiY34jbWduOGV7+168tmCT8COMsUEd5DMSFg/0iAOPCBTNAQ==";
+        url = "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz";
+        sha512 = "CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==";
       };
     };
     "@jsdevtools/ono-7.1.3" = {
@@ -3109,13 +3190,13 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/spec-1.28.0" = {
+    "@jsii/spec-1.30.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.28.0";
+      version = "1.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.28.0.tgz";
-        sha512 = "5mcupuCCXyhZwNmX/RDBn3WUYtd0oPXEDa3E+qOSjT30vaO8u9ZQ+mxwl4qsecx3m51LhXKnR1C9U9t4VlAmqA==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.30.0.tgz";
+        sha512 = "oXIwvZyHHc/TrwA/3pzQ3gkqBe916EWBvaexNI3rnKZujlHZT4vVVHMCjQ/kUJhcR0GEaahvwlNhiPTu6roC2g==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -3676,6 +3757,15 @@ let
         sha512 = "RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==";
       };
     };
+    "@mapbox/node-pre-gyp-1.0.5" = {
+      name = "_at_mapbox_slash_node-pre-gyp";
+      packageName = "@mapbox/node-pre-gyp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz";
+        sha512 = "4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==";
+      };
+    };
     "@mark.probst/typescript-json-schema-0.32.0" = {
       name = "_at_mark.probst_slash_typescript-json-schema";
       packageName = "@mark.probst/typescript-json-schema";
@@ -3694,13 +3784,13 @@ let
         sha512 = "7AQsO0hMmpqDledV7AhBuSYqYPFsKP9PaltMecX9nlnsyFxqtsqUg9/pvB2L/jxvskrDrNkdKYz2KTbQznCtng==";
       };
     };
-    "@mdn/browser-compat-data-3.1.3" = {
+    "@mdn/browser-compat-data-3.2.4" = {
       name = "_at_mdn_slash_browser-compat-data";
       packageName = "@mdn/browser-compat-data";
-      version = "3.1.3";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.1.3.tgz";
-        sha512 = "Qdqeox4APsYwAQQSO68D1p75DL9an1wS8b/51m+nH98unN4jbS5bvg22WQrg+TMq2/3Mg/E5zprqfUzJD84qgw==";
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.2.4.tgz";
+        sha512 = "jEUurwoeiHOB7SceVnsg3ULxNlf9XxqMfcKNM+eJduPgCcoCnbLi/6og+e764fTAZCcBkqGcWUMhLQXwcqpbJQ==";
       };
     };
     "@mdx-js/util-2.0.0-next.8" = {
@@ -3721,13 +3811,22 @@ let
         sha512 = "/NdX1Ql8hKNM0vHFJnEr/bcw6BG0ULHD3HhInpniZw5ixpl+n/QIRfMEEmLCn7acedbM1zGdZvU5ZMbn9kcF5Q==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.161" = {
+    "@microsoft/fetch-event-source-2.0.1" = {
+      name = "_at_microsoft_slash_fetch-event-source";
+      packageName = "@microsoft/fetch-event-source";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz";
+        sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
+      };
+    };
+    "@microsoft/load-themed-styles-1.10.174" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.161";
+      version = "1.10.174";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.161.tgz";
-        sha512 = "ReHtvRknb3iYVUPl4c2PDEUWp18Jzh5x5MQE9zqHtSvYzpG6TGCWaqVBHKablshELqHv0dMf69929RB6VXiqyA==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.174.tgz";
+        sha512 = "O0ERVgeTrpzCzCLHOTZZDSg0K3FKdWRdBpFjs+X5wS21Jg21QqrA4T9FhCheilEcrF4Qmf41gBtgZ/16JNSWIA==";
       };
     };
     "@mitmaro/errors-1.0.0" = {
@@ -3793,13 +3892,13 @@ let
         sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
       };
     };
-    "@netlify/build-11.1.0" = {
+    "@netlify/build-11.29.2" = {
       name = "_at_netlify_slash_build";
       packageName = "@netlify/build";
-      version = "11.1.0";
+      version = "11.29.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/build/-/build-11.1.0.tgz";
-        sha512 = "544/wWXcFtiOb+XmTUqsn3OFxd/vyeggd2uM8t/V9mWg1PuP5UG4AqubnKglzxiwEHa7KGym8fQCq4HChTtLow==";
+        url = "https://registry.npmjs.org/@netlify/build/-/build-11.29.2.tgz";
+        sha512 = "fxVBpKjsTdcRkfj9RdMBVxy/TABQJhkf5/vFwzNZqnnBwes/Em6YFutNpML6zm5Ub9hpvE0HaceyOU4HkvjSFg==";
       };
     };
     "@netlify/cache-utils-1.0.7" = {
@@ -3811,67 +3910,67 @@ let
         sha512 = "yrdrnQkzg/qMovoFYwQ24UVt/OyHtP+t0KpQFd7eBl6gnuuGGgxFocaFFv6eKpMVwzHTsOwx/y9B/FcC3/6cfA==";
       };
     };
-    "@netlify/config-6.0.1" = {
+    "@netlify/config-6.7.1" = {
       name = "_at_netlify_slash_config";
       packageName = "@netlify/config";
-      version = "6.0.1";
+      version = "6.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/config/-/config-6.0.1.tgz";
-        sha512 = "rytv9UUW0QkBqwd0OkNF9SyEZLbGIbLmSms6h2Ob6pGiMUQd1wUwuX0PyS3ueIF/ZFB3PVKE8gUHNBC4wxyUrg==";
+        url = "https://registry.npmjs.org/@netlify/config/-/config-6.7.1.tgz";
+        sha512 = "4DyiSauSFaorJ46l4tBu+nbvPKY9i1gOQvw9L4yql7gd7qqJsHJi2zivdJ50+MPedQn0cgcs5lk303UBEfFsBQ==";
       };
     };
-    "@netlify/framework-info-3.3.0" = {
+    "@netlify/framework-info-5.1.2" = {
       name = "_at_netlify_slash_framework-info";
       packageName = "@netlify/framework-info";
-      version = "3.3.0";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-3.3.0.tgz";
-        sha512 = "oWlP+sWfnr0tXSqd3nfma9Abq1NvZc4lFbHPMvxU6UhAcrBOpizsMaVT9sUK0UcMwzR8xwESdskZajtFoHA28g==";
+        url = "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-5.1.2.tgz";
+        sha512 = "v3Fs9REofVNMgye8j1c0NBfVRA+P+2cS50Y1RRwrlVz344UUwZd7b0LKhZl0EkQadsdyxG2a3XgjxF5Zb3jJ0Q==";
       };
     };
-    "@netlify/functions-utils-1.3.25" = {
+    "@netlify/functions-utils-1.3.37" = {
       name = "_at_netlify_slash_functions-utils";
       packageName = "@netlify/functions-utils";
-      version = "1.3.25";
+      version = "1.3.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.25.tgz";
-        sha512 = "iCGVHlj6XNqOIQxREDbhfWEs8RBLGpXLrZKNHisG8PnJvRmnlS+EyVb1on2yV7+nvMqoqssNUeDY6tvQmwuPng==";
+        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.37.tgz";
+        sha512 = "Lq1Aj3N2vWB3nNFRbEHgVjB+MpwCsZz+rUOCki3h5PwEUwnGFyFi2VcdHQ2FJtzF7vrcm5NoMfg4pG8iY91YGA==";
       };
     };
-    "@netlify/git-utils-1.0.8" = {
+    "@netlify/git-utils-1.0.11" = {
       name = "_at_netlify_slash_git-utils";
       packageName = "@netlify/git-utils";
-      version = "1.0.8";
+      version = "1.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.8.tgz";
-        sha512 = "YWK2H6qjBmspTIibE/ai8YTsSnqROtubqWUuXz/RoQXYf03KWx/F9BFRm1S/TOoQM9v4fozRhVeHyH45Ki0ztA==";
+        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.11.tgz";
+        sha512 = "bvlvFAB9VU3wTYYEEUinsOeRFxZ/MmetffzHehSMEyP00kXakvrySq4XbC6G8u3wCDln34eOjKDt8uPYoqfuNQ==";
       };
     };
-    "@netlify/open-api-1.3.0" = {
+    "@netlify/open-api-2.4.0" = {
       name = "_at_netlify_slash_open-api";
       packageName = "@netlify/open-api";
-      version = "1.3.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/open-api/-/open-api-1.3.0.tgz";
-        sha512 = "GcCPXIWI8VDBsLN4nPvb6sKS9tbi4lrHLhex90hT27nwTDeu4HgGE93YilcsgZ1LLODJNxC5LdfTNLtvEHMKVg==";
+        url = "https://registry.npmjs.org/@netlify/open-api/-/open-api-2.4.0.tgz";
+        sha512 = "ffNpGiJulY4is1pWkrs1dn3/ytNoqJxyAD/N70cnkIVNpOWMnPGSPKGBk/TBpaZhispgSBBQ+JZXEMJAGMDZ6Q==";
       };
     };
-    "@netlify/plugin-edge-handlers-1.11.6" = {
+    "@netlify/plugin-edge-handlers-1.11.13" = {
       name = "_at_netlify_slash_plugin-edge-handlers";
       packageName = "@netlify/plugin-edge-handlers";
-      version = "1.11.6";
+      version = "1.11.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/plugin-edge-handlers/-/plugin-edge-handlers-1.11.6.tgz";
-        sha512 = "7L5pkXlwPfyUrmm9cu2+nOQYW1FMx6waMbl2Uj5SmxjLz5Dvt2zkUYbNU2ImNmJ10mxziv3LABSFn2k2qy2nLw==";
+        url = "https://registry.npmjs.org/@netlify/plugin-edge-handlers/-/plugin-edge-handlers-1.11.13.tgz";
+        sha512 = "GPSg5bYlU2hgmt1MGx22+ZoXbPdnEiqkdj40hWxJjHuDIGqfvFa3nGup7BvHBNfd1uI+OVSlLXzabWl6aVjQIg==";
       };
     };
-    "@netlify/plugins-list-2.6.0" = {
+    "@netlify/plugins-list-2.14.2" = {
       name = "_at_netlify_slash_plugins-list";
       packageName = "@netlify/plugins-list";
-      version = "2.6.0";
+      version = "2.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.6.0.tgz";
-        sha512 = "XtBrsd4M0OW3RT9O7omqBhWevPoxVfkEX9BJ2Hv5J3gpujTN6IZEYmyprxhQ+Y98r4VvZVUX8dPzR99aF15YcQ==";
+        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.14.2.tgz";
+        sha512 = "WbLQ0X1cnryXzWeV03dA3BHw0CEPDTrj3IvjbeOB45A5/dxvTgQVjAeFbmqgRj6A8GPHgSLoNN0kteoXBojHhw==";
       };
     };
     "@netlify/run-utils-1.0.7" = {
@@ -3919,67 +4018,67 @@ let
         sha512 = "ea6S9ik5X0TlA2e+jXk5D7lfvArPZjyQoIBEo7G1Tjw/vUU5Fx6KLfXv1iy7eJy+ENTLoyidscAjJ2wXlHI47g==";
       };
     };
-    "@netlify/zip-it-and-ship-it-3.4.0" = {
+    "@netlify/zip-it-and-ship-it-4.2.5" = {
       name = "_at_netlify_slash_zip-it-and-ship-it";
       packageName = "@netlify/zip-it-and-ship-it";
-      version = "3.4.0";
+      version = "4.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-3.4.0.tgz";
-        sha512 = "/wHeHVcpVyo8nD93VdmluSJeipQrTt4mXp08krqQbPZPgA2HyupyYT4ZgjWKCh00Mrh2/k1XRbbxJYRc70lzkw==";
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.2.5.tgz";
+        sha512 = "2ncCQEs49I8Ir30w2T3E1yogJp9cw+X8vfvL9a8i1AA0VE51F2rfhNsLbceWrEWn2T3TgogOMQP/0Qsxw2v0Tg==";
       };
     };
-    "@node-red/editor-api-1.3.2" = {
+    "@node-red/editor-api-1.3.5" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "1.3.2";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.3.2.tgz";
-        sha512 = "meAJ4n9amAWxoWe5/rdigd8Wa0OKpwaNIn9Vqp+xqV4BqFa9RRe3ttO9FRUOuBeHwplDsMiWNnEVEdE9NCWlig==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.3.5.tgz";
+        sha512 = "IJyfyVhEvkf2YNRPoR+1SPSi76evVV/boAKhOeVoIMBBeuYd1wM1ihMM3rnNWDYXjN/7CbTKz2DVmdMQ5aCIeQ==";
       };
     };
-    "@node-red/editor-client-1.3.2" = {
+    "@node-red/editor-client-1.3.5" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "1.3.2";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.3.2.tgz";
-        sha512 = "9YGb7PeLUmr7bMZYOn08euTOZzy+wIAqTo8R288sjbqLke0NKnFWhZsgl01pqPXv7rNjiyZpxTpU1uZLH49gDg==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.3.5.tgz";
+        sha512 = "B/JB7KuSeTHkiwzrQtCgmkUfHN5nP2htUoE4wkTt118IA/1xUWXEtl+WnT5aDLiFUyFI21q9Fl4BnDOa7JqLEw==";
       };
     };
-    "@node-red/nodes-1.3.2" = {
+    "@node-red/nodes-1.3.5" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "1.3.2";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.3.2.tgz";
-        sha512 = "NAblXeu0/tdVu8lU/gpMDVbclqkbiRGUcUforJSGeTiXod2wk4brGtLjEhAN1ouehUaIGXwiF0QN+KgfXnHg2Q==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.3.5.tgz";
+        sha512 = "kLZOn8YDiDemJ/ufx0eagpmPPbUzLifgvoF1fHq9Jzf+K/xWtzDLHqNyLM6VSzo6QlCAnS939dU9kDb5G3fs3Q==";
       };
     };
-    "@node-red/registry-1.3.2" = {
+    "@node-red/registry-1.3.5" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "1.3.2";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.3.2.tgz";
-        sha512 = "VB0em51luT17rhTa7tkOXHOQbuEBczUEI2goJaSQSv5c032yPvzh4KyAf3Xa7sDafENg33wfSZfePx2tGrdg+w==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.3.5.tgz";
+        sha512 = "wy74xMnD87v/oB5P/HnUiJ6kTgdcCTgIJadeRBh0DSwcMjG3MhSxe8QCk3U9BxLH1fxw0IwxWbNgGwzuM8EOdw==";
       };
     };
-    "@node-red/runtime-1.3.2" = {
+    "@node-red/runtime-1.3.5" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "1.3.2";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.3.2.tgz";
-        sha512 = "HMrHfkH4wklp0tI3SjZR6Yzdf/swPg7FsYjzikv8HV/KBHV/Oe73gtE8CqXkP+rqUfhqdQC/X97Tq8vD6bC4WQ==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.3.5.tgz";
+        sha512 = "4Cz83wX9trvhhPxFkF5HfYzqYQEcVOYf4f1lSDHP2xYowE22+x4BTCs8gZA4hCI4kbon3eyaU5NrzlrKd+nZbQ==";
       };
     };
-    "@node-red/util-1.3.2" = {
+    "@node-red/util-1.3.5" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "1.3.2";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-1.3.2.tgz";
-        sha512 = "AHrUP2mYTmy40Q0gP1X4GSwuJ1xWCgUL0RlEA843HpdTi7Gl6WB8xnJvcGFqptiuHiqE6mUFNrRMLmotctZqWg==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-1.3.5.tgz";
+        sha512 = "1TTvTwvGMSe9SQMEKN5zGdyGMv8Kth49eiUcdPnUWigtafk1BE9iP7gVSyLVYgijzCwh40GUkSYey0TUaSbRBw==";
       };
     };
     "@nodelib/fs.scandir-2.1.4" = {
@@ -4018,6 +4117,15 @@ let
         sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
       };
     };
+    "@npmcli/arborist-2.6.1" = {
+      name = "_at_npmcli_slash_arborist";
+      packageName = "@npmcli/arborist";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.6.1.tgz";
+        sha512 = "OOlntFIOAo7RplEQaYXlA5U5NXE+EwZtnTCsit4Wtme5+llGiea6GBytuV8dOzdPMPlNx3fQQjBUE9E8k76yjQ==";
+      };
+    };
     "@npmcli/ci-detect-1.3.0" = {
       name = "_at_npmcli_slash_ci-detect";
       packageName = "@npmcli/ci-detect";
@@ -4027,13 +4135,13 @@ let
         sha512 = "oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==";
       };
     };
-    "@npmcli/git-2.0.8" = {
+    "@npmcli/git-2.0.9" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "2.0.8";
+      version = "2.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.8.tgz";
-        sha512 = "LPnzyBZ+1p7+JzHVwwKycMF8M3lr1ze3wxGRnxn/QxJtk++Y3prSJQrdBDGCxJyRpFsup6J3lrRBVYBhJVrM8Q==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.9.tgz";
+        sha512 = "hTMbMryvOqGLwnmMBKs5usbPsJtyEsMsgXwJbmNrsEuQQh1LAIMDU77IoOrwkCg+NgQWl+ySlarJASwM3SutCA==";
       };
     };
     "@npmcli/installed-package-contents-1.0.7" = {
@@ -4045,6 +4153,24 @@ let
         sha512 = "9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==";
       };
     };
+    "@npmcli/map-workspaces-1.0.3" = {
+      name = "_at_npmcli_slash_map-workspaces";
+      packageName = "@npmcli/map-workspaces";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.3.tgz";
+        sha512 = "SdlRlOoQw4WKD4vtb/n5gUkobEABYBEOo8fRE4L8CtBkyWDSvIrReTfKvQ/Jc/LQqDaaZ5iv1iMSQzKCUr1n1A==";
+      };
+    };
+    "@npmcli/metavuln-calculator-1.1.1" = {
+      name = "_at_npmcli_slash_metavuln-calculator";
+      packageName = "@npmcli/metavuln-calculator";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz";
+        sha512 = "9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==";
+      };
+    };
     "@npmcli/move-file-1.1.2" = {
       name = "_at_npmcli_slash_move-file";
       packageName = "@npmcli/move-file";
@@ -4054,6 +4180,15 @@ let
         sha512 = "1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==";
       };
     };
+    "@npmcli/name-from-folder-1.0.1" = {
+      name = "_at_npmcli_slash_name-from-folder";
+      packageName = "@npmcli/name-from-folder";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz";
+        sha512 = "qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==";
+      };
+    };
     "@npmcli/node-gyp-1.0.2" = {
       name = "_at_npmcli_slash_node-gyp";
       packageName = "@npmcli/node-gyp";
@@ -4072,13 +4207,13 @@ let
         sha512 = "QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==";
       };
     };
-    "@npmcli/run-script-1.8.4" = {
+    "@npmcli/run-script-1.8.5" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "1.8.4";
+      version = "1.8.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.4.tgz";
-        sha512 = "Yd9HXTtF1JGDXZw0+SOn+mWLYS0e7bHBHVC/2C8yqs4wUrs/k8rwBSinD7rfk+3WG/MFGRZKxjyoD34Pch2E/A==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz";
+        sha512 = "NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==";
       };
     };
     "@oclif/color-0.1.2" = {
@@ -4153,15 +4288,6 @@ let
         sha512 = "tuzhvxxRtfLnWa96klngXBi5IwHt9S/twedCbQhl9dYIKTFMHI1BcOQcPra6ylct+M+b9jhEF5sjWLv78tB6tw==";
       };
     };
-    "@oclif/plugin-help-2.2.3" = {
-      name = "_at_oclif_slash_plugin-help";
-      packageName = "@oclif/plugin-help";
-      version = "2.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-2.2.3.tgz";
-        sha512 = "bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==";
-      };
-    };
     "@oclif/plugin-help-3.2.2" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
@@ -4234,22 +4360,22 @@ let
         sha512 = "fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==";
       };
     };
-    "@octokit/graphql-4.6.1" = {
+    "@octokit/graphql-4.6.2" = {
       name = "_at_octokit_slash_graphql";
       packageName = "@octokit/graphql";
-      version = "4.6.1";
+      version = "4.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.1.tgz";
-        sha512 = "2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==";
+        url = "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.2.tgz";
+        sha512 = "WmsIR1OzOr/3IqfG9JIczI8gMJUMzzyx5j0XXQ4YihHtKlQc+u35VpVoOXhlKAlaBntvry1WpAzPl/a+s3n89Q==";
       };
     };
-    "@octokit/openapi-types-6.0.0" = {
+    "@octokit/openapi-types-7.2.3" = {
       name = "_at_octokit_slash_openapi-types";
       packageName = "@octokit/openapi-types";
-      version = "6.0.0";
+      version = "7.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-6.0.0.tgz";
-        sha512 = "CnDdK7ivHkBtJYzWzZm7gEkanA7gKH6a09Eguz7flHw//GacPJLmkHA3f3N++MJmlxD1Fl+mB7B32EEpSCwztQ==";
+        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.2.3.tgz";
+        sha512 = "V1ycxkR19jqbIl3evf2RQiMRBvTNRi+Iy9h20G5OP5dPfEF6GJ1DPlUeiZRxo2HJxRr+UA4i0H1nn4btBDPFrw==";
       };
     };
     "@octokit/plugin-enterprise-rest-6.0.1" = {
@@ -4261,15 +4387,6 @@ let
         sha512 = "93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==";
       };
     };
-    "@octokit/plugin-paginate-rest-1.1.2" = {
-      name = "_at_octokit_slash_plugin-paginate-rest";
-      packageName = "@octokit/plugin-paginate-rest";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz";
-        sha512 = "jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==";
-      };
-    };
     "@octokit/plugin-paginate-rest-2.13.3" = {
       name = "_at_octokit_slash_plugin-paginate-rest";
       packageName = "@octokit/plugin-paginate-rest";
@@ -4288,22 +4405,13 @@ let
         sha512 = "4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==";
       };
     };
-    "@octokit/plugin-rest-endpoint-methods-2.4.0" = {
+    "@octokit/plugin-rest-endpoint-methods-5.3.1" = {
       name = "_at_octokit_slash_plugin-rest-endpoint-methods";
       packageName = "@octokit/plugin-rest-endpoint-methods";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz";
-        sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
-      };
-    };
-    "@octokit/plugin-rest-endpoint-methods-5.0.0" = {
-      name = "_at_octokit_slash_plugin-rest-endpoint-methods";
-      packageName = "@octokit/plugin-rest-endpoint-methods";
-      version = "5.0.0";
+      version = "5.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.0.0.tgz";
-        sha512 = "Jc7CLNUueIshXT+HWt6T+M0sySPjF32mSFQAK7UfAg8qGeRI6OM1GSBxDLwbXjkqy2NVdnqCedJcP1nC785JYg==";
+        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.3.1.tgz";
+        sha512 = "3B2iguGmkh6bQQaVOtCsS0gixrz8Lg0v4JuXPqBcFqLKuJtxAUf3K88RxMEf/naDOI73spD+goJ/o7Ie7Cvdjg==";
       };
     };
     "@octokit/request-5.4.15" = {
@@ -4315,15 +4423,6 @@ let
         sha512 = "6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag==";
       };
     };
-    "@octokit/request-error-1.2.1" = {
-      name = "_at_octokit_slash_request-error";
-      packageName = "@octokit/request-error";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz";
-        sha512 = "+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==";
-      };
-    };
     "@octokit/request-error-2.0.5" = {
       name = "_at_octokit_slash_request-error";
       packageName = "@octokit/request-error";
@@ -4333,40 +4432,22 @@ let
         sha512 = "T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==";
       };
     };
-    "@octokit/rest-16.43.2" = {
+    "@octokit/rest-18.5.5" = {
       name = "_at_octokit_slash_rest";
       packageName = "@octokit/rest";
-      version = "16.43.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz";
-        sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
-      };
-    };
-    "@octokit/rest-18.5.2" = {
-      name = "_at_octokit_slash_rest";
-      packageName = "@octokit/rest";
-      version = "18.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.2.tgz";
-        sha512 = "Kz03XYfKS0yYdi61BkL9/aJ0pP2A/WK5vF/syhu9/kY30J8He3P68hv9GRpn8bULFx2K0A9MEErn4v3QEdbZcw==";
-      };
-    };
-    "@octokit/types-2.16.2" = {
-      name = "_at_octokit_slash_types";
-      packageName = "@octokit/types";
-      version = "2.16.2";
+      version = "18.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz";
-        sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
+        url = "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.5.tgz";
+        sha512 = "Py9sWvxBGeAwNY8UnhxP6jnq7aflvQ0uQ6gmZObyJLR9hmd5NEz9piu/A77cxV6+0l9UNACJVXX6FOnl5LIcPw==";
       };
     };
-    "@octokit/types-6.13.0" = {
+    "@octokit/types-6.16.2" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "6.13.0";
+      version = "6.16.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-6.13.0.tgz";
-        sha512 = "W2J9qlVIU11jMwKHUp5/rbVUeErqelCsO5vW5PKNb7wAXQVUz87Rc+imjlEvpvbH8yUb+KHmv8NEjVZdsdpyxA==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-6.16.2.tgz";
+        sha512 = "wWPSynU4oLy3i4KGyk+J1BLwRKyoeW2TwRHgwbDz17WtVFzSK2GOErGliruIx8c+MaYtHSYTx36DSmLNoNbtgA==";
       };
     };
     "@open-policy-agent/opa-wasm-1.2.0" = {
@@ -4423,310 +4504,310 @@ let
         sha512 = "+0P+PrP9qSFVaayNdek4P1OAGE+PEl2SsufuHDRmUpOY25Wzjo7Atyar56Trjc32jkNy4lID6ZFT6BahsR9P9A==";
       };
     };
-    "@ot-builder/bin-composite-types-1.0.4" = {
+    "@ot-builder/bin-composite-types-1.0.8" = {
       name = "_at_ot-builder_slash_bin-composite-types";
       packageName = "@ot-builder/bin-composite-types";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.0.4.tgz";
-        sha512 = "mza6bLi18CosKPWDxbK+4BZqfzWRSVoiXmW9Z+UN/YvqRmUJD+Dc5C+t1M9KgtLAwKjsNSLPSqbPeOJwcBxQnw==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.0.8.tgz";
+        sha512 = "YVSC2OhhBYx4nTELZrS/DKbdseDhCIlyMiey4Zgc6VKQgC33ZXaGB9gUnAT/CHuGJINQJoKtsgyRA3nkd+2QJw==";
       };
     };
-    "@ot-builder/bin-util-1.0.4" = {
+    "@ot-builder/bin-util-1.0.8" = {
       name = "_at_ot-builder_slash_bin-util";
       packageName = "@ot-builder/bin-util";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.0.4.tgz";
-        sha512 = "MKlDHSyKNV8WKWLa9pL8pw1OIJ3lWO8zOjnYM/Had3RgqJMDtk98j1eYuB8VrX8Hbq3ur9NQ7Ycq+xDaGGjiyA==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.0.8.tgz";
+        sha512 = "GkyOMuUD3AQGCguvyaAgraEc7DMsKAHoujFPSUN76h6C9LUYGmayCDsbHjZoInkb90+m2OXcZ9hqSCIThZ6dcA==";
       };
     };
-    "@ot-builder/cli-help-shower-1.0.4" = {
+    "@ot-builder/cli-help-shower-1.0.8" = {
       name = "_at_ot-builder_slash_cli-help-shower";
       packageName = "@ot-builder/cli-help-shower";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.0.4.tgz";
-        sha512 = "Yz27agTVcxA4jblNqaiy6ULcx49c2CxIhOZdbL90d95d0ehDDiODeUuH2FlGcHE//KTUIOYGmM4KkOIE4iRVzQ==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.0.8.tgz";
+        sha512 = "MXbzoFtpSbU9eQozzynlEPRjUBDbtDq187SylpYIeV7FARfkaKd7f8M6FDH+gqeNMeAUcivnMYifAC+nz8bWOA==";
       };
     };
-    "@ot-builder/cli-proc-1.0.4" = {
+    "@ot-builder/cli-proc-1.0.8" = {
       name = "_at_ot-builder_slash_cli-proc";
       packageName = "@ot-builder/cli-proc";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.0.4.tgz";
-        sha512 = "6J2QTTHd4CkJqmwyooYZpAc6czWo4O+Fp+7SRGcFPrR2PdvprafxPv+vFkonnLLuRtiZguEt6LjCgkYK3oReoA==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.0.8.tgz";
+        sha512 = "kOGCHlc7cSI8J24gCRHXNbl4IvsjdorRUX9L3HtDDH9pVpHqVrlb3X2opcNVtPo0kYbKidANEGf76c/WRi0ERQ==";
       };
     };
-    "@ot-builder/cli-shared-1.0.4" = {
+    "@ot-builder/cli-shared-1.0.8" = {
       name = "_at_ot-builder_slash_cli-shared";
       packageName = "@ot-builder/cli-shared";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.0.4.tgz";
-        sha512 = "tmngc7PhETp+cwMWl7Jwxg90X9ArMdFNvAt2CMg/TPnz0wGV91PQaYdOLa8Z2spRAqg6CBsKv2P85UopeypImA==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.0.8.tgz";
+        sha512 = "B5c0RqrRkB8gb7h0+mX+JQAP6I8TtnLD8JiYRGMo+JszI2anh7ecD3XbVgMF0oJi8e5r5+p0xq8sDrJi4qy9SQ==";
       };
     };
-    "@ot-builder/common-impl-1.0.4" = {
+    "@ot-builder/common-impl-1.0.8" = {
       name = "_at_ot-builder_slash_common-impl";
       packageName = "@ot-builder/common-impl";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.0.4.tgz";
-        sha512 = "0yxLwOblp3AsyCtov7UQhAY+brguEVy8ilfpETOlkAmLSjruhsvjqjF8u7BkaBRQ4Uf13J2/15jQcAghMXLR3g==";
+        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.0.8.tgz";
+        sha512 = "ho7WtOf+MiMq6jjF6LbepqTTnyzEv6OeNTT1erkdWb52QETZnINYtbMks/HVPYHnGMZqy62dmN8f1PSe74yD0A==";
       };
     };
-    "@ot-builder/errors-1.0.4" = {
+    "@ot-builder/errors-1.0.8" = {
       name = "_at_ot-builder_slash_errors";
       packageName = "@ot-builder/errors";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.0.4.tgz";
-        sha512 = "xS7D4uP5Ri0lzcRbsfh6s3+g33zXHd/7NrQ5lg4paPksoEUmwGRooJTP+plSTLSaKQxd58d8V5SkYCXd3wf2AA==";
+        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.0.8.tgz";
+        sha512 = "I8XzcO4tg8rWKFTS3nHKvPOE27uGH8fZLy9HsqU4yw8rGMYUo1EDxabReQ8v53DhrIlpbObW3/nSrGF4LT6m8Q==";
       };
     };
-    "@ot-builder/io-bin-cff-1.0.4" = {
+    "@ot-builder/io-bin-cff-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-cff";
       packageName = "@ot-builder/io-bin-cff";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.0.4.tgz";
-        sha512 = "bUurjiAADRPRfzqb9eQK+AqpIfGCDFhJ+E+i+Ok29lfrkeE5RjnTu4Tsmvl7rcSJlawWLGG6ZWI4NT//TMDlEw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.0.8.tgz";
+        sha512 = "rHp9PFGeoblPwuCZd/i5l/CgNGv9hWEDQHZP11uQcO45H83iZugVxaT65ChBHoKDFp5x/+oxLSxp6kMu/7diZg==";
       };
     };
-    "@ot-builder/io-bin-encoding-1.0.4" = {
+    "@ot-builder/io-bin-encoding-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-encoding";
       packageName = "@ot-builder/io-bin-encoding";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.0.4.tgz";
-        sha512 = "QxrM/J3UTqHG5AtbR6VpbFeKo89Wj8jaGUUaZu0ifht81om9dfcuf/TVQ0D78eqeN7VqUXoP6uSYj4ECSo1uAg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.0.8.tgz";
+        sha512 = "bP7U7cr3fkdM3jYtW6fSgBfqjIcVKJu3iZfAOtcP0o+aID6FbETWGpxYrfGcJuvjcQLDPhc0pda1Ag/ypeTnvg==";
       };
     };
-    "@ot-builder/io-bin-ext-private-1.0.4" = {
+    "@ot-builder/io-bin-ext-private-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-ext-private";
       packageName = "@ot-builder/io-bin-ext-private";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.0.4.tgz";
-        sha512 = "c46Oa8LKEu8ULgCSYRCoToDA1LXuvb137TT6UugXJIl6JM53vMzbAQqFrMMlr5FY0RrItYumiS2YWQL8Vr9viw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.0.8.tgz";
+        sha512 = "RTCaiGvbO340gLHh2omj62v0ysOE+rEdcVuISiIb08fo0azLsi+MvzQdwprCOc1+8s5wY/peDCQ38HN/gYC7dA==";
       };
     };
-    "@ot-builder/io-bin-font-1.0.4" = {
+    "@ot-builder/io-bin-font-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-font";
       packageName = "@ot-builder/io-bin-font";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.0.4.tgz";
-        sha512 = "6gS5lEyAlz/DQi83roUap5buRDiublVwIqUJlvQ5qWF2hp9xQel6HoVHsdL4hfOhMBBqHBTgiM64cqeK+MV5KA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.0.8.tgz";
+        sha512 = "6cL1cn7Qmzu1bsx4hr2aqKCMVu1+Si2xA8uGEVOryD94odjX76HJMta4bjH9P///PcQdIeJDczpk1s21LPg6Cw==";
       };
     };
-    "@ot-builder/io-bin-glyph-store-1.0.4" = {
+    "@ot-builder/io-bin-glyph-store-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-glyph-store";
       packageName = "@ot-builder/io-bin-glyph-store";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.0.4.tgz";
-        sha512 = "gAYsXuTzV9Xt87AI35tD0ZxLgF/20qgmITZXBW2fe8yR6lSzZX+zsU38w+2/6zW2UoYRyitck9Hikkw3TJ7VAw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.0.8.tgz";
+        sha512 = "vqr4pyK1oa3ADPUydKQgWZHKk1WAjO7hmMYARbqKzUCPHrqrr2dXJHMW8RNg+JhQykhG0ibHf6NdjHklBzTWIQ==";
       };
     };
-    "@ot-builder/io-bin-layout-1.0.4" = {
+    "@ot-builder/io-bin-layout-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-layout";
       packageName = "@ot-builder/io-bin-layout";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.0.4.tgz";
-        sha512 = "Iscx7nHRLeQHxVdlbb7nj+xTq3gZf6dftKT3EtjCBz9KtYYSqAkEi4Wq2UEBrkrlajz+z/ivvrwmv42hqOQTYw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.0.8.tgz";
+        sha512 = "0xrUl6WPQLpRwsVQXh1aBF28f7gJ0OR7N9xK5CZLsEku6R/uEGPSR0K9xlw8L+74J/ZWCX/WkbNgvvNUfyQLcw==";
       };
     };
-    "@ot-builder/io-bin-metadata-1.0.4" = {
+    "@ot-builder/io-bin-metadata-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-metadata";
       packageName = "@ot-builder/io-bin-metadata";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.0.4.tgz";
-        sha512 = "Hvd39Yut521rd09pI4zYQMeXTeOagiTEjDCE+3dzON6Prakb+tyA8E4M7itRY9dp+13kkLGDHF1CYZRLyAkb0g==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.0.8.tgz";
+        sha512 = "hgkeZy8JI5pgr3B0ayLDHxOxuIDRSnK/PRxZBydOCsArcW61N8cEPv/DzMKS3iNY0hpTUghZ7INLWC5+0KL63g==";
       };
     };
-    "@ot-builder/io-bin-metric-1.0.4" = {
+    "@ot-builder/io-bin-metric-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-metric";
       packageName = "@ot-builder/io-bin-metric";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.0.4.tgz";
-        sha512 = "wF6EtrR1g2uJz8f/bdAWTpcaaDFpPi52QcdW7gruw5mPx53H0wWZTaDT3S4MaJGtx0hxkQjELeJt2zN9VPjiwg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.0.8.tgz";
+        sha512 = "dKtTJ8AB1VWj/WYv9i+qhm6uKcwdC++MqQiaTLA7/eCnG9O2QjfTbOptYr6KI3+BKwe6/tbyzrqj7G5ZaVmtKA==";
       };
     };
-    "@ot-builder/io-bin-name-1.0.4" = {
+    "@ot-builder/io-bin-name-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-name";
       packageName = "@ot-builder/io-bin-name";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.0.4.tgz";
-        sha512 = "3mjxpyTVcffSiKLQqHdMwMNe9dyE/mCYexKi7LZkxLyXk/ZsYBOapZKld9jXmpF5KVXJO37FopoheTZGW44RHw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.0.8.tgz";
+        sha512 = "p93QSIEoBXtRyBEWI4KLuTTh3EtJTsoSeM7Ifopga7sCPDWFky5GeRqTq+Mvlk0cPiJtV24qdPdaIem5r5PBmg==";
       };
     };
-    "@ot-builder/io-bin-sfnt-1.0.4" = {
+    "@ot-builder/io-bin-sfnt-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-sfnt";
       packageName = "@ot-builder/io-bin-sfnt";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.0.4.tgz";
-        sha512 = "/24bZ7oXS3G4nOOxxapGmvq2bQF9E5k3zybsO9ettu2632ZYkLP2s4imwzTVfHk6dpikEgzhxwXCumdbTOnZjw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.0.8.tgz";
+        sha512 = "2yogXf3cdd6dI022HPU6lnzL10KU4DOOALkeg84qQCmse0WZdhZAKhdn08sqHIJ+EDjkfpRjHld0F96sKH8e0g==";
       };
     };
-    "@ot-builder/io-bin-ttf-1.0.4" = {
+    "@ot-builder/io-bin-ttf-1.0.8" = {
       name = "_at_ot-builder_slash_io-bin-ttf";
       packageName = "@ot-builder/io-bin-ttf";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.0.4.tgz";
-        sha512 = "ZtEDJYgS/Q/ag7Zw3/HbLJJtQJhgxtewmpUCXaPlIATxiZkwnmGJu4pTfzxr+ji2H/je2hBRZRPKLL9eKzyokg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.0.8.tgz";
+        sha512 = "TaX7s9UFyoyajgig7944DgWFmEzzcGjVGz3qz3olgAZcHhrgLoqIlmaxt1jEHgb7LZx3wG4G9WwcSl6arqMdAQ==";
       };
     };
-    "@ot-builder/ot-1.0.4" = {
+    "@ot-builder/ot-1.0.8" = {
       name = "_at_ot-builder_slash_ot";
       packageName = "@ot-builder/ot";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.0.4.tgz";
-        sha512 = "xwZJ0MEv9vsx4f/88a5ZwX5bsgEg6h5WLXxoCxAZwzTnzbIS0m2WYJ8OqBhJcBK5VZ56C13exFkvIS8l5lgVkg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.0.8.tgz";
+        sha512 = "X2/4GcLGA1dTaR2+iHdhGn64cCLQJ9gZdoAVS3DZjMJIyyScFDVLAGhYHPLYk97EDQ5Pm7RnQNoY11U5igm28g==";
       };
     };
-    "@ot-builder/ot-encoding-1.0.4" = {
+    "@ot-builder/ot-encoding-1.0.8" = {
       name = "_at_ot-builder_slash_ot-encoding";
       packageName = "@ot-builder/ot-encoding";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.0.4.tgz";
-        sha512 = "7TPdtXtRaZ49j2Ho2+L54/eR728Pwvu+fvSqva8Ly7KzH1epyGm2NixgvaSqs/tRpwydnvvqp2odtCwTSzOAbA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.0.8.tgz";
+        sha512 = "dRmxL8WUfjZAjd8RcSmd3wI442Gzy9i4X7Ock2rj0ZwVxlfQB7F3dx71IVgvSRbrkz2Ny+7htW3eq+V0be+cmw==";
       };
     };
-    "@ot-builder/ot-ext-private-1.0.4" = {
+    "@ot-builder/ot-ext-private-1.0.8" = {
       name = "_at_ot-builder_slash_ot-ext-private";
       packageName = "@ot-builder/ot-ext-private";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.0.4.tgz";
-        sha512 = "eAu9kMaAGwgMxWYtl7XMpzEFlO5PLeuCxdIhR2QSG/JVSD6HpHMqxMUHM5qgP2o58PjkTUPiuEiTMvi5tMRWDg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.0.8.tgz";
+        sha512 = "uloryF2vSRkIGHPqLN6FkAb1oZ6xkTR2w407PCgVYO9Pkq/j5d8ZHGM80VOYukfHFUdqskFyYcmojF/0WUA06A==";
       };
     };
-    "@ot-builder/ot-glyphs-1.0.4" = {
+    "@ot-builder/ot-glyphs-1.0.8" = {
       name = "_at_ot-builder_slash_ot-glyphs";
       packageName = "@ot-builder/ot-glyphs";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.0.4.tgz";
-        sha512 = "MWa871aCDPaA+2+tThDq7JdNLEeYQvO7yJOYmsKoA4pBxbGSE4PpI8FJL/NtRizShNxsjRmbYbnprm72NBiTOw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.0.8.tgz";
+        sha512 = "XP7pRUJPq/2dbDqzEAHWIFvwIdVK+BkZ/xPV75hGECEIquh7MpFKAXtLjRyFpVU+RRD0Xplmj/1P4W0047A4JQ==";
       };
     };
-    "@ot-builder/ot-layout-1.0.4" = {
+    "@ot-builder/ot-layout-1.0.8" = {
       name = "_at_ot-builder_slash_ot-layout";
       packageName = "@ot-builder/ot-layout";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.0.4.tgz";
-        sha512 = "Qxy7F/fX1fD4ZyCdPb7gFBhpeOA3d2G94HK32mlVlQPXcXOkXJOT4z0fvMraWch14a/eVr29IEDeOK/uhyYmug==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.0.8.tgz";
+        sha512 = "fRazZF4bTzyeYjFivbWim6/+dsWeGI6ZW6mCES5GmgidHzcFw2OrvDO1VYIKg5KSafjEZxe4QcMrF86bFkSDTg==";
       };
     };
-    "@ot-builder/ot-metadata-1.0.4" = {
+    "@ot-builder/ot-metadata-1.0.8" = {
       name = "_at_ot-builder_slash_ot-metadata";
       packageName = "@ot-builder/ot-metadata";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.0.4.tgz";
-        sha512 = "OZbrRtmSQte/OuL3pjUaIhD3Ono+W42hC7iQziLO0eP34uNeSEQNbNUNI6W3h8HuMSttbtJaLpJpDdmCPFi8sw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.0.8.tgz";
+        sha512 = "p0z1ywytkvDVUivKV9m8dE7jFztnBFvn/WIqXgpxaqhzXcDIc5mDl1hca/1DJU1ZAwdR03fifEsniCz+3Vaynw==";
       };
     };
-    "@ot-builder/ot-name-1.0.4" = {
+    "@ot-builder/ot-name-1.0.8" = {
       name = "_at_ot-builder_slash_ot-name";
       packageName = "@ot-builder/ot-name";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.0.4.tgz";
-        sha512 = "I4RU5F5XCCvkWHNa8uJ+bx282QVQ0n0jadAGZLcl5YIUwWkJ6Ih6kZNlkMfTsw/YMVakv3CHrCfh7GfxWMbbJA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.0.8.tgz";
+        sha512 = "P9X7Fwg7s27n4eTXJqh68Cfrg2K5x28JaIINdgIo4wnRNVfmc/JjH/Z5Rz5U3ahytUdY6+pS+YJAW9BYJ2DJOw==";
       };
     };
-    "@ot-builder/ot-sfnt-1.0.4" = {
+    "@ot-builder/ot-sfnt-1.0.8" = {
       name = "_at_ot-builder_slash_ot-sfnt";
       packageName = "@ot-builder/ot-sfnt";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.0.4.tgz";
-        sha512 = "m8ted+UhMW2tlccQ8+N0xzlN6lmKs/NBO93/BTaaxQt7CEjJcOYAncffa0TrFPQbCoAR4hyliNrogkLK81gUgg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.0.8.tgz";
+        sha512 = "tfKv7EuSVKWgKFKOcdCMqWA6tCTf+bye3kWyYYJaG149w1YpzFqMMYk1uB95rL6cjJWvkphZdN2BSbEaUcD+sg==";
       };
     };
-    "@ot-builder/ot-standard-glyph-namer-1.0.4" = {
+    "@ot-builder/ot-standard-glyph-namer-1.0.8" = {
       name = "_at_ot-builder_slash_ot-standard-glyph-namer";
       packageName = "@ot-builder/ot-standard-glyph-namer";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.0.4.tgz";
-        sha512 = "cyMmKxbkFaGDoj6qTjykniMDAhihyHYJGjhrkCMyiYWbV259doWl476lGANI/AyPQsDbjS4bXF8QJOUpQBM6dA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.0.8.tgz";
+        sha512 = "sNEu9Ye5IdISzSaLnyNl/0ZwQY8DLUfvGuQs45JPT84WTpkB7c1BpndlSfcCDZaqdtTXN/tNS2fAN7TJm1g9Ig==";
       };
     };
-    "@ot-builder/prelude-1.0.4" = {
+    "@ot-builder/prelude-1.0.8" = {
       name = "_at_ot-builder_slash_prelude";
       packageName = "@ot-builder/prelude";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.0.4.tgz";
-        sha512 = "3SF8Y7WP5su2bCpzCbmKJv0zh6GRSbFQTGgk6KvZYt33ruZGpHyjJnlZUhSO9LsCyzR4B72/UnQK2UoZNcaI5g==";
+        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.0.8.tgz";
+        sha512 = "wknxzHrwwcN4m32P1FmYScTD03Vtj5mQWCx21NCzcsUyEfGasUvTzoPhOw5qUdklN3azFSjByfjpMUAjCRfnJg==";
       };
     };
-    "@ot-builder/primitive-1.0.4" = {
+    "@ot-builder/primitive-1.0.8" = {
       name = "_at_ot-builder_slash_primitive";
       packageName = "@ot-builder/primitive";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.0.4.tgz";
-        sha512 = "RO+s4TXioRd+BQadkyhEizu6/1sqDkbpvtwz4uLT6ncutB7QYYutCIC9N2BrArUHy6j30lWhv7mQuUjJsgzQOw==";
+        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.0.8.tgz";
+        sha512 = "jJydJoA67wop43AVcH+E+5Q2DU7epll1J6krs6Oz3Rrs7x2RB5fc79nWJMm8bHpKPB0xnA3zsLiJjERB7Ud9dw==";
       };
     };
-    "@ot-builder/rectify-1.0.4" = {
+    "@ot-builder/rectify-1.0.8" = {
       name = "_at_ot-builder_slash_rectify";
       packageName = "@ot-builder/rectify";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.0.4.tgz";
-        sha512 = "hHvlBACzKLDT/4bixeacWzdAXi7WbGzn/gJim0q5FhrJ6wuy6jMqcASUgfuxDu/tn4mLVL5BglKSr1xcS8C87g==";
+        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.0.8.tgz";
+        sha512 = "RFD/oA3kTviuj7WHRynyMT4zBFNB8tSifrMjQxyY28BEWckieX27RM9+QynfuHg07s1pZ/mZC5g3wLwjdeE5+w==";
       };
     };
-    "@ot-builder/stat-glyphs-1.0.4" = {
+    "@ot-builder/stat-glyphs-1.0.8" = {
       name = "_at_ot-builder_slash_stat-glyphs";
       packageName = "@ot-builder/stat-glyphs";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.0.4.tgz";
-        sha512 = "Dn6BxqpJaLC0dz73OsxEYV99zjc2hkY0FPt1u9SYgN5zWpmZeDqDLo18UOH5WsWJCd0AI6pRagSAROHA9/c1jw==";
+        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.0.8.tgz";
+        sha512 = "rSQPs0laN2H+jBTKFA/q9+rcOJO9bJVHvCxHu74hfwjvlpysWbaN/+9PwMb5mFIP/GzToYfYhgZ6e7qBNRSM+g==";
       };
     };
-    "@ot-builder/trace-1.0.4" = {
+    "@ot-builder/trace-1.0.8" = {
       name = "_at_ot-builder_slash_trace";
       packageName = "@ot-builder/trace";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.0.4.tgz";
-        sha512 = "vQKQtK6WbaSTUbr6h18bWyOSRpynVgo6WPPmq3xv4HGWc/hv+61bOwFrNl0KHeoZCWmlATVRdiyWOr6et5zPMA==";
+        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.0.8.tgz";
+        sha512 = "VGPt+1UT+yDzouUDugMW2z7tFED+sHJKT5mOwl6N2t/+Er6gaxrRlfYKvdHqdgFKIg8oKytoZS3wOauWiVF02w==";
       };
     };
-    "@ot-builder/var-store-1.0.4" = {
+    "@ot-builder/var-store-1.0.8" = {
       name = "_at_ot-builder_slash_var-store";
       packageName = "@ot-builder/var-store";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.0.4.tgz";
-        sha512 = "EiPpjeD1SownKU9e5T0+Fja/zuTuDPP5m+bSVMTPW77ROOFJMIbUseZmoG+Y4PqF3V43Kue9WRPLl9eipnHpcg==";
+        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.0.8.tgz";
+        sha512 = "Wo3xfMDzmlqSNEn5YOO8hxW7X9YTw6fCUmfUmfaOAmNYRWsVHnLwTSnu92M6p0shMqVHzgqhCHDxG7KZAuSNwQ==";
       };
     };
-    "@ot-builder/variance-1.0.4" = {
+    "@ot-builder/variance-1.0.8" = {
       name = "_at_ot-builder_slash_variance";
       packageName = "@ot-builder/variance";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.0.4.tgz";
-        sha512 = "X4a/zUGeDq6HlVD2jln1+Eb0uWs6Jhm4nRmX5/Ny9MYSa6kImQczika3gdU2qRg8+hnf182gqsDiXueiSukflw==";
+        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.0.8.tgz";
+        sha512 = "GaWs/PMrzkAJJmf5Wm0qr09AHYP9ydNk6J9KEs7GXH7gBm6X5pl/V6D105u+6Tx+QSGotRvc8einQm/vazug7A==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -4819,13 +4900,13 @@ let
         sha512 = "uc6FmPEegAZawSHjUMFQwU7EjaDn7zy1iD/KD/wBROL9F4378OES8MKMYHoRAKT61Fk7LxVKZSDR5VespMQiqw==";
       };
     };
-    "@primer/octicons-12.1.0" = {
+    "@primer/octicons-14.1.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "12.1.0";
+      version = "14.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-12.1.0.tgz";
-        sha512 = "jayKLMTCx/0zh4fjYmkxdlEgQ8STwevn5S48fkvi/03asITmBkaYAMPrUgO8VNSQkSPHIEuc3oTLXgh+JwH0UQ==";
+        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-14.1.0.tgz";
+        sha512 = "I/gRlM2meKPKXFN/1fxLoigPXvAUsivxRCih7vgeO7o4qrNNsl6Ah85l3UBbFi0t7ttjMde2+bS1A32a1Hu0BA==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -4918,13 +4999,13 @@ let
         sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
       };
     };
-    "@putdotio/api-client-8.15.3" = {
+    "@putdotio/api-client-8.16.0" = {
       name = "_at_putdotio_slash_api-client";
       packageName = "@putdotio/api-client";
-      version = "8.15.3";
+      version = "8.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.15.3.tgz";
-        sha512 = "Z1MK912OTC+InURygDElVFAbnAdA8x9in+6GSHb/8rzWmp5iDA7PjU85OCOYH8hBfAwKlWINhR372tUUnUHImg==";
+        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.16.0.tgz";
+        sha512 = "9a00sd5aArb5s1R8MBsHULP3gcRsD9ivokRUCtS3oBf8M53u9XUAx/D79sehhiWbMR20DYxwUFfSoEvM/daq3Q==";
       };
     };
     "@reach/router-1.3.4" = {
@@ -4972,13 +5053,13 @@ let
         sha512 = "RB6vWO78v6c+SW/3bZh+XZMr4nGdJKAiPGsBALuUZnLuCiQ7aXCT1AuFHqnfS2gyXbEUEj+kw8p4ux8KdAfs3A==";
       };
     };
-    "@redocly/openapi-core-1.0.0-beta.44" = {
+    "@redocly/openapi-core-1.0.0-beta.49" = {
       name = "_at_redocly_slash_openapi-core";
       packageName = "@redocly/openapi-core";
-      version = "1.0.0-beta.44";
+      version = "1.0.0-beta.49";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.44.tgz";
-        sha512 = "9HNnh1MzvMsLK1liuidFBqWiAsZ2Yg3RY58fcEsy0QruSMdDbn7SoeI1qnXe6O+BkBS+vAP4oVzZDMHCMKGsOQ==";
+        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.49.tgz";
+        sha512 = "SwCtQeyovcV7cS6YQoe5GWX3hWXAZrnrZQtQv0YW91CtrZMBdk5qA5eQ9Mkkbk6YOKKCWkc8yD+KdkRATlyPNw==";
       };
     };
     "@redocly/react-dropdown-aria-2.0.11" = {
@@ -5008,6 +5089,15 @@ let
         sha512 = "PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==";
       };
     };
+    "@rollup/plugin-commonjs-18.1.0" = {
+      name = "_at_rollup_slash_plugin-commonjs";
+      packageName = "@rollup/plugin-commonjs";
+      version = "18.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-18.1.0.tgz";
+        sha512 = "h3e6T9rUxVMAQswpDIobfUHn/doMzM9sgkMrsMWCFLmB84PSoC8mV8tOloAJjSRwdqhXBqstlX2BwBpHJvbhxg==";
+      };
+    };
     "@rollup/plugin-inject-4.0.2" = {
       name = "_at_rollup_slash_plugin-inject";
       packageName = "@rollup/plugin-inject";
@@ -5071,13 +5161,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-11.2.9" = {
+    "@schematics/angular-12.0.2" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "11.2.9";
+      version = "12.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.9.tgz";
-        sha512 = "yiuWCf+naAaS8cib2a9KKAhkwLx4LVnxE4lpF1Q2mEE5znQ7npYwzQYxgMHD70eMuSrki/L5nM9s7ZdVr5OKyg==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-12.0.2.tgz";
+        sha512 = "DMUfp7226QY2FkJeBm1xAUUKRX9umVCRhqEcku4Zaig6PylVd9LZFLjZvGKA4Vq2DkYRtClll3z5FIhAOSY3SQ==";
       };
     };
     "@schematics/schematics-0.1102.6" = {
@@ -5089,15 +5179,6 @@ let
         sha512 = "x77kbJL/HqR4gx0tbt35VCOGLyMvB7jD/x7eB1njhQRF8E/xynEOk3i+7A5VmK67QP5NJxU8BQKlPkJ55tBDmg==";
       };
     };
-    "@schematics/update-0.1102.9" = {
-      name = "_at_schematics_slash_update";
-      packageName = "@schematics/update";
-      version = "0.1102.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1102.9.tgz";
-        sha512 = "JIbuvX4a87h7G9d3lsKTUceKXhE/lXtJEkGaQ2jv2sxFRxBkmMO2o2OmsKRDpIMtSRs7VTUTccK6RAOVZJX66w==";
-      };
-    };
     "@segment/loosely-validate-event-2.0.0" = {
       name = "_at_segment_slash_loosely-validate-event";
       packageName = "@segment/loosely-validate-event";
@@ -5125,13 +5206,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-3.8.3" = {
+    "@serverless/components-3.10.1" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "3.8.3";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-3.8.3.tgz";
-        sha512 = "rdteMdPgsnJdfL8AcCguB1aFEII3cL2GL5XoOLwYUTJIZyJCC0kCkYl/gbN1H67XDASr5KD0eDyf8Dw0oCyfNA==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-3.10.1.tgz";
+        sha512 = "Kgs9sBcsgxW4l0j8H5Bh8ROV4MmeFEiEwcj8OjFI4MyGj/nNw8dQA5ArpF2COJCgVDLwYVqnRGOCR+tEF0TlnA==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -5143,13 +5224,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-4.5.3" = {
-      name = "_at_serverless_slash_enterprise-plugin";
-      packageName = "@serverless/enterprise-plugin";
-      version = "4.5.3";
+    "@serverless/dashboard-plugin-5.1.4" = {
+      name = "_at_serverless_slash_dashboard-plugin";
+      packageName = "@serverless/dashboard-plugin";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.5.3.tgz";
-        sha512 = "/JwlHoBSmxP8bAaWD3dIGePkJU1sLRHhEgvMyXuDo9i9tN5D6kyZypM2GUVNx4MpUR/XPJtCUgCSp5xI4aSsxg==";
+        url = "https://registry.npmjs.org/@serverless/dashboard-plugin/-/dashboard-plugin-5.1.4.tgz";
+        sha512 = "f6uSdUSfZmUhVxLjqwYMNUYi3EShakPQwzipCpVEChcB0AKZG6mhu2NBfTFeSBASvR2l1Mq8tqVgHoTXp9yq4Q==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -5170,13 +5251,13 @@ let
         sha512 = "8jP72e0POFGEW7HKtDzK0qt1amYtvlB7bYSal8JUCXbeY2qk3xRJZuLWCZBBKRGz4ha4eBNjlz7iniACb9biLg==";
       };
     };
-    "@serverless/platform-client-china-2.1.10" = {
+    "@serverless/platform-client-china-2.1.13" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "2.1.10";
+      version = "2.1.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-2.1.10.tgz";
-        sha512 = "+ckY3WfN+J4gCYKK25VnoZ20b0jVmnb/v9UKG48YTPoS6MWDud6nbAUUQuNbL5UK4dbDFKEVsnFK42XEsBjfkg==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-2.1.13.tgz";
+        sha512 = "kQuWjHiBeslZ1SkIFzXRoEi+CCunUEBOyJRU7Zeg5l4vV4U63G8Ax1waMXxoBILgYK5cDG0F/y+UoSAvEhJmZw==";
       };
     };
     "@serverless/template-1.1.4" = {
@@ -5197,31 +5278,40 @@ let
         sha512 = "aI/cpGVUhWbJUR8QDMtPue28EU4ViG/L4/XKuZDfAN2uNQv3NRjwEFIBi/cxyfQnMTYVtMLe9wDjuwzOT4ENzA==";
       };
     };
-    "@serverless/utils-4.0.1" = {
+    "@serverless/utils-4.1.0" = {
       name = "_at_serverless_slash_utils";
       packageName = "@serverless/utils";
-      version = "4.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils/-/utils-4.0.1.tgz";
-        sha512 = "3/+Tw/kcIpBlrPyN244Ci7IZXVhGH9WLiLZcSwL0U96g0QQBofIGbv5v2h3Q6J4rBpPUOiZJcabJc7cIvlcP6Q==";
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-4.1.0.tgz";
+        sha512 = "cl5uPaGg72z0sCUpF0zsOhwYYUV72Gxc1FwFfxltO8hSvMeFDvwD7JrNE4kHcIcKRjwPGbSH0fdVPUpErZ8Mog==";
       };
     };
-    "@serverless/utils-china-1.0.14" = {
+    "@serverless/utils-5.2.0" = {
+      name = "_at_serverless_slash_utils";
+      packageName = "@serverless/utils";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-5.2.0.tgz";
+        sha512 = "QXBZO0W2da0AtROpg8H1c4YWMSl56+nef0Kukd+40Q4jEaY3a0dtpVzvGps3aLFDXer3kWZ3LtlhS5HGXLficw==";
+      };
+    };
+    "@serverless/utils-china-1.1.0" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
-      version = "1.0.14";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-1.0.14.tgz";
-        sha512 = "7ku9ePjb+bneFV1Akmz0t8pU8hhHfPJsBjG/Kf6IjyGAQrEjN/PcY2QUDm0emdCNyCsuido1wp0DWMGiwuhC8Q==";
+        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-1.1.0.tgz";
+        sha512 = "4iul4BaS6wi8c4fhRahkxt8IDSGB9swVyK3SpVqP4LJNGJ5UtKvStxa6pMC4OMVWs0LDCaLGlfFqOgBUo3VxRQ==";
       };
     };
-    "@sideway/address-4.1.1" = {
+    "@sideway/address-4.1.2" = {
       name = "_at_sideway_slash_address";
       packageName = "@sideway/address";
-      version = "4.1.1";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz";
-        sha512 = "+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ==";
+        url = "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz";
+        sha512 = "idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==";
       };
     };
     "@sideway/formula-3.0.0" = {
@@ -5296,13 +5386,13 @@ let
         sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==";
       };
     };
-    "@sindresorhus/is-4.0.0" = {
+    "@sindresorhus/is-4.0.1" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz";
-        sha512 = "FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==";
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz";
+        sha512 = "Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==";
       };
     };
     "@sindresorhus/slugify-1.1.2" = {
@@ -5332,13 +5422,13 @@ let
         sha512 = "mPZe3gBAV4ZDeYZbEs6WpNZuHHj7Hse9p44z6lrKBcbAMWnvApVOC7zZUpeQsUuWPTOWQRu/QSYElDKNajQ2oA==";
       };
     };
-    "@skorfmann/terraform-cloud-1.9.1" = {
+    "@skorfmann/terraform-cloud-1.10.1" = {
       name = "_at_skorfmann_slash_terraform-cloud";
       packageName = "@skorfmann/terraform-cloud";
-      version = "1.9.1";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@skorfmann/terraform-cloud/-/terraform-cloud-1.9.1.tgz";
-        sha512 = "R28bedoGjAmDiEYHu2cmeVd3R6vxq6anQQlGCpdjk5oqnSiROFFm8dzywvMon4/9C+CErhgY7fr76NVErS/U2w==";
+        url = "https://registry.npmjs.org/@skorfmann/terraform-cloud/-/terraform-cloud-1.10.1.tgz";
+        sha512 = "yQpxfH1VbwIcsyRQ8eN8qLJ76pZ4CQ1Ck1SmFtiKE7J790KFwC8o2r1dlTU130M/bv1eb/8gdPY1T3DLj40D8w==";
       };
     };
     "@slack/client-3.16.0" = {
@@ -5377,13 +5467,13 @@ let
         sha512 = "ca2JKOnSRzYHJkhOB9gYmdRZHmd02b/uBd/S0D5W+L9nIMS7sUBV5jfhKwVgrYPIpVNIc0XCI9rxK4TfkQRpiA==";
       };
     };
-    "@snyk/code-client-3.4.1" = {
+    "@snyk/code-client-3.7.0" = {
       name = "_at_snyk_slash_code-client";
       packageName = "@snyk/code-client";
-      version = "3.4.1";
+      version = "3.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/code-client/-/code-client-3.4.1.tgz";
-        sha512 = "XJ7tUdX1iQyzN/BmHac7p+Oyw1SyTcqSkCNExwBJxyQdlnUAKK6QKIWLXS81tTpZ79FgCdT+0fdS0AjsyS99eA==";
+        url = "https://registry.npmjs.org/@snyk/code-client/-/code-client-3.7.0.tgz";
+        sha512 = "a1uGkSpO4Pr9UucZUVfUR5PVcl1fEA4sXbdZPyzs1AABE7JhMY6FnBYKgQFz2qIkPAPy4M0m18bnGpHq5ZdWNg==";
       };
     };
     "@snyk/composer-lockfile-parser-1.4.1" = {
@@ -5404,13 +5494,13 @@ let
         sha512 = "Oup9nAvb558jdNvbZah/vaBtOtCcizkdeS+OBQeBIqIffyer4mc4juSn4b1SFjCpu7AG7piio8Lj8k1B9ps6Tg==";
       };
     };
-    "@snyk/docker-registry-v2-client-1.13.9" = {
+    "@snyk/docker-registry-v2-client-2.1.3" = {
       name = "_at_snyk_slash_docker-registry-v2-client";
       packageName = "@snyk/docker-registry-v2-client";
-      version = "1.13.9";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-1.13.9.tgz";
-        sha512 = "DIFLEhr8m1GrAwsLGInJmpcQMacjuhf3jcbpQTR+LeMvZA9IuKq+B7kqw2O2FzMiHMZmUb5z+tV+BR7+IUHkFQ==";
+        url = "https://registry.npmjs.org/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-2.1.3.tgz";
+        sha512 = "nbWgOhHFc2GXQsweDxhulhYtLptsBxoXMSI3Py7BOt8ITgXK0HUors2+mzGbwpbvnwMAYjwhv8PLOVVVsa8PXQ==";
       };
     };
     "@snyk/fast-glob-3.2.6-patch" = {
@@ -5422,13 +5512,22 @@ let
         sha512 = "E/Pfdze/WFfxwyuTFcfhQN1SwyUsc43yuCoW63RVBCaxTD6OzhVD2Pvc/Sy7BjiWUfmelzyKkIBpoow8zZX7Zg==";
       };
     };
-    "@snyk/fix-1.547.0" = {
+    "@snyk/fix-1.601.0" = {
       name = "_at_snyk_slash_fix";
       packageName = "@snyk/fix";
-      version = "1.547.0";
+      version = "1.601.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/fix/-/fix-1.601.0.tgz";
+        sha512 = "0Fz0nC547Qkg0FGpmvzDIPrrXvisQN6c07JM0RReM8Xb47p1o51O/MPsWdHIFJasIT5HkshyOaV5rjGQmfwHtQ==";
+      };
+    };
+    "@snyk/fix-pipenv-pipfile-0.3.5" = {
+      name = "_at_snyk_slash_fix-pipenv-pipfile";
+      packageName = "@snyk/fix-pipenv-pipfile";
+      version = "0.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/fix/-/fix-1.547.0.tgz";
-        sha512 = "ANTkn8PHsmPelQ8W8aiS+R3JBzUr0fjcHT67eTvr2a0h51qzzgBFEwhd8GH1Wuo0Nmvm3bsKkk5DxkxTtQWPtw==";
+        url = "https://registry.npmjs.org/@snyk/fix-pipenv-pipfile/-/fix-pipenv-pipfile-0.3.5.tgz";
+        sha512 = "Kqe9wqUrSSGB0+QFrJjCy5ub7bNg10F5I/avJK95RY/2g9cXpQnkdkTexRmVdOl+IF5z3JBXRjBnIQb6buvp6w==";
       };
     };
     "@snyk/gemfile-1.2.0" = {
@@ -5467,31 +5566,31 @@ let
         sha512 = "aWiQSOacH2lOpJ1ard9ErABcH4tdJogdr+mg1U67iZJOPO9n2gFgAwz1TQJDyPkv4/A5mh4hT2rg03Uq+KBn2Q==";
       };
     };
-    "@snyk/java-call-graph-builder-1.19.1" = {
+    "@snyk/java-call-graph-builder-1.21.0" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.19.1";
+      version = "1.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.19.1.tgz";
-        sha512 = "bxjHef5Qm3pNc+BrFlxMudmSSbOjA395ZqBddc+dvsFHoHeyNbiY56Y1JSGUlTgjRM+PKNPBiCuELTSMaROeZg==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.21.0.tgz";
+        sha512 = "i0c4N0+pYjpXEgqAkFniM3Q9YANvy+RtbbkQMPIvdEw41+XJISfEHzZ968ZmGWcoi480cgo5t9oxZEadFuHzyg==";
       };
     };
-    "@snyk/java-call-graph-builder-1.20.0" = {
+    "@snyk/java-call-graph-builder-1.23.0" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.20.0";
+      version = "1.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.20.0.tgz";
-        sha512 = "NX8bpIu7oG5cuSSm6WvtxqcCuJs2gRjtKhtuSeF1p5TYXyESs3FXQ0nHjfY90LiyTTc+PW/UBq6SKbBA6bCBww==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.23.0.tgz";
+        sha512 = "Go/UV33/R0SW10nvshrs/s8GjY2mnbJaRV4Xkj4zGrwpK80lL30th6LDpXDKEdXPZ66EbYGS1Q9gGlL7GzOdeA==";
       };
     };
-    "@snyk/mix-parser-1.3.1" = {
+    "@snyk/mix-parser-1.3.2" = {
       name = "_at_snyk_slash_mix-parser";
       packageName = "@snyk/mix-parser";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/mix-parser/-/mix-parser-1.3.1.tgz";
-        sha512 = "XvANfbbaRkCpmIxYJGa+nSy1hUvGOHPTY+J3lpJrJAsEPB3fCT/z9hMuIJJ2c4RXZ9HndkpoSz2oj27m/DiBKQ==";
+        url = "https://registry.npmjs.org/@snyk/mix-parser/-/mix-parser-1.3.2.tgz";
+        sha512 = "0Aq9vcgmjH0d9Gk5q0k6l4ZOvSHPf6/BCQGDVOpKp0hwOkXWnpDOLLPxL+uBCktuH9zTYQFB0aTk91kQImZqmA==";
       };
     };
     "@snyk/rpm-parser-2.2.1" = {
@@ -5512,22 +5611,22 @@ let
         sha512 = "WHhnwyoGOhjFOjBXqUfszD84SErrtjHjium/4xFbqKpEE+yuwxs8OwV/S29BtxhYiGtjpD1azv5QtH30VUMl0A==";
       };
     };
-    "@snyk/snyk-docker-pull-3.2.3" = {
+    "@snyk/snyk-docker-pull-3.2.5" = {
       name = "_at_snyk_slash_snyk-docker-pull";
       packageName = "@snyk/snyk-docker-pull";
-      version = "3.2.3";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.2.3.tgz";
-        sha512 = "hiFiSmWGLc2tOI7FfgIhVdFzO2f69im8O6p3OV4xEZ/Ss1l58vwtqudItoswsk7wj/azRlgfBW8wGu2MjoudQg==";
+        url = "https://registry.npmjs.org/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.2.5.tgz";
+        sha512 = "vElzqQs894u8Tj6LluGrj97/v1jlvi0DToaU5YBlxEKGaY5IgwSUcuqEW8r4h87fPuY2h4S9/zWqKPShwipvjw==";
       };
     };
-    "@snyk/snyk-hex-plugin-1.1.2" = {
+    "@snyk/snyk-hex-plugin-1.1.4" = {
       name = "_at_snyk_slash_snyk-hex-plugin";
       packageName = "@snyk/snyk-hex-plugin";
-      version = "1.1.2";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/snyk-hex-plugin/-/snyk-hex-plugin-1.1.2.tgz";
-        sha512 = "8zj19XxlBqTfe12CoeVgT0WtRBk0HEjJVO8hYB/AM71XVjucFzQT4/e/hR8mCUSA7i+B/F8X8iGPhs7Uj3J+zA==";
+        url = "https://registry.npmjs.org/@snyk/snyk-hex-plugin/-/snyk-hex-plugin-1.1.4.tgz";
+        sha512 = "kLfFGckSmyKe667UGPyWzR/H7/Trkt4fD8O/ktElOx1zWgmivpLm0Symb4RCfEmz9irWv+N6zIKRrfSNdytcPQ==";
       };
     };
     "@starptech/expression-parser-0.10.0" = {
@@ -5674,139 +5773,184 @@ let
         sha512 = "AmyMQndtxMsM59eDeA0gGiw8T2LzNvDhx/xl+ygFXXrsw+yb/mit73ndHkiHKcRA1EpNHTyD1PN9ATxghzplfg==";
       };
     };
-    "@textlint/ast-node-types-4.4.2" = {
+    "@tencent-sdk/cls-0.2.1" = {
+      name = "_at_tencent-sdk_slash_cls";
+      packageName = "@tencent-sdk/cls";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tencent-sdk/cls/-/cls-0.2.1.tgz";
+        sha512 = "nSEPLAQyXf694XqoXi/OnWjfaJNPoo+JaPt81Kpy1QogOSZdEqEebgGj/ROs8kPjRa3kf+6+0s8MSQRtJBOOyQ==";
+      };
+    };
+    "@tencent-sdk/common-0.1.0" = {
+      name = "_at_tencent-sdk_slash_common";
+      packageName = "@tencent-sdk/common";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tencent-sdk/common/-/common-0.1.0.tgz";
+        sha512 = "WHVGulaFv/CLwSqYC5501FCMNclu7B7nH1OminksjV2HSonIvx3o3Pms4+2/2Lse/sB5RCmPiiitV7g09b4mWw==";
+      };
+    };
+    "@tencent-sdk/faas-0.1.5" = {
+      name = "_at_tencent-sdk_slash_faas";
+      packageName = "@tencent-sdk/faas";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tencent-sdk/faas/-/faas-0.1.5.tgz";
+        sha512 = "6wEkJCm1rN9LOgH/BZHW6ajJpYZQuf1qwfW+tGTNkczW0RepWASznS6MCzWC9HX09oosVpg8sGCGtcgWQSP1Qg==";
+      };
+    };
+    "@textlint/ast-node-types-12.0.0" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "4.4.2";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.2.tgz";
-        sha512 = "m5brKbI7UY/Q8sbIZ7z1KB8ls04nRILshz5fPQ4EZ04jL19qrrUHJR8A6nK3vJ/GelkDWl4I0VDYSAjLEFQV8g==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.0.0.tgz";
+        sha512 = "qUjmlpz1vR3AStBA9RPDCVT0/pGtePvBJ5Vb/0PzTrnr04iFktG6P6B1VOmgTh8J9Kl/FonQFo3A9M1Q3UH+JA==";
       };
     };
-    "@textlint/ast-tester-2.3.4" = {
+    "@textlint/ast-node-types-4.4.3" = {
+      name = "_at_textlint_slash_ast-node-types";
+      packageName = "@textlint/ast-node-types";
+      version = "4.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.3.tgz";
+        sha512 = "qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==";
+      };
+    };
+    "@textlint/ast-tester-12.0.0" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "2.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.4.tgz";
-        sha512 = "2gIsnJ1Dmr5jjF+u/vusNRqk2bJi0WwwbjP9WV/op51DhDTi7BUNjVSiZtcP9NVxidvs51XNEg+EMTRoKP3Msg==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.0.0.tgz";
+        sha512 = "mcAqaOJnAhay8QtDC/na5S72XPxmqGCntOwcLwuSjEmPGAIuLC3GsumLQo4nWSQ2LGnWd6CwLDZT4eBlRWetNA==";
       };
     };
-    "@textlint/ast-traverse-2.3.4" = {
+    "@textlint/ast-traverse-12.0.0" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "2.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.4.tgz";
-        sha512 = "NcjPXCvP8r4D2/azeQhwjPvh2+099I9RRBUrg6IpMfTW4IUUJb4BwZOPgjW+XRIVc71Dhgm82VSIagDL90FYcg==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.0.0.tgz";
+        sha512 = "Mu0il8qWS9YkzVAqwmrTd+ga5S0LJVWOGjE6d9yADf5xObUDFk4g8ITlfEOiicpX5bTUxT4e1bORxPveCJ8iKQ==";
       };
     };
-    "@textlint/feature-flag-3.3.4" = {
+    "@textlint/feature-flag-12.0.0" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "3.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.4.tgz";
-        sha512 = "ULAqdD2y1sPAhbkaMjS2fltrZYCNQGsNDv/NQWFsCmDpQ1R8kxoUaTiXpebTM+nVuyvU5GfdkxhHyMarPIjmYw==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.0.0.tgz";
+        sha512 = "xgK6tsf1Gg6xn8/X0HN4LXzSkJYgmByAvzItUPlI0dzvA4HhhT4gkBeshDCuXsHLc970nYgzy1TYHpyscu7PTw==";
       };
     };
-    "@textlint/fixer-formatter-3.3.4" = {
+    "@textlint/fixer-formatter-12.0.0" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "3.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.4.tgz";
-        sha512 = "H4i+N+uN7EiI5vRnfRIccFc5yekNHnO8795fiOK2TZPb6SzY3iwLOGZ2rDKvgu7ZKdyGW945w3T0elUF3Fkr5A==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.0.0.tgz";
+        sha512 = "y2PWue8PANhSF9cXwksxmjDs/n9exOq4daNMhN7VvJk9yrXL+nSuAoyDXjyp09gX4Nfwa/xsOrQRTDVRbizgcw==";
       };
     };
-    "@textlint/kernel-3.4.4" = {
+    "@textlint/kernel-12.0.0" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "3.4.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.4.tgz";
-        sha512 = "ro9TPnE16C6gtKkY3aOjTs8ZfzAxdXLCV9JD4BuV5P+xBiiu9NdiE2Hwm3LyEGQjMxaKnXjbm/DTCAxA4gz0Dg==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.0.0.tgz";
+        sha512 = "8UXHKhSAgn1aexPjyQE1CRVivCfSz+aFuNrktT9+JOMM3XsSd4JFcMKDhPA1utiiRR+4yDVH5be38vuuJOG9cQ==";
       };
     };
-    "@textlint/linter-formatter-3.3.4" = {
+    "@textlint/linter-formatter-12.0.0" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "3.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.4.tgz";
-        sha512 = "k1lyvR+w7ctwr5dWhMVRTKk19GH99BAO2dLk8ZS0ZcYyKqKAKu6Iyb1cWEg/u3dT3KFbWwoegnAelfz5828SHQ==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.0.0.tgz";
+        sha512 = "jRRZluLCBXcP8VlA90N8DJOPy890j7rVOVSuyyFn0ypuUK88X2qH9XoEd9yYbo/HmH9ky2h+TeA8CJtOAIjU2g==";
       };
     };
-    "@textlint/markdown-to-ast-6.3.4" = {
+    "@textlint/markdown-to-ast-12.0.0" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "6.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.4.tgz";
-        sha512 = "LLScbDRXov1l4U4OCLJ5clu9eWNonBG+rhuArwYAHpf0hwIoNoETfAQvrNtXZG/NZ96fdWv4PLtaN6dA4ldRdQ==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.0.0.tgz";
+        sha512 = "XaiuePJVDGVIwdjIiITdbdRXZDFnAFY/so3Rb8qAId/Qq9fKPUvgefMkdIG73wUC7LzhrAzH6/CuEO+f77HR5g==";
       };
     };
-    "@textlint/module-interop-1.2.4" = {
+    "@textlint/module-interop-12.0.0" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "1.2.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.4.tgz";
-        sha512 = "/wUKvDbBEujrhpcuD7Et4Mcicm3SG2oAe/tyMruLxSJ86umGxd34dEcHRON8fJzou9qyt0gFoczcypd4k3hJow==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.0.0.tgz";
+        sha512 = "WSuwd3pd2xYDCYqpA6NE8FwMZS4WJ2gZmsSCXBpOh3qJ/pHbmrfEaiwOpGQJA4RfXVp8Fy5KfaAQJIr+wox98A==";
       };
     };
-    "@textlint/source-code-fixer-3.4.4" = {
+    "@textlint/source-code-fixer-12.0.0" = {
       name = "_at_textlint_slash_source-code-fixer";
       packageName = "@textlint/source-code-fixer";
-      version = "3.4.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.4.tgz";
-        sha512 = "GDHVin2EJ9PGJ33VMGlqtPcvUlY+pkTbaWs4jWv8oBaEK8UUBzS5ZpEc4xi7Xp5vIXnVsCSLKNC6bgvR9X/AoQ==";
+        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.0.0.tgz";
+        sha512 = "+XMJ7unzezEqKh8euWIw1QUprvv7IJzOfV0UPVbkThX2d3ZOzBmK+AzlYbqzCwZ1jkV0QYaRqaptBE+iaaQjNg==";
       };
     };
-    "@textlint/text-to-ast-3.3.4" = {
+    "@textlint/text-to-ast-12.0.0" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "3.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.4.tgz";
-        sha512 = "oDwGNQCAo7ROnHqaksPEogf8fxXGU3Z61C6NEv0n9vEWEkUX9oUVX4c9kh5UieZL5nN/xIdzVc3TrXywkkOK3g==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.0.0.tgz";
+        sha512 = "j73hF6BiwdZurNdzHfOtP5j3v+nTWaTP7RtJf5wpfQBigT4RA+EqmKxUd/OpO+gt/Xy1NkpceLFNllZGRLEvkw==";
       };
     };
-    "@textlint/textlint-plugin-markdown-5.3.4" = {
+    "@textlint/textlint-plugin-markdown-12.0.0" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "5.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.4.tgz";
-        sha512 = "g8KKuwhzzlRjvKrpq3SbGc+JJMAJoy5Xp0Ibvq7QKgNVxwN/f5WtmrJc8CdgFG7++jgtkDPlofz0c9xG63xKwQ==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.0.0.tgz";
+        sha512 = "eo9deECYMkytoiJUqDxEwzugL8sLcCFUbeCpzV5IuIRwQBh85Hds3lp/mtW1B3Q/BxcSa08im2HAa9uRdcoe4Q==";
       };
     };
-    "@textlint/textlint-plugin-text-4.3.4" = {
+    "@textlint/textlint-plugin-text-12.0.0" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "4.3.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.4.tgz";
-        sha512 = "ZtctKFR8V9mIZAMibS97xPWlt2lViizIRAy4oDaKCnxAwJ0uAjxm/OlHHdaFwNydGaEDtN60mcmarDqOOAZIiA==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.0.0.tgz";
+        sha512 = "brtexdqu7yvFLstYvVlotMZz5T7SwKfnFnV9Sm+uhg/d3Ddea9exzpiWWcXfRAhfOBd12mmEGM6gwAuSwzrhqg==";
       };
     };
-    "@textlint/types-1.5.4" = {
+    "@textlint/types-1.5.5" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "1.5.4";
+      version = "1.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-1.5.4.tgz";
-        sha512 = "bhSrOjW8AFSa/xf6lYZ2akE0j+4O/WEAA2S/R8RrjNMkA5Az2j57mxPNpqMhEeyHDkpzN/coIlqUwgYvcJHv1A==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-1.5.5.tgz";
+        sha512 = "80P6fcqgsG9bP6JgR6W/E/oIx+71pplaicYCvvB4vMIeGk0OnWls4Q21kCpDYmq/C/ABtZ/Gy/Ov/8ExQPeQ7A==";
       };
     };
-    "@textlint/utils-1.2.4" = {
+    "@textlint/types-12.0.0" = {
+      name = "_at_textlint_slash_types";
+      packageName = "@textlint/types";
+      version = "12.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@textlint/types/-/types-12.0.0.tgz";
+        sha512 = "3sB22cGtN9nPViDrW7FJxWkDrpGtyJbvNsvZqzX83HJbAiOmzzeHDkRRLvz9tax76lcdjlNk+2rHY3iSnjhEag==";
+      };
+    };
+    "@textlint/utils-12.0.0" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "1.2.4";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.4.tgz";
-        sha512 = "FREWc8n6bJFsKehtUlHPtbqnXULWhdnlazqWiHMjiBtcxUfD+1kY3P7PNGbChdzeZGmwBkgFQyGkok8bAGnZOw==";
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-12.0.0.tgz";
+        sha512 = "bnIr17iouc4MtVR+r7v8mBasNn3ZsQpfTLTi4RelrZJdICHMBUMOWRX70cVRV/xJck/nfY9igt325qI0y2ELoQ==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -5863,15 +6007,6 @@ let
         sha512 = "jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==";
       };
     };
-    "@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/archiver-5.1.0" = {
       name = "_at_types_slash_archiver";
       packageName = "@types/archiver";
@@ -5962,15 +6097,6 @@ let
         sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
       };
     };
-    "@types/braces-3.0.0" = {
-      name = "_at_types_slash_braces";
-      packageName = "@types/braces";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz";
-        sha512 = "TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw==";
-      };
-    };
     "@types/cacheable-request-6.0.1" = {
       name = "_at_types_slash_cacheable-request";
       packageName = "@types/cacheable-request";
@@ -6142,13 +6268,13 @@ let
         sha512 = "DLVpLEGTEZGBXOYoYoagHSxXkDHONc0fZouF2ayw7Q18aRu1Afwci+1CFKvPpouCUOVWP+dmCaAWpQjswe7kpg==";
       };
     };
-    "@types/eslint-7.2.10" = {
+    "@types/eslint-7.2.12" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "7.2.10";
+      version = "7.2.12";
       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.2.12.tgz";
+        sha512 = "HjikV/jX6e0Pg4DcB+rtOBKSrG6w5IaxWpmi3efL/eLxMz5lZTK+W1DKERrX5a+mNzL78axfsDNXu7JHFP4uLg==";
       };
     };
     "@types/eslint-scope-3.7.0" = {
@@ -6196,6 +6322,15 @@ let
         sha512 = "c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==";
       };
     };
+    "@types/expect-1.20.4" = {
+      name = "_at_types_slash_expect";
+      packageName = "@types/expect";
+      version = "1.20.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz";
+        sha512 = "Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==";
+      };
+    };
     "@types/express-4.17.11" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
@@ -6223,6 +6358,15 @@ let
         sha512 = "DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==";
       };
     };
+    "@types/express-serve-static-core-4.17.20" = {
+      name = "_at_types_slash_express-serve-static-core";
+      packageName = "@types/express-serve-static-core";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.20.tgz";
+        sha512 = "8qqFN4W53IEWa9bdmuVrUcVkFemQWnt5DKPQ/oa8xKDYgtjCr2OO6NX5TIK49NLFr3mPYU2cLh92DQquC3oWWQ==";
+      };
+    };
     "@types/fancy-log-1.3.0" = {
       name = "_at_types_slash_fancy-log";
       packageName = "@types/fancy-log";
@@ -6232,13 +6376,13 @@ let
         sha512 = "mQjDxyOM1Cpocd+vm1kZBP7smwKZ4TNokFeds9LV7OZibmPJFEzY3+xZMrKfUdNT71lv8GoCPD6upKwHxubClw==";
       };
     };
-    "@types/fast-json-stable-stringify-2.0.0" = {
+    "@types/fast-json-stable-stringify-2.1.0" = {
       name = "_at_types_slash_fast-json-stable-stringify";
       packageName = "@types/fast-json-stable-stringify";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
-        sha512 = "mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ==";
+        url = "https://registry.npmjs.org/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "IyNhGHu71jH1jCXTHmafuoAAdsbBON3kDh7u/UUhLmjYgN5TYB54e1R8ckTCiIevl2UuZaCsi9XRxineY5yUjw==";
       };
     };
     "@types/flat-cache-2.0.0" = {
@@ -6349,13 +6493,13 @@ let
         sha512 = "2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==";
       };
     };
-    "@types/http-proxy-1.17.5" = {
+    "@types/http-proxy-1.17.6" = {
       name = "_at_types_slash_http-proxy";
       packageName = "@types/http-proxy";
-      version = "1.17.5";
+      version = "1.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz";
-        sha512 = "GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==";
+        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.6.tgz";
+        sha512 = "+qsjqR75S/ib0ig0R9WN+CDoZeOBU6F2XLewgC4KVgdXiNHiKKHFEMRHOrs5PbYE97D5vataw5wPj4KLYfUkuQ==";
       };
     };
     "@types/inquirer-6.5.0" = {
@@ -6484,13 +6628,13 @@ let
         sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
       };
     };
-    "@types/koa-2.13.1" = {
+    "@types/koa-2.13.3" = {
       name = "_at_types_slash_koa";
       packageName = "@types/koa";
-      version = "2.13.1";
+      version = "2.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/koa/-/koa-2.13.1.tgz";
-        sha512 = "Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q==";
+        url = "https://registry.npmjs.org/@types/koa/-/koa-2.13.3.tgz";
+        sha512 = "TaujBV+Dhe/FvmSMZJtCFBms+bqQacgUebk/M2C2tq8iGmHE/DDf4DcW2Hc7NqusVZmy5xzrWOjtdPKNP+fTfw==";
       };
     };
     "@types/koa-compose-3.2.5" = {
@@ -6511,13 +6655,13 @@ let
         sha512 = "EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==";
       };
     };
-    "@types/lodash-4.14.168" = {
+    "@types/lodash-4.14.170" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.168";
+      version = "4.14.170";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz";
-        sha512 = "oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz";
+        sha512 = "bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==";
       };
     };
     "@types/lodash.chunk-4.2.6" = {
@@ -6574,15 +6718,6 @@ let
         sha512 = "SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==";
       };
     };
-    "@types/micromatch-4.0.1" = {
-      name = "_at_types_slash_micromatch";
-      packageName = "@types/micromatch";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.1.tgz";
-        sha512 = "my6fLBvpY70KattTNzYOK6KU1oR1+UCz9ug/JbcF5UrEmeCt9P7DV2t7L8+t18mMPINqGQCE4O8PLOPbI84gxw==";
-      };
-    };
     "@types/mime-1.3.2" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
@@ -6673,6 +6808,15 @@ let
         sha512 = "wdfkiKBBEMTODNbuF3J+qDDSqJxt50yB9pgDiTcFew7f97Gcc7/sM4HR66ofGgpJPOALWOqKAch4gPyqEXSkeQ==";
       };
     };
+    "@types/multimatch-4.0.0" = {
+      name = "_at_types_slash_multimatch";
+      packageName = "@types/multimatch";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/multimatch/-/multimatch-4.0.0.tgz";
+        sha512 = "xS26gtqY5QASmfU/6jb5vj7F0D0SctgRGtwXsKSNng1knk/OewjISlkMwGonkMCbZCqSoW3s6nL0sAtTlzbL/g==";
+      };
+    };
     "@types/mysql-2.15.15" = {
       name = "_at_types_slash_mysql";
       packageName = "@types/mysql";
@@ -6691,13 +6835,13 @@ let
         sha512 = "fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==";
       };
     };
-    "@types/node-10.17.58" = {
+    "@types/node-10.17.60" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.58";
+      version = "10.17.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.58.tgz";
-        sha512 = "Dn5RBxLohjdHFj17dVVw3rtrZAeXeWg+LQfvxDIW/fdPkSiuQk7h3frKMYtsQhtIW42wkErDcy9UMVxhGW4O7w==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz";
+        sha512 = "F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==";
       };
     };
     "@types/node-12.12.70" = {
@@ -6709,13 +6853,13 @@ let
         sha512 = "i5y7HTbvhonZQE+GnUM2rz1Bi8QkzxdQmEv1LKOv4nWyaQk/gdeiTApuQR3PDJHX7WomAbpx2wlWSEpxXGZ/UQ==";
       };
     };
-    "@types/node-13.13.50" = {
+    "@types/node-13.13.52" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.50";
+      version = "13.13.52";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.50.tgz";
-        sha512 = "y7kkh+hX/0jZNxMyBR/6asG0QMSaPSzgeVK63dhWHl4QAXCQB8lExXmzLL6SzmOgKHydtawpMnNhlDbv7DXPEA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz";
+        sha512 = "s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==";
       };
     };
     "@types/node-14.11.1" = {
@@ -6745,13 +6889,31 @@ let
         sha512 = "XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==";
       };
     };
-    "@types/node-14.14.41" = {
+    "@types/node-14.17.1" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.41";
+      version = "14.17.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz";
-        sha512 = "dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.17.1.tgz";
+        sha512 = "/tpUyFD7meeooTRwl3sYlihx2BrJE7q9XF71EguPFIySj9B7qgnRtHsHTho+0AUm4m1SvWGm6uSncrR94q6Vtw==";
+      };
+    };
+    "@types/node-15.0.3" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "15.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-15.0.3.tgz";
+        sha512 = "/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ==";
+      };
+    };
+    "@types/node-15.6.1" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "15.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz";
+        sha512 = "7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==";
       };
     };
     "@types/node-6.14.13" = {
@@ -6790,15 +6952,6 @@ let
         sha512 = "IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==";
       };
     };
-    "@types/node-fetch-2.5.7" = {
-      name = "_at_types_slash_node-fetch";
-      packageName = "@types/node-fetch";
-      version = "2.5.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz";
-        sha512 = "o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==";
-      };
-    };
     "@types/normalize-package-data-2.4.0" = {
       name = "_at_types_slash_normalize-package-data";
       packageName = "@types/normalize-package-data";
@@ -6871,6 +7024,15 @@ let
         sha512 = "0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==";
       };
     };
+    "@types/raf-3.4.0" = {
+      name = "_at_types_slash_raf";
+      packageName = "@types/raf";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/raf/-/raf-3.4.0.tgz";
+        sha512 = "taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==";
+      };
+    };
     "@types/range-parser-1.2.3" = {
       name = "_at_types_slash_range-parser";
       packageName = "@types/range-parser";
@@ -6880,13 +7042,13 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
-    "@types/readable-stream-2.3.9" = {
+    "@types/readable-stream-2.3.10" = {
       name = "_at_types_slash_readable-stream";
       packageName = "@types/readable-stream";
-      version = "2.3.9";
+      version = "2.3.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz";
-        sha512 = "sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==";
+        url = "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.10.tgz";
+        sha512 = "xwSXvAv9x4B9Vj88AMZnFyEVLilz1EBxKvRUhGqIF4nJpRQBSTm7jS236X4Y9Y2qPsVvaMxwrGJlNhLHEahlFQ==";
       };
     };
     "@types/request-2.48.5" = {
@@ -6970,13 +7132,13 @@ let
         sha512 = "41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==";
       };
     };
-    "@types/semver-7.3.4" = {
+    "@types/semver-7.3.6" = {
       name = "_at_types_slash_semver";
       packageName = "@types/semver";
-      version = "7.3.4";
+      version = "7.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz";
-        sha512 = "+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==";
+        url = "https://registry.npmjs.org/@types/semver/-/semver-7.3.6.tgz";
+        sha512 = "0caWDWmpCp0uifxFh+FaqK3CuZ2SkRR/ZRxAV5+zNdC3QVUi6wyOJnefhPvtNt8NQWXB5OA93BUvZsXpWat2Xw==";
       };
     };
     "@types/serve-static-1.13.9" = {
@@ -6988,13 +7150,13 @@ let
         sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==";
       };
     };
-    "@types/sizzle-2.3.2" = {
+    "@types/sizzle-2.3.3" = {
       name = "_at_types_slash_sizzle";
       packageName = "@types/sizzle";
-      version = "2.3.2";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz";
-        sha512 = "7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==";
+        url = "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz";
+        sha512 = "JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==";
       };
     };
     "@types/socket.io-2.1.11" = {
@@ -7033,6 +7195,15 @@ let
         sha512 = "OBsK0KIGUICExQ/ZvnPY4cKx5Kz4NcrVyGTIvOL5y4ajXu7r++RfBajfpGfGDmDVCKcoCDX1dO84/oeyeITnxA==";
       };
     };
+    "@types/structured-source-3.0.0" = {
+      name = "_at_types_slash_structured-source";
+      packageName = "@types/structured-source";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/structured-source/-/structured-source-3.0.0.tgz";
+        sha512 = "8u+Wo5+GEXe4jZyQ8TplLp+1A7g32ZcVoE7VZu8VcxnlaEm5I/+T579R7q3qKN76jmK0lRshpo4hl4bj/kEPKA==";
+      };
+    };
     "@types/superagent-3.8.2" = {
       name = "_at_types_slash_superagent";
       packageName = "@types/superagent";
@@ -7132,22 +7303,31 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.55.0" = {
+    "@types/vinyl-2.0.4" = {
+      name = "_at_types_slash_vinyl";
+      packageName = "@types/vinyl";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.4.tgz";
+        sha512 = "2o6a2ixaVI2EbwBPg1QYLGQoHK56p/8X/sGfKbFC8N6sY9lfjsMf/GprtkQkSya0D4uRiutRZ2BWj7k3JvLsAQ==";
+      };
+    };
+    "@types/vscode-1.56.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.55.0";
+      version = "1.56.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.55.0.tgz";
-        sha512 = "49hysH7jneTQoSC8TWbAi7nKK9Lc5osQNjmDHVosrcU8o3jecD9GrK0Qyul8q4aGPSXRfNGqIp9CBdb13akETg==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.56.0.tgz";
+        sha512 = "Q5VmQxOx+L1Y6lIJiGcJzwcyV3pQo/eiW8P+7sNLhFI16tJCwtua2DLjHRcpjbCLNVYpQM73kzfFo1Z0HyP9eQ==";
       };
     };
-    "@types/webpack-4.41.27" = {
+    "@types/webpack-4.41.29" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.27";
+      version = "4.41.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz";
-        sha512 = "wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.29.tgz";
+        sha512 = "6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q==";
       };
     };
     "@types/webpack-sources-2.1.0" = {
@@ -7186,6 +7366,15 @@ let
         sha512 = "ISCK1iFnR+jYv7+jLNX0wDqesZ/5RAeY3wUx6QaphmocphU61h+b+PHjS18TF4WIPTu/MMzxIq2PHr32o2TS5Q==";
       };
     };
+    "@types/ws-7.4.4" = {
+      name = "_at_types_slash_ws";
+      packageName = "@types/ws";
+      version = "7.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.4.4.tgz";
+        sha512 = "d/7W23JAXPodQNbOZNXvl2K+bqAQrCMwlh/nuQsPSQk6Fq0opHoPrUw43aHsvSbIiQPr8Of2hkFbnz1XBFVyZQ==";
+      };
+    };
     "@types/yargs-13.0.11" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
@@ -7231,13 +7420,13 @@ let
         sha512 = "S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==";
       };
     };
-    "@typescript-eslint/eslint-plugin-4.22.0" = {
+    "@typescript-eslint/eslint-plugin-4.26.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.22.0";
+      version = "4.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz";
-        sha512 = "U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.0.tgz";
+        sha512 = "yA7IWp+5Qqf+TLbd8b35ySFOFzUfL7i+4If50EqvjT6w35X8Lv0eBHb6rATeWmucks37w+zV+tWnOXI9JlG6Eg==";
       };
     };
     "@typescript-eslint/experimental-utils-3.10.1" = {
@@ -7249,13 +7438,13 @@ let
         sha512 = "DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.22.0" = {
+    "@typescript-eslint/experimental-utils-4.26.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.22.0";
+      version = "4.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz";
-        sha512 = "xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.0.tgz";
+        sha512 = "TH2FO2rdDm7AWfAVRB5RSlbUhWxGVuxPNzGT7W65zVfl8H/WeXTk1e69IrcEVsBslrQSTDKQSaJD89hwKrhdkw==";
       };
     };
     "@typescript-eslint/parser-3.10.1" = {
@@ -7267,22 +7456,22 @@ let
         sha512 = "Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==";
       };
     };
-    "@typescript-eslint/parser-4.22.0" = {
+    "@typescript-eslint/parser-4.26.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.22.0";
+      version = "4.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz";
-        sha512 = "z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.0.tgz";
+        sha512 = "b4jekVJG9FfmjUfmM4VoOItQhPlnt6MPOBUL0AQbiTmm+SSpSdhHYlwayOm4IW9KLI/4/cRKtQCmDl1oE2OlPg==";
       };
     };
-    "@typescript-eslint/scope-manager-4.22.0" = {
+    "@typescript-eslint/scope-manager-4.26.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.22.0";
+      version = "4.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz";
-        sha512 = "OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.26.0.tgz";
+        sha512 = "G6xB6mMo4xVxwMt5lEsNTz3x4qGDt0NSGmTBNBPJxNsrTXJSm21c6raeYroS2OwQsOyIXqKZv266L/Gln1BWqg==";
       };
     };
     "@typescript-eslint/types-3.10.1" = {
@@ -7294,22 +7483,13 @@ let
         sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
       };
     };
-    "@typescript-eslint/types-4.22.0" = {
+    "@typescript-eslint/types-4.26.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.22.0";
+      version = "4.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz";
-        sha512 = "sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==";
-      };
-    };
-    "@typescript-eslint/typescript-estree-2.34.0" = {
-      name = "_at_typescript-eslint_slash_typescript-estree";
-      packageName = "@typescript-eslint/typescript-estree";
-      version = "2.34.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz";
-        sha512 = "OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.26.0.tgz";
+        sha512 = "rADNgXl1kS/EKnDr3G+m7fB9yeJNnR9kF7xMiXL6mSIWpr3Wg5MhxyfEXy/IlYthsqwBqHOr22boFbf/u6O88A==";
       };
     };
     "@typescript-eslint/typescript-estree-3.10.1" = {
@@ -7321,13 +7501,13 @@ let
         sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.22.0" = {
+    "@typescript-eslint/typescript-estree-4.26.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.22.0";
+      version = "4.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz";
-        sha512 = "TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.0.tgz";
+        sha512 = "GHUgahPcm9GfBuy3TzdsizCcPjKOAauG9xkz9TR8kOdssz2Iz9jRCSQm6+aVFa23d5NcSpo1GdHGSQKe0tlcbg==";
       };
     };
     "@typescript-eslint/visitor-keys-3.10.1" = {
@@ -7339,13 +7519,13 @@ let
         sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.22.0" = {
+    "@typescript-eslint/visitor-keys-4.26.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.22.0";
+      version = "4.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz";
-        sha512 = "nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.0.tgz";
+        sha512 = "cw4j8lH38V1ycGBbF+aFiLUls9Z0Bw8QschP3mkth50BbWzgFS33ISIgBzUMuQ2IdahoEv/rXstr8Zhlz4B1Zg==";
       };
     };
     "@uifabric/foundation-7.9.26" = {
@@ -7447,40 +7627,40 @@ let
         sha1 = "c585c0bdb94210198945c6597e4fe23d6e63e084";
       };
     };
-    "@vue/cli-shared-utils-4.5.12" = {
+    "@vue/cli-shared-utils-4.5.13" = {
       name = "_at_vue_slash_cli-shared-utils";
       packageName = "@vue/cli-shared-utils";
-      version = "4.5.12";
+      version = "4.5.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.12.tgz";
-        sha512 = "qnIQPJ4XckMoqYh9fJ0Y91QKMIb4Hiibrm9+k4E15QHpk5RaokuOpf10SsOr2NLPCXSWsHOLo3hduZSwHPGY/Q==";
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.13.tgz";
+        sha512 = "HpnOrkLg42RFUsQGMJv26oTG3J3FmKtO2WSRhKIIL+1ok3w9OjGCtA3nMMXN27f9eX14TqO64M36DaiSZ1fSiw==";
       };
     };
-    "@vue/cli-ui-4.5.12" = {
+    "@vue/cli-ui-4.5.13" = {
       name = "_at_vue_slash_cli-ui";
       packageName = "@vue/cli-ui";
-      version = "4.5.12";
+      version = "4.5.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.5.12.tgz";
-        sha512 = "TeP4ujkrUF3/l92R7fAIl6SbTyEw5CbrMpQggctgKrtOtMWorSGhWm17vGtP0C3PoZqzniOzDC7cdO83PL4n+g==";
+        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.5.13.tgz";
+        sha512 = "kXsmK+KAX9A2ribCJ+JuFcJ9ICEKluWuFtJEwUMOvo85O/l5UNupA7XoCrXeHoItdVtw32hAOv+bEV+KmyPyuQ==";
       };
     };
-    "@vue/cli-ui-addon-webpack-4.5.12" = {
+    "@vue/cli-ui-addon-webpack-4.5.13" = {
       name = "_at_vue_slash_cli-ui-addon-webpack";
       packageName = "@vue/cli-ui-addon-webpack";
-      version = "4.5.12";
+      version = "4.5.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.5.12.tgz";
-        sha512 = "sPAElJL00koP6BxUSGj5wntH96+IBuhLpu+0YPUYpIMeT/e/Hip/HnsjBzeiv88CvGQKomsjykPQRi26kR/Tjw==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.5.13.tgz";
+        sha512 = "mtk174vPRza0aMqMvx80U/BBmprlOq8ngHr5v3+MYIC1tqzB7co5fCJvyGI/QJ4DjO6O0MaaTGBsxOp/YsqRaQ==";
       };
     };
-    "@vue/cli-ui-addon-widgets-4.5.12" = {
+    "@vue/cli-ui-addon-widgets-4.5.13" = {
       name = "_at_vue_slash_cli-ui-addon-widgets";
       packageName = "@vue/cli-ui-addon-widgets";
-      version = "4.5.12";
+      version = "4.5.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.5.12.tgz";
-        sha512 = "GIh+ETKezlmEWmZ/MxKuuJqdfSgYk8DlnIsMnNpbUcdxhHZFbkV2mv/0UoQaH2y0BQhBXBOt9TBJ9j4OeN3DwA==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.5.13.tgz";
+        sha512 = "B6PedV/H2kcGEAgnqncwjHe3E8fqUNXCLv1BsrNwkHHWQJXkDN7dFeuEB4oaucBOVbjhH7KGLJ6JAiXPE3S7xA==";
       };
     };
     "@vue/compiler-core-3.0.11" = {
@@ -8005,31 +8185,31 @@ let
         sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==";
       };
     };
-    "@webpack-cli/configtest-1.0.2" = {
+    "@webpack-cli/configtest-1.0.3" = {
       name = "_at_webpack-cli_slash_configtest";
       packageName = "@webpack-cli/configtest";
-      version = "1.0.2";
+      version = "1.0.3";
       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.3.tgz";
+        sha512 = "WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==";
       };
     };
-    "@webpack-cli/info-1.2.3" = {
+    "@webpack-cli/info-1.2.4" = {
       name = "_at_webpack-cli_slash_info";
       packageName = "@webpack-cli/info";
-      version = "1.2.3";
+      version = "1.2.4";
       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.2.4.tgz";
+        sha512 = "ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==";
       };
     };
-    "@webpack-cli/serve-1.3.1" = {
+    "@webpack-cli/serve-1.4.0" = {
       name = "_at_webpack-cli_slash_serve";
       packageName = "@webpack-cli/serve";
-      version = "1.3.1";
+      version = "1.4.0";
       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.4.0.tgz";
+        sha512 = "xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==";
       };
     };
     "@wry/equality-0.1.11" = {
@@ -8239,15 +8419,6 @@ let
         sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==";
       };
     };
-    "abortcontroller-polyfill-1.7.1" = {
-      name = "abortcontroller-polyfill";
-      packageName = "abortcontroller-polyfill";
-      version = "1.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.1.tgz";
-        sha512 = "yml9NiDEH4M4p0G4AcPkg8AAa4mF3nfYF28VQxaokpO67j9H7gWgmsVWJ/f1Rn+PzsnDYvzJzWIQzCqDKRvWlA==";
-      };
-    };
     "absolute-0.0.1" = {
       name = "absolute";
       packageName = "absolute";
@@ -8374,13 +8545,13 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
-    "acorn-8.1.1" = {
+    "acorn-8.3.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.1.1";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz";
-        sha512 = "xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz";
+        sha512 = "tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==";
       };
     };
     "acorn-globals-1.0.9" = {
@@ -8518,22 +8689,22 @@ let
         sha1 = "6a7990437ca736d5e1288db92bd3266d5f5cb2aa";
       };
     };
-    "addons-linter-2.21.0" = {
+    "addons-linter-3.2.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "2.21.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.21.0.tgz";
-        sha512 = "1XfqeVbvaEpjRlWJq/Ti0W6bH3RszaIDPeKl+4ZmXCx+C8ovRqy4CJmitqNffLr+2KpY4h5ei2eRygbvJYDyrw==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-3.2.0.tgz";
+        sha512 = "b6oViLOBgXWsld5L3DJiJSt77DYjVrk2Yam2/gD5e2bsj5xfNvavugwhlJP/MIF0j5yetYT/XFQDXY1Hs0flOA==";
       };
     };
-    "addons-scanner-utils-4.2.0" = {
+    "addons-scanner-utils-4.4.0" = {
       name = "addons-scanner-utils";
       packageName = "addons-scanner-utils";
-      version = "4.2.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-4.2.0.tgz";
-        sha512 = "VKLYNlKg2RCMvmOKmbWlu14hjdyk2vcTHscQGmDlnHfWcf6fAb8E7vY9/ajWdLykVVKZEUiGOoD5EIkIp1FyUA==";
+        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-4.4.0.tgz";
+        sha512 = "fEUGQIqLYeLl5cV6FFSHU+XFlOYETXqm8jxmYGsVayjZaAqWEkIjTXNu4+pDEiqIkrqjPYP2izjrnhBpHRsyog==";
       };
     };
     "addr-to-ip-port-1.5.1" = {
@@ -8581,13 +8752,13 @@ let
         sha1 = "09c5cddd8d503b9fe5f76e0b8dc5c70a8f193e34";
       };
     };
-    "adverb-where-0.2.2" = {
+    "adverb-where-0.2.5" = {
       name = "adverb-where";
       packageName = "adverb-where";
-      version = "0.2.2";
+      version = "0.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adverb-where/-/adverb-where-0.2.2.tgz";
-        sha512 = "hZPUFSgljaJnzQQXqc4GCEVSxmyhBkLgf/DyeW7F068PdRE9PervS4LmftJWWSPfTpaEhpJebx3eP7D9slBjSw==";
+        url = "https://registry.npmjs.org/adverb-where/-/adverb-where-0.2.5.tgz";
+        sha512 = "JiQe2U1UR8l10jPrXv/PmlDhOLZpsxqjvTp+k6Dm5wYDUULdMZytDRmovkXU8X6V9o0sg0FBdetv3VXHAZZK5Q==";
       };
     };
     "after-0.8.1" = {
@@ -8653,6 +8824,15 @@ let
         sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
       };
     };
+    "aglfn-1.0.2" = {
+      name = "aglfn";
+      packageName = "aglfn";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aglfn/-/aglfn-1.0.2.tgz";
+        sha512 = "HUvXd7sNFa1aHtYgJnln2jPwzq7UAAOXhYH/+AY6BMdfXxprMxG8IrczlZn6MjjIWpYhpKR5mHwDWTgehZKO4g==";
+      };
+    };
     "airplay-js-0.2.16" = {
       name = "airplay-js";
       packageName = "airplay-js";
@@ -8725,22 +8905,22 @@ let
         sha512 = "LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==";
       };
     };
-    "ajv-7.2.4" = {
+    "ajv-8.2.0" = {
       name = "ajv";
       packageName = "ajv";
-      version = "7.2.4";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz";
-        sha512 = "nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz";
+        sha512 = "WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==";
       };
     };
-    "ajv-8.1.0" = {
+    "ajv-8.5.0" = {
       name = "ajv";
       packageName = "ajv";
-      version = "8.1.0";
+      version = "8.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz";
-        sha512 = "B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.5.0.tgz";
+        sha512 = "Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -8752,13 +8932,22 @@ let
         sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
       };
     };
-    "ajv-formats-1.6.1" = {
+    "ajv-formats-2.0.2" = {
       name = "ajv-formats";
       packageName = "ajv-formats";
-      version = "1.6.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-1.6.1.tgz";
-        sha512 = "4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==";
+        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.0.2.tgz";
+        sha512 = "Brah4Uo5/U8v76c6euTwtjVFFaVishwnJrQBYpev1JRh4vjA1F4HY3UzQez41YUCszUCXKagG8v6eVRBHV1gkw==";
+      };
+    };
+    "ajv-formats-2.1.0" = {
+      name = "ajv-formats";
+      packageName = "ajv-formats";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz";
+        sha512 = "USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==";
       };
     };
     "ajv-keywords-1.5.1" = {
@@ -9157,13 +9346,13 @@ let
         sha1 = "fd753efa4beada0eac99981bc52a3f6ff019deb7";
       };
     };
-    "ansi-to-html-0.6.14" = {
+    "ansi-to-html-0.6.15" = {
       name = "ansi-to-html";
       packageName = "ansi-to-html";
-      version = "0.6.14";
+      version = "0.6.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz";
-        sha512 = "7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==";
+        url = "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.15.tgz";
+        sha512 = "28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==";
       };
     };
     "ansi-wrap-0.1.0" = {
@@ -9274,40 +9463,31 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-cache-control-0.12.0" = {
+    "apollo-cache-control-0.14.0" = {
       name = "apollo-cache-control";
       packageName = "apollo-cache-control";
-      version = "0.12.0";
+      version = "0.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.0.tgz";
-        sha512 = "kClF5rfAm159Nboul1LxA+l58Tjz0M8L1GUknEMpZt0UHhILLAn3BfcG3ToX4TbNoR9M57kKMUcbPWLdy3Up7w==";
+        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz";
+        sha512 = "qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==";
       };
     };
-    "apollo-datasource-0.8.0" = {
+    "apollo-datasource-0.9.0" = {
       name = "apollo-datasource";
       packageName = "apollo-datasource";
-      version = "0.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.8.0.tgz";
-        sha512 = "gXgsGVLuejLc138z/2jUjPAzadDQxWbcLJyBgaQsg5BaXJNkv5uW/NjiSPk00cK51hyZrb0Xx8a+L+wPk2qIBA==";
-      };
-    };
-    "apollo-env-0.6.6" = {
-      name = "apollo-env";
-      packageName = "apollo-env";
-      version = "0.6.6";
+      version = "0.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.6.tgz";
-        sha512 = "hXI9PjJtzmD34XviBU+4sPMOxnifYrHVmxpjykqI/dUD2G3yTiuRaiQqwRwB2RCdwC1Ug/jBfoQ/NHDTnnjndQ==";
+        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz";
+        sha512 = "y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==";
       };
     };
-    "apollo-graphql-0.6.1" = {
+    "apollo-graphql-0.9.3" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
-      version = "0.6.1";
+      version = "0.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.1.tgz";
-        sha512 = "ZRXAV+k+hboCVS+FW86FW/QgnDR7gm/xMUwJPGXEbV53OLGuQQdIT0NCYK7AzzVkCfsbb7NJ3mmEclkZY9uuxQ==";
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.3.tgz";
+        sha512 = "rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A==";
       };
     };
     "apollo-link-1.2.1" = {
@@ -9328,40 +9508,40 @@ let
         sha512 = "p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==";
       };
     };
-    "apollo-reporting-protobuf-0.6.2" = {
+    "apollo-reporting-protobuf-0.8.0" = {
       name = "apollo-reporting-protobuf";
       packageName = "apollo-reporting-protobuf";
-      version = "0.6.2";
+      version = "0.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.2.tgz";
-        sha512 = "WJTJxLM+MRHNUxt1RTl4zD0HrLdH44F2mDzMweBj1yHL0kSt8I1WwoiF/wiGVSpnG48LZrBegCaOJeuVbJTbtw==";
+        url = "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz";
+        sha512 = "B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==";
       };
     };
-    "apollo-server-caching-0.6.0" = {
+    "apollo-server-caching-0.7.0" = {
       name = "apollo-server-caching";
       packageName = "apollo-server-caching";
-      version = "0.6.0";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.6.0.tgz";
-        sha512 = "SfjKaccrhRzUQ8TAke9FrYppp4pZV3Rp8KCs+4Ox3kGtbco68acRPJkiYYtSVc4idR8XNAUOOVfAEZVNHdZQKQ==";
+        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz";
+        sha512 = "MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==";
       };
     };
-    "apollo-server-core-2.23.0" = {
+    "apollo-server-core-2.25.0" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.23.0";
+      version = "2.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.23.0.tgz";
-        sha512 = "3/a4LPgRADc8CdT/nRh7W0CAqQv3Q4DJvakWQgKqGSqDEb/0u4IBynYjlQKuPBi4wwKdeK2Hb1wiQLl+zu4StQ==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.0.tgz";
+        sha512 = "LqDmY+R5dcb6zj/RgM7P8NnURV2XdQFIF4rY7g80hD9mc2WSCKHF6eH+lHG0sFPW7f8iBr+lJ4LyETuWEVF0hg==";
       };
     };
-    "apollo-server-env-3.0.0" = {
+    "apollo-server-env-3.1.0" = {
       name = "apollo-server-env";
       packageName = "apollo-server-env";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz";
-        sha512 = "tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==";
+        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz";
+        sha512 = "iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==";
       };
     };
     "apollo-server-errors-2.5.0" = {
@@ -9373,40 +9553,40 @@ let
         sha512 = "lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==";
       };
     };
-    "apollo-server-express-2.23.0" = {
+    "apollo-server-express-2.25.0" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.23.0";
+      version = "2.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.23.0.tgz";
-        sha512 = "tzil7c51ODH0rT1Bc5VMksdWzHrYGavdLtnDz4M0ePiTm18Gc81HD7X/4DPczorerEpfwwkf2YlADtPQfRSxlw==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.0.tgz";
+        sha512 = "FCTisD+VB1LCcTjjhKvQZ/dkly83KVlioFMgcPjW1X/kzCznRT3aQoVn9bQHlzQr7NnpwFseb4Rhd2KKD4wKEA==";
       };
     };
-    "apollo-server-plugin-base-0.11.0" = {
+    "apollo-server-plugin-base-0.13.0" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
-      version = "0.11.0";
+      version = "0.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.11.0.tgz";
-        sha512 = "Du68x0XCyQ6EWlgoL9Z+1s8fJfXgY131QbKP7ao617StQPzwB0aGCwxBDfcMt1A75VXf4TkvV1rdUH5YeJFlhQ==";
+        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz";
+        sha512 = "L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==";
       };
     };
-    "apollo-server-types-0.7.0" = {
+    "apollo-server-types-0.9.0" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
-      version = "0.7.0";
+      version = "0.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.7.0.tgz";
-        sha512 = "pJ6ri2N4xJ+e2PUUPHeCNpMDzHUagJyn0DDZGQmXDz6aoMlSd4B2KUvK81hHyHkw3wHk9clgcpfM9hKqbfZweA==";
+        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz";
+        sha512 = "qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==";
       };
     };
-    "apollo-tracing-0.13.0" = {
+    "apollo-tracing-0.15.0" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.13.0";
+      version = "0.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.13.0.tgz";
-        sha512 = "28z4T+XfLQ6t696usU0nTFDxVN8BfF3o74d2p/zsT4eu1OuoyoDOEmVJqdInmVRpyTJK0tDEOjkIuDJJHZftog==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz";
+        sha512 = "UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==";
       };
     };
     "apollo-utilities-1.3.4" = {
@@ -9526,24 +9706,6 @@ let
         sha512 = "5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==";
       };
     };
-    "archiver-4.0.2" = {
-      name = "archiver";
-      packageName = "archiver";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-4.0.2.tgz";
-        sha512 = "B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==";
-      };
-    };
-    "archiver-5.2.0" = {
-      name = "archiver";
-      packageName = "archiver";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-5.2.0.tgz";
-        sha512 = "QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==";
-      };
-    };
     "archiver-5.3.0" = {
       name = "archiver";
       packageName = "archiver";
@@ -9625,15 +9787,6 @@ let
         sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
       };
     };
-    "aria-query-4.2.2" = {
-      name = "aria-query";
-      packageName = "aria-query";
-      version = "4.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz";
-        sha512 = "o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==";
-      };
-    };
     "aribts-1.3.5" = {
       name = "aribts";
       packageName = "aribts";
@@ -9796,15 +9949,6 @@ let
         sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
       };
     };
-    "array-filter-1.0.0" = {
-      name = "array-filter";
-      packageName = "array-filter";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz";
-        sha1 = "baf79e62e6ef4c2a4c0b831232daffec251f9d83";
-      };
-    };
     "array-find-0.1.1" = {
       name = "array-find";
       packageName = "array-find";
@@ -10048,24 +10192,6 @@ let
         sha512 = "mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==";
       };
     };
-    "array.prototype.flat-1.2.4" = {
-      name = "array.prototype.flat";
-      packageName = "array.prototype.flat";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
-        sha512 = "4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==";
-      };
-    };
-    "array.prototype.flatmap-1.2.4" = {
-      name = "array.prototype.flatmap";
-      packageName = "array.prototype.flatmap";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz";
-        sha512 = "r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==";
-      };
-    };
     "arraybuffer.slice-0.0.6" = {
       name = "arraybuffer.slice";
       packageName = "arraybuffer.slice";
@@ -10336,15 +10462,6 @@ let
         sha1 = "102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9";
       };
     };
-    "ast-types-flow-0.0.7" = {
-      name = "ast-types-flow";
-      packageName = "ast-types-flow";
-      version = "0.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz";
-        sha1 = "f70b735c6bca1a5c9c22d982c3e39e7feba3bdad";
-      };
-    };
     "astral-regex-1.0.0" = {
       name = "astral-regex";
       packageName = "astral-regex";
@@ -10507,13 +10624,13 @@ let
         sha512 = "gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==";
       };
     };
-    "async-lock-1.2.8" = {
+    "async-lock-1.3.0" = {
       name = "async-lock";
       packageName = "async-lock";
-      version = "1.2.8";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-lock/-/async-lock-1.2.8.tgz";
-        sha512 = "G+26B2jc0Gw0EG/WN2M6IczuGepBsfR1+DtqLnyFSH4p2C668qkOCtEkGNVEaaNAVlYwEMazy1+/jnLxltBkIQ==";
+        url = "https://registry.npmjs.org/async-lock/-/async-lock-1.3.0.tgz";
+        sha512 = "8A7SkiisnEgME2zEedtDYPxUPzdv3x//E7n5IFktPAtMYSEAV7eNJF0rMwrVyUFj6d/8rgajLantbjcNRQYXIg==";
       };
     };
     "async-mutex-0.1.4" = {
@@ -10642,15 +10759,6 @@ let
         sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
       };
     };
-    "atob-lite-2.0.0" = {
-      name = "atob-lite";
-      packageName = "atob-lite";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz";
-        sha1 = "0fef5ad46f1bd7a8502c65727f0367d5ee43d696";
-      };
-    };
     "atomic-batcher-1.0.2" = {
       name = "atomic-batcher";
       packageName = "atomic-batcher";
@@ -10678,6 +10786,15 @@ let
         sha512 = "Eh6pW+fRC2/1RxPq3hO8+PkZKv+wujzKky2MP/n69eC8yMkbNFfuEb/riZHqf13M7gr6Hvglpk/kISgBSBb6bQ==";
       };
     };
+    "atomic-file-rw-0.2.2" = {
+      name = "atomic-file-rw";
+      packageName = "atomic-file-rw";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atomic-file-rw/-/atomic-file-rw-0.2.2.tgz";
+        sha512 = "XZOcMIc32aIDxKFJGpYIPZ7H0p+Zmu3xAYyKDMmRgSQMNR97E8byl4tQa9vkYv4x8dNcYRQV8tw+KvtiKua0xQ==";
+      };
+    };
     "atomic-sleep-1.0.0" = {
       name = "atomic-sleep";
       packageName = "atomic-sleep";
@@ -10696,15 +10813,6 @@ let
         sha512 = "Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==";
       };
     };
-    "atomically-universal-0.1.1" = {
-      name = "atomically-universal";
-      packageName = "atomically-universal";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/atomically-universal/-/atomically-universal-0.1.1.tgz";
-        sha512 = "0bqmz+wKlA9hIiH/C4R3K8dpsVV6mM/X76QZ70LMHW0XzCDXzxdWD5gfkmRXxTM5txlbYE/06iz0IziohUQVzw==";
-      };
-    };
     "attach-ware-1.1.1" = {
       name = "attach-ware";
       packageName = "attach-ware";
@@ -10759,13 +10867,13 @@ let
         sha512 = "XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==";
       };
     };
-    "available-typed-arrays-1.0.2" = {
+    "available-typed-arrays-1.0.4" = {
       name = "available-typed-arrays";
       packageName = "available-typed-arrays";
-      version = "1.0.2";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz";
-        sha512 = "XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==";
+        url = "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz";
+        sha512 = "SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==";
       };
     };
     "await-semaphore-0.1.3" = {
@@ -10795,13 +10903,13 @@ let
         sha512 = "+KBkqH7t/XE91Fqn8eyJeNIWsnhSWL8bSUqFD7TfE3FN07MTlC0nprGYp+2WfcYNz5i8Bus1vY2DHNVhtTImnw==";
       };
     };
-    "aws-sdk-2.888.0" = {
+    "aws-sdk-2.918.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.888.0";
+      version = "2.918.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.888.0.tgz";
-        sha512 = "9Rg14eneXnrs5Wh5FL42qGEXf7QaqaV/gMHU9SfvAA0SEM390QnwVjCSKF5YAReWjSuJriKJTDiodMI39J+Nrg==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.918.0.tgz";
+        sha512 = "ZjWanOA1Zo664EyWLCnbUlkwCjoRPmSIMx529W4gk1418qo3oCEcvUy1HeibGGIClYnZZ7J4FMQvVDm2+JtHLQ==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -10840,15 +10948,6 @@ let
         sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
       };
     };
-    "axe-core-4.1.4" = {
-      name = "axe-core";
-      packageName = "axe-core";
-      version = "4.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/axe-core/-/axe-core-4.1.4.tgz";
-        sha512 = "Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig==";
-      };
-    };
     "axios-0.19.2" = {
       name = "axios";
       packageName = "axios";
@@ -10876,22 +10975,13 @@ let
         sha512 = "NFCoNIHq8lYkJa6ku4m+V1837TP6lCa7n79Iuf8/AqATAHYB0ISaAS1eyIenDOfHOLtym34W65Sjke2xjg2fsA==";
       };
     };
-    "axobject-query-2.2.0" = {
-      name = "axobject-query";
-      packageName = "axobject-query";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz";
-        sha512 = "Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==";
-      };
-    };
-    "azure-devops-node-api-7.2.0" = {
+    "azure-devops-node-api-10.2.2" = {
       name = "azure-devops-node-api";
       packageName = "azure-devops-node-api";
-      version = "7.2.0";
+      version = "10.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-7.2.0.tgz";
-        sha512 = "pMfGJ6gAQ7LRKTHgiRF+8iaUUeGAI0c8puLaqHLc7B8AR7W6GJLozK9RFeUHFjEGybC9/EB3r67WPd7e46zQ8w==";
+        url = "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-10.2.2.tgz";
+        sha512 = "4TVv2X7oNStT0vLaEfExmy3J4/CzfuXolEcQl/BRUmvGySqKStTG2O55/hUQ0kM7UJlZBLgniM0SBq4d/WkKow==";
       };
     };
     "b24.js-1.0.3" = {
@@ -10930,6 +11020,15 @@ let
         sha512 = "z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==";
       };
     };
+    "babel-eslint-10.1.0" = {
+      name = "babel-eslint";
+      packageName = "babel-eslint";
+      version = "10.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz";
+        sha512 = "ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==";
+      };
+    };
     "babel-extract-comments-1.0.0" = {
       name = "babel-extract-comments";
       packageName = "babel-extract-comments";
@@ -11164,31 +11263,31 @@ let
         sha1 = "1bc6f15b87f7ab1085d42b330b717657a2156500";
       };
     };
-    "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.2" = {
       name = "babel-plugin-polyfill-corejs3";
       packageName = "babel-plugin-polyfill-corejs3";
-      version = "0.2.0";
+      version = "0.2.2";
       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.2.tgz";
+        sha512 = "l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==";
       };
     };
-    "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";
+      version = "0.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz";
-        sha512 = "J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz";
+        sha512 = "Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==";
       };
     };
     "babel-plugin-styled-components-1.12.0" = {
@@ -11389,13 +11488,13 @@ let
         sha512 = "5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==";
       };
     };
-    "babel-preset-fbjs-3.3.0" = {
+    "babel-preset-fbjs-3.4.0" = {
       name = "babel-preset-fbjs";
       packageName = "babel-preset-fbjs";
-      version = "3.3.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz";
-        sha512 = "7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==";
+        url = "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz";
+        sha512 = "9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==";
       };
     };
     "babel-preset-jest-25.5.0" = {
@@ -11533,6 +11632,15 @@ let
         sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
+    "balanced-match-2.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz";
+        sha512 = "1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==";
+      };
+    };
     "base-0.11.2" = {
       name = "base";
       packageName = "base";
@@ -12001,15 +12109,6 @@ let
         sha1 = "159a49b9a9714c1fb102f2e0ed1906fab6a450f4";
       };
     };
-    "big-integer-1.6.36" = {
-      name = "big-integer";
-      packageName = "big-integer";
-      version = "1.6.36";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz";
-        sha512 = "t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==";
-      };
-    };
     "big-integer-1.6.48" = {
       name = "big-integer";
       packageName = "big-integer";
@@ -12073,6 +12172,15 @@ let
         sha1 = "dd3a862b2fedf66fee8471320069428d0d84427a";
       };
     };
+    "bin-links-2.2.1" = {
+      name = "bin-links";
+      packageName = "bin-links";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bin-links/-/bin-links-2.2.1.tgz";
+        sha512 = "wFzVTqavpgCCYAh8SVBdnZdiQMxTkGR+T3b14CNpBXIBe2neJWaMGAZ55XWWHELJJ89dscuq0VCBqcVaIOgCMg==";
+      };
+    };
     "bin-version-2.0.0" = {
       name = "bin-version";
       packageName = "bin-version";
@@ -12145,13 +12253,13 @@ let
         sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
       };
     };
-    "binaryextensions-2.3.0" = {
+    "binaryextensions-4.15.0" = {
       name = "binaryextensions";
       packageName = "binaryextensions";
-      version = "2.3.0";
+      version = "4.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz";
-        sha512 = "nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==";
+        url = "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.15.0.tgz";
+        sha512 = "MkUl3szxXolQ2scI1PM14WOT951KnaTNJ0eMKg7WzOI4kvSxyNo/Cygx4LOBNhwyINhAuSQpJW1rYD9aBSxGaw==";
       };
     };
     "bindings-1.2.1" = {
@@ -12244,13 +12352,22 @@ let
         sha512 = "O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==";
       };
     };
-    "bipf-1.5.0" = {
+    "bipf-1.5.1" = {
       name = "bipf";
       packageName = "bipf";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.0.tgz";
-        sha512 = "EjpRVanEn4/Z2ilD2OeTfkWnogvxe+PZ8Gxzt7m+2xRT9rg6g1pETAdYy2vmJhNNZYX9axiV3Zf8HxuaYb0W3w==";
+        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.1.tgz";
+        sha512 = "SrLwMzrpETJDiH9z12EMcqtApgcQo9XsPi+S9Aodezu53ALcGjBBQ7+C+IWbsSCBlSvNEec8sqfh3itO/j/QUw==";
+      };
+    };
+    "bit-field-1.3.6" = {
+      name = "bit-field";
+      packageName = "bit-field";
+      version = "1.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bit-field/-/bit-field-1.3.6.tgz";
+        sha512 = "gu+wXJ+saekzja7tSRygoR+M+C88U0IoVTdp0SmZj5tyDwSkWmZNhSUkBmHx2NNZcSAB0gu9g8yBd1Kn7ECVmw==";
       };
     };
     "bitcoin-core-2.3.0" = {
@@ -12784,13 +12901,13 @@ let
         sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
       };
     };
-    "boolean-3.0.3" = {
+    "boolean-3.1.0" = {
       name = "boolean";
       packageName = "boolean";
-      version = "3.0.3";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/boolean/-/boolean-3.0.3.tgz";
-        sha512 = "EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA==";
+        url = "https://registry.npmjs.org/boolean/-/boolean-3.1.0.tgz";
+        sha512 = "K6r5tvO1ykeYerI7jIyTvSFw2l6D6DzqkljGj2E2uyYAAdDo2SV4qGJIV75cHIQpTFyb6BB0BEHiDdDrFsNI+g==";
       };
     };
     "boom-2.10.1" = {
@@ -12838,6 +12955,15 @@ let
         sha1 = "b4a0a5a839a406454af0fe05a8b91a7a766a54e2";
       };
     };
+    "bottleneck-2.19.5" = {
+      name = "bottleneck";
+      packageName = "bottleneck";
+      version = "2.19.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz";
+        sha512 = "VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==";
+      };
+    };
     "boundary-1.0.1" = {
       name = "boundary";
       packageName = "boundary";
@@ -13225,13 +13351,13 @@ let
         sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
       };
     };
-    "browserslist-4.16.4" = {
+    "browserslist-4.16.6" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.16.4";
+      version = "4.16.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.4.tgz";
-        sha512 = "d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz";
+        sha512 = "Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==";
       };
     };
     "brq-0.1.8" = {
@@ -13315,6 +13441,15 @@ let
         sha512 = "tkrtMDxeJorn5p0KxaLXELneT8AbfZMpOFeoKYZ5qCCMMSluNuwut7pGccLC5YOJqmuk0DR774vNVQLC9sNq/A==";
       };
     };
+    "btoa-1.2.1" = {
+      name = "btoa";
+      packageName = "btoa";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz";
+        sha512 = "SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==";
+      };
+    };
     "btoa-lite-1.0.0" = {
       name = "btoa-lite";
       packageName = "btoa-lite";
@@ -13864,13 +13999,13 @@ let
         sha512 = "a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==";
       };
     };
-    "cacache-15.0.6" = {
+    "cacache-15.2.0" = {
       name = "cacache";
       packageName = "cacache";
-      version = "15.0.6";
+      version = "15.2.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.2.0.tgz";
+        sha512 = "uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==";
       };
     };
     "cache-base-1.0.1" = {
@@ -14179,22 +14314,31 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001209" = {
+    "caniuse-lite-1.0.30001232" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001209";
+      version = "1.0.30001232";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001209.tgz";
-        sha512 = "2Ktt4OeRM7EM/JaOZjuLzPYAIqmbwQMNnYbgooT+icoRGrKOyAxA1xhlnotBD1KArRSPsuJp3TdYcZYrL7qNxA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001232.tgz";
+        sha512 = "e4Gyp7P8vqC2qV2iHA+cJNf/yqUKOShXQOJHQt81OHxlIZl/j/j3soEA0adAQi8CPUQgvOdDENyQ5kd6a6mNSg==";
       };
     };
-    "canvas-2.7.0" = {
+    "canvas-2.8.0" = {
       name = "canvas";
       packageName = "canvas";
-      version = "2.7.0";
+      version = "2.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/canvas/-/canvas-2.7.0.tgz";
-        sha512 = "pzCxtkHb+5su5MQjTtepMDlIOtaXo277x0C0u3nMOxtkhTyQ+h2yNKhlROAaDllWgRyePAUitC08sXw26Eb6aw==";
+        url = "https://registry.npmjs.org/canvas/-/canvas-2.8.0.tgz";
+        sha512 = "gLTi17X8WY9Cf5GZ2Yns8T5lfBOcGgFehDFb+JQwDqdOoBOcECS9ZWMEAqMSVcMYwXD659J8NyzjRY/2aE+C2Q==";
+      };
+    };
+    "canvg-3.0.7" = {
+      name = "canvg";
+      packageName = "canvg";
+      version = "3.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/canvg/-/canvg-3.0.7.tgz";
+        sha512 = "4sq6iL5Q4VOXS3PL1BapiXIZItpxYyANVzsAKpTPS5oq4u3SKbGfUcbZh2gdLCQ3jWpG/y5wRkMlBBAJhXeiZA==";
       };
     };
     "caporal-1.4.0" = {
@@ -14287,13 +14431,13 @@ let
         sha1 = "a9193b1a5448b8cb9a0415bd021c8811ed7b0544";
       };
     };
-    "catharsis-0.8.11" = {
+    "catharsis-0.9.0" = {
       name = "catharsis";
       packageName = "catharsis";
-      version = "0.8.11";
+      version = "0.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz";
-        sha512 = "a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==";
+        url = "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz";
+        sha512 = "prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==";
       };
     };
     "caw-2.0.1" = {
@@ -14332,22 +14476,22 @@ let
         sha512 = "vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==";
       };
     };
-    "cdk8s-1.0.0-beta.11" = {
+    "cdk8s-1.0.0-beta.14" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "1.0.0-beta.11";
+      version = "1.0.0-beta.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.0.0-beta.11.tgz";
-        sha512 = "G6SIJSg6mxeEzWEWNY8NAn/jqysTPegV79mOQ6eYj1uyKYggyzP5MzuWt8fKmYShM5BTDadnCRajwDnku9LZeQ==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.0.0-beta.14.tgz";
+        sha512 = "NU5mZbOE3RgRX7a9zHf4AgiNcI/clqQ9vw/YixSgVe2AOiAsUXuSH2BCc3eFAZSlPSQYLxWG6mSCGY/06cy5Hw==";
       };
     };
-    "cdktf-0.2.2" = {
+    "cdktf-0.4.0" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.2.2";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.2.2.tgz";
-        sha512 = "SMiDV99ruSGhjBm+dj30XmtV20BKesjY75SGGB3sTcFeaqn5d1Gf8gAaG69QTm3zqI8SbYO12MDslkoX1BY5Zw==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.4.0.tgz";
+        sha512 = "P6KRqGokkAVRZdT2+fXfEdQszpOXrJa/EuNZr0WPcIrfTVfjL6HNrHyuP1HWUvJRzlcbG5ZZ3+8Uk4oFS9IXvA==";
       };
     };
     "center-align-0.1.3" = {
@@ -14476,6 +14620,15 @@ let
         sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
       };
     };
+    "chalk-4.1.1" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz";
+        sha512 = "diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==";
+      };
+    };
     "chance-1.0.18" = {
       name = "chance";
       packageName = "chance";
@@ -14701,6 +14854,15 @@ let
         sha512 = "hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==";
       };
     };
+    "cheerio-1.0.0-rc.9" = {
+      name = "cheerio";
+      packageName = "cheerio";
+      version = "1.0.0-rc.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.9.tgz";
+        sha512 = "QF6XVdrLONO6DXRF5iaolY+odmhj2CLj+xzNod7INPWMi/x9X4SOylH0S/vaPpX+AUU6t04s34SQNh7DbkuCng==";
+      };
+    };
     "cheerio-select-1.4.0" = {
       name = "cheerio-select";
       packageName = "cheerio-select";
@@ -14737,6 +14899,15 @@ let
         sha512 = "0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA==";
       };
     };
+    "child_process-1.0.2" = {
+      name = "child_process";
+      packageName = "child_process";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz";
+        sha1 = "b1f7e7fc73d25e7fd1d455adc94e143830182b5a";
+      };
+    };
     "chloride-2.4.1" = {
       name = "chloride";
       packageName = "chloride";
@@ -14827,13 +14998,13 @@ let
         sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
       };
     };
-    "chroma-js-2.1.1" = {
+    "chroma-js-2.1.2" = {
       name = "chroma-js";
       packageName = "chroma-js";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chroma-js/-/chroma-js-2.1.1.tgz";
-        sha512 = "gYc5/Dooshun2OikK7oY/hYnoEiZ0dxqRpXosEdYRYm505vU5mRsHFqIW062C9nMtr32DVErP6mlxuepo2kNkw==";
+        url = "https://registry.npmjs.org/chroma-js/-/chroma-js-2.1.2.tgz";
+        sha512 = "ri/ouYDWuxfus3UcaMxC1Tfp3IE9K5iQzxc2hSxbBRVNQFut1UuGAsZmiAf2mOUubzGJwgMSv9lHg+XqLaz1QQ==";
       };
     };
     "chrome-dgram-3.0.6" = {
@@ -14953,13 +15124,13 @@ let
         sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
       };
     };
-    "ci-info-3.1.1" = {
+    "ci-info-3.2.0" = {
       name = "ci-info";
       packageName = "ci-info";
-      version = "3.1.1";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.1.1.tgz";
-        sha512 = "kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ==";
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz";
+        sha512 = "dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==";
       };
     };
     "cint-8.2.1" = {
@@ -15826,13 +15997,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.28.0" = {
+    "codemaker-1.30.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.28.0";
+      version = "1.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.28.0.tgz";
-        sha512 = "TlpvV3q/68cZk7aljYW6b/5EvyB4uw523xJISTATrCrQu/UTA79/mxpA2ug8uhPcJoGYcfWXH4BHVVLNIuEtrg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.30.0.tgz";
+        sha512 = "yntR55JhhVlZTfR4CPV6IrCULovPDrk3z0yQR7/ygEtNxEOQrHhX17djJ0rVmIwCJUawv+ODTJ1ipJY9CbxJQw==";
       };
     };
     "codepage-1.4.0" = {
@@ -16339,6 +16510,15 @@ let
         sha512 = "ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==";
       };
     };
+    "commander-7.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz";
+        sha512 = "pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==";
+      };
+    };
     "commander-7.2.0" = {
       name = "commander";
       packageName = "commander";
@@ -16366,6 +16546,15 @@ let
         sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
       };
     };
+    "common-ancestor-path-1.0.1" = {
+      name = "common-ancestor-path";
+      packageName = "common-ancestor-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz";
+        sha512 = "L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==";
+      };
+    };
     "common-path-prefix-2.0.0" = {
       name = "common-path-prefix";
       packageName = "common-path-prefix";
@@ -16528,22 +16717,13 @@ let
         sha512 = "eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==";
       };
     };
-    "compress-commons-3.0.0" = {
+    "compress-commons-4.1.1" = {
       name = "compress-commons";
       packageName = "compress-commons";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-3.0.0.tgz";
-        sha512 = "FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==";
-      };
-    };
-    "compress-commons-4.1.0" = {
-      name = "compress-commons";
-      packageName = "compress-commons";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz";
-        sha512 = "ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==";
+        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz";
+        sha512 = "QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==";
       };
     };
     "compressible-2.0.18" = {
@@ -16609,13 +16789,13 @@ let
         sha512 = "4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==";
       };
     };
-    "concordance-4.0.0" = {
+    "concordance-5.0.4" = {
       name = "concordance";
       packageName = "concordance";
-      version = "4.0.0";
+      version = "5.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/concordance/-/concordance-4.0.0.tgz";
-        sha512 = "l0RFuB8RLfCS0Pt2Id39/oCPykE01pyxgAFypWTlaGRgvLkZrtczZ8atEHpTeEIW+zYWXTBuA9cCSeEOScxReQ==";
+        url = "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz";
+        sha512 = "OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==";
       };
     };
     "conf-1.4.0" = {
@@ -16627,6 +16807,15 @@ let
         sha512 = "bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==";
       };
     };
+    "conf-10.0.1" = {
+      name = "conf";
+      packageName = "conf";
+      version = "10.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conf/-/conf-10.0.1.tgz";
+        sha512 = "QClEoNcruwBL84QgMEPHibL3ERxWIrRKhbjJKG1VsFBadm5QpS0jsu4QjY/maxUvhyAKXeyrs+ws+lC6PajnEg==";
+      };
+    };
     "conf-6.2.4" = {
       name = "conf";
       packageName = "conf";
@@ -16645,15 +16834,6 @@ let
         sha512 = "r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==";
       };
     };
-    "conf-9.0.2" = {
-      name = "conf";
-      packageName = "conf";
-      version = "9.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/conf/-/conf-9.0.2.tgz";
-        sha512 = "rLSiilO85qHgaTBIIHQpsv8z+NnVfZq3cKuYNCXN1AOqPzced0GWZEe/A517VldRLyQYXUMyV+vszavE2jSAqw==";
-      };
-    };
     "config-1.31.0" = {
       name = "config";
       packageName = "config";
@@ -16861,13 +17041,13 @@ let
         sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
       };
     };
-    "constructs-3.3.71" = {
+    "constructs-3.3.75" = {
       name = "constructs";
       packageName = "constructs";
-      version = "3.3.71";
+      version = "3.3.75";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.71.tgz";
-        sha512 = "3KFtTsA7OV27m/+pJhN4iJkKzHbPIPvyvEX5BQ/JCAWjfCHOQEVpIgxHLpT4i8L1OFta+pJrzcEVAHo6UitwqA==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.75.tgz";
+        sha512 = "q10foASSSfDWmS99OQLfnWDXCzqLvoORISAVWPFg0AmIGlBv2ZdDOtXxLqrJARPxVlOldmW2JzWzdRI+4+0/ZA==";
       };
     };
     "consume-http-header-1.0.0" = {
@@ -16897,15 +17077,6 @@ let
         sha1 = "6874f1e935fca99d048caeaaad9a0aeb020bcce0";
       };
     };
-    "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.2" = {
       name = "content-disposition";
       packageName = "content-disposition";
@@ -16952,22 +17123,22 @@ let
         sha1 = "0e790b3abfef90f6ecb77ae8585db9099caf7578";
       };
     };
-    "contentful-management-7.15.1" = {
+    "contentful-management-7.22.4" = {
       name = "contentful-management";
       packageName = "contentful-management";
-      version = "7.15.1";
+      version = "7.22.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.15.1.tgz";
-        sha512 = "Wk4gpoNDXThkof49W0S3WgdW42T9kKQZj+7V7aDs+VrW0/WfTiNh5fMiMt0rxLqkWjxFrsa1TMAxR0WzT3lLyQ==";
+        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.22.4.tgz";
+        sha512 = "nwFWfaaIQGveN9bAEZ6IpQjWeZlDgse1SXvgdR/D3mxTUYqDlyQv1sIqst+tcgd09zF4TuEKgF0e6Xmc0X1XhQ==";
       };
     };
-    "contentful-sdk-core-6.7.0" = {
+    "contentful-sdk-core-6.8.0" = {
       name = "contentful-sdk-core";
       packageName = "contentful-sdk-core";
-      version = "6.7.0";
+      version = "6.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.7.0.tgz";
-        sha512 = "+b8UXVE249Z6WzMLXvsu3CIvN/s5xXRZ9o+zY7zDdPkIYBMW15xcs9N2ATI6ncmc+s1uj4XZij/2skflletHiw==";
+        url = "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.8.0.tgz";
+        sha512 = "X45uNrcbQ2qY2p4G/Wx2EFUdnLnoDXjw29i+d0JVTUXqCG58p3q4GHuAPzTX+uafJL4h0ZY2xPOn4nvJ83eRBQ==";
       };
     };
     "continuable-1.1.8" = {
@@ -17375,13 +17546,13 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.10.1" = {
+    "core-js-3.13.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.10.1";
+      version = "3.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.10.1.tgz";
-        sha512 = "pwCxEXnj27XG47mu7SXAwhLP3L5CrlvCB91ANUkIz40P27kUcvNfSdvyZJ9CLHiVoKSp+TTChMQMSKQEH/IQxA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.13.1.tgz";
+        sha512 = "JqveUc4igkqwStL2RTRn/EPFGBOfEZHxJl/8ej1mXJR75V3go2mFF4bmUYkEIT1rveHKnkUlcJX/c+f1TyIovQ==";
       };
     };
     "core-js-3.8.3" = {
@@ -17393,22 +17564,22 @@ let
         sha512 = "KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==";
       };
     };
-    "core-js-compat-3.10.1" = {
+    "core-js-compat-3.13.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.10.1";
+      version = "3.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz";
-        sha512 = "ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.13.1.tgz";
+        sha512 = "mdrcxc0WznfRd8ZicEZh1qVeJ2mu6bwQFh8YVUK48friy/FOwFV5EJj9/dlh+nMQ74YusdVfBFDuomKgUspxWQ==";
       };
     };
-    "core-js-pure-3.10.1" = {
+    "core-js-pure-3.13.1" = {
       name = "core-js-pure";
       packageName = "core-js-pure";
-      version = "3.10.1";
+      version = "3.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.1.tgz";
-        sha512 = "PeyJH2SE0KuxY5eCGNWA+W+CeDpB6M1PN3S7Am7jSv/Ttuxz2SnWbIiVQOn/TDaGaGtxo8CRWHkXwJscbUHtVw==";
+        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.13.1.tgz";
+        sha512 = "wVlh0IAi2t1iOEh16y4u1TRk6ubd4KvLE8dlMi+3QUI6SfKphQUh7tAwihGGSQ8affxEXpVIPpOdf9kjR4v4Pw==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -17420,13 +17591,13 @@ let
         sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     };
-    "core_d-3.0.0" = {
+    "core_d-3.2.0" = {
       name = "core_d";
       packageName = "core_d";
-      version = "3.0.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core_d/-/core_d-3.0.0.tgz";
-        sha512 = "6DM/spZ6j+Yha93TMdK+uz/ws82eDcYefPv2dKZBlMT5mFoJNG+zNPaqSpb5xFvrZh90KFXdSuau1Z+Jql2Tsg==";
+        url = "https://registry.npmjs.org/core_d/-/core_d-3.2.0.tgz";
+        sha512 = "waKkgHU2P19huhuMjCqCDWTYjxCIHoB+nnYjI7pVMUOC1giWxMNDrXkPw9QjWY+PWCFm49bD3wA/J+c7BGZ+og==";
       };
     };
     "cors-2.8.5" = {
@@ -17528,6 +17699,15 @@ let
         sha512 = "0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==";
       };
     };
+    "cp-file-9.0.0" = {
+      name = "cp-file";
+      packageName = "cp-file";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cp-file/-/cp-file-9.0.0.tgz";
+        sha512 = "hNEM3AuZz84zOPgL8ozJ057+DjuD6LpwyYNiyTsLDU71Ke2E3KV909xhGYLK7WQ0srJRwzs/1+bSE1pk/HRC6w==";
+      };
+    };
     "cpu-percentage-1.0.3" = {
       name = "cpu-percentage";
       packageName = "cpu-percentage";
@@ -17564,6 +17744,15 @@ let
         sha1 = "f4486b9bf0a12df83c3fca14e31e030fdabd9454";
       };
     };
+    "crc-3.6.0" = {
+      name = "crc";
+      packageName = "crc";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crc/-/crc-3.6.0.tgz";
+        sha512 = "K9CVP4+ugmpRvZidsumVVL1swX7t0cqYrLhT+5rAp7/S3TjiEtpovD8TISzy+3moanm6v6/cbXOzE6JbzB+siw==";
+      };
+    };
     "crc-3.8.0" = {
       name = "crc";
       packageName = "crc";
@@ -17618,13 +17807,13 @@ let
         sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
       };
     };
-    "create-gatsby-1.3.0" = {
+    "create-gatsby-1.6.0" = {
       name = "create-gatsby";
       packageName = "create-gatsby";
-      version = "1.3.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.3.0.tgz";
-        sha512 = "c78VG3AIqUg/sJCvxzFL5tGwO8MsDICRvyQ/FXS81Kf/QTr0ON9VvDjodEiM9AmtcyU5vRnM/GspEt1YfHo38A==";
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.6.0.tgz";
+        sha512 = "mNPBiTZ9aH24I2YInaiBoXDjPgibsystLsXXWpM5miIJpA6rZrJSRtHVGfXUxZXsKHLc/at2vNrFQbsVue3Nyg==";
       };
     };
     "create-graphback-1.0.1" = {
@@ -17726,15 +17915,6 @@ let
         sha512 = "KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==";
       };
     };
-    "cross-fetch-3.1.1" = {
-      name = "cross-fetch";
-      packageName = "cross-fetch";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.1.tgz";
-        sha512 = "eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==";
-      };
-    };
     "cross-fetch-3.1.4" = {
       name = "cross-fetch";
       packageName = "cross-fetch";
@@ -17879,6 +18059,15 @@ let
         sha512 = "oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==";
       };
     };
+    "css-3.0.0" = {
+      name = "css";
+      packageName = "css";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css/-/css-3.0.0.tgz";
+        sha512 = "DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==";
+      };
+    };
     "css-b64-images-0.2.5" = {
       name = "css-b64-images";
       packageName = "css-b64-images";
@@ -18095,13 +18284,13 @@ let
         sha512 = "teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==";
       };
     };
-    "css-what-5.0.0" = {
+    "css-what-5.0.1" = {
       name = "css-what";
       packageName = "css-what";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-5.0.0.tgz";
-        sha512 = "qxyKHQvgKwzwDWC/rGbT821eJalfupxYW2qbSJSAtdSTimsr/MlaGONoNLllaUPZWf8QnbcKM/kPVYUQuEKAFA==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz";
+        sha512 = "FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==";
       };
     };
     "cssauron-1.4.0" = {
@@ -18284,13 +18473,13 @@ let
         sha1 = "d1cfd8743c2f849a0abb2fd544db56695d19a490";
       };
     };
-    "csv-parse-4.15.3" = {
+    "csv-parse-4.15.4" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "4.15.3";
+      version = "4.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.3.tgz";
-        sha512 = "jlTqDvLdHnYMSr08ynNfk4IAUSJgJjTKy2U5CQBSu4cN9vQOJonLVZP4Qo4gKKrIgIQ5dr07UwOJdi+lRqT12w==";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz";
+        sha512 = "OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==";
       };
     };
     "csv-parser-1.12.1" = {
@@ -18905,24 +19094,6 @@ let
         sha512 = "e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==";
       };
     };
-    "damerau-levenshtein-1.0.6" = {
-      name = "damerau-levenshtein";
-      packageName = "damerau-levenshtein";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz";
-        sha512 = "JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==";
-      };
-    };
-    "dargs-6.1.0" = {
-      name = "dargs";
-      packageName = "dargs";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz";
-        sha512 = "5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==";
-      };
-    };
     "dargs-7.0.0" = {
       name = "dargs";
       packageName = "dargs";
@@ -19148,13 +19319,13 @@ let
         sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
       };
     };
-    "date-time-2.1.0" = {
+    "date-time-3.1.0" = {
       name = "date-time";
       packageName = "date-time";
-      version = "2.1.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz";
-        sha512 = "/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==";
+        url = "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz";
+        sha512 = "uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==";
       };
     };
     "dateformat-2.2.0" = {
@@ -19175,13 +19346,22 @@ let
         sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
       };
     };
-    "dayjs-1.10.4" = {
+    "dateformat-4.5.1" = {
+      name = "dateformat";
+      packageName = "dateformat";
+      version = "4.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz";
+        sha512 = "OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==";
+      };
+    };
+    "dayjs-1.10.5" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.10.4";
+      version = "1.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz";
-        sha512 = "RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz";
+        sha512 = "BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==";
       };
     };
     "dayjs-1.8.36" = {
@@ -20120,13 +20300,13 @@ let
         sha1 = "3871cc0a6a002e8c3e5b3cf7f336264675f06b9d";
       };
     };
-    "detect-indent-6.0.0" = {
+    "detect-indent-6.1.0" = {
       name = "detect-indent";
       packageName = "detect-indent";
-      version = "6.0.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz";
-        sha512 = "oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==";
+        url = "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz";
+        sha512 = "reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==";
       };
     };
     "detect-libc-1.0.3" = {
@@ -20165,13 +20345,13 @@ let
         sha512 = "TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==";
       };
     };
-    "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==";
       };
     };
     "detect-port-1.3.0" = {
@@ -20246,13 +20426,13 @@ let
         sha512 = "Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==";
       };
     };
-    "detective-postcss-3.0.1" = {
+    "detective-postcss-4.0.0" = {
       name = "detective-postcss";
       packageName = "detective-postcss";
-      version = "3.0.1";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detective-postcss/-/detective-postcss-3.0.1.tgz";
-        sha512 = "tfTS2GdpUal5NY0aCqI4dpEy8Xfr88AehYKB0iBIZvo8y2g3UsrcDnrp9PR2FbzoW7xD5Rip3NJW7eCSvtqdUw==";
+        url = "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz";
+        sha512 = "Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==";
       };
     };
     "detective-sass-3.0.1" = {
@@ -20282,13 +20462,13 @@ let
         sha1 = "50aee7db8babb990381f010c63fabba5b58e54cd";
       };
     };
-    "detective-typescript-5.8.0" = {
+    "detective-typescript-7.0.0" = {
       name = "detective-typescript";
       packageName = "detective-typescript";
-      version = "5.8.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detective-typescript/-/detective-typescript-5.8.0.tgz";
-        sha512 = "SrsUCfCaDTF64QVMHMidRal+kmkbIc5zP8cxxZPsomWx9vuEUjBlSJNhf7/ypE5cLdJJDI4qzKDmyzqQ+iz/xg==";
+        url = "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.0.tgz";
+        sha512 = "y/Ev98AleGvl43YKTNcA2Q+lyFmsmCfTTNWy4cjEJxoLkbobcXtRS0Kvx06daCgr2GdtlwLfNzL553BkktfJoA==";
       };
     };
     "devtools-protocol-0.0.854822" = {
@@ -20300,6 +20480,15 @@ let
         sha512 = "xd4D8kHQtB0KtWW0c9xBZD5LVtm9chkMOfs/3Yn01RhT/sFIsVtzTtypfKoFfWBaL+7xCYLxjOLkhwPXaX/Kcg==";
       };
     };
+    "devtools-protocol-0.0.869402" = {
+      name = "devtools-protocol";
+      packageName = "devtools-protocol";
+      version = "0.0.869402";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz";
+        sha512 = "VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==";
+      };
+    };
     "dezalgo-1.0.3" = {
       name = "dezalgo";
       packageName = "dezalgo";
@@ -20408,13 +20597,13 @@ let
         sha512 = "Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==";
       };
     };
-    "diff2html-3.4.3" = {
+    "diff2html-3.4.4" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.4.3";
+      version = "3.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.3.tgz";
-        sha512 = "ISnQ+aIZWyRsD6F/VZUoeXC3n54rT5tftHPJBZhbYzCDrJfTuiZMvzSY34uoN3xJ/ookMDn0FDs3hc67DmwEyA==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.4.tgz";
+        sha512 = "yAvhx2GbzzWCAWTepQJrdIPyrjL/29A5UepSAPwnHvwVB41N9oAMshonZmulrFFAFkDN8u9OHKKf/p3R06xuvQ==";
       };
     };
     "diff3-0.0.3" = {
@@ -20462,13 +20651,13 @@ let
         sha512 = "zBiL4ALDmviHdoLC0g0G6wVme5bwAow9WfhcZLLopXCAWgg3AEf7RYTs2xugszIGulRHzEVDF/SHl9oyQU07Pw==";
       };
     };
-    "dijkstrajs-1.0.1" = {
+    "dijkstrajs-1.0.2" = {
       name = "dijkstrajs";
       packageName = "dijkstrajs";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz";
-        sha1 = "d3cd81221e3ea40742cfcde556d4e99e98ddc71b";
+        url = "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz";
+        sha512 = "QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==";
       };
     };
     "dir-glob-2.0.0" = {
@@ -20561,13 +20750,13 @@ let
         sha512 = "EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ==";
       };
     };
-    "dispensary-0.61.0" = {
+    "dispensary-0.62.0" = {
       name = "dispensary";
       packageName = "dispensary";
-      version = "0.61.0";
+      version = "0.62.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.61.0.tgz";
-        sha512 = "5BK13jrYQ+0bHgZBv7IOQsff5ydeNcnp87w3c7T8x5im21RDFQyiHrTlH0DoouZDyAVHILpat4Ytf7gRuhMRgw==";
+        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.62.0.tgz";
+        sha512 = "x8vqPX7owhzDp3Y6t/iOuTuNoWx5hlZKITlzlybETsZoY05cYDubGpwt0soLfRLAWLuxX1lq0lTc/vXtk/CDCw==";
       };
     };
     "diveSync-0.3.0" = {
@@ -20633,13 +20822,13 @@ let
         sha1 = "5d66629b3c0e6a5eb0e14f0ae701d05f6ea46673";
       };
     };
-    "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-packet-4.2.0" = {
@@ -20651,6 +20840,15 @@ let
         sha512 = "bn1AKpfkFbm0MIioOMHZ5qJzl2uypdBwI4nYNsqvhjsegBhcKJUlCrMPWLx6JEezRjxZmxhtIz/FkBEur2l8Cw==";
       };
     };
+    "dns-packet-5.2.4" = {
+      name = "dns-packet";
+      packageName = "dns-packet";
+      version = "5.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dns-packet/-/dns-packet-5.2.4.tgz";
+        sha512 = "vgu5Bx5IV8mXmh/9cn1lzn+J7okFlXe1vBRp+kCBJXg1nBED6Z/Q4e+QaDxQRSozMr14p/VQmdXwsf/I2wGjUA==";
+      };
+    };
     "dns-socket-3.0.0" = {
       name = "dns-socket";
       packageName = "dns-socket";
@@ -20741,15 +20939,6 @@ let
         sha512 = "WfJEuXWdVdiarhxJgRlZ9bkMO/9un6dZDz+u3z6AYEXfsH2XRwYqdIvyOqFzaDDP0Hc6pR5rb9FJRSKyo+NuxA==";
       };
     };
-    "doctrine-1.5.0" = {
-      name = "doctrine";
-      packageName = "doctrine";
-      version = "1.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz";
-        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
-      };
-    };
     "doctrine-2.1.0" = {
       name = "doctrine";
       packageName = "doctrine";
@@ -20831,13 +21020,13 @@ let
         sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==";
       };
     };
-    "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==";
       };
     };
     "dom-storage-2.1.0" = {
@@ -20966,13 +21155,13 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-2.2.7" = {
+    "dompurify-2.2.9" = {
       name = "dompurify";
       packageName = "dompurify";
-      version = "2.2.7";
+      version = "2.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.2.7.tgz";
-        sha512 = "jdtDffdGNY+C76jvodNTu9jt5yYj59vuTUyx+wXdzcSwAGTYZDAQkQ7Iwx9zcGrA4ixC1syU4H3RZROqRxokxg==";
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.2.9.tgz";
+        sha512 = "+9MqacuigMIZ+1+EwoEltogyWGFTJZWU3258Rupxs+2CGs4H914G9er6pZbsme/bvb5L67o2rade9n21e4RW/w==";
       };
     };
     "domutils-1.4.3" = {
@@ -21056,6 +21245,15 @@ let
         sha1 = "d36517fe24b7cda61fce7a5026a0024afaf5a439";
       };
     };
+    "dotenv-10.0.0" = {
+      name = "dotenv";
+      packageName = "dotenv";
+      version = "10.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz";
+        sha512 = "rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==";
+      };
+    };
     "dotenv-5.0.1" = {
       name = "dotenv";
       packageName = "dotenv";
@@ -21074,13 +21272,22 @@ let
         sha512 = "HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==";
       };
     };
-    "dotenv-8.2.0" = {
+    "dotenv-8.6.0" = {
       name = "dotenv";
       packageName = "dotenv";
-      version = "8.2.0";
+      version = "8.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz";
+        sha512 = "IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==";
+      };
+    };
+    "dotenv-9.0.2" = {
+      name = "dotenv";
+      packageName = "dotenv";
+      version = "9.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz";
-        sha512 = "8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==";
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz";
+        sha512 = "I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==";
       };
     };
     "dotenv-expand-5.1.0" = {
@@ -21137,15 +21344,6 @@ let
         sha512 = "xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==";
       };
     };
-    "download-8.0.0" = {
-      name = "download";
-      packageName = "download";
-      version = "8.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/download/-/download-8.0.0.tgz";
-        sha512 = "ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==";
-      };
-    };
     "download-git-repo-1.1.0" = {
       name = "download-git-repo";
       packageName = "download-git-repo";
@@ -21173,15 +21371,6 @@ let
         sha512 = "N8hWXD4hXqmEcNoR8TBYFntaOcYvEQ7Bz90mgm3bZRTuteGQqwT32VDMnTyD0KTEvb8BWrMc1tVmzuV9u/WrAg==";
       };
     };
-    "download-stats-0.3.4" = {
-      name = "download-stats";
-      packageName = "download-stats";
-      version = "0.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/download-stats/-/download-stats-0.3.4.tgz";
-        sha512 = "ic2BigbyUWx7/CBbsfGjf71zUNZB4edBGC3oRliSzsoNmvyVx3Ycfp1w3vp2Y78Ee0eIIkjIEO5KzW0zThDGaA==";
-      };
-    };
     "draftlog-1.0.13" = {
       name = "draftlog";
       packageName = "draftlog";
@@ -21389,15 +21578,6 @@ let
         sha1 = "94a44248bb87da35db0eff7af0aa576168117f59";
       };
     };
-    "editions-2.3.1" = {
-      name = "editions";
-      packageName = "editions";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz";
-        sha512 = "ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==";
-      };
-    };
     "editor-1.0.0" = {
       name = "editor";
       packageName = "editor";
@@ -21497,13 +21677,13 @@ let
         sha512 = "1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==";
       };
     };
-    "electron-to-chromium-1.3.717" = {
+    "electron-to-chromium-1.3.743" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.717";
+      version = "1.3.743";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz";
-        sha512 = "OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.743.tgz";
+        sha512 = "K2wXfo9iZQzNJNx67+Pld0DRF+9bYinj62gXCdgPhcu1vidwVuLPHQPPFnCdO55njWigXXpfBiT90jGUPbw8Zg==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -21652,15 +21832,6 @@ let
         sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
       };
     };
-    "emoji-regex-9.2.2" = {
-      name = "emoji-regex";
-      packageName = "emoji-regex";
-      version = "9.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz";
-        sha512 = "L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==";
-      };
-    };
     "emoji-server-1.0.0" = {
       name = "emoji-server";
       packageName = "emoji-server";
@@ -21868,13 +22039,13 @@ let
         sha512 = "t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==";
       };
     };
-    "engine.io-5.0.0" = {
+    "engine.io-5.1.1" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "5.0.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-5.0.0.tgz";
-        sha512 = "BATIdDV3H1SrE9/u2BAotvsmjJg0t1P4+vGedImSs1lkFAtQdvk4Ev1y4LDiPF7BPWgXWEG+NDY+nLvW3UrMWw==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz";
+        sha512 = "aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==";
       };
     };
     "engine.io-client-1.3.1" = {
@@ -21895,13 +22066,13 @@ let
         sha512 = "iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==";
       };
     };
-    "engine.io-client-3.5.1" = {
+    "engine.io-client-3.5.2" = {
       name = "engine.io-client";
       packageName = "engine.io-client";
-      version = "3.5.1";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz";
-        sha512 = "oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==";
+        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz";
+        sha512 = "QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==";
       };
     };
     "engine.io-parser-1.0.6" = {
@@ -21949,13 +22120,13 @@ let
         sha512 = "Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==";
       };
     };
-    "enhanced-resolve-5.7.0" = {
+    "enhanced-resolve-5.8.2" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.7.0";
+      version = "5.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz";
-        sha512 = "6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz";
+        sha512 = "F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==";
       };
     };
     "enquirer-2.3.6" = {
@@ -22120,15 +22291,6 @@ let
         sha512 = "nm1o1ncxcJvXtLJVoPl4AJFX7Bh0BhPsTC9XhCRWwdRJXp1Ud1DcGpi/6c3sUA/URmyoIc1WONNdub+/AE5vTQ==";
       };
     };
-    "err-code-1.1.2" = {
-      name = "err-code";
-      packageName = "err-code";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz";
-        sha1 = "06e0116d3028f6aef4806849eb0ea6a748ae6960";
-      };
-    };
     "err-code-2.0.3" = {
       name = "err-code";
       packageName = "err-code";
@@ -22147,15 +22309,6 @@ let
         sha512 = "GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==";
       };
     };
-    "errlop-2.2.0" = {
-      name = "errlop";
-      packageName = "errlop";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz";
-        sha512 = "e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==";
-      };
-    };
     "errno-0.1.8" = {
       name = "errno";
       packageName = "errno";
@@ -22165,22 +22318,22 @@ let
         sha512 = "dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==";
       };
     };
-    "error-7.0.2" = {
+    "error-10.4.0" = {
       name = "error";
       packageName = "error";
-      version = "7.0.2";
+      version = "10.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/error/-/error-7.0.2.tgz";
-        sha1 = "a5f75fff4d9926126ddac0ea5dc38e689153cb02";
+        url = "https://registry.npmjs.org/error/-/error-10.4.0.tgz";
+        sha512 = "YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==";
       };
     };
-    "error-7.2.1" = {
+    "error-7.0.2" = {
       name = "error";
       packageName = "error";
-      version = "7.2.1";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/error/-/error-7.2.1.tgz";
-        sha512 = "fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==";
+        url = "https://registry.npmjs.org/error/-/error-7.0.2.tgz";
+        sha1 = "a5f75fff4d9926126ddac0ea5dc38e689153cb02";
       };
     };
     "error-ex-1.3.2" = {
@@ -22210,13 +22363,13 @@ let
         sha512 = "rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==";
       };
     };
-    "es-abstract-1.18.0" = {
+    "es-abstract-1.18.3" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.18.0";
+      version = "1.18.3";
       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.3.tgz";
+        sha512 = "nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==";
       };
     };
     "es-get-iterator-1.1.2" = {
@@ -22381,13 +22534,13 @@ let
         sha512 = "p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==";
       };
     };
-    "esbuild-0.11.12" = {
+    "esbuild-0.11.10" = {
       name = "esbuild";
       packageName = "esbuild";
-      version = "0.11.12";
+      version = "0.11.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.11.12.tgz";
-        sha512 = "c8cso/1RwVj+fbDvLtUgSG4ZJQ0y9Zdrl6Ot/GAjyy4pdMCHaFnDMts5gqFnWRPLajWtEnI+3hlET4R9fVoZng==";
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.11.10.tgz";
+        sha512 = "XvGbf+UreVFA24Tlk6sNOqNcvF2z49XAZt4E7A4H80+yqn944QOLTTxaU0lkdYNtZKFiITNea+VxmtrfjvnLPA==";
       };
     };
     "esc-exit-2.0.2" = {
@@ -22561,15 +22714,6 @@ let
         sha512 = "S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==";
       };
     };
-    "eslint-7.21.0" = {
-      name = "eslint";
-      packageName = "eslint";
-      version = "7.21.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.21.0.tgz";
-        sha512 = "W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==";
-      };
-    };
     "eslint-7.24.0" = {
       name = "eslint";
       packageName = "eslint";
@@ -22579,40 +22723,22 @@ let
         sha512 = "k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==";
       };
     };
-    "eslint-import-resolver-node-0.3.4" = {
-      name = "eslint-import-resolver-node";
-      packageName = "eslint-import-resolver-node";
-      version = "0.3.4";
-      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==";
-      };
-    };
-    "eslint-module-utils-2.6.0" = {
-      name = "eslint-module-utils";
-      packageName = "eslint-module-utils";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
-        sha512 = "6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==";
-      };
-    };
-    "eslint-plugin-import-2.22.1" = {
-      name = "eslint-plugin-import";
-      packageName = "eslint-plugin-import";
-      version = "2.22.1";
+    "eslint-7.27.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.27.0";
       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/-/eslint-7.27.0.tgz";
+        sha512 = "JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==";
       };
     };
-    "eslint-plugin-jsx-a11y-6.4.1" = {
-      name = "eslint-plugin-jsx-a11y";
-      packageName = "eslint-plugin-jsx-a11y";
-      version = "6.4.1";
+    "eslint-config-prettier-8.3.0" = {
+      name = "eslint-config-prettier";
+      packageName = "eslint-config-prettier";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz";
-        sha512 = "0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==";
+        url = "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz";
+        sha512 = "BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==";
       };
     };
     "eslint-plugin-no-unsanitized-3.1.4" = {
@@ -22624,22 +22750,13 @@ let
         sha512 = "WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==";
       };
     };
-    "eslint-plugin-react-7.23.2" = {
-      name = "eslint-plugin-react";
-      packageName = "eslint-plugin-react";
-      version = "7.23.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz";
-        sha512 = "AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==";
-      };
-    };
-    "eslint-plugin-react-hooks-4.2.0" = {
-      name = "eslint-plugin-react-hooks";
-      packageName = "eslint-plugin-react-hooks";
-      version = "4.2.0";
+    "eslint-plugin-prettier-3.4.0" = {
+      name = "eslint-plugin-prettier";
+      packageName = "eslint-plugin-prettier";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz";
-        sha512 = "623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==";
+        url = "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz";
+        sha512 = "UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==";
       };
     };
     "eslint-plugin-vue-6.2.2" = {
@@ -22651,13 +22768,13 @@ let
         sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==";
       };
     };
-    "eslint-plugin-vue-7.9.0" = {
+    "eslint-plugin-vue-7.10.0" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
-      version = "7.9.0";
+      version = "7.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.9.0.tgz";
-        sha512 = "2Q0qQp5+5h+pZvJKCbG1/jCRUYrdgAz5BYKGyTlp2NU8mx09u3Hp7PsH6d5qef6ojuPoCXMnrbbDxeoplihrSw==";
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.10.0.tgz";
+        sha512 = "xdr6e4t/L2moRAeEQ9HKgge/hFq+w9v5Dj+BA54nTAzSFdUyKLiSOdZaRQjCHMY0Pk2WaQBFH9QiWG60xiC+6A==";
       };
     };
     "eslint-scope-3.7.3" = {
@@ -22705,6 +22822,15 @@ let
         sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
       };
     };
+    "eslint-utils-3.0.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz";
+        sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==";
+      };
+    };
     "eslint-visitor-keys-1.3.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
@@ -22723,6 +22849,15 @@ let
         sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
       };
     };
+    "eslint-visitor-keys-2.1.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
+      };
+    };
     "esmangle-1.0.1" = {
       name = "esmangle";
       packageName = "esmangle";
@@ -23227,15 +23362,6 @@ let
         sha512 = "Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==";
       };
     };
-    "events-to-array-1.1.2" = {
-      name = "events-to-array";
-      packageName = "events-to-array";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz";
-        sha1 = "2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6";
-      };
-    };
     "events.node-0.4.9" = {
       name = "events.node";
       packageName = "events.node";
@@ -23380,13 +23506,13 @@ let
         sha512 = "j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==";
       };
     };
-    "execa-5.0.0" = {
+    "execa-5.0.1" = {
       name = "execa";
       packageName = "execa";
-      version = "5.0.0";
+      version = "5.0.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.0.1.tgz";
+        sha512 = "4hFTjFbFzQa3aCLobpbPJR/U+VoL1wdV5ozOWjeet0AWDeYr9UFGM1eUFWHX+VtOWFq4p0xXUXfW1YxUaP4fpw==";
       };
     };
     "execall-1.0.0" = {
@@ -23416,22 +23542,22 @@ let
         sha512 = "8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==";
       };
     };
-    "exegesis-2.5.6" = {
+    "exegesis-2.5.7" = {
       name = "exegesis";
       packageName = "exegesis";
-      version = "2.5.6";
+      version = "2.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/exegesis/-/exegesis-2.5.6.tgz";
-        sha512 = "e+YkH/zZTN2njiwrV8tY6tHGDsFu3LyR/YbrqdWvDZaAJ5YGWaBYyd3oX/Y26iGqQc+7jLEKLDTv2UPzjAYL8w==";
+        url = "https://registry.npmjs.org/exegesis/-/exegesis-2.5.7.tgz";
+        sha512 = "Y0gEY3hgoLa80aMUm8rhhlIW3/KWo4uqN5hKJqok2GLh3maZjRLRC+p0gj33Jw3upAOKOXeRgScT5rtRoMyxwQ==";
       };
     };
-    "exegesis-express-2.0.0" = {
+    "exegesis-express-2.0.1" = {
       name = "exegesis-express";
       packageName = "exegesis-express";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.0.tgz";
-        sha512 = "NKvKBsBa2OvU+1BFpWbz3PzoRMhA9q7/wU2oMmQ9X8lPy/FRatADvhlkGO1zYOMgeo35k1ZLO9ZV0uIs9pPnXg==";
+        url = "https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.1.tgz";
+        sha512 = "8ORl1YRygYGPdR+zcClMqzaU+JQuvdNIw/s0RNwYluxNecEHkDEcXFmO6A5T79p7e48KI8iXJYt6KIn4Z9z4bg==";
       };
     };
     "exif-parser-0.1.12" = {
@@ -23533,13 +23659,13 @@ let
         sha1 = "a793d3ac0cad4c6ab571e9968fbbab6cb2532929";
       };
     };
-    "expo-pwa-0.0.72" = {
+    "expo-pwa-0.0.82" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.72";
+      version = "0.0.82";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.72.tgz";
-        sha512 = "Mhyl8aqUwncBDo+zBWpqoXIFe38cfK0A4axKmJaiy8IIZd+ficVqo4zXrYVeuKpBY+P+eqEbXLbhTJlktkMhow==";
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.82.tgz";
+        sha512 = "4TSJRmVl3/gOQbE56Xe7P+A+zIqNF2asqMtC8Au/YQF0o4emmEAICEwCCRMg2jdtgq7qVDwWjBfMNLDdGS4HrQ==";
       };
     };
     "express-2.5.11" = {
@@ -23668,6 +23794,15 @@ let
         sha512 = "UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==";
       };
     };
+    "express-session-1.17.2" = {
+      name = "express-session";
+      packageName = "express-session";
+      version = "1.17.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-session/-/express-session-1.17.2.tgz";
+        sha512 = "mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ==";
+      };
+    };
     "express-urlrewrite-1.4.0" = {
       name = "express-urlrewrite";
       packageName = "express-urlrewrite";
@@ -24046,13 +24181,13 @@ let
         sha512 = "4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==";
       };
     };
-    "fast-equals-2.0.0" = {
+    "fast-equals-2.0.3" = {
       name = "fast-equals";
       packageName = "fast-equals";
-      version = "2.0.0";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.0.tgz";
-        sha512 = "u6RBd8cSiLLxAiC04wVsLV6GBFDOXcTCgWkd3wEoFXgidPSoAJENqC9m7Jb2vewSvjBIfXV6icKeh3GTKfIaXA==";
+        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.3.tgz";
+        sha512 = "0EMw4TTUxsMDpDkCg0rXor2gsg+npVrMIHbEhvD0HZyIhUX6AktC/yasm+qKwfyswd06Qy95ZKk8p2crTo0iPA==";
       };
     };
     "fast-glob-2.2.7" = {
@@ -24127,13 +24262,13 @@ let
         sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
       };
     };
-    "fast-redact-3.0.0" = {
+    "fast-redact-3.0.1" = {
       name = "fast-redact";
       packageName = "fast-redact";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.0.tgz";
-        sha512 = "a/S/Hp6aoIjx7EmugtzLqXmcNsyFszqbt6qQ99BdG61QjBZF6shNis0BYR6TsZOQ1twYc0FN2Xdhwwbv6+KD0w==";
+        url = "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz";
+        sha512 = "kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==";
       };
     };
     "fast-safe-stringify-1.2.3" = {
@@ -24235,13 +24370,13 @@ let
         sha512 = "CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==";
       };
     };
-    "faunadb-4.0.3" = {
+    "faunadb-4.3.0" = {
       name = "faunadb";
       packageName = "faunadb";
-      version = "4.0.3";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/faunadb/-/faunadb-4.0.3.tgz";
-        sha512 = "pfXX3pwyQQfsx+wO4u8m16gQyDPJRbpjMGk5fCzq0tCT/3mPyCVlc5zTorSdBWWmLFuResP9idFrWdqo+q2IEA==";
+        url = "https://registry.npmjs.org/faunadb/-/faunadb-4.3.0.tgz";
+        sha512 = "H5ZnInUNLAvrjqDHYXmYX+S55HP8Ib85QbF/UK1fV/bz125unl7J7LbjqKvMGcREYqOvIrpQCaniK1LwAkXHTw==";
       };
     };
     "faye-websocket-0.10.0" = {
@@ -24253,13 +24388,13 @@ let
         sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
       };
     };
-    "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==";
       };
     };
     "fb-watchman-2.0.1" = {
@@ -24478,15 +24613,6 @@ let
         sha512 = "uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==";
       };
     };
-    "file-type-11.1.0" = {
-      name = "file-type";
-      packageName = "file-type";
-      version = "11.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz";
-        sha512 = "rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==";
-      };
-    };
     "file-type-14.7.1" = {
       name = "file-type";
       packageName = "file-type";
@@ -24496,13 +24622,13 @@ let
         sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
       };
     };
-    "file-type-16.3.0" = {
+    "file-type-16.5.0" = {
       name = "file-type";
       packageName = "file-type";
-      version = "16.3.0";
+      version = "16.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-type/-/file-type-16.3.0.tgz";
-        sha512 = "ZA0hV64611vJT42ltw0T9IDwHApQuxRdrmQZWTeDmeAUtZBBVSQW3nSQqhhW1cAgpXgqcJvm410BYHXJQ9AymA==";
+        url = "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz";
+        sha512 = "OxgWA9tbL8N/WP00GD1z8O0MiwQKFyWRs1q+3FhjdvcGgKqwxcejyGWso3n4/IMU6DdwV+ARZ4A7TTnPkDcSiw==";
       };
     };
     "file-type-3.9.0" = {
@@ -24613,15 +24739,6 @@ let
         sha512 = "ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==";
       };
     };
-    "filenamify-3.0.0" = {
-      name = "filenamify";
-      packageName = "filenamify";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz";
-        sha512 = "5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==";
-      };
-    };
     "filenamify-4.1.0" = {
       name = "filenamify";
       packageName = "filenamify";
@@ -24631,13 +24748,13 @@ let
         sha512 = "KQV/uJDI9VQgN7sHH1Zbk6+42cD6mnQ2HONzkXUfPJ+K2FC8GZ1dpewbbHw0Sz8Tf5k3EVdHVayM4DoAwWlmtg==";
       };
     };
-    "filenamify-4.2.0" = {
+    "filenamify-4.3.0" = {
       name = "filenamify";
       packageName = "filenamify";
-      version = "4.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz";
-        sha512 = "pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==";
+        url = "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz";
+        sha512 = "hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==";
       };
     };
     "filesize-3.6.1" = {
@@ -24658,13 +24775,13 @@ let
         sha512 = "LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==";
       };
     };
-    "filesize-6.2.5" = {
+    "filesize-6.3.0" = {
       name = "filesize";
       packageName = "filesize";
-      version = "6.2.5";
+      version = "6.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/filesize/-/filesize-6.2.5.tgz";
-        sha512 = "JkM1y2+IpnEwp3pbXOUXR+9ytuZE07ZnWb/OR0H/WOSkjWASpmXgC0ZBIs4/SAYq9wHqExeQxcYNoJKf6s0RCg==";
+        url = "https://registry.npmjs.org/filesize/-/filesize-6.3.0.tgz";
+        sha512 = "ytx0ruGpDHKWVoiui6+BY/QMNngtDQ/pJaFwfBpQif0J63+E8DLdFyqS3NkKQn7vIruUEpoGD9JUJSg7Kp+I0g==";
       };
     };
     "filestream-5.0.0" = {
@@ -24838,6 +24955,15 @@ let
         sha512 = "1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==";
       };
     };
+    "find-yarn-workspace-root2-1.2.16" = {
+      name = "find-yarn-workspace-root2";
+      packageName = "find-yarn-workspace-root2";
+      version = "1.2.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz";
+        sha512 = "hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==";
+      };
+    };
     "findit-1.2.0" = {
       name = "findit";
       packageName = "findit";
@@ -24892,13 +25018,13 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
-    "firefox-profile-4.1.0" = {
+    "firefox-profile-4.2.0" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.1.0.tgz";
-        sha512 = "n+0jsWhW57i7cAmdHg67W6u5vVSoIJN9D+d7M3w1MzhFLE5X/QxBfP80ksjNvNQDFXGdJQAnW9YupLkzgCxaFQ==";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.2.0.tgz";
+        sha512 = "Z+/6GQ0JEW2eqgj63EYNbgKSgoIz7w1yXlkOWAIRkCNnj50rkfnQIz8uYwJkobxwYQM8vjFIbYiVtYuQV8US2A==";
       };
     };
     "first-chunk-stream-2.0.0" = {
@@ -25018,15 +25144,6 @@ let
         sha1 = "248cf79a3da7d7dc379e2a11c92a2719cbb540f6";
       };
     };
-    "flatmap-0.0.3" = {
-      name = "flatmap";
-      packageName = "flatmap";
-      version = "0.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flatmap/-/flatmap-0.0.3.tgz";
-        sha1 = "1f18a4d938152d495965f9c958d923ab2dd669b4";
-      };
-    };
     "flatstr-1.0.12" = {
       name = "flatstr";
       packageName = "flatstr";
@@ -25090,13 +25207,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.149.0" = {
+    "flow-parser-0.152.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.149.0";
+      version = "0.152.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.149.0.tgz";
-        sha512 = "ruUVkZuM9oFQjhSsLO/OJYRYpGnuXJpTnIZmgzna6DyLFb3CLpeO27oJbWyeXaa830hmKf0JRzpcdFsFS8lmpg==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.152.0.tgz";
+        sha512 = "qRXGE3ztuhyI2ovi4Ixwq7/GUYvKX9wmFdwBof2q5pWHteuveexFrlbwZxSonC0dWz2znA6sW+vce4RXgYLnnQ==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -25261,13 +25378,13 @@ let
         sha512 = "VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==";
       };
     };
-    "follow-redirects-1.13.3" = {
+    "follow-redirects-1.14.1" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.13.3";
+      version = "1.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz";
-        sha512 = "DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz";
+        sha512 = "HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -25522,6 +25639,15 @@ let
         sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
       };
     };
+    "forwarded-0.2.0" = {
+      name = "forwarded";
+      packageName = "forwarded";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz";
+        sha512 = "buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==";
+      };
+    };
     "fp-and-or-0.1.3" = {
       name = "fp-and-or";
       packageName = "fp-and-or";
@@ -25531,13 +25657,13 @@ let
         sha512 = "wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g==";
       };
     };
-    "fp-ts-2.10.2" = {
+    "fp-ts-2.10.5" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.10.2";
+      version = "2.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.10.2.tgz";
-        sha512 = "YB/FSwESW8C3kVCbbyFiZSXXoQEJ/SaeHHorL6KCKHoPIPV6v/hyfMiXBPMjW7O7D9jfxlRs6VeCRonfqi1Tcg==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.10.5.tgz";
+        sha512 = "X2KfTIV0cxIk3d7/2Pvp/pxL/xr2MV1WooyEzKtTWYSc1+52VF4YzjBTXqeOlSiZsPCxIBpDGfT9Dyo7WEY0DQ==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -25630,15 +25756,6 @@ let
         sha512 = "8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==";
       };
     };
-    "fs-capacitor-6.2.0" = {
-      name = "fs-capacitor";
-      packageName = "fs-capacitor";
-      version = "6.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz";
-        sha512 = "nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==";
-      };
-    };
     "fs-chunk-store-1.7.0" = {
       name = "fs-chunk-store";
       packageName = "fs-chunk-store";
@@ -25684,15 +25801,6 @@ let
         sha1 = "982d6893af918e72d08dec9e8673ff2b5a8d6add";
       };
     };
-    "fs-extra-0.23.1" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "0.23.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz";
-        sha1 = "6611dba6adf2ab8dc9c69fab37cddf8818157e3d";
-      };
-    };
     "fs-extra-0.24.0" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -25729,6 +25837,15 @@ let
         sha1 = "cd3ce5f7e7cb6145883fcae3191e9877f8587950";
       };
     };
+    "fs-extra-10.0.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "10.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz";
+        sha512 = "C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==";
+      };
+    };
     "fs-extra-4.0.3" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -26044,13 +26161,13 @@ let
         sha1 = "979e22f9451b4b38f051f7937c919dbacc692958";
       };
     };
-    "fx-runner-1.0.13" = {
+    "fx-runner-1.1.0" = {
       name = "fx-runner";
       packageName = "fx-runner";
-      version = "1.0.13";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.0.13.tgz";
-        sha512 = "Ces2bm+LNuXehkvmN1/Z+oEDkI/jHBp9xdyBtBy7hcgvF18/pv/D8F6A6kQgNkMZsnBgLEv+VvdDxyqkfkYycw==";
+        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.1.0.tgz";
+        sha512 = "v/Eo69DDFW30zPdvjCYVXddjVvLy2xGeRbg0S18bPd8kEc0q9VsDoDkjyOxY5lTZsAqcQGy0OWjs3HCfRVBNSg==";
       };
     };
     "galactus-0.2.1" = {
@@ -26062,31 +26179,31 @@ let
         sha1 = "cbed2d20a40c1f5679a35908e2b9415733e78db9";
       };
     };
-    "gatsby-core-utils-2.3.0" = {
+    "gatsby-core-utils-2.6.0" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
-      version = "2.3.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.3.0.tgz";
-        sha512 = "M7RlR6jL2dtkUu4AoKBoQaPTsbpByzWHc7HBgeYdwzuqbk4VuMe6K76pFDvFSNj0+LvVhWoRGHO7OEtpfb2bEA==";
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.6.0.tgz";
+        sha512 = "d8a/iblc3wIrLEOWTUcoK5uYE2DrvlQmeulx6DK3NY49KD8jet8ozB6T5GA1CftsvowWeO6aaDnoWDbTxIxTRA==";
       };
     };
-    "gatsby-recipes-0.14.0" = {
+    "gatsby-recipes-0.17.0" = {
       name = "gatsby-recipes";
       packageName = "gatsby-recipes";
-      version = "0.14.0";
+      version = "0.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.14.0.tgz";
-        sha512 = "f8vZtHA7mCWqLE/xxEs4gpKxfM53L4dPic6hkALMlNfg8040eu05D6YbNT3i3QLsyqpvX1vKH88SBHk7swwW8w==";
+        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.17.0.tgz";
+        sha512 = "tC2xUa05zrUp77DTyQE11ILhFiqv9JYxBHhh47b7tJGiLAU1XhjxZH0uFZ109r9wEeZjxTYOYkyoiTu+0Ps4pw==";
       };
     };
-    "gatsby-telemetry-2.3.0" = {
+    "gatsby-telemetry-2.6.0" = {
       name = "gatsby-telemetry";
       packageName = "gatsby-telemetry";
-      version = "2.3.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.3.0.tgz";
-        sha512 = "dr7pILAnEtoG9ZUyPRljSwB/fGBDM4OCoM0mGw3DYr6HFlvrsbIl7AVL4LVJIr4TrtVUrhTjC/crSw+bTzO42A==";
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.6.0.tgz";
+        sha512 = "ENrhT4tkETj9Gq48d+ziiyNTX8Q8/5EyqqWvDUTCSefeHV5xpBclJ+CEnxZkmkEa/QSoBCpjws2VbxnTmRwjWA==";
       };
     };
     "gauge-1.2.7" = {
@@ -26107,13 +26224,13 @@ let
         sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     };
-    "gaxios-4.2.0" = {
+    "gaxios-4.3.0" = {
       name = "gaxios";
       packageName = "gaxios";
-      version = "4.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gaxios/-/gaxios-4.2.0.tgz";
-        sha512 = "Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g==";
+        url = "https://registry.npmjs.org/gaxios/-/gaxios-4.3.0.tgz";
+        sha512 = "pHplNbslpwCLMyII/lHPWFQbJWOX0B3R1hwBEOvzYi1GmdKZruuEHK4N9V6f7tf1EaPYyF80mui1+344p6SmLg==";
       };
     };
     "gaze-1.1.3" = {
@@ -26368,15 +26485,6 @@ let
         sha512 = "jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==";
       };
     };
-    "get-stdin-7.0.0" = {
-      name = "get-stdin";
-      packageName = "get-stdin";
-      version = "7.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz";
-        sha512 = "zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==";
-      };
-    };
     "get-stdin-8.0.0" = {
       name = "get-stdin";
       packageName = "get-stdin";
@@ -26485,15 +26593,6 @@ let
         sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
       };
     };
-    "gh-got-5.0.0" = {
-      name = "gh-got";
-      packageName = "gh-got";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz";
-        sha1 = "ee95be37106fd8748a96f8d1db4baea89e1bfa8a";
-      };
-    };
     "gh-release-fetch-1.1.0" = {
       name = "gh-release-fetch";
       packageName = "gh-release-fetch";
@@ -26701,15 +26800,6 @@ let
         sha1 = "f985fedcc0a9aa579dc88d7aff068d55cc6251a0";
       };
     };
-    "github-username-3.0.0" = {
-      name = "github-username";
-      packageName = "github-username";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz";
-        sha1 = "0a772219b3130743429f2456d0bdd3db55dce7b1";
-      };
-    };
     "gl-matrix-2.8.1" = {
       name = "gl-matrix";
       packageName = "gl-matrix";
@@ -26782,6 +26872,15 @@ let
         sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
       };
     };
+    "glob-7.1.7" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz";
+        sha512 = "OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==";
+      };
+    };
     "glob-base-0.3.0" = {
       name = "glob-base";
       packageName = "glob-base";
@@ -26818,6 +26917,15 @@ let
         sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
       };
     };
+    "glob-parent-6.0.0" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.0.tgz";
+        sha512 = "Hdd4287VEJcZXUwv1l8a+vXC1GjOQqXe+VS30w/ypihpcnu9M1n3xeYeJu5CBpeEQj2nAab2xxz28GuA3vp4Ww==";
+      };
+    };
     "glob-slash-1.0.0" = {
       name = "glob-slash";
       packageName = "glob-slash";
@@ -27035,13 +27143,13 @@ let
         sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
       };
     };
-    "globals-13.8.0" = {
+    "globals-13.9.0" = {
       name = "globals";
       packageName = "globals";
-      version = "13.8.0";
+      version = "13.9.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.9.0.tgz";
+        sha512 = "74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==";
       };
     };
     "globals-9.18.0" = {
@@ -27197,6 +27305,15 @@ let
         sha512 = "zNvkjnJQWbFWtK7or4CtX0WMy2n5AfMVnob5ipf+AznwLxKX8KyqY9W4bzYpVh6Xjm9N21ZUbubsPheV3mA4qQ==";
       };
     };
+    "goldengate-10.0.4" = {
+      name = "goldengate";
+      packageName = "goldengate";
+      version = "10.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/goldengate/-/goldengate-10.0.4.tgz";
+        sha512 = "WuLSD4trXP8fN8jCpWlNMpobrf1DBYCEy/0+SVrzen6znQepM4rRCByuna1Iy1G/XsbbdFiwYBd9iSxJiwqjDQ==";
+      };
+    };
     "gonzales-pe-4.3.0" = {
       name = "gonzales-pe";
       packageName = "gonzales-pe";
@@ -27224,13 +27341,13 @@ let
         sha512 = "Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==";
       };
     };
-    "google-auth-library-7.0.4" = {
+    "google-auth-library-7.1.0" = {
       name = "google-auth-library";
       packageName = "google-auth-library";
-      version = "7.0.4";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.4.tgz";
-        sha512 = "o8irYyeijEiecTXeoEe8UKNEzV1X+uhR4b2oNdapDMZixypp0J+eHimGOyx5Joa3UAeokGngdtDLXtq9vDqG2Q==";
+        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.1.0.tgz";
+        sha512 = "X+gbkGjnLN3HUZP2W3KBREuA603BXd80ITvL0PeS0QpyDNYz/u0pIZ7aRuGnrSuUc0grk/qxEgtVTFt1ogbP+A==";
       };
     };
     "google-closure-compiler-js-20170910.0.1" = {
@@ -27242,13 +27359,13 @@ let
         sha512 = "Vric7QFWxzHFxITZ10bmlG1H/5rhODb7hJuWyKWMD8GflpQzRmbMVqkFp3fKvN+U9tPwZItGVhkiOR+84PX3ew==";
       };
     };
-    "google-gax-2.11.2" = {
+    "google-gax-2.14.1" = {
       name = "google-gax";
       packageName = "google-gax";
-      version = "2.11.2";
+      version = "2.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/google-gax/-/google-gax-2.11.2.tgz";
-        sha512 = "PNqXv7Oi5XBMgoMWVxLZHUidfMv7cPHrDSDXqLyEd6kY6pqFnVKC8jt2T1df4JPSc2+VLPdeo6L7X9mbdQG8Xw==";
+        url = "https://registry.npmjs.org/google-gax/-/google-gax-2.14.1.tgz";
+        sha512 = "I5RDEN7MEptrCxeHX3ht7nKFGfyjgYX4hQKI9eVMBohMzVbFSwWUndo0CcKXu8es7NhB4gt2XYLm1AHkXhtHpA==";
       };
     };
     "google-p12-pem-3.0.3" = {
@@ -27296,15 +27413,6 @@ let
         sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
       };
     };
-    "got-11.4.0" = {
-      name = "got";
-      packageName = "got";
-      version = "11.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-11.4.0.tgz";
-        sha512 = "XysJZuZNVpaQ37Oo2LV90MIkPeYITehyy1A0QzO1JwOXm8EWuEf9eeGk2XuHePvLEGnm9AVOI37bHwD6KYyBtg==";
-      };
-    };
     "got-11.5.2" = {
       name = "got";
       packageName = "got";
@@ -27503,13 +27611,13 @@ let
         sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-extensions-0.13.0" = {
+    "graphql-extensions-0.15.0" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
-      version = "0.13.0";
+      version = "0.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.13.0.tgz";
-        sha512 = "Bb7E97nvfX4gtrIdZ/i5YFlqOd6MGzrw8ED+t4wQVraYje6NQ+8P8MHMOV2WZLfbW8zsNTx8NdnnlbsdH5siag==";
+        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz";
+        sha512 = "bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==";
       };
     };
     "graphql-subscriptions-1.2.1" = {
@@ -27521,13 +27629,13 @@ let
         sha512 = "95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==";
       };
     };
-    "graphql-tag-2.12.3" = {
+    "graphql-tag-2.12.4" = {
       name = "graphql-tag";
       packageName = "graphql-tag";
-      version = "2.12.3";
+      version = "2.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.3.tgz";
-        sha512 = "5wJMjSvj30yzdciEuk9dPuUBUR56AqDi3xncoYQl1i42pGdSqOJrJsdb/rz5BDoy+qoGvQwABcBeF0xXY3TrKw==";
+        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.4.tgz";
+        sha512 = "VV1U4O+9x99EkNpNmCUV5RZwq6MnK4+pGbRYWG+lA/m3uo7TSqJF81OkcOP148gFP6fzdl7JWYBrwWVTS9jXww==";
       };
     };
     "graphql-tools-3.0.0" = {
@@ -27557,22 +27665,13 @@ let
         sha512 = "J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==";
       };
     };
-    "graphql-upload-11.0.0" = {
-      name = "graphql-upload";
-      packageName = "graphql-upload";
-      version = "11.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz";
-        sha512 = "zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==";
-      };
-    };
-    "graphql-ws-4.2.2" = {
+    "graphql-ws-4.7.0" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "4.2.2";
+      version = "4.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.2.2.tgz";
-        sha512 = "b6TLtWLAmKunD72muL9EeItRGpio9+V3Cx4zJsBkRA+3wxzTWXDvQr9/3qSwJ3D/2abz0ys2KHTM6lB1uH7KIQ==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.7.0.tgz";
+        sha512 = "Md8SsmC9ZlsogFPd3Ot8HbIAAqsHh8Xoq7j4AmcIat1Bh6k91tjVyQvA0Au1/BolXSYq+RDvib6rATU2Hcf1Xw==";
       };
     };
     "gray-matter-2.1.1" = {
@@ -27593,13 +27692,13 @@ let
         sha512 = "CgXlq3PGpBRj8RMnLSYs46Hvl5q9Up9kwuMAcYlvS4sNgH5j4Ao7hbY+HI62PaYTeIdffiJidLEIeZVCmZCrFA==";
       };
     };
-    "grouped-queue-1.1.0" = {
+    "grouped-queue-2.0.0" = {
       name = "grouped-queue";
       packageName = "grouped-queue";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.1.0.tgz";
-        sha512 = "rZOFKfCqLhsu5VqjBjEWiwrYqJR07KxIkH4mLZlNlGDfntbb4FbMyGFP14TlvRPrU9S3Hnn/sgxbC5ZeN0no3Q==";
+        url = "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz";
+        sha512 = "/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==";
       };
     };
     "growl-1.10.5" = {
@@ -27629,13 +27728,13 @@ let
         sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
       };
     };
-    "grunt-known-options-1.1.1" = {
+    "grunt-known-options-2.0.0" = {
       name = "grunt-known-options";
       packageName = "grunt-known-options";
-      version = "1.1.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz";
-        sha512 = "cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==";
+        url = "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz";
+        sha512 = "GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==";
       };
     };
     "gtoken-5.2.1" = {
@@ -28214,6 +28313,15 @@ let
         sha512 = "JQMW+TJe0UAIXZMjCJ4Wf6ayDV9Yv3PBDPsHD4ExBpAspJ6MOcCX+nzVF+UJVv7OqPcg852WEMSHQPoRA+FVSw==";
       };
     };
+    "hast-util-from-parse5-5.0.3" = {
+      name = "hast-util-from-parse5";
+      packageName = "hast-util-from-parse5";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz";
+        sha512 = "gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==";
+      };
+    };
     "hast-util-from-parse5-6.0.1" = {
       name = "hast-util-from-parse5";
       packageName = "hast-util-from-parse5";
@@ -28295,6 +28403,15 @@ let
         sha512 = "I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==";
       };
     };
+    "hastscript-5.1.2" = {
+      name = "hastscript";
+      packageName = "hastscript";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz";
+        sha512 = "WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==";
+      };
+    };
     "hastscript-6.0.0" = {
       name = "hastscript";
       packageName = "hastscript";
@@ -28331,15 +28448,6 @@ let
         sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
       };
     };
-    "hcl-to-json-0.1.1" = {
-      name = "hcl-to-json";
-      packageName = "hcl-to-json";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hcl-to-json/-/hcl-to-json-0.1.1.tgz";
-        sha512 = "sj1RPsdgX/ilBGZGnyjbSHQbRe20hyA6VDXYBGJedHSCdwSWkr/7tr85N7FGeM7KvBjIQX7Gl897bo0Ug73Z/A==";
-      };
-    };
     "he-0.5.0" = {
       name = "he";
       packageName = "he";
@@ -29034,13 +29142,13 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
-    "http-proxy-middleware-1.1.2" = {
+    "http-proxy-middleware-1.3.1" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "1.1.2";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.2.tgz";
-        sha512 = "YRFUeOG3q85FJjAaYVJUoNRW9a73SDlOtAyQOS5PHLr18QeZ/vEhxywNoOPiEO8BxCegz4RXzTHcvyLEGB78UA==";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz";
+        sha512 = "13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==";
       };
     };
     "http-signature-0.11.0" = {
@@ -29349,6 +29457,15 @@ let
         sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
       };
     };
+    "iconv-lite-0.6.3" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz";
+        sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
+      };
+    };
     "icss-replace-symbols-1.1.0" = {
       name = "icss-replace-symbols";
       packageName = "icss-replace-symbols";
@@ -29439,13 +29556,13 @@ let
         sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
       };
     };
-    "ignore-walk-3.0.3" = {
+    "ignore-walk-3.0.4" = {
       name = "ignore-walk";
       packageName = "ignore-walk";
-      version = "3.0.3";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
-        sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz";
+        sha512 = "PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==";
       };
     };
     "image-data-uri-2.0.1" = {
@@ -29466,6 +29583,15 @@ let
         sha1 = "09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c";
       };
     };
+    "image-size-0.9.7" = {
+      name = "image-size";
+      packageName = "image-size";
+      version = "0.9.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/image-size/-/image-size-0.9.7.tgz";
+        sha512 = "KRVgLNZkr00YGN0qn9MlIrmlxbRhsCcEb1Byq3WKGnIV4M48iD185cprRtaoK4t5iC+ym2Q5qlArxZ/V1yzDgA==";
+      };
+    };
     "image-type-3.1.0" = {
       name = "image-type";
       packageName = "image-type";
@@ -29511,13 +29637,13 @@ let
         sha1 = "0ecdad0c546332672d7b5b511b26bb18ce56e73f";
       };
     };
-    "immediate-chunk-store-2.1.1" = {
+    "immediate-chunk-store-2.2.0" = {
       name = "immediate-chunk-store";
       packageName = "immediate-chunk-store";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/immediate-chunk-store/-/immediate-chunk-store-2.1.1.tgz";
-        sha512 = "y5AxkxqpPTj2dkaAEkDnrMuSX4JNicXHD6yTpLfFnflVejL6yJpzf27obrnlf2PSSQiWUf3735Y9tJEjxvqnoA==";
+        url = "https://registry.npmjs.org/immediate-chunk-store/-/immediate-chunk-store-2.2.0.tgz";
+        sha512 = "1bHBna0hCa6arRXicu91IiL9RvvkbNYLVq+mzWdaLGZC3hXvX4doh8e1dLhMKez5siu63CYgO5NrGJbRX5lbPA==";
       };
     };
     "immer-7.0.15" = {
@@ -29862,13 +29988,13 @@ let
         sha512 = "ubMFylXYaG4IkXQVhPautbhV/p6Lo0GlvAMI/jh8cGJQ39yeznJbaTTJP2CqZXezA4GOHzalpwCWqux/NEY38w==";
       };
     };
-    "ink-spinner-4.0.1" = {
+    "ink-spinner-4.0.2" = {
       name = "ink-spinner";
       packageName = "ink-spinner";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink-spinner/-/ink-spinner-4.0.1.tgz";
-        sha512 = "2eYtzzUPb22Z0Cn2bGvE4BteYjcqDhgrHnCzGJM81EHXXlyNU7aYfucPgZs2CZPy0LWz/5hwoecFhd0mj1hrbw==";
+        url = "https://registry.npmjs.org/ink-spinner/-/ink-spinner-4.0.2.tgz";
+        sha512 = "vQGmhWUEh3IG1IxK1Hl2w6RfH6aaRIJWw9lrG8CvFFyrQ23UpJ8GClJs5/sFBxkNvsrrK9sKNEGlGnsqTYiUww==";
       };
     };
     "ink-text-input-4.0.1" = {
@@ -30015,6 +30141,15 @@ let
         sha512 = "ON8pEJPPCdyjxj+cxsYRe6XfCJepTxANdNnTebsTuQgXpRyZRRT9t4dJwjRubgmvn20CLSEnozRUayXyM9VTXA==";
       };
     };
+    "inquirer-8.1.0" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-8.1.0.tgz";
+        sha512 = "1nKYPoalt1vMBfCMtpomsUc32wmOoWXAoq3kM/5iTfxyQ2f/BxjixQpC+mbZ7BI0JUXHED4/XPXekDVtJNpXYw==";
+      };
+    };
     "inquirer-autocomplete-prompt-1.3.0" = {
       name = "inquirer-autocomplete-prompt";
       packageName = "inquirer-autocomplete-prompt";
@@ -30168,15 +30303,6 @@ 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==";
-      };
-    };
     "internmap-1.0.1" = {
       name = "internmap";
       packageName = "internmap";
@@ -30258,13 +30384,13 @@ let
         sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
       };
     };
-    "inversify-5.0.5" = {
+    "inversify-5.1.1" = {
       name = "inversify";
       packageName = "inversify";
-      version = "5.0.5";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inversify/-/inversify-5.0.5.tgz";
-        sha512 = "60QsfPz8NAU/GZqXu8hJ+BhNf/C/c+Hp0eDc6XMIJTxBiP36AQyyQKpBkOVTLWBFDQWYVHpbbEuIsHu9dLuJDA==";
+        url = "https://registry.npmjs.org/inversify/-/inversify-5.1.1.tgz";
+        sha512 = "j8grHGDzv1v+8T1sAQ+3boTCntFPfvxLCkNcxB1J8qA0lUN+fAlSyYd+RXKvaPRL4AGyPxViutBEJHNXOyUdFQ==";
       };
     };
     "invert-kv-1.0.0" = {
@@ -30312,6 +30438,15 @@ let
         sha512 = "AMCHpf/7sJOjeRbTgCLLvhH41ZnUv0D809ZFJRhR2dGOfp8GxJHzfnNqtgYGxQiW0+dVK2ooBVyR+dqoEQs6mw==";
       };
     };
+    "invoices-1.2.0" = {
+      name = "invoices";
+      packageName = "invoices";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invoices/-/invoices-1.2.0.tgz";
+        sha512 = "x9jMmN/afPZkeL7qwMj15r+RSV7ztPsfxKgByD3bXR/WhmjrlfU+zwfliohScW/UV1b0FUSq6A7DgTME4tdMSQ==";
+      };
+    };
     "iota-array-1.0.0" = {
       name = "iota-array";
       packageName = "iota-array";
@@ -30573,13 +30708,13 @@ let
         sha1 = "f02ad0259a0921cd199ff21ce1b09e0f6b4e3929";
       };
     };
-    "is-bigint-1.0.1" = {
+    "is-bigint-1.0.2" = {
       name = "is-bigint";
       packageName = "is-bigint";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz";
-        sha512 = "J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==";
+        url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz";
+        sha512 = "0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==";
       };
     };
     "is-binary-path-1.0.1" = {
@@ -30600,13 +30735,13 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
-    "is-boolean-object-1.1.0" = {
+    "is-boolean-object-1.1.1" = {
       name = "is-boolean-object";
       packageName = "is-boolean-object";
-      version = "1.1.0";
+      version = "1.1.1";
       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.1.tgz";
+        sha512 = "bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==";
       };
     };
     "is-buffer-1.1.6" = {
@@ -30681,13 +30816,13 @@ let
         sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
       };
     };
-    "is-core-module-2.2.0" = {
+    "is-core-module-2.4.0" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.2.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz";
-        sha512 = "XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz";
+        sha512 = "6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==";
       };
     };
     "is-data-descriptor-0.1.4" = {
@@ -30708,13 +30843,13 @@ let
         sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
       };
     };
-    "is-date-object-1.0.2" = {
+    "is-date-object-1.0.4" = {
       name = "is-date-object";
       packageName = "is-date-object";
-      version = "1.0.2";
+      version = "1.0.4";
       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.4.tgz";
+        sha512 = "/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==";
       };
     };
     "is-decimal-1.0.4" = {
@@ -30924,13 +31059,13 @@ let
         sha512 = "lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==";
       };
     };
-    "is-generator-function-1.0.8" = {
+    "is-generator-function-1.0.9" = {
       name = "is-generator-function";
       packageName = "is-generator-function";
-      version = "1.0.8";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz";
-        sha512 = "2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==";
+        url = "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz";
+        sha512 = "ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==";
       };
     };
     "is-glob-2.0.1" = {
@@ -31203,13 +31338,13 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-number-object-1.0.4" = {
+    "is-number-object-1.0.5" = {
       name = "is-number-object";
       packageName = "is-number-object";
-      version = "1.0.4";
+      version = "1.0.5";
       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.5.tgz";
+        sha512 = "RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==";
       };
     };
     "is-obj-1.0.1" = {
@@ -31446,13 +31581,13 @@ let
         sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
       };
     };
-    "is-regex-1.1.2" = {
+    "is-regex-1.1.3" = {
       name = "is-regex";
       packageName = "is-regex";
-      version = "1.1.2";
+      version = "1.1.3";
       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.3.tgz";
+        sha512 = "qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==";
       };
     };
     "is-regexp-1.0.0" = {
@@ -31545,15 +31680,6 @@ let
         sha512 = "AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==";
       };
     };
-    "is-scoped-1.0.0" = {
-      name = "is-scoped";
-      packageName = "is-scoped";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz";
-        sha1 = "449ca98299e713038256289ecb2b540dc437cb30";
-      };
-    };
     "is-scoped-2.1.0" = {
       name = "is-scoped";
       packageName = "is-scoped";
@@ -31572,13 +31698,13 @@ let
         sha512 = "+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==";
       };
     };
-    "is-ssh-1.3.2" = {
+    "is-ssh-1.3.3" = {
       name = "is-ssh";
       packageName = "is-ssh";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz";
-        sha512 = "elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ==";
+        url = "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz";
+        sha512 = "NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==";
       };
     };
     "is-stream-1.1.0" = {
@@ -31608,13 +31734,13 @@ let
         sha512 = "xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==";
       };
     };
-    "is-string-1.0.5" = {
+    "is-string-1.0.6" = {
       name = "is-string";
       packageName = "is-string";
-      version = "1.0.5";
+      version = "1.0.6";
       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.6.tgz";
+        sha512 = "2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==";
       };
     };
     "is-supported-regexp-flag-1.0.1" = {
@@ -31626,13 +31752,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-text-path-1.0.1" = {
@@ -31842,13 +31968,13 @@ let
         sha1 = "119556d1d1651a41ba105af803267c80b299f629";
       };
     };
-    "is2-2.0.6" = {
+    "is2-2.0.7" = {
       name = "is2";
       packageName = "is2";
-      version = "2.0.6";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is2/-/is2-2.0.6.tgz";
-        sha512 = "+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==";
+        url = "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz";
+        sha512 = "4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==";
       };
     };
     "isarray-0.0.1" = {
@@ -31896,13 +32022,13 @@ let
         sha512 = "8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==";
       };
     };
-    "isbinaryfile-4.0.6" = {
+    "isbinaryfile-4.0.8" = {
       name = "isbinaryfile";
       packageName = "isbinaryfile";
-      version = "4.0.6";
+      version = "4.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz";
-        sha512 = "ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==";
+        url = "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz";
+        sha512 = "53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==";
       };
     };
     "isemail-3.2.0" = {
@@ -32049,15 +32175,6 @@ let
         sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
       };
     };
-    "istextorbinary-2.6.0" = {
-      name = "istextorbinary";
-      packageName = "istextorbinary";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz";
-        sha512 = "+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==";
-      };
-    };
     "isuri-2.0.3" = {
       name = "isuri";
       packageName = "isuri";
@@ -32274,6 +32391,15 @@ let
         sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
       };
     };
+    "jest-worker-27.0.2" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "27.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz";
+        sha512 = "EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==";
+      };
+    };
     "jimp-0.12.1" = {
       name = "jimp";
       packageName = "jimp";
@@ -32283,13 +32409,13 @@ let
         sha512 = "0soPJif+yjmzmOF+4cF2hyhxUWWpXpQntsm2joJXFFoRcQiPzsG4dbLKYqYPT3Fc6PjZ8MaLtCkDqqckVSfmRw==";
       };
     };
-    "jitdb-3.0.3" = {
+    "jitdb-3.1.4" = {
       name = "jitdb";
       packageName = "jitdb";
-      version = "3.0.3";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jitdb/-/jitdb-3.0.3.tgz";
-        sha512 = "BTXAauBdig83EUkBFdWY9dzdf8wB5DlJ4aa/uCMwmf2eki7DhQBT7rrJFuscR/Mkmqt00G1oxiqa4gnA+oPJ6Q==";
+        url = "https://registry.npmjs.org/jitdb/-/jitdb-3.1.4.tgz";
+        sha512 = "UEzC68eqFIQJPQnmPm2/KGirX2pE+GebhA2EZss3b0UZZca7eGgxpvQ7+sIPcwLKAcZr5rmkFhQHGIQJyf20bg==";
       };
     };
     "jju-1.4.0" = {
@@ -32409,13 +32535,13 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.22.0" = {
+    "jquery.terminal-2.25.1" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.22.0";
+      version = "2.25.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.22.0.tgz";
-        sha512 = "0VDAqWMrqIcI7Mduqkgw/SM9G8aTMJUx/Lu8rxHVPfn10wkHZmaVywczVQgQWRCSdGa+/hy/qZEdaVPPmLyplw==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.25.1.tgz";
+        sha512 = "I3PlUluRswKZb3UPBtH1UFdyBLLwPwdAJPVheV6xUJdS+0buguXCjn6aqmENWtZiobGGA2wkxCXR2hVQqtMCrw==";
       };
     };
     "js-base64-2.6.4" = {
@@ -32661,13 +32787,13 @@ let
         sha512 = "fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==";
       };
     };
-    "jsdom-16.5.3" = {
+    "jsdom-16.6.0" = {
       name = "jsdom";
       packageName = "jsdom";
-      version = "16.5.3";
+      version = "16.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz";
-        sha512 = "Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==";
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz";
+        sha512 = "Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==";
       };
     };
     "jsdom-7.2.2" = {
@@ -32706,49 +32832,49 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.28.0" = {
+    "jsii-1.30.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.28.0";
+      version = "1.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.28.0.tgz";
-        sha512 = "B6CbHi60fabeQZJYNea8wSUsrILJzN7ng+yx69GmMJ4C6NtCVt7Oc/CITfhY/cYTwdhN3FAJf01e5/v8qj6bUA==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.30.0.tgz";
+        sha512 = "TfVHhGjP0QiTEkyfnxrDIE8Da+itxnNUK2YoD69qIPAzmZ58goKVqK4sbXrXz2urHSToGLDmWI8+H69cLeVjJw==";
       };
     };
-    "jsii-pacmak-1.28.0" = {
+    "jsii-pacmak-1.30.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.28.0";
+      version = "1.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.28.0.tgz";
-        sha512 = "QAW8rq7M9rA/QSXwaJKMVpttkNW/BJgE9GT6i9UahobQMkmp+zsXCJUENeRg2mndLqX0DDyxO1in/fuIeCeR3A==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.30.0.tgz";
+        sha512 = "hYvISYBXZ5WL/+LtG3HpVrimguqAoWa3D8jaqsnoiIGrdmaxKCZ0VnioJYxEX7wVamYuCwXu5NFx/b31BspU6A==";
       };
     };
-    "jsii-reflect-1.28.0" = {
+    "jsii-reflect-1.30.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.28.0";
+      version = "1.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.28.0.tgz";
-        sha512 = "jFu9dUy5D0PrxVnaDilb50agbSr0wZRya6StwHyw8Wly3ruzS8uuSB1aWmEwN371m5ewDD4m9nPEQ9zMmKFvMQ==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.30.0.tgz";
+        sha512 = "t/1Zr1gGqQSYt94Lfq860VLnCr8y8MLvlLorWYqmBeWKCaSPhtYSC1blGhZhDrAW+CBXiT0Oy64j4Q++AntRmw==";
       };
     };
-    "jsii-rosetta-1.28.0" = {
+    "jsii-rosetta-1.30.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.28.0";
+      version = "1.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.28.0.tgz";
-        sha512 = "lttDhXiBuWaN0DwsWakD5o7GxyVP8yMCRvpmpXOqz1eK+MMlZp654R6o39M7RksXhhxipCNwfbIY3T7Y7N85qQ==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.30.0.tgz";
+        sha512 = "ChFg5qhvxCaM2bspCqizs48yMtsm5YLHjBoNZLCkbXyc3yMM5l8pnn787B5ww5TI3+tKxKYWkbiKf356kQ1OgQ==";
       };
     };
-    "jsii-srcmak-0.1.255" = {
+    "jsii-srcmak-0.1.273" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.255";
+      version = "0.1.273";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.255.tgz";
-        sha512 = "vWIcR+z9HmqHX4lwJI9TFkGhBsZK2tPlgnvANJ09+SwrrLdBFOBFOJB298U5vMyQ/2mf0VFGlFFoJO9mA/6B4A==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.273.tgz";
+        sha512 = "koWwHIq+LdKPoclPjRvZp2cNwk8Tck/wW1iUqgRDpjIO6+Puq26ovr/XF7etf9sXZEpCRHOT7/qTOVMJo0F+vg==";
       };
     };
     "json-bigint-0.2.3" = {
@@ -32868,6 +32994,15 @@ let
         sha512 = "tFH40YQ+lG7mgYYM1kGZOhQngO4SbOEHZJlA4W+NtetWZ20EUU3BPU+30uWRKumuAJoSo5eqrsXD2h72ioS8ew==";
       };
     };
+    "json-ptr-2.2.0" = {
+      name = "json-ptr";
+      packageName = "json-ptr";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-ptr/-/json-ptr-2.2.0.tgz";
+        sha512 = "w9f6/zhz4kykltXMG7MLJWMajxiPj0q+uzQPR1cggNAE/sXoq/C5vjUb/7QNcC3rJsVIIKy37ALTXy1O+3c8QQ==";
+      };
+    };
     "json-refs-2.1.7" = {
       name = "json-refs";
       packageName = "json-refs";
@@ -32904,13 +33039,13 @@ let
         sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
       };
     };
-    "json-schema-0.2.5" = {
+    "json-schema-0.3.0" = {
       name = "json-schema";
       packageName = "json-schema";
-      version = "0.2.5";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.5.tgz";
-        sha512 = "gWJOWYFrhQ8j7pVm0EM8Slr+EPVq1Phf6lvzvD/WCeqkrx/f2xBI0xOsRRS9xCn3I4vKtP519dvs3TP09r24wQ==";
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.3.0.tgz";
+        sha512 = "TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ==";
       };
     };
     "json-schema-deref-sync-0.13.0" = {
@@ -33003,6 +33138,15 @@ let
         sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
       };
     };
+    "json-stringify-nice-1.1.4" = {
+      name = "json-stringify-nice";
+      packageName = "json-stringify-nice";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz";
+        sha512 = "5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==";
+      };
+    };
     "json-stringify-pretty-compact-3.0.0" = {
       name = "json-stringify-pretty-compact";
       packageName = "json-stringify-pretty-compact";
@@ -33039,13 +33183,13 @@ let
         sha512 = "0/4Lv6IenJV0qj2oBdgPIAmFiKKnh8qh7bmLFJ+/ZZHLjSeiL3fKKGX3UryvKPbxFbhV+JcYo9KUC19GJ/Z/4A==";
       };
     };
-    "json2jsii-0.1.188" = {
+    "json2jsii-0.1.236" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.1.188";
+      version = "0.1.236";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.1.188.tgz";
-        sha512 = "XeUcBQl0rngTFmiSIx0XNW+g0QgAJcqwsUYzvGcDPPSvPngIGmJ/X6d0UH/nDmSVyEilYyKnVP7iYh3y9by9fA==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.1.236.tgz";
+        sha512 = "f2UN6Fum7vNQmeonz3HvP7GJxlathMSFYNzYCHdLjFKDpX3KDD9+xi7Qrk0JOMqrGMG6Ev1ye4rXlnUBlWKLvA==";
       };
     };
     "json3-3.2.6" = {
@@ -33336,15 +33480,6 @@ let
         sha1 = "69ec30ce4518bed5997b38f027648e8c285e92f7";
       };
     };
-    "jsx-ast-utils-3.2.0" = {
-      name = "jsx-ast-utils";
-      packageName = "jsx-ast-utils";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz";
-        sha512 = "EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==";
-      };
-    };
     "jszip-2.6.1" = {
       name = "jszip";
       packageName = "jszip";
@@ -33399,6 +33534,24 @@ let
         sha512 = "xtgnwBBZaLtKspGo6jDX/H0FDsHrn41mQVWhNHge7pZe6Nj2gU2izfC09O0rPU/i97iMcJFVjbecFiTAvmNhLQ==";
       };
     };
+    "just-diff-3.1.1" = {
+      name = "just-diff";
+      packageName = "just-diff";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz";
+        sha512 = "sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==";
+      };
+    };
+    "just-diff-apply-3.0.0" = {
+      name = "just-diff-apply";
+      packageName = "just-diff-apply";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz";
+        sha512 = "K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==";
+      };
+    };
     "jwa-1.4.1" = {
       name = "jwa";
       packageName = "jwa";
@@ -33543,14 +33696,14 @@ let
         sha1 = "02ea5aa5cf22225725579627ccfd6d266372289a";
       };
     };
-    "kad-git+https://github.com/wikimedia/kad.git#master" = {
+    "kad-git://github.com/wikimedia/kad#master" = {
       name = "kad";
       packageName = "kad";
       version = "1.3.6";
       src = fetchgit {
-        url = "https://github.com/wikimedia/kad.git";
-        rev = "96f8f5c8e5a88f5dffed47abc20756e93e16387e";
-        sha256 = "12e5b6430f57389c974e7a393f2c7ac9a26df06a58cfe1afbcb5a5f3f00249ea";
+        url = "git://github.com/wikimedia/kad";
+        rev = "634a3fc7f60898ec541406d60ccf0d48556070e2";
+        sha256 = "285413585c8cc029d7204b5babc30cde39715fea8c8a875b8ae3c0dff2643d68";
       };
     };
     "kad-localstorage-0.0.7" = {
@@ -33580,13 +33733,13 @@ let
         sha512 = "dD2ga5gLcQhsq1yNoQdy1MU4x4z7YnXM5bcG9SdQuiNr5KKuAmXixH1Mggwdah5o7EfholFbcNDPSVA6BIfaug==";
       };
     };
-    "katex-0.12.0" = {
+    "katex-0.13.11" = {
       name = "katex";
       packageName = "katex";
-      version = "0.12.0";
+      version = "0.13.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/katex/-/katex-0.12.0.tgz";
-        sha512 = "y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg==";
+        url = "https://registry.npmjs.org/katex/-/katex-0.13.11.tgz";
+        sha512 = "yJBHVIgwlAaapzlbvTpVF/ZOs8UkTj/sd46Fl8+qAf2/UiituPYVeapVD8ADZtqyRg/qNWUKt7gJoyYVWLrcXw==";
       };
     };
     "keep-alive-agent-0.0.1" = {
@@ -33661,13 +33814,13 @@ let
         sha1 = "1e80454250018dbad4c3fe94497d6e67b6269c77";
       };
     };
-    "keytar-7.6.0" = {
+    "keytar-7.7.0" = {
       name = "keytar";
       packageName = "keytar";
-      version = "7.6.0";
+      version = "7.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keytar/-/keytar-7.6.0.tgz";
-        sha512 = "H3cvrTzWb11+iv0NOAnoNAPgEapVZnYLVHZQyxmh7jdmVfR/c0jNNFEZ6AI38W/4DeTGTaY66ZX4Z1SbfKPvCQ==";
+        url = "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz";
+        sha512 = "YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==";
       };
     };
     "keyv-3.0.0" = {
@@ -33877,24 +34030,6 @@ let
         sha512 = "uLrFPGj2//glOgJGLZn8hNTNlhU+eGx0WFRLZxIoC39nfjLRZ1fncHcPK2t5gA2GcvgtGUT2dnw60M8vJAOIkQ==";
       };
     };
-    "language-subtag-registry-0.3.21" = {
-      name = "language-subtag-registry";
-      packageName = "language-subtag-registry";
-      version = "0.3.21";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz";
-        sha512 = "L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==";
-      };
-    };
-    "language-tags-1.0.5" = {
-      name = "language-tags";
-      packageName = "language-tags";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz";
-        sha1 = "d321dbc4da30ba8bf3024e040fa5c14661f9193a";
-      };
-    };
     "last-call-webpack-plugin-3.0.0" = {
       name = "last-call-webpack-plugin";
       packageName = "last-call-webpack-plugin";
@@ -33994,15 +34129,6 @@ let
         sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
       };
     };
-    "lazy-cache-2.0.2" = {
-      name = "lazy-cache";
-      packageName = "lazy-cache";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz";
-        sha1 = "b9190a4f913354694840859f8a8f7084d8822264";
-      };
-    };
     "lazyness-1.2.0" = {
       name = "lazyness";
       packageName = "lazyness";
@@ -34309,13 +34435,13 @@ let
         sha512 = "IR5ASkAU4NHTN1JFeP9bYvhARhaBg8VD8yUcmvNIvFWg6L3dsM2yK1A9EM6MpPvWYKH9SEiljB59ZUa5s2pYnA==";
       };
     };
-    "libnpmaccess-4.0.1" = {
+    "libnpmaccess-4.0.2" = {
       name = "libnpmaccess";
       packageName = "libnpmaccess";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.1.tgz";
-        sha512 = "ZiAgvfUbvmkHoMTzdwmNWCrQRsDkOC+aM5BDfO0C9aOSwF3R1LdFDBD+Rer1KWtsoQYO35nXgmMR7OUHpDRxyA==";
+        url = "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.2.tgz";
+        sha512 = "avXtJibZuGap0/qADDYqb9zdpgzVu/yG5+tl2sTRa7MCkDNv2ZlGwCYI0r6/+tmqXPj0iB9fKexHz426vB326w==";
       };
     };
     "libnpmconfig-1.2.1" = {
@@ -34327,13 +34453,13 @@ let
         sha512 = "9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==";
       };
     };
-    "libnpmpublish-4.0.0" = {
+    "libnpmpublish-4.0.1" = {
       name = "libnpmpublish";
       packageName = "libnpmpublish";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.0.tgz";
-        sha512 = "2RwYXRfZAB1x/9udKpZmqEzSqNd7ouBRU52jyG14/xG8EF+O9A62d7/XVR3iABEQHf1iYhkm0Oq9iXjrL3tsXA==";
+        url = "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.1.tgz";
+        sha512 = "hZCrZ8v4G9YH3DxpIyBdob25ijD5v5LNzRbwsej4pPDopjdcLLj1Widl+BUeFa7D0ble1JYL4F3owjLJqiA8yA==";
       };
     };
     "libsodium-0.7.9" = {
@@ -34417,6 +34543,15 @@ let
         sha512 = "VpkNbaWlsmTgaWWJPGyYb2dm2v5b+wPQWmfZBJ7V5znL17Q+ef7Csj8PTTgnIccAWE429QL9/OyOzn/JVnZ/PA==";
       };
     };
+    "lightning-3.3.7" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "3.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-3.3.7.tgz";
+        sha512 = "fjzFCwXafGUeCwUSiEKToS/A8GO4oxDiDG+XNuL984mgYyJdXLHoTEMdaYZD48yowtfjYCdLks0iypIdg6kn1Q==";
+      };
+    };
     "limit-spawn-0.0.3" = {
       name = "limit-spawn";
       packageName = "limit-spawn";
@@ -34426,13 +34561,13 @@ let
         sha1 = "cc09c24467a0f0a1ed10a5196dba597cad3f65dc";
       };
     };
-    "limitation-0.2.1" = {
+    "limitation-0.2.2" = {
       name = "limitation";
       packageName = "limitation";
-      version = "0.2.1";
+      version = "0.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/limitation/-/limitation-0.2.1.tgz";
-        sha512 = "5lMmsPc9ZtMjBk8rJ8ADKIj6AOgYvRtAuNfboO2TVPZsmcn6gSRyijUsA8KG6DUcJ89/hyQ3cnVRyzO1hbDavw==";
+        url = "https://registry.npmjs.org/limitation/-/limitation-0.2.2.tgz";
+        sha512 = "kUfYO29baIJzY3S4/j7qaWl0GdjxT88SEaIcUN98YGdhYh+m7Zkt1N4jGubVF05A7dzjfjgtQD/NI5APKl38RQ==";
       };
     };
     "line-reader-0.4.0" = {
@@ -34570,6 +34705,15 @@ let
         sha512 = "n0Ib9fjVL8x3ymdOax6gjmR0Nq59vIhQ89en1XpgxIWbowWhiJUXPolTEgiA8vpeoG72CZN3nYaPXgil9uNVLg==";
       };
     };
+    "ln-service-51.8.1" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "51.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.8.1.tgz";
+        sha512 = "YjRsNwAez1RfA63YDoLf5Ojg3Ma+aLmvfMqasqU3r+/pDR+mgGFyjVODsw6qujerIEM2FaxegddJeOz7R7/Ijw==";
+      };
+    };
     "ln-sync-0.4.5" = {
       name = "ln-sync";
       packageName = "ln-sync";
@@ -34579,13 +34723,13 @@ let
         sha512 = "ETaASkbv5v2gcrob/xonsjy0deKSxIHfKOTfOXQicxhZed02plQ2oAUx/K3yxIhRnm7YS45Z/gYQLxUqHkI4ow==";
       };
     };
-    "ln-telegram-3.2.2" = {
+    "ln-telegram-3.2.3" = {
       name = "ln-telegram";
       packageName = "ln-telegram";
-      version = "3.2.2";
+      version = "3.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.2.2.tgz";
-        sha512 = "6gJmRkOpcsyARrCL0+O66xgVlZVRd1erLSw1/dsiGXgUsaSuZ4mFpxE40j6eXZZZxwcFcYNE06Q79BMtsIvoqA==";
+        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.2.3.tgz";
+        sha512 = "pNYz/xz/VCn8EApERCR+2nB0hmBM25dAmKUs0FZnMlQGozNaSqb26ttN0XLA/Q/JVOeovacjlAOJ0tl6zqcS8w==";
       };
     };
     "load-bmfont-1.4.1" = {
@@ -34669,6 +34813,15 @@ let
         sha512 = "od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==";
       };
     };
+    "load-yaml-file-0.2.0" = {
+      name = "load-yaml-file";
+      packageName = "load-yaml-file";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz";
+        sha512 = "OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==";
+      };
+    };
     "loader-runner-2.4.0" = {
       name = "loader-runner";
       packageName = "loader-runner";
@@ -34795,13 +34948,13 @@ let
         sha1 = "259933d1327cbaf0fd3662f8fffde36809d84ced";
       };
     };
-    "locutus-2.0.14" = {
+    "locutus-2.0.15" = {
       name = "locutus";
       packageName = "locutus";
-      version = "2.0.14";
+      version = "2.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.14.tgz";
-        sha512 = "0H1o1iHNEp3kJ5rW57bT/CAP5g6Qm0Zd817Wcx2+rOMTYyIJoc482Ja1v9dB6IUjwvWKcBNdYi7x2lRXtlJ3bA==";
+        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.15.tgz";
+        sha512 = "2xWC4RkoAoCVXEb/stzEgG1TNgd+mrkLBj6TuEDNyUoKeQ2XzDTyJUC23sMiqbL6zJmJSP3w59OZo+zc4IBOmA==";
       };
     };
     "lodash-2.4.2" = {
@@ -35362,13 +35515,13 @@ let
         sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
       };
     };
-    "lodash.endswith-4.2.1" = {
-      name = "lodash.endswith";
-      packageName = "lodash.endswith";
-      version = "4.2.1";
+    "lodash.differencewith-4.5.0" = {
+      name = "lodash.differencewith";
+      packageName = "lodash.differencewith";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz";
-        sha1 = "fed59ac1738ed3e236edd7064ec456448b37bc09";
+        url = "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz";
+        sha1 = "bafafbc918b55154e179176a00bb0aefaac854b7";
       };
     };
     "lodash.escape-3.2.0" = {
@@ -35650,15 +35803,6 @@ let
         sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343";
       };
     };
-    "lodash.islength-4.0.1" = {
-      name = "lodash.islength";
-      packageName = "lodash.islength";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.islength/-/lodash.islength-4.0.1.tgz";
-        sha1 = "4e9868d452575d750affd358c979543dc20ed577";
-      };
-    };
     "lodash.ismatch-4.4.0" = {
       name = "lodash.ismatch";
       packageName = "lodash.ismatch";
@@ -36262,6 +36406,15 @@ let
         sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
+    "logidrom-0.3.1" = {
+      name = "logidrom";
+      packageName = "logidrom";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logidrom/-/logidrom-0.3.1.tgz";
+        sha512 = "B1Rjay3Ye/JcythUjMt+KLiLIwOjnMJN1M5BRbDgNMsJhmn7yApbx6n1rw7cT3Fi/NA77HDM+y3y1nXvKQVB9Q==";
+      };
+    };
     "loglevel-1.7.1" = {
       name = "loglevel";
       packageName = "loglevel";
@@ -36622,15 +36775,6 @@ let
         sha512 = "oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==";
       };
     };
-    "lynx-0.2.0" = {
-      name = "lynx";
-      packageName = "lynx";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lynx/-/lynx-0.2.0.tgz";
-        sha1 = "79e6674530da4183e87953bd686171e070da50b9";
-      };
-    };
     "lzma-native-6.0.1" = {
       name = "lzma-native";
       packageName = "lzma-native";
@@ -36757,13 +36901,13 @@ let
         sha512 = "ZpqciThlbvE6KkyT5oxAup/6CwjePw1hdtR8NU5+vq2hn9Sp5b7w3bRiJRvo9fMHUj2dWSuVCdkqt9p4ed1V9Q==";
       };
     };
-    "magnet-uri-6.1.1" = {
+    "magnet-uri-6.2.0" = {
       name = "magnet-uri";
       packageName = "magnet-uri";
-      version = "6.1.1";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-6.1.1.tgz";
-        sha512 = "TUyzaLB36TqqIHzgvkMrlZUPN6mfoLX/+2do5YJH3gjBQL2auEtivT+99npIiA77YepJ6pYA/AzWhboXTAAm0w==";
+        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-6.2.0.tgz";
+        sha512 = "O9AgdDwT771fnUj0giPYu/rACpz8173y8UXCSOdLITjOVfBenZ9H9q3FqQmveK+ORUMuD+BkKNSZP8C3+IMAKQ==";
       };
     };
     "make-dir-1.3.0" = {
@@ -36973,6 +37117,15 @@ let
         sha512 = "aU1TzmBKcWNNYvH9pjq6u92BML+Hz3h5S/QpfTFwiQF852pLT+9qHsrhM9JYipkOXZxGn+sGH8oyJE9FD9WezQ==";
       };
     };
+    "markdown-it-12.0.4" = {
+      name = "markdown-it";
+      packageName = "markdown-it";
+      version = "12.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-12.0.4.tgz";
+        sha512 = "34RwOXZT8kyuOJy25oJNJoulO8L0bTHYWXcdZBYZqFnjIy3NgjeoM3FmPXIOFQ26/lSHYMr8oc62B6adxXcb3Q==";
+      };
+    };
     "markdown-it-12.0.6" = {
       name = "markdown-it";
       packageName = "markdown-it";
@@ -37036,13 +37189,13 @@ let
         sha512 = "ODpk98FWkGIq2vkwm2NOLt4G6TRgy3M9eTa9SFm06pUyOd0zjjYAwkhsjiCDU42pzKuz0ChiwBO0utuOj3LNOA==";
       };
     };
-    "markdown-it-footnote-3.0.2" = {
+    "markdown-it-footnote-3.0.3" = {
       name = "markdown-it-footnote";
       packageName = "markdown-it-footnote";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-3.0.2.tgz";
-        sha512 = "JVW6fCmZWjvMdDQSbOT3nnOQtd9iAXmw7hTSh26+v42BnvXeVyGMDBm5b/EZocMed2MbCAHiTX632vY0FyGB8A==";
+        url = "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-3.0.3.tgz";
+        sha512 = "YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==";
       };
     };
     "markdown-it-github-headings-1.1.2" = {
@@ -37117,13 +37270,13 @@ let
         sha512 = "UB/IbzjWazwTlNAX0pvWNlJS8NKsOQ4syrXZQ/C72j+jirrsjVRT627lCaylrKJFBQWfRsPmIVQie8x38DEhAQ==";
       };
     };
-    "markdown-link-extractor-1.2.7" = {
+    "markdown-link-extractor-1.3.0" = {
       name = "markdown-link-extractor";
       packageName = "markdown-link-extractor";
-      version = "1.2.7";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.7.tgz";
-        sha512 = "gFwyqKEMPAwXiW2n7ZeM26bJL9WfkYnzP1O2lxFvqenefzPQE4A5XjidqbotOyDA5qUzjOHeqYoaGa2qb4B4Og==";
+        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.3.0.tgz";
+        sha512 = "1qXoYqhsU5qgWtUF9HQlBF82jRrakENh+7nmPUxoMJw13kf92jzb72EchrSsw5vdqbDLJurkpNL50xLFRhjmbw==";
       };
     };
     "markdown-serve-0.3.3" = {
@@ -37162,6 +37315,24 @@ let
         sha512 = "Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==";
       };
     };
+    "markdownlint-0.23.1" = {
+      name = "markdownlint";
+      packageName = "markdownlint";
+      version = "0.23.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdownlint/-/markdownlint-0.23.1.tgz";
+        sha512 = "iOEwhDfNmq2IJlaA8mzEkHYUi/Hwoa6Ss+HO5jkwUR6wQ4quFr0WzSx+Z9rsWZKUaPbyirIdL1zGmJRkWawr4Q==";
+      };
+    };
+    "markdownlint-rule-helpers-0.14.0" = {
+      name = "markdownlint-rule-helpers";
+      packageName = "markdownlint-rule-helpers";
+      version = "0.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.14.0.tgz";
+        sha512 = "vRTPqSU4JK8vVXmjICHSBhwXUvbfh/VJo+j7hvxqe15tLJyomv3FLgFdFgb8kpj0Fe8SsJa/TZUAXv7/sN+N7A==";
+      };
+    };
     "marked-0.3.19" = {
       name = "marked";
       packageName = "marked";
@@ -37180,22 +37351,13 @@ let
         sha512 = "c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==";
       };
     };
-    "marked-0.8.2" = {
+    "marked-2.0.6" = {
       name = "marked";
       packageName = "marked";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz";
-        sha512 = "EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==";
-      };
-    };
-    "marked-2.0.3" = {
-      name = "marked";
-      packageName = "marked";
-      version = "2.0.3";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-2.0.3.tgz";
-        sha512 = "5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA==";
+        url = "https://registry.npmjs.org/marked/-/marked-2.0.6.tgz";
+        sha512 = "S2mYj0FzTQa0dLddssqwRVW4EOJOVJ355Xm2Vcbm+LU7GQRGWvwbO5K87OaPSOux2AwTSgtPPaXmc8sDPrhn2A==";
       };
     };
     "marked-terminal-3.3.0" = {
@@ -37216,13 +37378,13 @@ let
         sha512 = "t7Mdf6T3PvOEyN01c3tYxDzhyKZ8xnkp8Rs6Fohno63L/0pFTJ5Qtwto2AQVuDtbQiWzD+4E5AAu1Z2iLc8miQ==";
       };
     };
-    "marky-1.2.1" = {
+    "marky-1.2.2" = {
       name = "marky";
       packageName = "marky";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marky/-/marky-1.2.1.tgz";
-        sha512 = "md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==";
+        url = "https://registry.npmjs.org/marky/-/marky-1.2.2.tgz";
+        sha512 = "k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==";
       };
     };
     "mastodon-api-1.3.0" = {
@@ -37387,22 +37549,13 @@ let
         sha512 = "xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==";
       };
     };
-    "md5-hex-2.0.0" = {
+    "md5-hex-3.0.1" = {
       name = "md5-hex";
       packageName = "md5-hex";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz";
-        sha1 = "d0588e9f1c74954492ecd24ac0ac6ce997d92e33";
-      };
-    };
-    "md5-o-matic-0.1.1" = {
-      name = "md5-o-matic";
-      packageName = "md5-o-matic";
-      version = "0.1.1";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz";
-        sha1 = "822bccd65e117c514fab176b25945d54100a03c3";
+        url = "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz";
+        sha512 = "BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==";
       };
     };
     "md5.js-1.3.5" = {
@@ -37450,6 +37603,24 @@ let
         sha512 = "7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==";
       };
     };
+    "mdast-util-find-and-replace-1.1.1" = {
+      name = "mdast-util-find-and-replace";
+      packageName = "mdast-util-find-and-replace";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz";
+        sha512 = "9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==";
+      };
+    };
+    "mdast-util-footnote-0.1.7" = {
+      name = "mdast-util-footnote";
+      packageName = "mdast-util-footnote";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz";
+        sha512 = "QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w==";
+      };
+    };
     "mdast-util-from-markdown-0.8.5" = {
       name = "mdast-util-from-markdown";
       packageName = "mdast-util-from-markdown";
@@ -37459,6 +37630,60 @@ let
         sha512 = "2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==";
       };
     };
+    "mdast-util-frontmatter-0.2.0" = {
+      name = "mdast-util-frontmatter";
+      packageName = "mdast-util-frontmatter";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz";
+        sha512 = "FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==";
+      };
+    };
+    "mdast-util-gfm-0.1.2" = {
+      name = "mdast-util-gfm";
+      packageName = "mdast-util-gfm";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz";
+        sha512 = "NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==";
+      };
+    };
+    "mdast-util-gfm-autolink-literal-0.1.3" = {
+      name = "mdast-util-gfm-autolink-literal";
+      packageName = "mdast-util-gfm-autolink-literal";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz";
+        sha512 = "GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==";
+      };
+    };
+    "mdast-util-gfm-strikethrough-0.2.3" = {
+      name = "mdast-util-gfm-strikethrough";
+      packageName = "mdast-util-gfm-strikethrough";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz";
+        sha512 = "5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==";
+      };
+    };
+    "mdast-util-gfm-table-0.1.6" = {
+      name = "mdast-util-gfm-table";
+      packageName = "mdast-util-gfm-table";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz";
+        sha512 = "j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==";
+      };
+    };
+    "mdast-util-gfm-task-list-item-0.1.6" = {
+      name = "mdast-util-gfm-task-list-item";
+      packageName = "mdast-util-gfm-task-list-item";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz";
+        sha512 = "/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==";
+      };
+    };
     "mdast-util-mdx-0.1.1" = {
       name = "mdast-util-mdx";
       packageName = "mdast-util-mdx";
@@ -37657,40 +37882,31 @@ let
         sha512 = "Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==";
       };
     };
-    "mem-8.1.0" = {
+    "mem-8.1.1" = {
       name = "mem";
       packageName = "mem";
-      version = "8.1.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-8.1.0.tgz";
-        sha512 = "FIkgXo0kTi3XpvaznV5Muk6Y6w8SkdmRXcY7ZLonQesuYezp59UooLxAVBcGuN6PH2tXN84mR3vyzSc6oSMUfA==";
+        url = "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz";
+        sha512 = "qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==";
       };
     };
-    "mem-fs-1.2.0" = {
+    "mem-fs-2.2.1" = {
       name = "mem-fs";
       packageName = "mem-fs";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mem-fs/-/mem-fs-1.2.0.tgz";
-        sha512 = "b8g0jWKdl8pM0LqAPdK9i8ERL7nYrzmJfRhxMiWH2uYdfYnb7uXnmwVb0ZGe7xyEl4lj+nLIU3yf4zPUT+XsVQ==";
-      };
-    };
-    "mem-fs-editor-6.0.0" = {
-      name = "mem-fs-editor";
-      packageName = "mem-fs-editor";
-      version = "6.0.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz";
-        sha512 = "e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==";
+        url = "https://registry.npmjs.org/mem-fs/-/mem-fs-2.2.1.tgz";
+        sha512 = "yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA==";
       };
     };
-    "mem-fs-editor-7.1.0" = {
+    "mem-fs-editor-9.0.1" = {
       name = "mem-fs-editor";
       packageName = "mem-fs-editor";
-      version = "7.1.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-7.1.0.tgz";
-        sha512 = "BH6QEqCXSqGeX48V7zu+e3cMwHU7x640NB8Zk8VNvVZniz+p4FK60pMx/3yfkzo6miI6G3a8pH6z7FeuIzqrzA==";
+        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.0.1.tgz";
+        sha512 = "SqW+DkPbxZVzVldNHexoo5MiUR3YpIqiCVcZ/SZ6f7KToaSV7pMd4/URrkD5mnj35bd6NAK7SlftHSyW+Kgk4w==";
       };
     };
     "memfs-3.2.2" = {
@@ -37711,6 +37927,15 @@ let
         sha512 = "HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==";
       };
     };
+    "memoize-one-5.2.1" = {
+      name = "memoize-one";
+      packageName = "memoize-one";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz";
+        sha512 = "zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==";
+      };
+    };
     "memoizeasync-1.1.0" = {
       name = "memoizeasync";
       packageName = "memoizeasync";
@@ -37738,13 +37963,13 @@ let
         sha1 = "7890b01d52c00c8ebc9d533e1f8eb17e3034871a";
       };
     };
-    "memory-chunk-store-1.3.2" = {
+    "memory-chunk-store-1.3.5" = {
       name = "memory-chunk-store";
       packageName = "memory-chunk-store";
-      version = "1.3.2";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/memory-chunk-store/-/memory-chunk-store-1.3.2.tgz";
-        sha512 = "EBcbwpdQlzT5aNV0FTT+RAfh1cGEssjiCcRGcTk57mKsnZlRMOtH4Cfk/AqQnkz8xP2dUF+/lgpmErSGwwE1FA==";
+        url = "https://registry.npmjs.org/memory-chunk-store/-/memory-chunk-store-1.3.5.tgz";
+        sha512 = "E1Xc1U4ifk/FkC2ZsWhCaW1xg9HbE/OBmQTLe2Tr9c27YPSLbW7kw1cnb3kQWD1rDtErFJHa7mB9EVrs7aTx9g==";
       };
     };
     "memory-fs-0.3.0" = {
@@ -37954,22 +38179,22 @@ let
         sha1 = "f8a064760d37e7978ad5f9f6d3c119a494f57081";
       };
     };
-    "mermaid-8.9.2" = {
+    "mermaid-8.10.1" = {
       name = "mermaid";
       packageName = "mermaid";
-      version = "8.9.2";
+      version = "8.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.9.2.tgz";
-        sha512 = "XWEaraDRDlHZexdeHSSr/MH4VJAOksRSPudchi69ecZJ7IUjjlzHsg32n4ZwJUh6lFO+NMYLHwHNNYUyxIjGPg==";
+        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.10.1.tgz";
+        sha512 = "KxwKEJDKy303TQdz5TQMFb/4u+gUL21CefUMGOfuigDh9powcYaNmuJ5BkHmO0jB3Y1z2zlsuKvHZ2CusWH5+A==";
       };
     };
-    "mersenne-0.0.4" = {
-      name = "mersenne";
-      packageName = "mersenne";
-      version = "0.0.4";
+    "meros-1.1.4" = {
+      name = "meros";
+      packageName = "meros";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz";
-        sha1 = "401fdec7ec21cdb9e03cd3d3021398da21b27085";
+        url = "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz";
+        sha512 = "E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==";
       };
     };
     "metals-languageclient-0.4.2" = {
@@ -38143,6 +38368,78 @@ let
         sha512 = "+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==";
       };
     };
+    "micromark-extension-footnote-0.3.2" = {
+      name = "micromark-extension-footnote";
+      packageName = "micromark-extension-footnote";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz";
+        sha512 = "gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ==";
+      };
+    };
+    "micromark-extension-frontmatter-0.2.2" = {
+      name = "micromark-extension-frontmatter";
+      packageName = "micromark-extension-frontmatter";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz";
+        sha512 = "q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==";
+      };
+    };
+    "micromark-extension-gfm-0.3.3" = {
+      name = "micromark-extension-gfm";
+      packageName = "micromark-extension-gfm";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz";
+        sha512 = "oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==";
+      };
+    };
+    "micromark-extension-gfm-autolink-literal-0.5.7" = {
+      name = "micromark-extension-gfm-autolink-literal";
+      packageName = "micromark-extension-gfm-autolink-literal";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz";
+        sha512 = "ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==";
+      };
+    };
+    "micromark-extension-gfm-strikethrough-0.6.5" = {
+      name = "micromark-extension-gfm-strikethrough";
+      packageName = "micromark-extension-gfm-strikethrough";
+      version = "0.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz";
+        sha512 = "PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==";
+      };
+    };
+    "micromark-extension-gfm-table-0.4.3" = {
+      name = "micromark-extension-gfm-table";
+      packageName = "micromark-extension-gfm-table";
+      version = "0.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz";
+        sha512 = "hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==";
+      };
+    };
+    "micromark-extension-gfm-tagfilter-0.3.0" = {
+      name = "micromark-extension-gfm-tagfilter";
+      packageName = "micromark-extension-gfm-tagfilter";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz";
+        sha512 = "9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==";
+      };
+    };
+    "micromark-extension-gfm-task-list-item-0.3.3" = {
+      name = "micromark-extension-gfm-task-list-item";
+      packageName = "micromark-extension-gfm-task-list-item";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz";
+        sha512 = "0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==";
+      };
+    };
     "micromark-extension-mdx-0.2.1" = {
       name = "micromark-extension-mdx";
       packageName = "micromark-extension-mdx";
@@ -38359,6 +38656,15 @@ let
         sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
       };
     };
+    "mime-db-1.48.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.48.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz";
+        sha512 = "FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==";
+      };
+    };
     "mime-types-2.1.18" = {
       name = "mime-types";
       packageName = "mime-types";
@@ -38863,22 +39169,22 @@ let
         sha1 = "ebb3a977e7af1c683ae6fda12b545a6ba6c5853d";
       };
     };
-    "mobx-6.2.0" = {
+    "mobx-6.3.2" = {
       name = "mobx";
       packageName = "mobx";
-      version = "6.2.0";
+      version = "6.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mobx/-/mobx-6.2.0.tgz";
-        sha512 = "j5f16JIq2v4flvYCqaAB9tMtJt/y5efR2OO5Xy+w4/MBMeQ1WeGR0T8BtiNgmxM/OQzPFUKb5DTex9Y8a/yk+g==";
+        url = "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz";
+        sha512 = "xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==";
       };
     };
-    "mobx-react-7.1.0" = {
+    "mobx-react-7.2.0" = {
       name = "mobx-react";
       packageName = "mobx-react";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mobx-react/-/mobx-react-7.1.0.tgz";
-        sha512 = "DxvA6VXmnZ+N9f/UTtolWtdRnAAQY2iHWTSPLktfpj8NKlXUe4dabBAjuXrBcZUM8GjLWnxD1ZEjssXq1M0RAw==";
+        url = "https://registry.npmjs.org/mobx-react/-/mobx-react-7.2.0.tgz";
+        sha512 = "KHUjZ3HBmZlNnPd1M82jcdVsQRDlfym38zJhZEs33VxyVQTvL77hODCArq6+C1P1k/6erEeo2R7rpE7ZeOL7dg==";
       };
     };
     "mobx-react-lite-3.2.0" = {
@@ -38908,13 +39214,13 @@ let
         sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==";
       };
     };
-    "mocha-8.3.2" = {
+    "mocha-8.4.0" = {
       name = "mocha";
       packageName = "mocha";
-      version = "8.3.2";
+      version = "8.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz";
-        sha512 = "UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==";
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz";
+        sha512 = "hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==";
       };
     };
     "mock-require-3.0.3" = {
@@ -38980,13 +39286,13 @@ let
         sha512 = "7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==";
       };
     };
-    "moize-6.0.1" = {
+    "moize-6.0.3" = {
       name = "moize";
       packageName = "moize";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moize/-/moize-6.0.1.tgz";
-        sha512 = "Bl91P98A6Xba35mn9XoAW9DuGoQb3HyoY888TxrvQbMr9+1v3dzBzi9n4Guh5Lne8ENdqbXjQ0a8mf7UUvZ9wg==";
+        url = "https://registry.npmjs.org/moize/-/moize-6.0.3.tgz";
+        sha512 = "7Jz9TSiqW9G2u8HwUWnaBQMFMPLblrWKEiWN4BA/GPOfQlsnfQqq0yRnTGHckGPlKApA9Eu1HPb/eTqvK9EtKg==";
       };
     };
     "mold-source-map-0.4.0" = {
@@ -39160,13 +39466,13 @@ let
         sha512 = "GpxVObyOzL0CGPBqo6B04GinN8JLk12NRYAIkYvARd9ZCoJKevvOyCaWK6bdK/kFSDj3LPDnCsJbezzNlsi87Q==";
       };
     };
-    "mqtt-packet-6.9.1" = {
+    "mqtt-packet-6.10.0" = {
       name = "mqtt-packet";
       packageName = "mqtt-packet";
-      version = "6.9.1";
+      version = "6.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.9.1.tgz";
-        sha512 = "0+u0ZoRj6H6AuzNY5d8qzXzyXmFI19gkdPRA14kGfKvbqYcpOL+HWUGHjtCxHqjm8CscwsH+dX0+Rxx4se5HSA==";
+        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz";
+        sha512 = "ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==";
       };
     };
     "mri-1.1.6" = {
@@ -39322,13 +39628,13 @@ let
         sha512 = "ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==";
       };
     };
-    "multicast-dns-7.2.2" = {
+    "multicast-dns-7.2.3" = {
       name = "multicast-dns";
       packageName = "multicast-dns";
-      version = "7.2.2";
+      version = "7.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.2.tgz";
-        sha512 = "XqSMeO8EWV/nOXOpPV8ztIpNweVfE1dSpz6SQvDPp71HD74lMXjt4m/mWB1YBMG0kHtOodxRWc5WOb/UNN1A5g==";
+        url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.3.tgz";
+        sha512 = "TzxgGSLRLB7tqAlzjgd2x2ZE0cDsGFq4rs9W4yE5xp+7hlRXeUQGtXZsTGfGw2FwWB45rfe8DtXMYBpZGMLUng==";
       };
     };
     "multicast-dns-service-types-1.1.0" = {
@@ -39403,13 +39709,13 @@ let
         sha1 = "2a8f2ddf70eed564dff2d57f1e1a137d9f05078b";
       };
     };
-    "multiserver-3.7.0" = {
+    "multiserver-3.7.2" = {
       name = "multiserver";
       packageName = "multiserver";
-      version = "3.7.0";
+      version = "3.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multiserver/-/multiserver-3.7.0.tgz";
-        sha512 = "70SSDMNT+e3VsDG4x7OKFW8+UqyZsBWfKD9rAvsRWCbMe9ySODheJCZ91Xyha5FrA32UtWIHGSY3m5jATfEmVQ==";
+        url = "https://registry.npmjs.org/multiserver/-/multiserver-3.7.2.tgz";
+        sha512 = "RaRSN/g1QOujNkFtmLU52PCjjqUdhad7FO/aZRRTzWkpJuclk0jfWtvew9jKp0mNqC6RhriEm0U1L1qYiymF8Q==";
       };
     };
     "multiserver-address-1.0.1" = {
@@ -39556,13 +39862,13 @@ let
         sha512 = "nU7mOEuaXiQIB/EgTIjYZJ7g8KqMm2D8l4qp+DqA4jxWOb/tnb1KEoqp+tlbdQIDIAiC1i7j7X/3yHDFXLxr9g==";
       };
     };
-    "muxrpc-6.5.2" = {
+    "muxrpc-6.5.3" = {
       name = "muxrpc";
       packageName = "muxrpc";
-      version = "6.5.2";
+      version = "6.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/muxrpc/-/muxrpc-6.5.2.tgz";
-        sha512 = "fgYhBfzevyUbwsB8YBlrnmzZOGxWv6OiAUNKQYwPLqbophsZ+GT8STKrCVHCYNjUx6btxFA5+BJPUCFMecyaSA==";
+        url = "https://registry.npmjs.org/muxrpc/-/muxrpc-6.5.3.tgz";
+        sha512 = "Q8NfvPB27T6KlAtEsy0g5Sz+HlfrMZMLcrhlb5nTfY4FMMsQAIM63FZvgInKqV6ENkSWuTOdqH4aUZosUXJCLA==";
       };
     };
     "muxrpc-usage-2.1.0" = {
@@ -39700,6 +40006,15 @@ let
         sha1 = "4f3152e09540fde28c76f44b19bbcd1d5a42478d";
       };
     };
+    "nanoassert-2.0.0" = {
+      name = "nanoassert";
+      packageName = "nanoassert";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz";
+        sha512 = "7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==";
+      };
+    };
     "nanobus-4.5.0" = {
       name = "nanobus";
       packageName = "nanobus";
@@ -39736,13 +40051,13 @@ let
         sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==";
       };
     };
-    "nanoid-3.1.22" = {
+    "nanoid-3.1.23" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.1.22";
+      version = "3.1.23";
       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.23.tgz";
+        sha512 = "FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==";
       };
     };
     "nanolru-1.0.0" = {
@@ -39862,13 +40177,13 @@ let
         sha512 = "p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==";
       };
     };
-    "ncjsm-4.1.0" = {
+    "ncjsm-4.2.0" = {
       name = "ncjsm";
       packageName = "ncjsm";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ncjsm/-/ncjsm-4.1.0.tgz";
-        sha512 = "YElRGtbz5iIartetOI3we+XAkcGE29F0SdNC0qRy500/u4WceQd2z9Nhlx24OHmIDIKz9MHdJwf/fkSG0hdWcQ==";
+        url = "https://registry.npmjs.org/ncjsm/-/ncjsm-4.2.0.tgz";
+        sha512 = "L2Qij4PTy7Bs4TB24zs7FLIAYJTaR5JPvSig5hIcO059LnMCNgy6MfHHNyg8s/aekPKrTqKX90gBGt3NNGvhdw==";
       };
     };
     "nconf-0.10.0" = {
@@ -40124,22 +40439,22 @@ let
         sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
       };
     };
-    "netlify-6.1.18" = {
+    "netlify-7.0.0" = {
       name = "netlify";
       packageName = "netlify";
-      version = "6.1.18";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify/-/netlify-6.1.18.tgz";
-        sha512 = "hVOf6l67ldiVfJPsMp4Ztunvv81hbGr5RGw2WUlR6b7Hp1bM1oaydEx/MrsLtVVDwy2KEYxkwcMY3m7CiHnh5g==";
+        url = "https://registry.npmjs.org/netlify/-/netlify-7.0.0.tgz";
+        sha512 = "s454O7JRqrIo90c6rX+um1Xp7B0dGZBAYaIXYtA3em8DXJ0uWoglDeQSul8qGT1goAAF/9oMPo0T9KTM/XrjqA==";
       };
     };
-    "netlify-redirect-parser-3.0.15" = {
+    "netlify-redirect-parser-3.0.29" = {
       name = "netlify-redirect-parser";
       packageName = "netlify-redirect-parser";
-      version = "3.0.15";
+      version = "3.0.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.15.tgz";
-        sha512 = "AWciaJpE83idl6VRPkZBW0TIOUZIPL30poFfruo/xMUJJuvgHw+wfExBnEpgXQ1sAdIWcZajhfKeLEXl1jWDLw==";
+        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.29.tgz";
+        sha512 = "+lP4IG30CEpjlUaJM7hs/AW84gxkP0svvE80WJOcgB20lilPDkS6K3qeLlybjH/YznzomHZ0EF5Ydr/9d5I99A==";
       };
     };
     "netlify-redirector-0.2.1" = {
@@ -40250,13 +40565,13 @@ let
         sha512 = "CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==";
       };
     };
-    "nextgen-events-1.3.4" = {
+    "nextgen-events-1.4.0" = {
       name = "nextgen-events";
       packageName = "nextgen-events";
-      version = "1.3.4";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nextgen-events/-/nextgen-events-1.3.4.tgz";
-        sha512 = "umMRD9VOvQ7+AeCvMETA7tekqrzG0xOX2HLrpyZRuW+4NlXR5baZwY/CP7Sq3x1BkKCIa1KnI1m2+Fs+fJpOiQ==";
+        url = "https://registry.npmjs.org/nextgen-events/-/nextgen-events-1.4.0.tgz";
+        sha512 = "bwSpShfuLg/lcRFokZvtUcrn5kumy6uRI6Jc+QWzH+bW6ZRdog7LfwAwhqeTzVfsprZgDGrctr6rO5aJhcdAfg==";
       };
     };
     "nice-try-1.0.5" = {
@@ -40340,22 +40655,22 @@ let
         sha512 = "mYihjs47X5+N71CN3P+QBrEIBuclIfMMpgWEpkmLqFPvrOXdzokvDlhbLfjdBNZOqYgniaeZC6J1ZCgxFdyvXw==";
       };
     };
-    "no-cliches-0.3.2" = {
+    "no-cliches-0.3.4" = {
       name = "no-cliches";
       packageName = "no-cliches";
-      version = "0.3.2";
+      version = "0.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/no-cliches/-/no-cliches-0.3.2.tgz";
-        sha512 = "zPpIr24OdcdM6lbg9QbFUGaLx9RueAkg1I4ZueuuB5452ZrxYfdwaBkhLGFCgpy3AaQ1w8HaY/8k2HmeyD9FXw==";
+        url = "https://registry.npmjs.org/no-cliches/-/no-cliches-0.3.4.tgz";
+        sha512 = "oUqnng1vhKLaA4GR+OzVbLuZZ7OOguKCtMHxHMiyP8+9mXidKfoCyc030LbAyNI3xcgCHHyitK3Q8wP+w6DwVQ==";
       };
     };
-    "node-abi-2.21.0" = {
+    "node-abi-2.30.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.21.0";
+      version = "2.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.21.0.tgz";
-        sha512 = "smhrivuPqEM3H5LmnY3KU6HfYv0u4QklgAxfFyRNujKUzbUcYZ+Jc2EhukB9SRcD2VpqhxM7n/MIcp1Ua1/JMg==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz";
+        sha512 = "g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==";
       };
     };
     "node-addon-api-1.7.2" = {
@@ -40394,13 +40709,13 @@ let
         sha512 = "+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg==";
       };
     };
-    "node-addon-api-3.1.0" = {
+    "node-addon-api-3.2.1" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
-      version = "3.1.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz";
-        sha512 = "flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==";
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz";
+        sha512 = "mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==";
       };
     };
     "node-appc-1.1.2" = {
@@ -40512,15 +40827,6 @@ let
         sha512 = "NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==";
       };
     };
-    "node-fetch-2.2.0" = {
-      name = "node-fetch";
-      packageName = "node-fetch";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz";
-        sha512 = "OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA==";
-      };
-    };
     "node-fetch-2.6.1" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -40602,6 +40908,15 @@ let
         sha512 = "CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==";
       };
     };
+    "node-gyp-8.1.0" = {
+      name = "node-gyp";
+      packageName = "node-gyp";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.1.0.tgz";
+        sha512 = "o2elh1qt7YUp3lkMwY3/l4KF3j/A3fI/Qt4NH+CQQgPJdqGE9y7qnP84cjIWN27Q0jJkrSAhCVDg+wBVNBYdBg==";
+      };
+    };
     "node-gyp-build-3.9.0" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
@@ -40701,13 +41016,13 @@ let
         sha512 = "fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==";
       };
     };
-    "node-object-hash-2.3.1" = {
+    "node-object-hash-2.3.3" = {
       name = "node-object-hash";
       packageName = "node-object-hash";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.1.tgz";
-        sha512 = "ab7pm34jqISawXpJ+fHjj2E9CmzDtm2fTTdurgzbWXIrdTEk2q2cSZRzoeGrwa0cvq6Sqezq6S9bhOBYPHRzuQ==";
+        url = "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.3.tgz";
+        sha512 = "KdQsVgu0QoU3ycGidQLcULQdJudW2dizlxJvb2ntV4zxn1oBe7FYBcOO//qIza6oPM1xNwj7Y+rsWxiGPWekOw==";
       };
     };
     "node-persist-2.1.0" = {
@@ -40764,15 +41079,6 @@ let
         sha512 = "+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==";
       };
     };
-    "node-pre-gyp-0.15.0" = {
-      name = "node-pre-gyp";
-      packageName = "node-pre-gyp";
-      version = "0.15.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
-        sha512 = "7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==";
-      };
-    };
     "node-pre-gyp-0.6.39" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
@@ -40818,13 +41124,13 @@ let
         sha512 = "d/CbPGJMSNekJHOQu4WMNwjXRFnZ4c2+D3nlSdRH6wdUVVc++4nat8TuhcXKUe9W9+nqMrmVhReGnf8UwKsfBw==";
       };
     };
-    "node-releases-1.1.71" = {
+    "node-releases-1.1.72" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.71";
+      version = "1.1.72";
       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.72.tgz";
+        sha512 = "LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==";
       };
     };
     "node-source-walk-4.2.0" = {
@@ -41142,13 +41448,13 @@ let
         sha512 = "U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==";
       };
     };
-    "normalize-url-4.5.0" = {
+    "normalize-url-4.5.1" = {
       name = "normalize-url";
       packageName = "normalize-url";
-      version = "4.5.0";
+      version = "4.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz";
-        sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==";
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz";
+        sha512 = "9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==";
       };
     };
     "now-and-later-2.0.1" = {
@@ -41169,22 +41475,13 @@ let
         sha1 = "df7c3ed5a277c3f9d4b5d819b05311d10a200ae6";
       };
     };
-    "npm-api-1.0.1" = {
-      name = "npm-api";
-      packageName = "npm-api";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-api/-/npm-api-1.0.1.tgz";
-        sha512 = "4sITrrzEbPcr0aNV28QyOmgn6C9yKiF8k92jn4buYAK8wmA5xo1qL3II5/gT1r7wxbXBflSduZ2K3FbtOrtGkA==";
-      };
-    };
-    "npm-bundled-1.1.1" = {
+    "npm-bundled-1.1.2" = {
       name = "npm-bundled";
       packageName = "npm-bundled";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
-        sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz";
+        sha512 = "x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==";
       };
     };
     "npm-conf-1.1.3" = {
@@ -41268,15 +41565,6 @@ let
         sha512 = "xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==";
       };
     };
-    "npm-package-arg-8.1.0" = {
-      name = "npm-package-arg";
-      packageName = "npm-package-arg";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz";
-        sha512 = "/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==";
-      };
-    };
     "npm-package-arg-8.1.2" = {
       name = "npm-package-arg";
       packageName = "npm-package-arg";
@@ -41295,22 +41583,13 @@ let
         sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
       };
     };
-    "npm-packlist-2.1.5" = {
+    "npm-packlist-2.2.2" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "2.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.5.tgz";
-        sha512 = "KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==";
-      };
-    };
-    "npm-pick-manifest-6.1.0" = {
-      name = "npm-pick-manifest";
-      packageName = "npm-pick-manifest";
-      version = "6.1.0";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz";
-        sha512 = "ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz";
+        sha512 = "Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==";
       };
     };
     "npm-pick-manifest-6.1.1" = {
@@ -41349,6 +41628,15 @@ let
         sha512 = "Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==";
       };
     };
+    "npm-registry-fetch-10.1.2" = {
+      name = "npm-registry-fetch";
+      packageName = "npm-registry-fetch";
+      version = "10.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-10.1.2.tgz";
+        sha512 = "KsM/TdPmntqgBFlfsbkOLkkE9ovZo7VpVcd+/eTdYszCrgy5zFl5JzWm+OxavFaEWlbkirpkou+ZYI00RmOBFA==";
+      };
+    };
     "npm-registry-fetch-9.0.0" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
@@ -41466,6 +41754,15 @@ let
         sha1 = "201095a487e1ad36081b3432fa3cada4f8d071b0";
       };
     };
+    "nullthrows-1.1.1" = {
+      name = "nullthrows";
+      packageName = "nullthrows";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz";
+        sha512 = "2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==";
+      };
+    };
     "num-sort-2.1.0" = {
       name = "num-sort";
       packageName = "num-sort";
@@ -41556,22 +41853,22 @@ let
         sha512 = "pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==";
       };
     };
-    "oas-linter-3.2.1" = {
+    "oas-linter-3.2.2" = {
       name = "oas-linter";
       packageName = "oas-linter";
-      version = "3.2.1";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.1.tgz";
-        sha512 = "e5G6bbq3Nrfxm+SDPR5AiZ6n2smVUmhLA1OgI2/Bl8e2ywfWsKw/yuqrwiXXiNHb1wdM/GyPMX6QjCGJODlaaA==";
+        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz";
+        sha512 = "KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==";
       };
     };
-    "oas-resolver-2.5.4" = {
+    "oas-resolver-2.5.5" = {
       name = "oas-resolver";
       packageName = "oas-resolver";
-      version = "2.5.4";
+      version = "2.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.4.tgz";
-        sha512 = "1vIj5Wkjmi+kZj5sFamt95LkuXoalmoKUohtaUQoCQZjLfPFaY8uZ7nw6IZaWuE6eLON2b6xrXhxD4hiTdYl0g==";
+        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.5.tgz";
+        sha512 = "1po1gzIlTXQqyVNtLFWJuzDm4xxhMCJ8QcP3OarKDO8aJ8AmCtQ67XZ1X+nBbHH4CjTcEsIab1qX5+GIU4f2Gg==";
       };
     };
     "oas-schema-walker-1.1.5" = {
@@ -41592,13 +41889,13 @@ let
         sha512 = "bIt8erTyclF7bkaySTtQ9sppqyVc+mAlPi7vPzCLVHJsL9nrivQjc/jHLX/o+eGbxHd6a6YBwuY/Vxa6wGsiuw==";
       };
     };
-    "oas-validator-5.0.5" = {
+    "oas-validator-5.0.6" = {
       name = "oas-validator";
       packageName = "oas-validator";
-      version = "5.0.5";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.5.tgz";
-        sha512 = "d10yy6xlhRTh6np44k2U0gm5M66pioYTllH8J1ZTj+WSY3cpTvU+Dt51iWOT85HJqyGHo0RZKXF3u/NGQWDFgg==";
+        url = "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.6.tgz";
+        sha512 = "bI+gyr3MiG/4Q5Ibvg0R77skVWS882gFMkxwB1p6qY7Rc4p7EoDezFVfondjYhJDPDnB1ZD7Aqj7AWROAsMBZg==";
       };
     };
     "oauth-0.9.15" = {
@@ -41719,22 +42016,22 @@ let
         sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
       };
     };
-    "object-hash-2.1.1" = {
+    "object-hash-2.2.0" = {
       name = "object-hash";
       packageName = "object-hash";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz";
-        sha512 = "VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==";
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz";
+        sha512 = "gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==";
       };
     };
-    "object-inspect-1.10.2" = {
+    "object-inspect-1.10.3" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.10.2";
+      version = "1.10.3";
       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.10.3.tgz";
+        sha512 = "e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==";
       };
     };
     "object-inspect-1.4.1" = {
@@ -41845,22 +42142,13 @@ let
         sha1 = "3a7f868334b407dea06da16d88d5cd29e435fecf";
       };
     };
-    "object.entries-1.1.3" = {
+    "object.entries-1.1.4" = {
       name = "object.entries";
       packageName = "object.entries";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz";
-        sha512 = "ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==";
-      };
-    };
-    "object.fromentries-2.0.4" = {
-      name = "object.fromentries";
-      packageName = "object.fromentries";
-      version = "2.0.4";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz";
-        sha512 = "EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==";
+        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz";
+        sha512 = "h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==";
       };
     };
     "object.getownpropertydescriptors-2.1.2" = {
@@ -41908,13 +42196,13 @@ let
         sha1 = "6fe348f2ac7fa0f95ca621226599096825bb03ad";
       };
     };
-    "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==";
       };
     };
     "object_values-0.1.2" = {
@@ -41989,22 +42277,13 @@ let
         sha512 = "0HGaSR/E/seIhSzFxLkh0QqckuNSre4iGqSElZRUv1hVHH2YgrZ7xtQL9McwL8o1fh6HqkzykjUx0Iy2haVIUg==";
       };
     };
-    "octokit-pagination-methods-1.1.0" = {
-      name = "octokit-pagination-methods";
-      packageName = "octokit-pagination-methods";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz";
-        sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
-      };
-    };
-    "office-ui-fabric-react-7.168.0" = {
+    "office-ui-fabric-react-7.170.1" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.168.0";
+      version = "7.170.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.168.0.tgz";
-        sha512 = "hxH6HuNEIPVwO1ahzkVTkrARbN1vGP0W0qgbNPNcQDjnux9moyLgGcp0BzWXG6mNlTKFti/6WceCwXFjLEyPkw==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.170.1.tgz";
+        sha512 = "NZULXfe9I9W1THYUOFOPr7vLStRbdYNJi3+sJSRrNQHSeeGlUaFbAIOiT8g8h+3Seypk4Ybtm7vZXc6mUHx+Gw==";
       };
     };
     "omggif-1.0.10" = {
@@ -42169,13 +42448,31 @@ let
         sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
       };
     };
-    "oo-ascii-tree-1.28.0" = {
+    "onml-1.3.0" = {
+      name = "onml";
+      packageName = "onml";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onml/-/onml-1.3.0.tgz";
+        sha512 = "RhGUsC6Im2A5vAdIvxE3auRKTqrqUZQl/AYLn8+9lM3SO4da5bwhcI5TcM+hfQxNCSLLOVErsl9p0ZPjKKmz+g==";
+      };
+    };
+    "onml-2.1.0" = {
+      name = "onml";
+      packageName = "onml";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onml/-/onml-2.1.0.tgz";
+        sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
+      };
+    };
+    "oo-ascii-tree-1.30.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.28.0";
+      version = "1.30.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.28.0.tgz";
-        sha512 = "lCeBgtQutG2+K7BOJDurYNfCepvckj7jWtq2VVP1kseLry/VbLzE/oLiXEeK6iWUXJbBE2IzmxwGuUwee293yw==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.30.0.tgz";
+        sha512 = "TzXuoCnha2QHFcAR+8+tBgD7Wnn6Uh+P3aZMoXKDJ3CVLXFnTnzHy4WMmmz01pTfv+f5haQMjhL9OIFJLEZ5kA==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -42232,31 +42529,40 @@ let
         sha512 = "mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==";
       };
     };
-    "open-7.4.0" = {
+    "open-7.4.2" = {
       name = "open";
       packageName = "open";
-      version = "7.4.0";
+      version = "7.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.4.0.tgz";
-        sha512 = "PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==";
+        url = "https://registry.npmjs.org/open/-/open-7.4.2.tgz";
+        sha512 = "MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==";
       };
     };
-    "open-7.4.2" = {
+    "open-8.0.2" = {
       name = "open";
       packageName = "open";
-      version = "7.4.2";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.4.2.tgz";
-        sha512 = "MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==";
+        url = "https://registry.npmjs.org/open/-/open-8.0.2.tgz";
+        sha512 = "NV5QmWJrTaNBLHABJyrb+nd5dXI5zfea/suWawBhkHzAbVhLLiJdrqMgxMypGK9Eznp2Ltoh7SAVkQ3XAucX7Q==";
       };
     };
-    "open-8.0.6" = {
+    "open-8.1.0" = {
       name = "open";
       packageName = "open";
-      version = "8.0.6";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-8.0.6.tgz";
-        sha512 = "vDOC0KwGabMPFtIpCO2QOnQeOz0N2rEkbuCuxICwLMUCrpv+A7NHrrzJ2dQReJmVluHhO4pYRh/Pn6s8t7Op6Q==";
+        url = "https://registry.npmjs.org/open/-/open-8.1.0.tgz";
+        sha512 = "jB5hAtsDOhCy/FNQJwQJOrGlxLUat482Yr14rbA5l2Zb1eOeoS+ccQPO036C1+z9VDBTmOZqzh1tBbI4myzIYw==";
+      };
+    };
+    "open-8.2.0" = {
+      name = "open";
+      packageName = "open";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-8.2.0.tgz";
+        sha512 = "O8uInONB4asyY3qUcEytpgwxQG3O0fJ/hlssoUHsBboOIRVZzT6Wq+Rwj5nffbeUhOdMjpXeISpDDzHCMRDuOQ==";
       };
     };
     "openapi-default-setter-2.1.0" = {
@@ -42367,13 +42673,13 @@ let
         sha512 = "Su8jA45PhegUgJnEAT15DYt2spPJgvjyTtXqg+Lw5AtGePfcQskV6ACEzsL0XPoAXIFf09Vx6sBor9pek+tl+Q==";
       };
     };
-    "openapi-sampler-1.0.0-beta.18" = {
+    "openapi-sampler-1.0.1" = {
       name = "openapi-sampler";
       packageName = "openapi-sampler";
-      version = "1.0.0-beta.18";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.18.tgz";
-        sha512 = "nG/0kvvSY5FbrU5A+Dbp1xTQN++7pKIh87/atryZlxrzDuok5Y6TCbpxO1jYqpUKLycE4ReKGHCywezngG6xtQ==";
+        url = "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.1.tgz";
+        sha512 = "qBjxkSLJV183zTTs4fgxtU/iWSLUUu2aH2+5ddWkNhV7p8CSe/mnAgoLkEbMfHtel6yr9NF+vjUWqfM+iiwORQ==";
       };
     };
     "openapi-schema-validator-3.0.3" = {
@@ -42457,13 +42763,13 @@ let
         sha512 = "olbaNxz12R27+mTyJ/ZAFEfUruauHH27AkeQHDHRq5AF0LdNkK1SSV7EourXQDK+4aX7dv2HtyirAGK06WMAsA==";
       };
     };
-    "openapi3-ts-1.4.0" = {
+    "openapi3-ts-2.0.1" = {
       name = "openapi3-ts";
       packageName = "openapi3-ts";
-      version = "1.4.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-1.4.0.tgz";
-        sha512 = "8DmE2oKayvSkIR3XSZ4+pRliBsx19bSNeIzkTPswY8r4wvjX86bMxsORdqwAwMxE8PefOcSAT2auvi/0TZe9yA==";
+        url = "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-2.0.1.tgz";
+        sha512 = "v6X3iwddhi276siej96jHGIqTx3wzVfMTmpGJEQDt7GPI7pI6sywItURLzpEci21SBRpPN/aOWSF5mVfFVNmcg==";
       };
     };
     "opencollective-1.0.3" = {
@@ -42583,13 +42889,13 @@ let
         sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
       };
     };
-    "optimize-css-assets-webpack-plugin-5.0.4" = {
+    "optimize-css-assets-webpack-plugin-5.0.6" = {
       name = "optimize-css-assets-webpack-plugin";
       packageName = "optimize-css-assets-webpack-plugin";
-      version = "5.0.4";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz";
-        sha512 = "wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==";
+        url = "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz";
+        sha512 = "JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A==";
       };
     };
     "optional-0.1.4" = {
@@ -42691,15 +42997,6 @@ let
         sha512 = "eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==";
       };
     };
-    "ora-4.1.1" = {
-      name = "ora";
-      packageName = "ora";
-      version = "4.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz";
-        sha512 = "sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==";
-      };
-    };
     "ora-5.1.0" = {
       name = "ora";
       packageName = "ora";
@@ -42754,15 +43051,6 @@ let
         sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
       };
     };
-    "os-0.1.1" = {
-      name = "os";
-      packageName = "os";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os/-/os-0.1.1.tgz";
-        sha1 = "208845e89e193ad4d971474b93947736a56d13f3";
-      };
-    };
     "os-browserify-0.3.0" = {
       name = "os-browserify";
       packageName = "os-browserify";
@@ -42862,22 +43150,22 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "ot-builder-1.0.4" = {
+    "ot-builder-1.0.8" = {
       name = "ot-builder";
       packageName = "ot-builder";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.0.4.tgz";
-        sha512 = "M8FhdQrpsHAQo+qYcAmnrl14HvXcew4M5tZCsQk4GZfeYVPr8TJZPwiHXScYbqH9+uNrU5U8tRjgHi44inVxxw==";
+        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.0.8.tgz";
+        sha512 = "e9PkE4wr4mskFMNuV5IvCujBVp9Nc+yl5ltu7qad/BNcHIFh4nn9iWFE+Klva6h8prDefgE2FOuG+sYLU0IOrQ==";
       };
     };
-    "otb-ttc-bundle-1.0.4" = {
+    "otb-ttc-bundle-1.0.8" = {
       name = "otb-ttc-bundle";
       packageName = "otb-ttc-bundle";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.0.4.tgz";
-        sha512 = "EnGZoAtvzLKM+kO3VZSavt11FzVIDQQq5o3s66LMvJZ2LdHbZg1L9WdAvnZjY2+SXdtLEo6VNlL1gP4l9ovRjw==";
+        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.0.8.tgz";
+        sha512 = "VqlzOefegjHk0OTM7XIay7M+v0PSKYznKTmBPCds6X+NfaumDInoBrF7OTrhq5IN1LXlu4TwW29u0wzDCgc2+A==";
       };
     };
     "ow-0.21.0" = {
@@ -42934,13 +43222,13 @@ let
         sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
-    "p-cancelable-2.1.0" = {
+    "p-cancelable-2.1.1" = {
       name = "p-cancelable";
       packageName = "p-cancelable";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz";
-        sha512 = "HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==";
+        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz";
+        sha512 = "BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==";
       };
     };
     "p-debounce-1.0.0" = {
@@ -43375,13 +43663,13 @@ let
         sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
       };
     };
-    "packet-stream-2.0.5" = {
+    "packet-stream-2.0.6" = {
       name = "packet-stream";
       packageName = "packet-stream";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.5.tgz";
-        sha512 = "+4S+qBUdqD57ka5MDd6nAYGBPril5eyLpbga2y0kPyYhrKvjb8CYTP9r40WLbSxgT/qEGmvgWOrvQe+FYtCI7w==";
+        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.6.tgz";
+        sha512 = "kSxHpoTqlgNEetMp77snCTVILwLw4dJX6pB/z1g1PRG5xylH8cf9upIPygt+epBC3l14XrcZH4/kQYSrzp2Ijg==";
       };
     };
     "packet-stream-codec-1.1.3" = {
@@ -43393,22 +43681,22 @@ let
         sha512 = "LUL4NK7sz01jdSUdCu3z1LyphCiFdQaFouaEDsAWmJpzS0lbeNfvZoX4bi1Tm1ilzheK5VAoD96QskDCZQr+jA==";
       };
     };
-    "pacote-11.2.4" = {
+    "pacote-11.3.2" = {
       name = "pacote";
       packageName = "pacote";
-      version = "11.2.4";
+      version = "11.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-11.2.4.tgz";
-        sha512 = "GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-11.3.2.tgz";
+        sha512 = "lMO7V9aMhyE5gfaSFxKfW3OTdXuFBNQJfuNuet3NPzWWhOYIW90t85vHcHLDjdhgmfAdAHyh9q1HAap96ea0XA==";
       };
     };
-    "pacote-11.3.1" = {
+    "pacote-11.3.3" = {
       name = "pacote";
       packageName = "pacote";
-      version = "11.3.1";
+      version = "11.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-11.3.1.tgz";
-        sha512 = "TymtwoAG12cczsJIrwI/euOQKtjrQHlD0k0oyt9QSmZGpqa+KdlxKdWR/YUjYizkixaVyztxt/Wsfo8bL3A6Fg==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-11.3.3.tgz";
+        sha512 = "GQxBX+UcVZrrJRYMK2HoG+gPeSUX/rQhnbPkkGrCYa4n2F/bgClFPaMm0nsdnYrxnmUy85uMHoFXZ0jTD0drew==";
       };
     };
     "pad-0.0.5" = {
@@ -43429,15 +43717,6 @@ let
         sha1 = "ad1f22ce1bf0fdc0d6ddd908af17f351a404b8ac";
       };
     };
-    "paged-request-2.0.2" = {
-      name = "paged-request";
-      packageName = "paged-request";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/paged-request/-/paged-request-2.0.2.tgz";
-        sha512 = "NWrGqneZImDdcMU/7vMcAOo1bIi5h/pmpJqe7/jdsy85BA/s5MSaU/KlpxwW/IVPmIwBcq2uKPrBWWhEWhtxag==";
-      };
-    };
     "pako-0.2.9" = {
       name = "pako";
       packageName = "pako";
@@ -43456,13 +43735,13 @@ let
         sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==";
       };
     };
-    "papaparse-4.6.0" = {
+    "papaparse-5.2.0" = {
       name = "papaparse";
       packageName = "papaparse";
-      version = "4.6.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/papaparse/-/papaparse-4.6.0.tgz";
-        sha512 = "ylm8pmgyz9rkS3Ng/ru5tHUF3JxWwKYP0aZZWZ8eCGdSxoqgYiDUXLNQei73mUJOjHw8QNu5ZNCsLoDpkMA6sg==";
+        url = "https://registry.npmjs.org/papaparse/-/papaparse-5.2.0.tgz";
+        sha512 = "ylq1wgUSnagU+MKQtNeVqrPhZuMYBvOSL00DHycFTCxownF95gpLAk1HiHdUW77N8yxRq1qHXLdlIPyBSG9NSA==";
       };
     };
     "parallel-transform-1.2.0" = {
@@ -43564,6 +43843,15 @@ let
         sha512 = "bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==";
       };
     };
+    "parse-conflict-json-1.1.1" = {
+      name = "parse-conflict-json";
+      packageName = "parse-conflict-json";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz";
+        sha512 = "4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==";
+      };
+    };
     "parse-english-4.2.0" = {
       name = "parse-english";
       packageName = "parse-english";
@@ -43798,15 +44086,6 @@ let
         sha512 = "yy7UTSmliOT/7Yl+P4hwwW2W7PbCTAMcD0lasaVG+k4/2laj42YWzLm468bLFGDoFPIb29g3BuwBcA3gLopKww==";
       };
     };
-    "parse-torrent-7.1.3" = {
-      name = "parse-torrent";
-      packageName = "parse-torrent";
-      version = "7.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-torrent/-/parse-torrent-7.1.3.tgz";
-        sha512 = "to8zT7+o6bVTyP35r2QgG1svuFGMFO1mE6ri1oWHgL9tlgnOtfjmfHmA3mOuP9HTIU/8OiZw0NG5zbyqVLxhvA==";
-      };
-    };
     "parse-torrent-9.1.3" = {
       name = "parse-torrent";
       packageName = "parse-torrent";
@@ -43870,6 +44149,15 @@ let
         sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
       };
     };
+    "parse5-5.1.1" = {
+      name = "parse5";
+      packageName = "parse5";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
+        sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
+      };
+    };
     "parse5-6.0.1" = {
       name = "parse5";
       packageName = "parse5";
@@ -44212,13 +44500,13 @@ let
         sha512 = "CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA==";
       };
     };
-    "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-platform-0.11.15" = {
@@ -44320,6 +44608,15 @@ let
         sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
       };
     };
+    "path2-0.1.0" = {
+      name = "path2";
+      packageName = "path2";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path2/-/path2-0.1.0.tgz";
+        sha1 = "639828942cdbda44a41a45b074ae8873483b4efa";
+      };
+    };
     "pathval-1.1.1" = {
       name = "pathval";
       packageName = "pathval";
@@ -44437,13 +44734,13 @@ let
         sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
       };
     };
-    "perfect-scrollbar-1.5.0" = {
+    "perfect-scrollbar-1.5.1" = {
       name = "perfect-scrollbar";
       packageName = "perfect-scrollbar";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz";
-        sha512 = "NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==";
+        url = "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.1.tgz";
+        sha512 = "MrSImINnIh3Tm1hdPT6bji6fmIeRorVEegQvyUnhqko2hDGTHhmjPefHXfxG/Jb8xVbfCwgmUIlIajERGXjVXQ==";
       };
     };
     "performance-now-0.2.0" = {
@@ -44563,6 +44860,15 @@ let
         sha512 = "KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==";
       };
     };
+    "picomatch-2.3.0" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz";
+        sha512 = "lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==";
+      };
+    };
     "picture-tuber-1.0.2" = {
       name = "picture-tuber";
       packageName = "picture-tuber";
@@ -44680,31 +44986,13 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-6.11.1" = {
+    "pino-6.11.2" = {
       name = "pino";
       packageName = "pino";
-      version = "6.11.1";
+      version = "6.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.11.1.tgz";
-        sha512 = "PoDR/4jCyaP1k2zhuQ4N0NuhaMtei+C9mUHBRRJQujexl/bq3JkeL2OC23ada6Np3zeUMHbO4TGzY2D/rwZX3w==";
-      };
-    };
-    "pino-6.9.0" = {
-      name = "pino";
-      packageName = "pino";
-      version = "6.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.9.0.tgz";
-        sha512 = "9RrRJsKOsgj50oGoR/y4EEVyUjMb/eRu8y4hjwPqM6q214xsxSxY/IKB+aEEv0slqNd4U0RVRfivKfy83UxgUQ==";
-      };
-    };
-    "pino-std-serializers-2.5.0" = {
-      name = "pino-std-serializers";
-      packageName = "pino-std-serializers";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz";
-        sha512 = "wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==";
+        url = "https://registry.npmjs.org/pino/-/pino-6.11.2.tgz";
+        sha512 = "bmzxwbrIPxQUlAuMkF4PWVErUGERU4z37HazlhflKFg08crsNE3fACGN6gPwg5xtKOK47Ux5cZm8YCuLV4wWJg==";
       };
     };
     "pino-std-serializers-3.2.0" = {
@@ -45049,13 +45337,13 @@ let
         sha512 = "7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==";
       };
     };
-    "polished-3.7.1" = {
+    "polished-3.7.2" = {
       name = "polished";
       packageName = "polished";
-      version = "3.7.1";
+      version = "3.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/polished/-/polished-3.7.1.tgz";
-        sha512 = "/QgHrNGYwIA4mwxJ/7FSvalUJsm7KNfnXiScVSEG2Xa5qxDeBn4nmdjN2pW00mkM2Tts64ktc47U8F7Ed1BRAA==";
+        url = "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz";
+        sha512 = "pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==";
       };
     };
     "polyraf-1.1.0" = {
@@ -45149,13 +45437,22 @@ let
         sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
       };
     };
-    "postcss-8.2.7" = {
+    "postcss-8.2.10" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "8.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz";
+        sha512 = "b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==";
+      };
+    };
+    "postcss-8.3.0" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.2.7";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.7.tgz";
-        sha512 = "DsVLH3xJzut+VT+rYr0mtvOtpTjSyqDwPf5EZWXcb0uAKfitGpTY9Ec+afi2+TgdN8rWS9Cs88UDYehKo/RvOw==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz";
+        sha512 = "+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -45653,13 +45950,13 @@ let
         sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
       };
     };
-    "postcss-selector-parser-6.0.4" = {
+    "postcss-selector-parser-6.0.6" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.4";
+      version = "6.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
-        sha512 = "gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz";
+        sha512 = "9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==";
       };
     };
     "postcss-svgo-4.0.3" = {
@@ -45707,13 +46004,13 @@ let
         sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
       };
     };
-    "postcss-values-parser-1.5.0" = {
+    "postcss-values-parser-2.0.1" = {
       name = "postcss-values-parser";
       packageName = "postcss-values-parser";
-      version = "1.5.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz";
-        sha512 = "3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ==";
+        url = "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz";
+        sha512 = "2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==";
       };
     };
     "postgres-array-2.0.0" = {
@@ -45815,22 +46112,22 @@ let
         sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
       };
     };
-    "prebuild-install-6.1.1" = {
+    "prebuild-install-6.1.2" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.1.tgz";
-        sha512 = "M+cKwofFlHa5VpTWub7GLg5RLcunYIcLqtY5pKcls/u7xaAb8FrXZ520qY8rkpYy5xw90tYCyMO0MP5ggzR3Sw==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.2.tgz";
+        sha512 = "PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ==";
       };
     };
-    "precinct-6.3.1" = {
+    "precinct-8.1.0" = {
       name = "precinct";
       packageName = "precinct";
-      version = "6.3.1";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/precinct/-/precinct-6.3.1.tgz";
-        sha512 = "JAwyLCgTylWminoD7V0VJwMElWmwrVSR6r9HaPWCoswkB4iFzX7aNtO7VBfAVPy+NhmjKb8IF8UmlWJXzUkOIQ==";
+        url = "https://registry.npmjs.org/precinct/-/precinct-8.1.0.tgz";
+        sha512 = "oeZBR9IdER42Ef6Rz11z1oOUqicsI5J1Qffj6tYghKLhxN2UnHy7uE1axxNr0VZRevPK2HWkROk36uXrbJwHFA==";
       };
     };
     "precond-0.2.3" = {
@@ -45842,6 +46139,15 @@ let
         sha1 = "aa9591bcaa24923f1e0f4849d240f47efc1075ac";
       };
     };
+    "preferred-pm-3.0.3" = {
+      name = "preferred-pm";
+      packageName = "preferred-pm";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz";
+        sha512 = "+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==";
+      };
+    };
     "prelude-ls-1.1.2" = {
       name = "prelude-ls";
       packageName = "prelude-ls";
@@ -45914,13 +46220,13 @@ let
         sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
       };
     };
-    "prettier-2.2.1" = {
+    "prettier-2.3.0" = {
       name = "prettier";
       packageName = "prettier";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz";
-        sha512 = "PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==";
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz";
+        sha512 = "kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==";
       };
     };
     "prettier-bytes-1.0.4" = {
@@ -45950,13 +46256,22 @@ let
         sha512 = "2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==";
       };
     };
-    "prettier-plugin-svelte-2.2.0" = {
+    "prettier-linter-helpers-1.0.0" = {
+      name = "prettier-linter-helpers";
+      packageName = "prettier-linter-helpers";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz";
+        sha512 = "GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==";
+      };
+    };
+    "prettier-plugin-svelte-2.3.0" = {
       name = "prettier-plugin-svelte";
       packageName = "prettier-plugin-svelte";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.2.0.tgz";
-        sha512 = "Xdmqgr71tAuMqqzNCK52/v94g/Yv7V7lz+nmbO9NEA+9ol15VV3uUHOfydMNOo3SWvFaVlBcp947ebEaMWqVfQ==";
+        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.3.0.tgz";
+        sha512 = "HTzXvSq7lWFuLsSaxYOUkGkVNCl3RrSjDCOgQjkBX5FQGmWjL8o3IFACSGhjPMMfWKADpapAr0zdbBWkND9mqw==";
       };
     };
     "prettier-stylelint-0.4.2" = {
@@ -46301,6 +46616,15 @@ let
         sha512 = "iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==";
       };
     };
+    "prom-client-13.1.0" = {
+      name = "prom-client";
+      packageName = "prom-client";
+      version = "13.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prom-client/-/prom-client-13.1.0.tgz";
+        sha512 = "jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==";
+      };
+    };
     "promiscuous-0.6.0" = {
       name = "promiscuous";
       packageName = "promiscuous";
@@ -46328,6 +46652,15 @@ let
         sha512 = "W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==";
       };
     };
+    "promise-all-reject-late-1.0.1" = {
+      name = "promise-all-reject-late";
+      packageName = "promise-all-reject-late";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz";
+        sha512 = "vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==";
+      };
+    };
     "promise-breaker-5.0.0" = {
       name = "promise-breaker";
       packageName = "promise-breaker";
@@ -46337,6 +46670,15 @@ let
         sha512 = "mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==";
       };
     };
+    "promise-call-limit-1.0.1" = {
+      name = "promise-call-limit";
+      packageName = "promise-call-limit";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz";
+        sha512 = "3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==";
+      };
+    };
     "promise-deferred-2.0.3" = {
       name = "promise-deferred";
       packageName = "promise-deferred";
@@ -46382,15 +46724,6 @@ let
         sha1 = "2f6f5f7c0f6d08109e967659c79b88a9ed5e93b4";
       };
     };
-    "promise-retry-1.1.1" = {
-      name = "promise-retry";
-      packageName = "promise-retry";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz";
-        sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d";
-      };
-    };
     "promise-retry-2.0.1" = {
       name = "promise-retry";
       packageName = "promise-retry";
@@ -46571,13 +46904,13 @@ let
         sha1 = "bc826e34c3af4697e8d0af7a669e4d612aedcd17";
       };
     };
-    "protobufjs-6.10.2" = {
+    "protobufjs-6.11.2" = {
       name = "protobufjs";
       packageName = "protobufjs";
-      version = "6.10.2";
+      version = "6.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz";
-        sha512 = "27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==";
+        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz";
+        sha512 = "4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==";
       };
     };
     "protocol-buffers-encodings-1.1.1" = {
@@ -46607,13 +46940,13 @@ let
         sha1 = "71c0ee3b102de3f202f3b64f608d173fcba1a918";
       };
     };
-    "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==";
       };
     };
     "proxy-agent-4.0.1" = {
@@ -47471,6 +47804,15 @@ let
         sha1 = "a7afa2384d1e6415a5d602054126cc8de3bcbce7";
       };
     };
+    "pull-websocket-3.4.2" = {
+      name = "pull-websocket";
+      packageName = "pull-websocket";
+      version = "3.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pull-websocket/-/pull-websocket-3.4.2.tgz";
+        sha512 = "hGFWC4/fzRdO2FEsyR9woVzgv/yG4PIk3RXPN4azBpomGzGQFRUORwKQDS3j7RAIy8tjvN2W+qjU8jNn2NWeNQ==";
+      };
+    };
     "pull-window-2.1.4" = {
       name = "pull-window";
       packageName = "pull-window";
@@ -47498,15 +47840,6 @@ let
         sha1 = "437344aeb2189f65e678ed1af37f0f760a5453ef";
       };
     };
-    "pull-ws-3.3.2" = {
-      name = "pull-ws";
-      packageName = "pull-ws";
-      version = "3.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pull-ws/-/pull-ws-3.3.2.tgz";
-        sha512 = "Bn4bcJsSzJGOQl4RBulDhG1FkcbDHSCXteI8Jg5k4X6X5TxVzZzKilWJ1WV2v4OnRXl2eYbtHFGsPl8Cr1xJzw==";
-      };
-    };
     "pump-0.3.5" = {
       name = "pump";
       packageName = "pump";
@@ -47606,6 +47939,15 @@ let
         sha512 = "D0RzSWlepeWkxPPdK3xhTcefj8rjah1791GE82Pdjsri49sy11ci/JQsAO8K2NRukqvwEtcI+ImP5F4ZiMvtIQ==";
       };
     };
+    "puppeteer-9.1.1" = {
+      name = "puppeteer";
+      packageName = "puppeteer";
+      version = "9.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-9.1.1.tgz";
+        sha512 = "W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw==";
+      };
+    };
     "purgecss-2.3.0" = {
       name = "purgecss";
       packageName = "purgecss";
@@ -47624,22 +47966,22 @@ let
         sha512 = "wCDN1KkAWOMXsiV0XxH/CggHqOYeXvyn00t9Zjp5RKsLZ2rzg/lLJIMAVxYLyh79T168W3fBYcG5TRRJAlQr6g==";
       };
     };
-    "push-stream-11.0.0" = {
+    "push-stream-11.0.1" = {
       name = "push-stream";
       packageName = "push-stream";
-      version = "11.0.0";
+      version = "11.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/push-stream/-/push-stream-11.0.0.tgz";
-        sha512 = "rDVD2f3wOztI/59/fukGLwZkUOC55674hncsSwgKF/yLlkkL594AoWTlkF6SGF0x8O5o1j92ObXk8Cxc1llhYg==";
+        url = "https://registry.npmjs.org/push-stream/-/push-stream-11.0.1.tgz";
+        sha512 = "Cb5aOY6Z6JxjAKBmpmmzoJ+8I6pJlRjJ5WYoM2Vw3kSlClojmIXzA+FP0yglJ4ELokrqLX223frxJTnxUx0dpw==";
       };
     };
-    "push-stream-to-pull-stream-1.0.3" = {
+    "push-stream-to-pull-stream-1.0.4" = {
       name = "push-stream-to-pull-stream";
       packageName = "push-stream-to-pull-stream";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/push-stream-to-pull-stream/-/push-stream-to-pull-stream-1.0.3.tgz";
-        sha512 = "pdE/OKi/jnp9DqGgNRzLY0oVHffn/8TXJmBPzv+ikdvpkeA0J//l5d7TZk1yWwZj9P0JcOIEVDOuHzhXaeBlmw==";
+        url = "https://registry.npmjs.org/push-stream-to-pull-stream/-/push-stream-to-pull-stream-1.0.4.tgz";
+        sha512 = "W1ysxl25uU6410OGipJM0/FvlNoXvuZqIgSLGELkZ6+MaXPAp/wr2EvAYKrs1o4blzhYssv/cFXiiRJkMnnhrA==";
       };
     };
     "pushdata-bitcoin-1.0.1" = {
@@ -47651,13 +47993,13 @@ let
         sha1 = "15931d3cd967ade52206f523aa7331aef7d43af7";
       };
     };
-    "pyright-1.1.132" = {
+    "pyright-1.1.145" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.132";
+      version = "1.1.145";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.132.tgz";
-        sha512 = "quvG9Ip2NwKEShsLJ7eLlkQ/ST5SX84QCgO/k7gGqlCHwuifn9/v7LrzdpdFbkVnQR51egUNWwwLQRoIBT6vUA==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.145.tgz";
+        sha512 = "eyrK9Ilut2shvqi/TFmpfUrm7U6DrkskMa8UPofkGJZCO1PJzVwzKaGWrR57zlbcAxs5PVvK9JGSIO9DJUVNyA==";
       };
     };
     "q-0.9.7" = {
@@ -47939,13 +48281,13 @@ let
         sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
       };
     };
-    "quick-format-unescaped-4.0.3" = {
+    "quick-format-unescaped-4.0.1" = {
       name = "quick-format-unescaped";
       packageName = "quick-format-unescaped";
-      version = "4.0.3";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz";
-        sha512 = "MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==";
+        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz";
+        sha512 = "RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==";
       };
     };
     "quick-lru-1.1.0" = {
@@ -48380,13 +48722,13 @@ let
         sha512 = "wuygyq8TXUlSdVXv2kigXxQNOgdb9m7LbIjwfTNGSpaY1riLd5e+VeQjlQMyUtrk0oiyhi1AqIVynworl3qxHA==";
       };
     };
-    "re2-1.15.9" = {
+    "re2-1.16.0" = {
       name = "re2";
       packageName = "re2";
-      version = "1.15.9";
+      version = "1.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/re2/-/re2-1.15.9.tgz";
-        sha512 = "AXWEhpMTBdC+3oqbjdU07dk0pBCvxh5vbOMLERL6Y8FYBSGn4vXlLe8cYszn64Yy7H8keVMrgPzoSvOd4mePpg==";
+        url = "https://registry.npmjs.org/re2/-/re2-1.16.0.tgz";
+        sha512 = "eizTZL2ZO0ZseLqfD4t3Qd0M3b3Nr0MBWpX81EbPMIud/1d/CSfUIx2GQK8fWiAeHoSekO5EOeFib2udTZLwYw==";
       };
     };
     "react-16.14.0" = {
@@ -48407,13 +48749,13 @@ let
         sha512 = "dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==";
       };
     };
-    "react-devtools-core-4.12.2" = {
+    "react-devtools-core-4.13.5" = {
       name = "react-devtools-core";
       packageName = "react-devtools-core";
-      version = "4.12.2";
+      version = "4.13.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.12.2.tgz";
-        sha512 = "cvAiJCSIIan2A22o4j4Twc7PdDrwqiAQVBeZ+osS2T/wv2Ua3a0J8Sgx4pTH5Y7VoWn5WiGCHkAW4S1lYl3kcA==";
+        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.13.5.tgz";
+        sha512 = "k+P5VSKM6P22Go9IQ8dJmjj9fbztvKt1iRDI/4wS5oTvd1EnytIJMYB59wZt+D3kgp64jklNX/MRmY42xAQ08g==";
       };
     };
     "react-dom-16.14.0" = {
@@ -48623,15 +48965,6 @@ let
         sha512 = "aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==";
       };
     };
-    "read-package-json-fast-1.2.2" = {
-      name = "read-package-json-fast";
-      packageName = "read-package-json-fast";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz";
-        sha512 = "39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==";
-      };
-    };
     "read-package-json-fast-2.0.2" = {
       name = "read-package-json-fast";
       packageName = "read-package-json-fast";
@@ -48722,15 +49055,6 @@ let
         sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==";
       };
     };
-    "read-pkg-up-5.0.0" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz";
-        sha512 = "XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==";
-      };
-    };
     "read-pkg-up-7.0.1" = {
       name = "read-pkg-up";
       packageName = "read-pkg-up";
@@ -48992,13 +49316,13 @@ let
         sha512 = "ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==";
       };
     };
-    "record-cache-1.1.0" = {
+    "record-cache-1.1.1" = {
       name = "record-cache";
       packageName = "record-cache";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/record-cache/-/record-cache-1.1.0.tgz";
-        sha512 = "u8rbtLEJV7HRacl/ZYwSBFD8NFyB3PfTTfGLP37IW3hftQCwu6z4Q2RLyxo1YJUNRTEzJfpLpGwVuEYdaIkG9Q==";
+        url = "https://registry.npmjs.org/record-cache/-/record-cache-1.1.1.tgz";
+        sha512 = "L5hZlgWc7CmGbztnemQoKE1bLu9rtI2skOB0ttE4C5+TVszLE8Rd0YLTROSgvXKLAqPumS/soyN5tJW5wJLmJQ==";
       };
     };
     "recursive-readdir-2.2.2" = {
@@ -49055,13 +49379,13 @@ let
         sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
       };
     };
-    "redis-3.1.1" = {
+    "redis-3.1.2" = {
       name = "redis";
       packageName = "redis";
-      version = "3.1.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redis/-/redis-3.1.1.tgz";
-        sha512 = "QhkKhOuzhogR1NDJfBD34TQJz2ZJwDhhIC6ZmvpftlmfYShHHQXjjNspAJ+Z2HH5NwSBVYBVganbiZ8bgFMHjg==";
+        url = "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz";
+        sha512 = "grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==";
       };
     };
     "redis-commands-1.7.0" = {
@@ -49127,13 +49451,13 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
-    "redux-4.0.5" = {
+    "redux-4.1.0" = {
       name = "redux";
       packageName = "redux";
-      version = "4.0.5";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz";
-        sha512 = "VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==";
+        url = "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz";
+        sha512 = "uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==";
       };
     };
     "reflect-metadata-0.1.13" = {
@@ -49334,6 +49658,15 @@ let
         sha512 = "ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==";
       };
     };
+    "rehype-parse-6.0.2" = {
+      name = "rehype-parse";
+      packageName = "rehype-parse";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz";
+        sha512 = "0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==";
+      };
+    };
     "rehype-parse-7.0.1" = {
       name = "rehype-parse";
       packageName = "rehype-parse";
@@ -49433,13 +49766,13 @@ let
         sha512 = "K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw==";
       };
     };
-    "remark-frontmatter-1.3.3" = {
-      name = "remark-frontmatter";
-      packageName = "remark-frontmatter";
-      version = "1.3.3";
+    "remark-footnotes-3.0.0" = {
+      name = "remark-footnotes";
+      packageName = "remark-footnotes";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz";
-        sha512 = "fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==";
+        url = "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-3.0.0.tgz";
+        sha512 = "ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg==";
       };
     };
     "remark-frontmatter-2.0.0" = {
@@ -49451,6 +49784,24 @@ let
         sha512 = "uNOQt4tO14qBFWXenF0MLC4cqo3dv8qiHPGyjCl1rwOT0LomSHpcElbjjVh5CwzElInB38HD8aSRVugKQjeyHA==";
       };
     };
+    "remark-frontmatter-3.0.0" = {
+      name = "remark-frontmatter";
+      packageName = "remark-frontmatter";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz";
+        sha512 = "mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==";
+      };
+    };
+    "remark-gfm-1.0.0" = {
+      name = "remark-gfm";
+      packageName = "remark-gfm";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz";
+        sha512 = "KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==";
+      };
+    };
     "remark-html-2.0.2" = {
       name = "remark-html";
       packageName = "remark-html";
@@ -49496,15 +49847,6 @@ let
         sha512 = "XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==";
       };
     };
-    "remark-parse-5.0.0" = {
-      name = "remark-parse";
-      packageName = "remark-parse";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz";
-        sha512 = "b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==";
-      };
-    };
     "remark-parse-6.0.3" = {
       name = "remark-parse";
       packageName = "remark-parse";
@@ -49964,15 +50306,6 @@ let
         sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
-    "resolve-1.19.0" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.19.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz";
-        sha512 = "rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==";
-      };
-    };
     "resolve-1.20.0" = {
       name = "resolve";
       packageName = "resolve";
@@ -50369,6 +50702,15 @@ let
         sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
       };
     };
+    "rgbcolor-1.0.1" = {
+      name = "rgbcolor";
+      packageName = "rgbcolor";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz";
+        sha1 = "d6505ecdb304a6595da26fa4b43307306775945d";
+      };
+    };
     "right-align-0.1.3" = {
       name = "right-align";
       packageName = "right-align";
@@ -50495,13 +50837,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.45.2" = {
+    "rollup-2.50.5" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.45.2";
+      version = "2.50.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.45.2.tgz";
-        sha512 = "kRRU7wXzFHUzBIv0GfoFFIN3m9oteY4uAsKllIpQDId5cfnkWF2J130l+27dzDju0E6MScKiV0ZM5Bw8m4blYQ==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.50.5.tgz";
+        sha512 = "Ztz4NurU2LbS3Jn5rlhnYv35z6pkjBUmYKr94fOBIKINKRO6kug9NTFHArT7jqwMP2kqEZ39jJuEtkk91NBltQ==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -50990,13 +51332,13 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-1.32.10" = {
+    "sass-1.34.0" = {
       name = "sass";
       packageName = "sass";
-      version = "1.32.10";
+      version = "1.34.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.32.10.tgz";
-        sha512 = "Nx0pcWoonAkn7CRp0aE/hket1UP97GiR1IFw3kcjV3pnenhWgZEWUf0ZcfPOV2fK52fnOcK3JdC/YYZ9E47DTQ==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.34.0.tgz";
+        sha512 = "rHEN0BscqjUYuomUEaqq3BMgsXqQfkcMVR7UhscsAVub0/spUrZGBMxQXFS2kfiDsPLZw5yuU9iJEFNC2x38Qw==";
       };
     };
     "sax-0.5.8" = {
@@ -51116,15 +51458,6 @@ let
         sha512 = "6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==";
       };
     };
-    "scoped-regex-1.0.0" = {
-      name = "scoped-regex";
-      packageName = "scoped-regex";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz";
-        sha1 = "a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8";
-      };
-    };
     "scoped-regex-2.1.0" = {
       name = "scoped-regex";
       packageName = "scoped-regex";
@@ -51215,13 +51548,13 @@ let
         sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
       };
     };
-    "selfsigned-1.10.8" = {
+    "selfsigned-1.10.11" = {
       name = "selfsigned";
       packageName = "selfsigned";
-      version = "1.10.8";
+      version = "1.10.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz";
-        sha512 = "2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==";
+        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz";
+        sha512 = "aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==";
       };
     };
     "semaphore-async-await-1.5.1" = {
@@ -51368,15 +51701,6 @@ let
         sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
       };
     };
-    "semver-7.3.4" = {
-      name = "semver";
-      packageName = "semver";
-      version = "7.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz";
-        sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
-      };
-    };
     "semver-7.3.5" = {
       name = "semver";
       packageName = "semver";
@@ -51503,13 +51827,13 @@ let
         sha512 = "QnpHNykm4nI4T6mT+NoVayh9Ixl5DohYCSVqMgPJsO2WejOcqaYTh4HQOkmzaDzXH3NO5pif4z/hpo2NGtgNlg==";
       };
     };
-    "sentence-splitter-3.2.1" = {
+    "sentence-splitter-3.2.2" = {
       name = "sentence-splitter";
       packageName = "sentence-splitter";
-      version = "3.2.1";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-3.2.1.tgz";
-        sha512 = "aG+Tf8M1wVUd2uPSUtdMXdJlKZLcdh+oVE8iEn8KwfxYZ87qDpe7+o0nGZdr+96g2H76Qz/8TrG9dIxyp7c70w==";
+        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-3.2.2.tgz";
+        sha512 = "hMvaodgK9Fay928uiQoTMEWjXpCERdKD2uKo7BbSyP+uWTo+wHiRjN+ZShyI99rW0VuoV4Cuw8FUmaRcnpN7Ug==";
       };
     };
     "separator-escape-0.0.1" = {
@@ -51638,13 +51962,13 @@ let
         sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
       };
     };
-    "service-runner-2.8.2" = {
+    "service-runner-2.8.3" = {
       name = "service-runner";
       packageName = "service-runner";
-      version = "2.8.2";
+      version = "2.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.2.tgz";
-        sha512 = "SspUqYN+hp8fB5qhG9PbTzIPL3ze5wKXThdyUny2BIA6wdT5MljVkYUCUMQgo5xjM4e95+qU+XrsvfM2ytt6ng==";
+        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.3.tgz";
+        sha512 = "oOP54jRgWE9IBeStnYI9lIdJ333HHe+8pjAvBpDmRyOXNcsvVMN22hbuX93YVlTUE87I8J80ORZ3u01DgNKMYg==";
       };
     };
     "set-blocking-1.0.0" = {
@@ -51665,15 +51989,6 @@ let
         sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
       };
     };
-    "set-getter-0.1.0" = {
-      name = "set-getter";
-      packageName = "set-getter";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz";
-        sha1 = "d769c182c9d5a51f409145f2fba82e5e86e80376";
-      };
-    };
     "set-immediate-shim-1.0.1" = {
       name = "set-immediate-shim";
       packageName = "set-immediate-shim";
@@ -52115,13 +52430,13 @@ let
         sha512 = "rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==";
       };
     };
-    "simple-git-2.38.0" = {
+    "simple-git-2.39.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.38.0";
+      version = "2.39.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.38.0.tgz";
-        sha512 = "CORjrfirWMEGbJAxaXDH/PjZVOeATeG2bkafM9DsLVcFkbF9sXQGIIpEI6FeyXpvUsFK69T/pa4+4FKY9TUJMQ==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.39.0.tgz";
+        sha512 = "VOsrmc3fpp1lGVIpo+1SKNqJzrdVJeSGZCeenPKnJPNo5UouAlSkWFc037pfm9wRYtfxBdwp2deVJGCG8J6C8A==";
       };
     };
     "simple-markdown-0.4.4" = {
@@ -52241,13 +52556,13 @@ let
         sha1 = "81f0ad2ad645181945c80952a5c1414992ee9664";
       };
     };
-    "siphash24-1.1.1" = {
+    "siphash24-1.2.0" = {
       name = "siphash24";
       packageName = "siphash24";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/siphash24/-/siphash24-1.1.1.tgz";
-        sha512 = "dKKwjIoTOa587TARYLlBRXq2lkbu5Iz35XrEVWpelhBP1m8r2BGOy1QlaZe84GTFHG/BTucEUd2btnNc8QzIVA==";
+        url = "https://registry.npmjs.org/siphash24/-/siphash24-1.2.0.tgz";
+        sha512 = "51yTA4ZqBY0tHTsBVGy3KAmMI7ArtwSOSmfFwJnZHFL+K76RMzZLx4m59HY5HSByjGHF3q+Fmcl8e5bMF160iQ==";
       };
     };
     "sisteransi-1.0.5" = {
@@ -52403,13 +52718,13 @@ let
         sha1 = "e09f00899c09f5a7058edc36dd49f046fd50a82a";
       };
     };
-    "slugify-1.5.0" = {
+    "slugify-1.5.3" = {
       name = "slugify";
       packageName = "slugify";
-      version = "1.5.0";
+      version = "1.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz";
-        sha512 = "Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==";
+        url = "https://registry.npmjs.org/slugify/-/slugify-1.5.3.tgz";
+        sha512 = "/HkjRdwPY3yHJReXu38NiusZw2+LLE2SrhkWJtmlPDB1fqFSvioYj62NkPcrKiNCgRLeGcGK7QBvr1iQwybeXw==";
       };
     };
     "smart-buffer-4.1.0" = {
@@ -52547,13 +52862,13 @@ let
         sha512 = "NFwVLMCqKTocY66gcim0ukF6e31VRDJqDapg5sy3vCHqlD1OCNUXSK/aI4VQEEndDrsnFmQepsL5KpEU0dDRIQ==";
       };
     };
-    "snyk-docker-plugin-4.19.3" = {
+    "snyk-docker-plugin-4.20.8" = {
       name = "snyk-docker-plugin";
       packageName = "snyk-docker-plugin";
-      version = "4.19.3";
+      version = "4.20.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-4.19.3.tgz";
-        sha512 = "5WkXyT7uY5NrTOvEqxeMqb6dDcskT3c/gbHUTOyPuvE6tMut+OOYK8RRXbwZFeLzpS8asq4e1R7U7syYG3VXwg==";
+        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-4.20.8.tgz";
+        sha512 = "uZ0vp2D+AYzPWzoo0jAqdK6gbUwKNPBYPKzyn6A9hBVO8guL/Y3JCq5H+7hCs6FFd0FEuD70Tsy3SNAEJyu4Fg==";
       };
     };
     "snyk-go-parser-1.4.1" = {
@@ -52574,13 +52889,13 @@ let
         sha512 = "1jAYPRgMapO2BYL+HWsUq5gsAiDGmI0Pn7omc0lk24tcUOMhUB+1hb0u9WBMNzHvXBjevBkjOctjpnt2hMKN6Q==";
       };
     };
-    "snyk-gradle-plugin-3.14.0" = {
+    "snyk-gradle-plugin-3.16.0" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.14.0";
+      version = "3.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.14.0.tgz";
-        sha512 = "2A8ifM91TyzSx/U2fYvHXbaCRVsEx60hGFQjbSH9Hl9AokxEzMi2qti7wsObs1jUX2m198D1mdXu4k/Y1jWxXg==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.16.0.tgz";
+        sha512 = "PQegG8GOweJvUDSroysO1E0RK3MxphSUvNG5siRqGHJQ8s+dw9DddYN8kMn5+pTrfzo6zddgDPJxjqsfNR+NIw==";
       };
     };
     "snyk-module-3.1.0" = {
@@ -52592,40 +52907,40 @@ let
         sha512 = "HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw==";
       };
     };
-    "snyk-mvn-plugin-2.25.3" = {
+    "snyk-mvn-plugin-2.26.0" = {
       name = "snyk-mvn-plugin";
       packageName = "snyk-mvn-plugin";
-      version = "2.25.3";
+      version = "2.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.25.3.tgz";
-        sha512 = "JAxOThX51JDbgMMjp3gQDVi07G9VgTYSF06QC7f5LNA0zoXNr743e2rm78RGw5bqE3JRjZxEghiLHPPuvS5DDg==";
+        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.26.0.tgz";
+        sha512 = "LxYNWXPJxcwbkCK+vE7t437RttEDcbsS2KJJYzFtrr6u7g26c51u9aMHYPCDAEmwjI1A28zSrh7Wp45JW4YOqg==";
       };
     };
-    "snyk-nodejs-lockfile-parser-1.30.2" = {
+    "snyk-nodejs-lockfile-parser-1.34.0" = {
       name = "snyk-nodejs-lockfile-parser";
       packageName = "snyk-nodejs-lockfile-parser";
-      version = "1.30.2";
+      version = "1.34.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.30.2.tgz";
-        sha512 = "wI3VXVYO/ok0uaQm5i+Koo4rKBNilYC/QRIQFlyGbZXf+WBdRcTBKVDfTy8uNfUhMRSGzd84lNclMnetU9Y+vw==";
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.34.0.tgz";
+        sha512 = "F5QjIBBu6DWHwvTYlnETJxWabTQSoKGYxyoqzurPyL60lWNQmFVid0x67tQdq0sTQOOr0p6358JI+5w634vuew==";
       };
     };
-    "snyk-nodejs-lockfile-parser-1.32.0" = {
+    "snyk-nodejs-lockfile-parser-1.35.0" = {
       name = "snyk-nodejs-lockfile-parser";
       packageName = "snyk-nodejs-lockfile-parser";
-      version = "1.32.0";
+      version = "1.35.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.32.0.tgz";
-        sha512 = "FdYa/7NibnJPqBfobyw5jgI1/rd0LpMZf2W4WYYLRc2Hz7LZjKAByPjIX6qoA+lB9SC7yk5HYwWj2n4Fbg/DDw==";
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.35.0.tgz";
+        sha512 = "fSjer9Ic8cdA2HvInUmhwbAhoLFXIokAzGB1PeGKwr0zzyfo3dSX3ReTMEbkhrEg+h0eES13px/KiiJ0EKRKMg==";
       };
     };
-    "snyk-nuget-plugin-1.21.0" = {
+    "snyk-nuget-plugin-1.21.1" = {
       name = "snyk-nuget-plugin";
       packageName = "snyk-nuget-plugin";
-      version = "1.21.0";
+      version = "1.21.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.21.0.tgz";
-        sha512 = "c/JYF3sZzMN/lYz171zrEkVcPqDVcUTVgKIKHiL8nhhuFKxZQ1gzqOgk+lnfN31TLoTNQsZ3DhW/WY+4zEALvw==";
+        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.21.1.tgz";
+        sha512 = "nRtedIvrow5ODqOKkQWolKrxn8ZoNL3iNJGuW0jNhwv+/9K0XE1UORM5F1ENAsd+nzCSO/kiYAXCc5CNK8HWEw==";
       };
     };
     "snyk-paket-parser-1.6.0" = {
@@ -52664,13 +52979,13 @@ let
         sha512 = "XYjhOTRPFA7NfDUsH6uH1fbML2OgSFsqdUPbud7x01urNP9CHXgUgAD4NhKMi3dVQK+7IdYadWt0wrFWw4y+qg==";
       };
     };
-    "snyk-python-plugin-1.19.8" = {
+    "snyk-python-plugin-1.19.9" = {
       name = "snyk-python-plugin";
       packageName = "snyk-python-plugin";
-      version = "1.19.8";
+      version = "1.19.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.19.8.tgz";
-        sha512 = "LMKVnv0J4X/qHMoKB17hMND0abWtm9wdgI4xVzrOcf2Vtzs3J87trRhwLxQA2lMoBW3gcjtTeBUvNKaxikSVeQ==";
+        url = "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.19.9.tgz";
+        sha512 = "vkqBJP+wOtrBKpqrFRP5EfAs5wZ/fGNI14Mb+EMnmu+ebP1ze9AnHxfiqMl/+ITzeYElZ2H5DX9sXXiqpJRhRg==";
       };
     };
     "snyk-resolve-1.1.0" = {
@@ -52763,13 +53078,13 @@ let
         sha512 = "JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==";
       };
     };
-    "socket.io-4.0.1" = {
+    "socket.io-4.1.2" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "4.0.1";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz";
-        sha512 = "g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.1.2.tgz";
+        sha512 = "xK0SD1C7hFrh9+bYoYCdVt+ncixkSLKtNLCax5aEy1o3r5PaO5yQhVb97exIe67cE7lAK+EpyMytXWTWmyZY8w==";
       };
     };
     "socket.io-adapter-0.2.0" = {
@@ -52799,13 +53114,13 @@ let
         sha512 = "+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==";
       };
     };
-    "socket.io-adapter-2.2.0" = {
+    "socket.io-adapter-2.3.1" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
-      version = "2.2.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz";
-        sha512 = "rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg==";
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz";
+        sha512 = "8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw==";
       };
     };
     "socket.io-client-1.0.6" = {
@@ -53204,6 +53519,15 @@ let
         sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
       };
     };
+    "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-resolve-0.5.3" = {
       name = "source-map-resolve";
       packageName = "source-map-resolve";
@@ -53213,6 +53537,15 @@ let
         sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     };
+    "source-map-resolve-0.6.0" = {
+      name = "source-map-resolve";
+      packageName = "source-map-resolve";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz";
+        sha512 = "KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==";
+      };
+    };
     "source-map-support-0.4.18" = {
       name = "source-map-support";
       packageName = "source-map-support";
@@ -53348,13 +53681,13 @@ let
         sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spdx-license-ids-3.0.7" = {
+    "spdx-license-ids-3.0.9" = {
       name = "spdx-license-ids";
       packageName = "spdx-license-ids";
-      version = "3.0.7";
+      version = "3.0.9";
       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.9.tgz";
+        sha512 = "Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==";
       };
     };
     "spdx-license-list-6.4.0" = {
@@ -53636,13 +53969,13 @@ let
         sha1 = "475393ff9e91479aea62dcaf0ca3d14983a7fb40";
       };
     };
-    "srcset-3.0.0" = {
+    "srcset-3.0.1" = {
       name = "srcset";
       packageName = "srcset";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/srcset/-/srcset-3.0.0.tgz";
-        sha512 = "D59vF08Qzu/C4GAOXVgMTLfgryt5fyWo93FZyhEWANo0PokFz/iWdDe13mX3O5TRf6l8vMTqckAfR4zPiaH0yQ==";
+        url = "https://registry.npmjs.org/srcset/-/srcset-3.0.1.tgz";
+        sha512 = "MM8wDGg5BQJEj94tDrZDrX9wrC439/Eoeg3sgmVLPMjHgrAFeXAKk3tmFlCbKw5k+yOEhPXRpPlRcisQmqWVSQ==";
       };
     };
     "srt2vtt-1.3.1" = {
@@ -53717,13 +54050,13 @@ let
         sha512 = "pJAFizB6OcuJLX4RJJuU9HWyPwM2CqLi/vs08lhVIR3TGxacxpavvK5LzbxT+Y3iWkBchOTKS5hHCigA5aaung==";
       };
     };
-    "ssb-db2-2.0.2" = {
+    "ssb-db2-2.1.2" = {
       name = "ssb-db2";
       packageName = "ssb-db2";
-      version = "2.0.2";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.0.2.tgz";
-        sha512 = "ylN4uqh18gJjDrkaYWsuEEMV4rCLcKuYIkL26hgtAVJm9AfuOTBIdhZZHdfeAMd2ZkcqAmIR62XUeQL3czvOsA==";
+        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.1.2.tgz";
+        sha512 = "FrH++v1qyoCVq9ykuyjvzvsjNEX8mpqY8DRt0bOvIENOeWTWHCA6AXlP8d6LU39CGlwjw6ftlZr4ObizYH4zSQ==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -53951,13 +54284,13 @@ let
         sha512 = "XhzVmezsUJLlKxTfWlicxhiPRTEYHfJLskYQNRSnw4USqgo9LVx53+MJAhdZOYpZTW2jINR0TeetWs9M27gcbA==";
       };
     };
-    "ssb-replicate-1.3.2" = {
+    "ssb-replicate-1.3.3" = {
       name = "ssb-replicate";
       packageName = "ssb-replicate";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-replicate/-/ssb-replicate-1.3.2.tgz";
-        sha512 = "r/34OHn5wDkVUu0UNdKdPjmd3cPDmgknA5nK+gXBZj9ugSDwmdDsfEUavGtA7hlO+He1pC4EXtBa14dqgTqJCg==";
+        url = "https://registry.npmjs.org/ssb-replicate/-/ssb-replicate-1.3.3.tgz";
+        sha512 = "RcXRBLqQMwew+aKkaTZ2K0qq2kwe7he8ZUz8cX4bZ6Sr4+yszhRpxqnN6XeK1hA6TTvUltR0RNgOO/fqT3djRg==";
       };
     };
     "ssb-sort-1.1.3" = {
@@ -54005,15 +54338,6 @@ let
         sha512 = "Xyf2tWLnO0Z297FKag0e8IXFIpnYRWZ3FBn4dN2qlMRsOcpf0P54FPhvdcb1Es0Fm4hbhYYXa23jR+VPGPQhSg==";
       };
     };
-    "sse-z-0.3.0" = {
-      name = "sse-z";
-      packageName = "sse-z";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz";
-        sha512 = "jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==";
-      };
-    };
     "ssh-config-1.1.6" = {
       name = "ssh-config";
       packageName = "ssh-config";
@@ -54158,6 +54482,15 @@ let
         sha512 = "gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==";
       };
     };
+    "stackblur-canvas-2.5.0" = {
+      name = "stackblur-canvas";
+      packageName = "stackblur-canvas";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.5.0.tgz";
+        sha512 = "EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ==";
+      };
+    };
     "stackframe-1.2.0" = {
       name = "stackframe";
       packageName = "stackframe";
@@ -54257,22 +54590,13 @@ let
         sha512 = "/Kz55rgUIv2KP2MKphwYT/NCuSfAlbbMRv2ZWw7wyXayu230zdtzhxxuXXcvsc6EmmhS8bSJl3uS1wmMHFumbA==";
       };
     };
-    "statsd-client-0.4.5" = {
+    "statsd-client-0.4.6" = {
       name = "statsd-client";
       packageName = "statsd-client";
-      version = "0.4.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/statsd-client/-/statsd-client-0.4.5.tgz";
-        sha512 = "tmTpFMxpBcq92CTMq81d1W47GEazy76Hi+aNKvKJloMplQZe+L1jekSg95YG8ieq6j2Q9MboCaLIMdsF20+eGg==";
-      };
-    };
-    "statsd-parser-0.0.4" = {
-      name = "statsd-parser";
-      packageName = "statsd-parser";
-      version = "0.0.4";
+      version = "0.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz";
-        sha1 = "cbd243953cc42effd548b5d22388ed689ec639bd";
+        url = "https://registry.npmjs.org/statsd-client/-/statsd-client-0.4.6.tgz";
+        sha512 = "OL3PAf0LhlFP8ZpxFm3Ue7dL3cV5o7PAsWDsQnx/iKXGVr8huYF/ui+OZEORerEDVRps7BCPAq5bWppMj1oMoA==";
       };
     };
     "statuses-1.4.0" = {
@@ -54815,15 +55139,6 @@ let
         sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
       };
     };
-    "string.prototype.matchall-4.0.4" = {
-      name = "string.prototype.matchall";
-      packageName = "string.prototype.matchall";
-      version = "4.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz";
-        sha512 = "pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==";
-      };
-    };
     "string.prototype.repeat-0.2.0" = {
       name = "string.prototype.repeat";
       packageName = "string.prototype.repeat";
@@ -55319,13 +55634,13 @@ let
         sha512 = "CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==";
       };
     };
-    "styled-components-5.2.3" = {
+    "styled-components-5.3.0" = {
       name = "styled-components";
       packageName = "styled-components";
-      version = "5.2.3";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.2.3.tgz";
-        sha512 = "BlR+KrLW3NL1yhvEB+9Nu9Dt51CuOnHoxd+Hj+rYPdtyR8X11uIW9rvhpy3Dk4dXXBsiW1u5U78f00Lf/afGoA==";
+        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz";
+        sha512 = "bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==";
       };
     };
     "stylehacks-4.0.3" = {
@@ -55337,13 +55652,13 @@ let
         sha512 = "7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==";
       };
     };
-    "stylelint-13.12.0" = {
+    "stylelint-13.13.1" = {
       name = "stylelint";
       packageName = "stylelint";
-      version = "13.12.0";
+      version = "13.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylelint/-/stylelint-13.12.0.tgz";
-        sha512 = "P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==";
+        url = "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz";
+        sha512 = "Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==";
       };
     };
     "stylelint-8.4.0" = {
@@ -55643,31 +55958,31 @@ let
         sha512 = "6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==";
       };
     };
-    "svelte-3.35.0" = {
+    "svelte-3.38.2" = {
       name = "svelte";
       packageName = "svelte";
-      version = "3.35.0";
+      version = "3.38.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-3.35.0.tgz";
-        sha512 = "gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-3.38.2.tgz";
+        sha512 = "q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==";
       };
     };
-    "svelte-preprocess-4.6.9" = {
+    "svelte-preprocess-4.7.3" = {
       name = "svelte-preprocess";
       packageName = "svelte-preprocess";
-      version = "4.6.9";
+      version = "4.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.6.9.tgz";
-        sha512 = "SROWH0rB0DJ+0Ii264cprmNu/NJyZacs5wFD71ya93Cg/oA2lKHgQm4F6j0EWA4ktFMzeuJJm/eX6fka39hEHA==";
+        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz";
+        sha512 = "Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA==";
       };
     };
-    "svelte2tsx-0.1.186" = {
+    "svelte2tsx-0.2.0" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.1.186";
+      version = "0.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.186.tgz";
-        sha512 = "E4BmTNmIg6yHEqazhcQ8S60GI7AaV2JKf2y5deOyr3o2zpow4gGyz7yE0uSnFDdqp2iafCD7PImWZ/v1R6uQVw==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.2.0.tgz";
+        sha512 = "gag/5eqXOMfeHkPWbioEz2kk01KJpG2ZVxYMV35EWMGpxR4m6jzgNPkl7bYp5fEOuHQ99muyVQFIedu4wjgmZw==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -55679,6 +55994,15 @@ let
         sha1 = "3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8";
       };
     };
+    "svg-pathdata-5.0.5" = {
+      name = "svg-pathdata";
+      packageName = "svg-pathdata";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-5.0.5.tgz";
+        sha512 = "TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==";
+      };
+    };
     "svg-tags-1.0.0" = {
       name = "svg-tags";
       packageName = "svg-tags";
@@ -55688,6 +56012,15 @@ let
         sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764";
       };
     };
+    "svg2img-0.9.2" = {
+      name = "svg2img";
+      packageName = "svg2img";
+      version = "0.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/svg2img/-/svg2img-0.9.2.tgz";
+        sha512 = "sjyUgQhfEPJpBRTGxqI9bRzE+3k41Nzc7OtcHSSko96i/EQJZAisdxyhk12Ho/mDVCsb1QsVHLbevbxrFC6onQ==";
+      };
+    };
     "svgo-0.6.6" = {
       name = "svgo";
       packageName = "svgo";
@@ -55796,13 +56129,13 @@ let
         sha512 = "xk5CMbwoQVI53rTq9o/iMojAqXP5NT4/+TMeTP4uXWDIH18pB9AXgO5Olqt0RXuf3jH032DA4DS4qzem6XdXAw==";
       };
     };
-    "swagger-ui-dist-3.47.1" = {
+    "swagger-ui-dist-3.49.0" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
-      version = "3.47.1";
+      version = "3.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.47.1.tgz";
-        sha512 = "7b9iHDC/GGC9SJLd3HiV/3EnsJ3wu7xN8Q4MpOPfQO8UG7TQFG2TMTDkvvy0SNeqxQY0tGQY0ppZC9a95tW3kg==";
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.49.0.tgz";
+        sha512 = "R1+eT16XNP1bBLfacISifZAkFJlpwvWsS2vVurF5pbIFZnmCasD/hj+9r/q7urYdQyb0B6v11mDnuYU7rUpfQg==";
       };
     };
     "swagger2openapi-6.2.3" = {
@@ -55814,13 +56147,13 @@ let
         sha512 = "cUUktzLpK69UwpMbcTzjMw2ns9RZChfxh56AHv6+hTx3StPOX2foZjPgds3HlJcINbxosYYBn/D3cG8nwcCWwQ==";
       };
     };
-    "swagger2openapi-7.0.5" = {
+    "swagger2openapi-7.0.6" = {
       name = "swagger2openapi";
       packageName = "swagger2openapi";
-      version = "7.0.5";
+      version = "7.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.5.tgz";
-        sha512 = "Hzxse+VTX0u8xBgYJ665EjO6BfvW2PN9Yv+yIjBDm6ga9jl83+4CEdCCpznH+ILr5MS8bIIXB+XcQUM3u25w4g==";
+        url = "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.6.tgz";
+        sha512 = "VIT414koe0eJqre0KrhNMUB7QEUfPjGAKesPZZosIKr2rxZ6vpUoersHUFNOsN/OZ5u2zsniCslBOwVcmQZwlg==";
       };
     };
     "sway-1.0.0" = {
@@ -55904,6 +56237,15 @@ let
         sha512 = "6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==";
       };
     };
+    "symbol-observable-4.0.0" = {
+      name = "symbol-observable";
+      packageName = "symbol-observable";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz";
+        sha512 = "b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==";
+      };
+    };
     "symbol-tree-3.2.4" = {
       name = "symbol-tree";
       packageName = "symbol-tree";
@@ -55931,13 +56273,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-4.34.20" = {
+    "systeminformation-4.34.23" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "4.34.20";
+      version = "4.34.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.34.20.tgz";
-        sha512 = "KyT3TFxs14x9CvSbNukbBq2DIjhuLHXkBjZ6Pqllnzqt3ERxDdC6SwIBiKnXeMq6NAOfx1Dp9PjPtXtnIFuAow==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.34.23.tgz";
+        sha512 = "33+lQwlLxXoxy0o9WLOgw8OjbXeS3Jv+pSl+nxKc2AOClBI28HsdRPpH0u9Xa9OVjHLT9vonnOMw1ug7YXI0dA==";
       };
     };
     "table-3.8.3" = {
@@ -55976,22 +56318,22 @@ let
         sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     };
-    "table-6.0.9" = {
+    "table-6.7.0" = {
       name = "table";
       packageName = "table";
-      version = "6.0.9";
+      version = "6.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.0.9.tgz";
-        sha512 = "F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==";
+        url = "https://registry.npmjs.org/table/-/table-6.7.0.tgz";
+        sha512 = "SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw==";
       };
     };
-    "table-6.1.0" = {
+    "table-6.7.1" = {
       name = "table";
       packageName = "table";
-      version = "6.1.0";
+      version = "6.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.1.0.tgz";
-        sha512 = "T4G5KMmqIk6X87gLKWyU5exPpTjLjY5KyrFWaIjv3SvgaIUGXV7UEzGEnZJdTA38/yUS6f9PlKezQ0bYXG3iIQ==";
+        url = "https://registry.npmjs.org/table/-/table-6.7.1.tgz";
+        sha512 = "ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==";
       };
     };
     "table-layout-0.4.5" = {
@@ -56076,24 +56418,6 @@ let
         sha1 = "b4d4f0deed206ae7df775b129ea2ca6de52f26dd";
       };
     };
-    "tap-bail-1.0.0" = {
-      name = "tap-bail";
-      packageName = "tap-bail";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tap-bail/-/tap-bail-1.0.0.tgz";
-        sha1 = "c5a8cc71191f037938cd567f97bda3ca9700199a";
-      };
-    };
-    "tap-parser-5.4.0" = {
-      name = "tap-parser";
-      packageName = "tap-parser";
-      version = "5.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tap-parser/-/tap-parser-5.4.0.tgz";
-        sha512 = "BIsIaGqv7uTQgTW1KLTMNPSEQf4zDDPgYOBRdgOfuB+JFOLRBfEu6cLa/KvMvmqggu1FKXDfitjLwsq4827RvA==";
-      };
-    };
     "tapable-0.2.9" = {
       name = "tapable";
       packageName = "tapable";
@@ -56337,15 +56661,6 @@ let
         sha512 = "s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==";
       };
     };
-    "temp-0.9.1" = {
-      name = "temp";
-      packageName = "temp";
-      version = "0.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/temp/-/temp-0.9.1.tgz";
-        sha512 = "WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA==";
-      };
-    };
     "temp-0.9.4" = {
       name = "temp";
       packageName = "temp";
@@ -56427,6 +56742,24 @@ let
         sha512 = "vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==";
       };
     };
+    "tempy-1.0.1" = {
+      name = "tempy";
+      packageName = "tempy";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz";
+        sha512 = "biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==";
+      };
+    };
+    "tencent-serverless-http-1.3.2" = {
+      name = "tencent-serverless-http";
+      packageName = "tencent-serverless-http";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tencent-serverless-http/-/tencent-serverless-http-1.3.2.tgz";
+        sha512 = "HgIu9HuBdY0lx3jLKuicOSOrjmieklPh55x8ZmtuTnrZ5v1buAPUfLKBhTeBSz6e90ggyW+dPr5PWdz179kUkw==";
+      };
+    };
     "term-canvas-0.0.5" = {
       name = "term-canvas";
       packageName = "term-canvas";
@@ -56490,13 +56823,13 @@ let
         sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-5.6.1" = {
+    "terser-5.7.0" = {
       name = "terser";
       packageName = "terser";
-      version = "5.6.1";
+      version = "5.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz";
-        sha512 = "yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz";
+        sha512 = "HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==";
       };
     };
     "terser-webpack-plugin-1.4.5" = {
@@ -56526,13 +56859,13 @@ let
         sha512 = "3qAQpykRTD5DReLu5/cwpsg7EZFzP3Q0Hp2XUWJUw2mpq2jfgOKTZr8IZKKnNieRVVo1UauROTdhbQJZveGKtQ==";
       };
     };
-    "terser-webpack-plugin-5.1.1" = {
+    "terser-webpack-plugin-5.1.3" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "5.1.1";
+      version = "5.1.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.1.3.tgz";
+        sha512 = "cxGbMqr6+A2hrIB5ehFIF+F/iST5ZOxvOmy9zih9ySbP1C2oEWQSOUS+2SNBTjzx5xLKO4xnod9eywdfq1Nb9A==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -56580,13 +56913,13 @@ let
         sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
       };
     };
-    "textextensions-2.6.0" = {
+    "textextensions-5.12.0" = {
       name = "textextensions";
       packageName = "textextensions";
-      version = "2.6.0";
+      version = "5.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz";
-        sha512 = "49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==";
+        url = "https://registry.npmjs.org/textextensions/-/textextensions-5.12.0.tgz";
+        sha512 = "IYogUDaP65IXboCiPPC0jTLLBzYlhhw2Y4b0a2trPgbHNGGGEfuHE6tds+yDcCf4mpNDaGISFzwSSezcXt+d6w==";
       };
     };
     "textlint-rule-helper-1.2.0" = {
@@ -56598,13 +56931,13 @@ let
         sha1 = "be68d47a5146b16dd116278c9aeb7bd35631ccda";
       };
     };
-    "textlint-rule-helper-2.1.1" = {
+    "textlint-rule-helper-2.2.0" = {
       name = "textlint-rule-helper";
       packageName = "textlint-rule-helper";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.1.1.tgz";
-        sha512 = "6fxgHzoJVkjl3LaC1b2Egi+5wbhG4i0pU0knJmQujVhxIJ3D3AcQQZPs457xKAi5xKz1WayYeTeJ5jrD/hnO7g==";
+        url = "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.2.0.tgz";
+        sha512 = "9S5CsgQuQwPjM2wvr4JGdpkLf+pR9gOjedSQFa/Dkrbh+D9MXt1LIR4Jvx1RujKtt2nq42prmEX2q3xOxyUcIQ==";
       };
     };
     "textlint-util-to-string-2.1.1" = {
@@ -56616,6 +56949,15 @@ let
         sha512 = "PW6rXqLNGL3xZ6d5/INrX+pt8qbffmeDPLcvkBOlfNpDRFhVvNNjFmZXH86ZQjrOz9t/nNZDBXqnzqJuioJbSQ==";
       };
     };
+    "textlint-util-to-string-3.1.1" = {
+      name = "textlint-util-to-string";
+      packageName = "textlint-util-to-string";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/textlint-util-to-string/-/textlint-util-to-string-3.1.1.tgz";
+        sha512 = "mHE7/pDw/Hk+Q6YdSMNRrZPl5bCuWnFLbF+bxW+MsWQ64dw+Ia9irkammYbH5I0hVMMcfwb0MQc5nbsjqgWeyQ==";
+      };
+    };
     "then-fs-2.0.0" = {
       name = "then-fs";
       packageName = "then-fs";
@@ -57399,13 +57741,13 @@ let
         sha512 = "MV5F74YF9+UYsvwXGXTh+5YP3EqH/ivwWfyFE2/YHWQQxm9jDPmkIC23nkN133Ye4nO3HTXmiMcfGqJ5xRPfOA==";
       };
     };
-    "too-wordy-0.3.1" = {
+    "too-wordy-0.3.4" = {
       name = "too-wordy";
       packageName = "too-wordy";
-      version = "0.3.1";
+      version = "0.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/too-wordy/-/too-wordy-0.3.1.tgz";
-        sha512 = "qfKDd/kxLEmbOqdtWnp/Gw1EEvW5ONZB3HehzkHNKFIx3bUrfda6qdOzxJ74vkaIaJbZyRFkBHkbY078fjAd5A==";
+        url = "https://registry.npmjs.org/too-wordy/-/too-wordy-0.3.4.tgz";
+        sha512 = "EU+UA4zHc06TkVQaravNNVdqX763/ENTIOKiKlqSJ6WKCPwLxHjvY3d0uEJYaq92iojyHPwD2iaYbZKjdw3icA==";
       };
     };
     "topo-2.0.2" = {
@@ -57588,13 +57930,13 @@ let
         sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
       };
     };
-    "tr46-2.0.2" = {
+    "tr46-2.1.0" = {
       name = "tr46";
       packageName = "tr46";
-      version = "2.0.2";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz";
-        sha512 = "3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==";
+        url = "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz";
+        sha512 = "15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==";
       };
     };
     "transliteration-1.6.6" = {
@@ -57660,6 +58002,15 @@ let
         sha512 = "1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==";
       };
     };
+    "treeverse-1.0.4" = {
+      name = "treeverse";
+      packageName = "treeverse";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz";
+        sha512 = "whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==";
+      };
+    };
     "trim-0.0.1" = {
       name = "trim";
       packageName = "trim";
@@ -57696,13 +58047,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-off-newlines-1.0.1" = {
@@ -57948,6 +58299,15 @@ let
         sha512 = "IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==";
       };
     };
+    "tspan-0.4.0" = {
+      name = "tspan";
+      packageName = "tspan";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tspan/-/tspan-0.4.0.tgz";
+        sha512 = "0ELL9tpLpTqLliFyQySaxgCO43buCML+j3TI4E1LuSI8wkzITGEVhZCyMvv/A+3ek9KpgALhhgnZESRLTbN+iw==";
+      };
+    };
     "tsscmp-1.0.6" = {
       name = "tsscmp";
       packageName = "tsscmp";
@@ -58011,15 +58371,6 @@ let
         sha1 = "ac9f4ba7bd04525d6bd8b087f85553c8ef19dc9e";
       };
     };
-    "tunnel-0.0.4" = {
-      name = "tunnel";
-      packageName = "tunnel";
-      version = "0.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz";
-        sha1 = "2d3785a158c174c9a16dc2c046ec5fc5f1742213";
-      };
-    };
     "tunnel-0.0.6" = {
       name = "tunnel";
       packageName = "tunnel";
@@ -58308,6 +58659,15 @@ let
         sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
       };
     };
+    "type-fest-1.2.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-1.2.0.tgz";
+        sha512 = "++0N6KyAj0t2webXst0PE0xuXb4Dv3z1Z+4SGzK+j/epeWBZCfkQbkW/ezscZwpinmBQ5wu/l4TqagKSVcAGCA==";
+      };
+    };
     "type-is-1.6.18" = {
       name = "type-is";
       packageName = "type-is";
@@ -58317,13 +58677,13 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typed-rest-client-1.2.0" = {
+    "typed-rest-client-1.8.4" = {
       name = "typed-rest-client";
       packageName = "typed-rest-client";
-      version = "1.2.0";
+      version = "1.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.2.0.tgz";
-        sha512 = "FrUshzZ1yxH8YwGR29PWWnfksLEILbWJydU7zfIRkyH7kAEzB62uMAl2WY6EyolWpLpVHeJGgQm45/MaruaHpw==";
+        url = "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz";
+        sha512 = "MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==";
       };
     };
     "typedarray-0.0.6" = {
@@ -58371,13 +58731,13 @@ let
         sha512 = "7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==";
       };
     };
-    "typegram-3.2.3" = {
+    "typegram-3.3.1" = {
       name = "typegram";
       packageName = "typegram";
-      version = "3.2.3";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typegram/-/typegram-3.2.3.tgz";
-        sha512 = "zlkY7vNTLcwQhLUyYXAUzRelzH752LBFl8m4u04d5g5P7lM9bGegeIRwzd3mVCHJH6R3s48pKeFTVSdVlN+omg==";
+        url = "https://registry.npmjs.org/typegram/-/typegram-3.3.1.tgz";
+        sha512 = "Y1bR17IZ9Shj1Ih8wTLtrmOOMHJ20ve0Bd5SPymmw53uO4WLp/JjNM55s2b6PEziBvMISRdCQSZ+m6JiUKEobA==";
       };
     };
     "typescript-2.9.2" = {
@@ -58443,13 +58803,13 @@ let
         sha512 = "qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==";
       };
     };
-    "typescript-4.2.4" = {
+    "typescript-4.3.2" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.2.4";
+      version = "4.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz";
-        sha512 = "V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz";
+        sha512 = "zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -58551,13 +58911,13 @@ let
         sha512 = "otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==";
       };
     };
-    "uglify-js-3.13.4" = {
+    "uglify-js-3.13.8" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.13.4";
+      version = "3.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.4.tgz";
-        sha512 = "kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.8.tgz";
+        sha512 = "PvFLMFIQHfIjFFlvAch69U2IvIxK9TNzNWt1SxZGp9JZ/v70yvqIQuiJeVPPtUMOzoNt+aNRDk4wgxb34wvEqA==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -58749,13 +59109,13 @@ let
         sha512 = "nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==";
       };
     };
-    "underscore-1.10.2" = {
+    "underscore-1.12.1" = {
       name = "underscore";
       packageName = "underscore";
-      version = "1.10.2";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz";
-        sha512 = "N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==";
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz";
+        sha512 = "hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==";
       };
     };
     "underscore-1.13.1" = {
@@ -58794,15 +59154,6 @@ let
         sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
       };
     };
-    "underscore-1.8.3" = {
-      name = "underscore";
-      packageName = "underscore";
-      version = "1.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz";
-        sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
-      };
-    };
     "underscore-1.9.1" = {
       name = "underscore";
       packageName = "underscore";
@@ -59082,13 +59433,13 @@ let
         sha512 = "uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==";
       };
     };
-    "unist-util-filter-0.2.1" = {
+    "unist-util-filter-2.0.3" = {
       name = "unist-util-filter";
       packageName = "unist-util-filter";
-      version = "0.2.1";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-0.2.1.tgz";
-        sha1 = "e2f7876828903a6a9308e362051f86b14f35b545";
+        url = "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-2.0.3.tgz";
+        sha512 = "8k6Jl/KLFqIRTHydJlHh6+uFgqYHq66pV75pZgr1JwfyFSjbWb12yfb0yitW/0TbHXjr9U4G9BQpOvMANB+ExA==";
       };
     };
     "unist-util-find-1.0.2" = {
@@ -59136,15 +59487,6 @@ let
         sha512 = "fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==";
       };
     };
-    "unist-util-is-1.0.0" = {
-      name = "unist-util-is";
-      packageName = "unist-util-is";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-1.0.0.tgz";
-        sha1 = "4c7b3c5c0f6aa963640056fe4af7b5fcfdbb8ef0";
-      };
-    };
     "unist-util-is-2.1.3" = {
       name = "unist-util-is";
       packageName = "unist-util-is";
@@ -59262,6 +59604,15 @@ let
         sha512 = "3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==";
       };
     };
+    "unist-util-stringify-position-3.0.0" = {
+      name = "unist-util-stringify-position";
+      packageName = "unist-util-stringify-position";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz";
+        sha512 = "SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==";
+      };
+    };
     "unist-util-visit-1.4.1" = {
       name = "unist-util-visit";
       packageName = "unist-util-visit";
@@ -59325,15 +59676,6 @@ let
         sha512 = "3DLtXdm/G1LQMCnPj+Aw7uDoleQttNHp2g5FnNQKR6cP6taNWS1b/Ehjjx4PVyvejKi3TJyu8iBraKM4q3JQPg==";
       };
     };
-    "universal-user-agent-4.0.1" = {
-      name = "universal-user-agent";
-      packageName = "universal-user-agent";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz";
-        sha512 = "LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==";
-      };
-    };
     "universal-user-agent-6.0.0" = {
       name = "universal-user-agent";
       packageName = "universal-user-agent";
@@ -59811,13 +60153,13 @@ let
         sha1 = "1505a03a289a48cbd7a434efbaeec5055f5633a9";
       };
     };
-    "url-toolkit-2.2.1" = {
+    "url-toolkit-2.2.2" = {
       name = "url-toolkit";
       packageName = "url-toolkit";
-      version = "2.2.1";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.1.tgz";
-        sha512 = "8+DzgrtDZYZGhHaAop5WGVghMdCfOLGbhcArsJD0qDll71FXa7EeKxi2hilPIscn2nwMz4PRjML32Sz4JTN0Xw==";
+        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.2.tgz";
+        sha512 = "l25w6Sy+Iy3/IbogunxhWwljPaDnqpiKvrQRoLBm6DfISco7NyRIS7Zf6+Oxhy1T8kHxWdwLND7ZZba6NjXMug==";
       };
     };
     "urlencode-1.1.0" = {
@@ -59838,13 +60180,13 @@ let
         sha1 = "23f89069a6c62f46cf3a1d3b00169cefb90be0c6";
       };
     };
-    "usb-1.7.0" = {
+    "usb-1.7.1" = {
       name = "usb";
       packageName = "usb";
-      version = "1.7.0";
+      version = "1.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/usb/-/usb-1.7.0.tgz";
-        sha512 = "LHm9d389NCzZSMd0DnilxT5Lord4P2E3ETwP1LeuJcEBmI5uLJv8Sd18z/9bairUMbDnnNqX+Hi5Xkl93Kvdmw==";
+        url = "https://registry.npmjs.org/usb/-/usb-1.7.1.tgz";
+        sha512 = "HTCfx6NnNRhv5y98t04Y8j2+A8dmQnEGxCMY2/zN/0gkiioLYfTZ5w/PEKlWRVUY+3qLe9xwRv9pHLkjQYNw/g==";
       };
     };
     "use-3.1.1" = {
@@ -59893,13 +60235,13 @@ let
         sha512 = "3XZZuJSeoIUyMYSuDbTbVtP4KAVGHPfU8nmHFkr8LJc+THCaUXwnu/2AV+LCSLarET/hL9IlbNfYTGrt6fOVuQ==";
       };
     };
-    "ut_pex-2.0.1" = {
+    "ut_pex-3.0.0" = {
       name = "ut_pex";
       packageName = "ut_pex";
-      version = "2.0.1";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ut_pex/-/ut_pex-2.0.1.tgz";
-        sha512 = "kI1/y1IhbuTqjyVqekSZCd3afPQTpdIRCrON1WXc9jGdcIAaze3FAoZ1ssYJmGBuJbdg7LQO42daJGCaoRXl+A==";
+        url = "https://registry.npmjs.org/ut_pex/-/ut_pex-3.0.0.tgz";
+        sha512 = "huPZAVpXzqUmCSGdeALwnoH29V+bK0O9ISH4jNfvlGFhY8qMJF0I+RKfVMiiT0TlgeB6thiitz/0G9BORVRb6Q==";
       };
     };
     "utf-8-validate-1.2.2" = {
@@ -59911,13 +60253,13 @@ let
         sha1 = "8bb871a4741e085c70487ca7acdbd7d6d36029eb";
       };
     };
-    "utf-8-validate-5.0.4" = {
+    "utf-8-validate-5.0.5" = {
       name = "utf-8-validate";
       packageName = "utf-8-validate";
-      version = "5.0.4";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz";
-        sha512 = "MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==";
+        url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz";
+        sha512 = "+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==";
       };
     };
     "utf7-1.0.2" = {
@@ -60001,13 +60343,13 @@ let
         sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==";
       };
     };
-    "util-0.12.3" = {
+    "util-0.12.4" = {
       name = "util";
       packageName = "util";
-      version = "0.12.3";
+      version = "0.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/util/-/util-0.12.3.tgz";
-        sha512 = "I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==";
+        url = "https://registry.npmjs.org/util/-/util-0.12.4.tgz";
+        sha512 = "bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==";
       };
     };
     "util-0.4.9" = {
@@ -60118,13 +60460,13 @@ let
         sha512 = "vRAKaS8WcYNgzbxyH2LdheqgL4sQLis8LXl7r/mN+O4mpWlUpoCsTtietxepLrft2q0TFA2gaIvSWN1iRkzW/w==";
       };
     };
-    "utp-native-2.4.0" = {
+    "utp-native-2.5.0" = {
       name = "utp-native";
       packageName = "utp-native";
-      version = "2.4.0";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.4.0.tgz";
-        sha512 = "jKwpFiEaDUuNH5S4vVk/+waAX+yA6f3Lw4flqOROH1ZE/jcT4mh0/hjIGSuPP9j9RbQcsBG6Fu6LaFk4ojXFxw==";
+        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.5.0.tgz";
+        sha512 = "HoHPE6gwLxC0xlpYJUl+Xw2sh809lhXx3TexHsb2/xY8vEd6NwuvAxOI/X27dBTc/TOT5diWUpCJWDaunkcVvA==";
       };
     };
     "uuid-2.0.3" = {
@@ -60298,6 +60640,15 @@ let
         sha1 = "1c243a50b595c1be54a754bfece8563b9ff8d813";
       };
     };
+    "value-or-promise-1.0.6" = {
+      name = "value-or-promise";
+      packageName = "value-or-promise";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz";
+        sha512 = "9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==";
+      };
+    };
     "variable-diff-1.1.0" = {
       name = "variable-diff";
       packageName = "variable-diff";
@@ -60847,6 +61198,15 @@ let
         sha512 = "DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==";
       };
     };
+    "vfile-message-3.0.1" = {
+      name = "vfile-message";
+      packageName = "vfile-message";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.1.tgz";
+        sha512 = "gYmSHcZZUEtYpTmaWaFJwsuUD70/rTY4v09COp8TGtOkix6gGxb/a8iTQByIY9ciTk9GwAwIXd/J9OPfM4Bvaw==";
+      };
+    };
     "vfile-reporter-1.5.0" = {
       name = "vfile-reporter";
       packageName = "vfile-reporter";
@@ -61045,13 +61405,13 @@ let
         sha1 = "614f7fbf8d801f0bb5f0661f5b2f5785750e4f09";
       };
     };
-    "vsce-1.87.1" = {
+    "vsce-1.91.0" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.87.1";
+      version = "1.91.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.87.1.tgz";
-        sha512 = "3tSUWZl9AmhZrqy/UVUpdPODSzBiCGjIr/AMSSgF2PuFLSdrh+6kiOr2Ath7bpQEXOxf55hNgz3qdO5MuEJmww==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.91.0.tgz";
+        sha512 = "y75QryWKzAw5KIR4NFEXc6XAy/Er1BHXdNwAESgKKFw8Yc8cA/+dP4Gj7VYhNPOJlV0v5j1in/cPkLFZAqC7cQ==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -61081,22 +61441,22 @@ let
         sha512 = "DTMa8QbVmujFPvD3NxoC5jjIXCyCG+cvn3hNzwQRhvhsk8LblNymBZBwzfcDdgEtqsi4O/2AB5HnMIRzxhzEzg==";
       };
     };
-    "vscode-debugadapter-testsupport-1.46.0" = {
+    "vscode-debugadapter-testsupport-1.47.0" = {
       name = "vscode-debugadapter-testsupport";
       packageName = "vscode-debugadapter-testsupport";
-      version = "1.46.0";
+      version = "1.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.46.0.tgz";
-        sha512 = "6n+uu4+Q5sZvN2FgFLNJkyaE6AECYzFh+Hfv+IeJoVKA7KNiQ1SNd3yTsvSFxkS00LmVU6V00XGaqZRlwM15Jg==";
+        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.47.0.tgz";
+        sha512 = "zhEuaMt2RCOcJoTZ5p35k2WhCzk51UN1PlrtwfWJ8fiFhjDvXIG+682Wkq1VyL12EhTf4qOLMLn0X4JlX7eJ6g==";
       };
     };
-    "vscode-debugprotocol-1.46.0" = {
+    "vscode-debugprotocol-1.47.0" = {
       name = "vscode-debugprotocol";
       packageName = "vscode-debugprotocol";
-      version = "1.46.0";
+      version = "1.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.46.0.tgz";
-        sha512 = "V10u1L679DJZfOtQXhKylJPMqNbhazav4mRxPrBE8/Jpznow1b1j1EGDDvJ4prQ623CLAnvpFfVkVQ+CX3xdtg==";
+        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.47.0.tgz";
+        sha512 = "ii7oCz3Wfr/SGtFr5AYop5dJm0dUmpg0hq2lTzTBdaht8nSheYMMjPntxULBR+2TUxXLcCKFZkF2UEJQduYsIQ==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -61144,13 +61504,13 @@ let
         sha512 = "QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==";
       };
     };
-    "vscode-json-languageservice-4.0.2" = {
+    "vscode-json-languageservice-4.1.4" = {
       name = "vscode-json-languageservice";
       packageName = "vscode-json-languageservice";
-      version = "4.0.2";
+      version = "4.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.0.2.tgz";
-        sha512 = "d8Ahw990Cq/G60CzN26rehXcbhbMgMGMmXeN6C/V/RYZUhfs16EELRK+EL7b/3Y8ZGshtKqboePSeDVa94qqFg==";
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.4.tgz";
+        sha512 = "/UqaE58BVFdePM9l971L6xPRLlCLNk01aovf1Pp9hB/8pytmd2s9ZNEnS1JqYyQEJ1k5/fEBsWOdhQlNo4H7VA==";
       };
     };
     "vscode-jsonrpc-3.5.0" = {
@@ -61306,6 +61666,15 @@ let
         sha512 = "60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==";
       };
     };
+    "vscode-languageserver-7.1.0-next.4" = {
+      name = "vscode-languageserver";
+      packageName = "vscode-languageserver";
+      version = "7.1.0-next.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.1.0-next.4.tgz";
+        sha512 = "/65lxR/CuLJoOdzTjOTYUPWS7k5qzaWese4PObnWc6jwLryUrSa7DslYfaRXigh5/xr1nlaUZCcJwkpgM0wFvw==";
+      };
+    };
     "vscode-languageserver-protocol-3.14.1" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -61666,6 +62035,15 @@ let
         sha512 = "ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig==";
       };
     };
+    "walk-up-path-1.0.0" = {
+      name = "walk-up-path";
+      packageName = "walk-up-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz";
+        sha512 = "hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==";
+      };
+    };
     "walker-1.0.7" = {
       name = "walker";
       packageName = "walker";
@@ -61720,6 +62098,15 @@ let
         sha512 = "Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==";
       };
     };
+    "watchpack-2.2.0" = {
+      name = "watchpack";
+      packageName = "watchpack";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz";
+        sha512 = "up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==";
+      };
+    };
     "watchpack-chokidar2-2.0.1" = {
       name = "watchpack-chokidar2";
       packageName = "watchpack-chokidar2";
@@ -61738,6 +62125,15 @@ let
         sha1 = "79331f666366b3b1c6ab02ceb04bad8dd2eebb0c";
       };
     };
+    "wavedrom-2.6.9" = {
+      name = "wavedrom";
+      packageName = "wavedrom";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wavedrom/-/wavedrom-2.6.9.tgz";
+        sha512 = "EXBubejy7GrzibGLJ6OXH5HAP7KbA62gXMm8FvqJH0W5S05D6pgqdnRG20KP1w/WSY+zqdVIkiHNxwgquPbs2w==";
+      };
+    };
     "wawoff2-1.0.2" = {
       name = "wawoff2";
       packageName = "wawoff2";
@@ -61801,13 +62197,13 @@ let
         sha512 = "n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A==";
       };
     };
-    "web3-utils-1.3.5" = {
+    "web3-utils-1.3.6" = {
       name = "web3-utils";
       packageName = "web3-utils";
-      version = "1.3.5";
+      version = "1.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.5.tgz";
-        sha512 = "5apMRm8ElYjI/92GHqijmaLC+s+d5lgjpjHft+rJSs/dsnX8I8tQreqev0dmU+wzU+2EEe4Sx9a/OwGWHhQv3A==";
+        url = "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz";
+        sha512 = "hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==";
       };
     };
     "webassemblyjs-1.11.0" = {
@@ -62017,13 +62413,13 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
-    "webpack-sources-2.2.0" = {
+    "webpack-sources-2.3.0" = {
       name = "webpack-sources";
       packageName = "webpack-sources";
-      version = "2.2.0";
+      version = "2.3.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-2.3.0.tgz";
+        sha512 = "WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==";
       };
     };
     "webpack-stream-6.1.0" = {
@@ -62071,13 +62467,13 @@ let
         sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "webtorrent-0.117.0" = {
+    "webtorrent-1.0.0" = {
       name = "webtorrent";
       packageName = "webtorrent";
-      version = "0.117.0";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.117.0.tgz";
-        sha512 = "CeBZP6rr1n0qAq747YjXZcDwMmUIi0d3x38qtEb8zrjjURSDd81vmtT1Y9LPJoYsY55jaYtUHGp4Ht6agQ3vWg==";
+        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-1.0.0.tgz";
+        sha512 = "htwcY5OBOWL/OMwaw3xi1Mp2gE9k5UmGTKeO3n1ixQDH9QgeqqRlBJz2ZLEyOL8yN1FdS/D9z+ijm06bZ3oW5w==";
       };
     };
     "well-known-symbols-2.0.0" = {
@@ -62242,6 +62638,15 @@ let
         sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
       };
     };
+    "which-pm-2.0.0" = {
+      name = "which-pm";
+      packageName = "which-pm";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz";
+        sha512 = "Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==";
+      };
+    };
     "which-pm-runs-1.0.0" = {
       name = "which-pm-runs";
       packageName = "which-pm-runs";
@@ -63007,6 +63412,15 @@ let
         sha512 = "xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==";
       };
     };
+    "ws-7.4.6" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz";
+        sha512 = "YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==";
+      };
+    };
     "x-default-browser-0.3.1" = {
       name = "x-default-browser";
       packageName = "x-default-browser";
@@ -63088,13 +63502,13 @@ let
         sha512 = "N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==";
       };
     };
-    "xdl-59.0.32" = {
+    "xdl-59.0.42" = {
       name = "xdl";
       packageName = "xdl";
-      version = "59.0.32";
+      version = "59.0.42";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xdl/-/xdl-59.0.32.tgz";
-        sha512 = "BY6tKRFueOlyua1btLEhdO5O7HdR/JfbCkMnRN9/slqHSPt7riL2maCKYYeT/HtvEXiww8Wrj0g6sJ97gqG/7g==";
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.0.42.tgz";
+        sha512 = "/Er1hvi8AB5YbAL/JulvFkNHKd1B+9Sl8PttHZmu8kaqApkDZWPNvWhN3hBEnJIIzEODTejYII3IoAQmf7PveA==";
       };
     };
     "xenvar-0.5.1" = {
@@ -63385,6 +63799,15 @@ let
         sha512 = "Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==";
       };
     };
+    "xmldom-0.6.0" = {
+      name = "xmldom";
+      packageName = "xmldom";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz";
+        sha512 = "iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==";
+      };
+    };
     "xmlhttprequest-1.8.0" = {
       name = "xmlhttprequest";
       packageName = "xmlhttprequest";
@@ -63413,6 +63836,15 @@ let
         sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
       };
     };
+    "xmlhttprequest-ssl-1.6.3" = {
+      name = "xmlhttprequest-ssl";
+      packageName = "xmlhttprequest-ssl";
+      version = "1.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz";
+        sha512 = "3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==";
+      };
+    };
     "xorshift-0.2.1" = {
       name = "xorshift";
       packageName = "xorshift";
@@ -63476,22 +63908,22 @@ let
         sha1 = "f164263325ae671f53836fb210c7ddbcfda46598";
       };
     };
-    "xss-1.0.8" = {
+    "xss-1.0.9" = {
       name = "xss";
       packageName = "xss";
-      version = "1.0.8";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz";
-        sha512 = "3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==";
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz";
+        sha512 = "2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==";
       };
     };
-    "xstate-4.18.0" = {
+    "xstate-4.20.0" = {
       name = "xstate";
       packageName = "xstate";
-      version = "4.18.0";
+      version = "4.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xstate/-/xstate-4.18.0.tgz";
-        sha512 = "cjj22XXxTWIkMrghyoUWjUlDFcd7MQGeKYy8bkdtcIeogZjF98mep9CHv8xLO3j4PZQF5qgcAGGT8FUn99mF1Q==";
+        url = "https://registry.npmjs.org/xstate/-/xstate-4.20.0.tgz";
+        sha512 = "u5Ou1CMo/oWApasmv1TYTHgj38k69DJdTqQdBBwt+/ooNhPJQiSIKTB3Y3HvX0h5tulwfSo6xAwZgBgjRsK3LA==";
       };
     };
     "xstream-11.14.0" = {
@@ -63737,13 +64169,13 @@ let
         sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
       };
     };
-    "yargs-17.0.0-candidate.12" = {
+    "yargs-17.0.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "17.0.0-candidate.12";
+      version = "17.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-17.0.0-candidate.12.tgz";
-        sha512 = "K/Q98zCuqg1CTgqmURpqytY3Iz+P7HQ42/FglRRQWEEi2DNxzIJqA50J1LJjm58FPJDzBnqLQ1BHUFnabzj4CA==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz";
+        sha512 = "xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==";
       };
     };
     "yargs-3.10.0" = {
@@ -63782,13 +64214,13 @@ let
         sha1 = "782ec21ef403345f830a808ca3d513af56065208";
       };
     };
-    "yargs-7.1.1" = {
+    "yargs-7.1.2" = {
       name = "yargs";
       packageName = "yargs";
-      version = "7.1.1";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz";
-        sha512 = "huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz";
+        sha512 = "ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==";
       };
     };
     "yargs-parser-10.1.0" = {
@@ -63872,13 +64304,13 @@ let
         sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c";
       };
     };
-    "yargs-parser-5.0.0-security.0" = {
+    "yargs-parser-5.0.1" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
-      version = "5.0.0-security.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz";
-        sha512 = "T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==";
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz";
+        sha512 = "wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==";
       };
     };
     "yargs-parser-7.0.0" = {
@@ -63989,22 +64421,13 @@ let
         sha512 = "CP0fwGk5Y+jel+A0AQbyqnIFZRRpkKOeYUibiTSmlgV9PcgNFFVwn86VcUIpDLOqVjF+9v+O9FWQMo+IUcV2mA==";
       };
     };
-    "yeoman-environment-2.10.3" = {
+    "yeoman-environment-3.4.1" = {
       name = "yeoman-environment";
       packageName = "yeoman-environment";
-      version = "2.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.10.3.tgz";
-        sha512 = "pLIhhU9z/G+kjOXmJ2bPFm3nejfbH+f1fjYRSOteEXDBrv1EoJE/e+kuHixSXfCYfTkxjYsvRaDX+1QykLCnpQ==";
-      };
-    };
-    "yeoman-generator-4.13.0" = {
-      name = "yeoman-generator";
-      packageName = "yeoman-generator";
-      version = "4.13.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.13.0.tgz";
-        sha512 = "f2/5N5IR3M2Ozm+QocvZQudlQITv2DwI6Mcxfy7R7gTTzaKgvUpgo/pQMJ+WQKm0KN0YMWCFOZpj0xFGxevc1w==";
+        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.4.1.tgz";
+        sha512 = "Bu3kN5sTOyAcbO/cKEQf6KOxsLta9oRF59saLOKnt3OQM+hXapnWaAHcrat3dygd6l34KjxwM5AMJp09TDa8yw==";
       };
     };
     "yn-3.1.1" = {
@@ -64088,13 +64511,13 @@ let
         sha512 = "Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==";
       };
     };
-    "zeromq-5.2.7" = {
+    "zeromq-5.2.8" = {
       name = "zeromq";
       packageName = "zeromq";
-      version = "5.2.7";
+      version = "5.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zeromq/-/zeromq-5.2.7.tgz";
-        sha512 = "z0R3qtmy4SFgYa/oDjxWFAAGjQb0IU1sJ0XVLflp3W72f2ALXHJzKPgcyCdgMQZTnvSULpZP2HbIYdemLtbBiQ==";
+        url = "https://registry.npmjs.org/zeromq/-/zeromq-5.2.8.tgz";
+        sha512 = "bXzsk7KOmgLSv1tC0Ms1VXBy90+Rz27ZYf27cLuldRYbpqYpuWJfxxHFhO710t22zgWBnmdUP0m3SKFpLI0u5g==";
       };
     };
     "zerr-1.0.4" = {
@@ -64124,15 +64547,6 @@ let
         sha512 = "EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==";
       };
     };
-    "zip-stream-3.0.1" = {
-      name = "zip-stream";
-      packageName = "zip-stream";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/zip-stream/-/zip-stream-3.0.1.tgz";
-        sha512 = "r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==";
-      };
-    };
     "zip-stream-4.1.0" = {
       name = "zip-stream";
       packageName = "zip-stream";
@@ -64175,43 +64589,30 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "11.2.9";
+    version = "12.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.2.9.tgz";
-      sha512 = "jSX8HFRYSbbamKLhzgPZ2zEsXDtJzspwnzFROJfOpe9fQkMFo8wiOkmY2amyaNzAMyooHXerRcRDWkRTyQj3Jg==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-12.0.2.tgz";
+      sha512 = "hXxnOxPl6+v/O+OnkJxPPupCeQJNmI08EdtnER5z/UCSpmlJibbTAqLF9rFaOi/7dPLS0RCNWmCRA6grgTlP9g==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1102.9"
-      sources."@angular-devkit/core-11.2.9"
-      sources."@angular-devkit/schematics-11.2.9"
-      sources."@npmcli/ci-detect-1.3.0"
-      (sources."@npmcli/git-2.0.8" // {
-        dependencies = [
-          sources."hosted-git-info-4.0.2"
-          sources."npm-package-arg-8.1.2"
-          sources."npm-pick-manifest-6.1.1"
-          sources."promise-retry-2.0.1"
-          sources."semver-7.3.5"
-        ];
-      })
+      sources."@angular-devkit/architect-0.1200.2"
+      sources."@angular-devkit/core-12.0.2"
+      sources."@angular-devkit/schematics-12.0.2"
+      sources."@npmcli/git-2.0.9"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      (sources."@npmcli/run-script-1.8.4" // {
-        dependencies = [
-          sources."read-package-json-fast-2.0.2"
-        ];
-      })
-      sources."@schematics/angular-11.2.9"
-      sources."@schematics/update-0.1102.9"
+      sources."@npmcli/run-script-1.8.5"
+      sources."@schematics/angular-12.0.2"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.1.4"
       sources."aggregate-error-3.1.0"
-      sources."ajv-6.12.6"
+      sources."ajv-8.2.0"
+      sources."ajv-formats-2.0.2"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
@@ -64236,9 +64637,9 @@ in
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
       sources."builtins-1.0.3"
-      sources."cacache-15.0.6"
+      sources."cacache-15.2.0"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
@@ -64256,6 +64657,7 @@ in
       sources."dashdash-1.14.1"
       sources."debug-4.3.1"
       sources."defaults-1.0.3"
+      sources."define-lazy-prop-2.0.0"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
@@ -64263,7 +64665,7 @@ in
       sources."emoji-regex-8.0.0"
       (sources."encoding-0.1.13" // {
         dependencies = [
-          sources."iconv-lite-0.6.2"
+          sources."iconv-lite-0.6.3"
         ];
       })
       sources."env-paths-2.2.1"
@@ -64289,14 +64691,19 @@ in
         ];
       })
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
+      (sources."har-validator-5.1.5" // {
+        dependencies = [
+          sources."ajv-6.12.6"
+          sources."json-schema-traverse-0.4.1"
+        ];
+      })
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
-      sources."hosted-git-info-3.0.8"
+      sources."hosted-git-info-4.0.2"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
@@ -64304,16 +64711,16 @@ in
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-2.0.0"
-      sources."inquirer-7.3.3"
+      sources."inquirer-8.0.0"
       sources."ip-1.1.5"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
@@ -64327,7 +64734,7 @@ in
       sources."jsbn-0.1.1"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."json-stringify-safe-5.0.1"
       sources."jsonc-parser-3.0.0"
       sources."jsonparse-1.3.1"
@@ -64336,11 +64743,7 @@ in
       sources."log-symbols-4.1.0"
       sources."lru-cache-6.0.0"
       sources."magic-string-0.25.7"
-      (sources."make-fetch-happen-8.0.14" // {
-        dependencies = [
-          sources."promise-retry-2.0.1"
-        ];
-      })
+      sources."make-fetch-happen-8.0.14"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
@@ -64358,59 +64761,50 @@ in
       sources."mute-stream-0.0.8"
       sources."node-gyp-7.1.2"
       sources."nopt-5.0.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-package-arg-8.1.0"
-      sources."npm-packlist-2.1.5"
-      sources."npm-pick-manifest-6.1.0"
-      sources."npm-registry-fetch-9.0.0"
+      sources."npm-package-arg-8.1.2"
+      sources."npm-packlist-2.2.2"
+      sources."npm-pick-manifest-6.1.1"
+      sources."npm-registry-fetch-10.1.2"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.4.0"
-      sources."ora-5.3.0"
+      sources."open-8.0.2"
+      sources."ora-5.4.0"
       sources."os-tmpdir-1.0.2"
       sources."p-map-4.0.0"
-      sources."pacote-11.2.4"
+      sources."pacote-11.3.2"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
-      (sources."promise-retry-1.1.1" // {
-        dependencies = [
-          sources."err-code-1.1.2"
-          sources."retry-0.10.1"
-        ];
-      })
+      sources."promise-retry-2.0.1"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."read-package-json-fast-1.2.2"
+      sources."read-package-json-fast-2.0.2"
       sources."readable-stream-3.6.0"
       (sources."request-2.88.2" // {
         dependencies = [
           sources."uuid-3.4.0"
         ];
       })
-      sources."resolve-1.19.0"
+      sources."require-from-string-2.0.2"
+      sources."resolve-1.20.0"
       sources."restore-cursor-3.1.0"
       sources."retry-0.12.0"
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.3"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.4"
-      (sources."semver-intersect-1.4.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
@@ -64424,7 +64818,7 @@ in
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
       sources."supports-color-7.2.0"
-      sources."symbol-observable-3.0.0"
+      sources."symbol-observable-4.0.0"
       sources."tar-6.1.0"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
@@ -64435,11 +64829,6 @@ in
       sources."type-fest-0.21.3"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      (sources."universal-analytics-0.4.23" // {
-        dependencies = [
-          sources."uuid-3.4.0"
-        ];
-      })
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
@@ -64532,7 +64921,7 @@ in
       sources."append-buffer-1.0.2"
       sources."argparse-1.0.10"
       sources."asciidoctor.js-1.5.9"
-      sources."async-lock-1.2.8"
+      sources."async-lock-1.3.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-0.0.2"
       sources."bl-4.0.4"
@@ -64631,7 +65020,7 @@ in
       sources."glob-parent-3.1.0"
       (sources."glob-stream-6.1.0" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
@@ -64692,7 +65081,7 @@ in
       sources."lodash.clonedeep-4.5.0"
       sources."lowercase-keys-1.0.1"
       sources."map-obj-4.2.1"
-      sources."marky-1.2.1"
+      sources."marky-1.2.2"
       sources."matcher-2.1.0"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
@@ -64704,7 +65093,7 @@ in
       sources."multi-progress-2.0.0"
       sources."neo-async-2.6.2"
       sources."normalize-path-2.1.1"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."now-and-later-2.0.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
@@ -64784,7 +65173,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -64824,10 +65213,10 @@ in
   "@bitwarden/cli" = nodeEnv.buildNodePackage {
     name = "_at_bitwarden_slash_cli";
     packageName = "@bitwarden/cli";
-    version = "1.15.1";
+    version = "1.16.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.15.1.tgz";
-      sha512 = "kD+EkbSqFRtkwV/PXbgaCvrSOqVRTRaFhfT4XNoYbggWhMVwB6ebvdHvHe5I7pRKE8/xgP7WiIM/b0HP81bbHg==";
+      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.16.0.tgz";
+      sha512 = "HWQnOa3TzRJcF/TVKGWqzFP9PVaG6IhCBzFVY2tZ5mITNAf1nb2aC+gzH2EMa1m41IV6knPuXpqnsVGJGqQuxg==";
     };
     dependencies = [
       sources."abab-2.0.5"
@@ -64847,7 +65236,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."big-integer-1.6.36"
+      sources."big-integer-1.6.48"
       sources."browser-hrtime-1.1.8"
       sources."browser-process-hrtime-1.0.0"
       sources."caseless-0.12.0"
@@ -64915,15 +65304,15 @@ in
       sources."mimic-fn-1.2.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
-      sources."node-fetch-2.2.0"
-      sources."node-forge-0.7.6"
+      sources."node-fetch-2.6.1"
+      sources."node-forge-0.10.0"
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
       sources."onetime-2.0.1"
       sources."open-7.1.0"
       sources."optionator-0.8.3"
       sources."os-tmpdir-1.0.2"
-      sources."papaparse-4.6.0"
+      sources."papaparse-5.2.0"
       sources."parse5-5.1.0"
       sources."performance-now-2.1.0"
       sources."pify-3.0.0"
@@ -64982,7 +65371,7 @@ in
     meta = {
       description = "A secure and free password manager for all of your devices.";
       homepage = "https://bitwarden.com";
-      license = "GPL-3.0";
+      license = "GPL-3.0-only";
     };
     production = true;
     bypassCache = true;
@@ -65000,14 +65389,14 @@ in
       sources."@angular-devkit/core-11.2.6"
       (sources."@angular-devkit/schematics-11.2.6" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."ora-5.3.0"
         ];
       })
       sources."@angular-devkit/schematics-cli-0.1102.6"
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -65021,17 +65410,17 @@ in
         dependencies = [
           sources."@angular-devkit/core-11.2.4"
           sources."@angular-devkit/schematics-11.2.4"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."ora-5.3.0"
         ];
       })
       sources."@schematics/schematics-0.1102.6"
-      sources."@types/eslint-7.2.10"
+      sources."@types/eslint-7.2.12"
       sources."@types/eslint-scope-3.7.0"
       sources."@types/estree-0.0.46"
       sources."@types/json-schema-7.0.7"
       sources."@types/json5-0.0.29"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/parse-json-4.0.0"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
@@ -65050,7 +65439,7 @@ in
       sources."@webassemblyjs/wast-printer-1.11.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.1.1"
+      sources."acorn-8.3.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
       sources."ansi-colors-4.1.1"
@@ -65065,11 +65454,11 @@ in
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.1"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.1"
@@ -65089,10 +65478,10 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-5.7.0" // {
+      (sources."enhanced-resolve-5.8.2" // {
         dependencies = [
           sources."tapable-2.2.0"
         ];
@@ -65117,7 +65506,7 @@ in
       sources."fill-range-7.0.1"
       (sources."fork-ts-checker-webpack-plugin-6.2.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."fs-extra-9.1.0"
@@ -65126,7 +65515,7 @@ in
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."get-stream-5.2.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
       sources."graceful-fs-4.2.6"
@@ -65140,7 +65529,7 @@ in
       sources."inherits-2.0.4"
       (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.2"
         ];
@@ -65148,7 +65537,7 @@ in
       sources."interpret-1.4.0"
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
@@ -65157,7 +65546,11 @@ in
       sources."is-stream-2.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
-      sources."jest-worker-26.6.2"
+      (sources."jest-worker-27.0.2" // {
+        dependencies = [
+          sources."supports-color-8.1.1"
+        ];
+      })
       sources."js-tokens-4.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
@@ -65171,7 +65564,7 @@ in
       sources."lodash.toarray-4.4.0"
       (sources."log-symbols-4.1.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."lru-cache-6.0.0"
@@ -65187,7 +65580,7 @@ in
       sources."mute-stream-0.0.8"
       sources."neo-async-2.6.2"
       sources."node-emoji-1.10.0"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."object-assign-4.1.1"
@@ -65195,7 +65588,7 @@ in
       sources."onetime-5.1.2"
       (sources."ora-5.4.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."os-name-4.0.0"
@@ -65205,9 +65598,9 @@ in
       sources."parse-json-5.2.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pluralize-8.0.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -65251,12 +65644,12 @@ in
       sources."supports-color-7.2.0"
       sources."symbol-observable-3.0.0"
       sources."tapable-1.1.3"
-      (sources."terser-5.6.1" // {
+      (sources."terser-5.7.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
-      (sources."terser-webpack-plugin-5.1.1" // {
+      (sources."terser-webpack-plugin-5.1.3" // {
         dependencies = [
           sources."schema-utils-3.0.0"
           sources."source-map-0.6.1"
@@ -65269,7 +65662,7 @@ in
       sources."tsconfig-paths-3.9.0"
       (sources."tsconfig-paths-webpack-plugin-3.5.1" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."tslib-1.14.1"
@@ -65278,7 +65671,7 @@ in
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
-      sources."watchpack-2.1.1"
+      sources."watchpack-2.2.0"
       sources."wcwidth-1.0.1"
       (sources."webpack-5.28.0" // {
         dependencies = [
@@ -65287,7 +65680,7 @@ in
         ];
       })
       sources."webpack-node-externals-2.5.2"
-      (sources."webpack-sources-2.2.0" // {
+      (sources."webpack-sources-2.3.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -65312,67 +65705,70 @@ in
   "@vue/cli" = nodeEnv.buildNodePackage {
     name = "_at_vue_slash_cli";
     packageName = "@vue/cli";
-    version = "4.5.12";
+    version = "4.5.13";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.5.12.tgz";
-      sha512 = "ZP0bxmM+VpmH8xT/5DbH8UD5nnlXLxJNYLiMcndx0pmuujabUORZdhIO3B9pq1w1Y204p2CJq3srrEUwhKKY5g==";
+      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.5.13.tgz";
+      sha512 = "KAU300YbT0/7zG472KzJgHKdFex4nr5Xoo80gQJwT+y7pkepMhTxjrmxrJ/XR8QirUvPnBiX5n6BX5FrlMuUGQ==";
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      (sources."@apollo/protobufjs-1.0.5" // {
+      (sources."@apollo/protobufjs-1.2.2" // {
         dependencies = [
-          sources."@types/node-10.17.58"
+          sources."@types/node-10.17.60"
         ];
       })
-      sources."@apollographql/apollo-tools-0.4.9"
+      sources."@apollographql/apollo-tools-0.5.1"
       sources."@apollographql/graphql-playground-html-1.6.27"
       sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
+      sources."@babel/compat-data-7.14.4"
+      sources."@babel/core-7.14.3"
+      sources."@babel/generator-7.14.3"
       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.13"
-      sources."@babel/helper-create-class-features-plugin-7.13.11"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
-      sources."@babel/helper-define-polyfill-provider-0.2.0"
+      sources."@babel/helper-compilation-targets-7.14.4"
+      sources."@babel/helper-create-class-features-plugin-7.14.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.14.3"
+      sources."@babel/helper-define-polyfill-provider-0.2.3"
       sources."@babel/helper-explode-assignable-expression-7.13.0"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      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.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       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-replace-supers-7.14.4"
       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.12.11"
+      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.13.10"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/helpers-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
       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-async-generator-functions-7.14.2"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
-      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-class-static-block-7.14.3"
+      sources."@babel/plugin-proposal-dynamic-import-7.14.2"
+      sources."@babel/plugin-proposal-export-namespace-from-7.14.2"
+      sources."@babel/plugin-proposal-json-strings-7.14.2"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.2"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.2"
+      sources."@babel/plugin-proposal-numeric-separator-7.14.2"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.4"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.14.2"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.2"
       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."@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-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-flow-7.12.13"
@@ -65383,15 +65779,16 @@ in
       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-syntax-typescript-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.12.13"
-      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-block-scoping-7.14.4"
+      sources."@babel/plugin-transform-classes-7.14.4"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.14.4"
       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"
@@ -65400,14 +65797,14 @@ in
       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.13.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-amd-7.14.2"
+      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.13.0"
+      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-parameters-7.14.2"
       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"
@@ -65416,30 +65813,30 @@ in
       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-typescript-7.13.0"
+      sources."@babel/plugin-transform-typescript-7.14.4"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
-      sources."@babel/preset-env-7.13.15"
+      sources."@babel/preset-env-7.14.4"
       sources."@babel/preset-flow-7.13.13"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.13.0"
-      (sources."@babel/register-7.13.14" // {
+      (sources."@babel/register-7.13.16" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.14.0"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       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."@josephg/resolvable-1.0.0"
+      sources."@josephg/resolvable-1.0.1"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       (sources."@nodelib/fs.scandir-2.1.4" // {
         dependencies = [
@@ -65481,31 +65878,26 @@ in
         ];
       })
       sources."@types/keygrip-1.0.2"
-      sources."@types/koa-2.13.1"
+      sources."@types/koa-2.13.3"
       sources."@types/koa-compose-3.2.5"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
-      (sources."@types/node-fetch-2.5.7" // {
-        dependencies = [
-          sources."form-data-3.0.1"
-        ];
-      })
+      sources."@types/node-15.6.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/qs-6.9.6"
       sources."@types/range-parser-1.2.3"
       sources."@types/serve-static-1.13.9"
       sources."@types/through-0.0.30"
-      sources."@types/ws-7.4.1"
-      sources."@vue/cli-shared-utils-4.5.12"
-      (sources."@vue/cli-ui-4.5.12" // {
+      sources."@types/ws-7.4.4"
+      sources."@vue/cli-shared-utils-4.5.13"
+      (sources."@vue/cli-ui-4.5.13" // {
         dependencies = [
           sources."clone-2.1.2"
         ];
       })
-      sources."@vue/cli-ui-addon-webpack-4.5.12"
-      sources."@vue/cli-ui-addon-widgets-4.5.12"
+      sources."@vue/cli-ui-addon-webpack-4.5.13"
+      sources."@vue/cli-ui-addon-widgets-4.5.13"
       (sources."@vue/compiler-core-3.0.11" // {
         dependencies = [
           sources."source-map-0.6.1"
@@ -65530,29 +65922,28 @@ in
       })
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
-      sources."apollo-cache-control-0.12.0"
-      sources."apollo-datasource-0.8.0"
-      sources."apollo-env-0.6.6"
-      sources."apollo-graphql-0.6.1"
+      sources."apollo-cache-control-0.14.0"
+      sources."apollo-datasource-0.9.0"
+      sources."apollo-graphql-0.9.3"
       sources."apollo-link-1.2.14"
-      sources."apollo-reporting-protobuf-0.6.2"
-      (sources."apollo-server-caching-0.6.0" // {
+      sources."apollo-reporting-protobuf-0.8.0"
+      (sources."apollo-server-caching-0.7.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
         ];
       })
-      (sources."apollo-server-core-2.23.0" // {
+      (sources."apollo-server-core-2.25.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."uuid-8.3.2"
         ];
       })
-      sources."apollo-server-env-3.0.0"
+      sources."apollo-server-env-3.1.0"
       sources."apollo-server-errors-2.5.0"
-      sources."apollo-server-express-2.23.0"
-      sources."apollo-server-plugin-base-0.11.0"
-      sources."apollo-server-types-0.7.0"
-      sources."apollo-tracing-0.13.0"
+      sources."apollo-server-express-2.25.0"
+      sources."apollo-server-plugin-base-0.13.0"
+      sources."apollo-server-types-0.9.0"
+      sources."apollo-tracing-0.15.0"
       sources."apollo-utilities-1.3.4"
       (sources."archive-type-4.0.0" // {
         dependencies = [
@@ -65581,9 +65972,9 @@ in
       sources."aws4-1.11.0"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
-      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-polyfill-corejs2-0.2.2"
+      sources."babel-plugin-polyfill-corejs3-0.2.2"
+      sources."babel-plugin-polyfill-regenerator-0.2.2"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -65616,7 +66007,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -65636,7 +66027,7 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -65666,6 +66057,7 @@ in
       sources."clipboard-2.0.8"
       sources."cliui-7.0.4"
       sources."clone-1.0.4"
+      sources."clone-deep-4.0.1"
       sources."clone-response-1.0.2"
       sources."cmd-shim-3.0.3"
       sources."collection-visit-1.0.0"
@@ -65693,12 +66085,12 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.10.1"
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.13.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
+      sources."core-js-pure-3.13.1"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -65765,14 +66157,14 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
       sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -65848,12 +66240,12 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.149.0"
+      sources."flow-parser-0.152.0"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."from2-2.3.0"
@@ -65875,7 +66267,7 @@ in
       sources."getpass-0.1.7"
       sources."git-clone-0.1.0"
       sources."git-config-path-1.0.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -65899,9 +66291,9 @@ in
       })
       sources."graceful-fs-4.2.6"
       sources."graphql-14.7.0"
-      sources."graphql-extensions-0.13.0"
+      sources."graphql-extensions-0.15.0"
       sources."graphql-subscriptions-1.2.1"
-      (sources."graphql-tag-2.12.3" // {
+      (sources."graphql-tag-2.12.4" // {
         dependencies = [
           sources."tslib-2.2.0"
         ];
@@ -65941,7 +66333,7 @@ in
       (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -65956,13 +66348,13 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-docker-2.2.1"
       sources."is-extendable-0.1.1"
@@ -65976,22 +66368,22 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."is-number-object-1.0.4"
+      sources."is-number-object-1.0.5"
       sources."is-object-1.0.2"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
-      sources."isbinaryfile-4.0.6"
+      sources."isbinaryfile-4.0.8"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
@@ -66100,7 +66492,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -66128,7 +66520,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.5"
       sources."object-visit-1.0.1"
@@ -66162,12 +66554,12 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-3.0.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       (sources."pid-from-port-1.1.3" // {
         dependencies = [
           sources."cross-spawn-5.1.0"
@@ -66195,7 +66587,7 @@ in
       sources."process-exists-3.1.0"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."ps-list-4.1.0"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
@@ -66280,6 +66672,7 @@ in
       sources."set-value-2.0.1"
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
+      sources."shallow-clone-3.0.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.2"
@@ -66328,7 +66721,7 @@ in
       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.9"
       (sources."split-string-3.1.0" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -66514,7 +66907,7 @@ in
       sources."ws-6.2.1"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xss-1.0.8"
+      sources."xss-1.0.9"
       sources."xtend-4.0.2"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
@@ -66664,12 +67057,12 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/generator-7.13.9"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/generator-7.14.3"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
       sources."@babel/template-7.12.13"
-      sources."@babel/types-7.13.14"
+      sources."@babel/types-7.14.4"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -66690,7 +67083,6 @@ in
       sources."has-flag-3.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      sources."lodash-4.17.21"
       sources."source-map-0.5.7"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
@@ -66745,43 +67137,43 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      sources."@babel/compat-data-7.14.4"
+      (sources."@babel/core-7.14.3" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.14.3" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-compilation-targets-7.13.13"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-compilation-targets-7.14.4"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-replace-supers-7.14.4"
       sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-identifier-7.14.0"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/helpers-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
       sources."async-3.2.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.16.4"
-      sources."caniuse-lite-1.0.30001209"
+      sources."browserslist-4.16.6"
+      sources."caniuse-lite-1.0.30001232"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -66792,7 +67184,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."debug-4.3.2"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -66819,7 +67211,7 @@ in
       sources."homedir-polyfill-1.0.3"
       sources."ini-1.3.8"
       sources."is-3.3.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-windows-1.0.2"
       sources."isexe-2.0.0"
       (sources."jake-10.8.2" // {
@@ -66838,7 +67230,7 @@ in
       sources."minimist-1.2.5"
       sources."moment-2.29.1"
       sources."ms-2.1.2"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."node.extend-2.0.2"
       (sources."nomnom-1.8.1" // {
         dependencies = [
@@ -66847,7 +67239,7 @@ in
         ];
       })
       sources."parse-passwd-1.0.0"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pkginfo-0.4.1"
       sources."resolve-1.20.0"
       sources."safe-buffer-5.1.2"
@@ -66886,14 +67278,14 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
       sources."commander-5.1.0"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."minimatch-3.0.4"
@@ -66921,7 +67313,7 @@ in
     };
     dependencies = [
       sources."@tootallnate/once-1.1.2"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/yauzl-2.9.1"
       sources."agent-base-6.0.2"
       sources."ansi-escapes-4.3.2"
@@ -66932,7 +67324,7 @@ in
           sources."tslib-2.2.0"
         ];
       })
-      (sources."aws-sdk-2.888.0" // {
+      (sources."aws-sdk-2.918.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -66952,7 +67344,7 @@ in
       sources."buffer-4.9.2"
       sources."buffer-crc32-0.2.13"
       sources."bytes-3.1.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."cheerio-1.0.0-rc.5"
       sources."cheerio-select-tmp-0.1.1"
@@ -66998,7 +67390,7 @@ in
       sources."ftp-0.3.10"
       sources."get-stream-5.2.0"
       sources."get-uri-3.0.2"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-flag-4.0.0"
       sources."htmlparser2-6.1.0"
@@ -67101,7 +67493,7 @@ in
       sources."uuid-8.3.2"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
       sources."xregexp-2.0.0"
@@ -67121,10 +67513,10 @@ in
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "8.0.6";
+    version = "8.0.14";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-8.0.6.tgz";
-      sha512 = "sl/gbf3fqpdnbzeBxlxN8epCQfYbTTMAj0Pix721LC0OGmLq0ePeXJIPvLrObYTU2AB57p0jV6NEWWf9eVKkcQ==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-8.0.14.tgz";
+      sha512 = "z9/oACcuCHyWSg2c5J1G/HNcTAknUc4YS2SIqsbjw27YmAL2x6T9Uo1OSSemWnOqGtlHfS6xf7X3DJNsfIYPfQ==";
     };
     dependencies = [
       sources."@alexbosworth/html2unicode-1.1.5"
@@ -67137,10 +67529,10 @@ in
       sources."@cto.af/textdecoder-0.0.0"
       (sources."@grpc/grpc-js-1.2.12" // {
         dependencies = [
-          sources."@types/node-14.14.41"
+          sources."@types/node-15.6.1"
         ];
       })
-      sources."@grpc/proto-loader-0.5.6"
+      sources."@grpc/proto-loader-0.6.1"
       sources."@handsontable/formulajs-2.0.2"
       sources."@mitmaro/errors-1.0.0"
       sources."@mitmaro/http-authorization-header-1.0.0"
@@ -67160,7 +67552,7 @@ in
       sources."@types/caseless-0.12.2"
       sources."@types/connect-3.4.34"
       sources."@types/express-4.17.11"
-      sources."@types/express-serve-static-core-4.17.19"
+      sources."@types/express-serve-static-core-4.17.20"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/node-10.12.18"
@@ -67173,7 +67565,7 @@ in
       })
       sources."@types/serve-static-1.13.9"
       sources."@types/tough-cookie-4.0.0"
-      sources."@types/ws-7.4.0"
+      sources."@types/ws-7.4.1"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.7"
       (sources."agent-base-6.0.2" // {
@@ -67250,12 +67642,12 @@ in
           sources."bn.js-5.2.0"
         ];
       })
-      sources."bolt09-0.1.3"
+      sources."bolt09-0.1.4"
       (sources."boxen-5.0.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
@@ -67278,7 +67670,6 @@ in
           sources."lowercase-keys-2.0.0"
         ];
       })
-      sources."call-bind-1.0.2"
       sources."camelcase-6.2.0"
       sources."caporal-1.4.0"
       sources."caseless-0.12.0"
@@ -67335,7 +67726,7 @@ in
       sources."create-hmac-1.1.7"
       sources."crypto-js-4.0.0"
       sources."crypto-random-string-2.0.0"
-      sources."csv-parse-4.15.3"
+      sources."csv-parse-4.15.4"
       sources."cycle-1.0.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
@@ -67382,25 +67773,21 @@ in
       sources."finalhandler-1.1.2"
       sources."forever-agent-0.6.1"
       sources."form-data-3.0.0"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
-      sources."function-bind-1.1.1"
       sources."gauge-1.2.7"
-      sources."gaxios-4.2.0"
+      sources."gaxios-4.3.0"
       sources."gcp-metadata-4.2.1"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."global-dirs-3.0.0"
-      (sources."goldengate-10.0.3" // {
+      (sources."goldengate-10.0.4" // {
         dependencies = [
-          sources."asyncjs-util-1.2.4"
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
-          sources."bolt07-1.7.1"
-          sources."invoices-1.1.6"
-          sources."ln-service-51.5.0"
+          sources."invoices-1.1.7"
+          sources."ln-service-51.7.0"
         ];
       })
       sources."google-auth-library-6.1.6"
@@ -67410,14 +67797,12 @@ in
       sources."gtoken-5.2.1"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
-      sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
         ];
       })
       sources."has-flag-4.0.0"
-      sources."has-symbols-1.0.2"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
       sources."hash-base-3.1.0"
@@ -67447,7 +67832,7 @@ in
           sources."ansi-escapes-4.3.2"
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."cli-width-3.0.0"
           sources."external-editor-3.1.0"
@@ -67462,17 +67847,15 @@ in
           sources."tmp-0.0.33"
         ];
       })
-      (sources."invoices-1.1.7" // {
+      (sources."invoices-1.2.0" // {
         dependencies = [
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
-          sources."bolt09-0.1.4"
         ];
       })
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
-      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
@@ -67485,11 +67868,9 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
       sources."is-stream-2.0.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
@@ -67510,62 +67891,92 @@ in
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
-      (sources."lightning-3.3.1" // {
+      (sources."lightning-3.3.4" // {
         dependencies = [
-          sources."@grpc/grpc-js-1.2.11"
-          sources."@types/node-14.14.35"
-          sources."asyncjs-util-1.2.3"
+          sources."@grpc/proto-loader-0.6.0"
+          sources."@types/node-14.14.37"
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
-          sources."bolt07-1.7.1"
-          sources."cbor-7.0.4"
-          sources."invoices-1.1.6"
-          sources."psbt-1.1.8"
+          sources."invoices-1.1.7"
         ];
       })
       (sources."ln-accounting-4.2.7" // {
         dependencies = [
+          sources."@grpc/grpc-js-1.2.11"
+          sources."@grpc/proto-loader-0.5.6"
+          sources."@types/node-14.14.35"
+          sources."@types/ws-7.4.0"
           sources."asyncjs-util-1.2.4"
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
           sources."bolt07-1.7.1"
+          sources."bolt09-0.1.3"
+          sources."cbor-7.0.4"
+          sources."goldengate-10.0.3"
           sources."invoices-1.1.6"
+          (sources."lightning-3.3.1" // {
+            dependencies = [
+              sources."asyncjs-util-1.2.3"
+            ];
+          })
           sources."ln-service-51.5.0"
+          sources."psbt-1.1.8"
         ];
       })
-      (sources."ln-service-51.7.0" // {
+      (sources."ln-service-51.8.1" // {
         dependencies = [
-          sources."@grpc/proto-loader-0.6.0"
-          sources."@types/node-14.14.37"
-          sources."@types/ws-7.4.1"
+          sources."@grpc/grpc-js-1.3.1"
+          sources."@grpc/proto-loader-0.6.2"
+          sources."@types/node-15.0.3"
+          sources."@types/ws-7.4.4"
           sources."bn.js-5.2.0"
-          sources."bolt09-0.1.4"
-          sources."lightning-3.3.4"
+          sources."lightning-3.3.7"
+          sources."ws-7.4.5"
         ];
       })
       (sources."ln-sync-0.4.5" // {
         dependencies = [
+          sources."@grpc/grpc-js-1.2.11"
+          sources."@grpc/proto-loader-0.5.6"
+          sources."@types/node-14.14.35"
+          sources."@types/ws-7.4.0"
           sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          sources."bolt09-0.1.3"
+          sources."invoices-1.1.6"
+          (sources."lightning-3.3.1" // {
+            dependencies = [
+              sources."asyncjs-util-1.2.3"
+              sources."cbor-7.0.4"
+            ];
+          })
+          sources."psbt-1.1.8"
         ];
       })
-      (sources."ln-telegram-3.2.2" // {
+      (sources."ln-telegram-3.2.3" // {
         dependencies = [
-          sources."asyncjs-util-1.2.4"
+          sources."ajv-8.5.0"
+          sources."ansi-regex-5.0.0"
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
-          sources."bolt07-1.7.1"
-          (sources."ln-service-51.5.0" // {
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."json-schema-traverse-1.0.0"
+          (sources."ln-service-51.7.0" // {
             dependencies = [
-              sources."invoices-1.1.6"
+              sources."invoices-1.1.7"
             ];
           })
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+          sources."table-6.7.0"
         ];
       })
       sources."lodash-4.17.21"
       sources."lodash.camelcase-4.3.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.difference-4.5.0"
-      sources."lodash.flatten-4.4.0"
       sources."lodash.get-4.4.2"
       sources."lodash.pad-4.5.1"
       sources."lodash.padend-4.6.1"
@@ -67612,7 +68023,7 @@ in
       sources."node-forge-0.10.0"
       sources."node-gyp-build-4.2.3"
       sources."nofilter-2.0.3"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npmlog-2.0.4"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
@@ -67635,24 +68046,39 @@ in
       sources."prettyjson-1.2.1"
       (sources."probing-1.3.5" // {
         dependencies = [
+          sources."@grpc/grpc-js-1.2.11"
+          sources."@grpc/proto-loader-0.5.6"
+          sources."@types/node-14.14.35"
+          sources."@types/ws-7.4.0"
           sources."asyncjs-util-1.2.4"
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
+          sources."bolt09-0.1.3"
+          sources."cbor-7.0.4"
+          sources."invoices-1.1.7"
+          (sources."lightning-3.3.1" // {
+            dependencies = [
+              sources."asyncjs-util-1.2.3"
+              sources."bolt07-1.7.1"
+              sources."invoices-1.1.6"
+            ];
+          })
           (sources."ln-service-51.5.0" // {
             dependencies = [
               sources."bolt07-1.7.1"
               sources."invoices-1.1.6"
             ];
           })
+          sources."psbt-1.1.8"
         ];
       })
       sources."process-nextick-args-2.0.1"
-      (sources."protobufjs-6.10.2" // {
+      (sources."protobufjs-6.11.2" // {
         dependencies = [
-          sources."@types/node-13.13.50"
+          sources."@types/node-15.6.1"
         ];
       })
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       (sources."psbt-1.1.9" // {
         dependencies = [
           sources."bn.js-5.2.0"
@@ -67718,9 +68144,9 @@ in
       sources."strip-ansi-4.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
-      (sources."table-6.0.9" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.1.0"
+          sources."ajv-8.5.0"
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
           sources."json-schema-traverse-1.0.0"
@@ -67760,13 +68186,13 @@ in
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."typeforce-1.18.0"
-      sources."typegram-3.2.3"
+      sources."typegram-3.3.1"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
       (sources."update-notifier-5.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."import-lazy-2.1.0"
           sources."semver-7.3.5"
           sources."supports-color-7.2.0"
@@ -67891,7 +68317,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fuzzy-search-3.2.1"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."html-encoding-sniffer-1.0.2"
@@ -68036,7 +68462,7 @@ in
       sources."inherits-2.0.4"
       sources."intersect-1.0.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-finite-1.1.0"
       sources."is-plain-obj-1.1.0"
       sources."is-utf8-0.2.1"
@@ -68059,7 +68485,7 @@ in
       sources."loud-rejection-1.6.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-db-1.47.0"
+      sources."mime-db-1.48.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -68072,7 +68498,7 @@ in
       sources."parse-json-2.2.0"
       sources."path-exists-2.1.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       (sources."path-type-1.1.0" // {
         dependencies = [
           sources."graceful-fs-4.2.6"
@@ -68090,7 +68516,7 @@ in
       sources."resolve-1.20.0"
       (sources."rimraf-2.7.1" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
         ];
       })
       sources."semver-5.7.1"
@@ -68100,7 +68526,7 @@ in
       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.9"
       sources."sprintf-js-1.0.3"
       sources."strip-bom-2.0.0"
       sources."strip-indent-1.0.1"
@@ -68136,7 +68562,6 @@ in
       sources."acorn-7.4.1"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
-      sources."array-filter-1.0.0"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -68148,7 +68573,7 @@ in
           sources."util-0.10.3"
         ];
       })
-      sources."available-typed-arrays-1.0.2"
+      sources."available-typed-arrays-1.0.4"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bn.js-5.2.0"
@@ -68206,7 +68631,7 @@ in
           sources."bn.js-4.12.0"
         ];
       })
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."events-3.3.0"
       sources."evp_bytestokey-1.0.3"
@@ -68216,7 +68641,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-assigned-identifiers-1.2.0"
       sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-1.0.3"
       sources."has-bigints-1.0.1"
       sources."has-symbols-1.0.2"
@@ -68235,18 +68660,18 @@ in
       sources."inline-source-map-0.6.2"
       sources."insert-module-globals-7.2.1"
       sources."is-arguments-1.1.0"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
-      sources."is-core-module-2.2.0"
-      sources."is-date-object-1.0.2"
-      sources."is-generator-function-1.0.8"
+      sources."is-core-module-2.4.0"
+      sources."is-date-object-1.0.4"
+      sources."is-generator-function-1.0.9"
       sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-number-object-1.0.5"
+      sources."is-regex-1.1.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.5"
       sources."isarray-1.0.0"
       sources."jsonparse-1.3.1"
@@ -68265,7 +68690,7 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."module-deps-6.2.3"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
@@ -68275,7 +68700,7 @@ in
       sources."parse-asn1-5.1.6"
       sources."path-browserify-1.0.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-platform-0.11.15"
       sources."pbkdf2-3.1.2"
       sources."process-0.11.10"
@@ -68336,7 +68761,7 @@ in
           sources."punycode-1.3.2"
         ];
       })
-      sources."util-0.12.3"
+      sources."util-0.12.4"
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
       sources."which-boxed-primitive-1.0.2"
@@ -68357,17 +68782,17 @@ in
   btc-rpc-explorer = nodeEnv.buildNodePackage {
     name = "btc-rpc-explorer";
     packageName = "btc-rpc-explorer";
-    version = "3.1.0";
+    version = "3.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-3.1.0.tgz";
-      sha512 = "LKY3+CWOAe6A7SaXRYHZSu27TNeBrUl3LkYTOvRZAIatNNwaM1dTCxUjNRBsnsHCp0Tp9/UGLncLaf2wJ1BLcg==";
+      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-3.1.1.tgz";
+      sha512 = "QHoiW1H2P6Sx7L5IEvbZnnQsfy7eaibY/KS2UAX9VINXNdGS9RxqEdLOe9yTdcy5pzIFpQKIBspOnHcBOjVa8A==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
+      sources."@babel/types-7.14.4"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
       sources."@types/minimist-1.2.1"
@@ -68488,9 +68913,9 @@ in
       sources."denque-1.5.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."dijkstrajs-1.0.1"
+      sources."dijkstrajs-1.0.2"
       sources."doctypes-1.1.0"
-      sources."dotenv-8.2.0"
+      sources."dotenv-8.6.0"
       sources."dtrace-provider-0.8.8"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
@@ -68510,11 +68935,12 @@ in
         ];
       })
       sources."express-async-handler-1.1.4"
-      (sources."express-session-1.17.1" // {
+      (sources."express-session-1.17.2" // {
         dependencies = [
+          sources."cookie-0.4.1"
           sources."debug-2.6.9"
           sources."depd-2.0.0"
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."extend-3.0.2"
@@ -68528,10 +68954,10 @@ in
         ];
       })
       sources."find-up-4.1.0"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
@@ -68566,12 +68992,12 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-expression-4.0.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-promise-2.2.2"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-typedarray-1.0.0"
       sources."isarray-2.0.5"
       sources."isstream-0.1.2"
@@ -68648,7 +69074,7 @@ in
       sources."parseurl-1.3.3"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."performance-now-2.1.0"
       (sources."pidusage-2.0.21" // {
@@ -68658,7 +69084,7 @@ in
       })
       sources."pngjs-3.4.0"
       sources."promise-7.3.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."pug-3.0.2"
       sources."pug-attrs-3.0.0"
@@ -68696,7 +69122,7 @@ in
       })
       sources."readable-stream-3.6.0"
       sources."redent-3.0.0"
-      sources."redis-3.1.1"
+      sources."redis-3.1.2"
       sources."redis-commands-1.7.0"
       sources."redis-errors-1.2.0"
       sources."redis-parser-3.0.0"
@@ -68735,11 +69161,11 @@ in
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
       sources."sha.js-2.4.11"
-      sources."simple-git-2.38.0"
+      sources."simple-git-2.39.0"
       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.9"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."standard-error-1.1.0"
@@ -68758,7 +69184,7 @@ in
       sources."toidentifier-1.0.0"
       sources."token-stream-1.0.0"
       sources."tough-cookie-2.5.0"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."tsscmp-1.0.6"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -68825,7 +69251,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.50"
+      sources."@types/node-15.6.1"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -68946,7 +69372,7 @@ in
       sources."get-browser-rtc-1.1.0"
       sources."get-stdin-4.0.1"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."got-1.2.2"
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
@@ -68967,7 +69393,7 @@ in
       sources."ip-set-1.0.2"
       sources."ipaddr.js-2.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-finite-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -69044,7 +69470,7 @@ in
       })
       sources."path-exists-2.1.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-1.1.0"
       (sources."peer-wire-protocol-0.7.1" // {
         dependencies = [
@@ -69070,7 +69496,7 @@ in
       sources."plist-3.0.2"
       sources."process-nextick-args-2.0.1"
       sources."promiscuous-0.6.0"
-      sources."protobufjs-6.10.2"
+      sources."protobufjs-6.11.2"
       sources."psl-1.8.0"
       (sources."pump-0.3.5" // {
         dependencies = [
@@ -69151,7 +69577,7 @@ in
       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.9"
       sources."speedometer-0.1.4"
       sources."srt2vtt-1.3.1"
       sources."sshpk-1.16.1"
@@ -69231,26 +69657,25 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "1.0.0-beta.11";
+    version = "1.0.0-beta.18";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.0-beta.11.tgz";
-      sha512 = "Oo/tO5aqmjsBORN93dSnidF7+2u77Q9zwUn9VbCQkZqCNfeZZcwIV9AG108hMYwtcXqtKQC7wevX6rmi9l8lng==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.0-beta.18.tgz";
+      sha512 = "eT0Z2u8yB8gMAIOMJ76TjeCQZ8nzxSbN/Y87cbzhT9I6vyLjgCw/w+48XXudOfW63kY2/TugWtZE+mwQlu3QXw==";
     };
     dependencies = [
-      sources."@jsii/spec-1.28.0"
-      sources."@types/node-10.17.58"
+      sources."@jsii/spec-1.30.0"
+      sources."@types/node-10.17.60"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
-      sources."array-filter-1.0.0"
       sources."at-least-node-1.0.0"
-      sources."available-typed-arrays-1.0.2"
+      sources."available-typed-arrays-1.0.4"
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.0"
       sources."case-1.6.3"
-      sources."cdk8s-1.0.0-beta.11"
+      sources."cdk8s-1.0.0-beta.14"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.28.0" // {
+      (sources."codemaker-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -69259,7 +69684,7 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.29.3"
-      sources."constructs-3.3.71"
+      sources."constructs-3.3.75"
       sources."date-format-3.0.0"
       sources."debug-4.3.2"
       sources."decamelize-5.0.0"
@@ -69270,7 +69695,7 @@ in
       sources."dot-case-3.0.4"
       sources."emoji-regex-8.0.0"
       sources."entities-2.0.3"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
@@ -69292,53 +69717,53 @@ in
       sources."has-bigints-1.0.1"
       sources."has-symbols-1.0.2"
       sources."is-arguments-1.1.0"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-number-object-1.0.5"
+      sources."is-regex-1.1.3"
       sources."is-set-2.0.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.5"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."isarray-2.0.5"
-      (sources."jsii-1.28.0" // {
+      (sources."jsii-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.28.0" // {
+      (sources."jsii-pacmak-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.28.0" // {
+      (sources."jsii-reflect-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.28.0" // {
+      (sources."jsii-rosetta-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.255" // {
+      (sources."jsii-srcmak-0.1.273" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
-      sources."json-schema-0.2.5"
-      sources."json2jsii-0.1.188"
+      sources."json-schema-0.3.0"
+      sources."json2jsii-0.1.236"
       sources."jsonfile-6.1.0"
       sources."jsonschema-1.4.0"
       sources."locate-path-5.0.0"
@@ -69350,11 +69775,11 @@ in
       sources."ms-2.1.2"
       sources."ncp-2.0.0"
       sources."no-case-3.0.4"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.28.0"
+      sources."oo-ascii-tree-1.30.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -69395,7 +69820,7 @@ in
       sources."which-typed-array-1.1.4"
       sources."wrap-ansi-7.0.0"
       sources."xmlbuilder-15.1.1"
-      sources."xmldom-0.5.0"
+      sources."xmldom-0.6.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
@@ -69414,7 +69839,6 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CDK for Kubernetes CLI";
-      homepage = "https://github.com/awslabs/cdk8s#readme";
       license = "Apache-2.0";
     };
     production = true;
@@ -69424,18 +69848,19 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.2.2";
+    version = "0.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.2.2.tgz";
-      sha512 = "tkUGs4+739C+3lklwQQM/wLgp41maVlJUK/2cCzuNxVBgobLXBxn55lHxbmEuh2Ddc8PtNV31uzHzn1f2ZzdfQ==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.4.0.tgz";
+      sha512 = "2mJA2Kq8mCcTzfHbNnogPWj/OVtPFEtzgL00hxPyLIKaQz7gX0Sagej18qp7kPh0pVA5Qenm5jVST3GdkjoX6A==";
     };
     dependencies = [
-      sources."@cdktf/hcl2json-0.2.2"
-      sources."@jsii/spec-1.28.0"
+      sources."@cdktf/hcl2json-0.4.0"
+      sources."@jsii/spec-1.30.0"
       sources."@skorfmann/ink-confirm-input-3.0.0"
-      sources."@skorfmann/terraform-cloud-1.9.1"
-      sources."@types/node-14.14.41"
+      sources."@skorfmann/terraform-cloud-1.10.1"
+      sources."@types/node-14.17.1"
       sources."@types/node-fetch-2.5.10"
+      sources."@types/yauzl-2.9.1"
       sources."@types/yoga-layout-1.9.2"
       (sources."ansi-escapes-4.3.2" // {
         dependencies = [
@@ -69450,13 +69875,12 @@ in
           sources."readable-stream-2.3.7"
         ];
       })
-      sources."array-filter-1.0.0"
       sources."astral-regex-2.0.0"
       sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."auto-bind-4.0.0"
-      sources."available-typed-arrays-1.0.2"
+      sources."available-typed-arrays-1.0.4"
       sources."axios-0.21.1"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
@@ -69468,8 +69892,8 @@ in
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."case-1.6.3"
-      sources."cdktf-0.2.2"
-      sources."chalk-4.1.0"
+      sources."cdktf-0.4.0"
+      sources."chalk-4.1.1"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
@@ -69488,9 +69912,9 @@ in
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."commonmark-0.29.3"
-      sources."compress-commons-4.1.0"
+      sources."compress-commons-4.1.1"
       sources."concat-map-0.0.1"
-      sources."constructs-3.3.71"
+      sources."constructs-3.3.75"
       sources."convert-to-spaces-1.0.2"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
@@ -69511,7 +69935,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-2.0.3"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       (sources."es-get-iterator-1.1.2" // {
         dependencies = [
           sources."isarray-2.0.5"
@@ -69521,9 +69945,11 @@ in
       sources."escalade-3.1.1"
       sources."escape-string-regexp-2.0.0"
       sources."exit-on-epipe-1.0.1"
+      sources."extract-zip-2.0.1"
+      sources."fd-slicer-1.1.0"
       sources."find-up-4.1.0"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."foreach-2.0.5"
       sources."form-data-3.0.1"
       sources."fs-constants-1.0.0"
@@ -69532,7 +69958,8 @@ in
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."get-stream-5.2.0"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-bigints-1.0.1"
@@ -69547,30 +69974,30 @@ in
           sources."type-fest-0.12.0"
         ];
       })
-      sources."ink-spinner-4.0.1"
+      sources."ink-spinner-4.0.2"
       sources."ink-text-input-4.0.1"
       sources."is-arguments-1.1.0"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-number-object-1.0.5"
+      sources."is-regex-1.1.3"
       sources."is-set-2.0.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.5"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."js-tokens-4.0.0"
-      (sources."jsii-1.28.0" // {
+      (sources."jsii-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -69578,10 +70005,10 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.28.0" // {
+      (sources."jsii-pacmak-1.30.0" // {
         dependencies = [
           sources."camelcase-6.2.0"
-          sources."codemaker-1.28.0"
+          sources."codemaker-1.30.0"
           sources."decamelize-5.0.0"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-9.1.0"
@@ -69590,7 +70017,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.28.0" // {
+      (sources."jsii-reflect-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -69598,7 +70025,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.28.0" // {
+      (sources."jsii-rosetta-1.30.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -69606,7 +70033,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.255" // {
+      (sources."jsii-srcmak-0.1.273" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -69642,13 +70069,13 @@ in
       sources."node-fetch-2.6.1"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.28.0"
+      sources."oo-ascii-tree-1.30.0"
       sources."open-7.4.2"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -69656,12 +70083,14 @@ in
       sources."patch-console-1.0.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
+      sources."pend-1.2.0"
       sources."printj-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."prop-types-15.7.2"
+      sources."pump-3.0.0"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.12.2"
+      sources."react-devtools-core-4.13.5"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.24.0"
       sources."readable-stream-3.6.0"
@@ -69726,9 +70155,9 @@ in
       sources."widest-line-3.1.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xmlbuilder-15.1.1"
-      sources."xmldom-0.5.0"
+      sources."xmldom-0.6.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       (sources."yargs-15.4.1" // {
@@ -69739,6 +70168,7 @@ in
         ];
       })
       sources."yargs-parser-20.2.7"
+      sources."yauzl-2.10.0"
       sources."yn-3.1.1"
       sources."yoga-layout-prebuilt-1.10.0"
       sources."zip-stream-4.1.0"
@@ -69756,10 +70186,10 @@ in
   clean-css-cli = nodeEnv.buildNodePackage {
     name = "clean-css-cli";
     packageName = "clean-css-cli";
-    version = "5.2.2";
+    version = "5.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.2.2.tgz";
-      sha512 = "XlgBVTpEAsU/aT7gxAZ/g5Q8P9glHZeg6yfNvE7hYuvoozMdw5Wd46b12QtzuDVs8/7UZ/GCulS0VR9TI5NWRg==";
+      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.3.0.tgz";
+      sha512 = "Jri2KVAcan/Y1JuEDo1rUlm3vUoGvMKSOpIL2YEPgalksvoGur/yL2KbtMF2dPs2VlMVj1afzp76Vu0KjxKfvA==";
     };
     dependencies = [
       sources."balanced-match-1.0.2"
@@ -69768,7 +70198,7 @@ in
       sources."commander-7.2.0"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."minimatch-3.0.4"
@@ -69818,11 +70248,11 @@ in
       sources."fetch-everywhere-1.0.5"
       sources."filter-obj-1.1.0"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-flag-3.0.0"
       sources."hasurl-1.0.0"
       sources."i-0.3.6"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-stream-1.1.0"
@@ -69928,10 +70358,10 @@ in
   coc-diagnostic = nodeEnv.buildNodePackage {
     name = "coc-diagnostic";
     packageName = "coc-diagnostic";
-    version = "0.18.2";
+    version = "0.20.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.18.2.tgz";
-      sha512 = "uiWZlGLle3EXfC+1AmYmPrQfYeL2gY1BKpROBr5BWgT2+1W21gAlY1mziopAk0AmCNA8M4wgvfgc+CC3KVYkjQ==";
+      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.20.0.tgz";
+      sha512 = "iKMyYYkebv31l1LB0EbZtwQ4DeVW0dUh9nXwE0tG3LDahcUNzNi1eXGWeNVxcy+YhWmaLEkLgKTu9DE4zxpACQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69987,10 +70417,10 @@ in
   coc-explorer = nodeEnv.buildNodePackage {
     name = "coc-explorer";
     packageName = "coc-explorer";
-    version = "0.17.2";
+    version = "0.17.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.17.2.tgz";
-      sha512 = "XXMjJMweK5qAmOFd569HpdSgcFTziumnNWjPYO1Fze3aJ75KtemSWjrKKy6waFTzQH0sWHmq8g/cRs1pjhQckQ==";
+      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.17.5.tgz";
+      sha512 = "a5GHhsPEFcby7CkhnpkWyLei/SCcon3Z/Li1Jvxr/h6bewDHFNXA5DZSDJWvhLnktGcwZNBOWGBBZhPWFGYAaA==";
     };
     dependencies = [
       sources."@sindresorhus/df-3.1.1"
@@ -70009,7 +70439,7 @@ in
       sources."execa-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."get-stream-5.2.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."globby-7.1.1"
       sources."ignore-3.3.10"
       sources."indent-string-4.0.0"
@@ -70034,7 +70464,7 @@ in
       sources."npm-run-path-3.1.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-8.0.6"
+      sources."open-8.2.0"
       sources."os-homedir-1.0.2"
       sources."p-finally-2.0.1"
       sources."p-map-4.0.0"
@@ -70073,11 +70503,16 @@ in
   coc-git = nodeEnv.buildNodePackage {
     name = "coc-git";
     packageName = "coc-git";
-    version = "2.3.1";
+    version = "2.3.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-git/-/coc-git-2.3.1.tgz";
-      sha512 = "119J+uanlMO9xZA4yeyvjwbWKDckLUKUtJu6mreHuyQbd7x4Ea3qwjpWMlGl2+QLJQ78OPZjpbzzlc8FzDZY2A==";
+      url = "https://registry.npmjs.org/coc-git/-/coc-git-2.3.3.tgz";
+      sha512 = "xBdnbesjfMVHYjoCCpLReurLFVIVyvN/Xd+T0/oETLs0lotn1p5F3cZPRiZD0jxtCLMV72dqN/Kuro98HoNplg==";
     };
+    dependencies = [
+      sources."lru-cache-6.0.0"
+      sources."semver-7.3.5"
+      sources."yallist-4.0.0"
+    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Git extension for coc.nvim";
@@ -70116,10 +70551,10 @@ in
   coc-highlight = nodeEnv.buildNodePackage {
     name = "coc-highlight";
     packageName = "coc-highlight";
-    version = "1.2.7";
+    version = "1.2.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-highlight/-/coc-highlight-1.2.7.tgz";
-      sha512 = "crUMz4W5IGSoLX9Lif1Z9XT2e3Eq7oVnkaN1+F0ncGiAh8sI4vPW+hm641tVcXVC/u4wzdvvbj6ngj8Fykxn2g==";
+      url = "https://registry.npmjs.org/coc-highlight/-/coc-highlight-1.2.8.tgz";
+      sha512 = "buElMyk/0st73HVkgcic9UJECACHsoTbyCwHiOo20P1sCk8tgQ6+iEY9KW7L4xZorRt1RthfxLqZwayog1SALQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70139,7 +70574,7 @@ in
       sha512 = "7SHQYzpRKPrpaLcTm1UUk1zu9VvFEJKFqxwDIuqv/CL0cBTtEvlsfpVh9DOaMHlZPu8U8Lgyf04bHV/sFS1zJw==";
     };
     dependencies = [
-      sources."typescript-4.2.4"
+      sources."typescript-4.3.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -70224,10 +70659,10 @@ in
   coc-lists = nodeEnv.buildNodePackage {
     name = "coc-lists";
     packageName = "coc-lists";
-    version = "1.4.0";
+    version = "1.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.4.0.tgz";
-      sha512 = "AKmM8/+BjncinB4MrS/e8hJ7MzvXL5GtAvusGZb3zsAj4tNO77oWiVzE8V09QEWAsorgHVgNv/OXr4EPJMZvpg==";
+      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.4.1.tgz";
+      sha512 = "A87irHxQ97+VkgM8SgTLZDyOT/t7V0uMqg/Jk1hx+TQVsAZljBNZq88yaUZIo6SBfmeHroGUUzFs597GJf7N5Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70260,10 +70695,10 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "1.0.3";
+    version = "1.0.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-1.0.3.tgz";
-      sha512 = "7mIC/YiAYNS9kzv0tPi6IcKTWRDRAwjKbot4g/RwBxpyGAzTBvsfmpqnWvHiZbk4kd8mKG2qmWR9OEy7CNzNEQ==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-1.0.6.tgz";
+      sha512 = "MQuXdCblmy5Qnrlqmb7ntDjpgxtdXsbdAgxf23Ai2QFpf14bdc+gz4U/+9pOEpSswODtMvMqnjfTA1lY7p2AfQ==";
     };
     dependencies = [
       sources."@chemzqm/neovim-5.2.13"
@@ -70302,15 +70737,15 @@ in
       sources."define-properties-1.1.3"
       sources."duplexer2-0.1.4"
       sources."end-of-stream-1.4.4"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."event-lite-0.1.2"
       sources."execa-1.0.0"
       sources."fast-diff-1.2.0"
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.3"
-      sources."fp-ts-2.10.2"
+      sources."follow-redirects-1.14.1"
+      sources."fp-ts-2.10.5"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
@@ -70323,7 +70758,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-bigints-1.0.1"
@@ -70335,17 +70770,17 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."int64-buffer-0.1.10"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-docker-2.2.1"
       sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-number-object-1.0.5"
+      sources."is-regex-1.1.3"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
@@ -70381,7 +70816,7 @@ in
       sources."node-fetch-2.6.1"
       sources."node-int64-0.4.0"
       sources."npm-run-path-2.0.2"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
@@ -70473,13 +70908,14 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      (sources."@eslint/eslintrc-0.4.0" // {
+      (sources."@eslint/eslintrc-0.4.1" // {
         dependencies = [
           sources."globals-12.4.0"
         ];
@@ -70534,6 +70970,7 @@ in
           sources."ansi-regex-3.0.0"
           sources."camelcase-4.1.0"
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
           sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
@@ -70548,15 +70985,14 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -70615,7 +71051,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.10.1"
+      sources."core-js-3.13.1"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-7.0.3"
@@ -70651,16 +71087,16 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
-      sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.24.0" // {
+      sources."escape-string-regexp-4.0.0"
+      (sources."eslint-7.27.0" // {
         dependencies = [
-          sources."eslint-visitor-keys-2.0.0"
+          sources."eslint-visitor-keys-2.1.0"
         ];
       })
       sources."eslint-scope-5.1.1"
@@ -70778,11 +71214,10 @@ in
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-1.0.3"
-      sources."get-intrinsic-1.1.1"
       sources."get-stdin-5.0.1"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-base-0.3.0" // {
         dependencies = [
           sources."glob-parent-2.0.0"
@@ -70793,7 +71228,7 @@ in
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.3.0"
       sources."global-dirs-0.1.1"
-      (sources."globals-13.8.0" // {
+      (sources."globals-13.9.0" // {
         dependencies = [
           sources."type-fest-0.20.2"
         ];
@@ -70814,7 +71249,6 @@ in
         ];
       })
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       (sources."has-value-1.0.0" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -70853,10 +71287,9 @@ in
       sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -70880,7 +71313,6 @@ in
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
       sources."is-number-2.1.0"
-      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
@@ -70895,7 +71327,6 @@ in
       sources."is-regexp-1.0.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
       sources."is-supported-regexp-flag-1.0.1"
       sources."is-utf8-0.2.1"
       sources."is-whitespace-character-1.0.4"
@@ -70924,12 +71355,12 @@ in
       sources."locate-path-2.0.0"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
       sources."lodash.merge-4.6.2"
       sources."lodash.truncate-4.4.2"
       (sources."log-symbols-2.2.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
       sources."loglevel-1.7.1"
@@ -70938,6 +71369,7 @@ in
           sources."ansi-regex-2.1.1"
           sources."ansi-styles-2.2.1"
           sources."chalk-1.1.3"
+          sources."escape-string-regexp-1.0.5"
           sources."strip-ansi-3.0.1"
           sources."supports-color-2.0.0"
         ];
@@ -71064,7 +71496,7 @@ in
       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-type-1.1.0" // {
         dependencies = [
           sources."pify-2.3.0"
@@ -71078,6 +71510,7 @@ in
       (sources."postcss-6.0.23" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
       sources."postcss-html-0.12.0"
@@ -71090,6 +71523,7 @@ in
               sources."supports-color-2.0.0"
             ];
           })
+          sources."escape-string-regexp-1.0.5"
           sources."has-flag-1.0.0"
           sources."postcss-5.2.18"
           sources."source-map-0.5.7"
@@ -71101,6 +71535,7 @@ in
       (sources."postcss-reporter-5.0.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
       sources."postcss-resolve-nested-selector-0.1.1"
@@ -71112,7 +71547,7 @@ in
       sources."prelude-ls-1.2.1"
       sources."prepend-http-1.0.4"
       sources."preserve-0.2.0"
-      sources."prettier-2.2.1"
+      sources."prettier-2.3.0"
       sources."prettier-eslint-12.0.0"
       (sources."prettier-stylelint-0.4.2" // {
         dependencies = [
@@ -71125,6 +71560,7 @@ in
         dependencies = [
           sources."chalk-2.4.2"
           sources."dir-glob-2.0.0"
+          sources."escape-string-regexp-1.0.5"
           sources."globby-8.0.2"
           sources."ignore-3.3.10"
           sources."path-type-3.0.0"
@@ -71250,7 +71686,7 @@ in
       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.9"
       sources."specificity-0.3.2"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
@@ -71292,6 +71728,7 @@ in
           sources."camelcase-keys-4.2.0"
           sources."chalk-2.4.2"
           sources."debug-3.2.7"
+          sources."escape-string-regexp-1.0.5"
           sources."file-entry-cache-2.0.0"
           sources."flat-cache-1.3.4"
           sources."globby-7.1.1"
@@ -71319,9 +71756,9 @@ in
       sources."sugarss-1.0.1"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      (sources."table-6.1.0" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.1.0"
+          sources."ajv-8.5.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -71346,6 +71783,7 @@ in
       (sources."tslint-5.20.1" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
           sources."semver-5.7.1"
           sources."tsutils-2.29.0"
         ];
@@ -71380,6 +71818,7 @@ in
       (sources."update-notifier-2.5.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
       sources."uri-js-4.4.1"
@@ -71451,17 +71890,17 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.129";
+    version = "1.1.144";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.129.tgz";
-      sha512 = "XlybP7uY9BgkeGKCFhIxnmpos3rYJ8wIB+MW4w0Fyu51Ap2fxamU7FDmOcOIbjmp1tglldSZm2+A+KloHDuUgw==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.144.tgz";
+      sha512 = "bUb/GuY0QjlDAws60UNDL8ZiRzp6sLmSqRkMyAAUEb9arsSphvok80P3i/NEsJhG2lgx2LaEz1mKUCnR+UjTlA==";
     };
     dependencies = [
-      sources."pyright-1.1.132"
+      sources."pyright-1.1.145"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Pyright extension for coc.nvim";
+      description = "Pyright extension for coc.nvim, static type checker for Python";
       homepage = "https://github.com/fannheyward/coc-pyright#readme";
       license = "MIT";
     };
@@ -71531,10 +71970,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.42.0";
+    version = "0.46.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.42.0.tgz";
-      sha512 = "H6/r68GvhIMWDZWWFtOUsyRNxaVlMRLrS+uMqcipxfkx+Pl1pWfnfsmymjd9okbtrWiKWgG6G63v7T2rVl4+YA==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.46.0.tgz";
+      sha512 = "KwkFaDNBwZtqdahUPKYKoCb0nvLZ1wu5L2/8kpK94IMDgNPy3TUTxujtwDjLwjYo/z+W5reRfwIYNJZ3FZ2Onw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -71567,10 +72006,10 @@ in
   coc-snippets = nodeEnv.buildNodePackage {
     name = "coc-snippets";
     packageName = "coc-snippets";
-    version = "2.4.1";
+    version = "2.4.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.4.1.tgz";
-      sha512 = "+81jc8T250Ipl50MMypedTqHvAAGPu/COg9wEUsBzEOHmA0r4ouvRhzjAOWt7G6L2dHdB4KJl8AWfiVZhc5dRA==";
+      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.4.2.tgz";
+      sha512 = "e+gsnzl//ilZNhfdVNkzI3lvJoMdB/aLVrMbaecimJG+gabVI/MvjmpsvrOLu9KFkBmECFjpM3T2Hxd6DuvY2Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -71608,31 +72047,31 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
-      sources."@babel/helper-compilation-targets-7.13.13"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/compat-data-7.14.4"
+      sources."@babel/core-7.14.3"
+      sources."@babel/generator-7.14.3"
+      sources."@babel/helper-compilation-targets-7.14.4"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-replace-supers-7.14.4"
       sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-identifier-7.14.0"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helpers-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.14.4"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -71643,7 +72082,7 @@ in
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.3"
-      sources."ajv-8.1.0"
+      sources."ajv-8.5.0"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -71651,16 +72090,19 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."balanced-match-2.0.0"
+      (sources."brace-expansion-1.1.11" // {
+        dependencies = [
+          sources."balanced-match-1.0.2"
+        ];
+      })
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
-      sources."call-bind-1.0.2"
+      sources."browserslist-4.16.6"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001209"
-      (sources."chalk-4.1.0" // {
+      sources."caniuse-lite-1.0.30001232"
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -71697,7 +72139,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -71718,9 +72160,8 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."global-modules-2.0.0"
       sources."global-prefix-3.0.0"
@@ -71731,7 +72172,6 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
@@ -71744,26 +72184,22 @@ in
       sources."import-lazy-4.0.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
-      sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-decimal-1.0.4"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
@@ -71778,7 +72214,6 @@ in
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
       sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.1.0"
       sources."longest-streak-2.0.4"
@@ -71801,7 +72236,7 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       (sources."normalize-package-data-3.0.2" // {
         dependencies = [
           sources."semver-7.3.5"
@@ -71820,9 +72255,9 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       (sources."postcss-7.0.35" // {
         dependencies = [
           (sources."chalk-2.4.2" // {
@@ -71841,7 +72276,7 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.6"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.1.0"
       sources."punycode-2.1.1"
@@ -71887,7 +72322,7 @@ in
       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.9"
       sources."specificity-0.4.1"
       sources."string-width-4.2.2"
       (sources."string_decoder-1.3.0" // {
@@ -71898,19 +72333,18 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-indent-3.0.0"
       sources."style-search-0.1.0"
-      sources."stylelint-13.12.0"
+      sources."stylelint-13.13.1"
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.1.0"
+      sources."table-6.7.1"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."trough-1.0.5"
       sources."type-fest-0.18.1"
       sources."typedarray-to-buffer-3.1.5"
       sources."unified-9.2.1"
-      sources."uniq-1.0.1"
       sources."unist-util-find-all-after-3.0.2"
       sources."unist-util-is-4.1.0"
       sources."unist-util-stringify-position-2.0.3"
@@ -71950,10 +72384,10 @@ in
   coc-tabnine = nodeEnv.buildNodePackage {
     name = "coc-tabnine";
     packageName = "coc-tabnine";
-    version = "1.3.3";
+    version = "1.3.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tabnine/-/coc-tabnine-1.3.3.tgz";
-      sha512 = "6CYtXKaEduGHLjiBdYRcWvl7gzvW92iGTxW7M3KVfn/tRFO+VF+3FuSX7Fg53ol4/USyNOTgXz3uyBjfsZOBXA==";
+      url = "https://registry.npmjs.org/coc-tabnine/-/coc-tabnine-1.3.4.tgz";
+      sha512 = "ICnIh+XR8egHeJCfuVpiXQHvHfcRJcHWRHIxTHLAOYG000tK/qZGzyVF7gz55sxgwyFOpo3EBgimdrAn9e/gvg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -71967,10 +72401,10 @@ in
   coc-texlab = nodeEnv.buildNodePackage {
     name = "coc-texlab";
     packageName = "coc-texlab";
-    version = "2.3.0";
+    version = "3.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-texlab/-/coc-texlab-2.3.0.tgz";
-      sha512 = "1Nph3BgqAbANW1LWa49kscQdt8i55fB304YohKvA2y78DlvxIfG0J7UnbIz+R1HQX0TpvwWdD/wzFP6ll68l8w==";
+      url = "https://registry.npmjs.org/coc-texlab/-/coc-texlab-3.0.2.tgz";
+      sha512 = "YiPB0gasof89HqAGz55BICHtt9gDyTjsNY1mwdKkJP0ZmgSxub5q+hOYYbay56X4+348Raxx0fp75JI8ax1nAw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -71992,8 +72426,8 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."balanced-match-1.0.2"
@@ -72009,12 +72443,12 @@ in
       sources."esprima-4.0.1"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."minimatch-3.0.4"
@@ -72022,7 +72456,7 @@ in
       sources."mkdirp-0.5.5"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."resolve-1.20.0"
       sources."semver-5.7.1"
       sources."sprintf-js-1.0.3"
@@ -72085,7 +72519,7 @@ in
       sha512 = "Kye0Bn4ifhNhKFcenXg0z8iNzkBGOCXCb552sY/L55+4+08WU02impRnuYkEwFo2QAjDrRQNYjUfUabRR4LC+A==";
     };
     dependencies = [
-      sources."typescript-4.2.4"
+      sources."typescript-4.3.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -72107,13 +72541,14 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      (sources."@eslint/eslintrc-0.4.0" // {
+      (sources."@eslint/eslintrc-0.4.1" // {
         dependencies = [
           sources."globals-12.4.0"
         ];
@@ -72129,9 +72564,8 @@ in
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."builtin-modules-1.1.1"
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -72151,16 +72585,16 @@ in
       sources."doctrine-3.0.0"
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
-      sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.24.0"
-      sources."eslint-plugin-vue-7.9.0"
+      sources."escape-string-regexp-4.0.0"
+      sources."eslint-7.27.0"
+      sources."eslint-plugin-vue-7.10.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
         ];
       })
-      sources."eslint-visitor-keys-2.0.0"
+      sources."eslint-visitor-keys-2.1.0"
       (sources."espree-7.3.1" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
@@ -72188,29 +72622,24 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
-      (sources."globals-13.8.0" // {
+      (sources."globals-13.9.0" // {
         dependencies = [
           sources."type-fest-0.20.2"
         ];
       })
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-boolean-object-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -72219,7 +72648,7 @@ in
       sources."levn-0.4.1"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
+      sources."lodash.merge-4.6.2"
       sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
@@ -72232,9 +72661,9 @@ in
       sources."parent-module-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."prelude-ls-1.2.1"
-      sources."prettier-2.2.1"
+      sources."prettier-2.3.0"
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
       sources."regexpp-3.1.0"
@@ -72257,9 +72686,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.1.0" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.1.0"
+          sources."ajv-8.5.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -72268,13 +72697,14 @@ in
       (sources."tslint-6.1.3" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
           sources."semver-5.7.1"
         ];
       })
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."typescript-4.2.4"
+      sources."typescript-4.3.2"
       sources."uri-js-4.4.1"
       sources."v8-compile-cache-2.3.0"
       sources."vls-0.7.2"
@@ -72465,7 +72895,7 @@ in
       sources."colors-1.4.0"
       sources."commander-2.20.3"
       sources."escape-string-regexp-1.0.5"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."has-flag-3.0.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."log-symbols-2.2.0"
@@ -72492,14 +72922,15 @@ in
   configurable-http-proxy = nodeEnv.buildNodePackage {
     name = "configurable-http-proxy";
     packageName = "configurable-http-proxy";
-    version = "4.3.2";
+    version = "4.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/configurable-http-proxy/-/configurable-http-proxy-4.3.2.tgz";
-      sha512 = "wVYydYWJyPAUj8pNQ4+4mNxwj6EY8JNETRAOA3UjpiLrGr+Np/2lfQW+W3Fjubs9nUDn0JTQ/aaPsjdEs1/6dA==";
+      url = "https://registry.npmjs.org/configurable-http-proxy/-/configurable-http-proxy-4.4.0.tgz";
+      sha512 = "8tSSnS8pjuw6Wtu/3Ufd2elV/3DnE3AUu3L+IYyukLoQNrRY9iS+Qfg3e1APokk7OzSghDkxW7yRZFiAoHF6FQ==";
     };
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
       sources."async-3.2.0"
+      sources."bintrees-1.0.1"
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -72513,7 +72944,7 @@ in
       sources."fast-safe-stringify-2.0.7"
       sources."fecha-4.2.1"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."http-proxy-1.18.1"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
@@ -72521,19 +72952,18 @@ in
       sources."isarray-1.0.0"
       sources."kuler-2.0.0"
       sources."logform-2.2.0"
-      sources."lynx-0.2.0"
-      sources."mersenne-0.0.4"
       sources."ms-2.1.3"
       sources."one-time-1.0.0"
       sources."process-nextick-args-2.0.1"
+      sources."prom-client-13.1.0"
       sources."readable-stream-3.6.0"
       sources."requires-port-1.0.0"
       sources."safe-buffer-5.2.1"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
-      sources."statsd-parser-0.0.4"
       sources."strftime-0.10.0"
       sources."string_decoder-1.3.0"
+      sources."tdigest-0.1.1"
       sources."text-hex-1.0.0"
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
@@ -72569,13 +72999,12 @@ in
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
-      sources."@npmcli/ci-detect-1.3.0"
-      sources."@npmcli/git-2.0.8"
+      sources."@npmcli/git-2.0.9"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
@@ -72636,7 +73065,7 @@ in
       sources."braces-3.0.2"
       sources."builtins-1.0.3"
       sources."bytes-3.0.0"
-      sources."cacache-15.0.6"
+      sources."cacache-15.2.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."lowercase-keys-2.0.0"
@@ -72715,7 +73144,7 @@ in
       })
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-indent-6.0.0"
+      sources."detect-indent-6.1.0"
       sources."detect-newline-3.1.0"
       sources."dir-glob-3.0.1"
       sources."dot-prop-5.3.0"
@@ -72767,7 +73196,7 @@ in
       sources."find-up-2.1.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-extra-9.1.0"
       sources."fs-minipass-2.1.0"
@@ -72776,7 +73205,7 @@ in
       sources."gauge-2.7.4"
       sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."global-dirs-2.1.0"
       sources."globby-11.0.3"
@@ -72804,9 +73233,9 @@ in
       sources."https-proxy-agent-5.0.0"
       sources."human-signals-1.1.1"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."ignore-5.1.8"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."import-fresh-3.3.0"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
@@ -72860,7 +73289,7 @@ in
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
@@ -72946,14 +73375,14 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."normalize-url-4.5.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
-      sources."npm-packlist-2.1.5"
+      sources."npm-packlist-2.2.2"
       sources."npm-pick-manifest-6.1.1"
-      sources."npm-registry-fetch-9.0.0"
+      sources."npm-registry-fetch-10.1.2"
       sources."npm-run-path-4.0.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
@@ -72984,18 +73413,18 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.3.1"
+      sources."pacote-11.3.3"
       sources."parent-module-1.0.1"
       sources."parseurl-1.3.3"
       sources."path-exists-3.0.0"
       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-0.1.7"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-4.0.1"
       sources."pkg-up-2.0.0"
       sources."plist-3.0.2"
@@ -73004,7 +73433,7 @@ in
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
       sources."promzard-0.3.0"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -73075,7 +73504,7 @@ in
       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.9"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.1"
       sources."statuses-1.5.0"
@@ -73088,7 +73517,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
-      sources."systeminformation-4.34.20"
+      sources."systeminformation-4.34.23"
       sources."tar-6.1.0"
       sources."term-size-2.2.1"
       sources."through-2.3.8"
@@ -73173,14 +73602,14 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -73289,7 +73718,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -73320,7 +73749,7 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -73407,7 +73836,7 @@ in
       sources."path-dirname-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       (sources."path-type-3.0.0" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -73475,7 +73904,7 @@ in
       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.9"
       sources."split-string-3.1.0"
       (sources."static-extend-0.1.2" // {
         dependencies = [
@@ -73503,7 +73932,7 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."type-fest-0.13.1"
       sources."union-value-1.0.1"
       (sources."unset-value-1.0.0" // {
@@ -73551,7 +73980,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -73640,7 +74069,7 @@ in
       sources."mute-stream-0.0.7"
       sources."next-tick-1.0.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."onetime-2.0.1"
       sources."os-tmpdir-1.0.2"
@@ -73729,7 +74158,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fstream-1.0.12"
       sources."fstream-ignore-1.0.5"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-flag-4.0.0"
       sources."hyperquest-2.1.3"
@@ -74080,7 +74509,7 @@ in
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."global-4.4.0"
       sources."global-dirs-0.1.1"
       sources."got-6.7.1"
@@ -74145,7 +74574,7 @@ in
       sources."is-redirect-1.0.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
+      sources."is-string-1.0.6"
       sources."is-typedarray-1.0.0"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
@@ -74202,7 +74631,11 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."ms-2.1.3"
       sources."multi-random-access-2.1.1"
-      sources."multicast-dns-7.2.2"
+      (sources."multicast-dns-7.2.3" // {
+        dependencies = [
+          sources."dns-packet-5.2.4"
+        ];
+      })
       sources."multistream-2.1.1"
       sources."mute-stream-0.0.8"
       sources."mutexify-1.3.1"
@@ -74317,7 +74750,11 @@ in
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."simple-sha1-2.1.2"
-      sources."siphash24-1.1.1"
+      (sources."siphash24-1.2.0" // {
+        dependencies = [
+          sources."nanoassert-2.0.0"
+        ];
+      })
       sources."slice-ansi-1.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -74458,7 +74895,7 @@ in
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."utile-0.3.0"
-      (sources."utp-native-2.4.0" // {
+      (sources."utp-native-2.5.0" // {
         dependencies = [
           sources."node-gyp-build-4.2.3"
           sources."readable-stream-3.6.0"
@@ -74518,10 +74955,10 @@ in
   diagnostic-languageserver = nodeEnv.buildNodePackage {
     name = "diagnostic-languageserver";
     packageName = "diagnostic-languageserver";
-    version = "1.8.1";
+    version = "1.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/diagnostic-languageserver/-/diagnostic-languageserver-1.8.1.tgz";
-      sha512 = "W8lFslQXZ6HEjy9Ba7jLYDzqJZFkWVINWZjNDUZslozm2ZLMH7QWNIa74DKZXLA972ZgY8iJ0WIMxn0Y4+1POw==";
+      url = "https://registry.npmjs.org/diagnostic-languageserver/-/diagnostic-languageserver-1.11.0.tgz";
+      sha512 = "4kjsgc/rV+qtH3dTqEnR/ug36yKNjyo5z674ySkD6k08DwlLs10fsP/I+d8BAsbtjpL36bqZxLa9iNgTDqioXQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
@@ -74543,7 +74980,7 @@ in
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."globby-11.0.3"
       sources."graceful-fs-4.2.6"
@@ -74570,7 +75007,7 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."queue-microtask-1.2.3"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
@@ -74653,15 +75090,15 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.68.1";
+    version = "6.71.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.68.1.tgz";
-      sha512 = "OGsAZGrhHIJw4koiMJ1U80eVJIcpKsN6u7Iq+d1Tu3TJvBSvYHShM3SllYbsbFzIdt8kBNj3XWsogajUpeX0+w==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.71.0.tgz";
+      sha512 = "bx902tD9qzZFnM7YbL9KOqdcE8iW1KKEyxdvE5rEJVdzny7FMHpLRF/YpP+bjKdXvnCcZMNsePqNum+i2qp8Ng==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.14.41"
+      sources."@types/node-14.17.1"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.4"
@@ -74799,30 +75236,30 @@ in
   "@electron-forge/cli" = nodeEnv.buildNodePackage {
     name = "_at_electron-forge_slash_cli";
     packageName = "@electron-forge/cli";
-    version = "6.0.0-beta.54";
+    version = "6.0.0-beta.57";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.54.tgz";
-      sha512 = "+Ui1BI8c5CnBawH2OEySa5QR8DzrFd/I9FHlClvrTsIDfsBAeMSv9NTbSNcmo9Af5kI+aNsLQa8tp1vD8DNrng==";
+      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.57.tgz";
+      sha512 = "ouIL3FI6C0W3iLwwwQzKufjoP/OZagUDMCDjGLN/dqeg+lZ+cR40bdfaNTFha9ajz+zSe2SmhCOMVUVNNkJ5Sg==";
     };
     dependencies = [
-      sources."@electron-forge/async-ora-6.0.0-beta.54"
-      sources."@electron-forge/core-6.0.0-beta.54"
-      sources."@electron-forge/installer-base-6.0.0-beta.54"
-      sources."@electron-forge/installer-darwin-6.0.0-beta.54"
-      sources."@electron-forge/installer-deb-6.0.0-beta.54"
-      sources."@electron-forge/installer-dmg-6.0.0-beta.54"
-      sources."@electron-forge/installer-exe-6.0.0-beta.54"
-      sources."@electron-forge/installer-linux-6.0.0-beta.54"
-      sources."@electron-forge/installer-rpm-6.0.0-beta.54"
-      sources."@electron-forge/installer-zip-6.0.0-beta.54"
-      sources."@electron-forge/maker-base-6.0.0-beta.54"
-      sources."@electron-forge/plugin-base-6.0.0-beta.54"
-      sources."@electron-forge/publisher-base-6.0.0-beta.54"
-      sources."@electron-forge/shared-types-6.0.0-beta.54"
-      sources."@electron-forge/template-base-6.0.0-beta.54"
-      sources."@electron-forge/template-typescript-6.0.0-beta.54"
-      sources."@electron-forge/template-typescript-webpack-6.0.0-beta.54"
-      sources."@electron-forge/template-webpack-6.0.0-beta.54"
+      sources."@electron-forge/async-ora-6.0.0-beta.57"
+      sources."@electron-forge/core-6.0.0-beta.57"
+      sources."@electron-forge/installer-base-6.0.0-beta.57"
+      sources."@electron-forge/installer-darwin-6.0.0-beta.57"
+      sources."@electron-forge/installer-deb-6.0.0-beta.57"
+      sources."@electron-forge/installer-dmg-6.0.0-beta.57"
+      sources."@electron-forge/installer-exe-6.0.0-beta.57"
+      sources."@electron-forge/installer-linux-6.0.0-beta.57"
+      sources."@electron-forge/installer-rpm-6.0.0-beta.57"
+      sources."@electron-forge/installer-zip-6.0.0-beta.57"
+      sources."@electron-forge/maker-base-6.0.0-beta.57"
+      sources."@electron-forge/plugin-base-6.0.0-beta.57"
+      sources."@electron-forge/publisher-base-6.0.0-beta.57"
+      sources."@electron-forge/shared-types-6.0.0-beta.57"
+      sources."@electron-forge/template-base-6.0.0-beta.57"
+      sources."@electron-forge/template-typescript-6.0.0-beta.57"
+      sources."@electron-forge/template-typescript-webpack-6.0.0-beta.57"
+      sources."@electron-forge/template-webpack-6.0.0-beta.57"
       (sources."@electron/get-1.12.4" // {
         dependencies = [
           sources."@sindresorhus/is-0.14.0"
@@ -74839,22 +75276,24 @@ in
           sources."get-stream-4.1.0"
           sources."got-9.6.0"
           sources."json-buffer-3.0.0"
+          sources."jsonfile-4.0.0"
           sources."keyv-3.1.0"
           sources."lowercase-keys-1.0.1"
           sources."p-cancelable-1.1.0"
           sources."responselike-1.0.2"
           sources."semver-6.3.0"
+          sources."universalify-0.1.2"
         ];
       })
       sources."@malept/cross-spawn-promise-1.1.1"
-      sources."@sindresorhus/is-4.0.0"
+      sources."@sindresorhus/is-4.0.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/glob-7.1.3"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/responselike-1.0.0"
       sources."@types/yauzl-2.9.1"
       sources."abbrev-1.1.1"
@@ -74892,7 +75331,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-4.1.0"
       sources."bluebird-3.7.2"
-      sources."boolean-3.0.3"
+      sources."boolean-3.1.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -74905,7 +75344,7 @@ in
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."chownr-1.1.4"
       sources."chromium-pickle-js-0.2.0"
@@ -74930,7 +75369,7 @@ in
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
       sources."console-control-strings-1.1.0"
-      sources."core-js-3.10.1"
+      sources."core-js-3.13.1"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."currently-unhandled-0.4.1"
@@ -74949,6 +75388,7 @@ in
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
       sources."defer-to-connect-2.0.1"
+      sources."define-lazy-prop-2.0.0"
       (sources."define-properties-1.1.3" // {
         dependencies = [
           sources."object-keys-1.1.1"
@@ -74957,17 +75397,29 @@ in
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."detect-libc-1.0.3"
-      sources."detect-node-2.0.5"
+      sources."detect-node-2.1.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-notarize-1.0.0"
+      (sources."electron-notarize-1.0.0" // {
+        dependencies = [
+          sources."fs-extra-9.1.0"
+        ];
+      })
       (sources."electron-osx-sign-0.5.0" // {
         dependencies = [
           sources."debug-2.6.9"
         ];
       })
-      sources."electron-packager-15.2.0"
-      sources."electron-rebuild-2.3.5"
+      (sources."electron-packager-15.2.0" // {
+        dependencies = [
+          sources."fs-extra-9.1.0"
+        ];
+      })
+      (sources."electron-rebuild-2.3.5" // {
+        dependencies = [
+          sources."fs-extra-9.1.0"
+        ];
+      })
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -74997,7 +75449,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."figures-3.2.0"
       sources."filename-reserved-regex-2.0.0"
-      sources."filenamify-4.2.0"
+      sources."filenamify-4.3.0"
       (sources."find-up-5.0.0" // {
         dependencies = [
           sources."locate-path-6.0.0"
@@ -75009,16 +75461,13 @@ in
       (sources."flora-colossus-1.0.1" // {
         dependencies = [
           sources."fs-extra-7.0.1"
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
         ];
       })
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      (sources."fs-extra-9.1.0" // {
-        dependencies = [
-          sources."jsonfile-6.1.0"
-          sources."universalify-2.0.0"
-        ];
-      })
+      sources."fs-extra-10.0.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
@@ -75026,7 +75475,9 @@ in
         dependencies = [
           sources."debug-3.2.7"
           sources."fs-extra-4.0.3"
+          sources."jsonfile-4.0.0"
           sources."ms-2.1.3"
+          sources."universalify-0.1.2"
         ];
       })
       (sources."gauge-2.7.4" // {
@@ -75045,7 +75496,7 @@ in
       sources."get-stdin-4.0.1"
       sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."global-agent-2.2.0"
       sources."global-modules-1.0.0"
       (sources."global-prefix-1.0.2" // {
@@ -75069,19 +75520,19 @@ in
       sources."http2-wrapper-1.0.3"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."indent-string-2.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      (sources."inquirer-7.3.3" // {
+      (sources."inquirer-8.1.0" // {
         dependencies = [
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.2"
         ];
       })
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-docker-2.2.1"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
@@ -75101,7 +75552,7 @@ in
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
+      sources."jsonfile-6.1.0"
       sources."jsprim-1.4.1"
       sources."junk-3.1.0"
       sources."keyv-4.0.3"
@@ -75161,7 +75612,7 @@ in
         ];
       })
       sources."nice-try-1.0.5"
-      (sources."node-abi-2.21.0" // {
+      (sources."node-abi-2.30.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -75186,8 +75637,8 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."normalize-url-4.5.1"
+      sources."npm-bundled-1.1.2"
       (sources."npm-conf-1.1.3" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -75212,12 +75663,12 @@ in
       sources."object-keys-0.4.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.4.2"
+      sources."open-8.2.0"
       sources."ora-5.4.0"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
@@ -75231,7 +75682,7 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-2.0.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
@@ -75300,7 +75751,7 @@ in
       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.9"
       sources."speedometer-0.1.4"
       sources."sprintf-js-1.1.2"
       sources."sshpk-1.16.1"
@@ -75349,7 +75800,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.13.1"
-      sources."universalify-0.1.2"
+      sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."url-parse-lax-3.0.0"
       sources."username-5.1.0"
@@ -75430,50 +75881,50 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      sources."@babel/compat-data-7.14.4"
+      (sources."@babel/core-7.14.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.14.3"
       sources."@babel/helper-annotate-as-pure-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.13" // {
+      (sources."@babel/helper-compilation-targets-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
-      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-replace-supers-7.14.4"
       sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-identifier-7.14.0"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
-      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/helpers-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.4"
       sources."@babel/plugin-syntax-jsx-7.12.13"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
-      sources."@babel/plugin-transform-parameters-7.13.0"
-      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/plugin-transform-destructuring-7.14.4"
+      sources."@babel/plugin-transform-parameters-7.14.2"
+      sources."@babel/plugin-transform-react-jsx-7.14.3"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
-      sources."@sindresorhus/is-4.0.0"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
+      sources."@sindresorhus/is-4.0.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
@@ -75492,7 +75943,7 @@ in
       sources."auto-bind-4.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
@@ -75508,7 +75959,7 @@ in
           sources."quick-lru-4.0.1"
         ];
       })
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -75545,7 +75996,7 @@ in
       })
       sources."defer-to-connect-2.0.1"
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -75562,7 +76013,7 @@ in
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
       sources."get-stream-4.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."globals-11.12.0"
       sources."got-11.8.2"
       sources."hard-rejection-2.1.0"
@@ -75578,7 +76029,7 @@ in
       (sources."ink-3.0.8" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -75588,7 +76039,7 @@ in
       (sources."ink-text-input-4.0.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -75598,7 +76049,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
@@ -75642,9 +76093,9 @@ in
       sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
       sources."nice-try-1.0.5"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."normalize-package-data-2.5.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
@@ -75653,7 +76104,7 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
@@ -75664,7 +76115,7 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       (sources."pkg-dir-4.2.0" // {
         dependencies = [
           sources."find-up-4.1.0"
@@ -75679,7 +76130,7 @@ in
       sources."punycode-2.1.1"
       sources."quick-lru-5.1.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.12.2"
+      sources."react-devtools-core-4.13.5"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.24.0"
       (sources."read-pkg-5.2.0" // {
@@ -75722,7 +76173,7 @@ in
       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.9"
       (sources."stack-utils-2.0.3" // {
         dependencies = [
           sources."escape-string-regexp-2.0.0"
@@ -75741,7 +76192,7 @@ in
       sources."strip-indent-3.0.0"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."type-fest-0.12.0"
       sources."unicode-emoji-modifier-base-1.0.0"
       sources."uri-js-4.4.1"
@@ -75756,7 +76207,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."yallist-4.0.0"
       sources."yargs-parser-18.1.3"
       sources."yoga-layout-prebuilt-1.10.0"
@@ -75795,8 +76246,8 @@ in
     src = ../../applications/video/epgstation;
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -75805,8 +76256,8 @@ in
       })
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
-      sources."@fluentui/keyboard-key-0.2.16"
-      sources."@fluentui/react-7.168.0"
+      sources."@fluentui/keyboard-key-0.2.17"
+      sources."@fluentui/react-7.170.1"
       sources."@fluentui/react-focus-7.17.6"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
@@ -75820,7 +76271,7 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."@microsoft/load-themed-styles-1.10.161"
+      sources."@microsoft/load-themed-styles-1.10.174"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -75838,7 +76289,7 @@ in
       sources."@types/connect-3.4.34"
       sources."@types/engine.io-3.1.5"
       sources."@types/express-4.17.8"
-      sources."@types/express-serve-static-core-4.17.19"
+      sources."@types/express-serve-static-core-4.17.20"
       sources."@types/fancy-log-1.3.0"
       sources."@types/glob-7.1.3"
       sources."@types/hls.js-0.13.1"
@@ -76054,7 +76505,7 @@ in
         ];
       })
       sources."bytes-3.1.0"
-      (sources."cacache-15.0.6" // {
+      (sources."cacache-15.2.0" // {
         dependencies = [
           sources."chownr-2.0.0"
           sources."fs-minipass-2.1.0"
@@ -76244,7 +76695,7 @@ in
       sources."dir-glob-3.0.1"
       sources."diskusage-1.1.3"
       sources."domain-browser-1.2.0"
-      sources."dotenv-8.2.0"
+      sources."dotenv-8.6.0"
       sources."duplexer3-0.1.4"
       (sources."duplexify-3.7.1" // {
         dependencies = [
@@ -76266,7 +76717,7 @@ in
       sources."encodeurl-1.0.2"
       (sources."encoding-0.1.13" // {
         dependencies = [
-          sources."iconv-lite-0.6.2"
+          sources."iconv-lite-0.6.3"
         ];
       })
       sources."end-of-stream-1.4.4"
@@ -76389,7 +76840,7 @@ in
       sources."for-own-1.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       (sources."from2-2.3.0" // {
@@ -76429,7 +76880,7 @@ in
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       (sources."glob-stream-6.1.0" // {
         dependencies = [
@@ -76532,7 +76983,7 @@ in
       sources."ieee754-1.2.1"
       sources."iferr-0.1.5"
       sources."ignore-5.1.8"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."indexof-0.0.1"
@@ -76550,7 +77001,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-dir-1.0.0"
@@ -76817,9 +77268,9 @@ in
         ];
       })
       sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."now-and-later-2.0.1"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -76847,7 +77298,7 @@ in
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
       sources."object.reduce-1.0.1"
-      sources."office-ui-fabric-react-7.168.0"
+      sources."office-ui-fabric-react-7.170.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -76948,7 +77399,7 @@ in
       sources."path-dirname-1.0.2"
       sources."path-exists-2.1.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
       sources."path-to-regexp-0.1.7"
@@ -76966,7 +77417,7 @@ in
       sources."pg-protocol-1.5.0"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.4"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-2.3.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
@@ -76989,7 +77440,7 @@ in
       sources."promise-inflight-1.0.1"
       sources."promise-queue-2.2.5"
       sources."prop-types-15.7.2"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."prr-1.0.1"
       sources."psl-1.8.0"
       (sources."public-encrypt-4.0.3" // {
@@ -77074,7 +77525,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      (sources."sass-1.32.10" // {
+      (sources."sass-1.34.0" // {
         dependencies = [
           sources."anymatch-3.1.2"
           sources."binary-extensions-2.2.0"
@@ -77175,7 +77626,7 @@ in
       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.9"
       sources."split-string-3.1.0"
       sources."split2-3.2.2"
       sources."sprintf-js-1.0.3"
@@ -77259,7 +77710,7 @@ in
           sources."yallist-3.1.1"
         ];
       })
-      (sources."terser-5.6.1" // {
+      (sources."terser-5.7.0" // {
         dependencies = [
           sources."source-map-0.7.3"
         ];
@@ -77349,7 +77800,7 @@ in
       })
       sources."url-join-4.0.1"
       sources."url-parse-lax-3.0.0"
-      sources."url-toolkit-2.2.1"
+      sources."url-toolkit-2.2.2"
       sources."use-3.1.1"
       sources."util-0.11.1"
       sources."util-deprecate-1.0.2"
@@ -77444,18 +77895,18 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."y18n-3.2.2"
       sources."yallist-4.0.0"
-      (sources."yargs-7.1.1" // {
+      (sources."yargs-7.1.2" // {
         dependencies = [
           sources."is-fullwidth-code-point-1.0.0"
           sources."string-width-1.0.2"
         ];
       })
-      sources."yargs-parser-5.0.0-security.0"
+      sources."yargs-parser-5.0.1"
       sources."yeast-0.1.2"
       sources."yocto-queue-0.1.0"
     ];
@@ -77490,20 +77941,21 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.24.0";
+    version = "7.27.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz";
-      sha512 = "k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.27.0.tgz";
+      sha512 = "JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      (sources."@eslint/eslintrc-0.4.0" // {
+      (sources."@eslint/eslintrc-0.4.1" // {
         dependencies = [
           sources."globals-12.4.0"
         ];
@@ -77518,9 +77970,8 @@ in
       sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -77538,14 +77989,14 @@ in
       sources."doctrine-3.0.0"
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
-      sources."escape-string-regexp-1.0.5"
+      sources."escape-string-regexp-4.0.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
         ];
       })
-      sources."eslint-visitor-keys-2.0.0"
+      sources."eslint-visitor-keys-2.1.0"
       (sources."espree-7.3.1" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
@@ -77571,39 +78022,31 @@ in
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
-      (sources."globals-13.8.0" // {
+      (sources."globals-13.9.0" // {
         dependencies = [
           sources."type-fest-0.20.2"
         ];
       })
-      sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
-      sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
+      sources."lodash.merge-4.6.2"
       sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
@@ -77636,9 +78079,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.1.0" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.1.0"
+          sources."ajv-8.5.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -77665,22 +78108,23 @@ in
   eslint_d = nodeEnv.buildNodePackage {
     name = "eslint_d";
     packageName = "eslint_d";
-    version = "10.0.4";
+    version = "10.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-10.0.4.tgz";
-      sha512 = "DEJaGxP6VDs3byYKQYw6Py8l2b1KH9S5vUo4IjvhWIEcdo5gjNkJjjzUCoExTIb0Bo7/GbKyNRI/dctUQ5f+7w==";
+      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-10.1.3.tgz";
+      sha512 = "B8ESWH1KrLNgV0CR9r/Mc4lbgArnbWIuHnHrJlmuWx+02UriPXNnk4+nNFakzXHRh/sTHeCA4LiArkSfIqsfsw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
           sources."has-flag-3.0.0"
           sources."supports-color-5.5.0"
         ];
       })
-      (sources."@eslint/eslintrc-0.4.0" // {
+      (sources."@eslint/eslintrc-0.4.1" // {
         dependencies = [
           sources."globals-12.4.0"
         ];
@@ -77695,9 +78139,8 @@ in
       sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -77708,22 +78151,22 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."concat-map-0.0.1"
-      sources."core_d-3.0.0"
+      sources."core_d-3.2.0"
       sources."cross-spawn-7.0.3"
       sources."debug-4.3.2"
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
-      sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.24.0"
+      sources."escape-string-regexp-4.0.0"
+      sources."eslint-7.27.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
         ];
       })
-      sources."eslint-visitor-keys-2.0.0"
+      sources."eslint-visitor-keys-2.1.0"
       (sources."espree-7.3.1" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
@@ -77749,39 +78192,31 @@ in
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
-      (sources."globals-13.8.0" // {
+      (sources."globals-13.9.0" // {
         dependencies = [
           sources."type-fest-0.20.2"
         ];
       })
-      sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
-      sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
+      sources."lodash.merge-4.6.2"
       sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
@@ -77815,9 +78250,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-8.1.1"
-      (sources."table-6.1.0" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.1.0"
+          sources."ajv-8.5.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -77861,70 +78296,70 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "4.4.1";
+    version = "4.5.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.4.1.tgz";
-      sha512 = "yJS0aHxzkaKmd55hppBxn+s7KCxRXFbqlZF5r2v2eE3vmLlDEnPWI8WQ//algAZO52nYCJtZBOa2EswESdK66g==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.5.2.tgz";
+      sha512 = "r6SeIMk2ZP1/rSKGcXquiQp/A7MGAmJvG0otmJhlO5ypdYXfAJ1fhEJIqt7ufSngc5RRJ0cjnKZ1WBSyJlJTNA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
+      sources."@babel/compat-data-7.14.4"
       (sources."@babel/core-7.9.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.14.3"
       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.13" // {
+      (sources."@babel/helper-compilation-targets-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.13.11"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
-      (sources."@babel/helper-define-polyfill-provider-0.2.0" // {
+      sources."@babel/helper-create-class-features-plugin-7.14.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.14.3"
+      (sources."@babel/helper-define-polyfill-provider-0.2.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/helper-explode-assignable-expression-7.13.0"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      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.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       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-replace-supers-7.14.4"
       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.12.11"
+      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.13.10"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helpers-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
-      sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
+      sources."@babel/parser-7.14.4"
+      sources."@babel/plugin-proposal-async-generator-functions-7.14.2"
       sources."@babel/plugin-proposal-class-properties-7.12.13"
-      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
+      sources."@babel/plugin-proposal-dynamic-import-7.14.2"
       sources."@babel/plugin-proposal-export-default-from-7.12.13"
-      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-export-namespace-from-7.14.2"
+      sources."@babel/plugin-proposal-json-strings-7.14.2"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.2"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.2"
+      sources."@babel/plugin-proposal-numeric-separator-7.14.2"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.4"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.14.2"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.2"
       sources."@babel/plugin-proposal-private-methods-7.13.0"
       sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
@@ -77946,10 +78381,10 @@ in
       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.12.13"
-      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-block-scoping-7.14.4"
+      sources."@babel/plugin-transform-classes-7.14.4"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.14.4"
       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"
@@ -77958,23 +78393,23 @@ in
       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.13.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-amd-7.14.2"
+      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.13.0"
+      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-assign-7.12.13"
       sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.13.0"
+      sources."@babel/plugin-transform-parameters-7.14.2"
       sources."@babel/plugin-transform-property-literals-7.12.13"
-      sources."@babel/plugin-transform-react-display-name-7.12.13"
-      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/plugin-transform-react-display-name-7.14.2"
+      sources."@babel/plugin-transform-react-jsx-7.14.3"
       sources."@babel/plugin-transform-react-jsx-self-7.12.13"
-      sources."@babel/plugin-transform-react-jsx-source-7.12.13"
+      sources."@babel/plugin-transform-react-jsx-source-7.14.2"
       sources."@babel/plugin-transform-regenerator-7.13.15"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
-      (sources."@babel/plugin-transform-runtime-7.13.15" // {
+      (sources."@babel/plugin-transform-runtime-7.14.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -77984,7 +78419,7 @@ in
       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-typescript-7.13.0"
+      sources."@babel/plugin-transform-typescript-7.14.4"
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
       (sources."@babel/preset-env-7.12.17" // {
@@ -77994,22 +78429,22 @@ in
       })
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.12.17"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.14.0"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
-      sources."@expo/apple-utils-0.0.0-alpha.17"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
+      sources."@expo/apple-utils-0.0.0-alpha.20"
       sources."@expo/bunyan-4.0.0"
-      sources."@expo/config-3.3.36"
-      sources."@expo/config-plugins-1.0.26"
-      sources."@expo/config-types-40.0.0-beta.2"
-      (sources."@expo/configure-splash-screen-0.3.4" // {
+      sources."@expo/config-4.0.2"
+      sources."@expo/config-plugins-2.0.2"
+      sources."@expo/config-types-41.0.0"
+      (sources."@expo/configure-splash-screen-0.4.0" // {
         dependencies = [
           sources."commander-5.1.0"
           sources."pngjs-5.0.0"
         ];
       })
-      (sources."@expo/dev-server-0.1.62" // {
+      (sources."@expo/dev-server-0.1.72" // {
         dependencies = [
           sources."body-parser-1.19.0"
           sources."bytes-3.1.0"
@@ -78018,13 +78453,15 @@ in
           sources."iconv-lite-0.4.24"
           sources."inherits-2.0.3"
           sources."ms-2.0.0"
+          sources."open-8.2.0"
           sources."qs-6.7.0"
           sources."raw-body-2.4.0"
           sources."setprototypeof-1.1.1"
           sources."statuses-1.5.0"
+          sources."temp-dir-2.0.0"
         ];
       })
-      sources."@expo/dev-tools-0.13.92"
+      sources."@expo/dev-tools-0.13.102"
       (sources."@expo/devcert-1.0.0" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -78032,33 +78469,35 @@ in
           sources."sudo-prompt-8.2.5"
         ];
       })
-      (sources."@expo/image-utils-0.3.12" // {
+      (sources."@expo/image-utils-0.3.14" // {
         dependencies = [
+          sources."mime-2.5.2"
           sources."tempy-0.3.0"
         ];
       })
-      (sources."@expo/json-file-8.2.28" // {
+      (sources."@expo/json-file-8.2.30" // {
         dependencies = [
           sources."@babel/code-frame-7.10.4"
           sources."json5-1.0.1"
         ];
       })
-      sources."@expo/metro-config-0.1.62"
-      sources."@expo/osascript-2.0.25"
-      (sources."@expo/package-manager-0.0.40" // {
+      sources."@expo/metro-config-0.1.72"
+      sources."@expo/osascript-2.0.28"
+      (sources."@expo/package-manager-0.0.43" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
           sources."semver-5.7.1"
         ];
       })
-      (sources."@expo/plist-0.0.12" // {
+      (sources."@expo/plist-0.0.13" // {
         dependencies = [
           sources."xmlbuilder-14.0.0"
         ];
       })
+      sources."@expo/prebuild-config-1.0.3"
       sources."@expo/results-1.0.0"
-      (sources."@expo/schemer-1.3.27" // {
+      (sources."@expo/schemer-1.3.29" // {
         dependencies = [
           sources."ajv-5.5.2"
           sources."fast-deep-equal-1.1.0"
@@ -78067,13 +78506,13 @@ in
       })
       sources."@expo/simple-spinner-1.0.2"
       sources."@expo/spawn-async-1.5.0"
-      (sources."@expo/webpack-config-0.12.66" // {
+      (sources."@expo/webpack-config-0.12.76" // {
         dependencies = [
           sources."@babel/runtime-7.9.0"
           sources."react-refresh-0.8.3"
         ];
       })
-      (sources."@expo/xcpretty-2.0.0" // {
+      (sources."@expo/xcpretty-2.0.1" // {
         dependencies = [
           sources."@babel/code-frame-7.10.4"
         ];
@@ -78128,8 +78567,7 @@ in
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
-      sources."@npmcli/ci-detect-1.3.0"
-      (sources."@npmcli/git-2.0.8" // {
+      (sources."@npmcli/git-2.0.9" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.5"
@@ -78145,7 +78583,7 @@ in
       })
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@pmmmwh/react-refresh-webpack-plugin-0.3.3"
       sources."@react-native-community/cli-debugger-ui-4.13.1"
       (sources."@react-native-community/cli-server-api-4.9.0" // {
@@ -78157,22 +78595,21 @@ in
       (sources."@react-native-community/cli-tools-4.13.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."array-filter-0.0.1"
           sources."chalk-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."is-wsl-1.1.0"
+          sources."mime-2.5.2"
           sources."open-6.4.0"
           sources."shell-quote-1.6.1"
           sources."supports-color-7.2.0"
         ];
       })
       sources."@segment/loosely-validate-event-2.0.0"
-      sources."@sindresorhus/is-4.0.0"
+      sources."@sindresorhus/is-4.0.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@tootallnate/once-1.1.2"
-      sources."@types/anymatch-1.3.1"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/glob-7.1.3"
       sources."@types/html-minifier-terser-5.1.1"
@@ -78194,7 +78631,7 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.27" // {
+      (sources."@types/webpack-4.41.29" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -78271,7 +78708,7 @@ in
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
-      sources."array-filter-1.0.0"
+      sources."array-filter-0.0.1"
       sources."array-flatten-1.1.1"
       sources."array-map-0.0.0"
       sources."array-reduce-0.0.0"
@@ -78299,7 +78736,6 @@ in
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."available-typed-arrays-1.0.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
@@ -78312,20 +78748,19 @@ in
         ];
       })
       sources."babel-plugin-dynamic-import-node-2.3.3"
-      (sources."babel-plugin-polyfill-corejs2-0.2.0" // {
+      (sources."babel-plugin-polyfill-corejs2-0.2.2" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.2.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.0"
+      sources."babel-plugin-polyfill-corejs3-0.2.2"
+      sources."babel-plugin-polyfill-regenerator-0.2.2"
       sources."babel-plugin-syntax-object-rest-spread-6.13.0"
       sources."babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0"
       sources."babel-plugin-transform-object-rest-spread-6.26.0"
-      sources."babel-preset-fbjs-3.3.0"
+      sources."babel-preset-fbjs-3.4.0"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
-          sources."core-js-2.6.12"
           sources."regenerator-runtime-0.11.1"
         ];
       })
@@ -78358,7 +78793,6 @@ in
       (sources."bonjour-3.5.0" // {
         dependencies = [
           sources."array-flatten-2.1.2"
-          sources."deep-equal-1.1.1"
         ];
       })
       sources."boolbase-1.0.0"
@@ -78384,7 +78818,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."buffer-5.7.1"
       sources."buffer-equal-0.0.1"
       sources."buffer-from-1.1.1"
@@ -78393,7 +78827,7 @@ in
       sources."builtin-status-codes-3.0.0"
       sources."builtins-1.0.3"
       sources."bytes-3.0.0"
-      (sources."cacache-15.0.6" // {
+      (sources."cacache-15.2.0" // {
         dependencies = [
           sources."minipass-3.1.3"
           sources."mkdirp-1.0.4"
@@ -78415,9 +78849,9 @@ in
       })
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."caseless-0.12.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -78430,7 +78864,7 @@ in
       sources."chokidar-3.5.1"
       sources."chownr-2.0.0"
       sources."chrome-trace-event-1.0.3"
-      sources."ci-info-3.1.1"
+      sources."ci-info-3.2.0"
       sources."cipher-base-1.0.4"
       (sources."class-utils-0.3.6" // {
         dependencies = [
@@ -78548,8 +78982,8 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."core-js-3.10.1"
-      (sources."core-js-compat-3.10.1" // {
+      sources."core-js-2.6.12"
+      (sources."core-js-compat-3.13.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -78625,13 +79059,14 @@ in
           sources."mimic-response-3.1.0"
         ];
       })
-      sources."deep-equal-2.0.5"
+      sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
       sources."deep-scope-analyser-1.7.0"
       sources."deepmerge-4.2.2"
       sources."default-gateway-4.2.0"
       sources."defaults-1.0.3"
       sources."defer-to-connect-2.0.1"
+      sources."define-lazy-prop-2.0.0"
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       (sources."del-6.0.0" // {
@@ -78645,7 +79080,7 @@ in
       sources."deprecated-decorator-0.1.6"
       sources."des.js-1.0.1"
       sources."destroy-1.0.4"
-      sources."detect-node-2.0.5"
+      sources."detect-node-2.1.0"
       (sources."detect-port-alt-1.1.6" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -78659,10 +79094,10 @@ in
       })
       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."dom-converter-0.2.0"
-      (sources."dom-serializer-1.3.1" // {
+      (sources."dom-serializer-1.3.2" // {
         dependencies = [
           sources."domhandler-4.2.0"
         ];
@@ -78688,7 +79123,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -78699,7 +79134,7 @@ in
       sources."encodeurl-1.0.2"
       (sources."encoding-0.1.13" // {
         dependencies = [
-          sources."iconv-lite-0.6.2"
+          sources."iconv-lite-0.6.3"
         ];
       })
       sources."end-of-stream-1.4.4"
@@ -78722,8 +79157,7 @@ in
       })
       sources."error-stack-parser-2.0.6"
       sources."errorhandler-1.5.1"
-      sources."es-abstract-1.18.0"
-      sources."es-get-iterator-1.1.2"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -78770,7 +79204,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expo-pwa-0.0.72" // {
+      (sources."expo-pwa-0.0.82" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -78816,9 +79250,8 @@ in
       sources."find-up-5.0.0"
       sources."find-yarn-workspace-root-2.0.0"
       sources."flush-write-stream-1.1.1"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."for-in-1.0.2"
-      sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       (sources."fork-ts-checker-webpack-plugin-4.1.6" // {
         dependencies = [
@@ -78844,7 +79277,7 @@ in
         ];
       })
       sources."form-data-2.5.1"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."freeport-async-2.0.0"
       sources."fresh-0.5.2"
@@ -78976,7 +79409,7 @@ in
       sources."ieee754-1.2.1"
       sources."iferr-0.1.5"
       sources."ignore-5.1.8"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."immer-8.0.1"
       (sources."import-fresh-2.0.0" // {
         dependencies = [
@@ -79000,15 +79433,15 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.3.2"
-      sources."is-bigint-1.0.1"
+      sources."is-bigint-1.0.2"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.0"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
       sources."is-docker-2.2.1"
@@ -79024,10 +79457,9 @@ in
         ];
       })
       sources."is-lambda-1.0.1"
-      sources."is-map-2.0.2"
       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.5"
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       (sources."is-path-in-cwd-2.1.0" // {
@@ -79060,23 +79492,19 @@ in
           sources."responselike-1.0.2"
         ];
       })
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-regexp-1.0.0"
       sources."is-resolvable-1.1.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-root-2.1.0"
-      sources."is-set-2.0.2"
       sources."is-stream-2.0.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.5"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-valid-path-0.1.1"
-      sources."is-weakmap-2.0.1"
-      sources."is-weakset-2.0.1"
       sources."is-windows-1.0.2"
       sources."is-wsl-2.2.0"
-      sources."isarray-2.0.5"
+      sources."isarray-1.0.0"
       sources."isemail-3.2.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
@@ -79127,11 +79555,7 @@ in
       sources."last-call-webpack-plugin-3.0.0"
       sources."latest-version-5.1.0"
       sources."leven-3.1.0"
-      (sources."load-bmfont-1.4.1" // {
-        dependencies = [
-          sources."mime-1.6.0"
-        ];
-      })
+      sources."load-bmfont-1.4.1"
       sources."loader-runner-2.4.0"
       sources."loader-utils-2.0.0"
       sources."locate-path-6.0.0"
@@ -79195,7 +79619,7 @@ in
           sources."bn.js-4.12.0"
         ];
       })
-      sources."mime-2.5.2"
+      sources."mime-1.4.1"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
@@ -79299,15 +79723,14 @@ in
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."buffer-4.9.2"
-          sources."isarray-1.0.0"
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."normalize-url-4.5.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       (sources."npm-package-arg-6.1.0" // {
@@ -79316,7 +79739,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."npm-packlist-2.1.5"
+      sources."npm-packlist-2.2.2"
       (sources."npm-pick-manifest-6.1.1" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
@@ -79324,7 +79747,7 @@ in
           sources."semver-7.3.5"
         ];
       })
-      (sources."npm-registry-fetch-9.0.0" // {
+      (sources."npm-registry-fetch-10.1.2" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
           sources."minipass-3.1.3"
@@ -79335,6 +79758,7 @@ in
       sources."npm-run-path-2.0.2"
       sources."npmlog-4.1.2"
       sources."nth-check-1.0.2"
+      sources."nullthrows-1.1.1"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."ob1-0.59.0"
@@ -79352,15 +79776,15 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       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.entries-1.1.3"
+      sources."object.entries-1.1.4"
       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."omggif-1.0.10"
       sources."on-finished-2.3.0"
@@ -79373,7 +79797,7 @@ in
           sources."is-wsl-1.1.0"
         ];
       })
-      sources."optimize-css-assets-webpack-plugin-5.0.4"
+      sources."optimize-css-assets-webpack-plugin-5.0.6"
       sources."options-0.0.6"
       (sources."ora-3.4.0" // {
         dependencies = [
@@ -79388,7 +79812,7 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-any-2.1.0"
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
       sources."p-limit-3.1.0"
       sources."p-locate-5.0.0"
@@ -79421,7 +79845,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."pacote-11.3.1" // {
+      (sources."pacote-11.3.3" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
           sources."minipass-3.1.3"
@@ -79464,13 +79888,13 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."pbkdf2-3.1.2"
       sources."performance-now-2.1.0"
       sources."phin-2.9.3"
-      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"
@@ -79617,7 +80041,7 @@ in
         ];
       })
       sources."postcss-safe-parser-4.0.2"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.6"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
@@ -79643,7 +80067,7 @@ in
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
       sources."prompts-2.4.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."prr-1.0.1"
       sources."psl-1.8.0"
       (sources."public-encrypt-4.0.3" // {
@@ -79704,11 +80128,7 @@ in
       sources."read-chunk-3.2.0"
       sources."read-last-lines-1.6.0"
       sources."read-package-json-fast-2.0.2"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-        ];
-      })
+      sources."readable-stream-2.3.7"
       sources."readdirp-3.5.0"
       sources."recursive-readdir-2.2.2"
       sources."regenerate-1.4.2"
@@ -79796,12 +80216,11 @@ in
       sources."sax-1.2.4"
       sources."schema-utils-2.7.1"
       sources."select-hose-2.0.0"
-      sources."selfsigned-1.10.8"
+      sources."selfsigned-1.10.11"
       sources."semver-7.3.2"
       (sources."send-0.16.2" // {
         dependencies = [
           sources."debug-2.6.9"
-          sources."mime-1.4.1"
           sources."ms-2.0.0"
         ];
       })
@@ -79830,7 +80249,6 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.2"
-      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       sources."simple-plist-1.1.1"
       sources."simple-swizzle-0.2.2"
@@ -79841,7 +80259,7 @@ in
           sources."uuid-2.0.3"
         ];
       })
-      sources."slugify-1.5.0"
+      sources."slugify-1.5.3"
       sources."smart-buffer-4.1.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -79881,7 +80299,7 @@ in
       (sources."sockjs-client-1.4.0" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."faye-websocket-0.11.3"
+          sources."faye-websocket-0.11.4"
         ];
       })
       sources."socks-2.6.1"
@@ -80079,7 +80497,6 @@ in
             ];
           })
           sources."has-values-0.1.4"
-          sources."isarray-1.0.0"
         ];
       })
       sources."untildify-3.0.3"
@@ -80171,7 +80588,11 @@ in
         ];
       })
       sources."webpack-deep-scope-plugin-1.6.0"
-      sources."webpack-dev-middleware-3.7.3"
+      (sources."webpack-dev-middleware-3.7.3" // {
+        dependencies = [
+          sources."mime-2.5.2"
+        ];
+      })
       (sources."webpack-dev-server-3.11.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -80274,9 +80695,7 @@ in
       sources."websocket-extensions-0.1.4"
       sources."which-1.3.1"
       sources."which-boxed-primitive-1.0.2"
-      sources."which-collection-1.0.1"
       sources."which-module-2.0.0"
-      sources."which-typed-array-1.1.4"
       (sources."wide-align-1.1.3" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -80332,7 +80751,7 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      (sources."xdl-59.0.32" // {
+      (sources."xdl-59.0.42" // {
         dependencies = [
           sources."chownr-1.1.4"
           sources."fs-minipass-1.2.7"
@@ -80453,7 +80872,7 @@ in
       sources."indent-string-2.1.0"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-finite-1.1.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -80506,7 +80925,7 @@ in
       sources."os-tmpdir-1.0.2"
       sources."parse-json-2.2.0"
       sources."path-exists-2.1.0"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-1.1.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
@@ -80536,7 +80955,7 @@ in
       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.9"
       sources."sshpk-1.16.1"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
@@ -80572,12 +80991,23 @@ in
   fauna-shell = nodeEnv.buildNodePackage {
     name = "fauna-shell";
     packageName = "fauna-shell";
-    version = "0.12.3";
+    version = "0.12.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-0.12.3.tgz";
-      sha512 = "2K8kh4MAteqj7kOnUq8Goux4Zw0oIZEGN1xoW14cGxrOTDRXvBm3eBndI9gt24rSC8h7T8qdIeLY7O9hn6LSUg==";
+      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-0.12.4.tgz";
+      sha512 = "KqaoGSmcIBLY6Vr1wWRMu0acuLUpxpKEtjekdwYs+JxMk74vRa8Mwxd96SmEoBat28cPCoLAPfvDyEtzUzkjEg==";
     };
     dependencies = [
+      sources."@babel/code-frame-7.12.13"
+      sources."@babel/generator-7.14.3"
+      sources."@babel/helper-function-name-7.14.2"
+      sources."@babel/helper-get-function-arity-7.12.13"
+      sources."@babel/helper-split-export-declaration-7.12.13"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
+      sources."@babel/template-7.12.13"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       (sources."@heroku-cli/color-1.1.14" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -80596,7 +81026,7 @@ in
           sources."@oclif/plugin-help-3.2.2"
           sources."ansi-regex-3.0.0"
           sources."ansi-styles-3.2.1"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
           sources."has-flag-4.0.0"
@@ -80635,8 +81065,17 @@ in
       })
       sources."@oclif/screen-1.0.4"
       sources."@sindresorhus/is-0.7.0"
-      sources."abortcontroller-polyfill-1.7.1"
+      sources."abort-controller-3.0.0"
       sources."ajv-6.12.6"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
@@ -80655,6 +81094,7 @@ in
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
+      sources."babel-eslint-10.1.0"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -80664,6 +81104,13 @@ in
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bluebird-3.7.2"
+      (sources."boxen-5.0.1" // {
+        dependencies = [
+          sources."chalk-4.1.1"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."btoa-lite-1.0.0"
@@ -80674,6 +81121,7 @@ in
         ];
       })
       sources."call-me-maybe-1.0.1"
+      sources."camelcase-6.2.0"
       sources."cardinal-2.1.1"
       sources."caseless-0.12.0"
       (sources."chalk-2.4.2" // {
@@ -80702,6 +81150,7 @@ in
         ];
       })
       sources."clean-stack-3.0.1"
+      sources."cli-boxes-2.2.1"
       sources."cli-table-0.3.6"
       (sources."cli-ux-4.9.3" // {
         dependencies = [
@@ -80742,15 +81191,23 @@ in
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
       sources."dir-glob-3.0.1"
-      sources."dotenv-8.2.0"
+      sources."dotenv-8.6.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-8.0.0"
       sources."escape-string-regexp-4.0.0"
-      sources."escodegen-1.14.3"
+      (sources."escodegen-1.14.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."eslint-config-prettier-8.3.0"
+      sources."eslint-plugin-prettier-3.4.0"
+      sources."eslint-visitor-keys-1.3.0"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
+      sources."event-target-shim-5.0.1"
       sources."execa-0.10.0"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -80787,11 +81244,18 @@ in
       sources."extract-stack-1.0.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
+      sources."fast-diff-1.2.0"
       sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fastq-1.11.0"
-      sources."faunadb-4.0.3"
+      (sources."faunadb-4.3.0" // {
+        dependencies = [
+          sources."chalk-4.1.1"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
       sources."fill-range-7.0.1"
       sources."fn-annotate-1.2.0"
       sources."for-in-1.0.2"
@@ -80801,12 +81265,14 @@ in
       sources."from2-2.3.0"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.3.0"
+      sources."globals-11.12.0"
       (sources."globby-8.0.2" // {
         dependencies = [
           sources."@nodelib/fs.stat-1.1.3"
@@ -80841,6 +81307,7 @@ in
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
+      sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
@@ -80876,6 +81343,7 @@ in
       sources."into-stream-3.1.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-buffer-1.1.6"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-docker-2.2.1"
@@ -80897,7 +81365,9 @@ in
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
+      sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
+      sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -80967,13 +81437,16 @@ in
       sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
+      sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-3.0.0"
       sources."posix-character-classes-0.1.1"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
+      sources."prettier-2.3.0"
+      sources."prettier-linter-helpers-1.0.0"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
@@ -80992,6 +81465,7 @@ in
       sources."request-2.88.2"
       sources."request-promise-4.2.6"
       sources."request-promise-core-1.1.4"
+      sources."resolve-1.20.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
       sources."ret-0.1.15"
@@ -81028,7 +81502,6 @@ in
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
           sources."ms-2.0.0"
-          sources."source-map-0.5.7"
         ];
       })
       (sources."snapdragon-node-2.1.1" // {
@@ -81042,7 +81515,7 @@ in
         ];
       })
       sources."sort-keys-2.0.0"
-      sources."source-map-0.6.1"
+      sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.1"
       sources."split-string-3.1.0"
@@ -81081,6 +81554,7 @@ in
         ];
       })
       sources."timed-out-4.0.1"
+      sources."to-fast-properties-2.0.0"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -81094,6 +81568,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
+      sources."type-fest-0.20.2"
       sources."union-value-1.0.1"
       sources."universalify-0.1.2"
       (sources."unset-value-1.0.0" // {
@@ -81134,10 +81609,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "9.10.0";
+    version = "9.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.10.0.tgz";
-      sha512 = "0HoQEB6K5WiD/p/ca7KxzGZHCxtuVdck888N924TPkjkZ6YxYT8xJtuoKXCLRjJgw4yovJ/LnxZoU66w8JD1cQ==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.12.0.tgz";
+      sha512 = "rPk4JyzPaSHyHQDGCh0/U63MW2nXgnZ4h0IRE2EjFHRz+KyNl/hakGX7EQKVej5HpMKFhWRjGOvDHn1PXooQgw==";
     };
     dependencies = [
       sources."@apidevtools/json-schema-ref-parser-9.0.7"
@@ -81146,18 +81621,19 @@ in
       sources."@google-cloud/precise-date-2.0.3"
       sources."@google-cloud/projectify-2.0.1"
       sources."@google-cloud/promisify-2.0.3"
-      (sources."@google-cloud/pubsub-2.11.0" // {
+      (sources."@google-cloud/pubsub-2.12.0" // {
         dependencies = [
-          sources."google-auth-library-7.0.4"
+          sources."google-auth-library-7.1.0"
         ];
       })
-      (sources."@grpc/grpc-js-1.2.12" // {
+      sources."@grpc/grpc-js-1.3.2"
+      sources."@grpc/proto-loader-0.6.2"
+      sources."@jsdevtools/ono-7.1.3"
+      (sources."@npmcli/move-file-1.1.2" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."mkdirp-1.0.4"
         ];
       })
-      sources."@grpc/proto-loader-0.5.6"
-      sources."@jsdevtools/ono-7.1.3"
       sources."@opentelemetry/api-0.18.1"
       sources."@opentelemetry/semantic-conventions-0.18.2"
       sources."@protobufjs/aspromise-1.1.2"
@@ -81178,21 +81654,31 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.7"
       sources."agent-base-6.0.2"
-      sources."ajv-6.12.6"
+      sources."agentkeepalive-4.1.4"
+      sources."aggregate-error-3.1.0"
+      (sources."ajv-6.12.6" // {
+        dependencies = [
+          sources."json-schema-traverse-0.4.1"
+        ];
+      })
       (sources."ansi-align-3.0.0" // {
         dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
       sources."ansi-escapes-3.2.0"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-styles-3.2.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
       sources."ansicolors-0.3.2"
       sources."anymatch-3.1.2"
       sources."aproba-1.2.0"
@@ -81246,16 +81732,8 @@ in
       })
       (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
           sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.2"
-          sources."strip-ansi-6.0.0"
           sources."supports-color-7.2.0"
         ];
       })
@@ -81267,6 +81745,12 @@ in
       sources."buffer-indexof-polyfill-1.0.2"
       sources."buffers-0.1.1"
       sources."bytes-3.1.0"
+      (sources."cacache-15.2.0" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+          sources."tar-6.1.0"
+        ];
+      })
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -81278,31 +81762,48 @@ in
       sources."cardinal-2.1.1"
       sources."caseless-0.12.0"
       sources."chainsaw-0.1.0"
-      sources."chalk-2.4.2"
+      (sources."chalk-2.4.2" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+        ];
+      })
       sources."chardet-0.7.0"
       sources."chokidar-3.5.1"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
       sources."cjson-0.3.3"
+      sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.1"
-      sources."cli-color-1.4.0"
+      (sources."cli-color-1.4.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+        ];
+      })
       sources."cli-cursor-2.1.0"
       sources."cli-spinners-2.6.0"
       sources."cli-table-0.3.6"
       sources."cli-width-2.2.1"
+      sources."cliui-7.0.4"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
-      sources."color-3.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      (sources."color-3.0.0" // {
+        dependencies = [
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+        ];
+      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."color-string-1.5.5"
       sources."colors-1.0.3"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
       sources."compare-semver-1.1.0"
-      sources."compress-commons-4.1.0"
+      sources."compress-commons-4.1.1"
       sources."compressible-2.0.18"
       (sources."compression-1.7.4" // {
         dependencies = [
@@ -81377,15 +81878,22 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.3"
+        ];
+      })
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.1"
+      sources."err-code-2.0.3"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
+      sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
@@ -81397,12 +81905,12 @@ in
       sources."event-emitter-0.3.5"
       sources."event-target-shim-5.0.1"
       sources."events-listener-1.1.0"
-      (sources."exegesis-2.5.6" // {
+      (sources."exegesis-2.5.7" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
       })
-      sources."exegesis-express-2.0.0"
+      sources."exegesis-express-2.0.1"
       sources."exit-code-1.0.2"
       sources."exit-on-epipe-1.0.1"
       (sources."express-4.17.1" // {
@@ -81433,7 +81941,7 @@ in
       sources."fecha-4.2.1"
       sources."figures-2.0.0"
       sources."file-uri-to-path-2.0.0"
-      sources."filesize-6.2.5"
+      sources."filesize-6.3.0"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
@@ -81455,14 +81963,10 @@ in
       sources."fn.name-1.1.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-constants-1.0.0"
-      (sources."fs-extra-0.23.1" // {
-        dependencies = [
-          sources."rimraf-2.7.1"
-        ];
-      })
+      sources."fs-extra-5.0.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
@@ -81480,30 +81984,31 @@ in
       })
       (sources."gauge-2.7.4" // {
         dependencies = [
+          sources."ansi-regex-2.1.1"
           sources."is-fullwidth-code-point-1.0.0"
           sources."string-width-1.0.2"
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."gaxios-4.2.0"
+      sources."gaxios-4.3.0"
       sources."gcp-metadata-4.2.1"
+      sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
       (sources."get-uri-3.0.2" // {
         dependencies = [
           sources."fs-extra-8.1.0"
-          sources."jsonfile-4.0.0"
         ];
       })
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."glob-slash-1.0.0"
       sources."glob-slasher-1.0.1"
       sources."global-dirs-2.1.0"
       sources."google-auth-library-6.1.6"
-      (sources."google-gax-2.11.2" // {
+      (sources."google-gax-2.14.1" // {
         dependencies = [
-          sources."google-auth-library-7.0.4"
+          sources."google-auth-library-7.1.0"
         ];
       })
       sources."google-p12-pem-3.0.3"
@@ -81512,7 +82017,11 @@ in
       sources."gtoken-5.2.1"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
-      sources."has-ansi-2.0.0"
+      (sources."has-ansi-2.0.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+        ];
+      })
       sources."has-flag-3.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
@@ -81526,14 +82035,32 @@ in
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
+      sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.7"
-      sources."inquirer-6.3.1"
+      (sources."inquirer-6.3.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          (sources."string-width-2.1.1" // {
+            dependencies = [
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+          (sources."strip-ansi-5.2.0" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+            ];
+          })
+        ];
+      })
       sources."install-artifact-from-github-1.2.0"
       sources."ip-1.1.5"
       sources."ip-regex-4.3.0"
@@ -81542,9 +82069,10 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-ci-2.0.0"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.3.2"
+      sources."is-lambda-1.0.1"
       sources."is-npm-4.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
@@ -81556,7 +82084,7 @@ in
       sources."is-url-1.2.4"
       sources."is-wsl-1.1.0"
       sources."is-yarn-global-0.3.0"
-      sources."is2-2.0.6"
+      sources."is2-2.0.7"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
@@ -81567,11 +82095,11 @@ in
       sources."json-bigint-1.0.0"
       sources."json-buffer-3.0.0"
       sources."json-parse-helpfulerror-1.0.3"
-      sources."json-ptr-1.3.2"
+      sources."json-ptr-2.2.0"
       sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-2.4.0"
+      sources."jsonfile-4.0.0"
       sources."jsonparse-1.3.1"
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
@@ -81632,6 +82160,7 @@ in
           sources."semver-6.3.0"
         ];
       })
+      sources."make-fetch-happen-8.0.14"
       sources."marked-0.7.0"
       sources."marked-terminal-3.3.0"
       sources."media-typer-0.3.0"
@@ -81650,6 +82179,11 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-fetch-1.3.3"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-pipeline-1.2.4"
+      sources."minipass-sized-1.0.3"
       sources."minizlib-2.1.2"
       sources."mkdirp-0.5.5"
       (sources."morgan-1.10.0" // {
@@ -81674,7 +82208,7 @@ in
       sources."node-emoji-1.10.0"
       sources."node-fetch-2.6.1"
       sources."node-forge-0.10.0"
-      (sources."node-gyp-7.1.2" // {
+      (sources."node-gyp-8.1.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.5"
@@ -81684,23 +82218,30 @@ in
       })
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
+      sources."object-hash-2.2.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
       sources."onetime-2.0.1"
       sources."open-6.4.0"
-      sources."openapi3-ts-1.4.0"
+      sources."openapi3-ts-2.0.1"
       sources."optionator-0.8.3"
-      sources."ora-3.4.0"
+      (sources."ora-3.4.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-defer-3.0.0"
+      sources."p-map-4.0.0"
       sources."pac-proxy-agent-4.1.0"
       sources."pac-resolver-4.2.0"
       (sources."package-json-6.5.0" // {
@@ -81713,7 +82254,7 @@ in
       sources."path-key-2.0.1"
       sources."path-to-regexp-0.1.7"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."async-2.6.3"
@@ -81726,12 +82267,10 @@ in
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-breaker-5.0.0"
-      (sources."protobufjs-6.10.2" // {
-        dependencies = [
-          sources."@types/node-13.13.50"
-        ];
-      })
-      sources."proxy-addr-2.0.6"
+      sources."promise-inflight-1.0.1"
+      sources."promise-retry-2.0.1"
+      sources."protobufjs-6.11.2"
+      sources."proxy-addr-2.0.7"
       (sources."proxy-agent-4.0.1" // {
         dependencies = [
           sources."lru-cache-5.1.1"
@@ -81747,7 +82286,7 @@ in
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
-      sources."re2-1.15.9"
+      sources."re2-1.16.0"
       sources."readable-stream-3.6.0"
       sources."readdir-glob-1.1.1"
       sources."readdirp-3.5.0"
@@ -81759,8 +82298,10 @@ in
           sources."qs-6.5.2"
         ];
       })
+      sources."require-directory-2.1.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
+      sources."retry-0.12.0"
       sources."retry-request-4.1.3"
       sources."rimraf-3.0.2"
       (sources."router-1.3.5" // {
@@ -81811,37 +82352,38 @@ in
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
+      sources."ssri-8.0.1"
       sources."stack-trace-0.0.10"
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.1"
       (sources."string-length-1.0.1" // {
         dependencies = [
+          sources."ansi-regex-2.1.1"
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."string-width-2.1.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
-      (sources."strip-ansi-5.2.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-        ];
-      })
+      sources."strip-ansi-6.0.0"
       sources."strip-json-comments-2.0.1"
       (sources."superstatic-7.1.0" // {
         dependencies = [
+          sources."ansi-regex-2.1.1"
           sources."ansi-styles-2.2.1"
           sources."chalk-1.1.3"
           sources."fs-extra-8.1.0"
+          sources."has-flag-4.0.0"
           sources."isarray-0.0.1"
-          sources."jsonfile-4.0.0"
           sources."path-to-regexp-1.8.0"
           sources."strip-ansi-3.0.1"
           sources."supports-color-2.0.0"
+          (sources."update-notifier-4.1.3" // {
+            dependencies = [
+              sources."ansi-styles-4.3.0"
+              sources."chalk-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
         ];
       })
       sources."supports-color-5.5.0"
@@ -81897,6 +82439,8 @@ in
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
       sources."universal-analytics-0.4.23"
       sources."universalify-0.1.2"
@@ -81908,14 +82452,19 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."update-notifier-4.1.3" // {
+      (sources."update-notifier-5.1.0" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
+          sources."boxen-5.0.1"
+          sources."camelcase-6.2.0"
+          sources."chalk-4.1.1"
+          sources."global-dirs-3.0.0"
           sources."has-flag-4.0.0"
+          sources."ini-2.0.0"
+          sources."is-installed-globally-0.4.0"
+          sources."is-npm-5.0.0"
+          sources."semver-7.3.5"
           sources."supports-color-7.2.0"
+          sources."type-fest-0.20.2"
         ];
       })
       sources."uri-js-4.4.1"
@@ -81929,16 +82478,15 @@ in
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      sources."wide-align-1.1.3"
-      (sources."widest-line-3.1.0" // {
+      (sources."wide-align-1.1.3" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."emoji-regex-8.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.2"
-          sources."strip-ansi-6.0.0"
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
         ];
       })
+      sources."widest-line-3.1.0"
       sources."winston-3.3.3"
       (sources."winston-transport-4.4.0" // {
         dependencies = [
@@ -81948,13 +82496,18 @@ in
         ];
       })
       sources."word-wrap-1.2.3"
+      sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xdg-basedir-4.0.0"
       sources."xregexp-2.0.0"
       sources."xtend-4.0.2"
+      sources."y18n-5.0.8"
       sources."yallist-4.0.0"
+      sources."yaml-1.10.2"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.7"
       sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -81984,12 +82537,12 @@ in
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
-      sources."detect-indent-6.0.0"
+      sources."detect-indent-6.1.0"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-fullwidth-code-point-3.0.0"
@@ -82026,8 +82579,8 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -82047,7 +82600,7 @@ in
       sources."astral-regex-2.0.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
@@ -82067,7 +82620,7 @@ in
       sources."error-ex-1.3.2"
       sources."esc-exit-2.0.2"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-5.0.0"
+      sources."execa-5.0.1"
       sources."external-editor-3.1.0"
       sources."figures-3.2.0"
       sources."find-up-4.1.0"
@@ -82084,7 +82637,7 @@ in
       sources."inquirer-7.3.3"
       sources."inquirer-autocomplete-prompt-1.3.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-stream-2.0.0"
@@ -82124,7 +82677,7 @@ in
       sources."parse-json-5.2.0"
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pid-port-0.1.1"
       (sources."process-exists-4.0.0" // {
         dependencies = [
@@ -82161,7 +82714,7 @@ in
       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.9"
       sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."strip-final-newline-2.0.0"
@@ -82176,7 +82729,7 @@ in
       })
       sources."through-2.3.8"
       sources."tmp-0.0.33"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."tslib-1.14.1"
       sources."type-fest-0.21.3"
       sources."validate-npm-package-license-3.0.4"
@@ -82206,7 +82759,7 @@ in
     dependencies = [
       sources."@types/atob-2.1.2"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/through-0.0.30"
       sources."ajv-6.12.6"
       sources."ansi-escapes-4.3.2"
@@ -82229,7 +82782,7 @@ in
       sources."buffer-to-arraybuffer-0.0.5"
       sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."cli-cursor-3.1.0"
       sources."cli-width-3.0.0"
@@ -82246,7 +82799,7 @@ in
       sources."decompress-response-3.3.0"
       sources."delayed-stream-1.0.0"
       sources."dom-walk-0.1.2"
-      sources."dotenv-8.2.0"
+      sources."dotenv-8.6.0"
       sources."ecc-jsbn-0.1.2"
       sources."elliptic-6.5.4"
       sources."emoji-regex-8.0.0"
@@ -82283,7 +82836,7 @@ in
       sources."immediate-3.0.6"
       sources."inherits-2.0.4"
       sources."inquirer-7.3.3"
-      sources."inversify-5.0.5"
+      sources."inversify-5.1.1"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-function-1.0.2"
@@ -82379,9 +82932,9 @@ in
       sources."utf8-3.0.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      (sources."web3-utils-1.3.5" // {
+      (sources."web3-utils-1.3.6" // {
         dependencies = [
-          sources."underscore-1.9.1"
+          sources."underscore-1.12.1"
         ];
       })
       sources."which-module-2.0.0"
@@ -82408,10 +82961,10 @@ in
   flood = nodeEnv.buildNodePackage {
     name = "flood";
     packageName = "flood";
-    version = "4.5.3";
+    version = "4.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/flood/-/flood-4.5.3.tgz";
-      sha512 = "V/hB+D7kjqtSZTnFR05ZMP59x6vpVh75LDT2nAfwfVL9zVpyjynyK6abFzkMYydtGcKGPwvSqG0gYL8Tqh19sQ==";
+      url = "https://registry.npmjs.org/flood/-/flood-4.6.0.tgz";
+      sha512 = "uio2KGAC9wNNM9wa6BrmIwRunE/AWJNDz9SnP06zHIpIHX9FC0UEHbj2kairn9CmhzhEwprBNYeFh79eyfqxvw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -82426,13 +82979,12 @@ in
   forever = nodeEnv.buildNodePackage {
     name = "forever";
     packageName = "forever";
-    version = "3.0.4";
+    version = "4.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/forever/-/forever-3.0.4.tgz";
-      sha512 = "MZDQu9nxVavSOez+k0MGdoe9/0tGN/QfAj3Xn8OjJbRYlLghq/3isf5c2xt280x04EVKguU9/tmLE74259Xazw==";
+      url = "https://registry.npmjs.org/forever/-/forever-4.0.0.tgz";
+      sha512 = "8cFfO0lvIs4c0P5LvKbdvZvtOK/z79AF/vC9DQLH+niyOCPxqq1+12CyYrzHC+5hBILjPU9ClWLVrXvrK+2ZVw==";
     };
     dependencies = [
-      sources."ansi-regex-2.1.1"
       (sources."anymatch-2.0.0" // {
         dependencies = [
           sources."normalize-path-2.1.1"
@@ -82446,6 +82998,7 @@ in
       sources."async-1.5.2"
       sources."async-each-1.0.3"
       sources."atob-2.1.2"
+      sources."available-typed-arrays-1.0.4"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -82463,17 +83016,15 @@ in
       })
       (sources."broadway-0.3.6" // {
         dependencies = [
-          sources."async-0.2.9"
+          sources."async-0.2.10"
           sources."cliff-0.1.9"
           sources."eventemitter2-0.4.14"
-          sources."nconf-0.6.9"
           sources."winston-0.8.0"
         ];
       })
       sources."cache-base-1.0.1"
       sources."call-bind-1.0.2"
       sources."caller-0.0.1"
-      sources."camelcase-2.1.1"
       sources."chokidar-2.1.8"
       (sources."class-utils-0.3.6" // {
         dependencies = [
@@ -82497,25 +83048,28 @@ in
           sources."colors-1.0.3"
         ];
       })
-      sources."cliui-3.2.0"
       sources."clone-2.1.2"
-      sources."code-point-at-1.1.0"
       sources."collection-visit-1.0.0"
       sources."colors-0.6.2"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
+      sources."configstore-4.0.0"
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
+      sources."crypto-random-string-1.0.0"
       sources."cycle-1.0.3"
       sources."debug-2.6.9"
-      sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
-      sources."deep-equal-1.1.1"
+      sources."deep-equal-2.0.5"
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."defined-0.0.0"
       sources."director-1.2.7"
+      sources."dot-prop-4.2.1"
       sources."duplexer-0.1.2"
+      sources."es-abstract-1.18.3"
+      sources."es-get-iterator-1.1.2"
+      sources."es-to-primitive-1.2.1"
       sources."event-stream-3.3.4"
       sources."eventemitter2-6.4.3"
       (sources."expand-brackets-2.1.4" // {
@@ -82555,6 +83109,7 @@ in
       })
       sources."flatiron-0.4.3"
       sources."for-in-1.0.2"
+      sources."foreach-2.0.5"
       sources."forever-monitor-3.0.3"
       sources."fragment-cache-0.2.1"
       sources."from-0.1.7"
@@ -82563,7 +83118,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -82571,6 +83126,7 @@ in
       })
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
       sources."has-symbols-1.0.2"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -82579,36 +83135,48 @@ in
         ];
       })
       sources."i-0.3.6"
+      sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."invert-kv-1.0.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.1.0"
+      sources."is-bigint-1.0.2"
       sources."is-binary-path-1.0.1"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.3"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-1.0.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
+      sources."is-map-2.0.2"
+      sources."is-negative-zero-2.0.1"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
+      sources."is-number-object-1.0.5"
+      sources."is-obj-1.0.1"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
+      sources."is-set-2.0.2"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
+      sources."is-typed-array-1.1.5"
+      sources."is-weakmap-2.0.1"
+      sources."is-weakset-2.0.1"
       sources."is-windows-1.0.2"
-      sources."isarray-1.0.0"
+      sources."isarray-2.0.5"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."jsonify-0.0.0"
       sources."kind-of-6.0.3"
       sources."lazy-1.0.11"
-      sources."lcid-1.0.0"
+      sources."make-dir-1.3.0"
       sources."map-cache-0.2.2"
       sources."map-stream-0.1.0"
       sources."map-visit-1.0.0"
@@ -82625,7 +83193,11 @@ in
       sources."mute-stream-0.0.8"
       sources."nan-2.14.2"
       sources."nanomatch-1.2.13"
-      sources."nconf-0.10.0"
+      (sources."nconf-0.6.9" // {
+        dependencies = [
+          sources."async-0.2.9"
+        ];
+      })
       sources."ncp-0.4.2"
       sources."normalize-path-3.0.0"
       (sources."nssocket-0.6.0" // {
@@ -82633,7 +83205,6 @@ in
           sources."eventemitter2-0.4.14"
         ];
       })
-      sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -82648,17 +83219,19 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.10.3"
       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.pick-1.3.0"
       sources."once-1.4.0"
       sources."optimist-0.6.0"
-      sources."os-locale-1.4.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
       sources."pause-stream-0.0.11"
+      sources."pify-3.0.0"
       sources."pkginfo-0.3.1"
       sources."posix-character-classes-0.1.1"
       (sources."prettyjson-1.2.1" // {
@@ -82671,7 +83244,11 @@ in
       sources."prompt-0.2.14"
       sources."ps-tree-1.2.0"
       sources."read-1.0.7"
-      sources."readable-stream-2.3.7"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+        ];
+      })
       sources."readdirp-2.2.1"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.1"
@@ -82685,7 +83262,6 @@ in
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
-      sources."secure-keys-1.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -82693,6 +83269,8 @@ in
         ];
       })
       sources."shush-1.0.0"
+      sources."side-channel-1.0.4"
+      sources."signal-exit-3.0.3"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -82746,9 +83324,9 @@ in
         ];
       })
       sources."stream-combiner-0.0.4"
-      sources."string-width-1.0.2"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
       sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
       sources."strip-json-comments-0.1.3"
       (sources."tape-2.3.3" // {
         dependencies = [
@@ -82763,11 +83341,13 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
+      sources."unbox-primitive-1.0.1"
       (sources."union-value-1.0.1" // {
         dependencies = [
           sources."is-extendable-0.1.1"
         ];
       })
+      sources."unique-string-1.0.0"
       (sources."unset-value-1.0.0" // {
         dependencies = [
           (sources."has-value-0.3.1" // {
@@ -82776,6 +83356,7 @@ in
             ];
           })
           sources."has-values-0.1.4"
+          sources."isarray-1.0.0"
         ];
       })
       sources."upath-1.2.0"
@@ -82787,17 +83368,18 @@ in
           sources."async-0.2.10"
         ];
       })
-      sources."window-size-0.1.4"
+      sources."which-boxed-primitive-1.0.2"
+      sources."which-collection-1.0.1"
+      sources."which-typed-array-1.1.4"
       (sources."winston-0.8.3" // {
         dependencies = [
           sources."async-0.2.10"
         ];
       })
       sources."wordwrap-0.0.3"
-      sources."wrap-ansi-2.1.0"
       sources."wrappy-1.0.2"
-      sources."y18n-3.2.2"
-      sources."yargs-3.32.0"
+      sources."write-file-atomic-2.4.3"
+      sources."xdg-basedir-3.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -82821,7 +83403,7 @@ in
       sources."@medv/blessed-2.0.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."emoji-regex-8.0.0"
@@ -82864,10 +83446,10 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "3.3.0";
+    version = "3.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.3.0.tgz";
-      sha512 = "zqVRm6QzMNGFPv3iSjSiysNuSBYJmvPoWWR/BdXyFU8mWP3Fou3d7HdxxIQak25GVRYlMGU5ryuM9mfN/k/Jdg==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.6.0.tgz";
+      sha512 = "GJ0BviJw3qnONdoNpCvqgRA8jxYk7rpqi+7MrvT0U+YMcT2HGhZbhY0RxlZqYRL8qOCJTtLB/N4Z7cCUwi8g1w==";
     };
     dependencies = [
       (sources."@ardatan/aggregate-error-0.0.6" // {
@@ -82876,62 +83458,58 @@ in
         ];
       })
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      sources."@babel/compat-data-7.14.4"
+      (sources."@babel/core-7.14.3" // {
         dependencies = [
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.14.3" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.13" // {
+      (sources."@babel/helper-compilation-targets-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
-      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-replace-supers-7.14.4"
       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.12.11"
+      sources."@babel/helper-validator-identifier-7.14.0"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helpers-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.14.4"
       sources."@babel/plugin-proposal-object-rest-spread-7.10.4"
-      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.2"
       sources."@babel/plugin-syntax-jsx-7.12.13"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.13.0"
-      sources."@babel/plugin-transform-react-jsx-7.13.12"
-      sources."@babel/runtime-7.13.10"
-      sources."@babel/standalone-7.13.15"
+      sources."@babel/plugin-transform-parameters-7.14.2"
+      sources."@babel/plugin-transform-react-jsx-7.14.3"
+      sources."@babel/runtime-7.14.0"
+      sources."@babel/standalone-7.14.4"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
-      sources."@graphql-tools/schema-7.1.3"
-      (sources."@graphql-tools/utils-7.7.3" // {
-        dependencies = [
-          sources."tslib-2.2.0"
-        ];
-      })
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
+      sources."@graphql-tools/schema-7.1.5"
+      sources."@graphql-tools/utils-7.10.0"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
@@ -82948,7 +83526,7 @@ in
         ];
       })
       sources."@mdx-js/util-2.0.0-next.8"
-      (sources."@sideway/address-4.1.1" // {
+      (sources."@sideway/address-4.1.2" // {
         dependencies = [
           sources."@hapi/hoek-9.2.0"
         ];
@@ -82966,15 +83544,15 @@ in
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-patch-0.0.30"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/node-fetch-2.5.10"
-      sources."@types/readable-stream-2.3.9"
+      sources."@types/readable-stream-2.3.10"
       sources."@types/unist-2.0.3"
       sources."@types/yargs-15.0.13"
       sources."@types/yargs-parser-20.2.0"
       sources."@types/yoga-layout-1.9.2"
       sources."accepts-1.3.7"
-      sources."acorn-8.1.1"
+      sources."acorn-8.3.0"
       sources."acorn-jsx-5.3.1"
       sources."address-1.1.2"
       (sources."ansi-align-3.0.0" // {
@@ -83022,21 +83600,21 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
-          sources."normalize-url-4.5.0"
+          sources."normalize-url-4.5.1"
         ];
       })
       sources."call-bind-1.0.2"
       sources."camel-case-4.1.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."ccount-1.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -83084,8 +83662,8 @@ in
         ];
       })
       sources."content-type-1.0.4"
-      sources."contentful-management-7.15.1"
-      sources."contentful-sdk-core-6.7.0"
+      sources."contentful-management-7.22.4"
+      sources."contentful-sdk-core-6.8.0"
       sources."convert-hrtime-3.0.0"
       (sources."convert-source-map-1.7.0" // {
         dependencies = [
@@ -83095,7 +83673,7 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."cors-2.8.5"
-      sources."create-gatsby-1.3.0"
+      sources."create-gatsby-1.6.0"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -83131,10 +83709,10 @@ in
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
-      sources."dotenv-8.2.0"
+      sources."dotenv-8.6.0"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -83187,7 +83765,7 @@ in
       })
       sources."fast-copy-2.1.1"
       sources."figures-3.2.0"
-      sources."file-type-16.3.0"
+      sources."file-type-16.5.0"
       sources."fill-range-7.0.1"
       sources."filter-obj-1.1.0"
       (sources."finalhandler-1.1.2" // {
@@ -83197,17 +83775,17 @@ in
         ];
       })
       sources."find-up-4.1.0"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."form-data-3.0.1"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-exists-cached-1.0.0"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
-      sources."gatsby-core-utils-2.3.0"
-      (sources."gatsby-recipes-0.14.0" // {
+      sources."gatsby-core-utils-2.6.0"
+      (sources."gatsby-recipes-0.17.0" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
           sources."execa-4.1.0"
@@ -83221,14 +83799,14 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."gatsby-telemetry-2.3.0"
+      sources."gatsby-telemetry-2.6.0"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-stdin-4.0.1"
       sources."get-stream-4.1.0"
       sources."git-up-4.0.2"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."global-dirs-3.0.0"
       sources."globals-11.12.0"
@@ -83277,7 +83855,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-decimal-1.0.4"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
@@ -83296,7 +83874,7 @@ in
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
       sources."is-plain-obj-2.1.0"
-      sources."is-ssh-1.3.2"
+      sources."is-ssh-1.3.3"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-url-1.2.4"
@@ -83384,14 +83962,14 @@ in
       sources."no-case-3.0.4"
       sources."node-eta-0.9.0"
       sources."node-fetch-2.6.1"
-      sources."node-object-hash-2.3.1"
-      sources."node-releases-1.1.71"
+      sources."node-object-hash-2.3.3"
+      sources."node-releases-1.1.72"
       sources."normalize-path-3.0.0"
       sources."normalize-url-3.3.0"
       sources."npm-run-path-2.0.2"
       sources."nth-check-1.0.2"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-path-0.11.5"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
@@ -83417,13 +83995,13 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."peek-readable-3.1.3"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pkg-dir-4.2.0"
       sources."prepend-http-2.0.0"
-      sources."prettier-2.2.1"
+      sources."prettier-2.3.0"
       sources."pretty-error-2.1.2"
       (sources."pretty-format-25.5.0" // {
         dependencies = [
@@ -83437,7 +84015,7 @@ in
       sources."prop-types-15.7.2"
       sources."proper-lockfile-4.1.2"
       sources."protocols-1.4.8"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
       sources."pupa-2.1.1"
       sources."qs-6.10.1"
@@ -83454,7 +84032,7 @@ in
       sources."readable-stream-3.6.0"
       sources."readable-web-to-node-stream-3.0.1"
       sources."readdirp-3.5.0"
-      sources."redux-4.0.5"
+      sources."redux-4.1.0"
       sources."regenerator-runtime-0.13.8"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -83552,7 +84130,6 @@ in
       sources."strtok3-6.0.8"
       sources."style-to-object-0.3.0"
       sources."supports-color-5.5.0"
-      sources."symbol-observable-1.2.0"
       sources."term-size-2.2.1"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
@@ -83564,7 +84141,7 @@ in
       sources."trim-0.0.1"
       sources."trim-trailing-lines-1.1.4"
       sources."trough-1.0.5"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."type-fest-0.20.2"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
@@ -83599,6 +84176,7 @@ in
       sources."utila-0.4.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
+      sources."value-or-promise-1.0.6"
       sources."vary-1.1.2"
       sources."vfile-4.2.1"
       sources."vfile-location-2.0.6"
@@ -83616,9 +84194,9 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xdg-basedir-4.0.0"
-      sources."xstate-4.18.0"
+      sources."xstate-4.20.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
       sources."yallist-4.0.0"
@@ -83755,17 +84333,16 @@ in
       sources."moo-0.5.1"
       sources."ms-2.1.2"
       sources."multicb-1.2.2"
-      sources."multiserver-3.7.0"
+      sources."multiserver-3.7.2"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
-      sources."muxrpc-6.5.2"
+      sources."muxrpc-6.5.3"
       sources."nearley-2.20.1"
       sources."node-gyp-build-4.2.3"
       sources."node-polyglot-1.0.0"
       sources."non-private-ip-1.4.4"
-      sources."options-0.0.6"
       sources."os-homedir-1.0.2"
-      sources."packet-stream-2.0.5"
+      sources."packet-stream-2.0.6"
       sources."packet-stream-codec-1.1.3"
       sources."pako-1.0.11"
       sources."private-box-0.3.1"
@@ -83813,7 +84390,7 @@ in
           sources."looper-3.0.0"
         ];
       })
-      sources."pull-ws-3.3.2"
+      sources."pull-websocket-3.4.2"
       sources."punycode-1.4.1"
       sources."railroad-diagrams-1.0.0"
       sources."randexp-0.4.6"
@@ -83873,8 +84450,8 @@ in
       sources."through-2.2.7"
       sources."tweetnacl-0.14.5"
       sources."tweetnacl-auth-0.3.1"
-      sources."ultron-1.0.2"
-      sources."ws-1.1.5"
+      sources."typedarray-to-buffer-4.0.0"
+      sources."ws-7.4.6"
       sources."xtend-4.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -83908,15 +84485,15 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "3.3.1";
+    version = "4.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.3.1.tgz";
-      sha512 = "wsCS8L8QTb9ghnJJpn1qKj+LokhGQ7OlKSM/n6/LhB8E4w/Pn4hiSgqcBthaL5J6CwJiWjpbNSA4t3sE0yqEPw==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-4.1.0.tgz";
+      sha512 = "xf6lKP7Ptas6bIdn/KvOn7UqkPS9/BBKcGCDVrsak/e0dWYeDZIOCMNwWxLp/zEjwBMSiPZtJdOdsIdmWap3bQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -83928,10 +84505,12 @@ in
       })
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
+      sources."@tootallnate/once-1.1.2"
       sources."@types/minimist-1.2.1"
       sources."@types/normalize-package-data-2.4.0"
-      sources."ajv-7.2.4"
-      sources."ajv-formats-1.6.1"
+      sources."agent-base-6.0.2"
+      sources."ajv-8.5.0"
+      sources."ajv-formats-2.1.0"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -83945,6 +84524,11 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."arrify-1.0.1"
+      (sources."ast-types-0.13.4" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."atomically-1.7.0"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
@@ -83955,6 +84539,7 @@ in
         ];
       })
       sources."buffer-5.7.1"
+      sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -83963,7 +84548,7 @@ in
       })
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -83974,15 +84559,18 @@ in
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."conf-9.0.2"
+      sources."conf-10.0.1"
       (sources."configstore-5.0.1" // {
         dependencies = [
           sources."dot-prop-5.3.0"
         ];
       })
+      sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
+      sources."data-uri-to-buffer-3.0.1"
       sources."debounce-fn-4.0.0"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -83991,8 +84579,11 @@ in
       })
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
+      sources."deep-is-0.1.3"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
+      sources."degenerator-2.2.0"
+      sources."depd-1.1.2"
       sources."dot-prop-6.0.1"
       sources."duplexer3-0.1.4"
       sources."emoji-regex-8.0.0"
@@ -84001,14 +84592,28 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-5.0.0"
+      sources."escodegen-1.14.3"
+      sources."esprima-4.0.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."execa-5.0.1"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
+      sources."fast-levenshtein-2.0.6"
       sources."figures-3.2.0"
+      sources."file-uri-to-path-2.0.0"
       sources."find-up-3.0.0"
+      sources."fs-extra-8.1.0"
+      (sources."ftp-0.3.10" // {
+        dependencies = [
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
       sources."function-bind-1.1.1"
       sources."fuse.js-6.4.6"
       sources."get-stream-6.0.1"
+      sources."get-uri-3.0.2"
       sources."global-dirs-3.0.0"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -84022,6 +84627,9 @@ in
       sources."has-yarn-2.1.0"
       sources."hosted-git-info-4.0.2"
       sources."http-cache-semantics-4.1.0"
+      sources."http-errors-1.7.3"
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
@@ -84032,9 +84640,10 @@ in
       sources."ini-2.0.0"
       sources."inquirer-7.3.3"
       sources."inquirer-autocomplete-prompt-1.3.0"
+      sources."ip-1.1.5"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-installed-globally-0.4.0"
       sources."is-interactive-1.0.0"
@@ -84046,15 +84655,18 @@ in
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."is-yarn-global-0.3.0"
+      sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-1.0.0"
       sources."json-schema-typed-7.0.3"
+      sources."jsonfile-4.0.0"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
+      sources."levn-0.3.0"
       sources."lines-and-columns-1.1.6"
       (sources."locate-path-3.0.0" // {
         dependencies = [
@@ -84082,10 +84694,12 @@ in
       sources."min-indent-1.0.1"
       sources."minimist-1.2.5"
       sources."minimist-options-4.1.0"
+      sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
+      sources."netmask-2.0.2"
       sources."node-fetch-2.6.1"
       sources."normalize-package-data-3.0.2"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npm-run-path-4.0.1"
       sources."once-1.4.0"
       (sources."onetime-5.1.2" // {
@@ -84093,12 +84707,15 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
+      sources."optionator-0.8.3"
       sources."ora-5.4.0"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
       sources."p-try-2.2.0"
+      sources."pac-proxy-agent-4.1.0"
+      sources."pac-resolver-4.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -84107,13 +84724,22 @@ in
       sources."parse-json-5.2.0"
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pkg-up-3.1.0"
+      sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
+      (sources."proxy-agent-4.0.1" // {
+        dependencies = [
+          sources."lru-cache-5.1.1"
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."quick-lru-4.0.1"
+      sources."raw-body-2.4.1"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
@@ -84153,13 +84779,19 @@ in
           sources."semver-6.3.0"
         ];
       })
+      sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
+      sources."smart-buffer-4.1.0"
+      sources."socks-2.6.1"
+      sources."socks-proxy-agent-5.0.0"
+      sources."source-map-0.6.1"
       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.9"
+      sources."statuses-1.5.0"
       sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
@@ -84170,11 +84802,15 @@ in
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
-      sources."trim-newlines-3.0.0"
+      sources."toidentifier-1.0.0"
+      sources."trim-newlines-3.0.1"
       sources."tslib-1.14.1"
+      sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
       sources."update-notifier-5.1.0"
       sources."uri-js-4.4.1"
       sources."url-parse-lax-3.0.0"
@@ -84183,10 +84819,12 @@ in
       sources."wcwidth-1.0.1"
       sources."which-2.0.2"
       sources."widest-line-3.1.0"
+      sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
+      sources."xregexp-2.0.0"
       sources."yallist-4.0.0"
       sources."yargs-parser-20.2.7"
     ];
@@ -84211,8 +84849,8 @@ in
     dependencies = [
       sources."@ardatan/aggregate-error-0.0.6"
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -84225,25 +84863,21 @@ in
       sources."@exodus/schemasafe-1.0.0-rc.3"
       sources."@graphql-cli/common-4.1.0"
       sources."@graphql-cli/init-4.1.0"
-      (sources."@graphql-tools/batch-execute-7.1.0" // {
+      (sources."@graphql-tools/batch-execute-7.1.2" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.3" // {
-            dependencies = [
-              sources."tslib-2.2.0"
-            ];
-          })
-          sources."tslib-2.1.0"
+          sources."@graphql-tools/utils-7.10.0"
+          sources."tslib-2.2.0"
         ];
       })
-      (sources."@graphql-tools/delegate-7.1.2" // {
+      (sources."@graphql-tools/delegate-7.1.5" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.7.3"
+          sources."@graphql-tools/utils-7.10.0"
           sources."tslib-2.2.0"
         ];
       })
       (sources."@graphql-tools/graphql-file-loader-6.2.7" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.3" // {
+          (sources."@graphql-tools/utils-7.10.0" // {
             dependencies = [
               sources."tslib-2.2.0"
             ];
@@ -84251,14 +84885,14 @@ in
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/import-6.3.0" // {
+      (sources."@graphql-tools/import-6.3.1" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@graphql-tools/json-file-loader-6.2.6" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.3" // {
+          (sources."@graphql-tools/utils-7.10.0" // {
             dependencies = [
               sources."tslib-2.2.0"
             ];
@@ -84266,32 +84900,24 @@ in
         ];
       })
       sources."@graphql-tools/load-6.2.4"
-      (sources."@graphql-tools/merge-6.2.13" // {
+      (sources."@graphql-tools/merge-6.2.14" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.7.3"
+          sources."@graphql-tools/utils-7.10.0"
           sources."tslib-2.2.0"
         ];
       })
-      (sources."@graphql-tools/schema-7.1.3" // {
+      (sources."@graphql-tools/schema-7.1.5" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.3" // {
-            dependencies = [
-              sources."tslib-2.2.0"
-            ];
-          })
-          sources."tslib-2.1.0"
+          sources."@graphql-tools/utils-7.10.0"
+          sources."tslib-2.2.0"
         ];
       })
-      (sources."@graphql-tools/url-loader-6.8.2" // {
+      (sources."@graphql-tools/url-loader-6.10.1" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.3" // {
-            dependencies = [
-              sources."tslib-2.2.0"
-            ];
-          })
-          sources."cross-fetch-3.1.1"
+          sources."@graphql-tools/utils-7.10.0"
+          sources."cross-fetch-3.1.4"
           sources."form-data-4.0.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@graphql-tools/utils-6.2.4" // {
@@ -84303,25 +84929,24 @@ in
           })
         ];
       })
-      (sources."@graphql-tools/wrap-7.0.5" // {
+      (sources."@graphql-tools/wrap-7.0.8" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.3" // {
-            dependencies = [
-              sources."tslib-2.2.0"
-            ];
-          })
+          sources."@graphql-tools/utils-7.10.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
+      sources."@microsoft/fetch-event-source-2.0.1"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
+      sources."abort-controller-3.0.0"
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       (sources."ansi-escapes-4.3.2" // {
@@ -84332,22 +84957,22 @@ in
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-4.3.0"
       sources."argparse-1.0.10"
-      sources."array-filter-1.0.0"
       sources."array-union-2.1.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
+      sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."available-typed-arrays-1.0.2"
+      sources."available-typed-arrays-1.0.4"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
+      sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."buffer-5.7.1"
-      sources."busboy-0.3.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -84407,22 +85032,21 @@ in
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."dicer-0.3.0"
       sources."dir-glob-3.0.1"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-3.3.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
-      sources."eventsource-1.1.0"
+      sources."event-target-shim-5.0.1"
+      sources."eventemitter3-3.1.2"
       sources."execa-1.0.0"
       sources."extend-3.0.2"
       (sources."external-editor-3.1.0" // {
@@ -84445,7 +85069,6 @@ in
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."form-urlencoded-4.5.1"
-      sources."fs-capacitor-6.2.0"
       sources."fs-extra-9.0.1"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
@@ -84455,7 +85078,7 @@ in
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."globby-11.0.1"
       (sources."got-9.6.0" // {
@@ -84472,8 +85095,7 @@ in
       })
       sources."graphql-subscriptions-1.2.1"
       sources."graphql-type-json-0.3.2"
-      sources."graphql-upload-11.0.0"
-      sources."graphql-ws-4.2.2"
+      sources."graphql-ws-4.7.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -84481,7 +85103,6 @@ in
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.2"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.8.0"
       sources."http-signature-1.2.0"
       sources."http2-client-1.3.3"
       sources."iconv-lite-0.4.24"
@@ -84509,10 +85130,10 @@ in
       })
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -84521,13 +85142,13 @@ in
       sources."is-map-2.0.2"
       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.5"
       sources."is-promise-4.0.0"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-set-2.0.2"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
@@ -84536,7 +85157,6 @@ in
       sources."is-wsl-2.2.0"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
-      sources."isobject-4.0.0"
       sources."isomorphic-ws-4.0.1"
       sources."isstream-0.1.2"
       sources."iterall-1.3.0"
@@ -84584,6 +85204,7 @@ in
         ];
       })
       sources."merge2-1.4.1"
+      sources."meros-1.1.4"
       sources."micromatch-4.0.4"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
@@ -84607,22 +85228,21 @@ in
       sources."node-fetch-h2-2.3.0"
       sources."node-readfiles-0.2.0"
       sources."normalize-path-2.1.1"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npm-run-path-2.0.2"
       sources."oas-kit-common-1.0.8"
-      sources."oas-linter-3.2.1"
-      (sources."oas-resolver-2.5.4" // {
+      sources."oas-linter-3.2.2"
+      (sources."oas-resolver-2.5.5" // {
         dependencies = [
-          sources."yargs-16.2.0"
+          sources."yargs-17.0.1"
         ];
       })
       sources."oas-schema-walker-1.1.5"
-      sources."oas-validator-5.0.5"
+      sources."oas-validator-5.0.6"
       sources."oauth-sign-0.9.0"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
-      sources."object-path-0.11.5"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
@@ -84639,10 +85259,9 @@ in
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."original-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."p-any-2.1.0"
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
@@ -84667,14 +85286,13 @@ in
       sources."path-key-2.0.1"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pluralize-8.0.0"
       sources."prepend-http-2.0.0"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."querystringify-2.2.0"
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       sources."reftools-1.1.8"
@@ -84684,7 +85302,6 @@ in
       sources."remove-trailing-separator-1.1.0"
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
-      sources."requires-port-1.0.0"
       sources."resolve-from-5.0.0"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
@@ -84700,7 +85317,6 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
-      sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."should-13.2.3"
@@ -84714,10 +85330,7 @@ in
       sources."simple-git-2.21.0"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
-      sources."sse-z-0.3.0"
       sources."sshpk-1.16.1"
-      sources."statuses-1.5.0"
-      sources."streamsearch-0.1.2"
       sources."string-env-interpolation-1.0.1"
       (sources."string-width-4.2.2" // {
         dependencies = [
@@ -84730,19 +85343,24 @@ in
       sources."strip-ansi-5.2.0"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
+      (sources."subscriptions-transport-ws-0.9.18" // {
+        dependencies = [
+          sources."ws-5.2.2"
+        ];
+      })
       sources."supports-color-7.2.0"
-      (sources."swagger2openapi-7.0.5" // {
+      (sources."swagger2openapi-7.0.6" // {
         dependencies = [
-          sources."yargs-16.2.0"
+          sources."yargs-17.0.1"
         ];
       })
+      sources."symbol-observable-1.2.0"
       sources."sync-fetch-0.3.0"
       sources."tar-6.0.5"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."tslib-2.0.2"
       sources."tunnel-agent-0.6.0"
@@ -84752,10 +85370,10 @@ in
       sources."universalify-1.0.0"
       sources."unixify-1.0.0"
       sources."uri-js-4.4.1"
-      sources."url-parse-1.5.1"
       sources."url-parse-lax-3.0.0"
       sources."uuid-3.4.0"
       sources."valid-url-1.0.9"
+      sources."value-or-promise-1.0.6"
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
@@ -84769,7 +85387,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
@@ -84789,10 +85407,10 @@ in
   grunt-cli = nodeEnv.buildNodePackage {
     name = "grunt-cli";
     packageName = "grunt-cli";
-    version = "1.4.2";
+    version = "1.4.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz";
-      sha512 = "wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==";
+      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz";
+      sha512 = "9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -84811,13 +85429,13 @@ in
       sources."function-bind-1.1.1"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
-      sources."grunt-known-options-1.1.1"
+      sources."grunt-known-options-2.0.0"
       sources."has-1.0.3"
       sources."homedir-polyfill-1.0.3"
       sources."ini-1.3.8"
       sources."interpret-1.1.0"
       sources."is-absolute-1.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
@@ -84841,10 +85459,10 @@ in
       sources."osenv-0.1.5"
       sources."parse-filepath-1.0.2"
       sources."parse-passwd-1.0.0"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."rechoir-0.7.0"
       sources."resolve-1.20.0"
       sources."resolve-dir-1.0.1"
@@ -84908,7 +85526,7 @@ in
       sources."express-4.17.1"
       sources."express-ws-2.0.0"
       sources."finalhandler-1.1.2"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."http-errors-1.7.2"
       sources."iconv-lite-0.4.24"
@@ -84927,7 +85545,7 @@ in
       sources."options-0.0.6"
       sources."parseurl-1.3.3"
       sources."path-to-regexp-0.1.7"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."qs-6.7.0"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
@@ -84978,7 +85596,7 @@ in
       sources."esutils-2.0.3"
       sources."graphql-14.7.0"
       sources."has-ansi-2.0.0"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."is-stream-1.1.0"
       sources."iterall-1.3.0"
       sources."js-tokens-3.0.2"
@@ -85052,7 +85670,7 @@ in
       (sources."marked-terminal-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."supports-color-7.2.0"
         ];
       })
@@ -85075,7 +85693,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-4.34.20"
+      sources."systeminformation-4.34.23"
       sources."term-canvas-0.0.5"
       sources."type-fest-0.21.3"
       sources."wordwrap-0.0.3"
@@ -85279,7 +85897,7 @@ in
       sources."get-caller-file-1.0.3"
       sources."get-intrinsic-1.1.1"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -85313,7 +85931,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -85400,7 +86018,7 @@ in
       sources."path-dirname-1.0.2"
       sources."path-exists-2.1.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
       sources."path-type-1.1.0"
@@ -85477,7 +86095,7 @@ in
       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.9"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
       (sources."static-extend-0.1.2" // {
@@ -85553,8 +86171,8 @@ in
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
       sources."y18n-3.2.2"
-      sources."yargs-7.1.1"
-      sources."yargs-parser-5.0.0-security.0"
+      sources."yargs-7.1.2"
+      sources."yargs-parser-5.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85715,7 +86333,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -85811,7 +86429,7 @@ in
       sources."parse-passwd-1.0.0"
       sources."pascalcase-0.1.1"
       sources."path-exists-2.1.0"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
       sources."path-type-1.1.0"
@@ -85874,7 +86492,7 @@ in
       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.9"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
       (sources."static-extend-0.1.2" // {
@@ -85922,8 +86540,8 @@ in
       sources."which-module-1.0.0"
       sources."wrap-ansi-2.1.0"
       sources."y18n-3.2.2"
-      sources."yargs-7.1.1"
-      sources."yargs-parser-5.0.0-security.0"
+      sources."yargs-7.1.2"
+      sources."yargs-parser-5.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85971,7 +86589,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -86095,7 +86713,7 @@ in
       sources."debug-3.2.7"
       sources."ecstatic-3.3.2"
       sources."eventemitter3-4.0.7"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
@@ -86107,7 +86725,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.3"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."opener-1.5.2"
       sources."portfinder-1.0.28"
       sources."qs-6.10.1"
@@ -86258,7 +86876,7 @@ in
       sources."extsprintf-1.4.0"
       sources."fs.realpath-1.0.0"
       sources."fuzzyset.js-0.0.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."hue-sdk-0.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -86304,7 +86922,7 @@ in
       sources."nel-1.2.0"
       sources."node-gyp-build-4.2.3"
       sources."uuid-3.4.0"
-      sources."zeromq-5.2.7"
+      sources."zeromq-5.2.8"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86632,7 +87250,7 @@ in
     };
     dependencies = [
       sources."@types/jquery-3.5.5"
-      sources."@types/sizzle-2.3.2"
+      sources."@types/sizzle-2.3.3"
       sources."arch-2.2.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -86649,7 +87267,7 @@ in
       sources."fs-extra-0.24.0"
       sources."fs.realpath-1.0.0"
       sources."get-stream-4.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."good-listener-1.2.2"
       sources."graceful-fs-4.2.6"
       sources."historic-readline-1.0.8"
@@ -86660,7 +87278,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
       sources."jquery-3.6.0"
-      sources."jquery.terminal-2.22.0"
+      sources."jquery.terminal-2.25.1"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -86804,7 +87422,7 @@ in
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."get-uri-3.0.2"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
@@ -86820,7 +87438,7 @@ in
         dependencies = [
           sources."ansi-escapes-4.3.2"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -86885,7 +87503,7 @@ in
           sources."path-key-2.0.1"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
       sources."open-7.4.2"
@@ -86992,7 +87610,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
@@ -87017,68 +87635,69 @@ in
     };
     dependencies = [
       sources."@iarna/toml-2.2.5"
-      sources."@ot-builder/bin-composite-types-1.0.4"
-      sources."@ot-builder/bin-util-1.0.4"
-      (sources."@ot-builder/cli-help-shower-1.0.4" // {
+      sources."@ot-builder/bin-composite-types-1.0.8"
+      sources."@ot-builder/bin-util-1.0.8"
+      (sources."@ot-builder/cli-help-shower-1.0.8" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
         ];
       })
-      (sources."@ot-builder/cli-proc-1.0.4" // {
+      (sources."@ot-builder/cli-proc-1.0.8" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
         ];
       })
-      (sources."@ot-builder/cli-shared-1.0.4" // {
+      (sources."@ot-builder/cli-shared-1.0.8" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@ot-builder/common-impl-1.0.4"
-      sources."@ot-builder/errors-1.0.4"
-      sources."@ot-builder/io-bin-cff-1.0.4"
-      sources."@ot-builder/io-bin-encoding-1.0.4"
-      sources."@ot-builder/io-bin-ext-private-1.0.4"
-      sources."@ot-builder/io-bin-font-1.0.4"
-      sources."@ot-builder/io-bin-glyph-store-1.0.4"
-      sources."@ot-builder/io-bin-layout-1.0.4"
-      sources."@ot-builder/io-bin-metadata-1.0.4"
-      sources."@ot-builder/io-bin-metric-1.0.4"
-      sources."@ot-builder/io-bin-name-1.0.4"
-      sources."@ot-builder/io-bin-sfnt-1.0.4"
-      sources."@ot-builder/io-bin-ttf-1.0.4"
-      sources."@ot-builder/ot-1.0.4"
-      sources."@ot-builder/ot-encoding-1.0.4"
-      sources."@ot-builder/ot-ext-private-1.0.4"
-      sources."@ot-builder/ot-glyphs-1.0.4"
-      sources."@ot-builder/ot-layout-1.0.4"
-      sources."@ot-builder/ot-metadata-1.0.4"
-      sources."@ot-builder/ot-name-1.0.4"
-      sources."@ot-builder/ot-sfnt-1.0.4"
-      sources."@ot-builder/ot-standard-glyph-namer-1.0.4"
-      sources."@ot-builder/prelude-1.0.4"
-      sources."@ot-builder/primitive-1.0.4"
-      sources."@ot-builder/rectify-1.0.4"
-      sources."@ot-builder/stat-glyphs-1.0.4"
-      sources."@ot-builder/trace-1.0.4"
-      sources."@ot-builder/var-store-1.0.4"
-      sources."@ot-builder/variance-1.0.4"
+      sources."@ot-builder/common-impl-1.0.8"
+      sources."@ot-builder/errors-1.0.8"
+      sources."@ot-builder/io-bin-cff-1.0.8"
+      sources."@ot-builder/io-bin-encoding-1.0.8"
+      sources."@ot-builder/io-bin-ext-private-1.0.8"
+      sources."@ot-builder/io-bin-font-1.0.8"
+      sources."@ot-builder/io-bin-glyph-store-1.0.8"
+      sources."@ot-builder/io-bin-layout-1.0.8"
+      sources."@ot-builder/io-bin-metadata-1.0.8"
+      sources."@ot-builder/io-bin-metric-1.0.8"
+      sources."@ot-builder/io-bin-name-1.0.8"
+      sources."@ot-builder/io-bin-sfnt-1.0.8"
+      sources."@ot-builder/io-bin-ttf-1.0.8"
+      sources."@ot-builder/ot-1.0.8"
+      sources."@ot-builder/ot-encoding-1.0.8"
+      sources."@ot-builder/ot-ext-private-1.0.8"
+      sources."@ot-builder/ot-glyphs-1.0.8"
+      sources."@ot-builder/ot-layout-1.0.8"
+      sources."@ot-builder/ot-metadata-1.0.8"
+      sources."@ot-builder/ot-name-1.0.8"
+      sources."@ot-builder/ot-sfnt-1.0.8"
+      sources."@ot-builder/ot-standard-glyph-namer-1.0.8"
+      sources."@ot-builder/prelude-1.0.8"
+      sources."@ot-builder/primitive-1.0.8"
+      sources."@ot-builder/rectify-1.0.8"
+      sources."@ot-builder/stat-glyphs-1.0.8"
+      sources."@ot-builder/trace-1.0.8"
+      sources."@ot-builder/var-store-1.0.8"
+      sources."@ot-builder/variance-1.0.8"
       sources."@unicode/unicode-13.0.0-1.0.6"
+      sources."aglfn-1.0.2"
       sources."amdefine-1.0.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
@@ -87141,11 +87760,11 @@ in
       sources."fs-extra-9.1.0"
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-flag-3.0.0"
       sources."hashish-0.0.4"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-fullwidth-code-point-3.0.0"
@@ -87163,11 +87782,11 @@ in
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."optionator-0.8.3"
-      sources."ot-builder-1.0.4"
-      (sources."otb-ttc-bundle-1.0.4" // {
+      sources."ot-builder-1.0.8"
+      (sources."otb-ttc-bundle-1.0.8" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -87231,7 +87850,7 @@ in
       (sources."verda-1.2.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cliui-6.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -87334,7 +87953,7 @@ in
       sources."fast-json-patch-2.2.1"
       sources."fs.realpath-1.0.0"
       sources."get-func-name-2.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-flag-3.0.0"
       sources."hexer-1.5.0"
       sources."inflight-1.0.6"
@@ -87392,26 +88011,30 @@ in
   joplin = nodeEnv.buildNodePackage {
     name = "joplin";
     packageName = "joplin";
-    version = "1.6.4";
+    version = "1.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/joplin/-/joplin-1.6.4.tgz";
-      sha512 = "jfiqk9aqN3mAZ+TIGqubTKGTBB5Q8KRmeXS2qr/2N80KFJHCqdCFhsyI/E2hfdd3CA4Gu5Ls9WTxXA3MW/XjwA==";
+      url = "https://registry.npmjs.org/joplin/-/joplin-1.8.1.tgz";
+      sha512 = "ukyHTdD3LgHl5A9No350YkAlxMRoWVhP9FR8MVhyXS1I8p6kSW27FZF3r8FBLxfwHnGvRQM7gwBRHJDKprEG8A==";
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
       sources."@cronvel/get-pixels-3.4.0"
-      sources."@joplin/fork-htmlparser2-4.1.23"
-      sources."@joplin/fork-sax-1.2.27"
-      sources."@joplin/lib-1.0.18"
-      (sources."@joplin/renderer-1.0.26" // {
+      sources."@joplin/fork-htmlparser2-4.1.26"
+      sources."@joplin/fork-sax-1.2.30"
+      sources."@joplin/lib-1.8.2"
+      (sources."@joplin/renderer-1.8.2" // {
         dependencies = [
           sources."fs-extra-8.1.0"
           sources."jsonfile-4.0.0"
           sources."uslug-git+https://github.com/laurent22/uslug.git#emoji-support"
         ];
       })
-      sources."@joplin/turndown-4.0.45"
-      sources."@joplin/turndown-plugin-gfm-1.0.27"
+      (sources."@joplin/turndown-4.0.48" // {
+        dependencies = [
+          sources."css-2.2.4"
+        ];
+      })
+      sources."@joplin/turndown-plugin-gfm-1.0.30"
       sources."abab-2.0.5"
       sources."abbrev-1.1.1"
       sources."acorn-7.4.1"
@@ -87451,7 +88074,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.888.0" // {
+      (sources."aws-sdk-2.918.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -87483,11 +88106,11 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-4.1.0"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."charenc-0.0.2"
       sources."chokidar-3.5.1"
       sources."chownr-1.1.4"
-      sources."chroma-js-2.1.1"
+      sources."chroma-js-2.1.2"
       sources."clean-css-4.2.3"
       sources."clean-html-1.5.0"
       sources."cliss-0.0.2"
@@ -87507,7 +88130,11 @@ in
       sources."cross-env-6.0.3"
       sources."cross-spawn-7.0.3"
       sources."crypt-0.0.2"
-      sources."css-2.2.4"
+      (sources."css-3.0.0" // {
+        dependencies = [
+          sources."source-map-resolve-0.6.0"
+        ];
+      })
       sources."css-b64-images-0.2.5"
       sources."cssom-0.4.4"
       (sources."cssstyle-2.3.0" // {
@@ -87563,7 +88190,7 @@ in
       sources."depd-1.1.2"
       sources."detect-libc-1.0.3"
       sources."diff-match-patch-1.0.5"
-      (sources."dom-serializer-1.3.1" // {
+      (sources."dom-serializer-1.3.2" // {
         dependencies = [
           sources."domhandler-4.2.0"
         ];
@@ -87588,7 +88215,7 @@ in
       })
       (sources."encoding-0.1.13" // {
         dependencies = [
-          sources."iconv-lite-0.6.2"
+          sources."iconv-lite-0.6.3"
         ];
       })
       sources."end-of-stream-1.4.4"
@@ -87612,7 +88239,7 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."fill-range-7.0.1"
       sources."find-up-2.1.0"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-property-0.0.4"
       sources."for-each-property-deep-0.0.3"
@@ -87638,7 +88265,7 @@ in
       sources."get-stdin-5.0.1"
       sources."getpass-0.1.7"
       sources."github-from-package-0.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.6"
       sources."graphlib-2.1.8"
@@ -87672,7 +88299,7 @@ in
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       (sources."image-data-uri-2.0.1" // {
         dependencies = [
           sources."fs-extra-0.26.7"
@@ -87745,12 +88372,12 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
-      (sources."katex-0.12.0" // {
+      (sources."katex-0.13.11" // {
         dependencies = [
-          sources."commander-2.20.3"
+          sources."commander-6.2.1"
         ];
       })
-      sources."keytar-7.6.0"
+      sources."keytar-7.7.0"
       sources."khroma-1.4.1"
       sources."klaw-1.3.1"
       sources."lazyness-1.2.0"
@@ -87783,7 +88410,7 @@ in
       sources."markdown-it-deflist-2.1.0"
       sources."markdown-it-emoji-1.4.0"
       sources."markdown-it-expand-tabs-1.0.13"
-      sources."markdown-it-footnote-3.0.2"
+      sources."markdown-it-footnote-3.0.3"
       sources."markdown-it-ins-3.0.1"
       sources."markdown-it-mark-3.0.1"
       (sources."markdown-it-multimd-table-4.1.0" // {
@@ -87799,7 +88426,7 @@ in
       sources."md5-2.3.0"
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
-      sources."mermaid-8.9.2"
+      sources."mermaid-8.10.1"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."mimic-response-2.1.0"
@@ -87809,7 +88436,7 @@ in
           sources."debug-4.3.2"
           sources."html-minifier-4.0.0"
           sources."ms-2.1.2"
-          sources."uglify-js-3.13.4"
+          sources."uglify-js-3.13.8"
         ];
       })
       sources."minimatch-3.0.4"
@@ -87827,19 +88454,19 @@ in
       sources."ms-2.1.3"
       sources."multiparty-4.2.2"
       sources."mustache-4.2.0"
-      sources."nanoid-3.1.22"
+      sources."nanoid-3.1.23"
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
       sources."needle-2.6.0"
-      sources."nextgen-events-1.3.4"
+      sources."nextgen-events-1.4.0"
       sources."no-case-2.3.2"
-      (sources."node-abi-2.21.0" // {
+      (sources."node-abi-2.30.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."node-addon-api-3.1.0"
+      sources."node-addon-api-3.2.1"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.10.0"
       sources."node-fetch-1.7.3"
@@ -87865,7 +88492,7 @@ in
       sources."noop-logger-0.1.1"
       sources."nopt-4.0.3"
       sources."normalize-path-3.0.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -87895,12 +88522,12 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-3.0.0"
       sources."pipe-functions-1.3.0"
       sources."pn-1.1.0"
       sources."pngjs-5.0.0"
-      sources."prebuild-install-6.1.1"
+      sources."prebuild-install-6.1.2"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-7.3.1"
@@ -88104,7 +88731,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xml-name-validator-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -88139,7 +88766,7 @@ in
       sources."config-chain-1.1.12"
       sources."editorconfig-0.15.3"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
@@ -88190,16 +88817,16 @@ in
   jsdoc = nodeEnv.buildNodePackage {
     name = "jsdoc";
     packageName = "jsdoc";
-    version = "3.6.6";
+    version = "3.6.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.6.tgz";
-      sha512 = "znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==";
+      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz";
+      sha512 = "sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==";
     };
     dependencies = [
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.14.4"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
-      sources."catharsis-0.8.11"
+      sources."catharsis-0.9.0"
       sources."entities-2.0.3"
       sources."escape-string-regexp-2.0.0"
       sources."graceful-fs-4.2.6"
@@ -88209,7 +88836,7 @@ in
       sources."lodash-4.17.21"
       sources."markdown-it-10.0.0"
       sources."markdown-it-anchor-5.3.0"
-      sources."marked-0.8.2"
+      sources."marked-2.0.6"
       sources."mdurl-1.0.1"
       sources."mkdirp-1.0.4"
       sources."requizzle-0.2.3"
@@ -88217,7 +88844,7 @@ in
       sources."strip-json-comments-3.1.1"
       sources."taffydb-2.6.2"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.10.2"
+      sources."underscore-1.13.1"
       sources."xmlcreate-2.0.3"
     ];
     buildInputs = globalBuildInputs;
@@ -88233,10 +88860,10 @@ in
   jshint = nodeEnv.buildNodePackage {
     name = "jshint";
     packageName = "jshint";
-    version = "2.12.0";
+    version = "2.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jshint/-/jshint-2.12.0.tgz";
-      sha512 = "TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==";
+      url = "https://registry.npmjs.org/jshint/-/jshint-2.13.0.tgz";
+      sha512 = "Nd+md9wIeyfDK+RGrbOBzwLONSTdihGMtyGYU/t7zYcN2EgUa4iuY3VK2oxtPYrW5ycTj18iC+UbhNTxe4C66g==";
     };
     dependencies = [
       sources."balanced-match-1.0.2"
@@ -88258,7 +88885,7 @@ in
       sources."entities-1.0.0"
       sources."exit-0.1.2"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."htmlparser2-3.8.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -88286,10 +88913,10 @@ in
   json = nodeEnv.buildNodePackage {
     name = "json";
     packageName = "json";
-    version = "10.0.0";
+    version = "11.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/json/-/json-10.0.0.tgz";
-      sha512 = "iK7tAZtpoghibjdB1ncCWykeBMmke3JThUe+rnkD4qkZaglOIQ70Pw7r5UJ4lyUT+7gnw7ehmmLUHDuhqzQD+g==";
+      url = "https://registry.npmjs.org/json/-/json-11.0.0.tgz";
+      sha512 = "N/ITv3Yw9Za8cGxuQqSqrq6RHnlaHWZkAFavcfpH/R52522c26EbihMxnY7A1chxfXJ4d+cEFIsyTgfi9GihrA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -88363,7 +88990,7 @@ in
       sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
@@ -88419,7 +89046,7 @@ in
         ];
       })
       sources."camelcase-6.2.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       (sources."cliui-7.0.4" // {
@@ -88469,7 +89096,7 @@ in
         ];
       })
       sources."finalhandler-1.1.2"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
@@ -88530,9 +89157,9 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."nanoid-3.1.22"
+      sources."nanoid-3.1.23"
       sources."negotiator-0.6.2"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."object-assign-4.1.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
@@ -88549,7 +89176,7 @@ in
       sources."please-upgrade-node-3.2.0"
       sources."pluralize-8.0.0"
       sources."prepend-http-2.0.0"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
       sources."pupa-2.1.1"
       sources."qs-6.7.0"
@@ -88702,7 +89329,7 @@ in
         ];
       })
       sources."@oclif/screen-1.0.4"
-      sources."@putdotio/api-client-8.15.3"
+      sources."@putdotio/api-client-8.16.0"
       sources."ajv-6.12.6"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
@@ -88715,7 +89342,7 @@ in
       sources."braces-3.0.2"
       sources."call-bind-1.0.2"
       sources."cardinal-2.1.1"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
@@ -88757,7 +89384,7 @@ in
       sources."delayed-stream-1.0.0"
       sources."dir-glob-3.0.1"
       sources."dot-prop-5.3.0"
-      sources."dotenv-8.2.0"
+      sources."dotenv-8.6.0"
       sources."emoji-regex-8.0.0"
       sources."env-paths-2.2.1"
       sources."es5-ext-0.10.53"
@@ -88839,7 +89466,7 @@ in
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       sources."node-downloader-helper-1.0.18"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-treeify-1.1.33"
       sources."onetime-5.1.2"
       sources."os-tmpdir-1.0.2"
@@ -88854,7 +89481,7 @@ in
       sources."path-exists-3.0.0"
       sources."path-key-2.0.1"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pkg-up-3.1.0"
       sources."punycode-2.1.1"
       sources."qs-6.10.1"
@@ -88911,10 +89538,10 @@ in
   katex = nodeEnv.buildNodePackage {
     name = "katex";
     packageName = "katex";
-    version = "0.13.2";
+    version = "0.13.11";
     src = fetchurl {
-      url = "https://registry.npmjs.org/katex/-/katex-0.13.2.tgz";
-      sha512 = "u/KhjFDhyPr+70aiBn9SL/9w/QlLagIXBi2NZSbNnBUp2tR8dCjQplyEMkEzniem5gOeSCBjlBUg4VaiWs1JJg==";
+      url = "https://registry.npmjs.org/katex/-/katex-0.13.11.tgz";
+      sha512 = "yJBHVIgwlAaapzlbvTpVF/ZOs8UkTj/sd46Fl8+qAf2/UiituPYVeapVD8ADZtqyRg/qNWUKt7gJoyYVWLrcXw==";
     };
     dependencies = [
       sources."commander-6.2.1"
@@ -88941,7 +89568,7 @@ in
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
@@ -88989,12 +89616,12 @@ in
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."get-caller-file-2.0.5"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.6"
       sources."http-errors-1.7.2"
@@ -89007,7 +89634,7 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
-      sources."isbinaryfile-4.0.6"
+      sources."isbinaryfile-4.0.8"
       sources."jsonfile-4.0.0"
       sources."lodash-4.17.21"
       (sources."log4js-6.3.0" // {
@@ -89029,7 +89656,7 @@ in
       sources."once-1.4.0"
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."qjobs-1.2.0"
       sources."qs-6.7.0"
       sources."range-parser-1.2.1"
@@ -89077,7 +89704,7 @@ in
       sources."void-elements-2.0.1"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."y18n-5.0.8"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
@@ -89122,7 +89749,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-3.1.0"
       sources."glob-stream-6.1.0"
       sources."graceful-fs-4.2.6"
@@ -89267,7 +89894,7 @@ in
       sources."get-caller-file-1.0.3"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
@@ -89521,7 +90148,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
@@ -89693,8 +90320,8 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -89749,7 +90376,11 @@ in
           sources."pify-5.0.0"
         ];
       })
-      sources."@lerna/npm-dist-tag-4.0.0"
+      (sources."@lerna/npm-dist-tag-4.0.0" // {
+        dependencies = [
+          sources."npm-registry-fetch-9.0.0"
+        ];
+      })
       sources."@lerna/npm-install-4.0.0"
       (sources."@lerna/npm-publish-4.0.0" // {
         dependencies = [
@@ -89768,7 +90399,11 @@ in
       sources."@lerna/profiler-4.0.0"
       sources."@lerna/project-4.0.0"
       sources."@lerna/prompt-4.0.0"
-      sources."@lerna/publish-4.0.0"
+      (sources."@lerna/publish-4.0.0" // {
+        dependencies = [
+          sources."npm-registry-fetch-9.0.0"
+        ];
+      })
       sources."@lerna/pulse-till-done-4.0.0"
       sources."@lerna/query-graph-4.0.0"
       sources."@lerna/resolve-symlink-4.0.0"
@@ -89790,12 +90425,12 @@ in
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
       sources."@npmcli/ci-detect-1.3.0"
-      sources."@npmcli/git-2.0.8"
+      sources."@npmcli/git-2.0.9"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@octokit/auth-token-2.4.5"
       sources."@octokit/core-3.4.0"
       (sources."@octokit/endpoint-6.0.11" // {
@@ -89803,20 +90438,20 @@ in
           sources."is-plain-object-5.0.0"
         ];
       })
-      sources."@octokit/graphql-4.6.1"
-      sources."@octokit/openapi-types-6.0.0"
+      sources."@octokit/graphql-4.6.2"
+      sources."@octokit/openapi-types-7.2.3"
       sources."@octokit/plugin-enterprise-rest-6.0.1"
       sources."@octokit/plugin-paginate-rest-2.13.3"
       sources."@octokit/plugin-request-log-1.0.3"
-      sources."@octokit/plugin-rest-endpoint-methods-5.0.0"
+      sources."@octokit/plugin-rest-endpoint-methods-5.3.1"
       (sources."@octokit/request-5.4.15" // {
         dependencies = [
           sources."is-plain-object-5.0.0"
         ];
       })
       sources."@octokit/request-error-2.0.5"
-      sources."@octokit/rest-18.5.2"
-      sources."@octokit/types-6.13.0"
+      sources."@octokit/rest-18.5.5"
+      sources."@octokit/types-6.16.2"
       sources."@tootallnate/once-1.1.2"
       sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.1"
@@ -89865,13 +90500,13 @@ in
       sources."builtins-1.0.3"
       sources."byline-5.0.0"
       sources."byte-size-7.0.1"
-      sources."cacache-15.0.6"
+      sources."cacache-15.2.0"
       sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
@@ -89951,12 +90586,12 @@ in
       sources."envinfo-7.8.1"
       sources."err-code-2.0.3"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."eventemitter3-4.0.7"
-      sources."execa-5.0.0"
+      sources."execa-5.0.1"
       sources."extend-3.0.2"
       (sources."external-editor-3.1.0" // {
         dependencies = [
@@ -90031,7 +90666,7 @@ in
       sources."git-up-4.0.2"
       sources."git-url-parse-11.4.4"
       sources."gitconfiglocal-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."globby-11.0.3"
       sources."graceful-fs-4.2.6"
@@ -90051,9 +90686,9 @@ in
       sources."https-proxy-agent-5.0.0"
       sources."human-signals-2.1.0"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."ignore-5.1.8"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       (sources."import-fresh-3.3.0" // {
         dependencies = [
           sources."resolve-from-4.0.0"
@@ -90081,12 +90716,12 @@ in
       sources."interpret-1.4.0"
       sources."ip-1.1.5"
       sources."is-arrayish-0.2.1"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
-      sources."is-date-object-1.0.2"
+      sources."is-core-module-2.4.0"
+      sources."is-date-object-1.0.4"
       sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-3.0.0"
@@ -90094,15 +90729,15 @@ in
       sources."is-lambda-1.0.1"
       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.5"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.2"
-      sources."is-ssh-1.3.2"
+      sources."is-regex-1.1.3"
+      sources."is-ssh-1.3.3"
       sources."is-stream-2.0.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-text-path-1.0.1"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -90121,8 +90756,8 @@ in
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."kind-of-6.0.3"
-      sources."libnpmaccess-4.0.1"
-      (sources."libnpmpublish-4.0.0" // {
+      sources."libnpmaccess-4.0.2"
+      (sources."libnpmpublish-4.0.1" // {
         dependencies = [
           sources."normalize-package-data-3.0.2"
         ];
@@ -90206,7 +90841,7 @@ in
         ];
       })
       sources."normalize-url-3.3.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       (sources."npm-lifecycle-3.1.5" // {
         dependencies = [
@@ -90227,15 +90862,15 @@ in
       })
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
-      sources."npm-packlist-2.1.5"
+      sources."npm-packlist-2.2.2"
       sources."npm-pick-manifest-6.1.1"
-      sources."npm-registry-fetch-9.0.0"
+      sources."npm-registry-fetch-10.1.2"
       sources."npm-run-path-4.0.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."object.getownpropertydescriptors-2.1.2"
@@ -90255,7 +90890,7 @@ in
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       sources."p-waterfall-2.1.1"
-      sources."pacote-11.3.1"
+      sources."pacote-11.3.3"
       sources."parent-module-1.0.1"
       sources."parse-github-repo-url-1.4.1"
       sources."parse-json-5.2.0"
@@ -90268,10 +90903,10 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      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"
@@ -90350,7 +90985,7 @@ in
       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.9"
       sources."split-1.0.1"
       sources."split-on-first-1.1.0"
       sources."split2-3.2.2"
@@ -90386,8 +91021,8 @@ in
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
       sources."tough-cookie-2.5.0"
-      sources."tr46-2.0.2"
-      sources."trim-newlines-3.0.0"
+      sources."tr46-2.1.0"
+      sources."trim-newlines-3.0.1"
       sources."trim-off-newlines-1.0.1"
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
@@ -90395,7 +91030,7 @@ in
       sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."unbox-primitive-1.0.1"
@@ -90435,7 +91070,7 @@ in
       sources."write-file-atomic-2.4.3"
       (sources."write-json-file-4.3.0" // {
         dependencies = [
-          sources."detect-indent-6.0.0"
+          sources."detect-indent-6.1.0"
           sources."is-plain-obj-2.1.0"
           sources."make-dir-3.1.0"
           sources."semver-6.3.0"
@@ -90632,7 +91267,7 @@ in
           sources."is-extendable-0.1.1"
         ];
       })
-      sources."faye-websocket-0.11.3"
+      sources."faye-websocket-0.11.4"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
@@ -90961,7 +91596,7 @@ in
           sources."ms-2.1.3"
         ];
       })
-      (sources."engine.io-client-3.5.1" // {
+      (sources."engine.io-client-3.5.2" // {
         dependencies = [
           sources."debug-3.1.0"
         ];
@@ -90991,7 +91626,7 @@ in
       sources."for-own-0.1.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."fsevents-1.2.13"
@@ -91144,7 +91779,7 @@ in
       sources."posix-character-classes-0.1.1"
       sources."preserve-0.2.0"
       sources."process-nextick-args-2.0.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
@@ -91342,8 +91977,8 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."ws-7.4.5"
-      sources."xmlhttprequest-ssl-1.5.5"
+      sources."ws-7.4.6"
+      sources."xmlhttprequest-ssl-1.6.3"
       sources."yeast-0.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -91363,57 +91998,60 @@ in
     src = ../interpreters/clojurescript/lumo;
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
+      sources."@babel/compat-data-7.14.4"
+      sources."@babel/core-7.14.3"
+      sources."@babel/generator-7.14.3"
       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.13"
-      sources."@babel/helper-create-class-features-plugin-7.13.11"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
-      sources."@babel/helper-define-polyfill-provider-0.2.0"
+      sources."@babel/helper-compilation-targets-7.14.4"
+      sources."@babel/helper-create-class-features-plugin-7.14.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.14.3"
+      sources."@babel/helper-define-polyfill-provider-0.2.3"
       sources."@babel/helper-explode-assignable-expression-7.13.0"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      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.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       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-replace-supers-7.14.4"
       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.12.11"
+      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.13.10"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helpers-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.14.4"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
+      sources."@babel/plugin-proposal-async-generator-functions-7.14.2"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
-      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-class-static-block-7.14.3"
+      sources."@babel/plugin-proposal-dynamic-import-7.14.2"
+      sources."@babel/plugin-proposal-export-namespace-from-7.14.2"
+      sources."@babel/plugin-proposal-json-strings-7.14.2"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.2"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.2"
+      sources."@babel/plugin-proposal-numeric-separator-7.14.2"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.4"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.14.2"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.2"
       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."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-bigint-7.8.3"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
+      sources."@babel/plugin-syntax-class-static-block-7.12.13"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-import-meta-7.10.4"
@@ -91424,14 +92062,15 @@ in
       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.12.13"
-      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-block-scoping-7.14.4"
+      sources."@babel/plugin-transform-classes-7.14.4"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.14.4"
       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"
@@ -91439,18 +92078,18 @@ in
       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.13.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-amd-7.14.2"
+      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.13.0"
+      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-parameters-7.14.2"
       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-runtime-7.13.15"
+      sources."@babel/plugin-transform-runtime-7.14.3"
       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"
@@ -91458,13 +92097,13 @@ in
       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.13.15"
+      sources."@babel/preset-env-7.14.4"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.14.0"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
       sources."@istanbuljs/load-nyc-config-1.1.0"
@@ -91485,7 +92124,7 @@ in
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.13"
@@ -91574,9 +92213,9 @@ in
       sources."babel-plugin-minify-replace-0.5.0"
       sources."babel-plugin-minify-simplify-0.5.1"
       sources."babel-plugin-minify-type-constructors-0.4.3"
-      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-polyfill-corejs2-0.2.2"
+      sources."babel-plugin-polyfill-corejs3-0.2.2"
+      sources."babel-plugin-polyfill-regenerator-0.2.2"
       sources."babel-plugin-syntax-flow-6.18.0"
       sources."babel-plugin-transform-flow-strip-types-6.22.0"
       sources."babel-plugin-transform-inline-consecutive-adds-0.4.3"
@@ -91642,7 +92281,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
@@ -91658,7 +92297,7 @@ in
       sources."cached-path-relative-1.0.2"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -91730,7 +92369,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.13.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -91782,7 +92421,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -91887,7 +92526,7 @@ in
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       (sources."global-modules-2.0.0" // {
         dependencies = [
@@ -91957,7 +92596,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-deflate-1.0.0"
       sources."is-descriptor-1.0.2"
@@ -92085,7 +92724,7 @@ in
         ];
       })
       sources."node-modules-regexp-1.0.0"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -92131,12 +92770,12 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-platform-0.11.15"
       sources."pbkdf2-3.1.2"
       sources."peek-stream-1.1.3"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-4.0.1"
       sources."pinkie-1.0.0"
       sources."pinkie-promise-1.0.0"
@@ -92294,7 +92933,7 @@ in
       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.9"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
@@ -92514,7 +93153,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."minimatch-3.0.4"
@@ -92534,6 +93173,57 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  markdownlint-cli = nodeEnv.buildNodePackage {
+    name = "markdownlint-cli";
+    packageName = "markdownlint-cli";
+    version = "0.27.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.27.1.tgz";
+      sha512 = "p1VV6aSbGrDlpUWzHizAnSNEQAweVR3qUI/AIUubxW7BGPXziSXkIED+uRtSohUlRS/jmqp3Wi4es5j6fIrdeQ==";
+    };
+    dependencies = [
+      sources."argparse-2.0.1"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."commander-7.1.0"
+      sources."concat-map-0.0.1"
+      sources."deep-extend-0.6.0"
+      sources."entities-2.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."get-stdin-8.0.0"
+      sources."glob-7.1.7"
+      sources."ignore-5.1.8"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.8"
+      sources."js-yaml-4.1.0"
+      sources."jsonc-parser-3.0.0"
+      sources."linkify-it-3.0.2"
+      sources."lodash.differencewith-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."markdown-it-12.0.4"
+      sources."markdownlint-0.23.1"
+      sources."markdownlint-rule-helpers-0.14.0"
+      sources."mdurl-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."once-1.4.0"
+      sources."path-is-absolute-1.0.1"
+      sources."rc-1.2.8"
+      sources."strip-json-comments-2.0.1"
+      sources."uc.micro-1.0.6"
+      sources."wrappy-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "MarkdownLint Command Line Interface";
+      homepage = "https://github.com/igorshubovych/markdownlint-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
@@ -92553,7 +93243,7 @@ in
       sources."aws4-1.11.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
@@ -92585,8 +93275,8 @@ in
       sources."jsprim-1.4.1"
       sources."link-check-4.5.4"
       sources."lodash-4.17.21"
-      sources."markdown-link-extractor-1.2.7"
-      sources."marked-2.0.3"
+      sources."markdown-link-extractor-1.3.0"
+      sources."marked-2.0.6"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."ms-2.1.3"
@@ -92741,7 +93431,7 @@ in
       sources."generate-function-2.3.1"
       sources."generate-object-property-1.2.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."globals-9.18.0"
       sources."glogg-1.0.2"
       sources."graceful-fs-4.2.6"
@@ -92768,7 +93458,7 @@ in
       sources."inherits-2.0.4"
       sources."inquirer-0.12.0"
       sources."interpret-1.4.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-my-ip-valid-1.0.0"
       sources."is-my-json-valid-2.20.5"
@@ -92829,7 +93519,7 @@ in
       sources."parse-node-version-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."performance-now-2.1.0"
       sources."pluralize-1.2.1"
       sources."prelude-ls-1.1.2"
@@ -92916,10 +93606,10 @@ in
   mathjax = nodeEnv.buildNodePackage {
     name = "mathjax";
     packageName = "mathjax";
-    version = "3.1.2";
+    version = "3.1.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.1.2.tgz";
-      sha512 = "BojKspBv4nNWzO1wC6VEI+g9gHDOhkaGHGgLxXkasdU4pwjdO5AXD5M/wcLPkXYPjZ/N+6sU8rjQTlyvN2cWiQ==";
+      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.1.4.tgz";
+      sha512 = "Okmc+F3l7vRWNMALbH0HMMoTJWVn1cbeDbybHppCeophIGdFS+xxD/OffYpZirUOHzesZostpzEwsLSst+4W8w==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -92971,14 +93661,14 @@ in
   "@mermaid-js/mermaid-cli" = nodeEnv.buildNodePackage {
     name = "_at_mermaid-js_slash_mermaid-cli";
     packageName = "@mermaid-js/mermaid-cli";
-    version = "8.9.2";
+    version = "8.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.9.2.tgz";
-      sha512 = "Hw44+V/n4s6ViCnh5RR/uiza5QxaeUv/A4Q62ho+U1W1yoCLHle6kbx1ZXRSF3Jvl3BfQHuaoE3t+dyx2L4hnA==";
+      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.10.1.tgz";
+      sha512 = "X2wIJwN22Hwh5zkpGteKg31K+wYCO8W5NUsQYlnSWyv8RpHoZfK7+kDVRzvHvVqnizTM3D+KgSnONvh+Z0EB6g==";
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/yauzl-2.9.1"
       sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
@@ -92990,7 +93680,7 @@ in
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.1"
       sources."camel-case-3.0.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chownr-1.1.4"
       sources."clean-css-4.2.3"
       sources."color-convert-2.0.1"
@@ -93037,7 +93727,7 @@ in
       sources."dagre-0.8.5"
       sources."dagre-d3-0.6.4"
       sources."debug-4.3.2"
-      sources."devtools-protocol-0.0.854822"
+      sources."devtools-protocol-0.0.869402"
       sources."end-of-stream-1.4.4"
       sources."entity-decode-2.0.2"
       sources."extract-zip-2.0.1"
@@ -93046,7 +93736,7 @@ in
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
       sources."get-stream-5.2.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graphlib-2.1.8"
       sources."has-flag-4.0.0"
       sources."he-1.2.0"
@@ -93064,7 +93754,7 @@ in
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lower-case-1.1.4"
-      sources."mermaid-8.9.2"
+      sources."mermaid-8.10.1"
       sources."minify-4.1.3"
       sources."minimatch-3.0.4"
       sources."mkdirp-classic-0.5.3"
@@ -93084,7 +93774,7 @@ in
       sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."puppeteer-8.0.0"
+      sources."puppeteer-9.1.1"
       sources."readable-stream-3.6.0"
       sources."relateurl-0.2.7"
       sources."rimraf-3.0.2"
@@ -93106,12 +93796,12 @@ in
       sources."through-2.3.8"
       sources."try-catch-2.0.1"
       sources."try-to-catch-1.1.1"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       sources."unbzip2-stream-1.4.3"
       sources."upper-case-1.1.3"
       sources."util-deprecate-1.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."yauzl-2.10.0"
     ];
     buildInputs = globalBuildInputs;
@@ -93135,12 +93825,12 @@ in
     dependencies = [
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
-      sources."@fluentui/keyboard-key-0.2.16"
-      sources."@fluentui/react-7.168.0"
+      sources."@fluentui/keyboard-key-0.2.17"
+      sources."@fluentui/react-7.170.1"
       sources."@fluentui/react-focus-7.17.6"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
-      sources."@microsoft/load-themed-styles-1.10.161"
+      sources."@microsoft/load-themed-styles-1.10.174"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@uifabric/foundation-7.9.26"
@@ -93199,13 +93889,13 @@ in
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."difunc-0.0.4"
-      sources."dotenv-8.2.0"
+      sources."dotenv-8.6.0"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       (sources."encoding-0.1.13" // {
         dependencies = [
-          sources."iconv-lite-0.6.2"
+          sources."iconv-lite-0.6.3"
         ];
       })
       sources."end-of-stream-1.4.4"
@@ -93222,12 +93912,12 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-2.0.0"
       sources."finalhandler-1.1.2"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-routes-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."get-stream-4.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."got-9.6.0"
       sources."has-ansi-2.0.0"
       sources."http-cache-semantics-4.1.0"
@@ -93274,9 +93964,9 @@ in
       sources."mute-stream-0.0.7"
       sources."negotiator-0.6.2"
       sources."node-fetch-1.6.3"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."object-assign-4.1.1"
-      sources."office-ui-fabric-react-7.168.0"
+      sources."office-ui-fabric-react-7.170.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -93312,7 +94002,7 @@ in
       sources."prepend-http-2.0.0"
       sources."promise-queue-2.2.5"
       sources."prop-types-15.7.2"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
@@ -93367,7 +94057,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
-      sources."swagger-ui-dist-3.47.1"
+      sources."swagger-ui-dist-3.49.0"
       sources."tail-2.2.2"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
@@ -93399,10 +94089,10 @@ in
   mocha = nodeEnv.buildNodePackage {
     name = "mocha";
     packageName = "mocha";
-    version = "8.3.2";
+    version = "8.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz";
-      sha512 = "UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==";
+      url = "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz";
+      sha512 = "hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==";
     };
     dependencies = [
       sources."@ungap/promise-all-settled-1.1.2"
@@ -93417,7 +94107,7 @@ in
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
       sources."camelcase-6.2.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."supports-color-7.2.0"
         ];
@@ -93476,7 +94166,7 @@ in
       sources."p-locate-5.0.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."randombytes-2.1.0"
       sources."readdirp-3.5.0"
       sources."require-directory-2.1.1"
@@ -93565,7 +94255,7 @@ in
       sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
@@ -93652,70 +94342,81 @@ in
   netlify-cli = nodeEnv.buildNodePackage {
     name = "netlify-cli";
     packageName = "netlify-cli";
-    version = "3.18.3";
+    version = "3.32.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.18.3.tgz";
-      sha512 = "VonzQOBohu/+G++NiVIwoyrwDaGo7VV4kzqrJr9pc7KWm95iBT+4FBvlzAk4VYg6vU5/3WYcOIwQTNSOZKcJiA==";
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.32.6.tgz";
+      sha512 = "VG2b3SJHbAIVErZvaeD0cU496GnuHpBqUYJiMrtEJ3eaPSQGc6HHZz9/P0Zbl7S67jaOk/wANOfcSxtbmPEORQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      sources."@babel/compat-data-7.14.4"
+      (sources."@babel/core-7.14.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.14.3"
       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.13" // {
+      (sources."@babel/helper-compilation-targets-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.13.11"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
-      (sources."@babel/helper-define-polyfill-provider-0.2.0" // {
+      sources."@babel/helper-create-class-features-plugin-7.14.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.14.3"
+      (sources."@babel/helper-define-polyfill-provider-0.2.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/helper-explode-assignable-expression-7.13.0"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      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.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       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-replace-supers-7.14.4"
       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.12.11"
+      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.13.10"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/helpers-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."@babel/parser-7.14.4"
       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-async-generator-functions-7.14.2"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
-      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-class-static-block-7.14.3"
+      sources."@babel/plugin-proposal-dynamic-import-7.14.2"
+      sources."@babel/plugin-proposal-export-namespace-from-7.14.2"
+      sources."@babel/plugin-proposal-json-strings-7.14.2"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.2"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.2"
+      sources."@babel/plugin-proposal-numeric-separator-7.14.2"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.4"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.14.2"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.2"
       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."@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-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
@@ -93725,14 +94426,15 @@ in
       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.12.13"
-      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-block-scoping-7.14.4"
+      sources."@babel/plugin-transform-classes-7.14.4"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.14.4"
       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"
@@ -93740,14 +94442,14 @@ in
       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.13.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-amd-7.14.2"
+      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.13.0"
+      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-parameters-7.14.2"
       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"
@@ -93758,33 +94460,35 @@ in
       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.13.15" // {
+      (sources."@babel/preset-env-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.14.0"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
-      sources."@bugsnag/browser-7.9.2"
-      sources."@bugsnag/core-7.9.2"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
+      sources."@bugsnag/browser-7.10.1"
+      sources."@bugsnag/core-7.10.0"
       sources."@bugsnag/cuid-3.0.0"
-      sources."@bugsnag/js-7.9.2"
-      sources."@bugsnag/node-7.9.2"
+      sources."@bugsnag/js-7.10.1"
+      sources."@bugsnag/node-7.10.1"
       sources."@bugsnag/safe-json-stringify-6.0.0"
       sources."@dabh/diagnostics-2.0.2"
       sources."@jest/types-24.9.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      (sources."@netlify/build-11.1.0" // {
+      (sources."@netlify/build-11.29.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."execa-3.4.0"
+          sources."is-plain-obj-2.1.0"
           sources."locate-path-5.0.0"
           sources."resolve-2.0.0-next.3"
           sources."semver-6.3.0"
+          sources."update-notifier-4.1.3"
         ];
       })
       (sources."@netlify/cache-utils-1.0.7" // {
@@ -93792,20 +94496,24 @@ in
           sources."locate-path-5.0.0"
         ];
       })
-      (sources."@netlify/config-6.0.1" // {
+      (sources."@netlify/config-6.7.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."execa-3.4.0"
+          sources."find-up-4.1.0"
+          sources."is-plain-obj-2.1.0"
+          sources."locate-path-5.0.0"
         ];
       })
-      (sources."@netlify/framework-info-3.3.0" // {
+      (sources."@netlify/framework-info-5.1.2" // {
         dependencies = [
-          sources."locate-path-5.0.0"
+          sources."p-limit-3.1.0"
+          sources."p-locate-5.0.0"
         ];
       })
-      sources."@netlify/functions-utils-1.3.25"
-      (sources."@netlify/git-utils-1.0.8" // {
+      sources."@netlify/functions-utils-1.3.37"
+      (sources."@netlify/git-utils-1.0.11" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."execa-3.4.0"
@@ -93815,10 +94523,11 @@ in
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."@netlify/open-api-1.3.0"
-      (sources."@netlify/plugin-edge-handlers-1.11.6" // {
+      sources."@netlify/open-api-2.4.0"
+      (sources."@netlify/plugin-edge-handlers-1.11.13" // {
         dependencies = [
           sources."@nodelib/fs.stat-2.0.4"
+          sources."@types/node-14.17.1"
           sources."array-union-2.1.0"
           sources."braces-3.0.2"
           sources."del-6.0.0"
@@ -93830,12 +94539,11 @@ in
           sources."ignore-5.1.8"
           sources."is-number-7.0.0"
           sources."micromatch-4.0.4"
-          sources."p-map-4.0.0"
           sources."slash-3.0.0"
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."@netlify/plugins-list-2.6.0"
+      sources."@netlify/plugins-list-2.14.2"
       (sources."@netlify/run-utils-1.0.7" // {
         dependencies = [
           sources."execa-3.4.0"
@@ -93845,11 +94553,29 @@ in
       sources."@netlify/traffic-mesh-agent-darwin-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-linux-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-win32-x64-0.27.10"
-      (sources."@netlify/zip-it-and-ship-it-3.4.0" // {
+      (sources."@netlify/zip-it-and-ship-it-4.2.5" // {
         dependencies = [
-          sources."locate-path-5.0.0"
+          sources."@nodelib/fs.stat-2.0.4"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."cliui-7.0.4"
+          sources."cp-file-9.0.0"
+          sources."del-6.0.0"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.5"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.2"
+          sources."globby-11.0.3"
+          sources."ignore-5.1.8"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.4"
+          sources."pkg-dir-5.0.0"
           sources."resolve-2.0.0-next.3"
-          sources."semver-6.3.0"
+          sources."slash-3.0.0"
+          sources."to-regex-range-5.0.1"
+          sources."y18n-5.0.8"
+          sources."yargs-16.2.0"
+          sources."yargs-parser-20.2.7"
         ];
       })
       (sources."@nodelib/fs.scandir-2.1.4" // {
@@ -93872,29 +94598,16 @@ in
           })
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
+          sources."has-flag-4.0.0"
           sources."strip-ansi-5.2.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      (sources."@oclif/command-1.8.0" // {
-        dependencies = [
-          sources."@oclif/plugin-help-3.2.2"
-          sources."ansi-regex-3.0.0"
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-          (sources."wrap-ansi-4.0.0" // {
+          (sources."supports-color-5.5.0" // {
             dependencies = [
-              sources."ansi-styles-3.2.1"
+              sources."has-flag-3.0.0"
             ];
           })
         ];
       })
+      sources."@oclif/command-1.8.0"
       (sources."@oclif/config-1.17.0" // {
         dependencies = [
           sources."@nodelib/fs.stat-2.0.4"
@@ -93915,30 +94628,27 @@ in
       })
       (sources."@oclif/errors-1.3.4" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
           sources."clean-stack-3.0.1"
           sources."escape-string-regexp-4.0.0"
-          sources."wrap-ansi-7.0.0"
         ];
       })
       sources."@oclif/linewrap-1.0.0"
-      sources."@oclif/parser-3.8.5"
-      (sources."@oclif/plugin-help-2.2.3" // {
+      (sources."@oclif/parser-3.8.5" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."@oclif/plugin-help-3.2.2" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
           sources."ansi-styles-3.2.1"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
-          sources."emoji-regex-7.0.3"
           sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-          (sources."widest-line-2.0.1" // {
-            dependencies = [
-              sources."string-width-2.1.1"
-              sources."strip-ansi-4.0.0"
-            ];
-          })
           (sources."wrap-ansi-4.0.0" // {
             dependencies = [
               sources."string-width-2.1.1"
@@ -93951,11 +94661,11 @@ in
         dependencies = [
           sources."ansi-escapes-3.2.0"
           sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
           sources."cli-ux-4.9.3"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
           sources."fs-extra-7.0.1"
-          sources."has-flag-3.0.0"
           sources."indent-string-3.2.0"
           sources."is-wsl-1.1.0"
           sources."semver-5.7.1"
@@ -93965,8 +94675,6 @@ in
       })
       (sources."@oclif/plugin-plugins-1.10.0" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
           sources."tslib-2.2.0"
@@ -93975,40 +94683,27 @@ in
       })
       sources."@oclif/screen-1.0.4"
       sources."@octokit/auth-token-2.4.5"
+      sources."@octokit/core-3.4.0"
       (sources."@octokit/endpoint-6.0.11" // {
         dependencies = [
           sources."is-plain-object-5.0.0"
-          sources."universal-user-agent-6.0.0"
-        ];
-      })
-      sources."@octokit/openapi-types-6.0.0"
-      (sources."@octokit/plugin-paginate-rest-1.1.2" // {
-        dependencies = [
-          sources."@octokit/types-2.16.2"
         ];
       })
+      sources."@octokit/graphql-4.6.2"
+      sources."@octokit/openapi-types-7.2.3"
+      sources."@octokit/plugin-paginate-rest-2.13.3"
       sources."@octokit/plugin-request-log-1.0.3"
-      (sources."@octokit/plugin-rest-endpoint-methods-2.4.0" // {
-        dependencies = [
-          sources."@octokit/types-2.16.2"
-        ];
-      })
+      sources."@octokit/plugin-rest-endpoint-methods-5.3.1"
       (sources."@octokit/request-5.4.15" // {
         dependencies = [
-          sources."@octokit/request-error-2.0.5"
           sources."is-plain-object-5.0.0"
-          sources."universal-user-agent-6.0.0"
         ];
       })
-      (sources."@octokit/request-error-1.2.1" // {
-        dependencies = [
-          sources."@octokit/types-2.16.2"
-        ];
-      })
-      sources."@octokit/rest-16.43.2"
-      sources."@octokit/types-6.13.0"
+      sources."@octokit/request-error-2.0.5"
+      sources."@octokit/rest-18.5.5"
+      sources."@octokit/types-6.16.2"
       sources."@rollup/plugin-babel-5.3.0"
-      (sources."@rollup/plugin-commonjs-17.1.0" // {
+      (sources."@rollup/plugin-commonjs-18.1.0" // {
         dependencies = [
           sources."estree-walker-2.0.2"
         ];
@@ -94037,14 +94732,14 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/got-8.3.5"
       sources."@types/http-cache-semantics-4.0.0"
-      sources."@types/http-proxy-1.17.5"
+      sources."@types/http-proxy-1.17.6"
       sources."@types/istanbul-lib-coverage-2.0.3"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/keyv-3.1.1"
       sources."@types/minimatch-3.0.4"
       sources."@types/mkdirp-0.5.2"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/node-fetch-2.5.10"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-1.17.1"
@@ -94052,12 +94747,30 @@ in
       sources."@types/semver-5.5.0"
       sources."@types/yargs-13.0.11"
       sources."@types/yargs-parser-20.2.0"
-      sources."@typescript-eslint/typescript-estree-2.34.0"
+      sources."@typescript-eslint/types-4.26.0"
+      (sources."@typescript-eslint/typescript-estree-4.26.0" // {
+        dependencies = [
+          sources."@nodelib/fs.stat-2.0.4"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.5"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.2"
+          sources."globby-11.0.3"
+          sources."ignore-5.1.8"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.4"
+          sources."slash-3.0.0"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."@typescript-eslint/visitor-keys-4.26.0"
       sources."@ungap/from-entries-0.2.1"
       sources."accepts-1.3.7"
       sources."agent-base-6.0.2"
       sources."aggregate-error-3.1.0"
-      sources."ajv-8.1.0"
+      sources."ajv-8.5.0"
       (sources."all-node-versions-8.0.0" // {
         dependencies = [
           sources."@jest/types-25.5.0"
@@ -94090,7 +94803,7 @@ in
           sources."file-type-4.4.0"
         ];
       })
-      sources."archiver-4.0.2"
+      sources."archiver-5.3.0"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -94114,8 +94827,7 @@ in
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."atob-lite-2.0.0"
-      (sources."aws-sdk-2.888.0" // {
+      (sources."aws-sdk-2.918.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -94123,13 +94835,13 @@ in
         ];
       })
       sources."babel-plugin-dynamic-import-node-2.3.3"
-      (sources."babel-plugin-polyfill-corejs2-0.2.0" // {
+      (sources."babel-plugin-polyfill-corejs2-0.2.2" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.2.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.0"
+      sources."babel-plugin-polyfill-corejs3-0.2.2"
+      sources."babel-plugin-polyfill-regenerator-0.2.2"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -94139,8 +94851,10 @@ in
       })
       sources."base64-js-1.5.1"
       sources."before-after-hook-2.2.1"
+      sources."better-opn-2.1.1"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
+      sources."blueimp-md5-2.18.0"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -94160,8 +94874,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.16.4"
-      sources."btoa-lite-1.0.0"
+      sources."browserslist-4.16.6"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -94189,16 +94902,12 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."cardinal-2.1.1"
       sources."caw-2.0.1"
-      (sources."chalk-2.4.2" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
+          sources."ansi-styles-4.3.0"
         ];
       })
       sources."chardet-0.7.0"
@@ -94212,7 +94921,7 @@ in
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."ci-info-3.1.1"
+      sources."ci-info-3.2.0"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -94248,17 +94957,22 @@ in
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."argparse-1.0.10"
-          sources."chalk-4.1.0"
           sources."clean-stack-3.0.1"
           sources."escape-string-regexp-4.0.0"
           sources."extract-stack-2.0.0"
+          sources."has-flag-4.0.0"
           sources."js-yaml-3.14.1"
           sources."supports-hyperlinks-2.2.0"
           sources."tslib-2.2.0"
         ];
       })
       sources."cli-width-2.2.1"
-      sources."cliui-6.0.0"
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."wrap-ansi-6.2.0"
+        ];
+      })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
@@ -94280,18 +94994,9 @@ in
       sources."common-path-prefix-2.0.0"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
-      (sources."compress-commons-3.0.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."compress-commons-4.1.1"
       sources."concat-map-0.0.1"
-      (sources."concordance-4.0.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."concordance-5.0.4"
       sources."config-chain-1.1.12"
       sources."configstore-5.0.1"
       (sources."content-disposition-0.5.3" // {
@@ -94316,7 +95021,7 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.13.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -94326,15 +95031,16 @@ in
       (sources."cpy-8.1.2" // {
         dependencies = [
           sources."globby-9.2.0"
+          sources."p-map-3.0.0"
         ];
       })
-      sources."crc-3.8.0"
-      sources."crc32-stream-3.0.1"
+      sources."crc-32-1.2.0"
+      sources."crc32-stream-4.0.2"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
       sources."cyclist-1.0.1"
       sources."date-fns-1.30.1"
-      sources."date-time-2.1.0"
+      sources."date-time-3.1.0"
       (sources."debug-4.3.2" // {
         dependencies = [
           sources."ms-2.1.2"
@@ -94391,6 +95097,7 @@ in
       sources."define-property-2.0.2"
       (sources."del-5.1.0" // {
         dependencies = [
+          sources."p-map-3.0.0"
           sources."slash-3.0.0"
         ];
       })
@@ -94402,11 +95109,11 @@ in
       sources."detective-cjs-3.1.1"
       sources."detective-es6-2.2.0"
       sources."detective-less-1.0.2"
-      sources."detective-postcss-3.0.1"
+      sources."detective-postcss-4.0.0"
       sources."detective-sass-3.0.1"
       sources."detective-scss-2.0.1"
       sources."detective-stylus-1.0.0"
-      (sources."detective-typescript-5.8.0" // {
+      (sources."detective-typescript-7.0.0" // {
         dependencies = [
           sources."typescript-3.9.9"
         ];
@@ -94418,7 +95125,7 @@ in
         ];
       })
       sources."dot-prop-5.3.0"
-      sources."dotenv-8.2.0"
+      sources."dotenv-10.0.0"
       (sources."download-7.1.0" // {
         dependencies = [
           sources."@sindresorhus/is-0.7.0"
@@ -94439,7 +95146,7 @@ in
       })
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."elegant-spinner-1.0.1"
       sources."elf-cam-0.1.1"
       sources."emoji-regex-8.0.0"
@@ -94450,7 +95157,7 @@ in
       sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
       sources."error-stack-parser-2.0.6"
-      sources."esbuild-0.11.12"
+      sources."esbuild-0.11.10"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
@@ -94460,7 +95167,7 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      sources."eslint-visitor-keys-1.3.0"
+      sources."eslint-visitor-keys-2.1.0"
       sources."esprima-4.0.1"
       sources."estraverse-5.2.0"
       sources."estree-walker-1.0.1"
@@ -94468,12 +95175,13 @@ in
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
       sources."events-1.1.1"
-      (sources."execa-5.0.0" // {
+      (sources."execa-5.0.1" // {
         dependencies = [
           sources."get-stream-6.0.1"
           sources."human-signals-2.1.0"
         ];
       })
+      sources."exit-on-epipe-1.0.1"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -94522,7 +95230,7 @@ in
       sources."extract-stack-1.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-diff-1.2.0"
-      sources."fast-equals-2.0.0"
+      sources."fast-equals-2.0.3"
       sources."fast-glob-2.2.7"
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
@@ -94543,7 +95251,6 @@ in
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
           sources."cacheable-request-7.0.1"
-          sources."chalk-4.1.0"
           sources."decompress-response-5.0.0"
           sources."defer-to-connect-2.0.1"
           sources."got-10.7.0"
@@ -94557,7 +95264,7 @@ in
           sources."keyv-4.0.3"
           sources."lowercase-keys-2.0.0"
           sources."mimic-response-2.1.0"
-          sources."p-cancelable-2.1.0"
+          sources."p-cancelable-2.1.1"
           sources."pretty-format-25.5.0"
           sources."responselike-2.0.0"
           sources."type-fest-0.10.0"
@@ -94579,19 +95286,15 @@ in
           sources."debug-2.6.9"
         ];
       })
-      (sources."find-up-4.1.0" // {
-        dependencies = [
-          sources."locate-path-5.0.0"
-        ];
-      })
+      sources."find-up-5.0.0"
       sources."flatten-1.0.3"
       sources."flush-write-stream-2.0.0"
       sources."fn.name-1.1.0"
       sources."folder-walker-3.2.0"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."for-in-1.0.2"
       sources."form-data-3.0.1"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       (sources."from2-2.3.0" // {
@@ -94622,7 +95325,7 @@ in
       })
       sources."git-repo-info-2.1.1"
       sources."gitconfiglocal-2.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -94630,11 +95333,7 @@ in
       })
       sources."glob-to-regexp-0.3.0"
       sources."global-cache-dir-1.0.1"
-      (sources."global-dirs-2.1.0" // {
-        dependencies = [
-          sources."ini-1.3.7"
-        ];
-      })
+      sources."global-dirs-2.1.0"
       sources."globals-11.12.0"
       (sources."globby-10.0.2" // {
         dependencies = [
@@ -94666,7 +95365,7 @@ in
           sources."ansi-regex-2.1.1"
         ];
       })
-      sources."has-flag-4.0.0"
+      sources."has-flag-3.0.0"
       (sources."has-glob-1.0.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -94705,12 +95404,11 @@ in
         ];
       })
       sources."http-proxy-1.18.1"
-      (sources."http-proxy-middleware-1.1.2" // {
+      (sources."http-proxy-middleware-1.3.1" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
           sources."is-number-7.0.0"
-          sources."is-plain-obj-3.0.0"
           sources."micromatch-4.0.4"
           sources."to-regex-range-5.0.1"
         ];
@@ -94727,11 +95425,15 @@ in
       sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.8"
+      sources."ini-1.3.7"
       (sources."inquirer-6.5.2" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
           sources."ansi-regex-3.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."figures-2.0.0"
           sources."is-fullwidth-code-point-2.0.0"
           (sources."string-width-2.1.1" // {
@@ -94744,14 +95446,10 @@ in
               sources."ansi-regex-4.1.0"
             ];
           })
+          sources."supports-color-5.5.0"
         ];
       })
-      (sources."inquirer-autocomplete-prompt-1.3.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
-        ];
-      })
+      sources."inquirer-autocomplete-prompt-1.3.0"
       sources."into-stream-3.1.0"
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
@@ -94763,7 +95461,7 @@ in
           sources."ci-info-2.0.0"
         ];
       })
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-docker-2.2.1"
@@ -94786,13 +95484,14 @@ in
       sources."is-observable-1.1.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-inside-3.0.3"
-      sources."is-plain-obj-2.1.0"
+      sources."is-plain-obj-3.0.0"
       sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
       sources."is-reference-1.2.1"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-2.0.0"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-url-1.2.4"
       sources."is-windows-1.0.2"
       sources."is-wsl-2.2.0"
@@ -94803,7 +95502,15 @@ in
       sources."isobject-3.0.1"
       sources."isurl-1.0.0"
       sources."jest-get-type-24.9.0"
-      sources."jest-validate-24.9.0"
+      (sources."jest-validate-24.9.0" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."supports-color-5.5.0"
+        ];
+      })
       sources."jest-worker-26.6.2"
       sources."jmespath-0.15.0"
       sources."js-string-escape-1.0.1"
@@ -94829,6 +95536,7 @@ in
       (sources."lambda-local-1.7.4" // {
         dependencies = [
           sources."commander-6.2.1"
+          sources."dotenv-8.6.0"
         ];
       })
       sources."latest-version-5.1.0"
@@ -94862,7 +95570,12 @@ in
       })
       (sources."listr-verbose-renderer-0.5.0" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."figures-2.0.0"
+          sources."supports-color-5.5.0"
         ];
       })
       (sources."load-json-file-5.3.0" // {
@@ -94880,24 +95593,17 @@ in
       sources."lodash-4.17.21"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.camelcase-4.3.0"
-      sources."lodash.clonedeep-4.5.0"
       sources."lodash.debounce-4.0.8"
       sources."lodash.deburr-4.1.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
-      sources."lodash.flattendeep-4.4.0"
-      sources."lodash.get-4.4.2"
       sources."lodash.isempty-4.4.0"
-      sources."lodash.islength-4.0.1"
       sources."lodash.isplainobject-4.0.6"
-      sources."lodash.merge-4.6.2"
-      sources."lodash.set-4.3.2"
       sources."lodash.template-4.5.0"
       sources."lodash.templatesettings-4.2.0"
       sources."lodash.transform-4.6.0"
       sources."lodash.union-4.6.0"
-      sources."lodash.uniq-4.5.0"
       (sources."log-process-errors-5.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -94907,7 +95613,7 @@ in
           sources."moize-5.4.7"
         ];
       })
-      sources."log-symbols-3.0.0"
+      sources."log-symbols-4.1.0"
       (sources."log-update-2.3.0" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -94941,12 +95647,15 @@ in
           sources."pump-1.0.3"
         ];
       })
-      sources."md5-hex-2.0.0"
-      sources."md5-o-matic-0.1.1"
+      sources."md5-hex-3.0.1"
       sources."media-typer-0.3.0"
-      sources."memoize-one-5.1.1"
+      sources."memoize-one-5.2.1"
       sources."merge-descriptors-1.0.1"
-      sources."merge-options-3.0.4"
+      (sources."merge-options-3.0.4" // {
+        dependencies = [
+          sources."is-plain-obj-2.1.0"
+        ];
+      })
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
@@ -94967,7 +95676,7 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."module-definition-3.3.1"
-      sources."moize-6.0.1"
+      sources."moize-6.0.3"
       (sources."move-file-1.2.0" // {
         dependencies = [
           (sources."cp-file-6.2.0" // {
@@ -94987,20 +95696,21 @@ in
         ];
       })
       sources."mute-stream-0.0.7"
+      sources."nanoid-3.1.23"
       sources."nanomatch-1.2.13"
       sources."natural-orderby-2.0.3"
       sources."negotiator-0.6.2"
       sources."nested-error-stacks-2.1.0"
-      (sources."netlify-6.1.18" // {
+      (sources."netlify-7.0.0" // {
         dependencies = [
           sources."qs-6.10.1"
         ];
       })
-      sources."netlify-redirect-parser-3.0.15"
+      sources."netlify-redirect-parser-3.0.29"
       sources."netlify-redirector-0.2.1"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.1"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."node-source-walk-4.2.0"
       (sources."node-version-alias-1.0.1" // {
         dependencies = [
@@ -95033,7 +95743,7 @@ in
         ];
       })
       sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       (sources."npm-conf-1.1.3" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -95056,7 +95766,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object-treeify-1.1.33"
       sources."object-visit-1.0.1"
@@ -95067,7 +95777,6 @@ in
           sources."tslib-2.2.0"
         ];
       })
-      sources."octokit-pagination-methods-1.1.0"
       sources."omit.js-2.0.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
@@ -95081,12 +95790,9 @@ in
         ];
       })
       sources."optionator-0.8.3"
-      (sources."ora-4.1.1" // {
+      (sources."ora-5.4.0" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-3.0.0"
           sources."cli-cursor-3.1.0"
-          sources."mute-stream-0.0.8"
           sources."restore-cursor-3.1.0"
         ];
       })
@@ -95118,7 +95824,7 @@ in
       sources."p-is-promise-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
-      sources."p-map-3.0.0"
+      sources."p-map-4.0.0"
       sources."p-reduce-2.1.0"
       (sources."p-timeout-2.0.1" // {
         dependencies = [
@@ -95164,25 +95870,24 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
-      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."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.35" // {
+      (sources."pkg-dir-4.2.0" // {
         dependencies = [
-          sources."has-flag-3.0.0"
-          sources."source-map-0.6.1"
-          sources."supports-color-6.1.0"
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
         ];
       })
-      sources."postcss-values-parser-1.5.0"
-      sources."precinct-6.3.1"
+      sources."posix-character-classes-0.1.1"
+      sources."postcss-8.3.0"
+      sources."postcss-values-parser-2.0.1"
+      sources."precinct-8.1.0"
       sources."precond-0.2.3"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
@@ -95195,10 +95900,11 @@ in
       })
       sources."pretty-ms-5.1.0"
       sources."prettyjson-1.2.1"
+      sources."printj-1.1.2"
       sources."process-es6-0.11.6"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."ps-list-6.3.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -95226,10 +95932,13 @@ in
       })
       (sources."read-pkg-up-7.0.1" // {
         dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
           sources."type-fest-0.8.1"
         ];
       })
       sources."readable-stream-3.6.0"
+      sources."readdir-glob-1.1.1"
       sources."readdirp-3.6.0"
       sources."redeyed-2.1.1"
       sources."regenerate-1.4.2"
@@ -95266,7 +95975,7 @@ in
       sources."ret-0.1.15"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rollup-2.45.2"
+      sources."rollup-2.50.5"
       (sources."rollup-plugin-inject-3.0.2" // {
         dependencies = [
           sources."estree-walker-0.6.1"
@@ -95361,6 +96070,7 @@ in
       })
       sources."sort-keys-length-1.0.1"
       sources."source-map-0.5.7"
+      sources."source-map-js-0.6.2"
       sources."source-map-resolve-0.5.3"
       (sources."source-map-support-0.5.19" // {
         dependencies = [
@@ -95372,7 +96082,7 @@ in
       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.9"
       sources."split-string-3.1.0"
       sources."split2-1.1.1"
       sources."sprintf-js-1.0.3"
@@ -95406,7 +96116,7 @@ in
           sources."supports-color-0.2.0"
         ];
       })
-      sources."statsd-client-0.4.5"
+      sources."statsd-client-0.4.6"
       sources."statuses-1.5.0"
       sources."strict-uri-encode-1.1.0"
       sources."string-width-4.2.2"
@@ -95427,7 +96137,11 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
-      sources."supports-color-7.2.0"
+      (sources."supports-color-7.2.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+        ];
+      })
       (sources."supports-hyperlinks-1.0.1" // {
         dependencies = [
           sources."has-flag-2.0.0"
@@ -95440,16 +96154,28 @@ in
       })
       sources."symbol-observable-1.2.0"
       sources."tar-stream-2.2.0"
-      sources."temp-dir-1.0.0"
-      (sources."tempy-0.3.0" // {
+      sources."temp-dir-2.0.0"
+      (sources."tempy-1.0.1" // {
         dependencies = [
-          sources."crypto-random-string-1.0.0"
-          sources."type-fest-0.3.1"
-          sources."unique-string-1.0.0"
+          sources."@nodelib/fs.stat-2.0.4"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."del-6.0.0"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.5"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.2"
+          sources."globby-11.0.3"
+          sources."ignore-5.1.8"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.4"
+          sources."slash-3.0.0"
+          sources."to-regex-range-5.0.1"
+          sources."type-fest-0.16.0"
         ];
       })
       sources."term-size-2.2.1"
-      (sources."terser-5.6.1" // {
+      (sources."terser-5.7.0" // {
         dependencies = [
           sources."source-map-0.7.3"
         ];
@@ -95491,7 +96217,7 @@ in
       sources."type-fest-0.21.3"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."typescript-4.2.4"
+      sources."typescript-4.3.2"
       sources."uid-safe-2.1.5"
       sources."unbzip2-stream-1.4.3"
       sources."unicode-canonical-property-names-ecmascript-1.0.4"
@@ -95501,7 +96227,7 @@ in
       sources."union-value-1.0.1"
       sources."uniq-1.0.1"
       sources."unique-string-2.0.0"
-      sources."universal-user-agent-4.0.1"
+      sources."universal-user-agent-6.0.0"
       sources."universalify-0.1.2"
       (sources."unixify-1.0.0" // {
         dependencies = [
@@ -95519,10 +96245,15 @@ in
           sources."has-values-0.1.4"
         ];
       })
-      (sources."update-notifier-4.1.3" // {
+      (sources."update-notifier-5.1.0" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-3.0.0"
+          sources."boxen-5.0.1"
+          sources."camelcase-6.2.0"
+          sources."global-dirs-3.0.0"
+          sources."ini-2.0.0"
+          sources."is-installed-globally-0.4.0"
+          sources."is-npm-5.0.0"
+          sources."type-fest-0.20.2"
         ];
       })
       sources."uri-js-4.4.1"
@@ -95543,7 +96274,12 @@ in
       sources."vary-1.1.2"
       (sources."wait-port-0.2.9" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."commander-3.0.2"
+          sources."supports-color-5.5.0"
         ];
       })
       sources."wcwidth-1.0.1"
@@ -95574,7 +96310,7 @@ in
         ];
       })
       sources."word-wrap-1.2.3"
-      (sources."wrap-ansi-6.2.0" // {
+      (sources."wrap-ansi-7.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
         ];
@@ -95587,12 +96323,17 @@ in
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
       sources."yallist-4.0.0"
-      sources."yargs-15.4.1"
+      (sources."yargs-15.4.1" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+        ];
+      })
       sources."yargs-parser-18.1.3"
       sources."yarn-1.22.10"
       sources."yauzl-2.10.0"
       sources."yocto-queue-0.1.0"
-      sources."zip-stream-3.0.1"
+      sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -95629,10 +96370,10 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "8.0.0";
+    version = "8.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.0.0.tgz";
-      sha512 = "Jod6NxyWtcwrpAQe0O/aXOpC5QfncotgtG73dg65z6VW/C6g/G4jiajXQUBIJ8pk/VfM6mBYE9BN/HvudTunUQ==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.1.0.tgz";
+      sha512 = "o2elh1qt7YUp3lkMwY3/l4KF3j/A3fI/Qt4NH+CQQgPJdqGE9y7qnP84cjIWN27Q0jJkrSAhCVDg+wBVNBYdBg==";
     };
     dependencies = [
       sources."@npmcli/move-file-1.1.2"
@@ -95646,7 +96387,7 @@ in
       sources."are-we-there-yet-1.1.5"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."cacache-15.0.6"
+      sources."cacache-15.2.0"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."code-point-at-1.1.0"
@@ -95662,14 +96403,14 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-unicode-2.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."infer-owner-1.0.4"
@@ -95833,7 +96574,7 @@ in
       sources."find-up-1.1.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."fstream-1.0.12"
@@ -95866,7 +96607,7 @@ in
       sources."invert-kv-1.0.0"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
@@ -95904,7 +96645,7 @@ in
       sources."negotiator-0.6.2"
       (sources."node-pre-gyp-0.6.39" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
           sources."rimraf-2.7.1"
           sources."semver-5.7.1"
         ];
@@ -95926,7 +96667,7 @@ in
       sources."parseurl-1.3.3"
       sources."path-exists-2.1.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-1.1.0"
       sources."performance-now-0.2.0"
@@ -95935,7 +96676,7 @@ in
       sources."pinkie-promise-2.0.1"
       sources."plist-1.2.0"
       sources."process-nextick-args-2.0.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."punycode-1.4.1"
       sources."qs-6.7.0"
       sources."range-parser-1.2.1"
@@ -95975,7 +96716,7 @@ in
       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.9"
       (sources."sshpk-1.16.1" // {
         dependencies = [
           sources."assert-plus-1.0.0"
@@ -95993,7 +96734,7 @@ in
       sources."tar-2.2.2"
       (sources."tar-pack-3.4.1" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
           sources."rimraf-2.7.1"
         ];
       })
@@ -96079,10 +96820,10 @@ in
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-unicode-2.0.1"
       sources."iconv-lite-0.4.24"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
@@ -96096,7 +96837,7 @@ in
       sources."ms-2.1.3"
       sources."needle-2.6.0"
       sources."nopt-4.0.3"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -96140,16 +96881,16 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "1.3.2";
+    version = "1.3.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-1.3.2.tgz";
-      sha512 = "tOtD5Z8l4WNuGNfUp/LFSC/ou74LfKhIWSgT4i9WTTUxUvSlWCBu8TsPNbjl9yM17Ox2ebe57mEnOHvTjQlEyA==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-1.3.5.tgz";
+      sha512 = "P/EmWwzuY/0mQFlrklSUrVANdv9xQsbrpKrpfA8tuhhxu1OEiSgzYdo87Zj13Hi38K4f1rNPQj4rw2vEBcYS/g==";
     };
     dependencies = [
-      sources."@babel/runtime-7.13.10"
-      sources."@node-red/editor-api-1.3.2"
-      sources."@node-red/editor-client-1.3.2"
-      (sources."@node-red/nodes-1.3.2" // {
+      sources."@babel/runtime-7.14.0"
+      sources."@node-red/editor-api-1.3.5"
+      sources."@node-red/editor-client-1.3.5"
+      (sources."@node-red/nodes-1.3.5" // {
         dependencies = [
           sources."cookie-0.4.1"
           sources."http-errors-1.7.3"
@@ -96163,9 +96904,9 @@ in
           })
         ];
       })
-      sources."@node-red/registry-1.3.2"
-      sources."@node-red/runtime-1.3.2"
-      sources."@node-red/util-1.3.2"
+      sources."@node-red/registry-1.3.5"
+      sources."@node-red/runtime-1.3.5"
+      sources."@node-red/util-1.3.5"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       (sources."agent-base-6.0.2" // {
@@ -96313,10 +97054,10 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."finalhandler-1.1.2"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-2.1.0"
@@ -96324,7 +97065,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-3.1.0"
       (sources."glob-stream-6.1.0" // {
         dependencies = [
@@ -96357,7 +97098,7 @@ in
       sources."i18next-15.1.2"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
       sources."ini-1.3.8"
@@ -96432,10 +97173,10 @@ in
           sources."ms-2.1.2"
           sources."readable-stream-3.6.0"
           sources."string_decoder-1.3.0"
-          sources."ws-7.4.5"
+          sources."ws-7.4.6"
         ];
       })
-      (sources."mqtt-packet-6.9.1" // {
+      (sources."mqtt-packet-6.10.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -96473,7 +97214,7 @@ in
       sources."node-red-node-rbe-0.5.0"
       sources."node-red-node-tail-0.3.1"
       sources."nopt-5.0.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -96507,7 +97248,7 @@ in
       sources."pause-0.0.1"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
@@ -96684,7 +97425,7 @@ in
       sources."function-bind-1.1.1"
       sources."gauge-2.7.4"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -96695,7 +97436,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
@@ -96748,7 +97489,7 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
@@ -96774,7 +97515,7 @@ in
       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.9"
       sources."sshpk-1.16.1"
       sources."ssri-5.3.0"
       sources."string-width-1.0.2"
@@ -96913,7 +97654,7 @@ in
       sources."ms-2.1.3"
       sources."nopt-1.0.10"
       sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."once-1.4.0"
       sources."p-cancelable-1.1.0"
       (sources."package-json-6.5.0" // {
@@ -96921,7 +97662,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."prepend-http-2.0.0"
       sources."pstree.remy-1.1.8"
       sources."pump-3.0.0"
@@ -96982,15 +97723,15 @@ in
   np = nodeEnv.buildNodePackage {
     name = "np";
     packageName = "np";
-    version = "7.4.0";
+    version = "7.5.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/np/-/np-7.4.0.tgz";
-      sha512 = "woJn5Bodg0/VDyUWx5EHIsi+8QlKSows0AVRBt47PG++cJAVE6jQFXcXDFDBMqY5PueFc4w0SA3gxqPklk6oGg==";
+      url = "https://registry.npmjs.org/np/-/np-7.5.0.tgz";
+      sha512 = "CdpgqtO6JpDKJjQ2gueY0jnbz6APWA9wFXSwPv5bXg4seSBibHqQ8JyWxYlS8YRfVbpeDtj582wcAWTlfy5qNA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -97015,7 +97756,7 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -97056,7 +97797,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
       sources."clean-stack-2.2.0"
@@ -97108,7 +97849,7 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-3.0.0"
       sources."escape-string-regexp-4.0.0"
-      sources."execa-5.0.0"
+      sources."execa-5.0.1"
       sources."external-editor-3.1.0"
       sources."fast-glob-3.2.5"
       sources."fastq-1.11.0"
@@ -97123,7 +97864,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-stream-6.0.1"
       sources."github-url-from-git-1.5.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."global-dirs-2.1.0"
       sources."globby-11.0.3"
@@ -97148,7 +97889,7 @@ in
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
       sources."ignore-5.1.8"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."import-fresh-3.3.0"
       sources."import-lazy-2.1.0"
       (sources."import-local-3.0.2" // {
@@ -97195,7 +97936,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -97318,7 +98059,7 @@ in
           sources."hosted-git-info-4.0.2"
         ];
       })
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       (sources."npm-name-6.0.1" // {
         dependencies = [
           sources."p-map-3.0.0"
@@ -97338,11 +98079,11 @@ in
       sources."os-tmpdir-1.0.2"
       (sources."ow-0.21.0" // {
         dependencies = [
-          sources."@sindresorhus/is-4.0.0"
+          sources."@sindresorhus/is-4.0.1"
           sources."type-fest-0.20.2"
         ];
       })
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-defer-1.0.0"
       (sources."p-event-4.2.0" // {
         dependencies = [
@@ -97389,9 +98130,9 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       (sources."pkg-dir-5.0.0" // {
         dependencies = [
           sources."find-up-5.0.0"
@@ -97456,7 +98197,7 @@ in
       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.9"
       sources."split-1.0.1"
       sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
@@ -97471,7 +98212,7 @@ in
       sources."tmp-0.0.33"
       sources."to-readable-stream-2.1.0"
       sources."to-regex-range-5.0.1"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."tslib-1.14.1"
       sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
@@ -97518,10 +98259,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "7.10.0";
+    version = "7.15.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-7.10.0.tgz";
-      sha512 = "DD4eEB71HGVt6pS6n4LmFD4eHsrglJ+QtLhv/kP2UWNKkJalL8TPfsiw9p8LmWKa6ed61LHPw5FE6krS3aGv0A==";
+      url = "https://registry.npmjs.org/npm/-/npm-7.15.1.tgz";
+      sha512 = "sPk+GrqawshbG3T81r2QvvSxSQXBFWyn5NGLacf87l+/odi2ZRHkWdLrg304Lw0DrwwIIaGxUjp0FJXaMtIErQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -97536,22 +98277,21 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "11.4.1";
+    version = "11.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-11.4.1.tgz";
-      sha512 = "bWElM5CeJ9gA/wvtqB4ljcKzAZ3BlPM2g/7mVi8mPdCR2N6dhgS4q5GCzQn4ZvpeKSFll3bUGkiR/lgSQOlN8Q==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-11.6.0.tgz";
+      sha512 = "/l4S7Gh+8+Rg5itWsqFya5RRSHtPzw5neyAlbWNJfBfEeRX6lYVxKgs85QFBOKrZj3eL5MGBaUW8228TmjMhrw==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
-      sources."@npmcli/ci-detect-1.3.0"
-      sources."@npmcli/git-2.0.8"
+      sources."@npmcli/git-2.0.9"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
@@ -97593,7 +98333,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."builtins-1.0.3"
-      sources."cacache-15.0.6"
+      sources."cacache-15.2.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -97602,7 +98342,7 @@ in
       })
       sources."camelcase-6.2.0"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
       sources."cint-8.2.1"
@@ -97657,7 +98397,7 @@ in
       sources."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       (sources."global-dirs-3.0.0" // {
         dependencies = [
@@ -97678,9 +98418,9 @@ in
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."ignore-5.1.8"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
@@ -97740,7 +98480,7 @@ in
       })
       sources."make-fetch-happen-8.0.14"
       sources."map-age-cleaner-0.1.3"
-      sources."mem-8.1.0"
+      sources."mem-8.1.1"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.4"
       sources."mime-db-1.47.0"
@@ -97761,14 +98501,14 @@ in
       sources."ms-2.1.2"
       sources."node-gyp-7.1.2"
       sources."nopt-5.0.0"
-      sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."normalize-url-4.5.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
-      sources."npm-packlist-2.1.5"
+      sources."npm-packlist-2.2.2"
       sources."npm-pick-manifest-6.1.1"
-      sources."npm-registry-fetch-9.0.0"
+      sources."npm-registry-fetch-10.1.2"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
@@ -97785,13 +98525,13 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.3.1"
+      sources."pacote-11.3.3"
       sources."parse-github-url-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
@@ -97962,7 +98702,7 @@ in
       })
       sources."gauge-2.7.4"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-2.0.3"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -98121,69 +98861,72 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      sources."@babel/compat-data-7.14.4"
+      (sources."@babel/core-7.14.3" // {
         dependencies = [
           sources."json5-2.2.0"
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.14.3" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       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.13" // {
+      (sources."@babel/helper-compilation-targets-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.13.11"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
-      (sources."@babel/helper-define-polyfill-provider-0.2.0" // {
+      sources."@babel/helper-create-class-features-plugin-7.14.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.14.3"
+      (sources."@babel/helper-define-polyfill-provider-0.2.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/helper-explode-assignable-expression-7.13.0"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      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.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       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-replace-supers-7.14.4"
       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.12.11"
+      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.13.10"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/helpers-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
       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-async-generator-functions-7.14.2"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
-      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-class-static-block-7.14.3"
+      sources."@babel/plugin-proposal-dynamic-import-7.14.2"
+      sources."@babel/plugin-proposal-export-namespace-from-7.14.2"
+      sources."@babel/plugin-proposal-json-strings-7.14.2"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.2"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.2"
+      sources."@babel/plugin-proposal-numeric-separator-7.14.2"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.4"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.14.2"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.2"
       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."@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-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-flow-7.12.13"
@@ -98195,14 +98938,15 @@ in
       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.12.13"
-      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-block-scoping-7.14.4"
+      sources."@babel/plugin-transform-classes-7.14.4"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.14.4"
       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"
@@ -98211,16 +98955,16 @@ in
       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.13.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-amd-7.14.2"
+      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.13.0"
+      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-parameters-7.14.2"
       sources."@babel/plugin-transform-property-literals-7.12.13"
-      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/plugin-transform-react-jsx-7.14.3"
       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"
@@ -98230,16 +98974,16 @@ in
       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.13.15" // {
+      (sources."@babel/preset-env-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.14.0"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -98261,7 +99005,7 @@ in
       sources."alphanum-sort-1.0.2"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
-      sources."ansi-to-html-0.6.14"
+      sources."ansi-to-html-0.6.15"
       (sources."anymatch-2.0.0" // {
         dependencies = [
           sources."normalize-path-2.1.1"
@@ -98294,13 +99038,13 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
-      (sources."babel-plugin-polyfill-corejs2-0.2.0" // {
+      (sources."babel-plugin-polyfill-corejs2-0.2.2" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.2.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.0"
+      sources."babel-plugin-polyfill-corejs3-0.2.2"
+      sources."babel-plugin-polyfill-regenerator-0.2.2"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
           sources."regenerator-runtime-0.11.1"
@@ -98344,7 +99088,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -98361,7 +99105,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -98388,7 +99132,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.13.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -98482,7 +99226,6 @@ in
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
           sources."domelementtype-2.2.0"
-          sources."entities-2.2.0"
         ];
       })
       sources."domain-browser-1.2.0"
@@ -98500,19 +99243,19 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
         ];
       })
       sources."encodeurl-1.0.2"
-      sources."entities-1.1.2"
+      sources."entities-2.2.0"
       sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
-      (sources."es-abstract-1.18.0" // {
+      (sources."es-abstract-1.18.3" // {
         dependencies = [
-          sources."object-inspect-1.10.2"
+          sources."object-inspect-1.10.3"
         ];
       })
       sources."es-to-primitive-1.2.1"
@@ -98563,7 +99306,7 @@ in
       sources."get-port-3.2.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -98608,15 +99351,14 @@ in
           sources."posthtml-0.15.2"
           sources."posthtml-parser-0.7.2"
           sources."source-map-0.7.3"
-          sources."terser-5.6.1"
+          sources."terser-5.7.0"
         ];
       })
       (sources."htmlparser2-6.1.0" // {
         dependencies = [
-          sources."dom-serializer-1.3.1"
+          sources."dom-serializer-1.3.2"
           sources."domelementtype-2.2.0"
           sources."domutils-2.6.0"
-          sources."entities-2.2.0"
         ];
       })
       sources."http-errors-1.7.3"
@@ -98636,19 +99378,19 @@ in
         ];
       })
       sources."is-arrayish-0.2.1"
-      sources."is-bigint-1.0.1"
+      sources."is-bigint-1.0.2"
       sources."is-binary-path-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
         ];
       })
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       (sources."is-descriptor-1.0.2" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -98661,13 +99403,13 @@ in
       sources."is-html-1.1.0"
       sources."is-negative-zero-2.0.1"
       sources."is-number-3.0.0"
-      sources."is-number-object-1.0.4"
+      sources."is-number-object-1.0.5"
       sources."is-obj-2.0.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-resolvable-1.1.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-url-1.2.4"
       sources."is-windows-1.0.2"
@@ -98763,7 +99505,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."normalize-path-3.0.0"
       sources."normalize-url-3.3.0"
       sources."nth-check-1.0.2"
@@ -98777,7 +99519,7 @@ in
       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."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
@@ -98795,7 +99537,7 @@ in
       sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pbkdf2-3.1.2"
       sources."performance-now-2.1.0"
       sources."physical-cpu-count-2.0.0"
@@ -98863,7 +99605,7 @@ in
       sources."postcss-ordered-values-4.1.2"
       sources."postcss-reduce-initial-4.0.3"
       sources."postcss-reduce-transforms-4.0.2"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.6"
       sources."postcss-svgo-4.0.3"
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-3.3.1"
@@ -98871,6 +99613,7 @@ in
       (sources."posthtml-parser-0.4.2" // {
         dependencies = [
           sources."domhandler-2.4.2"
+          sources."entities-1.1.2"
           sources."htmlparser2-3.10.1"
           sources."readable-stream-3.6.0"
         ];
@@ -98995,7 +99738,7 @@ in
         ];
       })
       sources."sprintf-js-1.0.3"
-      sources."srcset-3.0.0"
+      sources."srcset-3.0.1"
       sources."sshpk-1.16.1"
       sources."stable-0.1.8"
       (sources."static-eval-2.1.0" // {
@@ -99220,7 +99963,7 @@ in
       sources."find-up-3.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
@@ -99230,7 +99973,7 @@ in
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."handlebars-4.7.7"
       sources."har-schema-2.0.0"
@@ -99257,7 +100000,7 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
-      (sources."kad-git+https://github.com/wikimedia/kad.git#master" // {
+      (sources."kad-git://github.com/wikimedia/kad#master" // {
         dependencies = [
           sources."ms-0.7.3"
         ];
@@ -99265,7 +100008,7 @@ in
       sources."kad-fs-0.0.4"
       sources."kad-localstorage-0.0.7"
       sources."kad-memstore-0.0.1"
-      sources."limitation-0.2.1"
+      sources."limitation-0.2.2"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
       sources."lodash.clone-4.5.0"
@@ -99273,7 +100016,6 @@ in
       sources."lru-cache-6.0.0"
       sources."media-typer-0.3.0"
       sources."mediawiki-title-0.6.5"
-      sources."merge-1.2.1"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
@@ -99309,7 +100051,7 @@ in
       sources."process-nextick-args-2.0.1"
       sources."prom-client-11.5.3"
       sources."promise-8.1.0"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."prr-1.0.1"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
@@ -99349,7 +100091,7 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."service-runner-2.8.2" // {
+      (sources."service-runner-2.8.3" // {
         dependencies = [
           sources."semver-7.3.5"
           sources."yargs-14.2.3"
@@ -99372,7 +100114,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -99432,7 +100174,7 @@ in
       sources."find-yarn-workspace-root-2.0.0"
       sources."fs-extra-7.0.1"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-flag-3.0.0"
       sources."inflight-1.0.6"
@@ -99453,7 +100195,7 @@ in
       sources."os-tmpdir-1.0.2"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."rimraf-2.7.1"
       sources."semver-5.7.1"
       sources."shebang-command-1.2.0"
@@ -99556,7 +100298,7 @@ in
       sources."deep-extend-0.6.0"
       sources."define-properties-1.1.3"
       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."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -99576,7 +100318,7 @@ in
       sources."get-browser-rtc-1.1.0"
       sources."get-intrinsic-1.1.1"
       sources."get-stdin-4.0.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
@@ -99609,11 +100351,11 @@ in
       sources."ipaddr.js-2.0.0"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
-      sources."is-date-object-1.0.2"
+      sources."is-core-module-2.4.0"
+      sources."is-date-object-1.0.4"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-utf8-0.2.1"
       sources."isarray-1.0.0"
       sources."k-bucket-0.6.0"
@@ -99673,7 +100415,7 @@ in
       })
       sources."path-exists-2.1.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-1.1.0"
       (sources."peer-wire-protocol-0.7.1" // {
         dependencies = [
@@ -99732,7 +100474,7 @@ in
       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.9"
       sources."speedometer-0.1.4"
       sources."stream-buffers-2.2.0"
       sources."string-width-1.0.2"
@@ -99896,7 +100638,7 @@ in
           sources."ms-2.1.3"
         ];
       })
-      (sources."engine.io-client-3.5.1" // {
+      (sources."engine.io-client-3.5.2" // {
         dependencies = [
           sources."debug-3.1.0"
         ];
@@ -99915,14 +100657,14 @@ in
       sources."fluent-ffmpeg-2.1.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-chunk-store-1.7.0"
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
       sources."get-browser-rtc-1.1.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -100034,7 +100776,7 @@ in
       sources."peer-wire-swarm-0.12.2"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -100141,8 +100883,8 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
-      sources."xmlhttprequest-ssl-1.5.5"
+      sources."ws-7.4.6"
+      sources."xmlhttprequest-ssl-1.6.3"
       sources."xtend-4.0.2"
       sources."yeast-0.1.2"
       sources."zip-stream-2.1.3"
@@ -100255,7 +100997,7 @@ in
       sources."fclone-1.0.11"
       sources."file-uri-to-path-2.0.0"
       sources."fill-range-7.0.1"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
@@ -100264,7 +101006,7 @@ in
       sources."get-uri-3.0.2"
       sources."git-node-fs-1.0.0"
       sources."git-sha1-0.1.2"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
@@ -100278,7 +101020,7 @@ in
       sources."ini-1.3.8"
       sources."ip-1.1.5"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
@@ -100315,8 +101057,8 @@ in
       sources."pac-resolver-4.2.0"
       sources."pako-0.2.9"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
-      sources."picomatch-2.2.3"
+      sources."path-parse-1.0.7"
+      sources."picomatch-2.3.0"
       sources."pidusage-2.0.21"
       sources."pm2-axon-4.0.1"
       sources."pm2-axon-rpc-0.7.1"
@@ -100388,10 +101130,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "6.0.2";
+    version = "6.6.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.0.2.tgz";
-      sha512 = "Zg1wbTjGu2dcQKzKq4IZSshK6zIEedEvlmE/EpujnFcbzJHXCAuyHZR2GuhR1887qc41dHs/bxnXEOol2/sapQ==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.6.2.tgz";
+      sha512 = "w1YEyx+xiTbrxVt5OP6JG0LqwkK/hq2OkCYj7RZhK9oyv7cCEkgkX5Z5MPVC1wTCv2kQDJRoXzBeedPiIhzN8Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -100441,8 +101183,8 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -100464,7 +101206,7 @@ in
       sources."binary-extensions-2.2.0"
       sources."braces-3.0.2"
       sources."callsites-3.1.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chokidar-3.5.1"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
@@ -100517,7 +101259,7 @@ in
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-2.3.0"
       sources."postcss-load-config-3.0.1"
       sources."postcss-reporter-7.0.2"
@@ -100554,10 +101296,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "2.2.1";
+    version = "2.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz";
-      sha512 = "PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz";
+      sha512 = "kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -100583,7 +101325,7 @@ in
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
       sources."gaze-1.1.3"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."globule-1.3.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -100712,7 +101454,7 @@ in
       sources."function-bind-1.1.1"
       sources."gaze-1.1.3"
       sources."get-assigned-identifiers-1.2.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."globule-1.3.2"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
@@ -100735,7 +101477,7 @@ in
         ];
       })
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."json-stable-stringify-0.0.1"
@@ -100783,7 +101525,7 @@ in
       sources."parse-asn1-5.1.6"
       sources."path-browserify-0.0.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-platform-0.11.15"
       sources."pbkdf2-3.1.2"
       sources."process-0.11.10"
@@ -100940,10 +101682,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.132";
+    version = "1.1.145";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.132.tgz";
-      sha512 = "quvG9Ip2NwKEShsLJ7eLlkQ/ST5SX84QCgO/k7gGqlCHwuifn9/v7LrzdpdFbkVnQR51egUNWwwLQRoIBT6vUA==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.145.tgz";
+      sha512 = "eyrK9Ilut2shvqi/TFmpfUrm7U6DrkskMa8UPofkGJZCO1PJzVwzKaGWrR57zlbcAxs5PVvK9JGSIO9DJUVNyA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -101015,15 +101757,15 @@ in
       sources."function-bind-1.1.1"
       sources."get-caller-file-1.0.3"
       sources."get-stream-4.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graphql-0.11.7"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."invert-kv-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-stream-1.1.0"
       sources."is-url-1.2.4"
@@ -101074,7 +101816,7 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pluralize-7.0.0"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
@@ -101191,9 +101933,8 @@ in
     dependencies = [
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
-      sources."array-filter-1.0.0"
       sources."async-0.2.10"
-      sources."available-typed-arrays-1.0.2"
+      sources."available-typed-arrays-1.0.4"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."call-bind-1.0.2"
@@ -101203,7 +101944,7 @@ in
       sources."cycle-1.0.3"
       sources."deep-equal-2.0.5"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
@@ -101212,7 +101953,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
       sources."has-bigints-1.0.1"
@@ -101221,17 +101962,17 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-arguments-1.1.0"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-number-object-1.0.5"
+      sources."is-regex-1.1.3"
       sources."is-set-2.0.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.5"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
@@ -101242,7 +101983,7 @@ in
       sources."mkdirp-0.5.5"
       sources."mute-stream-0.0.8"
       sources."ncp-0.4.2"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
@@ -101292,66 +102033,69 @@ in
       sha512 = "coA9MuNPfN+8TyFj7aOycw2e5W9t+sSgFOUyK30oDrh2MWWWHLjY0I4V1puyCconC2arggfDE2GYXvqOTCGv9Q==";
     };
     dependencies = [
-      sources."@babel/cli-7.13.14"
+      sources."@babel/cli-7.14.3"
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      sources."@babel/compat-data-7.14.4"
+      (sources."@babel/core-7.14.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.14.3"
       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.13" // {
+      (sources."@babel/helper-compilation-targets-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.13.11"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
-      (sources."@babel/helper-define-polyfill-provider-0.2.0" // {
+      sources."@babel/helper-create-class-features-plugin-7.14.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.14.3"
+      (sources."@babel/helper-define-polyfill-provider-0.2.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/helper-explode-assignable-expression-7.13.0"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      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.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       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-replace-supers-7.14.4"
       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.12.11"
+      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.13.10"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/helpers-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
       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-async-generator-functions-7.14.2"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
+      sources."@babel/plugin-proposal-class-static-block-7.14.3"
+      sources."@babel/plugin-proposal-dynamic-import-7.14.2"
       sources."@babel/plugin-proposal-export-default-from-7.12.13"
-      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-export-namespace-from-7.14.2"
+      sources."@babel/plugin-proposal-json-strings-7.14.2"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.2"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.2"
+      sources."@babel/plugin-proposal-numeric-separator-7.14.2"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.4"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.14.2"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.2"
       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."@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-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-default-from-7.12.13"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
@@ -101363,14 +102107,15 @@ in
       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.12.13"
-      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-block-scoping-7.14.4"
+      sources."@babel/plugin-transform-classes-7.14.4"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.14.4"
       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"
@@ -101378,22 +102123,22 @@ in
       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.13.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-amd-7.14.2"
+      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.13.0"
+      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-parameters-7.14.2"
       sources."@babel/plugin-transform-property-literals-7.12.13"
-      sources."@babel/plugin-transform-react-display-name-7.12.13"
-      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/plugin-transform-react-display-name-7.14.2"
+      sources."@babel/plugin-transform-react-jsx-7.14.3"
       sources."@babel/plugin-transform-react-jsx-development-7.12.17"
       sources."@babel/plugin-transform-react-pure-annotations-7.12.1"
       sources."@babel/plugin-transform-regenerator-7.13.15"
       sources."@babel/plugin-transform-reserved-words-7.12.13"
-      (sources."@babel/plugin-transform-runtime-7.13.15" // {
+      (sources."@babel/plugin-transform-runtime-7.14.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -101405,7 +102150,7 @@ in
       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.13.15" // {
+      (sources."@babel/preset-env-7.14.4" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -101413,17 +102158,17 @@ in
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-react-7.13.13"
       sources."@babel/preset-stage-0-7.8.3"
-      sources."@babel/register-7.13.14"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/register-7.13.16"
+      sources."@babel/runtime-7.14.0"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       sources."@reach/router-1.3.4"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/glob-7.1.3"
       sources."@types/json-schema-7.0.7"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.4"
       sources."@webassemblyjs/ast-1.9.0"
@@ -101512,13 +102257,13 @@ in
       })
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-macros-2.8.0"
-      (sources."babel-plugin-polyfill-corejs2-0.2.0" // {
+      (sources."babel-plugin-polyfill-corejs2-0.2.2" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.2.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.0"
+      sources."babel-plugin-polyfill-corejs3-0.2.2"
+      sources."babel-plugin-polyfill-regenerator-0.2.2"
       sources."babel-plugin-transform-react-remove-prop-types-0.4.24"
       sources."babel-plugin-universal-import-4.0.2"
       (sources."babel-runtime-6.26.0" // {
@@ -101577,7 +102322,7 @@ in
         ];
       })
       sources."browserify-zlib-0.1.4"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -101611,7 +102356,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caw-2.0.1"
       (sources."chalk-2.4.2" // {
@@ -101661,6 +102406,7 @@ in
           sources."string-width-3.1.0"
         ];
       })
+      sources."clone-deep-4.0.1"
       sources."clone-response-1.0.2"
       sources."coa-2.0.2"
       sources."collection-visit-1.0.0"
@@ -101695,7 +102441,7 @@ in
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.13.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -101803,14 +102549,14 @@ in
       sources."depd-1.1.2"
       sources."des.js-1.0.1"
       sources."destroy-1.0.4"
-      sources."detect-node-2.0.5"
+      sources."detect-node-2.1.0"
       (sources."diffie-hellman-5.0.3" // {
         dependencies = [
           sources."bn.js-4.12.0"
         ];
       })
       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."dom-converter-0.2.0"
       (sources."dom-serializer-0.2.2" // {
@@ -101835,7 +102581,7 @@ in
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -101850,7 +102596,7 @@ in
           sources."debug-4.1.1"
         ];
       })
-      (sources."engine.io-client-3.5.1" // {
+      (sources."engine.io-client-3.5.2" // {
         dependencies = [
           sources."component-emitter-1.3.0"
           sources."debug-3.1.0"
@@ -101866,7 +102612,7 @@ in
       sources."entities-2.2.0"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
@@ -101945,7 +102691,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."faye-websocket-0.11.3"
+      sources."faye-websocket-0.11.4"
       sources."fd-slicer-1.1.0"
       sources."figgy-pudding-3.5.2"
       sources."figures-2.0.0"
@@ -101969,9 +102715,9 @@ in
       sources."find-cache-dir-2.1.0"
       sources."find-up-3.0.0"
       sources."flush-write-stream-1.1.1"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       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."from2-2.3.0"
@@ -101990,7 +102736,7 @@ in
       sources."get-value-2.0.6"
       sources."git-clone-0.1.0"
       sources."git-promise-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."globals-11.12.0"
       (sources."globby-6.1.0" // {
@@ -102106,7 +102852,7 @@ in
         dependencies = [
           sources."ansi-escapes-4.3.2"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."figures-3.2.0"
@@ -102125,15 +102871,15 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-bigint-1.0.1"
+      sources."is-bigint-1.0.2"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.0"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-deflate-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
@@ -102145,7 +102891,7 @@ in
       sources."is-natural-number-4.0.1"
       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.5"
       sources."is-obj-2.0.0"
       sources."is-object-1.0.2"
       sources."is-path-cwd-2.2.0"
@@ -102153,12 +102899,12 @@ in
       sources."is-path-inside-2.1.0"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-resolvable-1.1.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
@@ -102232,8 +102978,12 @@ in
         ];
       })
       sources."mime-2.5.2"
-      sources."mime-db-1.47.0"
-      sources."mime-types-2.1.30"
+      sources."mime-db-1.48.0"
+      (sources."mime-types-2.1.30" // {
+        dependencies = [
+          sources."mime-db-1.47.0"
+        ];
+      })
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
@@ -102274,7 +103024,7 @@ in
         ];
       })
       sources."node-modules-regexp-1.0.0"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."normalize-path-3.0.0"
       sources."normalize-range-0.1.2"
       (sources."normalize-url-2.0.1" // {
@@ -102304,14 +103054,14 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       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"
@@ -102319,7 +103069,7 @@ in
       sources."onetime-2.0.1"
       sources."opener-1.5.2"
       sources."opn-5.5.0"
-      sources."optimize-css-assets-webpack-plugin-5.0.4"
+      sources."optimize-css-assets-webpack-plugin-5.0.6"
       sources."original-1.0.2"
       sources."os-browserify-0.3.0"
       sources."os-tmpdir-1.0.2"
@@ -102349,14 +103099,14 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-2.2.1"
       sources."path-type-4.0.0"
       sources."pbkdf2-3.1.2"
       sources."peek-stream-1.1.3"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      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"
@@ -102493,7 +103243,7 @@ in
           sources."postcss-value-parser-3.3.1"
         ];
       })
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.6"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
@@ -102509,7 +103259,7 @@ in
       sources."promise-inflight-1.0.1"
       sources."prop-types-15.7.2"
       sources."proto-list-1.2.4"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."prr-1.0.1"
       sources."pseudomap-1.0.2"
       (sources."public-encrypt-4.0.3" // {
@@ -102603,7 +103353,7 @@ in
         ];
       })
       sources."select-hose-2.0.0"
-      sources."selfsigned-1.10.8"
+      sources."selfsigned-1.10.11"
       sources."semver-5.7.1"
       (sources."send-0.17.1" // {
         dependencies = [
@@ -102652,6 +103402,7 @@ in
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.1.1"
       sources."sha.js-2.4.11"
+      sources."shallow-clone-3.0.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shorthash-0.0.2"
@@ -102993,8 +103744,8 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
-      sources."xmlhttprequest-ssl-1.5.5"
+      sources."ws-7.4.6"
+      sources."xmlhttprequest-ssl-1.6.3"
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
       sources."yallist-2.1.2"
@@ -103075,45 +103826,39 @@ in
   readability-cli = nodeEnv.buildNodePackage {
     name = "readability-cli";
     packageName = "readability-cli";
-    version = "2.2.4-pre";
+    version = "2.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/readability-cli/-/readability-cli-2.2.4-pre.tgz";
-      sha512 = "KKCB4KGnrbCnA7KAGlArlGccwqP6UXxxbNkXVEoTGM8GHULUa5xkeIp5QMDwagRvmVR0vBIwLewz+QW1WZORAQ==";
+      url = "https://registry.npmjs.org/readability-cli/-/readability-cli-2.3.0.tgz";
+      sha512 = "9hiYYcNshOLt4kLXcuE1nIO5nAFyOcnau3nn+rw/WNQC52Vpa77GqeJZCSBIWAUNsALmtsCby76oOiSJlX5dbQ==";
     };
     dependencies = [
       sources."@mozilla/readability-0.4.1"
+      sources."@tootallnate/once-1.1.2"
       sources."abab-2.0.5"
-      sources."acorn-8.1.1"
+      sources."acorn-8.3.0"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
           sources."acorn-7.4.1"
         ];
       })
       sources."acorn-walk-7.2.0"
-      sources."ajv-6.12.6"
+      sources."agent-base-6.0.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
-      sources."asn1-0.2.4"
-      sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.11.0"
-      sources."bcrypt-pbkdf-1.0.2"
       sources."browser-process-hrtime-1.0.0"
-      sources."caseless-0.12.0"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."core-util-is-1.0.2"
       sources."cssom-0.4.4"
       (sources."cssstyle-2.3.0" // {
         dependencies = [
           sources."cssom-0.3.8"
         ];
       })
-      sources."dashdash-1.14.1"
       sources."data-urls-2.0.0"
+      sources."debug-4.3.2"
       sources."decimal.js-10.2.1"
       sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
@@ -103122,81 +103867,45 @@ in
           sources."webidl-conversions-5.0.0"
         ];
       })
-      sources."dompurify-2.2.7"
-      sources."ecc-jsbn-0.1.2"
+      sources."dompurify-2.2.9"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."escodegen-2.0.0"
       sources."esprima-4.0.1"
       sources."estraverse-5.2.0"
       sources."esutils-2.0.3"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
+      sources."form-data-3.0.1"
       sources."get-caller-file-2.0.5"
-      sources."getpass-0.1.7"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
       sources."html-encoding-sniffer-2.0.1"
-      sources."http-signature-1.2.0"
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-potential-custom-element-name-1.0.1"
-      sources."is-typedarray-1.0.0"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
-      sources."jsdom-16.5.3"
-      sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsdom-16.6.0"
       sources."levn-0.3.0"
       sources."lodash-4.17.21"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
+      sources."ms-2.1.2"
       sources."nwsapi-2.2.0"
-      sources."oauth-sign-0.9.0"
       sources."optionator-0.8.3"
       sources."parse5-6.0.1"
-      sources."performance-now-2.1.0"
       sources."prelude-ls-1.1.2"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
-      sources."qs-6.5.2"
-      (sources."request-2.88.2" // {
-        dependencies = [
-          sources."tough-cookie-2.5.0"
-        ];
-      })
-      sources."request-promise-core-1.1.4"
-      (sources."request-promise-native-1.0.9" // {
-        dependencies = [
-          sources."tough-cookie-2.5.0"
-        ];
-      })
       sources."require-directory-2.1.1"
-      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."saxes-5.0.1"
       sources."source-map-0.6.1"
-      sources."sshpk-1.16.1"
-      sources."stealthy-require-1.1.1"
       sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
       sources."symbol-tree-3.2.4"
       sources."tough-cookie-4.0.0"
-      sources."tr46-2.0.2"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
+      sources."tr46-2.1.0"
       sources."type-check-0.3.2"
       sources."universalify-0.1.2"
-      sources."uri-js-4.4.1"
-      sources."uuid-3.4.0"
-      sources."verror-1.10.0"
       sources."w3c-hr-time-1.0.2"
       sources."w3c-xmlserializer-2.0.0"
       sources."webidl-conversions-6.1.0"
@@ -103205,11 +103914,11 @@ in
       sources."whatwg-url-8.5.0"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
-      sources."yargs-17.0.0-candidate.12"
+      sources."yargs-17.0.1"
       sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
@@ -103232,36 +103941,37 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.14.3" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.12.13"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-module-imports-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
+      sources."@babel/parser-7.14.4"
+      sources."@babel/runtime-7.14.0"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       sources."@emotion/is-prop-valid-0.8.8"
       sources."@emotion/memoize-0.7.4"
       sources."@emotion/stylis-0.8.5"
       sources."@emotion/unitless-0.7.5"
       sources."@exodus/schemasafe-1.0.0-rc.3"
       sources."@redocly/ajv-6.12.4"
-      (sources."@redocly/openapi-core-1.0.0-beta.44" // {
+      (sources."@redocly/openapi-core-1.0.0-beta.49" // {
         dependencies = [
-          sources."@types/node-14.14.41"
+          sources."@types/node-14.17.1"
         ];
       })
       sources."@redocly/react-dropdown-aria-2.0.11"
-      sources."@types/node-13.13.50"
+      sources."@types/json-schema-7.0.7"
+      sources."@types/node-13.13.52"
       (sources."ajv-5.5.2" // {
         dependencies = [
           sources."fast-deep-equal-1.1.0"
@@ -103328,7 +104038,7 @@ in
       sources."concat-map-0.0.1"
       sources."console-browserify-1.2.0"
       sources."constants-browserify-1.0.0"
-      sources."core-js-3.10.1"
+      sources."core-js-3.13.1"
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
@@ -103351,7 +104061,7 @@ in
         ];
       })
       sources."domain-browser-1.2.0"
-      sources."dompurify-2.2.7"
+      sources."dompurify-2.2.9"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -103431,8 +104141,8 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."mobx-6.2.0"
-      sources."mobx-react-7.1.0"
+      sources."mobx-6.3.2"
+      sources."mobx-react-7.2.0"
       sources."mobx-react-lite-3.2.0"
       sources."ms-2.1.2"
       sources."neo-async-2.6.2"
@@ -103442,16 +104152,16 @@ in
       sources."node-readfiles-0.2.0"
       sources."normalize-path-3.0.0"
       sources."oas-kit-common-1.0.8"
-      sources."oas-linter-3.2.1"
-      (sources."oas-resolver-2.5.4" // {
+      sources."oas-linter-3.2.2"
+      (sources."oas-resolver-2.5.5" // {
         dependencies = [
-          sources."yargs-16.2.0"
+          sources."yargs-17.0.1"
         ];
       })
       sources."oas-schema-walker-1.1.5"
       sources."oas-validator-4.0.8"
       sources."object-assign-4.1.1"
-      sources."openapi-sampler-1.0.0-beta.18"
+      sources."openapi-sampler-1.0.1"
       sources."os-browserify-0.3.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -103461,9 +104171,9 @@ in
       sources."path-browserify-0.0.1"
       sources."path-exists-4.0.0"
       sources."pbkdf2-3.1.2"
-      sources."perfect-scrollbar-1.5.0"
-      sources."picomatch-2.2.3"
-      sources."polished-3.7.1"
+      sources."perfect-scrollbar-1.5.1"
+      sources."picomatch-2.3.0"
+      sources."polished-3.7.2"
       sources."postcss-value-parser-4.1.0"
       sources."prismjs-1.23.0"
       sources."process-0.11.10"
@@ -103512,7 +104222,7 @@ in
       sources."should-type-1.4.0"
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
-      sources."slugify-1.5.0"
+      sources."slugify-1.5.3"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
       sources."stickyfill-1.1.1"
@@ -103521,7 +104231,7 @@ in
       sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
-      sources."styled-components-5.2.3"
+      sources."styled-components-5.3.0"
       sources."supports-color-5.5.0"
       sources."swagger2openapi-6.2.3"
       sources."timers-browserify-2.0.12"
@@ -103531,7 +104241,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tslib-2.2.0"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       (sources."uri-js-4.4.1" // {
         dependencies = [
           sources."punycode-2.1.1"
@@ -103632,7 +104342,7 @@ in
       sources."ink-2.7.1"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-1.1.0"
       sources."js-tokens-4.0.0"
@@ -103676,7 +104386,7 @@ in
       sources."p-try-1.0.0"
       sources."parse-json-4.0.0"
       sources."path-exists-3.0.0"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-3.0.0"
       sources."pify-3.0.0"
       sources."prop-types-15.7.2"
@@ -103696,7 +104406,7 @@ in
       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.9"
       (sources."string-length-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -103729,10 +104439,10 @@ in
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
-    version = "4.1.0";
+    version = "4.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.1.0.tgz";
-      sha512 = "lYOMhxSWgq5jtgspF7eRL0d2rBnHO/VGZ4/qp46yu+eGoWqJkYHEuepEXzx71M8MI6Rf8HBYWaTnKi5uHWcU1Q==";
+      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.1.1.tgz";
+      sha512 = "Ol+/3LF4sZKQQOaG7/Jsa7t5Kix1I+dx9UEYL8mOOn2sWROtLcbI3AGHZbNQPWeuvnQ/y1R3MJ0vN9ZI5nBPUg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -103757,7 +104467,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."minimatch-3.0.4"
@@ -103778,10 +104488,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.45.2";
+    version = "2.50.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.45.2.tgz";
-      sha512 = "kRRU7wXzFHUzBIv0GfoFFIN3m9oteY4uAsKllIpQDId5cfnkWF2J130l+27dzDju0E6MScKiV0ZM5Bw8m4blYQ==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.50.5.tgz";
+      sha512 = "Ztz4NurU2LbS3Jn5rlhnYv35z6pkjBUmYKr94fOBIKINKRO6kug9NTFHArT7jqwMP2kqEZ39jJuEtkk91NBltQ==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -103803,13 +104513,14 @@ in
     src = ../../misc/vscode-extensions/rust-analyzer/build-deps;
     dependencies = [
       sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      (sources."@eslint/eslintrc-0.4.0" // {
+      (sources."@eslint/eslintrc-0.4.1" // {
         dependencies = [
           sources."globals-12.4.0"
           sources."ignore-4.0.6"
@@ -103834,14 +104545,14 @@ in
       sources."@types/node-12.12.70"
       sources."@types/node-fetch-2.5.10"
       sources."@types/resolve-1.17.1"
-      sources."@types/vscode-1.55.0"
-      sources."@typescript-eslint/eslint-plugin-4.22.0"
-      sources."@typescript-eslint/experimental-utils-4.22.0"
-      sources."@typescript-eslint/parser-4.22.0"
-      sources."@typescript-eslint/scope-manager-4.22.0"
-      sources."@typescript-eslint/types-4.22.0"
-      sources."@typescript-eslint/typescript-estree-4.22.0"
-      sources."@typescript-eslint/visitor-keys-4.22.0"
+      sources."@types/vscode-1.56.0"
+      sources."@typescript-eslint/eslint-plugin-4.26.0"
+      sources."@typescript-eslint/experimental-utils-4.26.0"
+      sources."@typescript-eslint/parser-4.26.0"
+      sources."@typescript-eslint/scope-manager-4.26.0"
+      sources."@typescript-eslint/types-4.26.0"
+      sources."@typescript-eslint/typescript-estree-4.26.0"
+      sources."@typescript-eslint/visitor-keys-4.26.0"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
@@ -103855,7 +104566,7 @@ in
       sources."array-union-2.1.0"
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
-      sources."azure-devops-node-api-7.2.0"
+      sources."azure-devops-node-api-10.2.2"
       sources."balanced-match-1.0.2"
       sources."big-integer-1.6.48"
       sources."binary-0.3.0"
@@ -103873,7 +104584,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-6.2.0"
       sources."chainsaw-0.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -103882,7 +104593,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."cheerio-1.0.0-rc.6"
+      sources."cheerio-1.0.0-rc.9"
       sources."cheerio-select-1.4.0"
       sources."chokidar-3.5.1"
       sources."cliui-7.0.4"
@@ -103896,7 +104607,7 @@ in
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."css-select-4.1.2"
-      sources."css-what-5.0.0"
+      sources."css-what-5.0.1"
       sources."debug-4.3.2"
       sources."decamelize-4.0.0"
       sources."deep-is-0.1.3"
@@ -103906,7 +104617,7 @@ in
       sources."diff-5.0.0"
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
-      sources."dom-serializer-1.3.1"
+      sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
       sources."domhandler-4.2.0"
       sources."domutils-2.6.0"
@@ -103922,19 +104633,20 @@ in
       sources."enquirer-2.3.6"
       sources."entities-2.2.0"
       sources."escalade-3.1.1"
-      sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.24.0" // {
+      sources."escape-string-regexp-4.0.0"
+      (sources."eslint-7.27.0" // {
         dependencies = [
+          (sources."eslint-utils-2.1.0" // {
+            dependencies = [
+              sources."eslint-visitor-keys-1.3.0"
+            ];
+          })
           sources."ignore-4.0.6"
         ];
       })
       sources."eslint-scope-5.1.1"
-      (sources."eslint-utils-2.1.0" // {
-        dependencies = [
-          sources."eslint-visitor-keys-1.3.0"
-        ];
-      })
-      sources."eslint-visitor-keys-2.0.0"
+      sources."eslint-utils-3.0.0"
+      sources."eslint-visitor-keys-2.1.0"
       (sources."espree-7.3.1" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
@@ -103978,9 +104690,9 @@ in
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
-      (sources."globals-13.8.0" // {
+      (sources."globals-13.9.0" // {
         dependencies = [
           sources."type-fest-0.20.2"
         ];
@@ -104001,17 +104713,14 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-module-1.0.0"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-reference-1.2.1"
-      sources."is-string-1.0.5"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
@@ -104025,7 +104734,7 @@ in
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
+      sources."lodash.merge-4.6.2"
       sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.0.0"
       sources."lru-cache-6.0.0"
@@ -104044,7 +104753,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-8.3.2" // {
+      (sources."mocha-8.4.0" // {
         dependencies = [
           sources."argparse-2.0.1"
           (sources."debug-4.3.1" // {
@@ -104052,7 +104761,7 @@ in
               sources."ms-2.1.2"
             ];
           })
-          sources."escape-string-regexp-4.0.0"
+          sources."glob-7.1.6"
           sources."has-flag-4.0.0"
           sources."js-yaml-4.0.0"
           sources."ms-2.1.3"
@@ -104066,9 +104775,9 @@ in
       sources."node-fetch-2.6.1"
       sources."normalize-path-3.0.0"
       sources."nth-check-2.0.0"
+      sources."object-inspect-1.10.3"
       sources."once-1.4.0"
       sources."optionator-0.9.1"
-      sources."os-0.1.1"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
@@ -104085,15 +104794,16 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."prelude-ls-1.2.1"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."pseudomap-1.0.2"
       sources."punycode-2.1.1"
+      sources."qs-6.10.1"
       sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
       sources."read-1.0.7"
@@ -104110,7 +104820,7 @@ in
       sources."resolve-from-4.0.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rollup-2.45.2"
+      sources."rollup-2.50.5"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.2.1"
       sources."semver-7.3.5"
@@ -104118,6 +104828,7 @@ in
       sources."setimmediate-1.0.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
+      sources."side-channel-1.0.4"
       sources."sigmund-1.0.1"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -104138,9 +104849,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.1.0" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.1.0"
+          sources."ajv-8.5.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -104154,23 +104865,24 @@ in
           sources."tslib-1.14.1"
         ];
       })
-      sources."tunnel-0.0.4"
+      sources."tunnel-0.0.6"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."typed-rest-client-1.2.0"
-      sources."typescript-4.2.4"
+      sources."typed-rest-client-1.8.4"
+      sources."typescript-4.3.2"
       sources."typescript-formatter-7.2.2"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.8.3"
+      sources."underscore-1.13.1"
       sources."unzipper-0.10.11"
       sources."uri-js-4.4.1"
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.3.0"
-      (sources."vsce-1.87.1" // {
+      (sources."vsce-1.91.0" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."commander-6.2.1"
+          sources."escape-string-regexp-1.0.5"
           sources."semver-5.7.1"
         ];
       })
@@ -104349,10 +105061,10 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.32.10";
+    version = "1.34.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.32.10.tgz";
-      sha512 = "Nx0pcWoonAkn7CRp0aE/hket1UP97GiR1IFw3kcjV3pnenhWgZEWUf0ZcfPOV2fK52fnOcK3JdC/YYZ9E47DTQ==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.34.0.tgz";
+      sha512 = "rHEN0BscqjUYuomUEaqq3BMgsXqQfkcMVR7UhscsAVub0/spUrZGBMxQXFS2kfiDsPLZw5yuU9iJEFNC2x38Qw==";
     };
     dependencies = [
       sources."anymatch-3.1.2"
@@ -104367,7 +105079,7 @@ in
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
       sources."normalize-path-3.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."readdirp-3.5.0"
       sources."to-regex-range-5.0.1"
     ];
@@ -104512,10 +105224,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "2.35.0";
+    version = "2.43.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-2.35.0.tgz";
-      sha512 = "qtPKwZ3bSO/PB9sshKlTO0lgSvk8m0B21XQ3myxr27vVgyF5AL/NKnKDYkEOutFMAWXp5eJS/3OUqaO5uXlq+A==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.43.1.tgz";
+      sha512 = "KasMG0u78+QBMecuT1Cit3PdHA1Wl6xyjrWgFEdtJnI5mBcMA9FZVMvdqRk1VjaQtnvNJfpbzfJa6Aj2rrqXWQ==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -104543,16 +105255,30 @@ in
         dependencies = [
           sources."@serverless/utils-1.2.0"
           sources."chalk-2.4.2"
+          sources."dotenv-8.6.0"
           sources."uuid-3.4.0"
         ];
       })
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-3.8.3" // {
+      (sources."@serverless/components-3.10.1" // {
         dependencies = [
+          (sources."@serverless/utils-4.1.0" // {
+            dependencies = [
+              sources."js-yaml-4.1.0"
+            ];
+          })
           sources."ansi-regex-5.0.0"
-          sources."js-yaml-3.14.1"
+          sources."argparse-2.0.1"
+          sources."dotenv-8.6.0"
+          (sources."js-yaml-3.14.1" // {
+            dependencies = [
+              sources."argparse-1.0.10"
+            ];
+          })
+          sources."jwt-decode-3.1.2"
           sources."ramda-0.27.1"
           sources."strip-ansi-6.0.0"
+          sources."write-file-atomic-3.0.3"
         ];
       })
       (sources."@serverless/core-1.1.2" // {
@@ -104562,7 +105288,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."@serverless/enterprise-plugin-4.5.3"
+      sources."@serverless/dashboard-plugin-5.1.4"
       sources."@serverless/event-mocks-1.1.1"
       (sources."@serverless/platform-client-4.2.2" // {
         dependencies = [
@@ -104570,29 +105296,41 @@ in
           sources."js-yaml-3.14.1"
         ];
       })
-      (sources."@serverless/platform-client-china-2.1.10" // {
+      (sources."@serverless/platform-client-china-2.1.13" // {
         dependencies = [
+          sources."dotenv-8.6.0"
           sources."js-yaml-3.14.1"
         ];
       })
       sources."@serverless/template-1.1.4"
-      (sources."@serverless/utils-4.0.1" // {
+      (sources."@serverless/utils-5.2.0" // {
         dependencies = [
+          sources."get-stream-6.0.1"
           sources."jwt-decode-3.1.2"
           sources."write-file-atomic-3.0.3"
         ];
       })
-      sources."@serverless/utils-china-1.0.14"
+      sources."@serverless/utils-china-1.1.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tencent-sdk/capi-1.1.8"
+      sources."@tencent-sdk/cls-0.2.1"
+      (sources."@tencent-sdk/common-0.1.0" // {
+        dependencies = [
+          sources."type-fest-1.2.0"
+        ];
+      })
+      sources."@tencent-sdk/faas-0.1.5"
+      sources."@tokenizer/token-0.1.1"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/caseless-0.12.2"
+      sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/lodash-4.14.168"
+      sources."@types/lodash-4.14.170"
       sources."@types/long-4.0.1"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
+      sources."@types/readable-stream-2.3.10"
       sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/responselike-1.0.0"
@@ -104653,7 +105391,7 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.888.0" // {
+      (sources."aws-sdk-2.918.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -104722,7 +105460,7 @@ in
           sources."traverse-0.3.9"
         ];
       })
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -104735,7 +105473,7 @@ in
       sources."child-process-ext-2.1.1"
       sources."chokidar-3.5.1"
       sources."chownr-1.1.4"
-      sources."ci-info-3.1.1"
+      sources."ci-info-3.2.0"
       sources."cli-boxes-2.2.1"
       (sources."cli-color-2.0.0" // {
         dependencies = [
@@ -104758,7 +105496,7 @@ in
       sources."component-bind-1.0.0"
       sources."component-emitter-1.3.0"
       sources."component-inherit-0.0.3"
-      sources."compress-commons-4.1.0"
+      sources."compress-commons-4.1.1"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       (sources."content-disposition-0.5.3" // {
@@ -104781,18 +105519,33 @@ in
         ];
       })
       sources."dashdash-1.14.1"
-      sources."dayjs-1.10.4"
+      sources."dayjs-1.10.5"
       sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
-      sources."decompress-4.2.1"
+      (sources."decompress-4.2.1" // {
+        dependencies = [
+          (sources."make-dir-1.3.0" // {
+            dependencies = [
+              sources."pify-3.0.0"
+            ];
+          })
+        ];
+      })
       sources."decompress-response-3.3.0"
-      sources."decompress-tar-4.1.1"
+      (sources."decompress-tar-4.1.1" // {
+        dependencies = [
+          sources."file-type-5.2.0"
+        ];
+      })
       (sources."decompress-tarbz2-4.1.1" // {
         dependencies = [
           sources."file-type-6.2.0"
         ];
       })
-      sources."decompress-targz-4.1.1"
+      (sources."decompress-targz-4.1.1" // {
+        dependencies = [
+          sources."file-type-5.2.0"
+        ];
+      })
       (sources."decompress-unzip-4.0.1" // {
         dependencies = [
           sources."file-type-3.9.0"
@@ -104807,36 +105560,10 @@ in
       sources."denque-1.5.0"
       sources."detect-libc-1.0.3"
       sources."diagnostics-1.1.1"
-      sources."dijkstrajs-1.0.1"
+      sources."dijkstrajs-1.0.2"
       sources."dir-glob-3.0.1"
       sources."dot-qs-0.2.0"
-      sources."dotenv-8.2.0"
-      (sources."download-8.0.0" // {
-        dependencies = [
-          sources."@sindresorhus/is-0.7.0"
-          (sources."cacheable-request-2.1.4" // {
-            dependencies = [
-              sources."get-stream-3.0.0"
-            ];
-          })
-          sources."file-type-11.1.0"
-          (sources."got-8.3.2" // {
-            dependencies = [
-              sources."get-stream-3.0.0"
-              sources."pify-3.0.0"
-            ];
-          })
-          sources."http-cache-semantics-3.8.1"
-          sources."keyv-3.0.0"
-          sources."lowercase-keys-1.0.0"
-          sources."make-dir-2.1.0"
-          sources."normalize-url-2.0.1"
-          sources."p-cancelable-0.4.1"
-          sources."pify-4.0.1"
-          sources."semver-5.7.1"
-          sources."sort-keys-2.0.0"
-        ];
-      })
+      sources."dotenv-9.0.2"
       sources."duplexer3-0.1.4"
       sources."duplexify-4.1.1"
       sources."duration-0.2.2"
@@ -104844,7 +105571,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."enabled-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-client-3.5.1" // {
+      (sources."engine.io-client-3.5.2" // {
         dependencies = [
           sources."debug-3.1.0"
         ];
@@ -104884,25 +105611,18 @@ in
       sources."fd-slicer-1.1.0"
       sources."fecha-4.2.1"
       sources."figures-3.2.0"
-      sources."file-type-5.2.0"
+      sources."file-type-16.5.0"
       sources."file-uri-to-path-1.0.0"
       sources."filename-reserved-regex-2.0.0"
-      sources."filenamify-3.0.0"
-      sources."filesize-6.2.5"
+      sources."filenamify-4.3.0"
+      sources."filesize-6.3.0"
       sources."fill-range-7.0.1"
       sources."find-requires-1.0.0"
       sources."flat-5.0.2"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."forever-agent-0.6.1"
       sources."form-data-2.5.1"
       sources."formidable-1.2.2"
-      (sources."from2-2.3.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
       sources."fs-constants-1.0.0"
       (sources."fs-extra-9.1.0" // {
         dependencies = [
@@ -104924,12 +105644,12 @@ in
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."github-from-package-0.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."globby-11.0.3"
       (sources."got-11.8.2" // {
         dependencies = [
-          sources."@sindresorhus/is-4.0.0"
+          sources."@sindresorhus/is-4.0.1"
           sources."@szmarczak/http-timer-4.0.5"
           sources."cacheable-request-7.0.1"
           sources."decompress-response-6.0.0"
@@ -104939,7 +105659,7 @@ in
           sources."keyv-4.0.3"
           sources."lowercase-keys-2.0.0"
           sources."mimic-response-3.1.0"
-          sources."p-cancelable-2.1.0"
+          sources."p-cancelable-2.1.1"
           sources."responselike-2.0.0"
         ];
       })
@@ -104954,8 +105674,6 @@ in
       })
       sources."has-cors-1.1.0"
       sources."has-flag-3.0.0"
-      sources."has-symbol-support-x-1.4.2"
-      sources."has-to-string-tag-x-1.4.1"
       sources."has-unicode-2.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
@@ -104984,7 +105702,6 @@ in
         ];
       })
       sources."inquirer-autocomplete-prompt-1.3.0"
-      sources."into-stream-3.1.0"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
       sources."is-docker-2.2.1"
@@ -104993,10 +105710,8 @@ in
       sources."is-glob-4.0.1"
       sources."is-natural-number-4.0.1"
       sources."is-number-7.0.0"
-      sources."is-object-1.0.2"
       sources."is-plain-obj-1.1.0"
       sources."is-promise-2.2.2"
-      sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -105004,7 +105719,6 @@ in
       sources."isexe-2.0.0"
       sources."isomorphic-ws-4.0.1"
       sources."isstream-0.1.2"
-      sources."isurl-1.0.0"
       sources."jmespath-0.15.0"
       (sources."js-yaml-4.1.0" // {
         dependencies = [
@@ -105068,11 +105782,12 @@ in
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
       sources."lru-queue-0.1.0"
-      (sources."make-dir-1.3.0" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
-          sources."pify-3.0.0"
+          sources."semver-6.3.0"
         ];
       })
+      sources."media-typer-0.3.0"
       (sources."memoizee-0.4.15" // {
         dependencies = [
           sources."next-tick-1.1.0"
@@ -105091,18 +105806,17 @@ in
       sources."minipass-3.1.3"
       sources."minizlib-2.1.2"
       sources."mkdirp-0.5.5"
-      sources."moment-2.29.1"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
       sources."nan-2.14.2"
       sources."nanoid-2.1.11"
       sources."napi-build-utils-1.0.2"
       sources."native-promise-only-0.8.1"
-      sources."ncjsm-4.1.0"
+      sources."ncjsm-4.2.0"
       sources."nested-error-stacks-2.1.0"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
-      (sources."node-abi-2.21.0" // {
+      (sources."node-abi-2.30.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -105111,12 +105825,12 @@ in
       sources."node-fetch-2.6.1"
       sources."noop-logger-0.1.1"
       sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-hash-2.1.1"
+      sources."object-hash-2.2.0"
       sources."once-1.4.0"
       sources."one-time-0.0.4"
       sources."onetime-5.1.2"
@@ -105125,11 +105839,9 @@ in
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
-      sources."p-event-2.3.1"
+      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
-      sources."p-is-promise-1.1.0"
-      sources."p-limit-3.1.0"
-      sources."p-timeout-2.0.1"
+      sources."p-timeout-3.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."got-9.6.0"
@@ -105143,9 +105855,11 @@ in
       sources."path-key-2.0.1"
       sources."path-loader-1.0.10"
       sources."path-type-4.0.0"
+      sources."path2-0.1.0"
+      sources."peek-readable-3.1.3"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-2.3.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
@@ -105159,9 +105873,8 @@ in
       sources."printj-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-queue-2.2.5"
-      (sources."protobufjs-6.10.2" // {
+      (sources."protobufjs-6.11.2" // {
         dependencies = [
-          sources."@types/node-13.13.50"
           sources."long-4.0.0"
         ];
       })
@@ -105170,13 +105883,13 @@ in
       sources."punycode-2.1.1"
       sources."qrcode-terminal-0.12.0"
       sources."qs-6.5.2"
-      sources."query-string-5.1.1"
       sources."querystring-0.2.1"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
       sources."ramda-0.26.1"
       sources."rc-1.2.8"
       sources."readable-stream-3.6.0"
+      sources."readable-web-to-node-stream-3.0.1"
       sources."readdir-glob-1.1.1"
       sources."readdirp-3.5.0"
       sources."registry-auth-token-4.2.1"
@@ -105212,7 +105925,7 @@ in
       sources."signal-exit-3.0.3"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
-      (sources."simple-git-2.38.0" // {
+      (sources."simple-git-2.39.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -105242,7 +105955,6 @@ in
       sources."stealthy-require-1.1.1"
       sources."stream-promise-3.2.0"
       sources."stream-shift-1.0.1"
-      sources."strict-uri-encode-1.1.0"
       (sources."string-width-1.0.2" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -105254,6 +105966,7 @@ in
       sources."strip-dirs-2.1.0"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
+      sources."strtok3-6.0.8"
       (sources."superagent-3.8.3" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -105304,16 +106017,17 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
+      sources."tencent-serverless-http-1.3.2"
       sources."text-hex-1.0.0"
       sources."throat-5.0.0"
       sources."through-2.3.8"
-      sources."timed-out-4.0.1"
       sources."timers-ext-0.1.7"
       sources."tmp-0.0.33"
       sources."to-array-0.1.4"
       sources."to-buffer-1.1.1"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
+      sources."token-types-2.1.1"
       sources."tough-cookie-2.5.0"
       sources."traverse-0.6.6"
       sources."trim-repeated-1.0.0"
@@ -105323,6 +106037,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-2.5.0"
       sources."type-fest-0.21.3"
+      sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
       sources."unbzip2-stream-1.4.3"
       sources."universalify-0.1.2"
@@ -105335,7 +106050,6 @@ in
         ];
       })
       sources."url-parse-lax-3.0.0"
-      sources."url-to-options-1.0.1"
       sources."urlencode-1.1.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
@@ -105372,17 +106086,16 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
-      sources."xmlhttprequest-ssl-1.5.5"
+      sources."xmlhttprequest-ssl-1.6.3"
       sources."xtend-4.0.2"
       sources."yallist-4.0.0"
       sources."yaml-ast-parser-0.0.43"
       sources."yamljs-0.3.0"
       sources."yauzl-2.10.0"
       sources."yeast-0.1.2"
-      sources."yocto-queue-0.1.0"
       sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -105478,7 +106191,7 @@ in
       sources."finalhandler-1.1.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."from-0.1.7"
       sources."getpass-0.1.7"
@@ -105540,7 +106253,7 @@ in
       sources."path-to-regexp-0.1.7"
       sources."pause-stream-0.0.11"
       sources."performance-now-2.1.0"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
@@ -106022,10 +106735,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.551.0";
+    version = "1.619.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.551.0.tgz";
-      sha512 = "Z2fh6n/EGO/2ILLOeFvJpWAHSZjOtKDACtfK+Xm/ob+SoAOjEPGdGlFt0RmCUV/VGxfP1aRZ8zkxnj573OmPPA==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.619.0.tgz";
+      sha512 = "ZQFDU+WniTjD6Z1vqKQcBq50jJ9DWSBBCg0PNW54MZbK5oO+L2rHtbpaD3NI3lQI+AFCe64kdzkWMgsEemkFHQ==";
     };
     dependencies = [
       sources."@arcanis/slice-ansi-1.0.2"
@@ -106035,11 +106748,11 @@ in
       sources."@nodelib/fs.walk-1.2.6"
       sources."@octetstream/promisify-2.0.2"
       sources."@open-policy-agent/opa-wasm-1.2.0"
-      sources."@sindresorhus/is-2.1.1"
+      sources."@sindresorhus/is-4.0.1"
       sources."@snyk/cli-interface-2.11.0"
       sources."@snyk/cloud-config-parser-1.9.2"
       sources."@snyk/cocoapods-lockfile-parser-3.6.2"
-      (sources."@snyk/code-client-3.4.1" // {
+      (sources."@snyk/code-client-3.7.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
@@ -106050,31 +106763,36 @@ in
           sources."semver-7.3.5"
         ];
       })
-      sources."@snyk/docker-registry-v2-client-1.13.9"
+      sources."@snyk/docker-registry-v2-client-2.1.3"
       sources."@snyk/fast-glob-3.2.6-patch"
-      (sources."@snyk/fix-1.547.0" // {
+      (sources."@snyk/fix-1.601.0" // {
         dependencies = [
           sources."chalk-4.1.0"
           sources."strip-ansi-6.0.0"
         ];
       })
+      (sources."@snyk/fix-pipenv-pipfile-0.3.5" // {
+        dependencies = [
+          sources."debug-4.3.1"
+        ];
+      })
       sources."@snyk/gemfile-1.2.0"
       sources."@snyk/glob-parent-5.1.2-patch.1"
       sources."@snyk/graphlib-2.1.9-patch.3"
       (sources."@snyk/inquirer-7.3.3-patch" // {
         dependencies = [
           sources."ansi-escapes-4.3.2"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."strip-ansi-6.0.0"
         ];
       })
-      (sources."@snyk/java-call-graph-builder-1.20.0" // {
+      (sources."@snyk/java-call-graph-builder-1.23.0" // {
         dependencies = [
           sources."rimraf-3.0.2"
           sources."tmp-0.2.1"
         ];
       })
-      (sources."@snyk/mix-parser-1.3.1" // {
+      (sources."@snyk/mix-parser-1.3.2" // {
         dependencies = [
           sources."tslib-2.2.0"
         ];
@@ -106085,18 +106803,17 @@ in
           sources."tslib-2.2.0"
         ];
       })
-      (sources."@snyk/snyk-docker-pull-3.2.3" // {
+      (sources."@snyk/snyk-docker-pull-3.2.5" // {
         dependencies = [
           sources."tmp-0.1.0"
         ];
       })
-      (sources."@snyk/snyk-hex-plugin-1.1.2" // {
+      (sources."@snyk/snyk-hex-plugin-1.1.4" // {
         dependencies = [
           sources."tslib-2.2.0"
         ];
       })
       sources."@szmarczak/http-timer-4.0.5"
-      sources."@types/braces-3.0.0"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/debug-4.1.5"
       sources."@types/emscripten-1.39.4"
@@ -106105,23 +106822,22 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/js-yaml-3.12.6"
       sources."@types/keyv-3.1.1"
-      sources."@types/lodash-4.14.168"
+      sources."@types/lodash-4.14.170"
       sources."@types/lodash.chunk-4.2.6"
       sources."@types/lodash.omit-4.5.6"
       sources."@types/lodash.union-4.6.6"
-      sources."@types/micromatch-4.0.1"
-      sources."@types/node-14.14.41"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/multimatch-4.0.0"
+      sources."@types/node-13.13.52"
       sources."@types/responselike-1.0.0"
       sources."@types/sarif-2.1.3"
-      sources."@types/semver-7.3.4"
+      sources."@types/semver-7.3.6"
       sources."@types/treeify-1.0.0"
       sources."@types/uuid-8.3.0"
       (sources."@yarnpkg/core-2.4.0" // {
         dependencies = [
-          sources."@sindresorhus/is-4.0.0"
           sources."chalk-3.0.0"
           sources."cross-spawn-7.0.3"
-          sources."got-11.8.2"
           sources."mkdirp-0.5.5"
           sources."path-key-3.1.1"
           sources."semver-7.3.5"
@@ -106135,11 +106851,7 @@ in
       sources."@yarnpkg/libzip-2.2.1"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."@yarnpkg/parsers-2.3.0"
-      (sources."@yarnpkg/pnp-2.3.2" // {
-        dependencies = [
-          sources."@types/node-13.13.50"
-        ];
-      })
+      sources."@yarnpkg/pnp-2.3.2"
       (sources."@yarnpkg/shell-2.4.1" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
@@ -106169,7 +106881,9 @@ in
           sources."sprintf-js-1.0.3"
         ];
       })
+      sources."array-differ-3.0.0"
       sources."array-union-2.1.0"
+      sources."arrify-2.0.1"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
       sources."async-3.2.0"
@@ -106179,11 +106893,15 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."binjumper-0.1.4"
       sources."bl-4.1.0"
-      sources."boolean-3.0.3"
-      (sources."boxen-4.2.0" // {
+      sources."boolean-3.1.0"
+      sources."bottleneck-2.19.5"
+      (sources."boxen-5.0.1" // {
         dependencies = [
-          sources."chalk-3.0.0"
-          sources."type-fest-0.8.1"
+          sources."camelcase-6.2.0"
+          sources."chalk-4.1.1"
+          sources."strip-ansi-6.0.0"
+          sources."type-fest-0.20.2"
+          sources."wrap-ansi-7.0.0"
         ];
       })
       sources."brace-expansion-1.1.11"
@@ -106210,6 +106928,7 @@ in
       })
       sources."chardet-0.7.0"
       sources."child-process-1.0.2"
+      sources."child_process-1.0.2"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
       sources."clean-stack-2.2.0"
@@ -106225,7 +106944,7 @@ in
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
-      sources."core-js-3.10.1"
+      sources."core-js-3.13.1"
       sources."core-util-is-1.0.2"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
@@ -106243,11 +106962,11 @@ in
       sources."defaults-1.0.3"
       sources."defer-to-connect-2.0.1"
       sources."define-properties-1.1.3"
-      sources."detect-node-2.0.5"
+      sources."detect-node-2.1.0"
       sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
       sources."docker-modem-2.1.3"
-      sources."dockerfile-ast-0.2.0"
+      sources."dockerfile-ast-0.2.1"
       sources."dot-prop-5.3.0"
       sources."dotnet-deps-parser-5.0.0"
       sources."duplexer3-0.1.4"
@@ -106278,24 +106997,24 @@ in
       sources."fastq-1.11.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."fs-constants-1.0.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       (sources."global-agent-2.2.0" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
       })
-      sources."global-dirs-2.1.0"
+      sources."global-dirs-3.0.0"
       sources."globalthis-1.0.2"
       sources."globby-11.0.3"
-      sources."got-11.4.0"
+      sources."got-11.8.2"
       sources."graceful-fs-4.2.6"
       sources."grapheme-splitter-1.0.4"
       sources."gunzip-maybe-1.4.2"
@@ -106303,11 +107022,6 @@ in
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.2"
       sources."has-yarn-2.1.0"
-      (sources."hcl-to-json-0.1.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
       sources."hosted-git-info-3.0.8"
       sources."http-cache-semantics-4.1.0"
       sources."http2-wrapper-1.0.3"
@@ -106320,7 +107034,7 @@ in
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.7"
+      sources."ini-2.0.0"
       sources."is-3.3.0"
       sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
@@ -106330,9 +107044,9 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-gzip-1.0.0"
-      sources."is-installed-globally-0.3.2"
+      sources."is-installed-globally-0.4.0"
       sources."is-interactive-1.0.0"
-      sources."is-npm-4.0.0"
+      sources."is-npm-5.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
@@ -106367,7 +107081,6 @@ in
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.constant-3.0.0"
       sources."lodash.defaults-4.2.0"
-      sources."lodash.endswith-4.2.1"
       sources."lodash.filter-4.6.0"
       sources."lodash.find-4.6.0"
       sources."lodash.findindex-4.6.0"
@@ -106408,7 +107121,7 @@ in
       sources."lodash.values-4.3.0"
       (sources."log-symbols-4.1.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."lowercase-keys-2.0.0"
@@ -106430,6 +107143,7 @@ in
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
+      sources."multimatch-5.0.0"
       sources."mute-stream-0.0.8"
       (sources."needle-2.6.0" // {
         dependencies = [
@@ -106438,23 +107152,23 @@ in
       })
       sources."nice-try-1.0.5"
       sources."node.extend-2.0.2"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npm-run-path-2.0.2"
-      sources."object-hash-2.1.1"
+      sources."object-hash-2.2.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-7.4.2"
-      (sources."ora-5.3.0" // {
+      (sources."ora-5.4.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."strip-ansi-6.0.0"
         ];
       })
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
       sources."p-map-4.0.0"
@@ -106485,7 +107199,7 @@ in
       sources."path-key-2.0.1"
       sources."path-type-4.0.0"
       sources."peek-stream-1.1.3"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pluralize-7.0.0"
       sources."prepend-http-2.0.0"
       sources."pretty-bytes-5.6.0"
@@ -106508,7 +107222,11 @@ in
       sources."queue-6.0.2"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
-      sources."rc-1.2.8"
+      (sources."rc-1.2.8" // {
+        dependencies = [
+          sources."ini-1.3.8"
+        ];
+      })
       sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -106540,16 +107258,16 @@ in
       sources."snyk-config-4.0.0"
       (sources."snyk-cpp-plugin-2.2.1" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."tslib-2.2.0"
         ];
       })
-      (sources."snyk-docker-plugin-4.19.3" // {
+      (sources."snyk-docker-plugin-4.20.8" // {
         dependencies = [
           sources."p-map-2.1.0"
           sources."rimraf-3.0.2"
           sources."semver-7.3.5"
-          sources."snyk-nodejs-lockfile-parser-1.30.2"
+          sources."snyk-nodejs-lockfile-parser-1.34.0"
           sources."tmp-0.2.1"
           sources."uuid-8.3.2"
         ];
@@ -106561,7 +107279,7 @@ in
           sources."tmp-0.2.1"
         ];
       })
-      (sources."snyk-gradle-plugin-3.14.0" // {
+      (sources."snyk-gradle-plugin-3.16.0" // {
         dependencies = [
           sources."chalk-3.0.0"
           sources."rimraf-3.0.2"
@@ -106570,9 +107288,9 @@ in
         ];
       })
       sources."snyk-module-3.1.0"
-      (sources."snyk-mvn-plugin-2.25.3" // {
+      (sources."snyk-mvn-plugin-2.26.0" // {
         dependencies = [
-          (sources."@snyk/java-call-graph-builder-1.19.1" // {
+          (sources."@snyk/java-call-graph-builder-1.21.0" // {
             dependencies = [
               sources."tmp-0.2.1"
             ];
@@ -106586,13 +107304,15 @@ in
           sources."tslib-1.11.1"
         ];
       })
-      (sources."snyk-nodejs-lockfile-parser-1.32.0" // {
+      (sources."snyk-nodejs-lockfile-parser-1.35.0" // {
         dependencies = [
+          sources."argparse-2.0.1"
+          sources."js-yaml-4.1.0"
           sources."p-map-2.1.0"
           sources."uuid-8.3.2"
         ];
       })
-      (sources."snyk-nuget-plugin-1.21.0" // {
+      (sources."snyk-nuget-plugin-1.21.1" // {
         dependencies = [
           sources."jszip-3.4.0"
           sources."pako-1.0.11"
@@ -106619,7 +107339,7 @@ in
           sources."yallist-3.1.1"
         ];
       })
-      sources."snyk-python-plugin-1.19.8"
+      sources."snyk-python-plugin-1.19.9"
       sources."snyk-resolve-1.1.0"
       (sources."snyk-resolve-deps-4.7.2" // {
         dependencies = [
@@ -106679,7 +107399,6 @@ in
           sources."temp-dir-1.0.0"
         ];
       })
-      sources."term-size-2.2.1"
       sources."then-fs-2.0.0"
       sources."through-2.3.8"
       (sources."through2-2.0.5" // {
@@ -106702,9 +107421,10 @@ in
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
       sources."upath-2.0.1"
-      (sources."update-notifier-4.1.3" // {
+      (sources."update-notifier-5.1.0" // {
         dependencies = [
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.1"
+          sources."semver-7.3.5"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -106750,16 +107470,16 @@ in
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
-    version = "4.0.1";
+    version = "4.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz";
-      sha512 = "g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==";
+      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.1.2.tgz";
+      sha512 = "xK0SD1C7hFrh9+bYoYCdVt+ncixkSLKtNLCax5aEy1o3r5PaO5yQhVb97exIe67cE7lAK+EpyMytXWTWmyZY8w==";
     };
     dependencies = [
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."accepts-1.3.7"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
@@ -106767,17 +107487,17 @@ in
       sources."cookie-0.4.1"
       sources."cors-2.8.5"
       sources."debug-4.3.2"
-      sources."engine.io-5.0.0"
+      sources."engine.io-5.1.1"
       sources."engine.io-parser-4.0.2"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."ms-2.1.2"
       sources."negotiator-0.6.2"
       sources."object-assign-4.1.1"
-      sources."socket.io-adapter-2.2.0"
+      sources."socket.io-adapter-2.3.1"
       sources."socket.io-parser-4.0.4"
       sources."vary-1.1.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -106856,7 +107576,7 @@ in
       sources."ini-1.3.8"
       sources."is-arrayish-0.2.1"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
@@ -106901,7 +107621,7 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-3.0.0"
       sources."pify-3.0.0"
       sources."prepend-http-1.0.4"
@@ -106926,7 +107646,7 @@ in
       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.9"
       sources."speedtest-net-1.6.2"
       sources."string-width-2.1.1"
       sources."strip-ansi-4.0.0"
@@ -106987,12 +107707,10 @@ in
       sources."ansi-styles-2.2.1"
       sources."anymatch-1.3.2"
       sources."append-batch-0.0.2"
-      sources."argparse-1.0.10"
       sources."arr-diff-2.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-differ-3.0.0"
-      sources."array-filter-1.0.0"
       sources."array-union-1.0.2"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.2.1"
@@ -107000,7 +107718,7 @@ in
       sources."assign-symbols-1.0.0"
       (sources."async-append-only-log-3.0.8" // {
         dependencies = [
-          sources."push-stream-11.0.0"
+          sources."push-stream-11.0.1"
         ];
       })
       sources."async-each-1.0.3"
@@ -107008,10 +107726,9 @@ in
       sources."async-write-2.1.0"
       sources."atob-2.1.2"
       sources."atomic-file-1.1.5"
-      sources."atomically-1.7.0"
-      sources."atomically-universal-0.1.1"
+      sources."atomic-file-rw-0.2.2"
       sources."attach-ware-1.1.1"
-      sources."available-typed-arrays-1.0.2"
+      sources."available-typed-arrays-1.0.4"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -107027,7 +107744,7 @@ in
       sources."binary-search-1.3.6"
       sources."binary-search-bounds-2.0.5"
       sources."bindings-1.5.0"
-      sources."bipf-1.5.0"
+      sources."bipf-1.5.1"
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
@@ -107101,6 +107818,7 @@ in
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
       sources."cpu-percentage-1.0.3"
+      sources."crc-3.6.0"
       sources."cross-spawn-6.0.5"
       sources."debug-4.3.2"
       sources."decode-uri-component-0.2.0"
@@ -107134,9 +107852,9 @@ in
       sources."end-of-stream-1.4.4"
       sources."epidemic-broadcast-trees-7.0.0"
       sources."errno-0.1.8"
-      (sources."es-abstract-1.18.0" // {
+      (sources."es-abstract-1.18.3" // {
         dependencies = [
-          sources."object-inspect-1.10.2"
+          sources."object-inspect-1.10.3"
         ];
       })
       (sources."es-get-iterator-1.1.2" // {
@@ -107146,8 +107864,6 @@ in
       })
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
-      sources."esprima-4.0.1"
-      sources."events-to-array-1.1.2"
       (sources."execa-4.1.0" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
@@ -107274,9 +107990,9 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arguments-1.1.0"
-      sources."is-bigint-1.0.1"
+      sources."is-bigint-1.0.2"
       sources."is-binary-path-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-canonical-base64-1.1.1"
@@ -107285,7 +108001,7 @@ in
           sources."kind-of-6.0.3"
         ];
       })
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-decimal-1.0.4"
       (sources."is-descriptor-1.0.2" // {
         dependencies = [
@@ -107302,7 +108018,7 @@ in
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.1"
       sources."is-number-2.1.0"
-      sources."is-number-object-1.0.4"
+      sources."is-number-object-1.0.5"
       sources."is-options-1.0.1"
       (sources."is-plain-object-2.0.4" // {
         dependencies = [
@@ -107311,11 +108027,11 @@ in
       })
       sources."is-posix-bracket-0.1.1"
       sources."is-primitive-2.0.0"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-set-2.0.2"
       sources."is-stream-2.0.0"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.5"
       sources."is-typedarray-1.0.0"
       sources."is-valid-domain-0.0.19"
@@ -107325,14 +108041,12 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      (sources."jitdb-3.0.3" // {
+      (sources."jitdb-3.1.4" // {
         dependencies = [
           sources."mkdirp-1.0.4"
-          sources."push-stream-11.0.0"
-          sources."typedarray-to-buffer-4.0.0"
+          sources."push-stream-11.0.1"
         ];
       })
-      sources."js-yaml-3.14.1"
       sources."jsesc-3.0.2"
       sources."json-buffer-2.0.11"
       sources."kind-of-3.2.2"
@@ -107346,7 +108060,11 @@ in
           sources."readable-stream-3.6.0"
         ];
       })
-      sources."level-js-4.0.2"
+      (sources."level-js-4.0.2" // {
+        dependencies = [
+          sources."typedarray-to-buffer-3.1.5"
+        ];
+      })
       sources."level-packager-5.1.1"
       sources."level-post-1.0.7"
       sources."level-supports-1.0.1"
@@ -107401,11 +108119,11 @@ in
           sources."arrify-2.0.1"
         ];
       })
-      sources."multiserver-3.7.0"
+      sources."multiserver-3.7.2"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."mutexify-1.3.1"
-      sources."muxrpc-6.5.2"
+      sources."muxrpc-6.5.3"
       sources."muxrpc-usage-2.1.0"
       sources."muxrpc-validation-3.0.2"
       sources."muxrpcli-3.1.2"
@@ -107475,7 +108193,6 @@ in
       sources."once-1.4.0"
       sources."onetime-1.1.0"
       sources."opencollective-postinstall-2.0.3"
-      sources."options-0.0.6"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
@@ -107483,7 +108200,7 @@ in
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
-      sources."packet-stream-2.0.5"
+      sources."packet-stream-2.0.6"
       sources."packet-stream-codec-1.1.3"
       sources."parse-entities-1.2.2"
       sources."parse-glob-3.0.4"
@@ -107491,7 +108208,7 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pify-2.3.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
@@ -107499,7 +108216,7 @@ in
       sources."polyraf-1.1.0"
       sources."posix-character-classes-0.1.1"
       sources."preserve-0.2.0"
-      sources."prettier-2.2.1"
+      sources."prettier-2.3.0"
       (sources."pretty-quick-3.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -107568,6 +108285,7 @@ in
       })
       sources."pull-traverse-1.0.3"
       sources."pull-utf8-decoder-1.0.2"
+      sources."pull-websocket-3.4.2"
       (sources."pull-window-2.1.4" // {
         dependencies = [
           sources."looper-2.0.0"
@@ -107575,11 +108293,14 @@ in
       })
       sources."pull-write-1.1.4"
       sources."pull-write-file-0.2.4"
-      sources."pull-ws-3.3.2"
       sources."pump-3.0.0"
       sources."punycode-1.4.1"
       sources."push-stream-10.1.2"
-      sources."push-stream-to-pull-stream-1.0.3"
+      (sources."push-stream-to-pull-stream-1.0.4" // {
+        dependencies = [
+          sources."push-stream-11.0.1"
+        ];
+      })
       sources."quicktask-1.0.1"
       sources."railroad-diagrams-1.0.0"
       sources."randexp-0.4.6"
@@ -107683,7 +108404,7 @@ in
       sources."right-pad-1.0.1"
       (sources."rimraf-2.7.1" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
         ];
       })
       sources."rng-0.2.2"
@@ -107706,7 +108427,7 @@ in
       sources."shellsubstitute-1.2.0"
       (sources."side-channel-1.0.4" // {
         dependencies = [
-          sources."object-inspect-1.10.2"
+          sources."object-inspect-1.10.3"
         ];
       })
       sources."signal-exit-3.0.3"
@@ -107753,13 +108474,12 @@ in
       sources."source-map-url-0.4.1"
       sources."split-buffer-1.0.0"
       sources."split-string-3.1.0"
-      sources."sprintf-js-1.0.3"
       sources."ssb-blobs-1.2.2"
       sources."ssb-caps-1.1.0"
       sources."ssb-client-4.9.0"
       sources."ssb-config-3.4.5"
       sources."ssb-db-19.2.0"
-      (sources."ssb-db2-2.0.2" // {
+      (sources."ssb-db2-2.1.2" // {
         dependencies = [
           sources."abstract-leveldown-6.2.3"
           (sources."flumecodec-0.0.1" // {
@@ -107767,18 +108487,17 @@ in
               sources."level-codec-6.2.0"
             ];
           })
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
           sources."level-6.0.1"
           sources."level-js-5.0.2"
           sources."mkdirp-1.0.4"
-          sources."push-stream-11.0.0"
+          sources."push-stream-11.0.1"
           sources."rimraf-3.0.2"
           (sources."ssb-keys-8.1.0" // {
             dependencies = [
               sources."mkdirp-0.5.5"
             ];
           })
-          sources."typedarray-to-buffer-4.0.0"
         ];
       })
       sources."ssb-ebt-5.6.7"
@@ -107813,7 +108532,7 @@ in
       sources."ssb-plugins-1.0.0"
       sources."ssb-query-2.4.5"
       sources."ssb-ref-2.14.3"
-      sources."ssb-replicate-1.3.2"
+      sources."ssb-replicate-1.3.3"
       sources."ssb-sort-1.1.3"
       sources."ssb-unix-socket-1.0.0"
       (sources."ssb-validate-4.1.4" // {
@@ -107856,11 +108575,9 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
-      sources."tap-bail-1.0.0"
-      sources."tap-parser-5.4.0"
       (sources."tape-4.13.3" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
           sources."is-regex-1.0.5"
         ];
       })
@@ -107886,11 +108603,10 @@ in
       sources."tweetnacl-0.14.5"
       sources."tweetnacl-auth-0.3.1"
       sources."typedarray-0.0.6"
-      sources."typedarray-to-buffer-3.1.5"
+      sources."typedarray-to-buffer-4.0.0"
       sources."typedfastbitset-0.2.1"
       sources."typewiselite-1.0.0"
       sources."uint48be-2.0.1"
-      sources."ultron-1.0.2"
       sources."unbox-primitive-1.0.1"
       sources."unherit-1.1.3"
       sources."unified-2.1.4"
@@ -107929,7 +108645,7 @@ in
       sources."word-wrap-1.2.3"
       sources."wrap-fn-0.1.5"
       sources."wrappy-1.0.2"
-      sources."ws-1.1.5"
+      sources."ws-7.4.6"
       sources."xtend-4.0.2"
       sources."zerr-1.0.4"
     ];
@@ -108029,7 +108745,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.888.0" // {
+      (sources."aws-sdk-2.918.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -108168,14 +108884,14 @@ in
         dependencies = [
           sources."cookie-0.4.1"
           sources."debug-4.1.1"
-          sources."ws-7.4.5"
+          sources."ws-7.4.6"
         ];
       })
-      (sources."engine.io-client-3.5.1" // {
+      (sources."engine.io-client-3.5.2" // {
         dependencies = [
           sources."debug-3.1.0"
           sources."ms-2.0.0"
-          sources."ws-7.4.5"
+          sources."ws-7.4.6"
         ];
       })
       sources."engine.io-parser-2.2.1"
@@ -108194,7 +108910,7 @@ in
       })
       (sources."express-4.17.1" // {
         dependencies = [
-          sources."proxy-addr-2.0.6"
+          sources."proxy-addr-2.0.7"
           sources."qs-6.7.0"
         ];
       })
@@ -108213,11 +108929,11 @@ in
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.1.2"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
       sources."formidable-1.2.2"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
@@ -108281,7 +108997,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       (sources."is-expression-3.0.0" // {
         dependencies = [
           sources."acorn-4.0.13"
@@ -108292,7 +109008,7 @@ in
       sources."is-my-json-valid-2.20.5"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -108414,7 +109130,7 @@ in
       sources."oauth-sign-0.8.2"
       sources."object-assign-4.1.1"
       sources."object-hash-0.3.0"
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -108445,7 +109161,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
       sources."path-loader-1.0.10"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-1.1.0"
       sources."pause-0.0.1"
@@ -108463,6 +109179,7 @@ in
       sources."protobufjs-3.8.2"
       (sources."proxy-addr-1.1.5" // {
         dependencies = [
+          sources."forwarded-0.1.2"
           sources."ipaddr.js-1.4.0"
         ];
       })
@@ -108584,7 +109301,7 @@ in
       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.9"
       sources."split-1.0.1"
       sources."sprintf-js-1.0.3"
       (sources."sshpk-1.16.1" // {
@@ -108649,7 +109366,7 @@ in
       sources."switchback-2.0.5"
       (sources."temp-0.8.4" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
           sources."rimraf-2.6.3"
         ];
       })
@@ -108749,7 +109466,7 @@ in
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
       sources."xmldom-0.1.31"
-      sources."xmlhttprequest-ssl-1.5.5"
+      sources."xmlhttprequest-ssl-1.6.3"
       sources."xpath-0.0.5"
       sources."xpath.js-1.1.0"
       sources."xtend-4.0.2"
@@ -108799,38 +109516,38 @@ in
   stylelint = nodeEnv.buildNodePackage {
     name = "stylelint";
     packageName = "stylelint";
-    version = "13.12.0";
+    version = "13.13.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/stylelint/-/stylelint-13.12.0.tgz";
-      sha512 = "P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==";
+      url = "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz";
+      sha512 = "Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
-      sources."@babel/helper-compilation-targets-7.13.13"
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/compat-data-7.14.4"
+      sources."@babel/core-7.14.3"
+      sources."@babel/generator-7.14.3"
+      sources."@babel/helper-compilation-targets-7.14.4"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-module-transforms-7.14.2"
       sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-replace-supers-7.14.4"
       sources."@babel/helper-simple-access-7.13.12"
       sources."@babel/helper-split-export-declaration-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-identifier-7.14.0"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helpers-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.14.4"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.14.2"
+      sources."@babel/types-7.14.4"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -108841,7 +109558,7 @@ in
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.3"
-      sources."ajv-8.1.0"
+      sources."ajv-8.5.0"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -108849,16 +109566,19 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."balanced-match-2.0.0"
+      (sources."brace-expansion-1.1.11" // {
+        dependencies = [
+          sources."balanced-match-1.0.2"
+        ];
+      })
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
-      sources."call-bind-1.0.2"
+      sources."browserslist-4.16.6"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001209"
-      (sources."chalk-4.1.0" // {
+      sources."caniuse-lite-1.0.30001232"
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -108895,7 +109615,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.717"
+      sources."electron-to-chromium-1.3.743"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -108915,9 +109635,8 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."global-modules-2.0.0"
       sources."global-prefix-3.0.0"
@@ -108928,7 +109647,6 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
@@ -108941,26 +109659,22 @@ in
       sources."import-lazy-4.0.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
-      sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-decimal-1.0.4"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
@@ -108975,7 +109689,6 @@ in
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
       sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.1.0"
       sources."longest-streak-2.0.4"
@@ -108998,7 +109711,7 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       (sources."normalize-package-data-3.0.2" // {
         dependencies = [
           sources."semver-7.3.5"
@@ -109016,9 +109729,9 @@ in
       sources."parse-json-5.2.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       (sources."postcss-7.0.35" // {
         dependencies = [
           (sources."chalk-2.4.2" // {
@@ -109037,7 +109750,7 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.6"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.1.0"
       sources."punycode-2.1.1"
@@ -109083,7 +109796,7 @@ in
       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.9"
       sources."specificity-0.4.1"
       sources."string-width-4.2.2"
       (sources."string_decoder-1.3.0" // {
@@ -109097,15 +109810,14 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.1.0"
+      sources."table-6.7.1"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."trough-1.0.5"
       sources."type-fest-0.18.1"
       sources."typedarray-to-buffer-3.1.5"
       sources."unified-9.2.1"
-      sources."uniq-1.0.1"
       sources."unist-util-find-all-after-3.0.2"
       sources."unist-util-is-4.1.0"
       sources."unist-util-stringify-position-2.0.3"
@@ -109136,16 +109848,16 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.13.0";
+    version = "0.14.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.13.0.tgz";
-      sha512 = "ov9SZmsCdfy3GcyvrlulEkYnkCc1EK/Qoety+xLsIZtVLMBitudp0OmHx5AWHk+FF2+78A0PYL2z8PEBX6UPjA==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.14.0.tgz";
+      sha512 = "P9QsonwMBUvwQxJbnNKggvJf1K24xaUhRrzoqkJabHtUT37JyYrt9anMIZ7WmjuKUEI/Ejf+Gu/8A0VvyUBaUQ==";
     };
     dependencies = [
       sources."@emmetio/abbreviation-2.2.2"
       sources."@emmetio/css-abbreviation-2.1.4"
       sources."@emmetio/scanner-1.0.0"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/pug-2.0.4"
       sources."@types/sass-1.16.0"
       sources."anymatch-3.1.2"
@@ -109156,13 +109868,13 @@ in
       sources."chokidar-3.5.1"
       sources."concat-map-0.0.1"
       sources."dedent-js-1.0.1"
-      sources."detect-indent-6.0.0"
+      sources."detect-indent-6.1.0"
       sources."emmet-2.3.4"
       sources."estree-walker-2.0.2"
       sources."fill-range-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -109180,24 +109892,28 @@ in
       sources."once-1.4.0"
       sources."pascal-case-3.1.2"
       sources."path-is-absolute-1.0.1"
-      sources."picomatch-2.2.3"
-      sources."prettier-2.2.1"
-      sources."prettier-plugin-svelte-2.2.0"
+      sources."picomatch-2.3.0"
+      sources."prettier-2.3.0"
+      sources."prettier-plugin-svelte-2.3.0"
       sources."readdirp-3.5.0"
       sources."source-map-0.7.3"
       sources."strip-indent-3.0.0"
-      sources."svelte-3.35.0"
-      sources."svelte-preprocess-4.6.9"
-      sources."svelte2tsx-0.1.186"
+      sources."svelte-3.38.2"
+      sources."svelte-preprocess-4.7.3"
+      sources."svelte2tsx-0.2.0"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.2.0"
-      sources."typescript-4.2.4"
+      sources."typescript-4.3.2"
       sources."vscode-css-languageservice-5.0.0"
       sources."vscode-emmet-helper-2.1.2"
       sources."vscode-html-languageservice-4.0.0"
-      sources."vscode-jsonrpc-6.0.0"
-      sources."vscode-languageserver-7.0.0"
-      sources."vscode-languageserver-protocol-3.16.0"
+      sources."vscode-jsonrpc-6.1.0-next.2"
+      sources."vscode-languageserver-7.1.0-next.4"
+      (sources."vscode-languageserver-protocol-3.17.0-next.5" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.17.0-next.1"
+        ];
+      })
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
@@ -109226,7 +109942,7 @@ in
       sources."@trysound/sax-0.1.1"
       sources."ansi-styles-4.3.0"
       sources."boolbase-1.0.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-7.2.0"
@@ -109234,7 +109950,7 @@ in
       sources."css-tree-1.1.3"
       sources."css-what-4.0.0"
       sources."csso-4.2.0"
-      sources."dom-serializer-1.3.1"
+      sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
       sources."domhandler-4.2.0"
       sources."domutils-2.6.0"
@@ -109456,7 +110172,7 @@ in
       sources."get-intrinsic-1.1.1"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -109639,7 +110355,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
       sources."on-finished-2.3.0"
@@ -109835,7 +110551,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -110059,7 +110775,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-classic-0.5.3"
       sources."napi-build-utils-1.0.2"
-      sources."node-abi-2.21.0"
+      sources."node-abi-2.30.0"
       sources."node-addon-api-3.0.2"
       sources."noop-logger-0.1.1"
       sources."npmlog-4.1.2"
@@ -110089,7 +110805,7 @@ in
         ];
       })
       sources."tunnel-agent-0.6.0"
-      sources."usb-1.7.0"
+      sources."usb-1.7.1"
       sources."util-deprecate-1.0.2"
       sources."which-pm-runs-1.0.0"
       sources."wide-align-1.1.3"
@@ -110124,7 +110840,7 @@ in
       sources."enhanced-resolve-2.3.0"
       sources."errno-0.1.8"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -110157,29 +110873,31 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "11.9.0";
+    version = "12.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-11.9.0.tgz";
-      sha512 = "a9ZCfCOcOTNxEQsRbYBDFNu8m5cjJC+znnXCBommGSdP0W+9QmwZnkralwpxrVhRgWvLz+QyuDXtLBZcqfDmHg==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-12.0.0.tgz";
+      sha512 = "hpXezTFR/BxNzc0iJqwspAuHYrCWF/nF7mBS9OGzgBJx5FfS1xfsAIityV65Ffcr+nxCExzTQqRHR6qSWOZmbg==";
     };
     dependencies = [
       sources."@azu/format-text-1.0.1"
       sources."@azu/style-format-1.0.0"
-      sources."@textlint/ast-node-types-4.4.2"
-      sources."@textlint/ast-tester-2.3.4"
-      sources."@textlint/ast-traverse-2.3.4"
-      sources."@textlint/feature-flag-3.3.4"
-      sources."@textlint/fixer-formatter-3.3.4"
-      sources."@textlint/kernel-3.4.4"
-      sources."@textlint/linter-formatter-3.3.4"
-      sources."@textlint/markdown-to-ast-6.3.4"
-      sources."@textlint/module-interop-1.2.4"
-      sources."@textlint/source-code-fixer-3.4.4"
-      sources."@textlint/text-to-ast-3.3.4"
-      sources."@textlint/textlint-plugin-markdown-5.3.4"
-      sources."@textlint/textlint-plugin-text-4.3.4"
-      sources."@textlint/types-1.5.4"
-      sources."@textlint/utils-1.2.4"
+      sources."@textlint/ast-node-types-12.0.0"
+      sources."@textlint/ast-tester-12.0.0"
+      sources."@textlint/ast-traverse-12.0.0"
+      sources."@textlint/feature-flag-12.0.0"
+      sources."@textlint/fixer-formatter-12.0.0"
+      sources."@textlint/kernel-12.0.0"
+      sources."@textlint/linter-formatter-12.0.0"
+      sources."@textlint/markdown-to-ast-12.0.0"
+      sources."@textlint/module-interop-12.0.0"
+      sources."@textlint/source-code-fixer-12.0.0"
+      sources."@textlint/text-to-ast-12.0.0"
+      sources."@textlint/textlint-plugin-markdown-12.0.0"
+      sources."@textlint/textlint-plugin-text-12.0.0"
+      sources."@textlint/types-12.0.0"
+      sources."@textlint/utils-12.0.0"
+      sources."@types/mdast-3.0.3"
+      sources."@types/unist-2.0.3"
       sources."ajv-4.11.8"
       sources."ajv-keywords-1.5.1"
       sources."ansi-regex-2.1.1"
@@ -110189,8 +110907,8 @@ in
       sources."balanced-match-1.0.2"
       sources."boundary-1.0.1"
       sources."brace-expansion-1.1.11"
-      sources."buffer-from-1.1.1"
       sources."call-bind-1.0.2"
+      sources."ccount-1.1.0"
       (sources."chalk-1.1.3" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
@@ -110202,10 +110920,7 @@ in
       sources."charenc-0.0.2"
       sources."co-4.6.0"
       sources."code-point-at-1.1.0"
-      sources."collapse-white-space-1.0.6"
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
-      sources."core-util-is-1.0.2"
       sources."crypt-0.0.2"
       sources."debug-4.3.2"
       sources."deep-equal-1.1.1"
@@ -110227,7 +110942,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-stdin-5.0.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
@@ -110239,19 +110954,16 @@ in
       sources."is-alphanumerical-1.0.4"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
-      sources."is-date-object-1.0.2"
+      sources."is-buffer-2.0.5"
+      sources."is-core-module-2.4.0"
+      sources."is-date-object-1.0.4"
       sources."is-decimal-1.0.4"
       sources."is-file-1.0.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-hexadecimal-1.0.4"
-      sources."is-plain-obj-1.1.0"
-      sources."is-regex-1.1.2"
+      sources."is-plain-obj-2.1.0"
+      sources."is-regex-1.1.3"
       sources."is-utf8-0.2.1"
-      sources."is-whitespace-character-1.0.4"
-      sources."is-word-character-1.0.4"
-      sources."isarray-1.0.0"
       sources."js-yaml-3.14.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-stable-stringify-1.0.1"
@@ -110262,9 +110974,38 @@ in
       sources."locate-path-2.0.0"
       sources."lodash-4.17.21"
       sources."log-symbols-1.0.2"
+      sources."longest-streak-2.0.4"
       sources."map-like-2.0.0"
-      sources."markdown-escapes-1.0.4"
-      sources."md5-2.3.0"
+      sources."markdown-table-2.0.0"
+      (sources."md5-2.3.0" // {
+        dependencies = [
+          sources."is-buffer-1.1.6"
+        ];
+      })
+      (sources."mdast-util-find-and-replace-1.1.1" // {
+        dependencies = [
+          sources."escape-string-regexp-4.0.0"
+        ];
+      })
+      sources."mdast-util-footnote-0.1.7"
+      sources."mdast-util-from-markdown-0.8.5"
+      sources."mdast-util-frontmatter-0.2.0"
+      sources."mdast-util-gfm-0.1.2"
+      sources."mdast-util-gfm-autolink-literal-0.1.3"
+      sources."mdast-util-gfm-strikethrough-0.2.3"
+      sources."mdast-util-gfm-table-0.1.6"
+      sources."mdast-util-gfm-task-list-item-0.1.6"
+      sources."mdast-util-to-markdown-0.6.5"
+      sources."mdast-util-to-string-2.0.0"
+      sources."micromark-2.11.4"
+      sources."micromark-extension-footnote-0.3.2"
+      sources."micromark-extension-frontmatter-0.2.2"
+      sources."micromark-extension-gfm-0.3.3"
+      sources."micromark-extension-gfm-autolink-literal-0.5.7"
+      sources."micromark-extension-gfm-strikethrough-0.6.5"
+      sources."micromark-extension-gfm-table-0.4.3"
+      sources."micromark-extension-gfm-tagfilter-0.3.0"
+      sources."micromark-extension-gfm-task-list-item-0.3.3"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -110278,11 +111019,11 @@ in
       sources."p-limit-1.3.0"
       sources."p-locate-2.0.0"
       sources."p-try-1.0.0"
-      sources."parse-entities-1.2.2"
+      sources."parse-entities-2.0.0"
       sources."parse-json-2.2.0"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-glob-pattern-1.0.2"
       sources."path-type-1.1.0"
       sources."pify-2.3.0"
@@ -110290,7 +111031,6 @@ in
       sources."pinkie-promise-2.0.1"
       sources."pluralize-2.0.0"
       sources."prelude-ls-1.2.1"
-      sources."process-nextick-args-2.0.1"
       sources."rc-config-loader-3.0.0"
       sources."read-pkg-1.1.0"
       (sources."read-pkg-up-3.0.0" // {
@@ -110303,30 +111043,27 @@ in
           sources."strip-bom-3.0.0"
         ];
       })
-      sources."readable-stream-2.3.7"
       sources."regexp.prototype.flags-1.3.1"
-      sources."remark-frontmatter-1.3.3"
-      sources."remark-parse-5.0.0"
+      sources."remark-footnotes-3.0.0"
+      sources."remark-frontmatter-3.0.0"
+      sources."remark-gfm-1.0.0"
+      sources."remark-parse-9.0.0"
       sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.0"
       sources."require-from-string-2.0.2"
       sources."resolve-1.20.0"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.1.2"
       sources."semver-5.7.1"
       sources."slice-ansi-0.0.4"
       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.9"
       sources."sprintf-js-1.0.3"
-      sources."state-toggle-1.0.3"
       (sources."string-width-1.0.2" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."string_decoder-1.1.1"
       (sources."strip-ansi-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -110345,31 +111082,22 @@ in
       })
       sources."text-table-0.2.0"
       sources."traverse-0.6.6"
-      sources."trim-0.0.1"
-      sources."trim-trailing-lines-1.1.4"
       sources."trough-1.0.5"
       sources."try-resolve-1.0.1"
       sources."type-check-0.4.0"
-      sources."typedarray-0.0.6"
-      sources."unherit-1.1.3"
-      sources."unified-6.2.0"
+      sources."unified-9.2.1"
       sources."unique-concat-0.2.2"
-      sources."unist-util-is-3.0.0"
-      sources."unist-util-remove-position-1.1.4"
-      sources."unist-util-stringify-position-1.1.2"
-      sources."unist-util-visit-1.4.1"
-      sources."unist-util-visit-parents-2.1.2"
-      sources."util-deprecate-1.0.2"
+      sources."unist-util-is-4.1.0"
+      sources."unist-util-stringify-position-2.0.3"
+      sources."unist-util-visit-parents-3.1.1"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-2.3.0"
-      sources."vfile-location-2.0.6"
-      sources."vfile-message-1.1.1"
+      sources."vfile-4.2.1"
+      sources."vfile-message-2.0.4"
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."write-1.0.3"
-      sources."x-is-string-0.1.0"
       sources."xml-escape-1.1.0"
-      sources."xtend-4.0.2"
+      sources."zwitch-1.0.5"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -110390,7 +111118,7 @@ in
       sha1 = "9139c65b8da891c983b368a50a286338cd76777a";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.2"
+      sources."@textlint/ast-node-types-4.4.3"
       sources."txt-to-ast-3.0.3"
     ];
     buildInputs = globalBuildInputs;
@@ -110442,18 +111170,18 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@textlint/ast-node-types-4.4.2"
-      sources."@textlint/types-1.5.4"
+      sources."@textlint/ast-node-types-4.4.3"
+      sources."@textlint/types-1.5.5"
       sources."@types/hast-2.3.1"
       sources."@types/minimist-1.2.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse5-5.0.3"
       sources."@types/unist-2.0.3"
-      sources."acorn-8.1.1"
+      sources."acorn-8.3.0"
       sources."acorn-jsx-5.3.1"
       sources."alex-9.1.0"
       (sources."ansi-align-3.0.0" // {
@@ -110553,7 +111281,7 @@ in
       })
       sources."git-diff-tree-1.1.0"
       sources."git-spawned-stream-1.0.1"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."global-dirs-2.1.0" // {
         dependencies = [
           sources."ini-1.3.7"
@@ -110590,7 +111318,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-decimal-1.0.4"
       sources."is-empty-1.2.0"
       sources."is-fullwidth-code-point-2.0.0"
@@ -110663,7 +111391,7 @@ in
       sources."nlcst-search-2.0.0"
       sources."nlcst-to-string-2.0.4"
       sources."normalize-package-data-2.5.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."object-keys-1.1.1"
       sources."once-1.4.0"
       sources."p-cancelable-1.1.0"
@@ -110682,7 +111410,7 @@ in
       sources."parse5-6.0.1"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pause-stream-0.0.11"
       sources."pluralize-8.0.0"
       sources."prepend-http-2.0.0"
@@ -110746,7 +111474,7 @@ in
       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.9"
       sources."split-0.2.10"
       (sources."split-transform-stream-0.1.1" // {
         dependencies = [
@@ -110775,7 +111503,7 @@ in
       sources."structured-source-3.0.2"
       sources."supports-color-5.5.0"
       sources."term-size-2.2.1"
-      (sources."textlint-rule-helper-2.1.1" // {
+      (sources."textlint-rule-helper-2.2.0" // {
         dependencies = [
           sources."unist-util-is-3.0.0"
           sources."unist-util-visit-1.4.1"
@@ -110792,7 +111520,7 @@ in
       sources."to-readable-stream-1.0.0"
       sources."to-vfile-6.1.0"
       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."type-fest-0.13.1"
@@ -110951,29 +111679,50 @@ in
   textlint-rule-max-comma = nodeEnv.buildNodePackage {
     name = "textlint-rule-max-comma";
     packageName = "textlint-rule-max-comma";
-    version = "1.0.4";
+    version = "2.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-max-comma/-/textlint-rule-max-comma-1.0.4.tgz";
-      sha1 = "f555c97e0d3039ca7da06cfd1afad0e5f5899a37";
+      url = "https://registry.npmjs.org/textlint-rule-max-comma/-/textlint-rule-max-comma-2.0.2.tgz";
+      sha512 = "t4twAgEZWWMhIYH3xURZr/A1EcAUKiC10/N0EU6RG+ZBa9+FB5HDhMdQMS5wHqEI1FopWHTYYv/sC2PGEtvyLg==";
     };
     dependencies = [
+      sources."@textlint/ast-node-types-4.4.3"
+      sources."@types/structured-source-3.0.0"
+      sources."@types/unist-2.0.3"
+      sources."bail-1.0.5"
       sources."boundary-1.0.1"
       sources."buffer-from-1.1.1"
-      sources."concat-stream-1.6.2"
-      sources."core-util-is-1.0.2"
-      sources."flatmap-0.0.3"
+      sources."ccount-1.1.0"
+      sources."comma-separated-tokens-1.0.8"
+      sources."concat-stream-2.0.0"
+      sources."extend-3.0.2"
+      sources."hast-util-from-parse5-5.0.3"
+      sources."hast-util-parse-selector-2.2.5"
+      sources."hastscript-5.1.2"
       sources."inherits-2.0.4"
-      sources."isarray-1.0.0"
-      sources."process-nextick-args-2.0.1"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
-      sources."sentence-splitter-2.3.2"
-      sources."string_decoder-1.1.1"
+      sources."is-buffer-2.0.5"
+      sources."is-plain-obj-2.1.0"
+      sources."object_values-0.1.2"
+      sources."parse5-5.1.1"
+      sources."property-information-5.6.0"
+      sources."readable-stream-3.6.0"
+      sources."rehype-parse-6.0.2"
+      sources."safe-buffer-5.2.1"
+      sources."sentence-splitter-3.2.2"
+      sources."space-separated-tokens-1.1.5"
+      sources."string_decoder-1.3.0"
       sources."structured-source-3.0.2"
+      sources."textlint-util-to-string-3.1.1"
+      sources."trough-1.0.5"
       sources."typedarray-0.0.6"
-      sources."unist-util-filter-0.2.1"
-      sources."unist-util-is-1.0.0"
+      sources."unified-8.4.2"
+      sources."unist-util-filter-2.0.3"
+      sources."unist-util-is-4.1.0"
+      sources."unist-util-stringify-position-2.0.3"
       sources."util-deprecate-1.0.2"
+      sources."vfile-4.2.1"
+      sources."vfile-message-2.0.4"
+      sources."web-namespaces-1.1.4"
+      sources."xtend-4.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -110994,8 +111743,8 @@ in
       sha512 = "HydBbkWjnMn4KrnlpnusY1BGjIG+64UySxRCvRphUAIiuJL2nbkdrIIiOjwfQhllKUa7Sf33bs6RAcbEWjZVfg==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.2"
-      sources."@textlint/types-1.5.4"
+      sources."@textlint/ast-node-types-4.4.3"
+      sources."@textlint/types-1.5.5"
       sources."boundary-1.0.1"
       sources."buffer-from-1.1.1"
       sources."concat-stream-2.0.0"
@@ -111004,10 +111753,10 @@ in
       sources."object_values-0.1.2"
       sources."readable-stream-3.6.0"
       sources."safe-buffer-5.2.1"
-      sources."sentence-splitter-3.2.1"
+      sources."sentence-splitter-3.2.2"
       sources."string_decoder-1.3.0"
       sources."structured-source-3.0.2"
-      sources."textlint-rule-helper-2.1.1"
+      sources."textlint-rule-helper-2.2.0"
       sources."typedarray-0.0.6"
       sources."unist-util-is-3.0.0"
       sources."unist-util-visit-1.4.1"
@@ -111039,23 +111788,23 @@ in
       sources."define-properties-1.1.3"
       sources."emoji-regex-6.5.1"
       sources."end-with-1.0.2"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
       sources."has-bigints-1.0.1"
       sources."has-symbols-1.0.2"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
-      sources."object-inspect-1.10.2"
+      sources."is-number-object-1.0.5"
+      sources."is-regex-1.1.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."string.prototype.trimend-1.0.4"
@@ -111082,13 +111831,13 @@ in
       sha512 = "UW7nWrqBUHfz/sRLTFo40BNjwXOiXSHg00TJuYY4GVDQtsWRLyAsOnXSBqClP4i6wl7ejMBeYmB5mfllYAYMgA==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.2"
-      sources."@textlint/types-1.5.4"
+      sources."@textlint/ast-node-types-4.4.3"
+      sources."@textlint/types-1.5.5"
       sources."boundary-1.0.1"
       sources."lodash-4.17.21"
       sources."split-lines-2.1.0"
       sources."structured-source-3.0.2"
-      sources."textlint-rule-helper-2.1.1"
+      sources."textlint-rule-helper-2.2.0"
       sources."unist-util-is-3.0.0"
       sources."unist-util-visit-1.4.1"
       sources."unist-util-visit-parents-2.1.2"
@@ -111112,13 +111861,13 @@ in
       sha512 = "VW+ea4ByLPddSUqoFkVVJF8zWnO8kqKwvC681wGFAjI4CYz9WhjEQH1ikhoEHXnd5AFXNArcjyoa8hoihrXy0w==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.2"
-      sources."@textlint/types-1.5.4"
+      sources."@textlint/ast-node-types-4.4.3"
+      sources."@textlint/types-1.5.5"
       sources."boundary-1.0.1"
       sources."lodash-4.17.21"
       sources."strip-json-comments-3.1.1"
       sources."structured-source-3.0.2"
-      sources."textlint-rule-helper-2.1.1"
+      sources."textlint-rule-helper-2.2.0"
       sources."unist-util-is-3.0.0"
       sources."unist-util-visit-1.4.1"
       sources."unist-util-visit-parents-2.1.2"
@@ -111145,24 +111894,24 @@ in
       sources."array-includes-3.1.3"
       sources."call-bind-1.0.2"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.18.0"
+      sources."es-abstract-1.18.3"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
       sources."has-bigints-1.0.1"
       sources."has-symbols-1.0.2"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
+      sources."is-bigint-1.0.2"
+      sources."is-boolean-object-1.1.1"
       sources."is-callable-1.2.3"
       sources."is-capitalized-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
-      sources."object-inspect-1.10.2"
+      sources."is-number-object-1.0.5"
+      sources."is-regex-1.1.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."string.prototype.trimend-1.0.4"
@@ -111189,8 +111938,8 @@ in
       sha1 = "3c79b04091319d4e8be5fb442c596bf500e8493e";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.4.2"
-      sources."@textlint/types-1.5.4"
+      sources."@textlint/ast-node-types-4.4.3"
+      sources."@textlint/types-1.5.5"
       sources."adverb-where-0.0.9"
       sources."boundary-1.0.1"
       sources."call-bind-1.0.2"
@@ -111205,7 +111954,7 @@ in
       sources."object.assign-4.1.2"
       sources."passive-voice-0.1.0"
       sources."structured-source-3.0.2"
-      sources."textlint-rule-helper-2.1.1"
+      sources."textlint-rule-helper-2.2.0"
       sources."too-wordy-0.1.6"
       sources."unist-util-is-3.0.0"
       sources."unist-util-visit-1.4.1"
@@ -111239,7 +111988,7 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -111315,7 +112064,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.10.1"
+      sources."core-js-3.13.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -111382,7 +112131,7 @@ in
       sources."finalhandler-1.1.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
@@ -111390,7 +112139,7 @@ in
       sources."gauge-2.7.4"
       sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."got-11.5.2"
       sources."graceful-fs-4.2.6"
       sources."grapheme-splitter-1.0.4"
@@ -111418,7 +112167,7 @@ in
       })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-3.0.3"
+      sources."ignore-walk-3.0.4"
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -111426,7 +112175,7 @@ in
       sources."ipaddr.js-1.9.1"
       (sources."irc-framework-4.9.0" // {
         dependencies = [
-          sources."iconv-lite-0.6.2"
+          sources."iconv-lite-0.6.3"
         ];
       })
       sources."is-fullwidth-code-point-1.0.0"
@@ -111492,8 +112241,8 @@ in
         ];
       })
       sources."nopt-4.0.3"
-      sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."normalize-url-4.5.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -111507,7 +112256,7 @@ in
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
@@ -111544,7 +112293,7 @@ in
       sources."precond-0.2.3"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -111654,7 +112403,7 @@ in
       sources."wide-align-1.1.3"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yallist-3.1.1"
       sources."yarn-1.22.4"
@@ -111673,10 +112422,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.127.0";
+    version = "0.129.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.127.0.tgz";
-      sha512 = "wtgrn+mhYUbobxT7QN3GPdu3SRpSBQvwY6uOzLChWS7QE//f7paDU/+wlzbg+ngeIvBBqjBHSRuywTh8A99Jng==";
+      url = "https://registry.npmjs.org/three/-/three-0.129.0.tgz";
+      sha512 = "wiWio1yVRg2Oj6WEWsTHQo5eSzYpEwSBtPSi3OofNpvFbf26HFfb9kw4FZJNjII4qxzp0b1xLB11+tKkBGB1ZA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -111709,16 +112458,16 @@ in
   titanium = nodeEnv.buildNodePackage {
     name = "titanium";
     packageName = "titanium";
-    version = "5.3.0";
+    version = "5.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/titanium/-/titanium-5.3.0.tgz";
-      sha512 = "j+Bk1jWH4Ki/7hfizhG6MvaZMEeHNdaJnzjC50CUJThfDkxr8nN1rn7smaX9Wg5W1iiBeBQyJreTExZloTRCJw==";
+      url = "https://registry.npmjs.org/titanium/-/titanium-5.3.2.tgz";
+      sha512 = "fVpcAtANFCRTadfJ87uMKb41FpWeCikJkoFkFdRzCOQ/cA/9OgSbi2P08otCCyY2oAjLmRO5eOHZAeud+eKwzA==";
     };
     dependencies = [
       sources."ajv-6.12.6"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."async-2.6.3"
+      sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
@@ -111752,7 +112501,7 @@ in
       sources."fs-extra-9.0.1"
       sources."fs.realpath-1.0.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -111773,16 +112522,13 @@ in
       })
       sources."jsprim-1.4.1"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
-      (sources."node-appc-1.1.2" // {
-        dependencies = [
-          sources."async-3.2.0"
-        ];
-      })
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."node-appc-1.1.2"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -111803,7 +112549,7 @@ in
       sources."sprintf-0.1.5"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
-      sources."temp-0.9.1"
+      sources."temp-0.9.4"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -111835,10 +112581,10 @@ in
   triton = nodeEnv.buildNodePackage {
     name = "triton";
     packageName = "triton";
-    version = "7.14.0";
+    version = "7.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/triton/-/triton-7.14.0.tgz";
-      sha512 = "2oIu0p1QjDYdNp3fI0gTxJvwOmzcP76hMwCn4KlqfFxDihBghwDmvWhGU3PPn4zNf3yBDJ1xlsxY14WHqgcV7g==";
+      url = "https://registry.npmjs.org/triton/-/triton-7.15.0.tgz";
+      sha512 = "P0toU5OT3VdKKkJSrjLrFZFgo+0UlPliZ2TDLzF/brfOaPwfousrwJrVfmxtMPO3gk0Dpokz/gfJc7CO9ENeTg==";
     };
     dependencies = [
       sources."asn1-0.2.4"
@@ -112051,7 +112797,7 @@ in
       sources."diff-2.2.3"
       sources."escape-string-regexp-1.0.5"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-ansi-2.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -112105,10 +112851,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "4.2.4";
+    version = "4.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz";
-      sha512 = "V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz";
+      sha512 = "zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -112160,10 +112906,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.13.4";
+    version = "3.13.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.4.tgz";
-      sha512 = "kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.8.tgz";
+      sha512 = "PvFLMFIQHfIjFFlvAch69U2IvIxK9TNzNWt1SxZGp9JZ/v70yvqIQuiJeVPPtUMOzoNt+aNRDk4wgxb34wvEqA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -112196,20 +112942,20 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.16";
+    version = "1.5.18";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.16.tgz";
-      sha512 = "Hv5QiC0qMJChmDf6s3qwwclL38XQUKVInJaJZiNuIHh6vvO9hjkeoUb7djmGb2F2xxVuU7aOtpbdizfwunzU4A==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.18.tgz";
+      sha512 = "E8fuVzs7KhfqWyk+MQ+LqP2A0IXFW643Xu2BJCw4iLpmFBoKHl+7AUZ5q4o2qefe1DFoAMijmbFsxbIcmDuvWg==";
     };
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
-      sources."@primer/octicons-12.1.0"
+      sources."@primer/octicons-14.1.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.41"
+      sources."@types/node-14.17.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
@@ -112262,7 +113008,7 @@ in
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."diff-5.0.0"
-      sources."diff2html-3.4.3"
+      sources."diff2html-3.4.4"
       sources."dnd-page-scroll-0.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
@@ -112270,7 +113016,7 @@ in
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-5.0.0" // {
+      (sources."engine.io-5.1.1" // {
         dependencies = [
           sources."cookie-0.4.1"
           sources."debug-4.3.2"
@@ -112283,23 +113029,24 @@ in
       sources."etag-1.8.1"
       sources."eve-0.5.4"
       sources."express-4.17.1"
-      (sources."express-session-1.17.1" // {
+      (sources."express-session-1.17.2" // {
         dependencies = [
+          sources."cookie-0.4.1"
           sources."depd-2.0.0"
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."fast-safe-stringify-2.0.7"
       sources."fecha-4.2.1"
       sources."finalhandler-1.1.2"
       sources."fn.name-1.1.0"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
       sources."getmac-5.17.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."got-9.6.0"
       sources."hasher-1.2.0"
       (sources."hogan.js-3.0.2" // {
@@ -112359,14 +113106,14 @@ in
       sources."negotiator-0.6.2"
       sources."node-cache-5.1.2"
       sources."nopt-1.0.10"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."nprogress-0.2.0"
       sources."object-assign-4.1.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."open-8.0.6"
+      sources."open-8.1.0"
       sources."p-cancelable-1.1.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -112382,7 +113129,7 @@ in
       sources."pause-0.0.1"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."pseudomap-1.0.2"
       sources."pump-3.0.0"
       sources."qs-6.7.0"
@@ -112415,13 +113162,13 @@ in
       sources."signals-1.0.0"
       sources."simple-swizzle-0.2.2"
       sources."snapsvg-0.5.1"
-      (sources."socket.io-4.0.1" // {
+      (sources."socket.io-4.1.2" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.2.0"
+      sources."socket.io-adapter-2.3.1"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
           sources."debug-4.3.2"
@@ -112464,10 +113211,10 @@ in
       })
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."y18n-5.0.8"
       sources."yallist-2.1.2"
-      sources."yargs-16.2.0"
+      sources."yargs-17.0.1"
       sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
@@ -112489,15 +113236,17 @@ in
       sha512 = "dp7CncooBn6zSacyoSRdlm+fS1mQ6PsCT2pFILUgsDzn3e/e56iQA2mjmob8DOqM1n/0xbVziVelH31M8fcYXw==";
     };
     dependencies = [
+      sources."@mapbox/node-pre-gyp-1.0.5"
       sources."abbrev-1.1.1"
+      sources."agent-base-6.0.2"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."canvas-2.7.0"
-      sources."chownr-1.1.4"
+      sources."canvas-2.8.0"
+      sources."chownr-2.0.0"
       (sources."cliui-7.0.4" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -112531,66 +113280,59 @@ in
       sources."d3-time-2.1.1"
       sources."d3-time-format-3.0.0"
       sources."d3-timer-2.0.0"
-      sources."debug-3.2.7"
+      sources."debug-4.3.2"
       sources."decompress-response-4.2.1"
-      sources."deep-extend-0.6.0"
       sources."delaunator-4.0.1"
       sources."delegates-1.0.0"
       sources."detect-libc-1.0.3"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
-      sources."fs-minipass-1.2.7"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gauge-2.7.4"
       sources."get-caller-file-2.0.5"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."has-1.0.3"
       sources."has-unicode-2.0.1"
+      sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
-      sources."ignore-walk-3.0.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.8"
       sources."internmap-1.0.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."isarray-1.0.0"
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
-      sources."mkdirp-0.5.5"
-      sources."ms-2.1.3"
+      sources."minipass-3.1.3"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-1.0.4"
+      sources."ms-2.1.2"
       sources."nan-2.14.2"
-      sources."needle-2.6.0"
       sources."node-fetch-2.6.1"
-      sources."node-pre-gyp-0.15.0"
-      sources."nopt-4.0.3"
-      sources."npm-bundled-1.1.1"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-packlist-1.4.8"
+      sources."nopt-5.0.0"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      sources."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."process-nextick-args-2.0.1"
-      sources."rc-1.2.8"
       sources."readable-stream-2.3.7"
       sources."require-directory-2.1.1"
       sources."resolve-1.20.0"
-      sources."rimraf-2.7.1"
+      sources."rimraf-3.0.2"
       sources."rw-1.3.3"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.2.4"
-      sources."semver-5.7.1"
+      sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
       sources."simple-concat-1.0.1"
@@ -112598,8 +113340,7 @@ in
       sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
-      sources."strip-json-comments-2.0.1"
-      sources."tar-4.4.13"
+      sources."tar-6.1.0"
       sources."topojson-client-3.1.0"
       sources."util-deprecate-1.0.2"
       sources."vega-5.20.2"
@@ -112643,7 +113384,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."y18n-5.0.8"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
       (sources."yargs-16.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -112674,7 +113415,7 @@ in
     };
     dependencies = [
       sources."@types/clone-2.1.0"
-      sources."@types/fast-json-stable-stringify-2.0.0"
+      sources."@types/fast-json-stable-stringify-2.1.0"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."array-flat-polyfill-1.0.1"
@@ -112714,10 +113455,10 @@ in
   vim-language-server = nodeEnv.buildNodePackage {
     name = "vim-language-server";
     packageName = "vim-language-server";
-    version = "2.2.2";
+    version = "2.2.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.2.2.tgz";
-      sha512 = "kM1XAb7NE+jwZ4ClyHMUWvd/0eDBSW8fBGaVinuRDgqMvavTrlo7SUlsgHzZhlTjTk+ZaDMfyVQBZUVNytprkg==";
+      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.2.3.tgz";
+      sha512 = "dUaWfvqNM0IVwinwYHv6prKYEw4o/ayZtvceFBKdMCf91uYzKt64MLqD8ZA597JLheul/oEV1XKgpzLLPcfVVw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -112729,6 +113470,203 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  vls = nodeEnv.buildNodePackage {
+    name = "vls";
+    packageName = "vls";
+    version = "0.7.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vls/-/vls-0.7.2.tgz";
+      sha512 = "9nKgSPtNxQlc32K5GgZV++MdsCpNuac/SfxnEmVI0DCF4E0Uekj+RUo7Zk6NnA4veiNMN+AEjAIlbXYWPHgX6Q==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
+        ];
+      })
+      (sources."@eslint/eslintrc-0.4.1" // {
+        dependencies = [
+          sources."globals-12.4.0"
+        ];
+      })
+      sources."acorn-7.4.1"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.6"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."argparse-1.0.10"
+      sources."astral-regex-2.0.0"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."builtin-modules-1.1.1"
+      sources."callsites-3.1.0"
+      (sources."chalk-4.1.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."commander-2.20.3"
+      sources."concat-map-0.0.1"
+      sources."cross-spawn-7.0.3"
+      sources."debug-4.3.2"
+      sources."deep-is-0.1.3"
+      sources."diff-4.0.2"
+      sources."doctrine-3.0.0"
+      sources."emoji-regex-8.0.0"
+      sources."enquirer-2.3.6"
+      sources."escape-string-regexp-4.0.0"
+      sources."eslint-7.27.0"
+      sources."eslint-plugin-vue-7.10.0"
+      sources."eslint-scope-5.1.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 = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."file-entry-cache-6.0.1"
+      sources."flat-cache-3.0.4"
+      sources."flatted-3.1.1"
+      sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      sources."glob-7.1.7"
+      sources."glob-parent-5.1.2"
+      (sources."globals-13.9.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."ignore-4.0.6"
+      sources."import-fresh-3.3.0"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-core-module-2.4.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."isexe-2.0.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."levn-0.4.1"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.merge-4.6.2"
+      sources."lodash.truncate-4.4.2"
+      sources."lru-cache-6.0.0"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.1.2"
+      sources."natural-compare-1.4.0"
+      sources."once-1.4.0"
+      sources."optionator-0.9.1"
+      sources."parent-module-1.0.1"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
+      sources."path-parse-1.0.7"
+      sources."prelude-ls-1.2.1"
+      sources."prettier-2.3.0"
+      sources."progress-2.0.3"
+      sources."punycode-2.1.1"
+      sources."regexpp-3.1.0"
+      sources."require-from-string-2.0.2"
+      sources."resolve-1.20.0"
+      sources."resolve-from-4.0.0"
+      sources."rimraf-3.0.2"
+      sources."semver-7.3.5"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      (sources."slice-ansi-4.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."sprintf-js-1.0.3"
+      sources."string-width-4.2.2"
+      sources."strip-ansi-6.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      (sources."table-6.7.1" // {
+        dependencies = [
+          sources."ajv-8.5.0"
+          sources."json-schema-traverse-1.0.0"
+        ];
+      })
+      sources."text-table-0.2.0"
+      sources."tslib-1.14.1"
+      (sources."tslint-6.1.3" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."tsutils-2.29.0"
+      sources."type-check-0.4.0"
+      sources."type-fest-0.8.1"
+      sources."typescript-4.3.2"
+      sources."uri-js-4.4.1"
+      sources."v8-compile-cache-2.3.0"
+      (sources."vue-eslint-parser-7.6.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+          sources."espree-6.2.1"
+        ];
+      })
+      sources."which-2.0.2"
+      sources."word-wrap-1.2.3"
+      sources."wrappy-1.0.2"
+      sources."yallist-4.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Vue Language Server";
+      homepage = "https://github.com/vuejs/vetur/tree/master/server";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   vscode-css-languageserver-bin = nodeEnv.buildNodePackage {
     name = "vscode-css-languageserver-bin";
     packageName = "vscode-css-languageserver-bin";
@@ -112805,15 +113743,19 @@ in
     };
     dependencies = [
       sources."agent-base-4.3.0"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."concat-map-0.0.1"
       sources."debug-3.1.0"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
       sources."jsonc-parser-3.0.0"
+      sources."minimatch-3.0.4"
       sources."ms-2.0.0"
       sources."request-light-0.4.0"
-      (sources."vscode-json-languageservice-4.0.2" // {
+      (sources."vscode-json-languageservice-4.1.4" // {
         dependencies = [
           sources."vscode-nls-5.0.0"
         ];
@@ -112895,7 +113837,7 @@ in
       sources."@types/json5-0.0.30"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.55.0"
+      sources."@types/vscode-1.56.0"
       sources."@types/yauzl-2.9.1"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
@@ -112945,7 +113887,7 @@ in
       sources."assign-symbols-1.0.0"
       sources."async-each-1.0.3"
       sources."atob-2.1.2"
-      sources."azure-devops-node-api-7.2.0"
+      sources."azure-devops-node-api-10.2.2"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -112986,7 +113928,7 @@ in
       sources."builtin-status-codes-3.0.0"
       (sources."cacache-12.0.4" // {
         dependencies = [
-          sources."glob-7.1.6"
+          sources."glob-7.1.7"
         ];
       })
       sources."cache-base-1.0.1"
@@ -112997,7 +113939,7 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."cheerio-1.0.0-rc.6"
+      sources."cheerio-1.0.0-rc.9"
       sources."cheerio-select-1.4.0"
       sources."chokidar-3.3.0"
       sources."chownr-1.1.4"
@@ -113057,7 +113999,7 @@ in
       sources."cross-spawn-6.0.5"
       sources."crypto-browserify-3.12.0"
       sources."css-select-4.1.2"
-      sources."css-what-5.0.0"
+      sources."css-what-5.0.1"
       sources."cyclist-1.0.1"
       sources."debug-3.2.6"
       sources."decamelize-1.2.0"
@@ -113073,7 +114015,7 @@ in
           sources."bn.js-4.12.0"
         ];
       })
-      sources."dom-serializer-1.3.1"
+      sources."dom-serializer-1.3.2"
       sources."domain-browser-1.2.0"
       sources."domelementtype-2.2.0"
       sources."domhandler-4.2.0"
@@ -113103,7 +114045,7 @@ in
       })
       sources."entities-2.2.0"
       sources."errno-0.1.8"
-      (sources."es-abstract-1.18.0" // {
+      (sources."es-abstract-1.18.3" // {
         dependencies = [
           sources."object.assign-4.1.2"
         ];
@@ -113235,13 +114177,13 @@ in
       sources."ini-1.3.8"
       sources."interpret-1.4.0"
       sources."is-accessor-descriptor-1.0.0"
-      sources."is-bigint-1.0.1"
+      sources."is-bigint-1.0.2"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.0"
+      sources."is-boolean-object-1.1.1"
       sources."is-buffer-2.0.5"
       sources."is-callable-1.2.3"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
@@ -113249,11 +114191,11 @@ in
       sources."is-glob-4.0.1"
       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.5"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
+      sources."is-regex-1.1.3"
+      sources."is-string-1.0.6"
+      sources."is-symbol-1.0.4"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-0.0.1"
@@ -113367,14 +114309,13 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.10.3"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
       sources."object.getownpropertydescriptors-2.1.2"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."os-0.1.1"
       sources."os-browserify-0.3.0"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
@@ -113403,7 +114344,7 @@ in
       sources."path-key-2.0.1"
       sources."pbkdf2-3.1.2"
       sources."pend-1.2.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-4.0.1"
       sources."pkg-dir-3.0.0"
       sources."posix-character-classes-0.1.1"
@@ -113423,6 +114364,7 @@ in
         ];
       })
       sources."punycode-2.1.1"
+      sources."qs-6.10.1"
       sources."querystring-0.2.0"
       sources."querystring-es3-0.2.1"
       sources."randombytes-2.1.0"
@@ -113464,6 +114406,7 @@ in
       sources."sha.js-2.4.11"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -113578,14 +114521,15 @@ in
           sources."semver-6.3.0"
         ];
       })
+      sources."tslib-2.2.0"
       sources."tty-browserify-0.0.0"
-      sources."tunnel-0.0.4"
-      sources."typed-rest-client-1.2.0"
+      sources."tunnel-0.0.6"
+      sources."typed-rest-client-1.8.4"
       sources."typedarray-0.0.6"
       sources."typescript-3.9.9"
       sources."uc.micro-1.0.6"
       sources."unbox-primitive-1.0.1"
-      sources."underscore-1.8.3"
+      sources."underscore-1.13.1"
       sources."union-value-1.0.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
@@ -113618,9 +114562,9 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.3.0"
       sources."vm-browserify-1.1.2"
-      sources."vsce-1.87.1"
-      sources."vscode-debugadapter-testsupport-1.46.0"
-      sources."vscode-debugprotocol-1.46.0"
+      sources."vsce-1.91.0"
+      sources."vscode-debugadapter-testsupport-1.47.0"
+      sources."vscode-debugprotocol-1.47.0"
       (sources."watchpack-1.7.5" // {
         dependencies = [
           sources."chokidar-3.5.1"
@@ -113800,7 +114744,7 @@ in
       sources."get-stream-3.0.0"
       sources."getpass-0.1.7"
       sources."git-clone-0.1.0"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."got-6.7.1"
       sources."graceful-fs-4.2.6"
       sources."gray-matter-2.1.1"
@@ -113947,7 +114891,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.13.4"
+      sources."uglify-js-3.13.8"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -113989,8 +114933,8 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
+      sources."@babel/helper-validator-identifier-7.14.0"
+      sources."@babel/highlight-7.14.0"
       sources."@emmetio/extract-abbreviation-0.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -114006,7 +114950,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -114287,7 +115231,7 @@ in
       sources."get-caller-file-1.0.3"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -114357,7 +115301,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
@@ -114466,7 +115410,7 @@ in
       sources."nopt-5.0.0"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npm-prefix-1.2.0"
       sources."npm-run-path-2.0.2"
       sources."number-is-nan-1.0.1"
@@ -114521,9 +115465,9 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-type-3.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-3.0.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
@@ -114680,7 +115624,7 @@ in
       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.9"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
       sources."stampit-1.2.0"
@@ -114812,7 +115756,7 @@ in
       sources."unist-util-inspect-4.1.4"
       sources."unist-util-is-2.1.3"
       sources."unist-util-modify-children-1.1.6"
-      sources."unist-util-stringify-position-2.0.3"
+      sources."unist-util-stringify-position-3.0.0"
       sources."unist-util-visit-1.4.1"
       (sources."unist-util-visit-parents-2.1.2" // {
         dependencies = [
@@ -114838,8 +115782,13 @@ in
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.2.1"
-      sources."vfile-message-2.0.4"
+      (sources."vfile-4.2.1" // {
+        dependencies = [
+          sources."unist-util-stringify-position-2.0.3"
+          sources."vfile-message-2.0.4"
+        ];
+      })
+      sources."vfile-message-3.0.1"
       (sources."vfile-reporter-6.0.2" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -114848,6 +115797,7 @@ in
           sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
           sources."supports-color-6.1.0"
+          sources."unist-util-stringify-position-2.0.3"
         ];
       })
       sources."vfile-sort-2.2.2"
@@ -114914,18 +115864,257 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  wavedrom-cli = nodeEnv.buildNodePackage {
+    name = "wavedrom-cli";
+    packageName = "wavedrom-cli";
+    version = "2.6.8";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/wavedrom-cli/-/wavedrom-cli-2.6.8.tgz";
+      sha512 = "uhSNGU27KDT2e2v51l/NqMc59O7X0DG7CHonZOwsnvMHLvyudCLZgXCU8Rw4T8gpqg2asn50vfPHq7l3DGlN5w==";
+    };
+    dependencies = [
+      sources."@babel/runtime-corejs3-7.14.0"
+      sources."@mapbox/node-pre-gyp-1.0.5"
+      sources."@tootallnate/once-1.1.2"
+      sources."@types/raf-3.4.0"
+      sources."abab-2.0.5"
+      sources."abbrev-1.1.1"
+      sources."acorn-8.3.0"
+      (sources."acorn-globals-6.0.0" // {
+        dependencies = [
+          sources."acorn-7.4.1"
+        ];
+      })
+      sources."acorn-walk-7.2.0"
+      sources."agent-base-6.0.2"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-4.3.0"
+      sources."aproba-1.2.0"
+      sources."are-we-there-yet-1.1.5"
+      sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
+      sources."atob-2.1.2"
+      sources."balanced-match-1.0.2"
+      (sources."bit-field-1.3.6" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."fs-extra-8.1.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."jsonfile-4.0.0"
+          sources."onml-1.3.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+          sources."universalify-0.1.2"
+          sources."yargs-15.4.1"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."browser-process-hrtime-1.0.0"
+      sources."btoa-1.2.1"
+      sources."camelcase-5.3.1"
+      sources."canvas-2.8.0"
+      sources."canvg-3.0.7"
+      sources."chownr-2.0.0"
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."code-point-at-1.1.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."combined-stream-1.0.8"
+      sources."concat-map-0.0.1"
+      sources."console-control-strings-1.1.0"
+      sources."core-js-pure-3.13.1"
+      sources."core-util-is-1.0.2"
+      sources."cssom-0.4.4"
+      (sources."cssstyle-2.3.0" // {
+        dependencies = [
+          sources."cssom-0.3.8"
+        ];
+      })
+      sources."data-urls-2.0.0"
+      sources."debug-4.3.2"
+      sources."decamelize-1.2.0"
+      sources."decimal.js-10.2.1"
+      sources."decompress-response-4.2.1"
+      sources."deep-is-0.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
+      sources."detect-libc-1.0.3"
+      (sources."domexception-2.0.1" // {
+        dependencies = [
+          sources."webidl-conversions-5.0.0"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."escalade-3.1.1"
+      sources."escodegen-2.0.0"
+      sources."esprima-4.0.1"
+      sources."estraverse-5.2.0"
+      sources."esutils-2.0.3"
+      sources."fast-levenshtein-2.0.6"
+      sources."find-up-4.1.0"
+      sources."form-data-3.0.1"
+      sources."fs-extra-9.1.0"
+      sources."fs-minipass-2.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."gauge-2.7.4"
+      sources."get-caller-file-2.0.5"
+      sources."glob-7.1.7"
+      sources."graceful-fs-4.2.6"
+      sources."has-unicode-2.0.1"
+      sources."html-encoding-sniffer-2.0.1"
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-potential-custom-element-name-1.0.1"
+      sources."isarray-1.0.0"
+      sources."jsdom-16.6.0"
+      sources."json5-2.2.0"
+      sources."jsonfile-6.1.0"
+      sources."levn-0.3.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
+      sources."logidrom-0.3.1"
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-response-2.1.0"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."minipass-3.1.3"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-1.0.4"
+      sources."ms-2.1.2"
+      sources."nan-2.14.2"
+      sources."node-fetch-2.6.1"
+      sources."nopt-5.0.0"
+      sources."npmlog-4.1.2"
+      sources."number-is-nan-1.0.1"
+      sources."nwsapi-2.2.0"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."onml-2.1.0"
+      sources."optionator-0.8.3"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."parse5-6.0.1"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."performance-now-2.1.0"
+      sources."prelude-ls-1.1.2"
+      sources."process-nextick-args-2.0.1"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."raf-3.4.1"
+      sources."readable-stream-2.3.7"
+      sources."regenerator-runtime-0.13.8"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."rgbcolor-1.0.1"
+      sources."rimraf-3.0.2"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
+      sources."saxes-5.0.1"
+      sources."semver-7.3.5"
+      sources."set-blocking-2.0.0"
+      sources."signal-exit-3.0.3"
+      sources."simple-concat-1.0.1"
+      sources."simple-get-3.1.0"
+      sources."source-map-0.6.1"
+      sources."stackblur-canvas-2.5.0"
+      sources."string-width-1.0.2"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-3.0.1"
+      sources."svg-pathdata-5.0.5"
+      sources."svg2img-0.9.2"
+      sources."symbol-tree-3.2.4"
+      sources."tar-6.1.0"
+      (sources."tough-cookie-4.0.0" // {
+        dependencies = [
+          sources."universalify-0.1.2"
+        ];
+      })
+      sources."tr46-2.1.0"
+      sources."tspan-0.4.0"
+      sources."type-check-0.3.2"
+      sources."universalify-2.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."w3c-hr-time-1.0.2"
+      sources."w3c-xmlserializer-2.0.0"
+      sources."wavedrom-2.6.9"
+      sources."webidl-conversions-6.1.0"
+      sources."whatwg-encoding-1.0.5"
+      sources."whatwg-mimetype-2.3.0"
+      sources."whatwg-url-8.5.0"
+      sources."which-module-2.0.0"
+      sources."wide-align-1.1.3"
+      sources."word-wrap-1.2.3"
+      (sources."wrap-ansi-6.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."ws-7.4.6"
+      sources."xml-name-validator-3.0.0"
+      sources."xmlchars-2.2.0"
+      sources."y18n-4.0.3"
+      sources."yallist-4.0.0"
+      (sources."yargs-16.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."cliui-7.0.4"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
+          sources."yargs-parser-20.2.7"
+        ];
+      })
+      sources."yargs-parser-18.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "WaveDrom command-line interface (CLI)";
+      homepage = "https://github.com/wavedrom/cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "6.0.0";
+    version = "6.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.0.0.tgz";
-      sha512 = "djjTY89kM5ULdKYQo+6TYJSlT+0zNkanW5hQJNybOqGyovUYpH7C3Ns9Pd1cy6ApbmG2VV4Gds9u4yCSuRfHUw==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.1.0.tgz";
+      sha512 = "f9sBuysFoCJAuS03wRtSBH8dPKQUZvCVT+AoqBW3tBBN6a92P0PyGF2lTwZJ5wrOOvXu7w2DvuAFOU6CnBugFw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -114939,22 +116128,23 @@ in
       sources."@devicefarmer/adbkit-2.11.3"
       sources."@devicefarmer/adbkit-logcat-1.1.0"
       sources."@devicefarmer/adbkit-monkey-1.0.1"
-      (sources."@eslint/eslintrc-0.4.0" // {
+      (sources."@eslint/eslintrc-0.4.1" // {
         dependencies = [
           sources."debug-4.3.2"
+          sources."globals-12.4.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."@mdn/browser-compat-data-3.1.3"
+      sources."@mdn/browser-compat-data-3.2.4"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@types/yauzl-2.9.1"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
-      sources."addons-linter-2.21.0"
-      sources."addons-scanner-utils-4.2.0"
+      sources."addons-linter-3.2.0"
+      sources."addons-scanner-utils-4.4.0"
       sources."adm-zip-0.5.5"
       sources."ajv-6.12.6"
       sources."ajv-merge-patch-4.1.0"
@@ -114971,17 +116161,6 @@ in
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
       sources."any-promise-1.3.0"
-      (sources."archiver-5.2.0" // {
-        dependencies = [
-          sources."async-3.2.0"
-        ];
-      })
-      (sources."archiver-utils-2.1.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
       sources."argparse-1.0.10"
       sources."array-differ-3.0.0"
       sources."array-filter-0.0.1"
@@ -114999,9 +116178,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."balanced-match-1.0.2"
-      sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bl-4.1.0"
       sources."bluebird-2.9.34"
       sources."boolbase-1.0.0"
       (sources."boxen-5.0.1" // {
@@ -115010,7 +116187,6 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-equal-constant-time-1.0.1"
       sources."buffer-from-1.1.1"
@@ -115025,8 +116201,8 @@ in
       sources."camelcase-6.2.0"
       sources."caseless-0.12.0"
       sources."chalk-4.1.0"
-      sources."cheerio-1.0.0-rc.5"
-      sources."cheerio-select-tmp-0.1.1"
+      sources."cheerio-1.0.0-rc.6"
+      sources."cheerio-select-1.4.0"
       (sources."chrome-launcher-0.13.4" // {
         dependencies = [
           sources."mkdirp-0.5.5"
@@ -115049,23 +116225,15 @@ in
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
       sources."common-tags-1.8.0"
-      sources."compress-commons-4.1.0"
       sources."concat-map-0.0.1"
-      (sources."concat-stream-1.6.2" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."concat-stream-1.6.2"
       sources."configstore-5.0.1"
       sources."core-js-3.8.3"
       sources."core-util-is-1.0.2"
-      sources."crc-32-1.2.0"
-      sources."crc32-stream-4.0.2"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."css-select-3.1.2"
-      sources."css-what-4.0.0"
+      sources."css-select-4.1.2"
+      sources."css-what-5.0.1"
       sources."dashdash-1.14.1"
       sources."debounce-1.2.0"
       sources."debug-2.6.9"
@@ -115080,14 +116248,13 @@ in
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
-      (sources."dispensary-0.61.0" // {
+      (sources."dispensary-0.62.0" // {
         dependencies = [
           sources."async-3.2.0"
-          sources."pino-6.9.0"
         ];
       })
       sources."doctrine-3.0.0"
-      sources."dom-serializer-1.2.0"
+      sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
       sources."domhandler-4.2.0"
       sources."domutils-2.6.0"
@@ -115099,14 +116266,14 @@ in
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
-      sources."entities-2.1.0"
+      sources."entities-2.2.0"
       sources."error-ex-1.3.2"
       sources."es6-error-4.1.1"
       sources."es6-promisify-6.1.1"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.21.0" // {
+      (sources."eslint-7.24.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."debug-4.3.2"
@@ -115142,7 +116309,6 @@ in
       sources."esutils-2.0.3"
       sources."event-to-promise-0.8.0"
       sources."execa-4.1.0"
-      sources."exit-on-epipe-1.0.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
@@ -115153,14 +116319,13 @@ in
       })
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fast-redact-3.0.0"
+      sources."fast-redact-3.0.1"
       sources."fast-safe-stringify-2.0.7"
       sources."fd-slicer-1.1.0"
       sources."file-entry-cache-6.0.1"
-      (sources."firefox-profile-4.1.0" // {
+      (sources."firefox-profile-4.2.0" // {
         dependencies = [
           sources."fs-extra-9.0.1"
-          sources."uuid-8.3.2"
         ];
       })
       sources."first-chunk-stream-3.0.0"
@@ -115170,17 +116335,15 @@ in
       sources."fluent-syntax-0.13.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fs-constants-1.0.0"
       (sources."fs-extra-9.1.0" // {
         dependencies = [
           sources."universalify-2.0.0"
         ];
       })
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      (sources."fx-runner-1.0.13" // {
+      (sources."fx-runner-1.1.0" // {
         dependencies = [
           sources."commander-2.9.0"
           sources."isexe-1.1.2"
@@ -115195,7 +116358,11 @@ in
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
       sources."global-dirs-3.0.0"
-      sources."globals-12.4.0"
+      (sources."globals-13.9.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
       (sources."got-9.6.0" // {
         dependencies = [
           sources."get-stream-4.1.0"
@@ -115214,9 +116381,8 @@ in
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
-      sources."iconv-lite-0.4.24"
-      sources."ieee754-1.2.1"
       sources."ignore-4.0.6"
+      sources."image-size-0.9.7"
       sources."immediate-3.0.6"
       sources."import-fresh-3.3.0"
       sources."import-lazy-2.1.0"
@@ -115228,9 +116394,8 @@ in
       sources."is-absolute-0.1.7"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-ci-2.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -115238,13 +116403,11 @@ in
       sources."is-installed-globally-0.4.0"
       sources."is-mergeable-object-1.1.1"
       sources."is-npm-5.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-relative-0.1.3"
       sources."is-stream-2.0.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-wsl-2.2.0"
@@ -115276,22 +116439,11 @@ in
         ];
       })
       sources."jsprim-1.4.1"
-      (sources."jszip-3.6.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."jszip-3.6.0"
       sources."jwa-1.4.1"
       sources."jws-3.2.2"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
-      (sources."lazystream-1.0.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
       sources."lcid-3.1.1"
       sources."levn-0.4.1"
       sources."lie-3.3.0"
@@ -115299,9 +116451,6 @@ in
       sources."lines-and-columns-1.1.6"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.difference-4.5.0"
-      sources."lodash.flatten-4.4.0"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
       sources."lodash.isinteger-4.0.4"
@@ -115310,7 +116459,6 @@ in
       sources."lodash.isstring-4.0.1"
       sources."lodash.once-4.1.1"
       sources."lodash.truncate-4.4.2"
-      sources."lodash.union-4.6.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
@@ -115319,7 +116467,7 @@ in
         ];
       })
       sources."map-age-cleaner-0.1.3"
-      sources."marky-1.2.1"
+      sources."marky-1.2.2"
       sources."mem-5.1.1"
       sources."merge-stream-2.0.0"
       sources."mime-db-1.47.0"
@@ -115341,24 +116489,17 @@ in
       })
       sources."mz-2.7.0"
       sources."nan-2.14.2"
-      sources."nanoid-3.1.22"
+      sources."nanoid-3.1.23"
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
       sources."ncp-2.0.0"
-      (sources."needle-2.6.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-          sources."ms-2.1.3"
-        ];
-      })
       sources."node-forge-0.10.0"
       (sources."node-notifier-9.0.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
       })
-      sources."normalize-path-3.0.0"
-      sources."normalize-url-4.5.0"
+      sources."normalize-url-4.5.1"
       sources."npm-run-path-4.0.1"
       sources."nth-check-2.0.0"
       sources."oauth-sign-0.9.0"
@@ -115388,17 +116529,11 @@ in
       sources."path-key-3.1.1"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      (sources."pino-6.11.1" // {
-        dependencies = [
-          sources."pino-std-serializers-3.2.0"
-        ];
-      })
-      sources."pino-std-serializers-2.5.0"
-      sources."postcss-8.2.7"
+      sources."pino-6.11.2"
+      sources."pino-std-serializers-3.2.0"
+      sources."postcss-8.2.10"
       sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
-      sources."printj-1.1.2"
-      sources."probe-image-size-6.0.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."psl-1.8.0"
@@ -115406,15 +116541,19 @@ in
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."qs-6.5.2"
-      sources."quick-format-unescaped-4.0.3"
+      sources."queue-6.0.2"
+      sources."quick-format-unescaped-4.0.1"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
           sources."strip-json-comments-2.0.1"
         ];
       })
-      sources."readable-stream-3.6.0"
-      sources."readdir-glob-1.1.1"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."regenerator-runtime-0.13.8"
       sources."regexp.prototype.flags-1.3.1"
       sources."regexpp-3.1.0"
@@ -115440,7 +116579,7 @@ in
       sources."safe-json-stringify-1.2.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -115462,7 +116601,6 @@ in
       sources."split-0.3.3"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
-      sources."stream-parser-0.3.1"
       sources."stream-to-array-2.3.0"
       sources."stream-to-promise-3.0.0"
       (sources."string-width-4.2.2" // {
@@ -115483,13 +116621,14 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-7.2.0"
-      (sources."table-6.1.0" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.1.0"
+          sources."ajv-8.5.0"
+          sources."ansi-regex-5.0.0"
           sources."json-schema-traverse-1.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
-      sources."tar-stream-2.2.0"
       sources."text-table-0.2.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
@@ -115544,7 +116683,6 @@ in
           sources."async-3.2.0"
         ];
       })
-      sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -115559,17 +116697,17 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.33.2";
+    version = "5.38.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.33.2.tgz";
-      sha512 = "X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz";
+      sha512 = "OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==";
     };
     dependencies = [
-      sources."@types/eslint-7.2.10"
+      sources."@types/eslint-7.2.12"
       sources."@types/eslint-scope-3.7.0"
-      sources."@types/estree-0.0.46"
+      sources."@types/estree-0.0.47"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -115587,17 +116725,17 @@ in
       sources."@webassemblyjs/wast-printer-1.11.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.1.1"
+      sources."acorn-8.3.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.6"
       sources."buffer-from-1.1.1"
-      sources."caniuse-lite-1.0.30001209"
+      sources."caniuse-lite-1.0.30001232"
       sources."chrome-trace-event-1.0.3"
       sources."colorette-1.2.2"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.3.717"
-      sources."enhanced-resolve-5.7.0"
+      sources."electron-to-chromium-1.3.743"
+      sources."enhanced-resolve-5.8.2"
       sources."es-module-lexer-0.4.1"
       sources."escalade-3.1.1"
       sources."eslint-scope-5.1.1"
@@ -115613,7 +116751,7 @@ in
       sources."glob-to-regexp-0.4.1"
       sources."graceful-fs-4.2.6"
       sources."has-flag-4.0.0"
-      sources."jest-worker-26.6.2"
+      sources."jest-worker-27.0.2"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
       sources."loader-runner-4.2.0"
@@ -115621,7 +116759,7 @@ in
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."neo-async-2.6.2"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.72"
       sources."p-limit-3.1.0"
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
@@ -115631,17 +116769,17 @@ in
       sources."source-list-map-2.0.1"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
-      sources."supports-color-7.2.0"
+      sources."supports-color-8.1.1"
       sources."tapable-2.2.0"
-      (sources."terser-5.6.1" // {
+      (sources."terser-5.7.0" // {
         dependencies = [
           sources."source-map-0.7.3"
         ];
       })
-      sources."terser-webpack-plugin-5.1.1"
+      sources."terser-webpack-plugin-5.1.3"
       sources."uri-js-4.4.1"
-      sources."watchpack-2.1.1"
-      sources."webpack-sources-2.2.0"
+      sources."watchpack-2.2.0"
+      sources."webpack-sources-2.3.0"
       sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -115657,24 +116795,22 @@ in
   webpack-cli = nodeEnv.buildNodePackage {
     name = "webpack-cli";
     packageName = "webpack-cli";
-    version = "4.6.0";
+    version = "4.7.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.7.0.tgz";
+      sha512 = "7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==";
     };
     dependencies = [
-      sources."@discoveryjs/json-ext-0.5.2"
-      sources."@webpack-cli/configtest-1.0.2"
-      sources."@webpack-cli/info-1.2.3"
-      sources."@webpack-cli/serve-1.3.1"
-      sources."ansi-colors-4.1.1"
+      sources."@discoveryjs/json-ext-0.5.3"
+      sources."@webpack-cli/configtest-1.0.3"
+      sources."@webpack-cli/info-1.2.4"
+      sources."@webpack-cli/serve-1.4.0"
       sources."clone-deep-4.0.1"
       sources."colorette-1.2.2"
       sources."commander-7.2.0"
       sources."cross-spawn-7.0.3"
-      sources."enquirer-2.3.6"
       sources."envinfo-7.8.1"
-      sources."execa-5.0.0"
+      sources."execa-5.0.1"
       sources."fastest-levenshtein-1.0.12"
       sources."find-up-4.1.0"
       sources."function-bind-1.1.1"
@@ -115683,7 +116819,7 @@ in
       sources."human-signals-2.1.0"
       sources."import-local-3.0.2"
       sources."interpret-2.2.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.4.0"
       sources."is-plain-object-2.0.4"
       sources."is-stream-2.0.0"
       sources."isexe-2.0.0"
@@ -115699,7 +116835,7 @@ in
       sources."p-try-2.2.0"
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."pkg-dir-4.2.0"
       sources."rechoir-0.7.0"
       sources."resolve-1.20.0"
@@ -115718,6 +116854,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CLI for webpack & friends";
+      homepage = "https://github.com/webpack/webpack-cli/tree/master/packages/webpack-cli";
       license = "MIT";
     };
     production = true;
@@ -115735,7 +116872,7 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
+      sources."@types/node-15.6.1"
       sources."accepts-1.3.7"
       sources."ajv-6.12.6"
       sources."ajv-errors-1.0.1"
@@ -115855,9 +116992,9 @@ in
       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."dns-equal-1.0.0"
-      sources."dns-packet-1.3.1"
+      sources."dns-packet-1.3.4"
       sources."dns-txt-2.0.2"
       sources."ee-first-1.1.1"
       sources."emoji-regex-7.0.3"
@@ -115906,7 +117043,7 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."faye-websocket-0.11.3"
+      sources."faye-websocket-0.11.4"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
@@ -115920,9 +117057,9 @@ in
         ];
       })
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.13.3"
+      sources."follow-redirects-1.14.1"
       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.realpath-1.0.0"
@@ -115932,7 +117069,7 @@ in
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       (sources."glob-parent-3.1.0" // {
         dependencies = [
           sources."is-glob-3.1.0"
@@ -115979,7 +117116,7 @@ in
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-1.0.1"
       sources."is-extglob-2.1.1"
@@ -115994,7 +117131,7 @@ in
       sources."is-path-in-cwd-2.1.0"
       sources."is-path-inside-2.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.3"
       sources."is-stream-1.1.0"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
@@ -116083,7 +117220,7 @@ in
       })
       sources."posix-character-classes-0.1.1"
       sources."process-nextick-args-2.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"
@@ -116121,7 +117258,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."schema-utils-1.0.0"
       sources."select-hose-2.0.0"
-      sources."selfsigned-1.10.8"
+      sources."selfsigned-1.10.11"
       sources."semver-6.3.0"
       (sources."send-0.17.1" // {
         dependencies = [
@@ -116308,10 +117445,10 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "8.1.1";
+    version = "9.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz";
-      sha512 = "rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.0.tgz";
+      sha512 = "k8UB2jLIb1Jip2nZbCz83T/XfhfjX6mB1yLJNYKrpYi7FQimfOoFv/0//iT6HV1K8FwUB5yUbCcnpLebJXJTug==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
@@ -116324,11 +117461,15 @@ in
       sources."braces-3.0.2"
       sources."dir-glob-3.0.1"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.5"
+      (sources."fast-glob-3.2.5" // {
+        dependencies = [
+          sources."glob-parent-5.1.2"
+        ];
+      })
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.11.0"
       sources."fill-range-7.0.1"
-      sources."glob-parent-5.1.2"
+      sources."glob-parent-6.0.0"
       sources."globby-11.0.3"
       sources."ignore-5.1.8"
       sources."is-extglob-2.1.1"
@@ -116340,7 +117481,7 @@ in
       sources."normalize-path-3.0.0"
       sources."p-limit-3.1.0"
       sources."path-type-4.0.0"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
@@ -116367,10 +117508,10 @@ in
   webtorrent-cli = nodeEnv.buildNodePackage {
     name = "webtorrent-cli";
     packageName = "webtorrent-cli";
-    version = "3.2.1";
+    version = "3.2.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.2.1.tgz";
-      sha512 = "DHUtDymD5ZGv/h35FY4n9YdlHoNOy07X7ibexi+19AL/+MFdGuIIQEEnJQT/wA05mrzR6ubeJmcLXXqZISwLFQ==";
+      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.2.4.tgz";
+      sha512 = "fobRASGOskIqf/ciwZ3TF14RhqWga6dR8kUD6a2E0L2YAY5n1PIJv1dVPXEwvfKHBFWDo5VwIH2OAzt/Tw2poQ==";
     };
     dependencies = [
       sources."@protobufjs/aspromise-1.1.2"
@@ -116384,7 +117525,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.50"
+      sources."@types/node-15.6.1"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.2"
@@ -116466,12 +117607,13 @@ in
       sources."create-torrent-4.7.0"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
+      sources."define-lazy-prop-2.0.0"
       (sources."dlnacasts-0.1.0" // {
         dependencies = [
           sources."mime-1.6.0"
         ];
       })
-      sources."dns-packet-1.3.1"
+      sources."dns-packet-1.3.4"
       sources."dns-txt-2.0.2"
       sources."ecstatic-4.1.4"
       sources."ee-first-1.1.1"
@@ -116489,13 +117631,13 @@ in
       })
       sources."fs.realpath-1.0.0"
       sources."get-browser-rtc-1.1.0"
-      sources."get-stdin-7.0.0"
-      sources."glob-7.1.6"
+      sources."get-stdin-8.0.0"
+      sources."glob-7.1.7"
       sources."he-1.2.0"
       sources."http-node-git://github.com/feross/http-node#webtorrent"
       sources."http-parser-js-0.4.13"
       sources."ieee754-1.2.1"
-      sources."immediate-chunk-store-2.1.1"
+      sources."immediate-chunk-store-2.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ip-1.1.5"
@@ -116527,11 +117669,11 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."magnet-uri-5.4.0"
+      sources."magnet-uri-6.2.0"
       sources."mdns-js-0.5.0"
       sources."mdns-js-packet-0.2.0"
       sources."mediasource-2.4.0"
-      sources."memory-chunk-store-1.3.2"
+      sources."memory-chunk-store-1.3.5"
       sources."mime-2.5.2"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -116556,13 +117698,13 @@ in
       sources."nodebmc-0.0.7"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-7.4.2"
+      sources."open-8.2.0"
       sources."package-json-versionify-1.0.4"
-      (sources."parse-torrent-7.1.3" // {
+      (sources."parse-torrent-9.1.3" // {
         dependencies = [
-          sources."decompress-response-4.2.1"
-          sources."mimic-response-2.1.0"
-          sources."simple-get-3.1.0"
+          sources."decompress-response-6.0.0"
+          sources."mimic-response-3.1.0"
+          sources."simple-get-4.0.0"
         ];
       })
       sources."path-is-absolute-1.0.1"
@@ -116575,7 +117717,7 @@ in
       })
       sources."prettier-bytes-1.0.4"
       sources."process-nextick-args-2.0.1"
-      sources."protobufjs-6.10.2"
+      sources."protobufjs-6.11.2"
       sources."pump-3.0.0"
       sources."qap-3.3.1"
       sources."queue-microtask-1.2.3"
@@ -116586,7 +117728,7 @@ in
       sources."range-parser-1.2.1"
       sources."range-slice-stream-2.0.0"
       sources."readable-stream-3.6.0"
-      sources."record-cache-1.1.0"
+      sources."record-cache-1.1.1"
       (sources."render-media-4.1.0" // {
         dependencies = [
           sources."debug-4.3.2"
@@ -116653,27 +117795,24 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."ut_pex-2.0.1"
-      sources."utf-8-validate-5.0.4"
+      sources."ut_pex-3.0.0"
+      sources."utf-8-validate-5.0.5"
       sources."util-deprecate-1.0.2"
-      sources."utp-native-2.4.0"
+      sources."utp-native-2.5.0"
       sources."videostream-3.2.2"
       sources."vlc-command-1.2.0"
-      (sources."webtorrent-0.117.0" // {
+      (sources."webtorrent-1.0.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."decompress-response-6.0.0"
-          sources."get-stdin-8.0.0"
-          sources."magnet-uri-6.1.1"
           sources."mimic-response-3.1.0"
           sources."ms-2.1.2"
-          sources."parse-torrent-9.1.3"
           sources."simple-get-4.0.0"
         ];
       })
       sources."winreg-1.2.4"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.5"
+      sources."ws-7.4.6"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
@@ -116715,119 +117854,13 @@ in
       sha512 = "P1Ct7+DNrOcr2JAxDZ3Q5i5sx2LSveu7iLaoUL0A+YiG0GKf0l5+9j3rwMeyh6JeTL1+HfQV1rnwEvzhNIvpFw==";
     };
     dependencies = [
-      sources."@babel/runtime-7.13.10"
-      sources."@babel/runtime-corejs3-7.13.10"
-      sources."@types/json5-0.0.29"
-      sources."adverb-where-0.2.2"
-      sources."aria-query-4.2.2"
-      sources."array-includes-3.1.3"
-      sources."array.prototype.flat-1.2.4"
-      sources."array.prototype.flatmap-1.2.4"
-      sources."ast-types-flow-0.0.7"
-      sources."axe-core-4.1.4"
-      sources."axobject-query-2.2.0"
-      sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
-      sources."call-bind-1.0.2"
+      sources."adverb-where-0.2.5"
       sources."commander-2.20.3"
-      sources."concat-map-0.0.1"
-      sources."contains-path-0.1.0"
-      sources."core-js-pure-3.10.1"
-      sources."damerau-levenshtein-1.0.6"
-      sources."debug-2.6.9"
-      sources."define-properties-1.1.3"
-      sources."doctrine-1.5.0"
       sources."e-prime-0.10.4"
-      sources."emoji-regex-9.2.2"
-      sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0"
-      sources."es-to-primitive-1.2.1"
-      sources."eslint-import-resolver-node-0.3.4"
-      sources."eslint-module-utils-2.6.0"
-      sources."eslint-plugin-import-2.22.1"
-      sources."eslint-plugin-jsx-a11y-6.4.1"
-      (sources."eslint-plugin-react-7.23.2" // {
-        dependencies = [
-          sources."doctrine-2.1.0"
-          sources."resolve-2.0.0-next.3"
-        ];
-      })
-      sources."eslint-plugin-react-hooks-4.2.0"
-      sources."esutils-2.0.3"
-      sources."find-up-2.1.0"
-      sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.1.1"
-      sources."graceful-fs-4.2.6"
-      sources."has-1.0.3"
-      sources."has-bigints-1.0.1"
-      sources."has-symbols-1.0.2"
-      sources."hosted-git-info-2.8.9"
-      sources."internal-slot-1.0.3"
-      sources."is-arrayish-0.2.1"
-      sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.1.0"
-      sources."is-callable-1.2.3"
-      sources."is-core-module-2.2.0"
-      sources."is-date-object-1.0.2"
-      sources."is-negative-zero-2.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.2"
-      sources."is-string-1.0.5"
-      sources."is-symbol-1.0.3"
-      sources."isarray-1.0.0"
-      sources."js-tokens-4.0.0"
-      sources."json5-1.0.1"
-      sources."jsx-ast-utils-3.2.0"
-      sources."language-subtag-registry-0.3.21"
-      sources."language-tags-1.0.5"
-      sources."load-json-file-2.0.0"
-      sources."locate-path-2.0.0"
-      sources."loose-envify-1.4.0"
-      sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."ms-2.0.0"
-      sources."no-cliches-0.3.2"
-      sources."normalize-package-data-2.5.0"
-      sources."object-assign-4.1.1"
-      sources."object-inspect-1.10.2"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.2"
-      sources."object.entries-1.1.3"
-      sources."object.fromentries-2.0.4"
-      sources."object.values-1.1.3"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
-      sources."parse-json-2.2.0"
+      sources."no-cliches-0.3.4"
       sources."passive-voice-0.1.0"
-      sources."path-exists-3.0.0"
-      sources."path-parse-1.0.6"
-      sources."path-type-2.0.0"
-      sources."pify-2.3.0"
-      sources."pkg-dir-2.0.0"
-      sources."prop-types-15.7.2"
-      sources."react-is-16.13.1"
-      sources."read-pkg-2.0.0"
-      sources."read-pkg-up-2.0.0"
-      sources."regenerator-runtime-0.13.8"
-      sources."regexp.prototype.flags-1.3.1"
-      sources."resolve-1.20.0"
-      sources."semver-5.7.1"
-      sources."side-channel-1.0.4"
-      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."string.prototype.matchall-4.0.4"
-      sources."string.prototype.trimend-1.0.4"
-      sources."string.prototype.trimstart-1.0.4"
-      sources."strip-bom-3.0.0"
-      sources."too-wordy-0.3.1"
-      sources."tsconfig-paths-3.9.0"
-      sources."unbox-primitive-1.0.1"
-      sources."validate-npm-package-license-3.0.4"
+      sources."too-wordy-0.3.4"
       sources."weasel-words-0.1.1"
-      sources."which-boxed-primitive-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -116842,26 +117875,28 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.18.0";
+    version = "0.19.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.18.0.tgz";
-      sha512 = "Cm3UKlaEzvd+my1L4lf5NKfCqDCkdxLmuvq8jRWOPjtrGEdY41EtuY1V+lRdRREVXyurgy4NPVFWzarcl5CltQ==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.19.2.tgz";
+      sha512 = "E4yMj1oK+OCObD15LvEaHOw8y3ux7G4KrREQDsDkjqFhUm/3qCCPMh3NPXTRQyse3r6Xpsv+lAW17Qo/NKm+0g==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
-      sources."argparse-1.0.10"
+      sources."argparse-2.0.1"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."concat-map-0.0.1"
       sources."debug-3.1.0"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
-      sources."esprima-4.0.1"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
-      sources."js-yaml-3.14.1"
+      sources."js-yaml-4.1.0"
       sources."jsonc-parser-2.3.1"
+      sources."minimatch-3.0.4"
       sources."ms-2.0.0"
       sources."request-light-0.2.5"
-      sources."sprintf-js-1.0.3"
-      (sources."vscode-json-languageservice-4.0.2" // {
+      (sources."vscode-json-languageservice-4.1.4" // {
         dependencies = [
           sources."jsonc-parser-3.0.0"
           sources."vscode-nls-5.0.0"
@@ -116907,24 +117942,63 @@ in
   yo = nodeEnv.buildNodePackage {
     name = "yo";
     packageName = "yo";
-    version = "3.1.1";
+    version = "4.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yo/-/yo-3.1.1.tgz";
-      sha512 = "GFg4QC1xi3gkbHGGUFme8/8XPg3kDISu/qJfx56X207yuv1FSevGY/eKuym7kh0bniCB4n3rseWW+QZXPH8LIw==";
+      url = "https://registry.npmjs.org/yo/-/yo-4.2.0.tgz";
+      sha512 = "dbHkO8dp4/KDsU5V7akSWVdWB+yyfadR0q3vGxRKXxg1umiYlFUrPuiu66Iy4IpRRr2Qrqx495kInkZJIJtqmA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/runtime-7.13.10"
-      sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
+      sources."@babel/runtime-7.14.0"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      (sources."@npmcli/arborist-2.6.1" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
+      (sources."@npmcli/git-2.0.9" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+          sources."semver-7.3.5"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."@npmcli/installed-package-contents-1.0.7"
+      sources."@npmcli/map-workspaces-1.0.3"
+      (sources."@npmcli/metavuln-calculator-1.1.1" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
+      (sources."@npmcli/move-file-1.1.2" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+        ];
+      })
+      sources."@npmcli/name-from-folder-1.0.1"
+      sources."@npmcli/node-gyp-1.0.2"
+      sources."@npmcli/promise-spawn-1.3.2"
+      sources."@npmcli/run-script-1.8.5"
       sources."@sindresorhus/is-0.7.0"
-      sources."@types/glob-7.1.3"
+      sources."@tootallnate/once-1.1.2"
+      sources."@types/expect-1.20.4"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.41"
-      sources."@types/normalize-package-data-2.4.0"
-      sources."JSONStream-1.3.5"
+      sources."@types/node-15.6.1"
+      sources."@types/vinyl-2.0.4"
+      sources."abbrev-1.1.1"
+      (sources."agent-base-6.0.2" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."agentkeepalive-4.1.4" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       sources."ansi-0.3.1"
@@ -116932,113 +118006,106 @@ in
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
+      sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
+      (sources."argparse-1.0.10" // {
+        dependencies = [
+          sources."sprintf-js-1.0.3"
+        ];
+      })
       sources."array-differ-3.0.0"
       sources."array-find-index-1.0.2"
-      sources."array-union-1.0.2"
+      sources."array-union-2.1.0"
       sources."array-uniq-1.0.3"
-      sources."array-unique-0.3.2"
-      sources."arrify-1.0.1"
+      sources."arrify-2.0.1"
+      sources."asap-2.0.6"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."assign-symbols-1.0.0"
       sources."astral-regex-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."axios-0.21.1"
       sources."balanced-match-1.0.2"
-      (sources."base-0.11.2" // {
+      sources."base64-js-1.5.1"
+      sources."bcrypt-pbkdf-1.0.2"
+      (sources."bin-links-2.2.1" // {
         dependencies = [
-          sources."define-property-1.0.0"
+          sources."mkdirp-1.0.4"
+          sources."write-file-atomic-3.0.3"
         ];
       })
-      sources."bcrypt-pbkdf-1.0.2"
       (sources."bin-version-2.0.0" // {
         dependencies = [
           sources."execa-0.1.1"
         ];
       })
       sources."bin-version-check-3.0.0"
-      sources."binaryextensions-2.3.0"
-      sources."boolean-3.0.3"
+      sources."binaryextensions-4.15.0"
+      (sources."bl-4.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."boolean-3.1.0"
       (sources."boxen-1.3.0" // {
         dependencies = [
           sources."camelcase-4.1.0"
         ];
       })
       sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
+      sources."braces-3.0.2"
+      sources."buffer-5.7.1"
+      sources."buffer-from-1.1.1"
+      sources."builtins-1.0.3"
+      (sources."cacache-15.2.0" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
+          sources."mkdirp-1.0.4"
         ];
       })
-      sources."buffer-from-1.1.1"
-      sources."cache-base-1.0.1"
       (sources."cacheable-request-2.1.4" // {
         dependencies = [
           sources."get-stream-3.0.0"
           sources."lowercase-keys-1.0.0"
         ];
       })
-      sources."call-me-maybe-1.0.1"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
       sources."capture-stack-trace-1.0.1"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chardet-0.7.0"
+      sources."chownr-2.0.0"
       sources."ci-info-1.6.0"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."clean-stack-2.2.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-list-0.2.0"
+      sources."cli-spinners-2.6.0"
       sources."cli-table-0.3.6"
       sources."cli-width-2.2.1"
-      sources."clone-2.1.2"
+      sources."clone-1.0.4"
       sources."clone-buffer-1.0.0"
-      sources."clone-deep-4.0.1"
       sources."clone-regexp-1.0.1"
       sources."clone-response-1.0.2"
       sources."clone-stats-1.0.0"
       sources."cloneable-readable-1.1.3"
+      sources."cmd-shim-4.1.0"
       sources."code-point-at-1.1.0"
-      sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
+      sources."commander-7.1.0"
+      sources."common-ancestor-path-1.0.1"
       sources."commondir-1.0.1"
-      sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
       sources."conf-1.4.0"
       sources."config-chain-1.1.12"
       sources."configstore-3.1.5"
-      sources."copy-descriptor-0.1.1"
-      sources."core-js-3.10.1"
+      sources."console-control-strings-1.1.0"
+      sources."core-js-3.13.1"
       sources."core-util-is-1.0.2"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -117050,127 +118117,77 @@ in
       })
       sources."crypto-random-string-1.0.0"
       sources."currently-unhandled-0.4.1"
-      sources."dargs-6.1.0"
       sources."dashdash-1.14.1"
-      sources."dateformat-3.0.3"
+      sources."dateformat-4.5.1"
       sources."debug-2.6.9"
+      sources."debuglog-1.0.1"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."default-uid-1.0.0"
+      sources."defaults-1.0.3"
       sources."define-properties-1.1.3"
-      sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
-      sources."detect-node-2.0.5"
-      sources."diff-3.5.0"
-      (sources."dir-glob-2.0.0" // {
-        dependencies = [
-          sources."path-type-3.0.0"
-        ];
-      })
+      sources."depd-1.1.2"
+      sources."detect-node-2.1.0"
+      sources."dezalgo-1.0.3"
+      sources."diff-5.0.0"
+      sources."dir-glob-3.0.1"
       sources."dot-prop-4.2.1"
       sources."downgrade-root-1.2.2"
-      sources."download-stats-0.3.4"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      (sources."editions-2.3.1" // {
+      sources."ejs-3.1.6"
+      sources."emoji-regex-8.0.0"
+      sources."encodeurl-1.0.2"
+      (sources."encoding-0.1.13" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."iconv-lite-0.6.3"
         ];
       })
-      sources."ejs-2.7.4"
-      sources."emoji-regex-8.0.0"
-      sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."env-paths-1.0.0"
-      sources."errlop-2.2.0"
-      sources."error-7.2.1"
+      sources."err-code-2.0.3"
+      sources."error-10.4.0"
       sources."error-ex-1.3.2"
       sources."es6-error-4.1.1"
-      sources."es6-promise-4.2.8"
       sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."eventemitter3-4.0.7"
       sources."execa-1.0.0"
       sources."execall-1.0.0"
       sources."exit-hook-1.1.1"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       sources."external-editor-3.1.0"
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-2.2.7"
+      sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fastq-1.11.0"
       sources."figures-2.0.0"
       sources."filelist-1.0.2"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
+      sources."fill-range-7.0.1"
       sources."filter-obj-2.0.2"
       sources."find-up-2.1.0"
       sources."find-versions-2.0.0"
+      sources."find-yarn-workspace-root2-1.2.16"
       sources."first-chunk-stream-2.0.0"
-      sources."follow-redirects-1.13.3"
-      sources."for-in-1.0.2"
       sources."foreachasync-3.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fragment-cache-0.2.1"
       sources."from2-2.3.0"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."fullname-4.0.1"
       sources."function-bind-1.1.1"
       sources."gauge-1.2.7"
       sources."get-stdin-4.0.1"
       sources."get-stream-4.1.0"
-      sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      (sources."gh-got-5.0.0" // {
-        dependencies = [
-          sources."get-stream-3.0.0"
-          sources."got-6.7.1"
-          sources."prepend-http-1.0.4"
-          sources."url-parse-lax-1.0.0"
-        ];
-      })
-      sources."github-username-3.0.0"
-      sources."glob-7.1.6"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
-      sources."glob-to-regexp-0.3.0"
+      sources."glob-7.1.7"
+      sources."glob-parent-5.1.2"
       (sources."global-agent-2.2.0" // {
         dependencies = [
           sources."semver-7.3.5"
@@ -117179,7 +118196,7 @@ in
       sources."global-dirs-0.1.1"
       sources."global-tunnel-ng-2.7.1"
       sources."globalthis-1.0.2"
-      sources."globby-8.0.2"
+      sources."globby-11.0.3"
       (sources."got-8.3.2" // {
         dependencies = [
           sources."get-stream-3.0.0"
@@ -117187,7 +118204,7 @@ in
         ];
       })
       sources."graceful-fs-4.2.6"
-      sources."grouped-queue-1.1.0"
+      sources."grouped-queue-2.0.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -117200,94 +118217,96 @@ in
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
       sources."has-unicode-2.0.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
+      sources."hosted-git-info-2.8.9"
+      sources."http-cache-semantics-3.8.1"
+      (sources."http-proxy-agent-4.0.1" // {
         dependencies = [
-          sources."kind-of-4.0.0"
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
         ];
       })
-      sources."hosted-git-info-2.8.9"
-      sources."http-cache-semantics-3.8.1"
       sources."http-signature-1.2.0"
-      sources."human-signals-1.1.1"
+      (sources."https-proxy-agent-5.0.0" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."human-signals-2.1.0"
+      sources."humanize-ms-1.2.1"
       sources."humanize-string-1.0.2"
       sources."iconv-lite-0.4.24"
-      sources."ignore-3.3.10"
+      sources."ieee754-1.2.1"
+      sources."ignore-5.1.8"
+      sources."ignore-walk-3.0.4"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
+      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."inquirer-6.5.2"
       sources."insight-0.10.3"
-      sources."interpret-1.4.0"
       (sources."into-stream-3.1.0" // {
         dependencies = [
           sources."p-is-promise-1.1.0"
         ];
       })
+      sources."ip-1.1.5"
       sources."ip-regex-2.1.0"
-      sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.2.0"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
+      sources."is-core-module-2.4.0"
       sources."is-docker-1.1.0"
-      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.1.0"
+      sources."is-interactive-1.0.0"
+      sources."is-lambda-1.0.1"
       sources."is-npm-1.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-number-7.0.0"
       sources."is-obj-1.0.1"
       sources."is-object-1.0.2"
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
-      sources."is-plain-object-2.0.4"
       sources."is-redirect-1.0.0"
       sources."is-regexp-1.0.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-root-1.0.0"
-      sources."is-scoped-1.0.0"
+      sources."is-scoped-2.1.0"
       sources."is-stream-1.1.0"
       sources."is-supported-regexp-flag-1.0.1"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-utf8-0.2.1"
-      sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
-      sources."isbinaryfile-4.0.6"
+      sources."isbinaryfile-4.0.8"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."istextorbinary-2.6.0"
       sources."isurl-1.0.0"
       (sources."jake-10.8.2" // {
         dependencies = [
           sources."async-0.9.2"
         ];
       })
-      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-nice-1.1.4"
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
+      sources."just-diff-3.1.1"
+      sources."just-diff-apply-3.0.0"
       sources."keyv-3.0.0"
-      sources."kind-of-6.0.3"
       (sources."latest-version-3.1.0" // {
         dependencies = [
           sources."get-stream-3.0.0"
@@ -117297,15 +118316,19 @@ in
           sources."url-parse-lax-1.0.0"
         ];
       })
-      sources."lazy-cache-2.0.2"
-      sources."lines-and-columns-1.1.6"
       (sources."load-json-file-1.1.0" // {
         dependencies = [
           sources."pify-2.3.0"
         ];
       })
+      (sources."load-yaml-file-0.2.0" // {
+        dependencies = [
+          sources."pify-4.0.1"
+          sources."strip-bom-3.0.0"
+        ];
+      })
       sources."locate-path-2.0.0"
-      sources."locutus-2.0.14"
+      sources."locutus-2.0.15"
       sources."lodash-4.17.21"
       sources."lodash.debounce-4.0.8"
       sources."lodash.pad-4.5.1"
@@ -117317,31 +118340,21 @@ in
       sources."lru-cache-6.0.0"
       sources."macos-release-2.4.1"
       sources."make-dir-1.3.0"
+      (sources."make-fetch-happen-8.0.14" // {
+        dependencies = [
+          sources."http-cache-semantics-4.1.0"
+        ];
+      })
       sources."map-age-cleaner-0.1.3"
-      sources."map-cache-0.2.2"
       sources."map-obj-1.0.1"
-      sources."map-visit-1.0.0"
       (sources."matcher-3.0.0" // {
         dependencies = [
           sources."escape-string-regexp-4.0.0"
         ];
       })
       sources."mem-5.1.1"
-      sources."mem-fs-1.2.0"
-      (sources."mem-fs-editor-6.0.0" // {
-        dependencies = [
-          sources."dir-glob-2.2.2"
-          sources."globby-9.2.0"
-          sources."ignore-4.0.6"
-          (sources."path-type-3.0.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
-          sources."pify-4.0.1"
-          sources."slash-2.0.0"
-        ];
-      })
+      sources."mem-fs-2.2.1"
+      sources."mem-fs-editor-9.0.1"
       (sources."meow-3.7.0" // {
         dependencies = [
           sources."find-up-1.1.2"
@@ -117351,35 +118364,55 @@ in
       })
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-3.1.10"
+      sources."micromatch-4.0.4"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."mixin-deep-1.3.2" // {
+      sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-fetch-1.3.3"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-json-stream-1.0.1"
+      sources."minipass-pipeline-1.2.4"
+      sources."minipass-sized-1.0.3"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-0.5.5"
+      (sources."mkdirp-infer-owner-2.0.0" // {
         dependencies = [
-          sources."is-extendable-1.0.1"
+          sources."mkdirp-1.0.4"
         ];
       })
-      sources."mkdirp-0.5.5"
-      sources."moment-2.29.1"
       sources."ms-2.0.0"
-      (sources."multimatch-4.0.0" // {
+      sources."multimatch-5.0.0"
+      sources."mute-stream-0.0.7"
+      sources."nice-try-1.0.5"
+      (sources."node-gyp-7.1.2" // {
         dependencies = [
-          sources."array-union-2.1.0"
-          sources."arrify-2.0.1"
+          sources."ansi-regex-2.1.1"
+          sources."env-paths-2.2.1"
+          sources."gauge-2.7.4"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."npmlog-4.1.2"
+          sources."semver-7.3.5"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+          sources."which-2.0.2"
         ];
       })
-      sources."mute-stream-0.0.7"
-      sources."nanomatch-1.2.13"
-      sources."nice-try-1.0.5"
-      sources."node-fetch-2.6.1"
+      sources."nopt-5.0.0"
       sources."normalize-package-data-2.5.0"
+      sources."normalize-path-3.0.0"
       sources."normalize-url-2.0.1"
-      sources."npm-api-1.0.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-conf-1.1.3"
+      (sources."npm-install-checks-4.0.0" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
       (sources."npm-keyword-5.0.0" // {
         dependencies = [
           sources."get-stream-3.0.0"
@@ -117390,27 +118423,26 @@ in
           sources."url-parse-lax-1.0.0"
         ];
       })
+      sources."npm-normalize-package-bin-1.0.1"
+      (sources."npm-package-arg-8.1.2" // {
+        dependencies = [
+          sources."hosted-git-info-4.0.2"
+          sources."semver-7.3.5"
+        ];
+      })
+      sources."npm-packlist-2.2.2"
+      (sources."npm-pick-manifest-6.1.1" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
+      sources."npm-registry-fetch-10.1.2"
       sources."npm-run-path-2.0.2"
       sources."npmlog-2.0.4"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
       sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.pick-1.3.0"
       sources."once-1.4.0"
       (sources."onetime-2.0.1" // {
         dependencies = [
@@ -117418,47 +118450,91 @@ in
         ];
       })
       sources."open-6.4.0"
+      (sources."ora-5.4.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.1"
+          sources."cli-cursor-3.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."log-symbols-4.1.0"
+          sources."onetime-5.1.2"
+          sources."restore-cursor-3.1.0"
+          sources."strip-ansi-6.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
       sources."os-homedir-1.0.2"
       sources."os-name-3.1.0"
       sources."os-shim-0.1.3"
       sources."os-tmpdir-1.0.2"
       sources."p-any-2.1.0"
-      sources."p-cancelable-2.1.0"
+      sources."p-cancelable-2.1.1"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
       sources."p-limit-1.3.0"
       sources."p-locate-2.0.0"
+      sources."p-map-4.0.0"
+      (sources."p-queue-6.6.2" // {
+        dependencies = [
+          sources."p-timeout-3.2.0"
+        ];
+      })
       sources."p-some-4.1.0"
       sources."p-timeout-2.0.1"
       sources."p-try-1.0.0"
       sources."package-json-5.0.0"
+      (sources."pacote-11.3.3" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+        ];
+      })
       sources."pad-component-0.0.1"
-      sources."paged-request-2.0.2"
+      sources."parse-conflict-json-1.1.1"
       sources."parse-help-1.0.0"
       sources."parse-json-2.2.0"
-      sources."pascalcase-0.1.1"
       sources."passwd-user-3.0.0"
-      sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
-      (sources."path-type-1.1.0" // {
-        dependencies = [
-          sources."pify-2.3.0"
-        ];
-      })
+      sources."path-parse-1.0.7"
+      sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
+      sources."picomatch-2.3.0"
       sources."pify-3.0.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
+      (sources."pkg-dir-4.2.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+          sources."p-try-2.2.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
       sources."pkg-up-2.0.0"
-      sources."posix-character-classes-0.1.1"
+      (sources."preferred-pm-3.0.3" // {
+        dependencies = [
+          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."path-exists-4.0.0"
+        ];
+      })
       sources."prepend-http-2.0.0"
       sources."pretty-bytes-5.6.0"
       sources."process-nextick-args-2.0.1"
+      sources."promise-all-reject-late-1.0.1"
+      sources."promise-call-limit-1.0.1"
+      sources."promise-inflight-1.0.1"
+      sources."promise-retry-2.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
@@ -117466,13 +118542,16 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."query-string-5.1.1"
+      sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
-      (sources."read-chunk-3.2.0" // {
+      sources."read-cmd-shim-2.0.0"
+      sources."read-package-json-fast-2.0.2"
+      (sources."read-pkg-1.1.0" // {
         dependencies = [
-          sources."pify-4.0.1"
+          sources."path-type-1.1.0"
+          sources."pify-2.3.0"
         ];
       })
-      sources."read-pkg-1.1.0"
       (sources."read-pkg-up-4.0.0" // {
         dependencies = [
           sources."find-up-3.0.0"
@@ -117492,19 +118571,16 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."rechoir-0.6.2"
+      sources."readdir-scoped-modules-1.1.0"
       (sources."redent-1.0.0" // {
         dependencies = [
           sources."indent-string-2.1.0"
         ];
       })
       sources."regenerator-runtime-0.13.8"
-      sources."regex-not-1.0.2"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
       sources."remove-trailing-separator-1.1.0"
-      sources."repeat-element-1.1.4"
-      sources."repeat-string-1.6.1"
       sources."repeating-2.0.1"
       sources."replace-ext-1.0.1"
       (sources."request-2.88.2" // {
@@ -117513,20 +118589,20 @@ in
         ];
       })
       sources."resolve-1.20.0"
-      sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
-      sources."ret-0.1.15"
-      sources."rimraf-2.7.1"
+      sources."retry-0.12.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
       sources."roarr-2.15.4"
       sources."root-check-1.0.0"
       sources."run-async-2.4.1"
+      sources."run-parallel-1.2.0"
       sources."rx-4.1.0"
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."scoped-regex-1.0.0"
+      sources."scoped-regex-2.1.0"
       sources."semver-5.7.1"
       sources."semver-compare-1.0.0"
       sources."semver-diff-2.1.0"
@@ -117537,83 +118613,39 @@ in
           sources."type-fest-0.13.1"
         ];
       })
-      sources."set-getter-0.1.0"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."shallow-clone-3.0.1"
+      sources."set-blocking-2.0.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."shelljs-0.8.4"
       sources."signal-exit-3.0.3"
-      sources."slash-1.0.0"
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
+      sources."slash-3.0.0"
+      sources."smart-buffer-4.1.0"
+      sources."socks-2.6.1"
+      (sources."socks-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."define-property-1.0.0"
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
         ];
       })
-      (sources."snapdragon-util-3.0.1" // {
+      sources."sort-keys-2.0.0"
+      (sources."sort-on-3.0.0" // {
         dependencies = [
-          sources."kind-of-3.2.2"
+          sources."arrify-1.0.1"
         ];
       })
-      sources."sort-keys-2.0.0"
-      sources."sort-on-3.0.0"
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.1"
       sources."spawn-sync-1.0.15"
       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."split-string-3.1.0"
+      sources."spdx-license-ids-3.0.9"
       sources."sprintf-js-1.1.2"
       sources."sshpk-1.16.1"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
+      sources."ssri-8.0.1"
       sources."strict-uri-encode-1.1.0"
       (sources."string-length-2.0.0" // {
         dependencies = [
           sources."strip-ansi-4.0.0"
         ];
       })
-      sources."string-template-0.2.1"
       (sources."string-width-2.1.1" // {
         dependencies = [
           sources."strip-ansi-4.0.0"
@@ -117667,6 +118699,11 @@ in
         ];
       })
       sources."taketalk-1.0.0"
+      (sources."tar-6.1.0" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+        ];
+      })
       (sources."term-size-1.2.0" // {
         dependencies = [
           sources."cross-spawn-5.1.0"
@@ -117677,20 +118714,14 @@ in
         ];
       })
       sources."text-table-0.2.0"
-      sources."textextensions-2.6.0"
+      sources."textextensions-5.12.0"
       sources."through-2.3.8"
-      sources."through2-3.0.2"
       sources."timed-out-4.0.1"
       sources."titleize-1.0.1"
       sources."tmp-0.0.33"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."to-regex-range-5.0.1"
       sources."tough-cookie-3.0.1"
+      sources."treeverse-1.0.4"
       sources."trim-newlines-1.0.0"
       sources."tslib-1.14.1"
       sources."tunnel-0.0.6"
@@ -117699,47 +118730,44 @@ in
       sources."twig-1.15.4"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."union-value-1.0.1"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
       sources."unique-string-1.0.0"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."untildify-3.0.3"
+      sources."untildify-4.0.0"
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
       sources."uri-js-4.4.1"
-      sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
-      sources."use-3.1.1"
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
+      sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
-      sources."vinyl-2.2.1"
+      (sources."vinyl-2.2.1" // {
+        dependencies = [
+          sources."clone-2.1.2"
+        ];
+      })
       (sources."vinyl-file-3.0.0" // {
         dependencies = [
           sources."pify-2.3.0"
         ];
       })
       sources."walk-2.3.14"
+      sources."walk-up-path-1.0.0"
+      sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      sources."widest-line-2.0.1"
-      sources."windows-release-3.3.3"
-      (sources."with-open-file-0.1.7" // {
+      (sources."which-pm-2.0.0" // {
         dependencies = [
-          sources."p-try-2.2.0"
-          sources."pify-4.0.1"
+          sources."path-exists-4.0.0"
         ];
       })
+      sources."wide-align-1.1.3"
+      sources."widest-line-2.0.1"
+      sources."windows-release-3.3.3"
       (sources."wrap-ansi-2.1.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -117759,46 +118787,57 @@ in
         ];
       })
       sources."yeoman-doctor-4.0.0"
-      (sources."yeoman-environment-2.10.3" // {
+      (sources."yeoman-environment-3.4.1" // {
         dependencies = [
           sources."ansi-escapes-4.3.2"
-          sources."ansi-regex-5.0.0"
+          sources."ansi-regex-2.1.1"
           sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."cli-width-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cross-spawn-7.0.3"
-          sources."debug-3.2.7"
-          sources."execa-4.1.0"
-          sources."figures-3.2.0"
-          sources."get-stream-5.2.0"
-          sources."has-flag-4.0.0"
-          (sources."inquirer-7.3.3" // {
+          sources."debug-4.3.2"
+          sources."escape-string-regexp-4.0.0"
+          sources."execa-5.0.1"
+          (sources."figures-3.2.0" // {
             dependencies = [
-              sources."chalk-4.1.0"
-              sources."strip-ansi-6.0.0"
+              sources."escape-string-regexp-1.0.5"
+            ];
+          })
+          sources."find-up-5.0.0"
+          (sources."gauge-2.7.4" // {
+            dependencies = [
+              sources."is-fullwidth-code-point-1.0.0"
+              sources."string-width-1.0.2"
+              sources."strip-ansi-3.0.1"
             ];
           })
+          sources."get-stream-6.0.1"
+          sources."has-flag-4.0.0"
+          sources."inquirer-8.1.0"
           sources."is-fullwidth-code-point-3.0.0"
           sources."is-stream-2.0.0"
-          sources."ms-2.1.3"
+          sources."locate-path-6.0.0"
+          sources."log-symbols-4.1.0"
+          sources."ms-2.1.2"
           sources."mute-stream-0.0.8"
           sources."npm-run-path-4.0.1"
+          sources."npmlog-4.1.2"
           sources."onetime-5.1.2"
+          sources."p-limit-3.1.0"
+          sources."p-locate-5.0.0"
+          sources."path-exists-4.0.0"
           sources."path-key-3.1.1"
           sources."restore-cursor-3.1.0"
           sources."semver-7.3.5"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
-          (sources."string-width-4.2.2" // {
-            dependencies = [
-              sources."strip-ansi-6.0.0"
-            ];
-          })
-          (sources."strip-ansi-4.0.0" // {
+          sources."string-width-4.2.2"
+          (sources."strip-ansi-6.0.0" // {
             dependencies = [
-              sources."ansi-regex-3.0.0"
+              sources."ansi-regex-5.0.0"
             ];
           })
           sources."supports-color-7.2.0"
@@ -117806,45 +118845,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      (sources."yeoman-generator-4.13.0" // {
-        dependencies = [
-          sources."debug-4.3.2"
-          sources."diff-4.0.2"
-          sources."dir-glob-2.2.2"
-          sources."ejs-3.1.6"
-          sources."find-up-3.0.0"
-          sources."globby-9.2.0"
-          sources."ignore-4.0.6"
-          sources."locate-path-3.0.0"
-          (sources."make-dir-3.1.0" // {
-            dependencies = [
-              sources."semver-6.3.0"
-            ];
-          })
-          (sources."mem-fs-editor-7.1.0" // {
-            dependencies = [
-              sources."rimraf-3.0.2"
-            ];
-          })
-          sources."mkdirp-1.0.4"
-          sources."ms-2.1.2"
-          sources."p-limit-2.3.0"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."parse-json-5.2.0"
-          (sources."path-type-3.0.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
-          sources."pify-4.0.1"
-          sources."read-pkg-5.2.0"
-          sources."read-pkg-up-5.0.0"
-          sources."semver-7.3.5"
-          sources."slash-2.0.0"
-          sources."type-fest-0.6.0"
-        ];
-      })
+      sources."yocto-queue-0.1.0"
       (sources."yosay-2.0.2" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ansiterminal/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ansiterminal/default.nix
index 53b02a453a0e..edd40fb4df29 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ansiterminal/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ansiterminal/default.nix
@@ -1,36 +1,29 @@
-{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild }:
+{ lib, buildDunePackage, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+buildDunePackage rec {
+  pname = "ANSITerminal";
+  version = "0.8.2";
 
-  version = "0.7";
+  useDune2 = true;
 
-  name = "ocaml${ocaml.version}-ansiterminal-${version}";
-
-  src = fetchurl {
-    url = "https://github.com/Chris00/ANSITerminal/releases/download/${version}/ANSITerminal-${version}.tar.gz";
-    sha256 = "03pqfxvw9pa9720l8i5fgxky1qx70kw6wxbczd5i50xi668lh0i9";
+  src = fetchFromGitHub {
+    owner = "Chris00";
+    repo = pname;
+    rev = version;
+    sha256 = "0dyjischrgwlxqz1p5zbqq76jvk6pl1qj75i7ydhijssr9pj278d";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
-
-  configurePhase = "ocaml setup.ml -configure --prefix $out";
-
-  buildPhase = "ocaml setup.ml -build";
-
-  installPhase = "ocaml setup.ml -install";
-
-  createFindlibDestdir = true;
+  doCheck = true;
 
   meta = with lib; {
-    homepage = "https://github.com/Chris00/ANSITerminal";
     description = "A module allowing to use the colors and cursor movements on ANSI terminals";
     longDescription = ''
       ANSITerminal is a module allowing to use the colors and cursor
       movements on ANSI terminals. It also works on the windows shell (but
       this part is currently work in progress).
     '';
+    inherit (src.meta) homepage;
     license = licenses.lgpl3;
-    platforms = ocaml.meta.platforms or [];
     maintainers = [ maintainers.jirkamarsik ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix b/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix
index 2f85221e539c..de6ade61518a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/atd/default.nix
@@ -1,4 +1,4 @@
-{ lib, menhir, easy-format, fetchurl, buildDunePackage, which, re }:
+{ lib, menhir, easy-format, fetchurl, buildDunePackage, which, re, nixosTests }:
 
 buildDunePackage rec {
   pname = "atd";
@@ -18,6 +18,10 @@ buildDunePackage rec {
 
   doCheck = true;
 
+  passthru.tests = {
+    smoke-test = nixosTests.atd;
+  };
+
   meta = with lib; {
     homepage = "https://github.com/mjambon/atd";
     description = "Syntax for cross-language type definitions";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/awa/default.nix b/nixpkgs/pkgs/development/ocaml-modules/awa/default.nix
index 49d614cda884..14f99bb6f8db 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/awa/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/awa/default.nix
@@ -8,14 +8,14 @@
 
 buildDunePackage rec {
   pname = "awa";
-  version = "0.0.1";
+  version = "0.0.3";
 
   minimumOCamlVersion = "4.07";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/awa-ssh/releases/download/v${version}/awa-v${version}.tbz";
-    sha256 = "c1d604645517b191184a5800f5c48a6a9a3e5a2fce4a0e2ecfeee74586301400";
+    sha256 = "5a7927363ffe672cccf12d5425386e84f6f553a17ffec2b01ae5dc28180c831a";
   };
 
   nativeBuildInputs = [ ppx_sexp_conv ppx_cstruct ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
index 94f254a2edfb..c1cb7de2d188 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     substituteInPlace oasis/elf-loader --replace bitstring.ppx ppx_bitstring
   '';
 
-  configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm}/bin/llvm-config" ];
+  configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm.dev}/bin/llvm-config" ];
 
   meta = with lib; {
     description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bisect_ppx/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bisect_ppx/default.nix
index eba010819949..ddeda86e9bf7 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bisect_ppx/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bisect_ppx/default.nix
@@ -1,27 +1,28 @@
-{ lib, fetchFromGitHub, buildDunePackage, cmdliner, ocaml-migrate-parsetree, ppx_tools_versioned }:
+{ lib, fetchFromGitHub, buildDunePackage, cmdliner, ppxlib }:
 
 buildDunePackage rec {
   pname = "bisect_ppx";
-  version = "2.5.0";
-
-  useDune2 = true;
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "aantron";
     repo = "bisect_ppx";
     rev = version;
-    sha256 = "0w2qd1myvh333jvkf8hgrqzl8ns4xgfggk4frf1ij3jyc7qc0868";
+    sha256 = "sha256-YeLDlH3mUbVEY4OmzlrvSwVUav3uMtSsTFlOsQKnz84=";
   };
 
+  minimumOCamlVersion = "4.08";
+  useDune2 = true;
+
   buildInputs = [
     cmdliner
-    ocaml-migrate-parsetree
-    ppx_tools_versioned
+    ppxlib
   ];
 
-  meta = {
-    description = "Code coverage for OCaml";
-    license = lib.licenses.mit;
+  meta = with lib; {
+    description = "Bisect_ppx is a code coverage tool for OCaml and Reason. It helps you test thoroughly by showing what's not tested.";
+    license = licenses.mit;
     homepage = "https://github.com/aantron/bisect_ppx";
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ca-certs-nss/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
new file mode 100644
index 000000000000..5e6691a9feba
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, rresult
+, mirage-crypto
+, mirage-clock
+, x509
+, logs
+, fmt
+, hex
+, bos
+, astring
+, cmdliner
+, alcotest
+}:
+
+buildDunePackage rec {
+  pname = "ca-certs-nss";
+  version = "3.64.0.1";
+
+  minimumOCamlVersion = "4.07";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ca-certs-nss/releases/download/v${version}/ca-certs-nss-v${version}.tbz";
+    sha256 = "909c64076491647471f785527bfdd9a886a34504edabf88542b43f27b86067f9";
+  };
+
+  useDune2 = true;
+
+  propagatedBuildInputs = [
+    rresult
+    mirage-crypto
+    mirage-clock
+    x509
+  ];
+
+  buildInputs = [
+    logs
+    fmt
+    hex
+    bos
+    astring
+    cmdliner
+  ];
+
+  doCheck = true;
+  checkInputs = [ alcotest ];
+
+  meta = with lib; {
+    license = licenses.isc;
+    description = "X.509 trust anchors extracted from Mozilla's NSS";
+    maintainers = [ maintainers.sternenseemann ];
+    homepage = "https://github.com/mirage/ca-certs-nss";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix
index dacc181f751c..acf869dbd275 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ca-certs/default.nix
@@ -1,24 +1,28 @@
 { lib, buildDunePackage, fetchurl
 , bos, fpath, rresult, ptime, mirage-crypto, x509, astring, logs
+, cacert, alcotest
 }:
 
 buildDunePackage rec {
   pname = "ca-certs";
-  version = "0.2.0";
+  version = "0.2.1";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/ca-certs/releases/download/v${version}/ca-certs-v${version}.tbz";
-    sha256 = "15jfb5zvahs90jsfs7ridqihlka5198z2xrvplj8ddchxfmpx868";
+    sha256 = "d43109496a5129feff967d557c556af96f8b10456896a405c43b7cf0c35d0af3";
   };
 
   useDune2 = true;
 
   propagatedBuildInputs = [ bos fpath rresult ptime mirage-crypto x509 astring logs ];
 
-  # tests need access to network and systemwide ca cert chain
-  doCheck = false;
+  doCheck = true;
+  checkInputs = [
+    cacert    # for /etc/ssl/certs/ca-bundle.crt
+    alcotest
+  ];
 
   meta = with lib; {
     description = "Detect root CA certificates from the operating system";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cairo2/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cairo2/default.nix
index 020006b19c5d..0a9922f67885 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cairo2/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cairo2/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, lib, fetchurl, buildDunePackage, ocaml, dune-configurator
-, pkg-config, cairo
-}:
+{ stdenv, lib, fetchurl, buildDunePackage, ocaml, dune-configurator, pkg-config, cairo }:
 
 buildDunePackage rec {
   pname = "cairo2";
-  version = "0.6.1";
-
-  useDune2 = true;
+  version = "0.6.2";
 
   src = fetchurl {
     url = "https://github.com/Chris00/ocaml-cairo/releases/download/${version}/cairo2-${version}.tbz";
-    sha256 = "1ik4qf4b9443sliq2z7x9acd40rmzvyzjh3bh98wvjklxbb84a9i";
+    sha256 = "sha256-a7P1kiVmIwT6Fhtwxs29ffgO4iexsulxUoc9cnJmEK4=";
   };
 
+  minimalOCamlVersion = "4.02";
+  useDune2 = true;
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ cairo dune-configurator ];
 
@@ -20,7 +19,7 @@ buildDunePackage rec {
   # https://github.com/Chris00/ocaml-cairo/issues/19
   || lib.versionAtLeast ocaml.version "4.10");
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/Chris00/ocaml-cairo";
     description = "Binding to Cairo, a 2D Vector Graphics Library";
     longDescription = ''
@@ -29,7 +28,7 @@ buildDunePackage rec {
       the X Window System, Quartz, Win32, image buffers, PostScript, PDF,
       and SVG file output.
     '';
-    license = lib.licenses.lgpl3;
-    maintainers = with lib.maintainers; [ jirkamarsik vbgl ];
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ jirkamarsik vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camlimages/4.0.nix b/nixpkgs/pkgs/development/ocaml-modules/camlimages/4.0.nix
deleted file mode 100644
index 26735b1c5d7f..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/camlimages/4.0.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv, fetchurl, omake, ocaml, libtiff, libjpeg, libpng, giflib, findlib, libXpm, freetype, graphicsmagick, ghostscript }:
-
-let
-  pname = "camlimages";
-  version = "4.0.1";
-in
-
-stdenv.mkDerivation {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "https://bitbucket.org/camlspotter/camlimages/get/v4.0.1.tar.gz";
-    sha256 = "b40237c1505487049799a7af296eb3996b3fa08eab94415546f46d61355747c4";
-  };
-
-  buildInputs = [ ocaml omake findlib graphicsmagick ghostscript ];
-
-  propagatedBuildInputs = [libtiff libjpeg libpng giflib freetype libXpm ];
-
-  createFindlibDestdir = true;
-
-  preConfigure = ''
-    rm ./configure
-  '';
-
-  buildPhase = ''
-    omake
-  '';
-
-  installPhase = ''
-    omake install
-  '';
-
-  meta = with lib; {
-    branch = "4.0";
-    homepage = "https://bitbucket.org/camlspotter/camlimages";
-    description = "OCaml image processing library";
-    license = licenses.lgpl2;
-    maintainers = [ maintainers.vbgl ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camlimages/4.1.2.nix b/nixpkgs/pkgs/development/ocaml-modules/camlimages/4.1.2.nix
new file mode 100644
index 000000000000..dba303afdf24
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/camlimages/4.1.2.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitLab, fetchpatch, omake, ocaml, findlib
+, graphicsmagick, ghostscript
+, freetype, giflib, libjpeg, libpng, libtiff, libXpm
+}:
+
+stdenv.mkDerivation rec {
+  pname = "camlimages";
+  version = "4.1.2";
+
+  src = fetchFromGitLab {
+    owner = "camlspotter";
+    repo = "camlimages";
+    rev = "98661d507e12ce91a51295a50f244cb8265b4439"; # no tag
+    sha256 = "0kpxj8wm2m17wjq217jzjpfgv1d7sp4w1yd1gi8ipn5rj4sid2j8";
+  };
+
+  buildInputs = [ ocaml omake findlib graphicsmagick ghostscript ];
+  propagatedBuildInputs = [ libtiff libjpeg libpng giflib freetype libXpm ];
+
+  createFindlibDestdir = true;
+
+  buildPhase = ''
+    omake
+  '';
+
+  installPhase = ''
+    omake install
+  '';
+
+  meta = with lib; {
+    branch = "4.1";
+    homepage = "https://gitlab.com/camlspotter/camlimages";
+    description = "OCaml image processing library";
+    license = licenses.lgpl2;
+    maintainers = [ maintainers.vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/caqti/default.nix b/nixpkgs/pkgs/development/ocaml-modules/caqti/default.nix
index 6df0af597c21..105a6a9dfe18 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/caqti/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/caqti/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "caqti";
-  version = "1.3.0";
+  version = "1.5.1";
   useDune2 = true;
 
   minimumOCamlVersion = "4.04";
@@ -11,7 +11,7 @@ buildDunePackage rec {
     owner = "paurkedal";
     repo = "ocaml-${pname}";
     rev = "v${version}";
-    sha256 = "1ksjchfjnh059wvd95my1sv9b0ild0dfaiynbf2xsaz7zg1y4xmw";
+    sha256 = "1vl61kdyj89whc3mh4k9bis6rbj9x2scf6hnv9afyalp4j65sqx1";
   };
 
   buildInputs = [ cppo ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/carton/default.nix b/nixpkgs/pkgs/development/ocaml-modules/carton/default.nix
index 31b864e29d32..c10537d5d506 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/carton/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/carton/default.nix
@@ -7,19 +7,19 @@
 
 buildDunePackage rec {
   pname = "carton";
-  version = "0.4.0";
+  version = "0.4.1";
 
   useDune2 = true;
   minimumOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/${pname}-${pname}-v${version}.tbz";
-    sha256 = "777f9692b83cd63570c17527a32c5045818ab9242d923cbbde72fc23d0da0140";
+    sha256 = "d16aad5560d9ab1e3b4d93d2e8fdea638c216ff47338fb630a8aefd22b452665";
   };
 
   # remove changelogs for mimic and the git* packages
   postPatch = ''
-    rm CHANGES.md CHANGES.mimic.md
+    rm CHANGES.md
   '';
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/ocaml-modules/checkseum/default.nix b/nixpkgs/pkgs/development/ocaml-modules/checkseum/default.nix
index 810099810470..527afec33eb3 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/checkseum/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/checkseum/default.nix
@@ -1,23 +1,46 @@
-{ lib, fetchurl, buildDunePackage, dune-configurator
+{ lib, fetchurl, buildDunePackage, dune-configurator, pkg-config
 , bigarray-compat, optint
-, fmt, rresult
-, alcotest
+, fmt, rresult, bos, fpath, astring, alcotest
+, withFreestanding ? false
+, ocaml-freestanding
 }:
 
 buildDunePackage rec {
-  version = "0.2.1";
+  version = "0.3.1";
   pname = "checkseum";
 
   useDune2 = true;
 
+  minimumOCamlVersion = "4.07";
+
   src = fetchurl {
     url = "https://github.com/mirage/checkseum/releases/download/v${version}/checkseum-v${version}.tbz";
-    sha256 = "1swb44c64pcs4dh9ka9lig6d398qwwkd3kkiajicww6qk7jbh3n5";
+    sha256 = "b9e4d054e17618b1faed8c0eb15afe0614b2f093e58b59a180bda4500a5d2da1";
   };
 
-  buildInputs = [ dune-configurator fmt rresult ];
-  propagatedBuildInputs = [ bigarray-compat optint ];
-  checkInputs = lib.optionals doCheck [ alcotest ];
+  patches = [
+    ./makefile-no-opam.patch
+  ];
+
+  nativeBuildInputs = [
+    dune-configurator
+    pkg-config
+  ];
+  propagatedBuildInputs = [
+    bigarray-compat
+    optint
+  ] ++ lib.optionals withFreestanding [
+    ocaml-freestanding
+  ];
+
+  checkInputs = [
+    alcotest
+    bos
+    astring
+    fmt
+    fpath
+    rresult
+  ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/checkseum/makefile-no-opam.patch b/nixpkgs/pkgs/development/ocaml-modules/checkseum/makefile-no-opam.patch
new file mode 100644
index 000000000000..49fb41b2e008
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/checkseum/makefile-no-opam.patch
@@ -0,0 +1,12 @@
+diff --git a/freestanding/Makefile b/freestanding/Makefile
+index d535050..bb286bd 100644
+--- a/freestanding/Makefile
++++ b/freestanding/Makefile
+@@ -1,4 +1,6 @@
+-PKG_CONFIG_PATH := $(shell opam config var prefix)/lib/pkgconfig
++ifneq (, $(shell command -v opam))
++PKG_CONFIG_PATH ?= $(shell opam var prefix)/lib/pkgconfig
++endif
+ 
+ EXISTS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config --exists ocaml-freestanding; echo $$?)
+ 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix
index 21e22533f1b2..060d2c6fb6a8 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix
@@ -1,22 +1,60 @@
-{ lib, buildDunePackage, async, cohttp, conduit-async, uri, ppx_sexp_conv
-, logs, magic-mime }:
+{ lib
+, buildDunePackage
+, ppx_sexp_conv
+, base
+, async
+, async_kernel
+, async_unix
+, cohttp
+, conduit-async
+, uri
+, uri-sexp
+, logs
+, fmt
+, sexplib0
+, ipaddr
+, magic-mime
+, ounit
+, mirage-crypto
+, core
+}:
 
-if !lib.versionAtLeast cohttp.version "0.99" then
-  cohttp
-else if !lib.versionAtLeast async.version "0.13" then
-  throw "cohttp-async needs async-0.13 (hence OCaml >= 4.08)"
-else
+buildDunePackage {
+  pname = "cohttp-async";
 
-  buildDunePackage {
-    pname = "cohttp-async";
-    useDune2 = true;
-    inherit (cohttp) version src;
+  inherit (cohttp)
+    version
+    src
+    minimumOCamlVersion
+    useDune2
+    ;
 
-    buildInputs = [ ppx_sexp_conv ];
+  buildInputs = [ ppx_sexp_conv ];
 
-    propagatedBuildInputs = [ async cohttp conduit-async logs magic-mime uri ];
+  propagatedBuildInputs = [
+    cohttp
+    conduit-async
+    async_kernel
+    async_unix
+    async
+    base
+    magic-mime
+    logs
+    fmt
+    sexplib0
+    uri
+    uri-sexp
+    ipaddr
+  ];
 
-    meta = cohttp.meta // {
-      description = "CoHTTP implementation for the Async concurrency library";
-    };
-  }
+  doCheck = true;
+  checkInputs = [
+    ounit
+    mirage-crypto
+    core
+  ];
+
+  meta = cohttp.meta // {
+    description = "CoHTTP implementation for the Async concurrency library";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
index 1cbc43bc2804..c1dc973d0eea 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -1,25 +1,24 @@
 { lib, fetchurl, buildDunePackage
-, ppx_fields_conv, ppx_sexp_conv, stdlib-shims
-, base64, fieldslib, jsonm, re, stringext, uri-sexp
+, ppx_sexp_conv, base64, jsonm, re, stringext, uri-sexp
 , ocaml, fmt, alcotest
 }:
 
 buildDunePackage rec {
   pname = "cohttp";
-  version = "2.5.5";
+  version = "4.0.0";
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.04.1";
+  minimumOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-cohttp/releases/download/v${version}/cohttp-v${version}.tbz";
-    sha256 = "0ywmql4lp6ps2gd064ixbjzsdnnn5vk3pipm005sswl553qqwaim";
+    sha256 = "bd7aa4cd2c82744990ed7c49e3ee7a40324c64cb3d8509804809155e2bacd1d2";
   };
 
-  buildInputs = [ jsonm ppx_fields_conv ppx_sexp_conv ];
+  buildInputs = [ jsonm ppx_sexp_conv ];
 
-  propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp stdlib-shims ];
+  propagatedBuildInputs = [ base64 re stringext uri-sexp ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.05";
   checkInputs = [ fmt alcotest ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
index 845df2a3f542..57885b0e65e0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
@@ -1,19 +1,28 @@
 { lib, buildDunePackage, cohttp-lwt
-, conduit-lwt-unix, ppx_sexp_conv
-, cmdliner, fmt, magic-mime
+, conduit-lwt-unix, conduit-lwt, ppx_sexp_conv
+, cmdliner, fmt, logs, magic-mime
+, ounit
+, cacert
 }:
 
-if !lib.versionAtLeast cohttp-lwt.version "0.99"
-then cohttp-lwt
-else
-
 buildDunePackage {
   pname = "cohttp-lwt-unix";
-  inherit (cohttp-lwt) version src meta;
+  inherit (cohttp-lwt) version src;
 
   useDune2 = true;
 
   buildInputs = [ cmdliner ppx_sexp_conv ];
 
-  propagatedBuildInputs = [ cohttp-lwt conduit-lwt-unix fmt magic-mime ];
+  propagatedBuildInputs = [
+    cohttp-lwt conduit-lwt conduit-lwt-unix fmt logs magic-mime
+  ];
+
+  # TODO(@sternenseemann): fail for unknown reason
+  # https://github.com/mirage/ocaml-cohttp/issues/675#issuecomment-830692742
+  doCheck = false;
+  checkInputs = [ ounit cacert ];
+
+  meta = cohttp-lwt.meta // {
+    description = "CoHTTP implementation for Unix and Windows using Lwt";
+  };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix
index 36831d946132..158aa3b27b26 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix
@@ -1,16 +1,21 @@
-{ lib, buildDunePackage, cohttp, ocaml_lwt, uri, ppx_sexp_conv, logs }:
-
-if !lib.versionAtLeast cohttp.version "0.99"
-then cohttp
-else if !lib.versionAtLeast ppx_sexp_conv.version "0.13"
-then throw "cohttp-lwt is not available for ppx_sexp_conv version ${ppx_sexp_conv.version}"
-else
+{ lib, buildDunePackage, cohttp, ocaml_lwt, uri, ppx_sexp_conv, logs, sexplib0 }:
 
 buildDunePackage {
   pname = "cohttp-lwt";
-  inherit (cohttp) version src useDune2 meta;
+  inherit (cohttp)
+    version
+    src
+    useDune2
+    minimumOCamlVersion
+    ;
+
+  buildInputs = [ ppx_sexp_conv ];
 
-  buildInputs = [ uri ppx_sexp_conv ];
+  propagatedBuildInputs = [
+    cohttp ocaml_lwt logs sexplib0 uri
+  ];
 
-  propagatedBuildInputs = [ cohttp ocaml_lwt logs ];
+  meta = cohttp.meta // {
+    description = "CoHTTP implementation using the Lwt concurrency library";
+  };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/mirage.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/mirage.nix
index e7b172349cb9..d2d3e945645b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/mirage.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/mirage.nix
@@ -2,6 +2,7 @@
 , mirage-flow, mirage-channel, mirage-kv
 , conduit, conduit-mirage, lwt
 , astring, magic-mime
+, ppx_sexp_conv
 }:
 
 buildDunePackage {
@@ -9,6 +10,8 @@ buildDunePackage {
 
   inherit (cohttp) version src minimumOCamlVersion useDune2;
 
+  nativeBuildInputs = [ ppx_sexp_conv ];
+
   propagatedBuildInputs = [
     mirage-flow mirage-channel conduit conduit-mirage mirage-kv
     lwt cohttp cohttp-lwt astring magic-mime
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix
index c15ad0520fb2..e78cb2bc5165 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix
@@ -1,17 +1,17 @@
-{ lib, buildDunePackage, async, async_ssl, ppx_sexp_conv, conduit }:
-
-if !lib.versionAtLeast conduit.version "1.0"
-then conduit
-else
+{ lib, buildDunePackage, async, async_ssl, ppx_sexp_conv, ppx_here, uri, conduit }:
 
 buildDunePackage {
   pname = "conduit-async";
-  useDune2 = true;
-  inherit (conduit) version src;
+  inherit (conduit)
+    version
+    src
+    minimumOCamlVersion
+    useDune2
+    ;
 
-  buildInputs = [ ppx_sexp_conv ];
+  buildInputs = [ ppx_sexp_conv ppx_here ];
 
-  propagatedBuildInputs = [ async async_ssl conduit ];
+  propagatedBuildInputs = [ async async_ssl conduit uri ];
 
   meta = conduit.meta // {
     description = "A network connection establishment library for Async";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix
index 8c9b757f87c3..96f5bf43d214 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix
@@ -5,18 +5,18 @@
 
 buildDunePackage rec {
   pname = "conduit";
-  version = "2.2.2";
+  version = "4.0.0";
   useDune2 = true;
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.03";
 
   src = fetchurl {
-    url = "https://github.com/mirage/ocaml-conduit/releases/download/v2.2.2/conduit-v2.2.2.tbz";
-    sha256 = "1zb83w2pq9c8xrappfxa6y5q93772f5dj22x78camsm77a2c2z55";
+    url = "https://github.com/mirage/ocaml-conduit/releases/download/v${version}/conduit-v${version}.tbz";
+    sha256 = "74b29d72bf47adc5d5c4cae6130ad5a2a4923118b9c571331bd1cb3c56decd2a";
   };
 
   buildInputs = [ ppx_sexp_conv ];
-  propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri ];
+  propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri logs ];
 
   meta = {
     description = "A network connection establishment library";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
index ab6449b50a17..ce6016012d76 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
@@ -1,18 +1,31 @@
 { buildDunePackage
-, conduit-lwt, ppx_sexp_conv, ocaml_lwt, uri, ipaddr, ipaddr-sexp
-, lwt_ssl, tls
+, conduit-lwt, ppx_sexp_conv, ocaml_lwt, uri, ipaddr, ipaddr-sexp, ca-certs, logs
+, lwt_ssl, tls, lwt_log, ssl
 }:
 
 buildDunePackage {
   pname = "conduit-lwt-unix";
-  inherit (conduit-lwt) version src minimumOCamlVersion;
-
-  useDune2 = true;
+  inherit (conduit-lwt) version src minimumOCamlVersion useDune2;
 
   buildInputs = [ ppx_sexp_conv ];
 
-  propagatedBuildInputs =
-    [ conduit-lwt ocaml_lwt uri ipaddr ipaddr-sexp tls lwt_ssl ];
+  propagatedBuildInputs = [
+    conduit-lwt
+    ocaml_lwt
+    uri
+    ipaddr
+    ipaddr-sexp
+    tls
+    ca-certs
+    logs
+    lwt_ssl
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    lwt_log
+    ssl
+  ];
 
   meta = conduit-lwt.meta // {
     description = "A network connection establishment library for Lwt_unix";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/mirage.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/mirage.nix
index 6100908f785b..d1f636be93c4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/conduit/mirage.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/mirage.nix
@@ -1,7 +1,8 @@
 { buildDunePackage, conduit-lwt
-, ppx_sexp_conv, sexplib, cstruct, mirage-stack, mirage-flow
+, ppx_sexp_conv, sexplib, uri, cstruct, mirage-stack, mirage-flow
 , mirage-flow-combinators, mirage-random, mirage-time, mirage-clock
 , dns-client, vchan, xenstore, tls, tls-mirage, ipaddr, ipaddr-sexp
+, tcpip, ca-certs-nss
 }:
 
 buildDunePackage {
@@ -12,10 +13,10 @@ buildDunePackage {
   nativeBuildInputs = [ ppx_sexp_conv ];
 
   propagatedBuildInputs = [
-    sexplib cstruct mirage-stack mirage-clock mirage-flow
+    sexplib uri cstruct mirage-stack mirage-clock mirage-flow
     mirage-flow-combinators mirage-random mirage-time
     dns-client conduit-lwt vchan xenstore tls tls-mirage
-    ipaddr ipaddr-sexp
+    ipaddr ipaddr-sexp tcpip ca-certs-nss
   ];
 
   meta = conduit-lwt.meta // {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix b/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix
index c3847acb9594..b0df52061520 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix
@@ -5,7 +5,7 @@
 }:
 
 buildDunePackage rec {
-  version = "3.0.1";
+  version = "3.4";
   pname = "containers";
 
   useDune2 = true;
@@ -14,7 +14,7 @@ buildDunePackage rec {
     owner = "c-cube";
     repo = "ocaml-containers";
     rev = "v${version}";
-    sha256 = "1m19cfcwks3xcj16nqldfb49dg0vdc7by1q1j8bpac3z2mjvks0l";
+    sha256 = "0ixpy81p6rc3lq71djfndb2sg2hfj20j1jbzzrrmgqsysqdjsgzz";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cooltt/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cooltt/default.nix
new file mode 100644
index 000000000000..2ece4543c2a7
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/cooltt/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, buildDunePackage
+, cmdliner
+, menhir
+, menhirLib
+, ppx_deriving
+, ppxlib
+, uuseg
+, uutf
+}:
+
+buildDunePackage {
+  pname = "cooltt";
+  version = "unstable-2021-05-25";
+
+  minimumOCamlVersion = "4.10";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "RedPRL";
+    repo = "cooltt";
+    rev = "8ac06cbf7e05417d777f3ac6a471fe3576249f79";
+    sha256 = "sha256-JBLNJaRuP/gwlg8RS3cpOpzxChOVKfmFulf5HKhhHh4=";
+  };
+
+  nativeBuildInputs = [
+    cmdliner
+    menhir
+    ppxlib
+  ];
+
+  propagatedBuildInputs = [
+    menhirLib
+    ppx_deriving
+    uuseg
+    uutf
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/RedPRL/cooltt";
+    description = "A cool implementation of normalization by evaluation (nbe) & elaboration for Cartesian cubical type theory";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
index 4bb83019dc5c..664d9a773ab0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
@@ -2,23 +2,24 @@
 
 buildDunePackage rec {
   pname = "csexp";
-  version = "1.4.0";
-
-  useDune2 = true;
-
-  minimumOCamlVersion = "4.02.3";
+  version = "1.5.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml-dune/csexp/releases/download/${version}/csexp-${version}.tbz";
-    sha256 = "sha256-jj1vyofxAqEm3ui3KioNFG8QQ5xHIY38FJ1Rvz7fNk4=";
+    sha256 = "sha256-1gXkBl+pCliABEDvLzOi2TE5i/LCIGGorLffhFwKrAI=";
   };
 
-  propagatedBuildInputs = [ result ];
+  minimumOCamlVersion = "4.03";
+  useDune2 = true;
+
+  propagatedBuildInputs = [
+    result
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/ocaml-dune/csexp";
+    homepage = "https://github.com/ocaml-dune/csexp/";
     description = "Minimal support for Canonical S-expressions";
     license = licenses.mit;
-    maintainers = [ maintainers.marsam ];
+    maintainers = with maintainers; [ marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix b/nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix
new file mode 100644
index 000000000000..12c0dfa160e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix
@@ -0,0 +1,16 @@
+{ lib, ocamlPackages }:
+
+let inherit (ocamlPackages) buildDunePackage csv uutf; in
+
+buildDunePackage {
+  pname = "csvtool";
+  inherit (csv) src version useDune2;
+
+  buildInputs = [ csv uutf ];
+
+  doCheck = true;
+
+  meta = csv.meta // {
+    description = "Command line tool for handling CSV files";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/csv/default.nix b/nixpkgs/pkgs/development/ocaml-modules/csv/default.nix
index 595624531759..d4c3d72a6d80 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/csv/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/csv/default.nix
@@ -4,13 +4,13 @@ buildDunePackage rec {
   pname = "csv";
   version = "2.4";
 
-  useDune2 = true;
-
   src = fetchurl {
     url = "https://github.com/Chris00/ocaml-${pname}/releases/download/${version}/csv-${version}.tbz";
     sha256 = "13m9n8mdss6jfbiw7d5bybxn4n85vmg4zw7dc968qrgjfy0w9zhk";
   };
 
+  useDune2 = true;
+
   meta = {
     description = "A pure OCaml library to read and write CSV files";
     license = lib.licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix b/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix
index 1c48b509c414..20197e207af3 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, buildDunePackage, fetchurl, ocaml
-, result, alcotest, cohttp-lwt-unix, odoc, curl }:
+, result, alcotest, cohttp-lwt-unix, odoc, curl, cacert
+}:
 
 buildDunePackage rec {
   pname = "curly";
@@ -15,8 +16,9 @@ buildDunePackage rec {
   };
 
   propagatedBuildInputs = [ result ];
-  checkInputs = [ alcotest cohttp-lwt-unix ];
+  checkInputs = [ alcotest cohttp-lwt-unix cacert ];
   # test dependencies are only available for >= 4.08
+  # https://github.com/mirage/ca-certs/issues/16
   doCheck = lib.versionAtLeast ocaml.version "4.08"
     # Some test fails in macOS sandbox
     # > Fatal error: exception Unix.Unix_error(Unix.EPERM, "bind", "")
diff --git a/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix b/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix
index d2cba68d732e..505ffe3c4257 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/decompress/default.nix
@@ -4,7 +4,7 @@
 }:
 
 buildDunePackage rec {
-  version = "1.3.0";
+  version = "1.4.0";
   pname = "decompress";
 
   minimumOCamlVersion = "4.07";
@@ -13,7 +13,7 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/mirage/decompress/releases/download/v${version}/decompress-v${version}.tbz";
-    sha256 = "de149896939be13fedec46a4581121d5ab74850a2241d08e6aa8ae4bb18c52c4";
+    sha256 = "d1669e07446d73dd5e16f020d4a1682abcbb1b7a1e3bf19b805429636c26a19b";
   };
 
   buildInputs = [ cmdliner ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dns/certify.nix b/nixpkgs/pkgs/development/ocaml-modules/dns/certify.nix
index 1835114d707c..31b39d18225c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dns/certify.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dns/certify.nix
@@ -1,6 +1,6 @@
 { buildDunePackage, dns, dns-tsig, dns-mirage, randomconv, x509
 , mirage-random, mirage-time, mirage-clock, mirage-stack
-, logs, mirage-crypto-pk, mirage-crypto-rng, tls, lwt
+, logs, mirage-crypto-pk, mirage-crypto-rng, mirage-crypto-ec, lwt
 }:
 
 buildDunePackage {
@@ -21,7 +21,7 @@ buildDunePackage {
     logs
     mirage-crypto-pk
     mirage-crypto-rng
-    tls
+    mirage-crypto-ec
     lwt
   ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix
index 4f0b95da6cb3..8a5115f10f05 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix
@@ -4,14 +4,14 @@
 
 buildDunePackage rec {
   pname = "dns";
-  version = "4.6.3";
+  version = "5.0.1";
 
   useDune2 = true;
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-dns/releases/download/v${version}/dns-v${version}.tbz";
-    sha256 = "0g7xw43jm5hv0w9lsnhhi0w3243mxl615cdsvz29yh39fcqvqsdy";
+    sha256 = "72c0a1a91c8e409bd448c8e0ea28d16d13177c326aea403ee1c30ddcb5969adc";
   };
 
   propagatedBuildInputs = [ rresult astring fmt logs ptime domain-name gmap cstruct ipaddr lru duration metrics ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dolmen/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dolmen/default.nix
index a1a73bfe2188..815e1acd72ac 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dolmen/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dolmen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir }:
+{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, menhir, menhirLib }:
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-dolmen-${version}";
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1b9mf8p6mic0n76acx8x82hhgm2n40sdv0jri95im65l52223saf";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
-  propagatedBuildInputs = [ menhir ];
+  buildInputs = [ ocaml findlib ocamlbuild menhir ];
+  propagatedBuildInputs = [ menhirLib ];
 
   makeFlags = [ "-C" "src" ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/earlybird/default.nix b/nixpkgs/pkgs/development/ocaml-modules/earlybird/default.nix
index 07e9b5a35461..a6a3648bec65 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/earlybird/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/earlybird/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchurl, ocaml, buildDunePackage
-, cmdliner, dap, fmt, iter, logs, lru, lwt_ppx, lwt_react, menhir, path_glob, ppx_deriving_yojson
+, cmdliner, dap, fmt, iter, logs, lru, lwt_ppx, lwt_react, menhir, menhirLib, path_glob, ppx_deriving_yojson
 }:
 
 if lib.versionAtLeast ocaml.version "4.13"
@@ -19,7 +19,7 @@ buildDunePackage rec {
     sha256 = "1pwzhcr3pw24ra4j4d23vz71h0psz4xkyp7b12l2wl1slxzjbrxa";
   };
 
-  buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhir path_glob ppx_deriving_yojson ];
+  buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhir menhirLib path_glob ppx_deriving_yojson ];
 
   meta = {
     homepage = "https://github.com/hackwaly/ocamlearlybird";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/eigen/default.nix b/nixpkgs/pkgs/development/ocaml-modules/eigen/default.nix
index c86b7cba0103..47b002fd7302 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/eigen/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/eigen/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.02";
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   propagatedBuildInputs = [ ctypes ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix b/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
index 38ba8f478bda..642a249e4937 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,10 +1,11 @@
 { stdenv, lib, fetchzip, buildDunePackage, camlp5
 , ppxlib, ppx_deriving, re, perl, ncurses
-, version ? "1.13.1"
+, version ? "1.13.5"
 }:
 with lib;
 let fetched = import ../../../build-support/coq/meta-fetch/default.nix
   {inherit lib stdenv fetchzip; } ({
+    release."1.13.5".sha256 = "02a6r23mximrdvs6kgv6rp0r2dgk7zynbs99nn7lphw2c4189kka";
     release."1.13.1".sha256 = "12a9nbdvg9gybpw63lx3nw5wnxfznpraprb0wj3l68v1w43xq044";
     release."1.13.0".sha256 = "0dmzy058m1mkndv90byjaik6lzzfk3aaac7v84mpmkv6my23bygr";
     release."1.12.0".sha256 = "1agisdnaq9wrw3r73xz14yrq3wx742i6j8i5icjagqk0ypmly2is";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/extlib/1.7.7.nix b/nixpkgs/pkgs/development/ocaml-modules/extlib/1.7.7.nix
index 3314ebcb9b5d..d27fe085569f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/extlib/1.7.7.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/extlib/1.7.7.nix
@@ -1,11 +1,14 @@
 # Older version of extlib for Haxe 4.0 and 4.1.
 # May be replaceable by the next extlib + extlib-base64 release.
-{ fetchurl, ocaml_extlib }:
+{ lib, fetchurl, ocaml, ocaml_extlib }:
 
-ocaml_extlib.overrideAttrs (_: rec {
+ocaml_extlib.overrideAttrs (x: rec {
   version = "1.7.7";
   src = fetchurl {
     url = "https://github.com/ygrek/ocaml-extlib/releases/download/${version}/extlib-${version}.tar.gz";
     sha256 = "1sxmzc1mx3kg62j8kbk0dxkx8mkf1rn70h542cjzrziflznap0s1";
   };
+  meta = x.meta // {
+    broken = lib.versionAtLeast ocaml.version "4.12";
+  };
 })
diff --git a/nixpkgs/pkgs/development/ocaml-modules/fix/default.nix b/nixpkgs/pkgs/development/ocaml-modules/fix/default.nix
index d4ce484653b9..ffd0b5003ce4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/fix/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/fix/default.nix
@@ -1,25 +1,24 @@
-{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild }:
+{ lib, fetchFromGitLab, buildDunePackage }:
 
-assert lib.versionAtLeast (lib.getVersion ocaml) "3.12";
+buildDunePackage rec {
+  pname = "fix";
+  version = "20201120";
 
-stdenv.mkDerivation {
-
-  name = "ocaml-fix-20130611";
-
-  src = fetchurl {
-    url = "http://gallium.inria.fr/~fpottier/fix/fix-20130611.tar.gz";
-    sha256 = "1phlqcs1nb93x9cf0w0hnq2ck4dmn71zm4mxf60w96vb9yb9qzp0";
+  src = fetchFromGitLab {
+    domain = "gitlab.inria.fr";
+    owner = "fpottier";
+    repo = "fix";
+    rev = "${version}";
+    sha256 = "sha256-RO+JCG6R2i5uZfwTYEnQBCVq963fjv5lA2wA/8KrgMg=";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
-
-  createFindlibDestdir = true;
+  minimumOCamlVersion = "4.03";
+  useDune2 = true;
 
   meta = with lib; {
-    homepage = "http://gallium.inria.fr/~fpottier/fix/";
+    homepage = "https://gitlab.inria.fr/fpottier/fix/";
     description = "A simple OCaml module for computing the least solution of a system of monotone equations";
     license = licenses.cecill-c;
-    maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [];
+    maintainers = with maintainers; [ vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix b/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix
deleted file mode 100644
index d30884006410..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/git/cohttp-mirage.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, buildDunePackage
-, git, mimic, cohttp-mirage, cohttp, cohttp-lwt
-, fmt, lwt, result, rresult, uri
-}:
-
-buildDunePackage {
-  pname = "git-cohttp-mirage";
-
-  inherit (git) version src minimumOCamlVersion useDune2;
-
-  propagatedBuildInputs = [
-    git mimic cohttp-mirage cohttp cohttp-lwt fmt lwt result rresult uri
-  ];
-
-  meta = git.meta // {
-    description = "A package to use HTTP-based ocaml-git with MirageOS backend";
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/default.nix b/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
index b8d73178d09b..954e4956c816 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
@@ -1,30 +1,35 @@
 { stdenv, lib, fetchurl, buildDunePackage
 , alcotest, mtime, mirage-crypto-rng, tls, git-binary
 , angstrom, astring, cstruct, decompress, digestif, encore, duff, fmt, checkseum
-, fpath, ke, logs, lwt, ocamlgraph, uri, rresult, base64
+, fpath, ke, logs, lwt, ocamlgraph, uri, rresult, base64, hxd
 , result, bigstringaf, optint, mirage-flow, domain-name, emile
 , mimic, carton, carton-lwt, carton-git, ipaddr, psq, crowbar, alcotest-lwt
 }:
 
 buildDunePackage rec {
   pname = "git";
-  version = "3.3.3";
+  version = "3.4.0";
 
   minimumOCamlVersion = "4.08";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-git/releases/download/${version}/git-${version}.tbz";
-    sha256 = "0j8pw9w74bfhrjsqr8zm8g7h1az94z9vg7qgc6z6649zm9yjiax3";
+    sha256 = "6eef1240c7c85a8e495b82ef863c509ad41d75e0c45cf73c34ed1bdafd03413f";
   };
 
+  # remove changelog for the carton package
+  postPatch = ''
+    rm CHANGES.carton.md
+  '';
+
   buildInputs = [
     base64
   ];
   propagatedBuildInputs = [
     angstrom astring checkseum cstruct decompress digestif encore duff fmt fpath
     ke logs lwt ocamlgraph uri rresult result bigstringaf optint mirage-flow
-    domain-name emile mimic carton carton-lwt carton-git ipaddr psq
+    domain-name emile mimic carton carton-lwt carton-git ipaddr psq hxd
   ];
   checkInputs = [
     alcotest alcotest-lwt mtime mirage-crypto-rng tls git-binary crowbar
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/paf.nix b/nixpkgs/pkgs/development/ocaml-modules/git/paf.nix
new file mode 100644
index 000000000000..cf0272ddf3b8
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/paf.nix
@@ -0,0 +1,49 @@
+{ lib, buildDunePackage
+, git
+, mimic
+, paf
+, ca-certs-nss
+, cohttp
+, cohttp-lwt
+, fmt
+, ipaddr
+, logs
+, lwt
+, mirage-clock
+, mirage-stack
+, mirage-time
+, result
+, rresult
+, tls
+, uri
+}:
+
+buildDunePackage {
+  pname = "git-paf";
+
+  inherit (git) version src minimumOCamlVersion useDune2;
+
+  propagatedBuildInputs = [
+    git
+    mimic
+    paf
+    ca-certs-nss
+    cohttp
+    cohttp-lwt
+    fmt
+    lwt
+    result
+    rresult
+    ipaddr
+    logs
+    mirage-clock
+    mirage-stack
+    mirage-time
+    tls
+    uri
+  ];
+
+  meta = git.meta // {
+    description = "A package to use HTTP-based ocaml-git with MirageOS backend";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/git/unix.nix
index f4cea472886d..3e5f464cea06 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/git/unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/unix.nix
@@ -6,7 +6,8 @@
 , tcpip, awa-mirage, mirage-flow
 , alcotest, alcotest-lwt, base64, cstruct
 , ke, mirage-crypto-rng, ocurl, git-binary
-, ptime
+, ptime, mimic, ca-certs-nss, tls, tls-mirage
+, cacert
 }:
 
 buildDunePackage {
@@ -24,10 +25,14 @@ buildDunePackage {
     fmt bos fpath uri digestif logs lwt
     astring cohttp-lwt-unix decompress
     domain-name ipaddr mtime mirage-flow
+    cstruct ptime mimic ca-certs-nss
+    tls tls-mirage
   ];
   checkInputs = [
-    alcotest alcotest-lwt base64 cstruct ke
-    mirage-crypto-rng ocurl git-binary ptime
+    alcotest alcotest-lwt base64 ke
+    mirage-crypto-rng git-binary
+    cohttp-lwt-unix
+    cacert # sets up NIX_SSL_CERT_FILE
   ];
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix
index 761e9bf5619e..76383099a41d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/containers.nix
@@ -1,6 +1,6 @@
 { buildDunePackage
 , irmin, irmin-unix, irmin-git, ppx_irmin, lwt, mtime
-, alcotest, alcotest-lwt
+, alcotest, alcotest-lwt, cacert
 }:
 
 buildDunePackage {
@@ -18,7 +18,7 @@ buildDunePackage {
 
   doCheck = true;
   checkInputs = [
-    alcotest alcotest-lwt
+    alcotest alcotest-lwt cacert
   ];
 
   meta = ppx_irmin.meta // {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
index a6c1e8af8fa4..d477c932928e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
@@ -1,7 +1,7 @@
 { lib, buildDunePackage
 , git, irmin, irmin-test, ppx_irmin, git-cohttp-unix, git-unix
 , digestif, cstruct, fmt, astring, fpath, logs, lwt, uri
-, mtime, alcotest
+, mtime, alcotest, cacert
 }:
 
 buildDunePackage {
@@ -26,7 +26,7 @@ buildDunePackage {
     uri
   ];
 
-  checkInputs = [ mtime alcotest git-cohttp-unix git-unix irmin-test ];
+  checkInputs = [ mtime alcotest git-cohttp-unix git-unix irmin-test cacert ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
index ca205cac4e15..03c8f1eca291 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
@@ -1,5 +1,5 @@
 { lib, buildDunePackage, cohttp-lwt, graphql-cohttp, graphql-lwt, irmin
-, alcotest, alcotest-lwt, logs, yojson, cohttp-lwt-unix
+, alcotest, alcotest-lwt, logs, yojson, cohttp-lwt-unix, cacert
 }:
 
 buildDunePackage rec {
@@ -19,6 +19,7 @@ buildDunePackage rec {
     logs
     cohttp-lwt-unix
     yojson
+    cacert
   ];
 
   meta = irmin.meta // {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
index b50e0b873454..7bfae9982021 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
@@ -1,5 +1,6 @@
 { lib, buildDunePackage, cohttp-lwt, irmin, webmachine
 , checkseum, git-unix, irmin-git, irmin-test, digestif, git-cohttp-unix
+, cacert
 }:
 
 buildDunePackage rec {
@@ -12,7 +13,9 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ cohttp-lwt irmin webmachine ];
 
-  checkInputs = [ digestif checkseum git-cohttp-unix git-unix irmin-git irmin-test ];
+  checkInputs = [
+    digestif checkseum git-cohttp-unix git-unix irmin-git irmin-test cacert
+  ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix
index dfa84ff2335d..e33b766bd4cb 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/mirage-git.nix
@@ -1,6 +1,6 @@
 { buildDunePackage, irmin-mirage, irmin-git
 , mirage-kv, cohttp, conduit-lwt, conduit-mirage
-, git-cohttp-mirage, fmt, git, lwt, mirage-clock, uri
+, git-paf, fmt, git, lwt, mirage-clock, uri
 }:
 
 buildDunePackage {
@@ -15,7 +15,7 @@ buildDunePackage {
     cohttp
     conduit-lwt
     conduit-mirage
-    git-cohttp-mirage
+    git-paf
     fmt
     git
     lwt
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
index 7c59e1eaef34..c7eed70d9d99 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "ppx_irmin";
-  version = "2.5.3";
+  version = "2.6.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
-    sha256 = "2c8ef24cc57379c3a138f121fea350ee7b6077abc22a4fdc6a47d0c81585f3f6";
+    sha256 = "1db134221e82c424260a0e206b640fcb82902be35eea4137af2bcd9c98d3ac0f";
   };
 
   minimumOCamlVersion = "4.08";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
index a3dfb5d508c2..89cf36979bde 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
@@ -1,7 +1,7 @@
 { lib, buildDunePackage
 , checkseum, cmdliner, git-unix, git-cohttp-unix, yaml, fpath
 , irmin, irmin-fs, irmin-git, irmin-graphql, irmin-http
-, irmin-pack, irmin-watcher, irmin-test
+, irmin-pack, irmin-watcher, irmin-test, cacert
 }:
 
 buildDunePackage rec {
@@ -18,7 +18,9 @@ buildDunePackage rec {
     irmin-pack irmin-watcher git-cohttp-unix
   ];
 
-  checkInputs = lib.optional doCheck irmin-test;
+  checkInputs = [
+    irmin-test cacert
+  ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix
index eb429b2bb6dc..e348c5d9325a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.14.nix
@@ -1,4 +1,5 @@
 { self
+, lib
 , openssl
 , zstd
 }:
@@ -40,6 +41,7 @@ with self;
     version = "0.14.1";
     hash = "1cdkv34m6czhacivpbb2sasj83fgcid6gnqk30ig9i84z8nh2gw2";
     meta.description = "Accessors for Core types, for use with the Accessor library";
+    meta.broken = lib.versionAtLeast ocaml.version "4.12";
     propagatedBuildInputs = [ accessor_base core_kernel ];
   };
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/junit/alcotest.nix b/nixpkgs/pkgs/development/ocaml-modules/junit/alcotest.nix
new file mode 100644
index 000000000000..85abaf7f872b
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/junit/alcotest.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, junit, alcotest }:
+
+buildDunePackage ({
+  pname = "junit_alcotest";
+
+  inherit (junit) src version meta useDune2;
+
+  propagatedBuildInputs = [
+    junit
+    alcotest
+  ];
+
+  doCheck = false; # 2 tests fail: 1) "Test with unexpected exception"; 2) "with wrong result";
+})
diff --git a/nixpkgs/pkgs/development/ocaml-modules/junit/default.nix b/nixpkgs/pkgs/development/ocaml-modules/junit/default.nix
new file mode 100644
index 000000000000..c91625e823b0
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/junit/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl, buildDunePackage, ptime, tyxml }:
+
+buildDunePackage (rec {
+  pname = "junit";
+  version = "2.0.2";
+
+  src = fetchurl {
+    url = "https://github.com/Khady/ocaml-junit/releases/download/${version}/junit-${version}.tbz";
+    sha256 = "00bbx5j8vsy9fqbc04xa3lsalaxicirmbczr65bllfk1afv43agx";
+  };
+
+  propagatedBuildInputs = [
+    ptime
+    tyxml
+  ];
+
+  useDune2 = true;
+  doCheck = true;
+
+  meta = with lib; {
+    description = "ocaml-junit is an OCaml package for the creation of JUnit XML reports, proving a typed API to produce valid reports acceptable to Jenkins, comes with packages supporting OUnit and Alcotest.";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ superherointj ];
+    homepage = "https://github.com/Khady/ocaml-junit";
+  };
+})
diff --git a/nixpkgs/pkgs/development/ocaml-modules/junit/ounit.nix b/nixpkgs/pkgs/development/ocaml-modules/junit/ounit.nix
new file mode 100644
index 000000000000..5f261b07236f
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/junit/ounit.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, junit, ounit }:
+
+buildDunePackage ({
+  pname = "junit_ounit";
+
+  inherit (junit) src version meta useDune2;
+
+  propagatedBuildInputs = [
+    junit
+    ounit
+  ];
+
+  doCheck = true;
+})
diff --git a/nixpkgs/pkgs/development/ocaml-modules/letsencrypt/default.nix b/nixpkgs/pkgs/development/ocaml-modules/letsencrypt/default.nix
index b3c0d4f89412..0a70bf302428 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/letsencrypt/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/letsencrypt/default.nix
@@ -31,11 +31,11 @@
 
 buildDunePackage rec {
   pname = "letsencrypt";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchurl {
     url = "https://github.com/mmaker/ocaml-letsencrypt/releases/download/v${version}/letsencrypt-v${version}.tbz";
-    sha256 = "91c79828a50243804da29c17563c54d2d528a79207e5b874dce6a3e7fedf7567";
+    sha256 = "6e3bbb5f593823d49e83e698c06cf9ed48818695ec8318507b311ae74731e607";
   };
 
   minimumOCamlVersion = "4.08";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/llvm/default.nix b/nixpkgs/pkgs/development/ocaml-modules/llvm/default.nix
index 34fe75a2943f..f984a28869e1 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/llvm/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/llvm/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, lib, fetchpatch, python, cmake, llvm, ocaml, findlib, ctypes }:
+{ stdenv, lib, fetchpatch, python, cmake, libllvm, ocaml, findlib, ctypes }:
 
-let version = lib.getVersion llvm; in
+let version = lib.getVersion libllvm; in
 
 stdenv.mkDerivation {
   pname = "ocaml-llvm";
   inherit version;
 
-  inherit (llvm) src;
+  inherit (libllvm) src;
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ python ocaml findlib ctypes ];
-  propagatedBuildInputs = [ llvm ];
+  propagatedBuildInputs = [ libllvm ];
 
   patches = [ (fetchpatch {
     url = "https://raw.githubusercontent.com/ocaml/opam-repository/2bdc193f5a9305ea93bf0f0dfc1fbc327c8b9306/packages/llvm/llvm.7.0.0/files/fix-shared.patch";
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   cmakeFlags = [
     "-DLLVM_OCAML_OUT_OF_TREE=TRUE"
     "-DLLVM_OCAML_INSTALL_PATH=${placeholder "out"}/ocaml"
-    "-DLLVM_OCAML_EXTERNAL_LLVM_LIBDIR=${lib.getLib llvm}/lib"
+    "-DLLVM_OCAML_EXTERNAL_LLVM_LIBDIR=${lib.getLib libllvm}/lib"
   ];
 
   buildFlags = [ "ocaml_all" ];
@@ -34,11 +34,11 @@ stdenv.mkDerivation {
   '';
 
   passthru = {
-    inherit llvm;
+    inherit libllvm;
   };
 
   meta = {
-    inherit (llvm.meta) license homepage;
+    inherit (libllvm.meta) license homepage;
     platforms = ocaml.meta.platforms or [];
     description = "OCaml bindings distributed with LLVM";
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/luv/default.nix b/nixpkgs/pkgs/development/ocaml-modules/luv/default.nix
index 6ad5ce5d4879..41fdbc4eedcd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/luv/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/luv/default.nix
@@ -6,12 +6,12 @@
 
 buildDunePackage rec {
   pname = "luv";
-  version = "0.5.7";
+  version = "0.5.8";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/aantron/luv/releases/download/${version}/luv-${version}.tar.gz";
-    sha256 = "0wjnw5riydnzsk1xdzljlpzdnjwpa0j597y6x6ma4990mqj54260";
+    sha256 = "1y3g7jvb72frckjl92zyn7hzmzjy1fy4a48992jdk80vphsdzgmk";
   };
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix
index ee0c3b5b00cc..b0f73546eed9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix
@@ -8,13 +8,13 @@ let inherit (lib) optional versionAtLeast; in
 
 buildDunePackage rec {
   pname = "lwt";
-  version = "5.4.0";
+  version = "5.4.1";
 
   useDune2 = true;
 
   src = fetchzip {
     url = "https://github.com/ocsigen/${pname}/archive/${version}.tar.gz";
-    sha256 = "1ay1zgadnw19r9hl2awfjr22n37l7rzxd9v73pjbahavwm2ay65d";
+    sha256 = "0cq2qy23sa1a5zk6nja3c652mp29i84yfrkcwks6i8sdqwli36jy";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix b/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix
index cbb759205e03..686cf9820580 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild
-, version ? if lib.versionAtLeast (lib.getVersion ocaml) "4.02" then "20190626" else "20140422"
-}@args:
-
-let
-  src = fetchurl (
-  if version == "20140422" then { url = "http://cristal.inria.fr/~fpottier/menhir/menhir-20140422.tar.gz"; sha256 = "1ki1f2id6a14h9xpv2k8yb6px7dyw8cvwh39csyzj4qpzx7wia0d"; }
-  else if version == "20170712" then { url = "http://gallium.inria.fr/~fpottier/menhir/menhir-20170712.tar.gz"; sha256 = "006hq3bwj81j67f2k9cgzj5wr4hai8j36925p5n3sd2j01ljsj6a"; }
-  else if version == "20181113" then { url = "https://gitlab.inria.fr/fpottier/menhir/repository/20181113/archive.tar.gz"; sha256 = "0hl611l0gyl7b2bm7m0sk7vjz14m0i7znrnjq3gw58pylj934dx4"; }
-  else if version == "20190626" then { url = "https://gitlab.inria.fr/fpottier/menhir/repository/20190626/archive.tar.gz"; sha256 = "0nigjnskg89knyi2zj1w211mb1pvkrwfqpz9a0qbw80k3hm8gg0h"; }
-  else throw ("menhir: unknown version " ++ version)
-  );
-in
-
-import ./generic.nix (args // { inherit version src; })
+{ lib, fetchFromGitLab, buildDunePackage
+, menhirLib, menhirSdk
+}:
+
+buildDunePackage rec {
+  pname = "menhir";
+
+  inherit (menhirLib) version src useDune2;
+
+  buildInputs = [ menhirLib menhirSdk ];
+
+  meta = menhirSdk.meta // {
+    description = "A LR(1) parser generator for OCaml";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/menhir/generic.nix b/nixpkgs/pkgs/development/ocaml-modules/menhir/generic.nix
deleted file mode 100644
index a917d634a19c..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/menhir/generic.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ version, src, lib, stdenv, ocaml, findlib, ocamlbuild, ... }:
-
-stdenv.mkDerivation {
-  pname = "menhir";
-  inherit version;
-
-  inherit src;
-
-  buildInputs = [ ocaml findlib ocamlbuild ];
-
-  createFindlibDestdir = true;
-
-  preBuild = ''
-    # fix makefiles.
-    RM=$(type -p rm)
-    CHMOD=$(type -p chmod)
-    for f in src/Makefile demos/OMakefile* demos/Makefile*
-    do
-      substituteInPlace $f \
-        --replace /bin/rm $RM \
-        --replace /bin/chmod $CHMOD
-    done
-
-    export PREFIX=$out
-  '';
-
-  meta = with lib; {
-    homepage = "http://pauillac.inria.fr/~fpottier/menhir/";
-    description = "A LR(1) parser generator for OCaml";
-    longDescription = ''
-      Menhir is a LR(1) parser generator for the Objective Caml programming
-      language.  That is, Menhir compiles LR(1) grammar specifications down
-      to OCaml code.  Menhir was designed and implemented by François Pottier
-      and Yann Régis-Gianas.
-    '';
-    license = with licenses; [
-      (if versionAtLeast version "20170418" then gpl2 else qpl) /* generator */
-      lgpl2 /* library */
-    ];
-    platforms = ocaml.meta.platforms or [];
-    maintainers = with maintainers; [ maggesi ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/menhir/lib.nix b/nixpkgs/pkgs/development/ocaml-modules/menhir/lib.nix
new file mode 100644
index 000000000000..3f6660f23ee9
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/menhir/lib.nix
@@ -0,0 +1,29 @@
+{ lib, fetchFromGitLab, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "menhirLib";
+  version = "20210419";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.inria.fr";
+    owner = "fpottier";
+    repo = "menhir";
+    rev = version;
+    sha256 = "0jcbr7s3iwfr7xxfybs3h407g76yfp5yq5r9i0wg2ahvvbqh03ky";
+  };
+
+  useDune2 = true;
+
+  meta = with lib; {
+    homepage = "http://pauillac.inria.fr/~fpottier/menhir/";
+    description = "Runtime support library for parsers generated by Menhir";
+    longDescription = ''
+      Menhir is a LR(1) parser generator for the Objective Caml programming
+      language.  That is, Menhir compiles LR(1) grammar specifications down
+      to OCaml code.  Menhir was designed and implemented by François Pottier
+      and Yann Régis-Gianas.
+    '';
+    license = with licenses; [ lgpl2Only ];
+    maintainers = with maintainers; [ vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/menhir/sdk.nix b/nixpkgs/pkgs/development/ocaml-modules/menhir/sdk.nix
new file mode 100644
index 000000000000..0e60849494cc
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/menhir/sdk.nix
@@ -0,0 +1,15 @@
+{ lib, fetchFromGitLab, buildDunePackage
+, menhirLib
+}:
+
+buildDunePackage rec {
+  pname = "menhirSdk";
+
+  inherit (menhirLib) version src useDune2;
+
+  meta = menhirLib.meta // {
+    description = "Compile-time library for auxiliary tools related to Menhir";
+    license = with lib.licenses; [ gpl2Only ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix
index 3ddae57e9e8d..ea1636427038 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mimic/default.nix
@@ -1,27 +1,23 @@
 { lib, buildDunePackage, fetchurl
-, fmt, mirage-flow, result, rresult, cstruct, logs, ke
+, fmt, mirage-flow, result, rresult, cstruct, logs, ke, lwt
 , alcotest, alcotest-lwt, bigstringaf, bigarray-compat
 }:
 
 buildDunePackage rec {
   pname = "mimic";
-  version = "0.0.2";
+  version = "0.0.3";
 
   minimumOCamlVersion = "4.08";
   useDune2 = true;
 
   src = fetchurl {
-    url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/${pname}-${pname}-v${version}.tbz";
-    sha256 = "3ad5af3caa1120ecfdf022de41ba5be8edfbf50270fc99238b82d3d2d6e7c317";
+    url = "https://github.com/dinosaure/mimic/releases/download/${version}/mimic-${version}.tbz";
+    sha256 = "e4743cd2e4f8242eb1ce9d8086fd2affba0eb6a62131309ffa279108bd3dbbcb";
   };
 
-  # don't install changelogs for other packages
-  postPatch = ''
-    rm -f CHANGES.md CHANGES.carton.md
-  '';
-
   propagatedBuildInputs = [
     fmt
+    lwt
     mirage-flow
     result
     rresult
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix
index 50121ad62802..aaa51aa276c4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -3,7 +3,7 @@
 
 buildDunePackage rec {
   pname = "mirage-runtime";
-  version = "3.10.1";
+  version = "3.10.3";
 
   useDune2 = true;
 
@@ -11,7 +11,7 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage/releases/download/v${version}/mirage-v${version}.tbz";
-    sha256 = "1glmsz2znhfkk4w6d6nsr7q5jqvivhmi8zwagzw2d8pah0c8bhm4";
+    sha256 = "7c8059ef9e330eaef1ed51c0d89afe17900310f8083a426cd8099602222c2281";
   };
 
   propagatedBuildInputs = [ ipaddr functoria-runtime fmt logs ocaml_lwt ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix
index 005e26926d1a..b16dfd484814 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchFromGitHub, ezjsonm, menhir, ounit }:
+{ lib, buildDunePackage, fetchFromGitHub, ezjsonm, menhir, menhirLib, ounit }:
 
 buildDunePackage rec {
   pname = "mustache";
@@ -11,8 +11,8 @@ buildDunePackage rec {
     sha256 = "19v8rk8d8lkfm2rmhdawfgadji6wa267ir5dprh4w9l1sfj8a1py";
   };
 
-  buildInputs = [ ezjsonm ];
-  propagatedBuildInputs = [ menhir ];
+  buildInputs = [ ezjsonm menhir ];
+  propagatedBuildInputs = [ menhirLib ];
 
   doCheck = true;
   checkInputs = [ ounit ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix
index 4fde475cf936..a8912c0f5d58 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-version/default.nix
@@ -1,24 +1,21 @@
 { lib, fetchurl, buildDunePackage }:
 
 buildDunePackage rec {
-
   pname = "ocaml-version";
-  version = "3.0.0";
-
-  minimumOCamlVersion = "4.07";
-
-  useDune2 = true;
+  version = "3.1.0";
 
   src = fetchurl {
     url = "https://github.com/ocurrent/ocaml-version/releases/download/v${version}/ocaml-version-v${version}.tbz";
-    sha256 = "15vk8sh50p3f2mbv8z7mqnx76cffri36f2krp25zkkwix8jg7ci4";
+    sha256 = "sha256-rHuhagnY9yISdC85NpgPv667aYx7v2JRgq99ayw83l8=";
   };
 
-  meta = {
+  minimumOCamlVersion = "4.07";
+  useDune2 = true;
+
+  meta = with lib; {
     description = "Manipulate, parse and generate OCaml compiler version strings";
     homepage = "https://github.com/ocurrent/ocaml-version";
-    license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
+    license = licenses.isc;
+    maintainers = with maintainers; [ vbgl ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocplib-endian/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocplib-endian/default.nix
index 553ad9562cc8..2cb066a7c035 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocplib-endian/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocplib-endian/default.nix
@@ -1,24 +1,22 @@
-{ stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild, cppo }:
+{ lib, buildDunePackage, fetchzip, cppo }:
 
-let version = "1.0"; in
-
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-ocplib-endian-${version}";
+buildDunePackage rec {
+  version = "1.1";
+  pname = "ocplib-endian";
 
   src = fetchzip {
     url = "https://github.com/OCamlPro/ocplib-endian/archive/${version}.tar.gz";
-    sha256 = "0s1ld3kavz892b8awyxyg1mr98h2g61gy9ci5v6yb49bsii6wicw";
+    sha256 = "sha256-zKsSkhlZBXSqPtw+/WN3pwo9plM9rDZfMbGVfosqb10=";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild cppo ];
+  useDune2 = true;
 
-  createFindlibDestdir = true;
+  buildInputs = [ cppo ];
 
-  meta = {
+  meta = with lib; {
     description = "Optimised functions to read and write int16/32/64";
     homepage = "https://github.com/OCamlPro/ocplib-endian";
-    license = lib.licenses.lgpl21;
-    platforms = ocaml.meta.platforms or [];
-    maintainers = with lib.maintainers; [ vbgl ];
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index cf869b6e5ef9..aac8b27955b5 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, which, ocaml, findlib, lwt_react, ssl, lwt_ssl
 , lwt_log, ocamlnet, ocaml_pcre, cryptokit, tyxml, xml-light, ipaddr
 , pgocaml, camlzip, ocaml_sqlite3
-, makeWrapper, fetchpatch
+, makeWrapper
 }:
 
 if !lib.versionAtLeast ocaml.version "4.06.1"
@@ -13,22 +13,16 @@ let mkpath = p: n:
 in
 
 stdenv.mkDerivation rec {
-  version = "2.16.0";
+  version = "2.18.0";
   pname = "ocsigenserver";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "ocsigenserver";
     rev = version;
-    sha256 = "0dd7zfk8dlajv0297dswaaqh96hjk2ppy8zb67jbkd26nimahk9y";
+    sha256 = "0c61wkq8ddy3qxb2x1jz04rz0722hk92r6jl1zvgikh74m5p5ipp";
   };
 
-  # unreleased fix for Makefile typos breaking compilation
-  patches = [ (fetchpatch {
-    url = "https://github.com/ocsigen/ocsigenserver/commit/014aefc4e460686a361b974f16ebb7e0c993b36b.patch";
-    sha256 = "0xda4fj8p5102lh9xmrn5mv3s0ps6yykqj3mpjf72gf4zd6fzcn7";
-  }) ];
-
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ which ocaml findlib lwt_react pgocaml camlzip ocaml_sqlite3 ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/octavius/default.nix b/nixpkgs/pkgs/development/ocaml-modules/octavius/default.nix
index c71c8f35f4ba..a4124df66640 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/octavius/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/octavius/default.nix
@@ -1,24 +1,25 @@
-{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg }:
+{ lib, fetchFromGitHub, buildDunePackage, ocaml }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
-then throw "octavius is not available for OCaml ${ocaml.version}" else
+buildDunePackage rec {
+  pname = "octavius";
+  version = "1.2.2";
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-octavius-0.2.0";
-  src = fetchurl {
-    url = "https://github.com/ocaml-doc/octavius/releases/download/v0.2.0/octavius-0.2.0.tbz";
-    sha256 = "02milzzlr4xk5aymg2fjz27f528d5pyscqvld3q0dm41zcpkz5ml";
+  src = fetchFromGitHub {
+    owner = "ocaml-doc";
+    repo = "octavius";
+    rev = "v${version}";
+    sha256 = "sha256-/S6WpIo1c5J9uM3xgtAM/elhnsl0XimnIFsKy3ootbA=";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild topkg ];
+  minimumOCamlVersion = "4.03";
+  useDune2 = lib.versionAtLeast ocaml.version "4.08";
 
-  inherit (topkg) buildPhase installPhase;
+  doCheck = true;
 
-  meta = {
+  meta = with lib; {
     description = "Ocamldoc comment syntax parser";
     homepage = "https://github.com/ocaml-doc/octavius";
-    license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
-    inherit (ocaml.meta) platforms;
+    license = licenses.isc;
+    maintainers = with maintainers; [ vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix b/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix
index 7f8ded5feb6c..2227f6e033ca 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/optint/default.nix
@@ -1,12 +1,12 @@
 { lib, buildDunePackage, fetchurl }:
 
 buildDunePackage rec {
-  minimumOCamlVersion = "4.03";
-  version = "0.0.4";
+  minimumOCamlVersion = "4.07";
+  version = "0.1.0";
   pname = "optint";
   src = fetchurl {
     url = "https://github.com/mirage/optint/releases/download/v${version}/optint-v${version}.tbz";
-    sha256 = "1a7gabxqmfvii8qnxq1clx43md2h9glskxhac8y8r0rhzblx3s1a";
+    sha256 = "27847660223c16cc7eaf8fcd9d5589a0b802114330a2529578f8007d3b01185d";
   };
 
   useDune2 = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/paf/default.nix b/nixpkgs/pkgs/development/ocaml-modules/paf/default.nix
index 0c91051e2433..375ba1c125e8 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/paf/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/paf/default.nix
@@ -5,6 +5,7 @@
 , mirage-stack
 , mirage-time
 , httpaf
+, h2
 , tls-mirage
 , mimic
 , cohttp-lwt
@@ -31,11 +32,11 @@
 
 buildDunePackage rec {
   pname = "paf";
-  version = "0.0.1";
+  version = "0.0.3";
 
   src = fetchurl {
     url = "https://github.com/dinosaure/paf-le-chien/releases/download/${version}/paf-${version}.tbz";
-    sha256 = "7a794c21ce458bda302553b0f5ac128c067579fbb3b7b8fba9b410446c43e790";
+    sha256 = "a0bbb84b19e1f0255337fc4d7017f3ea3611b241746e391b11c1d8b1f5f30a2b";
   };
 
   useDune2 = true;
@@ -45,6 +46,7 @@ buildDunePackage rec {
     mirage-stack
     mirage-time
     httpaf
+    h2
     tls-mirage
     mimic
     cohttp-lwt
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix
new file mode 100644
index 000000000000..412ef9568db2
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildDunePackage
+, fetchFromGitHub
+, alcotest
+, cmdliner
+, ppx_deriving
+, ppxlib
+}:
+
+buildDunePackage rec {
+  pname = "ppx_deriving_cmdliner";
+  version = "0.6.0";
+
+  minimumOCamlVersion = "4.08";
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "hammerlab";
+    repo = "ppx_deriving_cmdliner";
+    rev = "v${version}";
+    sha256 = "19l32y2wv64d1c7fvln07dg3bkf7wf5inzjxlff7lbabskdbbras";
+  };
+
+  propagatedBuildInputs = [
+    cmdliner
+    ppx_deriving
+    ppxlib
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+  ];
+
+  meta = with lib; {
+    description = "Ppx_deriving plugin for generating command line interfaces from types for OCaml";
+    inherit (src.meta) homepage;
+    license = licenses.asl20;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
index 87ccd85a07df..ee801f6adfd8 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
@@ -1,22 +1,23 @@
-{ lib, fetchurl, buildDunePackage, ocaml-migrate-parsetree }:
+{ lib, fetchurl, buildDunePackage, ppxlib }:
 
 buildDunePackage rec {
   pname = "ppx_gen_rec";
-  version = "1.1.0";
-
-  useDune2 = true;
+  version = "2.0.0";
 
   src = fetchurl {
     url = "https://github.com/flowtype/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "0fwi4bknq8h9zgpsarjvnzdm9bm8qlyyw0lz30pihg02aiiljqbh";
+    sha256 = "sha256-/mMj5UT22KQGVy1sjgEoOgPzyCYyeDPtWJYNDvQ9nlk=";
   };
 
-  buildInputs = [ ocaml-migrate-parsetree ];
+  minimumOCamlVersion = "4.07";
+  useDune2 = true;
+
+  buildInputs = [ ppxlib ];
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-ppx_gen_rec";
-    description = "ocaml preprocessor that generates a recursive module";
+    description = "A ppx rewriter that transforms a recursive module expression into a struct.";
     license = licenses.mit;
-    maintainers = [ maintainers.frontsideair ];
+    maintainers = with maintainers; [ frontsideair ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix
index 4ad26ff0862b..6588d6db7f45 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_import/default.nix
@@ -1,7 +1,6 @@
 { lib, fetchurl, buildDunePackage
 , ppx_tools_versioned
 , ocaml-migrate-parsetree
-, ounit, ppx_deriving, ppxlib
 }:
 
 buildDunePackage rec {
@@ -21,9 +20,6 @@ buildDunePackage rec {
     ppx_tools_versioned ocaml-migrate-parsetree
   ];
 
-  doCheck = true;
-  checkInputs = [ ounit ppx_deriving ppxlib ];
-
   meta = {
     description = "A syntax extension that allows to pull in types or signatures from other compiled interface files";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/repr/default.nix b/nixpkgs/pkgs/development/ocaml-modules/repr/default.nix
index de6877ddd68e..cd7e1e014e4d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/repr/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/repr/default.nix
@@ -1,30 +1,29 @@
-{ lib, buildDunePackage, fetchurl, fmt, uutf, jsonm, base64, either }:
+{ lib, buildDunePackage, fetchurl, base64, either, fmt, jsonm, uutf }:
 
 buildDunePackage rec {
   pname = "repr";
-  version = "0.2.1";
-
-  minimumOCamlVersion = "4.08";
+  version = "0.3.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/${pname}/releases/download/${version}/${pname}-fuzz-${version}.tbz";
-    sha256 = "1cbzbawbn71mmpw8y84s1p2pbhc055w1znz64jvr00c7fdr9p8hc";
+    sha256 = "sha256-2b0v5RwutvyidzEDTEb5p33IvJ+3t2IW+KVxYD1ufXQ=";
   };
 
+  minimumOCamlVersion = "4.08";
   useDune2 = true;
 
   propagatedBuildInputs = [
-    fmt
-    uutf
-    jsonm
     base64
     either
+    fmt
+    jsonm
+    uutf
   ];
 
   meta = with lib; {
     description = "Dynamic type representations. Provides no stability guarantee";
     homepage = "https://github.com/mirage/repr";
     license = licenses.isc;
-    maintainers = [ maintainers.sternenseemann ];
+    maintainers = with maintainers; [ sternenseemann ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/repr/ppx.nix b/nixpkgs/pkgs/development/ocaml-modules/repr/ppx.nix
index a1112ef9ac74..7ef2c55c2c26 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/repr/ppx.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/repr/ppx.nix
@@ -1,4 +1,4 @@
-{ buildDunePackage, repr, ppxlib, ppx_deriving, alcotest, hex }:
+{ buildDunePackage, ppx_deriving, ppxlib, repr, alcotest, hex }:
 
 buildDunePackage {
   pname = "ppx_repr";
@@ -6,9 +6,9 @@ buildDunePackage {
   inherit (repr) src version useDune2;
 
   propagatedBuildInputs = [
-    repr
-    ppxlib
     ppx_deriving
+    ppxlib
+    repr
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/stdcompat/default.nix b/nixpkgs/pkgs/development/ocaml-modules/stdcompat/default.nix
new file mode 100644
index 000000000000..df5c1a58b17b
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/stdcompat/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchurl
+, ocaml, findlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-stdcompat";
+  version = "15";
+
+  src = fetchurl {
+    url = "https://github.com/thierry-martinez/stdcompat/releases/download/v${version}/stdcompat-${version}.tar.gz";
+    sha256 = "1xcwb529m4lg9cbnxa9m3x2nnl9nxzz1x5lxpvdfflg4zxl6yx2y";
+  };
+
+  buildInputs = [ ocaml findlib ];
+
+  configureFlags = "--libdir=$(OCAMLFIND_DESTDIR)";
+
+  meta = {
+    homepage = "https://github.com/thierry-martinez/stdcompat";
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.vbgl ];
+    inherit (ocaml.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix b/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix
index 2ee01ed82194..dadeb5a98eaf 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix
@@ -1,17 +1,17 @@
 { lib, fetchurl, buildDunePackage, ppx_sexp_conv, ppx_cstruct, cstruct
 , cstruct-sexp, sexplib, mirage-crypto, mirage-crypto-pk, mirage-crypto-rng
-, x509, domain-name, fmt, cstruct-unix, ounit2, ocaml_lwt, ptime
-, hacl_x25519, fiat-p256, hkdf, logs, alcotest }:
+, x509, domain-name, fmt, cstruct-unix, ounit2, ocaml_lwt, ptime, rresult
+, mirage-crypto-ec, hkdf, logs, alcotest }:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
-  version = "0.12.8";
+  version = "0.13.1";
   pname = "tls";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-tls/releases/download/v${version}/tls-v${version}.tbz";
-    sha256 = "0sgppvfnamfnsglw1cl801i1xqkxbs33g40kwmmqj2vqjcarm26a";
+    sha256 = "ca95fa59a82f7d38b0b495fc0cd1ff54e7728492a292895d0067c1ba9de81b7b";
   };
 
   useDune2 = true;
@@ -21,8 +21,8 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ ppx_sexp_conv ppx_cstruct cstruct cstruct-sexp
                             sexplib mirage-crypto mirage-crypto-pk mirage-crypto-rng
-                            x509 domain-name fmt ocaml_lwt ptime hacl_x25519 fiat-p256
-                            hkdf logs ];
+                            x509 domain-name fmt ocaml_lwt ptime mirage-crypto-ec
+                            hkdf logs rresult ];
 
   meta = with lib; {
     homepage = "https://github.com/mirleft/ocaml-tls";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tls/mirage.nix b/nixpkgs/pkgs/development/ocaml-modules/tls/mirage.nix
index ad81c03c35d0..18d0f08357d4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/tls/mirage.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/tls/mirage.nix
@@ -1,6 +1,6 @@
 { buildDunePackage, tls
 , x509, lwt, fmt, mirage-flow, mirage-kv, mirage-clock, ptime
-, mirage-crypto, mirage-crypto-pk, hacl_x25519, fiat-p256
+, mirage-crypto, mirage-crypto-pk, mirage-crypto-ec
 }:
 
 buildDunePackage {
@@ -19,8 +19,7 @@ buildDunePackage {
     ptime
     mirage-crypto
     mirage-crypto-pk
-    hacl_x25519
-    fiat-p256
+    mirage-crypto-ec
   ];
 
   meta = tls.meta // {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix b/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix
index bf0e06507c9e..c49327d7d338 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "tyxml";
-  version = "4.4.0";
+  version = "4.5.0";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocsigen/tyxml/releases/download/${version}/tyxml-${version}.tbz";
-    sha256 = "0c150h2f4c4id73ickkdqkir3jya66m6c7f5jxlp4caw9bfr8qsi";
+    sha256 = "0s30f72m457c3gbdmdwbx7ls9zg806nvm83aiz9qkpglbppwr6n6";
   };
 
   propagatedBuildInputs = [ uutf re ];
@@ -19,7 +19,7 @@ buildDunePackage rec {
     license = licenses.lgpl21;
     maintainers = with maintainers; [
       gal_bolle vbgl
-      ];
+    ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/uri/default.nix b/nixpkgs/pkgs/development/ocaml-modules/uri/default.nix
index 7933b3bd8d42..f669a98c4def 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/uri/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/uri/default.nix
@@ -5,13 +5,13 @@
 buildDunePackage rec {
   minimumOCamlVersion = "4.03";
   pname = "uri";
-  version = "4.0.0";
+  version = "4.2.0";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "13r9nkgym9z3dqxkyf0yyaqlrk5r3pjdw0kfzvrc90bmhwl9j380";
+    sha256 = "0szifda6yism5vn5jdizkha3ad0xk6zw4xgfl8g77dnv83ci7h65";
   };
 
   checkInputs = [ ounit ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/x509/default.nix b/nixpkgs/pkgs/development/ocaml-modules/x509/default.nix
index 637105361fda..0ce57b071689 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/x509/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/x509/default.nix
@@ -8,11 +8,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.07";
 
   pname = "x509";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-x509/releases/download/v${version}/x509-v${version}.tbz";
-    sha256 = "04g59j8sn8am0z0a94h8cyvr6cqzd5gkn2lj6g51nb5dkwajj19h";
+    sha256 = "4577c2a616bda45cc777869fc44e272397d63a029135a993df8937bcfd6f6c49";
   };
 
   useDune2 = true;
diff --git a/nixpkgs/pkgs/development/octave-modules/audio/default.nix b/nixpkgs/pkgs/development/octave-modules/audio/default.nix
index 4fafefd6f75d..0cb03746085a 100644
--- a/nixpkgs/pkgs/development/octave-modules/audio/default.nix
+++ b/nixpkgs/pkgs/development/octave-modules/audio/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , jack2
-, alsaLib
+, alsa-lib
 , rtmidi
 , pkg-config
 }:
@@ -22,7 +22,7 @@ buildOctavePackage rec {
 
   propagatedBuildInputs = [
     jack2
-    alsaLib
+    alsa-lib
     rtmidi
   ];
 
@@ -31,6 +31,6 @@ buildOctavePackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ KarlJoad ];
     description = "Audio and MIDI Toolbox for GNU Octave";
-    platforms = platforms.linux; # Because of run-time dependency on jack2 and alsaLib
+    platforms = platforms.linux; # Because of run-time dependency on jack2 and alsa-lib
   };
 }
diff --git a/nixpkgs/pkgs/development/perl-modules/TextBibTeX-use-lib-on-aarch64.patch b/nixpkgs/pkgs/development/perl-modules/TextBibTeX-use-lib-on-aarch64.patch
new file mode 100644
index 000000000000..42fa3728680b
--- /dev/null
+++ b/nixpkgs/pkgs/development/perl-modules/TextBibTeX-use-lib-on-aarch64.patch
@@ -0,0 +1,11 @@
+--- a/Build.PL
++++ b/Build.PL
+@@ -88,7 +88,7 @@ if ( $^O =~ /mswin32/i ) {
+     }
+ }
+ else {
+-    if ( $Config{archname} =~ /^x86_64|^ppc64|^s390x|^aarch64|^riscv64/ ) {
++    if ( $Config{archname} =~ /^x86_64|^ppc64|^s390x|^riscv64/ ) {
+         $libdir =~ s/\bbin\b/lib64/;
+         if ( !-d $libdir ) {
+             my $test = $libdir;
diff --git a/nixpkgs/pkgs/development/perl-modules/generic/default.nix b/nixpkgs/pkgs/development/perl-modules/generic/default.nix
index c7b57eae9067..9beacd65a646 100644
--- a/nixpkgs/pkgs/development/perl-modules/generic/default.nix
+++ b/nixpkgs/pkgs/development/perl-modules/generic/default.nix
@@ -5,10 +5,8 @@
 assert attrs?pname -> attrs?version;
 assert attrs?pname -> !(attrs?name);
 
-(if attrs ? name then
-  lib.trivial.warn "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
- else
-  (x: x))
+lib.warnIf (attrs ? name) "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
+
 toPerlModule(stdenv.mkDerivation (
   (
   lib.recursiveUpdate
diff --git a/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix b/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix
index bd5d1e91602d..88ef9f9efde8 100644
--- a/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix
+++ b/nixpkgs/pkgs/development/pharo/vm/build-vm-legacy.nix
@@ -10,9 +10,10 @@
 , libGL
 , freetype
 , xorg
-, alsaLib
+, alsa-lib
 , cairo
 , libuuid
+, libnsl
 , makeWrapper
 , ... }:
 
@@ -29,10 +30,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ unzip cmake gcc makeWrapper ];
 
   buildInputs = [ bash glibc openssl libGLU libGL freetype
-                  xorg.libX11 xorg.libICE xorg.libSM alsaLib cairo pharo-share ];
+                  xorg.libX11 xorg.libICE xorg.libSM alsa-lib cairo pharo-share libnsl ];
 
   LD_LIBRARY_PATH = lib.makeLibraryPath
-    [ cairo libGLU libGL freetype openssl libuuid alsaLib
+    [ cairo libGLU libGL freetype openssl libuuid alsa-lib
       xorg.libICE xorg.libSM ];
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/pharo/vm/build-vm.nix b/nixpkgs/pkgs/development/pharo/vm/build-vm.nix
index c1f703f72515..498e5c414727 100644
--- a/nixpkgs/pkgs/development/pharo/vm/build-vm.nix
+++ b/nixpkgs/pkgs/development/pharo/vm/build-vm.nix
@@ -8,7 +8,7 @@
 , libGLU, libGL
 , freetype
 , xorg
-, alsaLib
+, alsa-lib
 , cairo
 , libuuid
 , autoreconfHook
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
     xorg.libX11
     xorg.libICE
     xorg.libSM
-    alsaLib
+    alsa-lib
     cairo
     pharo-share
     libuuid
@@ -115,7 +115,7 @@ stdenv.mkDerivation rec {
       freetype
       openssl
       libuuid
-      alsaLib
+      alsa-lib
       xorg.libICE
       xorg.libSM
     ];
diff --git a/nixpkgs/pkgs/development/pharo/vm/vms.nix b/nixpkgs/pkgs/development/pharo/vm/vms.nix
index 77bc5b0682fb..a51366820a9d 100644
--- a/nixpkgs/pkgs/development/pharo/vm/vms.nix
+++ b/nixpkgs/pkgs/development/pharo/vm/vms.nix
@@ -11,7 +11,7 @@
 , libGLU, libGL
 , freetype
 , xorg
-, alsaLib
+, alsa-lib
 , cairo
 , libuuid
 , autoreconfHook
@@ -19,6 +19,7 @@
 , fetchFromGitHub
 , makeWrapper
 , runtimeShell
+, libnsl
 } @args:
 
 let
diff --git a/nixpkgs/pkgs/development/php-packages/apcu/default.nix b/nixpkgs/pkgs/development/php-packages/apcu/default.nix
index 3301d949c228..0cfc7b4b44fd 100644
--- a/nixpkgs/pkgs/development/php-packages/apcu/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/apcu/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre' }:
+{ buildPecl, lib, pcre2 }:
 
 buildPecl {
   pname = "apcu";
@@ -6,12 +6,17 @@ buildPecl {
   version = "5.1.20";
   sha256 = "sha256-uZ1A+v7Ab00TL87lPnUm3b/B0EHqbgThc4nfrSj5w5A=";
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
   doCheck = true;
   checkTarget = "test";
   checkFlagsArray = [ "REPORT_EXIT_STATUS=1" "NO_INTERACTION=1" ];
   makeFlags = [ "phpincludedir=$(dev)/include" ];
   outputs = [ "out" "dev" ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Userland cache for PHP";
+    license = licenses.php301;
+    homepage = "https://pecl.php.net/package/APCu";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/apcu_bc/default.nix b/nixpkgs/pkgs/development/php-packages/apcu_bc/default.nix
index 132a25a2df4c..e487a075dbde 100644
--- a/nixpkgs/pkgs/development/php-packages/apcu_bc/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/apcu_bc/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre', php }:
+{ buildPecl, lib, pcre2, php }:
 
 buildPecl {
   pname = "apcu_bc";
@@ -8,11 +8,17 @@ buildPecl {
 
   peclDeps = [ php.extensions.apcu ];
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
   postInstall = ''
     mv $out/lib/php/extensions/apc.so $out/lib/php/extensions/apcu_bc.so
   '';
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "APCu Backwards Compatibility Module";
+    license = licenses.php301;
+    homepage = "https://pecl.php.net/package/apcu_bc";
+    maintainers = teams.php.members;
+    broken = versionAtLeast php.version "8";
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/ast/default.nix b/nixpkgs/pkgs/development/php-packages/ast/default.nix
index fb609b9f04f2..03cd439867a6 100644
--- a/nixpkgs/pkgs/development/php-packages/ast/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/ast/default.nix
@@ -6,5 +6,10 @@ buildPecl {
   version = "1.0.10";
   sha256 = "13s5r1szd80g1mqickghdd38mvjkwss221322mmbrykcfgp4fs30";
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Exposes the abstract syntax tree generated by PHP";
+    license = licenses.bsd3;
+    homepage = "https://pecl.php.net/package/ast";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/composer/1.x.nix b/nixpkgs/pkgs/development/php-packages/composer/1.x.nix
deleted file mode 100644
index 4660da9532dc..000000000000
--- a/nixpkgs/pkgs/development/php-packages/composer/1.x.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
-let
-  pname = "composer";
-  version = "1.10.15";
-in
-mkDerivation {
-  inherit pname version;
-
-  src = fetchurl {
-    url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "1shsxsrc2kq74s1jbq3njn9wzidcz7ak66n9vyz8z8d0hqpg37d6";
-  };
-
-  dontUnpack = true;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    install -D $src $out/libexec/composer/composer.phar
-    makeWrapper ${php}/bin/php $out/bin/composer \
-      --add-flags "$out/libexec/composer/composer.phar" \
-      --prefix PATH : ${lib.makeBinPath [ unzip ]}
-  '';
-
-  meta = with lib; {
-    description = "Dependency Manager for PHP";
-    license = licenses.mit;
-    homepage = "https://getcomposer.org/";
-    maintainers = with maintainers; [ offline ] ++ teams.php.members;
-  };
-}
diff --git a/nixpkgs/pkgs/development/php-packages/composer/default.nix b/nixpkgs/pkgs/development/php-packages/composer/default.nix
index a7be06f1d049..aaa698e6d0c6 100644
--- a/nixpkgs/pkgs/development/php-packages/composer/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/composer/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
 let
   pname = "composer";
-  version = "2.0.12";
+  version = "2.1.3";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "sha256-guqMFTfPrOt+VvYATHzN+Z3a/OcjfAc3TZIOY1cwpjE=";
+    sha256 = "04ad2zsnf8qi6hzs9sak6y8xxyx8l0f7crmcimnp7nn8vsc2x9zq";
   };
 
   dontUnpack = true;
@@ -16,17 +16,20 @@ mkDerivation {
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     install -D $src $out/libexec/composer/composer.phar
     makeWrapper ${php}/bin/php $out/bin/composer \
       --add-flags "$out/libexec/composer/composer.phar" \
       --prefix PATH : ${lib.makeBinPath [ unzip ]}
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Dependency Manager for PHP";
     license = licenses.mit;
     homepage = "https://getcomposer.org/";
+    changelog = "https://github.com/composer/composer/releases/tag/${version}";
     maintainers = with maintainers; [ offline ] ++ teams.php.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/couchbase/default.nix b/nixpkgs/pkgs/development/php-packages/couchbase/default.nix
index 24d4e02a3286..0b34ffe780a8 100644
--- a/nixpkgs/pkgs/development/php-packages/couchbase/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/couchbase/default.nix
@@ -14,7 +14,6 @@ buildPecl {
   };
 
   configureFlags = [ "--with-couchbase" ];
-  broken = lib.versionAtLeast php.version "8.0";
 
   buildInputs = [ libcouchbase zlib ];
   internalDeps = lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ];
@@ -45,5 +44,11 @@ buildPecl {
     '')
   ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Couchbase Server PHP extension";
+    license = licenses.asl20;
+    homepage = "https://docs.couchbase.com/php-sdk/current/project-docs/sdk-release-notes.html";
+    maintainers = teams.php.members;
+    broken = versionAtLeast php.version "8.0";
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/deployer/default.nix b/nixpkgs/pkgs/development/php-packages/deployer/default.nix
new file mode 100644
index 000000000000..7679fb5ea51b
--- /dev/null
+++ b/nixpkgs/pkgs/development/php-packages/deployer/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, fetchurl, makeWrapper, installShellFiles, lib, php }:
+
+mkDerivation rec {
+  pname = "deployer";
+  version = "6.8.0";
+
+  src = fetchurl {
+    url = "https://deployer.org/releases/v${version}/${pname}.phar";
+    sha256 = "09mxwfa7yszsiljbkxpsd4sghqngl08cn18v4g1fbsxp3ib3kxi5";
+  };
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -D $src $out/libexec/deployer/deployer.phar
+    makeWrapper ${php}/bin/php $out/bin/dep --add-flags "$out/libexec/deployer/deployer.phar"
+
+    # fish support currently broken: https://github.com/deployphp/deployer/issues/2527
+    installShellCompletion --cmd dep \
+      --bash <($out/bin/dep autocomplete --install) \
+      --zsh <($out/bin/dep autocomplete --install)
+  '';
+
+  meta = with lib; {
+    description = "A deployment tool for PHP";
+    license = licenses.mit;
+    homepage = "https://deployer.org/";
+    maintainers = with maintainers; teams.php.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/php-packages/igbinary/default.nix b/nixpkgs/pkgs/development/php-packages/igbinary/default.nix
index 7a321cc90b4e..9e710f3c3d1e 100644
--- a/nixpkgs/pkgs/development/php-packages/igbinary/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/igbinary/default.nix
@@ -10,5 +10,10 @@ buildPecl {
   makeFlags = [ "phpincludedir=$(dev)/include" ];
   outputs = [ "out" "dev" ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Binary serialization for PHP";
+    license = licenses.bsd3;
+    homepage = "https://github.com/igbinary/igbinary/";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/imagick/default.nix b/nixpkgs/pkgs/development/php-packages/imagick/default.nix
index ebff9b00f02c..1af4f1a23b47 100644
--- a/nixpkgs/pkgs/development/php-packages/imagick/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/imagick/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre' }:
+{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre2 }:
 
 buildPecl {
   pname = "imagick";
@@ -21,7 +21,12 @@ buildPecl {
 
   configureFlags = [ "--with-imagick=${imagemagick.dev}" ];
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Imagick is a native php extension to create and modify images using the ImageMagick API";
+    license = licenses.php301;
+    homepage = "https://pecl.php.net/package/imagick";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/mailparse/default.nix b/nixpkgs/pkgs/development/php-packages/mailparse/default.nix
index 820bbbdbad6b..1981b3d6aea2 100644
--- a/nixpkgs/pkgs/development/php-packages/mailparse/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/mailparse/default.nix
@@ -11,5 +11,10 @@ buildPecl {
     echo "#define HAVE_MBSTRING 1" >> config.h
   '';
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Mailparse is an extension for parsing and working with email messages";
+    license = licenses.php301;
+    homepage = "https://pecl.php.net/package/mailparse";
+    maintainers = lib.teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix b/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix
index 9a5a96e15c23..ae7ef3d0602f 100644
--- a/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/maxminddb/default.nix
@@ -19,6 +19,7 @@ buildPecl {
   meta = with lib; {
     description = "C extension that is a drop-in replacement for MaxMind\\Db\\Reader";
     license = with licenses; [ asl20 ];
+    homepage = "https://github.com/maxmind/MaxMind-DB-Reader-php";
     maintainers = with maintainers; [ ajs124 das_j ] ++ teams.php.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/memcached/default.nix b/nixpkgs/pkgs/development/php-packages/memcached/default.nix
index 4880e08e0629..0aea58572cba 100644
--- a/nixpkgs/pkgs/development/php-packages/memcached/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/memcached/default.nix
@@ -26,5 +26,10 @@ buildPecl {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ cyrus_sasl zlib ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "PHP extension for interfacing with memcached via libmemcached library";
+    license = licenses.php301;
+    homepage = "https://github.com/php-memcached-dev/php-memcached";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/mongodb/default.nix b/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
index 95e51892f04e..f8cd990d2670 100644
--- a/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPecl, lib, pcre', pkg-config, cyrus_sasl, icu64
+{ stdenv, buildPecl, lib, pcre2, pkg-config, cyrus_sasl, icu64
 , openssl, snappy, zlib, darwin }:
 
 buildPecl {
@@ -14,8 +14,13 @@ buildPecl {
     openssl
     snappy
     zlib
-    pcre'
+    pcre2
   ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "MongoDB driver for PHP";
+    license = licenses.asl20;
+    homepage = "https://docs.mongodb.com/drivers/php/";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/oci8/default.nix b/nixpkgs/pkgs/development/php-packages/oci8/default.nix
index eeaffb4b7fc9..eb65b5a27cda 100644
--- a/nixpkgs/pkgs/development/php-packages/oci8/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/oci8/default.nix
@@ -11,5 +11,10 @@ buildPecl {
     sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${oracle-instantclient.dev}/include"|' config.m4
   '';
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Extension for Oracle Database";
+    license = licenses.php301;
+    homepage = "https://pecl.php.net/package/oci8";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/pcov/default.nix b/nixpkgs/pkgs/development/php-packages/pcov/default.nix
index 1422e1b176d4..8511ccbebc54 100644
--- a/nixpkgs/pkgs/development/php-packages/pcov/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/pcov/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre' }:
+{ buildPecl, lib, pcre2 }:
 
 buildPecl {
   pname = "pcov";
@@ -6,7 +6,12 @@ buildPecl {
   version = "1.0.8";
   sha256 = "sha256-6rbniyxLIHPW/e+eWZN1qS8F1rOB7ld1N8JKUS1geRQ=";
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "A self contained php-code-coverage compatible driver for PHP.";
+    license = licenses.php301;
+    homepage = "https://github.com/krakjoe/pcov";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/pdlib/default.nix b/nixpkgs/pkgs/development/php-packages/pdlib/default.nix
index e217edd29ef7..5a1e431d52d8 100644
--- a/nixpkgs/pkgs/development/php-packages/pdlib/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/pdlib/default.nix
@@ -19,6 +19,7 @@ buildPecl {
   meta = with lib; {
     description = "A PHP extension for Dlib";
     license = with licenses; [ mit ];
+    homepage = "https://github.com/goodspb/pdlib";
     maintainers = lib.teams.php.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix b/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix
index d80944ada09f..ab7e6e71fea5 100644
--- a/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/pdo_sqlsrv/default.nix
@@ -10,5 +10,10 @@ buildPecl {
 
   buildInputs = [ unixODBC ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Microsoft Drivers for PHP for SQL Server";
+    license = licenses.mit;
+    homepage = "https://github.com/Microsoft/msphpsql";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/php_excel/default.nix b/nixpkgs/pkgs/development/php-packages/php_excel/default.nix
index 8b83f558a53a..0930926a06e0 100644
--- a/nixpkgs/pkgs/development/php-packages/php_excel/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/php_excel/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, fetchurl, lib, libxl }:
+{ buildPecl, fetchurl, lib, libxl, php }:
 let
   pname = "php_excel";
   phpVersion = "php7";
@@ -20,5 +20,11 @@ buildPecl {
     "--with-libxl-libdir=${libxl}/lib"
   ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "PHP Extension interface to the Excel writing/reading library";
+    license = licenses.php301;
+    homepage = "https://github.com/iliaal/php_excel";
+    maintainers = lib.teams.php.members;
+    broken = lib.versionAtLeast php.version "8.0";
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix b/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix
index da114a4d348f..caf3b515aabb 100644
--- a/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpcbf/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, lib, php, makeWrapper }:
 let
   pname = "phpcbf";
-  version = "3.5.8";
+  version = "3.6.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcbf.phar";
-    sha256 = "15ci30yvw3p9zlmzsk9s4mxzb3wax3gl9p55slhf1bzwn1xxwyb0";
+    sha256 = "04wb1imm4934mpy2hxcmqh4cn7md1vwmfii39p6mby809325b5z1";
   };
 
   phases = [ "installPhase" ];
diff --git a/nixpkgs/pkgs/development/php-packages/phpcs/default.nix b/nixpkgs/pkgs/development/php-packages/phpcs/default.nix
index d2053dbe9cb7..87433066ea99 100644
--- a/nixpkgs/pkgs/development/php-packages/phpcs/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpcs/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "phpcs";
-  version = "3.5.8";
+  version = "3.6.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcs.phar";
-    sha256 = "037mdnpbgd9xaj556pf14h02a4a6f5zzdg58p2z1sivxcygf8aka";
+    sha256 = "0sdi78hrwd3r5p1b38qmp89m41kfszh2qn4n5zhq2dmhsjdhjziz";
   };
 
   phases = [ "installPhase" ];
diff --git a/nixpkgs/pkgs/development/php-packages/phpmd/default.nix b/nixpkgs/pkgs/development/php-packages/phpmd/default.nix
index fde674701eb2..bf6979f88eae 100644
--- a/nixpkgs/pkgs/development/php-packages/phpmd/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpmd/default.nix
@@ -2,8 +2,6 @@
 let
   pname = "phpmd";
   version = "2.8.2";
-
-  isPhp74 = lib.versionAtLeast php.version "7.4";
 in
 mkDerivation {
   inherit pname version;
@@ -28,6 +26,6 @@ mkDerivation {
     license = licenses.bsd3;
     homepage = "https://phpmd.org/";
     maintainers = teams.php.members;
-    broken = !isPhp74;
+    broken = versionAtLeast php.version "7.4";
   };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/pinba/default.nix b/nixpkgs/pkgs/development/php-packages/pinba/default.nix
index 0880c2a46e21..0373e74d9fca 100644
--- a/nixpkgs/pkgs/development/php-packages/pinba/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/pinba/default.nix
@@ -1,24 +1,15 @@
 { buildPecl, lib, fetchFromGitHub, php }:
-let
-  pname = "pinba";
-
-  isPhp73 = lib.versionAtLeast php.version "7.3";
 
-  version = if isPhp73 then "1.1.2-dev" else "1.1.1";
+buildPecl {
+  pname = "pinba";
+  version = "1.1.2-dev";
 
-  src = fetchFromGitHub ({
+  src = fetchFromGitHub {
     owner = "tony2001";
     repo = "pinba_extension";
-  } // (if (isPhp73) then {
     rev = "edbc313f1b4fb8407bf7d5acf63fbb0359c7fb2e";
     sha256 = "02sljqm6griw8ccqavl23f7w1hp2zflcv24lpf00k6pyrn9cwx80";
-  } else {
-    rev = "RELEASE_1_1_1";
-    sha256 = "1kdp7vav0y315695vhm3xifgsh6h6y6pny70xw3iai461n58khj5";
-  }));
-in
-buildPecl {
-  inherit pname version src;
+  };
 
   meta = with lib; {
     description = "PHP extension for Pinba";
@@ -26,6 +17,7 @@ buildPecl {
       Pinba is a MySQL storage engine that acts as a realtime monitoring and
       statistics server for PHP using MySQL as a read-only interface.
     '';
+    license = licenses.lgpl2Plus;
     homepage = "http://pinba.org/";
     maintainers = teams.php.members;
   };
diff --git a/nixpkgs/pkgs/development/php-packages/protobuf/default.nix b/nixpkgs/pkgs/development/php-packages/protobuf/default.nix
index e2ef068120d7..2112e84cffff 100644
--- a/nixpkgs/pkgs/development/php-packages/protobuf/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/protobuf/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre', fetchpatch }:
+{ buildPecl, lib, pcre2, fetchpatch }:
 
 buildPecl {
   pname = "protobuf";
@@ -6,7 +6,7 @@ buildPecl {
   version = "3.14.0";
   sha256 = "1ldc4s28hq61cfg8l4c06pgicj0ng7k37f28a0dnnbs7xkr7cibd";
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
   patches = [
     # TODO: remove with next update
diff --git a/nixpkgs/pkgs/development/php-packages/psysh/default.nix b/nixpkgs/pkgs/development/php-packages/psysh/default.nix
index 514706dc178c..c12eb6b4585b 100644
--- a/nixpkgs/pkgs/development/php-packages/psysh/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/psysh/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "psysh";
-  version = "0.10.4";
+  version = "0.10.8";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/bobthecow/psysh/releases/download/v${version}/psysh-v${version}.tar.gz";
-    sha256 = "005xh5rz12bsy9yvzzr69zpr0p7v4sh6cafhpinpfrvbwfq068f1";
+    sha256 = "sha256-6opSBKR5eI5HlaJy4A94JrxYfUtCCNVlyntmLZbWfOE=";
   };
 
   phases = [ "installPhase" ];
diff --git a/nixpkgs/pkgs/development/php-packages/pthreads/default.nix b/nixpkgs/pkgs/development/php-packages/pthreads/default.nix
deleted file mode 100644
index 31b32e82967d..000000000000
--- a/nixpkgs/pkgs/development/php-packages/pthreads/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ buildPecl, lib, fetchFromGitHub, php, pcre' }:
-let
-  pname = "pthreads";
-
-  isPhp73 = lib.versionAtLeast php.version "7.3";
-  isPhp74 = lib.versionAtLeast php.version "7.4";
-
-  version = if isPhp73 then "3.2.0-dev" else "3.2.0";
-
-  src = fetchFromGitHub ({
-    owner = "krakjoe";
-    repo = "pthreads";
-  } // (if (isPhp73) then {
-    rev = "4d1c2483ceb459ea4284db4eb06646d5715e7154";
-    sha256 = "07kdxypy0bgggrfav2h1ccbv67lllbvpa3s3zsaqci0gq4fyi830";
-  } else {
-    rev = "v3.2.0";
-    sha256 = "17hypm75d4w7lvz96jb7s0s87018yzmmap0l125d5fd7abnhzfvv";
-  }));
-in
-buildPecl {
-  inherit pname version src;
-
-  buildInputs = [ pcre'.dev ];
-
-  meta.broken = isPhp74;
-  meta.maintainers = lib.teams.php.members;
-}
diff --git a/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix b/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix
index 0e78d3bbc976..1b963a01ad5d 100644
--- a/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/rdkafka/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, rdkafka, pcre' }:
+{ buildPecl, lib, rdkafka, pcre2 }:
 
 buildPecl {
   pname = "rdkafka";
@@ -6,7 +6,7 @@ buildPecl {
   version = "5.0.0";
   sha256 = "sha256-Qy+6rkPczhdxFbDhcuzmUTLMPUXYZ0HaheDBhkh4FXs=";
 
-  buildInputs = [ rdkafka pcre' ];
+  buildInputs = [ rdkafka pcre2 ];
 
   postPhpize = ''
     substituteInPlace configure \
@@ -15,6 +15,7 @@ buildPecl {
 
   meta = with lib; {
     description = "Kafka client based on librdkafka";
+    license = licenses.mit;
     homepage = "https://github.com/arnaud-lb/php-rdkafka";
     maintainers = teams.php.members;
   };
diff --git a/nixpkgs/pkgs/development/php-packages/redis/default.nix b/nixpkgs/pkgs/development/php-packages/redis/default.nix
index fedc7a7ffde2..35e9a909b377 100644
--- a/nixpkgs/pkgs/development/php-packages/redis/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/redis/default.nix
@@ -14,5 +14,10 @@ buildPecl {
     hash
   ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "PHP extension for interfacing with Redis";
+    license = licenses.php301;
+    homepage = "https://github.com/phpredis/phpredis/";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/smbclient/default.nix b/nixpkgs/pkgs/development/php-packages/smbclient/default.nix
index 0b485e048052..65cfad9ea3ad 100644
--- a/nixpkgs/pkgs/development/php-packages/smbclient/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/smbclient/default.nix
@@ -10,5 +10,10 @@ buildPecl {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ samba ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "PHP wrapper for libsmbclient";
+    license = licenses.bsd2;
+    homepage = "https://github.com/eduardok/libsmbclient-php";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/snuffleupagus/default.nix b/nixpkgs/pkgs/development/php-packages/snuffleupagus/default.nix
new file mode 100644
index 000000000000..4318a49a8aa5
--- /dev/null
+++ b/nixpkgs/pkgs/development/php-packages/snuffleupagus/default.nix
@@ -0,0 +1,53 @@
+{ buildPecl
+, lib
+, php
+, fetchFromGitHub
+, pcre2
+, fetchpatch
+}:
+
+buildPecl rec {
+  pname = "snuffleupagus";
+  version = "0.7.0";
+  src = fetchFromGitHub {
+    owner = "jvoisin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1la6wa9xznc110b7isiy502x71mkvhisq6m8llhczpq4rs4nbcw2";
+  };
+
+  buildInputs = [
+    pcre2
+  ];
+
+  internalDeps = with php.extensions; [
+    session
+  ] ++ lib.optionals (lib.versionOlder php.version "7.4") [
+    hash
+  ];
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/jvoisin/snuffleupagus/commit/3c528d9d03cec872382a6f400b5701a8fbfd59b4.patch";
+      sha256 = "0lnj4xcl867f477mha697d1py1nwxhl18dvvg40qgflpdbywlzns";
+      stripLen = 1;
+    })
+  ];
+
+  sourceRoot = "source/src";
+
+  configureFlags = [
+    "--enable-snuffleupagus"
+  ];
+
+  postPhpize = ''
+    ./configure --enable-snuffleupagus
+  '';
+
+  meta = with lib; {
+    description = "Security module for php7 and php8 - Killing bugclasses and virtual-patching the rest!";
+    license = licenses.lgpl3Only;
+    homepage = "https://github.com/jvoisin/snuffleupagus";
+    maintainers = teams.php.members ++ [ maintainers.zupo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix b/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix
index 4522129b2aa3..37ff1cb187ee 100644
--- a/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/sqlsrv/default.nix
@@ -10,5 +10,10 @@ buildPecl {
     unixODBC
   ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Microsoft Drivers for PHP for SQL Server";
+    license = licenses.mit;
+    homepage = "https://github.com/Microsoft/msphpsql";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/swoole/default.nix b/nixpkgs/pkgs/development/php-packages/swoole/default.nix
index b3d43acd1b32..ef228c2ddc3e 100644
--- a/nixpkgs/pkgs/development/php-packages/swoole/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/swoole/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPecl, php, valgrind, pcre' }:
+{ lib, buildPecl, php, valgrind, pcre2 }:
 
 buildPecl {
   pname = "swoole";
@@ -6,7 +6,7 @@ buildPecl {
   version = "4.6.4";
   sha256 = "0hgndnn27q7fbsb0nw6bfdg0kyy5di9vrmf7g53jc6lsnf73ha31";
 
-  buildInputs = [ valgrind pcre' ];
+  buildInputs = [ valgrind pcre2 ];
   internalDeps = lib.optionals (lib.versionOlder php.version "7.4") [ php.extensions.hash ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/php-packages/xdebug/default.nix b/nixpkgs/pkgs/development/php-packages/xdebug/default.nix
index 56341be436a0..eaadb4b1f544 100644
--- a/nixpkgs/pkgs/development/php-packages/xdebug/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/xdebug/default.nix
@@ -11,5 +11,10 @@ buildPecl {
 
   zendExtension = true;
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "Provides functions for function traces and profiling";
+    license = licenses.php301;
+    homepage = "https://xdebug.org/";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/php-packages/yaml/default.nix b/nixpkgs/pkgs/development/php-packages/yaml/default.nix
index 9bd30ff4e3c4..ef58b315faee 100644
--- a/nixpkgs/pkgs/development/php-packages/yaml/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/yaml/default.nix
@@ -10,5 +10,10 @@ buildPecl {
 
   nativeBuildInputs = [ pkg-config ];
 
-  meta.maintainers = lib.teams.php.members;
+  meta = with lib; {
+    description = "YAML-1.1 parser and emitter";
+    license = licenses.mit;
+    homepage = "http://bd808.com/pecl-file_formats-yaml/";
+    maintainers = teams.php.members;
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/Babel/default.nix b/nixpkgs/pkgs/development/python-modules/Babel/default.nix
index 1074d2eef48c..183478396eb7 100644
--- a/nixpkgs/pkgs/development/python-modules/Babel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Babel/default.nix
@@ -1,38 +1,17 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, fetchpatch, pytz, pytest, freezegun, glibcLocales }:
+{ stdenv, lib, buildPythonPackage, fetchPypi, pytz, pytestCheckHook, freezegun }:
 
 buildPythonPackage rec {
   pname = "Babel";
-  version = "2.7.0";
+  version = "2.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28";
+    sha256 = "018yg7g2pa6vjixx1nx41cfispgfi0azzp0a1chlycbj8jsil0ys";
   };
 
-  patches = [
-    # The following 2 patches fix the test suite failing on nix < 2.3 with
-    # Python < 3 because those nix versions do not run in a pseudoterminal,
-    # which makes Python 2 not set the default encoding to UTF-8, and the
-    # Babel code crashes when printing a warning in that case.
-    # See #75676 and https://github.com/python-babel/babel/pull/691.
-    # It is important to fix this because otherwise Babel is not buildable
-    # with older nix versions (e.g. on machines used as --builders).
-    # TODO: Remove at release > 2.8.0.
-    (fetchpatch {
-      name = "Babel-Introduce-invariant-that-invalid_pofile-takes-unicode-line.patch";
-      url = "https://github.com/python-babel/babel/commit/f4f6653e6aa053724d2c6dc0ee71dcb928013352.patch";
-      sha256 = "1kyknwn9blspcf9yxmgdiaxdii1dnkblyhcflqwhxyl1mss1dxv5";
-    })
-    (fetchpatch {
-      name = "Babel-Fix-unicode-printing-error-on-Python-2-without-TTY.patch";
-      url = "https://github.com/python-babel/babel/commit/da7f31143847659b6b74d802618b03438aceb350.patch";
-      sha256 = "09yny8614knr8ngrrddmqzkxk70am135rccv2ncc6dji4xbqbfln";
-    })
-  ];
-
   propagatedBuildInputs = [ pytz ];
 
-  checkInputs = [ pytest freezegun ];
+  checkInputs = [ pytestCheckHook freezegun ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix b/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix
index 74884f36f033..7a3967404c94 100644
--- a/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/FormEncode/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, dnspython, pycountry, nose, setuptools_scm, six, isPy27 }:
+{ lib, buildPythonPackage, fetchPypi, dnspython, pycountry, nose, setuptools-scm, six, isPy27 }:
 
 buildPythonPackage rec {
   pname = "FormEncode";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
   '';
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six ];
 
   checkInputs = [ dnspython pycountry nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/Markups/default.nix b/nixpkgs/pkgs/development/python-modules/Markups/default.nix
index 012f31c266b2..d997b120d3bf 100644
--- a/nixpkgs/pkgs/development/python-modules/Markups/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Markups/default.nix
@@ -5,6 +5,7 @@
 , markdown
 , docutils
 , pygments
+, pyyaml
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "e309d79dde0935576ce1def6752f2127a12e2c2ea2ae8b0c69f99ff8bc12181d";
   };
 
-  checkInputs = [ markdown docutils pygments ];
+  checkInputs = [ markdown docutils pygments pyyaml ];
   propagatedBuildInputs = [ python-markdown-math ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix b/nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix
deleted file mode 100644
index e4ce48158f64..000000000000
--- a/nixpkgs/pkgs/development/python-modules/MechanicalSoup/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ fetchPypi, buildPythonPackage, lib
-, requests, beautifulsoup4, six, lxml
-, pytestrunner, requests-mock, pytestcov, pytest
-}:
-
-buildPythonPackage rec {
-  pname = "MechanicalSoup";
-  version = "1.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "37d3b15c1957917d3ae171561e77f4dd4c08c35eb4500b8781f6e7e1bb6c4d07";
-  };
-
-  checkInputs = [ pytest pytestrunner requests-mock pytestcov ];
-
-  propagatedBuildInputs = [ lxml requests beautifulsoup4 six ];
-
-  # Requires network
-  doCheck = false;
-
-  postPatch = ''
-    # Is in setup_requires but not used in setup.py...
-    substituteInPlace setup.py --replace "'pytest-runner'" ""
-  '';
-
-  meta = with lib; {
-    description = "A Python library for automating interaction with websites";
-    homepage = "https://github.com/hickford/MechanicalSoup";
-    license = licenses.mit;
-    maintainers = [ maintainers.jgillich ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/Nikola/default.nix b/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
index d8c49c99eba3..17a6e4d6a899 100644
--- a/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
@@ -1,79 +1,112 @@
 { lib
-, stdenv
+, aiohttp
+, Babel
+, blinker
 , buildPythonPackage
-, isPy3k
-, fetchPypi
-, doit
-, glibcLocales
-, pytest
-, pytestcov
-, mock
-, pygments
-, pillow
 , dateutil
 , docutils
-, Mako
-, unidecode
+, doit
+, fetchPypi
+, freezegun
+, ghp-import
+, hsluv
+, html5lib
+, ipykernel
+, jinja2
 , lxml
-, Yapsy
-, PyRSS2Gen
-, Logbook
-, blinker
-, natsort
-, requests
-, piexif
+, Mako
 , markdown
-, phpserialize
-, jinja2
-, Babel
-, freezegun
-, toml
+, micawber
+, mock
+, natsort
 , notebook
+, phpserialize
+, piexif
+, pillow
+, pygal
+, pygments
+, pyphen
+, PyRSS2Gen
+, pytestCheckHook
+, pythonOlder
+, requests
 , ruamel_yaml
-, aiohttp
+, stdenv
+, toml
+, typogrify
+, unidecode
 , watchdog
+, Yapsy
 }:
 
 buildPythonPackage rec {
   pname = "Nikola";
   version = "8.1.3";
-
-  # Nix contains only Python 3 supported version of doit, which is a dependency
-  # of Nikola. Python 2 support would require older doit 0.29.0 (which on the
-  # other hand doesn't support Python 3.3). So, just disable Python 2.
-  disabled = !isPy3k;
-
-  checkInputs = [ pytest pytestcov mock glibcLocales freezegun ];
-
-  propagatedBuildInputs = [
-    # requirements.txt
-    doit pygments pillow dateutil docutils Mako markdown unidecode
-    lxml Yapsy PyRSS2Gen Logbook blinker natsort requests piexif Babel
-    # requirements-extras.txt
-    phpserialize jinja2 toml notebook ruamel_yaml aiohttp watchdog
-  ];
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "05eac356bb4273cdd05d2dd6ad676226133496c457af91987c3f0d40e2fe57ef";
   };
 
-  patchPhase = ''
-    # upstream added bound so that requires.io doesn't send mails about update
-    # nikola should work with markdown 3.0: https://github.com/getnikola/nikola/pull/3175#issue-220147596
-    sed -i 's/Markdown>.*/Markdown/' requirements.txt
-  '';
+  propagatedBuildInputs = [
+    aiohttp
+    Babel
+    blinker
+    dateutil
+    docutils
+    doit
+    ghp-import
+    hsluv
+    html5lib
+    ipykernel
+    jinja2
+    lxml
+    Mako
+    markdown
+    micawber
+    natsort
+    notebook
+    phpserialize
+    piexif
+    pillow
+    pygal
+    pygments
+    pyphen
+    PyRSS2Gen
+    requests
+    ruamel_yaml
+    toml
+    typogrify
+    unidecode
+    watchdog
+    Yapsy
+  ];
+
+  checkInputs = [
+    freezegun
+    mock
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" py.test .
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov nikola --cov-report term-missing" ""
   '';
 
-  meta = {
+  disabledTests = [
+    # AssertionError
+    "test_compiling_markdown"
+  ];
+
+  pythonImportsCheck = [ "nikola" ];
+
+  meta = with lib; {
+    description = "Static website and blog generator";
     homepage = "https://getnikola.com/";
-    description = "A modular, fast, simple, static website and blog generator";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ jluttine ];
-    # all tests fail
+    license = licenses.mit;
+    maintainers = with maintainers; [ jluttine ];
+    # All tests fail
     broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix b/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
index cfbf3be1c40c..aee4789f93bf 100644
--- a/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "PyRMVtransport";
-  version = "0.3.1";
+  version = "0.3.2";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "cgtobi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1savzndg8l7rrc5dgzgsrdz9hnnjfv6qs5drznqmdw4f2rq84ypa";
+    sha256 = "0m74m3dhxmbv10hsvs7cpshzs3pg66va5lyq94i5j1nxrl9i7spb";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/accuweather/default.nix b/nixpkgs/pkgs/development/python-modules/accuweather/default.nix
index 01a299c89fde..ccacef6df575 100644
--- a/nixpkgs/pkgs/development/python-modules/accuweather/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/accuweather/default.nix
@@ -11,20 +11,20 @@
 
 buildPythonPackage rec {
   pname = "accuweather";
-  version = "0.1.1";
+  version = "0.2.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
     rev = version;
-    sha256 = "sha256-fjOwa13hxY8/gCM6TCAFWVmEY1oZyqKyc6o3OSsxHpY=";
+    sha256 = "sha256-Swe8vegRcyaeG4n/8aeGFLrXkwcLM/Al53yD6oD/0GA=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "pytest-runner" ""
-    substituteInPlace pytest.ini \
+    substituteInPlace setup.cfg \
       --replace "--cov --cov-report term-missing" ""
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
index c979104914da..76e8a8401fd4 100644
--- a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm, fusepy, fuse
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm, fusepy, fuse
 , openssl }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     substituteInPlace tests/monkey.py --replace /etc/ssl/openssl.cnf ${openssl.out}/etc/ssl/openssl.cnf
   '';
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   checkInputs = [ fusepy fuse ];
 
   doCheck = false; # seems to hang, not sure
diff --git a/nixpkgs/pkgs/development/python-modules/acoustics/default.nix b/nixpkgs/pkgs/development/python-modules/acoustics/default.nix
index 7b62c6791cb1..b652c28c6293 100644
--- a/nixpkgs/pkgs/development/python-modules/acoustics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acoustics/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   checkPhase = ''
     pushd tests
-    py.test ./.
+    py.test -Wignore::DeprecationWarning ./.
     popd
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 2345f8cae469..64df2e02759c 100644
--- a/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.6.0";
+  version = "3.13.4";
 
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    sha256 = "sha256-096bMTAh5d2wikrmlDcUspD9GYZlPHbdDcf/e/BLAHI=";
+    sha256 = "sha256-e8hliPYLvHR3JjZ4AFgJWjPW1vK10BYuVqUYtF54J5c=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix b/nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix
index 59eb468868a8..62922efa530c 100644
--- a/nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adb-enhanced/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "adb-enhanced";
-  version = "2.5.10";
+  version = "2.5.11";
 
   disabled = pythonOlder "3.4";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "ashishb";
     repo = pname;
     rev = version;
-    sha256 = "sha256-JMbcOk9Yr4WbfVUMKe5zZZWvvjKwhpPMdBt9d7xE6ek=";
+    sha256 = "sha256-jb5O7Qxk2xAX5sax6nqywcGBJao5Xfff9s1yvdfvDCs=";
   };
 
   postPatch = ''
@@ -30,5 +30,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ashishb/adb-enhanced";
     license = licenses.asl20;
     maintainers = with maintainers; [ vtuan10 ];
+    mainProgram = "adbe";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix b/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix
index 5377785ff25a..24ee4ee7ea44 100644
--- a/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adb-shell/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "adb-shell";
-  version = "0.3.1";
+  version = "0.3.3";
 
   disabled = !isPy3k;
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "JeffLIrion";
     repo = "adb_shell";
     rev = "v${version}";
-    sha256 = "sha256-b+9ySme44TdIlVnF8AHBBGd8pkoeYG99wmDK/nyAreo=";
+    sha256 = "sha256-QVSPQk/QNnIjTgKGuIg0e58qCH91wn7e4TwgWSmOJEk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/adblock/default.nix b/nixpkgs/pkgs/development/python-modules/adblock/default.nix
index 8fc697828f0a..186e2e9e4437 100644
--- a/nixpkgs/pkgs/development/python-modules/adblock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adblock/default.nix
@@ -3,18 +3,21 @@
 , fetchFromGitHub
 , buildPythonPackage
 , rustPlatform
-, pythonImportsCheckHook
 , pkg-config
 , openssl
 , publicsuffix-list
 , isPy27
+, libiconv
 , CoreFoundation
 , Security
+, pytestCheckHook
+, toml
+, python
 }:
 
 buildPythonPackage rec {
   pname = "adblock";
-  version = "0.4.0";
+  version = "0.4.4";
   disabled = isPy27;
 
   # Pypi only has binary releases
@@ -22,34 +25,43 @@ buildPythonPackage rec {
     owner = "ArniDagur";
     repo = "python-adblock";
     rev = version;
-    sha256 = "10d6ks2fyzbizq3kb69q478idj0h86k6ygjb6wl3zq3mf65ma4zg";
+    sha256 = "sha256-zNQ8zEpTLzyU5AnFBNpOGDJ02Ogu2+xl85LA+ia7Si4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-gEFmj3/KvhvvsOK2nX2L1RUD4Wfp3nYzEzVnQZIsIDY=";
+    hash = "sha256-ajVZ0xPxC31hM1gQr3DC1HWdpIYBCSmqm0z2cflcClg=";
   };
 
   format = "pyproject";
 
-  nativeBuildInputs = [ pkg-config pythonImportsCheckHook ]
+  nativeBuildInputs = [ pkg-config ]
     ++ (with rustPlatform; [ cargoSetupHook maturinBuildHook ]);
 
   buildInputs = [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation Security ];
 
   PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
 
-  # There are no rust tests
-  doCheck = false;
+  checkInputs = [ pytestCheckHook toml ];
 
-  pythonImportsCheck = [ "adblock" ];
+  preCheck = ''
+    # import from $out instead
+    rm -r adblock
+  '';
+
+  disabledTestPaths = [
+    # relies on directory removed above
+    "tests/test_typestubs.py"
+  ];
+
+  pythonImportsCheck = [ "adblock" "adblock.adblock" ];
 
   meta = with lib; {
     description = "Python wrapper for Brave's adblocking library, which is written in Rust";
     homepage = "https://github.com/ArniDagur/python-adblock/";
-    maintainers = with maintainers; [ petabyteboy ];
+    maintainers = with maintainers; [ petabyteboy dotlambda ];
     license = with licenses; [ asl20 mit ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/adext/default.nix b/nixpkgs/pkgs/development/python-modules/adext/default.nix
index 12c86bfc8f5f..7b10b0de1b62 100644
--- a/nixpkgs/pkgs/development/python-modules/adext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adext/default.nix
@@ -1,19 +1,24 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , setuptools-scm
 , alarmdecoder
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "adext";
-  version = "0.4.1";
+  version = "0.4.2";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1yz1rpfvhbf7kfjck5vadbj9rd3bkx5248whaa3impdrjh7vs03x";
+  src = fetchFromGitHub {
+    owner = "ajschmidt8";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0h5k9kzms2f0r48pdhsgv8pimk0vsxw8vs0k6880mank8ij914wr";
   };
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   nativeBuildInputs = [
     setuptools-scm
   ];
@@ -22,8 +27,10 @@ buildPythonPackage rec {
     alarmdecoder
   ];
 
-  # Tests are not published yet
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   pythonImportsCheck = [ "adext" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/aenum/default.nix b/nixpkgs/pkgs/development/python-modules/aenum/default.nix
index b5fb2999c961..35ccf68808c3 100644
--- a/nixpkgs/pkgs/development/python-modules/aenum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aenum/default.nix
@@ -1,27 +1,35 @@
-{ lib, fetchPypi, buildPythonPackage, python, isPy3k, glibcLocales }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pyparsing
+, python
+}:
 
 buildPythonPackage rec {
   pname = "aenum";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17cd8cfed1ee4b617198c9fabbabd70ebd8f01e54ac29cd6c3a92df14bd86656";
+    sha256 = "sha256-h/Dp70+ChXirBq8w5NeUQEO/Ts0/S3vRy+N+IXPN6Uo=";
   };
 
-  # For Python 3, locale has to be set to en_US.UTF-8 for
-  # tests to pass
-  checkInputs = if isPy3k then [ glibcLocales ] else [];
+  checkInputs = [
+    pyparsing
+  ] ;
 
   # py2 likes to reorder tests
   doCheck = isPy3k;
+
   checkPhase = ''
-  runHook preCheck
-  ${if isPy3k then "export LC_ALL=en_US.UTF-8" else ""}
-  PYTHONPATH=`pwd` ${python.interpreter} aenum/test.py
-  runHook postCheck
+    runHook preCheck
+    ${python.interpreter} aenum/test.py
+    runHook postCheck
   '';
 
+  pythonImportsCheck = [ "aenum" ];
+
   meta = with lib; {
     description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants";
     maintainers = with maintainers; [ vrthra ];
diff --git a/nixpkgs/pkgs/development/python-modules/afdko/default.nix b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
index f86151f2f51f..9a4dbbab3745 100644
--- a/nixpkgs/pkgs/development/python-modules/afdko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
@@ -2,7 +2,7 @@
 , fonttools, defcon, lxml, fs, unicodedata2, zopfli, brotlipy, fontpens
 , brotli, fontmath, mutatormath, booleanoperations
 , ufoprocessor, ufonormalizer, psautohint, tqdm
-, setuptools_scm
+, setuptools-scm
 , pytestCheckHook
 }:
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     booleanoperations
diff --git a/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix b/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix
index af98bbded8c4..752c905ee8e6 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-excel/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchPypi, buildPythonPackage
-, agate, openpyxl, xlrd, nose
+, agate, openpyxl, xlrd, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -13,11 +13,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ agate openpyxl xlrd ];
 
-  checkInputs = [ nose ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    nosetests
-  '';
+  disabledTests = [
+    # See https://github.com/wireservice/agate-excel/issues/45
+    "test_ambiguous_date"
+  ];
 
   meta = with lib; {
     description = "Adds read support for excel files to agate";
diff --git a/nixpkgs/pkgs/development/python-modules/ailment/default.nix b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
index f7194f8dd2f5..e555d69169b5 100644
--- a/nixpkgs/pkgs/development/python-modules/ailment/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ailment/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.0.6852";
+  version = "9.0.7912";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yIYZubZ8073voe4C78QITP3Pau/mrpNTyhPpU/QftXo=";
+    sha256 = "sha256-q1mi8ZNvjb3XM3le4ysy58bb978102OFKypTp9mSzxo=";
   };
 
   propagatedBuildInputs = [ pyvex ];
diff --git a/nixpkgs/pkgs/development/python-modules/aio-georss-client/default.nix b/nixpkgs/pkgs/development/python-modules/aio-georss-client/default.nix
new file mode 100644
index 000000000000..1ac37e8b602a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aio-georss-client/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aiohttp
+, aresponses
+, asynctest
+, buildPythonPackage
+, dateparser
+, fetchFromGitHub
+, haversine
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, requests
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "aio-georss-client";
+  version = "0.7";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-aio-georss-client";
+    rev = "v${version}";
+    sha256 = "1nhw2sf92dbizxdcil1wdmbaa3hbmsiriy8jfzpqxsliw5dc0kmh";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    haversine
+    xmltodict
+    requests
+    dateparser
+  ];
+
+  checkInputs = [
+    aresponses
+    asynctest
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aio_georss_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing GeoRSS feeds";
+    homepage = "https://github.com/exxamalte/python-aio-georss-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aio-georss-gdacs/default.nix b/nixpkgs/pkgs/development/python-modules/aio-georss-gdacs/default.nix
new file mode 100644
index 000000000000..6b6d295f8b86
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aio-georss-gdacs/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, aio-georss-client
+, aresponses
+, buildPythonPackage
+, dateparser
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aio-georss-gdacs";
+  version = "0.5";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-aio-georss-gdacs";
+    rev = "v${version}";
+    sha256 = "sha256-CIQoQRk5KIPEa/Y/7C1NPctuHvoiZ/o2bDa5YSWY+9M=";
+  };
+
+  propagatedBuildInputs = [
+    aio-georss-client
+    dateparser
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aio_georss_gdacs" ];
+
+  meta = with lib; {
+    description = "Python library for accessing GeoRSS feeds";
+    homepage = "https://github.com/exxamalte/python-aio-georss-gdacs";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioambient/default.nix b/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
index 5e504ab87a02..83c74925b8cd 100644
--- a/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioambient/default.nix
@@ -5,8 +5,8 @@
 , buildPythonPackage
 , fetchFromGitHub
 , poetry-core
+, pytest-aiohttp
 , pytest-asyncio
-, pytest-cov
 , pytestCheckHook
 , python-engineio
 , python-socketio
@@ -27,7 +27,9 @@ buildPythonPackage rec {
     sha256 = "sha256-uqvM5F0rpw+xeCXYl4lGMt3r0ugPsUmSvujmTJ9HABk=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -39,13 +41,20 @@ buildPythonPackage rec {
   checkInputs = [
     aresponses
     asynctest
+    pytest-aiohttp
     pytest-asyncio
-    pytest-cov
     pytestCheckHook
   ];
 
+  postPatch = ''
+    # https://github.com/bachya/aioambient/pull/84
+    substituteInPlace pyproject.toml \
+      --replace 'websockets = "^8.1"' 'websockets = ">=8.1,<10.0"'
+  '';
+
   # Ignore the examples directory as the files are prefixed with test_
-  pytestFlagsArray = [ "--ignore examples/" ];
+  disabledTestPaths = [ "examples/" ];
+
   pythonImportsCheck = [ "aioambient" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/aioamqp/compat-pamqp-3.patch b/nixpkgs/pkgs/development/python-modules/aioamqp/compat-pamqp-3.patch
new file mode 100644
index 000000000000..0d319eb2a0d4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioamqp/compat-pamqp-3.patch
@@ -0,0 +1,498 @@
+From 17b5be250cb5ecf95cf4f77c8c930450d876efa6 Mon Sep 17 00:00:00 2001
+From: dzen <benoit.calvez@polyconseil.fr>
+Date: Thu, 12 Mar 2020 08:32:29 +0100
+Subject: [PATCH 1/3] Moves to pamqp 3.0
+
+---
+ aioamqp/channel.py        | 114 +++++++++++++++++++-------------------
+ aioamqp/frame.py          |   1 -
+ aioamqp/protocol.py       |  22 ++++----
+ aioamqp/tests/testcase.py |   2 +-
+ 4 files changed, 69 insertions(+), 70 deletions(-)
+
+diff --git a/aioamqp/channel.py b/aioamqp/channel.py
+index 7f0f402..ea164c4 100644
+--- a/aioamqp/channel.py
++++ b/aioamqp/channel.py
+@@ -9,7 +9,7 @@
+ from itertools import count
+ import warnings
+ 
+-import pamqp.specification
++import pamqp.commands
+ 
+ from . import frame as amqp_frame
+ from . import exceptions
+@@ -78,35 +78,35 @@ def connection_closed(self, server_code=None, server_reason=None, exception=None
+ 
+     async def dispatch_frame(self, frame):
+         methods = {
+-            pamqp.specification.Channel.OpenOk.name: self.open_ok,
+-            pamqp.specification.Channel.FlowOk.name: self.flow_ok,
+-            pamqp.specification.Channel.CloseOk.name: self.close_ok,
+-            pamqp.specification.Channel.Close.name: self.server_channel_close,
+-
+-            pamqp.specification.Exchange.DeclareOk.name: self.exchange_declare_ok,
+-            pamqp.specification.Exchange.BindOk.name: self.exchange_bind_ok,
+-            pamqp.specification.Exchange.UnbindOk.name: self.exchange_unbind_ok,
+-            pamqp.specification.Exchange.DeleteOk.name: self.exchange_delete_ok,
+-
+-            pamqp.specification.Queue.DeclareOk.name: self.queue_declare_ok,
+-            pamqp.specification.Queue.DeleteOk.name: self.queue_delete_ok,
+-            pamqp.specification.Queue.BindOk.name: self.queue_bind_ok,
+-            pamqp.specification.Queue.UnbindOk.name: self.queue_unbind_ok,
+-            pamqp.specification.Queue.PurgeOk.name: self.queue_purge_ok,
+-
+-            pamqp.specification.Basic.QosOk.name: self.basic_qos_ok,
+-            pamqp.specification.Basic.ConsumeOk.name: self.basic_consume_ok,
+-            pamqp.specification.Basic.CancelOk.name: self.basic_cancel_ok,
+-            pamqp.specification.Basic.GetOk.name: self.basic_get_ok,
+-            pamqp.specification.Basic.GetEmpty.name: self.basic_get_empty,
+-            pamqp.specification.Basic.Deliver.name: self.basic_deliver,
+-            pamqp.specification.Basic.Cancel.name: self.server_basic_cancel,
+-            pamqp.specification.Basic.Ack.name: self.basic_server_ack,
+-            pamqp.specification.Basic.Nack.name: self.basic_server_nack,
+-            pamqp.specification.Basic.RecoverOk.name: self.basic_recover_ok,
+-            pamqp.specification.Basic.Return.name: self.basic_return,
+-
+-            pamqp.specification.Confirm.SelectOk.name: self.confirm_select_ok,
++            pamqp.commands.Channel.OpenOk.name: self.open_ok,
++            pamqp.commands.Channel.FlowOk.name: self.flow_ok,
++            pamqp.commands.Channel.CloseOk.name: self.close_ok,
++            pamqp.commands.Channel.Close.name: self.server_channel_close,
++
++            pamqp.commands.Exchange.DeclareOk.name: self.exchange_declare_ok,
++            pamqp.commands.Exchange.BindOk.name: self.exchange_bind_ok,
++            pamqp.commands.Exchange.UnbindOk.name: self.exchange_unbind_ok,
++            pamqp.commands.Exchange.DeleteOk.name: self.exchange_delete_ok,
++
++            pamqp.commands.Queue.DeclareOk.name: self.queue_declare_ok,
++            pamqp.commands.Queue.DeleteOk.name: self.queue_delete_ok,
++            pamqp.commands.Queue.BindOk.name: self.queue_bind_ok,
++            pamqp.commands.Queue.UnbindOk.name: self.queue_unbind_ok,
++            pamqp.commands.Queue.PurgeOk.name: self.queue_purge_ok,
++
++            pamqp.commands.Basic.QosOk.name: self.basic_qos_ok,
++            pamqp.commands.Basic.ConsumeOk.name: self.basic_consume_ok,
++            pamqp.commands.Basic.CancelOk.name: self.basic_cancel_ok,
++            pamqp.commands.Basic.GetOk.name: self.basic_get_ok,
++            pamqp.commands.Basic.GetEmpty.name: self.basic_get_empty,
++            pamqp.commands.Basic.Deliver.name: self.basic_deliver,
++            pamqp.commands.Basic.Cancel.name: self.server_basic_cancel,
++            pamqp.commands.Basic.Ack.name: self.basic_server_ack,
++            pamqp.commands.Basic.Nack.name: self.basic_server_nack,
++            pamqp.commands.Basic.RecoverOk.name: self.basic_recover_ok,
++            pamqp.commands.Basic.Return.name: self.basic_return,
++
++            pamqp.commands.Confirm.SelectOk.name: self.confirm_select_ok,
+         }
+ 
+         if frame.name not in methods:
+@@ -144,7 +144,7 @@ async def _write_frame_awaiting_response(self, waiter_id, channel_id, request,
+ 
+     async def open(self):
+         """Open the channel on the server."""
+-        request = pamqp.specification.Channel.Open()
++        request = pamqp.commands.Channel.Open()
+         return (await self._write_frame_awaiting_response(
+             'open', self.channel_id, request, no_wait=False, check_open=False))
+ 
+@@ -159,7 +159,7 @@ async def close(self, reply_code=0, reply_text="Normal Shutdown"):
+         if not self.is_open:
+             raise exceptions.ChannelClosed("channel already closed or closing")
+         self.close_event.set()
+-        request = pamqp.specification.Channel.Close(reply_code, reply_text, class_id=0, method_id=0)
++        request = pamqp.commands.Channel.Close(reply_code, reply_text, class_id=0, method_id=0)
+         return (await self._write_frame_awaiting_response(
+             'close', self.channel_id, request, no_wait=False, check_open=False))
+ 
+@@ -169,7 +169,7 @@ async def close_ok(self, frame):
+         self.protocol.release_channel_id(self.channel_id)
+ 
+     async def _send_channel_close_ok(self):
+-        request = pamqp.specification.Channel.CloseOk()
++        request = pamqp.commands.Channel.CloseOk()
+         await self._write_frame(self.channel_id, request)
+ 
+     async def server_channel_close(self, frame):
+@@ -183,7 +183,7 @@ async def server_channel_close(self, frame):
+         self.connection_closed(results['reply_code'], results['reply_text'])
+ 
+     async def flow(self, active):
+-        request = pamqp.specification.Channel.Flow(active)
++        request = pamqp.commands.Channel.Flow(active)
+         return (await self._write_frame_awaiting_response(
+             'flow', self.channel_id, request, no_wait=False,
+             check_open=False))
+@@ -201,7 +201,7 @@ async def flow_ok(self, frame):
+ 
+     async def exchange_declare(self, exchange_name, type_name, passive=False, durable=False,
+                          auto_delete=False, no_wait=False, arguments=None):
+-        request = pamqp.specification.Exchange.Declare(
++        request = pamqp.commands.Exchange.Declare(
+             exchange=exchange_name,
+             exchange_type=type_name,
+             passive=passive,
+@@ -222,7 +222,7 @@ async def exchange_declare_ok(self, frame):
+         return future
+ 
+     async def exchange_delete(self, exchange_name, if_unused=False, no_wait=False):
+-        request = pamqp.specification.Exchange.Delete(exchange=exchange_name, if_unused=if_unused, nowait=no_wait)
++        request = pamqp.commands.Exchange.Delete(exchange=exchange_name, if_unused=if_unused, nowait=no_wait)
+         return await self._write_frame_awaiting_response(
+             'exchange_delete', self.channel_id, request, no_wait)
+ 
+@@ -235,7 +235,7 @@ async def exchange_bind(self, exchange_destination, exchange_source, routing_key
+                       no_wait=False, arguments=None):
+         if arguments is None:
+             arguments = {}
+-        request = pamqp.specification.Exchange.Bind(
++        request = pamqp.commands.Exchange.Bind(
+             destination=exchange_destination,
+             source=exchange_source,
+             routing_key=routing_key,
+@@ -255,7 +255,7 @@ async def exchange_unbind(self, exchange_destination, exchange_source, routing_k
+         if arguments is None:
+             arguments = {}
+ 
+-        request = pamqp.specification.Exchange.Unbind(
++        request = pamqp.commands.Exchange.Unbind(
+             destination=exchange_destination,
+             source=exchange_source,
+             routing_key=routing_key,
+@@ -297,7 +297,7 @@ async def queue_declare(self, queue_name=None, passive=False, durable=False,
+ 
+         if not queue_name:
+             queue_name = 'aioamqp.gen-' + str(uuid.uuid4())
+-        request = pamqp.specification.Queue.Declare(
++        request = pamqp.commands.Queue.Declare(
+             queue=queue_name,
+             passive=passive,
+             durable=durable,
+@@ -327,7 +327,7 @@ async def queue_delete(self, queue_name, if_unused=False, if_empty=False, no_wai
+                if_empty:       bool, the queue is deleted if it has no messages. Raise if not.
+                no_wait:        bool, if set, the server will not respond to the method
+         """
+-        request = pamqp.specification.Queue.Delete(
++        request = pamqp.commands.Queue.Delete(
+             queue=queue_name,
+             if_unused=if_unused,
+             if_empty=if_empty,
+@@ -346,7 +346,7 @@ async def queue_bind(self, queue_name, exchange_name, routing_key, no_wait=False
+         if arguments is None:
+             arguments = {}
+ 
+-        request = pamqp.specification.Queue.Bind(
++        request = pamqp.commands.Queue.Bind(
+             queue=queue_name,
+             exchange=exchange_name,
+             routing_key=routing_key,
+@@ -367,7 +367,7 @@ async def queue_unbind(self, queue_name, exchange_name, routing_key, arguments=N
+         if arguments is None:
+             arguments = {}
+ 
+-        request = pamqp.specification.Queue.Unbind(
++        request = pamqp.commands.Queue.Unbind(
+             queue=queue_name,
+             exchange=exchange_name,
+             routing_key=routing_key,
+@@ -383,7 +383,7 @@ async def queue_unbind_ok(self, frame):
+         logger.debug("Queue unbound")
+ 
+     async def queue_purge(self, queue_name, no_wait=False):
+-        request = pamqp.specification.Queue.Purge(
++        request = pamqp.commands.Queue.Purge(
+             queue=queue_name, nowait=no_wait
+         )
+         return (await self._write_frame_awaiting_response(
+@@ -406,7 +406,7 @@ async def basic_publish(self, payload, exchange_name, routing_key,
+         if properties is None:
+             properties = {}
+ 
+-        method_request = pamqp.specification.Basic.Publish(
++        method_request = pamqp.commands.Basic.Publish(
+             exchange=exchange_name,
+             routing_key=routing_key,
+             mandatory=mandatory,
+@@ -417,7 +417,7 @@ async def basic_publish(self, payload, exchange_name, routing_key,
+ 
+         header_request = pamqp.header.ContentHeader(
+             body_size=len(payload),
+-            properties=pamqp.specification.Basic.Properties(**properties)
++            properties=pamqp.commands.Basic.Properties(**properties)
+         )
+         await self._write_frame(self.channel_id, header_request, drain=False)
+ 
+@@ -446,7 +446,7 @@ async def basic_qos(self, prefetch_size=0, prefetch_count=0, connection_global=F
+                                 settings should apply per-consumer channel; and global=true to mean
+                                 that the QoS settings should apply per-channel.
+         """
+-        request = pamqp.specification.Basic.Qos(
++        request = pamqp.commands.Basic.Qos(
+             prefetch_size, prefetch_count, connection_global
+         )
+         return (await self._write_frame_awaiting_response(
+@@ -490,7 +490,7 @@ async def basic_consume(self, callback, queue_name='', consumer_tag='', no_local
+         if arguments is None:
+             arguments = {}
+ 
+-        request = pamqp.specification.Basic.Consume(
++        request = pamqp.commands.Basic.Consume(
+             queue=queue_name,
+             consumer_tag=consumer_tag,
+             no_local=no_local,
+@@ -561,7 +561,7 @@ async def server_basic_cancel(self, frame):
+                              callback, error)
+ 
+     async def basic_cancel(self, consumer_tag, no_wait=False):
+-        request = pamqp.specification.Basic.Cancel(consumer_tag, no_wait)
++        request = pamqp.commands.Basic.Cancel(consumer_tag, no_wait)
+         return (await self._write_frame_awaiting_response(
+             'basic_cancel', self.channel_id, request, no_wait=no_wait)
+         )
+@@ -575,7 +575,7 @@ async def basic_cancel_ok(self, frame):
+         logger.debug("Cancel ok")
+ 
+     async def basic_get(self, queue_name='', no_ack=False):
+-        request = pamqp.specification.Basic.Get(queue=queue_name, no_ack=no_ack)
++        request = pamqp.commands.Basic.Get(queue=queue_name, no_ack=no_ack)
+         return (await self._write_frame_awaiting_response(
+             'basic_get', self.channel_id, request, no_wait=False)
+         )
+@@ -606,11 +606,11 @@ async def basic_get_empty(self, frame):
+         future.set_exception(exceptions.EmptyQueue)
+ 
+     async def basic_client_ack(self, delivery_tag, multiple=False):
+-        request = pamqp.specification.Basic.Ack(delivery_tag, multiple)
++        request = pamqp.commands.Basic.Ack(delivery_tag, multiple)
+         await self._write_frame(self.channel_id, request)
+ 
+     async def basic_client_nack(self, delivery_tag, multiple=False, requeue=True):
+-        request = pamqp.specification.Basic.Nack(delivery_tag, multiple, requeue)
++        request = pamqp.commands.Basic.Nack(delivery_tag, multiple, requeue)
+         await self._write_frame(self.channel_id, request)
+ 
+     async def basic_server_ack(self, frame):
+@@ -620,15 +620,15 @@ async def basic_server_ack(self, frame):
+         fut.set_result(True)
+ 
+     async def basic_reject(self, delivery_tag, requeue=False):
+-        request = pamqp.specification.Basic.Reject(delivery_tag, requeue)
++        request = pamqp.commands.Basic.Reject(delivery_tag, requeue)
+         await self._write_frame(self.channel_id, request)
+ 
+     async def basic_recover_async(self, requeue=True):
+-        request = pamqp.specification.Basic.RecoverAsync(requeue)
++        request = pamqp.commands.Basic.RecoverAsync(requeue)
+         await self._write_frame(self.channel_id, request)
+ 
+     async def basic_recover(self, requeue=True):
+-        request = pamqp.specification.Basic.Recover(requeue)
++        request = pamqp.commands.Basic.Recover(requeue)
+         return (await self._write_frame_awaiting_response(
+             'basic_recover', self.channel_id, request, no_wait=False)
+         )
+@@ -681,7 +681,7 @@ async def publish(self, payload, exchange_name, routing_key, properties=None, ma
+             delivery_tag = next(self.delivery_tag_iter)  # pylint: disable=stop-iteration-return
+             fut = self._set_waiter('basic_server_ack_{}'.format(delivery_tag))
+ 
+-        method_request = pamqp.specification.Basic.Publish(
++        method_request = pamqp.commands.Basic.Publish(
+             exchange=exchange_name,
+             routing_key=routing_key,
+             mandatory=mandatory,
+@@ -689,7 +689,7 @@ async def publish(self, payload, exchange_name, routing_key, properties=None, ma
+         )
+         await self._write_frame(self.channel_id, method_request, drain=False)
+ 
+-        properties = pamqp.specification.Basic.Properties(**properties)
++        properties = pamqp.commands.Basic.Properties(**properties)
+         header_request = pamqp.header.ContentHeader(
+             body_size=len(payload), properties=properties
+         )
+@@ -710,7 +710,7 @@ async def publish(self, payload, exchange_name, routing_key, properties=None, ma
+     async def confirm_select(self, *, no_wait=False):
+         if self.publisher_confirms:
+             raise ValueError('publisher confirms already enabled')
+-        request = pamqp.specification.Confirm.Select(nowait=no_wait)
++        request = pamqp.commands.Confirm.Select(nowait=no_wait)
+ 
+         return (await self._write_frame_awaiting_response(
+             'confirm_select', self.channel_id, request, no_wait)
+diff --git a/aioamqp/frame.py b/aioamqp/frame.py
+index d70cfd7..af27ab5 100644
+--- a/aioamqp/frame.py
++++ b/aioamqp/frame.py
+@@ -42,7 +42,6 @@
+ import socket
+ 
+ import pamqp.encode
+-import pamqp.specification
+ import pamqp.frame
+ 
+ from . import exceptions
+diff --git a/aioamqp/protocol.py b/aioamqp/protocol.py
+index e111dea..f0b928d 100644
+--- a/aioamqp/protocol.py
++++ b/aioamqp/protocol.py
+@@ -5,9 +5,9 @@
+ import asyncio
+ import logging
+ 
++import pamqp.commands
+ import pamqp.frame
+ import pamqp.heartbeat
+-import pamqp.specification
+ 
+ from . import channel as amqp_channel
+ from . import constants as amqp_constants
+@@ -159,7 +159,7 @@ async def close(self, no_wait=False, timeout=None):
+         """Close connection (and all channels)"""
+         await self.ensure_open()
+         self.state = CLOSING
+-        request = pamqp.specification.Connection.Close(
++        request = pamqp.commands.Connection.Close(
+             reply_code=0,
+             reply_text='',
+             class_id=0,
+@@ -254,11 +254,11 @@ async def dispatch_frame(self, frame_channel=None, frame=None):
+         """Dispatch the received frame to the corresponding handler"""
+ 
+         method_dispatch = {
+-            pamqp.specification.Connection.Close.name: self.server_close,
+-            pamqp.specification.Connection.CloseOk.name: self.close_ok,
+-            pamqp.specification.Connection.Tune.name: self.tune,
+-            pamqp.specification.Connection.Start.name: self.start,
+-            pamqp.specification.Connection.OpenOk.name: self.open_ok,
++            pamqp.commands.Connection.Close.name: self.server_close,
++            pamqp.commands.Connection.CloseOk.name: self.close_ok,
++            pamqp.commands.Connection.Tune.name: self.tune,
++            pamqp.commands.Connection.Start.name: self.start,
++            pamqp.commands.Connection.OpenOk.name: self.open_ok,
+         }
+         if frame_channel is None and frame is None:
+             frame_channel, frame = await self.get_frame()
+@@ -395,7 +395,7 @@ async def start_ok(self, client_properties, mechanism, auth, locale):
+         def credentials():
+             return '\0{LOGIN}\0{PASSWORD}'.format(**auth)
+ 
+-        request = pamqp.specification.Connection.StartOk(
++        request = pamqp.commands.Connection.StartOk(
+             client_properties=client_properties,
+             mechanism=mechanism,
+             locale=locale,
+@@ -417,7 +417,7 @@ async def server_close(self, frame):
+         self._stream_writer.close()
+ 
+     async def _close_ok(self):
+-        request = pamqp.specification.Connection.CloseOk()
++        request = pamqp.commands.Connection.CloseOk()
+         await self._write_frame(0, request)
+ 
+     async def tune(self, frame):
+@@ -426,7 +426,7 @@ async def tune(self, frame):
+         self.server_heartbeat = frame.heartbeat
+ 
+     async def tune_ok(self, channel_max, frame_max, heartbeat):
+-        request = pamqp.specification.Connection.TuneOk(
++        request = pamqp.commands.Connection.TuneOk(
+             channel_max, frame_max, heartbeat
+         )
+         await self._write_frame(0, request)
+@@ -436,7 +436,7 @@ async def secure_ok(self, login_response):
+ 
+     async def open(self, virtual_host, capabilities='', insist=False):
+         """Open connection to virtual host."""
+-        request = pamqp.specification.Connection.Open(
++        request = pamqp.commands.Connection.Open(
+             virtual_host, capabilities, insist
+         )
+         await self._write_frame(0, request)
+diff --git a/aioamqp/tests/testcase.py b/aioamqp/tests/testcase.py
+index 120104b..d6d702b 100644
+--- a/aioamqp/tests/testcase.py
++++ b/aioamqp/tests/testcase.py
+@@ -147,7 +147,7 @@ def server_version(self, amqp=None):
+         if amqp is None:
+             amqp = self.amqp
+ 
+-        server_version = tuple(int(x) for x in amqp.server_properties['version'].decode().split('.'))
++        server_version = tuple(int(x) for x in amqp.server_properties['version'].split('.'))
+         return server_version
+ 
+     async def check_exchange_exists(self, exchange_name):
+
+From c900f6d5e8ef273000d221d0e46ab81ed4aed2a2 Mon Sep 17 00:00:00 2001
+From: dzen <benoit.calvez@polyconseil.fr>
+Date: Wed, 25 Mar 2020 11:02:04 +0100
+Subject: [PATCH 2/3] fix pamqp version for tests on travis
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index a740243..2277b28 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,7 +25,7 @@
+         'aioamqp',
+     ],
+     install_requires=[
+-        'pamqp>=2.2.0,<3',
++        'pamqp>=3.0.0', # TODO(bcalvez): for tests purpose, until 3.0 is released
+     ],
+     classifiers=[
+         "Development Status :: 4 - Beta",
+
+From 836340e8d881a93b0111b9aed6f2bb2926f38de6 Mon Sep 17 00:00:00 2001
+From: dzen <benoit.calvez@polyconseil.fr>
+Date: Wed, 25 Mar 2020 11:37:45 +0100
+Subject: [PATCH 3/3] pamqp 3.0 is no more compatible with 3.5
+
+---
+ .travis.yml | 1 -
+ setup.cfg   | 2 +-
+ setup.py    | 2 +-
+ 3 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 1069e7c..46d6fea 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -1,7 +1,6 @@
+ language: python
+ dist: bionic
+ python:
+-- 3.5
+ - 3.6
+ - 3.7-dev
+ - 3.8
+diff --git a/setup.cfg b/setup.cfg
+index 0ab7d0b..d0ba16e 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -1,2 +1,2 @@
+ [bdist_wheel]
+-python-tag = py35.py36.py37.py38
++python-tag = py36.py37.py38
+diff --git a/setup.py b/setup.py
+index 2277b28..c413078 100644
+--- a/setup.py
++++ b/setup.py
+@@ -27,6 +27,7 @@
+     install_requires=[
+         'pamqp==3.0.0a6', # TODO(bcalvez): for tests purpose, until 3.0 is released
+     ],
++    python_requires=">=3.6",
+     classifiers=[
+         "Development Status :: 4 - Beta",
+         "Intended Audience :: Developers",
+@@ -34,7 +35,6 @@
+         "Operating System :: OS Independent",
+         "Programming Language :: Python",
+         "Programming Language :: Python :: 3",
+-        "Programming Language :: Python :: 3.5",
+         "Programming Language :: Python :: 3.6",
+         "Programming Language :: Python :: 3.7",
+         "Programming Language :: Python :: 3.8",
diff --git a/nixpkgs/pkgs/development/python-modules/aioamqp/default.nix b/nixpkgs/pkgs/development/python-modules/aioamqp/default.nix
index 5be5b6a1dd08..a2882ce1288b 100644
--- a/nixpkgs/pkgs/development/python-modules/aioamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioamqp/default.nix
@@ -20,6 +20,8 @@ buildPythonPackage rec {
     sha256 = "1gpfsrc2vi6w33c9zsycd2qn589pr7a222rb41r85m915283zy48";
   };
 
+  patches = [ ./compat-pamqp-3.patch ];
+
   propagatedBuildInputs = [
     pamqp
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix b/nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix
index edd2796eca48..a6bd79e80ef1 100644
--- a/nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioasuswrt/default.nix
@@ -9,18 +9,16 @@
 
 buildPythonPackage rec {
   pname = "aioasuswrt";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "kennedyshead";
     repo = pname;
-    rev = "V${version}";
-    sha256 = "1h1qwc7szgrcwiz4q6x4mlf26is20lj1ds5rcb9i611j26656v6d";
+    rev = version;
+    sha256 = "101d76zarvilzfmcy8n3bjqzyars8hsjzr0zc80d4rngv4vhrki1";
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "cryptography==3.3.2" "cryptography"
     substituteInPlace setup.cfg \
       --replace "--cov-report html" "" \
       --replace "--cov-report term-missing" ""
diff --git a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
index f75a0d6bb60b..1ebf66a2597f 100644
--- a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
@@ -10,18 +10,18 @@
 
 buildPythonPackage rec {
   pname = "aiobotocore";
-  version = "1.2.2";
+  version = "1.3.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "37c23166603a3bd134e5f6fc22dbbf8c274d4d24c71418fba292ed2cd7a0bf43";
+    sha256 = "17pcdi69bwdfw2wv3a0fhira5gimw88sp2wf47yqz50z1ckhv2c1";
   };
 
   # relax version constraints: aiobotocore works with newer botocore versions
   # the pinning used to match some `extras_require` we're not using.
-  preConfigure = ''
-    substituteInPlace setup.py --replace 'botocore>=1.17.44,<1.17.45' 'botocore'
+  postPatch = ''
+    substituteInPlace setup.py --replace 'botocore>=1.20.49,<1.20.50' 'botocore'
   '';
 
   propagatedBuildInputs = [ wrapt aiohttp aioitertools botocore ];
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aiobotocore" ];
 
   meta = with lib; {
-    description = "Async client for amazon services using botocore and aiohttp/asyncio.";
+    description = "Python client for amazon services";
     license = licenses.asl20;
     homepage = "https://github.com/aio-libs/aiobotocore";
     maintainers = with maintainers; [ teh ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix b/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
index 8a7f72f8b863..97caef50285a 100644
--- a/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
@@ -1,6 +1,6 @@
 { lib
-, async-dns
 , buildPythonPackage
+, dnspython
 , fetchFromGitHub
 , ifaddr
 , pyroute2
@@ -11,24 +11,26 @@
 
 buildPythonPackage rec {
   pname = "aiodiscover";
-  version = "1.3.4";
+  version = "1.4.2";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TmWl5d5HwyqWPUjwtEvc5FzVfxV/K1pekljcMkGN0Ag=";
+    sha256 = "sha256-xiIN/YLIOdPuqenyxybu0iUpYEy3MyBssXswza5InU0=";
   };
 
   propagatedBuildInputs = [
-    async-dns
+    dnspython
     pyroute2
     ifaddr
   ];
 
   postPatch = ''
-    substituteInPlace setup.py --replace '"pytest-runner>=5.2",' ""
+    substituteInPlace setup.py \
+      --replace '"pytest-runner>=5.2",' "" \
+      --replace "pyroute2>=0.5.18,!=0.6.1" "pyroute2"
   '';
 
   checkInputs = [
@@ -36,10 +38,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  preBuild = ''
-    export HOME=$TMPDIR
-  '';
-
   disabledTests = [
     # Tests require access to /etc/resolv.conf
     "test_async_discover_hosts"
diff --git a/nixpkgs/pkgs/development/python-modules/aiodns/default.nix b/nixpkgs/pkgs/development/python-modules/aiodns/default.nix
index 05e17ec12f43..9c626618ff0a 100644
--- a/nixpkgs/pkgs/development/python-modules/aiodns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiodns/default.nix
@@ -1,31 +1,38 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, isPy27, isPyPy, python, pycares, typing ? null
-, trollius ? null
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pycares
+, pythonOlder
+, typing
 }:
 
 buildPythonPackage rec {
   pname = "aiodns";
-  version = "2.0.0";
+  version = "3.0.0";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "815fdef4607474295d68da46978a54481dd1e7be153c7d60f9e72773cd38d77d";
+  src = fetchFromGitHub {
+    owner = "saghul";
+    repo = pname;
+    rev = "aiodns-${version}";
+    sha256 = "1i91a43gsq222r8212jn4m6bxc3fl04z1mf2h7s39nqywxkggvlp";
   };
 
-  propagatedBuildInputs = [ pycares ]
-    ++ lib.optional (pythonOlder "3.7") typing
-    ++ lib.optional (isPy27 || isPyPy) trollius;
+  propagatedBuildInputs = [
+    pycares
+  ] ++ lib.optional (pythonOlder "3.7") [
+    typing
+  ];
 
-  checkPhase = ''
-    ${python.interpreter} tests.py
-  '';
-
-  # 'Could not contact DNS servers'
+  # Could not contact DNS servers
   doCheck = false;
 
+  pythonImportsCheck = [ "aiodns" ];
+
   meta = with lib; {
+    description = "Simple DNS resolver for asyncio";
     homepage = "https://github.com/saghul/aiodns";
     license = licenses.mit;
-    description = "Simple DNS resolver for asyncio";
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
index 425575442592..795657262f43 100644
--- a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "2.6.6";
+  version = "2.8.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-LdBUtU5rNoixh7DPIFkHxLMvBeI6MZH57sO0IjuOQAw=";
+    sha256 = "1j25i7vh4fg56rzhzxlaj4ys1rvswld15ia44mwwzxfggw8w3rbk";
   };
 
   propagatedBuildInputs = [ attrs protobuf zeroconf ];
@@ -22,6 +22,6 @@ buildPythonPackage rec {
     description = "Python Client for ESPHome native API";
     homepage = "https://github.com/esphome/aioesphomeapi";
     license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda ];
+    maintainers = with maintainers; [ fab hexa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix b/nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix
deleted file mode 100644
index ef0166e5d624..000000000000
--- a/nixpkgs/pkgs/development/python-modules/aioeventlet/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, eventlet
-, trollius ? null
-, mock
-, python
-}:
-
-buildPythonPackage rec {
-  pname = "aioeventlet";
-  # version is called 0.5.1 on PyPI, but the filename is aioeventlet-0.5.2.tar.gz
-  version = "0.5.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cecb51ea220209e33b53cfb95124d90e4fcbee3ff8ba8a179a57120b8624b16a";
-  };
-
-  propagatedBuildInputs = [ eventlet trollius ];
-  buildInputs = [ mock ];
-
-  # 2 tests error out
-  doCheck = false;
-  checkPhase = ''
-    ${python.interpreter} runtests.py
-  '';
-
-  meta = with lib; {
-    description = "aioeventlet implements the asyncio API (PEP 3156) on top of eventlet. It makes";
-    homepage = "https://pypi.org/project/aioeventlet/";
-    license = licenses.asl20;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix b/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
index 47b820161886..388c856fc619 100644
--- a/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioguardian/default.nix
@@ -5,7 +5,7 @@
 , asynctest
 , buildPythonPackage
 , fetchFromGitHub
-, poetry
+, poetry-core
 , pytest-aiohttp
 , pytest-asyncio
 , pytestCheckHook
@@ -27,7 +27,9 @@ buildPythonPackage rec {
 
   format = "pyproject";
 
-  nativeBuildInputs = [ poetry ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -44,8 +46,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Ignore the examples as they are prefixed with test_
-  pytestFlagsArray = [ "--ignore examples/" ];
+  postPatch = ''
+    # https://github.com/bachya/aioguardian/pull/66
+    substituteInPlace pyproject.toml \
+      --replace 'asyncio_dgram = "^1.0.1"' 'asyncio_dgram = "^2.0.0"'
+    # https://github.com/bachya/aioguardian/pull/67
+    substituteInPlace pyproject.toml \
+      --replace "poetry>=0.12" "poetry-core"
+  '';
+
+  disabledTestPaths = [ "examples/" ];
+
   pythonImportsCheck = [ "aioguardian" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix b/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
index f9afbe22c917..2d76d033231d 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "aiohomekit";
-  version = "0.2.61";
+  version = "0.2.62";
   format = "pyproject";
   disabled = pythonAtLeast "3.9";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Jc2k";
     repo = pname;
     rev = version;
-    sha256 = "047ql5a4i4354jgr8xr2waim8j522z58vbfi7aa62jqc9l8jzxzk";
+    sha256 = "sha256-01IzeR0iukPTkz8I7h93wZkgjz6flRAJN8unEX6d+cs=";
   };
 
   nativeBuildInputs = [ poetry ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp-socks/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp-socks/default.nix
index 7b0bfe80684a..4e75f56a8dab 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp-socks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp-socks/default.nix
@@ -1,16 +1,16 @@
-{ lib, fetchPypi, buildPythonPackage, pythonOlder, aiohttp, attrs }:
+{ lib, fetchPypi, buildPythonPackage, pythonOlder, aiohttp, python-socks, attrs }:
 
 buildPythonPackage rec {
   pname = "aiohttp-socks";
-  version = "0.3.9";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit version;
     pname = "aiohttp_socks";
-    sha256 = "1mn2ng66951mri49f99zh3660j83kvqhr6dpx90s9fkjwk83hmjy";
+    sha256 = "04w010bvi719ifpc3sshav95k10hf9nq8czn9yglkj206yxcypdr";
   };
 
-  propagatedBuildInputs = [ aiohttp attrs ];
+  propagatedBuildInputs = [ aiohttp attrs python-socks ];
 
   # Checks needs internet access
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/aiohue/default.nix b/nixpkgs/pkgs/development/python-modules/aiohue/default.nix
index b495bf4df463..65baaec37190 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohue/default.nix
@@ -1,19 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi, aiohttp }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+}:
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35696d04d6eb0328b7031ea3c0a3cfe5d83dfcf62f920522e4767d165c6bc529";
+    sha256 = "1qxvqqsflcn263yg7r8vvfc2c2fl3rh4dkzwzh926ijnbc2sk4nm";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  pythonImportsCheck = [
+    "aiohue"
+    "aiohue.discovery"
+  ];
+
+  # Project has no tests
+  doCheck = false;
 
   meta = with lib; {
-    description = "asyncio package to talk to Philips Hue";
-    homepage = "https://github.com/balloob/aiohue";
-    license = licenses.asl20;
+    description = "Python package to talk to Philips Hue";
+    homepage = "https://github.com/home-assistant-libs/aiohue";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aiokafka/default.nix b/nixpkgs/pkgs/development/python-modules/aiokafka/default.nix
index ba32976b96b1..61ff78a3428e 100644
--- a/nixpkgs/pkgs/development/python-modules/aiokafka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiokafka/default.nix
@@ -1,7 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
+, pythonOlder
+, dataclasses
 , kafka-python
 , cython
 , zlib
@@ -9,15 +10,14 @@
 
 buildPythonPackage rec {
   pname = "aiokafka";
-  version = "0.7.0";
-
-  disabled = isPy27;
+  version = "0.7.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "aio-libs";
-    repo = "aiokafka";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "16pcgv38syqy6sj3w7zx95zgynpd642n3i95dpiw0ivhpqrxxhrf";
+    sha256 = "sha256-D89ppIUliJJMDuCySrZUyN6Rlm01gFskz6ayHmqploc=";
   };
 
   nativeBuildInputs = [
@@ -30,16 +30,15 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     kafka-python
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    dataclasses
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-       --replace "kafka-python==1.4.6" "kafka-python"
-  '';
-
   # checks require running kafka server
   doCheck = false;
 
+  pythonImportsCheck = [ "aiokafka" ];
+
   meta = with lib; {
     description = "Kafka integration with asyncio";
     homepage = "https://aiokafka.readthedocs.org";
diff --git a/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix b/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix
index 7b84996a1c91..6403f396eaac 100644
--- a/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiomultiprocess/default.nix
@@ -24,6 +24,14 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [ "aiomultiprocess/tests/*.py" ];
+
+  disabledTests = [
+    # tests are flaky and make the whole test suite time out
+    "test_pool_worker_exceptions"
+    "test_pool_worker_max_tasks"
+    "test_pool_worker_stop"
+  ];
+
   pythonImportsCheck = [ "aiomultiprocess" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/aiomysql/default.nix b/nixpkgs/pkgs/development/python-modules/aiomysql/default.nix
index 803f642406c8..3432931f9356 100644
--- a/nixpkgs/pkgs/development/python-modules/aiomysql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiomysql/default.nix
@@ -4,6 +4,7 @@
 , pymysql
 , pytest
 , isPy27
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -18,6 +19,14 @@ buildPythonPackage rec {
     sha256 = "1qvy3phbsxp55161dnppjfx2m1kn82v0irc3xzqw0adfd81vaiad";
   };
 
+  patches = [
+    (fetchpatch {
+      # vendor functions previously provided by pymysql.util
+      url = "https://github.com/aio-libs/aiomysql/pull/554/commits/919b997a9de7f53d721af76762fba425e306531e.patch";
+      sha256 = "V1VYyqr6RwTXoVoGVyMuJst6uqTuuHbpMOpLoVZO1XA=";
+    })
+  ];
+
   propagatedBuildInputs = [
     pymysql
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiopg/default.nix b/nixpkgs/pkgs/development/python-modules/aiopg/default.nix
new file mode 100644
index 000000000000..cb9cd327e8ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiopg/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, psycopg2
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiopg";
+  version = "1.2.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0c6s2p1fjbdk1ygpl6a1s1rbnsk8gw9kj99pf98nxhb9j3iahas4";
+  };
+
+  propagatedBuildInputs = [
+    async-timeout
+    psycopg2
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "psycopg2-binary" "psycopg2"
+  '';
+
+  # Tests requires a PostgreSQL Docker instance
+  doCheck = false;
+
+  pythonImportsCheck = [ "aiopg" ];
+
+  meta = with lib; {
+    description = "Python library for accessing a PostgreSQL database";
+    homepage = "https://aiopg.readthedocs.io/";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix b/nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix
new file mode 100644
index 000000000000..0b079e0d1a59
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, aiohttp
+, async-timeout
+, backports-zoneinfo
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, tzdata
+}:
+
+buildPythonPackage rec {
+  pname = "aiopvpc";
+  version = "2.1.2";
+  disabled = pythonOlder "3.8";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "azogue";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0s8ki46dh39kw6qvsjcfcxa0gblyi33m3hry137kbi4lw5ws6qhr";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    backports-zoneinfo
+    tzdata
+    async-timeout
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml --replace \
+      " --cov --cov-report term --cov-report html" ""
+  '';
+
+  pythonImportsCheck = [ "aiopvpc" ];
+
+  meta = with lib; {
+    description = "Python module to download Spanish electricity hourly prices (PVPC)";
+    homepage = "https://github.com/azogue/aiopvpc";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix b/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix
index 53daf1f22696..1bce60ce6af9 100644
--- a/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiorecollect/default.nix
@@ -1,7 +1,6 @@
 { lib
 , aiohttp
 , aresponses
-, async-timeout
 , buildPythonPackage
 , fetchFromGitHub
 , freezegun
@@ -13,19 +12,23 @@
 
 buildPythonPackage rec {
   pname = "aiorecollect";
-  version = "1.0.3";
+  version = "1.0.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-S4HL8vJS/dTKsR5egKRSHqZYPClcET5Le06euHPyIkU=";
+    sha256 = "sha256-A4qk7eo4maCRP4UmtWrRCPvG6YrLVSOiOcfN8pEj5Po=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  propagatedBuildInputs = [ aiohttp ];
+  propagatedBuildInputs = [
+    aiohttp
+  ];
 
   checkInputs = [
     aresponses
@@ -35,8 +38,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Ignore the examples as they are prefixed with test_
-  pytestFlagsArray = [ "--ignore examples/" ];
+  disabledTestPaths = [ "examples/" ];
+
   pythonImportsCheck = [ "aiorecollect" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
index aa5e227ca65b..6e1b02e4fe9a 100644
--- a/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "0.6.2";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vlIon+VAHeJiaSIVMEKEpwQC4gXA52vxfEkiQMC9yiw=";
+    sha256 = "sha256-QRCqkaKhPQQjNt9mw8nlTB5YKLmIZbXfrxarb3Ksr5k=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiosignal/default.nix b/nixpkgs/pkgs/development/python-modules/aiosignal/default.nix
new file mode 100644
index 000000000000..9b9ef3b12ae1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiosignal/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, frozenlist
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiosignal";
+  version = "1.1.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0a9md2dy83qwg2an57nqrzp9nb7krq27y9zz0f7qxcrv0xd42djy";
+  };
+
+  propagatedBuildInputs = [
+    frozenlist
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace "--cov=aiosignal" ""
+  '';
+
+  pythonImportsCheck = [ "aiosignal" ];
+
+  meta = with lib; {
+    description = "Python list of registered asynchronous callbacks";
+    homepage = "https://github.com/aio-libs/aiosignal";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiosmb/default.nix b/nixpkgs/pkgs/development/python-modules/aiosmb/default.nix
index ce20341eae1d..b9c968d63f5b 100644
--- a/nixpkgs/pkgs/development/python-modules/aiosmb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiosmb/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "aiosmb";
-  version = "0.2.41";
+  version = "0.2.44";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-hiLLoFswh0rm5f5TsaX+zyRDkOIyzGXVO0M5J5d/gtQ=";
+    sha256 = "sha256-xNdrOO0BqV4sD6U39G2RXihDBBf516x8RLiqNLnZyWk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix b/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
index 115da7dfca40..2535253dc2a3 100644
--- a/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioswitcher/default.nix
@@ -3,7 +3,7 @@
 , asynctest
 , buildPythonPackage
 , fetchFromGitHub
-, poetry
+, poetry-core
 , pytest-aiohttp
 , pytest-asyncio
 , pytest-sugar
@@ -12,19 +12,23 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "1.2.2";
+  version = "1.2.5";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "TomerFi";
     repo = pname;
     rev = version;
-    sha256 = "0wvca1jbyj4bwrpkpklbxnkvdp9zs7mrvg5b9vkx2hpyr81vyxam";
+    sha256 = "sha256-eiWmB2DVNAYHPHfnVwv0+4A/wYLgtAa1ReGsmwiIvAk=";
   };
 
-  nativeBuildInputs = [ poetry ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  propagatedBuildInputs = [ aiohttp ];
+  propagatedBuildInputs = [
+    aiohttp
+  ];
 
   checkInputs = [
     asynctest
diff --git a/nixpkgs/pkgs/development/python-modules/aioymaps/default.nix b/nixpkgs/pkgs/development/python-modules/aioymaps/default.nix
new file mode 100644
index 000000000000..4a6d806dee1d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioymaps/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aioymaps";
+  version = "1.1.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rvgf4flvnpjj0sm14xlnfmmnlmkz6xq5h5mfb14amkfy76za3jm";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "aioymaps" ];
+
+  meta = with lib; {
+    description = "Python package fetch data from Yandex maps";
+    homepage = "https://github.com/devbis/aioymaps";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix b/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
index ee07588b325d..23b4173f8da8 100644
--- a/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alarmdecoder/default.nix
@@ -1,28 +1,51 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pyserial, pyftdi, pyusb
-, pyopenssl, nose, isPy3k, pythonOlder, mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pyftdi
+, pyopenssl
+, pyserial
+, pytestCheckHook
+, pythonOlder
+, pyusb
+}:
 
 buildPythonPackage rec {
   pname = "alarmdecoder";
-  version = "1.13.10";
+  version = "1.13.11";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "nutechsoftware";
     repo = "alarmdecoder";
     rev = version;
-    sha256 = "05581j78181p6mwbfpbkp5irnrzsvps1lslgqrh7xbdcmz5b2nxd";
+    sha256 = "sha256-q2s+wngDKtWm5mxGHNAc63Ed6tiQD9gLHVoQZNWFB0w=";
   };
 
-  propagatedBuildInputs = [ pyserial pyftdi pyusb pyopenssl ];
+  propagatedBuildInputs = [
+    pyftdi
+    pyopenssl
+    pyserial
+    pyusb
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Socket issue, https://github.com/nutechsoftware/alarmdecoder/issues/45
+    "test_ssl"
+    "test_ssl_exception"
+  ];
 
-  doCheck = !isPy3k;
-  checkInputs = [ nose mock ];
   pythonImportsCheck = [ "alarmdecoder" ];
 
   meta = with lib; {
+    description = "Python interface for the Alarm Decoder (AD2USB, AD2SERIAL and AD2PI) devices";
     homepage = "https://github.com/nutechsoftware/alarmdecoder";
-    description =
-      "Python interface for the Alarm Decoder (AD2) family of alarm devices. (AD2USB, AD2SERIAL and AD2PI)";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/amply/default.nix b/nixpkgs/pkgs/development/python-modules/amply/default.nix
index 0589caf1e6a1..35aa3ecb4d3a 100644
--- a/nixpkgs/pkgs/development/python-modules/amply/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amply/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, setuptools_scm
+, setuptools-scm
 , docutils
 , pyparsing
 , pytestCheckHook
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "cb12dcb49d16b168c02be128a1527ecde50211e4bd94af76ff4e67707f5a2d38";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     docutils
     pyparsing
diff --git a/nixpkgs/pkgs/development/python-modules/amqtt/default.nix b/nixpkgs/pkgs/development/python-modules/amqtt/default.nix
new file mode 100644
index 000000000000..8ab0e7a7c0cc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/amqtt/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonPackage
+, docopt
+, fetchFromGitHub
+, hypothesis
+, passlib
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, transitions
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "amqtt";
+  version = "0.10.0-alpha.3";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Yakifo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wz85ykjgi2174qcdgpakmc4m0p96v62az7pvc9hyallq1v1k4n6";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+
+  propagatedBuildInputs = [
+    docopt
+    passlib
+    pyyaml
+    transitions
+    websockets
+  ];
+
+  checkInputs = [
+    hypothesis
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Test are not ported from hbmqtt yet
+    "tests/test_cli.py"
+    "tests/test_client.py"
+  ];
+
+  disabledTests = [
+    # Requires network access
+    "test_connect_tcp"
+  ];
+
+  pythonImportsCheck = [ "amqtt" ];
+
+  meta = with lib; {
+    description = "Python MQTT client and broker implementation";
+    homepage = "https://amqtt.readthedocs.io/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/androidtv/default.nix b/nixpkgs/pkgs/development/python-modules/androidtv/default.nix
index 98ab09fd8e6b..02edcea42efd 100644
--- a/nixpkgs/pkgs/development/python-modules/androidtv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/androidtv/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "androidtv";
-  version = "0.0.58";
+  version = "0.0.59";
 
   # pypi does not contain tests, using github sources instead
   src = fetchFromGitHub {
     owner = "JeffLIrion";
     repo = "python-androidtv";
     rev = "v${version}";
-    sha256 = "sha256-/5sYiYRFa8XJJ4QSxLzJBHaKfAKsGETiVDHerNQ79U8=";
+    sha256 = "sha256-QuKWOo+QMBpVJglwvaSMbKKYMN/MW31E7BgIMchESG8=";
   };
 
   propagatedBuildInputs = [ adb-shell pure-python-adb ]
diff --git a/nixpkgs/pkgs/development/python-modules/angr/default.nix b/nixpkgs/pkgs/development/python-modules/angr/default.nix
index 588e647647d1..0ea298e06e19 100644
--- a/nixpkgs/pkgs/development/python-modules/angr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/angr/default.nix
@@ -42,14 +42,14 @@ in
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.0.6852";
+  version = "9.0.7912";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8BN706jqflhKmHVLQ1Y0k3GMScB1Hs5E/zndgq0sXB8=";
+    sha256 = "sha256-261fk0JM37Hq+xsMF95VqLyidWE4ZUeygp8BP/DBXG4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/angrop/default.nix b/nixpkgs/pkgs/development/python-modules/angrop/default.nix
index 1237ed6fa46d..cbe2ed9db2ad 100644
--- a/nixpkgs/pkgs/development/python-modules/angrop/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/angrop/default.nix
@@ -4,23 +4,25 @@
 , fetchFromGitHub
 , progressbar
 , pythonOlder
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "angrop";
-  version = "9.0.6852";
+  version = "9.0.7912";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uOf2d3TbTdLobqfdOUSVQ/mqyD3TaYPlPCNFsqcPrXo=";
+    sha256 = "sha256-nbVvgbTk9LFA376alu4Cxqcu9b9CT9yutnfE5fVT8gY=";
   };
 
   propagatedBuildInputs = [
     angr
     progressbar
+    tqdm
   ];
 
   # Tests have additional requirements, e.g., angr binaries
diff --git a/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix b/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
index f28668a8912b..9cc3fb827755 100644
--- a/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aniso8601/default.nix
@@ -1,22 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi
-, dateutil, mock, isPy3k }:
+{ lib
+, buildPythonPackage
+, dateutil
+, fetchPypi
+, isPy3k
+, mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "aniso8601";
   version = "9.0.1";
 
-  meta = with lib; {
-    description = "Parses ISO 8601 strings.";
-    homepage    = "https://bitbucket.org/nielsenb/aniso8601";
-    license     = licenses.bsd3;
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-cuMRdmfu32aVG7LZP0KWpWuUsHioqVkFoFJhH7PxuXM=";
   };
 
-  propagatedBuildInputs = [ dateutil ];
+  propagatedBuildInputs = [
+    dateutil
+  ];
 
-  checkInputs = lib.optional (!isPy3k) mock;
+  checkInputs = [
+    pytestCheckHook
+  ] ++ lib.optional (!isPy3k) mock;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973";
+  pythonImportsCheck = [ "aniso8601" ];
+
+  meta = with lib; {
+    description = "Python Parser for ISO 8601 strings";
+    homepage = "https://bitbucket.org/nielsenb/aniso8601";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix b/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
index df115cf7c470..4abcec541a04 100644
--- a/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, six, mock, pytestCheckHook, setuptools, setuptools_scm, toml }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, six, mock, pytestCheckHook, setuptools, setuptools-scm, toml }:
 
 buildPythonPackage rec {
   pname = "ansi2html";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "0f124ea7efcf3f24f1f9398e527e688c9ae6eab26b0b84e1299ef7f94d92c596";
   };
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm toml ];
   propagatedBuildInputs = [ six setuptools ];
 
   preCheck = "export PATH=$PATH:$out/bin";
diff --git a/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix b/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix
index e404edddbcf3..eec3b5cc813e 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible-lint/default.nix
@@ -1,69 +1,90 @@
 { lib
-, fetchPypi
 , buildPythonPackage
 , isPy27
-, ansible
+, fetchPypi
+, setuptools-scm
+, ansible-base
+, enrich
+, flaky
 , pyyaml
-, ruamel-yaml
 , rich
-, pytestCheckHook
-, pytest-xdist
-, git
+, ruamel-yaml
+, tenacity
 , wcmatch
-, enrich
-, python
+, yamllint
+, pytest-xdist
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "ansible-lint";
-  version = "5.0.2";
+  version = "5.0.8";
   disabled = isPy27;
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-vgt/KqNozTPaON/I19SybBZuo7bbl3Duq5dTBTMlj44=";
+    sha256 = "sha256-tnuWKEB66bwVuwu3H3mHG99ZP+/msGhMDMRL5fyQgD8=";
   };
 
-  postPatch = ''
-    substituteInPlace src/ansiblelint/file_utils.py \
-      --replace 'raise RuntimeError("Unable to determine file type for %s" % pathex)' 'return "playbook"'
-  '';
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    ansible-base
+    enrich
+    flaky
+    pyyaml
+    rich
+    ruamel-yaml
+    tenacity
+    wcmatch
+    yamllint
+  ];
 
-  buildInputs = [ python ];
+  checkInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "--numprocesses" "auto"
+  ];
 
-  propagatedBuildInputs = [ ansible enrich pyyaml rich ruamel-yaml wcmatch ];
+  postPatch = ''
+    # Both patches are addressed in https://github.com/ansible-community/ansible-lint/pull/1549
+    # and should be removed once merged upstream
 
-  checkInputs = [ pytestCheckHook pytest-xdist git ];
+    # fixes test_get_yaml_files_umlaut and test_run_inside_role_dir
+    substituteInPlace src/ansiblelint/file_utils.py \
+      --replace 'os.path.join(root, name)' 'os.path.normpath(os.path.join(root, name))'
+    # fixes test_custom_kinds
+    substituteInPlace src/ansiblelint/file_utils.py \
+      --replace "if name.endswith('.yaml') or name.endswith('.yml')" ""
+  '';
 
   preCheck = ''
     # ansible wants to write to $HOME and crashes if it can't
     export HOME=$(mktemp -d)
-    export PATH=$PATH:${lib.makeBinPath [ ansible ]}
+    export PATH=$PATH:${lib.makeBinPath [ ansible-base ]}
 
     # create a working ansible-lint executable
     export PATH=$PATH:$PWD/src/ansiblelint
     ln -rs src/ansiblelint/__main__.py src/ansiblelint/ansible-lint
     patchShebangs src/ansiblelint/__main__.py
+
+    # create symlink like in the git repo so test_included_tasks does not fail
+    ln -s ../roles examples/playbooks/roles
   '';
 
   disabledTests = [
     # requires network
     "test_prerun_reqs_v1"
     "test_prerun_reqs_v2"
-    # Assertion error with negative numbers; maybe requieres an ansible update?
-    "test_negative"
-    "test_example"
-    "test_playbook"
-    "test_included_tasks"
-    "test_long_line"
-
-    "test_get_yaml_files_umlaut"
-    "test_run_inside_role_dir"
-    "test_role_handler_positive"
   ];
 
-  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ansible ]}" ];
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ansible-base ]}" ];
 
   meta = with lib; {
     homepage = "https://github.com/ansible-community/ansible-lint";
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/base.nix b/nixpkgs/pkgs/development/python-modules/ansible/base.nix
new file mode 100644
index 000000000000..99a63d699391
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ansible/base.nix
@@ -0,0 +1,78 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, installShellFiles
+, ansible-collections
+, cryptography
+, jinja2
+, junit-xml
+, lxml
+, ncclient
+, packaging
+, paramiko
+, pexpect
+, psutil
+, pycrypto
+, pyyaml
+, requests
+, scp
+, windowsSupport ? false, pywinrm
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "ansible-base";
+  version = "2.10.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "046ynyk9ldw35jbyw6jp0dmms735cd5i1f046f2lis8xv27bci3p";
+  };
+
+  # ansible_connection is already wrapped, so don't pass it through
+  # the python interpreter again, as it would break execution of
+  # connection plugins.
+  postPatch = ''
+    substituteInPlace lib/ansible/executor/task_executor.py \
+      --replace "[python," "["
+  '';
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  propagatedBuildInputs = [
+    # depend on ansible-collections instead of the other way around
+    ansible-collections
+    # from requirements.txt
+    cryptography
+    jinja2
+    packaging
+    pyyaml
+    # optional dependencies
+    junit-xml
+    lxml
+    ncclient
+    paramiko
+    pexpect
+    psutil
+    pycrypto
+    requests
+    scp
+    xmltodict
+  ] ++ lib.optional windowsSupport pywinrm;
+
+  postInstall = ''
+    installManPage docs/man/man1/*.1
+  '';
+
+  # internal import errors, missing dependencies
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Radically simple IT automation";
+    homepage = "https://www.ansible.com";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/collections.nix b/nixpkgs/pkgs/development/python-modules/ansible/collections.nix
new file mode 100644
index 000000000000..9547b9a09187
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ansible/collections.nix
@@ -0,0 +1,77 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, ansible-base
+, jsonschema
+, jxmlease
+, ncclient
+, netaddr
+, paramiko
+, pynetbox
+, scp
+, textfsm
+, ttp
+, xmltodict
+, withJunos ? false
+, withNetbox ? false
+}:
+
+buildPythonPackage rec {
+  pname = "ansible";
+  version = "3.4.0";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "096rbgz730njk0pg8qnc27mmz110wqrw354ca9gasb7rqg0f4d6a";
+  };
+
+  postPatch = ''
+    # make ansible-base depend on ansible-collection, not the other way around
+    sed -i '/ansible-base/d' setup.py
+  '';
+
+  propagatedBuildInputs = lib.unique ([
+    # Support ansible collections by default, make all others optional
+    # ansible.netcommon
+    jxmlease
+    ncclient
+    netaddr
+    paramiko
+    xmltodict
+    # ansible.posix
+    # ansible.utils
+    jsonschema
+    textfsm
+    ttp
+    xmltodict
+    # ansible.windows
+
+    # lots of collections with dedicated requirements.txt and pyproject.toml files,
+    # add the dependencies for the collections you need conditionally and install
+    # ansible using overrides to enable the collections you need.
+  ] ++ lib.optionals (withJunos) [
+    # ansible_collections/junipernetworks/junos/requirements.txt
+    jxmlease
+    ncclient
+    paramiko
+    scp
+    xmltodict
+  ] ++ lib.optionals (withNetbox) [
+    # ansible_collections/netbox/netbox/pyproject.toml
+    pynetbox
+  ]);
+
+  # don't try and fail to strip 48000+ non strippable files, it takes >5 minutes!
+  dontStrip = true;
+
+  # difficult to test
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Radically simple IT automation";
+    homepage = "http://www.ansible.com";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/core.nix b/nixpkgs/pkgs/development/python-modules/ansible/core.nix
new file mode 100644
index 000000000000..b300771b346a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ansible/core.nix
@@ -0,0 +1,83 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, installShellFiles
+, ansible-collections
+, cryptography
+, jinja2
+, junit-xml
+, lxml
+, ncclient
+, packaging
+, paramiko
+, pexpect
+, psutil
+, pycrypto
+, pyyaml
+, requests
+, resolvelib
+, scp
+, windowsSupport ? false, pywinrm
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "ansible-core";
+  version = "2.11.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-fnWCepTUfRw+GTDXCPDvY3o6uaIfdXqvVd6rbp9HxoI=";
+  };
+
+  # ansible_connection is already wrapped, so don't pass it through
+  # the python interpreter again, as it would break execution of
+  # connection plugins.
+  postPatch = ''
+    substituteInPlace lib/ansible/executor/task_executor.py \
+      --replace "[python," "["
+
+    substituteInPlace requirements.txt \
+      --replace "resolvelib >= 0.5.3, < 0.6.0" "resolvelib"
+  '';
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  propagatedBuildInputs = [
+    # depend on ansible-collections instead of the other way around
+    ansible-collections
+    # from requirements.txt
+    cryptography
+    jinja2
+    packaging
+    pyyaml
+    resolvelib
+    # optional dependencies
+    junit-xml
+    lxml
+    ncclient
+    paramiko
+    pexpect
+    psutil
+    pycrypto
+    requests
+    scp
+    xmltodict
+  ] ++ lib.optional windowsSupport pywinrm;
+
+  postInstall = ''
+    installManPage docs/man/man1/*.1
+  '';
+
+  # internal import errors, missing dependencies
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Radically simple IT automation";
+    homepage = "https://www.ansible.com";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/default.nix b/nixpkgs/pkgs/development/python-modules/ansible/legacy.nix
index 245375c26be0..174ab6dc6c46 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible/legacy.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "ansible";
-  version = "2.9.12";
+  version = "2.9.22";
 
   src = fetchFromGitHub {
     owner = "ansible";
     repo = "ansible";
     rev = "v${version}";
-    sha256 = "0c794k0cyl54807sh9in0l942ah6g6wlz5kf3qvy5lhd581zlgyb";
+    sha256 = "0gkv59cfxzs0ahgkxmmx9sqnfb2xqr10q4yh2662nbzajmvqmfgm";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/anytree/default.nix b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
index c11833ba5793..fa92bc44891a 100644
--- a/nixpkgs/pkgs/development/python-modules/anytree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
@@ -52,6 +52,6 @@ buildPythonPackage rec {
     description = "Powerful and Lightweight Python Tree Data Structure";
     homepage = "https://github.com/c0fec0de/anytree";
     license = licenses.asl20;
-    maintainers = [ maintainers.worldofpeace ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/apipkg/default.nix b/nixpkgs/pkgs/development/python-modules/apipkg/default.nix
index 10e2369e12ee..5e7ae3860a93 100644
--- a/nixpkgs/pkgs/development/python-modules/apipkg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apipkg/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, pytest, setuptools_scm, isPy3k }:
+, pytest, setuptools-scm, isPy3k }:
 
 buildPythonPackage rec {
   pname = "apipkg";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "37228cda29411948b422fae072f57e31d3396d2ee1c9783775980ee9c9990af6";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   checkInputs = [ pytest ];
 
   # Fix pytest 4 support. See: https://github.com/pytest-dev/apipkg/issues/14
diff --git a/nixpkgs/pkgs/development/python-modules/apispec/default.nix b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
index 13fb71d7f2f2..1262bb3338a3 100644
--- a/nixpkgs/pkgs/development/python-modules/apispec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , pyyaml
 , prance
 , marshmallow
@@ -11,16 +12,20 @@
 
 buildPythonPackage rec {
   pname = "apispec";
-  version = "4.3.0";
+  version = "4.4.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5ec0fe72f1422a1198973fcbb48d0eb5c7390f4b0fbe55474fce999ad6826a9b";
+    sha256 = "sha256-qt7UrkUXUsWLcOV5kj2Nt9rwtx9i3vjI/noqUr18BqI=";
   };
 
-  checkInputs = [
+  propagatedBuildInputs = [
     pyyaml
     prance
+  ];
+
+  checkInputs = [
     openapi-spec-validator
     marshmallow
     mock
diff --git a/nixpkgs/pkgs/development/python-modules/aplpy/default.nix b/nixpkgs/pkgs/development/python-modules/aplpy/default.nix
index e253c610c214..682ef6e17fdf 100644
--- a/nixpkgs/pkgs/development/python-modules/aplpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aplpy/default.nix
@@ -27,13 +27,26 @@ buildPythonPackage rec {
     sha256 = "239f3d83635ca4251536aeb577df7c60df77fc4d658097b92094719739aec3f3";
   };
 
-  patches = [ (fetchpatch {
-      # Can be removed in next release after 2.0.3
+  patches = [
+    # Fixes compatibility with astropy-helpers. This patch has been merged into
+    # the master branch as of May 2020, and should be part of the next
+    # upstream release (v2.0.3 was tagged in Feb. 2019).
+    (fetchpatch {
       url = "https://github.com/aplpy/aplpy/pull/448.patch";
       sha256 = "1pnzh7ykjc8hwahzbzyryrzv5a8fddgd1bmzbhagkrn6lmvhhpvq";
       excludes = [ "tox.ini" "azure-pipelines.yml" ".circleci/config.yml" "MANIFEST.in" ".gitignore"
        "setup.cfg" "appveyor.yml" "readthedocs.yml" "CHANGES.rst" ".gitmodules" ".travis.yml" "astropy_helpers" ];
     })
+    # Fix for matplotlib >= 3.4 (https://github.com/aplpy/aplpy/pull/466)
+    # Note: because of a security thing, github will refuse to serve this patch from the
+    # "normal" location
+    # (https://github.com/aplpy/aplpy/commit/56c1cc694fdea69e7da8506d3212c4495adb0ca5.patch)
+    # due to the fact that it contains the PDF magic bytes, but it will serve it from
+    # this githubusercontent domain.
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/aplpy/aplpy/pull/466/commit/56c1cc694fdea69e7da8506d3212c4495adb0ca5.patch";
+      sha256 = "0jna2n1cgfzr0a27m5z94wwph7qg25hs7lycrdb2dp3943rb35g4";
+    })
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/apprise/default.nix b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
index fad9e7d03fa8..61cfed3dbb9e 100644
--- a/nixpkgs/pkgs/development/python-modules/apprise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.9.1";
+  version = "0.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-FW5gt35yoXVr2+hiGBDJ/5jFFfIpn2Z9sDN8acoO4FI=";
+    sha256 = "sha256-yKzpyJHUIkVYVwrL6oCPMd+QSVML2czWmQHCemXWAMQ=";
   };
 
   nativeBuildInputs = [ Babel installShellFiles ];
diff --git a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
index 7802df99ebed..601dd954bc42 100644
--- a/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/archinfo/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.0.6852";
+  version = "9.0.7912";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NlL/uRI568HYkt8T2kuzyHNXpWybOLbFduE+1dzm4Qo=";
+    sha256 = "sha256-nHXF6Il6rHHrnGYEmv4FPQr6MsurzH1exkJS9UXThBs=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/arrow/1.nix b/nixpkgs/pkgs/development/python-modules/arrow/1.nix
deleted file mode 100644
index f9b830762b30..000000000000
--- a/nixpkgs/pkgs/development/python-modules/arrow/1.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, simplejson, typing-extensions, python-dateutil, pytz, pytest-mock, sphinx
-, dateparser, pytestcov, pytestCheckHook
-}:
-
-buildPythonPackage rec {
-  pname = "arrow";
-  version = "1.0.3";
-
-  disabled = pythonOlder "3.6";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0793badh4hgbk2c5g70hmbl7n3d4g5d87bcflld0w9rjwy59r71r";
-  };
-
-  propagatedBuildInputs = [ python-dateutil ]
-    ++ lib.optionals (!pythonOlder "3.8") [ typing-extensions ];
-
-  checkInputs = [
-    dateparser
-    pytestCheckHook
-    pytestcov
-    pytest-mock
-    pytz
-    simplejson
-    sphinx
-  ];
-
-  # ParserError: Could not parse timezone expression "America/Nuuk"
-  disabledTests = [
-    "test_parse_tz_name_zzz"
-  ];
-
-  meta = with lib; {
-    description = "Python library for date manipulation";
-    homepage = "https://github.com/crsmithdev/arrow";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ thoughtpolice oxzi ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/arrow/default.nix b/nixpkgs/pkgs/development/python-modules/arrow/default.nix
index 93347d7a4b4b..159ef917f521 100644
--- a/nixpkgs/pkgs/development/python-modules/arrow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arrow/default.nix
@@ -1,29 +1,39 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, nose, chai, simplejson, backports_functools_lru_cache
-, python-dateutil, pytz, pytest-mock, sphinx, dateparser, pytestcov
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, python-dateutil
+, typing-extensions
 , pytestCheckHook
+, pytest-mock
+, pytz
+, simplejson
 }:
 
 buildPythonPackage rec {
   pname = "arrow";
   version = "1.0.3";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "399c9c8ae732270e1aa58ead835a79a40d7be8aa109c579898eb41029b5a231d";
   };
 
+  postPatch = ''
+    # no coverage reports
+    sed -i "/addopts/d" tox.ini
+  '';
+
   propagatedBuildInputs = [ python-dateutil ]
-    ++ lib.optionals isPy27 [ backports_functools_lru_cache ];
+    ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   checkInputs = [
-    dateparser
     pytestCheckHook
-    pytestcov
     pytest-mock
     pytz
     simplejson
-    sphinx
   ];
 
   # ParserError: Could not parse timezone expression "America/Nuuk"
diff --git a/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix b/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix
index aafbaa15ffe7..cbddf962bd10 100644
--- a/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asciimatics/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pyfiglet
 , pillow
 , wcwidth
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/astroid/1.6.nix b/nixpkgs/pkgs/development/python-modules/astroid/1.6.nix
index 2c763e214e87..47c7e8f6eb3f 100644
--- a/nixpkgs/pkgs/development/python-modules/astroid/1.6.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroid/1.6.nix
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/PyCQA/astroid";
     license = licenses.lgpl2;
     platforms = platforms.all;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/astroid/default.nix b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
index 77ac408076cc..d6fda529d5da 100644
--- a/nixpkgs/pkgs/development/python-modules/astroid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
@@ -35,6 +35,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/PyCQA/astroid";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/astropy-healpix/default.nix b/nixpkgs/pkgs/development/python-modules/astropy-healpix/default.nix
index e82faba97583..80ef403b2cc0 100644
--- a/nixpkgs/pkgs/development/python-modules/astropy-healpix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astropy-healpix/default.nix
@@ -3,25 +3,42 @@
 , fetchPypi
 , numpy
 , astropy
-, astropy-helpers
+, astropy-extension-helpers
+, setuptools-scm
+, pytestCheckHook
+, pytest-doctestplus
+, hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "astropy-healpix";
   version = "0.6";
 
-  doCheck = false; # tests require pytest-astropy
-
   src = fetchPypi {
-    inherit pname version;
+    inherit version;
+    pname = lib.replaceStrings ["-"] ["_"] pname;
     sha256 = "409a6621c383641456c074f0f0350a24a4a58e910eaeef14e9bbce3e00ad6690";
   };
 
-  propagatedBuildInputs = [ numpy astropy astropy-helpers ];
+  nativeBuildInputs = [
+    astropy-extension-helpers
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    astropy
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-doctestplus
+    hypothesis
+  ];
 
-  # Disable automatic update of the astropy-helper module
-  postPatch = ''
-    substituteInPlace setup.cfg --replace "auto_use = True" "auto_use = False"
+  # tests must be run in the build directory
+  preCheck = ''
+    cd build/lib*
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/astropy/default.nix b/nixpkgs/pkgs/development/python-modules/astropy/default.nix
index 9ffcba63954b..06cfafc134f3 100644
--- a/nixpkgs/pkgs/development/python-modules/astropy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astropy/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , buildPythonPackage
 , isPy3k
 , cython
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     sha256 = "2c194f8a429b8399de64a413a06881ea49f0525cabaa2d78fc132b9e970adc6a";
   };
 
-  nativeBuildInputs = [ setuptools_scm astropy-helpers astropy-extension-helpers cython jinja2 ];
+  nativeBuildInputs = [ setuptools-scm astropy-helpers astropy-extension-helpers cython jinja2 ];
   propagatedBuildInputs = [ numpy pyerfa ];
   checkInputs = [ pytest pytest-astropy ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/asttokens/default.nix b/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
index ecbbfa909112..bb4cf989cddf 100644
--- a/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asttokens/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchPypi, fetchpatch, buildPythonPackage,
-  setuptools_scm, toml, six, astroid, pytest
+  setuptools-scm, toml, six, astroid, pytest
 }:
 
 buildPythonPackage rec {
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ setuptools_scm toml six astroid ];
+  propagatedBuildInputs = [ setuptools-scm toml six astroid ];
 
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
index a25916bc99c1..46084fcd8a9d 100644
--- a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.16.0";
+  version = "0.18.0";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = version;
-    sha256 = "sha256-vgy/zn1Xm7Fm7u/YMe/nJa3tyRNKx/WHz0AHfhFaVKo=";
+    sha256 = "sha256-pntOy7J4dPtAS8ZzxLLV79VQ36r+0sXMImJFhDk9bQw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix b/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
index 2360d170f38e..b5ae2b4baf8d 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncio-dgram/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "asyncio-dgram";
-  version = "1.2.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "jsbronder";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wgcL/BdNjzitkkaGyRUQbW1uv1enLDnHk30YHClK58o=";
+    sha256 = "sha256-EL3iOoCfLAtfdMI1J2XMf4izOEo9+a+0PNQs+4HuEfo=";
   };
 
   # OSError: AF_UNIX path too long
diff --git a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
index 9271adeb617f..f6d59c633cd9 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
@@ -50,6 +50,6 @@ buildPythonPackage rec {
     description = "Provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework";
     homepage = "https://asyncssh.readthedocs.io/en/latest";
     license = licenses.epl20;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix b/nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix
new file mode 100644
index 000000000000..63e096bdc0f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/asyncstdlib/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, typing-extensions
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "asyncstdlib";
+  version = "3.9.1";
+  disabled = pythonOlder "3.7";
+  format = "flit";
+
+  src = fetchFromGitHub {
+    owner = "maxfischer2781";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "13ranr7zi61w52vfrxwkf32bbhk88j0r5c5z2x2h5vw268001lk2";
+  };
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "asyncstdlib" ];
+
+  meta = with lib; {
+    description = "Python library that extends the Python asyncio standard library";
+    homepage = "https://asyncstdlib.readthedocs.io/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix b/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
index 617d5562b43a..31d615f5314b 100755
--- a/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -1,30 +1,28 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy3k
-, certifi
-, chardet
+, fetchFromGitHub
 , deprecated
-, idna
 , oauthlib
 , requests
 , requests_oauthlib
 , six
-, urllib3
-, pytestrunner
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
   version = "3.8.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7ef384a91a790c807336e2bd6b7554284691aadd6d7413d199baf752dd84c53e";
+  src = fetchFromGitHub {
+    owner = "atlassian-api";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-J0/CtfBtOdWReKQS/VvOL/3r+j4zJfnv/ICIXepKUvc=";
   };
 
-  checkInputs = [ pytestrunner pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   propagatedBuildInputs = [ deprecated oauthlib requests requests_oauthlib six ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/audioread/default.nix b/nixpkgs/pkgs/development/python-modules/audioread/default.nix
index a4f6d9057654..d2964accc144 100644
--- a/nixpkgs/pkgs/development/python-modules/audioread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/audioread/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestrunner
 }:
 
 buildPythonPackage rec {
@@ -13,8 +12,6 @@ buildPythonPackage rec {
     sha256 = "a3480e42056c8e80a8192a54f6729a280ef66d27782ee11cbd63e9d4d1523089";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
-
   # No tests, need to disable or py3k breaks
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix b/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
new file mode 100644
index 000000000000..0f1f6d046463
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, aiohttp
+, beautifulsoup4
+, httpx
+, importlib-metadata
+, multidict
+, typer
+, yarl
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "authcaptureproxy";
+  version = "1.0.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "alandtse";
+    repo = "auth_capture_proxy";
+    rev = "v${version}";
+    sha256 = "1fbrmh6qa3dm3q3zdxaa0fls94wardbcvnjgwxk686wpjgs1xrs4";
+  };
+
+  postPatch = ''
+    # https://github.com/alandtse/auth_capture_proxy/issues/14
+    substituteInPlace pyproject.toml --replace \
+      "poetry.masonry.api" \
+      "poetry.core.masonry.api"
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    beautifulsoup4
+    httpx
+    importlib-metadata
+    multidict
+    typer
+    yarl
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "A proxy to capture authentication information from a webpage";
+    homepage = "https://github.com/alandtse/auth_capture_proxy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ graham33 hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/autobahn/default.nix b/nixpkgs/pkgs/development/python-modules/autobahn/default.nix
index 386d4766bbfa..52def3d6ee17 100644
--- a/nixpkgs/pkgs/development/python-modules/autobahn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autobahn/default.nix
@@ -1,35 +1,78 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k,
-  six, txaio, twisted, zope_interface, cffi,
-  trollius ? null, futures ? null,
-  mock, pytest, cryptography, pynacl
+{ lib
+, argon2_cffi
+, attrs
+, buildPythonPackage
+, cbor
+, cbor2
+, cffi
+, cryptography
+, fetchPypi
+, flatbuffers
+, mock
+, msgpack
+, passlib
+, pynacl
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, twisted
+, py-ubjson
+, txaio
+, ujson
+, zope_interface
 }:
+
 buildPythonPackage rec {
   pname = "autobahn";
   version = "21.3.1";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e126c1f583e872fb59e79d36977cfa1f2d0a8a79f90ae31f406faae7664b8e03";
+    sha256 = "00wf9dkfgakg80gy62prg650lb8zz9y9fdlxwxcznwp8hgsw29p1";
   };
 
-  propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ] ++
-    (lib.optionals (!isPy3k) [ trollius futures ]);
+  propagatedBuildInputs = [
+    argon2_cffi
+    cbor
+    cbor2
+    cffi
+    cryptography
+    flatbuffers
+    msgpack
+    passlib
+    py-ubjson
+    pynacl
+    twisted
+    txaio
+    ujson
+    zope_interface
+  ];
+
+  checkInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
-  checkInputs = [ mock pytest ];
-  checkPhase = ''
-    runHook preCheck
-    USE_TWISTED=true py.test $out
-    runHook postCheck
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest>=2.8.6,<3.3.0" "pytest"
   '';
 
-  # Tests do no seem to be compatible yet with pytest 5.1
-  # https://github.com/crossbario/autobahn-python/issues/1235
-  doCheck = false;
+  preCheck = ''
+    # Run asyncio tests (requires twisted)
+    export USE_ASYNCIO=1
+  '';
+
+  pytestFlagsArray = [ "--pyargs autobahn" ];
+
+  pythonImportsCheck = [ "autobahn" ];
 
   meta = with lib; {
-    description = "WebSocket and WAMP in Python for Twisted and asyncio.";
-    homepage    = "https://crossbar.io/autobahn";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    description = "WebSocket and WAMP in Python for Twisted and asyncio";
+    homepage = "https://crossbar.io/autobahn";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix b/nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix
new file mode 100644
index 000000000000..2276241d25e9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, lief
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "autoit-ripper";
+  version = "1.0.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mbsrfa72n7y1vkm9jhwhn1z3k45jxrlgx58ia1l2bp6chnnn2zy";
+  };
+
+  propagatedBuildInputs = [
+    lief
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "lief==0.10.1" "lief>=0.10.1"
+  '';
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "autoit_ripper" ];
+
+  meta = with lib; {
+    description = "Python module to extract AutoIt scripts embedded in PE binaries";
+    homepage = "https://github.com/nazywam/AutoIt-Ripper";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/automat/default.nix b/nixpkgs/pkgs/development/python-modules/automat/default.nix
index 20f54870e1f9..ce7566deb30d 100644
--- a/nixpkgs/pkgs/development/python-modules/automat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/automat/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi,
-  m2r, setuptools_scm, six, attrs }:
+  m2r, setuptools-scm, six, attrs }:
 
 buildPythonPackage rec {
   version = "20.2.0";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "7979803c74610e11ef0c0d68a2942b152df52da55336e0c9d58daf1831cbdf33";
   };
 
-  buildInputs = [ m2r setuptools_scm ];
+  buildInputs = [ m2r setuptools-scm ];
   propagatedBuildInputs = [ six attrs ];
 
   # Some tests require twisetd, but twisted requires Automat to build.
diff --git a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
index 491663b56cd0..737989ac3183 100644
--- a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.5.6";
+  version = "1.5.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5454e6e9a3d02aae38f866eec0d9a7de4ab9f93c10a273fb0340f3d6d09f7514";
+    sha256 = "276ced7e9e3cb22e5d7c14748384a5cf5d9002257c0ed50c0e075b68011bb6d0";
   };
 
   propagatedBuildInputs = [ pycodestyle toml ];
diff --git a/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix b/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
index 09a4c9460d1c..5eadd131d9ad 100644
--- a/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "21.4.0";
+  version = "21.5.0";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ulByke1sKVcDdBhAz/fxdNFJ0PSjYVdnBcO+GYEnZUQ=";
+    sha256 = "sha256-0EOGWJZyvcRJyOqkcISvjL7o6lIaCwMKLftshsQCR6E=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/awkward/default.nix b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
index 2acec8ccc6f1..4057758155e6 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89f126a072d3a6eee091e1afeed87e0b2ed3c34ed31a1814062174de3cab8d9b";
+    sha256 = "7d727542927a926f488fa62d04e2c5728c72660f17f822e627f349285f295063";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/awscrt/default.nix b/nixpkgs/pkgs/development/python-modules/awscrt/default.nix
new file mode 100644
index 000000000000..26c4334e3196
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/awscrt/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi, cmake, perl, stdenv, gcc10, darwin }:
+
+buildPythonPackage rec {
+  pname = "awscrt";
+  version = "0.11.13";
+
+  buildInputs = lib.optionals stdenv.isDarwin
+    (with darwin.apple_sdk.frameworks; [ CoreFoundation Security ]);
+
+  # Required to suppress -Werror
+  # https://github.com/NixOS/nixpkgs/issues/39687
+  hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
+
+  nativeBuildInputs = [ cmake ] ++
+    # gcc <10 is not supported, LLVM on darwin is just fine
+    lib.optionals (!stdenv.isDarwin && stdenv.isAarch64) [ gcc10 perl ];
+
+  dontUseCmakeConfigure = true;
+
+  # Unable to import test module
+  # https://github.com/awslabs/aws-crt-python/issues/281
+  doCheck = false;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-G/bf2AzWp8AHL4of0zfX3jIYyTtmTLBIC2ZKiMi19c0=";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/awslabs/aws-crt-python";
+    description = "Python bindings for the AWS Common Runtime";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ davegallant ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/azure-common/default.nix b/nixpkgs/pkgs/development/python-modules/azure-common/default.nix
index f77c938b1d7f..2312df1cafaf 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-common/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-common/default.nix
@@ -9,14 +9,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.26";
+  version = "1.1.27";
   pname = "azure-common";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "b2866238aea5d7492cfb0282fc8b8d5f6d06fb433872345864d45753c10b6e4f";
+    sha256 = "9f3f5d991023acbd93050cf53c4e863c6973ded7e236c69e99c8ff5c7bad41ef";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
index 2bcb4d42646c..6718ca1d5042 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
@@ -14,14 +14,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.12.0";
+  version = "1.15.0";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "adf2b1c6ef150a92295b4b405f982a9d2c55c4846728cb14760ca592acbb09ec";
+    sha256 = "197917b98fec661c35392e32abec4f690ac2117371a814e25e57c224ce23cf1f";
   };
 
   propagatedBuildInputs = [
@@ -45,6 +45,13 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "tests/" ];
   # disable tests which touch network
   disabledTests = [ "aiohttp" "multipart_send" "response" "request" "timeout" ];
+  disabledTestPaths = [
+    # requires testing modules which aren't published, and likely to create cyclic dependencies
+    "tests/test_connection_string_parsing.py"
+    # wants network
+    "tests/async_tests/test_streaming_async.py"
+    "tests/test_streaming.py"
+  ];
 
   meta = with lib; {
     description = "Microsoft Azure Core Library for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix b/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix
index f2c57d76623d..b201b39d52db 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "azure-datalake-store";
-  version = "0.0.51";
+  version = "0.0.52";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b871ebb3bcfd292e8a062dbbaacbc132793d98f1b60f549a8c3b672619603fc1";
+    sha256 = "4198ddb32614d16d4502b43d5c9739f81432b7e0e4d75d30e05149fe6007fea2";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
index 3d8e4df56540..f83040a4b3ce 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c4f29b2d9b717dad7919048f0a458dd84f83637c3d5c8f5a7e64634b22086719";
+    sha256 = "77af2c20abde7d8342da7993781605b440aeac0f95c4af13bb87465c3bd5fe35";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
index a0120ae35060..10c455ce072d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "azure-identity";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "872adfa760b2efdd62595659b283deba92d47b7a67557eb9ff48f0b5d04ee396";
+    sha256 = "2e70b00874e4f288e37804bc06bfaf216de8565c759594bf79cccfbf9ca2c78a";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
index 4432595a12e7..8ca4df197bb7 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-apimanagement/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
+  version = "2.0.0";
   pname = "azure-mgmt-apimanagement";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3ad7e2c3d20dd0141f9e2c0ae923121f7cbe7333bb314850e6f8b606636e3589";
+    sha256 = "54fade87af54904c8ac9785efccebc537c58a3c1f8726e929e473698f06ebbfc";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-billing/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-billing/default.nix
index d1cb009355de..91ec3c069c8b 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-billing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-billing/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , python
 , isPy3k
@@ -10,17 +11,18 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-billing";
-  version = "1.0.0"; #pypi's 0.2.0 doesn't build ootb
+  version = "6.0.0"; #pypi's 0.2.0 doesn't build ootb
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b55064546c8e94839d9f8c98e9ea4b021004b3804e192bf39fa65b603536ad0";
+    sha256 = "d4f5c5a4188a456fe1eb32b6c45f55ca2069c74be41eb76921840b39f2f5c07f";
     extension = "zip";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-botservice/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-botservice/default.nix
index ead8dbd3f015..69dff020c8e7 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-botservice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-botservice/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "0.3.0";
+  version = "1.0.0";
   pname = "azure-mgmt-botservice";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f8318878a66a0685a01bf27b7d1409c44eb90eb72b0a616c1a2455c72330f2f1";
+    sha256 = "9dae4d749a2a072e22703318ea36e379aec20876c553b2889037c7bdec4b9546";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
+    msrest
+    msrestazure
+  ];
 
   # no tests included
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
index dfadfbbc10e4..ca662f6b1455 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cdn";
-  version = "10.0.0";
+  version = "11.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f1216f505126483c568be511a3e0e654f886f13730dae5368609ff0573528cf2";
+    sha256 = "28e7070001e7208cdb6c2ad253ec78851abdd73be482230d2c0874eed5bc0907";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
index 09800f9cef36..cb782c6e58e3 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cognitiveservices";
-  version = "11.0.0";
+  version = "12.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "71414e3cd7445e44fc18f217f2d22df05c36877e1233328b2297d07ddf27e82a";
+    sha256 = "73054bd19866577e7e327518afc8f47e1639a11aea29a7466354b81804f4a676";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
index 2bfa56dc81c5..171c45220d17 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "19.0.0";
+  version = "21.0.0";
   pname = "azure-mgmt-compute";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "65afe759c6ee87dd89d65d59c8da4b2c04d197c07c1fbfdc56ef1aea468e4525";
+    sha256 = "9227c3755a70bc377d70e35e1fc6f1fab109dd88974fd2c7129867ccaa10f813";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
index 821c7db0d324..8bc79a7df2ff 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
@@ -1,21 +1,22 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "2.8.0";
+  version = "8.0.0";
   pname = "azure-mgmt-containerregistry";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "193k07a77z7bj61zn2gxvvfqi20cgxksvxp7if71bwsl1l2y2jxj";
+    sha256 = "480eb5d1bb910da4e87a5d7047e2f3e426083b14911ac64c48badd0218e9e756";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [ azure-common azure-mgmt-core msrest msrestazure ];
 
   # no tests included
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 8433025bbc04..76d5c11cb6fd 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "15.0.0";
+  version = "15.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e205aada94bb630e1ba5ee57751849456e1535aec3f2173edf2cbf596b99c0d9";
+    sha256 = "51c64e01e614c9b88723b86b36b48f8417171610a098bf4690e39e71cefc32d9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
index 22823bfdd583..1531a4e0758f 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cosmosdb";
-  version = "6.1.0";
+  version = "6.3.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7eb28eae4354e0a68e098de314b380d92f6482f53b2947dc8a36913195bdfde0";
+    sha256 = "4135104da5b0f3f0a7249abcd8da55936603e50aaaf2868e5f739a717cf20b3d";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
index 317019844cb0..7c76daf619d5 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
@@ -1,21 +1,23 @@
 { lib, buildPythonPackage, fetchPypi
 , msrestazure
 , azure-common
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-databoxedge";
-  version = "0.2.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "g8BtUpIGOse8Jrws48gQ/o7sgymlgX0XIxl1ThHS3XA=";
+    sha256 = "04090062bc1e8f00c2f45315a3bceb0fb3b3479ec1474d71b88342e13499b087";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
   ];
 
   # no tests in pypi tarball
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
index f8f0818598d3..f7d2b7b9db04 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
@@ -7,22 +7,24 @@
 , msrestazure
 , azure-common
 , azure-mgmt-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datamigration";
-  version = "4.1.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c33d1deb0ee173a15c8ec21a1e714ba544fe5f4895d3b1d8b0581f3c1b2e8ce4";
+    sha256 = "70373dbeb35a7768a47341bb3b570c559197bc1ba36fc8f8bf15139e4c8bad70";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix
index f6be961060e6..c8f15f5960c1 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-deploymentmanager/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
+  version = "1.0.0";
   pname = "azure-mgmt-deploymentmanager";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c6pyr36n9snx879vas5r6l25db6nlp2z96xn759mz4kg4i45qs6";
+    sha256 = "9badb768617209149c33e68ca2e59c35b1d3d11427e2969872f2e236e14eee78";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
+    msrest
+    msrestazure
+  ];
 
   # no tests included
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-dns/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-dns/default.nix
index 37511456fe6f..7daca780853a 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-dns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-dns/default.nix
@@ -6,24 +6,24 @@
 , msrest
 , msrestazure
 , azure-common
-, azure-mgmt-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-dns";
-  version = "3.0.0";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0zxkcczf01b64qfwj98jqdvnwqahygcyccf37rcxpdcfgpkg9kbf";
+    sha256 = "407c2dacb33513ffbe9ca4be5addb5e9d4bae0cb7efa613c3f7d531ef7bf8de8";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
-    azure-mgmt-nspkg
+    azure-mgmt-core
   ];
 
   # this is still needed for when the version is overrided
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
index 1b244818f913..c3ba311d4c49 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventgrid";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "a8a6e1bb105a14f1d3545ecb07c190370f21a145f8ba51599ed169f1dc8d5dcc";
+    sha256 = "aecbb69ecb010126c03668ca7c9a2be8e965568f5b560f0e7b5bc152b157b510";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
index 6b86973bccd9..5bd45d3609e6 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventhub";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ae02b1e3ccbb9ec45849de544dea4d8ef36ea767707207d055ae2b4f756c0d79";
+    sha256 = "181f72adf9287741ded8e386c8934a722d08399d781ce1c452f0482aac1f019b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
index c4453e8c0c11..9b9a84bbe21e 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-hanaonazure";
-  version = "0.15.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f5699cd2f6ad09555c3f1a75c8703e12db76bbbb7ec8b621dcb948d4fc9829a5";
+    sha256 = "f2f8342fbfded8be4165fb0d6f010b68df074886811db3e2c9a50b360ee2dd3a";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 5547eb032d0e..02d2c6a013c1 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "7.0.0";
+  version = "8.0.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d0070817ee2be611d45af91eabc5665dd53f024eaa7a55e490ace4f71a55c733";
+    sha256 = "2c43f1a62e5b83304392b0ad7cfdaeef2ef2f47cb3fdfa2577b703b6ea126000";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
index c51d43ec4447..f4e1534a61d6 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iothub";
-  version = "1.0.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7acf24088395a299974dd26406db2686d8d59a3fffbe47c24617b36d445f2de8";
+    sha256 = "653a765f0beb6af0c9ecbd290b4101e1b5e0f6450405faf28ab8234c15d8b38b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index 10c4604ec186..c7aa05d25bd2 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-keyvault";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "2c974c6114d8d27152642c82a975812790a5e86ccf609bf370a476d9ea0d2e7d";
+    sha256 = "2890c489289b8a0bf833852014f2f494eb96873834896910ddfa58cfa97b90da";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
index c5adc61ea203..fb82c33ba9be 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
+  version = "2.0.0";
   pname = "azure-mgmt-kusto";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa3ede0ebd6489bbf993f420bcb5fc63d9fad2a1e945c3c49b26fa012bb3534e";
+    sha256 = "81601479e2b6da3e69654462674ef1474218c4415ef25c1d9892939721732153";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index 9eb1d2afc149..5a93d3d0df18 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-loganalytics";
-  version = "8.0.0";
+  version = "10.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "3e7a93186594c328a6f34f0e0d9209a05021228baa85aa4c1c4ffdbf8005a45f";
+    sha256 = "29330984d0f084dff26cea239d7b733c1a26844da85d33bf3bb53b515ce0bc23";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix
index 4d059480c442..140f08e13f4a 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-managedservices/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
+  version = "6.0.0";
   pname = "azure-mgmt-managedservices";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06ddfqriqlvwjsjhqka9r5vhshardyj9c10xgjissfkpqsgkkn7y";
+    sha256 = "ec0cb3858bcf8edf5eee0eddee81560424eb84352e0df082ddc94eb99badfd5e";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
+    msrest
+    msrestazure
+  ];
 
   # no tests included
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix
index e09646373b6e..eb744b78ff7d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-managementgroups";
-  version = "0.2.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "3d5237947458dc94b4a392141174b1c1258d26611241ee104e9006d1d798f682";
+    sha256 = "bab9bd532a1c34557f5b0ab9950e431e3f00bb96e8a3ce66df0f6ce2ae19cd73";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix
index d42fb5b05c39..169f52c86d52 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix
@@ -3,22 +3,24 @@
 , fetchPypi
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-managementpartner";
-  version = "0.1.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1bvcmx7dkf2adi26z7c2ga63ggpzdfqj8q1gzcic1yn03v6nb8i7";
+    sha256 = "1cd591848454a115c216d216a3fb7802c1b5de04b105e2696e4237b0f8768f2f";
   };
 
   propagatedBuildInputs = [
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-maps/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-maps/default.nix
index c0f418ed725c..8a62fafaea13 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-maps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-maps/default.nix
@@ -6,24 +6,24 @@
 , msrest
 , msrestazure
 , azure-common
-, azure-mgmt-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-maps";
-  version = "0.1.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c120e210bb61768da29de24d28b82f8d42ae24e52396eb6569b499709e22f006";
+    sha256 = "384e17f76a68b700a4f988478945c3a9721711c0400725afdfcb63cf84e85f0e";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
-    azure-mgmt-nspkg
+    azure-mgmt-core
   ];
 
   pythonNamespaces = [ "azure.mgmt" ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
index 6320588ed430..b4d25a14938d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-media";
-  version = "3.1.0";
+  version = "7.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c35316d3d63dc99feb97ad7f12a7b411046537f5c6d79ef14f6067bcc379292f";
+    sha256 = "b45e82a594ed91cd5aa7a5cd5d01f038b7ac3cf12233e7ba2beaaa3477900e8e";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index 35dc7ef05aba..ccb7c5592478 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.0";
+  version = "3.0.0";
   pname = "azure-mgmt-netapp";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff3b663e36c961e86fc0cdbd6f9fb9fb863d3e7db9035fe713af7299e809ee5e";
+    sha256 = "5a293118c5089c4ec81f676b76aa95c60408a3443a46131d22978ffb81fe4605";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
index f70c8420c829..792501b24e71 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
@@ -10,14 +10,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "18.0.0";
+  version = "19.0.0";
   pname = "azure-mgmt-network";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "85fdeb7a1a8d89be9b585396796b218b31b681590d57d82d3ea14cf1f2d20b4a";
+    sha256 = "5e39a26ae81fa58c13c02029700f8c7b22c3fd832a294c543e3156a91b9459e8";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix
index 98855730ba34..c6ed92e0428d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix
@@ -1,21 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
-  version = "0.1.0";
+  version = "1.0.0";
   pname = "azure-mgmt-privatedns";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08wdvfkk8jh90m3l4nz7knd5vikgfvsx70lk7mkhcvl0xj6gv76j";
+    sha256 = "b60f16e43f7b291582c5f57bae1b083096d8303e9d9958e2c29227a55cc27c45";
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ azure-common msrest msrestazure ];
+  propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
+    msrest
+    msrestazure
+  ];
 
   # no tests included
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
index c7cb274d68b6..56e531421634 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-rdbms";
-  version = "8.0.0";
+  version = "8.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "8b018543048fc4fddb4155d9f22246ad0c4be2fb582a29dbb21ec4022724a119";
+    sha256 = "b30003a94c306533ebfb741b824dd1cc6c0a1810200926675e6b808bd0459d19";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index 4ce18c4ae3b0..25aae3ffad01 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -4,23 +4,25 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "0.11.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f2b85d1d7d7db2af106000910ea5f8b95639874176a5de2f7ab37a2caa67af6b";
+    sha256 = "fd915aa6a76ef9e0e963615d4c909400c8d5646e26273ae25fa1418ce61e28d2";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix
index 323aa26472ca..1ba00e861735 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix
@@ -5,24 +5,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , isPy27
 }:
 
 buildPythonPackage rec {
-  version = "0.1.0";
+  version = "1.0.0";
   pname = "azure-mgmt-redhatopenshift";
   disabled = isPy27; # don't feel like fixing namespace issues on python2
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1g65lbia1i1jw6qkyjz2ldyl3p90rbr78l8kfryg70sj7z3gnnjn";
+    sha256 = "94cd41f1ebd82e40620fd3e6d88f666b5c19ac7cf8b4e8edadb9721bd7c80980";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ];
 
   pythonNamespaces = "azure.mgmt";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
index 76ef894b96ad..7e08b16166d7 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
@@ -4,24 +4,26 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-reservations";
-  version = "0.9.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1dc97f48f3edb67116da8604ab76ef93233319f56455532be307f323e9ebf0e6";
+    sha256 = "880df54fdf3869ee6b142d4fc7a3fce518c850523c42cc895b7fb8359956554e";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
   ] ++ lib.optionals (!isPy3k) [
     azure-mgmt-nspkg
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index 5cbbee77ae8e..9ea6acbe8da7 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
@@ -8,14 +8,14 @@
 
 
 buildPythonPackage rec {
-  version = "16.0.0";
+  version = "18.0.0";
   pname = "azure-mgmt-resource";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0bdbdc9c1ed2ef975d8dff45f358d1e06dc6761eace5b6817f13993447e48a68";
+    sha256 = "551036e592f409ef477d30937ea7cc4dda5126576965d9c816fdb8401bbd774c";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
index abb117d00466..661a507291d1 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
@@ -6,23 +6,25 @@
 , msrest
 , msrestazure
 , azure-common
+, azure-mgmt-core
 , azure-mgmt-nspkg
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-servicefabric";
-  version = "0.5.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "5771f24516c8d4a27f5569f23f3a606f6f106e4ad502eec7f38aedfcd3eadc74";
+    sha256 = "de35e117912832c1a9e93109a8d24cab94f55703a9087b2eb1c5b0655b3b1913";
   };
 
   propagatedBuildInputs = [
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix
new file mode 100644
index 000000000000..b79c73ab026c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+, isPy3k
+, msrest
+, msrestazure
+, azure-common
+, azure-mgmt-core
+}:
+
+buildPythonPackage rec {
+  pname = "azure-mgmt-servicefabricmanagedclusters";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "sha256-EJyjolHrt92zWg+IKWFKTapwZaFrwTtSyEIu5/mZXOg=";
+  };
+
+  propagatedBuildInputs = [
+    msrest
+    msrestazure
+    azure-common
+    azure-mgmt-core
+  ];
+
+  pythonNamespaces = [ "azure.mgmt" ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "This is the Microsoft Azure Service Fabric Cluster Management Client Library";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix
index 60c1022e6037..83cffa0a295c 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-sql";
-  version = "1.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c7904f8798fbb285a2160c41c8bd7a416c6bd987f5d36a9b98c16f41e24e9f47";
+    sha256 = "5474387ec3417b0a277de2b42c6d1992256a6a9717ca1ada0e8dad01238b9919";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index 6f14ce174cd2..86c5005c8769 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -8,14 +8,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "17.0.0";
+  version = "18.0.0";
   pname = "azure-mgmt-storage";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c0e3fd99028d98c80dddabe1c22dfeb3d694e5c1393c6de80766eb240739e4bc";
+    sha256 = "d17beb34273797fa89863632ff0e1eb9b6a55198abb8c7f05d84980762e5f71f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
index 1b26495e9b7b..a09677ab8e7d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-synapse";
-  version = "1.0.0";
+  version = "2.0.0";
   disabled = pythonOlder "3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d5514dfef93294a2d9b8ff6fdb353b3102abd5750f147d904e6012f24113ff9c";
+    sha256 = "bec6bdfaeb55b4fdd159f2055e8875bf50a720bb0fce80a816e92a2359b898c8";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
index 9bd5371412d7..b2643eb336c8 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-web";
-  version = "2.0.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0040e1c9c795f7bebe43647ff30b62cb0db7175175df5cbfa1e554a6a277b81e";
+    sha256 = "274239993a4705c9e1135842137d77a703f63d14ee5c1a5ee87fe1f8a471a061";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
index d885166daa91..93f70108c359 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.1.0";
+  version = "7.3.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c5b3681ce4d7a44c223ddddfdec4c8d2eadede3b11b598ac09c4dbf4b729e89b";
+    sha256 = "sha256-NigQxqZjekZjlu6wSrziVwbEBclxfwSK4svd0eHPKr8=";
   };
 
   propagatedBuildInputs = [
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = lib.optionals isPy3k [ "azure.servicebus" ];
 
   meta = with lib; {
-    description = "This is the Microsoft Azure Service Bus Client Library";
+    description = "Microsoft Azure Service Bus Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
     maintainers = with maintainers; [ maxwilson ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-servicefabric/default.nix b/nixpkgs/pkgs/development/python-modules/azure-servicefabric/default.nix
index 743f0abd9256..283a31466620 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-servicefabric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-servicefabric/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicefabric";
-  version = "7.2.0.46";
+  version = "8.0.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c15fd5e8fe33a12295435f16e007edcfd8f660547795742f9b74ef8fb3a431ba";
+    sha256 = "f414cc114e28a358a7f39772205f3f15d7fc1aa30a08d106b0b80623f4303f1d";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
index bbcf84ef6acd..fe36536dfe21 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.8.0";
+  version = "12.8.1";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "36b85a3423379d4a93f663022487cf53aa3043a355f8414321dde878c00cb577";
+    sha256 = "eb37b50ddfb6e558b29f6c8c03b0666514e55d6170bf4624e7261a3af93c6401";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
index fc98e4207e8b..a1322c03c9f9 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-file-share";
-  version = "12.4.1";
+  version = "12.4.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7503d05882970abc977529ff5a4b81e79f62fd51b238fe306f72e13f57a522ca";
+    sha256 = "6c458d1e3db38fdd502d8f77107c81e6859654f02c0e7f2a98214289d9e0dde2";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage/default.nix
index 258a5ebabb2c..8afb9b751ee9 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , python
 , azure-common
+, cryptography
 , futures ? null
 , dateutil
 , requests
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "0pyasfxkin6j8j00qmky7d9cvpxgis4fi9bscgclj6yrpvf14qpv";
   };
 
-  propagatedBuildInputs = [ azure-common dateutil requests ]
+  propagatedBuildInputs = [ azure-common cryptography dateutil requests ]
                             ++ pkgs.lib.optionals (!isPy3k) [ futures ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index 76ad61636061..f9c78b6116fc 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-artifacts";
-  version = "0.5.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "a13124dc9405277f697f6452728d7dcf4c50601ee76055fd42f12b51494d6579";
+    sha256 = "2a538d617dc5d2d167716226d0a24e416324efb35ef22b223e0d9fb6b9889a72";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
index b4a3e7acaec0..47ed0fe5fd68 100644
--- a/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
@@ -1,17 +1,48 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools-scm, isPy27, pytestCheckHook
-, requests, arrow, logfury, tqdm }:
+{ lib
+, arrow
+, buildPythonPackage
+, fetchPypi
+, importlib-metadata
+, isPy27
+, logfury
+, pytestCheckHook
+, pytest-lazy-fixture
+, pytest-mock
+, pythonOlder
+, requests
+, setuptools-scm
+, tqdm
+}:
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "1.6.0";
-
+  version = "1.7.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-6fjreuMUC056ljddfAidfBbJkvEDndB/dIkx1bF7efs=";
+    sha256 = "sha256-8X5XLh9SxZI1P7/2ZjOy8ipcEzTcriJfGI7KlMXncv4=";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    arrow
+    logfury
+    requests
+    tqdm
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-lazy-fixture
+    pytest-mock
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace 'setuptools_scm<6.0' 'setuptools_scm'
@@ -19,16 +50,16 @@ buildPythonPackage rec {
       --replace 'arrow>=0.8.0,<1.0.0' 'arrow'
   '';
 
-  pythonImportsCheck = [ "b2sdk" ];
-
-  nativeBuildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ requests arrow logfury tqdm ];
+  disabledTests = [
+    # Test requires an API key
+    "test_raw_api"
+    "test_files_headers"
+  ];
 
-  # requires unpackaged dependencies like liccheck
-  doCheck = false;
+  pythonImportsCheck = [ "b2sdk" ];
 
   meta = with lib; {
-    description = "Client library and utilities for access to B2 Cloud Storage (backblaze).";
+    description = "Client library and utilities for access to B2 Cloud Storage (backblaze)";
     homepage = "https://github.com/Backblaze/b2-sdk-python";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/backports-zoneinfo/default.nix b/nixpkgs/pkgs/development/python-modules/backports-zoneinfo/default.nix
new file mode 100644
index 000000000000..a9bc0b55955b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/backports-zoneinfo/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, pythonOlder
+, importlib-resources
+, hypothesis
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "backports-zoneinfo";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "pganssle";
+    repo = "zoneinfo";
+    rev = version;
+    sha256 = "sha256-00xdDOVdDanfsjQTd3yjMN2RFGel4cWRrAA3CvSnl24=";
+  };
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [
+    importlib-resources
+  ];
+
+  pythonImportsCheck = [ "backports.zoneinfo" ];
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
+
+  # unfortunately /etc/zoneinfo doesn't exist in sandbox, and many tests fail
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Backport of the standard library module zoneinfo";
+    homepage = "https://github.com/pganssle/zoneinfo";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix b/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
index 6c0d1df81f39..8a9bc2283858 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , isPy3k
 , pytest
 , pytest-black
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "d84e126e2a29e4fde8931ff8131240bbf30a0e7dbcc3897a8dbd8ea5ac11419c";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ pytest pytest-flake8 pytest-black pytestcov ];
   # ironically, they fail a linting test, and pytest.ini forces that test suite
diff --git a/nixpkgs/pkgs/development/python-modules/backports_os/default.nix b/nixpkgs/pkgs/development/python-modules/backports_os/default.nix
index 39973e433eed..214449708433 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_os/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_os/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , future
 , isPy3k
 , python
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "b472c4933094306ca08ec90b2a8cbb50c34f1fb2767775169a1c1650b7b74630";
   };
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   checkInputs = [ hypothesis ];
   propagatedBuildInputs = [ future ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/backports_tempfile/default.nix b/nixpkgs/pkgs/development/python-modules/backports_tempfile/default.nix
index cc51e23260b8..0d1203d28be2 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_tempfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_tempfile/default.nix
@@ -2,7 +2,7 @@
 , python
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , backports_weakref
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "1c648c452e8770d759bdc5a5e2431209be70d25484e1be24876cf2168722c762";
   };
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ backports_weakref ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix b/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix
index a9950eb704f8..bf81efce8d89 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_unittest-mock/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm, mock }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm, mock }:
 
 buildPythonPackage rec {
   pname = "backports.unittest_mock";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ mock ];
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
 
   # does not contain tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix b/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix
index c04b88a3f328..4db504ac3306 100644
--- a/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backports_weakref/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 # , backports
 , python
 }:
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "bc4170a29915f8b22c9e7c4939701859650f2eb84184aee80da329ac0b9825c2";
   };
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
 #   checkInputs = [ backports ];
 
   # Requires backports package
diff --git a/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix b/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix
index f07c5e90d517..e07b02a08e74 100644
--- a/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bacpypes/default.nix
@@ -1,15 +1,16 @@
 { lib, buildPythonPackage, fetchPypi, fetchFromGitHub
-, wheel, pytestCheckHook, pytestrunner }:
+, wheel, pytestCheckHook, pytestrunner, pythonAtLeast }:
 
 buildPythonPackage rec {
-  version = "0.18.1";
+  version = "0.18.4";
   pname = "bacpypes";
+  disabled = pythonAtLeast "3.9";
 
   src = fetchFromGitHub {
     owner = "JoelBender";
     repo = "bacpypes";
     rev = version;
-    sha256 = "1fxrh57z3fjl95db8jh71grkv5id8qk65g6k5jqcs9v3dgkg8jkl";
+    sha256 = "1z5v0i7ms8na062wxd5ki43yy5z2d9cns0p4vdmkx2drwsbzlav2";
   };
 
   propagatedBuildInputs = [ wheel ];
diff --git a/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix b/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
index 8706a31d5711..336c6b2e5134 100644
--- a/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
@@ -8,7 +8,7 @@
 , numpy
 , pillow
 , scipy
-, scikitlearn
+, scikit-learn
 , scikitimage
 , threadpoolctl
 }:
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    future numpy pillow scipy scikitlearn scikitimage threadpoolctl
+    future numpy pillow scipy scikit-learn scikitimage threadpoolctl
   ];
 
   checkInputs = [ pytestCheckHook unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix b/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix
index c41181ca7b04..1e896d82678a 100644
--- a/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , python
-, scikitlearn
+, scikit-learn
 , scipy
 , pytest
 , isPy27
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    scikitlearn
+    scikit-learn
     scipy
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/beancount/default.nix b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
index 88369f41872b..ec864e71498f 100644
--- a/nixpkgs/pkgs/development/python-modules/beancount/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
@@ -7,6 +7,7 @@
 , chardet
 , dateutil
 , google-api-python-client
+, google-auth-oauthlib
 , lxml
 , oauth2client
 , ply
@@ -35,6 +36,7 @@ buildPythonPackage rec {
     chardet
     dateutil
     google-api-python-client
+    google-auth-oauthlib
     lxml
     oauth2client
     ply
diff --git a/nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix b/nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix
index 0067716b6265..44ebb5d94f01 100644
--- a/nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix
@@ -1,4 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
+, setuptools-scm
 , beancount
 , pytest, sh
 }:
@@ -14,6 +15,10 @@ buildPythonPackage rec {
     sha256 = "1kjc0axrxpvm828lqq5m2ikq0ls8xksbmm7312zw867gdx56x5aj";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     beancount
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/behave/default.nix b/nixpkgs/pkgs/development/python-modules/behave/default.nix
index 43c74fc95716..1198f034d00a 100644
--- a/nixpkgs/pkgs/development/python-modules/behave/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/behave/default.nix
@@ -17,6 +17,12 @@ buildPythonApplication rec {
   };
 
   checkInputs = [ pytestCheckHook mock pathpy pyhamcrest pytest-html ];
+
+  # upstream tests are failing, so instead we only check if we can import it
+  doCheck = false;
+
+  pythonImportsCheck = [ "behave" ];
+
   buildInputs = [ glibcLocales ];
   propagatedBuildInputs = [ colorama cucumber-tag-expressions parse parse-type six ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/bellows/default.nix b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
index 79bcaa91cbe7..7df23d1a25aa 100644
--- a/nixpkgs/pkgs/development/python-modules/bellows/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.23.1";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "bellows";
     rev = version;
-    sha256 = "sha256-c9rKRmGMlYrzVQmUuM9P3c/Jm4QVM2aBRSZ0OkyrPTY=";
+    sha256 = "00sa4x1qzv861z9d83lk4lp1g2pqiv9hpawj92w4qn1wnqxbz6rw";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/bidict/default.nix b/nixpkgs/pkgs/development/python-modules/bidict/default.nix
index dcb684a55e0d..8ad3534170d5 100644
--- a/nixpkgs/pkgs/development/python-modules/bidict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bidict/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm
+, setuptools-scm
 , sphinx
 , hypothesis
 , py
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     sha256 = "4fa46f7ff96dc244abfc437383d987404ae861df797e2fd5b190e233c302be09";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ sphinx ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix b/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
index 1854bd4f71b5..94f6e3df8f2e 100644
--- a/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "bip_utils";
-  version = "1.7.0";
+  version = "1.9.0";
 
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "ebellocchia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dj0c9sj0c4dkdf7rbz3s1z5kfzw22hpncm4bnwqigjzi6nrk81z";
+    sha256 = "0i1jdpdsrc8cal5x0b1am9mgbca69ymxlaqpkw0y4d0m3m6vs33k";
   };
 
   propagatedBuildInputs = [ ecdsa pysha3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
index c3965b10a2ab..e83a79192387 100644
--- a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-7DpPbXEaee0jrqlUFjjTNT3D8IPyk6ExgLFLSC4+Ge8=";
+    sha256 = "sha256-lyJKGTJezuSaO/TfPuBTHTr5zyiLZ9CJp+9Eo8TqODk=";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/black/default.nix b/nixpkgs/pkgs/development/python-modules/black/default.nix
index 3346afbb4ab9..bf82df4afa34 100644
--- a/nixpkgs/pkgs/development/python-modules/black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/black/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib
-, buildPythonPackage, fetchPypi, pythonOlder, setuptools_scm, pytestCheckHook
+, buildPythonPackage, fetchPypi, pythonOlder, setuptools-scm, pytestCheckHook
 , aiohttp
 , aiohttp-cors
 , appdirs
@@ -8,6 +8,7 @@
 , dataclasses
 , mypy-extensions
 , pathspec
+, parameterized
 , regex
 , toml
 , typed-ast
@@ -15,34 +16,34 @@
 
 buildPythonPackage rec {
   pname = "black";
-  version = "20.8b1";
+  version = "21.5b1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1spv6sldp3mcxr740dh3ywp25lly9s8qlvs946fin44rl1x5a0hw";
+    sha256 = "1cdkrl5vw26iy7s23v2zpr39m6g5xsgxhfhagzzflgfbvdc56s93";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # Necessary for the tests to pass on Darwin with sandbox enabled.
   # Black starts a local server and needs to bind a local address.
   __darwinAllowLocalNetworking = true;
 
-  checkInputs =  [ pytestCheckHook ];
+  checkInputs =  [ pytestCheckHook parameterized ];
 
   preCheck = ''
     export PATH="$PATH:$out/bin"
+
+    # The top directory /build matches black's DEFAULT_EXCLUDE regex.
+    # Make /build the project root for black tests to avoid excluding files.
+    touch ../.git
   '';
 
   disabledTests = [
-    # Don't know why these tests fails
-    "test_cache_multiple_files"
-    "test_failed_formatting_does_not_get_cached"
     # requires network access
     "test_gen_check_output"
-    "test_process_queue"
   ] ++ lib.optionals stdenv.isDarwin [
     # fails on darwin
     "test_expression_diff"
diff --git a/nixpkgs/pkgs/development/python-modules/blist/default.nix b/nixpkgs/pkgs/development/python-modules/blist/default.nix
index d4dcb54c5cd1..af129f4aa5dc 100644
--- a/nixpkgs/pkgs/development/python-modules/blist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blist/default.nix
@@ -22,6 +22,12 @@ buildPythonPackage rec {
       url = "https://github.com/DanielStutzbach/blist/commit/2dc1ec28ed68611fcec9ac1c68070c782d6b4b4e.patch";
       sha256 = "0ma0z6ga80w3wzh3sidwd8ckfbgx4j1y7cc29q6j9ddrvxpf276y";
     })
+
+    # Fixes compatibility for Python 3.9 https://github.com/DanielStutzbach/blist/pull/91
+    (fetchpatch {
+      url = "https://github.com/DanielStutzbach/blist/pull/91/commits/e63514f805e42dc6a5708e629e4153d91bc90bff.patch";
+      sha256 = "1prx8znk7008v4ky7q2lx0pi6hzqd4kxgfdwbsr4zylwbrdqvsga";
+    })
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/blspy/default.nix b/nixpkgs/pkgs/development/python-modules/blspy/default.nix
new file mode 100644
index 000000000000..e75e474bdab1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/blspy/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchFromGitHub
+, setuptools-scm
+, substituteAll
+, cmake
+, boost
+, gmp
+, pybind11
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "blspy";
+  version = "1.0.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-N1mk83uZrzSty2DyXfKiVp85z/jmztiUSRXKfNBRJV4=";
+  };
+
+  patches = [
+    # prevent CMake from trying to get libraries on the Internet
+    (substituteAll {
+      src = ./dont_fetch_dependencies.patch;
+      pybind11_src = pybind11.src;
+      relic_src = fetchFromGitHub {
+        owner = "relic-toolkit";
+        repo = "relic";
+        rev = "1885ae3b681c423c72b65ce1fe70910142cf941c"; # pinned by blspy
+        hash = "sha256-tsSZTcssl8t7Nqdex4BesgQ+ACPgTdtHnJFvS9josN0=";
+      };
+    })
+  ];
+
+  nativeBuildInputs = [ cmake setuptools-scm ];
+
+  buildInputs = [ boost gmp.static pybind11 ];
+
+  pythonImportsCheck = [
+    "blspy"
+  ];
+
+  # Note: upstream testsuite is just a single test.py script outside of any framework
+  doCheck = false;
+
+  # CMake needs to be run by setuptools rather than by its hook
+  dontConfigure = true;
+
+  meta = with lib; {
+    description = "BLS signatures with aggregation";
+    homepage = "https://github.com/Chia-Network/bls-signatures/";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch b/nixpkgs/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
new file mode 100644
index 000000000000..f9c41d9420be
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
@@ -0,0 +1,38 @@
+diff --git a/python-bindings/CMakeLists.txt b/python-bindings/CMakeLists.txt
+index 255e3bb..5f99c3a 100644
+--- a/python-bindings/CMakeLists.txt
++++ b/python-bindings/CMakeLists.txt
+@@ -6,8 +6,7 @@ include(FetchContent)
+ 
+ FetchContent_Declare(
+   pybind11
+-  GIT_REPOSITORY https://github.com/pybind/pybind11.git
+-  GIT_TAG        v2.6.2
++  SOURCE_DIR @pybind11_src@
+ )
+ FetchContent_MakeAvailable(pybind11 relic)
+ 
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index faecc61..3272116 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -4,18 +4,9 @@ set (CMAKE_CXX_STANDARD 17)
+ # CMake 3.14+
+ include(FetchContent)
+ 
+-if (DEFINED ENV{RELIC_MAIN})
+-  set(RELIC_GIT_TAG "origin/main")
+-else ()
+-  set(RELIC_GIT_TAG "1885ae3b681c423c72b65ce1fe70910142cf941c")
+-endif ()
+-
+-message(STATUS "Relic will be built from: ${RELIC_GIT_TAG}")
+-
+ FetchContent_Declare(
+   relic
+-  GIT_REPOSITORY https://github.com/relic-toolkit/relic.git
+-  GIT_TAG        ${RELIC_GIT_TAG}
++  SOURCE_DIR @relic_src@
+ )
+ FetchContent_MakeAvailable(relic)
+ 
diff --git a/nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix b/nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix
index c747df90f5a5..f5f3dda77a45 100644
--- a/nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi
 , fonttools, fs, pyclipper, defcon, fontpens
-, setuptools_scm, pytest
+, setuptools-scm, pytest
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     fonttools
diff --git a/nixpkgs/pkgs/development/python-modules/bpython/default.nix b/nixpkgs/pkgs/development/python-modules/bpython/default.nix
index 55e66545538f..64fe3c455ee5 100644
--- a/nixpkgs/pkgs/development/python-modules/bpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bpython/default.nix
@@ -3,12 +3,15 @@
 , fetchPypi
 , curtsies
 , greenlet
-, mock
+, jedi
 , pygments
+, pyxdg
 , requests
 , substituteAll
 , urwid
-, which }:
+, watchdog
+, which
+}:
 
 buildPythonPackage rec {
   pname = "bpython";
@@ -24,17 +27,22 @@ buildPythonPackage rec {
     which = "${which}/bin/which";
   })];
 
-  propagatedBuildInputs = [ curtsies greenlet pygments requests urwid ];
+  propagatedBuildInputs = [
+    curtsies
+    greenlet
+    pygments
+    pyxdg
+    requests
+    urwid
+  ];
 
   postInstall = ''
     substituteInPlace "$out/share/applications/org.bpython-interpreter.bpython.desktop" \
       --replace "Exec=/usr/bin/bpython" "Exec=$out/bin/bpython"
   '';
 
-  checkInputs = [ mock ];
-
-  # tests fail: https://github.com/bpython/bpython/issues/712
-  doCheck = false;
+  checkInputs = [ jedi watchdog ];
+  pythonImportsCheck = [ "bpython" ];
 
   meta = with lib; {
     description = "A fancy curses interface to the Python interactive interpreter";
diff --git a/nixpkgs/pkgs/development/python-modules/braintree/default.nix b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
index 28b6fccfca90..7e1c8f5a583f 100644
--- a/nixpkgs/pkgs/development/python-modules/braintree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
@@ -22,6 +22,6 @@ buildPythonPackage rec {
     description = "Python library for integration with Braintree";
     homepage = "https://github.com/braintree/braintree_python";
     license = licenses.mit;
-    maintainers = [ maintainers.ivegotasthma ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/breezy/default.nix b/nixpkgs/pkgs/development/python-modules/breezy/default.nix
index 21d0b6d9f308..dcd6caaffa21 100644
--- a/nixpkgs/pkgs/development/python-modules/breezy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/breezy/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "breezy";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1eff207403f48898fa3b3ffa7a4275197c6c58fec105ef267caf1f5fd5a6c7be";
+    sha256 = "sha256-lwKPk+UxKAhfIgUb1xPLJ/za53VdHenmBrr85RTpEps=";
   };
 
   propagatedBuildInputs = [ configobj patiencediff six fastimport dulwich launchpadlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/brother/default.nix b/nixpkgs/pkgs/development/python-modules/brother/default.nix
index 9f41ed5756f5..2f4552ca3f6c 100644
--- a/nixpkgs/pkgs/development/python-modules/brother/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/brother/default.nix
@@ -5,29 +5,29 @@
 , pytest-asyncio
 , pytest-error-for-skips
 , pytest-runner
-, pytest-tornasync
-, pytest-trio
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "1.0.0";
+  version = "1.0.2";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
     rev = version;
-    sha256 = "sha256-0NfqPlQiOkNhR+H55E9LE4dGa9R8vcSyPNbbIeiRJV8=";
+    sha256 = "sha256-xs/GIsJUuKKbDotV1BeT/ng86UVkNsH48uHR4i3vqow=";
   };
 
+  nativeBuildInputs = [
+    pytest-runner
+  ];
+
   postPatch = ''
-    substituteInPlace pytest.ini \
+    substituteInPlace setup.cfg \
       --replace "--cov --cov-report term-missing " ""
-    substituteInPlace requirements-test.txt \
-      --replace "pytest-cov" ""
   '';
 
   propagatedBuildInputs = [
@@ -37,9 +37,6 @@ buildPythonPackage rec {
   checkInputs = [
     pytest-asyncio
     pytest-error-for-skips
-    pytest-runner
-    pytest-tornasync
-    pytest-trio
     pytestCheckHook
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/btrfs/default.nix b/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
index ff21d5670d72..9bcb8f37330b 100644
--- a/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
@@ -1,17 +1,15 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 }:
 
 buildPythonPackage rec {
   pname = "btrfs";
-  version = "12";
+  version = "13";
 
-  src = fetchFromGitHub {
-    owner = "knorrie";
-    repo = "python-btrfs";
-    rev = "v${version}";
-    sha256 = "sha256-ZQSp+pbHABgBTrCwC2YsUUXAf/StP4ny7MEhBgCRqgE=";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-NSyzhpHYDkunuU104XnbVCcVRNDoVBz4KuJRrE7WMO0=";
   };
 
   # no tests (in v12)
@@ -23,6 +21,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/knorrie/python-btrfs";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.evils ];
+    maintainers = with maintainers; [ evils Luflosi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
index 52a43d0d1137..043a1cd3e136 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "3.1.0";
+    version = "3.1.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1b9m9l8bz2slkrq0l5z8zd8pd0js5w4k7dam8bdp00kv3aln4si9";
+      sha256 = "0vh2v1qs65kwcj1x8r1wj2g456kflspyz7mjara9ph9qs7j97y74";
     };
 
     propagatedBuildInputs = [
@@ -101,7 +101,7 @@ let
     meta = with lib; {
       homepage = "https://buildbot.net/";
       description = "An open-source continuous integration framework for automating software build, test, and release processes";
-      maintainers = with maintainers; [ nand0p ryansydnor lopsided98 ];
+      maintainers = with maintainers; [ ryansydnor lopsided98 ];
       license = licenses.gpl2;
     };
   };
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
index 4c17eb2b6e53..b00a2ece5684 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bv1qq4cf24cklxfqfnkhjb6w4xqcp3afdcan75n6v7mnwqxyyvr";
+    sha256 = "13bcshfas3r7hl205il9fzdjfhd18jf0lxrr5wd8r6qzdrl6i1y6";
   };
 
   postPatch = ''
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://buildbot.net/";
     description = "Buildbot Packaging Helper";
-    maintainers = with maintainers; [ nand0p ryansydnor lopsided98 ];
+    maintainers = with maintainers; [ ryansydnor lopsided98 ];
     license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
index 042bddc1d124..62f32a00fb45 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1a40fbmbf4gb0hgpr40yr9fb17ynxwi6vj8hvv3mm1fm9nqiggm1";
+      sha256 = "1qb82s72mrm39123kwkypa2nhdsks6v9nkpw4vvscnq4p9xbzw2c";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -23,7 +23,7 @@
     meta = with lib; {
       homepage = "https://buildbot.net/";
       description = "Buildbot UI";
-      maintainers = with maintainers; [ nand0p ryansydnor lopsided98 ];
+      maintainers = with maintainers; [ ryansydnor lopsided98 ];
       license = licenses.gpl2;
     };
   };
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1fcm4h489sb5a1hk82y1a8575s4k6qd82qkfbm2q5gd14bdvysb0";
+      sha256 = "0kwzj28dmhkcr44nf39s82xjc9y5p27w4ywxfpm55cim3hwxbcb1";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -45,7 +45,7 @@
     meta = with lib; {
       homepage = "https://buildbot.net/";
       description = "Buildbot Console View Plugin";
-      maintainers = with maintainers; [ nand0p ryansydnor lopsided98 ];
+      maintainers = with maintainers; [ ryansydnor lopsided98 ];
       license = licenses.gpl2;
     };
   };
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1qw9g2maixlcm5l1kpmc721b2p4b7adw5rsimlqcjz96mjya7acj";
+      sha256 = "0vvp6z0d0qf5i5kykzph28hr3g9wgzrmmbbzdnm94yk4wsqq7w86";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -67,7 +67,7 @@
     meta = with lib; {
       homepage = "https://buildbot.net/";
       description = "Buildbot Waterfall View Plugin";
-      maintainers = with maintainers; [ nand0p ryansydnor lopsided98 ];
+      maintainers = with maintainers; [ ryansydnor lopsided98 ];
       license = licenses.gpl2;
     };
   };
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1q0fm2h4alcck6g8fwwd42jsmkw3gdy9xmw1p78xnvk5dgs6cf9c";
+      sha256 = "0y839swv9vdkwi4i1hjiyrjbj1bs74sbkpr5f58ivkjlf5alb56b";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -89,7 +89,7 @@
     meta = with lib; {
       homepage = "https://buildbot.net/";
       description = "Buildbot Grid View Plugin";
-      maintainers = with maintainers; [ nand0p lopsided98 ];
+      maintainers = with maintainers; [ lopsided98 ];
       license = licenses.gpl2;
     };
   };
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0n8q607rl1qs012gpkxpq1n7ny8306n4vr3hjlz96pm60a7j7904";
+      sha256 = "1zsh1bvrl3byx0ycz5jnhijzifxglm8w7kcxp79k7frw7i02fpvy";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
index 242849e2c79e..4313d16d0b77 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, buildbot, setuptoolsTrial, mock, twisted,
-  future, coreutils }:
+  future, coreutils, nixosTests }:
 
 buildPythonPackage (rec {
   pname = "buildbot-worker";
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0n5p9x9gz276nv1m8vn3d74jfbd35gff332cjxxqvabk06iqcjp6";
+    sha256 = "0q16vgvlhiybq5rhva9kcj5v2mhfpdb5czm2vng4rrfqqiqq918m";
   };
 
   propagatedBuildInputs = [ twisted future ];
@@ -19,10 +19,14 @@ buildPythonPackage (rec {
       --replace /usr/bin/tail "${coreutils}/bin/tail"
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.buildbot;
+  };
+
   meta = with lib; {
     homepage = "https://buildbot.net/";
     description = "Buildbot Worker Daemon";
-    maintainers = with maintainers; [ nand0p ryansydnor lopsided98 ];
+    maintainers = with maintainers; [ ryansydnor lopsided98 ];
     license = licenses.gpl2;
   };
 })
diff --git a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
index 87eafc265501..d3953137167a 100644
--- a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
@@ -1,29 +1,21 @@
-{ buildPythonPackage, lib, fetchPypi, fetchpatch
+{ buildPythonPackage, lib, fetchPypi
 , pytestCheckHook, filelock, mock, pep8
 , cython
 , six, pyshp, shapely, geos, numpy
 , gdal, pillow, matplotlib, pyepsg, pykdtree, scipy, owslib, fiona
-, proj
+, proj, flufl_lock
 }:
 
 buildPythonPackage rec {
   pname = "cartopy";
-  version = "0.18.0";
+  version = "0.19.0.post1";
 
   src = fetchPypi {
     inherit version;
     pname = "Cartopy";
-    sha256 = "0d24fk0cbp29gmkysrwq05vry13swmwi3vx3cpcy04c0ixz33ykz";
+    sha256 = "0xnm8z3as3hriivdfd26s6vn5b63gb46x6vxw6gh1mwfm5rlg2sb";
   };
 
-  patches = [
-    # Fix numpy-1.20 compatibility.  Will be part of 0.19.
-    (fetchpatch {
-      url = "https://github.com/SciTools/cartopy/commit/e663bbbef07989a5f8484a8f36ea9c07e61d14ce.patch";
-      sha256 = "061kbjgzkc3apaz6sxy00pkgy3n9dxcgps5wzj4rglb5iy86n2kq";
-    })
-  ];
-
   buildInputs = [
     geos proj
   ];
@@ -36,7 +28,7 @@ buildPythonPackage rec {
     gdal pillow matplotlib pyepsg pykdtree scipy fiona owslib
   ];
 
-  checkInputs = [ pytestCheckHook filelock mock pep8 ];
+  checkInputs = [ pytestCheckHook filelock mock pep8 flufl_lock ];
 
   pytestFlagsArray = [
     "--pyargs" "cartopy"
@@ -46,6 +38,7 @@ buildPythonPackage rec {
   disabledTests = [
     "test_nightshade_image"
     "background_img"
+    "test_gridliner_labels_bbox_style"
   ];
 
   nativeBuildInputs = [
@@ -56,7 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Process geospatial data to create maps and perform analyses";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Plus;
     homepage = "https://scitools.org.uk/cartopy/docs/latest/";
     maintainers = with maintainers; [ mredaelli ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix b/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix
index 16479302221b..e5b1a4c4fb0f 100644
--- a/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, python, pythonOlder
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
 , cython
 , eventlet
 , futures ? null
@@ -21,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "cassandra-driver";
-  version = "3.24.0";
+  version = "3.25.0";
 
   # pypi tarball doesn't include tests
   src = fetchFromGitHub {
     owner = "datastax";
     repo = "python-driver";
     rev = version;
-    sha256 = "1rr69hly5q810xpn8rkzxwzlq55wxxp7kwki9vfri3gh674d2wip";
+    sha256 = "1dn7iiavsrhh6i9hcyw0mk8j95r5ym0gbrvdca998hx2rnz5ark6";
   };
 
   nativeBuildInputs = [ cython ];
@@ -66,8 +70,10 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     "tests/unit"
+  ];
+  disabledTestPaths = [
     # requires puresasl
-    "--ignore=tests/unit/advanced/test_auth.py"
+    "tests/unit/advanced/test_auth.py"
   ];
   disabledTests = [
     # doesn't seem to be intended to be run directly
diff --git a/nixpkgs/pkgs/development/python-modules/castepxbin/default.nix b/nixpkgs/pkgs/development/python-modules/castepxbin/default.nix
new file mode 100644
index 000000000000..3c4466648633
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/castepxbin/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, scipy
+, pymatgen
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "castepxbin";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "zhubonan";
+    repo = "castepxbin";
+    rev = "v${version}";
+    sha256 = "16wnd1mwhl204d1s3har2fhyhyjg86sypg00bj812dxk8zixxszf";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pymatgen
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "A collection of readers for CASTEP binary outputs";
+    homepage = "https://github.com/zhubonan/castepxbin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/catalogue/default.nix b/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
index d07b7f29dc39..fbbaf92f4eb8 100644
--- a/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
@@ -2,23 +2,20 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, importlib-metadata
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "catalogue";
-  version = "2.0.1";
+  version = "2.0.4";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d01077dbfca7aa53f3ef4adecccce636bce4f82e5b52237703ab2f56478e56e";
+    hash = "sha256-ntNF0ShVrzFfFxVYNhKya4YhorCi4775dNxdcS95g6o=";
   };
 
-  propagatedBuildInputs = [ importlib-metadata ];
-
   checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
index 776cc4d38e98..534ba3c9af52 100644
--- a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
@@ -4,7 +4,7 @@
 , fetchPypi
 , pytestCheckHook
 , pytest-cov
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "a33aa2e5534fd74401ac95686886e655e3b2ce6383b3f958199b6e70a87c94bf";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [
     pytest-cov
diff --git a/nixpkgs/pkgs/development/python-modules/certbot/default.nix b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
index 7b4f7064b16a..12e541d9007a 100644
--- a/nixpkgs/pkgs/development/python-modules/certbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-J514zgmIcHpwySChFBXGKR4552wS9z5x8Berk/irHSU=";
+    sha256 = "sha256-Z5ZIA0ib+N7La6Z0Taf6DovCF6fXnEDppPQt6Vgwl0c=";
   };
 
   sourceRoot = "source/${pname}";
diff --git a/nixpkgs/pkgs/development/python-modules/cffi/default.nix b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
index afd9cfdc2950..92899ed85e58 100644
--- a/nixpkgs/pkgs/development/python-modules/cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildPythonPackage, isPyPy, fetchPypi, libffi, pycparser, pytest }:
+{ lib, stdenv, buildPythonPackage, isPyPy, fetchPypi, libffi, pycparser, pytestCheckHook }:
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
@@ -11,8 +11,9 @@ if isPyPy then null else buildPythonPackage rec {
 
   outputs = [ "out" "dev" ];
 
-  propagatedBuildInputs = [ libffi pycparser ];
-  checkInputs = [ pytest ];
+  buildInputs = [ libffi ];
+
+  propagatedBuildInputs = [ pycparser ];
 
   # On Darwin, the cffi tests want to hit libm a lot, and look for it in a global
   # impure search path. It's obnoxious how much repetition there is, and how difficult
@@ -33,9 +34,8 @@ if isPyPy then null else buildPythonPackage rec {
     "-Wno-unused-command-line-argument -Wno-unreachable-code";
 
   doCheck = !stdenv.hostPlatform.isMusl && !stdenv.isDarwin; # TODO: Investigate
-  checkPhase = ''
-    py.test -k "not test_char_pointer_conversion"
-  '';
+
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     maintainers = with maintainers; [ domenkozar lnl7 ];
diff --git a/nixpkgs/pkgs/development/python-modules/chalice/default.nix b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
index e99f321df37f..70aa31a0d8bf 100644
--- a/nixpkgs/pkgs/development/python-modules/chalice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
@@ -7,6 +7,7 @@
 , click
 , enum-compat
 , hypothesis
+, inquirer
 , jmespath
 , mock
 , mypy-extensions
@@ -35,6 +36,7 @@ buildPythonPackage rec {
     botocore
     click
     enum-compat
+    inquirer
     jmespath
     mypy-extensions
     pip
diff --git a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
index 7e79d5c63a3c..50f6d33791de 100644
--- a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
@@ -14,7 +14,7 @@
 , requests
 , requests-toolbelt
 , requests-unixsocket
-, setuptools_scm
+, setuptools-scm
 , setuptools-scm-git-archive
 , six
 , trustme
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     sha256 = "f137d03fd5155b1364bea557a7c98168665c239f6c8cedd8f80e81cdfac01567";
   };
 
-  nativeBuildInputs = [ setuptools_scm setuptools-scm-git-archive ];
+  nativeBuildInputs = [ setuptools-scm setuptools-scm-git-archive ];
 
   propagatedBuildInputs = [
     # install_requires
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
index 2ee8eb3bd0ca..df50219fb170 100644
--- a/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/17.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPythonPackage, fetchPypi
-, setuptools_scm
+, setuptools-scm
 , cheroot, contextlib2, portend, routes, six, zc_lockfile
 , backports_unittest-mock, objgraph, pathpy, pytest, pytestcov, backports_functools_lru_cache, requests_toolbelt
 }:
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     cheroot contextlib2 portend routes six zc_lockfile
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [
     backports_unittest-mock objgraph pathpy pytest pytestcov backports_functools_lru_cache requests_toolbelt
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
index 9a01a030e685..9eebff1b1e6f 100644
--- a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPythonPackage, fetchPypi, isPy3k
-, setuptools_scm
+, setuptools-scm
 , cheroot, portend, more-itertools, zc_lockfile, routes
 , jaraco_collections
 , objgraph, pytest, pytestcov, pathpy, requests_toolbelt, pytest-services
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     # required
diff --git a/nixpkgs/pkgs/development/python-modules/chiabip158/default.nix b/nixpkgs/pkgs/development/python-modules/chiabip158/default.nix
new file mode 100644
index 000000000000..f2c309593610
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/chiabip158/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cmake
+, pybind11
+, pythonOlder
+, pytestCheckHook
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "chiabip158";
+  version = "1.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-dG6A4n30uPswQWY/Wmi75HK4ZMCDNr9Lt05FRWEPYV8=";
+  };
+
+  nativeBuildInputs = [ cmake setuptools-scm ];
+
+  buildInputs = [ pybind11 ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  # CMake needs to be run by setuptools rather than by its hook
+  dontConfigure = true;
+
+  meta = with lib; {
+    description = "Chia's implementation of BIP 158";
+    homepage = "https://www.chia.net/";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/chiapos/default.nix b/nixpkgs/pkgs/development/python-modules/chiapos/default.nix
new file mode 100644
index 000000000000..e0a86f499a2a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/chiapos/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, substituteAll
+, buildPythonPackage
+, fetchPypi
+, cmake
+, cxxopts
+, ghc_filesystem
+, pybind11
+, pythonOlder
+, psutil
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "chiapos";
+  version = "1.0.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09mwj9m9rcvcb3zn6v2xykgd4a9lpwl6c86nwl8d1iqr82gb5hb5";
+  };
+
+  patches = [
+    # prevent CMake from trying to get libraries on the Internet
+    (substituteAll {
+      src = ./dont_fetch_dependencies.patch;
+      inherit cxxopts ghc_filesystem;
+      pybind11_src = pybind11.src;
+    })
+  ];
+
+  nativeBuildInputs = [ cmake setuptools-scm ];
+
+  buildInputs = [ pybind11 ];
+
+  checkInputs = [ psutil ];
+
+  # CMake needs to be run by setuptools rather than by its hook
+  dontConfigure = true;
+
+  meta = with lib; {
+    description = "Chia proof of space library";
+    homepage = "https://www.chia.net/";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/chiapos/dont_fetch_dependencies.patch b/nixpkgs/pkgs/development/python-modules/chiapos/dont_fetch_dependencies.patch
new file mode 100644
index 000000000000..ca18fd292ca8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/chiapos/dont_fetch_dependencies.patch
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9b4a2f5..86f849c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,22 +18,19 @@ include(FetchContent)
+ 
+ FetchContent_Declare(
+   pybind11-src
+-  GIT_REPOSITORY https://github.com/pybind/pybind11.git
+-  GIT_TAG        v2.6.2
++  SOURCE_DIR @pybind11_src@
+ )
+ FetchContent_MakeAvailable(pybind11-src)
+ 
+ FetchContent_Declare(
+   cxxopts
+-  GIT_REPOSITORY https://github.com/jarro2783/cxxopts.git
+-  GIT_TAG        v2.2.1
++  SOURCE_DIR @cxxopts@
+ )
+ FetchContent_MakeAvailable(cxxopts)
+ 
+ FetchContent_Declare(
+   gulrak
+-  GIT_REPOSITORY https://github.com/gulrak/filesystem.git
+-  GIT_TAG        v1.5.4
++  SOURCE_DIR @ghc_filesystem@
+ )
+ FetchContent_MakeAvailable(gulrak)
+ 
+
diff --git a/nixpkgs/pkgs/development/python-modules/chiavdf/default.nix b/nixpkgs/pkgs/development/python-modules/chiavdf/default.nix
new file mode 100644
index 000000000000..deb7d21adc76
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/chiavdf/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+, substituteAll
+, cmake
+, boost
+, gmp
+, pybind11
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "chiavdf";
+  version = "1.0.1";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-z0od/VrH580+9641lKNI7jbVMlJZKCWnoT+GljnFxmU=";
+  };
+
+  patches = [
+    # prevent CMake from trying to get libraries on the Internet
+    (substituteAll {
+      src = ./dont_fetch_dependencies.patch;
+      pybind11_src = pybind11.src;
+    })
+  ];
+
+  # x86 instructions are needed for this component
+  BUILD_VDF_CLIENT = lib.optionalString (!stdenv.isx86_64) "N";
+
+  nativeBuildInputs = [ cmake setuptools-scm ];
+
+  buildInputs = [ boost gmp pybind11 ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  # CMake needs to be run by setuptools rather than by its hook
+  dontConfigure = true;
+
+  meta = with lib; {
+    description = "Chia verifiable delay function utilities";
+    homepage = "https://www.chia.net/";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/chiavdf/dont_fetch_dependencies.patch b/nixpkgs/pkgs/development/python-modules/chiavdf/dont_fetch_dependencies.patch
new file mode 100644
index 000000000000..9b49db81fcf5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/chiavdf/dont_fetch_dependencies.patch
@@ -0,0 +1,14 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index c975128..a9f6910 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -31,8 +31,7 @@ include(FetchContent)
+ 
+ FetchContent_Declare(
+   pybind11-src
+-  GIT_REPOSITORY https://github.com/pybind/pybind11.git
+-  GIT_TAG        v2.6.2
++  SOURCE_DIR @pybind11_src@
+ )
+ FetchContent_MakeAvailable(pybind11-src)
+ 
diff --git a/nixpkgs/pkgs/development/python-modules/cirq-core/default.nix b/nixpkgs/pkgs/development/python-modules/cirq-core/default.nix
new file mode 100644
index 000000000000..54e2fa1954df
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cirq-core/default.nix
@@ -0,0 +1,98 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, matplotlib
+, networkx
+, numpy
+, pandas
+, requests
+, scipy
+, sortedcontainers
+, sympy
+, tqdm
+, typing-extensions
+  # Contrib requirements
+, withContribRequires ? false
+, autoray ? null
+, opt-einsum
+, ply
+, pylatex ? null
+, pyquil ? null
+, quimb ? null
+  # test inputs
+, pytestCheckHook
+, freezegun
+, pytest-asyncio
+}:
+buildPythonPackage rec {
+  pname = "cirq-core";
+  version = "0.11.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "quantumlib";
+    repo = "cirq";
+    rev = "v${version}";
+    hash = "sha256-JaKTGnkYhzIFb35SGaho8DRupoT0JFYKA5+rJEq4oXw=";
+  };
+
+  sourceRoot = "source/${pname}";
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "matplotlib~=3.0" "matplotlib" \
+      --replace "networkx~=2.4" "networkx" \
+      --replace "numpy~=1.16" "numpy" \
+      --replace "requests~=2.18" "requests"
+  '';
+
+  propagatedBuildInputs = [
+    matplotlib
+    networkx
+    numpy
+    pandas
+    requests
+    scipy
+    sortedcontainers
+    sympy
+    tqdm
+    typing-extensions
+  ] ++ lib.optionals withContribRequires [
+    autoray
+    opt-einsum
+    ply
+    pylatex
+    pyquil
+    quimb
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-asyncio
+    freezegun
+  ];
+
+  pytestFlagsArray = lib.optionals (!withContribRequires) [
+    # requires external (unpackaged) libraries, so untested.
+    "--ignore=cirq/contrib/"
+  ];
+  disabledTests = [
+    "test_metadata_search_path" # tries to import flynt, which isn't in Nixpkgs
+    "test_benchmark_2q_xeb_fidelities" # fails due pandas MultiIndex. Maybe issue with pandas version in nix?
+  ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [
+    # Seem to fail due to math issues on aarch64?
+    "expectation_from_wavefunction"
+    "test_single_qubit_op_to_framed_phase_form_output_on_example_case"
+  ];
+
+  meta = with lib; {
+    description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.";
+    homepage = "https://github.com/quantumlib/cirq";
+    changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cirq-google/default.nix b/nixpkgs/pkgs/development/python-modules/cirq-google/default.nix
new file mode 100644
index 000000000000..8692aef4b678
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cirq-google/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, cirq-core
+, google-api-core
+, protobuf
+# test inputs
+, pytestCheckHook
+, freezegun
+}:
+
+buildPythonPackage rec {
+  pname = "cirq-google";
+  inherit (cirq-core) version src meta;
+
+  sourceRoot = "source/${pname}";
+
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "protobuf~=3.13.0" "protobuf"
+  '';
+
+  propagatedBuildInputs = [
+    cirq-core
+    google-api-core
+    protobuf
+  ];
+
+  checkInputs = [ pytestCheckHook freezegun ];
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cirq/default.nix b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
index f0b576299b21..f8afdcbbb050 100644
--- a/nixpkgs/pkgs/development/python-modules/cirq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
@@ -1,114 +1,28 @@
-{ stdenv
-, lib
+{ lib
 , buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, google-api-core
-, matplotlib
-, networkx
-, numpy
-, pandas
-, protobuf
-, requests
-, scipy
-, sortedcontainers
-, sympy
-, tqdm
-, typing-extensions
+, cirq-core
+, cirq-google
   # test inputs
-, freezegun
 , pytestCheckHook
-, pytest-asyncio
-, pytest-benchmark
-, ply
-, pydot
-, pyyaml
-, pygraphviz
 }:
 
 buildPythonPackage rec {
   pname = "cirq";
-  version = "0.10.0";
-
-  disabled = pythonOlder "3.6";
-
-  src = fetchFromGitHub {
-    owner = "quantumlib";
-    repo = "cirq";
-    rev = "v${version}";
-    sha256 = "0xinml44n2lfl0q2lb2apmn69gsszlwim83082f66vyk0gpwd4lr";
-  };
-
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "matplotlib~=3.0" "matplotlib" \
-      --replace "networkx~=2.4" "networkx" \
-      --replace "numpy~=1.16" "numpy" \
-      --replace "protobuf~=3.13.0" "protobuf"
-  '';
+  inherit (cirq-core) version src meta;
 
   propagatedBuildInputs = [
-    google-api-core
-    matplotlib
-    networkx
-    numpy
-    pandas
-    protobuf
-    requests
-    scipy
-    sortedcontainers
-    sympy
-    tqdm
-    typing-extensions
+    cirq-core
+    cirq-google
   ];
 
   # pythonImportsCheck = [ "cirq" "cirq.Circuit" ];  # cirq's importlib hook doesn't work here
-  checkInputs = [
-    pytestCheckHook
-    freezegun
-    pytest-asyncio
-    pytest-benchmark
-    ply
-    pydot
-    pyyaml
-    pygraphviz
-  ];
+  checkInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "--ignore=dev_tools"  # Only needed when developing new code, which is out-of-scope
-    "--ignore=cirq/contrib/"  # requires external (unpackaged) python packages, so untested.
-    "--benchmark-disable" # Don't need to run benchmarks when packaging.
-  ];
-  disabledTests = lib.optionals stdenv.isAarch64 [
-    # Seem to fail due to math issues on aarch64?
-    "expectation_from_wavefunction"
-    "test_single_qubit_op_to_framed_phase_form_output_on_example_case"
-  ] ++ [
-    # slow tests, for quicker building
-    "test_anneal_search_method_calls"
-    "test_density_matrix_from_state_tomography_is_correct"
-    "test_example_runs_qubit_characterizations"
-    "test_example_runs_hello_line_perf"
-    "test_example_runs_bc_mean_field_perf"
-    "test_main_loop"
-    "test_clifford_circuit_2"
-    "test_decompose_specific_matrices"
-    "test_two_qubit_randomized_benchmarking"
-    "test_kak_decomposition_perf"
-    "test_example_runs_simon"
-    "test_decompose_random_unitary"
-    "test_decompose_size_special_unitary"
-    "test_api_retry_5xx_errors"
-    "test_xeb_fidelity"
-    "test_example_runs_phase_estimator_perf"
-    "test_cross_entropy_benchmarking"
+  # Don't run submodule or development tool tests
+  disabledTestPaths = [
+    "cirq-google"
+    "cirq-core"
+    "dev_tools"
   ];
 
-  meta = with lib; {
-    description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.";
-    homepage = "https://github.com/quantumlib/cirq";
-    changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ drewrisinger ];
-  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/claripy/default.nix b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
index c3a715c15274..ad3c97b920d7 100644
--- a/nixpkgs/pkgs/development/python-modules/claripy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/claripy/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.0.6852";
+  version = "9.0.7912";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-31zaL3PJDXyLvVD3Xdc2qoLSrXipwTawHoj+I+Y6fng=";
+    sha256 = "sha256-p9i3ajN/CpLdwcg8HLhtION0ghgs1fcnqjzUrxu1wDw=";
   };
 
   # Use upstream z3 implementation
diff --git a/nixpkgs/pkgs/development/python-modules/cle/default.nix b/nixpkgs/pkgs/development/python-modules/cle/default.nix
index 4daab5059627..45e619b25c6d 100644
--- a/nixpkgs/pkgs/development/python-modules/cle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cle/default.nix
@@ -15,7 +15,7 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.0.6852";
+  version = "9.0.7912";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IRyRio3M7YZtdBqb7PGoWs2Lyt8hjBLYM1zQYbhjYEs=";
+    sha256 = "sha256-AHJk40uRhrlQbfzRmMJXremKxnxjpmxLLAAYxNV9vkc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix b/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix
index 36944b5dbec4..233b7164989d 100644
--- a/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "clevercsv";
-  version = "0.6.7";
+  version = "0.6.8";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "alan-turing-institute";
     repo = "CleverCSV";
     rev = "v${version}";
-    sha256 = "0j3959bji48pkp0vnk7yls5l75ywjl77jdkvzs62n5mi5lky88p9";
+    sha256 = "0jpgyh65zqr76sz2s63zsjyb49dpg2xdmf72jvpicw923bdzhqvp";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/click-configfile/default.nix b/nixpkgs/pkgs/development/python-modules/click-configfile/default.nix
new file mode 100644
index 000000000000..0d87aa890d2a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/click-configfile/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, click
+, six
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "click-configfile";
+  version = "0.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "lb7sE77pUOmPQ8gdzavvT2RAkVWepmKY+drfWTUdkNE=";
+  };
+
+  propagatedBuildInputs = [
+    click
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_configfile__with_unbound_section"
+    "test_matches_section__with_bad_arg"
+  ];
+
+  meta = with lib; {
+    description = "Add support for commands that use configuration files to Click";
+    homepage = "https://github.com/click-contrib/click-configfile";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/click-option-group/default.nix b/nixpkgs/pkgs/development/python-modules/click-option-group/default.nix
new file mode 100644
index 000000000000..cf39ba808452
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/click-option-group/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, click
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "click-option-group";
+  version = "0.5.3";
+  format = "setuptools";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "click-contrib";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1w0692s8fabncpggpwl2d4dfqjjlmcia271rrb8hcz0r6nvw98ak";
+  };
+
+  propagatedBuildInputs = [
+    click
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "click_option_group"
+  ];
+
+  meta = with lib; {
+    description = "Option groups missing in Click";
+    longDescription = ''
+      Option groups are convenient mechanism for logical structuring
+      CLI, also it allows you to set the specific behavior and set the
+      relationship among grouped options (mutually exclusive options
+      for example). Moreover, argparse stdlib package contains this
+      functionality out of the box.
+    '';
+    homepage = "https://github.com/click-contrib/click-option-group";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/click-spinner/default.nix b/nixpkgs/pkgs/development/python-modules/click-spinner/default.nix
new file mode 100644
index 000000000000..e0d862ab1310
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/click-spinner/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, click
+, six
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "click-spinner";
+  version = "0.1.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "h+rPnXKYlzol12Fe9X1Hgq6/kTpTK7pLKKN+Nm6XXa8=";
+  };
+
+  checkInputs = [
+    click
+    six
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Add support for showwing that command line app is active to Click";
+    homepage = "https://github.com/click-contrib/click-spinner";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix b/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix
index a1addcfc97ab..9a4c0f0f92be 100644
--- a/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , setuptools
 , pytz
 , tzlocal
@@ -10,15 +10,20 @@
 , freezegun
 , mock
 , nose
+, pytestCheckHook
+, pytest-xdist
 }:
 
 buildPythonPackage rec {
   pname = "clickhouse-driver";
   version = "0.2.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "62d37f93872d5a13eb6b0d52bab2b593ed0e14cf9200949aa2d02f9801064c0f";
+  # pypi source doesn't contain tests
+  src = fetchFromGitHub {
+    owner = "mymarilyn";
+    repo = "clickhouse-driver";
+    rev = "96b7ba448c63ca2670cc9aa70d4a0e08826fb650";
+    sha256 = "sha256-HFKUxJOlBCVlu7Ia8heGpwX6+HdKuwSy92s3v+GKGwE=";
   };
 
   propagatedBuildInputs = [
@@ -34,9 +39,30 @@ buildPythonPackage rec {
     freezegun
     mock
     nose
+    pytest-xdist
+    pytestCheckHook
   ];
 
-  doCheck = true;
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "lz4<=3.0.1" "lz4<=4"
+  '';
+
+  # remove source to prevent pytest testing source instead of the build artifacts
+  # (the source doesn't contain the extension modules)
+  preCheck = ''
+    rm -rf clickhouse_driver
+  '';
+
+  # some test in test_buffered_reader.py doesn't seem to return
+  disabledTestPaths = [ "tests/test_buffered_reader.py" ];
+
+  pytestFlagsArray = [ "-n" "$NIX_BUILD_CORES" ];
+
+  # most tests require `clickhouse`
+  # TODO: enable tests after `clickhouse` unbroken
+  doCheck = false;
+
   pythonImportsCheck = [ "clickhouse_driver" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/clldutils/default.nix b/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
index 96e6b86c1507..318354786b56 100644
--- a/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "clldutils";
-  version = "3.7.0";
+  version = "3.9.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "clld";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13shas7krf7j04gqxjn09ipy318hmrp1s3b5d576d5r1xfxakam4";
+    sha256 = "07ljq7v1zvaxyl6xn4a2p4097lgd5j9bz71lf05y5bz8k024mxbr";
   };
 
   patchPhase = ''
@@ -48,6 +48,6 @@ buildPythonPackage rec {
     description = "CSV on the Web";
     homepage = "https://github.com/cldf/csvw";
     license = licenses.asl20;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix b/nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix
index 591d1aac2e6a..cd11aa03f863 100644
--- a/nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cloudscraper/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "cloudscraper";
-  version = "1.2.56";
+  version = "1.2.58";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84c5910023dd393619b2b793fdb154392c5c8887b55e4bcac3ad2646f1cfe212";
+    sha256 = "1wnzv2k8cm8q1x18r4zg8pcnpm4gsdp82hywwjimp2v2qll918nx";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix b/nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix
new file mode 100644
index 000000000000..57316ae9d6ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, certifi
+, six
+, dateutil
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "cloudsmith-api";
+  version = "0.54.15";
+
+  format = "wheel";
+
+  src = fetchPypi {
+    pname = "cloudsmith_api";
+    inherit format version;
+    sha256 = "X72xReosUnUlj69Gq+i+izhaKZuakM9mUrRHZI5L9h0=";
+  };
+
+  propagatedBuildInputs = [
+    certifi
+    six
+    dateutil
+    urllib3
+  ];
+
+  # Wheels have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "cloudsmith_api"
+  ];
+
+  meta = with lib; {
+    description = "Cloudsmith API Client";
+    homepage = "https://github.com/cloudsmith-io/cloudsmith-api";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/clvm-rs/default.nix b/nixpkgs/pkgs/development/python-modules/clvm-rs/default.nix
new file mode 100644
index 000000000000..4e5f69f8cd50
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/clvm-rs/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, rustPlatform
+, pythonOlder
+, openssl
+, perl
+}:
+
+buildPythonPackage rec {
+  pname = "clvm_rs";
+  version = "0.1.7";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Chia-Network";
+    repo = "clvm_rs";
+    rev = version;
+    sha256 = "sha256-ves23q1uQ3lexwK9l1xGRss05jYObJDi/aY9Yvp4aPU=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-3kPzM2EX61ZvU6VKXY1OG/ic+9FU3Et4RuKp+3QYzSo=";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [
+    perl # used by openssl-sys to configure
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ]);
+
+  buildInputs = [ openssl ];
+
+  pythonImportsCheck = [ "clvm_rs" ];
+
+  meta = with lib; {
+    homepage = "https://chialisp.com/";
+    description = "Rust implementation of clvm";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/clvm-tools/default.nix b/nixpkgs/pkgs/development/python-modules/clvm-tools/default.nix
new file mode 100644
index 000000000000..66856191d403
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/clvm-tools/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, clvm
+, setuptools-scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "clvm_tools";
+  version = "0.4.3";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Chia-Network";
+    repo = "clvm_tools";
+    rev = version;
+    sha256 = "sha256-bWz3YCrakob/kROq+LOA+yD1wtIbInVrmDqtg4/cV4g=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    clvm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "clvm_tools"
+  ];
+
+  disabledTests = [
+    "test_cmd_unknown-1_txt"
+  ];
+
+  # give a hint to setuptools-scm on package version
+  SETUPTOOLS_SCM_PRETEND_VERSION="v${version}";
+
+  meta = with lib; {
+    description = "Tools for clvm development";
+    homepage = "https://www.chialisp.com/";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/clvm/default.nix b/nixpkgs/pkgs/development/python-modules/clvm/default.nix
new file mode 100644
index 000000000000..00bc14e280f4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/clvm/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, blspy
+, setuptools-scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "clvm";
+  version = "0.9.6";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Chia-Network";
+    repo = "clvm";
+    rev = version;
+    sha256 = "sha256-XBQEilDFhx0kT9bEMD4jX+SDk3cAC1BUCWhbtpgrLcA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  # give a hint to setuptools-scm on package version
+  SETUPTOOLS_SCM_PRETEND_VERSION = "v${version}";
+
+  propagatedBuildInputs = [
+    blspy
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # all tests in this file have a circular dependency on clvm-tools
+    "tests/cmds_test.py"
+  ];
+
+  pythonImportsCheck = [
+    "clvm"
+  ];
+
+  meta = with lib; {
+    description = "Chia Lisp virtual machine";
+    homepage = "https://www.chia.net/";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
index a6b49d32bcb9..dee6c2ab499e 100644
--- a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchPypi, buildPythonPackage, pythonOlder, isPy3k
 , pyperclip, six, pyparsing, vim, wcwidth, colorama, attrs
-, contextlib2 ? null, typing ? null, setuptools_scm
+, contextlib2 ? null, typing ? null, setuptools-scm
 , pytest, mock ? null, pytest-mock
 , which, glibcLocales
 }:
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   disabled = !isPy3k;
 
   buildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix b/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
index 5baa28e4bd7f..6347c8552bf6 100644
--- a/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
@@ -6,7 +6,7 @@
 , biopython
 , numpy
 , scipy
-, scikitlearn
+, scikit-learn
 , pandas
 , matplotlib
 , reportlab
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     biopython
     numpy
     scipy
-    scikitlearn
+    scikit-learn
     pandas
     matplotlib
     reportlab
diff --git a/nixpkgs/pkgs/development/python-modules/cock/default.nix b/nixpkgs/pkgs/development/python-modules/cock/default.nix
new file mode 100644
index 000000000000..c11646decd74
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cock/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildPythonPackage, fetchPypi, locale, pytestCheckHook, click, sortedcontainers, pyyaml }:
+
+buildPythonPackage rec {
+  pname = "cock";
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gwaklvwlyvhz2c07hdmhbnqqmpybssxzzr0399dpjk7dgdqgam3";
+  };
+
+  propagatedBuildInputs = [ click sortedcontainers pyyaml ];
+
+  meta = with lib; {
+    homepage = "https://github.com/pohmelie/cock";
+    description = "Configuration file with click";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cocotb-bus/default.nix b/nixpkgs/pkgs/development/python-modules/cocotb-bus/default.nix
new file mode 100644
index 000000000000..af740e8d298f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cocotb-bus/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "cocotb-bus";
+  version = "0.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cc9b0bb00c95061a67f650caf96e3a294bb74ef437124dea456dd9e2a9431854";
+  };
+
+  postPatch = ''
+    # remove circular dependency cocotb from setup.py
+    substituteInPlace setup.py --replace '"cocotb>=1.5.0.dev,<2.0"' ""
+  '';
+
+  # tests require cocotb, disable for now to avoid circular dependency
+  doCheck = false;
+
+  # checkPhase = ''
+  #   export PATH=$out/bin:$PATH
+  #   make test
+  # '';
+
+  meta = with lib; {
+    description = "Pre-packaged testbenching tools and reusable bus interfaces for cocotb";
+    homepage = "https://github.com/cocotb/cocotb-bus";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cocotb/default.nix b/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
index b63432383832..17fe45f1cf49 100644
--- a/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
@@ -1,19 +1,31 @@
-{ lib, stdenv, buildPythonPackage, fetchFromGitHub, setuptools, swig, verilog }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, cocotb-bus
+, pytest
+, swig
+, verilog
+}:
 
 buildPythonPackage rec {
   pname = "cocotb";
-  version = "1.5.1";
-
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "02bw2i03vd4rcvdk10qdjl2lbvvy81cn9qpr8vzq8cm9h45689mv";
+  version = "1.5.2";
+
+  # - we need to use the tarball from PyPi
+  #   or the full git checkout (with .git)
+  # - using fetchFromGitHub will cause a build failure,
+  #   because it does not include required metadata
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9f4f3e6eb9caeb479e98d604770645b57469cd25b39e28df1916ffcd593efbe6";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
+
+  buildInputs = [ setuptools ];
 
   postPatch = ''
     patchShebangs bin/*.py
@@ -25,16 +37,14 @@ buildPythonPackage rec {
     do
       substituteInPlace $f --replace 'shell which' 'shell command -v'
     done
+
+    # remove circular dependency cocotb-bus from setup.py
+    substituteInPlace setup.py --replace "'cocotb-bus<1.0'" ""
   '';
 
-  checkInputs = [ swig verilog ];
+  checkInputs = [ cocotb-bus pytest swig verilog ];
 
   checkPhase = ''
-    # test expected failures actually pass because of a fix in our icarus version
-    # https://github.com/cocotb/cocotb/issues/1952
-    substituteInPlace tests/test_cases/test_discovery/test_discovery.py \
-      --replace 'def access_single_bit' $'def foo(x): pass\ndef foo'
-
     export PATH=$out/bin:$PATH
     make test
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/colored-traceback/default.nix b/nixpkgs/pkgs/development/python-modules/colored-traceback/default.nix
new file mode 100644
index 000000000000..35d1d5a896c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/colored-traceback/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pygments
+}:
+
+buildPythonPackage rec {
+  pname = "colored-traceback";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-bafOKx2oafa7VMkntBW5VyfEu22ahMRhXqd9mHKRGwU=";
+  };
+
+  buildInputs = [ pygments ];
+
+  # No setuptools tests for the package.
+  doCheck = false;
+
+  pythonImportsCheck = [ "colored_traceback" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/staticshock/colored-traceback.py";
+    description = "Automatically color Python's uncaught exception tracebacks";
+    license = licenses.isc;
+    maintainers = with maintainers; [ pamplemousse ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/commentjson/default.nix b/nixpkgs/pkgs/development/python-modules/commentjson/default.nix
new file mode 100644
index 000000000000..2aefb51d481e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/commentjson/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchFromGitHub, six, lark-parser, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "commentjson";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "vaidik";
+    repo = "commentjson";
+    rev = "v${version}";
+    sha256 = "sha256-dPnIcv7TIeyG7rU938w7FrDklmaGuPpXz34uw/JjOgY=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "lark-parser>=0.7.1,<0.8.0" "lark-parser"
+
+    # NixOS is missing test.test_json module
+    rm -r commentjson/tests/test_json
+  '';
+
+  propagatedBuildInputs = [ lark-parser six ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "commentjson" ];
+
+  meta = with lib; {
+    description = "Add JavaScript or Python style comments in JSON";
+    homepage = "https://github.com/vaidik/commentjson/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix b/nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix
new file mode 100644
index 000000000000..5880cdf961e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, portalocker
+}:
+
+buildPythonPackage rec {
+  pname = "concurrent-log-handler";
+  version = "0.9.19";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-sS95q+0/lBIcJc6cJM21fYiSguxv9h9VNasgaNw31Ak=";
+  };
+
+  propagatedBuildInputs = [
+    portalocker
+  ];
+
+  pythonImportsCheck = [
+    "concurrent_log_handler"
+  ];
+
+  doCheck = false; # upstream has no tests
+
+  meta = with lib; {
+    description = "Python logging handler that allows multiple processes to safely write to the same log file concurrently";
+    homepage = "https://www.chia.net/";
+    license = licenses.asl20;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/4.nix b/nixpkgs/pkgs/development/python-modules/configparser/4.nix
index cbef6fd2ce7f..0f3b6e0b4912 100644
--- a/nixpkgs/pkgs/development/python-modules/configparser/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/configparser/4.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "configparser";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   preConfigure = ''
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/default.nix b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
index 47fe88d4e61a..a939f6623c9c 100644
--- a/nixpkgs/pkgs/development/python-modules/configparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools_scm
+{ lib, stdenv, buildPythonPackage, fetchPypi, setuptools-scm
 , toml
 }:
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm toml ];
 
   preConfigure = ''
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
diff --git a/nixpkgs/pkgs/development/python-modules/connect_box/default.nix b/nixpkgs/pkgs/development/python-modules/connect_box/default.nix
index 6c92ac025d8d..cfcb1d946824 100644
--- a/nixpkgs/pkgs/development/python-modules/connect_box/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/connect_box/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "connect-box";
-  version = "0.2.8";
+  version = "0.3.0";
 
   src = fetchPypi {
     pname = "connect_box";
     inherit version;
-    sha256 = "1lvz7g2f0a9ifnjczmbavn105miirdgyayr4sixhzgdgadcdhz3l";
+    sha256 = "sha256-d1KqVKaHlZDm2o1GJ7r8KoONwfd1lxXexJxavCvjfW8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/connexion/default.nix b/nixpkgs/pkgs/development/python-modules/connexion/default.nix
index 25925f56069a..0429ee7a507a 100644
--- a/nixpkgs/pkgs/development/python-modules/connexion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/connexion/default.nix
@@ -1,89 +1,60 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, glibcLocales
-, lib
-, pythonOlder
-
+{ lib
 , aiohttp
-, aiohttp-swagger
 , aiohttp-jinja2
+, aiohttp-remotes
+, aiohttp-swagger
+, buildPythonPackage
 , clickclick
 , decorator
-, flake8
+, fetchFromGitHub
 , flask
-, gevent
 , inflection
 , jsonschema
-, mock
 , openapi-spec-validator
-, pathlib
-, pytest
 , pytest-aiohttp
-, pytestcov
+, pytestCheckHook
+, pythonOlder
 , pyyaml
 , requests
-, six
 , swagger-ui-bundle
 , testfixtures
-, typing ? null
-, ujson
 }:
 
 buildPythonPackage rec {
   pname = "connexion";
-  version = "2.4.0";
+  version = "2.7.0";
+  disabled = pythonOlder "3.6";
 
-  # we're fetching from GitHub because tests weren't distributed on PyPi
   src = fetchFromGitHub {
     owner = "zalando";
     repo = pname;
     rev = version;
-    sha256 = "1b9q027wrks0afl7l3a1wxymz3aick26b9fq2m07pc5wb9np0vvg";
+    sha256 = "15iflq5403diwda6n6qrpq67wkdcvl3vs0gsg0fapxqnq3a2m7jj";
   };
 
-  checkInputs = [
-    decorator
-    mock
-    pytest
-    pytestcov
-    testfixtures
-    flask
-    swagger-ui-bundle
-  ]
-  ++ lib.optionals isPy3k [ aiohttp aiohttp-jinja2 aiohttp-swagger ujson pytest-aiohttp ]
-  ++ lib.optional (pythonOlder "3.7") glibcLocales
-  ;
   propagatedBuildInputs = [
+    aiohttp
+    aiohttp-jinja2
+    aiohttp-swagger
     clickclick
+    flask
+    inflection
     jsonschema
+    openapi-spec-validator
     pyyaml
     requests
-    six
-    inflection
-    openapi-spec-validator
     swagger-ui-bundle
-    flask
-  ]
-  ++ lib.optional (pythonOlder "3.4") pathlib
-  ++ lib.optional (pythonOlder "3.6") typing
-  ++ lib.optionals isPy3k [ aiohttp aiohttp-jinja2 aiohttp-swagger ujson ]
-  ;
-
-  preConfigure = lib.optional (pythonOlder "3.7") ''
-    export LANG=en_US.UTF-8
-  '';
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "'aiohttp>=2.3.10,<3.5.2'" "'aiohttp>=2.3.10'"
-  '';
+  checkInputs = [
+    aiohttp-remotes
+    decorator
+    pytest-aiohttp
+    pytestCheckHook
+    testfixtures
+  ];
 
-  checkPhase = if isPy3k then ''
-    pytest -k "not test_app_get_root_path and \
-               not test_verify_oauth_scopes_remote and \
-               not test_verify_oauth_scopes_local and \
-               not test_run_with_aiohttp_not_installed"''
-  else "pytest --ignore=tests/aiohttp";
+  pythonImportsCheck = [ "connexion" ];
 
   meta = with lib; {
     description = "Swagger/OpenAPI First framework on top of Flask";
diff --git a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
index c5ee4d8617d0..b2a13cdbb654 100644
--- a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "cookiecutter";
-  version = "1.7.2";
+  version = "1.7.3";
 
   # not sure why this is broken
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "efb6b2d4780feda8908a873e38f0e61778c23f6a2ea58215723bcceb5b515dac";
+    sha256 = "sha256-a5pNcoguJDvgd6c5fQ8fdv5mzz35HzEV27UzDiFPpFc=";
   };
 
   checkInputs = [ pytest pytestcov pytest-mock freezegun ];
diff --git a/nixpkgs/pkgs/development/python-modules/coqpit/default.nix b/nixpkgs/pkgs/development/python-modules/coqpit/default.nix
new file mode 100644
index 000000000000..c4df114e24df
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/coqpit/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "coqpit";
+  version = "0.0.6.6";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "coqui-ai";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wb5wf84i5h4ycm732kn4316v7schhm91s2rrklfw9sny5dqmdnh";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "coqpit"
+    "coqpit.coqpit"
+  ];
+
+  meta = with lib; {
+    description = "Simple but maybe too simple config management through python data classes";
+    longDescription = ''
+      Simple, light-weight and no dependency config handling through python data classes with to/from JSON serialization/deserialization.
+    '';
+    homepage = "https://github.com/coqui-ai/coqpit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa mic92 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/coreapi/default.nix b/nixpkgs/pkgs/development/python-modules/coreapi/default.nix
index 8b957fee4f6e..ad9fd3d7ef73 100644
--- a/nixpkgs/pkgs/development/python-modules/coreapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coreapi/default.nix
@@ -39,6 +39,6 @@ buildPythonPackage rec {
     description = "Python client library for Core API";
     homepage = "https://github.com/core-api/python-client";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ivegotasthma ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/coreschema/default.nix b/nixpkgs/pkgs/development/python-modules/coreschema/default.nix
index 65bdee5a8da9..d22e7f4ecd91 100644
--- a/nixpkgs/pkgs/development/python-modules/coreschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coreschema/default.nix
@@ -29,6 +29,6 @@ buildPythonPackage rec {
     description = "Python client library for Core Schema";
     homepage = "https://github.com/ivegotasthma/python-coreschema";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ivegotasthma ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix b/nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix
new file mode 100644
index 000000000000..e7c016be06bb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
+, requests
+, tldextract
+, urllib3
+, validators
+}:
+
+buildPythonPackage rec {
+  pname = "corsair-scan";
+  version = "0.2.0";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Santandersecurityresearch";
+    repo = "corsair_scan";
+    rev = "v${version}";
+    sha256 = "09jsv5bag7mjy0rxsxjzmg73rjl7qknzr0d7a7himd7v6a4ikpmk";
+  };
+
+  propagatedBuildInputs = [
+    validators
+    requests
+    urllib3
+    tldextract
+    click
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest-runner'," ""
+  '';
+
+  pythonImportsCheck = [ "corsair_scan" ];
+
+  meta = with lib; {
+    description = "Python module to check for Cross-Origin Resource Sharing (CORS) misconfigurations";
+    homepage = "https://github.com/Santandersecurityresearch/corsair_scan";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/crate/default.nix b/nixpkgs/pkgs/development/python-modules/crate/default.nix
index 9be85ff4b3cd..07b9652e7753 100644
--- a/nixpkgs/pkgs/development/python-modules/crate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crate/default.nix
@@ -29,6 +29,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    "RequestsCaBundleTest"
+  ];
   disabledTestPaths = lib.optionals stdenv.isDarwin [ "src/crate/client/test_http.py" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/croniter/default.nix b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
index 577fef8d79d9..a93f8e78ce6b 100644
--- a/nixpkgs/pkgs/development/python-modules/croniter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "1.0.9";
+  version = "1.0.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "708532f70584207e23ef2989ca40f367e6238bfe050133a1aff43e1e0e6f6092";
+    sha256 = "sha256-V/Nt9PWhwxu/ULv/o1UWEsGfYVarHoji5CNCzLufm5o=";
   };
 
   propagatedBuildInputs = [
@@ -28,6 +28,8 @@ buildPythonPackage rec {
     tzlocal
   ];
 
+  pythonImportsCheck = [ "croniter" ];
+
   meta = with lib; {
     description = "croniter provides iteration for datetime object with cron like format";
     homepage = "https://github.com/kiorky/croniter";
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
index 4671f607bbac..9b35b5654e26 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
@@ -15,6 +15,7 @@
 , pytest
 , pytest-subtests
 , pretend
+, libiconv
 , iso8601
 , pytz
 , hypothesis
@@ -33,7 +34,7 @@ buildPythonPackage rec {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "1wisxmq26b8ml144m2458sgcbk8jpv419j01qmffsrfy50x9i1yw";
+    sha256 = "1m6smky4nahwlp4hn6yzibrcxlbsw4nx162dsq48vlw8h1lgjl62";
   };
 
   cargoRoot = "src/rust";
@@ -48,7 +49,7 @@ buildPythonPackage rec {
   ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);
 
   buildInputs = [ openssl ]
-             ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+             ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security libiconv ];
   propagatedBuildInputs = [
     packaging
     six
@@ -66,8 +67,18 @@ buildPythonPackage rec {
     pytz
   ];
 
+  pytestFlags = lib.concatStringsSep " " ([
+    "--disable-pytest-warnings"
+  ] ++
+    lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+      # aarch64-darwin forbids W+X memory, but this tests depends on it:
+      # * https://cffi.readthedocs.io/en/latest/using.html#callbacks
+      "--ignore=tests/hazmat/backends/test_openssl_memleak.py"
+    ]
+  );
+
   checkPhase = ''
-    py.test --disable-pytest-warnings tests
+    py.test ${pytestFlags} tests
   '';
 
   # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
diff --git a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
index 8bfe8ea2948d..9d1aec862508 100644
--- a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
@@ -5,19 +5,21 @@
 , setuptools-scm
 , toml
 , importlib-metadata
+, cssselect
+, lxml
 , mock
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "cssutils";
-  version = "2.2.0";
+  version = "2.3.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5bef59f6b59bdccbea8e36cb292d2be1b6be1b485fc4a9f5886616f19eb31aaf";
+    sha256 = "sha256-stOxYEfKroLlxZADaTW6+htiHPRcLziIWvS+SDjw/QA=";
   };
 
   nativeBuildInputs = [
@@ -30,6 +32,8 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    cssselect
+    lxml
     mock
     pytestCheckHook
   ];
@@ -38,6 +42,12 @@ buildPythonPackage rec {
     # access network
     "test_parseUrl"
     "encutils"
+    "website.logging"
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    # AttributeError: module 'importlib.resources' has no attribute 'files'
+    "test_parseFile"
+    "test_parseString"
+    "test_combine"
   ];
 
   pythonImportsCheck = [ "cssutils" ];
diff --git a/nixpkgs/pkgs/development/python-modules/csvw/default.nix b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
index e4bd7ab2b624..27f3f291113c 100644
--- a/nixpkgs/pkgs/development/python-modules/csvw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
+, pythonOlder
 , attrs
 , isodate
 , dateutil
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "csvw";
-  version = "1.10.1";
-  disabled = isPy27;
+  version = "1.11.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "cldf";
     repo = "csvw";
     rev = "v${version}";
-    sha256 = "1764nfa4frjdd7v6wj35y7prnciaqz57wwygy5zfavl4laxn4nxd";
+    sha256 = "1393xwqawaxsflbq62vks92vv4zch8p6dd1mdvdi7j4vvf0zljkg";
   };
 
   patchPhase = ''
@@ -42,6 +42,12 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
+  disabledTests = [
+    # this test is flaky on darwin because it depends on the resolution of filesystem mtimes
+    # https://github.com/cldf/csvw/blob/45584ad63ff3002a9b3a8073607c1847c5cbac58/tests/test_db.py#L257
+    "test_write_file_exists"
+  ];
+
   meta = with lib; {
     description = "CSV on the Web";
     homepage = "https://github.com/cldf/csvw";
diff --git a/nixpkgs/pkgs/development/python-modules/curtsies/default.nix b/nixpkgs/pkgs/development/python-modules/curtsies/default.nix
index dc32bcdf74c9..7b34884e26e2 100644
--- a/nixpkgs/pkgs/development/python-modules/curtsies/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/curtsies/default.nix
@@ -1,22 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, blessings, mock, nose, pyte, wcwidth, typing ? null}:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, blessings, mock, nose, pyte, cwcwidth, typing ? null}:
 
 buildPythonPackage rec {
   pname = "curtsies";
-  version = "0.3.0";
+  version = "0.3.5";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89c802ec051d01dec6fc983e9856a3706e4ea8265d2940b1f6d504a9e26ed3a9";
+    sha256 = "1g8dwafx4vx06isjkn28r3cwb0hw1bv67lgygaz34yk66lrzz1x5";
   };
 
-  patches = [
-    # Fix dependency on typing. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/bpython/curtsies/commit/217b4f83e954837f8adc4c549c1f2f9f2bb272a7.patch";
-      sha256 = "1d3zwx9c7i0drb4nvydalm9mr83jrvdm75ffgisri89h337hiffs";
-    })
-  ];
-
-  propagatedBuildInputs = [ blessings wcwidth ]
+  propagatedBuildInputs = [ blessings cwcwidth ]
     ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   checkInputs = [ mock pyte nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix b/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
index 1d060c41bb21..359ee96f60a9 100644
--- a/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
@@ -9,7 +9,7 @@
 , osqp
 , scipy
 , scs
-, useOpenmp ? true
+, useOpenmp ? (!stdenv.isDarwin)
   # Check inputs
 , pytestCheckHook
 }:
diff --git a/nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix b/nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix
new file mode 100644
index 000000000000..a17a8a936aa0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cwcwidth/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi, cython, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "cwcwidth";
+  version = "0.1.4";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1azrphpkcyggg38xvkfb9dpc4xmmm90p02kf8dkqd4d6j5w96aj8";
+  };
+
+  nativeBuildInputs = [ cython ];
+
+  checkInputs = [ pytestCheckHook ];
+  # Hack needed to make pytest + cython work
+  # https://github.com/NixOS/nixpkgs/pull/82410#issuecomment-827186298
+  preCheck = ''
+    export HOME=$(mktemp -d)
+    cp -r $TMP/$sourceRoot/tests $HOME
+    pushd $HOME
+  '';
+  postCheck = "popd";
+
+  pythonImportsCheck = [ "cwcwidth" ];
+
+  meta = with lib; {
+    description = "Python bindings for wc(s)width";
+    homepage = "https://github.com/sebastinas/cwcwidth";
+    changelog = "https://github.com/sebastinas/cwcwidth/blob/main/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix b/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix
index 580d698d8dab..1cc5ad19bda2 100644
--- a/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cxxfilt/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , gcc-unwrapped
@@ -12,9 +13,11 @@ buildPythonPackage rec {
     sha256 = "ef6810e76d16c95c11b96371e2d8eefd1d270ec03f9bcd07590e8dcc2c69e92b";
   };
 
-  postPatch = ''
+  postPatch = let
+    libstdcpp = "${lib.getLib gcc-unwrapped}/lib/libstdc++${stdenv.hostPlatform.extensions.sharedLibrary}";
+  in ''
     substituteInPlace cxxfilt/__init__.py \
-      --replace "find_any_library('stdc++', 'c++')" '"${lib.getLib gcc-unwrapped}/lib/libstdc++.so"'
+      --replace "find_any_library('stdc++', 'c++')" '"${libstdcpp}"'
   '';
 
   # no tests
diff --git a/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix b/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
index ca25e05bb1ed..9072a691c20a 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-glm/default.nix
@@ -7,8 +7,8 @@
 , multipledispatch
 , setuptools-scm
 , scipy
-, scikitlearn
-, pytest
+, scikit-learn
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -21,12 +21,8 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ setuptools-scm ];
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ cloudpickle dask numpy toolz multipledispatch scipy scikitlearn ];
-
-  checkPhase = ''
-    py.test dask_glm
-  '';
+  checkInputs = [ pytestCheckHook ];
+  propagatedBuildInputs = [ cloudpickle dask numpy toolz multipledispatch scipy scikit-learn ];
 
   meta = with lib; {
     homepage = "https://github.com/dask/dask-glm/";
diff --git a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
index a38350f0f6ac..e3ab607dcac0 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
@@ -2,41 +2,32 @@
 , buildPythonPackage
 , fetchPypi
 , dask
-, numpy, toolz # dask[array]
 , scipy
 , pims
-, pytest
-, pytest-flake8
 , scikitimage
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "0.5.0";
+  version = "0.6.0";
   pname = "dask-image";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bf7ea8dcd9d795505b498bd632394720c048f50761e23c574d9a6bacfb27cbb";
+    sha256 = "1zzxrvbm52xn7azkn74pjinlk0jkpdcyl3r5vxxy5lmjnmzlrrpy";
   };
 
-  nativeBuildInputs = [ pytest-flake8 ];
-  propagatedBuildInputs = [ dask numpy toolz scipy pims ];
-  checkInputs = [
-    pytest
-    scikitimage
-  ];
+  propagatedBuildInputs = [ dask scipy pims ];
 
-  # ignore errors from newer versions of flake8
   prePatch = ''
-    substituteInPlace setup.cfg \
-      --replace "docs/conf.py,versioneer.py" \
-        "docs/conf.py,versioneer.py,dask_image/ndfilters/_utils.py"
+    substituteInPlace setup.cfg --replace "--flake8" ""
   '';
 
-  # scikit.external is not exported
-  checkPhase = ''
-    pytest --ignore=tests/test_dask_image/
-  '';
+  checkInputs = [
+    pytestCheckHook
+    scikitimage
+  ];
+
   pythonImportsCheck = [ "dask_image" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
index 517056866bb4..ff1b145ee8a2 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
@@ -6,7 +6,7 @@
 , numpy, toolz # dask[array]
 , numba
 , pandas
-, scikitlearn
+, scikit-learn
 , scipy
 , dask-glm
 , six
@@ -26,6 +26,10 @@ buildPythonPackage rec {
     sha256 = "8fc4ac3ec1915e382fb8cae9ff1ec9b5ac1bee0b6f4c6975d6e6cb7191a4a815";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     dask
     dask-glm
@@ -35,11 +39,10 @@ buildPythonPackage rec {
     numpy
     packaging
     pandas
-    scikitlearn
+    scikit-learn
     scipy
     six
     toolz
-    setuptools-scm
   ];
 
   # has non-standard build from source, and pypi doesn't include tests
diff --git a/nixpkgs/pkgs/development/python-modules/dask/default.nix b/nixpkgs/pkgs/development/python-modules/dask/default.nix
index 13c03a1f7968..55ba3ad6ba7f 100644
--- a/nixpkgs/pkgs/development/python-modules/dask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , bokeh
 , buildPythonPackage
 , fetchpatch
@@ -72,16 +73,19 @@ buildPythonPackage rec {
       --replace "cmdclass=versioneer.get_cmdclass()," ""
   '';
 
-  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
+  pytestFlagsArray = [
+    "-n $NIX_BUILD_CORES"
+    "-m 'not network'"
+  ];
 
-  disabledTests = [
-    "test_annotation_pack_unpack"
-    "test_annotations_blockwise_unpack"
+  disabledTests = lib.optionals stdenv.isDarwin [
     # this test requires features of python3Packages.psutil that are
     # blocked in sandboxed-builds
     "test_auto_blocksize_csv"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   pythonImportsCheck = [ "dask.dataframe" "dask" "dask.array" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/databases/default.nix b/nixpkgs/pkgs/development/python-modules/databases/default.nix
index f5a7c52ef8e5..3a1da0697c0d 100644
--- a/nixpkgs/pkgs/development/python-modules/databases/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databases/default.nix
@@ -4,7 +4,8 @@
 , sqlalchemy
 , aiocontextvars
 , isPy27
-, pytest
+, pytestCheckHook
+, pymysql
 , asyncpg
 , aiomysql
 , aiosqlite
@@ -12,33 +13,37 @@
 
 buildPythonPackage rec {
   pname = "databases";
-  version = "0.2.6";
+  version = "0.4.3";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "0cdb4vln4zdmqbbcj7711b81b2l64jg1miihqcg8gpi35v404h2q";
+    sha256 = "0aq88k7d9036cy6qvlfv9p2dxd6p6fic3j0az43gn6k1ardhdsgf";
   };
 
   propagatedBuildInputs = [
-    sqlalchemy
     aiocontextvars
+    sqlalchemy
   ];
 
   checkInputs = [
-    pytest
-    asyncpg
     aiomysql
     aiosqlite
+    asyncpg
+    pymysql
+    pytestCheckHook
   ];
 
-  # big chunk to tests depend on existing posgresql and mysql databases
-  # some tests are better than no tests
-  checkPhase = ''
-    pytest --ignore=tests/test_integration.py --ignore=tests/test_databases.py
-  '';
+  disabledTestPaths = [
+    # ModuleNotFoundError: No module named 'aiopg'
+    "tests/test_connection_options.py"
+    # circular dependency on starlette
+    "tests/test_integration.py"
+    # TEST_DATABASE_URLS is not set.
+    "tests/test_databases.py"
+  ];
 
   meta = with lib; {
     description = "Async database support for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/datadog/default.nix b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
index ad3f66b5d658..fbe3316e0100 100644
--- a/nixpkgs/pkgs/development/python-modules/datadog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.40.1";
+  version = "0.41.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "438c1dde5462e68c5c792b7b4a1d87a0ddd970af3db31b3cf15980eed0c44311";
+    sha256 = "sha256-PeGkO4qNX2sZ0WLsG0gtxasmNsWc9l5gWJcCMEUQpok=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/datasette/default.nix b/nixpkgs/pkgs/development/python-modules/datasette/default.nix
index 1d919de6ee80..58920b406466 100644
--- a/nixpkgs/pkgs/development/python-modules/datasette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datasette/default.nix
@@ -5,6 +5,7 @@
 , asgi-csrf
 , click
 , click-default-group
+, itsdangerous
 , janus
 , jinja2
 , hupper
@@ -17,56 +18,62 @@
 , httpx
 # Check Inputs
 , pytestCheckHook
-, pytestrunner
+, pytest-runner
 , pytest-asyncio
+, pytest-timeout
 , aiohttp
 , beautifulsoup4
 , asgiref
 , setuptools
+, trustme
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.54.1";
+  version = "0.57.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "simonw";
-    repo = "datasette";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-Ixh56X9dI/FIJPXHXXGnFiYj3qeBmvW5L1FF7/0ofUQ=";
+    sha256 = "sha256-BHsf3GOganPhsDiZlRxvAsRZH/Sq+Jr+CZcc2ubce+8=";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
+  nativeBuildInputs = [ pytest-runner ];
 
   propagatedBuildInputs = [
     aiofiles
     asgi-csrf
+    asgiref
     click
     click-default-group
+    httpx
+    hupper
+    itsdangerous
     janus
     jinja2
-    hupper
     mergedeep
     pint
     pluggy
     python-baseconv
     pyyaml
-    uvicorn
     setuptools
-    httpx
-    asgiref
+    uvicorn
   ];
 
   checkInputs = [
-    pytestCheckHook
-    pytest-asyncio
     aiohttp
     beautifulsoup4
+    pytest-asyncio
+    pytest-timeout
+    pytestCheckHook
+    trustme
   ];
 
   postConfigure = ''
     substituteInPlace setup.py \
-      --replace "click~=7.1.1" "click" \
       --replace "click-default-group~=1.2.2" "click-default-group" \
       --replace "hupper~=1.9" "hupper" \
       --replace "pint~=0.9" "pint" \
@@ -75,12 +82,13 @@ buildPythonPackage rec {
       --replace "PyYAML~=5.3" "PyYAML"
   '';
 
-  # takes 30-180 mins to run entire test suite, not worth the cpu resources, slows down reviews
-  # with pytest-xdist, it still takes around 10mins with 32 cores
+  # takes 30-180 mins to run entire test suite, not worth the CPU resources, slows down reviews
+  # with pytest-xdist, it still takes around 10 mins with 32 cores
   # just run the csv tests, as this should give some indictation of correctness
   pytestFlagsArray = [
     "tests/test_csv.py"
   ];
+
   disabledTests = [
     "facet"
     "_invalid_database" # checks error message when connecting to invalid database
@@ -97,10 +105,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An instant JSON API for your SQLite databases";
-    homepage = "https://github.com/simonw/datasette";
+    description = "Multi-tool for exploring and publishing data";
+    homepage = "https://datasette.io/";
     license = licenses.asl20;
     maintainers = [ maintainers.costrouc ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/datatable/default.nix b/nixpkgs/pkgs/development/python-modules/datatable/default.nix
index c5271e473e3e..60eb0df1d09d 100644
--- a/nixpkgs/pkgs/development/python-modules/datatable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datatable/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   checkInputs = [ docutils pytestCheckHook ];
 
   LLVM = llvm;
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-isystem ${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-isystem ${lib.getDev libcxx}/include/c++/v1";
 
   pytestFlagsArray = let
     # ini file (not included in tarball) required to change python_files setting,
diff --git a/nixpkgs/pkgs/development/python-modules/dawg-python/default.nix b/nixpkgs/pkgs/development/python-modules/dawg-python/default.nix
new file mode 100644
index 000000000000..ba9c298a2e82
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dawg-python/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "dawg-python";
+  version = "0.7.2";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "DAWG-Python";
+    hash = "sha256-Sl4yhuYmHMoC8gXP1VFqerEBkPowxRwo00WAj1leNCE=";
+  };
+
+  pythonImportsCheck = [ "dawg_python" ];
+
+  meta = with lib; {
+    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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dbus/default.nix b/nixpkgs/pkgs/development/python-modules/dbus/default.nix
index a6e2e28c6f59..8c9eb476fe08 100644
--- a/nixpkgs/pkgs/development/python-modules/dbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbus/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonPackage, python, pkg-config, dbus, dbus-glib, isPyPy
+{ lib, stdenv, fetchPypi, buildPythonPackage, python, pkg-config, dbus, dbus-glib, isPyPy
 , ncurses, pygobject3, isPy3k }:
 
 buildPythonPackage rec {
@@ -19,6 +19,10 @@ buildPythonPackage rec {
 
   disabled = isPyPy;
 
+  preConfigure = if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '' else null;
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dbus dbus-glib ]
     # My guess why it's sometimes trying to -lncurses.
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/default.nix b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
index beb5ba9c46b7..059f2110fd53 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
@@ -17,13 +17,13 @@
 
 buildPythonPackage rec {
   pname = "debugpy";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "Microsoft";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dgjbbhy228w2zbfq5pf0hkai7742zw8mmybnzjdc9l6pw7360rq";
+    hash = "sha256-YGzc9mMIzPTmUgIXuZROLdYKjUm69x9SR+JtYRVpn24=";
   };
 
   patches = [
@@ -33,6 +33,7 @@ buildPythonPackage rec {
       inherit gdb;
     })
 
+    # Use nixpkgs version instead of versioneer
     (substituteAll {
       src = ./hardcode-version.patch;
       inherit version;
@@ -87,11 +88,13 @@ buildPythonPackage rec {
     "gevent"
   ];
 
+  pythonImportsCheck = [ "debugpy" ];
+
   meta = with lib; {
     description = "An implementation of the Debug Adapter Protocol for Python";
     homepage = "https://github.com/microsoft/debugpy";
     license = licenses.mit;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch b/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
index 751351e03cde..f74b53a831b3 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
@@ -1,8 +1,8 @@
 diff --git a/tests/debug/session.py b/tests/debug/session.py
-index 2b39106..6d45a10 100644
+index 101492f..4ee7cfb 100644
 --- a/tests/debug/session.py
 +++ b/tests/debug/session.py
-@@ -625,6 +625,7 @@ class Session(object):
+@@ -630,6 +630,7 @@ class Session(object):
          if "PYTHONPATH" in self.config.env:
              # If specified, launcher will use it in lieu of PYTHONPATH it inherited
              # from the adapter when spawning debuggee, so we need to adjust again.
diff --git a/nixpkgs/pkgs/development/python-modules/debut/default.nix b/nixpkgs/pkgs/development/python-modules/debut/default.nix
deleted file mode 100644
index 02eece2fc242..000000000000
--- a/nixpkgs/pkgs/development/python-modules/debut/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, chardet
-, attrs
-, pytestCheckHook
-}:
-buildPythonPackage rec {
-  pname = "debut";
-  version = "0.9.9";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a3a71e475295f4cf4292440c9c7303ebca0309d395536d2a7f86a5f4d7465dc1";
-  };
-
-  dontConfigure = true;
-
-  propagatedBuildInputs = [
-    chardet
-    attrs
-  ];
-
-  checkInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "debut"
-  ];
-
-  meta = with lib; {
-    description = "Python library to parse Debian deb822-style control and copyright files ";
-    homepage = "https://github.com/nexB/debut";
-    license = with licenses; [ asl20 bsd3 mit ];
-    maintainers = teams.determinatesystems.members;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/decopatch/default.nix b/nixpkgs/pkgs/development/python-modules/decopatch/default.nix
new file mode 100644
index 000000000000..7fa3c6465db4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/decopatch/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, makefun
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "decopatch";
+  version = "1.4.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0i6i811s2j1z0cl6y177dwsbfxib8dvb5c2jpgklvc2xy4ahhsy6";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ makefun ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "'pytest-runner', " ""
+  '';
+
+  # Tests would introduce multiple cirucular dependencies
+  # Affected: makefun, pytest-cases
+  doCheck = false;
+
+  pythonImportsCheck = [ "decopatch" ];
+
+  meta = with lib; {
+    description = "Python helper for decorators";
+    homepage = "https://github.com/smarie/python-decopatch";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix b/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
index 83140ff0bb00..e414d8633502 100644
--- a/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "5.3.0";
+  version = "5.5.0";
   format = "setuptools";
 
   # pypi source does not contain all fixtures required for tests
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "seperman";
     repo = "deepdiff";
     rev = version;
-    sha256 = "1izw2qpd93nj948zakamjn7q7dlmmr7sapg0c65hxvs0nmij8sl4";
+    sha256 = "sha256-PQijGub0sAW0aBYI+Ir89SraXaWx7OcQ+txZSqodJ6w=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix b/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
index c29737595af8..da4b72d2ff49 100644
--- a/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "deepmerge";
-  version = "0.2.1";
+  version = "0.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "082bvlk65pkf9qzkzzl8fq7s6zfz1b2v5pcb0ikwg1nx0xspggaz";
+    sha256 = "1zfl8rkw98vj7jdpb29ably50x46pq6pazhrkrczndf5jc97zzgn";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix b/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix
index c39ca96bfe17..6ac1bab0845e 100644
--- a/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/defusedxml/default.nix
@@ -1,14 +1,12 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
 , python
 }:
 
 buildPythonPackage rec {
   pname = "defusedxml";
   version = "0.7.1";
-  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/delorean/default.nix b/nixpkgs/pkgs/development/python-modules/delorean/default.nix
new file mode 100644
index 000000000000..3435b461d09b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/delorean/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, Babel
+, humanize
+, python-dateutil
+, tzlocal
+}:
+
+buildPythonPackage rec {
+  pname = "Delorean";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d31ay7yq2w7xz7m3ssk5phjbm64b2k8hmgcif22719k29p7hrzy";
+  };
+
+  propagatedBuildInputs = [ Babel humanize python-dateutil tzlocal ];
+
+  pythonImportsCheck = [ "delorean" ];
+
+  # test data not included
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Delorean: Time Travel Made Easy";
+    homepage = "https://github.com/myusuf3/delorean";
+    license = licenses.mit;
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/deltachat/default.nix b/nixpkgs/pkgs/development/python-modules/deltachat/default.nix
new file mode 100644
index 000000000000..ffa9b8d7d63a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/deltachat/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchpatch
+, setuptools-scm
+, libdeltachat
+, cffi
+, IMAPClient
+, pluggy
+, requests
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "deltachat";
+  inherit (libdeltachat) version src;
+  sourceRoot = "${src.name}/python";
+
+  disabled = isPy27;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  buildInputs = [
+    libdeltachat
+  ];
+
+  propagatedBuildInputs = [
+    cffi
+    IMAPClient
+    pluggy
+    requests
+    setuptools
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "deltachat"
+    "deltachat.account"
+    "deltachat.contact"
+    "deltachat.chat"
+    "deltachat.message"
+  ];
+
+  meta = with lib; {
+    description = "Python bindings for the Delta Chat Core library";
+    homepage = "https://github.com/deltachat/deltachat-core-rust/tree/master/python";
+    changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${version}/python/CHANGELOG";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dendropy/default.nix b/nixpkgs/pkgs/development/python-modules/dendropy/default.nix
index 05737ecf9a86..be1b705dc02b 100644
--- a/nixpkgs/pkgs/development/python-modules/dendropy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dendropy/default.nix
@@ -1,38 +1,40 @@
 { lib
-, pkgs
 , buildPythonPackage
 , fetchFromGitHub
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  pname   = "DendroPy";
-  version = "4.4.0";
+  pname = "dendropy";
+  version = "4.5.1";
 
-  # tests are incorrectly packaged in pypi version
   src = fetchFromGitHub {
     owner = "jeetsukumaran";
     repo = pname;
     rev = "v${version}";
-    sha256 = "097hfyv2kaf4x92i4rjx0paw2cncxap48qivv8zxng4z7nhid0x9";
+    sha256 = "sha256-FP0+fJkkFtSysPxoHXjyMgF8pPin7aRyzmHe9bH8LlM=";
   };
 
-  preCheck = ''
-    # Needed for unicode python tests
-    export LC_ALL="en_US.UTF-8"
-    cd tests  # to find the 'support' module
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytest pkgs.glibcLocales ];
+  disabledTests = [
+    # FileNotFoundError: [Errno 2] No such file or directory: 'paup'
+    "test_basic_split_count_with_incorrect_rootings_raises_error"
+    "test_basic_split_count_with_incorrect_weight_treatment_raises_error"
+    "test_basic_split_counting_under_different_rootings"
+    "test_group1"
+    # AssertionError: 6 != 5
+    "test_by_num_lineages"
+  ];
 
-  checkPhase = ''
-    pytest -k 'not test_dataio_nexml_reader_tree_list and not test_pscores_with'
-  '';
+  pythonImportsCheck = [ "dendropy" ];
 
-  meta = {
+  meta = with lib; {
+    description = "Python library for phylogenetic computing";
     homepage = "https://dendropy.org/";
-    description = "A Python library for phylogenetic computing";
-    maintainers = with lib.maintainers; [ unode ];
-    license = lib.licenses.bsd3;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ unode ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/denonavr/default.nix b/nixpkgs/pkgs/development/python-modules/denonavr/default.nix
index b02e1e498b9d..e4e36a196fe0 100644
--- a/nixpkgs/pkgs/development/python-modules/denonavr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/denonavr/default.nix
@@ -1,33 +1,51 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27, requests, netifaces
-, pytestCheckHook, testtools, requests-mock }:
+{ lib
+, asyncstdlib
+, attrs
+, buildPythonPackage
+, defusedxml
+, fetchFromGitHub
+, httpx
+, netifaces
+, pytest-asyncio
+, pytestCheckHook
+, pytest-httpx
+, pytest-timeout
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "denonavr";
-  version = "0.9.10";
-  disabled = isPy27;
+  version = "0.10.8";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "scarface-4711";
-    repo = "denonavr";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-3ap8F3ayBTpaR98md+gT0+hkIWlFBNxStTGWT5AL//A=";
+    sha256 = "02q76mbmg2rkm4shy2apwbw9pvicy9j5v4zgpjwzxif9yf7m8aqk";
   };
 
   propagatedBuildInputs = [
-    requests
+    asyncstdlib
+    attrs
+    defusedxml
+    httpx
     netifaces
   ];
 
   checkInputs = [
+    pytest-asyncio
     pytestCheckHook
-    testtools
-    requests-mock
+    pytest-httpx
+    pytest-timeout
   ];
 
+  pythonImportsCheck = [ "denonavr" ];
+
   meta = with lib; {
+    description = "Automation Library for Denon AVR receivers";
     homepage = "https://github.com/scarface-4711/denonavr";
-    description = "Automation Library for Denon AVR receivers.";
-    license = licenses.mit;
+    license = with licenses; [ mit ];
     maintainers = with maintainers; [ colemickens ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix b/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
index 9c977ecc5f0c..8958566070ed 100644
--- a/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
@@ -1,27 +1,53 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, six, unittest2, pyyaml, flask }:
-
-let
-  testPath =
-    if isPy3k
-    then "test_*_py3.py"
-    else "test_*_py2_py3.py";
-in
+{ lib
+, aiohttp
+, buildPythonPackage
+, fastapi
+, fetchFromGitHub
+, flask
+, httpx
+, mypy-boto3-s3
+, numpy
+, scipy
+, pydantic
+, pytestCheckHook
+, pyyaml
+, six
+}:
 
 buildPythonPackage rec {
   pname = "dependency-injector";
-  version = "4.31.1";
+  version = "4.32.2";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b6b28b9571f44d575367c6005ba8aaa9fd2b70310e1c15410925d6f1ee2769ad";
+  src = fetchFromGitHub {
+    owner = "ets-labs";
+    repo = "python-dependency-injector";
+    rev = version;
+    sha256 = "1gkkka0hl2hl4axf3gfm58mzv92bg0frr5jikw8g32hd4q4aagcg";
   };
 
-  propagatedBuildInputs = [ six ];
-  checkInputs = [ unittest2 pyyaml flask ];
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    aiohttp
+    fastapi
+    flask
+    httpx
+    mypy-boto3-s3
+    numpy
+    pydantic
+    scipy
+    pytestCheckHook
+    pyyaml
+  ];
+
+  disabledTestPaths = [
+    # There is no unique identifier to disable the one failing test
+    "tests/unit/ext/test_aiohttp_py35.py"
+  ];
 
-  checkPhase = ''
-    unit2 discover -s tests/unit -p "${testPath}"
-  '';
+  pythonImportsCheck = [ "dependency_injector" ];
 
   meta = with lib; {
     description = "Dependency injection microframework for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/dftfit/default.nix b/nixpkgs/pkgs/development/python-modules/dftfit/default.nix
index 73791bdaa9a6..778b8c3d9843 100644
--- a/nixpkgs/pkgs/development/python-modules/dftfit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dftfit/default.nix
@@ -8,7 +8,7 @@
 , pandas
 , scipy
 , numpy
-, scikitlearn
+, scikit-learn
 , lammps-cython
 , pymatgen-lammps
 , pytestrunner
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     pandas
     scipy
     numpy
-    scikitlearn
+    scikit-learn
     lammps-cython
     pymatgen-lammps
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/diofant/default.nix b/nixpkgs/pkgs/development/python-modules/diofant/default.nix
index c473f2fb4200..f99e17137de9 100644
--- a/nixpkgs/pkgs/development/python-modules/diofant/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diofant/default.nix
@@ -3,7 +3,7 @@
 , buildPythonPackage
 , fetchPypi
 , pytestrunner
-, setuptools_scm
+, setuptools-scm
 , isort
 , mpmath
 , strategies
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     isort
     pytestrunner
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
index d4f742d97f5b..3fb5e7ae55e4 100644
--- a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
@@ -5,25 +5,23 @@
 , libopus
 , pynacl
 , pythonOlder
-, websockets
 , withVoice ? true
 }:
 
 buildPythonPackage rec {
   pname = "discord.py";
-  version = "1.7.1";
+  version = "1.7.2";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Rapptz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dpASIqe6rJEyiWJyPbQhq9M54lX1ilfp4UuGnbJcFLo=";
+    sha256 = "sha256-NY1/RKp8w9gAqGYXnCNhNZqR/inGMvUvxjJ1MMs62B8=";
   };
 
   propagatedBuildInputs = [
     aiohttp
-    websockets
   ] ++ lib.optionalString withVoice [
     libopus
     pynacl
diff --git a/nixpkgs/pkgs/development/python-modules/distro/default.nix b/nixpkgs/pkgs/development/python-modules/distro/default.nix
index 16d26e741aa9..885538de65ce 100644
--- a/nixpkgs/pkgs/development/python-modules/distro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distro/default.nix
@@ -18,6 +18,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/nir0s/distro";
     description = "Linux Distribution - a Linux OS platform information API.";
     license = licenses.asl20;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix b/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
index 6f1d81c9287a..9b5c8e1d00b5 100644
--- a/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
@@ -42,6 +42,6 @@ buildPythonPackage rec {
     description = "Django email backends and webhooks for Mailgun";
     homepage = "https://github.com/anymail/django-anymail";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ivegotasthma ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix b/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
index b6b736e92383..de01f4f70417 100644
--- a/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
@@ -9,7 +9,7 @@
 , django-cache-url
 , six
 , django
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     sha256 = "9e3bcea1355ac50a4c9f854f751d214cb17e5f8adf18405a4488d0a1e8945915";
   };
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six ];
   checkInputs = [ django-discover-runner mock dj-database-url dj-email-url dj-search-url django-cache-url ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix b/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix
index 1bc9153d0063..ace1dc4f2de5 100644
--- a/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix
@@ -30,6 +30,6 @@ buildPythonPackage rec {
     description = "Django app for handling server Cross-Origin Resource Sharing (CORS) headers";
     homepage = "https://github.com/OttoYiu/django-cors-headers";
     license = licenses.mit;
-    maintainers = [ maintainers.ivegotasthma ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/django-haystack/default.nix b/nixpkgs/pkgs/development/python-modules/django-haystack/default.nix
index 7342aa3300c4..2c678e672a3e 100644
--- a/nixpkgs/pkgs/development/python-modules/django-haystack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-haystack/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools, setuptools_scm, django, dateutil, whoosh, pysolr
+, setuptools, setuptools-scm, django, dateutil, whoosh, pysolr
 , coverage, mock, nose, geopy, requests }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pysolr whoosh dateutil geopy coverage nose mock coverage requests ];
   propagatedBuildInputs = [ django setuptools ];
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   postPatch = ''
     sed -i 's/geopy==/geopy>=/' setup.py
diff --git a/nixpkgs/pkgs/development/python-modules/django-pipeline/default.nix b/nixpkgs/pkgs/development/python-modules/django-pipeline/default.nix
deleted file mode 100644
index 92aefe4a408b..000000000000
--- a/nixpkgs/pkgs/development/python-modules/django-pipeline/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
-, django, futures ? null, mock ? null, jinja2, jsmin, slimit }:
-
-buildPythonPackage rec {
-  pname = "django-pipeline";
-  version = "1.6.14";
-
-  # no tests on PyPI
-  src = fetchFromGitHub {
-    owner = "jazzband";
-    repo = pname;
-    rev = version;
-    sha256 = "1xf732bd17mgha75jfhlnms46ib2pffhpfa0ca7bmng9jhbvsl9j";
-  };
-
-  postPatch = ''
-    substituteInPlace tests/tests/test_compiler.py \
-      --replace "/usr/bin/env" ""
-  '';
-
-  propagatedBuildInputs = [ django ] ++ lib.optional (!isPy3k) futures;
-
-  checkInputs = [ jinja2 jsmin slimit ] ++ lib.optional (!isPy3k) mock;
-
-  checkPhase = ''
-    export PYTHONPATH=.:$PYTHONPATH
-    export DJANGO_SETTINGS_MODULE=tests.settings
-    ${django}/bin/django-admin.py test tests
-  '';
-
-  meta = with lib; {
-    description = "Pipeline is an asset packaging library for Django";
-    homepage = "https://github.com/cyberdelia/django-pipeline";
-    license = licenses.mit;
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/django-rest-auth/default.nix b/nixpkgs/pkgs/development/python-modules/django-rest-auth/default.nix
index 9e11c2b6a03e..e04581b3574b 100644
--- a/nixpkgs/pkgs/development/python-modules/django-rest-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-rest-auth/default.nix
@@ -24,6 +24,6 @@ buildPythonPackage rec {
     description = "Django app that makes registration and authentication easy";
     homepage = "https://github.com/Tivix/django-rest-auth";
     license = licenses.mit;
-    maintainers = [ maintainers.ivegotasthma ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/django/2.nix b/nixpkgs/pkgs/development/python-modules/django/2.nix
index 991c353df179..e0d3cd12f8fd 100644
--- a/nixpkgs/pkgs/development/python-modules/django/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/2.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "2.2.20";
+  version = "2.2.22";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0r3a6gbhwngxl172yy6n0sq5knibl2vxc0wbk1g8licfbzfgjs95";
+    sha256 = "db2214db1c99017cbd971e58824e6f424375154fe358afc30e976f5b99fc6060";
   };
 
   patches = lib.optional withGdal
diff --git a/nixpkgs/pkgs/development/python-modules/django/3.nix b/nixpkgs/pkgs/development/python-modules/django/3.nix
index 62ca390eac5b..321582946b3b 100644
--- a/nixpkgs/pkgs/development/python-modules/django/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.2";
+  version = "3.2.2";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "179qdxa438fnycnnf1j5z6359h1kbp2q7djf01v5jrr26xjgkw11";
+    sha256 = "0a1d195ad65c52bf275b8277b3d49680bd1137a5f55039a806f25f6b9752ce3d";
   };
 
   patches = lib.optional withGdal
diff --git a/nixpkgs/pkgs/development/python-modules/djangorestframework-jwt/default.nix b/nixpkgs/pkgs/development/python-modules/djangorestframework-jwt/default.nix
deleted file mode 100644
index 643218242d79..000000000000
--- a/nixpkgs/pkgs/development/python-modules/djangorestframework-jwt/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib
-, fetchPypi
-, django
-, pyjwt
-, djangorestframework
-, buildPythonPackage
-}:
-
-buildPythonPackage rec {
-  pname = "djangorestframework-jwt";
-  version = "1.11.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "19rng6v1sw14mbjp5cplnrgxjnhlj8faalfw02iihi9s5w1k7zjy";
-  };
-
-  propagatedBuildInputs = [ pyjwt django djangorestframework ];
-
-  # ./runtests.py fails because the project must be tested against a django
-  # installation, there are missing database tables for User, that don't exist.
-  doCheck = false;
-
-  meta = with lib; {
-    description = "JSON Web Token Authentication support for Django REST Framework";
-    homepage = "https://github.com/GetBlimp/django-rest-framework-jwt";
-    license = licenses.mit;
-    maintainers = [ maintainers.ivegotasthma ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/dnspython/1.nix b/nixpkgs/pkgs/development/python-modules/dnspython/1.nix
index 30f280a5029e..5ff02c043380 100644
--- a/nixpkgs/pkgs/development/python-modules/dnspython/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/dnspython/1.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib, pythonOlder }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "dnspython";
@@ -12,11 +16,11 @@ buildPythonPackage rec {
 
   # needs networking for some tests
   doCheck = false;
+  pythonImportsCheck = [ "dns" ];
 
-  meta = {
-    description = "A DNS toolkit for Python 3.x";
+  meta = with lib; {
+    description = "A DNS toolkit for Python";
     homepage = "http://www.dnspython.org";
-    # BSD-like, check https://www.dnspython.org/LICENSE for details
-    license = lib.licenses.free;
+    license = with licenses; [ isc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dnspython/default.nix b/nixpkgs/pkgs/development/python-modules/dnspython/default.nix
index afb85fb61f57..56e69aac0443 100644
--- a/nixpkgs/pkgs/development/python-modules/dnspython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dnspython/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib, pythonOlder }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "dnspython";
@@ -13,11 +17,11 @@ buildPythonPackage rec {
 
   # needs networking for some tests
   doCheck = false;
+  pythonImportsCheck = [ "dns" ];
 
-  meta = {
-    description = "A DNS toolkit for Python 3.x";
+  meta = with lib; {
+    description = "A DNS toolkit for Python";
     homepage = "http://www.dnspython.org";
-    # BSD-like, check https://www.dnspython.org/LICENSE for details
-    license = lib.licenses.free;
+    license = with licenses; [ isc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dogtail/default.nix b/nixpkgs/pkgs/development/python-modules/dogtail/default.nix
index 4981440c7ccd..808c2916ddd9 100644
--- a/nixpkgs/pkgs/development/python-modules/dogtail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dogtail/default.nix
@@ -10,7 +10,7 @@
 , gsettings-desktop-schemas
 , fetchurl
 , dbus
-, xvfb_run
+, xvfb-run
 , wrapGAppsHook
 # , fetchPypi
 }:
@@ -33,7 +33,7 @@ buildPythonPackage {
     ./nix-support.patch
   ];
 
-  nativeBuildInputs = [ gobject-introspection dbus xvfb_run wrapGAppsHook ]; # for setup hooks
+  nativeBuildInputs = [ gobject-introspection dbus xvfb-run wrapGAppsHook ]; # for setup hooks
   propagatedBuildInputs = [ at-spi2-core gtk3 pygobject3 pyatspi pycairo ];
   strictDeps = false; # issue 56943
 
diff --git a/nixpkgs/pkgs/development/python-modules/dotmap/default.nix b/nixpkgs/pkgs/development/python-modules/dotmap/default.nix
new file mode 100644
index 000000000000..cb5f032a6f26
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dotmap/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "dotmap";
+  version = "1.3.23";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hy88kzzb7zhxfr7iyvl6rhmvz02538pbna7zypaard4a88bbbka";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "dotmap/test.py" ];
+
+  pythonImportsCheck = [ "dotmap" ];
+
+  meta = with lib; {
+    description = "Python for dot-access dictionaries";
+    homepage = "https://github.com/drgrib/dotmap";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix b/nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix
index 22d469b96693..a2af0920da9e 100644
--- a/nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dotty-dict/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "sha256-6wA1o2KezYQ5emjx9C8elKvRw0V3oZzT6srTMe58uvA=";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/drf-jwt/default.nix b/nixpkgs/pkgs/development/python-modules/drf-jwt/default.nix
new file mode 100644
index 000000000000..2cf125c8df35
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/drf-jwt/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyjwt
+, djangorestframework
+}:
+
+buildPythonPackage rec {
+  pname = "drf-jwt";
+  version = "1.19.1";
+
+  src = fetchFromGitHub {
+    owner = "Styria-Digital";
+    repo = "django-rest-framework-jwt";
+    rev = version;
+    sha256 = "sha256-++8rFXVsA5WMTt+aC4di3Rpa0BAW285/qM087i9uQ0g=";
+  };
+
+  propagatedBuildInputs = [
+    pyjwt
+    djangorestframework
+  ];
+
+  # requires setting up a django instance
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "rest_framework_jwt"
+    "rest_framework_jwt.blacklist"
+    # require setting DJANGO_SETTINGS_MODULE
+    # "rest_framework_jwt.authentication"
+    # "rest_framework_jwt.blacklist.views"
+    # "rest_framework_jwt.settings"
+    # "rest_framework_jwt.utils"
+    # "rest_framework_jwt.views"
+  ];
+
+  meta = with lib; {
+    description = "JSON Web Token based authentication for Django REST framework";
+    homepage = "https://github.com/Styria-Digital/django-rest-framework-jwt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/drf-nested-routers/default.nix b/nixpkgs/pkgs/development/python-modules/drf-nested-routers/default.nix
index d265838526da..db0212e45697 100644
--- a/nixpkgs/pkgs/development/python-modules/drf-nested-routers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/drf-nested-routers/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "drf-nested-routers";
-  version = "0.92.5";
+  version = "0.93.3";
 
   src = fetchFromGitHub {
     owner = "alanjds";
     repo = "drf-nested-routers";
     rev = "v${version}";
-    sha256 = "1l1jza8xz6xcm3gwxh1k6pc8fs95cq3v751gxj497y1a83d26j8i";
+    sha256 = "1gmw6gwiqzfysx8qn7aan7xgkizxy64db94z30pm3bvn6jxv08si";
   };
 
   propagatedBuildInputs = [ django djangorestframework setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
index ab1d551fea35..45842fb809cc 100644
--- a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , inflection
 , ruamel_yaml
-, setuptools_scm
+, setuptools-scm
 , six
 , coreapi
 , djangorestframework
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Generation of Swagger/OpenAPI schemas for Django REST Framework";
     homepage = "https://github.com/axnsan12/drf-yasg";
-    maintainers = with maintainers; [ ivegotasthma ];
+    maintainers = with maintainers; [ ];
     license = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
index 56fb450b3e5d..4a4dd279a52e 100644
--- a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
@@ -4,7 +4,7 @@
 , numpy
 , pandas
 , pybind11
-, setuptools_scm
+, setuptools-scm
 , pytestrunner
 , pytestCheckHook
 }:
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     pybind11
-    setuptools_scm
+    setuptools-scm
     pytestrunner
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
index 9c7f62edf11a..a9af41c499d7 100644
--- a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
@@ -8,25 +8,38 @@
 , geventhttpclient
 , git
 , glibcLocales
+, gpgme
 , mock
+, pkgs
 , urllib3
 }:
 
 buildPythonPackage rec {
-  version = "0.20.21";
+  version = "0.20.23";
   pname = "dulwich";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-rHZMmpuA+mGv40BNUnDFBgqlf38IexGpU5XTt287cf0=";
+    sha256 = "sha256-QC5WtcB/BAR50RiOXC9AbiwAaqOUMIAVXUxtBeX8qGU=";
   };
 
   LC_ALL = "en_US.UTF-8";
 
-  propagatedBuildInputs = [ urllib3 certifi ];
-
-  # Only test dependencies
-  checkInputs = [ git glibcLocales gevent geventhttpclient mock fastimport ];
+  propagatedBuildInputs = [
+    certifi
+    urllib3
+  ];
+
+  checkInputs = [
+    fastimport
+    gevent
+    geventhttpclient
+    git
+    glibcLocales
+    gpgme
+    pkgs.gnupg
+    mock
+  ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix b/nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix
index 6699050035d0..1a68e7474af0 100644
--- a/nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dwdwfsapi/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "dwdwfsapi";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PX1b1msaZH8HKVBo3GU7TOr8Lo7INLjjJBkDHHs6mzk=";
+    sha256 = "sha256-JOIg6rLrU8v39z1I6smIPEeiUPdSdJcD2avUsTQq+bU=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
index c98937804a31..3bb9269d460b 100644
--- a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27 }:
 
 buildPythonPackage rec {
-  version = "2.2.1";
+  version = "2.2.2";
   pname = "elementpath";
   disabled = isPy27; # uses incompatible class syntax
 
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "v${version}";
-    sha256 = "15yjl18n81zddd27789mcy12gnja3cqycjdykybwgd9i0ysj96gl";
+    sha256 = "sha256-n4zIn2WmFHaVaah2J0mz7Q6G4Ptb8Ms0dwQYbh0Ofcs=";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
diff --git a/nixpkgs/pkgs/development/python-modules/elevate/default.nix b/nixpkgs/pkgs/development/python-modules/elevate/default.nix
new file mode 100644
index 000000000000..cfb1dbf068dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/elevate/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchPypi, buildPythonPackage, fetchpatch, setuptools-scm }:
+
+buildPythonPackage rec {
+  pname = "elevate";
+  version = "0.1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "53ad19fa1de301fb1de3f8768fb3a5894215716fd96a475690c4d0ff3b1de209";
+  };
+
+  patches = [
+    (fetchpatch {
+    # This is for not calling shell wrappers through Python, which fails.
+    url = "https://github.com/rkitover/elevate/commit/148b2bf698203ea39c9fe5d635ecd03cd94051af.patch";
+    sha256 = "1ky3z1jxl1g28wbwbx8qq8jgx8sa8pr8s3fdcpdhdx1blw28cv61";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  # No tests included
+  doCheck = false;
+
+  pythonImportsCheck = [ "elevate" ];
+
+  meta = with lib; {
+    description = "Python module for re-launching the current process as super-user";
+    homepage = "https://github.com/barneygale/elevate";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rkitover ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/elmax/default.nix b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
index 7ec3b8d1c112..775050acb0c9 100644
--- a/nixpkgs/pkgs/development/python-modules/elmax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
@@ -4,12 +4,15 @@
 , httpx
 , poetry-core
 , pythonOlder
+, pytest-asyncio
+, pytest-httpx
+, pytestCheckHook
 , yarl
 }:
 
 buildPythonPackage rec {
   pname = "elmax";
-  version = "0.1.1";
+  version = "0.1.2";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -17,7 +20,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-elmax";
     rev = version;
-    sha256 = "sha256-vDISJ/CVOjpM+GPF2TCm3/AMFTWTM0b/+ZPCpAEvNvY=";
+    sha256 = "sha256-Aq/OHxOmtUUmBNlFPu892C8AkTX+Ee0oca7D79InPXQ=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -27,8 +30,12 @@ buildPythonPackage rec {
     yarl
   ];
 
-  # Project has no tests
-  doCheck = false;
+  checkInputs = [
+    pytest-asyncio
+    pytest-httpx
+    pytestCheckHook
+  ];
+
   pythonImportsCheck = [ "elmax" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/enaml/default.nix b/nixpkgs/pkgs/development/python-modules/enaml/default.nix
index 1102443884f7..8896c5c706a6 100644
--- a/nixpkgs/pkgs/development/python-modules/enaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/enaml/default.nix
@@ -5,7 +5,7 @@
 , ply
 , kiwisolver
 , qtpy
-, sip
+, sip_4
 , cppy
 , bytecode
 }:
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     ply
     kiwisolver
     qtpy
-    sip
+    sip_4
     cppy
     bytecode
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/envoy-reader/default.nix b/nixpkgs/pkgs/development/python-modules/envoy-reader/default.nix
new file mode 100644
index 000000000000..d72db523a21c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/envoy-reader/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pytest-asyncio
+, pytest-raises
+, pytest-runner
+, pytestCheckHook
+, respx
+}:
+
+buildPythonPackage rec {
+  pname = "envoy-reader";
+  version = "0.19.0";
+
+  src = fetchFromGitHub {
+    owner = "jesserizzo";
+    repo = "envoy_reader";
+    rev = version;
+    sha256 = "0jyrgm7dc6k66c94gadc69a6xsv2b48wn3b3rbpwgbssi5s7iiz6";
+  };
+
+  nativeBuildInputs = [
+    pytest-runner
+  ];
+
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  checkInputs = [
+    pytest-raises
+    pytest-asyncio
+    pytestCheckHook
+    respx
+  ];
+
+  pythonImportsCheck = [ "envoy_reader" ];
+
+  meta = with lib; {
+    description = "Python module to read from Enphase Envoy units";
+    homepage = "https://github.com/jesserizzo/envoy_reader";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/eve/default.nix b/nixpkgs/pkgs/development/python-modules/eve/default.nix
index 32f531e4ff59..89db1ccad28d 100644
--- a/nixpkgs/pkgs/development/python-modules/eve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eve/default.nix
@@ -27,6 +27,11 @@ buildPythonPackage rec {
     setuptools
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "events>=0.3,<0.4" "events>=0.3,<0.5"
+  '';
+
   pythonImportsCheck = [ "eve" ];
 
   # tests call a running mongodb instance
diff --git a/nixpkgs/pkgs/development/python-modules/evohome-async/default.nix b/nixpkgs/pkgs/development/python-modules/evohome-async/default.nix
index 0f38faf57340..908d68dd27e9 100644
--- a/nixpkgs/pkgs/development/python-modules/evohome-async/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/evohome-async/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "evohome-async";
-  version = "0.3.8";
+  version = "0.3.15";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "zxdavb";
     repo = pname;
     rev = version;
-    sha256 = "04xy72k79cnb8pc19v5jzkc0djazfm6pbm10ysphx06ndwvxr9mn";
+    sha256 = "sha256-/dZRlcTcea26FEpw/XDItKh4ncr/eEFQcdfIE2KIMo8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix b/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
index 0cccedd54a91..bf9ae2284f7d 100644
--- a/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
@@ -3,8 +3,8 @@
   lxml, tzlocal, python-dateutil, pygments, requests-kerberos,
   defusedxml, cached-property, isodate, requests_ntlm, dnspython,
   psutil, requests-mock, pyyaml,
-  oauthlib, requests_oauthlib,
-  flake8,
+  oauthlib, requests_oauthlib, tzdata,
+  flake8, backports-zoneinfo
 }:
 
 buildPythonPackage rec {
@@ -24,9 +24,11 @@ buildPythonPackage rec {
     flake8
   ];
   propagatedBuildInputs = [
-    lxml tzlocal python-dateutil pygments requests-kerberos
+    lxml tzlocal tzdata python-dateutil pygments requests-kerberos
     defusedxml cached-property isodate requests_ntlm dnspython
     oauthlib requests_oauthlib
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    backports-zoneinfo
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/execnet/default.nix b/nixpkgs/pkgs/development/python-modules/execnet/default.nix
index b66c8a28128c..57a4af2fc0c6 100644
--- a/nixpkgs/pkgs/development/python-modules/execnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/execnet/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     description = "Distributed Python deployment and communication";
     license = licenses.mit;
     homepage = "https://execnet.readthedocs.io/";
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/explorerscript/default.nix b/nixpkgs/pkgs/development/python-modules/explorerscript/default.nix
new file mode 100644
index 000000000000..b0f1a16fe421
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/explorerscript/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchFromGitHub, antlr4-python3-runtime, pygments, python-igraph }:
+
+buildPythonPackage rec {
+  pname = "explorerscript";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "1vzyliiyrxx8l9sfbqcyr4xn5swd7znkxy69kn0vb5rban8hm9c1";
+  };
+
+  propagatedBuildInputs = [ antlr4-python3-runtime python-igraph ];
+  checkInputs = [ pygments ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/explorerscript";
+    description = "A programming language + compiler/decompiler for creating scripts for Pokémon Mystery Dungeon Explorers of Sky";
+    license = licenses.mit;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
index dadfc41c68bc..0f1c7ec6bdc3 100644
--- a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
@@ -17,19 +17,19 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.63.0";
+  version = "0.65.0";
   format = "flit";
 
   src = fetchFromGitHub {
     owner = "tiangolo";
     repo = "fastapi";
     rev = version;
-    sha256 = "0l3imrcs42pqf9d6k8c1q15k5sqcnapl5zk71xl52mrxhz49lgpi";
+    sha256 = "sha256-DPfijCGORF3ThZblqaYTKN0H8+wlhtdIS8lfKfJl/bY=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "starlette ==0.13.6" "starlette"
+      --replace "starlette ==" "starlette >="
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/fastpair/default.nix b/nixpkgs/pkgs/development/python-modules/fastpair/default.nix
index 9a3f8c53b1d3..eaf1a78520a2 100644
--- a/nixpkgs/pkgs/development/python-modules/fastpair/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastpair/default.nix
@@ -1,35 +1,28 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestrunner, pytest, scipy }:
+{ lib, buildPythonPackage, fetchFromGitHub, pytestrunner, pytest, scipy, pytestCheckHook }:
 
 buildPythonPackage {
   pname = "fastpair";
-  version = "2016-07-05";
+  version = "2021-05-19";
 
   src = fetchFromGitHub {
     owner = "carsonfarmer";
     repo = "fastpair";
-    rev = "92364962f6b695661f35a117bf11f96584128a8d";
-    sha256 = "1pv9sxycxdk567s5gs947rhlqngrb9nn9yh4dhdvg1ix1i8dca71";
+    rev = "d3170fd7e4d6e95312e7e1cb02e84077a3f06379";
+    sha256 = "1l8zgr8awg27lhlkpa2dsvghrb7b12jl1bkgpzg5q7pg8nizl9mx";
   };
 
   nativeBuildInputs = [ pytestrunner ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest pytestCheckHook ];
 
   propagatedBuildInputs = [
     scipy
   ];
 
-  # Does not support pytest 4 https://github.com/carsonfarmer/fastpair/issues/14
-  doCheck = false;
-
-  checkPhase = ''
-    pytest fastpair
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/carsonfarmer/fastpair";
     description = "Data-structure for the dynamic closest-pair problem";
     license = licenses.mit;
-    maintainers = with maintainers; [ cmcdragonkai ];
+    maintainers = with maintainers; [ cmcdragonkai rakesh4g ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix b/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
new file mode 100644
index 000000000000..5d2641970721
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, colorama
+, tqdm
+, pytestCheckHook
+, ffmpeg
+}:
+
+buildPythonPackage rec {
+  pname = "ffmpeg-progress-yield";
+  version = "0.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e944093e2c1b213da8fa4f0c276c1bad44e0b8ba8be7e4fd001f5132d16baef5";
+  };
+
+  propagatedBuildInputs = [ colorama tqdm ];
+
+  checkInputs = [ pytestCheckHook ffmpeg ];
+
+  pytestFlagsArray = [ "test/test.py" ];
+
+  pythonImportsCheck = [ "ffmpeg_progress_yield" ];
+
+  meta = with lib; {
+    description = "Run an ffmpeg command with progress";
+    homepage = "https://github.com/slhck/ffmpeg-progress-yield";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ffmpeg-python/default.nix b/nixpkgs/pkgs/development/python-modules/ffmpeg-python/default.nix
index 51b0060cb2d6..f845ca6a5d36 100644
--- a/nixpkgs/pkgs/development/python-modules/ffmpeg-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ffmpeg-python/default.nix
@@ -2,9 +2,9 @@
 , buildPythonPackage
 , fetchFromGitHub
 , substituteAll
-, ffmpeg_3
+, pytestCheckHook
+, ffmpeg
 , future
-, pytest
 , pytestrunner
 , pytest-mock
 }:
@@ -21,23 +21,20 @@ buildPythonPackage rec {
   };
 
   patches = [
-    (
-      substituteAll {
-        src = ./ffmpeg-location.patch;
-        ffmpeg = ffmpeg_3;
-      }
-    )
+    (substituteAll {
+      src = ./ffmpeg-location.patch;
+      inherit ffmpeg;
+    })
   ];
 
   buildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ future ];
-  checkInputs = [ pytest pytest-mock ];
+  checkInputs = [ pytestCheckHook pytest-mock ];
 
   meta = with lib; {
     description = "Python bindings for FFmpeg - with complex filtering support";
     homepage = "https://github.com/kkroening/ffmpeg-python";
     license = licenses.asl20;
     maintainers = [ maintainers.AluisioASG ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/fiona/default.nix b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
index 42f1a410624c..7318d1dc5113 100644
--- a/nixpkgs/pkgs/development/python-modules/fiona/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
@@ -1,27 +1,27 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, isPy3k, pythonOlder
 , attrs, click, cligj, click-plugins, six, munch, enum34
-, pytest, boto3, mock, giflib, pytz
-, gdal_2 # can't bump to 3 yet, https://github.com/Toblerity/Fiona/issues/745
+, pytestCheckHook, boto3, mock, giflib, pytz
+, gdal
 , certifi
 }:
 
 buildPythonPackage rec {
   pname = "Fiona";
-  version = "1.8.18";
+  version = "1.8.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b732ece0ff8886a29c439723a3e1fc382718804bb057519d537a81308854967a";
+    sha256 = "b9059e0b29c2e9e6b817e53f941e77e1aca7075f986005d38db307067b60458f";
   };
 
   CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11";
 
   nativeBuildInputs = [
-    gdal_2 # for gdal-config
+    gdal # for gdal-config
   ];
 
   buildInputs = [
-    gdal_2
+    gdal
   ] ++ lib.optionals stdenv.cc.isClang [ giflib ];
 
   propagatedBuildInputs = [
@@ -36,16 +36,19 @@ buildPythonPackage rec {
   ] ++ lib.optional (!isPy3k) enum34;
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     boto3
   ] ++ lib.optional (pythonOlder "3.4") mock;
 
-  checkPhase = ''
+  preCheck = ''
     rm -r fiona # prevent importing local fiona
-    # Some tests access network, others test packaging
-    pytest -k "not (http or https or wheel)"
   '';
 
+  disabledTests = [
+    # Some tests access network, others test packaging
+    "http" "https" "wheel"
+  ];
+
   meta = with lib; {
     description = "OGR's neat, nimble, no-nonsense API for Python";
     homepage = "https://fiona.readthedocs.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/flametree/default.nix b/nixpkgs/pkgs/development/python-modules/flametree/default.nix
index d4cba69afcb0..b4311eeb7cd6 100644
--- a/nixpkgs/pkgs/development/python-modules/flametree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flametree/default.nix
@@ -1,25 +1,45 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, fontconfig
+, matplotlib
+, pandas
+, pytestCheckHook
+, weasyprint
 }:
 
 buildPythonPackage rec {
   pname = "flametree";
   version = "0.1.11";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "c8eb81dea8c7f8261a2aa03d2bac98b1d21ebceec9c67efaac423f7c1b4fe061";
+  src = fetchFromGitHub {
+    owner = "Edinburgh-Genome-Foundry";
+    repo = "Flametree";
+    rev = "v${version}";
+    sha256 = "1ynrk1ivl1vjiga0ayl8k89vs5il7i0pf9jz2ycn771c47szwk4x";
   };
 
-  # no tests in tarball
-  doCheck = false;
+  checkInputs = [
+    matplotlib
+    pandas
+    pytestCheckHook
+    weasyprint
+  ];
+
+  preCheck = ''
+    export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
+  '';
+
+  disabledTests = [
+    # AssertionError, https://github.com/Edinburgh-Genome-Foundry/Flametree/issues/9
+    "test_weasyprint"
+  ];
 
   pythonImportsCheck = [ "flametree" ];
 
   meta = with lib; {
-    homepage = "https://github.com/Edinburgh-Genome-Foundry/Flametree";
     description = "Python file and zip operations made easy";
+    homepage = "https://github.com/Edinburgh-Genome-Foundry/Flametree";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix b/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
index 6e98f6e80ac5..f39393ecff7a 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -1,11 +1,11 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
 , apispec
 , colorama
 , click
 , email_validator
+, fetchpatch
 , flask
 , flask-babel
 , flask_login
@@ -20,21 +20,28 @@
 , python-dateutil
 , prison
 , pyjwt
+, pyyaml
 , sqlalchemy-utils
 }:
 
 buildPythonPackage rec {
   pname = "flask-appbuilder";
-  version = "3.1.1";
+  version = "3.3.0";
 
   src = fetchPypi {
     pname = "Flask-AppBuilder";
     inherit version;
-    sha256 = "076b020b0ba125339a2e710e74eab52648cde2b18599f7cb0fa1eada9bbb648c";
+    sha256 = "00dsfv1apl6483wy20aj91f9h5ak2casbx5vcajv2nd3i7c7v8gx";
   };
 
-  checkInputs = [
-    nose
+  patches = [
+    # https://github.com/dpgaspar/Flask-AppBuilder/pull/1610
+    (fetchpatch {
+      name = "flask_jwt_extended-and-pyjwt-patch";
+      url = "https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch";
+      sha256 = "sha256-ZpY8+2Hoz3z01GVtw2OIbQcsmAwa7iwilFWzgcGhY1w=";
+      includes = [ "flask_appbuilder/security/manager.py" "setup.py" ];
+    })
   ];
 
   propagatedBuildInputs = [
@@ -56,22 +63,23 @@ buildPythonPackage rec {
     python-dateutil
     prison
     pyjwt
+    pyyaml
     sqlalchemy-utils
   ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "apispec[yaml]>=3.3, <4" "apispec" \
-      --replace "Flask-Login>=0.3, <0.5" "Flask-Login" \
-      --replace "Flask-Babel>=1, <2" "Flask-Babel" \
-      --replace "marshmallow-sqlalchemy>=0.22.0, <0.24.0" "marshmallow-sqlalchemy" \
-      --replace "prison>=0.1.3, <1.0.0" "prison"
+      --replace "apispec[yaml]>=3.3, <4" "apispec[yaml] >=3.3, <5" \
+      --replace "Flask-Login>=0.3, <0.5" "Flask-Login >=0.3, <0.6" \
+      --replace "Flask-Babel>=1, <2" "Flask-Babel >=1, <3" \
+      --replace "marshmallow-sqlalchemy>=0.22.0, <0.24.0" "marshmallow-sqlalchemy >=0.22.0, <0.25.0"
   '';
 
-
-  # majority of tests require network access or mongo
+  # Majority of tests require network access or mongo
   doCheck = false;
 
+  pythonImportsCheck = [ "flask_appbuilder" ];
+
   meta = with lib; {
     description = "Simple and rapid application development framework, built on top of Flask";
     homepage = "https://github.com/dpgaspar/flask-appbuilder/";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix b/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix
index e5d55a2b9b5f..ba8e0d0f11e6 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix
@@ -1,16 +1,22 @@
-{ lib, buildPythonPackage, fetchPypi, flask }:
+{ lib, python, buildPythonPackage, fetchPypi, flask }:
 
 buildPythonPackage rec {
   pname = "Flask-HTTPAuth";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a";
+    sha256 = "05j1mckwhgicrlj4j7ni2rhcf9w4i7phll06jbjjyvs3rj1l4q1f";
   };
 
   propagatedBuildInputs = [ flask ];
 
+  pythonImportsCheck = [ "flask_httpauth" ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
   meta = with lib; {
     description = "Extension that provides HTTP authentication for Flask routes";
     homepage = "https://github.com/miguelgrinberg/Flask-HTTPAuth";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix b/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
index f2b7222c3d06..e1de7bf0d3b3 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "flask-restx";
-  version = "0.2.0";
+  version = "0.3.0";
 
   # Tests not included in PyPI tarball
   src = fetchFromGitHub {
     owner = "python-restx";
     repo = pname;
     rev = version;
-    sha256 = "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7";
+    sha256 = "0aj13nd3z71gb8c2kqiaz3f9k7jr0srlvrsx8hpz4nkpki8jiz2s";
   };
 
   propagatedBuildInputs = [ aniso8601 jsonschema flask werkzeug pytz six ]
@@ -45,6 +45,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://flask-restx.readthedocs.io/en/${version}/";
     description = "Fully featured framework for fast, easy and documented API development with Flask";
+    changelog = "https://github.com/python-restx/flask-restx/raw/${version}/CHANGELOG.rst";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/flufl/lock.nix b/nixpkgs/pkgs/development/python-modules/flufl/lock.nix
index b44a7f3cdfee..ce2ead246f95 100644
--- a/nixpkgs/pkgs/development/python-modules/flufl/lock.nix
+++ b/nixpkgs/pkgs/development/python-modules/flufl/lock.nix
@@ -14,6 +14,11 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ atpublic psutil ];
   checkInputs = [ pytestCheckHook pytestcov sybil ];
 
+  # disable code coverage checks for all OS. Upstream does not enforce these
+  # checks on Darwin, and code coverage cannot be improved downstream nor is it
+  # relevant to the user.
+  pytestFlagsArray = [ "--no-cov" ];
+
   meta = with lib; {
     homepage = "https://flufllock.readthedocs.io/";
     description = "NFS-safe file locking with timeouts for POSIX and Windows";
diff --git a/nixpkgs/pkgs/development/python-modules/fontparts/default.nix b/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
index 3280f5f4bb1e..8ed3ef17adb5 100644
--- a/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchPypi, python
 , fonttools, lxml, fs, unicodedata2
 , defcon, fontpens, fontmath, booleanoperations
-, pytest, setuptools_scm
+, pytest, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     booleanoperations
diff --git a/nixpkgs/pkgs/development/python-modules/fpyutils/default.nix b/nixpkgs/pkgs/development/python-modules/fpyutils/default.nix
new file mode 100644
index 000000000000..0120391aee1b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fpyutils/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, atomicwrites
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "fpyutils";
+  version = "2.0.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "frnmst";
+    repo = pname;
+    rev = version;
+    sha256 = "1n15fvd6191ixxsza49fdd8j43hs0agagg8k9v6rc7by1ffqnl2b";
+  };
+
+  propagatedBuildInputs = [
+    atomicwrites
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "fpyutils/tests/*.py" ];
+
+  disabledTests = [
+    # Don't run test which requires bash
+    "test_execute_command_live_output"
+  ];
+
+  pythonImportsCheck = [ "fpyutils" ];
+
+  meta = with lib; {
+    description = "Collection of useful non-standard Python functions";
+    homepage = "https://github.com/frnmst/fpyutils";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix b/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
index a1259b85673a..b0035e838447 100644
--- a/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, substituteAll, stdenv, setuptools_scm, freetype }:
+{ lib, buildPythonPackage, fetchPypi, substituteAll, stdenv, setuptools-scm, freetype }:
 
 buildPythonPackage rec {
   pname = "freetype-py";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ freetype ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix b/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
index 8e54cb6897cc..ad157fbda4c0 100644
--- a/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fritzconnection/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "fritzconnection";
-  version = "1.4.2";
+  version = "1.5.0";
 
   # no tests on PyPI
   src = fetchFromGitHub {
     owner = "kbr";
     repo = pname;
     rev = version;
-    sha256 = "02w1hwbfwbh5xlq433myzv6ms7jqxg8kn3d6znq4ic22zprzf5r2";
+    sha256 = "sha256-Iw7R+39rpoCTrRD74kBihF7AMcJWxy2xdPhKLznWdlo=";
   };
 
   disabled = pythonOlder "3.6";
diff --git a/nixpkgs/pkgs/development/python-modules/frozenlist/default.nix b/nixpkgs/pkgs/development/python-modules/frozenlist/default.nix
new file mode 100644
index 000000000000..e3def747f03b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/frozenlist/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, cython
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "frozenlist";
+  version = "1.1.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07z33vid7s8fjwvybyn8357yvs0f6nlhizv1l3qj1bczi3jbdkbh";
+  };
+
+  nativeBuildInputs = [
+    cython
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace "--cov=frozenlist" ""
+  '';
+
+  preBuild = ''
+    cython frozenlist/_frozenlist.pyx
+  '';
+
+  pythonImportsCheck = [ "frozenlist" ];
+
+  meta = with lib; {
+    description = "Python module for list-like structure";
+    homepage = "https://github.com/aio-libs/frozenlist";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
index fbcf09de2eb3..e1a5611dfd30 100644
--- a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
@@ -1,32 +1,43 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
 , pytestCheckHook
 , numpy
-, stdenv
 , aiohttp
 , pytest-vcr
 , requests
+, paramiko
+, smbprotocol
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "2021.04.0";
-  disabled = pythonOlder "3.5";
+  version = "2021.05.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    sha256 = "sha256-9072kb1VEQ0xg9hB8yEzJMD2Ttd3UGjBmTuhE+Uya1k=";
+    sha256 = "sha256-MQjUBLmx3Lb3nZNU/AgBKUQ/qNOd+XH+2YI51wV8AO0=";
   };
 
-  checkInputs = [ pytestCheckHook numpy pytest-vcr ];
+  propagatedBuildInputs = [
+    aiohttp
+    paramiko
+    requests
+    smbprotocol
+  ];
 
-  __darwinAllowLocalNetworking = true;
+  checkInputs = [
+    numpy
+    pytest-vcr
+    pytestCheckHook
+  ];
 
-  propagatedBuildInputs = [ aiohttp requests ];
+  __darwinAllowLocalNetworking = true;
 
   disabledTests = [
     # Test assumes user name is part of $HOME
@@ -43,8 +54,10 @@ buildPythonPackage rec {
     "test_touch"
   ];
 
+  pythonImportsCheck = [ "fsspec" ];
+
   meta = with lib; {
-    description = "A specification that python filesystems should adhere to";
+    description = "A specification that Python filesystems should adhere to";
     homepage = "https://github.com/intake/filesystem_spec";
     license = licenses.bsd3;
     maintainers = [ maintainers.costrouc ];
diff --git a/nixpkgs/pkgs/development/python-modules/garages-amsterdam/default.nix b/nixpkgs/pkgs/development/python-modules/garages-amsterdam/default.nix
new file mode 100644
index 000000000000..eeb68b9bbbd0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/garages-amsterdam/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, aiohttp
+}:
+
+buildPythonPackage rec {
+  pname = "garages-amsterdam";
+  version = "2.1.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "klaasnicolaas";
+    repo = "garages_amsterdam";
+    rev = version;
+    sha256 = "1lg66g0im6v0m294j82229n2b7bhs6kkrp0d9nh87k2rz7zgllil";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # The only test requires network access
+  doCheck = false;
+
+  pythonImportsCheck = [ "garages_amsterdam" ];
+
+  meta = with lib; {
+    description = "Python client for getting garage occupancy in Amsterdam";
+    homepage = "https://github.com/klaasnicolaas/garages_amsterdam";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix b/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
index 483e4a61084e..c71794b106eb 100644
--- a/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
@@ -1,31 +1,54 @@
-{ buildPythonPackage, fetchFromGitHub, lib, pytestCheckHook, google-auth
-, google-auth-oauthlib, requests, decorator, fsspec, ujson, aiohttp, crcmod
-, pytest-vcr, vcrpy }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, google-auth
+, google-auth-oauthlib
+, requests
+, decorator
+, fsspec
+, ujson
+, aiohttp
+, crcmod
+, pytest-vcr
+, vcrpy
+}:
 
 buildPythonPackage rec {
   pname = "gcsfs";
-  version = "2021.04.0";
+  version = "2021.05.0";
+  disabled = pythonOlder "3.6";
 
-  # github sources needed for test data
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OA43DaQue7R5d6SzfKThEQFEwJndjLfznu1LMubs5fs=";
+    sha256 = "sha256-I17eWaijxn0+8CzfzvzXVc0t9gQ03vx29a/i+QCQ0/U=";
   };
 
   propagatedBuildInputs = [
+    aiohttp
+    crcmod
+    decorator
+    fsspec
     google-auth
     google-auth-oauthlib
     requests
-    decorator
-    fsspec
-    aiohttp
     ujson
-    crcmod
   ];
 
-  checkInputs = [ pytestCheckHook pytest-vcr vcrpy ];
+  checkInputs = [
+    pytest-vcr
+    pytestCheckHook
+    vcrpy
+  ];
+
+  disabledTests = [
+    # Tests wants to communicate with the Link-local address
+    "test_GoogleCredentials_None"
+  ];
+
   pythonImportsCheck = [ "gcsfs" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/gensim/default.nix b/nixpkgs/pkgs/development/python-modules/gensim/default.nix
index be6321f86ca7..b29822a507cd 100644
--- a/nixpkgs/pkgs/development/python-modules/gensim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gensim/default.nix
@@ -4,8 +4,8 @@
 , numpy
 , six
 , scipy
-, smart_open
-, scikitlearn, testfixtures, unittest2
+, smart-open
+, scikit-learn, testfixtures, unittest2
 , isPy3k
 }:
 
@@ -19,9 +19,9 @@ buildPythonPackage rec {
     sha256 = "0rx37vnjspjl45v7bj123xwsjfgbwv91v8zpqpli8lgpf42xnskq";
   };
 
-  propagatedBuildInputs = [ smart_open numpy six scipy ];
+  propagatedBuildInputs = [ smart-open numpy six scipy ];
 
-  checkInputs = [ scikitlearn testfixtures unittest2 ];
+  checkInputs = [ scikit-learn testfixtures unittest2 ];
 
   # Two tests fail.
   #
diff --git a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
index b629d48c61f6..06139b40c385 100644
--- a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , sqlalchemy
 , shapely
-, setuptools_scm
+, setuptools-scm
 , pytest
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "02jbad9vbnjx8bmfvxg77z18nymrry6li8hy9pwi0yiyvwbnycyr";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ sqlalchemy shapely ];
 
   # https://github.com/geoalchemy/geoalchemy2/blob/e05a676350b11f0e73609379dae5625c5de2e868/TEST.rst
diff --git a/nixpkgs/pkgs/development/python-modules/geojson-client/default.nix b/nixpkgs/pkgs/development/python-modules/geojson-client/default.nix
index 7e683e204834..8c4eb2cdf1bf 100644
--- a/nixpkgs/pkgs/development/python-modules/geojson-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geojson-client/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "geojson-client";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "exxamalte";
     repo = "python-geojson-client";
     rev = "v${version}";
-    sha256 = "1cc6ymbn45dv7xdl1r8bbizlmsdbxjmsfza442yxmmm19nxnnqjv";
+    sha256 = "sha256-8eSLimCgFRn3cHTz5TE9fAUAbwFO72b23C0lg6fVOLQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/georss-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-client/default.nix
new file mode 100644
index 000000000000..e142942f9394
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-client/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, dateparser
+, fetchFromGitHub
+, haversine
+, pytestCheckHook
+, pythonOlder
+, requests
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "georss-client";
+  version = "0.13";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-client";
+    rev = "v${version}";
+    sha256 = "1pvx2qb8gs2f7bb8xxq689ydxirsl3bcgsbi5qv5klc4c051dj8i";
+  };
+
+  propagatedBuildInputs = [
+    haversine
+    xmltodict
+    requests
+    dateparser
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing GeoRSS feeds";
+    homepage = "https://github.com/exxamalte/python-georss-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/georss-generic-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-generic-client/default.nix
new file mode 100644
index 000000000000..e01d7fa789f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-generic-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, georss-client
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "georss-generic-client";
+  version = "0.4";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-generic-client";
+    rev = "v${version}";
+    sha256 = "0i4shx6fvwibx0hlfmd0dyq2n5lkrqwmlm0l476fdb9bw5lkaiy0";
+  };
+
+  propagatedBuildInputs = [
+    georss-client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_generic_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing generic GeoRSS feeds";
+    homepage = "https://github.com/exxamalte/python-georss-generic-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
new file mode 100644
index 000000000000..4ce833668474
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, georss-client
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "georss-ign-sismologia-client";
+  version = "0.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-ign-sismologia-client";
+    rev = "v${version}";
+    sha256 = "1xylgvbdrpl3wxa6qqc8jma4c9520rld0pv28y3b6b0m07ab6ijl";
+  };
+
+  propagatedBuildInputs = [
+    georss-client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_ign_sismologia_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing the IGN Sismologia GeoRSS feed";
+    homepage = "https://github.com/exxamalte/python-georss-ign-sismologia-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
new file mode 100644
index 000000000000..a4b317407ea2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, georss-client
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "georss-ingv-centro-nazionale-terremoti-client";
+  version = "0.4";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-ingv-centro-nazionale-terremoti-client";
+    rev = "v${version}";
+    sha256 = "06qhxczznckb208bnfly0q5099scq1yj5rk67a6fqczpsmzcln6x";
+  };
+
+  propagatedBuildInputs = [
+    georss-client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_ingv_centro_nazionale_terremoti_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing the INGV Centro Nazionale Terremoti GeoRSS feed";
+    homepage = "https://github.com/exxamalte/python-georss-ingv-centro-nazionale-terremoti-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix
new file mode 100644
index 000000000000..fc482e220c9b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, georss-client
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "georss-nrcan-earthquakes-client";
+  version = "0.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-nrcan-earthquakes-client";
+    rev = "v${version}";
+    sha256 = "0d5cdvi35wj30yvql1sr5n4vz0g4ydrslhql3bya1b7pndfs0h3y";
+  };
+
+  propagatedBuildInputs = [
+    georss-client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_nrcan_earthquakes_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing Natural Resources Canada Earthquakes feed";
+    homepage = "https://github.com/exxamalte/python-georss-nrcan-earthquakes-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix
new file mode 100644
index 000000000000..954e4a6237fb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, georss-client
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "georss-qld-bushfire-alert-client";
+  version = "0.5";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-qld-bushfire-alert-client";
+    rev = "v${version}";
+    sha256 = "sha256-G7rIoG48MTWngtXCT5xzcjntzsYxtVWVhXflLsWY/dk=";
+  };
+
+  propagatedBuildInputs = [
+    georss-client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_qld_bushfire_alert_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing Queensland Bushfire Alert feed";
+    homepage = "https://github.com/exxamalte/python-georss-qld-bushfire-alert-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix
new file mode 100644
index 000000000000..27d43d900fd6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, georss-client
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "georss-tfs-incidents-client";
+  version = "0.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-tfs-incidents-client";
+    rev = "v${version}";
+    sha256 = "10qscn7kncb7h0b8mjykkf5kmm3ga9l8gss4acb888iaigcjgavf";
+  };
+
+  propagatedBuildInputs = [
+    georss-client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_tfs_incidents_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing Tasmania Fire Service Incidents feed";
+    homepage = "https://github.com/exxamalte/python-georss-tfs-incidents-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/georss-wa-dfes-client/default.nix b/nixpkgs/pkgs/development/python-modules/georss-wa-dfes-client/default.nix
new file mode 100644
index 000000000000..1f478151bb3e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/georss-wa-dfes-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, georss-client
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "georss-wa-dfes-client";
+  version = "0.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "exxamalte";
+    repo = "python-georss-wa-dfes-client";
+    rev = "v${version}";
+    sha256 = "0zfjq6yyrss61vwgdrykwkikb009q63kg9ab6ryb2509wiwwfwvk";
+  };
+
+  propagatedBuildInputs = [
+    georss-client
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "georss_wa_dfes_client" ];
+
+  meta = with lib; {
+    description = "Python library for accessing WA Department of Fire and Emergency Services (DFES) feed";
+    homepage = "https://github.com/exxamalte/python-georss-wa-dfes-client";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/get-video-properties/default.nix b/nixpkgs/pkgs/development/python-modules/get-video-properties/default.nix
new file mode 100644
index 000000000000..89e01fedc13d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/get-video-properties/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, ffmpeg
+}:
+
+buildPythonPackage rec {
+  pname = "get-video-properties";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "mvasilkov";
+    repo = "python-get-video-properties";
+    rev = "944c68addbc27e320ebc6313d3f016fb69b5e880";
+    sha256 = "18aslx7amaiw31bl9gambmvzry7hp5nqab6kgp8sg3mz9ih4lzal";
+  };
+
+  # no tests
+  doCheck = false;
+
+  postPatch = ''
+    substituteInPlace videoprops/__init__.py \
+      --replace "which('ffprobe')" "'${ffmpeg}/bin/ffprobe'"
+  '';
+
+  pythonImportsCheck = [ "videoprops" ];
+
+  meta = with lib; {
+    description = "Get video properties";
+    homepage = "https://github.com/mvasilkov/python-get-video-properties";
+    license = licenses.mit;
+    maintainers = with maintainers; [ globin ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ghp-import/default.nix b/nixpkgs/pkgs/development/python-modules/ghp-import/default.nix
new file mode 100644
index 000000000000..37a35febdf03
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ghp-import/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, dateutil
+}:
+
+buildPythonPackage rec {
+  pname = "ghp-import";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-wiqc4Qw3dT4miNFk12WnANrkuNefptsKLDEyuniBiU8=";
+  };
+
+  propagatedBuildInputs = [ dateutil ];
+
+  # Does not include any unit tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "ghp_import" ];
+
+  meta = with lib; {
+    description = "Copy your docs directly to the gh-pages branch";
+    homepage = "https://github.com/c-w/ghp-import";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/glcontext/default.nix b/nixpkgs/pkgs/development/python-modules/glcontext/default.nix
new file mode 100644
index 000000000000..c5a06fb6499a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/glcontext/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, libGL
+, libX11
+, pytestCheckHook
+, psutil
+}:
+
+buildPythonPackage rec {
+  pname = "glcontext";
+  version = "2.3.3";
+
+  src = fetchFromGitHub {
+    owner = "moderngl";
+    repo = pname;
+    rev = version;
+    sha256 = "16kwrfjijn9bnb48rk17wapmhxq6g9s59zczh65imyncb9k82wkc";
+  };
+
+  disabled = !isPy3k;
+
+  buildInputs = [ libGL libX11 ];
+
+  postPatch = ''
+    substituteInPlace glcontext/x11.cpp \
+      --replace '"libGL.so"' '"${libGL}/lib/libGL.so"' \
+      --replace '"libX11.so"' '"${libX11}/lib/libX11.so"'
+    substituteInPlace glcontext/egl.cpp \
+      --replace '"libGL.so"' '"${libGL}/lib/libGL.so"' \
+      --replace '"libEGL.so"' '"${libGL}/lib/libEGL.so"'
+  '';
+
+  # Tests fail because they try to open display. See
+  # https://github.com/NixOS/nixpkgs/pull/121439
+  # for details.
+  doCheck = false;
+
+  pythonImportsCheck = [ "glcontext" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/moderngl/glcontext";
+    description = "OpenGL implementation for ModernGL";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ friedelino ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
index 0c2d74a90e11..d251ec75ff59 100644
--- a/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
@@ -28,6 +28,11 @@ buildPythonPackage rec {
     responses
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+    --replace "pyjwt[crypto]>=1.5.3,<2.0.0" "pyjwt[crypto] >=1.5.3, <3.0.0"
+  '';
+
   pythonImportsCheck = [ "globus_sdk" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/glymur/default.nix b/nixpkgs/pkgs/development/python-modules/glymur/default.nix
index 9a0b1b09db68..f14245865f59 100644
--- a/nixpkgs/pkgs/development/python-modules/glymur/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glymur/default.nix
@@ -2,10 +2,10 @@
 , buildPythonPackage
 , fetchFromGitHub
 , numpy
-, python
 , scikitimage
 , openjpeg
 , procps
+, pytestCheckHook
 , contextlib2
 , mock
 , importlib-resources
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "glymur";
-  version = "0.8.18";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "quintusdias";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zbghzw1q4fljb019lsrhka9xrnn4425qnxrjbmbv7dssgkkywd7";
+    sha256 = "1xlpax56qg5qqh0s19xidgvv2483sc684zj7rh6zw1m1z9m37drr";
   };
 
   propagatedBuildInputs = [
@@ -30,16 +30,21 @@ buildPythonPackage rec {
   checkInputs = [
     scikitimage
     procps
+    pytestCheckHook
   ];
 
   postConfigure = ''
     substituteInPlace glymur/config.py \
-    --replace "path = read_config_file(libname)" "path = '${openjpeg}/lib' + libname + ${if stdenv.isDarwin then "'.dylib'" else "'.so'"}"
+    --replace "path = read_config_file(libname)" "path = '${openjpeg}/lib/lib' + libname + ${if stdenv.isDarwin then "'.dylib'" else "'.so'"}"
   '';
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover
-  '';
+  disabledTestPaths = [
+    # this test involves glymur's different ways of finding the openjpeg path on
+    # fsh systems by reading an .rc file and such, and is obviated by the patch
+    # in postConfigure
+    "tests/test_config.py"
+  ];
+
 
   meta = with lib; {
     description = "Tools for accessing JPEG2000 files";
diff --git a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
index 39ed8d68345f..e2b15ccca656 100644
--- a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.0.2";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04c0c8m4c7lzqv0m3jm0zks9wjcv1myas80rxswvi36wn376qs28";
+    sha256 = "sha256-mHm40dGCEq6Ss1urYejqntXqY++cjKhHk4U42hDdGTs=";
   };
 
   # No tests included in archive
diff --git a/nixpkgs/pkgs/development/python-modules/gpapi/default.nix b/nixpkgs/pkgs/development/python-modules/gpapi/default.nix
index 6ed9f48dd61c..6c2454dbbfeb 100644
--- a/nixpkgs/pkgs/development/python-modules/gpapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpapi/default.nix
@@ -1,7 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, requests
+{ buildPythonPackage
+, cryptography
+, fetchPypi
+, lib
+, pythonOlder
 , protobuf
 , pycryptodome
+, requests
 }:
 
 buildPythonPackage rec {
@@ -14,11 +18,17 @@ buildPythonPackage rec {
     sha256 = "0ampvsv97r3hy1cakif4kmyk1ynf3scbvh4fbk02x7xrxn4kl38w";
   };
 
-  propagatedBuildInputs = [ requests protobuf pycryptodome ];
+  # package doesn't contain unit tests
+  # scripts in ./test require networking
+  doCheck = false;
+
+  pythonImportsCheck = [ "gpapi.googleplay" ];
+
+  propagatedBuildInputs = [ cryptography protobuf pycryptodome requests ];
 
   meta = with lib; {
     homepage = "https://github.com/NoMore201/googleplay-api";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     description = "Google Play Unofficial Python API";
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/graphene/default.nix b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
index 2839fc337cd8..be2cc808eb0d 100644
--- a/nixpkgs/pkgs/development/python-modules/graphene/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
@@ -11,6 +11,7 @@
 , pytest-mock
 , pytz
 , snapshottest
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -24,6 +25,13 @@ buildPythonPackage rec {
     sha256 = "sha256-bVCCLPnV5F8PqLMg3GwcpwpGldrxsU+WryL6gj6y338=";
   };
 
+  # Allow later aniso8601 releases
+  # https://github.com/graphql-python/graphene/pull/1331
+  patches = [ (fetchpatch {
+    url = "https://github.com/graphql-python/graphene/commit/26b16f75b125e35eeb2274b7be503ec29f2e8a45.patch";
+    sha256 = "qm96pNOoxPieEy1CFZpa2Mx010pY3QU/vRyuL0qO3Tk=";
+  }) ];
+
   propagatedBuildInputs = [
     aniso8601
     graphql-core
diff --git a/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix b/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
index d2d6a78436ac..08125bfc71a3 100644
--- a/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphite-web/default.nix
@@ -28,6 +28,12 @@ buildPythonPackage rec {
     ./update-django-tagging.patch
   ];
 
+  postPatch = ''
+    # https://github.com/graphite-project/graphite-web/pull/2701
+    substituteInPlace setup.py \
+      --replace "'scandir'" "'scandir; python_version < \"3.5\"'"
+  '';
+
   propagatedBuildInputs = [
     django
     memcached
diff --git a/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix b/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
index 5c29a1135a9b..85021d126a1b 100644
--- a/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
@@ -1,27 +1,21 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
-, lib
-, pythonOlder
-
-, coveralls
-, promise
-, pytestCheckHook
 , pytest-benchmark
-, pytest-mock
-, rx
-, six
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "graphql-core";
-  version = "3.1.3";
+  version = "3.1.4";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qy1i6vffwad74ymdsh1qjf5b6ph4z0vyxzkkc6yppwczhzmi1ps";
+    sha256 = "sha256-lamV5Rd37WvFBJ+zJUb+UhqxoNUrRhoMJx1NodbQUjs=";
   };
 
   checkInputs = [
@@ -29,12 +23,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "graphql" ];
+
   meta = with lib; {
     description = "Port of graphql-js to Python";
     homepage = "https://github.com/graphql-python/graphql-core";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/graspologic/default.nix b/nixpkgs/pkgs/development/python-modules/graspologic/default.nix
index b4e8803784b5..758f988a2395 100644
--- a/nixpkgs/pkgs/development/python-modules/graspologic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graspologic/default.nix
@@ -8,7 +8,7 @@
 , matplotlib
 , networkx
 , numpy
-, scikitlearn
+, scikit-learn
 , scipy
 , seaborn
 }:
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     matplotlib
     networkx
     numpy
-    scikitlearn
+    scikit-learn
     scipy
     seaborn
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix b/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix
index 59da8f173d97..573f5a68ce67 100644
--- a/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gremlinpython/default.nix
@@ -1,6 +1,15 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pytestCheckHook, pyhamcrest, pytestrunner
-, six, isodate, tornado, aenum, radish-bdd, mock
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aenum
+, importlib-metadata
+, isodate
+, six
+, tornado
+, pytestCheckHook
+, mock
+, pyhamcrest
+, radish-bdd
 }:
 
 buildPythonPackage rec {
@@ -22,13 +31,28 @@ buildPythonPackage rec {
       --replace 'PyHamcrest>=1.9.0,<2.0.0' 'PyHamcrest' \
       --replace 'radish-bdd==0.8.6' 'radish-bdd' \
       --replace 'mock>=3.0.5,<4.0.0' 'mock' \
-      --replace 'pytest>=4.6.4,<5.0.0' 'pytest'
+      --replace 'pytest>=4.6.4,<5.0.0' 'pytest' \
+      --replace 'importlib-metadata<3.0.0' 'importlib-metadata' \
+      --replace 'pytest-runner==5.2' ' '
   '';
 
-  nativeBuildInputs = [ pytestrunner ];  # simply to placate requirements
-  propagatedBuildInputs = [ six isodate tornado aenum ];
+  # setup-requires requirements
+  nativeBuildInputs = [
+    importlib-metadata
+  ];
+  propagatedBuildInputs = [
+    aenum
+    isodate
+    six
+    tornado
+  ];
 
-  checkInputs = [ pytestCheckHook pyhamcrest radish-bdd mock ];
+  checkInputs = [
+    pytestCheckHook
+    mock
+    pyhamcrest
+    radish-bdd
+  ];
 
   # disable custom pytest report generation
   preCheck = ''
@@ -36,12 +60,14 @@ buildPythonPackage rec {
   '';
 
   # many tests expect a running tinkerpop server
+  disabledTestPaths = [
+    "tests/driver/test_client.py"
+    "tests/driver/test_driver_remote_connection.py"
+    "tests/driver/test_driver_remote_connection_threaded.py"
+    "tests/process/test_dsl.py"
+    "tests/structure/io/test_functionalityio.py"
+  ];
   pytestFlagsArray = [
-    "--ignore=tests/driver/test_client.py"
-    "--ignore=tests/driver/test_driver_remote_connection.py"
-    "--ignore=tests/driver/test_driver_remote_connection_threaded.py"
-    "--ignore=tests/process/test_dsl.py"
-    "--ignore=tests/structure/io/test_functionalityio.py"
     # disabledTests doesn't quite allow us to be precise enough for this
     "-k 'not (TestFunctionalGraphSONIO and (test_timestamp or test_datetime or test_uuid))'"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
index 2f4ee5de8d28..52091cacc581 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.37.0";
+  version = "1.38.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3ec510c1b6bfc32effc639acf9a055e72dab7a7b6757bf72f2132790d6a7cf1c";
+    sha256 = "c609678cf6faf4b467259757f848de4fbc7baca3c1e3f7b0e55c701c50fd94ae";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/gst-python/default.nix b/nixpkgs/pkgs/development/python-modules/gst-python/default.nix
index ea89f7214c63..a391d993cf0c 100644
--- a/nixpkgs/pkgs/development/python-modules/gst-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gst-python/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "gst-python";
-  version = "1.18.0";
+  version = "1.18.4";
 
   format = "other";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-python/${pname}-${version}.tar.xz";
-    sha256 = "0ifx2s2j24sj2w5jm7cxyg1kinnhbxiz4x0qp3gnsjlwbawfigvn";
+    sha256 = "13h9qzfz8s1gyj2ar9q2gf5346sgdv6jv8hj7aw0hpl2gs5f0s6b";
   };
 
   # Python 2.x is not supported.
diff --git a/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix b/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
index bb31baa78880..15a1ddbf0614 100644
--- a/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
@@ -46,11 +46,11 @@ buildPythonPackage rec {
       To run gtimelog successfully on a system that does not have full GNOME 3
       installed, the following NixOS options should be set:
       - programs.dconf.enable = true;
-      - services.gnome3.gnome-keyring.enable = true;
+      - services.gnome.gnome-keyring.enable = true;
 
       In addition, the following packages should be added to the environment:
-      - gnome3.adwaita-icon-theme
-      - gnome3.dconf
+      - gnome.adwaita-icon-theme
+      - gnome.dconf
     '';
     homepage = "https://gtimelog.org/";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/gym/default.nix b/nixpkgs/pkgs/development/python-modules/gym/default.nix
index 126606af73a9..a1cd76cd38e4 100644
--- a/nixpkgs/pkgs/development/python-modules/gym/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gym/default.nix
@@ -1,19 +1,32 @@
 { lib
-, buildPythonPackage, fetchPypi
-, numpy, requests, six, pyglet, scipy, cloudpickle
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, requests
+, pyglet
+, scipy
+, pillow
+, cloudpickle
 }:
 
 buildPythonPackage rec {
   pname = "gym";
-  version = "0.18.0";
+  version = "0.18.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a0dcd25c1373f3938f4cb4565f74f434fba6faefb73a42d09c9dddd0c08af53e";
+  src = fetchFromGitHub {
+    owner = "openai";
+    repo = pname;
+    rev = version;
+    sha256 = "0mv4af2y9d1y97bsda94f21nis2jm1zkzv7c806vmvzh5s4r8nfn";
   };
 
   propagatedBuildInputs = [
-    numpy requests six pyglet scipy cloudpickle
+    cloudpickle
+    numpy
+    pillow
+    pyglet
+    requests
+    scipy
   ];
 
   # The test needs MuJoCo that is not free library.
@@ -22,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gym" ];
 
   meta = with lib; {
-    description = "A toolkit by OpenAI for developing and comparing your reinforcement learning agents";
+    description = "A toolkit for developing and comparing your reinforcement learning agents";
     homepage = "https://gym.openai.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix b/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
index 84810fd2b532..9fd1295733c4 100644
--- a/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
-, ffmpeg_3, async-timeout }:
+, async-timeout }:
 
 buildPythonPackage rec {
   pname = "ha-ffmpeg";
@@ -12,17 +12,21 @@ buildPythonPackage rec {
     sha256 = "8d92f2f5790da038d828ac862673e0bb43e8e972e4c70b1714dd9a0fb776c8d1";
   };
 
-  buildInputs = [ ffmpeg_3 ];
-
   propagatedBuildInputs = [ async-timeout ];
 
   # only manual tests
   doCheck = false;
 
+  pythonImportsCheck = [
+    "haffmpeg.camera"
+    "haffmpeg.sensor"
+    "haffmpeg.tools"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/pvizeli/ha-ffmpeg";
     description = "Library for home-assistant to handle ffmpeg";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = teams.home-assistant.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ha-philipsjs/default.nix b/nixpkgs/pkgs/development/python-modules/ha-philipsjs/default.nix
new file mode 100644
index 000000000000..c6de997a1da7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ha-philipsjs/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, httpx
+, pytest-aiohttp
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, respx
+}:
+
+buildPythonPackage rec {
+  pname = "ha-philipsjs";
+  version = "2.7.4";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "danielperna84";
+    repo = pname;
+    rev = version;
+    sha256 = "08fjdb1q02dwxq8s15ddd00gps64xplblkn8dx5yivldskiy8i1n";
+  };
+
+  propagatedBuildInputs = [
+    cryptography
+    httpx
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytest-mock
+    pytestCheckHook
+    respx
+  ];
+
+  pythonImportsCheck = [ "haphilipsjs" ];
+
+  meta = with lib; {
+    description = "Python library to interact with Philips TVs with jointSPACE API";
+    homepage = "https://github.com/danielperna84/ha-philipsjs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
index a9f0d30ef44e..1abd9648e952 100644
--- a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.43.0";
+  version = "0.43.1";
 
   src = fetchFromGitHub {
     owner = "nabucasa";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mfVSiquZrCtAza4q9Ocle22e4ZMoTgxguevuOlZEUm8=";
+    sha256 = "sha256-eQdbAQRKqnJGxnSTkk3gld9TX9MpP3J8LFNYH6peVIY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix b/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
index 961137ed9ab2..abfc4523965f 100644
--- a/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hatasmota/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "hatasmota";
-  version = "0.2.9";
+  version = "0.2.14";
 
   src = fetchFromGitHub {
     owner = "emontnemery";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+4jlzemF5f4Qz4QHDaErsmVHq1Pjn/vsvoq/oCbW/hI=";
+    sha256 = "sha256-sCGUlEN1ejWhc2+9JRQ7UPqueq30u8gGSPRxbs4cnLE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/haversine/default.nix b/nixpkgs/pkgs/development/python-modules/haversine/default.nix
index 7f5e462d1b3c..9d12be3aa198 100644
--- a/nixpkgs/pkgs/development/python-modules/haversine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/haversine/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "haversine";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "mapado";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c3yf9162b2b7l1lsw3ffd1linnc542qvljpgwxp6y5arrmljqnv";
+    sha256 = "sha256-1PXPsZd/4pN42TU0lhXWsmyX7uGP1n/xna2cVZPczB4=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hdate/default.nix b/nixpkgs/pkgs/development/python-modules/hdate/default.nix
new file mode 100644
index 000000000000..5c8a2c1e9fc5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hdate/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, astral
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "hdate";
+  version = "0.10.3";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "py-libhdate";
+    repo = "py-libhdate";
+    rev = "v${version}";
+    sha256 = "sha256-6rOsG6qgq4woBhj25SNWvKshvFLBL/6MJiBZb+NPvdk=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    astral
+    pytz
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml --replace "^2020.5" ">=2020.5"
+  '';
+
+  pytestFlagsArray = [
+    "tests"
+  ];
+
+  pythonImportsCheck = [ "hdate" ];
+
+  meta = with lib; {
+    description = "Python module for Jewish/Hebrew date and Zmanim";
+    homepage = "https://github.com/py-libhdate/py-libhdate";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix b/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
index d2590d14955c..bf48d6cf5e76 100644
--- a/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hdbscan/default.nix
@@ -5,7 +5,7 @@
 , numpy
 , pytestCheckHook
 , scipy
-, scikitlearn
+, scikit-learn
 , fetchPypi
 , joblib
 , six
@@ -29,12 +29,20 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [ cython ];
-  propagatedBuildInputs = [ numpy scipy scikitlearn joblib six ];
+  propagatedBuildInputs = [ numpy scipy scikit-learn joblib six ];
   preCheck = ''
     cd hdbscan/tests
     rm __init__.py
   '';
   checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    # known flaky tests: https://github.com/scikit-learn-contrib/hdbscan/issues/420
+    "test_mem_vec_diff_clusters"
+    "test_all_points_mem_vec_diff_clusters"
+    "test_approx_predict_diff_clusters"
+    # another flaky test https://github.com/scikit-learn-contrib/hdbscan/issues/421
+    "test_hdbscan_boruvka_balltree_matches"
+  ];
 
   meta = with lib; {
     description = "Hierarchical Density-Based Spatial Clustering of Applications with Noise, a clustering algorithm with a scikit-learn compatible API";
diff --git a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
index b7bd002c3678..46db97a9aedd 100644
--- a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "hg-evolve";
-  version = "10.3.0";
+  version = "10.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d7f73fc1c357134ae9b4a3ed2d844ab8e75a4ca1303679a9e150e87617e7bc7";
+    sha256 = "03xwnadpvgna70n6pfxb7xdrszppdqrx5qmkbr1v0jzbh5rnzi6b";
   };
 
   doCheck = false;
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Enables the “changeset evolution” feature of Mercurial core";
     homepage = "https://www.mercurial-scm.org/doc/evolution/";
-    maintainers = with maintainers; [ xavierzwirtz ];
+    maintainers = with maintainers; [ xavierzwirtz lukegb ];
     license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hickle/default.nix b/nixpkgs/pkgs/development/python-modules/hickle/default.nix
index 036122f702b4..1d6d6b39d043 100644
--- a/nixpkgs/pkgs/development/python-modules/hickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hickle/default.nix
@@ -42,6 +42,8 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hickle" ];
 
   meta = {
+    # incompatible with h5py>=3.0, see https://github.com/telegraphic/hickle/issues/143
+    broken = true;
     description = "Serialize Python data to HDF5";
     homepage = "https://github.com/telegraphic/hickle";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/hidapi/default.nix b/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
index 790e7aa08fc2..2b9165dee24e 100644
--- a/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, libusb1, udev, darwin, fetchPypi, buildPythonPackage, cython }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, xcbuild
+, cython
+, libusb1
+, udev
+, darwin
+}:
 
 buildPythonPackage rec {
   pname = "hidapi";
@@ -9,18 +18,17 @@ buildPythonPackage rec {
     sha256 = "a1170b18050bc57fae3840a51084e8252fd319c0fc6043d68c8501deb0e25846";
   };
 
-  propagatedBuildInputs =
-    lib.optionals stdenv.isLinux [ libusb1 udev ] ++
-    lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit CoreFoundation IOKit ]) ++
-    [ cython ];
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [ xcbuild ];
+
+  propagatedBuildInputs = [ cython ]
+    ++ lib.optionals stdenv.isLinux [ libusb1 udev ]
+    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit CoreFoundation IOKit ]);
 
   # Fix the USB backend library lookup
   postPatch = lib.optionalString stdenv.isLinux ''
     libusb=${libusb1.dev}/include/libusb-1.0
     test -d $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
     sed -i -e "s|/usr/include/libusb-1.0|$libusb|" setup.py
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace setup.py --replace 'macos_sdk_path =' 'macos_sdk_path = "" #'
   '';
 
   pythonImportsCheck = [ "hid" ];
@@ -30,7 +38,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/trezor/cython-hidapi";
     # license can actually be either bsd3 or gpl3
     # see https://github.com/trezor/cython-hidapi/blob/master/LICENSE-orig.txt
-    license = licenses.bsd3;
+    license = with licenses; [ bsd3 gpl3Only ];
     maintainers = with maintainers; [ np prusnak ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix b/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix
index 8d2afcf5e722..d079b18a30c2 100644
--- a/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildPythonPackage, numpy, scikitlearn, setuptools_scm, cython, pytest }:
+{ lib, fetchurl, buildPythonPackage, numpy, scikit-learn, setuptools-scm, cython, pytest }:
 
 buildPythonPackage rec {
   pname = "hmmlearn";
@@ -9,8 +9,8 @@ buildPythonPackage rec {
     sha256 = "14fb4ad3fb7529785844a25fae5d32272619fb5973cc02c8784018055470ca01";
   };
 
-  buildInputs = [ setuptools_scm cython ];
-  propagatedBuildInputs = [ numpy scikitlearn ];
+  buildInputs = [ setuptools-scm cython ];
+  propagatedBuildInputs = [ numpy scikit-learn ];
   checkInputs = [ pytest ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/hsluv/default.nix b/nixpkgs/pkgs/development/python-modules/hsluv/default.nix
new file mode 100644
index 000000000000..b6573db53268
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hsluv/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "hsluv";
+  version = "5.0.2";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "hsluv";
+    repo = "hsluv-python";
+    rev = "v${version}";
+    sha256 = "0r0w8ycjwfg3pmzjghzrs0lkam93fzvgiqvrwh3nl9jnqlpw7v7j";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "hsluv" ];
+
+  meta = with lib; {
+    description = "Python implementation of HSLuv";
+    homepage = "https://github.com/hsluv/hsluv-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
index 55aafc620424..e30435c568c7 100644
--- a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2021.3.29";
+  version = "2021.5.31";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "sha256-F5EXwCoXYmFkV0VWT5leIWZU2xH1t6T0LuxodAANS8E=";
+    sha256 = "sha256-qTOzhPET2uj/ST28pzeckFTYYfyPgErvG4HB9zMMB2w=";
   };
 
   # tests require network connection
diff --git a/nixpkgs/pkgs/development/python-modules/httpcore/default.nix b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
index dbbdf0bb38c0..079b5e71a10f 100644
--- a/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
@@ -5,24 +5,25 @@
 , h11
 , h2
 , pproxy
+, pytest-asyncio
+, pytest-trio
 , pytestCheckHook
 , pytestcov
 , sniffio
-, uvicorn
 , trustme
-, trio
+, uvicorn
 }:
 
 buildPythonPackage rec {
   pname = "httpcore";
-  version = "0.12.3";
+  version = "0.13.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "09hbjc5wzhrnri5y3idxcq329d7jiaxljc7y6npwv9gh9saln109";
+    sha256 = "sha256-KvqBVQUaF3p2oJz0tt3Bkn2JiKEHqrZ3b6I9f0JK5h8=";
   };
 
   propagatedBuildInputs = [
@@ -33,18 +34,19 @@ buildPythonPackage rec {
 
   checkInputs = [
     pproxy
+    pytest-asyncio
+    pytest-trio
     pytestCheckHook
     pytestcov
-    uvicorn
     trustme
-    trio
+    uvicorn
   ];
 
-  pytestFlagsArray = [
+  disabledTestPaths = [
     # these tests fail during dns lookups: httpcore.ConnectError: [Errno -2] Name or service not known
-    "--ignore=tests/test_threadsafety.py"
-    "--ignore=tests/sync_tests/test_interfaces.py"
-    "--ignore=tests/sync_tests/test_retries.py"
+    "tests/test_threadsafety.py"
+    "tests/sync_tests/test_interfaces.py"
+    "tests/sync_tests/test_retries.py"
   ];
 
   pythonImportsCheck = [ "httpcore" ];
diff --git a/nixpkgs/pkgs/development/python-modules/httpx/default.nix b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
index 2aba203ea01f..b45c3e85f502 100644
--- a/nixpkgs/pkgs/development/python-modules/httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.17.1";
+  version = "0.18.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-P4Uki+vlAgVECBUz9UGvv1ip49jmf0kYbyU2/mkWE3U=";
+    sha256 = "sha256-6EYBTRXaVHBgW/JzZvWLz55AqgocOyym2FVtu2Nkp/U=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/humanize/default.nix b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
index 5db7d6d02545..5184f83881f0 100644
--- a/nixpkgs/pkgs/development/python-modules/humanize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, setuptools_scm
+, setuptools-scm
 , setuptools
 , pytestCheckHook
 , freezegun
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "8bf7abd672b867f38b8b04593829b85b9b6199a61ef6586bf3629cc06458ff35";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ setuptools ];
   checkInputs = [ pytestCheckHook freezegun ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/humblewx/default.nix b/nixpkgs/pkgs/development/python-modules/humblewx/default.nix
new file mode 100644
index 000000000000..7fd0b0e8dd90
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/humblewx/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, wxPython_4_0
+, python3
+}:
+
+buildPythonPackage rec {
+  pname = "humblewx";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "thetimelineproj";
+    repo = pname;
+    rev = version;
+    sha256 = "0fv8gwlbcj000qq34inbwgxf0xgibs590dsyqnw0mmyb7f1iq210";
+  };
+
+  # timeline is not compatible with wxPython_4_1. reported upstream
+  propagatedBuildInputs = [ wxPython_4_0 ];
+
+  checkPhase = ''
+    runHook preCheck
+    for i in examples/*; do
+      ${python3.interpreter} $i
+    done
+    runHook postCheck
+  '';
+
+  # Unable to access the X Display, is $DISPLAY set properly?
+  # would have to use nixos module tests, but it is not worth it
+  doCheck = false;
+
+  pythonImportsCheck = [ "humblewx" ];
+
+  meta = {
+    homepage = "https://github.com/thetimelineproj/humblewx";
+    description = "Library that simplifies creating user interfaces with wxPython";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ davidak ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hupper/default.nix b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
index 27e308ee4477..972606974602 100644
--- a/nixpkgs/pkgs/development/python-modules/hupper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
@@ -3,25 +3,35 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
-, pytest-cov
 , watchdog
 }:
 
 buildPythonPackage rec {
   pname = "hupper";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3818f53dabc24da66f65cf4878c1c7a9b5df0c46b813e014abdd7c569eb9a02a";
+    sha256 = "sha256-zW9Rtyx1h7ybzopl7NAloelfGwMoRRm/6RKE0BAxbNk=";
   };
 
   # FIXME: watchdog dependency is disabled on Darwin because of #31865, which causes very silent
   # segfaults in the testsuite that end up failing the tests in a background thread (in myapp)
-  checkInputs = [ pytestCheckHook pytest-cov ] ++ lib.optional (!stdenv.isDarwin) watchdog;
+  checkInputs = [
+    pytestCheckHook
+  ] ++ lib.optional (!stdenv.isDarwin) [
+    watchdog
+  ];
+
+  disabledTestPaths = [
+    # Doesn't work with an exported home, RuntimeError: timeout waiting for change to file=/build/tmpgfn145cx
+    "tests/test_it.py"
+  ];
+
+  pythonImportsCheck = [ "hupper" ];
 
   meta = with lib; {
-    description = "in-process file monitor / reloader for reloading your code automatically during development";
+    description = "In-process file monitor/reloader for reloading your code automatically during development";
     homepage = "https://github.com/Pylons/hupper";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/hwi/default.nix b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
index 5da15fa3e233..7b6daf1fad05 100644
--- a/nixpkgs/pkgs/development/python-modules/hwi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "hwi";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "HWI";
     rev = version;
-    sha256 = "148m0vgwm6l8drcx6j3fjs2zpdzvslk4w2nkb8nm0g8qdlm6gjlw";
+    sha256 = "sha256-s0pKYqesZjHE6YndqsMwCuqLK7eE82oRiSXxBdUtEX4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix b/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix
index ad56de86782b..21927683b18b 100644
--- a/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, idna, typing ? null }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, idna
+, typing ? null
+}:
 
 buildPythonPackage rec {
   pname = "hyperlink";
@@ -6,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b";
+    sha256 = "0sx50lkivsfjxx9zr4yh7l9gll2l9kvl0v0w8w4wk2x5v9bzjyj2";
   };
 
   propagatedBuildInputs = [ idna ]
@@ -14,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A featureful, correct URL for Python";
+    homepage = "https://github.com/python-hyper/hyperlink";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ apeschar ];
diff --git a/nixpkgs/pkgs/development/python-modules/hyppo/default.nix b/nixpkgs/pkgs/development/python-modules/hyppo/default.nix
index 86b43465fb64..9fdeca082b2f 100644
--- a/nixpkgs/pkgs/development/python-modules/hyppo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hyppo/default.nix
@@ -4,8 +4,10 @@
 , fetchFromGitHub
 , pytestCheckHook , pytestcov , numba
 , numpy
-, scikitlearn
+, scikit-learn
 , scipy
+, matplotlib
+, seaborn
 }:
 
 buildPythonPackage rec {
@@ -24,12 +26,16 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numba
     numpy
-    scikitlearn
+    scikit-learn
     scipy
   ];
 
-  checkInputs = [ pytestCheckHook pytestcov ];
-  pytestFlagsArray = [ "--ignore=docs" ];
+  checkInputs = [ pytestCheckHook pytestcov matplotlib seaborn ];
+  disabledTestPaths = [
+    "docs"
+    "benchmarks"
+    "examples"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/neurodata/hyppo";
diff --git a/nixpkgs/pkgs/development/python-modules/i-pi/default.nix b/nixpkgs/pkgs/development/python-modules/i-pi/default.nix
new file mode 100644
index 000000000000..5f031197978a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/i-pi/default.nix
@@ -0,0 +1,41 @@
+{ buildPythonPackage, lib, fetchFromGitHub, gfortran
+, makeWrapper, numpy, pytest, mock, pytest-mock
+} :
+
+buildPythonPackage rec {
+  name = "i-pi";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "i-pi";
+    repo = "i-pi";
+    rev = "v${version}";
+    sha256 = "0d0ag57aa0fsqjwya27fyj8alimjvlxzgh6hxjqy1k4ap9h3n1cy";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+    makeWrapper
+  ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  checkInputs = [
+    pytest
+    mock
+    pytest-mock
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/i-pi \
+      --set IPI_ROOT $out
+  '';
+
+  meta = with lib; {
+    description = "A universal force engine for ab initio and force field driven (path integral) molecular dynamics";
+    license = with licenses; [ gpl3Only mit ];
+    homepage = "http://ipi-code.org/";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/i2c-tools/default.nix b/nixpkgs/pkgs/development/python-modules/i2c-tools/default.nix
new file mode 100644
index 000000000000..60af11e24198
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/i2c-tools/default.nix
@@ -0,0 +1,21 @@
+{ lib
+, buildPythonPackage
+, i2c-tools
+}:
+
+buildPythonPackage rec {
+  inherit (i2c-tools) pname version src;
+
+  buildInputs = [ i2c-tools ];
+
+  preConfigure = "cd py-smbus";
+
+  meta = with lib; {
+    inherit (i2c-tools.meta) homepage platforms;
+
+    description = "wrapper for i2c-tools' smbus stuff";
+    # from py-smbus/smbusmodule.c
+    license = [ licenses.gpl2Only ];
+    maintainers = [ maintainers.evils ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix b/nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
new file mode 100644
index 000000000000..828f51ae28f4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, codecov
+, pyjwt
+, pylint
+, pytestCheckHook
+, pytestcov
+, python-dateutil
+, requests
+, responses
+, tox
+}:
+
+buildPythonPackage rec {
+  pname = "ibm-cloud-sdk-core";
+  version = "3.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gwx0z6yqlym9af6wnzq5alcrx8pfsywxn18a0yxhm1j00rkyh2i";
+  };
+
+  checkInputs = [
+    codecov
+    pylint
+    pytestCheckHook
+    pytestcov
+    responses
+    tox
+  ];
+
+  propagatedBuildInputs = [
+    pyjwt
+    python-dateutil
+    requests
+  ];
+
+  # Various tests try to access credential files which are not included with the source distribution
+  disabledTests = [
+    "test_iam" "test_cwd" "test_configure_service" "test_get_authenticator"
+    "test_read_external_sources_2" "test_files_duplicate_parts" "test_files_list"
+    "test_files_dict" "test_retry_config_external" "test_gzip_compression_external"
+  ];
+
+  meta = with lib; {
+    description = "Client library for the IBM Cloud services";
+    homepage = "https://github.com/IBM/python-sdk-core";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ globin lheckemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix b/nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix
new file mode 100644
index 000000000000..fe8756fde03b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ibm-watson/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, responses
+, pytestCheckHook
+, python-dotenv
+, pytest-rerunfailures
+, tox
+, requests
+, python-dateutil
+, websocket_client
+, ibm-cloud-sdk-core
+}:
+
+buildPythonPackage rec {
+  pname = "ibm-watson";
+  version = "5.1.0";
+
+  src = fetchFromGitHub {
+    owner = "watson-developer-cloud";
+    repo = "python-sdk";
+    rev = "v${version}";
+    sha256 = "sha256:16llw7kybwndgf2ryrg5698v4j3rhrdx52lf3kdzhxdi0q3kmwdn";
+  };
+
+  checkInputs = [
+    responses
+    pytestCheckHook
+    python-dotenv
+    pytest-rerunfailures
+    tox
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    python-dateutil
+    websocket_client
+    ibm-cloud-sdk-core
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace websocket-client==0.48.0 websocket-client>=0.48.0 \
+      --replace ibm_cloud_sdk_core==3.3.6 ibm_cloud_sdk_core>=3.3.6
+  '';
+
+  meta = with lib; {
+    description = "Client library to use the IBM Watson Services";
+    homepage = "https://github.com/watson-developer-cloud/python-sdk";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ globin lheckemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/icmplib/default.nix b/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
index 2718b6340540..fdbf45edaaeb 100644
--- a/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/icmplib/default.nix
@@ -4,24 +4,22 @@
 , pbr
 , pythonOlder
 , requests
-, six
 }:
 
 buildPythonPackage rec {
   pname = "icmplib";
-  version = "2.1.1";
-  disabled = pythonOlder "3.6";
+  version = "3.0.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ValentinBELYN";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06xx9854yzxa7x1mjfzbhhw5rfzgjnw269j5k0rshyqh3qvw1nwv";
+    sha256 = "sha256-i5cmL8kOrehldOwX2RfVAfL4HdzJ+9S3BojJI2raUSA=";
   };
 
   propagatedBuildInputs = [
     pbr
-    six
     requests
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/ics/default.nix b/nixpkgs/pkgs/development/python-modules/ics/default.nix
index 011909d6b805..ed87f3678b15 100644
--- a/nixpkgs/pkgs/development/python-modules/ics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ics/default.nix
@@ -1,6 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, tatsu, arrow
-, pytestCheckHook, pytest-flakes
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, tatsu
+, arrow
+, pytestCheckHook
+, pytest-flakes
 }:
 
 buildPythonPackage rec {
@@ -9,21 +14,35 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
-    owner = "C4ptainCrunch";
-    repo = "ics.py";
+    owner = "ics-py";
+    repo = "ics-py";
     rev = "v${version}";
     sha256 = "0rrdc9rcxc3ys6rml81b8m8qdlisk78a34bdib0wy65hlkmyyykn";
   };
 
-  propagatedBuildInputs = [ tatsu arrow ];
+  propagatedBuildInputs = [
+    arrow
+    tatsu
+  ];
+
+  checkInputs = [
+    pytest-flakes
+    pytestCheckHook
+  ];
 
   postPatch = ''
+    # 0.8 will move to python-dateutil
     substituteInPlace requirements.txt \
       --replace "arrow>=0.11,<0.15" "arrow"
     substituteInPlace setup.cfg --replace "--pep8" ""
   '';
 
-  checkInputs = [ pytestCheckHook pytest-flakes ];
+  disabledTests = [
+    # Failure seems to be related to arrow > 1.0
+    "test_event"
+  ];
+
+  pythonImportsCheck = [ "ics" ];
 
   meta = with lib; {
     description = "Pythonic and easy iCalendar library (RFC 5545)";
@@ -32,9 +51,8 @@ buildPythonPackage rec {
       write ics data in a developer friendly way.
     '';
     homepage = "http://icspy.readthedocs.org/en/stable/";
-    changelog = "https://github.com/C4ptainCrunch/ics.py/releases/tag/v${version}";
+    changelog = "https://github.com/ics-py/ics-py/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ primeos ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ignite/default.nix b/nixpkgs/pkgs/development/python-modules/ignite/default.nix
index 71bed73f9d7b..f745b735f342 100644
--- a/nixpkgs/pkgs/development/python-modules/ignite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ignite/default.nix
@@ -8,7 +8,7 @@
 , mock
 , pytorch
 , pynvml
-, scikitlearn
+, scikit-learn
 , tqdm
 }:
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytestCheckHook matplotlib mock pytest_xdist ];
-  propagatedBuildInputs = [ pytorch scikitlearn tqdm pynvml ];
+  propagatedBuildInputs = [ pytorch scikit-learn tqdm pynvml ];
 
   # runs succesfully in 3.9, however, async isn't correctly closed so it will fail after test suite.
   doCheck = pythonOlder "3.9";
diff --git a/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
index db59ba70bb26..bb186d6594c0 100644
--- a/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
@@ -1,29 +1,42 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, fetchpatch
 , isPy3k
+, fetchPypi
+, substituteAll
+, ffmpeg
+, python
 }:
 
 buildPythonPackage rec {
   pname = "imageio-ffmpeg";
-  version = "0.4.2";
+  version = "0.4.3";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13b05b17a941a9f4a90b16910b1ffac159448cff051a153da8ba4b4343ffa195";
+    sha256 = "f826260a3207b872f1a4ba87ec0c8e02c00afba4fd03348a59049bdd8215841e";
   };
-  patches = [ (fetchpatch {
-    # Fixes compatibility with python3.9
-    # Should be included in the next release after 0.4.2
-    url = "https://github.com/imageio/imageio-ffmpeg/pull/43/commits/b90c39fe3d29418d67d953588ed9fdf4d848f811.patch";
-    sha256 = "0d9kf4w6ldwag3s2dr9zjin6wrj66fnl4fn8379ci4q4qfsqgx3f";
-  })];
 
-  disabled = !isPy3k;
+  patches = [
+    (substituteAll {
+      src = ./ffmpeg-path.patch;
+      ffmpeg = "${ffmpeg}/bin/ffmpeg";
+    })
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    ${python.interpreter} << EOF
+    from imageio_ffmpeg import get_ffmpeg_version
+    assert get_ffmpeg_version() == '${ffmpeg.version}'
+    EOF
+
+    runHook postCheck
+  '';
 
-  # No test infrastructure in repository.
-  doCheck = false;
+  pythonImportsCheck = [ "imageio_ffmpeg" ];
 
   meta = with lib; {
     description = "FFMPEG wrapper for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch
new file mode 100644
index 000000000000..d193ec199f9b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch
@@ -0,0 +1,39 @@
+diff --git a/imageio_ffmpeg/_utils.py b/imageio_ffmpeg/_utils.py
+index 1399cfd..c0eb9be 100644
+--- a/imageio_ffmpeg/_utils.py
++++ b/imageio_ffmpeg/_utils.py
+@@ -23,33 +23,7 @@ def get_ffmpeg_exe():
+     if exe:
+         return exe
+ 
+-    plat = get_platform()
+-
+-    # 2. Try from here
+-    bin_dir = resource_filename("imageio_ffmpeg", "binaries")
+-    exe = os.path.join(bin_dir, FNAME_PER_PLATFORM.get(plat, ""))
+-    if exe and os.path.isfile(exe) and _is_valid_exe(exe):
+-        return exe
+-
+-    # 3. Try binary from conda package
+-    # (installed e.g. via `conda install ffmpeg -c conda-forge`)
+-    if plat.startswith("win"):
+-        exe = os.path.join(sys.prefix, "Library", "bin", "ffmpeg.exe")
+-    else:
+-        exe = os.path.join(sys.prefix, "bin", "ffmpeg")
+-    if exe and os.path.isfile(exe) and _is_valid_exe(exe):
+-        return exe
+-
+-    # 4. Try system ffmpeg command
+-    exe = "ffmpeg"
+-    if _is_valid_exe(exe):
+-        return exe
+-
+-    # Nothing was found
+-    raise RuntimeError(
+-        "No ffmpeg exe could be found. Install ffmpeg on your system, "
+-        "or set the IMAGEIO_FFMPEG_EXE environment variable."
+-    )
++    return '@ffmpeg@'
+ 
+ 
+ def _popen_kwargs(prevent_sigint=False):
diff --git a/nixpkgs/pkgs/development/python-modules/imageio/default.nix b/nixpkgs/pkgs/development/python-modules/imageio/default.nix
index 2b334fd121ce..1672e798f304 100644
--- a/nixpkgs/pkgs/development/python-modules/imageio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imageio/default.nix
@@ -1,17 +1,12 @@
 { lib
 , buildPythonPackage
 , isPy27
-, pathlib
 , fetchPypi
-, pillow
-, psutil
 , imageio-ffmpeg
-, pytest
 , numpy
-, isPy3k
-, ffmpeg_3
-, futures ? null
-, enum34
+, pillow
+, psutil
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -24,26 +19,21 @@ buildPythonPackage rec {
     inherit pname version;
   };
 
-  checkInputs = [ pytest psutil ] ++ lib.optionals isPy3k [
-    imageio-ffmpeg ffmpeg_3
-    ];
-  propagatedBuildInputs = [ numpy pillow ];
+  propagatedBuildInputs = [
+    imageio-ffmpeg
+    numpy
+    pillow
+  ];
+
+  checkInputs = [
+    psutil
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
+  preCheck = ''
     export IMAGEIO_USERDIR="$TMP"
     export IMAGEIO_NO_INTERNET="true"
     export HOME="$(mktemp -d)"
-    py.test
-  '';
-
-  # For some reason, importing imageio also imports xml on Nix, see
-  # https://github.com/imageio/imageio/issues/395
-
-  # Also, there are tests that test the downloading of ffmpeg if it's not installed.
-  # "Uncomment" those by renaming.
-  postPatch = ''
-    substituteInPlace tests/test_meta.py --replace '"urllib",' "\"urllib\",\"xml\","
-    substituteInPlace tests/test_ffmpeg.py --replace 'test_get_exe_installed' 'get_exe_installed'
   '';
 
   meta = with lib; {
@@ -51,5 +41,4 @@ buildPythonPackage rec {
     homepage = "http://imageio.github.io/";
     license = licenses.bsd2;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix b/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
index 700c23827faa..75de29b233db 100644
--- a/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.40.0";
+  version = "0.41.0";
 
   disabled = isPy27;
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    sha256 = "sha256-7qLiVN3pBkbZQlA12ZOkgpiV/JybrPTmEIeJjy4ZS3A=";
+    sha256 = "sha256-gtfVZTHeiYamKkcu9n/CJ4O4X1YneY2QB3XZnvtNL3U=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/imapclient/default.nix b/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
index 27667f860ff1..ea4f388b6c7e 100644
--- a/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imapclient/default.nix
@@ -1,35 +1,30 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, mock
 , six
+, pytestCheckHook
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "IMAPClient";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "mjs";
     repo = "imapclient";
     rev = version;
-    sha256 = "1zc8qj8ify2zygbz255b6fcg7jhprswf008ccwjmbrnj08kh9l4x";
+    sha256 = "sha256-q/8LFKHgrY3pQV7Coz+5pZAw696uABMTEkYoli6C2KA=";
   };
 
-  # fix test failing in python 36
-  postPatch = ''
-    substituteInPlace tests/test_imapclient.py \
-      --replace "if sys.version_info >= (3, 7):" "if sys.version_info >= (3, 6, 4):"
-  '';
-
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ mock ];
+  checkInputs = [ pytestCheckHook mock ];
 
   meta = with lib; {
     homepage = "https://imapclient.readthedocs.io";
     description = "Easy-to-use, Pythonic and complete IMAP client library";
     license = licenses.bsd3;
-    maintainers = [ maintainers.almac ];
+    maintainers = with maintainers; [ almac dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix
index 96ba16b1cd1a..6709092ca955 100644
--- a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix
+++ b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/0.4.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, scikitlearn, pandas, nose, pytest }:
+{ lib, buildPythonPackage, fetchPypi, scikit-learn, pandas, nose, pytest }:
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "5bd9e86e40ce4001a57426541d7c79b18143cbd181e3330c1a3e5c5c43287083";
   };
 
-  propagatedBuildInputs = [ scikitlearn ];
+  propagatedBuildInputs = [ scikit-learn ];
   checkInputs = [ nose pytest pandas ];
   checkPhase = ''
     export HOME=$PWD
diff --git a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
index cf3fca9aa03c..aad2e3e07a45 100644
--- a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -4,7 +4,7 @@
 , isPy27
 , pandas
 , pytestCheckHook
-, scikitlearn
+, scikit-learn
 }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "0a9xrw4qsh95g85pg2611hvj6xcfncw646si2icaz22haw1x410w";
   };
 
-  propagatedBuildInputs = [ scikitlearn ];
+  propagatedBuildInputs = [ scikit-learn ];
   checkInputs = [ pytestCheckHook pandas ];
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/development/python-modules/img2pdf/default.nix b/nixpkgs/pkgs/development/python-modules/img2pdf/default.nix
index eb8605c45ddc..204e3e93b8d3 100644
--- a/nixpkgs/pkgs/development/python-modules/img2pdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/img2pdf/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "img2pdf";
-  version = "0.4.0";
+  version = "0.4.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eaee690ab8403dd1a9cb4db10afee41dd3e6c7ed63bdace02a0121f9feadb0c9";
+    sha256 = "sha256-OKEinKhLIR13gtHWWtclGpeBvyT29kl8c4x1X8/tVVI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/imgaug/default.nix b/nixpkgs/pkgs/development/python-modules/imgaug/default.nix
index 343c7869a6c1..ab3cdd6e6d06 100644
--- a/nixpkgs/pkgs/development/python-modules/imgaug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imgaug/default.nix
@@ -4,7 +4,7 @@
 , imagecorruptions
 , numpy
 , opencv3
-, pytest
+, pytestCheckHook
 , scikitimage
 , scipy
 , shapely
@@ -43,11 +43,30 @@ buildPythonPackage rec {
     six
   ];
 
-  checkPhase = ''
-     pytest ./test
-  '';
+  checkInputs = [
+    opencv3
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Tests are outdated
+    "test_quokka_segmentation_map"
+    "test_pool"
+    "test_avg_pool"
+    "test_max_pool"
+    "test_min_pool"
+    "est_median_pool"
+    "test_alpha_is_080"
+    "test_face_and_lines_at_half_visibility"
+    "test_polygon_fully_inside_image__no_rectangular_shape"
+  ];
+
+  disabledTestPaths = [
+    # TypeError:  int() argument must be a string, a bytes-like object or a number, not 'NoneType'
+    "test/augmenters/test_pooling.py"
+  ];
 
-  checkInputs = [ opencv3 pytest ];
+  pythonImportsCheck = [ "imgaug" ];
 
   meta = with lib; {
     homepage = "https://github.com/aleju/imgaug";
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-resources/2.nix b/nixpkgs/pkgs/development/python-modules/importlib-resources/2.nix
new file mode 100644
index 000000000000..1034c3111306
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/importlib-resources/2.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+, importlib-metadata
+, typing
+, singledispatch
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "importlib-resources";
+  version = "3.3.1";
+
+  src = fetchPypi {
+    pname = "importlib_resources";
+    inherit version;
+    sha256 = "0ed250dbd291947d1a298e89f39afcc477d5a6624770503034b72588601bcc05";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+  propagatedBuildInputs = [
+    importlib-metadata
+    singledispatch
+    typing
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  meta = with lib; {
+    description = "Read resources from Python packages";
+    homepage = "https://importlib-resources.readthedocs.io/";
+    license = licenses.asl20;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
index cd8fec1e54e0..2388fb1b26df 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
@@ -1,8 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
-, toml
+, setuptools-scm
 , importlib-metadata
 , typing ? null
 , singledispatch ? null
@@ -11,15 +10,16 @@
 }:
 
 buildPythonPackage rec {
-  pname = "importlib_resources";
+  pname = "importlib-resources";
   version = "5.1.2";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "importlib_resources";
+    inherit version;
     sha256 = "642586fc4740bd1cad7690f836b3321309402b20b332529f25617ff18e8e1370";
   };
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     importlib-metadata
   ] ++ lib.optional (pythonOlder "3.4") singledispatch
@@ -34,5 +34,6 @@ buildPythonPackage rec {
     description = "Read resources from Python packages";
     homepage = "https://importlib-resources.readthedocs.io/";
     license = licenses.asl20;
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/imread/default.nix b/nixpkgs/pkgs/development/python-modules/imread/default.nix
index 3d09e6a43971..9d5ea1bebd20 100644
--- a/nixpkgs/pkgs/development/python-modules/imread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imread/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "python-imread";
-  version = "0.7.0";
+  version = "0.7.4";
 
   src = fetchPypi {
     inherit version;
     pname = "imread";
-    sha256 = "0yb0fmy6ilh5fvbk69wl2bzqgss2g0951668mx8z9yyj4jhr1z2y";
+    sha256 = "0kvlpy62vc16i0mysv1b2gv746in41q75hb815q6h8d227psv1q4";
   };
 
 
diff --git a/nixpkgs/pkgs/development/python-modules/incremental/default.nix b/nixpkgs/pkgs/development/python-modules/incremental/default.nix
index 6cbed7221a8f..b79ba4b7db2e 100644
--- a/nixpkgs/pkgs/development/python-modules/incremental/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/incremental/default.nix
@@ -13,6 +13,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/twisted/treq";
     description = "Incremental is a small library that versions your Python projects";
     license = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/inflect/default.nix b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
index b8ebce462dce..f81ceabd27e1 100644
--- a/nixpkgs/pkgs/development/python-modules/inflect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, setuptools_scm
+, setuptools-scm
 , toml
 , pytestCheckHook
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "41a23f6788962e9775e40e2ecfb1d6455d02de315022afeedd3c5dc070019d73";
   };
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm toml ];
 
   checkInputs = [ pytestCheckHook ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
index 82153f4b3d9b..38f6f58910db 100644
--- a/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
@@ -14,22 +14,16 @@
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.15.0";
-
-  disabled = pythonOlder "3.6"; # requires python version >=3.6
+  version = "1.17.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "v${version}";
-    sha256 = "1b2xh78v965rgafyj7cdbjm2p96d74f7ifsqllc7242n9wv3k53q";
+    sha256 = "1xxg8z9zambbhr7nmxhmvmiwkd4578zxr6rl2vhdh2w77idsw29z";
   };
 
-  # makes test not reproducible
-  postPatch = ''
-    sed -i -e '/randomize/d' test-requirements.txt
-  '';
-
   propagatedBuildInputs = [
     rx
     certifi
@@ -44,6 +38,8 @@ buildPythonPackage rec {
   # requires influxdb server
   doCheck = false;
 
+  pythonImportsCheck = [ "influxdb_client" ];
+
   meta = with lib; {
     description = "InfluxDB 2.0 Python client library";
     homepage = "https://github.com/influxdata/influxdb-client-python";
diff --git a/nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix b/nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix
deleted file mode 100644
index b250dfc6c7f6..000000000000
--- a/nixpkgs/pkgs/development/python-modules/infoqscraper/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, buildPythonPackage
-, html5lib
-, six
-, beautifulsoup4
-, pkgs
-}:
-
-buildPythonPackage rec {
-  version = "0.1.0";
-  pname = "infoqscraper";
-
-  src = pkgs.fetchFromGitHub {
-    owner = "cykl";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "07mxp4mla7fwfc032f3mxrhjarnhkjqdxxibf9ba87c93z3dq8jj";
-  };
-
-  # requires network
-  doCheck = false;
-
-  buildInputs = [ html5lib ];
-  propagatedBuildInputs = [ six beautifulsoup4 pkgs.ffmpeg_3 pkgs.swftools pkgs.rtmpdump ];
-
-  meta = with lib; {
-    description = "Discover presentations and/or create a movie consisting of slides and audio track from an infoq url";
-    homepage = "https://github.com/cykl/infoqscraper/wiki";
-    license = licenses.mit;
-    maintainers = with maintainers; [ edwtjo ];
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/injector/default.nix b/nixpkgs/pkgs/development/python-modules/injector/default.nix
new file mode 100644
index 000000000000..921db5d1a877
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/injector/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, typing-extensions }:
+
+buildPythonPackage rec {
+  pname = "injector";
+  version = "0.18.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10miwi58g4b8rvdf1pl7s7x9j91qyxxv3kdn5idzkfc387hqxn6f";
+  };
+
+  propagatedBuildInputs = [ typing-extensions ];
+
+  doCheck = false; # No tests are available
+  pythonImportsCheck = [ "injector" ];
+
+  meta = with lib; {
+    description = "Python dependency injection framework, inspired by Guice";
+    homepage = "https://github.com/alecthomas/injector";
+    maintainers = [ maintainers.ivar ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
index 0d1fb08e2a4e..20e7986188c5 100644
--- a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
@@ -19,11 +19,11 @@
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "515e6646a2b917c15f2241670d21f14a014b9c67dc509aef4d4aca5a59cdda65";
+    sha256 = "2ce0ab89fea37e5b2311bc7d163955e84f73f6beeac3942e17e9d51ad7cc9ffa";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
index fbdfd5b7900a..b34aa13bbcfc 100644
--- a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
@@ -3,21 +3,21 @@
 , fetchPypi
 , ipython
 , isPyPy
-, isPy27
 , mock
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "ipdb";
   version = "0.13.7";
-  disabled = isPyPy || isPy27;  # setupterm: could not find terminfo database
+  disabled = isPyPy;  # setupterm: could not find terminfo database
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "178c367a61c1039e44e17c56fcc4a6e7dc11b33561261382d419b6ddb4401810";
   };
 
-  propagatedBuildInputs = [ ipython ];
+  propagatedBuildInputs = [ ipython toml ];
   checkInputs = [ mock ];
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/ipydatawidgets/default.nix b/nixpkgs/pkgs/development/python-modules/ipydatawidgets/default.nix
index a0efa9b575db..e6e1e605cca5 100644
--- a/nixpkgs/pkgs/development/python-modules/ipydatawidgets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipydatawidgets/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "ipydatawidgets";
-  version = "4.2.0";
+  version = "4.1.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d0e4b58b59b508165e8562b8f5d1dbfcd739855847ec0477bd9185a5e9b7c5bc";
+    sha256 = "d9f94828c11e3b40350fb14a02e027f42670a7c372bcb30db18d552dcfab7c01";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ipympl/default.nix b/nixpkgs/pkgs/development/python-modules/ipympl/default.nix
index 44c8c7bfd061..2d25eb645bad 100644
--- a/nixpkgs/pkgs/development/python-modules/ipympl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipympl/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, ipywidgets, matplotlib }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, ipywidgets
+, matplotlib
+, jupyter-packaging
+}:
 
 buildPythonPackage rec {
   pname = "ipympl";
@@ -9,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "f0f1f356d8cb9d4fb51bb86dbbf837c190145316cb72f66081872ebc4d6db0a1";
   };
 
-  propagatedBuildInputs = [ ipywidgets matplotlib ];
+  propagatedBuildInputs = [ ipywidgets matplotlib jupyter-packaging ];
 
   # There are no unit tests in repository
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/irc/default.nix b/nixpkgs/pkgs/development/python-modules/irc/default.nix
index ed113dc6da64..60a960a204c4 100644
--- a/nixpkgs/pkgs/development/python-modules/irc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/irc/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
 , six, jaraco_logging, jaraco_text, jaraco_stream, pytz, jaraco_itertools
-, setuptools_scm, jaraco_collections, importlib-metadata, toml
+, setuptools-scm, jaraco_collections, importlib-metadata, toml
 }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "irc" ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     six
     importlib-metadata
diff --git a/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix b/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix
index db05436d04e6..746cd3ab8adf 100644
--- a/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/isbnlib/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "isbnlib";
-  version = "3.10.7";
+  version = "3.10.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gbMxV9qOLCpIH3rUceG1ds9ZUpjwOv1gyYL3GLkS3Ik=";
+    sha256 = "sha256-6kBu8uFDiKs5ZJXw9gTS08lstaJWuWvAVW3Ycc19x7Q=";
   };
 
   checkInputs = [
@@ -22,7 +22,13 @@ buildPythonPackage rec {
   # requires network connection
   doCheck = false;
 
-  pythonImportsCheck = [ "isbnlib" ];
+  pythonImportsCheck = [
+    "isbnlib"
+    "isbnlib.config"
+    "isbnlib.dev"
+    "isbnlib.dev.helpers"
+    "isbnlib.registry"
+  ];
 
   meta = with lib; {
     description = "Extract, clean, transform, hyphenate and metadata for ISBNs";
diff --git a/nixpkgs/pkgs/development/python-modules/iso8601/default.nix b/nixpkgs/pkgs/development/python-modules/iso8601/default.nix
index 783f6f1eb305..d0a74f400bba 100644
--- a/nixpkgs/pkgs/development/python-modules/iso8601/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iso8601/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -13,15 +13,18 @@ buildPythonPackage rec {
     sha256 = "8aafd56fa0290496c5edbb13c311f78fa3a241f0853540da09d9363eae3ebd79";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    py.test iso8601
-  '';
+  pytestFlagsArray = [ "iso8601" ];
 
-  meta = {
-    homepage = "https://bitbucket.org/micktwomey/pyiso8601/";
+  pythonImportsCheck = [ "iso8601" ];
+
+  meta = with lib; {
     description = "Simple module to parse ISO 8601 dates";
-    maintainers = with lib.maintainers; [ phreedom ];
+    homepage = "https://pyiso8601.readthedocs.io/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/isort/4.nix b/nixpkgs/pkgs/development/python-modules/isort/4.nix
index b2ef4e66f361..5da9a5c6b306 100644
--- a/nixpkgs/pkgs/development/python-modules/isort/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/isort/4.nix
@@ -38,6 +38,6 @@ in buildPythonPackage rec {
     description = "A Python utility / library to sort Python imports";
     homepage = "https://github.com/timothycrosley/isort";
     license = licenses.mit;
-    maintainers = with maintainers; [ couchemar nand0p ];
+    maintainers = with maintainers; [ couchemar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/isort/default.nix b/nixpkgs/pkgs/development/python-modules/isort/default.nix
index bc11697339e8..1195f0f6b097 100644
--- a/nixpkgs/pkgs/development/python-modules/isort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/isort/default.nix
@@ -72,6 +72,6 @@ in buildPythonPackage rec {
     description = "A Python utility / library to sort Python imports";
     homepage = "https://github.com/PyCQA/isort";
     license = licenses.mit;
-    maintainers = with maintainers; [ couchemar nand0p ];
+    maintainers = with maintainers; [ couchemar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/itypes/default.nix b/nixpkgs/pkgs/development/python-modules/itypes/default.nix
index 1b6845472404..36581bf2db50 100644
--- a/nixpkgs/pkgs/development/python-modules/itypes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/itypes/default.nix
@@ -26,6 +26,6 @@ buildPythonPackage rec {
     description = "Simple immutable types for python";
     homepage = "https://github.com/tomchristie/itypes";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ivegotasthma ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
index 9054f1f109c5..a727e774ec30 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_classes/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27
-, setuptools_scm, toml
+, setuptools-scm, toml
 , more-itertools
 , pytestCheckHook
 }:
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm toml ];
 
   propagatedBuildInputs = [ more-itertools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
index eac4e2ca328a..17bb30e1352a 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm
+{ buildPythonPackage, fetchPypi, setuptools-scm
 , six, jaraco_classes, jaraco_text
 }:
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "jaraco" ];
 
   doCheck = false;
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six jaraco_classes jaraco_text ];
 
   # break dependency cycle
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix b/nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix
index e0bbde47d250..e10a11018a5d 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm
+, setuptools-scm
 , more-itertools, backports_functools_lru_cache }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
 
   meta = with lib; {
     description = "Additional functools in the spirit of stdlib's functools";
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
index 3fa4de9f3d95..534b18764f33 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm, toml
+, setuptools-scm, toml
 , more-itertools, backports_functools_lru_cache }:
 
 buildPythonPackage rec {
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "97cf88b46ab544c266e2d81fa17bb183622268722a7dd1a3711ea426e9c26f94";
   };
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm toml ];
 
   propagatedBuildInputs = [ more-itertools backports_functools_lru_cache ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix
index 91bb83fdb5a4..9b34a4c441d4 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm
 , inflect, more-itertools, six, pytest
 }:
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   pythonNamespaces = [ "jaraco" ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ inflect more-itertools six ];
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix
index e378240e6ccc..d8ff10d95b62 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm
 , tempora, six
 }:
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   pythonNamespaces = [ "jaraco" ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ tempora six ];
 
   # test no longer packaged with pypi
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix b/nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix
index e1737083c86c..1f5a70477a3f 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm, six }:
+{ buildPythonPackage, fetchPypi, setuptools-scm, six }:
 
 buildPythonPackage rec {
   pname = "jaraco.stream";
@@ -8,6 +8,6 @@ buildPythonPackage rec {
     sha256 = "196synw4g76yagcflmavi7wakf5cdgsflmvbj7zs616gv03xbsf2";
   };
   doCheck = false;
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six ];
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_stream/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_stream/default.nix
index f62cb1db8ba8..367959e37ff9 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_stream/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_stream/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm, six }:
+{ buildPythonPackage, fetchPypi, setuptools-scm, six }:
 
 buildPythonPackage rec {
   pname = "jaraco.stream";
@@ -12,6 +12,6 @@ buildPythonPackage rec {
   pythonNamespaces = [ "jaraco" ];
 
   doCheck = false;
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six ];
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix
index fb945d5b3f6f..3126ab999674 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_text/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder
 , importlib-resources
 , jaraco_functools
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   pythonNamespaces = [ "jaraco" ];
 
-  nativeBuildInputs =[ setuptools_scm ];
+  nativeBuildInputs =[ setuptools-scm ];
   propagatedBuildInputs = [
     jaraco_functools
   ] ++ lib.optional (pythonOlder "3.7") [ importlib-resources ];
diff --git a/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
index 460b0cddf616..a8ce23d371f8 100644
--- a/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/johnnycanencrypt/default.nix
@@ -37,9 +37,7 @@ buildPythonPackage rec {
 
   patches = [ ./Cargo.lock.patch ];
 
-  cargoSha256 = "0ifvpdizcdp2c5x2x2j1bhhy5a75q0pk7a63dmh52mlpmh45fy6r";
-
-  LIBCLANG_PATH = llvmPackages.libclang + "/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   propagatedBuildInputs = [
     requests
diff --git a/nixpkgs/pkgs/development/python-modules/jq/default.nix b/nixpkgs/pkgs/development/python-modules/jq/default.nix
index efc1152678f3..f9f71a587ab9 100644
--- a/nixpkgs/pkgs/development/python-modules/jq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jq/default.nix
@@ -2,14 +2,17 @@
 
 buildPythonPackage rec {
   pname = "jq";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "77e747c6ad10ce65479f5f9064ab036483bf307bf71fdd7d6235ef895fcc506e";
+    sha256 = "1ryxcll7601ki9rwlnryhhxpmwwnxs2qxq7kjm2b0xcqgzx1vv7r";
   };
 
-  patches = [ ./jq-py-setup.patch ];
+  patches = [
+    # Removes vendoring
+    ./jq-py-setup.patch
+  ];
 
   buildInputs = [ jq ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch b/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch
index df5245a0c3b5..cf8713796751 100644
--- a/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch
+++ b/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch
@@ -1,17 +1,17 @@
-From 968ddf2bd773e800e46737fced743bd00af9aa0d Mon Sep 17 00:00:00 2001
-From: William Kral <william.kral@gmail.com>
-Date: Tue, 8 Sep 2020 22:04:24 -0700
-Subject: [PATCH] Vastly simplify setup.py for distro compatibility
+From bef841b73ba7c9a79211146798ac888fce9bb55a Mon Sep 17 00:00:00 2001
+From: "Robert T. McGibbon" <rmcgibbo@gmail.com>
+Date: Fri, 7 May 2021 19:14:20 -0400
+Subject: [PATCH 1/1] Vastly simplify setup.py for distro compatibility
 
 ---
- setup.py | 101 ++-----------------------------------------------------
- 1 file changed, 2 insertions(+), 99 deletions(-)
+ setup.py | 98 +-------------------------------------------------------
+ 1 file changed, 1 insertion(+), 97 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index cb63f60..87380ed 100644
+index 663792c..3ebcabe 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -1,114 +1,19 @@
+@@ -1,113 +1,19 @@
  #!/usr/bin/env python
  
  import os
@@ -79,8 +79,7 @@ index cb63f60..87380ed 100644
 -            tarball_path=jq_lib_tarball_path,
 -            lib_dir=jq_lib_dir,
 -            commands=[
--                ["autoreconf", "-i"],
--                ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir],
+-                ["./configure", "CFLAGS=-fPIC -pthread", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir],
 -                ["make"],
 -            ])
 -
@@ -93,7 +92,7 @@ index cb63f60..87380ed 100644
 -
 -        macosx_deployment_target = sysconfig.get_config_var("MACOSX_DEPLOYMENT_TARGET")
 -        if macosx_deployment_target:
--            os.environ['MACOSX_DEPLOYMENT_TARGET'] = macosx_deployment_target
+-            os.environ['MACOSX_DEPLOYMENT_TARGET'] = str(macosx_deployment_target)
 -
 -        def run_command(args):
 -            print("Executing: %s" % ' '.join(args))
@@ -127,21 +126,19 @@ index cb63f60..87380ed 100644
  )
  
  setup(
-@@ -120,8 +25,7 @@ setup(
-     url='http://github.com/mwilliamson/jq.py',
+@@ -120,7 +26,6 @@ setup(
      python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
      license='BSD 2-Clause',
--    ext_modules = [jq_extension],
+     ext_modules = [jq_extension],
 -    cmdclass={"build_ext": jq_build_ext},
-+    ext_modules=[jq_extension],
      classifiers=[
          'Development Status :: 5 - Production/Stable',
          'Intended Audience :: Developers',
-@@ -137,4 +41,3 @@ setup(
-         'Programming Language :: Python :: 3.8',
+@@ -137,4 +42,3 @@ setup(
+         'Programming Language :: Python :: 3.9',
      ],
  )
 -
 -- 
-2.28.0
+2.29.3
 
diff --git a/nixpkgs/pkgs/development/python-modules/json-logging/default.nix b/nixpkgs/pkgs/development/python-modules/json-logging/default.nix
new file mode 100644
index 000000000000..1f4425a3e112
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/json-logging/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, pytestCheckHook
+, wheel
+, flask
+, sanic
+, fastapi
+, uvicorn
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "json-logging";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "bobbui";
+    repo = "json-logging-python";
+    rev = version;
+    hash = "sha256-0eIhOi30r3ApyVkiBdTQps5tNj7rI+q8TjNWxTnhtMQ=";
+  };
+  patches = [
+    # Fix tests picking up test modules instead of real packages.
+    (fetchpatch {
+      url = "https://github.com/bobbui/json-logging-python/commit/6fdb64deb42fe48b0b12bda0442fd5ac5f03107f.patch";
+      sha256 = "sha256-BLfARsw2FdvY22NCaFfdFgL9wTmEZyVIi3CQpB5qU0Y=";
+    })
+  ];
+
+  # - Quart is not packaged for Nixpkgs.
+  checkInputs = [ wheel flask /*quart*/ sanic fastapi uvicorn requests pytestCheckHook ];
+  disabledTests = [ "quart" ];
+  # Tests spawn servers and try to connect to them.
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "Python library to emit logs in JSON format";
+    longDescription = ''
+      Python logging library to emit JSON log that can be easily indexed and searchable by logging infrastructure such as ELK, EFK, AWS Cloudwatch, GCP Stackdriver.
+    '';
+    homepage = "https://github.com/bobbui/json-logging-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
index 78d2a5f6c8ce..a91e6b3accd2 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
-, setuptools_scm
+, setuptools-scm
 , toml
 , importlib-metadata
 }:
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
     toml
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jsonref/default.nix b/nixpkgs/pkgs/development/python-modules/jsonref/default.nix
index 3154f63f3181..2ab8ec45a701 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonref/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonref/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     description = "An implementation of JSON Reference for Python";
     homepage    = "https://github.com/gazpachoking/jsonref";
     license     = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix b/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix
index d90040c4269f..583936255fde 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix
@@ -6,7 +6,7 @@
 , nose
 , pyperf
 , pyrsistent
-, setuptools_scm
+, setuptools-scm
 , twisted
 , vcversioner
 }:
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     sha256 = "c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ attrs importlib-metadata functools32 pyrsistent ];
   checkInputs = [ nose mock pyperf twisted vcversioner ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jsonstreams/default.nix b/nixpkgs/pkgs/development/python-modules/jsonstreams/default.nix
index 9042498664a8..82152a8d112c 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonstreams/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonstreams/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "jsonstreams";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "dcbaker";
     repo = pname;
     rev = version;
-    sha256 = "0c85fdqkj5k4b0v0ngx2d9qbmzdsvglh4j9k9h7508bvn7l8fa4b";
+    sha256 = "0qw74wz9ngz9wiv89vmilbifsbvgs457yn1bxnzhrh7g4vs2wcav";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix
index cff5dc194aa4..cdd0485b6843 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_core/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , ipython
 , traitlets
 , glibcLocales
@@ -12,6 +13,7 @@
 buildPythonPackage rec {
   pname = "jupyter_core";
   version = "4.7.1";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
index 50f193c2058c..f90c521b553b 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_server/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
@@ -71,8 +72,13 @@ buildPythonPackage rec {
     "test_list_formats"
     "test_base_url"
     "test_culling"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # attempts to use trashcan, build env doesn't allow this
+    "test_delete"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications.";
     homepage = "https://github.com/jupyter-server/jupyter_server";
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
index c110cc0590fe..d5d1318ed63c 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -41,6 +41,8 @@ buildPythonPackage rec {
     "test_get_language_pack"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "JupyterLab Server";
     homepage = "https://jupyter.org";
diff --git a/nixpkgs/pkgs/development/python-modules/jupytext/default.nix b/nixpkgs/pkgs/development/python-modules/jupytext/default.nix
index eedfcfbcb6e9..0b893f7776a2 100644
--- a/nixpkgs/pkgs/development/python-modules/jupytext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupytext/default.nix
@@ -1,39 +1,54 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, GitPython
+, jupyter-packaging
+, jupyter_client
+, jupyterlab
 , markdown-it-py
+, mdit-py-plugins
 , nbformat
-, pytest
+, notebook
+, pytestCheckHook
 , pyyaml
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.11.0";
+  version = "1.11.2";
+  format = "pyproject";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9062d001baaa32430fbb94a2c9394ac906db0a58da94e7aa4e414b73fd7d51bc";
+  src = fetchFromGitHub {
+    owner = "mwouts";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-S2SKAC2oT4VIVMMDbu/Puo87noAgnQs1hh88JphutA8=";
   };
 
+  buildInputs = [ jupyter-packaging jupyterlab ];
   propagatedBuildInputs = [
     markdown-it-py
+    mdit-py-plugins
     nbformat
     pyyaml
     toml
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
+    GitPython
+    jupyter_client
+    notebook
   ];
-
-  # requires test notebooks which are not shipped with the pypi release
-  # also, pypi no longer includes tests
-  doCheck = false;
-  checkPhase = ''
-    pytest
-  '';
+  # Tests that use a Jupyter notebook require $HOME to be writable.
+  HOME = "$TMPDIR";
+  # Pre-commit tests expect the source directory to be a Git repository.
+  pytestFlagsArray = [ "--ignore-glob='tests/test_pre_commit_*.py'" ];
+  pythonImportsCheck = [ "jupytext" "jupytext.cli" ];
 
   meta = with lib; {
     description = "Jupyter notebooks as Markdown documents, Julia, Python or R scripts";
diff --git a/nixpkgs/pkgs/development/python-modules/jxmlease/default.nix b/nixpkgs/pkgs/development/python-modules/jxmlease/default.nix
new file mode 100644
index 000000000000..727548f21d50
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jxmlease/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, lxml
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "jxmlease";
+  version = "1.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17l3w3ak07p72s8kv8hg0ilxs0kkxjn7bfwnl3g2cw58v1siab31";
+  };
+
+  propagatedBuildInputs = [
+    lxml
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover -v
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Converts between XML and intelligent Python data structures";
+    homepage = "https://github.com/Juniper/jxmlease";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix b/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix
index f62e602896b3..6edafea1d560 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix
@@ -7,24 +7,19 @@
 
 buildPythonPackage rec {
   pname = "karton-asciimagic";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yvd0plpwy5qkd2jljpd6wm6dlj2g8csvj1q2md23vsgx7h7v2vm";
+    sha256 = "0vj4b8man81g99g4c53zyvp1gc47c2imj5ha9r4z4bf8gs3aqsv6";
   };
 
   propagatedBuildInputs = [
     karton-core
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "karton.core==4.0.5" "karton-core"
-  '';
-
   checkPhase = ''
     runHook preCheck
     ${python.interpreter} -m unittest discover
diff --git a/nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix b/nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix
new file mode 100644
index 000000000000..e675c055d786
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, autoit-ripper
+, buildPythonPackage
+, fetchFromGitHub
+, karton-core
+, malduck
+, regex
+}:
+
+buildPythonPackage rec {
+  pname = "karton-autoit-ripper";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "CERT-Polska";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1bsqpf9w6d9fjysmnafaglg2w41gsafs2xz4dzcgc7n92shpcs8w";
+  };
+
+  propagatedBuildInputs = [
+    autoit-ripper
+    karton-core
+    malduck
+    regex
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "autoit-ripper==1.0.0" "autoit-ripper" \
+      --replace "malduck==3.1.0" "malduck>=3.1.0" \
+      --replace "regex==2020.2.20" "regex>=2020.2.20"
+  '';
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "karton.autoit_ripper" ];
+
+  meta = with lib; {
+    description = "AutoIt script ripper for Karton framework";
+    homepage = "https://github.com/CERT-Polska/karton-autoit-ripper";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix b/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix
index a623486f03cf..ea9710ecd311 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "karton-classifier";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05pxv0smrzgmljykc6yx0rx8b85ck7fa09xjkjw0dd7lb6bb19a6";
+    sha256 = "0s09mzsw546klnvm59wzj9vdwd2hyzgxvapi20k86q3prs9ncds6";
   };
 
   propagatedBuildInputs = [
@@ -27,7 +27,6 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace requirements.txt \
       --replace "chardet==3.0.4" "chardet" \
-      --replace "karton-core==4.0.4" "karton-core" \
       --replace "python-magic==0.4.18" "python-magic"
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix b/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix
index bb2b9d4903b9..71170ac5342e 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "karton-config-extractor";
-  version = "1.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1v0zqa81yjz6hm17x9hp0iwkllymqzn84dd6r2yrhillbwnjg9bb";
+    sha256 = "1kq0gbfz9y0n0bcblyrmwv4la3lcf86lf80794sdvyvn49g0brny";
   };
 
   propagatedBuildInputs = [
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "karton.core==4.0.5" "karton-core"
+      --replace "malduck==4.1.0" "malduck"
   '';
 
   # Project has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix b/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix
index c82cb8957826..3ec455a8aceb 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "karton-dashboard";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "101qmx6nmiim0vrz2ldk973ns498hnxla1xy7nys9kh9wijg4msk";
+    sha256 = "0qygv9lkd1jad5b4l0zz6hsi7m8q0fmpwaa6hpp7p9x6ql7gnyl8";
   };
 
   propagatedBuildInputs = [
@@ -27,8 +27,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "Flask==1.1.1" "Flask" \
-      --replace "karton-core==4.1.0" "karton-core"
+      --replace "Flask==1.1.1" "Flask"
   '';
 
   # Project has no tests. pythonImportsCheck requires MinIO configuration
diff --git a/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix b/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
index 68b28bffe6fa..65bb683be2b8 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "karton-mwdb-reporter";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ks8jrc4v87q6zhwqg40w6xv2wfkzslmnfmsmmkfjj8mak8nk70f";
+    sha256 = "0jrn5c83nhcjny4bc879wrsgcr7mbazm51jzdkxmxyqf543cc841";
   };
 
   propagatedBuildInputs = [
@@ -23,8 +23,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "karton-core==4.0.4" "karton-core" \
-      --replace "mwdblib==3.3.1" "mwdblib"
+      --replace "mwdblib==3.4.0" "mwdblib"
   '';
 
   # Project has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix b/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix
index afe6f2aaa443..6183e9500059 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "karton-yaramatcher";
-  version = "1.0.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "093h5hbx2ss4ly523gvf10a5ky3vvin6wipigvhx13y1rdxl6c9n";
+    sha256 = "0mv8v1gk6p21pw9kx6cxr76l6c5fxd3p6dk85cwfzz100h8mdvar";
   };
 
   propagatedBuildInputs = [
@@ -22,12 +22,6 @@ buildPythonPackage rec {
     yara-python
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "karton-core==4.0.5" "karton-core" \
-      --replace "yara-python==4.0.2" "yara-python" \
-  '';
-
   checkPhase = ''
     runHook preCheck
     ${python.interpreter} -m unittest discover
diff --git a/nixpkgs/pkgs/development/python-modules/keyring/2.nix b/nixpkgs/pkgs/development/python-modules/keyring/2.nix
index ee3b42b9bb85..553b649b6382 100644
--- a/nixpkgs/pkgs/development/python-modules/keyring/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyring/2.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPythonPackage, fetchPypi
-, dbus-python, setuptools_scm, entrypoints, secretstorage
+, dbus-python, setuptools-scm, entrypoints, secretstorage
 , pytest, pytest-flake8 }:
 
 buildPythonPackage rec {
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "0f58jq58jhfzlhix7x2zz7c4ycdvcs1z3sgs4lkr4xxx680wrmk7";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ pytest pytest-flake8 ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix b/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix
index 5b53d201a0b6..abcd04a1d307 100644
--- a/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyrings-alt/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder, isPy27, six
-, pytest, backports_unittest-mock, keyring, setuptools_scm, toml
+, pytest, backports_unittest-mock, keyring, setuptools-scm, toml
 }:
 
 buildPythonPackage rec {
@@ -17,7 +17,7 @@ buildPythonPackage rec {
       --replace "--flake8" ""
   '';
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm toml ];
   propagatedBuildInputs = [ six ];
 
   checkInputs = [ pytest keyring ] ++ lib.optional (pythonOlder "3.3") backports_unittest-mock;
diff --git a/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix b/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix
new file mode 100644
index 000000000000..7f2cacea6294
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, argon2_cffi
+, keyring
+, pycryptodome
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "keyrings.cryptfile";
+  # NOTE: newer releases are bugged/incompatible
+  # https://github.com/frispete/keyrings.cryptfile/issues/15
+  version = "1.3.4";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-jW+cKMm+xef8C+fl0CGe+6SEkYBHDjFX2/kLCZ62j6c=";
+  };
+
+  patches = [
+    # upstream setup.cfg has an option that is not supported
+    ./fix-testsuite.patch
+    # change of API in keyrings.testing
+    (fetchpatch {
+      url = "https://github.com/frispete/keyrings.cryptfile/commit/6fb9e45f559b8b69f7a0a519c0bece6324471d79.patch";
+      sha256 = "sha256-1878pMO9Ed1zs1pl+7gMjwx77HbDHdE1CryN8TPfPdU=";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    argon2_cffi
+    keyring
+    pycryptodome
+  ];
+
+  pythonImportsCheck = [
+    "keyrings.cryptfile"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_set_properties"
+    "UncryptedFileKeyringTestCase"
+  ];
+
+  meta = with lib; {
+    description = "Encrypted file keyring backend";
+    homepage = "https://github.com/frispete/keyrings.cryptfile";
+    license = licenses.mit;
+    maintainers = teams.chia.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/fix-testsuite.patch b/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/fix-testsuite.patch
new file mode 100644
index 000000000000..8e32a64e5292
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/fix-testsuite.patch
@@ -0,0 +1,14 @@
+diff --git a/setup.cfg b/setup.cfg
+index ec7eb30..7ffd831 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -5,9 +5,6 @@ dists = clean --all sdist bdist_wheel
+ [wheel]
+ universal = 1
+ 
+-[tool:pytest]
+-addopts = -s --cov=keyrings/cryptfile
+-
+ [egg_info]
+ tag_build = 
+ tag_date = 0
diff --git a/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix b/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
index 0702e3518e01..762b5bc0b7b3 100644
--- a/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
+++ b/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75";
   };
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   # Does not include tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
index d4d62787092b..2b157494f919 100644
--- a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "950a199911a8d94683a6b10321f9345d5a3a8433ec58b217ace979e18f16e248";
   };
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   nativeBuildInputs = [
     cppy
diff --git a/nixpkgs/pkgs/development/python-modules/kmapper/default.nix b/nixpkgs/pkgs/development/python-modules/kmapper/default.nix
index 6c173661084c..87f22172c495 100644
--- a/nixpkgs/pkgs/development/python-modules/kmapper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kmapper/default.nix
@@ -1,11 +1,11 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, scikitlearn
+, fetchFromGitHub
+, scikit-learn
 , numpy
 , scipy
 , jinja2
-, pytest
+, pytestCheckHook
 , networkx
 , matplotlib
 , python-igraph
@@ -17,20 +17,22 @@ buildPythonPackage rec {
   pname = "kmapper";
   version = "2.0.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "3708d889f96f6bbe89c52000dd9378ca4c35638180ff894b64ebbdfcfe62aab2";
+  src = fetchFromGitHub {
+    owner = "scikit-tda";
+    repo = "kepler-mapper";
+    rev = "v${version}";
+    sha256 = "0djm27si2bn18khrbb7rwhflc5ma6g9smhikhk5i1apwn5avm6l4";
   };
 
   propagatedBuildInputs = [
-    scikitlearn
+    scikit-learn
     numpy
     scipy
     jinja2
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     networkx
     matplotlib
     python-igraph
@@ -38,10 +40,6 @@ buildPythonPackage rec {
     ipywidgets
   ];
 
-  checkPhase = ''
-    pytest test --ignore test/test_drawing.py
-  '';
-
   meta = with lib; {
     description = "Python implementation of Mapper algorithm for Topological Data Analysis";
     homepage = "https://kepler-mapper.scikit-tda.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/knack/default.nix b/nixpkgs/pkgs/development/python-modules/knack/default.nix
index 0b4c24afa4dc..5a05449e610b 100644
--- a/nixpkgs/pkgs/development/python-modules/knack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/knack/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "knack";
-  version = "0.8.0";
+  version = "0.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16aa47240add6badd933a0b27576f3c090d7469177dc941e3ece05ca88123199";
+    sha256 = "4eaa50a1c5e79d1c5c8e5e1705b661721b0b83a089695e59e229cc26c64963b9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
index ce7cff4d79b8..957b8ad5fd1f 100644
--- a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
@@ -1,38 +1,67 @@
 { lib
+, backoff
+, backports-datetime-fromisoformat
 , buildPythonPackage
-, fetchPypi
-, requests
+, dataclasses
+, fetchFromGitHub
+, google-api-core
 , jinja2
+, ndjson
 , pillow
+, pydantic
+, pytest-cases
+, pytestCheckHook
+, pythonOlder
 , rasterio
+, requests
 , shapely
-, ndjson
-, backoff
-, google-api-core
-, backports-datetime-fromisoformat
 }:
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.5.1";
+  version = "2.5.4";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7f2cbc5d4869d8acde865ad519fc1cc85338247cd7cf534334f988a040679219";
+  src = fetchFromGitHub {
+    owner = "Labelbox";
+    repo = "labelbox-python";
+    rev = "v${version}";
+    sha256 = "0182klvm8bjcm8fkl9w8ypj12s026czgid8ldl6jjvmzhxpmss68";
   };
 
   propagatedBuildInputs = [
-    jinja2 requests pillow rasterio shapely ndjson backoff
-    google-api-core backports-datetime-fromisoformat
+    backoff
+    backports-datetime-fromisoformat
+    dataclasses
+    google-api-core
+    jinja2
+    ndjson
+    pillow
+    pydantic
+    rasterio
+    requests
+    shapely
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "pydantic==1.8" "pydantic>=1.8"
+  '';
+
+  checkInputs = [
+    pytest-cases
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Requires network access
+    "tests/integration"
   ];
 
-  # Test cases are not running on pypi or GitHub
-  doCheck = false;
   pythonImportsCheck = [ "labelbox" ];
 
   meta = with lib; {
-    homepage = "https://github.com/Labelbox/Labelbox";
     description = "Platform API for LabelBox";
+    homepage = "https://github.com/Labelbox/labelbox-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ rakesh4g ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
index d8996a153e64..9f787563e5a4 100644
--- a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
@@ -1,35 +1,38 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, python
 , regex
-  # Test inputs
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "lark-parser";
-  version = "0.11.2";
+  version = "0.11.3";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "1v1piaxpz4780km2z5i6sr9ygi9wpn09yyh999b3f4y0dcz20pbd";
+    sha256 = "1ggvlzpdzlrxl46fgi8cfq2rzlwn21shpdkm4pknnhfjlsinv913";
   };
 
+  # Optional import, but fixes some re known bugs & allows advanced regex features
   propagatedBuildInputs = [ regex ];
 
-  checkInputs = [ pytestCheckHook ];
-  disabledTestPaths = [
-    "tests/test_nearley" # requires Js2Py package (not in nixpkgs)
-  ];
-  disabledTests = [
-    "test_override_rule"  # has issue with file access paths
-  ];
+  checkPhase = ''
+    runHook preCheck
+
+    # Official way to run the tests. Runs unittest internally.
+    # pytest produces issues with some test resource paths (relies on __main__)
+    ${python.interpreter} -m tests
+
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "A modern parsing library for Python, implementing Earley & LALR(1) and an easy interface";
-    homepage = "https://github.com/lark-parser/lark";
+    homepage = "https://lark-parser.readthedocs.io/";
+    changelog = "https://github.com/lark-parser/lark/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fridh drewrisinger ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
index 9eaae90f46ed..09232cbc6242 100644
--- a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/ldaptor/19.nix b/nixpkgs/pkgs/development/python-modules/ldaptor/19.nix
new file mode 100644
index 000000000000..cca696f1dff0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ldaptor/19.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, twisted
+, passlib
+, pyopenssl
+, pyparsing
+, service-identity
+, zope_interface
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "ldaptor";
+  version = "19.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "64c7b870c77e34e4f5f9cfdf330b9702e89b4dd0f64275704f86c1468312c755";
+  };
+
+  propagatedBuildInputs = [
+    twisted passlib pyopenssl pyparsing service-identity zope_interface
+  ];
+
+  disabled = isPy3k;
+
+  doCheck = false;
+
+  meta = {
+    description = "A Pure-Python Twisted library for LDAP";
+    homepage = "https://github.com/twisted/ldaptor";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
index edea85876a84..a48d70c544c3 100644
--- a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, python, fetchFromGitHub
-, cmake, sip, protobuf, pythonOlder }:
+, cmake, sip_4, protobuf, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "libarcus";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.4.0";
 
-  propagatedBuildInputs = [ sip ];
+  propagatedBuildInputs = [ sip_4 ];
   nativeBuildInputs = [ cmake ];
   buildInputs = [ protobuf ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/liblarch/default.nix b/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
index 5ff8d25d54b5..957d37f2176a 100644
--- a/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
@@ -3,7 +3,7 @@
 , buildPythonPackage
 , python
 , pygobject3
-, xvfb_run
+, xvfb-run
 , gobject-introspection
 , gtk3
 , pythonOlder
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   checkPhase = ''
     runHook preCheck
-    ${xvfb_run}/bin/xvfb-run -s '-screen 0 800x600x24' \
+    ${xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' \
       ${python.interpreter} nix_run_setup test
     runHook postCheck
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/librosa/default.nix b/nixpkgs/pkgs/development/python-modules/librosa/default.nix
index ce8f2a73fa7f..45f6bffd661c 100644
--- a/nixpkgs/pkgs/development/python-modules/librosa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/librosa/default.nix
@@ -4,7 +4,7 @@
 , joblib
 , matplotlib
 , six
-, scikitlearn
+, scikit-learn
 , decorator
 , audioread
 , resampy
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     sha256 = "af0b9f2ed4bbf6aecbc448a4cd27c16453c397cb6bef0f0cfba0e63afea2b839";
   };
 
-  propagatedBuildInputs = [ joblib matplotlib six scikitlearn decorator audioread resampy soundfile pooch ];
+  propagatedBuildInputs = [ joblib matplotlib six scikit-learn decorator audioread resampy soundfile pooch ];
 
   # No tests
   # 1. Internet connection is required
diff --git a/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix b/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
index f6aa1b378f58..7ecd09160fff 100644
--- a/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, pythonOlder, fetchFromGitHub, cmake, sip }:
+{ lib, buildPythonPackage, python, pythonOlder, fetchFromGitHub, cmake, sip_4 }:
 
 buildPythonPackage rec {
   pname = "libsavitar";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ cmake ];
 
-  propagatedBuildInputs = [ sip ];
+  propagatedBuildInputs = [ sip_4 ];
 
   disabled = pythonOlder "3.4.0";
 
diff --git a/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
index 1018ceaec4b2..fbe9e04b6438 100644
--- a/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightgbm/default.nix
@@ -4,7 +4,7 @@
 , cmake
 , numpy
 , scipy
-, scikitlearn
+, scikit-learn
 , llvmPackages ? null
 }:
 
@@ -23,35 +23,22 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  # we never actually explicitly call the install command so this is the only way
-  # to inject these options to it - however, openmp-library doesn't appear to have
-  # any effect, so we have to inject it into NIX_LDFLAGS manually below
-  postPatch = lib.optionalString stdenv.cc.isClang ''
-    cat >> setup.cfg <<EOF
-
-    [install]
-    openmp-include-dir=${llvmPackages.openmp}/include
-    openmp-library=${llvmPackages.openmp}/lib/libomp.dylib
-
-    EOF
-  '';
-
+  buildInputs = lib.optional stdenv.cc.isClang [ llvmPackages.openmp ];
   propagatedBuildInputs = [
     numpy
     scipy
-    scikitlearn
+    scikit-learn
   ];
 
   postConfigure = ''
     export HOME=$(mktemp -d)
-  '' + lib.optionalString stdenv.cc.isClang ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -L${llvmPackages.openmp}/lib -lomp"
   '';
 
   # The pypi package doesn't distribute the tests from the GitHub
   # repository. It contains c++ tests which don't seem to wired up to
   # `make check`.
   doCheck = false;
+  pythonImportsCheck = [ "lightgbm" ];
 
   meta = with lib; {
     description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
diff --git a/nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix b/nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix
new file mode 100644
index 000000000000..b9511bd5f35b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, uc-micro-py
+}:
+
+buildPythonPackage rec {
+  pname = "linkify-it-py";
+  version = "1.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "tsutsu3";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-gd51no6VqvIiW9fbCdp30zHG/us6by7FLHV2ul/XJAM=";
+  };
+
+  propagatedBuildInputs = [ uc-micro-py ];
+
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "linkify_it" ];
+
+  meta = with lib; {
+    description = "Links recognition library with full unicode support";
+    homepage = "https://github.com/tsutsu3/linkify-it-py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix b/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix
index ecf5990e74bc..4b2decb9550c 100644
--- a/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/liquidctl/default.nix
@@ -2,40 +2,61 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, installShellFiles
 , docopt
 , hidapi
 , pyusb
 , smbus-cffi
+, i2c-tools
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "liquidctl";
-  version = "1.5.1";
+  version = "1.6.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1l6cvm8vs2gkmg4qwg5m5vqjql1gah2vd9vs7pcj2v5hf0cm5v9x";
+    sha256 = "sha256-FYpr1mYzPc0rOE75fUNjxe/57EWl+zcbIbkqFseDhzI=";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   propagatedBuildInputs = [
     docopt
     hidapi
     pyusb
     smbus-cffi
+    i2c-tools
   ];
 
-  # does not contain tests
-  doCheck = false;
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    installManPage liquidctl.8
+    installShellCompletion extra/completions/liquidctl.bash
+
+    mkdir -p $out/lib/udev/rules.d
+    cp extra/linux/71-liquidctl.rules $out/lib/udev/rules.d/.
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  postBuild = ''
+    # needed for pythonImportsCheck
+    export XDG_RUNTIME_DIR=$TMPDIR
+  '';
+
   pythonImportsCheck = [ "liquidctl" ];
 
   meta = with lib; {
     description = "Cross-platform CLI and Python drivers for AIO liquid coolers and other devices";
     homepage    = "https://github.com/liquidctl/liquidctl";
     changelog   = "https://github.com/liquidctl/liquidctl/blob/master/CHANGELOG.md";
-    license     = licenses.gpl3;
-    maintainers = with maintainers; [ arturcygan ];
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ arturcygan evils ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
index b5e6847a9f0c..c7d2221a22e2 100644
--- a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
   # Set directory containing llvm-config binary
   preConfigure = ''
-    export LLVM_CONFIG=${llvm}/bin/llvm-config
+    export LLVM_CONFIG=${llvm.dev}/bin/llvm-config
   '';
   checkPhase = ''
     ${python.executable} runtests.py
diff --git a/nixpkgs/pkgs/development/python-modules/lmdb/default.nix b/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
index fc7748765f31..3e78626238a7 100644
--- a/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
@@ -4,22 +4,19 @@
 , pytestCheckHook
 , cffi
 , lmdb
-, ludios_wpull
 }:
 
 buildPythonPackage rec {
   pname = "lmdb";
-  version = "1.1.1";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "165cd1669b29b16c2d5cc8902b90fede15a7ee475c54d466f1444877a3f511ac";
+    sha256 = "5f76a90ebd08922acca11948779b5055f7a262687178e9e94f4e804b9f8465bc";
   };
 
   buildInputs = [ lmdb ];
 
-  propogatedBuildInputs = [ ludios_wpull ];
-
   checkInputs = [ cffi pytestCheckHook ];
 
   LMDB_FORCE_SYSTEM=1;
diff --git a/nixpkgs/pkgs/development/python-modules/localzone/default.nix b/nixpkgs/pkgs/development/python-modules/localzone/default.nix
index 0960a824817a..0fcf15fe9474 100644
--- a/nixpkgs/pkgs/development/python-modules/localzone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/localzone/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "localzone";
-  version = "0.9.7";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "ags-slc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vzn1vm3zf86l7qncbmghjrwyvla9dc2v8abn8jajbl47gm7r5f7";
+    sha256 = "1cbiv21yryjqy46av9hbjccks95sxznrx8nypd3yzihf1vkjiq5a";
   };
 
   propagatedBuildInputs = [ dnspython sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/locationsharinglib/default.nix b/nixpkgs/pkgs/development/python-modules/locationsharinglib/default.nix
new file mode 100644
index 000000000000..4baf8600ac76
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/locationsharinglib/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, betamax
+, buildPythonPackage
+, cachetools
+, coloredlogs
+, emoji
+, fetchPypi
+, nose
+, python
+, pythonOlder
+, pytz
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "locationsharinglib";
+  version = "4.1.6";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "092j8z01nwjqh5zr7aj8mxl1zjd3j2irhrs39dhn47bd6db2a6ij";
+  };
+
+  propagatedBuildInputs = [
+    coloredlogs
+    requests
+    cachetools
+    pytz
+  ];
+
+  checkInputs = [
+    betamax
+    emoji
+    nose
+  ];
+
+  postPatch = ''
+    # Tests requirements want to pull in multiple modules which we don't need
+    substituteInPlace setup.py \
+      --replace "tests_require=test_requirements" "tests_require=[]"
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    # Only coverage no real unit tests
+    ${python.interpreter} setup.py nosetests
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "locationsharinglib" ];
+
+  meta = with lib; {
+    description = "Python package to retrieve coordinates from a Google account";
+    homepage = "https://locationsharinglib.readthedocs.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mahotas/default.nix b/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
index 818ff459985c..707ad9f3c8f6 100644
--- a/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
@@ -1,26 +1,36 @@
-{ buildPythonPackage, fetchFromGitHub, nose, pillow, scipy, numpy, imread, lib, stdenv }:
+{ buildPythonPackage, fetchFromGitHub, pillow, scipy, numpy, pytestCheckHook, imread, freeimage, lib, stdenv }:
 
 buildPythonPackage rec {
   pname = "mahotas";
-  version = "1.4.10";
+  version = "1.4.11";
 
   src = fetchFromGitHub {
     owner = "luispedro";
     repo = "mahotas";
     rev = "v${version}";
-    sha256 = "0fjiyl82wj1a6xzr9mss2y2rydl4zchl2cbdbg0jm0fcrs99q4hw";
+    sha256 = "029gvy1fb855pvxvy8zwj44k4s7qpqi0161bg5wldfiprrysn1kw";
   };
 
-  # remove this as soon as https://github.com/luispedro/mahotas/issues/97 is fixed
-  patches = [ ./disable-impure-tests.patch ];
+  propagatedBuildInputs = [ numpy imread pillow scipy freeimage ];
+  checkInputs = [ pytestCheckHook ];
 
-  propagatedBuildInputs = [ numpy imread pillow scipy ];
-  checkInputs = [ nose ];
+  postPatch = ''
+    substituteInPlace mahotas/io/freeimage.py --replace "/opt/local/lib" "${freeimage}/lib"
+  '';
 
-  checkPhase= ''
-    python setup.py test
+  # tests must be run in the build directory
+  preCheck = ''
+    cd build/lib*
   '';
 
+  # re-enable as soon as https://github.com/luispedro/mahotas/issues/97 is fixed
+  disabledTests = [
+    "test_colors"
+    "test_ellipse_axes"
+    "test_normalize"
+    "test_haralick3d"
+  ];
+
   disabled = stdenv.isi686; # Failing tests
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/mahotas/disable-impure-tests.patch b/nixpkgs/pkgs/development/python-modules/mahotas/disable-impure-tests.patch
deleted file mode 100644
index f19bd329e662..000000000000
--- a/nixpkgs/pkgs/development/python-modules/mahotas/disable-impure-tests.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-diff --git a/mahotas/tests/test_colors.py b/mahotas/tests/test_colors.py
-index 8a8183b..0d34c9f 100644
---- a/mahotas/tests/test_colors.py
-+++ b/mahotas/tests/test_colors.py
-@@ -2,7 +2,9 @@ import mahotas
- import numpy as np
- from mahotas.tests.utils import luispedro_jpg
- from mahotas.colors import rgb2xyz, rgb2lab, xyz2rgb, rgb2grey, rgb2sepia
-+from nose.tools import nottest
- 
-+@nottest
- def test_colors():
-     f = luispedro_jpg()
-     lab = rgb2lab(f)
-diff --git a/mahotas/tests/test_features_shape.py b/mahotas/tests/test_features_shape.py
-index 462f467..2381793 100644
---- a/mahotas/tests/test_features_shape.py
-+++ b/mahotas/tests/test_features_shape.py
-@@ -2,6 +2,7 @@ import mahotas.features.shape
- import numpy as np
- import mahotas as mh
- from mahotas.features.shape import roundness, eccentricity
-+from nose.tools import nottest
- 
- def test_eccentricity():
-     D = mh.disk(32, 2)
-@@ -29,6 +30,7 @@ def test_zeros():
-     I[8:4:12] = 1
-     assert eccentricity(I) == 0
- 
-+@nottest
- def test_ellipse_axes():
-     Y,X = np.mgrid[:1024,:1024]
-     Y = Y/1024.
-diff --git a/mahotas/tests/test_moments.py b/mahotas/tests/test_moments.py
-index 686c7c3..ba3487b 100644
---- a/mahotas/tests/test_moments.py
-+++ b/mahotas/tests/test_moments.py
-@@ -1,6 +1,7 @@
- import numpy as np
- import mahotas as mh
- from mahotas.features.moments import moments
-+from nose.tools import nottest
- 
- def _slow(A, p0, p1, cm):
-     c0,c1 = cm
-@@ -28,7 +29,7 @@ def test_against_slow():
-     yield perform, 1, 2, (0, 0), A
-     yield perform, 1, 0, (0, 0), A
- 
--
-+@nottest
- def test_normalize():
-     A,B = np.meshgrid(np.arange(128),np.arange(128))
-     for p0,p1 in [(1,1), (1,2), (2,1), (2,2)]:
-diff --git a/mahotas/tests/test_texture.py b/mahotas/tests/test_texture.py
-index 7e101ba..af1305d 100644
---- a/mahotas/tests/test_texture.py
-+++ b/mahotas/tests/test_texture.py
-@@ -2,7 +2,7 @@ import numpy as np
- from mahotas.features import texture
- import mahotas as mh
- import mahotas.features._texture
--from nose.tools import raises
-+from nose.tools import raises, nottest
- 
- def test__cooccurence():
-     cooccurence = mahotas.features._texture.cooccurence
-@@ -149,6 +149,7 @@ def test_float_haralick():
-     A[2,2]=12
-     texture.haralick(A)
- 
-+@nottest
- def test_haralick3d():
-     np.random.seed(22)
-     img = mahotas.stretch(255*np.random.rand(20,20,4))
diff --git a/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix b/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix
index 219a9066dc74..a2e7898f049d 100644
--- a/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix
@@ -14,16 +14,6 @@ buildPythonPackage rec {
 
   LC_ALL = "en_US.utf-8";
 
-  # remove version bounds
-  prePatch = ''
-    sed -i -e 's/==.*//g' requirements.txt
-  ''
-  # ipaddress is part of the standard library of Python 3.3+
-  + lib.optionalString (!pythonOlder "3.3") ''
-    substituteInPlace requirements.txt \
-      --replace "ipaddress" ""
-  '';
-
   nativeBuildInputs = [ glibcLocales ];
   propagatedBuildInputs = [ simplejson six ] ++ lib.optional (pythonOlder "3.3") ipaddress;
 
diff --git a/nixpkgs/pkgs/development/python-modules/makefun/default.nix b/nixpkgs/pkgs/development/python-modules/makefun/default.nix
index 1f5596a46ccc..731226fdbfb3 100644
--- a/nixpkgs/pkgs/development/python-modules/makefun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/makefun/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "sha256-2qNQpILtWLVyREPGUUMhkem5ewyDdDh50JExccaigIU=";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # Disabling tests for now due to various (transitive) dependencies on modules
   # from @smarie which are, as of yet, not part of nixpkgs. Also introduces
diff --git a/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix b/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix
index c7a8a3e17f3e..322c4ac533d2 100644
--- a/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdown-it-py/default.nix
@@ -1,41 +1,36 @@
 { lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, pythonOlder
 , attrs
-, coverage
+, linkify-it-py
 , psutil
 , pytest-benchmark
+, pytest-regressions
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "markdown-it-py";
-  version = "0.6.2";
+  version = "1.0.0";
+  format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "executablebooks";
-    repo = "markdown-it-py";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "1g9p8pdnvjya436lii63r5gjajhmbhmyh9ngbjqf9dqny05nagz1";
+    hash = "sha256-GA7P2I8N+i2ISsVgx58zyhrfKMcZ7pL4X9T/trbsr1Y=";
   };
 
-  propagatedBuildInputs = [ attrs ];
+  propagatedBuildInputs = [ attrs linkify-it-py ]
+    ++ lib.optional (pythonOlder "3.8") typing-extensions;
 
   checkInputs = [
-    coverage
-    pytest-benchmark
     psutil
+    pytest-benchmark
+    pytest-regressions
     pytestCheckHook
   ];
-
-  disabledTests = [
-    # Requires the unpackaged pytest-regressions fixture plugin
-    "test_amsmath"
-    "test_container"
-    "test_deflist"
-    "test_dollarmath"
-    "test_spec"
-    "test_texmath"
-  ];
+  pytestImportsCheck = [ "markdown_it" ];
 
   meta = with lib; {
     description = "Markdown parser done right";
diff --git a/nixpkgs/pkgs/development/python-modules/mat2/default.nix b/nixpkgs/pkgs/development/python-modules/mat2/default.nix
index 0b097024a55f..6c1ba9a40c63 100644
--- a/nixpkgs/pkgs/development/python-modules/mat2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mat2/default.nix
@@ -3,6 +3,7 @@
 , python
 , pythonOlder
 , fetchFromGitLab
+, fetchpatch
 , substituteAll
 , bubblewrap
 , exiftool
@@ -49,6 +50,12 @@ buildPythonPackage rec {
     ./executable-name.patch
     # hardcode path to mat2 executable
     ./tests.patch
+    # remove for next release
+    (fetchpatch {
+      name = "fix-tests-ffmpeg-4.4.patch";
+      url = "https://0xacab.org/jvoisin/mat2/-/commit/c9be50f968212b01f8d8ad85e59e19c3e67d8578.patch";
+      sha256 = "0895dkv6575ps3drdfnli15cggx27n9irjx0axigrm4ql4ma0648";
+    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/matchpy/default.nix b/nixpkgs/pkgs/development/python-modules/matchpy/default.nix
index 132be56f19b3..794b2c8f4add 100644
--- a/nixpkgs/pkgs/development/python-modules/matchpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matchpy/default.nix
@@ -7,7 +7,7 @@
 , pytest
 , pytestrunner
 , hypothesis
-, setuptools_scm
+, setuptools-scm
 , isPy27
 }:
 
@@ -36,7 +36,7 @@ buildPythonPackage rec {
        --replace "pytest>=3.0,<4.0" "pytest"
   '';
 
-  buildInputs = [ setuptools_scm pytestrunner ];
+  buildInputs = [ setuptools-scm pytestrunner ];
   checkInputs = [ pytest hypothesis ];
   propagatedBuildInputs = [ hopcroftkarp multiset ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix
index 2c929d9a694e..a6ee1a3bade7 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/2.nix
@@ -1,24 +1,16 @@
-{ lib, stdenv, fetchPypi, python, buildPythonPackage, pycairo, backports_functools_lru_cache
+{ lib, stdenv, fetchPypi, writeText, python, buildPythonPackage, pycairo, backports_functools_lru_cache
 , which, cycler, dateutil, nose, numpy, pyparsing, sphinx, tornado, kiwisolver
 , freetype, libpng, pkg-config, mock, pytz, pygobject3, gobject-introspection, functools32, subprocess32
 , fetchpatch
-, enableGhostscript ? false, ghostscript ? null, gtk3
+, enableGhostscript ? false, ghostscript, gtk3
 , enableGtk3 ? false, cairo
 # darwin has its own "MacOSX" backend
-, enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null
+, enableTk ? !stdenv.isDarwin, tcl, tk, tkinter, libX11
 , enableQt ? false, pyqt4
 , Cocoa
 , pythonOlder
 }:
 
-assert enableGhostscript -> ghostscript != null;
-assert enableTk -> (tcl != null)
-                && (tk != null)
-                && (tkinter != null)
-                && (libX11 != null)
-                ;
-assert enableQt -> pyqt4 != null;
-
 buildPythonPackage rec {
   version = "2.2.3";
   pname = "matplotlib";
@@ -54,7 +46,10 @@ buildPythonPackage rec {
     ++ lib.optionals enableQt [ pyqt4 ]
     ++ lib.optionals python.isPy2 [ functools32 subprocess32 ];
 
-  setup_cfg = ./setup.cfg;
+  passthru.config = {
+    directories = { basedirlist = "."; };
+  };
+  setup_cfg = writeText "setup.cfg" (lib.generators.toINI {} passthru.config);
   preBuild = ''
     cp "$setup_cfg" ./setup.cfg
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
index 4be4189f8c7a..12ef896117ab 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
@@ -1,33 +1,30 @@
-{ lib, stdenv, fetchPypi, python, buildPythonPackage, isPy3k, pycairo, backports_functools_lru_cache
-, which, cycler, dateutil, nose, numpy, pyparsing, sphinx, tornado, kiwisolver
-, freetype, libpng, pkg-config, mock, pytz, pygobject3, gobject-introspection
+{ lib, stdenv, fetchPypi, writeText, buildPythonPackage, isPy3k, pycairo
+, which, cycler, dateutil, numpy, pyparsing, sphinx, tornado, kiwisolver
+, freetype, qhull, libpng, pkg-config, mock, pytz, pygobject3, gobject-introspection
 , certifi, pillow
-, enableGhostscript ? true, ghostscript ? null, gtk3
+, enableGhostscript ? true, ghostscript, gtk3
 , enableGtk3 ? false, cairo
 # darwin has its own "MacOSX" backend
-, enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null
-, enableQt ? false, pyqt5 ? null
+, enableTk ? !stdenv.isDarwin, tcl, tk, tkinter
+, enableQt ? false, pyqt5
+# required for headless detection
+, libX11, wayland
 , Cocoa
-, pythonOlder
 }:
 
-assert enableGhostscript -> ghostscript != null;
-assert enableTk -> (tcl != null)
-                && (tk != null)
-                && (tkinter != null)
-                && (libX11 != null)
-                ;
-assert enableQt -> pyqt5 != null;
+let
+  interactive = enableTk || enableGtk3 || enableQt;
+in
 
 buildPythonPackage rec {
-  version = "3.3.4";
+  version = "3.4.1";
   pname = "matplotlib";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e477db76c22929e4c6876c44f88d790aacdf3c3f8f3a90cb1975c0bf37825b0";
+    sha256 = "84d4c4f650f356678a5d658a43ca21a41fca13f9b8b00169c0b76e6a6a948908";
   };
 
   XDG_RUNTIME_DIR = "/tmp";
@@ -39,13 +36,23 @@ buildPythonPackage rec {
     ++ lib.optional stdenv.isDarwin [ Cocoa ];
 
   propagatedBuildInputs =
-    [ cycler dateutil numpy pyparsing tornado freetype kiwisolver
-      certifi libpng mock pytz pillow ]
+    [ cycler dateutil numpy pyparsing tornado freetype qhull
+      kiwisolver certifi libpng mock pytz pillow ]
     ++ lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
     ++ lib.optionals enableTk [ tcl tk tkinter libX11 ]
     ++ lib.optionals enableQt [ pyqt5 ];
 
-  setup_cfg = if stdenv.isDarwin then ./setup-darwin.cfg else ./setup.cfg;
+  passthru.config = {
+    directories = { basedirlist = "."; };
+    libs = {
+      system_freetype = true;
+      system_qhull = true;
+    } // lib.optionalAttrs stdenv.isDarwin {
+      # LTO not working in darwin stdenv, see #19312
+      enable_lto = false;
+    };
+  };
+  setup_cfg = writeText "setup.cfg" (lib.generators.toINI {} passthru.config);
   preBuild = ''
     cp "$setup_cfg" ./setup.cfg
   '';
@@ -60,8 +67,14 @@ buildPythonPackage rec {
     let
       tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${lib.strings.substring 0 3 tk.version}"'';
     in
-    lib.optionalString enableTk
-      "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py";
+    lib.optionalString enableTk ''
+      sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py
+    '' + lib.optionalString (stdenv.isLinux && interactive) ''
+      # fix paths to libraries in dlopen calls (headless detection)
+      substituteInPlace src/_c_internal_utils.c \
+        --replace libX11.so.6 ${libX11}/lib/libX11.so.6 \
+        --replace libwayland-client.so.0 ${wayland}/lib/libwayland-client.so.0
+    '';
 
   # Matplotlib needs to be built against a specific version of freetype in
   # order for all of the tests to pass.
@@ -70,6 +83,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python plotting library, making publication quality plots";
     homepage    = "https://matplotlib.org/";
+    license     = with licenses; [ psfl bsd0 ];
     maintainers = with maintainers; [ lovek323 veprbl ];
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg b/nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg
deleted file mode 100644
index f6463d9c574a..000000000000
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-[directories]
-basedirlist = .
-
-[libs]
-system_freetype = true
-# LTO not working in darwin stdenv, see #19312
-enable_lto = false
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg b/nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg
deleted file mode 100644
index 6a7738627651..000000000000
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-[directories]
-basedirlist = .
-
-[libs]
-system_freetype = true
diff --git a/nixpkgs/pkgs/development/python-modules/matrix-api-async/default.nix b/nixpkgs/pkgs/development/python-modules/matrix-api-async/default.nix
new file mode 100644
index 000000000000..d7ae05bddc96
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/matrix-api-async/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi, matrix-client }:
+
+buildPythonPackage rec {
+  pname = "matrix_api_async";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xdx8fci0lar3x09dwqgka6ssz9d3g7gsfx4yyr13sdwza7zsqc3";
+  };
+
+  propagatedBuildInputs = [ matrix-client ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "matrix_api_async" ];
+
+  meta = with lib; {
+    description = "An asyncio wrapper of matrix_client.api";
+    license = licenses.mit;
+    homepage = "https://github.com/Cadair/matrix_api_async";
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix b/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix
index 69774b58eb69..3e613fd89a50 100644
--- a/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix
@@ -2,9 +2,11 @@
 , buildPythonPackage
 , fetchFromGitHub
 , git
+, poetry-core
 , attrs
 , future
 , aiohttp
+, aiohttp-socks
 , aiofiles
 , h11
 , h2
@@ -16,27 +18,37 @@
 , peewee
 , cachetools
 , atomicwrites
+, pytestCheckHook
+, faker
+, aioresponses
+, hypothesis
+, pytest-aiohttp
+, pytest-benchmark
 }:
 
 buildPythonPackage rec {
   pname = "matrix-nio";
-  version = "0.15.2";
+  version = "0.18.1";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "poljar";
     repo = "matrix-nio";
     rev = version;
-    sha256 = "190xw3cvk4amr9pl8ip2i7k3xdjd0231kn2zl6chny5axx22p1dv";
+    sha256 = "QHNirglqSxGMmbST96LUp9MHoGj0yAwLoTRlsbMqwaM=";
   };
 
   nativeBuildInputs = [
     git
+    poetry-core
+    pytestCheckHook
   ];
 
   propagatedBuildInputs = [
     attrs
     future
     aiohttp
+    aiohttp-socks
     aiofiles
     h11
     h2
@@ -50,7 +62,20 @@ buildPythonPackage rec {
     atomicwrites
   ];
 
-  doCheck = false;
+  checkInputs = [
+    faker
+    aioresponses
+    hypothesis
+    pytest-aiohttp
+    pytest-benchmark
+  ];
+
+  disabledTests = [
+    # touches network
+    "test_connect_wrapper"
+    # time dependent and flaky
+    "test_transfer_monitor_callbacks"
+  ];
 
   meta = with lib; {
     description = "A Python Matrix client library, designed according to sans I/O principles";
diff --git a/nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix b/nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix
new file mode 100644
index 000000000000..7d9421b5d949
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mattermostdriver/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, websockets
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "mattermostdriver";
+  version = "7.3.0";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17jqcpa1xd9n7bf4d5l7wmscls34kymv27gi17pyyfjxbwk5gsga";
+  };
+
+  propagatedBuildInputs = [ websockets requests ];
+
+  pythonImportsCheck = [ "mattermostdriver" ];
+
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A Python Mattermost Driver";
+    homepage = "https://github.com/Vaelor/python-mattermost-driver";
+    license = licenses.mit;
+    maintainers = with maintainers; [ globin lheckemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix b/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
index 1ea14c35510c..6a39ff347cd5 100644
--- a/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "mcstatus";
-  version = "5.1.4";
+  version = "6.0.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Dinnerbone";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1k8hjv965svbm95m7jaawlhdbxqpkjchlwvjwn1n7z90dfgn5kih";
+    sha256 = "sha256-YBtVWcOZDt2jQB9bHDrSCP9f2OC+IHzJKlBBGorLnZU=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/md-toc/default.nix b/nixpkgs/pkgs/development/python-modules/md-toc/default.nix
new file mode 100644
index 000000000000..aaec77a9ace8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/md-toc/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fpyutils
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "md-toc";
+  version = "7.2.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "frnmst";
+    repo = pname;
+    rev = version;
+    sha256 = "1v74iddfk5d6170frg89vzrkz9xrycl1f50g59imc7x7g50i6c2x";
+  };
+
+  propagatedBuildInputs = [
+    fpyutils
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "fpyutils>=1.2,<1.3" "fpyutils>=1.2"
+  '';
+
+  pytestFlagsArray = [ "md_toc/tests/*.py" ];
+
+  pythonImportsCheck = [ "md_toc" ];
+
+  meta = with lib; {
+    description = "Table of contents generator for Markdown";
+    homepage = "https://docs.franco.net.eu.org/md-toc/";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mdformat/default.nix b/nixpkgs/pkgs/development/python-modules/mdformat/default.nix
new file mode 100644
index 000000000000..159310035b8f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mdformat/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, importlib-metadata
+, markdown-it-py
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "mdformat";
+  version = "0.7.6";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "executablebooks";
+    repo = pname;
+    rev = version;
+    sha256 = "0mnbi3vp7zgllpcpf6vrjw9y6jas95shphn99ayr8b8wgxsaqkif";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    markdown-it-py
+  ] ++ lib.optionals (pythonOlder "3.10") [
+    importlib-metadata
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    typing-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "mdformat" ];
+
+  meta = with lib; {
+    description = "CommonMark compliant Markdown formatter";
+    homepage = "https://mdformat.rtfd.io/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mdit-py-plugins/default.nix b/nixpkgs/pkgs/development/python-modules/mdit-py-plugins/default.nix
new file mode 100644
index 000000000000..9c5705dbc408
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mdit-py-plugins/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, markdown-it-py
+, pytest-regressions
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "mdit-py-plugins";
+  version = "0.2.8";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "executablebooks";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-MXQjaVDuguGbmby6BQnrTdpq6Mih3HabXuyFxf9jB18=";
+  };
+
+  propagatedBuildInputs = [ markdown-it-py ];
+
+  checkInputs = [ pytestCheckHook pytest-regressions ];
+  pythonImportsCheck = [ "mdit_py_plugins" ];
+
+  meta = with lib; {
+    description = "Collection of core plugins for markdown-it-py";
+    homepage = "https://github.com/executablebooks/mdit-py-plugins";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/measurement/default.nix b/nixpkgs/pkgs/development/python-modules/measurement/default.nix
index 6b7a02a76eb5..c3ce875b4f57 100644
--- a/nixpkgs/pkgs/development/python-modules/measurement/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/measurement/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, buildPythonPackage, isPy3k
-, sympy, pytest, pytestrunner, sphinx, setuptools_scm }:
+, sympy, pytest, pytestrunner, sphinx, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "measurement";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [ pytest pytestrunner ];
-  nativeBuildInputs = [ sphinx setuptools_scm ];
+  nativeBuildInputs = [ sphinx setuptools-scm ];
   propagatedBuildInputs = [ sympy ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix b/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix
index e3abdaa70916..bb5ffb7de791 100644
--- a/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , mecab
 , swig
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     mecab # for mecab-config
     swig
-    setuptools_scm
+    setuptools-scm
   ];
 
   buildInputs = [ mecab ];
diff --git a/nixpkgs/pkgs/development/python-modules/mechanicalsoup/default.nix b/nixpkgs/pkgs/development/python-modules/mechanicalsoup/default.nix
new file mode 100644
index 000000000000..5f11d5cc9e85
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mechanicalsoup/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, pythonAtLeast
+, fetchFromGitHub
+, lxml
+, pytest-httpbin
+, pytest-mock
+, pytestCheckHook
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "mechanicalsoup";
+  version = "1.1.0";
+
+  disabled = ! pythonAtLeast "3.6";
+
+  src = fetchFromGitHub {
+    owner = "MechanicalSoup";
+    repo = "MechanicalSoup";
+    rev = "v${version}";
+    sha256 = "1mly0ivai3rx64frk7a7ra6abhdxm9x3l6s6x7sgrl9qx1z8zsp3";
+  };
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    lxml
+    requests
+  ];
+
+  checkInputs = [
+    pytest-httpbin
+    pytest-mock
+    pytestCheckHook
+    requests-mock
+  ];
+
+  postPatch = ''
+    # Is in setup_requires but not used in setup.py
+    substituteInPlace setup.py \
+      --replace "'pytest-runner'" ""
+    substituteInPlace setup.cfg \
+      --replace " --cov --cov-config .coveragerc --flake8" ""
+  '';
+
+  pythonImportsCheck = [ "mechanicalsoup" ];
+
+  meta = with lib; {
+    description = "Python library for automating interaction with websites";
+    homepage = "https://github.com/hickford/MechanicalSoup";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jgillich fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mercantile/default.nix b/nixpkgs/pkgs/development/python-modules/mercantile/default.nix
new file mode 100644
index 000000000000..e7f307361ed3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mercantile/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, click
+, pytestCheckHook
+, hypothesis
+}:
+
+buildPythonPackage rec {
+  pname = "mercantile";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "mapbox";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-DiDXO2XnD3We6NhP81z7aIHzHrHDi/nkqy98OT9986w=";
+  };
+
+  propagatedBuildInputs = [ click ];
+
+  checkInputs = [ pytestCheckHook hypothesis ];
+
+  meta = with lib; {
+    description = "Spherical mercator tile and coordinate utilities";
+    homepage = "https://github.com/mapbox/mercantile";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/meshtastic/default.nix b/nixpkgs/pkgs/development/python-modules/meshtastic/default.nix
new file mode 100644
index 000000000000..c8a9d78e7c1b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/meshtastic/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, dotmap
+, fetchPypi
+, pexpect
+, protobuf
+, pygatt
+, pypubsub
+, pyqrcode
+, pyserial
+, pythonOlder
+, tabulate
+, timeago
+}:
+
+buildPythonPackage rec {
+  pname = "meshtastic";
+  version = "1.2.30";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kjflc2jwnsgxyr2zx1gyykhak9fsgy6hxaxlggsz5sw9b8rdrby";
+  };
+
+  propagatedBuildInputs = [
+    dotmap
+    pexpect
+    protobuf
+    pygatt
+    pypubsub
+    pyqrcode
+    pyserial
+    tabulate
+    timeago
+  ];
+
+  postPatch = ''
+    # https://github.com/meshtastic/Meshtastic-python/pull/87
+    substituteInPlace setup.py \
+      --replace 'with open("README.md", "r") as fh:' "" \
+      --replace "long_description = fh.read()" "" \
+      --replace "long_description=long_description," 'long_description="",'
+  '';
+
+  # Project only provides PyPI releases which don't contain the tests
+  # https://github.com/meshtastic/Meshtastic-python/issues/86
+  doCheck = false;
+  pythonImportsCheck = [ "meshtastic" ];
+
+  meta = with lib; {
+    description = "Python API for talking to Meshtastic devices";
+    homepage = "https://meshtastic.github.io/Meshtastic-python/";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/midiutil/default.nix b/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
index d1cae8c78041..a3527bc6e1cf 100644
--- a/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
@@ -13,6 +13,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/MarkCWirt/MIDIUtil";
     description = "A pure python library for creating multi-track MIDI files";
     license = licenses.mit;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mido/default.nix b/nixpkgs/pkgs/development/python-modules/mido/default.nix
index 8312ea783cb4..ae737dc71661 100644
--- a/nixpkgs/pkgs/development/python-modules/mido/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mido/default.nix
@@ -1,6 +1,13 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, substituteAll
-, portmidi, pygame, python-rtmidi, rtmidi-python
-, pytest
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, portmidi
+, pygame
+, python-rtmidi
+, rtmidi-python
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -25,15 +32,18 @@ buildPythonPackage rec {
     rtmidi-python
   ];
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test . -rs -q
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "mido"
+  ];
 
   meta = with lib; {
     description = "MIDI Objects for Python";
     homepage = "https://mido.readthedocs.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/minikerberos/default.nix b/nixpkgs/pkgs/development/python-modules/minikerberos/default.nix
index ee0812eacecc..d1e0616cfb68 100644
--- a/nixpkgs/pkgs/development/python-modules/minikerberos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minikerberos/default.nix
@@ -3,24 +3,27 @@
 , asysocks
 , buildPythonPackage
 , fetchPypi
+, oscrypto
 }:
 
 buildPythonPackage rec {
   pname = "minikerberos";
-  version = "0.2.11";
+  version = "0.2.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-OC+Cnk47GFzK1QaDEDxntRVrakpFiBuNelM/R5t/AUY=";
+    sha256 = "sha256-MND7r4Gkx9RnEMgEl62QXFYr1NEloihQ2HeU9hyhsx8=";
   };
 
   propagatedBuildInputs = [
     asn1crypto
     asysocks
+    oscrypto
   ];
 
   # no tests are published: https://github.com/skelsec/minikerberos/pull/5
   doCheck = false;
+
   pythonImportsCheck = [ "minikerberos" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/minio/default.nix b/nixpkgs/pkgs/development/python-modules/minio/default.nix
index b23d264f72db..fdbcf09534b2 100644
--- a/nixpkgs/pkgs/development/python-modules/minio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minio/default.nix
@@ -1,38 +1,53 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi
+{ lib
+, buildPythonPackage
+, certifi
 , configparser
 , faker
+, fetchFromGitHub
 , future
 , mock
 , nose
+, pytestCheckHook
 , python-dateutil
+, pythonOlder
 , pytz
-, pytestCheckHook
 , urllib3
-, certifi
 }:
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "7.0.2";
-  disabled = !isPy3k;
+  version = "7.0.3";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f2f6022cfe4694d946972efef2a752f87d08cc030940faa50a640088772953c8";
+  src = fetchFromGitHub {
+    owner = "minio";
+    repo = "minio-py";
+    rev = version;
+    sha256 = "14symk7b3i9xzfc2wkcnqmfsvh9j3jx2ijz7dgy1xyrbjwb7yzhc";
   };
 
   propagatedBuildInputs = [
+    certifi
     configparser
     future
     python-dateutil
     pytz
     urllib3
-    certifi
   ];
 
-  checkInputs = [ faker mock nose pytestCheckHook ];
+  checkInputs = [
+    faker
+    mock
+    nose
+    pytestCheckHook
+  ];
+
   # example credentials aren't present
-  pytestFlagsArray = [ "--ignore=tests/unit/credentials_test.py" ];
+  disabledTestPaths = [
+    "tests/unit/credentials_test.py"
+  ];
+
+  pythonImportsCheck = [ "minio" ];
 
   meta = with lib; {
     description = "Simple APIs to access any Amazon S3 compatible object storage server";
diff --git a/nixpkgs/pkgs/development/python-modules/mitogen/default.nix b/nixpkgs/pkgs/development/python-modules/mitogen/default.nix
new file mode 100644
index 000000000000..3268e8fae7ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mitogen/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "mitogen";
+  version = "0.3.0rc1";
+
+  src = fetchFromGitHub {
+    owner = "mitogen-hq";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0hxb41sshybxjyvyarl2axs0v6w53vqxafgfjrmpp5k20z5kapz4";
+  };
+
+  # Tests require network access and Docker support
+  doCheck = false;
+
+  pythonImportsCheck = [ "mitogen" ];
+
+  meta = with lib; {
+    description = "Python Library for writing distributed self-replicating programs";
+    homepage = "https://github.com/mitogen-hq/mitogen";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mlrose/default.nix b/nixpkgs/pkgs/development/python-modules/mlrose/default.nix
index 40e3b6ce0953..2187f2726801 100644
--- a/nixpkgs/pkgs/development/python-modules/mlrose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlrose/default.nix
@@ -1,21 +1,45 @@
-{ lib, isPy27, buildPythonPackage, fetchPypi, scikitlearn }:
+{ lib
+, isPy27
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, scikit-learn
+, pytestCheckHook
+, pytest-randomly
+}:
 
 buildPythonPackage rec {
   pname = "mlrose";
   version = "1.3.0";
   disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cec83253bf6da67a7fb32b2c9ae13e9dbc6cfbcaae2aa3107993e69e9788f15e";
+  src = fetchFromGitHub {
+    owner = "gkhayes";
+    repo = "mlrose";
+    rev = "v${version}";
+    sha256 = "1dn43k3rcypj58ymcj849b37w66jz7fphw8842v6mlbij3x0rxfl";
   };
 
-  propagatedBuildInputs = [ scikitlearn ];
+  patches = [
+    # Fixes compatibility with scikit-learn 0.24.1
+    (fetchpatch {
+      url = "https://github.com/gkhayes/mlrose/pull/55/commits/19caf8616fc194402678aa67917db334ad02852a.patch";
+      sha256 = "1nivz3bn21nd21bxbcl16a6jmy7y5j8ilz90cjmd0xq4v7flsahf";
+    })
+  ];
+
+  propagatedBuildInputs = [ scikit-learn ];
+  checkInputs = [ pytest-randomly pytestCheckHook ];
 
   postPatch = ''
-    sed -i 's,sklearn,scikit-learn,g' setup.py
+    substituteInPlace setup.py --replace sklearn scikit-learn
   '';
 
+  pythonImportsCheck = [ "mlrose" ];
+
+  # Fix random seed during tests
+  pytestFlagsArray = [ "--randomly-seed 0" ];
+
   meta = with lib; {
     description = "Machine Learning, Randomized Optimization and SEarch";
     homepage    = "https://github.com/gkhayes/mlrose";
diff --git a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
index 44402b36ec08..4692dc61c229 100644
--- a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
@@ -5,7 +5,7 @@
 , pytestCheckHook
 , scipy
 , numpy
-, scikitlearn
+, scikit-learn
 , pandas
 , matplotlib
 , joblib
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     scipy
     numpy
-    scikitlearn
+    scikit-learn
     pandas
     matplotlib
     joblib
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     license= licenses.bsd3;
     maintainers = with maintainers; [ evax ];
     platforms = platforms.unix;
-    # incompatible with nixpkgs scikitlearn version
+    # incompatible with nixpkgs scikit-learn version
     broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mne-python/default.nix b/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
index bed191c39e32..d8add2608b6a 100644
--- a/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
@@ -11,7 +11,7 @@
 , matplotlib
 , nibabel
 , pandas
-, scikitlearn
+, scikit-learn
 }:
 
 buildPythonPackage rec {
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     matplotlib
     nibabel
     pandas
-    scikitlearn
+    scikit-learn
   ];
   preCheck = ''
     export HOME=$TMP
diff --git a/nixpkgs/pkgs/development/python-modules/mock-services/default.nix b/nixpkgs/pkgs/development/python-modules/mock-services/default.nix
new file mode 100644
index 000000000000..2917b21dcfe4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mock-services/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, attrs
+, funcsigs
+, requests-mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "mock-services";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "peopledoc";
+    repo = "mock-services";
+    rev = version;
+    sha256 = "1rqyyfwngi1xsd9a81irjxacinkj1zf6nqfvfxhi55ky34x5phf9";
+  };
+
+  patches = [
+    # Fix issues due to internal API breaking in latest versions of requests-mock
+    (fetchpatch {
+      url = "https://github.com/peopledoc/mock-services/commit/88d3a0c9ef4dd7d5e011068ed2fdbbecc4a1a03a.patch";
+      sha256 = "0a4pwxr33kr525sp8q4mb4cr3n2b51mj2a3052lhg6brdbi4gnms";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    funcsigs
+    requests-mock
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # require networking
+    "test_real_http_1"
+    "test_restart_http_mock"
+    "test_start_http_mock"
+    "test_stop_http_mock"
+  ];
+
+  pythonImportsCheck = [ "mock_services" ];
+
+  meta = with lib; {
+    description = "Mock an entire service API based on requests-mock";
+    homepage = "https://github.com/peopledoc/mock-services";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mocket/default.nix b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
index 76b64be7430b..b05260930f10 100644
--- a/nixpkgs/pkgs/development/python-modules/mocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.9.40";
+  version = "3.9.41";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "061w3zqf4ir7hfj0vzl58lg8szsik1fxv126s32x03nk1sd39r6v";
+    sha256 = "19zxqh0xk08gj0jf6im9vh53z22yf17ywzykk0fjs9g7m29x8i5j";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mockupdb/default.nix b/nixpkgs/pkgs/development/python-modules/mockupdb/default.nix
new file mode 100644
index 000000000000..341660e1af0b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mockupdb/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi
+, pymongo
+}:
+
+buildPythonPackage rec {
+  pname = "mockupdb";
+  version = "1.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "130z5g96r52h362qc5jbf1g3gw3irb2wr946xlhgcv9ww9z64cl8";
+  };
+
+  propagatedBuildInputs = [ pymongo ];
+
+  pythonImportsCheck = [ "mockupdb" ];
+
+  meta = with lib; {
+    description = "Simulate a MongoDB server";
+    license = licenses.asl20;
+    homepage = "https://github.com/ajdavis/mongo-mockup-db";
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/moderngl/default.nix b/nixpkgs/pkgs/development/python-modules/moderngl/default.nix
index f32f541573eb..447d2b00b019 100644
--- a/nixpkgs/pkgs/development/python-modules/moderngl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moderngl/default.nix
@@ -4,6 +4,7 @@
 , isPy3k
 , libGL
 , libX11
+, glcontext
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,7 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  buildInputs = [ libGL libX11 ];
+  buildInputs = [ libGL libX11 glcontext ];
 
   # Tests need a display to run.
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix b/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix
index 7f6d9893c969..e06d5aa3780b 100644
--- a/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moderngl_window/default.nix
@@ -7,6 +7,7 @@
 , pyglet
 , pillow
 , pyrr
+, glcontext
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     sha256 = "1p03j91pk2bwycd13p0qi8kns1sf357180hd2mkaip8mfaf33x3q";
   };
 
-  propagatedBuildInputs = [ numpy moderngl pyglet pillow pyrr ];
+  propagatedBuildInputs = [ numpy moderngl pyglet pillow pyrr glcontext ];
 
   disabled = !isPy3k;
 
diff --git a/nixpkgs/pkgs/development/python-modules/monty/default.nix b/nixpkgs/pkgs/development/python-modules/monty/default.nix
index a2398ce750dd..4690f9f8820f 100644
--- a/nixpkgs/pkgs/development/python-modules/monty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/monty/default.nix
@@ -1,22 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
-, nose
-, numpy
-, six
-, ruamel_yaml
+, pythonOlder
 , msgpack
-, coverage
-, coveralls
+, pytestCheckHook
+, numpy
+, pydantic
 , pymongo
-, lsof
+, ruamel_yaml
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "monty";
   version = "2021.3.3";
-  disabled = isPy27; # uses type annotations
+  disabled = pythonOlder "3.5"; # uses type annotations
 
   # No tests in Pypi
   src = fetchFromGitHub {
@@ -26,15 +24,18 @@ buildPythonPackage rec {
     sha256 = "1nbv0ys0fv70rgzskkk8gsfr9dsmm7ykim5wv36li840zsj83b1l";
   };
 
-  checkInputs = [ lsof nose numpy msgpack coverage coveralls pymongo];
-  propagatedBuildInputs = [ six ruamel_yaml ];
+  propagatedBuildInputs = [
+    ruamel_yaml
+    tqdm
+    msgpack
+  ];
 
-  # test suite tries to decode bytes, but msgpack now returns a str
-  # https://github.com/materialsvirtuallab/monty/pull/121
-  postPatch = ''
-    substituteInPlace tests/test_serialization.py \
-      --replace ".decode('utf-8')" ""
-  '';
+  checkInputs = [
+    pytestCheckHook
+    numpy
+    pydantic
+    pymongo
+  ];
 
   preCheck = ''
     substituteInPlace tests/test_os.py \
diff --git a/nixpkgs/pkgs/development/python-modules/motioneye-client/default.nix b/nixpkgs/pkgs/development/python-modules/motioneye-client/default.nix
new file mode 100644
index 000000000000..a769128fd861
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/motioneye-client/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-aiohttp
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "motioneye-client";
+  version = "0.3.9";
+  format = "pyproject";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dermotduffy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-pLdAxBipmr+HUr9NSupm7h/68PK95r3zY/qZTBs1m54=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --cov-report=html:htmlcov --cov-report=xml:coverage.xml --cov-report=term-missing --cov=motioneye_client --cov-fail-under=100" ""
+  '';
+
+  pythonImportsCheck = [ "motioneye_client" ];
+
+  meta = with lib; {
+    description = "Python library for motionEye";
+    homepage = "https://github.com/dermotduffy/motioneye-client";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/motor/default.nix b/nixpkgs/pkgs/development/python-modules/motor/default.nix
new file mode 100644
index 000000000000..318d519e57ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/motor/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, pymongo, mockupdb
+}:
+
+buildPythonPackage rec {
+  pname = "motor";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "mongodb";
+    repo = pname;
+    rev = version;
+    sha256 = "1sgaqg98h35lazzdi015q1i60ig7krid8b10a5rm6lf755y8yj2c";
+  };
+
+  propagatedBuildInputs = [ pymongo ];
+
+  # network connections
+  doCheck = false;
+  checkInputs = [ mockupdb ];
+
+  pythonImportsCheck = [ "motor" ];
+
+  meta = with lib; {
+    description = "Non-blocking MongoDB driver for Tornado or asyncio";
+    license = licenses.asl20;
+    homepage = "https://github.com/mongodb/motor";
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/moviepy/default.nix b/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
index 4cd1fec3d8b2..c3acdbe71ec2 100644
--- a/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moviepy/default.nix
@@ -13,14 +13,14 @@
 , advancedProcessing ? false
 , opencv3 ? null
 , scikitimage ? null
-, scikitlearn ? null
+, scikit-learn ? null
 , scipy ? null
 , matplotlib ? null
 , youtube-dl ? null
 }:
 
 assert advancedProcessing -> (
-  opencv3 != null && scikitimage != null && scikitlearn != null
+  opencv3 != null && scikitimage != null && scikit-learn != null
   && scipy != null && matplotlib != null && youtube-dl != null);
 
 buildPythonPackage rec {
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy decorator imageio imageio-ffmpeg tqdm requests proglog
   ] ++ (lib.optionals advancedProcessing [
-    opencv3 scikitimage scikitlearn scipy matplotlib youtube-dl
+    opencv3 scikitimage scikit-learn scipy matplotlib youtube-dl
   ]);
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/mox3/default.nix b/nixpkgs/pkgs/development/python-modules/mox3/default.nix
index 1883c9c8c011..593d845ad866 100644
--- a/nixpkgs/pkgs/development/python-modules/mox3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mox3/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   buildInputs = [ subunit testrepository testtools six ];
   propagatedBuildInputs = [ pbr fixtures ];
 
-  # Disabling as several tests depdencies are missing:
+  # Disabling as several tests dependencies are missing:
   # https://opendev.org/openstack/mox3/src/branch/master/test-requirements.txt
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/msal/default.nix b/nixpkgs/pkgs/development/python-modules/msal/default.nix
index 3df0527589a1..735d74b5237b 100644
--- a/nixpkgs/pkgs/development/python-modules/msal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msal/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "582e92e3b9fa68084dca6ecfd8db866ddc75cd9043de267c79d6b6277dd27f55";
+    sha256 = "sha256-RnrwK7lKh6G2lbUb+GdmfoKKzA3Twd5fpUP2kALbSfo=";
   };
 
   propagatedBuildInputs = [
@@ -22,15 +22,15 @@ buildPythonPackage rec {
   ];
 
   # Tests assume Network Connectivity:
-  #   https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/e2958961e8ec16d0af4199f60c36c3f913497e48/tests/test_authority.py#L73
+  # https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/e2958961e8ec16d0af4199f60c36c3f913497e48/tests/test_authority.py#L73
   doCheck = false;
 
+  pythonImportsCheck = [ "msal" ];
+
   meta = with lib; {
     description = "The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect";
     homepage = "https://github.com/AzureAD/microsoft-authentication-library-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/msldap/default.nix b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
index 12bfb7d7603e..649276ef252f 100644
--- a/nixpkgs/pkgs/development/python-modules/msldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "msldap";
-  version = "0.3.29";
+  version = "0.3.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0khwyhylh28qvz35pdckr5fdd82zsybv0xmzlzjbgcv99cyy1a94";
+    sha256 = "sha256-fX+W1Bq4F0/6DyxWeA6zvoswFQCdDpSk29g7nq1cYYE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/multiset/default.nix b/nixpkgs/pkgs/development/python-modules/multiset/default.nix
index 020617abebf4..e183031b8d95 100644
--- a/nixpkgs/pkgs/development/python-modules/multiset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/multiset/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytestrunner
 , pytest
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "4801569c08bfcecfe7b0927b17f079c90f8607aca8fecaf42ded92b737162bc7";
   };
 
-  buildInputs = [ setuptools_scm pytestrunner ];
+  buildInputs = [ setuptools-scm pytestrunner ];
   checkInputs = [ pytest ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/mutesync/default.nix b/nixpkgs/pkgs/development/python-modules/mutesync/default.nix
new file mode 100644
index 000000000000..98bf6ce07458
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mutesync/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchpatch
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "mutesync";
+  version = "0.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05r8maq59glwgysg98y1vrysfb1mkh9jpbag3ixl13n8jw8clp85";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  patches = [
+    # Don't parse requirements.txt, https://github.com/currentoor/pymutesync/pull/1
+    (fetchpatch {
+      name = "add-requirements.patch";
+      url = "https://github.com/currentoor/pymutesync/commit/d66910fc83b1ae3060cdb3fe22a6f91fb70a67f0.patch";
+      sha256 = "0axhgriyyv31b1r1yidxcrv0nyrqbb63xw5qrmv2iy2h0v96ijsk";
+    })
+  ];
+
+  # Project has not published tests yet
+  doCheck = false;
+  pythonImportsCheck = [ "mutesync" ];
+
+  meta = with lib; {
+    description = "Python module for interacting with mutesync buttons";
+    homepage = "https://github.com/currentoor/pymutesync";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix b/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix
index 0a73e99391e2..8743329917e7 100644
--- a/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix
@@ -17,14 +17,28 @@ buildPythonPackage rec {
     sha256 = "9e0d70a1fa6f452584de1cb853ae6c11f41233549f7839cfb879f99410f6ad46";
   };
 
-  # package has no tests
+  propagatedBuildInputs = [
+    oauthlib
+    pyjwt
+    requests
+    requests_oauthlib
+    six
+  ];
+
+  postPatch = ''
+    # https://github.com/mediawiki-utilities/python-mwoauth/pull/43
+    substituteInPlace setup.py --replace "PyJWT>=1.0.1,<2.0.0" "PyJWT>=1.0.1"
+  '';
+
+  # PyPI source has no tests included
+  # https://github.com/mediawiki-utilities/python-mwoauth/issues/44
   doCheck = false;
 
-  propagatedBuildInputs = [ six pyjwt requests oauthlib requests_oauthlib ];
+  pythonImportsCheck = [ "mwoauth" ];
 
   meta = with lib; {
-    description = "A library designed to provide a simple means to performing an OAuth handshake with a MediaWiki installation with the OAuth Extension installed.";
-    homepage =  "https://github.com/mediawiki-utilities/python-mwoauth";
+    description = "Python library to perform OAuth handshakes with a MediaWiki installation";
+    homepage = "https://github.com/mediawiki-utilities/python-mwoauth";
     license = licenses.mit;
     maintainers = with maintainers; [ ixxie ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/myjwt/default.nix b/nixpkgs/pkgs/development/python-modules/myjwt/default.nix
index d80e66e07bf0..0fecd439e3f5 100644
--- a/nixpkgs/pkgs/development/python-modules/myjwt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/myjwt/default.nix
@@ -1,33 +1,31 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchFromGitHub
 , click
 , colorama
 , cryptography
 , exrex
+, fetchFromGitHub
 , pyopenssl
 , pyperclip
+, pytest-mock
+, pytestCheckHook
 , questionary
 , requests
-, pytestCheckHook
-, pytest-mock
 , requests-mock
 }:
 
 buildPythonPackage rec {
   pname = "myjwt";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "mBouamama";
     repo = "MyJWT";
     rev = version;
-    sha256 = "1n3lvdrzp6wbbcygjwa7xar2jnhjnrz7a9khmn2phhkkngxm5rc4";
+    sha256 = "sha256-kZkqFeaQPd56BVaYmCWAbVu1xwbPAIlQC3u5/x3dh7A=";
   };
 
-  patches = [ ./pinning.patch ];
-
   propagatedBuildInputs = [
     click
     colorama
@@ -40,15 +38,20 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytestCheckHook
     pytest-mock
+    pytestCheckHook
     requests-mock
   ];
 
+  postPatch = ''
+    # Remove all version pinning (E.g., tornado==5.1.1 -> tornado)
+    sed -i -e "s/==[0-9.]*//" requirements.txt
+  '';
+
   pythonImportsCheck = [ "myjwt" ];
 
   meta = with lib; {
-    description = "CLI tool for testing vulnerabilities on Json Web Token(JWT)";
+    description = "CLI tool for testing vulnerabilities of JSON Web Tokens (JWT)";
     homepage = "https://github.com/mBouamama/MyJWT";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch b/nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch
deleted file mode 100644
index abae9d0e2ecb..000000000000
--- a/nixpkgs/pkgs/development/python-modules/myjwt/pinning.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/requirements.txt b/requirements.txt
-index 3017e02..2b465db 100644
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -1,8 +1,8 @@
--click==7.1.2
--colorama==0.4.4
--cryptography==3.3.1
--exrex==0.10.5
--pyOpenSSL==20.0.1
--pyperclip==1.8.1
--questionary==1.9.0
--requests==2.25.1
-+click
-+colorama
-+cryptography
-+exrex
-+pyOpenSSL
-+pyperclip
-+questionary
-+requests
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
new file mode 100644
index 000000000000..860646af9c65
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, black
+, boto3
+, buildPythonPackage
+, fetchFromGitHub
+, jinja2
+, md-toc
+, isort
+, mdformat
+, pyparsing
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "mypy-boto3-builder";
+  version = "4.12.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "vemel";
+    repo = "mypy_boto3_builder";
+    rev = version;
+    sha256 = "09kbmrpnph5kbxlqqavpxg3l85dmk3vzmwawa4s09y9gknxxkcv9";
+  };
+
+  propagatedBuildInputs = [
+    black
+    boto3
+    isort
+    jinja2
+    md-toc
+    mdformat
+    pyparsing
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "mypy_boto3_builder" ];
+
+  meta = with lib; {
+    description = "Type annotations builder for boto3";
+    homepage = "https://vemel.github.io/mypy_boto3_builder/";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix
new file mode 100644
index 000000000000..af97c5e103f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mypy-boto3-s3/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, boto3
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "mypy-boto3-s3";
+  version = "1.17.71";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zgx3f41j80xy203jwms7j72svxy10ry5v9w3ql817ai4lcrspnn";
+  };
+
+  propagatedBuildInputs = [
+    boto3
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "mypy_boto3_s3" ];
+
+  meta = with lib; {
+    description = "Type annotations for boto3";
+    homepage = "https://vemel.github.io/boto3_stubs_docs/mypy_boto3_s3/";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nassl/default.nix b/nixpkgs/pkgs/development/python-modules/nassl/default.nix
index 908ecff8c177..97033224c14a 100644
--- a/nixpkgs/pkgs/development/python-modules/nassl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nassl/default.nix
@@ -8,12 +8,15 @@
 , tls-parser
 , cacert
 , pytestCheckHook
+, pythonOlder
 }:
 
 let
-  zlibStatic = pkgsStatic.zlib.override {
+  zlibStatic = (pkgsStatic.zlib.override {
     splitStaticOutput = false;
-  };
+  }).overrideAttrs (oldAttrs: {
+    NIX_CFLAGS_COMPILE = "${oldAttrs.NIX_CFLAGS_COMPILE} -fPIC";
+  });
   nasslOpensslArgs = {
     static = true;
     enableSSL2 = true;
@@ -67,13 +70,14 @@ let
 in
 buildPythonPackage rec {
   pname = "nassl";
-  version = "3.1.0";
+  version = "4.0.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
     repo = pname;
     rev = version;
-    sha256 = "1x1v0fpb6gcc2r0k2rsy0mc3v25s3qbva78apvi46n08c2l309ci";
+    hash = "sha256-6lk2YfI9km10YbJAn38fvo9qa4iXcByL+udCsDe+kvU=";
   };
 
   postPatch = let
@@ -108,18 +112,21 @@ buildPythonPackage rec {
     invoke package.wheel
   '';
 
+  doCheck = true;
+
+  pythonImportsCheck = [ "nassl" ];
+
   checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    # Skip online tests
-    pytest -k 'not Online'
-  '';
+  disabledTests = [
+    "Online"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/nabla-c0d3/nassl";
     description = "Low-level OpenSSL wrapper for Python 3.7+";
     platforms = with platforms; linux ++ darwin;
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ veehaitch ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/nbclassic/default.nix b/nixpkgs/pkgs/development/python-modules/nbclassic/default.nix
index 3644b4e48dd7..a6aa34a88ec8 100644
--- a/nixpkgs/pkgs/development/python-modules/nbclassic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbclassic/default.nix
@@ -28,6 +28,8 @@ buildPythonPackage rec {
     pytest-tornasync
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Jupyter lab environment notebook server extension.";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/nbdime/default.nix b/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
index 66e1edd93908..221915efca03 100644
--- a/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbdime/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
 , hypothesis
-, setuptools_scm
+, setuptools-scm
 , six
 , attrs
 , py
@@ -52,7 +52,7 @@ buildPythonPackage rec {
     "test_merge"
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
diff --git a/nixpkgs/pkgs/development/python-modules/nbval/default.nix b/nixpkgs/pkgs/development/python-modules/nbval/default.nix
index 704bc21d7e1a..b9a336f7fbe9 100644
--- a/nixpkgs/pkgs/development/python-modules/nbval/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbval/default.nix
@@ -5,6 +5,7 @@
 , ipykernel
 , jupyter_client
 , nbformat
+, pytestCheckHook
 , pytest
 , six
 , glibcLocales
@@ -23,7 +24,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     matplotlib
     sympy
     pytestcov
@@ -40,14 +41,15 @@ buildPythonPackage rec {
     six
   ];
 
-  # Set HOME so that matplotlib doesn't try to use
-  # /homeless-shelter/.config/matplotlib, otherwise some of the tests fail for
-  # having an unexpected warning on stderr produced by matplotlib.
-  # Ignore impure tests.
-  checkPhase = ''
-    export HOME=$(mktemp -d)
-    pytest tests --ignore tests/test_timeouts.py
-  '';
+  pytestFlagsArray = [
+    "tests"
+    # These are the main tests but they're fragile so skip them. They error
+    # whenever matplotlib outputs any unexpected warnings, e.g. deprecation
+    # warnings.
+    "--ignore=tests/test_unit_tests_in_notebooks.py"
+    # Impure
+    "--ignore=tests/test_timeouts.py"
+  ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
diff --git a/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix b/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
index 531232bf8e6e..c145b9d888f4 100644
--- a/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
@@ -1,26 +1,31 @@
-{ lib, buildPythonPackage, fetchzip, gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl }:
+{ lib, buildPythonPackage, pythonOlder, fetchFromGitLab
+, gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl
+}:
 
-let
+buildPythonPackage rec {
   pname = "nbxmpp";
-  version = "1.0.2";
-  name = "${pname}-${version}";
-in buildPythonPackage {
-  inherit pname version;
+  version = "2.0.2";
+
+  disabled = pythonOlder "3.7";
+
   # Tests aren't included in PyPI tarball.
-  src = fetchzip {
-    name = "${name}.tar.bz2";
-    url = "https://dev.gajim.org/gajim/python-nbxmpp/repository/archive.tar.bz2?"
-        + "ref=${name}";
-    sha256 = "1rhzsakqrybzq5j5b9400wjd14pncph47c1ggn5a6f3di03lk4az";
+  src = fetchFromGitLab {
+    domain = "dev.gajim.org";
+    owner = "gajim";
+    repo = "python-nbxmpp";
+    rev = "nbxmpp-${version}";
+    sha256 = "0z27mxgfk7hvpx0xdrd8g9441rywv74yk7s83zjnc2mc7xvpwhf4";
   };
 
   buildInputs = [ precis-i18n ];
   propagatedBuildInputs = [ gobject-introspection idna libsoup pygobject3 pyopenssl ];
 
+  pythonImportsCheck = [ "nbxmpp" ];
+
   meta = with lib; {
     homepage = "https://dev.gajim.org/gajim/python-nbxmpp";
     description = "Non-blocking Jabber/XMPP module";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ndspy/default.nix b/nixpkgs/pkgs/development/python-modules/ndspy/default.nix
new file mode 100644
index 000000000000..9c4d91df9d65
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ndspy/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, crcmod }:
+
+buildPythonPackage rec {
+  pname = "ndspy";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1s0i81gspas22bjwk9vhy3x5sw1svyybk7c2j1ixc77drr9ym20a";
+  };
+
+  propagatedBuildInputs = [ crcmod ];
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "ndspy" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/RoadrunnerWMC/ndspy";
+    description = "A Python library for many Nintendo DS file formats";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/netdisco/default.nix b/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
index 489b6bddf562..dd17a3f6c10f 100644
--- a/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
@@ -1,23 +1,24 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, requests, zeroconf, netifaces, pytest }:
+{ lib, buildPythonPackage, isPy3k, fetchPypi, requests, zeroconf, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "netdisco";
-  version = "2.8.2";
+  version = "2.8.3";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dcaabf83b204282aacfb213b18799eb7af2d5a6defe529487bbd0548036392fe";
+    sha256 = "sha256-4WS9PiErB6U7QuejTvbrOmnHetbE5S4zaUyhLCbyihM=";
   };
 
-  propagatedBuildInputs = [ requests zeroconf netifaces ];
+  propagatedBuildInputs = [ requests zeroconf ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [
+    "netdisco"
+    "netdisco.discovery"
+  ];
 
   meta = with lib; {
     description = "Python library to scan local network for services and devices";
diff --git a/nixpkgs/pkgs/development/python-modules/nilearn/default.nix b/nixpkgs/pkgs/development/python-modules/nilearn/default.nix
index e3ce770398e4..39edd7e34da2 100644
--- a/nixpkgs/pkgs/development/python-modules/nilearn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nilearn/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, pytestCheckHook, matplotlib
-, nibabel, numpy, pandas, scikitlearn, scipy, joblib, requests }:
+, nibabel, numpy, pandas, scikit-learn, scipy, joblib, requests }:
 
 buildPythonPackage rec {
   pname = "nilearn";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     numpy
     pandas
     requests
-    scikitlearn
+    scikit-learn
     scipy
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/nmigen-boards/default.nix b/nixpkgs/pkgs/development/python-modules/nmigen-boards/default.nix
index cb7d57f75307..209d1f090779 100644
--- a/nixpkgs/pkgs/development/python-modules/nmigen-boards/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nmigen-boards/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , nmigen
 , setuptools
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "1flbcyb2xz174dgqv2964qra80xj2vbzbqwjb27shvxm6knj9ikf";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ setuptools nmigen ];
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/development/python-modules/nmigen-soc/default.nix b/nixpkgs/pkgs/development/python-modules/nmigen-soc/default.nix
index b987557d5f68..22422adad92a 100644
--- a/nixpkgs/pkgs/development/python-modules/nmigen-soc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nmigen-soc/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , nmigen
 , setuptools
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "0afmnfs1ms7p1r4c1nc0sfvlcq36zjwaim7775v5i2vajcn3020c";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ setuptools nmigen ];
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/development/python-modules/nmigen/default.nix b/nixpkgs/pkgs/development/python-modules/nmigen/default.nix
index 1e38a087bce4..d42e27a29329 100644
--- a/nixpkgs/pkgs/development/python-modules/nmigen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nmigen/default.nix
@@ -3,11 +3,12 @@
 , pythonOlder
 , fetchFromGitHub
 , setuptools
-, setuptools_scm
+, setuptools-scm
 , pyvcd
 , jinja2
 , importlib-resources
 , importlib-metadata
+, git
 
 # for tests
 , pytestCheckHook
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     sha256 = "0cjs9wgmxa76xqmjhsw4fsb2mhgvd85jgs2mrjxqp6fwp8rlgnl1";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm git ];
 
   propagatedBuildInputs = [
     setuptools
diff --git a/nixpkgs/pkgs/development/python-modules/notify-py/default.nix b/nixpkgs/pkgs/development/python-modules/notify-py/default.nix
index 46c72fb69794..ba4725c9aaa4 100644
--- a/nixpkgs/pkgs/development/python-modules/notify-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notify-py/default.nix
@@ -1,33 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, alsaUtils, libnotify, which, loguru, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, coreutils, alsa-utils
+, libnotify, which, jeepney, loguru, pytestCheckHook }:
 
 buildPythonPackage rec {
-  pname = "notify_py";
-  version = "0.3.1";
+  pname = "notify-py";
+  version = "0.3.3";
 
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5ba696d18ffe1d7070f3d0a5b4923fee4d6c863de6843af105bec0ce9915ebad";
+  src = fetchFromGitHub {
+    owner = "ms7m";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1n35adwsyhz304n4ifnsz6qzkymwhyqc8sg8d76qv5psv2xsnzlf";
   };
 
-  postPatch = ''
-   substituteInPlace setup.py \
-     --replace "loguru==0.4.1" "loguru~=0.5.0"
-  '';
-
-  propagatedBuildInputs = [ alsaUtils libnotify loguru which ];
+  propagatedNativeBuildInputs = [ which ]
+    ++ lib.optionals stdenv.isLinux [ alsa-utils libnotify ];
+  propagatedBuildInputs = [ loguru ]
+    ++ lib.optionals stdenv.isLinux [ jeepney ];
 
-  checkInputs = [ alsaUtils libnotify pytest which ];
+  checkInputs = [ coreutils pytestCheckHook ];
 
-  checkPhase = ''
-    pytest
+  # Tests search for "afplay" binary which is built in to MacOS and not available in nixpkgs
+  preCheck = ''
+    mkdir $TMP/bin
+    ln -s ${coreutils}/bin/true $TMP/bin/afplay
+    export PATH="$TMP/bin:$PATH"
   '';
 
   pythonImportsCheck = [ "notifypy" ];
 
   meta = with lib; {
-    description = " Python Module for sending cross-platform desktop notifications on Windows, macOS, and Linux.";
+    description = "Python Module for sending cross-platform desktop notifications on Windows, macOS, and Linux.";
     homepage = "https://github.com/ms7m/notify-py/";
     license = licenses.mit;
     maintainers = with maintainers; [ austinbutler ];
diff --git a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
index 44ee4597dbe4..548565ff1d35 100644
--- a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
@@ -1,28 +1,29 @@
 { lib, stdenv
 , buildPythonPackage
-, fetchurl
+, fetchFromGitHub
 , vmprof
 , pyqt4
 , isPyPy
 , pkgs
+, scons
+, chrpath
 }:
 
-let
-  # scons is needed but using it requires Python 2.7
-  # Therefore we create a separate env for it.
-  scons = pkgs.python27.withPackages(ps: [ pkgs.scons ]);
-in buildPythonPackage rec {
-  version = "0.6.8.4";
+buildPythonPackage rec {
+  version = "0.6.14.5";
   pname = "Nuitka";
 
   # Latest version is not yet on PyPi
-  src = fetchurl {
-    url = "https://github.com/kayhayen/Nuitka/archive/${version}.tar.gz";
-    sha256 = "0awhwksnmqmbciimqmd11wygp7bnq57khcg4n9r4ld53s147rmqm";
+  src = fetchFromGitHub {
+    owner = "kayhayen";
+    repo = "Nuitka";
+    rev = version;
+    sha256 = "08kcp22zdgp25kk4bp56z196mn6bdi3z4x0q2y9vyz0ywfzp9zap";
   };
 
   checkInputs = [ vmprof pyqt4 ];
   nativeBuildInputs = [ scons ];
+  propagatedBuildInputs = [ chrpath ];
 
   postPatch = ''
     patchShebangs tests/run-tests
diff --git a/nixpkgs/pkgs/development/python-modules/numba/default.nix b/nixpkgs/pkgs/development/python-modules/numba/default.nix
index 211e9d6185f6..c49a4105abe9 100644
--- a/nixpkgs/pkgs/development/python-modules/numba/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numba/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     sha256 = "55c11d7edbba2ba715f2b56f5294cad55cfd87bff98e2627c3047c2d5cc52d16";
   };
 
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   propagatedBuildInputs = [ numpy llvmlite setuptools ];
   pythonImportsCheck = [ "numba" ];
diff --git a/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix b/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
index 89471207c944..ca31e34d297c 100644
--- a/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, setuptools_scm
+, setuptools-scm
 , cython
 , numpy
 , msgpack
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
     cython
     gcc8
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
index 839582e87f0d..25e81c89c255 100644
--- a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
@@ -14,20 +14,18 @@
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "0.13.0";
+  version = "14.0.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5202adcd96ddbbccbc267da02f2d14e977300c81291aaa77be4fd9f2e27cfa37";
+    sha256 = "1zfcl3dq9ladqg7fnpx6kgxf1ckjzlc8v3j6wa8w6iwglm40ax4r";
   };
 
   propagatedBuildInputs = [
     jupyterhub
   ];
 
-  pytestFlagsArray = [ "oauthenticator/tests" ];
-
   checkInputs = [
     google-api-python-client
     google-auth-oauthlib
@@ -38,6 +36,20 @@ buildPythonPackage rec {
     requests-mock
   ];
 
+  postPatch = ''
+  # The constraint was removed. No longer needed for > 14.0.0
+  # https://github.com/jupyterhub/oauthenticator/pull/431
+    substituteInPlace test-requirements.txt --replace "pyjwt>=1.7,<2.0" "pyjwt"
+  '';
+
+  disabledTests = [
+    # Test are outdated, https://github.com/jupyterhub/oauthenticator/issues/432
+    "test_azuread"
+    "test_mediawiki"
+  ];
+
+  pythonImportsCheck = [ "oauthenticator" ];
+
   meta = with lib; {
     description = "Authenticate JupyterHub users with common OAuth providers, including GitHub, Bitbucket, and more.";
     homepage =  "https://github.com/jupyterhub/oauthenticator";
diff --git a/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix b/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix
index d018a924d898..33d027f1beed 100644
--- a/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ofxparse/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , six
 , beautifulsoup4
 , lxml
@@ -8,11 +8,15 @@
 
 buildPythonPackage rec {
   pname = "ofxparse";
-  version = "0.20";
+  version = "unstable-2020-02-05";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0zn3grc6xhgzcc81qc3dxkkwk731cjjqqhb46smw12lk09cdnigb";
+  # The newer changes haven't been released yet and ledger-autosync
+  # depends on them:
+  src = fetchFromGitHub {
+    owner = "jseutter";
+    repo = "ofxparse";
+    rev = "3236cfd96434feb6bc79a8b66f3400f18e2ad3c4";
+    sha256 = "1rkp174102q7hwjrg3na0qnfd612xb3r360b9blkbprjhzxy7gr7";
   };
 
   propagatedBuildInputs = [ six beautifulsoup4 lxml ];
diff --git a/nixpkgs/pkgs/development/python-modules/ondilo/default.nix b/nixpkgs/pkgs/development/python-modules/ondilo/default.nix
index 7010bd473aba..271243ab791e 100644
--- a/nixpkgs/pkgs/development/python-modules/ondilo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ondilo/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "ondilo";
-  version = "0.2.0";
+  version = "0.3.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "JeromeHXP";
     repo = pname;
     rev = version;
-    sha256 = "0k7c9nacf7pxvfik3hkv9vvvda2sx5jrf6zwq7r077x7fw5l8d2b";
+    sha256 = "sha256-MI6K+41I/IVi+GRBdmRIHbljULDFLAwpo3W8tdxCOBM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/openapi-schema-validator/default.nix b/nixpkgs/pkgs/development/python-modules/openapi-schema-validator/default.nix
new file mode 100644
index 000000000000..f09a42ddd69b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/openapi-schema-validator/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, isodate
+, jsonschema
+, pytest-flake8
+, pytestcov
+, rfc3339-validator
+, six
+, strict-rfc3339
+}:
+
+buildPythonPackage rec {
+  pname = "openapi-schema-validator";
+  version = "0.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a4b2712020284cee880b4c55faa513fbc2f8f07f365deda6098f8ab943c9f0df";
+  };
+
+  propagatedBuildInputs = [ isodate jsonschema six strict-rfc3339 rfc3339-validator ];
+
+  checkInputs = [ pytestCheckHook pytestcov pytest-flake8 ];
+  pythonImportsCheck = [ "openapi_schema_validator" ];
+
+  meta = with lib; {
+    description = "Validates OpenAPI schema against the OpenAPI Schema Specification v3.0";
+    homepage = "https://github.com/p1c2u/openapi-schema-validator";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix b/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
index 1cd95bcd6ab3..88455e726107 100644
--- a/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, isPy27, fetchPypi
-, jsonschema, pyyaml, six, pathlib
+, jsonschema, openapi-schema-validator, pyyaml, six, pathlib
 , mock, pytest, pytestcov, pytest-flake8, tox, setuptools }:
 
 buildPythonPackage rec {
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "53ba3d884e98ff2062d5ada025aa590541dcd665b8f81067dc82dd61c0923759";
   };
 
-  propagatedBuildInputs = [ jsonschema pyyaml six setuptools ]
+  propagatedBuildInputs = [ jsonschema openapi-schema-validator pyyaml six setuptools ]
     ++ (lib.optionals (isPy27) [ pathlib ]);
 
   checkInputs = [ mock pytest pytestcov pytest-flake8 tox ];
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
index 35655b207a59..985d4e199e18 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
@@ -1,16 +1,16 @@
 { lib
 , fetchFromGitHub
 }: rec {
-  version = "3.0.0";
+  version = "3.0.1";
   src = fetchFromGitHub {
     owner = "openrazer";
     repo = "openrazer";
     rev = "v${version}";
-    sha256 = "sha256-gw6Qt9BntPcF3zw19PXftDbhoCeBr8hwrujy51rb5Fc=";
+    sha256 = "sha256-ptB0jP0kp1Liynkfz0B0OMw6xNQG1s8IvxhgNAdEytM=";
   };
   meta = with lib; {
     homepage = "https://openrazer.github.io/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ roelvandijk evanjs ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/opsdroid_get_image_size/default.nix b/nixpkgs/pkgs/development/python-modules/opsdroid_get_image_size/default.nix
new file mode 100644
index 000000000000..0f33da44145f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/opsdroid_get_image_size/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "opsdroid_get_image_size";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "124j2xvfxv09q42qfb8nqlcn55y7f09iayrix3yfyrs2qyzav78a";
+  };
+
+  # test data not included on pypi
+  doCheck = false;
+
+  pythonImportsCheck = [ "get_image_size" ];
+
+  meta = with lib; {
+    description = "Get image width and height given a file path using minimal dependencies";
+    license = licenses.mit;
+    homepage = "https://github.com/opsdroid/image_size";
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/oscrypto/default.nix b/nixpkgs/pkgs/development/python-modules/oscrypto/default.nix
index 6012398db982..cc89f3124806 100644
--- a/nixpkgs/pkgs/development/python-modules/oscrypto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oscrypto/default.nix
@@ -1,25 +1,30 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , asn1crypto
 , fetchPypi
-, lib
 , openssl
 }:
 
 buildPythonPackage rec {
   pname = "oscrypto";
-  version = "1.1.1";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vlryamwr442w2av8f54ldhls8fqs6678fg60pqbrf5pjy74kg23";
+    sha256 = "1546si2bdgkqnbvv4mw1hr4mhh6bq39d9z4wxgv1m7fq6miclb3x";
   };
 
   testSources = fetchPypi {
     inherit version;
     pname = "oscrypto_tests";
-    sha256 = "1crndz647pqdd8148yn3n5l63xwr6qkwa1qarsz59nk3ip0dsyq5";
+    sha256 = "1ha68dsrbx6mlra44x0n81vscn17pajbl4yg7cqkk7mq1zfmjwks";
   };
 
+  propagatedBuildInputs = [
+    asn1crypto
+    openssl
+  ];
+
   preCheck = ''
     tar -xf ${testSources}
     mv oscrypto_tests-${version} tests
@@ -28,14 +33,11 @@ buildPythonPackage rec {
     sed -e '/TLSTests/d' -e '/TrustListTests/d' -i tests/__init__.py
   '';
 
-  propagatedBuildInputs = [
-    asn1crypto
-    openssl
-  ];
+  pythonImportsCheck = [ "oscrypto" ];
 
   meta = with lib; {
-    description = "A compilation-free, always up-to-date encryption library for Python that works on Windows, OS X, Linux and BSD.";
-    homepage = "https://www.snowflake.com/";
+    description = "Encryption library for Python";
+    homepage = "https://github.com/wbond/oscrypto";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/osmnx/default.nix b/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
index 3cd420c7491f..a55d26d83c28 100755
--- a/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osmnx/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, geopandas, descartes, matplotlib, networkx, numpy
-, pandas, requests, Rtree, shapely, folium, scikitlearn, scipy}:
+, pandas, requests, Rtree, shapely, folium, scikit-learn, scipy}:
 
 buildPythonPackage rec {
   pname = "osmnx";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "1k3y5kl4k93vxaxyanc040x44s2fyyc3m1ndy2j3kg0037z8ad4z";
   };
 
-  propagatedBuildInputs = [ geopandas descartes matplotlib networkx numpy pandas requests Rtree shapely folium scikitlearn scipy ];
+  propagatedBuildInputs = [ geopandas descartes matplotlib networkx numpy pandas requests Rtree shapely folium scikit-learn scipy ];
 
   # requires network
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/ovoenergy/default.nix b/nixpkgs/pkgs/development/python-modules/ovoenergy/default.nix
new file mode 100644
index 000000000000..42615fa664dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ovoenergy/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ovoenergy";
+  version = "1.1.12";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "timmo001";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1430k699gblxwspsbgxnha8afk6npqharhz2jyjw5gir9pi6g9cz";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    click
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "ovoenergy" ];
+
+  meta = with lib; {
+    description = "Python client for getting data from OVO's API";
+    homepage = "https://github.com/timmo001/ovoenergy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/2.nix b/nixpkgs/pkgs/development/python-modules/pandas/2.nix
index 936a3db296ec..8af4094b0cfb 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/2.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   # For OSX, we need to add a dependency on libcxx, which provides
   # `complex.h` and other libraries that pandas depends on to build.
   postPatch = lib.optionalString stdenv.isDarwin ''
-    cpp_sdk="${libcxx}/include/c++/v1";
+    cpp_sdk="${lib.getDev libcxx}/include/c++/v1";
     echo "Adding $cpp_sdk to the setup.py common_include variable"
     substituteInPlace setup.py \
       --replace "['pandas/src/klib', 'pandas/src']" \
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/default.nix b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
index 7fd551e192c9..f3505e3c9a6a 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
@@ -77,7 +77,7 @@ buildPythonPackage rec {
   # For OSX, we need to add a dependency on libcxx, which provides
   # `complex.h` and other libraries that pandas depends on to build.
   postPatch = lib.optionalString stdenv.isDarwin ''
-    cpp_sdk="${libcxx}/include/c++/v1";
+    cpp_sdk="${lib.getDev libcxx}/include/c++/v1";
     echo "Adding $cpp_sdk to the setup.py common_include variable"
     substituteInPlace setup.py \
       --replace "['pandas/src/klib', 'pandas/src']" \
diff --git a/nixpkgs/pkgs/development/python-modules/parfive/default.nix b/nixpkgs/pkgs/development/python-modules/parfive/default.nix
index 45f4a66f2605..7b32cbb55bb3 100644
--- a/nixpkgs/pkgs/development/python-modules/parfive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parfive/default.nix
@@ -4,7 +4,7 @@
 , tqdm
 , aiohttp
 , pytest
-, setuptools_scm
+, setuptools-scm
 , pytest-localserver
 , pytest-socket
 , pytest-asyncio
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/path.py/2.nix b/nixpkgs/pkgs/development/python-modules/path.py/2.nix
index fb4ff20b7076..d7c635c2fe4a 100644
--- a/nixpkgs/pkgs/development/python-modules/path.py/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/path.py/2.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytest
 , pytest-flake8
 , glibcLocales
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytest pytest-flake8 glibcLocales packaging ];
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     importlib-metadata
   ] ++ lib.optional isPy27 backports_os
diff --git a/nixpkgs/pkgs/development/python-modules/path.py/default.nix b/nixpkgs/pkgs/development/python-modules/path.py/default.nix
index 5a0322edf657..e49b1ceb462c 100644
--- a/nixpkgs/pkgs/development/python-modules/path.py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/path.py/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytestCheckHook
 , pytest-flake8
 , glibcLocales
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytestCheckHook pytest-flake8 glibcLocales packaging ];
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     importlib-metadata
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pathy/default.nix b/nixpkgs/pkgs/development/python-modules/pathy/default.nix
new file mode 100644
index 000000000000..d656a752cf55
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pathy/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, typer
+, dataclasses
+, smart-open
+, pytest
+, mock
+, google-cloud-storage
+}:
+
+buildPythonPackage rec {
+  pname = "pathy";
+  version = "0.5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-nb8my/5rkc7thuHnXZHe1Hg8j+sLBlYyJcLHWrrKZ5M=";
+  };
+
+  propagatedBuildInputs = [ smart-open typer google-cloud-storage ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "smart-open>=2.2.0,<4.0.0" "smart-open>=2.2.0"
+  '';
+
+  checkInputs = [ pytestCheckHook mock ];
+
+  # Exclude tests that require provider credentials
+  pytestFlagsArray = [
+    "--ignore=pathy/_tests/test_clients.py"
+    "--ignore=pathy/_tests/test_gcs.py"
+    "--ignore=pathy/_tests/test_s3.py"
+  ];
+
+  meta = with lib; {
+    description = "A Path interface for local and cloud bucket storage";
+    homepage = "https://github.com/justindujardin/pathy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ melling ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix b/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix
index d544f27b988b..66bed253cb86 100644
--- a/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdoc3/default.nix
@@ -3,7 +3,7 @@
 , Mako
 , markdown
 , setuptools-git
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "9df5d931f25f353c69c46819a3bd03ef96dd286f2a70bb1b93a23a781f91faa1";
   };
 
-  nativeBuildInputs = [ setuptools-git setuptools_scm ];
+  nativeBuildInputs = [ setuptools-git setuptools-scm ];
   propagatedBuildInputs = [ Mako markdown ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/peewee/default.nix b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
index 6f5d8e262279..fd057d24d31e 100644
--- a/nixpkgs/pkgs/development/python-modules/peewee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
@@ -12,14 +12,14 @@
 buildPythonPackage rec {
 
   pname = "peewee";
-  version = "3.13.3";
+  version = "3.14.4";
 
   # pypi release does not provide tests
   src = fetchFromGitHub {
     owner = "coleifer";
     repo = pname;
     rev = version;
-    sha256 = "1r67hxb9m6v0xbnbqfnsw6dahmdr94pf81b4x51jfw6x9sa4izi4";
+    sha256 = "0x85swpaffysc05kka0mab87cnilzw1lpacfhcx5ayabh0i2qsh6";
   };
 
 
diff --git a/nixpkgs/pkgs/development/python-modules/persim/default.nix b/nixpkgs/pkgs/development/python-modules/persim/default.nix
index d016d1ccea8b..2868cea4aea7 100644
--- a/nixpkgs/pkgs/development/python-modules/persim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/persim/default.nix
@@ -1,12 +1,14 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, scikitlearn
-, numpy
+, deprecated
+, hopcroftkarp
+, joblib
 , matplotlib
+, numpy
+, scikit-learn
 , scipy
-, hopcroftkarp
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -19,26 +21,24 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    scikitlearn
-    numpy
+    deprecated
+    hopcroftkarp
+    joblib
     matplotlib
+    numpy
+    scikit-learn
     scipy
-    hopcroftkarp
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  checkPhase = ''
+  preCheck = ''
     # specifically needed for darwin
     export HOME=$(mktemp -d)
     mkdir -p $HOME/.matplotlib
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
-
-    # ignore tests due to python 2.7 fail
-    pytest --ignore test/test_plots.py \
-           --ignore test/test_visuals.py
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
index a03452d78628..958d3b765592 100644
--- a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.19.2";
+  version = "1.19.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RMu008kS8toWfKAr+YoAQPfpMmDk7xFMKNXWFSAS6gc=";
+    sha256 = "sha256-fJxtV1QbDyFT4jqNdZzrPXy5MIkY+6atnpL44OWpC8g=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pglast/default.nix b/nixpkgs/pkgs/development/python-modules/pglast/default.nix
index 3240b0809922..6a0f8940788c 100644
--- a/nixpkgs/pkgs/development/python-modules/pglast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pglast/default.nix
@@ -1,29 +1,33 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , isPy3k
-, pythonOlder
 , setuptools
-, aenum
-, pytest
 , pytestcov
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "1.17";
+  version = "3.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "2979b38ca5f72cfa0a5db78af2f62d04db6a7647ee7f03eac7a67f9e86e3f5f9";
+  # PyPI tarball does not include all the required files
+  src = fetchFromGitHub {
+    owner = "lelit";
+    repo = pname;
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "0yi24wj19rzw5dvppm8g3hnfskyzbrqw14q8x9f2q5zi8g6xnnrd";
   };
 
   disabled = !isPy3k;
 
-  propagatedBuildInputs = [ setuptools ] ++ lib.optionals (pythonOlder "3.6") [ aenum ];
+  propagatedBuildInputs = [ setuptools ];
 
   checkInputs = [ pytest pytestcov ];
 
+  pythonImportsCheck = [ "pglast" ];
+
   checkPhase = ''
     pytest
   '';
@@ -31,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/lelit/pglast";
     description = "PostgreSQL Languages AST and statements prettifier";
+    changelog = "https://github.com/lelit/pglast/raw/v${version}/CHANGES.rst";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pgpy/default.nix b/nixpkgs/pkgs/development/python-modules/pgpy/default.nix
index b3fde72baec3..a79c65f4059a 100644
--- a/nixpkgs/pkgs/development/python-modules/pgpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgpy/default.nix
@@ -1,31 +1,31 @@
-{ lib, isPy3k, fetchFromGitHub, buildPythonPackage
+{ lib, pythonOlder, fetchFromGitHub, buildPythonPackage
 , six, enum34, pyasn1, cryptography, singledispatch ? null
-, fetchPypi, pytestCheckHook }:
+, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "pgpy";
-  version = "0.5.2";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "SecurityInnovation";
     repo = "PGPy";
-    rev = version;
-    sha256 = "1v2b1dyq1sl48d2gw7vn4hv6sasd9ihpzzcq8yvxj9dgfak2y663";
+    rev = "v${version}";
+    sha256 = "03pch39y3hi4ici6y6lvz0j0zram8dw2wvnmq1zyjy3vyvm1ms4a";
   };
 
   propagatedBuildInputs = [
     six
     pyasn1
     cryptography
+  ] ++ lib.optionals (pythonOlder "3.4") [
     singledispatch
-  ] ++ lib.optional (!isPy3k) enum34;
+    enum34
+  ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
-  disabledTests = [ "test_sign_string" "test_verify_string" ];
-
   meta = with lib; {
     homepage = "https://github.com/SecurityInnovation/PGPy";
     description = "Pretty Good Privacy for Python 2 and 3";
@@ -35,6 +35,6 @@ buildPythonPackage rec {
       4880.
     '';
     license = licenses.bsd3;
-    maintainers = with maintainers; [ eadwu ];
+    maintainers = with maintainers; [ eadwu dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix b/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix
index d0cbf5bafe41..c49d6bae313c 100644
--- a/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgspecial/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, psycopg2, click, sqlparse }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, psycopg2
+, click
+, configobj
+, sqlparse
+}:
 
 buildPythonPackage rec {
   pname = "pgspecial";
@@ -9,13 +17,16 @@ buildPythonPackage rec {
     sha256 = "b68feb0005f57861573d3fbb82c5c777950decfbb2d1624af57aec825db02c02";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ click sqlparse psycopg2 ];
+  propagatedBuildInputs = [
+    click
+    sqlparse
+    psycopg2
+  ];
 
-  checkPhase = ''
-    find tests -name \*.pyc -delete
-    py.test tests
-  '';
+  checkInputs = [
+    configobj
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Meta-commands handler for Postgres Database";
diff --git a/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix b/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
index 43ce5f1e766d..8eab09046dc2 100644
--- a/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
@@ -65,6 +65,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/bootphon/phonemizer";
     description = "Simple text to phones converter for multiple languages";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pika/default.nix b/nixpkgs/pkgs/development/python-modules/pika/default.nix
index ef3250732164..1c8cae9f041c 100644
--- a/nixpkgs/pkgs/development/python-modules/pika/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pika/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, gevent
 , nose
 , mock
 , twisted
@@ -11,12 +12,34 @@ buildPythonPackage rec {
   pname = "pika";
   version = "1.2.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f023d6ac581086b124190cb3dc81dd581a149d216fa4540ac34f9be1e3970b89";
+  src = fetchFromGitHub {
+    owner = "pika";
+    repo = "pika";
+    rev = version;
+    sha256 = "sha256-Wog6Wxa8V/zv/bBrFOigZi6KE5qRf82bf1GK2XwvpDI=";
   };
 
-  checkInputs = [ nose mock twisted tornado ];
+  propagatedBuildInputs = [ gevent tornado twisted ];
+
+  checkInputs = [ nose mock ];
+
+  postPatch = ''
+    # don't stop at first test failure
+    # don't run acceptance tests because they access the network
+    # don't report test coverage
+    substituteInPlace setup.cfg \
+      --replace "stop = 1" "stop = 0" \
+      --replace "tests=tests/unit,tests/acceptance" "tests=tests/unit" \
+      --replace "with-coverage = 1" "with-coverage = 0"
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    PIKA_TEST_TLS=true nosetests
+
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "Pure-Python implementation of the AMQP 0-9-1 protocol";
diff --git a/nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix b/nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix
index 3aed634dfb1a..d7b2ff8d6b36 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow-simd/default.nix
@@ -1,19 +1,20 @@
 { lib, stdenv, buildPythonPackage, fetchFromGitHub, isPyPy, isPy3k
 , olefile, freetype, libjpeg, zlib, libtiff, libwebp, tcl, lcms2
-, tk, libX11, openjpeg, libimagequant, pyroma, numpy, pytestCheckHook
+, libxcb, tk, libX11, openjpeg, libimagequant, pyroma, numpy
+, pytestCheckHook
 }@args:
 
 import ../pillow/generic.nix (rec {
   pname = "Pillow-SIMD";
-  version = "7.0.0.post3";
+  version = "8.1.2";
 
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "uploadcare";
     repo = "pillow-simd";
-    rev = "v${version}";
-    sha256 = "1h832xp1bzf951hr4dmjmxqfsv28sx9lr2cq96qdz1c72k40zj1h";
+    rev = version;
+    sha256 = "1z0c1qpx7l1bhj71ww7za7kl29j5wdraqr2pdhv4dp1q74kgrr0m";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pint/default.nix b/nixpkgs/pkgs/development/python-modules/pint/default.nix
index c0aa86a3763d..f39caef6e59d 100644
--- a/nixpkgs/pkgs/development/python-modules/pint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pint/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, setuptools_scm
+, setuptools-scm
 , importlib-metadata
 , packaging
 # Check Inputs
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.6";
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ packaging ]
     ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
diff --git a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
index 48f15181ce00..51da889621f7 100644
--- a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
@@ -1,45 +1,36 @@
-{ lib, fetchPypi, buildPythonPackage, pip, pytest, click, six
-, setuptools_scm, git, glibcLocales, mock }:
+{ lib
+, fetchPypi
+, pythonOlder
+, buildPythonPackage
+, pip
+, pytest
+, pytest-xdist
+, click
+, setuptools-scm
+, git
+, glibcLocales
+, mock
+, pep517
+}:
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "6.0.1";
+  version = "6.1.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b0c7b95e8d3dfb011bb42cb38f356fcf5d0630480462b59c4d0a112b8d90281";
+    sha256 = "sha256-QAv3finMpIwxq8IQBCkyu1LcwTjvTqTVLF20KaqK5u4=";
   };
 
   LC_ALL = "en_US.UTF-8";
-  checkInputs = [ pytest git glibcLocales mock ];
-  propagatedBuildInputs = [ pip click six setuptools_scm ];
-
-  disabledTests = lib.concatMapStringsSep " and " (s: "not " + s) [
-    # Depend on network tests:
-    "test_allow_unsafe_option" #paramaterized, but all fail
-    "test_annotate_option" #paramaterized, but all fail
-    "test_editable_package_vcs"
-    "test_editable_top_level_deps_preserved" # can't figure out how to select only one parameter to ignore
-    "test_filter_pip_markers"
-    "test_filter_pip_markes"
-    "test_generate_hashes_all_platforms"
-    "test_generate_hashes_verbose"
-    "test_generate_hashes_with_editable"
-    "test_generate_hashes_with_url"
-    "test_generate_hashes_without_interfering_with_each_other"
-    "test_get_file_hash_without_interfering_with_each_other"
-    "test_get_hashes_local_repository_cache_miss"
-    "test_realistic_complex_sub_dependencies"
-    "test_stdin"
-    "test_upgrade_packages_option"
-    "test_url_package"
-    "test_editable_package"
-    "test_locally_available_editable_package_is_not_archived_in_cache_dir"
-  ];
+  checkInputs = [ pytest git glibcLocales mock pytest-xdist ];
+  propagatedBuildInputs = [ pip click setuptools-scm pep517 ];
 
   checkPhase = ''
     export HOME=$(mktemp -d) VIRTUAL_ENV=1
-    py.test -k "${disabledTests}"
+    py.test -m "not network"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pipx/default.nix b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
index 34a7bc6b31a1..c49601786732 100644
--- a/nixpkgs/pkgs/development/python-modules/pipx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
@@ -6,13 +6,12 @@
 , argcomplete
 , packaging
 , importlib-metadata
-, colorama
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pipx";
-  version = "0.16.1.0";
+  version = "0.16.3";
 
   disabled = pythonOlder "3.6";
 
@@ -21,14 +20,13 @@ buildPythonPackage rec {
     owner = "pipxproject";
     repo = pname;
     rev = version;
-    sha256 = "081raqsaq7i2x4yxhxppv930jhajdwmngin5wazy7vqhiy3xc669";
+    sha256 = "1w5pzn5mgl9rr9zbmqza5is4mvjvcgjps1q9qa1mvbnyvakdkr4c";
   };
 
   propagatedBuildInputs = [
     userpath
     argcomplete
     packaging
-    colorama
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
@@ -39,9 +37,17 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  # disable tests, which require internet connection
-  pytestFlagsArray = [ "--ignore=tests/test_install_all_packages.py" ];
+  pytestFlagsArray = [
+    "--ignore=tests/test_install_all_packages.py"
+    # start local pypi server and use in tests
+    "--net-pypiserver"
+  ];
   disabledTests = [
+    # disable tests which are difficult to emulate due to shell manipulations
+    "path_warning"
+    "script_from_internet"
+    "ensure_null_pythonpath"
+    # disable tests, which require internet connection
     "install"
     "inject"
     "ensure_null_pythonpath"
@@ -54,6 +60,7 @@ buildPythonPackage rec {
     "suffix"
     "legacy_venv"
     "determination"
+    "json"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/plexapi/default.nix b/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
index 52c371154111..dc832809c28f 100644
--- a/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plexapi/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "PlexAPI";
-  version = "4.5.1";
+  version = "4.5.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "pkkid";
     repo = "python-plexapi";
     rev = version;
-    sha256 = "sha256-WrjIN6+7ybprnjCv57BdKaQYoQ+HgGVr/XytXcbAmwg=";
+    sha256 = "sha256-9rdpisEuLUO7oO7+7SQb4fXqRG30rf4R7bSFY+QpMhM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pluggy/default.nix b/nixpkgs/pkgs/development/python-modules/pluggy/default.nix
index ecb01f252f43..30fa2e1945b2 100644
--- a/nixpkgs/pkgs/development/python-modules/pluggy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pluggy/default.nix
@@ -1,7 +1,7 @@
 { buildPythonPackage
 , lib
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , importlib-metadata
 }:
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   # To prevent infinite recursion with pytest
   doCheck = false;
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ importlib-metadata ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/plugwise/default.nix b/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
index 289f1871f338..d62c2e8bb72b 100644
--- a/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plugwise/default.nix
@@ -1,31 +1,31 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , aiohttp
 , async-timeout
+, buildPythonPackage
 , crcmod
 , defusedxml
-, pyserial
-, pytz
-, python-dateutil
-, semver
+, fetchFromGitHub
 , jsonpickle
+, munch
 , mypy
+, pyserial
 , pytest-aiohttp
 , pytest-asyncio
-, pytest-cov
 , pytestCheckHook
+, python-dateutil
+, pytz
+, semver
 }:
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python-plugwise";
     rev = version;
-    sha256 = "sha256-MZ4R55vGUyWmR0Md83eNerzsgtYMch1vfQ3sqbm12bM=";
+    sha256 = "sha256-5r+Xe3EKLjuR7mPGEPOKzhE7G6OzNEClf847Px9VdWU=";
   };
 
   propagatedBuildInputs = [
@@ -33,9 +33,10 @@ buildPythonPackage rec {
     async-timeout
     crcmod
     defusedxml
+    munch
     pyserial
-    pytz
     python-dateutil
+    pytz
     semver
   ];
 
@@ -44,8 +45,6 @@ buildPythonPackage rec {
     mypy
     pytest-aiohttp
     pytest-asyncio
-    pytest-cov
-    pytest-asyncio
     pytestCheckHook
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/poetry/default.nix b/nixpkgs/pkgs/development/python-modules/poetry/default.nix
index 51e95efbee50..ad043e9f59e0 100644
--- a/nixpkgs/pkgs/development/python-modules/poetry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poetry/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace pyproject.toml \
      --replace 'importlib-metadata = {version = "^1.6.0", python = "<3.8"}' \
-       'importlib-metadata = {version = ">=1.6,<2", python = "<3.8"}' \
+       'importlib-metadata = {version = ">=1.6", python = "<3.8"}' \
      --replace 'version = "^21.2.0"' 'version = ">=21.2"'
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix b/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix
index 8f260ad8ccb9..518840d415a9 100644
--- a/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pomegranate/default.nix
@@ -1,19 +1,41 @@
-{ lib, buildPythonPackage, fetchFromGitHub, numpy, scipy, cython, networkx, joblib, nose, pyyaml }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, numpy
+, scipy
+, cython
+, networkx
+, joblib
+, pandas
+, nose
+, pyyaml
+}:
+
 
 buildPythonPackage rec {
   pname = "pomegranate";
-  version = "0.11.2";
+  version = "0.13.5";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "jmschrei";
     rev = "v${version}";
-    sha256 = "070ciwww1lhjmfwd5n1kcwgxwbgdfvmhjs4l156bnf08z9dlrafl";
+    sha256 = "1hbxchp3daykkf1fa79a9mh34p78bygqcf1nv4qwkql3gw0pd6l7";
   };
 
+  patches = lib.optionals (lib.versionOlder version "13.6") [
+    # Fix compatibility with recent joblib release, will be part of the next
+    # pomegranate release after 0.13.5
+    (fetchpatch {
+      url = "https://github.com/jmschrei/pomegranate/commit/42d14bebc44ffd4a778b2a6430aa845591b7c3b7.patch";
+      sha256 = "0f9cx0fj9xkr3hch7jyrn76zjypilh5bqw734caaw6g2m49lvbff";
+    })
+  ];
+
   propagatedBuildInputs = [ numpy scipy cython networkx joblib pyyaml ];
 
-  checkInputs = [ nose ];
+  checkInputs = [ pandas nose ];  # as of 0.13.5, it depends explicitly on nose, rather than pytest.
 
   meta = with lib; {
     description = "Probabilistic and graphical models for Python, implemented in cython for speed";
diff --git a/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix b/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
index 345f092a80fa..4a9fdfa42620 100644
--- a/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poppler-qt5/default.nix
@@ -1,44 +1,64 @@
-{ buildPythonPackage, fetchPypi, lib, sip, qtbase, pyqt5, poppler, pkg-config, fetchpatch
-, substituteAll
+{ stdenv
+, lib
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, pythonPackages
+, sip
+, qtbase
+, qmake
+, pyqt5
+, pyqt-builder
+, poppler
+, pkg-config
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "python-poppler-qt5";
-  version = "0.24.2";
+  version = "21.1.0";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l69llw1fzwz8y90q0qp9q5pifbrqjjbwii7di54dwghw5fc6w1r";
+    sha256 = "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd";
   };
 
   patches = [
-    (substituteAll {
-      src = ./poppler-include-dir.patch;
-      poppler_include_dir = "${poppler.dev}/include/poppler";
-    })
+    # Fix for https://github.com/frescobaldi/python-poppler-qt5/issues/43 (from PR #45)
     (fetchpatch {
-      url = "https://github.com/wbsoft/python-poppler-qt5/commit/faf4d1308f89560b0d849671226e3080dfc72e79.patch";
-      sha256 = "18krhh6wzsnpxzlzv02nginb1vralla8ai24zqk10nc4mj6fkj86";
+      url = "https://github.com/frescobaldi/python-poppler-qt5/commit/40e71ad88173d02648bceb2438bc0567e60dacd5.patch";
+      sha256 = "0c93d0k7b1n2s2njl8g92x6vw3z96da1fczah9qx07x08iw8dzi5";
     })
   ];
 
-  setupPyBuildFlags = [
-    "--pyqt-sip-dir ${pyqt5}/share/sip/PyQt5"
-    "--qt-include-dir ${qtbase.dev}/include"
-  ];
+  buildInputs = [ qtbase.dev poppler pyqt-builder ];
+  nativeBuildInputs = [ pkg-config qmake sip ];
+  propagatedBuildInputs = [ pyqt5.dev ];
+
+  format = "pyproject";
+  dontConfigure = true;
+
+  postPatch = ''
+    cat <<EOF >> pyproject.toml
+    sip-include-dirs = ["${pyqt5}/share/sip/PyQt5"]
 
-  buildInputs = [ qtbase.dev poppler ];
-  nativeBuildInputs = [ pkg-config ];
-  propagatedBuildInputs = [ sip pyqt5.dev ];
+    [tool.sip.bindings.Poppler-Qt5]
+    include-dirs = ["${poppler.dev}/include/poppler"]
+    tags = ["${sip.platform_tag}"]
+    EOF
+  '';
 
   # no tests, just bindings for `poppler_qt5`
   doCheck = false;
+  pythonImportsCheck = [ "popplerqt5" ];
 
   dontWrapQtApps = true;
 
   meta = with lib; {
-    homepage = "https://github.com/wbsoft/python-poppler-qt5";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
+    homepage = "https://github.com/frescobaldi/python-poppler-qt5";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ eduardosm ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch b/nixpkgs/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch
deleted file mode 100644
index 7106c1d6352c..000000000000
--- a/nixpkgs/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 59a75b0..0a73268 100644
---- a/setup.py
-+++ b/setup.py
-@@ -169,6 +169,7 @@ class build_ext(build_ext_base):
-                              'Please specify via --pyqt-sip-flags=')
- 
-         self.include_dirs += (self.qt_include_dir,
-+                              '@poppler_include_dir@',
-                               os.path.join(self.qt_include_dir, 'QtCore'),
-                               os.path.join(self.qt_include_dir, 'QtGui'),
-                               os.path.join(self.qt_include_dir, 'QtXml'))
diff --git a/nixpkgs/pkgs/development/python-modules/portend/default.nix b/nixpkgs/pkgs/development/python-modules/portend/default.nix
index 0429519c2021..da27dd3cd922 100644
--- a/nixpkgs/pkgs/development/python-modules/portend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/portend/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, pytest, setuptools_scm, tempora, pytest-black, pytestcov }:
+, pytest, setuptools-scm, tempora, pytest-black, pytestcov }:
 
 buildPythonPackage rec {
   pname = "portend";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     substituteInPlace pytest.ini --replace "--flake8" ""
   '';
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ tempora ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/powerline-mem-segment/default.nix b/nixpkgs/pkgs/development/python-modules/powerline-mem-segment/default.nix
new file mode 100644
index 000000000000..7bc38f2227ae
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/powerline-mem-segment/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, psutil
+}:
+
+buildPythonPackage rec {
+  pname = "powerline-mem-segment";
+  version = "2.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0507zw7g449zk7dcq56adcdp71inbqfdmp6y5yk4x4j7kkp6pii9";
+  };
+
+  propagatedBuildInputs = [ psutil ];
+
+  pythonImportsCheck = [ "powerlinemem" ];
+
+  meta = with lib; {
+    description = "Segment for Powerline showing the current memory usage in percent or absolute values.";
+    homepage = "https://github.com/mKaloer/powerline_mem_segment";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ thomasjm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ppscore/default.nix b/nixpkgs/pkgs/development/python-modules/ppscore/default.nix
index ad3a393a00d1..43dd1f249ed8 100644
--- a/nixpkgs/pkgs/development/python-modules/ppscore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ppscore/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , isPy27
 , pandas
-, scikitlearn
+, scikit-learn
 , pytestCheckHook
 }:
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     pandas
-    scikitlearn
+    scikit-learn
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix b/nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix
new file mode 100644
index 000000000000..9508cd0e435d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "prayer-times-calculator";
+  version = "0.0.5";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "uchagani";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-wm1r0MK6dx0cJvyQ7ulxvGWyIrNiPV2RXJD/IuKP3+E=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "prayer_times_calculator" ];
+
+  meta = with lib; {
+    description = "Python client for the Prayer Times API";
+    homepage = "https://github.com/uchagani/prayer-times-calculator";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/prettytable/1.nix b/nixpkgs/pkgs/development/python-modules/prettytable/1.nix
index 0bd18f0721fc..8191e9b5f579 100644
--- a/nixpkgs/pkgs/development/python-modules/prettytable/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/prettytable/1.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , glibcLocales
-, setuptools_scm
+, setuptools-scm
 , wcwidth
 }:
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "0wcpp1nkicrswb353yn6xd2x535cpif62nw5rgz33c1wj0wzbdvb";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   buildInputs = [ glibcLocales ];
 
   propagatedBuildInputs = [ wcwidth ];
diff --git a/nixpkgs/pkgs/development/python-modules/prettytable/default.nix b/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
index d349a58960a1..23702f8e8cfb 100644
--- a/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prettytable/default.nix
@@ -2,8 +2,10 @@
 , buildPythonPackage
 , fetchPypi
 , glibcLocales
-, setuptools_scm
+, setuptools-scm
 , wcwidth
+, importlib-metadata
+, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -15,10 +17,14 @@ buildPythonPackage rec {
     sha256 = "5882ed9092b391bb8f6e91f59bcdbd748924ff556bb7c634089d5519be87baa0";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   buildInputs = [ glibcLocales ];
 
-  propagatedBuildInputs = [ wcwidth ];
+  propagatedBuildInputs = [
+    wcwidth
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
 
   preCheck = ''
     export LANG="en_US.UTF-8"
diff --git a/nixpkgs/pkgs/development/python-modules/prison/default.nix b/nixpkgs/pkgs/development/python-modules/prison/default.nix
index 941da2bf9afd..95a79ea1896b 100644
--- a/nixpkgs/pkgs/development/python-modules/prison/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prison/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "prison";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "betodealmeida";
     repo = "python-rison";
     rev = version;
-    sha256 = "14vb468iznf9416z993bbqihywp9ibyslw5vp67wfr200zyxjwak";
+    sha256 = "sha256-qor40vUQeTdlO3vwug3GGNX5vkNaF0H7EWlRdsY4bvc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix b/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix
index c28a00901682..11ff6f71af63 100644
--- a/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/privacyidea/default.nix
@@ -1,10 +1,10 @@
 { lib, buildPythonPackage, fetchFromGitHub, cacert, openssl, python, nixosTests
 
 , cryptography, pyrad, pymysql, python-dateutil, flask-versioned, flask_script
-, defusedxml, croniter, flask_migrate, pyjwt, configobj, sqlsoup, pillow
+, defusedxml, croniter, flask_migrate, pyjwt1, configobj, sqlsoup, pillow
 , python-gnupg, passlib, pyopenssl, beautifulsoup4, smpplib, flask-babel
 , ldap3, huey, pyyaml, qrcode, oauth2client, requests, lxml, cbor2, psycopg2
-, pydash
+, pydash, ecdsa
 
 , mock, pytestCheckHook, responses, testfixtures
 }:
@@ -29,10 +29,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cryptography pyrad pymysql python-dateutil flask-versioned flask_script
-    defusedxml croniter flask_migrate pyjwt configobj sqlsoup pillow
+    defusedxml croniter flask_migrate pyjwt1 configobj sqlsoup pillow
     python-gnupg passlib pyopenssl beautifulsoup4 smpplib flask-babel
     ldap3 huey pyyaml qrcode oauth2client requests lxml cbor2 psycopg2
-    pydash
+    pydash ecdsa
   ];
 
   passthru.tests = { inherit (nixosTests) privacyidea; };
diff --git a/nixpkgs/pkgs/development/python-modules/psautohint/default.nix b/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
index cfed6dd74cf6..01b249e1c77f 100644
--- a/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder
 , fonttools
 , lxml, fs # for fonttools extras
-, setuptools_scm
+, setuptools-scm
 , pytestCheckHook, pytestcov, pytest_xdist
 }:
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     sed -i '/setup(/a \     version="${version}",' setup.py
   '';
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ fonttools lxml fs ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/psutil/default.nix b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
index a53005c7426a..ba17c5eca737 100644
--- a/nixpkgs/pkgs/development/python-modules/psutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
@@ -15,16 +15,25 @@ buildPythonPackage rec {
     sha256 = "1immnj532bnnrh1qmk5q3lsw3san8qfk9kxy1cpmy0knmfcwp70c";
   };
 
-  # arch doesn't report frequency is the same way
-  # tests segfaults on darwin https://github.com/giampaolo/psutil/issues/1715
-  doCheck = !stdenv.isDarwin && stdenv.isx86_64;
+  # We have many test failures on various parts of the package:
+  #  - segfaults on darwin:
+  #    https://github.com/giampaolo/psutil/issues/1715
+  #  - swap (on linux) might cause test failures if it is fully used:
+  #    https://github.com/giampaolo/psutil/issues/1911
+  #  - some mount paths are required in the build sanbox to make the tests succeed:
+  #    https://github.com/giampaolo/psutil/issues/1912
+  doCheck = false;
   checkInputs = [ pytestCheckHook ]
-    ++ lib.optionals isPy27 [ mock ipaddress unittest2 ];
+  ++ lib.optionals isPy27 [ mock ipaddress unittest2 ];
+  # In addition to the issues listed above there are some that occure due to
+  # our sandboxing which we can work around by disabling some tests:
+  # - cpu_times was flaky on darwin
+  # - the other disabled tests are likely due to sanboxing (missing specific errors)
   pytestFlagsArray = [
     "$out/${python.sitePackages}/psutil/tests/test_system.py"
   ];
-  # disable tests which don't work in sandbox
-  # cpu_times is flakey on darwin
+
+  # Note: $out must be referenced as test import paths are relative
   disabledTests = [
     "user"
     "disk_io_counters"
diff --git a/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix b/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix
index 6b05f383ec6f..83dd2f5fae3c 100644
--- a/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pulsectl";
-  version = "21.3.4";
+  version = "21.5.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-+qi5M2I3VlmQKY8ghw4T3RZ4pFhoR8paf/Kr8QdS81Y=";
+    sha256 = "0n448nkm2i4gnsq48vbj8sldmyx0b7c7rvzijg8h2pxdrmilbqql";
   };
 
   patches = [
@@ -17,9 +17,15 @@ buildPythonPackage rec {
     })
   ];
 
+  pythonImportsCheck = [
+    "pulsectl"
+  ];
+
   checkInputs = [ pulseaudio ];
+
   checkPhase = ''
-    ${python.interpreter} -m unittest pulsectl.tests.all
+    export HOME=$TMPDIR
+    ${python.interpreter} -m unittest discover
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pur/default.nix b/nixpkgs/pkgs/development/python-modules/pur/default.nix
index 7d79be68b600..d2bc7d5824dc 100644
--- a/nixpkgs/pkgs/development/python-modules/pur/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pur/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pur";
-  version = "5.4.0";
+  version = "5.4.1";
 
   src = fetchFromGitHub {
     owner = "alanhamlett";
     repo = "pip-update-requirements";
     rev = version;
-    sha256 = "1p2g0kz9l0rb59b3rkclb6wwidc93kwqh2hm4xc22b1w9r946six";
+    sha256 = "sha256-a2wViLJW+UXgHcURxr4irFVkH8STH84AVcwQIkvH+Fg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pure-eval/default.nix b/nixpkgs/pkgs/development/python-modules/pure-eval/default.nix
index 6e504951cdbe..c8fde03d79dc 100644
--- a/nixpkgs/pkgs/development/python-modules/pure-eval/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pure-eval/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, isPy3k, lib, fetchFromGitHub, setuptools_scm, toml, pytest }:
+{ buildPythonPackage, isPy3k, lib, fetchFromGitHub, setuptools-scm, toml, pytest }:
 
 buildPythonPackage rec {
   pname = "pure_eval";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ toml ];
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/puremagic/default.nix b/nixpkgs/pkgs/development/python-modules/puremagic/default.nix
new file mode 100644
index 000000000000..c635cdac186a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/puremagic/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "puremagic";
+  version = "1.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "025ih5q1qa40x88j7ngsdr5sf0dp400kwlfzz60i7v6fh0ms1zkg";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"argparse"' ""
+  '';
+
+  # test data not included on pypi
+  doCheck = false;
+
+  pythonImportsCheck = [ "puremagic" ];
+
+  meta = with lib; {
+    description = "Pure python implementation of magic file detection";
+    license = licenses.mit;
+    homepage = "https://github.com/cdgriffith/puremagic";
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/purl/default.nix b/nixpkgs/pkgs/development/python-modules/purl/default.nix
index 43fd5b71ca6c..aa85ea3965ab 100644
--- a/nixpkgs/pkgs/development/python-modules/purl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/purl/default.nix
@@ -1,22 +1,19 @@
 { lib, buildPythonPackage, fetchFromGitHub
-, nose
-, six
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "purl";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "codeinthehole";
     repo = "purl";
     rev = version;
-    sha256 = "0vi7xdm2xc1rbqrz5jwpr7x7dnkcrbjf1mb4w1q2c2f8jca0kk0g";
+    sha256 = "sha256-Jb3JRW/PtQ7NlO4eQ9DmTPu/sjvFTg2mztphoIF79gc=";
   };
 
-  propagatedBuildInputs = [ six ];
-
-  checkInputs = [ nose ];
+  checkInputs = [ pytestCheckHook];
 
   meta = with lib; {
     description = "Immutable URL class for easy URL-building and manipulation";
diff --git a/nixpkgs/pkgs/development/python-modules/pushbullet/default.nix b/nixpkgs/pkgs/development/python-modules/pushbullet/default.nix
index 68c9d9180dc8..43cab7db6756 100644
--- a/nixpkgs/pkgs/development/python-modules/pushbullet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pushbullet/default.nix
@@ -1,6 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests, websocket_client, python_magic
-, pytest, mock }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, websocket_client
+, python_magic
+, cryptography
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pushbullet.py";
@@ -11,13 +17,17 @@ buildPythonPackage rec {
     sha256 = "917883e1af4a0c979ce46076b391e0243eb8fe0a81c086544bcfa10f53e5ae64";
   };
 
-  propagatedBuildInputs = [ requests websocket_client python_magic ];
+  propagatedBuildInputs = [ cryptography requests websocket_client python_magic ];
 
-  checkInputs = [ pytest mock ];
-
-  checkPhase = ''
-    PUSHBULLET_API_KEY="" py.test -k "not test_e2e and not test_auth"
+  preCheck = ''
+    export PUSHBULLET_API_KEY=""
   '';
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    "test_auth_fail"
+    "test_auth_success"
+    "test_decryption"
+  ];
 
   meta = with lib; {
     description = "A simple python client for pushbullet.com";
diff --git a/nixpkgs/pkgs/development/python-modules/pwntools/default.nix b/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
index a24e1d5db13e..b9f71de8e94f 100644
--- a/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
@@ -2,14 +2,13 @@
 , buildPythonPackage
 , debugger
 , fetchPypi
-, isPy3k
 , Mako
-, makeWrapper
 , packaging
 , pysocks
 , pygments
 , ROPGadget
 , capstone
+, colored-traceback
 , paramiko
 , pip
 , psutil
@@ -17,28 +16,40 @@
 , pyserial
 , dateutil
 , requests
+, rpyc
 , tox
 , unicorn
 , intervaltree
-, fetchpatch
+, installShellFiles
 }:
 
+let
+  debuggerName = lib.strings.getName debugger;
+in
 buildPythonPackage rec {
-  version = "4.3.1";
+  version = "4.5.0";
   pname = "pwntools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12ja913kz8wl4afrmpzxh9fx6j7rcwc2vqzkvfr1fxn42gkqhqf4";
+    sha256 = "sha256-IWHMorSASG/po8ib1whS3xPuoUUlD0tbbWI35DI2SIY=";
   };
 
-  # Upstream has set an upper bound on unicorn because of https://github.com/Gallopsled/pwntools/issues/1538,
-  # but since that is a niche use case and it requires extra work to get unicorn 1.0.2rc3 to work we relax
-  # the bound here. Check if this is still necessary when updating!
   postPatch = ''
+    # Upstream has set an upper bound on unicorn because of https://github.com/Gallopsled/pwntools/issues/1538,
+    # but since that is a niche use case and it requires extra work to get unicorn 1.0.2rc3 to work we relax
+    # the bound here. Check if this is still necessary when updating!
     sed -i 's/unicorn>=1.0.2rc1,<1.0.2rc4/unicorn>=1.0.2rc1/' setup.py
+
+    # Upstream hardcoded the check for the command `gdb-multiarch`;
+    # Forcefully use the provided debugger, as `gdb` (hence `pwndbg`) is built with multiarch in `nixpkgs`.
+    sed -i 's/gdb-multiarch/${debuggerName}/' pwnlib/gdb.py
   '';
 
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
   propagatedBuildInputs = [
     Mako
     packaging
@@ -46,6 +57,7 @@ buildPythonPackage rec {
     pygments
     ROPGadget
     capstone
+    colored-traceback
     paramiko
     pip
     psutil
@@ -53,6 +65,7 @@ buildPythonPackage rec {
     pyserial
     dateutil
     requests
+    rpyc
     tox
     unicorn
     intervaltree
@@ -60,9 +73,13 @@ buildPythonPackage rec {
 
   doCheck = false; # no setuptools tests for the package
 
+  postInstall = ''
+    installShellCompletion --bash extra/bash_completion.d/shellcraft
+  '';
+
   postFixup = ''
     mkdir -p "$out/bin"
-    makeWrapper "${debugger}/bin/${lib.strings.getName debugger}" "$out/bin/pwntools-gdb"
+    makeWrapper "${debugger}/bin/${debuggerName}" "$out/bin/pwntools-gdb"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix b/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
index b5ffc1fc0a5d..2f494dcb7002 100644
--- a/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
@@ -1,6 +1,6 @@
 { buildPythonPackage, fetchPypi, flask, isPy27, lib, nixosTests
 , prometheus_client, py-air-control, pytestCheckHook, pytestcov, pytestrunner
-, setuptools_scm }:
+, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "py-air-control-exporter";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "ece2e446273542e5c0352c9d6e80d8279132c6ada3649c59e87a711448801a3b";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   checkInputs = [ pytestCheckHook pytestcov pytestrunner ];
   propagatedBuildInputs = [ flask prometheus_client py-air-control ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/py-canary/default.nix b/nixpkgs/pkgs/development/python-modules/py-canary/default.nix
new file mode 100644
index 000000000000..531624781b40
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/py-canary/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "py-canary";
+  version = "0.5.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "snjoetw";
+    repo = pname;
+    rev = version;
+    sha256 = "0j743cc0wv7im3anx1vvdm79zyvw67swhc3zwwc1r8626dgnmxjr";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "canary" ];
+
+  meta = with lib; {
+    description = "Python package for Canary Security Camera";
+    homepage = "https://github.com/snjoetw/py-canary";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix b/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
index f9e276b3bb5f..12b9668f1edd 100644
--- a/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , buildPythonPackage
 , pytestCheckHook
 , sysctl
@@ -9,28 +8,15 @@
 
 buildPythonPackage rec {
   pname = "py-cpuinfo";
-  version = "7.0.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
      owner = "workhorsy";
      repo = pname;
      rev = "v${version}";
-     sha256 = "10qfaibyb2syiwiyv74l7d97vnmlk079qirgnw3ncklqjs0s3gbi";
+     sha256 = "sha256-Mgzj1HTasUNHeHMVwV6d+TeyVqnBNUwCJ1EC3kfovf8=";
   };
 
-  patches = [
-    # Make it detect Apple Silicon, remove after https://github.com/workhorsy/py-cpuinfo/pull/161 is merged.
-    (fetchpatch {
-      url = "https://github.com/workhorsy/py-cpuinfo/commit/54c32da6678f9d75ec5acf4534056cdc85c2a04d.patch";
-      sha256 = "sha256-3R46KrpACAQ1V0CQtz48V5mQXxvplUQrXnACtiE8WqY=";
-    })
-    # Continuation of the patch above
-    (fetchpatch {
-      url = "https://github.com/workhorsy/py-cpuinfo/commit/0d00f4b99750f292c85ff23e1039ea9489cb7ec8.patch";
-      sha256 = "sha256-mHoXoCAEG2v3xpQppRFWzSvhYCp5i9CZkbEgtiLVzMs=";
-    })
-  ];
-
   checkInputs = [
     pytestCheckHook
   ];
@@ -42,17 +28,19 @@ buildPythonPackage rec {
       --replace "_run_and_get_stdout(['sysctl'" "_run_and_get_stdout(['${sysctl}/bin/sysctl'"
   '';
 
-  meta = {
-    description = "Get CPU info with pure Python 2 & 3";
+  pythonImportsCheck = [ "cpuinfo" ];
+
+  meta = with lib; {
+    description = "Get CPU info with pure Python";
     longDescription = ''
       Py-cpuinfo gets CPU info with pure Python and should work without any
       extra programs or libraries, beyond what your OS provides. It does not
       require any compilation (C/C++, assembly, etc.) to use and works with
-      Python 2 and 3.
+      Python.
     '';
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/workhorsy/py-cpuinfo";
     changelog = "https://github.com/workhorsy/py-cpuinfo/blob/v${version}/ChangeLog";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ costrouc ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/py-desmume/default.nix b/nixpkgs/pkgs/development/python-modules/py-desmume/default.nix
new file mode 100644
index 000000000000..e9cff7eb8243
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/py-desmume/default.nix
@@ -0,0 +1,44 @@
+{ lib, buildPythonPackage, fetchFromGitHub, GitPython
+, libpcap, meson, ninja, pillow, pkg-config, pygobject3, SDL2
+, alsa-lib, soundtouch, openal
+}:
+
+let
+  desmume = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = "desmume";
+    rev = "8e7af8ada883b7e91344985236f7c7c04ee795d7";
+    sha256 = "0svmv2rch9q347gbpbws4agymas8n014gh1ssaf91wx7jwn53842";
+  };
+in
+buildPythonPackage rec {
+  pname = "py-desmume";
+  version = "0.0.3.post2";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "1chsg70k8kqnlasn88b04ww3yl0lay1bjxvz6lhp6s2cvsxv03x1";
+  };
+
+  postPatch = ''
+    cp -R --no-preserve=mode ${desmume} __build_desmume
+  '';
+
+  buildInputs = [ GitPython libpcap SDL2 alsa-lib soundtouch openal ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
+  propagatedBuildInputs = [ pillow pygobject3 ];
+
+  hardeningDisable = [ "format" ];
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "desmume" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/py-desmume";
+    description = "Python library to interface with DeSmuME, the Nintendo DS emulator";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-dmidecode/default.nix b/nixpkgs/pkgs/development/python-modules/py-dmidecode/default.nix
new file mode 100644
index 000000000000..e74a8d7ac297
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/py-dmidecode/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi, dmidecode }:
+
+buildPythonPackage rec {
+  pname = "py-dmidecode";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bv1vmhj8h520kj6slwpz16xfmgp117yjjkfyihkl5ix6mn5zkpa";
+  };
+
+  propagatedBuildInputs = [ dmidecode ];
+
+  # Project has no tests.
+  doCheck = false;
+  pythonImportsCheck = [ "dmidecode" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/zaibon/py-dmidecode/";
+    description = "Python library that parses the output of dmidecode";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ davidtwco ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-ubjson/default.nix b/nixpkgs/pkgs/development/python-modules/py-ubjson/default.nix
new file mode 100644
index 000000000000..4efa2b8b6fdb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/py-ubjson/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "py-ubjson";
+  version = "0.16.1";
+
+  src = fetchFromGitHub {
+    owner = "Iotic-Labs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1frn97xfa88zrfmpnvdk1pc03yihlchhph99bhjayvzlfcrhm5v3";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "test/test.py" ];
+
+  pythonImportsCheck = [ "ubjson" ];
+
+  meta = with lib; {
+    description = "Universal Binary JSON draft-12 serializer for Python";
+    homepage = "https://github.com/Iotic-Labs/py-ubjson";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py/default.nix b/nixpkgs/pkgs/development/python-modules/py/default.nix
index 26afa14c1ef7..ce7abe4dc273 100644
--- a/nixpkgs/pkgs/development/python-modules/py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "py";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   # Circular dependency on pytest
   doCheck = false;
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   pythonImportsCheck = [
     "py"
diff --git a/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix b/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix
index 236a38c7e69a..59d0cdb7299f 100644
--- a/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3exiv2/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   buildInputs = [ exiv2 boost ];
 
   # work around python distutils compiling C++ with $CC (see issue #26709)
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   meta = with lib; {
     homepage = "https://launchpad.net/py3exiv2";
diff --git a/nixpkgs/pkgs/development/python-modules/py3status/default.nix b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
index 9967394d28e0..b41b7ddf320c 100644
--- a/nixpkgs/pkgs/development/python-modules/py3status/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
@@ -14,7 +14,7 @@
 , file
 , acpi
 , coreutils
-, alsaUtils
+, alsa-utils
 , i3
 , procps
 , lm_sensors
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     sed -i -e "s|\[\"acpi\"|\[\"${acpi}/bin/acpi\"|" py3status/modules/battery_level.py
     sed -i -e "s|notify-send|${libnotify}/bin/notify-send|" py3status/modules/battery_level.py
     sed -i -e "s|/usr/bin/whoami|${coreutils}/bin/whoami|" py3status/modules/external_script.py
-    sed -i -e "s|'amixer|'${alsaUtils}/bin/amixer|" py3status/modules/volume_status.py
+    sed -i -e "s|'amixer|'${alsa-utils}/bin/amixer|" py3status/modules/volume_status.py
     sed -i -e "s|'i3-nagbar|'${i3}/bin/i3-nagbar|" py3status/modules/pomodoro.py
     sed -i -e "s|'free|'${procps}/bin/free|" py3status/modules/sysdata.py
     sed -i -e "s|'sensors|'${lm_sensors}/bin/sensors|" py3status/modules/sysdata.py
diff --git a/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix b/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix
index c214b375ff38..02656968d682 100644
--- a/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyGithub/default.nix
@@ -3,36 +3,41 @@
 , cryptography
 , deprecated
 , fetchFromGitHub
-, httpretty
-, isPy3k
-, parameterized
+, pynacl
 , pyjwt
-, pytestCheckHook
-, requests }:
+, pythonOlder
+, requests
+}:
 
 buildPythonPackage rec {
   pname = "PyGithub";
-  version = "1.54.1";
-  disabled = !isPy3k;
+  version = "1.55";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "PyGithub";
     repo = "PyGithub";
     rev = "v${version}";
-    sha256 = "1nl74bp5ikdnrc8xq0qr25ryl1mvarf0xi43k8w5jzlrllhq0nkq";
+    sha256 = "sha256-PuGCBFSbM91NtSzuyf0EQUr3LiuHDq90OwkSf53rSyA=";
   };
 
-  checkInputs = [ httpretty parameterized pytestCheckHook ];
-  propagatedBuildInputs = [ cryptography deprecated pyjwt requests ];
+  propagatedBuildInputs = [
+    cryptography
+    deprecated
+    pynacl
+    pyjwt
+    requests
+  ];
 
   # Test suite makes REST calls against github.com
   doCheck = false;
+  pythonImportsCheck = [ "github" ];
 
   meta = with lib; {
+    description = "Python library to access the GitHub API v3";
     homepage = "https://github.com/PyGithub/PyGithub";
-    description = "A Python (2 and 3) library to access the GitHub API v3";
     platforms = platforms.all;
-    license = licenses.gpl3;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ jhhuh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyaftership/default.nix b/nixpkgs/pkgs/development/python-modules/pyaftership/default.nix
index e65812cb3133..6253d9511183 100644
--- a/nixpkgs/pkgs/development/python-modules/pyaftership/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyaftership/default.nix
@@ -1,4 +1,13 @@
-{ aiohttp, async-timeout, buildPythonPackage, fetchPypi, isPy3k, lib }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, aiohttp
+, async-timeout
+, aresponses
+, pytest-asyncio
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pyaftership";
@@ -6,16 +15,17 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "28b62c323d06492399b60d8135a58d6feaa1d60837eddc14e57ea2b69d356c0a";
+  src = fetchFromGitHub {
+    owner = "ludeeus";
+    repo = pname;
+    rev = version;
+    sha256 = "0jyzgwaijkp80whi58a0hgjzmnlczmd9vwn11z2m0j01kbdwznn5";
   };
 
   propagatedBuildInputs = [ aiohttp async-timeout ];
 
-  # No tests
-  doCheck = false;
-  pythonImportsCheck = [ "pyaftership.tracker" ];
+  checkInputs = [ pytestCheckHook aresponses pytest-asyncio ];
+  pythonImportsCheck = [ "pyaftership" ];
 
   meta = with lib; {
     description = "Python wrapper package for the AfterShip API";
diff --git a/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix b/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
index bcbb672f5c80..65f70efb7c5b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyairvisual/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyairvisual";
-  version = "5.0.7";
+  version = "5.0.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-r/AJl36dv6+C92tc3kpX4/VzG69qdh4ERCyQxDOHdVU=";
+    sha256 = "sha256-QgMc0O5jk5LgKQg9ZMCZd3dNLv1typm1Rp2u8kSsqYk=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -43,8 +43,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Ignore the examples as they are prefixed with test_
-  pytestFlagsArray = [ "--ignore examples/" ];
+  disabledTestPaths = [ "examples/" ];
+
   pythonImportsCheck = [ "pyairvisual" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix b/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
index a38d5df50ddf..3a375b8d284b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, setuptools_scm, six }:
+{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, setuptools-scm, six }:
 
 let
   _arrow-cpp = arrow-cpp.override { python3 = python; };
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   sourceRoot = "apache-arrow-${version}/python";
 
-  nativeBuildInputs = [ cmake cython pkg-config setuptools_scm ];
+  nativeBuildInputs = [ cmake cython pkg-config setuptools-scm ];
   propagatedBuildInputs = [ numpy six ];
   checkInputs = [ hypothesis pandas pytestCheckHook pytest-lazy-fixture ];
 
@@ -34,12 +34,17 @@ buildPythonPackage rec {
     export PYARROW_PARALLEL=$NIX_BUILD_CORES
   '';
 
-  # Deselect a single test because pyarrow prints a 2-line error message where
-  # only a single line is expected. The additional line of output comes from
-  # the glog library which is an optional dependency of arrow-cpp that is
-  # enabled in nixpkgs.
-  # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393
-  pytestFlagsArray = [ "--deselect=pyarrow/tests/test_memory.py::test_env_var" ];
+  pytestFlagsArray = [
+    # Deselect a single test because pyarrow prints a 2-line error message where
+    # only a single line is expected. The additional line of output comes from
+    # the glog library which is an optional dependency of arrow-cpp that is
+    # enabled in nixpkgs.
+    # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393
+    "--deselect=pyarrow/tests/test_memory.py::test_env_var"
+    # Deselect the parquet dataset write test because it erroneously fails to find the
+    # pyarrow._dataset module.
+    "--deselect=pyarrow/tests/parquet/test_dataset.py::test_write_to_dataset_filesystem"
+  ];
 
   dontUseSetuptoolsCheck = true;
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
index 6bea15df386f..ea6e85221776 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyatmo";
-  version = "4.2.2";
+  version = "4.2.3";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jabesq";
     repo = "pyatmo";
     rev = "v${version}";
-    sha256 = "sha256-3IxDDLa8KMHVkHAeTmdNVRPc5aKzF3VwL2kKnG8Fp7I=";
+    sha256 = "sha256-hbs+1x/pwv00dhm+1Yj1effddJZHDjs2K3oeBmdCY+k=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix b/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix
index 5ae00417b6c0..b566edef64d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatspi/default.nix
@@ -1,13 +1,13 @@
-{ lib, fetchurl, pkg-config, buildPythonPackage, isPy3k, at-spi2-core, pygobject3, gnome3 }:
+{ lib, fetchurl, pkg-config, buildPythonPackage, isPy3k, at-spi2-core, pygobject3, gnome }:
 
 buildPythonPackage rec {
   pname = "pyatspi";
-  version = "2.38.0";
+  version = "2.38.1";
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "/4CTEv0ML2HhkcGBoaY4owtXm5G2gs+1oFU1pVJltD0=";
+    sha256 = "0lc1p6p296c9q3lffi03v902jlsj34i7yyl3rcyaq94wwbljg7z4";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -20,9 +20,10 @@ buildPythonPackage rec {
   disabled = !isPy3k;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "python3.pkgs.${pname}";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pybids/default.nix b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
index 034bdb6363a0..143f578b08d5 100644
--- a/nixpkgs/pkgs/development/python-modules/pybids/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
@@ -14,12 +14,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.12.4";
+  version = "0.13";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "830f3f518ab0d2e058e9ba6d6ff9a942792909c874433b3ad58a3339a23f46bf";
+    sha256 = "sha256-zVFaGAKgTP9UiUdmO4+Tut8Qc64xuGyB26cQLRHOqYw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
index 0ae0b26e12db..3bd88368e753 100644
--- a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
@@ -23,6 +23,14 @@ buildPythonPackage rec {
     sha256 = "1lsacpawl2gb5qlh0cawj9swsyfbwhzhwiv6553a7lsigdbadqpy";
   };
 
+  patches = [
+    # fix pybind11Config.cmake
+    (fetchpatch {
+      url = "https://github.com/pybind/pybind11/commit/d9c4e1047a95f023633a7260af5a633307438941.patch";
+      sha256 = "0kran295kj31xfs6mfha5ip132zd0pnj2dl36qzgyc1rpnha5gz4";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ catch ];
diff --git a/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix b/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
index 9e8174f9b7f7..496ae04876d6 100644
--- a/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonPackage, isPy3k, setuptools_scm, pygccxml }:
+{ lib, fetchPypi, buildPythonPackage, isPy3k, setuptools-scm, pygccxml }:
 buildPythonPackage rec {
   pname = "PyBindGen";
   version = "0.21.0";
@@ -8,7 +8,7 @@ buildPythonPackage rec {
     sha256 = "4501aa3954fdac7bb4c049894f8aa1f0f4e1c1f50cc2303feef9bbe3aecfe364";
   };
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
 
   checkInputs = [ pygccxml ];
   doCheck = (!isPy3k); # Fails to import module 'cxxfilt' from pygccxml on Py3k
diff --git a/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix b/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix
index 7517de597544..391be3c17bd4 100644
--- a/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybrowserid/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     description = "Python library for the BrowserID Protocol";
     homepage    = "https://github.com/mozilla/PyBrowserID";
     license     = licenses.mpl20;
-    maintainers = with maintainers; [ worldofpeace ];
+    maintainers = with maintainers; [ ];
   };
 }
 
diff --git a/nixpkgs/pkgs/development/python-modules/pycares/default.nix b/nixpkgs/pkgs/development/python-modules/pycares/default.nix
index 9b3ec94babcf..b01b82eb9673 100644
--- a/nixpkgs/pkgs/development/python-modules/pycares/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycares/default.nix
@@ -1,35 +1,38 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, python
 , c-ares
 , cffi
+, fetchPypi
+, idna
 }:
 
 buildPythonPackage rec {
   pname = "pycares";
-  version = "3.1.1";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18dfd4fd300f570d6c4536c1d987b7b7673b2a9d14346592c5d6ed716df0d104";
+    sha256 = "sha256-0BVPxXU7CIdY++ybwTfhsku4T8DGoJclyLrCWjQjEc0=";
   };
 
-  buildInputs = [ c-ares ];
-
-  propagatedBuildInputs = [ cffi ];
+  buildInputs = [
+    c-ares
+  ];
 
-  checkPhase = ''
-    ${python.interpreter} tests/tests.py
-  '';
+  propagatedBuildInputs = [
+    cffi
+    idna
+  ];
 
-  # requires network access
+  # Requires network access
   doCheck = false;
 
+  pythonImportsCheck = [ "pycares" ];
+
   meta = with lib; {
+    description = "Python interface for c-ares";
     homepage = "https://github.com/saghul/pycares";
-    description = "Interface for c-ares";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix b/nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix
new file mode 100644
index 000000000000..db1ac8fabb2f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cflow
+, graphviz
+, pydot
+, networkx
+, which
+}:
+
+buildPythonPackage rec {
+  pname = "pycflow2dot";
+  version = "0.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zm8x2pd0q6zza0fw7hg9g1qvybfnjq6ql9b8mh2fc45l7l25655";
+  };
+
+  propagatedBuildInputs = [
+    cflow
+    graphviz
+    pydot
+    networkx
+    which
+  ];
+
+  pythonImportsCheck = [ "pycflow2dot" ];
+  checkPhase = ''
+    cd tests
+    export PATH=$out/bin:$PATH
+    make all
+  '';
+
+  meta = with lib; {
+    description = "Layout C call graphs from cflow using GraphViz dot";
+    homepage    = "https://github.com/johnyf/pycflow2dot";
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ evils ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pychannels/default.nix b/nixpkgs/pkgs/development/python-modules/pychannels/default.nix
index 0c5e290334da..8923e5c9c69e 100644
--- a/nixpkgs/pkgs/development/python-modules/pychannels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychannels/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "pychannels";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "fancybits";
     repo = pname;
     rev = version;
-    sha256 = "0dqc0vhf6c5r3g7nfbpa668x6z2zxrznk6h907s6sxkq4sbqnhqf";
+    sha256 = "sha256-E+VL4mJ2KxS5bJZc3Va+wvyVjT55LJz+1wHkxDRa85s=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyclimacell/default.nix b/nixpkgs/pkgs/development/python-modules/pyclimacell/default.nix
index c9eb0f0353f6..7f5703585c43 100644
--- a/nixpkgs/pkgs/development/python-modules/pyclimacell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyclimacell/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pyclimacell";
-  version = "0.18.0";
+  version = "0.18.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "raman325";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0pxlh3lwd1az6v7vbaz9kv6ngqxf34iddp7vr0d0p8apbvinwrha";
+    sha256 = "sha256-jWHjnebg4Aar48gid7bB7XYXOQtSqbmVmASsZd0YoPc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix b/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
index 27a2a1d80844..0fe3998b3e89 100644
--- a/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, setuptools_scm
+, setuptools-scm
 , cython
 }:
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
     cython
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pycm/default.nix b/nixpkgs/pkgs/development/python-modules/pycm/default.nix
index b750bd30b0a4..614393cf2d59 100644
--- a/nixpkgs/pkgs/development/python-modules/pycm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycm/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, numpy, pytest }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, matplotlib, numpy, pytest, seaborn }:
 
 buildPythonPackage rec {
   pname = "pycm";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [ pytest ];
-  propagatedBuildInputs = [ numpy ];
+  propagatedBuildInputs = [ matplotlib numpy seaborn ];
 
   checkPhase = ''
     pytest Test/
diff --git a/nixpkgs/pkgs/development/python-modules/pycron/default.nix b/nixpkgs/pkgs/development/python-modules/pycron/default.nix
new file mode 100644
index 000000000000..7155ee95723e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pycron/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchFromGitHub, udatetime, pytz, pendulum, nose
+, delorean, coveralls, arrow
+}:
+
+buildPythonPackage rec {
+  pname = "pycron";
+  version = "3.0.0";
+
+  src = fetchFromGitHub {
+    owner = "kipe";
+    repo = pname;
+    rev = version;
+    sha256 = "12hkqrdfg3jbqkmck8i00ssyaw1c4hhvdhjxkmh2gm9pd99z5bpv";
+  };
+
+  checkInputs = [ arrow coveralls delorean nose pendulum pytz udatetime ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  pythonImportsCheck = [ "pycron" ];
+
+  meta = with lib; {
+    description = "Simple cron-like parser for Python, which determines if current datetime matches conditions";
+    license = licenses.mit;
+    homepage = "https://github.com/kipe/pycron";
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pycurl/default.nix b/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
index fe62d1be1ea1..e202d1928f21 100644
--- a/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , isPyPy
 , fetchPypi
 , pythonOlder
 , curl
 , openssl
 , bottle
-, pytest
+, pytestCheckHook
 , nose
 , flaky
 }:
@@ -20,6 +21,11 @@ buildPythonPackage rec {
     sha256 = "8301518689daefa53726b59ded6b48f33751c383cf987b0ccfbbc4ed40281325";
   };
 
+  preConfigure = ''
+    substituteInPlace setup.py --replace '--static-libs' '--libs'
+    export PYCURL_SSL_LIBRARY=openssl
+  '';
+
   buildInputs = [
     curl
     openssl.out
@@ -31,34 +37,48 @@ buildPythonPackage rec {
 
   checkInputs = [
     bottle
-    pytest
+    pytestCheckHook
     nose
     flaky
   ];
 
-  # skip impure or flakey tests
-  # See also:
-  #   * https://github.com/NixOS/nixpkgs/issues/77304
-  checkPhase = ''
-    HOME=$TMPDIR pytest tests -k "not test_ssl_in_static_libs \
-                     and not test_keyfunction \
-                     and not test_keyfunction_bogus_return \
-                     and not test_libcurl_ssl_gnutls \
-                     and not test_libcurl_ssl_nss \
-                     and not test_libcurl_ssl_openssl" \
-                 --ignore=tests/getinfo_test.py \
-                 --ignore=tests/memory_mgmt_test.py \
-                 --ignore=tests/multi_memory_mgmt_test.py \
-                 --ignore=tests/multi_timer_test.py
-  '';
+  pytestFlagsArray = [
+    # don't pick up the tests directory below examples/
+    "tests"
+  ];
 
-  preConfigure = ''
-    substituteInPlace setup.py --replace '--static-libs' '--libs'
-    export PYCURL_SSL_LIBRARY=openssl
+  preCheck = ''
+    export HOME=$TMPDIR
   '';
 
-  meta = {
+  disabledTests = [
+    # libcurl stopped passing the reason phrase from the HTTP status line
+    # https://github.com/pycurl/pycurl/issues/679
+    "test_failonerror"
+    "test_failonerror_status_line_invalid_utf8_python3"
+    # bottle>=0.12.17 escapes utf8 properly, so these test don't work anymore
+    # https://github.com/pycurl/pycurl/issues/669
+    "test_getinfo_content_type_invalid_utf8_python3"
+    "test_getinfo_cookie_invalid_utf8_python3"
+    "test_getinfo_raw_content_type_invalid_utf8"
+    "test_getinfo_raw_cookie_invalid_utf8"
+    # tests that require network access
+    "test_keyfunction"
+    "test_keyfunction_bogus_return"
+    # OSError: tests/fake-curl/libcurl/with_openssl.so: cannot open shared object file: No such file or directory
+    "test_libcurl_ssl_openssl"
+    # OSError: tests/fake-curl/libcurl/with_nss.so: cannot open shared object file: No such file or directory
+    "test_libcurl_ssl_nss"
+    # OSError: tests/fake-curl/libcurl/with_gnutls.so: cannot open shared object file: No such file or directory
+    "test_libcurl_ssl_gnutls"
+    # AssertionError: assert 'crypto' in ['curl']
+    "test_ssl_in_static_libs"
+  ];
+
+  meta = with lib; {
     homepage = "http://pycurl.sourceforge.net/";
     description = "Python wrapper for libcurl";
+    license = licenses.lgpl2Only;
+    maintainers = with maintainers; [];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pydbus/default.nix b/nixpkgs/pkgs/development/python-modules/pydbus/default.nix
index 09f777b01813..aa3a41e2f8c5 100644
--- a/nixpkgs/pkgs/development/python-modules/pydbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydbus/default.nix
@@ -15,6 +15,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/LEW21/pydbus";
     description = "Pythonic DBus library";
     license = lib.licenses.lgpl2Plus;
-    maintainers = with lib.maintainers; [ gnidorah ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
index 73d989468c55..c202e5df19b5 100644
--- a/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
@@ -3,21 +3,21 @@
 , aioresponses
 , buildPythonPackage
 , fetchFromGitHub
-, pytest-asyncio
+, pytest-aiohttp
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pydeconz";
-  version = "78";
+  version = "79";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = "deconz";
     rev = "v${version}";
-    sha256 = "sha256-uIRuLNGFX7gq59/ntfks9pECiGkX7jjKh2jmjxFRcv4=";
+    sha256 = "sha256-I29UIyHjsIymZxcE084hQoyaEMTXIIQPFcB8lsxY+UI=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     aioresponses
-    pytest-asyncio
+    pytest-aiohttp
     pytestCheckHook
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pydelijn/default.nix b/nixpkgs/pkgs/development/python-modules/pydelijn/default.nix
new file mode 100644
index 000000000000..08a3bf823611
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pydelijn/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "pydelijn";
+  version = "0.6.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lwd2f043hy7gf1ly9zpaq1yg947bqw2af8vhwssf48zpisfgc81";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    pytz
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pydelijn" ];
+
+  meta = with lib; {
+    description = "Python package to retrieve realtime data of passages at stops of De Lijn";
+    homepage = "https://github.com/bollewolle/pydelijn";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
index be3cddc7c14a..a0924fa7f633 100644
--- a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -49,6 +50,12 @@ buildPythonPackage {
   # This test try to remove a dicom inside $HOME/.pydicom/data/ and download it again.
   disabledTests = [
     "test_fetch_data_files"
+  ] ++ lib.optionals stdenv.isAarch64 [
+    # https://github.com/pydicom/pydicom/issues/1386
+    "test_array"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # flaky, hard to reproduce failure outside hydra
+    "test_time_check"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix b/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
index 7e09a21e3627..29d6df409a60 100644
--- a/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
@@ -30,7 +30,11 @@ buildPythonPackage rec {
     mock
   ];
 
-  checkPhase = "nosetests";
+  postPatch = ''
+    substituteInPlace setup.py --replace "xlrd<2" "xlrd<3"
+  '';
+
+  checkPhase = "nosetests --exclude test_issue_151";
 
   meta = {
     description = "A wrapper library to read, manipulate and write data in xls using xlrd and xlwt";
diff --git a/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix b/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix
index 14f2e55a1f42..323b58e82574 100644
--- a/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix
@@ -1,30 +1,37 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, paho-mqtt
 , pandas
+, pycryptodome
 , pythonOlder
 , requests
+, xmltodict
 }:
 
 buildPythonPackage rec {
   pname = "pyezviz";
-  version = "0.1.8.7";
+  version = "0.1.8.9";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "baqs";
     repo = "pyEzviz";
     rev = version;
-    sha256 = "0k7wl9wf5i0yfdds6f9ma78ckz1p4h72z5s3qg0axzra62fvl9xg";
+    sha256 = "sha256-ZjHDha7hSRXy86wm61bMMF8zMi5Lux6RbD0yFD/78J4=";
   };
 
   propagatedBuildInputs = [
+    paho-mqtt
     pandas
+    pycryptodome
     requests
+    xmltodict
   ];
 
   # Project has no tests. test_cam_rtsp.py is more a sample for using the module
   doCheck = false;
+
   pythonImportsCheck = [ "pyezviz" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyface/default.nix b/nixpkgs/pkgs/development/python-modules/pyface/default.nix
index 7ad1fb41526d..3a29fd79f779 100644
--- a/nixpkgs/pkgs/development/python-modules/pyface/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyface/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchPypi, buildPythonPackage
-, setuptools, six, traits
+, importlib-metadata, importlib-resources, six, traits
 }:
 
 buildPythonPackage rec {
@@ -11,10 +11,12 @@ buildPythonPackage rec {
     sha256 = "a7031ec4cfff034affc822e47ff5e6c1a0272e576d79465cdbbe25f721740322";
   };
 
-  propagatedBuildInputs = [ setuptools six traits ];
+  propagatedBuildInputs = [ importlib-metadata importlib-resources six traits ];
 
   doCheck = false; # Needs X server
 
+  pythonImportsCheck = [ "pyface" ];
+
   meta = with lib; {
     description = "Traits-capable windowing framework";
     homepage = "https://github.com/enthought/pyface";
diff --git a/nixpkgs/pkgs/development/python-modules/pyflume/default.nix b/nixpkgs/pkgs/development/python-modules/pyflume/default.nix
index 36980ddbadfe..075297794b21 100644
--- a/nixpkgs/pkgs/development/python-modules/pyflume/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyflume/default.nix
@@ -12,16 +12,23 @@
 
 buildPythonPackage rec {
   pname = "pyflume";
-  version = "0.6.4";
+  version = "0.7.0";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ChrisMandich";
     repo = "PyFlume";
     rev = "v${version}";
-    sha256 = "1dm560hh6fl1waiwsq8m31apmvvwhc3y95bfdb7449bs8k96dmxq";
+    sha256 = "129sz33a270v120bzl9l98nmvdzn7ns4cf9w2v18lmzlldbyz2vn";
   };
 
+  prePatch = ''
+    substituteInPlace setup.py --replace 'pyjwt==2.0.1' 'pyjwt>=2.0.1'
+    substituteInPlace setup.py --replace 'ratelimit==2.2.1' 'ratelimit>=2.2.1'
+    substituteInPlace setup.py --replace 'pytz==2019.2' 'pytz>=2019.2'
+    substituteInPlace setup.py --replace 'requests==2.24.0' 'requests>=2.24.0'
+  '';
+
   propagatedBuildInputs = [
     pyjwt
     ratelimit
@@ -34,6 +41,15 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  postPatch = ''
+    # https://github.com/ChrisMandich/PyFlume/issues/18
+    substituteInPlace setup.py \
+      --replace "pyjwt==2.0.1" "pyjwt>=2.0.1" \
+      --replace "ratelimit==2.2.1" "ratelimit>=2.2.1" \
+      --replace "pytz==2019.2" "pytz>=2019.2" \
+      --replace "requests==2.24.0" "requests>=2.24.0"
+  '';
+
   pythonImportsCheck = [ "pyflume" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix b/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
index b7b4b3cdbcbb..7c0982d490ba 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pyfritzhome";
-  version = "0.6.0";
+  version = "0.6.1";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "hthiery";
     repo = "python-fritzhome";
     rev = version;
-    sha256 = "1wzys84hxrjcg86fcn7f7i2i6979qwcpny2afk5rvwljh8f7bli5";
+    sha256 = "sha256-CEoXb7D/8Iksw4aJYNqANkmfhd0yxIIuabaTdWI3RNc=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix b/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix
index 2b46a4ce6825..eb7d9a623d4f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyftdi/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyftdi";
-  version = "0.52.9";
+  version = "0.53.1";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "eblot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07q9wmpl97a6laxfbcjqhv373msbsjppsyf5i77h0f6ccil0q1i6";
+    sha256 = "sha256-lpNe+8DhyfVuClGcjWIA6pnfh+NwdlBGffjRH62K4uw=";
   };
 
   propagatedBuildInputs = [ pyusb pyserial ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfuse3/default.nix b/nixpkgs/pkgs/development/python-modules/pyfuse3/default.nix
index 33479cc66e40..180f5902faca 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfuse3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfuse3/default.nix
@@ -1,22 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch, pkg-config, fuse3, trio, pytestCheckHook, pytest-trio, which }:
+{ lib, buildPythonPackage, fetchPypi, pkg-config, fuse3, trio, pytestCheckHook, pytest-trio, which }:
 
 buildPythonPackage rec {
   pname = "pyfuse3";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9feb42a8639dc4815522ee6af6f7221552cfd2df1c7a7e9df96767be65e18667";
+    sha256 = "45f0053ad601b03a36e2c283a5271403674245a66a0daf50e3deaab0ea4fa82f";
   };
 
-  patches = [
-    # Fixes tests with pytest 6, to be removed in next stable version
-    (fetchpatch {
-      url = "https://github.com/libfuse/pyfuse3/commit/0070eddfc33fc2fba8eb4fe9353a2d2fa1ae575b.patch";
-      sha256 = "0lb4x1j31ihs3qkn61x41k2vqwcjl2fp1c2qx2jg9br6yqhjmg3b";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ fuse3 ];
@@ -36,7 +28,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python 3 bindings for libfuse 3 with async I/O support";
     homepage = "https://github.com/libfuse/pyfuse3";
-    license = licenses.gpl2;
+    license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ nyanloutre ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pygatt/default.nix b/nixpkgs/pkgs/development/python-modules/pygatt/default.nix
new file mode 100644
index 000000000000..9d596e17236e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pygatt/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, nose
+, pexpect
+, pyserial
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pygatt";
+  version = "4.0.5";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "peplin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zdfxidiw0l8n498sy0l33n90lz49n25x889cx6jamjr7frlcihd";
+  };
+
+  propagatedBuildInputs = [
+    pexpect
+    pyserial
+  ];
+
+  checkInputs = [
+    mock
+    nose
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Not support for Python < 3.4
+    substituteInPlace setup.py --replace "'enum-compat'" ""
+  '';
+
+  pythonImportsCheck = [ "pygatt" ];
+
+  meta = with lib; {
+    description = "Python wrapper the BGAPI for accessing Bluetooth LE Devices";
+    homepage = "https://github.com/peplin/pygatt";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pygbm/default.nix b/nixpkgs/pkgs/development/python-modules/pygbm/default.nix
index 0d2747c1cb46..5367f622e9b8 100644
--- a/nixpkgs/pkgs/development/python-modules/pygbm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygbm/default.nix
@@ -4,7 +4,7 @@
 , scipy
 , numpy
 , numba
-, scikitlearn
+, scikit-learn
 , pytest
 , pythonOlder
 }:
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     scipy
     numpy
     numba
-    scikitlearn
+    scikit-learn
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pygls/default.nix b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
index edd5d9bc3100..1d08de404f0b 100644
--- a/nixpkgs/pkgs/development/python-modules/pygls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
@@ -25,6 +25,6 @@ buildPythonPackage rec {
     description = "Pythonic generic implementation of the Language Server Protocol";
     homepage = "https://github.com/openlawlibrary/pygls";
     license = licenses.asl20;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pygmt/default.nix b/nixpkgs/pkgs/development/python-modules/pygmt/default.nix
index 130be6d44c36..804b33c2f791 100644
--- a/nixpkgs/pkgs/development/python-modules/pygmt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygmt/default.nix
@@ -2,12 +2,17 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools-scm
 , gmt
 , numpy
 , netcdf4
 , pandas
 , packaging
 , xarray
+, pytest-mpl
+, ipython
+, ghostscript
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -28,12 +33,14 @@ buildPythonPackage rec {
       --replace "env.get(\"GMT_LIBRARY_PATH\", \"\")" "env.get(\"GMT_LIBRARY_PATH\", \"${gmt}/lib\")"
   '';
 
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ numpy netcdf4 pandas packaging xarray ];
 
-  doCheck = false; # requires network access
-
-  postBuild = "export HOME=$TMP";
-
+  doCheck = false; # the *entire* test suite requires network access
+  checkInputs = [ pytestCheckHook pytest-mpl ghostscript ipython ];
+  postBuild = ''
+    export HOME=$TMP
+  '';
   pythonImportsCheck = [ "pygmt" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix b/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix
index ccad57eba1ed..ce9410eaf8b5 100644
--- a/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygobject/3.36.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, buildPythonPackage, pkg-config, glib, gobject-introspection,
-pycairo, cairo, which, ncurses, meson, ninja, isPy3k, gnome3 }:
+pycairo, cairo, which, ncurses, meson, ninja, isPy3k, gnome }:
 
 buildPythonPackage rec {
   pname = "pygobject";
@@ -23,13 +23,6 @@ buildPythonPackage rec {
                  ++ lib.optionals stdenv.isDarwin [ which ncurses ];
   propagatedBuildInputs = [ pycairo cairo ];
 
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "python3.pkgs.${pname}3";
-    };
-  };
-
   meta = with lib; {
     homepage = "https://pygobject.readthedocs.io/";
     description = "Python bindings for Glib";
diff --git a/nixpkgs/pkgs/development/python-modules/pygobject/3.nix b/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
index 8c26ec6174b2..373577dc4675 100644
--- a/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
@@ -1,37 +1,66 @@
-{ lib, stdenv, fetchurl, buildPythonPackage, pkg-config, glib, gobject-introspection,
-pycairo, cairo, which, ncurses, meson, ninja, isPy3k, gnome3 }:
+{ lib
+, stdenv
+, fetchurl
+, buildPythonPackage
+, pkg-config
+, glib
+, gobject-introspection
+, pycairo
+, cairo
+, which
+, ncurses
+, meson
+, ninja
+, isPy3k
+, gnome
+}:
 
 buildPythonPackage rec {
   pname = "pygobject";
-  version = "3.38.0";
+  version = "3.40.1";
 
-  disabled = ! isPy3k;
+  outputs = [ "out" "dev" ];
+
+  disabled = !isPy3k;
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "A3LRu5Ei/Bn1AKJJsfOMK7Z0hQAPWIdJe0sgWz5whNU=";
+    sha256 = "0d80g5kgf2i9cginyhalvb7ibfk9g30yilqzmcsw6h6byj8xbih0";
   };
 
-  outputs = [ "out" "dev" ];
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    glib
+    gobject-introspection
+  ] ++ lib.optionals stdenv.isDarwin [
+    ncurses
+  ];
 
-  nativeBuildInputs = [ pkg-config meson ninja gobject-introspection ];
-  buildInputs = [ glib gobject-introspection ]
-                 ++ lib.optionals stdenv.isDarwin [ which ncurses ];
-  propagatedBuildInputs = [ pycairo cairo ];
+  propagatedBuildInputs = [
+    pycairo
+    cairo
+  ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "python3.pkgs.${pname}3";
+      versionPolicy = "odd-unstable";
     };
   };
 
   meta = with lib; {
     homepage = "https://pygobject.readthedocs.io/";
     description = "Python bindings for Glib";
-    license = licenses.gpl2;
+    license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pygtfs/default.nix b/nixpkgs/pkgs/development/python-modules/pygtfs/default.nix
new file mode 100644
index 000000000000..735990c09448
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pygtfs/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, docopt
+, fetchPypi
+, nose
+, pytz
+, setuptools-scm
+, six
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "pygtfs";
+  version = "0.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nx2idgza07kmvj7pcgpj3pqhw53v5rq63paw2ly51cjas2fv5pr";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    docopt
+    pytz
+    six
+    sqlalchemy
+  ];
+
+  checkInputs = [
+    nose
+  ];
+
+  pythonImportsCheck = [ "pygtfs" ];
+
+  meta = with lib; {
+    description = "Python module for GTFS";
+    homepage = "https://github.com/jarondl/pygtfs";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pygtkspellcheck/default.nix b/nixpkgs/pkgs/development/python-modules/pygtkspellcheck/default.nix
new file mode 100644
index 000000000000..9dcb2b732ca3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pygtkspellcheck/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, gobject-introspection, gtk3, pyenchant, pygobject3 }:
+
+buildPythonPackage rec {
+  pname = "pygtkspellcheck";
+  version = "4.0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pc3xmv1q775hn4kc1kspvpdn4gm7ix3aw6hz9iy3brfcw6ddcl4";
+  };
+
+  nativeBuildInputs = [ gobject-introspection gtk3 ];
+  propagatedBuildInputs = [ pyenchant pygobject3 ];
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "gtkspellcheck" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/koehlma/pygtkspellcheck";
+    description = "A Python spell-checking library for GtkTextViews based on Enchant";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
index ade4c01833c3..efc06ad0c963 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "21.3.0";
+  version = "21.5.0";
 
   # Only 3.8.0 and beyond are supported
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2vW4BN5qwJZYQ8FU3bpSA2v1dX6TOhcHDbHRMDPoRAs=";
+    sha256 = "sha256-/F4UMFUs60o3QazfFYEWgTGHg4z5knzNWolUpk5SIeM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
index 9bfa814894de..2784719ff128 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pyhomematic";
-  version = "0.1.72";
+  version = "0.1.73";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a1d44103b90418d9c8cde4699a1c671d57d12469be23a45e93bfc00df28ef11b";
+    sha256 = "sha256-KaeheCIJgAqC68rgE71b1sSatSH25phGk662fnuOOsk=";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyialarm/default.nix b/nixpkgs/pkgs/development/python-modules/pyialarm/default.nix
new file mode 100644
index 000000000000..9603964ca481
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyialarm/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, dicttoxml
+, fetchFromGitHub
+, pythonOlder
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "pyialarm";
+  version = "1.8.1";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "RyuzakiKK";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-Hig1BlgZX2FBh+wx7qz9lmkBIFn/IHActf9FXDU6Yz8=";
+  };
+
+  propagatedBuildInputs = [
+    dicttoxml
+    xmltodict
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyialarm" ];
+
+  meta = with lib; {
+    description = "Python library to interface with Antifurto365 iAlarm systems";
+    homepage = "https://github.com/RyuzakiKK/pyialarm";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyicu/default.nix b/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
index efb7467e485e..1b01f1904e08 100644
--- a/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyicu/default.nix
@@ -3,20 +3,20 @@
 , fetchPypi
 , pytestCheckHook
 , six
-, icu
+, icu68
 }:
 
 buildPythonPackage rec {
   pname = "PyICU";
-  version = "2.6";
+  version = "2.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wb3v421i2fnnxdywam4ay8hqvnxlz0r2nrpx5lqy3rn6dlbz9d9";
+    sha256 = "1jv1pds94agvn3zs33a8p8f0mk7f5pjwmczmg1s05ri5p0kzk4h8";
   };
 
-  nativeBuildInputs = [ icu ]; # for icu-config
-  buildInputs = [ icu ];
+  nativeBuildInputs = [ icu68 ]; # for icu-config, but should be replaced with pkg-config
+  buildInputs = [ icu68 ];
   checkInputs = [ pytestCheckHook six ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
index cfe5112ab221..be746ae27937 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pyinsteon";
-  version = "1.0.10";
+  version = "1.0.11";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-8b/PvMFHvYGVWw6ycLnL8n972cn+1QW/VTMiblMPam4=";
+    sha256 = "sha256-dT01nKXDjkFSIf2BmrIcC8a9n00hlyd59oPwXn1CBaw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
index d2775d6e3b9e..34bc7bb5eb66 100644
--- a/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyiqvia/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyiqvia";
-  version = "0.3.3";
+  version = "1.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XYWoHKa/yq7MtGVM6eVgLtR2E3VmqsjX3TNcQcd7dEQ=";
+    sha256 = "sha256-6BbJgRpn2hivm4N3Zpll9NACMSNlIhxj8CF2iVduIro=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyjwt/1.nix b/nixpkgs/pkgs/development/python-modules/pyjwt/1.nix
new file mode 100644
index 000000000000..285e5e2e7600
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyjwt/1.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cryptography
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "PyJWT";
+  version = "1.7.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "pytest>=4.0.1,<5.0.0" "pytest"
+
+    # drop coverage
+    sed -i '/pytest-cov/d' setup.py
+    sed -i '/--cov/d' setup.cfg
+  '';
+
+  propagatedBuildInputs = [
+    cryptography
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "JSON Web Token implementation in Python";
+    homepage = "https://github.com/jpadilla/pyjwt";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyjwt/default.nix b/nixpkgs/pkgs/development/python-modules/pyjwt/default.nix
index c33f2b068087..4617869988f6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyjwt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyjwt/default.nix
@@ -1,28 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi
-, cryptography, ecdsa
-, pytestrunner, pytestcov, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cryptography
+, ecdsa
+, pytest-cov
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
-  pname = "PyJWT";
-  version = "2.0.1";
+  pname = "pyjwt";
+  version = "2.1.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "a5c70a06e1f33d81ef25eecd50d50bd30e34de1ca8b2b9fa3fe0daaabcf69bf7";
+    pname = "PyJWT";
+    inherit version;
+    sha256 = "sha256-+6ROeJi7yhYKKytQH0koJPyDgkhdOm8Rul0MGTfOYTA=";
   };
 
-  propagatedBuildInputs = [ cryptography ecdsa ];
+  propagatedBuildInputs = [
+    cryptography
+    ecdsa
+  ];
 
-  checkInputs = [ pytestrunner pytestcov pytest ];
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "pytest>=4.0.1,<5.0.0" "pytest"
-  '';
-
-  # ecdsa changed internal behavior
-  checkPhase = ''
-    pytest tests -k 'not ec_verify_should_return_false_if_signature_invalid'
-  '';
+  pythonImportsCheck = [ "jwt" ];
 
   meta = with lib; {
     description = "JSON Web Token implementation in Python";
diff --git a/nixpkgs/pkgs/development/python-modules/pykdl/default.nix b/nixpkgs/pkgs/development/python-modules/pykdl/default.nix
index 674a43f5f3e0..9a0431b2b859 100644
--- a/nixpkgs/pkgs/development/python-modules/pykdl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykdl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, toPythonModule, fetchpatch, cmake, orocos-kdl, python, sip }:
+{ lib, stdenv, toPythonModule, fetchpatch, cmake, orocos-kdl, python, sip_4 }:
 
 toPythonModule (stdenv.mkDerivation {
   pname = "pykdl";
@@ -18,7 +18,7 @@ toPythonModule (stdenv.mkDerivation {
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ orocos-kdl ];
-  propagatedBuildInputs = [ python sip ];
+  propagatedBuildInputs = [ python sip_4 ];
 
   meta = with lib; {
     description = "Kinematics and Dynamics Library (Python bindings)";
diff --git a/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix b/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix
index 294e47872fc1..e54a9c6fa20f 100644
--- a/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix
@@ -1,15 +1,18 @@
-{ lib, fetchPypi, buildPythonPackage
+{ lib, fetchFromGitHub, buildPythonPackage
 , lxml, pycryptodomex, construct
 , argon2_cffi, dateutil, future
+, python
 }:
 
 buildPythonPackage rec {
   pname   = "pykeepass";
-  version = "4.0.0";
+  version = "4.0.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1b41b3277ea4e044556e1c5a21866ea4dfd36e69a4c0f14272488f098063178f";
+  src = fetchFromGitHub {
+    owner = "libkeepass";
+    repo = "pykeepass";
+    rev = version;
+    sha256 = "sha256-D+loaPBpKdXyiqpdth3ANDjH6IewuKYhj/DzRE2hDn4=";
   };
 
   postPatch = ''
@@ -21,13 +24,15 @@ buildPythonPackage rec {
     argon2_cffi dateutil future
   ];
 
-  # no tests in PyPI tarball
-  doCheck = false;
+  checkPhase = ''
+    ${python.interpreter} -m unittest tests.tests
+  '';
 
-  meta = {
-    homepage = "https://github.com/pschmitt/pykeepass";
+  meta = with lib; {
+    homepage = "https://github.com/libkeepass/pykeepass";
+    changelog = "https://github.com/libkeepass/pykeepass/blob/${version}/CHANGELOG.rst";
     description = "Python library to interact with keepass databases (supports KDBX3 and KDBX4)";
-    license = lib.licenses.gpl3;
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ dotlambda ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix b/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix
index 13d7a4fd2483..fd4c0088b08c 100644
--- a/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykerberos/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pykerberos";
-  version = "1.2.1";
+  version = "1.2.3.dev0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v47p840myqgc7hr4lir72xshcfpa0w8j9n077h3njpqyn6wlbag";
+    sha256 = "17zjiw6rqgfic32px86qls1i3z7anp15dgb3sprbdvywy98alryn";
   };
 
   nativeBuildInputs = [ krb5 ]; # for krb5-config
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   # there are no tests
   doCheck = false;
+  pythonImportsCheck = [ "kerberos" ];
 
   meta = with lib; {
     description = "High-level interface to Kerberos";
diff --git a/nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix b/nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix
index 7a055c1ed3fe..29a3f04e32cb 100644
--- a/nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykmtronic/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pykmtronic";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d0301882f06a0c4865c89bb6c2a381c4a1ba6fe2a7a07d56351bdf5f96c9fa5";
+    sha256 = "sha256-8qLyBJp7C93x0PWbgDAtNEDJ5VLNfwZ3DRZfudRCBgo=";
   };
 
   propagatedBuildInputs = [ aiohttp lxml ];
diff --git a/nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix b/nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix
new file mode 100644
index 000000000000..98182ddf68c7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, prompt_toolkit
+, pycryptodome
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pykoplenti";
+  version = "1.0.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "stegm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12nsyz8a49vhby1jp991vaky82fm93jrgcsjzwa2rixwg1zql4sw";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    click
+    prompt_toolkit
+    pycryptodome
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pykoplenti" ];
+
+  meta = with lib; {
+    description = "Python REST client API for Kostal Plenticore Inverters";
+    homepage = "https://github.com/stegm/pykoplenti/";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylast/default.nix b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
index b16ea62717a5..5a0a53005bb1 100644
--- a/nixpkgs/pkgs/development/python-modules/pylast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "4.2.0";
+  version = "4.2.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-w/mkAUUgj7L7Xv+nz1pI1TYKfihH3S3MbxaNQ4VtoH0=";
+    sha256 = "sha256-R1enQk6luuBiobMPDn5x1SXx7zUI/5c8dPtyWkmG/18=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix b/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
index 54b2f65ad975..9d8b36c5ef81 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pylint-django";
-  version = "2.4.2";
+  version = "2.4.3";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0535y4sdi521a9s7di8ld0i8aav0afbxmx0956v6sjpyqmqdm6hr";
+    sha256 = "1mybq9jynypxbaxj921s3sx8dph8n3hmipmv4nla1g9h07g9g02z";
   };
 
   propagatedBuildInputs = [
@@ -42,9 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A Pylint plugin to analyze Django applications";
     homepage = "https://github.com/PyCQA/pylint-django";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix b/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix
index e283cc10d16a..64573a1a5282 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix
@@ -46,6 +46,6 @@ buildPythonPackage rec {
     description = "A bug and style checker for Python";
     platforms = platforms.all;
     license = licenses.gpl1Plus;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
index 10935d2d8880..6c2702ef3dbe 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
@@ -67,6 +67,6 @@ buildPythonPackage rec {
     homepage = "https://pylint.pycqa.org/";
     description = "A bug and style checker for Python";
     license = licenses.gpl1Plus;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix b/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
index 7aa5bebfaa0a..9390461a2fef 100644
--- a/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylitterbot/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pylitterbot";
-  version = "2021.3.1";
+  version = "2021.5.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "natekspencer";
     repo = pname;
     rev = version;
-    sha256 = "sha256-w2iyzCYoma8zQsXGIQnpgijDHNqmlvCnbeyF7PmLz9c=";
+    sha256 = "sha256-EiHdyjGYddtvciiwu2kpIBfUGvIJr38/8oJLFVzoRKE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix b/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix
index c59a67606ee6..d10e4930ac0c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix
@@ -1,25 +1,27 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, black, toml, pytest, python-language-server, isPy3k
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, black
+, toml
+, pytestCheckHook
+, python-language-server
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "pyls-black";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "rupert";
     repo = "pyls-black";
     rev = "v${version}";
-    sha256 = "0cjf0mjn156qp0x6md6mncs31hdpzfim769c2lixaczhyzwywqnj";
+    sha256 = "0bkhfnlik89j3yamr20br4wm8975f20v33wabi2nyxvj10whr5dj";
   };
 
   disabled = !isPy3k;
 
-  checkPhase = ''
-    pytest
-  '';
-
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [ black toml python-language-server ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pylutron-caseta/default.nix b/nixpkgs/pkgs/development/python-modules/pylutron-caseta/default.nix
index aa2182c176d3..f71f2f4d52ae 100644
--- a/nixpkgs/pkgs/development/python-modules/pylutron-caseta/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylutron-caseta/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pylutron-caseta";
-  version = "0.9.0";
+  version = "0.11.0";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "gurumitts";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07mz4hn0455qmfqs4xcqlhbf3qvrnmifd0vzpcqlqaqcn009iahq";
+    sha256 = "sha256-2w8kRSZK9Bq3O6r6i0CJgxEXGo8KsWah9bMLlDNzMGk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pylxd/default.nix b/nixpkgs/pkgs/development/python-modules/pylxd/default.nix
index 5d373ada09b5..64232f760faf 100644
--- a/nixpkgs/pkgs/development/python-modules/pylxd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylxd/default.nix
@@ -1,24 +1,48 @@
-{ lib, buildPythonPackage, fetchPypi, pbr, dateutil, ws4py, requests-unixsocket, requests-toolbelt, mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cryptography
+, python-dateutil
+, requests
+, requests-toolbelt
+, requests-unixsocket
+, ws4py
+, ddt
+, mock-services
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pylxd";
   version = "2.3.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1db88l55q974fm9z5gllx3i8bkj0jzi25xrr5cs6id3bfy4zp8a7";
+  src = fetchFromGitHub {
+    owner = "lxc";
+    repo = "pylxd";
+    rev = version;
+    sha256 = "144frnlsb21mglgyisms790hyrdfx1l91lcd7incch4m4a1cbpp6";
   };
 
   propagatedBuildInputs = [
-    pbr
-    dateutil
-    ws4py
-    requests-unixsocket
+    cryptography
+    python-dateutil
+    requests
     requests-toolbelt
+    requests-unixsocket
+    ws4py
+  ];
+
+  checkInputs = [
+    ddt
+    mock-services
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    "integration"
+    "migration"
   ];
 
-  # tests require an old version of requests-mock that we do not have a package for
-  doCheck = false;
   pythonImportsCheck = [ "pylxd" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pymata-express/default.nix b/nixpkgs/pkgs/development/python-modules/pymata-express/default.nix
index 1a50a91a3092..69d7585e8a5d 100644
--- a/nixpkgs/pkgs/development/python-modules/pymata-express/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymata-express/default.nix
@@ -2,20 +2,19 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pyserial
-, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pymata-express";
-  version = "1.19";
+  version = "1.20";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "MrYsLab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0gfjmqcxwsnfjgll6ql5xd1n3xp4klf4fcaajaivh053i02p0a79";
+    sha256 = "sha256-spYmd+Cb7Ej5FmniuJYAVVmq0mhOz5fu4+2UUXctRWs=";
   };
 
   propagatedBuildInputs = [ pyserial ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix b/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
index 2f39be79821c..894e5c128e9e 100644
--- a/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python MAVLink interface and utilities";
     homepage = "https://github.com/ArduPilot/pymavlink";
-    license = with licenses; [ lgpl3Only mit ];
+    license = with licenses; [ lgpl3Plus mit ];
     maintainers = with maintainers; [ lopsided98 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pymazda/default.nix b/nixpkgs/pkgs/development/python-modules/pymazda/default.nix
index 77d4f175273b..f4b9f0b1f01e 100644
--- a/nixpkgs/pkgs/development/python-modules/pymazda/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymazda/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pymazda";
-  version = "0.1.1";
+  version = "0.1.6";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Z0sRfLkOxYmPDZiSKqqbd68dcTDU+x8QhPe/Oo43KEA=";
+    sha256 = "sha256-fQcycOMNYCO6bP344DTLxNf/YoliEITyxsnIDyTPO5E=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix b/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix
index b04276f1f559..ac054bef9569 100644
--- a/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymediainfo/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchPypi, buildPythonPackage
 , libmediainfo
-, setuptools_scm
+, setuptools-scm
 , pytest, glibcLocales }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
                 "${libmediainfo}/lib/libmediainfo${stdenv.hostPlatform.extensions.sharedLibrary}.0"
   '';
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ glibcLocales pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pymeteireann/default.nix b/nixpkgs/pkgs/development/python-modules/pymeteireann/default.nix
new file mode 100644
index 000000000000..7e48a4089a12
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymeteireann/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, pytz
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "pymeteireann";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "DylanGore";
+    repo = "PyMetEireann";
+    rev = version;
+    sha256 = "1904f8mvv4ghzbniswmdwyj5v71m6y3yn1b4grjvfds05skalm67";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    pytz
+    xmltodict
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "meteireann" ];
+
+  meta = with lib; {
+    description = "Python module to communicate with the Met Éireann Public Weather Forecast API";
+    homepage = "https://github.com/DylanGore/PyMetEireann/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymfy/default.nix b/nixpkgs/pkgs/development/python-modules/pymfy/default.nix
index 32483eea7b9a..2c17c0a085d9 100644
--- a/nixpkgs/pkgs/development/python-modules/pymfy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymfy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pymfy";
-  version = "0.9.4";
+  version = "0.10.1";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tetienne";
     repo = "somfy-open-api";
     rev = "v${version}";
-    sha256 = "1ml536dvva2xd52jfgrd557h2sr5w6567sxnyq0blhkgpyz4m2av";
+    sha256 = "sha256-xX7vNBQaYPdnsukFcQyEa2G1XIvf9ehADNXbLUUCRoU=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
index 9d524bfe946f..46b60419ad8c 100644
--- a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "pymodbus";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchFromGitHub {
     owner = "riptideio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-b85jfBZfMZtqtmID+tGBgOe9o0BbmBH83UV71lYAI5c=";
+    sha256 = "sha256-jqVfBAjIdRBB5AYd0ZkMi7qAUR6vSYeBI4OYEv+mKwE=";
   };
 
   # Twisted asynchronous version is not supported due to a missing dependency
diff --git a/nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix b/nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix
new file mode 100644
index 000000000000..8c00975d08bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, isPy3k
+, dawg-python
+, docopt
+, pymorphy2-dicts-ru
+}:
+
+buildPythonPackage rec {
+  pname = "pymorphy2";
+  version = "0.9.1";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-hsRHFX3uLrI0HvvkU44SgadUdWuhqjLad6iWFMWLVgw=";
+  };
+
+  propagatedBuildInputs = [
+    dawg-python
+    docopt
+    pymorphy2-dicts-ru
+  ];
+
+  pythonImportsCheck = [ "pymorphy2" ];
+
+  meta = with lib; {
+    description = "Morphological analyzer/inflection engine for Russian and Ukrainian";
+    homepage = "https://github.com/kmike/pymorphy2";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymorphy2/dicts-ru.nix b/nixpkgs/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
new file mode 100644
index 000000000000..bee9dd492479
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
@@ -0,0 +1,23 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "pymorphy2-dicts-ru";
+  version = "2.4.417127.4579844";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-eMrQOtymBQIavTh6Oy61FchRuG6UaCoe8jVKLHT8wZY=";
+  };
+
+  pythonImportsCheck = [ "pymorphy2_dicts_ru" ];
+
+  meta = with lib; {
+    description = "Russian dictionaries for pymorphy2";
+    homepage = "https://github.com/kmike/pymorphy2-dicts/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pymsteams/default.nix b/nixpkgs/pkgs/development/python-modules/pymsteams/default.nix
index a475d074efd6..b3843a566cef 100644
--- a/nixpkgs/pkgs/development/python-modules/pymsteams/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymsteams/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "pymsteams";
-  version = "0.1.14";
+  version = "0.1.15";
 
   src = fetchFromGitHub {
     owner = "rveachkc";
     repo = pname;
     rev = version;
-    sha256 = "19gnsjzf3kwcwp2rwa30zpqjqgxb9plgcsx7fqbmxnrxgw99fyqx";
+    sha256 = "sha256-PBh6AmKqdiD3WJQnVqUj4DUVv9I0ZZJ6E0McfWQIiwQ=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymumble/default.nix b/nixpkgs/pkgs/development/python-modules/pymumble/default.nix
index 45c193899fe0..d708f5f229b5 100644
--- a/nixpkgs/pkgs/development/python-modules/pymumble/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymumble/default.nix
@@ -11,23 +11,15 @@
 
 buildPythonPackage rec {
   pname = "pymumble";
-  version = "1.6";
+  version = "1.6.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "azlux";
     repo = "pymumble";
     rev = version;
-    sha256 = "04nc66d554a98mbmdgzgsg6ncaz0jsn4zdr3mr14w6wnhrxpjkrs";
+    sha256 = "1qbsd2zvwd9ksclgiyrl1z79ms0zximm4527mnmhvq36lykgki7s";
   };
-  patches = [
-    # Compatibility with pycryptodome (which is what our pycrypto really is)
-    # See https://github.com/azlux/pymumble/pull/99
-    (fetchpatch {
-      url = "https://github.com/azlux/pymumble/pull/99/commits/b85548a0e1deaac820954b1c0b308af214311a14.patch";
-      sha256 = "0w9dpc87rny6vmhi634pih1p97b67jm26qajscpa9wp6nphdlxlj";
-    })
-  ];
 
   postPatch = ''
     # Changes all `library==x.y.z` statements to just `library`
@@ -35,11 +27,20 @@ buildPythonPackage rec {
     sed -i 's/\(.*\)==.*/\1/' requirements.txt
   '';
 
-  propagatedBuildInputs = [ opuslib protobuf ];
+  propagatedBuildInputs = [
+    opuslib
+    protobuf
+  ];
 
-  checkInputs = [ pytestCheckHook pycrypto ];
+  checkInputs = [
+    pycrypto
+    pytestCheckHook
+  ];
 
-  pythonImportsCheck = [ "pymumble_py3" ];
+  pythonImportsCheck = [
+    "pymumble_py3"
+    "pymumble_py3.constants"
+  ];
 
   meta = with lib; {
     description = "Python 3 version of pymumble, Mumble library used for multiple uses like making mumble bot.";
diff --git a/nixpkgs/pkgs/development/python-modules/pynacl/default.nix b/nixpkgs/pkgs/development/python-modules/pynacl/default.nix
index 37cf0a9ef10a..ebd6aeb0fee3 100644
--- a/nixpkgs/pkgs/development/python-modules/pynacl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynacl/default.nix
@@ -1,16 +1,17 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
+, pythonOlder
 , libsodium
 , cffi
-, six
 , hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "pynacl";
   version = "1.4.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit version;
@@ -18,15 +19,22 @@ buildPythonPackage rec {
     sha256 = "01b56hxrbif3hx8l6rwz5kljrgvlbj7shmmd2rjh0hn7974a5sal";
   };
 
-  checkInputs = [ pytest hypothesis ];
-  buildInputs = [ libsodium ];
-  propagatedBuildInputs = [ cffi six ];
+  buildInputs = [
+    libsodium
+  ];
+
+  propagatedBuildInputs = [
+    cffi
+  ];
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
 
   SODIUM_INSTALL = "system";
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [ "nacl" ];
 
   meta = with lib; {
     maintainers = with maintainers; [ va1entin ];
diff --git a/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix b/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix
index 7ca72293382d..f3b5b9ba6854 100644
--- a/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynest2d/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, python3, cmake
-, pythonOlder, libnest2d, sip, clipper }:
+, pythonOlder, libnest2d, sip_4, clipper }:
 
 buildPythonPackage rec {
   version = "4.8.0";
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "18dn92vgr4gvf9scfh93yg9bwrhdjvq62di08rpi7pqjrrvq2nvp";
   };
 
-  propagatedBuildInputs = [ libnest2d sip clipper ];
+  propagatedBuildInputs = [ libnest2d sip_4 clipper ];
   nativeBuildInputs = [ cmake ];
 
   CLIPPER_PATH = "${clipper.out}";
diff --git a/nixpkgs/pkgs/development/python-modules/pynetbox/default.nix b/nixpkgs/pkgs/development/python-modules/pynetbox/default.nix
new file mode 100644
index 000000000000..e81a4b8dd666
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pynetbox/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools-scm
+, requests
+, six
+, pytestCheckHook
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "pynetbox";
+  version = "6.1.2";
+
+  src = fetchFromGitHub {
+    owner = "netbox-community";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0di07rny3gqdfb0rf7hm3x03rpn7rydpv3lrl7cak2ccpqm0wzhl";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pyyaml
+  ];
+
+  disabledTestPaths = [
+    # requires docker for integration test
+    "tests/integration"
+  ];
+
+  meta = with lib; {
+    description = "API client library for Netbox";
+    homepage = "https://github.com/netbox-community/pynetbox";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix b/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
index 8bb82fa330a5..4a4fbfd4dc6b 100644
--- a/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
@@ -2,15 +2,17 @@
 
 buildPythonPackage rec {
   pname = "pynmea2";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x5xrk51dpzsvky1ncikadm80a44a82j3mjjykmhmx7jddc5qh9d";
+    sha256 = "1b94lhpbgvnknb563dlwvs5vkk7w3ma54sj614ynh2dzgqrd6h73";
   };
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "pynmea2" ];
+
   meta = {
     homepage = "https://github.com/Knio/pynmea2";
     description = "Python library for the NMEA 0183 protcol";
diff --git a/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix b/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix
index aab8f4e743a2..fa9db26b5e39 100644
--- a/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynndescent/default.nix
@@ -1,9 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , nose
-, scikitlearn
+, scikit-learn
 , scipy
 , numba
 , llvmlite
@@ -12,33 +11,25 @@
 
 buildPythonPackage rec {
   pname = "pynndescent";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "74a05a54d13573a38878781d44812ac6df97d8762a56f9bb5dd87a99911820fe";
+    sha256 = "0w87c2v0li2rdbx6qfc2lb6y6bxpdy3jwfgzfs1kcr4d1chj5zfr";
   };
 
-  patches = [
-    # fixes tests, included in 0.5.2
-    (fetchpatch {
-      url = "https://github.com/lmcinnes/pynndescent/commit/ef5d8c3c3bfe976063b6621e3e0734c0c22d813b.patch";
-      sha256 = "sha256-49n3kevs3wpzd4FfZVKmNpF2o1V8pJs4KOx8zCAhR3s=";
-    })
-  ];
-
-  checkInputs = [
-    nose
-  ];
-
   propagatedBuildInputs = [
-    scikitlearn
+    scikit-learn
     scipy
     numba
     llvmlite
     joblib
   ];
 
+  checkInputs = [
+    nose
+  ];
+
   checkPhase = ''
     nosetests
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/pynobo/default.nix b/nixpkgs/pkgs/development/python-modules/pynobo/default.nix
new file mode 100644
index 000000000000..52cada827817
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pynobo/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pynobo";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "echoromeo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0f98qm9vp7f0hqaxhihv7y5swciyp60222la44f4936g0rvs005x";
+  };
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pynobo" ];
+
+  meta = with lib; {
+    description = "Python 3 TCP/IP interface for Nobo Hub/Nobo Energy Control devices";
+    homepage = "https://github.com/echoromeo/pynobo";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pynvim/default.nix b/nixpkgs/pkgs/development/python-modules/pynvim/default.nix
index 0910f601dc22..244b366081c0 100644
--- a/nixpkgs/pkgs/development/python-modules/pynvim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynvim/default.nix
@@ -4,7 +4,6 @@
 , nose
 , msgpack
 , greenlet
-, trollius ? null
 , pythonOlder
 , isPyPy
 , pytestrunner
@@ -13,6 +12,7 @@
 buildPythonPackage rec {
   pname = "pynvim";
   version = "0.4.3";
+  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
@@ -28,8 +28,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   propagatedBuildInputs = [ msgpack ]
-    ++ lib.optional (!isPyPy) greenlet
-    ++ lib.optional (pythonOlder "3.4") trollius;
+    ++ lib.optional (!isPyPy) greenlet;
 
   meta = {
     description = "Python client for Neovim";
diff --git a/nixpkgs/pkgs/development/python-modules/pyobihai/default.nix b/nixpkgs/pkgs/development/python-modules/pyobihai/default.nix
new file mode 100644
index 000000000000..79d8363372be
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyobihai/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyobihai";
+  version = "1.3.1";
+  disabled = pythonOlder "3.6";
+
+  # GitHub release, https://github.com/dshokouhi/pyobihai/issues/10
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vvf5if57dfd091a7fb5rvx63hvf0isrx28j72nj2aav1as460qp";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyobihai" ];
+
+  meta = with lib; {
+    description = "Python package to interact with Obihai devices";
+    homepage = "https://github.com/dshokouhi/pyobihai";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyocr/default.nix b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
index 8cfce9ba43f1..099c9e237111 100644
--- a/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyocr/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitLab, buildPythonPackage, pillow, setuptools_scm,
+{ lib, fetchFromGitLab, buildPythonPackage, pillow, setuptools-scm,
 setuptools-scm-git-archive , tesseract, cuneiform, isPy3k, substituteAll,
 pytest, tox }:
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   })
   ];
 
-  buildInputs = [ setuptools_scm setuptools-scm-git-archive ];
+  buildInputs = [ setuptools-scm setuptools-scm-git-archive ];
   propagatedBuildInputs = [ pillow ];
   checkInputs = [ pytest tox ];
   checkPhase = "pytest";
diff --git a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
index b1e81140a906..d983e2bc14cc 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , fetchPypi
 , buildPythonPackage
 , Mako
@@ -12,14 +13,18 @@
 , opencl-headers
 , ocl-icd
 , pybind11
+, mesa_drivers
 }:
 
-buildPythonPackage rec {
+let
+  os-specific-buildInputs =
+    if stdenv.isDarwin then [ mesa_drivers.dev ] else [ ocl-icd ];
+in buildPythonPackage rec {
   pname = "pyopencl";
   version = "2021.1.4";
 
   checkInputs = [ pytest ];
-  buildInputs = [ opencl-headers ocl-icd pybind11 ];
+  buildInputs = [ opencl-headers pybind11 ] ++ os-specific-buildInputs;
 
   propagatedBuildInputs = [ numpy cffi pytools decorator appdirs six Mako ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyotgw/default.nix b/nixpkgs/pkgs/development/python-modules/pyotgw/default.nix
new file mode 100644
index 000000000000..b48c190ca1ed
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyotgw/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial-asyncio
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyotgw";
+  version = "unstable-2021-03-25";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "mvn23";
+    repo = pname;
+    rev = "1854ef4ffb907524ff457ba558e4979ba7fabd02";
+    sha256 = "0zckd85dmzpz0drcgx16ly6kzh1f1slcxb9lrcf81wh1p4q9bcaa";
+  };
+
+  propagatedBuildInputs = [
+    pyserial-asyncio
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests" ];
+
+  pythonImportsCheck = [ "pyotgw" ];
+
+  meta = with lib; {
+    description = "Python module to interact the OpenTherm Gateway";
+    homepage = "https://github.com/mvn23/pyotgw";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pypiserver/default.nix b/nixpkgs/pkgs/development/python-modules/pypiserver/default.nix
new file mode 100644
index 000000000000..d1c6fee942ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pypiserver/default.nix
@@ -0,0 +1,40 @@
+{ buildPythonPackage, fetchFromGitHub, lib, passlib, pytestCheckHook, setuptools
+, setuptools-git, twine, webtest }:
+
+buildPythonPackage rec {
+  pname = "pypiserver";
+  version = "1.4.2";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1z5rsmqgin98m6ihy1ww42fxxr6jb4hzldn8vlc9ssv7sawdz8vz";
+  };
+
+  nativeBuildInputs = [ setuptools-git ];
+
+  propagatedBuildInputs = [ setuptools ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  checkInputs = [ passlib pytestCheckHook twine webtest ];
+
+  # These tests try to use the network
+  disabledTests = [
+    "test_pipInstall_openOk"
+    "test_pipInstall_authedOk"
+    "test_hash_algos"
+  ];
+
+  pythonImportsCheck = [ "pypiserver" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/pypiserver/pypiserver";
+    description = "Minimal PyPI server for use with pip/easy_install";
+    license = with licenses; [ mit zlib ];
+    maintainers = [ maintainers.austinbutler ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
index 13f1794aebe0..6da76a5cdba5 100644
--- a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
@@ -1,25 +1,94 @@
-{ buildPythonPackage, fetchPypi, lib, urllib3, pyee, tqdm, websockets, appdirs }:
+{ lib
+, appdirs
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, pyee
+, pytest-xdist
+, pytestCheckHook
+, pythonOlder
+, syncer
+, tqdm
+, urllib3
+, websockets
+}:
 
 buildPythonPackage rec {
   pname = "pyppeteer";
   version = "0.2.5";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "c2974be1afa13b17f7ecd120d265d8b8cd324d536a231c3953ca872b68aba4af";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "1hl4rw8j5yiak0d34vx1l1blr8125bscjd8m46a5m8xzm98csjc7";
   };
 
-  # tests want to write to /homeless-shelter
-  doCheck = false;
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
   propagatedBuildInputs = [
     appdirs
-    websockets
-    tqdm
     pyee
+    tqdm
     urllib3
+    websockets
+  ];
+
+  checkInputs = [
+    syncer
+    pytest-xdist
+    pytestCheckHook
   ];
 
+  patches = [
+    # Switch to poetry-core, https://github.com/pyppeteer/pyppeteer/pull/262
+    (fetchpatch {
+      name = "switch-poetry-core.patch";
+      url = "https://github.com/pyppeteer/pyppeteer/commit/e248baebefcf262fd96f261d940e74ed49ba2df9.patch";
+      sha256 = "03g8n35kn2alqki37s0hf2231fk2zkr4nr1x1g2rfrhps9d6fyvw";
+    })
+  ];
+
+  postPatch = ''
+    # https://github.com/pyppeteer/pyppeteer/pull/252
+    substituteInPlace pyproject.toml \
+      --replace 'websockets = "^8.1"' 'websockets = "*"'
+  '';
+
+  disabledTestPaths = [
+    # Requires network access
+    "tests/test_browser.py"
+    "tests/test_browser_context.py"
+    "tests/test_connection.py"
+    "tests/test_coverage.py"
+    "tests/test_dialog.py"
+    "tests/test_element_handle.py"
+    "tests/test_execution_context.py"
+    "tests/test_frame.py"
+    "tests/test_input.py"
+    "tests/test_launcher.py"
+    "tests/test_network.py"
+    "tests/test_page.py"
+    "tests/test_pyppeteer.py"
+    "tests/test_target.py"
+    "tests/test_tracing.py"
+    "tests/test_worker.py"
+  ];
+
+  disabledTests = [
+    # Requires network access
+    "TestScreenShot"
+    "TestBrowserCrash"
+    "TestPDF"
+  ];
+
+  pythonImportsCheck = [ "pyppeteer" ];
+
   meta = {
     description = "Headless chrome/chromium automation library (unofficial port of puppeteer)";
     homepage = "https://github.com/pyppeteer/pyppeteer";
diff --git a/nixpkgs/pkgs/development/python-modules/pypresence/default.nix b/nixpkgs/pkgs/development/python-modules/pypresence/default.nix
new file mode 100644
index 000000000000..0fa188c0771a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pypresence/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "pypresence";
+  version = "4.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c8r7yxih5zp46qb9anq5s91pw2wr7d9d0nzcfh4l42x10c8lqal";
+  };
+
+  doCheck = false; # tests require internet connection
+  pythonImportsCheck = [ "pypresence" ];
+
+  meta = with lib; {
+    homepage = "https://qwertyquerty.github.io/pypresence/html/index.html";
+    description = "Discord RPC client written in Python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyproj/default.nix b/nixpkgs/pkgs/development/python-modules/pyproj/default.nix
index 2f4f26f03b43..98e3e802c6ee 100644
--- a/nixpkgs/pkgs/development/python-modules/pyproj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyproj/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pyproj";
-  version = "3.0.1";
+  version = "3.1.0";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pyproj4";
     repo = "pyproj";
     rev = version;
-    sha256 = "1q1i1235cp3k32dpb11r7krx5rpqwszb89mrx85rflc1z5acaj58";
+    sha256 = "sha256-UN8cJk5Lgd+d2tKmFuF6QvKr36w1435RKovzGfMXi1E=";
   };
 
   # force pyproj to use ${proj}
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt-builder/default.nix b/nixpkgs/pkgs/development/python-modules/pyqt-builder/default.nix
index d7f15d966b37..d371fd7bcee7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt-builder/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonPackage, packaging, sip_5 }:
+{ lib, fetchPypi, buildPythonPackage, packaging, sip }:
 
 buildPythonPackage rec {
   pname = "pyqt-builder";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "0g51yak53zzjs4gpq65i01cmpz7w8cjny9wfyxlgr2vi0wag107v";
   };
 
-  propagatedBuildInputs = [ packaging sip_5 ];
+  propagatedBuildInputs = [ packaging sip ];
 
   pythonImportsCheck = [ "pyqtbuild" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix b/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix
index 3427438b8a26..2652b5eb00b3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt/4.x.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, buildPythonPackage, python, dbus-python, sip, qt4, pkg-config, lndir, dbus, makeWrapper }:
+{ lib, stdenv, fetchurl, buildPythonPackage, python, dbus-python, sip_4, qt4, pkg-config, lndir, dbus, makeWrapper }:
 
 buildPythonPackage rec {
   pname = "PyQt-x11-gpl";
-  version = "4.12";
+  version = "4.12.3";
   format = "other";
 
   src = fetchurl {
     url = "mirror://sourceforge/pyqt/PyQt4_gpl_x11-${version}.tar.gz";
-    sha256 = "1nw8r88a5g2d550yvklawlvns8gd5slw53yy688kxnsa65aln79w";
+    sha256 = "0wnlasg62rm5d39nq1yw4namcx2ivxgzl93r5f2vb9s0yaz5l3x0";
   };
 
   postPatch = ''
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ pkg-config lndir makeWrapper qt4 ];
   buildInputs = [ qt4 dbus ];
 
-  propagatedBuildInputs = [ sip ];
+  propagatedBuildInputs = [ sip_4 ];
 
   postInstall = ''
     for i in $out/bin/*; do
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix b/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
index 6e4b4d37f289..2671b27a6307 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt/5.x.nix
@@ -16,9 +16,9 @@ let
   inherit (pythonPackages) buildPythonPackage python isPy3k dbus-python enum34;
 
   sip = if isPy3k then
-    pythonPackages.sip_5
+    pythonPackages.sip
   else
-    (pythonPackages.sip.override { sip-module = "PyQt5.sip"; }).overridePythonAttrs(oldAttrs: {
+    (pythonPackages.sip_4.override { sip-module = "PyQt5.sip"; }).overridePythonAttrs(oldAttrs: {
       # If we install sip in another folder, then we need to create a __init__.py as well
       # if we want to be able to import it with Python 2.
       # Python 3 could rely on it being an implicit namespace package, however,
diff --git a/nixpkgs/pkgs/development/python-modules/pyrituals/default.nix b/nixpkgs/pkgs/development/python-modules/pyrituals/default.nix
index 84bf62ff6d3b..f9f556dba52b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrituals/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrituals/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyrituals";
-  version = "0.0.2";
+  version = "0.0.3";
   format = "pyproject";
   disabled = pythonOlder "3.8";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "milanmeu";
     repo = pname;
     rev = version;
-    sha256 = "0hrwhk3kpvdg78fgnvhmnnh3wprdv10j8jqjm4ly64chr8cdi6f2";
+    sha256 = "sha256-oAxQRGP6GxiidnGshSJZEh2RD3XsZ/7kFGwcqaYaBnM=";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyroon/default.nix b/nixpkgs/pkgs/development/python-modules/pyroon/default.nix
new file mode 100644
index 000000000000..c27c70be5895
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroon/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, ifaddr
+, poetry-core
+, pythonOlder
+, requests
+, six
+, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "pyroon";
+  version = "0.0.37";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pavoni";
+    repo = pname;
+    rev = version;
+    sha256 = "1hxr473z9h3kb91m3ygina58pfwfyjsv1yb29spxmnbzvk34rzzz";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    ifaddr
+    requests
+    six
+    websocket_client
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/pavoni/pyroon/pull/43
+    (fetchpatch {
+      name = "use-peotry-core.patch";
+      url = "https://github.com/pavoni/pyroon/commit/16f890314683a6c2700fa4da5c937559e2e24bea.patch";
+      sha256 = "047bhimr72rwqqyjy7jkfzacdc2ycy81wbmgnvf7xyhgjw1jyvh5";
+    })
+  ];
+
+  # Tests require access to the Roon API
+  doCheck = false;
+
+  pythonImportsCheck = [ "roonapi" ];
+
+  meta = with lib; {
+    description = "Python library to interface with the Roon API";
+    homepage = "https://github.com/pavoni/pyroon";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix
new file mode 100644
index 000000000000..4ee37e4bfed1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-core/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-core";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.core";
+    inherit version;
+    sha256 = "04v10rzz844w2wfpy4pkh8fxn6dminjmfm1q7ngg5wvpk5r691rj";
+  };
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pr2modules.common"
+    "pr2modules.config"
+    "pr2modules.proxy"
+  ];
+
+  meta = with lib; {
+    description = "Core module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix
new file mode 100644
index 000000000000..4e671b4e193f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ethtool/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-ethtool";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.ethtool";
+    inherit version;
+    sha256 = "1gd2vvdkjf6ppiql3znrlzc9xg8c4gsyg2jfm76c2xf329hi66n7";
+  };
+
+  propagatedBuildInputs = [
+    pyroute2-core
+  ];
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pr2modules.ethtool"
+  ];
+
+  meta = with lib; {
+    description = "Ethtool module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix
new file mode 100644
index 000000000000..733988f20f50
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ipdb/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-ipdb";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.ipdb";
+    inherit version;
+    sha256 = "0wnzvy72pjipsdcfnwxpqp0jimg2l3w6gwd3r4b3mhvhackgsvs6";
+  };
+
+  propagatedBuildInputs = [
+    pyroute2-core
+  ];
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pr2modules.ipdb"
+  ];
+
+  meta = with lib; {
+    description = "Ipdb module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix
new file mode 100644
index 000000000000..5ea6c7ce5d4d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ipset/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-ipset";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.ipset";
+    inherit version;
+    sha256 = "1d5l9f028y7fjfbxpp5wls9ffdgrln24dlz8k4p11b5n445liakx";
+  };
+
+  propagatedBuildInputs = [
+    pyroute2-core
+  ];
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pr2modules.ipset"
+  ];
+
+  meta = with lib; {
+    description = "Ipset module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix
new file mode 100644
index 000000000000..7b34b3d341a3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-ndb/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-ndb";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.ndb";
+    inherit version;
+    sha256 = "0lzvh0vva8i86h00add0b45s4f5dn6zbgysfvmzrxxasvda7fhlj";
+  };
+
+  propagatedBuildInputs = [
+    pyroute2-core
+  ];
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pr2modules.ndb" ];
+
+  meta = with lib; {
+    description = "NDB module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix
new file mode 100644
index 000000000000..594d57cba1bb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-nftables/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-nftables";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.nftables";
+    inherit version;
+    sha256 = "0g93jsjf77sxjxmgmd8pzy8daxnqnzp2fk9gbh9kxk1n1958p100";
+  };
+
+  propagatedBuildInputs = [
+    pyroute2-core
+  ];
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pr2modules.nftables"
+  ];
+
+  meta = with lib; {
+    description = "Nftables module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix
new file mode 100644
index 000000000000..e1076c1d0a05
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-nslink/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-nslink";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.nslink";
+    inherit version;
+    sha256 = "0hjdi863imppirjrwr87xk2mfbw2djcsh7x94cq4xwps7bxmmkwk";
+  };
+
+  propagatedBuildInputs = [
+    pyroute2-core
+  ];
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pr2modules.nslink"
+  ];
+
+  meta = with lib; {
+    description = "Nslink module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix
new file mode 100644
index 000000000000..389ca2ab44d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2-protocols/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyroute2-core
+}:
+
+buildPythonPackage rec {
+  pname = "pyroute2-protocols";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    pname = "pyroute2.protocols";
+    inherit version;
+    sha256 = "16c22ygyxdn1mhnd2f34q9b2mqa27klk6di91w27ycb3aczmadlm";
+  };
+
+  propagatedBuildInputs = [
+    pyroute2-core
+  ];
+
+  # pyroute2 sub-modules have no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pr2modules.protocols"
+  ];
+
+  meta = with lib; {
+    description = "Protocols module for pyroute2";
+    homepage = "https://github.com/svinota/pyroute2";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
index 00ce008d6cc7..f18bc12caa6a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
@@ -1,17 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, mitogen
+, pyroute2-core
+, pyroute2-ethtool
+, pyroute2-ipdb
+, pyroute2-ipset
+, pyroute2-ndb
+, pyroute2-nftables
+, pyroute2-nslink
 }:
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.5.18";
+  version = "0.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-CKxAytUsC7Lg8gCHUgWZqpH8zgsiHdJukEIzBCiBC8U=";
+    sha256 = "sha256-nvG1PcuyQoZPrfMS4atsXsvpInjYt1bUIeX6Ol5DsO8=";
   };
 
+  propagatedBuildInputs = [
+    mitogen
+    pyroute2-core
+    pyroute2-ethtool
+    pyroute2-ipdb
+    pyroute2-ipset
+    pyroute2-ndb
+    pyroute2-nftables
+    pyroute2-nslink
+  ];
+
   # Requires root privileges, https://github.com/svinota/pyroute2/issues/778
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix b/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
index 21c79c6e9e1c..9bad569806a6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside/shiboken.nix
@@ -1,8 +1,6 @@
 { lib, fetchFromGitHub, buildPythonPackage
 , cmake
-, isPy35
-, isPy36
-, isPy37
+, fetchurl
 , isPy3k
 , libxml2
 , libxslt
@@ -10,6 +8,7 @@
 , pysideApiextractor
 , pysideGeneratorrunner
 , python
+, pythonAtLeast
 , qt4
 , sphinx
 }:
@@ -39,8 +38,17 @@ buildPythonPackage rec {
       \"$\{GENERATORRUNNER_PLUGIN_DIR}\" lib/generatorrunner/
   '';
 
-  # gcc6 patch was also sent upstream: https://github.com/pyside/Shiboken/pull/86
-  patches = [ ./gcc6.patch ] ++ (lib.optional (isPy35 || isPy36 || isPy37) ./shiboken_py35.patch);
+  patches = [
+    # gcc6 patch was also sent upstream: https://github.com/pyside/Shiboken/pull/86
+    ./gcc6.patch
+    (lib.optional (pythonAtLeast "3.5") ./shiboken_py35.patch)
+    (fetchurl {
+      # https://github.com/pyside/Shiboken/pull/90
+      name = "fix-build-with-python-3.9.patch";
+      url = "https://github.com/pyside/Shiboken/commit/d1c901d4c0af581003553865360ba964cda041e8.patch";
+      sha256 = "1f7slz8n8rps5r67hz3hi4rr82igc3l166shfy6647ivsb2fnxwy";
+    })
+  ];
 
   cmakeFlags = lib.optionals isPy3k [
     "-DUSE_PYTHON3=TRUE"
diff --git a/nixpkgs/pkgs/development/python-modules/pysma/default.nix b/nixpkgs/pkgs/development/python-modules/pysma/default.nix
index 39941242f1d9..55b6b7278450 100644
--- a/nixpkgs/pkgs/development/python-modules/pysma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysma/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pysma";
-  version = "0.4.1";
+  version = "0.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da4bed38aba52fa097694bda15c7fd80ca698d9352e71a63bc29092d635de54d";
+    sha256 = "sha256-vriMnJFS7yfTyDT1f4sx1xEBTQjqc4ZHmkdHp1vcd+Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix b/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
index a3517ea87ec0..c053e5592282 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pysmappee";
-  version = "0.2.23";
+  version = "0.2.25";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "smappee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vxCZzkngYnc+hD3gT1x7qAQTFjpmmgRU5F6cusNDNgk=";
+    sha256 = "0ld3pb86dq61fcvr6zigdz1vjjcwf7izzkajyg82nmb508a570d7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysmf/default.nix b/nixpkgs/pkgs/development/python-modules/pysmf/default.nix
index 25f5fc6a20ca..3b350954eae3 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmf/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pkg-config, libsmf, glib, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pkg-config, libsmf, glib, pytest, cython }:
 
 buildPythonPackage rec {
   pname = "pysmf";
@@ -9,13 +9,17 @@ buildPythonPackage rec {
     sha256 = "10i7vvvdx6c3gl4afsgnpdanwgzzag087zs0fxvfipnqknazj806";
   };
 
-  nativeBuildInputs = [ pkg-config pytest ];
+  postUnpack = ''
+    rm $sourceRoot/src/smf.c
+  '';
+
+  nativeBuildInputs = [ pkg-config pytest cython ];
   buildInputs = [ libsmf glib ];
 
   meta = with lib; {
     homepage = "http://das.nasophon.de/pysmf/";
     description = "Python extension module for reading and writing Standard MIDI Files, based on libsmf.";
     license = licenses.bsd2;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pysmt/default.nix b/nixpkgs/pkgs/development/python-modules/pysmt/default.nix
index ce5b6b8673a0..4adb96bf2341 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmt/default.nix
@@ -1,28 +1,21 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
-, nose
-, pytestCheckHook
-, six
+, fetchPypi
 }:
 
 buildPythonPackage rec {
   pname = "pysmt";
-  version = "0.9.0";
+  version = "0.9.1.dev132";
+  format = "wheel"; # dev versions are only distributed as wheels
 
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "051j36kpz11ik9bhvp5jgxzc3h7f18i1pf5ssdhjwyabr0n0zra3";
+  src = fetchPypi {
+    pname = "PySMT";
+    inherit format version;
+    sha256 = "01iqs7yzms3alf1rdv0gnsnmfp7g8plkjcdqbari258zp4llf6x7";
   };
 
-  propagatedBuildInputs = [ six ];
-
-  checkInputs = [
-    nose
-    pytestCheckHook
-  ];
+  # No tests present, only GitHub release which is 0.9.0
+  doCheck = false;
 
   pythonImportsCheck = [ "pysmt" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pysolr/default.nix b/nixpkgs/pkgs/development/python-modules/pysolr/default.nix
index bf56d7ca56e6..a7f34b9c13a1 100644
--- a/nixpkgs/pkgs/development/python-modules/pysolr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysolr/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm, requests, mock }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm, requests, mock }:
 
 buildPythonPackage rec {
   pname = "pysolr";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "1rj5jmscvxjwcmlfi6hmkj44l4x6n3ln5p7d8d18j566hzmmzw3f";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ requests ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pysonos/default.nix b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
index 308dd4e7f25b..cdd5291af99d 100644
--- a/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pysonos";
-  version = "0.0.43";
+  version = "0.0.50";
 
   disabled = !isPy3k;
 
@@ -23,10 +23,14 @@ buildPythonPackage rec {
     owner = "amelchio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OobKlAymXXvQH6m77Uqn2eoTlWgs8EBxYIDFJ5wwMKA=";
+    sha256 = "sha256-iyFdT+RH2dtMtD+jSLFuAVE1DIQn6k9ONLOXNFhpuHs=";
   };
 
-  propagatedBuildInputs = [ ifaddr requests xmltodict ];
+  propagatedBuildInputs = [
+    ifaddr
+    requests
+    xmltodict
+  ];
 
   checkInputs = [
     pytestCheckHook
@@ -38,10 +42,10 @@ buildPythonPackage rec {
     "test_desc_from_uri" # test requires network access
   ];
 
-  meta = {
-    homepage = "https://github.com/amelchio/pysonos";
+  meta = with lib; {
     description = "A SoCo fork with fixes for Home Assistant";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ juaningan ];
+    homepage = "https://github.com/amelchio/pysonos";
+    license = licenses.mit;
+    maintainers = with maintainers; [ juaningan ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix b/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
new file mode 100644
index 000000000000..2f8e775e3404
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, glibcLocales
+}:
+
+buildPythonPackage rec {
+  pname = "pyspnego";
+  version = "0.1.6";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "jborean93";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0pfh2x0539f0k2qi2pbjm64b2fqp64c63xxpinvg1yfaw915kgpb";
+  };
+
+  propagatedBuildInputs = [
+    cryptography
+  ];
+
+  checkInputs = [
+    glibcLocales
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  LC_ALL = "en_US.UTF-8";
+
+  pythonImportsCheck = [ "spnego" ];
+
+  meta = with lib; {
+    description = "Python SPNEGO authentication library";
+    homepage = "Python SPNEGO authentication library";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pystray/default.nix b/nixpkgs/pkgs/development/python-modules/pystray/default.nix
index 9b778f9e216c..45bc2a55e599 100644
--- a/nixpkgs/pkgs/development/python-modules/pystray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pystray/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub
-, pillow, xlib, six, xvfb_run, sphinx }:
+, pillow, xlib, six, xvfb-run, sphinx }:
 
 buildPythonPackage rec {
   pname = "pystray";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ sphinx ];
   propagatedBuildInputs = [ pillow xlib six ];
-  checkInputs = [ xvfb_run ];
+  checkInputs = [ xvfb-run ];
 
   checkPhase = ''
     rm tests/icon_tests.py # test needs user input
diff --git a/nixpkgs/pkgs/development/python-modules/pysvg-py3/default.nix b/nixpkgs/pkgs/development/python-modules/pysvg-py3/default.nix
new file mode 100644
index 000000000000..6f9ba796132e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pysvg-py3/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pysvg-py3";
+  version = "0.2.2-post3";
+
+  src = fetchFromGitHub {
+    owner = "alorence";
+    repo = pname;
+    rev = version;
+    sha256 = "1slync0knpcjgl4xpym8w4249iy6vmrwbarpnbjzn9xca8g1h2f0";
+  };
+
+  checkPhase = ''
+    runHook preCheck
+    mkdir testoutput
+    ${python.interpreter} sample/tutorial.py
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "pysvg" ];
+
+  meta = {
+    homepage = "https://github.com/alorence/pysvg-py3";
+    description = "Creating SVG with Python";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ davidak ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix b/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix
index 9155151950a8..bf17988e758c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix
@@ -3,56 +3,35 @@
 , fetchFromGitHub
 , taglib
 , cython
-, pytest
-, glibcLocales
-, fetchpatch
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  pname   = "pytaglib";
-  version = "1.4.5";
+  pname = "pytaglib";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "supermihi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gvvadlgk8ny8bg76gwvvfcwp1nfgrjphi60h5f9ha7h5ff1g2wb";
+    sha256 = "sha256-UAWXR1MCxEB48n7oQE+L545F+emlU3HErzLX6YTRteg=";
   };
 
-  patches = [
-    # fix tests on python 2.7
-    (fetchpatch {
-      url = "https://github.com/supermihi/pytaglib/commit/0c4ae750fcd5b18d2553975c7e3e183e9dca5bf1.patch";
-      sha256 = "1kv3c68vimx5dc8aacvzphiaq916avmprxddi38wji8p2ql6vngj";
-    })
-
-    # properly install pyprinttags
-    (fetchpatch {
-      url = "https://github.com/supermihi/pytaglib/commit/ba7a1406ddf35ddc41ed57f1c8d1f2bc2ed2c93a.patch";
-      sha256 = "0pi0dcq7db5fd3jnbwnfsfsgxvlhnm07z5yhpp93shk0s7ci2bwp";
-    })
-    (fetchpatch {
-      url = "https://github.com/supermihi/pytaglib/commit/28772f6f94d37f05728071381a0fa04c6a14783a.patch";
-      sha256 = "0h259vzj1l0gpibdf322yclyd10x5rh1anzhsjj2ghm6rj6q0r0m";
-    })
+  buildInputs = [
+    cython
+    taglib
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "'pytest-runner', " ""
-  '';
-
-  buildInputs = [ taglib cython ];
-
-  checkInputs = [ pytest glibcLocales ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    LC_ALL=en_US.utf-8 pytest .
-  '';
+  pythonImportsCheck = [ "taglib" ];
 
-  meta = {
+  meta = with lib; {
+    description = "Python bindings for the Taglib audio metadata library";
     homepage = "https://github.com/supermihi/pytaglib";
-    description = "Python 2.x/3.x bindings for the Taglib audio metadata library";
-    license = lib.licenses.gpl3;
-    maintainers = [ lib.maintainers.mrkkrp ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ mrkkrp ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix
index 68b67f061bb1..22b57f9e7706 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-annotate/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
+    broken = true; # unmaintained and incompatible with pytest>=6.0
     homepage = "https://github.com/kensho-technologies/pytest-annotate";
     description = "Generate PyAnnotate annotations from your pytest tests";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
index 5d5a0de447d2..3df836ee562b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
@@ -9,7 +9,7 @@
 , pytest-remotedata
 , pytest-openfiles
 , pytest-arraydiff
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
index e71b3e7350a7..b087cd6f4598 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch
 , execnet
 , glob2
 , Mako
@@ -7,29 +7,38 @@
 , parse-type
 , py
 , pytest
+, pytestCheckHook
 , six
 }:
 
 buildPythonPackage rec {
   pname = "pytest-bdd";
-  version = "4.0.1";
+  version = "4.0.2";
 
   # tests are not included in pypi tarball
   src = fetchFromGitHub {
     owner = "pytest-dev";
     repo = pname;
     rev = version;
-    sha256 = "1yqzz44as4pxffmg4hk9lijvnvlc2chg1maq1fbj5i4k4jpagvjz";
+    sha256 = "0pxx4c8lm68rw0jshbr09fnadg8zz8j73q0qi49yw9s7yw86bg5l";
   };
 
+  patches = [
+    # Fixed compatibility with pytest > 6.1
+    (fetchpatch {
+      url = "https://github.com/pytest-dev/pytest-bdd/commit/e1dc0cad9a1c1ba563ccfbc24f9993d83ac59293.patch";
+      sha256 = "1p3gavh6nir2a8crd5wdf0prfrg0hmgar9slvn8a21ils3k5pm5y";
+    })
+  ];
+
+
   buildInputs = [ pytest ];
 
   propagatedBuildInputs = [ glob2 Mako parse parse-type py six ];
 
-  # Tests require extra dependencies
-  checkInputs = [ execnet mock pytest ];
-  checkPhase = ''
-    PATH=$PATH:$out/bin pytest
+  checkInputs = [ pytestCheckHook execnet mock ];
+  preCheck = ''
+    export PATH=$PATH:$out/bin
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
index 629b4292f86e..918d53c4fa7f 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchPypi
 , black
 , pytest
-, setuptools_scm
+, setuptools-scm
 , toml
 }:
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "1d339b004f764d6cd0f06e690f6dd748df3d62e6fe1a692d6a5500ac2c5b75a5";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   buildInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix
new file mode 100644
index 000000000000..2914b3cf9aac
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-cases/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, makefun
+, decopatch
+, pythonOlder
+, pytest
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-cases";
+  version = "3.4.6";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17w4s6622i97q81g15zamqm536ib00grgdfk2f4kk9bw2k7sdlq6";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  buildInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    decopatch
+    makefun
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg --replace "pytest-runner" ""
+  '';
+
+  # Tests have dependencies (pytest-harvest, pytest-steps) which
+  # are not available in Nixpkgs. Most of the packages (decopatch,
+  # makefun, pytest-*) have circular dependecies.
+  doCheck = false;
+
+  pythonImportsCheck = [ "pytest_cases" ];
+
+  meta = with lib; {
+    description = "Separate test code from test cases in pytest";
+    homepage = "https://github.com/smarie/python-pytest-cases";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix
index 414cf1ecc9cb..4b3999ec86b4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-celery/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, setuptools_scm }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pytest-celery";
@@ -17,5 +17,6 @@ buildPythonPackage rec {
     description = "pytest plugin for unittest subTest() support and subtests fixture";
     homepage = "https://github.com/pytest-dev/pytest-subtests";
     license = licenses.mit;
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-console-scripts/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-console-scripts/default.nix
new file mode 100644
index 000000000000..aaecd191e93a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-console-scripts/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, python
+, mock
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-console-scripts";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4a2138d7d567bc581fe081b6a5975849a2a36b3925cb0f066d2380103e13741c";
+  };
+  postPatch = ''
+    # setuptools-scm is pinned to <6 because it dropped Python 3.5
+    # support.  That's not something that affects us.
+    substituteInPlace setup.py --replace "'setuptools_scm<6'" "'setuptools_scm'"
+    # Patch the shebang of a script generated during test.
+    substituteInPlace tests/test_run_scripts.py --replace "#!/usr/bin/env python" "#!${python.interpreter}"
+  '';
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+  nativeBuildInputs = [ setuptools-scm ];
+
+  checkInputs = [ mock pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Pytest plugin for testing console scripts";
+    longDescription = ''
+      Pytest-console-scripts is a pytest plugin for running python scripts from within tests.
+      It's quite similar to subprocess.run(), but it also has an in-process mode, where the scripts are executed by the interpreter that's running pytest (using some amount of sandboxing).
+    '';
+    homepage = "https://github.com/kvas-it/pytest-console-scripts";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix
index 1dc218c08085..26c22dfa388b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-datadir/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub
-, setuptools_scm, pytest, cmake
+, setuptools-scm, pytest, cmake
 }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0kwgp6sqnqnmww5r0dkmyfpi0lmw0iwxz3fnwn2fs8w6bvixzznf";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/gabrielcnr/pytest-datadir";
     description = "pytest plugin for manipulating test data directories and files";
     license = licenses.mit;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
index bfcda812529e..c147996705e2 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , pytest
 , django
-, setuptools_scm
+, setuptools-scm
 , django-configurations
 , pytest_xdist
 , six
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "26f02c16d36fd4c8672390deebe3413678d89f30720c16efb8b2a6bf63b9041f";
   };
 
-  nativeBuildInputs = [ pytest setuptools_scm ];
+  nativeBuildInputs = [ pytest setuptools-scm ];
   checkInputs = [ pytest django-configurations pytest_xdist six ];
   propagatedBuildInputs = [ django ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
index 335846fc3425..01ec38458c9f 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -4,7 +4,9 @@
 , isPy27
 , six
 , pytest
+, pytestCheckHook
 , numpy
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -17,7 +19,12 @@ buildPythonPackage rec {
     sha256 = "6fe747418461d7b202824a3486ba8f4fa17a9bd0b1eddc743ba1d6d87f03391a";
   };
 
-  buildInputs = [ pytest ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+  buildInputs = [
+    pytest
+  ];
 
   propagatedBuildInputs = [
     six
@@ -25,14 +32,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  # check_distribution incorrectly pulls pytest version
-  checkPhase = ''
-    pytest -k 'not check_distribution'
-  '';
-
   meta = with lib; {
     description = "Pytest plugin with advanced doctest features";
     homepage = "https://astropy.org";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
index 67f759cb59f1..148b2c7185fb 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
@@ -5,7 +5,7 @@
 , pytestcov
 , pytest-doctestplus
 , pytestCheckHook
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
index f5fd4c5251d4..5fdd5c757d41 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, flask, werkzeug, setuptools_scm, isPy27 }:
+{ lib, buildPythonPackage, fetchPypi, pytest, flask, werkzeug, setuptools-scm, isPy27 }:
 
 buildPythonPackage rec {
   pname = "pytest-flask";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   meta = with lib; {
     homepage = "https://github.com/pytest-dev/pytest-flask/";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
index 0cfb8cd6afc8..cbba86641c13 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , py
 , pytest
 , pytestCheckHook
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "6aa9ac7e00ad1a539c41bec6d21011332de671e938c7637378ec9710204e37ca";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   buildInputs = [
     pytest
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
index 43ef2a1339f7..b405afea2154 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
@@ -1,30 +1,28 @@
 { buildPythonPackage
-, fetchFromGitHub
-, pytest
+, fetchPypi
+, pytestCheckHook
+, isPy27
 , lib
+, setuptools
+, setuptools-declarative-requirements
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-helpers-namespace";
   version = "2021.3.24";
+  disabled = isPy27;
 
-  src = fetchFromGitHub {
-    owner = "saltstack";
-    repo = pname;
-    rev = version;
-    sha256 = "0ikwiwp9ycgg7px78nxdkqvg7j97krb6vzqlb8fq8fvbwrj4q4v2";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pyj2d45zagmzlajzqdnkw5yz8k49pkihbydsqkzm413qnkzb38q";
   };
 
-  buildInputs = [ pytest ];
+  nativeBuildInputs = [ setuptools setuptools-declarative-requirements setuptools-scm ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    pytest
-  '';
-
-  # The tests fail with newest pytest. They passed with pytest_3, which no longer exists
-  doCheck = false;
+  pythonImportsCheck = [ "pytest_helpers_namespace" ];
 
   meta = with lib; {
     homepage = "https://github.com/saltstack/pytest-helpers-namespace";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
index 4df30e3f1936..78b2de292f1d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-html/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder
-, pytest, pytest-metadata, setuptools_scm }:
+, pytest, pytest-metadata, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "pytest-html";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "3ee1cf319c913d19fe53aeb0bc400e7b0bc2dbeb477553733db1dad12eb75ee3";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   buildInputs = [ pytest ];
   propagatedBuildInputs = [ pytest-metadata ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
index d6f30486f9b2..1773a4b57928 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpx";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "Colin-b";
     repo = "pytest_httpx";
     rev = "v${version}";
-    sha256 = "08idd3y6khxjqkn46diqvkjvsl4w4pxhl6z1hspbkrj0pqwf9isi";
+    sha256 = "sha256-Awhsm8jmoCZTBnfrrauLxAEKtpxTzjPMXmx7HR0f/g4=";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
index 1a03ec2f91d2..9f04cbe407d3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, pytest, setuptools_scm }:
+, pytest, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "pytest-metadata";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "71b506d49d34e539cc3cfdb7ce2c5f072bea5c953320002c95968e0238f8ecf1";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   buildInputs = [ pytest ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix b/nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix
index 3764a05af057..ad1e7f0c3fd3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix
@@ -5,7 +5,7 @@
 , isPy3k
 , pytest
 , mock
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = lib.optional (!isPy3k) mock;
 
   nativeBuildInputs = [
-   setuptools_scm
+   setuptools-scm
   ];
 
   checkInputs = [
@@ -35,6 +35,6 @@ buildPythonPackage rec {
     description = "Thin-wrapper around the mock package for easier use with py.test.";
     homepage    = "https://github.com/pytest-dev/pytest-mock";
     license     = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
index 3e044b4fe596..5be8529433fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , pytest-asyncio
 , pytestCheckHook
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "1z6r3n78bilfzkbxj083p0ib04ia1bhfgnj2qq9x6q4mmykapqm1";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [
     pytest-asyncio
@@ -28,6 +28,6 @@ buildPythonPackage rec {
     description = "Thin-wrapper around the mock package for easier use with pytest";
     homepage = "https://github.com/pytest-dev/pytest-mock";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
index 88b8017e1c09..8c52fa2e6988 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -4,7 +4,7 @@
 , filelock
 , pytest
 , mypy
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "1fa55723a4bf1d054fcba1c3bd694215a2a65cc95ab10164f5808afd893f3b11";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   buildInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
index baa5438dfa88..573dbf275117 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
@@ -5,7 +5,7 @@
 , pytest
 , pytestCheckHook
 , psutil
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "179c2911d8aee3441fee051aba08e0d9b4dab61b829ae4811906d5c49a3b0a58";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   buildInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-ordering/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-ordering/default.nix
index 6cd1ed227976..c5e8a786b5ef 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-ordering/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-ordering/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/ftobia/pytest-ordering";
     description = "Pytest plugin to run your tests in a specific order";
     license = licenses.mit;
+    broken = true;  # See https://github.com/NixOS/nixpkgs/pull/122264
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix
index c91c3eae4abe..4add58efbca3 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-qt/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytest
 , pyqt5
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-regressions/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-regressions/default.nix
new file mode 100644
index 000000000000..90b72c886eac
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-regressions/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchpatch
+, fetchPypi
+, pythonOlder
+, matplotlib
+, numpy
+, pandas
+, pillow
+, pytest
+, pytest-datadir
+, pytestCheckHook
+, pyyaml
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-regressions";
+  version = "2.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15a71f77cb266dd4ca94331abe4c339ad056b2b2175e47442711c98cf6d65716";
+  };
+
+  patches = [
+    # Make pytest-regressions compatible with NumPy 1.20.
+    # Should be part of the next release.
+    (fetchpatch {
+      url = "https://github.com/ESSS/pytest-regressions/commit/ffad2c7fd1d110f420f4e3ca3d39d90cae18a972.patch";
+      sha256 = "sha256-bUna7MnMV6u9oEaZMsFnr4gE28rz/c0O2+Hyk291+l0=";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools-scm ];
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ numpy pandas pillow pytest-datadir pyyaml ];
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  checkInputs = [ pytestCheckHook matplotlib ];
+  pythonImportsCheck = [ "pytest_regressions" "pytest_regressions.plugin" ];
+
+  meta = with lib; {
+    description = "Pytest fixtures to write regression tests";
+    longDescription = ''
+      pytest-regressions makes it simple to test general data, images,
+      files, and numeric tables by saving expected data in a data
+      directory (courtesy of pytest-datadir) that can be used to verify
+      that future runs produce the same data.
+    '';
+    homepage = "https://github.com/ESSS/pytest-regressions";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-repeat/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-repeat/default.nix
index b90e8ebef385..0652bcacbccd 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-repeat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-repeat/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytest
 , fetchpatch
 }:
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
index 84330cfd62e5..81e189c22c57 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
@@ -2,7 +2,6 @@
 , aiohttp
 , async_generator
 , buildPythonPackage
-, doCheck ? true
 , fetchFromGitHub
 , httpx
 , pytest
@@ -13,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pytest-sanic";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "yunstanford";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zpgnw1lqbll59chv4hgcn31mdql1nv4gw9crbihky3ly3d3ncqi";
+    sha256 = "sha256-OtyulpSHUWERtcIRT5j3YtHciIxFiIFYKqtlEd1NSFw=";
   };
 
   buildInputs = [ pytest ];
@@ -37,7 +36,20 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  inherit doCheck;
+  disabledTests = [
+    # https://github.com/yunstanford/pytest-sanic/issues/51
+    "test_fixture_sanic_client_get"
+    "test_fixture_sanic_client_post"
+    "test_fixture_sanic_client_put"
+    "test_fixture_sanic_client_delete"
+    "test_fixture_sanic_client_patch"
+    "test_fixture_sanic_client_options"
+    "test_fixture_sanic_client_head"
+    "test_fixture_sanic_client_close"
+    "test_fixture_sanic_client_passing_headers"
+    "test_fixture_sanic_client_context_manager"
+    "test_fixture_test_client_context_manager"
+  ];
 
   pythonImportsCheck = [ "pytest_sanic" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
index ca3c9a37c1a9..7de68cadbb1e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     description = "Extensible server fixures for py.test";
     homepage  = "https://github.com/manahl/pytest-plugins";
     license = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
index 70caefea8953..4f2a577bb4db 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
@@ -5,7 +5,7 @@
 , requests
 , psutil
 , pytest
-, setuptools_scm
+, setuptools-scm
 , subprocess32 ? null
 , toml
 , zc_lockfile
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
     toml
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix b/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix
index fa794f94141a..466d86f50f78 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xdist/1.nix
@@ -1,5 +1,5 @@
 { lib, fetchPypi, buildPythonPackage, execnet, pytest
-, setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
+, setuptools-scm, pytest-forked, filelock, psutil, six, isPy3k }:
 
 buildPythonPackage rec {
   pname = "pytest-xdist";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "1vh4ps32lp5ignch5adbl3pgchvigdfmrl6qpmhxih54wa1qw3il";
   };
 
-  nativeBuildInputs = [ setuptools_scm pytest ];
+  nativeBuildInputs = [ setuptools-scm pytest ];
   checkInputs = [ pytest filelock ];
   propagatedBuildInputs = [ execnet pytest-forked psutil six ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
index bbc08fb59df4..f87169a630bd 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, setuptools_scm
+, setuptools-scm
 , pytestCheckHook
 , filelock
 , execnet
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     sha256 = "718887296892f92683f6a51f25a3ae584993b06f7076ce1e1fd482e59a8220a2";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   buildInputs = [
     pytest
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
index 5949840d1e81..0695b49191b4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchPypi
 , psutil
 , pytest
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "59c739edee7f3f2258e7c77989241698e356c552f5efb28bb46b478616888bf6";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   buildInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/4.nix b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
index f30eec15a0a8..c764b55d1f10 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, pythonOlder, fetchPypi, attrs, hypothesis, py
-, setuptools_scm, setuptools, six, pluggy, funcsigs, isPy3k, more-itertools
+, setuptools-scm, setuptools, six, pluggy, funcsigs, isPy3k, more-itertools
 , atomicwrites, mock, writeText, pathlib2, wcwidth, packaging, isPyPy
 }:
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ hypothesis mock ];
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites wcwidth packaging ]
     ++ lib.optionals (!isPy3k) [ funcsigs ]
     ++ lib.optionals (pythonOlder "3.6") [ pathlib2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/5.nix b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
index 341d5ac2240d..b3e69578d7eb 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
@@ -12,7 +12,7 @@
 , pygments
 , python
 , setuptools
-, setuptools_scm
+, setuptools-scm
 , six
 , toml
 , wcwidth
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ hypothesis pygments ];
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     atomicwrites
     attrs
diff --git a/nixpkgs/pkgs/development/python-modules/pytestrunner/2.nix b/nixpkgs/pkgs/development/python-modules/pytestrunner/2.nix
index d6203276b827..bea83146c37d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytestrunner/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytestrunner/2.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm, pytest }:
 
 buildPythonPackage rec {
   pname = "pytest-runner";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b";
   };
 
-  nativeBuildInputs = [ setuptools_scm pytest ];
+  nativeBuildInputs = [ setuptools-scm pytest ];
 
   postPatch = ''
     rm pytest.ini
diff --git a/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix b/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix
index 6f68bcd02354..897efebf1dca 100644
--- a/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytestrunner/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm, pytest }:
 
 buildPythonPackage rec {
   pname = "pytest-runner";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "ca3f58ff4957e8be6c54c55d575b235725cbbcf4dc0d5091c29c6444cfc8a5fe";
   };
 
-  nativeBuildInputs = [ setuptools_scm pytest ];
+  nativeBuildInputs = [ setuptools-scm pytest ];
 
   postPatch = ''
     rm pytest.ini
diff --git a/nixpkgs/pkgs/development/python-modules/python-binance/default.nix b/nixpkgs/pkgs/development/python-modules/python-binance/default.nix
index aea47c7b9e72..cd1e09557ecb 100644
--- a/nixpkgs/pkgs/development/python-modules/python-binance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-binance/default.nix
@@ -1,25 +1,55 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, requests-mock, tox
-, autobahn, certifi, chardet, cryptography, dateparser, pyopenssl, requests, service-identity, twisted }:
+{ lib
+, aiohttp
+, buildPythonPackage
+, dateparser
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+, six
+, ujson
+, websockets
+}:
 
 buildPythonPackage rec {
-  version = "0.7.9";
   pname = "python-binance";
+  version = "1.0.10";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "476459d91f6cfe0a37ccac38911643ea6cca632499ad8682e0957a075f73d239";
+  src = fetchFromGitHub {
+    owner = "sammchardy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09pq2blvky1ah4k8yc6zkp2g5nkn3awc52ad3lxvj6m33akfzxiv";
   };
 
-  doCheck = false;  # Tries to test multiple interpreters with tox
-  checkInputs = [ pytest requests-mock tox ];
+  propagatedBuildInputs = [
+    aiohttp
+    dateparser
+    requests
+    six
+    ujson
+    websockets
+  ];
 
-  propagatedBuildInputs = [ autobahn certifi chardet cryptography dateparser pyopenssl requests service-identity twisted ];
+  checkInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
 
-  meta = {
+  disabledTestPaths = [
+    # Tests require network access
+    "tests/test_api_request.py"
+    "tests/test_historical_klines.py"
+  ];
+
+  pythonImportsCheck = [ "binance" ];
+
+  meta = with lib; {
     description = "Binance Exchange API python implementation for automated trading";
     homepage = "https://github.com/sammchardy/python-binance";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.bhipple ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ bhipple ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-engineio/3.nix b/nixpkgs/pkgs/development/python-modules/python-engineio/3.nix
index e4c71782f990..5deeec0bb573 100644
--- a/nixpkgs/pkgs/development/python-modules/python-engineio/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-engineio/3.nix
@@ -13,6 +13,7 @@
 , websocket_client
 , websockets
 , pytestCheckHook
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -63,5 +64,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/miguelgrinberg/python-engineio/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ graham33 ];
+    broken = stdenv.isDarwin && (pythonAtLeast "3.9");  # See https://github.com/miguelgrinberg/python-socketio/issues/567
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix b/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix
index 88778ff794ea..4aabb208a90c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix
@@ -29,6 +29,6 @@ in buildPythonPackage rec {
     homepage = "https://github.com/Vayn/python-fontconfig";
     description = "Python binding for Fontconfig";
     license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [ gnidorah ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
index 4dc3cfb5693f..b3cb9aaff633 100644
--- a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
@@ -1,19 +1,36 @@
-{ lib, buildPythonPackage, fetchPypi, requests, mock, httmock, pythonOlder, pytest, responses }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, argcomplete
+, requests
+, requests-toolbelt
+, pyyaml
+}:
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "2.6.0";
+  version = "2.7.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a862c6874524ab585b725a17b2cd2950fc09d6d74205f40a11be2a4e8f2dcaa1";
+    sha256 = "0z4amj5xhx5zc3h2m0zrkardm3z5ba9qpjx5n6dczyz77r527yg1";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [
+    argcomplete
+    pyyaml
+    requests
+    requests-toolbelt
+  ];
 
-  checkInputs = [ mock httmock pytest responses ];
+  # tests rely on a gitlab instance on a local docker setup
+  doCheck = false;
 
-  disabled = pythonOlder "3.6";
+  pythonImportsCheck = [
+    "gitlab"
+  ];
 
   meta = with lib; {
     description = "Interact with GitLab API";
diff --git a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
index 8e90ce5190f6..d196cf6e7478 100644
--- a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "python-igraph";
-  version = "0.9.1";
+  version = "0.9.4";
 
   disabled = pythonOlder "3.6";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "igraph";
     repo = "python-igraph";
     rev = version;
-    sha256 = "1ldyzza25zvwh144lw8x856z76s8gfvnbdm56fcmwkvm7aj81npw";
+    sha256 = "sha256-0iqYzeqVJwBqDL7AllrNaI5c7fmtrVwWpinCnO+ACzo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
index 69fbaa78067e..daab437c9797 100644
--- a/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
+{ lib, buildPythonPackage, fetchFromGitHub, pythonAtLeast, pythonOlder, isPy27
 , backports_functools_lru_cache ? null, configparser ? null, futures ? null, future, jedi, pluggy, python-jsonrpc-server, flake8
 , pytestCheckHook, mock, pytestcov, coverage, setuptools, ujson, flaky
 , # Allow building a limited set of providers, e.g. ["pycodestyle"].
@@ -22,6 +22,8 @@ in
 buildPythonPackage rec {
   pname = "python-language-server";
   version = "0.36.2";
+  # https://github.com/palantir/python-language-server/issues/896#issuecomment-752790868
+  disabled = pythonAtLeast "3.9";
 
   src = fetchFromGitHub {
     owner = "palantir";
@@ -30,6 +32,13 @@ buildPythonPackage rec {
     sha256 = "07x6jr4z20jxn03bxblwc8vk0ywha492cgwfhj7q97nb5cm7kx0q";
   };
 
+  postPatch = ''
+    # Reading the changelog I don't expect an API break in pycodestyle and pyflakes
+    substituteInPlace setup.py \
+      --replace "pycodestyle>=2.6.0,<2.7.0" "pycodestyle>=2.6.0,<2.8.0" \
+      --replace "pyflakes>=2.2.0,<2.3.0" "pyflakes>=2.2.0,<2.4.0"
+  '';
+
   propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server ujson ]
     ++ lib.optional (withProvider "autopep8") autopep8
     ++ lib.optional (withProvider "mccabe") mccabe
diff --git a/nixpkgs/pkgs/development/python-modules/python-lz4/default.nix b/nixpkgs/pkgs/development/python-modules/python-lz4/default.nix
index b851ed6b826f..95208c7b94b6 100644
--- a/nixpkgs/pkgs/development/python-modules/python-lz4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-lz4/default.nix
@@ -8,7 +8,7 @@
 , pytest
 , pytestcov
 , pytestrunner
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -23,11 +23,11 @@ buildPythonPackage rec {
     sha256 = "009c4rbyj4cjb8fznccfpr5wrzdmi56wq990yjh22n0z2qqylmkf";
   };
 
-  nativeBuildInputs = [ setuptools_scm pkgconfig pytestrunner ];
+  nativeBuildInputs = [ setuptools-scm pkgconfig pytestrunner ];
   checkInputs = [ pytest pytestcov psutil ];
   propagatedBuildInputs = lib.optionals (!isPy3k) [ future ];
 
-  # give a hint to setuptools_scm on package version
+  # give a hint to setuptools-scm on package version
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="v${version}"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix b/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix
index 36c297358e87..228e0d74ebc2 100644
--- a/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix
@@ -35,10 +35,16 @@ in buildPythonPackage rec {
     export BOOST_PYTHON_LIB="boost_python${pythonVersion}"
     export BOOST_THREAD_LIB="boost_thread"
     export BOOST_SYSTEM_LIB="boost_system"
+    export PYCAIRO=true
   '';
 
   nativeBuildInputs = [
     mapnik # for mapnik_config
+    pkgs.pkgconfig
+  ];
+
+  patches = [
+    ./find-pycairo-with-pkg-config.patch
   ];
 
   buildInputs = [
@@ -57,6 +63,8 @@ in buildPythonPackage rec {
   ]);
   propagatedBuildInputs = [ pillow pycairo ];
 
+  pythonImportsCheck = [ "mapnik" ] ;
+
   meta = with lib; {
     description = "Python bindings for Mapnik";
     homepage = "https://mapnik.org";
diff --git a/nixpkgs/pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch b/nixpkgs/pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch
new file mode 100644
index 000000000000..1f35af36ee82
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch
@@ -0,0 +1,18 @@
+diff --git a/setup.py b/setup.py
+index 82a31d733..1c876a553 100755
+--- a/setup.py
++++ b/setup.py
+@@ -228,10 +228,9 @@ extra_comp_args = list(filter(lambda arg: arg != "-fvisibility=hidden", extra_co
+ if os.environ.get("PYCAIRO", "false") == "true":
+     try:
+         extra_comp_args.append('-DHAVE_PYCAIRO')
+-        print("-I%s/include/pycairo".format(sys.exec_prefix))
+-        extra_comp_args.append("-I{0}/include/pycairo".format(sys.exec_prefix))
+-        #extra_comp_args.extend(check_output(["pkg-config", '--cflags', 'pycairo']).strip().split(' '))
+-        #linkflags.extend(check_output(["pkg-config", '--libs', 'pycairo']).strip().split(' '))
++        pycairo_name = 'py3cairo' if PYTHON3 else 'pycairo'
++        extra_comp_args.extend(check_output(["pkg-config", '--cflags', pycairo_name]).strip().split(' '))
++        linkflags.extend(check_output(["pkg-config", '--libs', pycairo_name]).strip().split(' '))
+     except:
+         raise Exception("Failed to find compiler options for pycairo")
+ 
diff --git a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
index 1d9025a035f2..2374c6797f2e 100644
--- a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
@@ -24,20 +24,19 @@
 
 buildPythonPackage rec {
   pname = "python-miio";
-  version = "0.5.5.2";
+  version = "0.5.6";
   disabled = pythonOlder "3.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-lk7egCyj+vSsaXmxuWxlQuom8n3JEs/RIWwCuwTOXeI=";
+    sha256 = "sha256-tmGt50xBDV++/pqyXsuxHdrwv+XbkjvtrzsYBzQh7zE=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace 'croniter = "^0"' 'croniter = "*"' \
-      --replace 'defusedxml = "^0.6"' 'defusedxml = "*"' \
-      --replace 'zeroconf = "^0.28"' 'zeroconf = "*"'
+      --replace 'defusedxml = "^0.6"' 'defusedxml = "*"'
   '';
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix b/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
index 7a53e73b2b88..49113dfad5ef 100644
--- a/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , redis
-, pytest
+, pytestCheckHook
 , process-tests
 , pkgs
 , withDjango ? false, django_redis
@@ -17,15 +17,20 @@ buildPythonPackage rec {
     sha256 = "4265a476e39d476a8acf5c2766485c44c75f3a1bd6cf73bb195f3079153b8374";
   };
 
-  checkInputs = [ pytest process-tests pkgs.redis ];
+  propagatedBuildInputs = [
+    redis
+  ] ++ lib.optional withDjango django_redis;
 
-  checkPhase = ''
-    pytest tests/
-  '';
-
-  propagatedBuildInputs = [ redis ]
-  ++ lib.optional withDjango django_redis;
+  checkInputs = [
+    pytestCheckHook
+    process-tests
+    pkgs.redis
+  ];
 
+  disabledTests = [
+    # https://github.com/ionelmc/python-redis-lock/issues/86
+    "test_no_overlap2"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/ionelmc/python-redis-lock";
diff --git a/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
index aadf75d59f7f..781231749fdf 100644
--- a/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
-, pkg-config, alsaLib, libjack2, tox, flake8, alabaster
+, pkg-config, alsa-lib, libjack2, tox, flake8, alabaster
 }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib libjack2 ];
+  buildInputs = [ alsa-lib libjack2 ];
   checkInputs = [
     tox
     flake8
diff --git a/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix b/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
index 904437bdcf66..1a7974ecd267 100644
--- a/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-simple-hipchat/default.nix
@@ -1,5 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi
-, unzip }:
+{ lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "python-simple-hipchat";
@@ -10,8 +9,6 @@ buildPythonPackage rec {
     sha256 = "0zy6prrj85jjc4xmxgfg8h94j81k6zhfxfffcbvq9b10jis1rgav";
   };
 
-  nativeBuildInputs = [ unzip ];
-
   meta = with lib; {
     description = "Easy peasy wrapper for HipChat's v1 API";
     homepage = "https://github.com/kurttheviking/simple-hipchat-py";
diff --git a/nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix b/nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix
index d9d1d446d1ef..380b1738964b 100644
--- a/nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-smarttub/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "python-smarttub";
-  version = "0.0.23";
+  version = "0.0.24";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mdz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0maqbmk50xjhv9f0zm62ayzyf99kic3c0g5714cqkw3pfp8k75cx";
+    sha256 = "sha256-XWZbfPNZ1cPsDwtJRuOwIPTHmNBMzFSYHDDcbBrXjtk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix b/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
index 05d804bc6770..b494d2e442e6 100644
--- a/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
@@ -24,7 +24,6 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [
     "snap7"
-    "snap7.six"
     "snap7.util"
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/python-socks/default.nix b/nixpkgs/pkgs/development/python-modules/python-socks/default.nix
new file mode 100644
index 000000000000..dcf268808275
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-socks/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, trio, curio, async-timeout, fetchPypi, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "python-socks";
+  version = "1.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n6xb18jy41ybgkmamakg6psp3qididd45qknxiggngaiibz43kx";
+  };
+
+  disabled = pythonOlder "3.6.1";
+
+  propagatedBuildInputs = [ trio curio async-timeout ];
+
+  meta = with lib; {
+    description = "Core proxy client (SOCKS4, SOCKS5, HTTP) functionality for Python";
+    homepage = "https://github.com/romis2012/python-socks";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mjlbach ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
index b5155fd4bb65..7fc92a2236b1 100644
--- a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "13.4.1";
+  version = "13.5";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "141w3701jjl460702xddqvi3hswp24jnkl6cakvz2aqrmcyxq7sc";
+    sha256 = "sha256-g9v0zUYyf9gYu2ZV8lCAJKCt5o69s1RNo1xGmtwjvds=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-toolbox/default.nix b/nixpkgs/pkgs/development/python-modules/python-toolbox/default.nix
index bdf09fdf2c79..a310736c7492 100644
--- a/nixpkgs/pkgs/development/python-modules/python-toolbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-toolbox/default.nix
@@ -3,8 +3,7 @@
 , docutils
 , fetchFromGitHub
 , isPy27
-, nose
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -21,7 +20,13 @@ buildPythonPackage rec {
 
   checkInputs = [
     docutils
-    pytest
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # file imports 'dummy_threading', which was deprecated since py37
+    # and removed in py39
+    "test_python_toolbox/test_cute_profile/test_cute_profile.py"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/python-velbus/default.nix b/nixpkgs/pkgs/development/python-modules/python-velbus/default.nix
index a02edfdc1f6d..c83ff853f1d5 100644
--- a/nixpkgs/pkgs/development/python-modules/python-velbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-velbus/default.nix
@@ -6,19 +6,22 @@
 
 buildPythonPackage rec {
   pname = "python-velbus";
-  version = "2.1.2";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "thomasdelaet";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0dv7dsjp5li87ispdphaz7jd0a9xc328rxwawf2f58b1ii904xr4";
+    rev = version;
+    sha256 = "1z0a7fc9xfrcpwi9xiimxsgbzbp2iwyi1rij6vqd5z47mzi49fv9";
   };
 
-  propagatedBuildInputs = [ pyserial ];
+  propagatedBuildInputs = [
+    pyserial
+  ];
 
   # Project has not tests
   doCheck = false;
+
   pythonImportsCheck = [ "velbus" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix b/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix
index 6f83f587f588..2690f8ea7ebe 100644
--- a/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix
@@ -8,30 +8,33 @@
 
 buildPythonPackage rec {
   pname = "python-vlc";
-  version = "3.0.11115";
+  version = "3.0.12118";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4d3bdddfce84a8fb1b2d5447193a0239c55c16ca246e5194d48efd59c4e236b";
+    hash = "sha256-Vm8vfDA/aACFHKzAFt8cbu7AlK1j4KSdh9udaYCU8fs=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
-
   patches = [
+    # Patch path for VLC
     (substituteAll {
       src = ./vlc-paths.patch;
       libvlcPath="${libvlc}/lib/libvlc.so.5";
     })
   ];
 
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
   doCheck = false; # no tests
 
+  pythonImportsCheck = [ "vlc" ];
+
   meta = with lib; {
-    homepage = "https://wiki.videolan.org/PythonBinding";
-    maintainers = with maintainers; [ tbenst ];
     description = "Python bindings for VLC, the cross-platform multimedia player and framework";
+    homepage = "https://wiki.videolan.org/PythonBinding";
     license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ tbenst ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix b/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix
index d0054f7076a1..7387d387dbec 100644
--- a/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythonnet/default.nix
@@ -2,8 +2,7 @@
 , fetchPypi
 , fetchNuGet
 , buildPythonPackage
-, python
-, pytest
+, pytestCheckHook
 , pycparser
 , psutil
 , pkg-config
@@ -15,29 +14,36 @@
 
 let
 
-  UnmanagedExports127 = fetchNuGet {
-    baseName = "UnmanagedExports";
-    version = "1.2.7";
-    sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf";
-    outputFiles = [ "*" ];
-  };
-
-  NUnit371 = fetchNuGet {
-    baseName = "NUnit";
-    version = "3.7.1";
-    sha256 = "1yc6dwaam4w2ss1193v735nnl79id78yswmpvmjr1w4bgcbdza4l";
-    outputFiles = [ "*" ];
-  };
+  dotnetPkgs = [
+    (fetchNuGet {
+      baseName = "UnmanagedExports";
+      version = "1.2.7";
+      sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf";
+      outputFiles = [ "*" ];
+    })
+    (fetchNuGet {
+      baseName = "NUnit";
+      version = "3.12.0";
+      sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
+      outputFiles = [ "*" ];
+    })
+    (fetchNuGet {
+      baseName = "System.ValueTuple";
+      version = "4.5.0";
+      sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy";
+      outputFiles = [ "*" ];
+    })
+  ];
 
 in
 
 buildPythonPackage rec {
   pname = "pythonnet";
-  version = "2.4.0";
+  version = "2.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ach9jic7a9rd3vmc4bphkr9fq01a0qk81f8a7gr9npwzmkqx8x3";
+    sha256 = "1qzdc6jd7i9j7p6bcihnr98y005gv1358xqdr1plpbpnl6078a5p";
   };
 
   postPatch = ''
@@ -50,7 +56,6 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
-    pytest
     pycparser
 
     pkg-config
@@ -59,13 +64,15 @@ buildPythonPackage rec {
 
     mono
 
-    NUnit371
-    UnmanagedExports127
-  ];
+  ] ++ dotnetPkgs;
 
   buildInputs = [
     glib
     mono
+  ];
+
+  checkInputs = [
+    pytestCheckHook
     psutil # needed for memory leak tests
   ];
 
@@ -73,22 +80,21 @@ buildPythonPackage rec {
     rm -rf packages
     mkdir packages
 
-    ln -s ${NUnit371}/lib/dotnet/NUnit/ packages/NUnit.3.7.1
-    ln -s ${UnmanagedExports127}/lib/dotnet/NUnit/ packages/UnmanagedExports.1.2.7
+    ${builtins.concatStringsSep "\n" (
+        builtins.map (
+            x: ''ln -s ${x}/lib/dotnet/${x.baseName} ./packages/${x.baseName}.${x.version}''
+          ) dotnetPkgs)}
 
     # Setting TERM=xterm fixes an issue with terminfo in mono: System.Exception: Magic number is wrong: 542
     export TERM=xterm
   '';
 
-  checkPhase = ''
-    ${python.interpreter} -m pytest
-  '';
-
   meta = with lib; {
     description = ".Net and Mono integration for Python";
     homepage = "https://pythonnet.github.io";
     license = licenses.mit;
+    # <https://github.com/pythonnet/pythonnet/issues/898>
+    badPlatforms = [ "aarch64-linux" ];
     maintainers = with maintainers; [ jraygauthier ];
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytmx/default.nix b/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
index 17c18a96c736..6d88f4b636b1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
@@ -5,20 +5,26 @@
 
 buildPythonPackage rec {
   pname = "pytmx";
-  version = "3.24.0";
+  version = "3.25";
 
   disabled = isPy27;
 
   src = fetchFromGitHub {
-    # The release was not git tagged.
     owner = "bitcraft";
     repo = "PyTMX";
-    rev = "eb96efea30d57b731654b2a167d86b8b553b147d";
-    sha256 = "1g1j4w75zw76p5f8m5v0hdigdlva2flf0ngyk8nvqcwzcl5vq5wc";
+    rev = version;
+    sha256 = "0v07zhvzvl2qcqhjzgfzm8hgayq38gaqcxxkyhlq9n0hlk93nm97";
   };
 
   propagatedBuildInputs = [ pygame pyglet pysdl2 six ];
 
+  pythonImportsCheck = [
+    "pytmx.pytmx"
+    "pytmx.util_pygame"
+    "pytmx.util_pyglet"
+    "pytmx.util_pysdl2"
+  ];
+
   checkPhase = ''
     # Change into the test directory due to a relative resource path.
     cd tests/pytmx
@@ -28,7 +34,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/bitcraft/PyTMX";
     description = "Python library to read Tiled Map Editor's TMX maps";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytomlpp/default.nix b/nixpkgs/pkgs/development/python-modules/pytomlpp/default.nix
new file mode 100644
index 000000000000..19edd7057eb4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytomlpp/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pybind11
+, pytestCheckHook
+, dateutil
+, doxygen
+, python
+, pelican
+, matplotlib
+}:
+
+buildPythonPackage rec {
+  pname = "pytomlpp";
+  version = "0.3.5";
+
+  src = fetchFromGitHub {
+    owner = "bobfang1992";
+    repo = pname;
+    rev = version;
+    fetchSubmodules = true;
+    sha256 = "1h06a2r0f5q4mml485113mn7a7585zmhqsk2p1apcybyydllcqda";
+  };
+
+  buildInputs = [ pybind11 ];
+
+  checkInputs = [
+    pytestCheckHook
+
+    dateutil
+    doxygen
+    python
+    pelican
+    matplotlib
+  ];
+
+  # pelican requires > 2.7
+  doCheck = !pythonOlder "3.6";
+
+  preCheck = ''
+    cd tests
+  '';
+
+  pythonImportsCheck = [ "pytomlpp" ];
+
+  meta = with lib; {
+    description = "A python wrapper for tomlplusplus";
+    homepage = "https://github.com/bobfang1992/pytomlpp";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evils ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch-metric-learning/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch-metric-learning/default.nix
index 285602bce4a8..e340d5eefada 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch-metric-learning/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch-metric-learning/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , isPy27
 , numpy
-, scikitlearn
+, scikit-learn
 , pytestCheckHook
 , pytorch
 , torchvision
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy
     pytorch
-    scikitlearn
+    scikit-learn
     torchvision
     tqdm
   ];
@@ -41,10 +41,16 @@ buildPythonPackage rec {
   disabledTests = [
     # requires FAISS (not in Nixpkgs)
     "test_accuracy_calculator_and_faiss"
+    "test_global_embedding_space_tester"
+    "test_with_same_parent_label_tester"
     # require network access:
     "test_get_nearest_neighbors"
     "test_tuplestoweights_sampler"
     "test_untrained_indexer"
+    "test_metric_loss_only"
+    "test_pca"
+    # flaky
+    "test_distributed_classifier_loss_and_miner"
   ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
index 1880a0e2bf93..41af9502c0c9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
@@ -18,7 +18,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "1.8.0";
+  version = "1.8.1";
 in buildPythonPackage {
   inherit version;
 
@@ -64,6 +64,7 @@ in buildPythonPackage {
   meta = with lib; {
     description = "Open source, prototype-to-production deep learning platform";
     homepage = "https://pytorch.org/";
+    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 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
index bc838597038d..4855d1357106 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
@@ -1,14 +1,17 @@
 version: {
   x86_64-linux-37 = {
-    url = "https://download.pytorch.org/whl/cu102/torch-${version}-cp37-cp37m-linux_x86_64.whl";
-    hash = "sha256-bs29RJS0vy0xok3fvf8yvZlTibyGYqRUvUDT6M4gKQc=";
+    name = "torch-${version}-cp37-cp37m-linux_x86_64.whl";
+    url = "https://download.pytorch.org/whl/cu111/torch-${version}%2Bcu111-cp37-cp37m-linux_x86_64.whl";
+    hash = "sha256-lxj066PiB+S88GqQnXKgd9RCiKkMk3mctx/eBieZjAk=";
   };
   x86_64-linux-38 = {
-    url = "https://download.pytorch.org/whl/cu102/torch-${version}-cp38-cp38-linux_x86_64.whl";
-    hash = "sha256-+h45HMo5N9Xeox8xoagKAb1KgGLAOUSMJUu/WljrB4c=";
+    name = "torch-${version}-cp38-cp38-linux_x86_64.whl";
+    url = "https://download.pytorch.org/whl/cu111/torch-${version}%2Bcu111-cp38-cp38-linux_x86_64.whl";
+    hash = "sha256-qvTQMLz4CQPgalzUyYwz6rm+ExyWlIzI+FSMQhxM4eM=";
   };
   x86_64-linux-39 = {
-    url = "https://download.pytorch.org/whl/cu102/torch-${version}-cp39-cp39-linux_x86_64.whl";
-    hash = "sha256-Ixj6yGCuc9xkhsDeIiNnTZ72E5/HXxV68r+Nzk/KVSQ=";
+    name = "torch-${version}-cp39-cp39-linux_x86_64.whl";
+    url = "https://download.pytorch.org/whl/cu111/torch-${version}%2Bcu111-cp39-cp39-linux_x86_64.whl";
+    hash = "sha256-z0pzEiljU+E2x2SuOEAg86dmVY1iFZSDOCfoOAFhLQo=";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
index 59a8c74f709c..8fae54c84660 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
@@ -6,7 +6,7 @@
   cudaArchList ? null,
 
   # Native build inputs
-  cmake, util-linux, linkFarm, symlinkJoin, which,
+  cmake, util-linux, linkFarm, symlinkJoin, which, pybind11,
 
   # Build inputs
   numactl,
@@ -216,6 +216,7 @@ in buildPythonPackage rec {
     util-linux
     which
     ninja
+    pybind11
   ] ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
 
   buildInputs = [ blas blas.provider ]
diff --git a/nixpkgs/pkgs/development/python-modules/pytube/default.nix b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
index 8bcfa8b6c7d9..086c3a8671b1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytube/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pytube";
-  version = "10.7.2";
+  version = "10.8.3";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "pytube";
     repo = "pytube";
     rev = "v${version}";
-    sha256 = "sha256-85pHzfQYyqwX8mQ5msIojM/0FSfeaC12KJw4mXmji3g=";
+    sha256 = "sha256-U/TXA/0y5tsuj0q3kxacHk76wjYG6k8mPX5F3MpADmk=";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
index abfc34e6481b..0011bc69bc56 100644
--- a/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyturbojpeg/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "pyturbojpeg";
-  version = "1.4.3";
+  version = "1.5.0";
 
   src = fetchPypi {
     pname = "PyTurboJPEG";
     inherit version;
-    sha256 = "sha256-Q7KVfR9kA32QPQFWgSSCVB5sNOmSF8y5J4dmBc14jvg=";
+    sha256 = "sha256-juy8gVqOXKSGGq+gOBO2BuJEL2RHjjCWJDrwRCvrZIE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix b/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix
index 281511192fe5..cf7b3eb2aeb0 100644
--- a/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyu2f/default.nix
@@ -1,34 +1,30 @@
-{ stdenv, lib, fetchFromGitHub, buildPythonPackage,
-  six, mock, pyfakefs, unittest2, pytest
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, six
+, mock
+, pyfakefs
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyu2f";
-  version = "0.1.4";
+  version = "0.1.5a";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = version;
-    sha256 = "0waxdydvxn05a8ab9j235mz72x7p4pwa59pnxyk1zzbwxnpxb3p9";
+    sha256 = "0mx7bn1p3n0fxyxa82wg3c719hby7vqkxv57fhf7zvhlg2zfnr0v";
   };
 
-  # Platform detection for linux fails
-  postPatch = lib.optionalString stdenv.isLinux ''
-    rm pyu2f/tests/hid/macos_test.py
-  '';
-
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ pytest mock pyfakefs unittest2 ];
-
-  checkPhase = ''
-    pytest pyu2f/tests
-  '';
+  checkInputs = [ mock pyfakefs pytestCheckHook ];
 
   meta = with lib; {
     description = "U2F host library for interacting with a U2F device over USB";
-    homepage = "https://github.com/google/pyu2f/";
+    homepage = "https://github.com/google/pyu2f";
     license = licenses.asl20;
     maintainers = with maintainers; [ prusnak ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
index 8cd250f6e014..412b032db7f6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyupgrade";
-  version = "2.12.0";
+  version = "2.19.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pAZszyv7jXEwtQYzEk5Zq2ULP0K2vX0y6IvR6wYsJ9c=";
+    sha256 = "sha256-zDT8VskHEX4uldMvxnb9A+FKMuvZbtEcmdVl5mghTs4=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
index 1ad312dd5d6a..43ae18741e1d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyusb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchPypi, buildPythonPackage, libusb1, setuptools_scm }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, libusb1, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "pyusb";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   # Fix the USB backend library lookup
diff --git a/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix b/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix
index 3684fee0d22e..09f995412fcd 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, setuptools_scm
+, setuptools-scm
 , six
 , pytest
 }:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "071e51a8362908ad5a2a12f078185639b98b20b653a56f01679de169d0fa425d";
   };
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ six ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyvesync/default.nix b/nixpkgs/pkgs/development/python-modules/pyvesync/default.nix
index 393170cfb9f0..1146fe892f59 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvesync/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvesync/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pyvesync";
-  version = "1.3.1";
+  version = "1.4.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02fpbyg46mlpc2c1j4zylw9a1h6bacxvigrl3cndsf6fxlhfx15z";
+    sha256 = "sha256-xvHvZx22orJR94cRMyyXey27Ksh2/ULHRvv7xxXv11k=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
index fa3d2119ae87..cb0547dfe4ce 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
@@ -11,13 +11,17 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.0.6852";
+  version = "9.0.7912";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-O84QErqHIRYQZh9mR71opm+j7kb9a4s5f1yj0WNiJAM=";
+    sha256 = "sha256-KqTfu49Muicr5oJcXcoYpz3S7+0hk7dxbU7GMCDlJQA=";
   };
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace vex/Makefile-gcc --replace '/usr/bin/ar' 'ar'
+  '';
+
   propagatedBuildInputs = [
     archinfo
     bitstring
@@ -28,6 +32,7 @@ buildPythonPackage rec {
 
   preBuild = ''
     export CC=${stdenv.cc.targetPrefix}cc
+    substituteInPlace pyvex_c/Makefile --replace 'AR=ar' 'AR=${stdenv.cc.targetPrefix}ar'
   '';
 
   # No tests are available on PyPI, GitHub release has tests
diff --git a/nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix b/nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix
new file mode 100644
index 000000000000..0c87af03ecce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, setuptools-scm
+, pyserial
+, pyusb
+, pyvisa
+, typing-extensions
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pyvisa-py";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "pyvisa";
+    repo = "pyvisa-py";
+    rev = version;
+    hash = "sha256-V1BS+BvHVI8h/rynLnOHvQdIR6RwQrNa2p2S6GQug98=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    pyserial
+    pyusb
+    pyvisa
+    typing-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postConfigure = ''
+    export SETUPTOOLS_SCM_PRETEND_VERSION="v${version}"
+  '';
+
+  meta = with lib; {
+    description = "PyVISA backend that implements a large part of the Virtual Instrument Software Architecture in pure Python";
+    homepage = "https://github.com/pyvisa/pyvisa-py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mvnetbiz ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyvisa/default.nix b/nixpkgs/pkgs/development/python-modules/pyvisa/default.nix
new file mode 100644
index 000000000000..389adfbbb48c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyvisa/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, setuptools-scm
+, setuptools
+, typing-extensions
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pyvisa";
+  version = "1.11.3";
+
+  src = fetchFromGitHub {
+    owner = "pyvisa";
+    repo = "pyvisa";
+    rev = version;
+    hash = "sha256-Qe7W1zPI1aedLDnhkLTDPTa/lsNnCGik5Hu+jLn+meA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    typing-extensions
+    setuptools
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  # Test can't find cli tool bin path correctly
+  disabledTests = [
+    "test_visa_info"
+  ];
+
+  postConfigure = ''
+    export SETUPTOOLS_SCM_PRETEND_VERSION="v${version}"
+  '';
+
+  meta = with lib; {
+    description = "Python package for support of the Virtual Instrument Software Architecture (VISA)";
+    homepage = "https://github.com/pyvisa/pyvisa";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mvnetbiz ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
index a020517dcce2..e750f234faf5 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
@@ -6,7 +6,7 @@
 , pytest
 , pythonOlder
 , qt5
-, xvfb_run
+, xvfb-run
 }:
 
 buildPythonPackage rec {
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytest
-    xvfb_run
+    xvfb-run
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pywemo/default.nix b/nixpkgs/pkgs/development/python-modules/pywemo/default.nix
index ceb190fe753a..7448f1f7f2c7 100644
--- a/nixpkgs/pkgs/development/python-modules/pywemo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywemo/default.nix
@@ -47,6 +47,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # https://github.com/NixOS/nixpkgs/issues/124165
+    "test_bridge_getdevicestatus"
+  ];
+
   pythonImportsCheck = [ "pywemo" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pywilight/default.nix b/nixpkgs/pkgs/development/python-modules/pywilight/default.nix
index 4fa4c0fa8542..425cba61ce3f 100644
--- a/nixpkgs/pkgs/development/python-modules/pywilight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywilight/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pywilight";
-  version = "0.0.68";
+  version = "0.0.70";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s1xyw5hkfr4rlni1p9z4941pp1740fsg4a3b23a618hv2p1i4ww";
+    sha256 = "sha256-PLahGx75oEp4NIZB9PVRdA3cLBxhQsHTsnquy7WSEC8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix b/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
index ba41712c236d..1461a7053022 100644
--- a/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "pywizlight";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "sbidy";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-BCHLd1SbdHWrl7dcLD69t2K5Sa1WtGpMxTmMyDWl9u4=";
+    rev = version;
+    sha256 = "0zagdb90bxmf06fzpljhqgsgzg36zc1yhdibacfrx8bmnx3l657h";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyxb/default.nix b/nixpkgs/pkgs/development/python-modules/pyxb/default.nix
new file mode 100644
index 000000000000..3be79736e555
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyxb/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "PyXB";
+  version = "1.2.6";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a";
+  };
+
+  pythonImportsCheck = [
+    "pyxb"
+  ];
+
+  # tests don't complete
+  # https://github.com/pabigot/pyxb/issues/130
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python XML Schema Bindings";
+    homepage = "https://github.com/pabigot/pyxb";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
index 87f6b9756ed3..a72b46037753 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
@@ -5,6 +5,7 @@
 , nose
 , lxml
 , requests
+, six
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,11 @@ buildPythonPackage rec {
     sha256 = "22524120d744b50d25ef6bfc7052637e4ead9e2afac92563231ec89848f5adf5";
   };
 
-  propagatedBuildInputs = [ lxml requests ];
+  propagatedBuildInputs = [
+    lxml
+    requests
+    six
+  ];
 
   # future is not used, and pathlib is installed part of python38+
   # w/o an external package
diff --git a/nixpkgs/pkgs/development/python-modules/qcelemental/default.nix b/nixpkgs/pkgs/development/python-modules/qcelemental/default.nix
new file mode 100644
index 000000000000..7d1dcdeb1c7b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/qcelemental/default.nix
@@ -0,0 +1,41 @@
+{ buildPythonPackage, lib, fetchPypi, fetchpatch, numpy
+, pydantic, pint,  networkx, pytestrunner, pytestcov, pytest
+} :
+
+buildPythonPackage rec {
+  pname = "qcelemental";
+  version = "0.20.0";
+
+  checkInputs = [ pytestrunner pytestcov pytest ];
+  propagatedBuildInputs = [ numpy pydantic pint networkx ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "141vw36fmacj897q26kq2bl9l0d23lyqjfry6q46aa9087dcs7ni";
+  };
+
+  # FIXME: Fixed upstream but not released yet. Nevertheless critical for correct behaviour.
+  # See https://github.com/MolSSI/QCElemental/pull/265
+  patches = [
+    (fetchpatch {
+      name = "SearchPath1.patch";
+      url = "https://github.com/MolSSI/QCElemental/commit/2211a4e59690bcb14265a60f199a5efe74fe44db.diff";
+      sha256 = "1ibjvmdrc103jdj79xrr11y5yji5hc966rm4ihfhfzgbvfkbjg2l";
+    })
+    (fetchpatch {
+      name = "SearchPath2.patch";
+      url = "https://github.com/MolSSI/QCElemental/commit/5a32ce33e8142047b0a00d0036621fe2750e872a.diff";
+      sha256 = "0gmg70vdps7k6alqclwdlxkli9d8s1fphbdvyl8wy8xrh46jw6rk";
+    })
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Periodic table, physical constants, and molecule parsing for quantum chemistry";
+    homepage = "http://docs.qcarchive.molssi.org/projects/qcelemental/en/latest/";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/qcengine/default.nix b/nixpkgs/pkgs/development/python-modules/qcengine/default.nix
new file mode 100644
index 000000000000..847eeb23c9a1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/qcengine/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage, lib, fetchPypi, pyyaml, qcelemental, pydantic
+, py-cpuinfo, psutil, pytestrunner, pytest, pytestcov
+} :
+
+buildPythonPackage rec {
+  pname = "qcengine";
+  version = "0.19.0";
+
+  checkInputs = [
+    pytestrunner
+    pytestcov
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+    qcelemental
+    pydantic
+    py-cpuinfo
+    psutil
+  ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0lz9r0fh31mcixdhayiwfc69cp8if9b3nkrk7gxdrb6vhbfrxhij";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Quantum chemistry program executor and IO standardizer (QCSchema) for quantum chemistry";
+    homepage = "http://docs.qcarchive.molssi.org/projects/qcelemental/en/latest/";
+    license = licenses.bsd3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
index 54de098bdc46..89041f7508df 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -2,6 +2,7 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
   # C Inputs
 , blas
 , catch2
@@ -27,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.8.0";
+  version = "0.8.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -36,13 +37,30 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aer";
     rev = version;
-    hash = "sha256-CWF3ehLs0HBXnYH11r+2CQwIcxddAfQm3ulAf1agl/o=";
+    hash = "sha256-7NWM7qpMQ3vA6p0dhEPnkBjsPMdhceYTYcAD4tsClf0=";
   };
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/Qiskit/qiskit-aer/pull/1250
+      name = "qiskit-aer-pr-1250-native-cmake_dl_libs.patch";
+      url = "https://github.com/Qiskit/qiskit-aer/commit/2bf04ade3e5411776817706cf82cc67a3b3866f6.patch";
+      sha256 = "0ldwzxxfgaad7ifpci03zfdaj0kqj0p3h94qgshrd2953mf27p6z";
+    })
+  ];
+  # Remove need for cmake python package
+  # pybind11 shouldn't be an install requirement, just build requirement.
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'cmake!=3.17,!=3.17.0'," "" \
+      --replace "'pybind11>=2.6'" ""
+  '';
+
   nativeBuildInputs = [
     cmake
     ninja
     scikit-build
+    pybind11
   ];
 
   buildInputs = [
@@ -58,14 +76,8 @@ buildPythonPackage rec {
     cvxpy
     cython  # generates some cython files at runtime that need to be cython-ized
     numpy
-    pybind11
   ];
 
-  # tries to install pypi cmake package, not needed
-  postPatch = ''
-    substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'," ""
-  '';
-
   # Disable using conan for build
   preBuild = ''
     export DISABLE_CONAN=1
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
index b1cdd7f523cd..7069629470cd 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -10,11 +10,10 @@
 , networkx
 , numpy
 , psutil
-, python
 , qiskit-ignis
 , qiskit-terra
 , quandl
-, scikitlearn
+, scikit-learn
 , yfinance
   # Optional inputs
 , withTorch ? false
@@ -34,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.9.0";
+  version = "0.9.1";
 
   disabled = pythonOlder "3.6";
 
@@ -43,7 +42,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    hash = "sha256-knue9uJih72UQHsvfXZ9AA94mol4ERa9Lo/GMcp+2hA=";
+    hash = "sha256-fptyqPrkUgl3UjtlEmDYORdX/SsONxWozQGEs/EahmU=";
   };
 
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
@@ -59,7 +58,7 @@ buildPythonPackage rec {
     qiskit-terra
     qiskit-ignis
     quandl
-    scikitlearn
+    scikit-learn
     yfinance
   ] ++ lib.optionals (withTorch) [ pytorch ]
   ++ lib.optionals (withPyscf) [ pyscf ]
@@ -97,8 +96,6 @@ buildPythonPackage rec {
       >> qiskit/optimization/__init__.py
   '';
 
-  postInstall = "rm -rf $out/${python.sitePackages}/docs";  # Remove docs dir b/c it can cause conflicts.
-
   checkInputs = [
     pytestCheckHook
     ddt
@@ -123,9 +120,6 @@ buildPythonPackage rec {
     "--ignore=test/chemistry/test_bopes_sampler.py"
   ];
   disabledTests = [
-    # Disabled due to missing pyscf
-    "test_validate" # test/chemistry/test_inputparser.py
-
     # Online tests
     "test_exchangedata"
     "test_yahoo"
@@ -163,6 +157,8 @@ buildPythonPackage rec {
     "test_eoh"
     "test_qasm_5"
     "test_uccsd_hf"
+  ] ++ lib.optionals (!withPyscf) [
+    "test_validate" # test/chemistry/test_inputparser.py
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 80f060c66815..aa02de42fb32 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -39,7 +39,7 @@ let
 in
 buildPythonPackage rec {
   pname = "qiskit-ibmq-provider";
-  version = "0.12.2";
+  version = "0.13.1";
 
   disabled = pythonOlder "3.6";
 
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0yil363mqssq0453nrwxgkjivzk3a4jgbnaf21bp7lwfcl2jdhqm";
+    hash = "sha256-DlHlXncttzGo4uVoh2aQ7urW6krN3ej2sJ/EwuxeF2I=";
   };
 
   propagatedBuildInputs = [
@@ -83,7 +83,9 @@ buildPythonPackage rec {
 
   # Skip tests that rely on internet access (mostly to IBM Quantum Experience cloud).
   # Options defined in qiskit.terra.test.testing_options.py::get_test_options
-  QISKIT_TESTS = "skip_online";
+  preCheck = ''
+    export QISKIT_TESTS=skip_online
+  '';
 
   meta = with lib; {
     description = "Qiskit provider for accessing the quantum devices and simulators at IBMQ";
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
index 403fa0f05a9c..f7ebbee39f80 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -1,11 +1,11 @@
 { lib
+, stdenv
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
-, python
 , numpy
 , qiskit-terra
-, scikitlearn
+, scikit-learn
 , scipy
   # Optional package inputs
 , withVisualization ? false
@@ -35,26 +35,21 @@ buildPythonPackage rec {
     hash = "sha256-L5fwCMsN03ojiDvKIyqsGfUnwej1P7bpyHlL6mu7nh0=";
   };
 
-  # hacky, fix https://github.com/Qiskit/qiskit-ignis/issues/532.
-  # TODO: remove on qiskit-ignis v0.5.2
-  postPatch = ''
-    substituteInPlace qiskit/ignis/mitigation/expval/base_meas_mitigator.py --replace "plt.axes" "'plt.axes'"
-  '';
-
   propagatedBuildInputs = [
     numpy
     qiskit-terra
-    scikitlearn
+    scikit-learn
     scipy
   ] ++ lib.optionals (withCvx) [ cvxpy ]
   ++ lib.optionals (withVisualization) [ matplotlib ]
   ++ lib.optionals (withJit) [ numba ];
-  postInstall = "rm -rf $out/${python.sitePackages}/docs"; # this dir can create conflicts
 
   # Tests
   pythonImportsCheck = [ "qiskit.ignis" ];
   dontUseSetuptoolsCheck = true;
-  preCheck = "export HOME=$TMPDIR";
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
   checkInputs = [
     pytestCheckHook
     ddt
@@ -63,7 +58,8 @@ buildPythonPackage rec {
   ];
   disabledTests = [
     "test_tensored_meas_cal_on_circuit" # Flaky test, occasionally returns result outside bounds
-    "test_qv_fitter" # execution hangs, ran for several minutes
+  ] ++ lib.optionals stdenv.isAarch64 [
+    "test_fitters" # Fails check that arrays are close. Might be due to aarch64 math issues.
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
index a5faf69f942e..8b83c506808e 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
@@ -56,7 +57,7 @@ in
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.17.0";
+  version = "0.17.4";
 
   disabled = pythonOlder "3.6";
 
@@ -64,7 +65,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    hash = "sha256-LbNbaHAWAVG5YLc9juuwcOlrREBW6OjEl7VPtACfl3I=";
+    hash = "sha256-JyNuke+XPqjLVZbvPud9Y7k0+EmvETVKcOYcDldBiVo=";
   };
 
   nativeBuildInputs = [ cython ];
@@ -106,11 +107,17 @@ buildPythonPackage rec {
     "test/python/classical_function_compiler/"
   ];
   disabledTests = [
+    # Not working on matplotlib >= 3.4.0, checks images match.
+    "test_plot_circuit_layout"
+
     # Flaky tests
     "test_cx_equivalence"
     "test_pulse_limits"
+    "test_1q_random"
   ] ++ lib.optionals (!withClassicalFunctionCompiler) [
     "TestPhaseOracle"
+  ] ++ lib.optionals stdenv.isAarch64 [
+    "test_circuit_init" # failed on aarch64, https://gist.github.com/r-rmcgibbo/c2e173d43ced4f6954811004f6b5b842
   ]
   # Disabling slow tests for build constraints
   ++ [
@@ -155,8 +162,8 @@ buildPythonPackage rec {
     pushd $PACKAGEDIR
   '';
   postCheck = ''
-    rm -rf test
-    rm -rf examples
+    rm -r test
+    rm -r examples
     popd
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
index d2866d41c3ab..6cc24be1958a 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
@@ -15,7 +15,7 @@
 buildPythonPackage rec {
   pname = "qiskit";
   # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
-  version = "0.25.0";
+  version = "0.26.2";
 
   disabled = pythonOlder "3.6";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "qiskit";
     repo = "qiskit";
     rev = version;
-    hash = "sha256-pJM6d3AyFs9AexvQXG+8QQ4zwpFisJC16iBFR9gNSk0=";
+    hash = "sha256-QYWKKS7e/uCt5puWV4jA9Emp7M4Cyv2RUCxilbChWhw=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix b/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
index dcbe213966f9..05c12c1c62af 100644
--- a/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage {
   src = qscintilla.src;
   format = "other";
 
-  nativeBuildInputs = [ sip qtbase ];
+  nativeBuildInputs = [ sip_4 qtbase ];
   buildInputs = [ qscintilla ];
   propagatedBuildInputs = [ pyqt5 ];
 
@@ -40,7 +40,7 @@ buildPythonPackage {
       --qsci-libdir=${qscintilla}/lib \
       --pyqt-sipdir=${pyqt5}/share/sip/PyQt5 \
       --qsci-sipdir=$out/share/sip/PyQt5 \
-      --sip-incdir=${sip}/include
+      --sip-incdir=${sip_4}/include
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/radio_beam/default.nix b/nixpkgs/pkgs/development/python-modules/radio_beam/default.nix
index f1f3200bb7b0..58137e3adbdb 100644
--- a/nixpkgs/pkgs/development/python-modules/radio_beam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/radio_beam/default.nix
@@ -2,9 +2,8 @@
 , fetchPypi
 , buildPythonPackage
 , astropy
-, pytest
-, pytest-astropy
-, astropy-helpers
+, pytestCheckHook
+, pytest-doctestplus
 , scipy
 }:
 
@@ -13,25 +12,18 @@ buildPythonPackage rec {
   version = "0.3.3";
 
   src = fetchPypi {
-    inherit pname version;
+    inherit version;
+    pname = "radio-beam";
     sha256 = "e34902d91713ccab9f450b9d3e82317e292cf46a30bd42f9ad3c9a0519fcddcd";
   };
 
   propagatedBuildInputs = [ astropy ];
 
-  nativeBuildInputs = [ astropy-helpers ];
-
-  # Disable automatic update of the astropy-helper module
-  postPatch = ''
-    substituteInPlace setup.cfg --replace "auto_use = True" "auto_use = False"
-  '';
-
-  checkInputs = [ pytest pytest-astropy scipy ];
+  checkInputs = [ pytestCheckHook pytest-doctestplus scipy ];
 
   # Tests must be run in the build directory
-  checkPhase = ''
+  preCheck = ''
     cd build/lib
-    pytest
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix b/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
index c3ae88d1775c..081a3a285718 100644
--- a/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     description = "A Python RAML parser.";
     homepage    = "https://ramlfications.readthedocs.org";
     license     = licenses.asl20;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     platforms   = platforms.all;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/random2/default.nix b/nixpkgs/pkgs/development/python-modules/random2/default.nix
index 6845a5707da7..cb84d32ef414 100644
--- a/nixpkgs/pkgs/development/python-modules/random2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/random2/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPyPy
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -15,6 +16,14 @@ buildPythonPackage rec {
     sha256 = "34ad30aac341039872401595df9ab2c9dc36d0b7c077db1cea9ade430ed1c007";
   };
 
+  patches = [
+    # Patch test suite for python >= 3.9
+    (fetchpatch {
+      url = "https://github.com/strichter/random2/pull/3/commits/1bac6355d9c65de847cc445d782c466778b94fbd.patch";
+      sha256 = "064137pg1ilv3f9r10123lqbqz45070jca8pjjyp6gpfd0yk74pi";
+    })
+  ];
+
   meta = with lib; {
     homepage = "http://pypi.python.org/pypi/random2";
     description = "Python 3 compatible Python 2 `random` Module";
diff --git a/nixpkgs/pkgs/development/python-modules/reproject/default.nix b/nixpkgs/pkgs/development/python-modules/reproject/default.nix
index 98bed15cfa06..999c68823805 100644
--- a/nixpkgs/pkgs/development/python-modules/reproject/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reproject/default.nix
@@ -10,7 +10,7 @@
 , scipy
 , pytest
 , pytest-astropy
-, setuptools_scm
+, setuptools-scm
 , cython
 }:
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [ numpy astropy astropy-healpix astropy-helpers scipy ];
-  nativeBuildInputs = [ astropy-helpers cython astropy-extension-helpers setuptools_scm ];
+  nativeBuildInputs = [ astropy-helpers cython astropy-extension-helpers setuptools-scm ];
   checkInputs = [ pytest pytest-astropy ];
 
   # Tests must be run in the build directory
diff --git a/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix b/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix
index 225a8f149e47..7a27055aba2a 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-http-signature/default.nix
@@ -1,27 +1,40 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, cryptography
 , requests
-, python
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "requests-http-signature";
-  version = "0.1.0";
+  version = "0.2.0";
 
   # .pem files for tests aren't present on PyPI
   src = fetchFromGitHub {
     owner = "pyauth";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y96wsbci296m1rcxx0ybx8r44rdvyb59p1jl27p7rgz7isr3kx1";
+    sha256 = "1jsplqrxadjsc86f0kb6dgpblgwplxrpi0ql1a714w8pbbz4z3h7";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [
+    cryptography
+    requests
+  ];
 
-  checkPhase = ''
-    ${python.interpreter} test/test.py
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "test/test.py" ];
+
+  disabledTests = [
+    # Test require network access
+    "test_readme_example"
+  ];
+
+  pythonImportsCheck = [ "requests_http_signature" ];
 
   meta = with lib; {
     description = "A Requests auth module for HTTP Signature";
diff --git a/nixpkgs/pkgs/development/python-modules/resolvelib/default.nix b/nixpkgs/pkgs/development/python-modules/resolvelib/default.nix
new file mode 100644
index 000000000000..db3ecbcc86e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/resolvelib/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, commentjson
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "resolvelib";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "sarugaku";
+    repo = "resolvelib";
+    rev = version;
+    sha256 = "0r7cxwrfvpqz4kd7pdf8fsynzlmi6c754jd5hzd6vssc1zlyvvhx";
+  };
+
+  checkInputs = [
+    commentjson
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Resolve abstract dependencies into concrete ones";
+    homepage = "https://github.com/sarugaku/resolvelib";
+    license = licenses.isc;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/respx/default.nix b/nixpkgs/pkgs/development/python-modules/respx/default.nix
index 68da058194bf..0a3fa27a8086 100644
--- a/nixpkgs/pkgs/development/python-modules/respx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/respx/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "respx";
-  version = "0.16.3";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lundberg";
     repo = pname;
     rev = version;
-    sha256 = "0if9sg83rznl37hsjw6pfk78jpxi421g9p21wd92jcd6073g4nbd";
+    sha256 = "sha256-unGAIsslGXOUHXr0FKzC9bX6+Q3mNGZ9Z/dtjz0gkj4=";
   };
 
   # Coverage is under 100 % due to the excluded tests
diff --git a/nixpkgs/pkgs/development/python-modules/retworkx/default.nix b/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
index c4b7a6323e4d..f4490c72876d 100644
--- a/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
@@ -1,18 +1,23 @@
 { lib
+, stdenv
 , buildPythonPackage
 , pythonOlder
 , rustPlatform
 , fetchFromGitHub
-
+, libiconv
   # Check inputs
 , pytestCheckHook
+, fixtures
+, graphviz
+, matplotlib
 , networkx
 , numpy
+, pydot
 }:
 
 buildPythonPackage rec {
   pname = "retworkx";
-  version = "0.8.0";
+  version = "0.9.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -20,22 +25,29 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "retworkx";
     rev = version;
-    sha256 = "0plpri6a3d6f1000kmcah9066vq2i37d14bdf8sm96493fhpqhrd";
+    hash = "sha256-1W7DexS+ECAPsxyZAF36xcEguFkjUMX9lDBylNVPqyk=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-+k779gmge8wDdoZrWn9ND47kUqt7pqe75Zuj2Byfefo=";
+    hash = "sha256-y5l7jqrlk3ONHefZPS31IvcaO9ttXWLM7fIUmNVwbco=";
   };
 
   nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
 
-  # Needed b/c need to check AFTER python wheel is installed (using Rust Build, not buildPythonPackage)
-  doCheck = false;
-  doInstallCheck = true;
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  installCheckInputs = [ pytestCheckHook networkx numpy ];
+  pythonImportsCheck = [ "retworkx" ];
+  checkInputs = [
+    pytestCheckHook
+    fixtures
+    graphviz
+    matplotlib
+    networkx
+    numpy
+    pydot
+  ];
 
   preCheck = ''
     export TESTDIR=$(mktemp -d)
diff --git a/nixpkgs/pkgs/development/python-modules/rfc3339-validator/default.nix b/nixpkgs/pkgs/development/python-modules/rfc3339-validator/default.nix
new file mode 100644
index 000000000000..6294eee7f346
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rfc3339-validator/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchpatch
+, fetchPypi
+, pytestCheckHook
+, hypothesis
+, six
+, strict-rfc3339
+}:
+
+buildPythonPackage rec {
+  pname = "rfc3339-validator";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    pname = "rfc3339_validator";
+    inherit version;
+    sha256 = "0srg0b89aikzinw72s433994k5gv5lfyarq1adhas11kz6yjm2hk";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ pytestCheckHook hypothesis strict-rfc3339 ];
+  pythonImportsCheck = [ "rfc3339_validator" ];
+
+  meta = with lib; {
+    description = "RFC 3339 validator for Python";
+    homepage = "https://github.com/naimetti/rfc3339-validator";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rich/default.nix b/nixpkgs/pkgs/development/python-modules/rich/default.nix
index 52bef42f270f..d292eaa52231 100644
--- a/nixpkgs/pkgs/development/python-modules/rich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rich/default.nix
@@ -6,7 +6,7 @@
 , colorama
 , dataclasses
 , ipywidgets
-, poetry
+, poetry-core
 , pygments
 , typing-extensions
 , pytestCheckHook
@@ -14,27 +14,33 @@
 
 buildPythonPackage rec {
   pname = "rich";
-  version = "9.13.0";
+  version = "10.1.0";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
 
-  # tests not included in pypi tarball
   src = fetchFromGitHub {
     owner = "willmcgugan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0si3rzhg8wfxw4aakkp8sr6nbzfa54rl0w92macd1338q90ha4ly";
+    sha256 = "sha256-HH+k9uiK34yoqu83rknCIe2DpoqJRHkcqABuj8zjzqs=";
   };
-  format = "pyproject";
 
-  nativeBuildInputs = [ poetry ];
+  nativeBuildInputs = [ poetry-core ];
+
   propagatedBuildInputs = [
     CommonMark
     colorama
     ipywidgets
     pygments
     typing-extensions
-  ] ++ lib.optional (pythonOlder "3.7") dataclasses;
+  ] ++ lib.optional (pythonOlder "3.7") [
+    dataclasses
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "rich" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ripser/default.nix b/nixpkgs/pkgs/development/python-modules/ripser/default.nix
index acd017a7a2e8..7bc7df0b8fd5 100644
--- a/nixpkgs/pkgs/development/python-modules/ripser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ripser/default.nix
@@ -5,7 +5,7 @@
 , cython
 , numpy
 , scipy
-, scikitlearn
+, scikit-learn
 , persim
 , pytest
 }:
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     cython
     numpy
     scipy
-    scikitlearn
+    scikit-learn
     persim
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/roombapy/default.nix b/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
index 9c438bde7562..459037d6191e 100644
--- a/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
@@ -1,31 +1,42 @@
-{ buildPythonPackage
+{ lib
+, amqtt
+, buildPythonPackage
 , fetchFromGitHub
-, hbmqtt
-, lib
 , paho-mqtt
-, poetry
+, poetry-core
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "roombapy";
-  version = "1.6.2-1";
+  version = "1.6.3";
+  format = "pyproject";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pschmitt";
     repo = "roombapy";
     rev = version;
-    sha256 = "14k7bys479xwpa4alpdwphzmxm3x8kc48nfqnshn1wj94vyxc425";
+    sha256 = "sha256-GkDfIC2jx4Mpguk/Wu45pZw0czhabJwTz58WYSLCOV8=";
   };
 
-  format = "pyproject";
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeBuildInputs = [ poetry ];
   propagatedBuildInputs = [ paho-mqtt ];
 
-  checkInputs = [ hbmqtt pytest-asyncio pytestCheckHook ];
-  pytestFlagsArray = [ "tests/" "--ignore=tests/test_discovery.py" ];
+  checkInputs = [
+    amqtt
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Requires network access
+    "tests/test_discovery.py"
+  ];
+
   pythonImportsCheck = [ "roombapy" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix b/nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix
new file mode 100644
index 000000000000..e161f56d3177
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, docutils, }:
+
+buildPythonPackage rec {
+  pname = "rst2ansi";
+  version = "0.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-Gxf7mmKNQPV5M60aOqlSNGREvgaUaVCOc+lQYNoz/m8=";
+  };
+
+  propagatedBuildInputs = [ docutils ];
+
+  meta = with lib; {
+    description = "A rst converter to ansi-decorated console output";
+    homepage = "https://github.com/Snaipe/python-rst-to-ansi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vojta001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix b/nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix
index a1d8102fecc1..e1565fa6c30c 100644
--- a/nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, cython, alsaLib }:
+{ lib, buildPythonPackage, fetchPypi, cython, alsa-lib }:
 
 buildPythonPackage rec {
   pname = "rtmidi-python";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [ cython ];
-  buildInputs = [ alsaLib ];
+  buildInputs = [ alsa-lib ];
 
   setupPyBuildFlags = [ "--from-cython" ];
 
@@ -29,6 +29,6 @@ buildPythonPackage rec {
     description = "Python wrapper for RtMidi";
     homepage = "https://github.com/superquadratic/rtmidi-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/rtoml/default.nix b/nixpkgs/pkgs/development/python-modules/rtoml/default.nix
new file mode 100644
index 000000000000..f50ad558176e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rtoml/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools-rust
+, rustPlatform
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "rtoml";
+  version = "0.6.1";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "samuelcolvin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07bf30if1wmbqjp5n4ib43n6frx8ybyxc9fndxncq7aylkrhd7hy";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "1q082sdac5vm4l3b45rfjp4vppp9y9qhagdjqqfdz8gdhm1k8yyy";
+  };
+
+  nativeBuildInputs = with rustPlatform; [
+    setuptools-rust
+    rust.rustc
+    rust.cargo
+    cargoSetupHook
+  ];
+
+  pythonImportsCheck = [ "rtoml" ];
+
+  checkInputs = [ pytestCheckHook ];
+  preCheck = ''
+    cd tests
+  '';
+
+  meta = with lib; {
+    description = "Rust based TOML library for python";
+    homepage = "https://github.com/samuelcolvin/rtoml";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evils ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/runway-python/default.nix b/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
index 69b928aad089..9244a94d2357 100644
--- a/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
@@ -1,33 +1,43 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, pythonAtLeast
+, fetchFromGitHub
+, colorcet
+, cryptography
 , flask
 , flask-compress
 , flask-cors
 , flask-sockets
+, gevent
 , imageio
 , numpy
-, scipy
 , pillow
-, gevent
-, wget
+, pyopenssl
+, scipy
 , six
-, colorcet
 , unidecode
 , urllib3
+, wget
+, deepdiff
+, pytestCheckHook
+, pytestcov
+, websocket_client
 }:
 
 buildPythonPackage rec {
   pname = "runway-python";
   version = "0.6.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "66cf1517dd817bf6db3792608920274f964dd0ced8dabecd925b8bc17aa95740";
+  src = fetchFromGitHub {
+    owner = "runwayml";
+    repo = "model-sdk";
+    rev = version;
+    sha256 = "1ww2wai1qnly8i7g42vhkkbs4yp7wi9x4fjdxsg9fl3izjra0zs2";
   };
 
   propagatedBuildInputs = [
     colorcet
+    cryptography
     flask
     flask-compress
     flask-cors
@@ -36,6 +46,7 @@ buildPythonPackage rec {
     imageio
     numpy
     pillow
+    pyopenssl
     scipy
     six
     unidecode
@@ -43,13 +54,30 @@ buildPythonPackage rec {
     wget
   ];
 
-  # tests are not packaged in the released tarball
-  doCheck = false;
-
   pythonImportsCheck = [
     "runway"
   ];
 
+  checkInputs = [
+    deepdiff
+    pytestCheckHook
+    pytestcov
+    websocket_client
+  ];
+
+  disabledTests = [
+    # these tests require network
+    "test_file_deserialization_remote"
+    "test_file_deserialization_absolute_directory"
+    "test_file_deserialization_remote_directory"
+  ] ++ lib.optionals (pythonAtLeast "3.9") [
+     # AttributeError: module 'base64' has no attribute 'decodestring
+     # https://github.com/runwayml/model-sdk/issues/99
+     "test_image_serialize_and_deserialize"
+     "test_segmentation_serialize_and_deserialize_colormap"
+     "test_segmentation_serialize_and_deserialize_labelmap"
+  ];
+
   meta = {
     description = "Helper library for creating Runway models";
     homepage = "https://github.com/runwayml/model-sdk";
diff --git a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
index 86701865861f..63a9e722f2c1 100644
--- a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
@@ -1,24 +1,38 @@
-{ lib, buildPythonPackage, fetchPypi, docutils, aiobotocore, fsspec }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, docutils
+, aiobotocore
+, fsspec
+}:
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "0.5.2";
+  version = "2021.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "87e5210415db17b9de18c77bcfc4a301570cc9030ee112b77dc47ab82426bae1";
+    sha256 = "sha256-cEJVMIFMaC3E9829ofKTCtgy2/G+40G1yQURxUzBJpA=";
   };
 
-  buildInputs = [ docutils ];
-  propagatedBuildInputs = [ aiobotocore fsspec ];
+  buildInputs = [
+    docutils
+  ];
+
+  propagatedBuildInputs = [
+    aiobotocore
+    fsspec
+  ];
 
   # Depends on `moto` which has a long dependency chain with exact
   # version requirements that can't be made to work with current
   # pythonPackages.
   doCheck = false;
 
+  pythonImportsCheck = [ "s3fs" ];
+
   meta = with lib; {
-    description = "S3FS builds on boto3 to provide a convenient Python filesystem interface for S3.";
+    description = "S3FS builds on boto3 to provide a convenient Python filesystem interface for S3";
     homepage = "https://github.com/dask/s3fs/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ teh ];
diff --git a/nixpkgs/pkgs/development/python-modules/sacn/default.nix b/nixpkgs/pkgs/development/python-modules/sacn/default.nix
index 9b1e935d6ed9..46678504cab6 100644
--- a/nixpkgs/pkgs/development/python-modules/sacn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sacn/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "sacn";
-  version = "1.6.2";
+  version = "1.6.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2fea82a1dd83b0a67dc0be68a53b1fef1c44b12f3f018e47ac736bd15b36c068";
+    sha256 = "1abkalzpy8bj2hpx563bxii5h0gv9v89f0yp9clc1l76amyf6dj2";
   };
 
   # no tests
diff --git a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
index c78b6f13d152..38d73d461c2d 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, sanic, pytestCheckHook }:
+{ lib, buildPythonPackage, fetchPypi, sanic, sanic-testing, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "Sanic-Auth";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ sanic ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [ pytestCheckHook sanic-testing ];
 
   pythonImportsCheck = [ "sanic_auth" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/sanic-routing/default.nix b/nixpkgs/pkgs/development/python-modules/sanic-routing/default.nix
new file mode 100644
index 000000000000..76eb72dc7086
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sanic-routing/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "sanic-routing";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "sanic-org";
+    repo = "sanic-routing";
+    rev = "v${version}";
+    hash = "sha256-ZMl8PB9E401pUfUJ4tW7nBx1TgPQQtx9erVni3zP+lo=";
+  };
+
+  checkInputs = [ pytestCheckHook pytest-asyncio ];
+  pythonImportsCheck = [ "sanic_routing" ];
+
+  meta = with lib; {
+    description = "Core routing component for the Sanic web framework";
+    homepage = "https://github.com/sanic-org/sanic-routing";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix b/nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix
new file mode 100644
index 000000000000..e5194e36bd23
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sanic-testing/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, httpcore
+, httpx
+, pytest-asyncio
+, sanic
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "sanic-testing";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "sanic-org";
+    repo = "sanic-testing";
+    rev = "v${version}";
+    hash = "sha256-hBAq+/BKs0a01M89Nb8HaClqxB+W5PTfjVzef/m9SWs=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'httpx>=0.16, <0.18' 'httpx' \
+      --replace 'httpcore==0.12.*' 'httpcore'
+  '';
+
+  propagatedBuildInputs = [ httpx sanic websockets httpcore ];
+
+  # `sanic` is explicitly set to null when building `sanic` itself
+  # to prevent infinite recursion.  In that case we skip running
+  # the package at all.
+  doCheck = sanic != null;
+  dontUsePythonImportsCheck = sanic == null;
+
+  checkInputs = [ pytestCheckHook pytest-asyncio ];
+  pythonImportsCheck = [ "sanic_testing" ];
+
+  meta = with lib; {
+    description = "Core testing clients for the Sanic web framework";
+    homepage = "https://github.com/sanic-org/sanic-testing";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sanic/default.nix b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
index e5995ed0b1e8..5f610f6feab0 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
@@ -1,42 +1,50 @@
 { lib, buildPythonPackage, fetchPypi, doCheck ? true
-, aiofiles, httptools, httpx, multidict, ujson, uvloop, websockets
-, pytestCheckHook, beautifulsoup4, gunicorn, httpcore, uvicorn
-, pytest-asyncio, pytest-benchmark, pytest-dependency, pytest-sanic, pytest-sugar, pytestcov
+, aiofiles, httptools, multidict, sanic-routing, ujson, uvloop, websockets
+, pytestCheckHook, beautifulsoup4, gunicorn, uvicorn, sanic-testing
+, pytest-benchmark, pytest-sanic, pytest-sugar, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "sanic";
-  version = "21.3.2";
+  version = "21.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84a04c5f12bf321bed3942597787f1854d15c18f157aebd7ced8c851ccc49e08";
+    sha256 = "1cbd12b9138b3ca69656286b0be91fff02b826e8cb72dd76a2ca8c5eb1288d8e";
   };
 
   postPatch = ''
+    # Loosen dependency requirements.
     substituteInPlace setup.py \
-      --replace '"multidict==5.0.0"' '"multidict"' \
-      --replace '"httpx==0.15.4"' '"httpx"' \
-      --replace '"httpcore==0.3.0"' '"httpcore"' \
-      --replace '"pytest==5.2.1"' '"pytest"'
+      --replace '"pytest==5.2.1"' '"pytest"' \
+      --replace '"gunicorn==20.0.4"' '"gunicorn"' \
+      --replace '"pytest-sanic",' ""
+    # Patch a request headers test to allow brotli encoding
+    # (we build httpx with brotli support, upstream doesn't).
+    substituteInPlace tests/test_headers.py \
+      --replace "deflate\r\n" "deflate, br\r\n"
   '';
 
   propagatedBuildInputs = [
-    aiofiles httptools httpx multidict ujson uvloop websockets
+    sanic-routing httptools uvloop ujson aiofiles websockets multidict
   ];
 
   checkInputs = [
-    pytestCheckHook beautifulsoup4 gunicorn httpcore uvicorn
-    pytest-asyncio pytest-benchmark pytest-dependency pytest-sanic pytest-sugar pytestcov
+    sanic-testing gunicorn pytestcov beautifulsoup4 pytest-sanic pytest-sugar
+    pytest-benchmark pytestCheckHook uvicorn
   ];
 
   inherit doCheck;
 
   disabledTests = [
-    "test_gunicorn" # No "examples" directory in pypi distribution.
-    "test_logo" # Fails to filter out "DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector"
-    "test_zero_downtime" # No "examples.delayed_response.app" module in pypi distribution.
-    "test_reloader_live" # OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 42104)
+    # No "examples" directory in pypi distribution
+    "test_gunicorn"
+    "test_zero_downtime"
+    # flaky
+    "test_keep_alive_client_timeout"
+    "test_check_timeouts_request_timeout"
+    "test_check_timeouts_response_timeout"
+    "test_reloader_live"
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -45,8 +53,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A microframework based on uvloop, httptools, and learnings of flask";
-    homepage = "https://github.com/channelcat/sanic/";
+    homepage = "https://github.com/sanic-org/sanic/";
     license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc AluisioASG ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix b/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
index 222b4c60c7f2..58cdfe646c65 100644
--- a/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
@@ -1,4 +1,4 @@
-{ lib, git, setuptools, setuptools_scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }:
+{ lib, git, setuptools, setuptools-scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }:
 
 buildPythonPackage rec {
     pname = "sapi-python-client";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
     doCheck = false; # requires API token and an active keboola bucket
 
-    nativeBuildInputs = [ git setuptools_scm ];
+    nativeBuildInputs = [ git setuptools-scm ];
 
     propagatedBuildInputs = [ setuptools requests boto3 responses ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
index f13fecc08551..d2c32fc138af 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-bio/default.nix
@@ -12,7 +12,7 @@
 , pandas
 , scipy
 , hdmedians
-, scikitlearn
+, scikit-learn
 , coverage
 , python
 , isPy3k
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   buildInputs = [ cython ];
   checkInputs = [ coverage ];
-  propagatedBuildInputs = [ lockfile cachecontrol decorator ipython matplotlib natsort numpy pandas scipy hdmedians scikitlearn ];
+  propagatedBuildInputs = [ lockfile cachecontrol decorator ipython matplotlib natsort numpy pandas scipy hdmedians scikit-learn ];
 
   # cython package not included for tests
   doCheck = false;
@@ -45,6 +45,7 @@ buildPythonPackage rec {
     homepage = "http://scikit-bio.org/";
     description = "Data structures, algorithms and educational resources for bioinformatics";
     license = licenses.bsd3;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
new file mode 100644
index 000000000000..281564601102
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, pythonAtLeast
+, buildPythonPackage
+, importlib-resources
+, pyyaml
+, requests
+, pytestCheckHook
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "scikit-hep-testdata";
+  version = "0.4.3";
+  format = "pyproject";
+
+  # fetch from github as we want the data files
+  # https://github.com/scikit-hep/scikit-hep-testdata/issues/60
+  src = fetchFromGitHub {
+    owner = "scikit-hep";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-3uy2uZb0Y9nOHlXtsDd9LGALvTXl1ZQ6P3m2dQ2ceHo=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+  propagatedBuildInputs = [
+    pyyaml
+    requests
+  ] ++ lib.optional (!pythonAtLeast "3.9") importlib-resources;
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  SKHEP_DATA = 1; # install the actual root files
+
+  doCheck = false; # tests require networking
+  pythonImportsCheck = [ "skhep_testdata" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/scikit-hep/scikit-hep-testdata";
+    description = "A common package to provide example files (e.g., ROOT) for testing and developing packages against";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix b/nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix
index 81915e83d2dc..81915e83d2dc 100644
--- a/nixpkgs/pkgs/development/python-modules/scikitlearn/0.20.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-learn/0.20.nix
diff --git a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
index 7e9e37831e0d..6f4ad1d2bd15 100644
--- a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
@@ -7,7 +7,8 @@
 , glibcLocales
 , numpy
 , scipy
-, pytest
+, pytestCheckHook
+, pytest-xdist
 , pillow
 , cython
 , joblib
@@ -54,17 +55,50 @@ buildPythonPackage rec {
     joblib
     threadpoolctl
   ];
-  checkInputs = [ pytest ];
+
+  checkInputs = [ pytestCheckHook pytest-xdist ];
 
   LC_ALL="en_US.UTF-8";
 
+  preBuild = ''
+    export SKLEARN_BUILD_PARALLEL=$NIX_BUILD_CORES
+  '';
+
   doCheck = !stdenv.isAarch64;
-  # Skip test_feature_importance_regression - does web fetch
-  checkPhase = ''
+
+  disabledTests = [
+    # Skip test_feature_importance_regression - does web fetch
+    "test_feature_importance_regression"
+
+    # failing on macos
+    "check_regressors_train"
+    "check_classifiers_train"
+    "xfail_ignored_in_check_estimator"
+  ];
+
+  pytestFlagsArray = [
+    # verbose build outputs needed to debug hard-to-reproduce hydra failures
+    "-v"
+    "--pyargs" "sklearn"
+
+    # NuSVC memmap tests causes segmentation faults in certain environments
+    # (e.g. Hydra Darwin machines) related to a long-standing joblib issue
+    # (https://github.com/joblib/joblib/issues/563). See also:
+    # https://github.com/scikit-learn/scikit-learn/issues/17582
+    # Since we are overriding '-k' we need to include the 'disabledTests' from above manually.
+    "-k" "'not (NuSVC and memmap) ${toString (lib.forEach disabledTests (t: "and not ${t}"))}'"
+
+    "-n" "$NIX_BUILD_CORES"
+  ];
+
+  preCheck = ''
     cd $TMPDIR
-    HOME=$TMPDIR OMP_NUM_THREADS=1 pytest -k "not test_feature_importance_regression" --pyargs sklearn
+    export HOME=$TMPDIR
+    export OMP_NUM_THREADS=1
   '';
 
+  pythonImportsCheck = [ "sklearn" ];
+
   meta = with lib; {
     description = "A set of python modules for machine learning and data mining";
     changelog = let
@@ -75,6 +109,6 @@ buildPythonPackage rec {
       "https://scikit-learn.org/stable/whats_new/v${major}.${minor}.html#version-${dashVer}";
     homepage = "https://scikit-learn.org";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ davhau ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix
index 0a5171f22fbf..3b7106ac4f2b 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix
@@ -5,7 +5,7 @@
 , matplotlib
 , numpy
 , scipy
-, scikitlearn
+, scikit-learn
 , pyaml
 , pytestCheckHook
 }:
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     matplotlib
     numpy
     scipy
-    scikitlearn
+    scikit-learn
     pyaml
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-tda/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-tda/default.nix
index f6d573573b9c..bf3e1d1ef469 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-tda/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-tda/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , numpy
 , scipy
-, scikitlearn
+, scikit-learn
 , matplotlib
 , numba
 , umap-learn
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy
     scipy
-    scikitlearn
+    scikit-learn
     matplotlib
     numba
     umap-learn
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
index 6887eded3bfd..08a3a5967329 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
@@ -80,6 +80,7 @@ buildPythonPackage rec {
     "test_retry_dns_error"
     "test_custom_asyncio_loop_enabled_true"
     "test_custom_loop_asyncio"
+    "FileFeedStoragePreFeedOptionsTest"  # https://github.com/scrapy/scrapy/issues/5157
   ] ++ lib.optionals stdenv.isDarwin [
     "test_xmliter_encoding"
     "test_download"
diff --git a/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
index 100c487acee6..1713e4c2521f 100644
--- a/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -1,22 +1,32 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "screenlogicpy";
-  version = "0.3.0";
+  version = "0.4.1";
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0gn2mf2n2g1ffdbijrydgb7dgd60lkvckblx6s86kxlkrp1wqgrq";
+  src = fetchFromGitHub {
+    owner = "dieselrabbit";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1rmjxqqbkfcv2xz8ilml799bzffls678fvq784fab2xdv595fndd";
   };
 
-  # Project doesn't publish tests
-  # https://github.com/dieselrabbit/screenlogicpy/issues/8
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_gateway_discovery"
+    "test_asyncio_gateway_discovery"
+  ];
+
   pythonImportsCheck = [ "screenlogicpy" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix b/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
index 7580647f5a12..06802a8a2ce1 100644
--- a/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
@@ -1,8 +1,17 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
-, pyusb
+, cython
+, git
+, pkgconfig
+, pytest-runner
+, setuptools-scm
+, future
 , numpy
+, pyusb
+, mock
+, pytestCheckHook
+, zipp
 }:
 
 ## Usage
@@ -18,19 +27,35 @@ buildPythonPackage rec {
     owner = "ap--";
     repo = "python-seabreeze";
     rev = "v${version}";
-    sha256 = "1lna3w1vsci35dhyi7qjvbb99gxvzk23k195c7by7kkrps844q1j";
+    sha256 = "1hm9aalpb9sdp8s7ckn75xvyiacp5678pv9maybm5nz0z2h29ibq";
+    leaveDotGit = true;
   };
 
+  nativeBuildInputs = [
+    cython
+    git
+    pkgconfig
+    pytest-runner
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    future
+    numpy
+    pyusb
+  ];
+
   postInstall = ''
     mkdir -p $out/etc/udev/rules.d
-    cp misc/10-oceanoptics.rules $out/etc/udev/rules.d/10-oceanoptics.rules
+    cp os_support/10-oceanoptics.rules $out/etc/udev/rules.d/10-oceanoptics.rules
   '';
 
-  # underlying c libraries are tested and fail
-  # (c libs are used with anaconda, which we don't care about as we use the alternative path, being that of pyusb).
-  doCheck = false;
-
-  propagatedBuildInputs = [ pyusb numpy ];
+  # few backends enabled, but still some tests
+  checkInputs = [
+    pytestCheckHook
+    mock
+    zipp
+  ];
 
   setupPyBuildFlags = [ "--without-cseabreeze" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/segments/default.nix b/nixpkgs/pkgs/development/python-modules/segments/default.nix
index 00953a8e9090..f1c0ad3bf0ef 100644
--- a/nixpkgs/pkgs/development/python-modules/segments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/segments/default.nix
@@ -42,6 +42,6 @@ buildPythonPackage rec {
     description = "Unicode Standard tokenization routines and orthography profile segmentation";
     homepage = "https://github.com/cldf/segments";
     license = licenses.asl20;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/selenium/default.nix b/nixpkgs/pkgs/development/python-modules/selenium/default.nix
index 664f84933ed7..370d25489809 100644
--- a/nixpkgs/pkgs/development/python-modules/selenium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/selenium/default.nix
@@ -6,6 +6,7 @@
 , geckodriver
 , urllib3
 , xorg
+, nixosTests
 }:
 
 
@@ -47,6 +48,10 @@ buildPythonPackage rec {
     cp -v x_ignore_nofocus.so selenium/webdriver/firefox/${if stdenv.is64bit then "amd64" else "x86"}/
   '';
 
+  passthru.tests = {
+    testing-bitwarden = nixosTests.bitwarden;
+  };
+
   meta = with lib; {
     description = "The selenium package is used to automate web browser interaction from Python";
     homepage = "http://www.seleniumhq.org";
diff --git a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
index ba5b37c8d9c7..9526c27eb175 100644
--- a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -29,11 +29,11 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71de00c9711926816f750bc0f57ef2abbcb1bfbdf5378c601df7ec978f44857a";
+    sha256 = "sha256-wSJ9ONyjFbo1GCNz8SnD4nIujtmZ5SWE5qyn0oeHBzk=";
   };
 
   checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
diff --git a/nixpkgs/pkgs/development/python-modules/seqeval/default.nix b/nixpkgs/pkgs/development/python-modules/seqeval/default.nix
index 15322632ad7d..9ed516e4d5c3 100644
--- a/nixpkgs/pkgs/development/python-modules/seqeval/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seqeval/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , numpy
-, scikitlearn
+, scikit-learn
 , perl
 , pytestCheckHook
 }:
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     numpy
-    scikitlearn
+    scikit-learn
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix
new file mode 100644
index 000000000000..ba6ff1649e62
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix
@@ -0,0 +1,28 @@
+{ buildPythonPackage, fetchPypi, lib, pypiserver, pytestCheckHook
+, setuptools-scm, virtualenv }:
+
+buildPythonPackage rec {
+  pname = "setuptools-declarative-requirements";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1l8zmcnp9h8sp8hsw7b81djaa1a9yig0y7i4phh5pihqz1gdn7yi";
+  };
+
+  buildInputs = [ setuptools-scm ];
+
+  checkInputs = [ pypiserver pytestCheckHook virtualenv ];
+
+  # Tests use network
+  doCheck = false;
+
+  pythonImportsCheck = [ "declarative_requirements" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/s0undt3ch/setuptools-declarative-requirements";
+    description = "Declarative setuptools Config Requirements Files Support";
+    license = licenses.asl20;
+    maintainers = [ maintainers.austinbutler ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
index 98795eadfd4d..5dbb8ca2d10f 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm, pytest }:
 
 buildPythonPackage rec {
   pname = "setuptools-scm-git-archive";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "6026f61089b73fa1b5ee737e95314f41cb512609b393530385ed281d0b46c062";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools_scm/2.nix b/nixpkgs/pkgs/development/python-modules/setuptools-scm/2.nix
index 4cf6f16fedfb..4cf6f16fedfb 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools_scm/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-scm/2.nix
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix
index a4cff6d056b0..a4cff6d056b0 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-scm/default.nix
diff --git a/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix b/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix
index bef492e5dbcb..26b8d732be1d 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptoolstrial/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit.";
     homepage = "https://github.com/rutsky/setuptools-trial";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ ryansydnor nand0p ];
+    maintainers = with maintainers; [ ryansydnor ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/shap/default.nix b/nixpkgs/pkgs/development/python-modules/shap/default.nix
index 5600f4a6aa0f..128dacfd55a8 100644
--- a/nixpkgs/pkgs/development/python-modules/shap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shap/default.nix
@@ -5,7 +5,7 @@
 , pytestCheckHook
 , numpy
 , scipy
-, scikitlearn
+, scikit-learn
 , pandas
 , tqdm
 , slicer
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy
     scipy
-    scikitlearn
+    scikit-learn
     pandas
     tqdm
     slicer
diff --git a/nixpkgs/pkgs/development/python-modules/sievelib/default.nix b/nixpkgs/pkgs/development/python-modules/sievelib/default.nix
index 7fd955abd17c..de023377c050 100644
--- a/nixpkgs/pkgs/development/python-modules/sievelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sievelib/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, fetchpatch, mock
-, future, six, setuptools_scm }:
+, future, six, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "sievelib";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     })
   ];
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ future six ];
   checkInputs = [ mock ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/signedjson/default.nix b/nixpkgs/pkgs/development/python-modules/signedjson/default.nix
index 10de67ba0ef2..8409d9702e7f 100644
--- a/nixpkgs/pkgs/development/python-modules/signedjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/signedjson/default.nix
@@ -1,24 +1,36 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
+, fetchpatch
 , canonicaljson
 , unpaddedbase64
 , pynacl
 , typing-extensions
+, setuptools-scm
+, importlib-metadata
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "signedjson";
   version = "1.1.1";
 
-  src = fetchFromGitHub {
-    owner = "matrix-org";
-    repo = "python-${pname}";
-    rev = "v${version}";
-    sha256 = "0y5c9v4vx9hqpnca892gc9b4xgs4gp5xk6l1wma5ciz8zswp9yfs";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0280f8zyycsmd7iy65bs438flm7m8ffs1kcxfbvhi8hbazkqc19m";
   };
 
-  propagatedBuildInputs = [ canonicaljson unpaddedbase64 pynacl typing-extensions ];
+  patches = [
+    # Do not require importlib_metadata on python 3.8
+    (fetchpatch {
+      url = "https://github.com/matrix-org/python-signedjson/commit/c40c83f844fee3c1c7b0c5d1508f87052334b4e5.patch";
+      sha256 = "109f135zn9azg5h1ljw3v94kpvnzmlqz1aiknpl5hsqfa3imjca1";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools-scm ];
+  propagatedBuildInputs = [ canonicaljson unpaddedbase64 pynacl typing-extensions ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   meta = with lib; {
     homepage = "https://pypi.org/project/signedjson/";
diff --git a/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix b/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
index cd89c1c8aae8..af92f345950b 100644
--- a/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
@@ -1,10 +1,8 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
+, authlib
 , requests
-, pyopenssl
-, cryptography
-, idna
 , mock
 , isPy27
 , nose
@@ -24,21 +22,20 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
+    authlib
     requests
-    pyopenssl
-    cryptography
-    idna
   ];
 
   checkInputs = [
     nose
     pytz
     responses
-  ] ++ lib.optionals isPy27 [ mock ];
+  ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "mock==1.0.1" "mock"
+  checkPhase = ''
+    runHook preCheck
+    nosetests -v
+    runHook postCheck
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/simpleaudio/default.nix b/nixpkgs/pkgs/development/python-modules/simpleaudio/default.nix
index 948716a9b7cb..4ab18efe332a 100644
--- a/nixpkgs/pkgs/development/python-modules/simpleaudio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simpleaudio/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib, buildPythonPackage, fetchFromGitHub, isPy27, lib }:
+{ alsa-lib, buildPythonPackage, fetchFromGitHub, isPy27, lib }:
 
 buildPythonPackage rec {
   pname = "simpleaudio";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "12nypzb1m14yip4zrbzin5jc5awyp1d5md5y40g5anj4phb4hx1i";
   };
 
-  buildInputs = [ alsaLib ];
+  buildInputs = [ alsa-lib ];
 
   meta = with lib; {
     homepage = "https://github.com/hamiltron/py-simple-audio";
diff --git a/nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix b/nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix
index 5b8925b0a4c6..9592d37fed0a 100644
--- a/nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simplisafe-python/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "simplisafe-python";
-  version = "9.6.9";
+  version = "9.6.10";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "1q5w5pvrgj94bzd5wig79l4hipkfrcdah54rvwyi7b8q46gw77sg";
+    sha256 = "0cc5kxxishxhkg1nqmgbh36yxs8yjfynmimzjnaqkqfrs9iq46mr";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/simpy/default.nix b/nixpkgs/pkgs/development/python-modules/simpy/default.nix
index f718b3655f6f..ff139523e1f4 100644
--- a/nixpkgs/pkgs/development/python-modules/simpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simpy/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, isPy27, lib, setuptools, setuptools_scm
+{ buildPythonPackage, fetchPypi, isPy27, lib, setuptools, setuptools-scm
 , pytestCheckHook }:
 
 buildPythonPackage rec {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "b36542e2faab612f861c5ef4da17220ac1553f5892b3583c67281dbe4faad404";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ setuptools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/sip/4.x.nix b/nixpkgs/pkgs/development/python-modules/sip/4.x.nix
new file mode 100644
index 000000000000..5334d1196344
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sip/4.x.nix
@@ -0,0 +1,44 @@
+{ lib, fetchurl, buildPythonPackage, python, isPyPy, sip-module ? "sip" }:
+
+buildPythonPackage rec {
+  pname = sip-module;
+  version = "4.19.25";
+  format = "other";
+
+  disabled = isPyPy;
+
+  src = fetchurl {
+    url = "https://www.riverbankcomputing.com/static/Downloads/sip/${version}/sip-${version}.tar.gz";
+    sha256 = "04a23cgsnx150xq86w1z44b6vr2zyazysy9mqax0fy346zlr77dk";
+  };
+
+  configurePhase = ''
+    ${python.executable} ./configure.py \
+      --sip-module ${sip-module} \
+      -d $out/${python.sitePackages} \
+      -b $out/bin -e $out/include
+  '';
+
+  enableParallelBuilding = true;
+
+  installCheckPhase = let
+    modules = [
+      sip-module
+      "sipconfig"
+    ];
+    imports = lib.concatMapStrings (module: "import ${module};") modules;
+  in ''
+    echo "Checking whether modules can be imported..."
+    PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH ${python.interpreter} -c "${imports}"
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Creates C++ bindings for Python modules";
+    homepage    = "http://www.riverbankcomputing.co.uk/";
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ lovek323 sander ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sip/5.x.nix b/nixpkgs/pkgs/development/python-modules/sip/5.x.nix
deleted file mode 100644
index cebffd5765bd..000000000000
--- a/nixpkgs/pkgs/development/python-modules/sip/5.x.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, fetchPypi, buildPythonPackage, packaging, toml }:
-
-buildPythonPackage rec {
-  pname = "sip";
-  version = "5.5.0";
-
-  src = fetchPypi {
-    pname = "sip";
-    inherit version;
-    sha256 = "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx";
-  };
-
-  propagatedBuildInputs = [ packaging toml ];
-
-  # There aren't tests
-  doCheck = false;
-
-  pythonImportsCheck = [ "sipbuild" ];
-
-  meta = with lib; {
-    description = "Creates C++ bindings for Python modules";
-    homepage    = "http://www.riverbankcomputing.co.uk/";
-    license     = licenses.gpl3Only;
-    maintainers = with maintainers; [ eduardosm ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/sip/default.nix b/nixpkgs/pkgs/development/python-modules/sip/default.nix
index 0027c1c0ba5f..c15589b77bc8 100644
--- a/nixpkgs/pkgs/development/python-modules/sip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sip/default.nix
@@ -1,44 +1,40 @@
-{ lib, fetchurl, buildPythonPackage, python, isPyPy, sip-module ? "sip" }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, packaging, toml }:
 
 buildPythonPackage rec {
-  pname = sip-module;
-  version = "4.19.24";
-  format = "other";
+  pname = "sip";
+  version = "5.5.0";
 
-  disabled = isPyPy;
-
-  src = fetchurl {
-    url = "https://www.riverbankcomputing.com/static/Downloads/sip/${version}/sip-${version}.tar.gz";
-    sha256 = "1ra15vb5i9gkg2vdvh16cq9x2mmzw1yi3xphxs8q34q1pf83gkgd";
+  src = fetchPypi {
+    pname = "sip";
+    inherit version;
+    sha256 = "1idaivamp1jvbbai9yzv471c62xbqxhaawccvskaizihkd0lq0jx";
   };
 
-  configurePhase = ''
-    ${python.executable} ./configure.py \
-      --sip-module ${sip-module} \
-      -d $out/${python.sitePackages} \
-      -b $out/bin -e $out/include
-  '';
+  propagatedBuildInputs = [ packaging toml ];
 
-  enableParallelBuilding = true;
+  # There aren't tests
+  doCheck = false;
 
-  installCheckPhase = let
-    modules = [
-      sip-module
-      "sipconfig"
-    ];
-    imports = lib.concatMapStrings (module: "import ${module};") modules;
-  in ''
-    echo "Checking whether modules can be imported..."
-    PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH ${python.interpreter} -c "${imports}"
-  '';
+  pythonImportsCheck = [ "sipbuild" ];
 
-  doCheck = true;
+  # FIXME: Why isn't this detected automatically?
+  # Needs to be specified in pyproject.toml, e.g.:
+  # [tool.sip.bindings.MODULE]
+  # tags = [PLATFORM_TAG]
+  platform_tag =
+    if stdenv.targetPlatform.isLinux then
+      "WS_X11"
+    else if stdenv.targetPlatform.isDarwin then
+      "WS_MACX"
+    else if stdenv.targetPlatform.isWindows then
+      "WS_WIN"
+    else
+      throw "unsupported platform";
 
   meta = with lib; {
     description = "Creates C++ bindings for Python modules";
     homepage    = "http://www.riverbankcomputing.co.uk/";
-    license     = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lovek323 sander ];
-    platforms   = platforms.all;
+    license     = licenses.gpl3Only;
+    maintainers = with maintainers; [ eduardosm ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix b/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix
index 568ce67d1434..838ffd471840 100644
--- a/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sipsimple/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [ pkgs.pkg-config ];
-  buildInputs = with pkgs; [ alsaLib ffmpeg_3 libv4l sqlite libvpx ];
+  buildInputs = with pkgs; [ alsa-lib ffmpeg_3 libv4l sqlite libvpx ];
   propagatedBuildInputs = [ cython pkgs.openssl dnspython dateutil xcaplib msrplib lxml python-otr ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix b/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
index d973bc70bcdb..2530b9652032 100644
--- a/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sklearn-deap/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, numpy, scipy, deap, scikitlearn, python }:
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, numpy, scipy, deap, scikit-learn, python }:
 
 buildPythonPackage rec {
   pname = "sklearn-deap";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ numpy scipy deap scikitlearn ];
+  propagatedBuildInputs = [ numpy scipy deap scikit-learn ];
 
   checkPhase = ''
     ${python.interpreter} test.py
diff --git a/nixpkgs/pkgs/development/python-modules/skorch/default.nix b/nixpkgs/pkgs/development/python-modules/skorch/default.nix
index 3504557b5027..db3b8ed4312c 100644
--- a/nixpkgs/pkgs/development/python-modules/skorch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skorch/default.nix
@@ -8,7 +8,7 @@
 , numpy
 , pandas
 , pytorch
-, scikitlearn
+, scikit-learn
 , scipy
 , tabulate
 , tqdm
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     sha256 = "9910f97339e654c8d38e0075d87b735e69e5eb11db59c527fb36705b30c8d0a4";
   };
 
-  propagatedBuildInputs = [ numpy pytorch scikitlearn scipy tabulate tqdm ];
+  propagatedBuildInputs = [ numpy pytorch scikit-learn scipy tabulate tqdm ];
   checkInputs = [ pytest pytestcov flaky pandas pytestCheckHook ];
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-dtef/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-dtef/default.nix
new file mode 100644
index 000000000000..c1a950dc2ae6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-dtef/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchFromGitHub, skytemple-files }:
+
+buildPythonPackage rec {
+  pname = "skytemple-dtef";
+  version = "1.1.3";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "0hisg7gq6ph0as9vvx2p1h104bn6x2kx8y477p9zcqc71f3yrx82";
+  };
+
+  propagatedBuildInputs = [ skytemple-files ];
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "skytemple_dtef" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/skytemple-dtef";
+    description = "A format for standardized rule-based tilesets with 256 adjacency combinations";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-eventserver/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-eventserver/default.nix
new file mode 100644
index 000000000000..123f4ba6d853
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-eventserver/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchFromGitHub }:
+
+buildPythonPackage rec {
+  pname = "skytemple-eventserver";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "1xcf7ljvi5ixhwx9rkg3hnwcyv4wsgd2yb6is11jffbrdp00j2bq";
+  };
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "skytemple_eventserver" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/skytemple-eventserver";
+    description = "Websocket server that emits SkyTemple UI events";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
new file mode 100644
index 000000000000..cb03d73b4270
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchFromGitHub, appdirs, explorerscript, ndspy, pillow, setuptools, skytemple-rust, tilequant }:
+
+buildPythonPackage rec {
+  pname = "skytemple-files";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "1vklg4kcj3kb9ryrzrcmywn131b2bp3vy94cd4x4y4s7hkhgwg74";
+  };
+
+  propagatedBuildInputs = [ appdirs explorerscript ndspy pillow setuptools skytemple-rust tilequant ];
+
+  doCheck = false; # requires Pokémon Mystery Dungeon ROM
+  pythonImportsCheck = [ "skytemple_files" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/skytemple-files";
+    description = "Python library to edit the ROM of Pokémon Mystery Dungeon Explorers of Sky";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-icons/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-icons/default.nix
new file mode 100644
index 000000000000..0bf3659605c9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-icons/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchFromGitHub }:
+
+buildPythonPackage rec {
+  pname = "skytemple-icons";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "036bxy0n3p0ivcdaymj11z0nw555xjxxj15ja0rpjsvq1mqamd80";
+  };
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "skytemple_icons" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/skytemple-icons";
+    description = "Icons for SkyTemple";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-rust/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-rust/default.nix
new file mode 100644
index 000000000000..d22d61099587
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-rust/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchFromGitHub, rustPlatform, setuptools-rust }:
+
+buildPythonPackage rec {
+  pname = "skytemple-rust";
+  version = "unstable-2021-05-30"; # Contains build bug fixes, but is otherwise identical to 0.0.1.post0
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = "cff8b2930af6d25d41331fab8c04f56a4fd75e95";
+    sha256 = "18y6wwvzyw062zlv3gcirr1hgld9d97ffyrvy0jvw8nr3b9h9x0i";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "1ypcsf9gbq1bz29kfn7g4kg8741mxg1lfcbb14a0vfhjq4d6pnx9";
+  };
+
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [ cargoSetupHook rust.cargo rust.rustc ]);
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "skytemple_rust" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/skytemple-rust";
+    description = "Binary Rust extensions for SkyTemple";
+    license = licenses.mit;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
new file mode 100644
index 000000000000..88ae80f7242a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, gobject-introspection, gtk3, gtksourceview3
+, wrapGAppsHook, nest-asyncio, pycairo, py-desmume, pygtkspellcheck, setuptools
+, skytemple-files, skytemple-icons
+}:
+
+buildPythonPackage rec {
+  pname = "skytemple-ssb-debugger";
+  version = "1.2.4";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "0jmsli3wg386y0lxwddpwp1xqxsn2bsy4d1f7dyh0jjz8lqiz03i";
+  };
+
+  buildInputs = [ gobject-introspection gtk3 gtksourceview3 ];
+  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+  propagatedBuildInputs = [
+    nest-asyncio
+    pycairo
+    py-desmume
+    pygtkspellcheck
+    setuptools
+    skytemple-files
+    skytemple-icons
+  ];
+
+  doCheck = false; # requires Pokémon Mystery Dungeon ROM
+  pythonImportsCheck = [ "skytemple_ssb_debugger" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/skytemple-ssb-debugger";
+    description = "Script Engine Debugger for Pokémon Mystery Dungeon Explorers of Sky";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/slimit/default.nix b/nixpkgs/pkgs/development/python-modules/slimit/default.nix
deleted file mode 100644
index 30654bd03f61..000000000000
--- a/nixpkgs/pkgs/development/python-modules/slimit/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, fetchpatch, python, ply }:
-
-buildPythonPackage rec {
-  pname = "slimit";
-  version = "0.8.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    extension = "zip";
-    sha256 = "f433dcef899f166b207b67d91d3f7344659cb33b8259818f084167244e17720b";
-  };
-
-  # Some patches from https://github.com/rspivak/slimit/pull/65
-  patches = lib.optionals isPy3k [
-    (fetchpatch {
-      url = "https://github.com/lelit/slimit/commit/a61e12d88cc123c4b7af2abef21d06fd182e561a.patch";
-      sha256 = "0lbhvkgn4l8g9fwvb81rfwjx7hsaq2pid8a5gczdk1ba65wfvdq5";
-    })
-    (fetchpatch {
-      url = "https://github.com/lelit/slimit/commit/e8331659fb89e8a4613c5e4e338c877fead9c551.patch";
-      sha256 = "1hv4ysn09c9bfd5bxhhrp51hsi81hdidmx0y7zcrjjiich9ayrni";
-    })
-  ];
-
-  propagatedBuildInputs = [ ply ];
-
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover -s src/slimit
-  '';
-
-  meta = with lib; {
-    description = "JavaScript minifier";
-    homepage = "https://slimit.readthedocs.org/";
-    license = licenses.mit;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix b/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
index 43583416bb40..57168b1d9151 100644
--- a/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -14,26 +14,32 @@
 
 buildPythonPackage rec {
   pname = "slither-analyzer";
-  version = "0.7.0";
-
+  version = "0.7.1";
   disabled = pythonOlder "3.6";
 
-  # No Python tests
-  doCheck = false;
-
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10r479xidgxvas4wb0z6injp59jrn7rfq8d7bxlcalc2dy4mawr0";
+    sha256 = "sha256-v/UuxxgMmkGfP962AfOQU05MI8xJocpD8SkENCZi04I=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-  propagatedBuildInputs = [ crytic-compile prettytable setuptools ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  propagatedBuildInputs = [
+    crytic-compile
+    prettytable
+    setuptools
+  ];
 
   postFixup = lib.optionalString withSolc ''
     wrapProgram $out/bin/slither \
       --prefix PATH : "${lib.makeBinPath [ solc ]}"
   '';
 
+  # No Python tests
+  doCheck = false;
+
   meta = with lib; {
     description = "Static Analyzer for Solidity";
     longDescription = ''
@@ -43,6 +49,6 @@ buildPythonPackage rec {
     '';
     homepage = "https://github.com/trailofbits/slither";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ arturcygan ];
+    maintainers = with maintainers; [ arturcygan fab ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix b/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix
index f648905251e2..f28708bdf03b 100644
--- a/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slixmpp/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "slixmpp";
-  version = "1.7.0";
+  version = "1.7.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-fy7sRKS7ih4JmjOW/noL8qJ1xWVpQLbBbObHnMwT3Bc=";
+    sha256 = "sha256-mvg23FdHJZeIZRcm8GLWmm9DDTBt29jmsUHB/smVSec=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/smart_open/default.nix b/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
index 4f3423b7df32..051d6c97397d 100644
--- a/nixpkgs/pkgs/development/python-modules/smart_open/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
@@ -12,12 +12,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "smart_open";
+  pname = "smart-open";
   version = "4.2.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "smart_open";
+    inherit version;
     sha256 = "d9f5a0f173ccb9bbae528db5a3804f57145815774f77ef755b9b0f3b4b2a9dcb";
   };
 
@@ -29,9 +30,10 @@ buildPythonPackage rec {
 
   # upstream code requires both boto and boto3
   propagatedBuildInputs = [ boto boto3 bz2file requests ];
+
   meta = {
     license = lib.licenses.mit;
-    description = "smart_open is a Python 2 & Python 3 library for efficient streaming of very large file";
+    description = "Library for efficient streaming of very large file";
     maintainers = with lib.maintainers; [ jyp ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix b/nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix
new file mode 100644
index 000000000000..517acd6f9cca
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/smbprotocol/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, pyspnego
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "smbprotocol";
+  version = "1.5.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "jborean93";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ym0fvljbwgl1h7f63m3psbsvqm64fipsrrmbqb97hrhfdzxqxpa";
+  };
+
+  propagatedBuildInputs = [
+    cryptography
+    pyspnego
+    six
+  ];
+
+  checkInputs = [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "smbprotocol" ];
+
+  meta = with lib; {
+    description = "Python SMBv2 and v3 Client";
+    homepage = "https://github.com/jborean93/smbprotocol";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/smhi-pkg/default.nix b/nixpkgs/pkgs/development/python-modules/smhi-pkg/default.nix
index 3308697cf549..f6693da46be7 100644
--- a/nixpkgs/pkgs/development/python-modules/smhi-pkg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smhi-pkg/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "smhi-pkg";
-  version = "1.0.14";
+  version = "1.0.15";
 
   src = fetchFromGitHub {
     owner = "joysoftware";
     repo = "pypi_smhi";
     rev = version;
-    sha256 = "186xwrg3hvr0hszq2kxvygd241q2sp11gfk6mwj9z4zqywwfcbn3";
+    sha256 = "sha256-tBNmfn2hBkS36B9zKDP+TgqeumbgzBVDiJ5L54RaSc8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/snitun/default.nix b/nixpkgs/pkgs/development/python-modules/snitun/default.nix
index 10eada9f0955..f93445a02b00 100644
--- a/nixpkgs/pkgs/development/python-modules/snitun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snitun/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "snitun";
-  version = "0.20";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "NabuCasa";
     repo = pname;
     rev = version;
-    sha256 = "1nscfwycclfbll709w1q46w6rl0r5c3b85rsc7zwc3ixd1k8aajp";
+    sha256 = "sha256-oZHi/H9HOqGTFuhqPSZXntMzVJ3ZT4zNejezo0cDtqg=";
   };
 
   propagatedBuildInputs = [ attrs cryptography async-timeout ];
diff --git a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
index fdf984563ea0..237f36e201b6 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -1,5 +1,6 @@
-{ buildPythonPackage
-, isPy27
+{ lib
+, buildPythonPackage
+, pythonOlder
 , asn1crypto
 , azure-storage-blob
 , boto3
@@ -10,7 +11,6 @@
 , idna
 , ijson
 , isPy3k
-, lib
 , oscrypto
 , pyarrow
 , pyasn1-modules
@@ -25,20 +25,14 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.4.1";
-  disabled = isPy27;
+  version = "2.4.3";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c9180e61202a7beb1df83231688423091ca0a04ee559d2a78ff77f9c727baae";
+    sha256 = "sha256-+jAfUwaofWM5Ef1kk4AEAbBM/UES8/ZzLd4QJfkEQsM=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL'," \
-      --replace 'pytz<2021.0' 'pytz'
-  '';
-
   propagatedBuildInputs = [
     azure-storage-blob
     asn1crypto
@@ -55,16 +49,26 @@ buildPythonPackage rec {
     pytz
     requests
     six
-  ] ++ lib.optionals (!isPy3k) [
     pyarrow
     pyasn1-modules
     urllib3
   ];
 
-  # tests require encrypted secrets, see
+  postPatch = ''
+    # https://github.com/snowflakedb/snowflake-connector-python/issues/705
+    substituteInPlace setup.py \
+      --replace "idna>=2.5,<3" "idna" \
+      --replace "chardet>=3.0.2,<4" "chardet"
+  '';
+
+  # Tests require encrypted secrets, see
   # https://github.com/snowflakedb/snowflake-connector-python/tree/master/.github/workflows/parameters
   doCheck = false;
-  pythonImportsCheck = [ "snowflake" "snowflake.connector" ];
+
+  pythonImportsCheck = [
+    "snowflake"
+    "snowflake.connector"
+  ];
 
   meta = with lib; {
     description = "Snowflake Connector for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
index b7d7f25614d9..a8f565aa3533 100644
--- a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , isPy3k
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , setuptools
 , requests
 , lxml
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     snscrape --help
   '';
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ setuptools requests lxml beautifulsoup4 ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/soco/default.nix b/nixpkgs/pkgs/development/python-modules/soco/default.nix
index a72c413c1860..c1db4dd01582 100644
--- a/nixpkgs/pkgs/development/python-modules/soco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/soco/default.nix
@@ -1,58 +1,32 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , graphviz
 , ifaddr
-, isPy27
-, lib
+, pythonOlder
 , mock
 , nix-update-script
 , pytestCheckHook
 , requests
 , requests-mock
-, sphinx
-, sphinx_rtd_theme
-, toml
 , xmltodict
 }:
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.21.2";
-  disabled = isPy27;
+  version = "0.22.3";
+  disabled = pythonOlder "3.6";
 
-  # N.B. We fetch from GitHub because the PyPI tarball doesn't contain the
-  # required files to run the tests.
   src = fetchFromGitHub {
     owner = "SoCo";
     repo = "SoCo";
     rev = "v${version}";
-    sha256 = "sha256-CCgkzUkt9YqTJt9tPBLmYXW6ZuRoMDd7xahYmNXgfM0=";
+    sha256 = "sha256-RCWXXk5aQQYqyxm65M96XBoMS5UlYqyAz3aM/DVghRw=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/SoCo/SoCo/pull/811.patch";
-      sha256 = "sha256-GBd74c8zc25ROO411SZ9TTa+bi8yXJaaOQqY9FM1qj4=";
-    })
-  ];
-
-  # N.B. These exist because:
-  # 1. Upstream's pinning isn't well maintained, leaving dependency versions no
-  #    longer in nixpkgs.
-  # 2. There is no benefit for us to be running linting and coverage tests.
-  postPatch = ''
-    sed -i "/black/d" ./requirements-dev.txt
-    sed -i "/coveralls/d" ./requirements-dev.txt
-    sed -i "/flake8/d" ./requirements-dev.txt
-    sed -i "/pylint/d" ./requirements-dev.txt
-    sed -i "/pytest-cov/d" ./requirements-dev.txt
-  '';
-
   propagatedBuildInputs = [
     ifaddr
     requests
-    toml
     xmltodict
   ];
 
@@ -61,10 +35,10 @@ buildPythonPackage rec {
     graphviz
     mock
     requests-mock
-    sphinx
-    sphinx_rtd_theme
   ];
 
+  pythonImportsCheck = [ "soco" ];
+
   passthru.updateScript = nix-update-script {
     attrPath = "python3Packages.${pname}";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/solo-python/default.nix b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
index 8d84ce34eb95..88df4e50fbc4 100644
--- a/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
@@ -14,7 +14,7 @@
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.27";
+  version = "0.0.30";
   format = "flit";
   disabled = pythonOlder "3.6"; # only python>=3.6 is supported
 
@@ -22,7 +22,7 @@
     owner = "solokeys";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OCiKa6mnqJGoNCC4KqI+hMw22tzhdN63x9/KujNJqcE=";
+    sha256 = "1i9kybp08qfcdx6m4wl7ij40y1v17mvvhcdg7zglwfakblf69w41";
   };
 
   # replaced pinned fido, with unrestricted fido version
@@ -60,8 +60,5 @@
     homepage = "https://github.com/solokeys/solo-python";
     maintainers = with maintainers; [ wucke13 ];
     license = with licenses; [ asl20 mit ];
-    # solo-python v0.0.27 does not support fido2 >= v0.9
-    # https://github.com/solokeys/solo-python/issues/110
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix b/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
index daeca60c1e14..4a6f1c1ae9d7 100644
--- a/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     sha256 = "fbe6dfd66a1aceb7e0203895ff5622775e50266f8d8cfd841fe1500bd3e19018";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/spacy-alignments/default.nix b/nixpkgs/pkgs/development/python-modules/spacy-alignments/default.nix
new file mode 100644
index 000000000000..0ac1edfd5034
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy-alignments/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchPypi
+, fetchpatch
+, buildPythonPackage
+, isPy3k
+, rustPlatform
+, setuptools-rust
+, libiconv
+}:
+
+buildPythonPackage rec {
+  pname = "spacy-alignments";
+  version = "0.8.3";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-zrqBjaIjtF6bJMbmw7Zo+BeApN6sxxfLkrzsDjdvC78=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit patches src;
+    name = "${pname}-${version}";
+    hash = "sha256-YRyG2yflEXKklNqXiDD9oK3J1lq4o704+Eeu2hyY3xI=";
+  };
+
+  patches = [
+    # Add Cargo.lock, from upstream PR:
+    # https://github.com/explosion/spacy-alignments/pull/3
+    (fetchpatch {
+      url = "https://github.com/explosion/spacy-alignments/commit/7b0ba13ff0d245bfbbe344a36fb7bbd311dd4906.diff";
+      sha256 = "sha256-jx97SSC+3z+ByInNs8Uq58H50eCo4fDCwEi6VKxRs2k=";
+      excludes = [ ".gitignore" ];
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools-rust
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
+  # Fails because spacy_alignments module cannot be loaded correctly.
+  doCheck = false;
+
+  pythonImportsCheck = [ "spacy_alignments" ];
+
+  meta = with lib; {
+    description = "Align tokenizations for spaCy and transformers";
+    homepage = "https://github.com/explosion/spacy-alignments";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/spacy-pkuseg/default.nix b/nixpkgs/pkgs/development/python-modules/spacy-pkuseg/default.nix
new file mode 100644
index 000000000000..670174a057e9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy-pkuseg/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cython
+, numpy
+, srsly
+}:
+
+buildPythonPackage rec {
+  pname = "spacy-pkuseg";
+  version = "0.0.28";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "spacy_pkuseg";
+    hash = "sha256-mmA/baY9ohvrM41ak5L+G8CUrSQeZCrzmMAoND4X/NI=";
+  };
+
+  # Does not seem to have actual tests, but unittest discover
+  # recognizes some non-tests as tests and fails.
+  doCheck = false;
+
+  nativeBuildInputs = [ cython ];
+
+  propagatedBuildInputs = [ numpy srsly ];
+
+  pythonImportsCheck = [ "spacy_pkuseg" ];
+
+  meta = with lib; {
+    description = "Toolkit for multi-domain Chinese word segmentation (spaCy fork)";
+    homepage = "https://github.com/explosion/spacy-pkuseg";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py b/nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py
new file mode 100644
index 000000000000..d0be2d1c335a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/annotate.py
@@ -0,0 +1,68 @@
+import pytest
+import spacy
+
+en_text = (
+    "When Sebastian Thrun started working on self-driving cars at "
+    "Google in 2007, few people outside of the company took him "
+    "seriously. “I can tell you very senior CEOs of major American "
+    "car companies would shake my hand and turn away because I wasn’t "
+    "worth talking to,” said Thrun, in an interview with Recode earlier "
+    "this week.")
+
+
+@pytest.fixture
+def en_core_web_trf():
+    return spacy.load("en_core_web_trf")
+
+
+@pytest.fixture
+def doc_en_core_web_trf(en_core_web_trf):
+    return en_core_web_trf(en_text)
+
+
+def test_entities(doc_en_core_web_trf):
+    entities = list(map(lambda e: (e.text, e.label_),
+                        doc_en_core_web_trf.ents))
+
+    assert entities == [
+        ('Sebastian Thrun', 'PERSON'),
+        ('Google', 'ORG'),
+        ('2007', 'DATE'),
+        ('American', 'NORP'),
+        ('Thrun', 'PERSON'),
+        ('Recode', 'ORG'),
+        ('earlier this week', 'DATE'),
+    ]
+
+
+def test_nouns(doc_en_core_web_trf):
+    assert [
+        chunk.text for chunk in doc_en_core_web_trf.noun_chunks] == [
+        'Sebastian Thrun',
+        'self-driving cars',
+        'Google',
+        'few people',
+        'the company',
+        'him',
+        'I',
+        'you',
+        'very senior CEOs',
+        'major American car companies',
+        'my hand',
+        'I',
+        'Thrun',
+        'an interview',
+        'Recode']
+
+
+def test_verbs(doc_en_core_web_trf):
+    assert [
+        token.lemma_ for token in doc_en_core_web_trf if token.pos_ == "VERB"] == [
+        'start',
+        'take',
+        'tell',
+        'shake',
+        'turn',
+        'be',
+        'talk',
+        'say']
diff --git a/nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix b/nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
new file mode 100644
index 000000000000..11a927a0a627
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, pytest, spacy_models }:
+
+stdenv.mkDerivation {
+  name = "spacy-transformers-annotation-test";
+
+  src = ./.;
+
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = true;
+
+  checkInputs = [ pytest spacy_models.en_core_web_trf ];
+
+  checkPhase = ''
+    pytest annotate.py
+  '';
+
+  installPhase = ''
+    touch $out
+  '';
+
+  meta.timeout = 60;
+}
diff --git a/nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix b/nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix
new file mode 100644
index 000000000000..1d02460167bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy-transformers/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, callPackage
+, fetchPypi
+, buildPythonPackage
+, pytorch
+, spacy
+, spacy-alignments
+, srsly
+, transformers
+}:
+
+buildPythonPackage rec {
+  pname = "spacy-transformers";
+  version = "1.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-AYshH2trMTgeSkAPRb6wRWpm4gA5FaKV2NJd+PhzAy4=";
+  };
+
+  propagatedBuildInputs = [
+    pytorch
+    spacy
+    spacy-alignments
+    srsly
+    transformers
+  ];
+
+  # Test fails due to missing arguments for trfs2arrays().
+  doCheck = false;
+
+  pythonImportsCheck = [ "spacy_transformers" ];
+
+  passthru.tests.annotation = callPackage ./annotation-test { };
+
+  meta = with lib; {
+    description = "spaCy pipelines for pretrained BERT, XLNet and GPT-2";
+    homepage = "https://github.com/explosion/spacy-transformers";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py b/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py
index 822eb8ac0743..eb6288084883 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py
+++ b/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py
@@ -26,10 +26,11 @@ def test_entities(doc_en_core_web_sm):
 
     assert entities == [
         ('Sebastian Thrun', 'PERSON'),
-        ('Google', 'ORG'), ('2007', 'DATE'),
+        ('2007', 'DATE'),
         ('American', 'NORP'),
-        ('Thrun', 'ORG'),
-        ('earlier this week', 'DATE')
+        ('Thrun', 'PERSON'),
+        ('Recode', 'PERSON'),
+        ('earlier this week', 'DATE'),
     ]
 
 
@@ -60,10 +61,9 @@ def test_verbs(doc_en_core_web_sm):
         'work',
         'drive',
         'take',
-        'can',
         'tell',
-        'would',
         'shake',
         'turn',
+        'be',
         'talk',
         'say']
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/default.nix b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
index 077ac0e6a3bc..3cabc1d6ba20 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
@@ -7,42 +7,52 @@
 , blis
 , catalogue
 , cymem
+, jinja2
 , jsonschema
 , murmurhash
 , numpy
 , pathlib
-, plac
 , preshed
 , requests
 , setuptools
 , srsly
+, spacy-legacy
 , thinc
+, typer
 , wasabi
+, packaging
+, pathy
+, pydantic
 }:
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f7a09fbad53aac2a3cb7696a902de62b94575a15d249dd5e26a98049328060e";
+    hash = "sha256-ViirifH1aAmciAsSqcN/Ts4pq4kmBmDP33KMAnEYecU=";
   };
 
   propagatedBuildInputs = [
     blis
     catalogue
     cymem
+    jinja2
     jsonschema
     murmurhash
     numpy
-    plac
     preshed
     requests
     setuptools
     srsly
+    spacy-legacy
     thinc
     wasabi
+    packaging
+    pathy
+    pydantic
+    typer
   ] ++ lib.optional (pythonOlder "3.4") pathlib;
 
   checkInputs = [
@@ -57,10 +67,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace "blis>=0.4.0,<0.8.0" "blis>=0.4.0,<1.0" \
-      --replace "catalogue>=0.0.7,<1.1.0" "catalogue>=0.0.7,<3.0" \
-      --replace "plac>=0.9.6,<1.2.0" "plac>=0.9.6,<2.0" \
-      --replace "srsly>=1.0.2,<1.1.0" "srsly>=1.0.2,<3.0" \
-      --replace "thinc>=7.4.1,<7.5.0" "thinc>=7.4.1,<8"
+      --replace "pydantic>=1.7.1,<1.8.0" "pydantic>=1.7.1,<1.8.3"
   '';
 
   pythonImportsCheck = [ "spacy" ];
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/legacy.nix b/nixpkgs/pkgs/development/python-modules/spacy/legacy.nix
new file mode 100644
index 000000000000..f8b011d83ccf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy/legacy.nix
@@ -0,0 +1,26 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "spacy-legacy";
+  version = "3.0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-Uy94rjFllSj622RTzd6UJaQmIniCw4gpeq/X57QcIpA=";
+  };
+
+  # checkInputs = [ pytestCheckHook spacy ];
+  doCheck = false;
+  pythonImportsCheck = [ "spacy_legacy" ];
+
+  meta = with lib; {
+    description = "A Path interface for local and cloud bucket storage";
+    homepage = "https://github.com/justindujardin/pathy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ melling ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/models.json b/nixpkgs/pkgs/development/python-modules/spacy/models.json
index 3a427f8932a5..a2989b6da502 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/models.json
+++ b/nixpkgs/pkgs/development/python-modules/spacy/models.json
@@ -1,264 +1,332 @@
-[{
-  "pname": "da_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "18y1jany1ha27jkwb9563haxsbylm0axkh5c8009lsfxc8y2w9hr",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "da_core_news_md",
-  "version": "2.3.0",
-  "sha256": "06nm5grj5jdx0rja7vw1f91vvd69p6vhafrwpfr1npqk24j6cacb",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "da_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "00byhlrcbg4wxplr473g9b3126pvk4vwy0q34xg0zx4994qb6rgn",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "de_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "0rixhgdz4z7sq6f2b1w3n5cn1645cr37g40hbd9xzlvdzdf5cg6d",
-  "license": "mit"
-},
-{
-  "pname": "de_core_news_md",
-  "version": "2.3.0",
-  "sha256": "0kxir1w000r5fn1kpa38m7688xinkn2mk1m82aiwqlck3r72jdi6",
-  "license": "mit"
-},
-{
-  "pname": "de_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "00cbmrf4njg28laysapdnp4rv4lw4yw03rxkynw1ain5fwb0izl7",
-  "license": "mit"
-},
-{
-  "pname": "el_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "001c19dd1kirlvzbdv2i89zw8nf6c4icv2w0chm7rd6x9m3i13gd",
-  "license": "cc-by-nc-sa-30"
-},
-{
-  "pname": "el_core_news_md",
-  "version": "2.3.0",
-  "sha256": "170x8bzm5nf02mhkxyxjk58yk2639hsjb5b9prcc69500c0vmnp0",
-  "license": "cc-by-nc-sa-30"
-},
-{
-  "pname": "el_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "10mh3za4jvr07rawzk8ps642rp11s3smraj9xvrxflik4fqkz18b",
-  "license": "cc-by-nc-sa-30"
-},
-{
-  "pname": "en_core_web_lg",
-  "version": "2.3.0",
-  "sha256": "0mfa5wz31ya295jhyj489gb4qy806zmpq1zc11bvv5alv2m35if2",
-  "license": "mit"
-},
-{
-  "pname": "en_core_web_md",
-  "version": "2.3.0",
-  "sha256": "1ys8sqkhiap1mq6mhbkbq8bc07lvl68xngbx725xkwvirzl5gabh",
-  "license": "mit"
-},
-{
-  "pname": "en_core_web_sm",
-  "version": "2.3.0",
-  "sha256": "04icv9qf4pj53ll8vqxcjl2a723q1k00i7lifk8wx5saif28g37a",
-  "license": "mit"
-},
-{
-  "pname": "en_vectors_web_lg",
-  "version": "2.3.0",
-  "sha256": "13g012rwh0bcxx3ii5mmygqzyryah1y3zd000zhidnacc1x1g743",
-  "license": "cc-by-sa-30"
-},
-{
-  "pname": "es_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "1r0pr0lzs3j9w7rd5z9nw87iayjm36v7f7gamvaiiphs6bc5p7ls",
-  "license": "gpl3"
-},
-{
-  "pname": "es_core_news_md",
-  "version": "2.3.0",
-  "sha256": "0nz33bmpr3rxqbnv6vb1id8pkfsvh8ii8vqplwgb3b8772kmpzy2",
-  "license": "gpl3"
-},
-{
-  "pname": "es_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "02xqhg4m0gg5r9yibvl02zixkll6w0nsmbdhp07y5yyaqjarc90d",
-  "license": "gpl3"
-},
-{
-  "pname": "fr_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "1yliamws8nqqjhpk9gr2dzlk0dms2mr958zbj21biv8fimbq60ik",
-  "license": "lgpllr"
-},
-{
-  "pname": "fr_core_news_md",
-  "version": "2.3.0",
-  "sha256": "04fk212ksac3bp9dj7dmzsdcnbqmbsgymsic6ddcv9zbfdv5d0db",
-  "license": "lgpllr"
-},
-{
-  "pname": "fr_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "0kldww855z67qfc9maa9z1lsvdf5vj5vc8gj0x3h68kv5n1xr4h0",
-  "license": "lgpllr"
-},
-{
-  "pname": "it_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "192rdmqnwl3ajxzhnw4r1cqv5bkziv0yc2bbzckmzqss64wk7k70",
-  "license": "cc-by-nc-sa-30"
-},
-{
-  "pname": "it_core_news_md",
-  "version": "2.3.0",
-  "sha256": "019ih4vwq1w6j38j0wc8pyyg1an6yy37wxq2w4amwppynmmcnd5w",
-  "license": "cc-by-nc-sa-30"
-},
-{
-  "pname": "it_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "1c3ywqa8li0j7cyvd1xqbb096y61978hd6qv7rc6cxxjdhmkrrds",
-  "license": "cc-by-nc-sa-40"
-},
-{
-  "pname": "lt_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "0hn5w8n7mgv33i6gvnaxl1j44n9gz4j86gg1a9jjlgdw5z98n0p2",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "lt_core_news_md",
-  "version": "2.3.0",
-  "sha256": "1xya79cz2xd5vgzg6qg0ww5j2bmv7kppdk3mdjf6zpwrlzwdbk5d",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "lt_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "0r3rbqgz4897wyhz5jli30lryb45039f4rlvn4q0364cg1pm92g9",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "nb_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "18mblypw3c82004qz5w1p3262iqwn99wl9b781dq7aqwxskr02d6",
-  "license": "mit"
-},
-{
-  "pname": "nb_core_news_md",
-  "version": "2.3.0",
-  "sha256": "0iw97k9glxbar8mrpvnmmcb1nffgdhb83akn99p53pwmqbzxy9p3",
-  "license": "mit"
-},
-{
-  "pname": "nb_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "07b7xri2q3m7fvn9a2gjc1044a3f14231vr32hrw96h7k6vg95h7",
-  "license": "mit"
-},
-{
-  "pname": "nl_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "016166kzpgi0p3m0x3k308a0r60a28yz7npagjvmpl1dfm9lzhnv",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "nl_core_news_md",
-  "version": "2.3.0",
-  "sha256": "1anfhig531k9k14s0cbgsvmvifp3h50qi1h8dhx894kjmq10k2lg",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "nl_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "0alvz7pn7cj0yax8h5gp71vrdblh3mcsmyhzgiddsd44ry35nxnj",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "pl_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "1acchp8pv1h4c6cwvxz07lh4ychn6aw809zfg3mbbsxgsgd2ahjr",
-  "license": "gpl3"
-},
-{
-  "pname": "pl_core_news_md",
-  "version": "2.3.0",
-  "sha256": "19jjjjvbys3ayibkm3cx497b4bh63ll39hfq04wx116rj4ajpwwg",
-  "license": "gpl3"
-},
-{
-  "pname": "pl_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "166mqlfkgiszcc6hwg2mr6sir9y88y22nd81a1nidq0fiif5lfji",
-  "license": "gpl3"
-},
-{
-  "pname": "pt_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "18gvdmfwyy2sbq6206imglhghyagd6a4gb6wcfkwhm7lzbnq714d",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "pt_core_news_md",
-  "version": "2.3.0",
-  "sha256": "1yxnpwby2aq6ydvd35lylc4fs141fisfnzlx8pl88pp2b2gxijvl",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "pt_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "1vcvzdg9f93x0vaafkk9l9xhpmaavfj0cf0l3p06c5kx2d76f9ph",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "ro_core_news_sm",
-  "version": "2.3.0",
-  "sha256": "0lsmbdwsaczv37y5sa1vvgwszy2hs8jp24a0nvc5qm8vb71rxj8w",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "ro_core_news_md",
-  "version": "2.3.0",
-  "sha256": "1igwkz3yd1117gi2g78yilh9ln8n5yrdimas4prfxjgzwid3q8bc",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "ro_core_news_lg",
-  "version": "2.3.0",
-  "sha256": "0id1y32kjfans7llh1i55rgr4n2x6xn208y4qf6yl3pbc17i0n9z",
-  "license": "cc-by-sa-40"
-},
-{
-  "pname": "xx_ent_wiki_sm",
-  "version": "2.3.0",
-  "sha256": "0x3zmmybl5kh4dn5prkfmr4q5j9bh13p40qc3rhdfi0i3jxc11pn",
-  "license": "mit"
-},
-{
-  "pname": "zh_core_web_lg",
-  "version": "2.3.1",
-  "sha256": "17zxk7cz47k07yb3qaigc3sx4dj4zwilr1lsn2jq6w7jc8k2h1ll",
-  "license": "mit"
-},
-{
-  "pname": "zh_core_web_md",
-  "version": "2.3.1",
-  "sha256": "1n4iwxyam4ykn0f9jdzwkhczack8r9c3kkbyga3c4h6iwqsflzcj",
-  "license": "mit"
-},
-{
-  "pname": "zh_core_web_sm",
-  "version": "2.3.1",
-  "sha256": "1lj5nwhx38cpwnvajwxlfkf84dr1xx2h6wwbg3scycsh459i9fpc",
-  "license": "mit"
-}]
+[
+  {
+    "pname": "da_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "0l0wljc1lm9a72ngfd4aa90laz4zcc37ix9nsiaqlw004v01z7wj",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "da_core_news_md",
+    "version": "3.0.0",
+    "sha256": "14h3ym22224aimfk2kj88pmn83hkb57w402i0x6pd7ra86n372lh",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "da_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "05893dpmx76waqnlysnkq8hz9271rkk30xf6hy98gka6244l9a1l",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "de_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "0s7vfpr9gv22pvh697ffg35fppxkjhw23ynf4bpz73hl9jikdqvj",
+    "license": "mit"
+  },
+  {
+    "pname": "de_core_news_md",
+    "version": "3.0.0",
+    "sha256": "09vvlm3rxmyiima81y4bvcyxhn9bjxrqlkbmglzmwhrhxm84nkmx",
+    "license": "mit"
+  },
+  {
+    "pname": "de_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "1w5aqfzknnnxpsi9i6kn6bki58j0mp24d4gr2203bf6g5kahiq03",
+    "license": "mit"
+  },
+  {
+    "pname": "de_dep_news_trf",
+    "version": "3.0.0",
+    "sha256": "1snkm911jn73mqfz0y0anr12r6j3gdi6wd8qmd5alwm623x4s6hm",
+    "license": "mit"
+  },
+  {
+    "pname": "el_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "011lqmx3f3laf2vvqp0hxp5y105pn54kwdh1xzw4hs2pj6fac9p5",
+    "license": "cc-by-nc-sa-30"
+  },
+  {
+    "pname": "el_core_news_md",
+    "version": "3.0.0",
+    "sha256": "0p75c18sg38j9dj79ykmm5kzcwjxccpgrcw4cjcscb6ad6wwvcjx",
+    "license": "cc-by-nc-sa-30"
+  },
+  {
+    "pname": "el_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "0gvisa7yg1w49hpfp79ahy50v64l3rmk56k0k7zkgc8ml1gn892r",
+    "license": "cc-by-nc-sa-30"
+  },
+  {
+    "pname": "en_core_web_lg",
+    "version": "3.0.0",
+    "sha256": "0sdb85zvfb12d14k3wy23dfryy3xwc9ag79zq71qnxwpvvygmc8y",
+    "license": "mit"
+  },
+  {
+    "pname": "en_core_web_md",
+    "version": "3.0.0",
+    "sha256": "0c669b1vsp3z28n52lfsijmkn9465r8zjjygjml5rlf9lf1paxa5",
+    "license": "mit"
+  },
+  {
+    "pname": "en_core_web_sm",
+    "version": "3.0.0",
+    "sha256": "0risizvzkicffw7vgrj92z23dfb7zvvzihqgvjcrx8989b7b6wq6",
+    "license": "mit"
+  },
+  {
+    "pname": "en_core_web_trf",
+    "version": "3.0.0",
+    "sha256": "0plmg77rv1spr0swn4jakci16mbqsxm32mz9nnwc9ylynbvgrhmn",
+    "license": "mit"
+  },
+  {
+    "pname": "es_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "0832w8qmg0fp2q8329ndlbbzpfkpbw9v38ny7106a45xaz0rn2xc",
+    "license": "gpl3"
+  },
+  {
+    "pname": "es_core_news_md",
+    "version": "3.0.0",
+    "sha256": "01is980r63a5418jq917scapzkl9xydj56lrsxbr16fya0hh8qnn",
+    "license": "gpl3"
+  },
+  {
+    "pname": "es_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "1wgya0f25dgix57pb60fyl4hf2msma16d1f6cf617ypk6g3v80rb",
+    "license": "gpl3"
+  },
+  {
+    "pname": "es_dep_news_trf",
+    "version": "3.0.0",
+    "sha256": "07lim35p0mxb75qiym79wcrak3j7wcan393260haxgwrj29rzpvv",
+    "license": "gpl3"
+  },
+  {
+    "pname": "fr_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "1frg734lb64gkm7pagqp1mj7lqpwsxxj5vyjm10yja0rkdi6kcca",
+    "license": "lgpllr"
+  },
+  {
+    "pname": "fr_core_news_md",
+    "version": "3.0.0",
+    "sha256": "1xshr9r639hdb8vkj5nribk4lkm3a5fb7zrxj3y3p678dr53xalz",
+    "license": "lgpllr"
+  },
+  {
+    "pname": "fr_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "0n23c9rbg1b44c8yjlf6cc0g8ccj6x0rmfjg76ddmpkjaj83jwv1",
+    "license": "lgpllr"
+  },
+  {
+    "pname": "fr_dep_news_trf",
+    "version": "3.0.0",
+    "sha256": "192l6n5yxn1ndc4fk8k759j2d5hryj9mfkpy2aminaxr4dmp2imr",
+    "license": "lgpllr"
+  },
+  {
+    "pname": "it_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "121nki732wrnfyzcflvsv54nvrz3l3hx55hkd72hlhrvjw0kvkv5",
+    "license": "cc-by-nc-sa-30"
+  },
+  {
+    "pname": "it_core_news_md",
+    "version": "3.0.0",
+    "sha256": "0m168wrf1p6dz5kc4n5ga2h8c0d6jzxx876i3ndrg6b7z418hhi5",
+    "license": "cc-by-nc-sa-30"
+  },
+  {
+    "pname": "it_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "132v06cah8l7q4caxg6n4nw34v9jd8y8cqp20njryx4nirm9c36l",
+    "license": "cc-by-nc-sa-30"
+  },
+  {
+    "pname": "lt_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "034qycqpbdiyzhpzjz92kpnx6z2nai70dddz75r48hylzlw1d92h",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "lt_core_news_md",
+    "version": "3.0.0",
+    "sha256": "18mb2lmrjwnsc7s4yaq3yvdbh8p8p1k0xpm8cqn521hanpr0jqj3",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "lt_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "1p998h9lnp16czj3gg8781gywg17dap2h9f8qc6f87daxyc9bdjs",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "mk_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "1fmrpgq9plndid7402wkybidpi0phnybb3031jxppan99ihr3hfj",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "mk_core_news_md",
+    "version": "3.0.0",
+    "sha256": "1mnabkyjxph2xa4g2an5rqp24d4gbq969ln27zpjycyiwxlkz7vl",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "mk_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "1ax6pl61n0p4qf4wcd6c7d42zqjrgh3vhlpl6xby57a78547asxr",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "nb_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "07a8nsfswlpb2jc2afzf201bjkl2nlz40kqmjx3dbva8jphj3ljs",
+    "license": "mit"
+  },
+  {
+    "pname": "nb_core_news_md",
+    "version": "3.0.0",
+    "sha256": "0y1vydhhgb6cifq7k4vc7dy4jl6wb1z6pklbv65v6nxl7rhn76fz",
+    "license": "mit"
+  },
+  {
+    "pname": "nb_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "1lk1869cb2176j6lvd8lraclfl706p12m1gvvf1ixm99ra8zkxhs",
+    "license": "mit"
+  },
+  {
+    "pname": "nl_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "0iq4ayzh9g9gil4l8kcl5qcm0l16hymavsqgiczf3ddvamciqaxs",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "nl_core_news_md",
+    "version": "3.0.0",
+    "sha256": "0g9dkzwxndcf05bnhkd9fzqj7n614naspyhalg6h9h1kb7v3m2ak",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "nl_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "1l4mk3gs15yc5kssy4x4lyab9kmg9y199h4hvizwh8y1ifqbqy03",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "pl_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "14ldch7rps1qxh3ldczh7f29ra3dq2kxaxpfbx7r6f1xpmk5s1rv",
+    "license": "gpl3"
+  },
+  {
+    "pname": "pl_core_news_md",
+    "version": "3.0.0",
+    "sha256": "0fx6ipd8ll2d0w8qwn9cjw0q7w0r3l40467d6mizi4mx93q7m7iw",
+    "license": "gpl3"
+  },
+  {
+    "pname": "pl_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "0p1gcniyrn9qya4wg1qd6ijfchc7lhk0dh4iba8y71mss3n162fs",
+    "license": "gpl3"
+  },
+  {
+    "pname": "pt_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "1vsw1ng364466jz6ffyj9dj3jh4s68gk7csxylc1fj7wac8jxrbj",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "pt_core_news_md",
+    "version": "3.0.0",
+    "sha256": "11laikyd6m9zprk7bnfn0v2lixvkcgvpv95dp0zpc0q2izmky6q8",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "pt_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "12d59q1gvpx8dj48iq17sindd6wid09hnjb4fw0rb00bb28rmqk1",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ro_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "11mkip5piy6g7rg51ljqjn61s4ydlafl6qp3v29zmm3lghc66h8c",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ro_core_news_md",
+    "version": "3.0.0",
+    "sha256": "1jyf3khki7xqbp6ir0p4y2p7rdhs36zq2i1960ik4kr2mhnzrblg",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ro_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "0gc61gdfgji92mjdpznkf30nl1fz7378h9bz8dlhvnc401hjzsky",
+    "license": "cc-by-sa-40"
+  },
+  {
+    "pname": "ru_core_news_lg",
+    "version": "3.0.0",
+    "sha256": "1x1hxvhki62ypj3x0s4syfhz3znlflp36qkp4l2g2sbxjj2qw7n3",
+    "license": "mit"
+  },
+  {
+    "pname": "ru_core_news_md",
+    "version": "3.0.0",
+    "sha256": "0ks0qdyq6627cbg8fbbhvr83d3m8njs2aj8pri540gz9nrbj5479",
+    "license": "mit"
+  },
+  {
+    "pname": "ru_core_news_sm",
+    "version": "3.0.0",
+    "sha256": "1x3bmd7f0fqf03wds01imwpbv4xng1qq9iq61m8rbqvskm5jlzbb",
+    "license": "mit"
+  },
+  {
+    "pname": "xx_ent_wiki_sm",
+    "version": "3.0.0",
+    "sha256": "1115vap4c6snvkwq8bmc8dld1mw5ky0w9n112hadp85pv012ccds",
+    "license": "mit"
+  },
+  {
+    "pname": "xx_sent_ud_sm",
+    "version": "3.0.0",
+    "sha256": "062g3xfb3fp33b56wa4fj84smr5rlc0dbja102khxnqm2aakk99k",
+    "license": "cc-by-sa-30"
+  },
+  {
+    "pname": "zh_core_web_lg",
+    "version": "3.0.0",
+    "sha256": "1ai34fc2wfmb35f1zissddf6jjqpg51wqiyqqq35h03jyf4731jr",
+    "license": "mit"
+  },
+  {
+    "pname": "zh_core_web_md",
+    "version": "3.0.0",
+    "sha256": "10npzl8nvyj4jdn2f9iai9inq5c4x3hxdk0ycgg9wcgqaj09gnxa",
+    "license": "mit"
+  },
+  {
+    "pname": "zh_core_web_sm",
+    "version": "3.0.0",
+    "sha256": "1f9x5lr8vnvb1n8hc59vm2xi6kv2rj78x1vm916z6ic3vg7vwl1h",
+    "license": "mit"
+  },
+  {
+    "pname": "zh_core_web_trf",
+    "version": "3.0.0",
+    "sha256": "178w8dfcvx4aabasid6r0pnwqd5k02cvlq35siqjgfn7j3zb56z0",
+    "license": "mit"
+  }
+]
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/models.nix b/nixpkgs/pkgs/development/python-modules/spacy/models.nix
index 8c57d2e0d262..c34bbdfb83d8 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/models.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/models.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchurl, jieba, pkuseg, spacy }:
+{ lib
+, buildPythonPackage
+, fetchurl
+, jieba
+, pymorphy2
+, sentencepiece
+, spacy
+, spacy-pkuseg
+, spacy-transformers }:
 let
   buildModelPackage = { pname, version, sha256, license }:
   let
@@ -12,7 +20,15 @@ let
     };
 
     propagatedBuildInputs = [ spacy ]
-      ++ lib.optionals (lang == "zh") [ jieba pkuseg ];
+      ++ lib.optionals (lang == "zh") [ jieba spacy-pkuseg ]
+      ++ lib.optionals (lib.hasSuffix "_trf" pname) [ spacy-transformers ]
+      ++ lib.optionals (lang == "ru") [ pymorphy2 ]
+      ++ lib.optionals (pname == "fr_dep_news_trf") [ sentencepiece ];
+
+    postPatch = lib.optionals (pname == "fr_dep_news_trf") ''
+      substituteInPlace meta.json \
+        --replace "sentencepiece==0.1.91" "sentencepiece>=0.1.91"
+    '';
 
     pythonImportsCheck = [ pname ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix b/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix
index d2f79c183480..329b225b5769 100644
--- a/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix
@@ -1,11 +1,12 @@
 { lib
 , fetchPypi
+, fetchpatch
 , buildPythonPackage
 , aplpy
 , joblib
 , astropy
 , radio_beam
-, pytest
+, pytestCheckHook
 , pytest-astropy
 , astropy-helpers
 }:
@@ -20,13 +21,18 @@ buildPythonPackage rec {
     sha256 = "17zisr26syfb8kn89xj17lrdycm0hsmy5yp5zrn236wgd8rjriki";
   };
 
+  patches = [
+    # Fix compatibility with radio_beam >= 0.3.3. Will be included
+    # in the next release of spectral cube > 0.5.0
+    (fetchpatch {
+      url = "https://github.com/radio-astro-tools/spectral-cube/commit/bbe4295ebef7dfa6fe4474275a29acd6cb0cb544.patch";
+    sha256 = "1qddfm3364kc34yf6wd9nd6rxh4qc2v5pqilvz9adwb4a50z28bf";
+    })
+  ];
+
   nativeBuildInputs = [ astropy-helpers ];
   propagatedBuildInputs = [ astropy radio_beam joblib ];
-  checkInputs = [ aplpy pytest pytest-astropy ];
-
-  checkPhase = ''
-    pytest spectral_cube
-  '';
+  checkInputs = [ pytestCheckHook aplpy pytest-astropy ];
 
   meta = {
     description = "Library for reading and analyzing astrophysical spectral data cubes";
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
index 7d4629be50c7..379dbdd0b3da 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, colorama
 , sphinx
 , livereload
 }:
@@ -14,10 +15,15 @@ buildPythonPackage rec {
     sha256 = "de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05";
   };
 
-  propagatedBuildInputs = [ sphinx livereload ];
+  propagatedBuildInputs = [
+    colorama
+    sphinx
+    livereload
+  ];
 
   # No tests included.
   doCheck = false;
+
   pythonImportsCheck = [ "sphinx_autobuild" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-jinja/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-jinja/default.nix
index 060d7f14a336..6f721ad1a8f6 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-jinja/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-jinja/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Sphinx extension to include jinja templates in documentation";
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-markdown-parser/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
new file mode 100644
index 000000000000..e3ebac0744a7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, sphinx
+, markdown
+, CommonMark
+, recommonmark
+, pydash
+, pyyaml
+, unify
+, yapf
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-markdown-parser";
+  version = "0.2.4";
+
+  # PyPi release does not include requirements.txt
+  src = fetchFromGitHub {
+    owner = "clayrisser";
+    repo = "sphinx-markdown-parser";
+    # Upstream maintainer currently does not tag releases
+    # https://github.com/clayrisser/sphinx-markdown-parser/issues/35
+    rev = "2fd54373770882d1fb544dc6524c581c82eedc9e";
+    sha256 = "0i0hhapmdmh83yx61lxi2h4bsmhnzddamz95844g2ghm132kw5mv";
+  };
+
+  propagatedBuildInputs = [ sphinx markdown CommonMark pydash pyyaml unify yapf recommonmark ];
+
+  # Avoids running broken tests in test_markdown.py
+  checkPhase = ''
+    ${python.interpreter} -m unittest -v tests/test_basic.py tests/test_sphinx.py
+  '';
+
+  pythonImportsCheck = [ "sphinx_markdown_parser" ];
+
+  meta = with lib; {
+    description = "Write markdown inside of docutils & sphinx projects";
+    homepage = "https://github.com/clayrisser/sphinx-markdown-parser";
+    license = licenses.mit;
+    maintainers = with maintainers; [ FlorianFranzen ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx/2.nix b/nixpkgs/pkgs/development/python-modules/sphinx/2.nix
index 5cf2cecd97f2..0424b9b4c39b 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx/2.nix
@@ -77,6 +77,6 @@ buildPythonPackage rec {
     description = "A tool that makes it easy to create intelligent and beautiful documentation for Python projects";
     homepage = "http://sphinx.pocoo.org/";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ nand0p ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
index 1c5cc29f4146..5e31b6b19fa1 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
@@ -1,24 +1,18 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pytest
-, simplejson
-, mock
-, glibcLocales
-, html5lib
 , pythonOlder
-, enum34
-, python
+, fetchFromGitHub
+# propagatedBuildInputs
+, Babel
+, alabaster
 , docutils
+, imagesize
 , jinja2
+, packaging
 , pygments
-, alabaster
-, Babel
-, snowballstemmer
-, six
-, whoosh
-, imagesize
 , requests
+, setuptools
+, snowballstemmer
 , sphinxcontrib-applehelp
 , sphinxcontrib-devhelp
 , sphinxcontrib-htmlhelp
@@ -26,56 +20,70 @@
 , sphinxcontrib-qthelp
 , sphinxcontrib-serializinghtml
 , sphinxcontrib-websupport
-, typing ? null
-, setuptools
-, packaging
+# check phase
+, html5lib
+, imagemagick
+, pytestCheckHook
+, typed-ast
 }:
 
 buildPythonPackage rec {
   pname = "sphinx";
-  version = "3.3.1";
-  src = fetchPypi {
-    pname = "Sphinx";
-    inherit version;
-    sha256 = "1e8d592225447104d1172be415bc2972bd1357e3e12fdc76edf2261105db4300";
+  version = "3.5.4";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "sphinx-doc";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1xjii3dl01rq8x2bsxc6zywiy1s7arfgxrg5l8ml54w1748shadd";
   };
-  LC_ALL = "en_US.UTF-8";
 
-  checkInputs = [ pytest ];
-  buildInputs = [ simplejson mock glibcLocales html5lib ] ++ lib.optional (pythonOlder "3.4") enum34;
-  # Disable two tests that require network access.
-  checkPhase = ''
-    cd tests; ${python.interpreter} run.py --ignore py35 -k 'not test_defaults and not test_anchors_ignored'
-  '';
   propagatedBuildInputs = [
+    Babel
+    alabaster
     docutils
+    imagesize
     jinja2
-    pygments
-    alabaster
-    Babel
     packaging
+    pygments
+    requests
     setuptools
     snowballstemmer
-    six
-    whoosh
-    imagesize
-    requests
     sphinxcontrib-applehelp
     sphinxcontrib-devhelp
     sphinxcontrib-htmlhelp
     sphinxcontrib-jsmath
     sphinxcontrib-qthelp
     sphinxcontrib-serializinghtml
+    # extra[docs]
     sphinxcontrib-websupport
-  ] ++ lib.optional (pythonOlder "3.5") typing;
+  ];
+
+  checkInputs = [
+    imagemagick
+    html5lib
+    pytestCheckHook
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typed-ast
+  ];
 
-  # Lots of tests. Needs network as well at some point.
-  doCheck = false;
+  disabledTests = [
+    # requires network access
+    "test_anchors_ignored"
+    "test_defaults"
+    "test_defaults_json"
+    "test_latex_images"
+  ];
 
-  meta = {
-    description = "A tool that makes it easy to create intelligent and beautiful documentation for Python projects";
-    homepage = "http://sphinx.pocoo.org/";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ nand0p ];
+  meta = with lib; {
+    description = "Python documentation generator";
+    longDescription = ''
+      A tool that makes it easy to create intelligent and beautiful
+      documentation for Python projects
+    '';
+    homepage = "https://www.sphinx-doc.org";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
new file mode 100644
index 000000000000..81fa98312565
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, actdiag
+, blockdiag
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-actdiag";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-TtuFZOLkig4MULLndDQlrTTx8RiGw34MsjmXoPladMY=";
+  };
+
+  propagatedBuildInputs = [ sphinx actdiag blockdiag ];
+
+  pythonImportsCheck = [ "sphinxcontrib.actdiag" ];
+
+  meta = with lib; {
+    description = "Sphinx actdiag extension";
+    homepage = "https://github.com/blockdiag/sphinxcontrib-actdiag";
+    maintainers = with maintainers; [ davidtwco ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
index 956e3c033b9b..97e9c7529f23 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Sphinx blockdiag extension";
     homepage = "https://github.com/blockdiag/sphinxcontrib-blockdiag";
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     license = licenses.bsd2;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix
new file mode 100644
index 000000000000..e48b24c3644f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, openpyxl
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-excel-table";
+  version = "1.0.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256:1q79byn3k3ribvwqafbpixwabjhymk46ns8ym0hxcn8vhf5nljzd";
+  };
+
+  propagatedBuildInputs = [ sphinx openpyxl ];
+
+  pythonImportsCheck = [ "sphinxcontrib.excel_table" ];
+
+  # No tests present upstream
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Sphinx excel-table extension";
+    homepage = "https://github.com/hackerain/sphinxcontrib-excel-table";
+    maintainers = with maintainers; [ raboof ];
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
new file mode 100644
index 000000000000..10963a73a912
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, blockdiag
+, nwdiag
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-nwdiag";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-bula1DutRv6NwfZRhciZfLHRZmXu42p+qvbeExN/+Fk=";
+  };
+
+  propagatedBuildInputs = [ sphinx blockdiag nwdiag ];
+
+  pythonImportsCheck = [ "sphinxcontrib.nwdiag" ];
+
+  meta = with lib; {
+    description = "Sphinx nwdiag extension";
+    homepage = "https://github.com/blockdiag/sphinxcontrib-nwdiag";
+    maintainers = with maintainers; [ davidtwco ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index a9548305d3bd..c85d967222e3 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, setuptools_scm
+, setuptools-scm
 , m2r
 , pyyaml
 , jsonschema
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "1c1bd10d7653912c59a42f727c62cbb7b75f7905ddd9ccc477ebfd1bc69f0cf3";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ pyyaml jsonschema m2r sphinxcontrib_httpdomain ];
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
new file mode 100644
index 000000000000..c7407300d313
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, blockdiag
+, seqdiag
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-seqdiag";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-THJ1ra/W2X/lQaDjGbL27VMn0lWPJApwgKMrPhL0JY0=";
+  };
+
+  propagatedBuildInputs = [ sphinx blockdiag seqdiag ];
+
+  pythonImportsCheck = [ "sphinxcontrib.seqdiag" ];
+
+  meta = with lib; {
+    description = "Sphinx seqdiag extension";
+    homepage = "https://github.com/blockdiag/sphinxcontrib-seqdiag";
+    maintainers = with maintainers; [ davidtwco ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index 2b5beb4df079..35b7cf38aa99 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Sphinx spelling extension";
     homepage = "https://bitbucket.org/dhellmann/sphinxcontrib-spelling";
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     license = licenses.bsd2;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/spidev/default.nix b/nixpkgs/pkgs/development/python-modules/spidev/default.nix
index 0d0fd582363e..90ca839bc1e0 100644
--- a/nixpkgs/pkgs/development/python-modules/spidev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spidev/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
     description = "Python bindings for Linux SPI access through spidev";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
+    platforms = platforms.linux;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/default.nix b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
index 0293699a450c..12dd743751f4 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
@@ -3,7 +3,7 @@
   keyring, numpydoc, qtconsole, qtawesome, nbconvert, mccabe, pyopengl,
   cloudpickle, pygments, spyder-kernels, qtpy, pyzmq, chardet, qdarkstyle,
   watchdog, python-language-server, pyqtwebengine, atomicwrites, pyxdg,
-  diff-match-patch, three-merge, pyls-black, pyls-spyder, flake8
+  diff-match-patch, three-merge, pyls-black, pyls-spyder, flake8, textdistance
 }:
 
 buildPythonPackage rec {
@@ -20,11 +20,11 @@ buildPythonPackage rec {
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
 
   propagatedBuildInputs = [
-    intervaltree jedi pycodestyle psutil pyflakes rope numpy scipy matplotlib pylint keyring
+    intervaltree jedi pycodestyle psutil rope numpy scipy matplotlib pylint keyring
     numpydoc qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels
     pygments qtpy pyzmq chardet pyqtwebengine qdarkstyle watchdog python-language-server
     atomicwrites pyxdg diff-match-patch three-merge pyls-black pyls-spyder
-    flake8
+    flake8 textdistance
   ];
 
   # There is no test for spyder
@@ -44,9 +44,13 @@ buildPythonPackage rec {
     # remove dependency on pyqtwebengine
     # this is still part of the pyqt 5.11 version we have in nixpkgs
     sed -i /pyqtwebengine/d setup.py
+    # The major version bump in watchdog is due to changes in supported
+    # platforms, not API break.
+    # https://github.com/gorakhargosh/watchdog/issues/761#issuecomment-777001518
     substituteInPlace setup.py \
       --replace "pyqt5<5.13" "pyqt5" \
-      --replace "parso==0.7.0" "parso"
+      --replace "parso==0.7.0" "parso" \
+      --replace "watchdog>=0.10.3,<2.0.0" "watchdog>=0.10.3,<3.0.0"
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/python-modules/srsly/default.nix b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
index c6db32a15e41..86550f998734 100644
--- a/nixpkgs/pkgs/development/python-modules/srsly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
@@ -6,20 +6,19 @@
 , catalogue
 , mock
 , numpy
-, pathlib
 , pytest
-, pytz
+, ruamel-yaml
 }:
 
 buildPythonPackage rec {
   pname = "srsly";
-  version = "2.4.0";
+  version = "2.4.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e29730be53015970e4a59050e8e9f9be44d762108a617df56c9dfc981b515ab7";
+    hash = "sha256-sPKuwKMp5ufnQqCmDpmnSWjKKb5x81xcTeIh4ygXaSY=";
   };
 
   nativeBuildInputs = [ cython ];
@@ -30,13 +29,9 @@ buildPythonPackage rec {
     mock
     numpy
     pytest
-    pytz
+    ruamel-yaml
   ];
 
-  # TypeError: cannot serialize '_io.BufferedRandom' object
-  # Possibly because of sandbox restrictions.
-  doCheck = false;
-
   pythonImportsCheck = [ "srsly" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/sslyze/default.nix b/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
index 991f85c900ec..5680b4bd36b3 100644
--- a/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
@@ -6,39 +6,44 @@
 , typing-extensions
 , faker
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "sslyze";
-  version = "3.1.0";
+  version = "4.1.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
     repo = pname;
     rev = version;
-    sha256 = "02p0lgpkfq88dys0dqw0z8bpg9g8pds2lvs9awd9f2w5cb1pwr83";
+    hash = "sha256-oSTKNiECczlPAbv5Azc023PcquFbnlC5O+8tVgNcUW0=";
   };
 
   patchPhase = ''
     substituteInPlace setup.py \
-      --replace "cryptography>=2.6,<3.3" "cryptography>=2.6,<4.0"
+      --replace "cryptography>=2.6,<3.5" "cryptography>=2.6,<4.0"
   '';
 
   checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    # Most of the tests are online; hence, applicable tests are listed
-    # explicitly here
-    pytest \
-      tests/test_main.py \
-      tests/test_scanner.py \
-      tests/cli_tests/test_console_output.py \
-      tests/cli_tests/test_json_output.py \
-      tests/cli_tests/test_server_string_parser.py \
-      tests/plugins_tests/test_scan_commands.py \
-      tests/plugins_tests/certificate_info/test_certificate_utils.py \
-      -k "not (TestScanner and test_client_certificate_missing)"
-  '';
+  # Most of the tests are online; hence, applicable tests are listed
+  # explicitly here
+  pytestFlagsArray = [
+    "tests/test_main.py"
+    "tests/test_scanner.py"
+    "tests/cli_tests/test_console_output.py"
+    "tests/cli_tests/test_json_output.py"
+    "tests/cli_tests/test_server_string_parser.py"
+    "tests/plugins_tests/test_scan_commands.py"
+    "tests/plugins_tests/certificate_info/test_certificate_utils.py"
+  ];
+
+  disabledTests = [
+    "test_error_client_certificate_needed"
+  ];
+
   pythonImportsCheck = [ "sslyze" ];
 
   propagatedBuildInputs = [ nassl cryptography typing-extensions faker ];
@@ -47,7 +52,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/nabla-c0d3/sslyze";
     description = "Fast and powerful SSL/TLS scanning library";
     platforms = platforms.linux ++ platforms.darwin;
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ veehaitch ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/stack-data/default.nix b/nixpkgs/pkgs/development/python-modules/stack-data/default.nix
index 71f114e3528b..f529a8a00b00 100644
--- a/nixpkgs/pkgs/development/python-modules/stack-data/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stack-data/default.nix
@@ -8,7 +8,7 @@
 , pure-eval
 , pygments
 , pytestCheckHook
-, setuptools_scm
+, setuptools-scm
 , toml
 , typeguard
 }:
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     git
-    setuptools_scm
+    setuptools-scm
     toml
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix b/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
index e7f1e442f4d8..1f9a63927bb3 100644
--- a/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
@@ -13,17 +13,15 @@
 
 buildPythonPackage rec {
   pname = "staticjinja";
-  version = "1.0.4";
+  version = "2.0.0";
   format = "pyproject";
 
-  disabled = isPy27; # 0.4.0 drops python2 support
-
   # No tests in pypi
   src = fetchFromGitHub {
     owner = "staticjinja";
     repo = pname;
     rev = version;
-    sha256 = "1saz6f71s693gz9c2k3bq2di2mrkj65mgmfdg86jk0z0zzjk90y1";
+    sha256 = "0z5y4l4sv4c7zmp6pj1ws3psq7i87xqbcmk648bmsa1d6prr1hil";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/stem/default.nix b/nixpkgs/pkgs/development/python-modules/stem/default.nix
index 32e4bab5afcc..c607d45e1706 100644
--- a/nixpkgs/pkgs/development/python-modules/stem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stem/default.nix
@@ -12,6 +12,8 @@ buildPythonPackage rec {
   postPatch = ''
     rm test/unit/installation.py
     sed -i "/test.unit.installation/d" test/settings.cfg
+    # https://github.com/torproject/stem/issues/56
+    sed -i '/MOCK_VERSION/d' run_tests.py
   '';
 
   checkInputs = [ mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/stytra/default.nix b/nixpkgs/pkgs/development/python-modules/stytra/default.nix
index 80eefc0a639e..fba544789a81 100644
--- a/nixpkgs/pkgs/development/python-modules/stytra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stytra/default.nix
@@ -8,7 +8,6 @@
 , pandas
 , tables
 , git
-, ffmpeg_3
 , scikitimage
 , matplotlib
 , qdarkstyle
@@ -59,7 +58,6 @@ buildPythonPackage rec {
     pandas
     tables
     git
-    ffmpeg_3
     scikitimage
     matplotlib
     qdarkstyle
@@ -79,7 +77,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://github.com/portugueslab/stytra";
     description = "A modular package to control stimulation and track behaviour";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ tbenst ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/subliminal/default.nix b/nixpkgs/pkgs/development/python-modules/subliminal/default.nix
index 77ddb125a94b..cedbb7bcf786 100644
--- a/nixpkgs/pkgs/development/python-modules/subliminal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/subliminal/default.nix
@@ -1,7 +1,6 @@
 { lib
 , fetchPypi
 , buildPythonPackage
-, isPy3k
 , guessit
 , babelfish
 , enzyme
@@ -16,7 +15,6 @@
 , appdirs
 , rarfile
 , pytz
-, futures
 , sympy
 , vcrpy
 , pytest
@@ -38,7 +36,7 @@ buildPythonPackage rec {
     guessit babelfish enzyme beautifulsoup4 requests
     click dogpile_cache stevedore chardet pysrt six
     appdirs rarfile pytz
-  ] ++ lib.optional (!isPy3k) futures;
+  ];
 
   checkInputs = [
     sympy vcrpy pytest pytest-flakes
@@ -47,6 +45,7 @@ buildPythonPackage rec {
 
   # https://github.com/Diaoul/subliminal/pull/963
   doCheck = false;
+  pythonImportsCheck = [ "subliminal" ];
 
   meta = with lib; {
     homepage = "https://github.com/Diaoul/subliminal";
diff --git a/nixpkgs/pkgs/development/python-modules/sumo/default.nix b/nixpkgs/pkgs/development/python-modules/sumo/default.nix
index 9ba073df9228..cc47eafd1afa 100644
--- a/nixpkgs/pkgs/development/python-modules/sumo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sumo/default.nix
@@ -1,37 +1,44 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib, buildPythonPackage, fetchFromGitHub
+, pythonOlder
 , h5py
 , matplotlib
 , numpy
 , phonopy
 , pymatgen
-, pytest
 , scipy
 , seekpath
 , spglib
+, castepxbin
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "sumo";
-  version = "2.2.1";
+  version = "2.2.4";
+
+  disabled = pythonOlder "3.6";
 
   # No tests in Pypi tarball
   src = fetchFromGitHub {
     owner = "SMTG-UCL";
     repo = "sumo";
     rev = "v${version}";
-    sha256 = "0r88f5w33h9b0mv7shlqc4przwvas5ycgndvl91wqjnm3b2s3ix0";
+    sha256 = "051353gsxmh4qnabshfnc00mmzdbh1fgk1xdfnsfgcnijxgw25bb";
   };
 
-  propagatedBuildInputs = [ numpy scipy spglib pymatgen h5py matplotlib seekpath phonopy ];
-
-  checkInputs = [ pytest ];
-
-  checkPhase = ''
-    pytest .
-  '';
+  propagatedBuildInputs = [
+    spglib
+    numpy
+    scipy
+    h5py
+    pymatgen
+    phonopy
+    matplotlib
+    seekpath
+    castepxbin
+  ];
 
-  # tests have type annotations, can only run on 3.5+
-  doCheck = (!isPy27);
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Toolkit for plotting and analysis of ab initio solid-state calculation data";
diff --git a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
index 65eb6abb0468..2de1e3fd5ffa 100644
--- a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
@@ -11,6 +11,7 @@
 , beautifulsoup4
 , drms
 , glymur
+, h5netcdf
 , hypothesis
 , matplotlib
 , numpy
@@ -50,6 +51,7 @@ buildPythonPackage rec {
     pandas
     astropy
     astropy-helpers
+    h5netcdf
     parfive
     sqlalchemy
     scikitimage
diff --git a/nixpkgs/pkgs/development/python-modules/surepy/default.nix b/nixpkgs/pkgs/development/python-modules/surepy/default.nix
index dd071b5cf08f..ff2b588e4702 100644
--- a/nixpkgs/pkgs/development/python-modules/surepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/surepy/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "surepy";
-  version = "0.5.0";
+  version = "0.6.0";
   format = "pyproject";
   disabled = pythonOlder "3.8";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "benleb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1adsnjya142bxdhfxqsi2qa35ylvdcibigs1wafjlxazlxs3mg0j";
+    sha256 = "sha256-XoYiZPBc9SybyKocui1HqSA+YPiPpbupJWMCfmQT5RU=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -43,11 +43,6 @@ buildPythonPackage rec {
     rich
   ];
 
-  postPatch = ''
-    # halo is out-dated, https://github.com/benleb/surepy/pull/7
-    substituteInPlace pyproject.toml --replace "^0.0.30" "^0.0.31"
-  '';
-
   # Project has no tests
   doCheck = false;
   pythonImportsCheck = [ "surepy" ];
diff --git a/nixpkgs/pkgs/development/python-modules/syncer/default.nix b/nixpkgs/pkgs/development/python-modules/syncer/default.nix
new file mode 100644
index 000000000000..cd3bbf699de2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/syncer/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "syncer";
+  version = "1.3.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "miyakogi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "13y8jllix1ipkcg9lxa4nxk8kj24vivxfizf4d02cdrha9dw500v";
+  };
+
+  # Tests require an not maintained package (xfail)
+  doCheck = false;
+
+  pythonImportsCheck = [ "syncer" ];
+
+  meta = with lib; {
+    description = "Python async to sync converter";
+    homepage = "https://github.com/miyakogi/syncer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tables/default.nix b/nixpkgs/pkgs/development/python-modules/tables/default.nix
index fe49ab4d9ed6..34e9ef087a9b 100644
--- a/nixpkgs/pkgs/development/python-modules/tables/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tables/default.nix
@@ -1,9 +1,26 @@
-{ lib, fetchPypi, python, buildPythonPackage, isPy38
-, cython, bzip2, lzo, numpy, numexpr, hdf5, six, c-blosc, mock }:
+{ lib
+, fetchPypi
+, fetchurl
+, fetchpatch
+, buildPythonPackage
+, pythonOlder
+, python
+, bzip2
+, c-blosc
+, cython
+, hdf5
+, lzo
+, numpy
+, numexpr
+, setuptools
+  # Test inputs
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
-  version = "3.6.1";
   pname = "tables";
+  version = "3.6.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -12,12 +29,33 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ cython ];
 
-  buildInputs = [ hdf5 bzip2 lzo c-blosc ];
-  propagatedBuildInputs = [ numpy numexpr six mock ];
+  buildInputs = [
+    bzip2
+    c-blosc
+    hdf5
+    lzo
+  ];
+  propagatedBuildInputs = [
+    numpy
+    numexpr
+    setuptools  # uses pkg_resources at runtime
+  ];
 
+  patches = [
+    (fetchpatch {
+      # Needed for numpy >= 1.20.0
+      name = "tables-pr-862-use-lowercase-numpy-dtypes.patch";
+      url = "https://github.com/PyTables/PyTables/commit/93a3272b8fe754095637628b4d312400e24ae654.patch";
+      sha256 = "00czgxnm1dxp9763va9xw1nc7dd7kxh9hjcg9klim52519hkbhi4";
+    })
+  ];
   # When doing `make distclean`, ignore docs
   postPatch = ''
     substituteInPlace Makefile --replace "src doc" "src"
+    # Force test suite to error when unittest runner fails
+    substituteInPlace tables/tests/test_suite.py \
+      --replace "return 0" "assert result.wasSuccessful(); return 0" \
+      --replace "return 1" "assert result.wasSuccessful(); return 1"
   '';
 
   # Regenerate C code with Cython
@@ -25,44 +63,29 @@ buildPythonPackage rec {
     make distclean
   '';
 
-  # The setup script complains about missing run-paths, but they are
-  # actually set.
   setupPyBuildFlags = [
     "--hdf5=${lib.getDev hdf5}"
     "--lzo=${lib.getDev lzo}"
     "--bzip2=${lib.getDev bzip2}"
     "--blosc=${lib.getDev c-blosc}"
   ];
-  # Run the test suite.
-  # It requires the build path to be in the python search path.
-  # These tests take quite some time.
-  # If the hdf5 library is built with zlib then there is only one
-  # test-failure. That is the same failure as described in the following
-  # github issue:
-  #     https://github.com/PyTables/PyTables/issues/269
-  checkPhase = ''
-    ${python.interpreter} <<EOF
-    import sysconfig
-    import sys
-    import os
-    f = "lib.{platform}-{version[0]}.{version[1]}"
-    lib = f.format(platform=sysconfig.get_platform(),
-                   version=sys.version_info)
-    build = os.path.join(os.getcwd(), 'build', lib)
-    sys.path.insert(0, build)
-    import tables
-    r = tables.test()
-    if not r.wasSuccessful():
-        sys.exit(1)
-    EOF
+
+  checkInputs = [ pytestCheckHook ];
+  preCheck = ''
+    cd ..
   '';
+  # Runs the test suite as one single test via unittest. The whole "heavy" test suite supposedly takes ~5 hours to run.
+  pytestFlagsArray = [
+    "--pyargs"
+    "tables.tests.test_suite"
+  ];
 
-  # Disable tests until the failure described above is fixed.
-  doCheck = false;
+  pythonImportsCheck = [ "tables" ];
 
   meta = with lib; {
     description = "Hierarchical datasets for Python";
-    homepage = "http://www.pytables.org/";
+    homepage = "https://www.pytables.org/";
     license = licenses.bsd2;
+    maintainers = with maintainers; [ drewrisinger ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tablib/default.nix b/nixpkgs/pkgs/development/python-modules/tablib/default.nix
index 5216fc7d0d92..b6754e15ad5d 100644
--- a/nixpkgs/pkgs/development/python-modules/tablib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tablib/default.nix
@@ -2,6 +2,7 @@
 , odfpy
 , openpyxl
 , pandas
+, setuptools-scm
 , pytest
 , pytestcov
 , pyyaml
@@ -20,6 +21,7 @@ buildPythonPackage rec {
     sha256 = "f83cac08454f225a34a305daa20e2110d5e6335135d505f93bc66583a5f9c10d";
   };
 
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ xlwt openpyxl pyyaml xlrd odfpy ];
   checkInputs = [ pytest pytestcov unicodecsv pandas ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/tappy/default.nix b/nixpkgs/pkgs/development/python-modules/tappy/default.nix
new file mode 100644
index 000000000000..9e0b83bc925d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tappy/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tap.py";
+  version = "3.0";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-9e7u6/1k5T0yZhdSu0wohYmjuru5bbPzkaTsKfE1nHA=";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "tap" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/python-tap/tappy";
+    description = "A set of tools for working with the Test Anything Protocol (TAP) in Python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ sfrijters ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/telfhash/default.nix b/nixpkgs/pkgs/development/python-modules/telfhash/default.nix
index a7aca8866ed7..ddb265bf033a 100644
--- a/nixpkgs/pkgs/development/python-modules/telfhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/telfhash/default.nix
@@ -17,6 +17,8 @@ buildPythonPackage {
     sha256 = "jNu6qm8Q/UyJVaCqwFOPX02xAR5DwvCK3PaH6Fvmakk=";
   };
 
+  patches = [ ./telfhash-new-tlsh-hash.patch ];
+
   # The tlsh library's name is just "tlsh"
   postPatch = ''
     substituteInPlace requirements.txt --replace "python-tlsh" "tlsh"
diff --git a/nixpkgs/pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch b/nixpkgs/pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch
new file mode 100644
index 000000000000..3984a4c1e810
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch
@@ -0,0 +1,30 @@
+diff --git a/telfhash/grouping.py b/telfhash/grouping.py
+index c62f8d9..4ee9f0b 100644
+--- a/telfhash/grouping.py
++++ b/telfhash/grouping.py
+@@ -32,10 +32,10 @@ import tlsh
+ def get_combination(telfhash_data):
+ 
+     #
+-    # TLSH hash is 70 characters long. if the telfhash is not 70
++    # The new TLSH hash is 72 characters long. if the telfhash is not 72
+     # characters in length, exclude from the list
+     #
+-    files_list = [x for x in list(telfhash_data.keys()) if telfhash_data[x]["telfhash"] is not None and len(telfhash_data[x]["telfhash"]) == 70]
++    files_list = [x for x in list(telfhash_data.keys()) if telfhash_data[x]["telfhash"] is not None and len(telfhash_data[x]["telfhash"]) == 72]
+ 
+     #
+     # get the combination of all the possible pairs of filenames
+diff --git a/telfhash/telfhash.py b/telfhash/telfhash.py
+index f2bbd25..c6e346c 100755
+--- a/telfhash/telfhash.py
++++ b/telfhash/telfhash.py
+@@ -132,7 +132,7 @@ def get_hash(symbols_list):
+     symbol_string = ",".join(symbols_list)
+     encoded_symbol_string = symbol_string.encode("ascii")
+ 
+-    return tlsh.forcehash(encoded_symbol_string).lower()
++    return tlsh.forcehash(encoded_symbol_string)
+ 
+ 
+ def elf_get_imagebase(elf):
diff --git a/nixpkgs/pkgs/development/python-modules/tempora/default.nix b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
index 0536b0f2ccd4..734bfc645027 100644
--- a/nixpkgs/pkgs/development/python-modules/tempora/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm, pytest, pytest-freezegun, freezegun, backports_unittest-mock
+, setuptools-scm, pytest, pytest-freezegun, freezegun, backports_unittest-mock
 , six, pytz, jaraco_functools, pythonOlder
 , pytest-flake8, pytestcov, pytest-black, pytest-mypy
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.2";
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ six pytz jaraco_functools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/tenacity/default.nix b/nixpkgs/pkgs/development/python-modules/tenacity/default.nix
index c1c0abcec241..4591677cdf9e 100644
--- a/nixpkgs/pkgs/development/python-modules/tenacity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tenacity/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, isPy27, isPy3k
-, pbr, six, futures ? null, monotonic ? null, typing ? null, setuptools_scm
+, pbr, six, futures ? null, monotonic ? null, typing ? null, setuptools-scm
 , pytest, sphinx, tornado, typeguard
 }:
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "5bd16ef5d3b985647fe28dfa6f695d343aa26479a04e8792b9d3c8f49e361ae1";
   };
 
-  nativeBuildInputs = [ pbr setuptools_scm ];
+  nativeBuildInputs = [ pbr setuptools-scm ];
   propagatedBuildInputs = [ six ]
     ++ lib.optionals isPy27 [ futures monotonic typing ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix
index 7b9cbf1f9900..f5960f0e29ec 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/bin.nix
@@ -30,6 +30,10 @@
 , keras-applications
 , keras-preprocessing
 , addOpenGLRunpath
+, astunparse
+, flatbuffers
+, h5py
+, typing-extensions
 }:
 
 # We keep this binary build for two reasons:
@@ -48,13 +52,14 @@ let
 
   variant = if cudaSupport then "-gpu" else "";
   pname = "tensorflow${variant}";
-
+  metadataPatch = ./relax-dependencies-metadata.patch;
+  patch = ./relax-dependencies.patch;
 in buildPythonPackage {
   inherit pname;
   inherit (packages) version;
   format = "wheel";
 
-  disabled = pythonAtLeast "3.8";
+  disabled = pythonAtLeast "3.9";
 
   src = let
     pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion;
@@ -64,6 +69,9 @@ in buildPythonPackage {
   in fetchurl packages.${key};
 
   propagatedBuildInputs = [
+    astunparse
+    flatbuffers
+    typing-extensions
     protobuf
     numpy
     scipy
@@ -80,6 +88,7 @@ in buildPythonPackage {
     tensorflow-tensorboard_2
     keras-applications
     keras-preprocessing
+    h5py
   ] ++ lib.optional (!isPy3k) mock
     ++ lib.optionals (pythonOlder "3.4") [ backports_weakref ];
 
@@ -93,24 +102,15 @@ in buildPythonPackage {
 
     pushd dist
 
-    # Unpack the wheel file.
     wheel unpack --dest unpacked ./*.whl
-
-    # Tensorflow wheels tightly constrain the versions of gast, tensorflow-estimator and scipy.
-    # This code relaxes these requirements:
-    substituteInPlace ./unpacked/tensorflow*/tensorflow_core/tools/pip_package/setup.py \
-      --replace "tensorflow_estimator >= 2.1.0rc0, < 2.2.0" "tensorflow_estimator" \
-      --replace "tensorboard >= 2.1.0, < 2.2.0" "tensorboard" \
-      --replace "gast == 0.2.2" "gast"  \
-      --replace "scipy == 1.2.2" "scipy"
-
-    substituteInPlace ./unpacked/tensorflow*/tensorflow*.dist-info/METADATA  \
-      --replace "gast (==0.2.2)" "gast" \
-      --replace "tensorflow-estimator (<2.2.0,>=2.1.0rc0)" "tensorflow_estimator" \
-      --replace "tensorboard (<2.2.0,>=2.1.0)" "tensorboard" \
-      --replace "scipy (==1.4.1)" "scipy"
-
-    # Pack the wheel file back up.
+    (
+      cd unpacked/tensorflow*
+      # relax too strict versions in setup.py
+      patch -p 1 < ${patch}
+      cd *.dist-info
+      # relax too strict versions in *.dist-info/METADATA
+      patch -p 3 < ${metadataPatch}
+    )
     wheel pack ./unpacked/tensorflow*
 
     popd
@@ -143,14 +143,19 @@ in buildPythonPackage {
       # TODO: Create this list programmatically, and remove paths that aren't
       # actually needed.
       rrPathArr=(
-        "$out/${python.sitePackages}/tensorflow_core/"
-        "$out/${python.sitePackages}/tensorflow_core/compiler/tf2tensorrt/"
-        "$out/${python.sitePackages}/tensorflow_core/compiler/tf2xla/ops/"
-        "$out/${python.sitePackages}/tensorflow_core/lite/experimental/microfrontend/python/ops/"
-        "$out/${python.sitePackages}/tensorflow_core/lite/python/interpreter_wrapper/"
-        "$out/${python.sitePackages}/tensorflow_core/lite/python/optimize/"
-        "$out/${python.sitePackages}/tensorflow_core/python/"
-        "$out/${python.sitePackages}/tensorflow_core/python/framework/"
+        "$out/${python.sitePackages}/tensorflow/"
+        "$out/${python.sitePackages}/tensorflow/core/kernels"
+        "$out/${python.sitePackages}/tensorflow/compiler/tf2tensorrt/"
+        "$out/${python.sitePackages}/tensorflow/compiler/tf2xla/ops/"
+        "$out/${python.sitePackages}/tensorflow/lite/experimental/microfrontend/python/ops/"
+        "$out/${python.sitePackages}/tensorflow/lite/python/interpreter_wrapper/"
+        "$out/${python.sitePackages}/tensorflow/lite/python/optimize/"
+        "$out/${python.sitePackages}/tensorflow/python/"
+        "$out/${python.sitePackages}/tensorflow/python/framework/"
+        "$out/${python.sitePackages}/tensorflow/python/autograph/impl/testing"
+        "$out/${python.sitePackages}/tensorflow/python/data/experimental/service"
+        "$out/${python.sitePackages}/tensorflow/python/framework"
+        "$out/${python.sitePackages}/tensorflow/python/profiler/internal"
         "${rpath}"
       )
 
@@ -189,8 +194,5 @@ in buildPythonPackage {
     license = licenses.asl20;
     maintainers = with maintainers; [ jyp abbradar cdepillabout ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    # Python 2.7 build uses different string encoding.
-    # See https://github.com/NixOS/nixpkgs/pull/37044#issuecomment-373452253
-    broken = stdenv.isDarwin && !isPy3k;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix
index 90848e93273f..4485e2b61451 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/binary-hashes.nix
@@ -1,51 +1,39 @@
 {
-version = "2.1.0";
-linux_py_27_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.1.0-cp27-cp27mu-manylinux2010_x86_64.whl";
-  sha256 = "17lnhr7vdrls68c79n3sah5rpd0q1x2v5m84azvlyxxh2wpypfmb";
-};
-linux_py_27_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.1.0-cp27-cp27mu-manylinux2010_x86_64.whl";
-  sha256 = "10lz3i4pcpgqrcbjmxm0n7k1gsqlpna3kdid902j2fy060cpi93z";
+version = "2.4.0";
+linux_py_36_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp36-cp36m-manylinux2010_x86_64.whl";
+  sha256 = "0pn0cjf50q0xsv6k0vihrz22kr392anznvdhxv80gk52c6lcgmsc";
 };
-linux_py_35_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.1.0-cp35-cp35m-manylinux2010_x86_64.whl";
-  sha256 = "09s081n08dpmflwgir3zwzfijfpmahbh2gy5fn5bv5ll86g1szsy";
+linux_py_37_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp37-cp37m-manylinux2010_x86_64.whl";
+  sha256 = "0mdd83c0invqfy58qmpa3hk4yml5ic7wlwggyd5wpikadlv8vq89";
 };
-linux_py_35_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.1.0-cp35-cp35m-manylinux2010_x86_64.whl";
-  sha256 = "1aa7v9fnvx03hqvhl3x3xcn41qy6qxw5xybg54ifjvvicp455c8l";
+linux_py_38_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp38-cp38-manylinux2010_x86_64.whl";
+  sha256 = "1mm1yz9aj3v6fxfpxh7wy37rvsncr0b5y6glqlcxmhr6mqfp8k6d";
 };
 linux_py_36_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.1.0-cp36-cp36m-manylinux2010_x86_64.whl";
-  sha256 = "1dqp080ljbl9v3115vjp63ls0fimiwym6zxyanyhrlk8kwsq20zc";
-};
-linux_py_36_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.1.0-cp36-cp36m-manylinux2010_x86_64.whl";
-  sha256 = "133z8anx7xm9rr5i9s9dwnp1wf06nr6s7q1lbs4lxpk6kn9nl480";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp36-cp36m-manylinux2010_x86_64.whl";
+  sha256 = "113iygiq2kmj97g0glhcqng6rhl3rrj1iqw5xj1d5hla8xjy8cfv";
 };
 linux_py_37_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.1.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "0yabl3xmcpr67w0zksqs3qc68nl9ax0vcd7w7b35nq8f65xl0ghy";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp37-cp37m-manylinux2010_x86_64.whl";
+  sha256 = "19ap8xx2j5nbmnqv5rzf1ryfvw2fbs6bm0fxjqrvhc3jxys6yqqs";
 };
-linux_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.1.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "04gngbngyg7p1gwx1q89my0cl8j7lq4kknqh51s2ynrix71zvsy6";
-};
-mac_py_27_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.1.0-cp27-cp27m-macosx_10_9_x86_64.whl";
-  sha256 = "1mprp72w5kk0lyjm2mh4lf57827xk3wsg28c4gizwm00ydfgacg6";
-};
-mac_py_35_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.1.0-cp35-cp35m-macosx_10_6_intel.whl";
-  sha256 = "1as7brf5ai6r7v1di9646jfrbnirpk2b0d1g29mn3shavb62kw8w";
+linux_py_38_gpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp38-cp38-manylinux2010_x86_64.whl";
+  sha256 = "0ly3cinzj6j3b547sw8bd3p774khn3b14cgrj7nvfrz668d3f89x";
 };
 mac_py_36_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl";
-  sha256 = "1v1rw9kjrskhcq1yas4ly2yfnzf2i1pjh6qg6zixfbkpkw7sw3wc";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp36-cp36m-macosx_10_14_x86_64.whl";
+  sha256 = "1b5ld1wj48l1i5s3vk8db5m578zdg4xfl0m1lc8w5lx1vi4cwsjp";
 };
 mac_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl";
-  sha256 = "1hh4n0d97mrq35cmmsrnlmcv9vlswsyjy368lj3pda3y9dvck3rf";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp37-cp37m-macosx_10_14_x86_64.whl";
+  sha256 = "1mgfyjgcwvx5jzawrpfnbch5sqw7kpnzp35rfxj22kwdsl28r47r";
+};
+mac_py_38_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp38-cp38-macosx_10_14_x86_64.whl";
+  sha256 = "034qh0nk786wxzma58179g086x479c3pd9vi8v8p26grs6f2fm0p";
 };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
index 0216c05eeacf..bbdecc8bdcdf 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/default.nix
@@ -72,7 +72,7 @@ let
 
   tfFeature = x: if x then "1" else "0";
 
-  version = "2.4.0";
+  version = "2.4.1";
   variant = if cudaSupport then "-gpu" else "";
   pname = "tensorflow${variant}";
 
@@ -110,7 +110,7 @@ let
       owner = "tensorflow";
       repo = "tensorflow";
       rev = "v${version}";
-      sha256 = "0yl06aypfxrcs35828xf04mkidz1x0j89v0q5h4d2xps1cb5rv3f";
+      sha256 = "sha256-J62QfP45g5nxN9Nqa1tAGyc4vD2JKh50ddHLrd6/qsY=";
     };
 
     patches = [
@@ -288,9 +288,9 @@ let
     fetchAttrs = {
       # cudaSupport causes fetch of ncclArchive, resulting in different hashes
       sha256 = if cudaSupport then
-        "1i7z2a7bc2q1vn1h9nx1xc6g1r1cby2xvbcs20fj9h6c2fgaw9j4"
+        "10m6qj3kchgxfgb6qh59vc51knm9r9pkng8bf90h00dnggvv8234"
       else
-        "0s8q5rxq8abr50c5jpwv96ncfc0k8jw7w70ri8viqy031g9v9v45";
+        "04a98yrp09nd0p17k0jbzkgjppxs0yma7m5zkfrwgvr4g0w71v68";
     };
 
     buildAttrs = {
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh b/nixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh
index abb0faac2834..8b22affa17a8 100755
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/prefetcher.sh
@@ -1,23 +1,22 @@
 #!/usr/bin/env bash
 
-version=2.1.0
+version="2.4.0"
+
+bucket="https://storage.googleapis.com/tensorflow"
 
 # List of binary wheels for Tensorflow.  The most recent versions can be found
 # on the following page:
 # https://www.tensorflow.org/install/pip?lang=python3#package-location
 url_and_key_list=(
-  "linux_py_27_gpu https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-${version}-cp27-cp27mu-manylinux2010_x86_64.whl"
-  "linux_py_27_cpu https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-${version}-cp27-cp27mu-manylinux2010_x86_64.whl"
-  "linux_py_35_gpu https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-${version}-cp35-cp35m-manylinux2010_x86_64.whl"
-  "linux_py_35_cpu https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-${version}-cp35-cp35m-manylinux2010_x86_64.whl"
-  "linux_py_36_gpu https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-${version}-cp36-cp36m-manylinux2010_x86_64.whl"
-  "linux_py_36_cpu https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-${version}-cp36-cp36m-manylinux2010_x86_64.whl"
-  "linux_py_37_gpu https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
-  "linux_py_37_cpu https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
-  "mac_py_27_cpu https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-${version}-cp27-cp27m-macosx_10_9_x86_64.whl"
-  "mac_py_35_cpu https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-${version}-cp35-cp35m-macosx_10_6_intel.whl"
-  "mac_py_36_cpu https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-${version}-cp36-cp36m-macosx_10_9_x86_64.whl"
-  "mac_py_37_cpu https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_9_x86_64.whl"
+"linux_py_36_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp36-cp36m-manylinux2010_x86_64.whl"
+"linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
+"linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
+"linux_py_36_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp36-cp36m-manylinux2010_x86_64.whl"
+"linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
+"linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
+"mac_py_36_cpu $bucket/mac/cpu/tensorflow-${version}-cp36-cp36m-macosx_10_14_x86_64.whl"
+"mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_14_x86_64.whl"
+"mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_14_x86_64.whl"
 )
 
 hashfile=binary-hashes.nix
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch b/nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch
new file mode 100644
index 000000000000..1be4fd5bc7d5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch
@@ -0,0 +1,46 @@
+diff -ur unpacked/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA unpacked.new/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA
+--- unpacked/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA	2021-05-06 23:51:40.298995191 -0700
++++ unpacked.new/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA	2021-05-07 00:03:49.856882153 -0700
+@@ -27,24 +27,24 @@
+ Classifier: Topic :: Software Development :: Libraries
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
+ Description-Content-Type: text/markdown
+-Requires-Dist: absl-py (~=0.10)
+-Requires-Dist: astunparse (~=1.6.3)
+-Requires-Dist: flatbuffers (~=1.12.0)
+-Requires-Dist: google-pasta (~=0.2)
+-Requires-Dist: h5py (~=2.10.0)
+-Requires-Dist: keras-preprocessing (~=1.1.2)
+-Requires-Dist: numpy (~=1.19.2)
+-Requires-Dist: opt-einsum (~=3.3.0)
+-Requires-Dist: protobuf (>=3.9.2)
+-Requires-Dist: six (~=1.15.0)
+-Requires-Dist: termcolor (~=1.1.0)
+-Requires-Dist: typing-extensions (~=3.7.4)
+-Requires-Dist: wheel (~=0.35)
+-Requires-Dist: wrapt (~=1.12.1)
+-Requires-Dist: gast (==0.3.3)
+-Requires-Dist: tensorboard (~=2.4)
+-Requires-Dist: tensorflow-estimator (<2.5.0,>=2.4.0rc0)
+-Requires-Dist: grpcio (~=1.32.0)
++Requires-Dist: absl-py
++Requires-Dist: astunparse
++Requires-Dist: flatbuffers
++Requires-Dist: google-pasta
++Requires-Dist: h5py
++Requires-Dist: keras-preprocessing
++Requires-Dist: numpy
++Requires-Dist: opt-einsum
++Requires-Dist: protobuf
++Requires-Dist: six
++Requires-Dist: termcolor
++Requires-Dist: typing-extensions
++Requires-Dist: wheel
++Requires-Dist: wrapt
++Requires-Dist: gast
++Requires-Dist: tensorboard
++Requires-Dist: tensorflow-estimator
++Requires-Dist: grpcio
+ 
+ [![Python](https://img.shields.io/pypi/pyversions/tensorflow.svg?style=plastic)](https://badge.fury.io/py/tensorflow)
+ [![PyPI](https://badge.fury.io/py/tensorflow.svg)](https://badge.fury.io/py/tensorflow)
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/python-modules/tern/0001-Replace-debut-with-debian-inspector.patch b/nixpkgs/pkgs/development/python-modules/tern/0001-Replace-debut-with-debian-inspector.patch
new file mode 100644
index 000000000000..c9cb8b4a5281
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tern/0001-Replace-debut-with-debian-inspector.patch
@@ -0,0 +1,40 @@
+From d944d8fa6cb6d1667f3e4c4e0cff4c4b2a7c0a30 Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Fri, 7 May 2021 11:00:46 -0700
+Subject: [PATCH] Replace `debut` with `debian-inspector`
+
+---
+ requirements.in        | 2 +-
+ tern/analyze/common.py | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/requirements.in b/requirements.in
+index edd90ab..5135841 100644
+--- a/requirements.in
++++ b/requirements.in
+@@ -12,6 +12,6 @@ requests
+ stevedore
+ pbr
+ dockerfile-parse
+-debut
++debian-inspector
+ regex
+ GitPython
+diff --git a/tern/analyze/common.py b/tern/analyze/common.py
+index 6962404..0f5e77d 100644
+--- a/tern/analyze/common.py
++++ b/tern/analyze/common.py
+@@ -19,8 +19,8 @@ from tern.utils import cache
+ from tern.utils import constants
+ from tern.utils import general
+ from tern.utils import rootfs
+-from debut import debcon
+-from debut import copyright as debut_copyright
++from debian_inspector import debcon
++from debian_inspector import copyright as debut_copyright
+ 
+ # global logger
+ logger = logging.getLogger(constants.logger_name)
+-- 
+2.31.1
+
diff --git a/nixpkgs/pkgs/development/python-modules/tern/default.nix b/nixpkgs/pkgs/development/python-modules/tern/default.nix
index 6247087dd670..7eb889c873a8 100644
--- a/nixpkgs/pkgs/development/python-modules/tern/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tern/default.nix
@@ -7,7 +7,7 @@
 , requests
 , stevedore
 , pbr
-, debut
+, debian-inspector
 , regex
 , GitPython
 , prettytable
@@ -22,6 +22,14 @@ buildPythonPackage rec {
     sha256 = "606c62944991b2cbcccf3f5353be693305d6d7d318c3865b9ecca49dbeab2727";
   };
 
+  patches = [
+    # debut was renamed to debian-inspector
+    # https://github.com/tern-tools/tern/pull/962
+    # NOTE: Has to be in-tree because the upstream patch doesn't apply cleanly
+    # to the PyPi source.
+    ./0001-Replace-debut-with-debian-inspector.patch
+  ];
+
   preBuild = ''
     cp requirements.{in,txt}
   '';
@@ -36,7 +44,7 @@ buildPythonPackage rec {
     dockerfile-parse
     requests
     stevedore
-    debut
+    debian-inspector
     regex
     GitPython
     prettytable
diff --git a/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
index 59af2b33d2b9..750b070804c3 100644
--- a/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -1,10 +1,12 @@
 { lib
 , aiohttp
+, authcaptureproxy
 , backoff
 , beautifulsoup4
 , buildPythonPackage
 , fetchFromGitHub
 , fetchpatch
+, poetry-core
 , pytest-asyncio
 , pytestCheckHook
 , wrapt
@@ -12,24 +14,22 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "0.11.5";
+  version = "0.18.3";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "zabuldon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-s0IZ1UNldYddaR3zJoYS6ey8Kjxd1fr4fOwf0gNNbow=";
+    sha256 = "1hdc5gm6dg1vw6qfs3z6mg2m94scrvjphj0lin6pi8n3zqj1h26k";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "dont-use-dummpy-module-bs4.patch";
-      url = "https://github.com/zabuldon/teslajsonpy/pull/138/commits/f5a788e47d8338c8ebb06d954f802ba1ec614db3.patch";
-      sha256 = "0rws7fhxmca8d5w0bkygx8scvzah3yvb3yfhn05qmp73mn3pmcb3";
-    })
+  nativeBuildInputs = [
+    poetry-core
   ];
 
   propagatedBuildInputs = [
+    authcaptureproxy
     aiohttp
     backoff
     beautifulsoup4
diff --git a/nixpkgs/pkgs/development/python-modules/textacy/default.nix b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
index 31b02e3f2641..5c8928a385d4 100644
--- a/nixpkgs/pkgs/development/python-modules/textacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
@@ -1,59 +1,67 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
+{ lib
+, buildPythonPackage
 , cachetools
 , cytoolz
+, fetchPypi
 , jellyfish
+, joblib
 , matplotlib
 , networkx
 , numpy
 , pyemd
 , pyphen
-, pytest
+, pytestCheckHook
+, pythonOlder
 , requests
-, scikitlearn
+, scikit-learn
 , scipy
 , spacy
-, srsly
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "textacy";
-  version = "0.10.1";
-  disabled = isPy27;
+  version = "0.11.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff72adc6dbb85db6981324e226fff77830da57d7fe7e4adb2cafd9dc2a8bfa7d";
+    sha256 = "sha256-d/tyTCewoERA15iBv4H2LORFzgco15fnnN1sneeGuF4=";
   };
 
   propagatedBuildInputs = [
     cachetools
     cytoolz
     jellyfish
+    joblib
     matplotlib
     networkx
     numpy
     pyemd
     pyphen
     requests
-    scikitlearn
+    scikit-learn
     scipy
     spacy
-    srsly
+    tqdm
   ];
 
-  checkInputs = [ pytest ];
-  # almost all tests have to deal with downloading a dataset, only test pure tests
-  checkPhase = ''
-    pytest tests/test_text_utils.py \
-      tests/test_utils.py \
-      tests/preprocessing \
-      tests/datasets/test_base_dataset.py
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    # Almost all tests have to deal with downloading a dataset, only test pure tests
+    "tests/test_constants.py"
+    "tests/preprocessing/test_normalize.py"
+    "tests/similarity/test_edits.py"
+    "tests/preprocessing/test_resources.py"
+    "tests/preprocessing/test_replace.py"
+  ];
+
+  pythonImportsCheck = [ "textacy" ];
 
   meta = with lib; {
-    # scikit-learn in pythonPackages is too new for textacy
-    # remove as soon as textacy support scikit-learn >= 0.24
-    broken = true;
     description = "Higher-level text processing, built on spaCy";
     homepage = "https://textacy.readthedocs.io/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/textdistance/default.nix b/nixpkgs/pkgs/development/python-modules/textdistance/default.nix
new file mode 100644
index 000000000000..d4a71dd99628
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/textdistance/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "textdistance";
+  version = "4.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "114j3ignw4y9yq1cp08p4bfw518vyr3p0h8ba2mikwy74qxxzy26";
+  };
+
+  # There aren't tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "textdistance" ];
+
+  meta = with lib; {
+    description = "Python library for comparing distance between two or more sequences";
+    homepage = "https://github.com/life4/textdistance";
+    license = licenses.mit;
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/thinc/default.nix b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
index a92d349e9928..4aac0d756d46 100644
--- a/nixpkgs/pkgs/development/python-modules/thinc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "8.0.2";
+  version = "8.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20f033b3d9fbd02389d8f828cebcd3a42aee3e17ed4c2d56c6d5163af83a9cee";
+    hash = "sha256-w3CnpG0BtYjY1fmdjV42s8usRRJjg1b6Qw9/Urs6iJc=";
   };
 
   buildInputs = [ cython ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
diff --git a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
index ddfa83e30f58..bdd6ad241158 100644
--- a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
@@ -8,7 +8,7 @@
 , numpy
 , wheel
 , isPy3k
-, setuptools_scm
+, setuptools-scm
 , psutil
 , pandas
 }:
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     cython
     pybind11
-    setuptools_scm
+    setuptools-scm
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tilequant/default.nix b/nixpkgs/pkgs/development/python-modules/tilequant/default.nix
new file mode 100644
index 000000000000..90caab8ebef8
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tilequant/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, GitPython, click, ordered-set, pillow, sortedcollections }:
+
+let
+  aikku93-tilequant = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = "aikku93-tilequant";
+    rev = "6604e0906edff384b6c8d4cde03e6601731f66fd";
+    sha256 = "0w19h3n2i0xriqsy0b0rifjgbv4hqd7gl78fw0cappkrdykij5r1";
+  };
+in
+buildPythonPackage rec {
+  pname = "tilequant";
+  version = "0.4.0.post0";
+
+  src = fetchFromGitHub {
+    owner = "SkyTemple";
+    repo = pname;
+    rev = version;
+    sha256 = "189af203iay3inj1bbgm3hh1fshn879bcm28ypbvfp27fy7j5b25";
+  };
+
+  postPatch = ''
+    cp -R --no-preserve=mode ${aikku93-tilequant} __aikku93_tilequant
+  '';
+
+  buildInputs = [ GitPython ];
+  propagatedBuildInputs = [ click ordered-set pillow sortedcollections ];
+
+  doCheck = false; # there are no tests
+  pythonImportsCheck = [ "skytemple_tilequant" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/SkyTemple/tilequant";
+    description = "Tool for quantizing image colors using tile-based palette restrictions";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ xfix ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/timeago/default.nix b/nixpkgs/pkgs/development/python-modules/timeago/default.nix
new file mode 100644
index 000000000000..0c2a688f674e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/timeago/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "timeago";
+  version = "1.0.15";
+
+  src = fetchFromGitHub {
+    owner = "hustcc";
+    repo = pname;
+    rev = version;
+    sha256 = "03vm7c02l4g2d1x33w382i1psk8i3an7xchk69yinha33fjj1cag";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "test/testcase.py" ];
+
+  pythonImportsCheck = [ "timeago" ];
+
+  meta = with lib; {
+    description = "Python module to format past datetime output";
+    homepage = "https://github.com/hustcc/timeago";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tld/default.nix b/nixpkgs/pkgs/development/python-modules/tld/default.nix
index 13f23edaad15..ed601a2620c8 100644
--- a/nixpkgs/pkgs/development/python-modules/tld/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tld/default.nix
@@ -26,6 +26,12 @@ buildPythonPackage rec {
     tox
   ];
 
+  # these tests require network access, but disabledTestPaths doesn't work.
+  # the file needs to be `import`ed by another python test file, so it
+  # can't simply be removed.
+  preCheck = ''
+    echo > src/tld/tests/test_commands.py
+  '';
   pythonImportsCheck = [ "tld" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/tls-parser/default.nix b/nixpkgs/pkgs/development/python-modules/tls-parser/default.nix
index 5b6bfe6a0e28..ad35fe501282 100644
--- a/nixpkgs/pkgs/development/python-modules/tls-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tls-parser/default.nix
@@ -1,5 +1,5 @@
 { lib
-, isPy27
+, pythonOlder
 , fetchFromGitHub
 , buildPythonPackage
 , pytestCheckHook
@@ -8,7 +8,7 @@
 buildPythonPackage rec {
   pname = "tls-parser";
   version = "1.2.2";
-  disabled = isPy27;
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
@@ -19,6 +19,8 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "tls_parser" ];
+
   meta = with lib; {
     homepage = "https://github.com/nabla-c0d3/tls_parser";
     description = "Small library to parse TLS records";
diff --git a/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix b/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
index d7eece650026..d8225e7031ea 100644
--- a/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
@@ -1,54 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi, pythonAtLeast, pythonOlder
-, click
-, click-completion
-, factory_boy
-, faker
-, inquirer
-, notify-py
-, pbr
-, pendulum
-, ptable
-, pytest
-, pytestcov
-, pytest-mock
-, requests
-, twine
-, validate-email
-}:
-
+{ lib, buildPythonPackage, fetchPypi, pythonAtLeast, pythonOlder, click
+, click-completion, factory_boy, faker, inquirer, notify-py, pbr, pendulum
+, ptable, pytestCheckHook, pytestcov, pytest-mock, requests, twine
+, validate-email }:
 
 buildPythonPackage rec {
   pname = "toggl-cli";
-  version = "2.4.1";
+  version = "2.4.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     pname = "togglCli";
     inherit version;
-    sha256 = "19lry8adcznzmzbvghyid3yl4j05db6931bw38af5vrkkyzyf62i";
+    sha256 = "1wgh231r16jyvaj1ch1pajvl9szflb4srs505pfdwdlqvz7rzww8";
   };
 
   postPatch = ''
-   substituteInPlace requirements.txt \
-     --replace "inquirer==2.6.3" "inquirer>=2.6.3" \
-     --replace "notify-py==0.2.2" "notify-py>=0.2.2"
+    substituteInPlace requirements.txt \
+      --replace "notify-py==0.3.1" "notify-py>=0.3.1"
   '';
 
   nativeBuildInputs = [ pbr twine ];
-  checkInputs = [ pbr pytest pytestcov pytest-mock faker factory_boy ];
+  checkInputs = [ pbr pytestCheckHook pytestcov pytest-mock faker factory_boy ];
 
   preCheck = ''
     export TOGGL_API_TOKEN=your_api_token
     export TOGGL_PASSWORD=toggl_password
     export TOGGL_USERNAME=user@example.com
-    '';
-
-  checkPhase = ''
-   runHook preCheck
-   pytest -k "not premium and not TestDateTimeType and not TestDateTimeField" tests/unit --maxfail=20
-   runHook postCheck
   '';
 
+  disabledTests = [
+    "integration"
+    "premium"
+    "test_parsing"
+    "test_type_check"
+    "test_now"
+  ];
+
   propagatedBuildInputs = [
     click
     click-completion
diff --git a/nixpkgs/pkgs/development/python-modules/token-bucket/default.nix b/nixpkgs/pkgs/development/python-modules/token-bucket/default.nix
new file mode 100644
index 000000000000..ac614d53fd5a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/token-bucket/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestrunner
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "token-bucket";
+  version = "0.2.0";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "falconry";
+    repo = pname;
+    rev = version;
+    sha256 = "0kv8j2ab4knvzik2di66bgjwjxdslm2i0hjy35kn9z0dazni585s";
+  };
+
+  nativeBuildInputs = [
+    pytestrunner
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Token Bucket Implementation for Python Web Apps";
+    homepage = "https://github.com/falconry/token-bucket";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
index 348302a59c55..544dbf1beafc 100644
--- a/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
@@ -49,19 +49,19 @@ let
   };
 in buildPythonPackage rec {
   pname = "tokenizers";
-  version = "0.10.1";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "python-v${version}";
-    hash = "sha256-N/dKjQwHKmJnB76q8ISQ3cjuW0Z4GqGavnFFx/w9JRQ=";
+    hash = "sha256-X7aUiJJjB2ZDlE8LbK7Pn/15SLTZbP8kb4l9ED7/xvU=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src sourceRoot;
     name = "${pname}-${version}";
-    hash = "sha256-3ICSjtiRfLOj+PXu6mcuDoAtod5uXAcabYWTLxEgI18=";
+    hash = "sha256-gRqxlL6q87sGC0birDhCmGF+CVbfxwOxW6Tl6+5mGoo=";
   };
 
   sourceRoot = "source/bindings/python";
@@ -76,15 +76,12 @@ in buildPythonPackage rec {
     numpy
   ];
 
-  installCheckInputs = [
+  checkInputs = [
     datasets
     pytestCheckHook
     requests
   ];
 
-  doCheck = false;
-  doInstallCheck = true;
-
   postUnpack = ''
     # Add data files for tests, otherwise tests attempt network access.
     mkdir $sourceRoot/tests/data
diff --git a/nixpkgs/pkgs/development/python-modules/torchvision/bin.nix b/nixpkgs/pkgs/development/python-modules/torchvision/bin.nix
new file mode 100644
index 000000000000..62980dcca8c4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/torchvision/bin.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchurl
+, isPy37
+, isPy38
+, isPy39
+, patchelf
+, pillow
+, python
+, pytorch-bin
+}:
+
+let
+  pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
+  srcs = import ./binary-hashes.nix version;
+  unsupported = throw "Unsupported system";
+  version = "0.9.1";
+in buildPythonPackage {
+  inherit version;
+
+  pname = "torchvision";
+
+  format = "wheel";
+
+  src = fetchurl srcs."${stdenv.system}-${pyVerNoDot}" or unsupported;
+
+  disabled = !(isPy37 || isPy38 || isPy39);
+
+  nativeBuildInputs = [
+    patchelf
+  ];
+
+  propagatedBuildInputs = [
+    pillow
+    pytorch-bin
+  ];
+
+  pythonImportsCheck = [ "torchvision" ];
+
+  postFixup = let
+    rpath = lib.makeLibraryPath [ stdenv.cc.cc.lib ];
+  in ''
+    # Note: after patchelf'ing, libcudart can still not be found. However, this should
+    #       not be an issue, because PyTorch is loaded before torchvision and brings
+    #       in the necessary symbols.
+    patchelf --set-rpath "${rpath}:${pytorch-bin}/${python.sitePackages}/torch/lib:" \
+      "$out/${python.sitePackages}/torchvision/_C.so"
+  '';
+
+  meta = with lib; {
+    description = "PyTorch vision library";
+    homepage = "https://pytorch.org/";
+    changelog = "https://github.com/pytorch/vision/releases/tag/v${version}";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix
new file mode 100644
index 000000000000..b9a991e24abb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/torchvision/binary-hashes.nix
@@ -0,0 +1,22 @@
+# Warning: use the same CUDA version as pytorch-bin.
+#
+# Precompiled wheels can be found at:
+# https://download.pytorch.org/whl/torch_stable.html
+
+version: {
+  x86_64-linux-37 = {
+    name = "torchvision-${version}-cp37-cp37m-linux_x86_64.whl";
+    url = "https://download.pytorch.org/whl/cu111/torchvision-${version}%2Bcu111-cp37-cp37m-linux_x86_64.whl";
+    hash = "sha256-7EMVB8KZg2I3P4RqnIVk/7OOAPA1OWOipns58cSCUrw=";
+  };
+  x86_64-linux-38 = {
+    name = "torchvision-${version}-cp38-cp38-linux_x86_64.whl";
+    url = "https://download.pytorch.org/whl/cu111/torchvision-${version}%2Bcu111-cp38-cp38-linux_x86_64.whl";
+    hash = "sha256-VjsCBW9Lusr4aDQLqaFh5dpV/5ZJ5PDs7nY4CbCHDTA=";
+  };
+  x86_64-linux-39 = {
+    name = "torchvision-${version}-cp39-cp39-linux_x86_64.whl";
+    url = "https://download.pytorch.org/whl/cu111/torchvision-${version}%2Bcu111-cp39-cp39-linux_x86_64.whl";
+    hash = "sha256-pzR7TBE+WcAmozskoeOVBuMkGJf9tvsaXsUkTcu86N8=";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tox/default.nix b/nixpkgs/pkgs/development/python-modules/tox/default.nix
index 0fc0ffbf2e72..a90b3dcfdf14 100644
--- a/nixpkgs/pkgs/development/python-modules/tox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tox/default.nix
@@ -6,7 +6,7 @@
 , py
 , six
 , virtualenv
-, setuptools_scm
+, setuptools-scm
 , toml
 , filelock
 }:
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   pname = "tox";
   version = "3.23.0";
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ packaging pluggy py six virtualenv toml filelock ];
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
index ae89b3ee0b07..b941727189ea 100644
--- a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytestCheckHook
 , pytest-asyncio
 , pytest-timeout
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/treq/default.nix b/nixpkgs/pkgs/development/python-modules/treq/default.nix
index ec648281c89a..8bfbd534f578 100644
--- a/nixpkgs/pkgs/development/python-modules/treq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/treq/default.nix
@@ -51,6 +51,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/twisted/treq";
     description = "A requests-like API built on top of twisted.web's Agent";
     license = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/trollius/default.nix b/nixpkgs/pkgs/development/python-modules/trollius/default.nix
deleted file mode 100644
index 019326c54217..000000000000
--- a/nixpkgs/pkgs/development/python-modules/trollius/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, mock, unittest2, six, futures }:
-
-buildPythonPackage rec {
-  pname = "trollius";
-  version = "2.2.post1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "06s44k6pcq35vl5j4i2pgkpb848djal818qypcvx44gyn4azjrqn";
-  };
-
-  checkInputs = [ mock ] ++ lib.optional (!isPy3k) unittest2;
-
-  propagatedBuildInputs = [ six ] ++ lib.optional (!isPy3k) futures;
-
-  patches = [
-    ./tests.patch
-  ];
-
-  disabled = isPy3k;
-
-  postPatch = ''
-    # Overrides PYTHONPATH causing dependencies not to be found
-    sed -i -e "s|test_env_var_debug|skip_test_env_var_debug|g" tests/test_tasks.py
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Some of the tests fail on darwin with `error: AF_UNIX path too long'
-    # because of the *long* path names for sockets
-    sed -i -e "s|test_create_ssl_unix_connection|skip_test_create_ssl_unix_connection|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server_existing_path_nonsock|skip_test_create_unix_server_existing_path_nonsock|g" tests/test_unix_events.py
-    sed -i -e "s|test_create_unix_server_existing_path_sock|skip_test_create_unix_server_existing_path_sock|g" tests/test_unix_events.py
-    sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|g" tests/test_events.py
-    sed -i -e "s|test_open_unix_connection_error|skip_test_open_unix_connection_error|g" tests/test_streams.py
-    sed -i -e "s|test_open_unix_connection_no_loop_ssl|skip_test_open_unix_connection_no_loop_ssl|g" tests/test_streams.py
-    sed -i -e "s|test_open_unix_connection|skip_test_open_unix_connection|g" tests/test_streams.py
-    sed -i -e "s|test_pause_reading|skip_test_pause_reading|g" tests/test_subprocess.py
-    sed -i -e "s|test_read_pty_output|skip_test_read_pty_output|g" tests/test_events.py
-    sed -i -e "s|test_start_unix_server|skip_test_start_unix_server|g" tests/test_streams.py
-    sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|g" tests/test_events.py
-    sed -i -e "s|test_write_pty|skip_test_write_pty|g" tests/test_events.py
-  '';
-
-  meta = with lib; {
-    description = "Port of the asyncio project to Python 2.7";
-    homepage = "https://github.com/vstinner/trollius";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/trollius/tests.patch b/nixpkgs/pkgs/development/python-modules/trollius/tests.patch
deleted file mode 100644
index 4923bded9493..000000000000
--- a/nixpkgs/pkgs/development/python-modules/trollius/tests.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git i/tests/test_asyncio.py w/tests/test_asyncio.py
-index 39d9e1a..05b7e6f 100644
---- i/tests/test_asyncio.py
-+++ w/tests/test_asyncio.py
-@@ -69,7 +69,7 @@ class AsyncioTests(test_utils.TestCase):
-             def step_future():
-                 future = asyncio.Future()
-                 self.loop.call_soon(future.set_result, "asyncio.Future")
--                return (yield from future)
-+                return (yield From(future))
- 
-             # test in release mode
-             trollius.coroutines._DEBUG = False
diff --git a/nixpkgs/pkgs/development/python-modules/ttp/default.nix b/nixpkgs/pkgs/development/python-modules/ttp/default.nix
new file mode 100644
index 000000000000..6a557a1eff53
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ttp/default.nix
@@ -0,0 +1,96 @@
+{ lib
+, buildPythonPackage
+, callPackage
+, fetchFromGitHub
+, cerberus
+, configparser
+, deepdiff
+, geoip2
+, jinja2
+, openpyxl
+, tabulate
+, yangson
+, pytestCheckHook
+, pyyaml
+}:
+
+let
+  ttp_templates = callPackage ./templates.nix { };
+in
+buildPythonPackage rec {
+  pname = "ttp";
+  version = "0.7.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "dmulyalin";
+    repo = pname;
+    rev = version;
+    sha256 = "1fmg5gz297bpr550s4vfq6vs7j042bp1mrdmqz1b7nz29c2khbz6";
+  };
+
+  propagatedBuildInputs = [
+    # https://github.com/dmulyalin/ttp/blob/master/docs/source/Installation.rst#additional-dependencies
+    cerberus
+    configparser
+    deepdiff
+    geoip2
+    jinja2
+    # n2g unpackaged
+    # netmiko unpackaged
+    # nornir unpackaged
+    openpyxl
+    tabulate
+    yangson
+  ];
+
+  pythonImportsCheck = [
+    "ttp"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pyyaml
+    ttp_templates
+  ];
+
+  disabledTestPaths = [
+    # missing package n2g
+    "test/pytest/test_N2G_formatter.py"
+  ];
+
+  disabledTests = [
+    # data structure mismatches
+    "test_yangson_validate"
+    "test_yangson_validate_yang_lib_in_output_tag_data"
+    "test_yangson_validate_multiple_inputs_mode_per_input_with_yang_lib_in_file"
+    "test_yangson_validate_multiple_inputs_mode_per_template"
+    "test_yangson_validate_multiple_inputs_mode_per_input_with_yang_lib_in_file_to_xml"
+    "test_yangson_validate_multiple_inputs_mode_per_template_to_xml"
+    "test_adding_data_from_files"
+    "test_lookup_include_csv"
+    "test_inputs_with_template_base_path"
+    "test_group_inputs"
+    "test_inputs_url_filters_extensions"
+    # ValueError: dictionary update sequence element #0 has length 1; 2 is required
+    "test_include_attribute_with_yaml_loader"
+    # TypeError: string indices must be integers
+    "test_lookup_include_yaml"
+    # Missing .xslx files *shrug*
+    "test_excel_formatter_update"
+    "test_excel_formatter_update_using_result_kwargs"
+    # missing package n2g
+    "test_n2g_formatter"
+  ];
+
+  pytestFlagsArray = [
+    "test/pytest"
+  ];
+
+  meta = with lib; {
+    description = "Template Text Parser";
+    homepage = "https://github.com/dmulyalin/ttp";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ttp/templates.nix b/nixpkgs/pkgs/development/python-modules/ttp/templates.nix
new file mode 100644
index 000000000000..835548d07842
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ttp/templates.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ttp-templates";
+  version = "0.1.1";
+  format = "setuptools";
+
+  src = fetchPypi {
+    pname = "ttp_templates";
+    inherit version;
+    sha256 = "0vg7k733i8jqnfz8mpq8kzr2l7b7drk29zkzik91029f6w7li007";
+  };
+
+  # drop circular dependency on ttp
+  postPatch = ''
+    substituteInPlace setup.py --replace '"ttp>=0.6.0"' ""
+  '';
+
+  # circular dependency on ttp
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Template Text Parser Templates";
+    homepage = "https://github.com/dmulyalin/ttp_templates";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/twine/default.nix b/nixpkgs/pkgs/development/python-modules/twine/default.nix
index 9a246faff51c..b78f38c46cf8 100644
--- a/nixpkgs/pkgs/development/python-modules/twine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twine/default.nix
@@ -6,7 +6,7 @@
 , readme_renderer
 , requests
 , requests_toolbelt
-, setuptools_scm
+, setuptools-scm
 , tqdm
 , colorama
 , rfc3986
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     sha256 = "a56c985264b991dc8a8f4234eb80c5af87fa8080d0c224ad8f2cd05a2c22e83b";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [
     importlib-metadata
     keyring
diff --git a/nixpkgs/pkgs/development/python-modules/twitterapi/default.nix b/nixpkgs/pkgs/development/python-modules/twitterapi/default.nix
index 316709c20413..b45218219c53 100644
--- a/nixpkgs/pkgs/development/python-modules/twitterapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twitterapi/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "twitterapi";
-  version = "2.7.2";
+  version = "2.7.3";
 
   src = fetchFromGitHub {
     owner = "geduldig";
     repo = "TwitterAPI";
     rev = "v${version}";
-    sha256 = "sha256-kSL+zAWn/6itBu4T1OcIbg4k5Asatgz/dqzbnlcsqkg=";
+    sha256 = "sha256-82TOVrC7wX7E9lKsx3iGxaEEjHSzf5uZwePBvAw3hDk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/txaio/default.nix b/nixpkgs/pkgs/development/python-modules/txaio/default.nix
index c2f2c9451bdc..074e7b8d5091 100644
--- a/nixpkgs/pkgs/development/python-modules/txaio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txaio/default.nix
@@ -1,30 +1,55 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, mock, six, twisted, isPy37, isPy27 }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, mock
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, six
+, twisted
+, zope_interface
+}:
 
 buildPythonPackage rec {
   pname = "txaio";
   version = "21.2.1";
-  disabled = isPy27;
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d6f89745680233f1c4db9ddb748df5e88d2a7a37962be174c0fd04c8dba1dc8";
+    sha256 = "sha256-fW+JdFaAIz8cTbndt0jfXojSp6N5Yr4XTA/QTI26Hcg=";
   };
 
-  checkInputs = [ pytest mock ];
+  propagatedBuildInputs = [
+    six
+    twisted
+    zope_interface
+  ];
 
-  propagatedBuildInputs = [ six twisted ];
+  checkInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    py.test -k "not test_sdist"
-  '';
+  disabledTests = [
+    # No real value
+    "test_sdist"
+    # Some tests seems out-dated and require additional data
+    "test_as_future"
+    "test_errback"
+    "test_create_future"
+    "test_callback"
+    "test_immediate_result"
+    "test_cancel"
+  ];
 
-  # Needs some fixing
-  doCheck = false;
+  pythonImportsCheck = [ "txaio" ];
 
   meta = with lib; {
-    description = "Utilities to support code that runs unmodified on Twisted and asyncio.";
-    homepage    = "https://github.com/crossbario/txaio";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    description = "Utilities to support code that runs unmodified on Twisted and asyncio";
+    homepage = "https://github.com/crossbario/txaio";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/txgithub/default.nix b/nixpkgs/pkgs/development/python-modules/txgithub/default.nix
index 09af476e94df..45e366764980 100644
--- a/nixpkgs/pkgs/development/python-modules/txgithub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txgithub/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     description = "GitHub API client implemented using Twisted.";
     homepage    = "https://github.com/tomprince/txgithub";
     license     = licenses.mit;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/txrequests/default.nix b/nixpkgs/pkgs/development/python-modules/txrequests/default.nix
index be32dc4a7387..cf3bee52c590 100644
--- a/nixpkgs/pkgs/development/python-modules/txrequests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txrequests/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     description = "Asynchronous Python HTTP for Humans.";
     homepage    = "https://github.com/tardyp/txrequests";
     license     = licenses.asl20;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/typed-settings/default.nix b/nixpkgs/pkgs/development/python-modules/typed-settings/default.nix
new file mode 100644
index 000000000000..9791c2b04688
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/typed-settings/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptoolsBuildHook
+, attrs
+, toml
+, pytestCheckHook
+, click
+}:
+
+buildPythonPackage rec {
+  pname = "typed-settings";
+  version = "0.9.2";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "203c1c6ec73dd1eb0fecd4981b31f8e05042f0dda16443190ac9ade1113ff53d";
+  };
+
+  nativeBuildInputs = [
+    setuptoolsBuildHook
+    pytestCheckHook
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    toml
+  ];
+
+  checkInputs = [
+    click
+  ];
+
+  meta = {
+    description = "Typed settings based on attrs classes";
+    homepage = "https://gitlab.com/sscherfke/typed-settings";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ fridh ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
index 05bc653b0591..8e4abc5bd0e3 100644
--- a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "uamqp";
-  version = "1.2.13";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zDUFe/yMCThn+qJqDekMrUHEf1glGxBw4pioExLLoqg=";
+    sha256 = "sha256-XzfiLzRK1/DCmnxPW/H+KqnBuCbpYPawS2JnTQq+Vbw=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix b/nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix
new file mode 100644
index 000000000000..9b20e2251165
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "uc-micro-py";
+  version = "1.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "tsutsu3";
+    repo = "uc.micro-py";
+    rev = "v${version}";
+    hash = "sha256-23mKwoRGjtxpCOC26V8bAN5QEHLDOoSqPeTlUuIrxZ0=";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "uc_micro" ];
+
+  meta = with lib; {
+    description = "Micro subset of unicode data files for linkify-it-py";
+    homepage = "https://github.com/tsutsu3/uc.micro-py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/udatetime/default.nix b/nixpkgs/pkgs/development/python-modules/udatetime/default.nix
new file mode 100644
index 000000000000..457020af6457
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/udatetime/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+}:
+
+buildPythonPackage rec {
+  pname = "udatetime";
+  version = "0.0.16";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09vlcskvaxnfk73l9w5xgl2ks9l62g1b24yrm0xxb7gn93qxglw2";
+  };
+
+  patches = [
+    # fix build with python 3.9
+    (fetchpatch {
+      url = "https://github.com/freach/udatetime/pull/33.patch";
+      sha256 = "02wm7ivkv1viqn2wflgd10dgpddfqfrwacmrldigb1mwb79n554j";
+    })
+  ];
+
+  # tests not included on pypi
+  doCheck = false;
+
+  pythonImportsCheck = [ "udatetime" ];
+
+  meta = with lib; {
+    description = "Fast RFC3339 compliant Python date-time library";
+    homepage = "https://github.com/freach/udatetime";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ globin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix b/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
index e2790482a3c4..357c09ab4e8d 100644
--- a/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -1,18 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools_scm }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "ufonormalizer";
-  version = "0.5.3";
+  version = "0.5.4";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ijc697nv9rff9j1nhbf5vnyaryxlndq13msi94px8aq9gzxfrbi";
+    sha256 = "11l8475p3nq7azim35l5lck8vrgjgd01plnji6gg1hf9ckswr2pb";
     extension = "zip";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   meta = with lib; {
     description = "Script to normalize the XML and other data inside of a UFO";
diff --git a/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
index b0f5b11ad3a4..540aadd90132 100644
--- a/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchPypi
 , defcon, fonttools, lxml, fs
 , mutatormath, fontmath, fontparts
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     defcon
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/2.nix b/nixpkgs/pkgs/development/python-modules/ujson/2.nix
index 36aa5a020c35..d9ec65c2392e 100644
--- a/nixpkgs/pkgs/development/python-modules/ujson/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/ujson/2.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytestCheckHook
 }:
 
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "18z9gb9ggy1r464b9q1gqs078mqgrkj6dys5a47529rqk3yfybdx";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [
     pytestCheckHook
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/default.nix b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
index d93ee9f5af70..ab1f3e2b7cab 100644
--- a/nixpkgs/pkgs/development/python-modules/ujson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , isPy3k
 , isPyPy
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "c615a9e9e378a7383b756b7e7a73c38b22aeb8967a8bfbffd4741f7ffd043c4d";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/ujson";
diff --git a/nixpkgs/pkgs/development/python-modules/umap-learn/default.nix b/nixpkgs/pkgs/development/python-modules/umap-learn/default.nix
index b9abe2bb7682..fcf96a715f15 100644
--- a/nixpkgs/pkgs/development/python-modules/umap-learn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/umap-learn/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , nose
 , numpy
-, scikitlearn
+, scikit-learn
 , scipy
 , numba
 , pynndescent
@@ -13,29 +13,29 @@
 
 buildPythonPackage rec {
   pname = "umap-learn";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "lmcinnes";
     repo = "umap";
     rev = version;
-    sha256 = "sha256-2Z5RDi4bz8hh8zMwkcCQY9NrGaVd1DJEBOmrCl2oSvM=";
+    sha256 = "0favphngcz5jvyqs06x07hk552lvl9qx3vka8r4x0xmv88gsg349";
   };
 
-  checkInputs = [
-    nose
-    tensorflow
-    pytestCheckHook
-  ];
-
   propagatedBuildInputs = [
     numpy
-    scikitlearn
+    scikit-learn
     scipy
     numba
     pynndescent
   ];
 
+  checkInputs = [
+    nose
+    tensorflow
+    pytestCheckHook
+  ];
+
   preCheck = ''
     export HOME=$TMPDIR
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix b/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix
index 96b27127cc60..b5ff5be20616 100644
--- a/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unpaddedbase64/default.nix
@@ -1,19 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, poetry-core
 }:
 
 buildPythonPackage rec {
   pname = "unpaddedbase64";
-  version = "1.1.0";
+  version = "2.1.0";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "python-${pname}";
     rev = "refs/tags/v${version}";
-    sha256 = "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd";
+    sha256 = "1n6har8pxv0mqb96lanzihp1xf76aa17jw3977drb1fgz947pnmz";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/matrix-org/python-unpaddedbase64";
     description = "Unpadded Base64";
diff --git a/nixpkgs/pkgs/development/python-modules/uproot/default.nix b/nixpkgs/pkgs/development/python-modules/uproot/default.nix
new file mode 100644
index 000000000000..8a687534005e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/uproot/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, awkward
+, numpy
+, lz4
+, xxhash
+, zstandard
+, pytestCheckHook
+, scikit-hep-testdata
+}:
+
+buildPythonPackage rec {
+  pname = "uproot";
+  version = "4.0.8";
+
+  # fetch from github for tests
+  src = fetchFromGitHub {
+    owner = "scikit-hep";
+    repo = "uproot4";
+    rev = version;
+    sha256 = "sha256-E9BRgyMz+3Xl8Q1zsnVtvW44FXTqs29U1oK4te0myq4=";
+  };
+
+  propagatedBuildInputs = [
+    awkward
+    numpy
+    lz4
+    xxhash
+    zstandard
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    scikit-hep-testdata
+  ];
+  preCheck = ''
+    export HOME="$(mktemp -d)"
+  '';
+  disabledTests = [
+    # tests that try to download files
+    "test_http"
+    "test_no_multipart"
+    "test_fallback"
+    "test_pickle_roundtrip_http"
+  ];
+  disabledTestPaths = [
+    # tests that try to download files
+    "tests/test_0066-fix-http-fallback-freeze.py"
+    "tests/test_0088-read-with-http.py"
+    "tests/test_0220-contiguous-byte-ranges-in-http.py"
+  ];
+  pythonImportsCheck = [ "uproot" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/scikit-hep/uproot4";
+    description = "ROOT I/O in pure Python and Numpy";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/userpath/default.nix b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
index 8366a56158dd..d619cba0649d 100644
--- a/nixpkgs/pkgs/development/python-modules/userpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
@@ -2,19 +2,18 @@
 , buildPythonPackage
 , fetchPypi
 , click
-, distro
 }:
 
 buildPythonPackage rec {
   pname = "userpath";
-  version = "1.4.1";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256="0mfjmvx286z1dmnrc7bm65x8gj8qrmkcyagl0vf5ywfq0bm48591";
+    sha256="1xpgdmdvhmmmdlivsqlzx1xvyj0gcnfp0j2ba5izmv3q2k5abfdj";
   };
 
-  propagatedBuildInputs = [ click distro ];
+  propagatedBuildInputs = [ click ];
 
   # test suite is difficult to emulate in sandbox due to shell manipulation
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
index 3ba9dcb5f144..125850a080f3 100644
--- a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
@@ -44,8 +44,15 @@ buildPythonPackage rec {
     "--assert=plain"
     "--strict"
     "--tb=native"
+  ] ++ lib.optionals (stdenv.isAarch64) [
+    # test gets stuck in epoll_pwait on hydras aarch64 builders
+    # https://github.com/MagicStack/uvloop/issues/412
+    "--deselect" "tests/test_tcp.py::Test_AIO_TCPSSL::test_remote_shutdown_receives_trailing_data"
+  ];
+
+  disabledTestPaths = [
     # ignore code linting tests
-    "--ignore=tests/test_sourcecode.py"
+    "tests/test_sourcecode.py"
   ];
 
   # force using installed/compiled uvloop vs source by moving tests to temp dir
diff --git a/nixpkgs/pkgs/development/python-modules/variants/default.nix b/nixpkgs/pkgs/development/python-modules/variants/default.nix
index 3a45230720e2..a9345b374a7e 100644
--- a/nixpkgs/pkgs/development/python-modules/variants/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/variants/default.nix
@@ -2,7 +2,7 @@
 , isPy27
 , fetchPypi
 , pytestrunner
-, setuptools_scm
+, setuptools-scm
 , singledispatch ? null
 , pytest
 , lib
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     pytestrunner
-    setuptools_scm
+    setuptools-scm
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vdf/default.nix b/nixpkgs/pkgs/development/python-modules/vdf/default.nix
index 846aa7a13dfc..70ddf7bec97a 100644
--- a/nixpkgs/pkgs/development/python-modules/vdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vdf/default.nix
@@ -1,24 +1,28 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pytest, pytestcov, mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "vdf";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "ValvePython";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0d9bhxdznry7kzyma00cxwjn6rqnd6vw8v5ym68k6qswgfzb569i";
+    hash = "sha256-6ozglzZZNKDtADkHwxX2Zsnkh6BE8WbcRcC9HkTTgPU=";
   };
 
-  checkInputs = [ pytest pytestcov mock ];
-  checkPhase = "make test";
+  checkInputs = [ mock pytestCheckHook ];
+  pythonImportsCheck = [ "vdf" ];
 
   meta = with lib; {
     description = "Library for working with Valve's VDF text format";
     homepage = "https://github.com/ValvePython/vdf";
     license = licenses.mit;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix b/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix
index 1f7642bfe347..eb720c7f2066 100644
--- a/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vdirsyncer/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , isPy27
 , click
 , click-log
@@ -13,7 +14,7 @@
 , pytestCheckHook
 , pytest-localserver
 , pytest-subtesthack
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -35,7 +36,7 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   checkInputs = [
@@ -45,6 +46,14 @@ buildPythonPackage rec {
     pytest-subtesthack
   ];
 
+  patches = [
+    (fetchpatch {
+      name = "update-usage-deprecated-method.patch";
+      url = "https://github.com/pimutils/vdirsyncer/commit/7577fa21177442aacc2d86640ef28cebf1c4aaef.patch";
+      sha256 = "0inkr1wfal20kssij8l5myhpjivxg8wlvhppqc3lvml9d1i75qbh";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py --replace "click>=5.0,<6.0" "click"
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
index bcd672601534..b25f162baefb 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
@@ -16,7 +16,7 @@
 , pytest-timeout
 , pytestCheckHook
 , pythonOlder
-, setuptools_scm
+, setuptools-scm
 , six
 , stdenv
 }:
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vispy/default.nix b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
index 6dd32508befa..5524258a7e82 100644
--- a/nixpkgs/pkgs/development/python-modules/vispy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, substituteAll, stdenv,
   fetchPypi, numpy, cython, freetype-py, fontconfig, libGL,
-  setuptools_scm, setuptools-scm-git-archive
+  setuptools-scm, setuptools-scm-git-archive
   }:
 
 buildPythonPackage rec {
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    cython setuptools_scm setuptools-scm-git-archive
+    cython setuptools-scm setuptools-scm-git-archive
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix b/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix
index da13ad21026d..c48221132043 100644
--- a/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vowpalwabbit/default.nix
@@ -11,7 +11,7 @@
 , pygments
 , numpy
 , scipy
-, scikitlearn }:
+, scikit-learn }:
 
 buildPythonPackage rec {
   pname = "vowpalwabbit";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     numpy
-    scikitlearn
+    scikit-learn
     scipy
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
index df9586fc8e00..441630fe6f66 100644
--- a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
@@ -5,17 +5,18 @@
 , argh
 , pathtools
 , pyyaml
+, pytest-timeout
 , pytestCheckHook
 , CoreServices
 }:
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "2.0.3";
+  version = "2.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-QojTqYQyTbSS5XqhaWZiOKJXjwr1oIFoVSZgj7n2vWE=";
+    sha256 = "sha256-AjfbTZAkhZvqJ9DvtZ/nXu8pCDP9mIuOrXqHmwMIwts=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
@@ -27,6 +28,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    pytest-timeout
     pytestCheckHook
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/watchgod/default.nix b/nixpkgs/pkgs/development/python-modules/watchgod/default.nix
new file mode 100644
index 000000000000..5bb842586422
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/watchgod/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "watchgod";
+  version = "0.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0aagm0n5fkpzdsfgl0r21gkz5qaicgq3f4rqz2fdvsgbn1i0s528";
+  };
+
+  # no tests in release
+  doCheck = false;
+
+  pythonImportsCheck = [ "watchgod" ];
+
+  meta = with lib; {
+    description = "Simple, modern file watching and code reload in python";
+    homepage = "https://github.com/samuelcolvin/watchgod";
+    license = licenses.mit;
+    maintainers = with maintainers; [ globin ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/webssh/default.nix b/nixpkgs/pkgs/development/python-modules/webssh/default.nix
new file mode 100644
index 000000000000..00aff794372d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/webssh/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi, tornado, paramiko }:
+
+buildPythonPackage rec {
+  pname = "webssh";
+  version = "1.5.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Au6PE8jYm8LkEp0B1ymW//ZkrkcV0BauwufQmrHLEU4=";
+  };
+
+  propagatedBuildInputs = [ tornado paramiko ];
+
+  pythonImportsCheck = [ "webssh" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/huashengdun/webssh/";
+    description = "Web based ssh client";
+    license = licenses.mit;
+    maintainers = with maintainers; [ davidtwco ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/whoosh/default.nix b/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
index d3ff703f694a..e31d97a07d92 100644
--- a/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
@@ -25,6 +25,6 @@ buildPythonPackage rec {
 checking library.";
     homepage    = "https://bitbucket.org/mchaput/whoosh";
     license     = licenses.bsd2;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/word2vec/default.nix b/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
index 259566c8fc26..b078231c9429 100644
--- a/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
@@ -4,9 +4,9 @@
 , fetchzip
 , cython
 , numpy
-, scikitlearn
+, scikit-learn
 , six
-, setuptools_scm
+, setuptools-scm
 , gcc
 , pytest
 , pytestcov
@@ -28,9 +28,9 @@ buildPythonPackage rec {
     sha256 = "222d8ffb47f385c43eba45e3f308e605fc9736b2b7137d74979adf1a31e7c8b4";
   };
 
-  nativeBuildInputs = [ setuptools_scm gcc ];
+  nativeBuildInputs = [ setuptools-scm gcc ];
 
-  propagatedBuildInputs = [ cython numpy scikitlearn six ];
+  propagatedBuildInputs = [ cython numpy scikit-learn six ];
 
   checkInputs = [ pytest pytestcov ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/wordfreq/default.nix b/nixpkgs/pkgs/development/python-modules/wordfreq/default.nix
index d687ffd2d0b9..6aa8599653b1 100644
--- a/nixpkgs/pkgs/development/python-modules/wordfreq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wordfreq/default.nix
@@ -6,38 +6,43 @@
 , msgpack
 , mecab-python3
 , jieba
-, pytest
-, pythonOlder
+, pytestCheckHook
+, isPy27
 , fetchFromGitHub
 }:
 
 buildPythonPackage rec {
   pname = "wordfreq";
-  version = "2.3.2";
-  disabled = pythonOlder "3";
+  version = "2.5";
+  disabled = isPy27;
 
    src = fetchFromGitHub {
     owner = "LuminosoInsight";
     repo = "wordfreq";
-    # upstream don't tag by version
     rev = "v${version}";
-    sha256 = "078657iiksrqzcc2wvwhiilf3xxq5vlinsv0kz03qzqr1qyvbmas";
+    sha256 = "09wzraddbdw3781pk2sxlz8knax9jrcl24ymz54wx6sk0gvq95i7";
    };
 
-  propagatedBuildInputs = [ regex langcodes ftfy msgpack mecab-python3 jieba ];
+  propagatedBuildInputs = [
+    regex
+    langcodes
+    ftfy
+    msgpack
+    mecab-python3
+    jieba
+  ];
 
-  # patch to relax version requirements for regex
-  # dependency to prevent break in upgrade
   postPatch = ''
     substituteInPlace setup.py --replace "regex ==" "regex >="
   '';
 
-  checkInputs = [ pytest ];
-
-  checkPhase = ''
-    # These languages require additional dictionaries
-    pytest tests -k 'not test_japanese and not test_korean and not test_languages and not test_french_and_related'
-  '';
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    # These languages require additional dictionaries that aren't packaged
+    "test_languages"
+    "test_japanese"
+    "test_korean"
+  ];
 
   meta = with lib; {
     description = "A library for looking up the frequencies of words in many languages, based on many sources of data";
diff --git a/nixpkgs/pkgs/development/python-modules/xdg/default.nix b/nixpkgs/pkgs/development/python-modules/xdg/default.nix
index e47a91fb993b..2ea4e5bedf8b 100644
--- a/nixpkgs/pkgs/development/python-modules/xdg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xdg/default.nix
@@ -5,7 +5,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "5.0.1";
+  version = "5.0.2";
   pname = "xdg";
   disabled = isPy27;
   format = "pyproject";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     owner = "srstevenson";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WMY9Hs9SbErTp8hVBoCWTz4dLQhuzqTRpXFEyE7+woo=";
+    sha256 = "sha256-wZfihMrq83Bye5CE5p7bTlI9Z7CsCkSd8Art5ws4vsY=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/nixpkgs/pkgs/development/python-modules/xdot/default.nix b/nixpkgs/pkgs/development/python-modules/xdot/default.nix
index 7dbbd89e781b..e28deaf07d64 100644
--- a/nixpkgs/pkgs/development/python-modules/xdot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xdot/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, python3, xvfb_run
+{ lib, buildPythonPackage, fetchPypi, isPy3k, python3, xvfb-run
 , wrapGAppsHook, gobject-introspection, pygobject3, graphviz, gtk3, numpy }:
 
 buildPythonPackage rec {
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   disabled = !isPy3k;
   nativeBuildInputs = [ wrapGAppsHook ];
   propagatedBuildInputs = [ gobject-introspection pygobject3 graphviz gtk3 numpy ];
-  checkInputs = [ xvfb_run ];
+  checkInputs = [ xvfb-run ];
 
   checkPhase = ''
     xvfb-run -s '-screen 0 800x600x24' ${python3.interpreter} nix_run_setup test
diff --git a/nixpkgs/pkgs/development/python-modules/xgboost/default.nix b/nixpkgs/pkgs/development/python-modules/xgboost/default.nix
index 81a8d05f5bf0..1045b86a4441 100644
--- a/nixpkgs/pkgs/development/python-modules/xgboost/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xgboost/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, pytest
-, nose
+{ lib
+, buildPythonPackage
+, pytestCheckHook
+, cmake
 , scipy
-, scikitlearn
+, scikit-learn
 , stdenv
 , xgboost
 , substituteAll
@@ -10,28 +11,57 @@
 , matplotlib
 , graphviz
 , datatable
+, hypothesis
 }:
 
 buildPythonPackage {
   pname = "xgboost";
   inherit (xgboost) version src meta;
 
-  patches = [
-    (substituteAll {
-      src = ./lib-path-for-python.patch;
-      libpath = "${xgboost}/lib";
-      extention = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ xgboost ];
+  propagatedBuildInputs = [ scipy ];
+  checkInputs = [
+    pytestCheckHook
+    scikit-learn
+    pandas
+    matplotlib
+    graphviz
+    datatable
+    hypothesis
   ];
 
-  postPatch = "cd python-package";
+  # Override existing logic for locating libxgboost.so which is not appropriate for Nix
+  prePatch = let
+    libPath = "${xgboost}/lib/libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
+  in ''
+    echo 'find_lib_path = lambda: ["${libPath}"]' > python-package/xgboost/libpath.py
+  '';
 
-  propagatedBuildInputs = [ scipy ];
-  buildInputs = [ xgboost ];
-  checkInputs = [ nose pytest scikitlearn pandas matplotlib graphviz datatable ];
+  dontUseCmakeConfigure = true;
 
-  checkPhase = ''
+  postPatch = ''
+    cd python-package
+  '';
+
+  preCheck = ''
     ln -sf ../demo .
-    nosetests ../tests/python
+    ln -s ${xgboost}/bin/xgboost ../xgboost
   '';
+
+  pytestFlagsArray = ["../tests/python"];
+  disabledTestPaths = [
+    # Requires internet access: https://github.com/dmlc/xgboost/blob/03cd087da180b7dff21bd8ef34997bf747016025/tests/python/test_ranking.py#L81
+    "../tests/python/test_ranking.py"
+  ];
+  disabledTests = [
+    "test_cli_binary_classification"
+    "test_model_compatibility"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # fails to connect to the com.apple.fonts daemon in sandboxed mode
+    "test_plotting"
+    "test_sklearn_plotting"
+  ];
+
+  __darwinAllowLocalNetworking = true;
 }
diff --git a/nixpkgs/pkgs/development/python-modules/xgboost/lib-path-for-python.patch b/nixpkgs/pkgs/development/python-modules/xgboost/lib-path-for-python.patch
deleted file mode 100644
index c9252c12fed1..000000000000
--- a/nixpkgs/pkgs/development/python-modules/xgboost/lib-path-for-python.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/python-package/xgboost/libpath.py b/python-package/xgboost/libpath.py
-index d87922c0..859a30fb 100644
---- a/python-package/xgboost/libpath.py
-+++ b/python-package/xgboost/libpath.py
-@@ -19,32 +19,4 @@ def find_lib_path():
-     lib_path: list(string)
-        List of all found library path to xgboost
-     """
--    curr_path = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
--    # make pythonpack hack: copy this directory one level upper for setup.py
--    dll_path = [curr_path, os.path.join(curr_path, '../../lib/'),
--                os.path.join(curr_path, './lib/'),
--                os.path.join(sys.prefix, 'xgboost')]
--    if sys.platform == 'win32':
--        if platform.architecture()[0] == '64bit':
--            dll_path.append(os.path.join(curr_path, '../../windows/x64/Release/'))
--            # hack for pip installation when copy all parent source directory here
--            dll_path.append(os.path.join(curr_path, './windows/x64/Release/'))
--        else:
--            dll_path.append(os.path.join(curr_path, '../../windows/Release/'))
--            # hack for pip installation when copy all parent source directory here
--            dll_path.append(os.path.join(curr_path, './windows/Release/'))
--        dll_path = [os.path.join(p, 'xgboost.dll') for p in dll_path]
--    elif sys.platform.startswith('linux') or sys.platform.startswith('freebsd'):
--        dll_path = [os.path.join(p, 'libxgboost.so') for p in dll_path]
--    elif sys.platform == 'darwin':
--        dll_path = [os.path.join(p, 'libxgboost.dylib') for p in dll_path]
--
--    lib_path = [p for p in dll_path if os.path.exists(p) and os.path.isfile(p)]
--
--    # From github issues, most of installation errors come from machines w/o compilers
--    if not lib_path and not os.environ.get('XGBOOST_BUILD_DOC', False):
--        raise XGBoostLibraryNotFound(
--            'Cannot find XGBoost Library in the candidate path, ' +
--            'did you install compilers and run build.sh in root path?\n'
--            'List of candidates:\n' + ('\n'.join(dll_path)))
--    return lib_path
-+    return ["@libpath@/libxgboost@extention@"]
diff --git a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
index e372a843cf84..233f77613fe8 100644
--- a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "xkcdpass";
-  version = "1.17.6";
+  version = "1.19.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ghsjs5bxl996pap910q9s21nywb26mfpjd92rbfywbnj8f2k2cy";
+    sha256 = "sha256-F7977Tb8iu/pRy6YhginJgK0N0G3CjPpHjomLTFf1F8=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/development/python-modules/xknx/default.nix b/nixpkgs/pkgs/development/python-modules/xknx/default.nix
index aefe3ed2b95c..2d565c0eac48 100644
--- a/nixpkgs/pkgs/development/python-modules/xknx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xknx/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "0.18.1";
+  version = "0.18.3";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "XKNX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Zf7Od3v54LxMofm67XHeRM4Yeg1+KQLRhFl1BihAxGc=";
+    sha256 = "sha256-IXzmVAxxFOfU8ptixZLeyM64Fm1xSIlEDbR09f77JKM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/xlib/default.nix b/nixpkgs/pkgs/development/python-modules/xlib/default.nix
index 1819fd5a5124..cfb72680fa8b 100644
--- a/nixpkgs/pkgs/development/python-modules/xlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlib/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , six
-, setuptools_scm
+, setuptools-scm
 , xorg
 , python
 , mock
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [ mock nose util-linux /* mcookie */ xorg.xauth xorg.xorgserver /* xvfb */ ];
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   buildInputs = [ xorg.libX11 ];
   propagatedBuildInputs = [ six ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
index 6f7726da68d7..47576e6ee60a 100644
--- a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -13,10 +13,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    homepage = "https://github.com/bitprophet/alabaster";
+    homepage = "https://github.com/dilshod/xlsx2csv";
     description = "Convert xlsx to csv";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jb55 ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix b/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
index 58d50d7b6cf3..7008814ba287 100644
--- a/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
@@ -5,25 +5,20 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.3";
+  version = "1.6.2";
   pname = "xmlschema";
 
   src = fetchFromGitHub {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "v${version}";
-    sha256 = "0pv8zdz03wjnjwrgjr5pc3q69h7zh51h0iwgwxwl65qi1r6ydk54";
+    sha256 = "sha256-GL2PlHxKDSEsZwHPBAy+tjBSbKyvlbXUWwXakKPmzSs=";
   };
 
   propagatedBuildInputs = [ elementpath ];
 
   checkInputs = [ lxml pytest ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "elementpath~=2.0.0" "elementpath~=2.0"
-  '';
-
   # Ignore broken fixtures, and tests for files which don't exist.
   # For darwin, we need to explicity say we can't reach network
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix b/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
index 82f4a968ba6e..b8c60f1b6425 100644
--- a/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmlsec/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "xmlsec";
-  version = "1.3.9";
+  version = "1.3.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c4k42zv3plm6v65p7z6l5rxyf50h40d02nhc16vq7cjrfvdf4rx";
+    sha256 = "sha256-zS6q/38xeEoH3ZnOgfp2cxPfO6GDT6pBQ+4sBwAMrHo=";
   };
 
   # https://github.com/mehcode/python-xmlsec/issues/84#issuecomment-632930116
@@ -38,6 +38,8 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook hypothesis ];
   disabledTestPaths = [ "tests/test_doc_examples.py" ];
 
+  pythonImportsCheck = [ "xmlsec" ];
+
   meta = with lib; {
     description = "Python bindings for the XML Security Library";
     homepage = "https://github.com/mehcode/python-xmlsec";
diff --git a/nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix b/nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix
index a4ca97e27ac0..ce0dc34c0b40 100644
--- a/nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yalesmartalarmclient/default.nix
@@ -1,4 +1,5 @@
 { lib
+, backoff
 , buildPythonPackage
 , fetchFromGitHub
 , requests
@@ -6,16 +7,19 @@
 
 buildPythonPackage rec {
   pname = "yalesmartalarmclient";
-  version = "0.3.1";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "domwillcode";
     repo = "yale-smart-alarm-client";
     rev = "v${version}";
-    sha256 = "0fscp9n66h8a8khvjs2rjgm95xsdckpknadnyxqdmhw3hlj0aw6h";
+    sha256 = "sha256-waWi3QnH7xQZh5iYklISCvfAaBdH5k+Y10huZuTNlSc=";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [
+    backoff
+    requests
+  ];
 
   # Project has no tests
   doCheck = false;
@@ -23,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to interface with Yale Smart Alarm Systems";
-    homepage = "https://github.com/mampfes/python-wiffi";
+    homepage = "https://github.com/domwillcode/yale-smart-alarm-client";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/yalexs/default.nix b/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
index c65c88b88d5b..e20536b30eb8 100644
--- a/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "1.1.10";
+  version = "1.1.11";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qmxiafqmh51i3l30pajaqj5h0kziq4d37fn6hl58429bb85dpp9";
+    sha256 = "sha256-fVUYrzIcW4jbxdhS/Bh8eu+aJPFOqj0LXjoQKw+FZdg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/yangson/default.nix b/nixpkgs/pkgs/development/python-modules/yangson/default.nix
new file mode 100644
index 000000000000..44ac6cf9fe1e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yangson/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+, pyxb
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "yangson";
+  version = "1.4.8";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11w4aq0w2rnkz1axgmw003z2snd4kc49dil6kp1ajlqnfh1pcx8m";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    pyxb
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "yangson"
+  ];
+
+  meta = with lib; {
+    description = "Library for working with data modelled in YANG";
+    homepage = "https://github.com/CZ-NIC/yangson";
+    license = with licenses; [
+      gpl3Plus
+      lgpl3Plus
+    ];
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yeelight/default.nix b/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
index 9d435c1cce6b..888708e799c7 100644
--- a/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "yeelight";
-  version = "0.6.1";
+  version = "0.6.3";
   disabled = pythonOlder "3.4";
 
   src = fetchFromGitLab {
     owner = "stavros";
     repo = "python-yeelight";
     rev = "v${version}";
-    sha256 = "sha256-LB7A8E22hyqhVBElrOwtC3IPNkyQkU7ZJ1ScqaXQ6zs=";
+    sha256 = "sha256-71ncPGcqTRSldWVhJ2uZ2AEgkv1KO2i6UtAUTcJcru8=";
   };
 
   propagatedBuildInputs = [
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python library for controlling YeeLight RGB bulbs";
     homepage = "https://gitlab.com/stavros/python-yeelight/";
-    license = licenses.asl20;
+    license = licenses.bsd2;
     maintainers = with maintainers; [ nyanloutre ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/yfinance/default.nix b/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
index bceac92d79ed..81250f98a64d 100644
--- a/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.1.56";
+  version = "0.1.59";
 
   # GitHub source releases aren't tagged
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a6d4c7b939fdd48d983556501f5b387e20aaef86afc8e6ba6f91a49a7e22d2dd";
+    sha256 = "fe4dc46807eceadc6604bf51ece7297b752dc5402a38a87385094fbfc7565fa0";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
index 4728da51a64b..daba39eb224d 100644
--- a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.16.0";
+  version = "0.17.3";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/94/taeBI6xZ3uN/wfMnk/NPmk+j0+aaH8CAZBEsK10=";
+    sha256 = "sha256-miScxT79ZAgDT0AamkN1JyqbM56Otk86LnE6HM0G1Vs=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zarr/default.nix b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
index 3d21bbb3fe39..5c43494d28d7 100644
--- a/nixpkgs/pkgs/development/python-modules/zarr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , isPy27
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , asciitree
 , numpy
 , fasteners
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zeep/default.nix b/nixpkgs/pkgs/development/python-modules/zeep/default.nix
index 50dda4c8edbd..7c72d2500346 100644
--- a/nixpkgs/pkgs/development/python-modules/zeep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeep/default.nix
@@ -1,85 +1,85 @@
-{ fetchPypi
-, lib
-, fetchpatch
-, buildPythonPackage
-, isPy3k
+{ lib
+, aiohttp
+, aioresponses
 , appdirs
 , attrs
+, buildPythonPackage
 , cached-property
 , defusedxml
+, fetchFromGitHub
+, freezegun
+, httpx
 , isodate
 , lxml
-, requests
-, requests_toolbelt
-, six
-, pytz
-, tornado
-, aiohttp
-# test dependencies
-, freezegun
 , mock
 , pretend
-, pytest
-, pytestcov
+, pytest-asyncio
+, pytest-httpx
+, pytestCheckHook
+, pythonOlder
+, pytz
+, requests
+, requests_toolbelt
+, requests-file
 , requests-mock
-, aioresponses
+, xmlsec
 }:
 
 buildPythonPackage rec {
   pname = "zeep";
-  version = "3.4.0";
+  version = "4.0.0";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0e98669cfeb60756231ae185498f9ae21b30b2681786b8de58ed34c3b93e41dd";
+  src = fetchFromGitHub {
+    owner = "mvantellingen";
+    repo = "python-zeep";
+    rev = version;
+    sha256 = "1rwmwk47fxs8dxwv5dr6gbnbiyilznifb47fhbxgzj231w0y82cm";
   };
 
-  patches = [
-    ( fetchpatch {
-        url = "https://github.com/mvantellingen/python-zeep/pull/1006/commits/ba7edd6bf2b31023b31e8f17c161e1d6d5af3d29.patch";
-        sha256 = "1j0jd5hmh457im9sbawaqf6pnfy36fhr9wqdim8wk5da9ixr0ajs";
-     })
-  ];
-
   propagatedBuildInputs = [
     appdirs
     attrs
     cached-property
     defusedxml
+    httpx
     isodate
     lxml
+    pytz
     requests
     requests_toolbelt
-    six
-    pytz
-
-    # optional requirements
-    tornado
-  ] ++ lib.optional isPy3k aiohttp;
+    requests-file
+    xmlsec
+  ];
 
   checkInputs = [
+    aiohttp
+    aioresponses
     freezegun
     mock
     pretend
-    pytestcov
-    pytest
+    pytest-asyncio
+    pytest-httpx
+    pytestCheckHook
     requests-mock
-  ] ++ lib.optional isPy3k aioresponses;
+    xmlsec
+  ];
 
-  checkPhase = ''
-    runHook preCheck
-    # fix compatibility with pytest 4
-    substituteInPlace tests/conftest.py \
-       --replace 'request.node.get_marker("requests")' 'request.node.get_closest_marker("requests")'
-    # ignored tests requires xmlsec python module
-    HOME=$(mktemp -d) pytest tests --ignore tests/test_wsse_signature.py
-    runHook postCheck
+  preCheck = ''
+    export HOME=$(mktemp -d);
   '';
 
+  disabledTests = [
+    # lxml.etree.XMLSyntaxError: Extra content at the end of the document, line 2, column 64
+    "test_mime_content_serialize_text_xml"
+  ];
+
+  pythonImportsCheck = [ "zeep" ];
+
   meta = with lib; {
+    description = "Python SOAP client";
     homepage = "http://docs.python-zeep.org";
     license = licenses.mit;
-    description = "A modern/fast Python SOAP client based on lxml / requests";
     maintainers = with maintainers; [ rvl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
index 5105cbfff021..313f121510e1 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.29.0";
+  version = "0.31.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-eu+7ZYtFKx/X5REkNk+TjG9eQtbqiT+iVXvqjAbFQK8=";
+    sha256 = "sha256-U6GAJIRxxvgb0f/8vOA+2T19jq8QkFyRIaweqZbRmEQ=";
   };
 
   propagatedBuildInputs = [ ifaddr ];
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   disabledTests = [
     # disable tests that expect some sort of networking in the build container
+    "test_close_multiple_times"
     "test_launch_and_close"
     "test_launch_and_close_v4_v6"
     "test_launch_and_close_v6_only"
diff --git a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
index d9c42910e649..34335c65e1a1 100644
--- a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.56";
+  version = "0.0.57";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = version;
-    sha256 = "1jss5pnxdjlp0kplqxgr09vv1zq9n7l9w08hsywy2vglqmd67a66";
+    sha256 = "sha256-ajdluj6UIzjJUK30GtoM+e5lsMQRKnn3FPNEg+RS/DM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
index 2543d0675852..894539a3e2e0 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -3,32 +3,34 @@
 , asynctest
 , buildPythonPackage
 , coloredlogs
-, coveralls
 , fetchFromGitHub
+, jsonschema
 , pyserial
 , pyserial-asyncio
 , pytest-asyncio
 , pytest-mock
 , pytest-timeout
-, pytestcov
 , pytestCheckHook
+, pythonOlder
 , voluptuous
-, zigpy }:
+, zigpy
+}:
 
 buildPythonPackage rec {
   pname = "zigpy-znp";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
-    owner = "zha-ng";
-    repo = "zigpy-znp";
+    owner = "zigpy";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "1g5jssdnibhb4i4k1js9iy9w40cipf1gdnyp847x0bv6wblzx8rl";
+    sha256 = "152d803jfrvkj4namni41fnbbnq85wd7zsqjhmkwrrmn2gvqjiln";
   };
 
   propagatedBuildInputs = [
     async-timeout
     coloredlogs
+    jsonschema
     pyserial
     pyserial-asyncio
     voluptuous
@@ -36,18 +38,19 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    asynctest
-    coveralls
     pytest-asyncio
     pytest-mock
     pytest-timeout
-    pytestcov
     pytestCheckHook
+  ]  ++ lib.optionals (pythonOlder "3.8") [
+    asynctest
   ];
 
+  pythonImportsCheck = [ "zigpy_znp" ];
+
   meta = with lib; {
-    description = "A library for zigpy which communicates with TI ZNP radios";
-    homepage = "https://github.com/zha-ng/zigpy-znp";
+    description = "Python library for zigpy which communicates with TI ZNP radios";
+    homepage = "https://github.com/zigpy/zigpy-znp";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mvnetbiz ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/python-modules/zipp/1.nix b/nixpkgs/pkgs/development/python-modules/zipp/1.nix
index 0de729928d0f..ab9603926770 100644
--- a/nixpkgs/pkgs/development/python-modules/zipp/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/zipp/1.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytest
 , pytest-flake8
 , more-itertools
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "0v3qayhqv7vyzydpydwcp51bqciw8p2ajddw68x5k8zppc0vx3yk";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [ more-itertools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/zipp/default.nix b/nixpkgs/pkgs/development/python-modules/zipp/default.nix
index ccb916a147a7..7ef26dbd7606 100644
--- a/nixpkgs/pkgs/development/python-modules/zipp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zipp/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, setuptools-scm
 , pytest
 , pytest-flake8
 , more-itertools
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     sha256 = "3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76";
   };
 
-  nativeBuildInputs = [ setuptools_scm toml ];
+  nativeBuildInputs = [ setuptools-scm toml ];
 
   propagatedBuildInputs = [ more-itertools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/zipstream/default.nix b/nixpkgs/pkgs/development/python-modules/zipstream/default.nix
index ec885c6df0f4..00c291a1c510 100644
--- a/nixpkgs/pkgs/development/python-modules/zipstream/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zipstream/default.nix
@@ -15,6 +15,6 @@ buildPythonPackage rec {
     description = "A zip archive generator";
     homepage = "https://github.com/allanlei/python-zipstream";
     license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ primeos ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zulip/default.nix b/nixpkgs/pkgs/development/python-modules/zulip/default.nix
index ed2276623c3a..66033fcce311 100644
--- a/nixpkgs/pkgs/development/python-modules/zulip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zulip/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zulip";
-  version = "0.7.1";
+  version = "0.8.0";
 
   disabled = !isPy3k;
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "zulip";
     repo = "python-zulip-api";
     rev = version;
-    sha256 = "0da1ki1v252avy27j6d7snnc0gyq0xa9fypm3qdmxhw2w79d6q36";
+    sha256 = "sha256-gJ+YRJC6wmQzPakApOqytyPy34cS/jjzEZhRIvWUBIQ=";
   };
   sourceRoot = "source/zulip";
 
diff --git a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
index 61dba04a79e1..f11ff6bece47 100644
--- a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.23.1";
+  version = "0.25.0";
   disabled = pythonOlder "3.8";
 
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "0kmmhn357k22ana0ysd8jlz1fyfaqlc8k74ryaik0rrw7nmn1n11";
+    sha256 = "sha256-frhmyla3neFVZILDy7HnKloMqNLRjm3gxS88xZdu29w=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/r-modules/default.nix b/nixpkgs/pkgs/development/r-modules/default.nix
index ae23b32b71a2..254dfbb1788b 100644
--- a/nixpkgs/pkgs/development/r-modules/default.nix
+++ b/nixpkgs/pkgs/development/r-modules/default.nix
@@ -276,6 +276,7 @@ let
     jqr = [ pkgs.jq.dev ];
     KFKSDS = [ pkgs.gsl_1 ];
     kza = [ pkgs.fftw.dev ];
+    lwgeom = [ pkgs.gdal pkgs.geos pkgs.proj ];
     magick = [ pkgs.imagemagick.dev ];
     ModelMetrics = lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
     mvabund = [ pkgs.gsl_1 ];
@@ -374,11 +375,13 @@ let
     affyio = [ pkgs.zlib.dev ];
     VariantAnnotation = [ pkgs.zlib.dev pkgs.curl.dev ];
     snpStats = [ pkgs.zlib.dev ];
+    hdf5r = [ pkgs.hdf5.dev ];
   };
 
   packagesWithBuildInputs = {
     # sort -t '=' -k 2
     gam = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
+    RcppArmadillo = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
     quantreg = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
     rmutil = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
     robustbase = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
@@ -405,6 +408,7 @@ let
     gdtools = [ pkgs.pkg-config ];
     jqr = [ pkgs.jq.lib ];
     kza = [ pkgs.pkg-config ];
+    lwgeom = [ pkgs.pkg-config pkgs.proj.dev pkgs.sqlite.dev ];
     magick = [ pkgs.pkg-config ];
     mwaved = [ pkgs.pkg-config ];
     odbc = [ pkgs.pkg-config ];
diff --git a/nixpkgs/pkgs/development/r-modules/generic-builder.nix b/nixpkgs/pkgs/development/r-modules/generic-builder.nix
index 1e96a64a5e28..7201bab40e12 100644
--- a/nixpkgs/pkgs/development/r-modules/generic-builder.nix
+++ b/nixpkgs/pkgs/development/r-modules/generic-builder.nix
@@ -1,14 +1,14 @@
-{ stdenv, lib, R, libcxx, xvfb_run, util-linux, Cocoa, Foundation, gettext, gfortran }:
+{ stdenv, lib, R, libcxx, xvfb-run, util-linux, Cocoa, Foundation, gettext, gfortran }:
 
 { name, buildInputs ? [], requireX ? false, ... } @ attrs:
 
 stdenv.mkDerivation ({
   buildInputs = buildInputs ++ [R gettext] ++
-                lib.optionals requireX [util-linux xvfb_run] ++
+                lib.optionals requireX [util-linux xvfb-run] ++
                 lib.optionals stdenv.isDarwin [Cocoa Foundation gfortran];
 
   NIX_CFLAGS_COMPILE =
-    lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+    lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
   configurePhase = ''
     runHook preConfigure
@@ -29,7 +29,7 @@ stdenv.mkDerivation ({
   rCommand = if requireX then
     # Unfortunately, xvfb-run has a race condition even with -a option, so that
     # we acquire a lock explicitly.
-    "flock ${xvfb_run} xvfb-run -a -e xvfb-error R"
+    "flock ${xvfb-run} xvfb-run -a -e xvfb-error R"
   else
     "R";
 
diff --git a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
index d0d67bff21d1..5f054e6b9962 100644
--- a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
@@ -528,6 +528,14 @@ in
       "--with-libvirt-include=${libvirt}/include"
       "--with-libvirt-lib=${libvirt}/lib"
     ];
+    dontBuild = false;
+    postPatch = ''
+      # https://gitlab.com/libvirt/libvirt-ruby/-/commit/43543991832c9623c00395092bcfb9e178243ba4
+      substituteInPlace ext/libvirt/common.c \
+        --replace 'st.h' 'ruby/st.h'
+      substituteInPlace ext/libvirt/domain.c \
+        --replace 'st.h' 'ruby/st.h'
+    '';
   };
 
   ruby-lxc = attrs: {
@@ -547,13 +555,9 @@ in
       cd "$(cat $out/nix-support/gem-meta/install-path)"
 
       substituteInPlace lib/vips.rb \
-        --replace "glib-2.0" "${glib.out}/lib/libglib-2.0${stdenv.hostPlatform.extensions.sharedLibrary}"
-
-      substituteInPlace lib/vips.rb \
-        --replace "gobject-2.0" "${glib.out}/lib/libgobject-2.0${stdenv.hostPlatform.extensions.sharedLibrary}"
-
-      substituteInPlace lib/vips.rb \
-        --replace "vips_libname = 'vips'" "vips_libname = '${lib.getLib vips}/lib/libvips${stdenv.hostPlatform.extensions.sharedLibrary}'"
+        --replace 'library_name("vips", 42)' '"${lib.getLib vips}/lib/libvips${stdenv.hostPlatform.extensions.sharedLibrary}"' \
+        --replace 'library_name("glib-2.0", 0)' '"${glib.out}/lib/libglib-2.0${stdenv.hostPlatform.extensions.sharedLibrary}"' \
+        --replace 'library_name("gobject-2.0", 0)' '"${glib.out}/lib/libgobject-2.0${stdenv.hostPlatform.extensions.sharedLibrary}"'
     '';
   };
 
diff --git a/nixpkgs/pkgs/development/ruby-modules/solargraph/default.nix b/nixpkgs/pkgs/development/ruby-modules/solargraph/default.nix
index e95fb1573dd2..356224c02309 100644
--- a/nixpkgs/pkgs/development/ruby-modules/solargraph/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/solargraph/default.nix
@@ -11,6 +11,6 @@ bundlerApp {
     description = "A Ruby language server";
     homepage = "https://solargraph.org/";
     license = licenses.mit;
-    maintainers = with maintainers; [ worldofpeace nicknovitski angristan ];
+    maintainers = with maintainers; [ nicknovitski angristan ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/air/default.nix b/nixpkgs/pkgs/development/tools/air/default.nix
index 28cb6bf7a46c..1950b969d66d 100644
--- a/nixpkgs/pkgs/development/tools/air/default.nix
+++ b/nixpkgs/pkgs/development/tools/air/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "air";
-  version = "1.27.2";
+  version = "1.27.3";
 
   src = fetchFromGitHub {
     owner = "cosmtrek";
     repo = "air";
     rev = "v${version}";
-    sha256 = "sha256-VQymiDge42JBQwAHfHMF8imBC90uPout0fZRuQVOP5w=";
+    sha256 = "sha256-QO3cPyr2FqCdoiax/V0fe7kRwT61T3efnfO8uWp8rRM=";
   };
 
   vendorSha256 = "sha256-B7AgUFjiW3P1dU88u3kswbCQJ7Qq7rgPlX+b+3Pq1L4=";
diff --git a/nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix b/nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix
new file mode 100644
index 000000000000..46ef678b5ba2
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix
@@ -0,0 +1,38 @@
+{ lib, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3 }:
+
+let
+  pname = "altair";
+  version = "4.0.2";
+  name = "${pname}-v${version}";
+
+  src = fetchurl {
+    url = "https://github.com/imolorhe/altair/releases/download/v${version}/altair_${version}_x86_64_linux.AppImage";
+    sha256 = "sha256-HCoK+ljcTmyBZSCDe6u2x2urqrQfi3DIlXfCqGWvl3E=";
+  };
+
+  appimageContents = appimageTools.extract { inherit name src; };
+in
+appimageTools.wrapType2 {
+  inherit src name;
+
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+
+    install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "A feature-rich GraphQL Client IDE";
+    homepage = "https://github.com/imolorhe/altair";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evalexpr ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ameba/default.nix b/nixpkgs/pkgs/development/tools/ameba/default.nix
index 9a8cc799bf27..24760051b28c 100644
--- a/nixpkgs/pkgs/development/tools/ameba/default.nix
+++ b/nixpkgs/pkgs/development/tools/ameba/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "ameba";
-  version = "0.14.2";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "sha256-wtUWmvAm7iTiP8eYgPiRasYjzeCIJCQd3D+8f1kMONA=";
+    sha256 = "sha256-oZdaHV+vnYUiCXNMrSuHvZzDYDgFZsoD715DE3tJ2bE=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix b/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
index 338bc3e189c1..d354b71fc9f3 100644
--- a/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-ayA3aEidZPa5GJgbbm5K3X2Xgd5Eb6TgUU80Gw/p07w=";
   };
 
-  cargoSha256 = "sha256-3eGYU5O7HSpawIL/8OVmROCzXfdnoMAnIujjrIp00xg=";
+  cargoSha256 = "sha256-XcXllex7UEufV5URhH7aqln1tNxwaiAETO3fUKmHf7s=";
 
   meta = with lib; {
     description = "Greps through binaries from various OSs and architectures, and colors them";
diff --git a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
index a0f251bfe910..66f2db280685 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   ];
   buildInputs = [ openssl ];
 
-  cargoSha256 = "0pn9xgryfb7f0plx50v9i7hsv1wib87pi0fl43cv6hgqyrdb52ny";
+  cargoSha256 = "1hpi9aifn3g19yqkb58lphyw8cbsqllhg5dzbqx15hcfvrb7ip4k";
   #checkFlags = [ "--test-threads" "1" ];
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix b/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix
index 06c366529df3..8750b61c48fa 100644
--- a/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix
@@ -28,7 +28,7 @@ in
 python3.pkgs.buildPythonPackage rec {
   inherit pname version disabled src;
 
-  nativeBuildInputs = with python3.pkgs; [ setuptools_scm ];
+  nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
 
   propagatedBuildInputs = with python3.pkgs; [
     pytest
diff --git a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
index 563119f6b3ab..ae95157a8e5e 100644
--- a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "8.41.1";
+  version = "8.42";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-zW6gjRu5YEH04xCbsW20FeFfmBg+i+aW3WpViBQigXI=";
+    sha256 = "sha256-SYLr6qQp/kHzviwzCaXEnYTHHuH3j5ZzRLi8gs8xAao=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
index abcd947fa318..25d61d2393e5 100644
--- a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
@@ -3,7 +3,7 @@
 , zlib
 , xorg
 , freetype
-, alsaLib
+, alsa-lib
 , jdk11
 , curl
 , lttng-ust
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.5.2";
+  version = "2.5.5";
 
   dontConfigure = true;
   dontBuild = true;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    sha256 = "sha256-/Pl9qDzFSL67lBEyHPqy3QfNCXzR510SgM0U8f55Dqg=";
+    sha256 = "sha256-M5O2NEGIVPWYKl11yxMMVreEtDO1VqcMkiGGrjNmk3A=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     xorg.libXtst
     xorg.libXrender
     freetype
-    alsaLib
+    alsa-lib
     jdk11
     stdenv.cc.cc.lib
     curl
diff --git a/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix b/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix
index b05f9b944400..f477da365d75 100644
--- a/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-3Lj5GtWGyWDkZPhxYQu7UWzmh7TO5wk1UJ0lek1jTto=";
   };
 
-  cargoSha256 = "sha256-zdvIC+VUASjhrlyRts+JJeh5xdcdpX6Ixle6HhbMJJU=";
+  cargoSha256 = "sha256-FDkxJuZPzDrgLJgefkRUPS+0Ys3DaBOD3XAuS/Z6TtI=";
 
   meta = with lib; {
     description = "Lightning-fast linter for .env files. Written in Rust";
diff --git a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
index 8c8ea1a5ffca..ea1aee669c54 100644
--- a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.149.0";
+  version = "0.152.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-/pNCEsCKfYh/jo+3x7usRyPNBRJB4gDu2TAgosSw37c=";
+    sha256 = "1af9z6xah3rk99pv984nikkpq8jzl5r0fccb1gdhmi7y5a6y6g1m";
   };
 
   installPhase = ''
@@ -16,13 +16,13 @@ stdenv.mkDerivation rec {
     install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
   '';
 
-  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild ocaml-migrate-parsetree dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ])
+  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild ocaml-migrate-parsetree-2-1 dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ])
     ++ lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
     description = "A static type checker for JavaScript";
     homepage = "https://flow.org/";
-    changelog = "https://github.com/facebook/flow/releases/tag/v${version}";
+    changelog = "https://github.com/facebook/flow/raw/v${version}/Changelog.md";
     license = licenses.mit;
     platforms = ocamlPackages.ocaml.meta.platforms;
     maintainers = with maintainers; [ marsam puffnfresh ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix b/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
index 394bd6558fbf..a10d015e9ff1 100644
--- a/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
@@ -11,7 +11,7 @@ let
     biniou
     camlzip
     easy-format
-    menhir
+    menhirLib
     mlgmpidl
     num
     ocamlgraph
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoconf wrapGAppsHook ];
 
   buildInputs = with ocamlPackages; [
-    ncurses ocaml findlib ltl2ba ocamlgraph yojson menhir camlzip
+    ncurses ocaml findlib ltl2ba ocamlgraph yojson menhirLib camlzip
     lablgtk coq graphviz zarith apron why3 mlgmpidl doxygen
     gdk-pixbuf
   ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix b/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
index db1cf9c6ead5..8ba381bc5443 100644
--- a/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchurl, cmake, llvmPackages, python2 }:
+{ lib, stdenv, fetchurl, cmake, llvmPackages, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "include-what-you-use";
   # Also bump llvmPackages in all-packages.nix to the supported version!
-  version = "0.14";
+  version = "0.16";
 
   src = fetchurl {
-    sha256 = "1vq0c8jqspvlss8hbazml44fi0mbslgnp2i9wcr0qrjpvfbl6623";
+    sha256 = "sha256-jW/JslU0O8Hl7EWeOVEt8dUcYOA1YpheAHYDYRn/Whw=";
     url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz";
   };
 
-  buildInputs = with llvmPackages; [ clang-unwrapped llvm python2 ];
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = with llvmPackages; [ cmake llvm.dev llvm python3];
+  buildInputs = with llvmPackages; [ libclang clang-unwrapped ];
 
   cmakeFlags = [ "-DIWYU_LLVM_ROOT_PATH=${llvmPackages.clang-unwrapped}" ];
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix b/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
index 4b294bf8adaf..a708c88ee9ee 100644
--- a/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
@@ -1,38 +1,84 @@
-{lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, curl, elfutils, python3, libiberty, libopcodes}:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, zlib
+, curl
+, elfutils
+, python3
+, libiberty
+, libopcodes
+, runCommand
+, gcc
+, rustc
+}:
 
-stdenv.mkDerivation rec {
-  pname = "kcov";
-  version = "36";
+let
+  self =
+    stdenv.mkDerivation rec {
+      pname = "kcov";
+      version = "38";
 
-  src = fetchFromGitHub {
-    owner = "SimonKagstrom";
-    repo = "kcov";
-    rev = "v${version}";
-    sha256 = "1q1mw5mxz041lr6qc2v4280rmx13pg1bx5r3bxz9bzs941r405r3";
-  };
+      src = fetchFromGitHub {
+        owner = "SimonKagstrom";
+        repo = "kcov";
+        rev = "v${version}";
+        sha256 = "sha256-6LoIo2/yMUz8qIpwJVcA3qZjjF+8KEM1MyHuyHsQD38=";
+      };
 
-  preConfigure = "patchShebangs src/bin-to-c-source.py";
-  nativeBuildInputs = [ cmake pkg-config python3 ];
+      preConfigure = "patchShebangs src/bin-to-c-source.py";
+      nativeBuildInputs = [ cmake pkg-config python3 ];
 
-  buildInputs = [ curl zlib elfutils libiberty libopcodes ];
+      buildInputs = [ curl zlib elfutils libiberty libopcodes ];
 
-  strictDeps = true;
+      strictDeps = true;
 
-  meta = with lib; {
-    description = "Code coverage tester for compiled programs, Python scripts and shell scripts";
+      passthru.tests = {
+        works-on-c = runCommand "works-on-c" {} ''
+          set -ex
+          cat - > a.c <<EOF
+          int main() {}
+          EOF
+          ${gcc}/bin/gcc a.c -o a.out
+          ${self}/bin/kcov /tmp/kcov ./a.out
+          test -e /tmp/kcov/index.html
+          touch $out
+          set +x
+        '';
 
-    longDescription = ''
-      Kcov is a code coverage tester for compiled programs, Python
-      scripts and shell scripts. It allows collecting code coverage
-      information from executables without special command-line
-      arguments, and continuosly produces output from long-running
-      applications.
-    '';
+        works-on-rust = runCommand "works-on-rust" {} ''
+          set -ex
+          cat - > a.rs <<EOF
+          fn main() {}
+          EOF
+          # Put gcc in the path so that `cc` is found
+          PATH=${gcc}/bin:$PATH ${rustc}/bin/rustc a.rs -o a.out
+          ${self}/bin/kcov /tmp/kcov ./a.out
+          test -e /tmp/kcov/index.html
+          touch $out
+          set +x
+        '';
+      };
 
-    homepage = "http://simonkagstrom.github.io/kcov/index.html";
-    license = licenses.gpl2;
+      meta = with lib; {
+        description = "Code coverage tester for compiled programs, Python scripts and shell scripts";
 
-    maintainers = with maintainers; [ gal_bolle ekleog ];
-    platforms = platforms.linux;
-  };
-}
+        longDescription = ''
+          Kcov is a code coverage tester for compiled programs, Python
+          scripts and shell scripts. It allows collecting code coverage
+          information from executables without special command-line
+          arguments, and continuosly produces output from long-running
+          applications.
+        '';
+
+        homepage = "http://simonkagstrom.github.io/kcov/index.html";
+        license = licenses.gpl2;
+        changelog = "https://github.com/SimonKagstrom/kcov/blob/master/ChangeLog";
+
+        maintainers = with maintainers; [ gal_bolle ekleog ];
+        platforms = platforms.linux;
+      };
+    };
+in
+self
diff --git a/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix b/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
index c2f0236ed0b4..78f8bbeb683e 100644
--- a/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
@@ -25,6 +25,6 @@ mkDerivation rec {
     description = "Tool that visualizes massif data generated by valgrind";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ lethalman zraexy ];
+    maintainers = with maintainers; [ zraexy ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix b/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
index dea2fd895f15..279a69327fa6 100644
--- a/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
@@ -17,6 +17,7 @@
 , containers
 , hnix
 , bytestring
+, fetchpatch
 }:
 
 mkDerivation rec {
@@ -36,10 +37,13 @@ mkDerivation rec {
   executableHaskellDepends = [ streamly mtl path pretty-terminal text base aeson cmdargs containers hnix bytestring path-io ];
   testHaskellDepends = [ tasty tasty-hunit tasty-th ];
 
-  # Relax upper bound on hnix https://github.com/Synthetica9/nix-linter/pull/46
-  postPatch = ''
-    substituteInPlace nix-linter.cabal --replace "hnix >=0.8 && < 0.11" "hnix >=0.8"
-  '';
+  patches = [
+    # Fix compatibility with hnix≥0.13.0 https://github.com/Synthetica9/nix-linter/pull/51
+    (fetchpatch {
+      url = "https://github.com/Synthetica9/nix-linter/commit/f73acacd8623dc25c9a35f8e04e4ff33cc596af8.patch";
+      sha256 = "139fm21hdg3vcw8hv35kxj4awd52bjqbb76mpzx191hzi9plj8qc";
+    })
+  ];
 
   description = "Linter for Nix(pkgs), based on hnix";
   homepage = "https://github.com/Synthetica9/nix-linter";
diff --git a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
index f7f933392ab4..500ca632fcf0 100644
--- a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   dontWrapQtApps = true;
 
-  cargoSha256 = "1hdsn011y9invfy7can8c02zwa7birj9y1rxhrj7wyv4gh3659i0";
+  cargoSha256 = "0vhcb3kw1zgchx3nrk8lyrz8p5071y99vsysxvi71klv7dcvn0am";
   doCheck = false;
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix b/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
index 5e321db01aa4..75729d1eea47 100644
--- a/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
@@ -17,7 +17,7 @@ in stdenv.mkDerivation {
   postInstall = ''
      mkdir -p $out/bin
      cp -p converters/dprof2calltree $out/bin/dprof2calltree
-     cp -p converters/hotshot2calltree.cmake $out/bin/hotshot2calltree
+     cp -p converters/hotshot2calltree.in $out/bin/hotshot2calltree
      cp -p converters/memprof2calltree $out/bin/memprof2calltree
      cp -p converters/op2calltree $out/bin/op2calltree
      cp -p converters/pprof2calltree $out/bin/pprof2calltree
diff --git a/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix b/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
index e59c48f91d30..f51f0f9368d1 100644
--- a/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
@@ -28,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radare2";
-  version = "5.2.1";
+  version = "5.3.0";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "0n3k190qjhdlj10fjqijx6ismz0g7fk28i83j0480cxdqgmmlbxc";
+    sha256 = "sha256-xndnRVlqTB/NH1ROo7xkftLP7DufsJu4CCA9MCOEeng=";
   };
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
index a4c2d0d45c1f..c1d8ab99063c 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
@@ -11,13 +11,13 @@
 
 mkDerivation rec {
   pname = "cutter";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "rizinorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "sha256-IQCJOUgefSdMSa27E6I/CL35Kx5pHq/u+5Q0FHUAR1E=";
+    sha256 = "sha256-CVVUXx6wt9vH3B7NrrlRGnOIrhXQPjV7GmX3O+KtMSM=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
index 20184ac53a15..4e9543ef371d 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rizin";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchurl {
     url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-v${version}.tar.xz";
-    sha256 = "sha256-CGHeo247syha+rVtiAQz0XkEYK9p4DHTnLK2FhBOvE8=";
+    sha256 = "sha256-lxVsPI+qLenZ0pelvxtHlQ6fhWdQeqoEEHrUGZ5Rdmg=";
   };
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
index a562a1baeeeb..dc38728a44a2 100644
--- a/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-p002oWwTQxesWLgLq8oKKzuZKXUdO4C1TZ7lR/Mh1PA=";
   };
 
-  cargoSha256 = "sha256-M0hng1JcR5Q829bVOaTASl0Eq6fFm8mUFsS5zx1JX94=";
+  cargoSha256 = "sha256-1WEPJpU/hLn+qjU+ETkmbfZIJTORe3OUdyl605JnYmU=";
 
   meta = with lib; {
     description = "SystemVerilog linter";
diff --git a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
index 9f4efe396c61..137b3c2c1a1a 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1d746016iyswb9kw7gprg32vj5rcfa2y9j11r2hsp61hsjfvmg8c";
+    sha256 = "1ciwr2bwbxnw8366wvgl5ga3y2qj46i0h3yp3av1x9n2r8rddrlh";
   };
 
-  vendorSha256 = "0whd0b9rll0s42hrr2fqp412d5frzmrnqnynpq75wda5rqzmaf8r";
+  vendorSha256 = "0k8v49sr0jmljfl4fa5pnvzd5k3pg865h201114l6cs257sdkczk";
 
   doCheck = false;
 
@@ -20,7 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Terraform linter focused on possible errors, best practices, and so on";
     homepage = "https://github.com/terraform-linters/tflint";
-    changelog = "https://github.com/terraform-linters/tflint/blob/v${version}/CHANGELOG.md";
+    changelog = "https://github.com/terraform-linters/tflint/raw/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/development/tools/async-profiler/0001-Fix-darwin-build.patch b/nixpkgs/pkgs/development/tools/async-profiler/0001-Fix-darwin-build.patch
new file mode 100644
index 000000000000..bfb636bf562a
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/async-profiler/0001-Fix-darwin-build.patch
@@ -0,0 +1,27 @@
+From e54c17899118ea940c36bc17a48d8ff759243f16 Mon Sep 17 00:00:00 2001
+From: Uri Baghin <uri@canva.com>
+Date: Sat, 8 May 2021 09:49:18 +1000
+Subject: [PATCH] Fix darwin build.
+
+---
+ src/itimer.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/itimer.cpp b/src/itimer.cpp
+index 08c46d1..52628ef 100644
+--- a/src/itimer.cpp
++++ b/src/itimer.cpp
+@@ -52,8 +52,8 @@ Error ITimer::start(Arguments& args) {
+ 
+     OS::installSignalHandler(SIGPROF, signalHandler);
+ 
+-    long sec = _interval / 1000000000;
+-    long usec = (_interval % 1000000000) / 1000;
++    time_t sec = _interval / 1000000000;
++    suseconds_t usec = (_interval % 1000000000) / 1000;
+     struct itimerval tv = {{sec, usec}, {sec, usec}};
+     
+     if (setitimer(ITIMER_PROF, &tv, NULL) != 0) {
+-- 
+2.31.1
+
diff --git a/nixpkgs/pkgs/development/tools/async-profiler/default.nix b/nixpkgs/pkgs/development/tools/async-profiler/default.nix
index d271528de7ef..66177d3a34f3 100644
--- a/nixpkgs/pkgs/development/tools/async-profiler/default.nix
+++ b/nixpkgs/pkgs/development/tools/async-profiler/default.nix
@@ -22,6 +22,11 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  patches = [
+    # https://github.com/jvm-profiling-tools/async-profiler/pull/428
+    ./0001-Fix-darwin-build.patch
+  ];
+
   fixupPhase = ''
     substituteInPlace $out/bin/async-profiler \
       --replace 'JATTACH=$SCRIPT_DIR/build/jattach' \
diff --git a/nixpkgs/pkgs/development/tools/async/default.nix b/nixpkgs/pkgs/development/tools/async/default.nix
index a45e93ab151e..ffff8af8b661 100644
--- a/nixpkgs/pkgs/development/tools/async/default.nix
+++ b/nixpkgs/pkgs/development/tools/async/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "19ypflbayi5l0mb8yw7w0a4bq9a3w8nl9jsxapp9m3xggzmsvrxx";
   };
 
-  cargoSha256 = "1zgds5rjjikvaj0rxc7slyvkjn067s0v8vdnxn3vsv819q5yd707";
+  cargoSha256 = "0y2q46i838gha58p95vcv5r5i14il1kv86k35s30ncfibijgp0lc";
 
   meta = with lib; {
     description = "A tool to parallelize shell commands";
diff --git a/nixpkgs/pkgs/development/tools/ats-acc/default.nix b/nixpkgs/pkgs/development/tools/ats-acc/default.nix
new file mode 100644
index 000000000000..73e475da3942
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/ats-acc/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchFromGitHub, ats2 }:
+
+stdenv.mkDerivation rec {
+  pname = "ats-acc";
+  version = "unstable-2018-10-21";
+
+  src = fetchFromGitHub {
+    owner = "sparverius";
+    repo = pname;
+    rev = "2d49f4e76d0fe1f857ceb70deba4aed13c306dcb";
+    sha256 = "sha256-Wp39488YNL40GKp4KaJwhi75PsYP+gMtrZqAvs4Q/sw=";
+  };
+
+  nativeBuildInputs = [ ats2 ];
+
+  meta = with lib; {
+    description = "Pretty-print error messages of the ATS Compiler";
+    homepage = "https://github.com/sparverius/ats-acc";
+    maintainers = with maintainers; [ fortuneteller2k ];
+    license = licenses.unfree; # Upstream has no license
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
index 1429fcab4c68..3837e2e37076 100644
--- a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
@@ -5,11 +5,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "aws-sam-cli";
-  version = "1.14.0";
+  version = "1.23.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "E+xIS0Z3M/ilBswH8XwXWnGb9gbDRuuKKE39qau9fFc=";
+    sha256 = "0j0q6p08c3l9z0yc2cggw797k47cjh6ljpchiqgg0fh6mk32215f";
   };
 
   # Tests are not included in the PyPI package
@@ -40,10 +40,8 @@ python3.pkgs.buildPythonApplication rec {
   # fix over-restrictive version bounds
   postPatch = ''
     substituteInPlace requirements/base.txt \
-      --replace "boto3~=1.14.23" "boto3~=1.14" \
       --replace "dateparser~=0.7" "dateparser>=0.7" \
       --replace "docker~=4.2.0" "docker>=4.2.0" \
-      --replace "python-dateutil~=2.6, <2.8.1" "python-dateutil~=2.6" \
       --replace "requests==2.23.0" "requests~=2.24" \
       --replace "watchdog==0.10.3" "watchdog"
   '';
diff --git a/nixpkgs/pkgs/development/tools/b4/default.nix b/nixpkgs/pkgs/development/tools/b4/default.nix
index 8210f7c409a5..30d38aac2ae0 100644
--- a/nixpkgs/pkgs/development/tools/b4/default.nix
+++ b/nixpkgs/pkgs/development/tools/b4/default.nix
@@ -11,7 +11,8 @@ python3Packages.buildPythonApplication rec {
 
   preConfigure = ''
     substituteInPlace setup.py \
-      --replace 'requests~=2.24' 'requests~=2.25'
+      --replace 'requests~=2.24.0' 'requests~=2.25' \
+      --replace 'dnspython~=2.0.0' 'dnspython~=2.1'
   '';
 
   # tests make dns requests and fails
diff --git a/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix b/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
index 446d54f90ca4..fd1cc241195a 100644
--- a/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
+++ b/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
@@ -1,21 +1,41 @@
 { fetchFromGitHub, lib, python3Packages }:
 
+let
+  python3Packages2 = python3Packages.override {
+    overrides = self: super: {
+      arrow = self.callPackage ../../python-modules/arrow/2.nix { };
+    };
+  };
+in
+let
+  python3Packages = python3Packages2; # two separate let … in to avoid infinite recursion
+in
 python3Packages.buildPythonApplication rec {
   pname = "backblaze-b2";
-  version = "2.1.0";
+  version = "2.4.0";
 
-  src = fetchFromGitHub {
-    owner = "Backblaze";
-    repo = "B2_Command_Line_Tool";
-    rev = "v${version}";
-    sha256 = "1kkpvxqgh5pw4kr8lh5gy9d7960hv9zvajbjiqhj6xgykwbpbgmq";
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "b2";
+    sha256 = "sha256-nNQDdSjUolj3PjWRn1fPBAEtPlgeent2PxzHqwH1Z6s=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'setuptools_scm<6.0' 'setuptools_scm'
+  '';
+
   propagatedBuildInputs = with python3Packages; [
     b2sdk
     class-registry
     phx-class-registry
     setuptools
+    docutils
+    rst2ansi
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    setuptools-scm
   ];
 
   checkInputs = with python3Packages; [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/tools/bacon/default.nix b/nixpkgs/pkgs/development/tools/bacon/default.nix
new file mode 100644
index 000000000000..1cf066e6b494
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/bacon/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bacon";
+  version = "1.1.5";
+
+  src = fetchFromGitHub {
+    owner = "Canop";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wyx216q9q7y60bnnw4cbpv9zlbnjm2hwq0llkjw60fp3qalj9am";
+  };
+
+  cargoSha256 = "1pii5ajl3xgylrm20pkwbd1lk7gv0pshl1cxjfna0l63q56v7f21";
+
+  buildInputs = lib.optional stdenv.isDarwin CoreServices;
+
+  meta = with lib; {
+    description = "Background rust code checker";
+    homepage = "https://github.com/Canop/bacon";
+    license = licenses.agpl3Only;
+    maintainers = [ maintainers.FlorianFranzen ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix b/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
index 657704a653c7..e10a455c0906 100644
--- a/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
@@ -56,7 +56,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "0rwwjjj6zaj4hdcbsbp0di53xn6203r2vgpddhdrp8iph9ab60cg";
+    sha256 = "1j175z3d4fbi4pl35py7yjq7ywrvwin6id131jv32hx0ck4g1m46";
   };
 
   buildAttrs = {
diff --git a/nixpkgs/pkgs/development/tools/bazelisk/default.nix b/nixpkgs/pkgs/development/tools/bazelisk/default.nix
index ab73b8cd8f31..5bfe83def088 100644
--- a/nixpkgs/pkgs/development/tools/bazelisk/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazelisk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bD04wqmtBgdNlPGXz7/4kYQ97r9EthFfGExxOjt8u7k=";
+    sha256 = "sha256-APHRNCJNQ4cheY+wBB8q4fcOOL6SFeg5SflvnrxjYhI=";
   };
 
-  vendorSha256 = "sha256-IkW13y51NhKflAeHLu8k7DxRqYVnfMHSnfFuT6H/flo=";
+  vendorSha256 = "sha256-+B+5GQTEiCwLCoGB5uIIJEWJRjylgt9txcsJCXcOAQs=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/boomerang/default.nix b/nixpkgs/pkgs/development/tools/boomerang/default.nix
index 4ac9159520fb..b37ab9a2d3f9 100644
--- a/nixpkgs/pkgs/development/tools/boomerang/default.nix
+++ b/nixpkgs/pkgs/development/tools/boomerang/default.nix
@@ -1,8 +1,11 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, qtbase, capstone, bison, flex }:
+{ mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, qtbase, capstone, bison, flex }:
 
 mkDerivation rec {
   pname = "boomerang";
   version = "0.5.2";
+  # NOTE: When bumping version beyond 0.5.2, you likely need to remove
+  #       the cstdint.patch below. The patch does a fix that has already
+  #       been done upstream but is not yet part of a release
 
   src = fetchFromGitHub {
     owner = "BoomerangDecompiler";
@@ -13,6 +16,13 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake bison flex ];
   buildInputs = [ qtbase capstone ];
+  patches = [
+    (fetchpatch {
+      name = "include-missing-cstdint.patch";
+      url = "https://github.com/BoomerangDecompiler/boomerang/commit/3342b0eac6b7617d9913226c06c1470820593e74.patch";
+      sha256 = "sha256-941IydcV3mqj7AWvXTM6GePW5VgawEcL0wrBCXqeWvc=";
+    })
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/BoomerangDecompiler/boomerang";
diff --git a/nixpkgs/pkgs/development/tools/boost-build/darwin-default-toolset.patch b/nixpkgs/pkgs/development/tools/boost-build/darwin-default-toolset.patch
new file mode 100644
index 000000000000..ebe3f8d2e1ea
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/boost-build/darwin-default-toolset.patch
@@ -0,0 +1,12 @@
+diff --git a/src/build-system.jam b/src/build-system.jam
+index 60425c54..c6842217 100644
+--- a/src/build-system.jam
++++ b/src/build-system.jam
+@@ -644,7 +644,7 @@ local rule should-clean-project ( project )
+             }
+             else if [ os.name ] = MACOSX
+             {
+-                default-toolset = darwin ;
++                default-toolset = clang-darwin ;
+             }
+         }
diff --git a/nixpkgs/pkgs/development/tools/boost-build/default.nix b/nixpkgs/pkgs/development/tools/boost-build/default.nix
index a821e661a604..5016aa590b5f 100644
--- a/nixpkgs/pkgs/development/tools/boost-build/default.nix
+++ b/nixpkgs/pkgs/development/tools/boost-build/default.nix
@@ -15,6 +15,11 @@ stdenv.mkDerivation rec {
     sha256 = "1r4rwlq87ydmsdqrik4ly5iai796qalvw7603mridg2nwcbbnf54";
   };
 
+  patches = [
+    # Upstream defaults to gcc on darwin, but we use clang.
+    ./darwin-default-toolset.patch
+  ];
+
   nativeBuildInputs = [
     bison
   ];
diff --git a/nixpkgs/pkgs/development/tools/buf/default.nix b/nixpkgs/pkgs/development/tools/buf/default.nix
index fc232d55da6d..8d76b8925dc7 100644
--- a/nixpkgs/pkgs/development/tools/buf/default.nix
+++ b/nixpkgs/pkgs/development/tools/buf/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-N6o+1cfer8rgKJ3+CL25axJSjGV/YSG1sLIHXJzsC6o=";
+    sha256 = "sha256-f1UcvsXWW+fMAgTRtHkEXmUN/DTrJ/Xd+9HbR2FjFog=";
   };
 
   patches = [
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ protobuf ];
 
-  vendorSha256 = "sha256-vl+WqtpegoAvylx/lcyfJk8DAOub8U4Lx3Pe3eW4M/E=";
+  vendorSha256 = "sha256-XMGXVsSLEzuzujX5Fg3LLkgzyJY+nIBJEO9iI2t9eGc=";
 
   meta = with lib; {
     description = "Create consistent Protobuf APIs that preserve compatibility and comply with design best-practices";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
index 3a1866e0b399..9e0103170e9f 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
@@ -2,16 +2,15 @@
 
 assert jdk != null;
 
-let version = "3.6.3"; in
 stdenv.mkDerivation rec {
   pname = "apache-maven";
-  inherit version;
+  version = "3.8.1";
 
   builder = ./builder.sh;
 
   src = fetchurl {
     url = "mirror://apache/maven/maven-3/${version}/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "1i9qlj3vy4j1yyf22nwisd0pg88n9qzp9ymfhwqabadka7br3b96";
+    sha256 = "00pgmc9v2s2970wgl2ksvpqy4lxx17zhjm9fgd10fkamxc2ik2mr";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 1dfe784ec254..711b971c2d88 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -1,85 +1,22 @@
-{ buildBazelPackage
-, cacert
+{ buildGoModule
 , fetchFromGitHub
-, git
-, go
 , lib
-, stdenv
 }:
 
-buildBazelPackage rec {
+buildGoModule rec {
   pname = "bazel-remote";
-  version = "1.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "buchgr";
-    repo = "bazel-remote";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "1fpdw139d5q1377qnqbgkahmdr4mdaa17d2m10wkyvyvijwm4r2m";
+    sha256 = "193amcx4nk7mr51jcawym46gizqmfkvksjxm64pf7s3wraf00v01";
   };
 
-  nativeBuildInputs = [ go git ];
+  vendorSha256 = "1sxv9mya8plkn3hpjgfpzgwlh4m3cbhpywqv86brj2h9i4ad0gl5";
 
-  bazelTarget = "//:bazel-remote";
-
-  removeRulesCC = false;
-
-  # this is to work around `test -f` failing when called by gazelle
-  # https://github.com/bazelbuild/bazel-gazelle/blob/v0.19.1/internal/go_repository.bzl#L135
-  patches = [ ./disable_build_file_generation.patch ];
-
-  fetchAttrs = {
-    preBuild = ''
-      patchShebangs .
-
-      # tell rules_go to use the Go binary found in the PATH
-      sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
-
-      # tell rules_go to invoke GIT with custom CAINFO path
-      export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt"
-
-      # force gazelle to use the nix go cache rather than its own
-      # export GO_REPOSITORY_USE_HOST_CACHE=1
-    '';
-
-    preInstall = ''
-      # Remove the go_sdk (it's just a copy of the go derivation) and all
-      # references to it from the marker files. Bazel does not need to download
-      # this sdk because we have patched the WORKSPACE file to point to the one
-      # currently present in PATH. Without removing the go_sdk from the marker
-      # file, the hash of it will change anytime the Go derivation changes and
-      # that would lead to impurities in the marker files which would result in
-      # a different sha256 for the fetch phase.
-      rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker}
-      sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker
-
-      # Remove the gazelle repository cache as it contains built binaries
-      chmod -R u+w $bazelOut/external/bazel_gazelle_go_repository_cache
-      rm -rf $bazelOut/external/{bazel_gazelle_go_repository_cache,\@bazel_gazelle_go_repository_cache.marker}
-      sed -e '/^FILE:@bazel_gazelle_go_repository_cache.*/d' -i $bazelOut/external/\@*.marker
-
-      # Remove the gazelle tools, they contain go binaries that are built
-      # non-deterministically. As long as the gazelle version matches the tools
-      # should be equivalent.
-      rm -rf $bazelOut/external/{bazel_gazelle_go_repository_tools,\@bazel_gazelle_go_repository_tools.marker}
-      sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
-    '';
-
-    sha256 = "1vijh3nl30n8k6xlx6in92pzs70x15akbqiqalk8apgvphvdz8vy";
-  };
-
-  buildAttrs = {
-    preBuild = ''
-      patchShebangs .
-
-      # tell rules_go to use the Go binary found in the PATH
-      sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
-    '';
-
-    installPhase = ''
-      install -Dm755 bazel-bin/*_pure_stripped/bazel-remote $out/bin/bazel-remote
-    '';
-  };
+  doCheck = false;
 
   meta = with lib; {
     homepage = "https://github.com/buchgr/bazel-remote";
@@ -87,6 +24,5 @@ buildBazelPackage rec {
     license = licenses.asl20;
     maintainers = [ maintainers.uri-canva ];
     platforms = platforms.darwin ++ platforms.linux;
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index 5b20ece76803..fd29102b7e58 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -371,7 +371,7 @@ stdenv.mkDerivation rec {
 
       # libcxx includes aren't added by libcxx hook
       # https://github.com/NixOS/nixpkgs/pull/41589
-      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${libcxx}/include/c++/v1"
+      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${lib.getDev libcxx}/include/c++/v1"
 
       # don't use system installed Xcode to run clang, use Nix clang instead
       sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
index 31dbc2779cde..6cd378492e32 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
@@ -27,12 +27,12 @@
 }:
 
 let
-  version = "4.0.0";
+  version = "4.1.0";
   sourceRoot = ".";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "1lfdx54dpzwrqysg5ngqhq7a0i01xk981crd4pdk4jb5f07ghl6k";
+    sha256 = "1svf9n345m0ag05hlcw3cwsl6bw2imcn4da25yyzcl3ar5axfxzk";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -52,8 +52,8 @@ let
       srcs.io_bazel_rules_sass
       srcs.platforms
       (if stdenv.hostPlatform.isDarwin
-       then srcs."java_tools_javac11_darwin-v10.5.zip"
-       else srcs."java_tools_javac11_linux-v10.5.zip")
+       then srcs."java_tools_javac11_darwin-v10.6.zip"
+       else srcs."java_tools_javac11_linux-v10.6.zip")
       srcs."coverage_output_generator-v2.5.zip"
       srcs.build_bazel_rules_nodejs
       srcs."android_tools_pkg-0.19.0rc3.tar.gz"
@@ -120,7 +120,7 @@ let
   remote_java_tools = stdenv.mkDerivation {
     name = "remote_java_tools_${system}";
 
-    src = srcDepsSet."java_tools_javac11_${system}-v10.5.zip";
+    src = srcDepsSet."java_tools_javac11_${system}-v10.6.zip";
 
     nativeBuildInputs = [ autoPatchelfHook unzip ];
     buildInputs = [ gcc-unwrapped ];
@@ -128,12 +128,20 @@ let
     sourceRoot = ".";
 
     buildPhase = ''
+      runHook preBuild
+
       mkdir $out;
+
+      runHook postBuild
     '';
 
     installPhase = ''
+      runHook preInstall
+
       cp -Ra * $out/
       touch $out/WORKSPACE
+
+      runHook postInstall
     '';
   };
 
@@ -318,7 +326,11 @@ stdenv.mkDerivation rec {
     nativeBuildInputs = [ unzip ];
     inherit sourceRoot;
     installPhase = ''
+      runHook preInstall
+
       cp -r . "$out"
+
+      runHook postInstall
     '';
   };
   # update the list of workspace dependencies
@@ -388,7 +400,7 @@ stdenv.mkDerivation rec {
 
       # libcxx includes aren't added by libcxx hook
       # https://github.com/NixOS/nixpkgs/pull/41589
-      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${libcxx}/include/c++/v1"
+      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${lib.getDev libcxx}/include/c++/v1"
 
       # don't use system installed Xcode to run clang, use Nix clang instead
       sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
@@ -430,7 +442,7 @@ stdenv.mkDerivation rec {
         --replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\""
 
       # substituteInPlace is rather slow, so prefilter the files with grep
-      grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
+      grep -rlZ /bin/ src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
         # If you add more replacements here, you must change the grep above!
         # Only files containing /bin are taken into account.
         # We default to python3 where possible. See also `postFixup` where
@@ -540,6 +552,8 @@ stdenv.mkDerivation rec {
   # Needed to build fish completion
   propagatedBuildInputs = [ python3.pkgs.absl-py ];
   buildPhase = ''
+    runHook preBuild
+
     # Increasing memory during compilation might be necessary.
     # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
 
@@ -567,9 +581,13 @@ stdenv.mkDerivation rec {
     export HOME=$(mktemp -d)
     ./output/bazel build  src/tools/execlog:parser_deploy.jar
     cd -
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
 
     # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
@@ -632,6 +650,8 @@ stdenv.mkDerivation rec {
 
     # second call succeeds because it defers to $out/bin/bazel-{version}-{os_arch}
     hello_test
+
+    runHook postInstall
   '';
 
   # Save paths to hardcoded dependencies so Nix can detect them.
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json
index 43ad41003152..3027183aef39 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json
@@ -23,14 +23,6 @@
             "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz"
         ]
     },
-    "46993efdd33b73649796c5fc5c9efb193ae19d51.zip": {
-        "name": "46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
-        ]
-    },
     "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
         "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
         "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
@@ -159,11 +151,11 @@
         "generator_function": "grpc_deps",
         "generator_name": "boringssl",
         "name": "boringssl",
-        "sha256": "81333e496d7b74a60aa6fa622c028ba382a0a6b9c815cc6ccb221042383b9a9b",
-        "strip_prefix": "boringssl-412844d75b14b9090b58423fd5f5ed8c2fd80212",
+        "sha256": "cb0fd3eda612d4ae4be21108938800a19b015717a7627ea7f530e3469d207707",
+        "strip_prefix": "boringssl-88aeb757f1a415c71fb4cbf5af936ecae4bc8179",
         "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/412844d75b14b9090b58423fd5f5ed8c2fd80212.tar.gz",
-            "https://github.com/google/boringssl/archive/412844d75b14b9090b58423fd5f5ed8c2fd80212.tar.gz"
+            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/88aeb757f1a415c71fb4cbf5af936ecae4bc8179.tar.gz",
+            "https://github.com/google/boringssl/archive/88aeb757f1a415c71fb4cbf5af936ecae4bc8179.tar.gz"
         ]
     },
     "build_bazel_apple_support": {
@@ -246,13 +238,13 @@
             "-p1"
         ],
         "patches": [
-            "//third_party/grpc:grpc_1.32.0.patch"
+            "//third_party/grpc:grpc_1.33.1.patch"
         ],
-        "sha256": "f880ebeb2ccf0e47721526c10dd97469200e40b5f101a0d9774eb69efa0bd07a",
-        "strip_prefix": "grpc-1.32.0",
+        "sha256": "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
+        "strip_prefix": "grpc-1.33.1",
         "urls": [
-            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.32.0.tar.gz",
-            "https://github.com/grpc/grpc/archive/v1.32.0.tar.gz"
+            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.33.1.tar.gz",
+            "https://github.com/grpc/grpc/archive/v1.33.1.tar.gz"
         ]
     },
     "com_google_absl": {
@@ -364,11 +356,11 @@
         "generator_function": "grpc_deps",
         "generator_name": "envoy_api",
         "name": "envoy_api",
-        "sha256": "9150f920abd3e710e0e58519cd769822f13d7a56988f2c34c2008815ec8d9c88",
-        "strip_prefix": "data-plane-api-8dcc476be69437b505af181a6e8b167fdb101d7e",
+        "sha256": "466585f253471259ce17641348149f458270316e81ec6702fdd8bf0b1b681256",
+        "strip_prefix": "data-plane-api-9997e1137cdb59e622af13e57ca915a2f3c9f84f",
         "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/8dcc476be69437b505af181a6e8b167fdb101d7e.tar.gz",
-            "https://github.com/envoyproxy/data-plane-api/archive/8dcc476be69437b505af181a6e8b167fdb101d7e.tar.gz"
+            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/9997e1137cdb59e622af13e57ca915a2f3c9f84f.tar.gz",
+            "https://github.com/envoyproxy/data-plane-api/archive/9997e1137cdb59e622af13e57ca915a2f3c9f84f.tar.gz"
         ]
     },
     "futures": {
@@ -428,25 +420,25 @@
             "https://github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz"
         ]
     },
-    "java_tools_javac11_darwin-v10.5.zip": {
-        "name": "java_tools_javac11_darwin-v10.5.zip",
-        "sha256": "95aae0a32a170c72a68abb0b9dd6bac7ea3e08c504a5d8c6e8bf7ac51628c98f",
+    "java_tools_javac11_darwin-v10.6.zip": {
+        "name": "java_tools_javac11_darwin-v10.6.zip",
+        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_darwin-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip"
         ]
     },
-    "java_tools_javac11_linux-v10.5.zip": {
-        "name": "java_tools_javac11_linux-v10.5.zip",
-        "sha256": "355c27c603e8fc64bb0e2d7f809741f42576d5f4540f9ce28fd55922085af639",
+    "java_tools_javac11_linux-v10.6.zip": {
+        "name": "java_tools_javac11_linux-v10.6.zip",
+        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_linux-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip"
         ]
     },
-    "java_tools_javac11_windows-v10.5.zip": {
-        "name": "java_tools_javac11_windows-v10.5.zip",
-        "sha256": "0b4469ca1a9b3f26cb82fb0f4fd00096f0d839ec2fae097e7bdbb982e3a95a59",
+    "java_tools_javac11_windows-v10.6.zip": {
+        "name": "java_tools_javac11_windows-v10.6.zip",
+        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_windows-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip"
         ]
     },
     "java_tools_langtools_javac11": {
@@ -673,6 +665,16 @@
             "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.7.0.tar"
         ]
     },
+    "openjdk11_darwin_aarch64_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk11_darwin_aarch64_archive",
+        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
+        "strip_prefix": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
+            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
+        ]
+    },
     "openjdk11_darwin_archive": {
         "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
         "name": "openjdk11_darwin_archive",
@@ -727,6 +729,16 @@
             "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"
         ]
     },
+    "openjdk15_darwin_aarch64_archive": {
+        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+        "name": "openjdk15_darwin_aarch64_archive",
+        "sha256": "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5",
+        "strip_prefix": "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
+            "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz"
+        ]
+    },
     "openjdk15_darwin_archive": {
         "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
         "name": "openjdk15_darwin_archive",
@@ -823,25 +835,50 @@
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
         ]
     },
-    "openjdk_macos": {
+    "openjdk_macos_aarch64": {
+        "downloaded_file_path": "zulu-macos-aarch64.tar.gz",
+        "name": "openjdk_macos_aarch64",
+        "sha256": "a900ef793cb34b03ac5d93ea2f67291b6842e99d500934e19393a8d8f9bfa6ff",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-allmodules-1611665569.tar.gz"
+        ]
+    },
+    "openjdk_macos_aarch64_minimal": {
+        "downloaded_file_path": "zulu-macos-aarch64-minimal.tar.gz",
+        "name": "openjdk_macos_aarch64_minimal",
+        "sha256": "f4f606926e6deeaa8b8397e299313d9df87642fe464b0ccf1ed0432aeb00640b",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-minimal-1611665562.tar.gz"
+        ]
+    },
+    "openjdk_macos_aarch64_vanilla": {
+        "downloaded_file_path": "zulu-macos-aarch64-vanilla.tar.gz",
+        "name": "openjdk_macos_aarch64_vanilla",
+        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
+            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
+        ]
+    },
+    "openjdk_macos_x86_64": {
         "downloaded_file_path": "zulu-macos.tar.gz",
-        "name": "openjdk_macos",
+        "name": "openjdk_macos_x86_64",
         "sha256": "8e283cfd23c7555be8e17295ed76eb8f00324c88ab904b8de37bbe08f90e569b",
         "urls": [
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689066.tar.gz"
         ]
     },
-    "openjdk_macos_minimal": {
+    "openjdk_macos_x86_64_minimal": {
         "downloaded_file_path": "zulu-macos-minimal.tar.gz",
-        "name": "openjdk_macos_minimal",
+        "name": "openjdk_macos_x86_64_minimal",
         "sha256": "1bacb1c07035d4066d79f0b65b4ea0ebd1954f3662bdfe3618da382ac8fd23a6",
         "urls": [
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689063.tar.gz"
         ]
     },
-    "openjdk_macos_vanilla": {
+    "openjdk_macos_x86_64_vanilla": {
         "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
-        "name": "openjdk_macos_vanilla",
+        "name": "openjdk_macos_x86_64_vanilla",
         "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
         "urls": [
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
@@ -873,11 +910,18 @@
     },
     "platforms": {
         "name": "platforms",
-        "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
-        "strip_prefix": "platforms-46993efdd33b73649796c5fc5c9efb193ae19d51",
+        "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz",
+            "https://github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz"
+        ]
+    },
+    "platforms-0.0.4.tar.gz": {
+        "name": "platforms-0.0.4.tar.gz",
+        "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d",
         "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
-            "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
+            "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz",
+            "https://github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz"
         ]
     },
     "remote_coverage_tools": {
@@ -922,10 +966,10 @@
         "patch_cmds_win": [
             "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
         ],
-        "sha256": "95aae0a32a170c72a68abb0b9dd6bac7ea3e08c504a5d8c6e8bf7ac51628c98f",
+        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_darwin-v10.5.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.5/java_tools_javac11_darwin-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_darwin-v10.6.zip"
         ]
     },
     "remote_java_tools_javac11_test_darwin": {
@@ -938,9 +982,9 @@
         "patch_cmds_win": [
             "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
         ],
-        "sha256": "95aae0a32a170c72a68abb0b9dd6bac7ea3e08c504a5d8c6e8bf7ac51628c98f",
+        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_darwin-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip"
         ]
     },
     "remote_java_tools_javac11_test_linux": {
@@ -953,9 +997,9 @@
         "patch_cmds_win": [
             "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
         ],
-        "sha256": "355c27c603e8fc64bb0e2d7f809741f42576d5f4540f9ce28fd55922085af639",
+        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_linux-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip"
         ]
     },
     "remote_java_tools_javac11_test_windows": {
@@ -968,9 +1012,9 @@
         "patch_cmds_win": [
             "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
         ],
-        "sha256": "0b4469ca1a9b3f26cb82fb0f4fd00096f0d839ec2fae097e7bdbb982e3a95a59",
+        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_windows-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip"
         ]
     },
     "remote_java_tools_linux": {
@@ -993,10 +1037,10 @@
         "patch_cmds_win": [
             "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
         ],
-        "sha256": "355c27c603e8fc64bb0e2d7f809741f42576d5f4540f9ce28fd55922085af639",
+        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_linux-v10.5.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.5/java_tools_javac11_linux-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_linux-v10.6.zip"
         ]
     },
     "remote_java_tools_windows": {
@@ -1019,10 +1063,10 @@
         "patch_cmds_win": [
             "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
         ],
-        "sha256": "0b4469ca1a9b3f26cb82fb0f4fd00096f0d839ec2fae097e7bdbb982e3a95a59",
+        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
         "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.5/java_tools_javac11_windows-v10.5.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.5/java_tools_javac11_windows-v10.5.zip"
+            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip",
+            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_windows-v10.6.zip"
         ]
     },
     "remotejdk11_linux": {
@@ -1152,6 +1196,24 @@
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
         ]
     },
+    "remotejdk11_macos_aarch64_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_macos_aarch64_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
+        "strip_prefix": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
+            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
+        ]
+    },
     "remotejdk11_macos_for_testing": {
         "build_file": "@local_jdk//:BUILD.bazel",
         "name": "remotejdk11_macos_for_testing",
@@ -1299,6 +1361,24 @@
             "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz"
         ]
     },
+    "remotejdk15_macos_aarch64_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk15_macos_aarch64_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5",
+        "strip_prefix": "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
+            "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz"
+        ]
+    },
     "remotejdk15_macos_for_testing": {
         "build_file": "@local_jdk//:BUILD.bazel",
         "name": "remotejdk15_macos_for_testing",
@@ -1439,12 +1519,12 @@
             "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz"
         ]
     },
-    "v1.32.0.tar.gz": {
-        "name": "v1.32.0.tar.gz",
-        "sha256": "f880ebeb2ccf0e47721526c10dd97469200e40b5f101a0d9774eb69efa0bd07a",
+    "v1.33.1.tar.gz": {
+        "name": "v1.33.1.tar.gz",
+        "sha256": "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
         "urls": [
-            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.32.0.tar.gz",
-            "https://github.com/grpc/grpc/archive/v1.32.0.tar.gz"
+            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.33.1.tar.gz",
+            "https://github.com/grpc/grpc/archive/v1.33.1.tar.gz"
         ]
     },
     "v3.13.0.tar.gz": {
@@ -1494,5 +1574,12 @@
         "urls": [
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
         ]
+    },
+    "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz": {
+        "name": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
+        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
+        "urls": [
+            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
+        ]
     }
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
index e79e06a71f4e..a93de053c446 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
@@ -1,23 +1,82 @@
-{ lib, stdenv, fetchurl
-, getopt
+{ lib, stdenv, fetchurl, fetchpatch
+, getopt, tzdata
 }:
 
 stdenv.mkDerivation rec {
   pname = "bmake";
-  version = "20200902";
+  version = "20210420";
 
   src = fetchurl {
     url    = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
-    sha256 = "1v1v81llsiy8qbpy38nml1x08dhrihwh040pqgwbwb9zy1108b08";
+    sha256 = "1ajq8v5rq3pl5y9h1hlscs83007fsyk3lhcp87z09ma370lm3ra7";
   };
 
+  # Make tests work with musl
+  # * Disable deptgt-delete_on_error test (alpine does this too)
+  # * Fix test failing due to different strerror(3) output for musl and glibc
+  postPatch = lib.optionalString (stdenv.hostPlatform.libc == "musl") ''
+    sed -i unit-tests/Makefile -e '/deptgt-delete_on_error/d'
+    substituteInPlace unit-tests/opt-chdir.exp --replace "File name" "Filename"
+  '';
+
   nativeBuildInputs = [ getopt ];
 
   patches = [
+    # make bootstrap script aware of the prefix in /nix/store
     ./bootstrap-fix.patch
+    # preserve PATH from build env in unit tests
     ./fix-unexport-env-test.patch
+    # Fix localtime tests without global /etc/zoneinfo directory
+    ./fix-localtime-test.patch
+    # decouple tests from build phase
+    (fetchpatch {
+      name = "separate-tests.patch";
+      url = "https://raw.githubusercontent.com/alpinelinux/aports/2a36f7b79df44136c4d2b8e9512f908af65adfee/community/bmake/separate-tests.patch";
+      sha256 = "00s76jwyr83c6rkvq67b1lxs8jhm0gj2rjgy77xazqr5400slj9a";
+    })
+    # add a shebang to bmake's install(1) replacement
+    (fetchpatch {
+      name = "install-sh.patch";
+      url = "https://raw.githubusercontent.com/alpinelinux/aports/34cd8c45397c63c041cf3cbe1ba5232fd9331196/community/bmake/install-sh.patch";
+      sha256 = "0z8icd6akb96r4cksqnhynkn591vbxlmrrs4w6wil3r6ggk6mwa6";
+    })
+  ];
+
+  # The generated makefile is a small wrapper for calling ./boot-strap
+  # with a given op. On a case-insensitive filesystem this generated
+  # makefile clobbers a distinct, shipped, Makefile and causes
+  # infinite recursion during tests which eventually fail with
+  # "fork: Resource temporarily unavailable"
+  configureFlags = [
+    "--without-makefile"
   ];
 
+  buildPhase = ''
+    runHook preBuild
+
+    ./boot-strap --prefix=$out -o . op=build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    ./boot-strap --prefix=$out -o . op=install
+
+    runHook postInstall
+  '';
+
+  doCheck = true;
+  checkInputs = [ tzdata ];
+  checkPhase = ''
+    runHook preCheck
+
+    ./boot-strap -o . op=test
+
+    runHook postCheck
+  '';
+
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-localtime-test.patch b/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-localtime-test.patch
new file mode 100644
index 000000000000..b377292cce28
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-localtime-test.patch
@@ -0,0 +1,23 @@
+--- bmake/unit-tests/Makefile.orig	2021-05-30 14:24:38.822484317 +0200
++++ bmake/unit-tests/Makefile	2021-05-31 13:25:21.645751428 +0200
+@@ -455,7 +455,8 @@
+ ENV.varmisc=		FROM_ENV=env
+ ENV.varmisc+=		FROM_ENV_BEFORE=env
+ ENV.varmisc+=		FROM_ENV_AFTER=env
+-ENV.varmod-localtime+=	TZ=Europe/Berlin
++# Set absolute path to tz file since musl doesn't support TZDIR
++ENV.varmod-localtime+=	TZDIR=${TZDIR} TZ=:${TZDIR}/Europe/Berlin
+ ENV.varname-vpath+=	VPATH=varname-vpath.dir:varname-vpath.dir2
+ 
+ # Override make flags for some of the tests; default is -k.
+--- bmake/unit-tests/varmod-localtime.mk.orig	2021-05-30 14:30:34.397986246 +0200
++++ bmake/unit-tests/varmod-localtime.mk	2021-05-31 13:24:41.430906606 +0200
+@@ -3,7 +3,7 @@
+ # Tests for the :localtime variable modifier, which formats a timestamp
+ # using strftime(3) in local time.
+ 
+-.if ${TZ} != "Europe/Berlin"	# see unit-tests/Makefile
++.if ${TZ} != ":${TZDIR}/Europe/Berlin"	# see unit-tests/Makefile
+ .  error
+ .endif
+ 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch b/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch
index 339348f37c32..fbf7225a6d6f 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch
@@ -1,13 +1,13 @@
---- bmake/unit-tests/unexport-env.mk.orig       2019-02-19 10:24:14.356713136 -0800
-+++ bmake/unit-tests/unexport-env.mk    2019-02-19 10:25:43.838775388 -0800
-@@ -3,8 +3,8 @@
- # pick up a bunch of exported vars
+--- bmake/unit-tests/unexport-env.mk.orig	2021-05-27 14:44:45.263392298 +0200
++++ bmake/unit-tests/unexport-env.mk	2021-05-27 14:46:46.188881996 +0200
+@@ -4,8 +4,8 @@
+ FILTER_CMD=	grep ^UT_
  .include "export.mk"
  
 -# an example of setting up a minimal environment.
--PATH = /bin:/usr/bin:/sbin:/usr/sbin
+-PATH=	/bin:/usr/bin:/sbin:/usr/sbin
 +# preserve PATH so commands used in the "all" target are still available
-+PATH := ${PATH}
++PATH :=	${PATH}
  
  # now clobber the environment to just PATH and UT_TEST
- UT_TEST = unexport-env
+ UT_TEST=	unexport-env
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bmake/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/bmake/setup-hook.sh
index ae8f78ec90fa..c5ca27dd9105 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bmake/setup-hook.sh
+++ b/nixpkgs/pkgs/development/tools/build-managers/bmake/setup-hook.sh
@@ -1,3 +1,13 @@
+addMakeFlags() {
+    export prefix="$out"
+    export MANDIR="${!outputMan}/share/man"
+    export MANTARGET=man
+    export BINOWN=
+    export STRIP_FLAG=
+}
+
+preConfigureHooks+=(addMakeFlags)
+
 bmakeBuildPhase() {
     runHook preBuild
 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
index d14605074660..702652db878b 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
@@ -7,19 +7,15 @@
 , useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
 , useOpenSSL ? !isBootstrap, openssl
 , useNcurses ? false, ncurses
-, useQt4 ? false, qt4
 , withQt5 ? false, qtbase
+, buildDocs ? (!isBootstrap && (useNcurses || withQt5)), sphinx, texinfo
 }:
 
-assert withQt5 -> useQt4 == false;
-assert useQt4 -> withQt5 == false;
-
 stdenv.mkDerivation (rec {
   pname = "cmake"
           + lib.optionalString isBootstrap "-boot"
           + lib.optionalString useNcurses "-cursesUI"
-          + lib.optionalString withQt5 "-qt5UI"
-          + lib.optionalString useQt4 "-qt4UI";
+          + lib.optionalString withQt5 "-qt5UI";
   version = "3.19.7";
 
   src = fetchurl {
@@ -40,20 +36,21 @@ stdenv.mkDerivation (rec {
 
   ] ++ lib.optional stdenv.isCygwin ./3.2.2-cygwin.patch;
 
-  outputs = [ "out" ];
+  outputs = [ "out" ]
+    ++ lib.optionals buildDocs [ "man" "info" ];
   setOutputFlags = false;
 
   setupHook = ./setup-hook.sh;
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
-  nativeBuildInputs = [ setupHook pkg-config ];
+  nativeBuildInputs = [ setupHook pkg-config ]
+    ++ lib.optionals buildDocs [ texinfo ];
 
   buildInputs = []
     ++ lib.optionals useSharedLibraries [ bzip2 curlMinimal expat libarchive xz zlib libuv rhash ]
     ++ lib.optional useOpenSSL openssl
     ++ lib.optional useNcurses ncurses
-    ++ lib.optional useQt4 qt4
     ++ lib.optional withQt5 qtbase;
 
   propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
@@ -73,7 +70,12 @@ stdenv.mkDerivation (rec {
   configureFlags = [
     "--docdir=share/doc/${pname}${version}"
   ] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
-    ++ lib.optional (useQt4 || withQt5) "--qt-gui"
+    ++ lib.optional withQt5 "--qt-gui"
+    ++ lib.optionals buildDocs [
+      "--sphinx-build=${sphinx}/bin/sphinx-build"
+      "--sphinx-man"
+      "--sphinx-info"
+    ]
     # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568
     ++ lib.optionals stdenv.hostPlatform.is32bit [
       "CFLAGS=-D_FILE_OFFSET_BITS=64"
@@ -124,7 +126,7 @@ stdenv.mkDerivation (rec {
       configuration files, and generate native makefiles and workspaces that
       can be used in the compiler environment of your choice.
     '';
-    platforms = if useQt4 then qt4.meta.platforms else platforms.all;
+    platforms = platforms.all;
     maintainers = with maintainers; [ ttuegel lnl7 ];
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
index 0ec9d3ea93e6..9c3e99e23ad6 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
@@ -28,6 +28,17 @@ let newPython = python3.override {
         sha256 = "18hpzh1am1dqx81fypn57r2wk565fi4g14292qrc5jm1h9dalzld";
       };
     });
+    # https://github.com/conan-io/conan/issues/8876
+    pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
+      version = "1.7.1";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96";
+      };
+      disabledTests = [
+        "test_ec_verify_should_return_false_if_signature_invalid"
+      ];
+    });
   };
 };
 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix b/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix
index 601f7ea9fea0..0d62642e032c 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   # workaround for missing Cargo.lock file
   cargoPatches = [ ./cargo-lock.patch ];
 
-  cargoSha256 = "0hjfq61y1ikdcajr2k514k7fad2zxbwq7yb5nk1wx38f1524709q";
+  cargoSha256 = "033wif3wwm3912ppw0gshsyjxipilg9hhvkijw29zmjfm6074b21";
 
   # fac includes a unit test called ls_files_works which assumes it's
   # running in a git repo. Nix's sandbox runs cargo build outside git,
diff --git a/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix b/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
index 51b97b242d5c..90b17ed9bba9 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
@@ -3,17 +3,17 @@
 
 stdenv.mkDerivation rec {
   pname = "leiningen";
-  version = "2.9.5";
+  version = "2.9.6";
 
   src = fetchurl {
     url = "https://raw.github.com/technomancy/leiningen/${version}/bin/lein-pkg";
-    sha256 = "12kv3286a2vkm3qpm2msiks87mkspxddgl7bwiacdias9dfda09n";
+    sha256 = "0a8lq0yalar8szw155cxa8kywnk6yvakwi3xmxm1ahivn7i5hjq9";
   };
 
   jarsrc = fetchurl {
     # NOTE: This is actually a .jar, Github has issues
     url = "https://github.com/technomancy/leiningen/releases/download/${version}/${pname}-${version}-standalone.zip";
-    sha256 = "1shyvg1471sc3bv4h3ax51626xw8a8w05f43bny6gmp8pyc0qjfz";
+    sha256 = "1f3hb57rqp9qkh5n2wf65dvxraf21y15s3g643f2fhzc7vvl7ia1";
   };
 
   JARNAME = "${pname}-${version}-standalone.jar";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
index 4538c212da58..4fbd0365af95 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchurl {
     url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}";
-    sha256 = "142vr40p60mapvvb5amn8hz6a8930kxsz510baql40hai4yhga7z";
+    sha256 = "sha256-cAhcTmSPkV5z5ryuCNrpxy9/1iWvvminiVYul9c/DwM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
index c2b10d823a30..9be3d232fb89 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -1,137 +1,139 @@
 { lib, stdenv, fetchFromGitHub,
-  fetchHex, erlang,
-  tree }:
+  fetchHex, erlang, makeWrapper,
+  writeScript, common-updater-scripts, coreutils, git, gnused, nix, rebar3-nix }:
 
 let
-  version = "3.14.4";
-
-  # Dependencies should match the ones in:
-  # https://github.com/erlang/rebar3/blob/${version}/rebar.lock
-  # `sha256` could also be taken from https://hex.pm - Checksum
-
-  bbmustache = fetchHex {
-    pkg = "bbmustache";
-    version = "1.10.0";
-    sha256 = "1vp27jqnq65a8iqp7j4z8nw9ad29dhky5agmg8aj75dvshzzmvs3";
-  };
-  certifi = fetchHex {
-    pkg = "certifi";
-    version = "2.5.3";
-    sha256 = "040w1scglvqhcvc1ifdnlcyrbwr0smi00w4xi8h03c99775nllgd";
-  };
-  cf = fetchHex {
-    pkg = "cf";
-    version = "0.3.1";
-    sha256 = "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii";
-  };
-  cth_readable = fetchHex {
-    pkg = "cth_readable";
-    version = "1.5.0";
-    sha256 = "0z58b6frqdnhyzrmbdf6x78l3izbbh5z5i3am8hqc253r7xwv0dx";
+  version = "3.16.1";
+  owner = "erlang";
+  deps = import ./rebar-deps.nix { inherit fetchFromGitHub fetchHex; };
+  rebar3 = stdenv.mkDerivation rec {
+    pname = "rebar3";
+    inherit version erlang;
+
+    # How to obtain `sha256`:
+    # nix-prefetch-url --unpack https://github.com/erlang/rebar3/archive/${version}.tar.gz
+    src = fetchFromGitHub {
+      inherit owner;
+      repo = pname;
+      rev = version;
+      sha256 = "0dhwlx7zykf9y3znk2k8fxrq5j43jy3c3gd76k74q34p1xbajgzr";
+    };
+
+    buildInputs = [ erlang ];
+
+    postPatch = ''
+      mkdir -p _checkouts _build/default/lib/
+
+      ${toString (lib.mapAttrsToList (k: v: ''
+        cp -R --no-preserve=mode ${v} _checkouts/${k}
+      '') deps)}
+
+      # Bootstrap script expects the dependencies in _build/default/lib
+      # TODO: Make it accept checkouts?
+      for i in _checkouts/* ; do
+          ln -s $(pwd)/$i $(pwd)/_build/default/lib/
+      done
+    '';
+
+    buildPhase = ''
+      HOME=. escript bootstrap
+    '';
+
+    checkPhase = ''
+      HOME=. escript ./rebar3 ct
+    '';
+
+    doCheck = true;
+
+    installPhase = ''
+      mkdir -p $out/bin
+      cp rebar3 $out/bin/rebar3
+    '';
+
+    meta = {
+      homepage = "https://github.com/rebar/rebar3";
+      description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
+
+      longDescription = ''
+        rebar is a self-contained Erlang script, so it's easy to distribute or
+        even embed directly in a project. Where possible, rebar uses standard
+        Erlang/OTP conventions for project structures, thus minimizing the amount
+        of build configuration work. rebar also provides dependency management,
+        enabling application writers to easily re-use common libraries from a
+        variety of locations (hex.pm, git, hg, and so on).
+        '';
+
+      platforms = lib.platforms.unix;
+      maintainers = lib.teams.beam.members;
+      license = lib.licenses.asl20;
+    };
+
+    passthru.updateScript = writeScript "update.sh" ''
+      #!${stdenv.shell}
+      set -ox errexit
+      PATH=${
+        lib.makeBinPath [
+          common-updater-scripts
+          coreutils
+          git
+          gnused
+          nix
+          (rebar3WithPlugins { globalPlugins = [rebar3-nix]; })
+        ]
+      }
+      latest=$(list-git-tags https://github.com/${owner}/${pname}.git | sed -n '/[\d\.]\+/p' | sort -V | tail -1)
+      if [ "$latest" != "${version}" ]; then
+        nixpkgs="$(git rev-parse --show-toplevel)"
+        nix_path="$nixpkgs/pkgs/development/tools/build-managers/rebar3"
+        update-source-version rebar3 "$latest" --version-key=version --print-changes --file="$nix_path/default.nix"
+        tmpdir=$(mktemp -d)
+        cp -R $(nix-build $nixpkgs --no-out-link -A rebar3.src)/* "$tmpdir"
+        (cd "$tmpdir" && rebar3 nix lock -o "$nix_path/rebar-deps.nix")
+      else
+        echo "rebar3 is already up-to-date"
+      fi
+    '';
   };
-  erlware_commons = fetchHex {
-    pkg = "erlware_commons";
-    version = "1.4.0";
-    sha256 = "1rp2vkgzqm6sax7fc13rh9x6qzxsgg718dnv7l0kmarvyifcyphq";
-  };
-  eunit_formatters = fetchHex {
-    pkg = "eunit_formatters";
-    version = "0.5.0";
-    sha256 = "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n";
-  };
-  getopt = fetchHex {
-    pkg = "getopt";
-    version = "1.0.1";
-    sha256 = "53e1ab83b9ceb65c9672d3e7a35b8092e9bdc9b3ee80721471a161c10c59959c";
-  };
-  parse_trans = fetchHex {
-    pkg = "parse_trans";
-    version = "3.3.1";
-    sha256 = "12w8ai6b5s6b4hnvkav7hwxd846zdd74r32f84nkcmjzi1vrbk87";
-  };
-
-  providers = fetchHex {
-    pkg = "providers";
-    version = "1.8.1";
-    sha256 = "183b9128l4af60rs40agqh6kc6db33j4027ad6jajxn4x6nlamz4";
-  };
-
-  relx = fetchHex {
-    pkg = "relx";
-    version = "4.3.0";
-    sha256 = "0h044arh41sr92r1nlg176shavlv7pvw17alwklhszgwlr4hk3kk";
-  };
-
-  ssl_verify_fun = fetchHex {
-    pkg = "ssl_verify_fun";
-    version = "1.1.6";
-    sha256 = "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x";
-  };
-in
-stdenv.mkDerivation rec {
-  pname = "rebar3";
-  inherit version erlang;
-
-  # How to obtain `sha256`:
-  # nix-prefetch-url --unpack https://github.com/erlang/rebar3/archive/${version}.tar.gz
-  src = fetchFromGitHub {
-    owner = "erlang";
-    repo = pname;
-    rev = version;
-    sha256 = "09bnqwli93sq1pcz4h88ks7qg7k8yrjy9fd46yyp8xdl7i4irwy2";
-  };
-
-  bootstrapper = ./rebar3-nix-bootstrap;
-
-  buildInputs = [ erlang tree ];
-
-  postPatch = ''
-    mkdir -p _checkouts
-    mkdir -p _build/default/lib/
-
-    cp --no-preserve=mode -R ${bbmustache} _checkouts/bbmustache
-    cp --no-preserve=mode -R ${certifi} _checkouts/certifi
-    cp --no-preserve=mode -R ${cf} _checkouts/cf
-    cp --no-preserve=mode -R ${cth_readable} _checkouts/cth_readable
-    cp --no-preserve=mode -R ${erlware_commons} _checkouts/erlware_commons
-    cp --no-preserve=mode -R ${eunit_formatters} _checkouts/eunit_formatters
-    cp --no-preserve=mode -R ${getopt} _checkouts/getopt
-    cp --no-preserve=mode -R ${parse_trans} _checkouts/parse_trans
-    cp --no-preserve=mode -R ${providers} _checkouts/providers
-    cp --no-preserve=mode -R ${relx} _checkouts/relx
-    cp --no-preserve=mode -R ${ssl_verify_fun} _checkouts/ssl_verify_fun
-
-    # Bootstrap script expects the dependencies in _build/default/lib
-    # TODO: Make it accept checkouts?
-    for i in _checkouts/* ; do
-        ln -s $(pwd)/$i $(pwd)/_build/default/lib/
-    done
-  '';
-
-  buildPhase = ''
-    HOME=. escript bootstrap
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp rebar3 $out/bin/rebar3
-  '';
-
-  meta = {
-    homepage = "https://github.com/rebar/rebar3";
-    description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
-
-    longDescription = ''
-      rebar is a self-contained Erlang script, so it's easy to distribute or
-      even embed directly in a project. Where possible, rebar uses standard
-      Erlang/OTP conventions for project structures, thus minimizing the amount
-      of build configuration work. rebar also provides dependency management,
-      enabling application writers to easily re-use common libraries from a
-      variety of locations (hex.pm, git, hg, and so on).
+  rebar3WithPlugins = { plugins ? [ ], globalPlugins ? [ ] }:
+    let
+      pluginLibDirs = map (p: "${p}/lib/erlang/lib") (lib.unique (plugins ++ globalPlugins));
+      globalPluginNames = lib.unique (map (p: p.packageName) globalPlugins);
+      rebar3Patched = (rebar3.overrideAttrs (old: {
+
+        # skip-plugins.patch is necessary because otherwise rebar3 will always
+        # try to fetch plugins if they are not already present in _build.
+        #
+        # global-deps.patch makes it possible to use REBAR_GLOBAL_PLUGINS to
+        # instruct rebar3 to always load a certain plugin. It is necessary since
+        # REBAR_GLOBAL_CONFIG_DIR doesn't seem to work for this.
+        patches = [ ./skip-plugins.patch ./global-plugins.patch ];
+
+        # our patches cause the tests to fail
+        doCheck = false;
+      }));
+    in stdenv.mkDerivation {
+      pname = "rebar3-with-plugins";
+      inherit (rebar3) version;
+      nativeBuildInputs = [ erlang makeWrapper ];
+      unpackPhase = "true";
+
+      # Here we extract the rebar3 escript (like `rebar3_prv_local_install.erl`) and
+      # add plugins to the code path.
+
+      installPhase = ''
+        erl -noshell -eval '
+          {ok, Escript} = escript:extract("${rebar3Patched}/bin/rebar3", []),
+          {archive, Archive} = lists:keyfind(archive, 1, Escript),
+          {ok, _} = zip:extract(Archive, [{cwd, "'$out/lib'"}]),
+          init:stop(0)
+        '
+        cp ${./rebar_ignore_deps.erl} rebar_ignore_deps.erl
+        erlc -o $out/lib/rebar/ebin rebar_ignore_deps.erl
+        mkdir -p $out/bin
+        makeWrapper ${erlang}/bin/erl $out/bin/rebar3 \
+          --set REBAR_GLOBAL_PLUGINS "${toString globalPluginNames} rebar_ignore_deps" \
+          --suffix-each ERL_LIBS ":" "$out/lib ${toString pluginLibDirs}" \
+          --add-flags "+sbtu +A1 -noshell -boot start_clean -s rebar3 main -extra"
       '';
-
-    platforms = lib.platforms.unix;
-    maintainers = lib.teams.beam.members;
-    license = lib.licenses.asl20;
-  };
-}
+    };
+in { inherit rebar3 rebar3WithPlugins; }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/global-plugins.patch b/nixpkgs/pkgs/development/tools/build-managers/rebar3/global-plugins.patch
new file mode 100644
index 000000000000..9a8bb48f988a
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar3/global-plugins.patch
@@ -0,0 +1,14 @@
+diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl
+index f2d22233..bee2cf18 100644
+--- a/src/rebar_plugins.erl
++++ b/src/rebar_plugins.erl
+@@ -30,7 +30,8 @@ project_plugins_install(State) ->
+ top_level_install(State) ->
+     Profiles = rebar_state:current_profiles(State),
+     lists:foldl(fun(Profile, StateAcc) ->
+-                        Plugins = rebar_state:get(State, {plugins, Profile}, []),
++                        Plugins = rebar_state:get(State, {plugins, Profile}, [])
++                            ++ [list_to_atom(P) || P <- string:lexemes(os:getenv("REBAR_GLOBAL_PLUGINS", ""), " ")],
+                         handle_plugins(Profile, Plugins, StateAcc)
+                 end, State, Profiles).
+ 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix b/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix
new file mode 100644
index 000000000000..34c4821aaeca
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix
@@ -0,0 +1,118 @@
+# Generated by rebar3_nix
+let fetchOnly = { src, ... }: src;
+in { builder ? fetchOnly, fetchHex, fetchFromGitHub, overrides ? (x: y: { }) }:
+let
+  self = packages // (overrides self packages);
+  packages = with self; {
+    ssl_verify_fun = builder {
+      name = "ssl_verify_fun";
+      version = "1.1.6";
+      src = fetchHex {
+        pkg = "ssl_verify_fun";
+        version = "1.1.6";
+        sha256 = "sha256-vbDSRx9FPIj/OQjnaG+G+b4yfQZcwewW+kVAGX6gRoA=";
+      };
+      beamDeps = [ ];
+    };
+    relx = builder {
+      name = "relx";
+      version = "4.4.0";
+      src = fetchHex {
+        pkg = "relx";
+        version = "4.4.0";
+        sha256 = "sha256-VcDtY7tdVeuYOhnrlNfzB1320Sbb3/QxAqZmCpH86SU=";
+      };
+      beamDeps = [ bbmustache ];
+    };
+    providers = builder {
+      name = "providers";
+      version = "1.8.1";
+      src = fetchHex {
+        pkg = "providers";
+        version = "1.8.1";
+        sha256 = "sha256-5FdFrenEdqmkaeoIQOQYqxk2DcRPAaIzME4RikRIa6A=";
+      };
+      beamDeps = [ getopt ];
+    };
+    getopt = builder {
+      name = "getopt";
+      version = "1.0.1";
+      src = fetchHex {
+        pkg = "getopt";
+        version = "1.0.1";
+        sha256 = "sha256-U+Grg7nOtlyWctPno1uAkum9ybPugHIUcaFhwQxZlZw=";
+      };
+      beamDeps = [ ];
+    };
+    eunit_formatters = builder {
+      name = "eunit_formatters";
+      version = "0.5.0";
+      src = fetchHex {
+        pkg = "eunit_formatters";
+        version = "0.5.0";
+        sha256 = "sha256-1si6ITQklE5uBbvAl8MgAc3Qq+OSXQJFTyKbINaHY8k=";
+      };
+      beamDeps = [ ];
+    };
+    erlware_commons = builder {
+      name = "erlware_commons";
+      version = "1.5.0";
+      src = fetchHex {
+        pkg = "erlware_commons";
+        version = "1.5.0";
+        sha256 = "sha256-PnxvsrpMKbDdXf6dAxtmRJ4giOzsGoFGW9n94F7X0Ns=";
+      };
+      beamDeps = [ cf ];
+    };
+    cth_readable = builder {
+      name = "cth_readable";
+      version = "1.5.1";
+      src = fetchHex {
+        pkg = "cth_readable";
+        version = "1.5.1";
+        sha256 = "sha256-aGVBoi7+bKWkGgR7OVFsLdKPs8reXySi8ZFFs5Z/nYA=";
+      };
+      beamDeps = [ cf ];
+    };
+    cf = builder {
+      name = "cf";
+      version = "0.3.1";
+      src = fetchHex {
+        pkg = "cf";
+        version = "0.3.1";
+        sha256 = "sha256-MV6NRH06SwK82/o5etA7u5iKbgqm9E063Q9OPDv5dnI=";
+      };
+      beamDeps = [ ];
+    };
+    certifi = builder {
+      name = "certifi";
+      version = "2.6.1";
+      src = fetchHex {
+        pkg = "certifi";
+        version = "2.6.1";
+        sha256 = "sha256-UkyXtJkbOEndXBemMSI4licsawr0RneLpGdaHf9Tu34=";
+      };
+      beamDeps = [ ];
+    };
+    bbmustache = builder {
+      name = "bbmustache";
+      version = "1.10.0";
+      src = fetchHex {
+        pkg = "bbmustache";
+        version = "1.10.0";
+        sha256 = "sha256-Q+/6P9S7lSMVevWp4idsSTSVuEWfyHNxRKoYbLE84u4=";
+      };
+      beamDeps = [ ];
+    };
+    meck = builder {
+      name = "meck";
+      version = "0.8.13";
+      src = fetchHex {
+        pkg = "meck";
+        version = "0.8.13";
+        sha256 = "sha256-008BPBVttRrVfMVWiRuXIOahwd9f4uFa+ZnITWzr6xo=";
+      };
+      beamDeps = [ ];
+    };
+  };
+in self
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap b/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap
deleted file mode 100755
index f1deed1df352..000000000000
--- a/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap
+++ /dev/null
@@ -1,267 +0,0 @@
-#!/usr/bin/env escript
-%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
-%%! -smp enable
-%%% ---------------------------------------------------------------------------
-%%% @doc
-%%% The purpose of this command is to prepare a rebar3 project so that
-%%% rebar3 understands that the dependencies are all already
-%%% installed. If you want a hygienic build on nix then you must run
-%%% this command before running rebar3. I suggest that you add a
-%%% `Makefile` to your project and have the bootstrap command be a
-%%% dependency of the build commands. See the nix documentation for
-%%% more information.
-%%%
-%%% This command designed to have as few dependencies as possible so
-%%% that it can be a dependency of root level packages like rebar3. To
-%%% that end it does many things in a fairly simplistic way. That is
-%%% by design.
-%%%
-%%% ### Assumptions
-%%%
-%%% This command makes the following assumptions:
-%%%
-%%% * It is run in a nix-shell or nix-build environment
-%%% * that all dependencies have been added to the ERL_LIBS
-%%%   Environment Variable
-
--record(data, {version
-              , debug_info = false
-              , compile_ports
-              , erl_libs
-              , plugins
-              , root
-              , name}).
-
--define(HEX_REGISTRY_PATH, ".cache/rebar3/hex/default/registry").
-
-main(Args) ->
-    {ok, ArgData} = parse_args(Args),
-    {ok, RequiredData} = gather_required_data_from_the_environment(ArgData),
-    do_the_bootstrap(RequiredData).
-
--spec do_the_bootstrap(#data{}) -> ok.
-do_the_bootstrap(RequiredData) ->
-    ok = bootstrap_configs(RequiredData),
-    ok = bootstrap_plugins(RequiredData),
-    ok = bootstrap_libs(RequiredData).
-
-%% @doc
-%% Argument parsing is super simple only because we want to keep the
-%% dependencies minimal. For now there can be one entry on the
-%% command line: "debug-info"
--spec parse_args([string()]) -> #data{}.
-parse_args(Args0) ->
-    PossibleArgs = sets:from_list(["debug-info"]),
-    Args1 = sets:from_list(Args0),
-    Result = sets:subtract(Args1, PossibleArgs),
-    case sets:to_list(Result) of
-        [] ->
-            {ok, #data{debug_info = sets:is_element("debug-info", Args1)}};
-        UnknownArgs ->
-            io:format("Unexpected command line arguments passed in: ~p~n",
-                      [UnknownArgs]),
-            erlang:halt(120)
-    end.
-
-
--spec bootstrap_configs(#data{}) -> ok.
-bootstrap_configs(RequiredData)->
-    io:format("Boostrapping app and rebar configurations~n"),
-    ok = if_single_app_project_update_app_src_version(RequiredData),
-    ok = if_compile_ports_add_pc_plugin(RequiredData),
-    ok = if_debug_info_add(RequiredData).
-
--spec bootstrap_plugins(#data{}) -> ok.
-bootstrap_plugins(#data{plugins = Plugins}) ->
-    io:format("Bootstrapping rebar3 plugins~n"),
-    Target = "_build/default/plugins/",
-    Paths = string:tokens(Plugins, " "),
-    CopiableFiles =
-        lists:foldl(fun(Path, Acc) ->
-                            gather_dependency(Path) ++ Acc
-                    end, [], Paths),
-    lists:foreach(fun (Path) ->
-                          ok = link_app(Path, Target)
-                  end, CopiableFiles).
-
--spec bootstrap_libs(#data{}) -> ok.
-bootstrap_libs(#data{erl_libs = ErlLibs}) ->
-    io:format("Bootstrapping dependent libraries~n"),
-    Target = "_build/default/lib/",
-    Paths = string:tokens(ErlLibs, ":"),
-    CopiableFiles =
-        lists:foldl(fun(Path, Acc) ->
-                            gather_directory_contents(Path) ++ Acc
-                    end, [], Paths),
-    lists:foreach(fun (Path) ->
-                          ok = link_app(Path, Target)
-                  end, CopiableFiles).
-
--spec gather_dependency(string()) -> [{string(), string()}].
-gather_dependency(Path) ->
-    FullLibrary = filename:join(Path, "lib/erlang/lib/"),
-    case filelib:is_dir(FullLibrary) of
-        true ->
-            gather_directory_contents(FullLibrary);
-        false ->
-            [raw_hex(Path)]
-    end.
-
--spec raw_hex(string()) -> {string(), string()}.
-raw_hex(Path) ->
-    [_, Name] = re:split(Path, "-hex-source-"),
-    {Path, erlang:binary_to_list(Name)}.
-
--spec gather_directory_contents(string()) -> [{string(), string()}].
-gather_directory_contents(Path) ->
-    {ok, Names} = file:list_dir(Path),
-    lists:map(fun(AppName) ->
-                 {filename:join(Path, AppName), fixup_app_name(AppName)}
-              end, Names).
-
-%% @doc
-%% Makes a symlink from the directory pointed at by Path to a
-%% directory of the same name in Target. So if we had a Path of
-%% {`foo/bar/baz/bash`, `baz`} and a Target of `faz/foo/foos`, the symlink
-%% would be `faz/foo/foos/baz`.
--spec link_app({string(), string()}, string()) -> ok.
-link_app({Path, TargetFile}, TargetDir) ->
-    Target = filename:join(TargetDir, TargetFile),
-    make_symlink(Path, Target).
-
--spec make_symlink(string(), string()) -> ok.
-make_symlink(Path, TargetFile) ->
-    file:delete(TargetFile),
-    ok = filelib:ensure_dir(TargetFile),
-    io:format("Making symlink from ~s to ~s~n", [Path, TargetFile]),
-    ok = file:make_symlink(Path, TargetFile).
-
-%% @doc
-%% This takes an app name in the standard OTP <name>-<version> format
-%% and returns just the app name. Why? Because rebar doesn't
-%% respect OTP conventions in some cases.
--spec fixup_app_name(string()) -> string().
-fixup_app_name(FileName) ->
-    case string:tokens(FileName, "-") of
-        [Name] -> Name;
-        [Name, _Version] -> Name;
-        [Name, _Version, _Tag] -> Name
-    end.
-
--spec gather_required_data_from_the_environment(#data{}) -> {ok, #data{}}.
-gather_required_data_from_the_environment(ArgData) ->
-    {ok, ArgData#data{ version = guard_env("version")
-                     , erl_libs = get_env("ERL_LIBS", [])
-                     , plugins = get_env("buildPlugins", [])
-                     , root = code:root_dir()
-                     , name = guard_env("name")
-                     , compile_ports = nix2bool(get_env("compilePorts", ""))}}.
-
--spec nix2bool(any()) -> boolean().
-nix2bool("1") ->
-    true;
-nix2bool("") ->
-    false.
-
-get_env(Name) ->
-    os:getenv(Name).
-get_env(Name, Def) ->
-    case get_env(Name) of
-        false -> Def;
-        Val ->   Val
-    end.
-
--spec guard_env(string()) -> string().
-guard_env(Name) ->
-    case get_env(Name) of
-        false ->
-            stderr("Expected Environment variable ~s! Are you sure you are "
-                   "running in a Nix environment? Either a nix-build, "
-                   "nix-shell, etc?~n", [Name]),
-            erlang:halt(1);
-        Variable ->
-            Variable
-    end.
-
-%% @doc
-%% If debug info is set we need to add debug info to the list of compile options
-%%
--spec if_debug_info_add(#data{}) -> ok.
-if_debug_info_add(#data{debug_info = true}) ->
-    ConfigTerms = add_debug_info(read_rebar_config()),
-    Text = lists:map(fun(Term) -> io_lib:format("~tp.~n", [Term]) end,
-                     ConfigTerms),
-    file:write_file("rebar.config", Text);
-if_debug_info_add(_) ->
-    ok.
-
--spec add_debug_info([term()]) -> [term()].
-add_debug_info(Config) ->
-    ExistingOpts = case lists:keysearch(erl_opts, 1, Config) of
-                       {value, {erl_opts, ExistingOptsList}} -> ExistingOptsList;
-                       _ -> []
-                   end,
-    case lists:member(debug_info, ExistingOpts) of
-        true ->
-            Config;
-        false ->
-            lists:keystore(erl_opts, 1, Config,
-                           {erl_opts, [debug_info | ExistingOpts]})
-    end.
-
-
-%% @doc
-%% If the compile ports flag is set, rewrite the rebar config to
-%% include the 'pc' plugin.
--spec if_compile_ports_add_pc_plugin(#data{}) -> ok.
-if_compile_ports_add_pc_plugin(#data{compile_ports = true}) ->
-    ConfigTerms = add_pc_to_plugins(read_rebar_config()),
-    Text = lists:map(fun(Term) -> io_lib:format("~tp.~n", [Term]) end,
-                     ConfigTerms),
-    file:write_file("rebar.config", Text);
-if_compile_ports_add_pc_plugin(_) ->
-    ok.
-
--spec add_pc_to_plugins([term()]) -> [term()].
-add_pc_to_plugins(Config) ->
-    PluginList = case lists:keysearch(plugins, 1, Config) of
-                     {value, {plugins, ExistingPluginList}} -> ExistingPluginList;
-                     _ -> []
-                 end,
-    lists:keystore(plugins, 1, Config, {plugins, [pc | PluginList]}).
-
--spec read_rebar_config() -> [term()].
-read_rebar_config() ->
-    case file:consult("rebar.config") of
-        {ok, Terms} ->
-            Terms;
-        _ ->
-            stderr("Unable to read rebar config!", []),
-            erlang:halt(1)
-    end.
-
-
--spec if_single_app_project_update_app_src_version(#data{}) -> ok.
-if_single_app_project_update_app_src_version(#data{name = Name,
-                                                   version = Version}) ->
-    SrcFile = filename:join("src",
-                            lists:concat([Name, ".app.src"])),
-
-    case filelib:is_file(SrcFile) of
-        true ->
-            update_app_src_with_version(SrcFile, Version);
-        false ->
-            ok
-    end.
-
--spec update_app_src_with_version(string(), string()) -> ok.
-update_app_src_with_version(SrcFile, Version) ->
-    {ok, [{application, Name, Details}]} = file:consult(SrcFile),
-    NewDetails = lists:keyreplace(vsn, 1, Details, {vsn, Version}),
-    ok = file:write_file(SrcFile, io_lib:fwrite("~p.\n", [{application, Name, NewDetails}])).
-
-%% @doc
-%% Write the result of the format string out to stderr.
--spec stderr(string(), [term()]) -> ok.
-stderr(FormatStr, Args) ->
-    io:put_chars(standard_error, io_lib:format(FormatStr, Args)).
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar_ignore_deps.erl b/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar_ignore_deps.erl
new file mode 100644
index 000000000000..3e0ae67c4539
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar_ignore_deps.erl
@@ -0,0 +1,43 @@
+%% This module, when loaded as a plugin, overrides the default `install_deps`
+%% provider and erases the dependencies from the rebar3 state, when
+%% REBAR_IGNORE_DEPS is true.
+
+-module(rebar_ignore_deps).
+
+-export([init/1, do/1, format_error/1]).
+
+init(State0) ->
+    case os:getenv("REBAR_IGNORE_DEPS", "") of
+        "" ->
+            {ok, State0};
+        _ ->
+            do_init(State0)
+    end.
+
+do_init(State0) ->
+    State1 = rebar_state:allow_provider_overrides(State0, true),
+    Provider = providers:create(
+                 [
+                  {name, install_deps}, %% override the default install_deps provider
+                  {module, ?MODULE},
+                  {bare, false},
+                  {deps, [app_discovery]},
+                  {example, undefined},
+                  {opts, []},
+                  {short_desc, ""},
+                  {desc, ""}
+                 ]),
+    State2 = rebar_state:add_provider(State1, Provider),
+    {ok, rebar_state:allow_provider_overrides(State2, false)}.
+
+do(State0) ->
+    io:format("Ignoring deps...~n"),
+    Profiles = rebar_state:current_profiles(State0),
+    State = lists:foldl(fun(P, Acc0) ->
+                                 Acc = rebar_state:set(Acc0, {deps, P}, []),
+                                 rebar_state:set(Acc, {parsed_deps, P}, [])
+                         end, State0, Profiles),
+    {ok, State}.
+
+format_error(Reason) ->
+    io_lib:format("~p", [Reason]).
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/skip-plugins.patch b/nixpkgs/pkgs/development/tools/build-managers/rebar3/skip-plugins.patch
new file mode 100644
index 000000000000..3ee1656c9ede
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar3/skip-plugins.patch
@@ -0,0 +1,54 @@
+diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl
+index f2d22233..c61fa553 100644
+--- a/src/rebar_plugins.erl
++++ b/src/rebar_plugins.erl
+@@ -106,31 +106,9 @@ handle_plugins(Profile, Plugins, State, Upgrade) ->
+     State3 = rebar_state:set(State2, deps_dir, DepsDir),
+     rebar_state:lock(State3, Locks).
+ 
+-handle_plugin(Profile, Plugin, State, Upgrade) ->
++handle_plugin(_Profile, Plugin, State, _Upgrade) ->
+     try
+-        {Apps, State2} = rebar_prv_install_deps:handle_deps_as_profile(Profile, State, [Plugin], Upgrade),
+-        {no_cycle, Sorted} = rebar_prv_install_deps:find_cycles(Apps),
+-        ToBuild = rebar_prv_install_deps:cull_compile(Sorted, []),
+-
+-        %% Add already built plugin deps to the code path
+-        ToBuildPaths = [rebar_app_info:ebin_dir(A) || A <- ToBuild],
+-        PreBuiltPaths = [Ebin || A <- Apps,
+-                                 Ebin <- [rebar_app_info:ebin_dir(A)],
+-                                 not lists:member(Ebin, ToBuildPaths)],
+-        code:add_pathsa(PreBuiltPaths),
+-
+-        %% Build plugin and its deps
+-        build_plugins(ToBuild, Apps, State2),
+-
+-        %% Add newly built deps and plugin to code path
+-        State3 = rebar_state:update_all_plugin_deps(State2, Apps),
+-        NewCodePaths = [rebar_app_info:ebin_dir(A) || A <- ToBuild],
+-
+-        %% Store plugin code paths so we can remove them when compiling project apps
+-        State4 = rebar_state:update_code_paths(State3, all_plugin_deps, PreBuiltPaths++NewCodePaths),
+-        rebar_paths:set_paths([plugins], State4),
+-
+-        {plugin_providers(Plugin), State4}
++        {plugin_providers(Plugin), State}
+     catch
+         ?WITH_STACKTRACE(C,T,S)
+             ?DEBUG("~p ~p ~p", [C, T, S]),
+@@ -138,15 +116,6 @@ handle_plugin(Profile, Plugin, State, Upgrade) ->
+             {[], State}
+     end.
+ 
+-build_plugins(MustBuildApps, AllApps, State) ->
+-    State1 = rebar_state:deps_to_build(State, MustBuildApps),
+-    State2 = rebar_state:all_deps(State1, AllApps),
+-    State3 = rebar_state:set(State2, deps_dir, ?DEFAULT_PLUGINS_DIR),
+-    {Args, Extra} = rebar_state:command_parsed_args(State),
+-    State4 = rebar_state:command_parsed_args(State3, {[{deps_only, true}|Args], Extra}),
+-    rebar_prv_compile:do(State4),
+-    ok.
+-
+ plugin_providers({Plugin, _, _, _}) when is_atom(Plugin) ->
+     validate_plugin(Plugin);
+ plugin_providers({Plugin, _, _}) when is_atom(Plugin) ->
diff --git a/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix b/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
index b49e5f7558a9..76548e427d23 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
-  rev = "a76f1f15e6ec39d886f8bf07d5bdfaf70cdc62d8";
-  version = "2021-04-06";
+  rev = "e5a5442acf36f047a75b397d7349e6fe6835ef24";
+  version = "2021-04-26";
 
   src = fetchFromGitHub {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "0zmhn8nvzrbw047g5z4q2slp0wdg6pvfh2pqnpwcq1hscf7dvz8f";
+    sha256 = "0g7wyh0lhhdch7d6p118lwywy1lcdr1z631q891qhv624jnb1477";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix b/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
index 7b9c6bca7e2b..89628b81fbc2 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.5.1";
+  version = "1.5.3";
 
   src = fetchurl {
     url = "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
-    sha256 = "0dsbqipr549awv584fyl227s1gknlpsf5krp990w7w3bbxl3avb7";
+    sha256 = "10kIQNy+3V1SD4uEZs/BJ4E6bTCRV3wjBN8gw9jr9VQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
index 8b5b608fdf39..6af302851234 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
@@ -43,6 +43,6 @@ python3Packages.buildPythonApplication rec {
     changelog = "https://raw.githubusercontent.com/SConsProject/scons/rel_${version}/src/CHANGES.txt";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = [ maintainers.primeos ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix b/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix
index 85bf919f778f..403adaff89ed 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix
@@ -4,37 +4,41 @@ let
   fuse = if stdenv.isDarwin then macfuse-stubs else fuse3;
 in stdenv.mkDerivation rec {
   pname = "tup";
-  version = "0.7.10";
+  version = "0.7.11";
   outputs = [ "bin" "man" "out" ];
 
   src = fetchFromGitHub {
     owner = "gittup";
     repo = "tup";
     rev = "v${version}";
-    sha256 = "1qd07h4wi0743l7z2vybfvhwp61g2p2pc5qhl40672ryl24nvd1d";
+    hash = "sha256-Q2Y5ErcfhLChi9Wezn8+7eNXYX2UXW1fBOqEclmgzOo=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ fuse pcre ];
 
   configurePhase = ''
-    sed -i 's/`git describe`/v${version}/g' src/tup/link.sh
-    sed -i 's/pcre-confg/pkg-config pcre/g' Tupfile Tuprules.tup
+    substituteInPlace  src/tup/link.sh --replace '`git describe' '`echo ${version}'
+    substituteInPlace Tuprules.tup --replace 'pcre-config' 'pkg-config libpcre'
   '';
 
   # Regular tup builds require fusermount to have suid, which nix cannot
   # currently provide in a build environment, so we bootstrap and use 'tup
   # generate' instead
   buildPhase = ''
+    runHook preBuild
     ./build.sh
     ./build/tup init
     ./build/tup generate script.sh
     ./script.sh
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -D tup -t $bin/bin/
     install -D tup.1 -t $man/share/man/man1/
+    runHook postInstall
   '';
 
   setupHook = ./setup-hook.sh;
diff --git a/nixpkgs/pkgs/development/tools/buildah/default.nix b/nixpkgs/pkgs/development/tools/buildah/default.nix
index b1491bfa481a..e3828eb7f14c 100644
--- a/nixpkgs/pkgs/development/tools/buildah/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildah/default.nix
@@ -14,21 +14,17 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.20.1";
+  version = "1.21.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    sha256 = "sha256-nlZblUPS0678dR0hyp+V9uH/nHL9YH81+O1Zzq8T8Pw=";
+    sha256 = "sha256-Wes52lTcv3Jb6gJeUS6fmf4Nee3qEcc3SibaTFvQ8sQ=";
   };
 
   outputs = [ "out" "man" ];
 
-  patches = [
-    ../../../applications/virtualization/podman/remove-unconfigured-runtime-warn.patch
-  ];
-
   vendorSha256 = null;
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/buildkit/default.nix b/nixpkgs/pkgs/development/tools/buildkit/default.nix
index 806eb7c5b0ed..f6eb7aef1ed5 100644
--- a/nixpkgs/pkgs/development/tools/buildkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "buildkit";
-  version = "0.8.2";
+  version = "0.8.3";
 
   goPackagePath = "github.com/moby/buildkit";
   subPackages = [ "cmd/buildctl" ] ++ lib.optionals stdenv.isLinux [ "cmd/buildkitd" ];
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "sha256-aPVroqpR4ynfHhjJ6jJX6y5cdgmoUny3A8GBhnooOeo=";
+    sha256 = "sha256-dHtGxugTtxHcfZHMIHinlcH05ss7zT/+Ll1WboAhw9o=";
   };
 
   buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ];
diff --git a/nixpkgs/pkgs/development/tools/bunyan-rs/default.nix b/nixpkgs/pkgs/development/tools/bunyan-rs/default.nix
new file mode 100644
index 000000000000..12ced94c81b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/bunyan-rs/default.nix
@@ -0,0 +1,25 @@
+{ rustPlatform
+, fetchFromGitHub
+, lib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bunyan-rs";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "LukeMathWalker";
+    repo = "bunyan";
+    rev = "v${version}";
+    sha256 = "sha256-Rj0VoJMcl8UBuVNu88FwTNF1GBx8IEXxwLL8sGz9kVM=";
+  };
+
+  cargoSha256 = "sha256-UZAiXLbRhr2J7QFf7x+JbEjc6p2AoVHYMgyARuwaB7E=";
+
+  meta = with lib; {
+    description = "A CLI to pretty print logs in bunyan format (Rust port of the original JavaScript bunyan CLI)";
+    homepage = "https://github.com/LukeMathWalker/bunyan";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ netcrns ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix b/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
index 3bdbb086d1dd..65a49551035d 100644
--- a/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-IpmvFUWNaFQ1ls7u625vvj1TnRYXR+X1mAGdBcwRFLk=";
   };
 
-  cargoSha256 = "sha256-2YHkEQZqjKEvg4h9kIVhqmgq+SMF1c3r8UbSQivZh7w=";
+  cargoSha256 = "sha256-ccy5ZFS2Gp4Dwo8gsS6vzHHO1siicOp7uZTsCh6SKsM=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/tools/cargo-web/default.nix b/nixpkgs/pkgs/development/tools/cargo-web/default.nix
index c85ef52564a4..2c35e951cda1 100644
--- a/nixpkgs/pkgs/development/tools/cargo-web/default.nix
+++ b/nixpkgs/pkgs/development/tools/cargo-web/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1dl5brj5fnmxmwl130v36lvy4j64igdpdvjwmxw3jgg2c6r6b7cd";
   };
 
-  cargoSha256 = "0i9xp7vd1rp6xgkbbrspm3qq4hxwfwa00di3k73z1x64d3d8r5fm";
+  cargoSha256 = "0q7yxvvngfvn4s889qzp1qnsw2c6qy2ryv9vz9cxhmqidx4dg4va";
 
   nativeBuildInputs = [ openssl perl pkg-config ];
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Security ];
diff --git a/nixpkgs/pkgs/development/tools/castxml/default.nix b/nixpkgs/pkgs/development/tools/castxml/default.nix
index f3d9b74181aa..a233288a28e8 100644
--- a/nixpkgs/pkgs/development/tools/castxml/default.nix
+++ b/nixpkgs/pkgs/development/tools/castxml/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, clang-unwrapped
 , cmake
 , libclang
 , libffi
@@ -26,22 +25,22 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
-    llvm
+    llvm.dev
   ] ++ lib.optionals (withManual || withHTML) [
     sphinx
   ];
 
   cmakeFlags = [
-    "-DCLANG_RESOURCE_DIR=${clang-unwrapped}/lib/clang/${lib.getVersion clang-unwrapped}/"
+    "-DCLANG_RESOURCE_DIR=${libclang.dev}/"
     "-DSPHINX_HTML=${if withHTML then "ON" else "OFF"}"
     "-DSPHINX_MAN=${if withManual then "ON" else "OFF"}"
   ];
 
   buildInputs = [
-    clang-unwrapped
     libffi
     libxml2
     zlib
+    libclang
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/chit/default.nix b/nixpkgs/pkgs/development/tools/chit/default.nix
index ac8f15a41588..dd37efb506d6 100644
--- a/nixpkgs/pkgs/development/tools/chit/default.nix
+++ b/nixpkgs/pkgs/development/tools/chit/default.nix
@@ -15,7 +15,7 @@ buildRustPackage rec {
     sha256 = "0iixczy3cad44j2d7zzj8f3lnmp4jwnb0snmwfgiq3vj9wrn28pz";
   };
 
-  cargoSha256 = "1w25k3bqmmcrhpkw510vbwph0rfmrzi2wby0z2rz1q4k1f9k486m";
+  cargoSha256 = "1y6k24p4m67v5773rzid2r0jwxp9piggrp0462z446hbcam2r4gd";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = []
diff --git a/nixpkgs/pkgs/development/tools/clang-tools/default.nix b/nixpkgs/pkgs/development/tools/clang-tools/default.nix
index 498310d4324f..ba829f2c41df 100644
--- a/nixpkgs/pkgs/development/tools/clang-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/clang-tools/default.nix
@@ -1,22 +1,22 @@
 { lib, stdenv, llvmPackages }:
 
 let
-  clang = llvmPackages.clang-unwrapped;
+  unwrapped = llvmPackages.clang-unwrapped;
 
 in stdenv.mkDerivation {
   pname = "clang-tools";
-  version = lib.getVersion clang;
+  version = lib.getVersion unwrapped;
 
   dontUnpack = true;
 
+  clang = llvmPackages.clang;
+  inherit unwrapped;
+
   installPhase = ''
     runHook preInstall
 
     mkdir -p $out/bin
-    export libc_includes="${lib.getDev stdenv.cc.libc}/include"
-    export libcpp_includes="${llvmPackages.libcxx}/include/c++/v1"
 
-    export clang=${clang}
     substituteAll ${./wrapper} $out/bin/clangd
     chmod +x $out/bin/clangd
     for tool in \
@@ -32,7 +32,7 @@ in stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  meta = clang.meta // {
+  meta = unwrapped.meta // {
     description = "Standalone command line tools for C++ development";
     maintainers = with lib.maintainers; [ aherrmann ];
   };
diff --git a/nixpkgs/pkgs/development/tools/clang-tools/wrapper b/nixpkgs/pkgs/development/tools/clang-tools/wrapper
index 53c99a67f2d3..eebc152d11b1 100644..100755
--- a/nixpkgs/pkgs/development/tools/clang-tools/wrapper
+++ b/nixpkgs/pkgs/development/tools/clang-tools/wrapper
@@ -1,20 +1,27 @@
 #!/bin/sh
 
 buildcpath() {
-  local path
+  local path after
   while (( $# )); do
     case $1 in
         -isystem)
             shift
             path=$path${path:+':'}$1
+            ;;
+        -idirafter)
+            shift
+            after=$after${after:+':'}$1
+            ;;
     esac
     shift
   done
-  echo $path
+  echo $path${after:+':'}$after
 }
 
-export CPATH=${CPATH}${CPATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE})
-export CPATH=${CPATH}${CPATH:+':'}@libc_includes@
-export CPLUS_INCLUDE_PATH=${CPATH}${CPATH:+':'}@libcpp_includes@
+export CPATH=${CPATH}${CPATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE} \
+                                               $(<@clang@/nix-support/libc-cflags))
+export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}${CPLUS_INCLUDE_PATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE} \
+                                                                                      $(<@clang@/nix-support/libcxx-cxxflags) \
+                                                                                      $(<@clang@/nix-support/libc-cflags))
 
-exec -a "$0" @clang@/bin/$(basename $0) "$@"
+exec -a "$0" @unwrapped@/bin/$(basename $0) "$@"
diff --git a/nixpkgs/pkgs/development/tools/clog-cli/default.nix b/nixpkgs/pkgs/development/tools/clog-cli/default.nix
index c3b477e3ea36..395cd7979d61 100644
--- a/nixpkgs/pkgs/development/tools/clog-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/clog-cli/default.nix
@@ -13,7 +13,7 @@ buildRustPackage rec {
     sha256 = "1wxglc4n1dar5qphhj5pab7ps34cjr7jy611fwn72lz0f6c7jp3z";
   };
 
-  cargoSha256 = "1s7g9mcjyp0pjjxma1mb290fi7fk54qy2khh1zksxhr4d3mciv08";
+  cargoSha256 = "0xcgzlcmlk5ycw4kklprm8lzs72j2zp8xm3dcpy606z4r9qn0c6a";
 
   meta = {
     description = "Generate changelogs from local git metadata";
diff --git a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
index 6254ec0a2c21..b947fc1ebfe2 100644
--- a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
+++ b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.1.29";
+  version = "0.1.30";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RPlEFajIjEBKdL97xjQP6r3AAcCQlxw2Il8nkSjxa+k=";
+    sha256 = "sha256-uQj14arxDPc8/k1Cvp3T6hqjln30NFk9MzvYy8tAiJ8=";
   };
 
   vendorSha256 = "sha256-pl3dLisu4Oc77kgfuteKbsZaDzrHo1wUigZEkM4081Q=";
diff --git a/nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix b/nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix
new file mode 100644
index 000000000000..8de2bc1aeed2
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix
@@ -0,0 +1,43 @@
+{ python3
+, lib
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "cloudsmith-cli";
+  version = "0.26.0";
+
+  format = "wheel";
+
+  src = python3.pkgs.fetchPypi {
+    pname = "cloudsmith_cli";
+    inherit format version;
+    sha256 = "c2W5+z+X4oRZxlNhB6for4mN4NeBX9MtEtmXhU5sz4A=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    click
+    click-configfile
+    click-didyoumean
+    click-spinner
+    cloudsmith-api
+    colorama
+    future
+    requests
+    requests_toolbelt
+    semver
+    simplejson
+    six
+    setuptools # needs pkg_resources
+  ];
+
+  # Wheels have no tests
+  doCheck = false;
+
+  meta = {
+    homepage = "https://help.cloudsmith.io/docs/cli/";
+    description = "Cloudsmith Command Line Interface";
+    maintainers = with lib.maintainers; [ jtojnar ];
+    license = lib.licenses.asl20;
+    platforms = with lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/clpm/default.nix b/nixpkgs/pkgs/development/tools/clpm/default.nix
index ae2e1011ae25..9d3ddace37eb 100644
--- a/nixpkgs/pkgs/development/tools/clpm/default.nix
+++ b/nixpkgs/pkgs/development/tools/clpm/default.nix
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     runHook preBuild
 
-    ln -s ${openssl.out}/lib/libcrypto.so.* .
-    ln -s ${openssl.out}/lib/libssl.so.* .
+    ln -s ${openssl.out}/lib/libcrypto*${stdenv.hostPlatform.extensions.sharedLibrary}* .
+    ln -s ${openssl.out}/lib/libssl*${stdenv.hostPlatform.extensions.sharedLibrary}* .
     common-lisp.sh --script scripts/build.lisp
 
     runHook postBuild
diff --git a/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix b/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
index 2c85890e70bf..0540e5785f6e 100644
--- a/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
@@ -16,11 +16,15 @@ buildPythonApplication rec {
     sha256 = "0vz7bjxkk0phjhz3h9kj6yr7wnk3g7lqmkqraa0kw12mzcfck837";
   };
 
-  # can be removed after v0.1.2
-  patches = lib.optional stdenv.isDarwin (fetchpatch {
-    url = "https://github.com/regen100/cmake-language-server/commit/0ec120f39127f25898ab110b43819e3e9becb8a3.patch";
-    sha256 = "1xbmarvsvzd61fnlap4qscnijli2rw2iqr7cyyvar2jd87z6sfp0";
-  });
+  patches = [
+    ./disable-test-timeouts.patch
+  ] ++ lib.optionals stdenv.isDarwin [
+    # can be removed after v0.1.2
+    (fetchpatch {
+      url = "https://github.com/regen100/cmake-language-server/commit/0ec120f39127f25898ab110b43819e3e9becb8a3.patch";
+      sha256 = "1xbmarvsvzd61fnlap4qscnijli2rw2iqr7cyyvar2jd87z6sfp0";
+    })
+  ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -38,6 +42,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/regen100/cmake-language-server";
     description = "CMake LSP Implementation";
     license = licenses.mit;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/cmake-language-server/disable-test-timeouts.patch b/nixpkgs/pkgs/development/tools/cmake-language-server/disable-test-timeouts.patch
new file mode 100644
index 000000000000..febe7cf77e71
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/cmake-language-server/disable-test-timeouts.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/test_server.py b/tests/test_server.py
+index c0777f5..1184fb3 100644
+--- a/tests/test_server.py
++++ b/tests/test_server.py
+@@ -11,7 +11,7 @@ from pygls.types import (CompletionContext, CompletionParams,
+                          InitializeParams, Position, TextDocumentIdentifier,
+                          TextDocumentItem, TextDocumentPositionParams)
+ 
+-CALL_TIMEOUT = 2
++CALL_TIMEOUT = None
+ 
+ 
+ def _init(client: LanguageServer, root: Path):
diff --git a/nixpkgs/pkgs/development/tools/conftest/default.nix b/nixpkgs/pkgs/development/tools/conftest/default.nix
index 4c6cbbbe6b04..833f2f84b058 100644
--- a/nixpkgs/pkgs/development/tools/conftest/default.nix
+++ b/nixpkgs/pkgs/development/tools/conftest/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "sha256-iFxRZq/8TW7Df+aAc5IN+FAXU4kvbDiHWiFOlWMmCY0=";
+    sha256 = "sha256-pxPqBUOsXbP9giaV5NS3a6Z6auN4vUTIrIKcNh8xURU=";
   };
 
-  vendorSha256 = "sha256-LvaSs1y1CEP+cJc0vqTh/8MezmtuFAbfMgqloAjLZl8=";
+  vendorSha256 = "sha256-y8DRrthaUzMKxFbdbASvqsRMT+jex7jMJA6g7YF/VxI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
index 4a402111b086..a8d35a44bb96 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
@@ -1,17 +1,18 @@
 { fetchFromGitHub, lib, buildGoModule,
-  makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }:
+  makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep,
+  nixosTests }:
 buildGoModule rec {
   name = "buildkite-agent-${version}";
-  version = "3.28.1";
+  version = "3.30.0";
 
   src = fetchFromGitHub {
     owner = "buildkite";
     repo = "agent";
     rev = "v${version}";
-    sha256 = "sha256-5YOXYOAh/0fOagcqdK2IEwm5XDCxyfTeTzwBGtsQRCs=";
+    sha256 = "sha256-U2UnT41IpICy08jPQkr25wjAL1kBxiQCD4lysYnLAPk=";
   };
 
-  vendorSha256 = "sha256-3UXZxeiL0WO4X/3/hW8ubL1TormGbn9X/k0PX+/cLuM=";
+  vendorSha256 = "sha256-n3XRxpEKjHf7L7fcGscWTVKBtot9waZbLoS9cG0kHfI=";
 
   postPatch = ''
     substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash
@@ -30,6 +31,10 @@ buildGoModule rec {
       --prefix PATH : '${lib.makeBinPath [ openssh git coreutils gnused gnugrep ]}'
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.buildkite-agents;
+  };
+
   meta = with lib; {
     description = "Build runner for buildkite.com";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
index 76f0d86ae5c4..a4769b10b352 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fly";
-  version = "7.2.0";
+  version = "7.3.1";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "sha256-uKzN5h2gJqsD25ETgfYqu4ijC2b0ZLGdMGTiliFOatA=";
+    sha256 = "sha256-JtzJDbln+n05oJjA/ydZWaH4dIPLL/ZsNg+Gr+YBcng=";
   };
 
-  vendorSha256 = "sha256-2PvXylOPVA0/mIQhhKv8o65bfAxkvKP6FPunzTWwVtI=";
+  vendorSha256 = "sha256-30rrRkPIH0sr8koKRLs1Twe6Z55+lr9gkgUDrY+WOTw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index d03d59edb1fc..ce3264e1adde 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "13.11.0";
+  version = "13.12.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "1vmj7vxz1a4js9kqz7mm6xgnkmb37c1jbx2lwsq2qkrybkxfcw8k";
+    sha256 = "0m0r295520jy45wn8jw3jzhiixl4c6yrfx7gvgbd4c1v4y8ivrci";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1c1pywz7ylaysplvq1m15v7rf1sgdkh9scbqklzcm55fjk128lif";
+    sha256 = "0syfggplp19bbmhhpyc17h0f1dii9hc6n04q483l0xdk7sv39fwx";
   };
 in
 buildGoPackage rec {
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "07jqsxac50xwmhlv0nbnn098290nkpsmrxw872yh67n1s9gqfd27";
+    sha256 = "01ajl7zka5fnph5zcnp3z6ir8xr81wzkam69gxazwjb3nbs642an";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
index ccb8b4eba656..bc464c2024e4 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
@@ -1,4 +1,4 @@
-{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper, runc, stdenv }:
+{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper, nixos, runc, stdenv }:
 let
   inherit (haskell.lib) overrideCabal addBuildDepends;
   inherit (lib) makeBinPath;
@@ -16,8 +16,16 @@ let
           makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${makeBinPath bundledBins}
         '';
       });
-in pkg // {
-    meta = pkg.meta // {
+in pkg.overrideAttrs (o: {
+    meta = o.meta // {
       position = toString ./default.nix + ":1";
     };
-  }
+    passthru = o.passthru // {
+      # Does not test the package, but evaluation of the related NixOS module.
+      tests.nixos-minimal-config = nixos {
+        boot.loader.grub.enable = false;
+        fileSystems."/".device = "bogus";
+        services.hercules-ci-agent.enable = true;
+      };
+    };
+  })
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 5373b2d359ba..415b22894cbe 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.277.3";
+  version = "2.289.1";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "1awixb55bkpqcvf2s59aph3kxdd70g9x1a5s5kly33kwrplcf8iy";
+    sha256 = "1wkm1y2bj245b9i51vhns9qfxc6xm44hg60vhgmswndcy5pwrybh";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/development/tools/convco/default.nix b/nixpkgs/pkgs/development/tools/convco/default.nix
index c152197358c9..44445f86752a 100644
--- a/nixpkgs/pkgs/development/tools/convco/default.nix
+++ b/nixpkgs/pkgs/development/tools/convco/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-eWe7oTWl7QfIqq3GfMILi5S8zUi03ER1Mzfr8hqUvgw=";
   };
 
-  cargoSha256 = "sha256-hAUg2mh4VyyjkBRBs5YWi14yeGlMXxt+cdoz5xOS+1A=";
+  cargoSha256 = "sha256-RuClZ+ChP7d40e9nr1Lg8R0F7rbFbBse79V9Y1AQn3o=";
 
   nativeBuildInputs = [ openssl perl pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/cue/default.nix b/nixpkgs/pkgs/development/tools/cue/default.nix
index c974286ab99f..5170297a4330 100644
--- a/nixpkgs/pkgs/development/tools/cue/default.nix
+++ b/nixpkgs/pkgs/development/tools/cue/default.nix
@@ -2,28 +2,28 @@
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchgit {
     url = "https://cue.googlesource.com/cue";
     rev = "v${version}";
-    sha256 = "1h3809xgmn7dr57i3cnifr7r555i3zh3kfsv0gxa9nd7068w19xm";
+    sha256 = "sha256-rcGEl+CMFyxZKsOKhVimhv5/ONo3xS6FjgKModZGR2o=";
   };
 
-  vendorSha256 = "10kvss23a8a6q26a7h1bqc3i0nskm2halsvc9wdv9zf9qsz7zjkp";
+  vendorSha256 = "sha256-eSKVlBgnHR1R0j1lNwtFoIgRuj8GqoMbvuBl/N1SanY=";
 
   doCheck = false;
 
   subPackages = [ "cmd/cue" ];
 
   buildFlagsArray = [
-    "-ldflags=-X cuelang.org/go/cmd/cue/cmd.version=${version}"
+    "-ldflags=-s -w -X cuelang.org/go/cmd/cue/cmd.version=${version}"
   ];
 
   meta = {
     description = "A data constraint language which aims to simplify tasks involving defining and using data";
     homepage = "https://cuelang.org/";
-    maintainers = with lib.maintainers; [ solson ];
+    maintainers = [];
     license = lib.licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
index 32ab88bf4128..c4393821b7de 100644
--- a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.3.2";
+  version = "4.3.5";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-sc/W4N+pd1bhLiyQLqm0j2o/RviT8iKzBZcD0GRDqqE=";
+    sha256 = "sha256-XOYq+p76XFt7j4oxMClZox5wsaXuV5ovcB6kZJhMBlU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/database/movine/default.nix b/nixpkgs/pkgs/development/tools/database/movine/default.nix
new file mode 100644
index 000000000000..fd5debcb9a20
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/database/movine/default.nix
@@ -0,0 +1,54 @@
+{ rustPlatform
+, fetchFromGitHub
+, lib
+, stdenv
+, pkg-config
+, postgresql
+, sqlite
+, openssl
+, Security
+, libiconv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "movine";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "byronwasti";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0rms8np8zd23xzrd5avhp2q1ndhdc8f49lfwpff9h0slw4rnzfnj";
+  };
+
+  cargoSha256 = "sha256-4ghfenwmauR4Ft9n7dvBflwIMXPdFq1vh6FpIegHnZk=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ postgresql sqlite ] ++ (
+    if !stdenv.isDarwin then [ openssl ] else [ Security libiconv ]
+  );
+
+  meta = with lib; {
+    description = "A migration manager written in Rust, that attempts to be smart yet minimal";
+    homepage = "https://github.com/byronwasti/movine";
+    license = licenses.mit;
+    longDescription = ''
+      Movine is a simple database migration manager that aims to be compatible
+      with real-world migration work. Many migration managers get confused
+      with complicated development strategies for migrations. Oftentimes
+      migration managers do not warn you if the SQL saved in git differs from
+      what was actually run on the database. Movine solves this issue by
+      keeping track of the unique hashes for the <literal>up.sql</literal> and
+      <literal>down.sql</literal> for each migration, and provides tools for
+      fixing issues. This allows users to easily keep track of whether their
+      local migration history matches the one on the database.
+
+      This project is currently in early stages.
+
+      Movine does not aim to be an ORM.
+      Consider <link xling:href="https://diesel.rs/">diesel</link> instead if
+      you want an ORM.
+    '';
+    maintainers = with maintainers; [ netcrns ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/database/pgsync/Gemfile.lock b/nixpkgs/pkgs/development/tools/database/pgsync/Gemfile.lock
index 5ee736430af5..d147a5a74546 100644
--- a/nixpkgs/pkgs/development/tools/database/pgsync/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/database/pgsync/Gemfile.lock
@@ -3,12 +3,12 @@ GEM
   specs:
     parallel (1.20.1)
     pg (1.2.3)
-    pgsync (0.6.6)
+    pgsync (0.6.7)
       parallel
       pg (>= 0.18.2)
       slop (>= 4.8.2)
       tty-spinner
-    slop (4.8.2)
+    slop (4.9.0)
     tty-cursor (0.7.1)
     tty-spinner (0.9.3)
       tty-cursor (~> 0.7)
diff --git a/nixpkgs/pkgs/development/tools/database/pgsync/gemset.nix b/nixpkgs/pkgs/development/tools/database/pgsync/gemset.nix
index 18a833970722..0240300ff052 100644
--- a/nixpkgs/pkgs/development/tools/database/pgsync/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/database/pgsync/gemset.nix
@@ -25,20 +25,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wjvcfsgm7xxhb2lxil19qjxvvihqxbjd2ykmm5d43p0h2l9wvxr";
+      sha256 = "0kn7cf048zwbap0mifdpzz8if1ah803vgzbx09dfgjwgvfx5w5w6";
       type = "gem";
     };
-    version = "0.6.6";
+    version = "0.6.7";
   };
   slop = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05d1xv8r9cmd0mmlqpa853yzd7xhcyha063w1g8dpf84scxbxmd3";
+      sha256 = "09n6sj4p3b43qq6jmghr9zhgny6719bpca8j6rxnlbq9bsnrd8rj";
       type = "gem";
     };
-    version = "4.8.2";
+    version = "4.9.0";
   };
   tty-cursor = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/tools/database/webdis/default.nix b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
index 042f5a1aa6d6..226fc049e081 100644
--- a/nixpkgs/pkgs/development/tools/database/webdis/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "webdis";
-  version = "0.1.12";
+  version = "0.1.15";
 
   src = fetchFromGitHub {
     owner = "nicolasff";
     repo = pname;
     rev = version;
-    sha256 = "sha256-pppA/Uyz1ge7UOG1PrqpTQC5sSGMWPw0J+CtaoZpOCM=";
+    sha256 = "sha256-ViU/CKkmBY8WwQq/oJ2/qETqr2k8JNFtNPhozw5BmEc=";
   };
 
   buildInputs = [ hiredis http-parser jansson libevent ];
diff --git a/nixpkgs/pkgs/development/tools/delve/default.nix b/nixpkgs/pkgs/development/tools/delve/default.nix
index f0926e23aa73..9a0d19840e46 100644
--- a/nixpkgs/pkgs/development/tools/delve/default.nix
+++ b/nixpkgs/pkgs/development/tools/delve/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub, makeWrapper }:
 
 buildGoPackage rec {
   pname = "delve";
-  version = "1.6.0";
+  version = "1.6.1";
 
   goPackagePath = "github.com/go-delve/delve";
   excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
@@ -11,9 +11,19 @@ buildGoPackage rec {
     owner = "go-delve";
     repo = "delve";
     rev = "v${version}";
-    sha256 = "sha256-krNCS5GaEMuwQ9XS8w0myL+xZX6goNNNBgUiRVoZPIU=";
+    sha256 = "sha256-bTVCasemE8Vyjcs8wZBiiXEsW3UBndjpPQ5bi+4vQkw=";
   };
 
+  subPackages = [ "cmd/dlv" ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    # fortify source breaks build since delve compiles with -O0
+    wrapProgram $out/bin/dlv \
+      --prefix disableHardening " " fortify
+  '';
+
   meta = with lib; {
     description = "debugger for the Go programming language";
     homepage = "https://github.com/derekparker/delve";
diff --git a/nixpkgs/pkgs/development/tools/devpi-client/default.nix b/nixpkgs/pkgs/development/tools/devpi-client/default.nix
index 5bca87337714..11fa78f1f02e 100644
--- a/nixpkgs/pkgs/development/tools/devpi-client/default.nix
+++ b/nixpkgs/pkgs/development/tools/devpi-client/default.nix
@@ -49,6 +49,8 @@ buildPythonApplication rec {
 
   LC_ALL = "en_US.UTF-8";
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     homepage = "http://doc.devpi.net";
     description = "Client for devpi, a pypi index server and packaging meta tool";
diff --git a/nixpkgs/pkgs/development/tools/devpi-server/default.nix b/nixpkgs/pkgs/development/tools/devpi-server/default.nix
index 8a484a23349c..b5ddda9f08b1 100644
--- a/nixpkgs/pkgs/development/tools/devpi-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/devpi-server/default.nix
@@ -55,6 +55,8 @@ python3Packages.buildPythonApplication rec {
     "TestMirrorIndexThings"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib;{
     homepage = "http://doc.devpi.net";
     description = "Github-style pypi index server and packaging meta tool";
diff --git a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
index 8a976f44bf72..a2c1af2607d1 100644
--- a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
   cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "1vkwp861vm20agj0lkhnnxgg4vwg4d5clvvyzxrmm4y4yw46cdl2";
+  cargoSha256 = "060r90dvdi0s5v3kjagsrrdb4arzzbkin8v5563rdpv0sq1pi3bm";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/dockle/default.nix b/nixpkgs/pkgs/development/tools/dockle/default.nix
index f0d8a5ac6e07..55869b022952 100644
--- a/nixpkgs/pkgs/development/tools/dockle/default.nix
+++ b/nixpkgs/pkgs/development/tools/dockle/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dockle";
-  version = "0.3.13";
+  version = "0.3.14";
 
   src = fetchFromGitHub {
     owner = "goodwithtech";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U0nIGuQ4QjBaCck0Kg1RTS2IQwfivN3VI5vxh8lxAYE=";
+    sha256 = "sha256-Xe5qgM0yPBVtH9S4OSiNnkKxcH0W89aABJF6PVRBEhQ=";
   };
 
-  vendorSha256 = "sha256-uHHm4AgnjTdPgpu3OpXXIRzrGhkpOoRY8qynfl7DO6w=";
+  vendorSha256 = "sha256-h+2AcppNUJ7zjHeBzDy1iWoR3i7a2v0Pc7vOfoUqPOw=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ btrfs-progs lvm2 ];
diff --git a/nixpkgs/pkgs/development/tools/doctl/default.nix b/nixpkgs/pkgs/development/tools/doctl/default.nix
index 83256efd5faf..9ebc04ca63a0 100644
--- a/nixpkgs/pkgs/development/tools/doctl/default.nix
+++ b/nixpkgs/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.59.0";
+  version = "1.61.0";
 
   vendorSha256 = null;
 
@@ -32,7 +32,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-mkFKYWPUEHVtQi9eUPxvWYxNCfVrKdjo2bH2DEwL1d0=";
+    sha256 = "sha256-Z6G80Xg2DSoUj8vhxkDr3W/wh3fecRwxm0oly2GYDdg=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix b/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
index 06de11fde592..2218b441476e 100644
--- a/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , python3
@@ -8,68 +7,18 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gi-docgen";
-  version = "2021.2";
+  version = "2021.5";
 
   format = "other";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
-    owner = "ebassi";
+    owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "17swx4s60anfyyb6dcsl8fq3s0j9cy54qcw0ciq4qj59d4039w5h";
+    sha256 = "1fz6r6mkp4fw1mn6gn9745wcdcqg7696bbwvdcnmhinlhrcnaiz6";
   };
 
-  patches = [
-    # Add pkg-config file so that Meson projects can find this.
-    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/26
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/jtojnar/gi-docgen/commit/d65ed2e4827c4129d26e3c1df9a48054b4e72c50.patch";
-      sha256 = "BEefcHiAd/HTW5zo39J2WtfQjGXUkNFB6MDJj8/Ge80=";
-    })
-
-    # Name generated devhelp files correctly.
-    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/27
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/7c4de72f55cbce5670c3a6a1451548e97e5f07f7.patch";
-      sha256 = "ov/PvrZzKmCzw7nHJkbeLCnhtUVw1UbZQjFrWT3AtVg=";
-    })
-
-    # Fix broken link in Devhelp TOC.
-    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/28
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/56f0e6f8b4bb9c92d635df60aa5d68f55b036711.patch";
-      sha256 = "5gFGiO9jPpkyZBL4qtWEotE5jY3sCGFGUGN/Fb6jZ+0=";
-    })
-
-    # Devhelp does not like subsections without links.
-    # https://gitlab.gnome.org/GNOME/devhelp/-/issues/28
-    (fetchpatch {
-      # Only visual but needed for the other two to apply.
-      # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/28
-      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/7f67fad5107b73489cb7bffca49177d9ad78e422.patch";
-      sha256 = "OKbC690nJsl1ckm/y9eeKDYX6AEClsNvIFy7DK+JYEc=";
-    })
-    # Add links to index.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/f891cc5fd481bc4180eec144d14f32c15c91833b.patch";
-      sha256 = "Fcnvdgxei+2ulGoWoCZ8WFrNy01tlNXMkHru3ArGHVQ=";
-    })
-    # Use different link for each symbol type name.
-    # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/29
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/jtojnar/gi-docgen/commit/08dcc31f62be1a5af9bd9f8f702f321f4b5cffde.patch";
-      sha256 = "vAT8s7zQ9zCoZWK+6PsxcD5/48ZAfIOl4RSNljRCGWQ=";
-    })
-    # make DevHelp sections & index.json have stable ordering
-    # already merged upstream, so patch can removed when we update
-    # beyond 2021.2
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gi-docgen/-/commit/cc21241d4386d4f78dbcb087fd9a92899935cb5c.patch";
-      sha256 = "0wna8mzrlbsv7f3bc7ndqll9l105kp8kdmhbbjhbdhzzzyvh6vcw";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -94,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Documentation generator for GObject-based libraries";
-    homepage = "https://gitlab.gnome.org/ebassi/gi-docgen";
+    homepage = "https://gitlab.gnome.org/GNOME/gi-docgen";
     license = licenses.asl20; # OR GPL-3.0-or-later
     maintainers = teams.gnome.members;
   };
diff --git a/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix b/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
index d031145a9977..b536dc940670 100644
--- a/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, pkg-config, libxml2Python, libxslt, intltool, gnome3
+{ lib, fetchurl, pkg-config, libxml2Python, libxslt, intltool, gnome
 , python2Packages }:
 
 python2Packages.buildPythonApplication rec {
@@ -24,7 +24,7 @@ python2Packages.buildPythonApplication rec {
   propagatedBuildInputs = [ libxml2Python ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
index e74a6b9c3c6a..5951c8d71fd5 100644
--- a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -8,7 +8,7 @@
 , docbook-xsl-nons
 , libxslt
 , gettext
-, gnome3
+, gnome
 , withDblatex ? false, dblatex
 }:
 
@@ -32,6 +32,13 @@ python3.pkgs.buildPythonApplication rec {
     passthru.respect_xml_catalog_files_var_patch
   ];
 
+  strictDeps = true;
+
+  depsBuildBuild = [
+    python3
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     pkg-config
     gettext
@@ -70,7 +77,7 @@ python3.pkgs.buildPythonApplication rec {
   passthru = {
     # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch
     respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch;
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix b/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
index 68be931aa444..e9bf37345133 100644
--- a/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1ki6w3qf8ipcf7ch5120mj16vs7yan8k9zjd25v8x6vbsd1iccgy";
   };
 
-  cargoSha256 = "10iqypz8hfyzy1xd78r39z2waa728d97kfnf1bbx8fr4a4pzan7y";
+  cargoSha256 = "0x5fd47rjmzzmwgj14gbj0rbxwbphd7f63mis4ivwlwc9ikjxdxb";
 
   meta = with lib; {
     description = "Markdown shell pre-processor";
diff --git a/nixpkgs/pkgs/development/tools/dot-http/default.nix b/nixpkgs/pkgs/development/tools/dot-http/default.nix
index b156847870d8..d5a507d4ebba 100644
--- a/nixpkgs/pkgs/development/tools/dot-http/default.nix
+++ b/nixpkgs/pkgs/development/tools/dot-http/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1s2q4kdldhb5gd14g2h6vzrbjgbbbs9zp2dgmna0rhk1h4qv0mml";
   };
 
-  cargoSha256 = "0an3hskq1k2j4gdn8wvhfb9pqsc34ibs5bv7sjznkp5jma6fdr9w";
+  cargoSha256 = "013jyp2bgmssj1c18lm8jkb6q6jlhdrqzmyri6k5lgmfmb9dvkii";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/dt-schema/default.nix b/nixpkgs/pkgs/development/tools/dt-schema/default.nix
index 7f439d9b59e8..9ba53881bf35 100644
--- a/nixpkgs/pkgs/development/tools/dt-schema/default.nix
+++ b/nixpkgs/pkgs/development/tools/dt-schema/default.nix
@@ -6,7 +6,7 @@
 , jsonschema
 , rfc3987
 , setuptools
-, setuptools_scm
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "d9f88f069068dc5dc7e895785d7172d260cbbc34cab3b52704b20e89b80c6de8";
   };
 
-  nativeBuildInputs = [ setuptools_scm git ];
+  nativeBuildInputs = [ setuptools-scm git ];
   propagatedBuildInputs = [
     setuptools
     ruamel_yaml
diff --git a/nixpkgs/pkgs/development/tools/earthly/default.nix b/nixpkgs/pkgs/development/tools/earthly/default.nix
new file mode 100644
index 000000000000..82f59817b221
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/earthly/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "earthly";
+  version = "0.5.15";
+
+  src = fetchFromGitHub {
+    owner = "earthly";
+    repo = "earthly";
+    rev = "v${version}";
+    sha256 = "sha256-3hiiCcCgbWxSfG8XCcoKdNJsQoP2L2G4g4zFQkFtzQI=";
+  };
+
+  vendorSha256 = "sha256-q3dDV0eop2NxXHFrlppWsZrO2Hz1q5xhs1DnB6PvG9g=";
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X main.Version=v${version}
+      -X main.DefaultBuildkitdImage=earthly/buildkitd:v${version}
+      -extldflags -static
+  '';
+
+  BUILDTAGS = "dfrunmount dfrunsecurity dfsecrets dfssh dfrunnetwork";
+  preBuild = ''
+    makeFlagsArray+=(BUILD_TAGS="${BUILDTAGS}")
+  '';
+
+  postInstall = ''
+    mv $out/bin/debugger $out/bin/earthly-debugger
+    mv $out/bin/shellrepeater $out/bin/earthly-shellrepeater
+  '';
+
+  meta = with lib; {
+    description = "Build automation for the container era";
+    homepage = "https://earthly.dev/";
+    changelog = "https://github.com/earthly/earthly/releases/tag/v${version}";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ mdsp ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ecpdap/default.nix b/nixpkgs/pkgs/development/tools/ecpdap/default.nix
new file mode 100644
index 000000000000..3bb12c40e355
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/ecpdap/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, libusb1, AppKit }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ecpdap";
+  version = "0.1.6";
+
+  src = fetchFromGitHub {
+    owner = "adamgreig";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1va96hxm22a2lfy141x1sv5f5g8f6mp965an4jsff9qzi55kfv2g";
+  };
+
+  cargoSha256 = "1dk6x2f36c546qr415kzmqr2r4550iwdmj4chrb46p3hr64jddhd";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ libusb1 ]
+    ++ lib.optional stdenv.isDarwin AppKit;
+
+  postInstall = ''
+    mkdir -p $out/etc/udev/rules.d
+    cp drivers/*.rules $out/etc/udev/rules.d
+  '';
+
+  meta = with lib; {
+    description = "A tool to program ECP5 FPGAs";
+    longDescription = ''
+      ECPDAP allows you to program ECP5 FPGAs and attached SPI flash
+      using CMSIS-DAP probes in JTAG mode.
+    '';
+    homepage = "https://github.com/adamgreig/ecpdap";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/tools/electron/default.nix b/nixpkgs/pkgs/development/tools/electron/default.nix
index ddd51f268e27..0b2cdbe9c045 100644
--- a/nixpkgs/pkgs/development/tools/electron/default.nix
+++ b/nixpkgs/pkgs/development/tools/electron/default.nix
@@ -22,7 +22,7 @@ let
 in
 rec {
 
-  electron = electron_12;
+  electron = electron_13;
 
   electron_3 = mkElectron "3.1.13" {
     x86_64-linux = "1psmbplz6jhnnf6hmfhxbmmhn4n1dpnhzbc12pxn645xhfpk9ark";
@@ -86,30 +86,42 @@ rec {
     headers = "0yx8mkrm15ha977hzh7g2sc5fab9sdvlk1bk3yxignhxrqqbw885";
   };
 
-  electron_10 = mkElectron "10.4.3" {
-    x86_64-linux = "48793fc6c6d3bfb8df81cd29f6c52e68c8c6b901693c6ba4ed505799fa673e9f";
-    x86_64-darwin = "28cbacf51e0528e0d4ba30a2c56efd6a8e7f836104786733aae0c5fc99dc2615";
-    i686-linux = "b9b7fd9b91630350dafe97a31c918f941ab15b044f0b4e9b2a705482447fe78f";
-    armv7l-linux = "b1e1b4d0620eae647915c95d21656d21c00efe89f44198938d9fd9fba045e39c";
-    aarch64-linux = "aa9177becf787920cef4cde27a6ed08e2e23976678162a3cd6b77615b1582c05";
-    headers = "0phv08myxq226blrqzg3fza3mh3ivgfmcja98b7377pc3x7bv76g";
+  electron_10 = mkElectron "10.4.7" {
+    x86_64-linux = "e3ea75fcedce588c6b59cfa3a6e46ba67b789e14dc2e5b9dfe1ddf3f82b0f995";
+    x86_64-darwin = "8f01e020563b7fce68dc2e3d4bbf419320d13b088e89eb64f9645e9d73ad88fb";
+    i686-linux = "dd7fde9b3993538333ec701101554050b27d0b680196d0883ab563e8e696fc79";
+    armv7l-linux = "56f11ed14f8a620650d31c21ebd095ce59ef4286c98276802b18f9cc85560ddd";
+    aarch64-linux = "0550584518c8e98fe1113706c10fd7456ec519f7aa6867fbff17c8913327d758";
+    headers = "01x6a0r2jawjpl09ixgzap3g0z6znj34hsnnhzanavkbds0ri4k6";
   };
 
-  electron_11 = mkElectron "11.4.3" {
-    x86_64-linux = "222e7aa51d5516796d532f784c574f07315bad4bf29efb0ce687014f93ba5fa5";
-    x86_64-darwin = "6cccbaf8dca7eb3819b0ac3044686f6705c5d51c88ee1361d8573c2b83c8dc0a";
-    i686-linux = "1910729fd6088e9c914db9fdd6c42ce6747fcb048947dd83fa2cdf564c786353";
-    armv7l-linux = "e0e1375bdb79a6917467490683e49bb59da9260b73d7b710a5e4e4535c1c5e80";
-    aarch64-linux = "9fb287ed8bcc7782775bd615fe1c31db4a8b6d548209fd15ef5312ac72a04d07";
-    headers = "00gln9jlb621gvxx1z7s212wakjbdigdqv02vx1pjvkg62aazg8j";
+  electron_11 = mkElectron "11.4.7" {
+    x86_64-linux = "05005d351a1b08a550a8186efba6f4fdd96842355a634934d9a9d7d31c2cd539";
+    x86_64-darwin = "e6445ad3d7e851fc3227785788d0706d58c9c8ea3821afa7f871c6254c463043";
+    i686-linux = "5473f36eb2a9772da7e4f1a162a724b4a5335e8f78fb51d585bac3bd50ff12fc";
+    armv7l-linux = "0de0d74b1206f7ffd9e4c75754bbf6fdf27c83a0ce6b4cd8a6b5af81d7a20ba7";
+    aarch64-linux = "f2261dde71197c358aff85d7a320cbd2315a5adf228218fd9a2f5c8561589323";
+    aarch64-darwin = "a2abc83c21402e30f4f42f4615cccc4369884faa2f2fa576d71f423834988622";
+    headers = "1dqkx861vfq6xbzdlbgza6h4j7bib8p3xahllrnfc0s65y8gf0ry";
   };
 
-  electron_12 = mkElectron "12.0.4" {
-    x86_64-linux = "6419716f614f396954981e6432afe77277dff2b64ecb84e2bbd6d740362ea01c";
-    x86_64-darwin = "3072f1854eb5b91d5f24e03a313583bb85d696cda48381bdf3e40ee2c93dfe34";
-    i686-linux = "fa241874aacca8fe4b4f940fa9133fe65fdcf9ef0847322332f0c67ee7b42aa0";
-    armv7l-linux = "8d88d13bf117820bc3b46501d34004f18ebf402f2817836a2a7ba4fc60433653";
-    aarch64-linux = "c5cbcbb5b397407e45e682480b30da4fcf94154ac92d8f6eea4c79a50d56626a";
-    headers = "121falvhz0bfxc2h7wwvyfqdagr3aznida4f4phzqp0ja3rznxf3";
+  electron_12 = mkElectron "12.0.10" {
+    x86_64-linux = "b5383b5818062de42536a7966df875ae781433a7ee991da34643bc6fda4ad038";
+    x86_64-darwin = "3d4111280bf50dbfb141b46551974b0e4e39eb0d1f8ef789d71f7d3295a8e24f";
+    i686-linux = "6fd10db8d896ef82ac8f2a1d796942dc56f5b41e504c86121d83eababa0cccb8";
+    armv7l-linux = "5820ac7e70488507417122aaa0381439f929da1819c2c710ba74569a609cc972";
+    aarch64-linux = "022ff009969d9f270704e918fe2dda6cd395c3e9d9e9515e99eca628d996a503";
+    aarch64-darwin = "d2af4870a79866621469043e44a2a0e995abc5530d4aaf1add567b00eb286b01";
+    headers = "1vl3cnhf2j5g4xhk17rag0vzbxwba5fq54mhvv0hp3hqbiqhdds6";
+  };
+
+  electron_13 = mkElectron "13.1.0" {
+    x86_64-linux = "6681078971d2e99e9f8b3c598de65869d3596356af901bbbabcc4860c0496bb4";
+    x86_64-darwin = "d62a561e80fcbcb0f249e74c487313192451046f288478add65be997793831de";
+    i686-linux = "e4d8cc19689b1f9c00894bb776083f8543abeba9203d3297268c1644f1300355";
+    armv7l-linux = "ac5a19e31fd83db5775a2af57f742c7b3e5fc4528958329ec3c81f82e7bd611a";
+    aarch64-linux = "0ed0cc3afae5cc7e1e6c6204866a1cecdf97e0ab658789e8951842bd0d28e1bb";
+    aarch64-darwin = "6da46d2861011263af2953a3e0186735e54708c01c50967ff5f8ed71b73f7fea";
+    headers = "1h4saavsy97kmbfaw6xcya5l0iybr37vyw7bv539c7a064kam07b";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/electron/generic.nix b/nixpkgs/pkgs/development/tools/electron/generic.nix
index 7d4593dee3c5..def103f6e567 100644
--- a/nixpkgs/pkgs/development/tools/electron/generic.nix
+++ b/nixpkgs/pkgs/development/tools/electron/generic.nix
@@ -26,7 +26,8 @@ let
     homepage = "https://github.com/electron/electron";
     license = licenses.mit;
     maintainers = with maintainers; [ travisbhartwell manveru prusnak ];
-    platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
+    platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ]
+      ++ optionals (versionAtLeast version "11.0.0") [ "aarch64-darwin" ];
     knownVulnerabilities = optional (versionOlder version "6.0.0") "Electron version ${version} is EOL";
   };
 
@@ -46,6 +47,7 @@ let
     armv7l-linux = "linux-armv7l";
     aarch64-linux = "linux-arm64";
     x86_64-darwin = "darwin-x64";
+    aarch64-darwin = "darwin-arm64";
   };
 
   get = as: platform: as.${platform.system} or
diff --git a/nixpkgs/pkgs/development/tools/electron/print-hashes.sh b/nixpkgs/pkgs/development/tools/electron/print-hashes.sh
index d6c5d94ec41e..48c8f0412e10 100755
--- a/nixpkgs/pkgs/development/tools/electron/print-hashes.sh
+++ b/nixpkgs/pkgs/development/tools/electron/print-hashes.sh
@@ -17,6 +17,7 @@ SYSTEMS=(
     [armv7l-linux]=linux-armv7l
     [aarch64-linux]=linux-arm64
     [x86_64-darwin]=darwin-x64
+    [aarch64-darwin]=darwin-arm64
 )
 
 hashfile="$(nix-prefetch-url --print-path "https://github.com/electron/electron/releases/download/v${VERSION}/SHASUMS256.txt" 2>/dev/null | tail -n1)"
@@ -27,8 +28,10 @@ headers="$(nix-prefetch-url "https://atom.io/download/electron/v${VERSION}/node-
 echo "  electron_${VERSION%%.*} = mkElectron \"${VERSION}\" {"
 
 for S in "${!SYSTEMS[@]}"; do
-  hash="$(grep " *electron-v${VERSION}-${SYSTEMS[$S]}.zip$" "$hashfile"|cut -f1 -d' ')"
-  echo "    $S = \"$hash\";"
+  hash="$(grep " *electron-v${VERSION}-${SYSTEMS[$S]}.zip$" "$hashfile"|cut -f1 -d' ' || :)"
+  if [[ -n $hash ]]; then
+    echo "    $S = \"$hash\";"
+  fi
 done
 
 echo "    headers = \"$headers\";"
diff --git a/nixpkgs/pkgs/development/tools/erlang/cuter/default.nix b/nixpkgs/pkgs/development/tools/erlang/cuter/default.nix
deleted file mode 100644
index 44ed61ac1d5f..000000000000
--- a/nixpkgs/pkgs/development/tools/erlang/cuter/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, autoreconfHook, which, writeText, makeWrapper, fetchFromGitHub, erlang
-, z3, python }:
-
-stdenv.mkDerivation rec {
-  pname = "cuter";
-  version = "0.1";
-
-  src = fetchFromGitHub {
-    owner = "aggelgian";
-    repo = "cuter";
-    rev = "v${version}";
-    sha256 = "1ax1pj6ji4w2mg3p0nh2lzmg3n9mgfxk4cf07pll51yrcfpfrnfv";
-  };
-
-  setupHook = writeText "setupHook.sh" ''
-    addToSearchPath ERL_LIBS "$1/lib/erlang/lib/"
-  '';
-
-  nativeBuildInputs = [ autoreconfHook makeWrapper which ];
-  buildInputs = [ python python.pkgs.setuptools z3.python erlang ];
-
-  buildFlags = [ "PWD=$(out)/lib/erlang/lib/cuter-${version}" "cuter_target" ];
-  configurePhase = ''
-    autoconf
-    ./configure --prefix $out
-  '';
-
-  installPhase = ''
-    mkdir -p "$out/lib/erlang/lib/cuter-${version}"
-    mkdir -p "$out/bin"
-    cp -r * "$out/lib/erlang/lib/cuter-${version}"
-    cp cuter "$out/bin/cuter"
-    wrapProgram $out/bin/cuter \
-      --prefix PATH : "${python}/bin" \
-      --suffix PYTHONPATH : "${z3}/${python.sitePackages}" \
-      --suffix ERL_LIBS : "$out/lib/erlang/lib"
-  '';
-
-  meta = {
-    description = "A concolic testing tool for the Erlang functional programming language";
-    license = lib.licenses.gpl3;
-    homepage = "https://github.com/aggelgian/cuter";
-    maintainers = with lib.maintainers; [ ericbmerritt ];
-    platforms = with lib.platforms; unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix b/nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix
deleted file mode 100644
index 0f9d973e6773..000000000000
--- a/nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ fetchHex, fetchRebar3Deps, rebar3Relx }:
-
-rebar3Relx rec {
-  name = "relx-exe";
-  version = "3.32.1";
-  releaseType = "escript";
-
-  src = fetchHex {
-    pkg = "relx";
-    sha256 = "0693k8ac7hvpm9jd3ysbdn8bk97d68ini22p1fsqdsi9qv9f7nq7";
-    inherit version;
-  };
-
-  checkouts = fetchRebar3Deps {
-    inherit name version;
-    src = "${src}/rebar.lock";
-    sha256 = "0l7r3x7zwcz49013zv8z5v2i06p7wqkgzdyzrl8jk0hglscvhpf6";
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/esbuild/default.nix b/nixpkgs/pkgs/development/tools/esbuild/default.nix
index 47f8b217bc5f..894168145aee 100644
--- a/nixpkgs/pkgs/development/tools/esbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/esbuild/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "esbuild";
-  version = "0.11.14";
+  version = "0.12.7";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    sha256 = "0qxylzc7lzpsp5hm3dl5jvy9aca8azn8dmbjz9z5n5rkdmm8vd9p";
+    sha256 = "sha256-LHM3dlVfwgA1HJPg/77Er/RWEDVmmQuuhrS5KzTAtV0=";
   };
 
-  vendorSha256 = "1n5538yik72x94vzfq31qaqrkpxds5xys1wlibw2gn2am0z5c06q";
+  vendorSha256 = "sha256-2ABWPqhK2Cf4ipQH7XvRrd+ZscJhYPc3SV2cGT0apdg=";
 
   meta = with lib; {
     description = "An extremely fast JavaScript bundler";
diff --git a/nixpkgs/pkgs/development/tools/evans/default.nix b/nixpkgs/pkgs/development/tools/evans/default.nix
new file mode 100644
index 000000000000..dfc9d34b5ac5
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/evans/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "evans";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "ktr0731";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-q8HWDZpUWaitdZcWkvKEWWbIWCj9VmWCxxhAdcYZx8s=";
+  };
+
+  subPackages = [ "." ];
+
+  vendorSha256 = "sha256-ntRlrbsQjZmVxEg9361Q+f6Wb/R393+sbOKOEh5VKPk=";
+
+  meta = with lib; {
+    description = "More expressive universal gRPC client";
+    homepage = "https://evans.syfm.me/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ diogox ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/f2c/default.nix b/nixpkgs/pkgs/development/tools/f2c/default.nix
new file mode 100644
index 000000000000..f235296308fc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/f2c/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  pname = "f2c";
+  version = "20200916";
+
+  src = fetchurl {
+    url = "https://www.netlib.org/f2c/src.tgz";
+    sha256 = "0d8xfbv6dk4dz95qds7sd44b5hvara07f2g2c5g4xiwim9b7916l";
+  };
+
+  makeFlags = [ "-f" "makefile.u" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/man/man1
+    install -m755 f2c $out/bin
+    install -m755 xsum $out/bin
+    install f2c.1t $out/share/man/man1
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Convert Fortran 77 source code to C";
+    homepage = "https://www.netlib.org/f2c/";
+    license = licenses.mit;
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
index 75aa8a00f00c..cc1a46c834b5 100644
--- a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
+++ b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
@@ -46,13 +46,13 @@ let
   installed_test_metadir = "${placeholder "installedTests"}/share/installed-tests/flatpak-builder";
 in stdenv.mkDerivation rec {
   pname = "flatpak-builder";
-  version = "1.0.12";
+  version = "1.0.14";
 
   outputs = [ "out" "doc" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-R4DBuOCDj/tk6WOb14AUF5ZP2BjHxtXpr8pNVRHe0sg=";
+    sha256 = "sha256-abZa9PY4BBJ1GMVFGE+d/JqTWM3tqr7yseUGI64rjYs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/flip-link/default.nix b/nixpkgs/pkgs/development/tools/flip-link/default.nix
new file mode 100644
index 000000000000..697e4fb35369
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/flip-link/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "flip-link";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "knurling-rs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0x6l5aps0aryf3iqiyk969zrq77bm95jvm6f0f5vqqqizxjd3yfl";
+  };
+
+  cargoSha256 = "13rgpbwaz2b928rg15lbaszzjymph54pwingxpszp5paihx4iayr";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
+
+  meta = with lib; {
+    description = "Adds zero-cost stack overflow protection to your embedded programs";
+    homepage = "https://github.com/knurling-rs/flip-link";
+    license = with licenses; [ asl20 mit ];
+    maintainers = [ maintainers.FlorianFranzen ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/frugal/default.nix b/nixpkgs/pkgs/development/tools/frugal/default.nix
new file mode 100644
index 000000000000..c8339fe6d851
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/frugal/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "frugal";
+  version = "3.14.4";
+
+  src = fetchFromGitHub {
+    owner = "Workiva";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-RFVn5aL5MqsB7heDPVUci3Eyq6F/qo3RmdEaZbsC+Ng=";
+  };
+
+  subPackages = [ "." ];
+
+  vendorSha256 = "sha256-hyupBMRKuw77SJNIk3mEUixV0LV5mEmZx8M70qGmYJY=";
+
+  meta = with lib; {
+    description = "Thrift improved";
+    homepage = "https://github.com/Workiva/frugal";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ diogox ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ghp-import/default.nix b/nixpkgs/pkgs/development/tools/ghp-import/default.nix
deleted file mode 100644
index 4c258d6154ba..000000000000
--- a/nixpkgs/pkgs/development/tools/ghp-import/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ python3, glibcLocales, lib }:
-
-with python3.pkgs;
-
-buildPythonApplication rec {
-  version = "0.5.5";
-  pname = "ghp-import";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1mvmpi7lqflw2lr0g0y5f9s0d1pv9cav4gbmaqnziqg442klx4iy";
-  };
-
-  disabled = isPyPy;
-  buildInputs = [ glibcLocales ];
-
-  LC_ALL="en_US.UTF-8";
-
-  # No tests available
-  doCheck = false;
-
-  meta = {
-    description = "Copy your docs directly to the gh-pages branch";
-    homepage = "https://github.com/davisp/ghp-import";
-    license = "Tumbolia Public License";
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/ginkgo/default.nix b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
index e5883501f819..833f87e4a028 100644
--- a/nixpkgs/pkgs/development/tools/ginkgo/default.nix
+++ b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "1.16.1";
+  version = "1.16.2";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-nlNft9jOp8V8ks32LOb4wUTkRrXJ5K49gbHuRmCKz/0=";
+    sha256 = "sha256-u2roJsZZ5oG2dHo4kmSsoySjm1HRQJ659+D2M+LezCc=";
   };
   vendorSha256 = "sha256-tS8YCGVOsfQp02vY6brmE3pxi70GG9DYcp1JDkcVG9Y=";
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/gir/default.nix b/nixpkgs/pkgs/development/tools/gir/default.nix
index c88ffef4df12..856cd44e26c0 100644
--- a/nixpkgs/pkgs/development/tools/gir/default.nix
+++ b/nixpkgs/pkgs/development/tools/gir/default.nix
@@ -2,16 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gir";
-  version = "2019-10-16";
+  version = "unstable-2021-05-05";
 
   src = fetchFromGitHub {
     owner = "gtk-rs";
     repo = "gir";
-    rev = "241d790085a712db7436c5c25b210ccb7d1a08d5";
-    sha256 = "1kn5kgdma9j6dwpmv6jmydak7ajlgdkw9sfkh3q7h8c2a8yikvxr";
+    rev = "c148542ce89b0bf7cbb9f5ef4179c96a45d022df";
+    sha256 = "0vy366ipwnn0cpp14l1v5g3dpnsr3hd8mjp3333lp0946igfqsy5";
+    leaveDotGit = true; # required for build.rs
   };
 
-  cargoSha256 = "048qhlc4f5khxi7dnakgqkhgww44r6h3mlx2fm7y2wqivr3rj8p1";
+  cargoSha256 = "11as1v88zf0f7l2ngllg5zqycvd05nb4vrsyl1dlarjvbq7fhvv8";
 
   meta = with lib; {
     description = "Tool to generate rust bindings and user API for glib-based libraries";
diff --git a/nixpkgs/pkgs/development/tools/git-aggregator/default.nix b/nixpkgs/pkgs/development/tools/git-aggregator/default.nix
new file mode 100644
index 000000000000..a6599c667c86
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/git-aggregator/default.nix
@@ -0,0 +1,40 @@
+{ git, lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "git-aggregator";
+  version = "1.8.1";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    hash = "sha256-LLsyhyhPmOOvPzwEEJwkhrDfBMFueA7kuDlnrqwr08k=";
+  };
+
+  nativeBuildInputs = with python3Packages; [
+    setuptools-scm
+  ];
+  propagatedBuildInputs = with python3Packages; [
+    argcomplete
+    colorama
+    git
+    kaptan
+    requests
+  ];
+
+  checkInputs = [
+    git
+  ];
+
+  preCheck = ''
+    export HOME=`mktemp -d`
+    git config --global user.name John
+    git config --global user.email john@localhost
+  '';
+
+  meta = with lib; {
+    description = "Manage the aggregation of git branches from different remotes to build a consolidated one.";
+    homepage = "https://github.com/acsone/git-aggregator";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ lourkeur ];
+    mainProgram = "gitaggregate";
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix b/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
index 7f0db1f712c4..548fca369b92 100644
--- a/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
+++ b/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-quick-stats";
-  version = "2.1.8";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "sha256-sK8HOfeiV0xn540bU7inZl/hV6uzitJ4Szqk96a8DMc=";
+    sha256 = "sha256-cE9eo8FUUNlhmBrHalFDTFK2LIQUaWFy7Gj/E2F15t4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/git-series/default.nix b/nixpkgs/pkgs/development/tools/git-series/default.nix
index 0f7677c7aa26..752cefad3c27 100644
--- a/nixpkgs/pkgs/development/tools/git-series/default.nix
+++ b/nixpkgs/pkgs/development/tools/git-series/default.nix
@@ -15,7 +15,7 @@ buildRustPackage rec {
     sha256 = "07mgq5h6r1gf3jflbv2khcz32bdazw7z1s8xcsafdarnm13ps014";
   };
 
-  cargoSha256 = "0ijgx8fksg2najb336dhddxlqfzc338f9ylydkpw6b39k72mm00d";
+  cargoSha256 = "0870f4rd98fbmyl8524ivfg3xf4qpzb1x68q1idnl47mmf68pyx8";
 
   cargoPatches = [
     (fetchpatch {
diff --git a/nixpkgs/pkgs/development/tools/glade/default.nix b/nixpkgs/pkgs/development/tools/glade/default.nix
index d77772c32db6..3e5c7b0438fd 100644
--- a/nixpkgs/pkgs/development/tools/glade/default.nix
+++ b/nixpkgs/pkgs/development/tools/glade/default.nix
@@ -15,7 +15,7 @@
 , libxml2
 , docbook-xsl-nons
 , docbook_xml_dtd_42
-, gnome3
+, gnome
 , gdk-pixbuf
 , libxslt
 , gsettings-desktop-schemas
@@ -54,11 +54,11 @@ stdenv.mkDerivation rec {
     python3.pkgs.pygobject3
     gsettings-desktop-schemas
     gdk-pixbuf
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/tools/go-mockery/default.nix b/nixpkgs/pkgs/development/tools/go-mockery/default.nix
index a65a9276add4..347bfeb116a4 100644
--- a/nixpkgs/pkgs/development/tools/go-mockery/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-mockery/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "go-mockery";
-  version = "2.7.4";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "vektra";
     repo = "mockery";
     rev = "v${version}";
-    sha256 = "sha256-St8QgUZUU7THM9H8i7Z+bgKu9LhXhUqH/B14LGmDCn0=";
+    sha256 = "sha256-sOZig47KKKGJmV9QNCa+TwYCxemeVl6xssfExSaaFjY=";
   };
 
   vendorSha256 = "sha256-//V3ia3YP1hPgC1ipScURZ5uXU4A2keoG6dGuwaPBcA=";
diff --git a/nixpkgs/pkgs/development/tools/go-task/default.nix b/nixpkgs/pkgs/development/tools/go-task/default.nix
index e97819c4343f..58a986e813e1 100644
--- a/nixpkgs/pkgs/development/tools/go-task/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-task/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.4.2";
+  version = "3.4.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "v${version}";
-    sha256 = "sha256-632ISkBIZJBJpybuiuRHOV3CAJg1rSe3hK+W7hmW2cM=";
+    sha256 = "sha256-hI6x3DOB7pP+umnEFqL0sIx+6qN74sooLdkR2pC74D8=";
   };
 
-  vendorSha256 = "sha256-qKjCGZnCts4GfBafSRXR7xTvfJdqK8zjpu01eiyITkU=";
+  vendorSha256 = "sha256-bsVzV2M31BA7X6aq8na7v56uGYgne4OwR5kz/utmQHI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/go-toml/default.nix b/nixpkgs/pkgs/development/tools/go-toml/default.nix
index 9a0fa54fb2d5..fee8d94f754b 100644
--- a/nixpkgs/pkgs/development/tools/go-toml/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-toml/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "go-toml";
-  version = "1.9.0";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "pelletier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-m8VgjfNDxSX6fRG2/gEJlVc9hCnua+o79ttrd8P20kU=";
+    sha256 = "sha256-x740f6I+szhq4mEsed4bsXcC8PvzF6PKFJNJ9SKMGIE=";
   };
 
   goPackagePath = "github.com/pelletier/go-toml";
diff --git a/nixpkgs/pkgs/development/tools/go-tools/default.nix b/nixpkgs/pkgs/development/tools/go-tools/default.nix
index 2bf5093e5e36..69059578e273 100644
--- a/nixpkgs/pkgs/development/tools/go-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-tools/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2020.2.3";
+  version = "2021.1";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "17li8jbw3cpn59kpcl3j3r2an4wkx3fc81xn0j4xgbjpkxh9493n";
+    sha256 = "sha256-QhTjzrERhbhCSkPzyLQwFyxrktNoGL9ris+XfE7n5nQ=";
   };
 
-  vendorSha256 = "081p008sb3lkc8j6sa6n42qi04za4a631kihrd4ca6aigwkgl3ak";
+  vendorSha256 = "sha256-EjCOMdeJ0whp2pHZvm4VV2K78UNKzl98Z/cQvGhWSyY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/godot/default.nix b/nixpkgs/pkgs/development/tools/godot/default.nix
index d5eb7a9b0e01..5e457227c8da 100644
--- a/nixpkgs/pkgs/development/tools/godot/default.nix
+++ b/nixpkgs/pkgs/development/tools/godot/default.nix
@@ -1,28 +1,31 @@
-{ stdenv, lib, fetchFromGitHub, scons, pkg-config, libX11, libXcursor
-, libXinerama, libXrandr, libXrender, libpulseaudio ? null
-, libXi ? null, libXext, libXfixes, freetype, openssl
-, alsaLib, libGLU, zlib, yasm ? null }:
+{ stdenv, lib, fetchFromGitHub, scons, pkg-config, udev, libX11
+, libXcursor , libXinerama, libXrandr, libXrender, libpulseaudio
+, libXi, libXext, libXfixes, freetype, openssl
+, alsa-lib, libGLU, zlib, yasm
+, withUdev ? true
+}:
 
 let
   options = {
     touch = libXi != null;
     pulseaudio = false;
+    udev = withUdev;
   };
 in stdenv.mkDerivation rec {
   pname = "godot";
-  version = "3.2.3";
+  version = "3.3.2";
 
   src = fetchFromGitHub {
     owner  = "godotengine";
     repo   = "godot";
     rev    = "${version}-stable";
-    sha256 = "19vrp5lhyvxbm6wjxzn28sn3i0s8j08ca7nani8l1nrhvlc8wi0v";
+    sha256 = "0rfm6sbbwzvsn76a8aqagd7cqdzmk8qxphgl89k7y982l9a5sz50";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    scons libX11 libXcursor libXinerama libXrandr libXrender
-    libXi libXext libXfixes freetype openssl alsaLib libpulseaudio
+    scons udev libX11 libXcursor libXinerama libXrandr libXrender
+    libXi libXext libXfixes freetype openssl alsa-lib libpulseaudio
     libGLU zlib yasm
   ];
 
diff --git a/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch b/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
index b7c1d3d62335..74e1241513ba 100644
--- a/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
+++ b/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
@@ -1,18 +1,19 @@
 diff --git a/SConstruct b/SConstruct
-index b3d033dc90..04b8dcc832 100644
+index d138c7b250..c925bf908e 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -62,10 +62,9 @@ elif platform_arg == "javascript":
-     custom_tools = ["cc", "c++", "ar", "link", "textfile", "zip"]
- 
+@@ -65,10 +65,10 @@ elif platform_arg == "javascript":
+ # want to have to pull in manually.
+ # Then we prepend PATH to make it take precedence, while preserving SCons' own entries.
  env_base = Environment(tools=custom_tools)
--if "TERM" in os.environ:
+-env_base.PrependENVPath("PATH", os.getenv("PATH"))
+-env_base.PrependENVPath("PKG_CONFIG_PATH", os.getenv("PKG_CONFIG_PATH"))
+-if "TERM" in os.environ:  # Used for colored output.
 -    env_base["ENV"]["TERM"] = os.environ["TERM"]
--env_base.AppendENVPath("PATH", os.getenv("PATH"))
--env_base.AppendENVPath("PKG_CONFIG_PATH", os.getenv("PKG_CONFIG_PATH"))
 +for k in ("TERM", "PATH", "PKG_CONFIG_PATH"):
 +    if (k in os.environ):
 +        env_base["ENV"][k] = os.environ[k]
++
+
  env_base.disabled_modules = []
  env_base.use_ptrcall = False
- env_base.module_version_string = ""
diff --git a/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch b/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
index 9e2e5c3536db..f5ab667f1808 100644
--- a/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
+++ b/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
@@ -1,11 +1,11 @@
 diff --git a/platform/x11/detect.py b/platform/x11/detect.py
-index 5674e78350..7051d8e73c 100644
+index 91652aad55..d12389f9f2 100644
 --- a/platform/x11/detect.py
 +++ b/platform/x11/detect.py
-@@ -201,6 +201,11 @@ def configure(env):
+@@ -218,6 +218,11 @@ def configure(env):
      env.ParseConfig("pkg-config xrender --cflags --libs")
      env.ParseConfig("pkg-config xi --cflags --libs")
- 
+
 +    env.ParseConfig("pkg-config xext --cflags --libs")
 +    env.ParseConfig("pkg-config xfixes --cflags --libs")
 +    env.ParseConfig("pkg-config glu --cflags --libs")
@@ -13,13 +13,20 @@ index 5674e78350..7051d8e73c 100644
 +
      if env["touch"]:
          env.Append(CPPDEFINES=["TOUCH_ENABLED"])
- 
-@@ -299,7 +304,7 @@ def configure(env):
+
+@@ -323,6 +328,7 @@ def configure(env):
          print("Enabling ALSA")
+         env["alsa"] = True
          env.Append(CPPDEFINES=["ALSA_ENABLED", "ALSAMIDI_ENABLED"])
-         # Don't parse --cflags, we don't need to add /usr/include/alsa to include path
--        env.ParseConfig("pkg-config alsa --libs")
 +        env.ParseConfig("pkg-config alsa --cflags --libs")
      else:
          print("ALSA libraries not found, disabling driver")
- 
+
+@@ -340,6 +346,7 @@ def configure(env):
+             if os.system("pkg-config --exists libudev") == 0:  # 0 means found
+                 print("Enabling udev support")
+                 env.Append(CPPDEFINES=["UDEV_ENABLED"])
++                env.ParseConfig("pkg-config libudev --cflags --libs")
+             else:
+                 print("libudev development libraries not found, disabling udev support")
+     else:
diff --git a/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix b/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix
index 0fd45598a837..659532e04e01 100644
--- a/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix
+++ b/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gojsontoyaml";
-  version = "unstable-2020-06-02";
+  version = "unstable-2020-12-16";
 
   src = fetchFromGitHub {
     owner = "brancz";
     repo = "gojsontoyaml";
-    rev = "3697ded27e8cfea8e547eb082ebfbde36f1b5ee6";
-    sha256 = "07sisadpfnzbylzirs5ski8wl9fl18dm7xhbv8imw6ksxq4v467a";
+    rev = "202f76bf8c1f8fb74941a845b349941064603185";
+    sha256 = "sha256-N49iHQh28nAZBGJnLKG/aZPdn5fwPKQpdrXXtX28yss=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/development/tools/golangci-lint/default.nix b/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
index 83bc3f473d32..2019c7cb3e22 100644
--- a/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
+++ b/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.39.0";
+  version = "1.40.1";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "0c9yka27k4v1waijk7mn7k31l5a373sclykypflchy7xnlrsa18v";
+    sha256 = "sha256-5OtXfDPpdwVMnI5Pttr+XQPgJXI7YexPtBhIDeS1CXk=";
   };
 
-  vendorSha256 = "1685iv1lsal462c8xqvs76x9dwvbwazrak902j0p12s0fyb66lpl";
+  vendorSha256 = "sha256-8SPUOQ88RkU0dkyNccf+POKitXHlCRaxrIugV91gDZQ=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/gosec/default.nix b/nixpkgs/pkgs/development/tools/gosec/default.nix
index 5f0f2da2daaa..a24ec1050146 100644
--- a/nixpkgs/pkgs/development/tools/gosec/default.nix
+++ b/nixpkgs/pkgs/development/tools/gosec/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "gosec";
-  version = "2.7.0";
+  version = "2.8.0";
 
   subPackages = [ "cmd/gosec" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "securego";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U7+0wXnuIDlATpVRVknwaPxib36+iYvvYUVM6d7Xf6I=";
+    sha256 = "sha256-AC3NHW7LYbpZGA+iaM9eXFLothhqZuvRJM1ehBByhpk=";
   };
 
-  vendorSha256 = "sha256-nr1rx6GM+ETcfLreYT081xNzUz2exloogJ+gcwF2u2o=";
+  vendorSha256 = "sha256-QfbElEjkYdmzYhQ8TOFIb2jfG2xzbW1UL2eLxROsBfw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
index b857b910f0a5..3ebbc9b03396 100644
--- a/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
@@ -1,13 +1,13 @@
-{ mkDerivation, base, containers, fetchgit, hedgehog
-, optparse-applicative, parsec, lib, template-haskell, text
+{ mkDerivation, base, containers, fetchgit, hedgehog, lib
+, optparse-applicative, parsec, template-haskell, text
 }:
 mkDerivation {
   pname = "dconf2nix";
-  version = "0.0.7";
+  version = "0.0.8";
   src = fetchgit {
     url = "https://github.com/gvolpe/dconf2nix.git";
-    sha256 = "04p8di1ckv5fkfa61pjg5xp8vcw091lz1kw39lh4w8ks2zjwaha1";
-    rev = "34c523e920b79208c3b4c0ad371900b0948799f7";
+    sha256 = "19jk3p0ys3lbqk21lm37a7alkg2vhnmkvcffjqfxrw8p4737hxid";
+    rev = "6bf3d7d4ca9f553a9e1ba4a70a65640114d230b2";
     fetchSubmodules = true;
   };
   isLibrary = true;
diff --git a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix b/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
index 6b1399046166..2b3fb76903e5 100644
--- a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
@@ -1,35 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, jshon, electron_3
+{ lib, stdenvNoCC, fetchFromGitHub, jshon, electron_10
 , runtimeShell, hyper-haskell-server, extra-packages ? [] }:
 
 let
   binPath = lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
-  electron = electron_3;
-in stdenv.mkDerivation rec {
+  electron = electron_10;
+in stdenvNoCC.mkDerivation rec {
   pname = "hyper-haskell";
-  version = "0.1.0.2";
+  version = "0.2.3.0";
 
   src = fetchFromGitHub {
     owner = "HeinrichApfelmus";
     repo = "hyper-haskell";
     rev = "v${version}";
-    sha256 = "1k38h7qx12z7463z8466pji0nwfkp4qkg7q83kns2mzmwmw5jnmb";
+    sha256 = "1nmkry4wh6a2dy98fcs81mq2p7zhxp1k0f4m3szr6fm3j1zwrd43";
   };
 
   propagatedBuildInputs = extra-packages;
 
-  buildCommand = ''
+  dontBuild = true;
+
+  installPhase = ''
     mkdir -p $out/bin $out/share/hyper-haskell/worksheets $out/share/applications $out/share/icons/hicolor/scalable/apps $out/share/mime/packages
 
     # Electron app
-    cp -R $src/app $out
+    cp -R app $out
 
     # Desktop Launcher
-    cp $src/resources/hyper-haskell.desktop $out/share/applications/hyper-haskell.desktop
-    cp $src/resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/hyper-haskell.svg
-    cp $src/resources/shared-mime-info.xml $out/share/mime/packages/hyper-haskell.xml
+    cp resources/hyper-haskell.desktop $out/share/applications/hyper-haskell.desktop
+    cp resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/hyper-haskell.svg
+    cp resources/shared-mime-info.xml $out/share/mime/packages/hyper-haskell.xml
 
     # install example worksheets with backend set to nix
-    for worksheet in "$src/worksheets/"*.hhs; do
+    for worksheet in "worksheets/"*.hhs; do
       ${jshon}/bin/jshon -e settings -s nix -i packageTool -p < $worksheet > $out/share/hyper-haskell/worksheets/`basename $worksheet`
     done
 
diff --git a/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix b/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
index 875d5a8a4a8d..4a8482314108 100644
--- a/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
@@ -2,9 +2,8 @@
 let
   ihaskellEnv = ghcWithPackages (self: [
     self.ihaskell
-    (haskell.lib.doJailbreak self.ihaskell-blaze)
-    (haskell.lib.doJailbreak self.ihaskell-diagrams)
-    (haskell.lib.doJailbreak self.ihaskell-display)
+    self.ihaskell-blaze
+    self.ihaskell-diagrams
   ] ++ packages self);
   ihaskellSh = writeScriptBin "ihaskell-notebook" ''
     #! ${stdenv.shell}
diff --git a/nixpkgs/pkgs/development/tools/hobbes/default.nix b/nixpkgs/pkgs/development/tools/hobbes/default.nix
index 667997ddff4d..f4741a390ed1 100644
--- a/nixpkgs/pkgs/development/tools/hobbes/default.nix
+++ b/nixpkgs/pkgs/development/tools/hobbes/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, llvm_6, ncurses, readline, zlib }:
+{ lib, stdenv, fetchFromGitHub, cmake, llvm_6, ncurses, readline, zlib, libxml2 }:
 
 stdenv.mkDerivation {
   name = "hobbes";
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
     ncurses
     readline
     zlib
+    libxml2
   ];
 
   doCheck = false; # Running tests in NixOS hangs. See https://git.io/JvK7R.
diff --git a/nixpkgs/pkgs/development/tools/ijq/default.nix b/nixpkgs/pkgs/development/tools/ijq/default.nix
index 0b0af79301ef..f3c0b6c7b1b8 100644
--- a/nixpkgs/pkgs/development/tools/ijq/default.nix
+++ b/nixpkgs/pkgs/development/tools/ijq/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "ijq";
-  version = "0.2.3";
+  version = "0.3.4";
 
   src = fetchgit {
     url = "https://git.sr.ht/~gpanders/ijq";
     rev = "v${version}";
-    sha256 = "14n54jh5387jf97zhc7aidn7w60zp5624xbvq4jdbsh96apg3bk1";
+    sha256 = "ZKxEK6SPxEC0S5yXSzITPn0HhpJa4Bcf9X8/N+ZZAeA=";
   };
 
-  vendorSha256 = "0xbni6lk6y3ig7pj2234fv7ra6b8qv0k8m3bvh59wwans8xpihzb";
+  vendorSha256 = "04KlXE2I8ZVDbyo9tBnFskLB6fo5W5/lPzSpo8KGqUU=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/development/tools/irony-server/default.nix b/nixpkgs/pkgs/development/tools/irony-server/default.nix
index 2f8afb176e6e..2a7a7b1a16a3 100644
--- a/nixpkgs/pkgs/development/tools/irony-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/irony-server/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   pname = "irony-server";
   inherit (irony) src version;
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake llvmPackages.llvm.dev ];
   buildInputs = [ llvmPackages.libclang llvmPackages.llvm ];
 
   dontUseCmakeBuildDir = true;
diff --git a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
index 4425071cb140..c0082f463057 100644
--- a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gawk }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.6";
+  version = "2.0.7";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "sha256-HoDV8Z024+WnECw1ZVwA3dEfbKtuTd4he40UwQnpiGQ=";
+    sha256 = "sha256-IbiyrP3rIj3VToav1bhKnje0scEPSyLwsyclpW7nB+U=";
   };
 
   desktopItem = makeDesktopItem {
@@ -27,9 +27,6 @@ stdenv.mkDerivation rec {
       --replace "#visualvm_jdkhome=" "visualvm_jdkhome=" \
       --replace "/path/to/jdk" "${jdk.home}" \
 
-    substituteInPlace platform/lib/nbexec \
-      --replace /usr/bin/\''${awk} ${gawk}/bin/awk
-
     cp -r . $out
   '';
 
diff --git a/nixpkgs/pkgs/development/tools/just/default.nix b/nixpkgs/pkgs/development/tools/just/default.nix
index 5b3f966399f9..dbd10772a626 100644
--- a/nixpkgs/pkgs/development/tools/just/default.nix
+++ b/nixpkgs/pkgs/development/tools/just/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.9.0";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-orHUovyFFOPRvbfLKQhkfZzM0Gs2Cpe1uJg/6+P8HKY=";
+    sha256 = "sha256-C0W5oMnKlQ5hg/0YLKZKiQfLghJ7yAJYW6k0G6eOFQE=";
   };
 
-  cargoSha256 = "sha256-YDIGZRbszhgWM7iAc2i89jyndZvZZsg63ADQfqFxfXw=";
+  cargoSha256 = "sha256-TqvUunBFpKIog0pG85M/JLz8orncgbRqnQolseXYSo4=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
@@ -31,23 +31,30 @@ rustPlatform.buildRustPackage rec {
     # USER must not be empty
     export USER=just-user
     export USERNAME=just-user
+    export JUST_CHOOSER="${coreutils}/bin/cat"
+
+    # Prevent string.rs from being changed
+    cp tests/string.rs $TMPDIR/string.rs
 
     sed -i src/justfile.rs \
         -i tests/*.rs \
         -e "s@/bin/echo@${coreutils}/bin/echo@g" \
-        -e "s@#!/usr/bin/env sh@#!${bash}/bin/sh@g" \
-        -e "s@#!/usr/bin/env cat@#!${coreutils}/bin/cat@g" \
-        -e "s@#!/usr/bin/env bash@#!${bash}/bin/sh@g"
+        -e "s@/usr/bin/env@${coreutils}/bin/env@g"
+
+    # Return unchanged string.rs
+    cp $TMPDIR/string.rs tests/string.rs
   '';
 
-  # Skip "edit" when running "cargo test", since this test case needs "cat".
-  # Skip "choose" when running "cargo test", since this test case needs "fzf".
-  checkFlags = [ "--skip=choose" "--skip=edit" ];
+  checkFlags = [
+    "--skip=edit" # trying to run "vim" fails as there's no /usr/bin/env or which in the sandbox to find vim and the dependency is not easily patched
+    "--skip=run_shebang" # test case very rarely fails with "Text file busy"
+  ];
 
   meta = with lib; {
-    description = "A handy way to save and run project-specific commands";
     homepage = "https://github.com/casey/just";
+    changelog = "https://github.com/casey/just/blob/v${version}/CHANGELOG.md";
+    description = "A handy way to save and run project-specific commands";
     license = licenses.cc0;
-    maintainers = with maintainers; [ xrelkd ];
+    maintainers = with maintainers; [ xrelkd jk ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/kgt/default.nix b/nixpkgs/pkgs/development/tools/kgt/default.nix
new file mode 100644
index 000000000000..94f72ceac10b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/kgt/default.nix
@@ -0,0 +1,81 @@
+{ lib, stdenv, fetchFromGitHub, bmake, cleanPackaging }:
+
+stdenv.mkDerivation {
+  pname = "kgt";
+  version = "2021-04-07";
+
+  src = fetchFromGitHub {
+    owner = "katef";
+    repo = "kgt";
+    # 2021-04-07, no version tags (yet)
+    rev = "a7cbc52d368e413a3f1212c0fafccc05b2a42606";
+    sha256 = "1x6q30xb8ihxi26rzk3s2hqd827fim4l4wn3qq252ibrwcq6lqyj";
+    fetchSubmodules = true;
+  };
+
+  outputs = [ "bin" "doc" "out" ];
+
+  nativeBuildInputs = [ bmake ];
+  enableParallelBuilding = true;
+
+  makeFlags = [ "-r" "PREFIX=$(bin)" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    ${cleanPackaging.commonFileActions {
+        docFiles = [
+          "README.md"
+          "LICENCE"
+          "examples"
+          # TODO: this is just a docbook file, not a mangpage yet
+          # https://github.com/katef/kgt/issues/50
+          "man"
+          "examples"
+          "doc"
+        ];
+        noiseFiles = [
+          "build/src"
+          "build/lib"
+          "Makefile"
+          "src/**/*.c"
+          "src/**/*.h"
+          "src/**/Makefile"
+          "src/**/lexer.lx"
+          "src/**/parser.sid"
+          "src/**/parser.act"
+          "share/git"
+          "share/css"
+          "share/xsl"
+          ".gitignore"
+          ".gitmodules"
+          ".gitattributes"
+          ".github"
+        ];
+      }} $doc/share/doc/kgt
+
+    install -Dm755 build/bin/kgt $bin/bin/kgt
+    rm build/bin/kgt
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    ${cleanPackaging.checkForRemainingFiles}
+  '';
+
+  meta = with lib; {
+    description = "BNF wrangling and railroad diagrams";
+    longDescription = ''
+      KGT: Kate's Grammar Tool
+
+      Input: Various BNF-like syntaxes
+      Output: Various BNF-like syntaxes, AST dumps, and Railroad Syntax Diagrams
+    '';
+    homepage    = "https://github.com/katef/kgt";
+    license     = licenses.bsd2;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ Profpatsch ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/tools/kind/default.nix b/nixpkgs/pkgs/development/tools/kind/default.nix
index 47b23ae2342d..88bc30943c38 100644
--- a/nixpkgs/pkgs/development/tools/kind/default.nix
+++ b/nixpkgs/pkgs/development/tools/kind/default.nix
@@ -4,16 +4,16 @@ with lib;
 
 buildGoModule rec {
   pname = "kind";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     rev    = "v${version}";
     owner  = "kubernetes-sigs";
     repo   = "kind";
-    sha256 = "1pp2x4bfqsd15siahyv9xkdyswsipmp9n86iwavrd0xhliqxlsa7";
+    sha256 = "sha256-pjg52ONseKNw06EOBzD6Elge+Cz+C3llPvjJPHkn1cw=";
   };
 
-  vendorSha256 = "0c0j4s8kfzk2b3hy0d2g5bp1zr60l6vnwnpynsg6ksv8spwnpl5m";
+  vendorSha256 = "sha256-HiVdekSZrC/RkMSvcwm1mv6AE4bA5kayUsMdVCbckiE=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
index 2e067e92d919..21caa5b8b32a 100644
--- a/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
@@ -1,25 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libxslt, asciidoc }:
+{ lib, stdenv, fetchFromGitHub, libxslt, asciidoc }:
 
 stdenv.mkDerivation rec {
   pname = "mkrom";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "KnightOS";
     repo = "mkrom";
     rev = version;
-    sha256 = "0xgvanya40mdwy35j94j61hsp80dm5b440iphmr5ng3kjgchvpx2";
+    sha256 = "sha256-YFrh0tOGiM90uvU9ZWopW1+9buHDQtetuOtPDSYYaXw=";
   };
 
   strictDeps = true;
-  nativeBuildInputs = [ asciidoc cmake libxslt.bin ];
+  nativeBuildInputs = [ asciidoc libxslt.bin ];
 
-  hardeningDisable = [ "format" ];
+  installFlags = [ "DESTDIR=$(out)" ];
+  installTargets = [ "install" "install_man" ];
 
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "Packages KnightOS distribution files into a ROM";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/knightos/scas/default.nix b/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
index ceb8212cf7f9..255ecf798d86 100644
--- a/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
@@ -2,14 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scas";
-
-  version = "0.5.3";
+  version = "0.5.5";
 
   src = fetchFromGitHub {
     owner = "KnightOS";
     repo = "scas";
     rev = version;
-    sha256 = "0z6r07cl92kq860ddas5p88l990ih9cfqlzy5y4mk5hrmjzya60j";
+    sha256 = "sha256-JGQE+orVDKKJsTt8sIjPX+3yhpZkujISroQ6g19+MzU=";
   };
 
   cmakeFlags = [ "-DSCAS_LIBRARY=1" ];
diff --git a/nixpkgs/pkgs/development/tools/krankerl/default.nix b/nixpkgs/pkgs/development/tools/krankerl/default.nix
index b771fe6bfc5c..8697f81a9da6 100644
--- a/nixpkgs/pkgs/development/tools/krankerl/default.nix
+++ b/nixpkgs/pkgs/development/tools/krankerl/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "krankerl";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "ChristophWurst";
     repo = "krankerl";
     rev = "v${version}";
-    sha256 = "1gp8b2m8kcz2f16zv9xwv4n1zki6imvz9z31kixh6amdj6fif3d1";
+    sha256 = "sha256-uIFcWHdW8887CDkFxZznh9akYs+vxsE9Bc9g1hKi7Kc=";
   };
 
-  cargoSha256 = "sha256:01hcxs14wwhhvr08x816wa3jcm4zvm6g7vais793cgijipyv00rc";
+  cargoSha256 = "sha256-6joHwz0HIVbta8ALvsJLMvmeDh9IFPR4Cx36H63MliI=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/development/tools/kubie/default.nix b/nixpkgs/pkgs/development/tools/kubie/default.nix
index c00304c1ec52..c563d9bef096 100644
--- a/nixpkgs/pkgs/development/tools/kubie/default.nix
+++ b/nixpkgs/pkgs/development/tools/kubie/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kubie";
-  version = "0.13.4";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "sbstp";
     repo = "kubie";
-    sha256 = "sha256-ZD63Xtnw7qzTrzFxzzZ37N177/PnRaMEzBbhz7h/zCY=";
+    sha256 = "sha256-uNlKxcU1iCR4JzNfBatEeKMMdu9ZqvOqna0sGrcwK30=";
   };
 
-  cargoSha256 = "sha256-c6veaasuwRtaO8TwHS0tNxjbBfekQOa52I9INcE1Jn0=";
+  cargoSha256 = "sha256-4Xo17HlYvJLf90R0gS9EFJSJKmNHClXqAJTx9mY29KA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/kustomize/default.nix b/nixpkgs/pkgs/development/tools/kustomize/default.nix
index b5b0c8b81bf8..489b62891b65 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/default.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "4.0.5";
+  version = "4.1.3";
   # rev is the commit of the tag, mainly for kustomize version command output
   rev = "9e8e7a7fe99ec9fbf801463e8607928322fc5245";
 
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "kustomize/v${version}";
-    sha256 = "sha256-rv65sDr6V6hEYgIRxS1OSu9txmW75F7/YGAy/zRXGyY=";
+    sha256 = "sha256-NPWKInDHOoelWqDrUn/AlRItI4e8J6dbBxgLW078ecs=";
   };
 
   # TODO: Remove once https://github.com/kubernetes-sigs/kustomize/pull/3708 got merged.
@@ -26,7 +26,7 @@ buildGoModule rec {
   # avoid finding test and development commands
   sourceRoot = "source/kustomize";
 
-  vendorSha256 = "sha256-lLUi0vD7uyfDR4HjDiosoTU0NbfQTY7ewZGm38ZT9nU=";
+  vendorSha256 = "sha256-6maEpEPEV436NrVnVlvWV1q6YywGVILXbxn8Z8Ku/hs=";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
diff --git a/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix b/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
index e471489e7095..7753556a4ea5 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/kustomize-sops.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kustomize-sops";
-  version = "2.5.2";
+  version = "2.5.5";
 
   src = fetchFromGitHub {
     owner = "viaduct-ai";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-c8v9O3ufTZ7/rWwLNoak0ITlEVlOg9MvheRjQIxPwKc=";
+    sha256 = "sha256-lNC8TwX462Lnt/uiKWt9hNa81g3tdenvvuNQJNkj7hM=";
   };
 
-  vendorSha256 = "sha256-kJtJ2ut+yhgNoPIY5i3dKmQV0g+8RvcGnxCyay7wy2A=";
+  vendorSha256 = "sha256-uStmUhiZuUguxUx2L8ifSNnbMCs7Jk+6tq7qZdACjag=";
 
   installPhase = ''
     mkdir -p $out/lib/viaduct.ai/v1/ksops-exec/
diff --git a/nixpkgs/pkgs/development/tools/lazygit/default.nix b/nixpkgs/pkgs/development/tools/lazygit/default.nix
index 7038b7c1eb03..af33938c1a6f 100644
--- a/nixpkgs/pkgs/development/tools/lazygit/default.nix
+++ b/nixpkgs/pkgs/development/tools/lazygit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazygit";
-  version = "0.28.1";
+  version = "0.28.2";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tan8ksSyMIeDL7oRAWd3Qtz/sKbhAAfY7IknfwjyvgQ=";
+    sha256 = "sha256-s5Ou0FhL9+2/xm7lKMG/3ya5P8idI0cgtJ28cV37pJQ=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/development/tools/luaformatter/default.nix b/nixpkgs/pkgs/development/tools/luaformatter/default.nix
index 991f1a377170..064ef8453d25 100644
--- a/nixpkgs/pkgs/development/tools/luaformatter/default.nix
+++ b/nixpkgs/pkgs/development/tools/luaformatter/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luaformatter";
-  version = "1.3.4";
+  version = "1.3.6";
 
   src = fetchFromGitHub {
     owner = "koihik";
     repo = "luaformatter";
     rev = version;
-    sha256 = "163190g37r6npg5k5mhdwckdhv9nwy2gnfp5jjk8p0s6cyvydqjw";
+    sha256 = "0440kdab5i0vhlk71sbprdrhg362al8jqpy7w2vdhcz1fpi5cm0b";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/metals/default.nix b/nixpkgs/pkgs/development/tools/metals/default.nix
index d686067e633c..b85ca99a9e60 100644
--- a/nixpkgs/pkgs/development/tools/metals/default.nix
+++ b/nixpkgs/pkgs/development/tools/metals/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metals";
-  version = "0.10.2";
+  version = "0.10.4";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "1yck935pcj9cg3qxzrmvgd16afsckz8wgmzf2rlmii2c1glrbq9c";
+    outputHash     = "0pjgnm5argmc92872vblsz0pw2wniggvkw4w2346ps09ybdv9r3q";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/misc/act/default.nix b/nixpkgs/pkgs/development/tools/misc/act/default.nix
index 3b9cc67bc2c3..8c01aea284eb 100644
--- a/nixpkgs/pkgs/development/tools/misc/act/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.21";
+  version = "0.2.22";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XDxG7F+oBatlb4ROBryt2Fop402riKmYoqZLJrUzBUQ=";
+    sha256 = "sha256-a+yw7QSLNX3hO2GnFCifYMbPWYwtleUZS1AqPsxw9t8=";
   };
 
-  vendorSha256 = "sha256-PwVDMSl36m+6ISJQvyrkCjaL3xp5VkaZtfxyMpNn+KI=";
+  vendorSha256 = "sha256-6jD+gY/TmO/Ot507IlTLNdWv7G4BHYlk/E9rVoRD65A=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix b/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix
index ae8fc2d90619..3b70e819c899 100644
--- a/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix
@@ -6,11 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "autoconf-2.70";
+  name = "autoconf-2.71";
 
   src = fetchurl {
     url = "mirror://gnu/autoconf/${name}.tar.xz";
-    sha256 = "1ipckz0wr2mvhj9n3ys54fmf2aksin6bhqvzl304bn6rc1w257ps";
+    sha256 = "197sl23irn6s9pd54rxj5vcp5y8dv65jb9yfqgr2g56cxg7q6k7i";
   };
 
   nativeBuildInputs = [ m4 perl ];
diff --git a/nixpkgs/pkgs/development/tools/misc/autogen/default.nix b/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
index c6eb6916d1ec..75c6471eb4c6 100644
--- a/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
@@ -62,7 +62,9 @@ stdenv.mkDerivation rec {
       # the configure check for regcomp wants to run a host program
       "libopts_cv_with_libregex=yes"
       #"MAKEINFO=${buildPackages.texinfo}/bin/makeinfo"
-    ]);
+    ])
+    # See: https://sourceforge.net/p/autogen/bugs/187/
+    ++ lib.optionals stdenv.isDarwin [ "ac_cv_func_utimensat=no" ];
 
   #doCheck = true; # not reliable
 
diff --git a/nixpkgs/pkgs/development/tools/misc/binutils/default.nix b/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
index 995f3f7430cc..8042655a859d 100644
--- a/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
@@ -107,8 +107,7 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "format" "pie" ];
 
-  # TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   configureFlags =
     (if enableShared then [ "--enable-shared" "--disable-static" ]
@@ -126,7 +125,19 @@ stdenv.mkDerivation {
     # RUNPATH instead of RPATH on binaries.  This is important because
     # RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
     "--enable-new-dtags"
-  ] ++ lib.optionals gold [ "--enable-gold" "--enable-plugins" ];
+
+    # force target prefix. Some versions of binutils will make it empty
+    # if `--host` and `--target` are too close, even if Nixpkgs thinks
+    # the platforms are different (e.g. because not all the info makes
+    # the `config`). Other versions of binutils will always prefix if
+    # `--target` is passed, even if `--host` and `--target` are the same.
+    # The easiest thing for us to do is not leave it to chance, and force
+    # the program prefix to be what we want it to be.
+    "--program-prefix=${targetPrefix}"
+  ] ++ lib.optionals gold [
+    "--enable-gold"
+    "--enable-plugins"
+  ];
 
   doCheck = false; # fails
 
diff --git a/nixpkgs/pkgs/development/tools/misc/ccache/default.nix b/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
index 4128118decf6..94fca742b6d3 100644
--- a/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
@@ -7,26 +7,25 @@
 , cmake
 , perl
 , zstd
+, bashInteractive
 , xcodebuild
 , makeWrapper
 }:
 
 let ccache = stdenv.mkDerivation rec {
   pname = "ccache";
-  version = "4.2.1";
+  version = "4.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AmgJpW7AGCSggbHp1fLO5yhXS9LIm7O77nQdDERJYAA=";
+    hash = "sha256-ZBxDTMUZiZJLIYbvACTFwvlss+IZiMjiL0khfM5hFCM=";
   };
 
-  patches = [
-    # test/run use compgen to get environment variable names, but
-    # compgen isn't available in non-interactive bash.
-    ./env-instead-of-compgen.patch
+  outputs = [ "out" "man" ];
 
+  patches = [
     # When building for Darwin, test/run uses dwarfdump, whereas on
     # Linux it uses objdump. We don't have dwarfdump packaged for
     # Darwin, so this patch updates the test to also use objdump on
@@ -38,18 +37,22 @@ let ccache = stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ asciidoc cmake perl ];
-
   buildInputs = [ zstd ];
 
-  outputs = [ "out" "man" ];
-
   doCheck = true;
-  checkInputs = lib.optional stdenv.isDarwin xcodebuild;
+  checkInputs = [
+    # test/run requires the compgen function which is available in
+    # bashInteractive, but not bash.
+    bashInteractive
+  ] ++ lib.optional stdenv.isDarwin xcodebuild;
+
   checkPhase = ''
+    runHook preCheck
     export HOME=$(mktemp -d)
     ctest --output-on-failure ${lib.optionalString stdenv.isDarwin ''
       -E '^(test.nocpp2|test.basedir|test.multi_arch)$'
     ''}
+    runHook postCheck
   '';
 
   passthru = {
@@ -99,7 +102,7 @@ let ccache = stdenv.mkDerivation rec {
     homepage = "https://ccache.dev";
     downloadPage = "https://ccache.dev/download.html";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ metadark r-burns ];
+    maintainers = with maintainers; [ kira-bruneau r-burns ];
     platforms = platforms.unix;
   };
 };
diff --git a/nixpkgs/pkgs/development/tools/misc/ccache/env-instead-of-compgen.patch b/nixpkgs/pkgs/development/tools/misc/ccache/env-instead-of-compgen.patch
deleted file mode 100644
index 313de0fa58c3..000000000000
--- a/nixpkgs/pkgs/development/tools/misc/ccache/env-instead-of-compgen.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/test/run b/test/run
-index cbdd98f0..bc930200 100755
---- a/test/run
-+++ b/test/run
-@@ -346,11 +346,11 @@ expect_perm() {
- }
- 
- reset_environment() {
--    while IFS= read -r name; do
-+    while IFS='=' read -r name value; do
-         if [[ $name =~ ^CCACHE_[A-Z0-9_]*$ ]]; then
-             unset $name
-         fi
--    done < <(compgen -e)
-+    done < <(env)
- 
-     unset GCC_COLORS
-     unset TERM
diff --git a/nixpkgs/pkgs/development/tools/misc/ccls/default.nix b/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
index 06f3723509f5..bd753016fc8b 100644
--- a/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-jipSipgD0avd7XODlpxnqjHK3s6nacaxbIQIddix7X8=";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = with llvmPackages; [ clang-unwrapped llvm rapidjson ];
+  nativeBuildInputs = [ cmake llvmPackages.llvm.dev ];
+  buildInputs = with llvmPackages; [ libclang llvm rapidjson ];
 
   cmakeFlags = [ "-DCCLS_VERSION=${version}" ];
 
@@ -21,17 +21,11 @@ stdenv.mkDerivation rec {
     cmakeFlagsArray+=(-DCMAKE_CXX_FLAGS="-fvisibility=hidden -fno-rtti")
   '';
 
+  clang = llvmPackages.clang;
   shell = runtimeShell;
-  postFixup = ''
-    # We need to tell ccls where to find the standard library headers.
-
-    standard_library_includes="\\\"-isystem\\\", \\\"${lib.getDev stdenv.cc.libc}/include\\\""
-    standard_library_includes+=", \\\"-isystem\\\", \\\"${llvmPackages.libcxx}/include/c++/v1\\\""
-    export standard_library_includes
-
-    wrapped=".ccls-wrapped"
-    export wrapped
 
+  postFixup = ''
+    export wrapped=".ccls-wrapped"
     mv $out/bin/ccls $out/bin/$wrapped
     substituteAll ${./wrapper} $out/bin/ccls
     chmod --reference=$out/bin/$wrapped $out/bin/ccls
diff --git a/nixpkgs/pkgs/development/tools/misc/ccls/wrapper b/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
index 155e6d4f6474..c92bc6b40d1a 100644
--- a/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
+++ b/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
@@ -1,12 +1,9 @@
 #! @shell@ -e
 
-initString="--init={\"clang\":{\"extraArgs\": [@standard_library_includes@"
-
-if [ "${NIX_CFLAGS_COMPILE}" != "" ]; then
-  read -a cflags_array <<< ${NIX_CFLAGS_COMPILE}
-  initString+=$(printf ', \"%s\"' "${cflags_array[@]}")
-fi
-
-initString+="]}}"
+printf -v extraArgs ',\"%s\"' \
+  $(cat @clang@/nix-support/libc-cflags \
+        @clang@/nix-support/libcxx-cxxflags) \
+  ${NIX_CFLAGS_COMPILE}
+initString="--init={\"clang\":{\"extraArgs\":[${extraArgs:1}]}}"
 
 exec -a "$0" "@out@/bin/@wrapped@" "${initString}" "$@"
diff --git a/nixpkgs/pkgs/development/tools/misc/cli11/default.nix b/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
index d62ad413e1ac..dbab7c880efb 100644
--- a/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "Command line parser for C++11";
     homepage = "https://github.com/CLIUtils/CLI11";
     platforms = platforms.unix;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     license = licenses.bsd3;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix b/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix
index 40a22f18203b..8534f1e2d85a 100644
--- a/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix
@@ -2,36 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "coccinelle";
-  version = "1.0.6";
+  version = "1.1.0";
 
   src = fetchurl {
-    url = "http://coccinelle.lip6.fr/distrib/${pname}-${version}.tgz";
-    sha256 = "02g9hmwkvfl838zz690yra5jzrqjg6y6ffxkrfcsx790bhkfsll4";
+    url = "https://coccinelle.gitlabpages.inria.fr/website/distrib/${pname}-${version}.tar.gz";
+    sha256 = "0k0x4qnxzj8fymkp6y9irggcah070hj7hxq8l6ddj8ccpmjbhnsb";
   };
 
   buildInputs = with ocamlPackages; [
     ocaml findlib menhir
-    ocaml_pcre pycaml
+    ocaml_pcre parmap stdcompat
     python ncurses pkg-config
   ];
 
-  doCheck = !stdenv.isDarwin;
-
-  # The build system builds two versions of spgen:
-  # 'spgen' with ocamlc -custom (bytecode specially linked)
-  # and 'spgen.opt' using ocamlopt.
-  # I'm not sure of the intentions here, but the way
-  # the 'spgen' binary is produced results in an
-  # invalid/incorrect interpreter path (/lib/ld-linux*).
-  # We could patch it, but without knowing why it's
-  # finding the wrong path it seems safer to use
-  # the .opt version that is built correctly.
-  # All that said, our fix here is simple: remove 'spgen'.
-  # The bin/spgen entrypoint is really a bash script
-  # and will use spgen.opt if 'spgen' doesn't exist.
-  postInstall = ''
-    rm $out/lib/coccinelle/spgen/spgen
-  '';
+  doCheck = false;
 
   meta = {
     description = "Program to apply semantic patches to C code";
diff --git a/nixpkgs/pkgs/development/tools/misc/creduce/default.nix b/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
index 75234fde6ca5..0ae900060b97 100644
--- a/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake, makeWrapper
-, llvm, clang-unwrapped
+, llvm, libclang
 , flex
 , zlib
 , perlPackages
@@ -15,12 +15,12 @@ stdenv.mkDerivation rec {
     sha256 = "1b833z0g1hich68kzbkpfc26xb8w2phfl5savy8c6ir9ihwy1a8w";
   };
 
-  nativeBuildInputs = [ cmake makeWrapper ];
+  nativeBuildInputs = [ cmake makeWrapper llvm.dev ];
   buildInputs = [
     # Ensure stdenv's CC is on PATH before clang-unwrapped
     stdenv.cc
     # Actual deps:
-    llvm clang-unwrapped
+    llvm libclang
     flex zlib
   ] ++ (with perlPackages; [ perl ExporterLite FileWhich GetoptTabular RegexpCommon TermReadKey ]);
 
diff --git a/nixpkgs/pkgs/development/tools/misc/ctags/default.nix b/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
index 90825db2a549..fde7307b27dc 100644
--- a/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
@@ -15,6 +15,13 @@ stdenv.mkDerivation rec {
   # don't use $T(E)MP which is set to the build directory
   configureFlags= [ "--enable-tmpdir=/tmp" ];
 
+  patches = [
+    # Library defines an `__unused__` which is a reserved name, and may
+    # conflict with the standard library definition. One such conflict is with
+    # macOS headers.
+    ./unused-collision.patch
+  ];
+
   meta = with lib; {
     description = "A tool for fast source code browsing (exuberant ctags)";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/ctags/unused-collision.patch b/nixpkgs/pkgs/development/tools/misc/ctags/unused-collision.patch
new file mode 100644
index 000000000000..595f67a01b5a
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/ctags/unused-collision.patch
@@ -0,0 +1,246 @@
+--- a/c.c	(revision 816)
++++ b/c.c	(working copy)
+@@ -619,7 +619,7 @@
+ 	return name;
+ }
+ 
+-static void __unused__ pt (tokenInfo *const token)
++static void UNUSED pt (tokenInfo *const token)
+ {
+ 	if (isType (token, TOKEN_NAME))
+ 		printf ("type: %-12s: %-13s   line: %lu\n",
+@@ -634,7 +634,7 @@
+ 			tokenString (token->type), token->lineNumber);
+ }
+ 
+-static void __unused__ ps (statementInfo *const st)
++static void UNUSED ps (statementInfo *const st)
+ {
+ 	unsigned int i;
+ 	printf ("scope: %s   decl: %s   gotName: %s   gotParenName: %s\n",
+--- a/eiffel.c	(revision 816)
++++ b/eiffel.c	(working copy)
+@@ -807,7 +807,7 @@
+ 
+ static boolean parseType (tokenInfo *const token);
+ 
+-static void parseGeneric (tokenInfo *const token, boolean declaration __unused__)
++static void parseGeneric (tokenInfo *const token, boolean declaration UNUSED)
+ {
+ 	unsigned int depth = 0;
+ #ifdef TYPE_REFERENCE_TOOL
+--- a/general.h	(revision 816)
++++ b/general.h	(working copy)
+@@ -57,10 +57,10 @@
+  *  to prevent warnings about unused variables.
+  */
+ #if (__GNUC__ > 2  ||  (__GNUC__ == 2  &&  __GNUC_MINOR__ >= 7)) && !defined (__GNUG__)
+-# define __unused__  __attribute__((unused))
++# define UNUSED  __attribute__((unused))
+ # define __printf__(s,f)  __attribute__((format (printf, s, f)))
+ #else
+-# define __unused__
++# define UNUSED
+ # define __printf__(s,f)
+ #endif
+ 
+--- a/lregex.c	(revision 816)
++++ b/lregex.c	(working copy)
+@@ -538,11 +538,11 @@
+ #endif  /* HAVE_REGEX */
+ 
+ extern void addTagRegex (
+-		const langType language __unused__,
+-		const char* const regex __unused__,
+-		const char* const name __unused__,
+-		const char* const kinds __unused__,
+-		const char* const flags __unused__)
++		const langType language UNUSED,
++		const char* const regex UNUSED,
++		const char* const name UNUSED,
++		const char* const kinds UNUSED,
++		const char* const flags UNUSED)
+ {
+ #ifdef HAVE_REGEX
+ 	Assert (regex != NULL);
+@@ -564,10 +564,10 @@
+ }
+ 
+ extern void addCallbackRegex (
+-		const langType language __unused__,
+-		const char* const regex __unused__,
+-		const char* const flags __unused__,
+-		const regexCallback callback __unused__)
++		const langType language UNUSED,
++		const char* const regex UNUSED,
++		const char* const flags UNUSED,
++		const regexCallback callback UNUSED)
+ {
+ #ifdef HAVE_REGEX
+ 	Assert (regex != NULL);
+@@ -581,7 +581,7 @@
+ }
+ 
+ extern void addLanguageRegex (
+-		const langType language __unused__, const char* const regex __unused__)
++		const langType language UNUSED, const char* const regex UNUSED)
+ {
+ #ifdef HAVE_REGEX
+ 	if (! regexBroken)
+@@ -602,7 +602,7 @@
+ */
+ 
+ extern boolean processRegexOption (const char *const option,
+-								   const char *const parameter __unused__)
++								   const char *const parameter UNUSED)
+ {
+ 	boolean handled = FALSE;
+ 	const char* const dash = strchr (option, '-');
+@@ -624,7 +624,7 @@
+ 	return handled;
+ }
+ 
+-extern void disableRegexKinds (const langType language __unused__)
++extern void disableRegexKinds (const langType language UNUSED)
+ {
+ #ifdef HAVE_REGEX
+ 	if (language <= SetUpper  &&  Sets [language].count > 0)
+@@ -639,8 +639,8 @@
+ }
+ 
+ extern boolean enableRegexKind (
+-		const langType language __unused__,
+-		const int kind __unused__, const boolean mode __unused__)
++		const langType language UNUSED,
++		const int kind UNUSED, const boolean mode UNUSED)
+ {
+ 	boolean result = FALSE;
+ #ifdef HAVE_REGEX
+@@ -660,7 +660,7 @@
+ 	return result;
+ }
+ 
+-extern void printRegexKinds (const langType language __unused__, boolean indent __unused__)
++extern void printRegexKinds (const langType language UNUSED, boolean indent UNUSED)
+ {
+ #ifdef HAVE_REGEX
+ 	if (language <= SetUpper  &&  Sets [language].count > 0)
+--- a/lua.c	(revision 816)
++++ b/lua.c	(working copy)
+@@ -37,7 +37,7 @@
+ */
+ 
+ /* for debugging purposes */
+-static void __unused__ print_string (char *p, char *q)
++static void UNUSED print_string (char *p, char *q)
+ {
+ 	for ( ; p != q; p++)
+ 		fprintf (errout, "%c", *p);
+--- a/main.c	(revision 816)
++++ b/main.c	(working copy)
+@@ -522,7 +522,7 @@
+  *		Start up code
+  */
+ 
+-extern int main (int __unused__ argc, char **argv)
++extern int main (int UNUSED argc, char **argv)
+ {
+ 	cookedArgs *args;
+ #ifdef VMS
+--- a/options.c	(revision 816)
++++ b/options.c	(working copy)
+@@ -730,7 +730,7 @@
+ }
+ 
+ static void processExcludeOption (
+-		const char *const option __unused__, const char *const parameter)
++		const char *const option UNUSED, const char *const parameter)
+ {
+ 	const char *const fileName = parameter + 1;
+ 	if (parameter [0] == '\0')
+@@ -867,7 +867,7 @@
+ }
+ 
+ static void processFilterTerminatorOption (
+-		const char *const option __unused__, const char *const parameter)
++		const char *const option UNUSED, const char *const parameter)
+ {
+ 	freeString (&Option.filterTerminator);
+ 	Option.filterTerminator = stringCopy (parameter);
+@@ -930,8 +930,8 @@
+ }
+ 
+ static void processHelpOption (
+-		const char *const option __unused__,
+-		const char *const parameter __unused__)
++		const char *const option UNUSED,
++		const char *const parameter UNUSED)
+ {
+ 	printProgramIdentification ();
+ 	putchar ('\n');
+@@ -1139,8 +1139,8 @@
+ }
+ 
+ static void processLicenseOption (
+-		const char *const option __unused__,
+-		const char *const parameter __unused__)
++		const char *const option UNUSED,
++		const char *const parameter UNUSED)
+ {
+ 	printProgramIdentification ();
+ 	puts ("");
+@@ -1166,8 +1166,8 @@
+ }
+ 
+ static void processListMapsOption (
+-		const char *const __unused__ option,
+-		const char *const __unused__ parameter)
++		const char *const UNUSED option,
++		const char *const UNUSED parameter)
+ {
+ 	if (parameter [0] == '\0' || strcasecmp (parameter, "all") == 0)
+ 	    printLanguageMaps (LANG_AUTO);
+@@ -1183,8 +1183,8 @@
+ }
+ 
+ static void processListLanguagesOption (
+-		const char *const option __unused__,
+-		const char *const parameter __unused__)
++		const char *const option UNUSED,
++		const char *const parameter UNUSED)
+ {
+ 	printLanguageList ();
+ 	exit (0);
+@@ -1358,8 +1358,8 @@
+ }
+ 
+ static void processVersionOption (
+-		const char *const option __unused__,
+-		const char *const parameter __unused__)
++		const char *const option UNUSED,
++		const char *const parameter UNUSED)
+ {
+ 	printProgramIdentification ();
+ 	exit (0);
+--- a/parse.c	(revision 816)
++++ b/parse.c	(working copy)
+@@ -376,7 +376,7 @@
+ */
+ 
+ extern void processLanguageDefineOption (
+-		const char *const option, const char *const parameter __unused__)
++		const char *const option, const char *const parameter UNUSED)
+ {
+ #ifdef HAVE_REGEX
+ 	if (parameter [0] == '\0')
+--- a/routines.c	(revision 816)
++++ b/routines.c	(working copy)
+@@ -526,7 +526,7 @@
+ 
+ #if ! defined (HAVE_STAT_ST_INO)
+ 
+-static void canonicalizePath (char *const path __unused__)
++static void canonicalizePath (char *const path UNUSED)
+ {
+ #if defined (MSDOS_STYLE_PATH)
+ 	char *p;
diff --git a/nixpkgs/pkgs/development/tools/misc/cvise/default.nix b/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
index fe33df530cfd..e24c133e8b90 100644
--- a/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonApplication, fetchFromGitHub, cmake, flex
-, clang-unwrapped, llvm, unifdef
+, libclang, llvm, unifdef
 , pebble, psutil, pytestCheckHook, pytest-flake8
 }:
 
@@ -19,8 +19,8 @@ buildPythonApplication rec {
     ./unifdef.patch
   ];
 
-  nativeBuildInputs = [ cmake flex ];
-  buildInputs = [ clang-unwrapped llvm unifdef ];
+  nativeBuildInputs = [ cmake flex llvm.dev ];
+  buildInputs = [ libclang llvm llvm.dev unifdef ];
   propagatedBuildInputs = [ pebble psutil ];
   checkInputs = [ pytestCheckHook pytest-flake8 unifdef ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix b/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix
index 5c130a99c926..a44b5ed8c767 100644
--- a/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix
@@ -7,7 +7,7 @@
 , gtk3
 , python3
 , wrapGAppsHook
-, gnome3
+, gnome
 , libwnck3
 , gobject-introspection
 , gettext
@@ -16,13 +16,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "d-feet";
-  version = "0.3.15";
+  version = "0.3.16";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/d-feet/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cgxgpj546jgpyns6z9nkm5k48lid8s36mvzj8ydkjqws2d19zqz";
+    sha256 = "hzPOS5qaVOwYWx2Fv02p2dEQUogqiAdg/2D5d5stHMs=";
   };
 
   nativeBuildInputs = [
@@ -38,7 +38,7 @@ python3.pkgs.buildPythonApplication rec {
 
   buildInputs = [
     glib
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gtk3
     libwnck3
   ];
@@ -61,7 +61,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "dfeet";
       versionPolicy = "none";
diff --git a/nixpkgs/pkgs/development/tools/misc/distcc/default.nix b/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
index 38ddc1ff4312..6de12a84522e 100644
--- a/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, popt, avahi, pkg-config, python3, gtk2, runCommand
+{ lib, stdenv, fetchFromGitHub, popt, avahi, pkg-config, python3, gtk3, runCommand
 , gcc, autoconf, automake, which, procps, libiberty_static
 , runtimeShell
 , sysconfDir ? ""   # set this parameter to override the default value $out/etc
@@ -7,18 +7,18 @@
 
 let
   name    = "distcc";
-  version = "2016-02-24";
+  version = "2021-03-11";
   distcc = stdenv.mkDerivation {
     name = "${name}-${version}";
     src = fetchFromGitHub {
       owner = "distcc";
       repo = "distcc";
-      rev = "b2fa4e21b4029e13e2c33f7b03ca43346f2cecb8";
-      sha256 = "1vj31wcdas8wy52hy6749mlrca9v6ynycdiigx5ay8pnya9z73c6";
+      rev = "de21b1a43737fbcf47967a706dab4c60521dbbb1";
+      sha256 = "0zjba1090awxkmgifr9jnjkxf41zhzc4f6mrnbayn3v6s77ca9x4";
     };
 
   nativeBuildInputs = [ pkg-config ];
-    buildInputs = [popt avahi pkg-config python3 gtk2 autoconf automake which procps libiberty_static];
+    buildInputs = [popt avahi pkg-config python3 gtk3 autoconf automake which procps libiberty_static];
     preConfigure =
     ''
       export CPATH=$(ls -d ${gcc.cc}/lib/gcc/*/${gcc.cc.version}/plugin/include)
@@ -30,7 +30,7 @@ let
                             ${if static then "LDFLAGS=-static" else ""}
                             --with${if static == true || popt == null then "" else "out"}-included-popt
                             --with${if avahi != null then "" else "out"}-avahi
-                            --with${if gtk2 != null then "" else "out"}-gtk
+                            --with${if gtk3 != null then "" else "out"}-gtk
                             --without-gnome
                             --enable-rfc2553
                             --disable-Werror   # a must on gcc 4.6
diff --git a/nixpkgs/pkgs/development/tools/misc/drush/default.nix b/nixpkgs/pkgs/development/tools/misc/drush/default.nix
index 32d9975e332b..70e7f42c5c22 100644
--- a/nixpkgs/pkgs/development/tools/misc/drush/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/drush/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, php73, which, makeWrapper, bash, coreutils, ncurses }:
+{ lib, stdenv, fetchurl, php, which, makeWrapper, bash, coreutils, ncurses }:
 
 stdenv.mkDerivation rec {
   name = "drush-6.1.0";
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     mkdir -p "$out"
     cp -r . "$out/src"
     mkdir "$out/bin"
-    wrapProgram "$out/src/drush" --prefix PATH : "${lib.makeBinPath [ which php73 bash coreutils ncurses ]}"
+    wrapProgram "$out/src/drush" --prefix PATH : "${lib.makeBinPath [ which php bash coreutils ncurses ]}"
     ln -s "$out/src/drush" "$out/bin/drush"
   '';
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
index 47716b5ea9e8..5eb252a9c0e4 100644
--- a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fswatch";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "emcrisostomo";
     repo = "fswatch";
     rev = version;
-    sha256 = "11479ac436g8bwk0lfnmdms0cirv9k11pdvfrrg9jwkki1j1abkk";
+    sha256 = "sha256-EKbo5gkrWuijLJgYsNBDtxy0ioXu/yHxnPPeOpk620g=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper ] ++ lib.optionals stdenv.isDarwin [ CoreServices ];
diff --git a/nixpkgs/pkgs/development/tools/misc/gdb/default.nix b/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
index 6f9237789750..ffe1fa3662f8 100644
--- a/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
@@ -26,11 +26,11 @@ assert pythonSupport -> python3 != null;
 
 stdenv.mkDerivation rec {
   pname = targetPrefix + basename;
-  version = "10.1";
+  version = "10.2";
 
   src = fetchurl {
     url = "mirror://gnu/gdb/${basename}-${version}.tar.xz";
-    sha256 = "1h32dckz1y8fnyxh22iyw8h3hnhxr79v1ng85px3ljn1xv71wbzq";
+    sha256 = "0aag1c0fw875pvhjg1qp7x8pf6gf92bjv5gcic5716scacyj58da";
   };
 
   postPatch = if stdenv.isDarwin then ''
@@ -61,8 +61,7 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral";
 
-  # TODO(@Ericson2314): Always pass "--target" and always prefix.
-  configurePlatforms = [ "build" "host" ] ++ lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";
+  configurePlatforms = [ "build" "host" "target" ];
 
   # GDB have to be built out of tree.
   preConfigure = ''
@@ -72,6 +71,13 @@ stdenv.mkDerivation rec {
   configureScript = "../configure";
 
   configureFlags = with lib; [
+    # Set the program prefix to the current targetPrefix.
+    # This ensures that the prefix always conforms to
+    # nixpkgs' expectations instead of relying on the build
+    # system which only receives `config` which is merely a
+    # subset of the platform description.
+    "--program-prefix=${targetPrefix}"
+
     "--enable-targets=all" "--enable-64-bit-bfd"
     "--disable-install-libbfd"
     "--disable-shared" "--enable-static"
diff --git a/nixpkgs/pkgs/development/tools/misc/global/default.nix b/nixpkgs/pkgs/development/tools/misc/global/default.nix
index 7ace6f857c8b..739615a841c7 100644
--- a/nixpkgs/pkgs/development/tools/misc/global/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/global/default.nix
@@ -6,11 +6,11 @@ let
   pygments = python3Packages.pygments;
 in stdenv.mkDerivation rec {
   pname = "global";
-  version = "6.6.5";
+  version = "6.6.6";
 
   src = fetchurl {
     url = "mirror://gnu/global/${pname}-${version}.tar.gz";
-    sha256 = "10vvsgx8v54whb4j9mk5qqyb5h3rdd9da0il3wir8pcpksyk0dww";
+    sha256 = "sha256-dYB4r/+Y1MBRxYeFx62j7Rl3+rt3+Il/9le3HMYtTV0=";
   };
 
   nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/misc/gob2/default.nix b/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
index b78c111ccbf8..06487845fb3d 100644
--- a/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, bison, flex, gnome3 }:
+{ lib, stdenv, fetchurl, pkg-config, glib, bison, flex, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gob2";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib bison flex ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
index 9160a3366811..1332885bbdbe 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     rev = "v${version}";
     sha256 = "1fd3swdjx249971ak1bgndm5kh6rlzbfywmydn122lhfi6ry6a03";
   };
-  cargoSha256 = "1fjzcgayyha270bdxl5p6c337nq8zj4h81rk4ih9czyz3yaxga3f";
+  cargoSha256 = "16446ppkvc6l8087x5m5kyy5gk4f7inyj7rzrfysriw4fvqxjsf3";
 
   buildInputs = [ openssl ]
                 ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/common.nix b/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
index 0cc7769d3c50..9ad8295c9b9d 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
@@ -37,6 +37,8 @@ let
         CatalystViewTT
         CatalystXScriptServerStarman
         CatalystXRoleApplicator
+        CryptPassphrase
+        CryptPassphraseArgon2
         CryptRandPasswd
         DBDPg
         DBDSQLite
@@ -61,6 +63,7 @@ let
         SQLSplitStatement
         SetScalar
         Starman
+        StringCompareConstantTime
         SysHostnameLong
         TermSizeAny
         TextDiff
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/default.nix b/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
index 40a480a09098..a124b4a5c6e2 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
@@ -1,15 +1,15 @@
-{ fetchFromGitHub, nixStable, callPackage, nixFlakes, nixosTests }:
+{ fetchFromGitHub, nixStable, callPackage, nixUnstable, nixosTests }:
 
 {
   hydra-unstable = callPackage ./common.nix {
-    version = "2021-03-29";
+    version = "2021-05-03";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "hydra";
-      rev = "9bb04ed97af047968196bad1728f927f7a6d905f";
-      sha256 = "sha256-gN/zNI2hGDMnYUjeGnU7SAuXP4KCmNqG+AYOVfINaQE=";
+      rev = "886e6f85e45a1f757e9b77d2a9e4539fbde29468";
+      sha256 = "t7Qb57Xjc0Ou+VDGC1N5u9AmeODW6MVOwKSrYRJq5f0=";
     };
-    nix = nixFlakes;
+    nix = nixUnstable;
 
     tests = {
       basic = nixosTests.hydra.hydra-unstable;
diff --git a/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix b/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix
index 32c32b536d9d..0abdd0179013 100644
--- a/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoPatches = [ ./cargo-lock.patch ];
 
-  cargoSha256 = "0rl2ph5igwjl7rwpwcf6afnxly5av7cd6va6wn82lxm606giyq75";
+  cargoSha256 = "1hqv530x8k4rf9zzyl5p5z58bymk1p4qwrcxs21gr0zm2hqjlxy4";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/jiq/default.nix b/nixpkgs/pkgs/development/tools/misc/jiq/default.nix
new file mode 100644
index 000000000000..c52a9ae4c030
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/jiq/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub, jq, makeWrapper }:
+
+buildGoModule rec {
+  pname = "jiq";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "fiatjaf";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-EPhnfgmn0AufuxwcwRrEEQk+RD97akFJSzngkTl4LmY=";
+  };
+
+  vendorSha256 = "sha256-ZUmOhPGy+24AuxdeRVF0Vnu8zDGFrHoUlYiDdfIV5lc=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  checkInputs = [ jq ];
+
+  postInstall = ''
+    wrapProgram $out/bin/jiq \
+      --prefix PATH : ${lib.makeBinPath [ jq ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/fiatjaf/jiq";
+    license = licenses.mit;
+    description = "jid on jq - interactive JSON query tool using jq expressions";
+    maintainers = with maintainers; [ ma27 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix b/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
index 217cbe5e0296..dbcb8d52f1b7 100644
--- a/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
@@ -1,4 +1,4 @@
-{ autoconf, fetchurl, makedepend, perl, python3, lib, stdenv, unzip, zip }:
+{ autoconf, fetchurl, makedepend, perl, python3, lib, stdenv, zip }:
 
 stdenv.mkDerivation rec {
   name = "jscoverage-0.5.1";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     ./jsfalse_to_null.patch
   ];
 
-  nativeBuildInputs = [ unzip perl python3 zip ];
+  nativeBuildInputs = [ perl python3 zip ];
 
   strictDeps = true;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/libtool/libtool2-macos11.patch b/nixpkgs/pkgs/development/tools/misc/libtool/libtool2-macos11.patch
new file mode 100644
index 000000000000..1552ae7a949f
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/libtool/libtool2-macos11.patch
@@ -0,0 +1,32 @@
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+---
+ m4/libtool.m4 | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/m4/libtool.m4 b/m4/libtool.m4
+index f2d1f398..b971e8e7 100644
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -1067,16 +1067,11 @@ _LT_EOF
+       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+     darwin1.*)
+       _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+-    darwin*) # darwin 5.x on
+-      # if running on 10.5 or later, the deployment target defaults
+-      # to the OS version, if on x86, and 10.4, the deployment
+-      # target defaults to 10.4. Don't you love it?
+-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+-	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+-	10.[[012]][[,.]]*)
++    darwin*)
++      case ${MACOSX_DEPLOYMENT_TARGET},$host in
++	10.[[012]],*|,*powerpc*)
+ 	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+-	10.*)
++	*)
+ 	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+       esac
+     ;;
+-- 
+2.24.3 (Apple Git-128)
diff --git a/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix b/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix
index 6d7c4a9087f4..44e4c8665c83 100644
--- a/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -1,6 +1,11 @@
-{ lib, stdenv, fetchurl, m4, perl, help2man
+{ lib, stdenv, fetchurl, fetchpatch, autoconf, automake, m4, perl, help2man
 }:
 
+# Note: this package is used for bootstrapping fetchurl, and thus
+# cannot use fetchpatch! All mutable patches (generated by GitHub or
+# cgit) that are needed here should be included directly in Nixpkgs as
+# files.
+
 stdenv.mkDerivation rec {
   pname = "libtool";
   version = "2.4.6";
@@ -12,7 +17,26 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "lib" ];
 
-  nativeBuildInputs = [ perl help2man m4 ];
+  patches = [
+    # Suport macOS version 11.0
+    # https://lists.gnu.org/archive/html/libtool-patches/2020-06/msg00001.html
+    ./libtool2-macos11.patch
+  ];
+
+  # Normally we'd use autoreconfHook, but that includes libtoolize.
+  postPatch = ''
+    aclocal -I m4
+    automake
+    autoconf
+
+    pushd libltdl
+    aclocal -I ../m4
+    automake
+    autoconf
+    popd
+  '';
+
+  nativeBuildInputs = [ perl help2man m4 ] ++ [ autoconf automake ];
   propagatedBuildInputs = [ m4 ];
 
   # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
diff --git a/nixpkgs/pkgs/development/tools/misc/mdctags/default.nix b/nixpkgs/pkgs/development/tools/misc/mdctags/default.nix
index ac6170216012..7d8992b4e201 100644
--- a/nixpkgs/pkgs/development/tools/misc/mdctags/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/mdctags/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage {
     sha256 = "14gryhgh9czlkfk75ml0620c6v8r74i6h3ykkkmc7gx2z8h1jxrb";
   };
 
-  cargoSha256 = "01ap2w755vbr01nfqc5185mr2w9y32g0d4ahc3lw2x3m8qv0bh6x";
+  cargoSha256 = "1kdbrcpvxiq91m5vq33vzjhsp4j3flzrpbj5hmxf0k3al1a7qk1g";
 
   meta = {
     description = "tags for markdown file";
diff --git a/nixpkgs/pkgs/development/tools/misc/msitools/default.nix b/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
index 96ce9d405914..ab196ebc5b34 100644
--- a/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
@@ -14,7 +14,7 @@
 , libgsf
 , gcab
 , bzip2
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix b/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix
index 7f73fb9a1bc3..b1d59c9450ac 100644
--- a/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nimlsp/default.nix
@@ -16,13 +16,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "nimlsp";
-  version = "0.2.6";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "PMunch";
     repo = "nimlsp";
     rev = "v${version}";
-    sha256 = "13kw3zjh0iqymwqxwhyj8jz6hgswwahf1rjd6iad7c6gcwrrg6yl";
+    sha256 = "1lm823nvpp3bj9527jd8n1jxh6y8p8ngkfkj91p94m7ffai6jazq";
   };
 
   nativeBuildInputs = [ nim ];
diff --git a/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix b/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
index 01f2ced1f4bb..0a2bbc30fb52 100644
--- a/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     description = "Source code search and cross reference engine";
     homepage = "https://opengrok.github.io/OpenGrok/";
     license = licenses.cddl;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/ptags/default.nix b/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
index 8406ecf298f8..b8be0ee3dc6d 100644
--- a/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
@@ -1,8 +1,9 @@
 { fetchFromGitHub
 , cargo
+, ctags
 , lib
+, makeWrapper
 , rustPlatform
-
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -16,7 +17,15 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1xr1szh4dfrcmi6s6dj791k1ix2zbv75rqkqbyb1lmh5548kywkg";
   };
 
-  cargoSha256 = "1rsnb4kzfb577xw7jk0939n42sv94vvspvbz783bmpy9vl53i38k";
+  cargoSha256 = "1pz5hvn1iq26i8c2cmqavhnri8h0sn40khrxvcdkj9q47nsj5wcx";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    # `ctags` must be accessible in `PATH` for `ptags` to work.
+    wrapProgram "$out/bin/ptags" \
+      --prefix PATH : "${lib.makeBinPath [ ctags ]}"
+  '';
 
   # Sanity check.
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/rtss/default.nix b/nixpkgs/pkgs/development/tools/misc/rtss/default.nix
index 505e6d23ef70..36ef4c349e9e 100644
--- a/nixpkgs/pkgs/development/tools/misc/rtss/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rtss/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1936w161mkbcwicrxn51b42pgir5yjiw85s74lbfq70nddw18nyn";
   };
 
-  cargoSha256 = "0nll5gg7fjh6sz3cscarknb0gaivmzkcxhwdb2li47r74rcbrj36";
+  cargoSha256 = "1b1xiaaxbw6y80pkzd594dikm372l1mmymf1wn2acmlz979nmas8";
 
   meta = with lib; {
     description = "Annotate output with relative durations between lines";
diff --git a/nixpkgs/pkgs/development/tools/misc/sccache/default.nix b/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
index 4379efd5071b..cbdee69ce2ce 100644
--- a/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1kygk7ilv7la36kv4jdn1ird7f3896wgr88kyqf0iagfqkzb2vsb";
   };
 
-  cargoSha256 = "1cfdwf00jgwsv0f72427asid1xr57s56jk5xj489dgppvgy7wdbj";
+  cargoSha256 = "1f42cqaqnjwi9k4ihqil6z2dqh5dnf76x54gk7mndzkrfg3rl573";
 
   cargoBuildFlags = lib.optionals (!stdenv.isDarwin) [ "--features=dist-client,dist-server" ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/stlink/default.nix b/nixpkgs/pkgs/development/tools/misc/stlink/default.nix
index 5bad6493c49e..2fbb60a0ddcc 100644
--- a/nixpkgs/pkgs/development/tools/misc/stlink/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/stlink/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libusb1 }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, libusb1
+, gtk3
+, pkg-config
+, wrapGAppsHook
+, withGUI ? false
+}:
 
 let
   # The Darwin build of stlink explicitly refers to static libusb.
@@ -18,8 +27,17 @@ in stdenv.mkDerivation rec {
     sha256 = "03xypffpbp4imrczbxmq69vgkr7mbp0ps9dk815br5wwlz6vgygl";
   };
 
-  buildInputs = [ libusb1' ];
-  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    libusb1'
+  ] ++ lib.optionals withGUI [
+    gtk3
+  ];
+  nativeBuildInputs = [
+    cmake
+  ] ++ lib.optionals withGUI [
+    pkg-config
+    wrapGAppsHook
+  ];
 
   cmakeFlags = [
     "-DSTLINK_MODPROBED_DIR=${placeholder "out"}/etc/modprobe.d"
diff --git a/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix b/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
index 3b754e4c91bb..bca4f87f9a55 100644
--- a/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
@@ -1,52 +1,57 @@
-{ lib, stdenv, requireFile, makeDesktopItem, libicns, imagemagick, jre, fetchzip }:
-
+{ lib, stdenv, makeDesktopItem, copyDesktopItems, icoutils, fdupes, imagemagick, jdk11, fetchzip }:
+# TODO: JDK16 causes STM32CubeMX to crash right now, so we fixed the version to JDK11
+# This may be fixed in a future version of STM32CubeMX. This issue has been reported to ST:
+# https://community.st.com/s/question/0D53W00000jnOzPSAU/stm32cubemx-crashes-on-launch-with-openjdk16
+# If you're updating this derivation, check the link above to see if it's been fixed upstream
+# and try replacing all occurrences of jdk11 with jre and test whether it works.
 let
-  version = "6.0.1";
-  desktopItem = makeDesktopItem {
-    name = "stm32CubeMX";
-    exec = "stm32cubemx";
-    desktopName = "STM32CubeMX";
-    categories = "Development;";
-    icon = "stm32cubemx";
-  };
+  iconame = "STM32CubeMX";
 in
 stdenv.mkDerivation rec {
   pname = "stm32cubemx";
-  inherit version;
-
+  version = "6.2.1";
 
   src = fetchzip {
-    url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}.zip";
-    sha256 = "15vxca1pgpgxgiz4wisrw0lylffdwnn4n46z9n0q37f8hmzlrk8f";
-    stripRoot= false;
+    url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}-lin.zip";
+    sha256 = "0m5h01iq0mgrr9svj4gmykfi9lsyjpqzrkvlizff26c8dqad59c5";
+    stripRoot = false;
   };
 
-  nativeBuildInputs = [ libicns imagemagick ];
+  nativeBuildInputs = [ icoutils fdupes imagemagick copyDesktopItems];
+  desktopItems = [
+    (makeDesktopItem {
+      name = "stm32CubeMX";
+      exec = "stm32cubemx";
+      desktopName = "STM32CubeMX";
+      categories = "Development;";
+      comment = "STM32Cube initialization code generator";
+      icon = "stm32cubemx";
+    })
+  ];
 
   buildCommand = ''
-    mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
-    cp -r $src/. $out/opt/STM32CubeMX/
-    chmod +rx $out/opt/STM32CubeMX/STM32CubeMX.exe
+    mkdir -p $out/{bin,opt/STM32CubeMX}
+    cp -r $src/MX/. $out/opt/STM32CubeMX/
+    chmod +rx $out/opt/STM32CubeMX/STM32CubeMX
     cat << EOF > $out/bin/${pname}
     #!${stdenv.shell}
-    ${jre}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX.exe
+    ${jdk11}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX
     EOF
     chmod +x $out/bin/${pname}
 
-    icns2png --extract $out/opt/STM32CubeMX/${pname}.icns
+    icotool --extract $out/opt/STM32CubeMX/help/${iconame}.ico
+    fdupes -dN . > /dev/null
     ls
     for size in 16 24 32 48 64 128 256; do
       mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
-      if [ -e ${pname}_"$size"x"$size"x32.png ]; then
-        mv ${pname}_"$size"x"$size"x32.png \
+      if [ $size -eq 256 ]; then
+        mv ${iconame}_*_"$size"x"$size"x32.png \
           $out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
       else
-        convert -resize "$size"x"$size" ${pname}_256x256x32.png \
+        convert -resize "$size"x"$size" ${iconame}_*_256x256x32.png \
           $out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
       fi
     done;
-
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/misc/strace/default.nix b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
index f36b1cf4495b..4da1a2cba09b 100644
--- a/nixpkgs/pkgs/development/tools/misc/strace/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
@@ -1,22 +1,20 @@
 { lib, stdenv, fetchurl, perl, libunwind, buildPackages }:
 
-# libunwind does not have the supportsHost attribute on darwin, thus
-# when this package is evaluated it causes an evaluation error
-assert stdenv.isLinux;
-
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "5.11";
+  version = "5.12";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-/+NAsQwUWg+Fc0Jx6czlZFfSPyGn6lkxqzL4z055OHk=";
+    sha256 = "sha256-KRce350lL4nJiKTDQN/exmL0WMuMY9hUMdZLq1kR58Q=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ perl ];
 
-  buildInputs = [ perl.out ] ++ lib.optional libunwind.supportsHost libunwind; # support -k
+  # On RISC-V platforms, LLVM's libunwind implementation is unsupported by strace.
+  # The build will silently fall back and -k will not work on RISC-V.
+  buildInputs = [ perl.out libunwind ]; # support -k
 
   postPatch = "patchShebangs --host strace-graph";
 
@@ -27,6 +25,6 @@ stdenv.mkDerivation rec {
     description = "A system call tracer for Linux";
     license =  with licenses; [ lgpl21Plus gpl2Plus ]; # gpl2Plus is for the test suite
     platforms = platforms.linux;
-    maintainers = with maintainers; [ globin ma27 ];
+    maintainers = with maintainers; [ globin ma27 qyliss ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/svls/default.nix b/nixpkgs/pkgs/development/tools/misc/svls/default.nix
index 6af24ed5d10b..13b529147995 100644
--- a/nixpkgs/pkgs/development/tools/misc/svls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/svls/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-+/4D0pRZs1Gy6DJnsDZA8wWi1FKhr7gRS0oq1TyWpuE=";
   };
 
-  cargoSha256 = "sha256-o6/L/4QcIei4X1pHYjV72hcEmTMp+pvJkwbb+niqWP8=";
+  cargoSha256 = "sha256-xkRlUXlkXQwvzIuhExf+tSSBi+8BZv58btvln05UI+k=";
 
   meta = with lib; {
     description = "SystemVerilog language server";
diff --git a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
index 54adb5f8296f..0c52a89229da 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.15.0";
+  version = "0.16.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/g62LSlaIK67oY6dI8S3Lni85eBBI6piqP2Fsq3HXWQ=";
+    sha256 = "sha256-5+h1fyTCp1jUZeKRCeDhfqAA11SMyR5nw2Y2x6JyIwY=";
   };
-  vendorSha256 = "sha256-U0jVdyY4SifPWkOkq3ohY/LvfGcYm4rI+tW1QEm39oo=";
+  vendorSha256 = "sha256-m5ddUwuTX0mSihkoGIMQKidptwUL8Bao5HgHJBWX0os=";
 
   # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix b/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
index 9a661f276772..0cfd63ffa283 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "terraform-lsp";
-  version = "0.0.10";
+  version = "0.0.12";
 
   src = fetchFromGitHub {
     owner = "juliosueiras";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j69j1pkd0q6bds1c6pcaars5hl3hk93q2p31mymkzmy640k8zfn";
+    sha256 = "111350jbq0dp0qhk48j12hrlisd1fwzqpcv357igrbqf6ki7r78q";
   };
 
   goPackagePath = "github.com/juliosueiras/terraform-lsp";
diff --git a/nixpkgs/pkgs/development/tools/misc/texlab/default.nix b/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
index 480c7cfd5561..2fcda04cb434 100644
--- a/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
@@ -3,34 +3,46 @@
 , rustPlatform
 , fetchFromGitHub
 , installShellFiles
+, libiconv
 , Security
+, CoreServices
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "2.2.2";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06x7j4ppgw24xbsnyj1icaksngqbvq6mk8wfcqikzmvmifjspx9m";
+    hash = "sha256-h08RRcuQG1IjuCA6Xk71+MXKprZ/w5+H2edbG3rtVSY=";
   };
 
-  cargoSha256 = "0gzxylpn2hps0kxczd6wwcqhnvm6ir971bfvpgjr6rxi12hs47ky";
+  cargoHash = "sha256-78S9Bmq6TIMiAV3HpMC8jK9fH+0Y+jXAW9V1Druyfg8=";
+
+  outputs = [ "out" "man" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security CoreServices ];
 
   postInstall = ''
     installManPage texlab.1
+
+    # Remove generated dylib of html2md dependency. TexLab statically
+    # links to the generated rlib and doesn't reference the dylib. I
+    # couldn't find any way to prevent building this by passing cargo flags.
+    # See https://gitlab.com/Kanedias/html2md/-/blob/0.2.10/Cargo.toml#L20
+    rm "$out/lib/libhtml2md${stdenv.hostPlatform.extensions.sharedLibrary}"
+    rmdir "$out/lib"
   '';
 
   meta = with lib; {
     description = "An implementation of the Language Server Protocol for LaTeX";
     homepage = "https://texlab.netlify.app";
     license = licenses.mit;
-    maintainers = with maintainers; [ doronbehar metadark ];
+    maintainers = with maintainers; [ doronbehar kira-bruneau ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix b/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix
index 4618906038eb..06a8c3e98712 100644
--- a/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix
@@ -28,7 +28,7 @@ with python3Packages; buildPythonApplication rec {
     pyusb
   ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
diff --git a/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix b/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
index 3aff6c6d36cc..8924cbf2fae5 100644
--- a/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
@@ -1,27 +1,37 @@
-{ lib, python3Packages }:
+{ lib
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "tockloader";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "11k4ppwq845lnj265ydfr0cn1rrym5amx2i19x1h3ccbxc3gsy3x";
+    sha256 = "1aqkj1nplcw3gmklrhq6vxy6v9ad5mqiw4y1svasak2zkqdk1wyc";
   };
 
   propagatedBuildInputs = with python3Packages; [
     argcomplete
     colorama
     crcmod
-    pytoml
     pyserial
+    pytoml
+    tqdm
   ];
 
+  # has no test suite
+  checkPhase = ''
+    runHook preCheck
+    $out/bin/tockloader --version | grep -q ${version}
+    runHook postCheck
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/tock/tockloader";
     license = licenses.mit;
     description = "Tool for programming Tock onto hardware boards";
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
 
diff --git a/nixpkgs/pkgs/development/tools/misc/tokei/default.nix b/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
index 557ff4fa967c..e87f07067561 100644
--- a/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-jqDsxUAMD/MCCI0hamkGuCYa8rEXNZIR8S+84S8FbgI=";
   };
 
-  cargoSha256 = "sha256-iUDc54E8AiLMJw9h99kg/3VmaSi8GqfQyrPwa9nJ994=";
+  cargoSha256 = "sha256-U7Bode8qwDsNf4FVppfEHA9uiOFz74CtKgXG6xyYlT8=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     libiconv Security
diff --git a/nixpkgs/pkgs/development/tools/misc/unused/default.nix b/nixpkgs/pkgs/development/tools/misc/unused/default.nix
index 1a5f3efe0e6a..58e4ba0bc98e 100644
--- a/nixpkgs/pkgs/development/tools/misc/unused/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/unused/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ cmake ];
 
-  cargoSha256 = "1c0gj2wp0nydv0binxj3ikm5sm6y5z3pklp5b06dgvq02licz57a";
+  cargoSha256 = "0y7vsba4r4v2lwf02i2dxwicnhknajbbzsdlnn5srvg6nvl3kspi";
 
   meta = with lib; {
     description = "A tool to identify potentially unused code";
diff --git a/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix b/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
index d900d14e33c2..0465fb74aa1a 100644
--- a/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage {
   cargoDepsHook = ''
     ln -s wishbone-tool source
   '';
-  cargoSha256 = "0d5kcwy0cgxqfxf2xysw65ng84q4knhp4fgvh6dwqhf0nsca9gvs";
+  cargoSha256 = "1b12wpmzv7wxidc4hd8hmp8iwqhqlycxh8bdv3rf701sqsazkc5x";
 
   buildInputs = [ libusb-compat-0_1 ];
 
diff --git a/nixpkgs/pkgs/development/tools/mix2nix/default.nix b/nixpkgs/pkgs/development/tools/mix2nix/default.nix
new file mode 100644
index 000000000000..21520d9dbe3d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/mix2nix/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromGitHub, elixir, erlang }:
+
+stdenv.mkDerivation rec {
+  pname = "mix2nix";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "ydlr";
+    repo = "mix2nix";
+    rev = version;
+    sha256 = "0q4yq8glrdj72j7b9xnwb6j3cli3cccimh9sb7acb4npaiivvf69";
+  };
+
+  nativeBuildInputs = [ elixir ];
+  buildInputs = [ erlang ];
+
+  buildPhase = "mix escript.build";
+  installPhase = "install -Dt $out/bin mix2nix";
+
+  meta = with lib; {
+    description = "Generate nix expressions from mix.lock file.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ydlr ] ++ teams.beam.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/nemiver/default.nix b/nixpkgs/pkgs/development/tools/nemiver/default.nix
index 58c0f2ed28b1..7894dfe797d6 100644
--- a/nixpkgs/pkgs/development/tools/nemiver/default.nix
+++ b/nixpkgs/pkgs/development/tools/nemiver/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , fetchpatch
 , pkg-config
-, gnome3
+, gnome
 , gtk3
 , libxml2
 , intltool
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = "nemiver";
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix b/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
index 475c08eb169f..f5276510e612 100644
--- a/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
+++ b/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, buildEnv, makeWrapper
-, xorg, alsaLib, dbus, glib, gtk2, atk, pango, freetype, fontconfig
+, xorg, alsa-lib, dbus, glib, gtk2, atk, pango, freetype, fontconfig
 , gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
 , libnotify}:
 let
@@ -10,7 +10,7 @@ let
     name = "nwjs-env";
     paths = [
       xorg.libX11 xorg.libXrender glib gtk2 atk pango cairo gdk-pixbuf
-      freetype fontconfig xorg.libXcomposite alsaLib xorg.libXdamage
+      freetype fontconfig xorg.libXcomposite alsa-lib xorg.libXdamage
       xorg.libXext xorg.libXfixes nss nspr gconf expat dbus
       xorg.libXtst xorg.libXi xorg.libXcursor xorg.libXrandr libcap
       libnotify
diff --git a/nixpkgs/pkgs/development/tools/nsis/default.nix b/nixpkgs/pkgs/development/tools/nsis/default.nix
index 2d3f54bbf75b..4820d8bb4b7d 100644
--- a/nixpkgs/pkgs/development/tools/nsis/default.nix
+++ b/nixpkgs/pkgs/development/tools/nsis/default.nix
@@ -1,8 +1,11 @@
-{ lib, stdenv
+{ lib
+, stdenv
+, symlinkJoin
 , fetchurl
 , fetchzip
 , sconsPackages
 , zlib
+, libiconv
 }:
 
 stdenv.mkDerivation rec {
@@ -28,20 +31,34 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
-  buildInputs = [ zlib ];
+  buildInputs = [ zlib ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+  CPPPATH = symlinkJoin {
+     name = "nsis-includes";
+     paths = [ zlib.dev ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+  };
+
+  LIBPATH = symlinkJoin {
+    name = "nsis-libs";
+    paths = [ zlib ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+  };
 
   sconsFlags = [
     "SKIPSTUBS=all"
     "SKIPPLUGINS=all"
     "SKIPUTILS=all"
     "SKIPMISC=all"
-    "APPEND_CPPPATH=${zlib.dev}/include"
-    "APPEND_LIBPATH=${zlib}/lib"
     "NSIS_CONFIG_CONST_DATA=no"
-  ];
+  ] ++ lib.optional stdenv.isDarwin "APPEND_LINKFLAGS=-liconv";
 
   preBuild = ''
-    sconsFlagsArray+=("PATH=$PATH")
+    sconsFlagsArray+=(
+      "PATH=$PATH"
+      "CC=$CC"
+      "CXX=$CXX"
+      "APPEND_CPPPATH=$CPPPATH/include"
+      "APPEND_LIBPATH=$LIBPATH/lib"
+    )
   '';
 
   prefixKey = "PREFIX=";
@@ -51,7 +68,7 @@ stdenv.mkDerivation rec {
     description = "A free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge";
     homepage = "https://nsis.sourceforge.io/";
     license = licenses.zlib;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pombeirp ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/nwjs/default.nix b/nixpkgs/pkgs/development/tools/nwjs/default.nix
index 1356bc46ced8..7d0175ac912a 100644
--- a/nixpkgs/pkgs/development/tools/nwjs/default.nix
+++ b/nixpkgs/pkgs/development/tools/nwjs/default.nix
@@ -1,9 +1,9 @@
 { stdenv, lib, fetchurl, buildEnv, makeWrapper
 
-, xorg, alsaLib, dbus, glib, gtk3, atk, pango, freetype, fontconfig
+, xorg, alsa-lib, dbus, glib, gtk3, atk, pango, freetype, fontconfig
 , gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
 , libnotify
-, ffmpeg_3, libxcb, cups
+, ffmpeg, libxcb, cups
 , sqlite, udev
 , libuuid
 , sdk ? false
@@ -16,13 +16,13 @@ let
     name = "nwjs-env";
     paths = [
       xorg.libX11 xorg.libXrender glib /*gtk2*/ gtk3 atk pango cairo gdk-pixbuf
-      freetype fontconfig xorg.libXcomposite alsaLib xorg.libXdamage
+      freetype fontconfig xorg.libXcomposite alsa-lib xorg.libXdamage
       xorg.libXext xorg.libXfixes nss nspr gconf expat dbus
       xorg.libXtst xorg.libXi xorg.libXcursor xorg.libXrandr
       xorg.libXScrnSaver cups
       libcap libnotify
       # libnw-specific (not chromium dependencies)
-      ffmpeg_3 libxcb
+      ffmpeg libxcb
       # chromium runtime deps (dlopen’d)
       sqlite udev
       libuuid
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/1.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/1.nix
index a16b3ab23f22..ad908787911b 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/1.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/1.nix
@@ -2,7 +2,7 @@
 
 if !lib.versionAtLeast ocaml.version "4.02"
 || lib.versionAtLeast ocaml.version "4.12"
-then throw "dune is not available for OCaml ${ocaml.version}"
+then throw "dune 1 is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
index f1365792fbca..2acc7e5bdf32 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, ocaml, findlib }:
 
 if lib.versionOlder ocaml.version "4.08"
-then throw "dune is not available for OCaml ${ocaml.version}"
+then throw "dune 2 is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index 12306d2a305a..6965d5fa0abb 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,6 +1,6 @@
 { lib, fetchurl, buildDunePackage
 , ocaml, cmdliner, cppo, yojson, ppxlib
-, menhir
+, menhir, menhirLib
 }:
 
 buildDunePackage rec {
@@ -14,7 +14,7 @@ buildDunePackage rec {
   };
 
   nativeBuildInputs = [ cppo menhir ];
-  buildInputs = [ cmdliner ];
+  buildInputs = [ cmdliner menhirLib ];
 
   configurePlatforms = [];
   propagatedBuildInputs = [ yojson ppxlib ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix b/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
index 77595169565f..76ef33f7947d 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
@@ -10,6 +10,8 @@
 , dot-merlin-reader
 , jq
 , menhir
+, menhirLib
+, menhirSdk
 }:
 
 let
@@ -66,6 +68,8 @@ buildDunePackage {
   checkInputs = [
     jq
     menhir
+    menhirLib
+    menhirSdk
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix
index 223ac39c6aa2..6f3ce218713e 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/generic.nix
@@ -25,8 +25,10 @@ let src =
     }."${version}";
   };
   ocamlPackages =
-  if lib.versionAtLeast version "0.14.3"
+  if lib.versionAtLeast version "0.17.0"
   then ocaml-ng.ocamlPackages
+  else if lib.versionAtLeast version "0.14.3"
+  then ocaml-ng.ocamlPackages_4_10
   else ocaml-ng.ocamlPackages_4_07
 ; in
 
@@ -56,6 +58,8 @@ buildDunePackage {
       uutf
       fix
       menhir
+      menhirLib
+      menhirSdk
       dune-build-info
       ocaml-version
       # Changed since 0.16.0:
@@ -73,6 +77,8 @@ buildDunePackage {
       uutf
       fix
       menhir
+      menhirLib
+      menhirSdk
       dune-build-info
       ocaml-version
       # Changed since 0.16.0:
@@ -91,6 +97,8 @@ buildDunePackage {
       uutf
       fix
       menhir
+      menhirLib
+      menhirSdk
       (ppxlib.override { version = "0.18.0"; })
       dune-build-info # lib.versionAtLeast version "0.16.0"
       ocaml-version # lib.versionAtLeast version "0.16.0"
@@ -108,6 +116,8 @@ buildDunePackage {
       uutf
       fix
       menhir
+      menhirLib
+      menhirSdk
     ] else [
       base
       cmdliner
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix
index 655f7b4d4c2f..a1d0b76eb1ff 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ncurses, cmdliner, re }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ncurses, cmdliner, re }:
 let
   version = "1.99.21";
 in
@@ -13,6 +13,14 @@ stdenv.mkDerivation {
     sha256 = "1641xzik98c7xnjwxpacijd6d9jzx340fmdn6i372z8h554jjlg9";
   };
 
+  patches = [
+    # Fix compilation with OCaml 4.12
+    (fetchpatch {
+      url = "https://github.com/OCamlPro/ocp-build/commit/104e4656ca6dba9edb03b62539c9f1e10abcaae8.patch";
+      sha256 = "0sbyi4acig9q8x1ky4hckfg5pm2nad6zasi51ravaf1spgl148c2";
+    })
+  ];
+
   buildInputs = [ ocaml findlib cmdliner re ];
   propagatedBuildInputs = [ ncurses ];
   preInstall = "mkdir -p $out/bin";
diff --git a/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix b/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
index 51f731c9431f..e0710079b62a 100644
--- a/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchurl
-, mono6
+, mono
 , msbuild
 , dotnet-sdk
 , makeWrapper
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     chmod -R u+w $out/src
     mv $out/src/.msbuild/Current/{bin,Bin}
 
-    makeWrapper ${mono6}/bin/mono $out/bin/omnisharp \
+    makeWrapper ${mono}/bin/mono $out/bin/omnisharp \
     --add-flags "$out/src/OmniSharp.exe"
   '';
 
diff --git a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
index a73907cd2579..739a562227a8 100644
--- a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.27.1";
+  version = "0.29.4";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "sha256-IiPUmLgkD50LxOT+ZEf/UZJ0192GYOy9xk8U94Q0BWc=";
+    sha256 = "sha256-AjNr+t30ftF92+cEfvt8iHBDVD/SO52ojJRLAkYF9l4=";
   };
 
   vendorSha256 = null;
@@ -28,6 +28,8 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
+    homepage = "https://www.openpolicyagent.org";
+    changelog = "https://github.com/open-policy-agent/opa/blob/v${version}/CHANGELOG.md";
     description = "General-purpose policy engine";
     longDescription = ''
       The Open Policy Agent (OPA, pronounced "oh-pa") is an open source, general-purpose policy engine that unifies
@@ -35,7 +37,6 @@ buildGoModule rec {
       as code and simple APIs to offload policy decision-making from your software. You can use OPA to enforce policies
       in microservices, Kubernetes, CI/CD pipelines, API gateways, and more.
     '';
-    homepage = "https://www.openpolicyagent.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ lewo jk ];
   };
diff --git a/nixpkgs/pkgs/development/tools/packet-cli/default.nix b/nixpkgs/pkgs/development/tools/packet-cli/default.nix
index ff0dead13e4e..fbe5c879fca9 100644
--- a/nixpkgs/pkgs/development/tools/packet-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/packet-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "packet-cli";
-  version = "0.3.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "packethost";
     repo = pname;
     rev = version;
-    sha256 = "sha256-P1Bn6vli0d/MroHUsioTWBrjWN+UZmSo3qmzo+fCDwM=";
+    sha256 = "0dlcx186l8kh6w3i4dvj7v90lhjkgvq1xkjb2vijy6399z41grw2";
   };
 
-  vendorSha256 = "sha256-PjKiUdhN87guPAa0loZrWYuwbl0HaspuIjmKgyq4Zp8=";
+  vendorSha256 = "1y1c369gsaf5crkdvv5g8d9p2g5602x2gcj8zy1q3wjx9lwhl0i6";
 
   postInstall = ''
     ln -s $out/bin/packet-cli $out/bin/packet
@@ -23,6 +23,6 @@ buildGoModule rec {
     description = "Official Packet CLI";
     homepage = "https://github.com/packethost/packet-cli";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne ];
+    maintainers = with maintainers; [ Br1ght0ne nshalman ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/pactorio/default.nix b/nixpkgs/pkgs/development/tools/pactorio/default.nix
index d29e12443781..3790440f1b8b 100644
--- a/nixpkgs/pkgs/development/tools/pactorio/default.nix
+++ b/nixpkgs/pkgs/development/tools/pactorio/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, installShellFiles, lib, rustPlatform }:
+{ fetchFromGitHub, installShellFiles, lib, stdenv, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "pactorio";
@@ -11,9 +11,10 @@ rustPlatform.buildRustPackage rec {
     sha256 = "07h9hywz0pc29411myhxjq6pks4p6q6czbqjv7fxf3xkb1mg9grq";
   };
 
-  cargoSha256 = "1m7bvi6i52xqvssjx5fr2dz25ny7hkmb8w8p23pczpdmpd2y0r7r";
+  cargoSha256 = "1rac2s36j88vm231aji8d0ndfbaa2gzxwsrxrvsi0zp9cqisc6rh";
 
   nativeBuildInputs = [ installShellFiles ];
+  buildInputs = lib.optional stdenv.isDarwin Security;
 
   preFixup = ''
     completions=($releaseDir/build/pactorio-*/out/completions)
diff --git a/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix b/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
index ce733b8a2131..59253a4f7da2 100644
--- a/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
@@ -11,11 +11,11 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0hj5in5h7pj72m4ag80ing513fh65q8xlsf341qzm3vmxm3y3jgd";
   };
 
-  cargoSha256 = "16ylk125p368mcz8nandmfqlygrqjlf8mqaxlbpixqga378saidl";
+  cargoSha256 = "1lam4gwzcj6w0pyxf61l2cpbvvf5gmj2gwi8dangnhd60qhlnvrx";
 
   nativeBuildInputs = [ llvmPackages.clang ];
   buildInputs = [ llvmPackages.libclang ];
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   postInstall = ''
     mkdir -p $out/share/kak/autoload/plugins
diff --git a/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix b/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix
index 4f6f00e968ef..756d99c6e7f4 100644
--- a/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "byacc";
-  version = "20200910";
+  version = "20210109";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/byacc/${pname}-${version}.tgz"
       "https://invisible-mirror.net/archives/byacc/${pname}-${version}.tgz"
     ];
-    sha256 = "0c6gbvlgzi6yflri22w7fa2w3k5m3jk0xb5a43f3vwpa783hcn8a";
+    sha256 = "sha256-nn13aFhxQed4RJJhXf78cKjgBBAEO2OQHv7cG1DBm5c=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/tools/parsing/flex/default.nix b/nixpkgs/pkgs/development/tools/parsing/flex/default.nix
index 42b007300a95..0bc26db57504 100644
--- a/nixpkgs/pkgs/development/tools/parsing/flex/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/flex/default.nix
@@ -34,8 +34,8 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ m4 ];
 
   preConfigure = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "ac_cv_func_malloc_0_nonnull=yes"
-    "ac_cv_func_realloc_0_nonnull=yes"
+    "export ac_cv_func_malloc_0_nonnull=yes"
+    "export ac_cv_func_realloc_0_nonnull=yes"
   ];
 
   postConfigure = lib.optionalString (stdenv.isDarwin || stdenv.isCygwin) ''
diff --git a/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix b/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
index ebba9903a47c..a945f3bdde03 100644
--- a/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
@@ -1,48 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "re2c";
-  version = "1.3";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner  = "skvadrik";
     repo   = "re2c";
     rev    = version;
-    sha256 = "0aqlf2h6i2m3dq11dkq89p4w4c9kp4x66s5rhp84gmpz5xqv1x5h";
+    sha256 = "06nvk5sf4vrc2bvpj4vi2xwy3ggv548sn530drz5fi67nhzgga26";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-21232-part1.patch";
-      url = "https://github.com/skvadrik/re2c/commit/fd634998f813340768c333cdad638498602856e5.patch";
-      sha256 = "1blyg5lyhqd4ymisih65xl0g36ig71ijia4skkkd59rdvj78aiw6";
-    })
-
-    (fetchpatch {
-      name = "CVE-2018-21232-part2.patch";
-      url = "https://github.com/skvadrik/re2c/commit/7b5643476bd99c994c4f51b8143f942982d85521.patch";
-      sha256 = "0rhmgqrinpk49r9x75ygrs14lz72aw5ad5kr6qp9bdyl8gs082qp";
-    })
-
-    (fetchpatch {
-      name = "CVE-2018-21232-part3.patch";
-      url = "https://github.com/skvadrik/re2c/commit/4d9c809355b574f2a58eac119f5e076c48e4d1e2.patch";
-      sha256 = "0k86wg9icw1gkqpf7rq2w6xsq4caxw3rc0zfxf39liwa35027rai";
-    })
-
-    (fetchpatch {
-      name = "CVE-2018-21232-part4.patch";
-      url = "https://github.com/skvadrik/re2c/commit/89be91f3df00657261870adbc590209fdb2bc405.patch";
-      sha256 = "1aygy9va7jwby93chlskwg7z90fn07x5hym0gziwlkx8k900p3a3";
-    })
-
-    (fetchpatch {
-      name = "CVE-2020-11958.patch";
-      url = "https://github.com/skvadrik/re2c/commit/c4603ba5ce229db83a2a4fb93e6d4b4e3ec3776a.patch";
-      sha256 = "1d95ahxk92g7k87sda9gxgmr3blyfzwd2y7h9jxj8zkd74knd9zh";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook ];
 
   doCheck = true;
@@ -54,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for writing very fast and very flexible scanners";
-    homepage    = "http://re2c.org";
+    homepage    = "https://re2c.org";
     license     = licenses.publicDomain;
     platforms   = platforms.all;
     maintainers = with maintainers; [ thoughtpolice ];
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
index 293b8bb095a7..6ab1463917c8 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -28,9 +28,9 @@ let
   # 1) change all these hashes
   # 2) nix-build -A tree-sitter.updater.update-all-grammars
   # 3) run the ./result script that is output by that (it updates ./grammars)
-  version = "0.19.3";
-  sha256 = "0zd1p9x32bwdc5cdqr0x8i9fpcykk1zczb8zdjawrrr92465d26y";
-  cargoSha256 = "0mlrbl85x1x2ynwrps94mxn95rjj1r7gb3vdivfaxqv1xvp25m41";
+  version = "0.19.5";
+  sha256 = "1qmb0sva28zv6r3c3j7xs9pc8bpwwhkb9vxxndw2zbdn9wkvmbmn";
+  cargoSha256 = "0hnjik3pymb1s7frhfpfzvd6w2k3lgpsmh6milpriwxmqsmkwdzz";
 
   src = fetchFromGitHub {
     owner = "tree-sitter";
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix
index 5ca381e6d2ff..93e1cb3804fb 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammar.nix
@@ -1,5 +1,7 @@
 { stdenv
 , tree-sitter
+, libcxx
+, lib
 }:
 
 # Build a parser grammar and put the resulting shared object in `$out/parser`
@@ -27,6 +29,7 @@ stdenv.mkDerivation {
       "${source}/${location}"
   ;
 
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
   buildInputs = [ tree-sitter ];
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index d9d5fa46badc..e5eb3029c868 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -29,7 +29,10 @@
   tree-sitter-scala = (builtins.fromJSON (builtins.readFile ./tree-sitter-scala.json));
   tree-sitter-svelte = (builtins.fromJSON (builtins.readFile ./tree-sitter-svelte.json));
   tree-sitter-swift = (builtins.fromJSON (builtins.readFile ./tree-sitter-swift.json));
+  tree-sitter-toml = (builtins.fromJSON (builtins.readFile ./tree-sitter-toml.json));
+  tree-sitter-tsq = (builtins.fromJSON (builtins.readFile ./tree-sitter-tsq.json));
   tree-sitter-typescript = (builtins.fromJSON (builtins.readFile ./tree-sitter-typescript.json));
   tree-sitter-verilog = (builtins.fromJSON (builtins.readFile ./tree-sitter-verilog.json));
   tree-sitter-yaml = (builtins.fromJSON (builtins.readFile ./tree-sitter-yaml.json));
+  tree-sitter-zig = (builtins.fromJSON (builtins.readFile ./tree-sitter-zig.json));
 }
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
index dd6a3a380bc6..148004de4657 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "09749b7b5428e770cc2ebdf2e90029c0f4a2d411",
-  "date": "2021-04-13T07:05:48+01:00",
-  "path": "/nix/store/w99nivk866bglvijxb5m0c789qh99x1m-tree-sitter-c-sharp",
-  "sha256": "17n7r1j1ib3gzjf0qw88512flzamjrvilksbf1p15dqa17rmwyq1",
+  "rev": "5b6bfbdcdbdda7da4839d7163ce579ed98410282",
+  "date": "2021-05-21T15:22:56+02:00",
+  "path": "/nix/store/msyjbgxf3y3rj6m3w2apd65cvr9x523r-tree-sitter-c-sharp",
+  "sha256": "0ls2qic3jb20zv4m5pdrc3ikfb66afay3krvc6gsq1fi9hbxrmvv",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
index 6783d4381f6d..69d4869010f4 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-go",
-  "rev": "2a83dfdd759a632651f852aa4dc0af2525fae5cd",
-  "date": "2021-03-09T16:11:33-05:00",
-  "path": "/nix/store/2jk1bacllxsii8nlbc5lyi3k376ylf3q-tree-sitter-go",
-  "sha256": "001p8kb8g4vghn78690bnav42inkypld2k1mbd5pbmd5svvacfav",
+  "rev": "eb306e6e60f393df346cfc8cbfaf52667a37128a",
+  "date": "2021-05-04T14:03:16-07:00",
+  "path": "/nix/store/xgi4w5by155m1zqhqf2s7hmngy6sxdq3-tree-sitter-go",
+  "sha256": "03x3nkjxdfck9a4z2i50wq065vixqqk4v5w6fnd870q63v0zrc7c",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
index c3e5cb9d20f2..0856320ef59b 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-java",
-  "rev": "ee8e358637e05188f9f65d8d1ad88a4412c975ce",
-  "date": "2021-04-20T10:40:14-04:00",
-  "path": "/nix/store/8612qackwqdsvbfc03lzc5vds6mvqwxf-tree-sitter-java",
-  "sha256": "19qxfimy8w49gqc97siknd27kvkz73qp2v2118pvdbdz7c5dv27r",
+  "rev": "2efe37f92d2e6aeb25186e9da07455bb4a30163c",
+  "date": "2021-05-04T14:05:05-07:00",
+  "path": "/nix/store/bzljwaraqj6zqpq85cz9xb0vwh7c10yj-tree-sitter-java",
+  "sha256": "09v3xg1356ghc2n0yi8iqkp80lbkav0jpfgz8iz2j1sl7ihbvkyw",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
index 351a0f262cb0..c0411d15fb69 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-javascript",
-  "rev": "a263a8f53266f8f0e47e21598e488f0ef365a085",
-  "date": "2021-04-20T10:37:09-04:00",
-  "path": "/nix/store/y6qbdzdx4g1g1sa2rb7dnk9snjs6lhpp-tree-sitter-javascript",
-  "sha256": "04s1jb9c96kwq0nrh6516idlh58d2b1k66amqa2sl5kk32pl9pmm",
+  "rev": "6c8cfae935f67dd9e3a33982e5e06be0ece6399a",
+  "date": "2021-05-11T09:51:32-07:00",
+  "path": "/nix/store/dhh1gz45l3h3p31jfg5fgy1kns1lbw6d-tree-sitter-javascript",
+  "sha256": "1mw6miw4yp6s1i0b08hflamfvrjdim4fnnj6fy461n05jp1s1i78",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
index d90f09348cad..ef319a1e33d7 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-julia",
-  "rev": "0ba7a24b062b671263ae08e707e9e94383b25bb7",
-  "date": "2021-03-04T14:52:13-08:00",
-  "path": "/nix/store/2ni8p1cgyrkn1mcccl4zqdpkfm63a10m-tree-sitter-julia",
-  "sha256": "1pbnmvhy2gq4vg1b0sjzmjm4s2gsgdjh7h01yj8qrrqbcl29c463",
+  "rev": "12ea597262125fc22fd2e91aa953ac69b19c26ca",
+  "date": "2021-05-03T17:44:45-07:00",
+  "path": "/nix/store/lbz23r698hn7cha09qq0dbfay7dh74gg-tree-sitter-julia",
+  "sha256": "0rmd7k3rv567psxrlqv17gvckijs19xs6mxni045rpayxmk441sk",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
index eb97bb46f685..ff638a08baf0 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/cstrahan/tree-sitter-nix",
-  "rev": "d5287aac195ab06da4fe64ccf93a76ce7c918445",
-  "date": "2021-04-21T19:11:29-05:00",
-  "path": "/nix/store/6labzn2qd3wyn4k2ddb09z2avpgqwbp1-tree-sitter-nix",
-  "sha256": "0mapqdqrinskdxlarrrvyd55mjg97gbd6jm9vbjmdm4xi2hhzvxa",
+  "rev": "50f38ceab667f9d482640edfee803d74f4edeba5",
+  "date": "2021-04-27T17:21:51-05:00",
+  "path": "/nix/store/fhf3mvxg17g0xli59cgmmwqy4g21fbzj-tree-sitter-nix",
+  "sha256": "11gifb9b7x9v223hsrcb6wlkqpxbc4p5v4ny9aixzi9k8g0jhb3d",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
index 941a96646843..fe6b149e0409 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ocaml",
-  "rev": "2f962cf4eb0bee87bba755347a79ee501cd58313",
-  "date": "2021-03-11T02:13:42+01:00",
-  "path": "/nix/store/pwf6di3pdghsnb83c87vvm3w0d5aanvp-tree-sitter-ocaml",
-  "sha256": "1dfan7kbs7i0nz9dkxv8ipn0b341j1fr9fn0a2zfqsx6xxkra56r",
+  "rev": "0348562f385bc2bd67ecf181425e1afd6d454192",
+  "date": "2021-05-07T21:05:16+02:00",
+  "path": "/nix/store/s2499rsi28k0nrwx8wl2idsp86zsx2iz-tree-sitter-ocaml",
+  "sha256": "0iqmwcz3c2ai4gyx4xli1rhn6hi6a0f60dn20f8jas9ham9dc2df",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index a536d54b651c..4ff38790b6f7 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "4dcc061668fbc68b79421c72eb8a8baeeb0f3693",
-  "date": "2021-04-19T12:44:47-04:00",
-  "path": "/nix/store/2i80zds4dbynrdim9ngc8yp6yn825byb-tree-sitter-php",
-  "sha256": "0hs6dfw9n6sp7vbp7zfid0f0sxydyya3dyp5ghckz7al069g3vx2",
+  "rev": "6a271f4075e11815e787df9055a950fb844ee63b",
+  "date": "2021-05-13T12:41:22+02:00",
+  "path": "/nix/store/n6hycd1scxa990xchk5h09ilxi7w18f5-tree-sitter-php",
+  "sha256": "1ijxc6brd0d35hr89ic8k5ispc6sj4mxln7bznd9n6zrgjvfdjqb",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json
new file mode 100644
index 000000000000..a3d9bedd133b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-toml.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/ikatyang/tree-sitter-toml",
+  "rev": "8bd2056818b21860e3d756b5a58c4f6e05fb744e",
+  "date": "2021-05-11T12:47:32+08:00",
+  "path": "/nix/store/isgpadcxmgkb14w9yg67pb8lx7wlfhnn-tree-sitter-toml",
+  "sha256": "0yasw5fp4mq6vzrdwlc3dxlss8a94bsffv4mzrfp0b3iw0s1dlyg",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tsq.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tsq.json
new file mode 100644
index 000000000000..918e87b38a42
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tsq.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-tsq",
+  "rev": "b665659d3238e6036e22ed0e24935e60efb39415",
+  "date": "2021-05-18T15:57:40-04:00",
+  "path": "/nix/store/j59y4s3bsv6d5nbmhhdgb043hmk8157k-tree-sitter-tsq",
+  "sha256": "03bch2wp2jwxk69zjplvm0gbyw06qqdy7il9qkiafvhrbh03ayd9",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
index a59dd9a0004a..04ad785f76f9 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-typescript",
-  "rev": "82916165120f840164f11119f268a4de819ea90b",
-  "date": "2021-04-19T18:16:19-07:00",
-  "path": "/nix/store/0c0kkiiamms3yl3mf1clyrqcjwp5j920-tree-sitter-typescript",
-  "sha256": "1jnf0hn6hmn4x2cvy29mk8g1wlp0afs8immp461by3q5hcq8fzb4",
+  "rev": "28e757a2f498486931b3cb13a100a1bcc9261456",
+  "date": "2021-05-04T14:04:30-07:00",
+  "path": "/nix/store/d90hgv5g374a6mrwhq9vcxk6d6lp2ags-tree-sitter-typescript",
+  "sha256": "0dxy5h68hhypzq0z15q8iawjgw3kx7dlpw76zv6xkxh25idqgxqh",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
index c8544d7dbec3..8959c80f9f48 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/ikatyang/tree-sitter-yaml",
-  "rev": "6129a83eeec7d6070b1c0567ec7ce3509ead607c",
-  "date": "2021-04-18T14:25:59+08:00",
-  "path": "/nix/store/8wrwm71z9flfk00phrh9aaxpvsrw1m67-tree-sitter-yaml",
-  "sha256": "1bimf5fq85wn8dwlk665w15n2bj37fma5rsfxrph3i9yb0lvzi3q",
+  "rev": "0e36bed171768908f331ff7dff9d956bae016efb",
+  "date": "2021-05-11T12:47:24+08:00",
+  "path": "/nix/store/7d7m4zs4ydnwbn3xnfm3pvpy7gvkrmg8-tree-sitter-yaml",
+  "sha256": "0wyvjh62zdp5bhd2y8k7k7x4wz952l55i1c8d94rhffsbbf9763f",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
new file mode 100644
index 000000000000..97774bc58f61
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/GrayJack/tree-sitter-zig",
+  "rev": "41bbc7f7b94bde3e948e41e4d42673945238ff03",
+  "date": "2021-03-30T12:55:10-03:00",
+  "path": "/nix/store/av4xgzr3c1rhr7v4fa9mm68krd2qv1lg-tree-sitter-zig",
+  "sha256": "0gjxac43qpqc4332bp3mpdbvh7rqv0q3hvw8834b30ml5q0r0qr0",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
index c55858b5ff15..168c9a0a403d 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -35,6 +35,7 @@ let
     "tree-sitter-jsdoc"
     "tree-sitter-ql"
     "tree-sitter-embedded-template"
+    "tree-sitter-tsq"
   ];
   knownTreeSitterOrgGrammarReposJson = jsonFile "known-tree-sitter-org-grammar-repos" knownTreeSitterOrgGrammarRepos;
 
@@ -60,6 +61,8 @@ let
     "tree-sitter.github.io"
     # not maintained
     "tree-sitter-razor"
+    # rust library for constructing arbitrary graph structures from source code
+    "tree-sitter-graph"
   ];
   ignoredTreeSitterOrgReposJson = jsonFile "ignored-tree-sitter-org-repos" ignoredTreeSitterOrgRepos;
 
@@ -91,6 +94,14 @@ let
       orga = "ikatyang";
       repo = "tree-sitter-yaml";
     };
+    "tree-sitter-toml" = {
+      orga = "ikatyang";
+      repo = "tree-sitter-toml";
+    };
+    "tree-sitter-zig" = {
+      orga = "GrayJack";
+      repo = "tree-sitter-zig";
+    };
   };
 
   allGrammars =
diff --git a/nixpkgs/pkgs/development/tools/pax-rs/default.nix b/nixpkgs/pkgs/development/tools/pax-rs/default.nix
index ff4219ad09c6..248a137c49f6 100644
--- a/nixpkgs/pkgs/development/tools/pax-rs/default.nix
+++ b/nixpkgs/pkgs/development/tools/pax-rs/default.nix
@@ -36,5 +36,5 @@ buildRustPackage rec {
       cp ${cargo-lock} $out/Cargo.lock
     '';
 
-  cargoSha256 = "0wx5x7ll21bb6v34csk63kkvxdk3as720hdkaj0izdkpy0xf1knr";
+  cargoSha256 = "0d6g52hjflnw2zvlx10pz78527vh7mw5n43yi8q6dwr3pkbds1fs";
 }
diff --git a/nixpkgs/pkgs/development/tools/picotool/default.nix b/nixpkgs/pkgs/development/tools/picotool/default.nix
new file mode 100644
index 000000000000..d4a6f1c409b1
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/picotool/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libusb1, pico-sdk }:
+
+stdenv.mkDerivation rec {
+  pname = "picotool";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "raspberrypi";
+    repo = pname;
+    rev = version;
+    sha256 = "1k5j742sj91akdrgnd3wa5csqb638dgaz0c09zsr22fcqz0qhzig";
+  };
+
+  buildInputs = [ libusb1 pico-sdk ];
+  nativeBuildInputs = [ cmake pkg-config ];
+  cmakeFlags = [ "-DPICO_SDK_PATH=${pico-sdk}/lib/pico-sdk" ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 ./picotool -t $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/raspberrypi/picotool";
+    description = "Tool for interacting with a RP2040 device in BOOTSEL mode, or with a RP2040 binary";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ musfay ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index 62063ff09947..3971a7631d46 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -5,7 +5,7 @@
 }:
 let
   # Poetry2nix version
-  version = "1.16.1";
+  version = "1.17.1";
 
   inherit (poetryLib) isCompatible readTOML moduleName;
 
@@ -163,7 +163,7 @@ lib.makeScope pkgs.newScope (self: {
       compatible = partitions.right;
       incompatible = partitions.wrong;
 
-      # Create an overriden version of pythonPackages
+      # Create an overridden version of pythonPackages
       #
       # We need to avoid mixing multiple versions of pythonPackages in the same
       # closure as python can only ever have one version of a dependency
@@ -209,12 +209,12 @@ lib.makeScope pkgs.newScope (self: {
                   poetry-core = if __isBootstrap then null else poetryPkg.passthru.python.pkgs.poetry-core;
                   poetry = if __isBootstrap then null else poetryPkg;
 
-                  # The canonical name is setuptools-scm
-                  setuptools-scm = super.setuptools_scm;
-
                   __toPluginAble = toPluginAble self;
 
                   inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook wheelUnpackHook;
+                } // lib.optionalAttrs (! super ? setuptools-scm) {
+                  # The canonical name is setuptools-scm
+                  setuptools-scm = super.setuptools_scm;
                 }
             )
             # Null out any filtered packages, we don't want python.pkgs from nixpkgs
@@ -229,7 +229,12 @@ lib.makeScope pkgs.newScope (self: {
 
       inputAttrs = mkInputAttrs { inherit py pyProject; attrs = { }; includeBuildSystem = false; };
 
-      storePackages = builtins.foldl' (acc: v: acc ++ v) [ ] (lib.attrValues inputAttrs);
+      requiredPythonModules = python.pkgs.requiredPythonModules;
+      /* Include all the nested dependencies which are required for each package.
+         This guarantees that using the "poetryPackages" attribute will return
+         complete list of dependencies for the poetry project to be portable.
+      */
+      storePackages = requiredPythonModules (builtins.foldl' (acc: v: acc ++ v) [ ] (lib.attrValues inputAttrs));
     in
     {
       python = py;
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-wheel.sh b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-from-pypi.sh
index 97f54b23416d..e56dee6849b2 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-wheel.sh
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-from-pypi.sh
@@ -9,12 +9,12 @@ curl="curl            \
  --cookie-jar cookies \
  --insecure           \
  --speed-time 5       \
- -#                   \
+ --progress-bar       \
  --fail               \
  $curlOpts            \
  $NIX_CURL_FLAGS"
 
-echo "Trying to fetch wheel with predicted URL: $predictedURL"
+echo "Trying to fetch with predicted URL: $predictedURL"
 
 $curl $predictedURL --output $out && exit 0
 
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py
new file mode 100644
index 000000000000..5931d4c92708
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py
@@ -0,0 +1,72 @@
+# Some repositories (such as Devpi) expose the Pypi legacy API
+# (https://warehouse.pypa.io/api-reference/legacy.html).
+#
+# Note it is not possible to use pip
+# https://discuss.python.org/t/pip-download-just-the-source-packages-no-building-no-metadata-etc/4651/12
+
+import sys
+from urllib.parse import urlparse
+from html.parser import HTMLParser
+import urllib.request
+import shutil
+import ssl
+import os
+
+
+# Parse the legacy index page to extract the href and package names
+class Pep503(HTMLParser):
+    def __init__(self):
+        super().__init__()
+        self.sources = {}
+        self.url = None
+        self.name = None
+
+    def handle_data(self, data):
+        if self.url is not None:
+            self.name = data
+
+    def handle_starttag(self, tag, attrs):
+        if tag == "a":
+            for name, value in attrs:
+                if name == "href":
+                    self.url = value
+
+    def handle_endtag(self, tag):
+        if self.url is not None:
+            self.sources[self.name] = self.url
+        self.url = None
+
+
+url = sys.argv[1]
+package_name = sys.argv[2]
+index_url = url + "/" + package_name
+package_filename = sys.argv[3]
+
+print("Reading index %s" % index_url)
+
+response = urllib.request.urlopen(
+    index_url,
+    context=ssl.CERT_NONE)
+index = response.read()
+
+parser = Pep503()
+parser.feed(str(index))
+if package_filename not in parser.sources:
+    print("The file %s has not be found in the index %s" % (
+        package_filename, index_url))
+    exit(1)
+
+package_file = open(package_filename, "wb")
+# Sometimes the href is a relative path
+if urlparse(parser.sources[package_filename]).netloc == '':
+    package_url = index_url + "/" + parser.sources[package_filename]
+else:
+    package_url = parser.sources[package_filename]
+print("Downloading %s" % package_url)
+
+response = urllib.request.urlopen(
+    package_url,
+    context=ssl.CERT_NONE)
+
+with response as r:
+    shutil.copyfileobj(r, package_file)
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index 6af37b395e0c..cb1cd8af1316 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -93,17 +93,19 @@ let
   );
 
 
-  # Fetch the wheels from the PyPI index.
-  # We need to first get the proper URL to the wheel.
+  # Fetch from the PyPI index.
+  # At first we try to fetch the predicated URL but if that fails we
+  # will use the Pypi API to determine the correct URL.
   # Args:
   #   pname: package name
   #   file: filename including extension
+  #   version: the version string of the dependency
   #   hash: SRI hash
   #   kind: Language implementation and version tag
-  fetchWheelFromPypi = lib.makeOverridable (
-    { pname, file, hash, kind, curlOpts ? "" }:
+  fetchFromPypi = lib.makeOverridable (
+    { pname, file, version, hash, kind, curlOpts ? "" }:
     let
-      version = builtins.elemAt (builtins.split "-" file) 2;
+      predictedURL = predictURLFromPypi { inherit pname file hash kind; };
     in
     (pkgs.stdenvNoCC.mkDerivation {
       name = file;
@@ -111,7 +113,7 @@ let
         pkgs.curl
         pkgs.jq
       ];
-      isWheel = true;
+      isWheel = lib.strings.hasSuffix "whl" file;
       system = "builtin";
 
       preferLocalBuild = true;
@@ -119,36 +121,35 @@ let
         "NIX_CURL_FLAGS"
       ];
 
-      predictedURL = predictURLFromPypi { inherit pname file hash kind; };
-      inherit pname file version curlOpts;
+      inherit pname file version curlOpts predictedURL;
 
-      builder = ./fetch-wheel.sh;
+      builder = ./fetch-from-pypi.sh;
 
       outputHashMode = "flat";
       outputHashAlgo = "sha256";
       outputHash = hash;
+
+      passthru = {
+        urls = [ predictedURL ]; # retain compatibility with nixpkgs' fetchurl
+      };
     })
   );
 
-  # Fetch the artifacts from the PyPI index. Since we get all
-  # info we need from the lock file we don't use nixpkgs' fetchPyPi
-  # as it modifies casing while not providing anything we don't already
-  # have.
-  #
-  # Args:
-  #   pname: package name
-  #   file: filename including extension
-  #   hash: SRI hash
-  #   kind: Language implementation and version tag https://www.python.org/dev/peps/pep-0427/#file-name-convention
-  fetchFromPypi = lib.makeOverridable (
-    { pname, file, hash, kind }:
-    if lib.strings.hasSuffix "whl" file then fetchWheelFromPypi { inherit pname file hash kind; }
-    else
-      pkgs.fetchurl {
-        url = predictURLFromPypi { inherit pname file hash kind; };
-        inherit hash;
-      }
+  fetchFromLegacy = lib.makeOverridable (
+    { python, pname, url, file, hash }:
+    pkgs.runCommand file
+      {
+        nativeBuildInputs = [ python ];
+        impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+        outputHashMode = "flat";
+        outputHashAlgo = "sha256";
+        outputHash = hash;
+      } ''
+      python ${./fetch_from_legacy.py} ${url} ${pname} ${file}
+      mv ${file} $out
+    ''
   );
+
   getBuildSystemPkgs =
     { pythonPackages
     , pyProject
@@ -215,7 +216,7 @@ in
 {
   inherit
     fetchFromPypi
-    fetchWheelFromPypi
+    fetchFromLegacy
     getManyLinuxDeps
     isCompatible
     readTOML
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
index bb7b4e39b037..b403e9941f34 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
@@ -28,7 +28,7 @@ pythonPackages.callPackage
     }@args:
     let
       inherit (pkgs) stdenv;
-      inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromPypi moduleName;
+      inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromLegacy fetchFromPypi moduleName;
 
       inherit (import ./pep425.nix {
         inherit lib poetryLib python;
@@ -37,7 +37,7 @@ pythonPackages.callPackage
         ;
       fileCandidates =
         let
-          supportedRegex = ("^.*?(" + builtins.concatStringsSep "|" supportedExtensions + ")");
+          supportedRegex = ("^.*(" + builtins.concatStringsSep "|" supportedExtensions + ")");
           matchesVersion = fname: builtins.match ("^.*" + builtins.replaceStrings [ "." ] [ "\\." ] version + ".*$") fname != null;
           hasSupportedExtension = fname: builtins.match supportedRegex fname != null;
           isCompatibleEgg = fname: ! lib.strings.hasSuffix ".egg" fname || lib.strings.hasSuffix "py${python.pythonVersion}.egg" fname;
@@ -48,6 +48,7 @@ pythonPackages.callPackage
       isGit = isSource && source.type == "git";
       isUrl = isSource && source.type == "url";
       isLocal = isSource && source.type == "directory";
+      isLegacy = isSource && source.type == "legacy";
       localDepPath = toPath source.url;
 
       buildSystemPkgs =
@@ -171,10 +172,19 @@ pythonPackages.callPackage
             }
         else if isLocal then
           (poetryLib.cleanPythonSources { src = localDepPath; })
+        else if isLegacy then
+          fetchFromLegacy
+            {
+              pname = name;
+              inherit python;
+              inherit (fileInfo) file hash;
+              inherit (source) url;
+            }
         else
           fetchFromPypi {
             pname = name;
             inherit (fileInfo) file hash kind;
+            inherit version;
           };
     }
   )
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index aa58864fed78..787513855772 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -8,7 +8,13 @@ self: super:
 {
   automat = super.automat.overridePythonAttrs (
     old: rec {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.m2r ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.m2r ];
+    }
+  );
+
+  aiohttp-swagger3 = super.aiohttp-swagger3.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ];
     }
   );
 
@@ -21,7 +27,7 @@ self: super:
 
       # Inputs copied from nixpkgs as ansible doesn't specify it's dependencies
       # in a correct manner.
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
         self.pycrypto
         self.paramiko
         self.jinja2
@@ -170,7 +176,7 @@ self: super:
   dictdiffer = super.dictdiffer.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ];
     }
   );
 
@@ -178,7 +184,7 @@ self: super:
     super.django.overridePythonAttrs (
       old: {
         propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ])
-          ++ [ pkgs.gettext ];
+          ++ [ pkgs.gettext self.pytest-runner ];
       }
     )
   );
@@ -193,6 +199,36 @@ self: super:
     }
   );
 
+  django-cors-headers = super.django-cors-headers.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ];
+    }
+  );
+
+  django-hijack = super.django-hijack.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ];
+    }
+  );
+
+  django-prometheus = super.django-prometheus.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ];
+    }
+  );
+
+  django-rosetta = super.django-rosetta.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ];
+    }
+  );
+
+  django-stubs-ext = super.django-stubs-ext.overridePythonAttrs (
+    old: {
+      prePatch = (old.prePatch or "") + "touch ../LICENSE.txt";
+    }
+  );
+
   dlib = super.dlib.overridePythonAttrs (
     old: {
       # Parallel building enabled
@@ -227,6 +263,16 @@ self: super:
     '';
   };
 
+  # remove eth-hash dependency because eth-hash also depends on eth-utils causing a cycle.
+  eth-utils = super.eth-utils.overridePythonAttrs (old: {
+    propagatedBuildInputs =
+      builtins.filter (i: i.pname != "eth-hash") old.propagatedBuildInputs;
+    preConfigure = ''
+      ${old.preConfigure or ""}
+      sed -i '/eth-hash/d' setup.py
+    '';
+  });
+
   faker = super.faker.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
@@ -244,6 +290,10 @@ self: super:
     }
   );
 
+  fastecdsa = super.fastecdsa.overridePythonAttrs (old: {
+    buildInputs = old.buildInputs ++ [ pkgs.gmp.dev ];
+  });
+
   fastparquet = super.fastparquet.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
@@ -313,11 +363,11 @@ self: super:
           nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
           buildInputs =
             (old.buildInputs or [ ])
-            ++ [ pkgs.hdf5 self.pkg-config self.cython ]
+            ++ [ pkgs.hdf5 self.pkgconfig self.cython ]
             ++ lib.optional mpiSupport mpi
           ;
           propagatedBuildInputs =
-            old.propagatedBuildInputs
+            (old.propagatedBuildInputs or [ ])
             ++ lib.optionals mpiSupport [ self.mpi4py self.openssh ]
           ;
           preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else "";
@@ -333,9 +383,25 @@ self: super:
       ) else old
   );
 
+  hid = super.hid.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        found=
+        for name in libhidapi-hidraw libhidapi-libusb libhidapi-iohidmanager libhidapi; do
+          full_path=${pkgs.hidapi.out}/lib/$name${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}
+          if test -f $full_path; then
+            found=t
+            sed -i -e "s|'$name\..*'|'$full_path'|" hid/__init__.py
+          fi
+        done
+        test -n "$found" || { echo "ERROR: No known libraries found in ${pkgs.hidapi.out}/lib, please update/fix this build expression."; exit 1; }
+      '';
+    }
+  );
+
   horovod = super.horovod.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.mpi ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.mpi ];
     }
   );
 
@@ -399,7 +465,10 @@ self: super:
   # importlib-metadata has an incomplete dependency specification
   importlib-metadata = super.importlib-metadata.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2;
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ lib.optional self.python.isPy2 self.pathlib2;
+
+      # disable the removal of pyproject.toml, required because of setuptools_scm
+      dontPreferSetupPy = true;
     }
   );
 
@@ -411,7 +480,7 @@ self: super:
 
   isort = super.isort.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ];
     }
   );
 
@@ -453,7 +522,7 @@ self: super:
   );
 
   jsonslicer = super.jsonslicer.overridePythonAttrs (old: {
-    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkgconfig ];
     buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.yajl ];
   });
 
@@ -487,7 +556,7 @@ self: super:
 
   lap = super.lap.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
         self.numpy
       ];
     }
@@ -523,13 +592,13 @@ self: super:
 
   lockfile = super.lockfile.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pbr ];
     }
   );
 
   lxml = super.lxml.overridePythonAttrs (
     old: {
-      nativeBuildInputs = with pkgs; (old.nativeBuildInputs or [ ]) ++ [ pkg-config libxml2.dev libxslt.dev ];
+      nativeBuildInputs = with pkgs; (old.nativeBuildInputs or [ ]) ++ [ pkg-config libxml2.dev libxslt.dev ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
       buildInputs = with pkgs; (old.buildInputs or [ ]) ++ [ libxml2 libxslt ];
     }
   );
@@ -567,10 +636,14 @@ self: super:
         cat > setup.cfg <<EOF
         [libs]
         system_freetype = True
+      '' + lib.optionalString stdenv.isDarwin ''
+        # LTO not working in darwin stdenv, see NixOS/nixpkgs/pull/19312
+        enable_lto = false
+      '' + ''
         EOF
       '';
 
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
         pkgs.libpng
         pkgs.freetype
       ]
@@ -650,7 +723,7 @@ self: super:
       };
     in
     {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.mpi ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.mpi ];
       enableParallelBuilding = true;
       preBuild = ''
         ln -sf ${cfg} mpi.cfg
@@ -670,8 +743,15 @@ self: super:
     }
   );
 
+  mypy = super.mypy.overridePythonAttrs (
+    old: {
+      MYPY_USE_MYPYC = pkgs.stdenv.buildPlatform.is64bit;
+    }
+  );
+
   mysqlclient = super.mysqlclient.overridePythonAttrs (
     old: {
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libmysqlclient ];
       buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libmysqlclient ];
     }
   );
@@ -682,7 +762,7 @@ self: super:
         self.cython
       ];
 
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
         pkgs.zlib
         pkgs.netcdf
         pkgs.hdf5
@@ -769,7 +849,7 @@ self: super:
     in
     {
       buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.sqlite ];
-      propagatedBuildInputs = old.propagatedBuildInputs or [ ]
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ])
         ++ lib.optional withPostgres self.psycopg2
         ++ lib.optional withMysql self.mysql-connector;
     }
@@ -777,7 +857,7 @@ self: super:
 
   pillow = super.pillow.overridePythonAttrs (
     old: {
-      nativeBuildInputs = [ pkgs.pkg-config ] ++ (old.nativeBuildInputs or [ ]);
+      nativeBuildInputs = [ pkgs.pkg-config self.pytest-runner ] ++ (old.nativeBuildInputs or [ ]);
       buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ (old.buildInputs or [ ]);
     }
   );
@@ -924,7 +1004,7 @@ self: super:
           pkgs.pkg-config
         ];
 
-        propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
           pkgs.cairo
           pkgs.xlibsWrapper
         ];
@@ -1028,6 +1108,16 @@ self: super:
     }
   );
 
+  pyproject-flake8 = super.pyproject-flake8.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++ [ self.flit-core ];
+    }
+  );
+
+  pytezos = super.pytezos.override (old: {
+    buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.libsodium ];
+  });
+
   python-bugzilla = super.python-bugzilla.overridePythonAttrs (
     old: {
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
@@ -1214,6 +1304,12 @@ self: super:
     }
   );
 
+  python-snappy = super.python-snappy.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.snappy ];
+    }
+  );
+
   ffmpeg-python = super.ffmpeg-python.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
@@ -1228,10 +1324,20 @@ self: super:
     }
   );
 
+  pyusb = super.pyusb.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        libusb=${pkgs.libusb1.out}/lib/libusb-1.0${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}
+        test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
+        sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py
+      '';
+    }
+  );
+
   pyzmq = super.pyzmq.overridePythonAttrs (
     old: {
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.zeromq ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ pkgs.zeromq ];
     }
   );
 
@@ -1298,7 +1404,7 @@ self: super:
     old:
     if old.format != "wheel" then {
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.gfortran ];
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pybind11 ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pybind11 ];
       setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
       enableParallelBuilding = true;
       buildInputs = (old.buildInputs or [ ]) ++ [ self.numpy.blas ];
@@ -1329,6 +1435,17 @@ self: super:
     }
   );
 
+  secp256k1 = super.secp256k1.overridePythonAttrs (old: {
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkgconfig pkgs.autoconf pkgs.automake pkgs.libtool ];
+    buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
+    doCheck = false;
+    # Local setuptools versions like "x.y.post0" confuse an internal check
+    postPatch = ''
+      substituteInPlace setup.py \
+        --replace 'setuptools_version.' '"${self.setuptools.version}".'
+    '';
+  });
+
   shapely = super.shapely.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.geos self.cython ];
@@ -1387,6 +1504,14 @@ self: super:
     }
   );
 
+  # The tokenizers build requires a complex rust setup (cf. nixpkgs override)
+  #
+  # Instead of providing a full source build, we use a wheel to keep
+  # the complexity manageable for now.
+  tokenizers = super.tokenizers.override {
+    preferWheel = true;
+  };
+
   torch = lib.makeOverridable
     ({ enableCuda ? false
      , cudatoolkit ? pkgs.cudatoolkit_10_1
@@ -1415,11 +1540,34 @@ self: super:
         propagatedBuildInputs = [
           self.numpy
           self.future
+          self.typing-extensions
         ];
       })
     )
     { };
 
+  torchvision = lib.makeOverridable
+    ({ enableCuda ? false
+     , cudatoolkit ? pkgs.cudatoolkit_10_1
+     , pkg ? super.torchvision
+     }: pkg.overrideAttrs (old: {
+
+      # without that autoPatchelfHook will fail because cudatoolkit is not in LD_LIBRARY_PATH
+      autoPatchelfIgnoreMissingDeps = true;
+      buildInputs = (old.buildInputs or [ ])
+        ++ [ self.torch ]
+        ++ lib.optionals enableCuda [
+        cudatoolkit
+      ];
+      preConfigure =
+        if (enableCuda) then ''
+          export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib:${lib.makeLibraryPath [ cudatoolkit "${cudatoolkit}" ]}"
+        '' else ''
+          export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib"
+        '';
+    }))
+    { };
+
   typeguard = super.typeguard.overridePythonAttrs (old: {
     postPatch = ''
       substituteInPlace setup.py \
@@ -1427,12 +1575,18 @@ self: super:
     '';
   });
 
+  typed_ast = super.typed-ast.overridePythonAttrs (old: {
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
+      self.pytest-runner
+    ];
+  });
+
   # nix uses a dash, poetry uses an underscore
   typing_extensions = super.typing_extensions or self.typing-extensions;
 
   urwidtrees = super.urwidtrees.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
         self.urwid
       ];
     }
@@ -1476,6 +1630,7 @@ self: super:
   weasyprint = super.weasyprint.overridePythonAttrs (
     old: {
       inherit (pkgs.python3.pkgs.weasyprint) patches;
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ];
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
     }
   );
@@ -1524,7 +1679,7 @@ self: super:
       ) else super.zipp
   ).overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
         self.toml
       ];
     }
@@ -1551,9 +1706,38 @@ self: super:
     }
   );
 
+  psutil = super.psutil.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++
+        lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.IOKit;
+    }
+  );
+
+  sentencepiece = super.sentencepiece.overridePythonAttrs (
+    old: {
+      dontUseCmakeConfigure = true;
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
+        pkgs.pkg-config
+        pkgs.cmake
+        pkgs.gperftools
+      ];
+      buildInputs = (old.buildInputs or [ ]) ++ [
+        pkgs.sentencepiece
+      ];
+    }
+  );
+
+  sentence-transformers = super.sentence-transformers.overridePythonAttrs (
+    old: {
+      buildInputs =
+        (old.buildInputs or [ ])
+        ++ [ self.typing-extensions ];
+    }
+  );
+
   supervisor = super.supervisor.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
         self.meld3
         self.setuptools
       ];
@@ -1562,7 +1746,7 @@ self: super:
 
   cytoolz = super.cytoolz.overridePythonAttrs (
     old: {
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.toolz ];
+      propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.toolz ];
     }
   );
 
@@ -1607,5 +1791,52 @@ self: super:
     }
   );
 
+  wxpython = super.wxpython.overridePythonAttrs (old:
+    let
+      localPython = self.python.withPackages (ps: with ps; [
+        setuptools
+        numpy
+        six
+      ]);
+    in
+    {
+      DOXYGEN = "${pkgs.doxygen}/bin/doxygen";
+
+      nativeBuildInputs = with pkgs; [
+        which
+        doxygen
+        gtk3
+        pkg-config
+        autoPatchelfHook
+      ] ++ (old.nativeBuildInputs or [ ]);
+
+      buildInputs = with pkgs; [
+        gtk3
+        webkitgtk
+        ncurses
+        SDL2
+        xorg.libXinerama
+        xorg.libSM
+        xorg.libXxf86vm
+        xorg.libXtst
+        xorg.xorgproto
+        gst_all_1.gstreamer
+        gst_all_1.gst-plugins-base
+        libGLU
+        libGL
+        libglvnd
+        mesa
+      ] ++ old.buildInputs;
+
+      buildPhase = ''
+        ${localPython.interpreter} build.py -v build_wx
+        ${localPython.interpreter} build.py -v dox etg --nodoc sip
+        ${localPython.interpreter} build.py -v build_py
+      '';
+
+      installPhase = ''
+        ${localPython.interpreter} setup.py install --skip-build --prefix=$out
+      '';
+    });
 
 }
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
index dc9cd2936d06..a5ec51a1345b 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
@@ -129,7 +129,7 @@ let
         if exprs.type == "expr" then
           (
             let
-              mVal = ''[a-zA-Z0-9\'"_\. ]+'';
+              mVal = ''[a-zA-Z0-9\'"_\. \-]+'';
               mOp = "in|[!=<>]+";
               e = stripStr exprs.value;
               m = builtins.map stripStr (builtins.match ''^(${mVal}) *(${mOp}) *(${mVal})$'' e);
diff --git a/nixpkgs/pkgs/development/tools/pqrs/default.nix b/nixpkgs/pkgs/development/tools/pqrs/default.nix
index fb91709bde03..24efea2036a6 100644
--- a/nixpkgs/pkgs/development/tools/pqrs/default.nix
+++ b/nixpkgs/pkgs/development/tools/pqrs/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1vx952ki1rhwfmr3faxs363m9fh61b37b0bkbs57ggn9r44sk1z2";
   };
 
-  cargoSha256 = "1c482y83gzpvazdsxsx5n509mkqmyz640s18y4yg928mmqbsz9c4";
+  cargoSha256 = "0mjwazsnryhlfyzcik8052q0imz5f104x86k6b5rncbbbjaj17q1";
 
   meta = with lib; {
     description = "CLI tool to inspect Parquet files";
diff --git a/nixpkgs/pkgs/development/tools/profiling/sysprof/capture.nix b/nixpkgs/pkgs/development/tools/profiling/sysprof/capture.nix
index a9443eeadf6e..2d33dedbdd25 100644
--- a/nixpkgs/pkgs/development/tools/profiling/sysprof/capture.nix
+++ b/nixpkgs/pkgs/development/tools/profiling/sysprof/capture.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = sysprof.meta // {
     description = "Static library for Sysprof capture data generation";
+    license = lib.licenses.bsd2Patent;
     platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix b/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
index 9e749adea209..6ceda016045b 100644
--- a/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
+++ b/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
@@ -5,6 +5,7 @@
 , gettext
 , glib
 , gtk3
+, json-glib
 , itstool
 , libdazzle
 , libxml2
@@ -15,18 +16,18 @@
 , shared-mime-info
 , systemd
 , wrapGAppsHook
-, gnome3
+, gnome
 }:
 
 stdenv.mkDerivation rec {
   pname = "sysprof";
-  version = "3.38.1";
+  version = "3.40.1";
 
   outputs = [ "out" "lib" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1z2i9187f2jx456l7h07wy8m9a0p7pj3xiv1aji3snq7rjb1lkj0";
+    sha256 = "0dvlzjwi3a4g37cpyhqpf41f5hypf0gim1jw9wqlv30flbb00l62";
   };
 
   nativeBuildInputs = [
@@ -39,17 +40,27 @@ stdenv.mkDerivation rec {
     pkg-config
     shared-mime-info
     wrapGAppsHook
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    json-glib
+    pango
+    polkit
+    systemd
+    libdazzle
   ];
-  buildInputs = [ glib gtk3 pango polkit systemd.dev (lib.getLib systemd) libdazzle ];
 
   mesonFlags = [
     "-Dsystemdunitdir=lib/systemd/system"
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
@@ -65,6 +76,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix
index 40aa45a30085..6fd939d00237 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix
@@ -24,6 +24,5 @@ buildGoPackage rec {
     description = "The Go language implementation of gRPC. HTTP/2 based RPC";
     license = licenses.asl20;
     maintainers = [ maintainers.raboof ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
index 6ca016f8e6bd..5db843e6f61f 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "protoc-gen-twirp";
-  version = "7.2.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "twitchtv";
     repo = "twirp";
     rev = "v${version}";
-    sha256 = "sha256-W7t36F1St0YLPowHaZSboVNnvX7E2Lg5tPWeyeUSabA=";
+    sha256 = "sha256-lwozRwH96nh4Zlf6ggOF+FuUEfxkN38wxygg5HXw/M0=";
   };
 
   goPackagePath = "github.com/twitchtv/twirp";
diff --git a/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix b/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
index ed8da83e30a5..0bd33f19f8e9 100644
--- a/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
+++ b/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
@@ -1,37 +1,38 @@
+# This has been automatically generated by the script
+# ./update.sh.  This should not be changed by hand.
 { mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool
-, base, bower-json, bytestring, Cabal, containers, cryptonite
-, dhall, directory, either, extra, fetchgit, file-embed, filepath
-, foldl, fsnotify, generic-lens, Glob, hpack, hspec, hspec-discover
+, base, bower-json, bytestring, containers, cryptonite, dhall
+, directory, either, extra, fetchgit, file-embed, filepath, foldl
+, fsnotify, generic-lens, Glob, hspec, hspec-discover
 , hspec-megaparsec, http-client, http-conduit, http-types
 , lens-family-core, lib, megaparsec, mtl, network-uri, open-browser
 , optparse-applicative, prettyprinter, process, QuickCheck, retry
-, rio, rio-orphans, safe, semver-range, stm, stringsearch
-, tar, template-haskell, temporary, text, time, transformers
-, turtle, unliftio, unordered-containers, utf8-string, versions
-, with-utf8, zlib
+, rio, rio-orphans, safe, semver-range, stm, stringsearch, tar
+, template-haskell, temporary, text, time, transformers, turtle
+, unliftio, unordered-containers, utf8-string, versions, with-utf8
+, zlib
 }:
 mkDerivation {
   pname = "spago";
-  version = "0.20.1";
+  version = "0.20.2";
   src = fetchgit {
     url = "https://github.com/purescript/spago.git";
-    sha256 = "1j2yi6zz9m0k0298wllin39h244v8b2rx87yxxgdbjg77kn96vxg";
-    rev = "41ad739614f4f2c2356ac921308f9475a5a918f4";
+    sha256 = "11jh3bszvl8zfi4xcabpx43jply28dxdywd6fadxspaa05jdxxn2";
+    rev = "0f38c9153e46f30e9d87963e181f5c1a595f4b64";
     fetchSubmodules = true;
   };
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
     aeson aeson-pretty ansi-terminal async-pool base bower-json
-    bytestring Cabal containers cryptonite dhall directory either
-    file-embed filepath foldl fsnotify generic-lens Glob http-client
-    http-conduit http-types lens-family-core megaparsec mtl network-uri
-    open-browser optparse-applicative prettyprinter process retry rio
-    rio-orphans safe semver-range stm stringsearch tar template-haskell
-    temporary text time transformers turtle unliftio
-    unordered-containers utf8-string versions with-utf8 zlib
+    bytestring containers cryptonite dhall directory either file-embed
+    filepath foldl fsnotify generic-lens Glob http-client http-conduit
+    http-types lens-family-core megaparsec mtl network-uri open-browser
+    optparse-applicative prettyprinter process retry rio rio-orphans
+    safe semver-range stm stringsearch tar template-haskell temporary
+    text time transformers turtle unliftio unordered-containers
+    utf8-string versions with-utf8 zlib
   ];
-  libraryToolDepends = [ hpack ];
   executableHaskellDepends = [
     ansi-terminal base text turtle with-utf8
   ];
@@ -40,7 +41,6 @@ mkDerivation {
     process QuickCheck temporary text turtle versions
   ];
   testToolDepends = [ hspec-discover ];
-  prePatch = "hpack";
   homepage = "https://github.com/purescript/spago#readme";
   license = lib.licenses.bsd3;
 }
diff --git a/nixpkgs/pkgs/development/tools/purescript/spago/update.sh b/nixpkgs/pkgs/development/tools/purescript/spago/update.sh
index 74bc01050662..12595885df3c 100755
--- a/nixpkgs/pkgs/development/tools/purescript/spago/update.sh
+++ b/nixpkgs/pkgs/development/tools/purescript/spago/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p cabal2nix curl jq
+#!nix-shell -i bash -p cabal2nix curl jq haskellPackages.cabal2nix-unstable -I nixpkgs=.
 #
 # This script will update the spago derivation to the latest version using
 # cabal2nix.
@@ -25,7 +25,10 @@ new_version=$(curl --silent "https://api.github.com/repos/purescript/spago/relea
 echo "Updating spago from old version $old_version to new version $new_version."
 echo "Running cabal2nix and outputting to ${spago_derivation_file}..."
 
-cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" > "$spago_derivation_file"
+echo "# This has been automatically generated by the script" > "$spago_derivation_file"
+echo "# ./update.sh.  This should not be changed by hand." >> "$spago_derivation_file"
+
+cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" >> "$spago_derivation_file"
 
 # TODO: This should ideally also automatically update the docsSearchVersion
 # from pkgs/development/haskell/configuration-nix.nix.
diff --git a/nixpkgs/pkgs/development/tools/py-spy/default.nix b/nixpkgs/pkgs/development/tools/py-spy/default.nix
index 89480f53a375..94c706c02106 100644
--- a/nixpkgs/pkgs/development/tools/py-spy/default.nix
+++ b/nixpkgs/pkgs/development/tools/py-spy/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   checkInputs = [ python3 ];
 
-  cargoSha256 = "sha256-GFH8RzyAMtdfoHPcCV3pKf24fKU65vhMLQfLtkhD0Ns=";
+  cargoSha256 = "sha256-hmqrVGNu3zb109TQfhLI3wvGVnlc4CfbkrIKMfRSn7M=";
 
   meta = with lib; {
     description = "Sampling profiler for Python programs";
diff --git a/nixpkgs/pkgs/development/tools/pypi2nix/default.nix b/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
index 980aa0f09ea5..04d61995d3f7 100644
--- a/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
@@ -20,4 +20,6 @@ pkgs.buildPythonApplication rec {
     toml
     jsonschema
   ];
+  # https://github.com/nix-community/pypi2nix/issues/460
+  meta.broken = true;
 }
diff --git a/nixpkgs/pkgs/development/tools/qtcreator/default.nix b/nixpkgs/pkgs/development/tools/qtcreator/default.nix
index dc5699ed3739..2b0227407da2 100644
--- a/nixpkgs/pkgs/development/tools/qtcreator/default.nix
+++ b/nixpkgs/pkgs/development/tools/qtcreator/default.nix
@@ -64,7 +64,7 @@ mkDerivation rec {
 
     # Fix paths to libclang library.
     substituteInPlace src/shared/clang/clang_installation.pri \
-      --replace 'LIBCLANG_LIBS = -L$${LLVM_LIBDIR}' 'LIBCLANG_LIBS = -L${llvmPackages_8.libclang}/lib' \
+      --replace 'LIBCLANG_LIBS = -L$${LLVM_LIBDIR}' 'LIBCLANG_LIBS = -L${llvmPackages_8.libclang.lib}/lib' \
       --replace 'LIBCLANG_LIBS += $${CLANG_LIB}' 'LIBCLANG_LIBS += -lclang' \
       --replace 'LIBTOOLING_LIBS = -L$${LLVM_LIBDIR}' 'LIBTOOLING_LIBS = -L${clang_qt_vendor}/lib' \
       --replace 'LLVM_CXXFLAGS ~= s,-gsplit-dwarf,' '${lib.concatStringsSep "\n" ["LLVM_CXXFLAGS ~= s,-gsplit-dwarf," "    LLVM_CXXFLAGS += -fno-rtti"]}'
diff --git a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
index ae1ac3e39f3e..1db72dc1c8ff 100644
--- a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
+++ b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, unzip, cairo, xorg, gdk-pixbuf, fontconfig, pango, gnome3, atk, at-spi2-atk, at-spi2-core
-, gtk3, glib, freetype, dbus, nss, nspr, alsaLib, cups, expat, udev, makeDesktopItem
+{ lib, stdenv, fetchurl, unzip, cairo, xorg, gdk-pixbuf, fontconfig, pango, gnome, atk, at-spi2-atk, at-spi2-core
+, gtk3, glib, freetype, dbus, nss, nspr, alsa-lib, cups, expat, udev, makeDesktopItem
 }:
 
 let
@@ -16,7 +16,7 @@ let
     dbus
     nss
     nspr
-    alsaLib
+    alsa-lib
     cups
     expat
     udev
diff --git a/nixpkgs/pkgs/development/tools/rebazel/default.nix b/nixpkgs/pkgs/development/tools/rebazel/default.nix
index 73a58ee100bf..5dee0a1b9e86 100644
--- a/nixpkgs/pkgs/development/tools/rebazel/default.nix
+++ b/nixpkgs/pkgs/development/tools/rebazel/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-v84ZXhtJpejQmP61NmP06+qrtMu/0yb7UyD7U12xlME=";
   };
 
-  cargoSha256 = "sha256-2FmtbvtNfNoocj3Ly553KBLfOgBAa/eAxOrfZ3NGzzw=";
+  cargoSha256 = "sha256-cBAm8LyNKEVJkhZJ+QZU5XtQutb1oNvad8xH70Bi2LM=";
 
   meta = with lib; {
     description = "tool for expediting bazel build workflows";
diff --git a/nixpkgs/pkgs/development/tools/rep/default.nix b/nixpkgs/pkgs/development/tools/rep/default.nix
index bc73c3927771..0b1294abd1ef 100644
--- a/nixpkgs/pkgs/development/tools/rep/default.nix
+++ b/nixpkgs/pkgs/development/tools/rep/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rep";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "eraserhd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p0dbaj7f4irzzw1m44x3b3j3jjij9i4rs83wkrpiamlq61077di";
+    sha256 = "pqmISVm3rYGxRuwKieVpRwXE8ufWnBHEA6h2hrob51s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/rgp/default.nix b/nixpkgs/pkgs/development/tools/rgp/default.nix
index 3cfd608e2258..7b49a83b1ccf 100644
--- a/nixpkgs/pkgs/development/tools/rgp/default.nix
+++ b/nixpkgs/pkgs/development/tools/rgp/default.nix
@@ -19,15 +19,15 @@
 }:
 
 let
-  buildNum = "2020-11-19-376";
+  buildNum = "2021-03-31-696";
 in
 stdenv.mkDerivation rec {
   pname = "rgp";
-  version = "1.9";
+  version = "1.10";
 
   src = fetchurl {
     url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz";
-    sha256 = "f71ibuMerd0SmXKSDjaTj7xtyy1dWzkZ5s0PlGtQ1+k=";
+    sha256 = "1GUV75KpYbeq7KkE86QqTfGnf/t3VEgviaAsbg/LWJI=";
   };
 
   nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
@@ -59,6 +59,9 @@ stdenv.mkDerivation rec {
     mkdir -p $out/opt/rgp $out/bin
     cp -r . $out/opt/rgp/
 
+    chmod +x $out/opt/rgp/scripts/*
+    patchShebangs $out/opt/rgp/scripts
+
     for prog in RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI RadeonGPUAnalyzer RadeonGPUProfiler rga rtda; do
       # makeWrapper is needed so that executables are started from the opt
       # directory, where qt.conf and other tools are
diff --git a/nixpkgs/pkgs/development/tools/richgo/default.nix b/nixpkgs/pkgs/development/tools/richgo/default.nix
index 81a912171f33..f36c84c1ee09 100644
--- a/nixpkgs/pkgs/development/tools/richgo/default.nix
+++ b/nixpkgs/pkgs/development/tools/richgo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "richgo";
-  version = "0.3.3";
+  version = "0.3.6";
 
   src = fetchFromGitHub {
     owner = "kyoh86";
     repo = "richgo";
     rev = "v${version}";
-    sha256 = "07ipa54c4mzm6yizgvkm6x5yim1xgv3f0xdxg35qziacdfcwd6m4";
+    sha256 = "sha256-ehhrJlB0XzLHkspvP6vL8MtrjE12baBFkbqWMD41/Sg=";
   };
 
-  vendorSha256 = "1nvk3akjwfcbvif1w4cglsqplcajlwq3mnvk9b75nmn9qaqfbfjf";
+  vendorSha256 = "sha256-986Abeeb1MHB/0yN1oud6t8wHD5B5MisRHKZcwOq4tU=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix b/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix
index e938526ecbfb..98670e9e1845 100644
--- a/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0fy620c34kxl27sd62x9mj0555bcdmnmbsxavmyiwb497z1m9wnn";
   };
 
-  cargoSha256 = "0xmaa7rds7hlagfxj65pv9vgflcv4nwbwbw4g7cyj88cbb1kbxxj";
+  cargoSha256 = "1akapxrh38g44531r25dgik8y5qyy9y6zb031hg8v61px2ajs39s";
 
   meta = with lib; {
     description = "A work-in-progress language server for Nix, with syntax checking and basic completion";
diff --git a/nixpkgs/pkgs/development/tools/roswell/default.nix b/nixpkgs/pkgs/development/tools/roswell/default.nix
new file mode 100644
index 000000000000..98445ea875a4
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/roswell/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, curl, autoconf, automake, makeWrapper, sbcl }:
+
+stdenv.mkDerivation rec {
+  pname = "roswell";
+  version = "21.01.14.108";
+
+  src = fetchFromGitHub {
+    owner = "roswell";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hj9q3ig7naky3pb3jkl9yjc9xkg0k7js3glxicv0aqffx9hkp3p";
+  };
+
+  preConfigure = ''
+    sh bootstrap
+  '';
+
+  configureFlags = [ "--prefix=${placeholder "out"}" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/ros \
+      --add-flags 'lisp=sbcl-bin/system sbcl-bin.version=system' \
+      --prefix PATH : ${lib.makeBinPath [ sbcl ]} --argv0 ros
+  '';
+
+  nativeBuildInputs = [ autoconf automake makeWrapper ];
+
+  buildInputs = [ sbcl curl ];
+
+  meta = with lib; {
+    description = "Roswell is a Lisp implementation installer/manager, launcher, and much more";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hiro98 ];
+    platforms = platforms.linux;
+    homepage = "https://github.com/roswell/roswell";
+    mainProgram = "ros";
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rq/default.nix b/nixpkgs/pkgs/development/tools/rq/default.nix
index 838740d1fd0e..7d222e03bc97 100644
--- a/nixpkgs/pkgs/development/tools/rq/default.nix
+++ b/nixpkgs/pkgs/development/tools/rq/default.nix
@@ -11,13 +11,20 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0km9d751jr6c5qy4af6ks7nv3xfn13iqi03wq59a1c73rnf0zinp";
   };
 
-  cargoSha256 = "0c5vwy3c5ji602dj64z6jqvcpi2xff03zvjbnwihb3ydqwnb3v67";
+  cargoSha256 = "0071q08f75qrxdkbx1b9phqpbj15r79jbh391y32acifi7hr35hj";
 
-  buildInputs = [ llvmPackages.clang-unwrapped v8 ]
+  buildInputs = [ llvmPackages.libclang v8 ]
   ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
+  postPatch = ''
+    # Remove #[deny(warnings)] which is equivalent to -Werror in C.
+    # Prevents build failures when upgrading rustc, which may give more warnings.
+    substituteInPlace src/lib.rs \
+      --replace "#![deny(warnings)]" ""
+  '';
+
   configurePhase = ''
-    export LIBCLANG_PATH="${llvmPackages.clang-unwrapped}/lib"
+    export LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib"
     export V8_SOURCE="${v8}"
   '';
 
diff --git a/nixpkgs/pkgs/development/tools/rtags/default.nix b/nixpkgs/pkgs/development/tools/rtags/default.nix
index e5da0ddf59ac..6ecbe058328f 100644
--- a/nixpkgs/pkgs/development/tools/rtags/default.nix
+++ b/nixpkgs/pkgs/development/tools/rtags/default.nix
@@ -3,8 +3,8 @@
 stdenv.mkDerivation rec {
   pname = "rtags";
   version = "2.38";
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ llvmPackages.llvm openssl emacs ]
+  nativeBuildInputs = [ cmake pkg-config llvmPackages.llvm.dev ];
+  buildInputs = [ llvmPackages.llvm llvmPackages.libclang openssl emacs ]
     ++ lib.optionals stdenv.cc.isGNU [ llvmPackages.clang-unwrapped ]
     ++ lib.optionals stdenv.isDarwin [ apple_sdk.libs.xpc apple_sdk.frameworks.CoreServices ];
 
diff --git a/nixpkgs/pkgs/development/tools/rubocop/Gemfile b/nixpkgs/pkgs/development/tools/rubocop/Gemfile
deleted file mode 100644
index 18a39cab1c3e..000000000000
--- a/nixpkgs/pkgs/development/tools/rubocop/Gemfile
+++ /dev/null
@@ -1,2 +0,0 @@
-source 'https://rubygems.org'
-gem 'rubocop'
diff --git a/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock b/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock
deleted file mode 100644
index 61792b3ec580..000000000000
--- a/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock
+++ /dev/null
@@ -1,32 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    ast (2.4.2)
-    parallel (1.20.1)
-    parser (3.0.0.0)
-      ast (~> 2.4.1)
-    rainbow (3.0.0)
-    regexp_parser (2.1.1)
-    rexml (3.2.4)
-    rubocop (1.12.1)
-      parallel (~> 1.10)
-      parser (>= 3.0.0.0)
-      rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 1.8, < 3.0)
-      rexml
-      rubocop-ast (>= 1.2.0, < 2.0)
-      ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 3.0)
-    rubocop-ast (1.4.1)
-      parser (>= 2.7.1.5)
-    ruby-progressbar (1.11.0)
-    unicode-display_width (2.0.0)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  rubocop
-
-BUNDLED WITH
-   2.1.4
diff --git a/nixpkgs/pkgs/development/tools/rubocop/default.nix b/nixpkgs/pkgs/development/tools/rubocop/default.nix
deleted file mode 100644
index 2122236af5ee..000000000000
--- a/nixpkgs/pkgs/development/tools/rubocop/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
-
-bundlerEnv {
-  pname = "rubocop";
-
-  inherit ruby;
-
-  gemdir = ./.;
-
-  passthru.updateScript = bundlerUpdateScript "rubocop";
-
-  meta = with lib; {
-    description = "Automatic Ruby code style checking tool";
-    homepage = "https://rubocop.org/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ marsam leemachin ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/rubocop/gemset.nix b/nixpkgs/pkgs/development/tools/rubocop/gemset.nix
deleted file mode 100644
index a97937496280..000000000000
--- a/nixpkgs/pkgs/development/tools/rubocop/gemset.nix
+++ /dev/null
@@ -1,105 +0,0 @@
-{
-  ast = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
-      type = "gem";
-    };
-    version = "2.4.2";
-  };
-  parallel = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
-      type = "gem";
-    };
-    version = "1.20.1";
-  };
-  parser = {
-    dependencies = ["ast"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
-      type = "gem";
-    };
-    version = "3.0.0.0";
-  };
-  rainbow = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
-      type = "gem";
-    };
-    version = "3.0.0";
-  };
-  regexp_parser = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
-      type = "gem";
-    };
-    version = "2.1.1";
-  };
-  rexml = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
-      type = "gem";
-    };
-    version = "3.2.4";
-  };
-  rubocop = {
-    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0hi2c3a6alya9yx07nirnjzlc0mvmidnx67874njp6wf7d5xqqr9";
-      type = "gem";
-    };
-    version = "1.12.1";
-  };
-  rubocop-ast = {
-    dependencies = ["parser"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
-      type = "gem";
-    };
-    version = "1.4.1";
-  };
-  ruby-progressbar = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
-      type = "gem";
-    };
-    version = "1.11.0";
-  };
-  unicode-display_width = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1bilbnc8j6jkb59lrf177i3p1pdyxll0n8400hzqr35vl3r3kv2m";
-      type = "gem";
-    };
-    version = "2.0.0";
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix b/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
index 962e8c562c74..598d01a8af5f 100644
--- a/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-0d8+Rkb4h1DoFUQ7u2/kPR/fUUz0YvI+hNT4iXL3mxY=";
   };
 
-  cargoSha256 = "sha256-cUDOi3QwjEJaBXGSQZQ76gZ702QLNok8fr6U2q+tVao=";
+  cargoSha256 = "0r60smhlx1992a1s1k5sxjpdqllb2xsqcimgx3ldp5fdkfphk3cw";
 
   #for substituteAll
   libclang = llvmPackages.libclang.lib;
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   propagatedBuildInputs = [ clang ]; # to populate NIX_CXXSTDLIB_COMPILE
 
   configurePhase = ''
-    export LIBCLANG_PATH="${libclang}/lib"
+    export LIBCLANG_PATH="${libclang.lib}/lib"
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
index f453955a5c71..cd657967e9a0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1f6kzsmxgdms9lq5z9ynnmxymk9k2lzlp3caa52wqjvdw1grw0rb";
   };
 
-  cargoSha256 = "0d797cisiydblh64vqpfdjf37wmxrvs77phdrqh582lbrvnfhx2j";
+  cargoSha256 = "1c22aal3i7zbyxr2c41fimfx13fwp9anmhh641951yd7cqb8xij2";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-binutils/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-binutils/default.nix
index 8b40d9b686d9..f499512ce532 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-binutils/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-binutils/default.nix
@@ -5,23 +5,28 @@ rustPlatform.buildRustPackage rec {
   version = "0.3.3";
 
   # Upstream doesn't commit `Cargo.lock`, see https://github.com/rust-embedded/cargo-binutils/pull/99
-  src = let
-    repo = fetchFromGitHub {
-      owner = "rust-embedded";
-      repo = pname;
-      rev = "v${version}";
-      sha256 = "sha256-Dgn+f4aSsDSh+RC8yvt3ydkdtwib5jEVsnZkod5c7Vo=";
-    };
-  in runCommand "source" { } ''
-    cp -R ${repo} $out
-    chmod -R +w $out
-    cp ${./Cargo.lock} $out/Cargo.lock
-  '';
+  src =
+    let
+      repo = fetchFromGitHub {
+        owner = "rust-embedded";
+        repo = pname;
+        rev = "v${version}";
+        sha256 = "sha256-Dgn+f4aSsDSh+RC8yvt3ydkdtwib5jEVsnZkod5c7Vo=";
+      };
+    in
+    runCommand "source" { } ''
+      cp -R ${repo} $out
+      chmod -R +w $out
+      cp ${./Cargo.lock} $out/Cargo.lock
+    '';
 
-  cargoSha256 = "sha256-Zrl269PacPi81TrGTIDzmVndgGY5i5lYyspiOj43rpw=";
+  cargoSha256 = "sha256-6du86HxkDQAeIXScXBKuv0j4YZiG4O6IwVIXZnJgTO8=";
 
   meta = with lib; {
-    description = "Cargo subcommands to invoke the LLVM tools shipped with the Rust toolchain";
+    description = "Cargo subcommands to invoke the LLVM tools shipped with the Rust toolchain.";
+    longDescription = ''
+      In order for this to work, you either need to run `rustup component add llvm-tools-preview` or install the `llvm-tools-preview` component using your Nix library (e.g. nixpkgs-mozilla, or rust-overlay)
+    '';
     homepage = "https://github.com/rust-embedded/cargo-binutils";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ stupremee ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/0001-dynamically-patchelf-binaries.patch b/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/0001-dynamically-patchelf-binaries.patch
new file mode 100644
index 000000000000..6a4967e96054
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/0001-dynamically-patchelf-binaries.patch
@@ -0,0 +1,56 @@
+diff --git a/src/toolchains.rs b/src/toolchains.rs
+index 4d85e7c..b1353c6 100644
+--- a/src/toolchains.rs
++++ b/src/toolchains.rs
+@@ -259,6 +259,8 @@ impl Toolchain {
+             .map_err(InstallError::Download)?;
+         }
+
++        nix_patchelf(tmpdir.path().to_path_buf())
++            .expect("failed to patch toolchain for NixOS");
+         fs::rename(tmpdir.into_path(), dest).map_err(InstallError::Move)?;
+
+         Ok(())
+@@ -557,3 +559,42 @@ pub(crate) fn download_tarball(
+     }
+     download_tar_gz(client, name, &format!("{}.gz", url,), strip_prefix, dest)
+ }
++
++fn nix_patchelf(mut toolchain_path: PathBuf) -> Result<(), Error> {
++    toolchain_path.push("bin");
++
++    for entry in toolchain_path.read_dir()? {
++        let entry = entry?;
++        if !entry.file_type()?.is_file() {
++            continue;
++        }
++
++        eprintln!("info: you seem to be running NixOS. Attempting to patch {}",
++                  entry.path().to_str().unwrap());
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-interpreter")
++            .arg("@dynamicLinker@")
++            .arg(entry.path())
++            .output();
++    }
++
++    toolchain_path.pop();
++    toolchain_path.push("lib");
++
++    for entry in toolchain_path.read_dir()? {
++        let entry = entry?;
++        if !entry.file_type()?.is_file() {
++            continue;
++        }
++
++        eprintln!("info: you seem to be running NixOS. Attempting to patch {}",
++                  entry.path().to_str().unwrap());
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-rpath")
++            .arg("@libPath@")
++            .arg(entry.path())
++            .output();
++    }
++
++    Ok(())
++}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
new file mode 100644
index 000000000000..7eef0ce66299
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, runCommand
+, patchelf
+, zlib
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-bisect-rustc";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "rust-lang";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-LEmILWVU6hbh2FmdnQVV1Ob2MQvj+/lCr1hdRoTIOkI=";
+  };
+
+  patches =
+    let
+      patchelfPatch = runCommand "0001-dynamically-patchelf-binaries.patch" {
+        CC = stdenv.cc;
+        patchelf = patchelf;
+        libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
+      }
+      ''
+        export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+        substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+          --subst-var patchelf \
+          --subst-var dynamicLinker \
+          --subst-var libPath
+      '';
+    in
+    lib.optionals stdenv.isLinux [ patchelfPatch ];
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    Security
+  ];
+
+  cargoSha256 = "Ls51DQ0yScRhpkuEInCfR45+/WeaUoG935w4BJvwSRk=";
+
+  meta = with lib; {
+    description = "Bisects rustc, either nightlies or CI artifacts";
+    homepage = "https://github.com/rust-lang/${pname}";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ davidtwco ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix
new file mode 100644
index 000000000000..ee29976eb985
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix
@@ -0,0 +1,26 @@
+{ lib, pkg-config, rustPlatform, fetchFromGitHub, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-bitbake";
+  version = "0.3.15";
+
+  src = fetchFromGitHub {
+    owner = "meta-rust";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ffjkwaqvmyz374azrv6gna19z2fcg82is2k2n2gm50isbxw2aa5";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ];
+
+  cargoSha256 = "0mm6059wjh5p8923dwz55dpwi55gq2bcmpx7kn40pq5ppkiqjiw9";
+
+  meta = with lib; {
+    description = "Cargo extension that can generate BitBake recipes utilizing the classes from meta-rust";
+    homepage = "https://github.com/meta-rust/cargo-bitbake";
+    license = with licenses; [ mit asl20 ];
+    maintainers = with maintainers; [ rvarago ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
index 51d19f5ad6fd..c0baf9f39645 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0bqzzh8vfqm7dpnb0fv4calnhsg9p3c5j06ycvg621p4zp4fydh2";
   };
 
-  cargoSha256 = "1323lcl8fa21pgx3jhwl4w9f8qz3jjxb5qdvib9jdzqxnnw320xs";
+  cargoSha256 = "0f7hmwrs99qdvhn4lvs8cqva68w2y04fy3ca1xlhk7ncdmclcc4g";
 
   meta = with lib; {
     description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
index 8d12da30a6f2..9458cb030a7c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "1rmhg9xhljgd5yq3xs0fzw1b0bgz7jfpf5mr2gviwqahl5vxvfiq";
+  cargoSha256 = "0pxakfiidxfczh3harnjhb1zv340r812jxzwam8z2kyw3mkyhh8z";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
@@ -45,6 +45,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/lu-zero/cargo-c/releases/tag/v${version}";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
index 71d4646c1a11..092a0a10b1a0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-cache";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "matthiaskrgr";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qRwyNSAYuAnU17o/5zqKuvixQw7xfA6wNVzN6QRbZlY=";
+    sha256 = "sha256-/xP6TQcLyY1XC8r5SCkwej/I6fMaV5PqNNuvK1WbmeM=";
   };
 
-  cargoSha256 = "sha256-OpqVP097GYiARq7gbsMGFFGkFaQz3qeux12aMJj7W3Y=";
+  cargoSha256 = "sha256-1ZNbqydRsXmMGLhqPrgNAE8bhpZCMAJO/YQbOvtiS/s=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
index 57866918f07e..9e95ee4430cc 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.19.2";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-aqvdAljAJsYtmxz/WtMrrnmJJRXDpqDjUn1LusoM8ns=";
+    sha256 = "sha256-XwwzMo06TdyOtGE9Z48mkEr6DnB/89wtMrW+UWr0G/Q=";
   };
 
-  cargoSha256 = "sha256-KwnZmehh0vdR1eSPBrY6yHJR6r7mhIEgfN4soEBDTjU=";
+  cargoSha256 = "sha256-gA2Fg4CCi0W+GqJoNPZWw/OjNYh2U2UsC6eMZ9W1QN8=";
 
   nativeBuildInputs = [ perl pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
index 664f3688eaf3..38723bbf3c1c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-NiuK+PexfF2wmA8drqqkv/RQlVwYLT3q2QWvV0ghJwg=";
   };
 
-  cargoSha256 = "sha256-A6Kkm/4MSAEJfehA6zSQJU+JwVIhKPcfMZCO9S6Zyx4=";
+  cargoSha256 = "sha256-5Z9Oz8jjyM3+cHAZ++thRDdNlb0Kj54Mg7JjF9JrLdw=";
 
   meta = with lib; {
     description = "Cargo extension for running Criterion.rs benchmarks";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix
index f7ce0283f6ff..276d6e50eeed 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-cross/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256:1py5w4kf612x4qxi190ilsrx0zzwdzk9i47ppvqblska1s47qa2w";
   };
 
-  cargoSha256 = "sha256-3xSuTBcWRGn5HH7LnvwioeRWjehaPW1HCPjN5SUUVfo=";
+  cargoSha256 = "sha256-zk6cbN4iSHnyoeWupufVf2yQK6aq3S99uk9lqpjCw4c=";
 
   cargoPatches = [
     (fetchpatch {
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix
index 989885e99a74..4fb994b3ee2e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix
@@ -1,22 +1,24 @@
 { lib
 , rustPlatform, fetchFromGitHub
-, libusb1, pkg-config, rustfmt }:
+, libusb1, libftdi1, pkg-config, rustfmt }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-embed";
-  version = "0.8.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "probe-rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0klkgl7c42vhqxj6svw26lcr7rccq89bl17jn3p751x6281zvr35";
+    sha256 = "1z8n883cb4jca3phi9x2kwl01xclyr00l8jxgiyd28l2jik78i5k";
   };
 
-  cargoSha256 = "0w21q2fpr077m8jr24ld3qjimwk1m4fy9dh14fq9nv5xd4f5s8n8";
+  cargoSha256 = "1ir9qngxmja6cm42m40jqbga9mlfjllm23ca26wyigjv3025pi6i";
 
   nativeBuildInputs = [ pkg-config rustfmt ];
-  buildInputs = [ libusb1 ];
+  buildInputs = [ libusb1 libftdi1 ];
+
+  cargoBuildFlags = [ "--features=ftdi" ];
 
   meta = with lib; {
     description = "A cargo extension for working with microcontrollers";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
index 934976f73866..390850c9afa7 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -1,17 +1,19 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitHub, stdenv, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-6FjFG4RYvmsV/W7OMxj1ZWvruwUeP9Nvsdiv8toZmTk=";
+    sha256 = "sha256-8YppfgYa5Sd/3nPCMCgaM3A93ND0vU5eUoCW02uDkiM=";
   };
 
-  cargoSha256 = "sha256-1+A+n5VQS8zJULiR8IWLGo+RnFuVjg6ist8G3eCsXJM=";
+  cargoSha256 = "sha256-0lrz8awAtLuLWE6Prmi07iGfYVmNZIETv3QL55CPYHQ=";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description =
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
index 94b5000b9b62..062cb9f027d6 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitHub, stdenv, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-feature";
@@ -11,7 +11,9 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0n5kzh756ghfs3cydlcn9mfvpgwy1cjg41h0nd9dbi5cr1fp9x1n";
   };
 
-  cargoSha256 = "0nvl5smibl81b826xcsrjx8p89lcfpj7wqdsvywnj7jd3p5ag03n";
+  cargoSha256 = "1jh1h6v4mxx03b4diw9325ga0k3js0czs504lx07hvbx8yai1wkq";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description = "Allows conveniently modify features of crate";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix
index 39b56c2d656d..a2679b53c4b0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix
@@ -1,22 +1,29 @@
 { lib
-, rustPlatform, fetchFromGitHub
-, libusb1, pkg-config, rustfmt }:
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, libusb1
+, openssl
+, pkg-config
+, rustfmt
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-flash";
-  version = "0.8.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "probe-rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bcpv1r4pdpp22w7za7kdy7jl487x3nlwxiz6sqq3iq6wq3j9zj0";
+    sha256 = "sha256-aQ5647woODs/A4fcxSsQoQHL6YQ0TpfQFegtXETqlHk=";
   };
 
-  cargoSha256 = "1pf117fgw9x9diksqv58cw7i0kzmp25yj73y5ll69sk46b6z4j90";
+  cargoSha256 = "sha256-P7xyg9I1MhmiKlyAI9cvABcYKNxB6TSvTgMsMk5KxAQ=";
 
   nativeBuildInputs = [ pkg-config rustfmt ];
-  buildInputs = [ libusb1 ];
+  buildInputs = [ libusb1 openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
     description = "A cargo extension for working with microcontrollers";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
index 70a2e6feca64..43655fd6a89e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1jim5bgq3fc33391qpa1q1csbzqf4hk1qyfzwxpcs5pb4ixb6vgk";
   };
 
-  cargoSha256 = "181gcmaw2w5a6ah8a2ahsnc1zkadpmx1azkwh2a6x8myhzw2dxsj";
+  cargoSha256 = "1c2zryxn1bbg3ksp8azk9xmwfgwr6663hlmdv9c358hzqdfp9hli";
 
   # The tests need a GitHub API token.
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
index ced5d7cd583c..56a2962f0c92 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -1,17 +1,19 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ lib, fetchFromGitHub, rustPlatform, stdenv, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-fuzz";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "rust-fuzz";
     repo = "cargo-fuzz";
     rev = version;
-    sha256 = "sha256-kBbwE4ToUud5BDDlGoey2qpp2imzO6t3FcIbV3NTFa8=";
+    sha256 = "sha256-txlHXboQi3Z8AMIJJBZsBrCA7xggF0zGDpKqcD8UxMo=";
   };
 
-  cargoSha256 = "sha256-zqRlB2Kck4icMKzhaeeakEnn6O7zhoKPa5ZWbGooWIg=";
+  cargoSha256 = "sha256-eEfry6Q2YiIkNEHu6C8p17pUTF43eS1/iTP2oATZ/F8=";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
index 3b2702c66f64..bd71a14b4a04 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1z920p8i3gkjadyd6bqjk4i5yr5ds3m3sbcnf7plcqr69dsjr4b8";
   };
 
-  cargoSha256 = "1zh6fjfynkn4kgk1chigzd0sh4x1bagizyn7x6qyxgzc57a49bp7";
+  cargoSha256 = "1wf9758gyaxgyajjzy5phirg922n9wv0qmy67zjmxj56ayf0l9lm";
 
   checkPhase = ''
     ${cargo-insta}/bin/cargo-insta test
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
index e4eb2965fd6f..040109da3adb 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-RrDwq5VufMDsPlqRmBP3x2RUWU740L0L18noByO1IDY=";
   };
 
-  cargoSha256 = "sha256-W6+RGzCYJF9f44QaFDOI414/vCfKIuIOXoH+GYY0GwY=";
+  cargoSha256 = "sha256-/0pxEQFhovPRI4Knv5xq6+PHRuGN6+tF8CdK5X30LKI=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
index 9339660388b5..1644929074bb 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "1ryi5qi1zz2yljyj4rn84q9zkzafc9w4nw3zc01hlzpnb1sjw5sw";
+  cargoSha256 = "069i8ydrp1pssnjq7d6mydwr7xh2cmcpzpf8bzd6nfjr6xx1pipr";
 
   meta = with lib; {
     description = "See what Rust is doing behind the curtains";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
index e621fa9b9724..0c3773933545 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
@@ -1,22 +1,19 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitHub, libiconv, stdenv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-insta";
-  version = "0.16.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "mitsuhiko";
     repo = "insta";
     rev = version;
-    sha256 = "1lcbdzh139lhmpz3pyik8nbgrbfc42z9ydz2hkg2lzjdpfdsz3ag";
+    sha256 = "1qzzkhailxjqwp3rmdcpp112wn3x0gfi788vwj77pfdyclhpj0a7";
   };
 
-  cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "0qjzbcaznnmb0p0r23s82jjbfs5mhhkacg26lf8fq4vvlkr1hsqf";
-
-  patches = [ ./ignore-rustfmt-test.patch ];
-
-  cargoBuildFlags = [ "-p cargo-insta" ];
+  sourceRoot = "source/cargo-insta";
+  cargoSha256 = "01fj2j7ibrk5dyrfkmc610lh1p6f6bgzbgivq3dsd64vslhqmabw";
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta = with lib; {
     description = "A Cargo subcommand for snapshot testing";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch b/nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch
deleted file mode 100644
index 6c38158d5964..000000000000
--- a/nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/runtime.rs
-+++ b/src/runtime.rs
-@@ -85,6 +85,7 @@ fn format_rust_expression(value: &str) -> Cow<'_, str> {
- }
- 
- #[test]
-+#[ignore]
- fn test_format_rust_expression() {
-     use crate::assert_snapshot;
-     assert_snapshot!(format_rust_expression("vec![1,2,3]"), @"vec![1, 2, 3]");
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix
index 3ebe5ef13046..76f766685ab4 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-limit/default.nix
@@ -2,20 +2,24 @@
 , rustPlatform
 , fetchFromGitHub
 , nix-update-script
+, stdenv
+, libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-limit";
-  version = "0.0.7";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "alopatindev";
     repo = "cargo-limit";
     rev = version;
-    sha256 = "sha256-8HsYhWYeRhCPTxVnU8hOJKLXvza8i9KvKTLL6yLo0+c=";
+    sha256 = "sha256-OHBxQcXhZkJ1F6xLc7/sPpJhJzuJXb91IUjAtyC3XP8=";
   };
 
-  cargoSha256 = "sha256-8uA4oFExrzDMeMV5MacbtE0Awdfx+jUUkrKd7ushOHo=";
+  cargoSha256 = "sha256-LxqxRtMKUKZeuvk1caoYy8rv1bkEOQBM8i5SXMF4GXc=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   passthru = {
     updateScript = nix-update-script {
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
index 4300719147dd..2f20c66bbe25 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
@@ -13,11 +13,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.32.17";
+  version = "0.33.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-D/8fjJIyHCRzkomRsYUnGjDMCusjNX8ZYmLjowCYgcM=";
+    sha256 = "sha256-OnCSWAGcxQsLq5aQmd/15lAQmdsCGPqLeRYWXQG0oG0=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
 
-  cargoSha256 = "sha256-Upegh3W31sTaXl0iHZ3HiYs9urgXH/XhC0vQBAWvDIc=";
+  cargoSha256 = "sha256-BsE5+0bL9ctsdZ/PM1d6TfrXuzNMYHejoqA3bgH8140=";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix
new file mode 100644
index 000000000000..74c2d9e680f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, nix-update-script
+, pkg-config
+, openssl
+, stdenv
+, libiconv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-msrv";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "foresterre";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-DpgZrKy2rEKnI0/t4l3sDtNUhAwwFFSzq4CdRFqAkzY=";
+  };
+
+  cargoSha256 = "sha256-ny8EA3dkirxEiFYiSFRxHnjf3mVO2LCWVR8fPHX87Ek=";
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  # Integration tests fail
+  doCheck = false;
+
+  buildInputs = if stdenv.isDarwin
+    then [ libiconv Security ]
+    else [ openssl ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  meta = with lib; {
+    description = "Cargo subcommand \"msrv\": assists with finding your minimum supported Rust version (MSRV)";
+    homepage = "https://github.com/foresterre/cargo-msrv";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ otavio ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
index 5e12c1cae1d2..f5faed06faf9 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "01r00akfmvpzp924yqqybd9s0pwiwxy8vklsg4m9ypzljc3nlv02";
   };
 
-  cargoSha256 = "0fvsdyivq5991ka6avh12aqdkjx0myk61kmzlr19p2vlfpg70q07";
+  cargoSha256 = "1xkscd9ci9vlkmbsaxvavrna1xpi16xcf9ri879lw8bdh7sa3nx8";
 
   # some tests require internet access
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
index 2e75c08b42bb..0299fe516d94 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
@@ -19,7 +19,9 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ curl libgit2 openssl ]
     ++ lib.optional stdenv.isDarwin Security;
 
-  doCheck = true;
+  # thread 'main' panicked at 'Cannot ping mock server.: "cannot send request to mock server: cannot send request to mock server: failed to resolve host name"'
+  # __darwinAllowLocalNetworking does not fix the panic
+  doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
     description = "Generate Bazel BUILD files from Cargo dependencies";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix
index 358c58bef4d4..fb45763b50be 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-/ufHHM13L83M3UYi6mjdhIjgXx7bZgzvR/X02Zsx7Fw=";
   };
 
-  cargoSha256 = "sha256-QVRl6xCvztWi5zAs3PXYR4saTqO5nTBPIjdlMiMXFTM=";
+  cargoSha256 = "sha256-Isd05qOuVBNfXOI5qsaDOhjF7QIKAG5xrZsBFK2PpQQ=";
 
   patches = [
     (fetchpatch {
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix
new file mode 100644
index 000000000000..47d58e9b92ac
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, nix-update-script
+, makeWrapper
+, rr
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-rr";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "danielzfranklin";
+    repo = pname;
+    rev = version;
+    sha256 = "01m8fdz9as2fxnzs9csvbc76qxzbb98a66dh7w4a5q855v38g0zy";
+  };
+
+  cargoSha256 = "0fjs76n6bbbv83s213h2dgsszgxy4hbjsclyk9m81b3bfbmmb9sa";
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/cargo-rr --prefix PATH : ${lib.makeBinPath [ rr ]}
+  '';
+
+  meta = with lib; {
+    description = "Cargo subcommand \"rr\": a light wrapper around rr, the time-travelling debugger";
+    homepage = "https://github.com/danielzfranklin/cargo-rr";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ otavio ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
index f20bdb9cc174..9efa337f1b19 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-sweep";
-  version = "0.5.0";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "holmgr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zwdrh4z5x79qs8cwmwh3phzy4brw0ggv2qyf6pylv99vha5acyf";
+    sha256 = "sha256-tumcGnYqY/FGP8UWA0ccfdAK49LBcT8qH6SshrDXNAI=";
   };
 
-  cargoSha256 = "1sxjc64g8h77a3dvzb99f1f72zrak1nh4jgfjfkw4yc4dhkpyrmz";
+  cargoSha256 = "sha256-fcosKyGOy0SKrHbsKdxQJimelt1ByAM4YKo7WpHV8CA=";
 
   meta = with lib; {
     description = "A Cargo subcommand for cleaning up unused build files generated by Cargo";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
index 54f21ab46270..07c51c3163cb 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1c38q87fyfmj6nlwdpavb1xxpi26ncywkgqcwbvblad15c6ydcyc";
   };
 
-  cargoSha256 = "1x15q6wv5278hm3ns2wmw4i8602g35y1jyv1b8wa5i4dnh52dj83";
+  cargoSha256 = "0vrbgs49ghhl4z4ljhghcs9fnbf7qx1an9kwbrgv9wng8m1dccah";
 
   meta = with lib; {
     description = "A cargo plugin that generates a Markdown section in your README based on your Rust documentation";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
index 9fadea3f31cf..968a6ce457f1 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-udeps";
-  version = "0.1.20";
+  version = "0.1.21";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1gAkc8x9rl80xkFWR2iKYOjkHplWUPWQZDbE8U5gkOM=";
+    sha256 = "sha256-Voei7j3WRDu70NkcJvjqPJ4ikOUupOhvFNEHHRyF6/Q=";
   };
 
-  cargoSha256 = "sha256-APUQYqC0MYNeeuehkQvxQsjOnXBgvEMNBqfoUy2KH0U=";
+  cargoSha256 = "sha256-zMya7bEehNKIfwQtJ252sflg06P4Ra8/lgBjn4UUqRg=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
index 3cfea7274355..e1f26dc02b2e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-PltYUU2O/D1PrU+K8JN4+aUVLzHCeNyIsXMU6HLodXE=";
   };
 
-  cargoSha256 = "sha256-zR826fFSCSsJxGKSc7ugrLwMDvsjRBjs4eotKTfhGqI=";
+  cargoSha256 = "sha256-XiQGkZ6pfyGkNPjpcPoY66qBl7ABTcRHCBjgmXSRrL0=";
 
   passthru = {
     updateScript = nix-update-script {
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
index 43f13b2e9955..017fb7d484d4 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, CoreServices, rust }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, CoreServices, rust, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-watch";
-  version = "7.6.1";
+  version = "7.8.0";
 
   src = fetchFromGitHub {
     owner = "passcod";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vjX8xfwv/DOogji+OQCB9l5ebGBNoLW722TGpZ5Wg80=";
+    sha256 = "sha256-ZbVBwSg3roIMA+5LVP3omtTgbAJ7HAdJDXyAybWuRLw=";
   };
 
-  cargoSha256 = "sha256-ku+tI0DIofV0EZ413sPjbJDUSqwTxiT8NWBeURrJW1k=";
+  cargoSha256 = "sha256-6aoi/CLla/yKa5RuVgn8RJ9AK1j1wtZeBn+6tpXrJvA=";
 
-  buildInputs = lib.optional stdenv.isDarwin CoreServices;
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices libiconv ];
 
   # `test with_cargo` tries to call cargo-watch as a cargo subcommand
   # (calling cargo-watch with command `cargo watch`)
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
index 34440ce93058..7041f0ebd6cd 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0vki37pxngg15za9c1z61dc6sqk0j59s0qhcf9hplnym4ib5kqx1";
   };
 
-  cargoSha256 = "sha256-nNV7UXjKZNFmTqW4H0qsNuBW9XOP2V9nfotewtI9mYE";
+  cargoSha256 = "sha256-ZEkSj/JzXXTHjaxBVS5RDk/ECvOPPjzH4eS3CmlQA9I=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix
index c4c079c523b1..a59a124317b9 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-sVekfGHg2wspP5/zJzXTXupspwJr4hQBucY5+8iUjUQ=";
   };
 
-  cargoSha256 = "sha256-IzEurJcPoM/JMQlSL7N84wzZddNpynrsjQEOUNms2YQ=";
+  cargoSha256 = "sha256-EoXgsWg1Rh7C+fIqvefkLdck4Yj3kox2ZAU3kn6nH8Q=";
 
   passthru = {
     updateScript = nix-update-script {
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
index 8aa701779bc0..e8d62c9252f3 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "01whdjryz6zjsk4149h72w5xdjnkpcn5daf0xnsb59b0q38hjgg9";
   };
 
-  cargoSha256 = "1gcixzxca1yi4rvy55s986my6j0vx7n6fm1g5r4v4w0zgzlz4d89";
+  cargoSha256 = "036a50shzl6wdjk5wypkacx1kjwbyb4x1aqhbzgjgpxxxrf0lj16";
 
   meta = with lib; {
     description = "Automatically cross-compiles the sysroot crates core, compiler_builtins, and alloc";
diff --git a/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix b/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
index 5dad37d08168..c1bc2fb4c07b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-cbindgen";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    sha256 = "sha256-S3t1hv/mRn6vwyzT78DPIacqiJV3CnjGdOKsdSyYs8g=";
+    sha256 = "0753dklr5lm1dmk6hy5khh8k3xyr5srfsq11l07685h71j7z0r00";
   };
 
-  cargoSha256 = "sha256-uaeJmGEQHVSuILlYlJOHmRWWdN6FPvrHu6CbJyb60MY=";
+  cargoSha256 = "0qyw0iqin7i31kk23ddsmywk7z0xxpd5n4q6dr6mf44y35a8krm8";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
index b5a3486da71f..e68eea50ff3d 100644
--- a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   sourceRoot = "source/crate2nix";
 
-  cargoSha256 = "sha256-6V0ifH63/s5XLo4BCexPtvlUH0UQPHFW8YHF8OCH3ik=";
+  cargoSha256 = "sha256-shWhzCaH8ZttUcq82tA7T1hwNl6F1XJy7ansA5lt+Mw=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
index 28aeca4a0af1..5ab47c8aa8de 100644
--- a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
@@ -5,26 +5,27 @@
 , rustPlatform
 , pkg-config
 , dbus
+, libiconv
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "maturin";
-  version = "0.9.4";
+  version = "0.10.6";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    hash = "sha256-9emrBajFd0eLHcsd9Uf6MLCWqZFqxmZdWPBLGIYc2kU=";
+    hash = "sha256-qWDrdS1zxe5woQSKLHhDSGJ1KF4SHk1mhaQApJXCCO4=";
   };
 
-  cargoHash = "sha256-poMMEj+zrlU+v5axJbZai2kv36stEKgaciF4zd9A6Qg=";
+  cargoHash = "sha256-NEXgb7yWQkqbbofd3oYQ5n+CmfaM2cWj8HwufrcRKkc=";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = lib.optional stdenv.isLinux dbus
-    ++ lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isLinux [ dbus ]
+    ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
 
   # Requires network access, fails in sandbox.
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
index 41175ad8538a..a5713d944a80 100644
--- a/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
@@ -27,7 +27,7 @@ python.pkgs.buildPythonPackage rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src patches;
     name = "${pname}-${version}";
-    hash = "sha256-//TmozgWy9zrSpMKX92XdHj4fw/T1Elfgn4YhhR7ot0=";
+    hash = "sha256-u3L9nXHKILznyZTgxdvZyOCQZFZhuADrtI7zXYQzrbE=";
   };
 
   patches = [ ./Cargo.lock.patch ];
diff --git a/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix b/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix
index c4dc0c341078..262d8c4945eb 100644
--- a/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix
@@ -1,20 +1,22 @@
-{ lib, rustPlatform, fetchFromGitHub, pkg-config, libusb1 }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, libusb1
+, libiconv, AppKit, IOKit }:
 
 rustPlatform.buildRustPackage rec {
   pname = "probe-run";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "knurling-rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "QEUsigoSqVczrsSSDnOhTXm94JTXHgxeNY0tGsOaRyg=";
+    sha256 = "avaGBIKldr+1Zwq+7NOHt2wldmY/6Lb6bi9uVHZFI5Q=";
   };
 
-  cargoSha256 = "Fr5XWIUHXyfesouHi0Uryf/ZgB/rDDJ4G1BYGHw0QeQ=";
+  cargoSha256 = "HmDKfb8F6sGnaX64FR3No2GbBYm4bVopbjs8d35WiZQ=";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libusb1 ];
+  buildInputs = [ libusb1 ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv AppKit IOKit ];
 
   meta = with lib; {
     description = "Run embedded programs just like native ones.";
diff --git a/nixpkgs/pkgs/development/tools/rust/racer/default.nix b/nixpkgs/pkgs/development/tools/rust/racer/default.nix
index 3ad4b54b47a0..c4d0d605cf65 100644
--- a/nixpkgs/pkgs/development/tools/rust/racer/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/racer/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "racer";
-  version = "2.1.40";
+  version = "2.1.44";
 
   src = fetchFromGitHub {
     owner = "racer-rust";
     repo = "racer";
     rev = "v${version}";
-    sha256 = "sha256-8Is+RBfcXKbGSFzYoolLHs30rxlNI//xVGEOhxP2TV8=";
+    sha256 = "sha256-EmxJg2QDpGZ5TbMy9y6P11LdMucBdvewkRewuUzccGM=";
   };
 
-  cargoSha256 = "sha256-iUomr9viCdZk4nV75/OP8vHtJpMbmy+pq1IbaA2lLmE=";
+  cargoSha256 = "sha256-kKQnpEashpIwrXubuZIpU+tzxFaUjr6jaVunYPqaHnM=";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = lib.optional stdenv.isDarwin Security;
diff --git a/nixpkgs/pkgs/development/tools/rust/racerd/default.nix b/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
index 33d6721610e9..6ffa49aa6b9f 100644
--- a/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     })
   ];
 
-  cargoSha256 = "1z0dh2j9ik66i6nww3z7z2gw7nhc0b061zxbjzamk1jybpc845lq";
+  cargoSha256 = "08zn65c5ivhn2qs02aiixyqwhywrw8kfvs0kgzxdzsipic47n2qq";
 
   # a nightly compiler is required unless we use this cheat code.
   RUSTC_BOOTSTRAP=1;
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
index 4a30a70fa09a..8eca1fda2e5b 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -6,14 +6,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2021-04-19";
-  cargoSha256 = "sha256-CXkI3CQ/v6RBMM2Dpp2u+qnRwba+nqzeaPSJGBiQUoY=";
+  version = "2021-06-07";
+  cargoSha256 = "sha256-TyoCu2Q4Tr2EIWxQcjSxASni4dkeEVsfrF5UN7IVxSs=";
 
   src = fetchFromGitHub {
     owner = "rust-analyzer";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-W/cUwZEvlUXzqQ/futeNFwDWR/cTL/RLZaW2srIs83Q=";
+    sha256 = "sha256-f8jdBL42+bU8KKchkW4fF6+kDBjgpoOZyP5yOYsebBk=";
   };
 
   buildAndTestSubdir = "crates/rust-analyzer";
diff --git a/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/0001-dynamically-patchelf-binaries.patch b/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/0001-dynamically-patchelf-binaries.patch
new file mode 100644
index 000000000000..1754ce11c4d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/0001-dynamically-patchelf-binaries.patch
@@ -0,0 +1,61 @@
+diff --git a/src/main.rs b/src/main.rs
+index 3cb6896..7f070e0 100644
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -275,7 +275,9 @@ fn install_single_toolchain(
+
+     // install
+     if maybe_dry_client.is_some() {
+-        rename(&toolchain.dest, toolchain_path)?;
++        rename(&toolchain.dest, toolchain_path.clone())?;
++        nix_patchelf(toolchain_path)
++            .expect("failed to patch toolchain for NixOS");
+         eprintln!(
+             "toolchain `{}` is successfully installed!",
+             toolchain.dest.display()
+@@ -291,6 +293,45 @@ fn install_single_toolchain(
+     Ok(())
+ }
+
++fn nix_patchelf(mut toolchain_path: PathBuf) -> Result<(), Error> {
++    toolchain_path.push("bin");
++
++    for entry in toolchain_path.read_dir()? {
++        let entry = entry?;
++        if !entry.file_type()?.is_file() {
++            continue;
++        }
++
++        eprintln!("info: you seem to be running NixOS. Attempting to patch {}",
++                  entry.path().to_str().unwrap());
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-interpreter")
++            .arg("@dynamicLinker@")
++            .arg(entry.path())
++            .output();
++    }
++
++    toolchain_path.pop();
++    toolchain_path.push("lib");
++
++    for entry in toolchain_path.read_dir()? {
++        let entry = entry?;
++        if !entry.file_type()?.is_file() {
++            continue;
++        }
++
++        eprintln!("info: you seem to be running NixOS. Attempting to patch {}",
++                  entry.path().to_str().unwrap());
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-rpath")
++            .arg("@libPath@")
++            .arg(entry.path())
++            .output();
++    }
++
++    Ok(())
++}
++
+ fn fetch_master_commit(client: &Client, github_token: Option<&str>) -> Result<String, Error> {
+     eprintln!("fetching master commit hash... ");
+     fetch_master_commit_via_git()
diff --git a/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix b/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix
new file mode 100644
index 000000000000..cae5453fa661
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, runCommand
+, patchelf
+, zlib
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rustup-toolchain-install-master";
+  version = "1.7.3";
+
+  src = fetchFromGitHub {
+    owner = "kennytm";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-J25ER/g8Kylw/oTIEl4Gl8i1xmhR+4JM5M5EHpl1ras=";
+  };
+
+  patches =
+    let
+      patchelfPatch = runCommand "0001-dynamically-patchelf-binaries.patch" {
+        CC = stdenv.cc;
+        patchelf = patchelf;
+        libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
+      }
+      ''
+        export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+        substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+          --subst-var patchelf \
+          --subst-var dynamicLinker \
+          --subst-var libPath
+      '';
+    in
+    lib.optionals stdenv.isLinux [ patchelfPatch ];
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    Security
+  ];
+
+  cargoSha256 = "n7t8Ap9hdhrjmtKjfdyozf26J7yhu57pedm19CunLF4=";
+
+  meta = with lib; {
+    description = "Install a rustc master toolchain usable from rustup";
+    homepage = "https://github.com/kennytm/rustup-toolchain-install-master";
+    license = licenses.mit;
+    maintainers = with maintainers; [ davidtwco ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/rustup/default.nix b/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
index 56097f9b98c3..d18d1a0ec37b 100644
--- a/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
@@ -1,6 +1,18 @@
-{ stdenv, lib, runCommand, patchelf
-, fetchFromGitHub, rustPlatform, makeWrapper
-, pkg-config, curl, zlib, Security, CoreServices }:
+{ stdenv
+, lib
+, runCommand
+, patchelf
+, fetchFromGitHub
+, rustPlatform
+, makeWrapper
+, pkg-config
+, curl
+, zlib
+, Security
+, CoreServices
+, libiconv
+, xz
+}:
 
 let
   libPath = lib.makeLibraryPath [
@@ -10,32 +22,33 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "rustup";
-  version = "1.23.1";
+  version = "1.24.2";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rustup";
     rev = version;
-    sha256 = "1i3ipkq6j47bf9dh9j3axzj6z443jm4j651g38cxyrrx8b2s15x0";
+    sha256 = "sha256-uRCzVeTr5rr0CvE/1Uz7RHcw4Kt/sOItwcbZJBjjNjg=";
   };
 
-  cargoSha256 = "1zkrrg5m0j9rk65g51v2zh404529p9z84qqb7bfyjmgiqlnh48ig";
+  cargoSha256 = "sha256-+E6Wa4QrMG/Ow3KehsxIzLzubXJQxCWo/rowC4MPdgk=";
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
 
   buildInputs = [
-    curl zlib
-  ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security ];
+    curl
+    zlib
+  ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security libiconv xz ];
 
   cargoBuildFlags = [ "--features no-self-update" ];
 
   patches = lib.optionals stdenv.isLinux [
-    (runCommand "0001-dynamically-patchelf-binaries.patch" { CC=stdenv.cc; patchelf = patchelf; libPath = "$ORIGIN/../lib:${libPath}"; } ''
-     export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
-     substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
-       --subst-var patchelf \
-       --subst-var dynamicLinker \
-       --subst-var libPath
+    (runCommand "0001-dynamically-patchelf-binaries.patch" { CC = stdenv.cc; patchelf = patchelf; libPath = "$ORIGIN/../lib:${libPath}"; } ''
+      export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+      substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+        --subst-var patchelf \
+        --subst-var dynamicLinker \
+        --subst-var libPath
     '')
   ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix b/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
index 5c4f40bbd094..c183ddb760fe 100644
--- a/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, pkg-config, openssl, SystemConfiguration, CoreFoundation, Security }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, pkg-config, openssl, SystemConfiguration, CoreFoundation, Security, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sqlx-cli";
-  version = "0.4.2";
+  version = "0.5.5";
 
   src = fetchFromGitHub {
     owner = "launchbadge";
     repo = "sqlx";
     rev = "v${version}";
-    sha256 = "1q6p4qly9qjn333nj72sar6nbyclfdw9i9l6rnimswylj0rr9n27";
+    sha256 = "1051vldajdbkcxvrw2cig201c4nm68cvvnr2yia9f2ysmr68x5rh";
   };
 
-  cargoSha256 = "1393mwx6iccnqrry4ia4prcnnjxhp4zjq1s3gzwzfyzsrqyad54g";
+  cargoSha256 = "1ry893gjrwb670v80ff61yb00jvf49yp6194gqrjvnyarjc6bbb1";
 
   doCheck = false;
   cargoBuildFlags = [ "-p sqlx-cli" ];
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ SystemConfiguration CoreFoundation Security ];
+    ++ lib.optionals stdenv.isDarwin [ SystemConfiguration CoreFoundation Security libiconv ];
 
   meta = with lib; {
     description =
diff --git a/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch b/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
index 5cd1f685fc11..acc9b053593b 100644
--- a/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
+++ b/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
@@ -2,102 +2,149 @@ diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,278 @@
+@@ -0,0 +1,469 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
 +[[package]]
 +name = "ansi_term"
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "anyhow"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "atty"
-+version = "0.2.11"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "autocfg"
-+version = "0.1.1"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "backtrace"
-+version = "0.3.13"
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cast"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "backtrace-sys"
-+version = "0.1.28"
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "clap"
++version = "2.33.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "bitflags"
-+version = "0.7.0"
++name = "crossbeam-channel"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "bitflags"
-+version = "1.0.4"
++name = "crossbeam-deque"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "cast"
-+version = "0.2.2"
++name = "crossbeam-epoch"
++version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "cc"
-+version = "1.0.28"
++name = "crossbeam-utils"
++version = "0.8.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "cfg-if"
-+version = "0.1.6"
++name = "either"
++version = "1.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "clap"
-+version = "2.32.0"
++name = "env_logger"
++version = "0.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "either"
-+version = "1.5.0"
++name = "hermit-abi"
++version = "0.1.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "error-chain"
-+version = "0.11.0"
++name = "humantime"
++version = "1.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -106,115 +153,232 @@ new file mode 100644
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "libc"
-+version = "0.2.46"
++version = "0.2.94"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "log"
++version = "0.4.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "memoffset"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quick-error"
++version = "1.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "quote"
-+version = "0.3.15"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "redox_syscall"
-+version = "0.1.50"
++name = "rayon"
++version = "1.5.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon-core 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "redox_termios"
-+version = "0.1.1"
++name = "rayon-core"
++version = "1.9.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rustc-demangle"
-+version = "0.1.13"
++name = "regex"
++version = "1.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.23 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "strsim"
++name = "regex-syntax"
++version = "0.6.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver-parser"
 +version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "svd-parser"
-+version = "0.6.0"
++version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "xmltree 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "once_cell 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xmltree 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "svd2rust"
-+version = "0.14.0"
++version = "0.18.0"
 +dependencies = [
-+ "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cast 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "inflections 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "svd-parser 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "svd-parser 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "syn"
-+version = "0.11.11"
++version = "1.0.70"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "synom"
-+version = "0.11.3"
++name = "termcolor"
++version = "1.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "termion"
-+version = "1.5.1"
++name = "textwrap"
++version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "textwrap"
-+version = "0.10.0"
++name = "thiserror"
++version = "1.0.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror-impl 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.5"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "unicode-xid"
-+version = "0.0.4"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "vec_map"
-+version = "0.8.1"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.6"
++version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -227,57 +391,84 @@ new file mode 100644
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "winapi-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "xml-rs"
-+version = "0.3.6"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "xmltree"
-+version = "0.3.2"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[metadata]
++"checksum aho-corasick 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
 +"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
-+"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727"
-+"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
-+"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
-+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
-+"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
-+"checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
-+"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
-+"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
-+"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
-+"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
-+"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
++"checksum anyhow 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
++"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++"checksum autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum cast 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "cc38c385bfd7e444464011bb24820f40dd1c76bcdfa1b78611cb7c2e5cafab75"
++"checksum cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++"checksum clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)" = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++"checksum crossbeam-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
++"checksum crossbeam-deque 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
++"checksum crossbeam-epoch 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
++"checksum crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
++"checksum either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++"checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
++"checksum hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
++"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
 +"checksum inflections 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
-+"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd"
-+"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-+"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2"
-+"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
-+"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619"
-+"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
-+"checksum svd-parser 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f22b4579485b26262f36086d6b74903befc043a57f8377dfcf05bcf5335cb251"
-+"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
-+"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
-+"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
-+"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
-+"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-+"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-+"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-+"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++"checksum libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)" = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
++"checksum log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
++"checksum memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
++"checksum memoffset 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d"
++"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++"checksum once_cell 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
++"checksum proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
++"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
++"checksum quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++"checksum rayon 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
++"checksum rayon-core 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
++"checksum regex 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
++"checksum regex-syntax 0.6.23 (registry+https://github.com/rust-lang/crates.io-index)" = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++"checksum svd-parser 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6b787831d8f6a1549ccd1b0d62772d0526425a7da687f0f98591ab18e53bfe98"
++"checksum syn 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "b9505f307c872bab8eb46f77ae357c8eba1fdacead58ee5a850116b1d7f82883"
++"checksum termcolor 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++"checksum thiserror 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)" = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
++"checksum thiserror-impl 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)" = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
++"checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++"checksum vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 +"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 +"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+"checksum xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562"
-+"checksum xmltree 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "472a9d37c7c53ab2391161df5b89b1f3bf76dab6ab150d7941ecbdd832282082"
++"checksum xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c1cb601d29fe2c2ac60a2b2e5e293994d87a1f6fa9687a31a15270f909be9c2"
++"checksum xmltree 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8eaee9d17062850f1e6163b509947969242990ee59a35801af437abe041e70"
diff --git a/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix b/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
index 6ec06fffe21f..c66cbe3c2c82 100644
--- a/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
@@ -1,23 +1,22 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv }:
 
 with rustPlatform;
 
 buildRustPackage rec {
   pname = "svd2rust";
-  version = "0.14.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "rust-embedded";
     repo = "svd2rust";
     rev = "v${version}";
-    sha256 = "1a0ldmjkhyv5c52gcq8p8avkj0cgj1b367w6hm85bxdf5j4y8rra";
+    sha256 = "1p0zq3q4g9lr0ghavp7v1dwsqq19lkljkm1i2hsb1sk3pxa1f69n";
   };
   cargoPatches = [ ./cargo-lock.patch ];
 
-  cargoSha256 = "0n0xc8b982ra007l6gygssf1n60gfc2rphwyi7n95dbys1chciyg";
+  cargoSha256 = "0c0f86x17fzav5q76z3ha3g00rbgyz2lm5a5v28ggy0jmg9xgsv6";
 
-  # doc tests fail due to missing dependency
-  doCheck = false;
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description = "Generate Rust register maps (`struct`s) from SVD files";
diff --git a/nixpkgs/pkgs/development/tools/scenebuilder/default.nix b/nixpkgs/pkgs/development/tools/scenebuilder/default.nix
index 97c03fb45742..6bac5a95fcb7 100644
--- a/nixpkgs/pkgs/development/tools/scenebuilder/default.nix
+++ b/nixpkgs/pkgs/development/tools/scenebuilder/default.nix
@@ -1,7 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, jdk, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }:
+{ lib, stdenv, fetchFromGitHub, jdk11, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }:
 let
-  # The default one still uses jdk8 (#89731)
-  gradle = (gradleGen.override (old: { java = jdk; })).gradle_6_8;
+  gradle = (gradleGen.override (old: { java = jdk11; })).gradle_6_8;
 
   pname = "scenebuilder";
   version = "15.0.1";
@@ -17,7 +16,7 @@ let
     name = "${pname}-deps";
     inherit src;
 
-    nativeBuildInputs = [ jdk perl gradle ];
+    nativeBuildInputs = [ jdk11 perl gradle ];
 
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d);
@@ -77,7 +76,7 @@ let
 in stdenv.mkDerivation rec {
   inherit pname src version;
 
-  nativeBuildInputs = [ jdk gradle makeWrapper glib wrapGAppsHook ];
+  nativeBuildInputs = [ jdk11 gradle makeWrapper glib wrapGAppsHook ];
 
   dontWrapGApps = true; # prevent double wrapping
 
@@ -101,7 +100,7 @@ in stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${jdk}/bin/java $out/bin/${pname} --add-flags "-jar $out/share/${pname}/${pname}.jar" "''${gappsWrapperArgs[@]}"
+    makeWrapper ${jdk11}/bin/java $out/bin/${pname} --add-flags "-jar $out/share/${pname}/${pname}.jar" "''${gappsWrapperArgs[@]}"
     '';
 
   desktopItems = [ desktopItem ];
diff --git a/nixpkgs/pkgs/development/tools/skopeo/default.nix b/nixpkgs/pkgs/development/tools/skopeo/default.nix
index db43c7f8e47d..2af1d5e2a074 100644
--- a/nixpkgs/pkgs/development/tools/skopeo/default.nix
+++ b/nixpkgs/pkgs/development/tools/skopeo/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.2.3";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "sha256-GhLw8wt5eDixKNGtxGA0Fjw3auQ3AsjKa+0M4mLTQlg=";
+    sha256 = "sha256-ZHEujkl+GUk5WjgDWdbJwOIKuOqJnIpGnvD1SsrHuhI=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/development/tools/so/default.nix b/nixpkgs/pkgs/development/tools/so/default.nix
index cd52f319bb94..e7324ff7c5b9 100644
--- a/nixpkgs/pkgs/development/tools/so/default.nix
+++ b/nixpkgs/pkgs/development/tools/so/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-WAUPB4hhvroE1/8nQcgLVWgGyXcFh7qxdFg6UtQzM9A=";
   };
 
-  cargoSha256 = "sha256-wt6ClN9fpEAETk3kYeQRieTXnZQe4JEnQiA8CG4ZLog=";
+  cargoSha256 = "sha256-aaIzGvf+PvH8nz2BSJapi1P5gSVfXT92X62FqJ1Z2L0=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/tools/sqsh/default.nix b/nixpkgs/pkgs/development/tools/sqsh/default.nix
index 9c56efcb59fb..ba4a681a594d 100644
--- a/nixpkgs/pkgs/development/tools/sqsh/default.nix
+++ b/nixpkgs/pkgs/development/tools/sqsh/default.nix
@@ -14,9 +14,6 @@ in stdenv.mkDerivation rec {
 
   preConfigure = ''
     export SYBASE=${freetds}
-
-    substituteInPlace src/cmd_connect.c \
-      --replace CS_TDS_80 CS_TDS_73
   '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace configure --replace "libct.so" "libct.dylib"
   '';
@@ -27,6 +24,17 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
+  patches = [
+    (fetchurl {
+      # https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/databases/sqsh/patches/patch-src_cmd_connect_c
+      name = "patch-src_cmd_connect_c.patch";
+      url = "https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/databases/sqsh/patches/patch-src_cmd_connect_c?rev=1.2&content-type=text/plain";
+      sha256 = "1dz97knr2h0a0ca1vq2mx6h8s3ns9jb1a0qraa4wkfmcdi3aqw0j";
+    })
+  ];
+
+  patchFlags = [ "-p0" ];
+
   meta = with lib; {
     description = "Command line tool for querying Sybase/MSSQL databases";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/tools/stagit/default.nix b/nixpkgs/pkgs/development/tools/stagit/default.nix
index 85d64890180e..cfbca2025688 100644
--- a/nixpkgs/pkgs/development/tools/stagit/default.nix
+++ b/nixpkgs/pkgs/development/tools/stagit/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "stagit";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchgit {
     url = "git://git.codemadness.org/stagit";
     rev = version;
-    sha256 = "1wlx5k0v464fr1ifjv04v7ccwb559s54xpsbxdda4whyx1v0fbq4";
+    sha256 = "sha256-0vkdxtKZv7LyEHKGPrB4uOI2lD74+haelEanq2sOjkE=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/development/tools/symfony-cli/default.nix b/nixpkgs/pkgs/development/tools/symfony-cli/default.nix
new file mode 100644
index 000000000000..eb12f9e1dcd7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/symfony-cli/default.nix
@@ -0,0 +1,29 @@
+{ stdenvNoCC, fetchurl, lib }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "symfony-cli";
+  version = "4.25.2";
+
+  src = fetchurl {
+    url = "https://github.com/symfony/cli/releases/download/v${version}/symfony_linux_amd64.gz";
+    sha256 = "8bfa53c1479883e9b48d2e4e5d3f6f7a511df73d65fe5c7b07a4890ee2c75c7e";
+  };
+
+  dontBuild = true;
+
+  unpackPhase = ''
+    gunzip <$src >symfony
+  '';
+
+  installPhase = ''
+    install -D -t $out/bin symfony
+  '';
+
+  meta = with lib; {
+    description = "Symfony CLI";
+    homepage = "https://symfony.com/download";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ drupol ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/the-way/default.nix b/nixpkgs/pkgs/development/tools/the-way/default.nix
index 6d7fbef2f19b..65c889aee832 100644
--- a/nixpkgs/pkgs/development/tools/the-way/default.nix
+++ b/nixpkgs/pkgs/development/tools/the-way/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin  [ AppKit Security ];
 
-  cargoSha256 = "sha256-jTZso61Lyt6jprBxBAhvchgOsgM9y1qBleTxUx1jCnE=";
+  cargoSha256 = "sha256-sULjd+weixTQYFIQlluPwY4MFlZ1+vMMoMn4GP79oQs=";
   checkFlagsArray = lib.optionals stdenv.isDarwin [ "--skip=copy" ];
   dontUseCargoParallelTests = true;
 
diff --git a/nixpkgs/pkgs/development/tools/thrust/default.nix b/nixpkgs/pkgs/development/tools/thrust/default.nix
index fcb1edf153ac..cc46f3f5d340 100644
--- a/nixpkgs/pkgs/development/tools/thrust/default.nix
+++ b/nixpkgs/pkgs/development/tools/thrust/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, buildEnv, makeWrapper, glib, alsaLib , dbus, gtk2, atk
+{ lib, stdenv, fetchurl, buildEnv, makeWrapper, glib, alsa-lib , dbus, gtk2, atk
 , pango, freetype, fontconfig, gdk-pixbuf , cairo, cups, expat, nspr, gconf, nss
 , xorg, libcap, unzip
 }:
@@ -8,7 +8,7 @@ let
     name = "env-thrust";
     paths = [
       stdenv.cc.cc glib dbus gtk2 atk pango freetype fontconfig gdk-pixbuf
-      cairo cups expat alsaLib nspr gconf nss xorg.libXrender xorg.libX11
+      cairo cups expat alsa-lib nspr gconf nss xorg.libXrender xorg.libX11
       xorg.libXext xorg.libXdamage xorg.libXtst xorg.libXcomposite
       xorg.libXi xorg.libXfixes xorg.libXrandr xorg.libXcursor libcap
     ];
diff --git a/nixpkgs/pkgs/development/tools/treefmt/default.nix b/nixpkgs/pkgs/development/tools/treefmt/default.nix
index c90492c6aeca..961b9625eded 100644
--- a/nixpkgs/pkgs/development/tools/treefmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/treefmt/default.nix
@@ -1,16 +1,16 @@
 { lib, rustPlatform, fetchFromGitHub }:
 rustPlatform.buildRustPackage rec {
   pname = "treefmt";
-  version = "0.1.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "treefmt";
     rev = "v${version}";
-    sha256 = "0a4yikkqppawii1q0kzsxwfp1aid688wa0lixjwfsl279lr69css";
+    sha256 = "13z7n0xg150815c77ysz4iqpk8rbgj4vmqy1y2262ryb88dwaw5n";
   };
 
-  cargoSha256 = "08k60gd23yanfraxpbw9hi7jbqgsxz9mv1ci6q9piis5742zlj9s";
+  cargoSha256 = "1jfrmafj1b28k6xjpj0qq1jpccll0adqxhjypphxhyfsfnra8g6f";
 
   meta = {
     description = "one CLI to format the code tree";
diff --git a/nixpkgs/pkgs/development/tools/trunk/default.nix b/nixpkgs/pkgs/development/tools/trunk/default.nix
index d31c030edac7..e8a7392ff3b1 100644
--- a/nixpkgs/pkgs/development/tools/trunk/default.nix
+++ b/nixpkgs/pkgs/development/tools/trunk/default.nix
@@ -1,4 +1,5 @@
-{ rustPlatform, fetchFromGitHub, pkg-config, openssl, lib }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config
+, openssl, libiconv, CoreServices, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "trunk";
@@ -12,9 +13,11 @@ rustPlatform.buildRustPackage rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ];
+  buildInputs = if stdenv.isDarwin
+    then [ libiconv CoreServices Security ]
+    else [ openssl ];
 
-  cargoSha256 = "Qv7knTmNYtw0tbyWhFIV7tYkQiwFxcNPAeNiGCyeV8s=";
+  cargoSha256 = "sha256-0ehz0ETNA2gOvTJUu8uq5H+bv4VXOJMq6AA8kn65m/Q=";
 
   meta = with lib; {
     homepage = "https://github.com/thedodd/trunk";
diff --git a/nixpkgs/pkgs/development/tools/unity3d/default.nix b/nixpkgs/pkgs/development/tools/unity3d/default.nix
index 5c41a1dac931..9333864c69b9 100644
--- a/nixpkgs/pkgs/development/tools/unity3d/default.nix
+++ b/nixpkgs/pkgs/development/tools/unity3d/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, makeWrapper, file, getopt
 , gtk2, gtk3, gdk-pixbuf, glib, libGL, libGLU, nss, nspr, udev, tbb
-, alsaLib, GConf, cups, libcap, fontconfig, freetype, pango
+, alsa-lib, GConf, cups, libcap, fontconfig, freetype, pango
 , cairo, dbus, expat, zlib, libpng12, nodejs, gnutar, gcc, gcc_32bit
 , libX11, libXcursor, libXdamage, libXfixes, libXrender, libXi
 , libXcomposite, libXext, libXrandr, libXtst, libSM, libICE, libxcb, chromium
@@ -10,7 +10,7 @@
 let
   libPath64 = lib.makeLibraryPath [
     gcc.cc gtk2 gdk-pixbuf glib libGL libGLU nss nspr
-    alsaLib GConf cups libcap fontconfig freetype pango
+    alsa-lib GConf cups libcap fontconfig freetype pango
     cairo dbus expat zlib libpng12 udev tbb
     libX11 libXcursor libXdamage libXfixes libXrender libXi
     libXcomposite libXext libXrandr libXtst libSM libICE libxcb
diff --git a/nixpkgs/pkgs/development/tools/unityhub/default.nix b/nixpkgs/pkgs/development/tools/unityhub/default.nix
index dc2f80221172..19cd15e7be41 100644
--- a/nixpkgs/pkgs/development/tools/unityhub/default.nix
+++ b/nixpkgs/pkgs/development/tools/unityhub/default.nix
@@ -6,7 +6,7 @@ in appimageTools.wrapType2 rec {
   name = "unityhub";
 
   extraPkgs = (pkgs: with pkgs; with xorg; [ gtk2 gdk_pixbuf glib libGL libGLU nss nspr
-    alsaLib cups gnome2.GConf libcap fontconfig freetype pango
+    alsa-lib cups gnome2.GConf libcap fontconfig freetype pango
     cairo dbus dbus-glib libdbusmenu libdbusmenu-gtk2 expat zlib libpng12 udev tbb
     libpqxx gtk3 libsecret lsb-release openssl nodejs ncurses5
 
diff --git a/nixpkgs/pkgs/development/tools/vagrant/default.nix b/nixpkgs/pkgs/development/tools/vagrant/default.nix
index 1ea172ae137b..db807bda0a7d 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/default.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/default.nix
@@ -5,9 +5,9 @@
 let
   # NOTE: bumping the version and updating the hash is insufficient;
   # you must use bundix to generate a new gemset.nix in the Vagrant source.
-  version = "2.2.15";
+  version = "2.2.16";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  sha256 = "sha256-mMnHJtXLfkZ5O0UF89kHsqBnPg9uQ5l8IYoL5TMMyD8=";
+  sha256 = "sha256-qzxguxKy2pFv0HMZKEnytdPyJPlf6/NTghIkfEzeKNY=";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
diff --git a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
index 895554904927..27ebf31c32cb 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
@@ -64,10 +64,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23";
+      sha256 = "19g5nvkycnkzqq4mqn1zjznq9adrlv2jz0dr9w10cbn42hhqpiz7";
       type = "gem";
     };
-    version = "0.79.0";
+    version = "0.81.0";
   };
   ffi = {
     groups = ["default"];
@@ -274,10 +274,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14mhzrhs2j43vj36i1qq4z29nd860shrslfik015f4kf1jiaqcrw";
+      sha256 = "1rmm9ym3qxysrmvgnrad28llnzj6wj9ljir8zaw9myas7m8vhvsq";
       type = "gem";
     };
-    version = "0.2.5";
+    version = "0.2.6";
   };
   rubyntlm = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/tools/vala-language-server/default.nix b/nixpkgs/pkgs/development/tools/vala-language-server/default.nix
index 4cad79f9a85f..7a5ab2ae4190 100644
--- a/nixpkgs/pkgs/development/tools/vala-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/vala-language-server/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     description = "Code Intelligence for Vala & Genie";
     homepage = "https://github.com/benwaffle/vala-language-server";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ andreasfelix worldofpeace ];
+    maintainers = with maintainers; [ andreasfelix ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/vala-lint/default.nix b/nixpkgs/pkgs/development/tools/vala-lint/default.nix
index a45ced8a4922..3c91880e16ed 100644
--- a/nixpkgs/pkgs/development/tools/vala-lint/default.nix
+++ b/nixpkgs/pkgs/development/tools/vala-lint/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , glib
 , meson
@@ -12,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vala-lint-unstable";
-  version = "2020-08-18";
+  version = "2021-02-17";
 
   src = fetchFromGitHub {
     owner = "vala-lang";
     repo = "vala-lint";
-    rev = "fc5dd9e95bc61540b404d5bc070c0629903baad9";
-    sha256 = "n6pp6vYGaRF8B3phWp/e9KnpKGf0Op+xGVdT6HHe0rM=";
+    rev = "5b06cc2341ae7e9f7f8c35c542ef78c36e864c30";
+    sha256 = "KwJ5sCp9ZrrxIqc6qi2+ZdHBt1esNOO1+uDkS+d9mW8=";
   };
 
   nativeBuildInputs = [
@@ -34,8 +35,7 @@ stdenv.mkDerivation rec {
     glib
   ];
 
-  # See https://github.com/vala-lang/vala-lint/issues/133
-  doCheck = false;
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/vala-lang/vala-lint";
diff --git a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
index 70c634fc9bd1..b97a4438c05d 100644
--- a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TNytKq2LqLWxNrqesOJbNQUTirvPkxLMqJmtbmFq+0Y=";
+    sha256 = "sha256:0qbsybs91v9vnkxj4kpwqhzk4hgpkq36wnixxjajg038x7slds4i";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/development/tools/wally-cli/default.nix b/nixpkgs/pkgs/development/tools/wally-cli/default.nix
index 4c843d04b8cf..bc0ca398fb9e 100644
--- a/nixpkgs/pkgs/development/tools/wally-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/wally-cli/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "wally-cli";
-  version = "2.0.0";
+  version = "2.0.1";
 
   subPackages = [ "." ];
 
@@ -14,15 +14,12 @@ buildGoModule rec {
     owner = "zsa";
     repo = "wally-cli";
     rev = "${version}-linux";
-    sha256 = "0xz3z18bbnf736ngjj6jhnp3p2j55m5jhnb2xl6l5hybracfyhm7";
+    sha256 = "NuyQHEygy4LNqLtrpdwfCR+fNy3ZUxOClVdRen6AXMc=";
   };
 
-  vendorSha256 = "0jqx38x5qvir6zc5yq9p2adafwqhy4hil1k5g81rr1fvbn06k3a6";
+  vendorSha256 = "AVYG+aLpAXohUOORV/uPw7vro+Kg98+AmSmYGHtOals=";
   runVend = true;
 
-  # Can be removed when https://github.com/zsa/wally-cli/pull/1 is merged.
-  doCheck = false;
-
   meta = with lib; {
     description = "A tool to flash firmware to mechanical keyboards";
     homepage = "https://ergodox-ez.com/pages/wally-planck";
diff --git a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
index 165aa6ac856c..094c703b65f6 100644
--- a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
+++ b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
@@ -15,9 +15,9 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.13"
+version = "0.7.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
 dependencies = [
  "memchr",
 ]
@@ -33,9 +33,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.32"
+version = "1.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b"
+checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
 
 [[package]]
 name = "arrayref"
@@ -45,21 +45,21 @@ checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
 
 [[package]]
 name = "arrayvec"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
 
 [[package]]
 name = "ascii"
-version = "0.8.7"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
+checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109"
 
 [[package]]
 name = "askama"
-version = "0.10.3"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12"
+checksum = "d298738b6e47e1034e560e5afe63aa488fea34e25ec11b855a76f0d7b8e73134"
 dependencies = [
  "askama_derive",
  "askama_escape",
@@ -68,13 +68,12 @@ dependencies = [
 
 [[package]]
 name = "askama_derive"
-version = "0.10.3"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881"
+checksum = "ca2925c4c290382f9d2fa3d1c1b6a63fa1427099721ecca4749b154cc9c25522"
 dependencies = [
  "askama_shared",
  "proc-macro2",
- "quote",
  "syn",
 ]
 
@@ -86,15 +85,15 @@ checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
 
 [[package]]
 name = "askama_shared"
-version = "0.10.4"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5"
+checksum = "2582b77e0f3c506ec4838a25fa8a5f97b9bed72bb6d3d272ea1c031d8bd373bc"
 dependencies = [
  "askama_escape",
  "humansize",
- "nom",
- "num-traits 0.2.12",
- "percent-encoding 2.1.0",
+ "nom 6.1.2",
+ "num-traits 0.2.14",
+ "percent-encoding",
  "proc-macro2",
  "quote",
  "serde",
@@ -104,10 +103,11 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "1.0.1"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
+checksum = "a88b6bd5df287567ffdf4ddf4d33060048e1068308e5f62d81c6f9824a045a48"
 dependencies = [
+ "bstr",
  "doc-comment",
  "predicates",
  "predicates-core",
@@ -134,9 +134,9 @@ checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
 
 [[package]]
 name = "autocfg"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
 
 [[package]]
 name = "base64"
@@ -150,9 +150,18 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.11.0"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
 
 [[package]]
 name = "bitflags"
@@ -167,10 +176,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
+name = "bitvec"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
 name = "blake2b_simd"
-version = "0.5.10"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -178,6 +199,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "bstr"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279"
+dependencies = [
+ "lazy_static",
+ "memchr",
+ "regex-automata",
+]
+
+[[package]]
 name = "buf_redux"
 version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -189,15 +221,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.4.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
 
 [[package]]
 name = "byteorder"
-version = "1.3.4"
+version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 
 [[package]]
 name = "canvas"
@@ -210,9 +242,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.58"
+version = "1.0.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787"
 
 [[package]]
 name = "cfg-if"
@@ -235,26 +267,28 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.13"
+version = "0.4.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
 dependencies = [
+ "libc",
  "num-integer",
- "num-traits 0.2.12",
+ "num-traits 0.2.14",
  "time",
+ "winapi",
 ]
 
 [[package]]
 name = "chunked_transfer"
-version = "0.3.1"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
+checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
 
 [[package]]
 name = "clap"
-version = "2.33.1"
+version = "2.33.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
+checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
 dependencies = [
  "ansi_term",
  "atty",
@@ -285,9 +319,9 @@ dependencies = [
 
 [[package]]
 name = "color_quant"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "console_error_panic_hook"
@@ -314,58 +348,54 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
-name = "crossbeam-deque"
-version = "0.7.3"
+name = "crossbeam-channel"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
 dependencies = [
- "crossbeam-epoch",
+ "cfg-if 1.0.0",
  "crossbeam-utils",
- "maybe-uninit",
 ]
 
 [[package]]
-name = "crossbeam-epoch"
-version = "0.8.2"
+name = "crossbeam-deque"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
 dependencies = [
- "autocfg 1.0.0",
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
+ "crossbeam-epoch",
  "crossbeam-utils",
- "lazy_static",
- "maybe-uninit",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
-name = "crossbeam-queue"
-version = "0.2.3"
+name = "crossbeam-epoch"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
 dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
  "crossbeam-utils",
- "maybe-uninit",
+ "lazy_static",
+ "memoffset",
+ "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.7.2"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
 dependencies = [
- "autocfg 1.0.0",
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
  "lazy_static",
 ]
 
 [[package]]
 name = "curl"
-version = "0.4.31"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9447ad28eee2a5cfb031c329d46bef77487244fff6a724b378885b8691a35f78"
+checksum = "003cb79c1c6d1c93344c7e1201bb51c2148f24ec2bd9c253709d6b2efb796515"
 dependencies = [
  "curl-sys",
  "libc",
@@ -378,9 +408,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.33+curl-7.71.1"
+version = "0.4.44+curl-7.77.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9818ea018327f79c811612f29b9834d2abddbe7db81460a2d5c7e12946b337"
+checksum = "4b6d85e9322b193f117c966e79c2d6929ec08c02f339f950044aba12e20bbaf1"
 dependencies = [
  "cc",
  "libc",
@@ -439,14 +469,14 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "docopt"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969"
+checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f"
 dependencies = [
  "lazy_static",
  "regex",
  "serde",
- "strsim 0.9.3",
+ "strsim 0.10.0",
 ]
 
 [[package]]
@@ -459,9 +489,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.5.3"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
 
 [[package]]
 name = "enum_primitive"
@@ -480,7 +510,7 @@ checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
 dependencies = [
  "atty",
  "humantime",
- "log 0.4.11",
+ "log 0.4.14",
  "regex",
  "termcolor",
 ]
@@ -499,13 +529,13 @@ dependencies = [
 
 [[package]]
 name = "filetime"
-version = "0.2.11"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e500da2fab70bdc43f8f0e0b350a227f31c72311c56aba48f01d5cd62bb0345b"
+checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8"
 dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.2.8",
  "winapi",
 ]
 
@@ -515,7 +545,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
 dependencies = [
- "num-traits 0.2.12",
+ "num-traits 0.2.14",
 ]
 
 [[package]]
@@ -534,16 +564,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
 name = "fuchsia-cprng"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
 
 [[package]]
+name = "funty"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
+
+[[package]]
 name = "futures"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
+checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -556,9 +602,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -575,9 +621,9 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94"
+checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
 
 [[package]]
 name = "futures-core-preview"
@@ -587,9 +633,9 @@ checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -598,27 +644,27 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
 
 [[package]]
 name = "futures-lite"
-version = "1.11.3"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb"
+checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
 dependencies = [
  "futures-core",
- "memchr",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "futures-macro"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
 dependencies = [
+ "autocfg 1.0.1",
  "proc-macro-hack",
  "proc-macro2",
  "quote",
@@ -627,25 +673,23 @@ dependencies = [
 
 [[package]]
 name = "futures-sink"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
 
 [[package]]
 name = "futures-task"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
-dependencies = [
- "once_cell",
-]
+checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
 
 [[package]]
 name = "futures-util"
-version = "0.3.5"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
 dependencies = [
+ "autocfg 1.0.1",
  "futures-channel",
  "futures-core",
  "futures-io",
@@ -653,7 +697,7 @@ dependencies = [
  "futures-sink",
  "futures-task",
  "memchr",
- "pin-project",
+ "pin-project-lite",
  "pin-utils",
  "proc-macro-hack",
  "proc-macro-nested",
@@ -662,13 +706,24 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.14"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
 dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
  "libc",
- "wasi",
+ "wasi 0.10.2+wasi-snapshot-preview1",
 ]
 
 [[package]]
@@ -696,9 +751,9 @@ dependencies = [
 
 [[package]]
 name = "heck"
-version = "0.3.1"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
 dependencies = [
  "unicode-segmentation",
 ]
@@ -712,30 +767,30 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.15"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "httparse"
-version = "1.3.4"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68"
 
 [[package]]
 name = "humansize"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
+checksum = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026"
 
 [[package]]
 name = "humantime"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "id-arena"
@@ -748,9 +803,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.1.5"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
 dependencies = [
  "matches",
  "unicode-bidi",
@@ -789,23 +844,22 @@ checksum = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
 
 [[package]]
 name = "itoa"
-version = "0.4.6"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.1.20"
+version = "0.1.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3"
+checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
 dependencies = [
- "byteorder",
  "rayon",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.50"
+version = "0.3.51"
 dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -833,16 +887,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
 
 [[package]]
+name = "lexical-core"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
+dependencies = [
+ "arrayvec",
+ "bitflags 1.2.1",
+ "cfg-if 1.0.0",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
 name = "libc"
-version = "0.2.74"
+version = "0.2.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
+checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36"
 
 [[package]]
 name = "libz-sys"
-version = "1.0.25"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
 dependencies = [
  "cc",
  "libc",
@@ -856,16 +923,16 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
 dependencies = [
- "log 0.4.11",
+ "log 0.4.14",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.11"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
 dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
 ]
 
 [[package]]
@@ -881,24 +948,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
 
 [[package]]
-name = "maybe-uninit"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-
-[[package]]
 name = "memchr"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
 
 [[package]]
 name = "memoffset"
-version = "0.5.5"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
 ]
 
 [[package]]
@@ -924,19 +985,19 @@ dependencies = [
 
 [[package]]
 name = "multipart"
-version = "0.15.4"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adba94490a79baf2d6a23eac897157047008272fa3eecb3373ae6377b91eca28"
+checksum = "136eed74cadb9edd2651ffba732b19a450316b680e4f48d6c79e905799e19d01"
 dependencies = [
  "buf_redux",
  "httparse",
- "log 0.4.11",
+ "log 0.4.14",
  "mime",
  "mime_guess",
  "quick-error",
- "rand 0.4.6",
+ "rand 0.6.5",
  "safemem",
- "tempdir",
+ "tempfile",
  "twoway",
 ]
 
@@ -954,7 +1015,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
 dependencies = [
  "memchr",
- "version_check 0.9.2",
+ "version_check 0.9.3",
+]
+
+[[package]]
+name = "nom"
+version = "6.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
+dependencies = [
+ "bitvec",
+ "funty",
+ "lexical-core",
+ "memchr",
+ "version_check 0.9.3",
 ]
 
 [[package]]
@@ -965,23 +1039,23 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
 name = "num-integer"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
 dependencies = [
- "autocfg 1.0.0",
- "num-traits 0.2.12",
+ "autocfg 1.0.1",
+ "num-traits 0.2.14",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.41"
+version = "0.1.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
+checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
  "num-integer",
- "num-traits 0.2.12",
+ "num-traits 0.2.14",
 ]
 
 [[package]]
@@ -991,7 +1065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
 dependencies = [
  "num-integer",
- "num-traits 0.2.12",
+ "num-traits 0.2.14",
 ]
 
 [[package]]
@@ -1000,16 +1074,16 @@ version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
 dependencies = [
- "num-traits 0.2.12",
+ "num-traits 0.2.14",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.12"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
 ]
 
 [[package]]
@@ -1024,46 +1098,46 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.4.0"
+version = "1.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
 
 [[package]]
 name = "openssl"
-version = "0.10.30"
+version = "0.10.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
+checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8"
 dependencies = [
  "bitflags 1.2.1",
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
  "foreign-types",
- "lazy_static",
  "libc",
+ "once_cell",
  "openssl-sys",
 ]
 
 [[package]]
 name = "openssl-probe"
-version = "0.1.2"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
 
 [[package]]
 name = "openssl-src"
-version = "111.10.2+1.1.1g"
+version = "111.15.0+1.1.1k"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
+checksum = "b1a5f6ae2ac04393b217ea9f700cd04fa9bf3d93fae2872069f3d15d908af70a"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.58"
+version = "0.9.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
+checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
  "cc",
  "libc",
  "openssl-src",
@@ -1073,12 +1147,6 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-
-[[package]]
-name = "percent-encoding"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
@@ -1132,26 +1200,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "pin-project"
-version = "0.4.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "0.4.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
 name = "pin-project-lite"
 version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1165,9 +1213,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.18"
+version = "0.3.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
 
 [[package]]
 name = "png"
@@ -1183,15 +1231,15 @@ dependencies = [
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
 
 [[package]]
 name = "predicates"
-version = "1.0.5"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a"
+checksum = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df"
 dependencies = [
  "difference",
  "float-cmp",
@@ -1202,15 +1250,15 @@ dependencies = [
 
 [[package]]
 name = "predicates-core"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
+checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
+checksum = "15f553275e5721409451eb85e15fd9a860a6e5ab4496eb215987502b5f5391f2"
 dependencies = [
  "predicates-core",
  "treeline",
@@ -1218,47 +1266,45 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-error"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 dependencies = [
  "proc-macro-error-attr",
  "proc-macro2",
  "quote",
  "syn",
- "version_check 0.9.2",
+ "version_check 0.9.3",
 ]
 
 [[package]]
 name = "proc-macro-error-attr"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
- "syn-mid",
- "version_check 0.9.2",
+ "version_check 0.9.3",
 ]
 
 [[package]]
 name = "proc-macro-hack"
-version = "0.5.18"
+version = "0.5.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
 
 [[package]]
 name = "proc-macro-nested"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.24"
+version = "1.0.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
 dependencies = [
  "unicode-xid",
 ]
@@ -1271,38 +1317,18 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.7"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
-name = "rand"
-version = "0.4.6"
+name = "radium"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
-dependencies = [
- "fuchsia-cprng",
- "libc",
- "rand_core 0.3.1",
- "rdrand",
- "winapi",
-]
-
-[[package]]
-name = "rand"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
-dependencies = [
- "cloudabi",
- "fuchsia-cprng",
- "libc",
- "rand_core 0.3.1",
- "winapi",
-]
+checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
 
 [[package]]
 name = "rand"
@@ -1329,7 +1355,7 @@ version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 dependencies = [
- "getrandom",
+ "getrandom 0.1.16",
  "libc",
  "rand_chacha 0.2.2",
  "rand_core 0.5.1",
@@ -1337,6 +1363,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "rand"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.0",
+ "rand_core 0.6.2",
+ "rand_hc 0.3.0",
+]
+
+[[package]]
 name = "rand_chacha"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1357,6 +1395,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "rand_chacha"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.2",
+]
+
+[[package]]
 name = "rand_core"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1377,7 +1425,16 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 dependencies = [
- "getrandom",
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+dependencies = [
+ "getrandom 0.2.3",
 ]
 
 [[package]]
@@ -1399,6 +1456,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "rand_hc"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+dependencies = [
+ "rand_core 0.6.2",
+]
+
+[[package]]
 name = "rand_isaac"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1453,11 +1519,11 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.3.1"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
+checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
  "crossbeam-deque",
  "either",
  "rayon-core",
@@ -1465,12 +1531,12 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.7.1"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
+checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
 dependencies = [
+ "crossbeam-channel",
  "crossbeam-deque",
- "crossbeam-queue",
  "crossbeam-utils",
  "lazy_static",
  "num_cpus",
@@ -1517,33 +1583,47 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 
 [[package]]
+name = "redox_syscall"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc"
+dependencies = [
+ "bitflags 1.2.1",
+]
+
+[[package]]
 name = "redox_users"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
+checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
 dependencies = [
- "getrandom",
- "redox_syscall",
+ "getrandom 0.1.16",
+ "redox_syscall 0.1.57",
  "rust-argon2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.3.9"
+version = "1.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-syntax",
- "thread_local",
 ]
 
 [[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+
+[[package]]
 name = "regex-syntax"
-version = "0.6.18"
+version = "0.6.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
 
 [[package]]
 name = "remove_dir_all"
@@ -1564,16 +1644,17 @@ dependencies = [
 
 [[package]]
 name = "rouille"
-version = "3.0.0"
+version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "112568052ec17fa26c6c11c40acbb30d3ad244bf3d6da0be181f5e7e42e5004f"
+checksum = "0cfaebc11a52b7415f07e69f18f8240a0ea5eedf0dcb888c5fb7b432e7b4729b"
 dependencies = [
- "base64 0.9.3",
+ "base64 0.10.1",
  "chrono",
  "filetime",
  "multipart",
  "num_cpus",
- "rand 0.5.6",
+ "percent-encoding",
+ "rand 0.7.3",
  "serde",
  "serde_derive",
  "serde_json",
@@ -1587,11 +1668,11 @@ dependencies = [
 
 [[package]]
 name = "rust-argon2"
-version = "0.7.0"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
+checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
 dependencies = [
- "base64 0.11.0",
+ "base64 0.13.0",
  "blake2b_simd",
  "constant_time_eq",
  "crossbeam-utils",
@@ -1606,9 +1687,9 @@ dependencies = [
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.16"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce"
 
 [[package]]
 name = "ryu"
@@ -1662,18 +1743,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "serde"
-version = "1.0.114"
+version = "1.0.126"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.114"
+version = "1.0.126"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1682,9 +1763,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.57"
+version = "1.0.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
 dependencies = [
  "itoa",
  "ryu",
@@ -1705,19 +1786,17 @@ checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
 
 [[package]]
 name = "slab"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
 
 [[package]]
 name = "socket2"
-version = "0.3.12"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2"
 dependencies = [
- "cfg-if 0.1.10",
  "libc",
- "redox_syscall",
  "winapi",
 ]
 
@@ -1728,6 +1807,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
 
 [[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
 name = "strsim"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1735,15 +1820,15 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 
 [[package]]
 name = "strsim"
-version = "0.9.3"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "structopt"
-version = "0.3.15"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
+checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c"
 dependencies = [
  "clap",
  "lazy_static",
@@ -1752,9 +1837,9 @@ dependencies = [
 
 [[package]]
 name = "structopt-derive"
-version = "0.4.8"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
+checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90"
 dependencies = [
  "heck",
  "proc-macro-error",
@@ -1765,9 +1850,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.67"
+version = "1.0.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702"
+checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1775,36 +1860,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "syn-mid"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tempdir"
-version = "0.3.7"
+name = "tap"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
-dependencies = [
- "rand 0.4.6",
- "remove_dir_all",
-]
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 
 [[package]]
 name = "tempfile"
-version = "3.1.0"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
 dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
  "libc",
- "rand 0.7.3",
- "redox_syscall",
+ "rand 0.8.3",
+ "redox_syscall 0.2.8",
  "remove_dir_all",
  "winapi",
 ]
@@ -1822,9 +1892,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.1.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
 dependencies = [
  "winapi-util",
 ]
@@ -1839,15 +1909,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "thread_local"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
 name = "threadpool"
 version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1868,22 +1929,31 @@ dependencies = [
 
 [[package]]
 name = "tiny_http"
-version = "0.6.2"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1661fa0a44c95d01604bd05c66732a446c657efb62b5164a7a083a3b552b4951"
+checksum = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39"
 dependencies = [
  "ascii",
  "chrono",
  "chunked_transfer",
- "log 0.4.11",
+ "log 0.4.14",
  "url",
 ]
 
 [[package]]
 name = "tinyvec"
-version = "0.3.3"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
 [[package]]
 name = "todomvc"
@@ -1898,9 +1968,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.6"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
 dependencies = [
  "serde",
 ]
@@ -1913,9 +1983,9 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
 
 [[package]]
 name = "trybuild"
-version = "1.0.31"
+version = "1.0.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a4d94e6adf00b96b1ab94fcfcd8c3cf916733b39adf90c8f72693629887b9b8"
+checksum = "1768998d9a3b179411618e377dbb134c58a88cda284b0aa71c42c40660127d46"
 dependencies = [
  "glob",
  "lazy_static",
@@ -1954,27 +2024,27 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0"
 dependencies = [
  "matches",
 ]
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.13"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.6.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
 
 [[package]]
 name = "unicode-width"
@@ -1984,26 +2054,27 @@ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
 
 [[package]]
 name = "url"
-version = "1.7.2"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
 dependencies = [
+ "form_urlencoded",
  "idna",
  "matches",
- "percent-encoding 1.0.1",
+ "percent-encoding",
 ]
 
 [[package]]
 name = "vcpkg"
-version = "0.2.10"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
+checksum = "025ce40a007e1907e58d5bc1a594def78e5573bb0b1160bc389634e8f12e4faa"
 
 [[package]]
 name = "vec_map"
@@ -2019,9 +2090,9 @@ checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
 
 [[package]]
 name = "version_check"
-version = "0.9.2"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
 
 [[package]]
 name = "wait-timeout"
@@ -2034,24 +2105,24 @@ dependencies = [
 
 [[package]]
 name = "walrus"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d470d0583e65f4cab21a1ff3c1ba3dd23ae49e68f516f0afceaeb001b32af39"
+checksum = "4eb08e48cde54c05f363d984bb54ce374f49e242def9468d2e1b6c2372d291f8"
 dependencies = [
  "anyhow",
  "id-arena",
  "leb128",
- "log 0.4.11",
+ "log 0.4.14",
  "rayon",
  "walrus-macro",
- "wasmparser 0.59.0",
+ "wasmparser 0.77.0",
 ]
 
 [[package]]
 name = "walrus-macro"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c2bb690b44cb1b0fdcc54d4998d21f8bdaf706b93775425e440b174f39ad16"
+checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7"
 dependencies = [
  "heck",
  "proc-macro2",
@@ -2066,8 +2137,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 
 [[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+
+[[package]]
 name = "wasm-bindgen"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -2083,11 +2160,11 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "bumpalo",
  "lazy_static",
- "log 0.4.11",
+ "log 0.4.14",
  "proc-macro2",
  "quote",
  "syn",
@@ -2104,7 +2181,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-cli"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
  "assert_cmd",
@@ -2112,7 +2189,7 @@ dependencies = [
  "diff",
  "docopt",
  "env_logger",
- "log 0.4.11",
+ "log 0.4.14",
  "openssl",
  "predicates",
  "rayon",
@@ -2132,11 +2209,11 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-cli-support"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
  "base64 0.9.3",
- "log 0.4.11",
+ "log 0.4.14",
  "rustc-demangle",
  "serde_json",
  "tempfile",
@@ -2154,19 +2231,19 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-externref-xform"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
  "rayon",
  "walrus",
  "wasmprinter",
- "wast",
+ "wast 21.0.0",
  "wat",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.23"
+version = "0.4.24"
 dependencies = [
  "cfg-if 1.0.0",
  "futures-channel-preview",
@@ -2180,7 +2257,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "quote",
  "trybuild",
@@ -2191,7 +2268,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2202,13 +2279,13 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-multi-value-xform"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
  "rayon",
  "walrus",
  "wasmprinter",
- "wast",
+ "wast 21.0.0",
  "wat",
 ]
 
@@ -2223,11 +2300,11 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.73"
+version = "0.2.74"
 
 [[package]]
 name = "wasm-bindgen-test"
-version = "0.3.23"
+version = "0.3.24"
 dependencies = [
  "console_error_panic_hook",
  "js-sys",
@@ -2253,7 +2330,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-test-macro"
-version = "0.3.23"
+version = "0.3.24"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2261,7 +2338,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-threads-xform"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
  "walrus",
@@ -2270,7 +2347,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-wasm-conventions"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
  "walrus",
@@ -2278,10 +2355,10 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-wasm-interpreter"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
- "log 0.4.11",
+ "log 0.4.14",
  "tempfile",
  "walrus",
  "wasm-bindgen-wasm-conventions",
@@ -2290,13 +2367,13 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-webidl"
-version = "0.2.73"
+version = "0.2.74"
 dependencies = [
  "anyhow",
  "env_logger",
  "heck",
  "lazy_static",
- "log 0.4.11",
+ "log 0.4.14",
  "proc-macro2",
  "quote",
  "sourcefile",
@@ -2325,6 +2402,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "wasm-in-web-worker"
+version = "0.1.0"
+dependencies = [
+ "console_error_panic_hook",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
 name = "wasm2js"
 version = "0.1.0"
 dependencies = [
@@ -2339,18 +2425,24 @@ checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
 
 [[package]]
 name = "wasmparser"
-version = "0.60.2"
+version = "0.77.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2d5790a08f11f3d6b5767f6c49152df74b215e3dc5a38147713c4f6a05aac7f"
+checksum = "b35c86d22e720a07d954ebbed772d01180501afe7d03d464f413bb5f8914a8d6"
+
+[[package]]
+name = "wasmparser"
+version = "0.78.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65"
 
 [[package]]
 name = "wasmprinter"
-version = "0.2.7"
+version = "0.2.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc836dba85dd00df43d71b22063bcb367d324aa1be0d046077cc7fca4c43876"
+checksum = "2ccec894c70710c2e4669320a532cb2b9cfb97adb0429745642f8ce76916ed85"
 dependencies = [
  "anyhow",
- "wasmparser 0.60.2",
+ "wasmparser 0.78.2",
 ]
 
 [[package]]
@@ -2363,17 +2455,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "wast"
+version = "35.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
 name = "wat"
-version = "1.0.22"
+version = "1.0.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
+checksum = "8ec280a739b69173e0ffd12c1658507996836ba4e992ed9bc1e5385a0bd72a02"
 dependencies = [
- "wast",
+ "wast 35.0.2",
 ]
 
 [[package]]
 name = "web-sys"
-version = "0.3.50"
+version = "0.3.51"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2447,7 +2548,7 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "610950904727748ca09682e857f0d6d6437f0ca862f32f9229edba8cec8b2635"
 dependencies = [
- "nom",
+ "nom 5.1.2",
 ]
 
 [[package]]
@@ -2517,7 +2618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
 dependencies = [
  "anyhow",
- "wast",
+ "wast 21.0.0",
  "wit-writer",
 ]
 
@@ -2535,9 +2636,9 @@ dependencies = [
 
 [[package]]
 name = "wit-walrus"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b532d7bc47d02a08463adc934301efbf67e7b1e1284f8a68edc85d1ca84fa125"
+checksum = "ad559e3e4c6404b2a6a675d44129d62a3836e3b951b90112fa1c5feb852757cd"
 dependencies = [
  "anyhow",
  "id-arena",
@@ -2572,3 +2673,9 @@ dependencies = [
  "wasm-bindgen",
  "web-sys",
 ]
+
+[[package]]
+name = "wyz"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
diff --git a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
index e566d4cb1c97..ef8affdf2446 100644
--- a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -1,10 +1,17 @@
-{ rustPlatform, fetchFromGitHub, lib, openssl, pkg-config, stdenv, curl, Security
+{ rustPlatform
+, fetchFromGitHub
+, lib
+, openssl
+, pkg-config
+, stdenv
+, curl
+, Security
 , runCommand
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-bindgen-cli";
-  version = "0.2.73";
+  version = "0.2.74";
 
   src =
     let
@@ -12,9 +19,10 @@ rustPlatform.buildRustPackage rec {
         owner = "rustwasm";
         repo = "wasm-bindgen";
         rev = version;
-        sha256 = "sha256-JrfS9Z/ZqhoZXJxrxMSLpl2NiktTUkjW6q3xN9AU2zw=";
+        hash = "sha256-GsraYfWzUZjFpPpufTyXF0i2llBzjh04iTKio6m4NRA=";
       };
-    in runCommand "source" { } ''
+    in
+    runCommand "source" { } ''
       cp -R ${tarball} $out
       chmod -R +w $out
       cp ${./Cargo.lock} $out/Cargo.lock
@@ -23,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "sha256-2UBCcA4eBrSHrJjJdDprsysiOObg2GrC7QtveAydbhk=";
+  cargoHash = "sha256-djeI7kSGRHMpXnsbVlM2CDek02u5tFAsyAdHwbKC0y8=";
   cargoBuildFlags = [ "-p" pname ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
index 9c6d3ed8cb89..590518955121 100644
--- a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
     ./update-deps.patch
   ];
 
-  cargoSha256 = "0br7r8wz3knzgl3gjpq6z8w33my0yiaq711s1wih9jizhia02y5r";
+  cargoSha256 = "130gqvzpyr055xkqcy1r0y7l5k2dcv7n9zgr4ja7dm7iayzbwwi1";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/wrangler/default.nix b/nixpkgs/pkgs/development/tools/wrangler/default.nix
index 84c335820ad5..bb1f23164858 100644
--- a/nixpkgs/pkgs/development/tools/wrangler/default.nix
+++ b/nixpkgs/pkgs/development/tools/wrangler/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wrangler";
-  version = "1.16.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZOkoUMkpp89ON60xgz0ZzL9RAZeHstKTTl/UEc/y3Ls=";
+    sha256 = "sha256-chKmn38yB05NqDvtYWo4EwEIiD6kjy/1OMaMFM4qAA8=";
   };
 
-  cargoSha256 = "sha256-Cppj3sRJzH8UiyM8lXT2dWqsWr83EApYKqYq3nJQZi8=";
+  cargoSha256 = "sha256-pG3ZsRPa/7QRkUik6a987SlGrl3B0thnN3h62JyzdJo=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix b/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix
index e20dc878b535..0108ac8ef697 100644
--- a/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix
+++ b/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix
@@ -1,4 +1,4 @@
-{ runCommand, lib, sdks, xcodePlatform, writeText }:
+{ stdenv, runCommand, lib, sdks, xcodePlatform, writeText }:
 
 let
 
@@ -15,23 +15,23 @@ let
   };
 
   # These files are all based off of Xcode spec fies found in
-  # /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Speciications/.
+  # /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/PrivatePlugIns/IDEOSXSupportCore.ideplugin/Contents/Resources.
 
-  # Based off of the MacOSX Architectures.xcpsec file. All i386 stuff
-  # is removed because NixPkgs only supports darwin-x86_64.
+  # Based off of the "MacOSX Architectures.xcspec" file. All i386 stuff
+  # is removed because NixPkgs only supports darwin-x86_64 and darwin-arm64.
   Architectures = [
     {
       Identifier = "Standard";
       Type = "Architecture";
-      Name = "Standard Architectures (64-bit Intel)";
-      RealArchitectures = [ "x86_64" ];
+      Name = "Standard Architectures (Apple Silicon, 64-bit Intel)";
+      RealArchitectures = [ "arm64" "x86_64" ];
       ArchitectureSetting = "ARCHS_STANDARD";
     }
     {
       Identifier = "Universal";
       Type = "Architecture";
-      Name = "Universal (64-bit Intel)";
-      RealArchitectures = [ "x86_64" ];
+      Name = "Universal (Apple Silicon, 64-bit Intel)";
+      RealArchitectures = [ "arm64" "x86_64" ];
       ArchitectureSetting = "ARCHS_STANDARD_32_64_BIT";
     }
     {
@@ -43,25 +43,25 @@ let
     {
       Identifier = "Standard64bit";
       Type = "Architecture";
-      Name = "64-bit Intel";
-      RealArchitectures = [ "x86_64" ];
+      Name = "Apple Silicon, 64-bit Intel";
+      RealArchitectures = [ "arm64" "x86_64" ];
       ArchitectureSetting = "ARCHS_STANDARD_64_BIT";
     }
     {
-      Identifier = "x86_64";
+      Identifier = if stdenv.isAarch64 then "arm64" else "x86_64";
       Type = "Architecture";
-      Name = "Intel 64-bit";
+      Name = "Apple Silicon or Intel 64-bit";
     }
     {
       Identifier = "Standard_Including_64_bit";
       Type = "Architecture";
       Name = "Standard Architectures (including 64-bit)";
-      RealArchitectures = [ "x86_64" ];
+      RealArchitectures = [ "arm64" "x86_64" ];
       ArchitectureSetting = "ARCHS_STANDARD_INCLUDING_64_BIT";
     }
   ];
 
-  # Based off of the MacOSX Package Types.xcpsec file. Only keep the
+  # Based off of the "MacOSX Package Types.xcspec" file. Only keep the
   # bare minimum needed.
   PackageTypes = [
     {
@@ -169,7 +169,7 @@ let
     }
   ];
 
-  # Based off of the MacOSX Product Types.xcpsec file. All
+  # Based off of the "MacOSX Product Types.xcspec" file. All
   # bundles/wrapper are removed, because we prefer dynamic products in
   # NixPkgs.
   ProductTypes = [
diff --git a/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix b/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix
index 4f74b093717b..ca69bbe907df 100644
--- a/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix
+++ b/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix
@@ -28,7 +28,7 @@ let
   };
 
   platforms = callPackage ./platforms.nix {
-    inherit sdks xcodePlatform;
+    inherit sdks xcodePlatform stdenv;
   };
 
   xcconfig = writeText "nix.xcconfig" ''
diff --git a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix
deleted file mode 100644
index fc9b149887a5..000000000000
--- a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ pkgs ? (import ../../../../. {})
-, fetchFromGitHub ? pkgs.fetchFromGitHub
-}:
-
-fetchFromGitHub {
-  owner  = "moretea";
-  repo   = "yarn2nix";
-  rev    = "9e7279edde2a4e0f5ec04c53f5cd64440a27a1ae";
-  sha256 = "0zz2lrwn3y3rb8gzaiwxgz02dvy3s552zc70zvfqc0zh5dhydgn7";
-}
diff --git a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh
deleted file mode 100755
index bfe1cda5e719..000000000000
--- a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env bash
-
-###
-### This script runs 'nix-build' with ./fetch-source.nix and copies a subset
-### of the resulting store path into the current working directory.
-###
-### To disable running chmod, you may set the environment
-### variable "FIX_RIGHTS" to "no".
-###
-
-set -euo pipefail
-
-# 'nix-build' command
-NIX_BUILD_BIN="${NIX_BUILD_BIN:-"/usr/bin/env nix-build"}"
-
-# where to place the yarn2nix source
-TARGET_DIR="${TARGET_DIR:-"./yarn2nix"}"
-
-# whether to run 'chmod -R u=rwX,g=rX,o-rwx' on copied files in $TARGET_DIR
-FIX_RIGHTS="${FIX_RIGHTS:-"yes"}"
-
-fetch_git_source() {
-  [[ -f ./fetch-source.nix ]] && ret="$($NIX_BUILD_BIN --no-out-link ./fetch-source.nix)" && ec="$?" || ec="$?"
-  if [[ "$ec" == "0" ]]; then
-    echo "$ret"
-  else
-    printf "error: failed at 'fetch_git_source()' with '%s'" "$ret"
-  fi
-}
-
-result="$(fetch_git_source)"
-if [[ "$result" == "/nix/store"* ]]; then
-  mkdir -p "$TARGET_DIR"
-  cp -Rv \
-    "${result}/"{bin,internal,lib,nix,default.nix,package.json,yarn.nix,yarn.lock,LICENSE.txt} \
-    "$TARGET_DIR"
-  [[ "$FIX_RIGHTS" = "yes" ]] \
-    && chmod -v "u=rwX,g=rX,o-rwx" -R \
-    "$TARGET_DIR/"{bin,internal,lib,nix,default.nix,package.json,yarn.nix,yarn.lock,LICENSE.txt}
-fi
diff --git a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
index ad7e2738bf59..24ef1e85751e 100644
--- a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
@@ -62,7 +62,7 @@ in rec {
   ];
 
   mkYarnModules = {
-    name, # safe name and version, e.g. testcompany-one-modules-1.0.0
+    name ? "${pname}-${version}", # safe name and version, e.g. testcompany-one-modules-1.0.0
     pname, # original name, e.g @testcompany/one
     version,
     packageJSON,
@@ -228,6 +228,7 @@ in rec {
     yarnNix ? mkYarnNix { inherit yarnLock; },
     yarnFlags ? defaultYarnFlags,
     yarnPreBuild ? "",
+    yarnPostBuild ? "",
     pkgConfig ? {},
     extraBuildInputs ? [],
     publishBinsFor ? null,
@@ -249,6 +250,7 @@ in rec {
       deps = mkYarnModules {
         name = "${safeName}-modules-${version}";
         preBuild = yarnPreBuild;
+        postBuild = yarnPostBuild;
         workspaceDependencies = workspaceDependenciesTransitive;
         inherit packageJSON pname version yarnLock yarnNix yarnFlags pkgConfig;
       };
diff --git a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
index bd48b84f22d3..d3c7288a50a4 100644
--- a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
+++ b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
@@ -22,8 +22,8 @@ function urlToName(url) {
   }
 
   return url
-    .replace('https://registry.yarnpkg.com/', '') // prevents having long directory names
-    .replace(/[@/:-]/g, '_') // replace @ and : and - characters with underscore
+    .replace(/https:\/\/(.)*(.com)\//g, '') // prevents having long directory names
+    .replace(/[@/%:-]/g, '_') // replace @ and : and - and % characters with underscore
 }
 
 module.exports = urlToName
diff --git a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock
index 803f6b3875ab..6e22aa4fe4f1 100644
--- a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock
+++ b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock
@@ -2,108 +2,113 @@
 # yarn lockfile v1
 
 
-"@babel/code-frame@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
-  integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
+  integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
   dependencies:
-    "@babel/highlight" "^7.0.0"
+    "@babel/highlight" "^7.8.3"
 
-"@babel/generator@^7.2.2":
-  version "7.2.2"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc"
-  integrity sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==
+"@babel/generator@^7.9.6":
+  version "7.9.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43"
+  integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==
   dependencies:
-    "@babel/types" "^7.2.2"
+    "@babel/types" "^7.9.6"
     jsesc "^2.5.1"
-    lodash "^4.17.10"
+    lodash "^4.17.13"
     source-map "^0.5.0"
-    trim-right "^1.0.1"
 
-"@babel/helper-function-name@^7.1.0":
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
-  integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
+"@babel/helper-function-name@^7.9.5":
+  version "7.9.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
+  integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==
   dependencies:
-    "@babel/helper-get-function-arity" "^7.0.0"
-    "@babel/template" "^7.1.0"
-    "@babel/types" "^7.0.0"
+    "@babel/helper-get-function-arity" "^7.8.3"
+    "@babel/template" "^7.8.3"
+    "@babel/types" "^7.9.5"
 
-"@babel/helper-get-function-arity@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
-  integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
+"@babel/helper-get-function-arity@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5"
+  integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==
   dependencies:
-    "@babel/types" "^7.0.0"
+    "@babel/types" "^7.8.3"
 
-"@babel/helper-split-export-declaration@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813"
-  integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==
+"@babel/helper-split-export-declaration@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9"
+  integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==
   dependencies:
-    "@babel/types" "^7.0.0"
+    "@babel/types" "^7.8.3"
 
-"@babel/highlight@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
-  integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
+"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
+  version "7.9.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
+  integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==
+
+"@babel/highlight@^7.8.3":
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
+  integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==
   dependencies:
+    "@babel/helper-validator-identifier" "^7.9.0"
     chalk "^2.0.0"
-    esutils "^2.0.2"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3":
-  version "7.2.3"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489"
-  integrity sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==
-
-"@babel/template@^7.1.0":
-  version "7.2.2"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907"
-  integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    "@babel/parser" "^7.2.2"
-    "@babel/types" "^7.2.2"
-
-"@babel/traverse@^7.0.0":
-  version "7.2.3"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8"
-  integrity sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    "@babel/generator" "^7.2.2"
-    "@babel/helper-function-name" "^7.1.0"
-    "@babel/helper-split-export-declaration" "^7.0.0"
-    "@babel/parser" "^7.2.3"
-    "@babel/types" "^7.2.2"
+"@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6":
+  version "7.9.6"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7"
+  integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==
+
+"@babel/runtime-corejs3@^7.8.3":
+  version "7.9.6"
+  resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz#67aded13fffbbc2cb93247388cf84d77a4be9a71"
+  integrity sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA==
+  dependencies:
+    core-js-pure "^3.0.0"
+    regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.4.5":
+  version "7.9.6"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f"
+  integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.8.3":
+  version "7.8.6"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
+  integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==
+  dependencies:
+    "@babel/code-frame" "^7.8.3"
+    "@babel/parser" "^7.8.6"
+    "@babel/types" "^7.8.6"
+
+"@babel/traverse@^7.7.0":
+  version "7.9.6"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442"
+  integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==
+  dependencies:
+    "@babel/code-frame" "^7.8.3"
+    "@babel/generator" "^7.9.6"
+    "@babel/helper-function-name" "^7.9.5"
+    "@babel/helper-split-export-declaration" "^7.8.3"
+    "@babel/parser" "^7.9.6"
+    "@babel/types" "^7.9.6"
     debug "^4.1.0"
     globals "^11.1.0"
-    lodash "^4.17.10"
+    lodash "^4.17.13"
 
-"@babel/types@^7.0.0", "@babel/types@^7.2.2":
-  version "7.2.2"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e"
-  integrity sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==
+"@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.5", "@babel/types@^7.9.6":
+  version "7.9.6"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7"
+  integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==
   dependencies:
-    esutils "^2.0.2"
-    lodash "^4.17.10"
+    "@babel/helper-validator-identifier" "^7.9.5"
+    lodash "^4.17.13"
     to-fast-properties "^2.0.0"
 
-"@iamstarkov/listr-update-renderer@0.4.1":
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#d7c48092a2dcf90fd672b6c8b458649cb350c77e"
-  integrity sha512-IJyxQWsYDEkf8C8QthBn5N8tIUR9V9je6j3sMIpAkonaadjbvxmRC6RAhpa3RKxndhNnU2M6iNbtJwd7usQYIA==
-  dependencies:
-    chalk "^1.1.3"
-    cli-truncate "^0.2.1"
-    elegant-spinner "^1.0.1"
-    figures "^1.7.0"
-    indent-string "^3.0.0"
-    log-symbols "^1.0.2"
-    log-update "^2.3.0"
-    strip-ansi "^3.0.1"
-
 "@samverschueren/stream-to-observable@^0.3.0":
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
@@ -129,9 +134,9 @@ acorn-jsx@^3.0.0:
     acorn "^3.0.4"
 
 acorn-jsx@^5.0.0:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
-  integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
+  integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
 
 acorn@^3.0.4:
   version "3.3.0"
@@ -139,14 +144,14 @@ acorn@^3.0.4:
   integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
 
 acorn@^5.5.0:
-  version "5.7.3"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
-  integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
+  version "5.7.4"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
+  integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
 
-acorn@^6.0.2:
-  version "6.0.5"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a"
-  integrity sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==
+acorn@^6.0.7:
+  version "6.4.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
+  integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
 
 ajv-keywords@^2.1.0:
   version "2.1.1"
@@ -163,20 +168,20 @@ ajv@^5.2.3, ajv@^5.3.0:
     fast-json-stable-stringify "^2.0.0"
     json-schema-traverse "^0.3.0"
 
-ajv@^6.5.3, ajv@^6.6.1:
-  version "6.6.2"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d"
-  integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==
+ajv@^6.10.2, ajv@^6.9.1:
+  version "6.12.2"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"
+  integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==
   dependencies:
-    fast-deep-equal "^2.0.1"
+    fast-deep-equal "^3.1.1"
     fast-json-stable-stringify "^2.0.0"
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-ansi-escapes@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
-  integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
+ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
+  integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
 
 ansi-regex@^2.0.0:
   version "2.1.1"
@@ -188,10 +193,10 @@ ansi-regex@^3.0.0:
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
   integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
-ansi-regex@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9"
-  integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==
+ansi-regex@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
 
 ansi-styles@^2.2.1:
   version "2.2.1"
@@ -240,13 +245,14 @@ arr-union@^3.1.0:
   resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
   integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
 
-array-includes@^3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
-  integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=
+array-includes@^3.0.3, array-includes@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
+  integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==
   dependencies:
-    define-properties "^1.1.2"
-    es-abstract "^1.7.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.17.0"
+    is-string "^1.0.5"
 
 array-union@^1.0.1:
   version "1.0.2"
@@ -265,6 +271,14 @@ array-unique@^0.3.2:
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
   integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
 
+array.prototype.flat@^1.2.1:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b"
+  integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.0-next.1"
+
 arrify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -285,17 +299,15 @@ astral-regex@^1.0.0:
   resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
   integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
 
-atob@^2.1.1:
+atob@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
   integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
 
-axobject-query@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9"
-  integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==
-  dependencies:
-    ast-types-flow "0.0.7"
+axobject-query@^2.0.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799"
+  integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==
 
 babel-code-frame@^6.22.0:
   version "6.26.0"
@@ -307,16 +319,16 @@ babel-code-frame@^6.22.0:
     js-tokens "^3.0.2"
 
 babel-eslint@^10.0.1:
-  version "10.0.1"
-  resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
-  integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==
+  version "10.1.0"
+  resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
+  integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
   dependencies:
     "@babel/code-frame" "^7.0.0"
-    "@babel/parser" "^7.0.0"
-    "@babel/traverse" "^7.0.0"
-    "@babel/types" "^7.0.0"
-    eslint-scope "3.7.1"
+    "@babel/parser" "^7.7.0"
+    "@babel/traverse" "^7.7.0"
+    "@babel/types" "^7.7.0"
     eslint-visitor-keys "^1.0.0"
+    resolve "^1.12.0"
 
 babel-runtime@^6.23.0, babel-runtime@^6.26.0:
   version "6.26.0"
@@ -378,11 +390,6 @@ buffer-from@^1.0.0:
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
   integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
 
-builtin-modules@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-  integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
-
 cache-base@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -430,9 +437,9 @@ callsites@^2.0.0:
   integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
 
 callsites@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
-  integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
 camelcase-keys@^4.1.0:
   version "4.2.0"
@@ -468,10 +475,10 @@ chalk@^1.0.0, chalk@^1.1.3:
     strip-ansi "^3.0.0"
     supports-color "^2.0.0"
 
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
-  integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
   dependencies:
     ansi-styles "^3.2.1"
     escape-string-regexp "^1.0.5"
@@ -523,9 +530,9 @@ cli-truncate@^0.2.1:
     string-width "^1.0.1"
 
 cli-width@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
-  integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
+  integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
 
 cliui@^3.2.0:
   version "3.2.0"
@@ -567,9 +574,9 @@ color-name@1.1.3:
   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
 
 commander@^2.11.0, commander@^2.14.1, commander@^2.9.0:
-  version "2.19.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
-  integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
+  version "2.20.3"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
 common-tags@^1.4.0:
   version "1.8.0"
@@ -577,9 +584,9 @@ common-tags@^1.4.0:
   integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
 
 component-emitter@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
-  integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
 
 concat-map@0.0.1:
   version "0.0.1"
@@ -596,6 +603,11 @@ concat-stream@^1.6.0:
     readable-stream "^2.2.2"
     typedarray "^0.0.6"
 
+confusing-browser-globals@^1.0.5:
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd"
+  integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==
+
 contains-path@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
@@ -606,33 +618,29 @@ copy-descriptor@^0.1.0:
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
+core-js-pure@^3.0.0:
+  version "3.6.5"
+  resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
+  integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
+
 core-js@^2.4.0:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042"
-  integrity sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==
+  version "2.6.11"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
+  integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
 
 core-util-is@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 
-cosmiconfig@5.0.6:
-  version "5.0.6"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
-  integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==
-  dependencies:
-    is-directory "^0.3.1"
-    js-yaml "^3.9.0"
-    parse-json "^4.0.0"
-
-cosmiconfig@^5.0.7:
-  version "5.0.7"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04"
-  integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==
+cosmiconfig@^5.0.7, cosmiconfig@^5.2.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+  integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
   dependencies:
     import-fresh "^2.0.0"
     is-directory "^0.3.1"
-    js-yaml "^3.9.0"
+    js-yaml "^3.13.1"
     parse-json "^4.0.0"
 
 cross-spawn@^5.0.1, cross-spawn@^5.1.0:
@@ -656,16 +664,16 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
     which "^1.2.9"
 
 damerau-levenshtein@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
-  integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
+  integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==
 
 date-fns@^1.27.2:
   version "1.30.1"
   resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
   integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
 
-debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -702,9 +710,16 @@ dedent@^0.7.0:
   integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
 
 deep-equal@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
-  integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
+  integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
+  dependencies:
+    is-arguments "^1.0.4"
+    is-date-object "^1.0.1"
+    is-regex "^1.0.4"
+    object-is "^1.0.1"
+    object-keys "^1.1.1"
+    regexp.prototype.flags "^1.2.0"
 
 deep-is@~0.1.3:
   version "0.1.3"
@@ -753,9 +768,9 @@ del@^3.0.0:
     rimraf "^2.2.8"
 
 dlv@^1.1.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.2.tgz#270f6737b30d25b6657a7e962c784403f85137e5"
-  integrity sha512-xxD4VSH67GbRvSGUrckvha94RD7hjgOH7rqGxiytLpkaeMvixOHFZTGFK6EkIm3T761OVHT8ABHmGkq9gXgu6Q==
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
+  integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
 
 docopt@^0.6.2:
   version "0.6.2"
@@ -777,20 +792,27 @@ doctrine@^2.1.0:
   dependencies:
     esutils "^2.0.2"
 
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
 elegant-spinner@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
   integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
 
-emoji-regex@^6.5.1:
-  version "6.5.1"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2"
-  integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==
+emoji-regex@^7.0.1, emoji-regex@^7.0.2:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
 
 end-of-stream@^1.1.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
-  integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
+  version "1.4.4"
+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
   dependencies:
     once "^1.4.0"
 
@@ -801,22 +823,27 @@ error-ex@^1.2.0, error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.7.0:
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
-  integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
+es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
+  version "1.17.5"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
+  integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==
   dependencies:
-    es-to-primitive "^1.2.0"
+    es-to-primitive "^1.2.1"
     function-bind "^1.1.1"
     has "^1.0.3"
-    is-callable "^1.1.4"
-    is-regex "^1.0.4"
-    object-keys "^1.0.12"
+    has-symbols "^1.0.1"
+    is-callable "^1.1.5"
+    is-regex "^1.0.5"
+    object-inspect "^1.7.0"
+    object-keys "^1.1.1"
+    object.assign "^4.1.0"
+    string.prototype.trimleft "^2.1.1"
+    string.prototype.trimright "^2.1.1"
 
-es-to-primitive@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
-  integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
+es-to-primitive@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
   dependencies:
     is-callable "^1.1.4"
     is-date-object "^1.0.1"
@@ -827,28 +854,28 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
   integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
 
-eslint-config-airbnb-base@^13.1.0:
-  version "13.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c"
-  integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==
+eslint-config-airbnb-base@^13.2.0:
+  version "13.2.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943"
+  integrity sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==
   dependencies:
-    eslint-restricted-globals "^0.1.1"
+    confusing-browser-globals "^1.0.5"
     object.assign "^4.1.0"
-    object.entries "^1.0.4"
+    object.entries "^1.1.0"
 
 eslint-config-airbnb@^17.1.0:
-  version "17.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732"
-  integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==
+  version "17.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz#2272e0b86bb1e2b138cdf88d07a3b6f4cda3d626"
+  integrity sha512-xCu//8a/aWqagKljt+1/qAM62BYZeNq04HmdevG5yUGWpja0I/xhqd6GdLRch5oetEGFiJAnvtGuTEAese53Qg==
   dependencies:
-    eslint-config-airbnb-base "^13.1.0"
+    eslint-config-airbnb-base "^13.2.0"
     object.assign "^4.1.0"
-    object.entries "^1.0.4"
+    object.entries "^1.1.0"
 
 eslint-config-prettier@^3.3.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz#41afc8d3b852e757f06274ed6c44ca16f939a57d"
-  integrity sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz#8ca3ffac4bd6eeef623a0651f9d754900e3ec217"
+  integrity sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ==
   dependencies:
     get-stdin "^6.0.0"
 
@@ -857,59 +884,62 @@ eslint-config-standard@^12.0.0:
   resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9"
   integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==
 
-eslint-import-resolver-node@^0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
-  integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
+eslint-import-resolver-node@^0.3.2:
+  version "0.3.3"
+  resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404"
+  integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==
   dependencies:
     debug "^2.6.9"
-    resolve "^1.5.0"
+    resolve "^1.13.1"
 
-eslint-module-utils@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746"
-  integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=
+eslint-module-utils@^2.4.1:
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6"
+  integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==
   dependencies:
-    debug "^2.6.8"
-    pkg-dir "^1.0.0"
+    debug "^2.6.9"
+    pkg-dir "^2.0.0"
 
 eslint-plugin-es@^1.3.1:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6"
-  integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998"
+  integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==
   dependencies:
-    eslint-utils "^1.3.0"
+    eslint-utils "^1.4.2"
     regexpp "^2.0.1"
 
 eslint-plugin-import@^2.14.0:
-  version "2.14.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8"
-  integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==
+  version "2.20.2"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d"
+  integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==
   dependencies:
+    array-includes "^3.0.3"
+    array.prototype.flat "^1.2.1"
     contains-path "^0.1.0"
-    debug "^2.6.8"
+    debug "^2.6.9"
     doctrine "1.5.0"
-    eslint-import-resolver-node "^0.3.1"
-    eslint-module-utils "^2.2.0"
-    has "^1.0.1"
-    lodash "^4.17.4"
-    minimatch "^3.0.3"
+    eslint-import-resolver-node "^0.3.2"
+    eslint-module-utils "^2.4.1"
+    has "^1.0.3"
+    minimatch "^3.0.4"
+    object.values "^1.1.0"
     read-pkg-up "^2.0.0"
-    resolve "^1.6.0"
+    resolve "^1.12.0"
 
 eslint-plugin-jsx-a11y@^6.1.2:
-  version "6.1.2"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88"
-  integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==
+  version "6.2.3"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa"
+  integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==
   dependencies:
+    "@babel/runtime" "^7.4.5"
     aria-query "^3.0.0"
     array-includes "^3.0.3"
     ast-types-flow "^0.0.7"
-    axobject-query "^2.0.1"
+    axobject-query "^2.0.2"
     damerau-levenshtein "^1.0.4"
-    emoji-regex "^6.5.1"
+    emoji-regex "^7.0.2"
     has "^1.0.3"
-    jsx-ast-utils "^2.0.1"
+    jsx-ast-utils "^2.2.1"
 
 eslint-plugin-node@^8.0.0:
   version "8.0.1"
@@ -924,40 +954,31 @@ eslint-plugin-node@^8.0.0:
     semver "^5.5.0"
 
 eslint-plugin-promise@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2"
-  integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a"
+  integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==
 
 eslint-plugin-react@^7.12.2:
-  version "7.12.3"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.3.tgz#b9ca4cd7cd3f5d927db418a1950366a12d4568fd"
-  integrity sha512-WTIA3cS8OzkPeCi4KWuPmjR33lgG9r9Y/7RmnLTRw08MZKgAfnK/n3BO4X0S67MPkVLazdfCNT/XWqcDu4BLTA==
+  version "7.20.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3"
+  integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA==
   dependencies:
-    array-includes "^3.0.3"
+    array-includes "^3.1.1"
     doctrine "^2.1.0"
     has "^1.0.3"
-    jsx-ast-utils "^2.0.1"
-    object.fromentries "^2.0.0"
-    prop-types "^15.6.2"
-    resolve "^1.9.0"
+    jsx-ast-utils "^2.2.3"
+    object.entries "^1.1.1"
+    object.fromentries "^2.0.2"
+    object.values "^1.1.1"
+    prop-types "^15.7.2"
+    resolve "^1.15.1"
+    string.prototype.matchall "^4.0.2"
+    xregexp "^4.3.0"
 
 eslint-plugin-standard@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c"
-  integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==
-
-eslint-restricted-globals@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
-  integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=
-
-eslint-scope@3.7.1:
-  version "3.7.1"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
-  integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=
-  dependencies:
-    esrecurse "^4.1.0"
-    estraverse "^4.1.1"
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4"
+  integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==
 
 eslint-scope@^3.7.1:
   version "3.7.3"
@@ -967,23 +988,25 @@ eslint-scope@^3.7.1:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
 
-eslint-scope@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
-  integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==
+eslint-scope@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
+  integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
   dependencies:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
 
-eslint-utils@^1.3.0, eslint-utils@^1.3.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
-  integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==
+eslint-utils@^1.3.1, eslint-utils@^1.4.2:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
+  integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
+  dependencies:
+    eslint-visitor-keys "^1.1.0"
 
-eslint-visitor-keys@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
-  integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
+eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
+  integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
 
 eslint@^4.0.0, eslint@^4.5.0:
   version "4.19.1"
@@ -1030,46 +1053,45 @@ eslint@^4.0.0, eslint@^4.5.0:
     text-table "~0.2.0"
 
 eslint@^5.11.1:
-  version "5.12.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.0.tgz#fab3b908f60c52671fb14e996a450b96c743c859"
-  integrity sha512-LntwyPxtOHrsJdcSwyQKVtHofPHdv+4+mFwEe91r2V13vqpM8yLr7b1sW+Oo/yheOPkWYsYlYJCkzlFAt8KV7g==
+  version "5.16.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
+  integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==
   dependencies:
     "@babel/code-frame" "^7.0.0"
-    ajv "^6.5.3"
+    ajv "^6.9.1"
     chalk "^2.1.0"
     cross-spawn "^6.0.5"
     debug "^4.0.1"
-    doctrine "^2.1.0"
-    eslint-scope "^4.0.0"
+    doctrine "^3.0.0"
+    eslint-scope "^4.0.3"
     eslint-utils "^1.3.1"
     eslint-visitor-keys "^1.0.0"
-    espree "^5.0.0"
+    espree "^5.0.1"
     esquery "^1.0.1"
     esutils "^2.0.2"
-    file-entry-cache "^2.0.0"
+    file-entry-cache "^5.0.1"
     functional-red-black-tree "^1.0.1"
     glob "^7.1.2"
     globals "^11.7.0"
     ignore "^4.0.6"
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
-    inquirer "^6.1.0"
-    js-yaml "^3.12.0"
+    inquirer "^6.2.2"
+    js-yaml "^3.13.0"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.3.0"
-    lodash "^4.17.5"
+    lodash "^4.17.11"
     minimatch "^3.0.4"
     mkdirp "^0.5.1"
     natural-compare "^1.4.0"
     optionator "^0.8.2"
     path-is-inside "^1.0.2"
-    pluralize "^7.0.0"
     progress "^2.0.0"
     regexpp "^2.0.1"
     semver "^5.5.1"
     strip-ansi "^4.0.0"
     strip-json-comments "^2.0.1"
-    table "^5.0.2"
+    table "^5.2.3"
     text-table "^0.2.0"
 
 espree@^3.5.2, espree@^3.5.4:
@@ -1080,12 +1102,12 @@ espree@^3.5.2, espree@^3.5.4:
     acorn "^5.5.0"
     acorn-jsx "^3.0.0"
 
-espree@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c"
-  integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==
+espree@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
+  integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
   dependencies:
-    acorn "^6.0.2"
+    acorn "^6.0.7"
     acorn-jsx "^5.0.0"
     eslint-visitor-keys "^1.0.0"
 
@@ -1095,11 +1117,11 @@ esprima@^4.0.0:
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
 esquery@^1.0.0, esquery@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
-  integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
+  integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
   dependencies:
-    estraverse "^4.0.0"
+    estraverse "^5.1.0"
 
 esrecurse@^4.1.0:
   version "4.2.1"
@@ -1108,15 +1130,20 @@ esrecurse@^4.1.0:
   dependencies:
     estraverse "^4.1.0"
 
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-  integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
+estraverse@^4.1.0, estraverse@^4.1.1:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
+  integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
 
 esutils@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-  integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
 
 execa@^0.7.0:
   version "0.7.0"
@@ -1181,10 +1208,10 @@ external-editor@^2.0.4:
     iconv-lite "^0.4.17"
     tmp "^0.0.33"
 
-external-editor@^3.0.0:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
-  integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
+external-editor@^3.0.3:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+  integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
   dependencies:
     chardet "^0.7.0"
     iconv-lite "^0.4.24"
@@ -1209,17 +1236,17 @@ fast-deep-equal@^1.0.0:
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
   integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
 
-fast-deep-equal@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
-  integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+fast-deep-equal@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
+  integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
 
 fast-json-stable-stringify@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
-  integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
-fast-levenshtein@~2.0.4:
+fast-levenshtein@~2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -1247,6 +1274,13 @@ file-entry-cache@^2.0.0:
     flat-cache "^1.2.1"
     object-assign "^4.0.1"
 
+file-entry-cache@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
+  integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
+  dependencies:
+    flat-cache "^2.0.1"
+
 fill-range@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -1257,19 +1291,6 @@ fill-range@^4.0.0:
     repeat-string "^1.6.1"
     to-regex-range "^2.1.0"
 
-find-parent-dir@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
-  integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=
-
-find-up@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
-  integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
-  dependencies:
-    path-exists "^2.0.0"
-    pinkie-promise "^2.0.0"
-
 find-up@^2.0.0, find-up@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
@@ -1294,6 +1315,25 @@ flat-cache@^1.2.1:
     rimraf "~2.6.2"
     write "^0.2.1"
 
+flat-cache@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
+  integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
+  dependencies:
+    flatted "^2.0.0"
+    rimraf "2.6.3"
+    write "1.0.3"
+
+flatted@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+  integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+
+fn-name@~2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
+  integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=
+
 for-in@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -1336,9 +1376,9 @@ get-caller-file@^1.0.1:
   integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
 
 get-own-enumerable-property-symbols@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203"
-  integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
+  integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
 
 get-stdin@^5.0.1:
   version "5.0.1"
@@ -1368,9 +1408,9 @@ get-value@^2.0.3, get-value@^2.0.6:
   integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
 
 glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
-  version "7.1.3"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
-  integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -1392,9 +1432,9 @@ glob@~7.0.6:
     path-is-absolute "^1.0.0"
 
 globals@^11.0.1, globals@^11.1.0, globals@^11.7.0:
-  version "11.9.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
-  integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
+  version "11.12.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
 
 globby@^6.1.0:
   version "6.1.0"
@@ -1408,9 +1448,9 @@ globby@^6.1.0:
     pinkie-promise "^2.0.0"
 
 graceful-fs@^4.1.2:
-  version "4.1.15"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
-  integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
+  version "4.2.4"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+  integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
 
 has-ansi@^2.0.0:
   version "2.0.0"
@@ -1429,10 +1469,10 @@ has-flag@^3.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
   integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
 
-has-symbols@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
-  integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
+has-symbols@^1.0.0, has-symbols@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+  integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
 
 has-value@^0.3.1:
   version "0.3.1"
@@ -1465,7 +1505,7 @@ has-values@^1.0.0:
     is-number "^3.0.0"
     kind-of "^4.0.0"
 
-has@^1.0.1, has@^1.0.3:
+has@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
   integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@@ -1473,9 +1513,9 @@ has@^1.0.1, has@^1.0.3:
     function-bind "^1.1.1"
 
 hosted-git-info@^2.1.4:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
-  integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
+  version "2.8.8"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+  integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
 
 husky@^1.3.1:
   version "1.3.1"
@@ -1511,9 +1551,9 @@ ignore@^4.0.6:
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
 
 ignore@^5.0.2:
-  version "5.0.4"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45"
-  integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g==
+  version "5.1.4"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
+  integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
 
 import-fresh@^2.0.0:
   version "2.0.0"
@@ -1524,9 +1564,9 @@ import-fresh@^2.0.0:
     resolve-from "^3.0.0"
 
 import-fresh@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
-  integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
+  integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
   dependencies:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
@@ -1550,9 +1590,9 @@ inflight@^1.0.4:
     wrappy "1"
 
 inherits@2, inherits@^2.0.3, inherits@~2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
 inquirer@^3.0.6:
   version "3.3.0"
@@ -1574,25 +1614,34 @@ inquirer@^3.0.6:
     strip-ansi "^4.0.0"
     through "^2.3.6"
 
-inquirer@^6.1.0:
-  version "6.2.1"
-  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52"
-  integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==
+inquirer@^6.2.2:
+  version "6.5.2"
+  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
+  integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
   dependencies:
-    ansi-escapes "^3.0.0"
-    chalk "^2.0.0"
+    ansi-escapes "^3.2.0"
+    chalk "^2.4.2"
     cli-cursor "^2.1.0"
     cli-width "^2.0.0"
-    external-editor "^3.0.0"
+    external-editor "^3.0.3"
     figures "^2.0.0"
-    lodash "^4.17.10"
+    lodash "^4.17.12"
     mute-stream "0.0.7"
     run-async "^2.2.0"
-    rxjs "^6.1.0"
+    rxjs "^6.4.0"
     string-width "^2.1.0"
-    strip-ansi "^5.0.0"
+    strip-ansi "^5.1.0"
     through "^2.3.6"
 
+internal-slot@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3"
+  integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==
+  dependencies:
+    es-abstract "^1.17.0-next.1"
+    has "^1.0.3"
+    side-channel "^1.0.2"
+
 invert-kv@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
@@ -1612,6 +1661,11 @@ is-accessor-descriptor@^1.0.0:
   dependencies:
     kind-of "^6.0.0"
 
+is-arguments@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
+  integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
+
 is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -1622,17 +1676,10 @@ is-buffer@^1.1.5:
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
   integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
 
-is-builtin-module@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
-  integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
-  dependencies:
-    builtin-modules "^1.0.0"
-
-is-callable@^1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
-  integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
+is-callable@^1.1.4, is-callable@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
+  integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==
 
 is-ci@^2.0.0:
   version "2.0.0"
@@ -1656,9 +1703,9 @@ is-data-descriptor@^1.0.0:
     kind-of "^6.0.0"
 
 is-date-object@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
-  integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+  integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
 
 is-descriptor@^0.1.0:
   version "0.1.6"
@@ -1713,9 +1760,9 @@ is-fullwidth-code-point@^2.0.0:
   integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
 
 is-glob@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
-  integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
   dependencies:
     is-extglob "^2.1.1"
 
@@ -1757,7 +1804,7 @@ is-path-inside@^1.0.0:
   dependencies:
     path-is-inside "^1.0.1"
 
-is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
   integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
@@ -1765,16 +1812,16 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
     isobject "^3.0.1"
 
 is-promise@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-  integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
+  integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
 
-is-regex@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
-  integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
+is-regex@^1.0.4, is-regex@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
+  integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
   dependencies:
-    has "^1.0.1"
+    has "^1.0.3"
 
 is-regexp@^1.0.0:
   version "1.0.0"
@@ -1791,12 +1838,17 @@ is-stream@^1.1.0:
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
   integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
 
+is-string@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
+  integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
+
 is-symbol@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
-  integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+  integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
   dependencies:
-    has-symbols "^1.0.0"
+    has-symbols "^1.0.1"
 
 is-windows@^1.0.2:
   version "1.0.2"
@@ -1825,21 +1877,6 @@ isobject@^3.0.0, isobject@^3.0.1:
   resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
   integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
 
-jest-get-type@^22.1.0:
-  version "22.4.3"
-  resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
-  integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==
-
-jest-validate@^23.5.0:
-  version "23.6.0"
-  resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474"
-  integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==
-  dependencies:
-    chalk "^2.0.1"
-    jest-get-type "^22.1.0"
-    leven "^2.1.0"
-    pretty-format "^23.6.0"
-
 "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -1850,10 +1887,10 @@ js-tokens@^3.0.2:
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
   integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
 
-js-yaml@^3.12.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
-  version "3.12.1"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600"
-  integrity sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==
+js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1:
+  version "3.13.1"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+  integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
   dependencies:
     argparse "^1.0.7"
     esprima "^4.0.0"
@@ -1883,12 +1920,13 @@ json-stable-stringify-without-jsonify@^1.0.1:
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
-jsx-ast-utils@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
-  integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=
+jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3:
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f"
+  integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==
   dependencies:
     array-includes "^3.0.3"
+    object.assign "^4.1.0"
 
 kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
   version "3.2.2"
@@ -1910,9 +1948,9 @@ kind-of@^5.0.0:
   integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
 
 kind-of@^6.0.0, kind-of@^6.0.2:
-  version "6.0.2"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
-  integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+  integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
 
 lcid@^1.0.0:
   version "1.0.0"
@@ -1921,11 +1959,6 @@ lcid@^1.0.0:
   dependencies:
     invert-kv "^1.0.0"
 
-leven@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
-  integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
-
 levn@^0.3.0, levn@~0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
@@ -1935,25 +1968,23 @@ levn@^0.3.0, levn@~0.3.0:
     type-check "~0.3.2"
 
 lint-staged@^8.1.0:
-  version "8.1.0"
-  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz#dbc3ae2565366d8f20efb9f9799d076da64863f2"
-  integrity sha512-yfSkyJy7EuVsaoxtUSEhrD81spdJOe/gMTGea3XaV7HyoRhTb9Gdlp6/JppRZERvKSEYXP9bjcmq6CA5oL2lYQ==
+  version "8.2.1"
+  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.2.1.tgz#752fcf222d9d28f323a3b80f1e668f3654ff221f"
+  integrity sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A==
   dependencies:
-    "@iamstarkov/listr-update-renderer" "0.4.1"
     chalk "^2.3.1"
     commander "^2.14.1"
-    cosmiconfig "5.0.6"
+    cosmiconfig "^5.2.0"
     debug "^3.1.0"
     dedent "^0.7.0"
     del "^3.0.0"
     execa "^1.0.0"
-    find-parent-dir "^0.3.0"
     g-status "^2.0.2"
     is-glob "^4.0.0"
     is-windows "^1.0.2"
-    jest-validate "^23.5.0"
     listr "^0.14.2"
-    lodash "^4.17.5"
+    listr-update-renderer "^0.5.0"
+    lodash "^4.17.11"
     log-symbols "^2.2.0"
     micromatch "^3.1.8"
     npm-which "^3.0.1"
@@ -1964,6 +1995,7 @@ lint-staged@^8.1.0:
     staged-git-files "1.1.2"
     string-argv "^0.0.2"
     stringify-object "^3.2.2"
+    yup "^0.27.0"
 
 listr-silent-renderer@^1.1.1:
   version "1.1.1"
@@ -2041,19 +2073,19 @@ lodash.memoize@^4.1.2:
   integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
 
 lodash.merge@^4.6.0:
-  version "4.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
-  integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
 
 lodash.unescape@4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
   integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
 
-lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
-  version "4.17.11"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
-  integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
+lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.3.0:
+  version "4.17.15"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
+  integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
 
 log-symbols@^1.0.2:
   version "1.0.2"
@@ -2087,11 +2119,11 @@ loglevel-colored-level-prefix@^1.0.0:
     loglevel "^1.4.1"
 
 loglevel@^1.4.1:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
-  integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
+  version "1.6.8"
+  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
+  integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==
 
-loose-envify@^1.3.1:
+loose-envify@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
   integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -2184,37 +2216,32 @@ mimic-fn@^1.0.0:
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
   integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
 
-minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+minimatch@^3.0.2, minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@0.0.8:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
-minimist@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-  integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+minimist@^1.2.0, minimist@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
 mixin-deep@^1.2.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
-  integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
   dependencies:
     for-in "^1.0.2"
     is-extendable "^1.0.1"
 
 mkdirp@^0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
-  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+  version "0.5.5"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
   dependencies:
-    minimist "0.0.8"
+    minimist "^1.2.5"
 
 ms@2.0.0:
   version "2.0.0"
@@ -2222,9 +2249,9 @@ ms@2.0.0:
   integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
 
 ms@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
-  integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
 mute-stream@0.0.7:
   version "0.0.7"
@@ -2266,12 +2293,12 @@ nopt@~3.0.6:
     abbrev "1"
 
 normalize-package-data@^2.3.2:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
-  integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+  integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
   dependencies:
     hosted-git-info "^2.1.4"
-    is-builtin-module "^1.0.0"
+    resolve "^1.10.0"
     semver "2 || 3 || 4 || 5"
     validate-npm-package-license "^3.0.1"
 
@@ -2317,10 +2344,23 @@ object-copy@^0.1.0:
     define-property "^0.2.5"
     kind-of "^3.0.3"
 
-object-keys@^1.0.11, object-keys@^1.0.12:
-  version "1.0.12"
-  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
-  integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==
+object-inspect@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
+  integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
+
+object-is@^1.0.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6"
+  integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.5"
+
+object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
 
 object-visit@^1.0.0:
   version "1.0.1"
@@ -2339,25 +2379,25 @@ object.assign@^4.1.0:
     has-symbols "^1.0.0"
     object-keys "^1.0.11"
 
-object.entries@^1.0.4:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
-  integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==
+object.entries@^1.1.0, object.entries@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b"
+  integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==
   dependencies:
     define-properties "^1.1.3"
-    es-abstract "^1.12.0"
+    es-abstract "^1.17.0-next.1"
     function-bind "^1.1.1"
     has "^1.0.3"
 
-object.fromentries@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
-  integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
+object.fromentries@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
+  integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==
   dependencies:
-    define-properties "^1.1.2"
-    es-abstract "^1.11.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.17.0-next.1"
     function-bind "^1.1.1"
-    has "^1.0.1"
+    has "^1.0.3"
 
 object.pick@^1.3.0:
   version "1.3.0"
@@ -2366,6 +2406,16 @@ object.pick@^1.3.0:
   dependencies:
     isobject "^3.0.1"
 
+object.values@^1.1.0, object.values@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
+  integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.0-next.1"
+    function-bind "^1.1.1"
+    has "^1.0.3"
+
 once@^1.3.0, once@^1.3.1, once@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -2381,16 +2431,16 @@ onetime@^2.0.0:
     mimic-fn "^1.0.0"
 
 optionator@^0.8.2:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
-  integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
+  version "0.8.3"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+  integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
   dependencies:
     deep-is "~0.1.3"
-    fast-levenshtein "~2.0.4"
+    fast-levenshtein "~2.0.6"
     levn "~0.3.0"
     prelude-ls "~1.1.2"
     type-check "~0.3.2"
-    wordwrap "~1.0.0"
+    word-wrap "~1.2.3"
 
 os-locale@^2.0.0:
   version "2.1.0"
@@ -2419,9 +2469,9 @@ p-limit@^1.1.0:
     p-try "^1.0.0"
 
 p-limit@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68"
-  integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
   dependencies:
     p-try "^2.0.0"
 
@@ -2445,9 +2495,9 @@ p-map@^1.1.1:
   integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
 
 p-map@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50"
-  integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+  integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
 
 p-try@^1.0.0:
   version "1.0.0"
@@ -2455,14 +2505,14 @@ p-try@^1.0.0:
   integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
 
 p-try@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
-  integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
 
 parent-module@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5"
-  integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA==
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
   dependencies:
     callsites "^3.0.0"
 
@@ -2486,13 +2536,6 @@ pascalcase@^0.1.1:
   resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
   integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
 
-path-exists@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
-  integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
-  dependencies:
-    pinkie-promise "^2.0.0"
-
 path-exists@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -2547,12 +2590,12 @@ pinkie@^2.0.0:
   resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
   integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
 
-pkg-dir@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
-  integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
+pkg-dir@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+  integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
   dependencies:
-    find-up "^1.0.0"
+    find-up "^2.1.0"
 
 pkg-dir@^3.0.0:
   version "3.0.0"
@@ -2562,9 +2605,9 @@ pkg-dir@^3.0.0:
     find-up "^3.0.0"
 
 please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
-  integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
+  integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
   dependencies:
     semver-compare "^1.0.0"
 
@@ -2627,11 +2670,11 @@ prettier-eslint@^8.5.0:
     vue-eslint-parser "^2.0.2"
 
 prettier@^1.7.0:
-  version "1.15.3"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a"
-  integrity sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==
+  version "1.19.1"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
+  integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
 
-pretty-format@^23.0.1, pretty-format@^23.6.0:
+pretty-format@^23.0.1:
   version "23.6.0"
   resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
   integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==
@@ -2640,22 +2683,28 @@ pretty-format@^23.0.1, pretty-format@^23.6.0:
     ansi-styles "^3.2.0"
 
 process-nextick-args@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
-  integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
 
 progress@^2.0.0:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
-prop-types@^15.6.2:
-  version "15.6.2"
-  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
-  integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
+prop-types@^15.7.2:
+  version "15.7.2"
+  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
+  integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
   dependencies:
-    loose-envify "^1.3.1"
+    loose-envify "^1.4.0"
     object-assign "^4.1.1"
+    react-is "^16.8.1"
+
+property-expr@^1.5.0:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f"
+  integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==
 
 pseudomap@^1.0.2:
   version "1.0.2"
@@ -2685,6 +2734,11 @@ ramda@^0.26.1:
   resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
   integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
 
+react-is@^16.8.1:
+  version "16.13.1"
+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
 read-pkg-up@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
@@ -2712,9 +2766,9 @@ read-pkg@^4.0.1:
     pify "^3.0.0"
 
 readable-stream@^2.2.2:
-  version "2.3.6"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
-  integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+  version "2.3.7"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
   dependencies:
     core-util-is "~1.0.0"
     inherits "~2.0.3"
@@ -2729,6 +2783,11 @@ regenerator-runtime@^0.11.0:
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
   integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
 
+regenerator-runtime@^0.13.4:
+  version "0.13.5"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
+  integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
+
 regex-not@^1.0.0, regex-not@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@@ -2737,6 +2796,14 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
 
+regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
+  integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.0-next.1"
+
 regexpp@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
@@ -2805,10 +2872,10 @@ resolve-url@^0.2.1:
   resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
   integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
 
-resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1, resolve@^1.9.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06"
-  integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==
+resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.8.1:
+  version "1.17.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
+  integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
   dependencies:
     path-parse "^1.0.6"
 
@@ -2825,19 +2892,24 @@ ret@~0.1.10:
   resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
   integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
 
-rimraf@^2.2.8, rimraf@~2.6.2:
+rimraf@2.6.3, rimraf@~2.6.2:
   version "2.6.3"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
   integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
   dependencies:
     glob "^7.1.3"
 
-run-async@^2.2.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
-  integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
+rimraf@^2.2.8:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
   dependencies:
-    is-promise "^2.1.0"
+    glob "^7.1.3"
+
+run-async@^2.2.0:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
+  integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
 
 run-node@^1.0.0:
   version "1.0.0"
@@ -2863,10 +2935,10 @@ rxjs@^5.3.0:
   dependencies:
     symbol-observable "1.0.1"
 
-rxjs@^6.1.0, rxjs@^6.3.3:
-  version "6.3.3"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55"
-  integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==
+rxjs@^6.3.3, rxjs@^6.4.0:
+  version "6.5.5"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
+  integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
   dependencies:
     tslib "^1.9.0"
 
@@ -2893,9 +2965,9 @@ semver-compare@^1.0.0:
   integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
 
 "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1:
-  version "5.6.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
-  integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
 semver@5.5.0:
   version "5.5.0"
@@ -2907,20 +2979,10 @@ set-blocking@^2.0.0:
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
 
-set-value@^0.4.3:
-  version "0.4.3"
-  resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
-  integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
-  dependencies:
-    extend-shallow "^2.0.1"
-    is-extendable "^0.1.1"
-    is-plain-object "^2.0.1"
-    to-object-path "^0.3.0"
-
-set-value@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
-  integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
+set-value@^2.0.0, set-value@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
   dependencies:
     extend-shallow "^2.0.1"
     is-extendable "^0.1.1"
@@ -2939,15 +3001,23 @@ shebang-regex@^1.0.0:
   resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
   integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
 
+side-channel@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947"
+  integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==
+  dependencies:
+    es-abstract "^1.17.0-next.1"
+    object-inspect "^1.7.0"
+
 signal-exit@^3.0.0, signal-exit@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-  integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+  integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
 
 simple-git@^1.85.0:
-  version "1.107.0"
-  resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz#12cffaf261c14d6f450f7fdb86c21ccee968b383"
-  integrity sha512-t4OK1JRlp4ayKRfcW6owrWcRVLyHRUlhGd0uN6ZZTqfDq8a5XpcUdOKiGRNobHEuMtNqzp0vcJNvhYWwh5PsQA==
+  version "1.132.0"
+  resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.132.0.tgz#53ac4c5ec9e74e37c2fd461e23309f22fcdf09b1"
+  integrity sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==
   dependencies:
     debug "^4.0.1"
 
@@ -2968,10 +3038,10 @@ slice-ansi@1.0.0:
   dependencies:
     is-fullwidth-code-point "^2.0.0"
 
-slice-ansi@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7"
-  integrity sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==
+slice-ansi@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+  integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
   dependencies:
     ansi-styles "^3.2.0"
     astral-regex "^1.0.0"
@@ -3008,11 +3078,11 @@ snapdragon@^0.8.1:
     use "^3.1.0"
 
 source-map-resolve@^0.5.0:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
-  integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+  integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
   dependencies:
-    atob "^2.1.1"
+    atob "^2.1.2"
     decode-uri-component "^0.2.0"
     resolve-url "^0.2.1"
     source-map-url "^0.4.0"
@@ -3037,22 +3107,22 @@ spdx-correct@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-exceptions@^2.1.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
-  integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+  integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
 
 spdx-expression-parse@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
-  integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+  integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
   dependencies:
     spdx-exceptions "^2.1.0"
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e"
-  integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
+  integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -3101,6 +3171,61 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
+string-width@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+  dependencies:
+    emoji-regex "^7.0.1"
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^5.1.0"
+
+string.prototype.matchall@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e"
+  integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.0"
+    has-symbols "^1.0.1"
+    internal-slot "^1.0.2"
+    regexp.prototype.flags "^1.3.0"
+    side-channel "^1.0.2"
+
+string.prototype.trimend@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
+  integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.5"
+
+string.prototype.trimleft@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc"
+  integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.5"
+    string.prototype.trimstart "^1.0.0"
+
+string.prototype.trimright@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3"
+  integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.5"
+    string.prototype.trimend "^1.0.0"
+
+string.prototype.trimstart@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
+  integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.5"
+
 string_decoder@~1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@@ -3131,12 +3256,12 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f"
-  integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==
+strip-ansi@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
   dependencies:
-    ansi-regex "^4.0.0"
+    ansi-regex "^4.1.0"
 
 strip-bom@^3.0.0:
   version "3.0.0"
@@ -3182,6 +3307,11 @@ symbol-observable@^1.1.0:
   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
   integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
 
+synchronous-promise@^2.0.6:
+  version "2.0.12"
+  resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.12.tgz#219934f23c19c9aa716276cf2e1f8d4e5b04d07f"
+  integrity sha512-rIDJiHmIK02tXU+eW1v6a7rNIIiMLm5JUF5Uj2fT6oLSulg7WNDVoqvkYqkFoJzf4v2gmTLppvzegdo9R+7h1Q==
+
 table@4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
@@ -3194,15 +3324,15 @@ table@4.0.2:
     slice-ansi "1.0.0"
     string-width "^2.1.1"
 
-table@^5.0.2:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz#92030192f1b7b51b6eeab23ed416862e47b70837"
-  integrity sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==
+table@^5.2.3:
+  version "5.4.6"
+  resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
+  integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
   dependencies:
-    ajv "^6.6.1"
-    lodash "^4.17.11"
-    slice-ansi "2.0.0"
-    string-width "^2.1.1"
+    ajv "^6.10.2"
+    lodash "^4.17.14"
+    slice-ansi "^2.1.0"
+    string-width "^3.0.0"
 
 text-table@^0.2.0, text-table@~0.2.0:
   version "0.2.0"
@@ -3251,15 +3381,15 @@ to-regex@^3.0.1, to-regex@^3.0.2:
     regex-not "^1.0.2"
     safe-regex "^1.1.0"
 
-trim-right@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
-  integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
+toposort@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
+  integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=
 
 tslib@^1.9.0:
-  version "1.9.3"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
-  integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
+  integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
 
 type-check@~0.3.2:
   version "0.3.2"
@@ -3287,14 +3417,14 @@ typescript@^2.5.1:
   integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==
 
 union-value@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
-  integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
   dependencies:
     arr-union "^3.1.0"
     get-value "^2.0.6"
     is-extendable "^0.1.1"
-    set-value "^0.4.3"
+    set-value "^2.0.1"
 
 unset-value@^1.0.0:
   version "1.0.0"
@@ -3358,10 +3488,10 @@ which@^1.2.10, which@^1.2.9:
   dependencies:
     isexe "^2.0.0"
 
-wordwrap@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-  integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
+word-wrap@~1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
 wrap-ansi@^2.0.0:
   version "2.1.0"
@@ -3384,6 +3514,13 @@ wrappy@1:
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
 
+write@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
+  integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
+  dependencies:
+    mkdirp "^0.5.1"
+
 write@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
@@ -3391,6 +3528,13 @@ write@^0.2.1:
   dependencies:
     mkdirp "^0.5.1"
 
+xregexp@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50"
+  integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==
+  dependencies:
+    "@babel/runtime-corejs3" "^7.8.3"
+
 y18n@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
@@ -3425,3 +3569,15 @@ yargs@10.0.3:
     which-module "^2.0.0"
     y18n "^3.2.1"
     yargs-parser "^8.0.0"
+
+yup@^0.27.0:
+  version "0.27.0"
+  resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7"
+  integrity sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ==
+  dependencies:
+    "@babel/runtime" "^7.0.0"
+    fn-name "~2.0.1"
+    lodash "^4.17.11"
+    property-expr "^1.5.0"
+    synchronous-promise "^2.0.6"
+    toposort "^2.0.2"
diff --git a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix
index 9f4154b328b3..b8dba6833fbf 100644
--- a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix
+++ b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix
@@ -1,92 +1,108 @@
-{ fetchurl, linkFarm, runCommandNoCC, gnutar }: rec {
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.0.0.tgz";
+      name = "_babel_code_frame___code_frame_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz";
-        sha1 = "06e2ab19bdb535385559aabb5ba59729482800f8";
+        name = "_babel_code_frame___code_frame_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz";
+        sha1 = "33e25903d7481181534e12ec0a25f16b6fcf419e";
       };
     }
     {
-      name = "_babel_generator___generator_7.2.2.tgz";
+      name = "_babel_generator___generator_7.9.6.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz";
-        sha1 = "18c816c70962640eab42fe8cae5f3947a5c65ccc";
+        name = "_babel_generator___generator_7.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz";
+        sha1 = "5408c82ac5de98cda0d77d8124e99fa1f2170a43";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.9.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz";
-        sha1 = "a0ceb01685f73355d4360c1247f582bfafc8ff53";
+        name = "_babel_helper_function_name___helper_function_name_7.9.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz";
+        sha1 = "2b53820d35275120e1874a82e5aabe1376920a5c";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz";
-        sha1 = "83572d4320e2a4657263734113c42868b64e49c3";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
+        sha1 = "b894b947bd004381ce63ea1db9f08547e920abd5";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.0.0.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.8.3.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz";
-        sha1 = "3aae285c0311c2ab095d997b8c9a94cad547d813";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
+        sha1 = "31a9f30070f91368a7182cf05f831781065fc7a9";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.0.0.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.9.5.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz";
-        sha1 = "f710c38c8d458e6dd9a201afb637fcb781ce99e4";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.9.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
+        sha1 = "90977a8e6fbf6b431a7dc31752eee233bf052d80";
       };
     }
     {
-      name = "_babel_parser___parser_7.2.3.tgz";
+      name = "_babel_highlight___highlight_7.9.0.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz";
-        sha1 = "32f5df65744b70888d17872ec106b02434ba1489";
+        name = "_babel_highlight___highlight_7.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz";
+        sha1 = "4e9b45ccb82b79607271b2979ad82c7b68163079";
       };
     }
     {
-      name = "_babel_template___template_7.2.2.tgz";
+      name = "_babel_parser___parser_7.9.6.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz";
-        sha1 = "005b3fdf0ed96e88041330379e0da9a708eb2907";
+        name = "_babel_parser___parser_7.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz";
+        sha1 = "3b1bbb30dabe600cd72db58720998376ff653bc7";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.2.3.tgz";
+      name = "_babel_runtime_corejs3___runtime_corejs3_7.9.6.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz";
-        sha1 = "7ff50cefa9c7c0bd2d81231fdac122f3957748d8";
+        name = "_babel_runtime_corejs3___runtime_corejs3_7.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz";
+        sha1 = "67aded13fffbbc2cb93247388cf84d77a4be9a71";
       };
     }
     {
-      name = "_babel_types___types_7.2.2.tgz";
+      name = "_babel_runtime___runtime_7.9.6.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz";
-        sha1 = "44e10fc24e33af524488b716cdaee5360ea8ed1e";
+        name = "_babel_runtime___runtime_7.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz";
+        sha1 = "a9102eb5cadedf3f31d08a9ecf294af7827ea29f";
       };
     }
     {
-      name = "_iamstarkov_listr_update_renderer___listr_update_renderer_0.4.1.tgz";
+      name = "_babel_template___template_7.8.6.tgz";
       path = fetchurl {
-        name = "_iamstarkov_listr_update_renderer___listr_update_renderer_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz";
-        sha1 = "d7c48092a2dcf90fd672b6c8b458649cb350c77e";
+        name = "_babel_template___template_7.8.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz";
+        sha1 = "86b22af15f828dfb086474f964dcc3e39c43ce2b";
+      };
+    }
+    {
+      name = "_babel_traverse___traverse_7.9.6.tgz";
+      path = fetchurl {
+        name = "_babel_traverse___traverse_7.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz";
+        sha1 = "5540d7577697bf619cc57b92aa0f1c231a94f442";
+      };
+    }
+    {
+      name = "_babel_types___types_7.9.6.tgz";
+      path = fetchurl {
+        name = "_babel_types___types_7.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz";
+        sha1 = "2c5502b427251e9de1bd2dff95add646d95cc9f7";
       };
     }
     {
@@ -122,11 +138,11 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
+      name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz";
-        sha1 = "32a064fd925429216a09b141102bfdd185fae40e";
+        name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
+        sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
       };
     }
     {
@@ -138,19 +154,19 @@
       };
     }
     {
-      name = "acorn___acorn_5.7.3.tgz";
+      name = "acorn___acorn_5.7.4.tgz";
       path = fetchurl {
-        name = "acorn___acorn_5.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
-        sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+        name = "acorn___acorn_5.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz";
+        sha1 = "3e8d8a9947d0599a1796d10225d7432f4a4acf5e";
       };
     }
     {
-      name = "acorn___acorn_6.0.5.tgz";
+      name = "acorn___acorn_6.4.1.tgz";
       path = fetchurl {
-        name = "acorn___acorn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz";
-        sha1 = "81730c0815f3f3b34d8efa95cb7430965f4d887a";
+        name = "acorn___acorn_6.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz";
+        sha1 = "531e58ba3f51b9dacb9a6646ca4debf5b14ca474";
       };
     }
     {
@@ -170,19 +186,19 @@
       };
     }
     {
-      name = "ajv___ajv_6.6.2.tgz";
+      name = "ajv___ajv_6.12.2.tgz";
       path = fetchurl {
-        name = "ajv___ajv_6.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz";
-        sha1 = "caceccf474bf3fc3ce3b147443711a24063cc30d";
+        name = "ajv___ajv_6.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
+        sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
+      name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
       path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz";
-        sha1 = "f73207bb81207d75fd6c83f125af26eea378ca30";
+        name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+        sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
       };
     }
     {
@@ -202,11 +218,11 @@
       };
     }
     {
-      name = "ansi_regex___ansi_regex_4.0.0.tgz";
+      name = "ansi_regex___ansi_regex_4.1.0.tgz";
       path = fetchurl {
-        name = "ansi_regex___ansi_regex_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz";
-        sha1 = "70de791edf021404c3fd615aa89118ae0432e5a9";
+        name = "ansi_regex___ansi_regex_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
       };
     }
     {
@@ -274,11 +290,11 @@
       };
     }
     {
-      name = "array_includes___array_includes_3.0.3.tgz";
+      name = "array_includes___array_includes_3.1.1.tgz";
       path = fetchurl {
-        name = "array_includes___array_includes_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
-        sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
+        name = "array_includes___array_includes_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
+        sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
       };
     }
     {
@@ -306,6 +322,14 @@
       };
     }
     {
+      name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+      path = fetchurl {
+        name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
+        sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
+      };
+    }
+    {
       name = "arrify___arrify_1.0.1.tgz";
       path = fetchurl {
         name = "arrify___arrify_1.0.1.tgz";
@@ -346,11 +370,11 @@
       };
     }
     {
-      name = "axobject_query___axobject_query_2.0.2.tgz";
+      name = "axobject_query___axobject_query_2.1.2.tgz";
       path = fetchurl {
-        name = "axobject_query___axobject_query_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz";
-        sha1 = "ea187abe5b9002b377f925d8bf7d1c561adf38f9";
+        name = "axobject_query___axobject_query_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz";
+        sha1 = "2bdffc0371e643e5f03ba99065d5179b9ca79799";
       };
     }
     {
@@ -362,11 +386,11 @@
       };
     }
     {
-      name = "babel_eslint___babel_eslint_10.0.1.tgz";
+      name = "babel_eslint___babel_eslint_10.1.0.tgz";
       path = fetchurl {
-        name = "babel_eslint___babel_eslint_10.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz";
-        sha1 = "919681dc099614cd7d31d45c8908695092a1faed";
+        name = "babel_eslint___babel_eslint_10.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz";
+        sha1 = "6968e568a910b78fb3779cdd8b6ac2f479943232";
       };
     }
     {
@@ -426,14 +450,6 @@
       };
     }
     {
-      name = "builtin_modules___builtin_modules_1.1.1.tgz";
-      path = fetchurl {
-        name = "builtin_modules___builtin_modules_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
-      };
-    }
-    {
       name = "cache_base___cache_base_1.0.1.tgz";
       path = fetchurl {
         name = "cache_base___cache_base_1.0.1.tgz";
@@ -482,11 +498,11 @@
       };
     }
     {
-      name = "callsites___callsites_3.0.0.tgz";
+      name = "callsites___callsites_3.1.0.tgz";
       path = fetchurl {
-        name = "callsites___callsites_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz";
-        sha1 = "fb7eb569b72ad7a45812f93fd9430a3e410b3dd3";
+        name = "callsites___callsites_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
+        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
       };
     }
     {
@@ -522,11 +538,11 @@
       };
     }
     {
-      name = "chalk___chalk_2.4.1.tgz";
+      name = "chalk___chalk_2.4.2.tgz";
       path = fetchurl {
-        name = "chalk___chalk_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
-        sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
+        name = "chalk___chalk_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
       };
     }
     {
@@ -586,11 +602,11 @@
       };
     }
     {
-      name = "cli_width___cli_width_2.2.0.tgz";
+      name = "cli_width___cli_width_2.2.1.tgz";
       path = fetchurl {
-        name = "cli_width___cli_width_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+        name = "cli_width___cli_width_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz";
+        sha1 = "b0433d0b4e9c847ef18868a4ef16fd5fc8271c48";
       };
     }
     {
@@ -642,11 +658,11 @@
       };
     }
     {
-      name = "commander___commander_2.19.0.tgz";
+      name = "commander___commander_2.20.3.tgz";
       path = fetchurl {
-        name = "commander___commander_2.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz";
-        sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a";
+        name = "commander___commander_2.20.3.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
       };
     }
     {
@@ -658,11 +674,11 @@
       };
     }
     {
-      name = "component_emitter___component_emitter_1.2.1.tgz";
+      name = "component_emitter___component_emitter_1.3.0.tgz";
       path = fetchurl {
-        name = "component_emitter___component_emitter_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
-        sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+        name = "component_emitter___component_emitter_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
       };
     }
     {
@@ -682,6 +698,14 @@
       };
     }
     {
+      name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
+      path = fetchurl {
+        name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz";
+        sha1 = "72bc13b483c0276801681871d4898516f8f54fdd";
+      };
+    }
+    {
       name = "contains_path___contains_path_0.1.0.tgz";
       path = fetchurl {
         name = "contains_path___contains_path_0.1.0.tgz";
@@ -698,35 +722,35 @@
       };
     }
     {
-      name = "core_js___core_js_2.6.1.tgz";
+      name = "core_js_pure___core_js_pure_3.6.5.tgz";
       path = fetchurl {
-        name = "core_js___core_js_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz";
-        sha1 = "87416ae817de957a3f249b3b5ca475d4aaed6042";
+        name = "core_js_pure___core_js_pure_3.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz";
+        sha1 = "c79e75f5e38dbc85a662d91eea52b8256d53b813";
       };
     }
     {
-      name = "core_util_is___core_util_is_1.0.2.tgz";
+      name = "core_js___core_js_2.6.11.tgz";
       path = fetchurl {
-        name = "core_util_is___core_util_is_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+        name = "core_js___core_js_2.6.11.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz";
+        sha1 = "38831469f9922bded8ee21c9dc46985e0399308c";
       };
     }
     {
-      name = "cosmiconfig___cosmiconfig_5.0.6.tgz";
+      name = "core_util_is___core_util_is_1.0.2.tgz";
       path = fetchurl {
-        name = "cosmiconfig___cosmiconfig_5.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz";
-        sha1 = "dca6cf680a0bd03589aff684700858c81abeeb39";
+        name = "core_util_is___core_util_is_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     }
     {
-      name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
+      name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
       path = fetchurl {
-        name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz";
-        sha1 = "39826b292ee0d78eda137dfa3173bd1c21a43b04";
+        name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+        sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a";
       };
     }
     {
@@ -746,11 +770,11 @@
       };
     }
     {
-      name = "damerau_levenshtein___damerau_levenshtein_1.0.4.tgz";
+      name = "damerau_levenshtein___damerau_levenshtein_1.0.6.tgz";
       path = fetchurl {
-        name = "damerau_levenshtein___damerau_levenshtein_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz";
-        sha1 = "03191c432cb6eea168bb77f3a55ffdccb8978514";
+        name = "damerau_levenshtein___damerau_levenshtein_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz";
+        sha1 = "143c1641cb3d85c60c32329e26899adea8701791";
       };
     }
     {
@@ -810,11 +834,11 @@
       };
     }
     {
-      name = "deep_equal___deep_equal_1.0.1.tgz";
+      name = "deep_equal___deep_equal_1.1.1.tgz";
       path = fetchurl {
-        name = "deep_equal___deep_equal_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
-        sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+        name = "deep_equal___deep_equal_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz";
+        sha1 = "b5c98c942ceffaf7cb051e24e1434a25a2e6076a";
       };
     }
     {
@@ -866,11 +890,11 @@
       };
     }
     {
-      name = "dlv___dlv_1.1.2.tgz";
+      name = "dlv___dlv_1.1.3.tgz";
       path = fetchurl {
-        name = "dlv___dlv_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/dlv/-/dlv-1.1.2.tgz";
-        sha1 = "270f6737b30d25b6657a7e962c784403f85137e5";
+        name = "dlv___dlv_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz";
+        sha1 = "5c198a8a11453596e751494d49874bc7732f2e79";
       };
     }
     {
@@ -898,6 +922,14 @@
       };
     }
     {
+      name = "doctrine___doctrine_3.0.0.tgz";
+      path = fetchurl {
+        name = "doctrine___doctrine_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
+        sha1 = "addebead72a6574db783639dc87a121773973961";
+      };
+    }
+    {
       name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
       path = fetchurl {
         name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
@@ -906,19 +938,19 @@
       };
     }
     {
-      name = "emoji_regex___emoji_regex_6.5.1.tgz";
+      name = "emoji_regex___emoji_regex_7.0.3.tgz";
       path = fetchurl {
-        name = "emoji_regex___emoji_regex_6.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz";
-        sha1 = "9baea929b155565c11ea41c6626eaa65cef992c2";
+        name = "emoji_regex___emoji_regex_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
       };
     }
     {
-      name = "end_of_stream___end_of_stream_1.4.1.tgz";
+      name = "end_of_stream___end_of_stream_1.4.4.tgz";
       path = fetchurl {
-        name = "end_of_stream___end_of_stream_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz";
-        sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
+        name = "end_of_stream___end_of_stream_1.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
       };
     }
     {
@@ -930,19 +962,19 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.13.0.tgz";
+      name = "es_abstract___es_abstract_1.17.5.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz";
-        sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9";
+        name = "es_abstract___es_abstract_1.17.5.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz";
+        sha1 = "d8c9d1d66c8981fb9200e2251d799eee92774ae9";
       };
     }
     {
-      name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
+      name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
       path = fetchurl {
-        name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
-        sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
+        name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
       };
     }
     {
@@ -954,27 +986,27 @@
       };
     }
     {
-      name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.1.0.tgz";
+      name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.2.0.tgz";
       path = fetchurl {
-        name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz";
-        sha1 = "b5a1b480b80dfad16433d6c4ad84e6605052c05c";
+        name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz";
+        sha1 = "f6ea81459ff4dec2dda200c35f1d8f7419d57943";
       };
     }
     {
-      name = "eslint_config_airbnb___eslint_config_airbnb_17.1.0.tgz";
+      name = "eslint_config_airbnb___eslint_config_airbnb_17.1.1.tgz";
       path = fetchurl {
-        name = "eslint_config_airbnb___eslint_config_airbnb_17.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz";
-        sha1 = "3964ed4bc198240315ff52030bf8636f42bc4732";
+        name = "eslint_config_airbnb___eslint_config_airbnb_17.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz";
+        sha1 = "2272e0b86bb1e2b138cdf88d07a3b6f4cda3d626";
       };
     }
     {
-      name = "eslint_config_prettier___eslint_config_prettier_3.3.0.tgz";
+      name = "eslint_config_prettier___eslint_config_prettier_3.6.0.tgz";
       path = fetchurl {
-        name = "eslint_config_prettier___eslint_config_prettier_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz";
-        sha1 = "41afc8d3b852e757f06274ed6c44ca16f939a57d";
+        name = "eslint_config_prettier___eslint_config_prettier_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz";
+        sha1 = "8ca3ffac4bd6eeef623a0651f9d754900e3ec217";
       };
     }
     {
@@ -986,43 +1018,43 @@
       };
     }
     {
-      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.3.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz";
-        sha1 = "58f15fb839b8d0576ca980413476aab2472db66a";
+        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz";
+        sha1 = "dbaa52b6b2816b50bc6711af75422de808e98404";
       };
     }
     {
-      name = "eslint_module_utils___eslint_module_utils_2.2.0.tgz";
+      name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
       path = fetchurl {
-        name = "eslint_module_utils___eslint_module_utils_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz";
-        sha1 = "b270362cd88b1a48ad308976ce7fa54e98411746";
+        name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+        sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
       };
     }
     {
-      name = "eslint_plugin_es___eslint_plugin_es_1.4.0.tgz";
+      name = "eslint_plugin_es___eslint_plugin_es_1.4.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_es___eslint_plugin_es_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz";
-        sha1 = "475f65bb20c993fc10e8c8fe77d1d60068072da6";
+        name = "eslint_plugin_es___eslint_plugin_es_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz";
+        sha1 = "12acae0f4953e76ba444bfd1b2271081ac620998";
       };
     }
     {
-      name = "eslint_plugin_import___eslint_plugin_import_2.14.0.tgz";
+      name = "eslint_plugin_import___eslint_plugin_import_2.20.2.tgz";
       path = fetchurl {
-        name = "eslint_plugin_import___eslint_plugin_import_2.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz";
-        sha1 = "6b17626d2e3e6ad52cfce8807a845d15e22111a8";
+        name = "eslint_plugin_import___eslint_plugin_import_2.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz";
+        sha1 = "91fc3807ce08be4837141272c8b99073906e588d";
       };
     }
     {
-      name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.1.2.tgz";
+      name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.2.3.tgz";
       path = fetchurl {
-        name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz";
-        sha1 = "69bca4890b36dcf0fe16dd2129d2d88b98f33f88";
+        name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz";
+        sha1 = "b872a09d5de51af70a97db1eea7dc933043708aa";
       };
     }
     {
@@ -1034,43 +1066,27 @@
       };
     }
     {
-      name = "eslint_plugin_promise___eslint_plugin_promise_4.0.1.tgz";
+      name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_promise___eslint_plugin_promise_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz";
-        sha1 = "2d074b653f35a23d1ba89d8e976a985117d1c6a2";
+        name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz";
+        sha1 = "845fd8b2260ad8f82564c1222fce44ad71d9418a";
       };
     }
     {
-      name = "eslint_plugin_react___eslint_plugin_react_7.12.3.tgz";
+      name = "eslint_plugin_react___eslint_plugin_react_7.20.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_react___eslint_plugin_react_7.12.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.3.tgz";
-        sha1 = "b9ca4cd7cd3f5d927db418a1950366a12d4568fd";
+        name = "eslint_plugin_react___eslint_plugin_react_7.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz";
+        sha1 = "f98712f0a5e57dfd3e5542ef0604b8739cd47be3";
       };
     }
     {
-      name = "eslint_plugin_standard___eslint_plugin_standard_4.0.0.tgz";
+      name = "eslint_plugin_standard___eslint_plugin_standard_4.0.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_standard___eslint_plugin_standard_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz";
-        sha1 = "f845b45109c99cd90e77796940a344546c8f6b5c";
-      };
-    }
-    {
-      name = "eslint_restricted_globals___eslint_restricted_globals_0.1.1.tgz";
-      path = fetchurl {
-        name = "eslint_restricted_globals___eslint_restricted_globals_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz";
-        sha1 = "35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7";
-      };
-    }
-    {
-      name = "eslint_scope___eslint_scope_3.7.1.tgz";
-      path = fetchurl {
-        name = "eslint_scope___eslint_scope_3.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz";
-        sha1 = "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8";
+        name = "eslint_plugin_standard___eslint_plugin_standard_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz";
+        sha1 = "ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4";
       };
     }
     {
@@ -1082,27 +1098,27 @@
       };
     }
     {
-      name = "eslint_scope___eslint_scope_4.0.0.tgz";
+      name = "eslint_scope___eslint_scope_4.0.3.tgz";
       path = fetchurl {
-        name = "eslint_scope___eslint_scope_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz";
-        sha1 = "50bf3071e9338bcdc43331794a0cb533f0136172";
+        name = "eslint_scope___eslint_scope_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
+        sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
       };
     }
     {
-      name = "eslint_utils___eslint_utils_1.3.1.tgz";
+      name = "eslint_utils___eslint_utils_1.4.3.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz";
-        sha1 = "9a851ba89ee7c460346f97cf8939c7298827e512";
+        name = "eslint_utils___eslint_utils_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
+        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
       };
     }
     {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
       path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
-        sha1 = "3f3180fb2e291017716acb4c9d6d5b5c34a6a81d";
+        name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
+        sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
       };
     }
     {
@@ -1114,11 +1130,11 @@
       };
     }
     {
-      name = "eslint___eslint_5.12.0.tgz";
+      name = "eslint___eslint_5.16.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_5.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-5.12.0.tgz";
-        sha1 = "fab3b908f60c52671fb14e996a450b96c743c859";
+        name = "eslint___eslint_5.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz";
+        sha1 = "a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea";
       };
     }
     {
@@ -1130,11 +1146,11 @@
       };
     }
     {
-      name = "espree___espree_5.0.0.tgz";
+      name = "espree___espree_5.0.1.tgz";
       path = fetchurl {
-        name = "espree___espree_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz";
-        sha1 = "fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c";
+        name = "espree___espree_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz";
+        sha1 = "5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a";
       };
     }
     {
@@ -1146,11 +1162,11 @@
       };
     }
     {
-      name = "esquery___esquery_1.0.1.tgz";
+      name = "esquery___esquery_1.3.1.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
-        sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
+        name = "esquery___esquery_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
+        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
       };
     }
     {
@@ -1162,19 +1178,27 @@
       };
     }
     {
-      name = "estraverse___estraverse_4.2.0.tgz";
+      name = "estraverse___estraverse_4.3.0.tgz";
       path = fetchurl {
-        name = "estraverse___estraverse_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
-        sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+        name = "estraverse___estraverse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
+        sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
       };
     }
     {
-      name = "esutils___esutils_2.0.2.tgz";
+      name = "estraverse___estraverse_5.1.0.tgz";
       path = fetchurl {
-        name = "esutils___esutils_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
-        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+        name = "estraverse___estraverse_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz";
+        sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642";
+      };
+    }
+    {
+      name = "esutils___esutils_2.0.3.tgz";
+      path = fetchurl {
+        name = "esutils___esutils_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
+        sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
       };
     }
     {
@@ -1226,11 +1250,11 @@
       };
     }
     {
-      name = "external_editor___external_editor_3.0.3.tgz";
+      name = "external_editor___external_editor_3.1.0.tgz";
       path = fetchurl {
-        name = "external_editor___external_editor_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz";
-        sha1 = "5866db29a97826dbe4bf3afd24070ead9ea43a27";
+        name = "external_editor___external_editor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
+        sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
       };
     }
     {
@@ -1250,19 +1274,19 @@
       };
     }
     {
-      name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+      name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
       path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
-        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+        name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
+        sha1 = "545145077c501491e33b15ec408c294376e94ae4";
       };
     }
     {
-      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
       path = fetchurl {
-        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
-        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
       };
     }
     {
@@ -1298,27 +1322,19 @@
       };
     }
     {
-      name = "fill_range___fill_range_4.0.0.tgz";
-      path = fetchurl {
-        name = "fill_range___fill_range_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
-        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
-      };
-    }
-    {
-      name = "find_parent_dir___find_parent_dir_0.3.0.tgz";
+      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
       path = fetchurl {
-        name = "find_parent_dir___find_parent_dir_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz";
-        sha1 = "33c44b429ab2b2f0646299c5f9f718f376ff8d54";
+        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
       };
     }
     {
-      name = "find_up___find_up_1.1.2.tgz";
+      name = "fill_range___fill_range_4.0.0.tgz";
       path = fetchurl {
-        name = "find_up___find_up_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
-        sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+        name = "fill_range___fill_range_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
       };
     }
     {
@@ -1346,6 +1362,30 @@
       };
     }
     {
+      name = "flat_cache___flat_cache_2.0.1.tgz";
+      path = fetchurl {
+        name = "flat_cache___flat_cache_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
+        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+      };
+    }
+    {
+      name = "flatted___flatted_2.0.2.tgz";
+      path = fetchurl {
+        name = "flatted___flatted_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz";
+        sha1 = "4575b21e2bcee7434aa9be662f4b7b5f9c2b5138";
+      };
+    }
+    {
+      name = "fn_name___fn_name_2.0.1.tgz";
+      path = fetchurl {
+        name = "fn_name___fn_name_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz";
+        sha1 = "5214d7537a4d06a4a301c0cc262feb84188002e7";
+      };
+    }
+    {
       name = "for_in___for_in_1.0.2.tgz";
       path = fetchurl {
         name = "for_in___for_in_1.0.2.tgz";
@@ -1402,11 +1442,11 @@
       };
     }
     {
-      name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.0.tgz";
+      name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
       path = fetchurl {
-        name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz";
-        sha1 = "b877b49a5c16aefac3655f2ed2ea5b684df8d203";
+        name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
+        sha1 = "b5fde77f22cbe35f390b4e089922c50bce6ef664";
       };
     }
     {
@@ -1450,11 +1490,11 @@
       };
     }
     {
-      name = "glob___glob_7.1.3.tgz";
+      name = "glob___glob_7.1.6.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz";
-        sha1 = "3960832d3f1574108342dafd3a67b332c0969df1";
+        name = "glob___glob_7.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
+        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
       };
     }
     {
@@ -1466,11 +1506,11 @@
       };
     }
     {
-      name = "globals___globals_11.9.0.tgz";
+      name = "globals___globals_11.12.0.tgz";
       path = fetchurl {
-        name = "globals___globals_11.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz";
-        sha1 = "bde236808e987f290768a93d065060d78e6ab249";
+        name = "globals___globals_11.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
+        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
       };
     }
     {
@@ -1482,11 +1522,11 @@
       };
     }
     {
-      name = "graceful_fs___graceful_fs_4.1.15.tgz";
+      name = "graceful_fs___graceful_fs_4.2.4.tgz";
       path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.1.15.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz";
-        sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
+        name = "graceful_fs___graceful_fs_4.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
       };
     }
     {
@@ -1514,11 +1554,11 @@
       };
     }
     {
-      name = "has_symbols___has_symbols_1.0.0.tgz";
+      name = "has_symbols___has_symbols_1.0.1.tgz";
       path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz";
-        sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
+        name = "has_symbols___has_symbols_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
       };
     }
     {
@@ -1562,11 +1602,11 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+      name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
-        sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
+        name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+        sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
       };
     }
     {
@@ -1602,11 +1642,11 @@
       };
     }
     {
-      name = "ignore___ignore_5.0.4.tgz";
+      name = "ignore___ignore_5.1.4.tgz";
       path = fetchurl {
-        name = "ignore___ignore_5.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz";
-        sha1 = "33168af4a21e99b00c5d41cbadb6a6cb49903a45";
+        name = "ignore___ignore_5.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz";
+        sha1 = "84b7b3dbe64552b6ef0eca99f6743dbec6d97adf";
       };
     }
     {
@@ -1618,11 +1658,11 @@
       };
     }
     {
-      name = "import_fresh___import_fresh_3.0.0.tgz";
+      name = "import_fresh___import_fresh_3.2.1.tgz";
       path = fetchurl {
-        name = "import_fresh___import_fresh_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz";
-        sha1 = "a3d897f420cab0e671236897f75bc14b4885c390";
+        name = "import_fresh___import_fresh_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
+        sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
       };
     }
     {
@@ -1650,11 +1690,11 @@
       };
     }
     {
-      name = "inherits___inherits_2.0.3.tgz";
+      name = "inherits___inherits_2.0.4.tgz";
       path = fetchurl {
-        name = "inherits___inherits_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
       };
     }
     {
@@ -1666,11 +1706,19 @@
       };
     }
     {
-      name = "inquirer___inquirer_6.2.1.tgz";
+      name = "inquirer___inquirer_6.5.2.tgz";
+      path = fetchurl {
+        name = "inquirer___inquirer_6.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz";
+        sha1 = "ad50942375d036d327ff528c08bd5fab089928ca";
+      };
+    }
+    {
+      name = "internal_slot___internal_slot_1.0.2.tgz";
       path = fetchurl {
-        name = "inquirer___inquirer_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz";
-        sha1 = "9943fc4882161bdb0b0c9276769c75b32dbfcd52";
+        name = "internal_slot___internal_slot_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
+        sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
       };
     }
     {
@@ -1698,6 +1746,14 @@
       };
     }
     {
+      name = "is_arguments___is_arguments_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_arguments___is_arguments_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz";
+        sha1 = "3faf966c7cba0ff437fb31f6250082fcf0448cf3";
+      };
+    }
+    {
       name = "is_arrayish___is_arrayish_0.2.1.tgz";
       path = fetchurl {
         name = "is_arrayish___is_arrayish_0.2.1.tgz";
@@ -1714,19 +1770,11 @@
       };
     }
     {
-      name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
-        sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
-      };
-    }
-    {
-      name = "is_callable___is_callable_1.1.4.tgz";
+      name = "is_callable___is_callable_1.1.5.tgz";
       path = fetchurl {
-        name = "is_callable___is_callable_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
-        sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
+        name = "is_callable___is_callable_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz";
+        sha1 = "f7e46b596890456db74e7f6e976cb3273d06faab";
       };
     }
     {
@@ -1754,11 +1802,11 @@
       };
     }
     {
-      name = "is_date_object___is_date_object_1.0.1.tgz";
+      name = "is_date_object___is_date_object_1.0.2.tgz";
       path = fetchurl {
-        name = "is_date_object___is_date_object_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
-        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+        name = "is_date_object___is_date_object_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz";
+        sha1 = "bda736f2cd8fd06d32844e7743bfa7494c3bfd7e";
       };
     }
     {
@@ -1826,11 +1874,11 @@
       };
     }
     {
-      name = "is_glob___is_glob_4.0.0.tgz";
+      name = "is_glob___is_glob_4.0.1.tgz";
       path = fetchurl {
-        name = "is_glob___is_glob_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz";
-        sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0";
+        name = "is_glob___is_glob_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
       };
     }
     {
@@ -1890,19 +1938,19 @@
       };
     }
     {
-      name = "is_promise___is_promise_2.1.0.tgz";
+      name = "is_promise___is_promise_2.2.2.tgz";
       path = fetchurl {
-        name = "is_promise___is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+        name = "is_promise___is_promise_2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz";
+        sha1 = "39ab959ccbf9a774cf079f7b40c7a26f763135f1";
       };
     }
     {
-      name = "is_regex___is_regex_1.0.4.tgz";
+      name = "is_regex___is_regex_1.0.5.tgz";
       path = fetchurl {
-        name = "is_regex___is_regex_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
-        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+        name = "is_regex___is_regex_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz";
+        sha1 = "39d589a358bf18967f726967120b8fc1aed74eae";
       };
     }
     {
@@ -1930,11 +1978,19 @@
       };
     }
     {
-      name = "is_symbol___is_symbol_1.0.2.tgz";
+      name = "is_string___is_string_1.0.5.tgz";
       path = fetchurl {
-        name = "is_symbol___is_symbol_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
-        sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
+        name = "is_string___is_string_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
+        sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
+      };
+    }
+    {
+      name = "is_symbol___is_symbol_1.0.3.tgz";
+      path = fetchurl {
+        name = "is_symbol___is_symbol_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz";
+        sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937";
       };
     }
     {
@@ -1978,22 +2034,6 @@
       };
     }
     {
-      name = "jest_get_type___jest_get_type_22.4.3.tgz";
-      path = fetchurl {
-        name = "jest_get_type___jest_get_type_22.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz";
-        sha1 = "e3a8504d8479342dd4420236b322869f18900ce4";
-      };
-    }
-    {
-      name = "jest_validate___jest_validate_23.6.0.tgz";
-      path = fetchurl {
-        name = "jest_validate___jest_validate_23.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz";
-        sha1 = "36761f99d1ed33fcd425b4e4c5595d62b6597474";
-      };
-    }
-    {
       name = "js_tokens___js_tokens_4.0.0.tgz";
       path = fetchurl {
         name = "js_tokens___js_tokens_4.0.0.tgz";
@@ -2010,11 +2050,11 @@
       };
     }
     {
-      name = "js_yaml___js_yaml_3.12.1.tgz";
+      name = "js_yaml___js_yaml_3.13.1.tgz";
       path = fetchurl {
-        name = "js_yaml___js_yaml_3.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz";
-        sha1 = "295c8632a18a23e054cf5c9d3cecafe678167600";
+        name = "js_yaml___js_yaml_3.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
+        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
       };
     }
     {
@@ -2058,11 +2098,11 @@
       };
     }
     {
-      name = "jsx_ast_utils___jsx_ast_utils_2.0.1.tgz";
+      name = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
       path = fetchurl {
-        name = "jsx_ast_utils___jsx_ast_utils_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz";
-        sha1 = "e801b1b39985e20fffc87b40e3748080e2dcac7f";
+        name = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz";
+        sha1 = "8a9364e402448a3ce7f14d357738310d9248054f";
       };
     }
     {
@@ -2090,11 +2130,11 @@
       };
     }
     {
-      name = "kind_of___kind_of_6.0.2.tgz";
+      name = "kind_of___kind_of_6.0.3.tgz";
       path = fetchurl {
-        name = "kind_of___kind_of_6.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
-        sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+        name = "kind_of___kind_of_6.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
+        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
       };
     }
     {
@@ -2106,14 +2146,6 @@
       };
     }
     {
-      name = "leven___leven_2.1.0.tgz";
-      path = fetchurl {
-        name = "leven___leven_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
-        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
-      };
-    }
-    {
       name = "levn___levn_0.3.0.tgz";
       path = fetchurl {
         name = "levn___levn_0.3.0.tgz";
@@ -2122,11 +2154,11 @@
       };
     }
     {
-      name = "lint_staged___lint_staged_8.1.0.tgz";
+      name = "lint_staged___lint_staged_8.2.1.tgz";
       path = fetchurl {
-        name = "lint_staged___lint_staged_8.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz";
-        sha1 = "dbc3ae2565366d8f20efb9f9799d076da64863f2";
+        name = "lint_staged___lint_staged_8.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.2.1.tgz";
+        sha1 = "752fcf222d9d28f323a3b80f1e668f3654ff221f";
       };
     }
     {
@@ -2194,11 +2226,11 @@
       };
     }
     {
-      name = "lodash.merge___lodash.merge_4.6.1.tgz";
+      name = "lodash.merge___lodash.merge_4.6.2.tgz";
       path = fetchurl {
-        name = "lodash.merge___lodash.merge_4.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz";
-        sha1 = "adc25d9cb99b9391c59624f379fbba60d7111d54";
+        name = "lodash.merge___lodash.merge_4.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz";
+        sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a";
       };
     }
     {
@@ -2210,11 +2242,11 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.11.tgz";
+      name = "lodash___lodash_4.17.15.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.11.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
-        sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
+        name = "lodash___lodash_4.17.15.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
+        sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
       };
     }
     {
@@ -2250,11 +2282,11 @@
       };
     }
     {
-      name = "loglevel___loglevel_1.6.1.tgz";
+      name = "loglevel___loglevel_1.6.8.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz";
-        sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa";
+        name = "loglevel___loglevel_1.6.8.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz";
+        sha1 = "8a25fb75d092230ecd4457270d80b54e28011171";
       };
     }
     {
@@ -2362,35 +2394,27 @@
       };
     }
     {
-      name = "minimist___minimist_0.0.8.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    }
-    {
-      name = "minimist___minimist_1.2.0.tgz";
+      name = "minimist___minimist_1.2.5.tgz";
       path = fetchurl {
-        name = "minimist___minimist_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
-        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+        name = "minimist___minimist_1.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
       };
     }
     {
-      name = "mixin_deep___mixin_deep_1.3.1.tgz";
+      name = "mixin_deep___mixin_deep_1.3.2.tgz";
       path = fetchurl {
-        name = "mixin_deep___mixin_deep_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz";
-        sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe";
+        name = "mixin_deep___mixin_deep_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
       };
     }
     {
-      name = "mkdirp___mkdirp_0.5.1.tgz";
+      name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+        name = "mkdirp___mkdirp_0.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
       };
     }
     {
@@ -2402,11 +2426,11 @@
       };
     }
     {
-      name = "ms___ms_2.1.1.tgz";
+      name = "ms___ms_2.1.2.tgz";
       path = fetchurl {
-        name = "ms___ms_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
-        sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
       };
     }
     {
@@ -2450,11 +2474,11 @@
       };
     }
     {
-      name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+      name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
       path = fetchurl {
-        name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
-        sha1 = "12f95a307d58352075a04907b84ac8be98ac012f";
+        name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
       };
     }
     {
@@ -2506,11 +2530,27 @@
       };
     }
     {
-      name = "object_keys___object_keys_1.0.12.tgz";
+      name = "object_inspect___object_inspect_1.7.0.tgz";
+      path = fetchurl {
+        name = "object_inspect___object_inspect_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
+        sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
+      };
+    }
+    {
+      name = "object_is___object_is_1.1.2.tgz";
       path = fetchurl {
-        name = "object_keys___object_keys_1.0.12.tgz";
-        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
-        sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
+        name = "object_is___object_is_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz";
+        sha1 = "c5d2e87ff9e119f78b7a088441519e2eec1573b6";
+      };
+    }
+    {
+      name = "object_keys___object_keys_1.1.1.tgz";
+      path = fetchurl {
+        name = "object_keys___object_keys_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+        sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
       };
     }
     {
@@ -2530,19 +2570,19 @@
       };
     }
     {
-      name = "object.entries___object.entries_1.1.0.tgz";
+      name = "object.entries___object.entries_1.1.1.tgz";
       path = fetchurl {
-        name = "object.entries___object.entries_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz";
-        sha1 = "2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519";
+        name = "object.entries___object.entries_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz";
+        sha1 = "ee1cf04153de02bb093fec33683900f57ce5399b";
       };
     }
     {
-      name = "object.fromentries___object.fromentries_2.0.0.tgz";
+      name = "object.fromentries___object.fromentries_2.0.2.tgz";
       path = fetchurl {
-        name = "object.fromentries___object.fromentries_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz";
-        sha1 = "49a543d92151f8277b3ac9600f1e930b189d30ab";
+        name = "object.fromentries___object.fromentries_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
+        sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
       };
     }
     {
@@ -2554,6 +2594,14 @@
       };
     }
     {
+      name = "object.values___object.values_1.1.1.tgz";
+      path = fetchurl {
+        name = "object.values___object.values_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
+        sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+      };
+    }
+    {
       name = "once___once_1.4.0.tgz";
       path = fetchurl {
         name = "once___once_1.4.0.tgz";
@@ -2570,11 +2618,11 @@
       };
     }
     {
-      name = "optionator___optionator_0.8.2.tgz";
+      name = "optionator___optionator_0.8.3.tgz";
       path = fetchurl {
-        name = "optionator___optionator_0.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
-        sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+        name = "optionator___optionator_0.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
+        sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
       };
     }
     {
@@ -2610,11 +2658,11 @@
       };
     }
     {
-      name = "p_limit___p_limit_2.1.0.tgz";
+      name = "p_limit___p_limit_2.3.0.tgz";
       path = fetchurl {
-        name = "p_limit___p_limit_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz";
-        sha1 = "1d5a0d20fb12707c758a655f6bbc4386b5930d68";
+        name = "p_limit___p_limit_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz";
+        sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1";
       };
     }
     {
@@ -2642,11 +2690,11 @@
       };
     }
     {
-      name = "p_map___p_map_2.0.0.tgz";
+      name = "p_map___p_map_2.1.0.tgz";
       path = fetchurl {
-        name = "p_map___p_map_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz";
-        sha1 = "be18c5a5adeb8e156460651421aceca56c213a50";
+        name = "p_map___p_map_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz";
+        sha1 = "310928feef9c9ecc65b68b17693018a665cea175";
       };
     }
     {
@@ -2658,19 +2706,19 @@
       };
     }
     {
-      name = "p_try___p_try_2.0.0.tgz";
+      name = "p_try___p_try_2.2.0.tgz";
       path = fetchurl {
-        name = "p_try___p_try_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz";
-        sha1 = "85080bb87c64688fa47996fe8f7dfbe8211760b1";
+        name = "p_try___p_try_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
+        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
       };
     }
     {
-      name = "parent_module___parent_module_1.0.0.tgz";
+      name = "parent_module___parent_module_1.0.1.tgz";
       path = fetchurl {
-        name = "parent_module___parent_module_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz";
-        sha1 = "df250bdc5391f4a085fb589dad761f5ad6b865b5";
+        name = "parent_module___parent_module_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
+        sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
       };
     }
     {
@@ -2698,14 +2746,6 @@
       };
     }
     {
-      name = "path_exists___path_exists_2.1.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
-        sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
-      };
-    }
-    {
       name = "path_exists___path_exists_3.0.0.tgz";
       path = fetchurl {
         name = "path_exists___path_exists_3.0.0.tgz";
@@ -2786,11 +2826,11 @@
       };
     }
     {
-      name = "pkg_dir___pkg_dir_1.0.0.tgz";
+      name = "pkg_dir___pkg_dir_2.0.0.tgz";
       path = fetchurl {
-        name = "pkg_dir___pkg_dir_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz";
-        sha1 = "7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4";
+        name = "pkg_dir___pkg_dir_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
       };
     }
     {
@@ -2802,11 +2842,11 @@
       };
     }
     {
-      name = "please_upgrade_node___please_upgrade_node_3.1.1.tgz";
+      name = "please_upgrade_node___please_upgrade_node_3.2.0.tgz";
       path = fetchurl {
-        name = "please_upgrade_node___please_upgrade_node_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz";
-        sha1 = "ed320051dfcc5024fae696712c8288993595e8ac";
+        name = "please_upgrade_node___please_upgrade_node_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz";
+        sha1 = "aeddd3f994c933e4ad98b99d9a556efa0e2fe942";
       };
     }
     {
@@ -2850,11 +2890,11 @@
       };
     }
     {
-      name = "prettier___prettier_1.15.3.tgz";
+      name = "prettier___prettier_1.19.1.tgz";
       path = fetchurl {
-        name = "prettier___prettier_1.15.3.tgz";
-        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz";
-        sha1 = "1feaac5bdd181237b54dbe65d874e02a1472786a";
+        name = "prettier___prettier_1.19.1.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz";
+        sha1 = "f7d7f5ff8a9cd872a7be4ca142095956a60797cb";
       };
     }
     {
@@ -2866,11 +2906,11 @@
       };
     }
     {
-      name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+      name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
       path = fetchurl {
-        name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
-        sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+        name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
       };
     }
     {
@@ -2882,11 +2922,19 @@
       };
     }
     {
-      name = "prop_types___prop_types_15.6.2.tgz";
+      name = "prop_types___prop_types_15.7.2.tgz";
+      path = fetchurl {
+        name = "prop_types___prop_types_15.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
+        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+      };
+    }
+    {
+      name = "property_expr___property_expr_1.5.1.tgz";
       path = fetchurl {
-        name = "prop_types___prop_types_15.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz";
-        sha1 = "05d5ca77b4453e985d60fc7ff8c859094a497102";
+        name = "property_expr___property_expr_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz";
+        sha1 = "22e8706894a0c8e28d58735804f6ba3a3673314f";
       };
     }
     {
@@ -2930,6 +2978,14 @@
       };
     }
     {
+      name = "react_is___react_is_16.13.1.tgz";
+      path = fetchurl {
+        name = "react_is___react_is_16.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
+        sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
+      };
+    }
+    {
       name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
       path = fetchurl {
         name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
@@ -2954,11 +3010,11 @@
       };
     }
     {
-      name = "readable_stream___readable_stream_2.3.6.tgz";
+      name = "readable_stream___readable_stream_2.3.7.tgz";
       path = fetchurl {
-        name = "readable_stream___readable_stream_2.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
-        sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+        name = "readable_stream___readable_stream_2.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
       };
     }
     {
@@ -2970,6 +3026,14 @@
       };
     }
     {
+      name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+      path = fetchurl {
+        name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
+        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
+      };
+    }
+    {
       name = "regex_not___regex_not_1.0.2.tgz";
       path = fetchurl {
         name = "regex_not___regex_not_1.0.2.tgz";
@@ -2978,6 +3042,14 @@
       };
     }
     {
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+      path = fetchurl {
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
+        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
+      };
+    }
+    {
       name = "regexpp___regexpp_1.1.0.tgz";
       path = fetchurl {
         name = "regexpp___regexpp_1.1.0.tgz";
@@ -3082,11 +3154,11 @@
       };
     }
     {
-      name = "resolve___resolve_1.9.0.tgz";
+      name = "resolve___resolve_1.17.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz";
-        sha1 = "a14c6fdfa8f92a7df1d996cb7105fa744658ea06";
+        name = "resolve___resolve_1.17.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
+        sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
       };
     }
     {
@@ -3114,11 +3186,19 @@
       };
     }
     {
-      name = "run_async___run_async_2.3.0.tgz";
+      name = "rimraf___rimraf_2.7.1.tgz";
       path = fetchurl {
-        name = "run_async___run_async_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
-        sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+        name = "rimraf___rimraf_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
+        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+      };
+    }
+    {
+      name = "run_async___run_async_2.4.1.tgz";
+      path = fetchurl {
+        name = "run_async___run_async_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
+        sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
       };
     }
     {
@@ -3154,11 +3234,11 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.3.3.tgz";
+      name = "rxjs___rxjs_6.5.5.tgz";
       path = fetchurl {
-        name = "rxjs___rxjs_6.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz";
-        sha1 = "3c6a7fa420e844a81390fb1158a9ec614f4bad55";
+        name = "rxjs___rxjs_6.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz";
+        sha1 = "c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec";
       };
     }
     {
@@ -3194,11 +3274,11 @@
       };
     }
     {
-      name = "semver___semver_5.6.0.tgz";
+      name = "semver___semver_5.7.1.tgz";
       path = fetchurl {
-        name = "semver___semver_5.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz";
-        sha1 = "7e74256fbaa49c75aa7c7a205cc22799cac80004";
+        name = "semver___semver_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
       };
     }
     {
@@ -3218,19 +3298,11 @@
       };
     }
     {
-      name = "set_value___set_value_0.4.3.tgz";
-      path = fetchurl {
-        name = "set_value___set_value_0.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
-        sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
-      };
-    }
-    {
-      name = "set_value___set_value_2.0.0.tgz";
+      name = "set_value___set_value_2.0.1.tgz";
       path = fetchurl {
-        name = "set_value___set_value_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
-        sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+        name = "set_value___set_value_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
+        sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
       };
     }
     {
@@ -3250,19 +3322,27 @@
       };
     }
     {
-      name = "signal_exit___signal_exit_3.0.2.tgz";
+      name = "side_channel___side_channel_1.0.2.tgz";
+      path = fetchurl {
+        name = "side_channel___side_channel_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz";
+        sha1 = "df5d1abadb4e4bf4af1cd8852bf132d2f7876947";
+      };
+    }
+    {
+      name = "signal_exit___signal_exit_3.0.3.tgz";
       path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
-        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+        name = "signal_exit___signal_exit_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
       };
     }
     {
-      name = "simple_git___simple_git_1.107.0.tgz";
+      name = "simple_git___simple_git_1.132.0.tgz";
       path = fetchurl {
-        name = "simple_git___simple_git_1.107.0.tgz";
-        url  = "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz";
-        sha1 = "12cffaf261c14d6f450f7fdb86c21ccee968b383";
+        name = "simple_git___simple_git_1.132.0.tgz";
+        url  = "https://registry.yarnpkg.com/simple-git/-/simple-git-1.132.0.tgz";
+        sha1 = "53ac4c5ec9e74e37c2fd461e23309f22fcdf09b1";
       };
     }
     {
@@ -3290,11 +3370,11 @@
       };
     }
     {
-      name = "slice_ansi___slice_ansi_2.0.0.tgz";
+      name = "slice_ansi___slice_ansi_2.1.0.tgz";
       path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz";
-        sha1 = "5373bdb8559b45676e8541c66916cdd6251612e7";
+        name = "slice_ansi___slice_ansi_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
+        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
       };
     }
     {
@@ -3322,11 +3402,11 @@
       };
     }
     {
-      name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+      name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
       path = fetchurl {
-        name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
-        sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+        name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
       };
     }
     {
@@ -3354,27 +3434,27 @@
       };
     }
     {
-      name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+      name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
       path = fetchurl {
-        name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
+        name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha1 = "3f28ce1a77a00372683eade4a433183527a2163d";
       };
     }
     {
-      name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+      name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
       path = fetchurl {
-        name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+        name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679";
       };
     }
     {
-      name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
+      name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
       path = fetchurl {
-        name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz";
-        sha1 = "81c0ce8f21474756148bbb5f3bfc0f36bf15d76e";
+        name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+        sha1 = "3694b5804567a458d3c8045842a6358632f62654";
       };
     }
     {
@@ -3434,6 +3514,54 @@
       };
     }
     {
+      name = "string_width___string_width_3.1.0.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+        sha1 = "22767be21b62af1081574306f69ac51b62203961";
+      };
+    }
+    {
+      name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+      path = fetchurl {
+        name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
+        sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
+      };
+    }
+    {
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha1 = "85812a6b847ac002270f5808146064c995fb6913";
+      };
+    }
+    {
+      name = "string.prototype.trimleft___string.prototype.trimleft_2.1.2.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimleft___string.prototype.trimleft_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz";
+        sha1 = "4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc";
+      };
+    }
+    {
+      name = "string.prototype.trimright___string.prototype.trimright_2.1.2.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimright___string.prototype.trimright_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
+        sha1 = "c76f1cef30f21bbad8afeb8db1511496cfb0f2a3";
+      };
+    }
+    {
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
+      };
+    }
+    {
       name = "string_decoder___string_decoder_1.1.1.tgz";
       path = fetchurl {
         name = "string_decoder___string_decoder_1.1.1.tgz";
@@ -3466,11 +3594,11 @@
       };
     }
     {
-      name = "strip_ansi___strip_ansi_5.0.0.tgz";
+      name = "strip_ansi___strip_ansi_5.2.0.tgz";
       path = fetchurl {
-        name = "strip_ansi___strip_ansi_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz";
-        sha1 = "f78f68b5d0866c20b2c9b8c61b5298508dc8756f";
+        name = "strip_ansi___strip_ansi_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
       };
     }
     {
@@ -3538,6 +3666,14 @@
       };
     }
     {
+      name = "synchronous_promise___synchronous_promise_2.0.12.tgz";
+      path = fetchurl {
+        name = "synchronous_promise___synchronous_promise_2.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.12.tgz";
+        sha1 = "219934f23c19c9aa716276cf2e1f8d4e5b04d07f";
+      };
+    }
+    {
       name = "table___table_4.0.2.tgz";
       path = fetchurl {
         name = "table___table_4.0.2.tgz";
@@ -3546,11 +3682,11 @@
       };
     }
     {
-      name = "table___table_5.1.1.tgz";
+      name = "table___table_5.4.6.tgz";
       path = fetchurl {
-        name = "table___table_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz";
-        sha1 = "92030192f1b7b51b6eeab23ed416862e47b70837";
+        name = "table___table_5.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
+        sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e";
       };
     }
     {
@@ -3610,19 +3746,19 @@
       };
     }
     {
-      name = "trim_right___trim_right_1.0.1.tgz";
+      name = "toposort___toposort_2.0.2.tgz";
       path = fetchurl {
-        name = "trim_right___trim_right_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz";
-        sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
+        name = "toposort___toposort_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz";
+        sha1 = "ae21768175d1559d48bef35420b2f4962f09c330";
       };
     }
     {
-      name = "tslib___tslib_1.9.3.tgz";
+      name = "tslib___tslib_1.13.0.tgz";
       path = fetchurl {
-        name = "tslib___tslib_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
-        sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
+        name = "tslib___tslib_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
+        sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
       };
     }
     {
@@ -3658,11 +3794,11 @@
       };
     }
     {
-      name = "union_value___union_value_1.0.0.tgz";
+      name = "union_value___union_value_1.0.1.tgz";
       path = fetchurl {
-        name = "union_value___union_value_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
-        sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+        name = "union_value___union_value_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
+        sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
       };
     }
     {
@@ -3738,11 +3874,11 @@
       };
     }
     {
-      name = "wordwrap___wordwrap_1.0.0.tgz";
+      name = "word_wrap___word_wrap_1.2.3.tgz";
       path = fetchurl {
-        name = "wordwrap___wordwrap_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+        name = "word_wrap___word_wrap_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
       };
     }
     {
@@ -3770,6 +3906,14 @@
       };
     }
     {
+      name = "write___write_1.0.3.tgz";
+      path = fetchurl {
+        name = "write___write_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
+        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
+      };
+    }
+    {
       name = "write___write_0.2.1.tgz";
       path = fetchurl {
         name = "write___write_0.2.1.tgz";
@@ -3778,6 +3922,14 @@
       };
     }
     {
+      name = "xregexp___xregexp_4.3.0.tgz";
+      path = fetchurl {
+        name = "xregexp___xregexp_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz";
+        sha1 = "7e92e73d9174a99a59743f67a4ce879a04b5ae50";
+      };
+    }
+    {
       name = "y18n___y18n_3.2.1.tgz";
       path = fetchurl {
         name = "y18n___y18n_3.2.1.tgz";
@@ -3809,5 +3961,13 @@
         sha1 = "6542debd9080ad517ec5048fb454efe9e4d4aaae";
       };
     }
+    {
+      name = "yup___yup_0.27.0.tgz";
+      path = fetchurl {
+        name = "yup___yup_0.27.0.tgz";
+        url  = "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz";
+        sha1 = "f8cb198c8e7dd2124beddc2457571329096b06e7";
+      };
+    }
   ];
 }
diff --git a/nixpkgs/pkgs/development/tools/zls/default.nix b/nixpkgs/pkgs/development/tools/zls/default.nix
index 6adf3a2ae9b7..0fbe7bc31140 100644
--- a/nixpkgs/pkgs/development/tools/zls/default.nix
+++ b/nixpkgs/pkgs/development/tools/zls/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zls";
-  version = "0.1.0";
+  version = "unstable-2021-06-06";
 
   src = fetchFromGitHub {
     owner = "zigtools";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-A4aOdmlIxBUeKyczzLxH4y1Rl9TgE1EeiKGbWY4p/00=";
+    rev = "39d87188647bd8c8eed304ee18f2dd1df6942f60";
+    sha256 = "sha256-22N508sVkP1OLySAijhtTPzk2fGf+FVnX9LTYRbRpB4=";
     fetchSubmodules = true;
   };
 
@@ -19,14 +19,14 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    zig build -Drelease-safe --prefix $out install
+    zig build -Drelease-safe -Dcpu=baseline --prefix $out install
   '';
 
   meta = with lib; {
     description = "Zig LSP implementation + Zig Language Server";
     changelog = "https://github.com/zigtools/zls/releases/tag/${version}";
     homepage = "https://github.com/zigtools/zls";
-    license = [ licenses.mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fortuneteller2k ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/zprint/default.nix b/nixpkgs/pkgs/development/tools/zprint/default.nix
new file mode 100644
index 000000000000..702012806209
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/zprint/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, lib, fetchurl, graalvm11-ce, glibcLocales }:
+
+stdenv.mkDerivation rec {
+  pname = "zprint";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url =
+      "https://github.com/kkinnear/${pname}/releases/download/${version}/${pname}-filter-${version}";
+    sha256 = "1wh8jyj7alfa6h0cycfwffki83wqb5d5x0p7kvgdkhl7jx7isrwj";
+  };
+
+  dontUnpack = true;
+
+  LC_ALL = "en_US.UTF-8";
+  nativeBuildInputs = [ graalvm11-ce glibcLocales ];
+
+  buildPhase = ''
+    native-image \
+    --no-server \
+    -J-Xmx7G \
+    -J-Xms4G \
+    -jar ${src} \
+    -H:Name=${pname} \
+    -H:EnableURLProtocols=https,http \
+    -H:+ReportExceptionStackTraces \
+    --report-unsupported-elements-at-runtime \
+    --initialize-at-build-time \
+    --no-fallback
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install ${pname} $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Clojure/EDN source code formatter and pretty printer";
+    longDescription = ''
+      Library and command line tool providing a variety of pretty printing capabilities
+      for both Clojure code and Clojure/EDN structures. It can meet almost anyone's needs.
+      As such, it supports a number of major source code formatting approaches
+    '';
+    homepage = "https://github.com/kkinnear/zprint";
+    license = licenses.mit;
+    platforms = graalvm11-ce.meta.platforms;
+    maintainers = with maintainers; [ stelcodes ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/web/cog/default.nix b/nixpkgs/pkgs/development/web/cog/default.nix
index 5344c1b833ca..a08687e70fd8 100644
--- a/nixpkgs/pkgs/development/web/cog/default.nix
+++ b/nixpkgs/pkgs/development/web/cog/default.nix
@@ -11,19 +11,19 @@
 , webkitgtk
 , makeWrapper
 , wrapGAppsHook
-, gnome3
+, gnome
 , gdk-pixbuf
 }:
 
 stdenv.mkDerivation rec {
   pname = "cog";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "igalia";
     repo = "cog";
     rev = "v${version}";
-    sha256 = "sha256-E6rACj25rdV5dww91PzYEX1r2A9YLNgAVyiYceP1KI8=";
+    sha256 = "sha256-eF7rvOjZntcMmn622342yqfp4ksZ6R/FFBT36bYCViE=";
   };
 
   buildInputs = [
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     webkitgtk
     glib-networking
     gdk-pixbuf
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/web/cypress/default.nix b/nixpkgs/pkgs/development/web/cypress/default.nix
index e05a320f63bb..9563563bc427 100644
--- a/nixpkgs/pkgs/development/web/cypress/default.nix
+++ b/nixpkgs/pkgs/development/web/cypress/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, lib, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsaLib, udev, unzip, wrapGAppsHook, mesa }:
+{ stdenv, lib, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsa-lib, udev, unzip, wrapGAppsHook, mesa }:
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "7.1.0";
+  version = "7.5.0";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "1m52v6hhblrjji9c5885bn5qq0xlaw36krbmqfac7fhgsxmkxd2h";
+    sha256 = "07i475b17v8qazdq6qzjqsdfpvhg1b8x1p5a51hwhcxaym3p5njj";
   };
 
+  passthru.updateScript = ./update.sh;
+
   # don't remove runtime deps
   dontPatchELF = true;
 
@@ -17,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = with xorg; [
     libXScrnSaver libXdamage libXtst libxshmfence
   ] ++ [
-    nss gtk2 alsaLib gnome2.GConf gtk3
+    nss gtk2 alsa-lib gnome2.GConf gtk3
     mesa # for libgbm
   ];
 
diff --git a/nixpkgs/pkgs/development/web/cypress/update.sh b/nixpkgs/pkgs/development/web/cypress/update.sh
new file mode 100755
index 000000000000..f8389b517c32
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/cypress/update.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts curl jq
+
+set -euo pipefail
+
+basedir="$(git rev-parse --show-toplevel)"
+version="$(curl -sL https://cdn.cypress.io/desktop/ | jq '.version' --raw-output)"
+
+cd "$basedir"
+update-source-version cypress "$version"
diff --git a/nixpkgs/pkgs/development/web/deno/default.nix b/nixpkgs/pkgs/development/web/deno/default.nix
index 9b645fb55e34..dee8ad0c9b84 100644
--- a/nixpkgs/pkgs/development/web/deno/default.nix
+++ b/nixpkgs/pkgs/development/web/deno/default.nix
@@ -11,25 +11,29 @@
 , CoreServices
 , Metal
 , Foundation
+, QuartzCore
 , librusty_v8 ? callPackage ./librusty_v8.nix { }
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.9.2";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FKhSFqFZhqzrXrJcBc0YBNHoUq0/1+ULZ9sE+LyNQTI=";
+    sha256 = "sha256-rsQ9MdMgYPqnLzMfW4rwDpx5QKVDm6TMCCHqJzvTpjw=";
   };
-  cargoSha256 = "sha256-Pp322D7YtdpeNnKWcE78tvLh5nFNcrh9oGYX2eCiPzI=";
+  cargoSha256 = "sha256-nKbc73bEKb0XzuBZApu21E1OzkgU9sqbCaaWhUMiWdQ=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv libobjc Security CoreServices Metal Foundation ];
+  buildAndTestSubdir = "cli";
+
+  buildInputs = lib.optionals stdenv.isDarwin
+    [ libiconv libobjc Security CoreServices Metal Foundation QuartzCore ];
 
   # The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
   # To avoid this we pre-download the file and place it in the locations it will require it in advance
@@ -51,9 +55,6 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   postInstall = ''
-    # remove test plugin and test server
-    rm -r $out/lib $out/bin/test_server $out/bin/denort
-
     installShellCompletion --cmd deno \
       --bash <($out/bin/deno completions bash) \
       --fish <($out/bin/deno completions fish) \
diff --git a/nixpkgs/pkgs/development/web/deno/librusty_v8.nix b/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
index c1dbd0f773a8..6ae0de15c770 100644
--- a/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
+++ b/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
@@ -11,11 +11,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.22.1";
+  version = "0.22.3";
   shas = {
-    x86_64-linux = "sha256-rHI5qzwmDvlIdjUCZwvl6/s2Oe6d3/V7TJwfP1AFjik=";
-    aarch64-linux = "sha256-7VhrOkzWayZFTsq0II5uh+TxXaIDSkc0E19ZwT3Hl6c=";
-    x86_64-darwin = "sha256-zXXL2YqgjFmuDHGReIGWVxfSS3PMND0J0qlHRV/rKs8=";
-    aarch64-darwin = "sha256-X/CCJn5yWJH2x6lCGAFllrQUj7XLA3TICRP3aiWytjk=";
+    x86_64-linux = "sha256-RS1fUuTm6zhln67ank6Sit9nhGyKij1UsJ77ezffCh8=";
+    aarch64-linux = "sha256-E7SSFYODO8diPmEvpJyzAcltrh7YUXhWlqsRytFRmtA=";
+    x86_64-darwin = "sha256-29XTC7RoUDNJq46WkLCQT1vCuv4dzBrp8no6vVCsQ2g=";
+    aarch64-darwin = "sha256-UZHhKUjWQGklH26z2Kc2J7VwlV83LWl5n3YZt5ryKrY=";
   };
 }
diff --git a/nixpkgs/pkgs/development/web/flyctl/default.nix b/nixpkgs/pkgs/development/web/flyctl/default.nix
index 0cf9fc4d727f..e0412b0dd366 100644
--- a/nixpkgs/pkgs/development/web/flyctl/default.nix
+++ b/nixpkgs/pkgs/development/web/flyctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.210";
+  version = "0.0.222";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-9SHH54ryll2Mt22Z82YQIcNYk9raPyOZ/QFri2ebPrQ=";
+    sha256 = "sha256-yFcsbk5CAOqnT1ljOe+lGfEj1sCBsaFNZnfcQOfezs4=";
   };
 
   preBuild = ''
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-eEcFxEpVBad57mJXaCCYVeMO+cooUOLsSTKIZnu8Bok=";
+  vendorSha256 = "sha256-NnHnSfm3XYiwgGn56GsthFKiflJvhYhjoxmm8ogm+Uc=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/web/insomnia/default.nix b/nixpkgs/pkgs/development/web/insomnia/default.nix
index 24b65e4e8af8..3ba900f3f691 100644
--- a/nixpkgs/pkgs/development/web/insomnia/default.nix
+++ b/nixpkgs/pkgs/development/web/insomnia/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, makeWrapper, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat
+{ lib, stdenv, makeWrapper, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat
 , fontconfig, freetype, gdk-pixbuf, glib, gnome2, pango, mesa, nspr, nss, gtk3, gtk2
 , at-spi2-atk, gsettings-desktop-schemas, gobject-introspection, wrapGAppsHook
 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
@@ -16,19 +16,19 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "insomnia";
-  version = "2021.1.1";
+  version = "2021.3.0";
 
   src = fetchurl {
     url =
       "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.deb";
-    sha256 = "sha256-GPOeLSbKiaJR5ppzyJMllzM+2gSddZN7+P5ttkocuDg=";
+    sha256 = "sha256-RtEkWi0J3nYzT+IhdyBlGeUE2SCmhlnfw0L6sOvE4WI=";
   };
 
   nativeBuildInputs =
     [ autoPatchelfHook dpkg makeWrapper gobject-introspection wrapGAppsHook ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     atk
     cairo
diff --git a/nixpkgs/pkgs/development/web/nodejs/nodejs.nix b/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
index 09d15901ada8..0e52dd5f8040 100644
--- a/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
@@ -142,6 +142,7 @@ in
       license = licenses.mit;
       maintainers = with maintainers; [ goibhniu gilligan cko marsam ];
       platforms = platforms.linux ++ platforms.darwin;
+      mainProgram = "node";
     };
 
     passthru.python = python; # to ensure nodeEnv uses the same version
diff --git a/nixpkgs/pkgs/development/web/nodejs/v12.nix b/nixpkgs/pkgs/development/web/nodejs/v12.nix
index 54f4352c53ec..7fad6a020a88 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v12.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v12.nix
@@ -1,8 +1,8 @@
-{ callPackage, openssl, icu, python2, lib, stdenv, enableNpm ? true }:
+{ callPackage, icu68, python2, lib, stdenv, enableNpm ? true }:
 
 let
   buildNodejs = callPackage ./nodejs.nix {
-    inherit openssl icu;
+    icu = icu68;
     python = python2;
   };
 in
diff --git a/nixpkgs/pkgs/development/web/nodejs/v14.nix b/nixpkgs/pkgs/development/web/nodejs/v14.nix
index 0d48003268c7..7054e4c66b87 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v14.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v14.nix
@@ -1,14 +1,14 @@
-{ callPackage, openssl, python3, lib, stdenv, enableNpm ? true }:
+{ callPackage, icu68, python3, lib, stdenv, enableNpm ? true }:
 
 let
   buildNodejs = callPackage ./nodejs.nix {
-    inherit openssl;
+    icu = icu68;
     python = python3;
   };
 in
   buildNodejs {
     inherit enableNpm;
-    version = "14.16.1";
-    sha256 = "1hxsk83g2plv6vv3ir1ngca0rwqdy3lq70r504d2qv3msszdnjp4";
+    version = "14.17.0";
+    sha256 = "1vf989canwcx0wdpngvkbz2x232yccp7fzs1vcbr60rijgzmpq2n";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/nixpkgs/pkgs/development/web/nodejs/v15.nix b/nixpkgs/pkgs/development/web/nodejs/v15.nix
index d22c2f213b91..e6903098b302 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v15.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v15.nix
@@ -1,8 +1,8 @@
-{ callPackage, openssl, python3, enableNpm ? true }:
+{ callPackage, icu68, python3, enableNpm ? true }:
 
 let
   buildNodejs = callPackage ./nodejs.nix {
-    inherit openssl;
+    icu = icu68;
     python = python3;
   };
 in
diff --git a/nixpkgs/pkgs/development/web/nodejs/v16.nix b/nixpkgs/pkgs/development/web/nodejs/v16.nix
index b114c65cd166..a97f3383a6bc 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v16.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v16.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "16.0.0";
-    sha256 = "00mada0vvybizygwhzsq6gcz0m2k864lfiiqqlnw8gcc3q8r1js7";
+    version = "16.3.0";
+    sha256 = "0pxcdy9i1iyxp4afmpaz30ajlwrj74y64jl3n9rjqw0r5jw4gavs";
   }
diff --git a/nixpkgs/pkgs/development/web/postman/default.nix b/nixpkgs/pkgs/development/web/postman/default.nix
index 02376c0bfe7c..6eb7eb1b58c5 100644
--- a/nixpkgs/pkgs/development/web/postman/default.nix
+++ b/nixpkgs/pkgs/development/web/postman/default.nix
@@ -1,17 +1,17 @@
 { lib, stdenv, fetchurl, makeDesktopItem, wrapGAppsHook
-, atk, at-spi2-atk, at-spi2-core, alsaLib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3
+, atk, at-spi2-atk, at-spi2-core, alsa-lib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3
 , freetype, fontconfig, nss, nspr, pango, udev, libuuid, libX11, libxcb, libXi
 , libXcursor, libXdamage, libXrandr, libXcomposite, libXext, libXfixes
-, libXrender, libXtst, libXScrnSaver
+, libXrender, libXtst, libXScrnSaver, libdrm, mesa
 }:
 
 stdenv.mkDerivation rec {
   pname = "postman";
-  version = "7.36.1";
+  version = "8.4.0";
 
   src = fetchurl {
     url = "https://dl.pstmn.io/download/version/${version}/linux64";
-    sha256 = "sha256-6brThKTAQI3cu3SSqvEIT1nwlQ/jPTP+d/Q/m/Ez5nQ=";
+    sha256 = "040l0g6m8lmjrm0wvq8z13xyddasz7v95v54d658w14gv0n713vw";
     name = "${pname}.tar.gz";
   };
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     atk
     at-spi2-atk
     at-spi2-core
-    alsaLib
+    alsa-lib
     cairo
     cups
     dbus
@@ -43,10 +43,12 @@ stdenv.mkDerivation rec {
     gtk3
     freetype
     fontconfig
+    mesa
     nss
     nspr
     pango
     udev
+    libdrm
     libuuid
     libX11
     libxcb
diff --git a/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix b/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
index b8a9f94a23f0..65625ca7d21f 100644
--- a/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
+++ b/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bootstrap";
-  version = "4.6.0";
+  version = "5.0.1";
 
   src = fetchurl {
     url = "https://github.com/twbs/bootstrap/releases/download/v${version}/${pname}-${version}-dist.zip";
-    sha256 = "sha256-CiEUUa0mCrUSp+XCoWNs8plJxhWHZZD+K+UBJSDu1CM=";
+    sha256 = "sha256-eep9s1YxTHeDDh+WhDMENho/N3AfJHVitis22bIGa6w=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/web/valum/default.nix b/nixpkgs/pkgs/development/web/valum/default.nix
index 847943d83bcf..f62e9027af10 100644
--- a/nixpkgs/pkgs/development/web/valum/default.nix
+++ b/nixpkgs/pkgs/development/web/valum/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     description = "Web micro-framework written in Vala";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/games/0ad/data.nix b/nixpkgs/pkgs/games/0ad/data.nix
index 5cb28b3f3bd6..9533af21b15d 100644
--- a/nixpkgs/pkgs/games/0ad/data.nix
+++ b/nixpkgs/pkgs/games/0ad/data.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     description = "A free, open-source game of ancient warfare -- data files";
     homepage = "https://play0ad.com/";
     license = licenses.cc-by-sa-30;
+    maintainers = with maintainers; [ chvp ];
     platforms = platforms.linux;
     hydraPlatforms = [];
   };
diff --git a/nixpkgs/pkgs/games/0ad/game.nix b/nixpkgs/pkgs/games/0ad/game.nix
index bb3b7c0138af..feaf4347329c 100644
--- a/nixpkgs/pkgs/games/0ad/game.nix
+++ b/nixpkgs/pkgs/games/0ad/game.nix
@@ -2,7 +2,7 @@
 , pkg-config, spidermonkey_78, boost, icu, libxml2, libpng, libsodium
 , libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc
 , openal, libGLU, libGL, xorgproto, libX11, libXcursor, nspr, SDL2
-, gloox, nvidia-texture-tools, zeroad-data
+, gloox, nvidia-texture-tools
 , withEditor ? true, wxGTK
 }:
 
@@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
     "-I${fmt.dev}/include"
   ];
 
+  patches = [ ./rootdir_env.patch ];
+
   configurePhase = ''
     # Delete shipped libraries which we don't need.
     rm -rf libraries/source/{enet,miniupnpc,nvtt,spidermonkey}
@@ -62,7 +64,6 @@ stdenv.mkDerivation rec {
       ${lib.optionalString withEditor "--enable-atlas"} \
       --bindir="$out"/bin \
       --libdir="$out"/lib/0ad \
-      --datadir="$out"/share/0ad/data \
       --without-tests \
       -j $NIX_BUILD_CORES
     popd
@@ -85,11 +86,6 @@ stdenv.mkDerivation rec {
     # Copy l10n data.
     install -Dm755 -t $out/share/0ad/data/l10n binaries/data/l10n/*
 
-    # Link in game data from package
-    ln -s ${zeroad-data}/share/0ad/data/config $out/share/0ad/data/config
-    ln -s ${zeroad-data}/share/0ad/data/mods $out/share/0ad/data/mods
-    ln -s ${zeroad-data}/share/0ad/data/tools $out/share/0ad/data/tools
-
     # Copy libraries.
     install -Dm644 -t $out/lib/0ad        binaries/system/*.so
 
@@ -105,6 +101,7 @@ stdenv.mkDerivation rec {
       gpl2 lgpl21 mit cc-by-sa-30
       licenses.zlib # otherwise masked by pkgs.zlib
     ];
+    maintainers = with maintainers; [ chvp ];
     platforms = subtractLists platforms.i686 platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/games/0ad/rootdir_env.patch b/nixpkgs/pkgs/games/0ad/rootdir_env.patch
new file mode 100644
index 000000000000..95463c7e2df4
--- /dev/null
+++ b/nixpkgs/pkgs/games/0ad/rootdir_env.patch
@@ -0,0 +1,39 @@
+diff --git a/source/ps/GameSetup/Paths.cpp b/source/ps/GameSetup/Paths.cpp
+index 474364e..bf084b4 100644
+--- a/source/ps/GameSetup/Paths.cpp
++++ b/source/ps/GameSetup/Paths.cpp
+@@ -155,32 +155,8 @@ Paths::Paths(const CmdLineArgs& args)
+ 
+ /*static*/ OsPath Paths::Root(const OsPath& argv0)
+ {
+-#if OS_ANDROID
+-	return OsPath("/sdcard/0ad"); // TODO: this is kind of bogus
+-#else
+-
+-	// get full path to executable
+-	OsPath pathname = sys_ExecutablePathname();	// safe, but requires OS-specific implementation
+-	if(pathname.empty())	// failed, use argv[0] instead
+-	{
+-		errno = 0;
+-		pathname = wrealpath(argv0);
+-		if(pathname.empty())
+-			WARN_IF_ERR(StatusFromErrno());
+-	}
+-
+-	// make sure it's valid
+-	if(!FileExists(pathname))
+-	{
+-		LOGERROR("Cannot find executable (expected at '%s')", pathname.string8());
+-		WARN_IF_ERR(StatusFromErrno());
+-	}
+-
+-	for(size_t i = 0; i < 2; i++)	// remove "system/name.exe"
+-		pathname = pathname.Parent();
+-	return pathname;
+-
+-#endif
++        UNUSED2(argv0);
++        return OsPath(getenv("ZEROAD_ROOTDIR"));
+ }
+ 
+ /*static*/ OsPath Paths::RootData(const OsPath& argv0)
diff --git a/nixpkgs/pkgs/games/0verkill/default.nix b/nixpkgs/pkgs/games/0verkill/default.nix
index 69a371f09d9f..fa654832e2e2 100644
--- a/nixpkgs/pkgs/games/0verkill/default.nix
+++ b/nixpkgs/pkgs/games/0verkill/default.nix
@@ -1,5 +1,5 @@
 { lib
-, stdenv
+, gccStdenv
 , fetchFromGitHub
 , autoreconfHook
 , xorgproto
@@ -7,7 +7,7 @@
 , libXpm
 }:
 
-stdenv.mkDerivation rec {
+gccStdenv.mkDerivation rec {
   pname = "0verkill";
   version = "unstable-2011-01-13";
 
diff --git a/nixpkgs/pkgs/games/adom/default.nix b/nixpkgs/pkgs/games/adom/default.nix
index dc4f1f47f7b1..b40a608412ef 100644
--- a/nixpkgs/pkgs/games/adom/default.nix
+++ b/nixpkgs/pkgs/games/adom/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, libGLU, libGL, alsaLib, libpulseaudio
+{ lib, stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, libGLU, libGL, alsa-lib, libpulseaudio
 , xorg }:
 
 let
@@ -6,7 +6,7 @@ let
   inherit (xorg) libXext libX11;
 
   lpath = "${stdenv.cc.cc.lib}/lib64:" + lib.makeLibraryPath [
-      zlib libmad libpng12 libcaca libXext libX11 libGLU libGL alsaLib libpulseaudio];
+      zlib libmad libpng12 libcaca libXext libX11 libGLU libGL alsa-lib libpulseaudio];
 
 in
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/games/alephone/default.nix b/nixpkgs/pkgs/games/alephone/default.nix
index 6562a60a5be4..347ccd8df63b 100644
--- a/nixpkgs/pkgs/games/alephone/default.nix
+++ b/nixpkgs/pkgs/games/alephone/default.nix
@@ -7,12 +7,12 @@ let
   self = stdenv.mkDerivation rec {
     outputs = [ "out" "icons" ];
     pname = "alephone";
-    version = "1.3.1";
+    version = "1.4";
 
     src = fetchurl {
-      url = let date = "20200904";
+      url = let date = "20210408";
       in "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${date}/AlephOne-${date}.tar.bz2";
-      sha256 = "13ck3mp9qd5pkiq6zwvr744bwvmnqkgj5vpf325sz1mcvnv7l8lh";
+      sha256 = "sha256-tMwATUhUpo8W2oSWxGSZcAHVkj1PWEvUR/rpMZwWCWA=";
     };
 
     nativeBuildInputs = [ pkg-config icoutils ];
diff --git a/nixpkgs/pkgs/games/alephone/infinity/default.nix b/nixpkgs/pkgs/games/alephone/infinity/default.nix
index 5db83c579e4e..f6002469a096 100644
--- a/nixpkgs/pkgs/games/alephone/infinity/default.nix
+++ b/nixpkgs/pkgs/games/alephone/infinity/default.nix
@@ -3,13 +3,13 @@
 alephone.makeWrapper rec {
   pname = "marathon-infinity";
   desktopName = "Marathon-Infinity";
-  version = "20200904";
+  version = "20210408";
   icon = alephone.icons + "/marathon-infinity.png";
 
   zip = fetchurl {
     url =
       "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${version}/MarathonInfinity-${version}-Data.zip";
-    sha256 = "1n2zfiqjbakkk9dpnzfndqyvq3aml2kjrr2b1wm8g1n44nbc8clq";
+    sha256 = "sha256-j9iwSrI7cjqnuRQX+qn8sWXQ6E+DQ19l7OzAL9KHcJU=";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/games/amoeba/default.nix b/nixpkgs/pkgs/games/amoeba/default.nix
index d648ac85c60e..61f5a5bf824d 100644
--- a/nixpkgs/pkgs/games/amoeba/default.nix
+++ b/nixpkgs/pkgs/games/amoeba/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, amoeba-data, alsaLib, expat, freetype, gtk2, libvorbis, libGLU, xorg, pkg-config }:
+{ lib, stdenv, fetchurl, amoeba-data, alsa-lib, expat, freetype, gtk2, libvorbis, libGLU, xorg, pkg-config }:
 
 stdenv.mkDerivation rec {
   name = "amoeba-${version}-${debver}";
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib expat freetype gtk2 libvorbis libGLU xorg.libXxf86vm ];
+  buildInputs = [ alsa-lib expat freetype gtk2 libvorbis libGLU xorg.libXxf86vm ];
 
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1/
diff --git a/nixpkgs/pkgs/games/anki/bin.nix b/nixpkgs/pkgs/games/anki/bin.nix
index 54e1646fcae5..09f92b0f8481 100644
--- a/nixpkgs/pkgs/games/anki/bin.nix
+++ b/nixpkgs/pkgs/games/anki/bin.nix
@@ -3,14 +3,14 @@
 let
   pname = "anki-bin";
   # Update hashes for both Linux and Darwin!
-  version = "2.1.43";
+  version = "2.1.44";
 
   unpacked = stdenv.mkDerivation {
     inherit pname version;
 
     src = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
-      sha256 = "0kadv3fxi76h7xxmb4lckkgcwiv0b7cn630l62dxa2abxibans29";
+      sha256 = "01d5ll3vsd4v0ikxgamv47bkwmag15vnmsgpda5wivc3dyawc9j9";
     };
 
     installPhase = ''
@@ -49,7 +49,7 @@ if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
 
   src = fetchurl {
     url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
-    sha256 = "0vvgiybq1ygq7cly1r4ircgzg2cpprindr7nnlbnrmandjy2kw49";
+    sha256 = "1zrdih4rjsq30480sf200pw59r42p3nq2md56kj2l641kbc7ljka";
   };
 
   nativeBuildInputs = [ undmg ];
diff --git a/nixpkgs/pkgs/games/assaultcube/default.nix b/nixpkgs/pkgs/games/assaultcube/default.nix
index a2c00ddc149b..640ea81c6c6b 100644
--- a/nixpkgs/pkgs/games/assaultcube/default.nix
+++ b/nixpkgs/pkgs/games/assaultcube/default.nix
@@ -67,6 +67,6 @@ stdenv.mkDerivation rec {
     homepage = "https://assault.cubers.net";
     maintainers = [ ];
     platforms = platforms.linux; # should work on darwin with a little effort.
-    license = lib.licenses.zlib;
+    license = lib.licenses.unfree;
   };
 }
diff --git a/nixpkgs/pkgs/games/augustus/default.nix b/nixpkgs/pkgs/games/augustus/default.nix
index b7c2a0b79792..4693e290da6a 100644
--- a/nixpkgs/pkgs/games/augustus/default.nix
+++ b/nixpkgs/pkgs/games/augustus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "augustus";
-  version = "2.0.1";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "Keriew";
     repo = "augustus";
     rev = "v${version}";
-    sha256 = "0czazw8mc3fbvdazs2nzvgxd1dpzjc8z5fwiv89vv4nd7laz3jkj";
+    sha256 = "03pmnwq6bahq854vh1vmv1vabb8cs0alca8f36id8dlz8bw95nik";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/git.nix b/nixpkgs/pkgs/games/cataclysm-dda/git.nix
index 9af90481acda..b07689c09307 100644
--- a/nixpkgs/pkgs/games/cataclysm-dda/git.nix
+++ b/nixpkgs/pkgs/games/cataclysm-dda/git.nix
@@ -2,9 +2,9 @@
 , tiles ? true, Cocoa
 , debug ? false
 , useXdgDir ? false
-, version ? "2019-11-22"
-, rev ? "a6c8ece992bffeae3788425dd4b3b5871e66a9cd"
-, sha256 ? "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab"
+, version ? "2020-12-09"
+, rev ? "cb02195d9fb5ba71f35a105be4104c3d8883065c"
+, sha256 ? "108cs6vp99qmqqfnmczad0xjgcl82bypm5xszwnlfcswdsrfs4da"
 }:
 
 let
diff --git a/nixpkgs/pkgs/games/cbonsai/default.nix b/nixpkgs/pkgs/games/cbonsai/default.nix
index c817b5d36b5b..eda9e37752e6 100644
--- a/nixpkgs/pkgs/games/cbonsai/default.nix
+++ b/nixpkgs/pkgs/games/cbonsai/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitLab, ncurses, pkg-config, nix-update-script }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.4";
+  version = "1.2.0";
   pname = "cbonsai";
 
   src = fetchFromGitLab {
     owner = "jallbrit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5yyvisExf4Minyr1ApJQ2SoctfjhdU6kEbgBGgHDtCg=";
+    sha256 = "sha256-j3RNCUxNyphZy5c7ZcKwyVbcYt7l6wiB+r7P3sWPFwA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/games/cdogs-sdl/default.nix b/nixpkgs/pkgs/games/cdogs-sdl/default.nix
index 1c35e1e86e70..30abb71a1296 100644
--- a/nixpkgs/pkgs/games/cdogs-sdl/default.nix
+++ b/nixpkgs/pkgs/games/cdogs-sdl/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cdogs";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     repo = "cdogs-sdl";
     owner = "cxong";
     rev = version;
-    sha256 = "sha256-zWwlcEM2KsYiB48cmRTjou0C86SqeoOLrbacCR0SfIA=";
+    sha256 = "sha256-qbMR7otsC+uz+9mwgFaD2Z5fC6rj8ueYG3KwpPiqL98=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/games/chessx/default.nix b/nixpkgs/pkgs/games/chessx/default.nix
index fb7c7fddf095..1d2b366cf38e 100644
--- a/nixpkgs/pkgs/games/chessx/default.nix
+++ b/nixpkgs/pkgs/games/chessx/default.nix
@@ -12,11 +12,11 @@
 
 mkDerivation rec {
   pname = "chessx";
-  version = "1.5.0";
+  version = "1.5.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/chessx/chessx-${version}.tgz";
-    sha256 = "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i";
+    sha256 = "sha256-0JpLU0qQnF8aOYxkBlBJov3zBJe8gcy98NlAQSNk0gU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/games/ckan/default.nix b/nixpkgs/pkgs/games/ckan/default.nix
index 9f25a1d50afa..3649369aeaad 100644
--- a/nixpkgs/pkgs/games/ckan/default.nix
+++ b/nixpkgs/pkgs/games/ckan/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ckan";
-  version = "1.30.0";
+  version = "1.30.4";
 
   src = fetchurl {
     url = "https://github.com/KSP-CKAN/CKAN/releases/download/v${version}/ckan.exe";
-    sha256 = "sha256-wih5NRzeOy4WMXQ3yV9W/m2x7B2C5T0F78TbpsngigQ=";
+    sha256 = "sha256-IgPqUEDpaIuGoaGoH2GCEzh3KxF3pkJC3VjTYXwSiQE=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/games/clonehero/default.nix b/nixpkgs/pkgs/games/clonehero/default.nix
index 504e4811432b..cf1fad8d945b 100644
--- a/nixpkgs/pkgs/games/clonehero/default.nix
+++ b/nixpkgs/pkgs/games/clonehero/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchurl
 , autoPatchelfHook
-, alsaLib
+, alsa-lib
 , gtk2
 , libXrandr
 , libXScrnSaver
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     zlib
 
     # Run-time libraries (loaded with dlopen)
-    alsaLib # ALSA sound
+    alsa-lib # ALSA sound
     libXrandr # X11 resolution detection
     libXScrnSaver # X11 screensaver prevention
     udev # udev input drivers
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     description = "Clone of Guitar Hero and Rockband-style games";
     homepage = "https://clonehero.net";
     license = licenses.unfree;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/games/colobot/default.nix b/nixpkgs/pkgs/games/colobot/default.nix
index 25b91d80f272..b26244ccc5fd 100644
--- a/nixpkgs/pkgs/games/colobot/default.nix
+++ b/nixpkgs/pkgs/games/colobot/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, boost, SDL2, SDL2_image, SDL2_ttf, libpng
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, SDL2, SDL2_image, SDL2_ttf, libpng
 , glew, gettext, libsndfile, libvorbis, libogg, physfs, openal
 , xmlstarlet, doxygen, python3, callPackage }:
 
@@ -18,6 +18,15 @@ stdenv.mkDerivation rec {
     sha256 = "0viq5s4zqs33an7rdmc3anf74ml7mwwcwf60alhvp9hj5jr547s2";
   };
 
+  patches = [
+    # Fix issue with newer compilers, like used in nixpkgs
+    # https://github.com/colobot/colobot/pull/1291
+    (fetchpatch {
+      url = "https://github.com/colobot/colobot/commit/fc2bd68876ac6302dbc8e91e8ffa33592db14b21.patch";
+      sha256 = "sha256-PKe8jeyHpTT86tprSafQhNqTYBrSonz+r2fL1lVJdfo=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake xmlstarlet doxygen python3 ];
   buildInputs = [ boost SDL2 SDL2_image SDL2_ttf libpng glew gettext libsndfile libvorbis libogg physfs openal ];
 
diff --git a/nixpkgs/pkgs/games/cutemaze/default.nix b/nixpkgs/pkgs/games/cutemaze/default.nix
index 0cd16e433dfa..44c48af5c29e 100644
--- a/nixpkgs/pkgs/games/cutemaze/default.nix
+++ b/nixpkgs/pkgs/games/cutemaze/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "cutemaze";
-  version = "1.2.6";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://gottcode.org/cutemaze/${pname}-${version}-src.tar.bz2";
-    sha256 = "0pw31j2i3ifndikhz9w684ia00r8zvcgnb66ign9w4lgs1zjgcrw";
+    sha256 = "sha256-h7+H2E37ZVSnlPa6ID+lNEvFtU5PfdMSlBjqBumojoU=";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/nixpkgs/pkgs/games/eduke32/default.nix b/nixpkgs/pkgs/games/eduke32/default.nix
index a5796f697ef1..3fb8236947f4 100644
--- a/nixpkgs/pkgs/games/eduke32/default.nix
+++ b/nixpkgs/pkgs/games/eduke32/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper, pkg-config, nasm, makeDesktopItem
-, alsaLib, flac, gtk2, libvorbis, libvpx, libGLU, libGL
+, alsa-lib, flac, gtk2, libvorbis, libvpx, libGLU, libGL
 , SDL2, SDL2_mixer }:
 
 let
@@ -27,7 +27,7 @@ in stdenv.mkDerivation {
     sha256 = "972630059be61ef9564a241b84ef2ee4f69fc85c19ee36ce46052ff2f1ce3bf9";
   };
 
-  buildInputs = [ alsaLib flac gtk2 libvorbis libvpx libGL libGLU SDL2 SDL2_mixer ];
+  buildInputs = [ alsa-lib flac gtk2 libvorbis libvpx libGL libGLU SDL2 SDL2_mixer ];
 
   nativeBuildInputs = [ makeWrapper pkg-config ]
     ++ lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm;
diff --git a/nixpkgs/pkgs/games/eidolon/default.nix b/nixpkgs/pkgs/games/eidolon/default.nix
index 7112c6bf49c5..a224ba112e03 100644
--- a/nixpkgs/pkgs/games/eidolon/default.nix
+++ b/nixpkgs/pkgs/games/eidolon/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   };
   cargoPatches = [ ./cargo-lock.patch ];
 
-  cargoSha256 = "1i8qfphynwi42pkhhgllxq42dnw9f0dd6f829z94a3g91czyqvsw";
+  cargoSha256 = "01mnfn6j4sj9iqw5anpx8lqm9jmk7wdrx3h2hcvqcmkyrk1nggx0";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/games/factorio/default.nix b/nixpkgs/pkgs/games/factorio/default.nix
index 879bbfa2311f..9798d659322c 100644
--- a/nixpkgs/pkgs/games/factorio/default.nix
+++ b/nixpkgs/pkgs/games/factorio/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper, makeDesktopItem
-, alsaLib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL
+, alsa-lib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL
 , libSM, libICE, libXext, factorio-utils
 , releaseType
 , mods ? []
@@ -182,7 +182,7 @@ let
       buildInputs = [ libpulseaudio ];
 
       libPath = lib.makeLibraryPath [
-        alsaLib
+        alsa-lib
         libpulseaudio
         libX11
         libXcursor
diff --git a/nixpkgs/pkgs/games/factorio/versions.json b/nixpkgs/pkgs/games/factorio/versions.json
index 151836096ffb..29c2d6a7bb3f 100644
--- a/nixpkgs/pkgs/games/factorio/versions.json
+++ b/nixpkgs/pkgs/games/factorio/versions.json
@@ -2,20 +2,20 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.32.tar.xz",
+        "name": "factorio_alpha_x64-1.1.34.tar.xz",
         "needsAuth": true,
-        "sha256": "0ciz7y8xqlk9vg3akvflq1aabzgbqpazfnihyk4gsadk12b6a490",
+        "sha256": "1gba6ivxdhj8khk6kfja2nzvqbbjlq1gzk8vlb23mkzqcmf4gnqc",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.32/alpha/linux64",
-        "version": "1.1.32"
+        "url": "https://factorio.com/get-download/1.1.34/alpha/linux64",
+        "version": "1.1.34"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.32.tar.xz",
+        "name": "factorio_alpha_x64-1.1.34.tar.xz",
         "needsAuth": true,
-        "sha256": "0ciz7y8xqlk9vg3akvflq1aabzgbqpazfnihyk4gsadk12b6a490",
+        "sha256": "1gba6ivxdhj8khk6kfja2nzvqbbjlq1gzk8vlb23mkzqcmf4gnqc",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.32/alpha/linux64",
-        "version": "1.1.32"
+        "url": "https://factorio.com/get-download/1.1.34/alpha/linux64",
+        "version": "1.1.34"
       }
     },
     "demo": {
@@ -28,30 +28,30 @@
         "version": "1.1.30"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.32.tar.xz",
+        "name": "factorio_demo_x64-1.1.34.tar.xz",
         "needsAuth": false,
-        "sha256": "19zwl20hn8hh942avqri1kslf7dcqi9nim50vh4w5d0493srybfw",
+        "sha256": "1ld373lxfx1xbaqq394az8sxfxpjwkyqwwr77wbmg4sm2g9dinxm",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.32/demo/linux64",
-        "version": "1.1.32"
+        "url": "https://factorio.com/get-download/1.1.34/demo/linux64",
+        "version": "1.1.34"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.32.tar.xz",
+        "name": "factorio_headless_x64-1.1.34.tar.xz",
         "needsAuth": false,
-        "sha256": "0dg98ycs7m8rm996pk0p1iajalpmiy30p0pwr9dw2chf1d887kvz",
+        "sha256": "0sfafdvfhhvxnhf7q23xnvckx8nihg5xzzc6dw39a3iprwhr75i1",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.32/headless/linux64",
-        "version": "1.1.32"
+        "url": "https://factorio.com/get-download/1.1.34/headless/linux64",
+        "version": "1.1.34"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.32.tar.xz",
+        "name": "factorio_headless_x64-1.1.34.tar.xz",
         "needsAuth": false,
-        "sha256": "0dg98ycs7m8rm996pk0p1iajalpmiy30p0pwr9dw2chf1d887kvz",
+        "sha256": "0sfafdvfhhvxnhf7q23xnvckx8nihg5xzzc6dw39a3iprwhr75i1",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.32/headless/linux64",
-        "version": "1.1.32"
+        "url": "https://factorio.com/get-download/1.1.34/headless/linux64",
+        "version": "1.1.34"
       }
     }
   }
diff --git a/nixpkgs/pkgs/games/fheroes2/default.nix b/nixpkgs/pkgs/games/fheroes2/default.nix
new file mode 100644
index 000000000000..b9802bd81b5f
--- /dev/null
+++ b/nixpkgs/pkgs/games/fheroes2/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchFromGitHub
+, gettext, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fheroes2";
+  version = "0.9.4";
+
+  src = fetchFromGitHub {
+    owner = "ihhub";
+    repo = "fheroes2";
+    rev = version;
+    sha256 = "sha256-z+88tVsf4uyMFzNfZDKXo0cYqBCYn1ehX+A+e+aIfSg=";
+  };
+
+  buildInputs = [ gettext libpng SDL2 SDL2_image SDL2_mixer SDL2_ttf zlib ];
+
+  makeFlags = [
+    "FHEROES2_STRICT_COMPILATION=1"
+    "RELEASE=1"
+  ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 $PWD/src/dist/fheroes2 $out/bin/fheroes2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ihhub/fheroes2";
+    description = "Free implementation of Heroes of Might and Magic II game engine";
+    longDescription = ''
+        In order to play this game, an original game data is required.
+        Please refer to README of the project for instructions.
+        On linux, the data can be placed in ~/.local/share/fheroes2 folder.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.karolchmist ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/freeciv/default.nix b/nixpkgs/pkgs/games/freeciv/default.nix
index 3ffb7e0c5496..58e91a44842c 100644
--- a/nixpkgs/pkgs/games/freeciv/default.nix
+++ b/nixpkgs/pkgs/games/freeciv/default.nix
@@ -12,13 +12,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freeciv";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "freeciv";
     repo = "freeciv";
     rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-tRjik2LONwKFZOcIuyFDoE1fD23UnZHMdNLo0DdYyOc=";
+    sha256 = "sha256-MRaY10HliP8TA8/9s5caNtB5hks5SJcBJItFXOUryCI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/games/freenukum/default.nix b/nixpkgs/pkgs/games/freenukum/default.nix
index 36639140702a..ff1e8872233e 100644
--- a/nixpkgs/pkgs/games/freenukum/default.nix
+++ b/nixpkgs/pkgs/games/freenukum/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0yqfzh0c8fqk92q9kmidy15dc5li0ak1gbn3v7p3xw5fkrzf99gy";
   };
 
-  cargoSha256 = "1mi98ccp4026gdc5x9jc6518zb7z4dplxl8vir78ivgdpifzz4pw";
+  cargoSha256 = "1nss5zbdvxkr1mfb6vi6yjxcih99w836kvfr4r3n5dvzlkvga2vf";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/games/freeorion/default.nix b/nixpkgs/pkgs/games/freeorion/default.nix
index de25fa691d51..dea5190d976e 100644
--- a/nixpkgs/pkgs/games/freeorion/default.nix
+++ b/nixpkgs/pkgs/games/freeorion/default.nix
@@ -1,39 +1,81 @@
-{ lib, stdenv, fetchFromGitHub, cmake, doxygen, graphviz, makeWrapper
-, boost168, SDL2, python2, freetype, openal, libogg, libvorbis, zlib, libpng, libtiff
-, libjpeg, libGLU, libGL, glew, libxslt
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, doxygen
+, graphviz
+, makeWrapper
+, cppcheck
+, boost16x
+, SDL2
+, python3
+, freetype
+, openal
+, libogg
+, libvorbis
+, zlib
+, libpng
+, libtiff
+, libjpeg
+, libGLU
+, libGL
+, glew
+, libxslt
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.9";
+  version = "0.4.10.1";
   pname = "freeorion";
 
   src = fetchFromGitHub {
-    owner  = "freeorion";
-    repo   = "freeorion";
+    owner = "freeorion";
+    repo = "freeorion";
     rev = "v${version}";
-    sha256 = "18xigx4qla225ybf7mc1w8zfm81nhcm1i5181n5l2fbndvslb1wf";
+    sha256 = "sha256-Itt2JIStx+JsnMMBvbeJXSEJpaS/pd1UMvPGNd50k7I=";
   };
 
   buildInputs = [
-    (boost168.override { enablePython = true; })
-    SDL2 python2 freetype openal libogg libvorbis zlib libpng libtiff libjpeg libGLU libGL glew ];
+    (boost16x.override { enablePython = true; python = python3; })
+    (python3.withPackages (p: with p; [ pycodestyle ]))
+    SDL2
+    freetype
+    glew
+    libGL
+    libGLU
+    libjpeg
+    libogg
+    libpng
+    libtiff
+    libvorbis
+    openal
+    zlib
+  ];
 
-  nativeBuildInputs = [ cmake doxygen graphviz makeWrapper ];
+  nativeBuildInputs = [
+    cmake
+    cppcheck
+    doxygen
+    graphviz
+    makeWrapper
+  ];
+
+  # as of 0.4.10.1 FreeOrion doesn't work with "-DOpenGL_GL_PREFERENCE=GLVND"
+  cmakeFlags = [ "-DOpenGL_GL_PREFERENCE=LEGACY" ];
 
   postInstall = ''
-    mkdir -p $out/fixpaths
+    mkdir -p $out/libexec
     # We need final slashes for XSLT replace to work properly
-    substitute ${./fix-paths.xslt} $out/fixpaths/fix-paths.xslt \
+    substitute ${./fix-paths.xslt} $out/share/freeorion/fix-paths.xslt \
       --subst-var-by nixStore "$NIX_STORE/" \
       --subst-var-by out "$out/"
-    substitute ${./fix-paths.sh} $out/fixpaths/fix-paths \
+    substitute ${./fix-paths.sh} $out/libexec/fix-paths \
       --subst-var-by libxsltBin ${libxslt.bin} \
       --subst-var-by shell ${stdenv.shell} \
       --subst-var out
-    chmod +x $out/fixpaths/fix-paths
+    chmod +x $out/libexec/fix-paths
 
     wrapProgram $out/bin/freeorion \
-      --run $out/fixpaths/fix-paths \
+      --run $out/libexec/fix-paths \
       --prefix LD_LIBRARY_PATH : $out/lib/freeorion
   '';
 
diff --git a/nixpkgs/pkgs/games/freeorion/fix-paths.sh b/nixpkgs/pkgs/games/freeorion/fix-paths.sh
index 3f82533dd60d..def017ddc5b0 100644
--- a/nixpkgs/pkgs/games/freeorion/fix-paths.sh
+++ b/nixpkgs/pkgs/games/freeorion/fix-paths.sh
@@ -1,6 +1,6 @@
 #!@shell@
 
 if [ -e ~/.config/freeorion/config.xml ]; then
-  @libxsltBin@/bin/xsltproc -o ~/.config/freeorion/config.xml @out@/fixpaths/fix-paths.xslt ~/.config/freeorion/config.xml
+  @libxsltBin@/bin/xsltproc -o ~/.config/freeorion/config.xml @out@/share/freeorion/fix-paths.xslt ~/.config/freeorion/config.xml
 fi
 exit 0
diff --git a/nixpkgs/pkgs/games/frogatto/data.nix b/nixpkgs/pkgs/games/frogatto/data.nix
index e911709dffcc..d31826ad2959 100644
--- a/nixpkgs/pkgs/games/frogatto/data.nix
+++ b/nixpkgs/pkgs/games/frogatto/data.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation {
   pname = "frogatto-data";
-  version = "unstable-2018-12-18";
+  version = "unstable-2021-05-24";
 
   src = fetchFromGitHub {
     owner = "frogatto";
     repo = "frogatto";
     # master branch as of 2020-12-17
-    rev = "c1d0813b3b755a4e232369b6791397ad058efc16";
-    sha256 = "1fhaidd35392zzavp93r6ihyansgkc3m1ilz71ia1zl4n3fbsxjg";
+    rev = "8b0f2bc8f9f172f6225b8e0d806552cb94f35e2a";
+    sha256 = "09nrna9l1zj2ma2bazdhdvphwy570kfz4br4xgpwq21rsjrvrqiy";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/games/frogatto/default.nix b/nixpkgs/pkgs/games/frogatto/default.nix
index 69d5282aedca..0b53e3d0bea3 100644
--- a/nixpkgs/pkgs/games/frogatto/default.nix
+++ b/nixpkgs/pkgs/games/frogatto/default.nix
@@ -34,7 +34,6 @@ in buildEnv {
   '';
 
   meta = with lib; {
-    broken = true;
     homepage = "https://frogatto.com";
     description = description;
     license = with licenses; [ cc-by-30 unfree ];
diff --git a/nixpkgs/pkgs/games/frogatto/engine.nix b/nixpkgs/pkgs/games/frogatto/engine.nix
index 4ebf22b46b0e..22aab537c217 100644
--- a/nixpkgs/pkgs/games/frogatto/engine.nix
+++ b/nixpkgs/pkgs/games/frogatto/engine.nix
@@ -4,17 +4,21 @@
 
 stdenv.mkDerivation {
   pname = "anura-engine";
-  version = "unstable-2018-11-28";
+  version = "unstable-2021-05-24";
 
   src = fetchFromGitHub {
     owner = "anura-engine";
     repo = "anura";
-    # trunk branch as of 2018-11-28
-    rev = "a05f413f255d2854019134be817c253a03da3d9f";
-    sha256 = "1hd57q8gbn1zdpibnqd3ma0z1ycayc2f4r9j4m2m9kc6yf4v7w7b";
+    rev = "ed50bbfa68a4aa09438d95d39103ec39156d438f";
+    sha256 = "0bk0qklk9wwx3jr2kbrmansccn1nj962v5n2vlb5hxsrcv96s3dg";
     fetchSubmodules = true;
   };
 
+  postPatch = ''
+    substituteInPlace src/sys.cpp \
+      --replace mallinfo2 mallinfo
+  '';
+
   nativeBuildInputs = [
     which pkg-config
   ];
diff --git a/nixpkgs/pkgs/games/frotz/default.nix b/nixpkgs/pkgs/games/frotz/default.nix
index 2e90176be7e6..9b5256fc1c72 100644
--- a/nixpkgs/pkgs/games/frotz/default.nix
+++ b/nixpkgs/pkgs/games/frotz/default.nix
@@ -5,6 +5,8 @@
 , libsndfile
 , libvorbis
 , ncurses
+, which
+, pkg-config
 , lib, stdenv }:
 
 stdenv.mkDerivation rec {
@@ -19,6 +21,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-xVC/iE71W/Wdy5aPGH9DtcVAHWCcg3HkEA3iDV6OYUo=";
   };
 
+  nativeBuildInputs = [ which pkg-config ];
   buildInputs = [ libao libmodplug libsamplerate libsndfile libvorbis ncurses ];
   preBuild = ''
     makeFlagsArray+=(
diff --git a/nixpkgs/pkgs/games/gambatte/default.nix b/nixpkgs/pkgs/games/gambatte/default.nix
index 4d6795070ca2..07aad4a5b604 100644
--- a/nixpkgs/pkgs/games/gambatte/default.nix
+++ b/nixpkgs/pkgs/games/gambatte/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, scons, qt4, alsaLib }:
+{ lib, stdenv, fetchFromGitHub, scons, qt4, alsa-lib }:
 
 stdenv.mkDerivation {
   pname = "gambatte";
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0cc6zcvxpvi5hgcssb1zy0fkj9nk7n0d2xm88a4v05kpm5zw7sh2";
   };
 
-  buildInputs = [ scons qt4 alsaLib ];
+  buildInputs = [ scons qt4 alsa-lib ];
 
   patches = [ ./fix-scons-paths.patch ];
 
diff --git a/nixpkgs/pkgs/games/gnuchess/default.nix b/nixpkgs/pkgs/games/gnuchess/default.nix
index 69ec574a644f..9f7d1684a5c4 100644
--- a/nixpkgs/pkgs/games/gnuchess/default.nix
+++ b/nixpkgs/pkgs/games/gnuchess/default.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="gnuchess";
-    version="6.2.7";
+    version="6.2.8";
     name="${baseName}-${version}";
     url="mirror://gnu/chess/${name}.tar.gz";
-    sha256="0ilq4bfl0lwyzf11q7n2skydjhalfn3bgxhrp5hjxs5bc5d6fdp5";
+    sha256="0irqb0wl30c2i1rs8f6mm1c89l7l9nxxv7533lr408h1m36lc16m";
   };
   buildInputs = [
     flex
diff --git a/nixpkgs/pkgs/games/gscrabble/default.nix b/nixpkgs/pkgs/games/gscrabble/default.nix
index 74411d63d3eb..f0e4121d8f2c 100644
--- a/nixpkgs/pkgs/games/gscrabble/default.nix
+++ b/nixpkgs/pkgs/games/gscrabble/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonApplication, fetchFromGitHub
 , gtk3, wrapGAppsHook, gst_all_1, gobject-introspection
-, python3Packages, gnome3 }:
+, python3Packages, gnome }:
 
 buildPythonApplication {
   pname = "gscrabble";
@@ -19,7 +19,7 @@ buildPythonApplication {
 
   buildInputs = with gst_all_1; [
     gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad
-    gnome3.adwaita-icon-theme gtk3 gobject-introspection
+    gnome.adwaita-icon-theme gtk3 gobject-introspection
   ];
 
   propagatedBuildInputs = with python3Packages; [ gst-python pygobject3 ];
diff --git a/nixpkgs/pkgs/games/gweled/default.nix b/nixpkgs/pkgs/games/gweled/default.nix
index b15bb43a4517..fc187afbe806 100644
--- a/nixpkgs/pkgs/games/gweled/default.nix
+++ b/nixpkgs/pkgs/games/gweled/default.nix
@@ -1,20 +1,24 @@
-{ lib, stdenv, fetchbzr, intltool
+{ lib, stdenv, fetchbzr, gettext
 , gtk2, wrapGAppsHook, autoreconfHook, pkg-config
 , libmikmod, librsvg, libcanberra-gtk2, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "gweled";
-  version = "unstable-2018-02-15";
+  version = "unstable-2021-02-11";
 
   src = fetchbzr {
     url = "lp:gweled";
-    rev = "94";
-    sha256 = "01c38y4df5a06wqbsmsn8ysxx7hav9yvw6zdwbc9m5m55z7vmdb8";
+    rev = "108";
+    sha256 = "sha256-rM4dgbYfSrVqZwi+xzKuEtmtjK3HVvqeutmni1vleLo=";
   };
 
   doCheck = false;
 
-  nativeBuildInputs = [ wrapGAppsHook intltool autoreconfHook pkg-config ];
+  postPatch = ''
+    substituteInPlace configure.ac --replace "AM_GNU_GETTEXT_VERSION([0.19.8])" "AM_GNU_GETTEXT_VERSION([${gettext.version}])"
+  '';
+
+  nativeBuildInputs = [ wrapGAppsHook gettext autoreconfHook pkg-config ];
 
   buildInputs = [ gtk2 libmikmod librsvg hicolor-icon-theme libcanberra-gtk2 ];
 
diff --git a/nixpkgs/pkgs/games/hedgewars/default.nix b/nixpkgs/pkgs/games/hedgewars/default.nix
index ea714d8bc7cb..9062af5be383 100644
--- a/nixpkgs/pkgs/games/hedgewars/default.nix
+++ b/nixpkgs/pkgs/games/hedgewars/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg_3, freeglut
+{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg, freeglut
 , lib, fetchurl, cmake, pkg-config, lua5_1, SDL2, SDL2_mixer
 , zlib, libpng, libGL, libGLU, physfs
 , qtbase, qttools
@@ -29,7 +29,7 @@ mkDerivation rec {
     SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image
     fpc lua5_1
     llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64
-    ffmpeg_3 freeglut physfs
+    ffmpeg freeglut physfs
     qtbase
   ] ++ lib.optional withServer ghc;
 
@@ -102,6 +102,6 @@ mkDerivation rec {
        hedgehog or hedgehogs after a player's or CPU turn is shown only when
        all movement on the battlefield has ceased).'';
     maintainers = with maintainers; [ kragniz fpletz ];
-    inherit (ghc.meta) platforms;
+    inherit (fpc.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/games/iortcw/sp.nix b/nixpkgs/pkgs/games/iortcw/sp.nix
index fc1976b0fb17..fa6f73a177b2 100644
--- a/nixpkgs/pkgs/games/iortcw/sp.nix
+++ b/nixpkgs/pkgs/games/iortcw/sp.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
     homepage = src.meta.homepage;
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/games/ivan/default.nix b/nixpkgs/pkgs/games/ivan/default.nix
index 3ec196b7373e..f16aa7526327 100644
--- a/nixpkgs/pkgs/games/ivan/default.nix
+++ b/nixpkgs/pkgs/games/ivan/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, SDL2, SDL2_mixer, alsaLib, libpng
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, SDL2, SDL2_mixer, alsa-lib, libpng
 , pcre, makeDesktopItem }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ SDL2 SDL2_mixer alsaLib libpng pcre ];
+  buildInputs = [ SDL2 SDL2_mixer alsa-lib libpng pcre ];
 
   hardeningDisable = ["all"];
 
diff --git a/nixpkgs/pkgs/games/ja2-stracciatella/default.nix b/nixpkgs/pkgs/games/ja2-stracciatella/default.nix
index 4f186c3c60a1..3ad5ba20c53d 100644
--- a/nixpkgs/pkgs/games/ja2-stracciatella/default.nix
+++ b/nixpkgs/pkgs/games/ja2-stracciatella/default.nix
@@ -11,7 +11,7 @@ let
     pname = "libstracciatella";
     inherit version;
     src = "${src}/rust";
-    cargoSha256 = "0blb971cv9k6c460mwq3zq8vih687bdnb39b9gph1hr90pxjviba";
+    cargoHash = "sha256-asUt+wUpwwDvSyuNZds6yMC4Ef4D8woMYWamzcJJiy4=";
 
     preBuild = ''
       mkdir -p $out/include/stracciatella
diff --git a/nixpkgs/pkgs/games/liquidwar/default.nix b/nixpkgs/pkgs/games/liquidwar/default.nix
index 09ddcb0346c8..827c7d696c77 100644
--- a/nixpkgs/pkgs/games/liquidwar/default.nix
+++ b/nixpkgs/pkgs/games/liquidwar/default.nix
@@ -3,7 +3,8 @@
 , expat, gettext, perl, guile
 , SDL, SDL_image, SDL_mixer, SDL_ttf
 , curl, sqlite, libtool, readline
-, libogg, libvorbis, libcaca, csound, cunit } :
+, libogg, libvorbis, libcaca, csound, cunit
+, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "liquidwar6";
@@ -25,6 +26,8 @@ stdenv.mkDerivation rec {
     libtool readline
   ];
 
+  nativeBuildInputs = [ pkg-config ];
+
   hardeningDisable = [ "format" ];
 
   NIX_CFLAGS_COMPILE =
diff --git a/nixpkgs/pkgs/games/lunar-client/default.nix b/nixpkgs/pkgs/games/lunar-client/default.nix
index 8ca8c3f85529..df361c69b049 100644
--- a/nixpkgs/pkgs/games/lunar-client/default.nix
+++ b/nixpkgs/pkgs/games/lunar-client/default.nix
@@ -2,7 +2,7 @@
 
 let
   name = "lunar-client";
-  version = "2.6.0";
+  version = "2.7.3";
 
   desktopItem = makeDesktopItem {
     name = "Lunar Client";
@@ -21,7 +21,7 @@ let
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
     name = "lunar-client.AppImage";
-    sha256 = "1pmblnnvs5jv5v7y5nnxr3liw9xfp5h6l44x7pln8kr9zg85dzma";
+    sha256 = "0ihi937rrj677y9b377b4hhp9wsarbqwrdrd6k3lhzx3jyh2fynf";
   };
 in appimageTools.wrapType1 rec {
   inherit name src;
diff --git a/nixpkgs/pkgs/games/megaglest/default.nix b/nixpkgs/pkgs/games/megaglest/default.nix
index c97ea55882b0..5f79b86956cc 100644
--- a/nixpkgs/pkgs/games/megaglest/default.nix
+++ b/nixpkgs/pkgs/games/megaglest/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, cmake, pkg-config, git, curl, SDL2, xercesc, openal, lua, libvlc
 , libjpeg, wxGTK, cppunit, ftgl, glew, libogg, libvorbis, buildEnv, libpng
-, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome3, libGLU, glib
+, fontconfig, freetype, xorg, makeWrapper, bash, which, gnome, libGLU, glib
 , fetchFromGitHub
 }:
 let
@@ -13,7 +13,7 @@ let
   };
   path-env = buildEnv {
     name = "megaglest-path-env";
-    paths = [ bash which gnome3.zenity ];
+    paths = [ bash which gnome.zenity ];
   };
 in
 stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/games/methane/default.nix b/nixpkgs/pkgs/games/methane/default.nix
new file mode 100644
index 000000000000..071e1a64b545
--- /dev/null
+++ b/nixpkgs/pkgs/games/methane/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, fontconfig
+, freealut
+, freeglut
+, gettext
+, libGL
+, libGLU
+, openal
+, quesoglc
+, clanlib
+, libXrender
+, libmikmod
+, alsa-lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "methane";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    repo = "methane";
+    owner = "rombust";
+    rev = "v${version}";
+    sha256 = "sha256-STS2+wfZ8E1jpr0PYQOBQsztxhJU0Dt3IhWBE3sjdWE=";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    pkg-config
+  ];
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    fontconfig
+    freealut
+    freeglut
+    libGL
+    libGLU
+    openal
+    quesoglc
+    clanlib
+    libXrender
+    libmikmod
+    alsa-lib
+  ];
+
+  installPhase  = ''
+    runHook preInstall
+    mkdir -p $out/bin/ $out/share/methane/ $out/share/docs/
+    cp methane $out/bin
+    cp -r resources/* $out/share/methane/.
+    cp -r docs/* $out/share/docs/.
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rombust/methane";
+    description = "A clone of Taito's Bubble Bobble arcade game released for Amiga in 1993 by Apache Software";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ nixinator ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/mindustry/default.nix b/nixpkgs/pkgs/games/mindustry/default.nix
index 7e1a0cba1760..732079238395 100644
--- a/nixpkgs/pkgs/games/mindustry/default.nix
+++ b/nixpkgs/pkgs/games/mindustry/default.nix
@@ -12,7 +12,7 @@
 , pkg-config
 , stb
 , ant
-, alsaLib
+, alsa-lib
 , glew
 
 # Make the build version easily overridable.
@@ -132,7 +132,7 @@ stdenv.mkDerivation rec {
   buildInputs = lib.optionals enableClient [
     SDL2
     glew
-    alsaLib
+    alsa-lib
   ];
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/games/minecraft-server/default.nix b/nixpkgs/pkgs/games/minecraft-server/default.nix
index 7d70ee9e6d3c..ee47a0ecdc21 100644
--- a/nixpkgs/pkgs/games/minecraft-server/default.nix
+++ b/nixpkgs/pkgs/games/minecraft-server/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, nixosTests, jre_headless }:
 stdenv.mkDerivation {
   pname = "minecraft-server";
-  version = "1.16.5";
+  version = "1.17";
 
   src = fetchurl {
-    url = "https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar";
+    url = "https://launcher.mojang.com/v1/objects/0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e/server.jar";
     # sha1 because that comes from mojang via api
-    sha1 = "1b557e7b033b583cd9f66746b7a9ab1ec1673ced";
+    sha1 = "0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e";
   };
 
   preferLocalBuild = true;
diff --git a/nixpkgs/pkgs/games/minecraft/default.nix b/nixpkgs/pkgs/games/minecraft/default.nix
index d98a7dd25e2c..254c01fdf1b6 100644
--- a/nixpkgs/pkgs/games/minecraft/default.nix
+++ b/nixpkgs/pkgs/games/minecraft/default.nix
@@ -15,7 +15,7 @@
 , pango
 , cairo
 , expat
-, alsaLib
+, alsa-lib
 , cups
 , dbus
 , atk
@@ -45,13 +45,13 @@ let
     curl
     libpulseaudio
     systemd
-    alsaLib # needed for narrator
+    alsa-lib # needed for narrator
     flite # needed for narrator
     libXxf86vm # needed only for versions <1.13
   ];
 
   libPath = lib.makeLibraryPath ([
-    alsaLib
+    alsa-lib
     atk
     cairo
     cups
@@ -88,11 +88,11 @@ in
 stdenv.mkDerivation rec {
   pname = "minecraft-launcher";
 
-  version = "2.2.741";
+  version = "2.2.1441";
 
   src = fetchurl {
     url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
-    sha256 = "0bm78ybn91ihibxgmlpk7dl2zxy4a57k86qmb08cif3ifbflzkvw";
+    sha256 = "03q579hvxnsh7d00j6lmfh53rixdpf33xb5zlz7659pvb9j5w0cm";
   };
 
   icon = fetchurl {
diff --git a/nixpkgs/pkgs/games/minetest/default.nix b/nixpkgs/pkgs/games/minetest/default.nix
index ddb415a6ad2f..7ffa361da559 100644
--- a/nixpkgs/pkgs/games/minetest/default.nix
+++ b/nixpkgs/pkgs/games/minetest/default.nix
@@ -76,9 +76,9 @@ let
   };
 
   v5 = {
-    version = "5.3.0";
-    sha256 = "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6";
-    dataSha256 = "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx";
+    version = "5.4.1";
+    sha256 = "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8";
+    dataSha256 = "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4";
   };
 
 in {
diff --git a/nixpkgs/pkgs/games/nexuiz/default.nix b/nixpkgs/pkgs/games/nexuiz/default.nix
index 84d8a6200015..4082e853aa30 100644
--- a/nixpkgs/pkgs/games/nexuiz/default.nix
+++ b/nixpkgs/pkgs/games/nexuiz/default.nix
@@ -3,7 +3,7 @@
   unzip, zlib, curl, libjpeg, libpng, libvorbis, libtheora
 , libogg, libmodplug
 , # glx
-  libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, libXxf86dga, alsaLib
+  libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, libXxf86dga, alsa-lib
 , # sdl
   SDL
 }:
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ unzip ];
   buildInputs = [
     # glx
-    libX11 libGLU libGL libXpm libXext libXxf86vm libXxf86dga alsaLib
+    libX11 libGLU libGL libXpm libXext libXxf86vm libXxf86dga alsa-lib
     # sdl
     SDL
   ];
diff --git a/nixpkgs/pkgs/games/oh-my-git/default.nix b/nixpkgs/pkgs/games/oh-my-git/default.nix
index 89dc1bdd50ea..542effa65965 100644
--- a/nixpkgs/pkgs/games/oh-my-git/default.nix
+++ b/nixpkgs/pkgs/games/oh-my-git/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , makeDesktopItem
 , stdenv
-, alsaLib
+, alsa-lib
 , gcc-unwrapped
 , git
 , godot-export-templates
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     gcc-unwrapped.lib
     git
     libGLU
diff --git a/nixpkgs/pkgs/games/opendune/default.nix b/nixpkgs/pkgs/games/opendune/default.nix
index e5ac89239a3c..32e1ef4fca93 100644
--- a/nixpkgs/pkgs/games/opendune/default.nix
+++ b/nixpkgs/pkgs/games/opendune/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, pkg-config
-, alsaLib, libpulseaudio, SDL2, SDL2_image, SDL2_mixer }:
+, alsa-lib, libpulseaudio, SDL2, SDL2_image, SDL2_mixer }:
 
 # - set the opendune configuration at ~/.config/opendune/opendune.ini:
 #     [opendune]
@@ -18,13 +18,13 @@ stdenv.mkDerivation rec {
   };
 
   configureFlags = [
-    "--with-alsa=${lib.getLib alsaLib}/lib/libasound.so"
+    "--with-alsa=${lib.getLib alsa-lib}/lib/libasound.so"
     "--with-pulse=${lib.getLib libpulseaudio}/lib/libpulse.so"
   ];
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ alsaLib libpulseaudio SDL2 SDL2_image SDL2_mixer ];
+  buildInputs = [ alsa-lib libpulseaudio SDL2 SDL2_image SDL2_mixer ];
 
   enableParallelBuilding = true;
 
@@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
     description = "Dune, Reinvented";
     homepage = "https://github.com/OpenDUNE/OpenDUNE";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/games/openjk/default.nix b/nixpkgs/pkgs/games/openjk/default.nix
index ecb2cd3c46c2..c16b38fc8f1f 100644
--- a/nixpkgs/pkgs/games/openjk/default.nix
+++ b/nixpkgs/pkgs/games/openjk/default.nix
@@ -58,6 +58,6 @@ in stdenv.mkDerivation {
     homepage = "https://github.com/JACoders/OpenJK";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/games/openmw/default.nix b/nixpkgs/pkgs/games/openmw/default.nix
index 3357bf15f868..8e6ed3cdb823 100644
--- a/nixpkgs/pkgs/games/openmw/default.nix
+++ b/nixpkgs/pkgs/games/openmw/default.nix
@@ -1,5 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, qtbase, openscenegraph, mygui, bullet, ffmpeg_3
-, boost, cmake, SDL2, unshield, openal, libXt, pkg-config }:
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, openscenegraph
+, mygui
+, bullet
+, ffmpeg
+, boost
+, SDL2
+, unshield
+, openal
+, libXt
+}:
 
 let
   openscenegraph_ = openscenegraph.overrideDerivation (self: {
@@ -11,9 +24,9 @@ let
       sha256 = "0d74hijzmj82nx3jkv5qmr3pkgvplra0b8fbjx1y3vmzxamb0axd";
     };
   });
-in
 
-stdenv.mkDerivation rec {
+in
+mkDerivation rec {
   version = "0.46.0";
   pname = "openmw";
 
@@ -25,10 +38,23 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ boost ffmpeg_3 bullet mygui openscenegraph_ SDL2 unshield openal libXt qtbase ];
+
+  buildInputs = [
+    SDL2
+    boost
+    bullet
+    ffmpeg
+    libXt
+    mygui
+    openal
+    openscenegraph_
+    unshield
+  ];
 
   cmakeFlags = [
     "-DDESIRED_QT_VERSION:INT=5"
+    # as of 0.46, openmw is broken with GLVND
+    "-DOpenGL_GL_PREFERENCE=LEGACY"
   ];
 
   dontWrapQtApps = true;
@@ -37,7 +63,7 @@ stdenv.mkDerivation rec {
     description = "An unofficial open source engine reimplementation of the game Morrowind";
     homepage = "http://openmw.org";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/games/openmw/tes3mp.nix b/nixpkgs/pkgs/games/openmw/tes3mp.nix
index 95659e5a088e..72b698ceb730 100644
--- a/nixpkgs/pkgs/games/openmw/tes3mp.nix
+++ b/nixpkgs/pkgs/games/openmw/tes3mp.nix
@@ -1,96 +1,134 @@
-{ lib, stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper, mygui }:
+{ lib
+, stdenv
+, cmake
+, openmw
+, fetchFromGitHub
+, formats
+, luajit
+, makeWrapper
+, symlinkJoin
+, mygui
+, crudini
+}:
 
 # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy
 
 let
-  # TES3MP_STABLE_VERSION_FILE
-  compatHash = "292536439eeda58becdb7e441fe2e61ebb74529e";
-  rakNet = fetchFromGitHub {
-    owner = "TES3MP";
-    repo = "CrabNet";
-    # usually fixed:
-    # https://github.com/GrimKriegor/TES3MP-deploy/blob/d2a4a5d3acb64b16d9b8ca85906780aeea8d311b/tes3mp-deploy.sh#L589
-    rev = "4eeeaad2f6c11aeb82070df35169694b4fb7b04b";
-    sha256 = "0p0li9l1i5lcliswm5w9jql0zff9i6fwhiq0bl130m4i7vpr4cr3";
-  };
-  rakNetLibrary = stdenv.mkDerivation {
-    name = "RakNetLibrary";
-    src = rakNet;
+  # raknet could also be split into dev and lib outputs
+  raknet = stdenv.mkDerivation {
+    pname = "raknet";
+    version = "unstable-2018-07-14";
+
+    src = fetchFromGitHub {
+      owner = "TES3MP";
+      repo = "CrabNet";
+      # usually fixed:
+      # https://github.com/GrimKriegor/TES3MP-deploy/blob/d2a4a5d3acb64b16d9b8ca85906780aeea8d311b/tes3mp-deploy.sh#L589
+      rev = "4eeeaad2f6c11aeb82070df35169694b4fb7b04b";
+      sha256 = "0p0li9l1i5lcliswm5w9jql0zff9i6fwhiq0bl130m4i7vpr4cr3";
+    };
+
     nativeBuildInputs = [ cmake ];
+
     installPhase = ''
-      install -Dm755 lib/libRakNetLibStatic.a $out/lib/libRakNetLibStatic.a
+      install -Dm555 lib/libRakNetLibStatic.a $out/lib/libRakNetLibStatic.a
     '';
   };
-  coreScripts = fetchFromGitHub {
-    owner = "TES3MP";
-    repo = "CoreScripts";
-    # usually latest in stable branch (e.g. 0.7.0)
-    rev = "24aae91d9ddad38cdb3b0e0a13af59f142803e94";
-    sha256 = "1rfmxxr9ircfagdpbdrzl26msdhx1i3g974cblbv69078cradfh3";
+
+  coreScripts = stdenv.mkDerivation {
+    pname = "corescripts";
+    version = "unstable-2020-07-27";
+
+    src = fetchFromGitHub {
+      owner = "TES3MP";
+      repo = "CoreScripts";
+      # usually latest in stable branch (e.g. 0.7.1)
+      rev = "3c2d31595344db586d8585db0ef1fc0da89898a0";
+      sha256 = "sha256-m/pt2Et58HOMc1xqllGf4hjPLXNcc14+X0h84ouZDeg=";
+    };
+
+    buildCommand = ''
+      dir=$out/share/openmw-tes3mp
+      mkdir -p $dir
+      cp -r $src $dir/CoreScripts
+    '';
   };
-  # https://github.com/TES3MP/openmw-tes3mp/issues/555
-  mygui_ = mygui.overrideAttrs (oldAttrs: rec {
-    version = "3.2.2";
+
+  # build an unwrapped version so we don't have to rebuild it all over again in
+  # case the scripts or wrapper scripts change.
+  unwrapped = openmw.overrideAttrs (oldAttrs: rec {
+    pname = "openmw-tes3mp-unwrapped";
+    version = "unstable-2020-08-07";
 
     src = fetchFromGitHub {
-      owner = "MyGUI";
-      repo = "mygui";
-      rev = "MyGUI${version}";
-      sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw";
+      owner = "TES3MP";
+      repo = "openmw-tes3mp";
+      # usually latest in stable branch (e.g. 0.7.1)
+      rev = "ce5df6d18546e37aac9746d99c00d27a7f34b00d";
+      sha256 = "sha256-xLslShNA6rVFl9kt6BNGDpSYMpO25jBTCteLJoSTXdg=";
+    };
+
+    nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ];
+
+    buildInputs = oldAttrs.buildInputs ++ [ luajit ];
+
+    cmakeFlags = oldAttrs.cmakeFlags ++ [
+      "-DBUILD_OPENCS=OFF"
+      "-DRakNet_INCLUDES=${raknet.src}/include"
+      "-DRakNet_LIBRARY_RELEASE=${raknet}/lib/libRakNetLibStatic.a"
+      "-DRakNet_LIBRARY_DEBUG=${raknet}/lib/libRakNetLibStatic.a"
+    ];
+
+    # https://github.com/TES3MP/openmw-tes3mp/issues/552
+    patches = [ ./tes3mp.patch ];
+
+    NIX_CFLAGS_COMPILE = "-fpermissive";
+
+    preConfigure = ''
+      substituteInPlace files/version.in \
+        --subst-var-by OPENMW_VERSION_COMMITHASH ${src.rev}
+    '';
+
+    # move everything that we wrap out of the way
+    postInstall = ''
+      mkdir -p $out/libexec
+      mv $out/bin/tes3mp-* $out/libexec
+    '';
+
+    meta = with lib; {
+      description = "Multiplayer for TES3:Morrowind based on OpenMW";
+      homepage = "https://tes3mp.com/";
+      license = licenses.gpl3Only;
+      maintainers = with maintainers; [ peterhoeg ];
+      platforms = [ "x86_64-linux" "i686-linux" ];
     };
   });
-in openmw.overrideAttrs (oldAttrs: rec {
-  version = "2019-11-19";
-  name = "openmw-tes3mp-${version}";
-
-  src = fetchFromGitHub {
-    owner = "TES3MP";
-    repo = "openmw-tes3mp";
-    # usually latest in stable branch (e.g. 0.7.0)
-    rev = "ad9ee80641a3e22d0780daca051df7f4e90f3615";
-    sha256 = "03a1vldiv5lk7yq6lhicx3qz8hjfxhind2dj0w9lg5839ljyk6jv";
+
+  cfgFile = (formats.ini { }).generate "tes3mp-server.cfg" {
+    Plugins.home = "${coreScripts}/share/openmw-tes3mp/CoreScripts";
   };
 
-  nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ];
-  buildInputs = [ luajit mygui_ ] ++ oldAttrs.buildInputs;
+in
+symlinkJoin rec {
+  name = "openmw-tes3mp-${unwrapped.version}";
+  inherit (unwrapped) version meta;
 
-  cmakeFlags = oldAttrs.cmakeFlags ++ [
-    "-DBUILD_OPENCS=OFF"
-    "-DRakNet_INCLUDES=${rakNet}/include"
-    "-DRakNet_LIBRARY_RELEASE=${rakNetLibrary}/lib/libRakNetLibStatic.a"
-    "-DRakNet_LIBRARY_DEBUG=${rakNetLibrary}/lib/libRakNetLibStatic.a"
-  ];
+  nativeBuildInputs = [ makeWrapper ];
 
-  dontWrapQtApps = true;
+  paths = [ unwrapped ];
 
-  # https://github.com/TES3MP/openmw-tes3mp/issues/552
-  patches = [
-    ./tes3mp.patch
-  ];
-  NIX_CFLAGS_COMPILE = "-fpermissive";
+  # crudini --merge will create the file if it doesn't exist
+  postBuild = ''
+    mkdir -p $out/bin
 
-  preConfigure = ''
-    substituteInPlace files/version.in \
-      --subst-var-by OPENMW_VERSION_COMMITHASH ${compatHash}
-  '';
+    dir=\''${XDG_CONFIG_HOME:-\$HOME/.config}/openmw
 
-  postInstall = ''
-    # components/process/processinvoker.cpp: path.prepend(QLatin1String("./"))
-    wrapProgram $out/bin/tes3mp-browser \
+    makeWrapper ${unwrapped}/libexec/tes3mp-browser $out/bin/tes3mp-browser \
       --run "cd $out/bin"
-    wrapProgram $out/bin/tes3mp-server \
-      --run "mkdir -p ~/.config/openmw" \
-      --run "cd ~/.config/openmw" \
-      --run "[ -d CoreScripts ] || cp --no-preserve=mode -r ${coreScripts} CoreScripts" \
-      --run "[ -f tes3mp-server.cfg ] || echo \"[Plugins] home = \$HOME/.config/openmw/CoreScripts\" > tes3mp-server.cfg" \
+
+    makeWrapper ${unwrapped}/libexec/tes3mp-server $out/bin/tes3mp-server \
+      --run "mkdir -p $dir" \
+      --run "${crudini}/bin/crudini --merge $dir/${cfgFile.name} < ${cfgFile}" \
       --run "cd $out/bin"
   '';
-
-  meta = with lib; {
-    description = "Multiplayer for TES3:Morrowind based on OpenMW";
-    homepage = "https://tes3mp.com/";
-    license = licenses.gpl3;
-    platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = with maintainers; [ gnidorah ];
-  };
-})
+}
diff --git a/nixpkgs/pkgs/games/openra/default.nix b/nixpkgs/pkgs/games/openra/default.nix
index 2e8533f7816e..22d3c6c879ed 100644
--- a/nixpkgs/pkgs/games/openra/default.nix
+++ b/nixpkgs/pkgs/games/openra/default.nix
@@ -25,7 +25,7 @@ let
     lua = pkgs.lua5_1;
     # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure,
     # rather than having to look to the logs why it is not starting.
-    inherit (pkgs.gnome3) zenity;
+    inherit (pkgs.gnome) zenity;
   });
 
   /*  Building a set of engines or mods requires some dependencies as well,
diff --git a/nixpkgs/pkgs/games/openra/packages.nix b/nixpkgs/pkgs/games/openra/packages.nix
index c09b697771a3..2f4c83c7d5a3 100644
--- a/nixpkgs/pkgs/games/openra/packages.nix
+++ b/nixpkgs/pkgs/games/openra/packages.nix
@@ -15,7 +15,7 @@ let
     lua = pkgs.lua5_1;
     # It is not necessary to run the game, but it is nicer to be given an error dialog in the case of failure,
     # rather than having to look to the logs why it is not starting.
-    inherit (pkgs.gnome3) zenity;
+    inherit (pkgs.gnome) zenity;
   });
 
   /*  Building a set of engines or mods requires some dependencies as well,
diff --git a/nixpkgs/pkgs/games/openttd/default.nix b/nixpkgs/pkgs/games/openttd/default.nix
index 34de043a6585..5c77e8a2c181 100644
--- a/nixpkgs/pkgs/games/openttd/default.nix
+++ b/nixpkgs/pkgs/games/openttd/default.nix
@@ -29,11 +29,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "1.11.1";
+  version = "1.11.2";
 
   src = fetchurl {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    sha256 = "sha256-qZGeLkKbsI+in+jme6m8dckOnvb6ZCSOs0IjoyXUAKM=";
+    sha256 = "sha256-D7qTWiqBX0/ozW3C4q4z9ydpU4cxIo+EimOzpulILm0=";
   };
 
   nativeBuildInputs = [ cmake makeWrapper ];
diff --git a/nixpkgs/pkgs/games/openxray/default.nix b/nixpkgs/pkgs/games/openxray/default.nix
index 8fe47d31ca73..58c82aec3659 100644
--- a/nixpkgs/pkgs/games/openxray/default.nix
+++ b/nixpkgs/pkgs/games/openxray/default.nix
@@ -3,14 +3,14 @@
 , pcre, makeWrapper, fetchpatch }:
 
 let
-  version = "784-october-preview";
+  version = "822-december-preview";
 
   src = fetchFromGitHub {
     owner = "OpenXRay";
     repo = "xray-16";
     rev = version;
-    sha256 = "0q0h70gbpscdvn45wpxicljj4ji3cd2maijd5b7jhr1695h61q5y";
     fetchSubmodules = true;
+    sha256 = "06f3zjnib7hipyl3hnc6mwcj9f50kbwn522wzdjydz8qgdg60h3m";
   };
 
   # https://github.com/OpenXRay/xray-16/issues/518
@@ -20,7 +20,7 @@ let
 
     inherit src;
 
-    postUnpack = "sourceRoot+=/Externals/cryptopp";
+    sourceRoot = "source/Externals/cryptopp";
 
     makeFlags = [ "PREFIX=${placeholder "out"}" ];
     enableParallelBuilding = true;
@@ -35,25 +35,30 @@ let
     };
   };
 in stdenv.mkDerivation rec {
-  pname = "OpenXRay";
+  pname = "openxray";
   inherit version src;
 
-  hardeningDisable = [ "format" ];
-  cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ];
-
+  # TODO https://github.com/OpenXRay/GameSpy/pull/6, check if merged in version > 822
+  # Fixes format hardening
   patches = [
     (fetchpatch {
-      url = "https://github.com/OpenXRay/xray-16/commit/4532cba11e98808c92e56e246188863261ef9201.patch";
-      sha256 = "1hrm4rkkg946ai95krzpf3isryzbb2vips63gxf481plv4vlcfc9";
+      url = "https://github.com/OpenXRay/GameSpy/pull/6/commits/155af876281f5d94f0142886693314d97deb2d4c.patch";
+      sha256 = "1l0vcgvzzx8n56shpblpfdhvpr6c12fcqf35r0mflaiql8q7wn88";
+      stripLen = 1;
+      extraPrefix = "Externals/GameSpy/";
     })
   ];
 
+  cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ];
+
   buildInputs = [
     glew freeimage liblockfile openal cryptopp libtheora SDL2 lzo
     libjpeg libogg tbb pcre
   ];
+
   nativeBuildInputs = [ cmake makeWrapper ];
 
+  # https://github.com/OpenXRay/xray-16/issues/786
   preConfigure = ''
     substituteInPlace src/xrCore/xrCore.cpp \
       --replace /usr/share $out/share
@@ -71,7 +76,7 @@ in stdenv.mkDerivation rec {
     license = licenses.unfree // {
       url = "https://github.com/OpenXRay/xray-16/blob/xd_dev/License.txt";
     };
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = with maintainers; [ OPNA2608 ];
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/games/osu-lazer/default.nix b/nixpkgs/pkgs/games/osu-lazer/default.nix
index 81f50e968223..8a7573dd5841 100644
--- a/nixpkgs/pkgs/games/osu-lazer/default.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
 , dotnetCorePackages, dotnetPackages, cacert
-, ffmpeg_4, alsaLib, SDL2, lttng-ust, numactl, alsaPlugins
+, ffmpeg_4, alsa-lib, SDL2, lttng-ust, numactl, alsa-plugins
 }:
 
 let
   runtimeDeps = [
-    ffmpeg_4 alsaLib SDL2 lttng-ust numactl
+    ffmpeg_4 alsa-lib SDL2 lttng-ust numactl
   ];
 
   dotnet-sdk = dotnetCorePackages.sdk_5_0;
@@ -16,13 +16,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "osu-lazer";
-  version = "2021.410.0";
+  version = "2021.602.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    sha256 = "twKg9iZdY+zgwEQeHMOlRZKXxAHic7GnoqH0jOdW7fw=";
+    sha256 = "t9Byn3eAAkxnBQBfdvz2CGGXu8d3JzTnSz7I68Ntp3A=";
   };
 
   patches = [ ./bypass-tamper-detection.patch ];
diff --git a/nixpkgs/pkgs/games/osu-lazer/deps.nix b/nixpkgs/pkgs/games/osu-lazer/deps.nix
index f30ac9b13f4b..0b6579bae064 100644
--- a/nixpkgs/pkgs/games/osu-lazer/deps.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/deps.nix
@@ -25,239 +25,259 @@
     sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll";
   })
   (fetchNuGet {
+    name = "HtmlAgilityPack";
+    version = "1.11.33";
+    sha256 = "08valqp6hzdfy532kv70fgzhizyc3xs9y0sw0rsr3z2h7pk1vp6n";
+  })
+  (fetchNuGet {
     name = "Humanizer";
-    version = "2.8.26";
-    sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak";
+    version = "2.10.1";
+    sha256 = "0bcs3vp028dq7hs0dxvqynichgbnhzwdx61phwl8yvls15hav05c";
   })
   (fetchNuGet {
     name = "Humanizer.Core";
-    version = "2.2.0";
-    sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
+    version = "2.10.1";
+    sha256 = "1vn52y8pkg8ny7sz83nag4cwmna61jscs2n68bx7x4xkgialzhzy";
   })
   (fetchNuGet {
     name = "Humanizer.Core";
-    version = "2.8.26";
-    sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm";
+    version = "2.2.0";
+    sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
   })
   (fetchNuGet {
     name = "Humanizer.Core.af";
-    version = "2.8.26";
-    sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9";
+    version = "2.10.1";
+    sha256 = "0a7x11kprn650kk3qzhsncyfxazwanqwmrizkxbzyc29y46bmsr3";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ar";
-    version = "2.8.26";
-    sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7";
+    version = "2.10.1";
+    sha256 = "0k40zj3jpscv0k780x5p8cc45ivd8pla1hqz8416qgywg9kc6b7z";
   })
   (fetchNuGet {
     name = "Humanizer.Core.az";
-    version = "2.8.26";
-    sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6";
+    version = "2.10.1";
+    sha256 = "1djhspqlxj6qys915bd8is1hfy87ykrpxpjwlwsw2gvrrc74p16c";
   })
   (fetchNuGet {
     name = "Humanizer.Core.bg";
-    version = "2.8.26";
-    sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg";
+    version = "2.10.1";
+    sha256 = "1z89a9sc3ny2bm2h3g8cnb6c77q2yhh4wmi18yj98y6irdmimn16";
   })
   (fetchNuGet {
     name = "Humanizer.Core.bn-BD";
-    version = "2.8.26";
-    sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9";
+    version = "2.10.1";
+    sha256 = "17cwk09h3fkjl76z0w3ihj3448h8lchf3l9l10zrjisjf918mxp8";
   })
   (fetchNuGet {
     name = "Humanizer.Core.cs";
-    version = "2.8.26";
-    sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6";
+    version = "2.10.1";
+    sha256 = "0403f5mbyzyjw8jm988rbw2xim353rd4lc0pnkdcn7qlhcrm3gbj";
   })
   (fetchNuGet {
     name = "Humanizer.Core.da";
-    version = "2.8.26";
-    sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m";
+    version = "2.10.1";
+    sha256 = "0am71dkxyzh40vqb7aa9k6p8whh4fwdrrwwjar9vc3c49wnw7nky";
   })
   (fetchNuGet {
     name = "Humanizer.Core.de";
-    version = "2.8.26";
-    sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22";
+    version = "2.10.1";
+    sha256 = "027iydimqnx5r7lw0661zyz41kd4nh6sxx75dmh9lcgawz8h8agy";
   })
   (fetchNuGet {
     name = "Humanizer.Core.el";
-    version = "2.8.26";
-    sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb";
+    version = "2.10.1";
+    sha256 = "1k3g4ffv51da0p12xg7mw21zm6hdvz28x1vaqpspyb156042vxqq";
   })
   (fetchNuGet {
     name = "Humanizer.Core.es";
-    version = "2.8.26";
-    sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q";
+    version = "2.10.1";
+    sha256 = "0rv3b39hwc1spb0r036sjcn8hkl9bfaka1p8bdh7zsnq21674pqb";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fa";
-    version = "2.8.26";
-    sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1";
+    version = "2.10.1";
+    sha256 = "0v3ccydbf9cpv54lk65fqaiq1lfzz6cnxq0wyaa5014axwh9h8nn";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fi-FI";
-    version = "2.8.26";
-    sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd";
+    version = "2.10.1";
+    sha256 = "0gvm0g24ccrk6081sz2ligbskn5rv2i0bfarndhf5k12zwvx0y67";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fr";
-    version = "2.8.26";
-    sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m";
+    version = "2.10.1";
+    sha256 = "1307byhrygg45vrba5h30gmr94zp8spxqy75xi482y5va6vxv778";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fr-BE";
-    version = "2.8.26";
-    sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb";
+    version = "2.10.1";
+    sha256 = "11mdqwz3nx3a9rval2y9vhxyrfzas2rasbilljky3k893anrpr36";
   })
   (fetchNuGet {
     name = "Humanizer.Core.he";
-    version = "2.8.26";
-    sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk";
+    version = "2.10.1";
+    sha256 = "1rvzgh6hky9gl55625a7pjd8n9rai4vxl05qbjg3icg86a27ia9b";
   })
   (fetchNuGet {
     name = "Humanizer.Core.hr";
-    version = "2.8.26";
-    sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9";
+    version = "2.10.1";
+    sha256 = "1adm2k7ydgbdhvy1wpilhclg3xvcbvcynh4g3qhl1zk7kpicwzy1";
   })
   (fetchNuGet {
     name = "Humanizer.Core.hu";
-    version = "2.8.26";
-    sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y";
+    version = "2.10.1";
+    sha256 = "19kznch1wm6pyy4dbinp0zn991s84ak4x9hpq9sjhd60azrc9vr9";
   })
   (fetchNuGet {
     name = "Humanizer.Core.hy";
-    version = "2.8.26";
-    sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3";
+    version = "2.10.1";
+    sha256 = "047427rspi90rbhzmzanfqkn6rzcgvnnhbn7h923kg07d4lky6l7";
   })
   (fetchNuGet {
     name = "Humanizer.Core.id";
-    version = "2.8.26";
-    sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn";
+    version = "2.10.1";
+    sha256 = "0r3spq1in5y7dxkp3yk5695csair5w0jrc0xjlicqadgfk9j809f";
   })
   (fetchNuGet {
     name = "Humanizer.Core.it";
-    version = "2.8.26";
-    sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l";
+    version = "2.10.1";
+    sha256 = "1191qns3gpbq45phhaz9vy5bj0cdmznn3c2zgl4pn323knhgjfxf";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ja";
-    version = "2.8.26";
-    sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5";
+    version = "2.10.1";
+    sha256 = "0a0gf2vkgnqyxa3fxzs7pq6almpzv6a53bi7yhn9w4ki1jqjjv6v";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ko-KR";
+    version = "2.10.1";
+    sha256 = "0x9x7134f8ikbvvalahrb3q080w2zxd9dx0k32gd10axcvqpgxq3";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ku";
+    version = "2.10.1";
+    sha256 = "0ry4fjfvwp13p1qq8hjykg60ga0vxirdl7l7czj56lwj29ll8zqa";
   })
   (fetchNuGet {
     name = "Humanizer.Core.lv";
-    version = "2.8.26";
-    sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv";
+    version = "2.10.1";
+    sha256 = "1v08ds9r2k7vx5b2rw9swc3gxfj7mb9r2as0sqg5n2wy04w9ki5j";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ms-MY";
-    version = "2.8.26";
-    sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc";
+    version = "2.10.1";
+    sha256 = "0cfb7wmffbwdv8w7j082mc3z59cj3hh6rnnii55wfrbziv1ci5yz";
   })
   (fetchNuGet {
     name = "Humanizer.Core.mt";
-    version = "2.8.26";
-    sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px";
+    version = "2.10.1";
+    sha256 = "1pn00dmn1k3jp0s23rfzv8sj7fdbmy0i45ls0agvy1wxxjyg7cn9";
   })
   (fetchNuGet {
     name = "Humanizer.Core.nb";
-    version = "2.8.26";
-    sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90";
+    version = "2.10.1";
+    sha256 = "122b1wk8acnc7sm8bs3ww9kl6z8sw0ym7y1ar9wyiw9aw36a94f3";
   })
   (fetchNuGet {
     name = "Humanizer.Core.nb-NO";
-    version = "2.8.26";
-    sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2";
+    version = "2.10.1";
+    sha256 = "0mry95z4ch5bdl71k88wsswmcdxsckhp3d578l9fwy8kgj7dg597";
   })
   (fetchNuGet {
     name = "Humanizer.Core.nl";
-    version = "2.8.26";
-    sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk";
+    version = "2.10.1";
+    sha256 = "03cm6vfsi5rgnc456b07vc7h3rfn3qjxfykq8f6cq61z1xgh9i53";
   })
   (fetchNuGet {
     name = "Humanizer.Core.pl";
-    version = "2.8.26";
-    sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x";
+    version = "2.10.1";
+    sha256 = "1gsrfp8d3ay5kra95sk0sy8vcak0ncxmddpwh9vw2sdhlj453bzx";
   })
   (fetchNuGet {
     name = "Humanizer.Core.pt";
-    version = "2.8.26";
-    sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p";
+    version = "2.10.1";
+    sha256 = "1z9asjsng8njvi8vr5ryklwdrfmgkjk2knd8q3hkf0k1zj4bkhsf";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ro";
-    version = "2.8.26";
-    sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0";
+    version = "2.10.1";
+    sha256 = "0r8b1yl5dby56x6q0vgkzdnb08q3ar9kvnqz7pxfld9zh03k0snp";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ru";
-    version = "2.8.26";
-    sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg";
+    version = "2.10.1";
+    sha256 = "1nqgscy7wqfbpld3bb6g1hwy2zdl88as1kxcflfiyysmnysavviz";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sk";
-    version = "2.8.26";
-    sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j";
+    version = "2.10.1";
+    sha256 = "0wk4a7g87s26da57a4srwnmhm9d2x68afn961lkd2anz8wixr97x";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sl";
-    version = "2.8.26";
-    sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n";
+    version = "2.10.1";
+    sha256 = "1vsjl6nbk2mxlvkk0zi0igzmfxfhr3jmnnx8ljwpz8a501svksxl";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sr";
-    version = "2.8.26";
-    sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv";
+    version = "2.10.1";
+    sha256 = "03n64v7hl9awvq06y94wc0czqqf5nrw0d0k7xyx0l3lgw02jpgy2";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sr-Latn";
-    version = "2.8.26";
-    sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi";
+    version = "2.10.1";
+    sha256 = "0yw5k8g4672kcaia82aq36asjkjlkssi8lkkjn35hn9spq5734lc";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sv";
-    version = "2.8.26";
-    sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm";
+    version = "2.10.1";
+    sha256 = "1n0631ka9cdikjyw9kr3vqwgd33g83chdabra50hnwcrykkigy4f";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.th-TH";
+    version = "2.10.1";
+    sha256 = "0s1v0sap22xzqis95wmg66vriaavf6fgk8hcpm3as185dn37gxwn";
   })
   (fetchNuGet {
     name = "Humanizer.Core.tr";
-    version = "2.8.26";
-    sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn";
+    version = "2.10.1";
+    sha256 = "063qr62a8cqa82xc3calv37x6d5v29wdssmrq9b7pas60vd5n7yd";
   })
   (fetchNuGet {
     name = "Humanizer.Core.uk";
-    version = "2.8.26";
-    sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw";
+    version = "2.10.1";
+    sha256 = "0n0zh9z19fwbb0dbpdld6jzydmwv7zj0nf2x0vpilrhcdhd4icfm";
   })
   (fetchNuGet {
     name = "Humanizer.Core.uz-Cyrl-UZ";
-    version = "2.8.26";
-    sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8";
+    version = "2.10.1";
+    sha256 = "1q6z6c4hkxi5kq13k5qm6i6dx2namkdsysb09jvkvj2vl54gj074";
   })
   (fetchNuGet {
     name = "Humanizer.Core.uz-Latn-UZ";
-    version = "2.8.26";
-    sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f";
+    version = "2.10.1";
+    sha256 = "1758m8b2kv1k5r26al9x4vhss1f7b7yhk971b41zqapw7z66sgmx";
   })
   (fetchNuGet {
     name = "Humanizer.Core.vi";
-    version = "2.8.26";
-    sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch";
+    version = "2.10.1";
+    sha256 = "1z45zd7gpx20zaaxrv9ac6v0ig0s3d80nxdiig2pm1zrlx01ps33";
   })
   (fetchNuGet {
     name = "Humanizer.Core.zh-CN";
-    version = "2.8.26";
-    sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s";
+    version = "2.10.1";
+    sha256 = "02pdpzzwk4wnj1bvzl059ndh67i5yx5ab8ayq5qkrg2hfkid9nn5";
   })
   (fetchNuGet {
     name = "Humanizer.Core.zh-Hans";
-    version = "2.8.26";
-    sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy";
+    version = "2.10.1";
+    sha256 = "1pm73sl5s1axzmwks68kdyskyv183z5yy020bhzcf0rwbrv3s2qi";
   })
   (fetchNuGet {
     name = "Humanizer.Core.zh-Hant";
-    version = "2.8.26";
-    sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh";
+    version = "2.10.1";
+    sha256 = "0fxyl2m05qgmnycdsbzv2dyzixq4jqnvvx7al87d6v5rvkrzwgik";
   })
   (fetchNuGet {
     name = "JetBrains.Annotations";
@@ -301,53 +321,53 @@
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Connections.Abstractions";
-    version = "5.0.4";
-    sha256 = "002a3cvarwvvyic65khwavjxqsqjlnbgqc11sdyj3li15fxflk5g";
+    version = "5.0.6";
+    sha256 = "1ggvdz6sq668w8nv99qg9pi2i3vx0vihfybjbyyywjgjppq93y8l";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Http.Connections.Client";
-    version = "5.0.4";
-    sha256 = "1s19hx083c0r98wi6a8gqb3j3xjlrp9rkmvbpdxikzw8z4bnrjpn";
+    version = "5.0.6";
+    sha256 = "16xzbs1mvbgzblzmzxznr4fpkwk9lz318rnscj7498k1dmk972s4";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Http.Connections.Common";
-    version = "5.0.4";
-    sha256 = "132ahfq7m369iss4ka402fj24rjdnhia41b94l3l135zplzlsl5n";
+    version = "5.0.6";
+    sha256 = "1zqvmcb1zc704zf246byhf3sm1isixrdr4hlrqpss7zwd89vznv3";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Http.Features";
-    version = "5.0.4";
-    sha256 = "064n12ydyngh5q3y597x5cmciib74mpnhkvxicqp0kmgqsixkc7b";
+    version = "5.0.6";
+    sha256 = "18y9np24ybhzgv5lmaaah98l9s53c07lawld4y3nnngy4a2l8byq";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Client";
-    version = "5.0.4";
-    sha256 = "0rpafasicnqng7ylx29hyslwp6g2j1l92szs0n9j98siscap17qg";
+    version = "5.0.6";
+    sha256 = "0vyqd11b02vfh1xbkq01z4nsj73rqnjpms1xm461x2p1yajs3792";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Client.Core";
-    version = "5.0.4";
-    sha256 = "1fwy2akhgphx72hc3rlax08aiaabvm9fi6jfj2r1dyzb2plcgig3";
+    version = "5.0.6";
+    sha256 = "0q2fcz6g1jqiwqy05va26wf6mn7vjd915igaiqgmhqzjc2rgif88";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Common";
-    version = "5.0.4";
-    sha256 = "1dy00sf695sz842rlvgbyj2krgiqprx8qcdci8lz388rwp17drk2";
+    version = "5.0.6";
+    sha256 = "1apa35dffb29w9fj79ypdyvwkz37v04bbsl51hxrx1pa66jj4ymx";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.Json";
-    version = "5.0.4";
-    sha256 = "0xp6ihjq835iqiiaxjl501pfplkqhd40kqxkazfj1icryls8hzhq";
+    version = "5.0.6";
+    sha256 = "1yr94d8yry7i22a2zvcan7rr9lwbx298lz7k6wsgscj1isg5nrr7";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack";
-    version = "5.0.4";
-    sha256 = "1bvy4pvp3kxl75mbgy7saapjcnczylrqhf8ry0s66r12f7bzjki8";
+    version = "5.0.6";
+    sha256 = "1asz4kaa0c42z8lgsh6ywn0399v1w8axvhxjbb6m39w9xq596rdr";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson";
-    version = "5.0.4";
-    sha256 = "1gbkgc3cqv7q10k9hrjfj1ixpwx7b4n0x2f7sn9snsh977w7209j";
+    version = "5.0.6";
+    sha256 = "1l5bl8zqw9wnincd7yxghik0k3yzip02zz26bah7mwyqaf4nhbma";
   })
   (fetchNuGet {
     name = "Microsoft.Bcl.AsyncInterfaces";
@@ -431,8 +451,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.Diagnostics.Runtime";
-    version = "2.0.217201";
-    sha256 = "1r519zbbq13f76kc657wml735h9lcijkyxw6r96akn7cv9vgiwl6";
+    version = "2.0.222201";
+    sha256 = "1vsa6xbqi4f2mx85rjmq641r9zgssj0bbfcsqlsa5nx6lqh2rf2q";
   })
   (fetchNuGet {
     name = "Microsoft.DotNet.PlatformAbstractions";
@@ -575,6 +595,11 @@
     sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "5.0.1";
+    sha256 = "01ar5ba2sal9wnpa1xnnikhgb37vzhg2cspz45wf760jflpai2vv";
+  })
+  (fetchNuGet {
     name = "Microsoft.NETCore.App.Runtime.linux-x64";
     version = "5.0.5";
     sha256 = "1h5yry6k9bpqqis2fb1901csb8kipm7anm174fjj41r317vzfjfa";
@@ -630,6 +655,11 @@
     sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf";
   })
   (fetchNuGet {
+    name = "Mono.Posix.NETStandard";
+    version = "1.0.0";
+    sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw";
+  })
+  (fetchNuGet {
     name = "NETStandard.Library";
     version = "1.6.0";
     sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
@@ -661,68 +691,73 @@
   })
   (fetchNuGet {
     name = "NuGet.Common";
-    version = "5.9.0";
-    sha256 = "1j0kk8rgssw920r7h8zfqwzsgvh3y5lalz19d5r07l9r9ngcj5w9";
+    version = "5.9.1";
+    sha256 = "0d919d15r6fzixfxz56xnayfbw9lfvpr99k7k2wlyh228l58xlng";
   })
   (fetchNuGet {
     name = "NuGet.Configuration";
-    version = "5.9.0";
-    sha256 = "16wqjflqvhgq5nqa7ips63hv6wd39171q337gk5wkr9ffpwarrx9";
+    version = "5.9.1";
+    sha256 = "13v3jmirwil1w74wwsspm31rzppb7fbnh99sfig6hrqxhxyzhgnc";
   })
   (fetchNuGet {
     name = "NuGet.DependencyResolver.Core";
-    version = "5.9.0";
-    sha256 = "1f1rcvl86qvix3hibm7xm5wzvwah5pc4ik9mnrgavnwixwkix9nz";
+    version = "5.9.1";
+    sha256 = "0bdmz886bmdgndy7101mq08idzwp8y73hf4l9az3jdndd6cia1ic";
   })
   (fetchNuGet {
     name = "NuGet.Frameworks";
-    version = "5.9.0";
-    sha256 = "099kb0mvglhfv5b0r1ddnkl6mm8l2x5kpmm1kqs5qkchk0a1y0ci";
+    version = "5.9.1";
+    sha256 = "12fjigazzlmh63479hralrfgdcqxq6qsdr57b9zj0ipwqj0s6l3i";
   })
   (fetchNuGet {
     name = "NuGet.LibraryModel";
-    version = "5.9.0";
-    sha256 = "1m6ym5dld0drpk7lm0i0ss30292rpk80b701n1nakqykfnkfhhfy";
+    version = "5.9.1";
+    sha256 = "1z1m6ik1sxsr129578dy22wspci4xavwjza0f08nm1vbb4v3y4va";
   })
   (fetchNuGet {
     name = "NuGet.Packaging";
-    version = "5.9.0";
-    sha256 = "0m0sn823v0lb4h2maxcndvj2k1a0iwwl1yndbhna2ir2lq2fi4px";
+    version = "5.9.1";
+    sha256 = "0yknzgwmpkcddba3b2d1kq9yizxxdd08xcxv508brr2079g01q6d";
   })
   (fetchNuGet {
     name = "NuGet.ProjectModel";
-    version = "5.9.0";
-    sha256 = "06qdfhxz5bsq2wx7i9dkc2rsr4bkk02mpyq27v6zrz36vyrckwx3";
+    version = "5.9.1";
+    sha256 = "0g3gxh0g6lcaczk9jczzkpmikxhdivfflpqw40jygs64r5837rbv";
   })
   (fetchNuGet {
     name = "NuGet.Protocol";
-    version = "5.9.0";
-    sha256 = "1nvfg1xxpjqbpdmw1xa6m7sbdp19ld442vqh3x4967z6c92wvc4n";
+    version = "5.9.1";
+    sha256 = "1wz7rv262wb42s1y866w9bcvpl22dr4s915dsky8sbc69y5646wn";
   })
   (fetchNuGet {
     name = "NuGet.Versioning";
-    version = "5.9.0";
-    sha256 = "1rby89nx39l533vhk0ikf16dd1d6kjjn4ld8b0y88g2mlnrdgz4m";
+    version = "5.9.1";
+    sha256 = "0vpswa6gz36z2vqwvbylmh7r9hjhlib91vbvkf0icjfkhzijjq08";
   })
   (fetchNuGet {
     name = "NUnit";
-    version = "3.13.1";
-    sha256 = "07156gr0yl9rqhyj44cp1xz9jpngbl5kb7ci3qfy9fcp01dczmm9";
+    version = "3.13.2";
+    sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn";
   })
   (fetchNuGet {
     name = "OpenTabletDriver";
-    version = "0.5.2.3";
-    sha256 = "1qz5vmdwmfw8glkm6r7n06srcvrz5c3cwld1wv6xw4sagvwf0b6g";
+    version = "0.5.3.1";
+    sha256 = "16xw8w943x9gvnnpbryahff5azzy8n26j2igyqgv88m352jd9rb8";
   })
   (fetchNuGet {
     name = "OpenTabletDriver.Plugin";
-    version = "0.5.2.3";
-    sha256 = "0i03n5aydn0rv1v2y9c1cm9a2ss9y7p7l92k1x2yb6mwbx6vkpda";
+    version = "0.5.3.1";
+    sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br";
+  })
+  (fetchNuGet {
+    name = "ppy.LocalisationAnalyser";
+    version = "2021.525.0";
+    sha256 = "1h8p8d1xk03904fifhi77zrjkh4sknp4mxjqd3nbpfyikd8f7c8p";
   })
   (fetchNuGet {
     name = "ppy.osu.Framework";
-    version = "2021.410.0";
-    sha256 = "1vwdrspdpal44hyspv3rsax8mkszvbnc2xl1xswczx9mzj6qs4by";
+    version = "2021.601.0";
+    sha256 = "0y17s60r4q0c05gm67fmp700zwb7k74xdi45hprblyxsplnbkmi0";
   })
   (fetchNuGet {
     name = "ppy.osu.Framework.NativeLibs";
@@ -731,8 +766,8 @@
   })
   (fetchNuGet {
     name = "ppy.osu.Game.Resources";
-    version = "2021.410.0";
-    sha256 = "1a5qia4595n0b21dj63sl71ar56m9x1glqwky7a9bb0dqpvfivya";
+    version = "2021.525.0";
+    sha256 = "15ksxv5fasfzdkmwikjbn17c1d4rssjfm2vp71b7m834ghm6pnbd";
   })
   (fetchNuGet {
     name = "ppy.osuTK.NS20";
@@ -741,8 +776,8 @@
   })
   (fetchNuGet {
     name = "ppy.SDL2-CS";
-    version = "1.0.225-alpha";
-    sha256 = "1x8hvk9kikwi7wrvwxdxk3pkbs491iss2mvqgiw844zld5izihqc";
+    version = "1.0.238-alpha";
+    sha256 = "1n7pa7gy1hcgsfm3jix334qr6v229n1yymq58njj802l3k5g7980";
   })
   (fetchNuGet {
     name = "ppy.squirrel.windows";
@@ -856,8 +891,8 @@
   })
   (fetchNuGet {
     name = "Sentry";
-    version = "3.2.0";
-    sha256 = "1hhgc4sqd7nampqydpdwfrc04hhqlkbv4p4w8cq6dswp5rf5k89b";
+    version = "3.4.0";
+    sha256 = "0yivi1gmay29831parvsy4x9kzbv04754l0lgzv0v0p4l8m1gy6s";
   })
   (fetchNuGet {
     name = "SharpCompress";
@@ -866,8 +901,8 @@
   })
   (fetchNuGet {
     name = "SharpCompress";
-    version = "0.28.1";
-    sha256 = "1h7gx7apafdd0jnv12fppca9b6cpq205kjkcipclxp1lli0i7qvw";
+    version = "0.28.2";
+    sha256 = "0pj30qm48m9vpq3i8wx9x11ficv36ki1973dk0873vqgvw8fwjj4";
   })
   (fetchNuGet {
     name = "SharpFNT";
@@ -1605,14 +1640,19 @@
     sha256 = "144pgy65jc3bkar7d4fg1c0rq6qmkx68gj9k1ldk97558w22v1r1";
   })
   (fetchNuGet {
+    name = "System.Text.Encodings.Web";
+    version = "5.0.1";
+    sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9";
+  })
+  (fetchNuGet {
     name = "System.Text.Json";
     version = "5.0.0";
     sha256 = "1gpgl18z6qrgmqrikgh99xkjwzb1didrjp77bch7nrlra21gr4ks";
   })
   (fetchNuGet {
     name = "System.Text.Json";
-    version = "5.0.1";
-    sha256 = "1j7via4spxy73ipng754wdz1nb882gsb9qh26jqlql66vzbbm3j3";
+    version = "5.0.2";
+    sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx";
   })
   (fetchNuGet {
     name = "System.Text.RegularExpressions";
diff --git a/nixpkgs/pkgs/games/papermc/default.nix b/nixpkgs/pkgs/games/papermc/default.nix
index f5bf9573e6be..72612394fe2a 100644
--- a/nixpkgs/pkgs/games/papermc/default.nix
+++ b/nixpkgs/pkgs/games/papermc/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, bash, jre }:
 let
   mcVersion = "1.16.5";
-  buildNum = "488";
+  buildNum = "771";
   jar = fetchurl {
-     url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
-     sha256 = "07zgq6pfgwd9a9daqv1dab0q8cwgidsn6sszn7bpr37y457a4ka8";
+    url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
+    sha256 = "1lmlfhigbzbkgzfq6knglka0ccf4i32ch25gkny0c5fllmsnm08l";
   };
 in stdenv.mkDerivation {
   pname = "papermc";
diff --git a/nixpkgs/pkgs/games/planetaryannihilation/default.nix b/nixpkgs/pkgs/games/planetaryannihilation/default.nix
index 7dbca783b67b..c29af6d810f5 100644
--- a/nixpkgs/pkgs/games/planetaryannihilation/default.nix
+++ b/nixpkgs/pkgs/games/planetaryannihilation/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsaLib, atk
+{ lib, stdenv, config, fetchurl, patchelf, makeWrapper, gtk2, glib, udev, alsa-lib, atk
 , nspr, fontconfig, cairo, pango, nss, freetype, gnome2, gdk-pixbuf, curl, systemd, xorg }:
 
 # TODO: use dynamic attributes once Nix 1.7 is out
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
     ln -s ${systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
 
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/PA"
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib xorg.libXdamage xorg.libXfixes gtk2 glib stdenv.glibc.out "$out" xorg.libXext pango udev xorg.libX11 xorg.libXcomposite alsaLib atk nspr fontconfig cairo pango nss freetype gnome2.GConf gdk-pixbuf xorg.libXrender ]}:{stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" "$out/host/CoherentUI_Host"
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib xorg.libXdamage xorg.libXfixes gtk2 glib stdenv.glibc.out "$out" xorg.libXext pango udev xorg.libX11 xorg.libXcomposite alsa-lib atk nspr fontconfig cairo pango nss freetype gnome2.GConf gdk-pixbuf xorg.libXrender ]}:{stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64" "$out/host/CoherentUI_Host"
 
     wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc.lib stdenv.glibc.out xorg.libX11 xorg.libXcursor gtk2 glib curl "$out" ]}:${stdenv.cc.cc.lib}/lib64:${stdenv.glibc.out}/lib64"
 
diff --git a/nixpkgs/pkgs/games/portmod/default.nix b/nixpkgs/pkgs/games/portmod/default.nix
index 108d81815faa..9db57d3e0a94 100644
--- a/nixpkgs/pkgs/games/portmod/default.nix
+++ b/nixpkgs/pkgs/games/portmod/default.nix
@@ -16,7 +16,7 @@ let
     inherit src version;
     pname = "portmod-rust";
 
-    cargoSha256 = "14p1aywwbkf2pk85sir5g9ni08zam2hid0kaz111718b006nrxh7";
+    cargoHash = "sha256-7Ce+EIbZuOur7iGOUXNWiXReuZO54LQJu+sJPw1CJGg=";
 
     nativeBuildInputs = [ python3Packages.python ];
 
@@ -48,7 +48,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = with python3Packages; [
-    setuptools_scm
+    setuptools-scm
     setuptools
     requests
     chardet
diff --git a/nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch b/nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch
deleted file mode 100644
index 05b02fe5d73b..000000000000
--- a/nixpkgs/pkgs/games/privateer/0001-fix-VSFile-constructor.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e779a2b8d53e7e4721ce5ddb8e8b1caa753b66dd Mon Sep 17 00:00:00 2001
-From: Florian Friesdorf <flo@chaoflow.net>
-Date: Wed, 4 Jan 2012 23:32:19 +0100
-Subject: [PATCH] fix VSFile constructor
-
----
- src/vsfilesystem.h |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/vsfilesystem.h b/src/vsfilesystem.h
-index 4bb7a66..71bf9b9 100644
---- a/src/vsfilesystem.h
-+++ b/src/vsfilesystem.h
-@@ -291,7 +291,7 @@ namespace VSFileSystem
- 			VSFile();
- 			VSFile( const char * buffer, long size, VSFileType type=ZoneBuffer, VSFileMode=ReadOnly);
- 			VSFile( const char * filename, VSFileType type=UnknownFile, VSFileMode=ReadOnly);
--			VSFile( const string &filename, VSFileType type=UnknownFile) { VSFile::VSFile( filename.c_str(), type); }
-+			VSFile( const string &filename, VSFileType type=UnknownFile) { VSFile( filename.c_str(), type); }
-   			~VSFile();
- 
- 			FILE *	GetFP() { return this->fp; } // This is still needed for special cases (when loading PNG files)
--- 
-1.7.8
-
diff --git a/nixpkgs/pkgs/games/privateer/default.nix b/nixpkgs/pkgs/games/privateer/default.nix
deleted file mode 100644
index f3ea6dc8cb19..000000000000
--- a/nixpkgs/pkgs/games/privateer/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, stdenv, fetchsvn, boost, cmake, ffmpeg_3, freeglut, glib,
-  gtk2, libjpeg, libpng, libpthreadstubs, libvorbis, libXau, libXdmcp,
-  libXmu, libGLU, libGL, openal, pixman, pkg-config, python27, SDL }:
-
-stdenv.mkDerivation {
-  name = "privateer-1.03";
-
-  src = fetchsvn {
-    #url = "mirror://sourceforge/project/privateer/Wing%20Commander%20Privateer/Privateer%20Gemini%20Gold%201.03/PrivateerGold1.03.bz2.bin";
-    url = "https://privateer.svn.sourceforge.net/svnroot/privateer/privgold/trunk/engine";
-    rev = "294";
-    sha256 = "e1759087d4565d3fc95e5c87d0f6ddf36b2cd5befec5695ec56ed5f3cd144c63";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs =
-    [ boost ffmpeg_3 freeglut glib gtk2 libjpeg libpng
-      libpthreadstubs libvorbis libXau libXdmcp libXmu libGLU libGL openal
-      pixman python27 SDL ];
-
-  patches = [ ./0001-fix-VSFile-constructor.patch ];
-
-  preConfigure = ''
-    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags gtk+-2.0)"
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp vegastrike $out/bin
-    cp vegaserver $out/bin
-  '';
-
-  meta = with lib; {
-    homepage = "http://privateer.sourceforge.net/";
-    description = "Adventure space flight simulation computer game";
-    license = licenses.gpl2Plus; # and a special license for art data
-    # https://sourceforge.net/p/privateer/code/HEAD/tree/privgold/trunk/data/art-license.txt
-
-    maintainers = with maintainers; [ ];
-    platforms = with platforms; linux ++ darwin;
-    hydraPlatforms = [];
-    broken = true; # it won't build
-  };
-}
diff --git a/nixpkgs/pkgs/games/quake3/quake3e/default.nix b/nixpkgs/pkgs/games/quake3/quake3e/default.nix
index 691406160d1d..25c6b4ddec09 100644
--- a/nixpkgs/pkgs/games/quake3/quake3e/default.nix
+++ b/nixpkgs/pkgs/games/quake3/quake3e/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, curl, libGL, libX11, libXxf86dga, alsaLib, libXrandr, libXxf86vm, libXext, fetchFromGitHub }:
+{ lib, stdenv, curl, libGL, libX11, libXxf86dga, alsa-lib, libXrandr, libXxf86vm, libXext, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "Quake3e";
@@ -11,12 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "1jvk8qd0mi0x8lslknhkfd8h6ridwca34c6qahsbmmpcgsvdv16s";
   };
 
-  buildInputs = [ curl libGL libX11 libXxf86dga alsaLib libXrandr libXxf86vm libXext ];
+  buildInputs = [ curl libGL libX11 libXxf86dga alsa-lib libXrandr libXxf86vm libXext ];
   enableParallelBuilding = true;
 
   postPatch = ''
     sed -i -e 's#OpenGLLib = dlopen( dllname#OpenGLLib = dlopen( "${libGL}/lib/libGL.so"#' code/unix/linux_qgl.c
-    sed -i -e 's#Sys_LoadLibrary( "libasound.so.2" )#Sys_LoadLibrary( "${alsaLib}/lib/libasound.so.2" )#' code/unix/linux_snd.c
+    sed -i -e 's#Sys_LoadLibrary( "libasound.so.2" )#Sys_LoadLibrary( "${alsa-lib}/lib/libasound.so.2" )#' code/unix/linux_snd.c
     sed -i -e 's#Sys_LoadLibrary( "libXrandr.so.2" )#Sys_LoadLibrary( "${libXrandr}/lib/libXrandr.so.2" )#' code/unix/x11_randr.c
     sed -i -e 's#Sys_LoadLibrary( "libXxf86vm.so.1" )#Sys_LoadLibrary( "${libXxf86vm}/lib/libXxf86vm.so.1" )#' code/unix/x11_randr.c
     sed -i -e 's#Sys_LoadLibrary( "libXxf86dga.so.1" )#Sys_LoadLibrary( "${libXxf86dga}/lib/libXxf86dga.so.1" )#' code/unix/x11_dga.c
diff --git a/nixpkgs/pkgs/games/quakespasm/vulkan.nix b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
index 3565ce10ba1c..0d0b03f514b8 100644
--- a/nixpkgs/pkgs/games/quakespasm/vulkan.nix
+++ b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
@@ -54,6 +54,6 @@ stdenv.mkDerivation rec {
     '';
 
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/games/r2mod_cli/default.nix b/nixpkgs/pkgs/games/r2mod_cli/default.nix
index 6a7d12eadb16..169385576ac5 100644
--- a/nixpkgs/pkgs/games/r2mod_cli/default.nix
+++ b/nixpkgs/pkgs/games/r2mod_cli/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "r2mod_cli";
-  version = "1.0.7";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "Foldex";
     repo = "r2mod_cli";
     rev = "v${version}";
-    sha256 = "13n2y9gsgb8hnr64y083x9c90j3b4awcmdn81mqmwcydpby3q848";
+    sha256 = "sha256-VNqdVDBR6+eNOeUthPXLfz+0VoaNfSj4f04HLvjg6/0=";
   };
 
   buildInputs = [ bashInteractive ];
diff --git a/nixpkgs/pkgs/games/residualvm/default.nix b/nixpkgs/pkgs/games/residualvm/default.nix
index 51dd4f908601..9a836c595087 100644
--- a/nixpkgs/pkgs/games/residualvm/default.nix
+++ b/nixpkgs/pkgs/games/residualvm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsaLib
+{ lib, stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsa-lib
 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 , openglSupport ? libGLSupported, libGLU, libGL ? null
 }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "99c419b13885a49bdfc10a50a3a6000fd1ba9504f6aae04c74b840ec6f57a963";
   };
 
-  buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsaLib ]
+  buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsa-lib ]
     ++ lib.optionals openglSupport [ libGL libGLU ];
 
   configureFlags = [ "--enable-all-engines" ];
diff --git a/nixpkgs/pkgs/games/rpg-cli/default.nix b/nixpkgs/pkgs/games/rpg-cli/default.nix
new file mode 100644
index 000000000000..1c5e8fce97a7
--- /dev/null
+++ b/nixpkgs/pkgs/games/rpg-cli/default.nix
@@ -0,0 +1,25 @@
+{ rustPlatform, fetchFromGitHub, lib }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rpg-cli";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "facundoolano";
+    repo = pname;
+    rev = version;
+    sha256 = "0rbj27zd7ydkvnyszd56hazj64aqqrwn34fsy4jymk50lvicwxjg";
+  };
+
+  cargoSha256 = "sha256-VftJgRqrFwTElp2/e+zQYZOLZPjbc9C8SZ4DlBEtRvQ=";
+
+  # tests assume the authors macbook, and thus fail
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Your filesystem as a dungeon";
+    homepage = "https://github.com/facundoolano/rpg-cli";
+    license = licenses.mit;
+    maintainers = with maintainers; [ legendofmiracles ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/runelite/default.nix b/nixpkgs/pkgs/games/runelite/default.nix
index e9e77e275dc7..9a2ce6314cd1 100644
--- a/nixpkgs/pkgs/games/runelite/default.nix
+++ b/nixpkgs/pkgs/games/runelite/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, makeWrapper, jre, makeDesktopItem, lib }:
+{ pkgs, lib, stdenv, makeDesktopItem, fetchurl, unzip, makeWrapper, xorg, jre, }:
 
 stdenv.mkDerivation rec {
   pname = "runelite";
-  version = "2.0.0";
+  version = "2.1.5";
 
-  src = fetchurl {
+  jar = fetchurl {
     url = "https://github.com/runelite/launcher/releases/download/${version}/RuneLite.jar";
-    sha256 = "0q0x8g43ggkvp5fgnymgygx59xfhnyyrhpi6ha333gqg97rr0rvw";
+    sha256 = "4BX188QIjIFTxng2ktqlKn7AqQ9tdBcKWmgOj/5yd10=";
   };
 
   icon = fetchurl {
@@ -14,6 +14,17 @@ stdenv.mkDerivation rec {
     sha256 = "04fcjm7p546gr82g0jbh497j7rnh70lrvas0k171bff4v3knrjw1";
   };
 
+  # The `.so` files provided by these two jars aren't detected by RuneLite for some reason, so we have to provide them manually
+  jogl = fetchurl {
+    url = "https://repo.runelite.net/net/runelite/jogl/jogl-all/2.4.0-rc-20200429/jogl-all-2.4.0-rc-20200429-natives-linux-amd64.jar";
+    sha256 = "S60qxyWY9RfyhLFygn/OxZFWnc8qVRtTFdWMbdu+2U0=";
+  };
+  gluegen = fetchurl {
+    url = "https://repo.runelite.net/net/runelite/gluegen/gluegen-rt/2.4.0-rc-20200429/gluegen-rt-2.4.0-rc-20200429-natives-linux-amd64.jar";
+    sha256 = "eF8S5sQkJFDtW8rcVBKIyeyKm5Ze5rXK5r/yosZcHjU=";
+  };
+  dontUnpack = true;
+
   desktop = makeDesktopItem {
     name = "RuneLite";
     type = "Application";
@@ -24,23 +35,25 @@ stdenv.mkDerivation rec {
     desktopName = "RuneLite";
     genericName = "Oldschool Runescape";
     categories = "Game";
-    startupNotify = null;
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-
-  # colon is bash form of no-op (do nothing)
-  dontUnpack = true;
-
+  nativeBuildInputs = [ makeWrapper unzip ];
   installPhase = ''
     mkdir -p $out/share/runelite
     mkdir -p $out/share/applications
+    mkdir -p $out/natives
+
+    unzip ${jogl}    'natives/*' -d $out
+    unzip ${gluegen} 'natives/*' -d $out
 
-    ln -s ${src} $out/share/runelite/RuneLite.jar
-    ln -s ${desktop}/share/applications/* $out/share/applications
+    ln -s ${jar} $out/share/runelite/RuneLite.jar
+    ln -s ${desktop}/share/applications/RuneLite.desktop $out/share/applications/RuneLite.desktop
 
+    # RuneLite looks for `.so` files in $PWD/natives, so ensure that we set the PWD to the right place
     makeWrapper ${jre}/bin/java $out/bin/runelite \
-    --add-flags "-jar $out/share/runelite/RuneLite.jar"
+      --run "cd $out" \
+      --prefix LD_LIBRARY_PATH : "${xorg.libXxf86vm}/lib" \
+      --add-flags "-jar $out/share/runelite/RuneLite.jar"
   '';
 
   meta = with lib; {
@@ -48,6 +61,6 @@ stdenv.mkDerivation rec {
     homepage = "https://runelite.net/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ kmeakin ];
-    platforms = platforms.all;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/games/scummvm/default.nix b/nixpkgs/pkgs/games/scummvm/default.nix
index 68ccb894d992..b22d292f2070 100644
--- a/nixpkgs/pkgs/games/scummvm/default.nix
+++ b/nixpkgs/pkgs/games/scummvm/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, nasm
-, alsaLib, curl, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, libGLU, libGL, SDL2, zlib
+, alsa-lib, curl, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, libGLU, libGL, SDL2, zlib
 , Cocoa, AudioToolbox, Carbon, CoreMIDI, AudioUnit, cctools
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ nasm ];
 
   buildInputs = lib.optionals stdenv.isLinux [
-    alsaLib
+    alsa-lib
   ] ++ lib.optionals stdenv.isDarwin [
     Cocoa AudioToolbox Carbon CoreMIDI AudioUnit
   ] ++ [
diff --git a/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix b/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
index 2ced60ef8906..ec18a26829fb 100644
--- a/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -10,15 +10,15 @@
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     # NOTE: always use the commit sha, not the tag. Tags _will_ disappear!
     # https://github.com/00-Evan/shattered-pixel-dungeon/issues/596
-    rev = "5be9ee815f1fc6e3511a09a367d3f9d8dc55c783";
-    sha256 = "0wknrf7jjnkshj4gmb1ksqiqif1rq53ffi3y29ynhcz68sa0frx6";
+    rev = "785c869f2b61013a15fddbf5f0c65d67fe900e80";
+    sha256 = "sha256-d7Fc1IPOW/0RwLYe9vwaD3gFw6div2/J0DOFdWYDXWY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix b/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix
index dd286ce09415..7dbd5c257e89 100644
--- a/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix
+++ b/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix
@@ -6,8 +6,9 @@ let
 in buildFHSUserEnv {
   name = "shticker_book_unwritten";
   targetPkgs = pkgs: with pkgs; [
-      alsaLib
+      alsa-lib
       xorg.libX11
+      xorg.libXcursor
       xorg.libXext
       libglvnd
       shticker-book-unwritten-unwrapped
diff --git a/nixpkgs/pkgs/games/shticker-book-unwritten/unwrapped.nix b/nixpkgs/pkgs/games/shticker-book-unwritten/unwrapped.nix
index 411bea6b00ae..638a9ae792e6 100644
--- a/nixpkgs/pkgs/games/shticker-book-unwritten/unwrapped.nix
+++ b/nixpkgs/pkgs/games/shticker-book-unwritten/unwrapped.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "1lnhdr8mri1ns9lxj6aks4vs2v4fvg7mcriwzwj78inpi1l0xqk5";
+  cargoSha256 = "1d4mnfzkdbqnjmqk7fl4bsy27lr7wnq997nz0hflaybnx2d3nisn";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/games/soldat-unstable/default.nix b/nixpkgs/pkgs/games/soldat-unstable/default.nix
index 19ff4b5c6c0e..496d51e31c41 100644
--- a/nixpkgs/pkgs/games/soldat-unstable/default.nix
+++ b/nixpkgs/pkgs/games/soldat-unstable/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, fpc, zip, makeWrapper
+{ lib, stdenv, fetchFromGitHub, fpc, zip, makeWrapper
 , SDL2, freetype, physfs, openal, gamenetworkingsockets
 , xorg, autoPatchelfHook
 }:
@@ -39,14 +39,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "soldat";
-  version = "unstable-2021-02-09";
+  version = "unstable-2021-04-27";
 
   src = fetchFromGitHub {
     name = "soldat";
     owner = "Soldat";
     repo = "soldat";
-    rev = "c304c3912ca7a88461970a859049d217a44c6375";
-    sha256 = "09sl2zybfcmnl2n3qghp0gylmr71y01534l6nq0y9llbdy0bf306";
+    rev = "4d17667c316ff08934e97448b7f290a8dc434e81";
+    sha256 = "1pf557psmhfaagblfwdn36cw80j7bgs0lgjq8hmjbv58dysw3jdb";
   };
 
   nativeBuildInputs = [ fpc makeWrapper autoPatchelfHook ];
@@ -54,15 +54,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ SDL2 freetype physfs openal gamenetworkingsockets ];
   runtimeDependencies = [ xorg.libX11 ];
 
-  patches = [
-    # fix an argument parsing issue which prevents
-    # us from passing nix store paths to soldat
-    (fetchpatch {
-      url = "https://github.com/sternenseemann/soldat/commit/9f7687430f5fe142c563b877d2206f5c9bbd5ca0.patch";
-      sha256 = "0wsrazb36i7v4idg06jlzfhqwf56q9szzz7jp5cg4wsvcky3wajf";
-    })
-  ];
-
   buildPhase = ''
     runHook preBuild
 
diff --git a/nixpkgs/pkgs/games/steam-tui/default.nix b/nixpkgs/pkgs/games/steam-tui/default.nix
new file mode 100644
index 000000000000..968f529421d6
--- /dev/null
+++ b/nixpkgs/pkgs/games/steam-tui/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, rustPlatform
+, steamcmd
+, fetchFromGitHub
+, steam-run-native
+, runtimeShell
+, withWine ? false
+, wine
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "steam-tui";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "dmadisetti";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-UTXYlPecv0MVonr9zZwfwopfC/Fdch/ZSCxqgUsem40=";
+  };
+
+  cargoSha256 = "sha256-VYBzwDLSV4N4qt2dNgIS399T2HIbPTdQ2rDIeheLlfo=";
+
+  buildInputs = [ steamcmd steam-run-native ]
+    ++ lib.optional withWine wine;
+
+  preFixup = ''
+    mv $out/bin/steam-tui $out/bin/.steam-tui-unwrapped
+    cat > $out/bin/steam-tui <<EOF
+    #!${runtimeShell}
+    export PATH=${steamcmd}/bin:\$PATH
+    exec ${steam-run-native}/bin/steam-run $out/bin/.steam-tui-unwrapped '\$@'
+    EOF
+    chmod +x $out/bin/steam-tui
+  '';
+
+  meta = with lib; {
+    description = "Rust TUI client for steamcmd";
+    homepage = "https://github.com/dmadisetti/steam-tui";
+    license = licenses.mit;
+    maintainers = with maintainers; [ legendofmiracles ];
+    # steam only supports that platform
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/steam/fhsenv.nix b/nixpkgs/pkgs/games/steam/fhsenv.nix
index f17c436cccb5..a0557eed9b12 100644
--- a/nixpkgs/pkgs/games/steam/fhsenv.nix
+++ b/nixpkgs/pkgs/games/steam/fhsenv.nix
@@ -85,7 +85,7 @@ in buildFHSUserEnv rec {
   targetPkgs = pkgs: with pkgs; [
     steamPackages.steam
     # License agreement
-    gnome3.zenity
+    gnome.zenity
   ] ++ commonTargetPkgs pkgs;
 
   multiPkgs = pkgs: with pkgs; [
@@ -98,6 +98,7 @@ in buildFHSUserEnv rec {
     xorg.libXfixes
     libGL
     libva
+    pipewire.lib
 
     # Not formally in runtime but needed by some games
     at-spi2-atk
@@ -105,6 +106,7 @@ in buildFHSUserEnv rec {
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-ugly
     gst_all_1.gst-plugins-base
+    json-glib # paradox launcher (Stellaris)
     libdrm
     libxkbcommon # paradox launcher
     mono
@@ -134,7 +136,7 @@ in buildFHSUserEnv rec {
     libGLU
     libuuid
     libbsd
-    alsaLib
+    alsa-lib
 
     # Loop Hero
     libidn2
diff --git a/nixpkgs/pkgs/games/steam/runtime-wrapped.nix b/nixpkgs/pkgs/games/steam/runtime-wrapped.nix
index 8e4f5b866bbc..765ecbed28f2 100644
--- a/nixpkgs/pkgs/games/steam/runtime-wrapped.nix
+++ b/nixpkgs/pkgs/games/steam/runtime-wrapped.nix
@@ -6,7 +6,7 @@ let
   overridePkgs = lib.optionals (!runtimeOnly) (with pkgs; [
     libgpgerror
     libpulseaudio
-    alsaLib
+    alsa-lib
     openalSoft
     libva1
     libvdpau
diff --git a/nixpkgs/pkgs/games/steam/runtime.nix b/nixpkgs/pkgs/games/steam/runtime.nix
index 70c6abe8db41..ab2c19249aa2 100644
--- a/nixpkgs/pkgs/games/steam/runtime.nix
+++ b/nixpkgs/pkgs/games/steam/runtime.nix
@@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
 
   pname = "steam-runtime";
   # from https://repo.steampowered.com/steamrt-images-scout/snapshots/
-  version = "0.20201203.1";
+  version = "0.20210527.0";
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz";
-    sha256 = "sha256-hOHfMi0x3K82XM3m/JmGYbVk5RvuHG+m275eAC0MoQc=";
+    sha256 = "1880d1byn265w0vy5p98d8w8virnbywj707ydybj7rixhid2gzdc";
     name = "scout-runtime-${version}.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/games/stepmania/default.nix b/nixpkgs/pkgs/games/stepmania/default.nix
index 1512359d495f..70e1acb1f34f 100644
--- a/nixpkgs/pkgs/games/stepmania/default.nix
+++ b/nixpkgs/pkgs/games/stepmania/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, cmake, nasm
-, gtk2, glib, ffmpeg, alsaLib, libmad, libogg, libvorbis
+, gtk2, glib, ffmpeg, alsa-lib, libmad, libogg, libvorbis
 , glew, libpulseaudio, udev
 }:
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake nasm ];
 
   buildInputs = [
-    gtk2 glib ffmpeg alsaLib libmad libogg libvorbis
+    gtk2 glib ffmpeg alsa-lib libmad libogg libvorbis
     glew libpulseaudio udev
   ];
 
diff --git a/nixpkgs/pkgs/games/stockfish/default.nix b/nixpkgs/pkgs/games/stockfish/default.nix
index ef9c7fbe4d64..b09dc523d1ac 100644
--- a/nixpkgs/pkgs/games/stockfish/default.nix
+++ b/nixpkgs/pkgs/games/stockfish/default.nix
@@ -12,13 +12,13 @@ let
            if stdenv.isi686 then "x86-32" else
            if stdenv.isAarch64 then "armv8" else
            "unknown";
-    version = "12";
+    version = "13";
 
-    nnueFile = "nn-82215d0fd0df.nnue";
+    nnueFile = "nn-62ef826d1a6d.nnue";
     nnue = fetchurl {
       name = nnueFile;
       url = "https://tests.stockfishchess.org/api/nn/${nnueFile}";
-      sha256 = "1r4yqrh4di05syyhl84hqcz84djpbd605b27zhbxwg6zs07ms8c2";
+      sha256 = "0qsy9rr4zgxrpgwhwbi96z01a2560am2b00q2klbj4bd39nq5vv2";
     };
 in
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://github.com/official-stockfish/Stockfish/archive/sf_${version}.tar.gz";
-    sha256 = "16980aicm5i6i9252239q4f9bcxg1gnqkv6nphrmpz4drg8i3v6i";
+    sha256 = "0qhxp2w543psanzhzn8jhfafx8aip57v9nsvafbwa5xynchlgl8m";
   };
 
   # This addresses a linker issue with Darwin
diff --git a/nixpkgs/pkgs/games/super-tux-kart/default.nix b/nixpkgs/pkgs/games/super-tux-kart/default.nix
index 35143028a275..3589e10e7a53 100644
--- a/nixpkgs/pkgs/games/super-tux-kart/default.nix
+++ b/nixpkgs/pkgs/games/super-tux-kart/default.nix
@@ -9,18 +9,19 @@
 , SDL2
 , glew
 , openal
+, OpenAL
 , libvorbis
 , libogg
 , curl
 , freetype
-, bluez
 , libjpeg
 , libpng
-, enet
 , harfbuzz
 , mcpp
 , wiiuse
 , angelscript
+, Cocoa
+, IOKit
 }:
 let
   dir = "stk-code";
@@ -54,7 +55,12 @@ let
     "libsquish"
     # Not packaged to this date
     "sheenbidi"
-  ];
+  ]
+  # Our system angelscript causes linking error on ARM
+  # ld: libangelscript.so: undefined reference to
+  # `CallSystemFunctionNative(asCContext*, asCScriptFunction*, void*, unsigned int*, void*, unsigned long&, void*)'
+  # Bundled angelscript compiles fine
+  ++ lib.optional stdenv.hostPlatform.isAarch64 "angelscript";
 in
 stdenv.mkDerivation rec {
 
@@ -77,10 +83,14 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  # Deletes all bundled libs in stk-code/lib except those
-  # That couldn't be replaced with system packages
   postPatch = ''
+    # Deletes all bundled libs in stk-code/lib except those
+    # That couldn't be replaced with system packages
     find lib -maxdepth 1 -type d | egrep -v "^lib$|${(lib.concatStringsSep "|" bundledLibraries)}" | xargs -n1 -L1 -r -I{} rm -rf {}
+
+    # Allow building with system-installed wiiuse on Darwin
+    substituteInPlace CMakeLists.txt \
+      --replace 'NOT (APPLE OR HAIKU)) AND USE_SYSTEM_WIIUSE' 'NOT (HAIKU)) AND USE_SYSTEM_WIIUSE'
   '';
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
@@ -88,33 +98,41 @@ stdenv.mkDerivation rec {
   buildInputs = [
     SDL2
     glew
-    openal
     libvorbis
     libogg
     freetype
     curl
-    bluez
     libjpeg
     libpng
-    enet
     harfbuzz
     mcpp
     wiiuse
-    angelscript
-  ];
+  ]
+  ++ lib.optional (!stdenv.hostPlatform.isAarch64) angelscript
+  ++ lib.optional stdenv.hostPlatform.isLinux openal
+  ++ lib.optionals stdenv.hostPlatform.isDarwin [ OpenAL IOKit Cocoa ];
 
   cmakeFlags = [
     "-DBUILD_RECORDER=OFF" # libopenglrecorder is not in nixpkgs
-    "-DUSE_SYSTEM_ANGELSCRIPT=OFF" # doesn't work with 2.31.2 or 2.32.0
+    # doesn't work with our 2.35.0 on aarch64-linux
+    "-DUSE_SYSTEM_ANGELSCRIPT=${if !stdenv.hostPlatform.isAarch64 then "ON" else "OFF"}"
     "-DCHECK_ASSETS=OFF"
     "-DUSE_SYSTEM_WIIUSE=ON"
-    "-DUSE_SYSTEM_ANGELSCRIPT=ON"
     "-DOpenGL_GL_PREFERENCE=GLVND"
   ];
 
+  # Extract binary from built app bundle
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mkdir $out/bin
+    mv $out/{supertuxkart.app/Contents/MacOS,bin}/supertuxkart
+    rm -rf $out/supertuxkart.app
+  '';
+
   # Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds
   preFixup = ''
-    wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}"
+    wrapProgram $out/bin/supertuxkart \
+      --set-default SUPERTUXKART_ASSETS_DIR "${assets}" \
+      --set-default SUPERTUXKART_DATADIR "$out/share/supertuxkart" \
   '';
 
   meta = with lib; {
@@ -127,7 +145,7 @@ stdenv.mkDerivation rec {
     homepage = "https://supertuxkart.net/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pyrolagus peterhoeg ];
-    platforms = with platforms; linux;
+    platforms = with platforms; unix;
     changelog = "https://github.com/supertuxkart/stk-code/blob/${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/games/system-syzygy/default.nix b/nixpkgs/pkgs/games/system-syzygy/default.nix
index 4343a27fb499..f01f93572ba2 100644
--- a/nixpkgs/pkgs/games/system-syzygy/default.nix
+++ b/nixpkgs/pkgs/games/system-syzygy/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ SDL2 ];
 
-  cargoSha256 = "001cwdq8zxji56yahwfsydi7s0j7c5zsip60lxk3qmn078wcipdp";
+  cargoSha256 = "1jp9wnavq92w52ksj2q9fi3y58wq7ybfkx2kfbx2i2xv8d7y88ax";
 
   postInstall = ''
     mkdir -p $out/share/syzygy/
diff --git a/nixpkgs/pkgs/games/teeworlds/default.nix b/nixpkgs/pkgs/games/teeworlds/default.nix
index 19f562d54af1..b0a49cc77d1f 100644
--- a/nixpkgs/pkgs/games/teeworlds/default.nix
+++ b/nixpkgs/pkgs/games/teeworlds/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, lib, stdenv, cmake, pkg-config, python3, alsaLib
+{ fetchFromGitHub, lib, stdenv, cmake, pkg-config, python3, alsa-lib
 , libX11, libGLU, SDL2, lua5_3, zlib, freetype, wavpack, icoutils
 , nixosTests
 }:
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config icoutils ];
 
   buildInputs = [
-    python3 alsaLib libX11 libGLU SDL2 lua5_3 zlib freetype wavpack
+    python3 alsa-lib libX11 libGLU SDL2 lua5_3 zlib freetype wavpack
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/games/terraria-server/default.nix b/nixpkgs/pkgs/games/terraria-server/default.nix
index de430d296222..b5a8c7e486bd 100644
--- a/nixpkgs/pkgs/games/terraria-server/default.nix
+++ b/nixpkgs/pkgs/games/terraria-server/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "terraria-server";
-  version = "1.4.1.2";
+  version = "1.4.2.3";
   urlVersion = lib.replaceChars [ "." ] [ "" ] version;
 
   src = fetchurl {
-    url = "https://terraria.org/system/dedicated_servers/archives/000/000/042/original/terraria-server-${urlVersion}.zip";
-    sha256 = "18hcy7jfizyyp0h66rga8z948xg3nyk32rzl7hgv7ar1w43airhh";
+    url = "https://terraria.org/system/dedicated_servers/archives/000/000/046/original/terraria-server-${urlVersion}.zip";
+    sha256 = "0qm4pbm1d9gax47fk4zhw9rcxvajxs36w7dghirli89i994r7g8j";
   };
 
   buildInputs = [ file ];
diff --git a/nixpkgs/pkgs/games/toppler/default.nix b/nixpkgs/pkgs/games/toppler/default.nix
index 08baf2ab6fd2..ffe807410bb4 100644
--- a/nixpkgs/pkgs/games/toppler/default.nix
+++ b/nixpkgs/pkgs/games/toppler/default.nix
@@ -20,6 +20,9 @@ stdenv.mkDerivation rec {
     zlib
   ];
 
+  # The conftest hangs on Hydra runners, because they are not logged in.
+  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
+
   meta = with lib; {
     description = "Jump and run game, reimplementation of Tower Toppler/Nebulus";
     homepage = "http://toppler.sourceforge.net/";
diff --git a/nixpkgs/pkgs/games/torus-trooper/default.nix b/nixpkgs/pkgs/games/torus-trooper/default.nix
new file mode 100644
index 000000000000..441cffbdf04d
--- /dev/null
+++ b/nixpkgs/pkgs/games/torus-trooper/default.nix
@@ -0,0 +1,104 @@
+{ lib
+, stdenv
+, fetchpatch
+, fetchurl
+, unzip
+, gdc
+, SDL
+, SDL_mixer
+, bulletml
+}:
+
+let
+debianPatch = patchname: hash: fetchpatch {
+  name = "${patchname}.patch";
+  url = "https://sources.debian.org/data/main/t/torus-trooper/0.22.dfsg1-12/debian/patches/${patchname}.patch";
+  sha256 = hash;
+};
+
+in stdenv.mkDerivation {
+  pname = "torus-trooper";
+  version = "0.22";
+
+  src = fetchurl {
+    url = "http://abagames.sakura.ne.jp/windows/tt0_22.zip";
+    sha256 = "1yhki1fdp3fi4y2iq12vca69f6k38dqjaw9z4lwcxky5kbgb7jvg";
+  };
+
+  patches = [
+    (debianPatch
+      "imports"
+      "0mifw0mj66zljpq6iqnh0rhkgs2sky8rz0p32k98vxfnsb39ibsf")
+    (debianPatch
+      "fixes"
+      "05f93zq2v14lymq748c9g646ckbh9mqpr5rrahb63s90x8hlcqil")
+    (debianPatch
+      "directories"
+      "0y5xvf26v9fk0rx6ncrxx4czckhjbi891hp3pixlmv568pg9cihd")
+    (debianPatch
+      "windowed"
+      "1d8ghj4shvpb0s8l16kscz4l7rz1fxmfdpddy1ikz3678pw1sc8p")
+    (debianPatch
+      "dotfile"
+      "17yirmnjhbd1clzhmdd2mfdhbxkyinaahd6v3yz5kzbcylvjz2r2")
+    (debianPatch
+      "window-resizing"
+      "1n64gbhabl6vis7s294wxlj2k8s3ypxljpdg71icwz1m9jjx59df")
+    (debianPatch
+      "save-score-444372"
+      "1skny6s3hjxkh8w4fq86vp51j7z40fvn80b8myl4i1zzlwag3x17")
+    (debianPatch
+      "level-select-444948"
+      "008248s55188plggg2kg01nimjgc7w0sqd3c22sl6lzd1fjsflv8")
+    (debianPatch
+      "avoid-segfault-when-sdl-fails"
+      "1yp758gi4i15gqk6wiqp815rqcmlyqx62ir1sw20hn6zb3j97bmc")
+    (debianPatch
+      "dlang_v2"
+      "1lxsbckhvl8a8j43pw2dyl5nlavvdbgxb5zlb2450a0vml55nswd")
+    (debianPatch
+      "lowest-level-position-602808"
+      "19r48wirc9zssjmv57drn2fd0f56dcgyqqaz3j49cvv6yd74qf20")
+    (debianPatch
+      "libbulletml0v5-segfault"
+      "0pad2daz60hswkhkdpssxaqc9p9ca0sw1nraqzr453x0zdwwq0hn")
+    (debianPatch
+      "std.math.fabs"
+      "18xnnqlj20bxv2h9fa8dn4rmxwi3k6y3g50kwvh8i8p3b4hgag3r")
+    (debianPatch
+      "gdc-8"
+      "10z702y75c48hjcnvv8m7f3ka52cj3r3jqafdbby85nb0p2lbssx")
+  ];
+
+  postPatch = ''
+    for f in src/abagames/tt/barrage.d src/abagames/util/sdl/sound.d src/abagames/util/sdl/texture.d; do
+      substituteInPlace $f \
+        --replace "/usr/" "$out/"
+    done
+  '';
+
+  nativeBuildInputs = [
+    unzip
+    gdc
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_mixer
+    bulletml
+  ];
+
+  installPhase = ''
+    install -Dm755 torus-trooper $out/bin/torus-trooper
+    mkdir -p $out/share/games/torus-trooper
+    cp -r barrage sounds images $out/share/games/torus-trooper/
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tt_e.html";
+    description = "Fast-paced abstract scrolling shooter game";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/tumiki-fighters/default.nix b/nixpkgs/pkgs/games/tumiki-fighters/default.nix
new file mode 100644
index 000000000000..2f3cf869f8db
--- /dev/null
+++ b/nixpkgs/pkgs/games/tumiki-fighters/default.nix
@@ -0,0 +1,97 @@
+{ lib
+, stdenv
+, fetchpatch
+, fetchurl
+, unzip
+, gdc
+, SDL
+, SDL_mixer
+, bulletml
+}:
+
+let
+debianPatch = patchname: hash: fetchpatch {
+  name = "${patchname}.patch";
+  url = "https://sources.debian.org/data/main/t/tumiki-fighters/0.2.dfsg1-9/debian/patches/${patchname}.patch";
+  sha256 = hash;
+};
+
+in stdenv.mkDerivation {
+  pname = "tumiki-fighters";
+  version = "0.21";
+
+  src = fetchurl {
+    url = "http://abagames.sakura.ne.jp/windows/tf0_21.zip";
+    sha256 = "0djykfc1r8ysapklm621h89ana1c4qzc1m5nr9bqw4iccnmvwk3p";
+  };
+
+  patches = [
+    (debianPatch
+      "imports"
+      "1l3kc67b43gdi139cpz5cka1nkn0pjp9mrgrrxlmr0liwx2aryhn")
+    (debianPatch
+      "fixes"
+      "1iy1a5vii6yz9zdlk2bcj6gkj4y25hn9y2fczz15jpqd9r2zm603")
+    (debianPatch
+      "directories"
+      "0kmv0s7jgr693fzrkjsmz4dnicc4w7njanxm2la3cf4vmgdyipmm")
+    (debianPatch
+      "windowed"
+      "1wp74l0bi8wq85pcxnmkwrlfmlf09im95n27pxgz082lhwf2ksy1")
+    (debianPatch
+      "dotfile"
+      "0d8x519bclh41j992qn6ijzfcrgacb79px6zjd1awypkwyc0j2p6")
+    (debianPatch
+      "makefile"
+      "11xf2b31kjyps53jfryv82dv0g6q0smc9xgp8imrbr93mzi51vf0")
+    (debianPatch
+      "window-resizing"
+      "1dm79d0yisa8zs5fr89y3wq2kzd3khcaxs0la8lhncvkqbd4smx8")
+    (debianPatch
+      "dlang_v2"
+      "1isnvbl3bjnpyphji8k3fl0yd1z4869h0lai143vpwgj6518lpg4")
+    (debianPatch
+      "gdc-8"
+      "1md0zwmv50jnak5g9d93bglv9v4z41blinjii6kv3vmgjnajapzj")
+  ];
+
+  postPatch = ''
+    for f in \
+      src/abagames/tf/barragemanager.d \
+      src/abagames/util/sdl/sound.d \
+      src/abagames/util/sdl/texture.d \
+      src/abagames/tf/enemyspec.d \
+      src/abagames/tf/field.d \
+      src/abagames/tf/stagemanager.d \
+      src/abagames/tf/tumikiset.d
+    do
+      substituteInPlace $f \
+        --replace "/usr/" "$out/"
+    done
+  '';
+
+  nativeBuildInputs = [
+    unzip
+    gdc
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_mixer
+    bulletml
+  ];
+
+  installPhase = ''
+    install -Dm755 tumiki-fighters $out/bin/tumiki-fighters
+    mkdir -p $out/share/games/tumiki-fighters
+    cp -r barrage sounds enemy field stage tumiki $out/share/games/tumiki-fighters/
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tf_e.html";
+    description = "Sticky 2D shooter";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix
index 63866d4bca98..1d6f199480de 100644
--- a/nixpkgs/pkgs/games/ultrastardx/default.nix
+++ b/nixpkgs/pkgs/games/ultrastardx/default.nix
@@ -31,28 +31,41 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "2020.4.0";
+  version = "2021-04-03";
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
-    rev = "v${version}";
-    sha256 = "0vmfv8zpyf8ymx3rjydpd7iqis080lni94vb316vfxkgvjmqbhym";
+    rev = "d49e916705092f3d765d85d276b283b9e7e232a6";
+    sha256 = "0sdcz2vc8i2z50nj7zbkdpxx2mvx0m0927lfsj7d7qr0p8vkm0wa";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
   buildInputs = [ fpc libpng ] ++ sharedLibs;
 
-  patches = [
-    (fetchpatch {
-      name = "fpc-3.2-support.patch";
-      url = "https://github.com/UltraStar-Deluxe/USDX/commit/1b8e8714c1523ef49c2fd689a1545d097a3d76d7.patch";
-      sha256 = "02zmjymj9w1mkpf7armdpf067byvml6lprs1ca4lhpkv45abddp4";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace src/config.inc.in \
       --subst-var-by libpcre_LIBNAME libpcre.so.1
+
+    # ultrastardx binds to libffmpeg (and sublibs), specifying a very restrictive
+    # upper bounds on the minor versions of .so files.
+    # We can assume ffmpeg won’t break any major ABI compatibility, since their
+    # patch version seems to always stay at 100,
+    # and their minor version changes quite frequently.
+    sed \
+      -e 's/^  LIBAVCODEC_MAX_VERSION_MINOR.*$/  LIBAVCODEC_MAX_VERSION_MINOR = 1000;/' \
+      -i src/lib/ffmpeg-4.0/avcodec.pas
+    sed \
+      -e 's/^  LIBAVFORMAT_MAX_VERSION_MINOR.*$/  LIBAVFORMAT_MAX_VERSION_MINOR = 1000;/' \
+      -i src/lib/ffmpeg-4.0/avformat.pas
+    sed \
+      -e 's/^  LIBAVUTIL_MAX_VERSION_MINOR.*$/  LIBAVUTIL_MAX_VERSION_MINOR = 1000;/' \
+      -i src/lib/ffmpeg-4.0/avutil.pas
+    sed \
+      -e 's/^  LIBSWRESAMPLE_MAX_VERSION_MINOR.*$/  LIBSWRESAMPLE_MAX_VERSION_MINOR = 1000;/' \
+      -i src/lib/ffmpeg-4.0/swresample.pas
+    sed \
+      -e 's/^  LIBSWSCALE_MAX_VERSION_MINOR.*$/  LIBSWSCALE_MAX_VERSION_MINOR = 1000;/' \
+      -i src/lib/ffmpeg-4.0/swscale.pas
   '';
 
   preBuild = with lib;
diff --git a/nixpkgs/pkgs/games/unvanquished/default.nix b/nixpkgs/pkgs/games/unvanquished/default.nix
new file mode 100644
index 000000000000..35db4625db90
--- /dev/null
+++ b/nixpkgs/pkgs/games/unvanquished/default.nix
@@ -0,0 +1,191 @@
+{ lib, stdenv, fetchzip, fetchurl, fetchFromGitHub, buildFHSUserEnv
+, runCommandNoCC, makeDesktopItem, copyDesktopItems, gcc, cmake, gmp
+, libGL, zlib, ncurses, geoip, lua5, nettle, curl, SDL2, freetype, glew
+, openal, libopus, opusfile, libogg, libvorbis, libjpeg, libwebp, libpng
+, cacert, aria2 # to download assets
+}:
+
+let
+  version = "0.52.0";
+  binary-deps-version = "5";
+
+  src = fetchFromGitHub {
+    owner = "Unvanquished";
+    repo = "Unvanquished";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "1acda1559q6zwmhg3x00nai88hy83i5hcfli2bqfab7slr95lm27";
+  };
+
+  unvanquished-binary-deps = stdenv.mkDerivation rec {
+    # DISCLAIMER: this is selected binary crap from the NaCl SDK
+    name = "unvanquished-binary-deps";
+    version = binary-deps-version;
+    src = fetchzip {
+      url = "https://dl.unvanquished.net/deps/linux64-${version}.tar.bz2";
+      sha256 = "08bpyavbh5lmyprvqqi59gnm8s1fjmlk9f1785wlv7f52d9f9z1p";
+    };
+    dontPatchELF = true;
+    preFixup = ''
+      # We are not using the autoPatchelfHook, because it would make
+      # nacl_bootstrap_helper unable to load nacl_loader:
+      # "nacl_loader: ELF file has unreasonable e_phnum=13"
+      interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")"
+      for f in pnacl/bin/*; do
+        if [ -f "$f" && -x "$f" ]; then
+          echo "Patching $f"
+          patchelf --set-interpreter "$interpreter" "$f"
+        fi
+      done
+    '';
+    preCheck = "pnacl/bin/clang -v"; # check it links correctly
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out
+      cp -R ./* $out/
+
+      runHook postInstall
+    '';
+  };
+
+  libstdcpp-preload-for-unvanquished-nacl = stdenv.mkDerivation {
+    name = "libstdcpp-preload-for-unvanquished-nacl";
+    buildCommand = ''
+      mkdir $out/etc -p
+      echo ${gcc.cc.lib}/lib/libstdc++.so.6 > $out/etc/ld-nix.so.preload
+    '';
+    propagatedBuildInputs = [ gcc.cc.lib ];
+  };
+
+  fhsEnv = buildFHSUserEnv {
+    name = "unvanquished-fhs-wrapper";
+    targetPkgs = pkgs: [ libstdcpp-preload-for-unvanquished-nacl ];
+  };
+
+  wrapBinary = binary: wrappername: ''
+    cat > $out/lib/${binary}-wrapper <<-EOT
+    #!/bin/sh
+    exec $out/lib/${binary} -pakpath ${unvanquished-assets} "\$@"
+    EOT
+    chmod +x $out/lib/${binary}-wrapper
+
+    cat > $out/bin/${wrappername} <<-EOT
+    #!/bin/sh
+    exec ${fhsEnv}/bin/unvanquished-fhs-wrapper $out/lib/${binary}-wrapper "\$@"
+    EOT
+    chmod +x $out/bin/${wrappername}
+  '';
+
+
+  unvanquished-assets = stdenv.mkDerivation {
+    pname = "unvanquished-assets";
+    inherit version src;
+
+    outputHash = "sha256:1fy85cjnjk9rrqkhgx5701inff2yv14hnxglzx3209c553gn31n7";
+    outputHashMode = "recursive";
+    nativeBuildInputs = [ aria2 cacert ];
+    buildCommand = "bash $src/download-paks $out";
+  };
+
+# this really is the daemon game engine, the game itself is in the assets
+in stdenv.mkDerivation rec {
+  pname = "unvanquished";
+  inherit version src binary-deps-version;
+
+  preConfigure = ''
+    mkdir daemon/external_deps/linux64-${binary-deps-version}/
+    cp -r ${unvanquished-binary-deps}/* daemon/external_deps/linux64-${binary-deps-version}/
+    chmod +w -R daemon/external_deps/linux64-${binary-deps-version}/
+  '';
+
+  nativeBuildInputs = [ cmake unvanquished-binary-deps copyDesktopItems ];
+  buildInputs = [
+    gmp
+    libGL
+    zlib
+    ncurses
+    geoip
+    lua5
+    nettle
+    curl
+    SDL2
+    freetype
+    glew
+    openal
+    libopus
+    opusfile
+    libogg
+    libvorbis
+    libjpeg
+    libwebp
+    libpng
+  ];
+
+  cmakeFlags = [
+    "-DBUILD_CGAME=NO"
+    "-DBUILD_SGAME=NO"
+    "-DUSE_HARDENING=TRUE"
+    "-DUSE_LTO=TRUE"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "net.unvanquished.Unvanquished.desktop";
+      desktopName = "Unvanquished";
+      comment = "FPS/RTS Game - Aliens vs. Humans";
+      icon = "unvanquished";
+      terminal = false;
+      exec = "unvanquished";
+      categories = "Game;ActionGame;StrategyGame;";
+      # May or may not work
+      prefersNonDefaultGPU = true;
+      fileValidation = false; # it doesn't like PrefersNonDefaultGPU
+      # yes, PrefersNonDefaultGPU is standard:
+      # https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
+    })
+    (makeDesktopItem {
+      name = "net.unvanquished.UnvanquishedProtocolHandler.desktop";
+      desktopName = "Unvanquished (protocol handler)";
+      noDisplay = true;
+      terminal = false;
+      exec = "unvanquished -connect %u";
+      mimeType = "x-scheme-handler/unv";
+      # May or may not work
+      prefersNonDefaultGPU = true;
+      fileValidation = false; # it doesn't like PrefersNonDefaultGPU
+    })
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    for f in daemon daemon-tty daemonded nacl_loader nacl_helper_bootstrap; do
+      install -Dm0755 -t $out/lib/ $f
+    done
+    install -Dm0644 -t $out/lib/ irt_core-x86_64.nexe
+
+    mkdir $out/bin/
+    ${wrapBinary "daemon"     "unvanquished"}
+    ${wrapBinary "daemon-tty" "unvanquished-tty"}
+    ${wrapBinary "daemonded"  "unvanquished-server"}
+
+    for d in ${src}/dist/icons/*; do
+      install -Dm0644 -t $out/share/icons/hicolor/$(basename $d)/apps/ $d/unvanquished.png
+    done
+
+    runHook postInstall
+  '';
+  meta = {
+    platforms = [ "x86_64-linux" ];
+    homepage = "https://unvanquished.net/";
+    downloadPage = "https://unvanquished.net/download/";
+    description = "A fast paced, first person strategy game";
+    maintainers = with lib.maintainers; [ afontain ];
+    # don't replace the following lib.licenses.zlib with just "zlib",
+    # or you would end up with the package instead
+    license = with lib.licenses; [
+      mit gpl3Only lib.licenses.zlib cc-by-sa-25
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/vessel/default.nix b/nixpkgs/pkgs/games/vessel/default.nix
index a60ec15744cb..4a25d26f8cc5 100644
--- a/nixpkgs/pkgs/games/vessel/default.nix
+++ b/nixpkgs/pkgs/games/vessel/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, requireFile, SDL, libpulseaudio, alsaLib, runtimeShell }:
+{ lib, stdenv, requireFile, SDL, libpulseaudio, alsa-lib, runtimeShell }:
 
 stdenv.mkDerivation rec {
   name = "vessel-12082012";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ld_preload = ./isatty.c;
 
   libPath = lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc ]
-    + ":" + lib.makeLibraryPath [ SDL libpulseaudio alsaLib ] ;
+    + ":" + lib.makeLibraryPath [ SDL libpulseaudio alsa-lib ] ;
 
   installPhase = ''
     mkdir -p $out/libexec/strangeloop/vessel/
diff --git a/nixpkgs/pkgs/games/warzone2100/default.nix b/nixpkgs/pkgs/games/warzone2100/default.nix
index c0707ed5e864..7f2ad875d8cf 100644
--- a/nixpkgs/pkgs/games/warzone2100/default.nix
+++ b/nixpkgs/pkgs/games/warzone2100/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , cmake
 , ninja
-, zip
+, p7zip
 , pkg-config
 , asciidoctor
 , gettext
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     pkg-config
     cmake
     ninja
-    zip
+    p7zip
     asciidoctor
     gettext
     shaderc
diff --git a/nixpkgs/pkgs/games/xonotic/default.nix b/nixpkgs/pkgs/games/xonotic/default.nix
index fb6cb93f7f24..38a0450168ef 100644
--- a/nixpkgs/pkgs/games/xonotic/default.nix
+++ b/nixpkgs/pkgs/games/xonotic/default.nix
@@ -3,7 +3,7 @@
 , # required for both
   unzip, libjpeg, zlib, libvorbis, curl
 , # glx
-  libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, alsaLib
+  libX11, libGLU, libGL, libXpm, libXext, libXxf86vm, alsa-lib
 , # sdl
   SDL2
 
@@ -64,7 +64,7 @@ let
 
     nativeBuildInputs = [ unzip ];
     buildInputs = [ libjpeg zlib libvorbis curl ]
-      ++ lib.optional withGLX [ libX11.dev libGLU.dev libGL.dev libXpm.dev libXext.dev libXxf86vm.dev alsaLib.dev ]
+      ++ lib.optional withGLX [ libX11.dev libGLU.dev libGL.dev libXpm.dev libXext.dev libXxf86vm.dev alsa-lib.dev ]
       ++ lib.optional withSDL [ SDL2.dev ];
 
     sourceRoot = "Xonotic/source/darkplaces";
diff --git a/nixpkgs/pkgs/games/xsnow/default.nix b/nixpkgs/pkgs/games/xsnow/default.nix
index de07821c36a6..ba0fcf784f4e 100644
--- a/nixpkgs/pkgs/games/xsnow/default.nix
+++ b/nixpkgs/pkgs/games/xsnow/default.nix
@@ -1,26 +1,26 @@
-{ lib, stdenv, fetchurl, libXt, libXpm, libXext, imake, gccmakedep }:
+{ lib, stdenv, fetchurl, pkg-config, libxml2, gtk3-x11, libXt, libXpm }:
 
 stdenv.mkDerivation rec {
-
-  version = "1.42";
   pname = "xsnow";
+  version = "3.3.0";
 
   src = fetchurl {
-    url = "https://janswaal.home.xs4all.nl/Xsnow/${pname}-${version}.tar.gz";
-    sha256 = "06jnbp88wc9i9dbmy7kggplw4hzlx2bhghxijmlhkjlizgqwimyh";
+    url = "https://ratrabbit.nl/downloads/xsnow/xsnow-${version}.tar.gz";
+    sha256 = "1xnpqbamhglv7xsxzlrlpvsz6bbzlrvdpn5x2n9baww9kcrkbwjg";
   };
 
-  nativeBuildInputs = [ imake gccmakedep ];
-  buildInputs = [
-    libXt libXpm libXext
-  ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk3-x11 libxml2 libXt libXpm ];
+
+  makeFlags = [ "gamesdir=$(out)/bin" ];
 
-  makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
+  enableParallelBuilding = true;
 
-  meta = {
+  meta = with lib; {
     description = "An X-windows application that will let it snow on the root, in between and on windows";
-    homepage = "http://janswaal.home.xs4all.nl/Xsnow/";
-    license = lib.licenses.unfree;
-    maintainers = [ lib.maintainers.robberer ];
+    homepage = "https://ratrabbit.nl/ratrabbit/xsnow/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ robberer ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/games/zandronum/fmod.nix b/nixpkgs/pkgs/games/zandronum/fmod.nix
index 4b09cb170c04..59075d69c753 100644
--- a/nixpkgs/pkgs/games/zandronum/fmod.nix
+++ b/nixpkgs/pkgs/games/zandronum/fmod.nix
@@ -1,8 +1,8 @@
-{ stdenv, lib, fetchurl, alsaLib, libpulseaudio, undmg }:
+{ stdenv, lib, fetchurl, alsa-lib, libpulseaudio, undmg }:
 
 let
   bits = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "64";
-  libPath = lib.makeLibraryPath [ stdenv.cc.cc alsaLib libpulseaudio ];
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc alsa-lib libpulseaudio ];
 
 in
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/games/zod/0002-add-scaling-factor-to-source.patch b/nixpkgs/pkgs/games/zod/0002-add-scaling-factor-to-source.patch
new file mode 100644
index 000000000000..bdcaddaabbb1
--- /dev/null
+++ b/nixpkgs/pkgs/games/zod/0002-add-scaling-factor-to-source.patch
@@ -0,0 +1,161 @@
+Date: Mon, 17 May 2021 18:28:54 +0200
+Subject: [PATCH 2/2] add scaling factor to source
+
+---
+ zod_launcher_src/zod_launcherFrm.cpp | 84 ++++++++++++++--------------
+ 1 file changed, 42 insertions(+), 42 deletions(-)
+
+diff --git a/zod_launcher_src/zod_launcherFrm.cpp b/zod_launcher_src/zod_launcherFrm.cpp
+index 54bb9aa..de268f2 100644
+--- a/zod_launcher_src/zod_launcherFrm.cpp
++++ b/zod_launcher_src/zod_launcherFrm.cpp
+@@ -83,15 +83,15 @@ void zod_launcherFrm::CreateGUIControls()
+ 	//Add the custom code before or after the blocks

+ 	////GUI Items Creation Start

+ 

+-	WxButton4 = new wxButton(this, ID_WXBUTTON4, wxT("Previous Settings"), wxPoint(280, 16), wxSize(249, 25), 0, wxDefaultValidator, wxT("WxButton4"));

++	WxButton4 = new wxButton(this, ID_WXBUTTON4, wxT("Previous Settings"), wxPoint(@scalingFactor@*280,@scalingFactor@*16), wxSize(@scalingFactor@*249,@scalingFactor@*25), 0, wxDefaultValidator, wxT("WxButton4"));

+ 

+-	WxStaticText11 = new wxStaticText(this, ID_WXSTATICTEXT11, wxT("Login Password::"), wxPoint(280, 120), wxDefaultSize, 0, wxT("WxStaticText11"));

++	WxStaticText11 = new wxStaticText(this, ID_WXSTATICTEXT11, wxT("Login Password::"), wxPoint(@scalingFactor@*280,@scalingFactor@*120), wxDefaultSize, 0, wxT("WxStaticText11"));

+ 

+-	WxStaticText10 = new wxStaticText(this, ID_WXSTATICTEXT10, wxT("Login Name::"), wxPoint(280, 96), wxDefaultSize, 0, wxT("WxStaticText10"));

++	WxStaticText10 = new wxStaticText(this, ID_WXSTATICTEXT10, wxT("Login Name::"), wxPoint(@scalingFactor@*280,@scalingFactor@*96), wxDefaultSize, 0, wxT("WxStaticText10"));

+ 

+-	WxEdit9 = new wxTextCtrl(this, ID_WXEDIT9, wxT(""), wxPoint(384, 120), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit9"));

++	WxEdit9 = new wxTextCtrl(this, ID_WXEDIT9, wxT(""), wxPoint(@scalingFactor@*384,@scalingFactor@*120), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit9"));

+ 

+-	WxEdit8 = new wxTextCtrl(this, ID_WXEDIT8, wxT(""), wxPoint(384, 96), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit8"));

++	WxEdit8 = new wxTextCtrl(this, ID_WXEDIT8, wxT(""), wxPoint(@scalingFactor@*384,@scalingFactor@*96), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit8"));

+ 

+ 	WxMenuBar1 = new wxMenuBar();

+ 	wxMenu *ID_MNU_FILE_1001_Mnu_Obj = new wxMenu(0);

+@@ -103,45 +103,45 @@ void zod_launcherFrm::CreateGUIControls()
+ 	WxMenuBar1->Append(ID_MNU_ABOUT_1003_Mnu_Obj, wxT("About"));

+ 	SetMenuBar(WxMenuBar1);

+ 

+-	WxCheckBox11 = new wxCheckBox(this, ID_WXCHECKBOX11, wxT("yellow"), wxPoint(152, 208), wxSize(49, 17), 0, wxDefaultValidator, wxT("WxCheckBox11"));

++	WxCheckBox11 = new wxCheckBox(this, ID_WXCHECKBOX11, wxT("yellow"), wxPoint(@scalingFactor@*152,@scalingFactor@*208), wxSize(@scalingFactor@*49,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox11"));

+ 

+-	WxCheckBox10 = new wxCheckBox(this, ID_WXCHECKBOX10, wxT("green"), wxPoint(104, 208), wxSize(49, 17), 0, wxDefaultValidator, wxT("WxCheckBox10"));

++	WxCheckBox10 = new wxCheckBox(this, ID_WXCHECKBOX10, wxT("green"), wxPoint(@scalingFactor@*104,@scalingFactor@*208), wxSize(@scalingFactor@*49,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox10"));

+ 

+-	WxCheckBox9 = new wxCheckBox(this, ID_WXCHECKBOX9, wxT("blue"), wxPoint(56, 208), wxSize(41, 17), 0, wxDefaultValidator, wxT("WxCheckBox9"));

++	WxCheckBox9 = new wxCheckBox(this, ID_WXCHECKBOX9, wxT("blue"), wxPoint(@scalingFactor@*56,@scalingFactor@*208), wxSize(@scalingFactor@*41,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox9"));

+ 

+-	WxCheckBox8 = new wxCheckBox(this, ID_WXCHECKBOX8, wxT("red"), wxPoint(8, 208), wxSize(41, 17), 0, wxDefaultValidator, wxT("WxCheckBox8"));

++	WxCheckBox8 = new wxCheckBox(this, ID_WXCHECKBOX8, wxT("red"), wxPoint(@scalingFactor@*8,@scalingFactor@*208), wxSize(@scalingFactor@*41,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox8"));

+ 

+-	WxStaticBox5 = new wxStaticBox(this, ID_WXSTATICBOX5, wxT("AI Players"), wxPoint(0, 192), wxSize(265, 49));

++	WxStaticBox5 = new wxStaticBox(this, ID_WXSTATICBOX5, wxT("AI Players"), wxPoint(@scalingFactor@*0,@scalingFactor@*192), wxSize(@scalingFactor@*265,@scalingFactor@*49));

+ 

+-	WxCheckBox7 = new wxCheckBox(this, ID_WXCHECKBOX7, wxT("No Music"), wxPoint(376, 192), wxSize(65, 17), 0, wxDefaultValidator, wxT("WxCheckBox7"));

++	WxCheckBox7 = new wxCheckBox(this, ID_WXCHECKBOX7, wxT("No Music"), wxPoint(@scalingFactor@*376,@scalingFactor@*192), wxSize(@scalingFactor@*65,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox7"));

+ 

+-	WxCheckBox6 = new wxCheckBox(this, ID_WXCHECKBOX6, wxT("No OpenGL"), wxPoint(280, 208), wxSize(81, 17), 0, wxDefaultValidator, wxT("WxCheckBox6"));

++	WxCheckBox6 = new wxCheckBox(this, ID_WXCHECKBOX6, wxT("No OpenGL"), wxPoint(@scalingFactor@*280,@scalingFactor@*208), wxSize(@scalingFactor@*81,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox6"));

+ 

+-	WxEdit7 = new wxTextCtrl(this, ID_WXEDIT7, wxT(""), wxPoint(112, 160), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit7"));

++	WxEdit7 = new wxTextCtrl(this, ID_WXEDIT7, wxT(""), wxPoint(@scalingFactor@*112,@scalingFactor@*160), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit7"));

+ 

+-	WxStaticText9 = new wxStaticText(this, ID_WXSTATICTEXT9, wxT("Settings Filename::"), wxPoint(8, 160), wxDefaultSize, 0, wxT("WxStaticText9"));

++	WxStaticText9 = new wxStaticText(this, ID_WXSTATICTEXT9, wxT("Settings Filename::"), wxPoint(@scalingFactor@*8,@scalingFactor@*160), wxDefaultSize, 0, wxT("WxStaticText9"));

+ 

+-	WxButton3 = new wxButton(this, ID_WXBUTTON3, wxT("Launch Zod Engine"), wxPoint(208, 304), wxSize(121, 17), 0, wxDefaultValidator, wxT("WxButton3"));

++	WxButton3 = new wxButton(this, ID_WXBUTTON3, wxT("Launch Zod Engine"), wxPoint(@scalingFactor@*208,@scalingFactor@*304), wxSize(@scalingFactor@*121,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxButton3"));

+ 

+-	WxStaticText8 = new wxStaticText(this, ID_WXSTATICTEXT8, wxT("--- Command Arguments ---"), wxPoint(8, 264), wxSize(520, 17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText8"));

++	WxStaticText8 = new wxStaticText(this, ID_WXSTATICTEXT8, wxT("--- Command Arguments ---"), wxPoint(@scalingFactor@*8,@scalingFactor@*264), wxSize(@scalingFactor@*520,@scalingFactor@*17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText8"));

+ 

+-	WxEdit6 = new wxTextCtrl(this, ID_WXEDIT6, wxT(""), wxPoint(8, 280), wxSize(521, 17), 0, wxDefaultValidator, wxT("WxEdit6"));

++	WxEdit6 = new wxTextCtrl(this, ID_WXEDIT6, wxT(""), wxPoint(@scalingFactor@*8,@scalingFactor@*280), wxSize(@scalingFactor@*521,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit6"));

+ 

+-	WxStaticBox4 = new wxStaticBox(this, ID_WXSTATICBOX4, wxT("Launch Game"), wxPoint(0, 248), wxSize(537, 81));

++	WxStaticBox4 = new wxStaticBox(this, ID_WXSTATICBOX4, wxT("Launch Game"), wxPoint(@scalingFactor@*0,@scalingFactor@*248), wxSize(@scalingFactor@*537,@scalingFactor@*81));

+ 

+-	WxCheckBox5 = new wxCheckBox(this, ID_WXCHECKBOX5, wxT("Bland Cursor"), wxPoint(448, 208), wxSize(81, 17), 0, wxDefaultValidator, wxT("WxCheckBox5"));

++	WxCheckBox5 = new wxCheckBox(this, ID_WXCHECKBOX5, wxT("Bland Cursor"), wxPoint(@scalingFactor@*448,@scalingFactor@*208), wxSize(@scalingFactor@*81,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox5"));

+ 

+-	WxCheckBox4 = new wxCheckBox(this, ID_WXCHECKBOX4, wxT("No Sound"), wxPoint(448, 192), wxSize(73, 17), 0, wxDefaultValidator, wxT("WxCheckBox4"));

++	WxCheckBox4 = new wxCheckBox(this, ID_WXCHECKBOX4, wxT("No Sound"), wxPoint(@scalingFactor@*448,@scalingFactor@*192), wxSize(@scalingFactor@*73,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox4"));

+ 

+-	WxCheckBox3 = new wxCheckBox(this, ID_WXCHECKBOX3, wxT("Is Windowed"), wxPoint(280, 192), wxSize(89, 17), 0, wxDefaultValidator, wxT("WxCheckBox3"));

++	WxCheckBox3 = new wxCheckBox(this, ID_WXCHECKBOX3, wxT("Is Windowed"), wxPoint(@scalingFactor@*280,@scalingFactor@*192), wxSize(@scalingFactor@*89,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox3"));

+ 

+-	WxStaticText7 = new wxStaticText(this, ID_WXSTATICTEXT7, wxT("x"), wxPoint(448, 168), wxSize(18, 17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText7"));

++	WxStaticText7 = new wxStaticText(this, ID_WXSTATICTEXT7, wxT("x"), wxPoint(@scalingFactor@*448,@scalingFactor@*168), wxSize(@scalingFactor@*18,@scalingFactor@*17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText7"));

+ 

+-	WxEdit5 = new wxTextCtrl(this, ID_WXEDIT5, wxT("484"), wxPoint(472, 168), wxSize(57, 17), 0, wxDefaultValidator, wxT("WxEdit5"));

++	WxEdit5 = new wxTextCtrl(this, ID_WXEDIT5, wxT("484"), wxPoint(@scalingFactor@*472,@scalingFactor@*168), wxSize(@scalingFactor@*57,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit5"));

+ 

+-	WxEdit4 = new wxTextCtrl(this, ID_WXEDIT4, wxT("800"), wxPoint(384, 168), wxSize(57, 17), 0, wxDefaultValidator, wxT("WxEdit4"));

++	WxEdit4 = new wxTextCtrl(this, ID_WXEDIT4, wxT("800"), wxPoint(@scalingFactor@*384,@scalingFactor@*168), wxSize(@scalingFactor@*57,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit4"));

+ 

+-	WxStaticText6 = new wxStaticText(this, ID_WXSTATICTEXT6, wxT("Resolution::"), wxPoint(280, 168), wxDefaultSize, 0, wxT("WxStaticText6"));

++	WxStaticText6 = new wxStaticText(this, ID_WXSTATICTEXT6, wxT("Resolution::"), wxPoint(@scalingFactor@*280,@scalingFactor@*168), wxDefaultSize, 0, wxT("WxStaticText6"));

+ 

+ 	wxArrayString arrayStringFor_WxChoice1;

+ 	arrayStringFor_WxChoice1.Add(wxT("null"));

+@@ -149,42 +149,42 @@ void zod_launcherFrm::CreateGUIControls()
+ 	arrayStringFor_WxChoice1.Add(wxT("blue"));

+ 	arrayStringFor_WxChoice1.Add(wxT("green"));

+ 	arrayStringFor_WxChoice1.Add(wxT("yellow"));

+-	WxChoice1 = new wxChoice(this, ID_WXCHOICE1, wxPoint(384, 144), wxSize(145, 21), arrayStringFor_WxChoice1, 0, wxDefaultValidator, wxT("WxChoice1"));

++	WxChoice1 = new wxChoice(this, ID_WXCHOICE1, wxPoint(@scalingFactor@*384,@scalingFactor@*144), wxSize(@scalingFactor@*145,@scalingFactor@*21), arrayStringFor_WxChoice1, 0, wxDefaultValidator, wxT("WxChoice1"));

+ 	WxChoice1->SetSelection(1);

+ 

+-	WxStaticText5 = new wxStaticText(this, ID_WXSTATICTEXT5, wxT("Player Team::"), wxPoint(280, 144), wxDefaultSize, 0, wxT("WxStaticText5"));

++	WxStaticText5 = new wxStaticText(this, ID_WXSTATICTEXT5, wxT("Player Team::"), wxPoint(@scalingFactor@*280,@scalingFactor@*144), wxDefaultSize, 0, wxT("WxStaticText5"));

+ 

+-	WxEdit3 = new wxTextCtrl(this, ID_WXEDIT3, wxT(""), wxPoint(384, 72), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit3"));

++	WxEdit3 = new wxTextCtrl(this, ID_WXEDIT3, wxT(""), wxPoint(@scalingFactor@*384,@scalingFactor@*72), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit3"));

+ 

+-	WxStaticText4 = new wxStaticText(this, ID_WXSTATICTEXT4, wxT("Player Name::"), wxPoint(280, 72), wxDefaultSize, 0, wxT("WxStaticText4"));

++	WxStaticText4 = new wxStaticText(this, ID_WXSTATICTEXT4, wxT("Player Name::"), wxPoint(@scalingFactor@*280,@scalingFactor@*72), wxDefaultSize, 0, wxT("WxStaticText4"));

+ 

+-	WxStaticBox3 = new wxStaticBox(this, ID_WXSTATICBOX3, wxT("Engine Settings"), wxPoint(272, 56), wxSize(265, 185));

++	WxStaticBox3 = new wxStaticBox(this, ID_WXSTATICBOX3, wxT("Engine Settings"), wxPoint(@scalingFactor@*272,@scalingFactor@*56), wxSize(@scalingFactor@*265,@scalingFactor@*185));

+ 

+-	WxEdit2 = new wxTextCtrl(this, ID_WXEDIT2, wxT(""), wxPoint(112, 136), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit2"));

++	WxEdit2 = new wxTextCtrl(this, ID_WXEDIT2, wxT(""), wxPoint(@scalingFactor@*112,@scalingFactor@*136), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit2"));

+ 

+-	WxStaticText3 = new wxStaticText(this, ID_WXSTATICTEXT3, wxT("Map Filename::"), wxPoint(8, 136), wxDefaultSize, 0, wxT("WxStaticText3"));

++	WxStaticText3 = new wxStaticText(this, ID_WXSTATICTEXT3, wxT("Map Filename::"), wxPoint(@scalingFactor@*8,@scalingFactor@*136), wxDefaultSize, 0, wxT("WxStaticText3"));

+ 

+-	WxCheckBox2 = new wxCheckBox(this, ID_WXCHECKBOX2, wxT("Filename is a Maplist"), wxPoint(96, 112), wxSize(121, 17), 0, wxDefaultValidator, wxT("WxCheckBox2"));

++	WxCheckBox2 = new wxCheckBox(this, ID_WXCHECKBOX2, wxT("Filename is a Maplist"), wxPoint(@scalingFactor@*96,@scalingFactor@*112), wxSize(@scalingFactor@*121,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox2"));

+ 

+-	WxCheckBox1 = new wxCheckBox(this, ID_WXCHECKBOX1, wxT("Is Dedicated"), wxPoint(8, 112), wxSize(89, 17), 0, wxDefaultValidator, wxT("WxCheckBox1"));

++	WxCheckBox1 = new wxCheckBox(this, ID_WXCHECKBOX1, wxT("Is Dedicated"), wxPoint(@scalingFactor@*8,@scalingFactor@*112), wxSize(@scalingFactor@*89,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxCheckBox1"));

+ 

+-	WxStaticText2 = new wxStaticText(this, ID_WXSTATICTEXT2, wxT("----- OR -----"), wxPoint(8, 96), wxSize(249, 17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText2"));

++	WxStaticText2 = new wxStaticText(this, ID_WXSTATICTEXT2, wxT("----- OR -----"), wxPoint(@scalingFactor@*8,@scalingFactor@*96), wxSize(@scalingFactor@*249,@scalingFactor@*17), wxALIGN_CENTRE | wxST_NO_AUTORESIZE, wxT("WxStaticText2"));

+ 

+-	WxStaticText1 = new wxStaticText(this, ID_WXSTATICTEXT1, wxT("Connect Address::"), wxPoint(8, 72), wxDefaultSize, 0, wxT("WxStaticText1"));

++	WxStaticText1 = new wxStaticText(this, ID_WXSTATICTEXT1, wxT("Connect Address::"), wxPoint(@scalingFactor@*8,@scalingFactor@*72), wxDefaultSize, 0, wxT("WxStaticText1"));

+ 

+-	WxEdit1 = new wxTextCtrl(this, ID_WXEDIT1, wxT(""), wxPoint(112, 72), wxSize(145, 17), 0, wxDefaultValidator, wxT("WxEdit1"));

++	WxEdit1 = new wxTextCtrl(this, ID_WXEDIT1, wxT(""), wxPoint(@scalingFactor@*112,@scalingFactor@*72), wxSize(@scalingFactor@*145,@scalingFactor@*17), 0, wxDefaultValidator, wxT("WxEdit1"));

+ 

+-	WxButton2 = new wxButton(this, ID_WXBUTTON2, wxT("Nighsoft Server"), wxPoint(136, 16), wxSize(121, 25), 0, wxDefaultValidator, wxT("WxButton2"));

++	WxButton2 = new wxButton(this, ID_WXBUTTON2, wxT("Nighsoft Server"), wxPoint(@scalingFactor@*136,@scalingFactor@*16), wxSize(@scalingFactor@*121,@scalingFactor@*25), 0, wxDefaultValidator, wxT("WxButton2"));

+ 

+-	WxButton1 = new wxButton(this, ID_WXBUTTON1, wxT("Local Game"), wxPoint(8, 16), wxSize(121, 25), 0, wxDefaultValidator, wxT("WxButton1"));

++	WxButton1 = new wxButton(this, ID_WXBUTTON1, wxT("Local Game"), wxPoint(@scalingFactor@*8,@scalingFactor@*16), wxSize(@scalingFactor@*121,@scalingFactor@*25), 0, wxDefaultValidator, wxT("WxButton1"));

+ 

+-	WxStaticBox2 = new wxStaticBox(this, ID_WXSTATICBOX2, wxT("Connection Settings"), wxPoint(0, 56), wxSize(265, 129));

++	WxStaticBox2 = new wxStaticBox(this, ID_WXSTATICBOX2, wxT("Connection Settings"), wxPoint(@scalingFactor@*0,@scalingFactor@*56), wxSize(@scalingFactor@*265,@scalingFactor@*129));

+ 

+-	WxStaticBox1 = new wxStaticBox(this, ID_WXSTATICBOX1, wxT("Preset Settings"), wxPoint(0, 0), wxSize(537, 49));

++	WxStaticBox1 = new wxStaticBox(this, ID_WXSTATICBOX1, wxT("Preset Settings"), wxPoint(@scalingFactor@*0,@scalingFactor@*0), wxSize(@scalingFactor@*537,@scalingFactor@*49));

+ 

+ 	SetTitle(wxT("The Zod Launcher"));

+ 	SetIcon(wxNullIcon);

+-	SetSize(8,8,545,376);

++	SetSize(8,8,@scalingFactor@*545,@scalingFactor@*376);

+ 	Center();

+ 	

+ 	////GUI Items Creation End

+-- 
+2.29.3
+
diff --git a/nixpkgs/pkgs/games/zod/default.nix b/nixpkgs/pkgs/games/zod/default.nix
index c358e599924a..f7d7a5612d82 100644
--- a/nixpkgs/pkgs/games/zod/default.nix
+++ b/nixpkgs/pkgs/games/zod/default.nix
@@ -1,46 +1,110 @@
-{ lib, fetchurl, stdenv, unrar, unzip, SDL, SDL_image, SDL_ttf, SDL_mixer
-, libmysqlclient, makeWrapper }:
-
-stdenv.mkDerivation {
-  name = "zod-engine-2011-03-18";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/zod/zod_src-2011-03-18.zip";
-    sha256 = "00ny7a1yfn9zgl7q1ys27qafwc92dzxv07wjxl8nxa4f98al2g4n";
+{ lib
+, config
+, fetchzip
+, stdenv
+, SDL
+, SDL_image
+, SDL_ttf
+, SDL_mixer
+, libmysqlclient
+, wxGTK
+, symlinkJoin
+, runCommandLocal
+, makeWrapper
+, coreutils
+, scalingFactor ? 2 # this is to resize the fixed-size zod_launcher window
+, substituteAll
+}:
+let
+  version = "2011-09-06";
+  name = "zod-engine-${version}";
+  src = fetchzip {
+    url = "mirror://sourceforge/zod/linux_releases/zod_linux-${version}.tar.gz";
+    sha256 = "017v96aflrv07g8j8zk9mq8f8rqxl5228rjff5blq8dxpsv1sx7h";
   };
-
-  srcAssets = fetchurl {
-    url = "mirror://sourceforge/zod/zod_assets-2011-03-12.rar";
-    sha256 = "0gmg4ppr4y6ck04mandlp2fmdcyssmck999m012jx5v1rm57g2hn";
-  };
-
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+  buildInputs = [
+    SDL
+    SDL_image
+    SDL_ttf
+    SDL_mixer
+    libmysqlclient
+    wxGTK
+    coreutils
+  ];
   hardeningDisable = [ "format" ];
-
-  unpackPhase = ''
-    mkdir src
-    pushd src
-    unzip $src
-    popd
-    sourceRoot=`pwd`/src
-  '';
-
-  nativeBuildInputs = [ makeWrapper unrar unzip ];
-  buildInputs = [ SDL SDL_image SDL_ttf SDL_mixer libmysqlclient ];
-
   NIX_LDFLAGS = "-L${libmysqlclient}/lib/mysql";
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/zod
-    pushd $out/share/zod
-    unrar x $srcAssets
-    popd
-    cp zod $out/bin
-    wrapProgram $out/bin/zod --run "cd $out/share/zod"
-  '';
-
-  meta = {
-    description = "Multiplayer remake of ZED";
-    homepage = "http://zod.sourceforge.net/";
-    license = lib.licenses.gpl3Plus; /* Says the web */
+  zod_engine = stdenv.mkDerivation {
+    inherit name version src nativeBuildInputs buildInputs hardeningDisable NIX_LDFLAGS;
+    pname = "${name}-engine";
+    enableParallelBuilding = true;
+    preBuild = "cd zod_src";
+    installPhase = ''
+      mkdir -p $out/bin
+      install -m755 zod $out/bin/
+      wrapProgram $out/bin/zod --run "cd ${zod_assets}/usr/lib/commander-zod"
+    '';
   };
-}
+  zod_map_editor = stdenv.mkDerivation {
+    inherit name version src nativeBuildInputs buildInputs hardeningDisable NIX_LDFLAGS;
+    pname = "${name}-map_editor";
+    enableParallelBuilding = true;
+    preBuild = "cd zod_src";
+    makeFlags = [ "map_editor" ];
+    installPhase = ''
+      mkdir -p $out/bin
+      install -m755 zod_map_editor $out/bin
+      wrapProgram $out/bin/zod_map_editor --run "cd ${zod_assets}/usr/lib/commander-zod"
+    '';
+  };
+  zod_launcher = stdenv.mkDerivation {
+      inherit name version src nativeBuildInputs buildInputs zod_engine zod_map_editor;
+      pname = "${name}-launcher";
+      # This is necessary because the zod_launcher has terrible fixed-width window
+      # the Idea is to apply the scalingFactor to all positions and sizes and I tested 1,2,3 and 4
+      # 2,3,4 look acceptable on my 4k monitor and 1 is unreadable.
+      # also the ./ in the run command is removed to have easier time starting the game
+      patches = [
+        (substituteAll {
+          inherit scalingFactor;
+          src=./0002-add-scaling-factor-to-source.patch;
+        })
+      ];
+      postPatch = ''
+        substituteInPlace zod_launcher_src/zod_launcherFrm.cpp \
+          --replace 'message = wxT("./zod");' 'message = wxT("zod");'
+      '';
+      preBuild = "cd zod_launcher_src";
+      installPhase = ''
+        mkdir -p $out/bin
+        install -m755 zod_launcher $out/bin
+      '';
+  };
+  zod_assets = runCommandLocal "${name}-assets" {} ''
+    mkdir -p $out/usr/lib/commander-zod{,blank_maps}
+    cp -r ${src}/assets $out/usr/lib/commander-zod/assets
+    for i in ${src}/*.map ${src}/*.txt; do
+      install -m644 $i $out/usr/lib/commander-zod
+    done
+    for map in ${src}/blank_maps/*; do
+      install -m644 $map $out/usr/lib/commander-zod/blank_maps
+    done
+  '';
+in
+  symlinkJoin {
+    inherit name;
+    paths = [
+      zod_engine
+      zod_launcher
+      zod_map_editor
+      zod_assets
+    ];
+    meta = with lib; {
+      description = "Multiplayer remake of ZED";
+      homepage = "http://zod.sourceforge.net/";
+      maintainers = with maintainers; [ zeri ];
+      license = licenses.gpl3Plus; /* Says the website */
+    };
+  }
diff --git a/nixpkgs/pkgs/misc/apulse/default.nix b/nixpkgs/pkgs/misc/apulse/default.nix
index 085ad7902f5d..95beb8bcdf3f 100644
--- a/nixpkgs/pkgs/misc/apulse/default.nix
+++ b/nixpkgs/pkgs/misc/apulse/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib, cmake, pkg-config, glib
+{ lib, stdenv, fetchFromGitHub, alsa-lib, cmake, pkg-config, glib
 , tracingSupport ? true, logToStderr ? true }:
 
 let oz = x: if x then "1" else "0"; in
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ alsaLib glib ];
+  buildInputs = [ alsa-lib glib ];
 
   cmakeFlags = [
     "-DWITH_TRACE=${oz tracingSupport}"
diff --git a/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix b/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix
index 6ef92e170eb4..f3e2f0dca239 100644
--- a/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix
+++ b/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix
@@ -6,7 +6,7 @@ let
             , platform ? null
             , extraMakeFlags ? []
             , extraMeta ? {}
-            , version ? "2.4"
+            , version ? "2.5"
             , ... } @ args:
            stdenv.mkDerivation ({
 
@@ -17,7 +17,7 @@ let
       owner = "ARM-software";
       repo = "arm-trusted-firmware";
       rev = "v${version}";
-      sha256 = "12k0n79j156bdzqws18kpbli04kn00nh6dy42pjv6gakqrkx9px3";
+      sha256 = "sha256-qfzZ3aVYYn0ZcZgKcLdB13B+eweDebLSBA3HTqdPdv0=";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/nixpkgs/pkgs/misc/autotiling/default.nix b/nixpkgs/pkgs/misc/autotiling/default.nix
index b104f359363b..56e607c9d604 100644
--- a/nixpkgs/pkgs/misc/autotiling/default.nix
+++ b/nixpkgs/pkgs/misc/autotiling/default.nix
@@ -1,12 +1,14 @@
-{ lib, buildPythonApplication, fetchPypi, i3ipc, importlib-metadata }:
+{ lib, buildPythonApplication, fetchFromGitHub, i3ipc, importlib-metadata }:
 
 buildPythonApplication rec {
   pname = "autotiling";
-  version = "1.1";
+  version = "1.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0hwvy9bxwv9fakqqiyrkmpckxgm0z85c240p84ibdhja9sm086v0";
+  src = fetchFromGitHub {
+    owner = "nwg-piotr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ih8yd1gankjxn88gd88vxs6f1cniyi04z25jz4nsgqi9snz65v4";
   };
 
   propagatedBuildInputs = [ i3ipc importlib-metadata ];
@@ -16,7 +18,7 @@ buildPythonApplication rec {
     homepage = "https://github.com/nwg-piotr/autotiling";
     description = "Script for sway and i3 to automatically switch the horizontal / vertical window split orientation";
     license = licenses.gpl3Plus;
-    platforms= platforms.linux;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ artturin ];
   };
 }
diff --git a/nixpkgs/pkgs/misc/deepspeech/default.nix b/nixpkgs/pkgs/misc/deepspeech/default.nix
deleted file mode 100644
index eddeea6eb542..000000000000
--- a/nixpkgs/pkgs/misc/deepspeech/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, lib, fetchurl, autoPatchelfHook }:
-
-stdenv.mkDerivation rec {
-  pname = "deepspeech";
-  version = "0.9.3";
-
-  src = fetchurl {
-    url = "https://github.com/mozilla/DeepSpeech/releases/download/v${version}/native_client.amd64.cpu.linux.tar.xz";
-    sha256 = "1qy2gspprcxi76jk06ljp028xl0wkk1m3mqaxyf5qbhhfbvvpfap";
-  };
-  setSourceRoot = "sourceRoot=`pwd`";
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-  ];
-
-  buildInputs = [
-    stdenv.cc.cc.lib
-  ];
-
-  installPhase = ''
-    install -D deepspeech $out/bin/deepspeech
-    install -D deepspeech.h $out/include/deepspeech.h
-    install -D libdeepspeech.so $out/lib/libdeepspeech.so
-  '';
-
-  meta = with lib; {
-    homepage = https://github.com/mozilla/DeepSpeech;
-    description = "Open source embedded (offline, on-device) speech-to-text engine, which can run in real time on broad range of devices";
-    license = licenses.mpl20;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ rvolosatovs ];
-  };
-}
diff --git a/nixpkgs/pkgs/misc/drivers/epson-alc1100/default.nix b/nixpkgs/pkgs/misc/drivers/epson-alc1100/default.nix
index 2a0fd92867ee..5551f734138c 100644
--- a/nixpkgs/pkgs/misc/drivers/epson-alc1100/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/epson-alc1100/default.nix
@@ -13,8 +13,8 @@ in
     inherit version;
 
     src = fetchurl {
-      url = "http://a1227.g.akamai.net/f/1227/40484/7d/download.ebz.epson.net/dsc/f/01/00/01/58/65/cd71929d2bf41ebf7e96f68fa9f1279556545ef1/Epson-ALC1100-filter-1.2.tar.gz";
-      sha256 = "0q0bf4dfm4v69l7xg6sgkh7rwb0h77i8j9kplq1dfkd208g7y81p";
+      url = "https://download3.ebz.epson.net/dsc/f/03/00/11/33/07/4027e99517b5c388d444b8444d719b4b77f7e9db/Epson-ALC1100-filter-1.2.tar.gz";
+      sha256 = "1dfw75a3kj2aa4iicvlk9kz3jarrsikpnpd4cdpw79scfc5mwm2p";
     };
 
     patches = [ ./cups-data-dir.patch ./ppd.patch ];
diff --git a/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix b/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
index 7302cfb25bcf..6e4a38ed171e 100644
--- a/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, foomatic-filters, bc, unzip, ghostscript, systemd, vim, time }:
+{ lib, stdenv, fetchurl, foomatic-filters, bc, ghostscript, systemd, vim, time }:
 
 stdenv.mkDerivation rec {
   pname = "foo2zjs";
@@ -9,7 +9,6 @@ stdenv.mkDerivation rec {
     sha256 = "14x3wizvncdy0xgvmcx541qanwb7bg76abygqy17bxycn1zh5r1x";
   };
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [ foomatic-filters bc ghostscript systemd vim ];
 
   patches = [ ./no-hardcode-fw.diff ];
diff --git a/nixpkgs/pkgs/misc/drivers/hplip/3.18.5.nix b/nixpkgs/pkgs/misc/drivers/hplip/3.18.5.nix
index c62161c96f80..3c2f8fa2a08f 100644
--- a/nixpkgs/pkgs/misc/drivers/hplip/3.18.5.nix
+++ b/nixpkgs/pkgs/misc/drivers/hplip/3.18.5.nix
@@ -75,7 +75,7 @@ python2Packages.buildPythonApplication {
     pygobject2
     reportlab
     usbutils
-    sip
+    sip_4
   ] ++ lib.optionals withQt5 [
     pyqt5
   ];
diff --git a/nixpkgs/pkgs/misc/drivers/hplip/default.nix b/nixpkgs/pkgs/misc/drivers/hplip/default.nix
index 6a7eb35ae52b..98a67a75f0bc 100644
--- a/nixpkgs/pkgs/misc/drivers/hplip/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/hplip/default.nix
@@ -36,13 +36,13 @@ let
     x86_64-linux = "x86_64";
     armv6l-linux = "arm32";
     armv7l-linux = "arm32";
-    aarch64-linux = "aarch64";
+    aarch64-linux = "arm64";
   };
 
   hplipArch = hplipPlatforms.${stdenv.hostPlatform.system}
     or (throw "HPLIP not supported on ${stdenv.hostPlatform.system}");
 
-  pluginArches = [ "x86_32" "x86_64" "arm32" "aarch64" ];
+  pluginArches = [ "x86_32" "x86_64" "arm32" "arm64" ];
 
 in
 
@@ -79,7 +79,7 @@ python3Packages.buildPythonApplication {
     pygobject3
     reportlab
     usbutils
-    sip
+    sip_4
     dbus-python
   ] ++ lib.optionals withQt5 [
     pyqt5
diff --git a/nixpkgs/pkgs/misc/drivers/spacenavd/configure-cfgfile-path.patch b/nixpkgs/pkgs/misc/drivers/spacenavd/configure-cfgfile-path.patch
new file mode 100644
index 000000000000..268282e96eae
--- /dev/null
+++ b/nixpkgs/pkgs/misc/drivers/spacenavd/configure-cfgfile-path.patch
@@ -0,0 +1,63 @@
+diff --git a/src/spnavd.c b/src/spnavd.c
+index 2d4eca6..a5227ed 100644
+--- a/src/spnavd.c
++++ b/src/spnavd.c
+@@ -27,6 +27,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #include <sys/select.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <sys/types.h>
++#include <pwd.h>
+ #include "spnavd.h"
+ #include "logger.h"
+ #include "dev.h"
+@@ -47,13 +49,39 @@ static void handle_events(fd_set *rset);
+ static void sig_handler(int s);
+ static char *fix_path(char *str);
+ 
+-static char *cfgfile = DEF_CFGFILE;
++static char* config_path;
++char* cfg_path()
++{
++	char* buf;
++	if((buf = getenv("XDG_CONFIG_HOME"))) {
++		if(config_path == NULL) {
++			config_path = malloc(strlen(buf) + strlen("/spnavrc") + 1);
++			if ( config_path != NULL) {
++				sprintf(config_path, "%s/spnavrc", buf);
++			}
++		};
++		return config_path;
++	} else {
++		if (!(buf = getenv("HOME"))) {
++			struct passwd *pw = getpwuid(getuid());
++			buf = pw->pw_dir;
++		}
++		config_path = malloc(strlen(buf) + strlen("/.config/spnavrc") + 1);
++		if ( config_path != NULL) {
++			sprintf(config_path, "%s/.config/spnavrc", buf);
++		}
++		return config_path;
++	}
++}
++
++static char *cfgfile = NULL;
+ static char *logfile = DEF_LOGFILE;
+ static char *pidpath = NULL;
+ 
+ int main(int argc, char **argv)
+ {
+ 	int i, pid, ret, become_daemon = 1;
++	cfgfile = cfg_path();
+ 
+ 	for(i=1; i<argc; i++) {
+ 		if(argv[i][0] == '-') {
+@@ -247,7 +275,7 @@ static void print_usage(const char *argv0)
+ 	printf("usage: %s [options]\n", argv0);
+ 	printf("options:\n");
+ 	printf(" -d: do not daemonize\n");
+-	printf(" -c <file>: config file path (default: " DEF_CFGFILE ")\n");
++	printf(" -c <file>: config file path (default: %s)\n", cfg_path());
+ 	printf(" -l <file>|syslog: log file path or log to syslog (default: " DEF_LOGFILE ")\n");
+ 	printf(" -v: verbose output\n");
+ 	printf(" -V,-version: print version number and exit\n");
diff --git a/nixpkgs/pkgs/misc/drivers/spacenavd/configure-pidfile-path.patch b/nixpkgs/pkgs/misc/drivers/spacenavd/configure-pidfile-path.patch
new file mode 100644
index 000000000000..bc2cad9784cb
--- /dev/null
+++ b/nixpkgs/pkgs/misc/drivers/spacenavd/configure-pidfile-path.patch
@@ -0,0 +1,82 @@
+diff --git a/src/spnavd.c b/src/spnavd.c
+index 03080da..2d4eca6 100644
+--- a/src/spnavd.c
++++ b/src/spnavd.c
+@@ -42,12 +42,14 @@ static void cleanup(void);
+ static void daemonize(void);
+ static int write_pid_file(void);
+ static int find_running_daemon(void);
++static char *pidfile_path(void);
+ static void handle_events(fd_set *rset);
+ static void sig_handler(int s);
+ static char *fix_path(char *str);
+ 
+ static char *cfgfile = DEF_CFGFILE;
+ static char *logfile = DEF_LOGFILE;
++static char *pidpath = NULL;
+ 
+ int main(int argc, char **argv)
+ {
+@@ -270,7 +272,7 @@ static void cleanup(void)
+ 		remove_device(tmp);
+ 	}
+ 
+-	remove(PIDFILE);
++	remove(pidfile_path());
+ }
+ 
+ static void daemonize(void)
+@@ -314,7 +316,7 @@ static int write_pid_file(void)
+ 	FILE *fp;
+ 	int pid = getpid();
+ 
+-	if(!(fp = fopen(PIDFILE, "w"))) {
++	if(!(fp = fopen(pidfile_path(), "w"))) {
+ 		return -1;
+ 	}
+ 	fprintf(fp, "%d\n", pid);
+@@ -329,7 +331,7 @@ static int find_running_daemon(void)
+ 	struct sockaddr_un addr;
+ 
+ 	/* try to open the pid-file */
+-	if(!(fp = fopen(PIDFILE, "r"))) {
++	if(!(fp = fopen(pidfile_path(), "r"))) {
+ 		return -1;
+ 	}
+ 	if(fscanf(fp, "%d\n", &pid) != 1) {
+@@ -356,6 +358,22 @@ static int find_running_daemon(void)
+ 	return pid;
+ }
+ 
++char *pidfile_path(void)
++{
++	char *xdg_runtime_dir;
++	if((xdg_runtime_dir = getenv("XDG_RUNTIME_DIR"))) {
++		if ( pidpath == NULL ) {
++			pidpath = malloc(strlen(xdg_runtime_dir) + strlen("/spnavd.pid") + 1);
++			if ( pidpath != NULL ) {
++				sprintf(pidpath, "%s/spnavd.pid", xdg_runtime_dir);
++			}
++		};
++		return pidpath;
++	} else {
++		return DEFAULT_PIDFILE;
++	}
++}
++
+ static void handle_events(fd_set *rset)
+ {
+ 	int dev_fd, hotplug_fd;
+diff --git a/src/spnavd.h b/src/spnavd.h
+index 2d1c48b..17d22d3 100644
+--- a/src/spnavd.h
++++ b/src/spnavd.h
+@@ -26,7 +26,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #define DEF_CFGFILE		"/etc/spnavrc"
+ #define DEF_LOGFILE		"/var/log/spnavd.log"
+ 
+-#define PIDFILE		"/var/run/spnavd.pid"
++#define DEFAULT_PIDFILE		"/run/spnavd.pid"
+ #define DEFAULT_SOCK_NAME	"/run/spnav.sock"
+ #define SYSLOG_ID	"spnavd"
+ 
diff --git a/nixpkgs/pkgs/misc/drivers/spacenavd/configure-socket-path.patch b/nixpkgs/pkgs/misc/drivers/spacenavd/configure-socket-path.patch
new file mode 100644
index 000000000000..c59987dcc051
--- /dev/null
+++ b/nixpkgs/pkgs/misc/drivers/spacenavd/configure-socket-path.patch
@@ -0,0 +1,118 @@
+diff --git a/src/proto_unix.c b/src/proto_unix.c
+index 998f234..d38452c 100644
+--- a/src/proto_unix.c
++++ b/src/proto_unix.c
+@@ -36,11 +36,14 @@ enum {
+ 
+ static int lsock = -1;
+ 
++static char *spath = NULL;
++
+ int init_unix(void)
+ {
+ 	int s;
+ 	mode_t prev_umask;
+ 	struct sockaddr_un addr;
++	char *sock_path;
+ 
+ 	if(lsock >= 0) return 0;
+ 
+@@ -49,16 +52,18 @@ int init_unix(void)
+ 		return -1;
+ 	}
+ 
+-	unlink(SOCK_NAME);	/* in case it already exists */
++	sock_path = socket_path();
++
++	unlink(sock_path);	/* in case it already exists */
+ 
+ 	memset(&addr, 0, sizeof addr);
+ 	addr.sun_family = AF_UNIX;
+-	strcpy(addr.sun_path, SOCK_NAME);
++	strcpy(addr.sun_path, sock_path);
+ 
+ 	prev_umask = umask(0);
+ 
+ 	if(bind(s, (struct sockaddr*)&addr, sizeof addr) == -1) {
+-		logmsg(LOG_ERR, "failed to bind unix socket: %s: %s\n", SOCK_NAME, strerror(errno));
++		logmsg(LOG_ERR, "failed to bind unix socket: %s: %s\n", sock_path, strerror(errno));
+ 		close(s);
+ 		return -1;
+ 	}
+@@ -68,7 +73,7 @@ int init_unix(void)
+ 	if(listen(s, 8) == -1) {
+ 		logmsg(LOG_ERR, "listen failed: %s\n", strerror(errno));
+ 		close(s);
+-		unlink(SOCK_NAME);
++		unlink(sock_path);
+ 		return -1;
+ 	}
+ 
+@@ -82,7 +87,7 @@ void close_unix(void)
+ 		close(lsock);
+ 		lsock = -1;
+ 
+-		unlink(SOCK_NAME);
++		unlink(socket_path());
+ 	}
+ }
+ 
+@@ -173,3 +178,19 @@ int handle_uevents(fd_set *rset)
+ 
+ 	return 0;
+ }
++
++char *socket_path(void)
++{
++	char *xdg_runtime_dir;
++	if((xdg_runtime_dir = getenv("XDG_RUNTIME_DIR"))) {
++		if ( spath == NULL ) {
++			spath = malloc(strlen(xdg_runtime_dir) + strlen("/spnav.sock") + 1);
++			if ( spath != NULL ) {
++				sprintf(spath, "%s/spnav.sock", xdg_runtime_dir);
++			}
++		};
++		return spath;
++	} else {
++		return DEFAULT_SOCK_NAME;
++	}
++}
+diff --git a/src/proto_unix.h b/src/proto_unix.h
+index 045b379..ec4509c 100644
+--- a/src/proto_unix.h
++++ b/src/proto_unix.h
+@@ -23,6 +23,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #include "event.h"
+ #include "client.h"
+ 
++char *socket_path(void);
+ int init_unix(void);
+ void close_unix(void);
+ int get_unix_socket(void);
+diff --git a/src/spnavd.c b/src/spnavd.c
+index cbea191..03080da 100644
+--- a/src/spnavd.c
++++ b/src/spnavd.c
+@@ -344,7 +344,7 @@ static int find_running_daemon(void)
+ 	}
+ 	memset(&addr, 0, sizeof addr);
+ 	addr.sun_family = AF_UNIX;
+-	strncpy(addr.sun_path, SOCK_NAME, sizeof addr.sun_path);
++	strncpy(addr.sun_path, socket_path(), sizeof addr.sun_path);
+ 
+ 	if(connect(s, (struct sockaddr*)&addr, sizeof addr) == -1) {
+ 		close(s);
+diff --git a/src/spnavd.h b/src/spnavd.h
+index fa0a916..2d1c48b 100644
+--- a/src/spnavd.h
++++ b/src/spnavd.h
+@@ -26,8 +26,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #define DEF_CFGFILE		"/etc/spnavrc"
+ #define DEF_LOGFILE		"/var/log/spnavd.log"
+ 
+-#define SOCK_NAME	"/var/run/spnav.sock"
+ #define PIDFILE		"/var/run/spnavd.pid"
++#define DEFAULT_SOCK_NAME	"/run/spnav.sock"
+ #define SYSLOG_ID	"spnavd"
+ 
+ /* Multiple devices support */
diff --git a/nixpkgs/pkgs/misc/drivers/spacenavd/default.nix b/nixpkgs/pkgs/misc/drivers/spacenavd/default.nix
index 734b2229c877..5cc1b4601332 100644
--- a/nixpkgs/pkgs/misc/drivers/spacenavd/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/spacenavd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, libX11 }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, libX11, IOKit }:
 
 stdenv.mkDerivation rec {
   version = "0.8";
@@ -11,9 +11,29 @@ stdenv.mkDerivation rec {
     sha256 = "1zz0cm5cgvp9s5n4nzksl8rb11c7sw214bdafzra74smvqfjcjcf";
   };
 
-  buildInputs = [ libX11 ];
+  patches = [
+    # Fixes Darwin: https://github.com/FreeSpacenav/spacenavd/pull/38
+    (fetchpatch {
+      url = "https://github.com/FreeSpacenav/spacenavd/commit/d6a25d5c3f49b9676d039775efc8bf854737c43c.patch";
+      sha256 = "02pdgcvaqc20qf9hi3r73nb9ds7yk2ps9nnxaj0x9p50xjnhfg5c";
+    })
+    # Changes the socket path from /run/spnav.sock to $XDG_RUNTIME_DIR/spnav.sock
+    # to allow for a user service
+    ./configure-socket-path.patch
+    # Changes the pidfile path from /run/spnavd.pid to $XDG_RUNTIME_DIR/spnavd.pid
+    # to allow for a user service
+    ./configure-pidfile-path.patch
+    # Changes the config file path from /etc/spnavrc to $XDG_CONFIG_HOME/spnavrc or $HOME/.config/spnavrc
+    # to allow for a user service
+    ./configure-cfgfile-path.patch
+  ];
 
-  configureFlags = [ "--disable-debug"];
+  buildInputs = [ libX11 ]
+    ++ lib.optional stdenv.isDarwin IOKit;
+
+  configureFlags = [ "--disable-debug" ];
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   meta = with lib; {
     homepage = "http://spacenav.sourceforge.net/";
diff --git a/nixpkgs/pkgs/misc/emulators/atari++/default.nix b/nixpkgs/pkgs/misc/emulators/atari++/default.nix
index 2019820510ef..5e35dcaebd0f 100644
--- a/nixpkgs/pkgs/misc/emulators/atari++/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/atari++/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libSM, libX11, libICE, SDL, alsaLib, gcc-unwrapped, libXext }:
+{ lib, stdenv, fetchurl, libSM, libX11, libICE, SDL, alsa-lib, gcc-unwrapped, libXext }:
 
 stdenv.mkDerivation rec {
   pname = "atari++";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "04fm2ic2qi4a52mi72wcaxyrpll4k8vvchx3qrik8rhg3jrxgm47";
   };
 
-  buildInputs = [ libSM libX11 SDL libICE alsaLib gcc-unwrapped libXext ];
+  buildInputs = [ libSM libX11 SDL libICE alsa-lib gcc-unwrapped libXext ];
 
   postFixup = ''
     patchelf --set-rpath ${lib.makeLibraryPath buildInputs} "$out/bin/atari++"
diff --git a/nixpkgs/pkgs/misc/emulators/atari800/default.nix b/nixpkgs/pkgs/misc/emulators/atari800/default.nix
index 53f1009cfad5..37e0d83f1406 100644
--- a/nixpkgs/pkgs/misc/emulators/atari800/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/atari800/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook
-, unzip, zlib, SDL, readline, libGLU, libGL, libX11 }:
+, zlib, SDL, readline, libGLU, libGL, libX11 }:
 
 with lib;
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "15l08clqqayi9izrgsz9achan6gl4x57wqsc8mad3yn0xayzz3qy";
   };
 
-  nativeBuildInputs = [ autoreconfHook unzip ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   buildInputs = [ zlib SDL readline libGLU libGL libX11 ];
 
diff --git a/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix b/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix
index 92c42a1d3943..7a3f61fd8dc2 100644
--- a/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/attract-mode/default.nix
@@ -1,4 +1,4 @@
-{ expat, fetchFromGitHub, ffmpeg_3, fontconfig, freetype, libarchive, libjpeg
+{ expat, fetchFromGitHub, ffmpeg, fontconfig, freetype, libarchive, libjpeg
 , libGLU, libGL, openal, pkg-config, sfml, lib, stdenv, zlib
 }:
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    expat ffmpeg_3 fontconfig freetype libarchive libjpeg libGLU libGL openal sfml zlib
+    expat ffmpeg fontconfig freetype libarchive libjpeg libGLU libGL openal sfml zlib
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/misc/emulators/caprice32/default.nix b/nixpkgs/pkgs/misc/emulators/caprice32/default.nix
index 3e20ba616423..6c2932f7e10b 100644
--- a/nixpkgs/pkgs/misc/emulators/caprice32/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/caprice32/default.nix
@@ -5,6 +5,9 @@ stdenv.mkDerivation rec {
 
   pname = "caprice32";
   version = "4.6.0";
+  # NOTE: When bumping version beyond 4.6.0, you likely need to remove
+  #       string.patch below. The fix of this patch has already been
+  #       done upstream but is not yet part of a release
 
   src = fetchFromGitHub {
     repo = "caprice32";
@@ -16,6 +19,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ desktop-file-utils pkg-config ];
   buildInputs = [ libpng SDL freetype zlib ];
 
+  patches = [ ./string.patch ];
+
   makeFlags = [
     "APP_PATH=${placeholder "out"}/share/caprice32"
     "RELEASE=1"
diff --git a/nixpkgs/pkgs/misc/emulators/caprice32/string.patch b/nixpkgs/pkgs/misc/emulators/caprice32/string.patch
new file mode 100644
index 000000000000..fabbbd80d5d3
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/caprice32/string.patch
@@ -0,0 +1,12 @@
+diff --git a/src/configuration.h b/src/configuration.h
+index 34fd690..97fb0e5 100644
+--- a/src/configuration.h
++++ b/src/configuration.h
+@@ -2,6 +2,7 @@
+ #define CONFIGURATION_H
+ 
+ #include <map>
++#include <string>
+ 
+ namespace config
+ {
diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix b/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix
index 246dbb7dd350..dddcc3a74682 100644
--- a/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix
+++ b/nixpkgs/pkgs/misc/emulators/cdemu/analyzer.nix
@@ -1,5 +1,5 @@
 { callPackage, makeWrapper, gobject-introspection, cmake
-, python3Packages, gtk3, glib, libxml2, gnuplot, gnome3, gdk-pixbuf, librsvg, intltool, libmirage }:
+, python3Packages, gtk3, glib, libxml2, gnuplot, gnome, gdk-pixbuf, librsvg, intltool, libmirage }:
 let pkg = import ./base.nix {
   version = "3.2.3";
   pkgName = "image-analyzer";
@@ -7,7 +7,7 @@ let pkg = import ./base.nix {
 };
 in callPackage pkg {
   buildInputs = [ glib gtk3 libxml2 gnuplot libmirage makeWrapper
-                  gnome3.adwaita-icon-theme gdk-pixbuf librsvg intltool
+                  gnome.adwaita-icon-theme gdk-pixbuf librsvg intltool
                   python3Packages.python python3Packages.pygobject3 python3Packages.matplotlib ];
   drvParams = {
     nativeBuildInputs = [ gobject-introspection cmake ];
diff --git a/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix b/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix
index 599531950a21..8ce84ccae204 100644
--- a/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix
+++ b/nixpkgs/pkgs/misc/emulators/cdemu/gui.nix
@@ -1,5 +1,5 @@
 { callPackage, makeWrapper, gobject-introspection, cmake
-, python3Packages, gtk3, glib, libnotify, intltool, gnome3, gdk-pixbuf, librsvg }:
+, python3Packages, gtk3, glib, libnotify, intltool, gnome, gdk-pixbuf, librsvg }:
 let
   pkg = import ./base.nix {
     version = "3.2.3";
@@ -9,7 +9,7 @@ let
   inherit (python3Packages) python pygobject3;
 in callPackage pkg {
   buildInputs = [ python pygobject3 gtk3 glib libnotify intltool makeWrapper
-                  gnome3.adwaita-icon-theme gdk-pixbuf librsvg ];
+                  gnome.adwaita-icon-theme gdk-pixbuf librsvg ];
   drvParams = {
     nativeBuildInputs = [ gobject-introspection cmake ];
     postFixup = ''
diff --git a/nixpkgs/pkgs/misc/emulators/desmume/default.nix b/nixpkgs/pkgs/misc/emulators/desmume/default.nix
index ff17833f690b..03e97743905b 100644
--- a/nixpkgs/pkgs/misc/emulators/desmume/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/desmume/default.nix
@@ -3,7 +3,7 @@
 , libXmu
 , lua
 , tinyxml
-, agg, alsaLib, soundtouch, openal
+, agg, alsa-lib, soundtouch, openal
 , desktop-file-utils
 , gtk2, gtkglext, libglade
 , libGLU, libpcap, SDL, zziplib }:
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   CXXFLAGS = "-fpermissive";
 
   buildInputs =
-  [ pkg-config libtool intltool libXmu lua agg alsaLib soundtouch
+  [ pkg-config libtool intltool libXmu lua agg alsa-lib soundtouch
     openal desktop-file-utils gtk2 gtkglext libglade
     libGLU libpcap SDL zziplib tinyxml ];
 
diff --git a/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix b/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix
index 116279145603..8e08be28eda8 100644
--- a/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/nixpkgs/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, makeDesktopItem, pkg-config, cmake
 , wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU, libGL, pcre, gettext
 , libXrandr, libusb1, lzo, libpthreadstubs, libXext, libXxf86vm, libXinerama
-, libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsaLib
+, libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsa-lib
 , miniupnpc, enet, mbedtls, soundtouch, sfml
 , vulkan-loader ? null, libpulseaudio ? null
 
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
     portaudio libusb1 libpng hidapi miniupnpc enet mbedtls soundtouch sfml
     qtbase
   ] ++ lib.optionals stdenv.isLinux [
-    bluez udev libevdev alsaLib vulkan-loader
+    bluez udev libevdev alsa-lib vulkan-loader
   ] ++ lib.optionals stdenv.isDarwin [
     CoreBluetooth OpenGL ForceFeedback IOKit
   ];
diff --git a/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix b/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix
index 458b27d33044..4cb5ca9ec2e6 100644
--- a/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/emulationstation/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, curl, boost, eigen
-, freeimage, freetype, libGLU, libGL, SDL2, alsaLib, libarchive
+, freeimage, freetype, libGLU, libGL, SDL2, alsa-lib, libarchive
 , fetchpatch }:
 
 stdenv.mkDerivation {
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   ];
 
   nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = [ alsaLib boost curl eigen freeimage freetype libarchive libGLU libGL SDL2 ];
+  buildInputs = [ alsa-lib boost curl eigen freeimage freetype libarchive libGLU libGL SDL2 ];
 
   installPhase = ''
     install -D ../emulationstation $out/bin/emulationstation
diff --git a/nixpkgs/pkgs/misc/emulators/epsxe/default.nix b/nixpkgs/pkgs/misc/emulators/epsxe/default.nix
index 7cdd88d0b941..f70e90e98722 100644
--- a/nixpkgs/pkgs/misc/emulators/epsxe/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/epsxe/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, curl, gdk-pixbuf, glib, gtk3, libGLU, libGL,
+{ lib, stdenv, fetchurl, alsa-lib, curl, gdk-pixbuf, glib, gtk3, libGLU, libGL,
   libX11, openssl_1_0_2, ncurses5, SDL, SDL_ttf, unzip, zlib, wrapGAppsHook, autoPatchelfHook }:
 
 with lib;
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   sourceRoot = ".";
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     curl
     gdk-pixbuf
     glib
diff --git a/nixpkgs/pkgs/misc/emulators/higan/default.nix b/nixpkgs/pkgs/misc/emulators/higan/default.nix
index c7bc7e9f976e..8e10b7bb3154 100644
--- a/nixpkgs/pkgs/misc/emulators/higan/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/higan/default.nix
@@ -4,7 +4,7 @@
 , udev
 , libGLU, libGL, SDL2
 , libao, openal, libpulseaudio
-, alsaLib
+, alsa-lib
 , gtk2, gtksourceview
 , runtimeShell
 # Darwin dependencies
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     ++ optionals stdenv.isDarwin [ libicns ];
 
   buildInputs = [ SDL2 libao ]
-                ++ optionals stdenv.isLinux [ alsaLib udev libpulseaudio openal
+                ++ optionals stdenv.isLinux [ alsa-lib udev libpulseaudio openal
                                               gtk2 gtksourceview libX11 libXv
                                               libGLU libGL ]
                 ++ optionals stdenv.isDarwin [ Carbon Cocoa OpenGL OpenAL ];
diff --git a/nixpkgs/pkgs/misc/emulators/kega-fusion/default.nix b/nixpkgs/pkgs/misc/emulators/kega-fusion/default.nix
index 1b00a55fe058..e8feb1ea7ed5 100644
--- a/nixpkgs/pkgs/misc/emulators/kega-fusion/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/kega-fusion/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, writeText, fetchurl, upx, libGLU, glib, gtk2, alsaLib, libSM, libX11, gdk-pixbuf, pango, libXinerama, mpg123, runtimeShell }:
+{ stdenv, lib, writeText, fetchurl, upx, libGLU, glib, gtk2, alsa-lib, libSM, libX11, gdk-pixbuf, pango, libXinerama, mpg123, runtimeShell }:
 
 let
-  libPath = lib.makeLibraryPath [ stdenv.cc.cc libGLU glib gtk2 alsaLib libSM libX11 gdk-pixbuf pango libXinerama ];
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc libGLU glib gtk2 alsa-lib libSM libX11 gdk-pixbuf pango libXinerama ];
 
 in stdenv.mkDerivation {
   pname = "kega-fusion";
diff --git a/nixpkgs/pkgs/misc/emulators/maiko/default.nix b/nixpkgs/pkgs/misc/emulators/maiko/default.nix
new file mode 100644
index 000000000000..e78b680d617a
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/maiko/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, cmake, libX11 }:
+
+stdenv.mkDerivation rec {
+  pname = "maiko";
+  version = "2021-04-14";
+  src = fetchFromGitHub {
+    owner = "Interlisp";
+    repo = "maiko";
+    rev = "91fe7d51f9d607bcedde0e78e435ee188a8c84c0";
+    hash = "sha256-Y+ngep/xHw6RCU8XVRYSWH6S+9hJ74z50pGpIqS2CjM=";
+  };
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libX11 ];
+  installPhase = ''
+    runHook preInstall
+    find . -maxdepth 1 -executable -type f -exec install -Dt $out/bin '{}' \;
+    runHook postInstall
+  '';
+  meta = with lib; {
+    description = "Medley Interlisp virtual machine";
+    homepage = "https://interlisp.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ehmry ];
+    inherit (libX11.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/mame/default.nix b/nixpkgs/pkgs/misc/emulators/mame/default.nix
index b50181a4d98d..26abda81b309 100644
--- a/nixpkgs/pkgs/misc/emulators/mame/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/mame/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper
-, python, pkg-config, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama
+, python, pkg-config, SDL2, SDL2_ttf, alsa-lib, which, qtbase, libXinerama
 , libpcap, CoreAudioKit, ForceFeedback
 , installShellFiles }:
 
@@ -41,7 +41,7 @@ in mkDerivation {
 
   buildInputs =
     [ SDL2 SDL2_ttf qtbase libXinerama ]
-    ++ lib.optional stdenv.isLinux alsaLib
+    ++ lib.optional stdenv.isLinux alsa-lib
     ++ lib.optionals stdenv.isDarwin [ libpcap CoreAudioKit ForceFeedback ]
     ;
   nativeBuildInputs = [ python pkg-config which makeWrapper installShellFiles ];
@@ -82,6 +82,6 @@ in mkDerivation {
     platforms = platforms.unix;
     # makefile needs fixes for install target
     badPlatforms = [ "aarch64-linux" ];
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/mednafen/default.nix b/nixpkgs/pkgs/misc/emulators/mednafen/default.nix
index aaf736f3e5e4..f76ddb78bd56 100644
--- a/nixpkgs/pkgs/misc/emulators/mednafen/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/mednafen/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, freeglut, libGLU, libGL, libcdio, libjack2
-, libsamplerate, libsndfile, libX11, SDL2, SDL2_net, zlib, alsaLib }:
+, libsamplerate, libsndfile, libX11, SDL2, SDL2_net, zlib, alsa-lib }:
 
 stdenv.mkDerivation rec {
   pname = "mednafen";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     libGLU libGL
     libcdio
     libjack2
-    alsaLib
+    alsa-lib
     libsamplerate
     libsndfile
     libX11
diff --git a/nixpkgs/pkgs/misc/emulators/mgba/default.nix b/nixpkgs/pkgs/misc/emulators/mgba/default.nix
index be097c311856..fa25609dcdb8 100644
--- a/nixpkgs/pkgs/misc/emulators/mgba/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/mgba/default.nix
@@ -1,6 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, makeDesktopItem, wrapQtAppsHook, pkg-config
-, cmake, epoxy, libzip, libelf, libedit, ffmpeg_3, SDL2, imagemagick
-, qtbase, qtmultimedia, qttools, minizip }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, SDL2
+, cmake
+, epoxy
+, ffmpeg
+, imagemagick
+, libedit
+, libelf
+, libzip
+, makeDesktopItem
+, minizip
+, pkg-config
+, qtbase
+, qtmultimedia
+, qttools
+, wrapQtAppsHook
+}:
 
 let
   desktopItem = makeDesktopItem {
@@ -21,14 +37,26 @@ in stdenv.mkDerivation rec {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    sha256 = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs=";
+    hash = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs=";
   };
 
-  nativeBuildInputs = [ wrapQtAppsHook pkg-config cmake ];
-
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
   buildInputs = [
-    epoxy libzip libelf libedit ffmpeg_3 SDL2 imagemagick
-    qtbase qtmultimedia qttools minizip
+    SDL2
+    epoxy
+    ffmpeg
+    imagemagick
+    libedit
+    libelf
+    libzip
+    minizip
+    qtbase
+    qtmultimedia
+    qttools
   ];
 
   postInstall = ''
@@ -38,21 +66,19 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mgba.io";
     description = "A modern GBA emulator with a focus on accuracy";
-
     longDescription = ''
       mGBA is a new Game Boy Advance emulator written in C.
 
-      The project started in April 2013 with the goal of being fast
-      enough to run on lower end hardware than other emulators
-      support, without sacrificing accuracy or portability. Even in
-      the initial version, games generally play without problems. It
-      is loosely based on the previous GBA.js emulator, although very
-      little of GBA.js can still be seen in mGBA.
-
-      Other goals include accurate enough emulation to provide a
-      development environment for homebrew software, a good workflow
-      for tool-assist runners, and a modern feature set for emulators
-      that older emulators may not support.
+      The project started in April 2013 with the goal of being fast enough to
+      run on lower end hardware than other emulators support, without
+      sacrificing accuracy or portability. Even in the initial version, games
+      generally play without problems. It is loosely based on the previous
+      GBA.js emulator, although very little of GBA.js can still be seen in mGBA.
+
+      Other goals include accurate enough emulation to provide a development
+      environment for homebrew software, a good workflow for tool-assist
+      runners, and a modern feature set for emulators that older emulators may
+      not support.
     '';
 
     license = licenses.mpl20;
@@ -60,3 +86,4 @@ in stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
+# TODO [ AndersonTorres ]: use desktopItem functions
diff --git a/nixpkgs/pkgs/misc/emulators/nestopia/default.nix b/nixpkgs/pkgs/misc/emulators/nestopia/default.nix
index 70e5d94def6f..e19b97a477ef 100644
--- a/nixpkgs/pkgs/misc/emulators/nestopia/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/nestopia/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, SDL2, alsaLib, gtk3
+{ lib, stdenv, fetchFromGitHub, pkg-config, SDL2, alsa-lib, gtk3
 , makeWrapper, libGLU, libGL, libarchive, libao, unzip, xdg-utils
-, epoxy, gdk-pixbuf, gnome3, wrapGAppsHook
+, epoxy, gdk-pixbuf, gnome, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     SDL2
-    alsaLib
+    alsa-lib
     epoxy
     gtk3
     gdk-pixbuf
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     libarchive
     libao
     xdg-utils
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/misc/emulators/openmsx/default.nix b/nixpkgs/pkgs/misc/emulators/openmsx/default.nix
index d34a921e1773..61d416e17ac8 100644
--- a/nixpkgs/pkgs/misc/emulators/openmsx/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/openmsx/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, pkg-config
 , python
-, alsaLib, glew, libGL, libpng
+, alsa-lib, glew, libGL, libpng
 , libogg, libtheora, libvorbis
 , SDL2, SDL2_image, SDL2_ttf
 , freetype, tcl, zlib
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config python ];
 
-  buildInputs = [ alsaLib glew libGL libpng
+  buildInputs = [ alsa-lib glew libGL libpng
     libogg libtheora libvorbis freetype
     SDL2 SDL2_image SDL2_ttf tcl zlib ];
 
diff --git a/nixpkgs/pkgs/misc/emulators/pcem/default.nix b/nixpkgs/pkgs/misc/emulators/pcem/default.nix
index 6e7e3bc6379c..2e6aa683e4d3 100644
--- a/nixpkgs/pkgs/misc/emulators/pcem/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/pcem/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchzip, wxGTK31, coreutils, SDL2, openal, alsaLib, pkg-config
+{ stdenv, lib, fetchzip, wxGTK31, coreutils, SDL2, openal, alsa-lib, pkg-config
 , autoreconfHook, withNetworking ? true, withALSA ? true }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ wxGTK31 coreutils SDL2 openal ]
-    ++ lib.optional withALSA alsaLib;
+    ++ lib.optional withALSA alsa-lib;
 
   configureFlags = [ "--enable-release-build" ]
     ++ lib.optional withNetworking "--enable-networking"
diff --git a/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
index 52d1010b5a4f..13d2ea74f342 100644
--- a/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib
+{ alsa-lib
 , cmake
 , fetchFromGitHub
 , fmt
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake makeWrapper perl pkg-config wrapGAppsHook ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     fmt
     gettext
     glib
@@ -102,6 +102,7 @@ stdenv.mkDerivation {
     '';
     homepage = "https://pcsx2.net";
     maintainers = with maintainers; [ hrdinka govanify ];
+    mainProgram = "PCSX2";
 
     # PCSX2's source code is released under LGPLv3+. It However ships
     # additional data files and code that are licensed differently.
diff --git a/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix b/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix
index a50bc3eb3ec8..4f5b4f7d69b6 100644
--- a/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/ppsspp/default.nix
@@ -1,11 +1,11 @@
-{ SDL2
-, cmake
+{ mkDerivation
 , fetchFromGitHub
-, ffmpeg_3
+, SDL2
+, cmake
+, ffmpeg
 , glew
 , lib
 , libzip
-, mkDerivation
 , pkg-config
 , python3
 , qtbase
@@ -23,7 +23,7 @@ mkDerivation rec {
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "19948jzqpclf8zfzp3k7s580xfjgqcyfwlcp7x7xj8h8lyypzymx";
+    sha256 = "sha256-vfp/vacIItlPP5dR7jzDT7oOUNFnjvvdR46yi79EJKU=";
   };
 
   postPatch = ''
@@ -35,7 +35,7 @@ mkDerivation rec {
 
   buildInputs = [
     SDL2
-    ffmpeg_3
+    ffmpeg
     glew
     libzip
     qtbase
@@ -45,23 +45,25 @@ mkDerivation rec {
   ];
 
   cmakeFlags = [
+    "-DHEADLESS=OFF"
     "-DOpenGL_GL_PREFERENCE=GLVND"
     "-DUSE_SYSTEM_FFMPEG=ON"
     "-DUSE_SYSTEM_LIBZIP=ON"
     "-DUSE_SYSTEM_SNAPPY=ON"
     "-DUSING_QT_UI=ON"
-    "-DHEADLESS=OFF"
   ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/ppsspp
     install -Dm555 PPSSPPQt $out/bin/ppsspp
     mv assets $out/share/ppsspp
+    runHook postInstall
   '';
 
   meta = with lib; {
-    description = "A HLE Playstation Portable emulator, written in C++";
     homepage = "https://www.ppsspp.org/";
+    description = "A HLE Playstation Portable emulator, written in C++";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/misc/emulators/proton-caller/default.nix b/nixpkgs/pkgs/misc/emulators/proton-caller/default.nix
new file mode 100644
index 000000000000..f8295c6c5b4d
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/proton-caller/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub, rustPlatform, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "proton-caller";
+  version = "2.2.3";
+
+  src = fetchFromGitHub {
+    owner = "caverym";
+    repo = pname;
+    rev = version;
+    sha256 = "0968pmapg6157q4rvfp690l1sjnws8hm62lvm8kaaqysac339z7z";
+  };
+
+  cargoSha256 = "1vp2vvgy8z350a59k1c3s5ww6w2wikiha4s7jkkz9khl0spn19a8";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    installManPage manual/proton-call.6
+  '';
+
+  meta = with lib; {
+    description = "Run Windows programs with Proton";
+    changelog = "https://github.com/caverym/proton-caller/releases/tag/${version}";
+    homepage = "https://github.com/caverym/proton-caller";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ kho-dialga ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/punes/default.nix b/nixpkgs/pkgs/misc/emulators/punes/default.nix
new file mode 100644
index 000000000000..0d2a5b117984
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/punes/default.nix
@@ -0,0 +1,61 @@
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, unstableGitUpdater
+, qtbase
+, qtsvg
+, qttools
+, autoreconfHook
+, cmake
+, pkg-config
+, ffmpeg
+, libGLU
+, alsa-lib
+, sndio
+}:
+
+mkDerivation rec {
+  pname = "punes";
+  version = "unstable-2021-04-25";
+
+  src = fetchFromGitHub {
+    owner = "punesemu";
+    repo = "puNES";
+    rev = "4b4c3495a56d3989544cb56079ce641da8aa9b35";
+    sha256 = "1wszvdgm38513v26p14k58shbkxn1qhkn8l0hsqi04vviicad59s";
+  };
+
+  postPatch = ''
+    substituteInPlace configure.ac \
+      --replace '`$PKG_CONFIG --variable=host_bins Qt5Core`/lrelease' '${qttools.dev}/bin/lrelease'
+  '';
+
+  nativeBuildInputs = [ autoreconfHook cmake pkg-config qttools ];
+
+  buildInputs = [ ffmpeg qtbase qtsvg libGLU ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib ]
+    ++ lib.optionals stdenv.hostPlatform.isBSD [ sndio ];
+
+  dontUseCmakeConfigure = true;
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--prefix=${placeholder "out"}"
+    "--without-opengl-nvidia-cg"
+    "--with-ffmpeg"
+  ];
+
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/punesemu/puNES.git";
+  };
+
+  meta = with lib; {
+    description = "Qt-based Nintendo Entertaiment System emulator and NSF/NSFe Music Player";
+    homepage = "https://github.com/punesemu/puNES";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = with platforms; linux ++ freebsd ++ openbsd ++ windows;
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/reicast/default.nix b/nixpkgs/pkgs/misc/emulators/reicast/default.nix
index 8c0bc30d4384..f9e8e4d69376 100644
--- a/nixpkgs/pkgs/misc/emulators/reicast/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/reicast/default.nix
@@ -3,7 +3,7 @@
 , cmake
 , pkg-config
 , curl
-, alsaLib
+, alsa-lib
 , libGLU
 , libX11
 , libevdev
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
     curl
-    alsaLib
+    alsa-lib
     libGLU
     libX11
     libevdev
diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix b/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix
index 887e79999ca1..bddabede0a07 100644
--- a/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix
+++ b/nixpkgs/pkgs/misc/emulators/retroarch/cores.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchgit, fetchFromGitHub, fetchFromGitLab, fetchpatch, cmake, pkg-config, makeWrapper, python27, python37, retroarch
-, alsaLib, fluidsynth, curl, hidapi, libGLU, gettext, glib, gtk2, portaudio, SDL, SDL_net, SDL2, SDL2_image, libGL
-, ffmpeg_3, pcre, libevdev, libpng, libjpeg, libzip, udev, libvorbis, snappy, which, hexdump
+{ lib, stdenv, fetchgit, fetchFromGitHub, fetchFromGitLab, fetchpatch, cmake, pkg-config, makeWrapper, python27, python3, retroarch
+, alsa-lib, fluidsynth, curl, hidapi, libGLU, gettext, glib, gtk2, portaudio, SDL, SDL_net, SDL2, SDL2_image, libGL
+, ffmpeg, pcre, libevdev, libpng, libjpeg, libzip, udev, libvorbis, snappy, which, hexdump
 , miniupnpc, sfml, xorg, zlib, nasm, libpcap, boost, icu, openssl
 , buildPackages }:
 
@@ -548,7 +548,7 @@ in with lib.licenses;
     description = "Port of MAME to libretro";
     license = gpl2Plus;
 
-    extraBuildInputs = [ alsaLib libGLU libGL portaudio python27 xorg.libX11 ];
+    extraBuildInputs = [ alsa-lib libGLU libGL portaudio python27 xorg.libX11 ];
     postPatch = ''
       # Prevent the failure during the parallel building of:
       # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o
@@ -617,7 +617,7 @@ in with lib.licenses;
     description = "Port of MAME ~2015 to libretro";
     license = gpl2Plus;
     extraNativeBuildInputs = [ python27 ];
-    extraBuildInputs = [ alsaLib ];
+    extraBuildInputs = [ alsa-lib ];
     makefile = "Makefile";
   };
 
@@ -638,7 +638,7 @@ in with lib.licenses;
     description = "Port of MAME ~2016 to libretro";
     license = gpl2Plus;
     extraNativeBuildInputs = [ python27 ];
-    extraBuildInputs = [ alsaLib ];
+    extraBuildInputs = [ alsa-lib ];
     postPatch = ''
       # Prevent the failure during the parallel building of:
       # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o
@@ -831,15 +831,24 @@ in with lib.licenses;
 
   ppsspp = mkLibRetroCore {
     core = "ppsspp";
-    src = fetchgit {
-      url = "https://github.com/hrydgard/ppsspp";
-      rev = "bf1777f7d3702e6a0f71c7ec1fc51976e23c2327";
-      sha256 = "17sym0vk72lzbh9a1501mhw98c78x1gq7k1fpy69nvvb119j37wa";
+    src = fetchFromGitHub {
+      owner = "hrydgard";
+      repo = "ppsspp";
+      rev = "v1.11";
+      fetchSubmodules = true;
+      sha256 = "sha256-vfp/vacIItlPP5dR7jzDT7oOUNFnjvvdR46yi79EJKU=";
     };
+    patches = [
+      (fetchpatch {
+        name = "fix_ffmpeg_4.4.patch";  # to be removed with next release
+        url = "https://patch-diff.githubusercontent.com/raw/hrydgard/ppsspp/pull/14176.patch";
+        sha256 = "sha256-ecDoOydaLfL6+eFpahcO1TnRl866mZZVHlr6Qrib1mo=";
+      })
+    ];
     description = "ppsspp libretro port";
     license = gpl2;
-    extraNativeBuildInputs = [ cmake pkg-config ];
-    extraBuildInputs = [ libGLU libGL libzip ffmpeg_3 python37 snappy xorg.libX11 ];
+    extraNativeBuildInputs = [ cmake pkg-config python3 ];
+    extraBuildInputs = [ libGLU libGL libzip ffmpeg snappy xorg.libX11 ];
     makefile = "Makefile";
     cmakeFlags = [ "-DLIBRETRO=ON -DUSE_SYSTEM_FFMPEG=ON -DUSE_SYSTEM_SNAPPY=ON -DUSE_SYSTEM_LIBZIP=ON -DOpenGL_GL_PREFERENCE=GLVND" ];
     postBuild = "mv lib/ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/default.nix b/nixpkgs/pkgs/misc/emulators/retroarch/default.nix
index a6ada570a500..86ca803d965a 100644
--- a/nixpkgs/pkgs/misc/emulators/retroarch/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/retroarch/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, which, pkg-config, makeWrapper
-, ffmpeg_3, libGLU, libGL, freetype, libxml2, python3
+, ffmpeg, libGLU, libGL, freetype, libxml2, python3
 , libobjc, AppKit, Foundation
-, alsaLib ? null
+, alsa-lib ? null
 , libdrm ? null
 , libpulseaudio ? null
 , libv4l ? null
@@ -35,11 +35,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config wayland ]
                       ++ optional withVulkan makeWrapper;
 
-  buildInputs = [ ffmpeg_3 freetype libxml2 libGLU libGL python3 SDL2 which ]
+  buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ]
                 ++ optional enableNvidiaCgToolkit nvidia_cg_toolkit
                 ++ optional withVulkan vulkan-loader
                 ++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ]
-                ++ optionals stdenv.isLinux [ alsaLib libdrm libpulseaudio libv4l libX11
+                ++ optionals stdenv.isLinux [ alsa-lib libdrm libpulseaudio libv4l libX11
                                               libXdmcp libXext libXxf86vm mesa udev
                                               wayland libxkbcommon ];
 
diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/kodi-advanced-launchers.nix b/nixpkgs/pkgs/misc/emulators/retroarch/kodi-advanced-launchers.nix
index 79dd025cf948..ee97e6f7493c 100644
--- a/nixpkgs/pkgs/misc/emulators/retroarch/kodi-advanced-launchers.nix
+++ b/nixpkgs/pkgs/misc/emulators/retroarch/kodi-advanced-launchers.nix
@@ -1,9 +1,7 @@
-{ stdenv, pkgs, cores, runtimeShell }:
+{ stdenv, pkgs, lib, cores, runtimeShell }:
 
 assert cores != [];
 
-with pkgs.lib;
-
 let
 
   script = exec: ''
diff --git a/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix b/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix
index ecda439e7ab7..bf1dc1c95732 100644
--- a/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix
@@ -1,23 +1,26 @@
-{ mkDerivation, lib, fetchgit, cmake, pkg-config, git
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config, git
 , qtbase, qtquickcontrols, openal, glew, vulkan-headers, vulkan-loader, libpng
-, ffmpeg, libevdev, python3
+, ffmpeg, libevdev, libusb1, zlib, curl, python3
+, sdl2Support ? true, SDL2
 , pulseaudioSupport ? true, libpulseaudio
 , waylandSupport ? true, wayland
-, alsaSupport ? true, alsaLib
+, alsaSupport ? true, alsa-lib
 }:
 
 let
-  majorVersion = "0.0.12";
-  gitVersion = "10811-a86a3d2fe"; # echo $(git rev-list HEAD --count)-$(git rev-parse --short HEAD)
+  majorVersion = "0.0.16";
+  gitVersion = "12235-a4f4b81e6"; # echo $(git rev-list HEAD --count)-$(git rev-parse --short HEAD)
 in
 mkDerivation {
   pname = "rpcs3";
   version = "${majorVersion}-${gitVersion}";
 
-  src = fetchgit {
-    url = "https://github.com/RPCS3/rpcs3";
-    rev = "v${majorVersion}";
-    sha256 = "182rkmbnnlcfzam4bwas7lwv10vqiqvvaw3299a3hariacd7rq8x";
+  src = fetchFromGitHub {
+    owner = "RPCS3";
+    repo = "rpcs3";
+    rev = "a4f4b81e6b0c00f4c30f9f5f182e5fe56f9fb03c";
+    fetchSubmodules = true;
+    sha256 = "1d70nljl1kmpbk50jpjki7dglw1bbxd7x4qzg6nz5np2sdsbpckd";
   };
 
   preConfigure = ''
@@ -30,8 +33,13 @@ mkDerivation {
   '';
 
   cmakeFlags = [
+    "-DUSE_SYSTEM_ZLIB=ON"
+    "-DUSE_SYSTEM_LIBUSB=ON"
     "-DUSE_SYSTEM_LIBPNG=ON"
     "-DUSE_SYSTEM_FFMPEG=ON"
+    "-DUSE_SYSTEM_CURL=ON"
+    # NB: Can't use this yet, our CMake doesn't include FindWolfSSL.cmake
+    #"-DUSE_SYSTEM_WOLFSSL=ON"
     "-DUSE_NATIVE_INSTRUCTIONS=OFF"
   ];
 
@@ -39,16 +47,17 @@ mkDerivation {
 
   buildInputs = [
     qtbase qtquickcontrols openal glew vulkan-headers vulkan-loader libpng ffmpeg
-    libevdev python3
-  ] ++ lib.optional pulseaudioSupport libpulseaudio
-    ++ lib.optional alsaSupport alsaLib
+    libevdev zlib libusb1 curl python3
+  ] ++ lib.optional sdl2Support SDL2
+    ++ lib.optional pulseaudioSupport libpulseaudio
+    ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional waylandSupport wayland;
 
   meta = with lib; {
     description = "PS3 emulator/debugger";
     homepage = "https://rpcs3.net/";
     maintainers = with maintainers; [ abbradar neonfuz ilian ];
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/ruffle/default.nix b/nixpkgs/pkgs/misc/emulators/ruffle/default.nix
index affbf0af15a9..84837322e971 100644
--- a/nixpkgs/pkgs/misc/emulators/ruffle/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/ruffle/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib
+{ alsa-lib
 , fetchFromGitHub
 , makeWrapper
 , openssl
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ruffle";
-  version = "nightly-2021-04-02";
+  version = "nightly-2021-05-14";
 
   src = fetchFromGitHub {
     owner = "ruffle-rs";
     repo = pname;
     rev = version;
-    sha256 = "1diz94y53hvii28894zz65aya12v8yw1864lqpkrdbj67yc6ykdj";
+    sha256 = "15azv8y7a4sgxvvhl7z45jyxj91b4nn681vband5726c7znskhwl";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     openssl
     wayland
     xorg.libX11
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
     wrapProgram $out/bin/ruffle_desktop --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
   '';
 
-  cargoSha256 = "0pnp5kmij4dwwvmgdv81mqcawcjcgg5gd6cpyf0xalyfjgj8i732";
+  cargoSha256 = "0ihy4rgw9b4yqlqs87rx700h3a8wm02wpahhg7inic1lcag4bxif";
 
   meta = with lib; {
     description = "An Adobe Flash Player emulator written in the Rust programming language.";
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix b/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
index db3b87b7b59e..91f4ef519346 100644
--- a/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
@@ -1,28 +1,30 @@
 { lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
 , dotnet-sdk_5, dotnetPackages, dotnetCorePackages, cacert
-, SDL2, libX11, libgdiplus, ffmpeg, openal, libsoundio
+, libX11, libgdiplus, ffmpeg
+, SDL2_mixer, openal, libsoundio, sndio
 , gtk3, gobject-introspection, gdk-pixbuf, wrapGAppsHook
 }:
 
 let
   runtimeDeps = [
-    SDL2
     gtk3
     libX11
     libgdiplus
     ffmpeg
+    SDL2_mixer
     openal
     libsoundio
+    sndio
   ];
 in stdenv.mkDerivation rec {
   pname = "ryujinx";
-  version = "1.0.6835"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
+  version = "1.0.6893"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "e520eecb5ba682d4b51bb782e3bc99fb1d6afe04";
-    sha256 = "1yy1xslnvvl0m7g0jszj2pjwdwf0pbv53crzfkhla3n68kvfy00f";
+    rev = "fb65f392d1c4b0e01f22b6ddebcc8317ba9769c3";
+    sha256 = "0ncrcbwyirz21j81vc6yvcjc2fn8nc5ilrfczclq6f8cpy09c3y8";
   };
 
   nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget cacert makeWrapper wrapGAppsHook gobject-introspection gdk-pixbuf ];
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix b/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
index 1ccd7c9b38fe..23eacb690a0e 100644
--- a/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
@@ -21,13 +21,13 @@
   })
   (fetchNuGet {
     name = "DiscordRichPresence";
-    version = "1.0.166";
-    sha256 = "019rz0br8hamydmdrgzcc6280jfhm4i4ix27jh66a7h37alvdi3a";
+    version = "1.0.175";
+    sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd";
   })
   (fetchNuGet {
     name = "FFmpeg.AutoGen";
-    version = "4.3.0";
-    sha256 = "03lb3xzgwxik8nljq87pr1b9bsxbsl3a4kvy0kqkw9f57n29ihvk";
+    version = "4.4.0";
+    sha256 = "02n4az1jv30078019png9gbspygz051inxsn6w4iar20dqp55g2w";
   })
   (fetchNuGet {
     name = "GdkSharp";
@@ -45,16 +45,16 @@
     sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5";
   })
   (fetchNuGet {
-    name = "GtkSharp";
-    version = "3.22.25.128";
-    sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy";
-  })
-  (fetchNuGet {
     name = "GtkSharp.Dependencies";
     version = "1.1.0";
     sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn";
   })
   (fetchNuGet {
+    name = "GtkSharp";
+    version = "3.22.25.128";
+    sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy";
+  })
+  (fetchNuGet {
     name = "LibHac";
     version = "0.12.0";
     sha256 = "08r9b9cdcbz6339sw8r5dfy2a8iw53df0j3xq9rygkg02xspimld";
@@ -90,6 +90,11 @@
     sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x";
   })
   (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.8.0";
+    sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9";
+  })
+  (fetchNuGet {
     name = "Microsoft.NETCore.App.Host.osx-x64";
     version = "5.0.5";
     sha256 = "14d6wz593dwm2j3apd3ny10idk8bfxqgfrparhc1q7q4i66y21ws";
@@ -145,11 +150,6 @@
     sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
   })
   (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
-    version = "16.8.0";
-    sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9";
-  })
-  (fetchNuGet {
     name = "Microsoft.TestPlatform.ObjectModel";
     version = "16.8.0";
     sha256 = "0ii9d88py6mjsxzj9v3zx4izh6rb9ma6s9kj85xmc0xrw7jc2g3m";
@@ -280,24 +280,19 @@
     sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Globalization";
-    version = "4.3.0";
-    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
-  })
-  (fetchNuGet {
     name = "runtime.any.System.Globalization.Calendars";
     version = "4.3.0";
     sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
   })
   (fetchNuGet {
-    name = "runtime.any.System.IO";
+    name = "runtime.any.System.Globalization";
     version = "4.3.0";
-    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Reflection";
+    name = "runtime.any.System.IO";
     version = "4.3.0";
-    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
   })
   (fetchNuGet {
     name = "runtime.any.System.Reflection.Extensions";
@@ -310,14 +305,14 @@
     sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
+    name = "runtime.any.System.Reflection";
     version = "4.3.0";
-    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Runtime";
+    name = "runtime.any.System.Resources.ResourceManager";
     version = "4.3.0";
-    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
   })
   (fetchNuGet {
     name = "runtime.any.System.Runtime.Handles";
@@ -330,9 +325,9 @@
     sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding";
+    name = "runtime.any.System.Runtime";
     version = "4.3.0";
-    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
   })
   (fetchNuGet {
     name = "runtime.any.System.Text.Encoding.Extensions";
@@ -340,6 +335,11 @@
     sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
   })
   (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+  (fetchNuGet {
     name = "runtime.any.System.Threading.Tasks";
     version = "4.3.0";
     sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
@@ -365,16 +365,6 @@
     sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
   })
   (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.0.0";
-    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
-  })
-  (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.3.0";
-    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
-  })
-  (fetchNuGet {
     name = "runtime.native.System.IO.Compression";
     version = "4.1.0";
     sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
@@ -385,14 +375,24 @@
     sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
   })
   (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
     name = "runtime.native.System.Security.Cryptography";
     version = "4.0.0";
     sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
     version = "4.3.0";
-    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
   })
   (fetchNuGet {
     name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
@@ -511,8 +511,8 @@
   })
   (fetchNuGet {
     name = "Ryujinx.Graphics.Nvdec.Dependencies";
-    version = "4.3.0";
-    sha256 = "0szgbdhyhvzpw8nb9k2ww37p5qipab1pdll8idkk57y5xnl2f7ll";
+    version = "4.4.0-build7";
+    sha256 = "0g1l3lgs0ffxp64ka81v6q1cgsdirl1qlf73255v29r3v337074m";
   })
   (fetchNuGet {
     name = "SharpZipLib";
@@ -525,19 +525,19 @@
     sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql";
   })
   (fetchNuGet {
-    name = "SixLabors.ImageSharp";
-    version = "1.0.2";
-    sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj";
-  })
-  (fetchNuGet {
     name = "SixLabors.ImageSharp.Drawing";
     version = "1.0.0-beta11";
     sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5";
   })
   (fetchNuGet {
+    name = "SixLabors.ImageSharp";
+    version = "1.0.2";
+    sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj";
+  })
+  (fetchNuGet {
     name = "SPB";
-    version = "0.0.2";
-    sha256 = "178z9mi7zlk0laj79nkjh75ych47jjajiaj33hnh7zfmz05d8h6r";
+    version = "0.0.3-build15";
+    sha256 = "0h00yi2j65q31r5npsziq2rpiw832vf9r72j1hjqibp2l5m6v6yw";
   })
   (fetchNuGet {
     name = "System.AppContext";
@@ -565,16 +565,6 @@
     sha256 = "14zs2wqkmdlxzj8ikx19n321lsbarx5vl2a8wrachymxn8zb5njh";
   })
   (fetchNuGet {
-    name = "System.Collections";
-    version = "4.0.11";
-    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
-  })
-  (fetchNuGet {
-    name = "System.Collections";
-    version = "4.3.0";
-    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
-  })
-  (fetchNuGet {
     name = "System.Collections.Concurrent";
     version = "4.0.12";
     sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
@@ -590,9 +580,14 @@
     sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
   })
   (fetchNuGet {
-    name = "System.ComponentModel";
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
     version = "4.3.0";
-    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
   })
   (fetchNuGet {
     name = "System.ComponentModel.EventBasedAsync";
@@ -610,6 +605,11 @@
     sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
   })
   (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
     name = "System.Console";
     version = "4.0.0";
     sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
@@ -660,16 +660,6 @@
     sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
   })
   (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.0.11";
-    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
-  })
-  (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.3.0";
-    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
-  })
-  (fetchNuGet {
     name = "System.Globalization.Calendars";
     version = "4.0.1";
     sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
@@ -685,14 +675,19 @@
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
   (fetchNuGet {
-    name = "System.IO";
-    version = "4.1.0";
-    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
   })
   (fetchNuGet {
-    name = "System.IO";
+    name = "System.Globalization";
     version = "4.3.0";
-    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
   })
   (fetchNuGet {
     name = "System.IO.Compression";
@@ -700,9 +695,14 @@
     sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    name = "System.IO.FileSystem.Primitives";
     version = "4.0.1";
-    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
   })
   (fetchNuGet {
     name = "System.IO.FileSystem";
@@ -715,14 +715,19 @@
     sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
-    version = "4.0.1";
-    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    name = "System.IO";
     version = "4.3.0";
-    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
   })
   (fetchNuGet {
     name = "System.Linq";
@@ -735,11 +740,6 @@
     sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
-    version = "4.1.0";
-    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
-  })
-  (fetchNuGet {
     name = "System.Management";
     version = "5.0.0";
     sha256 = "09hyv3p0zd549577clydlb2szl84m4gvdjnsry73n8b12ja7d75s";
@@ -785,26 +785,6 @@
     sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
   })
   (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.1.0";
-    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
-  })
-  (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.3.0";
-    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.0.1";
-    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.3.0";
-    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
-  })
-  (fetchNuGet {
     name = "System.Reflection.Emit.ILGeneration";
     version = "4.0.1";
     sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
@@ -825,6 +805,16 @@
     sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
   })
   (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
     name = "System.Reflection.Extensions";
     version = "4.0.1";
     sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
@@ -855,24 +845,24 @@
     sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
-    version = "4.0.1";
-    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
+    name = "System.Reflection";
     version = "4.3.0";
-    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
   })
   (fetchNuGet {
-    name = "System.Runtime";
-    version = "4.1.0";
-    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    name = "System.Resources.ResourceManager";
     version = "4.3.0";
-    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
   })
   (fetchNuGet {
     name = "System.Runtime.CompilerServices.Unsafe";
@@ -905,16 +895,6 @@
     sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.1.0";
-    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
-  })
-  (fetchNuGet {
     name = "System.Runtime.InteropServices.RuntimeInformation";
     version = "4.0.0";
     sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
@@ -925,6 +905,16 @@
     sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
   })
   (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
     name = "System.Runtime.Numerics";
     version = "4.0.1";
     sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
@@ -935,6 +925,16 @@
     sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
   })
   (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
     name = "System.Security.AccessControl";
     version = "4.5.0";
     sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
@@ -985,11 +985,6 @@
     sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
   })
   (fetchNuGet {
-    name = "System.Security.Principal";
-    version = "4.3.0";
-    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
-  })
-  (fetchNuGet {
     name = "System.Security.Principal.Windows";
     version = "4.3.0";
     sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
@@ -1005,14 +1000,9 @@
     sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
-    version = "4.0.11";
-    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
-  })
-  (fetchNuGet {
-    name = "System.Text.Encoding";
+    name = "System.Security.Principal";
     version = "4.3.0";
-    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
   })
   (fetchNuGet {
     name = "System.Text.Encoding.Extensions";
@@ -1025,6 +1015,16 @@
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
     name = "System.Text.RegularExpressions";
     version = "4.1.0";
     sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
@@ -1035,19 +1035,19 @@
     sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "System.Threading";
-    version = "4.0.11";
-    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+    name = "System.Threading.Overlapped";
+    version = "4.3.0";
+    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
   })
   (fetchNuGet {
-    name = "System.Threading";
-    version = "4.3.0";
-    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
   })
   (fetchNuGet {
-    name = "System.Threading.Overlapped";
+    name = "System.Threading.Tasks.Extensions";
     version = "4.3.0";
-    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
   })
   (fetchNuGet {
     name = "System.Threading.Tasks";
@@ -1060,16 +1060,6 @@
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.0.0";
-    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
-  })
-  (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.3.0";
-    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
-  })
-  (fetchNuGet {
     name = "System.Threading.Thread";
     version = "4.3.0";
     sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
@@ -1085,6 +1075,16 @@
     sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
   })
   (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
     name = "System.Xml.ReaderWriter";
     version = "4.0.11";
     sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
@@ -1105,13 +1105,13 @@
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath";
+    name = "System.Xml.XPath.XmlDocument";
     version = "4.3.0";
-    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath.XmlDocument";
+    name = "System.Xml.XPath";
     version = "4.3.0";
-    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
+    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
   })
 ]
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/log.patch b/nixpkgs/pkgs/misc/emulators/ryujinx/log.patch
index 7283ef9e7d5d..57e96e5c25cb 100644
--- a/nixpkgs/pkgs/misc/emulators/ryujinx/log.patch
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/log.patch
@@ -1,8 +1,16 @@
-diff --git a/Ryujinx.Common/Configuration/LoggerModule.cs b/Ryujinx.Common/Configuration/LoggerModule.cs
-index 20c0fb46..534576bc 100644
---- a/Ryujinx.Common/Configuration/LoggerModule.cs
-+++ b/Ryujinx.Common/Configuration/LoggerModule.cs
-@@ -75,7 +75,7 @@ namespace Ryujinx.Configuration
+diff --git a/Ryujinx/Configuration/LoggerModule.cs b/Ryujinx/Configuration/LoggerModule.cs
+index 44631ea0..534576bc 100644
+--- a/Ryujinx/Configuration/LoggerModule.cs
++++ b/Ryujinx/Configuration/LoggerModule.cs
+@@ -1,6 +1,7 @@
+ using Ryujinx.Common;
+ using Ryujinx.Common.Logging;
+ using System;
++using System.IO;
+
+ namespace Ryujinx.Configuration
+ {
+@@ -74,7 +75,7 @@ namespace Ryujinx.Configuration
              if (e.NewValue)
              {
                  Logger.AddTarget(new AsyncLogTargetWrapper(
diff --git a/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix b/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
index 3b5cb487f77a..8cebc664bca2 100644
--- a/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
@@ -12,7 +12,6 @@ stdenv.mkDerivation rec {
     sha256 = "12hpn7zcdvp30ldpw2zf115yjqv55n1ldjbids7vx0lvbpr06dm1";
   };
 
-  enableParallelBuilding = true;
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
   buildInputs = [ SDL2 zlib gtk3 libxml2 libXv epoxy minizip pulseaudio portaudio ];
 
diff --git a/nixpkgs/pkgs/misc/emulators/uae/default.nix b/nixpkgs/pkgs/misc/emulators/uae/default.nix
index 75b86eaeebd1..803efe5149c2 100644
--- a/nixpkgs/pkgs/misc/emulators/uae/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/uae/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, pkg-config, gtk2, alsaLib, SDL}:
+{lib, stdenv, fetchurl, pkg-config, gtk2, alsa-lib, SDL}:
 
 stdenv.mkDerivation rec {
   name = "uae-0.8.29";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-sdl" "--with-sdl-sound" "--with-sdl-gfx" "--with-alsa" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk2 alsaLib SDL ];
+  buildInputs = [ gtk2 alsa-lib SDL ];
 
   hardeningDisable = [ "format" ];
   LDFLAGS = [ "-lm" ];
diff --git a/nixpkgs/pkgs/misc/emulators/vbam/default.nix b/nixpkgs/pkgs/misc/emulators/vbam/default.nix
index c21f67845db4..bb5e7cea4e00 100644
--- a/nixpkgs/pkgs/misc/emulators/vbam/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/vbam/default.nix
@@ -2,6 +2,7 @@
 , cairo
 , cmake
 , fetchFromGitHub
+, fetchpatch
 , ffmpeg
 , gettext
 , libGLU, libGL
@@ -46,6 +47,15 @@ stdenv.mkDerivation rec {
     "-DENABLE_SDL='true'"
   ];
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/visualboyadvance-m/visualboyadvance-m/pull/793
+      name = "fix-build-SDL-2.0.14.patch";
+      url = "https://github.com/visualboyadvance-m/visualboyadvance-m/commit/619a5cce683ec4b1d03f08f316ba276d8f8cd824.patch";
+      sha256 = "099cbzgq4r9g83bvdra8a0swfl1vpfng120wf4q7h6vs0n102rk9";
+    })
+  ];
+
   meta =  with lib; {
     description = "A merge of the original Visual Boy Advance forks";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/misc/emulators/vice/default.nix b/nixpkgs/pkgs/misc/emulators/vice/default.nix
index 7d63927e33f6..f8b9e5906f3e 100644
--- a/nixpkgs/pkgs/misc/emulators/vice/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/vice/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, bison, flex, perl, libpng, giflib, libjpeg, alsaLib, readline, libGLU, libGL, libXaw
+{ lib, stdenv, fetchurl, bison, flex, perl, libpng, giflib, libjpeg, alsa-lib, readline, libGLU, libGL, libXaw
 , pkg-config, gtk2, SDL, autoreconfHook, makeDesktopItem
 }:
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0h0jbml02s2a36hr78dxv1zshmfhxp1wadpcdl09aq416fb1bf1y";
   };
 
-  buildInputs = [ bison flex perl libpng giflib libjpeg alsaLib readline libGLU libGL
+  buildInputs = [ bison flex perl libpng giflib libjpeg alsa-lib readline libGLU libGL
     pkg-config gtk2 SDL autoreconfHook libXaw ];
   dontDisableStatic = true;
   configureFlags = [ "--enable-fullscreen --enable-gnomeui" ];
diff --git a/nixpkgs/pkgs/misc/emulators/wine/base.nix b/nixpkgs/pkgs/misc/emulators/wine/base.nix
index 6d7c2543d805..0023d9878b36 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/base.nix
+++ b/nixpkgs/pkgs/misc/emulators/wine/base.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   ++ lib.optional gphoto2Support         pkgs.libgphoto2
   ++ lib.optional ldapSupport            pkgs.openldap
   ++ lib.optional fontconfigSupport      pkgs.fontconfig
-  ++ lib.optional alsaSupport            pkgs.alsaLib
+  ++ lib.optional alsaSupport            pkgs.alsa-lib
   ++ lib.optional pulseaudioSupport      pkgs.libpulseaudio
   ++ lib.optional xineramaSupport        pkgs.xorg.libXinerama
   ++ lib.optional udevSupport            pkgs.udev
@@ -151,5 +151,6 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
     license = with lib.licenses; [ lgpl21Plus ];
     description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
     maintainers = with lib.maintainers; [ avnik raskin bendlas ];
+    mainProgram = "wine";
   };
 })
diff --git a/nixpkgs/pkgs/misc/emulators/wine/sources.nix b/nixpkgs/pkgs/misc/emulators/wine/sources.nix
index 0fe4e4da92d7..6103472a7cc1 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/sources.nix
+++ b/nixpkgs/pkgs/misc/emulators/wine/sources.nix
@@ -44,9 +44,9 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "6.7";
+    version = "6.9";
     url = "https://dl.winehq.org/wine/source/6.x/wine-${version}.tar.xz";
-    sha256 = "sha256-wwUUt3YdRhFRSuAhyx41QSjXfv9UooPxQB7nAid7vqQ=";
+    sha256 = "sha256-GFVOYB3vhqmiAXKwhcZoMpFPwh511VX25U/4nn6uW/4=";
     inherit (stable) gecko32 gecko64;
 
     ## see http://wiki.winehq.org/Mono
@@ -65,19 +65,23 @@ in rec {
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-fWriizSk2+U7Mpn6w/Dlrevd4vc5MnlSWSGxQDf2p+M=";
+    sha256 = "sha256-g0NmiypafOAmKDRoRf4uz5NnhFo6uga0fKYNCF29jbE=";
     owner = "wine-staging";
     repo = "wine-staging";
-    rev = "v${version}";
+    #rev = "v${version}";
+    # FIXME: replace with line above with 6.10 release
+    # Fix https://bugs.winehq.org/show_bug.cgi?id=51172
+    rev = "5bbe3e47a559b3c04bc8791e0b398a271c772af7";
 
-    # Just keep list empty, if current release haven't broken patchsets
-    disabledPatchsets = [ ];
+    # Actually only "d3d11-Deferred_Context" cause problems, two others only dependencies
+    # see FIXME above
+    disabledPatchsets = [ "d3d11-Deferred_Context" "wined3d-CSMT_Main" "nvapi-Stub_DLL" "nvcuvid-CUDA_Video_Support" "nvencodeapi-Video_Encoder" ];
   };
 
   winetricks = fetchFromGitHub rec {
     # https://github.com/Winetricks/winetricks/releases
-    version = "20201206";
-    sha256 = "1xs09v1zr98yvwvdsmzgryc2hbk92mwn54yxx8162l461465razc";
+    version = "20210206";
+    sha256 = "sha256-tnwownY9A05nYlkYaoCQZjeGGHuE+kJYzA7MPE2bXnQ=";
     owner = "Winetricks";
     repo = "winetricks";
     rev = version;
diff --git a/nixpkgs/pkgs/misc/emulators/yapesdl/default.nix b/nixpkgs/pkgs/misc/emulators/yapesdl/default.nix
index 307068cde045..5f4b7771fb5f 100644
--- a/nixpkgs/pkgs/misc/emulators/yapesdl/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/yapesdl/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
     SDL2
   ];
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}c++" ];
+
   installPhase = ''
     runHook preInstall
     install --directory $out/bin $out/share/doc/$pname
diff --git a/nixpkgs/pkgs/misc/emulators/yuzu/base.nix b/nixpkgs/pkgs/misc/emulators/yuzu/base.nix
index b0459d61679f..1160a5fc1e7f 100644
--- a/nixpkgs/pkgs/misc/emulators/yuzu/base.nix
+++ b/nixpkgs/pkgs/misc/emulators/yuzu/base.nix
@@ -1,7 +1,7 @@
 { pname, version, src, branchName
 , stdenv, lib, fetchFromGitHub, fetchpatch, wrapQtAppsHook
 , cmake, pkg-config
-, libpulseaudio, libjack2, alsaLib, sndio
+, libpulseaudio, libjack2, alsa-lib, sndio
 , vulkan-loader, vulkan-headers
 , qtbase, qtwebengine, qttools
 , nlohmann_json, rapidjson
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
   buildInputs = [
-    libpulseaudio libjack2 alsaLib sndio
+    libpulseaudio libjack2 alsa-lib sndio
     vulkan-loader vulkan-headers
     qtbase qtwebengine qttools
     nlohmann_json rapidjson
@@ -44,6 +44,9 @@ stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = [
+    "-DYUZU_USE_BUNDLED_QT=OFF"
+    "-DYUZU_USE_BUNDLED_SDL2=OFF"
+    "-DYUZU_USE_BUNDLED_FFMPEG=OFF"
     "-DENABLE_QT_TRANSLATION=ON"
     "-DYUZU_USE_QT_WEB_ENGINE=ON"
     "-DUSE_DISCORD_PRESENCE=ON"
diff --git a/nixpkgs/pkgs/misc/emulators/yuzu/default.nix b/nixpkgs/pkgs/misc/emulators/yuzu/default.nix
index d47c5937385c..806ec806e4d6 100644
--- a/nixpkgs/pkgs/misc/emulators/yuzu/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/yuzu/default.nix
@@ -4,25 +4,25 @@ let
 in {
   mainline = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-mainline";
-    version = "576";
+    version = "633";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "yuzu-emu";
       repo = "yuzu-mainline";
       rev = "mainline-0-${version}";
-      sha256 = "121pn3kmghpcf4pzs0mc8z3viyp32rzm7rssva7cdd5016z2648k";
+      sha256 = "1zq20dd6x3kk179ls7y3mc5rj9vr73qs12bdj52bl3kscphxybf1";
       fetchSubmodules = true;
     };
   };
   early-access = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-ea";
-    version = "1536";
+    version = "1704";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "pineappleEA";
       repo = "pineapple-src";
       rev = "EA-${version}";
-      sha256 = "0smrx05xxr4b96i8bw6n6pynkl9r21ydfvpjdzxkr9amin20r54y";
+      sha256 = "07pcldcmn8ammzbnxki6by7hgacr6z0548dvhv2p5lp9qcf3xz22";
     };
   };
 }.${branch}
diff --git a/nixpkgs/pkgs/misc/frescobaldi/default.nix b/nixpkgs/pkgs/misc/frescobaldi/default.nix
index 82a3aa8c7bef..60fee5a6c861 100644
--- a/nixpkgs/pkgs/misc/frescobaldi/default.nix
+++ b/nixpkgs/pkgs/misc/frescobaldi/default.nix
@@ -2,23 +2,29 @@
 
 buildPythonApplication rec {
   pname = "frescobaldi";
-  version = "3.1.1";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "wbsoft";
     repo = "frescobaldi";
     rev = "v${version}";
-    sha256 = "07hjlq29npasn2bsb3qrzr1gikyvcc85avx0sxybfih329bvjk03";
+    sha256 = "1p8f4vn2dpqndw1dylmg7wms6vi69zcfj544c908s4r8rrmbycyf";
   };
 
   propagatedBuildInputs = with python3Packages; [
-    lilypond pygame python-ly sip
+    lilypond pygame python-ly sip_4
     pyqt5 poppler-qt5
     pyqtwebengine
   ];
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
 
+  # Needed because source is fetched from git
+  preBuild = ''
+    make -C i18n
+    make -C linux
+  '';
+
   # no tests in shipped with upstream
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/misc/jackaudio/default.nix b/nixpkgs/pkgs/misc/jackaudio/default.nix
index 9dd973674412..7474a304f032 100644
--- a/nixpkgs/pkgs/misc/jackaudio/default.nix
+++ b/nixpkgs/pkgs/misc/jackaudio/default.nix
@@ -5,7 +5,7 @@
 , aften, AudioUnit, CoreAudio, libobjc, Accelerate
 
 # Optional Dependencies
-, dbus ? null, libffado ? null, alsaLib ? null
+, dbus ? null, libffado ? null, alsa-lib ? null
 , libopus ? null
 
 # Extra options
@@ -15,14 +15,14 @@
 with lib;
 let
   inherit (python3Packages) python dbus-python;
-  shouldUsePkg = pkg: if pkg != null && lib.any (lib.meta.platformMatch stdenv.hostPlatform) pkg.meta.platforms then pkg else null;
+  shouldUsePkg = pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null;
 
   libOnly = prefix == "lib";
 
   optDbus = if stdenv.isDarwin then null else shouldUsePkg dbus;
   optPythonDBus = if libOnly then null else shouldUsePkg dbus-python;
   optLibffado = if libOnly then null else shouldUsePkg libffado;
-  optAlsaLib = if libOnly then null else shouldUsePkg alsaLib;
+  optAlsaLib = if libOnly then null else shouldUsePkg alsa-lib;
   optLibopus = shouldUsePkg libopus;
 in
 stdenv.mkDerivation rec {
diff --git a/nixpkgs/pkgs/misc/jackaudio/jack1.nix b/nixpkgs/pkgs/misc/jackaudio/jack1.nix
index ea7356b32e91..aebe32497c1d 100644
--- a/nixpkgs/pkgs/misc/jackaudio/jack1.nix
+++ b/nixpkgs/pkgs/misc/jackaudio/jack1.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, pkg-config
 
 # Optional Dependencies
-, alsaLib ? null, db ? null, libuuid ? null, libffado ? null, celt ? null
+, alsa-lib ? null, db ? null, libuuid ? null, libffado ? null, celt ? null
 }:
 
 let
-  shouldUsePkg = pkg: if pkg != null && lib.any (lib.meta.platformMatch stdenv.hostPlatform) pkg.meta.platforms then pkg else null;
+  shouldUsePkg = pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null;
 
-  optAlsaLib = shouldUsePkg alsaLib;
+  optAlsaLib = shouldUsePkg alsa-lib;
   optDb = shouldUsePkg db;
   optLibuuid = shouldUsePkg libuuid;
   optLibffado = shouldUsePkg libffado;
diff --git a/nixpkgs/pkgs/misc/lightspark/default.nix b/nixpkgs/pkgs/misc/lightspark/default.nix
index 7c9a4815e0a5..0e99767a2cb6 100644
--- a/nixpkgs/pkgs/misc/lightspark/default.nix
+++ b/nixpkgs/pkgs/misc/lightspark/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, curl, zlib, ffmpeg_3, glew, pcre
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, curl, zlib, ffmpeg, glew, pcre
 , rtmpdump, cairo, boost, SDL2, SDL2_mixer, libjpeg, pango, xz, nasm
 , llvm, glibmm
 }:
@@ -14,21 +14,21 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-pIiv5wEDLvTHjlYSicXUTTI6pVAsO6FC39Gie9Z/hZ4=";
   };
 
-  patchPhase = ''
+  postPatch = ''
     sed -i 's/SET(ETCDIR "\/etc")/SET(ETCDIR "etc")/g' CMakeLists.txt
   '';
 
   nativeBuildInputs = [ pkg-config cmake ];
 
   buildInputs = [
-    curl zlib ffmpeg_3 glew pcre rtmpdump cairo boost SDL2 SDL2_mixer libjpeg
+    curl zlib ffmpeg glew pcre rtmpdump cairo boost SDL2 SDL2_mixer libjpeg
     pango xz nasm llvm glibmm
   ];
 
   meta = with lib; {
     description = "Open source Flash Player implementation";
     homepage = "https://lightspark.github.io/";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ jchw ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/misc/lilypond/default.nix b/nixpkgs/pkgs/misc/lilypond/default.nix
index d8db893f7d70..b75f9c3f8008 100644
--- a/nixpkgs/pkgs/misc/lilypond/default.nix
+++ b/nixpkgs/pkgs/misc/lilypond/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lilypond";
-  version = "2.22.0";
+  version = "2.22.1";
 
   src = fetchurl {
     url = "http://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz";
-    sha256 = "0khg9dlm1b02mm9w54xqc9ydj416xkikn6p08g1asiyjf4qx1pb4";
+    sha256 = "sha256-cqwtVMMQwxQcC3gtTgvvkALVUZz0ZjJ1mx8D72lpzDA=";
   };
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/misc/logging/beats/6.x.nix b/nixpkgs/pkgs/misc/logging/beats/6.x.nix
index ce80b174d327..81b8ba0ab5bf 100644
--- a/nixpkgs/pkgs/misc/logging/beats/6.x.nix
+++ b/nixpkgs/pkgs/misc/logging/beats/6.x.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, elk6Version, buildGoPackage, libpcap, systemd }:
+{ lib, fetchFromGitHub, elk6Version, buildGoPackage, libpcap, nixosTests, systemd }:
 
 let beat = package : extraArgs : buildGoPackage (rec {
       name = "${package}-${version}";
@@ -22,10 +22,17 @@ let beat = package : extraArgs : buildGoPackage (rec {
         platforms = platforms.linux;
       };
     } // extraArgs);
-in {
+in rec {
   filebeat6   = beat "filebeat"   {meta.description = "Lightweight shipper for logfiles";};
   heartbeat6  = beat "heartbeat"  {meta.description = "Lightweight shipper for uptime monitoring";};
-  metricbeat6 = beat "metricbeat" {meta.description = "Lightweight shipper for metrics";};
+  metricbeat6 = beat "metricbeat" {
+    meta.description = "Lightweight shipper for metrics";
+    passthru.tests =
+      assert metricbeat6.drvPath == nixosTests.elk.ELK-6.elkPackages.metricbeat.drvPath;
+      {
+        elk = nixosTests.elk.ELK-6;
+      };
+  };
   packetbeat6 = beat "packetbeat" {
     buildInputs = [ libpcap ];
     meta.broken = true;
diff --git a/nixpkgs/pkgs/misc/logging/beats/7.x.nix b/nixpkgs/pkgs/misc/logging/beats/7.x.nix
index 43ea85508c69..77e14e96c54e 100644
--- a/nixpkgs/pkgs/misc/logging/beats/7.x.nix
+++ b/nixpkgs/pkgs/misc/logging/beats/7.x.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, elk7Version, buildGoPackage, libpcap, systemd }:
+{ lib, fetchFromGitHub, elk7Version, buildGoPackage, libpcap, nixosTests, systemd }:
 
 let beat = package : extraArgs : buildGoPackage (rec {
       name = "${package}-${version}";
@@ -22,10 +22,17 @@ let beat = package : extraArgs : buildGoPackage (rec {
         platforms = platforms.linux;
       };
     } // extraArgs);
-in {
+in rec {
   filebeat7   = beat "filebeat"   {meta.description = "Lightweight shipper for logfiles";};
   heartbeat7  = beat "heartbeat"  {meta.description = "Lightweight shipper for uptime monitoring";};
-  metricbeat7 = beat "metricbeat" {meta.description = "Lightweight shipper for metrics";};
+  metricbeat7 = beat "metricbeat" {
+    meta.description = "Lightweight shipper for metrics";
+    passthru.tests =
+      assert metricbeat7.drvPath == nixosTests.elk.ELK-7.elkPackages.metricbeat.drvPath;
+      {
+        elk = nixosTests.elk.ELK-7;
+      };
+  };
   packetbeat7 = beat "packetbeat" {
     buildInputs = [ libpcap ];
     meta.description = "Network packet analyzer that ships data to Elasticsearch";
diff --git a/nixpkgs/pkgs/misc/scream-receivers/default.nix b/nixpkgs/pkgs/misc/scream-receivers/default.nix
deleted file mode 100644
index 6c0f73f1b258..000000000000
--- a/nixpkgs/pkgs/misc/scream-receivers/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, alsaLib
-, pulseSupport ? false, libpulseaudio ? null
-}:
-
-stdenv.mkDerivation rec {
-  pname = "scream-receivers";
-  version = "3.4";
-
-  src = fetchFromGitHub {
-    owner = "duncanthrax";
-    repo = "scream";
-    rev = version;
-    sha256 = "1ig89bmzfrm57nd8lamzsdz5z81ks5vjvq3f0xhgm2dk2mrgjsj3";
-  };
-
-  buildInputs = [ alsaLib ] ++ lib.optional pulseSupport libpulseaudio;
-
-  buildPhase = ''
-    (cd Receivers/alsa && make)
-    (cd Receivers/alsa-ivshmem && make)
-  '' + lib.optionalString pulseSupport ''
-    (cd Receivers/pulseaudio && make)
-    (cd Receivers/pulseaudio-ivshmem && make)
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mv ./Receivers/alsa/scream-alsa $out/bin/
-    mv ./Receivers/alsa-ivshmem/scream-ivshmem-alsa $out/bin/
-  '' + lib.optionalString pulseSupport ''
-    mv ./Receivers/pulseaudio/scream-pulse $out/bin/
-    mv ./Receivers/pulseaudio-ivshmem/scream-ivshmem-pulse $out/bin/
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    export PATH=$PATH:$out/bin
-    set -o verbose
-    set +o pipefail
-
-    # Programs exit with code 1 when testing help, so grep for a string
-    scream-alsa -h 2>&1 | grep -q Usage:
-    scream-ivshmem-alsa 2>&1 | grep -q Usage:
-  '' + lib.optionalString pulseSupport ''
-    scream-pulse -h 2>&1 | grep -q Usage:
-    scream-ivshmem-pulse 2>&1 | grep -q Usage:
-  '';
-
-  meta = with lib; {
-    description = "Audio receivers for the Scream virtual network sound card";
-    homepage = "https://github.com/duncanthrax/scream";
-    license = licenses.mspl;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/misc/screensavers/betterlockscreen/default.nix b/nixpkgs/pkgs/misc/screensavers/betterlockscreen/default.nix
index 8d40df14616e..facac2717c4c 100644
--- a/nixpkgs/pkgs/misc/screensavers/betterlockscreen/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/betterlockscreen/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "betterlockscreen";
-  version = "3.0.1";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "pavanjadhaw";
     repo = "betterlockscreen";
     rev = version;
-    sha256 = "0jc8ifb69shmd0avx6vny4m1w5dfxkkf5vnm7qcrmc8yflb0s3z6";
+    sha256 = "sha256-UOMCTHtw1C+MiJL6AQ+8gqmmbqrs1QTzEi1Ar03PyMs=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/misc/screensavers/betterlockscreen/replace-i3lock.patch b/nixpkgs/pkgs/misc/screensavers/betterlockscreen/replace-i3lock.patch
index 3bbbfcfd613d..439c3561f960 100644
--- a/nixpkgs/pkgs/misc/screensavers/betterlockscreen/replace-i3lock.patch
+++ b/nixpkgs/pkgs/misc/screensavers/betterlockscreen/replace-i3lock.patch
@@ -1,12 +1,14 @@
+diff --git a/betterlockscreen b/betterlockscreen
+index 6dd06e0..746d820 100755
 --- a/betterlockscreen
 +++ b/betterlockscreen
-@@ -76,7 +76,7 @@ prelock() {
+@@ -87,7 +87,7 @@ prelock() {
  lock() {
  	#$1 image path
  
 -	i3lock \
 +	i3lock-color \
+ 		-c 00000000 \
  		-t -i "$1" \
  		--timepos='x+110:h-70' \
- 		--datepos='x+43:h-45' \
 
diff --git a/nixpkgs/pkgs/misc/screensavers/electricsheep/default.nix b/nixpkgs/pkgs/misc/screensavers/electricsheep/default.nix
index 74d9e3cffee0..d1aa7d9911b2 100644
--- a/nixpkgs/pkgs/misc/screensavers/electricsheep/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/electricsheep/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Electric Sheep, a distributed screen saver for evolving artificial organisms";
     homepage = "https://electricsheep.org/";
-    maintainers = with maintainers; [ nand0p fpletz ];
+    maintainers = with maintainers; [ fpletz ];
     platforms = platforms.linux;
     license = licenses.gpl1;
   };
diff --git a/nixpkgs/pkgs/misc/screensavers/vlock/default.nix b/nixpkgs/pkgs/misc/screensavers/vlock/default.nix
index 243d582bdcee..4813e2493075 100644
--- a/nixpkgs/pkgs/misc/screensavers/vlock/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/vlock/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Virtual console locking program";
     license = licenses.gpl2;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/misc/sndio/default.nix b/nixpkgs/pkgs/misc/sndio/default.nix
index c86198a6985b..9e4035801f1e 100644
--- a/nixpkgs/pkgs/misc/sndio/default.nix
+++ b/nixpkgs/pkgs/misc/sndio/default.nix
@@ -1,17 +1,19 @@
-{ lib, stdenv, fetchurl, alsaLib, fixDarwinDylibNames }:
+{ lib, stdenv, fetchurl, alsa-lib, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "sndio";
-  version = "1.7.0";
-  enableParallelBuilding = true;
-  nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-  buildInputs = lib.optional stdenv.hostPlatform.isLinux alsaLib;
+  version = "1.8.0";
 
   src = fetchurl {
     url = "http://www.sndio.org/sndio-${version}.tar.gz";
-    sha256 = "0ljmac0lnjn61admgbcwjfcr5fwccrsblx9rj9bys8wlhz8f796x";
+    sha256 = "027hlqji0h2cm96rb8qvkdmwxl56l59bgn828nvmwak2c2i5k703";
   };
 
+  nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+  buildInputs = lib.optional stdenv.hostPlatform.isLinux alsa-lib;
+
+  enableParallelBuilding = true;
+
   meta = with lib; {
     homepage = "http://www.sndio.org";
     description = "Small audio and MIDI framework part of the OpenBSD project";
diff --git a/nixpkgs/pkgs/misc/solfege/default.nix b/nixpkgs/pkgs/misc/solfege/default.nix
index af2ce3f53cf2..fc7062d904c3 100644
--- a/nixpkgs/pkgs/misc/solfege/default.nix
+++ b/nixpkgs/pkgs/misc/solfege/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchurl, gettext, pkg-config, texinfo, wrapGAppsHook
 , buildPythonApplication, pycairo, pygobject3
 , gobject-introspection, gtk3, librsvg
-, alsaUtils, timidity, mpg123, vorbis-tools, csound, lilypond
+, alsa-utils, timidity, mpg123, vorbis-tools, csound, lilypond
 }:
 
 buildPythonApplication rec {
@@ -24,7 +24,7 @@ buildPythonApplication rec {
   propagatedBuildInputs = [ pycairo pygobject3 ];
 
   preBuild = ''
-    sed -i -e 's|wav_player=.*|wav_player=${alsaUtils}/bin/aplay|' \
+    sed -i -e 's|wav_player=.*|wav_player=${alsa-utils}/bin/aplay|' \
            -e 's|midi_player=.*|midi_player=${timidity}/bin/timidity|' \
            -e 's|mp3_player=.*|mp3_player=${mpg123}/bin/mpg123|' \
            -e 's|ogg_player=.*|ogg_player=${vorbis-tools}/bin/ogg123|' \
diff --git a/nixpkgs/pkgs/misc/t-rec/default.nix b/nixpkgs/pkgs/misc/t-rec/default.nix
new file mode 100644
index 000000000000..b9663cee5c33
--- /dev/null
+++ b/nixpkgs/pkgs/misc/t-rec/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, imagemagick, ffmpeg, rustPlatform, fetchFromGitHub, makeWrapper
+, libiconv, Foundation }:
+
+let
+  binPath = lib.makeBinPath [
+    imagemagick
+    ffmpeg
+  ];
+in
+rustPlatform.buildRustPackage rec {
+  pname = "t-rec";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "sassman";
+    repo = "t-rec-rs";
+    rev = "v${version}";
+    sha256 = "InArrBqfhDrsonjmCIPTBVOA/s2vYml9Ay6cdrKLd7c=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ imagemagick ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv Foundation ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/t-rec" --prefix PATH : "${binPath}"
+  '';
+
+  cargoSha256 = "4gwfrC65YlXV6Wu2ninK1TvMNUkY1GstVYPr0FK+xLU=";
+
+  meta = with lib; {
+    description = "Blazingly fast terminal recorder that generates animated gif images for the web written in rust";
+    homepage = "https://github.com/sassman/t-rec-rs";
+    license = with licenses; [ gpl3Only ];
+    maintainers = [ maintainers.hoverbear ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/uboot/default.nix b/nixpkgs/pkgs/misc/uboot/default.nix
index 6c59c13d12e2..cd401907125b 100644
--- a/nixpkgs/pkgs/misc/uboot/default.nix
+++ b/nixpkgs/pkgs/misc/uboot/default.nix
@@ -18,10 +18,10 @@
 }:
 
 let
-  defaultVersion = "2021.01";
+  defaultVersion = "2021.04";
   defaultSrc = fetchurl {
     url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
-    sha256 = "0m04glv9kn3bhs62sn675w60wkrl4m3a4hnbnnw67s3l198y21xl";
+    sha256 = "06p1vymf0dl6jc2xy5w7p42mpgppa46lmpm2ishmgsycnldqnhqd";
   };
   buildUBoot = {
     version ? null
diff --git a/nixpkgs/pkgs/misc/uq/default.nix b/nixpkgs/pkgs/misc/uq/default.nix
index 5c0fb9549100..e0c62ca92cab 100755
--- a/nixpkgs/pkgs/misc/uq/default.nix
+++ b/nixpkgs/pkgs/misc/uq/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1qqqmdk0v1d3ckasmmw5lbrkvhkv0nws4bzi9cfi1ndhrbvbkbxb";
   };
 
-  cargoSha256 = "1fv13rbghfw7114h7sda04gpqrjrsgnnki0p9kdd6r6sk5cbhn9x";
+  cargoSha256 = "1p6008vxm2pi9v31qhsq7zysanal6rcvcl8553373bkqlfd7w5c4";
 
   meta = with lib; {
     description = "A simple, user-friendly alternative to sort | uniq";
diff --git a/nixpkgs/pkgs/misc/vim-plugins/aliases.nix b/nixpkgs/pkgs/misc/vim-plugins/aliases.nix
index 4cfb6ccd372f..4e08e5fe05e1 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/aliases.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/aliases.nix
@@ -1,8 +1,7 @@
 # Deprecated aliases - for backward compatibility
+lib:
 
-lib: overriden:
-
-with overriden;
+final: prev:
 
 let
   # Removing recurseForDerivation prevents derivations of aliased attribute
@@ -21,12 +20,12 @@ let
 
   # Make sure that we are not shadowing something from
   # all-packages.nix.
-  checkInPkgs = n: alias: if builtins.hasAttr n overriden
+  checkInPkgs = n: alias: if builtins.hasAttr n prev
                           then throw "Alias ${n} is still in vim-plugins"
                           else alias;
 
   mapAliases = aliases:
-     lib.mapAttrs (n: alias: removeDistribute
+    lib.mapAttrs (n: alias: removeDistribute
                              (removeRecurseForDerivations
                               (checkInPkgs n alias)))
                      aliases;
@@ -36,7 +35,7 @@ let
   ) (builtins.fromJSON (builtins.readFile ./deprecated.json));
 
 in
-mapAliases ({
+mapAliases (with prev; {
   airline             = vim-airline;
   alternative         = a-vim; # backwards compat, added 2014-10-21
   bats                = bats-vim;
diff --git a/nixpkgs/pkgs/misc/vim-plugins/default.nix b/nixpkgs/pkgs/misc/vim-plugins/default.nix
index e6bca9484a26..cbc6ec7380ba 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/default.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/default.nix
@@ -5,8 +5,12 @@ let
 
   inherit (vimUtils.override {inherit vim;}) buildVimPluginFrom2Nix;
 
+  inherit (lib) extends;
+
+  initialPackages = self: {};
+
   plugins = callPackage ./generated.nix {
-    inherit buildVimPluginFrom2Nix overrides;
+    inherit buildVimPluginFrom2Nix;
   };
 
   # TL;DR
@@ -21,8 +25,13 @@ let
     inherit llvmPackages;
   };
 
-  aliases = lib.optionalAttrs (config.allowAliases or true) (import ./aliases.nix lib plugins);
+  aliases = if (config.allowAliases or true) then (import ./aliases.nix lib) else final: prev: {};
 
+  extensible-self = lib.makeExtensible
+    (extends aliases
+      (extends overrides
+        (extends plugins initialPackages)
+      )
+    );
 in
-
-plugins // aliases
+  extensible-self
diff --git a/nixpkgs/pkgs/misc/vim-plugins/generated.nix b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
index 651515c3150d..a7fdb5fd9193 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/generated.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
@@ -1,7 +1,7 @@
 # This file has been generated by ./pkgs/misc/vim-plugins/update.py. Do not edit!
-{ lib, buildVimPluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
-let
-  packages = ( self:
+{ lib, buildVimPluginFrom2Nix, fetchFromGitHub }:
+
+final: prev:
 {
   a-vim = buildVimPluginFrom2Nix {
     pname = "a-vim";
@@ -65,12 +65,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2021-04-20";
+    version = "2021-05-27";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "737c1bf1ac9becd67519f7a6832ad276feca8f08";
-      sha256 = "0imngagc6p5mfx1v2maxcwzh75l1y4diyd1ymwjil51x93qkrzxi";
+      rev = "1b08791228f5aca4545a3fba6699b29a003028fe";
+      sha256 = "07fmvg4hcri98zxnyjab2inzaapqc2w08rzdkspcgrhibqvp53jk";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -89,24 +89,24 @@ let
 
   aniseed = buildVimPluginFrom2Nix {
     pname = "aniseed";
-    version = "2021-02-27";
+    version = "2021-05-31";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "aniseed";
-      rev = "984d84a1bda7208587feb3d62cfec5bcab404af2";
-      sha256 = "00gf2xm20wg0p1ik55jwhzlbd5sz06k3hk30415xayfa6flgh0n4";
+      rev = "4ca3d418eebc0da452b7defc18970c83f7de5070";
+      sha256 = "0ax3hfwppbkm7haxvsllac6r4zk2ys9rrj7sj4p3ayl1w8v3n8nq";
     };
     meta.homepage = "https://github.com/Olical/aniseed/";
   };
 
   ansible-vim = buildVimPluginFrom2Nix {
     pname = "ansible-vim";
-    version = "2021-04-11";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "pearofducks";
       repo = "ansible-vim";
-      rev = "bc9c3bf48961f5babb24243bd407c715ce551210";
-      sha256 = "1pvjjxw3nz3s11f83rbmdhad5rvks0q2am09sfxns0x4rwiwcyrk";
+      rev = "804099202b72ffd4bf4ea4ce24d8d7bac8b9ae2d";
+      sha256 = "0p93g0zi8j6bf5zh0ng9vdl9f76dan524g22jpb8c0xmm6ywns5l";
     };
     meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
@@ -161,12 +161,12 @@ let
 
   asyncomplete-vim = buildVimPluginFrom2Nix {
     pname = "asyncomplete-vim";
-    version = "2021-03-03";
+    version = "2021-05-04";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "asyncomplete.vim";
-      rev = "8e018dee9c5e2205288bda01be0de196b04b7cf2";
-      sha256 = "1ghv6zp3qajd4n9qv3mnxqhczi77qmds2b2iicbl252slvldr604";
+      rev = "6c653c3f8f1c1cf7a34522c9555d5160f36d29ee";
+      sha256 = "1zzdybfswlh66gw8a3imkwf7m6g13rlf6dqyg71c6bfmn3zlx2l0";
     };
     meta.homepage = "https://github.com/prabirshrestha/asyncomplete.vim/";
   };
@@ -183,6 +183,18 @@ let
     meta.homepage = "https://github.com/vmchale/ats-vim/";
   };
 
+  aurora = buildVimPluginFrom2Nix {
+    pname = "aurora";
+    version = "2021-06-06";
+    src = fetchFromGitHub {
+      owner = "ray-x";
+      repo = "aurora";
+      rev = "6a77e8ecf38b0e7a547df58f499cecc1c50cd444";
+      sha256 = "1yh88v6p1ingwydzr40jcva9gw58ihmgjndaf7h3sp0ldvl75ci2";
+    };
+    meta.homepage = "https://github.com/ray-x/aurora/";
+  };
+
   auto-git-diff = buildVimPluginFrom2Nix {
     pname = "auto-git-diff";
     version = "2019-09-23";
@@ -209,12 +221,12 @@ let
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2021-04-24";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "6e87fa2ed6b6fe7ccd14fe4b30cc00be47afc3c6";
-      sha256 = "00d3ga6rpzwcz2pcdgwrnr2xymh1hizs46zzc8jjmrj58k8sg033";
+      rev = "80ddcf26eca11cf4d48a52ffec094fe5a4711f32";
+      sha256 = "0kh6a5hm0ppsbfpp7yhr2k4v36mj203q59wy15sgajx08ww0jj3m";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -233,12 +245,12 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2021-02-26";
+    version = "2021-05-16";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "1ed59bff2a84e48e1a243a7e5d336a395f610e2a";
-      sha256 = "1acz9zwb9mwyhfckpzv22dy5c4bq83jrmvvbd22z9k0hm5py2538";
+      rev = "39f8083c885149f52712b65b8d5380d63939bc23";
+      sha256 = "1kc8lszdc4gglf5pyp7g6kb4kspml8rd41jv083p29ipwy9n8a8j";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -257,12 +269,12 @@ let
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar-nvim";
-    version = "2021-04-21";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "54b4376d9a44b45f12b0f6f5bcc46f98b66782e1";
-      sha256 = "0nh4rgyix8mj3wag8wpcy68avyrh5ps89a842fqdd5x6054d3apv";
+      rev = "23b6f64c9523522dd185482c856de492476a760c";
+      sha256 = "1ijm4w4nqa037vjpjgjizhzrnpj10hwjc93lhzq29qs3cx85df1q";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -315,6 +327,18 @@ let
     meta.homepage = "https://github.com/euclidianAce/BetterLua.vim/";
   };
 
+  bracey-vim = buildVimPluginFrom2Nix {
+    pname = "bracey-vim";
+    version = "2021-05-11";
+    src = fetchFromGitHub {
+      owner = "turbio";
+      repo = "bracey.vim";
+      rev = "457933c107db65ff7e2695e07209a9a2934544b7";
+      sha256 = "1x8c8l9x4i9n2rlh3a8zha0ni85v04p32w7yciwxp7ddlwzf3lwh";
+    };
+    meta.homepage = "https://github.com/turbio/bracey.vim/";
+  };
+
   brainfuck-vim = buildVimPluginFrom2Nix {
     pname = "brainfuck-vim";
     version = "2021-01-28";
@@ -389,12 +413,12 @@ let
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2021-04-24";
+    version = "2021-06-09";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "e7c2807bf0c029864f346024981f1a7927044393";
-      sha256 = "063jk33l7yz467b0v00s3h5gb3lbwb0x5gh4r5bignlhm518sfa3";
+      rev = "eaee30fe7afdbce73f92d0c766f4b411c8de5525";
+      sha256 = "0b73k55zfhd4ygqiwwps17fp9nksbs8km57vfl0y85vb3ajzg0l6";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -425,12 +449,12 @@ let
 
   ci_dark = buildVimPluginFrom2Nix {
     pname = "ci_dark";
-    version = "2021-04-24";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "yunlingz";
       repo = "ci_dark";
-      rev = "4c314000b5a21a1b9f52442a0c80e4b3fd4f0a1f";
-      sha256 = "1wxsgaixdmb8v87kavvyyiyqlkn7ck5g39hkq4j19747jnb6lvqf";
+      rev = "d50cd0c60ecdaffb779d2acb7ce2bb94df1ed867";
+      sha256 = "0pqpvqas1z173c2ngka787d9gp49ai3x85haingkxvir3bf0nbqm";
     };
     meta.homepage = "https://github.com/yunlingz/ci_dark/";
   };
@@ -461,12 +485,12 @@ let
 
   coc-clap = buildVimPluginFrom2Nix {
     pname = "coc-clap";
-    version = "2021-03-04";
+    version = "2021-05-10";
     src = fetchFromGitHub {
       owner = "vn-ki";
       repo = "coc-clap";
-      rev = "57116d2f999dfa025fac579835fd23e1a6341fa2";
-      sha256 = "0m2khf11krkqmbykfx21yq9ydglz6dldw4xml5nkyqm93n37xn1s";
+      rev = "8622be2674f3197bec8a0c4cfd177eb8455f45e6";
+      sha256 = "063azqsibg25iv2c9smn4k6933frrwarqz640b14c041sgi6h8cx";
     };
     meta.homepage = "https://github.com/vn-ki/coc-clap/";
   };
@@ -485,24 +509,24 @@ let
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2021-04-24";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "70f0691e14c8e55290e554591c0a2661dea530fa";
-      sha256 = "1m3kwgng7xi8xycc0dcx0wr9i7q0anx9lpax0r4p2a26vaqam539";
+      rev = "1be2273dc37c07b98b7a1b2b67fd57c80feb85a9";
+      sha256 = "06w052x13idb8wfvyasg36hakffxnzfs7paj3wk83qa2m1kiz1n4";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2021-04-14";
+    version = "2021-05-08";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "f76e290d6765261b0a4aee2247dfaaba77e30ab9";
-      sha256 = "0xm9clynyp7h248iddpns7rqdllgvf3f34qlxn47fby2nh07galc";
+      rev = "02cd0ca0fa06712b7609b87c50e5e05998b3a771";
+      sha256 = "093dcv4hzxxz2ygawjka08j4s7akygh2fldn4mfzrxjyjpxqal0c";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -533,12 +557,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2021-04-23";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "f9c4fc96fd08f13f549c4bc0eb56f2d91ca91919";
-      sha256 = "087nvvxfxrllnx2ggi8m088wgcrm1hd9c5mqfx37zmzfjqk78rw4";
+      rev = "898335d52ed925e8dd5dd3da3c25470d352b2e11";
+      sha256 = "19ks20v1mjm5yrhlrkxqpmsc8jz2nfz5w38ixfkpbhdj3qwdf5gg";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -555,6 +579,18 @@ let
     meta.homepage = "https://github.com/metakirby5/codi.vim/";
   };
 
+  colorbuddy-nvim = buildVimPluginFrom2Nix {
+    pname = "colorbuddy-nvim";
+    version = "2021-04-16";
+    src = fetchFromGitHub {
+      owner = "tjdevries";
+      repo = "colorbuddy.nvim";
+      rev = "87c80e3f4a590d0387d9b128d1f1fc456759408a";
+      sha256 = "19gfmyhmwpr8gi03w44zm056zrzaj74hplpl4psy9mylvb0ghf0k";
+    };
+    meta.homepage = "https://github.com/tjdevries/colorbuddy.nvim/";
+  };
+
   colorizer = buildVimPluginFrom2Nix {
     pname = "colorizer";
     version = "2020-07-23";
@@ -581,12 +617,12 @@ let
 
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
-    version = "2021-03-14";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "command-t";
-      rev = "a7ce436b211a7ac1f47cfd440370653e33c2a1d5";
-      sha256 = "1yfcbh9q35w1ckdv8isbwjwlgnjnjmqm8yc7bcbfirkx9pjlsw2z";
+      rev = "6a00a2cabfb5ee3f49ff556ceea56892825c0397";
+      sha256 = "0z2zr2mfc5m4xn8b0j0br7q96hs42md5wd53viv0zmw67i2pnbcs";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/wincent/command-t/";
@@ -616,18 +652,54 @@ let
     meta.homepage = "https://github.com/tami5/compe-conjure/";
   };
 
+  compe-latex-symbols = buildVimPluginFrom2Nix {
+    pname = "compe-latex-symbols";
+    version = "2021-05-14";
+    src = fetchFromGitHub {
+      owner = "GoldsteinE";
+      repo = "compe-latex-symbols";
+      rev = "70f58e53e142e3c59fe0f673dd54ce690ae57367";
+      sha256 = "0p4xss3zyp6002hsa6dx989zhp672mc30b57w5cjhcgbknw0iy1l";
+    };
+    meta.homepage = "https://github.com/GoldsteinE/compe-latex-symbols/";
+  };
+
   compe-tabnine = buildVimPluginFrom2Nix {
     pname = "compe-tabnine";
-    version = "2021-04-23";
+    version = "2021-05-09";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "compe-tabnine";
-      rev = "f6ace45ef5cbd8b274d7163a2931c11083d34d44";
-      sha256 = "0wjy38v3h5nqr2vw2ydhy2227cqkd8k14cnb3vr39xm5c0fc3ci5";
+      rev = "755e45c97d29d73400f8fba591ff06054d37127a";
+      sha256 = "0gsq2v0qpzw211fmss3c004pmqcfns9vy4fhki9a0c69zk1ggalp";
     };
     meta.homepage = "https://github.com/tzachar/compe-tabnine/";
   };
 
+  compe-tmux = buildVimPluginFrom2Nix {
+    pname = "compe-tmux";
+    version = "2021-05-31";
+    src = fetchFromGitHub {
+      owner = "andersevenrud";
+      repo = "compe-tmux";
+      rev = "b199db008d07caf7f1d488ac3f171910416528a4";
+      sha256 = "1qiir95bz046ppp6pp8k6m00jrjcy2yp098s72lwfnsls6pqsgpf";
+    };
+    meta.homepage = "https://github.com/andersevenrud/compe-tmux/";
+  };
+
+  compe-zsh = buildVimPluginFrom2Nix {
+    pname = "compe-zsh";
+    version = "2021-04-03";
+    src = fetchFromGitHub {
+      owner = "tamago324";
+      repo = "compe-zsh";
+      rev = "1a46a0ee661242f6a015b2abead34b606bb97171";
+      sha256 = "0m8fmsx4bwmgqgjpwpldckp68hpx6qfschwdg275xsxkzw8pdnbk";
+    };
+    meta.homepage = "https://github.com/tamago324/compe-zsh/";
+  };
+
   completion-buffers = buildVimPluginFrom2Nix {
     pname = "completion-buffers";
     version = "2021-01-17";
@@ -642,12 +714,12 @@ let
 
   completion-nvim = buildVimPluginFrom2Nix {
     pname = "completion-nvim";
-    version = "2021-04-08";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "completion-nvim";
-      rev = "8bca7aca91c947031a8f14b038459e35e1755d90";
-      sha256 = "02zqc75p9ggrz6fyiwvzpnzipfd1s5xfr7fli2yypb4kp72mrbaf";
+      rev = "c8db953a8e9f4bc8183e31831297cf84d6f521b8";
+      sha256 = "0p35msrh7g100ayl0g8285q43v20n6hlv1grdb0rmw8sil0j881a";
     };
     meta.homepage = "https://github.com/nvim-lua/completion-nvim/";
   };
@@ -688,26 +760,38 @@ let
     meta.homepage = "https://github.com/chikatoike/concealedyank.vim/";
   };
 
+  conflict-marker-vim = buildVimPluginFrom2Nix {
+    pname = "conflict-marker-vim";
+    version = "2020-09-23";
+    src = fetchFromGitHub {
+      owner = "rhysd";
+      repo = "conflict-marker.vim";
+      rev = "6a9b8f92a57ea8a90cbf62c960db9e5894be2d7a";
+      sha256 = "0vw5kvnmwwia65gni97vk42b9s47r3p5bglrhpcxsvs3f4s250vq";
+    };
+    meta.homepage = "https://github.com/rhysd/conflict-marker.vim/";
+  };
+
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2021-04-01";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "46b766dee43a97266741087085889751b474fb56";
-      sha256 = "1034n76bg4p4yvqmz9g9clsrrhx0kvqs0z8fy6p9axmxqzi8z9rr";
+      rev = "643ae9bf5f08e752a22027628b69a31ce271f1b5";
+      sha256 = "0jbd1y0riq6xdyh0x5msw8475b7v0viapgkmawyda3ax8bczb3jv";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
 
   context_filetype-vim = buildVimPluginFrom2Nix {
     pname = "context_filetype-vim";
-    version = "2021-03-04";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "context_filetype.vim";
-      rev = "f5e4ed8f7847cd5474017459c2a0f2dfd2bf971c";
-      sha256 = "039mnsd6k0sgs8l1a8ngl3y817c8g657nv8v9bdw9h8l5a934cb2";
+      rev = "eca5b28dca1bace3b5694eb20b3ab244f65180e0";
+      sha256 = "0n0av5x6js5ld4xnlq5nh18cdwhvrljdsx17gq2sf54q342hlwp0";
     };
     meta.homepage = "https://github.com/Shougo/context_filetype.vim/";
   };
@@ -726,12 +810,12 @@ let
 
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2021-04-05";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "54b9cbf9da4a956dc55cd903f3b4f7b211b712a2";
-      sha256 = "0ir10ff5va38ch52fvyl5cfz4mjins3lpklqyh23rrqc0hfd8154";
+      rev = "2f1c81a86342e333a916a1bc7db5218cf115a191";
+      sha256 = "0ysnsixa7zy4plxr2qm2phyvl63qnmszjh3d8cbr4852klmv0shw";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -774,12 +858,12 @@ let
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv-vim";
-    version = "2021-03-15";
+    version = "2021-05-09";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "24da62f64e6025be12ad60b16489b561f228e619";
-      sha256 = "0x5z46rzhwrdr1fzq69c6bpn3dnjjj9a64s97wn220n4xwrz1y54";
+      rev = "a7baf1ce934e725fbcd61b7e6aa27572c0439681";
+      sha256 = "1bfi90h3xn0iz9kp2jglxsw22aq72si6xccvsfhxhjsz329rw239";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -882,12 +966,12 @@ let
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2021-04-21";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "3730b008158327d0068b8a9b19d57fd7459bb8b9";
-      sha256 = "0bc1gfwsms0mrxjfp7ia4r2rw1b95ih8xgkh02l9b30wp81xdfr3";
+      rev = "b42f1b974a50d4c0ebe563a210b5a3bf138c0166";
+      sha256 = "0z0xd5qnrm85ibwy826n7wbk0w8nzwmrs5xii9xkxgych4q9xanp";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -930,24 +1014,24 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2021-04-17";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "c3d1c1893bcaaa6b44135cbc8f3b809b703cf4dc";
-      sha256 = "14y1fz4i7ym2f2q1lv93giq99y6jai0jwdvm5nlcr8ksrazfwq9v";
+      rev = "a20d2376b57ca500782719f1c4f83796d160c296";
+      sha256 = "15hrlr6f98y1cmdyrlady6h4b501b7mvyzfbvsqcxjj8vj18pxas";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2021-04-12";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "b9dd634beacfda00a6d4c388867cc1348735f3a2";
-      sha256 = "055k2fph67glzlx10611a6z7s10z3jsms21ixzy25hsdvr75xpda";
+      rev = "6f3574b091d48e37599dcb356349a31472556716";
+      sha256 = "0im9jnrbf1qbglh9wzqalfvp98wx9ccg5gk89k40nz3gggpwsbfh";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1076,12 +1160,12 @@ let
 
   deoplete-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-lsp";
-    version = "2021-02-07";
+    version = "2021-05-23";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-lsp";
-      rev = "e526dbecda137e37c45492ce72fa92ea32314154";
-      sha256 = "03dwis03zx88j4dan1y39b03rvf7f2q7hykhgqsfcx1zj8lp8s7n";
+      rev = "00937dd6e4270287c34cdd7f64e8dad5d16914aa";
+      sha256 = "0fzp5zvwb85nx9nw1f2im1qllz7ihblgi8xi9mski19p40pgay3j";
     };
     meta.homepage = "https://github.com/deoplete-plugins/deoplete-lsp/";
   };
@@ -1172,12 +1256,12 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2021-04-21";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "187b2bd2beb7802e66c93900430c29b4ab9c20c8";
-      sha256 = "0l6i6wybhdzbj6p0x86kygyirhnhc1fj67p4l83v3jdgypqy246a";
+      rev = "218229c593de9ca3b526605c50da7cb7e6ffb47c";
+      sha256 = "13xhzhpdwq680imvm7208wyhb2l5hppnflhbzyl1w3i7bzpczaxc";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
@@ -1196,12 +1280,12 @@ let
 
   dhall-vim = buildVimPluginFrom2Nix {
     pname = "dhall-vim";
-    version = "2020-08-19";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "vmchale";
       repo = "dhall-vim";
-      rev = "77d1c165bcbe6bb7f9eedbeafe390c2107d3c52e";
-      sha256 = "03x55x0gvf7n4i8hh6s5453mf5h43pf7kdy817q6w1149bd90vxy";
+      rev = "68500ef46ff3706f46c99db3be7a0c8abcf6a3ae";
+      sha256 = "0lwna4kcq7davfvh3535n8wl9jxkjm7cg6jgpisd17kvagihh8qw";
     };
     meta.homepage = "https://github.com/vmchale/dhall-vim/";
   };
@@ -1218,6 +1302,18 @@ let
     meta.homepage = "https://github.com/nvim-lua/diagnostic-nvim/";
   };
 
+  diffview-nvim = buildVimPluginFrom2Nix {
+    pname = "diffview-nvim";
+    version = "2021-06-08";
+    src = fetchFromGitHub {
+      owner = "sindrets";
+      repo = "diffview.nvim";
+      rev = "93c3aba19c54a7e68fab6c9864eff499a744b4cc";
+      sha256 = "01s43bg2y0yb5h7gkr75j23i5jy5acaz0m65nbx5c6x1lbm7fy20";
+    };
+    meta.homepage = "https://github.com/sindrets/diffview.nvim/";
+  };
+
   direnv-vim = buildVimPluginFrom2Nix {
     pname = "direnv-vim";
     version = "2020-11-20";
@@ -1244,28 +1340,40 @@ let
 
   dracula-vim = buildVimPluginFrom2Nix {
     pname = "dracula-vim";
-    version = "2021-04-23";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "d21059cd5960f4d0a5627fda82d29371772b247f";
-      sha256 = "0cbsiw0qkynm0glq8kidkbfxwy6lhn7rc6dvxflrrm62cl7yvw91";
+      rev = "869f70a7603b77cdb2f63983dd286f3f61b7a966";
+      sha256 = "031c000nr2raw0v6bdnisczjz20y5iw0yapj8wih0nc703dirhih";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
 
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc-vim";
-    version = "2021-04-16";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "echodoc.vim";
-      rev = "63d3c193ccb1652a972ca0def7ab82048bfb6068";
-      sha256 = "0v0fd6n6fza1rj008zpjicvh9d8mcvz3kza8hhby9nx9cjlj2dpc";
+      rev = "d02232ff17517f9bc048f0d4a668ef00d57b5f6c";
+      sha256 = "17m9nph5xk1dcd5l89asp2fw6jd97hsmr78ni67id23v9mjyqslk";
     };
     meta.homepage = "https://github.com/Shougo/echodoc.vim/";
   };
 
+  edge = buildVimPluginFrom2Nix {
+    pname = "edge";
+    version = "2021-06-08";
+    src = fetchFromGitHub {
+      owner = "sainnhe";
+      repo = "edge";
+      rev = "d1fa03e861b514aa485b6b1369ebb4cc34d4a817";
+      sha256 = "1v28cl52bfxl9c12bk0hnr14nn8mp5wg6qqp5ycmsw44rbg18vh4";
+    };
+    meta.homepage = "https://github.com/sainnhe/edge/";
+  };
+
   editorconfig-vim = buildVimPluginFrom2Nix {
     pname = "editorconfig-vim";
     version = "2021-04-04";
@@ -1305,12 +1413,12 @@ let
 
   embark-vim = buildVimPluginFrom2Nix {
     pname = "embark-vim";
-    version = "2021-03-12";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "embark-theme";
       repo = "vim";
-      rev = "fda8867d405a93938f154fb9d70e4f4a4e6ef8c8";
-      sha256 = "09kvk3wjmpvssv8j5iba2dngnfkv178gkr620pa3k1imb0m9f0bq";
+      rev = "95847fbae47aa5d49b6470568b8151a93e15307a";
+      sha256 = "06qvnbhwm2gl8921hyq75dwxxfbkwfvvsn4pci89831qn6w3pa6f";
     };
     meta.homepage = "https://github.com/embark-theme/vim/";
   };
@@ -1402,12 +1510,12 @@ let
 
   fern-vim = buildVimPluginFrom2Nix {
     pname = "fern-vim";
-    version = "2021-04-18";
+    version = "2021-05-23";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "609610754b52d3d32616bd70094dcce3a88db3e6";
-      sha256 = "1va4iaxnb03zk880k2kilsyr498pv0g78418d0nzxa4cdmvxcp5z";
+      rev = "5fe781e4a12101871bc778b977ce6b76685c1ab0";
+      sha256 = "1220sclgczaqww0d2zdgr0lfpjwrrjyscjn2j40k8h4j1axah9zi";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
@@ -1461,6 +1569,18 @@ let
     meta.homepage = "https://github.com/ncm2/float-preview.nvim/";
   };
 
+  floating-nvim = buildVimPluginFrom2Nix {
+    pname = "floating-nvim";
+    version = "2021-05-08";
+    src = fetchFromGitHub {
+      owner = "fhill2";
+      repo = "floating.nvim";
+      rev = "c47af010aa8e88758995858f0ed2771a99cd3e98";
+      sha256 = "0cvs6c903bq4jk4l197vvdrk8q85rl7z7iy7cvd5m4k7yd937r50";
+    };
+    meta.homepage = "https://github.com/fhill2/floating.nvim/";
+  };
+
   floobits-neovim = buildVimPluginFrom2Nix {
     pname = "floobits-neovim";
     version = "2018-08-01";
@@ -1485,6 +1605,18 @@ let
     meta.homepage = "https://github.com/megaannum/forms/";
   };
 
+  friendly-snippets = buildVimPluginFrom2Nix {
+    pname = "friendly-snippets";
+    version = "2021-05-28";
+    src = fetchFromGitHub {
+      owner = "rafamadriz";
+      repo = "friendly-snippets";
+      rev = "496ccb632e1dd66ab4561304faa431125c0bf0de";
+      sha256 = "1rbgji9x0bf8l7kqph77nfnpipy4d1863ml3wx75404q43nld7w8";
+    };
+    meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
+  };
+
   fruzzy = buildVimPluginFrom2Nix {
     pname = "fruzzy";
     version = "2020-08-31";
@@ -1509,38 +1641,50 @@ let
     meta.homepage = "https://github.com/shumphrey/fugitive-gitlab.vim/";
   };
 
+  fwatch-nvim = buildVimPluginFrom2Nix {
+    pname = "fwatch-nvim";
+    version = "2021-04-26";
+    src = fetchFromGitHub {
+      owner = "rktjmp";
+      repo = "fwatch.nvim";
+      rev = "5fd6bff00d7fa432cdc847819563dad90bcf649d";
+      sha256 = "1jc3kv0w3767593p9capif3p0msf8ac5xal170757ghfiy2jhsp9";
+    };
+    meta.homepage = "https://github.com/rktjmp/fwatch.nvim/";
+  };
+
   fzf-lsp-nvim = buildVimPluginFrom2Nix {
     pname = "fzf-lsp-nvim";
-    version = "2021-02-04";
+    version = "2021-05-25";
     src = fetchFromGitHub {
       owner = "gfanto";
       repo = "fzf-lsp.nvim";
-      rev = "1386cbae761415b9c7b45565d87283fb4d584aed";
-      sha256 = "1ab4si6j6s6fimpr513mqbhc5nnlsqmazw26cl7r89lbq7jswhyv";
+      rev = "fdbe8e8f447870c8693d81045031fc1d5812e38e";
+      sha256 = "0rygh4dxrvz7cqsjvp7ymim24hv2czamb9jn1qbbaj33vn85403b";
     };
     meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/";
   };
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2021-04-14";
+    version = "2021-05-25";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "ee91c93d4cbc6f29cf82877ca39f3ce23d5c5b7b";
-      sha256 = "0zpf45wp0p924x96w9i171w5mbh25rzbmp987wpv8kgfzq7dviir";
+      rev = "e34f6c129d39b90db44df1107c8b7dfacfd18946";
+      sha256 = "0rn0b48zxf46ak0a2dwbx4aas0fjiywhch0viffzhj5b61lvy218";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
 
   galaxyline-nvim = buildVimPluginFrom2Nix {
     pname = "galaxyline-nvim";
-    version = "2021-04-10";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "galaxyline.nvim";
-      rev = "cbf64bd4869c810b92f6450ed8763456c489be87";
-      sha256 = "0c7xgracnl92psc5b7m90ys9v5p20hipli8q797r495r59wnza20";
+      rev = "d544cb9d0b56f6ef271db3b4c3cf19ef665940d5";
+      sha256 = "1390lqsqdcj1q89zn6y5qrm1id7p8fnpy07vlz6mm4cki47211mb";
     };
     meta.homepage = "https://github.com/glepnir/galaxyline.nvim/";
   };
@@ -1559,24 +1703,24 @@ let
 
   gentoo-syntax = buildVimPluginFrom2Nix {
     pname = "gentoo-syntax";
-    version = "2021-02-07";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "gentoo";
       repo = "gentoo-syntax";
-      rev = "762f31ff620eb822ae4ca43c5dc2a62ca621f5fe";
-      sha256 = "035nj257r2nkwriqq5l4qjn5z1a04l39k4i9s1yz0mgv902kmics";
+      rev = "9b016fd42ba37395d9299e1e811b282b29effb63";
+      sha256 = "0x3rg1pxildm2mrfr28f4d41z4zzf6v2jng41nzylwm5r4c5r1gd";
     };
     meta.homepage = "https://github.com/gentoo/gentoo-syntax/";
   };
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2021-02-14";
+    version = "2021-05-16";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "abbb157ac9d06fdfba537f97ab96e197b3bb36cb";
-      sha256 = "008alqgqbrjh9sqgazqq1kk5hnpikd8afnia5lx9rv8c2am1d2fv";
+      rev = "dec6adb151cc5514f8ea99b8568e7a4c94db6318";
+      sha256 = "14k0crk6lvj6qp1rpfmldmw5w9axy7336aacpvfsh7d4a93xdjzv";
     };
     meta.homepage = "https://github.com/ndmitchell/ghcid/";
   };
@@ -1595,12 +1739,12 @@ let
 
   gina-vim = buildVimPluginFrom2Nix {
     pname = "gina-vim";
-    version = "2020-10-07";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "gina.vim";
-      rev = "97116f338f304802ce2661c2e7c0593e691736f8";
-      sha256 = "1j3sc6dpnwp4fipvv3vycqb77cb450nrk5abc4wpikmj6fgi5hk0";
+      rev = "7069668147157d872821ebed1eee07742ece48fd";
+      sha256 = "0fbr154jgvr71liq0cwdl1qwg8j40yg9i2gb6ykz4p2y5cvs3wz6";
     };
     meta.homepage = "https://github.com/lambdalisue/gina.vim/";
   };
@@ -1619,24 +1763,24 @@ let
 
   git-messenger-vim = buildVimPluginFrom2Nix {
     pname = "git-messenger-vim";
-    version = "2021-04-18";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "git-messenger.vim";
-      rev = "866b3ed000d483b27067d9bc89dbaa57a83244e8";
-      sha256 = "1jj2nbsm5g1y9pw0frh35kbj17zpxy56gqym44gv8hy2wbhzwhbf";
+      rev = "f17e40e9995bbb21e0e9b7fd29278637a69fcc02";
+      sha256 = "09izgdlba3413llb698r8iagpfnhvp57yaz7qlcypbyvqr9l41mm";
     };
     meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
   };
 
   git-worktree-nvim = buildVimPluginFrom2Nix {
     pname = "git-worktree-nvim";
-    version = "2021-04-23";
+    version = "2021-05-27";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "git-worktree.nvim";
-      rev = "34d1c630546dc21517cd2faad82e23f02f2860d1";
-      sha256 = "0ddz2z7plw320kgsddlfywsa202bl8sxr9jbvldhh0j34q5lgdja";
+      rev = "b036b2f8a0f9cd973ab25292460e0c7b323616ef";
+      sha256 = "1mn2pwcp482p7rrg0jk8i2g9pql58yqylzpp31308ssw32j8f9fj";
     };
     meta.homepage = "https://github.com/ThePrimeagen/git-worktree.nvim/";
   };
@@ -1655,12 +1799,12 @@ let
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns-nvim";
-    version = "2021-04-22";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "0b556d0b7ab50e19dc7db903d77ac6a8376d8a49";
-      sha256 = "06v2wbm582hplikjqw01r9zqgg45ji2887n288apg9yx43iknsy3";
+      rev = "b5a6c6c0cbac430d61965be1fac5b984d3c9c469";
+      sha256 = "19k96irs8saibjxah457ir418l3aih1rp3arj6b1m14p3yf2dxy3";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -1677,14 +1821,26 @@ let
     meta.homepage = "https://github.com/gregsexton/gitv/";
   };
 
+  gleam-vim = buildVimPluginFrom2Nix {
+    pname = "gleam-vim";
+    version = "2020-06-24";
+    src = fetchFromGitHub {
+      owner = "gleam-lang";
+      repo = "gleam.vim";
+      rev = "847a5ef57c2faef2774242c87f711d1131b89fe6";
+      sha256 = "17kjby64zdnmhyia1cx9jnk4mss0gca1jz1m4hff9rl63i56bql1";
+    };
+    meta.homepage = "https://github.com/gleam-lang/gleam.vim/";
+  };
+
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow-nvim";
-    version = "2021-03-31";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "npxbr";
       repo = "glow.nvim";
-      rev = "89b4edfcb70529d9c713687aa6fcfa76a2010ae0";
-      sha256 = "0qq6cjzirr4zicy2n259sxi2ypz7w740qaf4a4vhphh4rd6gi18w";
+      rev = "d7f5eb0af3f2a51c2f493fec066015dc29184a4e";
+      sha256 = "1180g55d6adj9jzx9dxld3345hw80vjjj3r8n7snba1m3c8jd5xm";
     };
     meta.homepage = "https://github.com/npxbr/glow.nvim/";
   };
@@ -1739,16 +1895,40 @@ let
 
   gruvbox-community = buildVimPluginFrom2Nix {
     pname = "gruvbox-community";
-    version = "2021-04-15";
+    version = "2021-05-17";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "42668ea643d56729467fb79c1a0a5e30289fe590";
-      sha256 = "090jh2pwkl2mpycnii78457k2pkdj76l9x4p4yn9j662986imnhl";
+      rev = "51ae4557e8941943d70da36320cc80a521e2d99e";
+      sha256 = "0dgvd4qpzg7fn7rwvpknzi2bxzzb2g8jl9jh9byj07yll413gzqh";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
 
+  gruvbox-flat-nvim = buildVimPluginFrom2Nix {
+    pname = "gruvbox-flat-nvim";
+    version = "2021-06-09";
+    src = fetchFromGitHub {
+      owner = "eddyekofo94";
+      repo = "gruvbox-flat.nvim";
+      rev = "0b27de51438f62870f1558ef9c27cb20caec69cf";
+      sha256 = "0k9hqjw857ri0vbgjncbbfgh0yh1bpqr25vj0drp9wiakn5pywqf";
+    };
+    meta.homepage = "https://github.com/eddyekofo94/gruvbox-flat.nvim/";
+  };
+
+  gruvbox-nvim = buildVimPluginFrom2Nix {
+    pname = "gruvbox-nvim";
+    version = "2021-06-07";
+    src = fetchFromGitHub {
+      owner = "npxbr";
+      repo = "gruvbox.nvim";
+      rev = "2dc25bb14fbd69f888dd0615c5576dd730de869a";
+      sha256 = "1i87f7vfgk1szy18cg7nng2yqvcny4v1wnh4dbw74lcqmmazgi7y";
+    };
+    meta.homepage = "https://github.com/npxbr/gruvbox.nvim/";
+  };
+
   gundo-vim = buildVimPluginFrom2Nix {
     pname = "gundo-vim";
     version = "2021-02-21";
@@ -1763,12 +1943,12 @@ let
 
   gv-vim = buildVimPluginFrom2Nix {
     pname = "gv-vim";
-    version = "2020-10-16";
+    version = "2021-05-27";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "gv.vim";
-      rev = "486b5c4e960d5ec9e79888939534b7b2fc7453ad";
-      sha256 = "07pj94s5kf8qgwdz73xbb7b2h3w6gkv4sw9faicdb6hla3i19d9b";
+      rev = "5f902f4f7d06ef084ffd6cddcd1ee7d3c9a793c6";
+      sha256 = "0am6sip4q14v2cvf9dmq6jkh37nhdhbvs466619qyd48qxcf9k9n";
     };
     meta.homepage = "https://github.com/junegunn/gv.vim/";
   };
@@ -1797,6 +1977,18 @@ let
     meta.homepage = "https://github.com/travitch/hasksyn/";
   };
 
+  hiPairs = buildVimPluginFrom2Nix {
+    pname = "hiPairs";
+    version = "2020-12-10";
+    src = fetchFromGitHub {
+      owner = "Yggdroot";
+      repo = "hiPairs";
+      rev = "8272bf6979d0ee65a3fdbbb97eff3dda79b661b2";
+      sha256 = "1hcskq9zdkf8vlxwd2n403m4rq7495v2fj35hjf6461hqx9v9dnw";
+    };
+    meta.homepage = "https://github.com/Yggdroot/hiPairs/";
+  };
+
   hlint-refactor-vim = buildVimPluginFrom2Nix {
     pname = "hlint-refactor-vim";
     version = "2015-12-05";
@@ -1809,6 +2001,18 @@ let
     meta.homepage = "https://github.com/mpickering/hlint-refactor-vim/";
   };
 
+  hologram-nvim = buildVimPluginFrom2Nix {
+    pname = "hologram-nvim";
+    version = "2021-05-21";
+    src = fetchFromGitHub {
+      owner = "edluffy";
+      repo = "hologram.nvim";
+      rev = "593a458d04f7457669280373d98e41195c106d13";
+      sha256 = "0diq42zdr9l8qw198c5y4jy5siab3cwh4ncsb5z111m28n6a6i5c";
+    };
+    meta.homepage = "https://github.com/edluffy/hologram.nvim/";
+  };
+
   hoon-vim = buildVimPluginFrom2Nix {
     pname = "hoon-vim";
     version = "2020-11-09";
@@ -1823,12 +2027,12 @@ let
 
   hop-nvim = buildVimPluginFrom2Nix {
     pname = "hop-nvim";
-    version = "2021-04-16";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "phaazon";
       repo = "hop.nvim";
-      rev = "998452d18934af4a527d4e1aa315fd2c74cb652a";
-      sha256 = "0y17zm792fxakja4c852k9pw3lp20vgbyyzrmnc20112dll8vzgn";
+      rev = "56727073356756a86c4b1be95d7c565e4ab1f11e";
+      sha256 = "00ch6mhcxvqk7kshmi6rfm0n1wna47v5kcxjxwhndm79liq3h91b";
     };
     meta.homepage = "https://github.com/phaazon/hop.nvim/";
   };
@@ -1929,6 +2133,18 @@ let
     meta.homepage = "https://github.com/haya14busa/incsearch.vim/";
   };
 
+  indent-blankline-nvim-lua = buildVimPluginFrom2Nix {
+    pname = "indent-blankline-nvim-lua";
+    version = "2021-06-07";
+    src = fetchFromGitHub {
+      owner = "lukas-reineke";
+      repo = "indent-blankline.nvim";
+      rev = "4e1004b4efcb8f4bbb29d69dd4898ed14120a973";
+      sha256 = "1y1skj9q29sk7dfza1s21gfwyjfk49v5b298br39xiankin1b8jx";
+    };
+    meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
+  };
+
   indent-blankline-nvim = buildVimPluginFrom2Nix {
     pname = "indent-blankline-nvim";
     version = "2021-03-06";
@@ -2088,12 +2304,12 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2021-04-23";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "d0bb06ffc40ff7c49dfa2548e007e9013eaeabb7";
-      sha256 = "0zj12xp8djy3zr360lg9pkydz92cgkjiz33n9v5s2wyx63gk0dq4";
+      rev = "69673e40a3c9c6532c1500ba92fed93ccd55af90";
+      sha256 = "07nh2pdl09z6k6bzfsbxyna1rccji7s1sz6z4lmhi6fdi7wjby7j";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
@@ -2172,48 +2388,48 @@ let
 
   lazygit-nvim = buildVimPluginFrom2Nix {
     pname = "lazygit-nvim";
-    version = "2021-03-25";
+    version = "2021-05-10";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "lazygit.nvim";
-      rev = "fb5ab7d26ac414a7e7bfff6b89f69e2dd2fd3884";
-      sha256 = "1nn6zhjqfk88jmavl9y8li4y08v3wb2m2kskq9yf36hadw29im30";
+      rev = "acc383d1eab516318816f43e3e380fead8249acb";
+      sha256 = "0w777was4z7yk3z6fn55phqzxmsbzbz0v4959h52yi91pdbb4qfc";
     };
     meta.homepage = "https://github.com/kdheepak/lazygit.nvim/";
   };
 
   LeaderF = buildVimPluginFrom2Nix {
     pname = "LeaderF";
-    version = "2021-04-16";
+    version = "2021-06-09";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "6c49ab524b883495193ff3a4eab5c7846aba4261";
-      sha256 = "19dyd148silyaiprjrcd23y62kcsp6hpvpansmpxri55x53a772w";
+      rev = "183fa5f3203983fed87174e6f193f271133fe974";
+      sha256 = "17if75p3x4lkqncl296f3jdq0rcc69b0mgj0dbz6cl851bmqvy40";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
 
   lean-vim = buildVimPluginFrom2Nix {
     pname = "lean-vim";
-    version = "2021-01-02";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "leanprover";
       repo = "lean.vim";
-      rev = "313fd1e09e7a14352f87d44c82005b6e6316c9bc";
-      sha256 = "0f6jq0hliy4jignjc1d30bsvfkb4xl4nzj900hphbc7l2aw7scqr";
+      rev = "48ac5798b74b8ef8212adc70048ff0ed6f4e1976";
+      sha256 = "08n8zfglml4v983nnm8gg25vggg5cfjsqrm96k8s3j5wmzi95mhx";
     };
     meta.homepage = "https://github.com/leanprover/lean.vim/";
   };
 
   lens-vim = buildVimPluginFrom2Nix {
     pname = "lens-vim";
-    version = "2020-04-24";
+    version = "2021-05-30";
     src = fetchFromGitHub {
       owner = "camspiers";
       repo = "lens.vim";
-      rev = "868b195be3cc3000d1d3f875ee0a52a11972e5b9";
-      sha256 = "0qpx84k52pz29rx6q0zh3qq4g3a1gyvyfcipx3kaw4lxlld6agd5";
+      rev = "099c3502d001f7081edf113de57e8b1cfd121c55";
+      sha256 = "1h25isrw96qhfacf37h3anscnrisdxsz6vv7826hpb17r0ygb5ms";
     };
     meta.homepage = "https://github.com/camspiers/lens.vim/";
   };
@@ -2280,12 +2496,12 @@ let
 
   lightline-ale = buildVimPluginFrom2Nix {
     pname = "lightline-ale";
-    version = "2021-01-19";
+    version = "2021-05-04";
     src = fetchFromGitHub {
       owner = "maximbaz";
       repo = "lightline-ale";
-      rev = "932ea5b9287b8ddfd7b7f0218bb28de52d013140";
-      sha256 = "1b3xbhd32jk43z8baj1djls294whbq2qls01l90k4ihsq97jplb9";
+      rev = "98a7417ff66829b1d14cb9e4e7aa6a1a0ef25103";
+      sha256 = "1ripdl58pcmylgzzj92v8myjjw22h1g9g6drld9ng1qcg1zn2br8";
     };
     meta.homepage = "https://github.com/maximbaz/lightline-ale/";
   };
@@ -2302,14 +2518,26 @@ let
     meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
 
+  lightline-gruvbox-vim = buildVimPluginFrom2Nix {
+    pname = "lightline-gruvbox-vim";
+    version = "2018-03-23";
+    src = fetchFromGitHub {
+      owner = "shinchu";
+      repo = "lightline-gruvbox.vim";
+      rev = "21659af1fc980ebe7de0f475e57c3fda9a82c2d3";
+      sha256 = "0h9br1r5vbrx5cplnk34xlg1kagasj3zn18f8d4ifi0pibyq6pm1";
+    };
+    meta.homepage = "https://github.com/shinchu/lightline-gruvbox.vim/";
+  };
+
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline-vim";
-    version = "2021-03-21";
+    version = "2021-05-30";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "8a712365f9708044667589d9fffd87a4825d29f6";
-      sha256 = "1622qd5lizfv65m5iy3r0bl3zy8phh4anyx93kj631p836s8y6cq";
+      rev = "b06d921023cf6536bcbee5754071d122296e8942";
+      sha256 = "1dsqssxgbglq6al6di9grxl24rgwidgd6jrc8d4gk6v6ymgzckl8";
     };
     meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
@@ -2328,36 +2556,36 @@ let
 
   lispdocs-nvim = buildVimPluginFrom2Nix {
     pname = "lispdocs-nvim";
-    version = "2021-04-14";
+    version = "2021-05-16";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lispdocs.nvim";
-      rev = "5225b347a722ba54ce3744364a3e0ff2939743cd";
-      sha256 = "0x4nshkizivjz5ldb3scsxxi6x379g3rfpiplsixcs6bpxkib166";
+      rev = "69fbcd854e9600b0f2c6f1c9ec4cb8fde8f5e6da";
+      sha256 = "19n12m6rnv8blbavd2zkwwv6x7gjfziavc5i0zdh4h1l9x9hmwq3";
     };
     meta.homepage = "https://github.com/tami5/lispdocs.nvim/";
   };
 
   lsp-colors-nvim = buildVimPluginFrom2Nix {
     pname = "lsp-colors-nvim";
-    version = "2021-04-23";
+    version = "2021-04-30";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lsp-colors.nvim";
-      rev = "525c57c1138ca5640547efb476758938aedba943";
-      sha256 = "0dxalh12ifsghksl423bbawq096k8fcl1cgmnvaw3f2x71fngfs6";
+      rev = "00b40add53f2f6bd249932d0c0cd25a42ce7a2fc";
+      sha256 = "1qa1kb5abrka5iixmz81kz4v8xrs4jv620nd583rhwya2jmkbaji";
     };
     meta.homepage = "https://github.com/folke/lsp-colors.nvim/";
   };
 
   lsp-status-nvim = buildVimPluginFrom2Nix {
     pname = "lsp-status-nvim";
-    version = "2021-04-09";
+    version = "2021-05-20";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "lsp-status.nvim";
-      rev = "7c376c3924d4f807d6ce49450fdeaa18720349c9";
-      sha256 = "0lf71qxg9hs3r4nwsla085fk5jkqzppj2r57w9imz4wqzb201bd7";
+      rev = "54c395248539d65fddda46f7d92e3421856874c1";
+      sha256 = "1qfrfckdbqyav8l1g7lwpjrrwh559nm71ki74qd1xd18y1h63ny2";
     };
     meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim/";
   };
@@ -2374,50 +2602,62 @@ let
     meta.homepage = "https://github.com/nvim-lua/lsp_extensions.nvim/";
   };
 
+  lsp_signature-nvim = buildVimPluginFrom2Nix {
+    pname = "lsp_signature-nvim";
+    version = "2021-06-08";
+    src = fetchFromGitHub {
+      owner = "ray-x";
+      repo = "lsp_signature.nvim";
+      rev = "88272b6d89e8140a35099ea563978172f2776dc9";
+      sha256 = "013ffydnhjwzj0y106m0x65zx31kabsxrs86ndq2vik3pc6vyslq";
+    };
+    meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
+  };
+
   lspkind-nvim = buildVimPluginFrom2Nix {
     pname = "lspkind-nvim";
-    version = "2021-02-06";
+    version = "2021-05-22";
     src = fetchFromGitHub {
       owner = "onsails";
       repo = "lspkind-nvim";
-      rev = "953ca895203c095e13f97a8ece790bf546c82d1c";
-      sha256 = "15rfzcmfwig7x8pbgc1maimqkqwqr4dbpf7498a0s16vng673bgk";
+      rev = "3469f0c9a6767625d532a74a167f5d6ba2b8c5bf";
+      sha256 = "1ff1i6m9kk3n36n24c109g6yddcbbzm10iigvi0pv1z2fdpsrl07";
     };
     meta.homepage = "https://github.com/onsails/lspkind-nvim/";
   };
 
   lspsaga-nvim = buildVimPluginFrom2Nix {
     pname = "lspsaga-nvim";
-    version = "2021-04-18";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "lspsaga.nvim";
-      rev = "333178b4e941eb19d9c97c0b0b5640c76363b0ad";
-      sha256 = "1ygqz8mf8h48jfn17ldr5fnpir1ylf37l10kla8rp197j8acidsy";
+      rev = "cb0e35d2e594ff7a9c408d2e382945d56336c040";
+      sha256 = "0ywhdgh6aqs0xlm8a4d9jhkik254ywagang12r5nyqxawjsmjnib";
     };
     meta.homepage = "https://github.com/glepnir/lspsaga.nvim/";
   };
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine-nvim";
-    version = "2021-04-23";
+    version = "2021-05-27";
     src = fetchFromGitHub {
       owner = "hoob3rt";
       repo = "lualine.nvim";
-      rev = "e3a558bc1dfbda29cde5b356b975a8abaf3f41b2";
-      sha256 = "1qwrpyjfcn23z4lw5ln5gn4lh8y0rw68gbmyd62pdqazckqhasds";
+      rev = "9726824f1dcc8907632bc7c32f9882f26340f815";
+      sha256 = "0gmbv0pbswkxjd4qw7dq66gp3fj594di0pgkb47yh3b46id8vkyj";
     };
     meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
   };
 
   lush-nvim = buildVimPluginFrom2Nix {
     pname = "lush-nvim";
-    version = "2021-04-11";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "lush.nvim";
-      rev = "3db21525382fa158fba22e2a5d033d6afdbc763a";
-      sha256 = "1k0678h22falk08mpvlxlfsx7z89p89clrc9hlk452dzj7wjy7wi";
+      rev = "684c06d4879a38e50a247ce23b32beaacc75c4d1";
+      sha256 = "1khws788sww2dw4s3nqyigyxi7099kqh60dabs66hj9byb84irql";
     };
     meta.homepage = "https://github.com/rktjmp/lush.nvim/";
   };
@@ -2434,6 +2674,18 @@ let
     meta.homepage = "https://github.com/mkasa/lushtags/";
   };
 
+  markdown-preview-nvim = buildVimPluginFrom2Nix {
+    pname = "markdown-preview-nvim";
+    version = "2021-03-10";
+    src = fetchFromGitHub {
+      owner = "iamcco";
+      repo = "markdown-preview.nvim";
+      rev = "e5bfe9b89dc9c2fbd24ed0f0596c85fd0568b143";
+      sha256 = "0bfkcfjqg2jqm4ss16ks1mfnlnpyg1l4l18g7pagw1dfka14y8fg";
+    };
+    meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/";
+  };
+
   matchit-zip = buildVimPluginFrom2Nix {
     pname = "matchit-zip";
     version = "2010-10-18";
@@ -2484,24 +2736,24 @@ let
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap-vim";
-    version = "2021-04-13";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "6afcca86b2274b43de9d39e3c1235f4b0f659129";
-      sha256 = "08wabfqhj697qy92jrf6mzbhjbybyil45fsvhn6q3ffl161gvsak";
+      rev = "b2c27ca4b25dedef968f3e746533bb973b148c34";
+      sha256 = "0wx1hk7ml4r49gdfqnww1002c5aw4dgndlrhwy8fhyvg8117902r";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
 
   mkdx = buildVimPluginFrom2Nix {
     pname = "mkdx";
-    version = "2021-04-09";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "SidOfc";
       repo = "mkdx";
-      rev = "7fc33a899acfbc172d8e12059c1ca18696346a89";
-      sha256 = "05fhqvr9pinw6zfbjcdbm31c27wd94z7nyzp9f4vi8m1yhp4h6mk";
+      rev = "e129e3c7d92477563aeb068628ee0ccdd46ed36e";
+      sha256 = "0q0cyigkszw0qsdvg9dxs293sf8hbmwwy6qxlknmrfiy5xyn6ik5";
     };
     meta.homepage = "https://github.com/SidOfc/mkdx/";
   };
@@ -2518,6 +2770,18 @@ let
     meta.homepage = "https://github.com/tomasr/molokai/";
   };
 
+  moonlight-nvim = buildVimPluginFrom2Nix {
+    pname = "moonlight-nvim";
+    version = "2021-05-16";
+    src = fetchFromGitHub {
+      owner = "shaunsingh";
+      repo = "moonlight.nvim";
+      rev = "e24e4218ec680b6396532808abf57ca0ada82e66";
+      sha256 = "0m9w3fpypsqxydjd93arbjqb5576nl40iy27i4ijlrqhgdhl49y3";
+    };
+    meta.homepage = "https://github.com/shaunsingh/moonlight.nvim/";
+  };
+
   ncm2 = buildVimPluginFrom2Nix {
     pname = "ncm2";
     version = "2020-12-19";
@@ -2796,12 +3060,12 @@ let
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2021-04-23";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "a62ce86411048e1bed471d4c4ba5f56eb5b59c50";
-      sha256 = "1cnywkl21a8mw62bing202nw04y375968bggqraky1c57fpdq35j";
+      rev = "55dcb4206324e3f90dd9dd41bed22fc6d4887098";
+      sha256 = "0iiblvqmn7xg3mpyppzng081wgpdfrdn9jpa3ijr2ly6w5jg0yqa";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -2820,12 +3084,12 @@ let
 
   neomake = buildVimPluginFrom2Nix {
     pname = "neomake";
-    version = "2020-12-20";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "neomake";
       repo = "neomake";
-      rev = "5e140db568eb2f7b88e4110cd4b651562e8878ab";
-      sha256 = "0gvlpv7mfqrac10ccndl58axib42ack92m2simn78ksdap9g7n6n";
+      rev = "3663e065b4f3d0c4a1144b668129ef43e0d8ff10";
+      sha256 = "0l87p48lyx78a9ayqygpba76z04ld64w747m0mrdlgci0x8jnqb7";
     };
     meta.homepage = "https://github.com/neomake/neomake/";
   };
@@ -2844,24 +3108,24 @@ let
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2021-04-05";
+    version = "2021-05-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "3ae169d555afb0dd8a3be4b0bb20c38efda62e68";
-      sha256 = "1kjlhlnjf69hnl7aw11d211psi18qyb4l6k49xr868h7nrc2bns2";
+      rev = "1315d10e60bd93483aaac4cc5a1623d13aede504";
+      sha256 = "1w80id0123rbwmkicm8n053mp1wzqwh9lxxjmmp6bp6c2x97mgzk";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
 
   neosnippet-vim = buildVimPluginFrom2Nix {
     pname = "neosnippet-vim";
-    version = "2020-09-10";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet.vim";
-      rev = "30b6b53b7a86b84371714b4a0f092d5d303c4a35";
-      sha256 = "0q06a0wq2aqgkjc5jndccffibr85hf33w2igcah3x6dl203p4ips";
+      rev = "d2e1e6b4c4e17cab2debd0353fed77b417b53237";
+      sha256 = "0bwlcija1sbml5ni7mz4q97hhnl7hiqamzzvqw8qyp8aw2b0kj1q";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet.vim/";
   };
@@ -2880,24 +3144,24 @@ let
 
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
-    version = "2020-12-01";
+    version = "2021-05-26";
     src = fetchFromGitHub {
       owner = "kassio";
       repo = "neoterm";
-      rev = "1283da9f078669593f3828e4345b68b59ee9740f";
-      sha256 = "1262bxgh6mcrm1w6w47hsngsaj2fn4dw8jwp433clxvzsf2myk38";
+      rev = "cae4f19aeac40037039e914932da850443b7729f";
+      sha256 = "0h3d36vj7sdx10f9gndplwkyqmjxq9frafyj9vmsjhj117nn8agh";
     };
     meta.homepage = "https://github.com/kassio/neoterm/";
   };
 
   neovim-fuzzy = buildVimPluginFrom2Nix {
     pname = "neovim-fuzzy";
-    version = "2020-09-16";
+    version = "2021-04-24";
     src = fetchFromGitHub {
       owner = "cloudhead";
       repo = "neovim-fuzzy";
-      rev = "78f4d79f703aff49c9bcee5d527234c2f64425d5";
-      sha256 = "1dq79jabyyyphgigqac9jf7hhadfh336fm8hklh1d64xlzyrfp6s";
+      rev = "46f908aedef6af039c5134056ad008fe7aae1cbc";
+      sha256 = "0mszwcvj61y9jqxc0vgghjl1x0xxvy7mqspmv3ikd8sglg54gz2d";
     };
     meta.homepage = "https://github.com/cloudhead/neovim-fuzzy/";
   };
@@ -2928,12 +3192,12 @@ let
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2021-04-13";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdcommenter";
-      rev = "1b53686d5f1d1607dc67430e9243283fee3a9764";
-      sha256 = "03qzbvry4mygx109mxxqqmbv9adh9ifsiwl0rsvfgp7kl6l6fzkk";
+      rev = "a5d1663185bee20bfb120c9ab212144444514982";
+      sha256 = "03799774h9f7k52gwjnhjjm2w9s6ip5zdrpljinwp6lfavxd4w8a";
     };
     meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
@@ -2952,12 +3216,12 @@ let
 
   nerdtree-git-plugin = buildVimPluginFrom2Nix {
     pname = "nerdtree-git-plugin";
-    version = "2021-04-02";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "Xuyuanp";
       repo = "nerdtree-git-plugin";
-      rev = "73da0283ead8fa2bbce83d219fcab3ba1e8cf0dd";
-      sha256 = "17n79pmpnjnp6nirz4m4wwgfacrg26bdzjn4xj8i6ldkff5n20km";
+      rev = "bca0ed63883d028e6afc7f11a78c56fcaf34d363";
+      sha256 = "1j5llx2l36hgr10mjjdrp8xdv9mhmc6panpjgdxzdg5ncwn4ndzm";
     };
     meta.homepage = "https://github.com/Xuyuanp/nerdtree-git-plugin/";
   };
@@ -3012,12 +3276,12 @@ let
 
   nnn-vim = buildVimPluginFrom2Nix {
     pname = "nnn-vim";
-    version = "2021-03-22";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "mcchrish";
       repo = "nnn.vim";
-      rev = "6408b859f9fac3880d82109d25874fb6656026d9";
-      sha256 = "0r5s89882hj54qyi5rcwmf8g54jkjmap5c2rd2mhfjs3j4dfny72";
+      rev = "abf700104c0450bac10be3ece613ff88997f47e4";
+      sha256 = "0s3z5kd2h8cx6lplvg3yqp2pacx8c7kcavpvwnl71vmi0s2ld85s";
     };
     meta.homepage = "https://github.com/mcchrish/nnn.vim/";
   };
@@ -3034,6 +3298,18 @@ let
     meta.homepage = "https://github.com/arcticicestudio/nord-vim/";
   };
 
+  nord-nvim = buildVimPluginFrom2Nix {
+    pname = "nord-nvim";
+    version = "2021-06-07";
+    src = fetchFromGitHub {
+      owner = "shaunsingh";
+      repo = "nord.nvim";
+      rev = "f6464fa295005049c07650f41b06c0216c3c112d";
+      sha256 = "124qxhi9ckjqhxwj8wlxd6srlalmhpr58pidpvvdpvzcpp205yr2";
+    };
+    meta.homepage = "https://github.com/shaunsingh/nord.nvim/";
+  };
+
   NrrwRgn = buildVimPluginFrom2Nix {
     pname = "NrrwRgn";
     version = "2020-05-29";
@@ -3048,12 +3324,12 @@ let
 
   nvcode-color-schemes-vim = buildVimPluginFrom2Nix {
     pname = "nvcode-color-schemes-vim";
-    version = "2021-04-09";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "ChristianChiarulli";
       repo = "nvcode-color-schemes.vim";
-      rev = "90ee71d66da58d57f0cb4a59103874bb519c79d4";
-      sha256 = "0sabb0iyrmfwfld57d1mf44k69bf8pk0c1ilfi3vz2hz04imxgab";
+      rev = "7c85366c9d457ed0e3c3532ee312307476afbbdc";
+      sha256 = "02hxjwi8g07zhx6xagma5m3sa0j4ljg79377zfn2vy4snnib452p";
     };
     meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/";
   };
@@ -3072,48 +3348,48 @@ let
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2021-04-23";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "41b3ed55c345b56190a282b125897dc99d2292d4";
-      sha256 = "1pjfani0g0wixsyxk8j0g4289jhnkbxl703fpdp9dls7c427pi8x";
+      rev = "34a02b4f37a99b80eff03dff90c675b7374af54b";
+      sha256 = "0vz610ifrzzish5qysz8pz7w0zcfhm0q0xvya3r48fgs12ipahmq";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
 
   nvim-base16 = buildVimPluginFrom2Nix {
     pname = "nvim-base16";
-    version = "2021-04-12";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "nvim-base16";
-      rev = "9d6649c01221680e5bb20ff9e2455280d9665de2";
-      sha256 = "18a974l753d92x3jyv5j0anri99hxzfw454lkz94amabbnc010p6";
+      rev = "b53dbb4d33a77e1b9b16672565749d6990e84cf0";
+      sha256 = "1fwb797jcp5xkrfcqqljlhpnggkj3wfrc6zb0h662i35yhbhnin8";
     };
     meta.homepage = "https://github.com/RRethy/nvim-base16/";
   };
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2021-04-23";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "55135d23dc8da4f75a95f425283c0080ec5a8ac6";
-      sha256 = "162wa2hwq1i9v2xgdfvg1d4ab392m4jcw815cn9l3z4r10g9719p";
+      rev = "2063533b0f496ac7047fa9c58937d2a35b995dbe";
+      sha256 = "1k95dyrqcy88b0s8jsijgx7mpnfmw2ay2fzj3bhbdqagdghsgpp4";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
 
   nvim-bufferline-lua = buildVimPluginFrom2Nix {
     pname = "nvim-bufferline-lua";
-    version = "2021-04-22";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "nvim-bufferline.lua";
-      rev = "78ffd345d079246738ea06b04f58ad53503f48e2";
-      sha256 = "08xn8s9asa6b2gpbrsw1iy80s8419bck0z6nh9nmffisr3aga1bn";
+      rev = "7b510d5241fb29f5a5e985e02c4cfa046ec4ee3e";
+      sha256 = "1ahy4v7z08l0z6c7v19dik8icw943kc243vlzhs1bfa4aj13nncs";
     };
     meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/";
   };
@@ -3144,12 +3420,12 @@ let
 
   nvim-compe = buildVimPluginFrom2Nix {
     pname = "nvim-compe";
-    version = "2021-04-19";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-compe";
-      rev = "99452ae6875889c12653963b68e53c4564848954";
-      sha256 = "1d5hpn3mr2h3s5h2svajbxm0n49mmc5w0sip9cpzyfdpbnv1gic3";
+      rev = "c459c3f3a18c7ff7a312593c481af2b90fa01655";
+      sha256 = "148k41db7ncri3mgdhc13mi4xk7chdchbgf42zldhcrf05y3xd58";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-compe/";
   };
@@ -3168,60 +3444,72 @@ let
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2021-04-23";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "c6cb4fcbc91b0404ae157f1942e305d66073ca1a";
-      sha256 = "07mncx8bzigbh6yy7nbsgjb3g3fm1kx73wb6p7jl6h9ay3fmgrfc";
+      rev = "dfacc1fb7aeb0789c4fd27004e312cf363becba5";
+      sha256 = "058kjgngg7l37q9zbfz0xfqajx526m4cp85i3chcsfrvp99c7mzv";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
+  nvim-dap-ui = buildVimPluginFrom2Nix {
+    pname = "nvim-dap-ui";
+    version = "2021-06-08";
+    src = fetchFromGitHub {
+      owner = "rcarriga";
+      repo = "nvim-dap-ui";
+      rev = "9190b4a625a449927ffc3777b45db6cb392dc8f6";
+      sha256 = "1gai54z6w4dw17irwnwfd35k8zy2aiws2ia9vqamzicaf0n8axr8";
+    };
+    meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
+  };
+
   nvim-dap-virtual-text = buildVimPluginFrom2Nix {
     pname = "nvim-dap-virtual-text";
-    version = "2021-04-24";
+    version = "2021-05-16";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "f144a3bb6a39ef5c07173fe08e6f3ce8f5f184ba";
-      sha256 = "1zax0vx77fqx7jr1xipfy0dp3l05gzbqdvc1wvq2cnjvqd7s8i2v";
+      rev = "29a79b7c15e7e15a416bcaa0efddfe67928b7bdd";
+      sha256 = "0wl9dl83cx2hlik7yx6kknb7spsaqlzri2kybf3xcna44mqfq688";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2021-03-07";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "07aa4b435a832b122154a157ab6892ac4efb81fb";
-      sha256 = "05cgypswm7qdl26jd6nfqahk2bmqvp482k9zjbk0an12kbzlsrz0";
+      rev = "53bfce7a254651469ce9577349811bc76d9af46c";
+      sha256 = "1xcwrjfvikb1qqyaic2m0fi12l0hmxj0y5mwx1h95karpydbb0rz";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-highlite = buildVimPluginFrom2Nix {
     pname = "nvim-highlite";
-    version = "2021-04-01";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "ff28f2dde464a9e105c7dc041127eb60059d955a";
-      sha256 = "089019br0f3massc2sz3l0r8cjc33i5qqwbm4k7cz50x71g89wrq";
+      rev = "9c15a789df5af1d3c83c0d680154ca226253eb26";
+      sha256 = "0dz3bbyrwgxvsdmix2h6xbgj7wv9zbj08wgy46sjhzdhaxdfjx4z";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2021-04-23";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "2f8bd90f3b4fa7620c61f66bcddb965139eb176f";
-      sha256 = "1zsvr9pba62ngchfmab7yns64mlkdqclqv516c7h62fh82fyx23a";
+      rev = "081fac590588ce0f6bcf54699658ba960a514172";
+      sha256 = "05sw210pfsb4nfcix978x1mrnmjz5yv1rmv1501mqla8xq18cskv";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -3240,60 +3528,60 @@ let
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2021-04-21";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "362a149dac40c90d917ac7bb78da988b8da6a971";
-      sha256 = "0psd99km6kfqwdw383w41aaq1cipcfhl1v5srjw29y2v6rgvnw9p";
+      rev = "89fdc14457f2b18eebebeb226df9f6d5e464e318";
+      sha256 = "09rd1hq8rzp84aiplvp0w4j1wykycrb55z1qwk83d9fv006sqvcl";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
 
   nvim-lightbulb = buildVimPluginFrom2Nix {
     pname = "nvim-lightbulb";
-    version = "2021-03-13";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "kosayoda";
       repo = "nvim-lightbulb";
-      rev = "9c3b264ae2da1d984f0482d5a0dfa43f567fa064";
-      sha256 = "0yjxmnn3a7fw0fjwfqk284zshlw8v7wp8pn16d5m40rvbkk2ipzr";
+      rev = "388cc8caaf3e10836810aabbb9283a27dd8584cd";
+      sha256 = "0a7izbvpwn0sx9gvpczvl57fy9rm7jaibc4m44asjz501m04lbra";
     };
     meta.homepage = "https://github.com/kosayoda/nvim-lightbulb/";
   };
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2021-04-23";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "62977b6b2eeb20bd37703ebe4bc4b4c2ef006db2";
-      sha256 = "0niwaq3mc7x1zaf3qx9dp43607rnhq2nvyizkxb7j1yir8a8dk4x";
+      rev = "f95be0c947237edb88df148dd61790988ab3a23e";
+      sha256 = "1cddnkil9xid7xq3k0iszk12ma9pi396khqx6dzh2z9p7nkhk2rg";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
 
   nvim-lsputils = buildVimPluginFrom2Nix {
     pname = "nvim-lsputils";
-    version = "2021-02-05";
+    version = "2021-05-27";
     src = fetchFromGitHub {
       owner = "RishabhRD";
       repo = "nvim-lsputils";
-      rev = "b68862afee6dfb611d866818cafdba41cf51d749";
-      sha256 = "0w4kff5jrg6i55nqjnp52vb2jng4zql9s2r1jz75jfv2khdrw7dm";
+      rev = "f34927f8ec777f4e91e14afc709de9da1cd70116";
+      sha256 = "1s1pvddgkdslh3r9p08r3xjdpi93d15i4k1jssh8apxzm37gw7lm";
     };
     meta.homepage = "https://github.com/RishabhRD/nvim-lsputils/";
   };
 
   nvim-nonicons = buildVimPluginFrom2Nix {
     pname = "nvim-nonicons";
-    version = "2021-03-18";
+    version = "2021-05-10";
     src = fetchFromGitHub {
       owner = "yamatsum";
       repo = "nvim-nonicons";
-      rev = "f136ab905ac99c9bd20a8bc4c470eb33768c54a0";
-      sha256 = "1590gszcra3pagva6zplib35fqlgj26masjq3i6qgq85kpx5s55j";
+      rev = "5056aebb8d0ecc87b26a4f7fe9e9e520e5ea493f";
+      sha256 = "0z1j18hb5n3500b6sxm1dsya9yd9jnnywhhw9z3sbndb3irn2mny";
     };
     meta.homepage = "https://github.com/yamatsum/nvim-nonicons/";
   };
@@ -3312,12 +3600,12 @@ let
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2021-03-23";
+    version = "2021-05-08";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "902f24503ab7a754be2a1c483de1cd3428bd85ec";
-      sha256 = "0b31lpzdx1z88fm60p7d5gs442h4apm2n9h098n4j0ghcs5ppvnf";
+      rev = "bf7155b11278b5c849ddde2da76bfade668d8a92";
+      sha256 = "01pcvq1kany4nrni4g7jnqkdg23bgyl68hfwfqcw8xabrl46p746";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -3336,96 +3624,108 @@ let
 
   nvim-toggleterm-lua = buildVimPluginFrom2Nix {
     pname = "nvim-toggleterm-lua";
-    version = "2021-04-22";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "nvim-toggleterm.lua";
-      rev = "34cc65e594d4f4b9e0d6658a7ceb49f62820d762";
-      sha256 = "1gg4iyqpy68hhk4wly9k87841zns29vh04wcddn91awj5mpigb40";
+      rev = "7e13134c7e252746586ccb35a535c42a1c3b07c4";
+      sha256 = "17md8wvfvy9z2an89fxcg64d6lmqndmzj9qn294s311fn7zpaz0p";
     };
     meta.homepage = "https://github.com/akinsho/nvim-toggleterm.lua/";
   };
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree-lua";
-    version = "2021-04-22";
+    version = "2021-06-09";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "f39869514645b98ec30bc8826763c288b6cbdbef";
-      sha256 = "0z6arqc2i8745vc08hdbwsm1i4biywq65v1zdzrhs3ysx0agppq0";
+      rev = "906a35cd0e7520eaff369688cb0a090240d7c2b9";
+      sha256 = "18nw0xm4dp45v9s9kn0cmjwxdwydgr5f1v2kgm6h6kc1wvvd5scj";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2021-04-24";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "b68f0cc70022fedec9b9190904d6035393111cdf";
-      sha256 = "07zp1fbah65f7lglfkmdzi6cyfchlaf1ap02wzwixiv5hpy6zji4";
+      rev = "37ed50f28f8350de8dc70b56d8ac198aac9b1178";
+      sha256 = "16mmjpk0pqqshlw1qj3zxx197iv4g7mscgfya17c7r03rybz0q19";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2021-04-18";
+    version = "2021-06-05";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "nvim-treesitter-context";
-      rev = "d5070fb1171220e8db6eef77ed994079198d6522";
-      sha256 = "1x534yrbjnf4bny3bykj7jkydhkjxspmipkbb685ja4nppc2lp41";
+      rev = "bdc598b519cfbfdf61baf9a27953da2fc1642b23";
+      sha256 = "1slyjfjcrna06b23kbw4vf81qbncgimzhw1qsqwsqldnvdc35lcr";
     };
     meta.homepage = "https://github.com/romgrk/nvim-treesitter-context/";
   };
 
+  nvim-treesitter-pyfold = buildVimPluginFrom2Nix {
+    pname = "nvim-treesitter-pyfold";
+    version = "2021-05-22";
+    src = fetchFromGitHub {
+      owner = "eddiebergman";
+      repo = "nvim-treesitter-pyfold";
+      rev = "01185457e9c0a118d5807998de624179bc605a2a";
+      sha256 = "13dhix449mvbfsmg8j1554nv6i7gdr8d6143gdy3ihp8sx66bg6k";
+    };
+    meta.homepage = "https://github.com/eddiebergman/nvim-treesitter-pyfold/";
+  };
+
   nvim-treesitter-refactor = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-refactor";
-    version = "2021-03-17";
+    version = "2021-05-03";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-refactor";
-      rev = "edf1790d9cd365785d4f86848c079704aa7e4854";
-      sha256 = "12rp2mj7va5qf55jzca0rgy1xrwkyf7p3zd3xw262m9lqm4hjqqc";
+      rev = "1a377fafa30920fa974e68da230161af36bf56fb";
+      sha256 = "06vww83i73f4gyp3x0007qqdk06dd2i9v1v9dk12ky9d8r0pmxl6";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-refactor/";
   };
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2021-04-23";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "522b26a8795994b719a921a03cfacb0d7dcabf78";
-      sha256 = "0ww1agq33l3jhbfwr5ri9m3ipr48kgwzlzxv96w43x6y29p61g2v";
+      rev = "cadb8110817884fff506043497c0f2b92026aacb";
+      sha256 = "01f1913r1q1x1qwp6l6xrqxfc9lffngnc8js5n37r7naszc9r7w8";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2021-04-19";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "d42bf9f52607c1cb281db570f3f47e0d84b03a02";
-      sha256 = "13ndyskp3yx3nazg6xc1j3lzad588a1qdacs6ymh8vs616p5mqsf";
+      rev = "0fffdcb37cf7d43bc138c89eb002957819c748af";
+      sha256 = "0xd79f7a7zyqj6yzkjanli8r4wjhy17gsp1wl7p7vws6axrbgvjl";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2021-04-16";
+    version = "2021-05-19";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "1db27380053de0cd4aaabd236a67c52d33199f1a";
-      sha256 = "1qq9mk102jj5hqdkmrirccr3jkh2dgsfb3gy4wvpcp7mdcqapsqc";
+      rev = "da717e19678bd6ec33008cf92da05da1b8ceb87d";
+      sha256 = "0jvvjpbxdgch0wvgdmihkqng84rwifq74q858cvfahrx3y5y1cnw";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
@@ -3492,24 +3792,24 @@ let
 
   one-nvim = buildVimPluginFrom2Nix {
     pname = "one-nvim";
-    version = "2021-03-20";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "Th3Whit3Wolf";
       repo = "one-nvim";
-      rev = "b1461ea89c940bdc5ed142327e1cd85ed2c0e877";
-      sha256 = "1w5avzyrcbg60prx3239iazcjvh2mk7lk6k256a1iyxb6dnkpbas";
+      rev = "d6e62bc7cdfae97d1ffc4f508a43955664ad5b73";
+      sha256 = "0bna2kpvaxvwglgmdgp1g93bcygvnc1c25w4isawlgmsclzz9cc6";
     };
     meta.homepage = "https://github.com/Th3Whit3Wolf/one-nvim/";
   };
 
   onedark-vim = buildVimPluginFrom2Nix {
     pname = "onedark-vim";
-    version = "2021-02-25";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "joshdick";
       repo = "onedark.vim";
-      rev = "b70ed293f3c3adaea23f9fcd84ef942015664756";
-      sha256 = "0wz4kmbgc9rlvbxj8s8xg1sx53w0v94r6qicq3ggs9raca51ywfg";
+      rev = "f209c5b6741e6cf847bf4a77e19f2fbf6ffc5290";
+      sha256 = "146ypfx9rxcfp031a4zhzns637bjsf0bznplgyfmz3zjarj85422";
     };
     meta.homepage = "https://github.com/joshdick/onedark.vim/";
   };
@@ -3552,12 +3852,12 @@ let
 
   packer-nvim = buildVimPluginFrom2Nix {
     pname = "packer-nvim";
-    version = "2021-04-19";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "wbthomason";
       repo = "packer.nvim";
-      rev = "f9dc29914f34cb2371960236d514191b9feba8b5";
-      sha256 = "02vg6m7572867gahvpsc1n9363mbk2ci5cvqwwqyh2spsx5f4g88";
+      rev = "d21e0e2c157af0fad6c6752ca07a274632202710";
+      sha256 = "0zww9975x8wkmcdxzg4b51v94iy9644lb1miaz9ra2nwzz4ljqzj";
     };
     meta.homepage = "https://github.com/wbthomason/packer.nvim/";
   };
@@ -3598,6 +3898,18 @@ let
     meta.homepage = "https://github.com/tmsvg/pear-tree/";
   };
 
+  pears-nvim = buildVimPluginFrom2Nix {
+    pname = "pears-nvim";
+    version = "2021-05-27";
+    src = fetchFromGitHub {
+      owner = "steelsojka";
+      repo = "pears.nvim";
+      rev = "14e6c47c74768b74190a529e41911ae838c45254";
+      sha256 = "04kg7g6v6k6jv2pmapaqvkvf6py1i211l822m3lsvf26jcyfs3ag";
+    };
+    meta.homepage = "https://github.com/steelsojka/pears.nvim/";
+  };
+
   peskcolor-vim = buildVimPluginFrom2Nix {
     pname = "peskcolor-vim";
     version = "2016-06-11";
@@ -3636,24 +3948,24 @@ let
 
   playground = buildVimPluginFrom2Nix {
     pname = "playground";
-    version = "2021-04-17";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "playground";
-      rev = "a141bf5c9734ac164cb0dda5e7a2b8b16273a4f6";
-      sha256 = "1grhxhnh5zij2brlk2bmy3b2y8bp9j75hyajfki8dk908pplng0i";
+      rev = "1e02dece0daa4bef6a24c7a8b6edd48169885b18";
+      sha256 = "182nkdzcviz3ap3vphcks4gzw99d4jsmxxlkmb42m0gzd54k1hwq";
     };
     meta.homepage = "https://github.com/nvim-treesitter/playground/";
   };
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary-nvim";
-    version = "2021-04-21";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "9bd408ba679d1511e269613af840c5019de59024";
-      sha256 = "1xjrd445jdjy789di6d3kdgxk9ds04mq47qigmplfsnv41d5c2nj";
+      rev = "3834d42236c155bb4240fb4008ea6e62c4a21dae";
+      sha256 = "1y9aqpb6j36873kcp8dbv5mm04qccjicrs0z0z9cy53s8sgfx558";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -3685,16 +3997,28 @@ let
 
   popup-nvim = buildVimPluginFrom2Nix {
     pname = "popup-nvim";
-    version = "2021-03-10";
+    version = "2021-05-08";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "popup.nvim";
-      rev = "bc98ca6df9179452c368f0d7bac821a8fd4c01ac";
-      sha256 = "0j1gkaba6z5vb922j47i7sq0d1zwkr5581w0nxd8c31klghg3kyn";
+      rev = "5e3bece7b4b4905f4ec89bee74c09cfd8172a16a";
+      sha256 = "1k6rz652fjkzhjd8ljr0l6vfispanrlpq0r4aya4qswzxni4rxhg";
     };
     meta.homepage = "https://github.com/nvim-lua/popup.nvim/";
   };
 
+  presence-nvim = buildVimPluginFrom2Nix {
+    pname = "presence-nvim";
+    version = "2021-06-08";
+    src = fetchFromGitHub {
+      owner = "andweeb";
+      repo = "presence.nvim";
+      rev = "f4c1e227be0a0c863c2de201155401950eda572e";
+      sha256 = "08s4az1gv6r5sl0jqkaf4yzibglibb7n2sivh7qccj8dz8id3883";
+    };
+    meta.homepage = "https://github.com/andweeb/presence.nvim/";
+  };
+
   PreserveNoEOL = buildVimPluginFrom2Nix {
     pname = "PreserveNoEOL";
     version = "2013-06-14";
@@ -3721,12 +4045,12 @@ let
 
   psc-ide-vim = buildVimPluginFrom2Nix {
     pname = "psc-ide-vim";
-    version = "2019-09-17";
+    version = "2021-05-31";
     src = fetchFromGitHub {
       owner = "frigoeu";
       repo = "psc-ide-vim";
-      rev = "5fb4e329e5c0c7d80f0356ab4028eee9c8bd3465";
-      sha256 = "0gzbxsq6wh8d9z9vyrff4hdpc66yg9y8hnxq4kjrz9qrccc75c1f";
+      rev = "20ff325813ab114d70573a6768565a36aba796b9";
+      sha256 = "1s79rz8rjp9bqw4yn97wbmzkc6jav4nixvnky22vbma2d0ckkcm0";
     };
     meta.homepage = "https://github.com/frigoeu/psc-ide-vim/";
   };
@@ -3755,6 +4079,18 @@ let
     meta.homepage = "https://github.com/python-mode/python-mode/";
   };
 
+  QFEnter = buildVimPluginFrom2Nix {
+    pname = "QFEnter";
+    version = "2020-10-09";
+    src = fetchFromGitHub {
+      owner = "yssl";
+      repo = "QFEnter";
+      rev = "df0a75b287c210f98ae353a12bbfdaf73d858beb";
+      sha256 = "0gdp7nmjlp8ng2rp2v66d8bincnkwrqqpbggb079f0f9szrqlp54";
+    };
+    meta.homepage = "https://github.com/yssl/QFEnter/";
+  };
+
   quick-scope = buildVimPluginFrom2Nix {
     pname = "quick-scope";
     version = "2020-12-28";
@@ -3829,12 +4165,12 @@ let
 
   ranger-vim = buildVimPluginFrom2Nix {
     pname = "ranger-vim";
-    version = "2019-02-08";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "rafaqz";
       repo = "ranger.vim";
-      rev = "6def86f4293d170480ce62cc41f15448075d7835";
-      sha256 = "0890rbmdw3p25cww6vsji7xrndcxsisfyv5przahpclk9fc9sxs8";
+      rev = "aa2394bd429e98303f2273011f0429ce92105960";
+      sha256 = "0kfhzamryaxhzrwg2rqipcbrnfxnjrfk2bk4f0z27a2hk6c0r7b9";
     };
     meta.homepage = "https://github.com/rafaqz/ranger.vim/";
   };
@@ -3853,24 +4189,24 @@ let
 
   Recover-vim = buildVimPluginFrom2Nix {
     pname = "Recover-vim";
-    version = "2021-02-24";
+    version = "2021-05-18";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "Recover.vim";
-      rev = "f019bb0bc15093da74ef0bd1a9356dedf13ba885";
-      sha256 = "1v23k4wfiazvkm9iaqw987cs69fwf230a7i15x3rv68azw63fl2b";
+      rev = "097b098e62d6499967e44091689c104165ad5e22";
+      sha256 = "12qizfs7d0xh10vzm7spcqsi53k3iqvbfp5nhb3qh3xdsavzyp0m";
     };
     meta.homepage = "https://github.com/chrisbra/Recover.vim/";
   };
 
   registers-nvim = buildVimPluginFrom2Nix {
     pname = "registers-nvim";
-    version = "2021-04-13";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "tversteeg";
       repo = "registers.nvim";
-      rev = "b8ad2cd8a01dc3e4c2530820409d01b1bbd6fb95";
-      sha256 = "1jz41mskrrbb4w2hkxcpmnpgj93nbh2rb30mn566xkjn3zkh1r23";
+      rev = "34bbf868da6ef0225739e7977a4063872cd2b1e8";
+      sha256 = "0ghy760dc07xwjaf5ci2di8qfq0qip8jyrp7x0rsl820ryy7rggy";
     };
     meta.homepage = "https://github.com/tversteeg/registers.nvim/";
   };
@@ -3913,12 +4249,12 @@ let
 
   rnvimr = buildVimPluginFrom2Nix {
     pname = "rnvimr";
-    version = "2020-10-02";
+    version = "2021-05-19";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "rnvimr";
-      rev = "d83f5a8e070a1fc7e7af0aeea58e71b78956daab";
-      sha256 = "0iwj01p9c2kczhx69vxrh1qd4z41ymcgfq5235b1l0rnz4d6v82y";
+      rev = "dacb2ba386d982d4466aa469799376c38ddcfd2a";
+      sha256 = "1b8zb6k92iwmvdny5g16d5y5zl8fc235vlgvxrnipcfj4m3ch0yy";
     };
     meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
   };
@@ -3961,12 +4297,12 @@ let
 
   rust-tools-nvim = buildVimPluginFrom2Nix {
     pname = "rust-tools-nvim";
-    version = "2021-04-23";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "simrat39";
       repo = "rust-tools.nvim";
-      rev = "7d734e9b52fe54b6cd19435f0823d56dc2d17426";
-      sha256 = "181vq3p1f136qmb0qbd77khc04vrkdw8z9851car7lxs5m83wwp2";
+      rev = "177507f1443be150250ce90c18f5f6fb8d798543";
+      sha256 = "0wj6pccjbcvj42i4516y6wjrssyl3p060454yjxhgqnnnzxc2dh4";
     };
     meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
   };
@@ -3983,6 +4319,18 @@ let
     meta.homepage = "https://github.com/rust-lang/rust.vim/";
   };
 
+  sad-vim = buildVimPluginFrom2Nix {
+    pname = "sad-vim";
+    version = "2019-02-18";
+    src = fetchFromGitHub {
+      owner = "hauleth";
+      repo = "sad.vim";
+      rev = "2f5b33b239a566ffedaa81cee3051bb613482d1e";
+      sha256 = "11kxnrp3b6qc2rcp5jdqjb7cxh6lqy09v3yh7dk4kd51jkgxqbn4";
+    };
+    meta.homepage = "https://github.com/hauleth/sad.vim/";
+  };
+
   salt-vim = buildVimPluginFrom2Nix {
     pname = "salt-vim";
     version = "2017-07-01";
@@ -3995,6 +4343,18 @@ let
     meta.homepage = "https://github.com/saltstack/salt-vim/";
   };
 
+  scrollbar-nvim = buildVimPluginFrom2Nix {
+    pname = "scrollbar-nvim";
+    version = "2021-06-04";
+    src = fetchFromGitHub {
+      owner = "Xuyuanp";
+      repo = "scrollbar.nvim";
+      rev = "c338467dd6ef141fa8ce3172097a1f5be6c43779";
+      sha256 = "1wvzdrj8gckhh6x4szipjjb6mg0v3ix5cq5dy83lfb28psyznshw";
+    };
+    meta.homepage = "https://github.com/Xuyuanp/scrollbar.nvim/";
+  };
+
   self = buildVimPluginFrom2Nix {
     pname = "self";
     version = "2014-05-28";
@@ -4055,6 +4415,18 @@ let
     meta.homepage = "https://github.com/osyo-manga/shabadou.vim/";
   };
 
+  Shade-nvim = buildVimPluginFrom2Nix {
+    pname = "Shade-nvim";
+    version = "2021-04-29";
+    src = fetchFromGitHub {
+      owner = "sunjon";
+      repo = "Shade.nvim";
+      rev = "0196387bba50b8d36cec99cd6483583ff2dedb42";
+      sha256 = "0831k71gm8rpl54x63v7mgp9i1fgxydp2wig3yyd98dc7z9d8f48";
+    };
+    meta.homepage = "https://github.com/sunjon/Shade.nvim/";
+  };
+
   ShowMultiBase = buildVimPluginFrom2Nix {
     pname = "ShowMultiBase";
     version = "2010-10-18";
@@ -4069,12 +4441,13 @@ let
 
   sideways-vim = buildVimPluginFrom2Nix {
     pname = "sideways-vim";
-    version = "2021-04-21";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "sideways.vim";
-      rev = "93021c0623c1822502a72131e2d45617510428b9";
-      sha256 = "042d7zmwmi0xhlshwwrf9bhc0j4ybksxxnrs986vm65y58c11fk3";
+      rev = "bf19ffb2ea583516908ceb861e7c52a0c3260221";
+      sha256 = "1mrqli7gpn3bzfjn3095ms9m8vkpf7zlia6m75c0ppxgmyry8ngs";
+      fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
   };
@@ -4141,12 +4514,12 @@ let
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2021-04-24";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "784de58d2bcad8b16bce972c1727fb0cb07e43b2";
-      sha256 = "04wlqd902fy474mk7688y2mysy8vsm3pf36d59bxd3jlspgp6zcl";
+      rev = "5c1fc0452387cae323692e3345238a780a942056";
+      sha256 = "0j2bba7img06m6b7lzgw1q5r8g38cs70pynwisqdb34l5jbj0fqx";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -4211,6 +4584,18 @@ let
     meta.homepage = "https://github.com/chrisgeo/sparkup/";
   };
 
+  specs-nvim = buildVimPluginFrom2Nix {
+    pname = "specs-nvim";
+    version = "2021-05-05";
+    src = fetchFromGitHub {
+      owner = "edluffy";
+      repo = "specs.nvim";
+      rev = "a62319a224b73b70af47a48ba076d7ec67b08526";
+      sha256 = "1hs7qp3fr451ziddv08nyygnxx1n6y32fr0y97s9zjc7j13d3nc3";
+    };
+    meta.homepage = "https://github.com/edluffy/specs.nvim/";
+  };
+
   splice-vim = buildVimPluginFrom2Nix {
     pname = "splice-vim";
     version = "2020-01-15";
@@ -4237,12 +4622,12 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2021-04-24";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "f4773c0d2f7453fea23f5f69f433547f3d62ea0a";
-      sha256 = "06fsfsvrq6sqyqpmj693vn810c6zvzn16781mw6bb2912cmyrs5z";
+      rev = "a8c4af3d69839cd2c03d458044fb3d3b128e450d";
+      sha256 = "0s87vzdb3j3hna5yda4jay1k4zw419mqd8yn3h4q22qhhsr36q0k";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -4262,24 +4647,24 @@ let
 
   srcery-vim = buildVimPluginFrom2Nix {
     pname = "srcery-vim";
-    version = "2021-04-14";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "srcery-colors";
       repo = "srcery-vim";
-      rev = "9c692e3f17b3485969b55d76a708136e2ccaa5de";
-      sha256 = "1cd4vxx0zb4xcn2yp7kl5xgl8crfr0fwifn4apkn878lqx6ni7gj";
+      rev = "93711180123b9ba6958bfc682d305ef0a1056fa5";
+      sha256 = "1i3hhihlvh5mkn1vl9f1baiz712h8lwp1hfi5arsb36picsmgbfd";
     };
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
 
   stan-vim = buildVimPluginFrom2Nix {
     pname = "stan-vim";
-    version = "2020-08-05";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "eigenfoo";
       repo = "stan-vim";
-      rev = "9d3b6ec149f9559bd9bd021dfa827c29c5d1dc38";
-      sha256 = "0qv748m1vrp1qcl41y7fj2jm8cac9b01ljq6ydq3z4syxdf7yzcc";
+      rev = "2adaa984e531e1876f053cacb07d8d181d70fbd1";
+      sha256 = "1a826cfmwyn4kfyrj6164425gf2wbjs85cdkhzkqsrj0i924hjqz";
     };
     meta.homepage = "https://github.com/eigenfoo/stan-vim/";
   };
@@ -4322,12 +4707,12 @@ let
 
   supertab = buildVimPluginFrom2Nix {
     pname = "supertab";
-    version = "2020-10-01";
+    version = "2021-04-30";
     src = fetchFromGitHub {
       owner = "ervandew";
       repo = "supertab";
-      rev = "d80e8e2c1fa08607fa34c0ca5f1b66d8a906c5ef";
-      sha256 = "0wjaq6k1sb38qmjcp47cr0avvwhphr0wiyl8qvnc8qqyjf8y803k";
+      rev = "f0093ae12a9115498f887199809a6114659fc858";
+      sha256 = "1r1ck62raxhwcxjv7hic7jm9b5inm1vdqc51zn4nybclys7grnss";
     };
     meta.homepage = "https://github.com/ervandew/supertab/";
   };
@@ -4346,24 +4731,24 @@ let
 
   swift-vim = buildVimPluginFrom2Nix {
     pname = "swift-vim";
-    version = "2020-09-04";
+    version = "2021-05-30";
     src = fetchFromGitHub {
       owner = "keith";
       repo = "swift.vim";
-      rev = "bfc662d11b3a006815d0b6972c1c0c2ebbc3b16e";
-      sha256 = "1qf5f9p0kfi6bq2qi9izarva6r711vzlbrbdax8nq9g0pxa1bj3f";
+      rev = "7ef452b47f14a2bfed26324793777cf12d2a8d78";
+      sha256 = "0s12iv8vmqp8yr8fg7a6yf73kgq84i9zy18fhgb0jcc6cwwwz3iq";
     };
     meta.homepage = "https://github.com/keith/swift.vim/";
   };
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2021-04-22";
+    version = "2021-05-19";
     src = fetchFromGitHub {
       owner = "vim-syntastic";
       repo = "syntastic";
-      rev = "a739985ef9fbb9888bdeea2f442d0574a9db0565";
-      sha256 = "0ajpn3q36mvczmvs0g17n1lz0h69rvm25bjsalw83mjxwn46g1h4";
+      rev = "176f364f1b4acf894cdc248944f2d5506a37cc80";
+      sha256 = "01ylf4vjlisgls2f2gwlagg7x1yyhcr64kzdlzhcs3r8s3wdsf25";
     };
     meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
@@ -4406,12 +4791,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2021-03-23";
+    version = "2021-05-27";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "tagbar";
-      rev = "f6012cb65da4bda46b0779a36840df36ad01483e";
-      sha256 = "08vb3ffm1f47q5gxyqmmfv75x12001qpkqml7v612wnnfpclcqf5";
+      rev = "225e6530c2b083e37744b23bac74ae40d7639d68";
+      sha256 = "0qgks9li8zp7lvagq2wzhr4ahzzalgjzps4l9laj5rq3klmc270v";
     };
     meta.homepage = "https://github.com/preservim/tagbar/";
   };
@@ -4442,12 +4827,12 @@ let
 
   taskwiki = buildVimPluginFrom2Nix {
     pname = "taskwiki";
-    version = "2021-04-03";
+    version = "2021-05-22";
     src = fetchFromGitHub {
       owner = "tools-life";
       repo = "taskwiki";
-      rev = "23a3c20a7d5185700e1e6504c3808cfa9eff78d4";
-      sha256 = "0jwb4hcyqwpjaxlissvi69d6fx4dwb7ypdigc2w5hnhfw8nv0kb1";
+      rev = "48e24b03c079be43e296981b2ed0a464bbb710d2";
+      sha256 = "0x57cjzxhphvmxai4pl5752vvi6mlgf0d2mwwnwj0mwc8h0n5dhz";
     };
     meta.homepage = "https://github.com/tools-life/taskwiki/";
   };
@@ -4464,6 +4849,18 @@ let
     meta.homepage = "https://github.com/tomtom/tcomment_vim/";
   };
 
+  telescope-dap-nvim = buildVimPluginFrom2Nix {
+    pname = "telescope-dap-nvim";
+    version = "2021-03-26";
+    src = fetchFromGitHub {
+      owner = "nvim-telescope";
+      repo = "telescope-dap.nvim";
+      rev = "b4134fff5cbaf3b876e6011212ed60646e56f060";
+      sha256 = "1fcpw42bwl5iych3hxrrl08s5hm6r6k0qx2savw853f3ff982s38";
+    };
+    meta.homepage = "https://github.com/nvim-telescope/telescope-dap.nvim/";
+  };
+
   telescope-frecency-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-frecency-nvim";
     version = "2021-04-17";
@@ -4527,24 +4924,24 @@ let
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-nvim";
-    version = "2021-04-23";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "6fd1b3bd255a6ebc2e44cec367ff60ce8e6e6cab";
-      sha256 = "1qifrnd0fq9844vvxy9fdp90kkb094a04wcshbfdy4cv489cqfax";
+      rev = "feaed4b6e23bd56906089154f293f2b1ecb68c7e";
+      sha256 = "0kx9xmlv6smpqgf2mdz0n6r4cwrsldw9d92xk5m1pdsmpi1b61sa";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
 
   tender-vim = buildVimPluginFrom2Nix {
     pname = "tender-vim";
-    version = "2020-06-29";
+    version = "2021-05-24";
     src = fetchFromGitHub {
       owner = "jacoborus";
       repo = "tender.vim";
-      rev = "25924cb8b29a5158e56fb896a2540c70691c7a28";
-      sha256 = "0mm5h5jhb6y0f1zsfhq0frvdm6s93skshi66rfrpn82l93zigw4c";
+      rev = "7746453a045eaa97dc413a7209268345f33f3243";
+      sha256 = "0yxgcnx5x82ak74nz3pvkd1z8i3c7lcl068lh5izdpx65fk7m5yh";
     };
     meta.homepage = "https://github.com/jacoborus/tender.vim/";
   };
@@ -4621,6 +5018,18 @@ let
     meta.homepage = "https://github.com/wellle/tmux-complete.vim/";
   };
 
+  todo-comments-nvim = buildVimPluginFrom2Nix {
+    pname = "todo-comments-nvim";
+    version = "2021-05-26";
+    src = fetchFromGitHub {
+      owner = "folke";
+      repo = "todo-comments.nvim";
+      rev = "8560546c466d1f555573d37e062e95e7ae94bbab";
+      sha256 = "1g0ypjdcj7sp433n933n3qazp7301b2q7p968v57mgmlh5saq6kb";
+    };
+    meta.homepage = "https://github.com/folke/todo-comments.nvim/";
+  };
+
   todo-txt-vim = buildVimPluginFrom2Nix {
     pname = "todo-txt-vim";
     version = "2021-03-20";
@@ -4670,6 +5079,18 @@ let
     meta.homepage = "https://github.com/tremor-rs/tremor-vim/";
   };
 
+  trouble-nvim = buildVimPluginFrom2Nix {
+    pname = "trouble-nvim";
+    version = "2021-06-04";
+    src = fetchFromGitHub {
+      owner = "folke";
+      repo = "trouble.nvim";
+      rev = "a7dca6204316b9be7c95d056088c67371151c8ab";
+      sha256 = "0b2wha4qmn9gb5fmj57ymhn3jrajq71yk48m8gddr1hx244adknh";
+    };
+    meta.homepage = "https://github.com/folke/trouble.nvim/";
+  };
+
   tslime-vim = buildVimPluginFrom2Nix {
     pname = "tslime-vim";
     version = "2020-09-09";
@@ -4708,36 +5129,36 @@ let
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2021-04-18";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "204b501cc8f4acd7f32ebdea262bd5772ca007a2";
-      sha256 = "0jdb3v8lplrl3sqrmx8j8p4pirnwc42fc01arw64rjigrh0fwm4k";
+      rev = "b6c9a814a4fdfcad3ea53d8888746803a7218a9e";
+      sha256 = "0iqirp8pmsrgrk3i0hkk1a66igc5ydi96scp62yl97nazhz45xxr";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
 
   undotree = buildVimPluginFrom2Nix {
     pname = "undotree";
-    version = "2021-04-02";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "mbbill";
       repo = "undotree";
-      rev = "101edfb795bc17b814efb12e6df6a884507a34f6";
-      sha256 = "0fa2iqgzc85955ixa4hf1mjy7sm7hrbkha5l1scganc9zswd5iv2";
+      rev = "1cc3b9069e4356efd4ce1c3c4bdbb227fb54e1e5";
+      sha256 = "0m8wc66ml2h6lsbwq452w8y9s95a4kwp4lfdw94pi4q3h5qhvkxj";
     };
     meta.homepage = "https://github.com/mbbill/undotree/";
   };
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode-vim";
-    version = "2021-04-22";
+    version = "2021-05-24";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "090e77e30e46aceafd53a3219fb2a81b79927d8d";
-      sha256 = "136a8c4d4nrzvab2qa6sxc81x1mwg56nn8ajxikqgyvsr9fp1f9i";
+      rev = "62f7a3558ee4402bcaaae8638e768268f1137a0f";
+      sha256 = "1y5inpiaqvnq69n1dbpiwilqfq2hf56m7w5a6kj2fkav15pyczx7";
     };
     meta.homepage = "https://github.com/chrisbra/unicode.vim/";
   };
@@ -5056,12 +5477,12 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2021-04-23";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "0a87d08dbdb398b2bb644b5041f68396f0c92d5d";
-      sha256 = "1ihg44f3pn4v3naxlzd9gmhw7hzywv4zzc97i9smbcacg9xm6mna";
+      rev = "49cdcb7b3ea76ee19c737885c0ab19e64e564169";
+      sha256 = "17p0j9i6ylns66cx6qw4266yd6al1gvmran3k4v2mhjlynf5c4s3";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -5080,24 +5501,24 @@ let
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2021-04-16";
+    version = "2021-05-18";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "0f9995d5996adf613297896c744415cd9e6b7a80";
-      sha256 = "1zwicvlrfpvgczjnzjdkjhv2b110v5xbmvj132xl8a7xsj3rzg1d";
+      rev = "531bcc9e5a4cb1b1fb4dec8face230bf3d205ac7";
+      sha256 = "05yapm3g9rj7k69dhlm7hspakbczwwlbx1lcdydvkx639ka7j09d";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
 
   vim-android = buildVimPluginFrom2Nix {
     pname = "vim-android";
-    version = "2021-04-12";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "hsanson";
       repo = "vim-android";
-      rev = "a3158ec78e63e4858af2704d7a8127728639981e";
-      sha256 = "0rpmsf3ykg6q848f0ahp7qrr33pfp1zzxkpc32w3najyqwsfmz6a";
+      rev = "520e29d4dd2c4418e246bc28a3383fefdf501cd2";
+      sha256 = "13kdbp6542k2g2vnzvfrijyc3qmkfysn4wyrsq95bai4pqaipraf";
     };
     meta.homepage = "https://github.com/hsanson/vim-android/";
   };
@@ -5152,14 +5573,14 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2021-04-20";
+    version = "2021-06-08";
     src = fetchFromGitHub {
-      owner = "Chiel92";
+      owner = "vim-autoformat";
       repo = "vim-autoformat";
-      rev = "7ea00a64553854e04ce12be1fe665e02a0c7d9db";
-      sha256 = "1jy5c50rd27k43rgl9wim502rp00cfnyh2zkd5bvbg0j85a9q72k";
+      rev = "43ec20e20f21f4f4a5eccadef01186ee7bf1df98";
+      sha256 = "0qa9a6l9snkvnf41924mvv5yhm8ywcz6mzdirsr43inp5hgv6r8n";
     };
-    meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
+    meta.homepage = "https://github.com/vim-autoformat/vim-autoformat/";
   };
 
   vim-automkdir = buildVimPluginFrom2Nix {
@@ -5212,12 +5633,12 @@ let
 
   vim-beancount = buildVimPluginFrom2Nix {
     pname = "vim-beancount";
-    version = "2021-04-16";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "nathangrigg";
       repo = "vim-beancount";
-      rev = "dd2f56a122b698454af582cbe7eae471dbdc48f8";
-      sha256 = "00wcq3wg02rjzhc83cm4gvc9fw78a7s5gds4qdn7zqf55ha2d6vi";
+      rev = "2f970a0c826275f7d07fa145ba9a35c15b15232d";
+      sha256 = "0fzacrlfr8fy5j1kps1mbkik0ln7lgd9c9jv74xd3mrz50hzqzby";
     };
     meta.homepage = "https://github.com/nathangrigg/vim-beancount/";
   };
@@ -5332,12 +5753,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2021-04-17";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "8e13b23d69549c95d9c223ea5c2487d5dd9558f7";
-      sha256 = "1biiq07dhrz9vhk0yg3zkkv3329nyla6lp8kavdzqrvqg0hsbr2j";
+      rev = "c7e013cb273597e37eb65b481cbeb7d1b92b01b7";
+      sha256 = "1i33y3jqjqbrg2mgnz4sxvsckl1ggdg3aymxxz4l3qivnbn1fni5";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -5390,6 +5811,18 @@ let
     meta.homepage = "https://github.com/alvan/vim-closetag/";
   };
 
+  vim-code-dark = buildVimPluginFrom2Nix {
+    pname = "vim-code-dark";
+    version = "2021-04-09";
+    src = fetchFromGitHub {
+      owner = "tomasiser";
+      repo = "vim-code-dark";
+      rev = "670fed53a2ae67542a78ef7b642f4aca6b6326dc";
+      sha256 = "0zdhhv3h8lzba8dpv0amc5abpkzayp6gbjw6qv712p638zyr99vw";
+    };
+    meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
+  };
+
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
     version = "2021-04-15";
@@ -5512,12 +5945,12 @@ let
 
   vim-crates = buildVimPluginFrom2Nix {
     pname = "vim-crates";
-    version = "2021-04-03";
+    version = "2021-05-07";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-crates";
-      rev = "96a40ee5c976390c142b0074d7a4a7e54b0cfa00";
-      sha256 = "0nd8w4rx1s0fnhxn0ngl3dxj94ar8vjn611684v5pbxdpj6b92fm";
+      rev = "f6f13113997495654a58f27d7169532c0d125214";
+      sha256 = "1acm52hlv0qhisgcy8xwck6zv29b8x40bcngg7z3invv47b1gi7k";
     };
     meta.homepage = "https://github.com/mhinz/vim-crates/";
   };
@@ -5536,12 +5969,12 @@ let
 
   vim-css-color = buildVimPluginFrom2Nix {
     pname = "vim-css-color";
-    version = "2021-02-02";
+    version = "2021-05-30";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "8dd7f1bf25acee493a5114e627ea90a9850c5fa8";
-      sha256 = "0pjq14i7w2snlbzsqhfdn0fkribjsyngg6fcmpgacm4jvx3iviql";
+      rev = "7337c35588e9027b516f80f03c3b9621a271e168";
+      sha256 = "05np2fr8q8r8n5mlspjywibl7hx54liy77wxvjya7n2p085n49ks";
     };
     meta.homepage = "https://github.com/ap/vim-css-color/";
   };
@@ -5584,16 +6017,28 @@ let
 
   vim-dadbod = buildVimPluginFrom2Nix {
     pname = "vim-dadbod";
-    version = "2021-04-22";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "63bfd6d99ba17832f4740efa5e2e6ad6537d4552";
-      sha256 = "0p9n1n8n0167kgq4wwwxsnair2hqqvy6vwcqchnb15hifl3cl0w3";
+      rev = "9e4fdb8ab029c0436728a96e1c92677737c2e784";
+      sha256 = "1rmiza1km214mvlrdaqycv5hk8ki35giab11b9ggwcigbh743h01";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
 
+  vim-dadbod-completion = buildVimPluginFrom2Nix {
+    pname = "vim-dadbod-completion";
+    version = "2021-05-12";
+    src = fetchFromGitHub {
+      owner = "kristijanhusak";
+      repo = "vim-dadbod-completion";
+      rev = "a3f8ea8e666f4bebe12739d8854a4bd31544dfbb";
+      sha256 = "04m7drx86r8zqq7rq29wa9zq5ckzf5bqxzyhdc5hqn82jxcvxmpz";
+    };
+    meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/";
+  };
+
   vim-dasht = buildVimPluginFrom2Nix {
     pname = "vim-dasht";
     version = "2020-07-11";
@@ -5618,14 +6063,26 @@ let
     meta.homepage = "https://github.com/konfekt/vim-DetectSpellLang/";
   };
 
+  vim-deus = buildVimPluginFrom2Nix {
+    pname = "vim-deus";
+    version = "2021-03-28";
+    src = fetchFromGitHub {
+      owner = "ajmwagar";
+      repo = "vim-deus";
+      rev = "1be965e7bc1c01e7db5e46dcd0e50d32d4eef434";
+      sha256 = "1h0imrxhxw81hkh9xl75rcnx7ll5fry6hcf7flx84n6nawvfzyvm";
+    };
+    meta.homepage = "https://github.com/ajmwagar/vim-deus/";
+  };
+
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2021-02-19";
+    version = "2021-05-13";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "4d14cb82cf7381c2f8eca284d1a757faaa73b159";
-      sha256 = "1wwqchf50c19a5d5g037rjjpskn7dpsq9alhzim2x6bgffb5yamd";
+      rev = "4c2df59e37b6680e0ec17b543b11a405dc40262c";
+      sha256 = "0knpfl0lwiy0w2f9qd3gz3yl03dqzn6fllv0isl0iz24csya6v2h";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -5644,12 +6101,12 @@ let
 
   vim-dirdiff = buildVimPluginFrom2Nix {
     pname = "vim-dirdiff";
-    version = "2020-11-03";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "will133";
       repo = "vim-dirdiff";
-      rev = "0191693f0d3dfc624c61ac95ec951183a50b3b32";
-      sha256 = "0har8iri09nkjsvag4wgsynb9fxan2g8nlvlvd5zsalbnmlmdh9j";
+      rev = "84bc8999fde4b3c2d8b228b560278ab30c7ea4c9";
+      sha256 = "06qjfz94hqsmg43dpj347cvc72p16xp76zq216js35yphv6sgx65";
     };
     meta.homepage = "https://github.com/will133/vim-dirdiff/";
   };
@@ -5668,12 +6125,12 @@ let
 
   vim-dirvish-git = buildVimPluginFrom2Nix {
     pname = "vim-dirvish-git";
-    version = "2020-12-18";
+    version = "2021-05-22";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dirvish-git";
-      rev = "0c8c1a2878074abb0ac24054810de427ebff5500";
-      sha256 = "0gan44cyjskzjx5wv20zyvw2jn4cs4537fpwh2m3vi6758s2bmwy";
+      rev = "1d938c826503059660d89f186d2e8affc686a0e8";
+      sha256 = "11vd07cy8bylh75hznddpkpjyr4jg8sgcq12rv1pig4p6wh4lzm5";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dirvish-git/";
   };
@@ -5738,6 +6195,18 @@ let
     meta.homepage = "https://github.com/junegunn/vim-easy-align/";
   };
 
+  vim-easyescape = buildVimPluginFrom2Nix {
+    pname = "vim-easyescape";
+    version = "2020-11-22";
+    src = fetchFromGitHub {
+      owner = "zhou13";
+      repo = "vim-easyescape";
+      rev = "fd7875f1657fd54fae85088acf289b9723d8a790";
+      sha256 = "0h8kmhliicbdqhximp3d961crp6qkjjs4yciksl037ds47kzrkif";
+    };
+    meta.homepage = "https://github.com/zhou13/vim-easyescape/";
+  };
+
   vim-easygit = buildVimPluginFrom2Nix {
     pname = "vim-easygit";
     version = "2018-07-08";
@@ -5788,12 +6257,12 @@ let
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2021-04-21";
+    version = "2021-05-16";
     src = fetchFromGitHub {
       owner = "elixir-editors";
       repo = "vim-elixir";
-      rev = "c3cb96e153728fbfd050173b4af19118b131f278";
-      sha256 = "1v0rgzpnpanics4zhx3y9m6ppa727yc0mvcx065jg2a2a1563sgy";
+      rev = "6dc61ad4dcfa520d56f3a4373bd507f529a25382";
+      sha256 = "1rqr16wcwzrs6w9iwg4wghqm7nb1jgzwjmfimvclnkbqpp8ssaq6";
     };
     meta.homepage = "https://github.com/elixir-editors/vim-elixir/";
   };
@@ -5932,12 +6401,12 @@ let
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2021-03-20";
+    version = "2021-05-12";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "e04a615e72ec2e216116b5c6514ac4d86b21ffc3";
-      sha256 = "1q17xlwprkvx27fbb9xg1zh5nyx8gif3pp6p8vd3r6zhzqqdl469";
+      rev = "07b0256b08e0da6d31200663cbe6d6f8c995a287";
+      sha256 = "0zp3ghiqyg1qf8rxx5a1hqxyz4sqqw1afbh9qzsjlw18g0va86kj";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -5992,24 +6461,24 @@ let
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2021-04-22";
+    version = "2021-05-26";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "4a1938457489fe072acf2fbbe7142a3cfb0d8ad8";
-      sha256 = "1va57czyrihcc2cihbbil5vqhnlzvjrb9bw7wirdrpjrd04ciaa4";
+      rev = "808cb148d552d0369b0d2b74492086b1bfdbd22a";
+      sha256 = "0mv56lb18zcjp18jfr9a8262bjsnsjsgirw8a2md8df60gd5jn5n";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
 
   vim-flog = buildVimPluginFrom2Nix {
     pname = "vim-flog";
-    version = "2021-03-07";
+    version = "2021-05-02";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "904b964eb0f878e44f47d39898e72fc0b939756b";
-      sha256 = "07x8xafcvpg6dgxlvmf46gh7a9xvnrxj7i326q73g3yfh5xpma6c";
+      rev = "cabecb166bde31d9fe86caac7e51284cff575da2";
+      sha256 = "13ybny4i20p6xi6rp6vzngbrjwjpikvcrhg8spj1g9n2z5wcc2xz";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
@@ -6052,12 +6521,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2021-04-23";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "8f4a23e6639ff67c0efd7242870d4beed47b5d37";
-      sha256 = "0ss8qlxgidlf1ma6z3ma63lqgaynnbrj9fdbw38szwc823vdqiid";
+      rev = "41960996e0c532069533072b3fd820fafe9ce0b3";
+      sha256 = "0lzjwjbdq90b39561yp7qs1l69iw4jlxcjrsi5yvh1rbhv7gpy1i";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -6100,12 +6569,12 @@ let
 
   vim-git = buildVimPluginFrom2Nix {
     pname = "vim-git";
-    version = "2021-03-18";
+    version = "2021-05-26";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-git";
-      rev = "e9058ebb9b9563ec77bc96fb19b2138f6512beef";
-      sha256 = "17wpar2ais3cx1jaak9l8fck7fks2yczn7flcvgfcwvjxd9vyxgq";
+      rev = "314fa6f289cec56d7d6e631f71b6d987832f0af4";
+      sha256 = "0ar095jxrnfcfbg5gzwb82mz93hpwsdsclzam80424m0iapgl4li";
     };
     meta.homepage = "https://github.com/tpope/vim-git/";
   };
@@ -6124,12 +6593,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2021-04-22";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "f4bdaa4e9cf07f62ce1161a3d0ff70c8aad25bc5";
-      sha256 = "0h00i0b8p0mnynp7hhj2vpgj9rhqmlx14y2kcskvac8i2wlyj30c";
+      rev = "0f98634b92da9a35580b618c11a6d2adc42d9f90";
+      sha256 = "0l1f98zfmxq8xi2ii31ih0mbq5yilpc0l61qbprs1g5h5p4azjy8";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -6172,12 +6641,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2021-04-23";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "87fd4bf57646f984b37de5041232047fa5fdee5a";
-      sha256 = "00clqf82731zz6r1h4vs15zy4dka549cbngr1j9w605k5m9hrrzs";
+      rev = "edd8c160e54c2861a617777192a48d0a64704192";
+      sha256 = "1xdggzasvv3x1h61yqp2rl30r6kppf6aqdjqsrpzihz809w5zgry";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -6208,24 +6677,24 @@ let
 
   vim-grepper = buildVimPluginFrom2Nix {
     pname = "vim-grepper";
-    version = "2020-07-12";
+    version = "2021-05-10";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-grepper";
-      rev = "e9004ce564891412cfe433cfbb97295cccd06b39";
-      sha256 = "1cs72x3wv4i11x7ch3gna1sxqn5zj3bd34smchfd00g4mf201lhs";
+      rev = "b80004c050501122d58f82712b21d0b7c8dfc019";
+      sha256 = "049552dvsk14hx4h9rp9g65xkf13n42z304lzxca69j5q6k1qrdl";
     };
     meta.homepage = "https://github.com/mhinz/vim-grepper/";
   };
 
   vim-gruvbox8 = buildVimPluginFrom2Nix {
     pname = "vim-gruvbox8";
-    version = "2021-04-22";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "lifepillar";
       repo = "vim-gruvbox8";
-      rev = "217a87f4f751ed0d6fe5c79b2c0963f557bf0314";
-      sha256 = "1gdys8ycmmykq121ix34wva75m18nda0camiqr4aavb9hj32faj6";
+      rev = "66d58b569fdbe0ec389acb66eb4a585f3110e43e";
+      sha256 = "0bggkq2p109vc67s0idplrf4sy4j12smwkx2wvsc626bzflzc2fb";
     };
     meta.homepage = "https://github.com/lifepillar/vim-gruvbox8/";
   };
@@ -6304,12 +6773,12 @@ let
 
   vim-hcl = buildVimPluginFrom2Nix {
     pname = "vim-hcl";
-    version = "2021-03-17";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "jvirtanen";
       repo = "vim-hcl";
-      rev = "d50f93204b606b4ff40a9522be0e8dbf6055b815";
-      sha256 = "0sdaldmdrgha5ij02flsqrc77ijjifdvl8b6pdw24xrpd9j5cwhs";
+      rev = "6289d1a1424229a8f6523f4ef9441dbf2468250b";
+      sha256 = "0x33bdvacmj82m838frr40r16mc0cvb2p9alkr2gw30ls2ym3zdy";
     };
     meta.homepage = "https://github.com/jvirtanen/vim-hcl/";
   };
@@ -6340,12 +6809,12 @@ let
 
   vim-hexokinase = buildVimPluginFrom2Nix {
     pname = "vim-hexokinase";
-    version = "2021-03-31";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-hexokinase";
-      rev = "6bd30278c7af4c624bf996650d62dac404342dc7";
-      sha256 = "1wimsi6pxhw410dbcgj4sr9q5k21066i762fyaaf424jyf1g8d2i";
+      rev = "62324b43ea858e268fb70665f7d012ae67690f43";
+      sha256 = "1qdy028i9zrldjx24blk5im35lcijvq4fwg63ks2vrrvn0dfsj01";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RRethy/vim-hexokinase/";
@@ -6413,12 +6882,12 @@ let
 
   vim-html-template-literals = buildVimPluginFrom2Nix {
     pname = "vim-html-template-literals";
-    version = "2020-09-02";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "jonsmithers";
       repo = "vim-html-template-literals";
-      rev = "602dba70bdcfc2e280e0c0503e74a8a92519db49";
-      sha256 = "0x0sbmcig3r058sg78bfj8dv0lwlgdcwvw9kxviynyhk2qkg9zl9";
+      rev = "e6f3f8ffaae9c2f9deea2bbb596b64468041616c";
+      sha256 = "1lrkby9m60ccgm35y1z82llgzjd5vmdwfscy7byjd5ycnkhyangi";
     };
     meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/";
   };
@@ -6473,12 +6942,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2021-04-13";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "d20beb074f2de67104dda1f698cf83c920ffd78a";
-      sha256 = "0lll31xp6vjqrzphs6f3zkz15rwis6lavw2cibvi7hx2vfp4hds2";
+      rev = "daa49da1e7a6d8c8dcbd3a40f91046d1505fd645";
+      sha256 = "1qvnij7z48g1m6n2qz5lbgbiwwaqnb626sz6qvhkd5jh556pmfah";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -6593,12 +7062,12 @@ let
 
   vim-javascript = buildVimPluginFrom2Nix {
     pname = "vim-javascript";
-    version = "2021-04-02";
+    version = "2021-05-23";
     src = fetchFromGitHub {
       owner = "pangloss";
       repo = "vim-javascript";
-      rev = "585ad542834fd3d9e47e0ef59abafd69c696c80d";
-      sha256 = "0y0lpx54yfmqbmvrhy95d0gp3qvrqn7ak7mdfsqlddp77gzs7qk2";
+      rev = "f8345cdb6734aefa5c0f9cb128c9efd005410a43";
+      sha256 = "0s8bsfsjzc2djy2gvvf44g5ypsr7r3ax436xn0qpvhr58aa5m4dv";
     };
     meta.homepage = "https://github.com/pangloss/vim-javascript/";
   };
@@ -6642,12 +7111,12 @@ let
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2021-04-01";
+    version = "2021-05-04";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "fc059e80ff0b368a9188d6c16db052da6ac0951f";
-      sha256 = "03x8hhaf5mirk38gb8j7k3fk6jjis64a4r2hnvkgg6hwf9h02f2g";
+      rev = "e9e8547a57fa113945047c003d321fbbee770e03";
+      sha256 = "15j7fb20rz6gndm04ac9lfwrbq9ss5pk9ilxj90rd1dmppvkdkfr";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -6702,12 +7171,12 @@ let
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2021-03-31";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "f09007be7e477a491a478444b302d079104af23d";
-      sha256 = "06m9rf0c9nxmyz9qnri1lmyb7cljv3vz2njxvh3fz8q7hjghh6cd";
+      rev = "50b87c4287c791addc7364dfa377605d0837d326";
+      sha256 = "0z3hmgflpiv0czdrkvpc845ms7bjy9rs2a6mp7gyzlqyqrjvqzzy";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -6858,48 +7327,60 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2021-03-23";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "2f0cbbfb8ea8997b408e447a2bc9554a3de33617";
-      sha256 = "1y3r5a5mcjf8dp0pkmhgnbay10hh48w1b3wd795wwbm6nx4izjjq";
+      rev = "4b0fc48037c628f14209f30616a19287d9e54823";
+      sha256 = "1jwfc193wbh2rmyi6mdwgr3lcq82qhlclq4hjwg1hcw94442r5xv";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2021-04-17";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "296fb98d198cbbb5c5c937c09b84c8c7a9605a16";
-      sha256 = "1khiygamq1jirlz2hgjjksr12a7sj4x90hs7z4zkvzl83ysnbmdn";
+      rev = "516fd7ce956bdfa2fa6ee8ac6d77ad8a57616811";
+      sha256 = "0anfwxq93ddmymdna692xz74h3kimwmw1ii6pq8ci08i3pkqjrf7";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
 
   vim-lsp-cxx-highlight = buildVimPluginFrom2Nix {
     pname = "vim-lsp-cxx-highlight";
-    version = "2021-04-06";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "jackguo380";
       repo = "vim-lsp-cxx-highlight";
-      rev = "130fd4189e0328630be7ad4aa7e1d98a0a503170";
+      rev = "9e42350272a413a51ce9a93b00c98682815ff7c1";
       sha256 = "1nsac8f2c0lj42a77wxcv3k6i8sbpm5ghip6nx7yz0dj7zd4xm10";
     };
     meta.homepage = "https://github.com/jackguo380/vim-lsp-cxx-highlight/";
   };
 
+  vim-lua = buildVimPluginFrom2Nix {
+    pname = "vim-lua";
+    version = "2020-08-05";
+    src = fetchFromGitHub {
+      owner = "tbastos";
+      repo = "vim-lua";
+      rev = "fa810f85437525bcea0fc4ff22c634935721d86d";
+      sha256 = "1fkpfjpmv80lcd7jn95pzxrcbzn8avdywjknd5bn3212ahydg43m";
+    };
+    meta.homepage = "https://github.com/tbastos/vim-lua/";
+  };
+
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2020-12-23";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "46730b0d818da2da005e3c8a38ff987a2dd36d7c";
-      sha256 = "1lc4lysv3q7qvivfrwqggrpdgsb3zkhq1clvzfsxfsa2m1y4gr0z";
+      rev = "2b5565881b31ed4e7ac32b4903827ec9c164216d";
+      sha256 = "13nzkqhyz8jydrwprw06jqcx3w37xv0qdq0809gx748kfvh1dznw";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -6967,12 +7448,12 @@ let
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2021-04-20";
+    version = "2021-06-02";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "71b97bac53aa09760e8d8c36767c657b274c468d";
-      sha256 = "0ign21d8w6hcrbz9j6c0p1ff0y396wl7snm5dj81m7fck2287pj3";
+      rev = "fd9f3c09b04725c8042149bfe3fd080b6f6962cb";
+      sha256 = "08cqh4b01jl0iqd1nj2sw2jcwxp48m9rdh50sdnfjgdvynnpagik";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -7027,12 +7508,12 @@ let
 
   vim-monokai = buildVimPluginFrom2Nix {
     pname = "vim-monokai";
-    version = "2021-02-12";
+    version = "2021-05-06";
     src = fetchFromGitHub {
       owner = "crusoexia";
       repo = "vim-monokai";
-      rev = "65fa0678d8426ae2cc7a4c42a8f0d72bde2a7bbe";
-      sha256 = "0r118mxm34kr8yk66x9ddg2yh44gn00iaxljfbhg43nhp8jyzjbn";
+      rev = "66f7dc9c63296ea6ba408faa60bebe54a34c57f2";
+      sha256 = "10ip0y9p2qf869h2yhp2zs6qc048rw1x5i0spziajca96251gvig";
     };
     meta.homepage = "https://github.com/crusoexia/vim-monokai/";
   };
@@ -7147,24 +7628,24 @@ let
 
   vim-ninja-feet = buildVimPluginFrom2Nix {
     pname = "vim-ninja-feet";
-    version = "2019-05-12";
+    version = "2021-05-27";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-ninja-feet";
-      rev = "5b48f97bf4865a25f5f4568c45cdfd08f946ec4f";
-      sha256 = "1i3n5nlwyg65k0f0qrimbfs67l2xx39cqp4gyrycw4vzp6hs0lsc";
+      rev = "cb9b448dd468a338255aed474e6113ed115612c1";
+      sha256 = "1aqmhqaxb72ih56mh85kv4fkxyqw5hfispd208lfyp4w3zhvli30";
     };
     meta.homepage = "https://github.com/tommcdo/vim-ninja-feet/";
   };
 
   vim-nix = buildVimPluginFrom2Nix {
     pname = "vim-nix";
-    version = "2020-11-16";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "LnL7";
       repo = "vim-nix";
-      rev = "7542a2bf66d72cb86fc80529867accbc787f744b";
-      sha256 = "1kgziwckdjg3sb1z4anwsn1c72hny60vhimxpb6424bylk1qy22j";
+      rev = "63b47b39c8d481ebca3092822ca8972e08df769b";
+      sha256 = "08n9cgphv2m96kk5w996lwlqak011x5xm410hajmc91vy5fws361";
     };
     meta.homepage = "https://github.com/LnL7/vim-nix/";
   };
@@ -7303,12 +7784,12 @@ let
 
   vim-oscyank = buildVimPluginFrom2Nix {
     pname = "vim-oscyank";
-    version = "2021-04-20";
+    version = "2021-05-21";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "vim-oscyank";
-      rev = "2a0af02d0fd59baeb84cf865e395827750c875f0";
-      sha256 = "06vrham1zg5vfr4q4gmz2ski4y02c3bfivzy4rlfvjs81qj3vn3m";
+      rev = "20fade09069cd35602387c2e7d2a7cd0f6cff8b0";
+      sha256 = "1ym87hd85l67976dxk919mdwab8fi8iq8azqk4mpa75gzl2ia7wl";
     };
     meta.homepage = "https://github.com/ojroques/vim-oscyank/";
   };
@@ -7351,12 +7832,12 @@ let
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2021-04-16";
+    version = "2021-04-30";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "5af0dcf7878a8c947ae5a69989524f0a1ba5f6da";
-      sha256 = "17vb0xnzq6ic9naqg2wvjdh7s7ckz82ixv45pknxc21b6wjrfc75";
+      rev = "587399591a9e9b8da9846c0d724a84a3bd1ce98e";
+      sha256 = "1xghmq15i8wqfwx7gib8j54c5s3an9q4idy6c6mbywd75s4384m5";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
   };
@@ -7471,12 +7952,12 @@ let
 
   vim-plug = buildVimPluginFrom2Nix {
     pname = "vim-plug";
-    version = "2021-02-08";
+    version = "2021-04-30";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "cffcfe150bda75177920530c5f1911b52f70a065";
-      sha256 = "0sgfnxi1f5mnzcbklcmq6x17r1z1kz8s7h2h94girmd4aga3gcp0";
+      rev = "fc2813ef4484c7a5c080021ceaa6d1f70390d920";
+      sha256 = "0fsl8w17z15sj21x5gd5ah5p5fjsnk0gzdx2n2p0jnkcb05bwzck";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -7495,12 +7976,12 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2021-04-14";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "730dcb02caab60a6ae5d8b4bdc16d290041061ec";
-      sha256 = "1pgqw008xy3fn821zxfiwc9xpd0v33wxmk4yf9avm5jgqbkwn1ld";
+      rev = "c312d30231f136d2fbb32a2cfea554af5066e6b0";
+      sha256 = "1apd860v2xfi3fjgl15j7mgn6nczx10vj324w1vf1ic5nyy4b594";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -7627,12 +8108,12 @@ let
 
   vim-qf = buildVimPluginFrom2Nix {
     pname = "vim-qf";
-    version = "2021-03-29";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "romainl";
       repo = "vim-qf";
-      rev = "127257057c4befb8c1026a7ba7e07713af1fb5c8";
-      sha256 = "1ai915kfxq4m8ba304qpcc2qb5rcj2vsrfcdh3blb1slw3a90hiq";
+      rev = "4fe7e33a514874692d6897edd1acaaa46d9fb646";
+      sha256 = "054p9f3a3yljng3r51asgyq2ifmmrr35ws5f8dv8ssmby2f7an1l";
     };
     meta.homepage = "https://github.com/romainl/vim-qf/";
   };
@@ -7651,12 +8132,12 @@ let
 
   vim-quickrun = buildVimPluginFrom2Nix {
     pname = "vim-quickrun";
-    version = "2021-04-22";
+    version = "2021-05-18";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-quickrun";
-      rev = "31274b11e0a658b84f220ef1f5d69e171ba53ebf";
-      sha256 = "1687ih32rgjjxf84dw7yx2qkylrqwp4ir8hj6mlh1hmysfd13vvl";
+      rev = "759c9dd42d02c8634a044af998fd895682a0ce75";
+      sha256 = "0wdfya3kzk0xygk8ngg1kz1kdd3qzfxld3w0bq3pxsns41838a8c";
     };
     meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
@@ -7699,12 +8180,12 @@ let
 
   vim-rails = buildVimPluginFrom2Nix {
     pname = "vim-rails";
-    version = "2021-03-29";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rails";
-      rev = "9c3c831a089c7b4dcc4ebd8b8c73f366f754c976";
-      sha256 = "15m7hhqadvpf3ryig5vifp8m0md2mg9apx71z8xrpc7hgwsvy1bi";
+      rev = "3b3796352a6f1a68e54e5f7ae5e0c1b9103fab0e";
+      sha256 = "1f0xns0h55szamms17wi06k1ninvygsc4yw82hr29kfq94hvn57l";
     };
     meta.homepage = "https://github.com/tpope/vim-rails/";
   };
@@ -7735,12 +8216,12 @@ let
 
   vim-rooter = buildVimPluginFrom2Nix {
     pname = "vim-rooter";
-    version = "2021-04-12";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-rooter";
-      rev = "662c00676abab9d7ce16bf9f202420bf86cc6554";
-      sha256 = "1birkzysn8midk627zyp3pla51wmz4sp613gs5xxlms5imq4diaq";
+      rev = "9a5ce8edc67cca36cc530ee27a805112ce7a7e9b";
+      sha256 = "0zx1mzaiqwqyg7imahwy0mzp52b2dzp4qdnrsgcnkvkxf8v67bak";
     };
     meta.homepage = "https://github.com/airblade/vim-rooter/";
   };
@@ -7903,16 +8384,28 @@ let
 
   vim-signify = buildVimPluginFrom2Nix {
     pname = "vim-signify";
-    version = "2021-04-22";
+    version = "2021-05-19";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "6b9afcce385b1121d46f749f9cd46d05e132c1e4";
-      sha256 = "04yh7cq9vi1hksksyphg8s4xz64qc6pmwnrbqapfgfsmp6jk11s5";
+      rev = "22f05607d4d7406781af56cafc1121152988c6d2";
+      sha256 = "1rq5d3v5qvv0hnvk18q66zd8963flnjvxb4b65vh88md15qc3p3j";
     };
     meta.homepage = "https://github.com/mhinz/vim-signify/";
   };
 
+  vim-simpledb = buildVimPluginFrom2Nix {
+    pname = "vim-simpledb";
+    version = "2020-10-02";
+    src = fetchFromGitHub {
+      owner = "ivalkeen";
+      repo = "vim-simpledb";
+      rev = "1e9e72160dd01c837b5afb4f75cbb587a15b31b5";
+      sha256 = "1y0i876p2pxx7gbr04acnv94cjrincsbg03bqxr89xbqlbggxf0w";
+    };
+    meta.homepage = "https://github.com/ivalkeen/vim-simpledb/";
+  };
+
   vim-slash = buildVimPluginFrom2Nix {
     pname = "vim-slash";
     version = "2019-08-28";
@@ -7949,6 +8442,18 @@ let
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
 
+  vim-smali = buildVimPluginFrom2Nix {
+    pname = "vim-smali";
+    version = "2015-11-05";
+    src = fetchFromGitHub {
+      owner = "mzlogin";
+      repo = "vim-smali";
+      rev = "012c21565e6be8f1718ad634aa84730a0a84b42c";
+      sha256 = "1mcdbcfiq5r21q297fxi18c3ah4193j1fnjnbjnrjh20r50wggx8";
+    };
+    meta.homepage = "https://github.com/mzlogin/vim-smali/";
+  };
+
   vim-smalls = buildVimPluginFrom2Nix {
     pname = "vim-smalls";
     version = "2015-05-02";
@@ -7975,12 +8480,12 @@ let
 
   vim-smt2 = buildVimPluginFrom2Nix {
     pname = "vim-smt2";
-    version = "2021-02-16";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "bohlender";
       repo = "vim-smt2";
-      rev = "196d05f7152fb95c4613476368ebae9dd842d470";
-      sha256 = "0lk9clnvrkjbxgszg52zdl28d313vk2fiyh86aa6xx5pr0nr9iw3";
+      rev = "2cc8c80c0a88e0d47de85bef1d50df86e197c302";
+      sha256 = "0djk8s8q4b72blw73r4m7z9gc15gys167xgnvd1avmfyfw8fb22a";
     };
     meta.homepage = "https://github.com/bohlender/vim-smt2/";
   };
@@ -7999,12 +8504,12 @@ let
 
   vim-snipmate = buildVimPluginFrom2Nix {
     pname = "vim-snipmate";
-    version = "2021-01-22";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "garbas";
       repo = "vim-snipmate";
-      rev = "cbec960ab558b20281c0634b9b1a45fb16aaf638";
-      sha256 = "1k35rh5gq8lv67qx3l31xvl4iz7rlpybls7pwhsbmz4m598w03bm";
+      rev = "ed3c5426a20bf1c06d7980946ada34fd9f93320e";
+      sha256 = "0bxaalza02sgm045cj4vciy3qhmj7pj1rp9bdwm5837ldq8paj1h";
     };
     meta.homepage = "https://github.com/garbas/vim-snipmate/";
   };
@@ -8059,12 +8564,12 @@ let
 
   vim-speeddating = buildVimPluginFrom2Nix {
     pname = "vim-speeddating";
-    version = "2019-11-12";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-speeddating";
-      rev = "fe98cfaa7ea9c4b838d42a6830437c919eb55b4e";
-      sha256 = "02875qswrmanr7b798ymlc7w60055q0av0qj3fh7fvpqhsqpg52k";
+      rev = "95da3d72efc91a5131acf388eafa4b1ad6512a9b";
+      sha256 = "1al53c1x2bnnf0nnn7319jxq7bphaxdcnb5i7qa86m337jb2wqrp";
     };
     meta.homepage = "https://github.com/tpope/vim-speeddating/";
   };
@@ -8083,24 +8588,24 @@ let
 
   vim-startify = buildVimPluginFrom2Nix {
     pname = "vim-startify";
-    version = "2021-04-23";
+    version = "2021-05-08";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-startify";
-      rev = "df0f1dbdc0689f6172bdd3b8685868aa93446c6f";
-      sha256 = "0idrzl2kgclalsxixrh21fkw6d2vd53apw47ajjlcsl94acy2139";
+      rev = "81e36c352a8deea54df5ec1e2f4348685569bed2";
+      sha256 = "1y8yi099lqg03781bnma2bj6x5lkvfq65vhdpnm65mfyak6dpzgz";
     };
     meta.homepage = "https://github.com/mhinz/vim-startify/";
   };
 
   vim-startuptime = buildVimPluginFrom2Nix {
     pname = "vim-startuptime";
-    version = "2021-03-22";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "vim-startuptime";
-      rev = "cee157ee4f73ddacfe1a70bb833b96f7a47a10c2";
-      sha256 = "1y049vbjhsg80am0hxyrcq0d0p7qfyvb1z38nc7yd7bcgwsqc5ac";
+      rev = "7a97baae32bedbf6f62d5a573777e4d1652787d1";
+      sha256 = "1sphykwbjd35kwsibm9wcxbs2iwjkzkg7madqvlxzi7sqh4vkc7y";
     };
     meta.homepage = "https://github.com/dstein64/vim-startuptime/";
   };
@@ -8191,12 +8696,12 @@ let
 
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2020-10-13";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "659ba4f39caa38e6913f88c9f4369c00e852160f";
-      sha256 = "0fqj9l7i052mvw0wlyg30bmihzi937svk3ggsp0rc9wlr30frg2p";
+      rev = "35e9fbf64c06fddc41651e65b92200f902d8ae0b";
+      sha256 = "16p68x4669y4qpg91hmi4gc3f8qc8bzbr8v6w3nc75vm48s64z6k";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -8227,12 +8732,12 @@ let
 
   vim-terraform = buildVimPluginFrom2Nix {
     pname = "vim-terraform";
-    version = "2021-03-07";
+    version = "2021-05-08";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "e62cac4d3186209a510f51becd768ee414b2be76";
-      sha256 = "1c93kvlrgzp5fw5rgv053sin0f2f2chydxbvrkprpz71qmxqmq05";
+      rev = "9166d42e5dc9bc0ef7e1b9e93d52bb4c5b923560";
+      sha256 = "1wr1sqxjy1dqyvkvii8jrxwagfph52z2ij8p1nz5b1kpyzvvpg7b";
     };
     meta.homepage = "https://github.com/hashivim/vim-terraform/";
   };
@@ -8252,12 +8757,12 @@ let
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2021-04-06";
+    version = "2021-05-24";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "206eb5492b4afa03c31cea529aa917b4a7085d10";
-      sha256 = "084yaqw0zw1bc4y4pk1vdb58vza7dn31phjr53dvwdj0kyl7j088";
+      rev = "4eb72005f87ff1bf3bc7e523b176bd6b391f6e24";
+      sha256 = "1m42skcd6mn6gp5a6wrjg9zxsbdqa1qbg4d998js5chiwv2ajq4k";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -8372,24 +8877,24 @@ let
 
   vim-tmux-focus-events = buildVimPluginFrom2Nix {
     pname = "vim-tmux-focus-events";
-    version = "2021-04-04";
+    version = "2021-04-27";
     src = fetchFromGitHub {
       owner = "tmux-plugins";
       repo = "vim-tmux-focus-events";
-      rev = "26237f9284c3853084fbf9e8303efb8fb62e0aa9";
-      sha256 = "0pmkjwpad63gdrp0qykkcsjdavb5kxwqvlcip0ykdm6ivvzi9fy5";
+      rev = "b1330e04ffb95ede8e02b2f7df1f238190c67056";
+      sha256 = "19r8gslq4m70rgi51bnlazhppggiy3crnmaqyvjc25f59f1213a7";
     };
     meta.homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events/";
   };
 
   vim-tmux-navigator = buildVimPluginFrom2Nix {
     pname = "vim-tmux-navigator";
-    version = "2020-11-12";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "christoomey";
       repo = "vim-tmux-navigator";
-      rev = "6a1e58c3ca3bc7acca36c90521b3dfae83b2a602";
-      sha256 = "17219h69vd6b994qrywg1rpx80y1rmycbfsmf9wb6c693sx721sn";
+      rev = "0cabb1ef01af0986b7bf6fb7acf631debdbbb470";
+      sha256 = "0xxc5wpyfqv7f7sfy6xncy7ipj0cvshw28s12ld3jfgyimjllr62";
     };
     meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
   };
@@ -8420,12 +8925,12 @@ let
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2021-04-19";
+    version = "2021-06-03";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "256235f8b60ccae36699e92edd61dbcf26fe0b17";
-      sha256 = "000wyqm06h0614k6qwr90xxrvmwfbii7jjif5fjavk474ijgwckp";
+      rev = "683cf4f2e16149c477a8f5c96b7429932a68d801";
+      sha256 = "0gr5k4bzzzvn00plimpkjiavya04jvcgg322k8yblzmm01r6vcr2";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -8478,6 +8983,30 @@ let
     meta.homepage = "https://github.com/sodapopcan/vim-twiggy/";
   };
 
+  vim-ultest = buildVimPluginFrom2Nix {
+    pname = "vim-ultest";
+    version = "2021-06-07";
+    src = fetchFromGitHub {
+      owner = "rcarriga";
+      repo = "vim-ultest";
+      rev = "d864a6b2b0f394b9371246cad226adac7507e13d";
+      sha256 = "0bvdhbla38mvq9x595h5mcvib13sb84mz3z9f7sqf4m3c9v9376m";
+    };
+    meta.homepage = "https://github.com/rcarriga/vim-ultest/";
+  };
+
+  vim-unicoder = buildVimPluginFrom2Nix {
+    pname = "vim-unicoder";
+    version = "2019-04-16";
+    src = fetchFromGitHub {
+      owner = "arthurxavierx";
+      repo = "vim-unicoder";
+      rev = "a71fc3670f9337c56806fa9e8e97b7ea09fd5e39";
+      sha256 = "1kcnxx909pdvrvk0kyz3h8f9szn6hmalm8qyakq3pv6dknlkwb0b";
+    };
+    meta.homepage = "https://github.com/arthurxavierx/vim-unicoder/";
+  };
+
   vim-unimpaired = buildVimPluginFrom2Nix {
     pname = "vim-unimpaired";
     version = "2020-04-26";
@@ -8528,12 +9057,12 @@ let
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2021-03-21";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "08e37d47406d7f57e5907af4dc6bd35cff2b04b3";
-      sha256 = "157gvlpb0i3jn9gjcjgz02y843jh03pqnwfkv2bf9qh7bknrnxr5";
+      rev = "2b9d104c57aeb612d7f00e1d071d712ed8671949";
+      sha256 = "17f92pka2flwnhx8yg7skbp8kyhbb6gmvm0mni2jm7w3iq68nbmw";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -8552,12 +9081,12 @@ let
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2021-04-21";
+    version = "2021-06-01";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "395d200728b467e141615f53afe564adc26985b9";
-      sha256 = "1g0fhdqr6qmqmhvm3amv22fqb1aacmvd0swmk38w25zzcbl4b4gy";
+      rev = "552403842b992efde3816a89b20055f7d66d9a0d";
+      sha256 = "1pkkysv2mnbzm2bi33l1xccdb6sh06dgyg83dg0dgd0gmp94l7ya";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
@@ -8612,28 +9141,40 @@ let
 
   vim-wayland-clipboard = buildVimPluginFrom2Nix {
     pname = "vim-wayland-clipboard";
-    version = "2021-03-15";
+    version = "2021-05-01";
     src = fetchFromGitHub {
       owner = "jasonccox";
       repo = "vim-wayland-clipboard";
-      rev = "1f7f05039c572fde082043915953a88b77c0ddb0";
-      sha256 = "0ihyfdvgiclmcric66nd54ha7ikf2c1pl1slbn4y6mkbxla02yv9";
+      rev = "722aaf34486ffee924ccbc34eb22553642c1c153";
+      sha256 = "1vg242139r1arz4kia4bbpmvzr4v5rp7gzy063f61xbvkdjwjx4q";
     };
     meta.homepage = "https://github.com/jasonccox/vim-wayland-clipboard/";
   };
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2021-04-22";
+    version = "2021-05-04";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "20163f6ffda855fa40a11cb999002211dc66288f";
-      sha256 = "1g29z5f2w1g6znljdgwn49wp8g85m1pawvg8qjrh1kxyjv9dr8x1";
+      rev = "da2934fcd36350b871ed8ccd54c8eae3a0dfc8ae";
+      sha256 = "18n5mqwgkjsf67jg2r24d4w93hadg7fnqyvmqq6dd5bsmqwp9v14";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
 
+  vim-wordmotion = buildVimPluginFrom2Nix {
+    pname = "vim-wordmotion";
+    version = "2021-06-04";
+    src = fetchFromGitHub {
+      owner = "chaoren";
+      repo = "vim-wordmotion";
+      rev = "dca1a1827513497def6362411d093ae6b3cff7f8";
+      sha256 = "1ij2j35bskk20wyiwjg1krqr9fi5fk043gfpxihhlbxd7yxlbpq1";
+    };
+    meta.homepage = "https://github.com/chaoren/vim-wordmotion/";
+  };
+
   vim-wordy = buildVimPluginFrom2Nix {
     pname = "vim-wordy";
     version = "2020-10-24";
@@ -8660,24 +9201,24 @@ let
 
   vim-xkbswitch = buildVimPluginFrom2Nix {
     pname = "vim-xkbswitch";
-    version = "2020-12-02";
+    version = "2021-05-08";
     src = fetchFromGitHub {
       owner = "lyokha";
       repo = "vim-xkbswitch";
-      rev = "f851600045c543f3646c709d7e03e231408eab81";
-      sha256 = "0pi85rzls3g7ilb18idk8xbqya8ygjab5ndk09p4xmmww9z4v711";
+      rev = "cd88d9bc34ca1df6bd06a9e427350d45a6c2931c";
+      sha256 = "0gf0xla3jm8cp4j5mldn79kfbd3zlwil3wdgdvsx8w3kybi6dap1";
     };
     meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
   };
 
   vim-xtabline = buildVimPluginFrom2Nix {
     pname = "vim-xtabline";
-    version = "2021-01-31";
+    version = "2021-06-08";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-xtabline";
-      rev = "654675222adde47c9d72caa400e35c7e680fe5a1";
-      sha256 = "1f7d4vmr7n5v7h5a1bjcvxaqygrdi33y0vdx4yjfdswi835yd45h";
+      rev = "5e67677a4815bbf474b52f8aefcfa2090fe43768";
+      sha256 = "17pb39zhzsmmibxmsbrsd3znky88sar2sl0h7b1418qqkaakx4p9";
     };
     meta.homepage = "https://github.com/mg979/vim-xtabline/";
   };
@@ -8718,6 +9259,18 @@ let
     meta.homepage = "https://github.com/dag/vim2hs/";
   };
 
+  vim_current_word = buildVimPluginFrom2Nix {
+    pname = "vim_current_word";
+    version = "2021-01-27";
+    src = fetchFromGitHub {
+      owner = "dominikduda";
+      repo = "vim_current_word";
+      rev = "84ae9300de73cf878c805a6228a58d408b6b829d";
+      sha256 = "0k0wq3aqrbwrqyfz36qdqzyq7cw16d34yvw0gvzyg7iany0z0r6r";
+    };
+    meta.homepage = "https://github.com/dominikduda/vim_current_word/";
+  };
+
   vimacs = buildVimPluginFrom2Nix {
     pname = "vimacs";
     version = "2016-03-24";
@@ -8792,12 +9345,12 @@ let
 
   vimoutliner = buildVimPluginFrom2Nix {
     pname = "vimoutliner";
-    version = "2021-04-20";
+    version = "2021-04-24";
     src = fetchFromGitHub {
       owner = "vimoutliner";
       repo = "vimoutliner";
-      rev = "054f957779dff8e5fbb859e8cfbca06f1ed9e7f0";
-      sha256 = "1bsfrma06mkigr1jhzic98z4v1gckzrjv908vx2wlbjq9cdv7d39";
+      rev = "6d849acb977fc2d008f9cd2edf4f1356537794fe";
+      sha256 = "1hy4zgxrc0zn6dnbdv7zy2cn4ny99srsvrgkyvwhg4pzd9rwcqpp";
     };
     meta.homepage = "https://github.com/vimoutliner/vimoutliner/";
   };
@@ -8828,12 +9381,12 @@ let
 
   vimsence = buildVimPluginFrom2Nix {
     pname = "vimsence";
-    version = "2021-03-17";
+    version = "2021-05-01";
     src = fetchFromGitHub {
       owner = "vimsence";
       repo = "vimsence";
-      rev = "ad036250a116472218430aed1817e5b6c204d0b8";
-      sha256 = "0yn3w193h9h1fyaniwdj4y7b744kwj11prxcq8iyg897v8jj25bk";
+      rev = "79f43e9da378f66e7c7eb1c6193de8a805d8afe3";
+      sha256 = "0ymdrv74q513ghz7cfsbs9y4qgimk5wbwizwf20dbqy2pcsq6i46";
     };
     meta.homepage = "https://github.com/vimsence/vimsence/";
   };
@@ -8852,12 +9405,12 @@ let
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2021-04-22";
+    version = "2021-06-07";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "a47d0b921c42be740e57d75a73ae15a8ee0141d4";
-      sha256 = "05nhav31i3d16d1qdcgbkr8dfgwi53123sv3xd9pr8j7j3rdd0ix";
+      rev = "1cbb400d426760a63d5383e2574e9d8905bebe51";
+      sha256 = "172kryvxphsvbh2f60ka21rjsrq4abgdh1ijyxp57p1qbbv9fhcc";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -8865,24 +9418,24 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2021-04-23";
+    version = "2021-06-06";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "91c011f6c156f405ed259c9749ea049726ef8912";
-      sha256 = "1pwq5wxyky38nhs8ckcl6x4yxkia5lk5hcd12l1d5iimddjfsx9i";
+      rev = "fef77c8edf655d947e4d9c78d7bd2740ccda70cd";
+      sha256 = "06hdz4rwwnmm1hhhjhvcd50r04qnvmksriaw4csv3gfnkfkm5v9r";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
 
   vimux = buildVimPluginFrom2Nix {
     pname = "vimux";
-    version = "2021-04-10";
+    version = "2021-05-25";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "vimux";
-      rev = "ee3075ad30560ffba20c695124c60faef97ec4a4";
-      sha256 = "19plkjvifvbfnq56vcmzl0q3hxmcbd7q5f5cxk42jp038cry26ay";
+      rev = "a1650d5f9bc2d617bb546bb8014a206e41089dc8";
+      sha256 = "0gdhhkpcq654c7jv5ycnss3fra2mysz3zl64n46cq17vmwczbcrh";
     };
     meta.homepage = "https://github.com/preservim/vimux/";
   };
@@ -8913,12 +9466,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2021-03-31";
+    version = "2021-05-28";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "a2236deb0a40d745f38fac4523ed6a0c86639863";
-      sha256 = "14gxwqykm4cql80la3x1x7sxcfmdvpm05r9brxw3xfn9bsqy3qsk";
+      rev = "19cad968d2cd759e7f9de1d662ec680bd93ebebc";
+      sha256 = "0r01b6mml6qgyybi6i59bflgqi03w0fnl0wfgwac96ixs2wdvl1l";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -8949,24 +9502,36 @@ let
 
   webapi-vim = buildVimPluginFrom2Nix {
     pname = "webapi-vim";
-    version = "2020-12-02";
+    version = "2021-06-04";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "webapi-vim";
-      rev = "6f5ffb6f547cda1b6cbc26a06f12d81e6283bd82";
-      sha256 = "1144jk4dfqb8pzblqksc1wjgbraxy6pdgr4q567wzcf93bviv81l";
+      rev = "b09cbd3a27157a5baf0468403b392f577adefe45";
+      sha256 = "17vlzg5dm5phirwyk8xkqnrkplybd8d5rj9kdx7rgla3h7rqn4wg";
     };
     meta.homepage = "https://github.com/mattn/webapi-vim/";
   };
 
+  which-key-nvim = buildVimPluginFrom2Nix {
+    pname = "which-key-nvim";
+    version = "2021-06-04";
+    src = fetchFromGitHub {
+      owner = "folke";
+      repo = "which-key.nvim";
+      rev = "9ea98e59ddeeafc9181815dd714bea513b298e33";
+      sha256 = "0zhlbbd969p4bg5vrifsi5sgqi2wbp8zxlak3l7zk67akpbb395n";
+    };
+    meta.homepage = "https://github.com/folke/which-key.nvim/";
+  };
+
   wildfire-vim = buildVimPluginFrom2Nix {
     pname = "wildfire-vim";
-    version = "2014-11-16";
+    version = "2021-05-10";
     src = fetchFromGitHub {
       owner = "gcmt";
       repo = "wildfire.vim";
-      rev = "e2baded7162260e05d2527f5bca9fca81f0bc8f2";
-      sha256 = "01i12x8brsnqicj5vclg57nv6ha7nz70gilphf6sr14xr741ra1y";
+      rev = "fa91b732fd1c5acd23b7b32d5fbbc884eedafc8d";
+      sha256 = "15gikqmpaf5c6687kgc5ib57pw7gyvxaihdv5549s7p2xkkbcl24";
     };
     meta.homepage = "https://github.com/gcmt/wildfire.vim/";
   };
@@ -9057,12 +9622,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2021-02-15";
+    version = "2021-05-29";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "11112853180a933574f431cf78cd5a462ee3f473";
-      sha256 = "0bnq02dbsqwsizhlldb2pj92gjybr5aaa7a5m786xvb7ljvd82vi";
+      rev = "7c5e526f1aac81e4913be72a5a891e8de38925bd";
+      sha256 = "1p3rgw1fx6ficzyk7ba9s22aj9xjsf50ipkx4bdmp4a2zskacqcp";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -9070,12 +9635,12 @@ let
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2021-04-20";
+    version = "2021-05-25";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "c8acf70d23337047af6548dbb8337d3e3a0c0357";
-      sha256 = "0l24b07l1bdiwffpj2ajks879w69cjkn1adx9ak6pv98jlmsdzi1";
+      rev = "4df6f35f0c9f9aec21a3f567397496b5dee6acc7";
+      sha256 = "1ywdxm9sy57k9wp9gkcahhsy8r75ahxsgb7xcdjpzacg4iranj99";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -9131,12 +9696,12 @@ let
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2021-04-07";
+    version = "2021-05-12";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "fc32adfada0fac7a2f6088672e177d410c9e3ae1";
-      sha256 = "051l2dig6861xzl6zg41d6a776jhms7v6a86cap1ipd2rxkqh5yh";
+      rev = "9ec189bc76ed2850f916394ed8d6127290f51338";
+      sha256 = "0xl2pxgmam5ls7a59bdvx3gyzcgsq3wvgby2c5667627kcq05j6s";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
@@ -9153,5 +9718,4 @@ let
     meta.homepage = "https://github.com/troydm/zoomwintab.vim/";
   };
 
-});
-in lib.fix' (lib.extends overrides packages)
+}
diff --git a/nixpkgs/pkgs/misc/vim-plugins/overrides.nix b/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
index 8b7e41ed3bd0..4e43bbe29a24 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
@@ -20,7 +20,8 @@
 , dasht
 , direnv
 , fzf
-, gnome3
+, gnome
+, himalaya
 , khard
 , languagetool
 , llvmPackages
@@ -97,7 +98,7 @@ self: super: {
     # https://gist.github.com/Mic92/135e83803ed29162817fce4098dec144
     preFixup = ''
       substituteInPlace "$out"/share/vim-plugins/clang_complete/plugin/clang_complete.vim \
-        --replace "let g:clang_library_path = '' + "''" + ''" "let g:clang_library_path='${llvmPackages.clang.cc.lib}/lib/libclang.so'"
+        --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 \
         --replace "/usr/lib/clang" "${llvmPackages.clang.cc}/lib/clang"
@@ -273,6 +274,10 @@ self: super: {
     dependencies = with self; [ plenary-nvim ];
   });
 
+  gruvbox-nvim = super.gruvbox-nvim.overrideAttrs (old: {
+    dependencies = with self; [ lush-nvim ];
+  });
+
   jedi-vim = super.jedi-vim.overrideAttrs (old: {
     # checking for python3 support in vim would be neat, too, but nobody else seems to care
     buildInputs = [ python3.pkgs.jedi ];
@@ -282,6 +287,21 @@ self: super: {
     };
   });
 
+  himalaya-vim = buildVimPluginFrom2Nix {
+    pname = "himalaya-vim";
+    inherit (himalaya) src version;
+    configurePhase = "cd vim/";
+    dependencies = with self; [ himalaya ];
+    preFixup = ''
+      substituteInPlace $out/share/vim-plugins/himalaya-vim/plugin/himalaya.vim \
+        --replace 'if !executable("himalaya")' 'if v:false'
+    '';
+    postFixup = ''
+      mkdir -p $out/bin
+      ln -s ${himalaya}/bin/himalaya $out/bin/himalaya
+    '';
+  };
+
   LanguageClient-neovim =
     let
       version = "0.1.161";
@@ -511,7 +531,7 @@ self: super: {
 
   vCoolor-vim = super.vCoolor-vim.overrideAttrs (old: {
     # on linux can use either Zenity or Yad.
-    propagatedBuildInputs = [ gnome3.zenity ];
+    propagatedBuildInputs = [ gnome.zenity ];
     meta = {
       description = "Simple color selector/picker plugin";
       license = lib.licenses.publicDomain;
@@ -601,7 +621,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "25UkYKhlGmlDg4fz1jZHjpQn5s4k5FKlFK0MU8YM5SE=";
+          cargoSha256 = "sha256-/ALOjJayCmLpMV8zC9ryEofUxYdvqj4Cn+sY1qRuqcs=";
         };
       in
       ''
@@ -611,16 +631,6 @@ self: super: {
     meta.platforms = lib.platforms.all;
   });
 
-  vim-closer = super.vim-closer.overrideAttrs (old: {
-    patches = [
-      # Fix duplicate tag in doc
-      (fetchpatch {
-        url = "https://github.com/rstacruz/vim-closer/commit/a504be8c7050e41b7dfc50c2362948e2cf7c5422.patch";
-        sha256 = "065q30d913fm3pc7r5y53wmnb7q7bhv21qxavm65bkb91242d409";
-      })
-    ];
-  });
-
   vim-codefmt = super.vim-codefmt.overrideAttrs (old: {
     dependencies = with self; [ vim-maktaba ];
   });
@@ -726,7 +736,7 @@ self: super: {
       vim-markdown-composer-bin = rustPlatform.buildRustPackage rec {
         pname = "vim-markdown-composer-bin";
         inherit (super.vim-markdown-composer) src version;
-        cargoSha256 = "iuhq2Zhdkib8hw4uvXBjwE5ZiN1kzairlzufaGuVkWc=";
+        cargoSha256 = "1cvnjsw5dd02wrm1q5xi8b033rsn44f7fkmw5j7lhskv5j286zrh";
       };
     in
     super.vim-markdown-composer.overrideAttrs (oldAttrs: rec {
diff --git a/nixpkgs/pkgs/misc/vim-plugins/update.py b/nixpkgs/pkgs/misc/vim-plugins/update.py
index 1180b4572d22..df948cc0e55d 100755
--- a/nixpkgs/pkgs/misc/vim-plugins/update.py
+++ b/nixpkgs/pkgs/misc/vim-plugins/update.py
@@ -47,9 +47,9 @@ def generate_nix(plugins: List[Tuple[str, str, pluginupdate.Plugin]], outfile: s
         f.write(HEADER)
         f.write(
             """
-{ lib, buildVimPluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
-let
-  packages = ( self:
+{ lib, buildVimPluginFrom2Nix, fetchFromGitHub }:
+
+final: prev:
 {"""
         )
         for owner, repo, plugin in sorted_plugins:
@@ -75,8 +75,7 @@ let
             )
         f.write(
             """
-});
-in lib.fix' (lib.extends overrides packages)
+}
 """
         )
     print(f"updated {outfile}")
diff --git a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names b/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
index ecaa316c465c..015504c5b45d 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
@@ -4,6 +4,7 @@ AckslD/nvim-whichkey-setup.lua@main
 ackyshake/Spacegray.vim@main
 airblade/vim-gitgutter
 airblade/vim-rooter
+ajmwagar/vim-deus
 akinsho/nvim-bufferline.lua
 akinsho/nvim-toggleterm.lua
 aklt/plantuml-syntax
@@ -12,17 +13,20 @@ alvan/vim-closetag
 alx741/vim-hindent
 alx741/vim-stylishask
 amiorin/ctrlp-z
+andersevenrud/compe-tmux@main
 andrep/vimacs
 andreshazard/vim-logreview
 AndrewRadev/sideways.vim@main
 AndrewRadev/splitjoin.vim@main
 andsild/peskcolor.vim
 andviro/flake8-vim
+andweeb/presence.nvim
 andymass/vim-matchup
 andys8/vim-elm-syntax
 antoinemadec/coc-fzf
 ap/vim-css-color
 arcticicestudio/nord-vim
+arthurxavierx/vim-unicoder
 artur-shaik/vim-javacomplete2
 autozimu/LanguageClient-neovim
 axelf4/vim-strip-trailing-whitespace
@@ -46,7 +50,7 @@ camspiers/lens.vim
 carlitux/deoplete-ternjs
 ccarpita/rtorrent-syntax-file
 cespare/vim-toml
-Chiel92/vim-autoformat
+chaoren/vim-wordmotion
 chikatoike/concealedyank.vim
 chikatoike/sourcemap.vim
 chkno/vim-haskell-module-name
@@ -94,6 +98,7 @@ digitaltoad/vim-pug
 direnv/direnv.vim
 dleonard0/pony-vim-syntax
 dmix/elvish.vim
+dominikduda/vim_current_word
 dpelle/vim-LanguageTool
 dracula/vim as dracula-vim
 drewtempelmeyer/palenight.vim
@@ -104,7 +109,11 @@ dylanaraps/wal.vim
 eagletmt/ghcmod-vim
 eagletmt/neco-ghc
 easymotion/vim-easymotion
+eddiebergman/nvim-treesitter-pyfold
+eddyekofo94/gruvbox-flat.nvim
 editorconfig/editorconfig-vim
+edluffy/hologram.nvim@main
+edluffy/specs.nvim@main
 edwinb/idris2-vim
 ehamberg/vim-cute-python
 eigenfoo/stan-vim
@@ -127,11 +136,15 @@ fatih/vim-go
 fcpg/vim-osc52
 FelikZ/ctrlp-py-matcher
 fenetikm/falcon
+fhill2/floating.nvim
 fiatjaf/neuron.vim
 fisadev/vim-isort
 flazz/vim-colorschemes
 floobits/floobits-neovim
 folke/lsp-colors.nvim@main
+folke/todo-comments.nvim@main
+folke/trouble.nvim@main
+folke/which-key.nvim@main
 freitass/todo.txt-vim
 frigoeu/psc-ide-vim
 fruit-in/brainfuck-vim
@@ -146,6 +159,7 @@ GEverding/vim-hocon
 gfanto/fzf-lsp.nvim@main
 gibiansky/vim-textobj-haskell
 gioele/vim-autoswap
+gleam-lang/gleam.vim
 glepnir/dashboard-nvim
 glepnir/galaxyline.nvim@main
 glepnir/lspsaga.nvim@main
@@ -154,6 +168,7 @@ glepnir/zephyr-nvim@main
 glts/vim-textobj-comment
 godlygeek/csapprox
 godlygeek/tabular
+GoldsteinE/compe-latex-symbols
 google/vim-codefmt
 google/vim-jsonnet
 google/vim-maktaba
@@ -169,6 +184,7 @@ guns/xterm-color-table.vim
 hashivim/vim-packer
 hashivim/vim-terraform
 hashivim/vim-vagrant
+hauleth/sad.vim
 haya14busa/incsearch-easymotion.vim
 haya14busa/incsearch.vim
 haya14busa/is.vim
@@ -187,6 +203,7 @@ hrsh7th/vim-vsnip-integ
 hsanson/vim-android
 hsitz/VimOrganizer
 iamcco/coc-spell-checker
+iamcco/markdown-preview.nvim
 ianks/vim-tsx
 idanarye/vim-merginal
 idris-hackers/idris-vim
@@ -200,6 +217,7 @@ itchyny/thumbnail.vim
 itchyny/vim-cursorword
 itchyny/vim-gitbranch
 itspriddle/vim-shellcheck
+ivalkeen/vim-simpledb
 ivanov/vim-ipython
 jackguo380/vim-lsp-cxx-highlight
 jacoborus/tender.vim
@@ -276,7 +294,7 @@ keith/rspec.vim
 keith/swift.vim
 kevinhwang91/nvim-bqf@main
 kevinhwang91/nvim-hlslens@main
-kevinhwang91/rnvimr
+kevinhwang91/rnvimr@main
 kien/rainbow_parentheses.vim
 knubie/vim-kitty-navigator
 konfekt/fastfold
@@ -286,6 +304,7 @@ kristijanhusak/defx-git
 kristijanhusak/defx-icons
 kristijanhusak/deoplete-phpactor
 kristijanhusak/vim-carbon-now-sh
+kristijanhusak/vim-dadbod-completion
 kristijanhusak/vim-dirvish-git
 kristijanhusak/vim-hybrid-material
 kshenoy/vim-signature
@@ -320,6 +339,7 @@ LucHermitte/lh-vim-lib
 ludovicchabant/vim-gutentags
 ludovicchabant/vim-lawrencium
 lukas-reineke/indent-blankline.nvim
+lukas-reineke/indent-blankline.nvim@lua as indent-blankline-nvim-lua
 lukaszkorecki/workflowish
 lumiliet/vim-twig
 luochen1990/rainbow
@@ -390,6 +410,7 @@ mpickering/hlint-refactor-vim
 ms-jpq/chadtree@chad
 mtikekar/vim-bsv
 mzlogin/vim-markdown-toc
+mzlogin/vim-smali
 nanotech/jellybeans.vim
 natebosch/vim-lsc
 nathanaelkane/vim-indent-guides
@@ -436,6 +457,7 @@ norcalli/nvim-colorizer.lua
 norcalli/nvim-terminal.lua
 norcalli/snippets.nvim
 npxbr/glow.nvim@main
+npxbr/gruvbox.nvim@main
 ntpeters/vim-better-whitespace
 numirias/semshi
 nvie/vim-flake8
@@ -445,6 +467,7 @@ nvim-lua/lsp-status.nvim
 nvim-lua/lsp_extensions.nvim
 nvim-lua/plenary.nvim
 nvim-lua/popup.nvim
+nvim-telescope/telescope-dap.nvim
 nvim-telescope/telescope-frecency.nvim
 nvim-telescope/telescope-fzf-writer.nvim
 nvim-telescope/telescope-fzy-native.nvim
@@ -504,15 +527,21 @@ qpkorr/vim-bufkill
 Quramy/tsuquyomi
 racer-rust/vim-racer
 radenling/vim-dispatch-neovim
+rafamadriz/friendly-snippets@main
 rafaqz/ranger.vim
 rafi/awesome-vim-colorschemes
 raghur/fruzzy
 raghur/vim-ghost
 Raimondi/delimitMate
 rakr/vim-one
+ray-x/aurora
+ray-x/lsp_signature.nvim
 rbgrouleff/bclose.vim
 rbong/vim-flog
+rcarriga/nvim-dap-ui
+rcarriga/vim-ultest
 rhysd/committia.vim
+rhysd/conflict-marker.vim
 rhysd/devdocs.vim
 rhysd/git-messenger.vim
 rhysd/vim-clang-format
@@ -520,6 +549,7 @@ rhysd/vim-grammarous
 rhysd/vim-operator-surround
 RishabhRD/nvim-lsputils
 RishabhRD/popfix
+rktjmp/fwatch.nvim@main
 rktjmp/lush.nvim@main
 rmagatti/auto-session@main
 rodjek/vim-puppet
@@ -540,6 +570,7 @@ rstacruz/vim-closer
 rust-lang/rust.vim
 ryanoasis/vim-devicons
 ryvnf/readline.vim
+sainnhe/edge
 sainnhe/sonokai
 sakhnik/nvim-gdb
 saltstack/salt-vim
@@ -547,7 +578,10 @@ samoshkin/vim-mergetool
 sbdchd/neoformat
 sebastianmarkow/deoplete-rust
 SevereOverfl0w/deoplete-github
+shaunsingh/moonlight.nvim@pure-lua
+shaunsingh/nord.nvim
 sheerun/vim-polyglot
+shinchu/lightline-gruvbox.vim
 Shougo/context_filetype.vim
 Shougo/defx.nvim
 Shougo/denite.nvim
@@ -572,6 +606,7 @@ sickill/vim-pasta
 SidOfc/mkdx
 simnalamburt/vim-mundo
 simrat39/rust-tools.nvim
+sindrets/diffview.nvim@main
 SirVer/ultisnips
 sjl/gundo.vim
 sjl/splice.vim
@@ -582,17 +617,21 @@ solarnz/arcanist.vim
 sonph/onehalf
 srcery-colors/srcery-vim
 steelsojka/completion-buffers
+steelsojka/pears.nvim
 stefandtw/quickfix-reflector.vim
 stephpy/vim-yaml
 sunaku/vim-dasht
+sunjon/Shade.nvim
 svermeulen/vim-subversive
 t9md/vim-choosewin
 t9md/vim-smalls
 TaDaa/vimade
 takac/vim-hardtime
+tamago324/compe-zsh
 tami5/compe-conjure
 tami5/lispdocs.nvim
 tami5/sql.nvim
+tbastos/vim-lua
 tbodt/deoplete-tabnine
 ternjs/tern_for_vim
 terryma/vim-expand-region
@@ -613,12 +652,14 @@ thosakwe/vim-flutter
 tiagofumo/vim-nerdtree-syntax-highlight
 tikhomirov/vim-glsl
 TimUntersberger/neogit
+tjdevries/colorbuddy.nvim
 tjdevries/nlua.nvim
 tjdevries/train.nvim
 tmhedberg/SimpylFold
 tmsvg/pear-tree
 tmux-plugins/vim-tmux
 tmux-plugins/vim-tmux-focus-events
+tomasiser/vim-code-dark
 tomasr/molokai
 tomlion/vim-solidity
 tommcdo/vim-exchange
@@ -662,6 +703,7 @@ travitch/hasksyn
 tremor-rs/tremor-vim@main
 triglav/vim-visual-increment
 troydm/zoomwintab.vim
+turbio/bracey.vim
 tversteeg/registers.nvim@main
 tweekmonster/wstrip.vim
 twerth/ir_black
@@ -682,6 +724,7 @@ vhda/verilog_systemverilog.vim
 vigoux/LanguageTool.nvim
 vim-airline/vim-airline
 vim-airline/vim-airline-themes
+vim-autoformat/vim-autoformat
 vim-erlang/vim-erlang-compiler
 vim-erlang/vim-erlang-omnicomplete
 vim-erlang/vim-erlang-runtime
@@ -750,12 +793,16 @@ xolox/vim-easytags
 xolox/vim-misc
 xuhdev/vim-latex-live-preview
 Xuyuanp/nerdtree-git-plugin
+Xuyuanp/scrollbar.nvim
 yamatsum/nvim-nonicons@main
 ycm-core/YouCompleteMe
+Yggdroot/hiPairs
 Yggdroot/indentLine
 Yggdroot/LeaderF
 Yilin-Yang/vim-markbar
+yssl/QFEnter
 yuki-yano/ncm2-dictionary
 yunlingz/ci_dark
 zah/nim.vim
+zhou13/vim-easyescape
 ziglang/zig.vim
diff --git a/nixpkgs/pkgs/misc/vim-plugins/vim-utils.nix b/nixpkgs/pkgs/misc/vim-plugins/vim-utils.nix
index c55e8aa0a011..5ca3aef23588 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/vim-utils.nix
@@ -184,7 +184,7 @@ let
 
   rtpPath = "share/vim-plugins";
 
-  nativeImpl = packages: lib.optionalString (packages != null)
+  nativeImpl = packages:
   (let
     link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}");
     packageLinks = (packageName: {start ? [], opt ? []}:
@@ -232,8 +232,7 @@ let
     let
       /* pathogen mostly can set &rtp at startup time. Its used very commonly.
       */
-      pathogenImpl = lib.optionalString (pathogen != null)
-      (let
+      pathogenImpl = let
         knownPlugins = pathogen.knownPlugins or vimPlugins;
 
         plugins = findDependenciesRecursively (map (pluginToDrv knownPlugins) pathogen.pluginNames);
@@ -244,15 +243,15 @@ let
         };
       in
       ''
-        let &rtp.=(empty(&rtp)?"":',')."${vimPlugins.pathogen.rtp}"
+        let &rtp.=(empty(&rtp)?"":',')."${vimPlugins.vim-pathogen.rtp}"
         execute pathogen#infect('${pluginsEnv}/{}')
 
         filetype indent plugin on | syn on
-      '');
+      '';
 
       /* vim-plug is an extremely popular vim plugin manager.
       */
-      plugImpl = lib.optionalString (plug != null)
+      plugImpl =
       (''
         source ${vimPlugins.vim-plug.rtp}/plug.vim
         call plug#begin('/dev/null')
@@ -340,10 +339,12 @@ let
 
       entries = [
         beforePlugins
-        vamImpl pathogenImpl plugImpl
-        (nativeImpl packages)
-        customRC
-      ];
+        vamImpl
+      ]
+      ++ lib.optional (packages != null && packages != []) (nativeImpl packages)
+      ++ lib.optional (pathogen != null) pathogenImpl
+      ++ lib.optional (plug != null) plugImpl
+      ++ [ customRC ];
 
     in
       lib.concatStringsSep "\n" (lib.filter (x: x != null && x != "") entries);
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/default.nix
index 72581f340a3b..7951636c60c6 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/default.nix
@@ -1,4 +1,4 @@
-{ config, lib, callPackage, vscode-utils, nodePackages, jdk, llvmPackages_8 }:
+{ config, lib, buildEnv, callPackage, vscode-utils, nodePackages, jdk, llvmPackages_8, nixpkgs-fmt, jq }:
 
 let
   inherit (vscode-utils) buildVscodeMarketplaceExtension;
@@ -12,6 +12,19 @@ let
   #
   baseExtensions = self: lib.mapAttrs (_n: lib.recurseIntoAttrs)
     {
+      _4ops.terraform = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "4ops";
+          name = "terraform";
+          version = "0.2.1";
+          sha256 = "196026a89pizj8p0hqdgkyllj2spx2qwpynsaqjq17s8v15vk5dg";
+        };
+        meta = {
+          license = lib.licenses.mit;
+          maintainers = with lib.maintainers; [ kamadorueda ];
+        };
+      };
+
       a5huynh.vscode-ron = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-ron";
@@ -36,6 +49,18 @@ let
         };
       };
 
+      alefragnani.project-manager = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "project-manager";
+          publisher = "alefragnani";
+          version = "12.1.0";
+          sha256 = "sha256-fYBKmWn9pJh2V0fGdqVrXj9zIl8oTrZcBycDaMOXL/8=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       alexdima.copy-relative-path = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "copy-relative-path";
@@ -87,6 +112,26 @@ let
         };
       };
 
+      b4dm4n.vscode-nixpkgs-fmt = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "nixpkgs-fmt";
+          publisher = "B4dM4n";
+          version = "0.0.1";
+          sha256 = "sha256-vz2kU36B1xkLci2QwLpl/SBEhfSWltIDJ1r7SorHcr8=";
+        };
+        nativeBuildInputs = [ jq ];
+        buildInputs = [ nixpkgs-fmt ];
+        postInstall = ''
+          cd "$out/$installPrefix"
+          tmp_package_json=$(mktemp)
+          jq '.contributes.configuration.properties."nixpkgs-fmt.path".default = "${nixpkgs-fmt}/bin/nixpkgs-fmt"' package.json > "$tmp_package_json"
+          mv "$tmp_package_json" package.json
+        '';
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       baccata.scaladex-search = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "scaladex-search";
@@ -111,6 +156,30 @@ let
         };
       };
 
+      bodil.file-browser = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "file-browser";
+          publisher = "bodil";
+          version = "0.2.10";
+          sha256 = "sha256-RW4vm0Hum9AeN4Rq7MSJOIHnALU0L1tBLKjaRLA2hL8=";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
+      bradlc.vscode-tailwindcss = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-tailwindcss";
+          publisher = "bradlc";
+          version = "0.6.6";
+          sha256 = "sha256-CRd+caKHFOXBnePr/LqNkzw0kRGYvNSkf4ecNgedpdA=";
+        };
+        meta = with lib; {
+          license = licenses.mpl20;
+        };
+      };
+
       brettm12345.nixfmt-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "nixfmt-vscode";
@@ -439,13 +508,26 @@ let
         };
       };
 
+      jkillian.custom-local-formatters = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "jkillian";
+          name = "custom-local-formatters";
+          version = "0.0.4";
+          sha256 = "1pmqnc759fq86g2z3scx5xqpni9khcqi5z2kpl1kb7yygsv314gm";
+        };
+        meta = {
+          license = lib.licenses.mit;
+          maintainers = with lib.maintainers; [ kamadorueda ];
+        };
+      };
+
       github = {
         github-vscode-theme = buildVscodeMarketplaceExtension {
           mktplcRef = {
             name = "github-vscode-theme";
             publisher = "github";
-            version = "4.0.2";
-            sha256 = "06mysdwjh7km874rrk0xc0xxaqx15b4a7x1i8dly440h8w3ng5bs";
+            version = "4.1.1";
+            sha256 = "14wz2b0bn1rnmpj28c0mivz2gacla2dgg8ncv7qfx9bsxhf95g68";
           };
           meta = with lib; {
             description = "GitHub theme for VS Code";
@@ -496,8 +578,8 @@ let
         mktplcRef = {
           name = "todo-tree";
           publisher = "Gruntfuggly";
-          version = "0.0.211";
-          sha256 = "1di2v1bhlhl1yi9rrmbq0r9gypiydl8xvj24yw64vsnkqs9yxbp3";
+          version = "0.0.213";
+          sha256 = "0fj7vvaqdldhbzm9dqh2plqlhg34jv5khd690xd87h418sv8rk95";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -516,7 +598,7 @@ let
         };
       };
 
-      hashicorp.terraform = callPackage ./terraform {};
+      hashicorp.terraform = callPackage ./terraform { };
 
       hookyqr.beautify = buildVscodeMarketplaceExtension {
         mktplcRef = {
@@ -559,6 +641,18 @@ let
         };
       };
 
+      jakebecker.elixir-ls = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "elixir-ls";
+          publisher = "JakeBecker";
+          version = "0.7.0";
+          sha256 = "sha256-kFrkElD7qC1SpOx1rpcHW1D2hybHCf7cqvIO7JfPuMc=";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       james-yu.latex-workshop = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "latex-workshop";
@@ -600,6 +694,18 @@ let
         };
       };
 
+      johnpapa.vscode-peacock = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-peacock";
+          publisher = "johnpapa";
+          version = "3.9.1";
+          sha256 = "1g7apzzgfm8s9sjavhwr8jpf9slhq8b9jfkww3q5n41mzzx8m94p";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       jpoissonnier.vscode-styled-components = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-styled-components";
@@ -624,6 +730,31 @@ let
         };
       };
 
+      kahole.magit = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "magit";
+          publisher = "kahole";
+          version = "0.6.15";
+          sha256 = "sha256-fRXm70FXnHduoywI4YC9ya6/J7wyd6EBzbnrcijBIbA=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      mads-hartmann.bash-ide-vscode = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "mads-hartmann";
+          name = "bash-ide-vscode";
+          version = "1.11.0";
+          sha256 = "1hq41fy2v1grjrw77mbs9k6ps6gncwlydm03ipawjnsinxc9rdkp";
+        };
+        meta = {
+          license = lib.licenses.mit;
+          maintainers = with lib.maintainers; [ kamadorueda ];
+        };
+      };
+
       mikestead.dotenv = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "dotenv";
@@ -698,13 +829,20 @@ let
         };
       };
 
-      ms-vscode.cpptools = callPackage ./cpptools {};
+      ms-vscode.cpptools = callPackage ./cpptools { };
 
-      ms-vscode-remote.remote-ssh = callPackage ./remote-ssh {};
+      ms-vscode-remote.remote-ssh = callPackage ./remote-ssh { };
 
-      ms-python.python = callPackage ./python {
-        extractNuGet = callPackage ./python/extract-nuget.nix { };
-      };
+      ms-python.python =
+        let
+          raw-package = callPackage ./python {
+            extractNuGet = callPackage ./python/extract-nuget.nix { };
+          };
+        in
+        buildEnv {
+          name = "vscode-extension-ms-python-python-full";
+          paths = [ raw-package self.ms-toolsai.jupyter ];
+        };
 
       msjsdiag.debugger-for-chrome = buildVscodeMarketplaceExtension {
         mktplcRef = {
@@ -718,6 +856,18 @@ let
         };
       };
 
+      ms-toolsai.jupyter = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "jupyter";
+          publisher = "ms-toolsai";
+          version = "2021.5.745244803";
+          sha256 = "0gjpsp61l8daqa87mpmxcrvsvb0pc2vwg7xbkvwn0f13c1739w9p";
+        };
+        meta = {
+          license = lib.licenses.unfree;
+        };
+      };
+
       naumovs.color-highlight = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "color-highlight";
@@ -730,6 +880,18 @@ let
         };
       };
 
+      octref.vetur = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vetur";
+          publisher = "octref";
+          version = "0.34.1";
+          sha256 = "09w3bik1mxs7qac67wgrc58vl98ham3syrn2anycpwd7135wlpby";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       redhat.java = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "java";
@@ -768,7 +930,7 @@ let
         };
       };
 
-      matklad.rust-analyzer = callPackage ./rust-analyzer {};
+      matklad.rust-analyzer = callPackage ./rust-analyzer { };
 
       ocamllabs.ocaml-platform = buildVscodeMarketplaceExtension {
         meta = with lib; {
@@ -839,8 +1001,8 @@ let
         mktplcRef = {
           name = "metals";
           publisher = "scalameta";
-          version = "1.10.3";
-          sha256 = "0m4qm1z1j6gfqjjnxl8v48ga7zkaspjy3gcnkrch3aj4fyafjl09";
+          version = "1.10.4";
+          sha256 = "0q6zjpdi98png4vpzz39q85nxmsh3h1nnan58saz5rr83d6jgj89";
         };
         meta = {
           license = lib.licenses.asl20;
@@ -859,6 +1021,18 @@ let
         };
       };
 
+      shardulm94.trailing-spaces = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "shardulm94";
+          name = "trailing-spaces";
+          version = "0.3.1";
+          sha256 = "0h30zmg5rq7cv7kjdr5yzqkkc1bs20d72yz9rjqag32gwf46s8b8";
+        };
+        meta = {
+          license = lib.licenses.mit;
+          maintainers = with lib.maintainers; [ kamadorueda ];
+        };
+      };
 
       shyykoserhiy.vscode-spotify = buildVscodeMarketplaceExtension {
         mktplcRef = {
@@ -908,6 +1082,23 @@ let
         };
       };
 
+      stephlin.vscode-tmux-keybinding = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-tmux-keybinding";
+          publisher = "stephlin";
+          version = "0.0.6";
+          sha256 = "0mph2nval1ddmv9hpl51fdvmagzkqsn8ljwqsfha2130bb7la0d9";
+        };
+        meta = with lib; {
+          changelog = "https://marketplace.visualstudio.com/items/stephlin.vscode-tmux-keybinding/changelog";
+          description = "A simple extension for tmux behavior in vscode terminal.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=stephlin.vscode-tmux-keybinding";
+          homepage = "https://github.com/StephLin/vscode-tmux-keybinding";
+          license = licenses.mit;
+          maintainers = with maintainers; [ dbirks ];
+        };
+      };
+
       streetsidesoftware.code-spell-checker = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "code-spell-checker";
@@ -920,6 +1111,18 @@ let
         };
       };
 
+      svelte.svelte-vscode = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "svelte-vscode";
+          publisher = "svelte";
+          version = "105.0.0";
+          sha256 = "sha256-my3RzwUW5MnajAbEnqxtrIR701XH+AKYLbnKD7ivASE=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       tamasfe.even-better-toml = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "even-better-toml";
@@ -932,6 +1135,19 @@ let
         };
       };
 
+      tiehuis.zig = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "zig";
+          publisher = "tiehuis";
+          version = "0.2.5";
+          sha256 = "sha256-P8Sep0OtdchTfnudxFNvIK+SW++TyibGVI9zd+B5tu4=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+
       timonwong.shellcheck = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "shellcheck";
@@ -994,7 +1210,7 @@ let
         };
       };
 
-      ms-vsliveshare.vsliveshare = callPackage ./ms-vsliveshare-vsliveshare {};
+      ms-vsliveshare.vsliveshare = callPackage ./ms-vsliveshare-vsliveshare { };
 
       vscodevim.vim = buildVscodeMarketplaceExtension {
         mktplcRef = {
@@ -1008,6 +1224,42 @@ let
         };
       };
 
+      vspacecode.vspacecode = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vspacecode";
+          publisher = "VSpaceCode";
+          version = "0.9.1";
+          sha256 = "sha256-/qJKYXR0DznqwF7XuJsz+OghIBzdWjm6dAlaRX4wdRU=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      vspacecode.whichkey = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "whichkey";
+          publisher = "VSpaceCode";
+          version = "0.8.5";
+          sha256 = "sha256-p5fukIfk/tZFQrkf6VuT4fjmeGtKAqHDh6r6ky847ks=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
+      wix.vscode-import-cost = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-import-cost";
+          publisher = "wix";
+          version = "2.15.0";
+          sha256 = "0d3b6654cdck1syn74vmmd1jmgkrw5v4c4cyrhdxbhggkip732bc";
+        };
+        meta = with lib; {
+          license = licenses.mit;
+        };
+      };
+
       xaver.clang-format = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "clang-format";
@@ -1059,7 +1311,7 @@ let
 
       llvm-org.lldb-vscode = llvmPackages_8.lldb;
 
-      WakaTime.vscode-wakatime = callPackage ./wakatime {};
+      WakaTime.vscode-wakatime = callPackage ./wakatime { };
 
       wholroyd.jinja = buildVscodeMarketplaceExtension {
         mktplcRef = {
@@ -1074,17 +1326,17 @@ let
       };
     };
 
-    aliases = self: super: {
-      # aliases
-      ms-vscode = lib.recursiveUpdate super.ms-vscode { inherit (super.golang) Go; };
-    };
+  aliases = self: super: {
+    # aliases
+    ms-vscode = lib.recursiveUpdate super.ms-vscode { inherit (super.golang) Go; };
+  };
 
-    # TODO: add overrides overlay, so that we can have a generated.nix
-    # then apply extension specific modifcations to packages.
+  # TODO: add overrides overlay, so that we can have a generated.nix
+  # then apply extension specific modifcations to packages.
 
-    # overlays will be applied left to right, overrides should come after aliases.
-    overlays = lib.optionals (config.allowAliases or true) [ aliases ];
+  # overlays will be applied left to right, overrides should come after aliases.
+  overlays = lib.optionals (config.allowAliases or true) [ aliases ];
 
-    toFix = lib.foldl' (lib.flip lib.extends) baseExtensions overlays;
+  toFix = lib.foldl' (lib.flip lib.extends) baseExtensions overlays;
 in
-  lib.fix toFix
+lib.fix toFix
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
index a7b0e17ecbfb..6f4bbfb7e92e 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/ms-dotnettools-csharp/default.nix
@@ -7,14 +7,12 @@
 , icu
 , stdenv
 , openssl
-, mono6
+, mono
 }:
 
 let
   # Get as close as possible as the `package.json` required version.
   # This is what drives omnisharp.
-  mono = mono6;
-
   rtDepsSrcsFromJson = builtins.fromJSON (builtins.readFile ./rt-deps-bin-srcs.json);
 
   rtDepsBinSrcs = builtins.mapAttrs (k: v:
@@ -114,7 +112,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
     declare omnisharp_dir="$PWD/${omnisharp.installPath}"
     unzip_to "${omnisharp.bin-src}" "$omnisharp_dir"
     rm "$omnisharp_dir/bin/mono"
-    ln -s -T "${mono6}/bin/mono" "$omnisharp_dir/bin/mono"
+    ln -s -T "${mono}/bin/mono" "$omnisharp_dir/bin/mono"
     chmod a+x "$omnisharp_dir/run"
     touch "$omnisharp_dir/install.Lock"
 
@@ -136,6 +134,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
 
   meta = with lib; {
     description = "C# for Visual Studio Code (powered by OmniSharp)";
+    homepage = "https://github.com/OmniSharp/omnisharp-vscode";
     license = licenses.mit;
     maintainers = [ maintainers.jraygauthier ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
index fb58c94cde9a..eb215d0fd228 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
@@ -38,8 +38,8 @@ in ((vscode-utils.override { stdenv = gccStdenv; }).buildVscodeMarketplaceExtens
   mktplcRef = {
     name = "vsliveshare";
     publisher = "ms-vsliveshare";
-    version = "1.0.4131";
-    sha256 = "167fwb1nri9xs5bx14zdg2q3fsmlbihcvnk90fv9av8zirpwa3vs";
+    version = "1.0.4272";
+    sha256 = "kH8ZiNzpAfR1BnKjYc+hcNMEmhBNyHlnOlj8fCdNGjY=";
   };
 }).overrideAttrs({ nativeBuildInputs ? [], buildInputs ? [], ... }: {
   nativeBuildInputs = nativeBuildInputs ++ [
@@ -128,7 +128,7 @@ in ((vscode-utils.override { stdenv = gccStdenv; }).buildVscodeMarketplaceExtens
     description = "Live Share lets you achieve greater confidence at speed by streamlining collaborative editing, debugging, and more in real-time during development";
     homepage = "https://aka.ms/vsls-docs";
     license = licenses.unfree;
-    maintainers = with maintainers; [ jraygauthier ];
+    maintainers = with maintainers; [ jraygauthier V ];
     platforms = [ "x86_64-linux" ];
   };
 })
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
index 1d86f82d278f..89950a51598c 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
@@ -41,13 +41,13 @@ in vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "python";
     publisher = "ms-python";
-    version = "2020.9.114305";
+    version = "2021.5.829140558";
   };
 
   vsix = fetchurl {
     name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
     url = "https://github.com/microsoft/vscode-python/releases/download/${mktplcRef.version}/ms-python-release.vsix";
-    sha256 = "1vh0wvfvzszc58lw7dbl60knpm5l6rrsghfchhn5dvwyadx4a33h";
+    sha256 = "0y2HN4WGYUUXBfqp8Xb4oaA0hbLZmE3kDUXMBAOjvPQ=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/remote-ssh/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/remote-ssh/default.nix
index 746bb4608ab8..29ca973a0aae 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/remote-ssh/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/remote-ssh/default.nix
@@ -2,7 +2,7 @@
 , vscode-utils
 , useLocalExtensions ? false}:
 # Note that useLocalExtensions requires that vscode-server is not running
-# on host. If it is, you'll need to remove ~/.vscode-server,
+# on host. If it is, you'll need to remove $HOME/.vscode-server,
 # and redo the install by running "Connect to host" on client
 
 let
@@ -11,7 +11,7 @@ let
   # patch runs on remote machine hence use of which
   # links to local node if version is 12
   patch = ''
-    f="/home/''$USER/.vscode-server/bin/''$COMMIT_ID/node"
+    f="$HOME/.vscode-server/bin/$COMMIT_ID/node"
     localNodePath=''$(which node)
     if [ -x "''$localNodePath" ]; then
       localNodeVersion=''$(node -v)
@@ -23,10 +23,10 @@ let
     fi
     ${lib.optionalString useLocalExtensions ''
       # Use local extensions
-      if [ -d ~/.vscode/extensions ]; then
-        if ! test -L "~/.vscode-server/extensions"; then
-          mkdir -p ~/.vscode-server
-          ln -s ~/.vscode/extensions ~/.vscode-server/
+      if [ -d $HOME/.vscode/extensions ]; then
+        if ! test -L "$HOME/.vscode-server/extensions"; then
+          mkdir -p $HOME/.vscode-server
+          ln -s $HOME/.vscode/extensions $HOME/.vscode-server/
         fi
       fi
     ''}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix
index 592994c33147..90ea121850d2 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/terraform/default.nix
@@ -3,13 +3,13 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "terraform";
     publisher = "hashicorp";
-    version = "2.10.0";
+    version = "2.12.0";
   };
 
   vsix = fetchurl {
     name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
     url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/${mktplcRef.name}-${mktplcRef.version}.vsix";
-    sha256 = "1xhypy4vvrzxj3qwkzpfx8b48hddf72mxmh0hgz7iry6bch6sh5f";
+    sha256 = "1r12yxpf0wlh7vdxpj04356zlgxmlwz9apdlxnv5ay056a2a8k3a";
   };
 
   patches = [ ./fix-terraform-ls.patch ];
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch b/nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
index d91ffcc17ab4..95e8d92da332 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
+++ b/nixpkgs/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
@@ -1,11 +1,11 @@
 diff --git a/out/extension.js b/out/extension.js
-index e44cef2..fba0899 100644
+index e932d27..099126b 100644
 --- a/out/extension.js
 +++ b/out/extension.js
-@@ -141,24 +141,6 @@ function updateLanguageServer() {
+@@ -143,25 +143,6 @@ function updateLanguageServer() {
      return __awaiter(this, void 0, void 0, function* () {
-         const delay = 1000 * 60 * 24;
-         setTimeout(updateLanguageServer, delay); // check for new updates every 24hrs
+         const delay = 1000 * 60 * 60 * 24;
+         languageServerUpdater.timeout(updateLanguageServer, delay); // check for new updates every 24hrs
 -        // skip install if a language server binary path is set
 -        if (!vscodeUtils_1.config('terraform').get('languageServer.pathToBinary')) {
 -            const installer = new languageServerInstaller_1.LanguageServerInstaller(installPath, reporter);
@@ -16,6 +16,7 @@ index e44cef2..fba0899 100644
 -                    yield installer.install();
 -                }
 -                catch (err) {
+-                    console.log(err); // for test failure reporting
 -                    reporter.sendTelemetryException(err);
 -                    throw err;
 -                }
@@ -27,7 +28,7 @@ index e44cef2..fba0899 100644
          return startClients(); // on repeat runs with no install, this will be a no-op
      });
  }
-@@ -256,7 +238,7 @@ function pathToBinary() {
+@@ -259,7 +240,7 @@ function pathToBinary() {
                  reporter.sendTelemetryEvent('usePathToBinary');
              }
              else {
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix
index c4d228281038..3ebb30fac650 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix
@@ -24,7 +24,7 @@ let
     # It will pollute the build environment of `buildRustPackage`.
     cargoPatches = [ ./reset-cargo-config.patch ];
 
-    cargoSha256 = "sha256-HPVbqYsst/iFrHn5wvmWtqeVHOHR7JT8lu+/xZq1lK0=";
+    cargoSha256 = "sha256-vcL/nSGhyE0INQVWxEIpYwXmnOl1soBn+mymZr1FaSM=";
 
     nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/wakatime/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/wakatime/default.nix
index 86453b960cba..7290c04342ea 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/wakatime/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/wakatime/default.nix
@@ -13,8 +13,8 @@ in
     };
 
     postPatch = ''
-      mkdir -p wakatime-master
-      cp -rt wakatime-master --no-preserve=all ${wakatime}/lib/python*/site-packages/wakatime
+      mkdir wakatime-cli
+      ln -s ${wakatime}/bin/wakatime ./wakatime-cli/wakatime-cli
     '';
 
     meta = with lib; {
diff --git a/nixpkgs/pkgs/os-specific/bsd/default.nix b/nixpkgs/pkgs/os-specific/bsd/default.nix
deleted file mode 100644
index ee7158e2a8c5..000000000000
--- a/nixpkgs/pkgs/os-specific/bsd/default.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ callPackages, recurseIntoAttrs }:
-
-{
-  netbsd = recurseIntoAttrs (callPackages ./netbsd {});
-}
diff --git a/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix b/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix
index 6d01bff3b3e3..479ab92c7973 100644
--- a/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/nixpkgs/pkgs/os-specific/bsd/netbsd/default.nix
@@ -1,5 +1,10 @@
-{ stdenv, stdenvNoCC, fetchcvs, lib, groff, mandoc, zlib, bison, flex
-, writeText, buildPackages, splicePackages, symlinkJoin }:
+{ stdenv, lib, stdenvNoCC
+, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, pkgsHostHost, pkgsTargetTarget
+, buildPackages, splicePackages, newScope
+, bsdSetupHook, makeSetupHook, fetchcvs, groff, mandoc, byacc, flex
+, zlib
+, writeText, symlinkJoin
+}:
 
 let
   fetchNetBSD = path: version: sha256: fetchcvs {
@@ -9,35 +14,61 @@ let
     tag = "netbsd-${lib.replaceStrings ["."] ["-"] version}-RELEASE";
   };
 
-  # Splice packages so we get the correct package when using
-  # nativeBuildInputs...
-  nbSplicedPackages = splicePackages {
-    pkgsBuildBuild = buildPackages.buildPackages.netbsd;
-    pkgsBuildHost = buildPackages.netbsd;
-    pkgsBuildTarget = {};
-    pkgsHostHost = {};
-    pkgsHostTarget = netbsd;
-    pkgsTargetTarget = {};
+  otherSplices = {
+    selfBuildBuild = pkgsBuildBuild.netbsd;
+    selfBuildHost = pkgsBuildHost.netbsd;
+    selfBuildTarget = pkgsBuildTarget.netbsd;
+    selfHostHost = pkgsHostHost.netbsd;
+    selfTargetTarget = pkgsTargetTarget.netbsd or {}; # might be missing
   };
 
-  netbsd = with nbSplicedPackages; {
+in lib.makeScopeWithSplicing
+  splicePackages
+  newScope
+  otherSplices
+  (_: {})
+  (_: {})
+  (self: let
+    inherit (self) mkDerivation;
+  in {
+
+  # Why do we have splicing and yet do `nativeBuildInputs = with self; ...`?
+  #
+  # We use `lib.makeScopeWithSplicing` because this should be used for all
+  # nested package sets which support cross, so the inner `callPackage` works
+  # correctly. But for the inline packages we don't bother to use
+  # `callPackage`.
+  #
+  # We still could have tried to `with` a big spliced packages set, but
+  # splicing is jank and causes a number of bootstrapping infinite recursions
+  # if one is not careful. Pulling deps out of the right package set directly
+  # side-steps splicing entirely and avoids those footguns.
+  #
+  # For non-bootstrap-critical packages, we might as well use `callPackage` for
+  # consistency with everything else, and maybe put in separate files too.
+
+  compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isNetBSD) self.compat;
 
   mkDerivation = lib.makeOverridable (attrs: let
     stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
   in stdenv'.mkDerivation ({
     name = "${attrs.pname or (baseNameOf attrs.path)}-netbsd-${attrs.version}";
-    src = attrs.src or fetchNetBSD attrs.path attrs.version attrs.sha256;
+    src = fetchNetBSD attrs.path attrs.version attrs.sha256;
 
     extraPaths = [ ];
 
-    nativeBuildInputs = [ makeMinimal install tsort lorder mandoc groff stat ];
-    buildInputs = [ compat ];
-    # depsBuildBuild = [ buildPackages.stdenv.cc ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install tsort lorder mandoc groff statHook
+    ];
+    buildInputs = with self; compatIfNeeded;
 
-    OBJCOPY = if stdenv.isDarwin then "true" else "objcopy";
-    HOST_SH = "${buildPackages.bash}/bin/sh";
+    HOST_SH = stdenv'.shell;
 
     MACHINE_ARCH = {
+      i486 = "i386";
+      i586 = "i386";
       i686 = "i386";
     }.${stdenv'.hostPlatform.parsed.cpu.name}
       or stdenv'.hostPlatform.parsed.cpu.name;
@@ -45,32 +76,32 @@ let
     MACHINE = {
       x86_64 = "amd64";
       aarch64 = "evbarm64";
+      i486 = "i386";
+      i586 = "i386";
       i686 = "i386";
     }.${stdenv'.hostPlatform.parsed.cpu.name}
       or stdenv'.hostPlatform.parsed.cpu.name;
 
-    AR = "${stdenv'.cc.targetPrefix or ""}ar";
-    CC = "${stdenv'.cc.targetPrefix or ""}cc";
-    CPP = "${stdenv'.cc.targetPrefix or ""}cpp";
-    CXX = "${stdenv'.cc.targetPrefix or ""}c++";
-    LD = "${stdenv'.cc.targetPrefix or ""}ld";
-    STRIP = "${stdenv'.cc.targetPrefix or ""}strip";
+    BSD_PATH = attrs.path;
 
-    NETBSD_PATH = attrs.path;
-
-    builder = ./builder.sh;
+    strictDeps = true;
 
     meta = with lib; {
       maintainers = with maintainers; [ matthewbauer qyliss ];
       platforms = platforms.unix;
       license = licenses.bsd2;
     };
+  } // lib.optionalAttrs stdenv'.hasCC {
+    # TODO should CC wrapper set this?
+    CPP = "${stdenv'.cc.targetPrefix}cpp";
   } // lib.optionalAttrs stdenv'.isDarwin {
     MKRELRO = "no";
   } // lib.optionalAttrs (stdenv'.cc.isClang or false) {
     HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc);
   } // lib.optionalAttrs (stdenv'.cc.isGNU or false) {
     HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc);
+  } // lib.optionalAttrs (stdenv'.isx86_32) {
+    USE_SSP = "no";
   } // lib.optionalAttrs (attrs.headersOnly or false) {
     installPhase = "includesPhase";
     dontBuild = true;
@@ -81,17 +112,17 @@ let
   ##
   makeMinimal = mkDerivation {
     path = "tools/make";
-    sha256 = "1xbzfd4i7allrkk1if74a8ymgpizyj0gkvdigzzj37qar7la7nc1";
-    version = "8.0";
+    sha256 = "0fh0nrnk18m613m5blrliq2aydciv51qhc0ihsj4k63incwbk90n";
+    version = "9.1";
 
-    buildInputs = [];
-    nativeBuildInputs = [];
+    buildInputs = with self; [];
+    nativeBuildInputs = with buildPackages.netbsd; [ bsdSetupHook ];
 
     skipIncludesPhase = true;
 
     postPatch = ''
       patchShebangs configure
-      ${make.postPatch}
+      ${self.make.postPatch}
     '';
     buildPhase = ''
       runHook preBuild
@@ -106,32 +137,38 @@ let
       install -D nbmake $out/bin/nbmake
       ln -s $out/bin/nbmake $out/bin/make
       mkdir -p $out/share
-      cp -r $NETBSDSRCDIR/share/mk $out/share/mk
+      cp -r $BSDSRCDIR/share/mk $out/share/mk
 
       runHook postInstall
     '';
-    extraPaths = [ make.src ] ++ make.extraPaths;
+    extraPaths = with self; [ make.src ] ++ make.extraPaths;
   };
 
-  compat = if stdenv.hostPlatform.isNetBSD then stdenv else mkDerivation rec {
+  compat = mkDerivation (let
+    version = "9.1";
+    commonDeps = [ zlib ];
+  in {
     path = "tools/compat";
-    sha256 = "050449lq5gpxqsripdqip5ks49g5ypjga188nd3ss8dg1zf7ydz3";
-    version = "8.0";
+    sha256 = "1vsxg7136nlhc72vpa664vs22874xh7ila95nkmsd8crn3z3cyn0";
+    inherit version;
 
     setupHooks = [
       ../../../build-support/setup-hooks/role.bash
       ./compat-setup-hook.sh
     ];
 
-    # override defaults to prevent infinite recursion
-    nativeBuildInputs = [ makeMinimal ];
-    buildInputs = [ zlib ];
-
     # the build system re-runs `./configure` with `HOST_CC` (which is their
     # name for Build CC) as a compiler to make `defs.mk`, which is installed
-    depsBuildBuild = [ buildPackages.stdenv.cc ] ++ buildInputs;
+    depsBuildBuild = [ buildPackages.stdenv.cc ] ++ commonDeps;
     HOST_CC = "${buildPackages.stdenv.cc.targetPrefix}cc";
 
+    nativeBuildInputs = with buildPackages.netbsd; commonDeps ++ [
+      bsdSetupHook
+      makeMinimal
+    ];
+
+    buildInputs = with self; commonDeps;
+
     # temporarily use gnuinstall for bootstrapping
     # bsdinstall will be built later
     makeFlags = [
@@ -148,24 +185,27 @@ let
 
       # why aren't these installed by netbsd?
       install -D compat_defs.h $out/include/compat_defs.h
-      install -D $NETBSDSRCDIR/include/cdbw.h $out/include/cdbw.h
-      install -D $NETBSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h
-      install -D $NETBSDSRCDIR/sys/sys/featuretest.h \
+      install -D $BSDSRCDIR/include/cdbw.h $out/include/cdbw.h
+      install -D $BSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h
+      install -D $BSDSRCDIR/sys/sys/featuretest.h \
                  $out/include/sys/featuretest.h
-      install -D $NETBSDSRCDIR/sys/sys/md5.h $out/include/md5.h
-      install -D $NETBSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h
-      install -D $NETBSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h
-      install -D $NETBSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h
-      install -D $NETBSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h
-      install -D $NETBSDSRCDIR/include/vis.h $out/include/vis.h
-      install -D $NETBSDSRCDIR/include/db.h $out/include/db.h
-      install -D $NETBSDSRCDIR/include/netconfig.h $out/include/netconfig.h
-      install -D $NETBSDSRCDIR/include/rpc/types.h $out/include/rpc/types.h
-      install -D $NETBSDSRCDIR/include/utmpx.h $out/include/utmpx.h
-      install -D $NETBSDSRCDIR/include/tzfile.h $out/include/tzfile.h
-      install -D $NETBSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h
-      install -D $NETBSDSRCDIR/include/nl_types.h $out/include/nl_types.h
-      install -D $NETBSDSRCDIR/include/stringlist.h $out/include/stringlist.h
+      install -D $BSDSRCDIR/sys/sys/md5.h $out/include/md5.h
+      install -D $BSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h
+      install -D $BSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h
+      install -D $BSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h
+      install -D $BSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h
+      install -D $BSDSRCDIR/include/vis.h $out/include/vis.h
+      install -D $BSDSRCDIR/include/db.h $out/include/db.h
+      install -D $BSDSRCDIR/include/netconfig.h $out/include/netconfig.h
+      install -D $BSDSRCDIR/include/utmpx.h $out/include/utmpx.h
+      install -D $BSDSRCDIR/include/tzfile.h $out/include/tzfile.h
+      install -D $BSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h
+      install -D $BSDSRCDIR/include/nl_types.h $out/include/nl_types.h
+      install -D $BSDSRCDIR/include/stringlist.h $out/include/stringlist.h
+
+      # Collapse includes slightly to fix dangling reference
+      install -D $BSDSRCDIR/common/include/rpc/types.h $out/include/rpc/types.h
+      sed -i '1s;^;#include "nbtool_config.h"\n;' $out/include/rpc/types.h
    '' + lib.optionalString stdenv.isDarwin ''
       mkdir -p $out/include/ssp
       touch $out/include/ssp/ssp.h
@@ -175,12 +215,12 @@ let
         --subst-var-by out $out \
         --subst-var-by version ${version}
     '';
-    extraPaths = [ libc.src libutil.src
-      (fetchNetBSD "include" "8.0" "128m77k16i7frvk8kifhmxzk7a37m7z1s0bbmja3ywga6sx6v6sq")
-      (fetchNetBSD "external/bsd/flex" "8.0" "0yxcjshz9nj827qhmjwwjmzvmmqgaf0d25b42k7lj84vliwrgyr6")
-      (fetchNetBSD "sys/sys" "8.0" "0b0yjjy0c0cvk5nyffppqwxlwh2s1qr2xzl97a9ldck00dibar94")
-    ] ++ libutil.extraPaths ++ libc.extraPaths;
-  };
+    extraPaths = with self; [ include.src libc.src libutil.src
+      (fetchNetBSD "external/bsd/flex" "9.1" "0h98jpfj7vx5zh7vd7bk6b1hmzgkcb757a8j6d9zgygxxv13v43m")
+      (fetchNetBSD "sys/sys" "9.1" "1xx633pvmdgdb0h1x0bw1rvkc63h29ziwh51166rc3q5bil7y01n")
+      (fetchNetBSD "common/include/rpc/types.h" "9.1" "0n2df12mlc3cbc48jxq35yzl1y7ghgpykvy7jnfh898rdhac7m9a")
+    ] ++ libutil.extraPaths ++ _mainLibcExtraPaths;
+  });
 
   # HACK: to ensure parent directories exist. This emulates GNU
   # install’s -D option. No alternative seems to exist in BSD install.
@@ -191,12 +231,16 @@ let
     xinstall "$@"
   ''; in mkDerivation {
     path = "usr.bin/xinstall";
-    version = "8.0";
+    version = "9.1";
     sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj";
-    extraPaths = [ mtree.src make.src ];
-    nativeBuildInputs = [ makeMinimal mandoc groff ];
+    extraPaths = with self; [ mtree.src make.src ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      mandoc groff
+    ];
     skipIncludesPhase = true;
-    buildInputs = [ compat fts ];
+    buildInputs = with self; compatIfNeeded ++ [ fts ];
     installPhase = ''
       runHook preInstall
 
@@ -213,13 +257,15 @@ let
     pname = "fts";
     path = "include/fts.h";
     sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77";
-    version = "8.0";
-    nativeBuildInputs = [ ];
-    propagatedBuildInputs = [ compat ];
-    extraPaths = [
-      (fetchNetBSD "lib/libc/gen/fts.c" "8.0" "1a8hmf26242nmv05ipn3ircxb0jqmmi66rh78kkyi9vjwkfl3qn7")
-      (fetchNetBSD "lib/libc/include/namespace.h" "8.0" "1sjvh9nw3prnk4rmdwrfsxh6gdb9lmilkn46jcfh3q5c8glqzrd7")
-      (fetchNetBSD "lib/libc/gen/fts.3" "8.0" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1")
+    version = "9.1";
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+    ];
+    propagatedBuildInputs = with self; compatIfNeeded;
+    extraPaths = with self; [
+      (fetchNetBSD "lib/libc/gen/fts.c" "9.1" "1a8hmf26242nmv05ipn3ircxb0jqmmi66rh78kkyi9vjwkfl3qn7")
+      (fetchNetBSD "lib/libc/include/namespace.h" "9.1" "0kksr3pdwdc1cplqf5z12ih4cml6l11lqrz91f7hjjm64y7785kc")
+      (fetchNetBSD "lib/libc/gen/fts.3" "9.1" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1")
     ];
     skipIncludesPhase = true;
     buildPhase = ''
@@ -243,25 +289,49 @@ let
     ];
   };
 
+  # Don't add this to nativeBuildInputs directly.  Use statHook instead.
   stat = mkDerivation {
     path = "usr.bin/stat";
-    version = "8.0";
-    sha256 = "0z4r96id2r4cfy443rw2s1n52n186xm0lqvs8s3qjf4314z7r7yh";
-    nativeBuildInputs = [ makeMinimal install mandoc groff ];
+    version = "9.1";
+    sha256 = "18nqwlndfc34qbbgqx5nffil37jfq9aw663ippasfxd2hlyc106x";
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install mandoc groff
+    ];
   };
 
+  # stat isn't in POSIX, and NetBSD stat supports a completely
+  # different range of flags than GNU stat, so including it in PATH
+  # breaks stdenv.  Work around that with a hook that will point
+  # NetBSD's build system and NetBSD stat without including it in
+  # PATH.
+  statHook = makeSetupHook {
+    name = "netbsd-stat-hook";
+  } (writeText "netbsd-stat-hook-impl" ''
+    makeFlagsArray+=(TOOL_STAT=${self.stat}/bin/stat)
+  '');
+
   tsort = mkDerivation {
     path = "usr.bin/tsort";
-    version = "8.0";
+    version = "9.1";
     sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq";
-    nativeBuildInputs = [ makeMinimal install mandoc groff ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install mandoc groff
+    ];
   };
 
   lorder = mkDerivation {
     path = "usr.bin/lorder";
-    version = "8.0";
+    version = "9.1";
     sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2";
-    nativeBuildInputs = [ makeMinimal install mandoc groff ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install mandoc groff
+    ];
   };
   ##
   ## END BOOTSTRAPPING
@@ -272,58 +342,58 @@ let
   ##
   make = mkDerivation {
     path = "usr.bin/make";
-    sha256 = "103643qs3w5kiahir6cca2rkm5ink81qbg071qyzk63qvspfq10c";
-    version = "8.0";
+    sha256 = "09szl3lp9s081h7f3nci5h9zc78wlk9a6g18mryrznrss90q9ngx";
+    version = "9.1";
     postPatch = ''
       # make needs this to pick up our sys make files
       export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
 
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.lib.mk \
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
         --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.kinc.mk \
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \
         --replace /bin/rm rm
     '' + lib.optionalString stdenv.isDarwin ''
-      substituteInPlace $NETBSDSRCDIR/share/mk/bsd.sys.mk \
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
         --replace '-Wl,--fatal-warnings' "" \
         --replace '-Wl,--warn-shared-textrel' ""
     '';
     postInstall = ''
-      make -C $NETBSDSRCDIR/share/mk FILESDIR=$out/share/mk install
+      make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install
     '';
     extraPaths = [
-      (fetchNetBSD "share/mk" "8.0" "033q4w3rmvwznz6m7fn9xcf13chyhwwl8ijj3a9mrn80fkwm55qs")
+      (fetchNetBSD "share/mk" "9.1" "0qi3ypd5dsxk2c33885fsn68a550nibsxb1jwf5w6bfrvcblzn2z")
     ];
   };
 
   mtree = mkDerivation {
     path = "usr.sbin/mtree";
-    version = "8.0";
-    sha256 = "0hanmzm8bgwz2bhsinmsgfmgy6nbdhprwmgwbyjm6bl17vgn7vid";
-    extraPaths = [ mknod.src ];
+    version = "9.1";
+    sha256 = "04p7w540vz9npvyb8g8hcf2xa05phn1y88hsyrcz3vwanvpc0yv9";
+    extraPaths = with self; [ mknod.src ];
   };
 
   mknod = mkDerivation {
     path = "sbin/mknod";
-    version = "8.0";
-    sha256 = "0vq66v0hj0r4z2r2z2d3l3c5vh48pvcdmddc8bhm8hzq2civ5df2";
+    version = "9.1";
+    sha256 = "1d9369shzwgixz3nph991i8q5vk7hr04py3n9avbfbhzy4gndqs2";
   };
 
   getent = mkDerivation {
     path = "usr.bin/getent";
-    sha256 = "1ylhw4dnpyrmcy8n5kjcxywm8qc9p124dqnm17x4magiqx1kh9iz";
-    version = "8.0";
+    sha256 = "1qngywcmm0y7nl8h3n8brvkxq4jw63szbci3kc1q6a6ndhycbbvr";
+    version = "9.1";
     patches = [ ./getent.patch ];
   };
 
   getconf = mkDerivation {
     path = "usr.bin/getconf";
     sha256 = "122vslz4j3h2mfs921nr2s6m078zcj697yrb75rwp2hnw3qz4s8q";
-    version = "8.0";
+    version = "9.1";
   };
 
   locale = mkDerivation {
     path = "usr.bin/locale";
-    version = "8.0";
+    version = "9.1";
     sha256 = "0kk6v9k2bygq0wf9gbinliqzqpzs9bgxn0ndyl2wcv3hh2bmsr9p";
     patches = [ ./locale.patch ];
     NIX_CFLAGS_COMPILE = "-DYESSTR=__YESSTR -DNOSTR=__NOSTR";
@@ -331,42 +401,73 @@ let
 
   rpcgen = mkDerivation {
     path = "usr.bin/rpcgen";
-    version = "8.0";
+    version = "9.1";
     sha256 = "1kfgfx54jg98wbg0d95p0rvf4w0302v8fz724b0bdackdsrd4988";
   };
 
   genassym = mkDerivation {
     path = "usr.bin/genassym";
-    version = "8.0";
+    version = "9.1";
     sha256 = "1acl1dz5kvh9h5806vkz2ap95rdsz7phmynh5i3x5y7agbki030c";
   };
 
   gencat = mkDerivation {
     path = "usr.bin/gencat";
-    version = "8.0";
-    sha256 = "1696lgh2lhz93247lklvpvkd0f5asg6z27w2g4bmpfijlgw2h698";
+    version = "9.1";
+    sha256 = "0gd463x1hg36bhr7y0xryb5jyxk0z0g7xvy8rgk82nlbnlnsbbwb";
   };
 
   nbperf = mkDerivation {
     path = "usr.bin/nbperf";
-    version = "8.0";
-    sha256 = "0gzm0zv2400lasnsswnjw9bwzyizhxzdbrcjwcl1k65aj86aqyqb";
+    version = "9.1";
+    sha256 = "1nxc302vgmjhm3yqdivqyfzslrg0vjpbss44s74rcryrl19mma9r";
   };
 
   tic = mkDerivation {
     path = "tools/tic";
-    version = "8.0";
+    version = "9.1";
     sha256 = "092y7db7k4kh2jq8qc55126r5qqvlb8lq8mhmy5ipbi36hwb4zrz";
     HOSTPROG = "tic";
-    buildInputs = [ compat ];
-    nativeBuildInputs = [ makeMinimal install mandoc groff nbperf ];
+    buildInputs = with self; compatIfNeeded;
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install mandoc groff nbperf
+    ];
     makeFlags = [ "TOOLDIR=$(out)" ];
-    extraPaths = [
+    extraPaths = with self; [
       libterminfo.src
-      (fetchNetBSD "usr.bin/tic" "8.0" "0diirnzmdnpc5bixyb34c9rid9paw2a4zfczqrpqrfvjsf1nnljf")
-      (fetchNetBSD "tools/Makefile.host" "8.0" "1p23dsc4qrv93vc6gzid9w2479jwswry9qfn88505s0pdd7h6nvp")
+      (fetchNetBSD "usr.bin/tic" "9.1" "1mwdfg7yx1g43ss378qsgl5rqhsxskqvsd2mqvrn38qw54i8v5i1")
+      (fetchNetBSD "tools/Makefile.host" "9.1" "15b4ab0n36lqj00j5lz2xs83g7l8isk3wx1wcapbrn66qmzz2sxy")
     ];
   };
+
+  uudecode = mkDerivation {
+    path = "usr.bin/uudecode";
+    version = "9.1";
+    sha256 = "00a3zmh15pg4vx6hz0kaa5mi8d2b1sj4h512d7p6wbvxq6mznwcn";
+    NIX_CFLAGS_COMPILE = lib.optional stdenv.isLinux "-DNO_BASE64";
+  };
+
+  cksum = mkDerivation {
+    path = "usr.bin/cksum";
+    version = "9.1";
+    sha256 = "0msfhgyvh5c2jmc6qjnf12c378dhw32ffsl864qz4rdb2b98rfcq";
+    meta.platforms = lib.platforms.netbsd;
+  };
+
+  config = mkDerivation {
+    path = "usr.bin/config";
+    version = "9.1";
+    sha256 = "08mqq0izd9550dwk181smni51cbiim7rwp208phf25c4mqzaznf4";
+    NIX_CFLAGS_COMPILE = [ "-DMAKE_BOOTSTRAP" ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal install mandoc byacc flex
+    ];
+    buildInputs = with self; compatIfNeeded;
+    extraPaths = with self; [ cksum.src ];
+  };
   ##
   ## END COMMAND LINE TOOLS
   ##
@@ -376,41 +477,85 @@ let
   ##
   include = mkDerivation {
     path = "include";
-    version = "8.0";
-    sha256 = "128m77k16i7frvk8kifhmxzk7a37m7z1s0bbmja3ywga6sx6v6sq";
-    nativeBuildInputs = [ makeMinimal install mandoc groff nbperf rpcgen ];
-    extraPaths = [ common.src ];
+    version = "9.1";
+    sha256 = "127kj61prvj3klc2an5rpgavgah2g6igfgprl45255i264wyg8v3";
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install mandoc groff nbperf rpcgen
+    ];
+    extraPaths = with self; [ common ];
     headersOnly = true;
     noCC = true;
-    # meta.platforms = lib.platforms.netbsd;
-    makeFlags = [ "RPCGEN_CPP=${buildPackages.gcc-unwrapped}/bin/cpp" ];
+    meta.platforms = lib.platforms.netbsd;
+    makeFlags = [ "RPCGEN_CPP=${buildPackages.stdenv.cc.cc}/bin/cpp" ];
   };
 
-  common = mkDerivation {
-    path = "common";
-    version = "8.0";
-    sha256 = "1fsm2b7p7zkhiz523jw75088cq2h39iknp0fp3di9a64bikwbhi1";
-  };
+  common = fetchNetBSD "common" "9.1" "000n9frjm02h1bdwhb9rbr7wphs8vrj7n09l3v9hhnqrkn7nhy30";
 
-  # The full kernel
-  sys = mkDerivation {
+  sys-headers = mkDerivation {
+    pname = "sys-headers";
     path = "sys";
-    version = "8.0";
-    sha256 = "123ilg8fqmp69bw6bs6nh98fpi1v2n9lamrzar61p27ji6sj7g0w";
-    propagatedBuildInputs = [ include ];
-    #meta.platforms = lib.platforms.netbsd;
-    extraPaths = [ common.src ];
+    version = "9.1";
+    sha256 = "03sv6d7nvnkas4m5z87zxh1rpmggr91ls7di88fwc3cwd3mg3iyx";
+
+    # Fix this error when building bootia32.efi and bootx64.efi:
+    # error: PHDR segment not covered by LOAD segment
+    patches = [ ./no-dynamic-linker.patch ];
+
+    CONFIG = "GENERIC";
+
+    propagatedBuildInputs = with self; [ include ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal install tsort lorder statHook uudecode config genassym
+    ];
+
+    postConfigure = ''
+      pushd arch/$MACHINE/conf
+      config $CONFIG
+      popd
+    '';
+
+    makeFlags = [ "FIRMWAREDIR=$(out)/libdata/firmware" ];
+    hardeningDisable = [ "pic" ];
     MKKMOD = "no";
+    NIX_CFLAGS_COMPILE = [ "-Wa,--no-warn" ];
+
+    postBuild = ''
+      make -C arch/$MACHINE/compile/$CONFIG $makeFlags
+    '';
+
+    postInstall = ''
+      cp arch/$MACHINE/compile/$CONFIG/netbsd $out
+    '';
+
+    meta.platforms = lib.platforms.netbsd;
+    extraPaths = with self; [ common ];
+
+    installPhase = "includesPhase";
+    dontBuild = true;
+    noCC = true;
+  };
+
+  # The full kernel. We do the funny thing of overridding the headers to the
+  # full kernal and not vice versa to avoid infinite recursion -- the headers
+  # come earlier in the bootstrap.
+  sys = self.sys-headers.override {
+    pname = "sys";
+    installPhase = null;
+    noCC = false;
+    dontBuild = false;
   };
 
   headers = symlinkJoin {
-    name = "netbsd-headers-8.0";
-    paths = [ include ] ++ map (pkg: pkg.override (_: {
-      installPhase = "includesPhase";
-      dontBuild = true;
-      noCC = true;
-      meta.platforms = lib.platforms.all;
-    })) [ sys libpthread ];
+    name = "netbsd-headers-9.1";
+    paths = with self; [
+      include
+      sys-headers
+      libpthread-headers
+    ];
+    meta.platforms = lib.platforms.netbsd;
   };
   ##
   ## END HEADERS
@@ -421,17 +566,26 @@ let
   ##
   libutil = mkDerivation {
     path = "lib/libutil";
-    version = "8.0";
-    sha256 = "077syyxd303m4x7avs5nxzk4c9n13d5lyk5aicsacqjvx79qrk3i";
-    extraPaths = [ common.src ];
+    version = "9.1";
+    sha256 = "02gm5a5zhh8qp5r5q5r7x8x6x50ir1i0ncgsnfwh1vnrz6mxbq7z";
+    extraPaths = with self; [ common libc.src sys.src ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      byacc install tsort lorder mandoc statHook
+    ];
+    buildInputs = with self; [ headers ];
+    SHLIBINSTALLDIR = "$(out)/lib";
   };
 
   libedit = mkDerivation {
     path = "lib/libedit";
-    version = "8.0";
-    sha256 = "0pmqh2mkfp70bwchiwyrkdyq9jcihx12g1awd6alqi9bpr3f9xmd";
-    buildInputs = [ libterminfo libcurses ];
-    propagatedBuildInputs = [ compat ];
+    version = "9.1";
+    sha256 = "1wqhngraxwqk4jgrf5f18jy195yrp7c06n1gf31pbplq79mg1bcj";
+    buildInputs = with self; [ libterminfo libcurses ];
+    propagatedBuildInputs = with self; compatIfNeeded;
+    SHLIBINSTALLDIR = "$(out)/lib";
+    makeFlags = [ "LIBDO.terminfo=${self.libterminfo}/lib" ];
     postPatch = ''
       sed -i '1i #undef bool_t' el.h
       substituteInPlace config.h \
@@ -447,34 +601,43 @@ let
 
   libterminfo = mkDerivation {
     path = "lib/libterminfo";
-    version = "8.0";
-    sha256 = "14gp0d6fh6zjnbac2yjhyq5m6rca7gm6q1s9gilhzpdgl9m7vb9r";
-    buildInputs = [ compat ];
+    version = "9.1";
+    sha256 = "0pq05k3dj0dfsczv07frnnji92mazmy2qqngqbx2zgqc1x251414";
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal install tsort lorder mandoc statHook nbperf tic
+    ];
+    buildInputs = with self; compatIfNeeded;
+    SHLIBINSTALLDIR = "$(out)/lib";
     postPatch = ''
       substituteInPlace term.c --replace /usr/share $out/share
       substituteInPlace setupterm.c \
         --replace '#include <curses.h>' 'void use_env(bool);'
     '';
+    postBuild = ''
+      make -C $BSDSRCDIR/share/terminfo $makeFlags BINDIR=$out/share
+    '';
     postInstall = ''
-      make -C $NETBSDSRCDIR/share/terminfo BINDIR=$out/share install
+      make -C $BSDSRCDIR/share/terminfo $makeFlags BINDIR=$out/share install
     '';
-    extraPaths = [
-      (fetchNetBSD "share/terminfo" "8.0" "18db0fk1dw691vk6lsm6dksm4cf08g8kdm0gc4052ysdagg2m6sm")
+    extraPaths = with self; [
+      (fetchNetBSD "share/terminfo" "9.1" "1vh9rl4w8118a9qdpblfxmv1wkpm83rm9gb4rzz5bpm56i6d7kk7")
     ];
   };
 
   libcurses = mkDerivation {
     path = "lib/libcurses";
-    version = "8.0";
-    sha256 = "0azhzh1910v24dqx45zmh4z4dl63fgsykajrbikx5xfvvmkcq7xs";
-    buildInputs = [ libterminfo ];
+    version = "9.1";
+    sha256 = "0pd0dggl3w4bv5i5h0s1wrc8hr66n4hkv3zlklarwfdhc692fqal";
+    buildInputs = with self; [ libterminfo ];
     NIX_CFLAGS_COMPILE = [
       "-D__scanflike(a,b)="
       "-D__va_list=va_list"
       "-D__warn_references(a,b)="
     ] ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)=";
-    propagatedBuildInputs = [ compat ];
+    propagatedBuildInputs = with self; compatIfNeeded;
     MKDOC = "no"; # missing vfontedpr
+    makeFlags = [ "LIBDO.terminfo=${self.libterminfo}/lib" ];
     postPatch = lib.optionalString (!stdenv.isDarwin) ''
       substituteInPlace printw.c \
         --replace "funopen(win, NULL, __winwrite, NULL, NULL)" NULL \
@@ -486,113 +649,159 @@ let
 
   column = mkDerivation {
     path = "usr.bin/column";
-    version = "8.0";
+    version = "9.1";
     sha256 = "0r6b0hjn5ls3j3sv6chibs44fs32yyk2cg8kh70kb4cwajs4ifyl";
   };
 
   libossaudio = mkDerivation {
     path = "lib/libossaudio";
-    version = "8.0";
-    sha256 = "03azp5anavhjr15sinjlik9792lyf7w4zmkcihlkksrywhs05axh";
+    version = "9.1";
+    sha256 = "16l3bfy6dcwqnklvh3x0ps8ld1y504vf57v9rx8f9adzhb797jh0";
     meta.platforms = lib.platforms.netbsd;
-    postPatch = ''
-      substituteInPlace rpc/Makefile --replace /usr $out
-    '';
   };
 
   librpcsvc = mkDerivation {
     path = "lib/librpcsvc";
-    version = "8.0";
-    sha256 = "14ri9w6gdhsm4id5ck133syyvbmkbknfa8w0xkklm726nskhfkj7";
+    version = "9.1";
+    sha256 = "1q34pfiyjbrgrdqm46jwrsqms49ly6z3b0xh1wg331zga900vq5n";
     makeFlags = [ "INCSDIR=$(out)/include/rpcsvc" ];
     meta.platforms = lib.platforms.netbsd;
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install tsort lorder rpcgen statHook
+    ];
   };
 
   librt = mkDerivation {
     path = "lib/librt";
-    version = "8.0";
-    sha256 = "078qsi4mg1hyyxr1awvjs9b0c2gicg3zw4vl603g1m9vm8gfxw9l";
+    version = "9.1";
+    sha256 = "07f8mpjcqh5kig5z5sp97fg55mc4dz6aa1x5g01nv2pvbmqczxc6";
     meta.platforms = lib.platforms.netbsd;
+    extraPaths = with self; [ libc.src ] ++ libc.extraPaths;
+    postPatch = ''
+      sed -i 's,/usr\(/include/sys/syscall.h\),${self.headers}\1,g' \
+        $BSDSRCDIR/lib/{libc,librt}/sys/Makefile.inc
+    '';
   };
 
   libcrypt = mkDerivation {
     path = "lib/libcrypt";
-    version = "8.0";
+    version = "9.1";
     sha256 = "0siqan1wdqmmhchh2n8w6a8x1abbff8n4yb6jrqxap3hqn8ay54g";
+    SHLIBINSTALLDIR = "$(out)/lib";
     meta.platforms = lib.platforms.netbsd;
   };
 
-  libpthread = mkDerivation {
+  libpthread-headers = mkDerivation {
+    pname = "libpthread-headers";
     path = "lib/libpthread";
-    version = "8.0";
-    sha256 = "0pcz61klc3ijf5z2zf8s78nj7bwjfblzjllx7vr4z5qv3m0sdb3j";
+    version = "9.1";
+    sha256 = "0mlmc31k509dwfmx5s2x010wxjc44mr6y0cbmk30cfipqh8c962h";
+    installPhase = "includesPhase";
+    dontBuild = true;
+    noCC = true;
     meta.platforms = lib.platforms.netbsd;
   };
 
+  libpthread = self.libpthread-headers.override {
+    pname = "libpthread";
+    installPhase = null;
+    noCC = false;
+    dontBuild = false;
+    buildInputs = with self; [ headers ];
+    SHLIBINSTALLDIR = "$(out)/lib";
+    extraPaths = with self; [ common libc.src librt.src sys.src ];
+  };
+
   libresolv = mkDerivation {
     path = "lib/libresolv";
-    version = "8.0";
-    sha256 = "11vpb3p2343wyrhw4v9gwz7i0lcpb9ysmfs9gsx56b5gkgipdy4v";
+    version = "9.1";
+    sha256 = "1am74s74mf1ynwz3p4ncjkg63f78a1zjm983q166x4sgzps15626";
     meta.platforms = lib.platforms.netbsd;
+    extraPaths = with self; [ libc.src ];
   };
 
   libm = mkDerivation {
     path = "lib/libm";
-    version = "8.0";
-    sha256 = "0i22603cgj6n00gn2m446v4kn1pk109qs1g6ylrslmihfmiy2h1d";
+    version = "9.1";
+    sha256 = "1apwfr26shdmbqqnmg7hxf7bkfxw44ynqnnnghrww9bnhqdnsy92";
+    SHLIBINSTALLDIR = "$(out)/lib";
     meta.platforms = lib.platforms.netbsd;
+    extraPaths = with self; [ sys.src ];
   };
 
   i18n_module = mkDerivation {
     path = "lib/i18n_module";
-    version = "8.0";
+    version = "9.1";
     sha256 = "0w6y5v3binm7gf2kn7y9jja8k18rhnyl55cvvfnfipjqdxvxd9jd";
     meta.platforms = lib.platforms.netbsd;
+    extraPaths = with self; [ libc.src ];
   };
 
   csu = mkDerivation {
     path = "lib/csu";
-    version = "8.0";
-    sha256 = "0630lbvz6v4ic13bfg8ccwfhqkgcv76bfdw9f36rfsnwfgpxqsmq";
+    version = "9.1";
+    sha256 = "0al5jfazvhlzn9hvmnrbchx4d0gm282hq5gp4xs2zmj9ycmf6d03";
     meta.platforms = lib.platforms.netbsd;
-    nativeBuildInputs = [ makeMinimal install mandoc groff flex
-                          bison genassym gencat lorder tsort stat ];
-    extraPaths = [ sys.src ld_elf_so.src ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install mandoc groff flex
+      byacc genassym gencat lorder tsort statHook
+    ];
+    buildInputs = with self; [ headers ];
+    extraPaths = with self; [ sys.src ld_elf_so.src ];
   };
 
   ld_elf_so = mkDerivation {
     path  = "libexec/ld.elf_so";
-    version = "8.0";
-    sha256 = "1jmqpi0kg2daiqnvpwdyfy8rpnszxsm70sxizz0r7wn53xjr5hva";
+    version = "9.1";
+    sha256 = "0ia9mqzdljly0vqfwflm5mzz55k7qsr4rw2bzhivky6k30vgirqa";
     meta.platforms = lib.platforms.netbsd;
+    LIBC_PIC = "${self.libc}/lib/libc_pic.a";
+    # Hack to prevent a symlink being installed here for compatibility.
+    SHLINKINSTALLDIR = "/usr/libexec";
     USE_FORT = "yes";
-    extraPaths = [ libc.src ] ++ libc.extraPaths;
+    makeFlags = [ "BINDIR=$(out)/libexec" "CLIBOBJ=${self.libc}/lib" ];
+    extraPaths = with self; [ libc.src ] ++ libc.extraPaths;
   };
 
+  _mainLibcExtraPaths = with self; [
+      common i18n_module.src sys.src
+      ld_elf_so.src libpthread.src libm.src libresolv.src
+      librpcsvc.src libutil.src librt.src libcrypt.src
+  ];
+
   libc = mkDerivation {
     path = "lib/libc";
-    version = "8.0";
-    sha256 = "0lgbc58qgn8kwm3l011x1ml1kgcf7jsgq7hbf0hxhlbvxq5bljl3";
+    version = "9.1";
+    sha256 = "0jg6kpi1xn4wvlqpwnkcv8655hxi0nhcxbk8lzbj7mlr6srxci8j";
     USE_FORT = "yes";
     MKPROFILE = "no";
-    extraPaths = [ common.src i18n_module.src sys.src
-                   ld_elf_so.src libpthread.src libm.src libresolv.src
-                   librpcsvc.src libutil.src librt.src libcrypt.src ];
-    buildInputs = [ buildPackages.netbsd.headers csu ];
-    nativeBuildInputs = [ makeMinimal install mandoc groff flex
-                          bison genassym gencat lorder tsort stat ];
-    NIX_CFLAGS_COMPILE = "-B${csu}/lib";
+    extraPaths = with self; _mainLibcExtraPaths ++ [
+      (fetchNetBSD "external/bsd/jemalloc" "9.1" "0cq704swa0h2yxv4gc79z2lwxibk9k7pxh3q5qfs7axx3jx3n8kb")
+    ];
+    nativeBuildInputs = with buildPackages.netbsd; [
+      bsdSetupHook
+      makeMinimal
+      install mandoc groff flex
+      byacc genassym gencat lorder tsort statHook rpcgen
+    ];
+    buildInputs = with self; [ headers csu ];
+    NIX_CFLAGS_COMPILE = "-B${self.csu}/lib";
     meta.platforms = lib.platforms.netbsd;
     SHLIBINSTALLDIR = "$(out)/lib";
+    MKPICINSTALL = "yes";
     NLSDIR = "$(out)/share/nls";
     makeFlags = [ "FILESDIR=$(out)/var/db"];
     postInstall = ''
-      pushd ${buildPackages.netbsd.headers}
+      pushd ${self.headers}
       find . -type d -exec mkdir -p $out/\{} \;
       find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
       popd
 
-      pushd ${csu}
+      pushd ${self.csu}
       find . -type d -exec mkdir -p $out/\{} \;
       find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
       popd
@@ -601,34 +810,31 @@ let
       NIX_CFLAGS_COMPILE+=" -I$out/include"
       NIX_LDFLAGS+=" -L$out/lib"
 
-      make -C $NETBSDSRCDIR/lib/libpthread $makeFlags
-      make -C $NETBSDSRCDIR/lib/libpthread $makeFlags install
+      make -C $BSDSRCDIR/lib/libpthread $makeFlags
+      make -C $BSDSRCDIR/lib/libpthread $makeFlags install
 
-      make -C $NETBSDSRCDIR/lib/libm $makeFlags
-      make -C $NETBSDSRCDIR/lib/libm $makeFlags install
+      make -C $BSDSRCDIR/lib/libm $makeFlags
+      make -C $BSDSRCDIR/lib/libm $makeFlags install
 
-      make -C $NETBSDSRCDIR/lib/libresolv $makeFlags
-      make -C $NETBSDSRCDIR/lib/libresolv $makeFlags install
+      make -C $BSDSRCDIR/lib/libresolv $makeFlags
+      make -C $BSDSRCDIR/lib/libresolv $makeFlags install
 
-      make -C $NETBSDSRCDIR/lib/librpcsv $makeFlags
-      make -C $NETBSDSRCDIR/lib/librpcsv $makeFlags install
+      make -C $BSDSRCDIR/lib/librpcsvc $makeFlags
+      make -C $BSDSRCDIR/lib/librpcsvc $makeFlags install
 
-      make -C $NETBSDSRCDIR/lib/i18n_module $makeFlags
-      make -C $NETBSDSRCDIR/lib/i18n_module $makeFlags install
+      make -C $BSDSRCDIR/lib/i18n_module $makeFlags
+      make -C $BSDSRCDIR/lib/i18n_module $makeFlags install
 
-      make -C $NETBSDSRCDIR/lib/libutil $makeFlags
-      make -C $NETBSDSRCDIR/lib/libutil $makeFlags install
+      make -C $BSDSRCDIR/lib/libutil $makeFlags
+      make -C $BSDSRCDIR/lib/libutil $makeFlags install
 
-      make -C $NETBSDSRCDIR/lib/librt $makeFlags
-      make -C $NETBSDSRCDIR/lib/librt $makeFlags install
+      make -C $BSDSRCDIR/lib/librt $makeFlags
+      make -C $BSDSRCDIR/lib/librt $makeFlags install
 
-      make -C $NETBSDSRCDIR/lib/libcrypt $makeFlags
-      make -C $NETBSDSRCDIR/lib/libcrypt $makeFlags install
-    '';
-    postPatch = ''
-      substituteInPlace sys/Makefile.inc \
-        --replace /usr/include/sys/syscall.h ${buildPackages.netbsd.headers}/include/sys/syscall.h
+      make -C $BSDSRCDIR/lib/libcrypt $makeFlags
+      make -C $BSDSRCDIR/lib/libcrypt $makeFlags install
     '';
+    inherit (self.librt) postPatch;
   };
   #
   # END LIBRARIES
@@ -640,30 +846,28 @@ let
   dict = mkDerivation {
     path = "share/dict";
     noCC = true;
-    version = "8.0";
-    sha256 = "1pk0y3xc5ihc2k89wjkh33qqx3w9q34k03k2qcffvbqh1l6wm36l";
+    version = "9.1";
+    sha256 = "0svfc0byk59ri37pyjslv4c4rc7zw396r73mr593i78d39q5g3ad";
     makeFlags = [ "BINDIR=$(out)/share" ];
   };
 
   misc = mkDerivation {
     path = "share/misc";
     noCC = true;
-    version = "8.0";
-    sha256 = "0d34b3irjbqsqfk8v8aaj36fjyvwyx410igl26jcx2ryh3ispch8";
+    version = "9.1";
+    sha256 = "1j2cdssdx6nncv8ffj7f7ybl7m9hadjj8vm8611skqdvxnjg6nbc";
     makeFlags = [ "BINDIR=$(out)/share" ];
   };
 
   man = mkDerivation {
     path = "share/man";
     noCC = true;
-    version = "8.0";
-    sha256 = "0yp48syf3y5psm0mymxp6va6spym5izjym0ybr628iqwji21cqdz";
+    version = "9.1";
+    sha256 = "14sfvz9a5x0kmr9ywsdz09jhw8r1cmhq45wrrz2xwy09b8ykhip6";
     makeFlags = [ "FILESDIR=$(out)/share" ];
   };
   #
   # END MISCELLANEOUS
   #
 
-  };
-
-in netbsd
+})
diff --git a/nixpkgs/pkgs/os-specific/bsd/netbsd/no-dynamic-linker.patch b/nixpkgs/pkgs/os-specific/bsd/netbsd/no-dynamic-linker.patch
new file mode 100644
index 000000000000..5a2b9092a5c5
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/bsd/netbsd/no-dynamic-linker.patch
@@ -0,0 +1,16 @@
+===================================================================
+RCS file: /ftp/cvs/cvsroot/src/sys/arch/i386/stand/efiboot/Makefile.efiboot,v
+rcsdiff: /ftp/cvs/cvsroot/src/sys/arch/i386/stand/efiboot/Makefile.efiboot,v: warning: Unknown phrases like `commitid ...;' are present.
+retrieving revision 1.16
+retrieving revision 1.17
+diff -u -p -r1.16 -r1.17
+--- sys/arch/i386/stand/efiboot/Makefile.efiboot	2019/09/13 02:19:45	1.16
++++ sys/arch/i386/stand/efiboot/Makefile.efiboot	2020/04/04 15:30:46	1.17
+@@ -41,6 +41,7 @@ BINMODE=444
+ .PATH:	${.CURDIR}/../../libsa
+ 
+ LDSCRIPT?= ${.CURDIR}/ldscript
++LDFLAGS+= --no-dynamic-linker --noinhibit-exec
+ LDFLAGS+= -nostdlib -T${LDSCRIPT} -Bsymbolic -shared -nocombreloc
+ CPPFLAGS+= -I$S -I${.CURDIR} -I${.CURDIR}/.. -I$S/lib/libsa
+ CPPFLAGS+= -I${.OBJDIR}
diff --git a/nixpkgs/pkgs/os-specific/bsd/netbsd/builder.sh b/nixpkgs/pkgs/os-specific/bsd/setup-hook.sh
index 925001567f79..45babc38d7a5 100644
--- a/nixpkgs/pkgs/os-specific/bsd/netbsd/builder.sh
+++ b/nixpkgs/pkgs/os-specific/bsd/setup-hook.sh
@@ -1,6 +1,4 @@
-source $stdenv/setup
-
-# NetBSD makefiles should be able to detect this
+# BSD makefiles should be able to detect this
 # but without they end up using gcc on Darwin stdenv
 addMakeFlags() {
   export setOutputFlags=
@@ -64,13 +62,12 @@ addMakeFlags() {
   makeFlags="-j $NIX_BUILD_CORES $makeFlags"
 }
 
-setNetBSDSourceDir() {
+setBSDSourceDir() {
   # merge together all extra paths
   # there should be a better way to do this
   sourceRoot=$PWD/$sourceRoot
-  export NETBSDSRCDIR=$sourceRoot
-  export BSDSRCDIR=$NETBSDSRCDIR
-  export _SRC_TOP_=$NETBSDSRCDIR
+  export BSDSRCDIR=$sourceRoot
+  export _SRC_TOP_=$BSDSRCDIR
   chmod -R u+w $sourceRoot
   for path in $extraPaths; do
     cd $path
@@ -80,13 +77,14 @@ setNetBSDSourceDir() {
   done
 
   cd $sourceRoot
-  if [ -d "$NETBSD_PATH" ]
-    then sourceRoot=$sourceRoot/$NETBSD_PATH
+  if [ -d "$BSD_PATH" ]
+    then sourceRoot=$sourceRoot/$BSD_PATH
   fi
 }
 
 includesPhase() {
   if [ -z "${skipIncludesPhase:-}" ]; then
+    runHook preIncludes
 
     local flagsArray=(
          $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
@@ -98,6 +96,7 @@ includesPhase() {
 
     moveUsrDir
 
+    runHook postIncludes
   fi
 }
 
@@ -105,18 +104,17 @@ moveUsrDir() {
   if [ -d $prefix ]; then
     # Remove lingering /usr references
     if [ -d $prefix/usr ]; then
-      cd $prefix/usr
+      pushd $prefix/usr
       find . -type d -exec mkdir -p $out/\{} \;
       find . \( -type f -o -type l \) -exec mv \{} $out/\{} \;
+      popd
     fi
 
     find $prefix -type d -empty -delete
   fi
 }
 
-postUnpackHooks+=(setNetBSDSourceDir)
+postUnpackHooks+=(setBSDSourceDir)
 preConfigureHooks+=(addMakeFlags)
 preInstallHooks+=(includesPhase)
 fixupOutputHooks+=(moveUsrDir)
-
-genericBuild
diff --git a/nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix b/nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix
index 5badf2434d64..588769c7bfc6 100644
--- a/nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/DarwinTools/default.nix
@@ -8,7 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "0hh4jl590jv3v830p77r3jcrnpndy7p2b8ajai3ldpnx2913jfhp";
   };
 
-  patchPhase = ''
+  patches = [
+    ./sw_vers-CFPriv.patch
+  ];
+
+  postPatch = ''
     substituteInPlace Makefile \
       --replace gcc cc
   '';
diff --git a/nixpkgs/pkgs/os-specific/darwin/DarwinTools/sw_vers-CFPriv.patch b/nixpkgs/pkgs/os-specific/darwin/DarwinTools/sw_vers-CFPriv.patch
new file mode 100644
index 000000000000..6faeaa75025e
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/DarwinTools/sw_vers-CFPriv.patch
@@ -0,0 +1,19 @@
+--- a/sw_vers.c	2021-04-19 13:06:50.131346864 +0900
++++ b/sw_vers.c	2021-04-19 13:07:32.481967474 +0900
+@@ -28,7 +28,15 @@
+  */
+ 
+ #include <CoreFoundation/CoreFoundation.h>
+-#include <CoreFoundation/CFPriv.h>
++
++// Avoid dependency on CoreFoundation/CFPriv, which no longer appears to be
++// part of the upstream sdk.
++
++CFDictionaryRef _CFCopyServerVersionDictionary(void);
++CFDictionaryRef _CFCopySystemVersionDictionary(void);
++extern CFStringRef _kCFSystemVersionProductNameKey;
++extern CFStringRef _kCFSystemVersionProductVersionKey;
++extern CFStringRef _kCFSystemVersionBuildVersionKey;
+ 
+ void usage(char *progname) {
+ 	fprintf(stderr, "Usage: %s [-productName|-productVersion|-buildVersion]\n", progname);
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix
new file mode 100644
index 000000000000..14945380e20c
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix
@@ -0,0 +1,169 @@
+{ lib, stdenvNoCC, buildPackages, fetchurl, xar, cpio, pkgs, python3, pbzx, MacOSX-SDK }:
+
+# TODO: reorganize to make this just frameworks, and move libs to default.nix
+
+let
+  stdenv = stdenvNoCC;
+
+  standardFrameworkPath = name: private:
+    "/System/Library/${lib.optionalString private "Private"}Frameworks/${name}.framework";
+
+  mkDepsRewrites = deps:
+  let
+    mergeRewrites = x: y: {
+      prefix = lib.mergeAttrs (x.prefix or {}) (y.prefix or {});
+      const = lib.mergeAttrs (x.const or {}) (y.const or {});
+    };
+
+    rewriteArgs = { prefix ? {}, const ? {} }: lib.concatLists (
+      (lib.mapAttrsToList (from: to: [ "-p" "${from}:${to}" ]) prefix) ++
+      (lib.mapAttrsToList (from: to: [ "-c" "${from}:${to}" ]) const)
+    );
+
+    rewrites = depList: lib.fold mergeRewrites {}
+      (map (dep: dep.tbdRewrites)
+        (lib.filter (dep: dep ? tbdRewrites) depList));
+  in
+    lib.escapeShellArgs (rewriteArgs (rewrites (builtins.attrValues deps)));
+
+  mkFramework = { name, deps, private ? false }:
+    let self = stdenv.mkDerivation {
+      pname = "apple-${lib.optionalString private "private-"}framework-${name}";
+      version = MacOSX-SDK.version;
+
+      dontUnpack = true;
+
+      # because we copy files from the system
+      preferLocalBuild = true;
+
+      disallowedRequisites = [ MacOSX-SDK ];
+
+      nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ];
+
+      installPhase = ''
+        mkdir -p $out/Library/Frameworks
+
+        cp -r ${MacOSX-SDK}${standardFrameworkPath name private} $out/Library/Frameworks
+
+        # Fix and check tbd re-export references
+        chmod u+w -R $out
+        find $out -name '*.tbd' -type f | while read tbd; do
+          echo "Fixing re-exports in $tbd"
+          rewrite-tbd \
+            -p ${standardFrameworkPath name private}/:$out/Library/Frameworks/${name}.framework/ \
+            ${mkDepsRewrites deps} \
+            -r ${builtins.storeDir} \
+            "$tbd"
+        done
+      '';
+
+      propagatedBuildInputs = builtins.attrValues deps;
+
+      passthru = {
+        tbdRewrites = {
+          prefix."${standardFrameworkPath name private}/" = "${self}/Library/Frameworks/${name}.framework/";
+        };
+      };
+
+      meta = with lib; {
+        description = "Apple SDK framework ${name}";
+        maintainers = with maintainers; [ copumpkin ];
+        platforms   = platforms.darwin;
+      };
+    };
+  in self;
+
+  framework = name: deps: mkFramework { inherit name deps; private = false; };
+  privateFramework = name: deps: mkFramework { inherit name deps; private = true; };
+in rec {
+  libs = {
+    xpc = stdenv.mkDerivation {
+      name   = "apple-lib-xpc";
+      dontUnpack = true;
+
+      installPhase = ''
+        mkdir -p $out/include
+        pushd $out/include >/dev/null
+        cp -r "${MacOSX-SDK}/usr/include/xpc" $out/include/xpc
+        cp "${MacOSX-SDK}/usr/include/launch.h" $out/include/launch.h
+        popd >/dev/null
+      '';
+    };
+
+    Xplugin = stdenv.mkDerivation {
+      name   = "apple-lib-Xplugin";
+      dontUnpack = true;
+
+      propagatedBuildInputs = with frameworks; [
+        OpenGL ApplicationServices Carbon IOKit CoreGraphics CoreServices CoreText
+      ];
+
+      installPhase = ''
+        mkdir -p $out/include $out/lib
+        ln -s "${MacOSX-SDK}/include/Xplugin.h" $out/include/Xplugin.h
+        cp ${MacOSX-SDK}/usr/lib/libXplugin.1.tbd $out/lib
+        ln -s libXplugin.1.tbd $out/lib/libXplugin.tbd
+      '';
+    };
+
+    utmp = stdenv.mkDerivation {
+      name   = "apple-lib-utmp";
+      dontUnpack = true;
+
+      installPhase = ''
+        mkdir -p $out/include
+        pushd $out/include >/dev/null
+        ln -s "${MacOSX-SDK}/include/utmp.h"
+        ln -s "${MacOSX-SDK}/include/utmpx.h"
+        popd >/dev/null
+      '';
+    };
+
+    sandbox = stdenv.mkDerivation {
+      name = "apple-lib-sandbox";
+
+      dontUnpack = true;
+      dontBuild = true;
+
+      installPhase = ''
+        mkdir -p $out/include $out/lib
+        ln -s "${MacOSX-SDK}/usr/include/sandbox.h" $out/include/sandbox.h
+        cp "${MacOSX-SDK}/usr/lib/libsandbox.1.tbd" $out/lib
+        ln -s libsandbox.1.tbd $out/lib/libsandbox.tbd
+      '';
+    };
+
+    libDER = stdenv.mkDerivation {
+      name = "apple-lib-libDER";
+      dontUnpack = true;
+      installPhase = ''
+        mkdir -p $out/include
+        cp -r ${MacOSX-SDK}/usr/include/libDER $out/include
+      '';
+    };
+  };
+
+  overrides = super: {
+    CoreFoundation = lib.overrideDerivation super.CoreFoundation (drv: {
+      setupHook = ./cf-setup-hook.sh;
+    });
+
+    # This framework doesn't exist in newer SDKs (somewhere around 10.13), but
+    # there are references to it in nixpkgs.
+    QuickTime = throw "QuickTime framework not available";
+  };
+
+  bareFrameworks = (
+    lib.mapAttrs framework (import ./frameworks.nix {
+      inherit frameworks libs;
+      inherit (pkgs.darwin) libobjc Libsystem;
+      inherit (pkgs.darwin.apple_sdk) libnetwork;
+    })
+  ) // (
+    lib.mapAttrs privateFramework (import ./private-frameworks.nix {
+      inherit frameworks;
+    })
+  );
+
+  frameworks = bareFrameworks // overrides bareFrameworks;
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh
new file mode 100644
index 000000000000..3b08c51d196e
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh
@@ -0,0 +1,6 @@
+forceLinkCoreFoundationFramework() {
+  NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks${NIX_CFLAGS_COMPILE:+ }${NIX_CFLAGS_COMPILE-}"
+  NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation"
+}
+
+preConfigureHooks+=(forceLinkCoreFoundationFramework)
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix
new file mode 100644
index 000000000000..44b119e1a23e
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix
@@ -0,0 +1,58 @@
+{ stdenvNoCC, fetchurl, newScope, pkgs
+, xar, cpio, python3, pbzx }:
+
+let
+  MacOSX-SDK = stdenvNoCC.mkDerivation rec {
+    pname = "MacOSX-SDK";
+    version = "11.0.0";
+
+    # https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
+    src = fetchurl {
+      url = "http://swcdn.apple.com/content/downloads/46/21/001-89745-A_56FM390IW5/v1um2qppgfdnam2e9cdqcqu2r6k8aa3lis/CLTools_macOSNMOS_SDK.pkg";
+      sha256 = "0n425smj4q1vxbza8fzwnk323fyzbbq866q32w288c44hl5yhwsf";
+    };
+
+    dontBuild = true;
+    darwinDontCodeSign = true;
+
+    nativeBuildInputs = [ cpio pbzx ];
+
+    outputs = [ "out" ];
+
+    unpackPhase = ''
+      pbzx $src | cpio -idm
+    '';
+
+    installPhase = ''
+      cd Library/Developer/CommandLineTools/SDKs/MacOSX11.1.sdk
+
+      mkdir $out
+      cp -r System usr $out/
+    '';
+
+    passthru = {
+      inherit version;
+    };
+  };
+
+  callPackage = newScope (packages // pkgs.darwin // { inherit MacOSX-SDK; });
+
+  packages = {
+    inherit (callPackage ./apple_sdk.nix {}) frameworks libs;
+
+    # TODO: this is nice to be private. is it worth the callPackage above?
+    # Probably, I don't think that callPackage costs much at all.
+    inherit MacOSX-SDK;
+
+    Libsystem = callPackage ./libSystem.nix {};
+    LibsystemCross = pkgs.darwin.Libsystem;
+    libcharset = callPackage ./libcharset.nix {};
+    libunwind = callPackage ./libunwind.nix {};
+    libnetwork = callPackage ./libnetwork.nix {};
+    objc4 = callPackage ./libobjc.nix {};
+
+    # questionable aliases
+    configd = pkgs.darwin.apple_sdk.frameworks.SystemConfiguration;
+    IOKit = pkgs.darwin.apple_sdk.frameworks.IOKit;
+  };
+in packages
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix
new file mode 100644
index 000000000000..c8f8ccc4a081
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix
@@ -0,0 +1,193 @@
+{ frameworks, libs, libobjc, Libsystem, libnetwork }: with frameworks; with libs;
+{
+  AGL                              = { inherit Carbon OpenGL; };
+  AVFoundation                     = { inherit ApplicationServices AVFCapture AVFCore CoreGraphics; };
+  AVKit                            = {};
+  Accelerate                       = { inherit CoreWLAN IOBluetooth; };
+  Accessibility                    = {};
+  Accounts                         = {};
+  AdSupport                        = {};
+  AddressBook                      = { inherit AddressBookCore Carbon ContactsPersistence libobjc; };
+  AppKit                           = { inherit ApplicationServices AudioToolbox AudioUnit Foundation QuartzCore UIFoundation; };
+  AppTrackingTransparency          = {};
+  AppleScriptKit                   = {};
+  AppleScriptObjC                  = {};
+  ApplicationServices              = { inherit ColorSync CoreGraphics CoreServices CoreText ImageIO; };
+  AudioToolbox                     = { inherit AudioToolboxCore CoreAudio CoreMIDI; };
+  AudioUnit                        = { inherit AudioToolbox Carbon CoreAudio; };
+  AudioVideoBridging               = { inherit Foundation; };
+  AuthenticationServices           = {};
+  AutomaticAssessmentConfiguration = {};
+  Automator                        = {};
+  BackgroundTasks                  = {};
+  BusinessChat                     = {};
+  CFNetwork                        = {};
+  CalendarStore                    = {};
+  CallKit                          = {};
+  Carbon                           = { inherit ApplicationServices CoreServices Foundation IOKit QuartzCore Security libobjc; };
+  ClassKit                         = {};
+  CloudKit                         = { inherit CoreLocation; };
+  Cocoa                            = { inherit AppKit CoreData; };
+  Collaboration                    = {};
+  ColorSync                        = {};
+  Combine                          = {};
+  Contacts                         = {};
+  ContactsUI                       = {};
+  CoreAudio                        = { inherit IOKit CoreAudioTypes; };
+  CoreAudioKit                     = { inherit AudioUnit; };
+  CoreAudioTypes                   = {};
+  CoreBluetooth                    = {};
+  CoreData                         = { inherit CloudKit; };
+  CoreDisplay                      = {};
+  CoreFoundation                   = { inherit libobjc; };
+  CoreGraphics                     = { inherit Accelerate IOKit IOSurface SystemConfiguration; };
+  CoreHaptics                      = {};
+  CoreImage                        = {};
+  CoreLocation                     = {};
+  CoreMIDI                         = {};
+  CoreMIDIServer                   = { inherit CoreMIDI; };
+  CoreML                           = {};
+  CoreMedia                        = { inherit ApplicationServices AudioToolbox AudioUnit CoreAudio CoreGraphics CoreVideo; };
+  CoreMediaIO                      = { inherit CoreMedia; };
+  CoreMotion                       = {};
+  CoreServices                     = { inherit CFNetwork CoreAudio CoreData CoreFoundation DiskArbitration NetFS OpenDirectory Security ServiceManagement; };
+  CoreSpotlight                    = {};
+  CoreTelephony                    = {};
+  CoreText                         = { inherit CoreGraphics; };
+  CoreVideo                        = { inherit ApplicationServices CoreGraphics IOSurface OpenGL; };
+  CoreWLAN                         = { inherit SecurityFoundation; };
+  CryptoKit                        = {};
+  CryptoTokenKit                   = {};
+  DVDPlayback                      = {};
+  DeveloperToolsSupport            = {};
+  DeviceCheck                      = {};
+  DirectoryService                 = {};
+  DiscRecording                    = { inherit CoreServices IOKit libobjc; };
+  DiscRecordingUI                  = {};
+  DiskArbitration                  = { inherit IOKit; };
+  DriverKit                        = {};
+  EventKit                         = {};
+  ExceptionHandling                = {};
+  ExecutionPolicy                  = {};
+  ExternalAccessory                = {};
+  FWAUserLib                       = {};
+  FileProvider                     = {};
+  FileProviderUI                   = {};
+  FinderSync                       = {};
+  ForceFeedback                    = { inherit IOKit; };
+  Foundation                       = { inherit ApplicationServices CoreFoundation Security SystemConfiguration libobjc; };
+  GLKit                            = {};
+  GLUT                             = { inherit OpenGL; };
+  GSS                              = {};
+  GameController                   = {};
+  GameKit                          = { inherit Cocoa Foundation GameCenterFoundation GameCenterUI GameCenterUICore GameController GameplayKit Metal MetalKit ModelIO ReplayKit SceneKit SpriteKit; };
+  GameplayKit                      = {};
+  HIDDriverKit                     = {};
+  Hypervisor                       = {};
+  ICADevices                       = { inherit Carbon IOBluetooth libobjc; };
+  IMServicePlugIn                  = {};
+  IOBluetooth                      = { inherit CoreBluetooth IOKit; };
+  IOBluetoothUI                    = { inherit IOBluetooth; };
+  IOKit                            = {};
+  IOSurface                        = { inherit IOKit xpc; };
+  IOUSBHost                        = {};
+  IdentityLookup                   = {};
+  ImageCaptureCore                 = {};
+  ImageIO                          = { inherit CoreGraphics; };
+  InputMethodKit                   = { inherit Carbon; };
+  InstallerPlugins                 = {};
+  InstantMessage                   = {};
+  Intents                          = {};
+  JavaNativeFoundation             = {};
+  JavaRuntimeSupport               = {};
+  JavaScriptCore                   = { inherit libobjc; };
+  Kerberos                         = {};
+  Kernel                           = { inherit IOKit; };
+  KernelManagement                 = {};
+  LDAP                             = {};
+  LatentSemanticMapping            = { inherit Carbon; };
+  LinkPresentation                 = { inherit URLFormatting; };
+  LocalAuthentication              = {};
+  MLCompute                        = {};
+  MapKit                           = {};
+  MediaAccessibility               = { inherit CoreGraphics CoreText QuartzCore; };
+  MediaLibrary                     = {};
+  MediaPlayer                      = {};
+  MediaToolbox                     = { inherit AudioToolbox AudioUnit CoreMedia; };
+  Message                          = {};
+  Metal                            = {};
+  MetalKit                         = { inherit Metal ModelIO; };
+  MetalPerformanceShaders          = {};
+  MetalPerformanceShadersGraph     = {};
+  MetricKit                        = { inherit SignpostMetrics; };
+  ModelIO                          = {};
+  MultipeerConnectivity            = {};
+  NaturalLanguage                  = {};
+  NearbyInteraction                = {};
+  NetFS                            = {};
+  Network                          = { inherit libnetwork; };
+  NetworkExtension                 = { inherit Network; };
+  NetworkingDriverKit              = {};
+  NotificationCenter               = {};
+  OSAKit                           = { inherit Carbon; };
+  OSLog                            = {};
+  OpenAL                           = {};
+  OpenCL                           = { inherit IOSurface OpenGL; };
+  OpenDirectory                    = {};
+  OpenGL                           = {};
+  PCIDriverKit                     = {};
+  PCSC                             = { inherit CoreData; };
+  PDFKit                           = {};
+  ParavirtualizedGraphics          = {};
+  PassKit                          = { inherit PassKitCore; };
+  PencilKit                        = {};
+  Photos                           = {};
+  PhotosUI                         = {};
+  PreferencePanes                  = {};
+  PushKit                          = {};
+  Python                           = {};
+  QTKit                            = { inherit CoreMedia CoreMediaIO MediaToolbox VideoToolbox; };
+  Quartz                           = { inherit QTKit QuartzCore QuickLook PDFKit; };
+  QuartzCore                       = { inherit ApplicationServices CoreImage CoreVideo Metal OpenCL libobjc; };
+  QuickLook                        = { inherit ApplicationServices; };
+  QuickLookThumbnailing            = {};
+  RealityKit                       = {};
+  ReplayKit                        = {};
+  Ruby                             = {};
+  SafariServices                   = {};
+  SceneKit                         = {};
+  ScreenSaver                      = {};
+  ScreenTime                       = {};
+  ScriptingBridge                  = {};
+  Security                         = { inherit IOKit libDER; };
+  SecurityFoundation               = { inherit Security; };
+  SecurityInterface                = { inherit Security SecurityFoundation; };
+  SensorKit                        = {};
+  ServiceManagement                = { inherit Security; };
+  Social                           = {};
+  SoundAnalysis                    = {};
+  Speech                           = {};
+  SpriteKit                        = {};
+  StoreKit                         = {};
+  SwiftUI                          = {};
+  SyncServices                     = {};
+  System                           = {};
+  SystemConfiguration              = { inherit Security; };
+  SystemExtensions                 = {};
+  TWAIN                            = { inherit Carbon; };
+  Tcl                              = {};
+  Tk                               = {};
+  USBDriverKit                     = {};
+  UniformTypeIdentifiers           = {};
+  UserNotifications                = {};
+  UserNotificationsUI              = {};
+  VideoDecodeAcceleration          = { inherit CoreVideo; };
+  VideoSubscriberAccount           = {};
+  VideoToolbox                     = { inherit CoreMedia CoreVideo; };
+  Virtualization                   = {};
+  Vision                           = {};
+  WebKit                           = { inherit ApplicationServices Carbon JavaScriptCore OpenGL libobjc; };
+  WidgetKit                        = {};
+  iTunesLibrary                    = {};
+  vmnet                            = {};
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libSystem.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libSystem.nix
new file mode 100644
index 000000000000..f04b964f755f
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libSystem.nix
@@ -0,0 +1,78 @@
+{ stdenvNoCC, buildPackages, MacOSX-SDK }:
+
+stdenvNoCC.mkDerivation {
+  pname = "libSystem";
+  version = MacOSX-SDK.version;
+
+  dontBuild = true;
+  dontUnpack = true;
+
+  nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ];
+
+  includeDirs = [
+    "CommonCrypto" "_types" "architecture" "arpa" "atm" "bank" "bsd" "bsm"
+    "corecrypto" "corpses" "default_pager" "device" "dispatch" "hfs" "i386"
+    "iokit" "kern" "libkern" "mach" "mach-o" "mach_debug" "machine" "malloc"
+    "miscfs" "net" "netinet" "netinet6" "netkey" "nfs" "os" "osfmk" "pexpert"
+    "platform" "protocols" "pthread" "rpc" "rpcsvc" "secure" "security"
+    "servers" "sys" "uuid" "vfs" "voucher" "xlocale"
+  ] ++ [
+    "arm" "xpc" "arm64"
+  ];
+
+  csu = [
+    "bundle1.o" "crt0.o" "crt1.10.5.o" "crt1.10.6.o" "crt1.o" "dylib1.10.5.o"
+    "dylib1.o" "gcrt1.o" "lazydylib1.o"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/{include,lib}
+
+    for dir in $includeDirs; do
+      from=${MacOSX-SDK}/usr/include/$dir
+      if [ -e "$from" ]; then
+        cp -dr $from $out/include
+      else
+        echo "Header directory '$from' doesn't exist: skipping"
+      fi
+    done
+
+    cp -d \
+      ${MacOSX-SDK}/usr/include/*.h \
+      $out/include
+
+    rm $out/include/tk*.h $out/include/tcl*.h
+
+    cp -dr \
+      ${MacOSX-SDK}/usr/lib/libSystem.* \
+      ${MacOSX-SDK}/usr/lib/system \
+      $out/lib
+
+    # Extra libraries
+    for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.1 resolv; do
+      cp -d \
+        ${MacOSX-SDK}/usr/lib/lib$name.tbd \
+        ${MacOSX-SDK}/usr/lib/lib$name.*.tbd \
+        $out/lib
+    done
+
+    for f in $csu; do
+      from=${MacOSX-SDK}/usr/lib/$f
+      if [ -e "$from" ]; then
+        cp -d $from $out/lib
+      else
+        echo "Csu file '$from' doesn't exist: skipping"
+      fi
+    done
+
+    chmod u+w -R $out/lib
+    find $out -name '*.tbd' -type f | while read tbd; do
+      rewrite-tbd \
+        -c /usr/lib/libsystem.dylib:$out/lib/libsystem.dylib \
+        -p /usr/lib/system/:$out/lib/system/ \
+        -r ${builtins.storeDir} \
+        "$tbd"
+    done
+  '';
+}
+
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libcharset.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libcharset.nix
new file mode 100644
index 000000000000..bf55037ab605
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libcharset.nix
@@ -0,0 +1,16 @@
+{ stdenvNoCC, buildPackages, MacOSX-SDK }:
+
+stdenvNoCC.mkDerivation {
+  pname = "libcharset";
+  version = MacOSX-SDK.version;
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ buildPackages.darwin.checkReexportsHook ];
+
+  installPhase = ''
+    mkdir -p $out/{include,lib}
+    cp ${MacOSX-SDK}/usr/lib/libcharset* $out/lib
+  '';
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libnetwork.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libnetwork.nix
new file mode 100644
index 000000000000..2e5c0593bf40
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libnetwork.nix
@@ -0,0 +1,20 @@
+{ stdenvNoCC, buildPackages, MacOSX-SDK }:
+
+let self = stdenvNoCC.mkDerivation {
+  pname = "libnetwork";
+  version = MacOSX-SDK.version;
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp ${MacOSX-SDK}/usr/lib/libnetwork* $out/lib
+  '';
+
+  passthru = {
+    tbdRewrites = {
+      const."/usr/lib/libnetwork.dylib" = "${self}/lib/libnetwork.dylib";
+    };
+  };
+}; in self
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libobjc.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libobjc.nix
new file mode 100644
index 000000000000..63ef2a1c263e
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libobjc.nix
@@ -0,0 +1,21 @@
+{ stdenvNoCC, MacOSX-SDK, libcharset }:
+
+let self = stdenvNoCC.mkDerivation {
+  pname = "libobjc";
+  version = MacOSX-SDK.version;
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/{include,lib}
+    cp -r ${MacOSX-SDK}/usr/include/objc $out/include
+    cp ${MacOSX-SDK}/usr/lib/libobjc* $out/lib
+  '';
+
+  passthru = {
+    tbdRewrites = {
+      const."/usr/lib/libobjc.A.dylib" = "${self}/lib/libobjc.A.dylib";
+    };
+  };
+}; in self
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libunwind.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libunwind.nix
new file mode 100644
index 000000000000..885780eba75c
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/libunwind.nix
@@ -0,0 +1,24 @@
+{ stdenvNoCC, buildPackages, MacOSX-SDK }:
+
+stdenvNoCC.mkDerivation {
+  pname = "libunwind";
+  version = MacOSX-SDK.version;
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ buildPackages.darwin.checkReexportsHook ];
+
+  installPhase = ''
+    mkdir -p $out/include/mach-o
+
+    cp \
+      ${MacOSX-SDK}/usr/include/libunwind.h \
+      ${MacOSX-SDK}/usr/include/unwind.h \
+      $out/include
+
+    cp \
+      ${MacOSX-SDK}/usr/include/mach-o/compact_unwind_encoding.h \
+      $out/include/mach-o
+  '';
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/private-frameworks.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/private-frameworks.nix
new file mode 100644
index 000000000000..bb4300d623a4
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk-11.0/private-frameworks.nix
@@ -0,0 +1,18 @@
+{ frameworks }: with frameworks;
+# generated by hand to avoid exposing all private frameworks
+# frameworks here are only the necessary ones used by public frameworks.
+{
+  AVFCapture = {};
+  AVFCore = {};
+  AddressBookCore = { inherit ContactsPersistence; };
+  AudioToolboxCore = {};
+  ContactsPersistence = {};
+  UIFoundation = {};
+  GameCenterFoundation = {};
+  GameCenterUI = {};
+  GameCenterUICore = {};
+  URLFormatting = {};
+  SignpostMetrics = {};
+  PassKitCore = {};
+  SkyLight = {};
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix
index b88107f992c9..1b60abf562b8 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-sdk/default.nix
@@ -192,6 +192,20 @@ let
       mkdir -p $out/Library/Frameworks/
       cp -r ${darwin-stubs}/System/Library/${lib.optionalString private "Private"}Frameworks/${name}.framework \
         $out/Library/Frameworks
+
+      cd $out/Library/Frameworks/${name}.framework
+
+      versions=(./Versions/*)
+      if [ "''${#versions[@]}" != 1 ]; then
+        echo "Unable to determine current version of framework ${name}"
+        exit 1
+      fi
+      current=$(basename ''${versions[0]})
+
+      chmod u+w -R .
+      ln -s "$current" Versions/Current
+      ln -s Versions/Current/* .
+
       # NOTE there's no re-export checking here, this is probably wrong
     '';
   };
@@ -312,7 +326,7 @@ in rec {
         "Versions/A/Frameworks/WebKitLegacy.framework/Versions/A/WebKitLegacy.tbd"
       ];
     });
-  } // lib.genAttrs [ "ContactsPersistence" "UIFoundation" "GameCenter" ] (x: tbdOnlyFramework x {});
+  } // lib.genAttrs [ "ContactsPersistence" "GameCenter" "SkyLight" "UIFoundation" ] (x: tbdOnlyFramework x {});
 
   bareFrameworks = lib.mapAttrs framework (import ./frameworks.nix {
     inherit frameworks libs;
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix
index b53c5985a21c..25e1df3773db 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CarbonHeaders/default.nix
@@ -1,6 +1,6 @@
-{ lib, appleDerivation }:
+{ lib, appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   dontBuild = true;
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix
index 476a77c59d7f..36013fe307ce 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/CommonCrypto/default.nix
@@ -1,6 +1,6 @@
-{ lib, appleDerivation }:
+{ lib, appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     mkdir -p $out/include/CommonCrypto
     cp include/* $out/include/CommonCrypto
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix
index e3b3179d4a3b..ac09a282f512 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Csu/default.nix
@@ -1,13 +1,14 @@
-{ lib, appleDerivation }:
+{ lib, appleDerivation', stdenv }:
+
+appleDerivation' stdenv {
 
-appleDerivation {
   prePatch = ''
     substituteInPlace Makefile \
       --replace /usr/lib /lib \
       --replace /usr/local/lib /lib \
       --replace /usr/bin "" \
       --replace /bin/ "" \
-      --replace "CC = " "CC = cc #" \
+      --replace "CC = " "#" \
       --replace "SDK_DIR = " "SDK_DIR = . #" \
 
     # Mac OS didn't support rpaths back before 10.5, but we don't care about it.
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
index 032b1447463d..cdebfe6d2f72 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ICU/default.nix
@@ -1,8 +1,20 @@
-{ appleDerivation, python3 }:
+{ appleDerivation, lib, stdenv, buildPackages, python3 }:
+
+let
+  formatVersionNumeric = version:
+    let
+      versionParts = lib.versions.splitVersion version;
+      major = lib.toInt (lib.elemAt versionParts 0);
+      minor = lib.toInt (lib.elemAt versionParts 1);
+      patch = if lib.length versionParts > 2 then lib.toInt (lib.elemAt versionParts 2) else 0;
+    in toString (major * 10000 + minor * 100 + patch);
+in
 
 appleDerivation {
   nativeBuildInputs = [ python3 ];
 
+  depsBuildBuild = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.stdenv.cc ];
+
   postPatch = ''
     substituteInPlace makefile \
       --replace "/usr/bin/" "" \
@@ -26,6 +38,13 @@ appleDerivation {
       --replace "&TestMailFilterCSS" "NULL"
 
     patchShebangs icuSources
+  '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+
+    # This looks like a bug in the makefile. It defines ENV_BUILDHOST to
+    # propagate the correct value of CC, CXX, etc, but has the following double
+    # expansion that results in the empty string.
+    substituteInPlace makefile \
+      --replace '$($(ENV_BUILDHOST))' '$(ENV_BUILDHOST)'
   '';
 
   # APPLE is using makefile to save its default configuration and call ./configure, so we hack makeFlags
@@ -40,10 +59,21 @@ appleDerivation {
 
     "DATA_INSTALL_DIR=/share/icu/"
     "DATA_LOOKUP_DIR=$(DSTROOT)$(DATA_INSTALL_DIR)"
-
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # darwin* platform properties are only defined on darwin
     # hack to use our lower macos version
-    "MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_MIN_REQUIRED"
-    "OSX_HOST_VERSION_MIN_STRING=$(MACOSX_DEPLOYMENT_TARGET)"
+    "MAC_OS_X_VERSION_MIN_REQUIRED=${formatVersionNumeric stdenv.hostPlatform.darwinMinVersion}"
+    "ICU_TARGET_VERSION=-m${stdenv.hostPlatform.darwinPlatform}-version-min=${stdenv.hostPlatform.darwinMinVersion}"
+  ]
+  ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "CROSS_BUILD=YES"
+    "BUILD_TYPE="
+    "RC_ARCHS=${stdenv.hostPlatform.darwinArch}"
+    "HOSTCC=cc"
+    "HOSTCXX=c++"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+    "HOSTISYSROOT="
+    "OSX_HOST_VERSION_MIN_STRING=${stdenv.buildPlatform.darwinMinVersion}"
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix
index 0ba61ccb4915..085d223bd04d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/IOKit/default.nix
@@ -1,7 +1,7 @@
-{ lib, appleDerivation, IOKitSrcs, xnu, darwin-stubs }:
+{ lib, appleDerivation', stdenv, IOKitSrcs, xnu, darwin-stubs }:
 
 # Someday it'll make sense to split these out into their own packages, but today is not that day.
-appleDerivation {
+appleDerivation' stdenv {
   srcs = lib.attrValues IOKitSrcs;
   sourceRoot = ".";
 
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix
index 29aa3d64cb08..c9202b536583 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/825_40_1.nix
@@ -1,6 +1,6 @@
-{ appleDerivation, ed, unifdef }:
+{ appleDerivation', stdenvNoCC, ed, unifdef }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   nativeBuildInputs = [ ed unifdef ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
index 3554a2e15b07..9bec0b103c9d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation, ed, unifdef, Libc_old, Libc_10-9 }:
+{ appleDerivation', stdenvNoCC, ed, unifdef, Libc_old, Libc_10-9 }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   nativeBuildInputs = [ ed unifdef ];
 
   # TODO: asl.h actually comes from syslog project now
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix
index 5481ae74d38d..789e536b8a7f 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libinfo/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     substituteInPlace xcodescripts/install_files.sh \
       --replace "/usr/local/" "/" \
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix
index df5f6b7b8fd6..6e6712f375e6 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libm/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     mkdir -p $out/include
 
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix
index 2ee80d702646..969e64427c9b 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libnotify/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     mkdir -p $out/include
     cp notify.h      $out/include
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
index 2c98dd35e39d..cb85566b5128 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
@@ -1,9 +1,13 @@
-{ lib, appleDerivation, cpio, xnu, Libc, Libm, libdispatch, cctools, Libinfo
+{ lib, stdenv, buildPackages
+, appleDerivation', cpio, xnu, Libc, Libm, libdispatch, Libinfo
 , dyld, Csu, architecture, libclosure, CarbonHeaders, ncurses, CommonCrypto
-, copyfile, removefile, libresolv, Libnotify, libplatform, libpthread
-, mDNSResponder, launchd, libutil, hfs, darling, darwin-stubs }:
+, copyfile, removefile, libresolvHeaders, libresolv, Libnotify, libplatform, libpthread
+, mDNSResponder, launchd, libutilHeaders, hfsHeaders, darling, darwin-stubs
+, headersOnly ? false
+, withLibresolv ? !headersOnly
+}:
 
-appleDerivation {
+appleDerivation' stdenv {
   dontBuild = true;
   dontFixup = true;
 
@@ -21,13 +25,13 @@ appleDerivation {
 
     for dep in ${Libc} ${Libm} ${Libinfo} ${dyld} ${architecture} \
                ${libclosure} ${CarbonHeaders} ${libdispatch} ${ncurses.dev} \
-               ${CommonCrypto} ${copyfile} ${removefile} ${libresolv} \
+               ${CommonCrypto} ${copyfile} ${removefile} ${libresolvHeaders} \
                ${Libnotify} ${libplatform} ${mDNSResponder} ${launchd} \
-               ${libutil} ${libpthread} ${hfs}; do
+               ${libutilHeaders} ${libpthread} ${hfsHeaders}; do
       (cd $dep/include && find . -name '*.h' | cpio -pdm $out/include)
     done
 
-    (cd ${cctools.dev}/include/mach-o && find . -name '*.h' | cpio -pdm $out/include/mach-o)
+    (cd ${buildPackages.darwin.cctools.dev}/include/mach-o && find . -name '*.h' | cpio -pdm $out/include/mach-o)
 
     mkdir -p $out/include/os
 
@@ -84,6 +88,7 @@ appleDerivation {
     #define TARGET_RT_64_BIT        1
     #endif  /* __TARGETCONDITIONALS__ */
     EOF
+  '' + lib.optionalString (!headersOnly) ''
 
     # The startup object files
     cp ${Csu}/lib/* $out/lib
@@ -101,14 +106,15 @@ appleDerivation {
     for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.10.4 gcc_s.10.5; do
       ln -s libSystem.tbd $out/lib/lib$name.tbd
     done
+  '' + lib.optionalString withLibresolv ''
 
     # This probably doesn't belong here, but we want to stay similar to glibc, which includes resolv internally...
     cp ${libresolv}/lib/libresolv.9.dylib $out/lib/libresolv.9.dylib
-    resolv_libSystem=$(otool -L "$out/lib/libresolv.9.dylib" | tail -n +3 | grep -o "$NIX_STORE.*-\S*") || true
+    resolv_libSystem=$(${stdenv.cc.bintools.targetPrefix}otool -L "$out/lib/libresolv.9.dylib" | tail -n +3 | grep -o "$NIX_STORE.*-\S*") || true
     echo $libs
 
     chmod +w $out/lib/libresolv.9.dylib
-    install_name_tool \
+    ${stdenv.cc.bintools.targetPrefix}install_name_tool \
       -id $out/lib/libresolv.9.dylib \
       -change "$resolv_libSystem" /usr/lib/libSystem.dylib \
       $out/lib/libresolv.9.dylib
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix
index b819057f0c1a..bb09adce252e 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/Security/boot.nix
@@ -1,6 +1,6 @@
-{ appleDerivation, darwin-stubs }:
+{ appleDerivation', stdenv, darwin-stubs }:
 
-appleDerivation {
+appleDerivation' stdenv {
   phases = [ "unpackPhase" "installPhase" ];
 
   __propagatedImpureHostDeps = [
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix
index b4c28e23c142..2ca2d061591a 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/adv_cmds/boot.nix
@@ -1,4 +1,4 @@
-{ lib, appleDerivation, fetchzip, bsdmake, perl, flex, bison
+{ lib, stdenv, buildPackages, appleDerivation, fetchzip, bsdmake, perl, flex, bison
 }:
 
 # this derivation sucks
@@ -16,6 +16,7 @@ let recentAdvCmds = fetchzip {
 };
 
 in appleDerivation {
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ bsdmake perl bison flex ];
   buildInputs = [ flex ];
 
@@ -61,7 +62,7 @@ in appleDerivation {
 
     bsdmake -C usr-share-locale.tproj
 
-    clang ${recentAdvCmds}/ps/*.c -o ps
+    ${stdenv.cc.targetPrefix}clang ${recentAdvCmds}/ps/*.c -o ps
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix
index 74327bc4c428..e0e27255b72f 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/architecture/default.nix
@@ -1,6 +1,6 @@
-{ lib, appleDerivation }:
+{ lib, appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   dontBuild = true;
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
index 800da92dae9d..ff98ed88804c 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/bootstrap_cmds/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, appleDerivation, bison, flex }:
+{ lib, appleDerivation, stdenv, bison, flex }:
+
+let
+
+  # Hard to get CC to pull this off without infinite recursion
+  targetTargetPrefix = lib.optionalString
+    (with stdenv; hostPlatform != targetPlatform)
+    (stdenv.targetPlatform.config + "-");
+
+in
 
 appleDerivation {
   nativeBuildInputs = [ bison flex ];
@@ -12,7 +21,7 @@ appleDerivation {
     yacc -d parser.y
     flex --header-file=lexxer.yy.h -o lexxer.yy.c lexxer.l
 
-    cc -std=gnu99 -Os -dead_strip -DMIG_VERSION=\"$pname-$version\" -I. -o migcom *.c
+    $CC -std=gnu99 -Os -dead_strip -DMIG_VERSION=\"$pname-$version\" -I. -o migcom *.c
   '';
 
   installPhase = ''
@@ -29,6 +38,6 @@ appleDerivation {
       --replace 'arch=`/usr/bin/arch`' 'arch=${stdenv.targetPlatform.darwinArch}' \
       --replace '/usr/bin/' "" \
       --replace '/bin/rmdir' "rmdir" \
-      --replace 'C=''${MIGCC}' "C=cc"
+      --replace 'C=''${MIGCC}' "C=${targetTargetPrefix}cc"
   '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix
index 20168d24dd71..879d3a7b5f79 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, appleDerivation, launchd, bootstrap_cmds, xnu, ppp, IOKit, eap8021x, Security }:
+{ stdenv, appleDerivation', launchd, bootstrap_cmds, xnu, ppp, IOKit, eap8021x, Security }:
 
-appleDerivation {
+appleDerivation' stdenv {
   meta.broken = stdenv.cc.nativeLibc;
 
   nativeBuildInputs = [ bootstrap_cmds ];
@@ -127,78 +127,78 @@ appleDerivation {
     mig -arch x86_64 -header derived/helper.h          -user derived/helperUser.c          -sheader /dev/null -server /dev/null helper/helper.defs
     mig -arch x86_64 -header derived/pppcontroller.h   -user derived/pppcontrollerUser.c   -sheader /dev/null -server /dev/null pppcontroller.defs
 
-    cc -I. -Ihelper -Iderived -F. -c SCSchemaDefinitions.c -o SCSchemaDefinitions.o
-    cc -I. -Ihelper -Iderived -F. -c SCD.c -o SCD.o
-    cc -I. -Ihelper -Iderived -F. -c SCDKeys.c -o SCDKeys.o
-    cc -I. -Ihelper -Iderived -F. -c SCDPrivate.c -o SCDPrivate.o
-    cc -I. -Ihelper -Iderived -F. -c SCDPlugin.c -o SCDPlugin.o
-    cc -I. -Ihelper -Iderived -F. -c CaptiveNetwork.c -o CaptiveNetwork.o
-    cc -I. -Ihelper -Iderived -F. -c SCDOpen.c -o SCDOpen.o
-    cc -I. -Ihelper -Iderived -F. -c SCDList.c -o SCDList.o
-    cc -I. -Ihelper -Iderived -F. -c SCDAdd.c -o SCDAdd.o
-    cc -I. -Ihelper -Iderived -F. -c SCDGet.c -o SCDGet.o
-    cc -I. -Ihelper -Iderived -F. -c SCDSet.c -o SCDSet.o
-    cc -I. -Ihelper -Iderived -F. -c SCDRemove.c -o SCDRemove.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotify.c -o SCDNotify.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierSetKeys.c -o SCDNotifierSetKeys.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierAdd.c -o SCDNotifierAdd.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierRemove.c -o SCDNotifierRemove.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierGetChanges.c -o SCDNotifierGetChanges.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierWait.c -o SCDNotifierWait.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaCallback.c -o SCDNotifierInformViaCallback.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaFD.c -o SCDNotifierInformViaFD.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaSignal.c -o SCDNotifierInformViaSignal.o
-    cc -I. -Ihelper -Iderived -F. -c SCDNotifierCancel.c -o SCDNotifierCancel.o
-    cc -I. -Ihelper -Iderived -F. -c SCDSnapshot.c -o SCDSnapshot.o
-    cc -I. -Ihelper -Iderived -F. -c SCP.c -o SCP.o
-    cc -I. -Ihelper -Iderived -F. -c SCPOpen.c -o SCPOpen.o
-    cc -I. -Ihelper -Iderived -F. -c SCPLock.c -o SCPLock.o
-    cc -I. -Ihelper -Iderived -F. -c SCPUnlock.c -o SCPUnlock.o
-    cc -I. -Ihelper -Iderived -F. -c SCPList.c -o SCPList.o
-    cc -I. -Ihelper -Iderived -F. -c SCPGet.c -o SCPGet.o
-    cc -I. -Ihelper -Iderived -F. -c SCPAdd.c -o SCPAdd.o
-    cc -I. -Ihelper -Iderived -F. -c SCPSet.c -o SCPSet.o
-    cc -I. -Ihelper -Iderived -F. -c SCPRemove.c -o SCPRemove.o
-    cc -I. -Ihelper -Iderived -F. -c SCPCommit.c -o SCPCommit.o
-    cc -I. -Ihelper -Iderived -F. -c SCPApply.c -o SCPApply.o
-    cc -I. -Ihelper -Iderived -F. -c SCPPath.c -o SCPPath.o
-    cc -I. -Ihelper -Iderived -F. -c SCDConsoleUser.c -o SCDConsoleUser.o
-    cc -I. -Ihelper -Iderived -F. -c SCDHostName.c -o SCDHostName.o
-    cc -I. -Ihelper -Iderived -F. -c SCLocation.c -o SCLocation.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetwork.c -o SCNetwork.o
-    cc -I. -Ihelper -Iderived -F. -c derived/pppcontrollerUser.c -o pppcontrollerUser.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkConnection.c -o SCNetworkConnection.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkConnectionPrivate.c -o SCNetworkConnectionPrivate.o
-    cc -I. -Ihelper -Iderived -I../dnsinfo -F. -c SCNetworkReachability.c -o SCNetworkReachability.o
-    cc -I. -Ihelper -Iderived -F. -c SCProxies.c -o SCProxies.o
-    cc -I. -Ihelper -Iderived -F. -c DHCP.c -o DHCP.o
-    cc -I. -Ihelper -Iderived -F. -c moh.c -o moh.o
-    cc -I. -Ihelper -Iderived -F. -c DeviceOnHold.c -o DeviceOnHold.o
-    cc -I. -Ihelper -Iderived -I $HACK -F. -c LinkConfiguration.c -o LinkConfiguration.o
-    cc -I. -Ihelper -Iderived -F. -c dy_framework.c -o dy_framework.o
-    cc -I. -Ihelper -Iderived -I $HACK -F. -c VLANConfiguration.c -o VLANConfiguration.o
-    cc -I. -Ihelper -Iderived -F. -c derived/configUser.c -o configUser.o
-    cc -I. -Ihelper -Iderived -F. -c SCPreferencesPathKey.c -o SCPreferencesPathKey.o
-    cc -I. -Ihelper -Iderived -I../dnsinfo -F. -c derived/shared_dns_infoUser.c -o shared_dns_infoUser.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkConfigurationInternal.c -o SCNetworkConfigurationInternal.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkInterface.c -o SCNetworkInterface.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkProtocol.c -o SCNetworkProtocol.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkService.c -o SCNetworkService.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkSet.c -o SCNetworkSet.o
-    cc -I. -Ihelper -Iderived -I $HACK -F. -c BondConfiguration.c -o BondConfiguration.o
-    cc -I. -Ihelper -Iderived -I $HACK -F. -c BridgeConfiguration.c -o BridgeConfiguration.o
-    cc -I. -Ihelper -Iderived -F. -c helper/SCHelper_client.c -o SCHelper_client.o
-    cc -I. -Ihelper -Iderived -F. -c SCPreferencesKeychainPrivate.c -o SCPreferencesKeychainPrivate.o
-    cc -I. -Ihelper -Iderived -F. -c SCNetworkSignature.c -o SCNetworkSignature.o
-    cc -I. -Ihelper -Iderived -F. -c VPNPrivate.c -o VPNPrivate.o
-    cc -I. -Ihelper -Iderived -F. -c VPNConfiguration.c -o VPNConfiguration.o
-    cc -I. -Ihelper -Iderived -F. -c VPNTunnel.c -o VPNTunnel.o
-    cc -I. -Ihelper -Iderived -F. -c derived/helperUser.c -o helperUser.o
-    cc -I. -Ihelper -Iderived -F. -c reachability/SCNetworkReachabilityServer_client.c -o SCNetworkReachabilityServer_client.o
-    cc -I. -Ihelper -Iderived -F. -c reachability/rb.c -o rb.o
-    cc -I. -Ihelper -Iderived -F. -c derived/SystemConfiguration_vers.c -o SystemConfiguration_vers.o
-
-    cc -dynamiclib *.o -install_name $out/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration -dead_strip -framework CoreFoundation -single_module -o SystemConfiguration.framework/SystemConfiguration
+    $CC -I. -Ihelper -Iderived -F. -c SCSchemaDefinitions.c -o SCSchemaDefinitions.o
+    $CC -I. -Ihelper -Iderived -F. -c SCD.c -o SCD.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDKeys.c -o SCDKeys.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDPrivate.c -o SCDPrivate.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDPlugin.c -o SCDPlugin.o
+    $CC -I. -Ihelper -Iderived -F. -c CaptiveNetwork.c -o CaptiveNetwork.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDOpen.c -o SCDOpen.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDList.c -o SCDList.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDAdd.c -o SCDAdd.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDGet.c -o SCDGet.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDSet.c -o SCDSet.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDRemove.c -o SCDRemove.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotify.c -o SCDNotify.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierSetKeys.c -o SCDNotifierSetKeys.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierAdd.c -o SCDNotifierAdd.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierRemove.c -o SCDNotifierRemove.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierGetChanges.c -o SCDNotifierGetChanges.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierWait.c -o SCDNotifierWait.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaCallback.c -o SCDNotifierInformViaCallback.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaFD.c -o SCDNotifierInformViaFD.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierInformViaSignal.c -o SCDNotifierInformViaSignal.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDNotifierCancel.c -o SCDNotifierCancel.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDSnapshot.c -o SCDSnapshot.o
+    $CC -I. -Ihelper -Iderived -F. -c SCP.c -o SCP.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPOpen.c -o SCPOpen.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPLock.c -o SCPLock.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPUnlock.c -o SCPUnlock.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPList.c -o SCPList.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPGet.c -o SCPGet.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPAdd.c -o SCPAdd.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPSet.c -o SCPSet.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPRemove.c -o SCPRemove.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPCommit.c -o SCPCommit.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPApply.c -o SCPApply.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPPath.c -o SCPPath.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDConsoleUser.c -o SCDConsoleUser.o
+    $CC -I. -Ihelper -Iderived -F. -c SCDHostName.c -o SCDHostName.o
+    $CC -I. -Ihelper -Iderived -F. -c SCLocation.c -o SCLocation.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetwork.c -o SCNetwork.o
+    $CC -I. -Ihelper -Iderived -F. -c derived/pppcontrollerUser.c -o pppcontrollerUser.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkConnection.c -o SCNetworkConnection.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkConnectionPrivate.c -o SCNetworkConnectionPrivate.o
+    $CC -I. -Ihelper -Iderived -I../dnsinfo -F. -c SCNetworkReachability.c -o SCNetworkReachability.o
+    $CC -I. -Ihelper -Iderived -F. -c SCProxies.c -o SCProxies.o
+    $CC -I. -Ihelper -Iderived -F. -c DHCP.c -o DHCP.o
+    $CC -I. -Ihelper -Iderived -F. -c moh.c -o moh.o
+    $CC -I. -Ihelper -Iderived -F. -c DeviceOnHold.c -o DeviceOnHold.o
+    $CC -I. -Ihelper -Iderived -I $HACK -F. -c LinkConfiguration.c -o LinkConfiguration.o
+    $CC -I. -Ihelper -Iderived -F. -c dy_framework.c -o dy_framework.o
+    $CC -I. -Ihelper -Iderived -I $HACK -F. -c VLANConfiguration.c -o VLANConfiguration.o
+    $CC -I. -Ihelper -Iderived -F. -c derived/configUser.c -o configUser.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPreferencesPathKey.c -o SCPreferencesPathKey.o
+    $CC -I. -Ihelper -Iderived -I../dnsinfo -F. -c derived/shared_dns_infoUser.c -o shared_dns_infoUser.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkConfigurationInternal.c -o SCNetworkConfigurationInternal.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkInterface.c -o SCNetworkInterface.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkProtocol.c -o SCNetworkProtocol.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkService.c -o SCNetworkService.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkSet.c -o SCNetworkSet.o
+    $CC -I. -Ihelper -Iderived -I $HACK -F. -c BondConfiguration.c -o BondConfiguration.o
+    $CC -I. -Ihelper -Iderived -I $HACK -F. -c BridgeConfiguration.c -o BridgeConfiguration.o
+    $CC -I. -Ihelper -Iderived -F. -c helper/SCHelper_client.c -o SCHelper_client.o
+    $CC -I. -Ihelper -Iderived -F. -c SCPreferencesKeychainPrivate.c -o SCPreferencesKeychainPrivate.o
+    $CC -I. -Ihelper -Iderived -F. -c SCNetworkSignature.c -o SCNetworkSignature.o
+    $CC -I. -Ihelper -Iderived -F. -c VPNPrivate.c -o VPNPrivate.o
+    $CC -I. -Ihelper -Iderived -F. -c VPNConfiguration.c -o VPNConfiguration.o
+    $CC -I. -Ihelper -Iderived -F. -c VPNTunnel.c -o VPNTunnel.o
+    $CC -I. -Ihelper -Iderived -F. -c derived/helperUser.c -o helperUser.o
+    $CC -I. -Ihelper -Iderived -F. -c reachability/SCNetworkReachabilityServer_client.c -o SCNetworkReachabilityServer_client.o
+    $CC -I. -Ihelper -Iderived -F. -c reachability/rb.c -o rb.o
+    $CC -I. -Ihelper -Iderived -F. -c derived/SystemConfiguration_vers.c -o SystemConfiguration_vers.o
+
+    $CC -dynamiclib *.o -install_name $out/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration -dead_strip -framework CoreFoundation -single_module -o SystemConfiguration.framework/SystemConfiguration
 
     popd >/dev/null
   '';
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix
index 7e1dc5309b1d..5e7f38e84d7d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/copyfile/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   dontBuild = true;
   installPhase = ''
     mkdir -p $out/include/
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix
index 234349315421..5e098926d296 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/default.nix
@@ -1,9 +1,6 @@
 { lib, stdenv, fetchurl, fetchzip, pkgs }:
 
 let
-  macosPackages_11_0_1 = import ./macos-11.0.1.nix { inherit applePackage'; };
-  developerToolsPackages_11_3_1 = import ./developer-tools-11.3.1.nix { inherit applePackage'; };
-
   # This attrset can in theory be computed automatically, but for that to work nicely we need
   # import-from-derivation to work properly. Currently it's rather ugly when we try to bootstrap
   # a stdenv out of something like this. With some care we can probably get rid of this, but for
@@ -157,7 +154,7 @@ let
     version = versions.${sdkName}.${pname};
   in fetchApple' pname version sha256;
 
-  appleDerivation' = pname: version: sdkName: sha256: attrs: stdenv.mkDerivation ({
+  appleDerivation'' = stdenv: pname: version: sdkName: sha256: attrs: stdenv.mkDerivation ({
     inherit pname version;
 
     src = if attrs ? srcs then null else (fetchApple' pname version sha256);
@@ -190,17 +187,6 @@ let
     }) // (attrs.meta or {});
   });
 
-  applePackage' = namePath: version: sdkName: sha256: let
-    pname = builtins.head (lib.splitString "/" namePath);
-    appleDerivation = appleDerivation' pname version sdkName sha256;
-    callPackage = pkgs.newScope (packages // pkgs.darwin // { inherit appleDerivation; });
-  in callPackage (./. + "/${namePath}");
-
-  applePackage = namePath: sdkName: sha256: let
-    pname = builtins.head (lib.splitString "/" namePath);
-    version = versions.${sdkName}.${pname};
-  in applePackage' namePath version sdkName sha256;
-
   IOKitSpecs = {
     IOAudioFamily                        = fetchApple "osx-10.10.5" "0ggq7za3iq8g02j16rj67prqhrw828jsw3ah3bxq8a1cvr55aqnq";
     IOFireWireFamily                     = fetchApple "osx-10.10.5" "059qa1m668kwvchl90cqcx35b31zaqdg61zi11y1imn5s389y2g1";
@@ -225,11 +211,36 @@ let
 
   IOKitSrcs = lib.mapAttrs (name: value: if lib.isFunction value then value name else value) IOKitSpecs;
 
+in
+
+# darwin package set
+self:
+
+let
+  macosPackages_11_0_1 = import ./macos-11.0.1.nix { inherit applePackage'; };
+  developerToolsPackages_11_3_1 = import ./developer-tools-11.3.1.nix { inherit applePackage'; };
+
+  applePackage' = namePath: version: sdkName: sha256:
+    let
+      pname = builtins.head (lib.splitString "/" namePath);
+      appleDerivation' = stdenv: appleDerivation'' stdenv pname version sdkName sha256;
+      appleDerivation = appleDerivation' stdenv;
+      callPackage = self.newScope { inherit appleDerivation' appleDerivation; };
+    in callPackage (./. + "/${namePath}");
+
+  applePackage = namePath: sdkName: sha256: let
+    pname = builtins.head (lib.splitString "/" namePath);
+    version = versions.${sdkName}.${pname};
+  in applePackage' namePath version sdkName sha256;
+
   # Only used for bootstrapping. It’s convenient because it was the last version to come with a real makefile.
   adv_cmds-boot = applePackage "adv_cmds/boot.nix" "osx-10.5.8" "102ssayxbg9wb35mdmhswbnw0bg7js3pfd8fcbic83c5q3bqa6c6" {};
 
-  # TODO: shorten this list, we should cut down to a minimum set of bootstrap or necessary packages here.
-  stubPackages = {
+in
+
+developerToolsPackages_11_3_1 // macosPackages_11_0_1 // {
+    # TODO: shorten this list, we should cut down to a minimum set of bootstrap or necessary packages here.
+
     inherit (adv_cmds-boot) ps locale;
     architecture    = applePackage "architecture"      "osx-10.11.6"     "1pbpjcd7is69hn8y29i98ci0byik826if8gnp824ha92h90w0fq3" {};
     bsdmake         = applePackage "bsdmake"           "dev-tools-3.2.6" "11a9kkhz5bfgi1i8kpdkis78lhc6b5vxmhd598fcdgra1jw4iac2" {};
@@ -262,17 +273,16 @@ let
     libplatform     = applePackage "libplatform"       "osx-10.12.6"     "0rh1f5ybvwz8s0nwfar8s0fh7jbgwqcy903cv2x8m15iq1x599yn" {};
     libpthread      = applePackage "libpthread"        "osx-10.12.6"     "1j6541rcgjpas1fc77ip5krjgw4bvz6jq7bq7h9q7axb0jv2ns6c" {};
     libresolv       = applePackage "libresolv"         "osx-10.12.6"     "077j6ljfh7amqpk2146rr7dsz5vasvr3als830mgv5jzl7l6vz88" {};
-    Libsystem       = applePackage "Libsystem"         "osx-10.12.6"     "1082ircc1ggaq3wha218vmfa75jqdaqidsy1bmrc4ckfkbr3bwx2" {
-      libutil = pkgs.darwin.libutil.override { headersOnly = true; };
-      hfs = pkgs.darwin.hfs.override { headersOnly = true; };
-    };
+    Libsystem       = applePackage "Libsystem"         "osx-10.12.6"     "1082ircc1ggaq3wha218vmfa75jqdaqidsy1bmrc4ckfkbr3bwx2" {};
     libutil         = applePackage "libutil"           "osx-10.12.6"     "0lqdxaj82h8yjbjm856jjz9k2d96k0viimi881akfng08xk1246y" {};
     libunwind       = applePackage "libunwind"         "osx-10.12.6"     "0miffaa41cv0lzf8az5k1j1ng8jvqvxcr4qrlkf3xyj479arbk1b" {};
     mDNSResponder   = applePackage "mDNSResponder"     "osx-10.12.6"     "02ms1p8zlgmprzn65jzr7yaqxykh3zxjcrw0c06aayim6h0dsqfy" {};
     objc4           = applePackage "objc4"             "osx-10.12.6"     "1cj1vhbcs9pkmag2ms8wslagicnq9bxi2qjkszmp3ys7z7ccrbwz" {};
     ppp             = applePackage "ppp"               "osx-10.12.6"     "1kcc2nc4x1kf8sz0a23i6nfpvxg381kipi0qdisrp8x9z2gbkxb8" {};
     removefile      = applePackage "removefile"        "osx-10.12.6"     "0jzjxbmxgjzhssqd50z7kq9dlwrv5fsdshh57c0f8mdwcs19bsyx" {};
-    xnu             = applePackage "xnu"               "osx-10.12.6"     "1sjb0i7qzz840v2h4z3s4jyjisad4r5yyi6sg8pakv3wd81i5fg5" {};
+    xnu             = applePackage "xnu"               "osx-10.12.6"     "1sjb0i7qzz840v2h4z3s4jyjisad4r5yyi6sg8pakv3wd81i5fg5" {
+      python3 = pkgs.buildPackages.buildPackages.python3; # TODO(@Ericson2314) this shouldn't be needed.
+    };
     hfs             = applePackage "hfs"               "osx-10.12.6"     "1mj3xvqpq1mgd80b6kl1s04knqnap7hccr0gz8rjphalq14rbl5g" {};
     Librpcsvc       = applePackage "Librpcsvc"         "osx-10.11.6"     "1zwfwcl9irxl1dlnf2b4v30vdybp0p0r6n6g1pd14zbdci1jcg2k" {};
     adv_cmds        = applePackage "adv_cmds"          "osx-10.11.6"    "12gbv35i09aij9g90p6b3x2f3ramw43qcb2gjrg8lzkzmwvcyw9q" {};
@@ -287,10 +297,11 @@ let
     top             = applePackage "top"               "osx-10.11.6"     "0i9120rfwapgwdvjbfg0ya143i29s1m8zbddsxh39pdc59xnsg5l" {};
     PowerManagement = applePackage "PowerManagement"   "osx-10.11.6"     "1llimhvp0gjffd47322lnjq7cqwinx0c5z7ikli04ad5srpa68mh" {};
 
+    libutilHeaders  = pkgs.darwin.libutil.override { headersOnly = true; };
+    hfsHeaders      = pkgs.darwin.hfs.override { headersOnly = true; };
+    libresolvHeaders= pkgs.darwin.libresolv.override { headersOnly = true; };
+
     # TODO(matthewbauer):
     # To be removed, once I figure out how to build a newer Security version.
     Security        = applePackage "Security/boot.nix" "osx-10.9.5"      "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {};
-  };
-
-  packages = developerToolsPackages_11_3_1 // macosPackages_11_0_1 // stubPackages;
-in packages
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
index 77de079e2f0f..f2c4ec32146f 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
@@ -1,7 +1,7 @@
-{ lib, appleDerivation, xcbuildHook, llvmPackages }:
+{ lib, appleDerivation, xcbuildHook, llvmPackages, makeWrapper }:
 
 appleDerivation {
-  nativeBuildInputs = [ xcbuildHook ];
+  nativeBuildInputs = [ xcbuildHook makeWrapper ];
 
   patches = [
     # The following copied from
@@ -11,8 +11,9 @@ appleDerivation {
   ];
 
   postPatch = ''
+    makeWrapper ${llvmPackages.clang}/bin/clang $out/bin/clang-cpp --add-flags "--driver-mode=cpp"
     substituteInPlace rpcgen/rpc_main.c \
-      --replace "/usr/bin/cpp" "${llvmPackages.clang-unwrapped}/bin/clang-cpp"
+      --replace "/usr/bin/cpp" "$out/bin/clang-cpp"
   '';
 
   # temporary install phase until xcodebuild has "install" support
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix
index 01d44d22f5ef..ca3b70cd0926 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/dyld/default.nix
@@ -1,6 +1,6 @@
-{ lib, appleDerivation }:
+{ lib, appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     mkdir -p $out/lib $out/include
     ln -s /usr/lib/dyld $out/lib/dyld
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix
index b24d94b9d70d..f5c47f01d37a 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/eap8021x/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenv }:
 
-appleDerivation {
+appleDerivation' stdenv {
   dontBuild = true;
   installPhase = ''
     mkdir -p $out/Library/Frameworks/EAP8021X.framework/Headers
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix
index 53f98e2b457e..981e1370437d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/file_cmds/default.nix
@@ -1,8 +1,8 @@
-{ lib, appleDerivation, xcbuildHook, zlib, bzip2, xz, ncurses, libutil }:
+{ lib, appleDerivation, xcbuildHook, zlib, bzip2, xz, ncurses, libutil, Libinfo }:
 
 appleDerivation {
   nativeBuildInputs = [ xcbuildHook ];
-  buildInputs = [ zlib bzip2 xz ncurses libutil ];
+  buildInputs = [ zlib bzip2 xz ncurses libutil Libinfo ];
 
   # some commands not working:
   # mtree: _simple.h not found
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix
index 58bac765a959..093e8525e587 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/hfs/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation, lib, headersOnly ? true }:
+{ appleDerivation', stdenv, stdenvNoCC, lib, headersOnly ? true }:
 
-appleDerivation {
+appleDerivation' (if headersOnly then stdenvNoCC else stdenv) {
   installPhase = lib.optionalString headersOnly ''
     mkdir -p $out/include/hfs
     cp core/*.h $out/include/hfs
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix
index c882b83d0a38..67e051d56853 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/launchd/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   # No clue why the same file has two different names. Ask Apple!
   installPhase = ''
     mkdir -p $out/include/ $out/include/servers
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix
index d42a288208c5..976658b7e5dd 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libclosure/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     mkdir -p $out/include
     cp *.h $out/include/
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
index 3b9d4a34cc63..e91ee86cde08 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libdispatch/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   dontConfigure = true;
   dontBuild = true;
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix
index 9acbcb212e4d..39c801962692 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libplatform/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     mkdir $out
     cp -r include $out/include
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix
index 20eccd820597..3d62270d76c0 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libpthread/default.nix
@@ -1,6 +1,6 @@
-{ lib, appleDerivation, libdispatch, xnu }:
+{ lib, appleDerivation', stdenvNoCC, libdispatch, xnu }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   propagatedBuildInputs = [ libdispatch xnu ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix
index f3c7558cfc62..53fc019768dd 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix
@@ -1,37 +1,39 @@
-{ appleDerivation, Libinfo, configd, mDNSResponder }:
+{ lib, appleDerivation', stdenv, stdenvNoCC, Libinfo, configd, mDNSResponder
+, headersOnly ? false
+}:
 
-appleDerivation {
-  buildInputs = [ Libinfo configd mDNSResponder ];
+appleDerivation' (if headersOnly then stdenvNoCC else stdenv) {
+  buildInputs = lib.optionals (!headersOnly) [ Libinfo configd mDNSResponder ];
 
-  buildPhase = ''
-    cc -I. -c dns_util.c
-    cc -I. -c dns.c
-    cc -I. -c dns_async.c
-    cc -I. -c base64.c
-    cc -I. -c dst_api.c
-    cc -I. -c dst_hmac_link.c
-    cc -I. -c dst_support.c
-    cc -I. -c ns_date.c
-    cc -I. -c ns_name.c
-    cc -I. -c ns_netint.c
-    cc -I. -c ns_parse.c
-    cc -I. -c ns_print.c
-    cc -I. -c ns_samedomain.c
-    cc -I. -c ns_sign.c
-    cc -I. -c ns_ttl.c
-    cc -I. -c ns_verify.c
-    cc -I. -c res_comp.c
-    cc -I. -c res_data.c
-    cc -I. -c res_debug.c
-    cc -I. -c res_findzonecut.c
-    cc -I. -c res_init.c
-    cc -I. -c res_mkquery.c
-    cc -I. -c res_mkupdate.c
-    cc -I. -c res_query.c
-    cc -I. -c res_send.c
-    cc -I. -c res_sendsigned.c
-    cc -I. -c res_update.c
-    cc -dynamiclib -install_name $out/lib/libresolv.9.dylib -current_version 1.0.0 -compatibility_version 1.0.0 -o libresolv.9.dylib *.o
+  buildPhase = lib.optionalString (!headersOnly) ''
+    $CC -I. -c dns_util.c
+    $CC -I. -c dns.c
+    $CC -I. -c dns_async.c
+    $CC -I. -c base64.c
+    $CC -I. -c dst_api.c
+    $CC -I. -c dst_hmac_link.c
+    $CC -I. -c dst_support.c
+    $CC -I. -c ns_date.c
+    $CC -I. -c ns_name.c
+    $CC -I. -c ns_netint.c
+    $CC -I. -c ns_parse.c
+    $CC -I. -c ns_print.c
+    $CC -I. -c ns_samedomain.c
+    $CC -I. -c ns_sign.c
+    $CC -I. -c ns_ttl.c
+    $CC -I. -c ns_verify.c
+    $CC -I. -c res_comp.c
+    $CC -I. -c res_data.c
+    $CC -I. -c res_debug.c
+    $CC -I. -c res_findzonecut.c
+    $CC -I. -c res_init.c
+    $CC -I. -c res_mkquery.c
+    $CC -I. -c res_mkupdate.c
+    $CC -I. -c res_query.c
+    $CC -I. -c res_send.c
+    $CC -I. -c res_sendsigned.c
+    $CC -I. -c res_update.c
+    $CC -dynamiclib -install_name $out/lib/libresolv.9.dylib -current_version 1.0.0 -compatibility_version 1.0.0 -o libresolv.9.dylib *.o
   '';
 
   installPhase = ''
@@ -42,6 +44,7 @@ appleDerivation {
     cp nameser.h       $out/include
     ln -s ../nameser.h $out/include/arpa
     cp resolv.h        $out/include
+  '' + lib.optionalString (!headersOnly) ''
 
     cp libresolv.9.dylib $out/lib
     ln -s libresolv.9.dylib $out/lib/libresolv.dylib
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix
index ea9ca75e7e54..e7c8a6b1113b 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libutil/default.nix
@@ -1,9 +1,9 @@
-{ lib, appleDerivation, xcbuildHook
+{ lib, stdenv, stdenvNoCC, appleDerivation', xcbuildHook
 
 # headersOnly is true when building for libSystem
 , headersOnly ? false }:
 
-appleDerivation {
+appleDerivation' (if headersOnly then stdenvNoCC else stdenv) {
   nativeBuildInputs = lib.optional (!headersOnly) xcbuildHook;
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix
index f17ed785360d..64de728805fd 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/mDNSResponder/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   phases = [ "unpackPhase" "installPhase" ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix
index 5668c376130e..4ced564ffb72 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/ppp/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenv }:
 
-appleDerivation {
+appleDerivation' stdenv {
   dontBuild = true;
   installPhase = ''
     mkdir -p $out/include/ppp
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix
index 0b2c1c9c7dcc..611f445e1ec9 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/removefile/default.nix
@@ -1,6 +1,6 @@
-{ appleDerivation }:
+{ appleDerivation', stdenvNoCC }:
 
-appleDerivation {
+appleDerivation' stdenvNoCC {
   installPhase = ''
     mkdir -p $out/include/
     cp removefile.h checkint.h $out/include/
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix
index e2e13a168f04..a8352285c78e 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/shell_cmds/default.nix
@@ -1,7 +1,7 @@
-{ lib, appleDerivation, xcbuildHook }:
+{ lib, appleDerivation, xcbuildHook, launchd }:
 
 appleDerivation {
-  nativeBuildInputs = [ xcbuildHook ];
+  nativeBuildInputs = [ xcbuildHook launchd ];
 
   patchPhase = ''
     # NOTE: these hashes must be recalculated for each version change
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix
index 34d093b7cc00..d42d142ef6ee 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/system_cmds/default.nix
@@ -1,5 +1,5 @@
 { stdenv, appleDerivation, lib
-, Librpcsvc, apple_sdk, pam, CF, openbsm }:
+, libutil, Librpcsvc, apple_sdk, pam, CF, openbsm }:
 
 appleDerivation {
   # xcbuild fails with:
@@ -7,7 +7,7 @@ appleDerivation {
   # see issue facebook/xcbuild#188
   # buildInputs = [ xcbuild ];
 
-  buildInputs = [ Librpcsvc apple_sdk.frameworks.OpenDirectory pam CF
+  buildInputs = [ libutil Librpcsvc apple_sdk.frameworks.OpenDirectory pam CF
                   apple_sdk.frameworks.IOKit openbsm ];
   # NIX_CFLAGS_COMPILE = lib.optionalString hostPlatform.isi686 "-D__i386__"
   #                    + lib.optionalString hostPlatform.isx86_64 "-D__x86_64__"
@@ -35,6 +35,11 @@ appleDerivation {
       --replace bsm/audit_session.h bsm/audit.h
     substituteInPlace login.tproj/login_audit.c \
       --replace bsm/audit_session.h bsm/audit.h
+  '' + lib.optionalString stdenv.isAarch64 ''
+    substituteInPlace sysctl.tproj/sysctl.c \
+      --replace "GPROF_STATE" "0"
+    substituteInPlace login.tproj/login.c \
+      --replace "defined(__arm__)" "defined(__arm__) || defined(__arm64__)"
   '';
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
index 9892814468e9..90f572d3940d 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
@@ -1,8 +1,12 @@
-{ appleDerivation, lib, bootstrap_cmds, bison, flex
+{ appleDerivation', lib, stdenv, stdenvNoCC, buildPackages
+, bootstrap_cmds, bison, flex
 , gnum4, unifdef, perl, python3
-, headersOnly ? true }:
+, headersOnly ? true
+}:
+
+appleDerivation' (if headersOnly then stdenvNoCC else stdenv) ({
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
 
-appleDerivation ({
   nativeBuildInputs = [ bootstrap_cmds bison flex gnum4 unifdef perl python3 ];
 
   patches = [ ./python3.patch ];
@@ -44,16 +48,16 @@ appleDerivation ({
 
   PLATFORM = "MacOSX";
   SDKVERSION = "10.11";
-  CC = "cc";
-  CXX = "c++";
+  CC = "${stdenv.cc.targetPrefix or ""}cc";
+  CXX = "${stdenv.cc.targetPrefix or ""}c++";
   MIG = "mig";
   MIGCOM = "migcom";
-  STRIP = "strip";
-  NM = "nm";
+  STRIP = "${stdenv.cc.bintools.targetPrefix or ""}strip";
+  NM = "${stdenv.cc.bintools.targetPrefix or ""}nm";
   UNIFDEF = "unifdef";
   DSYMUTIL = "dsymutil";
   HOST_OS_VERSION = "10.10";
-  HOST_CC = "cc";
+  HOST_CC = "${buildPackages.stdenv.cc.targetPrefix or ""}cc";
   HOST_FLEX = "flex";
   HOST_BISON = "bison";
   HOST_GM4 = "m4";
diff --git a/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix b/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix
index 29ae1871ddb1..5dc57f43e4ab 100644
--- a/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/binutils/default.nix
@@ -9,6 +9,7 @@ let
   cmds = [
     "ar" "ranlib" "as" "install_name_tool"
     "ld" "strip" "otool" "lipo" "nm" "strings" "size"
+    "codesign_allocate"
   ];
 in
 
diff --git a/nixpkgs/pkgs/os-specific/darwin/cctools/port.nix b/nixpkgs/pkgs/os-specific/darwin/cctools/port.nix
index 50e0a2eb3fbf..bace6f0689d9 100644
--- a/nixpkgs/pkgs/os-specific/darwin/cctools/port.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/cctools/port.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, autoreconfHook
 , installShellFiles
-, libcxxabi, libuuid
+, libuuid
 , libobjc ? null, maloader ? null
 , enableTapiSupport ? true, libtapi
 }:
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ autoconf automake libtool autoreconfHook installShellFiles ];
   buildInputs = [ libuuid ]
-    ++ lib.optionals stdenv.isDarwin [ libcxxabi libobjc ]
+    ++ lib.optionals stdenv.isDarwin [ libobjc ]
     ++ lib.optional enableTapiSupport libtapi;
 
   patches = [ ./ld-ignore-rpath-link.patch ./ld-rpath-nonfinal.patch ];
diff --git a/nixpkgs/pkgs/os-specific/darwin/darwin-stubs/default.nix b/nixpkgs/pkgs/os-specific/darwin/darwin-stubs/default.nix
index aa946eb5bf0a..6e3439455cce 100644
--- a/nixpkgs/pkgs/os-specific/darwin/darwin-stubs/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/darwin-stubs/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl }:
+{ stdenvNoCC, fetchurl }:
 
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "darwin-stubs";
   version = "10.12";
 
diff --git a/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix b/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix
index 8c83b4ae1e69..da0710740973 100644
--- a/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python3, ncurses }:
+{ lib, stdenv, fetchFromGitHub, pkgsBuildBuild, cmake, python3, ncurses }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "libtapi";
   version = "1100.0.11"; # determined by looking at VERSION.txt
 
@@ -13,13 +13,43 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "source/src/llvm";
 
+  # Backported from newer llvm, fixes configure error when cross compiling.
+  # Also means we don't have to manually fix the result with install_name_tool.
+  patches = [
+    ./disable-rpath.patch
+  ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
+    # TODO: make unconditional and rebuild the world
+    # TODO: send upstream
+    ./native-clang-tblgen.patch
+  ];
+
   nativeBuildInputs = [ cmake python3 ];
 
   # ncurses is required here to avoid a reference to bootstrap-tools, which is
   # not allowed for the stdenv.
   buildInputs = [ ncurses ];
 
-  cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=OFF" ];
+  cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=OFF" ]
+    ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) [
+      "-DCMAKE_CROSSCOMPILING=True"
+      # This package could probably have a llvm_6 llvm-tblgen and clang-tblgen
+      # provided to reduce some building. This package seems intended to
+      # include all of its dependencies, including enough of LLVM to build the
+      # required tablegens.
+      (
+        let
+          nativeCC = pkgsBuildBuild.stdenv.cc;
+          nativeBintools = nativeCC.bintools.bintools;
+          nativeToolchainFlags = [
+            "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
+            "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
+            "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
+            "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
+            "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
+          ];
+        in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+      )
+    ];
 
   # fixes: fatal error: 'clang/Basic/Diagnostic.h' file not found
   # adapted from upstream
@@ -35,10 +65,6 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install-libtapi" "install-tapi-headers" "install-tapi" ];
 
-  postInstall = lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id $out/lib/libtapi.dylib $out/lib/libtapi.dylib
-  '';
-
   meta = with lib; {
     description = "Replaces the Mach-O Dynamic Library Stub files in Apple's SDKs to reduce the size";
     homepage = "https://github.com/tpoechtrager/apple-libtapi";
diff --git a/nixpkgs/pkgs/os-specific/darwin/libtapi/disable-rpath.patch b/nixpkgs/pkgs/os-specific/darwin/libtapi/disable-rpath.patch
new file mode 100644
index 000000000000..87c0cf3330de
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/libtapi/disable-rpath.patch
@@ -0,0 +1,14 @@
+diff --git a/src/llvm/cmake/modules/AddLLVM.cmake b/src/llvm/cmake/modules/AddLLVM.cmake
+index a53016eb0..b65e608a4 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -1683,8 +1683,7 @@ function(llvm_setup_rpath name)
+   endif()
+ 
+   if (APPLE)
+-    set(_install_name_dir INSTALL_NAME_DIR "@rpath")
+-    set(_install_rpath "@loader_path/../lib" ${extra_libdir})
++    set(_install_name_dir)
+   elseif(UNIX)
+     set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
+     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
diff --git a/nixpkgs/pkgs/os-specific/darwin/libtapi/native-clang-tblgen.patch b/nixpkgs/pkgs/os-specific/darwin/libtapi/native-clang-tblgen.patch
new file mode 100644
index 000000000000..9b715766a122
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/libtapi/native-clang-tblgen.patch
@@ -0,0 +1,21 @@
+diffprojects/libtapi/CMakeLists.txt b/src/llvm/projects/libtapi/CMakeLists.txt
+index 8ee6d8138..8277be147 100644
+--- a/projects/libtapi/CMakeLists.txt
++++ b/projects/libtapi/CMakeLists.txt
+@@ -193,7 +193,15 @@ if (NOT DEFINED CLANG_VERSION)
+   set(CLANG_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")
+ endif ()
+ if (NOT DEFINED CLANG_TABLEGEN_EXE)
+-  set(CLANG_TABLEGEN_EXE "${LLVM_TOOLS_BINARY_DIR}/clang-tblgen")
++  if(LLVM_USE_HOST_TOOLS)
++    if (NOT CMAKE_CONFIGURATION_TYPES)
++      set(CLANG_TABLEGEN_EXE "${LLVM_NATIVE_BUILD}/bin/clang-tblgen")
++    else()
++      set(CLANG_TABLEGEN_EXE "${LLVM_NATIVE_BUILD}/Release/bin/clang-tblgen")
++    endif()
++  else()
++    set(CLANG_TABLEGEN_EXE "${LLVM_TOOLS_BINARY_DIR}/clang-tblgen")
++  endif ()
+ endif ()
+ 
+ # Include must go first.
diff --git a/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix b/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix
index 3943092bcf05..9142484e043c 100644
--- a/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
       ld-mac.cc
   '';
 
-  NIX_CFLAGS_COMPILE = "-I${libcxx}/include/c++/v1";
+  NIX_CFLAGS_COMPILE = "-I${lib.getDev libcxx}/include/c++/v1";
   buildInputs = [ clang libcxx ];
   buildFlags = [ "USE_LIBCXX=1" "release" ];
 
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/print-reexports/default.nix b/nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix
index a548d8da753f..740bcb48ef59 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/print-reexports/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix
@@ -7,11 +7,11 @@ stdenv.mkDerivation {
   buildInputs = [ libyaml ];
 
   buildPhase = ''
-    $CC -lyaml -o $name main.c
+    $CC -lyaml -o print-reexports main.c
   '';
 
   installPhase = ''
     mkdir -p $out/bin
-    mv $name $out/bin
+    mv print-reexports $out/bin
   '';
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/print-reexports/main.c b/nixpkgs/pkgs/os-specific/darwin/print-reexports/main.c
index df46e3f18e89..e6ff527da966 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-sdk/print-reexports/main.c
+++ b/nixpkgs/pkgs/os-specific/darwin/print-reexports/main.c
@@ -21,6 +21,10 @@
 #include <sys/errno.h>
 #include <yaml.h>
 
+#define LOG(str, ...) fprintf(stderr, "%s", str)
+
+#define LOGF(...) fprintf(stderr, __VA_ARGS__)
+
 static yaml_node_t *get_mapping_entry(yaml_document_t *document, yaml_node_t *mapping, const char *name) {
   if (!mapping) {
     fprintf(stderr, "get_mapping_entry: mapping is null\n");
@@ -35,12 +39,12 @@ static yaml_node_t *get_mapping_entry(yaml_document_t *document, yaml_node_t *ma
     yaml_node_t *key = yaml_document_get_node(document, pair->key);
 
     if (!key) {
-      fprintf(stderr, "get_mapping_entry: key (%i) is null\n", pair->key);
+      LOGF("key (%d) is null\n", pair->key);
       return NULL;
     }
 
     if (key->type != YAML_SCALAR_NODE) {
-      fprintf(stderr, "get_mapping_entry: key is not a scalar\n");
+      LOG("get_mapping_entry: key is not a scalar\n");
       return NULL;
     }
 
@@ -54,18 +58,17 @@ static yaml_node_t *get_mapping_entry(yaml_document_t *document, yaml_node_t *ma
   return NULL;
 }
 
-static int emit_reexports(yaml_document_t *document) {
+static int emit_reexports_v2(yaml_document_t *document) {
   yaml_node_t *root = yaml_document_get_root_node(document);
 
   yaml_node_t *exports = get_mapping_entry(document, root, "exports");
 
   if (!exports) {
-    fprintf(stderr, "emit_reexports: no exports found\n");
-    return 0;
+    return 1;
   }
 
   if (exports->type != YAML_SEQUENCE_NODE) {
-    fprintf(stderr, "emit_reexports, value is not a sequence\n");
+    LOG("value is not a sequence\n");
     return 0;
   }
 
@@ -82,6 +85,11 @@ static int emit_reexports(yaml_document_t *document) {
       continue;
     }
 
+    if (reexports->type != YAML_SEQUENCE_NODE) {
+      LOG("re-exports is not a sequence\n");
+      return 0;
+    }
+
     for (
         yaml_node_item_t *reexport = reexports->data.sequence.items.start;
         reexport < reexports->data.sequence.items.top;
@@ -90,7 +98,58 @@ static int emit_reexports(yaml_document_t *document) {
       yaml_node_t *val = yaml_document_get_node(document, *reexport);
 
       if (val->type != YAML_SCALAR_NODE) {
-        fprintf(stderr, "item is not a scalar\n");
+        LOG("item is not a scalar\n");
+        return 0;
+      }
+
+      fwrite(val->data.scalar.value, val->data.scalar.length, 1, stdout);
+      putchar('\n');
+    }
+  }
+
+  return 1;
+}
+
+static int emit_reexports_v4(yaml_document_t *document) {
+  yaml_node_t *root = yaml_document_get_root_node(document);
+  yaml_node_t *reexports = get_mapping_entry(document, root, "reexported-libraries");
+
+  if (!reexports) {
+    return 1;
+  }
+
+  if (reexports->type != YAML_SEQUENCE_NODE) {
+    LOG("value is not a sequence\n");
+    return 0;
+  }
+
+  for (
+      yaml_node_item_t *entry = reexports->data.sequence.items.start;
+      entry < reexports->data.sequence.items.top;
+      ++entry
+  ) {
+    yaml_node_t *entry_node = yaml_document_get_node(document, *entry);
+
+    yaml_node_t *libs = get_mapping_entry(document, entry_node, "libraries");
+
+    if (!libs) {
+      continue;
+    }
+
+    if (libs->type != YAML_SEQUENCE_NODE) {
+      LOG("libraries is not a sequence\n");
+      return 0;
+    }
+
+    for (
+        yaml_node_item_t *lib = libs->data.sequence.items.start;
+        lib < libs->data.sequence.items.top;
+        ++lib
+    ) {
+      yaml_node_t *val = yaml_document_get_node(document, *lib);
+
+      if (val->type != YAML_SCALAR_NODE) {
+        LOG("item is not a scalar\n");
         return 0;
       }
 
@@ -135,7 +194,13 @@ int main(int argc, char **argv) {
     goto err_yaml;
   }
 
-  emit_reexports(&yaml_document);
+  // Try both, only fail if one reports an error.  A lack of re-exports is not
+  // considered an error.
+  int ok = 1;
+  ok = ok && emit_reexports_v2(&yaml_document);
+  ok = ok && emit_reexports_v4(&yaml_document);
+
+  result = !ok;
 
 err_yaml:
   yaml_parser_delete(&yaml_parser);
diff --git a/nixpkgs/pkgs/os-specific/darwin/print-reexports/setup-hook.sh b/nixpkgs/pkgs/os-specific/darwin/print-reexports/setup-hook.sh
new file mode 100644
index 000000000000..9efb00aeb4dc
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/print-reexports/setup-hook.sh
@@ -0,0 +1,19 @@
+fixupOutputHooks+=('checkTbdReexports')
+
+checkTbdReexports() {
+  local dir="$1"
+
+  while IFS= read -r -d $'\0' tbd; do
+    echo "checkTbdRexports: checking re-exports in $tbd"
+    while read -r target; do
+      local expected="${target%.dylib}.tbd"
+      if ! [ -e "$expected" ]; then
+        echo -e "Re-export missing:\n\t'$target'\n\t(expected '$expected')"
+        echo -e "While processing\n\t'$tbd'"
+        exit 1
+      else
+        echo "Re-exported target '$target' ok"
+      fi
+    done < <(print-reexports "$tbd")
+  done < <(find $prefix -type f -name '*.tbd' -print0)
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix b/nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix
new file mode 100644
index 000000000000..f41b81b3bc90
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, libyaml }:
+
+stdenv.mkDerivation {
+  pname = "rewrite-tbd";
+  version = "20201114";
+
+  src = fetchFromGitHub {
+    owner = "thefloweringash";
+    repo = "rewrite-tbd";
+    rev = "988f29c6ccbca9b883966225263d8d78676da6a3";
+    sha256 = "08sk91zwj6n9x2ymwid2k7y0rwv5b7p6h1b25ipx1dv0i43p6v1a";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libyaml ];
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/signing-utils/auto-sign-hook.sh b/nixpkgs/pkgs/os-specific/darwin/signing-utils/auto-sign-hook.sh
new file mode 100644
index 000000000000..430aba8cdc7e
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/signing-utils/auto-sign-hook.sh
@@ -0,0 +1,20 @@
+fixupOutputHooks+=('signDarwinBinariesIn $prefix')
+
+# Uses signingUtils, see definition of autoSignDarwinBinariesHook in
+# darwin-packages.nix
+
+signDarwinBinariesIn() {
+  local dir="$1"
+
+  if [ ! -d "$dir" ]; then
+    return 0
+  fi
+
+  if [ "${darwinDontCodeSign:-}" ]; then
+    return 0
+  fi
+
+  while IFS= read -r -d $'\0' f; do
+    signIfRequired "$f"
+  done < <(find "$dir" -type f -print0)
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/signing-utils/default.nix b/nixpkgs/pkgs/os-specific/darwin/signing-utils/default.nix
new file mode 100644
index 000000000000..035ac59b725a
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/signing-utils/default.nix
@@ -0,0 +1,24 @@
+{ stdenvNoCC
+, sigtool
+, cctools
+}:
+
+let
+  stdenv = stdenvNoCC;
+in
+
+stdenv.mkDerivation {
+  name = "signing-utils";
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    substituteAll ${./utils.sh} $out
+  '';
+
+  # Substituted variables
+  inherit sigtool;
+  codesignAllocate = "${cctools}/bin/${cctools.targetPrefix}codesign_allocate";
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/signing-utils/utils.sh b/nixpkgs/pkgs/os-specific/darwin/signing-utils/utils.sh
new file mode 100644
index 000000000000..6d23a461fc99
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/signing-utils/utils.sh
@@ -0,0 +1,43 @@
+# Work around for some odd behaviour where we can't codesign a file
+# in-place if it has been called before. This happens for example if
+# you try to fix-up a binary using strip/install_name_tool, after it
+# had been used previous.  The solution is to copy the binary (with
+# the corrupted signature from strip/install_name_tool) to some
+# location, sign it there and move it back into place.
+#
+# This does not appear to happen with the codesign tool that ships
+# with recent macOS BigSur installs on M1 arm64 machines.  However it
+# had also been happening with the tools that shipped with the DTKs.
+sign() {
+    local tmpdir
+    tmpdir=$(mktemp -d)
+
+    # $1 is the file
+
+    cp "$1" "$tmpdir"
+    CODESIGN_ALLOCATE=@codesignAllocate@ \
+        @sigtool@/bin/codesign -f -s - "$tmpdir/$(basename "$1")"
+    mv "$tmpdir/$(basename "$1")" "$1"
+    rmdir "$tmpdir"
+}
+
+checkRequiresSignature() {
+    local file=$1
+    local rc=0
+
+    @sigtool@/bin/sigtool --file "$file" check-requires-signature || rc=$?
+
+    if [ "$rc" -eq 0 ] || [ "$rc" -eq 1 ]; then
+        return "$rc"
+    fi
+
+    echo "Unexpected exit status from sigtool: $rc"
+    exit 1
+}
+
+signIfRequired() {
+    local file=$1
+    if checkRequiresSignature "$file"; then
+        sign "$file"
+    fi
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/sigtool/default.nix b/nixpkgs/pkgs/os-specific/darwin/sigtool/default.nix
new file mode 100644
index 000000000000..933ef784879f
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/sigtool/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, makeWrapper, openssl }:
+
+stdenv.mkDerivation {
+  name = "sigtool";
+
+  src = fetchFromGitHub {
+    owner = "thefloweringash";
+    repo = "sigtool";
+    rev = "4a3719b42dc91c3f513df94048851cc98e7c7fcf";
+    sha256 = "04ra1cx7k1sdbkj5yrvl0s3l333vpir8rnm8k1dh2zy1w0a6hpqa";
+  };
+
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ openssl ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  # Upstream (me) asserts the driver script is optional.
+  postInstall = ''
+    substitute $NIX_BUILD_TOP/$sourceRoot/codesign.sh $out/bin/codesign \
+      --replace sigtool "$out/bin/sigtool"
+    chmod a+x $out/bin/codesign
+  '';
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix b/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix
index 780347c60c58..8cfbaa3f9a3b 100644
--- a/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, Carbon, Cocoa, ScriptingBridge }:
+{ lib, stdenv, fetchFromGitHub, Carbon, Cocoa, ScriptingBridge, SkyLight }:
 
 stdenv.mkDerivation rec {
   pname = "spacebar";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0f5ddn3sx13rwwh0nfl784160s8ml3m5593d5fz2b1996aznzrsx";
   };
 
-  buildInputs = [ Carbon Cocoa ScriptingBridge ];
+  buildInputs = [ Carbon Cocoa ScriptingBridge SkyLight ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
index ab934d7eaaaf..0512d9dd46a1 100644
--- a/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
@@ -41,6 +41,7 @@ rec {
       mv cc-cflags.tmp $out/nix-support/cc-cflags
       echo "-target ${targetPlatform.config}" >> $out/nix-support/cc-cflags
       echo "-isystem ${sdk}/usr/include${lib.optionalString (lib.versionAtLeast "10" sdk.version) " -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++"}" >> $out/nix-support/cc-cflags
+      ${lib.optionalString (lib.versionAtLeast sdk.version "14") "echo -isystem ${xcode}/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 >> $out/nix-support/cc-cflags"}
     '';
   }) // {
     inherit sdk;
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/wrapper.nix b/nixpkgs/pkgs/os-specific/linux/alsa-plugins/wrapper.nix
deleted file mode 100644
index 8271088a5016..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/wrapper.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{ writeShellScriptBin, stdenv, alsaPlugins }:
-writeShellScriptBin "ap${if stdenv.hostPlatform.system == "i686-linux" then "32" else "64"}" ''
-  ALSA_PLUGIN_DIRS=${alsaPlugins}/lib/alsa-lib "$@"
-''
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-firmware/cross.patch b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-firmware/cross.patch
index 989ccea2b984..989ccea2b984 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-firmware/cross.patch
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-firmware/cross.patch
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-firmware/default.nix
index a627a7762a89..a627a7762a89 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-firmware/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-firmware/default.nix
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-lib/alsa-plugin-conf-multilib.patch b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-lib/alsa-plugin-conf-multilib.patch
index b17df9a492e5..b17df9a492e5 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-lib/alsa-plugin-conf-multilib.patch
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-lib/alsa-plugin-conf-multilib.patch
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-lib/default.nix
index 2511c88f3f1b..2511c88f3f1b 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-lib/default.nix
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-oss/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-oss/default.nix
index 9c87dbe8e8c8..f600b52c5f3a 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-oss/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-oss/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, alsaLib, gettext, ncurses, libsamplerate}:
+{lib, stdenv, fetchurl, alsa-lib, gettext, ncurses, libsamplerate}:
 
 stdenv.mkDerivation rec {
   pname = "alsa-oss";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "13nn6n6wpr2sj1hyqx4r9nb9bwxnhnzw8r2f08p8v13yjbswxbb4";
   };
 
-  buildInputs = [ alsaLib ncurses libsamplerate ];
+  buildInputs = [ alsa-lib ncurses libsamplerate ];
   nativeBuildInputs = [ gettext ];
 
   configureFlags = [ "--disable-xmlto" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-plugins/default.nix
index 09dbdbc9b6fb..684ecc236888 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-plugins/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-plugins/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, pkg-config, alsaLib, libogg, libpulseaudio ? null, libjack2 ? null }:
+{ stdenv, fetchurl, lib, pkg-config, alsa-lib, libogg, libpulseaudio ? null, libjack2 ? null }:
 
 stdenv.mkDerivation rec {
   pname = "alsa-plugins";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   # ToDo: a52, etc.?
   buildInputs =
-    [ alsaLib libogg ]
+    [ alsa-lib libogg ]
     ++ lib.optional (libpulseaudio != null) libpulseaudio
     ++ lib.optional (libjack2 != null) libjack2;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-plugins/wrapper.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-plugins/wrapper.nix
new file mode 100644
index 000000000000..992f4886e262
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-plugins/wrapper.nix
@@ -0,0 +1,10 @@
+{ stdenv
+, alsa-plugins
+, writeShellScriptBin
+}:
+let
+  arch = if stdenv.hostPlatform.system == "i686-linux" then "32" else "64";
+in
+writeShellScriptBin "ap${arch}" ''
+  ALSA_PLUGIN_DIRS=${alsa-plugins}/lib/alsa-lib "$@"
+''
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-tools/default.nix
index c4fdbacf95ba..8b9abb74036b 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-tools/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchurl, alsaLib, pkg-config, gtk2, gtk3, fltk13 }:
+{ lib, stdenv, fetchurl, alsa-lib, pkg-config, gtk2, gtk3, fltk13 }:
 # Comes from upstream as as bundle of several tools,
 # some use gtk2, some gtk3 (and some even fltk13).
 
 stdenv.mkDerivation rec {
   pname = "alsa-tools";
-  version = "1.2.2";
+  version = "1.2.5";
 
   src = fetchurl {
     url = "mirror://alsa/tools/${pname}-${version}.tar.bz2";
-    sha256 = "0jbkjmq038zapj66a7nkppdf644v2mwj581xbmh6k4i8w6mcglxz";
+    sha256 = "sha256-NacQJ6AfTX3kci4iNSDpQN5os8VwtsZxaRVnrij5iT4=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib gtk2 gtk3 fltk13 ];
+  buildInputs = [ alsa-lib gtk2 gtk3 fltk13 ];
 
   patchPhase = ''
     export tools="as10k1 hda-verb hdspmixer echomixer hdajackretask hdspconf hwmixvolume mixartloader rmedigicontrol sscape_ctl vxloader envy24control hdajacksensetest hdsploader ld10k1 pcxhrloader sb16_csp us428control"
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-topology-conf/default.nix
index 2328fea91fd7..2328fea91fd7 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-topology-conf/default.nix
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-ucm-conf/default.nix
index d667cd3d51bb..d667cd3d51bb 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-ucm-conf/default.nix
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
index dd747bbbf6fc..ae2a9f21a6d6 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, alsaLib, gettext, makeWrapper, ncurses, libsamplerate, pciutils, which, fftw}:
+{lib, stdenv, fetchurl, alsa-lib, gettext, makeWrapper, ncurses, libsamplerate, pciutils, which, fftw}:
 
 stdenv.mkDerivation rec {
   pname = "alsa-utils";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ gettext makeWrapper ];
-  buildInputs = [ alsaLib ncurses libsamplerate fftw ];
+  buildInputs = [ alsa-lib ncurses libsamplerate fftw ];
 
   configureFlags = [ "--disable-xmlto" "--with-udev-rules-dir=$(out)/lib/udev/rules.d" ];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/anbox/kmod.nix b/nixpkgs/pkgs/os-specific/linux/anbox/kmod.nix
index 1ed6d9c5f723..9ce65cd87261 100644
--- a/nixpkgs/pkgs/os-specific/linux/anbox/kmod.nix
+++ b/nixpkgs/pkgs/os-specific/linux/anbox/kmod.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "anbox-modules";
-  version = "2019-11-15-" + kernel.version;
+  version = "2020-06-14-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "anbox";
     repo = "anbox-modules";
-    rev = "e0a237e571989987806b32881044c539db25e3e1";
-    sha256 = "1km1nslp4f5znwskh4bb1b61r1inw1dlbwiyyq3rrh0f0agf8d0v";
+    rev = "98f0f3b3b1eeb5a6954ca15ec43e150b76369086";
+    sha256 = "sha256-6xDJQ4YItdbYqle/9VNfOc7D80yFGd9cFyF+CuABaF0=";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
@@ -34,10 +34,9 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Anbox ashmem and binder drivers.";
     homepage = "https://github.com/anbox/anbox-modules";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
-    broken = (versionOlder kernel.version "4.4");
+    broken = kernel.kernelOlder "4.4" || kernel.kernelAtLeast "5.5";
     maintainers = with maintainers; [ edwtjo ];
   };
-
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix b/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix
index e542c0dbc634..fbe02d69f1a8 100644
--- a/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/android-udev-rules/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "android-udev-rules";
-  version = "20210302";
+  version = "20210501";
 
   src = fetchFromGitHub {
     owner = "M0Rf30";
     repo = "android-udev-rules";
     rev = version;
-    sha256 = "sha256-yIVHcaQAr2gKH/NZeN+vRmGS8OgyNeRsZkCYyqjsSsI=";
+    sha256 = "sha256-rlTulWclPqMl9LdHdcAtLARXGItiSeF3RX+neZrjgV4=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix b/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
index bb0c0b45d6e1..1b1fb4154512 100644
--- a/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
@@ -3,33 +3,44 @@
 , flex, bison
 , linuxHeaders ? stdenv.cc.libc.linuxHeaders
 , gawk
-, withPerl ? stdenv.hostPlatform == stdenv.buildPlatform && lib.any (lib.meta.platformMatch stdenv.hostPlatform) perl.meta.platforms, perl
-, withPython ? stdenv.hostPlatform == stdenv.buildPlatform && lib.any (lib.meta.platformMatch stdenv.hostPlatform) python.meta.platforms, python
+, withPerl ? stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform perl, perl
+, withPython ? stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform python, python
 , swig
 , ncurses
 , pam
 , libnotify
 , buildPackages
+, coreutils
+, gnugrep
+, gnused
+, kmod
+, writeShellScript
+, closureInfo
+, runCommand
 }:
 
 let
-  apparmor-series = "2.13";
-  apparmor-patchver = "6";
-  apparmor-version = apparmor-series + "." + apparmor-patchver;
+  apparmor-version = "3.0.1";
 
   apparmor-meta = component: with lib; {
     homepage = "https://apparmor.net/";
     description = "A mandatory access control system - ${component}";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom thoughtpolice joachifm ];
+    maintainers = with maintainers; [ joachifm julm phreedom thoughtpolice ];
     platforms = platforms.linux;
   };
 
   apparmor-sources = fetchurl {
-    url = "https://launchpad.net/apparmor/${apparmor-series}/${apparmor-version}/+download/apparmor-${apparmor-version}.tar.gz";
-    sha256 = "13xshy7905d9q9n8d8i0jmdi9m36wr525g4wlsp8k21n7yvvh9j4";
+    url = "https://launchpad.net/apparmor/${lib.versions.majorMinor apparmor-version}/${apparmor-version}/+download/apparmor-${apparmor-version}.tar.gz";
+    sha256 = "096zbg3v7b51x7f1ly61mzd3iy9alad6sd4lam98j2d6v5ragbcg";
   };
 
+  aa-teardown = writeShellScript "aa-teardown" ''
+    PATH="${lib.makeBinPath [coreutils gnused gnugrep]}:$PATH"
+    . ${apparmor-parser}/lib/apparmor/rc.apparmor.functions
+    remove_profiles
+  '';
+
   prePatchCommon = ''
     chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh
     patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh
@@ -45,12 +56,6 @@ let
       name = "0003-Added-missing-typedef-definitions-on-parser.patch";
       sha256 = "0yyaqz8jlmn1bm37arggprqz0njb4lhjni2d9c8qfqj0kll0bam0";
     })
-    (fetchpatch {
-      url = "https://git.alpinelinux.org/aports/plain/testing/apparmor/0007-Do-not-build-install-vim-file-with-utils-package.patch?id=74b8427cc21f04e32030d047ae92caa618105b53";
-      name = "0007-Do-not-build-install-vim-file-with-utils-package.patch";
-      sha256 = "1m4dx901biqgnr4w4wz8a2z9r9dxyw7wv6m6mqglqwf2lxinqmp4";
-    })
-    # (alpine patches {1,4,5,6,8} are needed for apparmor 2.11, but not 2.12)
     ];
 
   # Set to `true` after the next FIXME gets fixed or this gets some
@@ -121,7 +126,11 @@ let
       libapparmor.python
     ];
 
-    prePatch = prePatchCommon + ''
+    prePatch = prePatchCommon +
+      # Do not build vim file
+      lib.optionalString stdenv.hostPlatform.isMusl ''
+        sed -i ./utils/Makefile -e "/\<vim\>/d"
+      '' + ''
       substituteInPlace ./utils/apparmor/easyprof.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
       substituteInPlace ./utils/apparmor/aa.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
       substituteInPlace ./utils/logprof.conf --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
@@ -132,13 +141,21 @@ let
     installFlags = [ "DESTDIR=$(out)" "BINDIR=$(out)/bin" "VIM_INSTALL_PATH=$(out)/share" "PYPREFIX=" ];
 
     postInstall = ''
-      for prog in aa-audit aa-autodep aa-cleanprof aa-complain aa-disable aa-enforce aa-genprof aa-logprof aa-mergeprof aa-status aa-unconfined ; do
+      sed -i $out/bin/aa-unconfined -e "/my_env\['PATH'\]/d"
+      for prog in aa-audit aa-autodep aa-cleanprof aa-complain aa-disable aa-enforce aa-genprof aa-logprof aa-mergeprof aa-unconfined ; do
         wrapProgram $out/bin/$prog --prefix PYTHONPATH : "$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
       done
 
       substituteInPlace $out/bin/aa-notify \
         --replace /usr/bin/notify-send ${libnotify}/bin/notify-send \
         --replace /usr/bin/perl "${perl}/bin/perl -I ${libapparmor}/${perl.libPrefix}"
+
+      substituteInPlace $out/bin/aa-remove-unknown \
+       --replace "/lib/apparmor/rc.apparmor.functions" "${apparmor-parser}/lib/apparmor/rc.apparmor.functions"
+      wrapProgram $out/bin/aa-remove-unknown \
+       --prefix PATH : ${lib.makeBinPath [gawk]}
+
+      ln -s ${aa-teardown} $out/bin/aa-teardown
     '';
 
     inherit doCheck;
@@ -166,7 +183,7 @@ let
     prePatch = prePatchCommon;
     postPatch = "cd ./binutils";
     makeFlags = [ "LANGS=" "USE_SYSTEM=1" ];
-    installFlags = [ "DESTDIR=$(out)" "BINDIR=$(out)/bin" ];
+    installFlags = [ "DESTDIR=$(out)" "BINDIR=$(out)/bin" "SBINDIR=$(out)/bin" ];
 
     inherit doCheck;
 
@@ -187,6 +204,9 @@ let
       substituteInPlace ./parser/Makefile --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
       ## techdoc.pdf still doesn't build ...
       substituteInPlace ./parser/Makefile --replace "manpages htmlmanpages pdf" "manpages htmlmanpages"
+      substituteInPlace parser/rc.apparmor.functions \
+       --replace "/sbin/apparmor_parser" "$out/bin/apparmor_parser"
+      sed -i parser/rc.apparmor.functions -e '2i . ${./fix-rc.apparmor.functions.sh}'
     '';
     inherit patches;
     postPatch = "cd ./parser";
@@ -248,8 +268,35 @@ let
     meta = apparmor-meta "kernel patches";
   };
 
+  # Generate generic AppArmor rules in a file,
+  # from the closure of given rootPaths.
+  # To be included in an AppArmor profile like so:
+  # include "$(apparmorRulesFromClosure {} [pkgs.hello]}"
+  apparmorRulesFromClosure =
+    { # The store path of the derivation is given in $path
+      additionalRules ? []
+      # TODO: factorize here some other common paths
+      # that may emerge from use cases.
+    , baseRules ? [
+        "r $path"
+        "r $path/etc/**"
+        "r $path/share/**"
+        # Note that not all libraries are prefixed with "lib",
+        # eg. glibc-2.30/lib/ld-2.30.so
+        "mr $path/lib/**.so*"
+        # eg. glibc-2.30/lib/gconv/gconv-modules
+        "r $path/lib/**"
+      ]
+    , name ? ""
+    }: rootPaths: runCommand
+      ( "apparmor-closure-rules"
+      + lib.optionalString (name != "") "-${name}" ) {} ''
+    touch $out
+    while read -r path
+    do printf >>$out "%s,\n" ${lib.concatMapStringsSep " " (x: "\"${x}\"") (baseRules ++ additionalRules)}
+    done <${closureInfo {inherit rootPaths;}}/store-paths
+  '';
 in
-
 {
   inherit
     libapparmor
@@ -258,5 +305,6 @@ in
     apparmor-parser
     apparmor-pam
     apparmor-profiles
-    apparmor-kernel-patches;
+    apparmor-kernel-patches
+    apparmorRulesFromClosure;
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/apparmor/fix-rc.apparmor.functions.sh b/nixpkgs/pkgs/os-specific/linux/apparmor/fix-rc.apparmor.functions.sh
new file mode 100644
index 000000000000..ebc1baaa92d4
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/apparmor/fix-rc.apparmor.functions.sh
@@ -0,0 +1,32 @@
+aa_action() {
+  STRING=$1
+  shift
+  $*
+  rc=$?
+  if [ $rc -eq 0 ] ; then
+    aa_log_success_msg $"$STRING "
+  else
+    aa_log_failure_msg $"$STRING "
+  fi
+  return $rc
+}
+
+aa_log_success_msg() {
+   [ -n "$1" ] && echo -n $1
+   echo ": done."
+}
+
+aa_log_warning_msg() {
+   [ -n "$1" ] && echo -n $1
+   echo ": Warning."
+}
+
+aa_log_failure_msg() {
+   [ -n "$1" ] && echo -n $1
+   echo ": Failed."
+}
+
+aa_log_skipped_msg() {
+   [ -n "$1" ] && echo -n $1
+   echo ": Skipped."
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix b/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix
index 015419ee07a6..646e9f7b7b91 100644
--- a/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, pkg-config, alsaLib, glib, json-glib }:
+{ stdenv, lib, fetchFromGitHub, pkg-config, alsa-lib, glib, json-glib }:
 
 stdenv.mkDerivation {
   pname = "aseq2json";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   sourceRoot = "source/aseq2json";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib glib json-glib ];
+  buildInputs = [ alsa-lib glib json-glib ];
 
   installPhase = ''
     install -D --target-directory "$out/bin" aseq2json
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/builder.sh b/nixpkgs/pkgs/os-specific/linux/ati-drivers/builder.sh
deleted file mode 100644
index a9e5aaef3976..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/builder.sh
+++ /dev/null
@@ -1,302 +0,0 @@
-# TODO gentoo removes some tools because there are xorg sources (?)
-
-source $stdenv/setup
-set -x
-
-die(){ echo $@; exit 1; }
-
-unzip $src
-run_file=fglrx-$build/amd-driver-installer-$build-x86.x86_64.run
-sh $run_file --extract .
-
-for patch in $patches;do
-    patch -p1 < $patch
-done
-
-case "$system" in
-  x86_64-linux)
-    arch=x86_64
-    lib_arch=lib64
-    DIR_DEPENDING_ON_XORG_VERSION=xpic_64a
-  ;;
-  i686-linux)
-    arch=x86
-    lib_arch=lib
-    DIR_DEPENDING_ON_XORG_VERSION=xpic
-  ;;
-  *) exit 1;;
-esac
-
-# Handle/Build the kernel module.
-
-if test -z "$libsOnly"; then
-
-  kernelVersion=$(cd ${kernelDir}/lib/modules && ls)
-  kernelBuild=$(echo ${kernelDir}/lib/modules/$kernelVersion/build)
-  linuxsources=$(echo ${kernelDir}/lib/modules/$kernelVersion/source)
-
-  # note: maybe the .config file should be used to determine this ?
-  # current kbuild infrastructure allows using CONFIG_* defines
-  # but ati sources don't use them yet..
-  # copy paste from make.sh
-
-  setSMP(){
-
-    linuxincludes=$kernelBuild/include
-
-    # copied and stripped. source: make.sh:
-    # 3
-    # linux/autoconf.h may contain this: #define CONFIG_SMP 1
-
-    # Before 2.6.33 autoconf.h is under linux/.
-    # For 2.6.33 and later autoconf.h is under generated/.
-    if [ -f $linuxincludes/generated/autoconf.h ]; then
-        autoconf_h=$linuxincludes/generated/autoconf.h
-    else
-        autoconf_h=$linuxincludes/linux/autoconf.h
-    fi
-    src_file=$autoconf_h
-
-    [ -e $src_file ] || die "$src_file not found"
-
-    if [ `cat $src_file | grep "#undef" | grep "CONFIG_SMP" -c` = 0 ]; then
-      SMP=`cat $src_file | grep CONFIG_SMP | cut -d' ' -f3`
-      echo "file $src_file says: SMP=$SMP"
-    fi
-
-    if [ "$SMP" = 0 ]; then
-      echo "assuming default: SMP=$SMP"
-    fi
-    # act on final result
-    if [ ! "$SMP" = 0 ]; then
-      smp="-SMP"
-      def_smp=-D__SMP__
-    fi
-
-  }
-
-  setModVersions(){
-    ! grep CONFIG_MODVERSIONS=y $kernelBuild/.config ||
-    def_modversions="-DMODVERSIONS"
-    # make.sh contains much more code to determine this whether its enabled
-  }
-
-  # ==============================================================
-  # resolve if we are building for a kernel with a fix for CVE-2010-3081
-  # On kernels with the fix, use arch_compat_alloc_user_space instead
-  # of compat_alloc_user_space since the latter is GPL-only
-
-  COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space
-
-  for src_file in \
-    $kernelBuild/arch/x86/include/asm/compat.h \
-    $linuxsources/arch/x86/include/asm/compat.h \
-    $kernelBuild/include/asm-x86_64/compat.h \
-    $linuxsources/include/asm-x86_64/compat.h \
-    $kernelBuild/include/asm/compat.h;
-  do
-    if [ -e $src_file ];
-    then
-      break
-    fi
-  done
-  if [ ! -e $src_file ];
-    then
-    echo "Warning: x86 compat.h not found in kernel headers"
-    echo "neither arch/x86/include/asm/compat.h nor include/asm-x86_64/compat.h"
-    echo "could be found in $kernelBuild or $linuxsources"
-    echo ""
-  else
-    if [ `cat $src_file | grep -c arch_compat_alloc_user_space` -gt 0 ]
-    then
-      COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space
-    fi
-    echo "file $src_file says: COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE"
-  fi
-
-  # make.sh contains some code figuring out whether to use these or not..
-  PAGE_ATTR_FIX=0
-  setSMP
-  setModVersions
-  CC=gcc
-  MODULE=fglrx
-  LIBIP_PREFIX=$TMP/arch/$arch/lib/modules/fglrx/build_mod
-  [ -d $LIBIP_PREFIX ]
-  GCC_MAJOR="`gcc --version | grep -o -e ") ." | head -1 | cut -d " " -f 2`"
-
-  { # build .ko module
-    cd ./common/lib/modules/fglrx/build_mod/2.6.x
-    echo .lib${MODULE}_ip.a.GCC${GCC_MAJOR}.cmd
-    echo 'This is a dummy file created to suppress this warning: could not find /lib/modules/fglrx/build_mod/2.6.x/.libfglrx_ip.a.GCC4.cmd for /lib/modules/fglrx/build_mod/2.6.x/libfglrx_ip.a.GCC4' > lib${MODULE}_ip.a.GCC${GCC_MAJOR}.cmd
-
-    sed -i -e "s@COMPAT_ALLOC_USER_SPACE@$COMPAT_ALLOC_USER_SPACE@" ../kcl_ioctl.c
-
-    make CC=${CC} \
-      LIBIP_PREFIX=$(echo "$LIBIP_PREFIX" | sed -e 's|^\([^/]\)|../\1|') \
-      MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \
-      KVER=$kernelVersion \
-      KDIR=$kernelBuild \
-      PAGE_ATTR_FIX=$PAGE_ATTR_FIX \
-      -j4
-
-    cd $TMP
-  }
-
-fi
-
-{ # install
-  mkdir -p $out/lib/xorg
-  cp -r common/usr/include $out
-  cp -r common/usr/sbin $out
-  cp -r common/usr/share $out
-  mkdir $out/bin/
-  cp -f common/usr/X11R6/bin/* $out/bin/
-  # cp -r arch/$arch/lib $out/lib
-  # what are those files used for?
-  cp -r common/etc $out
-  cp -r $DIR_DEPENDING_ON_XORG_VERSION/usr/X11R6/$lib_arch/* $out/lib/xorg
-
-  # install kernel module
-  if test -z "$libsOnly"; then
-    t=$out/lib/modules/${kernelVersion}/kernel/drivers/misc
-    mkdir -p $t
-
-    cp ./common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko $t
-  fi
-
-  # should this be installed at all?
-  # its used by the example fglrx_gamma only
-  # don't use $out/lib/modules/dri because this will cause the kernel module
-  # aggregator code to see both: kernel version and the dri direcotry. It'll
-  # fail saying different kernel versions
-  cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/modules/dri $out/lib
-  cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/modules/dri/* $out/lib
-  cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/*.so* $out/lib
-  cp -r $TMP/arch/$arch/usr/X11R6/$lib_arch/fglrx/fglrx-libGL.so.1.2 $out/lib/fglrx-libGL.so.1.2
-  cp -r $TMP/arch/$arch/usr/$lib_arch/* $out/lib
-  ln -s libatiuki.so.1.0 $out/lib/libatiuki.so.1
-  ln -s fglrx-libGL.so.1.2 $out/lib/libGL.so.1
-  ln -s fglrx-libGL.so.1.2 $out/lib/libGL.so
-  # FIXME : This file is missing or has changed versions
-  #ln -s libfglrx_gamma.so.1.0 $out/lib/libfglrx_gamma.so.1
-  # make xorg use the ati version
-  ln -s $out/lib/xorg/modules/extensions/{fglrx/fglrx-libglx.so,libglx.so}
-  # Correct some paths that are hardcoded into binary libs.
-  if [ "$arch" ==  "x86_64" ]; then
-    for lib in \
-      xorg/modules/extensions/fglrx/fglrx-libglx.so \
-      xorg/modules/glesx.so \
-      dri/fglrx_dri.so \
-      fglrx_dri.so \
-      fglrx-libGL.so.1.2
-    do
-      oldPaths="/usr/X11R6/lib/modules/dri"
-      newPaths="/run/opengl-driver/lib/dri"
-      sed -i -e "s|$oldPaths|$newPaths|" $out/lib/$lib
-    done
-  else
-    oldPaths="/usr/X11R6/lib32/modules/dri\x00/usr/lib32/dri"
-    newPaths="/run/opengl-driver-32/lib/dri\x00/dev/null/dri"
-    sed -i -e "s|$oldPaths|$newPaths|" \
-      $out/lib/xorg/modules/extensions/fglrx/fglrx-libglx.so
-
-    for lib in \
-      dri/fglrx_dri.so \
-      fglrx_dri.so \
-      xorg/modules/glesx.so
-    do
-      oldPaths="/usr/X11R6/lib32/modules/dri/"
-      newPaths="/run/opengl-driver-32/lib/dri"
-      sed -i -e "s|$oldPaths|$newPaths|" $out/lib/$lib
-    done
-
-    oldPaths="/usr/X11R6/lib32/modules/dri\x00"
-    newPaths="/run/opengl-driver-32/lib/dri"
-    sed -i -e "s|$oldPaths|$newPaths|" $out/lib/fglrx-libGL.so.1.2
-  fi
-  # libstdc++ and gcc are needed by some libs
-  for pelib1 in \
-    fglrx_dri.so \
-    dri/fglrx_dri.so
-  do
-    patchelf --remove-needed libX11.so.6 $out/lib/$pelib1
-  done
-
-  for pelib2 in \
-    libatiadlxx.so \
-    xorg/modules/glesx.so \
-    dri/fglrx_dri.so \
-    fglrx_dri.so \
-    libaticaldd.so
-  do
-    patchelf --set-rpath $glibcDir/lib/:$libStdCxx/lib/ $out/lib/$pelib2
-  done
-}
-
-if test -z "$libsOnly"; then
-
-{ # build samples
-  mkdir -p $out/bin
-  mkdir -p samples
-  cd samples
-  tar xfz ../common/usr/src/ati/fglrx_sample_source.tgz
-  eval "$patchPhaseSamples"
-
-
-  ( # build and install fgl_glxgears
-    cd fgl_glxgears;
-    gcc -DGL_ARB_texture_multisample=1 -g \
-    -I$libGL/include -I$libGLU/include \
-    -I$out/include \
-    -L$libGL/lib -L$libGLU/lib -lGL -lGLU -lX11 -lm \
-    -o $out/bin/fgl_glxgears -Wall fgl_glxgears.c
-  )
-
-  true || ( # build and install
-
-    ###
-    ## FIXME ?
-    # doesn't build  undefined reference to `FGLRX_X11SetGamma'
-    # which should be contained in -lfglrx_gamma
-    # This should create $out/lib/libfglrx_gamma.so.1.0 ? because there is
-    # a symlink named libfglrx_gamma.so.1 linking to libfglrx_gamma.so.1.0 in $out/lib/
-
-    cd programs/fglrx_gamma
-    gcc -fPIC -I${libXxf86vm.dev}/include \
-      -I${xorgproto}/include \
-      -I$out/X11R6/include \
-      -L$out/lib \
-      -Wall -lm -lfglrx_gamma -lX11 -lXext -o $out/bin/fglrx_xgamma fglrx_xgamma.c
-  )
-
-  {
-    # patch and copy statically linked qt libs used by amdcccle
-    patchelf --set-interpreter $(echo $glibcDir/lib/ld-linux*.so.2) $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtCore.so.4 &&
-    patchelf  --set-rpath $gcc/$lib_arch/ $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtCore.so.4 &&
-    patchelf --set-rpath $gcc/$lib_arch/:$out/share/ati/:$libXrender/lib/:$libSM/lib/:$libICE/lib/:$libfontconfig/lib/:$libfreetype/lib/ $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtGui.so.4 &&
-    mkdir -p $out/share/ati
-    cp -r $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtCore.so.4 $out/share/ati/
-    cp -r $TMP/arch/$arch/usr/share/ati/$lib_arch/libQtGui.so.4 $out/share/ati/
-    # copy binaries and wrap them:
-    BIN=$TMP/arch/$arch/usr/X11R6/bin
-    patchelf --set-rpath $gcc/$lib_arch/:$out/share/ati/:$libXinerama/lib/:$libXrandr/lib/ $TMP/arch/$arch/usr/X11R6/bin/amdcccle
-    patchelf --set-rpath $libXrender/lib/:$libXrandr/lib/ $TMP/arch/$arch/usr/X11R6/bin/aticonfig
-    patchelf --shrink-rpath $BIN/amdcccle
-    for prog in $BIN/*; do
-      cp -f $prog $out/bin &&
-      patchelf --set-interpreter $(echo $glibcDir/lib/ld-linux*.so.2) $out/bin/$(basename $prog) &&
-      wrapProgram $out/bin/$(basename $prog) --prefix LD_LIBRARY_PATH : $out/lib/:$gcc/lib/:$out/share/ati/:$libXinerama/lib/:$libXrandr/lib/:$libfontconfig/lib/:$libfreetype/lib/${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
-    done
-  }
-
-  rm -f $out/lib/fglrx/switchlibglx && rm -f $out/lib/fglrx/switchlibGL
-
-}
-
-fi
-
-for p in $extraDRIlibs; do
-  for lib in $p/lib/*.so*; do
-    ln -s $lib $out/lib/
-  done
-done
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix b/nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix
deleted file mode 100644
index 768aa7d7e7d9..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/default.nix
+++ /dev/null
@@ -1,140 +0,0 @@
-{ stdenv, lib, fetchurl, kernel ? null, which
-, xorg, makeWrapper, glibc, patchelf, unzip
-, fontconfig, freetype, libGLU, libGL # for fgl_glxgears
-, # Whether to build the libraries only (i.e. not the kernel module or
-  # driver utils). Used to support 32-bit binaries on 64-bit
-  # Linux.
-  libsOnly ? false
-}:
-
-assert (!libsOnly) -> kernel != null;
-
-with lib;
-
-# This derivation requires a maximum of gcc49, Linux kernel 4.1 and xorg.xserver 1.17
-# and will not build or run using versions newer
-
-# If you want to use a different Xorg version probably
-# DIR_DEPENDING_ON_XORG_VERSION in builder.sh has to be adopted (?)
-# make sure libglx.so of ati is used. xorg.xorgserver does provide it as well
-# which is a problem because it doesn't contain the xorgserver patch supporting
-# the XORG_DRI_DRIVER_PATH env var.
-# See https://marc.info/?l=nix-dev&m=139641585515351 for a
-# workaround (TODO)
-
-# The gentoo ebuild contains much more "magic" and is usually a great resource to
-# find patches XD
-
-# http://wiki.cchtml.com/index.php/Main_Page
-
-# /usr/lib/dri/fglrx_dri.so must point to /run/opengl-driver/lib/fglrx_dri.so
-# This is done in the builder script.
-
-stdenv.mkDerivation rec {
-
-  version = "15.12";
-  pname = "ati-drivers";
-  build = "15.302";
-
-  linuxonly =
-    if stdenv.hostPlatform.system == "i686-linux" then
-      true
-    else if stdenv.hostPlatform.system == "x86_64-linux" then
-      true
-    else throw "ati-drivers are Linux only. Sorry. The build was stopped.";
-
-  name = pname + "-" + version + (optionalString (!libsOnly) "-${kernelDir.version}");
-
-  builder = ./builder.sh;
-  gcc = stdenv.cc.cc;
-  libXinerama = xorg.libXinerama;
-  libXrandr = xorg.libXrandr;
-  libXrender = xorg.libXrender;
-  libXxf86vm = xorg.libXxf86vm;
-  xorgproto = xorg.xorgproto;
-  libSM = xorg.libSM;
-  libICE = xorg.libICE;
-  libfreetype = freetype;
-  libfontconfig = fontconfig;
-  libStdCxx = stdenv.cc.cc.lib;
-
-  src = fetchurl {
-    url =
-    "https://www2.ati.com/drivers/linux/radeon-crimson-15.12-15.302-151217a-297685e.zip";
-    sha256 = "704f2dfc14681f76dae3b4120c87b1ded33cf43d5a1d800b6de5ca292bb61e58";
-    curlOpts = "--referer https://www.amd.com/en/support";
-  };
-
-  hardeningDisable = [ "pic" "format" ];
-
-  patchPhaseSamples = "patch -p2 < ${./patches/patch-samples.patch}";
-  patches = [
-    ./patches/15.12-xstate-fp.patch
-    ./patches/15.9-kcl_str.patch
-    ./patches/15.9-mtrr.patch
-    ./patches/15.9-preempt.patch
-    ./patches/15.9-sep_printf.patch ]
-  ++ optionals ( kernel != null &&
-                 (lib.versionAtLeast kernel.version "4.6") )
-               [ ./patches/kernel-4.6-get_user_pages.patch
-                 ./patches/kernel-4.6-page_cache_release-put_page.patch ]
-  ++ optionals ( kernel != null &&
-                 (lib.versionAtLeast kernel.version "4.7") )
-               [ ./patches/4.7-arch-cpu_has_pge-v2.patch ]
-  ++ optionals ( kernel != null &&
-                 (lib.versionAtLeast kernel.version "4.9") )
-               [ ./patches/4.9-get_user_pages.patch ];
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs =
-    [ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM
-      xorg.libXrandr xorg.libXxf86vm xorg.xorgproto xorg.imake xorg.libICE
-      patchelf
-      libGLU libGL
-      fontconfig
-      freetype
-      makeWrapper
-      which
-    ];
-
-  inherit libsOnly;
-
-  kernelDir = if libsOnly then null else kernel.dev;
-
-  # glibc only used for setting the binaries interpreter
-  glibcDir = glibc.out;
-
-  # outputs TODO: probably many fixes are needed;
-  LD_LIBRARY_PATH = makeLibraryPath
-    [ xorg.libXrender xorg.libXext xorg.libX11 xorg.libXinerama xorg.libSM
-      xorg.libXrandr xorg.libXxf86vm xorg.xorgproto xorg.imake xorg.libICE
-      libGLU libGL
-      fontconfig
-      freetype
-      stdenv.cc.cc
-    ];
-
-  # without this some applications like blender don't start, but they start
-  # with nvidia. This causes them to be symlinked to $out/lib so that they
-  # appear in /run/opengl-driver/lib which get's added to LD_LIBRARY_PATH
-
-  extraDRIlibs = [ xorg.libXrandr.out xorg.libXrender.out xorg.libXext.out
-                   xorg.libX11.out xorg.libXinerama.out xorg.libSM.out
-                   xorg.libICE.out ];
-
-  inherit libGLU libGL; # only required to build the examples
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "ATI Catalyst display drivers";
-    homepage = "http://support.amd.com/us/gpudownload/Pages/index.aspx";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ marcweber offline jerith666 ];
-    platforms = platforms.linux;
-    hydraPlatforms = [];
-    # Copied from the nvidia default.nix to prevent a store collision.
-    priority = 4;
-  };
-
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.12-xstate-fp.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.12-xstate-fp.patch
deleted file mode 100644
index 22e43fc0c7b6..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.12-xstate-fp.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Krzysztof Kolasa <kkolasa@winsoft.pl>
-Date: Thu, 26 Nov 2015 14:28:46 +0100
-Subject: [PATCH] Patch for kernel 4.4.0-rc2
-
-constant change of name XSTATE_XP to name XFEATURE_MASK_FP
----
- firegl_public.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
-index 3626c7b..f071d42 100644
---- a/common/lib/modules/fglrx/build_mod/firegl_public.c
-+++ b/common/lib/modules/fglrx/build_mod//firegl_public.c
-@@ -6463,7 +6463,11 @@ static int KCL_fpu_save_init(struct task_struct *tsk)
-       if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
- #else
- 	  copy_xregs_to_kernel(&fpu->state.xsave);
--      if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
-+      if (!(fpu->state.xsave.header.xfeatures & XFEATURE_MASK_FP))
-+#else
-+      if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
-+#endif
- #endif
-          return 1;
-    } else if (static_cpu_has(X86_FEATURE_FXSR)) {
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-kcl_str.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-kcl_str.patch
deleted file mode 100644
index 20c3bc8a169b..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-kcl_str.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/common/lib/modules/fglrx/build_mod/kcl_str.c	2015-09-13 13:47:30.000000000 -0400
-+++ b/common/lib/modules/fglrx/build_mod/kcl_str.c	2015-09-13 13:49:42.000000000 -0400
-@@ -169,7 +169,11 @@ int ATI_API_CALL KCL_STR_Strnicmp(const
-                                   const char* s2,
-                                   KCL_TYPE_SizeSigned count)
- {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
-     return strnicmp(s1, s2, count);
-+#else
-+    return strncasecmp(s1, s2, count);
-+#endif
- }
- 
- /** \brief Locate character in string
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-mtrr.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-mtrr.patch
deleted file mode 100644
index bdf70b4ccdc4..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-mtrr.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-09-19 23:43:22.000000000 -0400
-+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-09-19 23:52:07.000000000 -0400
-@@ -3442,7 +3442,11 @@ int ATI_API_CALL KCL_MEM_MTRR_Support(vo
- int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size)
- {
- #ifdef CONFIG_MTRR
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
-+    return arch_phys_wc_add(base, size);
-+#else
-     return mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
-+#endif
- #else /* !CONFIG_MTRR */
-     return -EPERM;
- #endif /* !CONFIG_MTRR */
-@@ -3451,7 +3455,12 @@ int ATI_API_CALL KCL_MEM_MTRR_AddRegionW
- int ATI_API_CALL KCL_MEM_MTRR_DeleteRegion(int reg, unsigned long base, unsigned long size)
- {
- #ifdef CONFIG_MTRR
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
-+    arch_phys_wc_del(reg);
-+    return reg;
-+#else
-     return mtrr_del(reg, base, size);
-+#endif
- #else /* !CONFIG_MTRR */
-     return -EPERM;
- #endif /* !CONFIG_MTRR */
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-preempt.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-preempt.patch
deleted file mode 100644
index c6598835133e..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-preempt.patch
+++ /dev/null
@@ -1,103 +0,0 @@
---- a/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-08-30 17:36:02.000000000 -0400
-+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-08-30 17:39:36.000000000 -0400
-@@ -21,6 +21,8 @@
- !!! since it requires changes to linux/init/main.c.
- #endif /* !MODULE */
- 
-+#include <linux/preempt.h>
-+
- // ============================================================
- #include <linux/version.h>
- 
-@@ -4997,7 +4999,9 @@ static unsigned int kas_spin_unlock(kas_
- unsigned long ATI_API_CALL KAS_GetExecutionLevel(void)
- {
-     unsigned long ret;
-+    preempt_disable();
-     ret = kas_GetExecutionLevel();
-+    preempt_enable();
-     return ret;
- }
- 
-@@ -5022,8 +5026,10 @@ unsigned int ATI_API_CALL KAS_Ih_Execute
-     KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X, 0x%08X\n", ih_routine, ih_context);
- 
-     //Prevent simultaneous entry on some SMP systems.
-+    preempt_disable();
-     if (test_and_set_bit(0, (void *)&(kasContext.in_interrupts[smp_processor_id()])))
-     {
-+    	preempt_enable();
-         KCL_DEBUG1(FN_FIREGL_KAS, "The processor is handling the interrupt\n");
-         return IRQ_NONE;
-     }
-@@ -5036,9 +5042,9 @@ unsigned int ATI_API_CALL KAS_Ih_Execute
- 
-     kasSetExecutionLevel(orig_level);
-     spin_unlock(&kasContext.lock_ih); 
--
-     clear_bit(0, (void *)&(kasContext.in_interrupts[smp_processor_id()]));
-     KCL_DEBUG5(FN_FIREGL_KAS,"%d\n", ret);
-+    preempt_enable();
- 
-     return ret;
- }
-@@ -5256,6 +5262,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_A
- 
-     KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X\n", hSpinLock);
- 
-+    preempt_disable();
-     spin_lock_info.routine_type = spinlock_obj->routine_type;
-     spin_lock_info.plock = &(spinlock_obj->lock);
- 
-@@ -5263,6 +5270,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_A
- 
-     spinlock_obj->acquire_type = spin_lock_info.acquire_type;
-     spinlock_obj->flags = spin_lock_info.flags;
-+    preempt_enable();
- 
-     KCL_DEBUG5(FN_FIREGL_KAS,"%d\n", ret);
-     return ret;
-@@ -6034,6 +6042,8 @@ unsigned int ATI_API_CALL KAS_Interlocke
- 
-     KCL_DEBUG5(FN_FIREGL_KAS,"0x%08X, 0x%08X, 0x%08X\n", hListHead, hListEntry, phPrevEntry);
- 
-+    preempt_disable();
-+
-     /* Protect the operation with spinlock */
-     spin_lock_info.routine_type = listhead_obj->routine_type;
-     spin_lock_info.plock = &(listhead_obj->lock);
-@@ -6041,6 +6051,7 @@ unsigned int ATI_API_CALL KAS_Interlocke
-     if (!kas_spin_lock(&spin_lock_info))
-     {
-         KCL_DEBUG_ERROR("Unable to grab list spinlock\n");
-+	preempt_enable();
-         return 0; /* No spinlock - no operation */
-     }
- 
-@@ -6065,6 +6076,7 @@ unsigned int ATI_API_CALL KAS_Interlocke
-     spin_unlock_info.flags = spin_lock_info.flags;
- 
-     ret = kas_spin_unlock(&spin_unlock_info);
-+    preempt_enable();
-     KCL_DEBUG5(FN_FIREGL_KAS,"%d", ret);
-     return ret;
- }
-@@ -6153,8 +6165,10 @@ unsigned int ATI_API_CALL KAS_Interlocke
-     spin_lock_info.routine_type = listhead_obj->routine_type;
-     spin_lock_info.plock = &(listhead_obj->lock);
- 
-+    preempt_disable();
-     if (!kas_spin_lock(&spin_lock_info))
-     {
-+        preempt_enable();
-         KCL_DEBUG_ERROR("Unable to grab list spinlock");
-         return 0; /* No spinlock - no operation */
-     }
-@@ -6178,6 +6192,7 @@ unsigned int ATI_API_CALL KAS_Interlocke
-     spin_unlock_info.flags = spin_lock_info.flags;
- 
-     ret = kas_spin_unlock(&spin_unlock_info);
-+    preempt_enable();
-     KCL_DEBUG5(FN_FIREGL_KAS,"%d", ret);
-     return ret;
- }
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-sep_printf.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-sep_printf.patch
deleted file mode 100644
index 3e4e8d6499a0..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/15.9-sep_printf.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-09-14 15:14:36.000000000 -0400
-+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-09-14 16:18:58.000000000 -0400
-@@ -649,6 +649,8 @@ static int firegl_major_proc_read(struct
-     *eof = 1;
- 
-     len = snprintf(buf, request, "%d\n", major);
-+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
-+    seq_printf(m, "%d\n", major);
- #else
-     len = seq_printf(m, "%d\n", major);
- #endif
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch
deleted file mode 100644
index cb86f5aff276..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.7-arch-cpu_has_pge-v2.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c
---- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.c	2015-12-18 19:47:41.000000000 +0100
-+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.c	2016-08-15 15:09:37.228538907 +0200
-@@ -4518,7 +4518,11 @@
-     write_cr0(cr0);
-     wbinvd();
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
-+    if (boot_cpu_has(X86_FEATURE_PGE))
-+#else
-     if (cpu_has_pge)
-+#endif
-     {
-         cr4 = READ_CR4();
-         WRITE_CR4(cr4 & ~X86_CR4_PGE);
-@@ -4532,7 +4536,11 @@
-     wbinvd();
-     __flush_tlb();
-     write_cr0(cr0 & 0xbfffffff);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
-+    if (boot_cpu_has(X86_FEATURE_PGE))
-+#else
-     if (cpu_has_pge)
-+#endif
-     {
-         WRITE_CR4(cr4);
-     }
-@@ -4559,7 +4567,11 @@
-     write_cr0(cr0);
-     wbinvd();
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
-+    if (boot_cpu_has(X86_FEATURE_PGE))
-+#else
-     if (cpu_has_pge)
-+#endif
-     {
-         cr4 = READ_CR4();
-         WRITE_CR4(cr4 & ~X86_CR4_PGE);
-@@ -4572,7 +4584,11 @@
-     wbinvd();
-     __flush_tlb();
-     write_cr0(cr0 & 0xbfffffff);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
-+    if (boot_cpu_has(X86_FEATURE_PGE))
-+#else
-     if (cpu_has_pge)
-+#endif
-     {
-         WRITE_CR4(cr4);
-     }
-diff -uNr 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h
---- 16.8/common/lib/modules/fglrx/build_mod/firegl_public.h	2015-12-18 19:47:41.000000000 +0100
-+++ 16.8b/common/lib/modules/fglrx/build_mod/firegl_public.h	2016-08-15 15:09:05.815141238 +0200
-@@ -650,9 +650,15 @@
- #define cpu_has_pat  test_bit(X86_FEATURE_PAT, (void *) &boot_cpu_data.x86_capability)
- #endif
- 
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
-+#ifndef boot_cpu_has(X86_FEATURE_PGE)
-+#define boot_cpu_has(X86_FEATURE_PGE) test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
-+#endif
-+#else
- #ifndef cpu_has_pge
- #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
- #endif
-+#endif
- 
- /* 2.6.29 defines pgprot_writecombine as a macro which resolves to a
-  * GPL-only function with the same name. So we always use our own
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.9-get_user_pages.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.9-get_user_pages.patch
deleted file mode 100644
index 8a6c42cdb1fc..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/4.9-get_user_pages.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit b3e4353fc68a6a024dcb95e2d61aa0afd7370233
-Author: Matt McHenry <matt@mchenryfamily.org>
-Date:   Fri Feb 3 20:19:41 2017
-
-    patch for 4.9 only
-
-diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
-index 4ce095f..3b591e1 100755
---- a/common/lib/modules/fglrx/build_mod/firegl_public.c
-+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
-@@ -3224,7 +3224,7 @@ int ATI_API_CALL KCL_LockUserPages(unsigned long vaddr, unsigned long* page_list
-     int ret;
- 
-     down_read(&current->mm->mmap_sem);
--    ret = get_user_pages(vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);
-+    ret = get_user_pages(vaddr, page_cnt, 1, (struct page **)page_list, NULL);
-     up_read(&current->mm->mmap_sem);
- 
-     return ret;
-@@ -3242,7 +3242,7 @@ int ATI_API_CALL KCL_LockReadOnlyUserPages(unsigned long vaddr, unsigned long* p
-     int ret;
- 
-     down_read(&current->mm->mmap_sem);
--    ret = get_user_pages(vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);
-+    ret = get_user_pages(vaddr, page_cnt, 0, (struct page **)page_list, NULL);
-     up_read(&current->mm->mmap_sem);
- 
-     return ret;
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-get_user_pages.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-get_user_pages.patch
deleted file mode 100644
index 1e7209ed5ed1..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-get_user_pages.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
-index 9c70211..b2242af 100755
---- a/common/lib/modules/fglrx/build_mod/firegl_public.c
-+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
-@@ -3220,7 +3220,7 @@ int ATI_API_CALL KCL_LockUserPages(unsigned long vaddr, unsigned long* page_list
-     int ret;
- 
-     down_read(&current->mm->mmap_sem);
--    ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);
-+    ret = get_user_pages(vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);
-     up_read(&current->mm->mmap_sem);
- 
-     return ret;
-@@ -3238,7 +3238,7 @@ int ATI_API_CALL KCL_LockReadOnlyUserPages(unsigned long vaddr, unsigned long* p
-     int ret;
- 
-     down_read(&current->mm->mmap_sem);
--    ret = get_user_pages(current, current->mm, vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);
-+    ret = get_user_pages(vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);
-     up_read(&current->mm->mmap_sem);
- 
-     return ret;
--- 
-2.9.2
-
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-page_cache_release-put_page.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-page_cache_release-put_page.patch
deleted file mode 100644
index 28820790e492..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/kernel-4.6-page_cache_release-put_page.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
-index b2242af..586129c 100755
---- a/common/lib/modules/fglrx/build_mod/firegl_public.c
-+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
-@@ -3249,7 +3249,7 @@ void ATI_API_CALL KCL_UnlockUserPages(unsigned long* page_list, unsigned int pag
-     unsigned int i;
-     for (i=0; i<page_cnt; i++)
-     {
--        page_cache_release((struct page*)page_list[i]);
-+        put_page((struct page*)page_list[i]);
-     }
- }
- 
--- 
-2.9.2
-
diff --git a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/patch-samples.patch b/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/patch-samples.patch
deleted file mode 100644
index 8bd24b1d022b..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ati-drivers/patches/patch-samples.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/samples/fgl_glxgears/fgl_glxgears.c b/samples/fgl_glxgears/fgl_glxgears.c
-index 6c8e313..2b8d035 100644
---- a/samples/fgl_glxgears/fgl_glxgears.c
-+++ b/samples/fgl_glxgears/fgl_glxgears.c
-@@ -1096,8 +1096,6 @@ static void event_loop(void)
-                   view_rotx -= 5.0;
-                }
-                else {
--                  r = XLookupString(&event.xkey, buffer, sizeof(buffer),
--                                    NULL, NULL);
-                   if (buffer[0] == 27) {
-                      /* escape */
-                      return;
-
-
-diff -Nur a/samples/fgl_glxgears/fgl_glxgears.c b/samples/fgl_glxgears/fgl_glxgears.c
---- a/samples/fgl_glxgears/fgl_glxgears.c	2012-08-29 09:59:03.000000000 +0300
-+++ b/samples/fgl_glxgears/fgl_glxgears.c	2013-09-07 09:26:11.034723135 +0300
-@@ -78,7 +78,6 @@
- #endif // _WIN32
- 
- #define INT_PTR ptrdiff_t
--#include <GL/glATI.h>
- 
- #ifdef _WIN32
- #include <GL/wglATI.h>
diff --git a/nixpkgs/pkgs/os-specific/linux/atop/atop.service.patch b/nixpkgs/pkgs/os-specific/linux/atop/atop.service.patch
new file mode 100644
index 000000000000..3ef59e60cbc0
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/atop/atop.service.patch
@@ -0,0 +1,10 @@
+--- a/atop.service
++++ b/atop.service
+@@ -9,5 +9,6 @@
+ Environment=LOGPATH=/var/log/atop
+-EnvironmentFile=/etc/default/atop
++EnvironmentFile=-/etc/default/atop
+ ExecStartPre=/bin/sh -c 'test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL"'
+ ExecStartPre=/bin/sh -c 'test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS"'
++ExecStartPre=/bin/sh -c 'mkdir -p "${LOGPATH}"'
+ ExecStart=/bin/sh -c 'exec @out@/bin/atop ${LOGOPTS} -w "${LOGPATH}/atop_$(date +%%Y%%m%%d)" ${LOGINTERVAL}'
diff --git a/nixpkgs/pkgs/os-specific/linux/atop/atopacct.service.patch b/nixpkgs/pkgs/os-specific/linux/atop/atopacct.service.patch
new file mode 100644
index 000000000000..9f2cd8f2e9ca
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/atop/atopacct.service.patch
@@ -0,0 +1,7 @@
+--- a/atopacct.service
++++ b/atopacct.service
+@@ -9,3 +9,3 @@
+ Type=forking
+-PIDFile=/var/run/atopacctd.pid
++PIDFile=/run/atopacctd.pid
+ ExecStart=@out@/bin/atopacctd
diff --git a/nixpkgs/pkgs/os-specific/linux/atop/default.nix b/nixpkgs/pkgs/os-specific/linux/atop/default.nix
index e1b64c0a4b5c..50a3e3e63168 100644
--- a/nixpkgs/pkgs/os-specific/linux/atop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/atop/default.nix
@@ -1,4 +1,14 @@
-{lib, stdenv, fetchurl, zlib, ncurses}:
+{ lib
+, stdenv
+, fetchurl
+, zlib
+, ncurses
+, findutils
+, systemd
+, python3
+# makes the package unfree via pynvml
+, withAtopgpu ? false
+}:
 
 stdenv.mkDerivation rec {
   pname = "atop";
@@ -9,31 +19,52 @@ stdenv.mkDerivation rec {
     sha256 = "nsLKOlcWkvfvqglfmaUQZDK8txzCLNbElZfvBIEFj3I=";
   };
 
-  buildInputs = [zlib ncurses];
+  nativeBuildInputs = lib.optionals withAtopgpu [ python3.pkgs.wrapPython ];
+  buildInputs = [ zlib ncurses ] ++ lib.optionals withAtopgpu [ python3 ];
+  pythonPath = lib.optionals withAtopgpu [ python3.pkgs.pynvml ];
 
   makeFlags = [
-    "SCRPATH=$out/etc/atop"
-    "LOGPATH=/var/log/atop"
-    "INIPATH=$out/etc/rc.d/init.d"
-    "SYSDPATH=$out/lib/systemd/system"
-    "CRNPATH=$out/etc/cron.d"
-    "DEFPATH=$out/etc/default"
-    "ROTPATH=$out/etc/logrotate.d"
+    "DESTDIR=$(out)"
+    "BINPATH=/bin"
+    "SBINPATH=/bin"
+    "MAN1PATH=/share/man/man1"
+    "MAN5PATH=/share/man/man5"
+    "MAN8PATH=/share/man/man8"
+    "SYSDPATH=/lib/systemd/system"
+    "PMPATHD=/lib/systemd/system-sleep"
+  ];
+
+  patches = [
+    # Fix paths in atop.service, atop-rotate.service, atopgpu.service, atopacct.service,
+    # and atop-pm.sh
+    ./fix-paths.patch
+    # Don't fail on missing /etc/default/atop, make sure /var/log/atop exists pre-start
+    ./atop.service.patch
+    # Specify PIDFile in /run, not /var/run to silence systemd warning
+    ./atopacct.service.patch
   ];
 
   preConfigure = ''
-    sed -e "s@/usr/@$out/@g" -i $(find . -type f )
-    sed -e "/mkdir.*LOGPATH/s@mkdir@echo missing dir @" -i Makefile
-    sed -e "/touch.*LOGPATH/s@touch@echo should have created @" -i Makefile
-    sed -e 's/chown/true/g' -i Makefile
-    sed -e '/chkconfig/d' -i Makefile
-    sed -e 's/chmod 04711/chmod 0711/g' -i Makefile
+    for f in *.{sh,service}; do
+      findutils=${findutils} systemd=${systemd} substituteAllInPlace "$f"
+    done
+
+    substituteInPlace Makefile --replace 'chown' 'true'
+    substituteInPlace Makefile --replace 'chmod 04711' 'chmod 0711'
   '';
 
   installTargets = [ "systemdinstall" ];
   preInstall = ''
-    mkdir -p "$out"/{bin,sbin}
+    mkdir -p $out/bin
   '';
+  postInstall = ''
+    # remove extra files we don't need
+    rm -r $out/{var,etc} $out/bin/atop{sar,}-${version}
+  '' + (if withAtopgpu then ''
+    wrapPythonPrograms
+  '' else ''
+    rm $out/lib/systemd/system/atopgpu.service $out/bin/atopgpud $out/share/man/man8/atopgpud.8
+  '');
 
   meta = with lib; {
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/atop/fix-paths.patch b/nixpkgs/pkgs/os-specific/linux/atop/fix-paths.patch
new file mode 100644
index 000000000000..e6cd631d3c11
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/atop/fix-paths.patch
@@ -0,0 +1,48 @@
+--- a/atop.service
++++ b/atop.service
+@@ -12,4 +12,4 @@
+ ExecStartPre=/bin/sh -c 'test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS"'
+-ExecStart=/bin/sh -c 'exec /usr/bin/atop ${LOGOPTS} -w "${LOGPATH}/atop_$(date +%%Y%%m%%d)" ${LOGINTERVAL}'
+-ExecStartPost=/usr/bin/find "${LOGPATH}" -name "atop_*" -mtime +${LOGGENERATIONS} -exec rm -v {} \;
++ExecStart=/bin/sh -c 'exec @out@/bin/atop ${LOGOPTS} -w "${LOGPATH}/atop_$(date +%%Y%%m%%d)" ${LOGINTERVAL}'
++ExecStartPost=@findutils@/bin/find "${LOGPATH}" -name "atop_*" -mtime +${LOGGENERATIONS} -exec rm -v {} \;
+ KillSignal=SIGUSR2
+
+--- a/atop-rotate.service
++++ b/atop-rotate.service
+@@ -4,3 +4,3 @@
+ [Service]
+ Type=oneshot
+-ExecStart=/usr/bin/systemctl try-restart atop.service
++ExecStart=@systemd@/bin/systemctl try-restart atop.service
+
+--- a/atopgpu.service
++++ b/atopgpu.service
+@@ -6,5 +6,5 @@
+
+ [Service]
+-ExecStart=/usr/sbin/atopgpud
++ExecStart=@out@/bin/atopgpud
+ Type=oneshot
+ RemainAfterExit=yes
+
+--- a/atopacct.service
++++ b/atopacct.service
+@@ -10,3 +10,3 @@
+ PIDFile=/var/run/atopacctd.pid
+-ExecStart=/usr/sbin/atopacctd
++ExecStart=@out@/bin/atopacctd
+
+--- a/atop-pm.sh
++++ b/atop-pm.sh
+@@ -2,8 +2,8 @@
+
+ case "$1" in
+-	pre)	/usr/bin/systemctl stop atop
++	pre)	@systemd@/bin/systemctl stop atop
+ 		exit 0
+ 		;;
+-	post)	/usr/bin/systemctl start atop
++	post)	@systemd@/bin/systemctl start atop
+ 		exit 0
+ 		;;
diff --git a/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix b/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix
index 3a6ec67519e1..71c7863cfa85 100644
--- a/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix
+++ b/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix
@@ -1,9 +1,9 @@
 {
-  version = "2021.0";
+  version = "2021.1";
 
   sha256 = {
-    batman-adv = "1898y0m8sgca0dmhyfkpmx2g6qc0b1xvh5nm7cvnhwl9h2jrp62s";
-    alfred = "0jr4wbz81ijd03ssfxb9mqlj3zbx2k495lsl0np262hyla6w0qm0";
-    batctl = "1r01a8zxivq4slwc81dgg9qknqsli8qw17csfj95321gjpqqpv4w";
+    batman-adv = "1l1lk41h4chymrb41ihqrr3p80xdwhhp1kkksr157mzailyq8xxz";
+    alfred = "122y92vqrpp3g6dbjfv8hkhwjlfa3skr91lbzicr0pw8mm6wzqll";
+    batctl = "0xp1cqcw0g0irgw9yhkch01rbn39gzvfxv8b2yya32vbnkmqrcj4";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/bcc/default.nix b/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
index 4235ecb38d34..221f38faa879 100644
--- a/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
@@ -6,7 +6,7 @@
 
 python.pkgs.buildPythonApplication rec {
   pname = "bcc";
-  version = "0.19.0";
+  version = "0.20.0";
 
   disabled = !stdenv.isLinux;
 
@@ -14,12 +14,12 @@ python.pkgs.buildPythonApplication rec {
     owner = "iovisor";
     repo = "bcc";
     rev = "v${version}";
-    sha256 = "sha256:0k807vzznlb2icczw64ph6q28605kvghya2kd4h3c7jmap6gq1qg";
+    sha256 = "1xnpz2zv445dp5h0160drv6xlvrnwfj23ngc4dp3clcd59jh1baq";
   };
   format = "other";
 
   buildInputs = with llvmPackages; [
-    llvm clang-unwrapped kernel
+    llvm llvm.dev libclang kernel
     elfutils luajit netperf iperf
     systemtap.stapBuild flex bash
     libbpf
@@ -32,7 +32,7 @@ python.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = [ python.pkgs.netaddr ];
-  nativeBuildInputs = [ makeWrapper cmake flex bison ]
+  nativeBuildInputs = [ makeWrapper cmake flex bison llvmPackages.llvm.dev ]
     # libelf is incompatible with elfutils-libelf
     ++ lib.filter (x: x != libelf) kernel.moduleBuildDependencies;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/default.nix b/nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/default.nix
new file mode 100644
index 000000000000..920732a2020d
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/default.nix
@@ -0,0 +1,113 @@
+{ stdenvNoCC, lib, fetchzip, pkgs
+}:
+let
+
+  prebuilt_crt = fetchzip {
+    url =  "https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+archive/98dce673ad97a9640c5d90bbb1c718e75c21e071/lib/gcc/aarch64-linux-android/4.9.x.tar.gz";
+    sha256 = "sha256-LLD2OJi78sNN5NulOsJZl7Ei4F1EUYItGG6eUsKWULc=";
+    stripRoot = false;
+  };
+
+  prebuilt_libs = fetchzip {
+    url = "https://android.googlesource.com/platform/prebuilts/ndk/+archive/f2c77d8ba8a7f5c2d91771e31164f29be0b8ff98/platform/platforms/android-30/arch-arm64/usr/lib.tar.gz";
+    sha256 = "sha256-TZBV7+D1QvKOCEi+VNGT5SStkgj0xRbyWoLH65zSrjw=";
+    stripRoot = false;
+  };
+
+  prebuilt_ndk_crt = fetchzip {
+    url = "https://android.googlesource.com/toolchain/prebuilts/ndk/r23/+archive/6c5fa4c0d3999b9ee932f6acbd430eb2f31f3151/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/30.tar.gz";
+    sha256 = "sha256-KHw+cCwAwlm+5Nwp1o8WONqdi4BBDhFaVVr+7GxQ5uE=";
+    stripRoot = false;
+  };
+
+  ndk_support_headers = fetchzip {
+    url ="https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/0e7f808fa26cce046f444c9616d9167dafbfb272/clang-r416183b/include/c++/v1/support.tar.gz";
+    sha256 = "sha256-NBv7Pk1CEaz8ns9moleEERr3x/rFmVmG33LgFSeO6fY=";
+    stripRoot = false;
+  };
+
+  kernelHeaders = pkgs.makeLinuxHeaders {
+    version = "android-common-11-5.4";
+    src = fetchzip {
+      url = "https://android.googlesource.com/kernel/common/+archive/48ffcbf0b9e7f0280bfb8c32c68da0aaf0fdfef6.tar.gz";
+      sha256 = "1y7cmlmcr5vdqydd9n785s139yc4aylc3zhqa59xsylmkaf5habk";
+      stripRoot = false;
+    };
+  };
+
+in
+stdenvNoCC.mkDerivation rec {
+  pname = "bionic-prebuilt";
+  version = "ndk-release-r23";
+
+  src = fetchzip {
+    url = "https://android.googlesource.com/platform/bionic/+archive/00e8ce1142d8823b0d2fc8a98b40119b0f1f02cd.tar.gz";
+    sha256 = "10z5mp4w0acvjvgxv7wlqa7m70hcyarmjdlfxbd9rwzf4mrsr8d1";
+    stripRoot = false;
+  };
+
+  NIX_DONT_SET_RPATH = true;
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  patches = [
+    ./ndk-version.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace libc/include/sys/cdefs.h --replace \
+      "__has_builtin(__builtin_umul_overflow)" "1"
+    substituteInPlace libc/include/bits/ioctl.h --replace \
+      "!defined(BIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD)" "0"
+  '';
+
+  installPhase= ''
+    # copy the bionic headers
+    mkdir -p $out/include/support $out/include/android
+    cp -vr libc/include/* $out/include
+    # copy the kernel headers
+    cp -vr ${kernelHeaders}/include/*  $out/include/
+
+    chmod -R +w $out/include/linux
+
+    # fix a bunch of kernel headers so that things can actually be found
+    sed -i 's,struct epoll_event {,#include <bits/epoll_event.h>\nstruct Xepoll_event {,' $out/include/linux/eventpoll.h
+    sed -i 's,struct in_addr {,typedef unsigned int in_addr_t;\nstruct in_addr {,' $out/include/linux/in.h
+    sed -i 's,struct udphdr {,struct Xudphdr {,' $out/include/linux/udp.h
+    sed -i 's,union semun {,union Xsemun {,' $out/include/linux/sem.h
+    sed -i 's,struct __kernel_sockaddr_storage,#define sockaddr_storage __kernel_sockaddr_storage\nstruct __kernel_sockaddr_storage,' $out/include/linux/socket.h
+    sed -i 's,#ifndef __UAPI_DEF_.*$,#if 1,' $out/include/linux/libc-compat.h
+    substituteInPlace $out/include/linux/in.h --replace "__be32		imr_" "struct in_addr		imr_"
+    substituteInPlace $out/include/linux/in.h --replace "__be32		imsf_" "struct in_addr		imsf_"
+    substituteInPlace $out/include/linux/sysctl.h --replace "__unused" "_unused"
+
+    # what could possibly live in <linux/compiler.h>
+    touch $out/include/linux/compiler.h
+
+    # copy the support headers
+    cp -vr ${ndk_support_headers}* $out/include/support/
+
+    mkdir $out/lib
+    cp -v ${prebuilt_crt.out}/*.o $out/lib/
+    cp -v ${prebuilt_crt.out}/libgcc.a $out/lib/
+    cp -v ${prebuilt_ndk_crt.out}/*.o $out/lib/
+    for i in libc.so libm.so libdl.so liblog.so; do
+      cp -v ${prebuilt_libs.out}/$i $out/lib/
+    done
+
+    mkdir -p $dev/include
+    cp -v $out/include/*.h $dev/include/
+  '';
+
+  outputs = [ "out" "dev" ];
+  passthru.linuxHeaders = kernelHeaders;
+
+  meta = with lib; {
+    description = "The Android libc implementation";
+    homepage    = "https://android.googlesource.com/platform/bionic/";
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ s1341 ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/ndk-version.patch b/nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/ndk-version.patch
new file mode 100644
index 000000000000..a6842ed479ff
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/bionic-prebuilt/ndk-version.patch
@@ -0,0 +1,42 @@
+--- a/libc/include/android/ndk-version.h	2021-04-01 16:08:03.109183965 +0300
++++ b/libc/include/android/ndk-version.h	2021-04-01 16:07:19.811424641 +0300
+@@ -0,0 +1,39 @@
++#pragma once
++
++/**
++ * Set to 1 if this is an NDK, unset otherwise. See
++ * https://android.googlesource.com/platform/bionic/+/master/docs/defines.md.
++ */
++#define __ANDROID_NDK__ 1
++
++/**
++ * Major version of this NDK.
++ *
++ * For example: 16 for r16.
++ */
++#define __NDK_MAJOR__ 22
++
++/**
++ * Minor version of this NDK.
++ *
++ * For example: 0 for r16 and 1 for r16b.
++ */
++#define __NDK_MINOR__ 0
++
++/**
++ * Set to 0 if this is a release build, or 1 for beta 1,
++ * 2 for beta 2, and so on.
++ */
++#define __NDK_BETA__ 0
++
++/**
++ * Build number for this NDK.
++ *
++ * For a local development build of the NDK, this is -1.
++ */
++#define __NDK_BUILD__ 7026061
++
++/**
++ * Set to 1 if this is a canary build, 0 if not.
++ */
++#define __NDK_CANARY__ 0
diff --git a/nixpkgs/pkgs/os-specific/linux/bluez/default.nix b/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
index 2e342fbc0392..f995c8c5c1e2 100644
--- a/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bluez/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , lib
 , fetchurl
-, alsaLib
+, alsa-lib
 , dbus
 , glib
 , json_c
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     dbus
     glib
     json_c
diff --git a/nixpkgs/pkgs/os-specific/linux/bpftool/default.nix b/nixpkgs/pkgs/os-specific/linux/bpftool/default.nix
deleted file mode 100644
index d8c64738d829..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/bpftool/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, stdenv
-, libopcodes, libbfd, libelf
-, linuxPackages_latest, zlib
-, python3
-}:
-
-stdenv.mkDerivation {
-  pname = "bpftool";
-  inherit (linuxPackages_latest.kernel) version src;
-
-  nativeBuildInputs = [ python3 ];
-  buildInputs = [ libopcodes libbfd libelf zlib ];
-
-  preConfigure = ''
-    patchShebangs scripts/bpf_helpers_doc.py
-
-    cd tools/bpf/bpftool
-    substituteInPlace ./Makefile \
-      --replace '/usr/local' "$out" \
-      --replace '/usr'       "$out" \
-      --replace '/sbin'      '/bin'
-  '';
-
-  meta = with lib; {
-    description = "Debugging/program analysis tool for the eBPF subsystem";
-    license     = [ licenses.gpl2 licenses.bsd2 ];
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ thoughtpolice ];
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/bpftools/default.nix b/nixpkgs/pkgs/os-specific/linux/bpftools/default.nix
new file mode 100644
index 000000000000..3e20efa9f012
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/bpftools/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv
+, libopcodes, libbfd, libelf, readline
+, linuxPackages_latest, zlib
+, python3, bison, flex
+}:
+
+stdenv.mkDerivation {
+  pname = "bpftools";
+  inherit (linuxPackages_latest.kernel) version src;
+
+  nativeBuildInputs = [ python3 bison flex ];
+  buildInputs = [ libopcodes libbfd libelf zlib readline ];
+
+  preConfigure = ''
+    patchShebangs scripts/bpf_helpers_doc.py
+
+    cd tools/bpf
+    substituteInPlace ./bpftool/Makefile \
+      --replace '/usr/local' "$out" \
+      --replace '/usr'       "$out" \
+      --replace '/sbin'      '/bin'
+  '';
+
+  buildFlags = [ "bpftool" "bpf_asm" "bpf_dbg" ];
+
+  installPhase = ''
+    make -C bpftool install
+    install -Dm755 -t $out/bin bpf_asm
+    install -Dm755 -t $out/bin bpf_dbg
+  '';
+
+  meta = with lib; {
+    description = "Debugging/program analysis tools for the eBPF subsystem";
+    license     = [ licenses.gpl2 licenses.bsd2 ];
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix b/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
index 701fed06bb62..650e85df517d 100644
--- a/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
@@ -6,22 +6,22 @@
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner  = "iovisor";
     repo   = "bpftrace";
     rev    = "v${version}";
-    sha256 = "0njbixkrpdl9gjnkzg0ybmqsva0ydfda5vms66v8ij7xida2qy07";
+    sha256 = "sha256-DZO47AH506DBVH/AuvOF3JfpRxv/D/lmzVg8WOH9Dqo=";
   };
 
   buildInputs = with llvmPackages;
-    [ llvm clang-unwrapped
+    [ llvm libclang
       kernel elfutils libelf bcc
       libbpf libbfd libopcodes
     ];
 
-  nativeBuildInputs = [ cmake pkg-config flex bison ]
+  nativeBuildInputs = [ cmake pkg-config flex bison llvmPackages.llvm.dev ]
     # libelf is incompatible with elfutils-libelf
     ++ lib.filter (x: x != libelf) kernel.moduleBuildDependencies;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/busybox/default.nix b/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
index 6c034e1c2af0..4949cd7c14a8 100644
--- a/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
@@ -32,7 +32,7 @@ let
     CONFIG_FEATURE_WTMP n
   '';
 
-  # The debian version lacks behind the upstream version and also contains
+  # The debian version lags behind the upstream version and also contains
   # a debian-specific suffix. We only fetch the debian repository to get the
   # default.script
   debianVersion = "1.30.1-6";
@@ -49,14 +49,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "busybox";
-  version = "1.32.1";
+  version = "1.33.1";
 
   # Note to whoever is updating busybox: please verify that:
   # nix-build pkgs/stdenv/linux/make-bootstrap-tools.nix -A test
   # still builds after the update.
   src = fetchurl {
     url = "https://busybox.net/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "1vhd59qmrdyrr1q7rvxmyl96z192mxl089hi87yl0hcp6fyw8mwx";
+    sha256 = "0a0dcvsh7nxnhxc5y73fky0z30i9p7r30qfidm2akn0n5fywdkhj";
   };
 
   hardeningDisable = [ "format" "pie" ]
@@ -134,7 +134,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Tiny versions of common UNIX utilities in a single small executable";
     homepage = "https://busybox.net/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ TethysSvensson ];
     platforms = platforms.linux;
     priority = 10;
diff --git a/nixpkgs/pkgs/os-specific/linux/catfs/default.nix b/nixpkgs/pkgs/os-specific/linux/catfs/default.nix
index 0ca585fab47b..dbb525e0e298 100644
--- a/nixpkgs/pkgs/os-specific/linux/catfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/catfs/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0zca0c4n2p9s5kn8c9f9lyxdf3df88a63nmhprpgflj86bh8wgf5";
   };
 
-  cargoSha256 = "0v6lxwj4vcph32np68awpncafvf1dwcik9a2asa0lkb7kmfdjsjk";
+  cargoSha256 = "1agcwq409s40kyij487wjrp8mj7942r9l2nqwks4xqlfb0bvaimf";
 
   cargoPatches = [
     # update cargo lock
diff --git a/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix
index 38f958fe9dd3..8c587a401960 100644
--- a/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cifs-utils";
-  version = "6.12";
+  version = "6.13";
 
   src = fetchurl {
     url = "mirror://samba/pub/linux-cifs/cifs-utils/${pname}-${version}.tar.bz2";
-    sha256 = "1vw570pvir73kl4y6fhd6ns936ankimkhb1ii43yh8lr0p1xqbcj";
+    sha256 = "sha256-Q9h4bIYTysz6hJEwgcHWK8JAlXWFTPiVsFtIrwhj0FY=";
   };
 
   nativeBuildInputs = [ autoreconfHook docutils pkg-config ];
diff --git a/nixpkgs/pkgs/os-specific/linux/conky/default.nix b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
index 0e7eaa19b4de..9bd8890e7134 100644
--- a/nixpkgs/pkgs/os-specific/linux/conky/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
@@ -68,13 +68,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "conky";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "brndnmtthws";
     repo = "conky";
     rev = "v${version}";
-    sha256 = "sha256-qQx9+Z1OAQlbHupflzHD5JV4NqedoF8A57F1+rPT3/o=";
+    sha256 = "sha256-x6bR5E5LIvKWiVM15IEoUgGas/hcRp3F/O4MTOhVPb8=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/cpufrequtils/default.nix b/nixpkgs/pkgs/os-specific/linux/cpufrequtils/default.nix
index d099a62bc810..6f94d0f89254 100644
--- a/nixpkgs/pkgs/os-specific/linux/cpufrequtils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cpufrequtils/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Tools to display or change the CPU governor settings";
     homepage = "http://ftp.be.debian.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
+    license = licenses.gpl2Only;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix b/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix
index bbd8d35403b5..f09679ba2128 100644
--- a/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix
@@ -1,14 +1,14 @@
 { fetchFromGitHub, lib, stdenv, kernel ? false }:
 
 stdenv.mkDerivation rec {
-  pname = "cryptodev-linux-1.11";
+  pname = "cryptodev-linux-1.12";
   name = "${pname}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "cryptodev-linux";
     repo = "cryptodev-linux";
     rev = pname;
-    sha256 = "1ky850qiyacq8p3lng7n3w6h3x2clqrz4lkv2cv3psy92mg9pvc9";
+    sha256 = "sha256-vJQ10rG5FGbeEOqCUmH/pZ0P77kAW/MtUarywbtIyHw=";
   };
 
   hardeningDisable = [ "pic" ];
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Device that allows access to Linux kernel cryptographic drivers";
     homepage = "http://cryptodev-linux.org/";
+    maintainers = with lib.maintainers; [ fortuneteller2k ];
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/dbus-broker/default.nix b/nixpkgs/pkgs/os-specific/linux/dbus-broker/default.nix
index bffc90260c18..c6f1c1d82504 100644
--- a/nixpkgs/pkgs/os-specific/linux/dbus-broker/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dbus-broker/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dbus-broker";
-  version = "22";
+  version = "28";
 
   src = fetchFromGitHub {
     owner  = "bus1";
     repo   = "dbus-broker";
     rev    = "v${version}";
-    sha256 = "0vxr73afix5wjxy8g4cckwhl242rrlazm52673iwmdyfz5nskj2x";
+    sha256 = "1rsn74x6yhyl9w7jqgnzgzyhp9cln1602jyzpw5qvrkdk5b7zzgs";
     fetchSubmodules = true;
   };
 
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ dbus linuxHeaders systemd ];
 
+  mesonFlags = [ "-D=system-console-users=gdm,sddm,lightdm" ];
+
   PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
   PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user";
   PKG_CONFIG_SYSTEMD_CATALOGDIR = "${placeholder "out"}/lib/systemd/catalog";
diff --git a/nixpkgs/pkgs/os-specific/linux/dlm/default.nix b/nixpkgs/pkgs/os-specific/linux/dlm/default.nix
index 9e81ea38348b..3b6f4773a29c 100644
--- a/nixpkgs/pkgs/os-specific/linux/dlm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dlm/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1r3w7my0g3v2ya317qnvjx8wnagjahpj7yx72a65hf2pjbf5x42p";
   };
 
-  cargoSha256 = "OFMCsUmrRYlobiUAqm1huuzDxdf1BWmU2RqZ9Y6Yjew=";
+  cargoSha256 = "01a8k60qnx2pgxb2adgw30c2hjb60w6230khm5hyqgmp7z4rm8k8";
 
   meta = with lib; {
     description = "A stupid simple graphical login manager";
diff --git a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
index e71da643bb42..acb3da11fd19 100644
--- a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
@@ -8,14 +8,14 @@
 
 let
   mod = kernel != null;
-
+  dpdkVersion = "21.02";
 in stdenv.mkDerivation rec {
-  name = "dpdk-${version}" + lib.optionalString mod "-${kernel.version}";
-  version = "20.05";
+  pname = "dpdk";
+  version = "${dpdkVersion}" + lib.optionalString mod "-${kernel.version}";
 
   src = fetchurl {
-    url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
-    sha256 = "0h0xv2zwb91b9n29afg5ihn06a8q28in64hag2f112kc19f79jj8";
+    url = "https://fast.dpdk.org/rel/dpdk-${dpdkVersion}.tar.xz";
+    sha256 = "sha256-CZJKKoJVGqKZeKNoYYT4oQX1L1ZAsb4of1QLLJHpSJs==";
   };
 
   nativeBuildInputs = [
@@ -25,6 +25,7 @@ in stdenv.mkDerivation rec {
     pkg-config
     python3
     python3.pkgs.sphinx
+    python3.pkgs.pyelftools
   ];
   buildInputs = [
     jansson
@@ -42,9 +43,12 @@ in stdenv.mkDerivation rec {
   '';
 
   mesonFlags = [
+    "-Dtests=false"
     "-Denable_docs=true"
     "-Denable_kmods=${lib.boolToString mod}"
   ]
+  # kni kernel driver is currently not compatble with 5.11
+  ++ lib.optional (mod && kernel.kernelOlder "5.11") "-Ddisable_drivers=kni"
   ++ lib.optional (!shared) "-Ddefault_library=static"
   ++ lib.optional stdenv.isx86_64 "-Dmachine=nehalem"
   ++ lib.optional mod "-Dkernel_dir=${placeholder "kmod"}/lib/modules/${kernel.modDirVersion}";
@@ -63,8 +67,6 @@ in stdenv.mkDerivation rec {
 
   outputs = [ "out" ] ++ lib.optional mod "kmod";
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "Set of libraries and drivers for fast packet processing";
     homepage = "http://dpdk.org/";
diff --git a/nixpkgs/pkgs/os-specific/linux/ell/default.nix b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
index 280960591015..8a41cd126dfc 100644
--- a/nixpkgs/pkgs/os-specific/linux/ell/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.38";
+  version = "0.40";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
     rev = version;
-    sha256 = "sha256-UR6NHIO/L/QbuVerXe32RNT33wwrDvIZpV6nlYaImI8=";
+    sha256 = "sha256-Yr08Kb8YU7xqBnhhS8rn+GFXAV68Hgj4aY26eptb9/8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/ena/default.nix b/nixpkgs/pkgs/os-specific/linux/ena/default.nix
index 62f95ef53220..1ff0b9a154a4 100644
--- a/nixpkgs/pkgs/os-specific/linux/ena/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ena/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel }:
 
 stdenv.mkDerivation rec {
-  version = "2.4.1";
+  version = "2.5.0";
   name = "ena-${version}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "amzn";
     repo = "amzn-drivers";
     rev = "ena_linux_${version}";
-    sha256 = "0f3i878g11yfw6n68p3qf125jsnggy706jhc8sc0z1xgap6qgh09";
+    sha256 = "sha256-uOf/1624UtjaZtrk7XyQpeUGdTNVDnzZJZMgU86i+SM=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix b/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
index 6eaa58f353a1..55b00ab8719e 100644
--- a/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "eventstat";
-  version = "0.04.11";
+  version = "0.04.12";
   src = fetchzip {
     url = "https://kernel.ubuntu.com/~cking/tarballs/eventstat/eventstat-${version}.tar.gz";
-    sha256 = "0hsi5w8dmqwwdahnqvs83bam3j1cagw1ggm06d35dfwy5xknc5i4";
+    sha256 = "sha256-XBSs/jZodCpI9BHgAF8+bE23gRCr2uebYiMJxxB8T5E=";
   };
   buildInputs = [ ncurses ];
   installFlags = [ "DESTDIR=$(out)" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix b/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix
index 61044526e44a..2ae8bb2dca24 100644
--- a/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fatrace/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fatrace";
-  version = "0.16.2";
+  version = "0.16.3";
 
   src = fetchFromGitHub {
     owner = "martinpitt";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1daYCVGz8Zd42j2QMFL5EAULKkmBnbE828i5NV9Kcb8=";
+    sha256 = "sha256-w7leZPdmiTc+avihP203e6GLvbRzbCtNOJdF8MM2v68=";
   };
 
   buildInputs = [ python3 which ];
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index b66c4e73084f..a54454885345 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -2,12 +2,12 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "firmware-linux-nonfree";
-  version = "2021-03-15";
+  version = "2021-05-11";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     rev = "refs/tags/" + lib.replaceStrings ["-"] [""] version;
-    sha256 = "sha256-BnYqveVFJk/tVYgYuggXgYGcUCZT9iPkCQIi48FOTWc=";
+    sha256 = "015hajf3mq8dv2hw5wsyvi34zdqiwxp9p5dwdp8nrk4r9z5ysqxw";
   };
 
   installFlags = [ "DESTDIR=$(out)" ];
@@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "sha256-TzAMGj7IDhzXcFhHAd15aZvAqyN+OKlJTkIhVGoTkIs=";
+  outputHash = "034bwbl616vzl7lhcbvyz9dzmpzwi12vca3r5mszdxqh3z3s1g6a";
 
   meta = with lib; {
     description = "Binary firmware collection packaged by kernel.org";
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
index 80730fdbefbc..ee36ab574426 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   installPhase = "make prefix='$(out)' install";
 
-  cargoSha256 = "sha256-TISYaSOu8c+74ie4QHLqflXfLWwcLHEOch/hAx3iu60=";
+  cargoSha256 = "sha256-BUo77ERHvuc8IkDdU3Z/gZZicNHT26IbAgEBnVM3O4U=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
index b474c48e3414..5ee39c5bf331 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
@@ -3,29 +3,28 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "sof-firmware";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "thesofproject";
     repo = "sof-bin";
-    rev = "cbdec6963b2c2d58b0080955d3c11b96ff4c92f0";
-    sha256 = "0la2pw1zpv50cywiqcfb00cxqvjc73drxwjchyzi54l508817nxh";
+    rev = "v${version}";
+    sha256 = "sha256-Z0Z4HLsIIuW8E1kFNhAECmzj1HkJVfbEw13B8V7PZLk=";
   };
 
-  phases = [ "unpackPhase" "installPhase" ];
+  dontFixup = true; # binaries must not be stripped or patchelfed
 
   installPhase = ''
-    mkdir -p $out/lib/firmware
-
-    patchShebangs go.sh
-    ROOT=$out SOF_VERSION=v${version} ./go.sh
+    mkdir -p $out/lib/firmware/intel/
+    cp -a sof-v${version} $out/lib/firmware/intel/sof
+    cp -a sof-tplg-v${version} $out/lib/firmware/intel/sof-tplg
   '';
 
   meta = with lib; {
     description = "Sound Open Firmware";
     homepage = "https://www.sofproject.org/";
     license = with licenses; [ bsd3 isc ];
-    maintainers = with maintainers; [ lblasc evenbrenden ];
+    maintainers = with maintainers; [ lblasc evenbrenden hmenke ];
     platforms = with platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
index 9d47d50b43fc..ca750d89cc5b 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "--workspace" ];
 
-  cargoSha256 = "sha256-sKC0jfpy7mxGwO+mKU3W5e9HsJx+HQNzqq78YViNJcs=";
+  cargoSha256 = "sha256-gGw3zpxLxQZ3rglpDERO0fSxBOez1Q10Fljis6nyB/4=";
 
   # Purposefully don't install systemd unit file, that's for NixOS
   postInstall = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/fuse/common.nix b/nixpkgs/pkgs/os-specific/linux/fuse/common.nix
index cca1ecf5d246..5adb1b5355ad 100644
--- a/nixpkgs/pkgs/os-specific/linux/fuse/common.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fuse/common.nix
@@ -1,7 +1,7 @@
 { version, sha256Hash }:
 
 { lib, stdenv, fetchFromGitHub, fetchpatch
-, fusePackages, util-linux, gettext
+, fusePackages, util-linux, gettext, shadow
 , meson, ninja, pkg-config
 , autoreconfHook
 , python3Packages, which
@@ -54,13 +54,14 @@ in stdenv.mkDerivation rec {
     # $PATH, so it should also work on non-NixOS systems.
     export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\""
 
-    sed -e 's@/bin/@${util-linux}/bin/@g' -i lib/mount_util.c
+    substituteInPlace lib/mount_util.c --replace "/bin/" "${util-linux}/bin/"
     '' + (if isFuse3 then ''
       # The configure phase will delete these files (temporary workaround for
       # ./fuse3-install_man.patch)
       install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1
       install -D -m444 doc/mount.fuse3.8 $out/share/man/man8/mount.fuse3.8
     '' else ''
+      substituteInPlace util/mount.fuse.c --replace '"su"' '"${shadow.su}/bin/su"'
       sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
       ./makeconf.sh
     '');
@@ -81,8 +82,6 @@ in stdenv.mkDerivation rec {
     cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules
   '');
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "Library that allows filesystems to be implemented in user space";
     longDescription = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/fuse/default.nix b/nixpkgs/pkgs/os-specific/linux/fuse/default.nix
index b7ee8772f46b..b060b908284b 100644
--- a/nixpkgs/pkgs/os-specific/linux/fuse/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fuse/default.nix
@@ -11,7 +11,7 @@ in {
   };
 
   fuse_3 = mkFuse {
-    version = "3.10.3";
-    sha256Hash = "054g3jqy8lhlj8kkwd16wxaxzynmh8h5iv20cryd0psg0hgmhd7v";
+    version = "3.10.4";
+    sha256Hash = "1ml4bs4wx5dbz5xpnd5g8b9avmn7g7jvf16fbdlk0da8il0qd2rx";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/gradm/default.nix b/nixpkgs/pkgs/os-specific/linux/gradm/default.nix
index 7d2660ad26e9..cd99dfa5db8d 100644
--- a/nixpkgs/pkgs/os-specific/linux/gradm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/gradm/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gradm";
-  version = "3.1-202012071814";
+  version = "3.1-202102241600";
 
   src  = fetchurl {
-    url    = "http://grsecurity.net/stable/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ghl9P2IYsSHcJsVxJbFwfFS1CTZ2xLxdvyhdk/1OZG4=";
+    url    = "https://grsecurity.net/stable/${pname}-${version}.tar.gz";
+    sha256 = "02ni34hpggv00140p9gvh0lqi173zdddd2qhfi96hyr1axd5pl50";
   };
 
   nativeBuildInputs = [ bison flex ];
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "grsecurity RBAC administration and policy analysis utility";
     homepage    = "https://grsecurity.net";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Only;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ thoughtpolice joachifm ];
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/greetd/default.nix b/nixpkgs/pkgs/os-specific/linux/greetd/default.nix
index fc5dd04b43c1..6f305c5d6ebb 100644
--- a/nixpkgs/pkgs/os-specific/linux/greetd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/greetd/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "b+S3fuJ8gjnSQzLHl3Bs9iO/Un2ynggAplz01GjJvFI=";
   };
 
-  cargoSha256 = "w6d8rIc03Qa2/TpztpyVijjd3y0Vo38+JDhsOkSFG5E=";
+  cargoHash = "sha256-YSC7osyBPwx+lo7P1ftI72mRWeQlDc2srRPzTFqVTxM=";
 
   nativeBuildInputs = [
     scdoc
diff --git a/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix b/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
index c241ac02a649..04eccaf02435 100644
--- a/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
@@ -9,7 +9,7 @@
 , udev
 , libusb1
 , libv4l
-, alsaLib
+, alsa-lib
 , gsl
 , libpng
 , sfml
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     SDL2
-    alsaLib
+    alsa-lib
     ffmpeg
     libusb1
     libv4l
diff --git a/nixpkgs/pkgs/os-specific/linux/hdparm/default.nix b/nixpkgs/pkgs/os-specific/linux/hdparm/default.nix
index ada0ddef2330..e925b989028d 100644
--- a/nixpkgs/pkgs/os-specific/linux/hdparm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hdparm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hdparm";
-  version = "9.60";
+  version = "9.61";
 
   src = fetchurl {
     url = "mirror://sourceforge/hdparm/hdparm-${version}.tar.gz";
-    sha256 = "1k1mcv7naiacw1y6bdd1adnjfiq1kkx2ivsadjwmlkg4fff775w3";
+    sha256 = "sha256-2hocOIfxC4OX6OAgE8qmEULg5yyw1zmXQhyi8vTfU0M=";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/hid-nintendo/default.nix b/nixpkgs/pkgs/os-specific/linux/hid-nintendo/default.nix
new file mode 100644
index 000000000000..321f96d0d36a
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/hid-nintendo/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, kernel }:
+
+stdenv.mkDerivation rec {
+  pname = "hid-nintendo";
+  version = "3.1";
+
+  src = fetchFromGitHub {
+    owner = "nicman23";
+    repo = "dkms-hid-nintendo";
+    rev = version;
+    sha256 = "sha256-IanH3yHfkQhqtKvKD8lh+muc9yX8XJ5bfdy1Or8Vd5g=";
+  };
+
+  setSourceRoot = ''
+    export sourceRoot=$(pwd)/source/src
+  '';
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = [
+    "-C"
+    "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+    "M=$(sourceRoot)"
+  ];
+
+  buildFlags = [ "modules" ];
+  installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
+  installTargets = [ "modules_install" ];
+
+  meta = with lib; {
+    description = "A Nintendo HID kernel module";
+    homepage = "https://github.com/nicman23/dkms-hid-nintendo";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.rencire ];
+    platforms = platforms.linux;
+    broken = versionOlder kernel.version "4.14";
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix b/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
index bd52f37e62f8..f700bf035de8 100644
--- a/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.344";
+  version = "0.347";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "0rsnm94r814shr86jk6f2323i1n4p58inkgkx7362yz9k4a8ir7a";
+    sha256 = "19kmz25zq6qqs67ppqhws4mh3qf6zrp55cpyxyw36q95yjdcqp21";
   };
 
   preConfigure = "patchShebangs ./configure";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "011lyldzskfb4sfn4i7qyyq3i4gaf1v9yfbc82889cabka0n4nfz";
+  outputHash = "0haaczd6pi9q2vdlvbwn7100sb87zsy64z94xhpbmlari4vzjmz0";
 
   meta = {
     homepage = "https://github.com/vcrhonek/hwdata";
diff --git a/nixpkgs/pkgs/os-specific/linux/i2c-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/i2c-tools/default.nix
index 23bc89b7d1c9..5c05ca6082e4 100644
--- a/nixpkgs/pkgs/os-specific/linux/i2c-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/i2c-tools/default.nix
@@ -1,12 +1,18 @@
-{ lib, stdenv, fetchurl, perl, read-edid }:
+{ lib
+, stdenv
+, fetchgit
+, perl
+, read-edid
+}:
 
 stdenv.mkDerivation rec {
   pname = "i2c-tools";
   version = "4.2";
 
-  src = fetchurl {
-    url = "https://www.kernel.org/pub/software/utils/i2c-tools/${pname}-${version}.tar.xz";
-    sha256 = "1mmc1n8awl3winyrp1rcxg94vjsx9dc1y7gj7y88blc2f2ydmwip";
+  src = fetchgit {
+    url = "https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git";
+    rev = "v${version}";
+    sha256 = "0vqrbp10klr7ylarr6cy1q7nafiqaky4iq5my5dqy101h93vg4pg";
   };
 
   buildInputs = [ perl ];
@@ -18,6 +24,8 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
+  outputs = [ "out" "man" ];
+
   postInstall = ''
     rm -rf $out/include # Installs include/linux/i2c-dev.h that conflics with kernel headers
   '';
@@ -25,7 +33,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Set of I2C tools for Linux";
     homepage = "https://i2c.wiki.kernel.org/index.php/I2C_Tools";
-    license = licenses.gpl2;
+    # library is LGPL 2.1 or later; "most tools" GPL 2 or later
+    license = with licenses; [ lgpl21Plus gpl2Plus ];
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix b/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix
index 971a1abffddb..5566103b2cd9 100644
--- a/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, autoconf-archive, gettext, libtool, intltool, autoconf, automake
+{ lib, stdenv, fetchFromGitLab, autoconf-archive, gettext, libtool, intltool, autoconf, automake
 , glib, gtk3, gtk-doc, libgudev, pkg-config, systemd }:
 
 stdenv.mkDerivation rec {
   pname = "iio-sensor-proxy";
-  version = "2.8";
+  version = "3.0";
 
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
     owner  = "hadess";
     repo   = pname;
     rev    = version;
-    sha256 = "07rzm1z2p6lh4iv5pyp0p2x5805m9gsh19kcsjls3fi25p3a2c00";
+    sha256 = "0ngbz1vkbjci3ml6p47jh6c6caipvbkm8mxrc8ayr6vc2p9l1g49";
   };
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/iproute/default.nix b/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
index affc18e8f37d..638983d6c17e 100644
--- a/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iproute2";
-  version = "5.11.0";
+  version = "5.12.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0m2wa14rhmdb6k07minmw5lk97vz4vn56ndka5849cqjh88fmqn5";
+    sha256 = "sha256-nSaNuYo27ioOP/O5Ky7/9m/BE4pR5Am972qzz+FfMm8=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
index 56942d6d4201..495860ef5760 100644
--- a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, gettext, libxslt, docbook_xsl_ns
 , libcap, libidn2
+, apparmorRulesFromClosure
 }:
 
 let
@@ -20,6 +21,8 @@ in stdenv.mkDerivation rec {
     sha256 = "08j2hfgnfh31vv9rn1ml7090j2lsvm9wdpdz13rz60rmyzrx9dq3";
   };
 
+  outputs = ["out" "apparmor"];
+
   mesonFlags = [
     "-DBUILD_RARPD=true"
     "-DBUILD_TRACEROUTE6=true"
@@ -34,6 +37,26 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkg-config gettext libxslt.bin docbook_xsl_ns ];
   buildInputs = [ libcap ]
     ++ lib.optional (!stdenv.hostPlatform.isMusl) libidn2;
+  postInstall = ''
+    mkdir $apparmor
+    cat >$apparmor/bin.ping <<EOF
+    include <tunables/global>
+    $out/bin/ping {
+      include <abstractions/base>
+      include <abstractions/consoles>
+      include <abstractions/nameservice>
+      include "${apparmorRulesFromClosure { name = "ping"; }
+       ([libcap] ++ lib.optional (!stdenv.hostPlatform.isMusl) libidn2)}"
+      include <local/bin.ping>
+      capability net_raw,
+      network inet raw,
+      network inet6 raw,
+      mr $out/bin/ping,
+      r $out/share/locale/**,
+      r @{PROC}/@{pid}/environ,
+    }
+    EOF
+  '';
 
   meta = with lib; {
     description = "A set of small useful utilities for Linux networking";
diff --git a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
index 6e703feb992a..63692149f3dc 100644
--- a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
@@ -12,12 +12,12 @@
 
 stdenv.mkDerivation rec {
   pname = "iwd";
-  version = "1.12";
+  version = "1.14";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     rev = version;
-    sha256 = "sha256-o3Vc5p/AFZwbkEWJZzO6wWAJ/BmSh0eKxdnjm5B9BFU=";
+    sha256 = "sha256-uGe4TO1/bs8k2z3wOJqaZgT6u6yX/7wx4HMSS2hN4XE=";
   };
 
   outputs = [ "out" "man" ]
@@ -57,6 +57,8 @@ stdenv.mkDerivation rec {
   ];
 
   postUnpack = ''
+    mkdir -p iwd/ell
+    ln -s ${ell.src}/ell/useful.h iwd/ell/useful.h
     patchShebangs .
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kbd/default.nix b/nixpkgs/pkgs/os-specific/linux/kbd/default.nix
index 2119c10b9cf0..467de4b029a9 100644
--- a/nixpkgs/pkgs/os-specific/linux/kbd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kbd/default.nix
@@ -1,15 +1,22 @@
-{ lib, stdenv, fetchurl, autoreconfHook,
-  gzip, bzip2, pkg-config, flex, check,
-  pam, coreutils
+{ lib
+, stdenv
+, fetchurl
+, nixosTests
+, autoreconfHook
+, pkg-config
+, flex
+, check
+, pam
+, coreutils
 }:
 
 stdenv.mkDerivation rec {
   pname = "kbd";
-  version = "2.0.4";
+  version = "2.4.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/kbd/${pname}-${version}.tar.xz";
-    sha256 = "124swm93dm4ca0pifgkrand3r9gvj3019d4zkfxsj9djpvv0mnaz";
+    sha256 = "17wvrqz2kk0w87idinhyvd31ih1dp7ldfl2yfx7ailygb0279w2m";
   };
 
   configureFlags = [
@@ -18,13 +25,8 @@ stdenv.mkDerivation rec {
     "--disable-nls"
   ];
 
-  patches = [ ./search-paths.patch ];
-
   postPatch =
     ''
-      # Add Neo keymap subdirectory
-      sed -i -e 's,^KEYMAPSUBDIRS *= *,&i386/neo ,' data/Makefile.am
-
       # Renaming keymaps with name clashes, because loadkeys just picks
       # the first keymap it sees. The clashing names lead to e.g.
       # "loadkeys no" defaulting to a norwegian dvorak map instead of
@@ -33,21 +35,9 @@ stdenv.mkDerivation rec {
       mv qwertz/cz{,-qwertz}.map
       mv olpc/es{,-olpc}.map
       mv olpc/pt{,-olpc}.map
-      mv dvorak/{no.map,dvorak-no.map}
       mv fgGIod/trf{,-fgGIod}.map
       mv colemak/{en-latin9,colemak}.map
       popd
-
-      # Fix the path to gzip/bzip2.
-      substituteInPlace src/libkeymap/findfile.c \
-        --replace gzip ${gzip}/bin/gzip \
-        --replace bzip2 ${bzip2.bin}/bin/bzip2 \
-
-      # We get a warning in armv5tel-linux and the fuloong2f, so we
-      # disable -Werror in it.
-      ${lib.optionalString (stdenv.isAarch32 || stdenv.hostPlatform.isMips) ''
-        sed -i s/-Werror// src/Makefile.am
-      ''}
     '';
 
   postInstall = ''
@@ -57,16 +47,16 @@ stdenv.mkDerivation rec {
     done
   '';
 
-
   buildInputs = [ check pam ];
   nativeBuildInputs = [ autoreconfHook pkg-config flex ];
 
-  makeFlags = [ "setowner=" ];
+  passthru.tests = nixosTests.keymap;
 
   meta = with lib; {
-    homepage = "ftp://ftp.altlinux.org/pub/people/legion/kbd/";
-    description = "Linux keyboard utilities and keyboard maps";
+    homepage = "https://kbd-project.org/";
+    description = "Linux keyboard tools and keyboard maps";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ davidak ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kbd/keymaps.nix b/nixpkgs/pkgs/os-specific/linux/kbd/keymaps.nix
deleted file mode 100644
index b3d5fe1b63cc..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/kbd/keymaps.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, lib, fetchurl, gzip }:
-
-{
-  dvp = stdenv.mkDerivation rec {
-    pname = "dvp";
-    version = "1.2.1";
-
-    src = fetchurl {
-      url = "http://kaufmann.no/downloads/linux/dvp-${lib.replaceStrings ["."] ["_"] version}.map.gz";
-      sha256 = "0e859211cfe16a18a3b9cbf2ca3e280a23a79b4e40b60d8d01d0fde7336b6d50";
-    };
-
-    nativeBuildInputs = [ gzip ];
-
-    buildCommand = ''
-      mkdir -p $out/share/keymaps/i386/dvorak
-      gzip -c -d $src > $out/share/keymaps/i386/dvorak/dvp.map
-    '';
-  };
-
-  neo = stdenv.mkDerivation {
-    pname = "neo";
-    version = "2476";
-
-    src = fetchurl {
-      name = "neo.map";
-      url = "https://raw.githubusercontent.com/neo-layout/neo-layout/"
-          + "a0dee06fed824abfad658b7f10e6d907b270be0a/linux/console/neo.map";
-      sha256 = "19mfrd31vzpsjiwc7pshxm0b0sz5dd17xrz6k079cy4im1vf0r4g";
-    };
-
-    buildCommand = ''
-      install -D $src $out/share/keymaps/i386/neo/neo.map
-    '';
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/kbd/search-paths.patch b/nixpkgs/pkgs/os-specific/linux/kbd/search-paths.patch
deleted file mode 100644
index c9405a56721d..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/kbd/search-paths.patch
+++ /dev/null
@@ -1,71 +0,0 @@
---- a/src/libkeymap/analyze.l
-+++ b/src/libkeymap/analyze.l
-@@ -101,6 +101,9 @@ stack_pop(struct lk_ctx *ctx, void *scan
- static const char *const include_dirpath0[] = { "", 0 };
- static const char *const include_dirpath1[] = { "", "../include/", "../../include/", 0 };
- static const char *const include_dirpath3[] = {
-+ 	"/etc/kbd/" KEYMAPDIR "/include/",
-+ 	"/etc/kbd/" KEYMAPDIR "/i386/include/",
-+ 	"/etc/kbd/" KEYMAPDIR "/mac/include/",
- 	DATADIR "/" KEYMAPDIR "/include/",
- 	DATADIR "/" KEYMAPDIR "/i386/include/",
- 	DATADIR "/" KEYMAPDIR "/mac/include/", 0
---- a/src/loadkeys.c
-+++ b/src/loadkeys.c
-@@ -27,7 +27,7 @@
- #include "keymap.h"
- 
- static const char *progname         = NULL;
--static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 };
-+static const char *const dirpath1[] = { "", "/etc/kbd/" KEYMAPDIR "/**", DATADIR "/" KEYMAPDIR "/**", 0 };
- static const char *const suffixes[] = { "", ".kmap", ".map", 0 };
- 
- static void __attribute__((noreturn))
---- a/src/loadunimap.c
-+++ b/src/loadunimap.c
-@@ -30,7 +30,7 @@
- extern char *progname;
- extern int force;
- 
--static const char *const unidirpath[]  = { "", DATADIR "/" UNIMAPDIR "/", 0 };
-+static const char *const unidirpath[]  = { "", "/etc/kbd/" UNIMAPDIR "/", DATADIR "/" UNIMAPDIR "/", 0 };
- static const char *const unisuffixes[] = { "", ".uni", ".sfm", 0 };
- 
- #ifdef MAIN
---- a/src/mapscrn.c
-+++ b/src/mapscrn.c
-@@ -27,7 +27,7 @@ void loadnewmap(int fd, char *mfil);
- static int ctoi(char *);
- 
- /* search for the map file in these directories (with trailing /) */
--static const char *const mapdirpath[]  = { "", DATADIR "/" TRANSDIR "/", 0 };
-+static const char *const mapdirpath[]  = { "", "/etc/kbd/" TRANSDIR "/", DATADIR "/" TRANSDIR "/", 0 };
- static const char *const mapsuffixes[] = { "", ".trans", "_to_uni.trans", ".acm", 0 };
- 
- #ifdef MAIN
---- a/src/resizecons.c
-+++ b/src/resizecons.c
-@@ -101,7 +101,7 @@ static int vga_get_fontheight(void);
- static void vga_set_cursor(int, int);
- static void vga_set_verticaldisplayend_lowbyte(int);
- 
--const char *const dirpath[]  = { "", DATADIR "/" VIDEOMODEDIR "/", 0 };
-+const char *const dirpath[]  = { "", "/etc/kbd/" VIDEOMODEDIR "/", DATADIR "/" VIDEOMODEDIR "/", 0};
- const char *const suffixes[] = { "", 0 };
- 
- int main(int argc, char **argv)
---- a/src/setfont.c
-+++ b/src/setfont.c
-@@ -53,10 +53,10 @@ int force   = 0;
- int debug   = 0;
- 
- /* search for the font in these directories (with trailing /) */
--const char *const fontdirpath[]  = { "", DATADIR "/" FONTDIR "/", 0 };
-+const char *const fontdirpath[]  = { "", "/etc/kbd/" FONTDIR "/", DATADIR "/" FONTDIR "/", 0 };
- const char *const fontsuffixes[] = { "", ".psfu", ".psf", ".cp", ".fnt", 0 };
- /* hide partial fonts a bit - loading a single one is a bad idea */
--const char *const partfontdirpath[]  = { "", DATADIR "/" FONTDIR "/" PARTIALDIR "/", 0 };
-+const char *const partfontdirpath[]  = { "", "/etc/kbd/" FONTDIR "/" PARTIALDIR "/", DATADIR "/" FONTDIR "/" PARTIALDIR "/", 0 };
- const char *const partfontsuffixes[] = { "", 0 };
- 
- static inline int
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix b/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix
index a2a63e2bcab2..9d727838b3fb 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -1,4 +1,9 @@
-{ stdenvNoCC, lib, buildPackages, fetchurl, perl, elf-header }:
+{ stdenvNoCC, lib, buildPackages, fetchurl, perl, elf-header
+, bison ? null, flex ? null, python ? null, rsync ? null
+}:
+
+assert stdenvNoCC.hostPlatform.isAndroid ->
+  (flex != null && bison != null && python != null && rsync != null);
 
 let
   makeLinuxHeaders = { src, version, patches ? [] }: stdenvNoCC.mkDerivation {
@@ -13,7 +18,11 @@ let
     # We do this so we have a build->build, not build->host, C compiler.
     depsBuildBuild = [ buildPackages.stdenv.cc ];
     # `elf-header` is null when libc provides `elf.h`.
-    nativeBuildInputs = [ perl elf-header ];
+    nativeBuildInputs = [
+      perl elf-header
+    ] ++ lib.optionals stdenvNoCC.hostPlatform.isAndroid [
+      flex bison python rsync
+    ];
 
     extraIncludeDirs = lib.optional stdenvNoCC.hostPlatform.isPowerPC ["ppc"];
 
@@ -36,9 +45,12 @@ let
     # Skip clean on darwin, case-sensitivity issues.
     buildPhase = lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) ''
       make mrproper $makeFlags
-    '' + ''
+    '' + (if stdenvNoCC.hostPlatform.isAndroid then ''
+      make defconfig
+      make headers_install
+    '' else ''
       make headers $makeFlags
-    '';
+    '');
 
     checkPhase = ''
       make headers_check $makeFlags
@@ -69,12 +81,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "5.11"; in
+  linuxHeaders = let version = "5.12"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-        sha256 = "1d37w0zvmf8c1l99xvy1hy6p55icjhmbsv7f0amxy2nly1a7pw04";
+        sha256 = "sha256-fQ328r8jhNaNC9jh/j4HHWQ2Tc3GAC57XIfJLUj6w2Y=";
       };
       patches = [
          ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
index 5cece836b73e..776a422df735 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
@@ -859,7 +859,7 @@ let
       # Bump the maximum number of CPUs to support systems like EC2 x1.*
       # instances and Xeon Phi.
       NR_CPUS = freeform "384";
-    } // optionalAttrs (stdenv.hostPlatform.system == "aarch64-linux") {
+    } // optionalAttrs (stdenv.hostPlatform.system == "armv7l-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Enables support for the Allwinner Display Engine 2.0
       SUN8I_DE2_CCU = whenAtLeast "4.13" yes;
 
@@ -871,6 +871,14 @@ let
       # The kernel command line will override a platform-specific configuration from its device tree.
       # https://github.com/torvalds/linux/blob/856deb866d16e29bd65952e0289066f6078af773/kernel/dma/contiguous.c#L35-L44
       CMA_SIZE_MBYTES = freeform "32";
+
+      # Many ARM SBCs hand off a pre-configured framebuffer.
+      # This always can can be replaced by the actual native driver.
+      # Keeping it a built-in ensures it will be used if possible.
+      FB_SIMPLE = yes;
+
+    } // optionalAttrs (stdenv.hostPlatform.system == "armv7l-linux") {
+      ARM_LPAE = yes;
     };
   };
 in
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/generate-config.pl b/nixpkgs/pkgs/os-specific/linux/kernel/generate-config.pl
index 6a2aec809a1b..82e1cb66e2be 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -40,7 +40,7 @@ close ANSWERS;
 sub runConfig {
 
     # Run `make config'.
-    my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$buildRoot config SHELL=bash ARCH=$ENV{ARCH}");
+    my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$buildRoot config SHELL=bash ARCH=$ENV{ARCH} CC=$ENV{CC} HOSTCC=$ENV{HOSTCC} HOSTCXX=$ENV{HOSTCXX}");
 
     # Parse the output, look for questions and then send an
     # appropriate answer.
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
index 68a1fcdb0e6b..b35c84513e69 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
@@ -128,12 +128,16 @@ let
 
     buildPhase = ''
       export buildRoot="''${buildRoot:-build}"
+      export HOSTCC=$CC_FOR_BUILD
+      export HOSTCXX=$CXX_FOR_BUILD
+      export HOSTAR=$AR_FOR_BUILD
+      export HOSTLD=$LD_FOR_BUILD
 
       # Get a basic config file for later refinement with $generateConfig.
-      make -C .  O="$buildRoot" $kernelBaseConfig \
+      make -C . O="$buildRoot" $kernelBaseConfig \
           ARCH=$kernelArch \
-          HOSTCC=${buildPackages.stdenv.cc.targetPrefix}gcc \
-          HOSTCXX=${buildPackages.stdenv.cc.targetPrefix}g++
+          HOSTCC=$HOSTCC HOSTCXX=$HOSTCXX HOSTAR=$HOSTAR HOSTLD=$HOSTLD \
+          CC=$CC OBJCOPY=$OBJCOPY OBJDUMP=$OBJDUMP READELF=$READELF
 
       # Create the config file.
       echo "generating kernel configuration..."
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
index 990262ed4d37..bb668a6e9040 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,32 +1,32 @@
 {
     "4.14": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.14.230-hardened1.patch",
-        "sha256": "1nhaqhjga042b69969f0jy680xlrgnms1178ni6c6xhxy6n7y4pq",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.230-hardened1/linux-hardened-4.14.230-hardened1.patch"
+        "name": "linux-hardened-4.14.235-hardened1.patch",
+        "sha256": "0m49pg27pnp6kwkbawg0fw3lzm5nchqjhqkfgprckwgb9v5bgbcc",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.235-hardened1/linux-hardened-4.14.235-hardened1.patch"
     },
     "4.19": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.19.187-hardened1.patch",
-        "sha256": "1vw05qff7hvzl7krcf5kh0ynyy5gljps8qahr4jm0hsd69lmn0qk",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.187-hardened1/linux-hardened-4.19.187-hardened1.patch"
+        "name": "linux-hardened-4.19.193-hardened1.patch",
+        "sha256": "0r2rxl08x2l1yimaqksrc79s36rnp77xm5in9cvp7ff24y9r9g0j",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.193-hardened1/linux-hardened-4.19.193-hardened1.patch"
     },
     "5.10": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.10.30-hardened1.patch",
-        "sha256": "0sxxzrhj41pxk01s2bcfwb47aab2by1zc7yyx9859rslq7dg5aly",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.30-hardened1/linux-hardened-5.10.30-hardened1.patch"
+        "name": "linux-hardened-5.10.42-hardened1.patch",
+        "sha256": "1hignnqy0d7nrfnh5j8h1xkj15kvx80h55qzzq1wlmyjxpr6c0ix",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.42-hardened1/linux-hardened-5.10.42-hardened1.patch"
     },
-    "5.11": {
+    "5.12": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.11.14-hardened1.patch",
-        "sha256": "1j8saj1dyflah3mjs07rvxfhhpwhxk65r1y2bd228gp5nm6305px",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.11.14-hardened1/linux-hardened-5.11.14-hardened1.patch"
+        "name": "linux-hardened-5.12.9-hardened1.patch",
+        "sha256": "08ijifhl8sl858ik32ny47h7pq0r160sv55a07igkbhrh60arfqa",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.12.9-hardened1/linux-hardened-5.12.9-hardened1.patch"
     },
     "5.4": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.4.112-hardened1.patch",
-        "sha256": "1l9igc68dq22nlnlls4x3zfz1h2hb6dqy7vr5r4jvbk22330m12j",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.112-hardened1/linux-hardened-5.4.112-hardened1.patch"
+        "name": "linux-hardened-5.4.124-hardened1.patch",
+        "sha256": "1bn7fa09kzgv6v9d3gl66l8wg6z23chjhk6g219cqb7mfd4m5ykl",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.124-hardened1/linux-hardened-5.4.124-hardened1.patch"
     }
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 5b6cc206e412..7c986259dff6 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.14.230";
+  version = "4.14.235";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1gn5cs1ss4bfsnnv0b2s4g5ibiigpzsx0i3qfswchdbxvdag75cw";
+    sha256 = "03k793hj294zf7jncs1h8zh5dh6xagkfvnydd9jadxvq2z8vvl8f";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_14 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
index a0084887c505..3a31ad473cf8 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.19.187";
+  version = "4.19.193";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1hx0jw11xmj57v9a8w34729vgrandaing2n9qkhx5dq4mhy04k50";
+    sha256 = "17ci49ak5iw01kfkn3fcgncg9hm4j188417bxi3bnsq9il5ymhl4";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_19 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 8efd28f06c61..9bc01eeff490 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,12 +1,13 @@
-{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
+{ buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.266";
+  version = "4.4.271";
   extraMeta.branch = "4.4";
+  extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "00x2dmjiiv9zpc0vih9xqmf78kynqzj9q9v1chc2q2hcjpqfj31c";
+    sha256 = "0n5h2lv1p542a45pas3pi0vkhgrk096vwrps79a7v3a6c1q2dxx6";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_4 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 3d58bf31d081..4be4b6fb222a 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,13 @@
-{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
+{ buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.266";
+  version = "4.9.271";
   extraMeta.branch = "4.9";
+  extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0qzigcslfp714vaswwlw93xj0h2f8laikppw6krrhfnh5wwrp5dr";
+    sha256 = "1480miixphkf0b8w00m753ar7yp1rnl3zyr9wp4inngi2f90553r";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_9 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
index bf7d3fa7ab30..ec7b16f9f3f7 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.30";
+  version = "5.10.42";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0h06lavcbbj9a4dfzca9sprghiq9z33q8i4gh3n2912wmjsnj0nl";
+    sha256 = "1r86v6q7ml7zv001f25w3h667nqqy39439s94vnqsyyn7g3jg84b";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_10 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.12.nix
index 67dd444810a7..85a69f0c5ad1 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.12.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.11.14";
+  version = "5.12.9";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,8 +13,8 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1ia4wzh44lkvrbvnhdnnjcdyvqx2ihpbwkih7wqm1n5prhq38ql7";
+    sha256 = "0vg71h8r90fl01a8khyf1776y76rgqisxafky89cswa2fpsvxyn7";
   };
 
-  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_11 ];
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_12 ];
 } // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
index d3fe5a367038..4cf7c2bfafde 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.4.112";
+  version = "5.4.124";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "190cq97pm0r6s115ay66rjra7fnyn7m4rak89inwhm223931sdmq";
+    sha256 = "10kxa1ng9w9xd2d5xh48fbhp1kri650p90nihrcpnb845gd9vwpp";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_4 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
index 6e264a3ec63b..2001b350eccc 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "17990";
-    sha256 = "1hras4018lgvql1zxw26fzcvk0w1xh6pyh3kmhxxh23k61zl83zk";
+    rev = "18115";
+    sha256 = "00wsxlhz7lc4qk7jcgshb05hvv3mm4m8r3zalc9wvp4r1r6xbbjp";
   }
 , ...
 }:
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
index 8d0333e8fd6c..609dc494c69d 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, linux_zen, ... } @ args:
 
 let
-  version = "5.11.16";
+  version = "5.12.9";
   suffix = "lqx1";
 in
 
@@ -14,13 +14,13 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "1j25r45arikjwyhbr72r1935pr7a8g2j6vshggywdiixvizvrx9b";
+    sha256 = "sha256-qmX66nz+gVOt1RGsUT9fA3wPUT7I9Z4jhxpybP0I8Cw=";
   };
 
   extraMeta = {
-    branch = "5.10/master";
+    branch = "5.12/master";
     maintainers = with lib.maintainers; [ atemu ];
     description = linux_zen.meta.description + " (Same as linux_zen but less aggressive release schedule)";
   };
 
-} // (args.argsOverride or {}))
+} // (args.argsOverride or { }))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index 215d36af81ca..5567022edccb 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.27-rt36"; # updated by ./update-rt.sh
+  version = "5.10.41-rt42"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1nb95ll66kxiz702gs903n3gy5ialz8cin58l19rqaai55kck7fr";
+    sha256 = "0wb739q7dha8nxkd72x42k4in5nw633yw065ppwc8rq7x2fpa17n";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1bx023ibav6n2di3i2m8i6n4hp7h6zmz9bva7nqxdflbdwfsma1c";
+      sha256 = "1z8jgsq5fkg486xxawg4c4wk1l9xra7x1cfqaf4grhw0csbbx883";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
index 0aa63af52d8b..8592ad4c3b34 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.4.106-rt54"; # updated by ./update-rt.sh
+  version = "5.4.123-rt59"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -14,14 +14,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1ny8b69ngydh0iw53jwlmqlgv31wjhkybkgnqi5kv0n174n3p1yc";
+    sha256 = "1pi223dls52piw65s3v4ml23wdyy73xpbdvp511187b6zgzk7zlf";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0xwbpn1k1b4bxq15sw7gicrzkfg32nkja308a5pcwx1ihv9khchf";
+      sha256 = "1m1mnmk7h35p7dv6mg3pla6pw3b645hbbccjmp1jc3fyn6qiy6fq";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
index 95f736d94183..aa8988fae8e1 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
@@ -1,27 +1,27 @@
 { lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args:
 
 let
-  version = "5.11.16";
+  version = "5.12.8";
   suffix = "xanmod1-cacule";
 in
-  buildLinux (args // rec {
-    modDirVersion = "${version}-${suffix}";
-    inherit version;
+buildLinux (args // rec {
+  modDirVersion = "${version}-${suffix}";
+  inherit version;
 
-    src = fetchFromGitHub {
-      owner = "xanmod";
-      repo = "linux";
-      rev = modDirVersion;
-      sha256 = "sha256-sK2DGJsmKP/gvPyT8HWjPa21OOXydMhGjJzrOkPo71Q=";
-      extraPostFetch = ''
-        rm $out/.config
-      '';
-    };
+  src = fetchFromGitHub {
+    owner = "xanmod";
+    repo = "linux";
+    rev = modDirVersion;
+    sha256 = "sha256-i3exBrEKyTHM2Iq8AJEIHwaw6KJarfcahlm/pPxAhmo=";
+    extraPostFetch = ''
+      rm $out/.config
+    '';
+  };
 
-    extraMeta = {
-      branch = "5.11";
-      maintainers = with lib.maintainers; [ fortuneteller2k ];
-      description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
-      broken = stdenv.hostPlatform.isAarch64;
-    };
-  } // (args.argsOverride or { }))
+  extraMeta = {
+    branch = "5.12-cacule";
+    maintainers = with lib.maintainers; [ fortuneteller2k ];
+    description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
+    broken = stdenv.hostPlatform.isAarch64;
+  };
+} // (args.argsOverride or { }))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
index b28400819d53..47e72a61c182 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, ... } @ args:
 
 let
-  version = "5.11.16";
+  version = "5.12.9";
   suffix = "zen1";
 in
 
@@ -14,13 +14,13 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "0jyicnpqccn194jrm1mc4zq0cil7ls9l57ws3nv783vlk7b0k3gv";
+    sha256 = "sha256-Sbe7pY/htLRRx5Qs78BpEzNCSIEsnZMj1+bkAftZdbQ=";
   };
 
   extraMeta = {
-    branch = "5.10/master";
+    branch = "5.12/master";
     maintainers = with lib.maintainers; [ atemu andresilva ];
     description = "Built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads.";
   };
 
-} // (args.argsOverride or {}))
+} // (args.argsOverride or { }))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix
index e45b21ff35fb..f874762267a8 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -285,7 +285,7 @@ let
             " (with patches: "
             + lib.concatStringsSep ", " (map (x: x.name) kernelPatches)
             + ")");
-        license = lib.licenses.gpl2;
+        license = lib.licenses.gpl2Only;
         homepage = "https://www.kernel.org/";
         repositories.git = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git";
         maintainers = [
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/perf.nix b/nixpkgs/pkgs/os-specific/linux/kernel/perf.nix
index b28e16590839..ae27839c8cd3 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/perf.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/perf.nix
@@ -74,5 +74,6 @@ stdenv.mkDerivation {
     description = "Linux tools to profile with performance counters";
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
+    broken = kernel.kernelOlder "5";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh b/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
index 8cac5929252d..ccb017933420 100755
--- a/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
@@ -37,6 +37,7 @@ latest-rt-version() {
     branch="$1" # e.g. 5.4
     curl -sL "$mirror/projects/rt/$branch/sha256sums.asc" |
         sed -ne '/.patch.xz/ { s/.*patch-\(.*\).patch.xz/\1/p}' |
+        grep -v '\-rc' |
         tail -n 1
 }
 
diff --git a/nixpkgs/pkgs/os-specific/linux/klibc/default.nix b/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
index dc96f3b6a621..522a74dea01a 100644
--- a/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
@@ -9,11 +9,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "klibc";
-  version = "2.0.8";
+  version = "2.0.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/libs/klibc/2.0/klibc-${version}.tar.xz";
-    sha256 = "0dmlkhnn5q8fc6rkzsisir4chkzmmiq6xkjmvyvf0g7yihwz2j2f";
+    sha256 = "sha256-bcynCJEzINJjCfBbDCv2gHG/EbPa3MTmx9kjg3/CPuE=";
   };
 
   patches = [ ./no-reinstall-kernel-headers.patch ];
diff --git a/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix b/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix
index e40a59ce8233..6d6a8e7c21e1 100644
--- a/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libcgroup/default.nix
@@ -1,26 +1,21 @@
-{ lib, stdenv, fetchurl, fetchpatch, pam, bison, flex }:
+{ lib, stdenv, fetchFromGitHub, pam, bison, flex, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libcgroup";
-  version = "0.41";
+  version = "0.42.2";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/libcg/${pname}-${version}.tar.bz2";
-    sha256 = "0lgvyq37gq84sk30sg18admxaj0j0p5dq3bl6g74a1ppgvf8pqz4";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1h8s70lm6g7r0wj7j3xgj2g3j9fifvsy2pna6w0j3i5hh42qfms4";
   };
 
   buildInputs = [ pam bison flex ];
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-14348.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/libcgroup/files/libcgroup-0.41-remove-umask.patch?id=33e9f4c81de754bbf76b893ea1133ed023f2a0e5";
-      sha256 = "1x0x29ld0cgmfwq4qy13s6d5c8sym1frfh1j2q47d8gfw6qaxka5";
-    })
-  ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   postPatch = ''
-    substituteInPlace src/tools/Makefile.in \
+    substituteInPlace src/tools/Makefile.am \
       --replace 'chmod u+s' 'chmod +x'
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix b/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix
index 2c9239b2e7d8..fbf7e4bd995a 100644
--- a/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix
@@ -44,6 +44,11 @@ stdenv.mkDerivation rec {
     "PYTHONLIBDIR=$(py)/${python3.sitePackages}"
   ];
 
+  postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
+    substituteInPlace src/procattr.c \
+      --replace "#include <unistd.h>" ""
+  '';
+
   preInstall = optionalString enablePython ''
     mkdir -p $py/${python3.sitePackages}/selinux
   '';
diff --git a/nixpkgs/pkgs/os-specific/linux/libsepol/default.nix b/nixpkgs/pkgs/os-specific/linux/libsepol/default.nix
index 12a94d6fc422..732ad88c70db 100644
--- a/nixpkgs/pkgs/os-specific/linux/libsepol/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libsepol/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
     sha256 = "0ygb6dh5lng91xs6xiqf5v0nxa68qmjc787p0s5h9w89364f2yjv";
   };
 
+  postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
+    substituteInPlace src/Makefile --replace 'all: $(LIBA) $(LIBSO)' 'all: $(LIBA)'
+    sed -i $'/^\t.*LIBSO/d' src/Makefile
+  '';
+
   nativeBuildInputs = [ flex ];
 
   makeFlags = [
@@ -34,6 +39,6 @@ stdenv.mkDerivation rec {
     homepage = "http://userspace.selinuxproject.org";
     platforms = platforms.linux;
     maintainers = [ maintainers.phreedom ];
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix b/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix
index 34ad80a6c005..21324a5d6ce7 100644
--- a/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lm-sensors/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ lgpl21Plus gpl2Plus ];
     maintainers = with maintainers; [ pengmeiyu ];
     platforms = platforms.linux;
+    mainProgram = "sensors";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/logitech-udev-rules/default.nix b/nixpkgs/pkgs/os-specific/linux/logitech-udev-rules/default.nix
index fde75fdcd650..0b0e9e8f203d 100644
--- a/nixpkgs/pkgs/os-specific/linux/logitech-udev-rules/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/logitech-udev-rules/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   inherit (solaar) version;
 
   buildCommand = ''
-    install -Dm644 -t $out/etc/udev/rules.d ${solaar.src}/rules.d/*.rules
+    install -Dm444 -t $out/etc/udev/rules.d ${solaar.src}/rules.d/*.rules
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/os-specific/linux/lsscsi/default.nix b/nixpkgs/pkgs/os-specific/linux/lsscsi/default.nix
index 90c0361bce35..6286735b758b 100644
--- a/nixpkgs/pkgs/os-specific/linux/lsscsi/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lsscsi/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "lsscsi-0.31";
+  name = "lsscsi-0.32";
 
   src = fetchurl {
-    url = "http://sg.danny.cz/scsi/lsscsi-0.31.tgz";
-    sha256 = "1jpk15y9vqjb1lcj4pdzygpg0jf0lja7azjldpywc0s805rikgqj";
+    url = "http://sg.danny.cz/scsi/lsscsi-0.32.tgz";
+    sha256 = "sha256-CoAOnpTcoqtwLWXXJ3eujK4Hjj100Ly+1kughJ6AKaE=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix b/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
index 3db9c5e9eb6b..d822ceed714c 100644
--- a/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
@@ -16,11 +16,11 @@ assert enableDmeventd -> enableCmdlib;
 
 stdenv.mkDerivation rec {
   pname = "lvm2" + lib.optionalString enableDmeventd "with-dmeventd";
-  version = "2.03.11";
+  version = "2.03.12";
 
   src = fetchurl {
     url = "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz";
-    sha256 = "1m4xpda8vbyd89ca0w8nacvnl4j34yzsa625gn990fb5sh84ab44";
+    sha256 = "1shczwfd0888dchjiaqzd48ampm6f8y0ngsqd99fy4nxlbr5q1vn";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/os-specific/linux/lxc/default.nix b/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
index e6bdd70b915c..bad7622771aa 100644
--- a/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
@@ -9,11 +9,11 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "lxc";
-  version = "4.0.6";
+  version = "4.0.9";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz";
-    sha256 = "0qz4l7mlhq7hx53q606qgvkyzyr01glsw290v8ppzvxn1fydlrci";
+    sha256 = "0az56xpvhqiwmf9wfxzaz89s5idrgd9ynd13psscw3hlx480dkqz";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
index bcc86b72de04..440e81266c8b 100644
--- a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
@@ -5,13 +5,13 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "lxcfs";
-  version = "4.0.7";
+  version = "4.0.8";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "lxcfs";
     rev = "lxcfs-${version}";
-    sha256 = "sha256-gC1Q+kG/oKfYvuHVKstpRWfL/thsemULrimPrV/eeaI=";
+    sha256 = "sha256-8Tack2gM3AU3coGXs5hEbAaBCo5ss1sGUFFEjZDn5Lg=";
   };
 
   nativeBuildInputs = [ pkg-config help2man autoreconfHook makeWrapper ];
diff --git a/nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix b/nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
index 258f4296e2e0..070b4a6207e1 100644
--- a/nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mbp2018-bridge-drv";
-  version = "0.01";
+  version = "2020-01-31";
 
   src = fetchFromGitHub {
     owner = "MCMrARM";
     repo = "mbp2018-bridge-drv";
-    rev = "${version}";
-    sha256 = "0ac2l51ybfrvg8m36x67rsvgjqs1vwp7c89ssvbjkrcq3y4qdb53";
+    rev = "b43fcc069da73e051072fde24af4014c9c487286";
+    sha256 = "sha256-o6yGiR+Y5SnX1johdi7fQWP5ts7HdDMqeju75UOhgik=";
   };
 
   buildPhase = ''
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ lib.maintainers.hlolli ];
+    broken = kernel.kernelOlder "5.4";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/miraclecast/default.nix b/nixpkgs/pkgs/os-specific/linux/miraclecast/default.nix
index 8545d31c71ab..b5efaa40afe9 100644
--- a/nixpkgs/pkgs/os-specific/linux/miraclecast/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/miraclecast/default.nix
@@ -16,8 +16,6 @@ stdenv.mkDerivation {
 
   buildInputs = [ glib pcre readline systemd udev ];
 
-  enableParallelBuilding = true;
-
   mesonFlags = [
     "-Drely-udev=true"
     "-Dbuild-tests=true"
diff --git a/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
index aff847c20ff6..7430182e5d2e 100644
--- a/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "mmc-utils";
-  version = "2019-10-04";
+  version = "2021-05-11";
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git";
-    rev = "73d6c59af8d1bcedf5de4aa1f5d5b7f765f545f5";
-    sha256 = "18a7qm86gavg15gv4h6xfnapgq24v4dyvhwfp53lkssxyhjbli0z";
+    rev = "43282e80e174cc73b09b81a4d17cb3a7b4dc5cfc";
+    sha256 = "0l06ahmprqshh75pkdpagb8fgnp2bwn8q8hwp1yl3laww2ghm8i5";
   };
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix b/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix
index c21cf2bb6482..ca5b82b87858 100644
--- a/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix
@@ -1,28 +1,25 @@
-{ lib, stdenv, fetchurl, kernel, alsaLib }:
+{ lib, stdenv, fetchurl, kernel, alsa-lib }:
 
 with lib;
 
-# The Magewell Pro Capture drivers are not supported for kernels older than 3.2
-assert versionAtLeast kernel.version "3.2.0";
-
 let
   bits =
   if stdenv.is64bit then "64"
   else "32";
 
-  libpath = makeLibraryPath [ stdenv.cc.cc stdenv.glibc alsaLib ];
+  libpath = makeLibraryPath [ stdenv.cc.cc stdenv.glibc alsa-lib ];
 
 in
 stdenv.mkDerivation rec {
-  name = "mwprocapture-1.2.${version}-${kernel.version}";
-  version = "4177";
+  name = "mwprocapture-1.3.0.${version}-${kernel.version}";
+  version = "4236";
 
   src = fetchurl {
-    url = "http://www.magewell.com/files/drivers/ProCaptureForLinux_${version}.tar.gz";
-    sha256 = "1nf51w9yixpvr767k49sfdb9n9rv5qc72f5yki1mkghbmabw7vys";
+    url = "https://www.magewell.com/files/drivers/ProCaptureForLinux_${version}.tar.gz";
+    sha256 = "1mfgj84km276sq5i8dny1vqp2ycqpvgplrmpbqwnk230d0w3qs74";
   };
 
-  nativeBuildInputs = [ kernel.moduleBuildDependencies ];
+  nativeBuildInputs = kernel.moduleBuildDependencies;
 
   preConfigure =
   ''
@@ -63,5 +60,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ MP2E ];
     platforms = platforms.linux;
+    broken = kernel.kernelOlder "3.2.0";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/mxu11x0/default.nix b/nixpkgs/pkgs/os-specific/linux/mxu11x0/default.nix
index ac9f27e2e6bd..3498625be757 100644
--- a/nixpkgs/pkgs/os-specific/linux/mxu11x0/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mxu11x0/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ uralbash ];
     platforms = platforms.linux;
+    broken = kernel.kernelAtLeast "5.4";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/netatop/default.nix b/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
index fb0a4eb71887..28f989929a4c 100644
--- a/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, kernel, zlib }:
+{ lib, stdenv, fetchurl, kernel, kmod, zlib }:
 
 let
   version = "3.1";
@@ -12,10 +12,16 @@ stdenv.mkDerivation {
     sha256 = "0qjw8glfdmngfvbn1w63q128vxdz2jlabw13y140ga9i5ibl6vvk";
   };
 
-  buildInputs = [ zlib ];
+  buildInputs = [ kmod zlib ];
 
   hardeningDisable = [ "pic" ];
 
+  patches = [
+    # fix paths in netatop.service
+    ./fix-paths.patch
+    # Specify PIDFile in /run, not /var/run to silence systemd warning
+    ./netatop.service.patch
+  ];
   preConfigure = ''
     patchShebangs mkversion
     sed -i -e 's,^KERNDIR.*,KERNDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build,' \
@@ -24,12 +30,14 @@ stdenv.mkDerivation {
         -e s,/usr,$out, \
         -e /init.d/d \
         -e /depmod/d \
-        -e /netatop.service/d \
+        -e s,/lib/systemd,$out/lib/systemd, \
         Makefile
+
+    kmod=${kmod} substituteAllInPlace netatop.service
   '';
 
   preInstall = ''
-    mkdir -p $out/bin $out/sbin $out/share/man/man{4,8}
+    mkdir -p $out/lib/systemd/system $out/bin $out/sbin $out/share/man/man{4,8}
     mkdir -p $out/lib/modules/${kernel.modDirVersion}/extra
   '';
 
@@ -38,6 +46,6 @@ stdenv.mkDerivation {
     homepage = "https://www.atoptool.nl/downloadnetatop.php";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [viric];
+    maintainers = with lib.maintainers; [ viric ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/netatop/fix-paths.patch b/nixpkgs/pkgs/os-specific/linux/netatop/fix-paths.patch
new file mode 100644
index 000000000000..0e71c4efdd31
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/netatop/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/netatop.service
++++ b/netatop.service
+@@ -8,5 +8,5 @@
+ Type=oneshot
+-ExecStartPre=/sbin/modprobe netatop
+-ExecStart=/usr/sbin/netatopd
+-ExecStopPost=/sbin/rmmod netatop
++ExecStartPre=@kmod@/bin/modprobe netatop
++ExecStart=@out@/bin/netatopd
++ExecStopPost=@kmod@/bin/rmmod netatop
+ PIDFile=/var/run/netatop.pid
diff --git a/nixpkgs/pkgs/os-specific/linux/netatop/netatop.service.patch b/nixpkgs/pkgs/os-specific/linux/netatop/netatop.service.patch
new file mode 100644
index 000000000000..c7c798ee06bc
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/netatop/netatop.service.patch
@@ -0,0 +1,7 @@
+--- a/netatop.service
++++ b/netatop.service
+@@ -11,3 +11,3 @@
+ ExecStopPost=@kmod@/bin/rmmod netatop
+-PIDFile=/var/run/netatop.pid
++PIDFile=/run/netatop.pid
+ RemainAfterExit=yes
diff --git a/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/default.nix b/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/default.nix
index 9fb7e3664658..b317c5a1fbfd 100644
--- a/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/default.nix
@@ -18,5 +18,6 @@ substituteAll {
   inherit runtimeShell nix;
   nix_x86_64_linux = fallback.x86_64-linux;
   nix_i686_linux = fallback.i686-linux;
+  nix_aarch64_linux = fallback.aarch64-linux;
   path = lib.makeBinPath [ coreutils jq gnused gnugrep ];
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 5874f334fedb..02614aea6d0b 100644
--- a/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/nixpkgs/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -79,7 +79,6 @@ while [ "$#" -gt 0 ]; do
       --fast)
         buildNix=
         fast=1
-        extraBuildFlags+=(--show-trace)
         ;;
       --profile-name|-p)
         if [ -z "$1" ]; then
@@ -105,7 +104,7 @@ while [ "$#" -gt 0 ]; do
         ;;
       --flake)
         flake="$1"
-        flakeFlags=(--experimental-features 'nix-command flakes')
+        flakeFlags=(--extra-experimental-features 'nix-command flakes')
         shift 1
         ;;
       --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
@@ -214,6 +213,47 @@ nixBuild() {
   fi
 }
 
+nixFlakeBuild() {
+    if [ -z "$buildHost" ]; then
+        nix build "$@" --out-link "${tmpDir}/result"
+        readlink -f "${tmpDir}/result"
+    else
+        local attr="$1"
+        shift 1
+        local evalArgs=()
+        local buildArgs=()
+        while [ "$#" -gt 0 ]; do
+            local i="$1"; shift 1
+            case "$i" in
+              --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
+                evalArgs+=("$i")
+                ;;
+              --update-input)
+                local j="$1"; shift 1
+                evalArgs+=("$i" "$j")
+                ;;
+              --override-input)
+                local j="$1"; shift 1
+                local k="$1"; shift 1
+                evalArgs+=("$i" "$j" "$k")
+                ;;
+              *)
+                buildArgs+=("$i")
+                ;;
+            esac
+        done
+
+        local drv="$(nix "${flakeFlags[@]}" eval --raw "${attr}.drvPath" "${evalArgs[@]}" "${extraBuildArgs[@]}")"
+        if [ -a "$drv" ]; then
+            NIX_SSHOPTS=$SSHOPTS nix "${flakeFlags[@]}" copy --derivation --to "ssh://$buildHost" "$drv"
+            buildHostCmd nix-store -r "$drv" "${buildArgs[@]}"
+        else
+            echo "nix eval failed"
+            exit 1
+        fi
+    fi
+}
+
 
 if [ -z "$action" ]; then showSyntax; fi
 
@@ -345,6 +385,8 @@ prebuiltNix() {
         echo @nix_x86_64_linux@
     elif [[ "$machine" =~ i.86 ]]; then
         echo @nix_i686_linux@
+    elif [[ "$machine" = aarch64 ]]; then
+        echo @nix_aarch64_linux@
     else
         echo "$0: unsupported platform"
         exit 1
@@ -418,10 +460,7 @@ if [ -z "$rollback" ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")"
         else
-            outLink=$tmpDir/result
-            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
-              "${extraBuildFlags[@]}" "${lockFlags[@]}" --out-link $outLink
-            pathToConfig="$(readlink -f $outLink)"
+            pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
         fi
         copyToTarget "$pathToConfig"
         targetHostCmd nix-env -p "$profile" --set "$pathToConfig"
@@ -429,24 +468,19 @@ if [ -z "$rollback" ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}")"
         else
-            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
-            pathToConfig="$(readlink -f ./result)"
+            pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
         fi
     elif [ "$action" = build-vm ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vm -k "${extraBuildFlags[@]}")"
         else
-            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vm" \
-              "${extraBuildFlags[@]}" "${lockFlags[@]}"
-            pathToConfig="$(readlink -f ./result)"
+            pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.vm" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
         fi
     elif [ "$action" = build-vm-with-bootloader ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vmWithBootLoader -k "${extraBuildFlags[@]}")"
         else
-            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vmWithBootLoader" \
-              "${extraBuildFlags[@]}" "${lockFlags[@]}"
-            pathToConfig="$(readlink -f ./result)"
+            pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.vmWithBootLoader" "${extraBuildFlags[@]}" "${lockFlags[@]}")"
         fi
     else
         showSyntax
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
index aa1b810976d2..8fc439aeb3c9 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -14,15 +14,6 @@ let
 
   kernel = callPackage # a hacky way of extracting parameters from callPackage
     ({ kernel, libsOnly ? false }: if libsOnly then { } else kernel) { };
-
-  maybePatch_drm_legacy =
-    lib.optional (lib.versionOlder "4.14" (kernel.version or "0"))
-      (fetchurl {
-        url = "https://raw.githubusercontent.com/MilhouseVH/LibreELEC.tv/b5d2d6a1"
-            + "/packages/x11/driver/xf86-video-nvidia-legacy/patches/"
-            + "xf86-video-nvidia-legacy-0010-kernel-4.14.patch";
-        sha256 = "18clfpw03g8dxm61bmdkmccyaxir3gnq451z6xqa2ilm3j820aa5";
-      });
 in
 rec {
   # Policy: use the highest stable version as the default (on our master).
@@ -36,10 +27,10 @@ rec {
     else legacy_390;
 
   beta = generic {
-    version = "460.27.04";
-    sha256_64bit = "plTqtc5QZQwM0f3MeMZV0N5XOiuSXCCDklL/qyy8HM8=";
-    settingsSha256 = "hU9J0VSrLXs7N14zq6U5LbBLZXEIyTfih/Bj6eFcMf0=";
-    persistencedSha256 = "PmqhoPskqhJe2FxMrQh9zX1BWQCR2kkfDwvA89+XALA=";
+    version = "465.31";
+    sha256_64bit = "YAjQAckzWGMEnDOOe6arlkBvT3rzFCeqjBjG0ncnLNo=";
+    settingsSha256 = "33zHXxfG/t6REbHqhYjzBhtuus7jP34r2wK90sBT9vE=";
+    persistencedSha256 = "1r/QqjOxg6836mQ46hNsPscKliNAtpN9xW6M++02woY=";
   };
 
   # Vulkan developer beta driver
@@ -56,11 +47,11 @@ rec {
 
   # Last one supporting x86
   legacy_390 = generic {
-    version = "390.138";
-    sha256_32bit = "0y3qjygl0kfz9qs0rp9scn1k3l8ym9dib7wpkyh5gs4klcip7xkv";
-    sha256_64bit = "0rnnb5l4i8s76vlg6yvlrxhm2x9wdqw7k5hgf4fyaa3cr3k1kysz";
-    settingsSha256 = "0ad6hwl56nvbdv9g85lw7ywadqvc2gaq9x6d2vjcia9kg4vrmfqx";
-    persistencedSha256 = "15jciyq6i3pz1g67xzqlwmc62v3xswzhjcqmfcdndvlvhcibsimr";
+    version = "390.143";
+    sha256_32bit = "AelrdTTeo/3+ZdXK0iniZDB8gJUkeZQtNoRm25z+bQY=";
+    sha256_64bit = "tyKqcPM71ErK8ZZHLPtxmgrWzv6tfEmxBRveCSwTlO8=";
+    settingsSha256 = "EJPXZbxZS1CMENAYk9dCAIsHsRTXJpj473+JLuhGkWI=";
+    persistencedSha256 = "FtlPF3jCNr18NnImTmr8zJsaK9wbj/aWZ9LwoLr5SeE=";
   };
 
   legacy_340 = generic {
@@ -73,32 +64,4 @@ rec {
 
     patches = [ ./vm_operations_struct-fault.patch ];
   };
-
-  legacy_304 = generic {
-    version = "304.137";
-    sha256_32bit = "1y34c2gvmmacxk2c72d4hsysszncgfndc4s1nzldy2q9qagkg66a";
-    sha256_64bit = "1qp3jv6279k83k3z96p6vg3dd35y9bhmlyyyrkii7sib7bdmc7zb";
-    settingsSha256 = "129f0j0hxzjd7g67qwxn463rxp295fsq8lycwm6272qykmab46cj";
-    persistencedSha256 = null;
-    useGLVND = false;
-    useProfiles = false;
-    settings32Bit = true;
-
-    prePatch = let
-      debPatches = fetchurl {
-        url = "mirror://debian/pool/non-free/n/nvidia-graphics-drivers-legacy-304xx/"
-            + "nvidia-graphics-drivers-legacy-304xx_304.137-5.debian.tar.xz";
-        sha256 = "0n8512mfcnvklfbg8gv4lzbkm3z6nncwj6ix2b8ngdkmc04f3b6l";
-      };
-      prefix = "debian/module/debian/patches";
-      applyPatches = pnames: if pnames == [] then null else
-        ''
-          tar xf '${debPatches}'
-          sed 's|^\([+-]\{3\} [ab]\)/|\1/kernel/|' -i ${prefix}/*.patch
-          patches="$patches ${lib.concatMapStringsSep " " (pname: "${prefix}/${pname}.patch") pnames}"
-        '';
-    in applyPatches [ "fix-typos" ];
-    patches = maybePatch_drm_legacy;
-    broken = lib.versionAtLeast kernel.version "4.18";
-  };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix b/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
index 16dcfe9ba060..511dd162785f 100644
--- a/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
@@ -10,12 +10,12 @@
 
 buildGoModule rec {
   pname = "oci-seccomp-bpf-hook";
-  version = "1.2.2";
+  version = "1.2.3";
   src = fetchFromGitHub {
     owner = "containers";
     repo = "oci-seccomp-bpf-hook";
     rev = "v${version}";
-    sha256 = "sha256-SRphs8zwKz6jlAixVZkHdww0jroaBNK82kSLj1gs6Wg=";
+    sha256 = "sha256-EKD6tkdQCPlVlb9ScvRwDxYAtbbv9PIqBHH6SvtPDsE=";
   };
   vendorSha256 = null;
 
@@ -56,6 +56,5 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ saschagrunert ];
     platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix b/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix
index b5610d35ddea..5e2284b489c7 100644
--- a/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix
@@ -1,21 +1,21 @@
 { lib, stdenv, fetchurl, autoreconfHook, pkg-config
-, dpdk, libconfig, libpcap, numactl, openssl, zlib, libbsd, libelf, jansson
+, dpdk, libbpf, libconfig, libpcap, numactl, openssl, zlib, libbsd, libelf, jansson
 }: let
-  dpdk_18_11 = dpdk.overrideAttrs (old: rec {
-    version = "18.11.5";
+  dpdk_19_11 = dpdk.overrideAttrs (old: rec {
+    version = "19.11";
     src = fetchurl {
       url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
-      sha256 = "1n6nfaj7703l19jcw540lm8avni48hj9q1rq4mfp8b8gd4zjprj0";
+      sha256 = "sha256-RnEzlohDZ3uxwna7dKNFiqfAAswh4pXFHjvWVJexEqs=";
     };
   });
 
 in stdenv.mkDerivation rec {
   pname = "odp-dpdk";
-  version = "1.22.0.0_DPDK_18.11";
+  version = "1.27.0.0_DPDK_19.11";
 
   src = fetchurl {
     url = "https://git.linaro.org/lng/odp-dpdk.git/snapshot/${pname}-${version}.tar.gz";
-    sha256 = "1m8xhmfjqlj2gkkigq5ka3yh0xgzrcpfpaxp1pnh8d1g99094vbx";
+    sha256 = "sha256-/4m2NqnEXyenNUrCq3c2ozJzPWFFs/Qp7MAVm9B2biA=";
   };
 
   nativeBuildInputs = [
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
     pkg-config
   ];
   buildInputs = [
-    dpdk_18_11
+    dpdk_19_11
     libconfig
     libpcap
     numactl
@@ -32,19 +32,9 @@ in stdenv.mkDerivation rec {
     libbsd
     libelf
     jansson
+    libbpf
   ];
 
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=address-of-packed-member" ];
-
-  # for some reason, /build/odp-dpdk-1.22.0.0_DPDK_18.11/lib/.libs ends up in all binaries,
-  # while it should be $out/lib instead.
-  # prepend rpath with the proper location, the /build will get removed during rpath shrinking
-  preFixup = ''
-    for prog in $out/bin/*; do
-      patchelf --set-rpath $out/lib:`patchelf --print-rpath $prog` $prog
-    done
-  '';
-
   # binaries will segfault otherwise
   dontStrip = true;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix b/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix
index 4745ba818a90..07113e628625 100644
--- a/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix
+++ b/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix
@@ -10,7 +10,8 @@ let
   common = import ../../../development/python-modules/openrazer/common.nix { inherit lib fetchFromGitHub; };
 in
 stdenv.mkDerivation (common // {
-  name = "openrazer-${common.version}-${kernel.version}";
+  pname = "openrazer";
+  version = "${common.version}-${kernel.version}";
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
 
@@ -19,6 +20,8 @@ stdenv.mkDerivation (common // {
   ];
 
   installPhase = ''
+    runHook preInstall
+
     binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid"
     mkdir -p "$binDir"
     cp -v driver/*.ko "$binDir"
@@ -32,9 +35,12 @@ stdenv.mkDerivation (common // {
       --replace /usr/bin/logger ${util-linux}/bin/logger \
       --replace chgrp ${coreutils}/bin/chgrp \
       --replace "PATH='/sbin:/bin:/usr/sbin:/usr/bin'" ""
+
+    runHook postInstall
   '';
 
   meta = common.meta // {
     description = "An entirely open source Linux driver that allows you to manage your Razer peripherals on GNU/Linux";
+    broken = kernel.kernelOlder "4.19";
   };
 })
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_u2f/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_u2f/default.nix
index 760af73fecd2..30a55f2b9c00 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam_u2f/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam_u2f/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pam_u2f";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src     = fetchurl {
     url = "https://developers.yubico.com/pam-u2f/Releases/${pname}-${version}.tar.gz";
-    sha256 = "01fwbrfnjkv93vvqm54jywdcxa1p7d4r32azicwnx75nxfbbzhqd";
+    sha256 = "12p3pkrp32vzpg7707cgx8zgvgj8iqwhy39sm761k7plqi027mmp";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -16,6 +16,14 @@ stdenv.mkDerivation rec {
     configureFlagsArray+=("--with-pam-dir=$out/lib/security")
   '';
 
+  # a no-op makefile to prevent building the fuzz targets
+  postConfigure = ''
+    cat > fuzz/Makefile <<EOF
+    all:
+    install:
+    EOF
+  '';
+
   meta = with lib; {
     homepage = "https://developers.yubico.com/pam-u2f/";
     description = "A PAM module for allowing authentication with a U2F device";
diff --git a/nixpkgs/pkgs/os-specific/linux/piper/default.nix b/nixpkgs/pkgs/os-specific/linux/piper/default.nix
index 839b3f1b78f5..5edcd263f0d9 100644
--- a/nixpkgs/pkgs/os-specific/linux/piper/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/piper/default.nix
@@ -1,5 +1,5 @@
 { lib, meson, ninja, pkg-config, gettext, fetchFromGitHub, python3
-, wrapGAppsHook, gtk3, glib, desktop-file-utils, appstream-glib, gnome3
+, wrapGAppsHook, gtk3, glib, desktop-file-utils, appstream-glib, gnome
 , gobject-introspection }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   nativeBuildInputs = [ meson ninja gettext pkg-config wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ];
   buildInputs = [
-    gtk3 glib gnome3.adwaita-icon-theme python3
+    gtk3 glib gnome.adwaita-icon-theme python3
   ];
   propagatedBuildInputs = with python3.pkgs; [ lxml evdev pygobject3 ] ++ [
     gobject-introspection # fixes https://github.com/NixOS/nixpkgs/issues/56943 for now
diff --git a/nixpkgs/pkgs/os-specific/linux/pktgen/configure.patch b/nixpkgs/pkgs/os-specific/linux/pktgen/configure.patch
deleted file mode 100644
index b4933313a51a..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/pktgen/configure.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-1. librte_process_info does not exist.
-2. lua5.3 library is liblua.
-3. app/meson.build uses undeclared drivers_install_subdir.
---- a/lib/common/meson.build
-+++ b/lib/common/meson.build
-@@ -34,1 +34,1 @@
--libs = ['eal', 'kvargs', 'cmdline', 'process_info']
-+libs = ['eal', 'kvargs', 'cmdline']
---- a/lib/lua/meson.build
-+++ b/lib/lua/meson.build
-@@ -31 +31 @@ endforeach
--ext_deps += cc.find_library('lua5.3', required: true)
-+ext_deps += cc.find_library('lua', required: true)
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -0,0 +1,1 @@
-+option('drivers_install_subdir', type: 'string', value: '')
diff --git a/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix b/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix
index 47ca709c44b9..5a1a56ab6919 100644
--- a/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix
@@ -1,29 +1,33 @@
-{ stdenv, lib, fetchurl, meson, ninja, pkg-config
+{ stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config
 , dpdk, libbsd, libpcap, lua5_3, numactl, util-linux
 , gtk2, which, withGtk ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "pktgen";
-  version = "19.12.0";
+  version = "21.05.0";
 
-  src = fetchurl {
-    url = "http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/${pname}-${version}.tar.xz";
-    sha256 = "1clfviz1qa4hysslcg6i29vsxwl9f6j1y7zf9wwx9br3yq08x956";
+  src = fetchFromGitHub {
+    owner = "pktgen";
+    repo = "Pktgen-DPDK";
+    rev = "pktgen-${version}";
+    sha256 = "sha256-7lLDtbd14olEHO+1BuI6KTEUNRM/zAyRXau/OZbYbGA=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
 
-  buildInputs =
-    [ dpdk libbsd libpcap lua5_3 numactl which ]
-    ++ lib.optionals withGtk [gtk2];
+  buildInputs = [
+    dpdk libbsd libpcap lua5_3 numactl which
+  ] ++ lib.optionals withGtk [
+    gtk2
+  ];
 
   RTE_SDK = dpdk;
   GUI = lib.optionalString withGtk "true";
 
   NIX_CFLAGS_COMPILE = "-msse3";
-
-  patches = [ ./configure.patch ];
+  # requires symbols from this file
+  NIX_LDFLAGS = "-lrte_net_bond";
 
   postPatch = ''
     substituteInPlace lib/common/lscpu.h --replace /usr/bin/lscpu ${util-linux}/bin/lscpu
diff --git a/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix b/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix
index 9e9cf149fefb..0797656f653e 100644
--- a/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , pciutils
 , libconfuse
-, alsaLib
+, alsa-lib
 , audiofile
 , pkg-config
 , zlib
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     pciutils
     libconfuse
-    alsaLib
+    alsa-lib
     audiofile
     zlib
     eject
diff --git a/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix b/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
index 90af44f83530..5113d3c10704 100644
--- a/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
@@ -1,15 +1,15 @@
 { stdenvNoCC, lib, fetchFromGitHub, makeWrapper
 , python3, binutils-unwrapped, findutils, kmod, pciutils, libraspberrypi
 }:
-stdenvNoCC.mkDerivation {
+stdenvNoCC.mkDerivation rec {
   pname = "raspberrypi-eeprom";
-  version = "2021-03-18";
+  version = "2021.04.29-138a1";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-eeprom";
-    rev = "ff27ccf69403b01e337fc4ee6e7ae75244028cce";
-    sha256 = "1q1vlld0xxh9zinf5g0qa6jw1dggq93br938mvrfx3nb2aviiwcj";
+    rev = "v${version}";
+    sha256 = "sha256-nzAMPa4gqCAcROFa7z34IoMA3aoMHX9fYCsPFde9dac=";
   };
 
   buildInputs = [ python3 ];
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation {
     # Don't try to verify md5 signatures from /var/lib/dpkg and
     # fix path to the configuration.
     substituteInPlace rpi-eeprom-update \
-      --replace 'IGNORE_DPKG_CHECKSUMS=$LOCAL_MODE' 'IGNORE_DPKG_CHECKSUMS=1' \
+      --replace 'IGNORE_DPKG_CHECKSUMS=''${LOCAL_MODE}' 'IGNORE_DPKG_CHECKSUMS=1' \
       --replace '/etc/default' '/etc'
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix
index d921eb71b0ee..b66a56a8f8bf 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix
@@ -5,37 +5,40 @@ with lib;
 let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtl8192eu";
 
 in stdenv.mkDerivation rec {
-  name = "rtl8192eu-${kernel.version}-${version}";
-  version = "4.4.1.20200620";
+  pname = "rtl8192eu";
+  version = "${kernel.version}-4.4.1.20210403";
 
   src = fetchFromGitHub {
     owner = "Mange";
     repo = "rtl8192eu-linux-driver";
-    rev = "925ac2be34dd608a7ca42daebf9713f0c1bcec74";
-    sha256 = "159vg0scq47wnn600karpgzx3naaiyl1rg8608c8d28nhm62gvjz";
+    rev = "ab35c7e9672f37d75b7559758c99f6d027607687";
+    sha256 = "sha256-sTIaye4oWNYEnNuXlrTLobaFKXzBLsfJXdJuc10EdJI=";
   };
 
   hardeningDisable = [ "pic" ];
 
-  nativeBuildInputs = kernel.moduleBuildDependencies;
-
-  buildInputs = [ bc ];
+  nativeBuildInputs = kernel.moduleBuildDependencies ++ [ bc ];
 
   makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
 
   enableParallelBuilding = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p ${modDestDir}
     find . -name '*.ko' -exec cp --parents {} ${modDestDir} \;
     find ${modDestDir} -name '*.ko' -exec xz -f {} \;
+
+    runHook postInstall
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Realtek rtl8192eu driver";
     homepage = "https://github.com/Mange/rtl8192eu-linux-driver";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    broken = stdenv.hostPlatform.isAarch64;
     maintainers = with maintainers; [ troydm ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8812au/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8812au/default.nix
index 68a88fb6778d..43396a99b963 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8812au/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8812au/default.nix
@@ -1,26 +1,28 @@
 { lib, stdenv, fetchFromGitHub, kernel, bc, nukeReferences }:
 
 stdenv.mkDerivation rec {
-  name = "rtl8812au-${kernel.version}-${version}";
-  version = "5.6.4.2_35491.20200702";
+  pname = "rtl8812au";
+  version = "${kernel.version}-5.9.3.2.20210427";
 
   src = fetchFromGitHub {
     owner = "gordboy";
-    repo = "rtl8812au-5.6.4.2";
-    rev = "3110ad65d0f03532bd97b1017cae67ca86dd34f6";
-    sha256 = "0p0cv67dfr41npxn0c1frr0k9wiv0pdbvlzlmclgixn39xc6n5qz";
+    repo = "rtl8812au-5.9.3.2";
+    rev = "6ef5d8fcdb0b94b7490a9a38353877708fca2cd4";
+    sha256 = "sha256-czExf4z0nf7XEJ1YnRSB3CrGV6NTmUKDiZjLmrh6Hwo=";
   };
 
   nativeBuildInputs = [ bc nukeReferences ];
+
   buildInputs = kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" "format" ];
 
   prePatch = ''
-    substituteInPlace ./Makefile --replace /lib/modules/ "${kernel.dev}/lib/modules/"
-    substituteInPlace ./Makefile --replace '$(shell uname -r)' "${kernel.modDirVersion}"
-    substituteInPlace ./Makefile --replace /sbin/depmod \#
-    substituteInPlace ./Makefile --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+    substituteInPlace ./Makefile \
+      --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
+      --replace '$(shell uname -r)' "${kernel.modDirVersion}" \
+      --replace /sbin/depmod \# \
+      --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
   '';
 
   makeFlags = [
@@ -42,9 +44,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Driver for Realtek 802.11ac, rtl8812au, provides the 8812au mod";
-    homepage = "https://github.com/gordboy/rtl8812au-5.6.4.2";
-    license = licenses.gpl2;
+    homepage = "https://github.com/gordboy/rtl8812au-5.9.3.2";
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ danielfullmer ];
+    maintainers = with maintainers; [ fortuneteller2k ];
+    broken = kernel.kernelOlder "4.10" || kernel.isHardened;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix
index a710ef34e956..2b0fb9622a4b 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel }:
 
-stdenv.mkDerivation rec {
-  name = "rtl8814au-${kernel.version}-${version}";
-  version = "4.3.21";
+stdenv.mkDerivation {
+  pname = "rtl8814au";
+  version = "${kernel.version}-unstable-2021-05-18";
 
   src = fetchFromGitHub {
-    owner = "zebulon2";
-    repo = "rtl8814au";
-    rev = "a58c56a5a6cb99ffb872f07cb67b68197911854f";
-    sha256 = "1ffm67da183nz009gm5v9w1bab081hrm113kk8knl9s5qbqnn13q";
+    owner = "morrownr";
+    repo = "8814au";
+    rev = "388786c864f9b1437fc4d934b1eccf6d7f1e1355";
+    sha256 = "sha256-2EnheODPFWTGN/fz45LWRSOGeV6pTENEUrehahj+PJ4=";
   };
 
   buildInputs = kernel.moduleBuildDependencies;
@@ -31,9 +31,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Realtek 8814AU USB WiFi driver";
-    homepage = "https://github.com/zebulon2/rtl8814au";
-    license = licenses.gpl2;
+    homepage = "https://github.com/morrownr/8814au";
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.lassulus ];
-    platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8821au/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8821au/default.nix
index 908220a1f28d..08e097b0d5f3 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8821au/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8821au/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel, bc, nukeReferences }:
 
 stdenv.mkDerivation rec {
-  name = "rtl8821au-${kernel.version}-${version}";
-  version = "5.1.5+41";
+  pname = "rtl8821au";
+  version = "${kernel.version}-unstable-2021-05-18";
 
   src = fetchFromGitHub {
-    owner = "zebulon2";
-    repo = "rtl8812au";
-    rev = "ecd3494c327c54110d21346ca335ef9e351cb0be";
-    sha256 = "1kmdxgbh0s0v9809kdsi39p0jbm5cf10ivy40h8qj9hn70g1gw8q";
+    owner = "morrownr";
+    repo = "8821au";
+    rev = "6f6a9d5772bb2b75f18374c01c82c6b3e8e3244d";
+    sha256 = "sha256-RqtLR3sNcLXhUrNloSTRKubL1SVwzbVe73AsBYYSXNE=";
   };
 
   nativeBuildInputs = [ bc nukeReferences ];
@@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "rtl8821AU, rtl8812AU and rtl8811AU chipset driver with firmware";
-    homepage = "https://github.com/zebulon2/rtl8812au";
-    license = licenses.gpl2;
+    description = "rtl8821AU and rtl8812AU chipset driver with firmware";
+    homepage = "https://github.com/morrownr/8821au";
+    license = licenses.gpl2Only;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ plchldr ];
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
index cb8a02bcf304..b4def6f001ca 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel, bc }:
 
 stdenv.mkDerivation rec {
-  pname = "rtl8821ce-${kernel.version}";
-  version = "unstable-2021-03-21";
+  pname = "rtl8821ce";
+  version = "${kernel.version}-unstable-2021-05-28";
 
   src = fetchFromGitHub {
     owner = "tomaspinho";
     repo = "rtl8821ce";
-    rev = "897e7c4c15dd5a0a569745dc223d969a26ff5bfc";
-    sha256 = "0935dzz0njxh78wfd17yqah1dxn6b3kaszvzclwwrwwhwcrdp80j";
+    rev = "f93db734666f75ebf65e44ceb943c19b598b1647";
+    sha256 = "sha256-cqXV52U+6Jl9Jje1nEOYDvmH4rgA1QdrwNCfYeul3hU=";
   };
 
   hardeningDisable = [ "pic" ];
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/tomaspinho/rtl8821ce";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
+    broken = stdenv.isAarch64;
     maintainers = with maintainers; [ hhm ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix
index 20bb590895b9..556fd7939156 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix
@@ -1,13 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel, bc }:
+
 stdenv.mkDerivation rec {
-  name = "rtl8821cu-${kernel.version}-${version}";
-  version = "unstable-2020-12-21";
+  pname = "rtl8821cu";
+  version = "${kernel.version}-unstable-2021-05-19";
 
   src = fetchFromGitHub {
-    owner = "brektrou";
-    repo = "rtl8821cu";
-    rev = "428a0820487418ec69c0edb91726d1cf19763b1e";
-    sha256 = "1ccl94727yq7gzn37ky91k0736cambgnkaa37r2f2hinpl9qdd8q";
+    owner = "morrownr";
+    repo = "8821cu";
+    rev = "2430c354c9b15fa6193a263c99ce57211d50c66f";
+    sha256 = "sha256-PkrpwebZYh/hBukqDQf6pxfbkVyA+CpYtte5pmzgLtw=";
   };
 
   hardeningDisable = [ "pic" ];
@@ -29,8 +30,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Realtek rtl8821cu driver";
-    homepage = "https://github.com/brektrou/rtl8821CU";
-    license = licenses.gpl2;
+    homepage = "https://github.com/morrownr/8821cu";
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.contrun ];
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl88x2bu/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl88x2bu/default.nix
index cc37ef13d50e..4b194bb2f335 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl88x2bu/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl88x2bu/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel, bc }:
 
 stdenv.mkDerivation rec {
-  name = "rtl88x2bu-${kernel.version}-${version}";
-  version = "unstable-2021-01-21";
+  pname = "rtl88x2bu";
+  version = "${kernel.version}-unstable-2021-05-18";
 
   src = fetchFromGitHub {
-    owner = "cilynx";
-    repo = "rtl88x2BU";
-    rev = "48e7c19c92a77554403e1347447f8e2cfd780228";
-    sha256 = "0nw2kgblpq6qlr43gbfxqvq0c83664f4czfwzsyfjr47rj00iyq7";
+    owner = "morrownr";
+    repo = "88x2bu";
+    rev = "80b03962e33f86f99e898305d8d597140503de03";
+    sha256 = "sha256-C7XOpKgwxM9UbfW3wHteInTmAUM3FFqN1MHMKxP8gBA=";
   };
 
   hardeningDisable = [ "pic" ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ bc ];
   buildInputs = kernel.moduleBuildDependencies;
 
-  prePatch = ''
+ prePatch = ''
     substituteInPlace ./Makefile \
       --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
       --replace '$(shell uname -r)' "${kernel.modDirVersion}" \
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Realtek rtl88x2bu driver";
-    homepage = "https://github.com/cilynx/rtl88x2bu";
+    homepage = "https://github.com/morrownr/88x2bu";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.ralith ];
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
index c37c9502d2db..d65a601fd9e2 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
@@ -1,15 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, kernel }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, kernel }:
 
+let
+  rev = "3a64331a1c809bbbc21eca63b825970f213ec5ac";
+in
 stdenv.mkDerivation rec {
-  name = "rtl88xxau-aircrack-${kernel.version}-${version}";
-  rev = "fc0194c1d90453bf4943089ca237159ef19a7374";
-  version = "${builtins.substring 0 6 rev}";
+  pname = "rtl88xxau-aircrack";
+  version = "${kernel.version}-${builtins.substring 0 6 rev}";
 
   src = fetchFromGitHub {
     owner = "aircrack-ng";
     repo = "rtl8812au";
     inherit rev;
-    sha256 = "0hf7mrvxaskc6qcjar5w81y9xc7s2rlsxp34achyqly2hjg7fgmy";
+    sha256 = "sha256-goaN80imfCeUwiHokJd10CFKskE3iL5BO/xOQk6PtHE=";
   };
 
   buildInputs = kernel.moduleBuildDependencies;
@@ -18,6 +20,14 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE="-Wno-error=incompatible-pointer-types";
 
+  # Fix build for 5.12 kernels
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/aircrack-ng/rtl8812au/commit/9b4c60a89c2a55f36454b950a86246b6b86a9681.patch";
+      sha256 = "sha256-HPhTLstqAePF3H6WeM9Fu4/8UjNL+9xl4L8xq3NOWuM=";
+    })
+  ];
+
   prePatch = ''
     substituteInPlace ./Makefile \
       --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
@@ -33,7 +43,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Aircrack-ng kernel module for Realtek 88XXau network cards\n(8811au, 8812au, 8814au and 8821au chipsets) with monitor mode and injection support.";
     homepage = "https://github.com/aircrack-ng/rtl8812au";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.jethro ];
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix b/nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix
new file mode 100644
index 000000000000..e50cb7e8d53a
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, pciutils, cmake }:
+stdenv.mkDerivation rec {
+  pname = "ryzenadj";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "FlyGoat";
+    repo = "RyzenAdj";
+    rev = "v${version}";
+    sha256 = "182l9nchlpl4yr568n86086glkr607rif92wnwc7v3aym62ch6ld";
+  };
+
+  nativeBuildInputs = [ pciutils cmake ];
+
+  installPhase = ''
+    install -D libryzenadj.so $out/lib/libryzenadj.so
+    install -D ryzenadj $out/bin/ryzenadj
+  '';
+
+  meta = with lib; {
+    description = "Adjust power management settings for Ryzen Mobile Processors.";
+    homepage = "https://github.com/FlyGoat/RyzenAdj";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ asbachb ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix b/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
index a58b7efa7b30..d4b3d9116b9e 100644
--- a/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sd-switch";
-  version = "0.2.0";
+  version = "0.2.2";
 
   src = fetchFromGitLab {
     owner = "rycee";
     repo = pname;
     rev = version;
-    sha256 = "1bhks4ma3sn95bsszs6lj9cwfr8zgmja0hqfp8xr5iq77ww2p6k3";
+    sha256 = "0vqvwly1vidzl3d89s7jysd5lc29d6skd52pf5ibxfwhrir50sw0";
   };
 
-  cargoSha256 = "0lskxakzh3yji0rzk8jcfz1sv4j19b5kmdsaj7401m5w84s1cbjw";
+  cargoSha256 = "1m08qrz2qhf71d1fxw08wc93gfyj0hrh2hp3s17g4g1cw0jvcmm5";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dbus ];
diff --git a/nixpkgs/pkgs/os-specific/linux/sssd/default.nix b/nixpkgs/pkgs/os-specific/linux/sssd/default.nix
index d768546b12bb..94b1a6d799dc 100644
--- a/nixpkgs/pkgs/os-specific/linux/sssd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sssd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, glibc, augeas, dnsutils, c-ares, curl,
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, fetchpatch, glibc, augeas, dnsutils, c-ares, curl,
   cyrus_sasl, ding-libs, libnl, libunistring, nss, samba, nfs-utils, doxygen,
   python, python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap,
   pcre, libkrb5, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2,
@@ -12,11 +12,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sssd";
-  version = "1.16.4";
+  version = "1.16.5";
 
-  src = fetchurl {
-    url = "https://fedorahosted.org/released/sssd/${pname}-${version}.tar.gz";
-    sha256 = "0ngr7cgimyjc6flqkm7psxagp1m4jlzpqkn28pliifbmdg6i5ckb";
+  src = fetchFromGitHub {
+    owner = "SSSD";
+    repo = pname;
+    rev = "${pname}-${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "0zbs04lkjbp7y92anmafl7gzamcnq1f147p13hc4byyvjk9rg6f7";
   };
   patches = [
     # Fix build failure against samba 4.12.0rc1
@@ -60,9 +62,10 @@ stdenv.mkDerivation rec {
   '';
 
   enableParallelBuilding = true;
+  nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
   buildInputs = [ augeas dnsutils c-ares curl cyrus_sasl ding-libs libnl libunistring nss
-                  samba nfs-utils doxygen python python3 popt
-                  talloc tdb tevent pkg-config ldb pam openldap pcre libkrb5
+                  samba nfs-utils python python3 popt
+                  talloc tdb tevent ldb pam openldap pcre libkrb5
                   cifs-utils glib keyutils dbus fakeroot libxslt libxml2
                   libuuid ldap systemd nspr check cmocka uid_wrapper
                   nss_wrapper ncurses Po4a http-parser jansson ];
@@ -95,8 +98,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "System Security Services Daemon";
-    homepage = "https://fedorahosted.org/sssd/";
-    license = licenses.gpl3;
+    homepage = "https://sssd.io/";
+    changelog = "https://sssd.io/release-notes/sssd-${version}.html";
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.e-user ];
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/swapview/default.nix b/nixpkgs/pkgs/os-specific/linux/swapview/default.nix
index c88c8757db3c..8eb455501052 100644
--- a/nixpkgs/pkgs/os-specific/linux/swapview/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/swapview/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0339biydk997j5r72vzp7djwkscsz89xr3936nshv23fmxjh2rzj";
   };
 
-  cargoSha256 = "0z99pqd41y8cci3yvwsnm5zbq7pzli62z8qqqghmz1hcq5pb5q7g";
+  cargoSha256 = "03yi6bsjjnl8hznxr1nrnxx5lrqb574625j2lkxqbl9vrg9mswdz";
 
   meta = with lib; {
     description = "A simple program to view processes' swap usage on Linux";
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
index bd7c646c9200..c13f97fcde74 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
@@ -51,9 +51,9 @@
 , iptables
 , withSelinux ? false
 , libselinux
-, withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms
+, withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp
 , libseccomp
-, withKexectools ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) kexectools.meta.platforms
+, withKexectools ? lib.meta.availableOn stdenv.hostPlatform kexectools
 , kexectools
 , bashInteractive
 , libmicrohttpd
@@ -151,6 +151,12 @@ stdenv.mkDerivation {
     ./0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
     ./0018-logind-seat-debus-show-CanMultiSession-again.patch
     ./0019-pkg-config-derive-prefix-from-prefix.patch
+
+    # Fix -Werror=format.
+    (fetchpatch {
+      url = "https://github.com/systemd/systemd/commit/ab1aa6368a883bce88e3162fee2bea14aacedf23.patch";
+      sha256 = "1b280l5jrjsg8qhsang199mpqjhkpix4c8bm3blknjnq9iv43add";
+    })
   ];
 
   postPatch = ''
@@ -508,8 +514,6 @@ stdenv.mkDerivation {
     rm -rf $out/share/doc
   '';
 
-  enableParallelBuilding = true;
-
   # The interface version prevents NixOS from switching to an
   # incompatible systemd at runtime.  (Switching across reboots is
   # fine, of course.)  It should be increased whenever systemd changes
diff --git a/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix b/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
index f9196fc16864..38bc7c3eaff3 100644
--- a/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
@@ -14,24 +14,27 @@
 , libunwind
 , elfutils
 , orc
-, python3
+, python3Packages
 , libuuid
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "tiscamera";
-  version = "0.11.1";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "TheImagingSource";
     repo = pname;
     rev = "v-${pname}-${version}";
-    sha256 = "07vp6khgl6qd3a4519dmx1s5bfw7pld793p50pjn29fqh91fm93g";
+    sha256 = "0hpy9yhc4mn6w8gvzwif703smmcys0j2jqbz2xfghqxcyb0ykplj";
   };
 
   nativeBuildInputs = [
     cmake
     pkg-config
+    python3Packages.wrapPython
+    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -47,33 +50,43 @@ stdenv.mkDerivation rec {
     libunwind
     elfutils
     orc
-    python3
     libuuid
+    python3Packages.python
+    python3Packages.pyqt5
   ];
 
+  pythonPath = with python3Packages; [ pyqt5 pygobject3 ];
+
+  propagatedBuildInputs = pythonPath;
+
   cmakeFlags = [
     "-DBUILD_ARAVIS=OFF" # For GigE support. Won't need it as our camera is usb.
     "-DBUILD_GST_1_0=ON"
     "-DBUILD_TOOLS=ON"
     "-DBUILD_V4L2=ON"
     "-DBUILD_LIBUSB=ON"
+    "-DBUILD_TESTS=ON"
     "-DTCAM_INSTALL_UDEV=${placeholder "out"}/lib/udev/rules.d"
     "-DTCAM_INSTALL_UVCDYNCTRL=${placeholder "out"}/share/uvcdynctrl/data/199e"
     "-DTCAM_INSTALL_GST_1_0=${placeholder "out"}/lib/gstreamer-1.0"
     "-DTCAM_INSTALL_GIR=${placeholder "out"}/share/gir-1.0"
     "-DTCAM_INSTALL_TYPELIB=${placeholder "out"}/lib/girepository-1.0"
     "-DTCAM_INSTALL_SYSTEMD=${placeholder "out"}/etc/systemd/system"
+    "-DTCAM_INSTALL_PYTHON3_MODULES=${placeholder "out"}/lib/${python3Packages.python.libPrefix}/site-packages"
+    "-DGSTREAMER_1.0_INCLUDEDIR=${placeholder "out"}/include/gstreamer-1.0"
     # There are gobject introspection commands launched as part of the build. Those have a runtime
     # dependency on `libtcam` (which itself is built as part of this build). In order to allow
     # that, we set the dynamic linker's path to point on the build time location of the library.
     "-DCMAKE_SKIP_BUILD_RPATH=OFF"
   ];
 
-  postPatch = ''
-    substituteInPlace ./src/BackendLoader.cpp \
-      --replace '"libtcam-v4l2.so"' "\"$out/lib/tcam-0/libtcam-v4l2.so\"" \
-      --replace '"libtcam-aravis.so"' "\"$out/lib/tcam-0/libtcam-aravis.so\"" \
-      --replace '"libtcam-libusb.so"' "\"$out/lib/tcam-0/libtcam-libusb.so\""
+  doCheck = true;
+
+  # gstreamer tests requires, besides gst-plugins-bad, plugins installed by this expression.
+  checkPhase = "ctest --force-new-ctest-process -E gstreamer";
+
+  postFixup = ''
+    wrapPythonPrograms "$out $pythonPath"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix b/nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix
index b6db7cfbb7fd..a904eb8b9b4a 100644
--- a/nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tuigreet/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1fk8ppxr3a8vdp7g18pp3sgr8b8s11j30mcqpdap4ai14v19idh8";
   };
 
-  cargoSha256 = "0qpambizjy6z44spnjnh2kd8nay5953mf1ga2iff2mjlv97zpq22";
+  cargoSha256 = "1ds5rcxg7qn799zp0jdn9ifkdzh9h5ibsqh688dvrqyzrsfz6x7m";
 
   meta = with lib; {
     description = "Graphical console greter for greetd";
diff --git a/nixpkgs/pkgs/os-specific/linux/tuxedo-keyboard/default.nix b/nixpkgs/pkgs/os-specific/linux/tuxedo-keyboard/default.nix
index 3187ba6d4dbd..79271448b75b 100644
--- a/nixpkgs/pkgs/os-specific/linux/tuxedo-keyboard/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tuxedo-keyboard/default.nix
@@ -1,16 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, kernel, kmod }:
+{ lib, stdenv, fetchFromGitHub, kernel, linuxHeaders}:
 
 stdenv.mkDerivation rec {
   pname = "tuxedo-keyboard-${kernel.version}";
-  version = "2019-08-26";
+  version = "3.0.5";
 
   src = fetchFromGitHub {
     owner = "tuxedocomputers";
     repo = "tuxedo-keyboard";
-    rev = "d65e76e84cfd8169591fc2a0a7c9219fa19da1b5";
-    sha256 = "1s48qpwybwh5pwqas2d1v2a7x4r97sm4hr9i4902r1d7h384bv17";
+    rev = "v${version}";
+    sha256 = "123ady2bi2dwbajy3pgv10l3g2pyhi5k31c1ii0zcrvl2qqhndck";
   };
 
+  buildInputs = [ linuxHeaders ];
+
   makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
 
   installPhase = ''
@@ -21,8 +23,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Full color keyboard driver for tuxedo computers laptops";
     homepage = "https://github.com/tuxedocomputers/tuxedo-keyboard/";
-    license = licenses.gpl2;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    broken = stdenv.isAarch64;
     maintainers = [ maintainers.blanky0230 ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix b/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix
index 9e298697d4b3..fba025b29d94 100644
--- a/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, substituteAll, autoreconfHook, pkg-config, libusb1, hwdata , python3 }:
 
 stdenv.mkDerivation rec {
-  name = "usbutils-012";
+  name = "usbutils-013";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/usb/usbutils/${name}.tar.xz";
-    sha256 = "0iiy0q7fzikavmdsjsb0sl9kp3gfh701qwyjjccvqh0qz4jlcqw8";
+    sha256 = "0f0klk6d3hmbpf6p4dcwa1qjzblmkhbxs1wsw87aidvqri7lj8wy";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/os-specific/linux/usbutils/fix-paths.patch b/nixpkgs/pkgs/os-specific/linux/usbutils/fix-paths.patch
index d75c68505efc..ef63a41e726c 100644
--- a/nixpkgs/pkgs/os-specific/linux/usbutils/fix-paths.patch
+++ b/nixpkgs/pkgs/os-specific/linux/usbutils/fix-paths.patch
@@ -1,7 +1,7 @@
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -51,11 +51,11 @@
- 	usbreset.c
+@@ -61,7 +61,7 @@ EXTRA_DIST = \
+ 	LICENSES/GPL-3.0-only.txt
  
  lsusb.py: $(srcdir)/lsusb.py.in
 -	sed 's|VERSION|$(VERSION)|g;s|@usbids@|$(datadir)/usb.ids|g' $< >$@
@@ -9,8 +9,3 @@
  	chmod 755 $@
  
  lsusb.8: $(srcdir)/lsusb.8.in
--	sed 's|VERSION|$(VERSION)|g;s|@usbids@|$(datadir)/usb.ids|g' $< >$@
-+	sed 's|VERSION|$(VERSION)|g;s|@usbids@|@hwdata@/share/hwdata/usb.ids|g' $< >$@
- 
- usb-devices.1: $(srcdir)/usb-devices.1.in
- 	sed 's|VERSION|$(VERSION)|g' $< >$@
diff --git a/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix
index 81a5f74c42fc..90a052fdef9d 100644
--- a/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, pkg-config, perl
 , libjpeg, udev
 , withUtils ? true
-, withGUI ? true, alsaLib, libX11, qtbase, libGLU, wrapQtAppsHook
+, withGUI ? true, alsa-lib, libX11, qtbase, libGLU, wrapQtAppsHook
 }:
 
 # See libv4l in all-packages.nix for the libs only (overrides alsa, libX11 & QT)
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config perl ] ++ lib.optional withQt wrapQtAppsHook;
 
-  buildInputs = [ udev ] ++ lib.optionals withQt [ alsaLib libX11 qtbase libGLU ];
+  buildInputs = [ udev ] ++ lib.optionals withQt [ alsa-lib libX11 qtbase libGLU ];
 
   propagatedBuildInputs = [ libjpeg ];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
index 73b2f5895115..53f37e805fa7 100644
--- a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel, kmod }:
 
 stdenv.mkDerivation rec {
-  name = "v4l2loopback-${version}-${kernel.version}";
-  version = "0.12.5";
+  pname = "v4l2loopback";
+  version = "unstable-2020-04-22-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "umlaeute";
     repo = "v4l2loopback";
-    rev = "v${version}";
-    sha256 = "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn";
+    rev = "d26e624b4ead762d34152f9f825b3a51fb92fb9c";
+    sha256 = "sha256-OA45vmuVieoL7J83D3TD5qi3SBsiqi0kiQn4i1K6dVE=";
   };
 
   hardeningDisable = [ "format" "pic" ];
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
+
   buildInputs = [ kmod ];
 
   makeFlags = [
@@ -30,8 +31,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A kernel module to create V4L2 loopback devices";
     homepage = "https://github.com/umlaeute/v4l2loopback";
-    license = licenses.gpl2;
-    maintainers = [ ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ fortuneteller2k ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/veikk-linux-driver/default.nix b/nixpkgs/pkgs/os-specific/linux/veikk-linux-driver/default.nix
new file mode 100644
index 000000000000..117103cdf28a
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/veikk-linux-driver/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, kernel }:
+
+stdenv.mkDerivation rec {
+  pname = "veikk-linux-driver";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "jlam55555";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11mg74ds58jwvdmi3i7c4chxs6v9g09r9ll22pc2kbxjdnrp8zrn";
+  };
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  buildInputs = [ kernel ];
+
+  buildPhase = ''
+    make BUILD_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/veikk
+    install -Dm755 veikk.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/veikk
+  '';
+
+  meta = with lib; {
+    description = "Linux driver for VEIKK-brand digitizers";
+    homepage = "https://github.com/jlam55555/veikk-linux-driver/";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nicbk ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix b/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
index e6b7de29fd2e..2578d09fc1ec 100644
--- a/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
@@ -7,11 +7,11 @@ assert lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20210219";
+  version = "1.0.20210424";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "sha256-ZYZBnfX8DP0IV3VEBSzg7wnFCnlCzOT6Ql3kFZ0klfQ=";
+    sha256 = "sha256-VLtIxYh308X28c9EOeHx0eA7HP2aRlekPXRt015/qAg=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix b/nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix
index e48443b1b1e6..2bbf01b01c5e 100644
--- a/nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/wlgreet/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0n0lzg3y1z5s9s6kfkdj5q8w67bqpw08hqfccc5kz0ninzy9j0cc";
   };
 
-  cargoSha256 = "01bfv2kzg2r9z75b8pq61n2ydc8l5zh69jdyjpj931l642f6kd5a";
+  cargoSha256 = "08m8r8wy7yg5lhmyfx4n0vaf99xv97vzrs774apyxxx2wkhbyjhg";
 
   meta = with lib; {
     description = "Raw wayland greeter for greetd, to be run under sway or similar";
diff --git a/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/0001-Implement-read-only-mode-for-ssids.patch b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/0001-Implement-read-only-mode-for-ssids.patch
new file mode 100644
index 000000000000..d459de8a7f39
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/0001-Implement-read-only-mode-for-ssids.patch
@@ -0,0 +1,130 @@
+From 99ae610f0ae3608a12c864caedf396f14e68327d Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Fri, 19 Feb 2021 19:44:21 +0100
+Subject: [PATCH] Implement read-only mode for ssids
+
+With this change it's possible to define `network=`-sections in a second
+config file specified via `-I` without having changes written to
+`/etc/wpa_supplicant.conf`.
+
+This is helpful on e.g. NixOS to allow both declarative (i.e. read-only)
+and imperative (i.e. mutable) networks.
+---
+ wpa_supplicant/config.h         | 2 +-
+ wpa_supplicant/config_file.c    | 5 +++--
+ wpa_supplicant/config_none.c    | 2 +-
+ wpa_supplicant/config_ssid.h    | 2 ++
+ wpa_supplicant/wpa_supplicant.c | 8 ++++----
+ 5 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/wpa_supplicant/config.h b/wpa_supplicant/config.h
+index 6a297ecfe..adaf4d398 100644
+--- a/wpa_supplicant/config.h
++++ b/wpa_supplicant/config.h
+@@ -1614,7 +1614,7 @@ const char * wpa_config_get_global_field_name(unsigned int i, int *no_var);
+  *
+  * Each configuration backend needs to implement this function.
+  */
+-struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp);
++struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro);
+ 
+ /**
+  * wpa_config_write - Write or update configuration data
+diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c
+index 77c326df5..d5ed051b9 100644
+--- a/wpa_supplicant/config_file.c
++++ b/wpa_supplicant/config_file.c
+@@ -373,7 +373,7 @@ static int wpa_config_process_blob(struct wpa_config *config, FILE *f,
+ #endif /* CONFIG_NO_CONFIG_BLOBS */
+ 
+ 
+-struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp)
++struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro)
+ {
+ 	FILE *f;
+ 	char buf[512], *pos;
+@@ -415,6 +415,7 @@ struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp)
+ 	while (wpa_config_get_line(buf, sizeof(buf), f, &line, &pos)) {
+ 		if (os_strcmp(pos, "network={") == 0) {
+ 			ssid = wpa_config_read_network(f, &line, id++);
++			ssid->ro = ro;
+ 			if (ssid == NULL) {
+ 				wpa_printf(MSG_ERROR, "Line %d: failed to "
+ 					   "parse network block.", line);
+@@ -1591,7 +1592,7 @@ int wpa_config_write(const char *name, struct wpa_config *config)
+ 	}
+ 
+ 	for (ssid = config->ssid; ssid; ssid = ssid->next) {
+-		if (ssid->key_mgmt == WPA_KEY_MGMT_WPS || ssid->temporary)
++		if (ssid->key_mgmt == WPA_KEY_MGMT_WPS || ssid->temporary || ssid->ro)
+ 			continue; /* do not save temporary networks */
+ 		if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt) && !ssid->psk_set &&
+ 		    !ssid->passphrase)
+diff --git a/wpa_supplicant/config_none.c b/wpa_supplicant/config_none.c
+index 2aac28fa3..02191b425 100644
+--- a/wpa_supplicant/config_none.c
++++ b/wpa_supplicant/config_none.c
+@@ -17,7 +17,7 @@
+ #include "base64.h"
+ 
+ 
+-struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp)
++struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro)
+ {
+ 	struct wpa_config *config;
+ 
+diff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h
+index d5c5c00a9..fd80c079c 100644
+--- a/wpa_supplicant/config_ssid.h
++++ b/wpa_supplicant/config_ssid.h
+@@ -93,6 +93,8 @@ struct wpa_ssid {
+ 	 */
+ 	int id;
+ 
++	int ro;
++
+ 	/**
+ 	 * priority - Priority group
+ 	 *
+diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
+index 911d79d17..cb0cb99b1 100644
+--- a/wpa_supplicant/wpa_supplicant.c
++++ b/wpa_supplicant/wpa_supplicant.c
+@@ -1052,14 +1052,14 @@ int wpa_supplicant_reload_configuration(struct wpa_supplicant *wpa_s)
+ 
+ 	if (wpa_s->confname == NULL)
+ 		return -1;
+-	conf = wpa_config_read(wpa_s->confname, NULL);
++	conf = wpa_config_read(wpa_s->confname, NULL, 0);
+ 	if (conf == NULL) {
+ 		wpa_msg(wpa_s, MSG_ERROR, "Failed to parse the configuration "
+ 			"file '%s' - exiting", wpa_s->confname);
+ 		return -1;
+ 	}
+ 	if (wpa_s->confanother &&
+-	    !wpa_config_read(wpa_s->confanother, conf)) {
++	    !wpa_config_read(wpa_s->confanother, conf, 1)) {
+ 		wpa_msg(wpa_s, MSG_ERROR,
+ 			"Failed to parse the configuration file '%s' - exiting",
+ 			wpa_s->confanother);
+@@ -5638,7 +5638,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
+ #else /* CONFIG_BACKEND_FILE */
+ 		wpa_s->confname = os_strdup(iface->confname);
+ #endif /* CONFIG_BACKEND_FILE */
+-		wpa_s->conf = wpa_config_read(wpa_s->confname, NULL);
++		wpa_s->conf = wpa_config_read(wpa_s->confname, NULL, 0);
+ 		if (wpa_s->conf == NULL) {
+ 			wpa_printf(MSG_ERROR, "Failed to read or parse "
+ 				   "configuration '%s'.", wpa_s->confname);
+@@ -5646,7 +5646,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
+ 		}
+ 		wpa_s->confanother = os_rel2abs_path(iface->confanother);
+ 		if (wpa_s->confanother &&
+-		    !wpa_config_read(wpa_s->confanother, wpa_s->conf)) {
++		    !wpa_config_read(wpa_s->confanother, wpa_s->conf, 1)) {
+ 			wpa_printf(MSG_ERROR,
+ 				   "Failed to read or parse configuration '%s'.",
+ 				   wpa_s->confanother);
+-- 
+2.29.2
+
diff --git a/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 80eaf04a1149..51af6abde8c1 100644
--- a/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, fetchurl, fetchpatch, openssl, pkg-config, libnl
 , dbus, readline ? null, pcsclite ? null
+
+, readOnlyModeSSIDs ? false
 }:
 
 with lib;
@@ -43,6 +45,9 @@ stdenv.mkDerivation rec {
       url = "https://w1.fi/cgit/hostap/patch/?id=a0541334a6394f8237a4393b7372693cd7e96f15";
       sha256 = "1gbhlz41x1ar1hppnb76pqxj6vimiypy7c4kq6h658637s4am3xg";
     })
+  ] ++ lib.optionals readOnlyModeSSIDs [
+    # Allow read-only networks
+    ./0001-Implement-read-only-mode-for-ssids.patch
   ];
 
   # TODO: Patch epoll so that the dbus actually responds
@@ -134,7 +139,7 @@ stdenv.mkDerivation rec {
     homepage = "https://w1.fi/wpa_supplicant/";
     description = "A tool for connecting to WPA and WPA2-protected wireless networks";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ marcweber ];
+    maintainers = with maintainers; [ marcweber ma27 ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index e404ac72f5c5..34cfd58ab4bc 100644
--- a/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -1,17 +1,49 @@
-{ lib, stdenv, fetchurl
-, xorgproto, libX11, libXext, libXi, libXrandr, libXrender
-, ncurses, pkg-config, xorgserver, udev, libXinerama, pixman }:
+{ lib
+, stdenv
+, autoreconfHook
+, fetchFromGitHub
+, xorgproto
+, libX11
+, libXext
+, libXi
+, libXinerama
+, libXrandr
+, libXrender
+, ncurses
+, pixman
+, pkg-config
+, udev
+, utilmacros
+, xorgserver
+}:
 
 stdenv.mkDerivation rec {
-  name = "xf86-input-wacom-0.36.0";
+  pname = "xf86-input-wacom";
+  version = "0.40.0";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2";
-    sha256 = "1xi39hl8ddgj9m7m2k2ll2r3wh0k0aq45fvrsv43651bhz9cbrza";
+  src = fetchFromGitHub {
+    owner = "linuxwacom";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "sha256-0U4pAB5vsIlBewCBqQ4SLHDrwqtr9nh7knZpXZMkzck=";
   };
 
-  buildInputs = [ xorgproto libX11 libXext libXi libXrandr libXrender
-    ncurses pkg-config xorgserver udev libXinerama pixman ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [
+    libX11
+    libXext
+    libXi
+    libXinerama
+    libXrandr
+    libXrender
+    ncurses
+    udev
+    utilmacros
+    pixman
+    xorgproto
+    xorgserver
+  ];
 
   preConfigure = ''
     mkdir -p $out/share/X11/xorg.conf.d
@@ -22,10 +54,10 @@ stdenv.mkDerivation rec {
   CFLAGS = "-I${pixman}/include/pixman-1";
 
   meta = with lib; {
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = with maintainers; [ goibhniu fortuneteller2k ];
     description = "Wacom digitizer driver for X11";
     homepage = "http://linuxwacom.sourceforge.net";
-    license = licenses.gpl2;
-    platforms = platforms.linux; # Probably, works with other unices as well
+    license = licenses.gpl2Only;
+    platforms = platforms.linux; # Probably, works with other unixes as well
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix b/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
index 3007e54639d1..c1874877620c 100644
--- a/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     description = "Advanced Linux driver for Xbox One wireless controllers";
     homepage = "https://atar-axis.github.io/xpadneo";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/zfs/default.nix b/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
index adfd0cda8199..e41ae3bece24 100644
--- a/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
@@ -182,13 +182,9 @@ let
         license = licenses.cddl;
         platforms = platforms.linux;
         maintainers = with maintainers; [ hmenke jcumming jonringer wizeman fpletz globin mic92 ];
-        broken = if
-          buildKernel && (kernelCompatible != null) && !kernelCompatible
-          then builtins.trace ''
-            Linux v${kernel.version} is not yet supported by zfsonlinux v${version}.
-            ${lib.optionalString (!isUnstable) "Try zfsUnstable or set the NixOS option boot.zfs.enableUnstable."}
-          '' true
-          else false;
+        # If your Linux kernel version is not yet supported by zfs, try zfsUnstable.
+        # On NixOS set the option boot.zfs.enableUnstable.
+        broken = buildKernel && (kernelCompatible != null) && !kernelCompatible;
       };
     };
 in {
@@ -207,12 +203,12 @@ in {
 
   zfsUnstable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.12";
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.13";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "2.1.0-rc4";
+    version = "2.1.0-rc6";
 
-    sha256 = "sha256-eakOEA7LCJOYDsZH24Y5JbEd2wh1KfCN+qX3QxQZ4e8=";
+    sha256 = "0q3vl9rid6a84pb85v38hnf17vws65jjb4slw8bhm8dq8fna2a86";
 
     isUnstable = true;
   };
diff --git a/nixpkgs/pkgs/os-specific/windows/default.nix b/nixpkgs/pkgs/os-specific/windows/default.nix
index 7c8041206caa..15e3d7f89ab6 100644
--- a/nixpkgs/pkgs/os-specific/windows/default.nix
+++ b/nixpkgs/pkgs/os-specific/windows/default.nix
@@ -19,7 +19,7 @@ lib.makeScope newScope (self: with self; {
 
   crossThreadsStdenv = overrideCC crossLibcStdenv
     (if stdenv.hostPlatform.useLLVM or false
-     then buildPackages.llvmPackages_8.lldClangNoLibcxx
+     then buildPackages.llvmPackages_8.clangNoLibcxx
      else buildPackages.gccCrossStageStatic.override (old: {
        bintools = old.bintools.override {
          libc = libcCross;
diff --git a/nixpkgs/pkgs/os-specific/windows/libgnurx/default.nix b/nixpkgs/pkgs/os-specific/windows/libgnurx/default.nix
index 85a3c463a289..e760bddabfbf 100644
--- a/nixpkgs/pkgs/os-specific/windows/libgnurx/default.nix
+++ b/nixpkgs/pkgs/os-specific/windows/libgnurx/default.nix
@@ -10,6 +10,11 @@ in stdenv.mkDerivation rec {
     sha256 = "0xjxcxgws3bblybw5zsp9a4naz2v5bs1k3mk8dw00ggc0vwbfivi";
   };
 
+  # file looks for libgnurx.a when compiling statically
+  postInstall = lib.optionalString stdenv.hostPlatform.isStatic ''
+    ln -s $out/lib/libgnurx{.dll.a,.a}
+  '';
+
   meta = {
     platforms = lib.platforms.windows;
   };
diff --git a/nixpkgs/pkgs/pkgs-lib/formats.nix b/nixpkgs/pkgs/pkgs-lib/formats.nix
index 14589f8ecdc3..4b6982f387d0 100644
--- a/nixpkgs/pkgs/pkgs-lib/formats.nix
+++ b/nixpkgs/pkgs/pkgs-lib/formats.nix
@@ -56,7 +56,16 @@ rec {
       };
     };
 
-  ini = { listsAsDuplicateKeys ? false, ... }@args: {
+  ini = {
+    # Represents lists as duplicate keys
+    listsAsDuplicateKeys ? false,
+    # Alternative to listsAsDuplicateKeys, converts list to non-list
+    # listToValue :: [IniAtom] -> IniAtom
+    listToValue ? null,
+    ...
+    }@args:
+    assert !listsAsDuplicateKeys || listToValue == null;
+    {
 
     type = with lib.types; let
 
@@ -74,12 +83,25 @@ rec {
           coercedTo singleIniAtom lib.singleton (listOf singleIniAtom) // {
             description = singleIniAtom.description + " or a list of them for duplicate keys";
           }
+        else if listToValue != null then
+          coercedTo singleIniAtom lib.singleton (nonEmptyListOf singleIniAtom) // {
+            description = singleIniAtom.description + " or a non-empty list of them";
+          }
         else
           singleIniAtom;
 
     in attrsOf (attrsOf iniAtom);
 
-    generate = name: value: pkgs.writeText name (lib.generators.toINI args value);
+    generate = name: value:
+      let
+        transformedValue =
+          if listToValue != null
+          then
+            lib.mapAttrs (section: lib.mapAttrs (key: val:
+              if lib.isList val then listToValue val else val
+            )) value
+          else value;
+      in pkgs.writeText name (lib.generators.toINI (removeAttrs args ["listToValue"]) transformedValue);
 
   };
 
diff --git a/nixpkgs/pkgs/pkgs-lib/tests/formats.nix b/nixpkgs/pkgs/pkgs-lib/tests/formats.nix
index 16b760a5ada1..2c117e29e9ba 100644
--- a/nixpkgs/pkgs/pkgs-lib/tests/formats.nix
+++ b/nixpkgs/pkgs/pkgs-lib/tests/formats.nix
@@ -124,6 +124,22 @@ in runBuildTests {
     '';
   };
 
+  testIniListToValue = {
+    drv = evalFormat formats.ini { listToValue = concatMapStringsSep ", " (generators.mkValueStringDefault {}); } {
+      foo = {
+        bar = [ null true "test" 1.2 10 ];
+        baz = false;
+        qux = "qux";
+      };
+    };
+    expected = ''
+      [foo]
+      bar=null, true, test, 1.200000, 10
+      baz=false
+      qux=qux
+    '';
+  };
+
   testTomlAtoms = {
     drv = evalFormat formats.toml {} {
       false = false;
diff --git a/nixpkgs/pkgs/servers/adguardhome/default.nix b/nixpkgs/pkgs/servers/adguardhome/default.nix
index 87de7589ae97..f9f164dd7646 100644
--- a/nixpkgs/pkgs/servers/adguardhome/default.nix
+++ b/nixpkgs/pkgs/servers/adguardhome/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "adguardhome";
-  version = "0.105.2";
+  version = "0.106.3";
 
   src = fetchurl {
     url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v${version}/AdGuardHome_linux_amd64.tar.gz";
-    sha256 = "1gpaqyczidsy7h05g318zc83swvwninidddlmlq3hgs8s7ibk2cb";
+    sha256 = "11p081dqilga61zfziw5w37k6v2r84qynhz2hr4gk8367jck54x8";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/adminer/default.nix b/nixpkgs/pkgs/servers/adminer/default.nix
index 779f7312cacd..8138e6de96e8 100644
--- a/nixpkgs/pkgs/servers/adminer/default.nix
+++ b/nixpkgs/pkgs/servers/adminer/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, php }:
+{ lib, stdenv, fetchurl, php, nix-update-script }:
 
 stdenv.mkDerivation rec {
-  version = "4.8.0";
+  version = "4.8.1";
   pname = "adminer";
 
   # not using fetchFromGitHub as the git repo relies on submodules that are included in the tar file
   src = fetchurl {
     url = "https://github.com/vrana/adminer/releases/download/v${version}/adminer-${version}.tar.gz";
-    sha256 = "sha256-T2LEUoIbFrMta+wP7PNci0QkFYrJZmWP3RP/JzgqUoc=";
+    sha256 = "sha256-2rkNq79sc5RBFxWuiaSlpWr0rwrnEFlnW1WcoxjoP2M=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +32,12 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with lib; {
     description = "Database management in a single PHP file";
     homepage = "https://www.adminer.org";
diff --git a/nixpkgs/pkgs/servers/althttpd/default.nix b/nixpkgs/pkgs/servers/althttpd/default.nix
new file mode 100644
index 000000000000..dfb073aa11fb
--- /dev/null
+++ b/nixpkgs/pkgs/servers/althttpd/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchfossil }:
+
+stdenv.mkDerivation rec {
+  pname = "althttpd";
+  version = "unstable-2021-05-07";
+
+  src = fetchfossil {
+    url = "https://sqlite.org/althttpd/";
+    rev = "2c5e3f9f7051a578";
+    sha256 = "sha256-+RuogtQAc+zjCWTOiOunu1pXf3LxfdWYQX+24ysJ7uY=";
+  };
+
+  installPhase = ''
+    install -Dm755 -t $out/bin althttpd
+  '';
+
+  meta = with lib; {
+    description = "The Althttpd webserver";
+    homepage = "https://sqlite.org/althttpd/";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ siraben ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/asterisk/sccp/default.nix b/nixpkgs/pkgs/servers/asterisk/sccp/default.nix
index 10b238f8877a..756699e5adb9 100644
--- a/nixpkgs/pkgs/servers/asterisk/sccp/default.nix
+++ b/nixpkgs/pkgs/servers/asterisk/sccp/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, binutils-unwrapped, patchelf, asterisk }:
 stdenv.mkDerivation rec {
   pname = "asterisk-module-sccp";
-  version = "4.3.2-epsilon";
+  version = "4.3.4";
 
   src = fetchFromGitHub {
     owner = "chan-sccp";
     repo = "chan-sccp";
     rev = "v${version}";
-    sha256 = "0sp74xvb35m32flsrib0983yn1dyz3qk69vp0gqbx620ycbz19gd";
+    sha256 = "sha256-YGHK4A03Ba/tnVTnu9VuhIy/xQ5C/7ZX8h9mxqKsnZI=";
   };
 
   nativeBuildInputs = [ patchelf ];
diff --git a/nixpkgs/pkgs/servers/atlassian/confluence.nix b/nixpkgs/pkgs/servers/atlassian/confluence.nix
index a7c9464fcaec..61b664d5705a 100644
--- a/nixpkgs/pkgs/servers/atlassian/confluence.nix
+++ b/nixpkgs/pkgs/servers/atlassian/confluence.nix
@@ -8,11 +8,11 @@ assert withMysql -> (mysql_jdbc != null);
 
 stdenvNoCC.mkDerivation rec {
   pname = "atlassian-confluence";
-  version = "7.10.1";
+  version = "7.11.0";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ScE0UXmoxHb7HOJhSfOLXj3Wb3/XitFuOR36Iktmgxk=";
+    sha256 = "sha256-/D/fMg+WRkGGV4NG73gvVDZwwi/8BB0w6IWK/OQ3caA=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/atlassian/jira.nix b/nixpkgs/pkgs/servers/atlassian/jira.nix
index 995ff8625914..608326117f15 100644
--- a/nixpkgs/pkgs/servers/atlassian/jira.nix
+++ b/nixpkgs/pkgs/servers/atlassian/jira.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-jira";
-  version = "8.14.0";
+  version = "8.16.1";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "12dm0sasw98ywd074rjd9hnbymvy8z16bicjxfxqz91n1y13732i";
+    sha256 = "sha256-0J+P4E9hYPbYBb6qvtBjH1jhKrDW187+309YBHORNZA=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/bazarr/default.nix b/nixpkgs/pkgs/servers/bazarr/default.nix
index 1356f1c7a07c..7e7349408855 100644
--- a/nixpkgs/pkgs/servers/bazarr/default.nix
+++ b/nixpkgs/pkgs/servers/bazarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "0.9.2";
+  version = "0.9.5";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/archive/v${version}.tar.gz";
-    sha256 = "16mh7v8z5ijr75pvavcj6225w6bg12qy1d1w9vm2d5axnfm3wfbk";
+    sha256 = "sha256-N0HoZgAtWPgYPU9OWpMEXO2qUoNIGCsFn9vll0hLal0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/beanstalkd/default.nix b/nixpkgs/pkgs/servers/beanstalkd/default.nix
index 01af8a4d5bc8..9bfe3182d653 100644
--- a/nixpkgs/pkgs/servers/beanstalkd/default.nix
+++ b/nixpkgs/pkgs/servers/beanstalkd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, installShellFiles }:
+{ lib, stdenv, fetchurl, installShellFiles, nixosTests }:
 
 stdenv.mkDerivation rec {
   version = "1.12";
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
     installManPage doc/beanstalkd.1
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.beanstalkd;
+  };
+
   meta = with lib; {
     homepage = "http://kr.github.io/beanstalkd/";
     description = "A simple, fast work queue";
diff --git a/nixpkgs/pkgs/servers/blockbook/default.nix b/nixpkgs/pkgs/servers/blockbook/default.nix
index 2394ef258a91..8d75b89d0d8a 100644
--- a/nixpkgs/pkgs/servers/blockbook/default.nix
+++ b/nixpkgs/pkgs/servers/blockbook/default.nix
@@ -9,6 +9,7 @@
 , snappy
 , zeromq
 , zlib
+, nixosTests
 }:
 
 buildGoModule rec {
@@ -54,11 +55,18 @@ buildGoModule rec {
     cp -r $src/static/css/ $out/share/
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.blockbook-frontend;
+  };
+
   meta = with lib; {
     description = "Trezor address/account balance backend";
     homepage = "https://github.com/trezor/blockbook";
     license = licenses.agpl3;
     maintainers = with maintainers; [ mmahut _1000101 ];
     platforms = platforms.unix;
+    # go dependency tecbot/gorocksdb requires rocksdb 5.x but nixpkgs has only rocksdb 6.x
+    # issue in upstream can be tracked here: https://github.com/trezor/blockbook/issues/617
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/servers/caddy/default.nix b/nixpkgs/pkgs/servers/caddy/default.nix
index 3e6641b8d26f..a2cd3c7eb097 100644
--- a/nixpkgs/pkgs/servers/caddy/default.nix
+++ b/nixpkgs/pkgs/servers/caddy/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "caddy";
-  version = "2.3.0";
+  version = "2.4.1";
 
   subPackages = [ "cmd/caddy" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "caddyserver";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03cbbr8z9g156lgx7pyn1p1i4mh8ayhhhv24r1z3h1vgq6y4ka7r";
+    sha256 = "sha256-Wc7eNw5FZWoUT6IP84NhROC59bf4/RCw/gOWLuYI2dc=";
   };
 
-  vendorSha256 = "0gpzxjiyv7l1nibh1gas4mvinamiyyfgidd8cy4abz95v6z437lp";
+  vendorSha256 = "sha256-ZOrhR03m+cs+mTQio3qEIf+1B0IP0i2+x+vcml5AMco=";
 
   passthru.tests = { inherit (nixosTests) caddy; };
 
diff --git a/nixpkgs/pkgs/servers/calibre-web/default.nix b/nixpkgs/pkgs/servers/calibre-web/default.nix
index 53db5f7ed0b9..240aae229deb 100644
--- a/nixpkgs/pkgs/servers/calibre-web/default.nix
+++ b/nixpkgs/pkgs/servers/calibre-web/default.nix
@@ -18,8 +18,11 @@ python3.pkgs.buildPythonApplication rec {
 
   prePatch = ''
     substituteInPlace setup.cfg \
+        --replace "singledispatch>=3.4.0.0,<3.5.0.0" "" \
         --replace "requests>=2.11.1,<2.25.0" "requests>=2.11.1,<2.26.0" \
-        --replace "cps = calibreweb:main" "calibre-web = calibreweb:main"
+        --replace "unidecode>=0.04.19,<1.2.0" "unidecode>=0.04.19" \
+        --replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
+        --replace "Babel>=1.3, <2.9" "Babel>=1.3, <=2.9"
   '';
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/clickhouse/default.nix b/nixpkgs/pkgs/servers/clickhouse/default.nix
index 02c0b4aa5e56..8c71b37d526b 100644
--- a/nixpkgs/pkgs/servers/clickhouse/default.nix
+++ b/nixpkgs/pkgs/servers/clickhouse/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, libtool, lldClang, ninja
+{ lib, stdenv, fetchFromGitHub, cmake, libtool, llvm-bintools, ninja
 , boost, brotli, capnproto, cctz, clang-unwrapped, double-conversion
 , icu, jemalloc, libcpuid, libxml2, lld, llvm, lz4, libmysqlclient, openssl, perl
 , poco, protobuf, python3, rapidjson, re2, rdkafka, readline, sparsehash, unixODBC
@@ -7,17 +7,19 @@
 
 stdenv.mkDerivation rec {
   pname = "clickhouse";
-  version = "20.11.4.13";
+  version = "21.3.11.5";
+
+  broken = stdenv.buildPlatform.is32bit; # not supposed to work on 32-bit https://github.com/ClickHouse/ClickHouse/pull/23959#issuecomment-835343685
 
   src = fetchFromGitHub {
     owner  = "ClickHouse";
     repo   = "ClickHouse";
-    rev    = "v${version}-stable";
+    rev    = "v${version}-lts";
     fetchSubmodules = true;
-    sha256 = "0c87k0xqwj9sc3xy2f3ngfszgjiz4rzd787bdg6fxp94w1adjhny";
+    sha256 = "sha256-V62Z82p21qtvSOsoXM225/Wkc9F+dvVMz0xpVjhgZVo=";
   };
 
-  nativeBuildInputs = [ cmake libtool lldClang.bintools ninja ];
+  nativeBuildInputs = [ cmake libtool llvm-bintools ninja ];
   buildInputs = [
     boost brotli capnproto cctz clang-unwrapped double-conversion
     icu jemalloc libcpuid libxml2 lld llvm lz4 libmysqlclient openssl perl
@@ -25,20 +27,9 @@ stdenv.mkDerivation rec {
     xxHash zstd
   ];
 
-  patches = [
-    # This patch is only required for 20.11.4.13 - it should be included in the
-    # next stable release from upstream by default
-    (fetchpatch {
-      url = "https://github.com/ClickHouse/ClickHouse/commit/e31753b4db7aa0a72a85757dc11fc403962e30db.patch";
-      sha256 = "12ax02dh9y9k8smkj6v50yfr46iprscbrvd4bb9vfbx8xqgw7grb";
-    })
-  ];
-
   postPatch = ''
     patchShebangs src/
 
-    substituteInPlace contrib/openssl-cmake/CMakeLists.txt \
-      --replace '/usr/bin/env perl' perl
     substituteInPlace src/Storages/System/StorageSystemLicenses.sh \
       --replace 'git rev-parse --show-toplevel' '$src'
     substituteInPlace utils/check-style/check-duplicate-includes.sh \
diff --git a/nixpkgs/pkgs/servers/computing/slurm/default.nix b/nixpkgs/pkgs/servers/computing/slurm/default.nix
index 25181590ed10..843b7c340086 100644
--- a/nixpkgs/pkgs/servers/computing/slurm/default.nix
+++ b/nixpkgs/pkgs/servers/computing/slurm/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "20.11.5.1";
+  version = "20.11.7.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "1anzjv9sdl1a3j6sxsy2q8dy4dax1a4yqc9rnprlzymjkgb8hy75";
+    sha256 = "0ril6k4dj96qhx5x7r4nc2ghp7n9700808731v4qn9yvcslqzg9a";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/servers/consul/default.nix b/nixpkgs/pkgs/servers/consul/default.nix
index fd1b14e6158c..874b18ef9eb0 100644
--- a/nixpkgs/pkgs/servers/consul/default.nix
+++ b/nixpkgs/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.9.5";
+  version = "1.9.6";
   rev = "v${version}";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "sha256-CKezHuCbL1I79gDz7ZQiSgPbSXo0NtssQro2MqqmeXw=";
+    sha256 = "sha256-SuG/Q5Tjet4etd4Qy5NBQLYEe2QO0K8QHKmgxYMl09U=";
   };
 
   passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,7 @@ buildGoModule rec {
   # has a split module structure in one repo
   subPackages = ["." "connect/certgen"];
 
-  vendorSha256 = "sha256-YqrW3PeFv1Y6lmjVmMMP0SZao57iPqfut3a1afIWkI0=";
+  vendorSha256 = "sha256-jVhj7pzJ8kxZk3ViA9zhVqD314biih/sP0Ql1GXcoRY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/corosync/default.nix b/nixpkgs/pkgs/servers/corosync/default.nix
index 97b9f12b8f99..26060150df00 100644
--- a/nixpkgs/pkgs/servers/corosync/default.nix
+++ b/nixpkgs/pkgs/servers/corosync/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "corosync";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchurl {
     url = "http://build.clusterlabs.org/corosync/releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-eAypUbDeGa3GKF/wJ602dyTW5FlkvjWeCRXT6h0d4zw=";
+    sha256 = "sha256-UlwF1DmWh52yJ4c9SbpaoVaV/L65r4dQ238M3/+Esps=";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
diff --git a/nixpkgs/pkgs/servers/dante/default.nix b/nixpkgs/pkgs/servers/dante/default.nix
index 99bde454659c..1ed03f0e3d5a 100644
--- a/nixpkgs/pkgs/servers/dante/default.nix
+++ b/nixpkgs/pkgs/servers/dante/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dante";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchurl {
     url = "https://www.inet.no/dante/files/${pname}-${version}.tar.gz";
-    sha256 = "1bfafnm445afrmyxvvcl8ckq0p59yzykmr3y8qvryzrscd85g8ms";
+    sha256 = "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1";
   };
 
   buildInputs = [ pam libkrb5 cyrus_sasl miniupnpc ];
diff --git a/nixpkgs/pkgs/servers/dendrite/default.nix b/nixpkgs/pkgs/servers/dendrite/default.nix
new file mode 100644
index 000000000000..5f070aa398c1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/dendrite/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "matrix-dendrite";
+  version = "0.3.11";
+
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "dendrite";
+    rev = "v${version}";
+    sha256 = "15xqd4yhsnnpz5n90fbny9i8lp7ki2z3fbpbd8cvsp49347rm483";
+  };
+
+  vendorSha256 = "1l1wydvi0yalas79cvhrqg563cvs57hg9rv6qnkw879r6smb2x1n";
+
+  passthru.tests = {
+    inherit (nixosTests) dendrite;
+  };
+
+  meta = with lib; {
+    homepage = "https://matrix.org";
+    description = "Dendrite is a second-generation Matrix homeserver written in Go!";
+    license = licenses.asl20;
+    maintainers = teams.matrix.members;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/dex/default.nix b/nixpkgs/pkgs/servers/dex/default.nix
index 677c50010a3d..9d577047ee21 100644
--- a/nixpkgs/pkgs/servers/dex/default.nix
+++ b/nixpkgs/pkgs/servers/dex/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dex";
-  version = "2.27.0";
+  version = "2.28.1";
 
   src = fetchFromGitHub {
     owner = "dexidp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0n66nm91qcmm00mz8f8x39xqr3y05qxk34fvka53s6xax1gxvxxi";
+    sha256 = "sha256-MdrkQ4qclylkan8y845BjLiL+W16iqRuNMmvWsKo+zw=";
   };
 
-  vendorSha256 = "1k87q3ic02n2b632y3lmnclac1iaidmsl3f9py61myi5r02p03lp";
+  vendorSha256 = "sha256-rAqqvnP72BQY/qbSvqNzxh2ZUlF/rP0MR/+yqJai+KY=";
 
   subPackages = [
     "cmd/dex"
diff --git a/nixpkgs/pkgs/servers/dico/default.nix b/nixpkgs/pkgs/servers/dico/default.nix
index 6a8c6541c2cc..7820dbaff744 100644
--- a/nixpkgs/pkgs/servers/dico/default.nix
+++ b/nixpkgs/pkgs/servers/dico/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dico";
-  version = "2.10";
+  version = "2.11";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0qag47mzs00d53hnrmh381r0jay42766vp5xrffmzmsn2307x8vl";
+    sha256 = "sha256-rB+Y4jPQ+srKrBBZ87gThKVZLib9TDCCrtAD9l4lLFo=";
   };
 
   hardeningDisable = [ "format" ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     homepage    = "https://www.gnu.org/software/dico/";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
 
     longDescription = ''
       GNU Dico is a flexible modular implementation of DICT server
diff --git a/nixpkgs/pkgs/servers/dns/bind/default.nix b/nixpkgs/pkgs/servers/dns/bind/default.nix
index 5077ff98ecfa..6fd7eb42c994 100644
--- a/nixpkgs/pkgs/servers/dns/bind/default.nix
+++ b/nixpkgs/pkgs/servers/dns/bind/default.nix
@@ -10,11 +10,11 @@ assert enablePython -> python3 != null;
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.16.13";
+  version = "9.16.16";
 
   src = fetchurl {
     url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-pUzHk/pbabNfYQ8glXYPgjjf9c/VJBn37hycIn2kzAg=";
+    sha256 = "sha256-bJE5Aq34eOfcXiKc6pT678nUD0R3WjAhPt0Ihg92HXs=";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
diff --git a/nixpkgs/pkgs/servers/dns/coredns/default.nix b/nixpkgs/pkgs/servers/dns/coredns/default.nix
index 188c3f77cb63..e0bfc3a6225f 100644
--- a/nixpkgs/pkgs/servers/dns/coredns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/coredns/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "coredns";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "sha256-aE+kw854/wjFJqiRC/1gLzRpaVa6EPJPJaKqXtFM+Sw=";
+    sha256 = "sha256-mPZvREBwSyy7dhVl2mJt58T09a0CYaMfJn7GEvfuupI=";
   };
 
-  vendorSha256 = "sha256-1+WgBsknyPcZhvQLffhlWBH1o0pYTFoOG5BviUJYxyA=";
+  vendorSha256 = "sha256-DTw7SVZGl7QdlSpqWx11bjeNUwfb4VlwsGxqPVz6vhI=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/dns/dnsdist/default.nix b/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
index a6a365c13da0..0424880c08e8 100644
--- a/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
+++ b/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsdist";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/dnsdist-${version}.tar.bz2";
-    sha256 = "1wgv19b6y4fp5x1z54psaaialji2rckl5vdh156kyw47k9r5krya";
+    sha256 = "sha256-K9e1M9Lae7RWY8amLkftDS8Zigd/WNxzDEY7eXNjZ0k=";
   };
 
   nativeBuildInputs = [ pkg-config protobuf ];
diff --git a/nixpkgs/pkgs/servers/dns/doh-proxy-rust/default.nix b/nixpkgs/pkgs/servers/dns/doh-proxy-rust/default.nix
index 76f1397611a7..ddde393c5f6b 100644
--- a/nixpkgs/pkgs/servers/dns/doh-proxy-rust/default.nix
+++ b/nixpkgs/pkgs/servers/dns/doh-proxy-rust/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0jksdrji06ykk5cj6i8ydcjhagjwb2xz5bjs6qsw044p8a2hsq53";
   };
 
-  cargoSha256 = "1wilm7bzr8h9yjwzw97ihavaylkv6nrk8f0vmm7kia69vqdrz9in";
+  cargoSha256 = "0i7rga5w4jh7zia4v2zkbmbc683p69z5z05ksl40jcmzvp29p3fj";
   cargoPatches = [ ./cargo-lock.patch ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
diff --git a/nixpkgs/pkgs/servers/dns/knot-dns/default.nix b/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
index 2b407074caf4..11adceb0f74d 100644
--- a/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
@@ -7,11 +7,11 @@ let inherit (lib) optional optionals; in
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "695e7d7a0abefc5a8fd01f3b3080f030f33b0948215f84cd4892c6d904390802";
+    sha256 = "63756ac5a00c3e4a066ed231a287faef5963a9183d77326e30bf0644cdf74f86";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix b/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
index 8d89352b90e6..791de67e52dc 100644
--- a/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
+++ b/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch
+{ lib, stdenv, fetchurl
 # native deps.
 , runCommand, pkg-config, meson, ninja, makeWrapper
 # build+runtime deps.
@@ -17,11 +17,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.3.1";
+  version = "5.3.2";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "9d4d6b7bcdf114acc948e5ee68c83fcbb3944f48a13b9751dbbbc190cdd729c9";
+    sha256 = "8b6f447d5fe93422d4c129a2d4004a977369c3aa6e55258ead1cbd488bc01436";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
index e6468ef550f1..ee3d8aafa1c6 100644
--- a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.4.3";
+  version = "4.5.1";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "01dypbqq6ynrdr3dqwbz8dzpkd2ykgaz9mqhaz3i1hqc21c14hgq";
+    sha256 = "0yaf25jg3gfsi9c9rnxz1ywy3b563plv33aibxrq79iqwk8a289p";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -26,13 +26,16 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru.tests = {
-    nixos = nixosTests.pdns-recursor;
+    inherit (nixosTests) pdns-recursor ncdns;
   };
 
   meta = with lib; {
     description = "A recursive DNS server";
     homepage = "https://www.powerdns.com/";
     platforms = platforms.linux;
+    badPlatforms = [
+      "i686-linux"  # a 64-bit time_t is needed
+    ];
     license = licenses.gpl2;
     maintainers = with maintainers; [ rnhmjoj ];
   };
diff --git a/nixpkgs/pkgs/servers/etcd/3.4.nix b/nixpkgs/pkgs/servers/etcd/3.4.nix
index f533b4537ad3..76fcac91f9d8 100644
--- a/nixpkgs/pkgs/servers/etcd/3.4.nix
+++ b/nixpkgs/pkgs/servers/etcd/3.4.nix
@@ -2,10 +2,10 @@
 
 buildGoModule rec {
   pname = "etcd";
-  version = "3.4.15";
+  version = "3.4.16";
 
   deleteVendor = true;
-  vendorSha256 = "sha256-1q5tYNDmlgHdPgL2Pn5BS8z3SwW2E3OaZkKPAtnhJZY=";
+  vendorSha256 = null;
 
   doCheck = false;
 
@@ -13,7 +13,7 @@ buildGoModule rec {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "sha256-jJC2+zv0io0ZulLVaPMrDD7qkOxGfGtFyZvJ2hTmU24=";
+    sha256 = "sha256-mTQwa9dYc0U0tjum1vR8Dbe/xLRHFUthcklA+Ye6/jw=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/etebase/default.nix b/nixpkgs/pkgs/servers/etebase/default.nix
index d16c6f011336..95ea71a4d3d9 100644
--- a/nixpkgs/pkgs/servers/etebase/default.nix
+++ b/nixpkgs/pkgs/servers/etebase/default.nix
@@ -52,6 +52,5 @@ buildPythonPackage rec {
     description = "An Etebase (EteSync 2.0) server so you can run your own.";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ felschr ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/servers/fcgiwrap/default.nix b/nixpkgs/pkgs/servers/fcgiwrap/default.nix
index ee3f02d0425e..3e0a4e5d9940 100644
--- a/nixpkgs/pkgs/servers/fcgiwrap/default.nix
+++ b/nixpkgs/pkgs/servers/fcgiwrap/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://nginx.localdomain.pl/wiki/FcgiWrap";
     description = "Simple server for running CGI applications over FastCGI";
-    maintainers = with maintainers; [ lethalman ];
+    maintainers = with maintainers; [ ];
     platforms = with platforms; linux;
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/servers/firebird/default.nix b/nixpkgs/pkgs/servers/firebird/default.nix
index 2d4e22ba2443..074481f35187 100644
--- a/nixpkgs/pkgs/servers/firebird/default.nix
+++ b/nixpkgs/pkgs/servers/firebird/default.nix
@@ -1,91 +1,85 @@
-{lib, stdenv, fetchurl, libedit, automake, autoconf, libtool
-,
-  # icu = null: use icu which comes with firebird
-
-  # icu = pkgs.icu => you may have trouble sharing database files with windows
-  # users if "Collation unicode" columns are being used
-  # windows icu version is *30.dll, however neither the icu 3.0 nor the 3.6
-  # sources look close to what ships with this package.
-  # Thus I think its best to trust firebird devs and use their version
-
-  # icu version missmatch may cause such error when selecting from a table:
-  # "Collation unicode for character set utf8 is not installed"
-
-  # icu 3.0 can still be built easily by nix (by dropping the #elif case and
-  # make | make)
-  icu ? null
-
-, superServer ? false
-, port ? 3050
-, serviceName ? "gds_db"
-}:
-
-/*
-   there are 3 ways to use firebird:
-   a) superserver
-    - one process, one thread for each connection
-   b) classic
-    - is built by default
-    - one process for each connection
-    - on linux direct io operations (?)
-   c) embedded.
-
-   manual says that you usually don't notice the difference between a and b.
-
-   I'm only interested in the embedder shared libary for now.
-   So everything isn't tested yet
-
-*/
-
-stdenv.mkDerivation rec {
-  version = "2.5.7.27050-0";
+{ lib, stdenv, fetchFromGitHub, libedit, autoreconfHook, zlib, unzip, libtommath, libtomcrypt, icu, superServer ? false }:
+
+let base = {
   pname = "firebird";
 
-  # enableParallelBuilding = false; build fails
+  meta = with lib; {
+    description = "SQL relational database management system";
+    homepage = "https://firebirdsql.org/";
+    changelog = "https://github.com/FirebirdSQL/firebird/blob/master/CHANGELOG.md";
+    license = [ "IDPL" "Interbase-1.0" ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ marcweber superherointj ];
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ libedit icu ];
 
-  # http://tracker.firebirdsql.org/browse/CORE-3246
-  preConfigure = ''
-    makeFlags="$makeFlags CPU=$NIX_BUILD_CORES"
+  LD_LIBRARY_PATH = lib.makeLibraryPath [ icu ];
+
+  configureFlags = [
+    "--with-system-editline"
+  ] ++ (lib.optional superServer "--enable-superserver");
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -r gen/Release/firebird/* $out
+    runHook postInstall
   '';
 
-  configureFlags =
-    [ "--with-serivec-port=${builtins.toString port}"
-      "--with-service-name=${serviceName}"
-      "--with-system-editline"
-      "--with-fblog=/var/log/firebird"
-      "--with-fbconf=/etc/firebird"
-      "--with-fbsecure-db=/var/db/firebird/system"
-    ]
-    ++ (lib.optional  (icu != null) "--with-system-icu")
-    ++ (lib.optional superServer "--enable-superserver");
-
-  src = fetchurl {
-    url = "mirror://sourceforge/firebird/Firebird-${version}.tar.bz2";
-    sha256 = "06hp6bq5irqvm3h03s79qjgcc3jsjpq150y9aq7anklx9v4nhfqa";
-  };
+}; in rec {
 
-  hardeningDisable = [ "format" ];
+  firebird_2_5 = stdenv.mkDerivation (base // rec {
+    version = "2.5.9";
 
-  # configurePhase = ''
-  #   sed -i 's@cp /usr/share/automake-.*@@' autogen.sh
-  #   sh autogen.sh $configureFlags --prefix=$out
-  # '';
-  buildInputs = [libedit icu automake autoconf libtool];
+    src = fetchFromGitHub {
+      owner = "FirebirdSQL";
+      repo = "firebird";
+      rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
+      sha256 = "sha256-YyvlMeBux80OpVhsCv+6IVxKXFRsgdr+1siupMR13JM=";
+    };
 
-  # TODO: Probably this hase to be tidied up..
-  # make install requires beeing. disabling the root checks
-  # dosen't work. Copying the files manually which can be found
-  # in ubuntu -dev -classic, -example packages:
-  # maybe some of those files can be removed again
-  installPhase = "cp -r gen/firebird $out";
+    configureFlags = base.configureFlags ++ [ "--with-system-icu" ];
 
-  meta = {
-    description = "SQL relational database management system";
-    homepage = "https://www.firebirdnews.org";
-    license = ["IDPL" "Interbase-1.0"];
-    maintainers = [lib.maintainers.marcweber];
-    platforms = lib.platforms.linux;
-    broken = true;
-  };
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out
+      cp -r gen/firebird/* $out
+      runHook postInstall
+    '';
+
+    meta = base.meta // { platforms = [ "x86_64-linux" ]; };
+  });
+
+  firebird_3 = stdenv.mkDerivation (base // rec {
+    version = "3.0.7";
+
+    src = fetchFromGitHub {
+      owner = "FirebirdSQL";
+      repo = "firebird";
+      rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
+      sha256 = "sha256-8nGan10qjW8dFF89BL/tUWtwMGhahBiODbOqRrHSrbs=";
+    };
+
+    buildInputs = base.buildInputs ++ [ zlib libtommath ];
+
+    meta = base.meta // { platforms = [ "x86_64-linux" ]; };
+  });
+
+  firebird_4 = stdenv.mkDerivation (base // rec {
+    version = "4.0.0";
+
+    src = fetchFromGitHub {
+      owner = "FirebirdSQL";
+      repo = "firebird";
+      rev = "v${version}";
+      sha256 = "sha256-a4ex19FMfiJsUEhWUYd2YXKgJ24Jnpoab2t6x9sUuyQ=";
+    };
+
+    buildInputs = base.buildInputs ++ [ zlib unzip libtommath libtomcrypt ];
+  });
 
+  firebird = firebird_4;
 }
diff --git a/nixpkgs/pkgs/servers/fishnet/default.nix b/nixpkgs/pkgs/servers/fishnet/default.nix
index b23a7d1c9209..be503567c567 100644
--- a/nixpkgs/pkgs/servers/fishnet/default.nix
+++ b/nixpkgs/pkgs/servers/fishnet/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0dmc58wzv758b82pjpfzcfi0hr14hqcr61cd9v5xlgk5w78cisjq";
   };
 
-  cargoSha256 = "08v969b0kvsg4dq3xsb159pr52a0vqr34g48j8nvq13979yq6d8p";
+  cargoSha256 = "1s37b0w1aav6gz399zncfp0zqh5sfy0zmabhl7n8p5cwlmlvnlsj";
 
   preBuild = ''
     rmdir ./assets
diff --git a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
index e6454ced2a76..b92975149dbd 100644
--- a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
@@ -5,11 +5,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "5.6";
+  version = "5.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${pname}/${pname}/${name}/${name}.tar.gz";
-    sha256 = "18ksld775balh0yx2icj7fya9fvjkfgvwznvccdlmhi3zidg550h";
+    sha256 = "sha256-pUPOYqgJKntQZRRodcyYeFNLCdxKhT8sK1bi3jl6b0s=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix b/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix
index 731d2c9e19a9..3ea030440626 100644
--- a/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     description = "A free, secure, production-quality and standard-conformant FTP server";
     homepage = "https://www.pureftpd.org";
     license = licenses.isc; # with some parts covered by BSD3(?)
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix b/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix
index 1a5bd4370d72..b87d11809b11 100644
--- a/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix
@@ -24,7 +24,11 @@ stdenv.mkDerivation rec {
   '';
 
   NIX_LDFLAGS = "-lcrypt -lssl -lcrypto -lpam -lcap";
-  NIX_CFLAGS_COMPILE = "-Wno-error=enum-conversion";
+
+  # On gcc9, this would produce
+  #   error: '-Werror=enum-conversion': no option -Wenum-conversion
+  NIX_CFLAGS_COMPILE = lib.optionalString (lib.versionAtLeast stdenv.cc.version "10")
+    "-Wno-error=enum-conversion";
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/servers/gemini/agate/default.nix b/nixpkgs/pkgs/servers/gemini/agate/default.nix
index b41153caeb81..faaef53f164e 100644
--- a/nixpkgs/pkgs/servers/gemini/agate/default.nix
+++ b/nixpkgs/pkgs/servers/gemini/agate/default.nix
@@ -1,26 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "agate";
-  version = "3.0.2";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "mbrubeck";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+X1ibnYAUB34u8+oNBSkjLtsArxlrg0Nq5zJrXi7Rfk=";
+    sha256 = "sha256-miIMz4Lk4R5So96Ceqe1Fl5ozpf47qWq0GgtKFDDCCA=";
   };
 
-  cargoSha256 = "sha256-EOxklOiazxhhIIv6c+N4uuItY/oFMAG0r/ATZ3Anlko=";
+  cargoSha256 = "sha256-NZpqCl37dZUvXmn4Q1Pvbz3LSxk1s0s5x1CBO0POA/4=";
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
-
-  checkFlags = [
-    # Username and Password use the same ports and causes collision
-    # https://github.com/mbrubeck/agate/issues/50
-    "--skip username"
-    "--skip password"
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix b/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
index 4a8e187561c4..e3b4179fcf59 100644
--- a/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
+++ b/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
@@ -2,24 +2,24 @@
 
 stdenv.mkDerivation rec {
   pname = "gmnisrv";
-  version = "unstable-2021-03-26";
+  version = "unstable-2021-05-16";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "gmnisrv";
-    rev = "f23ec10a6d66c574bbf718c4b10f2cf91ea8daef";
-    sha256 = "1d9rjx0s092yfzjxd2yvzixhqgg883nlnmsysgp21w75n2as354n";
+    rev = "b9a92193e96bbe621ebc8430d8308d45a5b86cef";
+    sha256 = "sha256-eMKsoq3Y+eS20nxI7EoDLbdwdoB6shbGt6p8wS+uoPc=";
   };
 
   MIMEDB = "${mime-types}/etc/mime.types";
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl mime-types scdoc ];
+  nativeBuildInputs = [ pkg-config scdoc ];
+  buildInputs = [ openssl mime-types ];
 
   meta = with lib; {
     description = "A simple Gemini protocol server";
     homepage = "https://git.sr.ht/~sircmpwn/gmnisrv";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ bsima jb55 ];
-    platforms = platforms.all;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/gerbera/default.nix b/nixpkgs/pkgs/servers/gerbera/default.nix
index c7e560f9e619..35290de6b245 100644
--- a/nixpkgs/pkgs/servers/gerbera/default.nix
+++ b/nixpkgs/pkgs/servers/gerbera/default.nix
@@ -1,66 +1,102 @@
-{ lib, stdenv, fetchFromGitHub
-, cmake, pkg-config
-# required
-, libupnp, libuuid, pugixml, libiconv, sqlite, zlib, spdlog, fmt
-# options
-, enableDuktape ? true, duktape
-, enableCurl ? true, curl
-, enableTaglib ? true, taglib
-, enableLibmagic ? true, file
-, enableLibmatroska ? true, libmatroska, libebml
-, enableAvcodec ? false, ffmpeg
-, enableLibexif ? true, libexif
-, enableExiv2 ? false, exiv2
-, enableFFmpegThumbnailer ? false, ffmpegthumbnailer
-, enableInotifyTools ? true, inotify-tools
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+  # required
+, fmt
+, libiconv
+, libupnp
+, libuuid
+, pugixml
+, spdlog
+, sqlite
+, zlib
+  # options
+, enableMysql ? false
+, libmysqlclient
+, enableDuktape ? true
+, duktape
+, enableCurl ? true
+, curl
+, enableTaglib ? true
+, taglib
+, enableLibmagic ? true
+, file
+, enableLibmatroska ? true
+, libmatroska
+, libebml
+, enableAvcodec ? false
+, ffmpeg
+, enableLibexif ? true
+, libexif
+, enableExiv2 ? false
+, exiv2
+, enableFFmpegThumbnailer ? false
+, ffmpegthumbnailer
+, enableInotifyTools ? true
+, inotify-tools
 }:
 
-with lib;
 let
-  optionOnOff = option: if option then "on" else "off";
-in stdenv.mkDerivation rec {
+  libupnp' = libupnp.overrideAttrs (super: rec {
+    cmakeFlags = super.cmakeFlags or [ ] ++ [
+      "-Dblocking_tcp_connections=OFF"
+      "-Dreuseaddr=ON"
+    ];
+  });
+
+  options = [
+    { name = "AVCODEC"; enable = enableAvcodec; packages = [ ffmpeg ]; }
+    { name = "CURL"; enable = enableCurl; packages = [ curl ]; }
+    { name = "EXIF"; enable = enableLibexif; packages = [ libexif ]; }
+    { name = "EXIV2"; enable = enableExiv2; packages = [ exiv2 ]; }
+    { name = "FFMPEGTHUMBNAILER"; enable = enableFFmpegThumbnailer; packages = [ ffmpegthumbnailer ]; }
+    { name = "INOTIFY"; enable = enableInotifyTools; packages = [ inotify-tools ]; }
+    { name = "JS"; enable = enableDuktape; packages = [ duktape ]; }
+    { name = "MAGIC"; enable = enableLibmagic; packages = [ file ]; }
+    { name = "MATROSKA"; enable = enableLibmatroska; packages = [ libmatroska libebml ]; }
+    { name = "MYSQL"; enable = enableMysql; packages = [ libmysqlclient ]; }
+    { name = "TAGLIB"; enable = enableTaglib; packages = [ taglib ]; }
+  ];
+
+  inherit (lib) flatten optionals;
+
+in
+stdenv.mkDerivation rec {
   pname = "gerbera";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     repo = "gerbera";
     owner = "gerbera";
     rev = "v${version}";
-    sha256 = "sha256-unBToiLSpTtnung77z65iuUqiQHwfMVgmFZMUtKU7fQ=";
+    sha256 = "sha256-bJIT/qQOKTy2l0wsumlGNvaGqzb2mK0hHKG0S6mEG3o=";
   };
 
+  postPatch = lib.optionalString enableMysql ''
+    substituteInPlace cmake/FindMySQL.cmake \
+      --replace /usr/include/mysql ${lib.getDev libmysqlclient}/include/mariadb \
+      --replace /usr/lib/mysql     ${lib.getLib libmysqlclient}/lib/mariadb
+  '';
+
   cmakeFlags = [
-    "-DWITH_JS=${optionOnOff enableDuktape}"
-    "-DWITH_CURL=${optionOnOff enableCurl}"
-    "-DWITH_TAGLIB=${optionOnOff enableTaglib}"
-    "-DWITH_MAGIC=${optionOnOff enableLibmagic}"
-    "-DWITH_MATROSKA=${optionOnOff enableLibmatroska}"
-    "-DWITH_AVCODEC=${optionOnOff enableAvcodec}"
-    "-DWITH_EXIF=${optionOnOff enableLibexif}"
-    "-DWITH_EXIV2=${optionOnOff enableExiv2}"
-    "-DWITH_FFMPEGTHUMBNAILER=${optionOnOff enableFFmpegThumbnailer}"
-    "-DWITH_INOTIFY=${optionOnOff enableInotifyTools}"
     # systemd service will be generated alongside the service
     "-DWITH_SYSTEMD=OFF"
-  ];
+  ] ++ map (e: "-DWITH_${e.name}=${if e.enable then "ON" else "OFF"}") options;
 
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [
-    libupnp libuuid pugixml libiconv sqlite zlib fmt.dev
+    fmt
+    libiconv
+    libupnp'
+    libuuid
+    pugixml
     spdlog
-  ]
-  ++ optionals enableDuktape [ duktape ]
-  ++ optionals enableCurl [ curl ]
-  ++ optionals enableTaglib [ taglib ]
-  ++ optionals enableLibmagic [ file ]
-  ++ optionals enableLibmatroska [ libmatroska libebml ]
-  ++ optionals enableAvcodec [ ffmpeg.dev ]
-  ++ optionals enableLibexif [ libexif ]
-  ++ optionals enableExiv2 [ exiv2 ]
-  ++ optionals enableInotifyTools [ inotify-tools ]
-  ++ optionals enableFFmpegThumbnailer [ ffmpegthumbnailer ];
-
+    sqlite
+    zlib
+  ] ++ flatten (builtins.catAttrs "packages" (builtins.filter (e: e.enable) options));
 
   meta = with lib; {
     homepage = "https://docs.gerbera.io/";
@@ -70,8 +106,8 @@ in stdenv.mkDerivation rec {
       It allows to stream your digital media through your home network and consume it on all kinds
       of UPnP supporting devices.
     '';
-    license = licenses.gpl2;
-    maintainers = [ maintainers.ardumont ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ ardumont ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/gonic/default.nix b/nixpkgs/pkgs/servers/gonic/default.nix
index fbefca063a84..1ff50079ebd7 100644
--- a/nixpkgs/pkgs/servers/gonic/default.nix
+++ b/nixpkgs/pkgs/servers/gonic/default.nix
@@ -1,5 +1,6 @@
 { lib, buildGoModule, fetchFromGitHub
-, pkg-config, taglib, alsaLib
+, pkg-config, taglib, alsa-lib
+, zlib
 
 # Disable on-the-fly transcoding,
 # removing the dependency on ffmpeg.
@@ -20,9 +21,19 @@ buildGoModule rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ taglib alsaLib ] ++ lib.optionals transcodingSupport [ ffmpeg ];
+  buildInputs = [ taglib alsa-lib zlib ];
   vendorSha256 = "0inxlqxnkglz4j14jav8080718a80nqdcl866lkql8r6zcxb4fm9";
 
+  # TODO(Profpatsch): write a test for transcoding support,
+  # since it is prone to break
+  postPatch = lib.optionalString transcodingSupport ''
+    substituteInPlace \
+      server/encode/encode.go \
+      --replace \
+        '"ffmpeg"' \
+        '"${lib.getBin ffmpeg}/bin/ffmpeg"'
+  '';
+
   meta = {
     homepage = "https://github.com/sentriz/gonic";
     description = "Music streaming server / subsonic server API implementation";
diff --git a/nixpkgs/pkgs/servers/gotty/default.nix b/nixpkgs/pkgs/servers/gotty/default.nix
index 7bd09569248f..d1e87412f7c8 100644
--- a/nixpkgs/pkgs/servers/gotty/default.nix
+++ b/nixpkgs/pkgs/servers/gotty/default.nix
@@ -1,23 +1,29 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gotty";
-  version = "2.0.0-alpha.3";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/yudai/gotty";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner = "yudai";
+    owner = "sorenisanerd";
     repo = "gotty";
-    sha256 = "1vhhs7d4k1vpkf2k69ai2r3bp3zwnwa8l9q7vza0rck69g4nmz7a";
+    rev = "v${version}";
+    sha256 = "sha256-KkFnZ0j6rrzX2M+C0nVdSdta34B9rvL7cC0TOL38lGQ=";
   };
 
+  vendorSha256 = "sha256-6SgF61LW5F/61cB2Yd4cyu3fmFhDooSTw9+NnIAo7lc=";
+
+  # upstream did not update the tests, so they are broken now
+  # https://github.com/sorenisanerd/gotty/issues/13
+  doCheck = false;
+
   meta = with lib; {
     description = "Share your terminal as a web application";
-    homepage = "https://github.com/yudai/gotty";
-    maintainers = with maintainers; [ ];
+    homepage = "https://github.com/sorenisanerd/gotty";
+    maintainers = with maintainers; [ prusnak ];
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/servers/heisenbridge/default.nix b/nixpkgs/pkgs/servers/heisenbridge/default.nix
new file mode 100644
index 000000000000..2d98f377b3bd
--- /dev/null
+++ b/nixpkgs/pkgs/servers/heisenbridge/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "heisenbridge";
+  version = "unstable-2021-05-29";
+
+  src = fetchFromGitHub {
+    owner = "hifi";
+    repo = "heisenbridge";
+    rev = "980755226b0cb46ad9c7f40e0e940f354212a8b7";
+    sha256 = "sha256-jO1Dqtv3IbV4FLI3C82pxssgrCf43hAEcPLYszX2GNI=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    aiohttp
+    irc
+    pyyaml
+  ];
+
+  checkInputs = [ python3Packages.pytestCheckHook ];
+
+  meta = with lib; {
+    description = "A bouncer-style Matrix-IRC bridge.";
+    homepage = "https://github.com/hifi/heisenbridge";
+    license = licenses.mit;
+    maintainers = [ maintainers.sumnerevans ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
index f805d45b2124..7b100b692a32 100644
--- a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
@@ -3,79 +3,61 @@
 , fetchFromGitHub
 }:
 
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      astral = super.astral.overridePythonAttrs (oldAttrs: rec {
-        version = "1.10.1";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "1wbvnqffbgh8grxm07cabdpahlnyfq91pyyaav432cahqi1p59nj";
-        };
-      });
-
-      bcrypt = super.bcrypt.overridePythonAttrs (oldAttrs: rec {
-        version = "3.1.7";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "CwBpx1LsFBcsX3ggjxhj161nVab65v527CyA0TvkHkI=";
-        };
-      });
-
-      yarl = super.yarl.overridePythonAttrs (oldAttrs: rec {
-        version = "1.4.2";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "WM2cRp7O1VjNgao/SEspJOiJcEngaIno/yUQQ1t+90s=";
-        };
-      });
-    };
-  };
-
-in python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "appdaemon";
-  version = "4.0.5";
-  disabled = python.pythonOlder "3.6";
+  version = "4.0.8";
+  disabled = python3.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "AppDaemon";
     repo = pname;
     rev = version;
-    sha256 = "7o6DrTufAC+qK3dDfpkuQMQWuduCZ6Say/knI4Y07QM=";
+    sha256 = "04a4qx0rbx2vpkzpibmwkpy7fawa6dbgqlrllryrl7dchbrf703q";
   };
 
-  propagatedBuildInputs = with python.pkgs; [
-    daemonize astral requests websocket_client aiohttp yarl jinja2
-    aiohttp-jinja2 pyyaml voluptuous feedparser iso8601 bcrypt paho-mqtt setuptools
-    deepdiff dateutil bcrypt python-socketio pid pytz sockjs pygments
-    azure-mgmt-compute azure-mgmt-storage azure-mgmt-resource azure-keyvault-secrets azure-storage-blob
-  ];
-
-  # no tests implemented
-  doCheck = false;
-
+  # relax dependencies
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "pyyaml==5.3" "pyyaml" \
-      --replace "pid==2.2.5" "pid" \
-      --replace "Jinja2==2.11.1" "Jinja2" \
-      --replace "pytz==2019.3" "pytz" \
-      --replace "aiohttp==3.6.2" "aiohttp>=3.6" \
-      --replace "iso8601==0.1.12" "iso8601>=0.1" \
-      --replace "azure==4.0.0" "azure-mgmt-compute
-    azure-mgmt-storage
-    azure-mgmt-resource
+      --replace "deepdiff==5.2.3" "deepdiff" \
+      --replace "pygments==2.8.1" "pygments"
+    sed -i 's/==/>=/' requirements.txt
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiodns
+    aiohttp
+    aiohttp-jinja2
+    astral
     azure-keyvault-secrets
-    azure-storage-blob" \
-      --replace "sockjs==0.10.0" "sockjs" \
-      --replace "deepdiff==4.3.1" "deepdiff" \
-      --replace "voluptuous==0.11.7" "voluptuous" \
-      --replace "python-socketio==4.4.0" "python-socketio" \
-      --replace "feedparser==5.2.1" "feedparser>=5.2.1" \
-      --replace "aiohttp_jinja2==1.2.0" "aiohttp_jinja2>=1.2.0" \
-      --replace "pygments==2.6.1" "pygments>=2.6.1" \
-      --replace "paho-mqtt==1.5.0" "paho-mqtt>=1.5.0" \
-      --replace "websocket-client==0.57.0" "websocket-client>=0.57.0"
+    azure-mgmt-compute
+    azure-mgmt-resource
+    azure-mgmt-storage
+    azure-storage-blob
+    bcrypt
+    cchardet
+    deepdiff
+    feedparser
+    iso8601
+    jinja2
+    paho-mqtt
+    pid
+    pygments
+    python-dateutil
+    python-engineio
+    python-socketio
+    pytz
+    pyyaml
+    requests
+    sockjs
+    uvloop
+    voluptuous
+    websocket_client
+    yarl
+  ];
+
+  # no tests implemented
+  checkPhase = ''
+    $out/bin/appdaemon -v | grep -q "${version}"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
index cf8c0641bc74..98e0781186b9 100644
--- a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2021.4.6";
+  version = "2021.5.5";
   components = {
     "abode" = ps: with ps; [ abodepy ];
     "accuweather" = ps: with ps; [ accuweather ];
@@ -40,7 +40,7 @@
     "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
     "api" = ps: with ps; [ aiohttp-cors ];
     "apns" = ps: with ps; [ ]; # missing inputs: apns2
-    "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf ];
+    "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv pyroute2 zeroconf ];
     "apprise" = ps: with ps; [ apprise ];
     "aprs" = ps: with ps; [ geopy ]; # missing inputs: aprslib
     "aqualogic" = ps: with ps; [ aqualogic ];
@@ -89,7 +89,7 @@
     "bloomsky" = ps: with ps; [ ];
     "blueprint" = ps: with ps; [ ];
     "bluesound" = ps: with ps; [ xmltodict ];
-    "bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
+    "bluetooth_le_tracker" = ps: with ps; [ pygatt ];
     "bluetooth_tracker" = ps: with ps; [ bt_proximity pybluez ];
     "bme280" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense
     "bme680" = ps: with ps; [ bme680 smbus-cffi ];
@@ -109,8 +109,8 @@
     "caldav" = ps: with ps; [ caldav ];
     "calendar" = ps: with ps; [ aiohttp-cors ];
     "camera" = ps: with ps; [ aiohttp-cors ];
-    "canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary
-    "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa mutagen plexapi plexauth plexwebsocket PyChromecast zeroconf ];
+    "canary" = ps: with ps; [ ha-ffmpeg py-canary ];
+    "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa mutagen plexapi plexauth plexwebsocket PyChromecast pyroute2 zeroconf ];
     "cert_expiry" = ps: with ps; [ ];
     "channels" = ps: with ps; [ pychannels ];
     "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
@@ -133,6 +133,7 @@
     "comed_hourly_pricing" = ps: with ps; [ ];
     "comfoconnect" = ps: with ps; [ pycomfoconnect ];
     "command_line" = ps: with ps; [ ];
+    "compensation" = ps: with ps; [ numpy ];
     "concord232" = ps: with ps; [ ]; # missing inputs: concord232
     "config" = ps: with ps; [ aiohttp-cors ];
     "configurator" = ps: with ps; [ ];
@@ -155,28 +156,28 @@
     "deconz" = ps: with ps; [ pydeconz ];
     "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
     "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
-    "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
-    "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
+    "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow pyroute2 scapy sqlalchemy zeroconf ];
+    "delijn" = ps: with ps; [ pydelijn ];
     "deluge" = ps: with ps; [ deluge-client ];
     "demo" = ps: with ps; [ aiohttp-cors ];
     "denon" = ps: with ps; [ ];
-    "denonavr" = ps: with ps; [ denonavr getmac ];
+    "denonavr" = ps: with ps; [ denonavr ];
     "derivative" = ps: with ps; [ ];
     "deutsche_bahn" = ps: with ps; [ schiene ];
     "device_automation" = ps: with ps; [ ];
     "device_sun_light_trigger" = ps: with ps; [ aiohttp-cors pillow ];
     "device_tracker" = ps: with ps; [ ];
-    "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api zeroconf ];
+    "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api pyroute2 zeroconf ];
     "dexcom" = ps: with ps; [ pydexcom ];
     "dhcp" = ps: with ps; [ aiodiscover scapy ];
-    "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT
+    "dht" = ps: with ps; [ ]; # missing inputs: adafruit-circuitpython-dht
     "dialogflow" = ps: with ps; [ aiohttp-cors ];
     "digital_ocean" = ps: with ps; [ digital-ocean ];
     "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
     "directv" = ps: with ps; [ ]; # missing inputs: directv
     "discogs" = ps: with ps; [ discogs_client ];
     "discord" = ps: with ps; [ discordpy ];
-    "discovery" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
+    "discovery" = ps: with ps; [ aiohttp-cors netdisco pyroute2 zeroconf ];
     "dlib_face_detect" = ps: with ps; [ face_recognition ];
     "dlib_face_identify" = ps: with ps; [ face_recognition ];
     "dlink" = ps: with ps; [ ]; # missing inputs: pyW215
@@ -196,7 +197,7 @@
     "dwd_weather_warnings" = ps: with ps; [ dwdwfsapi ];
     "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
     "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
-    "dyson" = ps: with ps; [ aiohttp-cors libpurecool zeroconf ];
+    "dyson" = ps: with ps; [ aiohttp-cors libpurecool pyroute2 zeroconf ];
     "eafm" = ps: with ps; [ aioeafm ];
     "ebox" = ps: with ps; [ ]; # missing inputs: pyebox
     "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy
@@ -218,12 +219,13 @@
     "emby" = ps: with ps; [ pyemby ];
     "emoncms" = ps: with ps; [ ];
     "emoncms_history" = ps: with ps; [ ];
+    "emonitor" = ps: with ps; [ aioemonitor ];
     "emulated_hue" = ps: with ps; [ aiohttp-cors ];
     "emulated_kasa" = ps: with ps; [ ]; # missing inputs: sense_energy
     "emulated_roku" = ps: with ps; [ ]; # missing inputs: emulated_roku
     "enigma2" = ps: with ps; [ openwebifpy ];
     "enocean" = ps: with ps; [ ]; # missing inputs: enocean
-    "enphase_envoy" = ps: with ps; [ ]; # missing inputs: envoy_reader
+    "enphase_envoy" = ps: with ps; [ envoy-reader ];
     "entur_public_transport" = ps: with ps; [ ]; # missing inputs: enturclient
     "environment_canada" = ps: with ps; [ ]; # missing inputs: env_canada
     "envirophat" = ps: with ps; [ smbus-cffi ]; # missing inputs: envirophat
@@ -232,13 +234,13 @@
     "epson" = ps: with ps; [ ]; # missing inputs: epson-projector
     "epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter
     "eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt
-    "esphome" = ps: with ps; [ aioesphomeapi aiohttp-cors zeroconf ];
+    "esphome" = ps: with ps; [ aioesphomeapi aiohttp-cors pyroute2 zeroconf ];
     "essent" = ps: with ps; [ ]; # missing inputs: PyEssent
     "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
     "eufy" = ps: with ps; [ ]; # missing inputs: lakeside
     "everlights" = ps: with ps; [ pyeverlights ];
     "evohome" = ps: with ps; [ evohome-async ];
-    "ezviz" = ps: with ps; [ pyezviz ];
+    "ezviz" = ps: with ps; [ ha-ffmpeg pyezviz ];
     "faa_delays" = ps: with ps; [ faadelays ];
     "facebook" = ps: with ps; [ ];
     "facebox" = ps: with ps; [ ];
@@ -280,7 +282,7 @@
     "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
     "freebox" = ps: with ps; [ freebox-api ];
     "freedns" = ps: with ps; [ ];
-    "fritz" = ps: with ps; [ fritzconnection ];
+    "fritz" = ps: with ps; [ fritzconnection xmltodict ];
     "fritzbox" = ps: with ps; [ pyfritzhome ];
     "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
     "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
@@ -292,7 +294,6 @@
     "garmin_connect" = ps: with ps; [ ]; # missing inputs: garminconnect
     "gc100" = ps: with ps; [ ]; # missing inputs: python-gc100
     "gdacs" = ps: with ps; [ ]; # missing inputs: aio_georss_gdacs
-    "geizhals" = ps: with ps; [ ]; # missing inputs: geizhals
     "generic" = ps: with ps; [ ];
     "generic_thermostat" = ps: with ps; [ ];
     "geniushub" = ps: with ps; [ ]; # missing inputs: geniushub-client
@@ -315,7 +316,7 @@
     "google_assistant" = ps: with ps; [ aiohttp-cors ];
     "google_cloud" = ps: with ps; [ google-cloud-texttospeech ];
     "google_domains" = ps: with ps; [ ];
-    "google_maps" = ps: with ps; [ ]; # missing inputs: locationsharinglib
+    "google_maps" = ps: with ps; [ locationsharinglib ];
     "google_pubsub" = ps: with ps; [ google-cloud-pubsub ];
     "google_translate" = ps: with ps; [ gtts ];
     "google_travel_time" = ps: with ps; [ googlemaps ];
@@ -330,7 +331,7 @@
     "group" = ps: with ps; [ ];
     "growatt_server" = ps: with ps; [ ]; # missing inputs: growattServer
     "gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
-    "gtfs" = ps: with ps; [ ]; # missing inputs: pygtfs
+    "gtfs" = ps: with ps; [ pygtfs ];
     "guardian" = ps: with ps; [ aioguardian ];
     "habitica" = ps: with ps; [ ]; # missing inputs: habitipy
     "hangouts" = ps: with ps; [ ]; # missing inputs: hangups
@@ -354,8 +355,8 @@
     "home_connect" = ps: with ps; [ aiohttp-cors homeconnect ];
     "home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ];
     "homeassistant" = ps: with ps; [ ];
-    "homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ];
-    "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors zeroconf ];
+    "homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg pyroute2 zeroconf ];
+    "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors pyroute2 zeroconf ];
     "homematic" = ps: with ps; [ pyhomematic ];
     "homematicip_cloud" = ps: with ps; [ homematicip ];
     "homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks
@@ -374,6 +375,7 @@
     "hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti
     "hydrawise" = ps: with ps; [ hydrawiser ];
     "hyperion" = ps: with ps; [ hyperion-py ];
+    "ialarm" = ps: with ps; [ pyialarm ];
     "iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
     "iaqualink" = ps: with ps; [ iaqualink ];
     "icloud" = ps: with ps; [ pyicloud ];
@@ -398,20 +400,20 @@
     "intent" = ps: with ps; [ aiohttp-cors ];
     "intent_script" = ps: with ps; [ ];
     "intesishome" = ps: with ps; [ pyintesishome ];
-    "ios" = ps: with ps; [ aiohttp-cors zeroconf ];
+    "ios" = ps: with ps; [ aiohttp-cors pyroute2 zeroconf ];
     "iota" = ps: with ps; [ ]; # missing inputs: pyota
     "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
     "ipma" = ps: with ps; [ ]; # missing inputs: pyipma
     "ipp" = ps: with ps; [ pyipp ];
     "iqvia" = ps: with ps; [ numpy pyiqvia ];
     "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
-    "islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator
+    "islamic_prayer_times" = ps: with ps; [ prayer-times-calculator ];
     "iss" = ps: with ps; [ ]; # missing inputs: pyiss
     "isy994" = ps: with ps; [ ]; # missing inputs: pyisy
     "itach" = ps: with ps; [ ]; # missing inputs: pyitachip2ir
     "itunes" = ps: with ps; [ ];
     "izone" = ps: with ps; [ ]; # missing inputs: python-izone
-    "jewish_calendar" = ps: with ps; [ ]; # missing inputs: hdate
+    "jewish_calendar" = ps: with ps; [ hdate ];
     "joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api
     "juicenet" = ps: with ps; [ ]; # missing inputs: python-juicenet
     "kaiterra" = ps: with ps; [ ]; # missing inputs: kaiterra-async-client
@@ -427,6 +429,7 @@
     "knx" = ps: with ps; [ xknx ];
     "kodi" = ps: with ps; [ pykodi ];
     "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
+    "kostal_plenticore" = ps: with ps; [ ]; # missing inputs: kostal_plenticore
     "kulersky" = ps: with ps; [ ]; # missing inputs: pykulersky
     "kwb" = ps: with ps; [ ]; # missing inputs: pykwb
     "lacrosse" = ps: with ps; [ pylacrosse ];
@@ -492,6 +495,7 @@
     "meraki" = ps: with ps; [ aiohttp-cors ];
     "message_bird" = ps: with ps; [ ]; # missing inputs: messagebird
     "met" = ps: with ps; [ pymetno ];
+    "met_eireann" = ps: with ps; [ pymeteireann ];
     "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance-api
     "meteoalarm" = ps: with ps; [ ]; # missing inputs: meteoalertapi
     "metoffice" = ps: with ps; [ ]; # missing inputs: datapoint
@@ -517,6 +521,7 @@
     "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
     "moon" = ps: with ps; [ ];
     "motion_blinds" = ps: with ps; [ ]; # missing inputs: motionblinds
+    "motioneye" = ps: with ps; [ motioneye-client ];
     "mpchc" = ps: with ps; [ ];
     "mpd" = ps: with ps; [ mpd2 ];
     "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
@@ -526,6 +531,7 @@
     "mqtt_statestream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "msteams" = ps: with ps; [ pymsteams ];
     "mullvad" = ps: with ps; [ mullvad-api ];
+    "mutesync" = ps: with ps; [ mutesync ];
     "mvglive" = ps: with ps; [ PyMVGLive ];
     "my" = ps: with ps; [ aiohttp-cors pillow ];
     "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy
@@ -576,8 +582,8 @@
     "nx584" = ps: with ps; [ pynx584 ];
     "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
     "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
-    "obihai" = ps: with ps; [ ]; # missing inputs: pyobihai
-    "octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
+    "obihai" = ps: with ps; [ pyobihai ];
+    "octoprint" = ps: with ps; [ aiohttp-cors netdisco pyroute2 zeroconf ];
     "oem" = ps: with ps; [ ]; # missing inputs: oemthermostat
     "ohmconnect" = ps: with ps; [ defusedxml ];
     "ombi" = ps: with ps; [ ]; # missing inputs: pyombi
@@ -598,7 +604,7 @@
     "openhome" = ps: with ps; [ openhomedevice ];
     "opensensemap" = ps: with ps; [ opensensemap-api ];
     "opensky" = ps: with ps; [ ];
-    "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw
+    "opentherm_gw" = ps: with ps; [ pyotgw ];
     "openuv" = ps: with ps; [ pyopenuv ];
     "openweathermap" = ps: with ps; [ pyowm ];
     "opnsense" = ps: with ps; [ pyopnsense ];
@@ -608,7 +614,7 @@
     "orvibo" = ps: with ps; [ orvibo ];
     "osramlightify" = ps: with ps; [ ]; # missing inputs: lightify
     "otp" = ps: with ps; [ pyotp ];
-    "ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy
+    "ovo_energy" = ps: with ps; [ ovoenergy ];
     "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ];
     "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt python-openzwave-mqtt ];
     "panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
@@ -620,9 +626,10 @@
     "pencom" = ps: with ps; [ ]; # missing inputs: pencompy
     "persistent_notification" = ps: with ps; [ ];
     "person" = ps: with ps; [ aiohttp-cors pillow ];
-    "philips_js" = ps: with ps; [ ]; # missing inputs: ha-philipsjs
+    "philips_js" = ps: with ps; [ ha-philipsjs ];
     "pi4ioe5v9xxxx" = ps: with ps; [ ]; # missing inputs: pi4ioe5v9xxxx
     "pi_hole" = ps: with ps; [ hole ];
+    "picnic" = ps: with ps; [ python-picnic-api ];
     "picotts" = ps: with ps; [ ];
     "piglow" = ps: with ps; [ ]; # missing inputs: piglow
     "pilight" = ps: with ps; [ ]; # missing inputs: pilight
@@ -653,7 +660,7 @@
     "pushover" = ps: with ps; [ pushover-complete ];
     "pushsafer" = ps: with ps; [ ];
     "pvoutput" = ps: with ps; [ jsonpath xmltodict ];
-    "pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc
+    "pvpc_hourly_pricing" = ps: with ps; [ aiopvpc ];
     "pyload" = ps: with ps; [ ];
     "python_script" = ps: with ps; [ restrictedpython ];
     "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
@@ -694,7 +701,7 @@
     "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
     "roku" = ps: with ps; [ rokuecp ];
     "roomba" = ps: with ps; [ roombapy ];
-    "roon" = ps: with ps; [ ]; # missing inputs: roonapi
+    "roon" = ps: with ps; [ pyroon ];
     "route53" = ps: with ps; [ boto3 ];
     "rova" = ps: with ps; [ ]; # missing inputs: rova
     "rpi_camera" = ps: with ps; [ ];
@@ -708,7 +715,7 @@
     "ruckus_unleashed" = ps: with ps; [ pyruckus ];
     "russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio
     "russound_rnet" = ps: with ps; [ ]; # missing inputs: russound
-    "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: pysabnzbd
+    "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco pyroute2 zeroconf ]; # missing inputs: pysabnzbd
     "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa pillow ];
     "saj" = ps: with ps; [ ]; # missing inputs: pysaj
     "samsungtv" = ps: with ps; [ samsungctl samsungtvws ];
@@ -748,7 +755,7 @@
     "sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms
     "sisyphus" = ps: with ps; [ ]; # missing inputs: sisyphus-control
     "sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub
-    "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
+    "skybeacon" = ps: with ps; [ pygatt ];
     "skybell" = ps: with ps; [ skybellpy ];
     "slack" = ps: with ps; [ slackclient ];
     "sleepiq" = ps: with ps; [ sleepyq ];
@@ -767,7 +774,6 @@
     "snips" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "snmp" = ps: with ps; [ pysnmp ];
     "sochain" = ps: with ps; [ ]; # missing inputs: python-sochain-api
-    "socialblade" = ps: with ps; [ ]; # missing inputs: socialbladeclient
     "solaredge" = ps: with ps; [ solaredge stringcase ];
     "solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local
     "solarlog" = ps: with ps; [ ]; # missing inputs: sunwatcher
@@ -779,7 +785,7 @@
     "songpal" = ps: with ps; [ ]; # missing inputs: python-songpal
     "sonos" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
     "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp
-    "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf ];
+    "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch pyroute2 zeroconf ];
     "spaceapi" = ps: with ps; [ aiohttp-cors ];
     "spc" = ps: with ps; [ ]; # missing inputs: pyspcwebgw
     "speedtestdotnet" = ps: with ps; [ speedtest-cli ];
@@ -790,7 +796,7 @@
     "sql" = ps: with ps; [ sqlalchemy ];
     "squeezebox" = ps: with ps; [ pysqueezebox ];
     "srp_energy" = ps: with ps; [ ]; # missing inputs: srpenergy
-    "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml netdisco zeroconf ];
+    "ssdp" = ps: with ps; [ aiohttp-cors async-upnp-client defusedxml netdisco pyroute2 zeroconf ];
     "starline" = ps: with ps; [ ]; # missing inputs: starline
     "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
     "startca" = ps: with ps; [ xmltodict ];
@@ -840,7 +846,7 @@
     "telnet" = ps: with ps; [ ];
     "temper" = ps: with ps; [ ]; # missing inputs: temperusb
     "template" = ps: with ps; [ ];
-    "tensorflow" = ps: with ps; [ numpy pillow tensorflow ]; # missing inputs: pycocotools tf-models-official
+    "tensorflow" = ps: with ps; [ numpy pillow pycocotools tensorflow ]; # missing inputs: tf-models-official
     "tesla" = ps: with ps; [ teslajsonpy ];
     "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
     "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
@@ -958,7 +964,7 @@
     "xbox_live" = ps: with ps; [ xboxapi ];
     "xeoma" = ps: with ps; [ pyxeoma ];
     "xiaomi" = ps: with ps; [ ha-ffmpeg ];
-    "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco zeroconf ];
+    "xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco pyroute2 zeroconf ];
     "xiaomi_miio" = ps: with ps; [ construct python-miio ];
     "xiaomi_tv" = ps: with ps; [ pymitv ];
     "xmpp" = ps: with ps; [ slixmpp ];
@@ -966,7 +972,7 @@
     "yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ];
     "yamaha" = ps: with ps; [ rxv ];
     "yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast
-    "yandex_transport" = ps: with ps; [ ]; # missing inputs: aioymaps
+    "yandex_transport" = ps: with ps; [ aioymaps ];
     "yandextts" = ps: with ps; [ ];
     "yeelight" = ps: with ps; [ yeelight ];
     "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
@@ -974,10 +980,10 @@
     "zabbix" = ps: with ps; [ ]; # missing inputs: py-zabbix
     "zamg" = ps: with ps; [ ];
     "zengge" = ps: with ps; [ ]; # missing inputs: zengge
-    "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
+    "zeroconf" = ps: with ps; [ aiohttp-cors pyroute2 zeroconf ];
     "zerproc" = ps: with ps; [ pyzerproc ];
     "zestimate" = ps: with ps; [ xmltodict ];
-    "zha" = ps: with ps; [ aiohttp-cors bellows pyserial-asyncio pyserial zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
+    "zha" = ps: with ps; [ aiohttp-cors bellows pyroute2 pyserial-asyncio pyserial zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
     "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
     "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
     "zodiac" = ps: with ps; [ ];
diff --git a/nixpkgs/pkgs/servers/home-assistant/default.nix b/nixpkgs/pkgs/servers/home-assistant/default.nix
index cb4557380801..f0c00550381d 100644
--- a/nixpkgs/pkgs/servers/home-assistant/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchFromGitHub
 , python3
+, inetutils
 , nixosTests
 
 # Look up dependencies of specified components in component-packages.nix
@@ -22,24 +23,6 @@ let
   defaultOverrides = [
     # Override the version of some packages pinned in Home Assistant's setup.py
 
-    # Pinned due to API changes in astral>=2.0, required by the sun/moon plugins
-    # https://github.com/home-assistant/core/pull/48573; Remove >= 2021.5
-    (mkOverride "astral" "1.10.1"
-      "d2a67243c4503131c856cafb1b1276de52a86e5b8a1d507b7e08bee51cb67bf1")
-
-    # Pinned due to API changes in brother>=1.0, remove >= 2021.5
-    (self: super: {
-      brother = super.brother.overridePythonAttrs (oldAttrs: rec {
-        version = "0.2.2";
-        src = fetchFromGitHub {
-          owner = "bieniu";
-          repo = "brother";
-          rev = version;
-          sha256 = "sha256-vIefcL3K3ZbAUxMFM7gbbTFdrnmufWZHcq4OA19SYXE=";
-        };
-      });
-    })
-
     # Pinned due to API changes in iaqualink>=2.0, remove after
     # https://github.com/home-assistant/core/pull/48137 was merged
     (self: super: {
@@ -56,26 +39,15 @@ let
     })
 
     # Pinned due to API changes in pyjwt>=2.0
-    (mkOverride "pyjwt" "1.7.1"
-      "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd")
-
-    # Pinned due to API changes in pykmtronic>=0.2.0
-    (mkOverride "pykmtronic" "0.0.3"
-      "sha256-8bxn27DU1XUQUxQFJklEge29DHx1DMu7pJG4hVE1jDU=")
-
-    # Pinned due to API changes in pylilterbot>=2021.3.0
-    # https://github.com/home-assistant/core/pull/48300; Remove >= 2021.5
     (self: super: {
-      pylitterbot = super.pylitterbot.overridePythonAttrs (oldAttrs: rec {
-        version = "2021.2.8";
-        src = fetchFromGitHub {
-          owner = "natekspencer";
-          repo = "pylitterbot";
-          rev = version;
-          sha256 = "142lhijm51v11cd0lhcfdnjdd143jxi2hjsrqdq0rrbbnmj6mymp";
+      pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
+        version = "1.7.1";
+        src = oldAttrs.src.override {
+          sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
         };
-        # had no tests before 2021.3.0
-        doCheck = false;
+        disabledTests = [
+          "test_ec_verify_should_return_false_if_signature_invalid"
+        ];
       });
     })
 
@@ -84,6 +56,46 @@ let
     (mkOverride "ring-doorbell" "0.6.2"
       "fbd537722a27b3b854c26506d894b7399bb8dc57ff36083285971227a2d46560")
 
+    # Pinned due to API changes in pyflunearyou>=2.0
+    (self: super: {
+      pyflunearyou = super.pyflunearyou.overridePythonAttrs (oldAttrs: rec {
+        version = "1.0.7";
+        src = fetchFromGitHub {
+          owner = "bachya";
+          repo = "pyflunearyou";
+          rev = version;
+          sha256 = "0hq55k298m9a90qb3lasw9bi093hzndrah00rfq94bp53aq0is99";
+        };
+        postPatch = ''
+          substituteInPlace pyproject.toml \
+            --replace "poetry.masonry.api" "poetry.core.masonry.api" \
+            --replace 'msgpack = "^0.6.2"' 'msgpack = "*"' \
+            --replace 'ujson = "^1.35"' 'ujson = "*"'
+        '';
+      });
+    })
+
+    # Pinned due to API changes in pylast 4.2.1
+    (mkOverride "pylast" "4.2.0"
+      "0zd0dn2l738ndz62vpa751z0ldnm91dcz9zzbvxv53r08l0s9yf3")
+
+    # Pinned due to API changes in pyopenuv>=1.1.0
+    (self: super: {
+      pyopenuv = super.pyopenuv.overridePythonAttrs (oldAttrs: rec {
+        version = "1.0.13";
+        src = fetchFromGitHub {
+          owner = "bachya";
+          repo = "pyopenuv";
+          rev = version;
+          sha256 = "1gx9xjkyvqqy8410lnbshq1j5y4cb0cdc4m505g17rwdzdwb01y8";
+        };
+        postPatch = ''
+          substituteInPlace pyproject.toml \
+            --replace "poetry.masonry.api" "poetry.core.masonry.api"
+        '';
+      });
+    })
+
     # Pinned due to API changes in pyruckus>0.12
     (self: super: {
       pyruckus = super.pyruckus.overridePythonAttrs (oldAttrs: rec {
@@ -97,6 +109,19 @@ let
       });
     })
 
+    # Remove after https://github.com/NixOS/nixpkgs/pull/121854 has passed staging-next
+    (self: super: {
+      sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
+        version = "1.4.13";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "0npsg38d11skv04zvsi90j93f6jdgm8666ds2ri7shr1pz1732hx";
+        };
+        patches = [];
+        propagatedBuildInputs = [ python3.pkgs.greenlet ];
+      });
+    })
+
     # hass-frontend does not exist in python3.pkgs
     (self: super: {
       hass-frontend = self.callPackage ./frontend.nix { };
@@ -130,7 +155,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2021.4.6";
+  hassVersion = "2021.5.5";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -149,7 +174,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "1s1slwcqls2prz9kgyhggs8xi3x7ghwdi33j983kvpg0gva7d2f0";
+    sha256 = "1vdxygjik1ay58xgyr1rk12cgy63raqi4fldnd4mlhs4i21c7ff8";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
@@ -162,8 +187,6 @@ in with py.pkgs; buildPythonApplication rec {
       --replace "bcrypt==3.1.7" "bcrypt" \
       --replace "cryptography==3.3.2" "cryptography" \
       --replace "pip>=8.0.3,<20.3" "pip" \
-      --replace "pytz>=2021.1" "pytz" \
-      --replace "pyyaml==5.4.1" "pyyaml" \
       --replace "ruamel.yaml==0.15.100" "ruamel.yaml"
     substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
   '';
@@ -200,70 +223,133 @@ in with py.pkgs; buildPythonApplication rec {
   doCheck = stdenv.isLinux;
 
   checkInputs = [
-    # test infrastructure
-    asynctest
+    # test infrastructure (selectively from requirement_test.txt)
     pytest-aiohttp
+    pytest-mock
     pytest-rerunfailures
     pytest-xdist
     pytestCheckHook
     requests-mock
-    # component dependencies
-    pyotp
+    jsonpickle
     respx
+    # required by tests/auth/mfa_modules
+    pyotp
   ] ++ lib.concatMap (component: getPackages component py.pkgs) componentTests;
 
   # We can reasonably test components that don't communicate with any network
   # services. Before adding new components to this list make sure we have all
   # its dependencies packaged and listed in ./component-packages.nix.
   componentTests = [
+    "abode"
     "accuweather"
+    "acmeda"
+    "adguard"
+    "advantage_air"
+    "agent_dvr"
+    "air_quality"
     "airly"
-    "analytics"
+    "airnow"
+    "airvisual"
+    "alarm_control_panel"
+    "alarmdecoder"
     "alert"
+    "alexa"
+    "almond"
+    "ambiclimate"
+    "ambient_station"
+    "analytics"
+    "androidtv"
+    "apache_kafka"
     "api"
+    "apple_tv"
+    "apprise"
+    "arlo"
+    "asuswrt"
+    "august"
+    "aurora"
     "auth"
     "automation"
+    "awair"
+    "aws"
     "axis"
     "bayesian"
     "binary_sensor"
+    "blackbird"
+    "blueprint"
+    "bluetooth_le_tracker"
+    "braviatv"
+    "broadlink"
     "brother"
+    "bsblan"
     "caldav"
     "calendar"
     "camera"
+    "canary"
     "cast"
+    "cert_expiry"
+    "climacell"
     "climate"
     "cloud"
+    "cloudflare"
     "comfoconnect"
     "command_line"
+    "compensation"
     "config"
     "configurator"
     "conversation"
+    "coronavirus"
     "counter"
     "cover"
+    "daikin"
+    "darksky"
+    "datadog"
     "deconz"
     "default_config"
     "demo"
+    "denonavr"
     "derivative"
     "device_automation"
     "device_sun_light_trigger"
     "device_tracker"
     "devolo_home_control"
+    "dexcom"
     "dhcp"
+    "dialogflow"
     "discovery"
     "dsmr"
+    "dte_energy_bridge"
+    "duckdns"
+    "dyson"
+    "eafm"
     "econet"
+    "efergy"
+    "emonitor"
     "emulated_hue"
+    "enphase_envoy"
     "esphome"
-    "fan"
+    "everlights"
+    "ezviz"
     "faa_delays"
+    "facebook"
+    "facebox"
+    "fail2ban"
+    "fan"
+    "feedreader"
     "ffmpeg"
+    "fido"
     "file"
     "filesize"
     "filter"
+    "firmata"
+    "flo"
+    "flume"
+    "flunearyou"
     "flux"
     "folder"
     "folder_watcher"
     "freebox"
+    "freedns"
+    "fritz"
     "fritzbox"
     "fritzbox_callmonitor"
     "frontend"
@@ -271,162 +357,332 @@ in with py.pkgs; buildPythonApplication rec {
     "generic_thermostat"
     "geo_json_events"
     "geo_location"
+    "geofency"
+    "glances"
+    "google"
+    "google_assistant"
+    "google_domains"
+    "google_pubsub"
+    "google_translate"
+    "google_travel_time"
+    "google_wifi"
+    "gpslogger"
+    "graphite"
     "group"
+    "guardian"
+    "harmony"
+    "hassio"
     "hddtemp"
     "history"
     "history_stats"
     "home_connect"
     "home_plus_control"
+    "homeassistant"
     "homekit"
     "homekit_controller"
-    "homeassistant"
     "homematic"
     "homematicip_cloud"
     "html5"
     "http"
     "hue"
+    "humidifier"
     "hyperion"
+    "ialarm"
     "iaqualink"
+    "icloud"
     "ifttt"
     "image"
     "image_processing"
+    "imap_email_content"
     "influxdb"
     "input_boolean"
     "input_datetime"
-    "input_text"
     "input_number"
     "input_select"
+    "input_text"
+    "insteon"
+    "integration"
     "intent"
     "intent_script"
+    "ios"
     "ipp"
+    "iqvia"
+    "islamic_prayer_times"
+    "jewish_calendar"
+    "kira"
     "kmtronic"
     "knx"
     "kodi"
+    "lastfm"
+    "lcn"
     "light"
     "litterrobot"
     "local_file"
     "local_ip"
+    "locative"
     "lock"
     "logbook"
     "logentries"
     "logger"
+    "london_air"
     "lovelace"
+    "luftdaten"
     "lutron_caseta"
+    "lyric"
+    "mailbox"
     "manual"
     "manual_mqtt"
     "mazda"
     "media_player"
     "media_source"
+    "meraki"
     "met"
+    "met_eireann"
+    "microsoft_face"
+    "microsoft_face_detect"
+    "microsoft_face_identify"
+    "mikrotik"
+    "min_max"
     "minecraft_server"
+    "minio"
     "mobile_app"
     "modbus"
+    "mold_indicator"
     "moon"
+    "motioneye"
     "mqtt"
     "mqtt_eventstream"
     "mqtt_json"
     "mqtt_room"
     "mqtt_statestream"
     "mullvad"
+    "mutesync"
+    "my"
+    "myq"
+    "mysensors"
+    "namecheapdns"
+    "neato"
+    "netatmo"
     "nexia"
+    "no_ip"
     "notify"
     "notion"
+    "nuki"
     "number"
+    "nws"
     "nx584"
     "omnilogic"
+    "onboarding"
     "ondilo_ico"
+    "openalpr_cloud"
+    "openalpr_local"
     "openerz"
+    "openhardwaremonitor"
+    "opentherm_gw"
+    "openuv"
+    "openweathermap"
+    "opnsense"
+    "ovo_energy"
+    "owntracks"
     "ozw"
     "panel_custom"
     "panel_iframe"
     "persistent_notification"
     "person"
+    "philips_js"
+    "pi_hole"
+    "picnic"
+    "ping"
     "plaato"
+    "plant"
+    "plex"
+    "plugwise"
+    "poolsense"
+    "profiler"
     "prometheus"
     "proximity"
     "push"
+    "pushbullet"
+    "pvpc_hourly_pricing"
     "python_script"
+    "rachio"
+    "radarr"
+    "rainmachine"
     "random"
+    "recollect_waste"
     "recorder"
+    "reddit"
+    "remote"
     "rest"
     "rest_command"
+    "ring"
+    "risco"
     "rituals_perfume_genie"
     "rmvtransport"
     "roku"
+    "roomba"
+    "roon"
     "rss_feed_template"
     "ruckus_unleashed"
     "safe_mode"
+    "samsungtv"
     "scene"
     "screenlogic"
     "script"
     "search"
+    "season"
+    "sensor"
+    "sentry"
+    "sharkiq"
     "shell_command"
+    "shelly"
     "shopping_list"
+    "sigfox"
+    "sighthound"
     "simplisafe"
     "simulated"
+    "slack"
     "sleepiq"
     "sma"
-    "smhi"
-    "sensor"
-    "slack"
+    "smappee"
     "smartthings"
     "smarttub"
+    "smhi"
     "smtp"
-    "smappee"
+    "snips"
     "solaredge"
+    "soma"
+    "somfy"
     "sonos"
+    "soundtouch"
+    "spaceapi"
+    "speedtestdotnet"
     "spotify"
     "sql"
+    "squeezebox"
     "ssdp"
+    "startca"
+    "statistics"
+    "statsd"
     "stream"
+    "stt"
     "subaru"
     "sun"
+    "surepetcare"
     "switch"
+    "switcher_kis"
     "system_health"
     "system_log"
+    "tado"
     "tag"
     "tasmota"
     "tcp"
+    "telegram"
+    "tellduslive"
     "template"
+    "tesla"
     "threshold"
+    "tile"
     "time_date"
     "timer"
     "tod"
+    "tomato"
+    "toon"
+    "tplink"
     "trace"
+    "transmission"
+    "trend"
     "tts"
+    "tuya"
+    "twentemilieu"
+    "twilio"
+    "twinkly"
+    "twitch"
+    "uk_transport"
+    "unifi"
+    "unifi_direct"
     "universal"
     "updater"
     "upnp"
     "uptime"
+    "usgs_earthquakes_feed"
+    "utility_meter"
+    "uvc"
     "vacuum"
+    "velbus"
+    "vera"
     "verisure"
+    "version"
+    "vesync"
+    "vizio"
+    "voicerss"
+    "volumio"
+    "vultr"
+    "wake_on_lan"
+    "water_heater"
+    "waze_travel_time"
     "weather"
     "webhook"
+    "webostv"
     "websocket_api"
     "wemo"
+    "wiffi"
+    "wilight"
     "wled"
     "workday"
     "worldclock"
+    "wsdot"
+    "wunderground"
+    "xiaomi"
+    "xiaomi_aqara"
+    "xiaomi_miio"
+    "yamaha"
+    "yandex_transport"
+    "yandextts"
     "yeelight"
     "zeroconf"
+    "zerproc"
     "zha"
+    "zodiac"
     "zone"
     "zwave"
     "zwave_js"
+  ] ++ lib.optionals (builtins.any (s: s == stdenv.hostPlatform.system) debugpy.meta.platforms) [
+    "debugpy"
   ];
 
   pytestFlagsArray = [
-    # limit amout of runners to reduce race conditions
-    "-n auto"
+    # parallelize test run
+    "--numprocesses auto"
+    # assign tests grouped by file to workers
+    "--dist loadfile"
     # retry racy tests that end in "RuntimeError: Event loop is closed"
     "--reruns 3"
     "--only-rerun RuntimeError"
-    # assign tests grouped by file to workers
-    "--dist loadfile"
-    # tests are located in tests/
-    "tests"
+    # enable full variable printing on error
+    "--showlocals"
     # screenlogic/test_config_flow.py: Tries to send out UDP broadcasts
     "--deselect tests/components/screenlogic/test_config_flow.py::test_form_cannot_connect"
+    # asuswrt/test_config_flow.py: Sandbox network limitations, fails with unexpected error
+    "--deselect tests/components/asuswrt/test_config_flow.py::test_on_connect_failed"
+    # shelly/test_config_flow.py: Tries to join multicast group
+    "--deselect tests/components/shelly/test_config_flow.py::test_form"
+    "--deselect tests/components/shelly/test_config_flow.py::test_title_without_name"
+    "--deselect tests/components/shelly/test_config_flow.py::test_form_auth"
+    "--deselect tests/components/shelly/test_config_flow.py::test_form_errors_test_connection"
+    "--deselect tests/components/shelly/test_config_flow.py::test_user_setup_ignored_device"
+    "--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
+    "--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
+    "--deselect tests/components/shelly/test_config_flow.py::test_form_auth_errors_test_connection"
+    "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf"
+    "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device"
+    "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
+    "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_sleeping_device_error"
+    "--deselect tests/components/shelly/test_config_flow.py::test_zeroconf_require_auth"
+    # prometheus/test_init.py: Spurious AssertionError regarding humidifier_target_humidity_percent metric
+    "--deselect tests/components/prometheus/test_init.py::test_view"
+    # tests are located in tests/
+    "tests"
     # dynamically add packages required for component tests
   ] ++ map (component: "tests/components/" + component) componentTests;
 
@@ -451,6 +707,13 @@ in with py.pkgs; buildPythonApplication rec {
     "test_fetching_url_with_verify_ssl"
     # util/test_package.py: AssertionError on package.is_installed('homeassistant>=999.999.999')
     "test_check_package_version_does_not_match"
+    # homeassistant/util/thread.py:51: SystemError
+    "test_executor_shutdown_can_interrupt_threads"
+    # {'theme_color': '#03A9F4'} != {'theme_color': 'blue'}
+    "test_webhook_handle_get_config"
+    # onboarding tests rpi_power component, for which we are lacking rpi_bad_power library
+    "test_onboarding_core_sets_up_rpi_power"
+    "test_onboarding_core_no_rpi_power"
   ];
 
   preCheck = ''
@@ -459,6 +722,9 @@ in with py.pkgs; buildPythonApplication rec {
     # the tests require the existance of a media dir
     mkdir /build/media
 
+    # put ping binary into PATH, e.g. for wake_on_lan tests
+    export PATH=${inetutils}/bin:$PATH
+
     # error out when component test directory is missing, otherwise hidden by xdist execution :(
     for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do
       test -d "tests/components/$component" || {
diff --git a/nixpkgs/pkgs/servers/home-assistant/frontend.nix b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
index 83af5b85c87c..bd490654420b 100644
--- a/nixpkgs/pkgs/servers/home-assistant/frontend.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
@@ -4,11 +4,11 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20210407.3";
+  version = "20210504.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ucewS193kbvlk4Q+5IEYT6sfJ/H006uy0iIi8UHOzPo=";
+    sha256 = "sha256-rNdqflWT8bmGHtAGGfq4xVxDcnK+EZU9qejRWQPJmUI=";
   };
 
   # there is nothing to strip in this package
diff --git a/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix b/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
index 46e1d7643d52..3fff2ac9fceb 100644
--- a/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, perl, zlib, apr, aprutil, pcre, libiconv, lynx
+, nixosTests
 , proxySupport ? true
 , sslSupport ? true, openssl
 , http2Support ? true, nghttp2
@@ -16,12 +17,12 @@ assert ldapSupport -> aprutil.ldapSupport && openldap != null;
 assert http2Support -> nghttp2 != null;
 
 stdenv.mkDerivation rec {
-  version = "2.4.46";
+  version = "2.4.47";
   pname = "apache-httpd";
 
   src = fetchurl {
     url = "mirror://apache/httpd/httpd-${version}.tar.bz2";
-    sha256 = "1sj1rwgbcjgkzac3ybjy7j68c9b3dv3ap71m48mrjhf6w7vds3kl";
+    sha256 = "sha256-I9AG28jleBFqETj6RX7qgkBIRY6JyECHIZ8DcogMA8o=";
   };
 
   # FIXME: -dev depends on -doc
@@ -85,6 +86,9 @@ stdenv.mkDerivation rec {
 
   passthru = {
     inherit apr aprutil sslSupport proxySupport ldapSupport luaSupport lua5;
+    tests = {
+      acme-integration = nixosTests.acme;
+    };
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
index da1b4e456b76..a0a6235ace50 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, fetchpatch, pkg-config, apacheHttpd, apr, avahi }:
 
 stdenv.mkDerivation rec {
-  name = "mod_dnssd-0.6";
+  pname = "mod_dnssd";
+  version = "0.6";
 
   src = fetchurl {
-    url = "http://0pointer.de/lennart/projects/mod_dnssd/${name}.tar.gz";
+    url = "http://0pointer.de/lennart/projects/mod_dnssd/${pname}-${version}.tar.gz";
     sha256 = "2cd171d76eba398f03c1d5bcc468a1756f4801cd8ed5bd065086e4374997c5aa";
   };
 
@@ -28,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "Provide Zeroconf support via DNS-SD using Avahi";
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ lethalman ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix
index 3d9d4b21c409..1b8ef94fae95 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv, fetchurl, apacheHttpd, python2 }:
+{ lib, stdenv, fetchurl, apacheHttpd, python2, libintl }:
 
 stdenv.mkDerivation rec {
-  name = "mod_python-3.5.0";
+  pname = "mod_python";
+  version = "3.5.0";
 
   src = fetchurl {
-    url = "http://dist.modpython.org/dist/${name}.tgz";
+    url = "http://dist.modpython.org/dist/${pname}-${version}.tgz";
     sha256 = "146apll3yfqk05s8fkf4acmxzqncl08bgn4rv0c1rd4qxmc91w0f";
   };
 
@@ -24,7 +25,8 @@ stdenv.mkDerivation rec {
 
   passthru = { inherit apacheHttpd; };
 
-  buildInputs = [ apacheHttpd python2 ];
+  buildInputs = [ apacheHttpd python2 ]
+    ++ lib.optional stdenv.isDarwin libintl;
 
   meta = {
     homepage = "http://modpython.org/";
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix
index bea94a888597..20879d4aaf21 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/tomcat-connectors/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, apacheHttpd, jdk }:
 
 stdenv.mkDerivation rec {
-  name = "tomcat-connectors-1.2.48";
+  pname = "tomcat-connectors";
+  version = "1.2.48";
 
   src = fetchurl {
-    url = "mirror://apache/tomcat/tomcat-connectors/jk/${name}-src.tar.gz";
+    url = "mirror://apache/tomcat/tomcat-connectors/jk/${pname}-${version}-src.tar.gz";
     sha256 = "15wfj1mvad15j1fqw67qbpbpwrcz3rb0zdhrq6z2sax1l05kc6yb";
   };
 
diff --git a/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix b/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
index c79a9fe3fd27..9e40bb648ea5 100644
--- a/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
+++ b/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "apt-cacher-ng";
-  version = "3.6.1";
+  version = "3.6.3";
 
   src = fetchurl {
     url = "http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_${version}.orig.tar.xz";
-    sha256 = "sha256-avyjp4KH7l6OZxnMVDv1U/MIWcadqyPPtnLYzEYkqlA=";
+    sha256 = "sha256-P4ArWpxjOjBi9EiDp/ord17GfUOFwpiTKGvSEuZljGA=";
   };
 
   nativeBuildInputs = [ cmake doxygen pkg-config ];
diff --git a/nixpkgs/pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch b/nixpkgs/pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch
new file mode 100644
index 000000000000..1d0d716290dd
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch
@@ -0,0 +1,12 @@
+diff --git a/libexec/httpd/bozohttpd.c b/libexec/httpd/bozohttpd.c
+index 67083b2c6782..273cb5f5a42b 100644
+--- a/libexec/httpd/bozohttpd.c
++++ b/libexec/httpd/bozohttpd.c
+@@ -138,6 +138,7 @@
+ #include <grp.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <strings.h>
+ #include <string.h>
+ #include <syslog.h>
diff --git a/nixpkgs/pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch b/nixpkgs/pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch
new file mode 100644
index 000000000000..9a01a4adce7f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch
@@ -0,0 +1,88 @@
+diff --git a/libexec/httpd/auth-bozo.c b/libexec/httpd/auth-bozo.c
+index a2f2ee4304c1..c9eefe3313dd 100644
+--- a/libexec/httpd/auth-bozo.c
++++ b/libexec/httpd/auth-bozo.c
+@@ -54,7 +54,7 @@ bozo_auth_check(bozo_httpreq_t *request, const char *file)
+ 	bozohttpd_t *httpd = request->hr_httpd;
+ 	struct stat sb;
+ 	char dir[MAXPATHLEN], authfile[MAXPATHLEN], *basename;
+-	char user[BUFSIZ], *pass;
++	char user[BOZO_MINBUFSIZE], *pass;
+ 	FILE *fp;
+ 	int len;
+ 
+@@ -144,7 +144,7 @@ bozo_auth_check_headers(bozo_httpreq_t *request, char *val, char *str,
+ 
+ 	if (strcasecmp(val, "authorization") == 0 &&
+ 	    strncasecmp(str, "Basic ", 6) == 0) {
+-		char	authbuf[BUFSIZ];
++		char	authbuf[BOZO_MINBUFSIZE];
+ 		char	*pass = NULL;
+ 		ssize_t	alen;
+ 
+diff --git a/libexec/httpd/bozohttpd.c b/libexec/httpd/bozohttpd.c
+index 273cb5f5a42b..f619567ba822 100644
+--- a/libexec/httpd/bozohttpd.c
++++ b/libexec/httpd/bozohttpd.c
+@@ -2275,7 +2275,7 @@ bozo_http_error(bozohttpd_t *httpd, int code, bozo_httpreq_t *request,
+ 		}
+ #endif /* !NO_USER_SUPPORT */
+ 
+-		size = snprintf(httpd->errorbuf, BUFSIZ,
++		size = snprintf(httpd->errorbuf, BOZO_MINBUFSIZE,
+ 		    "<html><head><title>%s</title></head>\n"
+ 		    "<body><h1>%s</h1>\n"
+ 		    "%s%s: <pre>%s</pre>\n"
+@@ -2285,10 +2285,10 @@ bozo_http_error(bozohttpd_t *httpd, int code, bozo_httpreq_t *request,
+ 		    user ? user : "", file,
+ 		    reason, hostname, portbuf, hostname, portbuf);
+ 		free(user);
+-		if (size >= (int)BUFSIZ) {
++		if (size >= (int)BOZO_MINBUFSIZE) {
+ 			bozowarn(httpd,
+ 				"bozo_http_error buffer too small, truncated");
+-			size = (int)BUFSIZ;
++			size = (int)BOZO_MINBUFSIZE;
+ 		}
+ 
+ 		if (file_alloc)
+@@ -2515,7 +2515,7 @@ bozo_init_httpd(bozohttpd_t *httpd)
+ 	httpd->mmapsz = BOZO_MMAPSZ;
+ 
+ 	/* error buffer for bozo_http_error() */
+-	if ((httpd->errorbuf = malloc(BUFSIZ)) == NULL) {
++	if ((httpd->errorbuf = malloc(BOZO_MINBUFSIZE)) == NULL) {
+ 		fprintf(stderr,
+ 			"bozohttpd: memory_allocation failure\n");
+ 		return 0;
+diff --git a/libexec/httpd/bozohttpd.h b/libexec/httpd/bozohttpd.h
+index c83bd112d9d7..7b19494cf5ad 100644
+--- a/libexec/httpd/bozohttpd.h
++++ b/libexec/httpd/bozohttpd.h
+@@ -227,6 +227,8 @@ typedef struct bozoprefs_t {
+ /* only allow this many total headers bytes */
+ #define BOZO_HEADERS_MAX_SIZE (16 * 1024)
+ 
++#define BOZO_MINBUFSIZE (4 * 1024)
++
+ /* debug flags */
+ #define DEBUG_NORMAL	1
+ #define DEBUG_FAT	2
+diff --git a/libexec/httpd/testsuite/t10.out b/libexec/httpd/testsuite/t10.out
+index cf410110627c..b3ab88f94fb9 100644
+--- a/libexec/httpd/testsuite/t10.out
++++ b/libexec/httpd/testsuite/t10.out
+@@ -1,8 +1,8 @@
+ HTTP/1.0 404 Not Found

+ Content-Type: text/html

+-Content-Length: 1024

+-Server: bozohttpd/20140708

++Content-Length: 4096

++Server: bozohttpd/20210403

+ 

+ <html><head><title>404 Not Found</title></head>
+ <body><h1>404 Not Found</h1>
+-/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+\ No newline at end of file
++/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+\ No newline at end of file
diff --git a/nixpkgs/pkgs/servers/http/bozohttpd/default.nix b/nixpkgs/pkgs/servers/http/bozohttpd/default.nix
new file mode 100644
index 000000000000..1574a953b174
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/bozohttpd/default.nix
@@ -0,0 +1,95 @@
+{ lib
+, stdenv
+, fetchurl
+, bmake
+, groff
+, inetutils
+, wget
+, openssl
+, minimal ? false
+, userSupport ? !minimal
+, cgiSupport ? !minimal
+, dirIndexSupport ? !minimal
+, dynamicContentSupport ? !minimal
+, sslSupport ? !minimal
+, luaSupport ? !minimal
+, lua
+, htpasswdSupport ? !minimal
+}:
+
+let inherit (lib) optional optionals;
+in
+stdenv.mkDerivation rec {
+  pname = "bozohttpd";
+  version = "20210227";
+
+  # bozohttpd is developed in-tree in pkgsrc, canonical hashes can be found at:
+  # http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/bozohttpd/distinfo
+  src = fetchurl {
+    url = "http://www.eterna.com.au/${pname}/${pname}-${version}.tar.bz2";
+    sha512 = "b838498626ffb7f7e84f31611e0e99aaa3af64bd9376e1a13ec16313c182eebfd9ea2c2d03904497239af723bf34a3d2202dac1f2d3e55f9fd076f6d45ccfa33";
+  };
+
+  # backport two unreleased commits to fix builds on non-netbsd platforms.
+  patches = [
+    # add missing `#include <stdint.h>`
+    # https://freshbsd.org/netbsd/src/commit/qMGNoXfgeieZBVRC
+    ./0001-include-stdint.h.patch
+
+    # BUFSIZ is not guaranteed to be large enough
+    # https://freshbsd.org/netbsd/src/commit/A4ueIHIp3JgjNVRC
+    ./0002-dont-use-host-BUFSIZ.patch
+  ];
+  patchFlags = [ "-p3" ];
+
+  buildInputs = [ openssl ] ++ optional (luaSupport) lua;
+  nativeBuildInputs = [ bmake groff ];
+
+  COPTS = [
+    "-D_DEFAULT_SOURCE"
+    "-D_GNU_SOURCE"
+
+    # ensure that we can serve >2GB files even on 32-bit systems.
+    "-D_LARGEFILE_SOURCE"
+    "-D_FILE_OFFSET_BITS=64"
+
+    # unpackaged dependency: https://man.netbsd.org/blocklist.3
+    "-DNO_BLOCKLIST_SUPPORT"
+  ]
+  ++ optional (!userSupport) "-DNO_USER_SUPPORT"
+  ++ optional (!dirIndexSupport) "-DNO_DIRINDEX_SUPPORT"
+  ++ optional (!dynamicContentSupport) "-DNO_DYNAMIC_CONTENT"
+  ++ optional (!luaSupport) "-DNO_LUA_SUPPORT"
+  ++ optional (!sslSupport) "-DNO_SSL_SUPPORT"
+  ++ optional (!cgiSupport) "-DNO_CGIBIN_SUPPORT"
+  ++ optional (htpasswdSupport) "-DDO_HTPASSWD";
+
+  _LDADD = [ "-lm" ]
+    ++ optional (stdenv.hostPlatform.libc != "libSystem") "-lcrypt"
+    ++ optional (luaSupport) "-llua"
+    ++ optionals (sslSupport) [ "-lssl" "-lcrypto" ];
+  makeFlags = [ "LDADD=$(_LDADD)" ];
+
+  doCheck = true;
+  checkInputs = [ inetutils wget ];
+  checkFlags = optional (!cgiSupport) "CGITESTS=";
+
+  meta = with lib; {
+    description = "Bozotic HTTP server; small and secure";
+    longDescription = ''
+      bozohttpd is a small and secure HTTP version 1.1 server. Its main
+      feature is the lack of features, reducing the code size and improving
+      verifiability.
+
+      It supports CGI/1.1, HTTP/1.1, HTTP/1.0, HTTP/0.9, ~user translations,
+      virtual hosting support, as well as multiple IP-based servers on a
+      single machine. It is capable of servicing pages via the IPv6 protocol.
+      It has SSL support. It has no configuration file by design.
+    '';
+    homepage = "http://www.eterna.com.au/bozohttpd/";
+    changelog = "http://www.eterna.com.au/bozohttpd/CHANGES";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.embr ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix b/nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix
deleted file mode 100644
index 2881a3dc196b..000000000000
--- a/nixpkgs/pkgs/servers/http/couchdb/2.0.0.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ lib, stdenv, fetchurl, erlang, icu, openssl, spidermonkey_1_8_5
-, coreutils, bash, makeWrapper, python3 }:
-
-stdenv.mkDerivation rec {
-  pname = "couchdb";
-  version = "2.3.1";
-
-
-  # when updating this, please consider bumping the OTP version
-  # in all-packages.nix
-  src = fetchurl {
-    url = "mirror://apache/couchdb/source/${version}/apache-${pname}-${version}.tar.gz";
-    sha256 = "0z926hjqyhxhyr65kqxwpmp80nyfqbig6d9dy8dqflpb87n8rss3";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ erlang icu openssl spidermonkey_1_8_5 (python3.withPackages(ps: with ps; [ requests ]))];
-
-  patches = [ ./jsapi.patch ];
-  postPatch = ''
-    substituteInPlace src/couch/rebar.config.script --replace '-DHAVE_CURL -I/usr/local/include' "-DHAVE_CURL -I/usr/local/include $NIX_CFLAGS_COMPILE"
-
-    patch bin/rebar <<EOF
-    1c1
-    < #!/usr/bin/env escript
-    ---
-    > #!${coreutils}/bin/env escript
-    EOF
-
-  '';
-
-  # Configure a username.  The build system would use "couchdb" as
-  # default if none is provided.  Note that it is unclear where this
-  # username is actually used in the build, as any choice seems to be
-  # working.
-  configurePhase = ''
-    ./configure -u nobody
-  '';
-
-  buildPhase = ''
-    make release
-  '';
-
-  installPhase = ''
-    mkdir -p $out
-    cp -r rel/couchdb/* $out
-    wrapProgram $out/bin/couchdb --suffix PATH : ${bash}/bin
-  '';
-
-  meta = with lib; {
-    description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
-    homepage = "http://couchdb.apache.org";
-    license = licenses.asl20;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/servers/http/couchdb/default.nix b/nixpkgs/pkgs/servers/http/couchdb/default.nix
deleted file mode 100644
index 45023e800afb..000000000000
--- a/nixpkgs/pkgs/servers/http/couchdb/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchurl, erlang, icu, openssl, spidermonkey_1_8_5, curl, help2man
-, sphinx, which, file, pkg-config, getopt }:
-
-stdenv.mkDerivation rec {
-  pname = "couchdb";
-  version = "1.7.1";
-
-  src = fetchurl {
-    url = "mirror://apache/couchdb/source/${version}/apache-${pname}-${version}.tar.gz";
-    sha256 = "1b9cbdrmh1i71mrwvhm17v4cf7lckpil1vvq7lpmxyn6zfk0l84i";
-  };
-
-  nativeBuildInputs = [ help2man which file pkg-config sphinx ];
-  buildInputs = [ erlang icu openssl spidermonkey_1_8_5 curl ];
-
-  postInstall = ''
-    substituteInPlace $out/bin/couchdb --replace getopt "${getopt}/bin/getopt"
-  '';
-
-  /*
-  Versions of SpiderMonkey after the js185-1.0.0 release remove the optional
-  enforcement of preventing anonymous functions in a statement context. This
-  will most likely break your existing JavaScript code as well as render all
-  example code invalid.
-
-  If you wish to ignore this error pass --enable-js-trunk to ./configure.
-  */
-  configureFlags = [
-    "--enable-js-trunk"
-  ];
-
-  meta = with lib; {
-    description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
-    homepage = "http://couchdb.apache.org";
-    license = licenses.asl20;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/servers/http/couchdb/jsapi.patch b/nixpkgs/pkgs/servers/http/couchdb/jsapi.patch
deleted file mode 100644
index bb7d4ca610c7..000000000000
--- a/nixpkgs/pkgs/servers/http/couchdb/jsapi.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -ru couch_js/http.c couch_js-patched/http.c
---- apache-couchdb-2.0.0/src/couch/priv/couch_js/http.c	2016-09-12 11:28:51.000000000 +0200
-+++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/http.c	2017-02-10 10:52:33.025854045 +0100
-@@ -15,7 +15,7 @@
- #include <string.h>
- #include <sys/types.h>
- #include <sys/stat.h>
--#include <jsapi.h>
-+#include <js/jsapi.h>
- #include "config.h"
- #include "utf8.h"
- #include "util.h"
-diff -ru couch_js/main.c couch_js-patched/main.c
---- apache-couchdb-2.0.0/src/couch/priv/couch_js/main.c	2016-09-12 11:28:51.000000000 +0200
-+++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/main.c	2017-02-10 10:52:33.001854154 +0100
-@@ -20,7 +20,7 @@
- #include <unistd.h>
- #endif
- 
--#include <jsapi.h>
-+#include <js/jsapi.h>
- #include "config.h"
- #include "http.h"
- #include "utf8.h"
-diff -ru couch_js/utf8.c couch_js-patched/utf8.c
---- apache-couchdb-2.0.0/src/couch/priv/couch_js/utf8.c	2016-09-12 11:28:51.000000000 +0200
-+++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/utf8.c	2017-02-10 10:52:33.009854117 +0100
-@@ -10,7 +10,7 @@
- // License for the specific language governing permissions and limitations under
- // the License.
- 
--#include <jsapi.h>
-+#include <js/jsapi.h>
- #include "config.h"
- 
- static int
-diff -ru couch_js/util.c couch_js-patched/util.c
---- apache-couchdb-2.0.0/src/couch/priv/couch_js/util.c	2016-09-12 11:28:51.000000000 +0200
-+++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/util.c	2017-02-10 10:52:33.017854081 +0100
-@@ -13,7 +13,7 @@
- #include <stdlib.h>
- #include <string.h>
- 
--#include <jsapi.h>
-+#include <js/jsapi.h>
- 
- #include "help.h"
- #include "util.h"
-diff -ru couch_js/util.h couch_js-patched/util.h
---- apache-couchdb-2.0.0/src/couch/priv/couch_js/util.h	2016-09-12 11:28:51.000000000 +0200
-+++ apache-couchdb-2.0.0-patched/src/couch/priv/couch_js/util.h	2017-02-10 10:52:32.988854212 +0100
-@@ -13,7 +13,7 @@
- #ifndef COUCHJS_UTIL_H
- #define COUCHJS_UTIL_H
- 
--#include <jsapi.h>
-+#include <js/jsapi.h>
- 
- typedef struct {
-     int          no_eval;
diff --git a/nixpkgs/pkgs/servers/http/envoy/default.nix b/nixpkgs/pkgs/servers/http/envoy/default.nix
index 57c0e22d8aff..d26782560a47 100644
--- a/nixpkgs/pkgs/servers/http/envoy/default.nix
+++ b/nixpkgs/pkgs/servers/http/envoy/default.nix
@@ -3,7 +3,9 @@
 , fetchFromGitHub
 , stdenv
 , cmake
+, gn
 , go
+, jdk
 , ninja
 , python3
 , nixosTests
@@ -15,8 +17,8 @@ let
     # However, the version string is more useful for end-users.
     # These are contained in a attrset of their own to make it obvious that
     # people should update both.
-    version = "1.16.2";
-    commit = "e98e41a8e168af7acae8079fc0cd68155f699aa3";
+    version = "1.17.3";
+    commit = "46bf743b97d0d3f01ff437b2f10cc0bd9cdfe6e4";
   };
 in
 buildBazelPackage rec {
@@ -26,7 +28,7 @@ buildBazelPackage rec {
     owner = "envoyproxy";
     repo = "envoy";
     rev = srcVer.commit;
-    hash = "sha256-aWVMRKFCZzf9/96NRPCP4jiW38DJhXyi0gEqW7uIpnQ=";
+    hash = "sha256:09zzr4h3zjsb2rkxrvlazpx0jy33yn9j65ilxiqbvv0ckaralqfc";
 
     extraPostFetch = ''
       chmod -R +w $out
@@ -36,29 +38,29 @@ buildBazelPackage rec {
     '';
   };
 
-  patches = [
-    # Quiche needs to be updated to compile under newer GCC.
-    # This is a manual backport of https://github.com/envoyproxy/envoy/pull/13949.
-    ./0001-quiche-update-QUICHE-tar-13949.patch
-
-    # upb needs to be updated to compile under newer GCC.
-    # This is a manual backport of https://github.com/protocolbuffers/upb/commit/9bd23dab4240b015321a53c45b3c9e4847fbf020.
-    ./0002-Add-upb-patch-to-make-it-compile-under-GCC10.patch
-  ];
   postPatch = ''
     sed -i 's,#!/usr/bin/env python3,#!${python3}/bin/python,' bazel/foreign_cc/luajit.patch
+    sed -i '/javabase=/d' .bazelrc
+    # Patch paths to build tools, and disable gold because it just segfaults.
+    substituteInPlace bazel/external/wee8.genrule_cmd \
+      --replace '"''$$gn"' '"''$$(command -v gn)"' \
+      --replace '"''$$ninja"' '"''$$(command -v ninja)"' \
+      --replace '"''$$WEE8_BUILD_ARGS"' '"''$$WEE8_BUILD_ARGS use_gold=false"'
   '';
 
   nativeBuildInputs = [
     cmake
     python3
+    gn
     go
+    jdk
     ninja
   ];
 
   fetchAttrs = {
-    sha256 = "0q72c2zrl5vc8afkhkwyalb2h0mxn3133d4b9z4gag0p95wbwgc0";
+    sha256 = "sha256:1cy2b73x8jzczq9z9c1kl7zrg5iasvsakb50zxn4mswpmajkbj5h";
     dontUseCmakeConfigure = true;
+    dontUseGnConfigure = true;
     preInstall = ''
       # Strip out the path to the build location (by deleting the comment line).
       find $bazelOut/external -name requirements.bzl | while read requirements; do
@@ -78,10 +80,14 @@ buildBazelPackage rec {
       >$bazelOut/external/config_validation_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl
       >$bazelOut/external/protodoc_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl
       >$bazelOut/external/thrift_pip3/thrift-0.13.0-cp38-cp38-linux_x86_64.whl
+
+      # Remove Unix timestamps from go cache.
+      rm -rf $bazelOut/external/bazel_gazelle_go_repository_cache/{gocache,pkg/mod/cache,pkg/sumdb}
     '';
   };
   buildAttrs = {
     dontUseCmakeConfigure = true;
+    dontUseGnConfigure = true;
     dontUseNinjaInstall = true;
     preConfigure = ''
       sed -i 's,#!/usr/bin/env bash,#!${stdenv.shell},' $bazelOut/external/rules_foreign_cc/tools/build_defs/framework.bzl
@@ -98,7 +104,6 @@ buildBazelPackage rec {
     '';
   };
 
-  fetchConfigured = true;
   removeRulesCC = false;
   removeLocalConfigCc = true;
   removeLocal = false;
diff --git a/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix b/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix
index 920a32999296..a26dd47e0243 100644
--- a/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix
+++ b/nixpkgs/pkgs/servers/http/gitlab-pages/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "1.35.0";
+  version = "1.39.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    sha256 = "sha256-5AkzbOutBXy59XvMwfyH6A8ETwjP2QokG/Rz31/nCpk=";
+    sha256 = "sha256-eyg2o/5k7/zagYjkYJOnJrHeoszbRkmdl7UgO+rmKyc=";
   };
 
-  vendorSha256 = "sha256-g8FDWpZmbZSkJAzoEiI8/JZLTTgG7uJ4sS35axaEXLY=";
+  vendorSha256 = "sha256-aedJ7vsv70aybjqBfUnSr4qhlFdY7jUUOSas3vXskpM=";
   subPackages = [ "." ];
-  doCheck = false; # Broken
 
   meta = with lib; {
     description = "Daemon used to serve static websites for GitLab users";
     homepage = "https://gitlab.com/gitlab-org/gitlab-pages";
+    changelog = "https://gitlab.com/gitlab-org/gitlab-pages/-/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ das_j ];
+    maintainers = with maintainers; [ ajs124 das_j ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/http/jboss/default.nix b/nixpkgs/pkgs/servers/http/jboss/default.nix
index fda57cb9a549..81ec4a6c6bb2 100644
--- a/nixpkgs/pkgs/servers/http/jboss/default.nix
+++ b/nixpkgs/pkgs/servers/http/jboss/default.nix
@@ -1,14 +1,13 @@
-{ lib, stdenv, fetchurl, unzip, jdk }:
+{ lib, stdenv, fetchurl, jdk }:
 
-stdenv.mkDerivation {
-  name = "jboss-as-7.1.1.Final";
+stdenv.mkDerivation rec {
+  pname = "jboss-as";
+  version = "7.1.1.Final";
   src = fetchurl {
-    url = "https://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.tar.gz";
+    url = "https://download.jboss.org/jbossas/${lib.versions.majorMinor version}/jboss-as-${version}/jboss-as-${version}.tar.gz";
     sha256 = "1bdjw0ib9qr498vpfbg8klqw6rl11vbz7vwn6gp1r5gpqkd3zzc8";
   };
 
-  nativeBuildInputs = [ unzip ];
-
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/http/jetty/default.nix b/nixpkgs/pkgs/servers/http/jetty/default.nix
index 1a43f2592823..d9830df4f454 100644
--- a/nixpkgs/pkgs/servers/http/jetty/default.nix
+++ b/nixpkgs/pkgs/servers/http/jetty/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jetty";
-  version = "9.4.37.v20210219";
+  version = "9.4.41.v20210516";
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz";
-    sha256 = "sha256-Jyg0cQBnwYtcVJnr2uWwE/9yC3wq+CLTTGKtv3BsZs8=";
+    sha256 = "sha256-hFQC1UiqZbbvyMf1FC3eqvVga3QdPWh0fbotatkVHBI=";
   };
 
   dontBuild = true;
@@ -15,10 +15,11 @@ stdenv.mkDerivation rec {
     mv etc lib modules start.ini start.jar $out
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A Web server and javax.servlet container";
     homepage = "https://www.eclipse.org/jetty/";
-    platforms = lib.platforms.all;
-    license = [ lib.licenses.asl20 lib.licenses.epl10 ];
+    platforms = platforms.all;
+    license = with licenses; [ asl20 epl10 ];
+    maintainers = with maintainers; [ emmanuelrosa ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/http/lighttpd/default.nix b/nixpkgs/pkgs/servers/http/lighttpd/default.nix
index be631dd341e9..98e378b2eeda 100644
--- a/nixpkgs/pkgs/servers/http/lighttpd/default.nix
+++ b/nixpkgs/pkgs/servers/http/lighttpd/default.nix
@@ -15,10 +15,11 @@ assert enableWebDAV -> libuuid != null;
 assert enableExtendedAttrs -> attr != null;
 
 stdenv.mkDerivation rec {
-  name = "lighttpd-1.4.59";
+  pname = "lighttpd";
+  version = "1.4.59";
 
   src = fetchurl {
-    url = "https://download.lighttpd.net/lighttpd/releases-1.4.x/${name}.tar.xz";
+    url = "https://download.lighttpd.net/lighttpd/releases-${lib.versions.majorMinor version}.x/${pname}-${version}.tar.xz";
     sha256 = "sha256-+5U9snPa7wjttuICVWyuij0H7tYIHJa9mQPblX0QhNU=";
   };
 
diff --git a/nixpkgs/pkgs/servers/http/mini-httpd/default.nix b/nixpkgs/pkgs/servers/http/mini-httpd/default.nix
index 113ccf10b8a3..81a8228b0270 100644
--- a/nixpkgs/pkgs/servers/http/mini-httpd/default.nix
+++ b/nixpkgs/pkgs/servers/http/mini-httpd/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, boost }:
 
 stdenv.mkDerivation rec {
-  name = "mini-httpd-1.7";
+  pname = "mini-httpd";
+  version = "1.7";
 
   src = fetchurl {
-    url = "https://download-mirror.savannah.gnu.org/releases/mini-httpd/${name}.tar.gz";
+    url = "https://download-mirror.savannah.gnu.org/releases/mini-httpd/${pname}-${version}.tar.gz";
     sha256 = "0jggmlaywjfbdljzv5hyiz49plnxh0har2bnc9dq4xmj1pmjgs49";
   };
 
diff --git a/nixpkgs/pkgs/servers/http/nginx/generic.nix b/nixpkgs/pkgs/servers/http/nginx/generic.nix
index 663193789a5b..e13c0b4e9223 100644
--- a/nixpkgs/pkgs/servers/http/nginx/generic.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/generic.nix
@@ -145,6 +145,7 @@ stdenv.mkDerivation {
     tests = {
       inherit (nixosTests) nginx nginx-auth nginx-etag nginx-pubhtml nginx-sandbox nginx-sso;
       variants = lib.recurseIntoAttrs nixosTests.nginx-variants;
+      acme-integration = nixosTests.acme;
     };
   };
 
diff --git a/nixpkgs/pkgs/servers/http/nginx/mainline.nix b/nixpkgs/pkgs/servers/http/nginx/mainline.nix
index 0409f6a26ea4..5b87b499964e 100644
--- a/nixpkgs/pkgs/servers/http/nginx/mainline.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.19.9";
-  sha256 = "0hfqqyfgqa6wqazmb3d434nb3r5p8szfisa0m6nfh9lqdbqdyd9f";
+  version = "1.21.0";
+  sha256 = "0w87zhm5nfx88x9hj6drrvm5f3m02kzbjp39x1lsglrbmi5jl6gy";
 }
diff --git a/nixpkgs/pkgs/servers/http/nginx/quic.nix b/nixpkgs/pkgs/servers/http/nginx/quic.nix
index 062520a3d13e..38a4bd9cdf44 100644
--- a/nixpkgs/pkgs/servers/http/nginx/quic.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/quic.nix
@@ -1,10 +1,13 @@
-{ callPackage, fetchhg, boringssl, ... } @ args:
+{ callPackage
+, fetchhg
+, ...
+} @ args:
 
 callPackage ./generic.nix args {
   src = fetchhg {
     url = "https://hg.nginx.org/nginx-quic";
-    rev = "47a43b011dec"; # branch=quic
-    sha256 = "1d4d1v4zbnf5qlfl79pi7sficn1h7zm6kk7llm24yyhlsvssz10x";
+    rev = "12f18e0bca09"; # branch=quic
+    sha256 = "1lr6zlny26kamczgk8ddscmy5fp5mzxqcppwhjhvq1a029a0r4b7";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/servers/http/nginx/stable.nix b/nixpkgs/pkgs/servers/http/nginx/stable.nix
index c08615ef5125..bb554c500e27 100644
--- a/nixpkgs/pkgs/servers/http/nginx/stable.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/stable.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix args {
-  version = "1.18.0";
-  sha256 = "16azscl74ym1far0s0p6xsjin1k1cm4wk80i9x5d74dznmx3wdsc";
+  version = "1.20.1";
+  sha256 = "0jccnknx57yvbvx6qwwisa8rb5zm1wb54xnz0nm0phym6cay2qp4";
 }
diff --git a/nixpkgs/pkgs/servers/http/pomerium/default.nix b/nixpkgs/pkgs/servers/http/pomerium/default.nix
index 0605a12eca47..036e44ca621e 100644
--- a/nixpkgs/pkgs/servers/http/pomerium/default.nix
+++ b/nixpkgs/pkgs/servers/http/pomerium/default.nix
@@ -11,15 +11,15 @@ let
 in
 buildGoModule rec {
   pname = "pomerium";
-  version = "0.13.3";
+  version = "0.14.4";
   src = fetchFromGitHub {
     owner = "pomerium";
     repo = "pomerium";
     rev = "v${version}";
-    hash = "sha256-g0w1aIHvf2rJANvGWHeUxdnyCDsvy/PQ9Kp8nDdT/0w=";
+    hash = "sha256:097csr8f43cn0iq030ajvvpwnwcfmjxyyk6pcisdy937axlrzska";
   };
 
-  vendorSha256 = "sha256-grihU85OcGyf9/KKrv87xZonX5r+Z1oHQTf84Ya61fg=";
+  vendorSha256 = "sha256:0n45xvwjiqyh41dsm4z1rnkgkycf5wfmacm804hqnd5rz7xk2shf";
   subPackages = [
     "cmd/pomerium"
     "cmd/pomerium-cli"
diff --git a/nixpkgs/pkgs/servers/http/trafficserver/default.nix b/nixpkgs/pkgs/servers/http/trafficserver/default.nix
new file mode 100644
index 000000000000..4a7f9854d183
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/trafficserver/default.nix
@@ -0,0 +1,207 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, makeWrapper
+, nixosTests
+, pkg-config
+, file
+, linuxHeaders
+, openssl
+, pcre
+, perlPackages
+, python3
+, xz
+, zlib
+# recommended dependencies
+, withHwloc ? true
+, hwloc
+, withCurl ? true
+, curl
+, withCurses ? true
+, ncurses
+, withCap ? stdenv.isLinux
+, libcap
+, withUnwind ? stdenv.isLinux
+, libunwind
+# optional dependencies
+, withBrotli ? false
+, brotli
+, withCjose ? false
+, cjose
+, withGeoIP ? false
+, geoip
+, withHiredis ? false
+, hiredis
+, withImageMagick ? false
+, imagemagick
+, withJansson ? false
+, jansson
+, withKyotoCabinet ? false
+, kyotocabinet
+, withLuaJIT ? false
+, luajit
+, withMaxmindDB ? false
+, libmaxminddb
+# optional features
+, enableWCCP ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "trafficserver";
+  version = "9.0.1";
+
+  src = fetchurl {
+    url = "mirror://apache/trafficserver/trafficserver-${version}.tar.bz2";
+    sha256 = "1q164pvfmbqh3gzy3bqy96lwd0fdbhz78r06pd92p7rmkqwx005z";
+  };
+
+  patches = [
+    # Adds support for NixOS
+    # https://github.com/apache/trafficserver/pull/7697
+    (fetchpatch {
+      url = "https://github.com/apache/trafficserver/commit/19d3af481cf74c91fbf713fc9d2f8b138ed5fbaf.diff";
+      sha256 = "0z1ikgpp00rzrrcqh97931586yn9wbksgai9xlkcjd5cg8gq0150";
+    })
+
+    # Fixes a bug in tspush which pushes incorrect contents to cache
+    # https://github.com/apache/trafficserver/pull/7696
+    (fetchpatch {
+      url = "https://github.com/apache/trafficserver/commit/b08215272872f452787915cd3a8e0b0ea0b88385.diff";
+      sha256 = "0axk8x1xvd8wvpgcxgyqqg7kgxyxwfgwmisq3xnk1da0cqv9cx9f";
+    })
+  ];
+
+  # NOTE: The upstream README indicates that flex is needed for some features,
+  # but it actually seems to be unnecessary as of this commit[1]. The detection
+  # logic for bison and flex is still present in the build script[2], but no
+  # other code seems to depend on it. This situation is susceptible to change
+  # though, so it's a good idea to inspect the build scripts periodically.
+  #
+  # [1]: https://github.com/apache/trafficserver/pull/5617
+  # [2]: https://github.com/apache/trafficserver/blob/3fd2c60/configure.ac#L742-L788
+  nativeBuildInputs = [ makeWrapper pkg-config file python3 ]
+    ++ (with perlPackages; [ perl ExtUtilsMakeMaker ])
+    ++ lib.optionals stdenv.isLinux [ linuxHeaders ];
+
+  buildInputs = [
+    openssl
+    pcre
+    perlPackages.perl
+  ] ++ lib.optional withBrotli brotli
+  ++ lib.optional withCap libcap
+  ++ lib.optional withCjose cjose
+  ++ lib.optional withCurl curl
+  ++ lib.optional withGeoIP geoip
+  ++ lib.optional withHiredis hiredis
+  ++ lib.optional withHwloc hwloc
+  ++ lib.optional withImageMagick imagemagick
+  ++ lib.optional withJansson jansson
+  ++ lib.optional withKyotoCabinet kyotocabinet
+  ++ lib.optional withCurses ncurses
+  ++ lib.optional withLuaJIT luajit
+  ++ lib.optional withUnwind libunwind
+  ++ lib.optional withMaxmindDB libmaxminddb;
+
+  outputs = [ "out" "man" ];
+
+  postPatch = ''
+    patchShebangs \
+      iocore/aio/test_AIO.sample \
+      src/traffic_via/test_traffic_via \
+      src/traffic_logstats/tests \
+      tools/check-unused-dependencies
+
+    substituteInPlace configure --replace '/usr/bin/file' '${file}/bin/file'
+  '' + lib.optionalString stdenv.isLinux ''
+    substituteInPlace configure \
+      --replace '/usr/include/linux' '${linuxHeaders}/include/linux'
+  '' + lib.optionalString stdenv.isDarwin ''
+    # 'xcrun leaks' probably requires non-free XCode
+    substituteInPlace iocore/net/test_certlookup.cc \
+      --replace 'xcrun leaks' 'true'
+  '';
+
+  configureFlags = [
+    "--enable-layout=NixOS"
+    "--enable-experimental-plugins"
+    (lib.enableFeature enableWCCP "wccp")
+
+    # the configure script can't auto-locate the following from buildInputs
+    "--with-lzma=${xz.dev}"
+    "--with-zlib=${zlib.dev}"
+    (lib.withFeatureAs withHiredis "hiredis" hiredis)
+  ];
+
+  installFlags = [
+    "pkgsysconfdir=${placeholder "out"}/etc/trafficserver"
+
+    # replace runtime directories with an install-time placeholder directory
+    "pkgcachedir=${placeholder "out"}/.install-trafficserver"
+    "pkglocalstatedir=${placeholder "out"}/.install-trafficserver"
+    "pkglogdir=${placeholder "out"}/.install-trafficserver"
+    "pkgruntimedir=${placeholder "out"}/.install-trafficserver"
+  ];
+
+  postInstall = ''
+    substituteInPlace rc/trafficserver.service --replace "syslog.target" ""
+    install -Dm644 rc/trafficserver.service $out/lib/systemd/system/trafficserver.service
+
+    wrapProgram $out/bin/tspush \
+      --set PERL5LIB '${with perlPackages; makePerlPath [ URI ]}' \
+      --prefix PATH : "${lib.makeBinPath [ file ]}"
+
+    find "$out" -name '*.la' -delete
+
+    # ensure no files actually exist in this directory
+    rmdir $out/.install-trafficserver
+  '';
+
+  installCheckPhase = let
+    expected = ''
+      Via header is [uScMsEf p eC:t cCMp sF], Length is 22
+      Via Header Details:
+      Request headers received from client                   :simple request (not conditional)
+      Result of Traffic Server cache lookup for URL          :miss (a cache "MISS")
+      Response information received from origin server       :error in response
+      Result of document write-to-cache:                     :no cache write performed
+      Proxy operation result                                 :unknown
+      Error codes (if any)                                   :connection to server failed
+      Tunnel info                                            :no tunneling
+      Cache Type                                             :cache
+      Cache Lookup Result                                    :cache miss (url not in cache)
+      Parent proxy connection status                         :no parent proxy or unknown
+      Origin server connection status                        :connection open failed
+    '';
+  in ''
+    runHook preInstallCheck
+    diff -Naur <($out/bin/traffic_via '[uScMsEf p eC:t cCMp sF]') - <<EOF
+    ${lib.removeSuffix "\n" expected}
+    EOF
+    runHook postInstallCheck
+  '';
+
+  doCheck = true;
+  doInstallCheck = true;
+  enableParallelBuilding = true;
+
+  passthru.tests = { inherit (nixosTests) trafficserver; };
+
+  meta = with lib; {
+    homepage = "https://trafficserver.apache.org";
+    changelog = "https://raw.githubusercontent.com/apache/trafficserver/${version}/CHANGELOG-${version}";
+    description = "Fast, scalable, and extensible HTTP caching proxy server";
+    longDescription = ''
+      Apache Traffic Server is a high-performance web proxy cache that improves
+      network efficiency and performance by caching frequently-accessed
+      information at the edge of the network. This brings content physically
+      closer to end users, while enabling faster delivery and reduced bandwidth
+      use. Traffic Server is designed to improve content delivery for
+      enterprises, Internet service providers (ISPs), backbone providers, and
+      large intranets by maximizing existing and available bandwidth.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ midchildan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/http/unit/default.nix b/nixpkgs/pkgs/servers/http/unit/default.nix
index e6863479f54a..cb5fafd17cf7 100644
--- a/nixpkgs/pkgs/servers/http/unit/default.nix
+++ b/nixpkgs/pkgs/servers/http/unit/default.nix
@@ -2,8 +2,8 @@
 , pcre2
 , withPython2 ? false, python2
 , withPython3 ? true, python3, ncurses
-, withPHP73 ? false, php73
-, withPHP74 ? true, php74
+, withPHP74 ? false, php74
+, withPHP80 ? true, php80
 , withPerl530 ? false, perl530
 , withPerl532 ? true, perl532
 , withPerldevel ? false, perldevel
@@ -26,18 +26,18 @@ let
     fpmSupport = false;
   };
 
-  php73-unit = php73.override phpConfig;
   php74-unit = php74.override phpConfig;
+  php80-unit = php80.override phpConfig;
 
 in stdenv.mkDerivation rec {
-  version = "1.22.0";
+  version = "1.24.0";
   pname = "unit";
 
   src = fetchFromGitHub {
     owner = "nginx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-M5Q8sxI1nZi8+ixO1PHuQpQ81EwyLAsnBI5PTtm+bKA=";
+    sha256 = "0214dvwz31hxjxnqk3fkqhn2xznaqdrb96m5s2k8ll8rldmk1gd6";
   };
 
   nativeBuildInputs = [ which ];
@@ -45,8 +45,8 @@ in stdenv.mkDerivation rec {
   buildInputs = [ pcre2.dev ]
     ++ optional withPython2 python2
     ++ optionals withPython3 [ python3 ncurses ]
-    ++ optional withPHP73 php73-unit
     ++ optional withPHP74 php74-unit
+    ++ optional withPHP80 php80-unit
     ++ optional withPerl530 perl530
     ++ optional withPerl532 perl532
     ++ optional withPerldevel perldevel
@@ -64,14 +64,14 @@ in stdenv.mkDerivation rec {
     ++ optional withDebug   "--debug";
 
   # Optionally add the PHP derivations used so they can be addressed in the configs
-  usedPhp73 = optionals withPHP73 php73-unit;
   usedPhp74 = optionals withPHP74 php74-unit;
+  usedPhp80 = optionals withPHP80 php80-unit;
 
   postConfigure = ''
     ${optionalString withPython2    "./configure python --module=python2  --config=python2-config  --lib-path=${python2}/lib"}
     ${optionalString withPython3    "./configure python --module=python3  --config=python3-config  --lib-path=${python3}/lib"}
-    ${optionalString withPHP73      "./configure php    --module=php73    --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"}
     ${optionalString withPHP74      "./configure php    --module=php74    --config=${php74-unit.unwrapped.dev}/bin/php-config --lib-path=${php74-unit}/lib"}
+    ${optionalString withPHP80      "./configure php    --module=php80    --config=${php80-unit.unwrapped.dev}/bin/php-config --lib-path=${php80-unit}/lib"}
     ${optionalString withPerl530    "./configure perl   --module=perl530  --perl=${perl530}/bin/perl"}
     ${optionalString withPerl532    "./configure perl   --module=perl532  --perl=${perl532}/bin/perl"}
     ${optionalString withPerldevel  "./configure perl   --module=perldev  --perl=${perldevel}/bin/perl"}
diff --git a/nixpkgs/pkgs/servers/hylafaxplus/default.nix b/nixpkgs/pkgs/servers/hylafaxplus/default.nix
index fc75003f392c..4ce0d63f6bed 100644
--- a/nixpkgs/pkgs/servers/hylafaxplus/default.nix
+++ b/nixpkgs/pkgs/servers/hylafaxplus/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fakeroot
 , fetchurl
+, fetchpatch
 , libfaketime
 , substituteAll
 ## runtime dependencies
@@ -29,12 +30,12 @@
 
 let
 
-  name = "hylafaxplus-${version}";
+  pname = "hylafaxplus";
   version = "7.0.3";
   sha256 = "139iwcwrn9i5lragxi33ilzah72w59wg4midfjjgx5cly3ah0iy4";
 
   configSite = substituteAll {
-    name = "hylafaxplus-config.site";
+    name = "${pname}-config.site";
     src = ./config.site;
     config_maxgid = lib.optionalString (maxgid!=null) ''CONFIG_MAXGID=${builtins.toString maxgid}'';
     ghostscript_version = ghostscript.version;
@@ -43,7 +44,7 @@ let
   };
 
   postPatch = substituteAll {
-    name = "hylafaxplus-post-patch.sh";
+    name = "${pname}-post-patch.sh";
     src = ./post-patch.sh;
     inherit configSite;
     maxuid = lib.optionalString (maxuid!=null) (builtins.toString maxuid);
@@ -54,7 +55,7 @@ let
   };
 
   postInstall = substituteAll {
-    name = "hylafaxplus-post-install.sh";
+    name = "${pname}-post-install.sh";
     src = ./post-install.sh;
     inherit fakeroot libfaketime;
   };
@@ -62,11 +63,19 @@ let
 in
 
 stdenv.mkDerivation {
-  inherit name version;
+  inherit pname version;
   src = fetchurl {
     url = "mirror://sourceforge/hylafax/hylafax-${version}.tar.gz";
     inherit sha256;
   };
+  patches = [
+    # adjust configure check to work with libtiff > 4.1
+    (fetchpatch {
+      name = "libtiff-4.2.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/net-misc/hylafaxplus/files/hylafaxplus-7.0.2-tiff-4.2.patch?id=82e3eefd5447f36e5bb00068a54b91d8c891ccf6";
+      sha256 = "0hhf4wpgj842gz4nxq8s55vnzmciqkyjjaaxdpqawns2746vx0sw";
+    })
+  ];
   # Note that `configure` (and maybe `faxsetup`) are looking
   # for a couple of standard binaries in the `PATH` and
   # hardcode their absolute paths in the new package.
diff --git a/nixpkgs/pkgs/servers/hylafaxplus/post-patch.sh b/nixpkgs/pkgs/servers/hylafaxplus/post-patch.sh
index 6ec5937147e2..43ee91d2f62c 100644
--- a/nixpkgs/pkgs/servers/hylafaxplus/post-patch.sh
+++ b/nixpkgs/pkgs/servers/hylafaxplus/post-patch.sh
@@ -1,10 +1,3 @@
-# `configure` (maybe others) set `POSIXLY_CORRECT`, which
-# breaks the gcc wrapper script of nixpkgs (maybe others).
-# We simply un-export `POSIXLY_CORRECT` after each export so
-# its effects don't apply within nixpkgs wrapper scripts.
-grep -rlF POSIXLY_CORRECT | xargs \
-  sed '/export *POSIXLY_CORRECT/a export -n POSIXLY_CORRECT' -i
-
 # Replace strange default value for the nobody account.
 if test -n "@maxuid@"
 then
diff --git a/nixpkgs/pkgs/servers/irc/inspircd/default.nix b/nixpkgs/pkgs/servers/irc/inspircd/default.nix
index f907e337ce6d..59fb4d4e769c 100644
--- a/nixpkgs/pkgs/servers/irc/inspircd/default.nix
+++ b/nixpkgs/pkgs/servers/irc/inspircd/default.nix
@@ -23,7 +23,7 @@ let
   # checking, only whitelist licenses used by notable
   # libcs in nixpkgs (musl and glibc).
   compatible = lib: drv:
-    lib.any (lic: lic == drv.meta.license) [
+    lib.any (lic: lic == (drv.meta.license or {})) [
       lib.licenses.mit        # musl
       lib.licenses.lgpl2Plus  # glibc
     ];
@@ -142,13 +142,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "inspircd";
-  version = "3.9.0";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x3paasf4ynx4ddky2nq613vyirbhfnxzkjq148k7154pz3q426s";
+    sha256 = "1817gmxk4v7k5398d2fb6qkwadg0fd980gqmr80wdnppx450ikn7";
   };
 
   outputs = [ "bin" "lib" "man" "doc" "out" ];
@@ -160,6 +160,8 @@ stdenv.mkDerivation rec {
   buildInputs = extraInputs;
 
   configurePhase = ''
+    runHook preConfigure
+
     patchShebangs configure make/*.pl
 
     # configure is executed twice, once to set the extras
@@ -183,6 +185,8 @@ stdenv.mkDerivation rec {
       --module-dir  ${placeholder "lib"}/lib/inspircd \
       --runtime-dir /var/run \
       --script-dir  ${placeholder "bin"}/share/inspircd \
+
+    runHook postConfigure
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix b/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
index 2530c72cbb9d..bc42fd12629e 100644
--- a/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
+++ b/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
@@ -24,6 +24,5 @@ buildGoModule rec {
     homepage = "https://robustirc.net/";
     license = licenses.bsd3;
     maintainers = [ maintainers.hax404 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/irc/solanum/default.nix b/nixpkgs/pkgs/servers/irc/solanum/default.nix
index 1d39526ed1ee..8080d82a185f 100644
--- a/nixpkgs/pkgs/servers/irc/solanum/default.nix
+++ b/nixpkgs/pkgs/servers/irc/solanum/default.nix
@@ -1,23 +1,24 @@
 { lib, stdenv
-, fetchFromGitHub
 , autoreconfHook
-, pkg-config
 , bison
+, fetchFromGitHub
 , flex
+, lksctp-tools
 , openssl
+, pkg-config
 , sqlite
-, lksctp-tools
+, util-linux
 }:
 
 stdenv.mkDerivation rec {
   pname = "solanum";
-  version = "unstable-2020-12-14";
+  version = "unstable-2021-04-27";
 
   src = fetchFromGitHub {
     owner = "solanum-ircd";
     repo = pname;
-    rev = "551e5a146eab4948ce4a57d87a7f671f2d7cc02d";
-    sha256 = "14cd2cb04w6nwck7q49jw5zvifkzhkmblwhjfskc2nxcdb5x3l96";
+    rev = "3ff5a12e75662e9a642f2a4364797bd361eb0925";
+    sha256 = "14ywmfdv8cncbyg08y2qdis00kwg8lvhkcgj185is67smh0qf88f";
   };
 
   patches = [
@@ -29,9 +30,9 @@ stdenv.mkDerivation rec {
     "--enable-ipv6"
     "--enable-openssl=${openssl.dev}"
     "--with-program-prefix=solanum-"
-    "--localstatedir=/var/lib/solanum"
-    "--with-rundir=/run/solanum"
-    "--with-logdir=/var/log/solanum"
+    "--localstatedir=/var/lib"
+    "--with-rundir=/run"
+    "--with-logdir=/var/log"
   ] ++ lib.optionals (stdenv.isLinux) [
     "--enable-sctp=${lksctp-tools.out}/lib"
   ];
@@ -41,6 +42,7 @@ stdenv.mkDerivation rec {
     bison
     flex
     pkg-config
+    util-linux
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/servers/jackett/default.nix b/nixpkgs/pkgs/servers/jackett/default.nix
index 0c91226d0c88..116fd9bae927 100644
--- a/nixpkgs/pkgs/servers/jackett/default.nix
+++ b/nixpkgs/pkgs/servers/jackett/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jackett";
-  version = "0.17.865";
+  version = "0.18.231";
 
   src = fetchurl {
     url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
-    sha256 = "sha256-kjrch++WncedVkRm05RifUGEYlc5NFAss/E6fgPZWyQ=";
+    sha256 = "sha256-fl0M4Emstp21CrrE4Znzwi1XvTzx6TpPnNKYM65aoN4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/jellyfin/default.nix b/nixpkgs/pkgs/servers/jellyfin/default.nix
index 2b00cb50073b..636a1b6d02a0 100644
--- a/nixpkgs/pkgs/servers/jellyfin/default.nix
+++ b/nixpkgs/pkgs/servers/jellyfin/default.nix
@@ -1,7 +1,26 @@
-{ stdenv, lib, fetchurl, unzip, sqlite, makeWrapper, dotnetCorePackages, ffmpeg,
-  fontconfig, freetype, nixosTests }:
+{ lib
+, fetchFromGitHub
+, fetchurl
+, linkFarmFromDrvs
+, makeWrapper
+, nixosTests
+, stdenv
+, dotnetCorePackages
+, dotnetPackages
+, ffmpeg
+, fontconfig
+, freetype
+, jellyfin-web
+, sqlite
+}:
 
 let
+  runtimeDeps = [
+    ffmpeg
+    fontconfig
+    freetype
+  ];
+
   os = if stdenv.isDarwin then "osx" else "linux";
   arch =
     with stdenv.hostPlatform;
@@ -11,42 +30,84 @@ let
     else if isAarch64 then "arm64"
     else lib.warn "Unsupported architecture, some image processing features might be unavailable" "unknown";
   musl = lib.optionalString stdenv.hostPlatform.isMusl
-    (if (arch != "x64")
-      then lib.warn "Some image processing features might be unavailable for non x86-64 with Musl" "musl-"
-      else "musl-");
-  runtimeDir = "${os}-${musl}${arch}";
+    (lib.warnIf (arch != "x64") "Some image processing features might be unavailable for non x86-64 with Musl"
+      "musl-");
+  # https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#using-rids
+  runtimeId = "${os}-${musl}${arch}";
 
-in stdenv.mkDerivation rec {
+  dotnet-sdk = dotnetCorePackages.sdk_5_0;
+  dotnet-net = dotnetCorePackages.net_5_0;
+  dotnet-aspnetcore = dotnetCorePackages.aspnetcore_5_0;
+in
+stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.7.2";
+  version = "10.7.5"; # ensure that jellyfin-web has matching version
 
-  # Impossible to build anything offline with dotnet
-  src = fetchurl {
-    url = "https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/${version}/jellyfin_${version}.tar.gz";
-    sha256 = "sha256-l2tQmKez06cekq/QLper+OrcSU/0lWpZ85xY2wZcK1s=";
+  src = fetchFromGitHub {
+    owner = "jellyfin";
+    repo = "jellyfin";
+    rev = "v${version}";
+    sha256 = "DlbNZpomNki9zrfG0C7He0Xrq79vx4Rn8ixpekvk34E=";
   };
 
   nativeBuildInputs = [
-    unzip
+    dotnet-sdk
+    dotnetPackages.Nuget
     makeWrapper
   ];
 
   propagatedBuildInputs = [
-    dotnetCorePackages.aspnetcore_5_0
+    dotnet-aspnetcore
     sqlite
   ];
 
-  preferLocalBuild = true;
+  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./nuget-deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  });
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_NOLOGO=1
+
+    nuget sources Add -Name nixos -Source "$PWD/nixos"
+    nuget init "$nugetDeps" "$PWD/nixos"
+
+    # FIXME: https://github.com/NuGet/Home/issues/4413
+    mkdir -p $HOME/.nuget/NuGet
+    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    dotnet publish Jellyfin.Server \
+      --configuration Release \
+      --runtime ${runtimeId} \
+      --no-self-contained \
+      --output $out/opt/jellyfin
+
+    runHook postBuild
+  '';
 
   installPhase = ''
     runHook preInstall
-    install -dm 755 "$out/opt/jellyfin"
-    cp -r * "$out/opt/jellyfin"
-    makeWrapper "${dotnetCorePackages.aspnetcore_5_0}/bin/dotnet" $out/bin/jellyfin \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
-        sqlite fontconfig freetype stdenv.cc.cc.lib
-      ]}:$out/opt/jellyfin/runtimes/${runtimeDir}/native/" \
-      --add-flags "$out/opt/jellyfin/jellyfin.dll --ffmpeg ${ffmpeg}/bin/ffmpeg"
+
+    makeWrapper ${dotnet-aspnetcore}/bin/dotnet $out/bin/jellyfin \
+      --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" \
+      --add-flags "$out/opt/jellyfin/jellyfin.dll" \
+      --add-flags "--ffmpeg ${ffmpeg}/bin/ffmpeg" \
+      --add-flags "--webdir ${jellyfin-web}/share/jellyfin-web"
+
     runHook postInstall
   '';
 
@@ -54,11 +115,13 @@ in stdenv.mkDerivation rec {
     smoke-test = nixosTests.jellyfin;
   };
 
-  meta =  with lib; {
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
     description = "The Free Software Media System";
     homepage = "https://jellyfin.org/";
     # https://github.com/jellyfin/jellyfin/issues/610#issuecomment-537625510
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ nyanloutre minijackson purcell ];
+    maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/jellyfin/node-composition.nix b/nixpkgs/pkgs/servers/jellyfin/node-composition.nix
new file mode 100644
index 000000000000..d0c72d2e8536
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jellyfin/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+  nodeEnv = import ../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit pkgs nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-deps.nix {
+  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+  inherit nodeEnv;
+}
diff --git a/nixpkgs/pkgs/servers/jellyfin/node-deps.nix b/nixpkgs/pkgs/servers/jellyfin/node-deps.nix
new file mode 100644
index 000000000000..3a55fcbe88bc
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jellyfin/node-deps.nix
@@ -0,0 +1,13659 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.12.11" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.12.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha512 = "Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==";
+      };
+    };
+    "@babel/code-frame-7.12.13" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==";
+      };
+    };
+    "@babel/compat-data-7.14.0" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz";
+        sha512 = "vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==";
+      };
+    };
+    "@babel/core-7.14.0" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz";
+        sha512 = "8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==";
+      };
+    };
+    "@babel/eslint-parser-7.13.14" = {
+      name = "_at_babel_slash_eslint-parser";
+      packageName = "@babel/eslint-parser";
+      version = "7.13.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.13.14.tgz";
+        sha512 = "I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA==";
+      };
+    };
+    "@babel/eslint-plugin-7.13.16" = {
+      name = "_at_babel_slash_eslint-plugin";
+      packageName = "@babel/eslint-plugin";
+      version = "7.13.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.13.16.tgz";
+        sha512 = "RNL0dLHBvjXW857JwzToTHxtbOZfGcvdSegcgXC1c1PqfE+o/QN8MugkgKj2vXFxCcMByfxJrmpCbLzVBVlgIA==";
+      };
+    };
+    "@babel/generator-7.14.1" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz";
+        sha512 = "TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==";
+      };
+    };
+    "@babel/helper-annotate-as-pure-7.12.13" = {
+      name = "_at_babel_slash_helper-annotate-as-pure";
+      packageName = "@babel/helper-annotate-as-pure";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz";
+        sha512 = "7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==";
+      };
+    };
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.12.13" = {
+      name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
+      packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/helper-compilation-targets-7.13.16" = {
+      name = "_at_babel_slash_helper-compilation-targets";
+      packageName = "@babel/helper-compilation-targets";
+      version = "7.13.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz";
+        sha512 = "3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==";
+      };
+    };
+    "@babel/helper-create-class-features-plugin-7.14.1" = {
+      name = "_at_babel_slash_helper-create-class-features-plugin";
+      packageName = "@babel/helper-create-class-features-plugin";
+      version = "7.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz";
+        sha512 = "r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.12.17" = {
+      name = "_at_babel_slash_helper-create-regexp-features-plugin";
+      packageName = "@babel/helper-create-regexp-features-plugin";
+      version = "7.12.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz";
+        sha512 = "p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==";
+      };
+    };
+    "@babel/helper-define-polyfill-provider-0.2.0" = {
+      name = "_at_babel_slash_helper-define-polyfill-provider";
+      packageName = "@babel/helper-define-polyfill-provider";
+      version = "0.2.0";
+      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==";
+      };
+    };
+    "@babel/helper-explode-assignable-expression-7.13.0" = {
+      name = "_at_babel_slash_helper-explode-assignable-expression";
+      packageName = "@babel/helper-explode-assignable-expression";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz";
+        sha512 = "qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==";
+      };
+    };
+    "@babel/helper-function-name-7.12.13" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha512 = "TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.12.13" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha512 = "DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==";
+      };
+    };
+    "@babel/helper-hoist-variables-7.13.16" = {
+      name = "_at_babel_slash_helper-hoist-variables";
+      packageName = "@babel/helper-hoist-variables";
+      version = "7.13.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz";
+        sha512 = "1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==";
+      };
+    };
+    "@babel/helper-member-expression-to-functions-7.13.12" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.13.12";
+      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==";
+      };
+    };
+    "@babel/helper-module-imports-7.13.12" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.13.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
+        sha512 = "4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==";
+      };
+    };
+    "@babel/helper-module-transforms-7.14.0" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz";
+        sha512 = "L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.12.13" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha512 = "BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==";
+      };
+    };
+    "@babel/helper-plugin-utils-7.13.0" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.13.0";
+      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==";
+      };
+    };
+    "@babel/helper-remap-async-to-generator-7.13.0" = {
+      name = "_at_babel_slash_helper-remap-async-to-generator";
+      packageName = "@babel/helper-remap-async-to-generator";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz";
+        sha512 = "pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==";
+      };
+    };
+    "@babel/helper-replace-supers-7.13.12" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.13.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz";
+        sha512 = "Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==";
+      };
+    };
+    "@babel/helper-simple-access-7.13.12" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.13.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
+        sha512 = "7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==";
+      };
+    };
+    "@babel/helper-skip-transparent-expression-wrappers-7.12.1" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.12.1";
+      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==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.12.13" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha512 = "tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.14.0" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha512 = "V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==";
+      };
+    };
+    "@babel/helper-validator-option-7.12.17" = {
+      name = "_at_babel_slash_helper-validator-option";
+      packageName = "@babel/helper-validator-option";
+      version = "7.12.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha512 = "TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==";
+      };
+    };
+    "@babel/helper-wrap-function-7.13.0" = {
+      name = "_at_babel_slash_helper-wrap-function";
+      packageName = "@babel/helper-wrap-function";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz";
+        sha512 = "1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==";
+      };
+    };
+    "@babel/helpers-7.14.0" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz";
+        sha512 = "+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==";
+      };
+    };
+    "@babel/highlight-7.14.0" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha512 = "YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==";
+      };
+    };
+    "@babel/parser-7.14.1" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz";
+        sha512 = "muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==";
+      };
+    };
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12" = {
+      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";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.13.15" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.13.15";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-class-properties-7.13.0" = {
+      name = "_at_babel_slash_plugin-proposal-class-properties";
+      packageName = "@babel/plugin-proposal-class-properties";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
+        sha512 = "KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==";
+      };
+    };
+    "@babel/plugin-proposal-class-static-block-7.13.11" = {
+      name = "_at_babel_slash_plugin-proposal-class-static-block";
+      packageName = "@babel/plugin-proposal-class-static-block";
+      version = "7.13.11";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.13.8" = {
+      name = "_at_babel_slash_plugin-proposal-dynamic-import";
+      packageName = "@babel/plugin-proposal-dynamic-import";
+      version = "7.13.8";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-export-namespace-from-7.12.13" = {
+      name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+      packageName = "@babel/plugin-proposal-export-namespace-from";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.13.8" = {
+      name = "_at_babel_slash_plugin-proposal-json-strings";
+      packageName = "@babel/plugin-proposal-json-strings";
+      version = "7.13.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz";
+        sha512 = "w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==";
+      };
+    };
+    "@babel/plugin-proposal-logical-assignment-operators-7.13.8" = {
+      name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+      packageName = "@babel/plugin-proposal-logical-assignment-operators";
+      version = "7.13.8";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.13.8" = {
+      name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+      packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+      version = "7.13.8";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-numeric-separator-7.12.13" = {
+      name = "_at_babel_slash_plugin-proposal-numeric-separator";
+      packageName = "@babel/plugin-proposal-numeric-separator";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.13.8" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.13.8";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-optional-catch-binding-7.13.8" = {
+      name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+      packageName = "@babel/plugin-proposal-optional-catch-binding";
+      version = "7.13.8";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-optional-chaining-7.13.12" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.13.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz";
+        sha512 = "fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==";
+      };
+    };
+    "@babel/plugin-proposal-private-methods-7.13.0" = {
+      name = "_at_babel_slash_plugin-proposal-private-methods";
+      packageName = "@babel/plugin-proposal-private-methods";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz";
+        sha512 = "MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==";
+      };
+    };
+    "@babel/plugin-proposal-private-property-in-object-7.14.0" = {
+      name = "_at_babel_slash_plugin-proposal-private-property-in-object";
+      packageName = "@babel/plugin-proposal-private-property-in-object";
+      version = "7.14.0";
+      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==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.12.13" = {
+      name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+      packageName = "@babel/plugin-proposal-unicode-property-regex";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-syntax-async-generators-7.8.4" = {
+      name = "_at_babel_slash_plugin-syntax-async-generators";
+      packageName = "@babel/plugin-syntax-async-generators";
+      version = "7.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+        sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
+      };
+    };
+    "@babel/plugin-syntax-class-properties-7.12.13" = {
+      name = "_at_babel_slash_plugin-syntax-class-properties";
+      packageName = "@babel/plugin-syntax-class-properties";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz";
+        sha512 = "fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==";
+      };
+    };
+    "@babel/plugin-syntax-class-static-block-7.12.13" = {
+      name = "_at_babel_slash_plugin-syntax-class-static-block";
+      packageName = "@babel/plugin-syntax-class-static-block";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-syntax-dynamic-import-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-dynamic-import";
+      packageName = "@babel/plugin-syntax-dynamic-import";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+        sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
+      };
+    };
+    "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-export-namespace-from";
+      packageName = "@babel/plugin-syntax-export-namespace-from";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+        sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
+      };
+    };
+    "@babel/plugin-syntax-json-strings-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-json-strings";
+      packageName = "@babel/plugin-syntax-json-strings";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+        sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
+      };
+    };
+    "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-logical-assignment-operators";
+      packageName = "@babel/plugin-syntax-logical-assignment-operators";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+        sha512 = "d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==";
+      };
+    };
+    "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-nullish-coalescing-operator";
+      packageName = "@babel/plugin-syntax-nullish-coalescing-operator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+        sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
+      };
+    };
+    "@babel/plugin-syntax-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-numeric-separator";
+      packageName = "@babel/plugin-syntax-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==";
+      };
+    };
+    "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-object-rest-spread";
+      packageName = "@babel/plugin-syntax-object-rest-spread";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==";
+      };
+    };
+    "@babel/plugin-syntax-optional-catch-binding-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-catch-binding";
+      packageName = "@babel/plugin-syntax-optional-catch-binding";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+        sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
+      };
+    };
+    "@babel/plugin-syntax-optional-chaining-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-chaining";
+      packageName = "@babel/plugin-syntax-optional-chaining";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+        sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
+      };
+    };
+    "@babel/plugin-syntax-private-property-in-object-7.14.0" = {
+      name = "_at_babel_slash_plugin-syntax-private-property-in-object";
+      packageName = "@babel/plugin-syntax-private-property-in-object";
+      version = "7.14.0";
+      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==";
+      };
+    };
+    "@babel/plugin-syntax-top-level-await-7.12.13" = {
+      name = "_at_babel_slash_plugin-syntax-top-level-await";
+      packageName = "@babel/plugin-syntax-top-level-await";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-arrow-functions";
+      packageName = "@babel/plugin-transform-arrow-functions";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz";
+        sha512 = "96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==";
+      };
+    };
+    "@babel/plugin-transform-async-to-generator-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-async-to-generator";
+      packageName = "@babel/plugin-transform-async-to-generator";
+      version = "7.13.0";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-block-scoped-functions-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+      packageName = "@babel/plugin-transform-block-scoped-functions";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-block-scoping-7.14.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz";
+        sha512 = "2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==";
+      };
+    };
+    "@babel/plugin-transform-classes-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-classes";
+      packageName = "@babel/plugin-transform-classes";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz";
+        sha512 = "9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==";
+      };
+    };
+    "@babel/plugin-transform-computed-properties-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-computed-properties";
+      packageName = "@babel/plugin-transform-computed-properties";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz";
+        sha512 = "RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==";
+      };
+    };
+    "@babel/plugin-transform-destructuring-7.13.17" = {
+      name = "_at_babel_slash_plugin-transform-destructuring";
+      packageName = "@babel/plugin-transform-destructuring";
+      version = "7.13.17";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-dotall-regex-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-dotall-regex";
+      packageName = "@babel/plugin-transform-dotall-regex";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-duplicate-keys-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-duplicate-keys";
+      packageName = "@babel/plugin-transform-duplicate-keys";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz";
+        sha512 = "NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==";
+      };
+    };
+    "@babel/plugin-transform-exponentiation-operator-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+      packageName = "@babel/plugin-transform-exponentiation-operator";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-for-of-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-for-of";
+      packageName = "@babel/plugin-transform-for-of";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz";
+        sha512 = "IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==";
+      };
+    };
+    "@babel/plugin-transform-function-name-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-function-name";
+      packageName = "@babel/plugin-transform-function-name";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-literals-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-literals";
+      packageName = "@babel/plugin-transform-literals";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz";
+        sha512 = "FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==";
+      };
+    };
+    "@babel/plugin-transform-member-expression-literals-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-member-expression-literals";
+      packageName = "@babel/plugin-transform-member-expression-literals";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-modules-amd-7.14.0" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz";
+        sha512 = "CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==";
+      };
+    };
+    "@babel/plugin-transform-modules-commonjs-7.14.0" = {
+      name = "_at_babel_slash_plugin-transform-modules-commonjs";
+      packageName = "@babel/plugin-transform-modules-commonjs";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz";
+        sha512 = "EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==";
+      };
+    };
+    "@babel/plugin-transform-modules-systemjs-7.13.8" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.13.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz";
+        sha512 = "hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==";
+      };
+    };
+    "@babel/plugin-transform-modules-umd-7.14.0" = {
+      name = "_at_babel_slash_plugin-transform-modules-umd";
+      packageName = "@babel/plugin-transform-modules-umd";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz";
+        sha512 = "nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==";
+      };
+    };
+    "@babel/plugin-transform-named-capturing-groups-regex-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+      packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-new-target-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-new-target";
+      packageName = "@babel/plugin-transform-new-target";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz";
+        sha512 = "/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==";
+      };
+    };
+    "@babel/plugin-transform-object-super-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-object-super";
+      packageName = "@babel/plugin-transform-object-super";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-parameters-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz";
+        sha512 = "Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==";
+      };
+    };
+    "@babel/plugin-transform-property-literals-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-property-literals";
+      packageName = "@babel/plugin-transform-property-literals";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-regenerator-7.13.15" = {
+      name = "_at_babel_slash_plugin-transform-regenerator";
+      packageName = "@babel/plugin-transform-regenerator";
+      version = "7.13.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz";
+        sha512 = "Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==";
+      };
+    };
+    "@babel/plugin-transform-reserved-words-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-reserved-words";
+      packageName = "@babel/plugin-transform-reserved-words";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz";
+        sha512 = "xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==";
+      };
+    };
+    "@babel/plugin-transform-shorthand-properties-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-shorthand-properties";
+      packageName = "@babel/plugin-transform-shorthand-properties";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz";
+        sha512 = "xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==";
+      };
+    };
+    "@babel/plugin-transform-spread-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz";
+        sha512 = "V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==";
+      };
+    };
+    "@babel/plugin-transform-sticky-regex-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-sticky-regex";
+      packageName = "@babel/plugin-transform-sticky-regex";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-template-literals-7.13.0" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz";
+        sha512 = "d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==";
+      };
+    };
+    "@babel/plugin-transform-typeof-symbol-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-typeof-symbol";
+      packageName = "@babel/plugin-transform-typeof-symbol";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-unicode-escapes-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-unicode-escapes";
+      packageName = "@babel/plugin-transform-unicode-escapes";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/plugin-transform-unicode-regex-7.12.13" = {
+      name = "_at_babel_slash_plugin-transform-unicode-regex";
+      packageName = "@babel/plugin-transform-unicode-regex";
+      version = "7.12.13";
+      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==";
+      };
+    };
+    "@babel/preset-env-7.14.1" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz";
+        sha512 = "0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==";
+      };
+    };
+    "@babel/preset-modules-0.1.4" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
+      };
+    };
+    "@babel/runtime-7.14.0" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz";
+        sha512 = "JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==";
+      };
+    };
+    "@babel/template-7.12.13" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz";
+        sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
+      };
+    };
+    "@babel/traverse-7.14.0" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz";
+        sha512 = "dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==";
+      };
+    };
+    "@babel/types-7.14.1" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz";
+        sha512 = "S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==";
+      };
+    };
+    "@csstools/convert-colors-1.4.0" = {
+      name = "_at_csstools_slash_convert-colors";
+      packageName = "@csstools/convert-colors";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz";
+        sha512 = "5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==";
+      };
+    };
+    "@discoveryjs/json-ext-0.5.2" = {
+      name = "_at_discoveryjs_slash_json-ext";
+      packageName = "@discoveryjs/json-ext";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz";
+        sha512 = "HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==";
+      };
+    };
+    "@eslint/eslintrc-0.4.0" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
+        sha512 = "2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==";
+      };
+    };
+    "@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";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz";
+        sha512 = "yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==";
+      };
+    };
+    "@hapi/joi-15.1.1" = {
+      name = "_at_hapi_slash_joi";
+      packageName = "@hapi/joi";
+      version = "15.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz";
+        sha512 = "entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==";
+      };
+    };
+    "@hapi/topo-3.1.6" = {
+      name = "_at_hapi_slash_topo";
+      packageName = "@hapi/topo";
+      version = "3.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz";
+        sha512 = "tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==";
+      };
+    };
+    "@mdn/browser-compat-data-2.0.7" = {
+      name = "_at_mdn_slash_browser-compat-data";
+      packageName = "@mdn/browser-compat-data";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz";
+        sha512 = "GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==";
+      };
+    };
+    "@mrmlnc/readdir-enhanced-2.2.1" = {
+      name = "_at_mrmlnc_slash_readdir-enhanced";
+      packageName = "@mrmlnc/readdir-enhanced";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz";
+        sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==";
+      };
+    };
+    "@nodelib/fs.scandir-2.1.4" = {
+      name = "_at_nodelib_slash_fs.scandir";
+      packageName = "@nodelib/fs.scandir";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
+        sha512 = "33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==";
+      };
+    };
+    "@nodelib/fs.stat-1.1.3" = {
+      name = "_at_nodelib_slash_fs.stat";
+      packageName = "@nodelib/fs.stat";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz";
+        sha512 = "shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==";
+      };
+    };
+    "@nodelib/fs.stat-2.0.4" = {
+      name = "_at_nodelib_slash_fs.stat";
+      packageName = "@nodelib/fs.stat";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
+        sha512 = "IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==";
+      };
+    };
+    "@nodelib/fs.walk-1.2.6" = {
+      name = "_at_nodelib_slash_fs.walk";
+      packageName = "@nodelib/fs.walk";
+      version = "1.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
+      };
+    };
+    "@npmcli/move-file-1.1.2" = {
+      name = "_at_npmcli_slash_move-file";
+      packageName = "@npmcli/move-file";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz";
+        sha512 = "1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==";
+      };
+    };
+    "@rollup/plugin-node-resolve-7.1.3" = {
+      name = "_at_rollup_slash_plugin-node-resolve";
+      packageName = "@rollup/plugin-node-resolve";
+      version = "7.1.3";
+      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==";
+      };
+    };
+    "@rollup/plugin-replace-2.4.2" = {
+      name = "_at_rollup_slash_plugin-replace";
+      packageName = "@rollup/plugin-replace";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz";
+        sha512 = "IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==";
+      };
+    };
+    "@rollup/pluginutils-3.1.0" = {
+      name = "_at_rollup_slash_pluginutils";
+      packageName = "@rollup/pluginutils";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz";
+        sha512 = "GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==";
+      };
+    };
+    "@stylelint/postcss-css-in-js-0.37.2" = {
+      name = "_at_stylelint_slash_postcss-css-in-js";
+      packageName = "@stylelint/postcss-css-in-js";
+      version = "0.37.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz";
+        sha512 = "nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==";
+      };
+    };
+    "@stylelint/postcss-markdown-0.36.2" = {
+      name = "_at_stylelint_slash_postcss-markdown";
+      packageName = "@stylelint/postcss-markdown";
+      version = "0.36.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz";
+        sha512 = "2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==";
+      };
+    };
+    "@surma/rollup-plugin-off-main-thread-1.4.2" = {
+      name = "_at_surma_slash_rollup-plugin-off-main-thread";
+      packageName = "@surma/rollup-plugin-off-main-thread";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz";
+        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" = {
+      name = "_at_types_slash_eslint";
+      packageName = "@types/eslint";
+      version = "7.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz";
+        sha512 = "kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==";
+      };
+    };
+    "@types/eslint-scope-3.7.0" = {
+      name = "_at_types_slash_eslint-scope";
+      packageName = "@types/eslint-scope";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz";
+        sha512 = "O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==";
+      };
+    };
+    "@types/estree-0.0.39" = {
+      name = "_at_types_slash_estree";
+      packageName = "@types/estree";
+      version = "0.0.39";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz";
+        sha512 = "EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==";
+      };
+    };
+    "@types/estree-0.0.47" = {
+      name = "_at_types_slash_estree";
+      packageName = "@types/estree";
+      version = "0.0.47";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz";
+        sha512 = "c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==";
+      };
+    };
+    "@types/glob-7.1.3" = {
+      name = "_at_types_slash_glob";
+      packageName = "@types/glob";
+      version = "7.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
+      };
+    };
+    "@types/html-minifier-terser-5.1.1" = {
+      name = "_at_types_slash_html-minifier-terser";
+      packageName = "@types/html-minifier-terser";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha512 = "giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==";
+      };
+    };
+    "@types/json-schema-7.0.7" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha512 = "cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==";
+      };
+    };
+    "@types/json5-0.0.29" = {
+      name = "_at_types_slash_json5";
+      packageName = "@types/json5";
+      version = "0.0.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
+      };
+    };
+    "@types/localforage-0.0.34" = {
+      name = "_at_types_slash_localforage";
+      packageName = "@types/localforage";
+      version = "0.0.34";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.34.tgz";
+        sha1 = "5e31c32dd8791ec4b9ff3ef47c9cb55b2d0d9438";
+      };
+    };
+    "@types/mdast-3.0.3" = {
+      name = "_at_types_slash_mdast";
+      packageName = "@types/mdast";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz";
+        sha512 = "SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==";
+      };
+    };
+    "@types/minimatch-3.0.4" = {
+      name = "_at_types_slash_minimatch";
+      packageName = "@types/minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==";
+      };
+    };
+    "@types/minimist-1.2.1" = {
+      name = "_at_types_slash_minimist";
+      packageName = "@types/minimist";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz";
+        sha512 = "fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==";
+      };
+    };
+    "@types/node-15.0.2" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "15.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-15.0.2.tgz";
+        sha512 = "p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==";
+      };
+    };
+    "@types/normalize-package-data-2.4.0" = {
+      name = "_at_types_slash_normalize-package-data";
+      packageName = "@types/normalize-package-data";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+        sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
+      };
+    };
+    "@types/parse-json-4.0.0" = {
+      name = "_at_types_slash_parse-json";
+      packageName = "@types/parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
+      };
+    };
+    "@types/q-1.5.4" = {
+      name = "_at_types_slash_q";
+      packageName = "@types/q";
+      version = "1.5.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz";
+        sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
+      };
+    };
+    "@types/resolve-0.0.8" = {
+      name = "_at_types_slash_resolve";
+      packageName = "@types/resolve";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz";
+        sha512 = "auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==";
+      };
+    };
+    "@types/source-list-map-0.1.2" = {
+      name = "_at_types_slash_source-list-map";
+      packageName = "@types/source-list-map";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz";
+        sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==";
+      };
+    };
+    "@types/tapable-1.0.7" = {
+      name = "_at_types_slash_tapable";
+      packageName = "@types/tapable";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz";
+        sha512 = "0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==";
+      };
+    };
+    "@types/uglify-js-3.13.0" = {
+      name = "_at_types_slash_uglify-js";
+      packageName = "@types/uglify-js";
+      version = "3.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz";
+        sha512 = "EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==";
+      };
+    };
+    "@types/unist-2.0.3" = {
+      name = "_at_types_slash_unist";
+      packageName = "@types/unist";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz";
+        sha512 = "FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==";
+      };
+    };
+    "@types/vfile-3.0.2" = {
+      name = "_at_types_slash_vfile";
+      packageName = "@types/vfile";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz";
+        sha512 = "b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==";
+      };
+    };
+    "@types/vfile-message-2.0.0" = {
+      name = "_at_types_slash_vfile-message";
+      packageName = "@types/vfile-message";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz";
+        sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
+      };
+    };
+    "@types/webpack-4.41.28" = {
+      name = "_at_types_slash_webpack";
+      packageName = "@types/webpack";
+      version = "4.41.28";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.28.tgz";
+        sha512 = "Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ==";
+      };
+    };
+    "@types/webpack-sources-2.1.0" = {
+      name = "_at_types_slash_webpack-sources";
+      packageName = "@types/webpack-sources";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz";
+        sha512 = "LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==";
+      };
+    };
+    "@uupaa/dynamic-import-polyfill-1.0.2" = {
+      name = "_at_uupaa_slash_dynamic-import-polyfill";
+      packageName = "@uupaa/dynamic-import-polyfill";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uupaa/dynamic-import-polyfill/-/dynamic-import-polyfill-1.0.2.tgz";
+        sha512 = "V3vzdXunOKKob1F+2ldv/4iGQoQA/iyqtW8PVlr1v16xCCKL831pGUubT+vs5/9wxTE/zBKEhjIjmmpK6nqw2A==";
+      };
+    };
+    "@webassemblyjs/ast-1.11.0" = {
+      name = "_at_webassemblyjs_slash_ast";
+      packageName = "@webassemblyjs/ast";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz";
+        sha512 = "kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==";
+      };
+    };
+    "@webassemblyjs/floating-point-hex-parser-1.11.0" = {
+      name = "_at_webassemblyjs_slash_floating-point-hex-parser";
+      packageName = "@webassemblyjs/floating-point-hex-parser";
+      version = "1.11.0";
+      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==";
+      };
+    };
+    "@webassemblyjs/helper-api-error-1.11.0" = {
+      name = "_at_webassemblyjs_slash_helper-api-error";
+      packageName = "@webassemblyjs/helper-api-error";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz";
+        sha512 = "baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==";
+      };
+    };
+    "@webassemblyjs/helper-buffer-1.11.0" = {
+      name = "_at_webassemblyjs_slash_helper-buffer";
+      packageName = "@webassemblyjs/helper-buffer";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz";
+        sha512 = "u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==";
+      };
+    };
+    "@webassemblyjs/helper-numbers-1.11.0" = {
+      name = "_at_webassemblyjs_slash_helper-numbers";
+      packageName = "@webassemblyjs/helper-numbers";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz";
+        sha512 = "DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==";
+      };
+    };
+    "@webassemblyjs/helper-wasm-bytecode-1.11.0" = {
+      name = "_at_webassemblyjs_slash_helper-wasm-bytecode";
+      packageName = "@webassemblyjs/helper-wasm-bytecode";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz";
+        sha512 = "MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==";
+      };
+    };
+    "@webassemblyjs/helper-wasm-section-1.11.0" = {
+      name = "_at_webassemblyjs_slash_helper-wasm-section";
+      packageName = "@webassemblyjs/helper-wasm-section";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz";
+        sha512 = "3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==";
+      };
+    };
+    "@webassemblyjs/ieee754-1.11.0" = {
+      name = "_at_webassemblyjs_slash_ieee754";
+      packageName = "@webassemblyjs/ieee754";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz";
+        sha512 = "KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==";
+      };
+    };
+    "@webassemblyjs/leb128-1.11.0" = {
+      name = "_at_webassemblyjs_slash_leb128";
+      packageName = "@webassemblyjs/leb128";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz";
+        sha512 = "aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==";
+      };
+    };
+    "@webassemblyjs/utf8-1.11.0" = {
+      name = "_at_webassemblyjs_slash_utf8";
+      packageName = "@webassemblyjs/utf8";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz";
+        sha512 = "A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==";
+      };
+    };
+    "@webassemblyjs/wasm-edit-1.11.0" = {
+      name = "_at_webassemblyjs_slash_wasm-edit";
+      packageName = "@webassemblyjs/wasm-edit";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz";
+        sha512 = "JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==";
+      };
+    };
+    "@webassemblyjs/wasm-gen-1.11.0" = {
+      name = "_at_webassemblyjs_slash_wasm-gen";
+      packageName = "@webassemblyjs/wasm-gen";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz";
+        sha512 = "BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==";
+      };
+    };
+    "@webassemblyjs/wasm-opt-1.11.0" = {
+      name = "_at_webassemblyjs_slash_wasm-opt";
+      packageName = "@webassemblyjs/wasm-opt";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz";
+        sha512 = "tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==";
+      };
+    };
+    "@webassemblyjs/wasm-parser-1.11.0" = {
+      name = "_at_webassemblyjs_slash_wasm-parser";
+      packageName = "@webassemblyjs/wasm-parser";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz";
+        sha512 = "6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==";
+      };
+    };
+    "@webassemblyjs/wast-printer-1.11.0" = {
+      name = "_at_webassemblyjs_slash_wast-printer";
+      packageName = "@webassemblyjs/wast-printer";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz";
+        sha512 = "Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==";
+      };
+    };
+    "@webpack-cli/configtest-1.0.2" = {
+      name = "_at_webpack-cli_slash_configtest";
+      packageName = "@webpack-cli/configtest";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz";
+        sha512 = "3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==";
+      };
+    };
+    "@webpack-cli/info-1.2.3" = {
+      name = "_at_webpack-cli_slash_info";
+      packageName = "@webpack-cli/info";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz";
+        sha512 = "lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==";
+      };
+    };
+    "@webpack-cli/serve-1.3.1" = {
+      name = "_at_webpack-cli_slash_serve";
+      packageName = "@webpack-cli/serve";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz";
+        sha512 = "0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==";
+      };
+    };
+    "@xtuc/ieee754-1.2.0" = {
+      name = "_at_xtuc_slash_ieee754";
+      packageName = "@xtuc/ieee754";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+        sha512 = "DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==";
+      };
+    };
+    "@xtuc/long-4.2.2" = {
+      name = "_at_xtuc_slash_long";
+      packageName = "@xtuc/long";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz";
+        sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
+      };
+    };
+    "abab-2.0.5" = {
+      name = "abab";
+      packageName = "abab";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz";
+        sha512 = "9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==";
+      };
+    };
+    "accepts-1.3.7" = {
+      name = "accepts";
+      packageName = "accepts";
+      version = "1.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+      };
+    };
+    "acorn-7.4.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz";
+        sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
+      };
+    };
+    "acorn-8.2.4" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "8.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz";
+        sha512 = "Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==";
+      };
+    };
+    "acorn-jsx-5.3.1" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.3.1";
+      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==";
+      };
+    };
+    "aggregate-error-3.1.0" = {
+      name = "aggregate-error";
+      packageName = "aggregate-error";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
+      };
+    };
+    "ajv-6.12.6" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";
+        sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
+      };
+    };
+    "ajv-8.2.0" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz";
+        sha512 = "WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==";
+      };
+    };
+    "ajv-errors-1.0.1" = {
+      name = "ajv-errors";
+      packageName = "ajv-errors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz";
+        sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
+      };
+    };
+    "ajv-keywords-3.5.2" = {
+      name = "ajv-keywords";
+      packageName = "ajv-keywords";
+      version = "3.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==";
+      };
+    };
+    "alphanum-sort-1.0.2" = {
+      name = "alphanum-sort";
+      packageName = "alphanum-sort";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz";
+        sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3";
+      };
+    };
+    "ansi-colors-3.2.4" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz";
+        sha512 = "hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==";
+      };
+    };
+    "ansi-colors-4.1.1" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
+      };
+    };
+    "ansi-html-0.0.7" = {
+      name = "ansi-html";
+      packageName = "ansi-html";
+      version = "0.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz";
+        sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-regex-4.1.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+      };
+    };
+    "ansi-regex-5.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+      };
+    };
+    "ansi-styles-2.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-styles-4.3.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+      };
+    };
+    "anymatch-2.0.0" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
+        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+      };
+    };
+    "anymatch-3.1.2" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz";
+        sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "arr-diff-4.0.0" = {
+      name = "arr-diff";
+      packageName = "arr-diff";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    };
+    "arr-flatten-1.1.0" = {
+      name = "arr-flatten";
+      packageName = "arr-flatten";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
+      };
+    };
+    "arr-union-3.1.0" = {
+      name = "arr-union";
+      packageName = "arr-union";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    };
+    "array-find-index-1.0.2" = {
+      name = "array-find-index";
+      packageName = "array-find-index";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz";
+        sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
+      };
+    };
+    "array-flatten-1.1.1" = {
+      name = "array-flatten";
+      packageName = "array-flatten";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    };
+    "array-flatten-2.1.2" = {
+      name = "array-flatten";
+      packageName = "array-flatten";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz";
+        sha512 = "hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==";
+      };
+    };
+    "array-includes-3.1.3" = {
+      name = "array-includes";
+      packageName = "array-includes";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz";
+        sha512 = "gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==";
+      };
+    };
+    "array-union-1.0.2" = {
+      name = "array-union";
+      packageName = "array-union";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz";
+        sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+      };
+    };
+    "array-union-2.1.0" = {
+      name = "array-union";
+      packageName = "array-union";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+        sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+      };
+    };
+    "array-uniq-1.0.3" = {
+      name = "array-uniq";
+      packageName = "array-uniq";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz";
+        sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+      };
+    };
+    "array-unique-0.3.2" = {
+      name = "array-unique";
+      packageName = "array-unique";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    };
+    "array.prototype.flat-1.2.4" = {
+      name = "array.prototype.flat";
+      packageName = "array.prototype.flat";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
+        sha512 = "4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==";
+      };
+    };
+    "arrify-1.0.1" = {
+      name = "arrify";
+      packageName = "arrify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz";
+        sha1 = "898508da2226f380df904728456849c1501a4b0d";
+      };
+    };
+    "assign-symbols-1.0.0" = {
+      name = "assign-symbols";
+      packageName = "assign-symbols";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    };
+    "ast-metadata-inferer-0.4.0" = {
+      name = "ast-metadata-inferer";
+      packageName = "ast-metadata-inferer";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz";
+        sha512 = "tKHdBe8N/Vq2nLAm4YPBVREVZjMux6KrqyPfNQgIbDl0t7HaNSmy8w4OyVHYg/cvyn5BW7o7pVwpjPte89Zhcg==";
+      };
+    };
+    "astral-regex-1.0.0" = {
+      name = "astral-regex";
+      packageName = "astral-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
+        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
+      };
+    };
+    "astral-regex-2.0.0" = {
+      name = "astral-regex";
+      packageName = "astral-regex";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha512 = "Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==";
+      };
+    };
+    "async-2.6.3" = {
+      name = "async";
+      packageName = "async";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
+        sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
+      };
+    };
+    "async-each-1.0.3" = {
+      name = "async-each";
+      packageName = "async-each";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
+        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
+      };
+    };
+    "async-limiter-1.0.1" = {
+      name = "async-limiter";
+      packageName = "async-limiter";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
+      };
+    };
+    "atob-2.1.2" = {
+      name = "atob";
+      packageName = "atob";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
+        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
+      };
+    };
+    "autoprefixer-9.8.6" = {
+      name = "autoprefixer";
+      packageName = "autoprefixer";
+      version = "9.8.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        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";
+      version = "8.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz";
+        sha512 = "JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==";
+      };
+    };
+    "babel-plugin-dynamic-import-node-2.3.3" = {
+      name = "babel-plugin-dynamic-import-node";
+      packageName = "babel-plugin-dynamic-import-node";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
+      };
+    };
+    "babel-plugin-dynamic-import-polyfill-1.0.0" = {
+      name = "babel-plugin-dynamic-import-polyfill";
+      packageName = "babel-plugin-dynamic-import-polyfill";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-polyfill/-/babel-plugin-dynamic-import-polyfill-1.0.0.tgz";
+        sha512 = "fqdut9hGeaAgdX3sbAY25TkqA7LPmZB+Hf1XI67AppvhUw1cBST58BPwl5kPwDZYIvmqRwnsVKM0lppsQAsxhg==";
+      };
+    };
+    "babel-plugin-polyfill-corejs2-0.2.0" = {
+      name = "babel-plugin-polyfill-corejs2";
+      packageName = "babel-plugin-polyfill-corejs2";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz";
+        sha512 = "9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==";
+      };
+    };
+    "babel-plugin-polyfill-corejs3-0.2.0" = {
+      name = "babel-plugin-polyfill-corejs3";
+      packageName = "babel-plugin-polyfill-corejs3";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz";
+        sha512 = "zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==";
+      };
+    };
+    "babel-plugin-polyfill-regenerator-0.2.0" = {
+      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";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz";
+        sha512 = "q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==";
+      };
+    };
+    "bail-1.0.5" = {
+      name = "bail";
+      packageName = "bail";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz";
+        sha512 = "xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==";
+      };
+    };
+    "balanced-match-1.0.2" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
+      };
+    };
+    "balanced-match-2.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz";
+        sha512 = "1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==";
+      };
+    };
+    "base-0.11.2" = {
+      name = "base";
+      packageName = "base";
+      version = "0.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
+        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+      };
+    };
+    "batch-0.6.1" = {
+      name = "batch";
+      packageName = "batch";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz";
+        sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
+      };
+    };
+    "big.js-5.2.2" = {
+      name = "big.js";
+      packageName = "big.js";
+      version = "5.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz";
+        sha512 = "vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==";
+      };
+    };
+    "binary-extensions-1.13.1" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "1.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
+        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+      };
+    };
+    "binary-extensions-2.2.0" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==";
+      };
+    };
+    "bindings-1.5.0" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+      };
+    };
+    "blurhash-1.1.3" = {
+      name = "blurhash";
+      packageName = "blurhash";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz";
+        sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==";
+      };
+    };
+    "body-parser-1.19.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+      };
+    };
+    "bonjour-3.5.0" = {
+      name = "bonjour";
+      packageName = "bonjour";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz";
+        sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
+      };
+    };
+    "boolbase-1.0.0" = {
+      name = "boolbase";
+      packageName = "boolbase";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
+        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-2.3.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
+        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "browserslist-1.7.7" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "1.7.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz";
+        sha1 = "0bd76704258be829b2398bb50e4b62d1a166b0b9";
+      };
+    };
+    "browserslist-4.16.6" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.16.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz";
+        sha512 = "Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==";
+      };
+    };
+    "buffer-from-1.1.1" = {
+      name = "buffer-from";
+      packageName = "buffer-from";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+      };
+    };
+    "buffer-indexof-1.1.1" = {
+      name = "buffer-indexof";
+      packageName = "buffer-indexof";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
+        sha512 = "4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==";
+      };
+    };
+    "builtin-modules-3.2.0" = {
+      name = "builtin-modules";
+      packageName = "builtin-modules";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz";
+        sha512 = "lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==";
+      };
+    };
+    "bytes-3.0.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
+        sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+      };
+    };
+    "bytes-3.1.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+      };
+    };
+    "cacache-15.0.6" = {
+      name = "cacache";
+      packageName = "cacache";
+      version = "15.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz";
+        sha512 = "g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==";
+      };
+    };
+    "cache-base-1.0.1" = {
+      name = "cache-base";
+      packageName = "cache-base";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
+        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+      };
+    };
+    "call-bind-1.0.2" = {
+      name = "call-bind";
+      packageName = "call-bind";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";
+        sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==";
+      };
+    };
+    "call-me-maybe-1.0.1" = {
+      name = "call-me-maybe";
+      packageName = "call-me-maybe";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+        sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
+      };
+    };
+    "caller-callsite-2.0.0" = {
+      name = "caller-callsite";
+      packageName = "caller-callsite";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz";
+        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+      };
+    };
+    "caller-path-2.0.0" = {
+      name = "caller-path";
+      packageName = "caller-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz";
+        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+      };
+    };
+    "callsites-2.0.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz";
+        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+      };
+    };
+    "callsites-3.1.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+      };
+    };
+    "camel-case-4.1.2" = {
+      name = "camel-case";
+      packageName = "camel-case";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz";
+        sha512 = "gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==";
+      };
+    };
+    "camelcase-4.1.0" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz";
+        sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+      };
+    };
+    "camelcase-5.3.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+        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";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz";
+        sha1 = "a2aa5fb1af688758259c32c141426d78923b9b77";
+      };
+    };
+    "camelcase-keys-6.2.2" = {
+      name = "camelcase-keys";
+      packageName = "camelcase-keys";
+      version = "6.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz";
+        sha512 = "YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==";
+      };
+    };
+    "caniuse-api-3.0.0" = {
+      name = "caniuse-api";
+      packageName = "caniuse-api";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz";
+        sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
+      };
+    };
+    "caniuse-db-1.0.30001222" = {
+      name = "caniuse-db";
+      packageName = "caniuse-db";
+      version = "1.0.30001222";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001222.tgz";
+        sha512 = "ZLsTZ9Rqz407NLdjwqDnTq9SahH+eCu+qCXh91M+fK+7CgbNrz510I7RYCiG11SIklDxvvmD9BqvdPOA//y9Rg==";
+      };
+    };
+    "caniuse-lite-1.0.30001222" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001222";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz";
+        sha512 = "rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==";
+      };
+    };
+    "ccount-1.1.0" = {
+      name = "ccount";
+      packageName = "ccount";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz";
+        sha512 = "vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==";
+      };
+    };
+    "chalk-1.1.3" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chalk-4.1.1" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz";
+        sha512 = "diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==";
+      };
+    };
+    "character-entities-1.2.4" = {
+      name = "character-entities";
+      packageName = "character-entities";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz";
+        sha512 = "iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==";
+      };
+    };
+    "character-entities-html4-1.1.4" = {
+      name = "character-entities-html4";
+      packageName = "character-entities-html4";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz";
+        sha512 = "HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==";
+      };
+    };
+    "character-entities-legacy-1.1.4" = {
+      name = "character-entities-legacy";
+      packageName = "character-entities-legacy";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz";
+        sha512 = "3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==";
+      };
+    };
+    "character-reference-invalid-1.1.4" = {
+      name = "character-reference-invalid";
+      packageName = "character-reference-invalid";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz";
+        sha512 = "mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==";
+      };
+    };
+    "chokidar-2.1.8" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "2.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
+        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
+      };
+    };
+    "chokidar-3.5.1" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz";
+        sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==";
+      };
+    };
+    "chownr-2.0.0" = {
+      name = "chownr";
+      packageName = "chownr";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz";
+        sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
+      };
+    };
+    "chrome-trace-event-1.0.3" = {
+      name = "chrome-trace-event";
+      packageName = "chrome-trace-event";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz";
+        sha512 = "p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==";
+      };
+    };
+    "class-utils-0.3.6" = {
+      name = "class-utils";
+      packageName = "class-utils";
+      version = "0.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
+        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
+      };
+    };
+    "classlist.js-https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz" = {
+      name = "classlist.js";
+      packageName = "classlist.js";
+      version = "1.2.20180112";
+      src = fetchurl {
+        name = "classlist.js-1.2.20180112.tar.gz";
+        url = "https://codeload.github.com/eligrey/classList.js/tar.gz/1.2.20180112";
+        sha256 = "b9a185ff3f7263f0f251af30f187ba19d2d6d141071efdfd4bd717e190599191";
+      };
+    };
+    "clean-css-4.2.3" = {
+      name = "clean-css";
+      packageName = "clean-css";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz";
+        sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
+      };
+    };
+    "clean-stack-2.2.0" = {
+      name = "clean-stack";
+      packageName = "clean-stack";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
+        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
+      };
+    };
+    "clean-webpack-plugin-3.0.0" = {
+      name = "clean-webpack-plugin";
+      packageName = "clean-webpack-plugin";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz";
+        sha512 = "MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==";
+      };
+    };
+    "cliui-5.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
+        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+      };
+    };
+    "clone-deep-4.0.1" = {
+      name = "clone-deep";
+      packageName = "clone-deep";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz";
+        sha512 = "neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==";
+      };
+    };
+    "clone-regexp-1.0.1" = {
+      name = "clone-regexp";
+      packageName = "clone-regexp";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz";
+        sha512 = "Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==";
+      };
+    };
+    "clone-regexp-2.2.0" = {
+      name = "clone-regexp";
+      packageName = "clone-regexp";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz";
+        sha512 = "beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==";
+      };
+    };
+    "coa-2.0.2" = {
+      name = "coa";
+      packageName = "coa";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz";
+        sha512 = "q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==";
+      };
+    };
+    "collapse-white-space-1.0.6" = {
+      name = "collapse-white-space";
+      packageName = "collapse-white-space";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz";
+        sha512 = "jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==";
+      };
+    };
+    "collection-visit-1.0.0" = {
+      name = "collection-visit";
+      packageName = "collection-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    };
+    "color-3.1.3" = {
+      name = "color";
+      packageName = "color";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color/-/color-3.1.3.tgz";
+        sha512 = "xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "color-string-1.5.5" = {
+      name = "color-string";
+      packageName = "color-string";
+      version = "1.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz";
+        sha512 = "jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==";
+      };
+    };
+    "colorette-1.2.2" = {
+      name = "colorette";
+      packageName = "colorette";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz";
+        sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==";
+      };
+    };
+    "commander-2.20.3" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.20.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+      };
+    };
+    "commander-4.1.1" = {
+      name = "commander";
+      packageName = "commander";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
+        sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
+      };
+    };
+    "commander-7.2.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz";
+        sha512 = "QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==";
+      };
+    };
+    "common-tags-1.8.0" = {
+      name = "common-tags";
+      packageName = "common-tags";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz";
+        sha512 = "6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==";
+      };
+    };
+    "commondir-1.0.1" = {
+      name = "commondir";
+      packageName = "commondir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    };
+    "component-emitter-1.3.0" = {
+      name = "component-emitter";
+      packageName = "component-emitter";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
+      };
+    };
+    "compressible-2.0.18" = {
+      name = "compressible";
+      packageName = "compressible";
+      version = "2.0.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz";
+        sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==";
+      };
+    };
+    "compression-1.7.4" = {
+      name = "compression";
+      packageName = "compression";
+      version = "1.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz";
+        sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "confusing-browser-globals-1.0.10" = {
+      name = "confusing-browser-globals";
+      packageName = "confusing-browser-globals";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz";
+        sha512 = "gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==";
+      };
+    };
+    "connect-history-api-fallback-1.6.0" = {
+      name = "connect-history-api-fallback";
+      packageName = "connect-history-api-fallback";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
+        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";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+      };
+    };
+    "content-type-1.0.4" = {
+      name = "content-type";
+      packageName = "content-type";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+      };
+    };
+    "convert-source-map-1.7.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    };
+    "cookie-0.4.0" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+      };
+    };
+    "cookie-signature-1.0.6" = {
+      name = "cookie-signature";
+      packageName = "cookie-signature";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    };
+    "copy-descriptor-0.1.1" = {
+      name = "copy-descriptor";
+      packageName = "copy-descriptor";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    };
+    "copy-webpack-plugin-6.4.1" = {
+      name = "copy-webpack-plugin";
+      packageName = "copy-webpack-plugin";
+      version = "6.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz";
+        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" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "3.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz";
+        sha512 = "3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==";
+      };
+    };
+    "core-js-compat-3.11.2" = {
+      name = "core-js-compat";
+      packageName = "core-js-compat";
+      version = "3.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.2.tgz";
+        sha512 = "gYhNwu7AJjecNtRrIfyoBabQ3ZG+llfPmg9BifIX8yxIpDyfNLRM73zIjINSm6z3dMdI1nwNC9C7uiy4pIC6cw==";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "cosmiconfig-5.2.1" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+        sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==";
+      };
+    };
+    "cosmiconfig-7.0.0" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+        sha512 = "pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==";
+      };
+    };
+    "cross-spawn-6.0.5" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "6.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+      };
+    };
+    "cross-spawn-7.0.3" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
+      };
+    };
+    "crypto-random-string-1.0.0" = {
+      name = "crypto-random-string";
+      packageName = "crypto-random-string";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+        sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+      };
+    };
+    "css-blank-pseudo-0.1.4" = {
+      name = "css-blank-pseudo";
+      packageName = "css-blank-pseudo";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz";
+        sha512 = "LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==";
+      };
+    };
+    "css-color-names-0.0.4" = {
+      name = "css-color-names";
+      packageName = "css-color-names";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz";
+        sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
+      };
+    };
+    "css-declaration-sorter-4.0.1" = {
+      name = "css-declaration-sorter";
+      packageName = "css-declaration-sorter";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz";
+        sha512 = "BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==";
+      };
+    };
+    "css-has-pseudo-0.10.0" = {
+      name = "css-has-pseudo";
+      packageName = "css-has-pseudo";
+      version = "0.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz";
+        sha512 = "Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==";
+      };
+    };
+    "css-loader-5.2.4" = {
+      name = "css-loader";
+      packageName = "css-loader";
+      version = "5.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz";
+        sha512 = "OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==";
+      };
+    };
+    "css-prefers-color-scheme-3.1.1" = {
+      name = "css-prefers-color-scheme";
+      packageName = "css-prefers-color-scheme";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz";
+        sha512 = "MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==";
+      };
+    };
+    "css-select-2.1.0" = {
+      name = "css-select";
+      packageName = "css-select";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz";
+        sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
+      };
+    };
+    "css-select-base-adapter-0.1.1" = {
+      name = "css-select-base-adapter";
+      packageName = "css-select-base-adapter";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz";
+        sha512 = "jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==";
+      };
+    };
+    "css-tree-1.0.0-alpha.37" = {
+      name = "css-tree";
+      packageName = "css-tree";
+      version = "1.0.0-alpha.37";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz";
+        sha512 = "DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==";
+      };
+    };
+    "css-tree-1.1.3" = {
+      name = "css-tree";
+      packageName = "css-tree";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz";
+        sha512 = "tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==";
+      };
+    };
+    "css-what-3.4.2" = {
+      name = "css-what";
+      packageName = "css-what";
+      version = "3.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz";
+        sha512 = "ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==";
+      };
+    };
+    "cssdb-4.4.0" = {
+      name = "cssdb";
+      packageName = "cssdb";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz";
+        sha512 = "LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==";
+      };
+    };
+    "cssesc-2.0.0" = {
+      name = "cssesc";
+      packageName = "cssesc";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz";
+        sha512 = "MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==";
+      };
+    };
+    "cssesc-3.0.0" = {
+      name = "cssesc";
+      packageName = "cssesc";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz";
+        sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==";
+      };
+    };
+    "cssnano-4.1.11" = {
+      name = "cssnano";
+      packageName = "cssnano";
+      version = "4.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz";
+        sha512 = "6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==";
+      };
+    };
+    "cssnano-preset-default-4.0.8" = {
+      name = "cssnano-preset-default";
+      packageName = "cssnano-preset-default";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz";
+        sha512 = "LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==";
+      };
+    };
+    "cssnano-util-get-arguments-4.0.0" = {
+      name = "cssnano-util-get-arguments";
+      packageName = "cssnano-util-get-arguments";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz";
+        sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f";
+      };
+    };
+    "cssnano-util-get-match-4.0.0" = {
+      name = "cssnano-util-get-match";
+      packageName = "cssnano-util-get-match";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz";
+        sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d";
+      };
+    };
+    "cssnano-util-raw-cache-4.0.1" = {
+      name = "cssnano-util-raw-cache";
+      packageName = "cssnano-util-raw-cache";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz";
+        sha512 = "qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==";
+      };
+    };
+    "cssnano-util-same-parent-4.0.1" = {
+      name = "cssnano-util-same-parent";
+      packageName = "cssnano-util-same-parent";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz";
+        sha512 = "WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==";
+      };
+    };
+    "csso-4.2.0" = {
+      name = "csso";
+      packageName = "csso";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz";
+        sha512 = "wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==";
+      };
+    };
+    "currently-unhandled-0.4.1" = {
+      name = "currently-unhandled";
+      packageName = "currently-unhandled";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
+        sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
+      };
+    };
+    "d-1.0.1" = {
+      name = "d";
+      packageName = "d";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
+        sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
+      };
+    };
+    "date-fns-2.21.1" = {
+      name = "date-fns";
+      packageName = "date-fns";
+      version = "2.21.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz";
+        sha512 = "m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-3.2.7" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz";
+        sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
+      };
+    };
+    "debug-4.3.2" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
+        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "decamelize-keys-1.1.0" = {
+      name = "decamelize-keys";
+      packageName = "decamelize-keys";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz";
+        sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
+      };
+    };
+    "decode-uri-component-0.2.0" = {
+      name = "decode-uri-component";
+      packageName = "decode-uri-component";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    };
+    "deep-equal-1.1.1" = {
+      name = "deep-equal";
+      packageName = "deep-equal";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz";
+        sha512 = "yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "default-gateway-4.2.0" = {
+      name = "default-gateway";
+      packageName = "default-gateway";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz";
+        sha512 = "h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==";
+      };
+    };
+    "define-properties-1.1.3" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+      };
+    };
+    "define-property-0.2.5" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    };
+    "define-property-1.0.0" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    };
+    "define-property-2.0.2" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
+        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
+      };
+    };
+    "del-4.1.1" = {
+      name = "del";
+      packageName = "del";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/del/-/del-4.1.1.tgz";
+        sha512 = "QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==";
+      };
+    };
+    "depd-1.1.2" = {
+      name = "depd";
+      packageName = "depd";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    };
+    "destroy-1.0.4" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    };
+    "detect-node-2.0.5" = {
+      name = "detect-node";
+      packageName = "detect-node";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz";
+        sha512 = "qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==";
+      };
+    };
+    "dir-glob-2.2.2" = {
+      name = "dir-glob";
+      packageName = "dir-glob";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz";
+        sha512 = "f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==";
+      };
+    };
+    "dir-glob-3.0.1" = {
+      name = "dir-glob";
+      packageName = "dir-glob";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+      };
+    };
+    "dns-equal-1.0.0" = {
+      name = "dns-equal";
+      packageName = "dns-equal";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz";
+        sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
+      };
+    };
+    "dns-packet-1.3.1" = {
+      name = "dns-packet";
+      packageName = "dns-packet";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz";
+        sha512 = "0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==";
+      };
+    };
+    "dns-txt-2.0.2" = {
+      name = "dns-txt";
+      packageName = "dns-txt";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz";
+        sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
+      };
+    };
+    "doctrine-1.5.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz";
+        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+      };
+    };
+    "doctrine-3.0.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz";
+        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
+      };
+    };
+    "dom-converter-0.2.0" = {
+      name = "dom-converter";
+      packageName = "dom-converter";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz";
+        sha512 = "gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==";
+      };
+    };
+    "dom-serializer-0.2.2" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz";
+        sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
+      };
+    };
+    "dom-serializer-1.3.1" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.1.tgz";
+        sha512 = "Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q==";
+      };
+    };
+    "dom7-3.0.0" = {
+      name = "dom7";
+      packageName = "dom7";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz";
+        sha512 = "oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==";
+      };
+    };
+    "domelementtype-1.3.1" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
+        sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
+      };
+    };
+    "domelementtype-2.2.0" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
+        sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
+      };
+    };
+    "domhandler-2.4.2" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz";
+        sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==";
+      };
+    };
+    "domhandler-3.3.0" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz";
+        sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
+      };
+    };
+    "domhandler-4.2.0" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz";
+        sha512 = "zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==";
+      };
+    };
+    "domutils-1.7.0" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz";
+        sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
+      };
+    };
+    "domutils-2.6.0" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.6.0.tgz";
+        sha512 = "y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==";
+      };
+    };
+    "dot-case-3.0.4" = {
+      name = "dot-case";
+      packageName = "dot-case";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz";
+        sha512 = "Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==";
+      };
+    };
+    "dot-prop-5.3.0" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz";
+        sha512 = "QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==";
+      };
+    };
+    "ee-first-1.1.1" = {
+      name = "ee-first";
+      packageName = "ee-first";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    };
+    "ejs-2.7.4" = {
+      name = "ejs";
+      packageName = "ejs";
+      version = "2.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz";
+        sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
+      };
+    };
+    "electron-to-chromium-1.3.726" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.726";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz";
+        sha512 = "dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+      };
+    };
+    "emoji-regex-8.0.0" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+      };
+    };
+    "emojis-list-3.0.0" = {
+      name = "emojis-list";
+      packageName = "emojis-list";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz";
+        sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==";
+      };
+    };
+    "encodeurl-1.0.2" = {
+      name = "encodeurl";
+      packageName = "encodeurl";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
+    "enhanced-resolve-5.8.0" = {
+      name = "enhanced-resolve";
+      packageName = "enhanced-resolve";
+      version = "5.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz";
+        sha512 = "Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==";
+      };
+    };
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
+      };
+    };
+    "entities-1.1.2" = {
+      name = "entities";
+      packageName = "entities";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+        sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+      };
+    };
+    "entities-2.2.0" = {
+      name = "entities";
+      packageName = "entities";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz";
+        sha512 = "p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==";
+      };
+    };
+    "envinfo-7.8.1" = {
+      name = "envinfo";
+      packageName = "envinfo";
+      version = "7.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz";
+        sha512 = "/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==";
+      };
+    };
+    "epubjs-0.3.88" = {
+      name = "epubjs";
+      packageName = "epubjs";
+      version = "0.3.88";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/epubjs/-/epubjs-0.3.88.tgz";
+        sha512 = "VRumULpUELYmYwzypyfbDwoSIqDp2LXOXCtY3o55o3YDW5Zm32UjtZuX/xaWFGqyZORNNMWWQ8VlMaY1djnDYg==";
+      };
+    };
+    "errno-0.1.8" = {
+      name = "errno";
+      packageName = "errno";
+      version = "0.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz";
+        sha512 = "dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==";
+      };
+    };
+    "error-ex-1.3.2" = {
+      name = "error-ex";
+      packageName = "error-ex";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+      };
+    };
+    "es-abstract-1.18.0" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz";
+        sha512 = "LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==";
+      };
+    };
+    "es-module-lexer-0.4.1" = {
+      name = "es-module-lexer";
+      packageName = "es-module-lexer";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz";
+        sha512 = "ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==";
+      };
+    };
+    "es-to-primitive-1.2.1" = {
+      name = "es-to-primitive";
+      packageName = "es-to-primitive";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+      };
+    };
+    "es5-ext-0.10.53" = {
+      name = "es5-ext";
+      packageName = "es5-ext";
+      version = "0.10.53";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
+        sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
+      };
+    };
+    "es6-iterator-2.0.3" = {
+      name = "es6-iterator";
+      packageName = "es6-iterator";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
+        sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+      };
+    };
+    "es6-promise-4.2.8" = {
+      name = "es6-promise";
+      packageName = "es6-promise";
+      version = "4.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz";
+        sha512 = "HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==";
+      };
+    };
+    "es6-symbol-3.1.3" = {
+      name = "es6-symbol";
+      packageName = "es6-symbol";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
+        sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
+      };
+    };
+    "escalade-3.1.1" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz";
+        sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "eslint-7.25.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.25.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz";
+        sha512 = "TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==";
+      };
+    };
+    "eslint-import-resolver-node-0.3.4" = {
+      name = "eslint-import-resolver-node";
+      packageName = "eslint-import-resolver-node";
+      version = "0.3.4";
+      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==";
+      };
+    };
+    "eslint-module-utils-2.6.0" = {
+      name = "eslint-module-utils";
+      packageName = "eslint-module-utils";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+        sha512 = "6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==";
+      };
+    };
+    "eslint-plugin-compat-3.9.0" = {
+      name = "eslint-plugin-compat";
+      packageName = "eslint-plugin-compat";
+      version = "3.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz";
+        sha512 = "lt3l5PHFHVEYSZ5zijcoYvtQJPsBifRiH5N0Et57KwVu7l/yxmHhSG6VJiLMa/lXrg93Qu8049RNQOMn0+yJBg==";
+      };
+    };
+    "eslint-plugin-eslint-comments-3.2.0" = {
+      name = "eslint-plugin-eslint-comments";
+      packageName = "eslint-plugin-eslint-comments";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz";
+        sha512 = "0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==";
+      };
+    };
+    "eslint-plugin-import-2.22.1" = {
+      name = "eslint-plugin-import";
+      packageName = "eslint-plugin-import";
+      version = "2.22.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz";
+        sha512 = "8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==";
+      };
+    };
+    "eslint-plugin-promise-4.3.1" = {
+      name = "eslint-plugin-promise";
+      packageName = "eslint-plugin-promise";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz";
+        sha512 = "bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==";
+      };
+    };
+    "eslint-rule-composer-0.3.0" = {
+      name = "eslint-rule-composer";
+      packageName = "eslint-rule-composer";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
+        sha512 = "bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==";
+      };
+    };
+    "eslint-scope-5.1.1" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
+      };
+    };
+    "eslint-utils-2.1.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+      };
+    };
+    "eslint-visitor-keys-1.3.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+      };
+    };
+    "eslint-visitor-keys-2.1.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
+      };
+    };
+    "espree-7.3.1" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz";
+        sha512 = "v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "esquery-1.4.0" = {
+      name = "esquery";
+      packageName = "esquery";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz";
+        sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==";
+      };
+    };
+    "esrecurse-4.3.0" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "estraverse-5.2.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        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";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz";
+        sha512 = "1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "etag-1.8.1" = {
+      name = "etag";
+      packageName = "etag";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    };
+    "event-emitter-0.3.5" = {
+      name = "event-emitter";
+      packageName = "event-emitter";
+      version = "0.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
+        sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+      };
+    };
+    "eventemitter3-4.0.7" = {
+      name = "eventemitter3";
+      packageName = "eventemitter3";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
+      };
+    };
+    "events-3.3.0" = {
+      name = "events";
+      packageName = "events";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events/-/events-3.3.0.tgz";
+        sha512 = "mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==";
+      };
+    };
+    "eventsource-1.1.0" = {
+      name = "eventsource";
+      packageName = "eventsource";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz";
+        sha512 = "VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==";
+      };
+    };
+    "execa-1.0.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
+        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+      };
+    };
+    "execa-5.0.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz";
+        sha512 = "ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==";
+      };
+    };
+    "execall-1.0.0" = {
+      name = "execall";
+      packageName = "execall";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz";
+        sha1 = "73d0904e395b3cab0658b08d09ec25307f29bb73";
+      };
+    };
+    "execall-2.0.0" = {
+      name = "execall";
+      packageName = "execall";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz";
+        sha512 = "0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==";
+      };
+    };
+    "expand-brackets-2.1.4" = {
+      name = "expand-brackets";
+      packageName = "expand-brackets";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    };
+    "expose-loader-1.0.3" = {
+      name = "expose-loader";
+      packageName = "expose-loader";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expose-loader/-/expose-loader-1.0.3.tgz";
+        sha512 = "gP6hs3vYeWIqyoVfsApGQcgCEpbcI1xe+celwI31zeDhXz2q03ycBC1+75IlQUGaYvj6rAloFIe/NIBnEElLsQ==";
+      };
+    };
+    "express-4.17.1" = {
+      name = "express";
+      packageName = "express";
+      version = "4.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+      };
+    };
+    "ext-1.4.0" = {
+      name = "ext";
+      packageName = "ext";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
+        sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
+      };
+    };
+    "extend-3.0.2" = {
+      name = "extend";
+      packageName = "extend";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+      };
+    };
+    "extend-shallow-2.0.1" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    };
+    "extend-shallow-3.0.2" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    };
+    "extglob-2.0.4" = {
+      name = "extglob";
+      packageName = "extglob";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
+        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+      };
+    };
+    "fast-deep-equal-3.1.3" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
+      };
+    };
+    "fast-glob-2.2.7" = {
+      name = "fast-glob";
+      packageName = "fast-glob";
+      version = "2.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz";
+        sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
+      };
+    };
+    "fast-glob-3.2.5" = {
+      name = "fast-glob";
+      packageName = "fast-glob";
+      version = "3.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha512 = "2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
+      name = "fast-json-stable-stringify";
+      packageName = "fast-json-stable-stringify";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    };
+    "fast-text-encoding-1.0.3" = {
+      name = "fast-text-encoding";
+      packageName = "fast-text-encoding";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz";
+        sha512 = "dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==";
+      };
+    };
+    "fastest-levenshtein-1.0.12" = {
+      name = "fastest-levenshtein";
+      packageName = "fastest-levenshtein";
+      version = "1.0.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha512 = "On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==";
+      };
+    };
+    "fastq-1.11.0" = {
+      name = "fastq";
+      packageName = "fastq";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz";
+        sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
+      };
+    };
+    "faye-websocket-0.11.3" = {
+      name = "faye-websocket";
+      packageName = "faye-websocket";
+      version = "0.11.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz";
+        sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==";
+      };
+    };
+    "file-entry-cache-4.0.0" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-4.0.0.tgz";
+        sha512 = "AVSwsnbV8vH/UVbvgEhf3saVQXORNv0ZzSkvkhQIaia5Tia+JhGTaa/ePUSVoPHQyGayQNmYfkzFi3WZV5zcpA==";
+      };
+    };
+    "file-entry-cache-6.0.1" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
+      };
+    };
+    "file-loader-6.2.0" = {
+      name = "file-loader";
+      packageName = "file-loader";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz";
+        sha512 = "qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==";
+      };
+    };
+    "file-uri-to-path-1.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+      };
+    };
+    "fill-range-4.0.0" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "finalhandler-1.1.2" = {
+      name = "finalhandler";
+      packageName = "finalhandler";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+      };
+    };
+    "find-cache-dir-3.3.1" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
+      };
+    };
+    "find-up-2.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz";
+        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+      };
+    };
+    "find-up-3.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+      };
+    };
+    "find-up-4.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+      };
+    };
+    "flat-cache-2.0.1" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz";
+        sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==";
+      };
+    };
+    "flat-cache-3.0.4" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==";
+      };
+    };
+    "flatted-2.0.2" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz";
+        sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
+      };
+    };
+    "flatted-3.1.1" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz";
+        sha512 = "zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==";
+      };
+    };
+    "flatten-1.0.3" = {
+      name = "flatten";
+      packageName = "flatten";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz";
+        sha512 = "dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==";
+      };
+    };
+    "flv.js-1.5.0" = {
+      name = "flv.js";
+      packageName = "flv.js";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flv.js/-/flv.js-1.5.0.tgz";
+        sha512 = "7tFwccqkFXpA7RIED0KvuNny2qVnpuGc5nTGsRpzrCT+qtwIaZyciK5UgyvgtlAMYaPFzYS0wdI92JiSBKOyXw==";
+      };
+    };
+    "follow-redirects-1.14.0" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz";
+        sha512 = "0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==";
+      };
+    };
+    "fontsource-noto-sans-3.1.5" = {
+      name = "fontsource-noto-sans";
+      packageName = "fontsource-noto-sans";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fontsource-noto-sans/-/fontsource-noto-sans-3.1.5.tgz";
+        sha512 = "HtnF1LBkz1kW/7KYSbV4UB9+0Ogyik0qoyki6nWqb6ob319WCurxjZQlZn3e/szosPaWmF4L9UASACXQ1U6ZJQ==";
+      };
+    };
+    "fontsource-noto-sans-hk-3.1.5" = {
+      name = "fontsource-noto-sans-hk";
+      packageName = "fontsource-noto-sans-hk";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fontsource-noto-sans-hk/-/fontsource-noto-sans-hk-3.1.5.tgz";
+        sha512 = "TVmCd5MVyfh7yk/q5eBcMU5+IzzK3GBIxGGmdMZIf6cL52KAJajoXNxh7avMXj0PUE0o0LgpjnJgRu867T4qEQ==";
+      };
+    };
+    "fontsource-noto-sans-jp-3.1.5" = {
+      name = "fontsource-noto-sans-jp";
+      packageName = "fontsource-noto-sans-jp";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fontsource-noto-sans-jp/-/fontsource-noto-sans-jp-3.1.5.tgz";
+        sha512 = "+B/Jul/9jx0Oh6AVIvAcT7ztLP3dffNhvtCCVDXyyGGlpkH1KyFdwUnRsqL+py6qsOFE626wIUK2EOaA25RQkA==";
+      };
+    };
+    "fontsource-noto-sans-kr-3.1.5" = {
+      name = "fontsource-noto-sans-kr";
+      packageName = "fontsource-noto-sans-kr";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fontsource-noto-sans-kr/-/fontsource-noto-sans-kr-3.1.5.tgz";
+        sha512 = "NKYWuGPk5Q/vPXu2dTt5CTXUD4daaiV7H/WD+zQt005rGFdhZ3Hu75sb6x9NfzZYgWNlZH4Rf32gIyEOhJKmoQ==";
+      };
+    };
+    "fontsource-noto-sans-sc-3.1.5" = {
+      name = "fontsource-noto-sans-sc";
+      packageName = "fontsource-noto-sans-sc";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fontsource-noto-sans-sc/-/fontsource-noto-sans-sc-3.1.5.tgz";
+        sha512 = "4uX6tkvtxWMxiNQp1sf/uKrLm22dQx9jfN8TxL4XCVSIerYQ1mgZFXyGgNjub19DtuIHFI/cxALNhOeCq5RwPg==";
+      };
+    };
+    "for-in-1.0.2" = {
+      name = "for-in";
+      packageName = "for-in";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    };
+    "forwarded-0.1.2" = {
+      name = "forwarded";
+      packageName = "forwarded";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+      };
+    };
+    "fragment-cache-0.2.1" = {
+      name = "fragment-cache";
+      packageName = "fragment-cache";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    };
+    "fresh-0.5.2" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    };
+    "fs-extra-8.1.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
+        sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+      };
+    };
+    "fs-minipass-2.1.0" = {
+      name = "fs-minipass";
+      packageName = "fs-minipass";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
+        sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "fsevents-1.2.13" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
+      };
+    };
+    "fsevents-2.3.2" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz";
+        sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "functional-red-black-tree-1.0.1" = {
+      name = "functional-red-black-tree";
+      packageName = "functional-red-black-tree";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    };
+    "gather-stream-1.0.0" = {
+      name = "gather-stream";
+      packageName = "gather-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz";
+        sha1 = "b33994af457a8115700d410f317733cbe7a0904b";
+      };
+    };
+    "gensync-1.0.0-beta.2" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz";
+        sha512 = "3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+      };
+    };
+    "get-intrinsic-1.1.1" = {
+      name = "get-intrinsic";
+      packageName = "get-intrinsic";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha512 = "kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==";
+      };
+    };
+    "get-own-enumerable-property-symbols-3.0.2" = {
+      name = "get-own-enumerable-property-symbols";
+      packageName = "get-own-enumerable-property-symbols";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
+        sha512 = "I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==";
+      };
+    };
+    "get-stdin-6.0.0" = {
+      name = "get-stdin";
+      packageName = "get-stdin";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz";
+        sha512 = "jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==";
+      };
+    };
+    "get-stdin-8.0.0" = {
+      name = "get-stdin";
+      packageName = "get-stdin";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz";
+        sha512 = "sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==";
+      };
+    };
+    "get-stream-4.1.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
+        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
+      };
+    };
+    "get-stream-6.0.1" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz";
+        sha512 = "ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==";
+      };
+    };
+    "get-value-2.0.6" = {
+      name = "get-value";
+      packageName = "get-value";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    };
+    "glob-7.1.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+      };
+    };
+    "glob-parent-3.1.0" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    };
+    "glob-parent-5.1.2" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
+      };
+    };
+    "glob-to-regexp-0.3.0" = {
+      name = "glob-to-regexp";
+      packageName = "glob-to-regexp";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz";
+        sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
+      };
+    };
+    "glob-to-regexp-0.4.1" = {
+      name = "glob-to-regexp";
+      packageName = "glob-to-regexp";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+        sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
+      };
+    };
+    "global-modules-2.0.0" = {
+      name = "global-modules";
+      packageName = "global-modules";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz";
+        sha512 = "NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==";
+      };
+    };
+    "global-prefix-3.0.0" = {
+      name = "global-prefix";
+      packageName = "global-prefix";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz";
+        sha512 = "awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==";
+      };
+    };
+    "globals-11.12.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "11.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+        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" = {
+      name = "globals";
+      packageName = "globals";
+      version = "13.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz";
+        sha512 = "rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==";
+      };
+    };
+    "globby-11.0.3" = {
+      name = "globby";
+      packageName = "globby";
+      version = "11.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz";
+        sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==";
+      };
+    };
+    "globby-6.1.0" = {
+      name = "globby";
+      packageName = "globby";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz";
+        sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+      };
+    };
+    "globby-9.2.0" = {
+      name = "globby";
+      packageName = "globby";
+      version = "9.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz";
+        sha512 = "ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==";
+      };
+    };
+    "globjoin-0.1.4" = {
+      name = "globjoin";
+      packageName = "globjoin";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz";
+        sha1 = "2f4494ac8919e3767c5cbb691e9f463324285d43";
+      };
+    };
+    "gonzales-pe-4.3.0" = {
+      name = "gonzales-pe";
+      packageName = "gonzales-pe";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz";
+        sha512 = "otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==";
+      };
+    };
+    "graceful-fs-4.2.6" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
+      };
+    };
+    "handle-thing-2.0.1" = {
+      name = "handle-thing";
+      packageName = "handle-thing";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz";
+        sha512 = "9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==";
+      };
+    };
+    "hard-rejection-2.1.0" = {
+      name = "hard-rejection";
+      packageName = "hard-rejection";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz";
+        sha512 = "VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==";
+      };
+    };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
+    "has-ansi-2.0.0" = {
+      name = "has-ansi";
+      packageName = "has-ansi";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+      };
+    };
+    "has-bigints-1.0.1" = {
+      name = "has-bigints";
+      packageName = "has-bigints";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz";
+        sha512 = "LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==";
+      };
+    };
+    "has-flag-1.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz";
+        sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "has-symbols-1.0.2" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
+      };
+    };
+    "has-value-0.3.1" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    };
+    "has-value-1.0.0" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    };
+    "has-values-0.1.4" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    };
+    "has-values-1.0.0" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    };
+    "he-1.2.0" = {
+      name = "he";
+      packageName = "he";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+      };
+    };
+    "headroom.js-0.12.0" = {
+      name = "headroom.js";
+      packageName = "headroom.js";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/headroom.js/-/headroom.js-0.12.0.tgz";
+        sha512 = "iXnAafUm3FdzfJ91uixLws2hkKI1jC8bAKK/pt7XYr8Ie1jO7xbK48Ycpl9tUPyBgkzuj1p/PhJS0fy4E/5anA==";
+      };
+    };
+    "hex-color-regex-1.1.0" = {
+      name = "hex-color-regex";
+      packageName = "hex-color-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz";
+        sha512 = "l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==";
+      };
+    };
+    "hls.js-0.14.17" = {
+      name = "hls.js";
+      packageName = "hls.js";
+      version = "0.14.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hls.js/-/hls.js-0.14.17.tgz";
+        sha512 = "25A7+m6qqp6UVkuzUQ//VVh2EEOPYlOBg32ypr34bcPO7liBMOkKFvbjbCBfiPAOTA/7BSx1Dujft3Th57WyFg==";
+      };
+    };
+    "hosted-git-info-2.8.9" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "2.8.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
+        sha512 = "mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==";
+      };
+    };
+    "hosted-git-info-4.0.2" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz";
+        sha512 = "c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==";
+      };
+    };
+    "hpack.js-2.1.6" = {
+      name = "hpack.js";
+      packageName = "hpack.js";
+      version = "2.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz";
+        sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
+      };
+    };
+    "hsl-regex-1.0.0" = {
+      name = "hsl-regex";
+      packageName = "hsl-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz";
+        sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e";
+      };
+    };
+    "hsla-regex-1.0.0" = {
+      name = "hsla-regex";
+      packageName = "hsla-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz";
+        sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
+      };
+    };
+    "html-entities-1.4.0" = {
+      name = "html-entities";
+      packageName = "html-entities";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz";
+        sha512 = "8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==";
+      };
+    };
+    "html-loader-1.3.2" = {
+      name = "html-loader";
+      packageName = "html-loader";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz";
+        sha512 = "DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA==";
+      };
+    };
+    "html-minifier-terser-5.1.1" = {
+      name = "html-minifier-terser";
+      packageName = "html-minifier-terser";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha512 = "ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==";
+      };
+    };
+    "html-tags-2.0.0" = {
+      name = "html-tags";
+      packageName = "html-tags";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz";
+        sha1 = "10b30a386085f43cede353cc8fa7cb0deeea668b";
+      };
+    };
+    "html-tags-3.1.0" = {
+      name = "html-tags";
+      packageName = "html-tags";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz";
+        sha512 = "1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==";
+      };
+    };
+    "html-webpack-plugin-4.5.2" = {
+      name = "html-webpack-plugin";
+      packageName = "html-webpack-plugin";
+      version = "4.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz";
+        sha512 = "q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==";
+      };
+    };
+    "htmlparser2-3.10.1" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz";
+        sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==";
+      };
+    };
+    "htmlparser2-4.1.0" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz";
+        sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
+      };
+    };
+    "http-deceiver-1.2.7" = {
+      name = "http-deceiver";
+      packageName = "http-deceiver";
+      version = "1.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz";
+        sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
+      };
+    };
+    "http-errors-1.6.3" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz";
+        sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+      };
+    };
+    "http-errors-1.7.2" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+      };
+    };
+    "http-parser-js-0.5.3" = {
+      name = "http-parser-js";
+      packageName = "http-parser-js";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz";
+        sha512 = "t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==";
+      };
+    };
+    "http-proxy-1.18.1" = {
+      name = "http-proxy";
+      packageName = "http-proxy";
+      version = "1.18.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz";
+        sha512 = "7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==";
+      };
+    };
+    "http-proxy-middleware-0.19.1" = {
+      name = "http-proxy-middleware";
+      packageName = "http-proxy-middleware";
+      version = "0.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
+        sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
+      };
+    };
+    "human-signals-2.1.0" = {
+      name = "human-signals";
+      packageName = "human-signals";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz";
+        sha512 = "B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==";
+      };
+    };
+    "iconv-lite-0.4.24" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+      };
+    };
+    "iconv-lite-0.6.2" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz";
+        sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
+      };
+    };
+    "icss-utils-5.1.0" = {
+      name = "icss-utils";
+      packageName = "icss-utils";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz";
+        sha512 = "soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==";
+      };
+    };
+    "ignore-4.0.6" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz";
+        sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
+      };
+    };
+    "ignore-5.1.8" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "5.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+      };
+    };
+    "immediate-3.0.6" = {
+      name = "immediate";
+      packageName = "immediate";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz";
+        sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
+      };
+    };
+    "import-cwd-2.1.0" = {
+      name = "import-cwd";
+      packageName = "import-cwd";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz";
+        sha1 = "aa6cf36e722761285cb371ec6519f53e2435b0a9";
+      };
+    };
+    "import-fresh-2.0.0" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz";
+        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+      };
+    };
+    "import-fresh-3.3.0" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
+      };
+    };
+    "import-from-2.1.0" = {
+      name = "import-from";
+      packageName = "import-from";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz";
+        sha1 = "335db7f2a7affd53aaa471d4b8021dee36b7f3b1";
+      };
+    };
+    "import-lazy-3.1.0" = {
+      name = "import-lazy";
+      packageName = "import-lazy";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz";
+        sha512 = "8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==";
+      };
+    };
+    "import-lazy-4.0.0" = {
+      name = "import-lazy";
+      packageName = "import-lazy";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz";
+        sha512 = "rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==";
+      };
+    };
+    "import-local-2.0.0" = {
+      name = "import-local";
+      packageName = "import-local";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz";
+        sha512 = "b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==";
+      };
+    };
+    "import-local-3.0.2" = {
+      name = "import-local";
+      packageName = "import-local";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz";
+        sha512 = "vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
+    "indent-string-3.2.0" = {
+      name = "indent-string";
+      packageName = "indent-string";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz";
+        sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
+      };
+    };
+    "indent-string-4.0.0" = {
+      name = "indent-string";
+      packageName = "indent-string";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz";
+        sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==";
+      };
+    };
+    "indexes-of-1.0.1" = {
+      name = "indexes-of";
+      packageName = "indexes-of";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz";
+        sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+      };
+    };
+    "infer-owner-1.0.4" = {
+      name = "infer-owner";
+      packageName = "infer-owner";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz";
+        sha512 = "IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.3" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "ini-1.3.8" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";
+        sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==";
+      };
+    };
+    "internal-ip-4.3.0" = {
+      name = "internal-ip";
+      packageName = "internal-ip";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz";
+        sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
+      };
+    };
+    "interpret-2.2.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz";
+        sha512 = "Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==";
+      };
+    };
+    "intersection-observer-0.12.0" = {
+      name = "intersection-observer";
+      packageName = "intersection-observer";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.0.tgz";
+        sha512 = "2Vkz8z46Dv401zTWudDGwO7KiGHNDkMv417T5ItcNYfmvHR/1qCTVBO9vwH8zZmQ0WkA/1ARwpysR9bsnop4NQ==";
+      };
+    };
+    "ip-1.1.5" = {
+      name = "ip";
+      packageName = "ip";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz";
+        sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+      };
+    };
+    "ip-regex-2.1.0" = {
+      name = "ip-regex";
+      packageName = "ip-regex";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
+        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+      };
+    };
+    "ipaddr.js-1.9.1" = {
+      name = "ipaddr.js";
+      packageName = "ipaddr.js";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+      };
+    };
+    "irregular-plurals-1.4.0" = {
+      name = "irregular-plurals";
+      packageName = "irregular-plurals";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz";
+        sha1 = "2ca9b033651111855412f16be5d77c62a458a766";
+      };
+    };
+    "is-absolute-url-2.1.0" = {
+      name = "is-absolute-url";
+      packageName = "is-absolute-url";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz";
+        sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6";
+      };
+    };
+    "is-absolute-url-3.0.3" = {
+      name = "is-absolute-url";
+      packageName = "is-absolute-url";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
+        sha512 = "opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==";
+      };
+    };
+    "is-accessor-descriptor-0.1.6" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    };
+    "is-accessor-descriptor-1.0.0" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
+      };
+    };
+    "is-alphabetical-1.0.4" = {
+      name = "is-alphabetical";
+      packageName = "is-alphabetical";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz";
+        sha512 = "DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==";
+      };
+    };
+    "is-alphanumeric-1.0.0" = {
+      name = "is-alphanumeric";
+      packageName = "is-alphanumeric";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz";
+        sha1 = "4a9cef71daf4c001c1d81d63d140cf53fd6889f4";
+      };
+    };
+    "is-alphanumerical-1.0.4" = {
+      name = "is-alphanumerical";
+      packageName = "is-alphanumerical";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz";
+        sha512 = "UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==";
+      };
+    };
+    "is-arguments-1.1.0" = {
+      name = "is-arguments";
+      packageName = "is-arguments";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz";
+        sha512 = "1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==";
+      };
+    };
+    "is-arrayish-0.2.1" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    };
+    "is-arrayish-0.3.2" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+      };
+    };
+    "is-bigint-1.0.2" = {
+      name = "is-bigint";
+      packageName = "is-bigint";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz";
+        sha512 = "0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==";
+      };
+    };
+    "is-binary-path-1.0.1" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    };
+    "is-binary-path-2.1.0" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
+      };
+    };
+    "is-boolean-object-1.1.0" = {
+      name = "is-boolean-object";
+      packageName = "is-boolean-object";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz";
+        sha512 = "a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==";
+      };
+    };
+    "is-buffer-1.1.6" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+      };
+    };
+    "is-buffer-2.0.5" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz";
+        sha512 = "i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==";
+      };
+    };
+    "is-callable-1.2.3" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz";
+        sha512 = "J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==";
+      };
+    };
+    "is-color-stop-1.1.0" = {
+      name = "is-color-stop";
+      packageName = "is-color-stop";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz";
+        sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
+      };
+    };
+    "is-core-module-2.3.0" = {
+      name = "is-core-module";
+      packageName = "is-core-module";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz";
+        sha512 = "xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==";
+      };
+    };
+    "is-data-descriptor-0.1.4" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    };
+    "is-data-descriptor-1.0.0" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
+      };
+    };
+    "is-date-object-1.0.2" = {
+      name = "is-date-object";
+      packageName = "is-date-object";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+      };
+    };
+    "is-decimal-1.0.4" = {
+      name = "is-decimal";
+      packageName = "is-decimal";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz";
+        sha512 = "RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==";
+      };
+    };
+    "is-descriptor-0.1.6" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
+      };
+    };
+    "is-descriptor-1.0.2" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
+      };
+    };
+    "is-directory-0.3.1" = {
+      name = "is-directory";
+      packageName = "is-directory";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz";
+        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+      };
+    };
+    "is-extendable-0.1.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    };
+    "is-extendable-1.0.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-fullwidth-code-point-3.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+      };
+    };
+    "is-glob-3.1.0" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-hexadecimal-1.0.4" = {
+      name = "is-hexadecimal";
+      packageName = "is-hexadecimal";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz";
+        sha512 = "gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==";
+      };
+    };
+    "is-module-1.0.0" = {
+      name = "is-module";
+      packageName = "is-module";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz";
+        sha1 = "3258fb69f78c14d5b815d664336b4cffb6441591";
+      };
+    };
+    "is-negative-zero-2.0.1" = {
+      name = "is-negative-zero";
+      packageName = "is-negative-zero";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
+        sha512 = "2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==";
+      };
+    };
+    "is-number-3.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-number-object-1.0.4" = {
+      name = "is-number-object";
+      packageName = "is-number-object";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz";
+        sha512 = "zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==";
+      };
+    };
+    "is-obj-1.0.1" = {
+      name = "is-obj";
+      packageName = "is-obj";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz";
+        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+      };
+    };
+    "is-obj-2.0.0" = {
+      name = "is-obj";
+      packageName = "is-obj";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz";
+        sha512 = "drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==";
+      };
+    };
+    "is-path-cwd-2.2.0" = {
+      name = "is-path-cwd";
+      packageName = "is-path-cwd";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
+        sha512 = "w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==";
+      };
+    };
+    "is-path-in-cwd-2.1.0" = {
+      name = "is-path-in-cwd";
+      packageName = "is-path-in-cwd";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
+        sha512 = "rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==";
+      };
+    };
+    "is-path-inside-2.1.0" = {
+      name = "is-path-inside";
+      packageName = "is-path-inside";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz";
+        sha512 = "wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==";
+      };
+    };
+    "is-plain-obj-1.1.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+      };
+    };
+    "is-plain-obj-2.1.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==";
+      };
+    };
+    "is-plain-object-2.0.4" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
+      };
+    };
+    "is-regex-1.1.2" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz";
+        sha512 = "axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==";
+      };
+    };
+    "is-regexp-1.0.0" = {
+      name = "is-regexp";
+      packageName = "is-regexp";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz";
+        sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+      };
+    };
+    "is-regexp-2.1.0" = {
+      name = "is-regexp";
+      packageName = "is-regexp";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz";
+        sha512 = "OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==";
+      };
+    };
+    "is-resolvable-1.1.0" = {
+      name = "is-resolvable";
+      packageName = "is-resolvable";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz";
+        sha512 = "qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==";
+      };
+    };
+    "is-stream-1.1.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+      };
+    };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
+    "is-string-1.0.5" = {
+      name = "is-string";
+      packageName = "is-string";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz";
+        sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==";
+      };
+    };
+    "is-supported-regexp-flag-1.0.1" = {
+      name = "is-supported-regexp-flag";
+      packageName = "is-supported-regexp-flag";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz";
+        sha512 = "3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==";
+      };
+    };
+    "is-symbol-1.0.3" = {
+      name = "is-symbol";
+      packageName = "is-symbol";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+      };
+    };
+    "is-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "is-unicode-supported-0.1.0" = {
+      name = "is-unicode-supported";
+      packageName = "is-unicode-supported";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz";
+        sha512 = "knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==";
+      };
+    };
+    "is-whitespace-character-1.0.4" = {
+      name = "is-whitespace-character";
+      packageName = "is-whitespace-character";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz";
+        sha512 = "SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==";
+      };
+    };
+    "is-windows-1.0.2" = {
+      name = "is-windows";
+      packageName = "is-windows";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+      };
+    };
+    "is-word-character-1.0.4" = {
+      name = "is-word-character";
+      packageName = "is-word-character";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz";
+        sha512 = "5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==";
+      };
+    };
+    "is-wsl-1.1.0" = {
+      name = "is-wsl";
+      packageName = "is-wsl";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz";
+        sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+      };
+    };
+    "isarray-0.0.1" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isobject-2.1.0" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    };
+    "isobject-3.0.1" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    };
+    "jellyfin-apiclient-1.8.0" = {
+      name = "jellyfin-apiclient";
+      packageName = "jellyfin-apiclient";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jellyfin-apiclient/-/jellyfin-apiclient-1.8.0.tgz";
+        sha512 = "fwAF1G89amm3uO2Yw0E26fW5X6JoyRUnOdBEeuSN04/NpdKKVHD4u53dgqF0jHzXNuKdn5eh0AuV37cMKzBanA==";
+      };
+    };
+    "jest-worker-24.9.0" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz";
+        sha512 = "51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==";
+      };
+    };
+    "jest-worker-26.6.2" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "26.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz";
+        sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
+      };
+    };
+    "jquery-3.6.0" = {
+      name = "jquery";
+      packageName = "jquery";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz";
+        sha512 = "JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==";
+      };
+    };
+    "js-base64-2.6.4" = {
+      name = "js-base64";
+      packageName = "js-base64";
+      version = "2.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz";
+        sha512 = "pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.14.1" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
+      };
+    };
+    "jsesc-0.5.0" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-parse-better-errors-1.0.2" = {
+      name = "json-parse-better-errors";
+      packageName = "json-parse-better-errors";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+      };
+    };
+    "json-parse-even-better-errors-2.3.1" = {
+      name = "json-parse-even-better-errors";
+      packageName = "json-parse-even-better-errors";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+        sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
+      };
+    };
+    "json-schema-traverse-0.4.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+      };
+    };
+    "json-schema-traverse-1.0.0" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha512 = "NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==";
+      };
+    };
+    "json-stable-stringify-without-jsonify-1.0.1" = {
+      name = "json-stable-stringify-without-jsonify";
+      packageName = "json-stable-stringify-without-jsonify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    };
+    "json3-3.3.3" = {
+      name = "json3";
+      packageName = "json3";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz";
+        sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==";
+      };
+    };
+    "json5-1.0.1" = {
+      name = "json5";
+      packageName = "json5";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz";
+        sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
+      };
+    };
+    "json5-2.2.0" = {
+      name = "json5";
+      packageName = "json5";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz";
+        sha512 = "f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==";
+      };
+    };
+    "jsonfile-4.0.0" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+      };
+    };
+    "jstree-3.3.11" = {
+      name = "jstree";
+      packageName = "jstree";
+      version = "3.3.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jstree/-/jstree-3.3.11.tgz";
+        sha512 = "9ZJKroPjCyjb6JLPuAbBrLJKT6pS1f4m5gkwoEagG5oQWtvzm0IiDsntXTxeFtz7AmqrKfij+gLfF9MgWriNxg==";
+      };
+    };
+    "jszip-3.6.0" = {
+      name = "jszip";
+      packageName = "jszip";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz";
+        sha512 = "jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==";
+      };
+    };
+    "killable-1.0.1" = {
+      name = "killable";
+      packageName = "killable";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz";
+        sha512 = "LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==";
+      };
+    };
+    "kind-of-3.2.2" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    };
+    "kind-of-4.0.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    };
+    "kind-of-5.1.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
+        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+      };
+    };
+    "kind-of-6.0.3" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
+        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
+      };
+    };
+    "klona-2.0.4" = {
+      name = "klona";
+      packageName = "klona";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz";
+        sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==";
+      };
+    };
+    "known-css-properties-0.11.0" = {
+      name = "known-css-properties";
+      packageName = "known-css-properties";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.11.0.tgz";
+        sha512 = "bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w==";
+      };
+    };
+    "known-css-properties-0.21.0" = {
+      name = "known-css-properties";
+      packageName = "known-css-properties";
+      version = "0.21.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz";
+        sha512 = "sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==";
+      };
+    };
+    "leven-2.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz";
+        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+      };
+    };
+    "levn-0.4.1" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";
+        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
+      };
+    };
+    "libarchive.js-1.3.0" = {
+      name = "libarchive.js";
+      packageName = "libarchive.js";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/libarchive.js/-/libarchive.js-1.3.0.tgz";
+        sha512 = "EkQfRXt9DhWwj6BnEA2TNpOf4jTnzSTUPGgE+iFxcdNqjktY8GitbDeHnx8qZA0/IukNyyBUR3oQKRdYkO+HFg==";
+      };
+    };
+    "libass-wasm-https://github.com/jellyfin/JavascriptSubtitlesOctopus/archive/refs/tags/4.0.0-jf-smarttv.tar.gz" = {
+      name = "libass-wasm";
+      packageName = "libass-wasm";
+      version = "4.0.0";
+      src = fetchurl {
+        name = "libass-wasm-4.0.0.tar.gz";
+        url = "https://codeload.github.com/jellyfin/JavascriptSubtitlesOctopus/tar.gz/refs/tags/4.0.0-jf-smarttv";
+        sha256 = "0acf200b93ed99c2e22a86c1c96442ea5a3159e0a7f5de9f028053c86b065197";
+      };
+    };
+    "lie-3.1.1" = {
+      name = "lie";
+      packageName = "lie";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz";
+        sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+      };
+    };
+    "lie-3.3.0" = {
+      name = "lie";
+      packageName = "lie";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz";
+        sha512 = "UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==";
+      };
+    };
+    "lines-and-columns-1.1.6" = {
+      name = "lines-and-columns";
+      packageName = "lines-and-columns";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+        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";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz";
+        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+      };
+    };
+    "loader-runner-4.2.0" = {
+      name = "loader-runner";
+      packageName = "loader-runner";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz";
+        sha512 = "92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==";
+      };
+    };
+    "loader-utils-1.4.0" = {
+      name = "loader-utils";
+      packageName = "loader-utils";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz";
+        sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
+      };
+    };
+    "loader-utils-2.0.0" = {
+      name = "loader-utils";
+      packageName = "loader-utils";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha512 = "rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==";
+      };
+    };
+    "localforage-1.9.0" = {
+      name = "localforage";
+      packageName = "localforage";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz";
+        sha512 = "rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==";
+      };
+    };
+    "locate-path-2.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz";
+        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+      };
+    };
+    "locate-path-3.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+      };
+    };
+    "locate-path-5.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+      };
+    };
+    "lodash-4.17.21" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+        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";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    };
+    "lodash.debounce-4.0.8" = {
+      name = "lodash.debounce";
+      packageName = "lodash.debounce";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+        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";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+        sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+      };
+    };
+    "lodash.template-4.5.0" = {
+      name = "lodash.template";
+      packageName = "lodash.template";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz";
+        sha512 = "84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==";
+      };
+    };
+    "lodash.templatesettings-4.2.0" = {
+      name = "lodash.templatesettings";
+      packageName = "lodash.templatesettings";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz";
+        sha512 = "stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==";
+      };
+    };
+    "lodash.truncate-4.4.2" = {
+      name = "lodash.truncate";
+      packageName = "lodash.truncate";
+      version = "4.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
+      };
+    };
+    "lodash.uniq-4.5.0" = {
+      name = "lodash.uniq";
+      packageName = "lodash.uniq";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+      };
+    };
+    "log-symbols-1.0.2" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz";
+        sha1 = "376ff7b58ea3086a0f09facc74617eca501e1a18";
+      };
+    };
+    "log-symbols-2.2.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz";
+        sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==";
+      };
+    };
+    "log-symbols-4.1.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz";
+        sha512 = "8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==";
+      };
+    };
+    "loglevel-1.7.1" = {
+      name = "loglevel";
+      packageName = "loglevel";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz";
+        sha512 = "Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==";
+      };
+    };
+    "longest-streak-2.0.4" = {
+      name = "longest-streak";
+      packageName = "longest-streak";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz";
+        sha512 = "vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==";
+      };
+    };
+    "loud-rejection-1.6.0" = {
+      name = "loud-rejection";
+      packageName = "loud-rejection";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz";
+        sha1 = "5b46f80147edee578870f086d04821cf998e551f";
+      };
+    };
+    "lower-case-2.0.2" = {
+      name = "lower-case";
+      packageName = "lower-case";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz";
+        sha512 = "7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==";
+      };
+    };
+    "lru-cache-6.0.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+      };
+    };
+    "magic-string-0.25.7" = {
+      name = "magic-string";
+      packageName = "magic-string";
+      version = "0.25.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz";
+        sha512 = "4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==";
+      };
+    };
+    "make-dir-3.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
+      };
+    };
+    "map-cache-0.2.2" = {
+      name = "map-cache";
+      packageName = "map-cache";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    };
+    "map-obj-1.0.1" = {
+      name = "map-obj";
+      packageName = "map-obj";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz";
+        sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+      };
+    };
+    "map-obj-2.0.0" = {
+      name = "map-obj";
+      packageName = "map-obj";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz";
+        sha1 = "a65cd29087a92598b8791257a523e021222ac1f9";
+      };
+    };
+    "map-obj-4.2.1" = {
+      name = "map-obj";
+      packageName = "map-obj";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz";
+        sha512 = "+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==";
+      };
+    };
+    "map-visit-1.0.0" = {
+      name = "map-visit";
+      packageName = "map-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    };
+    "markdown-escapes-1.0.4" = {
+      name = "markdown-escapes";
+      packageName = "markdown-escapes";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz";
+        sha512 = "8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==";
+      };
+    };
+    "markdown-table-1.1.3" = {
+      name = "markdown-table";
+      packageName = "markdown-table";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz";
+        sha512 = "1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==";
+      };
+    };
+    "marks-pane-1.0.9" = {
+      name = "marks-pane";
+      packageName = "marks-pane";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marks-pane/-/marks-pane-1.0.9.tgz";
+        sha512 = "Ahs4oeG90tbdPWwAJkAAoHg2lRR8lAs9mZXETNPO9hYg3AkjUJBKi1NQ4aaIQZVGrig7c/3NUV1jANl8rFTeMg==";
+      };
+    };
+    "material-design-icons-iconfont-6.1.0" = {
+      name = "material-design-icons-iconfont";
+      packageName = "material-design-icons-iconfont";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.1.0.tgz";
+        sha512 = "wRJtOo1v1ch+gN8PRsj0IGJznk+kQ8mz13ds/nuhLI+Qyf/931ZlRpd92oq0IRPpZIb+bhX8pRjzIVdcPDKmiQ==";
+      };
+    };
+    "mathml-tag-names-2.1.3" = {
+      name = "mathml-tag-names";
+      packageName = "mathml-tag-names";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz";
+        sha512 = "APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==";
+      };
+    };
+    "mdast-util-compact-1.0.4" = {
+      name = "mdast-util-compact";
+      packageName = "mdast-util-compact";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz";
+        sha512 = "3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==";
+      };
+    };
+    "mdast-util-from-markdown-0.8.5" = {
+      name = "mdast-util-from-markdown";
+      packageName = "mdast-util-from-markdown";
+      version = "0.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz";
+        sha512 = "2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==";
+      };
+    };
+    "mdast-util-to-markdown-0.6.5" = {
+      name = "mdast-util-to-markdown";
+      packageName = "mdast-util-to-markdown";
+      version = "0.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz";
+        sha512 = "XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==";
+      };
+    };
+    "mdast-util-to-string-2.0.0" = {
+      name = "mdast-util-to-string";
+      packageName = "mdast-util-to-string";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz";
+        sha512 = "AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==";
+      };
+    };
+    "mdn-data-2.0.14" = {
+      name = "mdn-data";
+      packageName = "mdn-data";
+      version = "2.0.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz";
+        sha512 = "dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==";
+      };
+    };
+    "mdn-data-2.0.4" = {
+      name = "mdn-data";
+      packageName = "mdn-data";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz";
+        sha512 = "iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==";
+      };
+    };
+    "media-typer-0.3.0" = {
+      name = "media-typer";
+      packageName = "media-typer";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    };
+    "memory-fs-0.4.1" = {
+      name = "memory-fs";
+      packageName = "memory-fs";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz";
+        sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
+      };
+    };
+    "meow-5.0.0" = {
+      name = "meow";
+      packageName = "meow";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz";
+        sha512 = "CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==";
+      };
+    };
+    "meow-9.0.0" = {
+      name = "meow";
+      packageName = "meow";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz";
+        sha512 = "+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==";
+      };
+    };
+    "merge-descriptors-1.0.1" = {
+      name = "merge-descriptors";
+      packageName = "merge-descriptors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    };
+    "merge-stream-2.0.0" = {
+      name = "merge-stream";
+      packageName = "merge-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
+        sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
+      };
+    };
+    "merge2-1.4.1" = {
+      name = "merge2";
+      packageName = "merge2";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
+      };
+    };
+    "methods-1.1.2" = {
+      name = "methods";
+      packageName = "methods";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    };
+    "micromark-2.11.4" = {
+      name = "micromark";
+      packageName = "micromark";
+      version = "2.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz";
+        sha512 = "+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==";
+      };
+    };
+    "micromatch-3.1.10" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "3.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
+        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
+      };
+    };
+    "micromatch-4.0.4" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz";
+        sha512 = "pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==";
+      };
+    };
+    "mime-1.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+      };
+    };
+    "mime-2.5.2" = {
+      name = "mime";
+      packageName = "mime";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz";
+        sha512 = "tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==";
+      };
+    };
+    "mime-db-1.47.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.47.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz";
+        sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
+      };
+    };
+    "mime-types-2.1.30" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz";
+        sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==";
+      };
+    };
+    "mimic-fn-2.1.0" = {
+      name = "mimic-fn";
+      packageName = "mimic-fn";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+      };
+    };
+    "min-indent-1.0.1" = {
+      name = "min-indent";
+      packageName = "min-indent";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz";
+        sha512 = "I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==";
+      };
+    };
+    "minimalistic-assert-1.0.1" = {
+      name = "minimalistic-assert";
+      packageName = "minimalistic-assert";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "minimist-options-3.0.2" = {
+      name = "minimist-options";
+      packageName = "minimist-options";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz";
+        sha512 = "FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==";
+      };
+    };
+    "minimist-options-4.1.0" = {
+      name = "minimist-options";
+      packageName = "minimist-options";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz";
+        sha512 = "Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==";
+      };
+    };
+    "minipass-3.1.3" = {
+      name = "minipass";
+      packageName = "minipass";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz";
+        sha512 = "Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==";
+      };
+    };
+    "minipass-collect-1.0.2" = {
+      name = "minipass-collect";
+      packageName = "minipass-collect";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz";
+        sha512 = "6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==";
+      };
+    };
+    "minipass-flush-1.0.5" = {
+      name = "minipass-flush";
+      packageName = "minipass-flush";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz";
+        sha512 = "JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==";
+      };
+    };
+    "minipass-pipeline-1.2.4" = {
+      name = "minipass-pipeline";
+      packageName = "minipass-pipeline";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
+        sha512 = "xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==";
+      };
+    };
+    "minizlib-2.1.2" = {
+      name = "minizlib";
+      packageName = "minizlib";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
+        sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
+      };
+    };
+    "mixin-deep-1.3.2" = {
+      name = "mixin-deep";
+      packageName = "mixin-deep";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "mkdirp-1.0.4" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "multicast-dns-6.2.3" = {
+      name = "multicast-dns";
+      packageName = "multicast-dns";
+      version = "6.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz";
+        sha512 = "ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==";
+      };
+    };
+    "multicast-dns-service-types-1.1.0" = {
+      name = "multicast-dns-service-types";
+      packageName = "multicast-dns-service-types";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
+        sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
+      };
+    };
+    "nan-2.14.2" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
+        sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+      };
+    };
+    "nanoid-3.1.22" = {
+      name = "nanoid";
+      packageName = "nanoid";
+      version = "3.1.22";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz";
+        sha512 = "/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==";
+      };
+    };
+    "nanomatch-1.2.13" = {
+      name = "nanomatch";
+      packageName = "nanomatch";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+      };
+    };
+    "native-promise-only-0.8.1" = {
+      name = "native-promise-only";
+      packageName = "native-promise-only";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz";
+        sha1 = "20a318c30cb45f71fe7adfbf7b21c99c1472ef11";
+      };
+    };
+    "natural-compare-1.4.0" = {
+      name = "natural-compare";
+      packageName = "natural-compare";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    };
+    "negotiator-0.6.2" = {
+      name = "negotiator";
+      packageName = "negotiator";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+      };
+    };
+    "neo-async-2.6.2" = {
+      name = "neo-async";
+      packageName = "neo-async";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
+      };
+    };
+    "next-tick-1.0.0" = {
+      name = "next-tick";
+      packageName = "next-tick";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
+        sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+      };
+    };
+    "nice-try-1.0.5" = {
+      name = "nice-try";
+      packageName = "nice-try";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
+        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
+      };
+    };
+    "no-case-3.0.4" = {
+      name = "no-case";
+      packageName = "no-case";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz";
+        sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==";
+      };
+    };
+    "node-forge-0.10.0" = {
+      name = "node-forge";
+      packageName = "node-forge";
+      version = "0.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz";
+        sha512 = "PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==";
+      };
+    };
+    "node-releases-1.1.71" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.71";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz";
+        sha512 = "zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==";
+      };
+    };
+    "normalize-package-data-2.5.0" = {
+      name = "normalize-package-data";
+      packageName = "normalize-package-data";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
+      };
+    };
+    "normalize-package-data-3.0.2" = {
+      name = "normalize-package-data";
+      packageName = "normalize-package-data";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz";
+        sha512 = "6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==";
+      };
+    };
+    "normalize-path-2.1.1" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "normalize-range-0.1.2" = {
+      name = "normalize-range";
+      packageName = "normalize-range";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz";
+        sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
+      };
+    };
+    "normalize-selector-0.2.0" = {
+      name = "normalize-selector";
+      packageName = "normalize-selector";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz";
+        sha1 = "d0b145eb691189c63a78d201dc4fdb1293ef0c03";
+      };
+    };
+    "normalize-url-3.3.0" = {
+      name = "normalize-url";
+      packageName = "normalize-url";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz";
+        sha512 = "U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==";
+      };
+    };
+    "npm-run-path-2.0.2" = {
+      name = "npm-run-path";
+      packageName = "npm-run-path";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz";
+        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+      };
+    };
+    "npm-run-path-4.0.1" = {
+      name = "npm-run-path";
+      packageName = "npm-run-path";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz";
+        sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
+      };
+    };
+    "nth-check-1.0.2" = {
+      name = "nth-check";
+      packageName = "nth-check";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz";
+        sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
+      };
+    };
+    "num2fraction-1.2.2" = {
+      name = "num2fraction";
+      packageName = "num2fraction";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz";
+        sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
+      };
+    };
+    "object-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
+    "object-copy-0.1.0" = {
+      name = "object-copy";
+      packageName = "object-copy";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    };
+    "object-inspect-1.10.2" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz";
+        sha512 = "gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==";
+      };
+    };
+    "object-is-1.1.5" = {
+      name = "object-is";
+      packageName = "object-is";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz";
+        sha512 = "3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==";
+      };
+    };
+    "object-keys-1.1.1" = {
+      name = "object-keys";
+      packageName = "object-keys";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+      };
+    };
+    "object-visit-1.0.1" = {
+      name = "object-visit";
+      packageName = "object-visit";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    };
+    "object.assign-4.1.2" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz";
+        sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==";
+      };
+    };
+    "object.getownpropertydescriptors-2.1.2" = {
+      name = "object.getownpropertydescriptors";
+      packageName = "object.getownpropertydescriptors";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
+        sha512 = "WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==";
+      };
+    };
+    "object.pick-1.3.0" = {
+      name = "object.pick";
+      packageName = "object.pick";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    };
+    "object.values-1.1.3" = {
+      name = "object.values";
+      packageName = "object.values";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz";
+        sha512 = "nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==";
+      };
+    };
+    "obuf-1.1.2" = {
+      name = "obuf";
+      packageName = "obuf";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz";
+        sha512 = "PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==";
+      };
+    };
+    "on-finished-2.3.0" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    };
+    "on-headers-1.0.2" = {
+      name = "on-headers";
+      packageName = "on-headers";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "onetime-5.1.2" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+      };
+    };
+    "opn-5.5.0" = {
+      name = "opn";
+      packageName = "opn";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz";
+        sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==";
+      };
+    };
+    "optionator-0.9.1" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz";
+        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
+      };
+    };
+    "original-1.0.2" = {
+      name = "original";
+      packageName = "original";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz";
+        sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
+      };
+    };
+    "p-finally-1.0.0" = {
+      name = "p-finally";
+      packageName = "p-finally";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+      };
+    };
+    "p-limit-1.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
+        sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-limit-3.1.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz";
+        sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==";
+      };
+    };
+    "p-locate-2.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz";
+        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+      };
+    };
+    "p-locate-3.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+      };
+    };
+    "p-locate-4.1.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+        sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+      };
+    };
+    "p-map-2.1.0" = {
+      name = "p-map";
+      packageName = "p-map";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz";
+        sha512 = "y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==";
+      };
+    };
+    "p-map-4.0.0" = {
+      name = "p-map";
+      packageName = "p-map";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz";
+        sha512 = "/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==";
+      };
+    };
+    "p-retry-3.0.1" = {
+      name = "p-retry";
+      packageName = "p-retry";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz";
+        sha512 = "XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==";
+      };
+    };
+    "p-try-1.0.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz";
+        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+      };
+    };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "page-1.11.6" = {
+      name = "page";
+      packageName = "page";
+      version = "1.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/page/-/page-1.11.6.tgz";
+        sha512 = "P6e2JfzkBrPeFCIPplLP7vDDiU84RUUZMrWdsH4ZBGJ8OosnwFkcUkBHp1DTIjuipLliw9yQn/ZJsXZvarsO+g==";
+      };
+    };
+    "pako-1.0.11" = {
+      name = "pako";
+      packageName = "pako";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz";
+        sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==";
+      };
+    };
+    "param-case-3.0.4" = {
+      name = "param-case";
+      packageName = "param-case";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz";
+        sha512 = "RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==";
+      };
+    };
+    "parent-module-1.0.1" = {
+      name = "parent-module";
+      packageName = "parent-module";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+      };
+    };
+    "parse-entities-1.2.2" = {
+      name = "parse-entities";
+      packageName = "parse-entities";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz";
+        sha512 = "NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==";
+      };
+    };
+    "parse-entities-2.0.0" = {
+      name = "parse-entities";
+      packageName = "parse-entities";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz";
+        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";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+      };
+    };
+    "parse-json-5.2.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz";
+        sha512 = "ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==";
+      };
+    };
+    "parseurl-1.3.3" = {
+      name = "parseurl";
+      packageName = "parseurl";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+      };
+    };
+    "pascal-case-3.1.2" = {
+      name = "pascal-case";
+      packageName = "pascal-case";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz";
+        sha512 = "uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==";
+      };
+    };
+    "pascalcase-0.1.1" = {
+      name = "pascalcase";
+      packageName = "pascalcase";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    };
+    "path-dirname-1.0.2" = {
+      name = "path-dirname";
+      packageName = "path-dirname";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    };
+    "path-exists-3.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-is-inside-1.0.2" = {
+      name = "path-is-inside";
+      packageName = "path-is-inside";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz";
+        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+      };
+    };
+    "path-key-2.0.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
+        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+      };
+    };
+    "path-key-3.1.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "path-to-regexp-0.1.7" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    };
+    "path-to-regexp-1.2.1" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.2.1.tgz";
+        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";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
+        sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==";
+      };
+    };
+    "path-type-4.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+      };
+    };
+    "path-webpack-0.0.3" = {
+      name = "path-webpack";
+      packageName = "path-webpack";
+      version = "0.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-webpack/-/path-webpack-0.0.3.tgz";
+        sha1 = "ff6dec749eec5a94605c04d5f63fc55607a03a16";
+      };
+    };
+    "pdfjs-dist-2.5.207" = {
+      name = "pdfjs-dist";
+      packageName = "pdfjs-dist";
+      version = "2.5.207";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.5.207.tgz";
+        sha512 = "xGDUhnCYPfHy+unMXCLCJtlpZaaZ17Ew3WIL0tnSgKFUZXHAPD49GO9xScyszSsQMoutNDgRb+rfBXIaX/lJbw==";
+      };
+    };
+    "picomatch-2.2.3" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz";
+        sha512 = "KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==";
+      };
+    };
+    "pify-2.3.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz";
+        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+      };
+    };
+    "pify-3.0.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    };
+    "pify-4.0.1" = {
+      name = "pify";
+      packageName = "pify";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+        sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
+      };
+    };
+    "pinkie-2.0.4" = {
+      name = "pinkie";
+      packageName = "pinkie";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz";
+        sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+      };
+    };
+    "pinkie-promise-2.0.1" = {
+      name = "pinkie-promise";
+      packageName = "pinkie-promise";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+        sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+      };
+    };
+    "pkg-dir-2.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz";
+        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+      };
+    };
+    "pkg-dir-3.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
+        sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
+      };
+    };
+    "pkg-dir-4.2.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
+      };
+    };
+    "plur-2.1.2" = {
+      name = "plur";
+      packageName = "plur";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz";
+        sha1 = "7482452c1a0f508e3e344eaec312c91c29dc655a";
+      };
+    };
+    "portfinder-1.0.28" = {
+      name = "portfinder";
+      packageName = "portfinder";
+      version = "1.0.28";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz";
+        sha512 = "Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==";
+      };
+    };
+    "posix-character-classes-0.1.1" = {
+      name = "posix-character-classes";
+      packageName = "posix-character-classes";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    };
+    "postcss-5.2.18" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "5.2.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz";
+        sha512 = "zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==";
+      };
+    };
+    "postcss-7.0.35" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "7.0.35";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz";
+        sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
+      };
+    };
+    "postcss-8.2.13" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "8.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz";
+        sha512 = "FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==";
+      };
+    };
+    "postcss-attribute-case-insensitive-4.0.2" = {
+      name = "postcss-attribute-case-insensitive";
+      packageName = "postcss-attribute-case-insensitive";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz";
+        sha512 = "clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==";
+      };
+    };
+    "postcss-calc-7.0.5" = {
+      name = "postcss-calc";
+      packageName = "postcss-calc";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz";
+        sha512 = "1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==";
+      };
+    };
+    "postcss-color-functional-notation-2.0.1" = {
+      name = "postcss-color-functional-notation";
+      packageName = "postcss-color-functional-notation";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz";
+        sha512 = "ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==";
+      };
+    };
+    "postcss-color-gray-5.0.0" = {
+      name = "postcss-color-gray";
+      packageName = "postcss-color-gray";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz";
+        sha512 = "q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==";
+      };
+    };
+    "postcss-color-hex-alpha-5.0.3" = {
+      name = "postcss-color-hex-alpha";
+      packageName = "postcss-color-hex-alpha";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz";
+        sha512 = "PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==";
+      };
+    };
+    "postcss-color-mod-function-3.0.3" = {
+      name = "postcss-color-mod-function";
+      packageName = "postcss-color-mod-function";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz";
+        sha512 = "YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==";
+      };
+    };
+    "postcss-color-rebeccapurple-4.0.1" = {
+      name = "postcss-color-rebeccapurple";
+      packageName = "postcss-color-rebeccapurple";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz";
+        sha512 = "aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==";
+      };
+    };
+    "postcss-colormin-4.0.3" = {
+      name = "postcss-colormin";
+      packageName = "postcss-colormin";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz";
+        sha512 = "WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==";
+      };
+    };
+    "postcss-convert-values-4.0.1" = {
+      name = "postcss-convert-values";
+      packageName = "postcss-convert-values";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz";
+        sha512 = "Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==";
+      };
+    };
+    "postcss-custom-media-7.0.8" = {
+      name = "postcss-custom-media";
+      packageName = "postcss-custom-media";
+      version = "7.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz";
+        sha512 = "c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==";
+      };
+    };
+    "postcss-custom-properties-8.0.11" = {
+      name = "postcss-custom-properties";
+      packageName = "postcss-custom-properties";
+      version = "8.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz";
+        sha512 = "nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==";
+      };
+    };
+    "postcss-custom-selectors-5.1.2" = {
+      name = "postcss-custom-selectors";
+      packageName = "postcss-custom-selectors";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz";
+        sha512 = "DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==";
+      };
+    };
+    "postcss-dir-pseudo-class-5.0.0" = {
+      name = "postcss-dir-pseudo-class";
+      packageName = "postcss-dir-pseudo-class";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz";
+        sha512 = "3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==";
+      };
+    };
+    "postcss-discard-comments-4.0.2" = {
+      name = "postcss-discard-comments";
+      packageName = "postcss-discard-comments";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz";
+        sha512 = "RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==";
+      };
+    };
+    "postcss-discard-duplicates-4.0.2" = {
+      name = "postcss-discard-duplicates";
+      packageName = "postcss-discard-duplicates";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz";
+        sha512 = "ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==";
+      };
+    };
+    "postcss-discard-empty-4.0.1" = {
+      name = "postcss-discard-empty";
+      packageName = "postcss-discard-empty";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz";
+        sha512 = "B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==";
+      };
+    };
+    "postcss-discard-overridden-4.0.1" = {
+      name = "postcss-discard-overridden";
+      packageName = "postcss-discard-overridden";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz";
+        sha512 = "IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==";
+      };
+    };
+    "postcss-double-position-gradients-1.0.0" = {
+      name = "postcss-double-position-gradients";
+      packageName = "postcss-double-position-gradients";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz";
+        sha512 = "G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==";
+      };
+    };
+    "postcss-env-function-2.0.2" = {
+      name = "postcss-env-function";
+      packageName = "postcss-env-function";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz";
+        sha512 = "rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==";
+      };
+    };
+    "postcss-focus-visible-4.0.0" = {
+      name = "postcss-focus-visible";
+      packageName = "postcss-focus-visible";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz";
+        sha512 = "Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==";
+      };
+    };
+    "postcss-focus-within-3.0.0" = {
+      name = "postcss-focus-within";
+      packageName = "postcss-focus-within";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz";
+        sha512 = "W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==";
+      };
+    };
+    "postcss-font-variant-4.0.1" = {
+      name = "postcss-font-variant";
+      packageName = "postcss-font-variant";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz";
+        sha512 = "I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==";
+      };
+    };
+    "postcss-gap-properties-2.0.0" = {
+      name = "postcss-gap-properties";
+      packageName = "postcss-gap-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz";
+        sha512 = "QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==";
+      };
+    };
+    "postcss-html-0.36.0" = {
+      name = "postcss-html";
+      packageName = "postcss-html";
+      version = "0.36.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz";
+        sha512 = "HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==";
+      };
+    };
+    "postcss-image-set-function-3.0.1" = {
+      name = "postcss-image-set-function";
+      packageName = "postcss-image-set-function";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz";
+        sha512 = "oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==";
+      };
+    };
+    "postcss-initial-3.0.4" = {
+      name = "postcss-initial";
+      packageName = "postcss-initial";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz";
+        sha512 = "3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==";
+      };
+    };
+    "postcss-jsx-0.36.4" = {
+      name = "postcss-jsx";
+      packageName = "postcss-jsx";
+      version = "0.36.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.4.tgz";
+        sha512 = "jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==";
+      };
+    };
+    "postcss-lab-function-2.0.1" = {
+      name = "postcss-lab-function";
+      packageName = "postcss-lab-function";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz";
+        sha512 = "whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==";
+      };
+    };
+    "postcss-less-3.1.4" = {
+      name = "postcss-less";
+      packageName = "postcss-less";
+      version = "3.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz";
+        sha512 = "7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==";
+      };
+    };
+    "postcss-load-config-2.1.2" = {
+      name = "postcss-load-config";
+      packageName = "postcss-load-config";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz";
+        sha512 = "/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==";
+      };
+    };
+    "postcss-loader-3.0.0" = {
+      name = "postcss-loader";
+      packageName = "postcss-loader";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz";
+        sha512 = "cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==";
+      };
+    };
+    "postcss-logical-3.0.0" = {
+      name = "postcss-logical";
+      packageName = "postcss-logical";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz";
+        sha512 = "1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==";
+      };
+    };
+    "postcss-markdown-0.36.0" = {
+      name = "postcss-markdown";
+      packageName = "postcss-markdown";
+      version = "0.36.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.36.0.tgz";
+        sha512 = "rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==";
+      };
+    };
+    "postcss-media-minmax-4.0.0" = {
+      name = "postcss-media-minmax";
+      packageName = "postcss-media-minmax";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz";
+        sha512 = "fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==";
+      };
+    };
+    "postcss-media-query-parser-0.2.3" = {
+      name = "postcss-media-query-parser";
+      packageName = "postcss-media-query-parser";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz";
+        sha1 = "27b39c6f4d94f81b1a73b8f76351c609e5cef244";
+      };
+    };
+    "postcss-merge-longhand-4.0.11" = {
+      name = "postcss-merge-longhand";
+      packageName = "postcss-merge-longhand";
+      version = "4.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz";
+        sha512 = "alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==";
+      };
+    };
+    "postcss-merge-rules-4.0.3" = {
+      name = "postcss-merge-rules";
+      packageName = "postcss-merge-rules";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz";
+        sha512 = "U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==";
+      };
+    };
+    "postcss-minify-font-values-4.0.2" = {
+      name = "postcss-minify-font-values";
+      packageName = "postcss-minify-font-values";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz";
+        sha512 = "j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==";
+      };
+    };
+    "postcss-minify-gradients-4.0.2" = {
+      name = "postcss-minify-gradients";
+      packageName = "postcss-minify-gradients";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz";
+        sha512 = "qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==";
+      };
+    };
+    "postcss-minify-params-4.0.2" = {
+      name = "postcss-minify-params";
+      packageName = "postcss-minify-params";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz";
+        sha512 = "G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==";
+      };
+    };
+    "postcss-minify-selectors-4.0.2" = {
+      name = "postcss-minify-selectors";
+      packageName = "postcss-minify-selectors";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz";
+        sha512 = "D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==";
+      };
+    };
+    "postcss-modules-extract-imports-3.0.0" = {
+      name = "postcss-modules-extract-imports";
+      packageName = "postcss-modules-extract-imports";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz";
+        sha512 = "bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==";
+      };
+    };
+    "postcss-modules-local-by-default-4.0.0" = {
+      name = "postcss-modules-local-by-default";
+      packageName = "postcss-modules-local-by-default";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz";
+        sha512 = "sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==";
+      };
+    };
+    "postcss-modules-scope-3.0.0" = {
+      name = "postcss-modules-scope";
+      packageName = "postcss-modules-scope";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz";
+        sha512 = "hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==";
+      };
+    };
+    "postcss-modules-values-4.0.0" = {
+      name = "postcss-modules-values";
+      packageName = "postcss-modules-values";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz";
+        sha512 = "RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==";
+      };
+    };
+    "postcss-nesting-7.0.1" = {
+      name = "postcss-nesting";
+      packageName = "postcss-nesting";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz";
+        sha512 = "FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==";
+      };
+    };
+    "postcss-normalize-charset-4.0.1" = {
+      name = "postcss-normalize-charset";
+      packageName = "postcss-normalize-charset";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz";
+        sha512 = "gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==";
+      };
+    };
+    "postcss-normalize-display-values-4.0.2" = {
+      name = "postcss-normalize-display-values";
+      packageName = "postcss-normalize-display-values";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz";
+        sha512 = "3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==";
+      };
+    };
+    "postcss-normalize-positions-4.0.2" = {
+      name = "postcss-normalize-positions";
+      packageName = "postcss-normalize-positions";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz";
+        sha512 = "Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==";
+      };
+    };
+    "postcss-normalize-repeat-style-4.0.2" = {
+      name = "postcss-normalize-repeat-style";
+      packageName = "postcss-normalize-repeat-style";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz";
+        sha512 = "qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==";
+      };
+    };
+    "postcss-normalize-string-4.0.2" = {
+      name = "postcss-normalize-string";
+      packageName = "postcss-normalize-string";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz";
+        sha512 = "RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==";
+      };
+    };
+    "postcss-normalize-timing-functions-4.0.2" = {
+      name = "postcss-normalize-timing-functions";
+      packageName = "postcss-normalize-timing-functions";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz";
+        sha512 = "acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==";
+      };
+    };
+    "postcss-normalize-unicode-4.0.1" = {
+      name = "postcss-normalize-unicode";
+      packageName = "postcss-normalize-unicode";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz";
+        sha512 = "od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==";
+      };
+    };
+    "postcss-normalize-url-4.0.1" = {
+      name = "postcss-normalize-url";
+      packageName = "postcss-normalize-url";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz";
+        sha512 = "p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==";
+      };
+    };
+    "postcss-normalize-whitespace-4.0.2" = {
+      name = "postcss-normalize-whitespace";
+      packageName = "postcss-normalize-whitespace";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz";
+        sha512 = "tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==";
+      };
+    };
+    "postcss-ordered-values-4.1.2" = {
+      name = "postcss-ordered-values";
+      packageName = "postcss-ordered-values";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz";
+        sha512 = "2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==";
+      };
+    };
+    "postcss-overflow-shorthand-2.0.0" = {
+      name = "postcss-overflow-shorthand";
+      packageName = "postcss-overflow-shorthand";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz";
+        sha512 = "aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==";
+      };
+    };
+    "postcss-page-break-2.0.0" = {
+      name = "postcss-page-break";
+      packageName = "postcss-page-break";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz";
+        sha512 = "tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==";
+      };
+    };
+    "postcss-place-4.0.1" = {
+      name = "postcss-place";
+      packageName = "postcss-place";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz";
+        sha512 = "Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==";
+      };
+    };
+    "postcss-preset-env-6.7.0" = {
+      name = "postcss-preset-env";
+      packageName = "postcss-preset-env";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz";
+        sha512 = "eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==";
+      };
+    };
+    "postcss-pseudo-class-any-link-6.0.0" = {
+      name = "postcss-pseudo-class-any-link";
+      packageName = "postcss-pseudo-class-any-link";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz";
+        sha512 = "lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==";
+      };
+    };
+    "postcss-reduce-initial-4.0.3" = {
+      name = "postcss-reduce-initial";
+      packageName = "postcss-reduce-initial";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz";
+        sha512 = "gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==";
+      };
+    };
+    "postcss-reduce-transforms-4.0.2" = {
+      name = "postcss-reduce-transforms";
+      packageName = "postcss-reduce-transforms";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz";
+        sha512 = "EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==";
+      };
+    };
+    "postcss-replace-overflow-wrap-3.0.0" = {
+      name = "postcss-replace-overflow-wrap";
+      packageName = "postcss-replace-overflow-wrap";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz";
+        sha512 = "2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==";
+      };
+    };
+    "postcss-reporter-1.4.1" = {
+      name = "postcss-reporter";
+      packageName = "postcss-reporter";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-1.4.1.tgz";
+        sha1 = "c136f0a5b161915f379dd3765c61075f7e7b9af2";
+      };
+    };
+    "postcss-reporter-6.0.1" = {
+      name = "postcss-reporter";
+      packageName = "postcss-reporter";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz";
+        sha512 = "LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==";
+      };
+    };
+    "postcss-resolve-nested-selector-0.1.1" = {
+      name = "postcss-resolve-nested-selector";
+      packageName = "postcss-resolve-nested-selector";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz";
+        sha1 = "29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e";
+      };
+    };
+    "postcss-safe-parser-4.0.2" = {
+      name = "postcss-safe-parser";
+      packageName = "postcss-safe-parser";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz";
+        sha512 = "Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==";
+      };
+    };
+    "postcss-sass-0.3.5" = {
+      name = "postcss-sass";
+      packageName = "postcss-sass";
+      version = "0.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.5.tgz";
+        sha512 = "B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==";
+      };
+    };
+    "postcss-sass-0.4.4" = {
+      name = "postcss-sass";
+      packageName = "postcss-sass";
+      version = "0.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz";
+        sha512 = "BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==";
+      };
+    };
+    "postcss-scss-2.1.1" = {
+      name = "postcss-scss";
+      packageName = "postcss-scss";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz";
+        sha512 = "jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==";
+      };
+    };
+    "postcss-selector-matches-4.0.0" = {
+      name = "postcss-selector-matches";
+      packageName = "postcss-selector-matches";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz";
+        sha512 = "LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==";
+      };
+    };
+    "postcss-selector-not-4.0.1" = {
+      name = "postcss-selector-not";
+      packageName = "postcss-selector-not";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz";
+        sha512 = "YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==";
+      };
+    };
+    "postcss-selector-parser-2.2.3" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "2.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz";
+        sha1 = "f9437788606c3c9acee16ffe8d8b16297f27bb90";
+      };
+    };
+    "postcss-selector-parser-3.1.2" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz";
+        sha512 = "h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==";
+      };
+    };
+    "postcss-selector-parser-5.0.0" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz";
+        sha512 = "w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==";
+      };
+    };
+    "postcss-selector-parser-6.0.5" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "6.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz";
+        sha512 = "aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==";
+      };
+    };
+    "postcss-sorting-4.1.0" = {
+      name = "postcss-sorting";
+      packageName = "postcss-sorting";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-4.1.0.tgz";
+        sha512 = "r4T2oQd1giURJdHQ/RMb72dKZCuLOdWx2B/XhXN1Y1ZdnwXsKH896Qz6vD4tFy9xSjpKNYhlZoJmWyhH/7JUQw==";
+      };
+    };
+    "postcss-sorting-5.0.1" = {
+      name = "postcss-sorting";
+      packageName = "postcss-sorting";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz";
+        sha512 = "Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==";
+      };
+    };
+    "postcss-svgo-4.0.3" = {
+      name = "postcss-svgo";
+      packageName = "postcss-svgo";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz";
+        sha512 = "NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==";
+      };
+    };
+    "postcss-syntax-0.36.2" = {
+      name = "postcss-syntax";
+      packageName = "postcss-syntax";
+      version = "0.36.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz";
+        sha512 = "nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==";
+      };
+    };
+    "postcss-unique-selectors-4.0.1" = {
+      name = "postcss-unique-selectors";
+      packageName = "postcss-unique-selectors";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz";
+        sha512 = "+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==";
+      };
+    };
+    "postcss-value-parser-3.3.1" = {
+      name = "postcss-value-parser";
+      packageName = "postcss-value-parser";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
+        sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==";
+      };
+    };
+    "postcss-value-parser-4.1.0" = {
+      name = "postcss-value-parser";
+      packageName = "postcss-value-parser";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
+        sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
+      };
+    };
+    "postcss-values-parser-2.0.1" = {
+      name = "postcss-values-parser";
+      packageName = "postcss-values-parser";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz";
+        sha512 = "2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==";
+      };
+    };
+    "prelude-ls-1.2.1" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
+      };
+    };
+    "pretty-bytes-5.6.0" = {
+      name = "pretty-bytes";
+      packageName = "pretty-bytes";
+      version = "5.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz";
+        sha512 = "FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==";
+      };
+    };
+    "pretty-error-2.1.2" = {
+      name = "pretty-error";
+      packageName = "pretty-error";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz";
+        sha512 = "EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "progress-2.0.3" = {
+      name = "progress";
+      packageName = "progress";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz";
+        sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
+      };
+    };
+    "promise-inflight-1.0.1" = {
+      name = "promise-inflight";
+      packageName = "promise-inflight";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz";
+        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+      };
+    };
+    "proxy-addr-2.0.6" = {
+      name = "proxy-addr";
+      packageName = "proxy-addr";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+      };
+    };
+    "prr-1.0.1" = {
+      name = "prr";
+      packageName = "prr";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz";
+        sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+      };
+    };
+    "pump-3.0.0" = {
+      name = "pump";
+      packageName = "pump";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+      };
+    };
+    "punycode-1.3.2" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz";
+        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "q-1.5.1" = {
+      name = "q";
+      packageName = "q";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz";
+        sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+      };
+    };
+    "qs-6.7.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+      };
+    };
+    "querystring-0.2.0" = {
+      name = "querystring";
+      packageName = "querystring";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz";
+        sha1 = "b209849203bb25df820da756e747005878521620";
+      };
+    };
+    "querystringify-2.2.0" = {
+      name = "querystringify";
+      packageName = "querystringify";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz";
+        sha512 = "FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==";
+      };
+    };
+    "queue-microtask-1.2.3" = {
+      name = "queue-microtask";
+      packageName = "queue-microtask";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
+      };
+    };
+    "quick-lru-1.1.0" = {
+      name = "quick-lru";
+      packageName = "quick-lru";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz";
+        sha1 = "4360b17c61136ad38078397ff11416e186dcfbb8";
+      };
+    };
+    "quick-lru-4.0.1" = {
+      name = "quick-lru";
+      packageName = "quick-lru";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz";
+        sha512 = "ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==";
+      };
+    };
+    "randombytes-2.1.0" = {
+      name = "randombytes";
+      packageName = "randombytes";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
+        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
+      };
+    };
+    "range-parser-1.2.1" = {
+      name = "range-parser";
+      packageName = "range-parser";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+      };
+    };
+    "raw-body-2.4.0" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+      };
+    };
+    "read-file-stdin-0.2.1" = {
+      name = "read-file-stdin";
+      packageName = "read-file-stdin";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz";
+        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";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";
+        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+      };
+    };
+    "read-pkg-5.2.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz";
+        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";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz";
+        sha1 = "3ed496685dba0f8fe118d0691dc51f4a1ff96f07";
+      };
+    };
+    "read-pkg-up-7.0.1" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+        sha512 = "zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "readdirp-2.2.1" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
+        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+      };
+    };
+    "readdirp-3.5.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
+        sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
+      };
+    };
+    "rechoir-0.7.0" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz";
+        sha512 = "ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==";
+      };
+    };
+    "redent-2.0.0" = {
+      name = "redent";
+      packageName = "redent";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz";
+        sha1 = "c1b2007b42d57eb1389079b3c8333639d5e1ccaa";
+      };
+    };
+    "redent-3.0.0" = {
+      name = "redent";
+      packageName = "redent";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz";
+        sha512 = "6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==";
+      };
+    };
+    "regenerate-1.4.2" = {
+      name = "regenerate";
+      packageName = "regenerate";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz";
+        sha512 = "zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==";
+      };
+    };
+    "regenerate-unicode-properties-8.2.0" = {
+      name = "regenerate-unicode-properties";
+      packageName = "regenerate-unicode-properties";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+        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" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.8.tgz";
+        sha512 = "o/ASGwgZ6UiVjspr4YnzHKF1NbBdX+mCPkSeymofk/d7I+csCYn3ZgZMMVtXeecpT8DBiI2nAlYkHd+xNCqu4A==";
+      };
+    };
+    "regenerator-transform-0.14.5" = {
+      name = "regenerator-transform";
+      packageName = "regenerator-transform";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
+      };
+    };
+    "regex-not-1.0.2" = {
+      name = "regex-not";
+      packageName = "regex-not";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
+        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
+      };
+    };
+    "regexp.prototype.flags-1.3.1" = {
+      name = "regexp.prototype.flags";
+      packageName = "regexp.prototype.flags";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz";
+        sha512 = "JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==";
+      };
+    };
+    "regexpp-3.1.0" = {
+      name = "regexpp";
+      packageName = "regexpp";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
+        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+      };
+    };
+    "regexpu-core-4.7.1" = {
+      name = "regexpu-core";
+      packageName = "regexpu-core";
+      version = "4.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz";
+        sha512 = "ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==";
+      };
+    };
+    "regjsgen-0.5.2" = {
+      name = "regjsgen";
+      packageName = "regjsgen";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
+      };
+    };
+    "regjsparser-0.6.9" = {
+      name = "regjsparser";
+      packageName = "regjsparser";
+      version = "0.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz";
+        sha512 = "ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==";
+      };
+    };
+    "relateurl-0.2.7" = {
+      name = "relateurl";
+      packageName = "relateurl";
+      version = "0.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz";
+        sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
+      };
+    };
+    "remark-10.0.1" = {
+      name = "remark";
+      packageName = "remark";
+      version = "10.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz";
+        sha512 = "E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==";
+      };
+    };
+    "remark-13.0.0" = {
+      name = "remark";
+      packageName = "remark";
+      version = "13.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz";
+        sha512 = "HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==";
+      };
+    };
+    "remark-parse-6.0.3" = {
+      name = "remark-parse";
+      packageName = "remark-parse";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz";
+        sha512 = "QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==";
+      };
+    };
+    "remark-parse-9.0.0" = {
+      name = "remark-parse";
+      packageName = "remark-parse";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz";
+        sha512 = "geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==";
+      };
+    };
+    "remark-stringify-6.0.4" = {
+      name = "remark-stringify";
+      packageName = "remark-stringify";
+      version = "6.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz";
+        sha512 = "eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==";
+      };
+    };
+    "remark-stringify-9.0.1" = {
+      name = "remark-stringify";
+      packageName = "remark-stringify";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz";
+        sha512 = "mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==";
+      };
+    };
+    "remove-trailing-separator-1.1.0" = {
+      name = "remove-trailing-separator";
+      packageName = "remove-trailing-separator";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    };
+    "renderkid-2.0.5" = {
+      name = "renderkid";
+      packageName = "renderkid";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz";
+        sha512 = "ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==";
+      };
+    };
+    "repeat-element-1.1.4" = {
+      name = "repeat-element";
+      packageName = "repeat-element";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz";
+        sha512 = "LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==";
+      };
+    };
+    "repeat-string-1.6.1" = {
+      name = "repeat-string";
+      packageName = "repeat-string";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    };
+    "replace-ext-1.0.0" = {
+      name = "replace-ext";
+      packageName = "replace-ext";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz";
+        sha1 = "de63128373fcbf7c3ccfa4de5a480c45a67958eb";
+      };
+    };
+    "require-directory-2.1.1" = {
+      name = "require-directory";
+      packageName = "require-directory";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    };
+    "require-from-string-2.0.2" = {
+      name = "require-from-string";
+      packageName = "require-from-string";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
+      };
+    };
+    "require-main-filename-2.0.0" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+      };
+    };
+    "requires-port-1.0.0" = {
+      name = "requires-port";
+      packageName = "requires-port";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz";
+        sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+      };
+    };
+    "resize-observer-polyfill-1.5.1" = {
+      name = "resize-observer-polyfill";
+      packageName = "resize-observer-polyfill";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz";
+        sha512 = "LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==";
+      };
+    };
+    "resolve-1.20.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz";
+        sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==";
+      };
+    };
+    "resolve-cwd-2.0.0" = {
+      name = "resolve-cwd";
+      packageName = "resolve-cwd";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
+        sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+      };
+    };
+    "resolve-cwd-3.0.0" = {
+      name = "resolve-cwd";
+      packageName = "resolve-cwd";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz";
+        sha512 = "OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==";
+      };
+    };
+    "resolve-from-3.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz";
+        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+      };
+    };
+    "resolve-from-4.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
+      };
+    };
+    "resolve-from-5.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz";
+        sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
+      };
+    };
+    "resolve-url-0.2.1" = {
+      name = "resolve-url";
+      packageName = "resolve-url";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    };
+    "ret-0.1.15" = {
+      name = "ret";
+      packageName = "ret";
+      version = "0.1.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+      };
+    };
+    "retry-0.12.0" = {
+      name = "retry";
+      packageName = "retry";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
+        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+      };
+    };
+    "reusify-1.0.4" = {
+      name = "reusify";
+      packageName = "reusify";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+      };
+    };
+    "rgb-regex-1.0.1" = {
+      name = "rgb-regex";
+      packageName = "rgb-regex";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz";
+        sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1";
+      };
+    };
+    "rgba-regex-1.0.0" = {
+      name = "rgba-regex";
+      packageName = "rgba-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz";
+        sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
+      };
+    };
+    "rimraf-2.6.3" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
+        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
+      };
+    };
+    "rimraf-2.7.1" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+      };
+    };
+    "rimraf-3.0.2" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+      };
+    };
+    "rollup-1.32.1" = {
+      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";
+      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==";
+      };
+    };
+    "rollup-plugin-terser-5.3.1" = {
+      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";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz";
+        sha512 = "EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==";
+      };
+    };
+    "run-parallel-1.2.0" = {
+      name = "run-parallel";
+      packageName = "run-parallel";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safe-regex-1.1.0" = {
+      name = "safe-regex";
+      packageName = "safe-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "sass-1.32.12" = {
+      name = "sass";
+      packageName = "sass";
+      version = "1.32.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sass/-/sass-1.32.12.tgz";
+        sha512 = "zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==";
+      };
+    };
+    "sass-loader-10.1.1" = {
+      name = "sass-loader";
+      packageName = "sass-loader";
+      version = "10.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.1.tgz";
+        sha512 = "W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw==";
+      };
+    };
+    "sax-1.2.4" = {
+      name = "sax";
+      packageName = "sax";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+      };
+    };
+    "schema-utils-1.0.0" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz";
+        sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==";
+      };
+    };
+    "schema-utils-2.7.1" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha512 = "SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==";
+      };
+    };
+    "schema-utils-3.0.0" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz";
+        sha512 = "6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==";
+      };
+    };
+    "screenfull-5.1.0" = {
+      name = "screenfull";
+      packageName = "screenfull";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/screenfull/-/screenfull-5.1.0.tgz";
+        sha512 = "dYaNuOdzr+kc6J6CFcBrzkLCfyGcMg+gWkJ8us93IQ7y1cevhQAugFsaCdMHb6lw8KV3xPzSxzH7zM1dQap9mA==";
+      };
+    };
+    "select-hose-2.0.0" = {
+      name = "select-hose";
+      packageName = "select-hose";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz";
+        sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
+      };
+    };
+    "selfsigned-1.10.11" = {
+      name = "selfsigned";
+      packageName = "selfsigned";
+      version = "1.10.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz";
+        sha512 = "aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==";
+      };
+    };
+    "semver-5.7.1" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "semver-7.0.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz";
+        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";
+      version = "7.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
+        sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
+      };
+    };
+    "send-0.17.1" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+      };
+    };
+    "serialize-javascript-4.0.0" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha512 = "GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==";
+      };
+    };
+    "serialize-javascript-5.0.1" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
+      };
+    };
+    "serve-index-1.9.1" = {
+      name = "serve-index";
+      packageName = "serve-index";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz";
+        sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
+      };
+    };
+    "serve-static-1.14.1" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "set-immediate-shim-1.0.1" = {
+      name = "set-immediate-shim";
+      packageName = "set-immediate-shim";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz";
+        sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61";
+      };
+    };
+    "set-value-2.0.1" = {
+      name = "set-value";
+      packageName = "set-value";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
+        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
+      };
+    };
+    "setprototypeof-1.1.0" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
+        sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
+      };
+    };
+    "setprototypeof-1.1.1" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+      };
+    };
+    "shallow-clone-3.0.1" = {
+      name = "shallow-clone";
+      packageName = "shallow-clone";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz";
+        sha512 = "/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==";
+      };
+    };
+    "shebang-command-1.2.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    };
+    "shebang-command-2.0.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+      };
+    };
+    "shebang-regex-1.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+      };
+    };
+    "shebang-regex-3.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "simple-swizzle-0.2.2" = {
+      name = "simple-swizzle";
+      packageName = "simple-swizzle";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    };
+    "slash-2.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
+        sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==";
+      };
+    };
+    "slash-3.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+      };
+    };
+    "slice-ansi-2.1.0" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz";
+        sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==";
+      };
+    };
+    "slice-ansi-4.0.0" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha512 = "qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==";
+      };
+    };
+    "snapdragon-0.8.2" = {
+      name = "snapdragon";
+      packageName = "snapdragon";
+      version = "0.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
+      };
+    };
+    "snapdragon-node-2.1.1" = {
+      name = "snapdragon-node";
+      packageName = "snapdragon-node";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
+      };
+    };
+    "snapdragon-util-3.0.1" = {
+      name = "snapdragon-util";
+      packageName = "snapdragon-util";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
+      };
+    };
+    "sockjs-0.3.21" = {
+      name = "sockjs";
+      packageName = "sockjs";
+      version = "0.3.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz";
+        sha512 = "DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==";
+      };
+    };
+    "sockjs-client-1.5.1" = {
+      name = "sockjs-client";
+      packageName = "sockjs-client";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz";
+        sha512 = "VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==";
+      };
+    };
+    "sortablejs-1.13.0" = {
+      name = "sortablejs";
+      packageName = "sortablejs";
+      version = "1.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sortablejs/-/sortablejs-1.13.0.tgz";
+        sha512 = "RBJirPY0spWCrU5yCmWM1eFs/XgX2J5c6b275/YyxFRgnzPhKl/TDeU2hNR8Dt7ITq66NRPM4UlOt+e5O4CFHg==";
+      };
+    };
+    "source-list-map-2.0.1" = {
+      name = "source-list-map";
+      packageName = "source-list-map";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz";
+        sha512 = "qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==";
+      };
+    };
+    "source-map-0.5.7" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "source-map-0.7.3" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz";
+        sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
+      };
+    };
+    "source-map-loader-1.1.3" = {
+      name = "source-map-loader";
+      packageName = "source-map-loader";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.3.tgz";
+        sha512 = "6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==";
+      };
+    };
+    "source-map-resolve-0.5.3" = {
+      name = "source-map-resolve";
+      packageName = "source-map-resolve";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
+      };
+    };
+    "source-map-support-0.5.19" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+      };
+    };
+    "source-map-url-0.4.1" = {
+      name = "source-map-url";
+      packageName = "source-map-url";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz";
+        sha512 = "cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==";
+      };
+    };
+    "sourcemap-codec-1.4.8" = {
+      name = "sourcemap-codec";
+      packageName = "sourcemap-codec";
+      version = "1.4.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz";
+        sha512 = "9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==";
+      };
+    };
+    "spdx-correct-3.1.1" = {
+      name = "spdx-correct";
+      packageName = "spdx-correct";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
+      };
+    };
+    "spdx-exceptions-2.3.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+      };
+    };
+    "spdx-expression-parse-3.0.1" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
+      };
+    };
+    "spdx-license-ids-3.0.7" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz";
+        sha512 = "U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==";
+      };
+    };
+    "spdy-4.0.2" = {
+      name = "spdy";
+      packageName = "spdy";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz";
+        sha512 = "r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==";
+      };
+    };
+    "spdy-transport-3.0.0" = {
+      name = "spdy-transport";
+      packageName = "spdy-transport";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz";
+        sha512 = "hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==";
+      };
+    };
+    "specificity-0.4.1" = {
+      name = "specificity";
+      packageName = "specificity";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz";
+        sha512 = "1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==";
+      };
+    };
+    "split-string-3.1.0" = {
+      name = "split-string";
+      packageName = "split-string";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
+        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "ssr-window-3.0.0" = {
+      name = "ssr-window";
+      packageName = "ssr-window";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz";
+        sha512 = "q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==";
+      };
+    };
+    "ssri-8.0.1" = {
+      name = "ssri";
+      packageName = "ssri";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz";
+        sha512 = "97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==";
+      };
+    };
+    "stable-0.1.8" = {
+      name = "stable";
+      packageName = "stable";
+      version = "0.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz";
+        sha512 = "ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==";
+      };
+    };
+    "state-toggle-1.0.3" = {
+      name = "state-toggle";
+      packageName = "state-toggle";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz";
+        sha512 = "d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==";
+      };
+    };
+    "static-extend-0.1.2" = {
+      name = "static-extend";
+      packageName = "static-extend";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    };
+    "statuses-1.5.0" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    };
+    "string-width-3.1.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+      };
+    };
+    "string-width-4.2.2" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz";
+        sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
+      };
+    };
+    "string.prototype.trimend-1.0.4" = {
+      name = "string.prototype.trimend";
+      packageName = "string.prototype.trimend";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
+        sha512 = "y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==";
+      };
+    };
+    "string.prototype.trimstart-1.0.4" = {
+      name = "string.prototype.trimstart";
+      packageName = "string.prototype.trimstart";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
+        sha512 = "jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "stringify-entities-1.3.2" = {
+      name = "stringify-entities";
+      packageName = "stringify-entities";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz";
+        sha512 = "nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==";
+      };
+    };
+    "stringify-object-3.3.0" = {
+      name = "stringify-object";
+      packageName = "stringify-object";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz";
+        sha512 = "rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-ansi-5.2.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+      };
+    };
+    "strip-ansi-6.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+      };
+    };
+    "strip-bom-3.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    };
+    "strip-comments-1.0.2" = {
+      name = "strip-comments";
+      packageName = "strip-comments";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz";
+        sha512 = "kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==";
+      };
+    };
+    "strip-eof-1.0.0" = {
+      name = "strip-eof";
+      packageName = "strip-eof";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
+        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+      };
+    };
+    "strip-final-newline-2.0.0" = {
+      name = "strip-final-newline";
+      packageName = "strip-final-newline";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+        sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
+      };
+    };
+    "strip-indent-2.0.0" = {
+      name = "strip-indent";
+      packageName = "strip-indent";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz";
+        sha1 = "5ef8db295d01e6ed6cbf7aab96998d7822527b68";
+      };
+    };
+    "strip-indent-3.0.0" = {
+      name = "strip-indent";
+      packageName = "strip-indent";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz";
+        sha512 = "laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==";
+      };
+    };
+    "strip-json-comments-3.1.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
+      };
+    };
+    "style-loader-2.0.0" = {
+      name = "style-loader";
+      packageName = "style-loader";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz";
+        sha512 = "Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==";
+      };
+    };
+    "style-search-0.1.0" = {
+      name = "style-search";
+      packageName = "style-search";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz";
+        sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
+      };
+    };
+    "stylehacks-2.3.2" = {
+      name = "stylehacks";
+      packageName = "stylehacks";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-2.3.2.tgz";
+        sha1 = "64c83e0438a68c9edf449e8c552a7d9ab6009b0b";
+      };
+    };
+    "stylehacks-4.0.3" = {
+      name = "stylehacks";
+      packageName = "stylehacks";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz";
+        sha512 = "7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==";
+      };
+    };
+    "stylelint-13.13.1" = {
+      name = "stylelint";
+      packageName = "stylelint";
+      version = "13.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz";
+        sha512 = "Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==";
+      };
+    };
+    "stylelint-9.10.1" = {
+      name = "stylelint";
+      packageName = "stylelint";
+      version = "9.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylelint/-/stylelint-9.10.1.tgz";
+        sha512 = "9UiHxZhOAHEgeQ7oLGwrwoDR8vclBKlSX7r4fH0iuu0SfPwFaLkb1c7Q2j1cqg9P7IDXeAV2TvQML/fRQzGBBQ==";
+      };
+    };
+    "stylelint-config-rational-order-0.1.2" = {
+      name = "stylelint-config-rational-order";
+      packageName = "stylelint-config-rational-order";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylelint-config-rational-order/-/stylelint-config-rational-order-0.1.2.tgz";
+        sha512 = "Qo7ZQaihCwTqijfZg4sbdQQHtugOX/B1/fYh018EiDZHW+lkqH9uHOnsDwDPGZrYJuB6CoyI7MZh2ecw2dOkew==";
+      };
+    };
+    "stylelint-no-browser-hacks-1.2.1" = {
+      name = "stylelint-no-browser-hacks";
+      packageName = "stylelint-no-browser-hacks";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylelint-no-browser-hacks/-/stylelint-no-browser-hacks-1.2.1.tgz";
+        sha512 = "lPcqHx3e/WnrXdw0wdnKtcjcSCAYEXjwSitXRw0OQ2qPF+iLyDFoarbn4qcw38Uuu7q29fhj+w2mECLM0fUOlw==";
+      };
+    };
+    "stylelint-order-2.2.1" = {
+      name = "stylelint-order";
+      packageName = "stylelint-order";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylelint-order/-/stylelint-order-2.2.1.tgz";
+        sha512 = "019KBV9j8qp1MfBjJuotse6MgaZqGVtXMc91GU9MsS9Feb+jYUvUU3Z8XiClqPdqJZQ0ryXQJGg3U3PcEjXwfg==";
+      };
+    };
+    "stylelint-order-4.1.0" = {
+      name = "stylelint-order";
+      packageName = "stylelint-order";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylelint-order/-/stylelint-order-4.1.0.tgz";
+        sha512 = "sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==";
+      };
+    };
+    "stylelint-scss-3.19.0" = {
+      name = "stylelint-scss";
+      packageName = "stylelint-scss";
+      version = "3.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.19.0.tgz";
+        sha512 = "Ic5bsmpS4wVucOw44doC1Yi9f5qbeVL4wPFiEOaUElgsOuLEN6Ofn/krKI8BeNL2gAn53Zu+IcVV4E345r6rBw==";
+      };
+    };
+    "sugarss-2.0.0" = {
+      name = "sugarss";
+      packageName = "sugarss";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz";
+        sha512 = "WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==";
+      };
+    };
+    "supports-color-2.0.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+      };
+    };
+    "supports-color-3.2.3" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "3.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz";
+        sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-6.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "svg-tags-1.0.0" = {
+      name = "svg-tags";
+      packageName = "svg-tags";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz";
+        sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764";
+      };
+    };
+    "svgo-1.3.2" = {
+      name = "svgo";
+      packageName = "svgo";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz";
+        sha512 = "yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==";
+      };
+    };
+    "swiper-6.5.9" = {
+      name = "swiper";
+      packageName = "swiper";
+      version = "6.5.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swiper/-/swiper-6.5.9.tgz";
+        sha512 = "zO3UCLVEiOXZontAQWBNpWFZGV3WaXwHSgvng0qIGLVMyxYGD6w78S7YkGAu/XBam1SBQNZzxqfFc/LDjNdq/A==";
+      };
+    };
+    "table-5.4.6" = {
+      name = "table";
+      packageName = "table";
+      version = "5.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz";
+        sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
+      };
+    };
+    "table-6.6.0" = {
+      name = "table";
+      packageName = "table";
+      version = "6.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-6.6.0.tgz";
+        sha512 = "iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==";
+      };
+    };
+    "tapable-1.1.3" = {
+      name = "tapable";
+      packageName = "tapable";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz";
+        sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==";
+      };
+    };
+    "tapable-2.2.0" = {
+      name = "tapable";
+      packageName = "tapable";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz";
+        sha512 = "FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==";
+      };
+    };
+    "tar-6.1.0" = {
+      name = "tar";
+      packageName = "tar";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz";
+        sha512 = "DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==";
+      };
+    };
+    "temp-dir-1.0.0" = {
+      name = "temp-dir";
+      packageName = "temp-dir";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz";
+        sha1 = "0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d";
+      };
+    };
+    "tempy-0.3.0" = {
+      name = "tempy";
+      packageName = "tempy";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz";
+        sha512 = "WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==";
+      };
+    };
+    "terser-4.8.0" = {
+      name = "terser";
+      packageName = "terser";
+      version = "4.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz";
+        sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
+      };
+    };
+    "terser-5.7.0" = {
+      name = "terser";
+      packageName = "terser";
+      version = "5.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz";
+        sha512 = "HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==";
+      };
+    };
+    "terser-webpack-plugin-5.1.1" = {
+      name = "terser-webpack-plugin";
+      packageName = "terser-webpack-plugin";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz";
+        sha512 = "5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==";
+      };
+    };
+    "text-table-0.2.0" = {
+      name = "text-table";
+      packageName = "text-table";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    };
+    "thunky-1.1.0" = {
+      name = "thunky";
+      packageName = "thunky";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz";
+        sha512 = "eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==";
+      };
+    };
+    "timsort-0.3.0" = {
+      name = "timsort";
+      packageName = "timsort";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz";
+        sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-object-path-0.3.0" = {
+      name = "to-object-path";
+      packageName = "to-object-path";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    };
+    "to-regex-3.0.2" = {
+      name = "to-regex";
+      packageName = "to-regex";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
+        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
+      };
+    };
+    "to-regex-range-2.1.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "toidentifier-1.0.0" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+      };
+    };
+    "trim-0.0.1" = {
+      name = "trim";
+      packageName = "trim";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz";
+        sha1 = "5858547f6b290757ee95cccc666fb50084c460dd";
+      };
+    };
+    "trim-newlines-2.0.0" = {
+      name = "trim-newlines";
+      packageName = "trim-newlines";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz";
+        sha1 = "b403d0b91be50c331dfc4b82eeceb22c3de16d20";
+      };
+    };
+    "trim-newlines-3.0.0" = {
+      name = "trim-newlines";
+      packageName = "trim-newlines";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz";
+        sha512 = "C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==";
+      };
+    };
+    "trim-trailing-lines-1.1.4" = {
+      name = "trim-trailing-lines";
+      packageName = "trim-trailing-lines";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz";
+        sha512 = "rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==";
+      };
+    };
+    "trough-1.0.5" = {
+      name = "trough";
+      packageName = "trough";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz";
+        sha512 = "rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==";
+      };
+    };
+    "tsconfig-paths-3.9.0" = {
+      name = "tsconfig-paths";
+      packageName = "tsconfig-paths";
+      version = "3.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
+      };
+    };
+    "tslib-2.2.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz";
+        sha512 = "gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==";
+      };
+    };
+    "type-1.2.0" = {
+      name = "type";
+      packageName = "type";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
+        sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
+      };
+    };
+    "type-2.5.0" = {
+      name = "type";
+      packageName = "type";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-2.5.0.tgz";
+        sha512 = "180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==";
+      };
+    };
+    "type-check-0.4.0" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";
+        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
+      };
+    };
+    "type-fest-0.18.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.18.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz";
+        sha512 = "OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==";
+      };
+    };
+    "type-fest-0.20.2" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.20.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz";
+        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";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz";
+        sha512 = "q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==";
+      };
+    };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
+    "type-is-1.6.18" = {
+      name = "type-is";
+      packageName = "type-is";
+      version = "1.6.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+      };
+    };
+    "typedarray-to-buffer-3.1.5" = {
+      name = "typedarray-to-buffer";
+      packageName = "typedarray-to-buffer";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+      };
+    };
+    "unbox-primitive-1.0.1" = {
+      name = "unbox-primitive";
+      packageName = "unbox-primitive";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
+        sha512 = "tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==";
+      };
+    };
+    "unherit-1.1.3" = {
+      name = "unherit";
+      packageName = "unherit";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz";
+        sha512 = "Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==";
+      };
+    };
+    "unicode-canonical-property-names-ecmascript-1.0.4" = {
+      name = "unicode-canonical-property-names-ecmascript";
+      packageName = "unicode-canonical-property-names-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+      };
+    };
+    "unicode-match-property-ecmascript-1.0.4" = {
+      name = "unicode-match-property-ecmascript";
+      packageName = "unicode-match-property-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+      };
+    };
+    "unicode-match-property-value-ecmascript-1.2.0" = {
+      name = "unicode-match-property-value-ecmascript";
+      packageName = "unicode-match-property-value-ecmascript";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+      };
+    };
+    "unicode-property-aliases-ecmascript-1.1.0" = {
+      name = "unicode-property-aliases-ecmascript";
+      packageName = "unicode-property-aliases-ecmascript";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
+        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
+      };
+    };
+    "unified-7.1.0" = {
+      name = "unified";
+      packageName = "unified";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz";
+        sha512 = "lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==";
+      };
+    };
+    "unified-9.2.1" = {
+      name = "unified";
+      packageName = "unified";
+      version = "9.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz";
+        sha512 = "juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==";
+      };
+    };
+    "union-value-1.0.1" = {
+      name = "union-value";
+      packageName = "union-value";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
+        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
+      };
+    };
+    "uniq-1.0.1" = {
+      name = "uniq";
+      packageName = "uniq";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz";
+        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+      };
+    };
+    "uniqs-2.0.0" = {
+      name = "uniqs";
+      packageName = "uniqs";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz";
+        sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
+      };
+    };
+    "unique-filename-1.1.1" = {
+      name = "unique-filename";
+      packageName = "unique-filename";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz";
+        sha512 = "Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==";
+      };
+    };
+    "unique-slug-2.0.2" = {
+      name = "unique-slug";
+      packageName = "unique-slug";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz";
+        sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==";
+      };
+    };
+    "unique-string-1.0.0" = {
+      name = "unique-string";
+      packageName = "unique-string";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz";
+        sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+      };
+    };
+    "unist-util-find-all-after-1.0.5" = {
+      name = "unist-util-find-all-after";
+      packageName = "unist-util-find-all-after";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.5.tgz";
+        sha512 = "lWgIc3rrTMTlK1Y0hEuL+k+ApzFk78h+lsaa2gHf63Gp5Ww+mt11huDniuaoq1H+XMK2lIIjjPkncxXcDp3QDw==";
+      };
+    };
+    "unist-util-find-all-after-3.0.2" = {
+      name = "unist-util-find-all-after";
+      packageName = "unist-util-find-all-after";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz";
+        sha512 = "xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==";
+      };
+    };
+    "unist-util-is-3.0.0" = {
+      name = "unist-util-is";
+      packageName = "unist-util-is";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz";
+        sha512 = "sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==";
+      };
+    };
+    "unist-util-is-4.1.0" = {
+      name = "unist-util-is";
+      packageName = "unist-util-is";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz";
+        sha512 = "ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==";
+      };
+    };
+    "unist-util-remove-position-1.1.4" = {
+      name = "unist-util-remove-position";
+      packageName = "unist-util-remove-position";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz";
+        sha512 = "tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==";
+      };
+    };
+    "unist-util-stringify-position-1.1.2" = {
+      name = "unist-util-stringify-position";
+      packageName = "unist-util-stringify-position";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz";
+        sha512 = "pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==";
+      };
+    };
+    "unist-util-stringify-position-2.0.3" = {
+      name = "unist-util-stringify-position";
+      packageName = "unist-util-stringify-position";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz";
+        sha512 = "3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==";
+      };
+    };
+    "unist-util-visit-1.4.1" = {
+      name = "unist-util-visit";
+      packageName = "unist-util-visit";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz";
+        sha512 = "AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==";
+      };
+    };
+    "unist-util-visit-parents-2.1.2" = {
+      name = "unist-util-visit-parents";
+      packageName = "unist-util-visit-parents";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz";
+        sha512 = "DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==";
+      };
+    };
+    "universalify-0.1.2" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+      };
+    };
+    "unpipe-1.0.0" = {
+      name = "unpipe";
+      packageName = "unpipe";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    };
+    "unquote-1.1.1" = {
+      name = "unquote";
+      packageName = "unquote";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz";
+        sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544";
+      };
+    };
+    "unset-value-1.0.0" = {
+      name = "unset-value";
+      packageName = "unset-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    };
+    "upath-1.2.0" = {
+      name = "upath";
+      packageName = "upath";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
+        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
+      };
+    };
+    "uri-js-4.4.1" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";
+        sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
+      };
+    };
+    "urix-0.1.0" = {
+      name = "urix";
+      packageName = "urix";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    };
+    "url-0.11.0" = {
+      name = "url";
+      packageName = "url";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz";
+        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+      };
+    };
+    "url-parse-1.5.1" = {
+      name = "url-parse";
+      packageName = "url-parse";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz";
+        sha512 = "HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==";
+      };
+    };
+    "url-toolkit-2.2.2" = {
+      name = "url-toolkit";
+      packageName = "url-toolkit";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.2.tgz";
+        sha512 = "l25w6Sy+Iy3/IbogunxhWwljPaDnqpiKvrQRoLBm6DfISco7NyRIS7Zf6+Oxhy1T8kHxWdwLND7ZZba6NjXMug==";
+      };
+    };
+    "use-3.1.1" = {
+      name = "use";
+      packageName = "use";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
+        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "util.promisify-1.0.0" = {
+      name = "util.promisify";
+      packageName = "util.promisify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz";
+        sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==";
+      };
+    };
+    "util.promisify-1.0.1" = {
+      name = "util.promisify";
+      packageName = "util.promisify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz";
+        sha512 = "g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==";
+      };
+    };
+    "utila-0.4.0" = {
+      name = "utila";
+      packageName = "utila";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz";
+        sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c";
+      };
+    };
+    "utils-merge-1.0.1" = {
+      name = "utils-merge";
+      packageName = "utils-merge";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "v8-compile-cache-2.3.0" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
+      };
+    };
+    "validate-npm-package-license-3.0.4" = {
+      name = "validate-npm-package-license";
+      packageName = "validate-npm-package-license";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
+      };
+    };
+    "vary-1.1.2" = {
+      name = "vary";
+      packageName = "vary";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    };
+    "vendors-1.0.4" = {
+      name = "vendors";
+      packageName = "vendors";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz";
+        sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
+      };
+    };
+    "vfile-3.0.1" = {
+      name = "vfile";
+      packageName = "vfile";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz";
+        sha512 = "y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==";
+      };
+    };
+    "vfile-4.2.1" = {
+      name = "vfile";
+      packageName = "vfile";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz";
+        sha512 = "O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==";
+      };
+    };
+    "vfile-location-2.0.6" = {
+      name = "vfile-location";
+      packageName = "vfile-location";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz";
+        sha512 = "sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==";
+      };
+    };
+    "vfile-message-1.1.1" = {
+      name = "vfile-message";
+      packageName = "vfile-message";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz";
+        sha512 = "1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==";
+      };
+    };
+    "vfile-message-2.0.4" = {
+      name = "vfile-message";
+      packageName = "vfile-message";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz";
+        sha512 = "DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==";
+      };
+    };
+    "watchpack-2.1.1" = {
+      name = "watchpack";
+      packageName = "watchpack";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz";
+        sha512 = "Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==";
+      };
+    };
+    "wbuf-1.7.3" = {
+      name = "wbuf";
+      packageName = "wbuf";
+      version = "1.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz";
+        sha512 = "O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==";
+      };
+    };
+    "webcomponents.js-0.7.24" = {
+      name = "webcomponents.js";
+      packageName = "webcomponents.js";
+      version = "0.7.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webcomponents.js/-/webcomponents.js-0.7.24.tgz";
+        sha1 = "2116fbfa1468ec416a7befdaa333e1d118f69c04";
+      };
+    };
+    "webpack-5.36.2" = {
+      name = "webpack";
+      packageName = "webpack";
+      version = "5.36.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz";
+        sha512 = "XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==";
+      };
+    };
+    "webpack-cli-4.6.0" = {
+      name = "webpack-cli";
+      packageName = "webpack-cli";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz";
+        sha512 = "9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==";
+      };
+    };
+    "webpack-dev-middleware-3.7.3" = {
+      name = "webpack-dev-middleware";
+      packageName = "webpack-dev-middleware";
+      version = "3.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz";
+        sha512 = "djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==";
+      };
+    };
+    "webpack-dev-server-3.11.2" = {
+      name = "webpack-dev-server";
+      packageName = "webpack-dev-server";
+      version = "3.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
+        sha512 = "A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==";
+      };
+    };
+    "webpack-log-2.0.0" = {
+      name = "webpack-log";
+      packageName = "webpack-log";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz";
+        sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==";
+      };
+    };
+    "webpack-merge-4.2.2" = {
+      name = "webpack-merge";
+      packageName = "webpack-merge";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz";
+        sha512 = "TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==";
+      };
+    };
+    "webpack-merge-5.7.3" = {
+      name = "webpack-merge";
+      packageName = "webpack-merge";
+      version = "5.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz";
+        sha512 = "6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==";
+      };
+    };
+    "webpack-sources-1.4.3" = {
+      name = "webpack-sources";
+      packageName = "webpack-sources";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz";
+        sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
+      };
+    };
+    "webpack-sources-2.2.0" = {
+      name = "webpack-sources";
+      packageName = "webpack-sources";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz";
+        sha512 = "bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==";
+      };
+    };
+    "websocket-driver-0.7.4" = {
+      name = "websocket-driver";
+      packageName = "websocket-driver";
+      version = "0.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha512 = "b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==";
+      };
+    };
+    "websocket-extensions-0.1.4" = {
+      name = "websocket-extensions";
+      packageName = "websocket-extensions";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+        sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
+      };
+    };
+    "webworkify-1.5.0" = {
+      name = "webworkify";
+      packageName = "webworkify";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webworkify/-/webworkify-1.5.0.tgz";
+        sha512 = "AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g==";
+      };
+    };
+    "whatwg-fetch-3.6.2" = {
+      name = "whatwg-fetch";
+      packageName = "whatwg-fetch";
+      version = "3.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz";
+        sha512 = "bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==";
+      };
+    };
+    "whatwg-mimetype-2.3.0" = {
+      name = "whatwg-mimetype";
+      packageName = "whatwg-mimetype";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+        sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==";
+      };
+    };
+    "which-1.3.1" = {
+      name = "which";
+      packageName = "which";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+      };
+    };
+    "which-2.0.2" = {
+      name = "which";
+      packageName = "which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+      };
+    };
+    "which-boxed-primitive-1.0.2" = {
+      name = "which-boxed-primitive";
+      packageName = "which-boxed-primitive";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
+        sha512 = "bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==";
+      };
+    };
+    "which-module-2.0.0" = {
+      name = "which-module";
+      packageName = "which-module";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    };
+    "wildcard-2.0.0" = {
+      name = "wildcard";
+      packageName = "wildcard";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz";
+        sha512 = "JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "workbox-background-sync-5.1.4" = {
+      name = "workbox-background-sync";
+      packageName = "workbox-background-sync";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz";
+        sha512 = "AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA==";
+      };
+    };
+    "workbox-broadcast-update-5.1.4" = {
+      name = "workbox-broadcast-update";
+      packageName = "workbox-broadcast-update";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz";
+        sha512 = "HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA==";
+      };
+    };
+    "workbox-build-5.1.4" = {
+      name = "workbox-build";
+      packageName = "workbox-build";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-build/-/workbox-build-5.1.4.tgz";
+        sha512 = "xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow==";
+      };
+    };
+    "workbox-cacheable-response-5.1.4" = {
+      name = "workbox-cacheable-response";
+      packageName = "workbox-cacheable-response";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz";
+        sha512 = "0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==";
+      };
+    };
+    "workbox-core-5.1.4" = {
+      name = "workbox-core";
+      packageName = "workbox-core";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-core/-/workbox-core-5.1.4.tgz";
+        sha512 = "+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg==";
+      };
+    };
+    "workbox-expiration-5.1.4" = {
+      name = "workbox-expiration";
+      packageName = "workbox-expiration";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz";
+        sha512 = "oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==";
+      };
+    };
+    "workbox-google-analytics-5.1.4" = {
+      name = "workbox-google-analytics";
+      packageName = "workbox-google-analytics";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz";
+        sha512 = "0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==";
+      };
+    };
+    "workbox-navigation-preload-5.1.4" = {
+      name = "workbox-navigation-preload";
+      packageName = "workbox-navigation-preload";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz";
+        sha512 = "Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==";
+      };
+    };
+    "workbox-precaching-5.1.4" = {
+      name = "workbox-precaching";
+      packageName = "workbox-precaching";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-5.1.4.tgz";
+        sha512 = "gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==";
+      };
+    };
+    "workbox-range-requests-5.1.4" = {
+      name = "workbox-range-requests";
+      packageName = "workbox-range-requests";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz";
+        sha512 = "1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==";
+      };
+    };
+    "workbox-routing-5.1.4" = {
+      name = "workbox-routing";
+      packageName = "workbox-routing";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz";
+        sha512 = "8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==";
+      };
+    };
+    "workbox-strategies-5.1.4" = {
+      name = "workbox-strategies";
+      packageName = "workbox-strategies";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz";
+        sha512 = "VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==";
+      };
+    };
+    "workbox-streams-5.1.4" = {
+      name = "workbox-streams";
+      packageName = "workbox-streams";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz";
+        sha512 = "xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==";
+      };
+    };
+    "workbox-sw-5.1.4" = {
+      name = "workbox-sw";
+      packageName = "workbox-sw";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz";
+        sha512 = "9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA==";
+      };
+    };
+    "workbox-webpack-plugin-5.1.4" = {
+      name = "workbox-webpack-plugin";
+      packageName = "workbox-webpack-plugin";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz";
+        sha512 = "PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ==";
+      };
+    };
+    "workbox-window-5.1.4" = {
+      name = "workbox-window";
+      packageName = "workbox-window";
+      version = "5.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz";
+        sha512 = "vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==";
+      };
+    };
+    "worker-plugin-5.0.0" = {
+      name = "worker-plugin";
+      packageName = "worker-plugin";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz";
+        sha512 = "AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==";
+      };
+    };
+    "wrap-ansi-5.1.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "write-1.0.3" = {
+      name = "write";
+      packageName = "write";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz";
+        sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==";
+      };
+    };
+    "write-file-atomic-3.0.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
+      };
+    };
+    "write-file-stdout-0.0.2" = {
+      name = "write-file-stdout";
+      packageName = "write-file-stdout";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz";
+        sha1 = "c252d7c7c5b1b402897630e3453c7bfe690d9ca1";
+      };
+    };
+    "ws-6.2.1" = {
+      name = "ws";
+      packageName = "ws";
+      version = "6.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz";
+        sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
+      };
+    };
+    "x-is-string-0.1.0" = {
+      name = "x-is-string";
+      packageName = "x-is-string";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz";
+        sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
+      };
+    };
+    "xmldom-0.3.0" = {
+      name = "xmldom";
+      packageName = "xmldom";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz";
+        sha512 = "z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-4.0.3" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz";
+        sha512 = "JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==";
+      };
+    };
+    "yallist-4.0.0" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
+      };
+    };
+    "yaml-1.10.2" = {
+      name = "yaml";
+      packageName = "yaml";
+      version = "1.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz";
+        sha512 = "r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==";
+      };
+    };
+    "yargs-13.3.2" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "13.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
+        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
+      };
+    };
+    "yargs-parser-10.1.0" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "10.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz";
+        sha512 = "VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==";
+      };
+    };
+    "yargs-parser-13.1.2" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "13.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
+        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
+      };
+    };
+    "yargs-parser-20.2.7" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "20.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz";
+        sha512 = "FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==";
+      };
+    };
+    "yocto-queue-0.1.0" = {
+      name = "yocto-queue";
+      packageName = "yocto-queue";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz";
+        sha512 = "rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==";
+      };
+    };
+    "zwitch-1.0.5" = {
+      name = "zwitch";
+      packageName = "zwitch";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz";
+        sha512 = "V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==";
+      };
+    };
+  };
+  args = {
+    name = "jellyfin-web";
+    packageName = "jellyfin-web";
+    version = "0.0.0";
+    src = ../../../../../../../nix/store/ply469lh4lhgpa5j6ak4yss0sgprqzqy-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."@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-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      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/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."@csstools/convert-colors-1.4.0"
+      sources."@discoveryjs/json-ext-0.5.2"
+      (sources."@eslint/eslintrc-0.4.0" // {
+        dependencies = [
+          sources."globals-12.4.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."@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."@npmcli/move-file-1.1.2" // {
+        dependencies = [
+          sources."rimraf-3.0.2"
+        ];
+      })
+      sources."@rollup/plugin-node-resolve-7.1.3"
+      sources."@rollup/plugin-replace-2.4.2"
+      (sources."@rollup/pluginutils-3.1.0" // {
+        dependencies = [
+          sources."@types/estree-0.0.39"
+        ];
+      })
+      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/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/parse-json-4.0.0"
+      sources."@types/q-1.5.4"
+      sources."@types/resolve-0.0.8"
+      sources."@types/source-list-map-0.1.2"
+      sources."@types/tapable-1.0.7"
+      (sources."@types/uglify-js-3.13.0" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."@types/unist-2.0.3"
+      sources."@types/vfile-3.0.2"
+      sources."@types/vfile-message-2.0.0"
+      (sources."@types/webpack-4.41.28" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@types/webpack-sources-2.1.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."@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."aggregate-error-3.1.0"
+      sources."ajv-6.12.6"
+      sources."ajv-errors-1.0.1"
+      sources."ajv-keywords-3.5.2"
+      sources."alphanum-sort-1.0.2"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-html-0.0.7"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.2"
+      sources."argparse-1.0.10"
+      sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
+      sources."arr-union-3.1.0"
+      sources."array-find-index-1.0.2"
+      sources."array-flatten-2.1.2"
+      sources."array-includes-3.1.3"
+      sources."array-union-1.0.2"
+      sources."array-uniq-1.0.3"
+      sources."array-unique-0.3.2"
+      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."astral-regex-2.0.0"
+      sources."async-2.6.3"
+      sources."async-each-1.0.3"
+      sources."async-limiter-1.0.1"
+      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."bail-1.0.5"
+      sources."balanced-match-1.0.2"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."batch-0.6.1"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.2.0"
+      sources."bindings-1.5.0"
+      sources."blurhash-1.1.3"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."bytes-3.1.0"
+          sources."debug-2.6.9"
+          sources."iconv-lite-0.4.24"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."bonjour-3.5.0"
+      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."buffer-indexof-1.1.1"
+      sources."builtin-modules-3.2.0"
+      sources."bytes-3.0.0"
+      (sources."cacache-15.0.6" // {
+        dependencies = [
+          sources."p-map-4.0.0"
+          sources."rimraf-3.0.2"
+        ];
+      })
+      sources."cache-base-1.0.1"
+      sources."call-bind-1.0.2"
+      sources."call-me-maybe-1.0.1"
+      sources."caller-callsite-2.0.0"
+      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."caniuse-api-3.0.0"
+      sources."caniuse-db-1.0.30001222"
+      sources."caniuse-lite-1.0.30001222"
+      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."chownr-2.0.0"
+      sources."chrome-trace-event-1.0.3"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."classlist.js-https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz"
+      (sources."clean-css-4.2.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."clean-stack-2.2.0"
+      sources."clean-webpack-plugin-3.0.0"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."clone-deep-4.0.1"
+      sources."clone-regexp-2.2.0"
+      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-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.5"
+      sources."colorette-1.2.2"
+      sources."commander-4.1.1"
+      sources."common-tags-1.8.0"
+      sources."commondir-1.0.1"
+      sources."component-emitter-1.3.0"
+      sources."compressible-2.0.18"
+      (sources."compression-1.7.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      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."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."loader-utils-2.0.0"
+          sources."p-limit-3.1.0"
+          sources."schema-utils-3.0.0"
+        ];
+      })
+      sources."core-js-3.11.2"
+      (sources."core-js-compat-3.11.2" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
+      sources."core-util-is-1.0.2"
+      sources."cosmiconfig-5.2.1"
+      sources."cross-spawn-7.0.3"
+      sources."crypto-random-string-1.0.0"
+      sources."css-blank-pseudo-0.1.4"
+      sources."css-color-names-0.0.4"
+      sources."css-declaration-sorter-4.0.1"
+      (sources."css-has-pseudo-0.10.0" // {
+        dependencies = [
+          sources."cssesc-2.0.0"
+          sources."postcss-selector-parser-5.0.0"
+        ];
+      })
+      (sources."css-loader-5.2.4" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."postcss-8.2.13"
+          sources."schema-utils-3.0.0"
+          sources."semver-7.3.5"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."css-prefers-color-scheme-3.1.1"
+      sources."css-select-2.1.0"
+      sources."css-select-base-adapter-0.1.1"
+      (sources."css-tree-1.0.0-alpha.37" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."css-what-3.4.2"
+      sources."cssdb-4.4.0"
+      sources."cssesc-3.0.0"
+      sources."cssnano-4.1.11"
+      sources."cssnano-preset-default-4.0.8"
+      sources."cssnano-util-get-arguments-4.0.0"
+      sources."cssnano-util-get-match-4.0.0"
+      sources."cssnano-util-raw-cache-4.0.1"
+      sources."cssnano-util-same-parent-4.0.1"
+      (sources."csso-4.2.0" // {
+        dependencies = [
+          sources."css-tree-1.1.3"
+          sources."mdn-data-2.0.14"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."currently-unhandled-0.4.1"
+      (sources."d-1.0.1" // {
+        dependencies = [
+          sources."type-1.2.0"
+        ];
+      })
+      sources."date-fns-2.21.1"
+      sources."debug-4.3.2"
+      sources."decamelize-1.2.0"
+      (sources."decamelize-keys-1.1.0" // {
+        dependencies = [
+          sources."map-obj-1.0.1"
+        ];
+      })
+      sources."decode-uri-component-0.2.0"
+      sources."deep-equal-1.1.1"
+      sources."deep-is-0.1.3"
+      (sources."default-gateway-4.2.0" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."execa-1.0.0"
+          sources."get-stream-4.1.0"
+          sources."is-stream-1.1.0"
+          sources."npm-run-path-2.0.2"
+          sources."path-key-2.0.1"
+          sources."semver-5.7.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
+        ];
+      })
+      sources."define-properties-1.1.3"
+      sources."define-property-2.0.2"
+      sources."del-4.1.1"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."detect-node-2.0.5"
+      sources."dir-glob-3.0.1"
+      sources."dns-equal-1.0.0"
+      sources."dns-packet-1.3.1"
+      sources."dns-txt-2.0.2"
+      sources."doctrine-3.0.0"
+      sources."dom-converter-0.2.0"
+      (sources."dom-serializer-0.2.2" // {
+        dependencies = [
+          sources."domelementtype-2.2.0"
+        ];
+      })
+      sources."dom7-3.0.0"
+      sources."domelementtype-1.3.1"
+      (sources."domhandler-3.3.0" // {
+        dependencies = [
+          sources."domelementtype-2.2.0"
+        ];
+      })
+      sources."domutils-1.7.0"
+      sources."dot-case-3.0.4"
+      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."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" // {
+        dependencies = [
+          sources."tapable-2.2.0"
+        ];
+      })
+      sources."enquirer-2.3.6"
+      sources."entities-2.2.0"
+      sources."envinfo-7.8.1"
+      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-to-primitive-1.2.1"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
+      sources."es6-promise-4.2.8"
+      sources."es6-symbol-3.1.3"
+      sources."escalade-3.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      (sources."eslint-7.25.0" // {
+        dependencies = [
+          sources."@babel/code-frame-7.12.11"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.1"
+          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."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" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."eslint-module-utils-2.6.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          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."pkg-dir-2.0.0"
+        ];
+      })
+      (sources."eslint-plugin-compat-3.9.0" // {
+        dependencies = [
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."eslint-plugin-eslint-comments-3.2.0"
+      (sources."eslint-plugin-import-2.22.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."doctrine-1.5.0"
+          sources."ms-2.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."esprima-4.0.1"
+      (sources."esquery-1.4.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."estree-walker-1.0.1"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."event-emitter-0.3.5"
+      sources."eventemitter3-4.0.7"
+      sources."events-3.3.0"
+      sources."eventsource-1.1.0"
+      sources."execa-5.0.0"
+      sources."execall-2.0.0"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."expose-loader-1.0.3" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+        ];
+      })
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."array-flatten-1.1.1"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."path-to-regexp-0.1.7"
+        ];
+      })
+      sources."ext-1.4.0"
+      sources."extend-3.0.2"
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.5"
+      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."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."file-uri-to-path-1.0.0"
+      sources."fill-range-7.0.1"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."find-cache-dir-3.3.1"
+      sources."find-up-4.1.0"
+      (sources."flat-cache-3.0.4" // {
+        dependencies = [
+          sources."rimraf-3.0.2"
+        ];
+      })
+      sources."flatted-3.1.1"
+      sources."flatten-1.0.3"
+      sources."flv.js-1.5.0"
+      sources."follow-redirects-1.14.0"
+      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."fragment-cache-0.2.1"
+      sources."fresh-0.5.2"
+      sources."fs-extra-8.1.0"
+      sources."fs-minipass-2.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      sources."gather-stream-1.0.0"
+      sources."gensync-1.0.0-beta.2"
+      sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
+      sources."get-own-enumerable-property-symbols-3.0.2"
+      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-parent-5.1.2"
+      sources."glob-to-regexp-0.3.0"
+      sources."global-modules-2.0.0"
+      (sources."global-prefix-3.0.0" // {
+        dependencies = [
+          sources."which-1.3.1"
+        ];
+      })
+      sources."globals-11.12.0"
+      (sources."globby-6.1.0" // {
+        dependencies = [
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."globjoin-0.1.4"
+      sources."gonzales-pe-4.3.0"
+      sources."graceful-fs-4.2.6"
+      sources."handle-thing-2.0.1"
+      sources."hard-rejection-2.1.0"
+      sources."has-1.0.3"
+      (sources."has-ansi-2.0.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+        ];
+      })
+      sources."has-bigints-1.0.1"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          sources."is-buffer-1.1.6"
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."kind-of-4.0.0"
+        ];
+      })
+      sources."he-1.2.0"
+      sources."headroom.js-0.12.0"
+      sources."hex-color-regex-1.1.0"
+      sources."hls.js-0.14.17"
+      sources."hosted-git-info-2.8.9"
+      sources."hpack.js-2.1.6"
+      sources."hsl-regex-1.0.0"
+      sources."hsla-regex-1.0.0"
+      sources."html-entities-1.4.0"
+      (sources."html-loader-1.3.2" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+        ];
+      })
+      sources."html-minifier-terser-5.1.1"
+      sources."html-tags-3.1.0"
+      (sources."html-webpack-plugin-4.5.2" // {
+        dependencies = [
+          sources."util.promisify-1.0.0"
+        ];
+      })
+      (sources."htmlparser2-4.1.0" // {
+        dependencies = [
+          (sources."dom-serializer-1.3.1" // {
+            dependencies = [
+              sources."domhandler-4.2.0"
+            ];
+          })
+          sources."domelementtype-2.2.0"
+          (sources."domutils-2.6.0" // {
+            dependencies = [
+              sources."domhandler-4.2.0"
+            ];
+          })
+        ];
+      })
+      sources."http-deceiver-1.2.7"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-parser-js-0.5.3"
+      sources."http-proxy-1.18.1"
+      (sources."http-proxy-middleware-0.19.1" // {
+        dependencies = [
+          sources."braces-2.3.2"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."is-buffer-1.1.6"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."human-signals-2.1.0"
+      sources."iconv-lite-0.6.2"
+      sources."icss-utils-5.1.0"
+      sources."ignore-5.1.8"
+      sources."immediate-3.0.6"
+      sources."import-cwd-2.1.0"
+      sources."import-fresh-2.0.0"
+      sources."import-from-2.1.0"
+      sources."import-lazy-4.0.0"
+      sources."import-local-3.0.2"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."indexes-of-1.0.1"
+      sources."infer-owner-1.0.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.8"
+      sources."internal-ip-4.3.0"
+      sources."interpret-2.2.0"
+      sources."intersection-observer-0.12.0"
+      sources."ip-1.1.5"
+      sources."ip-regex-2.1.0"
+      sources."ipaddr.js-1.9.1"
+      sources."irregular-plurals-1.4.0"
+      sources."is-absolute-url-2.1.0"
+      sources."is-accessor-descriptor-1.0.0"
+      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-arrayish-0.2.1"
+      sources."is-bigint-1.0.2"
+      sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.0"
+      sources."is-buffer-2.0.5"
+      sources."is-callable-1.2.3"
+      sources."is-color-stop-1.1.0"
+      sources."is-core-module-2.3.0"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
+      sources."is-decimal-1.0.4"
+      sources."is-descriptor-1.0.2"
+      sources."is-directory-0.3.1"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-hexadecimal-1.0.4"
+      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-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-regexp-2.1.0"
+      sources."is-resolvable-1.1.0"
+      sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
+      sources."is-supported-regexp-flag-1.0.1"
+      sources."is-symbol-1.0.3"
+      sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
+      sources."is-whitespace-character-1.0.4"
+      sources."is-windows-1.0.2"
+      sources."is-word-character-1.0.4"
+      sources."is-wsl-1.1.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."jellyfin-apiclient-1.8.0"
+      (sources."jest-worker-26.6.2" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jquery-3.6.0"
+      sources."js-base64-2.6.4"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
+      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-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."killable-1.0.1"
+      sources."kind-of-6.0.3"
+      sources."klona-2.0.4"
+      sources."known-css-properties-0.21.0"
+      sources."leven-2.1.0"
+      sources."levn-0.4.1"
+      sources."libarchive.js-1.3.0"
+      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" // {
+        dependencies = [
+          sources."parse-json-2.2.0"
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."loader-runner-4.2.0"
+      (sources."loader-utils-1.4.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
+      (sources."localforage-1.9.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.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."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."loglevel-1.7.1"
+      sources."longest-streak-2.0.4"
+      sources."loud-rejection-1.6.0"
+      sources."lower-case-2.0.2"
+      sources."lru-cache-6.0.0"
+      sources."magic-string-0.25.7"
+      sources."make-dir-3.1.0"
+      sources."map-cache-0.2.2"
+      sources."map-obj-4.2.1"
+      sources."map-visit-1.0.0"
+      sources."markdown-escapes-1.0.4"
+      sources."markdown-table-1.1.3"
+      sources."marks-pane-1.0.9"
+      sources."material-design-icons-iconfont-6.1.0"
+      sources."mathml-tag-names-2.1.3"
+      sources."mdast-util-compact-1.0.4"
+      sources."mdast-util-from-markdown-0.8.5"
+      sources."mdast-util-to-markdown-0.6.5"
+      sources."mdast-util-to-string-2.0.0"
+      sources."mdn-data-2.0.4"
+      sources."media-typer-0.3.0"
+      sources."memory-fs-0.4.1"
+      (sources."meow-9.0.0" // {
+        dependencies = [
+          sources."hosted-git-info-4.0.2"
+          sources."normalize-package-data-3.0.2"
+          sources."parse-json-5.2.0"
+          (sources."read-pkg-5.2.0" // {
+            dependencies = [
+              sources."hosted-git-info-2.8.9"
+              sources."normalize-package-data-2.5.0"
+              sources."semver-5.7.1"
+              sources."type-fest-0.6.0"
+            ];
+          })
+          (sources."read-pkg-up-7.0.1" // {
+            dependencies = [
+              sources."type-fest-0.8.1"
+            ];
+          })
+          sources."semver-7.3.5"
+          sources."type-fest-0.18.1"
+        ];
+      })
+      sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."methods-1.1.2"
+      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."mimic-fn-2.1.0"
+      sources."min-indent-1.0.1"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."minimist-options-4.1.0" // {
+        dependencies = [
+          sources."is-plain-obj-1.1.0"
+        ];
+      })
+      sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-pipeline-1.2.4"
+      sources."minizlib-2.1.2"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-1.0.4"
+      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."nanomatch-1.2.13"
+      sources."native-promise-only-0.8.1"
+      sources."natural-compare-1.4.0"
+      sources."negotiator-0.6.2"
+      sources."neo-async-2.6.2"
+      sources."next-tick-1.0.0"
+      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."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."normalize-path-3.0.0"
+      sources."normalize-range-0.1.2"
+      sources."normalize-selector-0.2.0"
+      sources."normalize-url-3.3.0"
+      sources."npm-run-path-4.0.1"
+      sources."nth-check-1.0.2"
+      sources."num2fraction-1.2.2"
+      sources."object-assign-4.1.1"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-buffer-1.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-inspect-1.10.2"
+      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."obuf-1.1.2"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."opn-5.5.0"
+      sources."optionator-0.9.1"
+      sources."original-1.0.2"
+      sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-map-2.1.0"
+      sources."p-retry-3.0.1"
+      sources."p-try-2.2.0"
+      sources."page-1.11.6"
+      sources."pako-1.0.11"
+      sources."param-case-3.0.4"
+      (sources."parent-module-1.0.1" // {
+        dependencies = [
+          sources."callsites-3.1.0"
+        ];
+      })
+      sources."parse-entities-2.0.0"
+      sources."parse-json-4.0.0"
+      sources."parseurl-1.3.3"
+      sources."pascal-case-3.1.2"
+      sources."pascalcase-0.1.1"
+      sources."path-dirname-1.0.2"
+      sources."path-exists-4.0.0"
+      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-to-regexp-1.2.1" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+        ];
+      })
+      sources."path-type-4.0.0"
+      sources."path-webpack-0.0.3"
+      sources."pdfjs-dist-2.5.207"
+      sources."picomatch-2.2.3"
+      sources."pify-4.0.1"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."pkg-dir-4.2.0"
+      sources."plur-2.1.2"
+      (sources."portfinder-1.0.28" // {
+        dependencies = [
+          sources."debug-3.2.7"
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      sources."posix-character-classes-0.1.1"
+      (sources."postcss-7.0.35" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."postcss-attribute-case-insensitive-4.0.2"
+      sources."postcss-calc-7.0.5"
+      sources."postcss-color-functional-notation-2.0.1"
+      sources."postcss-color-gray-5.0.0"
+      sources."postcss-color-hex-alpha-5.0.3"
+      sources."postcss-color-mod-function-3.0.3"
+      sources."postcss-color-rebeccapurple-4.0.1"
+      (sources."postcss-colormin-4.0.3" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-convert-values-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-custom-media-7.0.8"
+      sources."postcss-custom-properties-8.0.11"
+      (sources."postcss-custom-selectors-5.1.2" // {
+        dependencies = [
+          sources."cssesc-2.0.0"
+          sources."postcss-selector-parser-5.0.0"
+        ];
+      })
+      (sources."postcss-dir-pseudo-class-5.0.0" // {
+        dependencies = [
+          sources."cssesc-2.0.0"
+          sources."postcss-selector-parser-5.0.0"
+        ];
+      })
+      sources."postcss-discard-comments-4.0.2"
+      sources."postcss-discard-duplicates-4.0.2"
+      sources."postcss-discard-empty-4.0.1"
+      sources."postcss-discard-overridden-4.0.1"
+      sources."postcss-double-position-gradients-1.0.0"
+      sources."postcss-env-function-2.0.2"
+      sources."postcss-focus-visible-4.0.0"
+      sources."postcss-focus-within-3.0.0"
+      sources."postcss-font-variant-4.0.1"
+      sources."postcss-gap-properties-2.0.0"
+      (sources."postcss-html-0.36.0" // {
+        dependencies = [
+          sources."domhandler-2.4.2"
+          sources."entities-1.1.2"
+          sources."htmlparser2-3.10.1"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."postcss-image-set-function-3.0.1"
+      sources."postcss-initial-3.0.4"
+      sources."postcss-jsx-0.36.4"
+      sources."postcss-lab-function-2.0.1"
+      sources."postcss-less-3.1.4"
+      sources."postcss-load-config-2.1.2"
+      (sources."postcss-loader-3.0.0" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      sources."postcss-logical-3.0.0"
+      (sources."postcss-markdown-0.36.0" // {
+        dependencies = [
+          sources."is-plain-obj-1.1.0"
+          sources."parse-entities-1.2.2"
+          sources."remark-10.0.1"
+          sources."remark-parse-6.0.3"
+          sources."remark-stringify-6.0.4"
+          sources."unified-7.1.0"
+          sources."unist-util-find-all-after-1.0.5"
+          sources."unist-util-is-3.0.0"
+          sources."unist-util-stringify-position-1.1.2"
+          sources."vfile-3.0.1"
+          sources."vfile-message-1.1.1"
+        ];
+      })
+      sources."postcss-media-minmax-4.0.0"
+      sources."postcss-media-query-parser-0.2.3"
+      (sources."postcss-merge-longhand-4.0.11" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-merge-rules-4.0.3" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      (sources."postcss-minify-font-values-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-gradients-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-params-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-selectors-4.0.2" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      sources."postcss-modules-extract-imports-3.0.0"
+      sources."postcss-modules-local-by-default-4.0.0"
+      sources."postcss-modules-scope-3.0.0"
+      sources."postcss-modules-values-4.0.0"
+      sources."postcss-nesting-7.0.1"
+      sources."postcss-normalize-charset-4.0.1"
+      (sources."postcss-normalize-display-values-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-positions-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-repeat-style-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-string-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-timing-functions-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-unicode-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-url-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-whitespace-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-ordered-values-4.1.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-overflow-shorthand-2.0.0"
+      sources."postcss-page-break-2.0.0"
+      sources."postcss-place-4.0.1"
+      sources."postcss-preset-env-6.7.0"
+      (sources."postcss-pseudo-class-any-link-6.0.0" // {
+        dependencies = [
+          sources."cssesc-2.0.0"
+          sources."postcss-selector-parser-5.0.0"
+        ];
+      })
+      sources."postcss-reduce-initial-4.0.3"
+      (sources."postcss-reduce-transforms-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-replace-overflow-wrap-3.0.0"
+      (sources."postcss-reporter-6.0.1" // {
+        dependencies = [
+          sources."log-symbols-2.2.0"
+        ];
+      })
+      sources."postcss-resolve-nested-selector-0.1.1"
+      sources."postcss-safe-parser-4.0.2"
+      sources."postcss-sass-0.4.4"
+      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-sorting-4.1.0"
+      (sources."postcss-svgo-4.0.3" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-syntax-0.36.2"
+      sources."postcss-unique-selectors-4.0.1"
+      sources."postcss-value-parser-4.1.0"
+      sources."postcss-values-parser-2.0.1"
+      sources."prelude-ls-1.2.1"
+      sources."pretty-bytes-5.6.0"
+      sources."pretty-error-2.1.2"
+      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."prr-1.0.1"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."q-1.5.1"
+      sources."qs-6.7.0"
+      sources."querystring-0.2.0"
+      sources."querystringify-2.2.0"
+      sources."queue-microtask-1.2.3"
+      sources."quick-lru-4.0.1"
+      sources."randombytes-2.1.0"
+      sources."range-parser-1.2.1"
+      (sources."raw-body-2.4.0" // {
+        dependencies = [
+          sources."bytes-3.1.0"
+          sources."iconv-lite-0.4.24"
+        ];
+      })
+      sources."read-file-stdin-0.2.1"
+      (sources."read-pkg-2.0.0" // {
+        dependencies = [
+          sources."path-type-2.0.0"
+          sources."pify-2.3.0"
+        ];
+      })
+      (sources."read-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."readable-stream-2.3.7"
+      sources."readdirp-3.5.0"
+      sources."rechoir-0.7.0"
+      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-transform-0.14.5"
+      sources."regex-not-1.0.2"
+      sources."regexp.prototype.flags-1.3.1"
+      sources."regexpp-3.1.0"
+      sources."regexpu-core-4.7.1"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.6.9" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
+      sources."relateurl-0.2.7"
+      sources."remark-13.0.0"
+      sources."remark-parse-9.0.0"
+      sources."remark-stringify-9.0.1"
+      sources."remove-trailing-separator-1.1.0"
+      (sources."renderkid-2.0.5" // {
+        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."strip-ansi-3.0.1"
+        ];
+      })
+      sources."repeat-element-1.1.4"
+      sources."repeat-string-1.6.1"
+      sources."replace-ext-1.0.0"
+      sources."require-directory-2.1.1"
+      sources."require-from-string-2.0.2"
+      sources."require-main-filename-2.0.0"
+      sources."requires-port-1.0.0"
+      sources."resize-observer-polyfill-1.5.1"
+      sources."resolve-1.20.0"
+      (sources."resolve-cwd-3.0.0" // {
+        dependencies = [
+          sources."resolve-from-5.0.0"
+        ];
+      })
+      sources."resolve-from-3.0.0"
+      sources."resolve-url-0.2.1"
+      sources."ret-0.1.15"
+      sources."retry-0.12.0"
+      sources."reusify-1.0.4"
+      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" // {
+        dependencies = [
+          sources."jest-worker-24.9.0"
+          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."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" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+          sources."semver-7.3.5"
+        ];
+      })
+      sources."sax-1.2.4"
+      sources."schema-utils-2.7.1"
+      sources."screenfull-5.1.0"
+      sources."select-hose-2.0.0"
+      sources."selfsigned-1.10.11"
+      sources."semver-6.3.0"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serialize-javascript-5.0.1"
+      (sources."serve-index-1.9.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."http-errors-1.6.3"
+          sources."inherits-2.0.3"
+          sources."ms-2.0.0"
+          sources."setprototypeof-1.1.0"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      sources."set-immediate-shim-1.0.1"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."setprototypeof-1.1.1"
+      sources."shallow-clone-3.0.1"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-3.0.3"
+      (sources."simple-swizzle-0.2.2" // {
+        dependencies = [
+          sources."is-arrayish-0.3.2"
+        ];
+      })
+      sources."slash-3.0.0"
+      (sources."slice-ansi-4.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."is-buffer-1.1.6"
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."sockjs-0.3.21"
+      (sources."sockjs-client-1.5.1" // {
+        dependencies = [
+          sources."debug-3.2.7"
+        ];
+      })
+      sources."sortablejs-1.13.0"
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.5.7"
+      (sources."source-map-loader-1.1.3" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."source-map-resolve-0.5.3"
+      (sources."source-map-support-0.5.19" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."source-map-url-0.4.1"
+      sources."sourcemap-codec-1.4.8"
+      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."spdy-4.0.2"
+      (sources."spdy-transport-3.0.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."specificity-0.4.1"
+      sources."split-string-3.1.0"
+      sources."sprintf-js-1.0.3"
+      sources."ssr-window-3.0.0"
+      sources."ssri-8.0.1"
+      sources."stable-0.1.8"
+      sources."state-toggle-1.0.3"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."statuses-1.5.0"
+      sources."string-width-4.2.2"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
+      sources."string_decoder-1.1.1"
+      sources."stringify-entities-1.3.2"
+      (sources."stringify-object-3.3.0" // {
+        dependencies = [
+          sources."is-obj-1.0.1"
+          sources."is-regexp-1.0.0"
+        ];
+      })
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-comments-1.0.2"
+      sources."strip-eof-1.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-indent-3.0.0"
+      sources."strip-json-comments-3.1.1"
+      (sources."style-loader-2.0.0" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."schema-utils-3.0.0"
+        ];
+      })
+      sources."style-search-0.1.0"
+      (sources."stylehacks-4.0.3" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      (sources."stylelint-13.13.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."array-union-2.1.0"
+          sources."balanced-match-2.0.0"
+          sources."chalk-4.1.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."cosmiconfig-7.0.0"
+          sources."globby-11.0.3"
+          sources."has-flag-4.0.0"
+          (sources."import-fresh-3.3.0" // {
+            dependencies = [
+              sources."resolve-from-4.0.0"
+            ];
+          })
+          sources."parse-json-5.2.0"
+          sources."resolve-from-5.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."stylelint-config-rational-order-0.1.2" // {
+        dependencies = [
+          sources."@nodelib/fs.stat-1.1.3"
+          sources."ansi-regex-4.1.0"
+          sources."astral-regex-1.0.0"
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."camelcase-4.1.0"
+          sources."camelcase-keys-4.2.0"
+          sources."clone-regexp-1.0.1"
+          sources."dir-glob-2.2.2"
+          sources."emoji-regex-7.0.3"
+          sources."execall-1.0.0"
+          sources."fast-glob-2.2.7"
+          sources."file-entry-cache-4.0.0"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              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"
+          sources."glob-parent-3.1.0"
+          sources."globby-9.2.0"
+          sources."html-tags-2.0.0"
+          sources."ignore-4.0.6"
+          sources."import-lazy-3.1.0"
+          sources."indent-string-3.2.0"
+          sources."is-buffer-1.1.6"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."is-plain-obj-1.1.0"
+          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"
+          sources."slash-2.0.0"
+          sources."slice-ansi-2.1.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."strip-indent-2.0.0"
+          sources."stylelint-9.10.1"
+          sources."stylelint-order-2.2.1"
+          sources."table-5.4.6"
+          sources."to-regex-range-2.1.1"
+          sources."trim-newlines-2.0.0"
+          sources."yargs-parser-10.1.0"
+        ];
+      })
+      (sources."stylelint-no-browser-hacks-1.2.1" // {
+        dependencies = [
+          sources."@nodelib/fs.stat-1.1.3"
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-2.2.1"
+          sources."astral-regex-1.0.0"
+          sources."braces-2.3.2"
+          sources."browserslist-1.7.7"
+          sources."camelcase-4.1.0"
+          sources."camelcase-keys-4.2.0"
+          sources."chalk-1.1.3"
+          sources."clone-regexp-1.0.1"
+          sources."dir-glob-2.2.2"
+          sources."emoji-regex-7.0.3"
+          sources."execall-1.0.0"
+          sources."extend-shallow-2.0.1"
+          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"
+          sources."glob-parent-3.1.0"
+          sources."globby-9.2.0"
+          sources."has-flag-1.0.0"
+          sources."html-tags-2.0.0"
+          sources."ignore-4.0.6"
+          sources."import-lazy-3.1.0"
+          sources."indent-string-3.2.0"
+          sources."is-buffer-1.1.6"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."is-plain-obj-1.1.0"
+          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" // {
+            dependencies = [
+              sources."supports-color-3.2.3"
+            ];
+          })
+          sources."postcss-reporter-1.4.1"
+          (sources."postcss-sass-0.3.5" // {
+            dependencies = [
+              sources."ansi-styles-3.2.1"
+              (sources."chalk-2.4.2" // {
+                dependencies = [
+                  sources."supports-color-5.5.0"
+                ];
+              })
+              sources."has-flag-3.0.0"
+              sources."postcss-7.0.35"
+              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"
+          sources."slash-2.0.0"
+          (sources."slice-ansi-2.1.0" // {
+            dependencies = [
+              sources."ansi-styles-3.2.1"
+            ];
+          })
+          sources."source-map-0.6.1"
+          (sources."string-width-3.1.0" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+              sources."strip-ansi-5.2.0"
+            ];
+          })
+          sources."strip-ansi-3.0.1"
+          sources."strip-indent-2.0.0"
+          sources."stylehacks-2.3.2"
+          (sources."stylelint-9.10.1" // {
+            dependencies = [
+              sources."ansi-styles-3.2.1"
+              sources."chalk-2.4.2"
+              sources."has-flag-3.0.0"
+              sources."log-symbols-2.2.0"
+              (sources."postcss-7.0.35" // {
+                dependencies = [
+                  sources."supports-color-6.1.0"
+                ];
+              })
+              sources."postcss-reporter-6.0.1"
+              sources."postcss-selector-parser-3.1.2"
+              sources."supports-color-5.5.0"
+            ];
+          })
+          sources."supports-color-2.0.0"
+          sources."table-5.4.6"
+          sources."to-regex-range-2.1.1"
+          sources."trim-newlines-2.0.0"
+          sources."yargs-parser-10.1.0"
+        ];
+      })
+      (sources."stylelint-order-4.1.0" // {
+        dependencies = [
+          sources."postcss-sorting-5.0.1"
+        ];
+      })
+      sources."stylelint-scss-3.19.0"
+      sources."sugarss-2.0.0"
+      sources."supports-color-5.5.0"
+      sources."svg-tags-1.0.0"
+      (sources."svgo-1.3.2" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      sources."swiper-6.5.9"
+      (sources."table-6.6.0" // {
+        dependencies = [
+          sources."ajv-8.2.0"
+          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" // {
+        dependencies = [
+          sources."type-fest-0.3.1"
+        ];
+      })
+      (sources."terser-4.8.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."terser-webpack-plugin-5.1.1" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."p-limit-3.1.0"
+          sources."schema-utils-3.0.0"
+          sources."source-map-0.6.1"
+          (sources."terser-5.7.0" // {
+            dependencies = [
+              sources."source-map-0.7.3"
+            ];
+          })
+        ];
+      })
+      sources."text-table-0.2.0"
+      sources."thunky-1.1.0"
+      sources."timsort-0.3.0"
+      sources."to-fast-properties-2.0.0"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."is-buffer-1.1.6"
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-5.0.1"
+      sources."toidentifier-1.0.0"
+      sources."trim-0.0.1"
+      sources."trim-newlines-3.0.0"
+      sources."trim-trailing-lines-1.1.4"
+      sources."trough-1.0.5"
+      (sources."tsconfig-paths-3.9.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
+      sources."tslib-2.2.0"
+      sources."type-2.5.0"
+      sources."type-check-0.4.0"
+      sources."type-fest-0.8.1"
+      sources."type-is-1.6.18"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."unbox-primitive-1.0.1"
+      sources."unherit-1.1.3"
+      sources."unicode-canonical-property-names-ecmascript-1.0.4"
+      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."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."unist-util-find-all-after-3.0.2"
+      sources."unist-util-is-4.1.0"
+      sources."unist-util-remove-position-1.1.4"
+      sources."unist-util-stringify-position-2.0.3"
+      sources."unist-util-visit-1.4.1"
+      (sources."unist-util-visit-parents-2.1.2" // {
+        dependencies = [
+          sources."unist-util-is-3.0.0"
+        ];
+      })
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
+      sources."unquote-1.1.1"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+        ];
+      })
+      sources."upath-1.2.0"
+      sources."uri-js-4.4.1"
+      sources."urix-0.1.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."url-parse-1.5.1"
+      sources."url-toolkit-2.2.2"
+      sources."use-3.1.1"
+      sources."util-deprecate-1.0.2"
+      sources."util.promisify-1.0.1"
+      sources."utila-0.4.0"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."v8-compile-cache-2.3.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."vary-1.1.2"
+      sources."vendors-1.0.4"
+      sources."vfile-4.2.1"
+      sources."vfile-location-2.0.6"
+      sources."vfile-message-2.0.4"
+      (sources."watchpack-2.1.1" // {
+        dependencies = [
+          sources."glob-to-regexp-0.4.1"
+        ];
+      })
+      sources."wbuf-1.7.3"
+      sources."webcomponents.js-0.7.24"
+      (sources."webpack-5.36.2" // {
+        dependencies = [
+          sources."acorn-8.2.4"
+          sources."glob-to-regexp-0.4.1"
+          sources."schema-utils-3.0.0"
+          sources."source-map-0.6.1"
+          sources."tapable-2.2.0"
+          sources."webpack-sources-2.2.0"
+        ];
+      })
+      (sources."webpack-cli-4.6.0" // {
+        dependencies = [
+          sources."commander-7.2.0"
+          sources."webpack-merge-5.7.3"
+        ];
+      })
+      (sources."webpack-dev-middleware-3.7.3" // {
+        dependencies = [
+          sources."mime-2.5.2"
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      (sources."webpack-dev-server-3.11.2" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."braces-2.3.2"
+          sources."chokidar-2.1.8"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."find-up-3.0.0"
+          sources."fsevents-1.2.13"
+          sources."glob-parent-3.1.0"
+          sources."import-local-2.0.0"
+          sources."is-absolute-url-3.0.3"
+          sources."is-binary-path-1.0.1"
+          sources."is-buffer-1.1.6"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."locate-path-3.0.0"
+          sources."micromatch-3.1.10"
+          sources."normalize-path-2.1.1"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."pkg-dir-3.0.0"
+          sources."readdirp-2.2.1"
+          sources."resolve-cwd-2.0.0"
+          sources."schema-utils-1.0.0"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-6.1.0"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      (sources."webpack-log-2.0.0" // {
+        dependencies = [
+          sources."ansi-colors-3.2.4"
+        ];
+      })
+      sources."webpack-merge-4.2.2"
+      (sources."webpack-sources-1.4.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."websocket-driver-0.7.4"
+      sources."websocket-extensions-0.1.4"
+      sources."webworkify-1.5.0"
+      sources."whatwg-fetch-3.6.2"
+      sources."whatwg-mimetype-2.3.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" // {
+        dependencies = [
+          sources."source-map-0.7.3"
+        ];
+      })
+      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-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."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      (sources."write-1.0.3" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      sources."write-file-atomic-3.0.3"
+      sources."write-file-stdout-0.0.2"
+      sources."ws-6.2.1"
+      sources."x-is-string-0.1.0"
+      sources."xmldom-0.3.0"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.3"
+      sources."yallist-4.0.0"
+      sources."yaml-1.10.2"
+      (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"
+          sources."locate-path-3.0.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."yargs-parser-13.1.2"
+        ];
+      })
+      sources."yargs-parser-20.2.7"
+      sources."yocto-queue-0.1.0"
+      sources."zwitch-1.0.5"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Web interface for Jellyfin";
+      license = "GPL-2.0-or-later";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+  nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+    src = stdenv.mkDerivation {
+      name = args.name + "-package-json";
+      src = nix-gitignore.gitignoreSourcePure [
+        "*"
+        "!package.json"
+        "!package-lock.json"
+      ] args.src;
+      dontBuild = true;
+      installPhase = "mkdir -p $out; cp -r ./* $out;";
+    };
+  });
+}
diff --git a/nixpkgs/pkgs/servers/jellyfin/nuget-deps.nix b/nixpkgs/pkgs/servers/jellyfin/nuget-deps.nix
new file mode 100644
index 000000000000..978a2cff615d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jellyfin/nuget-deps.nix
@@ -0,0 +1,2268 @@
+# This file has been generated by the jellyfin updateScript. Do not edit!
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "BDInfo";
+    version = "0.7.6.1";
+    sha256 = "06qhssvd4iicssl9wv7921g3ss6y2s6g9zhf1svgcm8ffs52i38i";
+  })
+  (fetchNuGet {
+    name = "BlurHashSharp";
+    version = "1.1.1";
+    sha256 = "1fbpg9935pfpr93vywxjdxqzjv1c7v3z86ylzh5n2krxm5jygzrv";
+  })
+  (fetchNuGet {
+    name = "BlurHashSharp.SkiaSharp";
+    version = "1.1.1";
+    sha256 = "11ljrrph0kkw2qfxyza9xfzmh6aspbx5iv0pvk4ms0hyzxh1mas0";
+  })
+  (fetchNuGet {
+    name = "CommandLineParser";
+    version = "2.8.0";
+    sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb";
+  })
+  (fetchNuGet {
+    name = "DotNet.Glob";
+    version = "3.1.0";
+    sha256 = "11rvhb7y420yadah3j8by5xc7ad2ks2bqyhn4aa10m3xb6hiza0i";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.8.26";
+    sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm";
+  })
+  (fetchNuGet {
+    name = "Jellyfin.XmlTv";
+    version = "10.6.2";
+    sha256 = "0ngxjl6d99hzccdbisgwf84w27j2fvjxr05awkirvm6nzvbgq16a";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Antiforgery";
+    version = "2.2.0";
+    sha256 = "026wjdwjx0lgccqv0xi5gxylxzgz5ifgxf25p5pqakgrhkz0a59l";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
+    version = "5.0.5";
+    sha256 = "026m19pddhkx5idwpi6mp1yl9yfcfgm2qjp1jh54mdja1d7ng0vk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Authentication";
+    version = "2.2.0";
+    sha256 = "0yqfzd0qq5ypmk6b9gnb1yscl75fxx9frq808cxs70ay7y7jqmgn";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Authentication.Abstractions";
+    version = "2.2.0";
+    sha256 = "0vj7fhpk0d95nkkxz4q0rma6pb4ym96mx6nms4603y0l19h0k5yh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Authentication.Core";
+    version = "2.2.0";
+    sha256 = "1wgn45fmdi7dk9cl4cdhzgqc9mdxhfw7zg8zwns3j7qgrhlv6k8h";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Authorization";
+    version = "5.0.3";
+    sha256 = "0cffsksaaxndmryb3m1bhli1iihq1wc69dinpxzrdwhw8s2bmfxw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Authorization.Policy";
+    version = "2.2.0";
+    sha256 = "1d1zh65kfjf81j21ssmhr465vx08bra8424vgnrb22gdx03mhwd2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Connections.Abstractions";
+    version = "2.2.0";
+    sha256 = "1rl94r8b0zq14f3dhfnvfjj1ivr81iw9zh5kdgs3zkdv0xc9x21j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Cors";
+    version = "2.2.0";
+    sha256 = "0qskbz87i74kfbklxqfyqaccyba21kkx2lcdfa54kxj9r8daq7sc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Cryptography.Internal";
+    version = "2.2.0";
+    sha256 = "01lg2fx85b47ldgdrhs6clsivj35x54xwc9r5xk3f1v8rr3gycsv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.DataProtection";
+    version = "2.2.0";
+    sha256 = "09lzbp084xxy1xxfbxpqdff8phv2pzd1n5v30xfm03hhl7a038gx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.DataProtection.Abstractions";
+    version = "2.2.0";
+    sha256 = "1gi4hpssmrrdf5lm6idkhvqbfy12bx14976y4gbhmx9z8lxaqcfz";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Diagnostics.Abstractions";
+    version = "2.2.0";
+    sha256 = "061cdhjh5w2f1frhimcgk68vx8p743jb9h4qik3lm1c734r0drm0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Hosting";
+    version = "2.2.7";
+    sha256 = "0pr4kmzlj3rmylxqg6dw2ph8a8sl2m2k630z1qy21kddsb4ac849";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Hosting.Abstractions";
+    version = "2.2.0";
+    sha256 = "043k651vbfshh3s997x42ymj8nb32419m7q3sjw5q2c27anrhfhv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Hosting.Server.Abstractions";
+    version = "2.2.0";
+    sha256 = "0nz73bwrvhc1n7gd7xxm3p5ww2wx9qr9m9i43y20gh0c54adkygh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Html.Abstractions";
+    version = "2.2.0";
+    sha256 = "1z5lkzb9h9wprvyxyjw4fj7bjypaibsw0cj4bz769hf0abjz8y1v";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http";
+    version = "2.2.0";
+    sha256 = "1fcrafpa57sab3as18idqknzlxkx49n4sxzlzik3sj6pcji5j17q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http";
+    version = "2.2.2";
+    sha256 = "09mgjvpqdyylz9dbngql9arx46lfkiczjdf7aqr9asd5vjqlv2c8";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http.Abstractions";
+    version = "2.2.0";
+    sha256 = "13s8cm6jdpydxmr0rgmzrmnp1v2r7i3rs7v9fhabk5spixdgfy6b";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http.Extensions";
+    version = "2.2.0";
+    sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http.Features";
+    version = "2.2.0";
+    sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.JsonPatch";
+    version = "2.2.0";
+    sha256 = "07cihb5sqkavg42nvircdwjp0b67mhrla97jgx285zdjphplg4h2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Localization";
+    version = "2.2.0";
+    sha256 = "08knc70cy7ycid5sbbbzy6my4b7ddj4j760k5xf1qnfb0njxhfh7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Metadata";
+    version = "5.0.3";
+    sha256 = "01v2iaqpzz0h6z3hg1vr67za7d3283gs0wym42zvb9yksg6pf0zi";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc";
+    version = "2.2.0";
+    sha256 = "16jrikcywkd4r4jh551p8gxxw6hj3aizdzd5i7agb06gwpgqqv9c";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Abstractions";
+    version = "2.2.0";
+    sha256 = "09p447ipd19517vy8xx9ykvspn6b4fgbm2rskpmzyw41x9wz4k0b";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Analyzers";
+    version = "2.2.0";
+    sha256 = "1b975z00bzgh2z5hina4bzfksvc2vgnbzmi8g3q962hspg6ylh9f";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.ApiExplorer";
+    version = "2.2.0";
+    sha256 = "1ryhd1md30fgrli74qv45mhldivbasdvydw0lllg6x6jzpyrkwpa";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Core";
+    version = "2.2.0";
+    sha256 = "1k6lkgk9zak5sczvyjbwgqnfcwcg9ks74wznqfzck8c6hns1by0m";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Cors";
+    version = "2.2.0";
+    sha256 = "077vjxn0k5rr4s675g50rzkns6scgijxxh5iib59k77ldwpdr14q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.DataAnnotations";
+    version = "2.2.0";
+    sha256 = "0vdhdjarh4az7g71gkvmhq6xpvwhh8si3sbrpdwb8p60i94cdyl6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Formatters.Json";
+    version = "2.2.0";
+    sha256 = "0421fcf2z8a6z81ql123ili32wbr3x25zpq17xjf4s9fmsr0069a";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Localization";
+    version = "2.2.0";
+    sha256 = "0d27xirwsr3j7jacsrz6g2r4py35hgzjyy6ak6gkd07cm707wgc6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Razor";
+    version = "2.2.0";
+    sha256 = "06fqg7rfyvfj3hdppkhy37ddjff2d6pg7khj6lccs9lwc732yr7q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
+    version = "2.2.0";
+    sha256 = "04javqbzv7mkakqjl40j429giaagjj7hmwcljrgj8q1jknk0x9xc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.RazorPages";
+    version = "2.2.0";
+    sha256 = "0zqyqfxzl3lkqfy9chd0ipani75q3109imlxrnhdfiwmxrd8xqbm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.TagHelpers";
+    version = "2.2.0";
+    sha256 = "16aprk81sp2i0n0dmp318cm65mk03i58rhpijm4fz4xz51j7z8li";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.ViewFeatures";
+    version = "2.2.0";
+    sha256 = "1isflvb0ff5nfqnvdlyvmszkd42axbbz0xmdaf0d7sah0qkvvi7n";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Razor";
+    version = "2.2.0";
+    sha256 = "02ybprvsi59nwa0fdq99jvx7r26bs2bg3xjxkilc495clgg98zp0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Razor.Design";
+    version = "2.2.0";
+    sha256 = "03pcdcbmyw050hag588b7caqilnq3cb6ndq5g6j0r7j7wf3plsn6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Razor.Language";
+    version = "2.2.0";
+    sha256 = "0n58qdipwy5wymfhgm3anickwvnf4svb9ipbrby7ksrhhrkqvx4z";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Razor.Runtime";
+    version = "2.2.0";
+    sha256 = "1n9j5hjinm5gp39nwmcf26dwg1psl7sf7xkxnvfxsnl44mbcy695";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.ResponseCaching.Abstractions";
+    version = "2.2.0";
+    sha256 = "01sp2i2bgcn6blw1mcvg5nrlc97c9czyawwvgfi6ydzdvs6ang37";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.ResponseCompression";
+    version = "2.2.0";
+    sha256 = "0madnk92752alpc7cv2bazqlihhzgl3yj1s9ajhi3w09vg8n8pz4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Routing";
+    version = "2.2.0";
+    sha256 = "12kv602j2rxp43l1v3618yz3pdd7hqc3r98ya0bqz6y2ppvhbyws";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Routing.Abstractions";
+    version = "2.2.0";
+    sha256 = "0d9wwz1rsh1fslbv1y72jpkvqv2v9n28rl3vslcg0x74lp2678ly";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Server.Kestrel";
+    version = "2.2.0";
+    sha256 = "0wh7hf09i9qxs9r0d5xdcx3qingsid9nxlwcyjg2r44pjs6cg1rf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Server.Kestrel.Core";
+    version = "2.2.0";
+    sha256 = "075ffds8hwp8ps0zf84bsv9pgiaqry9njc403qack701aybci97r";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Server.Kestrel.Https";
+    version = "2.2.0";
+    sha256 = "08z447wrbzy3l9lmmas353nr17sg9yccwcg62l9ax9a6n1wvds8c";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions";
+    version = "2.2.0";
+    sha256 = "08bj95zy4zszyx1rsy8v2ai9kg4120ij6yi0zillwx3ndb3q7vfb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets";
+    version = "2.2.0";
+    sha256 = "0vhicfnv12sz2c81czdgdlffcgrhnn1jzz9zwy3a9c2n4rn8k9k5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.WebSockets";
+    version = "2.2.1";
+    sha256 = "0gzikr1z2fdz8nzy1m969jsrk2h97ld1hzgmbc6f036qmhiq26hr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.WebUtilities";
+    version = "2.2.0";
+    sha256 = "0cs1g4ing4alfbwyngxzgvkrv7z964isv1j9dzflafda4p0wxmsi";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Tasks.Git";
+    version = "1.0.0";
+    sha256 = "0avwja8vk56f2kr2pmrqx3h60bnwbs7ds062lhvhcxv87m5yfqnj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Analyzers";
+    version = "1.1.0";
+    sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Common";
+    version = "2.8.0";
+    sha256 = "0g4h41fs0r8lqh9pk9s4mc1090kdpa6sbxq4rc866s8hnq9s1h4j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.CSharp";
+    version = "2.8.0";
+    sha256 = "0p1xvw1h2fmnxywv1j4x6p3rgarpc8mfwfgn0vflk5xfnc961f6w";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.FxCopAnalyzers";
+    version = "2.9.8";
+    sha256 = "15zv982rln15ds8z2hkpmx04njdg0cmmf1xnb9v1v7cxxf7yxx27";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Razor";
+    version = "2.2.0";
+    sha256 = "03cm9danxxnsnmrzfz2swz6zhckkgg6hrz1ycnvnjrbpk3w4v0d6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.VersionCheckAnalyzer";
+    version = "2.9.8";
+    sha256 = "19v25694f9l172snrm4qik5gxzlifiyrmf0kk2zasz7hrciw36bl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeQuality.Analyzers";
+    version = "2.9.8";
+    sha256 = "17ld069hlpcv4z4ylx6m4rhd398sxd0qd0msadfm0rljlkj6xg83";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.3.0";
+    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.5.0";
+    sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Data.Sqlite.Core";
+    version = "5.0.3";
+    sha256 = "1msj8zn2yfdn5lcny3msqiry94rhs8lkmx1l4pv29mhxggchvidr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "2.0.4";
+    sha256 = "1fdzln4im9hb55agzwchbfgm3vmngigmbpci5j89b0gqcxixmv8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "2.1.0";
+    sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "3.1.6";
+    sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore";
+    version = "5.0.3";
+    sha256 = "1bhkmr15njgyrd57rmvrjdyamj6qm1n8sdrzcgbfyj7wsjav8dmv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Abstractions";
+    version = "5.0.3";
+    sha256 = "1h0cxqsmpgd1fc9jd4mm1v89s8zchpmd24ks4j5fjgc3j83nvgg9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Analyzers";
+    version = "5.0.3";
+    sha256 = "0mgnw1na94gg4mks7ba9r9cfy3k8vnspi08ryc2i8h91m31dibc2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Design";
+    version = "5.0.3";
+    sha256 = "00p9l6ydqg6kmwyqza0dd9q1zfvam7b3hv8b9kafbl590kdxjzl4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Relational";
+    version = "5.0.3";
+    sha256 = "11pancjxzx04yvy7h4x4m6hncwl2ijiwsvr9m1sa1cmq53lrrvlk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite";
+    version = "5.0.3";
+    sha256 = "16658n7q2jahk4haljand6j3bmkg718hck4g1piy1j8kx2i6dg7p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+    version = "5.0.3";
+    sha256 = "0ffi0dyrg00891ac15qajrk7mnhwyayi1fdpwjm10zjdxm4nwy26";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Tools";
+    version = "5.0.3";
+    sha256 = "074v7y4irv34xw16ps8mmjm5pq8gk1fs17kx4sznw9bgkcfrm0hy";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.ApiDescription.Server";
+    version = "3.0.0";
+    sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Abstractions";
+    version = "2.2.0";
+    sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Abstractions";
+    version = "5.0.0";
+    sha256 = "0j83zapqhgqb4v5f6kn891km095pfhvsqha357a86ccclmv2czvb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Memory";
+    version = "2.2.0";
+    sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Memory";
+    version = "5.0.0";
+    sha256 = "0l8spndl3kvccjlay202msm31iy5iig0i9ddbsdy92wbcjr97lca";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "2.0.0";
+    sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "2.2.0";
+    sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "3.1.2";
+    sha256 = "06diq359ac4bf8jlr9msf8mwalk1a85lskkgcd8mcha56l7l7g0r";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "3.1.6";
+    sha256 = "0j0zl05n9vv23m2dg4wy6pc39zy09rvnr0ljwh63sa1gski32fhx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "5.0.0";
+    sha256 = "01m9vzlq0vg0lhckj2dimwq42niwny8g3lm13c9a401hlyg90z1p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.0.0";
+    sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.1.0";
+    sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.2.0";
+    sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "3.1.2";
+    sha256 = "1mfsgiklr4v99bx62z97vnp7y2jbdr9g9gwyyw89xcb67pir0wb9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "3.1.6";
+    sha256 = "1bqp28717rdlygdj7m3srfdbkvx0x6bqs2ply9h2sib87jqxaz9i";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "5.0.0";
+    sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "2.0.0";
+    sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "2.2.0";
+    sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "3.1.2";
+    sha256 = "1jksknhlvgxgys51z0j7pi6c4k8m1iqv3ixp8nhrk24bc8hf04br";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "3.1.6";
+    sha256 = "0lq35v2zqvs9jl7y347nr8qmdghr6xrymmik3b5kndw1zlrflavn";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "5.0.0";
+    sha256 = "0sld0bh2k5kss32i3nf8mwqkjagmw0d1cdfmxm87ckiicwm413a0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+    version = "2.2.4";
+    sha256 = "0i5m7ki5jl4q9fbc0capcjakbh2y55g0zhq7cjs9qw38496rb020";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+    version = "5.0.0";
+    sha256 = "03gvckj10ljk1mir9g8cf3cajsnihhvmh8z8341gkr9h5653qkv0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.FileExtensions";
+    version = "2.2.0";
+    sha256 = "0bwk1kh6q259nmnly90j5rbbzi9w5gigq5vyjr31c1br4j8cjmqd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.FileExtensions";
+    version = "5.0.0";
+    sha256 = "1wq229r3xcmm9wh9sqdpvmfv4qpbp2zms9x6xk7g7sbb8h32hnz3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Json";
+    version = "5.0.0";
+    sha256 = "0hq5i483bjbvprp1la9l3si82x1ydxbvkpfc7r3s7zgxg957fyp9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "2.2.0";
+    sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "3.1.2";
+    sha256 = "0z3vdzrnfy838afc2vv4knj2ycab7jni55kdj82p7plfjngv01ic";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "3.1.6";
+    sha256 = "0m8b5phfbkx96l92nf0xs3bz6861mhb7i4havxckz7mr81g968l6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "5.0.0";
+    sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "5.0.1";
+    sha256 = "06xig49mwyp3b2dvdx98j079ncg6p4c9x8yj4pzs6ppmi3jgaaqk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "2.0.0";
+    sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "2.1.0";
+    sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "2.2.0";
+    sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "3.1.2";
+    sha256 = "0jh1338ai6060k1130by4m0s7jhz8ky7ij9vagrsgnpcl1yc9k70";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "3.1.6";
+    sha256 = "18mcv1x6b3qlaksmb8q92r34jrv1841la5lmg21qppmb9qs0z293";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "5.0.0";
+    sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "2.0.4";
+    sha256 = "041i1vlcibpzgalxxzdk81g5pgmqvmz2g61k0rqa2sky0wpvijx9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "2.1.0";
+    sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "5.0.0";
+    sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Diagnostics.HealthChecks";
+    version = "5.0.3";
+    sha256 = "0hv4l27bp29gy3rh9cssvvc8xwzy8ffwh277dw870zhv5mm2ha29";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions";
+    version = "5.0.3";
+    sha256 = "1r1xrlgbyfsf0b447lw6lv6jxq339ssrm61klyjmnk1ady05h9di";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore";
+    version = "5.0.3";
+    sha256 = "0q0j75i289yn3bv09dhzfirpb4glqm35wrv7p2463kmbf3g551rr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    version = "2.1.0";
+    sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    version = "2.2.0";
+    sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    version = "5.0.0";
+    sha256 = "01ahgd0b2z2zycrr2lcsq2cl59fn04bh51hdwdp9dcsdkpvnasj1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Composite";
+    version = "2.2.0";
+    sha256 = "0k3qfxb0pn9b63grbf9jv7xw40gk6m1djmi3c4inwys7lxcj2k18";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Physical";
+    version = "2.2.0";
+    sha256 = "0lrq4bxf67pw6n9kzwzqsnxkad2ygh2zn46hjias8j7aqljglh7x";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Physical";
+    version = "5.0.0";
+    sha256 = "00vii8148a6pk12l9jl0rhjp7apil5q5qcy7v1smnv17lj4p8szd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileSystemGlobbing";
+    version = "2.2.0";
+    sha256 = "01jw7s1nb44n65qs3rk7xdzc419qwl0s5c34k031f1cc5ag3jvc2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileSystemGlobbing";
+    version = "5.0.0";
+    sha256 = "0lm6n9vbyjh0l17qcc2y9qwn1cns3dyjmkvbxjp0g9sll32kjpmb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Hosting.Abstractions";
+    version = "2.1.0";
+    sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Hosting.Abstractions";
+    version = "2.2.0";
+    sha256 = "1xc7xr1nq7akfahyl5in9iyxrygap2xi9nxh39rfm37sf8lk55v1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Hosting.Abstractions";
+    version = "5.0.0";
+    sha256 = "1k28hndmm8ky7sr2j5agdz9lls25mbb08dkypka0b76x5f4hplb5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Http";
+    version = "3.1.6";
+    sha256 = "04ggi7vdx7h5622y1y7xcls6lij880jn9b2xgg73rwrq6bcadj6q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Http";
+    version = "5.0.0";
+    sha256 = "1sx2w6s2giavi3i1wbpa64h1v1xhk5afz3whh7rxhb9fmsn9h1bk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Localization";
+    version = "2.2.0";
+    sha256 = "1k73kk5qmrvdyd7l8qxp19crw18f2p5dgk3cjx59g7vf3rkgmc6k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Localization.Abstractions";
+    version = "2.2.0";
+    sha256 = "1yzqs5x97rj6wlg0rylj0xi3dn1bw4ps26zdqsijx621jl1r97gy";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "2.2.0";
+    sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "3.1.2";
+    sha256 = "0yh4zbyvm24alrcblcbm0sp7l9ys5ypcxs7l772yj7fdpk0bx3ap";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "3.1.6";
+    sha256 = "0brzknkxlalpb1a8m371nmkmpfjf1q3p8x6nls5ylh0w7midxxgp";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "5.0.0";
+    sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "2.1.0";
+    sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "2.2.0";
+    sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "3.1.2";
+    sha256 = "0givwc5dnz1wm9aa0sfxi4mjws6v9c8v5i5772yg1r4w1wvn3733";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "3.1.6";
+    sha256 = "16pk17a3hh0j431a5f7d663iqk1j6n3wjlzk6chmvnfk3dpwfhww";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "5.0.0";
+    sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.ObjectPool";
+    version = "2.2.0";
+    sha256 = "0n1q9lvc24ii1shzy575xldgmz7imnk4dswwwcgmzz93klri9r1z";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "2.0.0";
+    sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "2.2.0";
+    sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "3.1.2";
+    sha256 = "005f42rq6n2v5cakqi51266g26dkjc6nsqdd6w62pxvv6g6kp9km";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "3.1.6";
+    sha256 = "1rdi0pcpcmhvwkn7mxymrpav9q2c4frxhl99ps961mmh1i5738sc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "5.0.0";
+    sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options.ConfigurationExtensions";
+    version = "2.0.0";
+    sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.0.0";
+    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.1.0";
+    sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.2.0";
+    sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "3.1.2";
+    sha256 = "04hdb7rd59frgb5ym0sfwc5r67jj6vykcbxljzs8909f8hrs98jb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "3.1.6";
+    sha256 = "1acl88cph3yqcjz7ami5hzdr69cvxvry24a6r6fmrwnzfcc1i40n";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "5.0.0";
+    sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.WebEncoders";
+    version = "2.2.0";
+    sha256 = "1mhnichccw6mjf37d38q2i1kr7qp485m7apa1b872ji0q16yy1y3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NetCore.Analyzers";
+    version = "2.9.8";
+    sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.linux-x64";
+    version = "5.0.5";
+    sha256 = "1h5yry6k9bpqqis2fb1901csb8kipm7anm174fjj41r317vzfjfa";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.1";
+    sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.0.0";
+    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.1";
+    sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "5.0.0";
+    sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.3";
+    sha256 = "05smkcyxir59rgrmp7d6327vvrlacdgldfxhmyr1azclvga1zfsq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NetFramework.Analyzers";
+    version = "2.9.8";
+    sha256 = "0mb3gkqcr13ryphrzax40cf05bz0h269a6zm1hnzzsq7gbd5iipb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Net.Http.Headers";
+    version = "2.2.0";
+    sha256 = "0w6lrk9z67bcirq2cj2ldfhnizc6id77ba6i30hjzgqjlyhh1gx5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Net.Http.Headers";
+    version = "2.2.8";
+    sha256 = "1s0n68z6v5mbys4jjrd4jdxrrz81iq4dzmmbmxzmlf59769x8rj9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.OpenApi";
+    version = "1.2.3";
+    sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.SourceLink.Common";
+    version = "1.0.0";
+    sha256 = "1zxkpx01zdv17c39iiy8fx25ran89n14qwddh1f140v1s4dn8z9c";
+  })
+  (fetchNuGet {
+    name = "Microsoft.SourceLink.GitHub";
+    version = "1.0.0";
+    sha256 = "029ixyaqn48cjza87m5qf0g1ynyhlm6irgbx1n09src9g666yhpd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.5.0";
+    sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q";
+  })
+  (fetchNuGet {
+    name = "Mono.Nat";
+    version = "3.0.1";
+    sha256 = "1xy3c9wsiz8k3rx8v60y6gnps337rsb5jpyj0r6g384prg6z4vh0";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.1";
+    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "10.0.1";
+    sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "11.0.2";
+    sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.3";
+    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json.Bson";
+    version = "1.0.1";
+    sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa";
+  })
+  (fetchNuGet {
+    name = "OptimizedPriorityQueue";
+    version = "5.0.0";
+    sha256 = "0a0kn4sr80yx1bm5nngbillfbcafv86hqxwp5kxjgh3wcd01c803";
+  })
+  (fetchNuGet {
+    name = "PlaylistsNET";
+    version = "1.1.3";
+    sha256 = "092lgqvvarx6g8mrhm8rdzcqisklzffa0i3gkpc0zbk7b7b0f8yg";
+  })
+  (fetchNuGet {
+    name = "prometheus-net";
+    version = "3.1.2";
+    sha256 = "1jyxvl9cqxvb71mpaglw8aks27i69hg7yzrdwsjc182nmmhh1p03";
+  })
+  (fetchNuGet {
+    name = "prometheus-net";
+    version = "4.1.1";
+    sha256 = "0n016rxlz00xrw1jrikwr6h221rrw96h13d0823mfb5375rdi8rx";
+  })
+  (fetchNuGet {
+    name = "prometheus-net.AspNetCore";
+    version = "4.1.1";
+    sha256 = "0239i5ga7z3ajq6rvqz2ym3a30b1nbfjn6dnmc1iljd9579flzhs";
+  })
+  (fetchNuGet {
+    name = "prometheus-net.DotNetRuntime";
+    version = "3.4.1";
+    sha256 = "1b4a5yh2s8nji4bvp9fcw03dw0wbx58823b7jfga0vva33am3xx8";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.3.0";
+    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.3.0";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.IO";
+    version = "4.3.0";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.3.0";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Console";
+    version = "4.3.0";
+    sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Console";
+    version = "4.3.1";
+    sha256 = "15kfi3761mk2i29zg135ipsvavm50nwm4334cy5m5q7iagzsf73p";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
+  })
+  (fetchNuGet {
+    name = "Serilog";
+    version = "2.3.0";
+    sha256 = "0y1111y0csfnil901nfahhj3x251nzdam0c4vab3gw5qh8iqs3my";
+  })
+  (fetchNuGet {
+    name = "Serilog";
+    version = "2.5.0";
+    sha256 = "0lq3kpmb83mv9kzr9zshz46bp6mvgx1kfz4dzjgzpasf6llgmrx0";
+  })
+  (fetchNuGet {
+    name = "Serilog";
+    version = "2.6.0";
+    sha256 = "0xzq2szx5yb9xgnkj2zvjil48baald22jm2j39smnac32gid5gm0";
+  })
+  (fetchNuGet {
+    name = "Serilog";
+    version = "2.8.0";
+    sha256 = "0fnrs05yjnni06mbax7ig74wiiqjyyhrxmr1hrhlpwcmc40zs4ih";
+  })
+  (fetchNuGet {
+    name = "Serilog";
+    version = "2.9.0";
+    sha256 = "0z0ib82w9b229a728bbyhzc2hnlbl0ki7nnvmgnv3l741f2vr4i6";
+  })
+  (fetchNuGet {
+    name = "SerilogAnalyzer";
+    version = "0.15.0.0";
+    sha256 = "0k83cyzl9520q282vp07zb8rs16a56axv7a31l3m5fb1afq2hv9l";
+  })
+  (fetchNuGet {
+    name = "Serilog.AspNetCore";
+    version = "3.4.0";
+    sha256 = "1k59zspma8hlka6j6hvflw8i073092qj8kzz52fdkqrck7w7cbag";
+  })
+  (fetchNuGet {
+    name = "Serilog.Enrichers.Thread";
+    version = "3.1.0";
+    sha256 = "1y75aiv2k1sxnh012ixkx92fq1yl8srqggy8l439igg4p223hcqi";
+  })
+  (fetchNuGet {
+    name = "Serilog.Extensions.Hosting";
+    version = "3.1.0";
+    sha256 = "0n01n2kvapl5hkp80fa0ra8zixacfqhrs05ijkh3hj5bvgnscsx5";
+  })
+  (fetchNuGet {
+    name = "Serilog.Extensions.Logging";
+    version = "3.0.1";
+    sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a";
+  })
+  (fetchNuGet {
+    name = "Serilog.Formatting.Compact";
+    version = "1.1.0";
+    sha256 = "1w3qhj1jrihb20gr9la4r4gcmdyyy6dai2xflwhzvgqrq05wlycy";
+  })
+  (fetchNuGet {
+    name = "Serilog.Settings.Configuration";
+    version = "3.1.0";
+    sha256 = "1cj5am4n073331gbfm2ylqb9cadl4q3ppzgwmm5c8m1drxpiwkb5";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.Async";
+    version = "1.4.0";
+    sha256 = "00kqrn3xmfzg469y155vihsiby8dbbs382fi6qg8p2zg3i5dih1d";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.Console";
+    version = "3.1.1";
+    sha256 = "0j99as641y1k6havwwkhyr0n08vibiblmfjj6nz051mz8g3864fn";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.Debug";
+    version = "1.0.1";
+    sha256 = "0969mb254kr59bgkq01ybyzca89z3f4n9ng5mdj8m53d5653zf22";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.File";
+    version = "4.1.0";
+    sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.Graylog";
+    version = "2.2.2";
+    sha256 = "0cvl9vfd1qx0hdvvylhh9frnxwqdl9yq4vy21fjsr6wdvgflg2hr";
+  })
+  (fetchNuGet {
+    name = "ServiceStack.Text.Core";
+    version = "5.10.2";
+    sha256 = "0hpqfify017gm8nbah2abkk5d4vnsqrgj86i8b5mx3wy54h82pvb";
+  })
+  (fetchNuGet {
+    name = "SharpCompress";
+    version = "0.26.0";
+    sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5";
+  })
+  (fetchNuGet {
+    name = "SkiaSharp";
+    version = "2.80.2";
+    sha256 = "17n0f4gfxz69fzd7zmgimbxfja15vq902arap2rqjr1hxp8sck7g";
+  })
+  (fetchNuGet {
+    name = "SkiaSharp.NativeAssets.Linux";
+    version = "2.80.2";
+    sha256 = "1951b7rpisaymb37j846jq01pjd05l4fjlnf56blh33ihxyj2jzi";
+  })
+  (fetchNuGet {
+    name = "SmartAnalyzers.MultithreadingAnalyzer";
+    version = "1.1.31";
+    sha256 = "1qk5s4rx5ma7k2kzkn1h94fsrzmwkivj0z1czsjwmr8z7zhngs2h";
+  })
+  (fetchNuGet {
+    name = "SQLitePCL.pretty.netstandard";
+    version = "2.1.0";
+    sha256 = "03vjk8r0dzyiwya6q5p2z2wp9sxj3b7xi72p7wgsy270a2pb3f28";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.bundle_e_sqlite3";
+    version = "2.0.4";
+    sha256 = "1l3vbkwismsx5jcy3d5bj4bzh8bni8bk2gq4lqplz82pz5phjpxm";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.core";
+    version = "1.1.14";
+    sha256 = "1najf6ns5b8rqqlmlxjn4wjcgnb5ch9ni7wiq6iip4155d35c519";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.core";
+    version = "2.0.2";
+    sha256 = "11mnbnsiirpgmilskqh1issvgzgg08ndq3p3nkrw73hyqr7kl958";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.core";
+    version = "2.0.4";
+    sha256 = "0lb5vwfl1hd24xzzdaj2p4k2hv2k0i3mgdri6fjj0ssb37mcyir1";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3";
+    version = "2.0.4";
+    sha256 = "0kmx1w5qllmwxldr8338qxwmpfzc6g2lmyrah7wfaxd3mvfzky5c";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.provider.dynamic_cdecl";
+    version = "2.0.4";
+    sha256 = "084r98kilpm0q1aw41idq8slncpd7cz65g0m1wr0p8d12x8z5g6j";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.provider.sqlite3.netstandard11";
+    version = "1.1.14";
+    sha256 = "00jwin9lannq4qla6r85c4f0m1y8g103r02p8cnjhakxz588dm1y";
+  })
+  (fetchNuGet {
+    name = "StyleCop.Analyzers";
+    version = "1.1.118";
+    sha256 = "0hj4ax64cay2lvrh9693m0g4pmis0fi5wpm12xwzvc7lkizvac0a";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore";
+    version = "5.6.3";
+    sha256 = "1s8jmvssk8g518szi9nijsq73d85fnlzvink2x0ahf2jkvpakn9p";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.ReDoc";
+    version = "5.6.3";
+    sha256 = "1kbn77wbcn03pwcynj4n602p4157y1qrfv775clnmzfq7z5nfaw6";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.Swagger";
+    version = "5.6.3";
+    sha256 = "0yg27nlndaiaa6sv7xkcysdpmq1dzf24xjz6xq0vwn51mn84vsg9";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.SwaggerGen";
+    version = "5.6.3";
+    sha256 = "15h31wq9n9zcpalb3k1pzgcsafn1mz397mb9bnl55621p6zxrlz2";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.SwaggerUI";
+    version = "5.6.3";
+    sha256 = "0vbq3xycsixnpsqw2pphzw77w1liyz8hi1sl4hy9bpgpa18p2sfj";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.3.0";
+    sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.0.0";
+    sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.5.0";
+    sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.3.0";
+    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.3.1";
+    sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "5.0.0";
+    sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.0.1";
+    sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "4.5.0";
+    sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "5.0.0";
+    sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.3.0";
+    sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.0.0";
+    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.3.0";
+    sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.5.0";
+    sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.5.1";
+    sha256 = "1j8dgilsgd0n7y87wq1cdlnwck96wijhbyhdp4d01l1gzm3074c1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "5.0.1";
+    sha256 = "0mzw44wsm87vpslb9sn7rirxynpq9m3b00l7gl0q71m8shfh66qs";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.FileVersionInfo";
+    version = "4.3.0";
+    sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.StackTrace";
+    version = "4.3.0";
+    sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.3.0";
+    sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.3.0";
+    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.IO.Pipelines";
+    version = "4.5.2";
+    sha256 = "045sn3vyk5xysjjm19q4dj5c1g1rf8l98n4qsl9pl9id4fn08yq1";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Async";
+    version = "5.0.0";
+    sha256 = "1bc1bfnahyk6y31mrxn7nd071436m94p4r9b2j835pghcqawqfbc";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.0";
+    sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.1";
+    sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.3";
+    sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.4";
+    sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.1.0";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+  })
+  (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.3.0";
+    sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets.WebSocketProtocol";
+    version = "4.5.3";
+    sha256 = "0z9ccndkkq6gpsh35q3pjm4zya47p6vakcyj8nc352g4wiizqc8c";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.5.0";
+    sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.3.0";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+  })
+  (fetchNuGet {
+    name = "System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.4.2";
+    sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.6.0";
+    sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.1";
+    sha256 = "03ch4d2acf6q037a4njxpll2kkx3dwzlg07yxr4z5m6j1kqgmm27";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.4.0";
+    sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.0";
+    sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.1";
+    sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Formatters";
+    version = "4.3.0";
+    sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.3.0";
+    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.5.0";
+    sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
+  })
+  (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.3.0";
+    sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.3.0";
+    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.3.0";
+    sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.5.0";
+    sha256 = "1pm4ykbcz48f1hdmwpia432ha6qbb9kbrxrrp7cg3m8q8xn52ngn";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.0.0";
+    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.3.0";
+    sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.3.0";
+    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Pkcs";
+    version = "4.5.0";
+    sha256 = "16dhiz2qypk289dxiqa9rb7jmslnami6bykalv5dvbd8j91zikpy";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.3.0";
+    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.3.0";
+    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Xml";
+    version = "4.5.0";
+    sha256 = "1rk40x0msf9k7sxnjyizagjns1z25dh3cf22bx6hsx6vhf0sk08l";
+  })
+  (fetchNuGet {
+    name = "System.Security.Permissions";
+    version = "4.5.0";
+    sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.3.0";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.3.0";
+    sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.5.0";
+    sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.3.0";
+    sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.7.1";
+    sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "5.0.0";
+    sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encodings.Web";
+    version = "4.5.0";
+    sha256 = "0srd5bva52n92i90wd88pzrqjsxnfgka3ilybwh7s6sf469y5s53";
+  })
+  (fetchNuGet {
+    name = "System.Text.Json";
+    version = "5.0.1";
+    sha256 = "1j7via4spxy73ipng754wdz1nb882gsb9qh26jqlql66vzbbm3j3";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Dataflow";
+    version = "5.0.0";
+    sha256 = "028fimgwn5j9fv6m547c975a8b90d9qcnb89k5crjyspsnjcqbhy";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.5.1";
+    sha256 = "1ikrplvw4m6pzjbq3bfbpr572n4i9mni577zvmrkaygvx85q3myw";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Parallel";
+    version = "4.3.0";
+    sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.3.0";
+    sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.3.0";
+    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+  })
+  (fetchNuGet {
+    name = "System.ValueTuple";
+    version = "4.3.0";
+    sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath";
+    version = "4.3.0";
+    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath.XDocument";
+    version = "4.3.0";
+    sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn";
+  })
+  (fetchNuGet {
+    name = "TagLibSharp";
+    version = "2.2.0";
+    sha256 = "0jb0f84p4jd59ha36spyk9q08g6fjap3xywq32rcs2xwzhhqiq0y";
+  })
+  (fetchNuGet {
+    name = "TMDbLib";
+    version = "1.7.3-alpha";
+    sha256 = "1dfk646w1mn2yj0ali7dcanxqs8q3njprzpw0n2v8wgd53jpava1";
+  })
+  (fetchNuGet {
+    name = "TvDbSharper";
+    version = "3.2.2";
+    sha256 = "0dkxcb7745y7wy8sdg7xic5idwwdmnp7k0x8v05f6s075a8m7nqz";
+  })
+  (fetchNuGet {
+    name = "UTF.Unknown";
+    version = "2.3.0";
+    sha256 = "067hw460y36sfcpdfaw8lirn1hn2g4fvkpnih41nighzvmq1ixzf";
+  })
+]
diff --git a/nixpkgs/pkgs/servers/jellyfin/update.sh b/nixpkgs/pkgs/servers/jellyfin/update.sh
new file mode 100755
index 000000000000..09bcfecc019c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jellyfin/update.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts dotnetCorePackages.sdk_5_0 gnused nix coreutils findutils
+
+set -euo pipefail
+
+export DOTNET_CLI_TELEMETRY_OPTOUT=1
+export DOTNET_NOLOGO=1
+
+latestVersion="$(curl -s "https://api.github.com/repos/jellyfin/jellyfin/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')"
+currentVersion=$(nix-instantiate --eval -E "with import ./. {}; jellyfin.version or (lib.getVersion jellyfin)" | tr -d '"')
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+  echo "jellyfin is up-to-date: $currentVersion"
+  exit 0
+fi
+
+pushd "$(dirname "${BASH_SOURCE[0]}")"
+nugetDepsFile=$(realpath ./nuget-deps.nix)
+popd
+
+update-source-version jellyfin "$latestVersion"
+
+store_src="$(nix-build . -A jellyfin.src --no-out-link)"
+src="$(mktemp -d /tmp/jellyfin-src.XXX)"
+echo "Temp src dir: $src"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+
+pushd "$src"
+
+mkdir ./nuget_tmp.packages
+dotnet restore Jellyfin.Server --packages ./nuget_tmp.packages --runtime linux-x64
+
+echo "# This file has been generated by the jellyfin updateScript. Do not edit!" >"$nugetDepsFile"
+echo "{ fetchNuGet }: [" >>"$nugetDepsFile"
+while read -r pkg_spec; do
+  { read -r pkg_name; read -r pkg_version; } < <(
+    # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3`
+    sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
+  pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
+  cat >>"$nugetDepsFile" <<EOF
+  (fetchNuGet {
+    name = "$pkg_name";
+    version = "$pkg_version";
+    sha256 = "$pkg_sha256";
+  })
+EOF
+done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
+echo "]" >>"$nugetDepsFile"
+
+popd
+rm -r "$src"
diff --git a/nixpkgs/pkgs/servers/jellyfin/web-update.sh b/nixpkgs/pkgs/servers/jellyfin/web-update.sh
new file mode 100755
index 000000000000..87b05efc2d90
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jellyfin/web-update.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts nodePackages.node2nix gnused nix coreutils jq
+
+set -euo pipefail
+
+latestVersion="$(curl -s "https://api.github.com/repos/jellyfin/jellyfin-web/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')"
+currentVersion=$(nix-instantiate --eval -E "with import ./. {}; jellyfin-web.version or (lib.getVersion jellyfin-web)" | tr -d '"')
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+  echo "jellyfin-web is up-to-date: $currentVersion"
+  exit 0
+fi
+
+update-source-version jellyfin-web 0 0000000000000000000000000000000000000000000000000000000000000000
+update-source-version jellyfin-web "$latestVersion"
+
+# use patched source
+store_src="$(nix-build . -A jellyfin-web.src --no-out-link)"
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+# TODO: use package-lock.json on the next major release
+# https://github.com/jellyfin/jellyfin-web/commit/6efef9680d55a93f4333ef8bfb65a8a650c99a49
+node2nix \
+  --nodejs-12 \
+  --development \
+  --node-env ../../development/node-packages/node-env.nix \
+  --output ./node-deps.nix \
+  --input "$store_src/package.json" \
+  --composition ./node-composition.nix
diff --git a/nixpkgs/pkgs/servers/jellyfin/web.nix b/nixpkgs/pkgs/servers/jellyfin/web.nix
new file mode 100644
index 000000000000..1bd4a305a7ad
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jellyfin/web.nix
@@ -0,0 +1,81 @@
+{ lib
+, fetchFromGitHub
+, pkgs
+, stdenv
+, nodejs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jellyfin-web";
+  version = "10.7.5";
+  # 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
+
+  src = fetchFromGitHub {
+    owner = "jellyfin";
+    repo = "jellyfin-web";
+    rev = "v${version}";
+    sha256 = "5y6hWEDxY5WbOUdjujmuMV3bQVvYU2J9oIANBVN5XOc=";
+    postFetch = ''
+      mkdir -p $out
+      cd $out
+      tar -xzf $downloadedFile --strip-components=1
+
+      # replace unsupported dependency url
+      # https://github.com/svanderburg/node2nix/issues/163
+      substituteInPlace package.json \
+        --replace \
+          "https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv" \
+          "https://github.com/jellyfin/JavascriptSubtitlesOctopus/archive/refs/tags/4.0.0-jf-smarttv.tar.gz"
+    '';
+  };
+
+  nativeBuildInputs = [
+    nodejs
+  ];
+
+  buildPhase =
+    let
+      nodeDependencies = ((import ./node-composition.nix {
+        inherit pkgs nodejs;
+        inherit (stdenv.hostPlatform) system;
+      }).nodeDependencies.override (old: {
+        # access to path '/nix/store/...-source' is forbidden in restricted mode
+        src = src;
+
+        # dont run the prepare script:
+        # Error: Cannot find module '/nix/store/...-node-dependencies-jellyfin-web-.../jellyfin-web/scripts/prepare.js
+        # npm run build:production runs the same command
+        dontNpmInstall = true;
+      }));
+    in
+    ''
+      runHook preBuild
+
+      ln -s ${nodeDependencies}/lib/node_modules ./node_modules
+      export PATH="${nodeDependencies}/bin:$PATH"
+
+      npm run build:production
+
+      runHook postBuild
+    '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share
+    cp -a dist $out/share/jellyfin-web
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = ./web-update.sh;
+
+  meta = with lib; {
+    description = "Web Client for Jellyfin";
+    homepage = "https://jellyfin.org/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/jetbrains/youtrack.nix b/nixpkgs/pkgs/servers/jetbrains/youtrack.nix
index c3680d76b96e..cba162fd2620 100644
--- a/nixpkgs/pkgs/servers/jetbrains/youtrack.nix
+++ b/nixpkgs/pkgs/servers/jetbrains/youtrack.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "youtrack";
-  version = "2018.2.44329";
+  version = "2021.1.13597";
 
   jar = fetchurl {
     url = "https://download.jetbrains.com/charisma/${pname}-${version}.jar";
-    sha256 = "1fnnpyikr1x443vxy6f7vlv550sbahpps8awyn13jpg7kpgfm7lk";
+    sha256 = "0lc0ra95ix5bs1spfjnx5akh8jm754v8lc3yja8dc438zi221qhh";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Issue tracking and project management tool for developers";
-    maintainers = with maintainers; [ yorickvp ];
+    maintainers = teams.serokell.members;
     # https://www.jetbrains.com/youtrack/buy/license.html
     license = licenses.unfree;
   };
diff --git a/nixpkgs/pkgs/servers/keycloak/default.nix b/nixpkgs/pkgs/servers/keycloak/default.nix
index 3726facd5835..9788e04ac445 100644
--- a/nixpkgs/pkgs/servers/keycloak/default.nix
+++ b/nixpkgs/pkgs/servers/keycloak/default.nix
@@ -18,11 +18,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname   = "keycloak";
-  version = "12.0.4";
+  version = "13.0.1";
 
   src = fetchzip {
     url    = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
-    sha256 = "sha256-7DKKpuKPoSKIpfvhCvLzuyepbmixgq0+o+83FKi6Dwc=";
+    sha256 = "sha256-81i8Yf9rEuHtUDqYThUCn0/Lb9YokRi4tGi/Ooyyxr8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/ldap/389/default.nix b/nixpkgs/pkgs/servers/ldap/389/default.nix
index db9041574fca..4387542e5af0 100644
--- a/nixpkgs/pkgs/servers/ldap/389/default.nix
+++ b/nixpkgs/pkgs/servers/ldap/389/default.nix
@@ -65,5 +65,8 @@ stdenv.mkDerivation rec {
     description = "Enterprise-class Open Source LDAP server for Linux";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    knownVulnerabilities = [
+      "CVE-2021-3514" # https://nvd.nist.gov/vuln/detail/CVE-2021-3514
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/lidarr/default.nix b/nixpkgs/pkgs/servers/lidarr/default.nix
index 60c2027e552f..9bd998cd8505 100644
--- a/nixpkgs/pkgs/servers/lidarr/default.nix
+++ b/nixpkgs/pkgs/servers/lidarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lidarr";
-  version = "0.7.2.1878";
+  version = "0.8.1.2135";
 
   src = fetchurl {
     url = "https://github.com/lidarr/Lidarr/releases/download/v${version}/Lidarr.master.${version}.linux.tar.gz";
-    sha256 = "0kv0x3vvv4rp3i5k5985zp95mm8ca7gpm7kr82l11v3hm3n6yvqn";
+    sha256 = "sha256-eJX6t19D2slX68fXSMd/Vix3XSgCVylK+Wd8VH9jsuI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/maddy/default.nix b/nixpkgs/pkgs/servers/maddy/default.nix
index ac3c075717ce..1a84cb98732f 100644
--- a/nixpkgs/pkgs/servers/maddy/default.nix
+++ b/nixpkgs/pkgs/servers/maddy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "maddy";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "foxcpp";
     repo = "maddy";
     rev = "v${version}";
-    sha256 = "1mi607hl4c9y9xxv5lywh9fvpybprlrgqa7617km9rssbgk4x1v7";
+    sha256 = "sha256-IhVEb6tjfbWqhQdw1UYxy4I8my2L+eSOCd/BEz0qis0=";
   };
 
-  vendorSha256 = "16laf864789yiakvqs6dy3sgnnp2hcdbyzif492wcijqlir2swv7";
+  vendorSha256 = "sha256-FrKWlZ3pQB+oo+rfHA8AgGRAr7YRUcb064bZGTDSKkk=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/foxcpp/maddy.Version=${version}" ];
 
diff --git a/nixpkgs/pkgs/servers/mail/clamsmtp/default.nix b/nixpkgs/pkgs/servers/mail/clamsmtp/default.nix
index fc3212453d88..1972e7d86a84 100644
--- a/nixpkgs/pkgs/servers/mail/clamsmtp/default.nix
+++ b/nixpkgs/pkgs/servers/mail/clamsmtp/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "clamsmtp-" + version;
+  pname = "clamsmtp";
   version = "1.10";
 
   src = fetchurl {
-    url = "http://thewalter.net/stef/software/clamsmtp/${name}.tar.gz";
+    url = "http://thewalter.net/stef/software/clamsmtp/${pname}-${version}.tar.gz";
     sha256 = "0apr1pxifw6f1rbbsdrrwzs1dnhybg4hda3qqhqcw7p14r5xnbx5";
   };
 
diff --git a/nixpkgs/pkgs/servers/mail/dkimproxy/default.nix b/nixpkgs/pkgs/servers/mail/dkimproxy/default.nix
index f4905ecf4d8f..c5ad8414cdd9 100644
--- a/nixpkgs/pkgs/servers/mail/dkimproxy/default.nix
+++ b/nixpkgs/pkgs/servers/mail/dkimproxy/default.nix
@@ -1,14 +1,11 @@
 { lib, stdenv, perlPackages, fetchurl }:
 
-let
-  pkg = "dkimproxy";
-  version = "1.4.1";
-in
 stdenv.mkDerivation rec {
-  name = "${pkg}-${version}";
+  pname = "dkimproxy";
+  version = "1.4.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/dkimproxy/${name}.tar.gz";
+    url = "mirror://sourceforge/dkimproxy/${pname}-${version}.tar.gz";
     sha256 = "1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75";
   };
 
diff --git a/nixpkgs/pkgs/servers/mail/dspam/default.nix b/nixpkgs/pkgs/servers/mail/dspam/default.nix
index 6a0db5f8f8b4..b33e4535ca91 100644
--- a/nixpkgs/pkgs/servers/mail/dspam/default.nix
+++ b/nixpkgs/pkgs/servers/mail/dspam/default.nix
@@ -18,10 +18,11 @@ let
   maintenancePath = lib.makeBinPath [ gawk gnused gnugrep coreutils which ];
 
 in stdenv.mkDerivation rec {
-  name = "dspam-3.10.2";
+  pname = "dspam";
+  version = "3.10.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/dspam/dspam/${name}/${name}.tar.gz";
+    url = "mirror://sourceforge/dspam/dspam/${pname}-${version}/${pname}-${version}.tar.gz";
     sha256 = "1acklnxn1wvc7abn31l3qdj8q6k13s51k5gv86vka7q20jb5cxmf";
   };
 
diff --git a/nixpkgs/pkgs/servers/mail/exim/default.nix b/nixpkgs/pkgs/servers/mail/exim/default.nix
index 8d4692dd0eb4..122d00c5f0a7 100644
--- a/nixpkgs/pkgs/servers/mail/exim/default.nix
+++ b/nixpkgs/pkgs/servers/mail/exim/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "exim";
-  version = "4.94";
+  version = "4.94.2";
 
   src = fetchurl {
     url = "https://ftp.exim.org/pub/exim/exim4/${pname}-${version}.tar.xz";
-    sha256 = "1nsb2i5mqxfz1sl1bmbxmpb2qiaf3wffhfiw4j9vfpagy3xfhzpp";
+    sha256 = "0x4j698gsawm8a3bz531pf1k6izyxfvry4hj5wb0aqphi7y62605";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
         s:^# \(LOOKUP_MYSQL_PC=libmysqlclient\)$:\1:
         s:^\(LOOKUP_LIBS\)=\(.*\):\1=\2 -lmysqlclient -L${libmysqlclient}/lib/mysql -lssl -ldl -lm -lpthread -lz:
         s:^# \(LOOKUP_LIBS\)=.*:\1=-lmysqlclient -L${libmysqlclient}/lib/mysql -lssl -ldl -lm -lpthread -lz:
-        s:^# \(LOOKUP_INCLUDE\)=.*:\1=-I${libmysqlclient}/include/mysql/:
+        s:^# \(LOOKUP_INCLUDE\)=.*:\1=-I${libmysqlclient.dev}/include/mysql/:
       ''}
       ${lib.optionalString enableAuthDovecot ''
         s:^# \(AUTH_DOVECOT\)=.*:\1=yes:
diff --git a/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix b/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix
index ab2bdae0add7..72d4ca760e7e 100644
--- a/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix
+++ b/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     "--with-auth-pam"
     "--without-auth-bsdauth"
     "--with-path-socket=/run"
+    "--with-path-pidfile=/run"
     "--with-user-smtpd=smtpd"
     "--with-user-queue=smtpq"
     "--with-group-queue=smtpq"
@@ -61,5 +62,6 @@ stdenv.mkDerivation rec {
   };
   passthru.tests = {
     basic-functionality-and-dovecot-interaction = nixosTests.opensmtpd;
+    rspamd-integration = nixosTests.opensmtpd-rspamd;
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/opensmtpd/filter-rspamd.nix b/nixpkgs/pkgs/servers/mail/opensmtpd/filter-rspamd.nix
new file mode 100644
index 000000000000..62b01cf9266c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mail/opensmtpd/filter-rspamd.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+,  nixosTests
+}:
+
+buildGoModule rec {
+  pname = "opensmtpd-filter-rspamd";
+  version = "0.1.7";
+
+  src = fetchFromGitHub {
+    owner = "poolpOrg";
+    repo = "filter-rspamd";
+    rev = "v${version}";
+    sha256 = "pcHj4utpf/AIUv8/7mE8BLbE8LYkzNKfc4T4hIHgGeI=";
+  };
+
+  vendorSha256 = "sNF2c+22FMvKoROkA/3KtSnRdJh4YZLaIx35HD896HI=";
+
+  passthru.tests = {
+    opensmtpd-rspamd-integration = nixosTests.opensmtpd-rspamd;
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/poolpOrg/filter-rspamd";
+    description = "OpenSMTPD filter integration for the Rspamd daemon";
+    license = licenses.isc;
+    maintainers = with maintainers; [ Flakebi ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/mail/petidomo/default.nix b/nixpkgs/pkgs/servers/mail/petidomo/default.nix
index 169712375c1f..447e643c5c93 100644
--- a/nixpkgs/pkgs/servers/mail/petidomo/default.nix
+++ b/nixpkgs/pkgs/servers/mail/petidomo/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, flex, bison, sendmailPath ? "/run/wrappers/bin/sendmail" }:
 
 stdenv.mkDerivation rec {
-  name = "petidomo-4.3";
+  pname = "petidomo";
+  version = "4.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/petidomo/${name}.tar.gz";
+    url = "mirror://sourceforge/petidomo/${pname}-${version}.tar.gz";
     sha256 = "0x4dbxc4fcfg1rw5ywpcypvylnzn3y4rh0m6fz4h4cdnzb8p1lvm";
   };
 
diff --git a/nixpkgs/pkgs/servers/mail/popa3d/default.nix b/nixpkgs/pkgs/servers/mail/popa3d/default.nix
index d086eb09e804..9678bfe3fa28 100644
--- a/nixpkgs/pkgs/servers/mail/popa3d/default.nix
+++ b/nixpkgs/pkgs/servers/mail/popa3d/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl,  openssl }:
 
 stdenv.mkDerivation rec {
-
-  name = "popa3d-1.0.3";
+  pname = "popa3d";
+  version = "1.0.3";
 
   src = fetchurl {
-    url = "http://www.openwall.com/popa3d/${name}.tar.gz";
+    url = "http://www.openwall.com/popa3d/${pname}-${version}.tar.gz";
     sha256 = "1g48cd74sqhl496wmljhq44iyfpghaz363a1ip8nyhpjz7d57f03";
   };
 
diff --git a/nixpkgs/pkgs/servers/mail/postfix/default.nix b/nixpkgs/pkgs/servers/mail/postfix/default.nix
index 579ce383319a..ad704ca792b7 100644
--- a/nixpkgs/pkgs/servers/mail/postfix/default.nix
+++ b/nixpkgs/pkgs/servers/mail/postfix/default.nix
@@ -26,11 +26,11 @@ in stdenv.mkDerivation rec {
 
   pname = "postfix";
 
-  version = "3.5.10";
+  version = "3.6.0";
 
   src = fetchurl {
     url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${pname}-${version}.tar.gz";
-    sha256 = "sha256-W7TX1y11ErWPOjFCbcvTlP01TgpD3iHaiUZrBXoCKPg=";
+    sha256 = "sha256-d0YolNdnHWPL5fwnM/lBCIUVptZxCLnxgIt9rjfoPC4=";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
diff --git a/nixpkgs/pkgs/servers/mail/rspamd/default.nix b/nixpkgs/pkgs/servers/mail/rspamd/default.nix
index 7a2eb9fd2cdf..8e95e622b830 100644
--- a/nixpkgs/pkgs/servers/mail/rspamd/default.nix
+++ b/nixpkgs/pkgs/servers/mail/rspamd/default.nix
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-LMLRDnKfGpApVsIvPNY2nxl+H5+qeVvwvwr3wdyyhjs=";
   };
 
+  hardeningEnable = [ "pie" ];
+
   nativeBuildInputs = [ cmake pkg-config perl ];
   buildInputs = [ glib openssl pcre sqlite ragel icu jemalloc libsodium ]
     ++ lib.optional withHyperscan hyperscan
diff --git a/nixpkgs/pkgs/servers/mail/system-sendmail/default.nix b/nixpkgs/pkgs/servers/mail/system-sendmail/default.nix
index a8fb65c0f42e..28c54fc0fae9 100644
--- a/nixpkgs/pkgs/servers/mail/system-sendmail/default.nix
+++ b/nixpkgs/pkgs/servers/mail/system-sendmail/default.nix
@@ -15,7 +15,8 @@ let script = writeText "script" ''
   fi
 ''; in
 stdenv.mkDerivation {
-  name = "system-sendmail-1.0";
+  pname = "system-sendmail";
+  version = "1.0";
 
   src = script;
 
diff --git a/nixpkgs/pkgs/servers/martin/default.nix b/nixpkgs/pkgs/servers/martin/default.nix
index e2ba917e5aba..78eaeb7ce8b1 100644
--- a/nixpkgs/pkgs/servers/martin/default.nix
+++ b/nixpkgs/pkgs/servers/martin/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1i9zhmjkgid4s90n52wqmrl3lwswcaxd6d47ssycgjl1nv0jla4k";
   };
 
-  cargoSha256 = "08rr783qvpm1q7s60k7mh3k5npf0lg5s1x74lnxcxdgrlgpn5gcf";
+  cargoSha256 = "1jgl8s6h4pqhn189swrhn896kw1rkmqpf7dq52ry2rdci80g02nq";
 
   buildInputs = with stdenv; lib.optional isDarwin Security;
 
diff --git a/nixpkgs/pkgs/servers/mastodon/default.nix b/nixpkgs/pkgs/servers/mastodon/default.nix
index 1abedead87d8..e863451bb5e0 100644
--- a/nixpkgs/pkgs/servers/mastodon/default.nix
+++ b/nixpkgs/pkgs/servers/mastodon/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, nodejs-slim, mkYarnPackage, fetchFromGitHub, bundlerEnv
-, yarn, callPackage, imagemagick, ffmpeg, file, ruby_2_7, writeShellScript
+, yarn, callPackage, imagemagick, ffmpeg, file, ruby_3_0, writeShellScript
 
   # Allow building a fork or custom version of Mastodon:
 , pname ? "mastodon"
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   mastodon-gems = bundlerEnv {
     name = "${pname}-gems-${version}";
     inherit version;
-    ruby = ruby_2_7;
+    ruby = ruby_3_0;
     gemdir = src;
     gemset = dependenciesDir + "/gemset.nix";
     # This fix (copied from https://github.com/NixOS/nixpkgs/pull/76765) replaces the gem
diff --git a/nixpkgs/pkgs/servers/mastodon/gemset.nix b/nixpkgs/pkgs/servers/mastodon/gemset.nix
index 07aeb0bc9c4b..20ae2a8f5c80 100644
--- a/nixpkgs/pkgs/servers/mastodon/gemset.nix
+++ b/nixpkgs/pkgs/servers/mastodon/gemset.nix
@@ -1,25 +1,36 @@
 {
   actioncable = {
-    dependencies = ["actionpack" "nio4r" "websocket-driver"];
+    dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yvrnxvdzx3yvgkxwzffhkr8m4w19h97lyyj030g1q4xjii5a1kr";
+      sha256 = "15r6ab17iwhhq92by4ah9z4wwvjbr07qn16x8pn2ypgqwvfy74h7";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
+  };
+  actionmailbox = {
+    dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q1r3x9fbq5wlgn4xhqw48la09q7f97zna7ld5fglk3jpmh973x5";
+      type = "gem";
+    };
+    version = "6.1.3.2";
   };
   actionmailer = {
-    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"];
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nhslq95il78h7qv7w7h7i9fx3znc5hxmqbnws0sl9w7am7zkl8x";
+      sha256 = "1nqdaykzgib8fsldkxdkw0w44jzz4grvb028crzg0qpwvv03g2wp";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +38,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d8gxymshjhva5fyv33iy2hzp4jm3i44asdbma9pv9wzpl5fwhn0";
+      sha256 = "1wdgv5llgbl4nayx5j78lfvhhjssrzfmypb45mjy37mgm8z5l5m5";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
+  };
+  actiontext = {
+    dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zfrkcnp9wy1dm4b6iqf29858dp04a62asfmldainqmv4a7931q7";
+      type = "gem";
+    };
+    version = "6.1.3.2";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -38,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k8dgkplqj76i3q1f8897m8svj2xggd1knhy3bcwfl4nh7998kw6";
+      sha256 = "1r6db2g3fsrca1hp9kbyvjx9psipsxw0g306qharkcblxl8h1ysn";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   active_model_serializers = {
     dependencies = ["actionpack" "activemodel" "case_transform" "jsonapi-renderer"];
@@ -49,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p8rhy2bw86d0l3d0l97zj179yqzl338v7r5pvl8mdagcrp2fw9i";
+      sha256 = "1jjkmrx82rn0d2bhpi6kz2h1s4w7rpk5pj2vcssyc1a2ys12vyhj";
       type = "gem";
     };
-    version = "0.10.10";
+    version = "0.10.12";
   };
   active_record_query_trace = {
     groups = ["development"];
@@ -70,10 +92,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w32z0s111cr95mwpdb3fnlzaf1vdz0ag3l2gah9m95kfa2pb2kv";
+      sha256 = "0p80rbahcxhxlkxgf4bh580hbifn9q4gr5g9fy8fd0z5g6gr9xxq";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -81,43 +103,43 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g79l7v0ddpxcj5r2s9kii6h4r4nbpy5bksbqi5lxvivrb3pkz1m";
+      sha256 = "1gpd3hh4ryyr84drj6m0b5sy6929nyf50bfgksw1hpc594542nal";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   activerecord = {
-    dependencies = ["activemodel" "activesupport" "arel"];
+    dependencies = ["activemodel" "activesupport"];
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05b9l85a31cq6g7v4b4ifrj798q49rlidcvvfasmb3bk412wlp03";
+      sha256 = "0fg58qma2zgrz0gr61p61qcz8c3h88fd5lbdrkpkm96aq5shwh68";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   activestorage = {
-    dependencies = ["actionpack" "activerecord" "marcel"];
+    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yzig9p9qb2wx91y0d0vs7bz23hli6djwwf4cawxh6b93bycbcci";
+      sha256 = "0sbpkk3r8qi47bd0ilznq4gpfyfwm2bwvxqb5z0wc75h3zj1jhqg";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
     groups = ["default" "development" "pam_authentication" "production" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dpnk20s754fz6jfz9sp3ri49hn46ksw4hf6ycnlw7s3hsdxqgcd";
+      sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -162,25 +184,15 @@
     };
     version = "3.1.1";
   };
-  arel = {
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0";
-      type = "gem";
-    };
-    version = "9.0.0";
-  };
   ast = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
   attr_encrypted = {
     dependencies = ["encryptor"];
@@ -193,17 +205,6 @@
     };
     version = "3.1.0";
   };
-  av = {
-    dependencies = ["cocaine"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1swakpybf6g0nzfdn6q4s9c97ysc3i4ffk84dw8v2321fpvc8gqq";
-      type = "gem";
-    };
-    version = "0.9.0";
-  };
   awrence = {
     groups = ["default"];
     platforms = [];
@@ -219,20 +220,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pqgnc4pcwdvvxlclmyjwcaf0vmlciy0l9y1yab5f1f0fjn969fs";
+      sha256 = "0dsmmsk913b50rs4ihk8pafc1gp1i1k1fnbf63ki0j5xdknpli55";
       type = "gem";
     };
-    version = "1.397.0";
+    version = "1.452.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -240,10 +241,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m8w8qqrmx91ngw9b8dr1zx2h2g071kjd1973w9fk2486gs0n44f";
+      sha256 = "09asbdcg96l165kq4hrks0hsk4hwr16h1qx22az4m7ld0ylvz3jc";
       type = "gem";
     };
-    version = "3.109.3";
+    version = "3.114.0";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -251,10 +252,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ly1m631qm2ciif7sysbzrgczjvz95ga3g6w6vrzvfdv31jjnl9a";
+      sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
       type = "gem";
     };
-    version = "1.39.0";
+    version = "1.43.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -262,10 +263,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ak4kz8x7l0qfadx4p09iky1gbf6ka3wa66rnvc7rn3sf1k80zjm";
+      sha256 = "0803g2c1hhdk6fbliww12in4czsxj47fip9dpl35hbqsnrpjc4y9";
       type = "gem";
     };
-    version = "1.85.0";
+    version = "1.94.1";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -273,10 +274,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
+      sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   bcrypt = {
     groups = ["default" "pam_authentication"];
@@ -315,10 +316,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      sha256 = "078n2dkpgsivcf0pr50981w95nfc2bsrp3wpf9wnxz1qsp8jbb9s";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "1.0.0";
   };
   blurhash = {
     dependencies = ["ffi"];
@@ -326,10 +327,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04halkacf3pd030s3bqfjd59vbj47lchrhp9zvwsn4c6sdrfjdd4";
+      sha256 = "04a4na1z36z4gplcyz3avi313c3jq6whqi5sx2clj512la3ccd2x";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.1.5";
   };
   bootsnap = {
     dependencies = ["msgpack"];
@@ -337,20 +338,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qx1f729bgh391agsqb4ngzn22wdn4cc6mkp0cipf0d5hsg9cpaq";
+      sha256 = "0jkh8qrsz3nhz759jwlfa20xkizn63yxym2db0c8ayjxzldyc77z";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "1.6.0";
   };
   brakeman = {
     groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pbr3drisii8j8wdvxhvd7kmpqwcgzayl99kzkjnpl1p27vpvvvv";
+      sha256 = "0cdlfdaj3p9s1mck8zax35g524szs1danjrah8da3z7c8xvpq6sc";
       type = "gem";
     };
-    version = "4.10.0";
+    version = "5.0.1";
   };
   browser = {
     groups = ["default"];
@@ -362,6 +363,17 @@
     };
     version = "4.2.0";
   };
+  brpoplpush-redis_script = {
+    dependencies = ["concurrent-ruby" "redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rjm184dhlw35ymi8ifpl5155vwl6wfzdc5qjvzv634gc365yz9j";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   builder = {
     groups = ["default" "development" "pam_authentication" "production" "test"];
     platforms = [];
@@ -378,10 +390,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18ifwnvn13755qkfigapyj5bflpby3phxzbb7x5336d0kzv5k7d9";
+      sha256 = "0r8d3vh1xjfx46qlv75228rkshzgqxpmf491vxzpicpqi1xad5ni";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.4";
   };
   bundler-audit = {
     dependencies = ["thor"];
@@ -389,10 +401,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04l9rs56rlvihbr2ybkrigjajgd3swa98lxvmdl8iylj1g5m7n0j";
+      sha256 = "00l8rs7cna0j3yh4s9sza0r88x7kjc7j4gp9yl378422k7i0r73v";
       type = "gem";
     };
-    version = "0.7.0.1";
+    version = "0.8.0";
   };
   byebug = {
     groups = ["default" "development" "test"];
@@ -410,10 +422,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13k2k29y8idcacr0r4ycixpb7mvv2v88dilwzdmaw9r08wc8y9bl";
+      sha256 = "1jw01z2rawipnkprxy4c2sbdna3k9pxl3gzq3y92l3i1xy5x7ax3";
       type = "gem";
     };
-    version = "3.14.1";
+    version = "3.16.0";
   };
   capistrano-bundler = {
     dependencies = ["capistrano"];
@@ -465,10 +477,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ji9kyb01dpnjbvpyb0c481cpnisd6wx6div6rywi9fihk66627w";
+      sha256 = "1viqcpsngy9fqjd68932m43ad6xj656d1x33nx9565q57chgi29k";
       type = "gem";
     };
-    version = "3.33.0";
+    version = "3.35.3";
   };
   case_transform = {
     dependencies = ["activesupport"];
@@ -507,20 +519,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dczmxh09s0s8d2l111zdb49s0c6wa1s09dslh8prqms6r4n544f";
+      sha256 = "1l8r8wdghw09clkgyk91d80lvav7ngl8j7gmrgb7m2bh8nyia54m";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "5.2.0";
   };
   chunky_png = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0av5km25hxz21zkbnvac1g8hjskwhr1gvb3rhlcnjvhqq8cvz2lj";
+      sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
       type = "gem";
     };
-    version = "1.3.12";
+    version = "1.4.0";
   };
   cld3 = {
     dependencies = ["ffi"];
@@ -528,10 +540,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04hwr44m7x7vv55lc4vk5zcd6zq98c2asvzl3dh2adg1fhpk29nr";
+      sha256 = "1y04ig8p9rparhff5dh3781pwf1xlirgq8p0fzvggjjpx761bvra";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.2";
   };
   climate_control = {
     groups = ["test"];
@@ -543,17 +555,6 @@
     };
     version = "0.2.0";
   };
-  cocaine = {
-    dependencies = ["climate_control"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "01kk5xd7lspbkdvn6nyj0y51zhvia3z6r4nalbdcqw5fbsywwi7d";
-      type = "gem";
-    };
-    version = "0.5.8";
-  };
   coderay = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -579,20 +580,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   connection_pool = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qikl4av1z8kqnk5ba18136dpqzw8wjawc2w9b4zb5psdd5z8nwf";
+      sha256 = "0ffdxhgirgc86qb42yvmfj6v1v0x4lvi0pxn9zhghkff44wzra0k";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.2.5";
   };
   cose = {
     dependencies = ["cbor" "openssl-signature_algorithm"];
@@ -606,14 +607,15 @@
     version = "1.0.0";
   };
   crack = {
+    dependencies = ["rexml"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1awi8jy4jn0f7vxpdvz3xvn1zzjbjh33n28lfkijh77dla5zb7lc";
+      sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r";
       type = "gem";
     };
-    version = "0.4.4";
+    version = "0.4.5";
   };
   crass = {
     groups = ["default" "development" "pam_authentication" "production" "test"];
@@ -641,10 +643,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      sha256 = "1lswmjwxf1clzaimikhiwd9s1n07qkyz7a9xwng64j4fxsajykqp";
       type = "gem";
     };
-    version = "0.0.3";
+    version = "1.0.0";
   };
   devise = {
     dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
@@ -652,10 +654,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0syqkh0q9mcdgj68m2cf1innpxb8fv6xsayk1kgsdmq539rkv3ic";
+      sha256 = "0ag0skzk3h7bhmf1n2zwa7cg6kx5k5inxmq0kf5qpm7917ffm0mz";
       type = "gem";
     };
-    version = "4.7.3";
+    version = "4.8.0";
   };
   devise-two-factor = {
     dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
@@ -663,10 +665,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gzk7phrryxlq4k3jrcxm8faifmbqrbfxq7jx089ncsixwd69bn4";
+      sha256 = "148pfr6g8dwikdq3994gsid2a3n6p5h4z1a1dzh1898shr5f9znc";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "4.0.0";
   };
   devise_pam_authenticatable2 = {
     dependencies = ["devise" "rpam2"];
@@ -705,10 +707,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      sha256 = "0wi81lynfdvbwhrc4ws746g3j8761vian4m9gxamdj9rjwj9jhls";
       type = "gem";
     };
-    version = "1.3.2";
+    version = "1.3.4";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -727,10 +729,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "105yr9gy60z0pyh85pbc6gazanm6jmb5c6agd7p1mzrc21hmrzrk";
+      sha256 = "1l2ma30gkmrny47zn4i8kmak8iykra1npx1cmpax8y43c88kkv7l";
       type = "gem";
     };
-    version = "5.4.0";
+    version = "5.5.1";
   };
   dotenv = {
     groups = ["default"];
@@ -779,10 +781,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qkabj3hd0f9yf6l42xls78vzsbihziqw3zqrmjj91l0w1d1abkk";
+      sha256 = "02liwd003fify7cpg1z8szwfnncn33h5kkvgnbpi0bpqznb64l87";
       type = "gem";
     };
-    version = "7.9.0";
+    version = "7.10.1";
   };
   elasticsearch-api = {
     dependencies = ["multi_json"];
@@ -790,10 +792,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nsk9p816x3rck1xklmzbbhfp18w0i32qb0qaxvrx8jlgwvd3y7z";
+      sha256 = "1ya398pcmin9l44m5z5wsh3zqz47dhrj5h2lxkpr3pa0vcacd9ig";
       type = "gem";
     };
-    version = "7.9.0";
+    version = "7.10.1";
   };
   elasticsearch-dsl = {
     groups = ["default"];
@@ -811,10 +813,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ic87n4772an00nq6z2znd8wmyhpgdcmjbvrzfqj51xi4q627x0a";
+      sha256 = "0q45s9d4id0l35924vxmysb9s2raiixcsf7il6j5bl2z8dgfwfhs";
       type = "gem";
     };
-    version = "7.9.0";
+    version = "7.10.1";
   };
   encryptor = {
     groups = ["default"];
@@ -831,10 +833,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   et-orbi = {
     dependencies = ["tzinfo"];
@@ -862,10 +864,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pdrl55xf76pbc5kjzp7diawxxvgbk2cm38532in6df823431n6z";
+      sha256 = "1a1zv94hcss44n1b04w0rg0swg8npigrj3nva9h0y2f1iflj124k";
       type = "gem";
     };
-    version = "2.21.1";
+    version = "2.22.0";
   };
   faker = {
     dependencies = ["i18n"];
@@ -873,18 +875,28 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06sh8492k03p9lsfzv5zifzn51ilb4734vrvwl30vzmzg1apzml6";
+      sha256 = "0z3d4y6xg8prn3zdjw1qpqrnziq1d3zigqil4sxjj0pbr46gc1d6";
       type = "gem";
     };
-    version = "2.14.0";
+    version = "2.17.0";
   };
   faraday = {
-    dependencies = ["multipart-post"];
+    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
     version = "1.0.1";
@@ -904,20 +916,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11ny2pj0j6pljszrf1w3iqdv2pcl2iwwghjbgcjlizy424zbh0hb";
+      sha256 = "0lgr0vs9kg5622qaf2l3f37b238dncs037fisiygvkbq8sg11i68";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.3";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.15.0";
   };
   ffi-compiler = {
     dependencies = ["ffi" "rake"];
@@ -990,10 +1002,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "090sx0ck194am6v3hwfld2ijvldd0mjwplqz8r36p34l4p8z9d79";
+      sha256 = "1028vn7j3kc5qqwswrf3has3qm4j9xva70xmzb3n29i89f0afwmj";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.5.1";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -1059,19 +1071,6 @@
     };
     version = "4.1.0";
   };
-  health_check = {
-    dependencies = ["rails"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      fetchSubmodules = false;
-      rev = "0b799ead604f900ed50685e9b2d469cd2befba5b";
-      sha256 = "0yz4axwkynsnng8xswrg2ysxlkjwfw0v4padvqwm4xal7nri172d";
-      type = "git";
-      url = "https://github.com/ianheggie/health_check";
-    };
-    version = "4.0.0.pre";
-  };
   highline = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -1182,10 +1181,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   i18n-tasks = {
     dependencies = ["activesupport" "ast" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"];
@@ -1193,10 +1192,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04am9452ihm8fcq2si44bba0msz0014wfg50ksxs5dpb2l065abg";
+      sha256 = "0lxccbhv91mbj7h3iy9xp1nhj5hrk4dyrglp2xv2qp71h129h37h";
       type = "gem";
     };
-    version = "0.9.31";
+    version = "0.9.34";
   };
   idn-ruby = {
     groups = ["default"];
@@ -1243,20 +1242,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   json-canonicalization = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "014lc8am17m2amfkzdfc9ksaafnwpb7zzr8l7382r60zkkgpkljg";
+      sha256 = "0x6rd52dy6d75v21nzvkgpslhjsf5s3s6s4646yc34rdh6icq2ip";
       type = "gem";
     };
-    version = "0.2.0";
+    version = "0.2.1";
   };
   json-ld = {
     dependencies = ["htmlentities" "json-canonicalization" "link_header" "multi_json" "rack" "rdf"];
@@ -1264,10 +1263,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q9sg8a719sai53gjpznf9r78l035xry0pk1yrag34pb50k2l05l";
+      sha256 = "1j9rj3qqdp312lbwgpxkqzbhf18nxaf6pvillql6p05l4av4717w";
       type = "gem";
     };
-    version = "3.1.5";
+    version = "3.1.9";
   };
   json-ld-preloaded = {
     dependencies = ["json-ld" "rdf"];
@@ -1275,10 +1274,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0f8vham63wy689d4jp2j9rani0n10h40dpymgishf3na8cjj0lix";
+      sha256 = "01i36aja495wvhc3259iawc7dp0ar1yglnxcv5vi3rmrdm03cviz";
       type = "gem";
     };
-    version = "3.1.3";
+    version = "3.1.5";
   };
   jsonapi-renderer = {
     groups = ["default"];
@@ -1403,10 +1402,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1alz1x6rkhbw10qpszr384299rf52rcyasn0619a9p50vzs8vczq";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.9.1";
   };
   mail = {
     dependencies = ["mini_mime"];
@@ -1425,21 +1424,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01n90s1jcc05dc9a70k3c3aa4gc9j49k9iv56n2k4jm949dacms6";
+      sha256 = "0d6r7df919jwj0xwmr95xqjqp7937djysrq2v3qvwhddhx7mfpkv";
       type = "gem";
     };
-    version = "0.4.1";
+    version = "0.5.0";
   };
   marcel = {
-    dependencies = ["mimemagic"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+      sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "1.0.1";
   };
   mario-redis-lock = {
     dependencies = ["redis"];
@@ -1457,10 +1455,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04ivhv1bilwqm33jv28gar2vwzsichb5nipaq395d3axabv8qmfy";
+      sha256 = "0s8qaf19yr4lhvdxk3cy3ifc47cgxdz2jybg6hzxsy9gh88c1f7v";
       type = "gem";
     };
-    version = "0.9.14";
+    version = "1.0.0";
   };
   method_source = {
     groups = ["default" "development" "pam_authentication" "production" "test"];
@@ -1478,10 +1476,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wdyxr22qzw9ri5gzng3a4wqj6a25vq4dhbhd9synk2hjg5pfgvq";
+      sha256 = "115bs94zqkgb248c7xafflpkv2vckpd0ykyfcfggj72kjpqyshyz";
       type = "gem";
     };
-    version = "4.2.1";
+    version = "4.3.1";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -1505,54 +1503,55 @@
     version = "3.2020.0512";
   };
   mimemagic = {
+    dependencies = ["nokogiri" "rake"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
+      sha256 = "0cqm9n9122qpksn9v6mp0gn3lrzxhh72lwl7yb6j75gykdan6h41";
       type = "gem";
     };
-    version = "0.3.5";
+    version = "0.3.10";
   };
   mini_mime = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "1np6srnyagghhh2w4nyv09sz47v0i6ri3q6blicj94vgxqp12c94";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   mini_portile2 = {
     groups = ["default" "development" "pam_authentication" "production" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default" "development" "pam_authentication" "production" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   msgpack = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
+      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.2";
   };
   multi_json = {
     groups = ["default"];
@@ -1579,10 +1578,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13lh6qizxi8fza8py73b2dvjp9p010dvbaq7diagir9nh8plsinv";
+      sha256 = "1j19yxrz7h3hj7kiiln13c7bz7hvpdqr31bwi88dj64zifr7896n";
       type = "gem";
     };
-    version = "0.16.3";
+    version = "0.17.0";
   };
   net-scp = {
     dependencies = ["net-ssh"];
@@ -1605,38 +1604,26 @@
     };
     version = "6.1.0";
   };
-  nilsimsa = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      fetchSubmodules = false;
-      rev = "fd184883048b922b176939f851338d0a4971a532";
-      sha256 = "0fds01pr220kg6g3g0rphrkg1fc6py1pnf546pnsb76wd9c0c5il";
-      type = "git";
-      url = "https://github.com/witgo/nilsimsa";
-    };
-    version = "1.1.2";
-  };
   nio4r = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
+      sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
       type = "gem";
     };
-    version = "2.5.4";
+    version = "2.5.7";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default" "development" "pam_authentication" "production" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.3";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -1644,10 +1631,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sxjnpjvrn10gdmfw2dimhch861lz00f28hvkkz0b1gc2rb65k9s";
+      sha256 = "0pxm7hx2lhmanm8kljd39f1j1742kl0a31zx98jsjiwrkfb5hhc6";
       type = "gem";
     };
-    version = "2.0.2";
+    version = "2.0.4";
   };
   nsa = {
     dependencies = ["activesupport" "concurrent-ruby" "sidekiq" "statsd-ruby"];
@@ -1655,20 +1642,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i1bhmvs49yv70pgl41lx1lr8x6whg52szb8ic1jb6wmmxr2ylcz";
+      sha256 = "1jzs1n71pi6najhs9h8jx156gzgk3h9bwjr60vazizwdz3mm69ia";
       type = "gem";
     };
-    version = "0.2.7";
+    version = "0.2.8";
   };
   oj = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqmzqldi9a0wpilwx87yh61xd7647gg8ffammg4ava0bsx375g2";
+      sha256 = "1cnadm83qwnmbpyild9whb9bgf9r7gs046ydxypclb2l756gcnva";
       type = "gem";
     };
-    version = "3.10.16";
+    version = "3.11.5";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1749,10 +1736,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nd301vsf3k4pl0aa6gkng12yxfdf5s490v65ky2vz8lainaw16q";
+      sha256 = "00k4l70dlbnqylng27023wz1c5hph32vwv2nwpfxdx9ip1vn4lx1";
       type = "gem";
     };
-    version = "2.13.4";
+    version = "2.14.4";
   };
   paperclip = {
     dependencies = ["activemodel" "activesupport" "mime-types" "mimemagic" "terrapin"];
@@ -1765,17 +1752,6 @@
     };
     version = "6.0.0";
   };
-  paperclip-av-transcoder = {
-    dependencies = ["av" "paperclip"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1gcnp3fpdb5lqilcij4yqga6397nb7zyyf9lzxnqpbp7cvc18lhf";
-      type = "gem";
-    };
-    version = "0.6.4";
-  };
   parallel = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -1792,10 +1768,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mvdk8vgzqjv2pvadxwc8w2vf8dmiw145rjf47c36nn6l5hh02j6";
+      sha256 = "1vrd24lg1pqxvp63664hrndywpdyn8i38j4gfvqk8zjl1mxy9840";
       type = "gem";
     };
-    version = "3.4.0";
+    version = "3.7.0";
   };
   parser = {
     dependencies = ["ast"];
@@ -1803,10 +1779,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+      sha256 = "1pxsi1i5z506xfzhiyavlasf8777h55ab40phvp7pfv9npmd5pnj";
       type = "gem";
     };
-    version = "2.7.2.0";
+    version = "3.0.1.1";
   };
   parslet = {
     groups = ["default"];
@@ -1845,31 +1821,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lb858gpz8919in51pgxbk9v5m4qppd136gpag2plzs24rv5hg3s";
+      sha256 = "0abfdw301acfnq2h4zccwzd32i6mh9wp6qya2l0fsy0mmn14j405";
       type = "gem";
     };
-    version = "2.7.2";
+    version = "2.8.1";
   };
   pkg-config = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "068sf963n2zk47kqcckj624g5pxmk68mm76h02piphfyh9x4zmi3";
-      type = "gem";
-    };
-    version = "1.4.4";
-  };
-  pluck_each = {
-    dependencies = ["activerecord" "activesupport"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1b7g0ggjsbca81qwvpayj1c5qy65p5zq19lb7fiy1v0yb48pzvhp";
+      sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "1.4.6";
   };
   posix-spawn = {
     groups = ["default"];
@@ -1962,10 +1927,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mkmfbf4qyiknwi9bb5432cpbbz06r855gknxb8grn24gmgs4d9i";
+      sha256 = "1q34mqihyg7i46z0pbbkyw58fwmkq7a7315apaqmj41zp6akyjf1";
       type = "gem";
     };
-    version = "5.0.4";
+    version = "5.3.0";
   };
   pundit = {
     dependencies = ["activesupport"];
@@ -1988,6 +1953,16 @@
     };
     version = "1.3.3";
   };
+  racc = {
+    groups = ["default" "development" "pam_authentication" "production" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default" "development" "pam_authentication" "production" "test"];
     platforms = [];
@@ -2004,10 +1979,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zzyiiif9w67v43rv0hg7nxbwp1ish1f02x61kx0rmz8sy1j7wnn";
+      sha256 = "0kiixzpazjqgljjy1ngfz1by5vz6kjx0d4mf1fq7b3ywpfjf80lq";
       type = "gem";
     };
-    version = "6.3.1";
+    version = "6.5.0";
   };
   rack-cors = {
     dependencies = ["rack"];
@@ -2043,15 +2018,15 @@
     version = "1.1.0";
   };
   rails = {
-    dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
+    dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b5g3h5sbbncks44w8vjnx0zp145ygphrsspy4ay7xsls92xynq0";
+      sha256 = "0flnpli87b9j0zvb3c4l5addjbznbpkbmp1wzfjc1gh8qxlhcs1n";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -2092,10 +2067,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02kdlm7jgwvwnnc1amy8md2vl0f2jkfr6rr36vybclr9qm4fb80f";
+      sha256 = "05mcgv748vppnm3fnml37wjy3dw61wj8vfw14ldaj1yx1bmkhb07";
       type = "gem";
     };
-    version = "5.1.3";
+    version = "6.0.0";
   };
   rails-settings-cached = {
     dependencies = ["rails"];
@@ -2114,10 +2089,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "089kiwmv8fxyfk0zp57q74nyd5i6d5x5ihlrzbzwl041v94s2zx9";
+      sha256 = "17r1pr8d467vh3zkciw4wmrcixj9zjrvd11nxn2z091bkzf66xq2";
       type = "gem";
     };
-    version = "5.2.4.4";
+    version = "6.1.3.2";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -2134,10 +2109,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rdf = {
     dependencies = ["hamster" "link_header"];
@@ -2145,10 +2120,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "109c355wj2a74v2yrwgqpzhgnxchkm5dakcacqx9fk2i98f7m7d8";
+      sha256 = "0mn0q6a8cx32kz01pd8byhyhghi30dc6rbazislp2fw3wphvx553";
       type = "gem";
     };
-    version = "3.1.7";
+    version = "3.1.13";
   };
   rdf-normalize = {
     dependencies = ["rdf"];
@@ -2162,7 +2137,7 @@
     version = "0.4.0";
   };
   redis = {
-    groups = ["default" "production" "test"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
@@ -2171,81 +2146,26 @@
     };
     version = "4.2.5";
   };
-  redis-actionpack = {
-    dependencies = ["actionpack" "redis-rack" "redis-store"];
-    groups = ["default" "production"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0c2276zzc0044zh37a8frx1v7hnra7z7k126154ps7njbqngfdv3";
-      type = "gem";
-    };
-    version = "5.2.0";
-  };
-  redis-activesupport = {
-    dependencies = ["activesupport" "redis-store"];
-    groups = ["default" "production"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "14a3z8810j02ysvg53f3mvcfb4rw34m91yfd19zy9y5lb3yv2g59";
-      type = "gem";
-    };
-    version = "5.2.0";
-  };
   redis-namespace = {
     dependencies = ["redis"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05i6s898z5w31z385cba1683pgg5nnmj4m686cbravg7j4pgbcgv";
+      sha256 = "0k65fr7f8ciq7d9nwc5ziw1d32zsxilgmqdlj3359rz5jgb0f5y8";
       type = "gem";
     };
-    version = "1.8.0";
-  };
-  redis-rack = {
-    dependencies = ["rack" "redis-store"];
-    groups = ["default" "production"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nblbxg1f051dn83jp92lz3lc1wxm18nviglrabv2l0vz6rd0pkb";
-      type = "gem";
-    };
-    version = "2.1.3";
-  };
-  redis-rails = {
-    dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
-    groups = ["production"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
-      type = "gem";
-    };
-    version = "5.0.2";
-  };
-  redis-store = {
-    dependencies = ["redis"];
-    groups = ["default" "production"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cpzbf2svnk4j5awb24ncl0mih45zkbdrd7q23jdg1r8k3q7mdg6";
-      type = "gem";
-    };
-    version = "1.9.0";
+    version = "1.8.1";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x4s82lgf0l71y3xc9gp4qxkrgx1kv8f6avdqd68l46ijbyvicdm";
+      sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
       type = "gem";
     };
-    version = "1.8.2";
+    version = "2.1.1";
   };
   request_store = {
     dependencies = ["rack"];
@@ -2258,6 +2178,16 @@
     };
     version = "1.5.0";
   };
+  resolv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a23805sa3ip589id3npq39wyzgqz2qzx0dcsa1z91rxfax7fllz";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
   responders = {
     dependencies = ["actionpack" "railties"];
     groups = ["default" "pam_authentication"];
@@ -2270,24 +2200,24 @@
     version = "3.0.1";
   };
   rexml = {
-    groups = ["default" "development"];
+    groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "3.2.4";
+    version = "3.2.5";
   };
   rotp = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+      sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3";
       type = "gem";
     };
-    version = "2.1.2";
+    version = "6.2.0";
   };
   rpam2 = {
     groups = ["default" "pam_authentication"];
@@ -2305,20 +2235,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06lw8b6wfshxd61xw98xyp1a0zsz6av4nls2c9fwb7q59wb05sci";
+      sha256 = "073w0qgjydkqpsqsb9yr8qg0mhvwlzx6z53hqr2b5zifvb9wzh02";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "2.0.0";
   };
   rqrcode_core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "071jqmhk3hf0grsvi0jx5sl449pf82p40ls5b3likbq4q516zc0j";
+      sha256 = "1djrfpzdy19c336nlzxdsm9qkrgqnm1himdawflsjsmxpq4j826c";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "1.0.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -2326,10 +2256,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b8891149l4rdlaz58k1dprc09rhpvq98bblk4qpd3dvcvqklkvh";
+      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
       type = "gem";
     };
-    version = "3.9.3";
+    version = "3.10.1";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -2337,10 +2267,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bxkv25qmy39jqrdx35bfgw00g24qkssail9jlljm7hywbqvr9bb";
+      sha256 = "1sz9bj4ri28adsklnh257pnbq4r5ayziw02qf67wry0kvzazbb17";
       type = "gem";
     };
-    version = "3.9.2";
+    version = "3.10.1";
   };
   rspec-mocks = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -2348,10 +2278,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.2";
   };
   rspec-rails = {
     dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
@@ -2359,10 +2289,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lzik01ziaskgpdpy8knffpw0fsy9151f5lfigyhb89wq4q45hfs";
+      sha256 = "1pj2a9vrkp2xzlq0810q90sdc2zcqc7k92n57hxzhri2vcspy7n6";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "5.0.1";
   };
   rspec-sidekiq = {
     dependencies = ["rspec-core" "sidekiq"];
@@ -2380,10 +2310,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dandh2fy1dfkjk8jf9v4azbbma6968bhh06hddv0yqqm8108jir";
+      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
       type = "gem";
     };
-    version = "3.9.3";
+    version = "3.10.2";
   };
   rspec_junit_formatter = {
     dependencies = ["rspec-core"];
@@ -2402,10 +2332,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cganc8j8zq7x81bmkav39dhbqydxhqyfs98z2g4g7ld6scywm20";
+      sha256 = "0chjr6i0g7frbp7dhi4d83ppf7akkdaw7mcgcwbxd6a9mairafpp";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.14.0";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2413,10 +2343,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15jxn0aqxgalpl9zlrqyk2kk41qcp4sn1yys55qif5f787b3nrij";
+      sha256 = "0hx4im1a2qpiwipvsl3fma358ixjp4h0mhj56ichq15xrq709qlf";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "1.5.0";
   };
   rubocop-rails = {
     dependencies = ["activesupport" "rack" "rubocop"];
@@ -2424,20 +2354,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14g703lv0cbqw504cdjsv0yydrsnm61rwg0n0mql4zl5hw1n7lfh";
+      sha256 = "1h8k2i6qgl7pdvb8bnh1w43zqdxqg3kglyxy9b2vdh2w7q5rrl5y";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.10.1";
   };
   ruby-progressbar = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
   };
   ruby-saml = {
     dependencies = ["nokogiri"];
@@ -2450,6 +2380,16 @@
     };
     version = "1.11.0";
   };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
   rufus-scheduler = {
     dependencies = ["fugit"];
     groups = ["default"];
@@ -2478,10 +2418,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18m3zcf207gcrmghx288w3n2kpphc22lbmbc1wdx1nzcn8g2yddh";
+      sha256 = "0xi2c9vbfjs0gk4i9y4mrlb3xx6g5lj22hlg5cx6hyc88ri7j4bc";
       type = "gem";
     };
-    version = "5.2.1";
+    version = "5.2.3";
   };
   scenic = {
     dependencies = ["activerecord" "railties"];
@@ -2509,10 +2449,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "150wq0y749rags4pm0g3zljd575vk17nwdzp0m0q04s62977rd24";
+      sha256 = "1dlp97vg95plrsaaqj7x8l7z9vsjbhnqk4rw1l30gy26lmxpfrih";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "3.0.0";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -2520,10 +2460,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mjxrxppv08a1hwqi8gpg6n168cxqhp7c2r2jwc4rbz9j5k41vcw";
+      sha256 = "1ac57q6lnqg9h9lsj49wlwhgsfqfr83lgka1c1srk6g8vghhz662";
       type = "gem";
     };
-    version = "6.1.2";
+    version = "6.2.1";
   };
   sidekiq-bulk = {
     dependencies = ["sidekiq"];
@@ -2548,15 +2488,15 @@
     version = "3.0.1";
   };
   sidekiq-unique-jobs = {
-    dependencies = ["concurrent-ruby" "sidekiq" "thor"];
+    dependencies = ["brpoplpush-redis_script" "concurrent-ruby" "sidekiq" "thor"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lw2hgq28wd97kkp2897gy1yf0fx0yz6l23gdgjl8i2pas7d5wxd";
+      sha256 = "0dzwz30gr2mjdr70gnz2mmplhfqldz0jhdw1n3ric0y3yj81m02d";
       type = "gem";
     };
-    version = "6.0.25";
+    version = "7.0.9";
   };
   simple-navigation = {
     dependencies = ["activesupport"];
@@ -2575,21 +2515,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jj4fcs2r5sm3gjsmygcs2fi2ai18az5ynq1cqp1w0j3aajdian7";
+      sha256 = "09raw1gw0db9hfddgvzjwpk4hj1ng4dfq3igak80jkvhg4jdg7jp";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.1.0";
   };
   simplecov = {
-    dependencies = ["docile" "simplecov-html"];
+    dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00xwb0mizvbm9s04a6h5ycwn2zpdxjb3wxaawq6ypjjbvxszihcq";
+      sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr";
       type = "gem";
     };
-    version = "0.19.1";
+    version = "0.21.2";
   };
   simplecov-html = {
     groups = ["default" "test"];
@@ -2601,6 +2541,16 @@
     };
     version = "0.12.3";
   };
+  simplecov_json_formatter = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cl3j7p3b5q7sxsx1va63c8imc5x6g99xablz08qrmqhpi0d6g6j";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   sprockets = {
     dependencies = ["concurrent-ruby" "rack"];
     groups = ["default"];
@@ -2629,30 +2579,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gfglybqjw6g6hccqvh2yjfqlvdy4hwad8mcjdc7zjm5swncfxwz";
+      sha256 = "1szshiw7bzizi380z1hkdbwhjdaixb5bgbx7c3wf7970mjdashkd";
       type = "gem";
     };
-    version = "1.21.0";
+    version = "1.21.2";
   };
   stackprof = {
     groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "147rb66p3n062vc433afqhkd99iazvkrqnghxgh871r62yhha93f";
+      sha256 = "06lz70k8c0r7fyxk1nc3idh14x7nvsr21ydm1bsmbj00jyhmfzsn";
       type = "gem";
     };
-    version = "0.2.16";
+    version = "0.2.17";
   };
   statsd-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0djig5dnqjgww6wrw3f1mvnnjllznahlchvk4lvs4wx9qjsqpysr";
+      sha256 = "028136c463nbravckxb1qi5c5nnv9r6vh2cyhiry423lac4xz79n";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.0";
   };
   stoplight = {
     groups = ["default"];
@@ -2664,27 +2614,16 @@
     };
     version = "2.2.1";
   };
-  streamio-ffmpeg = {
-    dependencies = ["multi_json"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nnxizc0371vwh0k6gqjj1b7fjszydpqfz549n6qn2q1pza3894z";
-      type = "gem";
-    };
-    version = "3.0.2";
-  };
   strong_migrations = {
     dependencies = ["activerecord"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sdijc2nc9lx6kga216rg4yfmyv4g7slbpcrlfjx20psbn54d7jd";
+      sha256 = "1dv55gbazp96w27yhvikm2xa6ny51q88aim2by11crc0jwr5agvk";
       type = "gem";
     };
-    version = "0.7.2";
+    version = "0.7.6";
   };
   temple = {
     groups = ["default"];
@@ -2702,10 +2641,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+      sha256 = "1dlaadjnx8aw8lhr0z8jpy2gyi7az3mks6f49d3fllilhps9ayi8";
       type = "gem";
     };
-    version = "1.8.0";
+    version = "3.0.0";
   };
   terrapin = {
     dependencies = ["climate_control"];
@@ -2723,20 +2662,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
-      type = "gem";
-    };
-    version = "1.0.1";
-  };
-  thread_safe = {
-    groups = ["default" "development" "pam_authentication" "production" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "1.1.0";
   };
   thwait = {
     dependencies = ["e2mmap"];
@@ -2775,10 +2704,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12vcxmn3lj405rs0fxcki7jwpkrx8y55x8jwjf9v6yvnx2y5kga3";
+      sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "0.6.0";
   };
   tty-cursor = {
     groups = ["default"];
@@ -2796,10 +2725,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y0imsmzav5xgaav6xhzlz879fq2zv25ryk8y3qc2kqaz7x657";
+      sha256 = "1j4y8ik82azjxshgd4i1v4wwhsv3g9cngpygxqkkz69qaa8cxnzw";
       type = "gem";
     };
-    version = "0.22.0";
+    version = "0.23.1";
   };
   tty-reader = {
     dependencies = ["tty-cursor" "tty-screen" "wisper"];
@@ -2807,10 +2736,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "078rlqbdw72jjgp597yn5psasgf4508qdw9g3prxgbcgpcdcsd0r";
+      sha256 = "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "0.9.0";
   };
   tty-screen = {
     groups = ["default"];
@@ -2823,26 +2752,26 @@
     version = "0.8.1";
   };
   twitter-text = {
-    dependencies = ["unf"];
+    dependencies = ["idn-ruby" "unf"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+      sha256 = "1dnmp0bj3l01nbb52zby2c7hrazcdwfg846knkrjdfl0yfmv793z";
       type = "gem";
     };
-    version = "1.14.7";
+    version = "3.1.0";
   };
   tzinfo = {
-    dependencies = ["thread_safe"];
+    dependencies = ["concurrent-ruby"];
     groups = ["default" "development" "pam_authentication" "production" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "2.0.4";
   };
   tzinfo-data = {
     dependencies = ["tzinfo"];
@@ -2850,10 +2779,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02anabncgfjwsqn07ra9jdqvmi0a4yngzp6dfiz2yxb1m9qpdm4a";
+      sha256 = "0ik16lnsyr2739jzwl4r5sz8q639lqw8f9s68iszwhm2pcq8p4w2";
       type = "gem";
     };
-    version = "1.2020.4";
+    version = "1.2021.1";
   };
   unf = {
     dependencies = ["unf_ext"];
@@ -2891,10 +2820,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vm4aix8jmv42s1x58m3lj3xwkbxyn9qn6lzhhig0d1j8fv6j30c";
+      sha256 = "05f81da1x7jh9xfsn8gsw6cfn42l0ldpg7zckrv875h4swknyffy";
       type = "gem";
     };
-    version = "1.13.0";
+    version = "1.14.1";
   };
   warden = {
     dependencies = ["rack"];
@@ -2924,10 +2853,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wbdjagk2qpr76k3zw2gmkfp5aqlrc1a4qrpjv7sq1q39qbn8xax";
+      sha256 = "038igpmkpmn0nw0k7s4db8x88af1nwcy7wzh9m9c9q4p74h7rii0";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.12.2";
   };
   webpacker = {
     dependencies = ["activesupport" "rack-proxy" "railties" "semantic_range"];
@@ -2935,10 +2864,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xgyv5ppljw3yq71nbrw2hj6hq9y8qbdavjrn53nsccpy7801wdx";
+      sha256 = "0xpjdbcnsapk9y1hbryxan3a0yks37j59l3ifpmlfrqfxp08anvr";
       type = "gem";
     };
-    version = "5.2.1";
+    version = "5.3.0";
   };
   webpush = {
     dependencies = ["hkdf" "jwt"];
@@ -3003,4 +2932,15 @@
     };
     version = "3.2.0";
   };
+  zeitwerk = {
+    groups = ["default" "development" "pam_authentication" "production" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      type = "gem";
+    };
+    version = "2.4.2";
+  };
 }
+
diff --git a/nixpkgs/pkgs/servers/mastodon/package.json b/nixpkgs/pkgs/servers/mastodon/package.json
index 498d4b63723e..be41b4d59254 100644
--- a/nixpkgs/pkgs/servers/mastodon/package.json
+++ b/nixpkgs/pkgs/servers/mastodon/package.json
@@ -1,9 +1,9 @@
 {
-  "version": "3.3.0",
+  "version": "3.4.0",
   "name": "@tootsuite/mastodon",
   "license": "AGPL-3.0-or-later",
   "engines": {
-    "node": ">=10.13"
+    "node": ">=12"
   },
   "scripts": {
     "postversion": "git push --tags",
@@ -23,7 +23,7 @@
   },
   "browserslist": [
     "last 2 versions",
-    "IE >= 11",
+    "not IE 11",
     "iOS >= 9",
     "not dead"
   ],
@@ -60,37 +60,35 @@
   },
   "private": true,
   "dependencies": {
-    "@babel/core": "^7.12.7",
-    "@babel/plugin-proposal-class-properties": "^7.8.3",
-    "@babel/plugin-proposal-decorators": "^7.12.1",
-    "@babel/plugin-transform-react-inline-elements": "^7.12.1",
-    "@babel/plugin-transform-runtime": "^7.12.1",
-    "@babel/preset-env": "^7.12.7",
-    "@babel/preset-react": "^7.12.7",
-    "@babel/runtime": "^7.12.5",
-    "@clusterws/cws": "^3.0.0",
+    "@babel/core": "^7.14.0",
+    "@babel/plugin-proposal-decorators": "^7.13.15",
+    "@babel/plugin-transform-react-inline-elements": "^7.12.13",
+    "@babel/plugin-transform-runtime": "^7.13.15",
+    "@babel/preset-env": "^7.14.1",
+    "@babel/preset-react": "^7.13.13",
+    "@babel/runtime": "^7.14.0",
     "@gamestdio/websocket": "^0.3.2",
     "@github/webauthn-json": "^0.5.7",
-    "@rails/ujs": "^6.0.3",
-    "array-includes": "^3.1.1",
+    "@rails/ujs": "^6.1.3",
+    "array-includes": "^3.1.3",
     "arrow-key-navigation": "^1.2.0",
     "autoprefixer": "^9.8.6",
-    "axios": "^0.21.0",
-    "babel-loader": "^8.2.1",
+    "axios": "^0.21.1",
+    "babel-loader": "^8.2.2",
     "babel-plugin-lodash": "^3.3.4",
     "babel-plugin-preval": "^5.0.0",
     "babel-plugin-react-intl": "^6.2.0",
     "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
     "babel-runtime": "^6.26.0",
     "blurhash": "^1.1.3",
-    "classnames": "^2.2.5",
-    "color-blend": "^3.0.0",
+    "classnames": "^2.3.1",
+    "color-blend": "^3.0.1",
     "compression-webpack-plugin": "^6.1.1",
-    "cross-env": "^7.0.2",
-    "css-loader": "^5.0.1",
-    "cssnano": "^4.1.10",
-    "detect-passive-events": "^2.0.1",
-    "dotenv": "^8.2.0",
+    "cross-env": "^7.0.3",
+    "css-loader": "^5.2.4",
+    "cssnano": "^4.1.11",
+    "detect-passive-events": "^2.0.3",
+    "dotenv": "^9.0.1",
     "emoji-mart": "Gargron/emoji-mart#build",
     "es6-symbol": "^3.1.3",
     "escape-html": "^1.0.3",
@@ -98,29 +96,29 @@
     "express": "^4.17.1",
     "file-loader": "^6.2.0",
     "font-awesome": "^4.7.0",
-    "glob": "^7.1.6",
+    "glob": "^7.1.7",
     "history": "^4.10.1",
     "http-link-header": "^1.0.3",
     "immutable": "^3.8.2",
     "imports-loader": "^1.2.0",
-    "intersection-observer": "^0.11.0",
+    "intersection-observer": "^0.12.0",
     "intl": "^1.2.5",
     "intl-messageformat": "^2.2.0",
     "intl-relativeformat": "^6.4.3",
-    "is-nan": "^1.3.0",
-    "js-yaml": "^3.13.1",
-    "lodash": "^4.17.19",
+    "is-nan": "^1.3.2",
+    "js-yaml": "^4.1.0",
+    "lodash": "^4.17.21",
     "mark-loader": "^0.1.6",
-    "marky": "^1.2.1",
-    "mini-css-extract-plugin": "^1.3.1",
+    "marky": "^1.2.2",
+    "mini-css-extract-plugin": "^1.6.0",
     "mkdirp": "^1.0.4",
     "npmlog": "^4.1.2",
     "object-assign": "^4.1.1",
     "object-fit-images": "^3.2.3",
-    "object.values": "^1.1.1",
+    "object.values": "^1.1.3",
     "offline-plugin": "^5.0.7",
     "path-complete-extname": "^1.0.0",
-    "pg": "^6.4.0",
+    "pg": "^8.5.0",
     "postcss-loader": "^3.0.0",
     "postcss-object-fit-images": "^1.1.2",
     "promise.prototype.finally": "^3.1.2",
@@ -135,18 +133,18 @@
     "react-masonry-infinite": "^1.2.2",
     "react-motion": "^0.5.2",
     "react-notification": "^6.8.5",
-    "react-overlays": "^0.9.2",
-    "react-redux": "^7.2.2",
+    "react-overlays": "^0.9.3",
+    "react-redux": "^7.2.4",
     "react-redux-loading-bar": "^4.0.8",
     "react-router-dom": "^4.1.1",
     "react-router-scroll-4": "^1.0.0-beta.1",
-    "react-select": "^3.1.0",
+    "react-select": "^4.3.0",
     "react-sparklines": "^1.7.0",
     "react-swipeable-views": "^0.13.9",
-    "react-textarea-autosize": "^8.3.0",
-    "react-toggle": "^4.1.1",
-    "redis": "^3.0.2",
-    "redux": "^4.0.5",
+    "react-textarea-autosize": "^8.3.2",
+    "react-toggle": "^4.1.2",
+    "redis": "^3.1.2",
+    "redux": "^4.1.0",
     "redux-immutable": "^4.0.0",
     "redux-thunk": "^2.2.0",
     "regenerator-runtime": "^0.13.7",
@@ -154,8 +152,8 @@
     "requestidlecallback": "^0.3.0",
     "reselect": "^4.0.0",
     "rimraf": "^3.0.2",
-    "sass": "^1.29.0",
-    "sass-loader": "^10.1.0",
+    "sass": "^1.32.12",
+    "sass-loader": "^10.1.1",
     "stacktrace-js": "^2.0.2",
     "stringz": "^2.1.0",
     "substring-trie": "^1.0.2",
@@ -163,31 +161,37 @@
     "tesseract.js": "^2.1.1",
     "throng": "^4.0.0",
     "tiny-queue": "^0.2.1",
+    "twitter-text": "3.1.0",
     "uuid": "^8.3.1",
-    "webpack": "^4.44.2",
-    "webpack-assets-manifest": "^3.1.1",
-    "webpack-bundle-analyzer": "^4.1.0",
+    "webpack": "^4.46.0",
+    "webpack-assets-manifest": "^4.0.6",
+    "webpack-bundle-analyzer": "^4.4.1",
     "webpack-cli": "^3.3.12",
-    "webpack-merge": "^5.4.0",
-    "wicg-inert": "^3.1.0",
+    "webpack-merge": "^5.7.3",
+    "wicg-inert": "^3.1.1",
+    "ws": "^7.4.5",
     "kind-of": "^6.0.3"
   },
   "devDependencies": {
-    "@testing-library/jest-dom": "^5.11.6",
-    "@testing-library/react": "^11.2.2",
+    "@testing-library/jest-dom": "^5.12.0",
+    "@testing-library/react": "^11.2.6",
     "babel-eslint": "^10.1.0",
     "babel-jest": "^26.6.3",
-    "eslint": "^7.14.0",
+    "eslint": "^7.26.0",
     "eslint-plugin-import": "~2.22.1",
     "eslint-plugin-jsx-a11y": "~6.4.1",
-    "eslint-plugin-promise": "~4.2.1",
-    "eslint-plugin-react": "~7.21.5",
+    "eslint-plugin-promise": "~5.1.0",
+    "eslint-plugin-react": "~7.23.2",
     "jest": "^26.6.3",
     "raf": "^3.4.1",
     "react-intl-translations-manager": "^5.0.3",
     "react-test-renderer": "^16.14.0",
     "sass-lint": "^1.13.1",
-    "webpack-dev-server": "^3.11.0",
-    "yargs": "^16.1.1"
+    "webpack-dev-server": "^3.11.2",
+    "yargs": "^17.0.1"
+  },
+  "optionalDependencies": {
+    "bufferutil": "^4.0.3",
+    "utf-8-validate": "^5.0.5"
   }
 }
diff --git a/nixpkgs/pkgs/servers/mastodon/resolutions.patch b/nixpkgs/pkgs/servers/mastodon/resolutions.patch
index 4cde0ba8dfe9..4160647123f7 100644
--- a/nixpkgs/pkgs/servers/mastodon/resolutions.patch
+++ b/nixpkgs/pkgs/servers/mastodon/resolutions.patch
@@ -1,31 +1,32 @@
 diff --git a/package.json b/package.json
-index 7b8f49dd8..24cdd3498 100644
+index 5bc1f6bf3..8cc22a403 100644
 --- a/package.json
 +++ b/package.json
 @@ -168,7 +168,8 @@
-     "webpack-bundle-analyzer": "^4.1.0",
      "webpack-cli": "^3.3.12",
-     "webpack-merge": "^5.4.0",
--    "wicg-inert": "^3.1.0"
-+    "wicg-inert": "^3.1.0",
+     "webpack-merge": "^5.7.3",
+     "wicg-inert": "^3.1.1",
+-    "ws": "^7.4.5"
++    "ws": "^7.4.5",
 +    "kind-of": "^6.0.3"
    },
    "devDependencies": {
-     "@testing-library/jest-dom": "^5.11.6",
-@@ -187,8 +188,5 @@
-     "sass-lint": "^1.13.1",
-     "webpack-dev-server": "^3.11.0",
-     "yargs": "^16.1.1"
--  },
+     "@testing-library/jest-dom": "^5.12.0",
+@@ -188,9 +189,6 @@
+     "webpack-dev-server": "^3.11.2",
+     "yargs": "^17.0.1"
+   },
 -  "resolutions": {
 -    "kind-of": "^6.0.3"
-   }
- }
+-  },
+   "optionalDependencies": {
+     "bufferutil": "^4.0.3",
+     "utf-8-validate": "^5.0.5"
 diff --git a/yarn.lock b/yarn.lock
-index 4aa8f6380..68d2fd8b5 100644
+index 6c8bcf549..bda3adbe8 100644
 --- a/yarn.lock
 +++ b/yarn.lock
-@@ -5689,6 +5689,11 @@ is-binary-path@~2.1.0:
+@@ -5833,6 +5833,11 @@ is-binary-path@~2.1.0:
    dependencies:
      binary-extensions "^2.0.0"
  
@@ -37,7 +38,7 @@ index 4aa8f6380..68d2fd8b5 100644
  is-callable@^1.1.4, is-callable@^1.2.2:
    version "1.2.2"
    resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
-@@ -6639,7 +6644,26 @@ killable@^1.0.1:
+@@ -6769,7 +6774,26 @@ killable@^1.0.1:
    resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
    integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
  
diff --git a/nixpkgs/pkgs/servers/mastodon/source.nix b/nixpkgs/pkgs/servers/mastodon/source.nix
index 57eff626ee49..e7e8135bef2b 100644
--- a/nixpkgs/pkgs/servers/mastodon/source.nix
+++ b/nixpkgs/pkgs/servers/mastodon/source.nix
@@ -2,8 +2,8 @@
 { fetchgit, applyPatches }: let
   src = fetchgit {
     url = "https://github.com/tootsuite/mastodon.git";
-    rev = "v3.3.0";
-    sha256 = "17wvggvy5mmyf3f1i5v1hgvh6wjdhg9hb3wiyfaydx0slsg03qba";
+    rev = "v3.4.0";
+    sha256 = "0wa1j4iin6nlb1p5lxzgldzgr0vhrmm835gj2zqadw37vpsxdis3";
   };
 in applyPatches {
   inherit src;
diff --git a/nixpkgs/pkgs/servers/mastodon/version.nix b/nixpkgs/pkgs/servers/mastodon/version.nix
index b577fbf1969b..9aa1e187187b 100644
--- a/nixpkgs/pkgs/servers/mastodon/version.nix
+++ b/nixpkgs/pkgs/servers/mastodon/version.nix
@@ -1 +1 @@
-"3.3.0"
+"3.4.0"
diff --git a/nixpkgs/pkgs/servers/mastodon/version.patch b/nixpkgs/pkgs/servers/mastodon/version.patch
index c1449e413272..eb0bd3937356 100644
--- a/nixpkgs/pkgs/servers/mastodon/version.patch
+++ b/nixpkgs/pkgs/servers/mastodon/version.patch
@@ -3,7 +3,7 @@ diff -Naur --label a/package.json --label b/package.json a/package.json b/packag
 +++ b/package.json
 @@ -1,4 +1,5 @@
  {
-+  "version": "3.3.0",
++  "version": "3.4.0",
    "name": "@tootsuite/mastodon",
    "license": "AGPL-3.0-or-later",
    "engines": {
diff --git a/nixpkgs/pkgs/servers/mastodon/yarn.nix b/nixpkgs/pkgs/servers/mastodon/yarn.nix
index 9c3b844bcccd..9d22eb6bd5af 100644
--- a/nixpkgs/pkgs/servers/mastodon/yarn.nix
+++ b/nixpkgs/pkgs/servers/mastodon/yarn.nix
@@ -2,35 +2,43 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.10.4.tgz";
+      name = "_babel_code_frame___code_frame_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
-        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+        name = "_babel_code_frame___code_frame_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
       };
     }
     {
-      name = "_babel_compat_data___compat_data_7.12.7.tgz";
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_compat_data___compat_data_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz";
-        sha1 = "9329b4782a7d6bbd7eef57e11addf91ee3ef1e41";
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
-      name = "_babel_core___core_7.12.7.tgz";
+      name = "_babel_compat_data___compat_data_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.7.tgz";
-        sha1 = "bf55363c08c8352a37691f7216ec30090bf7e3bf";
+        name = "_babel_compat_data___compat_data_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz";
+        sha1 = "a901128bce2ad02565df95e6ecbf195cf9465919";
       };
     }
     {
-      name = "_babel_generator___generator_7.12.5.tgz";
+      name = "_babel_core___core_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz";
-        sha1 = "a2c50de5c8b6d708ab95be5e6053936c1884a4de";
+        name = "_babel_core___core_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.14.0.tgz";
+        sha1 = "47299ff3ec8d111b493f1a9d04bf88c04e728d88";
+      };
+    }
+    {
+      name = "_babel_generator___generator_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_generator___generator_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.0.tgz";
+        sha1 = "0f35d663506c43e4f10898fbda0d752ec75494be";
       };
     }
     {
@@ -42,163 +50,195 @@
       };
     }
     {
-      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.4.tgz";
+      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
-        sha1 = "bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3";
+        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz";
+        sha1 = "0f58e86dfc4bb3b1fcd7db806570e177d439b6ab";
       };
     }
     {
-      name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.12.4.tgz";
+      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.12.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz";
-        sha1 = "55fc1ead5242caa0ca2875dcb8eed6d311e50f48";
+        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz";
+        sha1 = "6bc20361c88b0a74d05137a65cac8d3cbf6f61fc";
       };
     }
     {
-      name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.10.4.tgz";
+      name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz";
-        sha1 = "8095cddbff858e6fa9c326daee54a2f2732c1d5d";
+        name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.12.13.tgz";
+        sha1 = "df6a76fb83feb6b8e6dcfb46bb49010098cb51f0";
       };
     }
     {
-      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.12.5.tgz";
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.13.16.tgz";
       path = fetchurl {
-        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz";
-        sha1 = "cb470c76198db6a24e9dbc8987275631e5d29831";
+        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.13.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz";
+        sha1 = "6e91dccf15e3f43e5556dffe32d860109887563c";
       };
     }
     {
-      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.12.1.tgz";
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.13.11.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz";
-        sha1 = "3c45998f431edd4a9214c5f1d3ad1448a6137f6e";
+        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.13.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz";
+        sha1 = "30d30a005bca2c953f5653fc25091a492177f4f6";
       };
     }
     {
-      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.1.tgz";
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz";
-        sha1 = "18b1302d4677f9dc4740fe8c9ed96680e29d37e8";
+        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.0.tgz";
+        sha1 = "38367d3dab125b12f94273de418f4df23a11a15e";
       };
     }
     {
-      name = "_babel_helper_define_map___helper_define_map_7.10.4.tgz";
+      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_define_map___helper_define_map_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz";
-        sha1 = "f037ad794264f729eda1889f4ee210b870999092";
+        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.13.tgz";
+        sha1 = "0996d370a92896c612ae41a4215544bd152579c0";
       };
     }
     {
-      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.4.tgz";
+      name = "_babel_helper_define_polyfill_provider___helper_define_polyfill_provider_0.2.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz";
-        sha1 = "40a1cd917bff1288f699a94a75b37a1a2dbd8c7c";
+        name = "_babel_helper_define_polyfill_provider___helper_define_polyfill_provider_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz";
+        sha1 = "a640051772045fedaaecc6f0c6c69f02bdd34bf1";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz";
+        sha1 = "0e46990da9e271502f77507efa4c9918d3d8634a";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
-        sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+        name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
       };
     }
     {
-      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.4.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
-        sha1 = "d49b001d1d5a68ca5e6604dda01a6297f7c9381e";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.1.tgz";
+      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz";
-        sha1 = "fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c";
+        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz";
+        sha1 = "5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.12.5.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz";
-        sha1 = "1bfc0229f794988f76ed0a4d4e90860850b54dfb";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz";
+        sha1 = "c5715695b4f8bab32660dbdcdc2341dec7e3df40";
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz";
-        sha1 = "7954fec71f5b32c48e4b303b437c34453fd7247c";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz";
+        sha1 = "6aa4bb678e0f8c22f58cdb79451d30494461b091";
       };
     }
     {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
-        sha1 = "50dc96413d594f995a77905905b05893cd779673";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz";
+        sha1 = "dfe368f26d426a07299d8d6513821768216e6d72";
       };
     }
     {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
-        sha1 = "2f75a831269d4f677de49986dff59927533cf375";
+        name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
+        sha1 = "c6a369a6f3621cb25da014078684da9196b61977";
       };
     }
     {
-      name = "_babel_helper_regex___helper_regex_7.10.4.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.4.tgz";
-        sha1 = "59b373daaf3458e5747dece71bbaf45f9676af6d";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz";
+        sha1 = "8fcf78be220156f22633ee204ea81f73f826a8ad";
       };
     }
     {
-      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.12.1.tgz";
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz";
-        sha1 = "8c4dbbf916314f6047dc05e6a2217074238347fd";
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
       };
     }
     {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.1.tgz";
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz";
-        sha1 = "f15c9cc897439281891e11d5ce12562ac0cf3fa9";
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
+        sha1 = "806526ce125aed03373bc416a828321e3a6a33af";
       };
     }
     {
-      name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
+      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz";
-        sha1 = "32427e5aa61547d38eb1e6eaf5fd1426fdad9136";
+        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz";
+        sha1 = "376a760d9f7b4b2077a9dd05aa9c3927cadb2209";
+      };
+    }
+    {
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
+        sha1 = "00ec4fb6862546bd3d0aff9aac56074277173121";
+      };
+    }
+    {
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz";
+        sha1 = "6034b7b51943094cb41627848cb219cb02be1d24";
+      };
+    }
+    {
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz";
+        sha1 = "6442f4c1ad912502481a564a7386de0c77ff3804";
+      };
+    }
+    {
+      name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
+        sha1 = "dd6c538afb61819d205a012c31792a39c7a5eaf6";
       };
     }
     {
@@ -210,179 +250,203 @@
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
-        sha1 = "2c70576eaa3b5609b24cb99db2888cc3fc4251d1";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
-        sha1 = "f8a491244acf6a676158ac42072911ba83ad099f";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha1 = "d26cad8a47c65286b15df1547319a5d0bcf27288";
       };
     }
     {
-      name = "_babel_helper_validator_option___helper_validator_option_7.12.1.tgz";
+      name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_option___helper_validator_option_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz";
-        sha1 = "175567380c3e77d60ff98a54bb015fe78f2178d9";
+        name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha1 = "d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831";
       };
     }
     {
-      name = "_babel_helper_wrap_function___helper_wrap_function_7.10.4.tgz";
+      name = "_babel_helper_wrap_function___helper_wrap_function_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_wrap_function___helper_wrap_function_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
-        sha1 = "8a6f701eab0ff39f765b5a1cfef409990e624b87";
+        name = "_babel_helper_wrap_function___helper_wrap_function_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz";
+        sha1 = "bdb5c66fda8526ec235ab894ad53a1235c79fcc4";
       };
     }
     {
-      name = "_babel_helpers___helpers_7.12.5.tgz";
+      name = "_babel_helpers___helpers_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz";
-        sha1 = "1a1ba4a768d9b58310eda516c449913fe647116e";
+        name = "_babel_helpers___helpers_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz";
+        sha1 = "ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_highlight___highlight_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_highlight___highlight_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz";
+        sha1 = "8ab538393e00370b26271b01fa08f7f27f2e795c";
       };
     }
     {
-      name = "_babel_parser___parser_7.12.7.tgz";
+      name = "_babel_parser___parser_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz";
-        sha1 = "fee7b39fe809d0e73e5b25eecaf5780ef3d73056";
+        name = "_babel_parser___parser_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.0.tgz";
+        sha1 = "2f0ebfed92bcddcc8395b91f1895191ce2760380";
       };
     }
     {
-      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.12.1.tgz";
+      name = "_babel_plugin_bugfix_v8_spread_parameters_in_optional_chaining___plugin_bugfix_v8_spread_parameters_in_optional_chaining_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz";
-        sha1 = "dc6c1170e27d8aca99ff65f4925bd06b1c90550e";
+        name = "_babel_plugin_bugfix_v8_spread_parameters_in_optional_chaining___plugin_bugfix_v8_spread_parameters_in_optional_chaining_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz";
+        sha1 = "a3484d84d0b549f3fc916b99ee4783f26fabad2a";
       };
     }
     {
-      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.12.1.tgz";
+      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.13.15.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz";
-        sha1 = "a082ff541f2a29a4821065b8add9346c0c16e5de";
+        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.13.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz";
+        sha1 = "80e549df273a3b3050431b148c892491df1bcc5b";
       };
     }
     {
-      name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.12.1.tgz";
+      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz";
-        sha1 = "59271439fed4145456c41067450543aee332d15f";
+        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
+        sha1 = "146376000b94efd001e57a40a88a525afaab9f37";
       };
     }
     {
-      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.12.1.tgz";
+      name = "_babel_plugin_proposal_class_static_block___plugin_proposal_class_static_block_7.13.11.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz";
-        sha1 = "43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc";
+        name = "_babel_plugin_proposal_class_static_block___plugin_proposal_class_static_block_7.13.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz";
+        sha1 = "6fcbba4a962702c17e5371a0c7b39afde186d703";
       };
     }
     {
-      name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.1.tgz";
+      name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.13.15.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz";
-        sha1 = "8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4";
+        name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.13.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.13.15.tgz";
+        sha1 = "e91ccfef2dc24dd5bd5dcc9fc9e2557c684ecfb8";
       };
     }
     {
-      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.12.1.tgz";
+      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz";
-        sha1 = "d45423b517714eedd5621a9dfdc03fa9f4eb241c";
+        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz";
+        sha1 = "876a1f6966e1dec332e8c9451afda3bebcdf2e1d";
       };
     }
     {
-      name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.12.1.tgz";
+      name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz";
-        sha1 = "f2c490d36e1b3c9659241034a5d2cd50263a2751";
+        name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz";
+        sha1 = "393be47a4acd03fa2af6e3cde9b06e33de1b446d";
       };
     }
     {
-      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.12.1.tgz";
+      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz";
-        sha1 = "3ed4fff31c015e7f3f1467f190dbe545cd7b046c";
+        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz";
+        sha1 = "bf1fb362547075afda3634ed31571c5901afef7b";
       };
     }
     {
-      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.7.tgz";
+      name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz";
-        sha1 = "8bf253de8139099fea193b297d23a9d406ef056b";
+        name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz";
+        sha1 = "93fa78d63857c40ce3c8c3315220fd00bfbb4e1a";
       };
     }
     {
-      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.12.1.tgz";
+      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz";
-        sha1 = "def9bd03cea0f9b72283dac0ec22d289c7691069";
+        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz";
+        sha1 = "3730a31dafd3c10d8ccd10648ed80a2ac5472ef3";
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.12.1.tgz";
+      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz";
-        sha1 = "ccc2421af64d3aae50b558a71cede929a5ab2942";
+        name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz";
+        sha1 = "bd9da3188e787b5120b4f9d465a8261ce67ed1db";
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.12.7.tgz";
+      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz";
-        sha1 = "e02f0ea1b5dc59d401ec16fb824679f683d3303c";
+        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz";
+        sha1 = "5d210a4d727d6ce3b18f9de82cc99a3964eed60a";
       };
     }
     {
-      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.12.1.tgz";
+      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz";
-        sha1 = "86814f6e7a21374c980c10d38b4493e703f4a389";
+        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz";
+        sha1 = "3ad6bd5901506ea996fc31bdcf3ccfa2bed71107";
       };
     }
     {
-      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.1.tgz";
+      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz";
-        sha1 = "2a183958d417765b9eae334f47758e5d6a82e072";
+        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz";
+        sha1 = "ba9feb601d422e0adea6760c2bd6bbb7bfec4866";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz";
+        sha1 = "04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_private_property_in_object___plugin_proposal_private_property_in_object_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_private_property_in_object___plugin_proposal_private_property_in_object_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz";
+        sha1 = "b1a1f2030586b9d3489cc26179d2eb5883277636";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz";
+        sha1 = "bebde51339be829c17aaaaced18641deb62b39ba";
       };
     }
     {
@@ -402,19 +466,27 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.1.tgz";
+      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz";
+        sha1 = "b5c987274c4a3a82b89714796931a6b53544ae10";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_class_static_block___plugin_syntax_class_static_block_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz";
-        sha1 = "bcb297c5366e79bebadef509549cd93b04f19978";
+        name = "_babel_plugin_syntax_class_static_block___plugin_syntax_class_static_block_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz";
+        sha1 = "8e3d674b0613e67975ceac2776c97b60cafc5c9c";
       };
     }
     {
-      name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.1.tgz";
+      name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz";
-        sha1 = "81a8b535b284476c41be6de06853a8802b98c5dd";
+        name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz";
+        sha1 = "fac829bf3c7ef4a1bc916257b403e58c6bdaf648";
       };
     }
     {
@@ -450,11 +522,11 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.1.tgz";
+      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz";
-        sha1 = "9d9d357cc818aa7ae7935917c1257f67677a0926";
+        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz";
+        sha1 = "044fb81ebad6698fe62c478875575bcbb9b70f15";
       };
     }
     {
@@ -506,243 +578,235 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.1.tgz";
+      name = "_babel_plugin_syntax_private_property_in_object___plugin_syntax_private_property_in_object_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz";
-        sha1 = "dd6c0b357ac1bb142d98537450a319625d13d2a0";
+        name = "_babel_plugin_syntax_private_property_in_object___plugin_syntax_private_property_in_object_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz";
+        sha1 = "762a4babec61176fec6c88480dec40372b140c0b";
       };
     }
     {
-      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.12.1.tgz";
+      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz";
-        sha1 = "8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3";
+        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz";
+        sha1 = "c5f0fa6e249f5b739727f923540cf7a806130178";
       };
     }
     {
-      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.12.1.tgz";
+      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz";
-        sha1 = "3849a49cc2a22e9743cbd6b52926d30337229af1";
+        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz";
+        sha1 = "10a59bebad52d637a027afa692e8d5ceff5e3dae";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.1.tgz";
+      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz";
-        sha1 = "f2a1a365bde2b7112e0a6ded9067fdd7c07905d9";
+        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz";
+        sha1 = "8e112bf6771b82bf1e974e5e26806c5c99aa516f";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.12.1.tgz";
+      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz";
-        sha1 = "f0ee727874b42a208a48a586b84c3d222c2bbef1";
+        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz";
+        sha1 = "a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4";
       };
     }
     {
-      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.12.1.tgz";
+      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz";
-        sha1 = "65e650fcaddd3d88ddce67c0f834a3d436a32db6";
+        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz";
+        sha1 = "ac1b3a8e3d8cbb31efc6b9be2f74eb9823b74ab2";
       };
     }
     {
-      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.12.1.tgz";
+      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz";
-        sha1 = "d68cf6c9b7f838a8a4144badbe97541ea0904852";
+        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz";
+        sha1 = "0265155075c42918bf4d3a4053134176ad9b533b";
       };
     }
     {
-      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.12.1.tgz";
+      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz";
-        sha1 = "b9a570fe0d0a8d460116413cb4f97e8e08b2f847";
+        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz";
+        sha1 = "845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed";
       };
     }
     {
-      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.1.tgz";
+      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.13.17.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz";
-        sha1 = "a1d16c14862817b6409c0a678d6f9373ca9cd975";
+        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.13.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz";
+        sha1 = "678d96576638c19d5b36b332504d3fd6e06dea27";
       };
     }
     {
-      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.1.tgz";
+      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz";
-        sha1 = "745661baba295ac06e686822797a69fbaa2ca228";
+        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz";
+        sha1 = "3f1601cc29905bfcb67f53910f197aeafebb25ad";
       };
     }
     {
-      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.1.tgz";
+      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz";
-        sha1 = "b0f2ed356ba1be1428ecaf128ff8a24f02830ae0";
+        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz";
+        sha1 = "6f06b87a8b803fd928e54b81c258f0a0033904de";
       };
     }
     {
-      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.12.1.tgz";
+      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz";
-        sha1 = "07640f28867ed16f9511c99c888291f560921cfa";
+        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz";
+        sha1 = "4d52390b9a273e651e4aba6aee49ef40e80cd0a1";
       };
     }
     {
-      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.1.tgz";
+      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz";
-        sha1 = "2ec76258c70fe08c6d7da154003a480620eba667";
+        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz";
+        sha1 = "c799f881a8091ac26b54867a845c3e97d2696062";
       };
     }
     {
-      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz";
-        sha1 = "d73b803a26b37017ddf9d3bb8f4dc58bfb806f57";
+        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz";
+        sha1 = "bb024452f9aaed861d374c8e7a24252ce3a50051";
       };
     }
     {
-      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz";
-        sha1 = "496038602daf1514a64d43d8e17cbb2755e0c3ad";
+        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz";
+        sha1 = "2ca45bafe4a820197cf315794a4d26560fe4bdb9";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.12.1.tgz";
+      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz";
-        sha1 = "3154300b026185666eebb0c0ed7f8415fefcf6f9";
+        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz";
+        sha1 = "5ffa66cd59b9e191314c9f1f803b938e8c081e40";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz";
-        sha1 = "fa403124542636c786cf9b460a0ffbb48a86e648";
+        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz";
+        sha1 = "589494b5b290ff76cf7f59c798011f6d77026553";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz";
-        sha1 = "663fea620d593c93f214a464cd399bf6dc683086";
+        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz";
+        sha1 = "52bc199cb581e0992edba0f0f80356467587f161";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz";
-        sha1 = "eb5a218d6b1c68f3d6217b8fa2cc82fec6547902";
+        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz";
+        sha1 = "6d066ee2bff3c7b3d60bf28dec169ad993831ae3";
       };
     }
     {
-      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz";
-        sha1 = "b407f5c96be0d9f5f88467497fa82b30ac3e8753";
+        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz";
+        sha1 = "2f8179d1bbc9263665ce4a65f305526b2ea8ac34";
       };
     }
     {
-      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.1.tgz";
+      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz";
-        sha1 = "80073f02ee1bb2d365c3416490e085c95759dec0";
+        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz";
+        sha1 = "2213725a5f5bbbe364b50c3ba5998c9599c5c9d9";
       };
     }
     {
-      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.1.tgz";
+      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz";
-        sha1 = "4ea08696b8d2e65841d0c7706482b048bed1066e";
+        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz";
+        sha1 = "e22d8c3af24b150dd528cbd6e685e799bf1c351c";
       };
     }
     {
-      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.12.1.tgz";
+      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz";
-        sha1 = "d2e963b038771650c922eff593799c96d853255d";
+        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz";
+        sha1 = "b4416a2d63b8f7be314f3d349bd55a9c1b5171f7";
       };
     }
     {
-      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz";
-        sha1 = "41bc81200d730abb4456ab8b3fbd5537b59adecd";
+        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz";
+        sha1 = "8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007";
       };
     }
     {
-      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.1.tgz";
+      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz";
-        sha1 = "1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d";
+        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz";
+        sha1 = "4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81";
       };
     }
     {
-      name = "_babel_plugin_transform_react_inline_elements___plugin_transform_react_inline_elements_7.12.1.tgz";
+      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_inline_elements___plugin_transform_react_inline_elements_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.12.1.tgz";
-        sha1 = "f7d507200923adbbdacb107feec7ad09cefae631";
+        name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz";
+        sha1 = "c28effd771b276f4647411c9733dbb2d2da954bd";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.7.tgz";
+      name = "_babel_plugin_transform_react_inline_elements___plugin_transform_react_inline_elements_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.7.tgz";
-        sha1 = "4c2a647de79c7e2b16bfe4540677ba3121e82a08";
+        name = "_babel_plugin_transform_react_inline_elements___plugin_transform_react_inline_elements_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.12.13.tgz";
+        sha1 = "0a9e1496e51c9e9cf8751165a23c79bd753dba7d";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.12.1.tgz";
+      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.17.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz";
-        sha1 = "ef43cbca2a14f1bd17807dbe4376ff89d714cf28";
+        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz";
+        sha1 = "f510c0fa7cd7234153539f9a362ced41a5ca1447";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.12.1.tgz";
+      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz";
-        sha1 = "d07de6863f468da0809edcf79a1aa8ce2a82a26b";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.12.7.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.7.tgz";
-        sha1 = "8b14d45f6eccd41b7f924bcb65c021e9f0a06f7f";
+        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz";
+        sha1 = "1df5dfaf0f4b784b43e96da6f28d630e775f68b3";
       };
     }
     {
@@ -754,107 +818,107 @@
       };
     }
     {
-      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.12.1.tgz";
+      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.13.15.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz";
-        sha1 = "5f0a28d842f6462281f06a964e88ba8d7ab49753";
+        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.13.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz";
+        sha1 = "e5eb28945bf8b6563e7f818945f966a8d2997f39";
       };
     }
     {
-      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.1.tgz";
+      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz";
-        sha1 = "6fdfc8cc7edcc42b36a7c12188c6787c873adcd8";
+        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz";
+        sha1 = "7d9988d4f06e0fe697ea1d9803188aa18b472695";
       };
     }
     {
-      name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.12.1.tgz";
+      name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.13.15.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz";
-        sha1 = "04b792057eb460389ff6a4198e377614ea1e7ba5";
+        name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.13.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz";
+        sha1 = "2eddf585dd066b84102517e10a577f24f76a9cd7";
       };
     }
     {
-      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.1.tgz";
+      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz";
-        sha1 = "0bf9cac5550fce0cfdf043420f661d645fdc75e3";
+        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz";
+        sha1 = "db755732b70c539d504c6390d9ce90fe64aff7ad";
       };
     }
     {
-      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.12.1.tgz";
+      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz";
-        sha1 = "527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e";
+        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz";
+        sha1 = "84887710e273c1815ace7ae459f6f42a5d31d5fd";
       };
     }
     {
-      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.7.tgz";
+      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz";
-        sha1 = "560224613ab23987453948ed21d0b0b193fa7fad";
+        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz";
+        sha1 = "760ffd936face73f860ae646fb86ee82f3d06d1f";
       };
     }
     {
-      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz";
-        sha1 = "b43ece6ed9a79c0c71119f576d299ef09d942843";
+        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz";
+        sha1 = "a36049127977ad94438dee7443598d1cefdf409d";
       };
     }
     {
-      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.1.tgz";
+      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz";
-        sha1 = "9ca6be343d42512fbc2e68236a82ae64bc7af78a";
+        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz";
+        sha1 = "785dd67a1f2ea579d9c2be722de8c84cb85f5a7f";
       };
     }
     {
-      name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.1.tgz";
+      name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz";
-        sha1 = "5232b9f81ccb07070b7c3c36c67a1b78f1845709";
+        name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz";
+        sha1 = "840ced3b816d3b5127dd1d12dcedc5dead1a5e74";
       };
     }
     {
-      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.1.tgz";
+      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz";
-        sha1 = "cc9661f61390db5c65e3febaccefd5c6ac3faecb";
+        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz";
+        sha1 = "b52521685804e155b1202e83fc188d34bb70f5ac";
       };
     }
     {
-      name = "_babel_preset_env___preset_env_7.12.7.tgz";
+      name = "_babel_preset_env___preset_env_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_preset_env___preset_env_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.7.tgz";
-        sha1 = "54ea21dbe92caf6f10cb1a0a576adc4ebf094b55";
+        name = "_babel_preset_env___preset_env_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.1.tgz";
+        sha1 = "b55914e2e68885ea03f69600b2d3537e54574a93";
       };
     }
     {
-      name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
+      name = "_babel_preset_modules___preset_modules_0.1.4.tgz";
       path = fetchurl {
-        name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
-        sha1 = "13242b53b5ef8c883c3cf7dddd55b36ce80fbc72";
+        name = "_babel_preset_modules___preset_modules_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha1 = "362f2b68c662842970fdb5e254ffc8fc1c2e415e";
       };
     }
     {
-      name = "_babel_preset_react___preset_react_7.12.7.tgz";
+      name = "_babel_preset_react___preset_react_7.13.13.tgz";
       path = fetchurl {
-        name = "_babel_preset_react___preset_react_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.7.tgz";
-        sha1 = "36d61d83223b07b6ac4ec55cf016abb0f70be83b";
+        name = "_babel_preset_react___preset_react_7.13.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz";
+        sha1 = "fa6895a96c50763fe693f9148568458d5a839761";
       };
     }
     {
@@ -874,35 +938,35 @@
       };
     }
     {
-      name = "_babel_runtime___runtime_7.12.5.tgz";
+      name = "_babel_runtime___runtime_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_runtime___runtime_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz";
-        sha1 = "410e7e487441e1b360c29be715d870d9b985882e";
+        name = "_babel_runtime___runtime_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz";
+        sha1 = "46794bc20b612c5f75e62dd071e24dfd95f1cbe6";
       };
     }
     {
-      name = "_babel_template___template_7.12.7.tgz";
+      name = "_babel_template___template_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz";
-        sha1 = "c817233696018e39fbb6c491d2fb684e05ed43bc";
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.12.7.tgz";
+      name = "_babel_traverse___traverse_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.7.tgz";
-        sha1 = "572a722408681cef17d6b0bef69ef2e728ca69f1";
+        name = "_babel_traverse___traverse_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz";
+        sha1 = "cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef";
       };
     }
     {
-      name = "_babel_types___types_7.12.7.tgz";
+      name = "_babel_types___types_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.12.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz";
-        sha1 = "6039ff1e242640a29452c9ae572162ec9a8f5d13";
+        name = "_babel_types___types_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.14.1.tgz";
+        sha1 = "095bd12f1c08ab63eff6e8f7745fa7c9cc15a9db";
       };
     }
     {
@@ -914,14 +978,6 @@
       };
     }
     {
-      name = "_clusterws_cws___cws_3.0.0.tgz";
-      path = fetchurl {
-        name = "_clusterws_cws___cws_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@clusterws/cws/-/cws-3.0.0.tgz";
-        sha1 = "518fc8e7d9066e220f6f6aef3158cc14d5a1e98e";
-      };
-    }
-    {
       name = "_cnakazawa_watch___watch_1.0.4.tgz";
       path = fetchurl {
         name = "_cnakazawa_watch___watch_1.0.4.tgz";
@@ -930,27 +986,11 @@
       };
     }
     {
-      name = "_emotion_cache___cache_10.0.19.tgz";
-      path = fetchurl {
-        name = "_emotion_cache___cache_10.0.19.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.19.tgz";
-        sha1 = "d258d94d9c707dcadaf1558def968b86bb87ad71";
-      };
-    }
-    {
-      name = "_emotion_core___core_10.0.17.tgz";
-      path = fetchurl {
-        name = "_emotion_core___core_10.0.17.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.17.tgz";
-        sha1 = "3367376709721f4ee2068cff54ba581d362789d8";
-      };
-    }
-    {
-      name = "_emotion_css___css_10.0.14.tgz";
+      name = "_emotion_cache___cache_11.1.3.tgz";
       path = fetchurl {
-        name = "_emotion_css___css_10.0.14.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.14.tgz";
-        sha1 = "95dacabdd0e22845d1a1b0b5968d9afa34011139";
+        name = "_emotion_cache___cache_11.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.1.3.tgz";
+        sha1 = "c7683a9484bcd38d5562f2b9947873cf66829afd";
       };
     }
     {
@@ -962,35 +1002,35 @@
       };
     }
     {
-      name = "_emotion_memoize___memoize_0.7.4.tgz";
+      name = "_emotion_memoize___memoize_0.7.5.tgz";
       path = fetchurl {
-        name = "_emotion_memoize___memoize_0.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz";
-        sha1 = "19bf0f5af19149111c40d98bb0cf82119f5d9eeb";
+        name = "_emotion_memoize___memoize_0.7.5.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz";
+        sha1 = "2c40f81449a4e554e9fc6396910ed4843ec2be50";
       };
     }
     {
-      name = "_emotion_serialize___serialize_0.11.16.tgz";
+      name = "_emotion_react___react_11.1.4.tgz";
       path = fetchurl {
-        name = "_emotion_serialize___serialize_0.11.16.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz";
-        sha1 = "dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad";
+        name = "_emotion_react___react_11.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/react/-/react-11.1.4.tgz";
+        sha1 = "ddee4247627ff7dd7d0c6ae52f1cfd6b420357d2";
       };
     }
     {
-      name = "_emotion_sheet___sheet_0.9.3.tgz";
+      name = "_emotion_serialize___serialize_1.0.0.tgz";
       path = fetchurl {
-        name = "_emotion_sheet___sheet_0.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.3.tgz";
-        sha1 = "689f135ecf87d3c650ed0c4f5ddcbe579883564a";
+        name = "_emotion_serialize___serialize_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.0.tgz";
+        sha1 = "1a61f4f037cf39995c97fc80ebe99abc7b191ca9";
       };
     }
     {
-      name = "_emotion_stylis___stylis_0.8.4.tgz";
+      name = "_emotion_sheet___sheet_1.0.1.tgz";
       path = fetchurl {
-        name = "_emotion_stylis___stylis_0.8.4.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.4.tgz";
-        sha1 = "6c51afdf1dd0d73666ba09d2eb6c25c220d6fe4c";
+        name = "_emotion_sheet___sheet_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.1.tgz";
+        sha1 = "245f54abb02dfd82326e28689f34c27aa9b2a698";
       };
     }
     {
@@ -1002,35 +1042,27 @@
       };
     }
     {
-      name = "_emotion_utils___utils_0.11.2.tgz";
-      path = fetchurl {
-        name = "_emotion_utils___utils_0.11.2.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.2.tgz";
-        sha1 = "713056bfdffb396b0a14f1c8f18e7b4d0d200183";
-      };
-    }
-    {
-      name = "_emotion_utils___utils_0.11.3.tgz";
+      name = "_emotion_utils___utils_1.0.0.tgz";
       path = fetchurl {
-        name = "_emotion_utils___utils_0.11.3.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz";
-        sha1 = "a759863867befa7e583400d322652a3f44820924";
+        name = "_emotion_utils___utils_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz";
+        sha1 = "abe06a83160b10570816c913990245813a2fd6af";
       };
     }
     {
-      name = "_emotion_weak_memoize___weak_memoize_0.2.4.tgz";
+      name = "_emotion_weak_memoize___weak_memoize_0.2.5.tgz";
       path = fetchurl {
-        name = "_emotion_weak_memoize___weak_memoize_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz";
-        sha1 = "622a72bebd1e3f48d921563b4b60a762295a81fc";
+        name = "_emotion_weak_memoize___weak_memoize_0.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz";
+        sha1 = "8eed982e2ee6f7f4e44c253e12962980791efd46";
       };
     }
     {
-      name = "_eslint_eslintrc___eslintrc_0.2.1.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
       path = fetchurl {
-        name = "_eslint_eslintrc___eslintrc_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz";
-        sha1 = "f72069c330461a06684d119384435e12a5d76e3c";
+        name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz";
+        sha1 = "442763b88cecbe3ee0ec7ca6d6dd6168550cbf14";
       };
     }
     {
@@ -1186,11 +1218,19 @@
       };
     }
     {
-      name = "_rails_ujs___ujs_6.0.3.tgz";
+      name = "_polka_url___url_1.0.0_next.11.tgz";
       path = fetchurl {
-        name = "_rails_ujs___ujs_6.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.3.tgz";
-        sha1 = "e68a03278e30daea6a110aac5dfa33c60c53055d";
+        name = "_polka_url___url_1.0.0_next.11.tgz";
+        url  = "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz";
+        sha1 = "aeb16f50649a91af79dbe36574b66d0f9e4d9f71";
+      };
+    }
+    {
+      name = "_rails_ujs___ujs_6.1.3.tgz";
+      path = fetchurl {
+        name = "_rails_ujs___ujs_6.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.3.tgz";
+        sha1 = "90ef26caa0925492b1a3b1495db09cfbe49e745e";
       };
     }
     {
@@ -1218,19 +1258,19 @@
       };
     }
     {
-      name = "_testing_library_jest_dom___jest_dom_5.11.6.tgz";
+      name = "_testing_library_jest_dom___jest_dom_5.12.0.tgz";
       path = fetchurl {
-        name = "_testing_library_jest_dom___jest_dom_5.11.6.tgz";
-        url  = "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.6.tgz";
-        sha1 = "782940e82e5cd17bc0a36f15156ba16f3570ac81";
+        name = "_testing_library_jest_dom___jest_dom_5.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.12.0.tgz";
+        sha1 = "6a5d340b092c44b7bce17a4791b47d9bc2c61443";
       };
     }
     {
-      name = "_testing_library_react___react_11.2.2.tgz";
+      name = "_testing_library_react___react_11.2.6.tgz";
       path = fetchurl {
-        name = "_testing_library_react___react_11.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.2.tgz";
-        sha1 = "099c6c195140ff069211143cb31c0f8337bdb7b7";
+        name = "_testing_library_react___react_11.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.6.tgz";
+        sha1 = "586a23adc63615985d85be0c903f374dab19200b";
       };
     }
     {
@@ -1314,6 +1354,14 @@
       };
     }
     {
+      name = "_types_hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
+      path = fetchurl {
+        name = "_types_hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz";
+        sha1 = "1124aafe5118cb591977aeb1ceaaed1070eb039f";
+      };
+    }
+    {
       name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
       path = fetchurl {
         name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
@@ -1410,6 +1458,14 @@
       };
     }
     {
+      name = "_types_prop_types___prop_types_15.7.3.tgz";
+      path = fetchurl {
+        name = "_types_prop_types___prop_types_15.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz";
+        sha1 = "2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7";
+      };
+    }
+    {
       name = "_types_q___q_1.5.2.tgz";
       path = fetchurl {
         name = "_types_q___q_1.5.2.tgz";
@@ -1418,6 +1474,30 @@
       };
     }
     {
+      name = "_types_react_redux___react_redux_7.1.16.tgz";
+      path = fetchurl {
+        name = "_types_react_redux___react_redux_7.1.16.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.16.tgz";
+        sha1 = "0fbd04c2500c12105494c83d4a3e45c084e3cb21";
+      };
+    }
+    {
+      name = "_types_react___react_17.0.3.tgz";
+      path = fetchurl {
+        name = "_types_react___react_17.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react/-/react-17.0.3.tgz";
+        sha1 = "ba6e215368501ac3826951eef2904574c262cc79";
+      };
+    }
+    {
+      name = "_types_scheduler___scheduler_0.16.1.tgz";
+      path = fetchurl {
+        name = "_types_scheduler___scheduler_0.16.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz";
+        sha1 = "18845205e86ff0038517aab7a18a62a6b9f71275";
+      };
+    }
+    {
       name = "_types_schema_utils___schema_utils_1.0.0.tgz";
       path = fetchurl {
         name = "_types_schema_utils___schema_utils_1.0.0.tgz";
@@ -1650,11 +1730,11 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
-        sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
       };
     }
     {
@@ -1906,6 +1986,14 @@
       };
     }
     {
+      name = "argparse___argparse_2.0.1.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
+        sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
+      };
+    }
+    {
       name = "aria_query___aria_query_4.2.2.tgz";
       path = fetchurl {
         name = "aria_query___aria_query_4.2.2.tgz";
@@ -1954,11 +2042,11 @@
       };
     }
     {
-      name = "array_includes___array_includes_3.1.1.tgz";
+      name = "array_includes___array_includes_3.1.3.tgz";
       path = fetchurl {
-        name = "array_includes___array_includes_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
-        sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
+        name = "array_includes___array_includes_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz";
+        sha1 = "c7f619b382ad2afaf5326cddfdc0afc61af7690a";
       };
     }
     {
@@ -1994,11 +2082,11 @@
       };
     }
     {
-      name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+      name = "array.prototype.flatmap___array.prototype.flatmap_1.2.4.tgz";
       path = fetchurl {
-        name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz";
-        sha1 = "1c13f84a178566042dd63de4414440db9222e443";
+        name = "array.prototype.flatmap___array.prototype.flatmap_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz";
+        sha1 = "94cfd47cc1556ec0747d97f7c7738c58122004c9";
       };
     }
     {
@@ -2058,11 +2146,11 @@
       };
     }
     {
-      name = "astral_regex___astral_regex_1.0.0.tgz";
+      name = "astral_regex___astral_regex_2.0.0.tgz";
       path = fetchurl {
-        name = "astral_regex___astral_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
       };
     }
     {
@@ -2082,14 +2170,6 @@
       };
     }
     {
-      name = "async___async_0.9.2.tgz";
-      path = fetchurl {
-        name = "async___async_0.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
-        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
-      };
-    }
-    {
       name = "async___async_2.6.3.tgz";
       path = fetchurl {
         name = "async___async_2.6.3.tgz";
@@ -2146,11 +2226,11 @@
       };
     }
     {
-      name = "axios___axios_0.21.0.tgz";
+      name = "axios___axios_0.21.1.tgz";
       path = fetchurl {
-        name = "axios___axios_0.21.0.tgz";
-        url  = "https://registry.yarnpkg.com/axios/-/axios-0.21.0.tgz";
-        sha1 = "26df088803a2350dff2c27f96fef99fe49442aca";
+        name = "axios___axios_0.21.1.tgz";
+        url  = "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz";
+        sha1 = "22563481962f4d6bde9a76d516ef0e5d3c09b2b8";
       };
     }
     {
@@ -2178,11 +2258,11 @@
       };
     }
     {
-      name = "babel_loader___babel_loader_8.2.1.tgz";
+      name = "babel_loader___babel_loader_8.2.2.tgz";
       path = fetchurl {
-        name = "babel_loader___babel_loader_8.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.1.tgz";
-        sha1 = "e53313254677e86f27536f5071d807e01d24ec00";
+        name = "babel_loader___babel_loader_8.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz";
+        sha1 = "9363ce84c10c9a40e6c753748e1441b60c8a0b81";
       };
     }
     {
@@ -2194,14 +2274,6 @@
       };
     }
     {
-      name = "babel_plugin_emotion___babel_plugin_emotion_10.0.33.tgz";
-      path = fetchurl {
-        name = "babel_plugin_emotion___babel_plugin_emotion_10.0.33.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz";
-        sha1 = "ce1155dcd1783bbb9286051efee53f4e2be63e03";
-      };
-    }
-    {
       name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz";
       path = fetchurl {
         name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz";
@@ -2234,6 +2306,30 @@
       };
     }
     {
+      name = "babel_plugin_polyfill_corejs2___babel_plugin_polyfill_corejs2_0.2.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_corejs2___babel_plugin_polyfill_corejs2_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz";
+        sha1 = "686775bf9a5aa757e10520903675e3889caeedc4";
+      };
+    }
+    {
+      name = "babel_plugin_polyfill_corejs3___babel_plugin_polyfill_corejs3_0.2.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_corejs3___babel_plugin_polyfill_corejs3_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz";
+        sha1 = "f4b4bb7b19329827df36ff56f6e6d367026cb7a2";
+      };
+    }
+    {
+      name = "babel_plugin_polyfill_regenerator___babel_plugin_polyfill_regenerator_0.2.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_regenerator___babel_plugin_polyfill_regenerator_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz";
+        sha1 = "853f5f5716f4691d98c84f8069c7636ea8da7ab8";
+      };
+    }
+    {
       name = "babel_plugin_preval___babel_plugin_preval_5.0.0.tgz";
       path = fetchurl {
         name = "babel_plugin_preval___babel_plugin_preval_5.0.0.tgz";
@@ -2250,14 +2346,6 @@
       };
     }
     {
-      name = "babel_plugin_syntax_jsx___babel_plugin_syntax_jsx_6.18.0.tgz";
-      path = fetchurl {
-        name = "babel_plugin_syntax_jsx___babel_plugin_syntax_jsx_6.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz";
-        sha1 = "0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946";
-      };
-    }
-    {
       name = "babel_plugin_transform_react_remove_prop_types___babel_plugin_transform_react_remove_prop_types_0.4.24.tgz";
       path = fetchurl {
         name = "babel_plugin_transform_react_remove_prop_types___babel_plugin_transform_react_remove_prop_types_0.4.24.tgz";
@@ -2394,11 +2482,11 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.9.tgz";
+      name = "bn.js___bn.js_4.12.0.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.9.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
-        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
+        name = "bn.js___bn.js_4.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz";
+        sha1 = "775b3f278efbb9718eec7361f483fb36fbbfea88";
       };
     }
     {
@@ -2546,6 +2634,14 @@
       };
     }
     {
+      name = "browserslist___browserslist_4.16.3.tgz";
+      path = fetchurl {
+        name = "browserslist___browserslist_4.16.3.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz";
+        sha1 = "340aa46940d7db878748567c5dea24a48ddf3717";
+      };
+    }
+    {
       name = "bser___bser_2.1.1.tgz";
       path = fetchurl {
         name = "bser___bser_2.1.1.tgz";
@@ -2570,11 +2666,11 @@
       };
     }
     {
-      name = "buffer_writer___buffer_writer_1.0.1.tgz";
+      name = "buffer_writer___buffer_writer_2.0.0.tgz";
       path = fetchurl {
-        name = "buffer_writer___buffer_writer_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-1.0.1.tgz";
-        sha1 = "22a936901e3029afcd7547eb4487ceb697a3bf08";
+        name = "buffer_writer___buffer_writer_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha1 = "ce7eb81a38f7829db09c873f2fbb792c0c98ec04";
       };
     }
     {
@@ -2594,6 +2690,14 @@
       };
     }
     {
+      name = "bufferutil___bufferutil_4.0.3.tgz";
+      path = fetchurl {
+        name = "bufferutil___bufferutil_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.3.tgz";
+        sha1 = "66724b756bed23cd7c28c4d306d7994f9943cc6b";
+      };
+    }
+    {
       name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
       path = fetchurl {
         name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
@@ -2642,6 +2746,14 @@
       };
     }
     {
+      name = "call_bind___call_bind_1.0.2.tgz";
+      path = fetchurl {
+        name = "call_bind___call_bind_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
+        sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
+      };
+    }
+    {
       name = "caller_callsite___caller_callsite_2.0.0.tgz";
       path = fetchurl {
         name = "caller_callsite___caller_callsite_2.0.0.tgz";
@@ -2730,6 +2842,14 @@
       };
     }
     {
+      name = "caniuse_lite___caniuse_lite_1.0.30001191.tgz";
+      path = fetchurl {
+        name = "caniuse_lite___caniuse_lite_1.0.30001191.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz";
+        sha1 = "bacb432b6701f690c8c5f7c680166b9a9f0843d9";
+      };
+    }
+    {
       name = "capture_exit___capture_exit_2.0.0.tgz";
       path = fetchurl {
         name = "capture_exit___capture_exit_2.0.0.tgz";
@@ -2786,11 +2906,11 @@
       };
     }
     {
-      name = "chokidar___chokidar_3.4.1.tgz";
+      name = "chokidar___chokidar_3.5.1.tgz";
       path = fetchurl {
-        name = "chokidar___chokidar_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz";
-        sha1 = "e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1";
+        name = "chokidar___chokidar_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz";
+        sha1 = "ee9ce7bbebd2b79f49f304799d5468e31e14e68a";
       };
     }
     {
@@ -2866,11 +2986,11 @@
       };
     }
     {
-      name = "classnames___classnames_2.2.6.tgz";
+      name = "classnames___classnames_2.3.1.tgz";
       path = fetchurl {
-        name = "classnames___classnames_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz";
-        sha1 = "43935bffdd291f326dad0a205309b38d00f650ce";
+        name = "classnames___classnames_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz";
+        sha1 = "dfcfa3891e306ec1dad105d0e88f4417b8535e8e";
       };
     }
     {
@@ -2970,11 +3090,11 @@
       };
     }
     {
-      name = "color_blend___color_blend_3.0.0.tgz";
+      name = "color_blend___color_blend_3.0.1.tgz";
       path = fetchurl {
-        name = "color_blend___color_blend_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/color-blend/-/color-blend-3.0.0.tgz";
-        sha1 = "077073ee59ebce15e084f00590c5bf7577899cb5";
+        name = "color_blend___color_blend_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/color-blend/-/color-blend-3.0.1.tgz";
+        sha1 = "3882ed1190ca18760ffe11570d8537960171172b";
       };
     }
     {
@@ -3034,6 +3154,14 @@
       };
     }
     {
+      name = "colorette___colorette_1.2.2.tgz";
+      path = fetchurl {
+        name = "colorette___colorette_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
+        sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
+      };
+    }
+    {
       name = "combined_stream___combined_stream_1.0.8.tgz";
       path = fetchurl {
         name = "combined_stream___combined_stream_1.0.8.tgz";
@@ -3210,11 +3338,11 @@
       };
     }
     {
-      name = "core_js_compat___core_js_compat_3.7.0.tgz";
+      name = "core_js_compat___core_js_compat_3.10.1.tgz";
       path = fetchurl {
-        name = "core_js_compat___core_js_compat_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.7.0.tgz";
-        sha1 = "8479c5d3d672d83f1f5ab94cf353e57113e065ed";
+        name = "core_js_compat___core_js_compat_3.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.10.1.tgz";
+        sha1 = "62183a3a77ceeffcc420d907a3e6fc67d9b27f1c";
       };
     }
     {
@@ -3234,6 +3362,14 @@
       };
     }
     {
+      name = "core_js___core_js_2.6.12.tgz";
+      path = fetchurl {
+        name = "core_js___core_js_2.6.12.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz";
+        sha1 = "d9333dfa7b065e347cc5682219d6f690859cc2ec";
+      };
+    }
+    {
       name = "core_util_is___core_util_is_1.0.2.tgz";
       path = fetchurl {
         name = "core_util_is___core_util_is_1.0.2.tgz";
@@ -3282,11 +3418,11 @@
       };
     }
     {
-      name = "cross_env___cross_env_7.0.2.tgz";
+      name = "cross_env___cross_env_7.0.3.tgz";
       path = fetchurl {
-        name = "cross_env___cross_env_7.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz";
-        sha1 = "bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9";
+        name = "cross_env___cross_env_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz";
+        sha1 = "865264b29677dc015ba8418918965dd232fc54cf";
       };
     }
     {
@@ -3378,11 +3514,11 @@
       };
     }
     {
-      name = "css_loader___css_loader_5.0.1.tgz";
+      name = "css_loader___css_loader_5.2.4.tgz";
       path = fetchurl {
-        name = "css_loader___css_loader_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz";
-        sha1 = "9e4de0d6636a6266a585bd0900b422c85539d25f";
+        name = "css_loader___css_loader_5.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz";
+        sha1 = "e985dcbce339812cb6104ef3670f08f9893a1536";
       };
     }
     {
@@ -3458,11 +3594,11 @@
       };
     }
     {
-      name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
+      name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
       path = fetchurl {
-        name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha1 = "51ec662ccfca0f88b396dcd9679cdb931be17f76";
+        name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz";
+        sha1 = "920622b1fc1e95a34e8838203f1397a504f2d3ff";
       };
     }
     {
@@ -3498,11 +3634,11 @@
       };
     }
     {
-      name = "cssnano___cssnano_4.1.10.tgz";
+      name = "cssnano___cssnano_4.1.11.tgz";
       path = fetchurl {
-        name = "cssnano___cssnano_4.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz";
-        sha1 = "0ac41f0b13d13d465487e111b778d42da631b8b2";
+        name = "cssnano___cssnano_4.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz";
+        sha1 = "c7b5f5b81da269cb1fd982cb960c1200910c9a99";
       };
     }
     {
@@ -3546,6 +3682,14 @@
       };
     }
     {
+      name = "csstype___csstype_3.0.6.tgz";
+      path = fetchurl {
+        name = "csstype___csstype_3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz";
+        sha1 = "865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef";
+      };
+    }
+    {
       name = "cyclist___cyclist_1.0.1.tgz";
       path = fetchurl {
         name = "cyclist___cyclist_1.0.1.tgz";
@@ -3594,11 +3738,11 @@
       };
     }
     {
-      name = "debug___debug_3.2.6.tgz";
+      name = "debug___debug_3.2.7.tgz";
       path = fetchurl {
-        name = "debug___debug_3.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
-        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+        name = "debug___debug_3.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
+        sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
       };
     }
     {
@@ -3730,11 +3874,11 @@
       };
     }
     {
-      name = "denque___denque_1.4.1.tgz";
+      name = "denque___denque_1.5.0.tgz";
       path = fetchurl {
-        name = "denque___denque_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz";
-        sha1 = "6744ff7641c148c3f8a69c307e51235c1f4a37cf";
+        name = "denque___denque_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz";
+        sha1 = "773de0686ff2d8ec2ff92914316a47b73b1c73de";
       };
     }
     {
@@ -3770,6 +3914,14 @@
       };
     }
     {
+      name = "detect_it___detect_it_4.0.1.tgz";
+      path = fetchurl {
+        name = "detect_it___detect_it_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/detect-it/-/detect-it-4.0.1.tgz";
+        sha1 = "3f8de6b8330f5086270571251bedf10aec049e18";
+      };
+    }
+    {
       name = "detect_newline___detect_newline_3.1.0.tgz";
       path = fetchurl {
         name = "detect_newline___detect_newline_3.1.0.tgz";
@@ -3786,11 +3938,11 @@
       };
     }
     {
-      name = "detect_passive_events___detect_passive_events_2.0.1.tgz";
+      name = "detect_passive_events___detect_passive_events_2.0.3.tgz";
       path = fetchurl {
-        name = "detect_passive_events___detect_passive_events_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-2.0.1.tgz";
-        sha1 = "fdbd6f6dd5e6ac10c6189a4cb26ab264d41c0835";
+        name = "detect_passive_events___detect_passive_events_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-2.0.3.tgz";
+        sha1 = "1f75ebf80660a66c615d8be23c3241cdda6977e0";
       };
     }
     {
@@ -3946,11 +4098,11 @@
       };
     }
     {
-      name = "dotenv___dotenv_8.2.0.tgz";
+      name = "dotenv___dotenv_9.0.1.tgz";
       path = fetchurl {
-        name = "dotenv___dotenv_8.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz";
-        sha1 = "97e619259ada750eea3e4ea3e26bceea5424b16a";
+        name = "dotenv___dotenv_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.1.tgz";
+        sha1 = "a889a28a3a515812dde1e7f8183ef5cdf3186b97";
       };
     }
     {
@@ -3994,14 +4146,6 @@
       };
     }
     {
-      name = "ejs___ejs_3.1.5.tgz";
-      path = fetchurl {
-        name = "ejs___ejs_3.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz";
-        sha1 = "aed723844dc20acb4b170cd9ab1017e476a0d93b";
-      };
-    }
-    {
       name = "electron_to_chromium___electron_to_chromium_1.3.574.tgz";
       path = fetchurl {
         name = "electron_to_chromium___electron_to_chromium_1.3.574.tgz";
@@ -4018,11 +4162,19 @@
       };
     }
     {
-      name = "elliptic___elliptic_6.5.3.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.672.tgz";
+      path = fetchurl {
+        name = "electron_to_chromium___electron_to_chromium_1.3.672.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.672.tgz";
+        sha1 = "3a6e335016dab4bc584d5292adc4f98f54541f6a";
+      };
+    }
+    {
+      name = "elliptic___elliptic_6.5.4.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
-        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
       };
     }
     {
@@ -4098,11 +4250,11 @@
       };
     }
     {
-      name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
+      name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
       path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
-        sha1 = "3b806f3bfafc1ec7de69551ef93cca46c1704126";
+        name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz";
+        sha1 = "2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec";
       };
     }
     {
@@ -4154,11 +4306,11 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.18.0_next.1.tgz";
+      name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.18.0_next.1.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz";
-        sha1 = "6e3a0a4bda717e5023ab3b8e90bec36108d22c68";
+        name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz";
+        sha1 = "088101a55f0541f595e7e057199e27ddc8f3a5c2";
       };
     }
     {
@@ -4306,19 +4458,19 @@
       };
     }
     {
-      name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
+      name = "eslint_plugin_promise___eslint_plugin_promise_5.1.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz";
-        sha1 = "845fd8b2260ad8f82564c1222fce44ad71d9418a";
+        name = "eslint_plugin_promise___eslint_plugin_promise_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz";
+        sha1 = "fb2188fb734e4557993733b41aa1a688f46c6f24";
       };
     }
     {
-      name = "eslint_plugin_react___eslint_plugin_react_7.21.5.tgz";
+      name = "eslint_plugin_react___eslint_plugin_react_7.23.2.tgz";
       path = fetchurl {
-        name = "eslint_plugin_react___eslint_plugin_react_7.21.5.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz";
-        sha1 = "50b21a412b9574bfe05b21db176e8b7b3b15bff3";
+        name = "eslint_plugin_react___eslint_plugin_react_7.23.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz";
+        sha1 = "2d2291b0f95c03728b55869f01102290e792d494";
       };
     }
     {
@@ -4370,11 +4522,11 @@
       };
     }
     {
-      name = "eslint___eslint_7.14.0.tgz";
+      name = "eslint___eslint_7.26.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.14.0.tgz";
-        sha1 = "2d2cac1d28174c510a97b377f122a5507958e344";
+        name = "eslint___eslint_7.26.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz";
+        sha1 = "d416fdcdcb3236cd8f282065312813f8c13982f6";
       };
     }
     {
@@ -4386,11 +4538,11 @@
       };
     }
     {
-      name = "espree___espree_7.3.0.tgz";
+      name = "espree___espree_7.3.1.tgz";
       path = fetchurl {
-        name = "espree___espree_7.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz";
-        sha1 = "dc30437cf67947cf576121ebd780f15eeac72348";
+        name = "espree___espree_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
+        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
       };
     }
     {
@@ -4402,11 +4554,11 @@
       };
     }
     {
-      name = "esquery___esquery_1.3.1.tgz";
+      name = "esquery___esquery_1.4.0.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
-        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
       };
     }
     {
@@ -4650,14 +4802,6 @@
       };
     }
     {
-      name = "faye_websocket___faye_websocket_0.10.0.tgz";
-      path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
-        sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
-      };
-    }
-    {
       name = "faye_websocket___faye_websocket_0.11.3.tgz";
       path = fetchurl {
         name = "faye_websocket___faye_websocket_0.11.3.tgz";
@@ -4698,11 +4842,11 @@
       };
     }
     {
-      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+      name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
       path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
       };
     }
     {
@@ -4730,22 +4874,6 @@
       };
     }
     {
-      name = "filelist___filelist_1.0.1.tgz";
-      path = fetchurl {
-        name = "filelist___filelist_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz";
-        sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb";
-      };
-    }
-    {
-      name = "filesize___filesize_6.1.0.tgz";
-      path = fetchurl {
-        name = "filesize___filesize_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz";
-        sha1 = "e81bdaa780e2451d714d71c0d7a4f3238d37ad00";
-      };
-    }
-    {
       name = "fill_range___fill_range_4.0.0.tgz";
       path = fetchurl {
         name = "fill_range___fill_range_4.0.0.tgz";
@@ -4786,14 +4914,6 @@
       };
     }
     {
-      name = "find_root___find_root_1.1.0.tgz";
-      path = fetchurl {
-        name = "find_root___find_root_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz";
-        sha1 = "abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4";
-      };
-    }
-    {
       name = "find_up___find_up_2.1.0.tgz";
       path = fetchurl {
         name = "find_up___find_up_2.1.0.tgz";
@@ -4834,19 +4954,19 @@
       };
     }
     {
-      name = "flat_cache___flat_cache_2.0.1.tgz";
+      name = "flat_cache___flat_cache_3.0.4.tgz";
       path = fetchurl {
-        name = "flat_cache___flat_cache_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+        name = "flat_cache___flat_cache_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
       };
     }
     {
-      name = "flatted___flatted_2.0.2.tgz";
+      name = "flatted___flatted_3.1.0.tgz";
       path = fetchurl {
-        name = "flatted___flatted_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz";
-        sha1 = "4575b21e2bcee7434aa9be662f4b7b5f9c2b5138";
+        name = "flatted___flatted_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz";
+        sha1 = "a5d06b4a8b01e3a63771daa5cb7a1903e2e57067";
       };
     }
     {
@@ -4994,6 +5114,14 @@
       };
     }
     {
+      name = "fsevents___fsevents_2.3.2.tgz";
+      path = fetchurl {
+        name = "fsevents___fsevents_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
+        sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
+      };
+    }
+    {
       name = "function_bind___function_bind_1.1.1.tgz";
       path = fetchurl {
         name = "function_bind___function_bind_1.1.1.tgz";
@@ -5034,19 +5162,11 @@
       };
     }
     {
-      name = "generic_pool___generic_pool_2.4.3.tgz";
+      name = "gensync___gensync_1.0.0_beta.2.tgz";
       path = fetchurl {
-        name = "generic_pool___generic_pool_2.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/generic-pool/-/generic-pool-2.4.3.tgz";
-        sha1 = "780c36f69dfad05a5a045dd37be7adca11a4f6ff";
-      };
-    }
-    {
-      name = "gensync___gensync_1.0.0_beta.1.tgz";
-      path = fetchurl {
-        name = "gensync___gensync_1.0.0_beta.1.tgz";
-        url  = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz";
-        sha1 = "58f4361ff987e5ff6e1e7a210827aa371eaac269";
+        name = "gensync___gensync_1.0.0_beta.2.tgz";
+        url  = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz";
+        sha1 = "32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0";
       };
     }
     {
@@ -5058,6 +5178,14 @@
       };
     }
     {
+      name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+      path = fetchurl {
+        name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
+      };
+    }
+    {
       name = "get_package_type___get_package_type_0.1.0.tgz";
       path = fetchurl {
         name = "get_package_type___get_package_type_0.1.0.tgz";
@@ -5114,11 +5242,11 @@
       };
     }
     {
-      name = "glob___glob_7.1.6.tgz";
+      name = "glob___glob_7.1.7.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
-        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+        name = "glob___glob_7.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
+        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
       };
     }
     {
@@ -5170,6 +5298,14 @@
       };
     }
     {
+      name = "globals___globals_13.6.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_13.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.6.0.tgz";
+        sha1 = "d77138e53738567bb96a3916ff6f6b487af20ef7";
+      };
+    }
+    {
       name = "globals___globals_9.18.0.tgz";
       path = fetchurl {
         name = "globals___globals_9.18.0.tgz";
@@ -5218,11 +5354,11 @@
       };
     }
     {
-      name = "gzip_size___gzip_size_5.1.1.tgz";
+      name = "gzip_size___gzip_size_6.0.0.tgz";
       path = fetchurl {
-        name = "gzip_size___gzip_size_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz";
-        sha1 = "cb9bee692f87c0612b232840a873904e4c135274";
+        name = "gzip_size___gzip_size_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz";
+        sha1 = "065367fd50c239c0671cbcbad5be3e2eeb10e462";
       };
     }
     {
@@ -5410,11 +5546,11 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+      name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
+        name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
+        sha1 = "dffc0bf9a21c02209090f2aa69429e1414daf3f9";
       };
     }
     {
@@ -5442,14 +5578,6 @@
       };
     }
     {
-      name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-      path = fetchurl {
-        name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7";
-      };
-    }
-    {
       name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
       path = fetchurl {
         name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz";
@@ -5522,6 +5650,14 @@
       };
     }
     {
+      name = "http_parser_js___http_parser_js_0.5.3.tgz";
+      path = fetchurl {
+        name = "http_parser_js___http_parser_js_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz";
+        sha1 = "01d2709c79d41698bb01d4decc5e9da4e4a033d9";
+      };
+    }
+    {
       name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
       path = fetchurl {
         name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
@@ -5570,11 +5706,11 @@
       };
     }
     {
-      name = "icss_utils___icss_utils_5.0.0.tgz";
+      name = "icss_utils___icss_utils_5.1.0.tgz";
       path = fetchurl {
-        name = "icss_utils___icss_utils_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.0.0.tgz";
-        sha1 = "03ed56c3accd32f9caaf1752ebf64ef12347bb84";
+        name = "icss_utils___icss_utils_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz";
+        sha1 = "c6be6858abd013d768e98366ae47e25d5887b1ae";
       };
     }
     {
@@ -5770,11 +5906,11 @@
       };
     }
     {
-      name = "internal_slot___internal_slot_1.0.2.tgz";
+      name = "internal_slot___internal_slot_1.0.3.tgz";
       path = fetchurl {
-        name = "internal_slot___internal_slot_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
-        sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
+        name = "internal_slot___internal_slot_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz";
+        sha1 = "7347e307deeea2faac2ac6205d4bc7d34967f59c";
       };
     }
     {
@@ -5786,11 +5922,11 @@
       };
     }
     {
-      name = "intersection_observer___intersection_observer_0.11.0.tgz";
+      name = "intersection_observer___intersection_observer_0.12.0.tgz";
       path = fetchurl {
-        name = "intersection_observer___intersection_observer_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.11.0.tgz";
-        sha1 = "f4ea067070326f68393ee161cc0a2ca4c0040c6f";
+        name = "intersection_observer___intersection_observer_0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.0.tgz";
+        sha1 = "6c84628f67ce8698e5f9ccf857d97718745837aa";
       };
     }
     {
@@ -5986,11 +6122,11 @@
       };
     }
     {
-      name = "is_core_module___is_core_module_2.1.0.tgz";
+      name = "is_core_module___is_core_module_2.2.0.tgz";
       path = fetchurl {
-        name = "is_core_module___is_core_module_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz";
-        sha1 = "a4cc031d9b1aca63eecbd18a650e13cb4eeab946";
+        name = "is_core_module___is_core_module_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz";
+        sha1 = "97037ef3d52224d85163f5597b2b63d9afed981a";
       };
     }
     {
@@ -6146,19 +6282,19 @@
       };
     }
     {
-      name = "is_nan___is_nan_1.3.0.tgz";
+      name = "is_nan___is_nan_1.3.2.tgz";
       path = fetchurl {
-        name = "is_nan___is_nan_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.0.tgz";
-        sha1 = "85d1f5482f7051c2019f5673ccebdb06f3b0db03";
+        name = "is_nan___is_nan_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz";
+        sha1 = "043a54adea31748b55b6cd4e09aadafa69bd9e1d";
       };
     }
     {
-      name = "is_negative_zero___is_negative_zero_2.0.0.tgz";
+      name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
       path = fetchurl {
-        name = "is_negative_zero___is_negative_zero_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz";
-        sha1 = "9553b121b0fac28869da9ed459e20c7543788461";
+        name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
+        sha1 = "3de746c18dda2319241a53675908d8f766f11c24";
       };
     }
     {
@@ -6282,14 +6418,6 @@
       };
     }
     {
-      name = "is_svg___is_svg_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_svg___is_svg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz";
-        sha1 = "9321dbd29c212e5ca99c4fa9794c714bcafa2f75";
-      };
-    }
-    {
       name = "is_symbol___is_symbol_1.0.3.tgz";
       path = fetchurl {
         name = "is_symbol___is_symbol_1.0.3.tgz";
@@ -6426,14 +6554,6 @@
       };
     }
     {
-      name = "jake___jake_10.8.2.tgz";
-      path = fetchurl {
-        name = "jake___jake_10.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
-        sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
-      };
-    }
-    {
       name = "jest_changed_files___jest_changed_files_26.6.2.tgz";
       path = fetchurl {
         name = "jest_changed_files___jest_changed_files_26.6.2.tgz";
@@ -6690,14 +6810,6 @@
       };
     }
     {
-      name = "js_string_escape___js_string_escape_1.0.1.tgz";
-      path = fetchurl {
-        name = "js_string_escape___js_string_escape_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz";
-        sha1 = "e2625badbc0d67c7533e9edc1068c587ae4137ef";
-      };
-    }
-    {
       name = "js_tokens___js_tokens_4.0.0.tgz";
       path = fetchurl {
         name = "js_tokens___js_tokens_4.0.0.tgz";
@@ -6706,11 +6818,19 @@
       };
     }
     {
-      name = "js_yaml___js_yaml_3.14.0.tgz";
+      name = "js_yaml___js_yaml_3.14.1.tgz";
       path = fetchurl {
-        name = "js_yaml___js_yaml_3.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
-        sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
+        name = "js_yaml___js_yaml_3.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_4.1.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha1 = "c1fb65f8f5017901cdd2c951864ba18458a10602";
       };
     }
     {
@@ -6994,14 +7114,6 @@
       };
     }
     {
-      name = "line_column___line_column_1.0.2.tgz";
-      path = fetchurl {
-        name = "line_column___line_column_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz";
-        sha1 = "d25af2936b6f4849172b312e4792d1d987bc34a2";
-      };
-    }
-    {
       name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
       path = fetchurl {
         name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
@@ -7074,6 +7186,14 @@
       };
     }
     {
+      name = "lockfile___lockfile_1.0.4.tgz";
+      path = fetchurl {
+        name = "lockfile___lockfile_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz";
+        sha1 = "07f819d25ae48f87e538e6578b6964a4981a5609";
+      };
+    }
+    {
       name = "lodash.capitalize___lodash.capitalize_4.2.1.tgz";
       path = fetchurl {
         name = "lodash.capitalize___lodash.capitalize_4.2.1.tgz";
@@ -7082,6 +7202,14 @@
       };
     }
     {
+      name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+      path = fetchurl {
+        name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+        sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+      };
+    }
+    {
       name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
       path = fetchurl {
         name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
@@ -7162,11 +7290,11 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.20.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.20.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
-        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
       };
     }
     {
@@ -7258,11 +7386,11 @@
       };
     }
     {
-      name = "marky___marky_1.2.1.tgz";
+      name = "marky___marky_1.2.2.tgz";
       path = fetchurl {
-        name = "marky___marky_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/marky/-/marky-1.2.1.tgz";
-        sha1 = "a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02";
+        name = "marky___marky_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/marky/-/marky-1.2.2.tgz";
+        sha1 = "4456765b4de307a13d263a69b0c79bf226e68323";
       };
     }
     {
@@ -7402,6 +7530,14 @@
       };
     }
     {
+      name = "mime___mime_2.4.7.tgz";
+      path = fetchurl {
+        name = "mime___mime_2.4.7.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz";
+        sha1 = "962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74";
+      };
+    }
+    {
       name = "mime___mime_2.4.4.tgz";
       path = fetchurl {
         name = "mime___mime_2.4.4.tgz";
@@ -7426,11 +7562,11 @@
       };
     }
     {
-      name = "mini_css_extract_plugin___mini_css_extract_plugin_1.3.1.tgz";
+      name = "mini_css_extract_plugin___mini_css_extract_plugin_1.6.0.tgz";
       path = fetchurl {
-        name = "mini_css_extract_plugin___mini_css_extract_plugin_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.1.tgz";
-        sha1 = "1375c88b2bc2a9d197670a55761edcd1b5d72f21";
+        name = "mini_css_extract_plugin___mini_css_extract_plugin_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz";
+        sha1 = "b4db2525af2624899ed64a23b0016e0036411893";
       };
     }
     {
@@ -7618,11 +7754,11 @@
       };
     }
     {
-      name = "nanoid___nanoid_3.1.16.tgz";
+      name = "nanoid___nanoid_3.1.22.tgz";
       path = fetchurl {
-        name = "nanoid___nanoid_3.1.16.tgz";
-        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.16.tgz";
-        sha1 = "b21f0a7d031196faf75314d7c65d36352beeef64";
+        name = "nanoid___nanoid_3.1.22.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz";
+        sha1 = "b35f8fb7d151990a8aebd5aa5015c03cf726f844";
       };
     }
     {
@@ -7690,6 +7826,14 @@
       };
     }
     {
+      name = "node_gyp_build___node_gyp_build_4.2.3.tgz";
+      path = fetchurl {
+        name = "node_gyp_build___node_gyp_build_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz";
+        sha1 = "ce6277f853835f718829efb47db20f3e4d9c4739";
+      };
+    }
+    {
       name = "node_int64___node_int64_0.4.0.tgz";
       path = fetchurl {
         name = "node_int64___node_int64_0.4.0.tgz";
@@ -7738,6 +7882,14 @@
       };
     }
     {
+      name = "node_releases___node_releases_1.1.71.tgz";
+      path = fetchurl {
+        name = "node_releases___node_releases_1.1.71.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz";
+        sha1 = "cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb";
+      };
+    }
+    {
       name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
       path = fetchurl {
         name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
@@ -7842,14 +7994,6 @@
       };
     }
     {
-      name = "object_assign___object_assign_4.1.0.tgz";
-      path = fetchurl {
-        name = "object_assign___object_assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz";
-        sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0";
-      };
-    }
-    {
       name = "object_assign___object_assign_4.1.1.tgz";
       path = fetchurl {
         name = "object_assign___object_assign_4.1.1.tgz";
@@ -7882,6 +8026,14 @@
       };
     }
     {
+      name = "object_inspect___object_inspect_1.9.0.tgz";
+      path = fetchurl {
+        name = "object_inspect___object_inspect_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz";
+        sha1 = "c90521d74e1127b67266ded3394ad6116986533a";
+      };
+    }
+    {
       name = "object_is___object_is_1.1.3.tgz";
       path = fetchurl {
         name = "object_is___object_is_1.1.3.tgz";
@@ -7914,19 +8066,27 @@
       };
     }
     {
-      name = "object.entries___object.entries_1.1.2.tgz";
+      name = "object.assign___object.assign_4.1.2.tgz";
+      path = fetchurl {
+        name = "object.assign___object.assign_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
+        sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
+      };
+    }
+    {
+      name = "object.entries___object.entries_1.1.3.tgz";
       path = fetchurl {
-        name = "object.entries___object.entries_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
-        sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
+        name = "object.entries___object.entries_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz";
+        sha1 = "c601c7f168b62374541a07ddbd3e2d5e4f7711a6";
       };
     }
     {
-      name = "object.fromentries___object.fromentries_2.0.2.tgz";
+      name = "object.fromentries___object.fromentries_2.0.4.tgz";
       path = fetchurl {
-        name = "object.fromentries___object.fromentries_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
-        sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
+        name = "object.fromentries___object.fromentries_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz";
+        sha1 = "26e1ba5c4571c5c6f0890cef4473066456a120b8";
       };
     }
     {
@@ -7946,11 +8106,11 @@
       };
     }
     {
-      name = "object.values___object.values_1.1.1.tgz";
+      name = "object.values___object.values_1.1.3.tgz";
       path = fetchurl {
-        name = "object.values___object.values_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
-        sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+        name = "object.values___object.values_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz";
+        sha1 = "eaa8b1e17589f02f698db093f7c62ee1699742ee";
       };
     }
     {
@@ -8178,11 +8338,11 @@
       };
     }
     {
-      name = "packet_reader___packet_reader_0.3.1.tgz";
+      name = "packet_reader___packet_reader_1.0.0.tgz";
       path = fetchurl {
-        name = "packet_reader___packet_reader_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-0.3.1.tgz";
-        sha1 = "cd62e60af8d7fea8a705ec4ff990871c46871f27";
+        name = "packet_reader___packet_reader_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha1 = "9238e5480dedabacfe1fe3f2771063f164157d74";
       };
     }
     {
@@ -8418,11 +8578,11 @@
       };
     }
     {
-      name = "pg_connection_string___pg_connection_string_0.1.3.tgz";
+      name = "pg_connection_string___pg_connection_string_2.4.0.tgz";
       path = fetchurl {
-        name = "pg_connection_string___pg_connection_string_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
-        sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
+        name = "pg_connection_string___pg_connection_string_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
+        sha1 = "c979922eb47832999a204da5dbe1ebf2341b6a10";
       };
     }
     {
@@ -8434,35 +8594,43 @@
       };
     }
     {
-      name = "pg_pool___pg_pool_1.8.0.tgz";
+      name = "pg_pool___pg_pool_3.2.2.tgz";
+      path = fetchurl {
+        name = "pg_pool___pg_pool_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.2.tgz";
+        sha1 = "a560e433443ed4ad946b84d774b3f22452694dff";
+      };
+    }
+    {
+      name = "pg_protocol___pg_protocol_1.4.0.tgz";
       path = fetchurl {
-        name = "pg_pool___pg_pool_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-1.8.0.tgz";
-        sha1 = "f7ec73824c37a03f076f51bfdf70e340147c4f37";
+        name = "pg_protocol___pg_protocol_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.4.0.tgz";
+        sha1 = "43a71a92f6fe3ac559952555aa3335c8cb4908be";
       };
     }
     {
-      name = "pg_types___pg_types_1.13.0.tgz";
+      name = "pg_types___pg_types_2.2.0.tgz";
       path = fetchurl {
-        name = "pg_types___pg_types_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-types/-/pg-types-1.13.0.tgz";
-        sha1 = "75f490b8a8abf75f1386ef5ec4455ecf6b345c63";
+        name = "pg_types___pg_types_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz";
+        sha1 = "2d0250d636454f7cfa3b6ae0382fdfa8063254a3";
       };
     }
     {
-      name = "pg___pg_6.4.2.tgz";
+      name = "pg___pg_8.5.1.tgz";
       path = fetchurl {
-        name = "pg___pg_6.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/pg/-/pg-6.4.2.tgz";
-        sha1 = "c364011060eac7a507a2ae063eb857ece910e27f";
+        name = "pg___pg_8.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg/-/pg-8.5.1.tgz";
+        sha1 = "34dcb15f6db4a29c702bf5031ef2e1e25a06a120";
       };
     }
     {
-      name = "pgpass___pgpass_1.0.2.tgz";
+      name = "pgpass___pgpass_1.0.4.tgz";
       path = fetchurl {
-        name = "pgpass___pgpass_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz";
-        sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+        name = "pgpass___pgpass_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz";
+        sha1 = "85eb93a83800b20f8057a2b029bf05abaf94ea9c";
       };
     }
     {
@@ -8842,11 +9010,11 @@
       };
     }
     {
-      name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
+      name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
       path = fetchurl {
-        name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha1 = "17b997bc711b333bab143aaed3b8d3d6e3d38258";
+        name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz";
+        sha1 = "343a2cdbac9505d416243d496f724f38894c941e";
       };
     }
     {
@@ -8890,19 +9058,19 @@
       };
     }
     {
-      name = "postcss___postcss_8.1.6.tgz";
+      name = "postcss___postcss_8.2.10.tgz";
       path = fetchurl {
-        name = "postcss___postcss_8.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-8.1.6.tgz";
-        sha1 = "b022ba2cfb8701da234d073ed3128c5a384c35ff";
+        name = "postcss___postcss_8.2.10.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz";
+        sha1 = "ca7a042aa8aff494b334d0ff3e9e77079f6f702b";
       };
     }
     {
-      name = "postgres_array___postgres_array_1.0.3.tgz";
+      name = "postgres_array___postgres_array_2.0.0.tgz";
       path = fetchurl {
-        name = "postgres_array___postgres_array_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz";
-        sha1 = "c561fc3b266b21451fc6555384f4986d78ec80f5";
+        name = "postgres_array___postgres_array_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha1 = "48f8fce054fbc69671999329b8834b772652d82e";
       };
     }
     {
@@ -9258,11 +9426,11 @@
       };
     }
     {
-      name = "react_input_autosize___react_input_autosize_2.2.2.tgz";
+      name = "react_input_autosize___react_input_autosize_3.0.0.tgz";
       path = fetchurl {
-        name = "react_input_autosize___react_input_autosize_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.2.tgz";
-        sha1 = "fcaa7020568ec206bc04be36f4eb68e647c4d8c2";
+        name = "react_input_autosize___react_input_autosize_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz";
+        sha1 = "6b5898c790d4478d69420b55441fcc31d5c50a85";
       };
     }
     {
@@ -9330,11 +9498,11 @@
       };
     }
     {
-      name = "react_overlays___react_overlays_0.9.2.tgz";
+      name = "react_overlays___react_overlays_0.9.3.tgz";
       path = fetchurl {
-        name = "react_overlays___react_overlays_0.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.9.2.tgz";
-        sha1 = "51ab1c62ded5af4d279bd3b943999531bbd648da";
+        name = "react_overlays___react_overlays_0.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.9.3.tgz";
+        sha1 = "5bac8c1e9e7e057a125181dee2d784864dd62902";
       };
     }
     {
@@ -9346,11 +9514,11 @@
       };
     }
     {
-      name = "react_redux___react_redux_7.2.2.tgz";
+      name = "react_redux___react_redux_7.2.4.tgz";
       path = fetchurl {
-        name = "react_redux___react_redux_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.2.tgz";
-        sha1 = "03862e803a30b6b9ef8582dadcc810947f74b736";
+        name = "react_redux___react_redux_7.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.4.tgz";
+        sha1 = "1ebb474032b72d806de2e0519cd07761e222e225";
       };
     }
     {
@@ -9378,11 +9546,11 @@
       };
     }
     {
-      name = "react_select___react_select_3.1.0.tgz";
+      name = "react_select___react_select_4.3.0.tgz";
       path = fetchurl {
-        name = "react_select___react_select_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-select/-/react-select-3.1.0.tgz";
-        sha1 = "ab098720b2e9fe275047c993f0d0caf5ded17c27";
+        name = "react_select___react_select_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-select/-/react-select-4.3.0.tgz";
+        sha1 = "6bde634ae7a378b49f3833c85c126f533483fa2e";
       };
     }
     {
@@ -9426,19 +9594,19 @@
       };
     }
     {
-      name = "react_textarea_autosize___react_textarea_autosize_8.3.0.tgz";
+      name = "react_textarea_autosize___react_textarea_autosize_8.3.2.tgz";
       path = fetchurl {
-        name = "react_textarea_autosize___react_textarea_autosize_8.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.0.tgz";
-        sha1 = "e6e2fd186d9f61bb80ac6e2dcb4c55504f93c2fa";
+        name = "react_textarea_autosize___react_textarea_autosize_8.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.2.tgz";
+        sha1 = "4f9374d357b0a6f6469956726722549124a1b2db";
       };
     }
     {
-      name = "react_toggle___react_toggle_4.1.1.tgz";
+      name = "react_toggle___react_toggle_4.1.2.tgz";
       path = fetchurl {
-        name = "react_toggle___react_toggle_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-toggle/-/react-toggle-4.1.1.tgz";
-        sha1 = "2317f67bf918ea3508a96b09dd383efd9da572af";
+        name = "react_toggle___react_toggle_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/react-toggle/-/react-toggle-4.1.2.tgz";
+        sha1 = "b00500832f925ad524356d909821821ae39f6c52";
       };
     }
     {
@@ -9522,11 +9690,11 @@
       };
     }
     {
-      name = "readdirp___readdirp_3.4.0.tgz";
+      name = "readdirp___readdirp_3.5.0.tgz";
       path = fetchurl {
-        name = "readdirp___readdirp_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz";
-        sha1 = "9fdccdf9e9155805449221ac645e8303ab5b9ada";
+        name = "readdirp___readdirp_3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz";
+        sha1 = "9ba74c019b15d365278d2e91bb8c48d7b4d42c9e";
       };
     }
     {
@@ -9546,11 +9714,11 @@
       };
     }
     {
-      name = "redis_commands___redis_commands_1.6.0.tgz";
+      name = "redis_commands___redis_commands_1.7.0.tgz";
       path = fetchurl {
-        name = "redis_commands___redis_commands_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.6.0.tgz";
-        sha1 = "36d4ca42ae9ed29815cdb30ad9f97982eba1ce23";
+        name = "redis_commands___redis_commands_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz";
+        sha1 = "15a6fea2d58281e27b1cd1acfb4b293e278c3a89";
       };
     }
     {
@@ -9570,11 +9738,11 @@
       };
     }
     {
-      name = "redis___redis_3.0.2.tgz";
+      name = "redis___redis_3.1.2.tgz";
       path = fetchurl {
-        name = "redis___redis_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/redis/-/redis-3.0.2.tgz";
-        sha1 = "bd47067b8a4a3e6a2e556e57f71cc82c7360150a";
+        name = "redis___redis_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/redis/-/redis-3.1.2.tgz";
+        sha1 = "766851117e80653d23e0ed536254677ab647638c";
       };
     }
     {
@@ -9594,11 +9762,11 @@
       };
     }
     {
-      name = "redux___redux_4.0.5.tgz";
+      name = "redux___redux_4.1.0.tgz";
       path = fetchurl {
-        name = "redux___redux_4.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz";
-        sha1 = "4db5de5816e17891de8a80c424232d06f051d93f";
+        name = "redux___redux_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/redux/-/redux-4.1.0.tgz";
+        sha1 = "eb049679f2f523c379f1aff345c8612f294c88d4";
       };
     }
     {
@@ -9666,6 +9834,14 @@
       };
     }
     {
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
+      path = fetchurl {
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz";
+        sha1 = "7ef352ae8d159e758c0eadca6f8fcb4eef07be26";
+      };
+    }
+    {
       name = "regexpp___regexpp_3.1.0.tgz";
       path = fetchurl {
         name = "regexpp___regexpp_3.1.0.tgz";
@@ -9898,11 +10074,19 @@
       };
     }
     {
-      name = "resolve___resolve_1.19.0.tgz";
+      name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz";
-        sha1 = "1af5bf630409734a067cae29318aac7fa29a267c";
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
+      };
+    }
+    {
+      name = "resolve___resolve_2.0.0_next.3.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_2.0.0_next.3.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz";
+        sha1 = "d41016293d4a8586a39ca5d9b5f15cbea1f55e46";
       };
     }
     {
@@ -9946,14 +10130,6 @@
       };
     }
     {
-      name = "rimraf___rimraf_2.6.3.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
-        sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
-      };
-    }
-    {
       name = "rimraf___rimraf_2.7.1.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_2.7.1.tgz";
@@ -9970,6 +10146,14 @@
       };
     }
     {
+      name = "rimraf___rimraf_2.6.3.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_2.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
+        sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
+      };
+    }
+    {
       name = "ripemd160___ripemd160_2.0.2.tgz";
       path = fetchurl {
         name = "ripemd160___ripemd160_2.0.2.tgz";
@@ -10058,19 +10242,19 @@
       };
     }
     {
-      name = "sass_loader___sass_loader_10.1.0.tgz";
+      name = "sass_loader___sass_loader_10.1.1.tgz";
       path = fetchurl {
-        name = "sass_loader___sass_loader_10.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.0.tgz";
-        sha1 = "1727fcc0c32ab3eb197cda61d78adf4e9174a4b3";
+        name = "sass_loader___sass_loader_10.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz";
+        sha1 = "4ddd5a3d7638e7949065dd6e9c7c04037f7e663d";
       };
     }
     {
-      name = "sass___sass_1.29.0.tgz";
+      name = "sass___sass_1.32.12.tgz";
       path = fetchurl {
-        name = "sass___sass_1.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/sass/-/sass-1.29.0.tgz";
-        sha1 = "ec4e1842c146d8ea9258c28c141b8c2b7c6ab7f1";
+        name = "sass___sass_1.32.12.tgz";
+        url  = "https://registry.yarnpkg.com/sass/-/sass-1.32.12.tgz";
+        sha1 = "a2a47ad0f1c168222db5206444a30c12457abb9f";
       };
     }
     {
@@ -10154,14 +10338,6 @@
       };
     }
     {
-      name = "semver___semver_4.3.2.tgz";
-      path = fetchurl {
-        name = "semver___semver_4.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz";
-        sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
-      };
-    }
-    {
       name = "semver___semver_7.0.0.tgz";
       path = fetchurl {
         name = "semver___semver_7.0.0.tgz";
@@ -10178,11 +10354,11 @@
       };
     }
     {
-      name = "semver___semver_7.3.4.tgz";
+      name = "semver___semver_7.3.5.tgz";
       path = fetchurl {
-        name = "semver___semver_7.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
-        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
       };
     }
     {
@@ -10338,11 +10514,11 @@
       };
     }
     {
-      name = "side_channel___side_channel_1.0.3.tgz";
+      name = "side_channel___side_channel_1.0.4.tgz";
       path = fetchurl {
-        name = "side_channel___side_channel_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz";
-        sha1 = "cdc46b057550bbab63706210838df5d4c19519c3";
+        name = "side_channel___side_channel_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz";
+        sha1 = "efce5c8fdc104ee751b25c58d4290011fa5ea2cf";
       };
     }
     {
@@ -10362,6 +10538,14 @@
       };
     }
     {
+      name = "sirv___sirv_1.0.10.tgz";
+      path = fetchurl {
+        name = "sirv___sirv_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/sirv/-/sirv-1.0.10.tgz";
+        sha1 = "3e591f5a9ae2520f50d5830f5fae38d97e7be194";
+      };
+    }
+    {
       name = "sisteransi___sisteransi_1.0.5.tgz";
       path = fetchurl {
         name = "sisteransi___sisteransi_1.0.5.tgz";
@@ -10394,11 +10578,11 @@
       };
     }
     {
-      name = "slice_ansi___slice_ansi_2.1.0.tgz";
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
       path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
       };
     }
     {
@@ -10426,19 +10610,19 @@
       };
     }
     {
-      name = "sockjs_client___sockjs_client_1.4.0.tgz";
+      name = "sockjs_client___sockjs_client_1.5.0.tgz";
       path = fetchurl {
-        name = "sockjs_client___sockjs_client_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz";
-        sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5";
+        name = "sockjs_client___sockjs_client_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz";
+        sha1 = "2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add";
       };
     }
     {
-      name = "sockjs___sockjs_0.3.20.tgz";
+      name = "sockjs___sockjs_0.3.21.tgz";
       path = fetchurl {
-        name = "sockjs___sockjs_0.3.20.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz";
-        sha1 = "b26a283ec562ef8b2687b44033a4eeceac75d855";
+        name = "sockjs___sockjs_0.3.21.tgz";
+        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz";
+        sha1 = "b34ffb98e796930b60a0cfa11904d6a339a7d417";
       };
     }
     {
@@ -10570,11 +10754,11 @@
       };
     }
     {
-      name = "split___split_1.0.1.tgz";
+      name = "split2___split2_3.2.2.tgz";
       path = fetchurl {
-        name = "split___split_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz";
-        sha1 = "605bd9be303aa59fb35f9229fbea0ddec9ea07d9";
+        name = "split2___split2_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz";
+        sha1 = "bf2cf2a37d838312c249c89206fd7a17dd12365f";
       };
     }
     {
@@ -10594,11 +10778,11 @@
       };
     }
     {
-      name = "ssri___ssri_6.0.1.tgz";
+      name = "ssri___ssri_6.0.2.tgz";
       path = fetchurl {
-        name = "ssri___ssri_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
-        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+        name = "ssri___ssri_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz";
+        sha1 = "157939134f20464e7301ddba3e90ffa8f7728ac5";
       };
     }
     {
@@ -10754,11 +10938,11 @@
       };
     }
     {
-      name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+      name = "string.prototype.matchall___string.prototype.matchall_4.0.4.tgz";
       path = fetchurl {
-        name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
-        sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
+        name = "string.prototype.matchall___string.prototype.matchall_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz";
+        sha1 = "608f255e93e072107f5de066f81a2dfb78cf6b29";
       };
     }
     {
@@ -10770,6 +10954,14 @@
       };
     }
     {
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
+        sha1 = "e75ae90c2942c63504686c18b287b4a0b1a45f80";
+      };
+    }
+    {
       name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
       path = fetchurl {
         name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
@@ -10778,6 +10970,14 @@
       };
     }
     {
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
+        sha1 = "b36399af4ab2999b4c9c648bd7a3fb2bb26feeed";
+      };
+    }
+    {
       name = "string_decoder___string_decoder_1.3.0.tgz";
       path = fetchurl {
         name = "string_decoder___string_decoder_1.3.0.tgz";
@@ -10906,6 +11106,14 @@
       };
     }
     {
+      name = "stylis___stylis_4.0.6.tgz";
+      path = fetchurl {
+        name = "stylis___stylis_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/stylis/-/stylis-4.0.6.tgz";
+        sha1 = "0d8b97b6bc4748bea46f68602b6df27641b3c548";
+      };
+    }
+    {
       name = "substring_trie___substring_trie_1.0.2.tgz";
       path = fetchurl {
         name = "substring_trie___substring_trie_1.0.2.tgz";
@@ -10970,14 +11178,6 @@
       };
     }
     {
-      name = "symbol_observable___symbol_observable_1.2.0.tgz";
-      path = fetchurl {
-        name = "symbol_observable___symbol_observable_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
-        sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
-      };
-    }
-    {
       name = "symbol_tree___symbol_tree_3.2.4.tgz";
       path = fetchurl {
         name = "symbol_tree___symbol_tree_3.2.4.tgz";
@@ -10994,11 +11194,11 @@
       };
     }
     {
-      name = "table___table_5.4.1.tgz";
+      name = "table___table_6.0.4.tgz";
       path = fetchurl {
-        name = "table___table_5.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz";
-        sha1 = "0691ae2ebe8259858efb63e550b6d5f9300171e8";
+        name = "table___table_6.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.0.4.tgz";
+        sha1 = "c523dd182177e926c723eb20e1b341238188aa0d";
       };
     }
     {
@@ -11242,6 +11442,14 @@
       };
     }
     {
+      name = "totalist___totalist_1.1.0.tgz";
+      path = fetchurl {
+        name = "totalist___totalist_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz";
+        sha1 = "a4d65a3e546517701e3e5c37a47a70ac97fe56df";
+      };
+    }
+    {
       name = "tough_cookie___tough_cookie_2.5.0.tgz";
       path = fetchurl {
         name = "tough_cookie___tough_cookie_2.5.0.tgz";
@@ -11314,6 +11522,22 @@
       };
     }
     {
+      name = "twemoji_parser___twemoji_parser_11.0.2.tgz";
+      path = fetchurl {
+        name = "twemoji_parser___twemoji_parser_11.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/twemoji-parser/-/twemoji-parser-11.0.2.tgz";
+        sha1 = "24e87c2008abe8544c962f193b88b331de32b446";
+      };
+    }
+    {
+      name = "twitter_text___twitter_text_3.1.0.tgz";
+      path = fetchurl {
+        name = "twitter_text___twitter_text_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/twitter-text/-/twitter-text-3.1.0.tgz";
+        sha1 = "798e932b289f506efe2a1f03fe917ba30627f125";
+      };
+    }
+    {
       name = "type_check___type_check_0.4.0.tgz";
       path = fetchurl {
         name = "type_check___type_check_0.4.0.tgz";
@@ -11346,6 +11570,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.20.2.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+      };
+    }
+    {
       name = "type_fest___type_fest_0.6.0.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.6.0.tgz";
@@ -11530,11 +11762,11 @@
       };
     }
     {
-      name = "url_parse___url_parse_1.4.7.tgz";
+      name = "url_parse___url_parse_1.5.1.tgz";
       path = fetchurl {
-        name = "url_parse___url_parse_1.4.7.tgz";
-        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz";
-        sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278";
+        name = "url_parse___url_parse_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz";
+        sha1 = "d5fa9890af8a5e1f274a2c98376510f6425f6e3b";
       };
     }
     {
@@ -11586,6 +11818,14 @@
       };
     }
     {
+      name = "utf_8_validate___utf_8_validate_5.0.5.tgz";
+      path = fetchurl {
+        name = "utf_8_validate___utf_8_validate_5.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz";
+        sha1 = "dd32c2e82c72002dc9f02eb67ba6761f43456ca1";
+      };
+    }
+    {
       name = "util_deprecate___util_deprecate_1.0.2.tgz";
       path = fetchurl {
         name = "util_deprecate___util_deprecate_1.0.2.tgz";
@@ -11802,19 +12042,19 @@
       };
     }
     {
-      name = "webpack_assets_manifest___webpack_assets_manifest_3.1.1.tgz";
+      name = "webpack_assets_manifest___webpack_assets_manifest_4.0.6.tgz";
       path = fetchurl {
-        name = "webpack_assets_manifest___webpack_assets_manifest_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz";
-        sha1 = "39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de";
+        name = "webpack_assets_manifest___webpack_assets_manifest_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-4.0.6.tgz";
+        sha1 = "cb8cfd2d2d8d129228cea645c832448380c21ae0";
       };
     }
     {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.1.0.tgz";
+      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.1.tgz";
       path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.1.0.tgz";
-        sha1 = "31f9e5e187ee32fae2392b21806582cc6fe74cf9";
+        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz";
+        sha1 = "c71fb2eaffc10a4754d7303b224adb2342069da1";
       };
     }
     {
@@ -11834,11 +12074,11 @@
       };
     }
     {
-      name = "webpack_dev_server___webpack_dev_server_3.11.0.tgz";
+      name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
       path = fetchurl {
-        name = "webpack_dev_server___webpack_dev_server_3.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz";
-        sha1 = "8f154a3bce1bcfd1cc618ef4e703278855e7ff8c";
+        name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
+        sha1 = "695ebced76a4929f0d5de7fd73fafe185fe33708";
       };
     }
     {
@@ -11850,11 +12090,11 @@
       };
     }
     {
-      name = "webpack_merge___webpack_merge_5.4.0.tgz";
+      name = "webpack_merge___webpack_merge_5.7.3.tgz";
       path = fetchurl {
-        name = "webpack_merge___webpack_merge_5.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.4.0.tgz";
-        sha1 = "81bef0a7d23fc1e6c24b06ad8bf22ddeb533a3a3";
+        name = "webpack_merge___webpack_merge_5.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz";
+        sha1 = "2a0754e1877a25a8bbab3d2475ca70a052708213";
       };
     }
     {
@@ -11866,19 +12106,11 @@
       };
     }
     {
-      name = "webpack___webpack_4.44.2.tgz";
-      path = fetchurl {
-        name = "webpack___webpack_4.44.2.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz";
-        sha1 = "6bfe2b0af055c8b2d1e90ed2cd9363f841266b72";
-      };
-    }
-    {
-      name = "websocket_driver___websocket_driver_0.6.5.tgz";
+      name = "webpack___webpack_4.46.0.tgz";
       path = fetchurl {
-        name = "websocket_driver___websocket_driver_0.6.5.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz";
-        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+        name = "webpack___webpack_4.46.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz";
+        sha1 = "bf9b4404ea20a073605e0a011d188d77cb6ad542";
       };
     }
     {
@@ -11890,6 +12122,14 @@
       };
     }
     {
+      name = "websocket_driver___websocket_driver_0.7.4.tgz";
+      path = fetchurl {
+        name = "websocket_driver___websocket_driver_0.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha1 = "89ad5295bbf64b480abcba31e4953aca706f5760";
+      };
+    }
+    {
       name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
       path = fetchurl {
         name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
@@ -11946,11 +12186,11 @@
       };
     }
     {
-      name = "wicg_inert___wicg_inert_3.1.0.tgz";
+      name = "wicg_inert___wicg_inert_3.1.1.tgz";
       path = fetchurl {
-        name = "wicg_inert___wicg_inert_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.1.0.tgz";
-        sha1 = "6525f12db188b83f0051bed2ddcf6c1aa5b17590";
+        name = "wicg_inert___wicg_inert_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.1.1.tgz";
+        sha1 = "b033fd4fbfb9e3fd709e5d84becbdf2e06e5c229";
       };
     }
     {
@@ -12026,14 +12266,6 @@
       };
     }
     {
-      name = "write___write_1.0.3.tgz";
-      path = fetchurl {
-        name = "write___write_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
-        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
-      };
-    }
-    {
       name = "write___write_0.2.1.tgz";
       path = fetchurl {
         name = "write___write_0.2.1.tgz";
@@ -12050,11 +12282,11 @@
       };
     }
     {
-      name = "ws___ws_7.4.0.tgz";
+      name = "ws___ws_7.4.5.tgz";
       path = fetchurl {
-        name = "ws___ws_7.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz";
-        sha1 = "a5dd76a24197940d4a8bb9e0e152bb4503764da7";
+        name = "ws___ws_7.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz";
+        sha1 = "a484dd851e9beb6fdb420027e3885e8ce48986c1";
       };
     }
     {
@@ -12162,11 +12394,11 @@
       };
     }
     {
-      name = "yargs___yargs_16.1.1.tgz";
+      name = "yargs___yargs_17.0.1.tgz";
       path = fetchurl {
-        name = "yargs___yargs_16.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-16.1.1.tgz";
-        sha1 = "5a4a095bd1ca806b0a50d0c03611d38034d219a1";
+        name = "yargs___yargs_17.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz";
+        sha1 = "6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb";
       };
     }
     {
diff --git a/nixpkgs/pkgs/servers/matrix-appservice-discord/default.nix b/nixpkgs/pkgs/servers/matrix-appservice-discord/default.nix
index 4a41f019e179..7b7a67821f9e 100644
--- a/nixpkgs/pkgs/servers/matrix-appservice-discord/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-appservice-discord/default.nix
@@ -43,7 +43,8 @@ in mkYarnPackage rec {
 
   doCheck = true;
   checkPhase = ''
-    yarn --offline test
+    # the default 2000ms timeout is sometimes too short on our busy builders
+    yarn --offline test --timeout 10000
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
index b54ad76e8f7d..0fce99819671 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
@@ -12,11 +12,11 @@ let
 in
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.32.2";
+  version = "1.35.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Biwj/zORBsU8XvpMMlSjR3Nqx0q1LqaSX/vX+UDeXI8=";
+    sha256 = "sha256-MJ3RG60rWbcfQxhj34k99AFg8TsPd3ECEw/x2+xU1js=";
   };
 
   patches = [
@@ -24,13 +24,16 @@ buildPythonApplication rec {
     ./homeserver-script.patch
   ];
 
+  buildInputs = [ openssl ];
+
   propagatedBuildInputs = [
-    setuptools
+    authlib
     bcrypt
     bleach
     canonicaljson
     daemonize
     frozendict
+    ijson
     jinja2
     jsonschema
     lxml
@@ -42,20 +45,20 @@ buildPythonApplication rec {
     psutil
     psycopg2
     pyasn1
+    pyjwt
     pymacaroons
     pynacl
     pyopenssl
     pysaml2
     pyyaml
     requests
+    setuptools
     signedjson
     sortedcontainers
     treq
     twisted
-    unpaddedbase64
     typing-extensions
-    authlib
-    pyjwt
+    unpaddedbase64
   ] ++ lib.optional enableSystemd systemd
     ++ lib.optional enableRedis hiredis;
 
@@ -64,7 +67,6 @@ buildPythonApplication rec {
   doCheck = !stdenv.isDarwin;
 
   checkPhase = ''
-    ${lib.optionalString (!enableRedis) "rm -r tests/replication # these tests need the optional dependency 'hiredis'"}
     PYTHONPATH=".:$PYTHONPATH" ${python3.interpreter} -m twisted.trial tests
   '';
 
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
index 808e81370bbd..ab92c29ee3dc 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
@@ -10,6 +10,8 @@ let
   };
 in
 ourNodePackages."${packageName}".override {
+  pname = "matrix-appservice-irc";
+
   nativeBuildInputs = [ makeWrapper nodePackages.node-gyp-build ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
index a20f0593ff50..290eae2c02ff 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
@@ -22,22 +22,22 @@ let
         sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==";
       };
     };
-    "@babel/generator-7.13.9" = {
+    "@babel/generator-7.14.3" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.13.9";
+      version = "7.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz";
-        sha512 = "mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz";
+        sha512 = "bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==";
       };
     };
-    "@babel/helper-function-name-7.12.13" = {
+    "@babel/helper-function-name-7.14.2" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.12.13";
+      version = "7.14.2";
       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.14.2.tgz";
+        sha512 = "NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==";
       };
     };
     "@babel/helper-get-function-arity-7.12.13" = {
@@ -58,40 +58,40 @@ let
         sha512 = "tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==";
       };
     };
-    "@babel/helper-validator-identifier-7.12.11" = {
+    "@babel/helper-validator-identifier-7.14.0" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.12.11";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
-        sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha512 = "V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==";
       };
     };
-    "@babel/highlight-7.13.10" = {
+    "@babel/highlight-7.14.0" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.13.10";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz";
-        sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha512 = "YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==";
       };
     };
-    "@babel/parser-7.13.11" = {
+    "@babel/parser-7.14.4" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.13.11";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz";
-        sha512 = "PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz";
+        sha512 = "ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==";
       };
     };
-    "@babel/runtime-7.13.10" = {
+    "@babel/runtime-7.14.0" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.13.10";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz";
-        sha512 = "4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz";
+        sha512 = "JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==";
       };
     };
     "@babel/template-7.12.13" = {
@@ -103,22 +103,22 @@ let
         sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
       };
     };
-    "@babel/traverse-7.13.0" = {
+    "@babel/traverse-7.14.2" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.13.0";
+      version = "7.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz";
-        sha512 = "xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz";
+        sha512 = "TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==";
       };
     };
-    "@babel/types-7.13.0" = {
+    "@babel/types-7.14.4" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.13.0";
+      version = "7.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz";
-        sha512 = "hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz";
+        sha512 = "lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==";
       };
     };
     "@dabh/diagnostics-2.0.2" = {
@@ -130,40 +130,40 @@ let
         sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
-    "@eslint/eslintrc-0.4.0" = {
+    "@eslint/eslintrc-0.4.2" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "0.4.0";
+      version = "0.4.2";
       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.2.tgz";
+        sha512 = "8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==";
       };
     };
-    "@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-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.7" = {
       name = "_at_nodelib_slash_fs.walk";
       packageName = "@nodelib/fs.walk";
-      version = "1.2.6";
+      version = "1.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
-        sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz";
+        sha512 = "BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==";
       };
     };
     "@sentry/core-5.30.0" = {
@@ -229,13 +229,31 @@ let
         sha512 = "zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==";
       };
     };
-    "@types/bluebird-3.5.33" = {
+    "@sindresorhus/is-0.14.0" = {
+      name = "_at_sindresorhus_slash_is";
+      packageName = "@sindresorhus/is";
+      version = "0.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz";
+        sha512 = "9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==";
+      };
+    };
+    "@szmarczak/http-timer-1.1.2" = {
+      name = "_at_szmarczak_slash_http-timer";
+      packageName = "@szmarczak/http-timer";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
+        sha512 = "XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==";
+      };
+    };
+    "@types/bluebird-3.5.35" = {
       name = "_at_types_slash_bluebird";
       packageName = "@types/bluebird";
-      version = "3.5.33";
+      version = "3.5.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.33.tgz";
-        sha512 = "ndEo1xvnYeHxm7I/5sF6tBvnsA4Tdi3zj1keRKRs12SP+2ye2A27NDJ1B6PqkfMbGAcT+mqQVqbZRIrhfOp5PQ==";
+        url = "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.35.tgz";
+        sha512 = "2WeeXK7BuQo7yPI4WGOBum90SzF/f8rqlvpaXx4rjeTmNssGRDHWf7fgDUH90xMB3sUOu716fUK5d+OVx0+ncQ==";
       };
     };
     "@types/body-parser-1.19.0" = {
@@ -256,22 +274,22 @@ let
         sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
       };
     };
-    "@types/express-4.17.11" = {
+    "@types/express-4.17.12" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
-      version = "4.17.11";
+      version = "4.17.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz";
-        sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==";
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz";
+        sha512 = "pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==";
       };
     };
-    "@types/express-serve-static-core-4.17.19" = {
+    "@types/express-serve-static-core-4.17.21" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.19";
+      version = "4.17.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz";
-        sha512 = "DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.21.tgz";
+        sha512 = "gwCiEZqW6f7EoR8TTEfalyEhb1zA5jQJnRngr97+3pzMaO1RKoI1w2bw07TK72renMUVWcWS5mLI6rk1NqN0nA==";
       };
     };
     "@types/extend-3.0.1" = {
@@ -319,13 +337,13 @@ let
         sha512 = "qHQRLZ0e6l/XK/2Qb2v5N1ujmdttYkUvnRI4nPIifMy6vYwoAnER10xhX13isWjjQtNsrjNLinZgDDguzPmEKw==";
       };
     };
-    "@types/node-14.14.35" = {
+    "@types/node-15.12.2" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.35";
+      version = "15.12.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz";
-        sha512 = "Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==";
+        url = "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz";
+        sha512 = "zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==";
       };
     };
     "@types/nopt-3.0.29" = {
@@ -337,13 +355,13 @@ let
         sha1 = "f19df3db4c97ee1459a2740028320a71d70964ce";
       };
     };
-    "@types/pg-7.14.11" = {
+    "@types/pg-8.6.0" = {
       name = "_at_types_slash_pg";
       packageName = "@types/pg";
-      version = "7.14.11";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/pg/-/pg-7.14.11.tgz";
-        sha512 = "EnZkZ1OMw9DvNfQkn2MTJrwKmhJYDEs5ujWrPfvseWNoI95N8B4HzU/Ltrq5ZfYxDX/Zg8mTzwr6UAyTjjFvXA==";
+        url = "https://registry.npmjs.org/@types/pg/-/pg-8.6.0.tgz";
+        sha512 = "3JXFrsl8COoqVB1+2Pqelx6soaiFVXzkT3fkuSNe7GB40ysfT0FHphZFPiqIXpMyTHSFRdLTyZzrFBrJRPAArA==";
       };
     };
     "@types/qs-6.9.6" = {
@@ -364,13 +382,13 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
-    "@types/sanitize-html-1.27.1" = {
+    "@types/sanitize-html-2.3.1" = {
       name = "_at_types_slash_sanitize-html";
       packageName = "@types/sanitize-html";
-      version = "1.27.1";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-1.27.1.tgz";
-        sha512 = "TW5gfZYplKQYO8003WrxaDgwyJsEG74920S+Ei7zB9mbUFgm7l2NvFAumXzxL+1fOwM2I9A+G/1rgiEebQOxcQ==";
+        url = "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.3.1.tgz";
+        sha512 = "+UT/XRluJuCunRftwO6OzG6WOBgJ+J3sROIoSJWX+7PB2FtTJTEJLrHCcNwzCQc0r60bej3WAbaigK+VZtZCGw==";
       };
     };
     "@types/serve-static-1.13.9" = {
@@ -382,67 +400,67 @@ let
         sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==";
       };
     };
-    "@typescript-eslint/eslint-plugin-4.18.0" = {
+    "@typescript-eslint/eslint-plugin-4.26.1" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.18.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz";
-        sha512 = "Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.1.tgz";
+        sha512 = "aoIusj/8CR+xDWmZxARivZjbMBQTT9dImUtdZ8tVCVRXgBUuuZyM5Of5A9D9arQPxbi/0rlJLcuArclz/rCMJw==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.18.0" = {
+    "@typescript-eslint/experimental-utils-4.26.1" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.18.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz";
-        sha512 = "92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.1.tgz";
+        sha512 = "sQHBugRhrXzRCs9PaGg6rowie4i8s/iD/DpTB+EXte8OMDfdCG5TvO73XlO9Wc/zi0uyN4qOmX9hIjQEyhnbmQ==";
       };
     };
-    "@typescript-eslint/parser-4.18.0" = {
+    "@typescript-eslint/parser-4.26.1" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.18.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.18.0.tgz";
-        sha512 = "W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.1.tgz";
+        sha512 = "q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ==";
       };
     };
-    "@typescript-eslint/scope-manager-4.18.0" = {
+    "@typescript-eslint/scope-manager-4.26.1" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.18.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz";
-        sha512 = "olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.26.1.tgz";
+        sha512 = "TW1X2p62FQ8Rlne+WEShyd7ac2LA6o27S9i131W4NwDSfyeVlQWhw8ylldNNS8JG6oJB9Ha9Xyc+IUcqipvheQ==";
       };
     };
-    "@typescript-eslint/types-4.18.0" = {
+    "@typescript-eslint/types-4.26.1" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.18.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.18.0.tgz";
-        sha512 = "/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.26.1.tgz";
+        sha512 = "STyMPxR3cS+LaNvS8yK15rb8Y0iL0tFXq0uyl6gY45glyI7w0CsyqyEXl/Fa0JlQy+pVANeK3sbwPneCbWE7yg==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.18.0" = {
+    "@typescript-eslint/typescript-estree-4.26.1" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.18.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz";
-        sha512 = "wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.1.tgz";
+        sha512 = "l3ZXob+h0NQzz80lBGaykdScYaiEbFqznEs99uwzm8fPHhDjwaBFfQkjUC/slw6Sm7npFL8qrGEAMxcfBsBJUg==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.18.0" = {
+    "@typescript-eslint/visitor-keys-4.26.1" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.18.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz";
-        sha512 = "Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.1.tgz";
+        sha512 = "IGouNSSd+6x/fHtYRyLOM6/C+QxMDzWlDtN41ea+flWuSF9g02iqcIlX8wM53JkfljoIjP0U+yp7SiTS1onEkw==";
       };
     };
     "abbrev-1.1.1" = {
@@ -499,13 +517,13 @@ let
         sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
       };
     };
-    "ajv-7.2.1" = {
+    "ajv-8.6.0" = {
       name = "ajv";
       packageName = "ajv";
-      version = "7.2.1";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-7.2.1.tgz";
-        sha512 = "+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz";
+        sha512 = "cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==";
       };
     };
     "another-json-0.2.0" = {
@@ -517,6 +535,15 @@ let
         sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
       };
     };
+    "ansi-align-3.0.0" = {
+      name = "ansi-align";
+      packageName = "ansi-align";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz";
+        sha512 = "ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==";
+      };
+    };
     "ansi-colors-4.1.1" = {
       name = "ansi-colors";
       packageName = "ansi-colors";
@@ -562,6 +589,15 @@ let
         sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     };
+    "anymatch-3.1.2" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz";
+        sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==";
+      };
+    };
     "append-transform-1.0.0" = {
       name = "append-transform";
       packageName = "append-transform";
@@ -688,13 +724,13 @@ let
         sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==";
       };
     };
-    "balanced-match-1.0.0" = {
+    "balanced-match-1.0.2" = {
       name = "balanced-match";
       packageName = "balanced-match";
-      version = "1.0.0";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
     "base-x-3.0.8" = {
@@ -724,6 +760,15 @@ let
         sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
       };
     };
+    "binary-extensions-2.2.0" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==";
+      };
+    };
     "binary-search-tree-0.2.5" = {
       name = "binary-search-tree";
       packageName = "binary-search-tree";
@@ -760,6 +805,15 @@ let
         sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
+    "boxen-4.2.0" = {
+      name = "boxen";
+      packageName = "boxen";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz";
+        sha512 = "eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==";
+      };
+    };
     "brace-expansion-1.1.11" = {
       name = "brace-expansion";
       packageName = "brace-expansion";
@@ -814,6 +868,15 @@ let
         sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
+    "cacheable-request-6.1.0" = {
+      name = "cacheable-request";
+      packageName = "cacheable-request";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz";
+        sha512 = "Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==";
+      };
+    };
     "caching-transform-3.0.2" = {
       name = "caching-transform";
       packageName = "caching-transform";
@@ -823,6 +886,15 @@ let
         sha512 = "Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==";
       };
     };
+    "call-bind-1.0.2" = {
+      name = "call-bind";
+      packageName = "call-bind";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";
+        sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==";
+      };
+    };
     "callsites-3.1.0" = {
       name = "callsites";
       packageName = "callsites";
@@ -868,13 +940,49 @@ let
         sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==";
       };
     };
-    "chalk-4.1.0" = {
+    "chalk-4.1.1" = {
       name = "chalk";
       packageName = "chalk";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
-        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz";
+        sha512 = "diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==";
+      };
+    };
+    "chardet-1.3.0" = {
+      name = "chardet";
+      packageName = "chardet";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chardet/-/chardet-1.3.0.tgz";
+        sha512 = "cyTQGGptIjIT+CMGT5J/0l9c6Fb+565GCFjjeUTKxUO7w3oR+FcNCMEKTn5xtVKaLFmladN7QF68IiQsv5Fbdw==";
+      };
+    };
+    "chokidar-3.5.1" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz";
+        sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==";
+      };
+    };
+    "ci-info-2.0.0" = {
+      name = "ci-info";
+      packageName = "ci-info";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz";
+        sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
+      };
+    };
+    "cli-boxes-2.2.1" = {
+      name = "cli-boxes";
+      packageName = "cli-boxes";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz";
+        sha512 = "y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==";
       };
     };
     "cliui-5.0.0" = {
@@ -886,6 +994,15 @@ let
         sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
       };
     };
+    "clone-response-1.0.2" = {
+      name = "clone-response";
+      packageName = "clone-response";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz";
+        sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+      };
+    };
     "color-3.0.0" = {
       name = "color";
       packageName = "color";
@@ -940,6 +1057,15 @@ let
         sha512 = "jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==";
       };
     };
+    "colorette-1.2.2" = {
+      name = "colorette";
+      packageName = "colorette";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz";
+        sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==";
+      };
+    };
     "colors-1.4.0" = {
       name = "colors";
       packageName = "colors";
@@ -985,6 +1111,15 @@ let
         sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
       };
     };
+    "configstore-5.0.1" = {
+      name = "configstore";
+      packageName = "configstore";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz";
+        sha512 = "aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==";
+      };
+    };
     "content-disposition-0.5.3" = {
       name = "content-disposition";
       packageName = "content-disposition";
@@ -1075,6 +1210,15 @@ let
         sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     };
+    "crypto-random-string-2.0.0" = {
+      name = "crypto-random-string";
+      packageName = "crypto-random-string";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
+        sha512 = "v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==";
+      };
+    };
     "dashdash-1.14.1" = {
       name = "dashdash";
       packageName = "dashdash";
@@ -1093,6 +1237,15 @@ let
         sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
+    "debug-3.2.7" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz";
+        sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
+      };
+    };
     "debug-4.3.2" = {
       name = "debug";
       packageName = "debug";
@@ -1111,6 +1264,24 @@ let
         sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
       };
     };
+    "decompress-response-3.3.0" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz";
+        sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+      };
+    };
+    "deep-extend-0.6.0" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+      };
+    };
     "deep-is-0.1.3" = {
       name = "deep-is";
       packageName = "deep-is";
@@ -1120,6 +1291,15 @@ let
         sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
       };
     };
+    "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-require-extensions-2.0.0" = {
       name = "default-require-extensions";
       packageName = "default-require-extensions";
@@ -1129,6 +1309,15 @@ let
         sha1 = "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7";
       };
     };
+    "defer-to-connect-1.1.3" = {
+      name = "defer-to-connect";
+      packageName = "defer-to-connect";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
+        sha512 = "0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==";
+      };
+    };
     "delayed-stream-1.0.0" = {
       name = "delayed-stream";
       packageName = "delayed-stream";
@@ -1183,22 +1372,22 @@ let
         sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
       };
     };
-    "dom-serializer-1.2.0" = {
+    "dom-serializer-1.3.2" = {
       name = "dom-serializer";
       packageName = "dom-serializer";
-      version = "1.2.0";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz";
-        sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==";
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz";
+        sha512 = "5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==";
       };
     };
-    "domelementtype-2.1.0" = {
+    "domelementtype-2.2.0" = {
       name = "domelementtype";
       packageName = "domelementtype";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz";
-        sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==";
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
+        sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
       };
     };
     "domhandler-3.3.0" = {
@@ -1210,22 +1399,40 @@ let
         sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
       };
     };
-    "domhandler-4.0.0" = {
+    "domhandler-4.2.0" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.0.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz";
-        sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz";
+        sha512 = "zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==";
       };
     };
-    "domutils-2.5.0" = {
+    "domutils-2.7.0" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.5.0";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz";
-        sha512 = "Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz";
+        sha512 = "8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==";
+      };
+    };
+    "dot-prop-5.3.0" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz";
+        sha512 = "QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==";
+      };
+    };
+    "duplexer3-0.1.4" = {
+      name = "duplexer3";
+      packageName = "duplexer3";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz";
+        sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
       };
     };
     "ecc-jsbn-0.1.2" = {
@@ -1282,6 +1489,15 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
     "enquirer-2.3.6" = {
       name = "enquirer";
       packageName = "enquirer";
@@ -1318,6 +1534,15 @@ let
         sha512 = "Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==";
       };
     };
+    "escape-goat-2.1.1" = {
+      name = "escape-goat";
+      packageName = "escape-goat";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz";
+        sha512 = "8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==";
+      };
+    };
     "escape-html-1.0.3" = {
       name = "escape-html";
       packageName = "escape-html";
@@ -1345,13 +1570,22 @@ let
         sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
       };
     };
-    "eslint-7.22.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.28.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.22.0";
+      version = "7.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz";
-        sha512 = "3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz";
+        sha512 = "UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==";
       };
     };
     "eslint-scope-5.1.1" = {
@@ -1372,6 +1606,15 @@ let
         sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
       };
     };
+    "eslint-utils-3.0.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz";
+        sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==";
+      };
+    };
     "eslint-visitor-keys-1.3.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
@@ -1381,13 +1624,13 @@ let
         sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
       };
     };
-    "eslint-visitor-keys-2.0.0" = {
+    "eslint-visitor-keys-2.1.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
-        sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
       };
     };
     "espree-7.3.1" = {
@@ -1561,13 +1804,13 @@ let
         sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
       };
     };
-    "fecha-4.2.0" = {
+    "fecha-4.2.1" = {
       name = "fecha";
       packageName = "fecha";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
-        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz";
+        sha512 = "MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==";
       };
     };
     "file-entry-cache-6.0.1" = {
@@ -1687,13 +1930,13 @@ let
         sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
       };
     };
-    "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==";
       };
     };
     "fresh-0.5.2" = {
@@ -1714,6 +1957,15 @@ let
         sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
       };
     };
+    "fsevents-2.3.2" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz";
+        sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==";
+      };
+    };
     "function-bind-1.1.1" = {
       name = "function-bind";
       packageName = "function-bind";
@@ -1759,6 +2011,33 @@ let
         sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     };
+    "get-intrinsic-1.1.1" = {
+      name = "get-intrinsic";
+      packageName = "get-intrinsic";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha512 = "kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==";
+      };
+    };
+    "get-stream-4.1.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
+        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
+      };
+    };
+    "get-stream-5.2.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+      };
+    };
     "getpass-0.1.7" = {
       name = "getpass";
       packageName = "getpass";
@@ -1768,13 +2047,13 @@ let
         sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
       };
     };
-    "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-5.1.2" = {
@@ -1795,6 +2074,15 @@ let
         sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
       };
     };
+    "global-dirs-2.1.0" = {
+      name = "global-dirs";
+      packageName = "global-dirs";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz";
+        sha512 = "MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==";
+      };
+    };
     "globals-11.12.0" = {
       name = "globals";
       packageName = "globals";
@@ -1804,31 +2092,31 @@ let
         sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
       };
     };
-    "globals-12.4.0" = {
+    "globals-13.9.0" = {
       name = "globals";
       packageName = "globals";
-      version = "12.4.0";
+      version = "13.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
-        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
+        url = "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz";
+        sha512 = "74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==";
       };
     };
-    "globals-13.6.0" = {
-      name = "globals";
-      packageName = "globals";
-      version = "13.6.0";
+    "globby-11.0.3" = {
+      name = "globby";
+      packageName = "globby";
+      version = "11.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz";
-        sha512 = "YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz";
+        sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==";
       };
     };
-    "globby-11.0.2" = {
-      name = "globby";
-      packageName = "globby";
-      version = "11.0.2";
+    "got-9.6.0" = {
+      name = "got";
+      packageName = "got";
+      version = "9.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz";
-        sha512 = "2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==";
+        url = "https://registry.npmjs.org/got/-/got-9.6.0.tgz";
+        sha512 = "R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==";
       };
     };
     "graceful-fs-4.2.6" = {
@@ -1885,6 +2173,24 @@ let
         sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
+    "has-symbols-1.0.2" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
+      };
+    };
+    "has-yarn-2.1.0" = {
+      name = "has-yarn";
+      packageName = "has-yarn";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz";
+        sha512 = "UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==";
+      };
+    };
     "hash.js-1.1.7" = {
       name = "hash.js";
       packageName = "hash.js";
@@ -1912,13 +2218,13 @@ let
         sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
-    "hosted-git-info-2.8.8" = {
+    "hosted-git-info-2.8.9" = {
       name = "hosted-git-info";
       packageName = "hosted-git-info";
-      version = "2.8.8";
+      version = "2.8.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
+        sha512 = "mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==";
       };
     };
     "html-escaper-2.0.2" = {
@@ -1948,6 +2254,24 @@ 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-cache-semantics-4.1.0" = {
+      name = "http-cache-semantics";
+      packageName = "http-cache-semantics";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
+        sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==";
+      };
+    };
     "http-errors-1.7.2" = {
       name = "http-errors";
       packageName = "http-errors";
@@ -1993,6 +2317,15 @@ let
         sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     };
+    "iconv-lite-0.6.3" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz";
+        sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
+      };
+    };
     "ignore-4.0.6" = {
       name = "ignore";
       packageName = "ignore";
@@ -2011,6 +2344,15 @@ let
         sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
       };
     };
+    "ignore-by-default-1.0.1" = {
+      name = "ignore-by-default";
+      packageName = "ignore-by-default";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
+        sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
+      };
+    };
     "immediate-3.0.6" = {
       name = "immediate";
       packageName = "immediate";
@@ -2029,6 +2371,15 @@ let
         sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
       };
     };
+    "import-lazy-2.1.0" = {
+      name = "import-lazy";
+      packageName = "import-lazy";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz";
+        sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+      };
+    };
     "imurmurhash-0.1.4" = {
       name = "imurmurhash";
       packageName = "imurmurhash";
@@ -2056,6 +2407,15 @@ let
         sha1 = "633c2c83e3da42a502f52466022480f4208261de";
       };
     };
+    "ini-1.3.7" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz";
+        sha512 = "iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==";
+      };
+    };
     "ipaddr.js-1.9.1" = {
       name = "ipaddr.js";
       packageName = "ipaddr.js";
@@ -2074,12 +2434,12 @@ let
         sha512 = "HtszKchBQTcqw1DC09uD7i7vvMayHGM1OCo6AHt5pkgZEyo99ClhHTMJdf+Ezc9ovuNNxcH89QfyclGthjZJOw==";
       };
     };
-    "irc-git://github.com/matrix-org/node-irc#9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7" = {
+    "irc-git+https://matrix-org@github.com/matrix-org/node-irc.git#9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7" = {
       name = "irc";
       packageName = "irc";
       version = "0.3.12";
       src = fetchgit {
-        url = "git://github.com/matrix-org/node-irc";
+        url = "https://matrix-org@github.com/matrix-org/node-irc.git";
         rev = "9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7";
         sha256 = "0785d44389d34d7e7c614437c8c8e108f32b5d5022e6f29c47a6a40090d277a7";
       };
@@ -2102,13 +2462,31 @@ let
         sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
-    "is-core-module-2.2.0" = {
+    "is-binary-path-2.1.0" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
+      };
+    };
+    "is-ci-2.0.0" = {
+      name = "is-ci";
+      packageName = "is-ci";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz";
+        sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==";
+      };
+    };
+    "is-core-module-2.4.0" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.2.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz";
-        sha512 = "XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz";
+        sha512 = "6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==";
       };
     };
     "is-extglob-2.1.1" = {
@@ -2147,6 +2525,15 @@ let
         sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
       };
     };
+    "is-installed-globally-0.3.2" = {
+      name = "is-installed-globally";
+      packageName = "is-installed-globally";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz";
+        sha512 = "wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==";
+      };
+    };
     "is-my-ip-valid-1.0.0" = {
       name = "is-my-ip-valid";
       packageName = "is-my-ip-valid";
@@ -2165,6 +2552,15 @@ let
         sha512 = "VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A==";
       };
     };
+    "is-npm-4.0.0" = {
+      name = "is-npm";
+      packageName = "is-npm";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz";
+        sha512 = "96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==";
+      };
+    };
     "is-number-7.0.0" = {
       name = "is-number";
       packageName = "is-number";
@@ -2174,6 +2570,15 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
+    "is-obj-2.0.0" = {
+      name = "is-obj";
+      packageName = "is-obj";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz";
+        sha512 = "drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==";
+      };
+    };
     "is-object-1.0.2" = {
       name = "is-object";
       packageName = "is-object";
@@ -2183,6 +2588,24 @@ let
         sha512 = "2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==";
       };
     };
+    "is-path-inside-3.0.3" = {
+      name = "is-path-inside";
+      packageName = "is-path-inside";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz";
+        sha512 = "Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==";
+      };
+    };
+    "is-plain-object-5.0.0" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz";
+        sha512 = "VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==";
+      };
+    };
     "is-promise-2.2.2" = {
       name = "is-promise";
       packageName = "is-promise";
@@ -2228,6 +2651,15 @@ let
         sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
       };
     };
+    "is-yarn-global-0.3.0" = {
+      name = "is-yarn-global";
+      packageName = "is-yarn-global";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz";
+        sha512 = "VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==";
+      };
+    };
     "isarray-1.0.0" = {
       name = "isarray";
       packageName = "isarray";
@@ -2309,22 +2741,22 @@ let
         sha512 = "uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==";
       };
     };
-    "jasmine-3.6.4" = {
+    "jasmine-3.7.0" = {
       name = "jasmine";
       packageName = "jasmine";
-      version = "3.6.4";
+      version = "3.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jasmine/-/jasmine-3.6.4.tgz";
-        sha512 = "hIeOou6y0BgCOKYgXYveQvlY+PTHgDPajFf+vLCYbMTQ+VjAP9+EQv0nuC9+gyCAAWISRFauB1XUb9kFuOKtcQ==";
+        url = "https://registry.npmjs.org/jasmine/-/jasmine-3.7.0.tgz";
+        sha512 = "wlzGQ+cIFzMEsI+wDqmOwvnjTvolLFwlcpYLCqSPPH0prOQaW3P+IzMhHYn934l1imNvw07oCyX+vGUv3wmtSQ==";
       };
     };
-    "jasmine-core-3.6.0" = {
+    "jasmine-core-3.7.1" = {
       name = "jasmine-core";
       packageName = "jasmine-core";
-      version = "3.6.0";
+      version = "3.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz";
-        sha512 = "8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==";
+        url = "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.7.1.tgz";
+        sha512 = "DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ==";
       };
     };
     "js-tokens-4.0.0" = {
@@ -2345,13 +2777,13 @@ let
         sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
       };
     };
-    "js-yaml-4.0.0" = {
+    "js-yaml-4.1.0" = {
       name = "js-yaml";
       packageName = "js-yaml";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz";
-        sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
       };
     };
     "jsbn-0.1.1" = {
@@ -2372,6 +2804,15 @@ let
         sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
       };
     };
+    "json-buffer-3.0.0" = {
+      name = "json-buffer";
+      packageName = "json-buffer";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz";
+        sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898";
+      };
+    };
     "json-parse-better-errors-1.0.2" = {
       name = "json-parse-better-errors";
       packageName = "json-parse-better-errors";
@@ -2444,6 +2885,24 @@ let
         sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
       };
     };
+    "keyv-3.1.0" = {
+      name = "keyv";
+      packageName = "keyv";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz";
+        sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
+      };
+    };
+    "klona-2.0.4" = {
+      name = "klona";
+      packageName = "klona";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz";
+        sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==";
+      };
+    };
     "kuler-2.0.0" = {
       name = "kuler";
       packageName = "kuler";
@@ -2453,6 +2912,15 @@ let
         sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
       };
     };
+    "latest-version-5.1.0" = {
+      name = "latest-version";
+      packageName = "latest-version";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz";
+        sha512 = "weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==";
+      };
+    };
     "levn-0.4.1" = {
       name = "levn";
       packageName = "levn";
@@ -2507,6 +2975,15 @@ let
         sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     };
+    "lodash.clonedeep-4.5.0" = {
+      name = "lodash.clonedeep";
+      packageName = "lodash.clonedeep";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    };
     "lodash.flattendeep-4.4.0" = {
       name = "lodash.flattendeep";
       packageName = "lodash.flattendeep";
@@ -2516,6 +2993,24 @@ let
         sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
       };
     };
+    "lodash.merge-4.6.2" = {
+      name = "lodash.merge";
+      packageName = "lodash.merge";
+      version = "4.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz";
+        sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==";
+      };
+    };
+    "lodash.truncate-4.4.2" = {
+      name = "lodash.truncate";
+      packageName = "lodash.truncate";
+      version = "4.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
+      };
+    };
     "logform-2.2.0" = {
       name = "logform";
       packageName = "logform";
@@ -2543,6 +3038,24 @@ let
         sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==";
       };
     };
+    "lowercase-keys-1.0.1" = {
+      name = "lowercase-keys";
+      packageName = "lowercase-keys";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+        sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==";
+      };
+    };
+    "lowercase-keys-2.0.0" = {
+      name = "lowercase-keys";
+      packageName = "lowercase-keys";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+        sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==";
+      };
+    };
     "lru-cache-4.1.5" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -2588,6 +3101,15 @@ let
         sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
       };
     };
+    "make-dir-3.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
+      };
+    };
     "matrix-appservice-0.8.0" = {
       name = "matrix-appservice";
       packageName = "matrix-appservice";
@@ -2597,13 +3119,13 @@ let
         sha512 = "mfgMpmV3dWLtzrd4V/3XtqUD0P44I/mTgsRreW5jMhSaUnnRGZbpptBw2q4/axbLjw2FarlWtOVgertDGMtccA==";
       };
     };
-    "matrix-appservice-bridge-2.6.0" = {
+    "matrix-appservice-bridge-2.6.1" = {
       name = "matrix-appservice-bridge";
       packageName = "matrix-appservice-bridge";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-2.6.0.tgz";
-        sha512 = "o1KHQHG1GdfUhTFBXVLztwbTowuCFO9/h8n2zdkRK/bZsdcXSFQVfUwDtRULcyinD4N7r0Lrwlg1LyR0pg2WSw==";
+        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-2.6.1.tgz";
+        sha512 = "XNOziYVQoTQ9cym3Z2acXy8CKRXPVcEbni0XXCUfvu4O9+cBjUPywtRmhDBENsl/bgGbFKqbJNr68E/j9j+Tbw==";
       };
     };
     "matrix-bot-sdk-0.4.0" = {
@@ -2615,13 +3137,13 @@ let
         sha512 = "ZIICFEYDsSX3emPnVRTV1FIV22zkt7KiJbTYN4rHQ3Z/rk66RB7Y+TMHxrkJCqPs3xVdaGmGkh5m+hNi4fibRg==";
       };
     };
-    "matrix-js-sdk-9.9.0" = {
+    "matrix-js-sdk-9.11.0" = {
       name = "matrix-js-sdk";
       packageName = "matrix-js-sdk";
-      version = "9.9.0";
+      version = "9.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.9.0.tgz";
-        sha512 = "rgy9b8D+GzjK3wfdmxDr42fxNV13fK12cvQD1qnsFzqPyJGeg++cazH/+7HxL/uuW/WQR6HAmfc7wo9VQegWtg==";
+        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.11.0.tgz";
+        sha512 = "wP28ybOxyQ7lbC48QddRORYr8atEwbTqDOsu8H6u9jTTgB2qqczI/bkSoXHtutODuSeLY5x0UuwLcxVCy4yxVQ==";
       };
     };
     "matrix-lastactive-0.1.5" = {
@@ -2633,6 +3155,15 @@ let
         sha512 = "JFIMJPNGGqi0myzIlN94SQReUbCrWi1TW5PZih1OGXzUj2wXYz3puktV/f64HZYn6D1ZKcwxZdLuNCG8cRuCyw==";
       };
     };
+    "matrix-org-irc-1.0.0-alpha4" = {
+      name = "matrix-org-irc";
+      packageName = "matrix-org-irc";
+      version = "1.0.0-alpha4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-org-irc/-/matrix-org-irc-1.0.0-alpha4.tgz";
+        sha512 = "2wKzQSpITrG9vChfw9d0goDcQZgKdaL7hgPzQwaybO9NF96HLarXFhznaFtngJiaaBAN52jkEetsQKV/lEfPqA==";
+      };
+    };
     "media-typer-0.3.0" = {
       name = "media-typer";
       packageName = "media-typer";
@@ -2678,13 +3209,13 @@ let
         sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
       };
     };
-    "micromatch-4.0.2" = {
+    "micromatch-4.0.4" = {
       name = "micromatch";
       packageName = "micromatch";
-      version = "4.0.2";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
-        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz";
+        sha512 = "pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==";
       };
     };
     "mime-1.6.0" = {
@@ -2696,22 +3227,31 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-db-1.46.0" = {
+    "mime-db-1.48.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.46.0";
+      version = "1.48.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz";
-        sha512 = "svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz";
+        sha512 = "FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==";
       };
     };
-    "mime-types-2.1.29" = {
+    "mime-types-2.1.31" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.29";
+      version = "2.1.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz";
+        sha512 = "XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==";
+      };
+    };
+    "mimic-response-1.0.1" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz";
-        sha512 = "Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==";
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
+        sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
       };
     };
     "minimalistic-assert-1.0.1" = {
@@ -2813,6 +3353,15 @@ let
         sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
       };
     };
+    "nanoid-3.1.23" = {
+      name = "nanoid";
+      packageName = "nanoid";
+      version = "3.1.23";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz";
+        sha512 = "FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==";
+      };
+    };
     "natural-compare-1.4.0" = {
       name = "natural-compare";
       packageName = "natural-compare";
@@ -2858,6 +3407,24 @@ let
         sha512 = "MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==";
       };
     };
+    "nodemon-2.0.7" = {
+      name = "nodemon";
+      packageName = "nodemon";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz";
+        sha512 = "XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==";
+      };
+    };
+    "nopt-1.0.10" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
+        sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+      };
+    };
     "nopt-3.0.6" = {
       name = "nopt";
       packageName = "nopt";
@@ -2885,6 +3452,24 @@ let
         sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
       };
     };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "normalize-url-4.5.1" = {
+      name = "normalize-url";
+      packageName = "normalize-url";
+      version = "4.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz";
+        sha512 = "9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==";
+      };
+    };
     "nyc-14.1.1" = {
       name = "nyc";
       packageName = "nyc";
@@ -2903,13 +3488,22 @@ let
         sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
-    "object-hash-2.1.1" = {
+    "object-hash-2.2.0" = {
       name = "object-hash";
       packageName = "object-hash";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz";
-        sha512 = "VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==";
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz";
+        sha512 = "gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==";
+      };
+    };
+    "object-inspect-1.10.3" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz";
+        sha512 = "e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==";
       };
     };
     "on-finished-2.3.0" = {
@@ -2975,6 +3569,15 @@ let
         sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
       };
     };
+    "p-cancelable-1.1.0" = {
+      name = "p-cancelable";
+      packageName = "p-cancelable";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz";
+        sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
+      };
+    };
     "p-finally-1.0.0" = {
       name = "p-finally";
       packageName = "p-finally";
@@ -3038,6 +3641,15 @@ let
         sha512 = "lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==";
       };
     };
+    "package-json-6.5.0" = {
+      name = "package-json";
+      packageName = "package-json";
+      version = "6.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz";
+        sha512 = "k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==";
+      };
+    };
     "packet-reader-1.0.0" = {
       name = "packet-reader";
       packageName = "packet-reader";
@@ -3110,13 +3722,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" = {
@@ -3155,22 +3767,22 @@ let
         sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "pg-8.5.1" = {
+    "pg-8.6.0" = {
       name = "pg";
       packageName = "pg";
-      version = "8.5.1";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz";
-        sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
+        url = "https://registry.npmjs.org/pg/-/pg-8.6.0.tgz";
+        sha512 = "qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ==";
       };
     };
-    "pg-connection-string-2.4.0" = {
+    "pg-connection-string-2.5.0" = {
       name = "pg-connection-string";
       packageName = "pg-connection-string";
-      version = "2.4.0";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
-        sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz";
+        sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==";
       };
     };
     "pg-int8-1.0.1" = {
@@ -3182,22 +3794,22 @@ let
         sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
       };
     };
-    "pg-pool-3.2.2" = {
+    "pg-pool-3.3.0" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.2.2";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
-        sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.3.0.tgz";
+        sha512 = "0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg==";
       };
     };
-    "pg-protocol-1.4.0" = {
+    "pg-protocol-1.5.0" = {
       name = "pg-protocol";
       packageName = "pg-protocol";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
-        sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz";
+        sha512 = "muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==";
       };
     };
     "pg-types-2.2.0" = {
@@ -3218,13 +3830,13 @@ let
         sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
       };
     };
-    "picomatch-2.2.2" = {
+    "picomatch-2.3.0" = {
       name = "picomatch";
       packageName = "picomatch";
-      version = "2.2.2";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
-        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz";
+        sha512 = "lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==";
       };
     };
     "pify-3.0.0" = {
@@ -3263,6 +3875,15 @@ let
         sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
       };
     };
+    "postcss-8.3.0" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz";
+        sha512 = "+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==";
+      };
+    };
     "postgres-array-2.0.0" = {
       name = "postgres-array";
       packageName = "postgres-array";
@@ -3308,6 +3929,15 @@ let
         sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
       };
     };
+    "prepend-http-2.0.0" = {
+      name = "prepend-http";
+      packageName = "prepend-http";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz";
+        sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897";
+      };
+    };
     "process-nextick-args-2.0.1" = {
       name = "process-nextick-args";
       packageName = "process-nextick-args";
@@ -3335,13 +3965,13 @@ let
         sha512 = "jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==";
       };
     };
-    "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==";
       };
     };
     "proxyquire-1.8.0" = {
@@ -3371,6 +4001,24 @@ let
         sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
       };
     };
+    "pstree.remy-1.1.8" = {
+      name = "pstree.remy";
+      packageName = "pstree.remy";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz";
+        sha512 = "77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==";
+      };
+    };
+    "pump-3.0.0" = {
+      name = "pump";
+      packageName = "pump";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+      };
+    };
     "punycode-2.1.1" = {
       name = "punycode";
       packageName = "punycode";
@@ -3380,6 +4028,24 @@ let
         sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     };
+    "pupa-2.1.1" = {
+      name = "pupa";
+      packageName = "pupa";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz";
+        sha512 = "l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==";
+      };
+    };
+    "qs-6.10.1" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz";
+        sha512 = "M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==";
+      };
+    };
     "qs-6.5.2" = {
       name = "qs";
       packageName = "qs";
@@ -3398,22 +4064,13 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
-    "qs-6.9.6" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz";
-        sha512 = "TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==";
-      };
-    };
-    "queue-microtask-1.2.2" = {
+    "queue-microtask-1.2.3" = {
       name = "queue-microtask";
       packageName = "queue-microtask";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz";
-        sha512 = "dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==";
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
       };
     };
     "quick-lru-4.0.1" = {
@@ -3443,6 +4100,15 @@ let
         sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     };
+    "rc-1.2.8" = {
+      name = "rc";
+      packageName = "rc";
+      version = "1.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+      };
+    };
     "read-pkg-3.0.0" = {
       name = "read-pkg";
       packageName = "read-pkg";
@@ -3479,6 +4145,15 @@ let
         sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
+    "readdirp-3.5.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
+        sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
+      };
+    };
     "rebuild-0.1.2" = {
       name = "rebuild";
       packageName = "rebuild";
@@ -3488,13 +4163,13 @@ let
         sha1 = "03acdea5515130b479092746e093daf8cf883e93";
       };
     };
-    "regenerator-runtime-0.13.7" = {
+    "regenerator-runtime-0.13.8" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.13.7";
+      version = "0.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
-        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.8.tgz";
+        sha512 = "o/ASGwgZ6UiVjspr4YnzHKF1NbBdX+mCPkSeymofk/d7I+csCYn3ZgZMMVtXeecpT8DBiI2nAlYkHd+xNCqu4A==";
       };
     };
     "regexpp-3.1.0" = {
@@ -3506,6 +4181,24 @@ let
         sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
       };
     };
+    "registry-auth-token-4.2.1" = {
+      name = "registry-auth-token";
+      packageName = "registry-auth-token";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz";
+        sha512 = "6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==";
+      };
+    };
+    "registry-url-5.1.0" = {
+      name = "registry-url";
+      packageName = "registry-url";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz";
+        sha512 = "8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==";
+      };
+    };
     "release-zalgo-1.0.0" = {
       name = "release-zalgo";
       packageName = "release-zalgo";
@@ -3605,6 +4298,15 @@ let
         sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
       };
     };
+    "responselike-1.0.2" = {
+      name = "responselike";
+      packageName = "responselike";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz";
+        sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
+      };
+    };
     "reusify-1.0.4" = {
       name = "reusify";
       packageName = "reusify";
@@ -3677,6 +4379,15 @@ let
         sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==";
       };
     };
+    "sanitize-html-2.4.0" = {
+      name = "sanitize-html";
+      packageName = "sanitize-html";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.4.0.tgz";
+        sha512 = "Y1OgkUiTPMqwZNRLPERSEi39iOebn2XJLbeiGOBhaJD/yLqtLGu6GE5w7evx177LeGgSE+4p4e107LMiydOf6A==";
+      };
+    };
     "semver-5.7.1" = {
       name = "semver";
       packageName = "semver";
@@ -3695,13 +4406,22 @@ let
         sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
       };
     };
-    "semver-7.3.4" = {
+    "semver-7.3.5" = {
       name = "semver";
       packageName = "semver";
-      version = "7.3.4";
+      version = "7.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz";
-        sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
+        sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
+      };
+    };
+    "semver-diff-3.1.1" = {
+      name = "semver-diff";
+      packageName = "semver-diff";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz";
+        sha512 = "GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==";
       };
     };
     "send-0.17.1" = {
@@ -3758,6 +4478,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";
@@ -3812,6 +4541,15 @@ let
         sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     };
+    "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==";
+      };
+    };
     "spawn-wrap-1.4.3" = {
       name = "spawn-wrap";
       packageName = "spawn-wrap";
@@ -3848,13 +4586,13 @@ let
         sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spdx-license-ids-3.0.7" = {
+    "spdx-license-ids-3.0.9" = {
       name = "spdx-license-ids";
       packageName = "spdx-license-ids";
-      version = "3.0.7";
+      version = "3.0.9";
       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.9.tgz";
+        sha512 = "Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==";
       };
     };
     "split2-3.2.2" = {
@@ -3983,6 +4721,15 @@ let
         sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
       };
     };
+    "strip-json-comments-2.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    };
     "strip-json-comments-3.1.1" = {
       name = "strip-json-comments";
       packageName = "strip-json-comments";
@@ -4019,13 +4766,13 @@ let
         sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
-    "table-6.0.7" = {
+    "table-6.7.1" = {
       name = "table";
       packageName = "table";
-      version = "6.0.7";
+      version = "6.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.0.7.tgz";
-        sha512 = "rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==";
+        url = "https://registry.npmjs.org/table/-/table-6.7.1.tgz";
+        sha512 = "ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==";
       };
     };
     "tdigest-0.1.1" = {
@@ -4037,6 +4784,15 @@ let
         sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
       };
     };
+    "term-size-2.2.1" = {
+      name = "term-size";
+      packageName = "term-size";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz";
+        sha512 = "wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==";
+      };
+    };
     "test-exclude-5.2.3" = {
       name = "test-exclude";
       packageName = "test-exclude";
@@ -4073,6 +4829,15 @@ let
         sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
       };
     };
+    "to-readable-stream-1.0.0" = {
+      name = "to-readable-stream";
+      packageName = "to-readable-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
+        sha512 = "Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==";
+      };
+    };
     "to-regex-range-5.0.1" = {
       name = "to-regex-range";
       packageName = "to-regex-range";
@@ -4091,6 +4856,15 @@ let
         sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
+    "touch-3.1.0" = {
+      name = "touch";
+      packageName = "touch";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz";
+        sha512 = "WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==";
+      };
+    };
     "tough-cookie-2.5.0" = {
       name = "tough-cookie";
       packageName = "tough-cookie";
@@ -4181,13 +4955,31 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typescript-4.2.3" = {
+    "typedarray-to-buffer-3.1.5" = {
+      name = "typedarray-to-buffer";
+      packageName = "typedarray-to-buffer";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+      };
+    };
+    "typescript-4.3.2" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.2.3";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz";
+        sha512 = "zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==";
+      };
+    };
+    "undefsafe-2.0.3" = {
+      name = "undefsafe";
+      packageName = "undefsafe";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz";
-        sha512 = "qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==";
+        url = "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz";
+        sha512 = "nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==";
       };
     };
     "underscore-1.4.4" = {
@@ -4208,6 +5000,15 @@ let
         sha512 = "7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==";
       };
     };
+    "unique-string-2.0.0" = {
+      name = "unique-string";
+      packageName = "unique-string";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz";
+        sha512 = "uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==";
+      };
+    };
     "unpipe-1.0.0" = {
       name = "unpipe";
       packageName = "unpipe";
@@ -4217,6 +5018,15 @@ let
         sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
       };
     };
+    "update-notifier-4.1.3" = {
+      name = "update-notifier";
+      packageName = "update-notifier";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz";
+        sha512 = "Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==";
+      };
+    };
     "uri-js-4.4.1" = {
       name = "uri-js";
       packageName = "uri-js";
@@ -4226,13 +5036,22 @@ let
         sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
       };
     };
-    "utf-8-validate-5.0.4" = {
+    "url-parse-lax-3.0.0" = {
+      name = "url-parse-lax";
+      packageName = "url-parse-lax";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
+        sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
+      };
+    };
+    "utf-8-validate-5.0.5" = {
       name = "utf-8-validate";
       packageName = "utf-8-validate";
-      version = "5.0.4";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz";
-        sha512 = "MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==";
+        url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz";
+        sha512 = "+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -4325,6 +5144,15 @@ let
         sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
       };
     };
+    "widest-line-3.1.0" = {
+      name = "widest-line";
+      packageName = "widest-line";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz";
+        sha512 = "NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==";
+      };
+    };
     "winston-3.3.3" = {
       name = "winston";
       packageName = "winston";
@@ -4334,13 +5162,13 @@ let
         sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
       };
     };
-    "winston-daily-rotate-file-4.5.1" = {
+    "winston-daily-rotate-file-4.5.5" = {
       name = "winston-daily-rotate-file";
       packageName = "winston-daily-rotate-file";
-      version = "4.5.1";
+      version = "4.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.1.tgz";
-        sha512 = "Uv1KeBneTKFZ9R3J6SmI61vOoPEofxS+GZGEwYRPc7QFE1fpEz648eGWxLnOeo8CBrANwsd+GfK5DCd4Ab1xAQ==";
+        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.5.tgz";
+        sha512 = "ds0WahIjiDhKCiMXmY799pDBW+58ByqIBtUcsqr4oDoXrAI3Zn+hbgFdUxzMfqA93OG0mPLYVMiotqTgE/WeWQ==";
       };
     };
     "winston-transport-4.4.0" = {
@@ -4397,6 +5225,24 @@ let
         sha512 = "GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==";
       };
     };
+    "write-file-atomic-3.0.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
+      };
+    };
+    "xdg-basedir-4.0.0" = {
+      name = "xdg-basedir";
+      packageName = "xdg-basedir";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz";
+        sha512 = "PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==";
+      };
+    };
     "xtend-4.0.2" = {
       name = "xtend";
       packageName = "xtend";
@@ -4406,13 +5252,13 @@ let
         sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
       };
     };
-    "y18n-4.0.1" = {
+    "y18n-4.0.3" = {
       name = "y18n";
       packageName = "y18n";
-      version = "4.0.1";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz";
-        sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz";
+        sha512 = "JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==";
       };
     };
     "yallist-2.1.2" = {
@@ -4463,27 +5309,27 @@ let
   };
 in
 {
-  "matrix-appservice-irc-git+https://github.com/matrix-org/matrix-appservice-irc.git#0.25.0" = nodeEnv.buildNodePackage {
+  "matrix-appservice-irc-git+https://github.com/matrix-org/matrix-appservice-irc.git#0.26.1" = nodeEnv.buildNodePackage {
     name = "matrix-appservice-irc";
     packageName = "matrix-appservice-irc";
-    version = "0.25.0";
+    version = "0.26.1";
     src = fetchgit {
       url = "https://github.com/matrix-org/matrix-appservice-irc.git";
-      rev = "a23f71633f63fd42c6ecf74d8e6111e710ec9533";
-      sha256 = "aac686d18b823c1bf0ff13343b5bc43866c8ce2b15efa9547a0d2ee4ecb4da42";
+      rev = "4edab6f7b02e0f08e7c3b24f72441be25b30b5b8";
+      sha256 = "3715ba3e80d79cea98ceb108e1df87b4d864d4f9149f147df0f3b78c691f00d6";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.14.3" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-function-name-7.14.2"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-split-export-declaration-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/helper-validator-identifier-7.14.0"
+      (sources."@babel/highlight-7.14.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -4494,30 +5340,30 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.13.11"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/parser-7.14.4"
+      sources."@babel/runtime-7.14.0"
       (sources."@babel/template-7.12.13" // {
         dependencies = [
           sources."@babel/code-frame-7.12.13"
         ];
       })
-      (sources."@babel/traverse-7.13.0" // {
+      (sources."@babel/traverse-7.14.2" // {
         dependencies = [
           sources."@babel/code-frame-7.12.13"
           sources."globals-11.12.0"
         ];
       })
-      sources."@babel/types-7.13.0"
+      sources."@babel/types-7.14.4"
       sources."@dabh/diagnostics-2.0.2"
-      (sources."@eslint/eslintrc-0.4.0" // {
+      (sources."@eslint/eslintrc-0.4.2" // {
         dependencies = [
-          sources."globals-12.4.0"
           sources."ignore-4.0.6"
+          sources."strip-json-comments-3.1.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.7"
       sources."@sentry/core-5.30.0"
       sources."@sentry/hub-5.30.0"
       sources."@sentry/minimal-5.30.0"
@@ -4525,30 +5371,49 @@ in
       sources."@sentry/tracing-5.30.0"
       sources."@sentry/types-5.30.0"
       sources."@sentry/utils-5.30.0"
-      sources."@types/bluebird-3.5.33"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/bluebird-3.5.35"
       sources."@types/body-parser-1.19.0"
       sources."@types/connect-3.4.34"
-      sources."@types/express-4.17.11"
-      sources."@types/express-serve-static-core-4.17.19"
+      sources."@types/express-4.17.12"
+      sources."@types/express-serve-static-core-4.17.21"
       sources."@types/extend-3.0.1"
       sources."@types/he-1.1.1"
       sources."@types/json-schema-7.0.7"
       sources."@types/mime-1.3.2"
       sources."@types/nedb-1.8.11"
-      sources."@types/node-14.14.35"
+      sources."@types/node-15.12.2"
       sources."@types/nopt-3.0.29"
-      sources."@types/pg-7.14.11"
+      sources."@types/pg-8.6.0"
       sources."@types/qs-6.9.6"
       sources."@types/range-parser-1.2.3"
-      sources."@types/sanitize-html-1.27.1"
+      (sources."@types/sanitize-html-2.3.1" // {
+        dependencies = [
+          sources."domhandler-4.2.0"
+          sources."htmlparser2-6.1.0"
+        ];
+      })
       sources."@types/serve-static-1.13.9"
-      sources."@typescript-eslint/eslint-plugin-4.18.0"
-      sources."@typescript-eslint/experimental-utils-4.18.0"
-      sources."@typescript-eslint/parser-4.18.0"
-      sources."@typescript-eslint/scope-manager-4.18.0"
-      sources."@typescript-eslint/types-4.18.0"
-      sources."@typescript-eslint/typescript-estree-4.18.0"
-      sources."@typescript-eslint/visitor-keys-4.18.0"
+      (sources."@typescript-eslint/eslint-plugin-4.26.1" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+          sources."semver-7.3.5"
+          sources."yallist-4.0.0"
+        ];
+      })
+      sources."@typescript-eslint/experimental-utils-4.26.1"
+      sources."@typescript-eslint/parser-4.26.1"
+      sources."@typescript-eslint/scope-manager-4.26.1"
+      sources."@typescript-eslint/types-4.26.1"
+      (sources."@typescript-eslint/typescript-estree-4.26.1" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+          sources."semver-7.3.5"
+          sources."yallist-4.0.0"
+        ];
+      })
+      sources."@typescript-eslint/visitor-keys-4.26.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."acorn-7.4.1"
@@ -4556,9 +5421,15 @@ in
       sources."agent-base-6.0.2"
       sources."ajv-6.12.6"
       sources."another-json-0.2.0"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
       sources."ansi-colors-4.1.1"
-      sources."ansi-regex-5.0.0"
+      sources."ansi-regex-4.1.0"
       sources."ansi-styles-4.3.0"
+      sources."anymatch-3.1.2"
       sources."append-transform-1.0.0"
       sources."archy-1.0.0"
       sources."argparse-1.0.10"
@@ -4571,10 +5442,11 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base-x-3.0.8"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
+      sources."binary-extensions-2.2.0"
       sources."binary-search-tree-0.2.5"
       sources."bintrees-1.0.1"
       sources."bluebird-3.7.2"
@@ -4584,26 +5456,45 @@ in
           sources."ms-2.0.0"
         ];
       })
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-request-0.3.3"
       sources."bs58-4.0.1"
       sources."buffer-writer-2.0.0"
       sources."bytes-3.1.0"
-      sources."caching-transform-3.0.2"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+        ];
+      })
+      (sources."caching-transform-3.0.2" // {
+        dependencies = [
+          sources."make-dir-2.1.0"
+          sources."pify-4.0.1"
+          sources."write-file-atomic-2.4.3"
+        ];
+      })
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
+      sources."chardet-1.3.0"
+      sources."chokidar-3.5.1"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
       (sources."cliui-5.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
         ];
       })
+      sources."clone-response-1.0.2"
       (sources."color-3.0.0" // {
         dependencies = [
           sources."color-convert-1.9.3"
@@ -4613,11 +5504,13 @@ in
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."color-string-1.5.5"
+      sources."colorette-1.2.2"
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
       sources."commondir-1.0.1"
       sources."concat-map-0.0.1"
+      sources."configstore-5.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
       sources."convert-source-map-1.7.0"
@@ -4626,37 +5519,46 @@ in
       sources."core-util-is-1.0.2"
       (sources."cp-file-6.2.0" // {
         dependencies = [
+          sources."make-dir-2.1.0"
           sources."pify-4.0.1"
         ];
       })
       sources."cross-spawn-7.0.3"
+      sources."crypto-random-string-2.0.0"
       sources."dashdash-1.14.1"
       sources."debug-4.3.2"
       sources."decamelize-1.2.0"
+      sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
       sources."deep-is-0.1.3"
+      sources."deepmerge-4.2.2"
       sources."default-require-extensions-2.0.0"
+      sources."defer-to-connect-1.1.3"
       sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
-      (sources."dom-serializer-1.2.0" // {
+      (sources."dom-serializer-1.3.2" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.2.0"
         ];
       })
-      sources."domelementtype-2.1.0"
+      sources."domelementtype-2.2.0"
       sources."domhandler-3.3.0"
-      (sources."domutils-2.5.0" // {
+      (sources."domutils-2.7.0" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.2.0"
         ];
       })
+      sources."dot-prop-5.3.0"
+      sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."entities-2.2.0"
       (sources."error-ex-1.3.2" // {
@@ -4665,20 +5567,29 @@ in
         ];
       })
       sources."es6-error-4.1.1"
+      sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-2.0.0"
-      (sources."eslint-7.22.0" // {
+      (sources."eslint-7.28.0" // {
         dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."escape-string-regexp-4.0.0"
+          (sources."eslint-utils-2.1.0" // {
+            dependencies = [
+              sources."eslint-visitor-keys-1.3.0"
+            ];
+          })
           sources."ignore-4.0.6"
+          sources."lru-cache-6.0.0"
+          sources."semver-7.3.5"
+          sources."strip-ansi-6.0.0"
+          sources."strip-json-comments-3.1.1"
+          sources."yallist-4.0.0"
         ];
       })
       sources."eslint-scope-5.1.1"
-      (sources."eslint-utils-2.1.0" // {
-        dependencies = [
-          sources."eslint-visitor-keys-1.3.0"
-        ];
-      })
-      sources."eslint-visitor-keys-2.0.0"
+      sources."eslint-utils-3.0.0"
+      sources."eslint-visitor-keys-2.1.0"
       (sources."espree-7.3.1" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
@@ -4714,7 +5625,7 @@ in
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
       sources."fastq-1.11.0"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."file-entry-cache-6.0.1"
       sources."file-stream-rotator-0.5.7"
       sources."fill-keys-1.0.2"
@@ -4725,7 +5636,12 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."find-cache-dir-2.1.0"
+      (sources."find-cache-dir-2.1.0" // {
+        dependencies = [
+          sources."make-dir-2.1.0"
+          sources."pify-4.0.1"
+        ];
+      })
       sources."find-up-3.0.0"
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
@@ -4740,29 +5656,36 @@ in
       })
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."generate-function-2.3.1"
       sources."generate-object-property-1.2.0"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
+      sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
-      (sources."globals-13.6.0" // {
+      sources."global-dirs-2.1.0"
+      (sources."globals-13.9.0" // {
         dependencies = [
           sources."type-fest-0.20.2"
         ];
       })
-      sources."globby-11.0.2"
+      sources."globby-11.0.3"
+      sources."got-9.6.0"
       sources."graceful-fs-4.2.6"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
+      sources."has-yarn-2.1.0"
       sources."hash.js-1.1.7"
       (sources."hasha-3.0.0" // {
         dependencies = [
@@ -4770,37 +5693,49 @@ in
         ];
       })
       sources."he-1.2.0"
-      sources."hosted-git-info-2.8.8"
+      sources."hosted-git-info-2.8.9"
       sources."html-escaper-2.0.2"
       sources."htmlencode-0.0.4"
       sources."htmlparser2-4.1.0"
+      sources."http-cache-semantics-4.1.0"
       sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
       sources."iconv-2.3.5"
       sources."iconv-lite-0.4.24"
       sources."ignore-5.1.8"
+      sources."ignore-by-default-1.0.1"
       sources."immediate-3.0.6"
       sources."import-fresh-3.3.0"
+      sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
+      sources."ini-1.3.7"
       sources."ipaddr.js-1.9.1"
-      sources."irc-git://github.com/matrix-org/node-irc#9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7"
+      sources."irc-git+https://matrix-org@github.com/matrix-org/node-irc.git#9028c2197c216dd8e6fc2cb3cc07ce2d6bf741a7"
       sources."irc-colors-1.5.0"
       sources."is-arrayish-0.3.2"
-      sources."is-core-module-2.2.0"
+      sources."is-binary-path-2.1.0"
+      sources."is-ci-2.0.0"
+      sources."is-core-module-2.4.0"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
+      sources."is-installed-globally-0.3.2"
       sources."is-my-ip-valid-1.0.0"
       sources."is-my-json-valid-2.20.5"
+      sources."is-npm-4.0.0"
       sources."is-number-7.0.0"
+      sources."is-obj-2.0.0"
       sources."is-object-1.0.2"
+      sources."is-path-inside-3.0.3"
+      sources."is-plain-object-5.0.0"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
       sources."is-stream-2.0.0"
       sources."is-typedarray-1.0.0"
+      sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
@@ -4814,21 +5749,26 @@ in
       (sources."istanbul-lib-report-2.0.8" // {
         dependencies = [
           sources."has-flag-3.0.0"
+          sources."make-dir-2.1.0"
+          sources."pify-4.0.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."istanbul-lib-source-maps-3.0.6" // {
         dependencies = [
+          sources."make-dir-2.1.0"
+          sources."pify-4.0.1"
           sources."rimraf-2.7.1"
         ];
       })
       sources."istanbul-reports-2.2.7"
-      sources."jasmine-3.6.4"
-      sources."jasmine-core-3.6.0"
+      sources."jasmine-3.7.0"
+      sources."jasmine-core-3.7.1"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
+      sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -4836,54 +5776,67 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonpointer-4.1.0"
       sources."jsprim-1.4.1"
+      sources."keyv-3.1.0"
+      sources."klona-2.0.4"
       sources."kuler-2.0.0"
+      sources."latest-version-5.1.0"
       sources."levn-0.4.1"
       sources."lie-3.1.1"
       sources."load-json-file-4.0.0"
       sources."localforage-1.9.0"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.flattendeep-4.4.0"
+      sources."lodash.merge-4.6.2"
+      sources."lodash.truncate-4.4.2"
       sources."logform-2.2.0"
       sources."loglevel-1.7.1"
       sources."lowdb-1.0.0"
+      sources."lowercase-keys-1.0.1"
       sources."lru-cache-5.1.1"
       sources."lru_map-0.3.3"
-      (sources."make-dir-2.1.0" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
-          sources."pify-4.0.1"
-          sources."semver-5.7.1"
+          sources."semver-6.3.0"
         ];
       })
       sources."matrix-appservice-0.8.0"
-      (sources."matrix-appservice-bridge-2.6.0" // {
+      (sources."matrix-appservice-bridge-2.6.1" // {
         dependencies = [
           sources."argparse-2.0.1"
           sources."extend-3.0.2"
-          sources."js-yaml-4.0.0"
+          sources."js-yaml-4.1.0"
           sources."nopt-5.0.0"
         ];
       })
       (sources."matrix-bot-sdk-0.4.0" // {
         dependencies = [
           sources."chalk-3.0.0"
+          sources."sanitize-html-1.27.5"
         ];
       })
-      (sources."matrix-js-sdk-9.9.0" // {
+      (sources."matrix-js-sdk-9.11.0" // {
         dependencies = [
-          sources."qs-6.9.6"
+          sources."qs-6.10.1"
         ];
       })
       sources."matrix-lastactive-0.1.5"
+      (sources."matrix-org-irc-1.0.0-alpha4" // {
+        dependencies = [
+          sources."iconv-lite-0.6.3"
+        ];
+      })
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."merge-source-map-1.1.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.2"
+      sources."micromatch-4.0.4"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.48.0"
+      sources."mime-types-2.1.31"
+      sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -4899,24 +5852,33 @@ in
       })
       sources."ms-2.1.2"
       sources."nan-2.14.2"
+      sources."nanoid-3.1.23"
       sources."natural-compare-1.4.0"
       sources."nedb-1.8.0"
       sources."negotiator-0.6.2"
       sources."nested-error-stacks-2.1.0"
       sources."node-gyp-build-4.2.3"
-      sources."nopt-3.0.6"
-      (sources."normalize-package-data-2.5.0" // {
+      (sources."nodemon-2.0.7" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."debug-3.2.7"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
         ];
       })
+      sources."nopt-3.0.6"
+      sources."normalize-package-data-2.5.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.1"
       (sources."nyc-14.1.1" // {
         dependencies = [
+          sources."make-dir-2.1.0"
+          sources."pify-4.0.1"
           sources."rimraf-2.7.1"
         ];
       })
       sources."oauth-sign-0.9.0"
-      sources."object-hash-2.1.1"
+      sources."object-hash-2.2.0"
+      sources."object-inspect-1.10.3"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -4924,6 +5886,7 @@ in
       sources."optimist-0.3.7"
       sources."optionator-0.9.1"
       sources."os-homedir-1.0.2"
+      sources."p-cancelable-1.1.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
@@ -4931,6 +5894,11 @@ in
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       sources."package-hash-3.0.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."packet-reader-1.0.0"
       sources."parent-module-1.0.1"
       sources."parse-json-4.0.0"
@@ -4939,18 +5907,18 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      sources."pg-8.5.1"
-      sources."pg-connection-string-2.4.0"
+      sources."pg-8.6.0"
+      sources."pg-connection-string-2.5.0"
       sources."pg-int8-1.0.1"
-      sources."pg-pool-3.2.2"
-      sources."pg-protocol-1.4.0"
+      sources."pg-pool-3.3.0"
+      sources."pg-protocol-1.5.0"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.4"
-      sources."picomatch-2.2.2"
+      sources."picomatch-2.3.0"
       sources."pify-3.0.0"
       sources."pkg-dir-3.0.0"
       (sources."postcss-7.0.35" // {
@@ -4973,10 +5941,11 @@ in
       sources."postgres-date-1.0.7"
       sources."postgres-interval-1.2.0"
       sources."prelude-ls-1.2.1"
+      sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."prom-client-13.1.0"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       (sources."proxyquire-1.8.0" // {
         dependencies = [
           sources."resolve-1.1.7"
@@ -4984,12 +5953,16 @@ in
       })
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
+      sources."pstree.remy-1.1.8"
+      sources."pump-3.0.0"
       sources."punycode-2.1.1"
+      sources."pupa-2.1.1"
       sources."qs-6.7.0"
-      sources."queue-microtask-1.2.2"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
+      sources."rc-1.2.8"
       (sources."read-pkg-3.0.0" // {
         dependencies = [
           sources."path-type-3.0.0"
@@ -4997,9 +5970,12 @@ in
       })
       sources."read-pkg-up-4.0.0"
       sources."readable-stream-3.6.0"
+      sources."readdirp-3.5.0"
       sources."rebuild-0.1.2"
-      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-runtime-0.13.8"
       sources."regexpp-3.1.0"
+      sources."registry-auth-token-4.2.1"
+      sources."registry-url-5.1.0"
       sources."release-zalgo-1.0.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -5015,16 +5991,24 @@ in
       sources."require-main-filename-2.0.0"
       sources."resolve-1.20.0"
       sources."resolve-from-4.0.0"
+      sources."responselike-1.0.2"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."sanitize-html-1.27.5"
-      (sources."semver-7.3.4" // {
+      (sources."sanitize-html-2.4.0" // {
         dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."yallist-4.0.0"
+          sources."domhandler-4.2.0"
+          sources."escape-string-regexp-4.0.0"
+          sources."htmlparser2-6.1.0"
+          sources."postcss-8.3.0"
+        ];
+      })
+      sources."semver-5.7.1"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
         ];
       })
       (sources."send-0.17.1" // {
@@ -5042,11 +6026,17 @@ in
       sources."setprototypeof-1.1.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"
       sources."slash-3.0.0"
-      sources."slice-ansi-4.0.0"
+      (sources."slice-ansi-4.0.0" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-3.0.0"
+        ];
+      })
       sources."source-map-0.6.1"
+      sources."source-map-js-0.6.2"
       (sources."spawn-wrap-1.4.3" // {
         dependencies = [
           sources."rimraf-2.7.1"
@@ -5056,7 +6046,7 @@ in
       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.9"
       sources."split2-3.2.2"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
@@ -5064,29 +6054,45 @@ in
       sources."statuses-1.5.0"
       sources."stealthy-require-1.1.1"
       sources."steno-0.4.4"
-      sources."string-width-4.2.2"
+      (sources."string-width-4.2.2" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       (sources."string_decoder-1.3.0" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
         ];
       })
-      sources."strip-ansi-6.0.0"
+      sources."strip-ansi-5.2.0"
       sources."strip-bom-3.0.0"
-      sources."strip-json-comments-3.1.1"
+      sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-7.2.1"
+          sources."ajv-8.6.0"
+          sources."ansi-regex-5.0.0"
           sources."json-schema-traverse-1.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
       sources."tdigest-0.1.1"
+      sources."term-size-2.2.1"
       sources."test-exclude-5.2.3"
       sources."text-hex-1.0.0"
       sources."text-table-0.2.0"
       sources."to-fast-properties-2.0.0"
+      sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
+      (sources."touch-3.1.0" // {
+        dependencies = [
+          sources."nopt-1.0.10"
+        ];
+      })
       sources."tough-cookie-2.5.0"
       sources."triple-beam-1.3.0"
       sources."tslib-1.14.1"
@@ -5096,12 +6102,26 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
-      sources."typescript-4.2.3"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."typescript-4.3.2"
+      (sources."undefsafe-2.0.3" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
       sources."underscore-1.4.4"
       sources."unhomoglyph-1.0.6"
+      sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
+      (sources."update-notifier-4.1.3" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
       sources."uri-js-4.4.1"
-      sources."utf-8-validate-5.0.4"
+      sources."url-parse-lax-3.0.0"
+      sources."utf-8-validate-5.0.5"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -5111,12 +6131,13 @@ in
       sources."verror-1.10.0"
       sources."which-2.0.2"
       sources."which-module-2.0.0"
+      sources."widest-line-3.1.0"
       (sources."winston-3.3.3" // {
         dependencies = [
           sources."async-3.2.0"
         ];
       })
-      sources."winston-daily-rotate-file-4.5.1"
+      sources."winston-daily-rotate-file-4.5.5"
       (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -5127,28 +6148,21 @@ in
       sources."wordwrap-0.0.3"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
           sources."ansi-styles-3.2.1"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
         ];
       })
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-2.4.3"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
       sources."xtend-4.0.2"
-      sources."y18n-4.0.1"
+      sources."y18n-4.0.3"
       sources."yallist-3.1.1"
       (sources."yargs-13.3.2" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
         ];
       })
       sources."yargs-parser-13.1.2"
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
index 19d29cd0448e..ae1326275a26 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
@@ -1,3 +1,3 @@
 [
-    {"matrix-appservice-irc": "git+https://github.com/matrix-org/matrix-appservice-irc.git#0.25.0" }
+    {"matrix-appservice-irc": "git+https://github.com/matrix-org/matrix-appservice-irc.git#0.26.1" }
 ]
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
index 62a732461546..596739a45d73 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
@@ -3,8 +3,8 @@ let
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "matrix-appservice-slack";
-    rev = "1.7.0";
-    sha256 = "sha256-0BcnG/DGvc3uh/eP0KIB5gPSpXNPlaAl78D4bVCnLHg=";
+    rev = "1.8.0";
+    sha256 = "sha256-FA6SMivMnloeZmnUhGx6N+ZLDTZFO3y17xJYclkp5w0=";
   };
 
   nodePackages = import ./node-composition.nix {
@@ -13,6 +13,8 @@ let
   };
 in
 nodePackages.package.override {
+  pname = "matrix-appservice-slack";
+
   inherit src;
 
   nativeBuildInputs = [ pkgs.makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
index 6e622bdd75f6..9fab48891701 100755
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
@@ -1,9 +1,9 @@
 #!/usr/bin/env nix-shell
 #! nix-shell -i bash -p nodePackages.node2nix
 
-# Download package.json and package-lock.json from the v1.7.0 release
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.7.0/package.json -o package.json
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.7.0/package-lock.json -o package-lock.json
+# Download package.json and package-lock.json from the v1.8.0 release
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.8.0/package.json -o package.json
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.8.0/package-lock.json -o package-lock.json
 
 node2nix \
   --nodejs-12 \
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
index 90e9d67f9d82..bc5bc8cf1c72 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
@@ -22,22 +22,22 @@ let
         sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
       };
     };
-    "@babel/highlight-7.10.4" = {
+    "@babel/highlight-7.13.10" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.10.4";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz";
+        sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
       };
     };
-    "@babel/runtime-7.12.13" = {
+    "@babel/runtime-7.13.10" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.12.13";
+      version = "7.13.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz";
-        sha512 = "8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz";
+        sha512 = "4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==";
       };
     };
     "@dabh/diagnostics-2.0.2" = {
@@ -49,13 +49,13 @@ let
         sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
-    "@eslint/eslintrc-0.2.2" = {
+    "@eslint/eslintrc-0.4.0" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "0.2.2";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz";
-        sha512 = "EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==";
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
+        sha512 = "2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==";
       };
     };
     "@nodelib/fs.scandir-2.1.4" = {
@@ -130,13 +130,13 @@ let
         sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
       };
     };
-    "@types/chai-4.2.14" = {
+    "@types/chai-4.2.16" = {
       name = "_at_types_slash_chai";
       packageName = "@types/chai";
-      version = "4.2.14";
+      version = "4.2.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/chai/-/chai-4.2.14.tgz";
-        sha512 = "G+ITQPXkwTrslfG5L/BksmbLUA0M1iybEsmCWPqzSxsRRhJZimBKJkoMi8fr/CPygPTj4zO5pJH7I2/cm9M7SQ==";
+        url = "https://registry.npmjs.org/@types/chai/-/chai-4.2.16.tgz";
+        sha512 = "vI5iOAsez9+roLS3M3+Xx7w+WRuDtSmF8bQkrbcIJ2sC1PcDgVoA0WGpa+bIrJ+y8zqY2oi//fUctkxtIcXJCw==";
       };
     };
     "@types/connect-3.4.34" = {
@@ -148,22 +148,22 @@ let
         sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
       };
     };
-    "@types/express-4.17.10" = {
+    "@types/express-4.17.11" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
-      version = "4.17.10";
+      version = "4.17.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.10.tgz";
-        sha512 = "GRwKdE+iV6mA8glCvQ7W5iaoIhd6u1HDsNTF76UPRi7T89SLjOfeCLShVmQSgpXzcpf3zgcz2SbMiCcjnYRRxQ==";
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz";
+        sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==";
       };
     };
-    "@types/express-serve-static-core-4.17.18" = {
+    "@types/express-serve-static-core-4.17.19" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.18";
+      version = "4.17.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz";
-        sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz";
+        sha512 = "DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==";
       };
     };
     "@types/is-stream-1.1.0" = {
@@ -175,31 +175,40 @@ let
         sha512 = "jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==";
       };
     };
-    "@types/json-schema-7.0.6" = {
+    "@types/js-yaml-4.0.0" = {
+      name = "_at_types_slash_js-yaml";
+      packageName = "@types/js-yaml";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.0.tgz";
+        sha512 = "4vlpCM5KPCL5CfGmTbpjwVKbISRYhduEJvvUWsH5EB7QInhEj94XPZ3ts/9FPiLZFqYO0xoW4ZL8z2AabTGgJA==";
+      };
+    };
+    "@types/json-schema-7.0.7" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.6";
+      version = "7.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz";
-        sha512 = "3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha512 = "cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==";
       };
     };
-    "@types/mime-2.0.3" = {
+    "@types/mime-1.3.2" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "2.0.3";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";
-        sha512 = "Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz";
+        sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
       };
     };
-    "@types/mocha-8.2.0" = {
+    "@types/mocha-8.2.2" = {
       name = "_at_types_slash_mocha";
       packageName = "@types/mocha";
-      version = "8.2.0";
+      version = "8.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz";
-        sha512 = "/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==";
+        url = "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz";
+        sha512 = "Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==";
       };
     };
     "@types/nedb-1.8.11" = {
@@ -211,13 +220,13 @@ let
         sha512 = "qHQRLZ0e6l/XK/2Qb2v5N1ujmdttYkUvnRI4nPIifMy6vYwoAnER10xhX13isWjjQtNsrjNLinZgDDguzPmEKw==";
       };
     };
-    "@types/node-14.14.20" = {
+    "@types/node-14.14.41" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.20";
+      version = "14.14.41";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz";
-        sha512 = "Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz";
+        sha512 = "dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==";
       };
     };
     "@types/node-emoji-1.8.1" = {
@@ -229,13 +238,13 @@ let
         sha512 = "0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA==";
       };
     };
-    "@types/nunjucks-3.1.3" = {
+    "@types/nunjucks-3.1.4" = {
       name = "_at_types_slash_nunjucks";
       packageName = "@types/nunjucks";
-      version = "3.1.3";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.1.3.tgz";
-        sha512 = "42IiIIBdoB7ZDwCVhCWYT4fMCj+4TeacuVgh7xyT2du5EhkpA+OFeeDdYTFCUt1MrHb8Aw7ZqFvr8s1bwP9l8w==";
+        url = "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.1.4.tgz";
+        sha512 = "cR65PLlHKW/qxxj840dbNb3ICO+iAVQzaNKJ8TcKOVKFi+QcAkhw9SCY8VFAyU41SmJMs+2nrIN2JGhX+jYb7A==";
       };
     };
     "@types/p-queue-2.3.2" = {
@@ -247,13 +256,13 @@ let
         sha512 = "eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ==";
       };
     };
-    "@types/qs-6.9.5" = {
+    "@types/qs-6.9.6" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.5";
+      version = "6.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
-        sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz";
+        sha512 = "0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==";
       };
     };
     "@types/randomstring-1.1.6" = {
@@ -283,13 +292,13 @@ let
         sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
       };
     };
-    "@types/serve-static-1.13.8" = {
+    "@types/serve-static-1.13.9" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.13.8";
+      version = "1.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz";
-        sha512 = "MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz";
+        sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==";
       };
     };
     "@types/uuid-8.3.0" = {
@@ -310,13 +319,13 @@ let
         sha512 = "Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ==";
       };
     };
-    "@types/yargs-15.0.12" = {
+    "@types/yargs-15.0.13" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
-      version = "15.0.12";
+      version = "15.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz";
-        sha512 = "f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz";
+        sha512 = "kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==";
       };
     };
     "@types/yargs-parser-15.0.0" = {
@@ -328,76 +337,76 @@ let
         sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
       };
     };
-    "@typescript-eslint/eslint-plugin-4.13.0" = {
+    "@typescript-eslint/eslint-plugin-4.22.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.13.0.tgz";
-        sha512 = "ygqDUm+BUPvrr0jrXqoteMqmIaZ/bixYOc3A4BRwzEPTZPi6E+n44rzNZWaB0YvtukgP+aoj0i/fyx7FkM2p1w==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz";
+        sha512 = "U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==";
       };
     };
-    "@typescript-eslint/eslint-plugin-tslint-4.13.0" = {
+    "@typescript-eslint/eslint-plugin-tslint-4.22.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin-tslint";
       packageName = "@typescript-eslint/eslint-plugin-tslint";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-4.13.0.tgz";
-        sha512 = "r6n4irL74bOx4z2f0WxnwG6MY67EESvjvK/VMoIlDelW3Q6cwunCH8ug3l8hkPtgJ7iObmUjpAWKxyF4ZdvEcw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-4.22.0.tgz";
+        sha512 = "r4lhAPmd69ohf5grgDALtekETv4WVCpvfXtT3Nf3UUO/88sn4HB4h8xN1afwL48BprQ4TxH7ZUv7Ou6xgRlkAA==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.13.0" = {
+    "@typescript-eslint/experimental-utils-4.22.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.13.0.tgz";
-        sha512 = "/ZsuWmqagOzNkx30VWYV3MNB/Re/CGv/7EzlqZo5RegBN8tMuPaBgNK6vPBCQA8tcYrbsrTdbx3ixMRRKEEGVw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz";
+        sha512 = "xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==";
       };
     };
-    "@typescript-eslint/parser-4.13.0" = {
+    "@typescript-eslint/parser-4.22.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.13.0.tgz";
-        sha512 = "KO0J5SRF08pMXzq9+abyHnaGQgUJZ3Z3ax+pmqz9vl81JxmTTOUfQmq7/4awVfq09b6C4owNlOgOwp61pYRBSg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz";
+        sha512 = "z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==";
       };
     };
-    "@typescript-eslint/scope-manager-4.13.0" = {
+    "@typescript-eslint/scope-manager-4.22.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.13.0.tgz";
-        sha512 = "UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz";
+        sha512 = "OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==";
       };
     };
-    "@typescript-eslint/types-4.13.0" = {
+    "@typescript-eslint/types-4.22.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.13.0.tgz";
-        sha512 = "/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz";
+        sha512 = "sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.13.0" = {
+    "@typescript-eslint/typescript-estree-4.22.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.13.0.tgz";
-        sha512 = "9A0/DFZZLlGXn5XA349dWQFwPZxcyYyCFX5X88nWs2uachRDwGeyPz46oTsm9ZJE66EALvEns1lvBwa4d9QxMg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz";
+        sha512 = "TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.13.0" = {
+    "@typescript-eslint/visitor-keys-4.22.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.13.0";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.13.0.tgz";
-        sha512 = "6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz";
+        sha512 = "nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==";
       };
     };
     "@ungap/promise-all-settled-1.1.2" = {
@@ -473,13 +482,13 @@ let
         sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
       };
     };
-    "ajv-7.0.3" = {
+    "ajv-8.1.0" = {
       name = "ajv";
       packageName = "ajv";
-      version = "7.0.3";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz";
-        sha512 = "R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz";
+        sha512 = "B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==";
       };
     };
     "another-json-0.2.0" = {
@@ -509,15 +518,6 @@ let
         sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
       };
     };
-    "ansi-regex-4.1.0" = {
-      name = "ansi-regex";
-      packageName = "ansi-regex";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
-      };
-    };
     "ansi-regex-5.0.0" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
@@ -545,13 +545,13 @@ let
         sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     };
-    "anymatch-3.1.1" = {
+    "anymatch-3.1.2" = {
       name = "anymatch";
       packageName = "anymatch";
-      version = "3.1.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
-        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz";
+        sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==";
       };
     };
     "arg-4.1.3" = {
@@ -725,13 +725,13 @@ let
         sha512 = "dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==";
       };
     };
-    "balanced-match-1.0.0" = {
+    "balanced-match-1.0.2" = {
       name = "balanced-match";
       packageName = "balanced-match";
-      version = "1.0.0";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
     "base-x-3.0.8" = {
@@ -761,13 +761,13 @@ let
         sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
       };
     };
-    "binary-extensions-2.1.0" = {
+    "binary-extensions-2.2.0" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
-        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==";
       };
     };
     "binary-search-tree-0.2.5" = {
@@ -869,6 +869,15 @@ let
         sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
+    "call-bind-1.0.2" = {
+      name = "call-bind";
+      packageName = "call-bind";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";
+        sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==";
+      };
+    };
     "callsites-3.1.0" = {
       name = "callsites";
       packageName = "callsites";
@@ -878,15 +887,6 @@ let
         sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
       };
     };
-    "camelcase-5.3.1" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "5.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
-        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
-      };
-    };
     "camelcase-6.2.0" = {
       name = "camelcase";
       packageName = "camelcase";
@@ -905,13 +905,13 @@ let
         sha1 = "1b681c21ff84033c826543090689420d187151dc";
       };
     };
-    "chai-4.2.0" = {
+    "chai-4.3.4" = {
       name = "chai";
       packageName = "chai";
-      version = "4.2.0";
+      version = "4.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz";
-        sha512 = "XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==";
+        url = "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz";
+        sha512 = "yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==";
       };
     };
     "chalk-2.4.2" = {
@@ -941,31 +941,13 @@ let
         sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
       };
     };
-    "chokidar-3.4.1" = {
-      name = "chokidar";
-      packageName = "chokidar";
-      version = "3.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz";
-        sha512 = "TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==";
-      };
-    };
-    "chokidar-3.4.3" = {
+    "chokidar-3.5.1" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.4.3";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz";
-        sha512 = "DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==";
-      };
-    };
-    "cliui-5.0.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
-        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz";
+        sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==";
       };
     };
     "cliui-7.0.4" = {
@@ -1166,15 +1148,6 @@ let
         sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
-    "debug-4.2.0" = {
-      name = "debug";
-      packageName = "debug";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
-        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
-      };
-    };
     "debug-4.3.1" = {
       name = "debug";
       packageName = "debug";
@@ -1184,15 +1157,6 @@ let
         sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
       };
     };
-    "decamelize-1.2.0" = {
-      name = "decamelize";
-      packageName = "decamelize";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    };
     "decamelize-4.0.0" = {
       name = "decamelize";
       packageName = "decamelize";
@@ -1265,6 +1229,15 @@ let
         sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
       };
     };
+    "diff-5.0.0" = {
+      name = "diff";
+      packageName = "diff";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz";
+        sha512 = "/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==";
+      };
+    };
     "dir-glob-3.0.1" = {
       name = "dir-glob";
       packageName = "dir-glob";
@@ -1301,15 +1274,6 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "emoji-regex-7.0.3" = {
-      name = "emoji-regex";
-      packageName = "emoji-regex";
-      version = "7.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
-      };
-    };
     "emoji-regex-8.0.0" = {
       name = "emoji-regex";
       packageName = "emoji-regex";
@@ -1382,13 +1346,13 @@ let
         sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
       };
     };
-    "eslint-7.17.0" = {
+    "eslint-7.24.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.17.0";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz";
-        sha512 = "zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz";
+        sha512 = "k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==";
       };
     };
     "eslint-plugin-jsdoc-30.7.13" = {
@@ -1400,13 +1364,13 @@ let
         sha512 = "YM4WIsmurrp0rHX6XiXQppqKB8Ne5ATiZLJe2+/fkp9l9ExXFr43BbAbjZaVrpCT+tuPYOZ8k1MICARHnURUNQ==";
       };
     };
-    "eslint-plugin-prefer-arrow-1.2.2" = {
+    "eslint-plugin-prefer-arrow-1.2.3" = {
       name = "eslint-plugin-prefer-arrow";
       packageName = "eslint-plugin-prefer-arrow";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.2.tgz";
-        sha512 = "C8YMhL+r8RMeMdYAw/rQtE6xNdMulj+zGWud/qIGnlmomiPRaLDGLMeskZ3alN6uMBojmooRimtdrXebLN4svQ==";
+        url = "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz";
+        sha512 = "J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==";
       };
     };
     "eslint-scope-5.1.1" = {
@@ -1463,13 +1427,13 @@ let
         sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     };
-    "esquery-1.3.1" = {
+    "esquery-1.4.0" = {
       name = "esquery";
       packageName = "esquery";
-      version = "1.3.1";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz";
-        sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz";
+        sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==";
       };
     };
     "esrecurse-4.3.0" = {
@@ -1571,13 +1535,13 @@ let
         sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     };
-    "fast-glob-3.2.4" = {
+    "fast-glob-3.2.5" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.4";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
-        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha512 = "2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -1607,13 +1571,13 @@ let
         sha512 = "q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==";
       };
     };
-    "fastq-1.10.0" = {
+    "fastq-1.11.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.10.0";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz";
-        sha512 = "NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz";
+        sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
       };
     };
     "fecha-4.2.0" = {
@@ -1625,13 +1589,13 @@ let
         sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
       };
     };
-    "file-entry-cache-6.0.0" = {
+    "file-entry-cache-6.0.1" = {
       name = "file-entry-cache";
       packageName = "file-entry-cache";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
-        sha512 = "fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==";
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
       };
     };
     "file-stream-rotator-0.5.7" = {
@@ -1661,15 +1625,6 @@ let
         sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
-    "find-up-3.0.0" = {
-      name = "find-up";
-      packageName = "find-up";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
-        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
-      };
-    };
     "find-up-5.0.0" = {
       name = "find-up";
       packageName = "find-up";
@@ -1706,13 +1661,13 @@ let
         sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==";
       };
     };
-    "flatted-3.1.0" = {
+    "flatted-3.1.1" = {
       name = "flatted";
       packageName = "flatted";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz";
-        sha512 = "tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==";
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz";
+        sha512 = "zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==";
       };
     };
     "fn.name-1.1.0" = {
@@ -1787,13 +1742,22 @@ let
         sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
       };
     };
-    "fsevents-2.1.3" = {
+    "fsevents-2.3.2" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "2.1.3";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
-        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz";
+        sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
       };
     };
     "functional-red-black-tree-1.0.1" = {
@@ -1841,6 +1805,15 @@ let
         sha1 = "ead774abee72e20409433a066366023dd6887a41";
       };
     };
+    "get-intrinsic-1.1.1" = {
+      name = "get-intrinsic";
+      packageName = "get-intrinsic";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha512 = "kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==";
+      };
+    };
     "getpass-0.1.7" = {
       name = "getpass";
       packageName = "getpass";
@@ -1859,13 +1832,13 @@ let
         sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
       };
     };
-    "glob-parent-5.1.1" = {
+    "glob-parent-5.1.2" = {
       name = "glob-parent";
       packageName = "glob-parent";
-      version = "5.1.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
       };
     };
     "globals-12.4.0" = {
@@ -1877,13 +1850,22 @@ let
         sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
       };
     };
-    "globby-11.0.2" = {
+    "globals-13.8.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "13.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz";
+        sha512 = "rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==";
+      };
+    };
+    "globby-11.0.3" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.2";
+      version = "11.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz";
-        sha512 = "2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz";
+        sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==";
       };
     };
     "growl-1.10.5" = {
@@ -1913,6 +1895,15 @@ let
         sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
       };
     };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
     "has-flag-3.0.0" = {
       name = "has-flag";
       packageName = "has-flag";
@@ -1931,6 +1922,15 @@ let
         sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
+    "has-symbols-1.0.2" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
+      };
+    };
     "he-1.2.0" = {
       name = "he";
       packageName = "he";
@@ -2057,6 +2057,15 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
+    "is-boolean-object-1.1.0" = {
+      name = "is-boolean-object";
+      packageName = "is-boolean-object";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz";
+        sha512 = "a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==";
+      };
+    };
     "is-extglob-2.1.1" = {
       name = "is-extglob";
       packageName = "is-extglob";
@@ -2120,6 +2129,15 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
+    "is-number-object-1.0.4" = {
+      name = "is-number-object";
+      packageName = "is-number-object";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz";
+        sha512 = "zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==";
+      };
+    };
     "is-plain-obj-2.1.0" = {
       name = "is-plain-obj";
       packageName = "is-plain-obj";
@@ -2156,6 +2174,15 @@ let
         sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
       };
     };
+    "is-string-1.0.5" = {
+      name = "is-string";
+      packageName = "is-string";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz";
+        sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==";
+      };
+    };
     "is-typedarray-1.0.0" = {
       name = "is-typedarray";
       packageName = "is-typedarray";
@@ -2201,13 +2228,13 @@ let
         sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
-    "js-yaml-3.14.0" = {
+    "js-yaml-3.14.1" = {
       name = "js-yaml";
       packageName = "js-yaml";
-      version = "3.14.0";
+      version = "3.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
-        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
       };
     };
     "js-yaml-4.0.0" = {
@@ -2219,6 +2246,15 @@ let
         sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
       };
     };
+    "js-yaml-4.1.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
+      };
+    };
     "jsbn-0.1.1" = {
       name = "jsbn";
       packageName = "jsbn";
@@ -2336,15 +2372,6 @@ let
         sha512 = "1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==";
       };
     };
-    "locate-path-3.0.0" = {
-      name = "locate-path";
-      packageName = "locate-path";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
-        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
-      };
-    };
     "locate-path-6.0.0" = {
       name = "locate-path";
       packageName = "locate-path";
@@ -2363,6 +2390,33 @@ let
         sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
       };
     };
+    "lodash-4.17.21" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+        sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
+      };
+    };
+    "lodash.clonedeep-4.5.0" = {
+      name = "lodash.clonedeep";
+      packageName = "lodash.clonedeep";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    };
+    "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.toarray-4.4.0" = {
       name = "lodash.toarray";
       packageName = "lodash.toarray";
@@ -2372,6 +2426,15 @@ let
         sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
       };
     };
+    "lodash.truncate-4.4.2" = {
+      name = "lodash.truncate";
+      packageName = "lodash.truncate";
+      version = "4.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
+      };
+    };
     "log-symbols-4.0.0" = {
       name = "log-symbols";
       packageName = "log-symbols";
@@ -2417,31 +2480,31 @@ let
         sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
-    "matrix-appservice-0.7.1" = {
+    "matrix-appservice-0.8.0" = {
       name = "matrix-appservice";
       packageName = "matrix-appservice";
-      version = "0.7.1";
+      version = "0.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.7.1.tgz";
-        sha512 = "oUjEz+eKfBw66FnQ3/D7PWcq+/oq9gzJVlNOMQUSGXgK70o8JT3toeFMYsJChaIimU5fIsHbTVyHC+eVGb7MSQ==";
+        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.8.0.tgz";
+        sha512 = "mfgMpmV3dWLtzrd4V/3XtqUD0P44I/mTgsRreW5jMhSaUnnRGZbpptBw2q4/axbLjw2FarlWtOVgertDGMtccA==";
       };
     };
-    "matrix-appservice-bridge-2.5.0" = {
+    "matrix-appservice-bridge-2.6.0" = {
       name = "matrix-appservice-bridge";
       packageName = "matrix-appservice-bridge";
-      version = "2.5.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-2.5.0.tgz";
-        sha512 = "L5Ddb78pqqfO6xM4SYM+Hv6N5VjmLF3D24h4g5ze5+xRfEFmfvmLdVu6rvIExawvk9i+LA0fZ95Qi3hc7SkgAQ==";
+        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-2.6.0.tgz";
+        sha512 = "o1KHQHG1GdfUhTFBXVLztwbTowuCFO9/h8n2zdkRK/bZsdcXSFQVfUwDtRULcyinD4N7r0Lrwlg1LyR0pg2WSw==";
       };
     };
-    "matrix-js-sdk-9.6.0" = {
+    "matrix-js-sdk-9.11.0" = {
       name = "matrix-js-sdk";
       packageName = "matrix-js-sdk";
-      version = "9.6.0";
+      version = "9.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.6.0.tgz";
-        sha512 = "zoNqB7z0C0QDncN7yD1K50c4C88VPofWaCQ0gNXqO/Ac1dr/xLF/46iNF9Y+dBwq7siBO9wEh20WFHMaRpeLOg==";
+        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.11.0.tgz";
+        sha512 = "wP28ybOxyQ7lbC48QddRORYr8atEwbTqDOsu8H6u9jTTgB2qqczI/bkSoXHtutODuSeLY5x0UuwLcxVCy4yxVQ==";
       };
     };
     "media-typer-0.3.0" = {
@@ -2480,13 +2543,13 @@ let
         sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
       };
     };
-    "micromatch-4.0.2" = {
+    "micromatch-4.0.4" = {
       name = "micromatch";
       packageName = "micromatch";
-      version = "4.0.2";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
-        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz";
+        sha512 = "pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==";
       };
     };
     "mime-1.6.0" = {
@@ -2543,22 +2606,22 @@ let
         sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
-    "mocha-8.2.1" = {
+    "mocha-8.3.2" = {
       name = "mocha";
       packageName = "mocha";
-      version = "8.2.1";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz";
-        sha512 = "cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==";
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz";
+        sha512 = "UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==";
       };
     };
-    "moment-2.24.0" = {
+    "moment-2.29.1" = {
       name = "moment";
       packageName = "moment";
-      version = "2.24.0";
+      version = "2.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
-        sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz";
+        sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
       };
     };
     "morgan-1.10.0" = {
@@ -2597,13 +2660,22 @@ let
         sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
-    "nanoid-3.1.12" = {
+    "ms-2.1.3" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
+      };
+    };
+    "nanoid-3.1.20" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.1.12";
+      version = "3.1.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz";
-        sha512 = "1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz";
+        sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==";
       };
     };
     "natural-compare-1.4.0" = {
@@ -2660,13 +2732,13 @@ let
         sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
       };
     };
-    "nunjucks-3.2.2" = {
+    "nunjucks-3.2.3" = {
       name = "nunjucks";
       packageName = "nunjucks";
-      version = "3.2.2";
+      version = "3.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.2.tgz";
-        sha512 = "KUi85OoF2NMygwODAy28Lh9qHmq5hO3rBlbkYoC8v377h4l8Pt5qFjILl0LWpMbOrZ18CzfVVUvIHUIrtED3sA==";
+        url = "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz";
+        sha512 = "psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==";
       };
     };
     "oauth-sign-0.9.0" = {
@@ -2678,13 +2750,22 @@ let
         sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
-    "object-hash-2.0.3" = {
+    "object-hash-2.1.1" = {
       name = "object-hash";
       packageName = "object-hash";
-      version = "2.0.3";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz";
+        sha512 = "VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==";
+      };
+    };
+    "object-inspect-1.9.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz";
-        sha512 = "JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz";
+        sha512 = "i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==";
       };
     };
     "on-finished-2.3.0" = {
@@ -2750,15 +2831,6 @@ let
         sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
       };
     };
-    "p-limit-2.3.0" = {
-      name = "p-limit";
-      packageName = "p-limit";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
-        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
-      };
-    };
     "p-limit-3.1.0" = {
       name = "p-limit";
       packageName = "p-limit";
@@ -2768,15 +2840,6 @@ let
         sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==";
       };
     };
-    "p-locate-3.0.0" = {
-      name = "p-locate";
-      packageName = "p-locate";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
-        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
-      };
-    };
     "p-locate-5.0.0" = {
       name = "p-locate";
       packageName = "p-locate";
@@ -2822,15 +2885,6 @@ let
         sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
       };
     };
-    "p-try-2.2.0" = {
-      name = "p-try";
-      packageName = "p-try";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
-        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
-      };
-    };
     "packet-reader-1.0.0" = {
       name = "packet-reader";
       packageName = "packet-reader";
@@ -2858,15 +2912,6 @@ let
         sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
-    "path-exists-3.0.0" = {
-      name = "path-exists";
-      packageName = "path-exists";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
-        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
-      };
-    };
     "path-exists-4.0.0" = {
       name = "path-exists";
       packageName = "path-exists";
@@ -2912,13 +2957,13 @@ let
         sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
       };
     };
-    "pathval-1.1.0" = {
+    "pathval-1.1.1" = {
       name = "pathval";
       packageName = "pathval";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz";
-        sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
+        url = "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz";
+        sha512 = "Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==";
       };
     };
     "performance-now-2.1.0" = {
@@ -2939,13 +2984,13 @@ let
         sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
       };
     };
-    "pg-connection-string-2.4.0" = {
+    "pg-connection-string-2.5.0" = {
       name = "pg-connection-string";
       packageName = "pg-connection-string";
-      version = "2.4.0";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
-        sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz";
+        sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==";
       };
     };
     "pg-int8-1.0.1" = {
@@ -2966,31 +3011,31 @@ let
         sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==";
       };
     };
-    "pg-pool-3.2.2" = {
+    "pg-pool-3.3.0" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.2.2";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
-        sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.3.0.tgz";
+        sha512 = "0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg==";
       };
     };
-    "pg-promise-10.8.7" = {
+    "pg-promise-10.10.1" = {
       name = "pg-promise";
       packageName = "pg-promise";
-      version = "10.8.7";
+      version = "10.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.8.7.tgz";
-        sha512 = "gSbH+NYWD4pVOpacP9uS2xH84N7nb7K4ubKlcZchhDr8ixnIURPnNJmNLJcRgtOocpjzsKymYSm6rCFZVOngSA==";
+        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.10.1.tgz";
+        sha512 = "sopmuOr2PrUNh3XI0Y15ssmjcwhZnGHyGYwuDDmWFnBydq7lvrhTMBI3hefAp3YMx07+HSXfSpJse9z5vC4bsw==";
       };
     };
-    "pg-protocol-1.4.0" = {
+    "pg-protocol-1.5.0" = {
       name = "pg-protocol";
       packageName = "pg-protocol";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
-        sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz";
+        sha512 = "muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==";
       };
     };
     "pg-types-2.2.0" = {
@@ -3011,13 +3056,13 @@ let
         sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
       };
     };
-    "picomatch-2.2.2" = {
+    "picomatch-2.2.3" = {
       name = "picomatch";
       packageName = "picomatch";
-      version = "2.2.2";
+      version = "2.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
-        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz";
+        sha512 = "KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==";
       };
     };
     "postgres-array-2.0.0" = {
@@ -3119,6 +3164,15 @@ let
         sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     };
+    "qs-6.10.1" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz";
+        sha512 = "M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==";
+      };
+    };
     "qs-6.5.2" = {
       name = "qs";
       packageName = "qs";
@@ -3137,13 +3191,13 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
-    "qs-6.9.6" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.9.6";
+    "queue-microtask-1.2.3" = {
+      name = "queue-microtask";
+      packageName = "queue-microtask";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz";
-        sha512 = "TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==";
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
       };
     };
     "quick-lru-5.1.1" = {
@@ -3191,15 +3245,6 @@ let
         sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     };
-    "readable-stream-2.3.6" = {
-      name = "readable-stream";
-      packageName = "readable-stream";
-      version = "2.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz";
-        sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==";
-      };
-    };
     "readable-stream-2.3.7" = {
       name = "readable-stream";
       packageName = "readable-stream";
@@ -3218,15 +3263,6 @@ let
         sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
-    "readdirp-3.4.0" = {
-      name = "readdirp";
-      packageName = "readdirp";
-      version = "3.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz";
-        sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
-      };
-    };
     "readdirp-3.5.0" = {
       name = "readdirp";
       packageName = "readdirp";
@@ -3290,15 +3326,6 @@ let
         sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
       };
     };
-    "require-main-filename-2.0.0" = {
-      name = "require-main-filename";
-      packageName = "require-main-filename";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
-      };
-    };
     "resolve-from-4.0.0" = {
       name = "resolve-from";
       packageName = "resolve-from";
@@ -3335,13 +3362,13 @@ let
         sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
       };
     };
-    "run-parallel-1.1.10" = {
+    "run-parallel-1.2.0" = {
       name = "run-parallel";
       packageName = "run-parallel";
-      version = "1.1.10";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz";
-        sha512 = "zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==";
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -3407,15 +3434,6 @@ let
         sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
-    "set-blocking-2.0.0" = {
-      name = "set-blocking";
-      packageName = "set-blocking";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
-        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
-      };
-    };
     "setprototypeof-1.1.1" = {
       name = "setprototypeof";
       packageName = "setprototypeof";
@@ -3443,6 +3461,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==";
+      };
+    };
     "simple-swizzle-0.2.2" = {
       name = "simple-swizzle";
       packageName = "simple-swizzle";
@@ -3578,15 +3605,6 @@ let
         sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
       };
     };
-    "string-width-3.1.0" = {
-      name = "string-width";
-      packageName = "string-width";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
-        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
-      };
-    };
     "string-width-4.2.0" = {
       name = "string-width";
       packageName = "string-width";
@@ -3623,15 +3641,6 @@ let
         sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
       };
     };
-    "strip-ansi-5.2.0" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
-      };
-    };
     "strip-ansi-6.0.0" = {
       name = "strip-ansi";
       packageName = "strip-ansi";
@@ -3668,13 +3677,22 @@ let
         sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
-    "table-6.0.7" = {
+    "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==";
+      };
+    };
+    "table-6.2.0" = {
       name = "table";
       packageName = "table";
-      version = "6.0.7";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.0.7.tgz";
-        sha512 = "rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==";
+        url = "https://registry.npmjs.org/table/-/table-6.2.0.tgz";
+        sha512 = "WMBBLuauiLXJjth35K4vOnd/xkaZ/dxEcyoZ+YhxSwfxFqvh+av06+oRqIwbR14m1lENB1egSWOFv/bNEt2D8A==";
       };
     };
     "tdigest-0.1.1" = {
@@ -3758,13 +3776,13 @@ let
         sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
       };
     };
-    "tsutils-3.19.1" = {
+    "tsutils-3.21.0" = {
       name = "tsutils";
       packageName = "tsutils";
-      version = "3.19.1";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.19.1.tgz";
-        sha512 = "GEdoBf5XI324lu7ycad7s6laADfnAqCw6wLGI+knxvw9vsIYBaJfYdmeCEG3FMMUiSm3OGgNb+m6utsWf5h9Vw==";
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz";
+        sha512 = "mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -3803,6 +3821,15 @@ let
         sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
+    "type-fest-0.20.2" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.20.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz";
+        sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==";
+      };
+    };
     "type-fest-0.8.1" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -3821,13 +3848,13 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typescript-4.1.3" = {
+    "typescript-4.2.4" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.1.3";
+      version = "4.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz";
-        sha512 = "B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz";
+        sha512 = "V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==";
       };
     };
     "underscore-1.4.4" = {
@@ -3902,13 +3929,13 @@ let
         sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
       };
     };
-    "v8-compile-cache-2.2.0" = {
+    "v8-compile-cache-2.3.0" = {
       name = "v8-compile-cache";
       packageName = "v8-compile-cache";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
-        sha512 = "gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==";
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
       };
     };
     "vary-1.1.2" = {
@@ -3938,15 +3965,6 @@ let
         sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
       };
     };
-    "which-module-2.0.0" = {
-      name = "which-module";
-      packageName = "which-module";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
-      };
-    };
     "wide-align-1.1.3" = {
       name = "wide-align";
       packageName = "wide-align";
@@ -3965,22 +3983,13 @@ let
         sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
       };
     };
-    "winston-daily-rotate-file-4.5.0" = {
+    "winston-daily-rotate-file-4.5.2" = {
       name = "winston-daily-rotate-file";
       packageName = "winston-daily-rotate-file";
-      version = "4.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.0.tgz";
-        sha512 = "/HqeWiU48dzGqcrABRlxYWVMdL6l3uKCtFSJyrqK+E2rLnSFNsgYpvwx15EgTitBLNzH69lQd/+z2ASryV2aqw==";
-      };
-    };
-    "winston-transport-4.3.0" = {
-      name = "winston-transport";
-      packageName = "winston-transport";
-      version = "4.3.0";
+      version = "4.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz";
-        sha512 = "B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==";
+        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.2.tgz";
+        sha512 = "DpAz9djExzFGVGRIKCKzsjOQaIINbjOUJ8CRsZGz0SQOMMcO1kM7jqTdzQAM9CRTEksZV9bBw9TT0ddQBGxs9g==";
       };
     };
     "winston-transport-4.4.0" = {
@@ -4001,22 +4010,13 @@ let
         sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
       };
     };
-    "workerpool-6.0.2" = {
+    "workerpool-6.1.0" = {
       name = "workerpool";
       packageName = "workerpool";
-      version = "6.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz";
-        sha512 = "DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==";
-      };
-    };
-    "wrap-ansi-5.1.0" = {
-      name = "wrap-ansi";
-      packageName = "wrap-ansi";
-      version = "5.1.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz";
+        sha512 = "toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==";
       };
     };
     "wrap-ansi-7.0.0" = {
@@ -4055,15 +4055,6 @@ let
         sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
       };
     };
-    "y18n-4.0.1" = {
-      name = "y18n";
-      packageName = "y18n";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz";
-        sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
-      };
-    };
     "y18n-5.0.5" = {
       name = "y18n";
       packageName = "y18n";
@@ -4082,15 +4073,6 @@ let
         sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yargs-13.3.2" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "13.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
-        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
-      };
-    };
     "yargs-16.2.0" = {
       name = "yargs";
       packageName = "yargs";
@@ -4100,15 +4082,6 @@ let
         sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
       };
     };
-    "yargs-parser-13.1.2" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "13.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
-        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
-      };
-    };
     "yargs-parser-20.2.4" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -4149,23 +4122,25 @@ let
   args = {
     name = "matrix-appservice-slack";
     packageName = "matrix-appservice-slack";
-    version = "1.7.0";
+    version = "1.8.0";
     src = ./.;
     dependencies = [
       sources."@babel/code-frame-7.12.11"
       sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.10.4" // {
+      (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."@babel/runtime-7.12.13"
+      sources."@babel/runtime-7.13.10"
       sources."@dabh/diagnostics-2.0.2"
-      (sources."@eslint/eslintrc-0.2.2" // {
+      (sources."@eslint/eslintrc-0.4.0" // {
         dependencies = [
           sources."debug-4.3.1"
+          sources."globals-12.4.0"
           sources."ignore-4.0.6"
+          sources."js-yaml-3.14.1"
           sources."ms-2.1.2"
         ];
       })
@@ -4185,51 +4160,52 @@ let
         ];
       })
       sources."@types/body-parser-1.19.0"
-      sources."@types/chai-4.2.14"
+      sources."@types/chai-4.2.16"
       sources."@types/connect-3.4.34"
-      sources."@types/express-4.17.10"
-      sources."@types/express-serve-static-core-4.17.18"
+      sources."@types/express-4.17.11"
+      sources."@types/express-serve-static-core-4.17.19"
       sources."@types/is-stream-1.1.0"
-      sources."@types/json-schema-7.0.6"
-      sources."@types/mime-2.0.3"
-      sources."@types/mocha-8.2.0"
+      sources."@types/js-yaml-4.0.0"
+      sources."@types/json-schema-7.0.7"
+      sources."@types/mime-1.3.2"
+      sources."@types/mocha-8.2.2"
       sources."@types/nedb-1.8.11"
-      sources."@types/node-14.14.20"
+      sources."@types/node-14.14.41"
       sources."@types/node-emoji-1.8.1"
-      sources."@types/nunjucks-3.1.3"
+      sources."@types/nunjucks-3.1.4"
       sources."@types/p-queue-2.3.2"
-      sources."@types/qs-6.9.5"
+      sources."@types/qs-6.9.6"
       sources."@types/randomstring-1.1.6"
       sources."@types/range-parser-1.2.3"
       sources."@types/retry-0.12.0"
-      sources."@types/serve-static-1.13.8"
+      sources."@types/serve-static-1.13.9"
       sources."@types/uuid-8.3.0"
       sources."@types/ws-7.2.6"
-      sources."@types/yargs-15.0.12"
+      sources."@types/yargs-15.0.13"
       sources."@types/yargs-parser-15.0.0"
-      (sources."@typescript-eslint/eslint-plugin-4.13.0" // {
+      (sources."@typescript-eslint/eslint-plugin-4.22.0" // {
         dependencies = [
           sources."debug-4.3.1"
           sources."ms-2.1.2"
         ];
       })
-      sources."@typescript-eslint/eslint-plugin-tslint-4.13.0"
-      sources."@typescript-eslint/experimental-utils-4.13.0"
-      (sources."@typescript-eslint/parser-4.13.0" // {
+      sources."@typescript-eslint/eslint-plugin-tslint-4.22.0"
+      sources."@typescript-eslint/experimental-utils-4.22.0"
+      (sources."@typescript-eslint/parser-4.22.0" // {
         dependencies = [
           sources."debug-4.3.1"
           sources."ms-2.1.2"
         ];
       })
-      sources."@typescript-eslint/scope-manager-4.13.0"
-      sources."@typescript-eslint/types-4.13.0"
-      (sources."@typescript-eslint/typescript-estree-4.13.0" // {
+      sources."@typescript-eslint/scope-manager-4.22.0"
+      sources."@typescript-eslint/types-4.22.0"
+      (sources."@typescript-eslint/typescript-estree-4.22.0" // {
         dependencies = [
           sources."debug-4.3.1"
           sources."ms-2.1.2"
         ];
       })
-      sources."@typescript-eslint/visitor-keys-4.13.0"
+      sources."@typescript-eslint/visitor-keys-4.22.0"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."Slackdown-git://github.com/half-shot/slackdown#efd8934a3d9c3bf0064c0b217c5cf6b62ee697e4"
       sources."a-sync-waterfall-1.0.1"
@@ -4242,7 +4218,7 @@ let
       sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
-      sources."anymatch-3.1.1"
+      sources."anymatch-3.1.2"
       sources."arg-4.1.3"
       sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
@@ -4260,11 +4236,11 @@ let
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base-x-3.0.8"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."binary-extensions-2.1.0"
+      sources."binary-extensions-2.2.0"
       sources."binary-search-tree-0.2.5"
       sources."bintrees-1.0.1"
       sources."body-parser-1.19.0"
@@ -4276,10 +4252,11 @@ let
       sources."buffer-from-1.1.1"
       sources."buffer-writer-2.0.0"
       sources."bytes-3.1.0"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      sources."camelcase-5.3.1"
+      sources."camelcase-6.2.0"
       sources."caseless-0.12.0"
-      sources."chai-4.2.0"
+      sources."chai-4.3.4"
       (sources."chalk-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -4290,16 +4267,7 @@ let
         ];
       })
       sources."check-error-1.0.2"
-      sources."chokidar-3.4.1"
-      (sources."cliui-5.0.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
+      sources."chokidar-3.5.1"
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -4307,6 +4275,7 @@ let
       sources."colors-1.3.3"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
+      sources."commander-5.1.0"
       sources."comment-parser-0.7.6"
       sources."concat-map-0.0.1"
       sources."content-disposition-0.5.3"
@@ -4318,7 +4287,7 @@ let
       sources."cross-spawn-7.0.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
-      sources."decamelize-1.2.0"
+      sources."decamelize-4.0.0"
       sources."deep-eql-3.0.1"
       sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
@@ -4336,10 +4305,12 @@ let
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-4.0.0"
-      (sources."eslint-7.17.0" // {
+      (sources."eslint-7.24.0" // {
         dependencies = [
           sources."debug-4.3.1"
           sources."ignore-4.0.6"
+          sources."js-yaml-3.14.1"
+          sources."lodash-4.17.21"
           sources."ms-2.1.2"
         ];
       })
@@ -4349,7 +4320,7 @@ let
           sources."ms-2.1.2"
         ];
       })
-      sources."eslint-plugin-prefer-arrow-1.2.2"
+      sources."eslint-plugin-prefer-arrow-1.2.3"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
@@ -4363,7 +4334,7 @@ let
         ];
       })
       sources."esprima-4.0.1"
-      (sources."esquery-1.3.1" // {
+      (sources."esquery-1.4.0" // {
         dependencies = [
           sources."estraverse-5.2.0"
         ];
@@ -4381,12 +4352,12 @@ let
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.4"
+      sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.6"
-      sources."fastq-1.10.0"
-      sources."file-entry-cache-6.0.0"
+      sources."fastq-1.11.0"
+      sources."file-entry-cache-6.0.1"
       sources."file-stream-rotator-0.5.7"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
@@ -4394,7 +4365,7 @@ let
       sources."finity-0.5.4"
       sources."flat-5.0.2"
       sources."flat-cache-3.0.4"
-      sources."flatted-3.1.0"
+      sources."flatted-3.1.1"
       sources."fn.name-1.1.0"
       sources."follow-redirects-1.13.1"
       sources."forever-agent-0.6.1"
@@ -4402,21 +4373,29 @@ let
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.3"
+      sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."generate-function-2.3.1"
       sources."generate-object-property-1.2.0"
       sources."get-caller-file-2.0.5"
       sources."get-func-name-2.0.0"
+      sources."get-intrinsic-1.1.1"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."glob-parent-5.1.1"
-      sources."globals-12.4.0"
-      sources."globby-11.0.2"
+      sources."glob-parent-5.1.2"
+      (sources."globals-13.8.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."globby-11.0.3"
       sources."growl-1.10.5"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
+      sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."he-1.2.0"
       sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
@@ -4430,21 +4409,28 @@ let
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-my-ip-valid-1.0.0"
       sources."is-my-json-valid-2.20.5"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-property-1.0.2"
       sources."is-stream-1.1.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      (sources."js-yaml-4.1.0" // {
+        dependencies = [
+          sources."argparse-2.0.1"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."jsdoctypeparser-9.0.0"
       sources."json-schema-0.2.3"
@@ -4459,7 +4445,10 @@ let
       sources."localforage-1.7.3"
       sources."locate-path-6.0.0"
       sources."lodash-4.17.20"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
       sources."lodash.toarray-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.0.0"
       (sources."logform-2.2.0" // {
         dependencies = [
@@ -4470,74 +4459,62 @@ let
       sources."loglevel-1.7.1"
       sources."lru-cache-6.0.0"
       sources."make-error-1.3.6"
-      sources."matrix-appservice-0.7.1"
-      (sources."matrix-appservice-bridge-2.5.0" // {
+      (sources."matrix-appservice-0.8.0" // {
         dependencies = [
-          sources."argparse-2.0.1"
-          sources."js-yaml-4.0.0"
+          sources."argparse-1.0.10"
+          sources."js-yaml-3.14.1"
         ];
       })
-      (sources."matrix-js-sdk-9.6.0" // {
+      sources."matrix-appservice-bridge-2.6.0"
+      (sources."matrix-js-sdk-9.11.0" // {
         dependencies = [
-          sources."qs-6.9.6"
+          sources."qs-6.10.1"
         ];
       })
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.2"
+      sources."micromatch-4.0.4"
       sources."mime-1.6.0"
       sources."mime-db-1.40.0"
       sources."mime-types-2.1.24"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-8.2.1" // {
+      (sources."mocha-8.3.2" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."chokidar-3.4.3"
-          sources."debug-4.2.0"
-          sources."emoji-regex-7.0.3"
-          sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."locate-path-3.0.0"
-          sources."ms-2.1.2"
-          sources."p-limit-2.3.0"
-          sources."p-locate-3.0.0"
-          sources."path-exists-3.0.0"
-          sources."readdirp-3.5.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-          sources."supports-color-7.2.0"
-          (sources."yargs-13.3.2" // {
+          sources."argparse-2.0.1"
+          (sources."debug-4.3.1" // {
             dependencies = [
-              sources."find-up-3.0.0"
+              sources."ms-2.1.2"
             ];
           })
+          sources."diff-5.0.0"
+          sources."has-flag-4.0.0"
+          sources."js-yaml-4.0.0"
+          sources."ms-2.1.3"
+          sources."supports-color-8.1.1"
         ];
       })
-      sources."moment-2.24.0"
+      sources."moment-2.29.1"
       (sources."morgan-1.10.0" // {
         dependencies = [
           sources."depd-2.0.0"
         ];
       })
       sources."ms-2.0.0"
-      sources."nanoid-3.1.12"
+      sources."nanoid-3.1.20"
       sources."natural-compare-1.4.0"
       sources."nedb-1.8.0"
       sources."negotiator-0.6.2"
       sources."node-emoji-1.10.0"
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
-      (sources."nunjucks-3.2.2" // {
-        dependencies = [
-          sources."commander-5.1.0"
-        ];
-      })
+      sources."nunjucks-3.2.3"
       sources."oauth-sign-0.9.0"
-      sources."object-hash-2.0.3"
+      sources."object-hash-2.1.1"
+      sources."object-inspect-1.9.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -4554,7 +4531,6 @@ let
       })
       sources."p-retry-4.2.0"
       sources."p-timeout-3.2.0"
-      sources."p-try-2.2.0"
       sources."packet-reader-1.0.0"
       sources."parent-module-1.0.1"
       sources."parseurl-1.3.3"
@@ -4563,18 +4539,18 @@ let
       sources."path-key-3.1.1"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
-      sources."pathval-1.1.0"
+      sources."pathval-1.1.1"
       sources."performance-now-2.1.0"
       sources."pg-8.5.1"
-      sources."pg-connection-string-2.4.0"
+      sources."pg-connection-string-2.5.0"
       sources."pg-int8-1.0.1"
       sources."pg-minify-1.6.2"
-      sources."pg-pool-3.2.2"
-      sources."pg-promise-10.8.7"
-      sources."pg-protocol-1.4.0"
+      sources."pg-pool-3.3.0"
+      sources."pg-promise-10.10.1"
+      sources."pg-protocol-1.5.0"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.4"
-      sources."picomatch-2.2.2"
+      sources."picomatch-2.2.3"
       sources."postgres-array-2.0.0"
       sources."postgres-bytea-1.0.0"
       sources."postgres-date-1.0.7"
@@ -4587,13 +4563,14 @@ let
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
+      sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
       sources."randombytes-2.1.0"
       sources."randomstring-1.1.5"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."readable-stream-3.6.0"
-      sources."readdirp-3.4.0"
+      sources."readdirp-3.5.0"
       sources."regenerator-runtime-0.13.7"
       sources."regexpp-3.1.0"
       sources."regextras-0.7.1"
@@ -4606,12 +4583,11 @@ let
       })
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
-      sources."require-main-filename-2.0.0"
       sources."resolve-from-4.0.0"
       sources."retry-0.12.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."run-parallel-1.1.10"
+      sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.4"
@@ -4622,10 +4598,10 @@ let
       })
       sources."serialize-javascript-5.0.1"
       sources."serve-static-1.14.1"
-      sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
+      sources."side-channel-1.0.4"
       sources."simple-swizzle-0.2.2"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -4655,9 +4631,9 @@ let
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.2.0" // {
         dependencies = [
-          sources."ajv-7.0.3"
+          sources."ajv-8.1.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -4670,14 +4646,14 @@ let
       sources."triple-beam-1.3.0"
       sources."ts-node-9.1.1"
       sources."tslib-1.14.1"
-      sources."tsutils-3.19.1"
+      sources."tsutils-3.21.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.4.0"
       sources."type-detect-4.0.8"
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
-      sources."typescript-4.1.3"
+      sources."typescript-4.2.4"
       sources."underscore-1.4.4"
       sources."unhomoglyph-1.0.6"
       sources."unpipe-1.0.0"
@@ -4685,11 +4661,10 @@ let
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-8.3.2"
-      sources."v8-compile-cache-2.2.0"
+      sources."v8-compile-cache-2.3.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
       sources."which-2.0.2"
-      sources."which-module-2.0.0"
       (sources."wide-align-1.1.3" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -4710,28 +4685,18 @@ let
           })
         ];
       })
-      sources."winston-daily-rotate-file-4.5.0"
-      (sources."winston-transport-4.3.0" // {
+      sources."winston-daily-rotate-file-4.5.2"
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
-          sources."readable-stream-2.3.6"
+          sources."readable-stream-2.3.7"
           sources."string_decoder-1.1.1"
         ];
       })
       sources."word-wrap-1.2.3"
-      sources."workerpool-6.0.2"
-      (sources."wrap-ansi-5.1.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
+      sources."workerpool-6.1.0"
       sources."wrappy-1.0.2"
       sources."ws-5.2.2"
       sources."xtend-4.0.2"
-      sources."y18n-4.0.1"
       sources."yallist-4.0.0"
       (sources."yargs-16.2.0" // {
         dependencies = [
@@ -4744,13 +4709,8 @@ let
           sources."yargs-parser-20.2.4"
         ];
       })
-      sources."yargs-parser-13.1.2"
-      (sources."yargs-unparser-2.0.0" // {
-        dependencies = [
-          sources."camelcase-6.2.0"
-          sources."decamelize-4.0.0"
-        ];
-      })
+      sources."yargs-parser-20.2.4"
+      sources."yargs-unparser-2.0.0"
       sources."yn-3.1.1"
       sources."yocto-queue-0.1.0"
     ];
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix
index f68be9f8e650..e67d907545a8 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/plugins/default.nix
@@ -2,6 +2,7 @@
 
 {
   matrix-synapse-ldap3 = callPackage ./ldap3.nix { };
+  matrix-synapse-mjolnir-antispam = callPackage ./mjolnir-antispam.nix { };
   matrix-synapse-pam = callPackage ./pam.nix { };
   matrix-synapse-shared-secret-auth = callPackage ./shared-secret-auth.nix { };
 }
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix b/nixpkgs/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
new file mode 100644
index 000000000000..fbd5c68baa16
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchFromGitHub, matrix-synapse }:
+
+buildPythonPackage rec {
+  pname = "matrix-synapse-mjolnir-antispam";
+  version = "0.1.17";
+
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "mjolnir";
+    rev = "v${version}";
+    sha256 = "sha256-uBI5AllXWgl3eL60WZ/j11Tt7QpY7CKcmFQOU74/Qjs=";
+  };
+
+  sourceRoot = "./source/synapse_antispam";
+
+  propagatedBuildInputs = [ matrix-synapse ];
+
+  doCheck = false; # no tests
+  pythonImportsCheck = [ "mjolnir" ];
+
+  meta = with lib; {
+    description = "AntiSpam / Banlist plugin to be used with mjolnir";
+    longDescription = ''
+      Primarily meant to block invites from undesired homeservers/users,
+      Mjolnir's Synapse module is a way to interpret ban lists and apply
+      them to your entire homeserver.
+    '';
+    homepage = "https://github.com/matrix-org/mjolnir#synapse-module";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/tools/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/tools/default.nix
index 43667f9e16de..defc35bc0e0a 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/tools/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/tools/default.nix
@@ -1,4 +1,6 @@
 { callPackage }:
 {
   rust-synapse-compress-state = callPackage ./rust-synapse-compress-state.nix { };
+
+  synadm = callPackage ./synadm.nix { };
 }
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix b/nixpkgs/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
index f770da75fd0d..c81058b47b0f 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "15jvkpbq6pgdc91wnni8fj435yqlwqgx3bb0vqjgsdyxs5lzalfh";
   };
 
-  cargoSha256 = "1zdf091s0wyribsqp8l6arkablchqxmdyg2xdc57hh06p4fjiw48";
+  cargoSha256 = "173nylp9xj88cm42yggj41iqvgb25s3awhf1dqssy8f1zyw2cf3d";
 
   meta = with lib; {
     description = "A tool to compress some state in a Synapse instance's database";
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix b/nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix
new file mode 100644
index 000000000000..b9a0ff3acd9a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix
@@ -0,0 +1,41 @@
+{ lib
+, python3Packages
+}:
+
+with python3Packages; buildPythonApplication rec {
+  pname = "synadm";
+  version = "0.29";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vy30nwsns4jnv0s5i9jpyplxpclgwyw0gldpywv4z3fljs0lzik";
+  };
+
+  propagatedBuildInputs = [
+    click
+    click-option-group
+    tabulate
+    pyyaml
+    requests
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    export HOME=$TMPDIR
+    $out/bin/synadm -h > /dev/null
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Command line admin tool for Synapse";
+    longDescription = ''
+      A CLI tool to help admins of Matrix Synapse homeservers
+      conveniently issue commands available via its admin API's
+      (matrix-org/synapse@master/docs/admin_api)
+    '';
+    homepage = "https://github.com/JOJ0/synadm";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/matterbridge/default.nix b/nixpkgs/pkgs/servers/matterbridge/default.nix
index d6865df66cdb..a3e898e048ab 100644
--- a/nixpkgs/pkgs/servers/matterbridge/default.nix
+++ b/nixpkgs/pkgs/servers/matterbridge/default.nix
@@ -1,18 +1,18 @@
-{ lib, buildGoModule, fetchurl }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "matterbridge";
-  version = "1.22.1";
+  version = "1.22.2";
 
-  vendorSha256 = null;
-
-  doCheck = false;
-
-  src = fetchurl {
-    url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
-    sha256 = "sha256-yV805OWFNOxKIGd6t2kRcUzdB8xYWYHFK+W2u/QPTXg=";
+  src = fetchFromGitHub {
+    owner = "42wim";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-H6Cy6yvX57QLNfZPeansZv6IJ4uQVqr0h24QsAlrLx8=";
   };
 
+  vendorSha256 = null;
+
   meta = with lib; {
     description = "Simple bridge between Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat(via xmpp), Matrix and Steam";
     homepage = "https://github.com/42wim/matterbridge";
diff --git a/nixpkgs/pkgs/servers/mautrix-signal/default.nix b/nixpkgs/pkgs/servers/mautrix-signal/default.nix
index 2bf69a630615..c39394879fb4 100644
--- a/nixpkgs/pkgs/servers/mautrix-signal/default.nix
+++ b/nixpkgs/pkgs/servers/mautrix-signal/default.nix
@@ -37,7 +37,7 @@ python3Packages.buildPythonPackage rec {
     # Make a little wrapper for running mautrix-signal with its dependencies
     echo "$mautrixSignalScript" > $out/bin/mautrix-signal
     echo "#!/bin/sh
-      exec python -m mautrix_signal \"$@\"
+      exec python -m mautrix_signal \"\$@\"
     " > $out/bin/mautrix-signal
     chmod +x $out/bin/mautrix-signal
     wrapProgram $out/bin/mautrix-signal \
diff --git a/nixpkgs/pkgs/servers/mbtileserver/default.nix b/nixpkgs/pkgs/servers/mbtileserver/default.nix
index 56309f6f1bb9..0168a98ca73e 100644
--- a/nixpkgs/pkgs/servers/mbtileserver/default.nix
+++ b/nixpkgs/pkgs/servers/mbtileserver/default.nix
@@ -2,20 +2,21 @@
 
 buildGoModule rec {
   pname = "mbtileserver";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "consbio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b0982rn5jsv8zxfkrcmhys764nim6136hafc8ccj0mwdyvwafxd";
+    sha256 = "sha256-QdirExVv7p7Mnhp8EGdTVRlmEiYpzoXVQbtO8aS9Kas=";
   };
 
-  vendorSha256 = null;
+  vendorSha256 = "sha256-mUUxUZn8out6WNvKJKHoz+R44RDB0oWJb+57w72+E5w=";
 
   meta = with lib; {
     description = "A simple Go-based server for map tiles stored in mbtiles format";
     homepage = "https://github.com/consbio/mbtileserver";
+    changelog = "https://github.com/consbio/mbtileserver/blob/v${version}/CHANGELOG.md";
     license = licenses.isc;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/servers/mediatomb/default.nix b/nixpkgs/pkgs/servers/mediatomb/default.nix
index d84aa954a00f..6294f9df2bd3 100644
--- a/nixpkgs/pkgs/servers/mediatomb/default.nix
+++ b/nixpkgs/pkgs/servers/mediatomb/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit
-, sqlite, expat, mp4v2, flac, spidermonkey_68, taglib, libexif, curl, ffmpeg_3, file
+, sqlite, expat, mp4v2, flac, spidermonkey_68, taglib, libexif, curl, ffmpeg, file
 , pkg-config, autoreconfHook }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1mimslr4q6mky865y6561rr64cbn4gf0qc2dhgb31hxp4rc1kmzd";
   };
 
-  buildInputs = [ sqlite expat spidermonkey_68 taglib libexif curl ffmpeg_3 file mp4v2 flac
+  buildInputs = [ sqlite expat spidermonkey_68 taglib libexif curl ffmpeg file mp4v2 flac
                   pkg-config autoreconfHook ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/microserver/default.nix b/nixpkgs/pkgs/servers/microserver/default.nix
index 30557460077b..4f3b167c2caf 100644
--- a/nixpkgs/pkgs/servers/microserver/default.nix
+++ b/nixpkgs/pkgs/servers/microserver/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1bbbdajh74wh2fbidasim2mzmzqjrgi02v8b0g7vbhpdnlim6ixz";
   };
 
-  cargoSha256 = "0cyxa200iz7knkma4zi3mzky3g0kibbxd5303psk2rl2rppir0f7";
+  cargoSha256 = "1wh5riw1fr87wbzbzjnwi5zsc5nflwnp6qcpa8a2js54ncd01n16";
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security ]);
 
diff --git a/nixpkgs/pkgs/servers/minio/default.nix b/nixpkgs/pkgs/servers/minio/default.nix
index b0d7f1048bc4..d244abf2e68c 100644
--- a/nixpkgs/pkgs/servers/minio/default.nix
+++ b/nixpkgs/pkgs/servers/minio/default.nix
@@ -1,43 +1,49 @@
 { lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
+let
+  # The web client verifies, that the server version is a valid datetime string:
+  # https://github.com/minio/minio/blob/3a0e7347cad25c60b2e51ff3194588b34d9e424c/browser/app/js/web.js#L51-L53
+  #
+  # Example:
+  #   versionToTimestamp "2021-04-22T15-44-28Z"
+  #   => "2021-04-22T15:44:28Z"
+  versionToTimestamp = version:
+    let
+      splitTS = builtins.elemAt (builtins.split "(.*)(T.*)" version) 1;
+    in
+    builtins.concatStringsSep "" [ (builtins.elemAt splitTS 0) (builtins.replaceStrings [ "-" ] [ ":" ] (builtins.elemAt splitTS 1)) ];
+in
 buildGoModule rec {
   pname = "minio";
-  version = "2021-04-22T15-44-28Z";
+  version = "2021-05-16T05-32-34Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "147a4vgf2hdpbndska443axzvxx56bmc0011m3cq4ca1vm783k8q";
+    sha256 = "sha256-+zanqJMYNg/1c20cMm+bqVsW8VquucxEK5NiFAqOmS0=";
   };
 
-  vendorSha256 = "0qj1zab97q8s5gy7a304wqi832y8m083cnk8hllz8lz9yjcw6q92";
+  vendorSha256 = "sha256-5aDD68nugFyWsySLEj7LXAdtFXFKWnqfz+5zF5wC2qw=";
 
   doCheck = false;
 
   subPackages = [ "." ];
 
-  patchPhase = ''
-    sed -i "s/Version.*/Version = \"${version}\"/g" cmd/build-constants.go
-    sed -i "s/ReleaseTag.*/ReleaseTag = \"RELEASE.${version}\"/g" cmd/build-constants.go
-    sed -i "s/CommitID.*/CommitID = \"${src.rev}\"/g" cmd/build-constants.go
-  '';
-
-  postConfigure = ''
-    export CGO_ENABLED=0
-  '';
-
-  buildFlagsArray = [
-    "-tags=kqueue"
-  ];
+  preBuild = let t = "github.com/minio/minio/cmd"; in
+    ''
+      export CGO_ENABLED=0
+      buildFlagsArray+=("-tags" "kqueue" "-ldflags" "-s -w -X ${t}.Version=${versionToTimestamp version} -X ${t}.ReleaseTag=RELEASE.${version} -X ${t}.CommitID=${src.rev}")
+    '';
 
   passthru.tests.minio = nixosTests.minio;
 
   meta = with lib; {
     homepage = "https://www.minio.io/";
     description = "An S3-compatible object storage server";
+    changelog = "https://github.com/minio/minio/releases/tag/RELEASE.${version}";
     maintainers = with maintainers; [ eelco bachp ];
     platforms = platforms.unix;
-    license = licenses.asl20;
+    license = licenses.agpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/servers/misc/airsonic/default.nix b/nixpkgs/pkgs/servers/misc/airsonic/default.nix
index bd8310bc74f7..8fba050ffade 100644
--- a/nixpkgs/pkgs/servers/misc/airsonic/default.nix
+++ b/nixpkgs/pkgs/servers/misc/airsonic/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "airsonic";
@@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
     cp "$src" "$out/webapps/airsonic.war"
   '';
 
+  passthru.tests = {
+    airsonic-starts = nixosTests.airsonic;
+  };
+
   meta = with lib; {
     description = "Personal media streamer";
     homepage = "https://airsonic.github.io";
diff --git a/nixpkgs/pkgs/servers/misc/gobgpd/default.nix b/nixpkgs/pkgs/servers/misc/gobgpd/default.nix
index 71f370a1a97c..450e454374f0 100644
--- a/nixpkgs/pkgs/servers/misc/gobgpd/default.nix
+++ b/nixpkgs/pkgs/servers/misc/gobgpd/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gobgpd";
-  version = "2.26.0";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "10fq74hv3vmcq58i3w67ic370925vl9wl6khcmy3f2vg60i962di";
+    sha256 = "sha256-AlAfs1wi3hS7cqAtGqfUgv5CIonu7TmXWgxL1zSBh54=";
   };
 
-  vendorSha256 = "0dmd4r6x76jn8pyvp47x4llzc2wij5m9lchgyaagcb5sfdgbns9x";
+  vendorSha256 = "sha256-PWm7XnO6LPaU8g8ymmqRkQv2KSX9kLv9RVaa000mrTY=";
 
   postConfigure = ''
     export CGO_ENABLED=0
diff --git a/nixpkgs/pkgs/servers/misc/navidrome/default.nix b/nixpkgs/pkgs/servers/misc/navidrome/default.nix
index b4dfc4791b76..065184b77136 100644
--- a/nixpkgs/pkgs/servers/misc/navidrome/default.nix
+++ b/nixpkgs/pkgs/servers/misc/navidrome/default.nix
@@ -4,11 +4,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "navidrome";
-  version = "0.40.0";
+  version = "0.43.0";
 
   src = fetchurl {
     url = "https://github.com/deluan/navidrome/releases/download/v${version}/navidrome_${version}_Linux_x86_64.tar.gz";
-    sha256 = "sha256-sBITCHyji55OnopNlDCNypSf/j8LKtarSGPYz5fQZys=";
+    sha256 = "0y7a5n8phffxga1bjkaf7x5ijripqg1nfjljkrrj26778550vqb5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -18,8 +18,12 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
+
      mkdir -p $out/bin
      cp navidrome $out/bin
+
+    runHook postInstall
   '';
 
   postFixup = ''
@@ -30,7 +34,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Navidrome Music Server and Streamer compatible with Subsonic/Airsonic";
     homepage = "https://www.navidrome.org/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ aciceri ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix b/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix
index 1eaaf01578fe..9fb364de1915 100644
--- a/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix
@@ -17,6 +17,12 @@ buildGoModule rec {
     sed "s;/templates/default.tmpl;$out/share&;" -i cmd/alertmanager-bot/main.go
   '';
 
+  preBuild = ''
+    export buildFlagsArray=(
+      "-ldflags=-s -w -X main.Version=v${version} -X main.Revision=${src.rev}"
+    )
+  '';
+
   postInstall = ''
     install -Dm644 -t $out/share/templates $src/default.tmpl
   '';
diff --git a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
index 9a172120da80..d6e3accdf41d 100644
--- a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "do-agent";
-  version = "3.9.4";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = "digitalocean";
     repo = "do-agent";
     rev = version;
-    sha256 = "sha256-h5Bv6Us1NrxhUWBckUcGzh3qDk8yDbkmLnV6ZYDdClU=";
+    sha256 = "sha256-boEgCC3uWvJvb6VKpNhh6vHCfeE7oun5oneI2ITKh9g=";
   };
 
   buildFlagsArray = ''
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
index 1f08dc3344a5..41b8b56fc441 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.13.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "agent";
-    sha256 = "sha256-ySdBHlUSGIyhMwInoFT90mm+HfAkO/60wBPACQgxDAM=";
+    sha256 = "sha256-mRDd9G/VMbDwp/GYPoUE0v9j+BmUd08wOMJjgcg2qdo=";
   };
 
-  vendorSha256 = null;
+  vendorSha256 = "sha256-sQFWdBOjfYb1e7ZzHGgtgnuEQCU4xnkJTyzC/9DRcYs=";
 
   # uses go-systemd, which uses libsystemd headers
   # https://github.com/coreos/go-systemd/issues/351
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
index 8d4d37304f3d..fab8d4b0096b 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -10,13 +10,13 @@
 
 mkYarnPackage rec {
   name = "grafana-image-renderer";
-  version = "2.0.1";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-image-renderer";
     rev = "v${version}";
-    sha256 = "sha256-3zvtlBjg+Yv5XDWdIN9HHLf+/Gv06ctbBaFhCgHeAMU=";
+    sha256 = "sha256-wg+cMAMqj4JORh5LPJnNELgsJYAxVgz2YPOl87WWda4=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
index 6da9178aa88f..c1db7f861816 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -21,26 +21,26 @@
     "@grpc/grpc-js": "^1.0",
     "@grpc/proto-loader": "^0.5.4",
     "@hapi/boom": "^9.1.0",
+    "chokidar": "^3.5.1",
     "eslint": "^7.13.0",
     "express": "^4.16.3",
     "express-prom-bundle": "^5.1.5",
     "google-protobuf": "3.5.0",
-    "lodash": "^4.17.19",
+    "lodash": "^4.17.21",
     "minimist": "^1.2.0",
     "morgan": "^1.9.0",
-    "mz": "^2.7.0",
     "prom-client": "^11.5.3",
-    "puppeteer": "^2.0.0",
-    "puppeteer-cluster": "^0.18.0",
+    "puppeteer": "^3.3.0",
+    "puppeteer-cluster": "^0.22.0",
     "unique-filename": "^1.1.0",
     "winston": "^3.2.1"
   },
   "devDependencies": {
     "@types/express": "^4.11.1",
-    "@types/node": "^10.0.9",
-    "husky": "^3.1.0",
+    "@types/node": "^14.14.41",
+    "husky": "^4.3.8",
     "lint-staged": "^9.5.0",
-    "pkg": "4.4.8",
+    "pkg": "^5.1.0",
     "prettier": "^1.19.1",
     "tsc-watch": "^4.2.3",
     "typescript": "^3.8.3"
@@ -61,9 +61,9 @@
   },
   "bin": "build/app.js",
   "engines": {
-    "node": ">=12 <13"
+    "node": ">=14 <15"
   },
   "volta": {
-    "node": "12.19.0"
+    "node": "14.16.1"
   }
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
index ca0823435461..80fd4569e691 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
@@ -2,43 +2,61 @@
 # yarn lockfile v1
 
 
-"@babel/code-frame@^7.0.0":
+"@babel/code-frame@7.12.11":
   version "7.12.11"
   resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
   integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
   dependencies:
     "@babel/highlight" "^7.10.4"
 
-"@babel/helper-validator-identifier@^7.10.4":
-  version "7.12.11"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
-  integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
+"@babel/code-frame@^7.0.0":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
+  integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
+  dependencies:
+    "@babel/highlight" "^7.12.13"
 
-"@babel/highlight@^7.10.4":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
-  integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
+"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
+  integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
+
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
+  integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.10.4"
+    "@babel/helper-validator-identifier" "^7.14.0"
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
-"@babel/parser@^7.9.4":
-  version "7.9.6"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7"
-  integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==
+"@babel/parser@7.13.13":
+  version "7.13.13"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df"
+  integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==
 
-"@babel/runtime@^7.9.2":
-  version "7.9.6"
-  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f"
-  integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==
+"@babel/types@7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd"
+  integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==
   dependencies:
-    regenerator-runtime "^0.13.4"
+    "@babel/helper-validator-identifier" "^7.12.11"
+    lodash "^4.17.19"
+    to-fast-properties "^2.0.0"
 
-"@eslint/eslintrc@^0.3.0":
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318"
-  integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==
+"@dabh/diagnostics@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31"
+  integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==
+  dependencies:
+    colorspace "1.1.x"
+    enabled "2.0.x"
+    kuler "^2.0.0"
+
+"@eslint/eslintrc@^0.4.0":
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547"
+  integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==
   dependencies:
     ajv "^6.12.4"
     debug "^4.1.1"
@@ -47,56 +65,55 @@
     ignore "^4.0.6"
     import-fresh "^3.2.1"
     js-yaml "^3.13.1"
-    lodash "^4.17.20"
     minimatch "^3.0.4"
     strip-json-comments "^3.1.1"
 
 "@grpc/grpc-js@^1.0":
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.0.3.tgz#7fa2ba293ccc1e91b24074c2628c8c68336e18c4"
-  integrity sha512-JKV3f5Bv2TZxK6eJSB9EarsZrnLxrvcFNwI9goq0YRXa3S6NNoCSnI3cG3lkXVIJ03Wng1WXe76kc2JQtRe7AQ==
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.0.tgz#c6febaaf00ce7f53b5ec52c7cf3e2a4725b82bcb"
+  integrity sha512-fiL7ZaGg2HBiFtmv6m34d5jEgEtNXfctjzB3f7b3iuT7olBX4mHLMOqOBmGTTSOTfNRQJH5+vsyk6mEz3I0Q7Q==
   dependencies:
-    semver "^6.2.0"
+    "@types/node" ">=12.12.47"
 
 "@grpc/proto-loader@^0.5.4":
-  version "0.5.4"
-  resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.4.tgz#038a3820540f621eeb1b05d81fbedfb045e14de0"
-  integrity sha512-HTM4QpI9B2XFkPz7pjwMyMgZchJ93TVkL3kWPW8GDMDKYxsMnmf4w2TNMJK7+KNiYHS5cJrCEAFlF+AwtXWVPA==
+  version "0.5.6"
+  resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d"
+  integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==
   dependencies:
     lodash.camelcase "^4.3.0"
     protobufjs "^6.8.6"
 
 "@hapi/boom@^9.1.0":
-  version "9.1.0"
-  resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.0.tgz#0d9517657a56ff1e0b42d0aca9da1b37706fec56"
-  integrity sha512-4nZmpp4tXbm162LaZT45P7F7sgiem8dwAh2vHWT6XX24dozNjGMg6BvKCRvtCUcmcXqeMIUqWN8Rc5X8yKuROQ==
+  version "9.1.2"
+  resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.2.tgz#48bd41d67437164a2d636e3b5bc954f8c8dc5e38"
+  integrity sha512-uJEJtiNHzKw80JpngDGBCGAmWjBtzxDCz17A9NO2zCi8LLBlb5Frpq4pXwyN+2JQMod4pKz5BALwyneCgDg89Q==
   dependencies:
     "@hapi/hoek" "9.x.x"
 
 "@hapi/hoek@9.x.x":
-  version "9.1.0"
-  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6"
-  integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==
+  version "9.2.0"
+  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131"
+  integrity sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==
 
-"@nodelib/fs.scandir@2.1.3":
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
-  integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==
+"@nodelib/fs.scandir@2.1.4":
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
+  integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==
   dependencies:
-    "@nodelib/fs.stat" "2.0.3"
+    "@nodelib/fs.stat" "2.0.4"
     run-parallel "^1.1.9"
 
-"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
-  integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
+"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"
+  integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==
 
 "@nodelib/fs.walk@^1.2.3":
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
-  integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"
+  integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==
   dependencies:
-    "@nodelib/fs.scandir" "2.1.3"
+    "@nodelib/fs.scandir" "2.1.4"
     fastq "^1.6.0"
 
 "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
@@ -153,87 +170,88 @@
   integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
 
 "@samverschueren/stream-to-observable@^0.3.0":
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
-  integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301"
+  integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==
   dependencies:
     any-observable "^0.3.0"
 
 "@types/body-parser@*":
-  version "1.17.1"
-  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.1.tgz#18fcf61768fb5c30ccc508c21d6fd2e8b3bf7897"
-  integrity sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w==
+  version "1.19.0"
+  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
+  integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==
   dependencies:
     "@types/connect" "*"
     "@types/node" "*"
 
 "@types/connect@*":
-  version "3.4.33"
-  resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
-  integrity sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==
+  version "3.4.34"
+  resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901"
+  integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==
   dependencies:
     "@types/node" "*"
 
-"@types/events@*":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
-  integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
-
-"@types/express-serve-static-core@*":
-  version "4.17.1"
-  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.1.tgz#82be64a77211b205641e0209096fd3afb62481d3"
-  integrity sha512-9e7jj549ZI+RxY21Cl0t8uBnWyb22HzILupyHZjYEVK//5TT/1bZodU+yUbLnPdoYViBBnNWbxp4zYjGV0zUGw==
+"@types/express-serve-static-core@^4.17.18":
+  version "4.17.19"
+  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d"
+  integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==
   dependencies:
     "@types/node" "*"
+    "@types/qs" "*"
     "@types/range-parser" "*"
 
 "@types/express@^4.11.1":
-  version "4.17.2"
-  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.2.tgz#a0fb7a23d8855bac31bc01d5a58cadd9b2173e6c"
-  integrity sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==
+  version "4.17.11"
+  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545"
+  integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==
   dependencies:
     "@types/body-parser" "*"
-    "@types/express-serve-static-core" "*"
+    "@types/express-serve-static-core" "^4.17.18"
+    "@types/qs" "*"
     "@types/serve-static" "*"
 
 "@types/glob@^7.1.1":
-  version "7.1.1"
-  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
-  integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
+  version "7.1.3"
+  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
+  integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
   dependencies:
-    "@types/events" "*"
     "@types/minimatch" "*"
     "@types/node" "*"
 
-"@types/long@^4.0.0":
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef"
-  integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==
+"@types/long@^4.0.1":
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9"
+  integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==
 
-"@types/mime@*":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d"
-  integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==
+"@types/mime@^1":
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
+  integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==
 
 "@types/minimatch@*":
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
-  integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21"
+  integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==
 
-"@types/node@*":
-  version "13.1.8"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.8.tgz#1d590429fe8187a02707720ecf38a6fe46ce294b"
-  integrity sha512-6XzyyNM9EKQW4HKuzbo/CkOIjn/evtCmsU+MUM1xDfJ+3/rNjBttM1NgN7AOQvN6tP1Sl1D1PIKMreTArnxM9A==
+"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0":
+  version "15.0.2"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67"
+  integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==
 
-"@types/node@^10.0.9", "@types/node@^10.1.0":
-  version "10.17.13"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.13.tgz#ccebcdb990bd6139cd16e84c39dc2fb1023ca90c"
-  integrity sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg==
+"@types/node@^14.14.41":
+  version "14.14.44"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz#df7503e6002847b834371c004b372529f3f85215"
+  integrity sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==
 
-"@types/normalize-package-data@^2.4.0":
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
-  integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
+"@types/parse-json@^4.0.0":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+  integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/qs@*":
+  version "6.9.6"
+  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1"
+  integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==
 
 "@types/range-parser@*":
   version "1.2.3"
@@ -241,12 +259,19 @@
   integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
 
 "@types/serve-static@*":
-  version "1.13.3"
-  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz#eb7e1c41c4468272557e897e9171ded5e2ded9d1"
-  integrity sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==
+  version "1.13.9"
+  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e"
+  integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==
+  dependencies:
+    "@types/mime" "^1"
+    "@types/node" "*"
+
+"@types/yauzl@^2.9.1":
+  version "2.9.1"
+  resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af"
+  integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==
   dependencies:
-    "@types/express-serve-static-core" "*"
-    "@types/mime" "*"
+    "@types/node" "*"
 
 accepts@~1.3.7:
   version "1.3.7"
@@ -266,17 +291,15 @@ acorn@^7.4.0:
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
   integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
 
-agent-base@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
-  integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
-  dependencies:
-    es6-promisify "^5.0.0"
+agent-base@5:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
+  integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==
 
 aggregate-error@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0"
-  integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
   dependencies:
     clean-stack "^2.0.0"
     indent-string "^4.0.0"
@@ -291,20 +314,10 @@ ajv@^6.10.0, ajv@^6.12.4:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-ajv@^6.5.5:
-  version "6.11.0"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz#c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9"
-  integrity sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==
-  dependencies:
-    fast-deep-equal "^3.1.1"
-    fast-json-stable-stringify "^2.0.0"
-    json-schema-traverse "^0.4.1"
-    uri-js "^4.2.2"
-
-ajv@^7.0.2:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2"
-  integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==
+ajv@^8.0.1:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.2.0.tgz#c89d3380a784ce81b2085f48811c4c101df4c602"
+  integrity sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==
   dependencies:
     fast-deep-equal "^3.1.1"
     json-schema-traverse "^1.0.0"
@@ -360,10 +373,26 @@ any-observable@^0.3.0:
   resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
   integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
 
-any-promise@^1.0.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
-  integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
+anymatch@~3.1.1:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
+aproba@^1.0.3:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+are-we-there-yet@~1.1.2:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
+  dependencies:
+    delegates "^1.0.0"
+    readable-stream "^2.0.6"
 
 argparse@^1.0.7:
   version "1.0.10"
@@ -382,74 +411,64 @@ array-union@^2.1.0:
   resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
   integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
 
-asn1@~0.2.3:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
-  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
-  dependencies:
-    safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-  integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
-
 astral-regex@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
   integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
 
-async-limiter@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
-  integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
-
-async@^2.6.1:
-  version "2.6.3"
-  resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
-  integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
-  dependencies:
-    lodash "^4.17.14"
-
-asynckit@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+async@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
+  integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
 
-aws-sign2@~0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
+at-least-node@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
 
-aws4@^1.8.0:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
-  integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
+axios@^0.21.1:
+  version "0.21.1"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
+  integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
+  dependencies:
+    follow-redirects "^1.10.0"
 
 balanced-match@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.3.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
 
-basic-auth@~2.0.0:
+basic-auth@~2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"
   integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
   dependencies:
     safe-buffer "5.1.2"
 
-bcrypt-pbkdf@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
-  integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
-  dependencies:
-    tweetnacl "^0.14.3"
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 
 bintrees@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524"
   integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=
 
+bl@^4.0.3:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+  dependencies:
+    buffer "^5.5.0"
+    inherits "^2.0.4"
+    readable-stream "^3.4.0"
+
 body-parser@1.19.0:
   version "1.19.0"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
@@ -474,22 +493,25 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
-braces@^3.0.1:
+braces@^3.0.1, braces@~3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
   integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
   dependencies:
     fill-range "^7.0.1"
 
-buffer-from@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
-  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+buffer-crc32@~0.2.3:
+  version "0.2.13"
+  resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+  integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
 
-byline@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
-  integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
+buffer@^5.2.1, buffer@^5.5.0:
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+  dependencies:
+    base64-js "^1.3.1"
+    ieee754 "^1.1.13"
 
 bytes@3.1.0:
   version "3.1.0"
@@ -520,11 +542,6 @@ callsites@^3.0.0:
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
   integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
-caseless@~0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-  integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-
 chalk@^1.0.0, chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -545,21 +562,33 @@ chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
     escape-string-regexp "^1.0.5"
     supports-color "^5.3.0"
 
-chalk@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
-  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+chalk@^4.0.0, chalk@^4.1.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
+  integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
   dependencies:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
-chalk@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
-  integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
-  dependencies:
-    ansi-styles "^4.1.0"
-    supports-color "^7.1.0"
+chokidar@^3.5.1:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
+  integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
+  dependencies:
+    anymatch "~3.1.1"
+    braces "~3.0.2"
+    glob-parent "~5.1.0"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.5.0"
+  optionalDependencies:
+    fsevents "~2.3.1"
+
+chownr@^1.1.1:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+  integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
 
 ci-info@^2.0.0:
   version "2.0.0"
@@ -586,6 +615,15 @@ cli-truncate@^0.2.1:
     slice-ansi "0.0.4"
     string-width "^1.0.1"
 
+cliui@^7.0.2:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+  dependencies:
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^7.0.0"
+
 code-point-at@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
@@ -616,9 +654,9 @@ color-name@^1.0.0, color-name@~1.1.4:
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
 color-string@^1.5.2:
-  version "1.5.3"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
-  integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
+  version "1.5.5"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
+  integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
   dependencies:
     color-name "^1.0.0"
     simple-swizzle "^0.2.2"
@@ -631,11 +669,6 @@ color@3.0.x:
     color-convert "^1.9.1"
     color-string "^1.5.2"
 
-colornames@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96"
-  integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=
-
 colors@^1.2.1:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
@@ -649,32 +682,25 @@ colorspace@1.1.x:
     color "3.0.x"
     text-hex "1.0.x"
 
-combined-stream@^1.0.6, combined-stream@~1.0.6:
-  version "1.0.8"
-  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
-  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
-  dependencies:
-    delayed-stream "~1.0.0"
-
 commander@^2.20.0:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
+compare-versions@^3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
+  integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
+
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
   integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
 
-concat-stream@1.6.2:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
-  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
-  dependencies:
-    buffer-from "^1.0.0"
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
 
 content-disposition@0.5.3:
   version "0.5.3"
@@ -698,7 +724,7 @@ cookie@0.4.0:
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
   integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
 
-core-util-is@1.0.2, core-util-is@~1.0.0:
+core-util-is@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
@@ -713,36 +739,18 @@ cosmiconfig@^5.2.1:
     js-yaml "^3.13.1"
     parse-json "^4.0.0"
 
-cross-spawn@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
-  integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
-  dependencies:
-    lru-cache "^4.0.1"
-    shebang-command "^1.2.0"
-    which "^1.2.9"
-
-cross-spawn@^6.0.0:
-  version "6.0.5"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
-  integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
-  dependencies:
-    nice-try "^1.0.4"
-    path-key "^2.0.1"
-    semver "^5.5.0"
-    shebang-command "^1.2.0"
-    which "^1.2.9"
-
-cross-spawn@^7.0.0:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14"
-  integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==
+cosmiconfig@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
+  integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
   dependencies:
-    path-key "^3.1.0"
-    shebang-command "^2.0.0"
-    which "^2.0.1"
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.2.1"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.10.0"
 
-cross-spawn@^7.0.2:
+cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
   version "7.0.3"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -751,13 +759,6 @@ cross-spawn@^7.0.2:
     shebang-command "^2.0.0"
     which "^2.0.1"
 
-dashdash@^1.12.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
-  integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
-  dependencies:
-    assert-plus "^1.0.0"
-
 date-fns@^1.27.2:
   version "1.30.1"
   resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
@@ -770,32 +771,30 @@ debug@2.6.9:
   dependencies:
     ms "2.0.0"
 
-debug@^3.1.0:
-  version "3.2.6"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
-  integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
-  dependencies:
-    ms "^2.1.1"
-
-debug@^4.0.1, debug@^4.1.1:
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
   version "4.3.1"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
   integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
   dependencies:
     ms "2.1.2"
 
-debug@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
-  integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+decompress-response@^4.2.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
+  integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
   dependencies:
-    ms "^2.1.1"
+    mimic-response "^2.0.0"
 
 dedent@^0.7.0:
   version "0.7.0"
   resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
   integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
 
+deep-extend@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
 deep-is@^0.1.3, deep-is@~0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -815,29 +814,30 @@ del@^5.0.0:
     rimraf "^3.0.0"
     slash "^3.0.0"
 
-delayed-stream@~1.0.0:
+delegates@^1.0.0:
   version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
 
 depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
   integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
 
+depd@~2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+  integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
 destroy@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
   integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
 
-diagnostics@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a"
-  integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==
-  dependencies:
-    colorspace "1.1.x"
-    enabled "1.0.x"
-    kuler "1.0.x"
+detect-libc@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
 
 dir-glob@^3.0.1:
   version "3.0.1"
@@ -854,17 +854,9 @@ doctrine@^3.0.0:
     esutils "^2.0.2"
 
 duplexer@~0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
-  integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
-
-ecc-jsbn@~0.1.1:
   version "0.1.2"
-  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
-  integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
-  dependencies:
-    jsbn "~0.1.0"
-    safer-buffer "^2.1.0"
+  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+  integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
 
 ee-first@1.1.1:
   version "1.1.1"
@@ -881,19 +873,17 @@ emoji-regex@^8.0.0:
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
   integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
 
-enabled@1.0.x:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93"
-  integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=
-  dependencies:
-    env-variable "0.0.x"
+enabled@2.0.x:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
+  integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
 
 encodeurl@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
   integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
 
-end-of-stream@^1.1.0:
+end-of-stream@^1.1.0, end-of-stream@^1.4.1:
   version "1.4.4"
   resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
   integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -907,11 +897,6 @@ enquirer@^2.3.5:
   dependencies:
     ansi-colors "^4.1.1"
 
-env-variable@0.0.x:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88"
-  integrity sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA==
-
 error-ex@^1.3.1:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -919,17 +904,10 @@ error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es6-promise@^4.0.3:
-  version "4.2.8"
-  resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
-  integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-
-es6-promisify@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
-  integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
-  dependencies:
-    es6-promise "^4.0.3"
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
 
 escape-html@~1.0.3:
   version "1.0.3"
@@ -941,13 +919,13 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
   integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
 
-escodegen@^1.14.1:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
-  integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==
+escodegen@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
+  integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
   dependencies:
     esprima "^4.0.1"
-    estraverse "^4.2.0"
+    estraverse "^5.2.0"
     esutils "^2.0.2"
     optionator "^0.8.1"
   optionalDependencies:
@@ -974,17 +952,17 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
   integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
 
 eslint-visitor-keys@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
-  integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
 
 eslint@^7.13.0:
-  version "7.18.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67"
-  integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==
+  version "7.25.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67"
+  integrity sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==
   dependencies:
-    "@babel/code-frame" "^7.0.0"
-    "@eslint/eslintrc" "^0.3.0"
+    "@babel/code-frame" "7.12.11"
+    "@eslint/eslintrc" "^0.4.0"
     ajv "^6.10.0"
     chalk "^4.0.0"
     cross-spawn "^7.0.2"
@@ -995,12 +973,12 @@ eslint@^7.13.0:
     eslint-utils "^2.1.0"
     eslint-visitor-keys "^2.0.0"
     espree "^7.3.1"
-    esquery "^1.2.0"
+    esquery "^1.4.0"
     esutils "^2.0.2"
-    file-entry-cache "^6.0.0"
+    file-entry-cache "^6.0.1"
     functional-red-black-tree "^1.0.1"
     glob-parent "^5.0.0"
-    globals "^12.1.0"
+    globals "^13.6.0"
     ignore "^4.0.6"
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
@@ -1008,7 +986,7 @@ eslint@^7.13.0:
     js-yaml "^3.13.1"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.4.1"
-    lodash "^4.17.20"
+    lodash "^4.17.21"
     minimatch "^3.0.4"
     natural-compare "^1.4.0"
     optionator "^0.9.1"
@@ -1035,10 +1013,10 @@ esprima@^4.0.0, esprima@^4.0.1:
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
-esquery@^1.2.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
-  integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
+esquery@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
   dependencies:
     estraverse "^5.1.0"
 
@@ -1049,7 +1027,7 @@ esrecurse@^4.3.0:
   dependencies:
     estraverse "^5.2.0"
 
-estraverse@^4.1.1, estraverse@^4.2.0:
+estraverse@^4.1.1:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
   integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
@@ -1082,19 +1060,6 @@ event-stream@=3.3.4:
     stream-combiner "~0.0.4"
     through "~2.3.1"
 
-execa@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
-  integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
-  dependencies:
-    cross-spawn "^6.0.0"
-    get-stream "^4.0.0"
-    is-stream "^1.1.0"
-    npm-run-path "^2.0.0"
-    p-finally "^1.0.0"
-    signal-exit "^3.0.0"
-    strip-eof "^1.0.0"
-
 execa@^2.0.3:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99"
@@ -1159,51 +1124,26 @@ express@^4.16.3:
     utils-merge "1.0.1"
     vary "~1.1.2"
 
-extend@~3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-extract-zip@^1.6.6:
-  version "1.6.7"
-  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
-  integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=
+extract-zip@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
+  integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
   dependencies:
-    concat-stream "1.6.2"
-    debug "2.6.9"
-    mkdirp "0.5.1"
-    yauzl "2.4.1"
-
-extsprintf@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-  integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
-
-extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+    debug "^4.1.1"
+    get-stream "^5.1.0"
+    yauzl "^2.10.0"
+  optionalDependencies:
+    "@types/yauzl" "^2.9.1"
 
 fast-deep-equal@^3.1.1:
   version "3.1.3"
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 
-fast-glob@^3.0.3:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82"
-  integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==
-  dependencies:
-    "@nodelib/fs.stat" "^2.0.2"
-    "@nodelib/fs.walk" "^1.2.3"
-    glob-parent "^5.1.0"
-    merge2 "^1.3.0"
-    micromatch "^4.0.2"
-
-fast-glob@^3.1.1:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d"
-  integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==
+fast-glob@^3.0.3, fast-glob@^3.1.1:
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
+  integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
   dependencies:
     "@nodelib/fs.stat" "^2.0.2"
     "@nodelib/fs.walk" "^1.2.3"
@@ -1228,23 +1168,23 @@ fast-safe-stringify@^2.0.4:
   integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
 
 fastq@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2"
-  integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858"
+  integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==
   dependencies:
-    reusify "^1.0.0"
+    reusify "^1.0.4"
 
-fd-slicer@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
-  integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=
+fd-slicer@~1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+  integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
   dependencies:
     pend "~1.2.0"
 
-fecha@^2.3.3:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd"
-  integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==
+fecha@^4.2.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
+  integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==
 
 figures@^1.7.0:
   version "1.7.0"
@@ -1261,10 +1201,10 @@ figures@^2.0.0:
   dependencies:
     escape-string-regexp "^1.0.5"
 
-file-entry-cache@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a"
-  integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
   dependencies:
     flat-cache "^3.0.4"
 
@@ -1288,14 +1228,21 @@ finalhandler@~1.1.2:
     statuses "~1.5.0"
     unpipe "~1.0.0"
 
-find-up@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
-  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+find-up@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
   dependencies:
-    locate-path "^5.0.0"
+    locate-path "^6.0.0"
     path-exists "^4.0.0"
 
+find-versions@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"
+  integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==
+  dependencies:
+    semver-regex "^3.1.2"
+
 flat-cache@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
@@ -1305,23 +1252,19 @@ flat-cache@^3.0.4:
     rimraf "^3.0.2"
 
 flatted@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
-  integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
+  integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
 
-forever-agent@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+fn.name@1.x.x:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
+  integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
 
-form-data@~2.3.2:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
-  integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
-  dependencies:
-    asynckit "^0.4.0"
-    combined-stream "^1.0.6"
-    mime-types "^2.1.12"
+follow-redirects@^1.10.0:
+  version "1.14.0"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz#f5d260f95c5f8c105894491feee5dc8993b402fe"
+  integrity sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==
 
 forwarded@~0.1.2:
   version "0.1.2"
@@ -1346,67 +1289,81 @@ from@~0:
   resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
   integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
 
-fs-extra@^8.1.0:
-  version "8.1.0"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
-  integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+fs-constants@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+  integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+
+fs-extra@^9.1.0:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
   dependencies:
+    at-least-node "^1.0.0"
     graceful-fs "^4.2.0"
-    jsonfile "^4.0.0"
-    universalify "^0.1.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
 
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
+fsevents@~2.3.1:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
 functional-red-black-tree@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
   integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
 
+gauge@~2.7.3:
+  version "2.7.4"
+  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+  dependencies:
+    aproba "^1.0.3"
+    console-control-strings "^1.0.0"
+    has-unicode "^2.0.0"
+    object-assign "^4.1.0"
+    signal-exit "^3.0.0"
+    string-width "^1.0.1"
+    strip-ansi "^3.0.1"
+    wide-align "^1.1.0"
+
+get-caller-file@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
 get-own-enumerable-property-symbols@^3.0.0:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
   integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
 
-get-stdin@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6"
-  integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==
-
-get-stream@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
-  integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
-  dependencies:
-    pump "^3.0.0"
-
-get-stream@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
-  integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
+get-stream@^5.0.0, get-stream@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
   dependencies:
     pump "^3.0.0"
 
-getpass@^0.1.1:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
-  integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
-  dependencies:
-    assert-plus "^1.0.0"
+github-from-package@0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
+  integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
 
-glob-parent@^5.0.0:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
-  integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
-  dependencies:
-    is-glob "^4.0.1"
-
-glob-parent@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
-  integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
+glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
   dependencies:
     is-glob "^4.0.1"
 
@@ -1429,6 +1386,13 @@ globals@^12.1.0:
   dependencies:
     type-fest "^0.8.1"
 
+globals@^13.6.0:
+  version "13.8.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3"
+  integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==
+  dependencies:
+    type-fest "^0.20.2"
+
 globby@^10.0.1:
   version "10.0.2"
   resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543"
@@ -1443,10 +1407,10 @@ globby@^10.0.1:
     merge2 "^1.2.3"
     slash "^3.0.0"
 
-globby@^11.0.0:
-  version "11.0.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154"
-  integrity sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==
+globby@^11.0.3:
+  version "11.0.3"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"
+  integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==
   dependencies:
     array-union "^2.1.0"
     dir-glob "^3.0.1"
@@ -1460,28 +1424,10 @@ google-protobuf@3.5.0:
   resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.5.0.tgz#b8cc63c74d83457bd8a9a904503c8efb26bca339"
   integrity sha1-uMxjx02DRXvYqakEUDyO+ya8ozk=
 
-graceful-fs@^4.1.6, graceful-fs@^4.2.2:
-  version "4.2.3"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
-  integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
-
-graceful-fs@^4.2.0:
-  version "4.2.4"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
-  integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
-
-har-schema@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-
-har-validator@~5.1.3:
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
-  integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
-  dependencies:
-    ajv "^6.5.5"
-    har-schema "^2.0.0"
+graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2:
+  version "4.2.6"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+  integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
 
 has-ansi@^2.0.0:
   version "2.0.0"
@@ -1500,10 +1446,17 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-hosted-git-info@^2.1.4:
-  version "2.8.5"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
-  integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==
+has-unicode@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+
+has@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+  dependencies:
+    function-bind "^1.1.1"
 
 http-errors@1.7.2:
   version "1.7.2"
@@ -1527,39 +1480,29 @@ http-errors@~1.7.2:
     statuses ">= 1.5.0 < 2"
     toidentifier "1.0.0"
 
-http-signature@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
-  integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
-  dependencies:
-    assert-plus "^1.0.0"
-    jsprim "^1.2.2"
-    sshpk "^1.7.0"
-
-https-proxy-agent@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81"
-  integrity sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==
+https-proxy-agent@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b"
+  integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==
   dependencies:
-    agent-base "^4.3.0"
-    debug "^3.1.0"
+    agent-base "5"
+    debug "4"
 
-husky@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0"
-  integrity sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ==
+husky@^4.3.8:
+  version "4.3.8"
+  resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d"
+  integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==
   dependencies:
-    chalk "^2.4.2"
+    chalk "^4.0.0"
     ci-info "^2.0.0"
-    cosmiconfig "^5.2.1"
-    execa "^1.0.0"
-    get-stdin "^7.0.0"
+    compare-versions "^3.6.0"
+    cosmiconfig "^7.0.0"
+    find-versions "^4.0.0"
     opencollective-postinstall "^2.0.2"
-    pkg-dir "^4.2.0"
+    pkg-dir "^5.0.0"
     please-upgrade-node "^3.2.0"
-    read-pkg "^5.2.0"
-    run-node "^1.0.0"
     slash "^3.0.0"
+    which-pm-runs "^1.0.0"
 
 iconv-lite@0.4.24:
   version "0.4.24"
@@ -1568,15 +1511,20 @@ iconv-lite@0.4.24:
   dependencies:
     safer-buffer ">= 2.1.2 < 3"
 
+ieee754@^1.1.13:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
 ignore@^4.0.6:
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
 
 ignore@^5.1.1, ignore@^5.1.4:
-  version "5.1.4"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
-  integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
+  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
 
 import-fresh@^2.0.0:
   version "2.0.0"
@@ -1617,7 +1565,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy "1"
 
-inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -1627,18 +1575,23 @@ inherits@2.0.3:
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
   integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 
-into-stream@^5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.1.tgz#f9a20a348a11f3c13face22763f2d02e127f4db8"
-  integrity sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==
+ini@~1.3.0:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+into-stream@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702"
+  integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==
   dependencies:
     from2 "^2.3.0"
     p-is-promise "^3.0.0"
 
-ipaddr.js@1.9.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
-  integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==
+ipaddr.js@1.9.1:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+  integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
 
 is-arrayish@^0.2.1:
   version "0.2.1"
@@ -1650,6 +1603,20 @@ is-arrayish@^0.3.1:
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
   integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
 
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+  dependencies:
+    binary-extensions "^2.0.0"
+
+is-core-module@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887"
+  integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==
+  dependencies:
+    has "^1.0.3"
+
 is-directory@^0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
@@ -1677,7 +1644,7 @@ is-fullwidth-code-point@^3.0.0:
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
   integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
 
-is-glob@^4.0.0, is-glob@^4.0.1:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
   integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
@@ -1707,14 +1674,14 @@ is-path-cwd@^2.2.0:
   integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
 
 is-path-inside@^3.0.1:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
-  integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
 
 is-promise@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-  integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
+  integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
 
 is-regexp@^1.0.0:
   version "1.0.0"
@@ -1731,11 +1698,6 @@ is-stream@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
   integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
 
-is-typedarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
-
 isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -1746,11 +1708,6 @@ isexe@^2.0.0:
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
-isstream@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-
 js-tokens@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -1764,16 +1721,16 @@ js-yaml@^3.13.1:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
-jsbn@~0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-  integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-
 json-parse-better-errors@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
   integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
 
+json-parse-even-better-errors@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
 json-schema-traverse@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -1784,44 +1741,24 @@ json-schema-traverse@^1.0.0:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
   integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
 
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
-
 json-stable-stringify-without-jsonify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
-json-stringify-safe@~5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-
-jsonfile@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
-  integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+jsonfile@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+  dependencies:
+    universalify "^2.0.0"
   optionalDependencies:
     graceful-fs "^4.1.6"
 
-jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
-  dependencies:
-    assert-plus "1.0.0"
-    extsprintf "1.3.0"
-    json-schema "0.2.3"
-    verror "1.10.0"
-
-kuler@1.0.x:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6"
-  integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==
-  dependencies:
-    colornames "^1.1.1"
+kuler@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
+  integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
 
 levn@^0.4.1:
   version "0.4.1"
@@ -1908,27 +1845,37 @@ listr@^0.14.3:
     p-map "^2.0.0"
     rxjs "^6.3.3"
 
-locate-path@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
-  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
   dependencies:
-    p-locate "^4.1.0"
+    p-locate "^5.0.0"
 
 lodash.camelcase@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
   integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
 
-lodash@^4.17.14, lodash@^4.17.20:
-  version "4.17.20"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
-  integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+lodash.clonedeep@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
 
-lodash@^4.17.19:
-  version "4.17.19"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
-  integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
+lodash.flatten@^4.4.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
+  integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
+
+lodash.truncate@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
+  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
+
+lodash@^4.17.19, lodash@^4.17.21:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
 log-symbols@^1.0.2:
   version "1.0.2"
@@ -1953,14 +1900,14 @@ log-update@^2.3.0:
     cli-cursor "^2.0.0"
     wrap-ansi "^3.0.1"
 
-logform@^2.1.1:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/logform/-/logform-2.1.2.tgz#957155ebeb67a13164069825ce67ddb5bb2dd360"
-  integrity sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==
+logform@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2"
+  integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==
   dependencies:
     colors "^1.2.1"
     fast-safe-stringify "^2.0.4"
-    fecha "^2.3.3"
+    fecha "^4.2.0"
     ms "^2.1.1"
     triple-beam "^1.3.0"
 
@@ -1969,14 +1916,6 @@ long@^4.0.0:
   resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
   integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
 
-lru-cache@^4.0.1:
-  version "4.1.5"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
-  integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
-  dependencies:
-    pseudomap "^1.0.2"
-    yallist "^2.1.2"
-
 lru-cache@^6.0.0:
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
@@ -2005,9 +1944,9 @@ merge-stream@^2.0.0:
   integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
 
 merge2@^1.2.3, merge2@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
-  integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
 
 methods@~1.1.2:
   version "1.1.2"
@@ -2015,24 +1954,24 @@ methods@~1.1.2:
   integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
 
 micromatch@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
-  integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
   dependencies:
     braces "^3.0.1"
-    picomatch "^2.0.5"
+    picomatch "^2.2.3"
 
-mime-db@1.43.0:
-  version "1.43.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
-  integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
+mime-db@1.47.0:
+  version "1.47.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
+  integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==
 
-mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
-  version "2.1.26"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
-  integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
+mime-types@~2.1.24:
+  version "2.1.30"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
+  integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==
   dependencies:
-    mime-db "1.43.0"
+    mime-db "1.47.0"
 
 mime@1.6.0:
   version "1.6.0"
@@ -2040,9 +1979,9 @@ mime@1.6.0:
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
 mime@^2.0.3:
-  version "2.4.4"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
-  integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
+  integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
 
 mimic-fn@^1.0.0:
   version "1.2.0"
@@ -2054,6 +1993,11 @@ mimic-fn@^2.1.0:
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
   integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
 
+mimic-response@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
+  integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
+
 minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -2061,40 +2005,26 @@ minimatch@^3.0.4:
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@0.0.8:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
-minimist@^1.2.0, minimist@^1.2.5:
+minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
-mkdirp@0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
-  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
-  dependencies:
-    minimist "0.0.8"
-
-mkdirp@^0.5.1:
-  version "0.5.5"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
-  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
-  dependencies:
-    minimist "^1.2.5"
+mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
 
 morgan@^1.9.0:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
-  integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
+  integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==
   dependencies:
-    basic-auth "~2.0.0"
+    basic-auth "~2.0.1"
     debug "2.6.9"
-    depd "~1.1.2"
+    depd "~2.0.0"
     on-finished "~2.3.0"
-    on-headers "~1.0.1"
+    on-headers "~1.0.2"
 
 ms@2.0.0:
   version "2.0.0"
@@ -2116,22 +2046,18 @@ ms@^2.1.1:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
   integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
 
-multistream@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz#629d3a29bd76623489980d04519a2c365948148c"
-  integrity sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==
+multistream@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8"
+  integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==
   dependencies:
-    inherits "^2.0.1"
-    readable-stream "^2.0.5"
+    once "^1.4.0"
+    readable-stream "^3.6.0"
 
-mz@^2.7.0:
-  version "2.7.0"
-  resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
-  integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
-  dependencies:
-    any-promise "^1.0.0"
-    object-assign "^4.0.1"
-    thenify-all "^1.0.0"
+napi-build-utils@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
+  integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
 
 natural-compare@^1.4.0:
   version "1.4.0"
@@ -2143,38 +2069,28 @@ negotiator@0.6.2:
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
   integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
 
-nice-try@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
-  integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+node-abi@^2.7.0:
+  version "2.26.0"
+  resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.26.0.tgz#355d5d4bc603e856f74197adbf3f5117a396ba40"
+  integrity sha512-ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ==
+  dependencies:
+    semver "^5.4.1"
 
 node-cleanup@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c"
   integrity sha1-esGavSl+Caf3KnFUXZUbUX5N3iw=
 
-normalize-package-data@^2.5.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
-  integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
-  dependencies:
-    hosted-git-info "^2.1.4"
-    resolve "^1.10.0"
-    semver "2 || 3 || 4 || 5"
-    validate-npm-package-license "^3.0.1"
+noop-logger@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
+  integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
 
-normalize-path@^3.0.0:
+normalize-path@^3.0.0, normalize-path@~3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
 
-npm-run-path@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
-  integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
-  dependencies:
-    path-key "^2.0.0"
-
 npm-run-path@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5"
@@ -2182,17 +2098,22 @@ npm-run-path@^3.0.0:
   dependencies:
     path-key "^3.0.0"
 
+npmlog@^4.0.1:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+  dependencies:
+    are-we-there-yet "~1.1.2"
+    console-control-strings "~1.1.0"
+    gauge "~2.7.3"
+    set-blocking "~2.0.0"
+
 number-is-nan@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
   integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
 
-oauth-sign@~0.9.0:
-  version "0.9.0"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
-  integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
-object-assign@^4.0.1, object-assign@^4.1.0:
+object-assign@^4.1.0:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -2204,7 +2125,7 @@ on-finished@^2.3.0, on-finished@~2.3.0:
   dependencies:
     ee-first "1.1.1"
 
-on-headers@~1.0.1:
+on-headers@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
   integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
@@ -2216,10 +2137,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
   dependencies:
     wrappy "1"
 
-one-time@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e"
-  integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=
+one-time@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"
+  integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
+  dependencies:
+    fn.name "1.x.x"
 
 onetime@^2.0.0:
   version "2.0.1"
@@ -2229,16 +2152,16 @@ onetime@^2.0.0:
     mimic-fn "^1.0.0"
 
 onetime@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
-  integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
   dependencies:
     mimic-fn "^2.1.0"
 
 opencollective-postinstall@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89"
-  integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
+  integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
 
 optionator@^0.8.1:
   version "0.8.3"
@@ -2264,16 +2187,6 @@ optionator@^0.9.1:
     type-check "^0.4.0"
     word-wrap "^1.2.3"
 
-os-tmpdir@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-
-p-finally@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
-  integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-
 p-finally@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
@@ -2284,19 +2197,19 @@ p-is-promise@^3.0.0:
   resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971"
   integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==
 
-p-limit@^2.2.0:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e"
-  integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
   dependencies:
-    p-try "^2.0.0"
+    yocto-queue "^0.1.0"
 
-p-locate@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
-  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
   dependencies:
-    p-limit "^2.2.0"
+    p-limit "^3.0.2"
 
 p-map@^2.0.0:
   version "2.1.0"
@@ -2310,11 +2223,6 @@ p-map@^3.0.0:
   dependencies:
     aggregate-error "^3.0.0"
 
-p-try@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
-  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
 parent-module@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -2331,13 +2239,13 @@ parse-json@^4.0.0:
     json-parse-better-errors "^1.0.1"
 
 parse-json@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
-  integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
   dependencies:
     "@babel/code-frame" "^7.0.0"
     error-ex "^1.3.1"
-    json-parse-better-errors "^1.0.1"
+    json-parse-even-better-errors "^2.3.0"
     lines-and-columns "^1.1.6"
 
 parseurl@~1.3.3:
@@ -2355,20 +2263,15 @@ path-is-absolute@^1.0.0:
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
 
-path-key@^2.0.0, path-key@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
-  integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-
 path-key@^3.0.0, path-key@^3.1.0:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
   integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
 
 path-parse@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
-  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
 
 path-to-regexp@0.1.7:
   version "0.1.7"
@@ -2392,63 +2295,50 @@ pend@~1.2.0:
   resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
   integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
 
-performance-now@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-
-picomatch@^2.0.5:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
-  integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
+  integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==
 
-picomatch@^2.2.1:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
-  integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
-
-pkg-dir@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
-  integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+pkg-dir@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
+  integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
   dependencies:
-    find-up "^4.0.0"
+    find-up "^5.0.0"
 
-pkg-fetch@^2.6.7:
-  version "2.6.8"
-  resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-2.6.8.tgz#458ba6b9c936de1b0f3f9c830f389888561e630f"
-  integrity sha512-CFG7jOeVD38lltLGA7xCJxYsD//GKLjl1P9tc/n9By2a4WEHQjfkBMrYdMS8WOHVP+r9L20fsZNbaKcubDAiQg==
+pkg-fetch@3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.0.4.tgz#8321eff936bf4eb088a333cf23494be0ded173b7"
+  integrity sha512-XgMXcco5hy0/Q7OXfQ/FbBnPvS4e7gWB9BCcUWUgaHYo3JretihmJjr62EZWmxAjvodoWLGMZ3E7XHf8Q2LfBg==
   dependencies:
-    "@babel/runtime" "^7.9.2"
-    byline "^5.0.0"
-    chalk "^3.0.0"
-    expand-template "^2.0.3"
-    fs-extra "^8.1.0"
-    minimist "^1.2.5"
+    axios "^0.21.1"
+    chalk "^4.1.0"
+    fs-extra "^9.1.0"
     progress "^2.0.3"
-    request "^2.88.0"
-    request-progress "^3.0.0"
-    semver "^6.3.0"
-    unique-temp-dir "^1.0.0"
-
-pkg@4.4.8:
-  version "4.4.8"
-  resolved "https://registry.yarnpkg.com/pkg/-/pkg-4.4.8.tgz#145fb81f31eebfb90d2010dd2c4b663ca0db4009"
-  integrity sha512-Fqqv0iaX48U3CFZxd6Dq6JKe7BrAWbgRAqMJkz/m8W3H5cqJ6suvsUWe5AJPRlN/AhbBYXBJ0XG9QlYPTXcVFA==
-  dependencies:
-    "@babel/parser" "^7.9.4"
-    "@babel/runtime" "^7.9.2"
-    chalk "^3.0.0"
-    escodegen "^1.14.1"
-    fs-extra "^8.1.0"
-    globby "^11.0.0"
-    into-stream "^5.1.1"
+    semver "^7.3.5"
+    yargs "^16.2.0"
+
+pkg@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.1.0.tgz#25f92666a4164bbc5495c862de9370ed48788667"
+  integrity sha512-rWTwvLJakQnEVg03s97KNtGkhM3pPfxk7XinjR7H1bToMZQMNpBTwahrAPoFHdQyfn6odI76DP6vX3Br9VubNQ==
+  dependencies:
+    "@babel/parser" "7.13.13"
+    "@babel/types" "7.13.12"
+    chalk "^4.1.0"
+    escodegen "^2.0.0"
+    fs-extra "^9.1.0"
+    globby "^11.0.3"
+    into-stream "^6.0.0"
     minimist "^1.2.5"
-    multistream "^2.1.1"
-    pkg-fetch "^2.6.7"
+    multistream "^4.1.0"
+    pkg-fetch "3.0.4"
+    prebuild-install "6.0.1"
     progress "^2.0.3"
-    resolve "^1.15.1"
+    resolve "^1.20.0"
     stream-meter "^1.0.4"
+    tslib "2.1.0"
 
 please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0:
   version "3.2.0"
@@ -2457,6 +2347,27 @@ please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0:
   dependencies:
     semver-compare "^1.0.0"
 
+prebuild-install@6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d"
+  integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==
+  dependencies:
+    detect-libc "^1.0.3"
+    expand-template "^2.0.3"
+    github-from-package "0.0.0"
+    minimist "^1.2.3"
+    mkdirp-classic "^0.5.3"
+    napi-build-utils "^1.0.1"
+    node-abi "^2.7.0"
+    noop-logger "^0.1.1"
+    npmlog "^4.0.1"
+    pump "^3.0.0"
+    rc "^1.2.7"
+    simple-get "^3.0.3"
+    tar-fs "^2.0.0"
+    tunnel-agent "^0.6.0"
+    which-pm-runs "^1.0.0"
+
 prelude-ls@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -2490,9 +2401,9 @@ prom-client@^11.5.3:
     tdigest "^0.1.1"
 
 protobufjs@^6.8.6:
-  version "6.8.8"
-  resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c"
-  integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==
+  version "6.11.2"
+  resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b"
+  integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==
   dependencies:
     "@protobufjs/aspromise" "^1.1.2"
     "@protobufjs/base64" "^1.1.2"
@@ -2504,22 +2415,22 @@ protobufjs@^6.8.6:
     "@protobufjs/path" "^1.1.2"
     "@protobufjs/pool" "^1.1.0"
     "@protobufjs/utf8" "^1.1.0"
-    "@types/long" "^4.0.0"
-    "@types/node" "^10.1.0"
+    "@types/long" "^4.0.1"
+    "@types/node" ">=13.7.0"
     long "^4.0.0"
 
 proxy-addr@~2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
-  integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
+  integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
   dependencies:
     forwarded "~0.1.2"
-    ipaddr.js "1.9.0"
+    ipaddr.js "1.9.1"
 
 proxy-from-env@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
-  integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
 
 ps-tree@^1.2.0:
   version "1.2.0"
@@ -2528,16 +2439,6 @@ ps-tree@^1.2.0:
   dependencies:
     event-stream "=3.3.4"
 
-pseudomap@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
-  integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-
-psl@^1.1.28:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c"
-  integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==
-
 pump@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -2546,41 +2447,43 @@ pump@^3.0.0:
     end-of-stream "^1.1.0"
     once "^1.3.1"
 
-punycode@^2.1.0, punycode@^2.1.1:
+punycode@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
-puppeteer-cluster@^0.18.0:
-  version "0.18.0"
-  resolved "https://registry.yarnpkg.com/puppeteer-cluster/-/puppeteer-cluster-0.18.0.tgz#189ef1cea474590aa4d42c9a665dc319689e8fad"
-  integrity sha512-sMhK7foa+gq8khtgvKar6xwIjmPFS92ZrDsnpMHcQMX2Q8hWmVSViHG7RhuAOmbfIbS7Ya+lViXlx1xtgUjarQ==
+puppeteer-cluster@^0.22.0:
+  version "0.22.0"
+  resolved "https://registry.yarnpkg.com/puppeteer-cluster/-/puppeteer-cluster-0.22.0.tgz#4ab214671f414f15ad6a94a4b61ed0b4172e86e6"
+  integrity sha512-hmydtMwfVM+idFIDzS8OXetnujHGre7RY3BGL+3njy9+r8Dcu3VALkZHfuBEPf6byKssTCgzxU1BvLczifXd5w==
   dependencies:
     debug "^4.1.1"
 
-puppeteer@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-2.0.0.tgz#0612992e29ec418e0a62c8bebe61af1a64d7ec01"
-  integrity sha512-t3MmTWzQxPRP71teU6l0jX47PHXlc4Z52sQv4LJQSZLq1ttkKS2yGM3gaI57uQwZkNaoGd0+HPPMELZkcyhlqA==
+puppeteer@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.3.0.tgz#95839af9fdc0aa4de7e5ee073a4c0adeb9e2d3d7"
+  integrity sha512-23zNqRltZ1PPoK28uRefWJ/zKb5Jhnzbbwbpcna2o5+QMn17F0khq5s1bdH3vPlyj+J36pubccR8wiNA/VE0Vw==
   dependencies:
     debug "^4.1.0"
-    extract-zip "^1.6.6"
-    https-proxy-agent "^3.0.0"
+    extract-zip "^2.0.0"
+    https-proxy-agent "^4.0.0"
     mime "^2.0.3"
     progress "^2.0.1"
     proxy-from-env "^1.0.0"
-    rimraf "^2.6.1"
-    ws "^6.1.0"
+    rimraf "^3.0.2"
+    tar-fs "^2.0.0"
+    unbzip2-stream "^1.3.3"
+    ws "^7.2.3"
 
 qs@6.7.0:
   version "6.7.0"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
   integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
 
-qs@~6.5.2:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
-  integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
 
 range-parser@~1.2.1:
   version "1.2.1"
@@ -2597,17 +2500,17 @@ raw-body@2.4.0:
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
-read-pkg@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
-  integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+rc@^1.2.7:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
   dependencies:
-    "@types/normalize-package-data" "^2.4.0"
-    normalize-package-data "^2.5.0"
-    parse-json "^5.0.0"
-    type-fest "^0.6.0"
+    deep-extend "^0.6.0"
+    ini "~1.3.0"
+    minimist "^1.2.0"
+    strip-json-comments "~2.0.1"
 
-readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.3.6:
+readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.3.7:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -2620,57 +2523,31 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.1.4, readable
     string_decoder "~1.1.1"
     util-deprecate "~1.0.1"
 
-readable-stream@^3.1.1:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.5.0.tgz#465d70e6d1087f6162d079cd0b5db7fbebfd1606"
-  integrity sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==
+readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
   dependencies:
     inherits "^2.0.3"
     string_decoder "^1.1.1"
     util-deprecate "^1.0.1"
 
-regenerator-runtime@^0.13.4:
-  version "0.13.5"
-  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
-  integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
+readdirp@~3.5.0:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
+  integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
+  dependencies:
+    picomatch "^2.2.1"
 
 regexpp@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
   integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
 
-request-progress@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe"
-  integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=
-  dependencies:
-    throttleit "^1.0.0"
-
-request@^2.88.0:
-  version "2.88.2"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
-  integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.8.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.6"
-    extend "~3.0.2"
-    forever-agent "~0.6.1"
-    form-data "~2.3.2"
-    har-validator "~5.1.3"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.19"
-    oauth-sign "~0.9.0"
-    performance-now "^2.1.0"
-    qs "~6.5.2"
-    safe-buffer "^5.1.2"
-    tough-cookie "~2.5.0"
-    tunnel-agent "^0.6.0"
-    uuid "^3.3.2"
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
 require-from-string@^2.0.2:
   version "2.0.2"
@@ -2687,18 +2564,12 @@ resolve-from@^4.0.0:
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
   integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
 
-resolve@^1.10.0:
-  version "1.14.2"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2"
-  integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==
-  dependencies:
-    path-parse "^1.0.6"
-
-resolve@^1.15.1:
-  version "1.17.0"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
-  integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
+resolve@^1.20.0:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
   dependencies:
+    is-core-module "^2.2.0"
     path-parse "^1.0.6"
 
 restore-cursor@^2.0.0:
@@ -2709,46 +2580,29 @@ restore-cursor@^2.0.0:
     onetime "^2.0.0"
     signal-exit "^3.0.2"
 
-reusify@^1.0.0:
+reusify@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
-rimraf@^2.6.1:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
-  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
-  dependencies:
-    glob "^7.1.3"
-
-rimraf@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b"
-  integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==
-  dependencies:
-    glob "^7.1.3"
-
-rimraf@^3.0.2:
+rimraf@^3.0.0, rimraf@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
   integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
   dependencies:
     glob "^7.1.3"
 
-run-node@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
-  integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==
-
 run-parallel@^1.1.9:
-  version "1.1.9"
-  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
-  integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
 
 rxjs@^6.3.3:
-  version "6.5.4"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"
-  integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==
+  version "6.6.7"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
+  integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
   dependencies:
     tslib "^1.9.0"
 
@@ -2757,12 +2611,12 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
-safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
-  integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+safe-buffer@^5.0.1, safe-buffer@~5.2.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3":
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -2772,20 +2626,20 @@ semver-compare@^1.0.0:
   resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
   integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
 
-"semver@2 || 3 || 4 || 5", semver@^5.5.0:
+semver-regex@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807"
+  integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==
+
+semver@^5.4.1:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
-semver@^6.2.0, semver@^6.3.0:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
-  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-
-semver@^7.2.1:
-  version "7.3.4"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
-  integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
+semver@^7.2.1, semver@^7.3.5:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
   dependencies:
     lru-cache "^6.0.0"
 
@@ -2818,18 +2672,16 @@ serve-static@1.14.1:
     parseurl "~1.3.3"
     send "0.17.1"
 
+set-blocking@~2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
 setprototypeof@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
   integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
 
-shebang-command@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
-  integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
-  dependencies:
-    shebang-regex "^1.0.0"
-
 shebang-command@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -2837,20 +2689,29 @@ shebang-command@^2.0.0:
   dependencies:
     shebang-regex "^3.0.0"
 
-shebang-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-  integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-
 shebang-regex@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
   integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
 signal-exit@^3.0.0, signal-exit@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-  integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+  integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
+simple-concat@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
+  integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
+
+simple-get@^3.0.3:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
+  integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
+  dependencies:
+    decompress-response "^4.2.0"
+    once "^1.3.1"
+    simple-concat "^1.0.0"
 
 simple-swizzle@^0.2.2:
   version "0.2.2"
@@ -2883,32 +2744,6 @@ source-map@~0.6.1:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
-spdx-correct@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
-  integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
-  dependencies:
-    spdx-expression-parse "^3.0.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
-  integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
-
-spdx-expression-parse@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
-  integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
-  dependencies:
-    spdx-exceptions "^2.1.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
-  version "3.0.5"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
-  integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
-
 split@0.3:
   version "0.3.3"
   resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
@@ -2921,21 +2756,6 @@ sprintf-js@~1.0.2:
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
 
-sshpk@^1.7.0:
-  version "1.16.1"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
-  integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
-  dependencies:
-    asn1 "~0.2.3"
-    assert-plus "^1.0.0"
-    bcrypt-pbkdf "^1.0.0"
-    dashdash "^1.12.0"
-    ecc-jsbn "~0.1.1"
-    getpass "^0.1.1"
-    jsbn "~0.1.0"
-    safer-buffer "^2.0.2"
-    tweetnacl "~0.14.0"
-
 stack-trace@0.0.x:
   version "0.0.10"
   resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
@@ -2979,7 +2799,7 @@ string-width@^1.0.1:
     is-fullwidth-code-point "^1.0.0"
     strip-ansi "^3.0.0"
 
-string-width@^2.1.1:
+"string-width@^1.0.2 || 2", string-width@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
   integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -2987,10 +2807,10 @@ string-width@^2.1.1:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
-string-width@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
-  integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+string-width@^4.1.0, string-width@^4.2.0:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
   dependencies:
     emoji-regex "^8.0.0"
     is-fullwidth-code-point "^3.0.0"
@@ -3040,11 +2860,6 @@ strip-ansi@^6.0.0:
   dependencies:
     ansi-regex "^5.0.0"
 
-strip-eof@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
-  integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-
 strip-final-newline@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
@@ -3055,6 +2870,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
   integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
 
+strip-json-comments@~2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+
 supports-color@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -3080,14 +2900,38 @@ symbol-observable@^1.1.0:
   integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
 
 table@^6.0.4:
-  version "6.0.7"
-  resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34"
-  integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==
-  dependencies:
-    ajv "^7.0.2"
-    lodash "^4.17.20"
+  version "6.6.0"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.6.0.tgz#905654b79df98d9e9a973de1dd58682532c40e8e"
+  integrity sha512-iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==
+  dependencies:
+    ajv "^8.0.1"
+    lodash.clonedeep "^4.5.0"
+    lodash.flatten "^4.4.0"
+    lodash.truncate "^4.4.2"
     slice-ansi "^4.0.0"
     string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+
+tar-fs@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+  integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
+  dependencies:
+    chownr "^1.1.1"
+    mkdirp-classic "^0.5.2"
+    pump "^3.0.0"
+    tar-stream "^2.1.4"
+
+tar-stream@^2.1.4:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+  integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+  dependencies:
+    bl "^4.0.3"
+    end-of-stream "^1.4.1"
+    fs-constants "^1.0.0"
+    inherits "^2.0.3"
+    readable-stream "^3.1.1"
 
 tdigest@^0.1.1:
   version "0.1.1"
@@ -3106,30 +2950,16 @@ text-table@^0.2.0:
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
   integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
 
-thenify-all@^1.0.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
-  integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=
-  dependencies:
-    thenify ">= 3.1.0 < 4"
-
-"thenify@>= 3.1.0 < 4":
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
-  integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=
-  dependencies:
-    any-promise "^1.0.0"
-
-throttleit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
-  integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
-
-through@2, through@~2.3, through@~2.3.1:
+through@2, through@^2.3.8, through@~2.3, through@~2.3.1:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
   integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
 
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
 to-regex-range@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -3142,34 +2972,31 @@ toidentifier@1.0.0:
   resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
   integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 
-tough-cookie@~2.5.0:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
-  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
-  dependencies:
-    psl "^1.1.28"
-    punycode "^2.1.1"
-
 triple-beam@^1.2.0, triple-beam@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
   integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
 
 tsc-watch@^4.2.3:
-  version "4.2.3"
-  resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.2.3.tgz#630aaf1ed8bbfb6fbcbddb9bef96054bed217c4b"
-  integrity sha512-M1Lo37+ggVfavGX3ObUVMz9QBH7moqq2RlmBdxnz6a6etwecetznZ/ZgYOi2c9HQ4Ki2qStj7V9J/gSf0rThig==
+  version "4.2.9"
+  resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.2.9.tgz#d93fc74233ca4ef7ee6b12d08c0fe6aca3e19044"
+  integrity sha512-DlTaoDs74+KUpyWr7dCGhuscAUKCz6CiFduBN7R9RbLJSSN1moWdwoCLASE7+zLgGvV5AwXfYDiEMAsPGaO+Vw==
   dependencies:
-    cross-spawn "^5.1.0"
+    cross-spawn "^7.0.3"
     node-cleanup "^2.1.2"
     ps-tree "^1.2.0"
     string-argv "^0.1.1"
-    strip-ansi "^4.0.0"
+    strip-ansi "^6.0.0"
+
+tslib@2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
+  integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
 
 tslib@^1.9.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
-  integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
 
 tunnel-agent@^0.6.0:
   version "0.6.0"
@@ -3178,11 +3005,6 @@ tunnel-agent@^0.6.0:
   dependencies:
     safe-buffer "^5.0.1"
 
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-  integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
-
 type-check@^0.4.0, type-check@~0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -3197,10 +3019,10 @@ type-check@~0.3.2:
   dependencies:
     prelude-ls "~1.1.2"
 
-type-fest@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
-  integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
 type-fest@^0.8.1:
   version "0.8.1"
@@ -3215,20 +3037,18 @@ type-is@~1.6.17, type-is@~1.6.18:
     media-typer "0.3.0"
     mime-types "~2.1.24"
 
-typedarray@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-
 typescript@^3.8.3:
-  version "3.8.3"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
-  integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
+  version "3.9.9"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674"
+  integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==
 
-uid2@0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
-  integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
+unbzip2-stream@^1.3.3:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+  integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
+  dependencies:
+    buffer "^5.2.1"
+    through "^2.3.8"
 
 unique-filename@^1.1.0:
   version "1.1.1"
@@ -3244,19 +3064,10 @@ unique-slug@^2.0.0:
   dependencies:
     imurmurhash "^0.1.4"
 
-unique-temp-dir@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385"
-  integrity sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=
-  dependencies:
-    mkdirp "^0.5.1"
-    os-tmpdir "^1.0.1"
-    uid2 "0.0.3"
-
-universalify@^0.1.0:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
-  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+universalify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
 
 unpipe@1.0.0, unpipe@~1.0.0:
   version "1.0.0"
@@ -3271,9 +3082,9 @@ uri-js@^4.2.2:
     punycode "^2.1.0"
 
 url-value-parser@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.0.1.tgz#c8179a095ab9ec1f5aa17ca36af5af396b4e95ed"
-  integrity sha512-bexECeREBIueboLGM3Y1WaAzQkIn+Tca/Xjmjmfd0S/hFHSCEoFkNh0/D0l9G4K74MkEP/lLFRlYnxX3d68Qgw==
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.0.3.tgz#cd4b8d6754e458d65e8125260c09718d926e6e21"
+  integrity sha512-FjIX+Q9lYmDM9uYIGdMYfQW0uLbWVwN2NrL2ayAI7BTOvEwzH+VoDdNquwB9h4dFAx+u6mb0ONLa3sHD5DvyvA==
 
 util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   version "1.0.2"
@@ -3285,44 +3096,20 @@ utils-merge@1.0.1:
   resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
   integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
 
-uuid@^3.3.2:
-  version "3.4.0"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
-  integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-
 v8-compile-cache@^2.0.3:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
-  integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
-
-validate-npm-package-license@^3.0.1:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
-  integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
-  dependencies:
-    spdx-correct "^3.0.0"
-    spdx-expression-parse "^3.0.0"
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
 
 vary@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
-verror@1.10.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
-  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
-  dependencies:
-    assert-plus "^1.0.0"
-    core-util-is "1.0.2"
-    extsprintf "^1.2.0"
-
-which@^1.2.9:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
-  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
-  dependencies:
-    isexe "^2.0.0"
+which-pm-runs@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
+  integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
 
 which@^2.0.1:
   version "2.0.2"
@@ -3331,28 +3118,35 @@ which@^2.0.1:
   dependencies:
     isexe "^2.0.0"
 
-winston-transport@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.3.0.tgz#df68c0c202482c448d9b47313c07304c2d7c2c66"
-  integrity sha512-B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==
+wide-align@^1.1.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+  dependencies:
+    string-width "^1.0.2 || 2"
+
+winston-transport@^4.4.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"
+  integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==
   dependencies:
-    readable-stream "^2.3.6"
+    readable-stream "^2.3.7"
     triple-beam "^1.2.0"
 
 winston@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07"
-  integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==
+  version "3.3.3"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"
+  integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==
   dependencies:
-    async "^2.6.1"
-    diagnostics "^1.1.1"
-    is-stream "^1.1.0"
-    logform "^2.1.1"
-    one-time "0.0.4"
-    readable-stream "^3.1.1"
+    "@dabh/diagnostics" "^2.0.2"
+    async "^3.1.0"
+    is-stream "^2.0.0"
+    logform "^2.2.0"
+    one-time "^1.0.0"
+    readable-stream "^3.4.0"
     stack-trace "0.0.x"
     triple-beam "^1.3.0"
-    winston-transport "^4.3.0"
+    winston-transport "^4.4.0"
 
 word-wrap@^1.2.3, word-wrap@~1.2.3:
   version "1.2.3"
@@ -3367,31 +3161,67 @@ wrap-ansi@^3.0.1:
     string-width "^2.1.1"
     strip-ansi "^4.0.0"
 
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
 
-ws@^6.1.0:
-  version "6.2.1"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
-  integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
-  dependencies:
-    async-limiter "~1.0.0"
+ws@^7.2.3:
+  version "7.4.6"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
+  integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
 
-yallist@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
-  integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
 
 yallist@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
   integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
 
-yauzl@2.4.1:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
-  integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
+yaml@^1.10.0:
+  version "1.10.2"
+  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^20.2.2:
+  version "20.2.7"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
+  integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
+
+yargs@^16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.0"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
+
+yauzl@^2.10.0:
+  version "2.10.0"
+  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+  integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
   dependencies:
-    fd-slicer "~1.0.1"
+    buffer-crc32 "~0.2.3"
+    fd-slicer "~1.1.0"
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
index 8b4c1ec31e5c..7eb3a3bb8a76 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
@@ -10,99 +10,115 @@
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
-        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha1 = "d26cad8a47c65286b15df1547319a5d0bcf27288";
       };
     }
     {
-      name = "_babel_parser___parser_7.9.6.tgz";
+      name = "_babel_highlight___highlight_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz";
-        sha1 = "3b1bbb30dabe600cd72db58720998376ff653bc7";
+        name = "_babel_highlight___highlight_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha1 = "3197e375711ef6bf834e67d0daec88e4f46113cf";
       };
     }
     {
-      name = "_babel_runtime___runtime_7.9.6.tgz";
+      name = "_babel_parser___parser_7.13.13.tgz";
       path = fetchurl {
-        name = "_babel_runtime___runtime_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz";
-        sha1 = "a9102eb5cadedf3f31d08a9ecf294af7827ea29f";
+        name = "_babel_parser___parser_7.13.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz";
+        sha1 = "42f03862f4aed50461e543270916b47dd501f0df";
       };
     }
     {
-      name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+      name = "_babel_types___types_7.13.12.tgz";
       path = fetchurl {
-        name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
-        sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
+        name = "_babel_types___types_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz";
+        sha1 = "edbf99208ef48852acdff1c8a681a1e4ade580cd";
       };
     }
     {
-      name = "_grpc_grpc_js___grpc_js_1.0.3.tgz";
+      name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
       path = fetchurl {
-        name = "_grpc_grpc_js___grpc_js_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.0.3.tgz";
-        sha1 = "7fa2ba293ccc1e91b24074c2628c8c68336e18c4";
+        name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha1 = "290d08f7b381b8f94607dc8f471a12c675f9db31";
       };
     }
     {
-      name = "_grpc_proto_loader___proto_loader_0.5.4.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
       path = fetchurl {
-        name = "_grpc_proto_loader___proto_loader_0.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.4.tgz";
-        sha1 = "038a3820540f621eeb1b05d81fbedfb045e14de0";
+        name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
+        sha1 = "99cc0a0584d72f1df38b900fb062ba995f395547";
       };
     }
     {
-      name = "_hapi_boom___boom_9.1.0.tgz";
+      name = "_grpc_grpc_js___grpc_js_1.3.0.tgz";
       path = fetchurl {
-        name = "_hapi_boom___boom_9.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.0.tgz";
-        sha1 = "0d9517657a56ff1e0b42d0aca9da1b37706fec56";
+        name = "_grpc_grpc_js___grpc_js_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.0.tgz";
+        sha1 = "c6febaaf00ce7f53b5ec52c7cf3e2a4725b82bcb";
       };
     }
     {
-      name = "_hapi_hoek___hoek_9.1.0.tgz";
+      name = "_grpc_proto_loader___proto_loader_0.5.6.tgz";
       path = fetchurl {
-        name = "_hapi_hoek___hoek_9.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz";
-        sha1 = "6c9eafc78c1529248f8f4d92b0799a712b6052c6";
+        name = "_grpc_proto_loader___proto_loader_0.5.6.tgz";
+        url  = "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz";
+        sha1 = "1dea4b8a6412b05e2d58514d507137b63a52a98d";
       };
     }
     {
-      name = "_nodelib_fs.scandir___fs.scandir_2.1.3.tgz";
+      name = "_hapi_boom___boom_9.1.2.tgz";
       path = fetchurl {
-        name = "_nodelib_fs.scandir___fs.scandir_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
-        sha1 = "3a582bdb53804c6ba6d146579c46e52130cf4a3b";
+        name = "_hapi_boom___boom_9.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.2.tgz";
+        sha1 = "48bd41d67437164a2d636e3b5bc954f8c8dc5e38";
       };
     }
     {
-      name = "_nodelib_fs.stat___fs.stat_2.0.3.tgz";
+      name = "_hapi_hoek___hoek_9.2.0.tgz";
       path = fetchurl {
-        name = "_nodelib_fs.stat___fs.stat_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
-        sha1 = "34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3";
+        name = "_hapi_hoek___hoek_9.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz";
+        sha1 = "f3933a44e365864f4dad5db94158106d511e8131";
       };
     }
     {
-      name = "_nodelib_fs.walk___fs.walk_1.2.4.tgz";
+      name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
       path = fetchurl {
-        name = "_nodelib_fs.walk___fs.walk_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
-        sha1 = "011b9202a70a6366e436ca5c065844528ab04976";
+        name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
+        sha1 = "d4b3549a5db5de2683e0c1071ab4f140904bbf69";
+      };
+    }
+    {
+      name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
+        sha1 = "a3f2dd61bab43b8db8fa108a121cfffe4c676655";
+      };
+    }
+    {
+      name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha1 = "cce9396b30aa5afe9e3756608f5831adcb53d063";
       };
     }
     {
@@ -186,107 +202,107 @@
       };
     }
     {
-      name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
+      name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.1.tgz";
       path = fetchurl {
-        name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz";
-        sha1 = "ecdf48d532c58ea477acfcab80348424f8d0662f";
+        name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz";
+        sha1 = "a21117b19ee9be70c379ec1877537ef2e1c63301";
       };
     }
     {
-      name = "_types_body_parser___body_parser_1.17.1.tgz";
+      name = "_types_body_parser___body_parser_1.19.0.tgz";
       path = fetchurl {
-        name = "_types_body_parser___body_parser_1.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.1.tgz";
-        sha1 = "18fcf61768fb5c30ccc508c21d6fd2e8b3bf7897";
+        name = "_types_body_parser___body_parser_1.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz";
+        sha1 = "0685b3c47eb3006ffed117cdd55164b61f80538f";
       };
     }
     {
-      name = "_types_connect___connect_3.4.33.tgz";
+      name = "_types_connect___connect_3.4.34.tgz";
       path = fetchurl {
-        name = "_types_connect___connect_3.4.33.tgz";
-        url  = "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz";
-        sha1 = "31610c901eca573b8713c3330abc6e6b9f588546";
+        name = "_types_connect___connect_3.4.34.tgz";
+        url  = "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz";
+        sha1 = "170a40223a6d666006d93ca128af2beb1d9b1901";
       };
     }
     {
-      name = "_types_events___events_3.0.0.tgz";
+      name = "_types_express_serve_static_core___express_serve_static_core_4.17.19.tgz";
       path = fetchurl {
-        name = "_types_events___events_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz";
-        sha1 = "2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7";
+        name = "_types_express_serve_static_core___express_serve_static_core_4.17.19.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz";
+        sha1 = "00acfc1632e729acac4f1530e9e16f6dd1508a1d";
       };
     }
     {
-      name = "_types_express_serve_static_core___express_serve_static_core_4.17.1.tgz";
+      name = "_types_express___express_4.17.11.tgz";
       path = fetchurl {
-        name = "_types_express_serve_static_core___express_serve_static_core_4.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.1.tgz";
-        sha1 = "82be64a77211b205641e0209096fd3afb62481d3";
+        name = "_types_express___express_4.17.11.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz";
+        sha1 = "debe3caa6f8e5fcda96b47bd54e2f40c4ee59545";
       };
     }
     {
-      name = "_types_express___express_4.17.2.tgz";
+      name = "_types_glob___glob_7.1.3.tgz";
       path = fetchurl {
-        name = "_types_express___express_4.17.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/express/-/express-4.17.2.tgz";
-        sha1 = "a0fb7a23d8855bac31bc01d5a58cadd9b2173e6c";
+        name = "_types_glob___glob_7.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz";
+        sha1 = "e6ba80f36b7daad2c685acd9266382e68985c183";
       };
     }
     {
-      name = "_types_glob___glob_7.1.1.tgz";
+      name = "_types_long___long_4.0.1.tgz";
       path = fetchurl {
-        name = "_types_glob___glob_7.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz";
-        sha1 = "aa59a1c6e3fbc421e07ccd31a944c30eba521575";
+        name = "_types_long___long_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz";
+        sha1 = "459c65fa1867dafe6a8f322c4c51695663cc55e9";
       };
     }
     {
-      name = "_types_long___long_4.0.0.tgz";
+      name = "_types_mime___mime_1.3.2.tgz";
       path = fetchurl {
-        name = "_types_long___long_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz";
-        sha1 = "719551d2352d301ac8b81db732acb6bdc28dbdef";
+        name = "_types_mime___mime_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz";
+        sha1 = "93e25bf9ee75fe0fd80b594bc4feb0e862111b5a";
       };
     }
     {
-      name = "_types_mime___mime_2.0.1.tgz";
+      name = "_types_minimatch___minimatch_3.0.4.tgz";
       path = fetchurl {
-        name = "_types_mime___mime_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz";
-        sha1 = "dc488842312a7f075149312905b5e3c0b054c79d";
+        name = "_types_minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "f0ec25dbf2f0e4b18647313ac031134ca5b24b21";
       };
     }
     {
-      name = "_types_minimatch___minimatch_3.0.3.tgz";
+      name = "_types_node___node_15.0.2.tgz";
       path = fetchurl {
-        name = "_types_minimatch___minimatch_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
+        name = "_types_node___node_15.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz";
+        sha1 = "51e9c0920d1b45936ea04341aa3e2e58d339fb67";
       };
     }
     {
-      name = "_types_node___node_13.1.8.tgz";
+      name = "_types_node___node_14.14.44.tgz";
       path = fetchurl {
-        name = "_types_node___node_13.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-13.1.8.tgz";
-        sha1 = "1d590429fe8187a02707720ecf38a6fe46ce294b";
+        name = "_types_node___node_14.14.44.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz";
+        sha1 = "df7503e6002847b834371c004b372529f3f85215";
       };
     }
     {
-      name = "_types_node___node_10.17.13.tgz";
+      name = "_types_parse_json___parse_json_4.0.0.tgz";
       path = fetchurl {
-        name = "_types_node___node_10.17.13.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-10.17.13.tgz";
-        sha1 = "ccebcdb990bd6139cd16e84c39dc2fb1023ca90c";
+        name = "_types_parse_json___parse_json_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "2f8bb441434d163b35fb8ffdccd7138927ffb8c0";
       };
     }
     {
-      name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
+      name = "_types_qs___qs_6.9.6.tgz";
       path = fetchurl {
-        name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
-        sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e";
+        name = "_types_qs___qs_6.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz";
+        sha1 = "df9c3c8b31a247ec315e6996566be3171df4b3b1";
       };
     }
     {
@@ -298,11 +314,19 @@
       };
     }
     {
-      name = "_types_serve_static___serve_static_1.13.3.tgz";
+      name = "_types_serve_static___serve_static_1.13.9.tgz";
       path = fetchurl {
-        name = "_types_serve_static___serve_static_1.13.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.3.tgz";
-        sha1 = "eb7e1c41c4468272557e897e9171ded5e2ded9d1";
+        name = "_types_serve_static___serve_static_1.13.9.tgz";
+        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz";
+        sha1 = "aacf28a85a05ee29a11fb7c3ead935ac56f33e4e";
+      };
+    }
+    {
+      name = "_types_yauzl___yauzl_2.9.1.tgz";
+      path = fetchurl {
+        name = "_types_yauzl___yauzl_2.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz";
+        sha1 = "d10f69f9f522eef3cf98e30afb684a1e1ec923af";
       };
     }
     {
@@ -330,19 +354,19 @@
       };
     }
     {
-      name = "agent_base___agent_base_4.3.0.tgz";
+      name = "agent_base___agent_base_5.1.1.tgz";
       path = fetchurl {
-        name = "agent_base___agent_base_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz";
-        sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee";
+        name = "agent_base___agent_base_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz";
+        sha1 = "e8fb3f242959db44d63be665db7a8e739537a32c";
       };
     }
     {
-      name = "aggregate_error___aggregate_error_3.0.1.tgz";
+      name = "aggregate_error___aggregate_error_3.1.0.tgz";
       path = fetchurl {
-        name = "aggregate_error___aggregate_error_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz";
-        sha1 = "db2fe7246e536f40d9b5442a39e117d7dd6a24e0";
+        name = "aggregate_error___aggregate_error_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha1 = "92670ff50f5359bdb7a3e0d40d0ec30c5737687a";
       };
     }
     {
@@ -354,19 +378,11 @@
       };
     }
     {
-      name = "ajv___ajv_6.11.0.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz";
-        sha1 = "c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9";
-      };
-    }
-    {
-      name = "ajv___ajv_7.0.3.tgz";
+      name = "ajv___ajv_8.2.0.tgz";
       path = fetchurl {
-        name = "ajv___ajv_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz";
-        sha1 = "13ae747eff125cafb230ac504b2406cf371eece2";
+        name = "ajv___ajv_8.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-8.2.0.tgz";
+        sha1 = "c89d3380a784ce81b2085f48811c4c101df4c602";
       };
     }
     {
@@ -442,11 +458,27 @@
       };
     }
     {
-      name = "any_promise___any_promise_1.3.0.tgz";
+      name = "anymatch___anymatch_3.1.2.tgz";
+      path = fetchurl {
+        name = "anymatch___anymatch_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
+        sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
+      };
+    }
+    {
+      name = "aproba___aproba_1.2.0.tgz";
+      path = fetchurl {
+        name = "aproba___aproba_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+        sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+      };
+    }
+    {
+      name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
       path = fetchurl {
-        name = "any_promise___any_promise_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz";
-        sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
+        name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+        sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
       };
     }
     {
@@ -474,22 +506,6 @@
       };
     }
     {
-      name = "asn1___asn1_0.2.4.tgz";
-      path = fetchurl {
-        name = "asn1___asn1_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
-        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
-      };
-    }
-    {
-      name = "assert_plus___assert_plus_1.0.0.tgz";
-      path = fetchurl {
-        name = "assert_plus___assert_plus_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
-      };
-    }
-    {
       name = "astral_regex___astral_regex_2.0.0.tgz";
       path = fetchurl {
         name = "astral_regex___astral_regex_2.0.0.tgz";
@@ -498,51 +514,43 @@
       };
     }
     {
-      name = "async_limiter___async_limiter_1.0.1.tgz";
-      path = fetchurl {
-        name = "async_limiter___async_limiter_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha1 = "dd379e94f0db8310b08291f9d64c3209766617fd";
-      };
-    }
-    {
-      name = "async___async_2.6.3.tgz";
+      name = "async___async_3.2.0.tgz";
       path = fetchurl {
-        name = "async___async_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
-        sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
+        name = "async___async_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz";
+        sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720";
       };
     }
     {
-      name = "asynckit___asynckit_0.4.0.tgz";
+      name = "at_least_node___at_least_node_1.0.0.tgz";
       path = fetchurl {
-        name = "asynckit___asynckit_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+        name = "at_least_node___at_least_node_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
       };
     }
     {
-      name = "aws_sign2___aws_sign2_0.7.0.tgz";
+      name = "axios___axios_0.21.1.tgz";
       path = fetchurl {
-        name = "aws_sign2___aws_sign2_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+        name = "axios___axios_0.21.1.tgz";
+        url  = "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz";
+        sha1 = "22563481962f4d6bde9a76d516ef0e5d3c09b2b8";
       };
     }
     {
-      name = "aws4___aws4_1.9.1.tgz";
+      name = "balanced_match___balanced_match_1.0.2.tgz";
       path = fetchurl {
-        name = "aws4___aws4_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz";
-        sha1 = "7e33d8f7d449b3f673cd72deb9abdc552dbe528e";
+        name = "balanced_match___balanced_match_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
       };
     }
     {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
+      name = "base64_js___base64_js_1.5.1.tgz";
       path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        name = "base64_js___base64_js_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz";
+        sha1 = "1b1b440160a5bf7ad40b650f095963481903930a";
       };
     }
     {
@@ -554,11 +562,11 @@
       };
     }
     {
-      name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+      name = "binary_extensions___binary_extensions_2.2.0.tgz";
       path = fetchurl {
-        name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+        name = "binary_extensions___binary_extensions_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha1 = "75f502eeaf9ffde42fc98829645be4ea76bd9e2d";
       };
     }
     {
@@ -570,6 +578,14 @@
       };
     }
     {
+      name = "bl___bl_4.1.0.tgz";
+      path = fetchurl {
+        name = "bl___bl_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz";
+        sha1 = "451535264182bec2fbbc83a62ab98cf11d9f7b3a";
+      };
+    }
+    {
       name = "body_parser___body_parser_1.19.0.tgz";
       path = fetchurl {
         name = "body_parser___body_parser_1.19.0.tgz";
@@ -594,19 +610,19 @@
       };
     }
     {
-      name = "buffer_from___buffer_from_1.1.1.tgz";
+      name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
       path = fetchurl {
-        name = "buffer_from___buffer_from_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+        name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
+        sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
       };
     }
     {
-      name = "byline___byline_5.0.0.tgz";
+      name = "buffer___buffer_5.7.1.tgz";
       path = fetchurl {
-        name = "byline___byline_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz";
-        sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+        name = "buffer___buffer_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz";
+        sha1 = "ba62e7c13133053582197160851a8f648e99eed0";
       };
     }
     {
@@ -650,14 +666,6 @@
       };
     }
     {
-      name = "caseless___caseless_0.12.0.tgz";
-      path = fetchurl {
-        name = "caseless___caseless_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
-      };
-    }
-    {
       name = "chalk___chalk_1.1.3.tgz";
       path = fetchurl {
         name = "chalk___chalk_1.1.3.tgz";
@@ -674,19 +682,27 @@
       };
     }
     {
-      name = "chalk___chalk_3.0.0.tgz";
+      name = "chalk___chalk_4.1.1.tgz";
       path = fetchurl {
-        name = "chalk___chalk_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
-        sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
+        name = "chalk___chalk_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
+        sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
       };
     }
     {
-      name = "chalk___chalk_4.1.0.tgz";
+      name = "chokidar___chokidar_3.5.1.tgz";
       path = fetchurl {
-        name = "chalk___chalk_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
-        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+        name = "chokidar___chokidar_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz";
+        sha1 = "ee9ce7bbebd2b79f49f304799d5468e31e14e68a";
+      };
+    }
+    {
+      name = "chownr___chownr_1.1.4.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
+        sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
       };
     }
     {
@@ -722,6 +738,14 @@
       };
     }
     {
+      name = "cliui___cliui_7.0.4.tgz";
+      path = fetchurl {
+        name = "cliui___cliui_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz";
+        sha1 = "a0265ee655476fc807aea9df3df8df7783808b4f";
+      };
+    }
+    {
       name = "code_point_at___code_point_at_1.1.0.tgz";
       path = fetchurl {
         name = "code_point_at___code_point_at_1.1.0.tgz";
@@ -762,11 +786,11 @@
       };
     }
     {
-      name = "color_string___color_string_1.5.3.tgz";
+      name = "color_string___color_string_1.5.5.tgz";
       path = fetchurl {
-        name = "color_string___color_string_1.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz";
-        sha1 = "c9bbc5f01b58b5492f3d6857459cb6590ce204cc";
+        name = "color_string___color_string_1.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz";
+        sha1 = "65474a8f0e7439625f3d27a6a19d89fc45223014";
       };
     }
     {
@@ -778,14 +802,6 @@
       };
     }
     {
-      name = "colornames___colornames_1.1.1.tgz";
-      path = fetchurl {
-        name = "colornames___colornames_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz";
-        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
-      };
-    }
-    {
       name = "colors___colors_1.4.0.tgz";
       path = fetchurl {
         name = "colors___colors_1.4.0.tgz";
@@ -802,14 +818,6 @@
       };
     }
     {
-      name = "combined_stream___combined_stream_1.0.8.tgz";
-      path = fetchurl {
-        name = "combined_stream___combined_stream_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
-      };
-    }
-    {
       name = "commander___commander_2.20.3.tgz";
       path = fetchurl {
         name = "commander___commander_2.20.3.tgz";
@@ -818,6 +826,14 @@
       };
     }
     {
+      name = "compare_versions___compare_versions_3.6.0.tgz";
+      path = fetchurl {
+        name = "compare_versions___compare_versions_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz";
+        sha1 = "1a5689913685e5a87637b8d3ffca75514ec41d62";
+      };
+    }
+    {
       name = "concat_map___concat_map_0.0.1.tgz";
       path = fetchurl {
         name = "concat_map___concat_map_0.0.1.tgz";
@@ -826,11 +842,11 @@
       };
     }
     {
-      name = "concat_stream___concat_stream_1.6.2.tgz";
+      name = "console_control_strings___console_control_strings_1.1.0.tgz";
       path = fetchurl {
-        name = "concat_stream___concat_stream_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+        name = "console_control_strings___console_control_strings_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
       };
     }
     {
@@ -882,27 +898,11 @@
       };
     }
     {
-      name = "cross_spawn___cross_spawn_5.1.0.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
-        sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
-      };
-    }
-    {
-      name = "cross_spawn___cross_spawn_6.0.5.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
-      };
-    }
-    {
-      name = "cross_spawn___cross_spawn_7.0.1.tgz";
+      name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
       path = fetchurl {
-        name = "cross_spawn___cross_spawn_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz";
-        sha1 = "0ab56286e0f7c24e153d04cc2aa027e43a9a5d14";
+        name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+        sha1 = "ef9b44d773959cae63ddecd122de23853b60f8d3";
       };
     }
     {
@@ -914,14 +914,6 @@
       };
     }
     {
-      name = "dashdash___dashdash_1.14.1.tgz";
-      path = fetchurl {
-        name = "dashdash___dashdash_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    }
-    {
       name = "date_fns___date_fns_1.30.1.tgz";
       path = fetchurl {
         name = "date_fns___date_fns_1.30.1.tgz";
@@ -938,14 +930,6 @@
       };
     }
     {
-      name = "debug___debug_3.2.6.tgz";
-      path = fetchurl {
-        name = "debug___debug_3.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
-        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
-      };
-    }
-    {
       name = "debug___debug_4.3.1.tgz";
       path = fetchurl {
         name = "debug___debug_4.3.1.tgz";
@@ -954,11 +938,11 @@
       };
     }
     {
-      name = "debug___debug_4.1.1.tgz";
+      name = "decompress_response___decompress_response_4.2.1.tgz";
       path = fetchurl {
-        name = "debug___debug_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
-        sha1 = "3b72260255109c6b589cee050f1d516139664791";
+        name = "decompress_response___decompress_response_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz";
+        sha1 = "414023cc7a302da25ce2ec82d0d5238ccafd8986";
       };
     }
     {
@@ -970,6 +954,14 @@
       };
     }
     {
+      name = "deep_extend___deep_extend_0.6.0.tgz";
+      path = fetchurl {
+        name = "deep_extend___deep_extend_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+      };
+    }
+    {
       name = "deep_is___deep_is_0.1.3.tgz";
       path = fetchurl {
         name = "deep_is___deep_is_0.1.3.tgz";
@@ -986,11 +978,11 @@
       };
     }
     {
-      name = "delayed_stream___delayed_stream_1.0.0.tgz";
+      name = "delegates___delegates_1.0.0.tgz";
       path = fetchurl {
-        name = "delayed_stream___delayed_stream_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
-        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+        name = "delegates___delegates_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
       };
     }
     {
@@ -1002,6 +994,14 @@
       };
     }
     {
+      name = "depd___depd_2.0.0.tgz";
+      path = fetchurl {
+        name = "depd___depd_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz";
+        sha1 = "b696163cc757560d09cf22cc8fad1571b79e76df";
+      };
+    }
+    {
       name = "destroy___destroy_1.0.4.tgz";
       path = fetchurl {
         name = "destroy___destroy_1.0.4.tgz";
@@ -1010,11 +1010,11 @@
       };
     }
     {
-      name = "diagnostics___diagnostics_1.1.1.tgz";
+      name = "detect_libc___detect_libc_1.0.3.tgz";
       path = fetchurl {
-        name = "diagnostics___diagnostics_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz";
-        sha1 = "cab6ac33df70c9d9a727490ae43ac995a769b22a";
+        name = "detect_libc___detect_libc_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
       };
     }
     {
@@ -1034,19 +1034,11 @@
       };
     }
     {
-      name = "duplexer___duplexer_0.1.1.tgz";
-      path = fetchurl {
-        name = "duplexer___duplexer_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
-      };
-    }
-    {
-      name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+      name = "duplexer___duplexer_0.1.2.tgz";
       path = fetchurl {
-        name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+        name = "duplexer___duplexer_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz";
+        sha1 = "3abe43aef3835f8ae077d136ddce0f276b0400e6";
       };
     }
     {
@@ -1074,11 +1066,11 @@
       };
     }
     {
-      name = "enabled___enabled_1.0.2.tgz";
+      name = "enabled___enabled_2.0.0.tgz";
       path = fetchurl {
-        name = "enabled___enabled_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz";
-        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+        name = "enabled___enabled_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz";
+        sha1 = "f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2";
       };
     }
     {
@@ -1106,14 +1098,6 @@
       };
     }
     {
-      name = "env_variable___env_variable_0.0.5.tgz";
-      path = fetchurl {
-        name = "env_variable___env_variable_0.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz";
-        sha1 = "913dd830bef11e96a039c038d4130604eba37f88";
-      };
-    }
-    {
       name = "error_ex___error_ex_1.3.2.tgz";
       path = fetchurl {
         name = "error_ex___error_ex_1.3.2.tgz";
@@ -1122,19 +1106,11 @@
       };
     }
     {
-      name = "es6_promise___es6_promise_4.2.8.tgz";
+      name = "escalade___escalade_3.1.1.tgz";
       path = fetchurl {
-        name = "es6_promise___es6_promise_4.2.8.tgz";
-        url  = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
-        sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
-      };
-    }
-    {
-      name = "es6_promisify___es6_promisify_5.0.0.tgz";
-      path = fetchurl {
-        name = "es6_promisify___es6_promisify_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
-        sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+        name = "escalade___escalade_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
+        sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
       };
     }
     {
@@ -1154,11 +1130,11 @@
       };
     }
     {
-      name = "escodegen___escodegen_1.14.1.tgz";
+      name = "escodegen___escodegen_2.0.0.tgz";
       path = fetchurl {
-        name = "escodegen___escodegen_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz";
-        sha1 = "ba01d0c8278b5e95a9a45350142026659027a457";
+        name = "escodegen___escodegen_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz";
+        sha1 = "5e32b12833e8aa8fa35e1bf0befa89380484c7dd";
       };
     }
     {
@@ -1186,19 +1162,19 @@
       };
     }
     {
-      name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
       path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
-        sha1 = "21fdc8fbcd9c795cc0321f0563702095751511a8";
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303";
       };
     }
     {
-      name = "eslint___eslint_7.18.0.tgz";
+      name = "eslint___eslint_7.25.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz";
-        sha1 = "7fdcd2f3715a41fe6295a16234bd69aed2c75e67";
+        name = "eslint___eslint_7.25.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz";
+        sha1 = "1309e4404d94e676e3e831b3a3ad2b050031eb67";
       };
     }
     {
@@ -1218,11 +1194,11 @@
       };
     }
     {
-      name = "esquery___esquery_1.3.1.tgz";
+      name = "esquery___esquery_1.4.0.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
-        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
       };
     }
     {
@@ -1274,14 +1250,6 @@
       };
     }
     {
-      name = "execa___execa_1.0.0.tgz";
-      path = fetchurl {
-        name = "execa___execa_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
-        sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
-      };
-    }
-    {
       name = "execa___execa_2.1.0.tgz";
       path = fetchurl {
         name = "execa___execa_2.1.0.tgz";
@@ -1314,35 +1282,11 @@
       };
     }
     {
-      name = "extend___extend_3.0.2.tgz";
-      path = fetchurl {
-        name = "extend___extend_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
-        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
-      };
-    }
-    {
-      name = "extract_zip___extract_zip_1.6.7.tgz";
-      path = fetchurl {
-        name = "extract_zip___extract_zip_1.6.7.tgz";
-        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz";
-        sha1 = "a840b4b8af6403264c8db57f4f1a74333ef81fe9";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.3.0.tgz";
+      name = "extract_zip___extract_zip_2.0.1.tgz";
       path = fetchurl {
-        name = "extsprintf___extsprintf_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.4.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+        name = "extract_zip___extract_zip_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz";
+        sha1 = "663dca56fe46df890d5f131ef4a06d22bb8ba13a";
       };
     }
     {
@@ -1354,19 +1298,11 @@
       };
     }
     {
-      name = "fast_glob___fast_glob_3.1.1.tgz";
-      path = fetchurl {
-        name = "fast_glob___fast_glob_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz";
-        sha1 = "87ee30e9e9f3eb40d6f254a7997655da753d7c82";
-      };
-    }
-    {
-      name = "fast_glob___fast_glob_3.2.2.tgz";
+      name = "fast_glob___fast_glob_3.2.5.tgz";
       path = fetchurl {
-        name = "fast_glob___fast_glob_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz";
-        sha1 = "ade1a9d91148965d4bf7c51f72e1ca662d32e63d";
+        name = "fast_glob___fast_glob_3.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha1 = "7939af2a656de79a4f1901903ee8adcaa7cb9661";
       };
     }
     {
@@ -1394,27 +1330,27 @@
       };
     }
     {
-      name = "fastq___fastq_1.6.0.tgz";
+      name = "fastq___fastq_1.11.0.tgz";
       path = fetchurl {
-        name = "fastq___fastq_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz";
-        sha1 = "4ec8a38f4ac25f21492673adb7eae9cfef47d1c2";
+        name = "fastq___fastq_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz";
+        sha1 = "bb9fb955a07130a918eb63c1f5161cc32a5d0858";
       };
     }
     {
-      name = "fd_slicer___fd_slicer_1.0.1.tgz";
+      name = "fd_slicer___fd_slicer_1.1.0.tgz";
       path = fetchurl {
-        name = "fd_slicer___fd_slicer_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz";
-        sha1 = "8b5bcbd9ec327c5041bf9ab023fd6750f1177e65";
+        name = "fd_slicer___fd_slicer_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz";
+        sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     }
     {
-      name = "fecha___fecha_2.3.3.tgz";
+      name = "fecha___fecha_4.2.1.tgz";
       path = fetchurl {
-        name = "fecha___fecha_2.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz";
-        sha1 = "948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd";
+        name = "fecha___fecha_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz";
+        sha1 = "0a83ad8f86ef62a091e22bb5a039cd03d23eecce";
       };
     }
     {
@@ -1434,11 +1370,11 @@
       };
     }
     {
-      name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
+      name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
       path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
-        sha1 = "7921a89c391c6d93efec2169ac6bf300c527ea0a";
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
       };
     }
     {
@@ -1458,11 +1394,19 @@
       };
     }
     {
-      name = "find_up___find_up_4.1.0.tgz";
+      name = "find_up___find_up_5.0.0.tgz";
       path = fetchurl {
-        name = "find_up___find_up_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
-        sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
+        name = "find_up___find_up_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz";
+        sha1 = "4c92819ecb7083561e4f4a240a86be5198f536fc";
+      };
+    }
+    {
+      name = "find_versions___find_versions_4.0.0.tgz";
+      path = fetchurl {
+        name = "find_versions___find_versions_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz";
+        sha1 = "3c57e573bf97769b8cb8df16934b627915da4965";
       };
     }
     {
@@ -1474,27 +1418,27 @@
       };
     }
     {
-      name = "flatted___flatted_3.1.0.tgz";
+      name = "flatted___flatted_3.1.1.tgz";
       path = fetchurl {
-        name = "flatted___flatted_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz";
-        sha1 = "a5d06b4a8b01e3a63771daa5cb7a1903e2e57067";
+        name = "flatted___flatted_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
+        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
       };
     }
     {
-      name = "forever_agent___forever_agent_0.6.1.tgz";
+      name = "fn.name___fn.name_1.1.0.tgz";
       path = fetchurl {
-        name = "forever_agent___forever_agent_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+        name = "fn.name___fn.name_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz";
+        sha1 = "26cad8017967aea8731bc42961d04a3d5988accc";
       };
     }
     {
-      name = "form_data___form_data_2.3.3.tgz";
+      name = "follow_redirects___follow_redirects_1.14.0.tgz";
       path = fetchurl {
-        name = "form_data___form_data_2.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
-        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+        name = "follow_redirects___follow_redirects_1.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz";
+        sha1 = "f5d260f95c5f8c105894491feee5dc8993b402fe";
       };
     }
     {
@@ -1530,11 +1474,19 @@
       };
     }
     {
-      name = "fs_extra___fs_extra_8.1.0.tgz";
+      name = "fs_constants___fs_constants_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs_constants___fs_constants_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
+      };
+    }
+    {
+      name = "fs_extra___fs_extra_9.1.0.tgz";
       path = fetchurl {
-        name = "fs_extra___fs_extra_8.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz";
-        sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
+        name = "fs_extra___fs_extra_9.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz";
+        sha1 = "5954460c764a8da2094ba3554bf839e6b9a7c86d";
       };
     }
     {
@@ -1546,67 +1498,75 @@
       };
     }
     {
-      name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+      name = "fsevents___fsevents_2.3.2.tgz";
       path = fetchurl {
-        name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
-        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+        name = "fsevents___fsevents_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
+        sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
       };
     }
     {
-      name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
+      name = "function_bind___function_bind_1.1.1.tgz";
       path = fetchurl {
-        name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
-        sha1 = "b5fde77f22cbe35f390b4e089922c50bce6ef664";
+        name = "function_bind___function_bind_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+      };
+    }
+    {
+      name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+      path = fetchurl {
+        name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
       };
     }
     {
-      name = "get_stdin___get_stdin_7.0.0.tgz";
+      name = "gauge___gauge_2.7.4.tgz";
       path = fetchurl {
-        name = "get_stdin___get_stdin_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz";
-        sha1 = "8d5de98f15171a125c5e516643c7a6d0ea8a96f6";
+        name = "gauge___gauge_2.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     }
     {
-      name = "get_stream___get_stream_4.1.0.tgz";
+      name = "get_caller_file___get_caller_file_2.0.5.tgz";
       path = fetchurl {
-        name = "get_stream___get_stream_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
-        sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+        name = "get_caller_file___get_caller_file_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
       };
     }
     {
-      name = "get_stream___get_stream_5.1.0.tgz";
+      name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
       path = fetchurl {
-        name = "get_stream___get_stream_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz";
-        sha1 = "01203cdc92597f9b909067c3e656cc1f4d3c4dc9";
+        name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
+        sha1 = "b5fde77f22cbe35f390b4e089922c50bce6ef664";
       };
     }
     {
-      name = "getpass___getpass_0.1.7.tgz";
+      name = "get_stream___get_stream_5.2.0.tgz";
       path = fetchurl {
-        name = "getpass___getpass_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+        name = "get_stream___get_stream_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz";
+        sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3";
       };
     }
     {
-      name = "glob_parent___glob_parent_5.1.1.tgz";
+      name = "github_from_package___github_from_package_0.0.0.tgz";
       path = fetchurl {
-        name = "glob_parent___glob_parent_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+        name = "github_from_package___github_from_package_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz";
+        sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
       };
     }
     {
-      name = "glob_parent___glob_parent_5.1.0.tgz";
+      name = "glob_parent___glob_parent_5.1.2.tgz";
       path = fetchurl {
-        name = "glob_parent___glob_parent_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz";
-        sha1 = "5f4c1d1e748d30cd73ad2944b3577a81b081e8c2";
+        name = "glob_parent___glob_parent_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
       };
     }
     {
@@ -1626,6 +1586,14 @@
       };
     }
     {
+      name = "globals___globals_13.8.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_13.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz";
+        sha1 = "3e20f504810ce87a8d72e55aecf8435b50f4c1b3";
+      };
+    }
+    {
       name = "globby___globby_10.0.2.tgz";
       path = fetchurl {
         name = "globby___globby_10.0.2.tgz";
@@ -1634,11 +1602,11 @@
       };
     }
     {
-      name = "globby___globby_11.0.0.tgz";
+      name = "globby___globby_11.0.3.tgz";
       path = fetchurl {
-        name = "globby___globby_11.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz";
-        sha1 = "56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154";
+        name = "globby___globby_11.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz";
+        sha1 = "9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb";
       };
     }
     {
@@ -1650,35 +1618,11 @@
       };
     }
     {
-      name = "graceful_fs___graceful_fs_4.2.3.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
-      };
-    }
-    {
-      name = "graceful_fs___graceful_fs_4.2.4.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
-      };
-    }
-    {
-      name = "har_schema___har_schema_2.0.0.tgz";
+      name = "graceful_fs___graceful_fs_4.2.6.tgz";
       path = fetchurl {
-        name = "har_schema___har_schema_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
-      };
-    }
-    {
-      name = "har_validator___har_validator_5.1.3.tgz";
-      path = fetchurl {
-        name = "har_validator___har_validator_5.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
-        sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+        name = "graceful_fs___graceful_fs_4.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
       };
     }
     {
@@ -1706,11 +1650,19 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_2.8.5.tgz";
+      name = "has_unicode___has_unicode_2.0.1.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz";
-        sha1 = "759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c";
+        name = "has_unicode___has_unicode_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+      };
+    }
+    {
+      name = "has___has_1.0.3.tgz";
+      path = fetchurl {
+        name = "has___has_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
       };
     }
     {
@@ -1730,27 +1682,19 @@
       };
     }
     {
-      name = "http_signature___http_signature_1.2.0.tgz";
+      name = "https_proxy_agent___https_proxy_agent_4.0.0.tgz";
       path = fetchurl {
-        name = "http_signature___http_signature_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+        name = "https_proxy_agent___https_proxy_agent_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz";
+        sha1 = "702b71fb5520a132a66de1f67541d9e62154d82b";
       };
     }
     {
-      name = "https_proxy_agent___https_proxy_agent_3.0.1.tgz";
+      name = "husky___husky_4.3.8.tgz";
       path = fetchurl {
-        name = "https_proxy_agent___https_proxy_agent_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz";
-        sha1 = "b8c286433e87602311b01c8ea34413d856a4af81";
-      };
-    }
-    {
-      name = "husky___husky_3.1.0.tgz";
-      path = fetchurl {
-        name = "husky___husky_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz";
-        sha1 = "5faad520ab860582ed94f0c1a77f0f04c90b57c0";
+        name = "husky___husky_4.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz";
+        sha1 = "31144060be963fd6850e5cc8f019a1dfe194296d";
       };
     }
     {
@@ -1762,6 +1706,14 @@
       };
     }
     {
+      name = "ieee754___ieee754_1.2.1.tgz";
+      path = fetchurl {
+        name = "ieee754___ieee754_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
+        sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
+      };
+    }
+    {
       name = "ignore___ignore_4.0.6.tgz";
       path = fetchurl {
         name = "ignore___ignore_4.0.6.tgz";
@@ -1770,11 +1722,11 @@
       };
     }
     {
-      name = "ignore___ignore_5.1.4.tgz";
+      name = "ignore___ignore_5.1.8.tgz";
       path = fetchurl {
-        name = "ignore___ignore_5.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz";
-        sha1 = "84b7b3dbe64552b6ef0eca99f6743dbec6d97adf";
+        name = "ignore___ignore_5.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz";
+        sha1 = "f150a8b50a34289b33e22f5889abd4d8016f0e57";
       };
     }
     {
@@ -1842,19 +1794,27 @@
       };
     }
     {
-      name = "into_stream___into_stream_5.1.1.tgz";
+      name = "ini___ini_1.3.8.tgz";
       path = fetchurl {
-        name = "into_stream___into_stream_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/into-stream/-/into-stream-5.1.1.tgz";
-        sha1 = "f9a20a348a11f3c13face22763f2d02e127f4db8";
+        name = "ini___ini_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
+        sha1 = "a29da425b48806f34767a4efce397269af28432c";
       };
     }
     {
-      name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
+      name = "into_stream___into_stream_6.0.0.tgz";
       path = fetchurl {
-        name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz";
-        sha1 = "37df74e430a0e47550fe54a2defe30d8acd95f65";
+        name = "into_stream___into_stream_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz";
+        sha1 = "4bfc1244c0128224e18b8870e85b2de8e66c6702";
+      };
+    }
+    {
+      name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
+      path = fetchurl {
+        name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
       };
     }
     {
@@ -1874,6 +1834,22 @@
       };
     }
     {
+      name = "is_binary_path___is_binary_path_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_binary_path___is_binary_path_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
+      };
+    }
+    {
+      name = "is_core_module___is_core_module_2.3.0.tgz";
+      path = fetchurl {
+        name = "is_core_module___is_core_module_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz";
+        sha1 = "d341652e3408bca69c4671b79a0954a3d349f887";
+      };
+    }
+    {
       name = "is_directory___is_directory_0.3.1.tgz";
       path = fetchurl {
         name = "is_directory___is_directory_0.3.1.tgz";
@@ -1954,19 +1930,19 @@
       };
     }
     {
-      name = "is_path_inside___is_path_inside_3.0.2.tgz";
+      name = "is_path_inside___is_path_inside_3.0.3.tgz";
       path = fetchurl {
-        name = "is_path_inside___is_path_inside_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz";
-        sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
+        name = "is_path_inside___is_path_inside_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz";
+        sha1 = "d231362e53a07ff2b0e0ea7fed049161ffd16283";
       };
     }
     {
-      name = "is_promise___is_promise_2.1.0.tgz";
+      name = "is_promise___is_promise_2.2.2.tgz";
       path = fetchurl {
-        name = "is_promise___is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+        name = "is_promise___is_promise_2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz";
+        sha1 = "39ab959ccbf9a774cf079f7b40c7a26f763135f1";
       };
     }
     {
@@ -1994,14 +1970,6 @@
       };
     }
     {
-      name = "is_typedarray___is_typedarray_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_typedarray___is_typedarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
-      };
-    }
-    {
       name = "isarray___isarray_1.0.0.tgz";
       path = fetchurl {
         name = "isarray___isarray_1.0.0.tgz";
@@ -2018,14 +1986,6 @@
       };
     }
     {
-      name = "isstream___isstream_0.1.2.tgz";
-      path = fetchurl {
-        name = "isstream___isstream_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-      };
-    }
-    {
       name = "js_tokens___js_tokens_4.0.0.tgz";
       path = fetchurl {
         name = "js_tokens___js_tokens_4.0.0.tgz";
@@ -2042,14 +2002,6 @@
       };
     }
     {
-      name = "jsbn___jsbn_0.1.1.tgz";
-      path = fetchurl {
-        name = "jsbn___jsbn_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
-      };
-    }
-    {
       name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
       path = fetchurl {
         name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
@@ -2058,6 +2010,14 @@
       };
     }
     {
+      name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+      path = fetchurl {
+        name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+        sha1 = "7c47805a94319928e05777405dc12e1f7a4ee02d";
+      };
+    }
+    {
       name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
       path = fetchurl {
         name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
@@ -2074,14 +2034,6 @@
       };
     }
     {
-      name = "json_schema___json_schema_0.2.3.tgz";
-      path = fetchurl {
-        name = "json_schema___json_schema_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
-      };
-    }
-    {
       name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
       path = fetchurl {
         name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
@@ -2090,35 +2042,19 @@
       };
     }
     {
-      name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+      name = "jsonfile___jsonfile_6.1.0.tgz";
       path = fetchurl {
-        name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+        name = "jsonfile___jsonfile_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz";
+        sha1 = "bc55b2634793c679ec6403094eb13698a6ec0aae";
       };
     }
     {
-      name = "jsonfile___jsonfile_4.0.0.tgz";
+      name = "kuler___kuler_2.0.0.tgz";
       path = fetchurl {
-        name = "jsonfile___jsonfile_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
-      };
-    }
-    {
-      name = "jsprim___jsprim_1.4.1.tgz";
-      path = fetchurl {
-        name = "jsprim___jsprim_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
-      };
-    }
-    {
-      name = "kuler___kuler_1.0.1.tgz";
-      path = fetchurl {
-        name = "kuler___kuler_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz";
-        sha1 = "ef7c784f36c9fb6e16dd3150d152677b2b0228a6";
+        name = "kuler___kuler_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz";
+        sha1 = "e2c570a3800388fb44407e851531c1d670b061b3";
       };
     }
     {
@@ -2186,11 +2122,11 @@
       };
     }
     {
-      name = "locate_path___locate_path_5.0.0.tgz";
+      name = "locate_path___locate_path_6.0.0.tgz";
       path = fetchurl {
-        name = "locate_path___locate_path_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
-        sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
+        name = "locate_path___locate_path_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz";
+        sha1 = "55321eb309febbc59c4801d931a72452a681d286";
       };
     }
     {
@@ -2202,19 +2138,35 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.20.tgz";
+      name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    }
+    {
+      name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+      };
+    }
+    {
+      name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.20.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
-        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+        name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
       };
     }
     {
-      name = "lodash___lodash_4.17.19.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.19.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
-        sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
       };
     }
     {
@@ -2242,11 +2194,11 @@
       };
     }
     {
-      name = "logform___logform_2.1.2.tgz";
+      name = "logform___logform_2.2.0.tgz";
       path = fetchurl {
-        name = "logform___logform_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/logform/-/logform-2.1.2.tgz";
-        sha1 = "957155ebeb67a13164069825ce67ddb5bb2dd360";
+        name = "logform___logform_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz";
+        sha1 = "40f036d19161fc76b68ab50fdc7fe495544492f2";
       };
     }
     {
@@ -2258,14 +2210,6 @@
       };
     }
     {
-      name = "lru_cache___lru_cache_4.1.5.tgz";
-      path = fetchurl {
-        name = "lru_cache___lru_cache_4.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
-        sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
-      };
-    }
-    {
       name = "lru_cache___lru_cache_6.0.0.tgz";
       path = fetchurl {
         name = "lru_cache___lru_cache_6.0.0.tgz";
@@ -2306,11 +2250,11 @@
       };
     }
     {
-      name = "merge2___merge2_1.3.0.tgz";
+      name = "merge2___merge2_1.4.1.tgz";
       path = fetchurl {
-        name = "merge2___merge2_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz";
-        sha1 = "5b366ee83b2f1582c48f87e47cf1a9352103ca81";
+        name = "merge2___merge2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
+        sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
       };
     }
     {
@@ -2322,27 +2266,27 @@
       };
     }
     {
-      name = "micromatch___micromatch_4.0.2.tgz";
+      name = "micromatch___micromatch_4.0.4.tgz";
       path = fetchurl {
-        name = "micromatch___micromatch_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
-        sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+        name = "micromatch___micromatch_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz";
+        sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9";
       };
     }
     {
-      name = "mime_db___mime_db_1.43.0.tgz";
+      name = "mime_db___mime_db_1.47.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.43.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz";
-        sha1 = "0a12e0502650e473d735535050e7c8f4eb4fae58";
+        name = "mime_db___mime_db_1.47.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz";
+        sha1 = "8cb313e59965d3c05cfbf898915a267af46a335c";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.26.tgz";
+      name = "mime_types___mime_types_2.1.30.tgz";
       path = fetchurl {
-        name = "mime_types___mime_types_2.1.26.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz";
-        sha1 = "9c921fc09b7e149a65dfdc0da4d20997200b0a06";
+        name = "mime_types___mime_types_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz";
+        sha1 = "6e7be8b4c479825f85ed6326695db73f9305d62d";
       };
     }
     {
@@ -2354,11 +2298,11 @@
       };
     }
     {
-      name = "mime___mime_2.4.4.tgz";
+      name = "mime___mime_2.5.2.tgz";
       path = fetchurl {
-        name = "mime___mime_2.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
-        sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
+        name = "mime___mime_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz";
+        sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe";
       };
     }
     {
@@ -2378,19 +2322,19 @@
       };
     }
     {
-      name = "minimatch___minimatch_3.0.4.tgz";
+      name = "mimic_response___mimic_response_2.1.0.tgz";
       path = fetchurl {
-        name = "minimatch___minimatch_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
-        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+        name = "mimic_response___mimic_response_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz";
+        sha1 = "d13763d35f613d09ec37ebb30bac0469c0ee8f43";
       };
     }
     {
-      name = "minimist___minimist_0.0.8.tgz";
+      name = "minimatch___minimatch_3.0.4.tgz";
       path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+        name = "minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
       };
     }
     {
@@ -2402,27 +2346,19 @@
       };
     }
     {
-      name = "mkdirp___mkdirp_0.5.1.tgz";
+      name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
       path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+        name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha1 = "fa10c9115cc6d8865be221ba47ee9bed78601113";
       };
     }
     {
-      name = "mkdirp___mkdirp_0.5.5.tgz";
+      name = "morgan___morgan_1.10.0.tgz";
       path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
-      };
-    }
-    {
-      name = "morgan___morgan_1.9.1.tgz";
-      path = fetchurl {
-        name = "morgan___morgan_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz";
-        sha1 = "0a8d16734a1d9afbc824b99df87e738e58e2da59";
+        name = "morgan___morgan_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz";
+        sha1 = "091778abc1fc47cd3509824653dae1faab6b17d7";
       };
     }
     {
@@ -2458,19 +2394,19 @@
       };
     }
     {
-      name = "multistream___multistream_2.1.1.tgz";
+      name = "multistream___multistream_4.1.0.tgz";
       path = fetchurl {
-        name = "multistream___multistream_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz";
-        sha1 = "629d3a29bd76623489980d04519a2c365948148c";
+        name = "multistream___multistream_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz";
+        sha1 = "7bf00dfd119556fbc153cff3de4c6d477909f5a8";
       };
     }
     {
-      name = "mz___mz_2.7.0.tgz";
+      name = "napi_build_utils___napi_build_utils_1.0.2.tgz";
       path = fetchurl {
-        name = "mz___mz_2.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz";
-        sha1 = "95008057a56cafadc2bc63dde7f9ff6955948e32";
+        name = "napi_build_utils___napi_build_utils_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
+        sha1 = "b1fddc0b2c46e380a0b7a76f984dd47c41a13806";
       };
     }
     {
@@ -2490,11 +2426,11 @@
       };
     }
     {
-      name = "nice_try___nice_try_1.0.5.tgz";
+      name = "node_abi___node_abi_2.26.0.tgz";
       path = fetchurl {
-        name = "nice_try___nice_try_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
-        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+        name = "node_abi___node_abi_2.26.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-abi/-/node-abi-2.26.0.tgz";
+        sha1 = "355d5d4bc603e856f74197adbf3f5117a396ba40";
       };
     }
     {
@@ -2506,11 +2442,11 @@
       };
     }
     {
-      name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+      name = "noop_logger___noop_logger_0.1.1.tgz";
       path = fetchurl {
-        name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
-        sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
+        name = "noop_logger___noop_logger_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz";
+        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
       };
     }
     {
@@ -2522,14 +2458,6 @@
       };
     }
     {
-      name = "npm_run_path___npm_run_path_2.0.2.tgz";
-      path = fetchurl {
-        name = "npm_run_path___npm_run_path_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
-        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
-      };
-    }
-    {
       name = "npm_run_path___npm_run_path_3.1.0.tgz";
       path = fetchurl {
         name = "npm_run_path___npm_run_path_3.1.0.tgz";
@@ -2538,19 +2466,19 @@
       };
     }
     {
-      name = "number_is_nan___number_is_nan_1.0.1.tgz";
+      name = "npmlog___npmlog_4.1.2.tgz";
       path = fetchurl {
-        name = "number_is_nan___number_is_nan_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+        name = "npmlog___npmlog_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+        sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
       };
     }
     {
-      name = "oauth_sign___oauth_sign_0.9.0.tgz";
+      name = "number_is_nan___number_is_nan_1.0.1.tgz";
       path = fetchurl {
-        name = "oauth_sign___oauth_sign_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+        name = "number_is_nan___number_is_nan_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
       };
     }
     {
@@ -2586,11 +2514,11 @@
       };
     }
     {
-      name = "one_time___one_time_0.0.4.tgz";
+      name = "one_time___one_time_1.0.0.tgz";
       path = fetchurl {
-        name = "one_time___one_time_0.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz";
-        sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
+        name = "one_time___one_time_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz";
+        sha1 = "e06bc174aed214ed58edede573b433bbf827cb45";
       };
     }
     {
@@ -2602,19 +2530,19 @@
       };
     }
     {
-      name = "onetime___onetime_5.1.0.tgz";
+      name = "onetime___onetime_5.1.2.tgz";
       path = fetchurl {
-        name = "onetime___onetime_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
-        sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
+        name = "onetime___onetime_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz";
+        sha1 = "d0e96ebb56b07476df1dd9c4806e5237985ca45e";
       };
     }
     {
-      name = "opencollective_postinstall___opencollective_postinstall_2.0.2.tgz";
+      name = "opencollective_postinstall___opencollective_postinstall_2.0.3.tgz";
       path = fetchurl {
-        name = "opencollective_postinstall___opencollective_postinstall_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz";
-        sha1 = "5657f1bede69b6e33a45939b061eb53d3c6c3a89";
+        name = "opencollective_postinstall___opencollective_postinstall_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz";
+        sha1 = "7a0fff978f6dbfa4d006238fbac98ed4198c3259";
       };
     }
     {
@@ -2634,22 +2562,6 @@
       };
     }
     {
-      name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
-      path = fetchurl {
-        name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
-      };
-    }
-    {
-      name = "p_finally___p_finally_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_finally___p_finally_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
-        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
-      };
-    }
-    {
       name = "p_finally___p_finally_2.0.1.tgz";
       path = fetchurl {
         name = "p_finally___p_finally_2.0.1.tgz";
@@ -2666,19 +2578,19 @@
       };
     }
     {
-      name = "p_limit___p_limit_2.2.2.tgz";
+      name = "p_limit___p_limit_3.1.0.tgz";
       path = fetchurl {
-        name = "p_limit___p_limit_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz";
-        sha1 = "61279b67721f5287aa1c13a9a7fbbc48c9291b1e";
+        name = "p_limit___p_limit_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz";
+        sha1 = "e1daccbe78d0d1388ca18c64fea38e3e57e3706b";
       };
     }
     {
-      name = "p_locate___p_locate_4.1.0.tgz";
+      name = "p_locate___p_locate_5.0.0.tgz";
       path = fetchurl {
-        name = "p_locate___p_locate_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
-        sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
+        name = "p_locate___p_locate_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz";
+        sha1 = "83c8315c6785005e3bd021839411c9e110e6d834";
       };
     }
     {
@@ -2698,14 +2610,6 @@
       };
     }
     {
-      name = "p_try___p_try_2.2.0.tgz";
-      path = fetchurl {
-        name = "p_try___p_try_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
-        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
-      };
-    }
-    {
       name = "parent_module___parent_module_1.0.1.tgz";
       path = fetchurl {
         name = "parent_module___parent_module_1.0.1.tgz";
@@ -2722,11 +2626,11 @@
       };
     }
     {
-      name = "parse_json___parse_json_5.0.0.tgz";
+      name = "parse_json___parse_json_5.2.0.tgz";
       path = fetchurl {
-        name = "parse_json___parse_json_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz";
-        sha1 = "73e5114c986d143efa3712d4ea24db9a4266f60f";
+        name = "parse_json___parse_json_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz";
+        sha1 = "c76fc66dee54231c962b22bcc8a72cf2f99753cd";
       };
     }
     {
@@ -2754,14 +2658,6 @@
       };
     }
     {
-      name = "path_key___path_key_2.0.1.tgz";
-      path = fetchurl {
-        name = "path_key___path_key_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
-        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
-      };
-    }
-    {
       name = "path_key___path_key_3.1.1.tgz";
       path = fetchurl {
         name = "path_key___path_key_3.1.1.tgz";
@@ -2770,11 +2666,11 @@
       };
     }
     {
-      name = "path_parse___path_parse_1.0.6.tgz";
+      name = "path_parse___path_parse_1.0.7.tgz";
       path = fetchurl {
-        name = "path_parse___path_parse_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
-        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+        name = "path_parse___path_parse_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz";
+        sha1 = "fbc114b60ca42b30d9daf5858e4bd68bbedb6735";
       };
     }
     {
@@ -2810,51 +2706,35 @@
       };
     }
     {
-      name = "performance_now___performance_now_2.1.0.tgz";
-      path = fetchurl {
-        name = "performance_now___performance_now_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
-      };
-    }
-    {
-      name = "picomatch___picomatch_2.2.1.tgz";
+      name = "picomatch___picomatch_2.2.3.tgz";
       path = fetchurl {
-        name = "picomatch___picomatch_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz";
-        sha1 = "21bac888b6ed8601f831ce7816e335bc779f0a4a";
+        name = "picomatch___picomatch_2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz";
+        sha1 = "465547f359ccc206d3c48e46a1bcb89bf7ee619d";
       };
     }
     {
-      name = "picomatch___picomatch_2.2.2.tgz";
+      name = "pkg_dir___pkg_dir_5.0.0.tgz";
       path = fetchurl {
-        name = "picomatch___picomatch_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
-        sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
+        name = "pkg_dir___pkg_dir_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz";
+        sha1 = "a02d6aebe6ba133a928f74aec20bafdfe6b8e760";
       };
     }
     {
-      name = "pkg_dir___pkg_dir_4.2.0.tgz";
+      name = "pkg_fetch___pkg_fetch_3.0.4.tgz";
       path = fetchurl {
-        name = "pkg_dir___pkg_dir_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
-        sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
+        name = "pkg_fetch___pkg_fetch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.0.4.tgz";
+        sha1 = "8321eff936bf4eb088a333cf23494be0ded173b7";
       };
     }
     {
-      name = "pkg_fetch___pkg_fetch_2.6.8.tgz";
+      name = "pkg___pkg_5.1.0.tgz";
       path = fetchurl {
-        name = "pkg_fetch___pkg_fetch_2.6.8.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-2.6.8.tgz";
-        sha1 = "458ba6b9c936de1b0f3f9c830f389888561e630f";
-      };
-    }
-    {
-      name = "pkg___pkg_4.4.8.tgz";
-      path = fetchurl {
-        name = "pkg___pkg_4.4.8.tgz";
-        url  = "https://registry.yarnpkg.com/pkg/-/pkg-4.4.8.tgz";
-        sha1 = "145fb81f31eebfb90d2010dd2c4b663ca0db4009";
+        name = "pkg___pkg_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg/-/pkg-5.1.0.tgz";
+        sha1 = "25f92666a4164bbc5495c862de9370ed48788667";
       };
     }
     {
@@ -2866,6 +2746,14 @@
       };
     }
     {
+      name = "prebuild_install___prebuild_install_6.0.1.tgz";
+      path = fetchurl {
+        name = "prebuild_install___prebuild_install_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz";
+        sha1 = "5902172f7a40eb67305b96c2a695db32636ee26d";
+      };
+    }
+    {
       name = "prelude_ls___prelude_ls_1.2.1.tgz";
       path = fetchurl {
         name = "prelude_ls___prelude_ls_1.2.1.tgz";
@@ -2914,27 +2802,27 @@
       };
     }
     {
-      name = "protobufjs___protobufjs_6.8.8.tgz";
+      name = "protobufjs___protobufjs_6.11.2.tgz";
       path = fetchurl {
-        name = "protobufjs___protobufjs_6.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz";
-        sha1 = "c8b4f1282fd7a90e6f5b109ed11c84af82908e7c";
+        name = "protobufjs___protobufjs_6.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz";
+        sha1 = "de39fabd4ed32beaa08e9bb1e30d08544c1edf8b";
       };
     }
     {
-      name = "proxy_addr___proxy_addr_2.0.5.tgz";
+      name = "proxy_addr___proxy_addr_2.0.6.tgz";
       path = fetchurl {
-        name = "proxy_addr___proxy_addr_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz";
-        sha1 = "34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34";
+        name = "proxy_addr___proxy_addr_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz";
+        sha1 = "fdc2336505447d3f2f2c638ed272caf614bbb2bf";
       };
     }
     {
-      name = "proxy_from_env___proxy_from_env_1.0.0.tgz";
+      name = "proxy_from_env___proxy_from_env_1.1.0.tgz";
       path = fetchurl {
-        name = "proxy_from_env___proxy_from_env_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz";
-        sha1 = "33c50398f70ea7eb96d21f7b817630a55791c7ee";
+        name = "proxy_from_env___proxy_from_env_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz";
+        sha1 = "e102f16ca355424865755d2c9e8ea4f24d58c3e2";
       };
     }
     {
@@ -2946,22 +2834,6 @@
       };
     }
     {
-      name = "pseudomap___pseudomap_1.0.2.tgz";
-      path = fetchurl {
-        name = "pseudomap___pseudomap_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
-        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
-      };
-    }
-    {
-      name = "psl___psl_1.7.0.tgz";
-      path = fetchurl {
-        name = "psl___psl_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz";
-        sha1 = "f1c4c47a8ef97167dea5d6bbf4816d736e884a3c";
-      };
-    }
-    {
       name = "pump___pump_3.0.0.tgz";
       path = fetchurl {
         name = "pump___pump_3.0.0.tgz";
@@ -2978,19 +2850,19 @@
       };
     }
     {
-      name = "puppeteer_cluster___puppeteer_cluster_0.18.0.tgz";
+      name = "puppeteer_cluster___puppeteer_cluster_0.22.0.tgz";
       path = fetchurl {
-        name = "puppeteer_cluster___puppeteer_cluster_0.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/puppeteer-cluster/-/puppeteer-cluster-0.18.0.tgz";
-        sha1 = "189ef1cea474590aa4d42c9a665dc319689e8fad";
+        name = "puppeteer_cluster___puppeteer_cluster_0.22.0.tgz";
+        url  = "https://registry.yarnpkg.com/puppeteer-cluster/-/puppeteer-cluster-0.22.0.tgz";
+        sha1 = "4ab214671f414f15ad6a94a4b61ed0b4172e86e6";
       };
     }
     {
-      name = "puppeteer___puppeteer_2.0.0.tgz";
+      name = "puppeteer___puppeteer_3.3.0.tgz";
       path = fetchurl {
-        name = "puppeteer___puppeteer_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-2.0.0.tgz";
-        sha1 = "0612992e29ec418e0a62c8bebe61af1a64d7ec01";
+        name = "puppeteer___puppeteer_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.3.0.tgz";
+        sha1 = "95839af9fdc0aa4de7e5ee073a4c0adeb9e2d3d7";
       };
     }
     {
@@ -3002,11 +2874,11 @@
       };
     }
     {
-      name = "qs___qs_6.5.2.tgz";
+      name = "queue_microtask___queue_microtask_1.2.3.tgz";
       path = fetchurl {
-        name = "qs___qs_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
-        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+        name = "queue_microtask___queue_microtask_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha1 = "4929228bbc724dfac43e0efb058caf7b6cfb6243";
       };
     }
     {
@@ -3026,11 +2898,11 @@
       };
     }
     {
-      name = "read_pkg___read_pkg_5.2.0.tgz";
+      name = "rc___rc_1.2.8.tgz";
       path = fetchurl {
-        name = "read_pkg___read_pkg_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz";
-        sha1 = "7bf295438ca5a33e56cd30e053b34ee7250c93cc";
+        name = "rc___rc_1.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+        sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
       };
     }
     {
@@ -3042,19 +2914,19 @@
       };
     }
     {
-      name = "readable_stream___readable_stream_3.5.0.tgz";
+      name = "readable_stream___readable_stream_3.6.0.tgz";
       path = fetchurl {
-        name = "readable_stream___readable_stream_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.5.0.tgz";
-        sha1 = "465d70e6d1087f6162d079cd0b5db7fbebfd1606";
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
       };
     }
     {
-      name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+      name = "readdirp___readdirp_3.5.0.tgz";
       path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
+        name = "readdirp___readdirp_3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz";
+        sha1 = "9ba74c019b15d365278d2e91bb8c48d7b4d42c9e";
       };
     }
     {
@@ -3066,19 +2938,11 @@
       };
     }
     {
-      name = "request_progress___request_progress_3.0.0.tgz";
-      path = fetchurl {
-        name = "request_progress___request_progress_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz";
-        sha1 = "4ca754081c7fec63f505e4faa825aa06cd669dbe";
-      };
-    }
-    {
-      name = "request___request_2.88.2.tgz";
+      name = "require_directory___require_directory_2.1.1.tgz";
       path = fetchurl {
-        name = "request___request_2.88.2.tgz";
-        url  = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
-        sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
+        name = "require_directory___require_directory_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
       };
     }
     {
@@ -3106,19 +2970,11 @@
       };
     }
     {
-      name = "resolve___resolve_1.14.2.tgz";
+      name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.14.2.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz";
-        sha1 = "dbf31d0fa98b1f29aa5169783b9c290cb865fea2";
-      };
-    }
-    {
-      name = "resolve___resolve_1.17.0.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.17.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
-        sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
       };
     }
     {
@@ -3138,22 +2994,6 @@
       };
     }
     {
-      name = "rimraf___rimraf_2.7.1.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
-        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
-      };
-    }
-    {
-      name = "rimraf___rimraf_3.0.0.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz";
-        sha1 = "614176d4b3010b75e5c390eb0ee96f6dc0cebb9b";
-      };
-    }
-    {
       name = "rimraf___rimraf_3.0.2.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_3.0.2.tgz";
@@ -3162,27 +3002,19 @@
       };
     }
     {
-      name = "run_node___run_node_1.0.0.tgz";
+      name = "run_parallel___run_parallel_1.2.0.tgz";
       path = fetchurl {
-        name = "run_node___run_node_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz";
-        sha1 = "46b50b946a2aa2d4947ae1d886e9856fd9cabe5e";
+        name = "run_parallel___run_parallel_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha1 = "66d1368da7bdf921eb9d95bd1a9229e7f21a43ee";
       };
     }
     {
-      name = "run_parallel___run_parallel_1.1.9.tgz";
+      name = "rxjs___rxjs_6.6.7.tgz";
       path = fetchurl {
-        name = "run_parallel___run_parallel_1.1.9.tgz";
-        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz";
-        sha1 = "c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679";
-      };
-    }
-    {
-      name = "rxjs___rxjs_6.5.4.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz";
-        sha1 = "e0777fe0d184cec7872df147f303572d414e211c";
+        name = "rxjs___rxjs_6.6.7.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz";
+        sha1 = "90ac018acabf491bf65044235d5863c4dab804c9";
       };
     }
     {
@@ -3194,11 +3026,11 @@
       };
     }
     {
-      name = "safe_buffer___safe_buffer_5.2.0.tgz";
+      name = "safe_buffer___safe_buffer_5.2.1.tgz";
       path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
+        name = "safe_buffer___safe_buffer_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
       };
     }
     {
@@ -3218,27 +3050,27 @@
       };
     }
     {
-      name = "semver___semver_5.7.1.tgz";
+      name = "semver_regex___semver_regex_3.1.2.tgz";
       path = fetchurl {
-        name = "semver___semver_5.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
-        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+        name = "semver_regex___semver_regex_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz";
+        sha1 = "34b4c0d361eef262e07199dbef316d0f2ab11807";
       };
     }
     {
-      name = "semver___semver_6.3.0.tgz";
+      name = "semver___semver_5.7.1.tgz";
       path = fetchurl {
-        name = "semver___semver_6.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
-        sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+        name = "semver___semver_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
       };
     }
     {
-      name = "semver___semver_7.3.4.tgz";
+      name = "semver___semver_7.3.5.tgz";
       path = fetchurl {
-        name = "semver___semver_7.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
-        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
       };
     }
     {
@@ -3258,19 +3090,19 @@
       };
     }
     {
-      name = "setprototypeof___setprototypeof_1.1.1.tgz";
+      name = "set_blocking___set_blocking_2.0.0.tgz";
       path = fetchurl {
-        name = "setprototypeof___setprototypeof_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
+        name = "set_blocking___set_blocking_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
       };
     }
     {
-      name = "shebang_command___shebang_command_1.2.0.tgz";
+      name = "setprototypeof___setprototypeof_1.1.1.tgz";
       path = fetchurl {
-        name = "shebang_command___shebang_command_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
-        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+        name = "setprototypeof___setprototypeof_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
       };
     }
     {
@@ -3282,14 +3114,6 @@
       };
     }
     {
-      name = "shebang_regex___shebang_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "shebang_regex___shebang_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
-        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
-      };
-    }
-    {
       name = "shebang_regex___shebang_regex_3.0.0.tgz";
       path = fetchurl {
         name = "shebang_regex___shebang_regex_3.0.0.tgz";
@@ -3298,11 +3122,27 @@
       };
     }
     {
-      name = "signal_exit___signal_exit_3.0.2.tgz";
+      name = "signal_exit___signal_exit_3.0.3.tgz";
+      path = fetchurl {
+        name = "signal_exit___signal_exit_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
+      };
+    }
+    {
+      name = "simple_concat___simple_concat_1.0.1.tgz";
+      path = fetchurl {
+        name = "simple_concat___simple_concat_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha1 = "f46976082ba35c2263f1c8ab5edfe26c41c9552f";
+      };
+    }
+    {
+      name = "simple_get___simple_get_3.1.0.tgz";
       path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
-        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+        name = "simple_get___simple_get_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz";
+        sha1 = "b45be062435e50d159540b576202ceec40b9c6b3";
       };
     }
     {
@@ -3346,38 +3186,6 @@
       };
     }
     {
-      name = "spdx_correct___spdx_correct_3.1.0.tgz";
-      path = fetchurl {
-        name = "spdx_correct___spdx_correct_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha1 = "fb83e504445268f154b074e218c87c003cd31df4";
-      };
-    }
-    {
-      name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
-      path = fetchurl {
-        name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
-      };
-    }
-    {
-      name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
-      path = fetchurl {
-        name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
-      };
-    }
-    {
-      name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
-      path = fetchurl {
-        name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
-        sha1 = "3694b5804567a458d3c8045842a6358632f62654";
-      };
-    }
-    {
       name = "split___split_0.3.3.tgz";
       path = fetchurl {
         name = "split___split_0.3.3.tgz";
@@ -3394,14 +3202,6 @@
       };
     }
     {
-      name = "sshpk___sshpk_1.16.1.tgz";
-      path = fetchurl {
-        name = "sshpk___sshpk_1.16.1.tgz";
-        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
-        sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
-      };
-    }
-    {
       name = "stack_trace___stack_trace_0.0.10.tgz";
       path = fetchurl {
         name = "stack_trace___stack_trace_0.0.10.tgz";
@@ -3466,11 +3266,11 @@
       };
     }
     {
-      name = "string_width___string_width_4.2.0.tgz";
+      name = "string_width___string_width_4.2.2.tgz";
       path = fetchurl {
-        name = "string_width___string_width_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
-        sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+        name = "string_width___string_width_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
+        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
       };
     }
     {
@@ -3522,14 +3322,6 @@
       };
     }
     {
-      name = "strip_eof___strip_eof_1.0.0.tgz";
-      path = fetchurl {
-        name = "strip_eof___strip_eof_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
-        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
-      };
-    }
-    {
       name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
       path = fetchurl {
         name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
@@ -3546,6 +3338,14 @@
       };
     }
     {
+      name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+      path = fetchurl {
+        name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    }
+    {
       name = "supports_color___supports_color_2.0.0.tgz";
       path = fetchurl {
         name = "supports_color___supports_color_2.0.0.tgz";
@@ -3578,11 +3378,27 @@
       };
     }
     {
-      name = "table___table_6.0.7.tgz";
+      name = "table___table_6.6.0.tgz";
+      path = fetchurl {
+        name = "table___table_6.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.6.0.tgz";
+        sha1 = "905654b79df98d9e9a973de1dd58682532c40e8e";
+      };
+    }
+    {
+      name = "tar_fs___tar_fs_2.1.1.tgz";
       path = fetchurl {
-        name = "table___table_6.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz";
-        sha1 = "e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34";
+        name = "tar_fs___tar_fs_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz";
+        sha1 = "489a15ab85f1f0befabb370b7de4f9eb5cbe8784";
+      };
+    }
+    {
+      name = "tar_stream___tar_stream_2.2.0.tgz";
+      path = fetchurl {
+        name = "tar_stream___tar_stream_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha1 = "acad84c284136b060dc3faa64474aa9aebd77287";
       };
     }
     {
@@ -3610,30 +3426,6 @@
       };
     }
     {
-      name = "thenify_all___thenify_all_1.6.0.tgz";
-      path = fetchurl {
-        name = "thenify_all___thenify_all_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz";
-        sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
-      };
-    }
-    {
-      name = "thenify___thenify_3.3.0.tgz";
-      path = fetchurl {
-        name = "thenify___thenify_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz";
-        sha1 = "e69e38a1babe969b0108207978b9f62b88604839";
-      };
-    }
-    {
-      name = "throttleit___throttleit_1.0.0.tgz";
-      path = fetchurl {
-        name = "throttleit___throttleit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz";
-        sha1 = "9e785836daf46743145a5984b6268d828528ac6c";
-      };
-    }
-    {
       name = "through___through_2.3.8.tgz";
       path = fetchurl {
         name = "through___through_2.3.8.tgz";
@@ -3642,6 +3434,14 @@
       };
     }
     {
+      name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+      path = fetchurl {
+        name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    }
+    {
       name = "to_regex_range___to_regex_range_5.0.1.tgz";
       path = fetchurl {
         name = "to_regex_range___to_regex_range_5.0.1.tgz";
@@ -3658,14 +3458,6 @@
       };
     }
     {
-      name = "tough_cookie___tough_cookie_2.5.0.tgz";
-      path = fetchurl {
-        name = "tough_cookie___tough_cookie_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
-      };
-    }
-    {
       name = "triple_beam___triple_beam_1.3.0.tgz";
       path = fetchurl {
         name = "triple_beam___triple_beam_1.3.0.tgz";
@@ -3674,35 +3466,35 @@
       };
     }
     {
-      name = "tsc_watch___tsc_watch_4.2.3.tgz";
+      name = "tsc_watch___tsc_watch_4.2.9.tgz";
       path = fetchurl {
-        name = "tsc_watch___tsc_watch_4.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.2.3.tgz";
-        sha1 = "630aaf1ed8bbfb6fbcbddb9bef96054bed217c4b";
+        name = "tsc_watch___tsc_watch_4.2.9.tgz";
+        url  = "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.2.9.tgz";
+        sha1 = "d93fc74233ca4ef7ee6b12d08c0fe6aca3e19044";
       };
     }
     {
-      name = "tslib___tslib_1.10.0.tgz";
+      name = "tslib___tslib_2.1.0.tgz";
       path = fetchurl {
-        name = "tslib___tslib_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz";
-        sha1 = "c3c19f95973fb0a62973fb09d90d961ee43e5c8a";
+        name = "tslib___tslib_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz";
+        sha1 = "da60860f1c2ecaa5703ab7d39bc05b6bf988b97a";
       };
     }
     {
-      name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+      name = "tslib___tslib_1.14.1.tgz";
       path = fetchurl {
-        name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+        name = "tslib___tslib_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
+        sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
       };
     }
     {
-      name = "tweetnacl___tweetnacl_0.14.5.tgz";
+      name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
       path = fetchurl {
-        name = "tweetnacl___tweetnacl_0.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+        name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
       };
     }
     {
@@ -3722,11 +3514,11 @@
       };
     }
     {
-      name = "type_fest___type_fest_0.6.0.tgz";
+      name = "type_fest___type_fest_0.20.2.tgz";
       path = fetchurl {
-        name = "type_fest___type_fest_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz";
-        sha1 = "8d2a2370d3df886eb5c90ada1c5bf6188acf838b";
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
       };
     }
     {
@@ -3746,27 +3538,19 @@
       };
     }
     {
-      name = "typedarray___typedarray_0.0.6.tgz";
-      path = fetchurl {
-        name = "typedarray___typedarray_0.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
-      };
-    }
-    {
-      name = "typescript___typescript_3.8.3.tgz";
+      name = "typescript___typescript_3.9.9.tgz";
       path = fetchurl {
-        name = "typescript___typescript_3.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz";
-        sha1 = "409eb8544ea0335711205869ec458ab109ee1061";
+        name = "typescript___typescript_3.9.9.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz";
+        sha1 = "e69905c54bc0681d0518bd4d587cc6f2d0b1a674";
       };
     }
     {
-      name = "uid2___uid2_0.0.3.tgz";
+      name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
       path = fetchurl {
-        name = "uid2___uid2_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz";
-        sha1 = "483126e11774df2f71b8b639dcd799c376162b82";
+        name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz";
+        sha1 = "b0da04c4371311df771cdc215e87f2130991ace7";
       };
     }
     {
@@ -3786,19 +3570,11 @@
       };
     }
     {
-      name = "unique_temp_dir___unique_temp_dir_1.0.0.tgz";
+      name = "universalify___universalify_2.0.0.tgz";
       path = fetchurl {
-        name = "unique_temp_dir___unique_temp_dir_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz";
-        sha1 = "6dce95b2681ca003eebfb304a415f9cbabcc5385";
-      };
-    }
-    {
-      name = "universalify___universalify_0.1.2.tgz";
-      path = fetchurl {
-        name = "universalify___universalify_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
-        sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+        name = "universalify___universalify_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz";
+        sha1 = "75a4984efedc4b08975c5aeb73f530d02df25717";
       };
     }
     {
@@ -3818,11 +3594,11 @@
       };
     }
     {
-      name = "url_value_parser___url_value_parser_2.0.1.tgz";
+      name = "url_value_parser___url_value_parser_2.0.3.tgz";
       path = fetchurl {
-        name = "url_value_parser___url_value_parser_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.0.1.tgz";
-        sha1 = "c8179a095ab9ec1f5aa17ca36af5af396b4e95ed";
+        name = "url_value_parser___url_value_parser_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.0.3.tgz";
+        sha1 = "cd4b8d6754e458d65e8125260c09718d926e6e21";
       };
     }
     {
@@ -3842,27 +3618,11 @@
       };
     }
     {
-      name = "uuid___uuid_3.4.0.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
-        sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
-      };
-    }
-    {
-      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
-        sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
-      };
-    }
-    {
-      name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
-      path = fetchurl {
-        name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
-        sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+        name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
       };
     }
     {
@@ -3874,19 +3634,11 @@
       };
     }
     {
-      name = "verror___verror_1.10.0.tgz";
+      name = "which_pm_runs___which_pm_runs_1.0.0.tgz";
       path = fetchurl {
-        name = "verror___verror_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
-      };
-    }
-    {
-      name = "which___which_1.3.1.tgz";
-      path = fetchurl {
-        name = "which___which_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
-        sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+        name = "which_pm_runs___which_pm_runs_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
+        sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
       };
     }
     {
@@ -3898,19 +3650,27 @@
       };
     }
     {
-      name = "winston_transport___winston_transport_4.3.0.tgz";
+      name = "wide_align___wide_align_1.1.3.tgz";
+      path = fetchurl {
+        name = "wide_align___wide_align_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+        sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+      };
+    }
+    {
+      name = "winston_transport___winston_transport_4.4.0.tgz";
       path = fetchurl {
-        name = "winston_transport___winston_transport_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.3.0.tgz";
-        sha1 = "df68c0c202482c448d9b47313c07304c2d7c2c66";
+        name = "winston_transport___winston_transport_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha1 = "17af518daa690d5b2ecccaa7acf7b20ca7925e59";
       };
     }
     {
-      name = "winston___winston_3.2.1.tgz";
+      name = "winston___winston_3.3.3.tgz";
       path = fetchurl {
-        name = "winston___winston_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz";
-        sha1 = "63061377976c73584028be2490a1846055f77f07";
+        name = "winston___winston_3.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz";
+        sha1 = "ae6172042cafb29786afa3d09c8ff833ab7c9170";
       };
     }
     {
@@ -3930,6 +3690,14 @@
       };
     }
     {
+      name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha1 = "67e145cff510a6a6984bdf1152911d69d2eb9e43";
+      };
+    }
+    {
       name = "wrappy___wrappy_1.0.2.tgz";
       path = fetchurl {
         name = "wrappy___wrappy_1.0.2.tgz";
@@ -3938,19 +3706,19 @@
       };
     }
     {
-      name = "ws___ws_6.2.1.tgz";
+      name = "ws___ws_7.4.6.tgz";
       path = fetchurl {
-        name = "ws___ws_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz";
-        sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb";
+        name = "ws___ws_7.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz";
+        sha1 = "5654ca8ecdeee47c33a9a4bf6d28e2be2980377c";
       };
     }
     {
-      name = "yallist___yallist_2.1.2.tgz";
+      name = "y18n___y18n_5.0.8.tgz";
       path = fetchurl {
-        name = "yallist___yallist_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
-        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+        name = "y18n___y18n_5.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz";
+        sha1 = "7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55";
       };
     }
     {
@@ -3962,11 +3730,43 @@
       };
     }
     {
-      name = "yauzl___yauzl_2.4.1.tgz";
+      name = "yaml___yaml_1.10.2.tgz";
+      path = fetchurl {
+        name = "yaml___yaml_1.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz";
+        sha1 = "2301c5ffbf12b467de8da2333a459e29e7920e4b";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_20.2.7.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_20.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz";
+        sha1 = "61df85c113edfb5a7a4e36eb8aa60ef423cbc90a";
+      };
+    }
+    {
+      name = "yargs___yargs_16.2.0.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_16.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz";
+        sha1 = "1c82bf0f6b6a66eafce7ef30e376f49a12477f66";
+      };
+    }
+    {
+      name = "yauzl___yauzl_2.10.0.tgz";
+      path = fetchurl {
+        name = "yauzl___yauzl_2.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz";
+        sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
+      };
+    }
+    {
+      name = "yocto_queue___yocto_queue_0.1.0.tgz";
       path = fetchurl {
-        name = "yauzl___yauzl_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz";
-        sha1 = "9528f442dab1b2284e58b4379bb194e22e0c4005";
+        name = "yocto_queue___yocto_queue_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz";
+        sha1 = "0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b";
       };
     }
   ];
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
index 364d2e443536..c2d18ae23965 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "grafana";
-  version = "7.5.2";
+  version = "8.0.0";
 
   excludedPackages = [ "release_publisher" ];
 
@@ -10,25 +10,32 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "sha256-8Qy5YgJZpvaAjeBAi092Jxg4yAD1fYmMteTRm5b0Q+g=";
+    sha256 = "sha256-HtubiSx4Orf9knZcuYy4eF2qwclX/JVd2Ba9L33tM74=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "sha256-yVswMNOLX/AFtv45TXm8WcHEytyYgtjvi7V0dRewDdc=";
+    sha256 = "sha256-bwBpkPy4kwfnkRsLOktUgQx+Sm8WJA2d65efMBCnGp4=";
   };
 
-  vendorSha256 = "sha256-oh3GB6Iaqy05IS2MU5LJqTXnlr0vtkACZA6wpmW7W2Q=";
+  vendorSha256 = "sha256-Hon5WrhXUvZUtMRxx3XcBDQe3rkRkfqbnXjY3xCzuuM=";
 
-  postPatch = ''
-    substituteInPlace pkg/cmd/grafana-server/main.go \
-      --replace 'var version = "5.0.0"'  'var version = "${version}"'
-  '';
-
-  # main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/scripts/go
-  # main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/dashboard-schemas
   preBuild = ''
-    rm -r dashboard-schemas scripts/go
+    # The testcase makes an API call against grafana.com:
+    #
+    # --- Expected
+    # +++ Actual
+    # @@ -1,4 +1,4 @@
+    #  (map[string]interface {}) (len=2) {
+    # - (string) (len=5) "error": (string) (len=16) "plugin not found",
+    # - (string) (len=7) "message": (string) (len=16) "Plugin not found"
+    # + (string) (len=5) "error": (string) (len=171) "Failed to send request: Get \"https://grafana.com/api/plugins/repo/test\": dial tcp: lookup grafana.com on [::1]:53: read udp [::1]:48019->[::1]:53: read: connection refused",
+    # + (string) (len=7) "message": (string) (len=24) "Failed to install plugin"
+    #  }
+    sed -ie '/func TestPluginInstallAccess/a t.Skip();' pkg/tests/api/plugins/api_install_test.go
+
+    # main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/scripts/go
+    rm -r scripts/go
   '';
 
   postInstall = ''
@@ -41,7 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB";
-    license = licenses.asl20;
+    license = licenses.agpl3;
     homepage = "https://grafana.com";
     maintainers = with maintainers; [ offline fpletz willibutz globin ma27 Frostman ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/monitoring/icinga2/default.nix b/nixpkgs/pkgs/servers/monitoring/icinga2/default.nix
new file mode 100644
index 000000000000..44c512196c65
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/icinga2/default.nix
@@ -0,0 +1,101 @@
+{ stdenv, lib, fetchFromGitHub, cmake, flex, bison, systemd
+, boost, openssl, patchelf, mariadb-connector-c, postgresql, zlib
+# Databases
+, withMysql ? true, withPostgresql ? false
+# Features
+, withChecker ? true, withCompat ? false, withLivestatus ? false
+, withNotification ? true, withPerfdata ? true, withIcingadb ? true
+, nameSuffix ? "" }:
+
+stdenv.mkDerivation rec {
+  pname = "icinga2${nameSuffix}";
+  version = "2.12.4";
+
+  src = fetchFromGitHub {
+    owner = "icinga";
+    repo = "icinga2";
+    rev = "v${version}";
+    sha256 = "sha256-SJBOZzLbmW4525G3w6BVS53kOd2bJ5rEbwwb4Lo5q8I=";
+  };
+
+  patches = [
+    ./etc-icinga2.patch # Makes /etc/icinga2 relative to / instead of the store path
+    ./no-systemd-service.patch # Prevent systemd service from being written to /usr
+    ./no-var-directories.patch # Prevent /var directories from being created
+  ];
+
+  cmakeFlags = let
+    mkFeatureFlag = label: value: "-DICINGA2_WITH_${label}=${if value then "ON" else "OFF"}";
+  in [
+    # Paths
+    "-DCMAKE_INSTALL_SYSCONFDIR=etc"
+    "-DCMAKE_INSTALL_LOCALSTATEDIR=/var"
+    "-DCMAKE_INSTALL_FULL_SBINDIR=bin"
+    "-DICINGA2_RUNDIR=/run"
+    "-DMYSQL_INCLUDE_DIR=${mariadb-connector-c.dev}/include/mariadb"
+    "-DMYSQL_LIB=${mariadb-connector-c.out}/lib/mariadb/libmysqlclient.a"
+    "-DICINGA2_PLUGINDIR=bin"
+    "-DICINGA2_UNITY_BUILD=no"
+    # Features
+    (mkFeatureFlag "MYSQL" withMysql)
+    (mkFeatureFlag "PGSQL" withPostgresql)
+    (mkFeatureFlag "CHECKER" withChecker)
+    (mkFeatureFlag "COMPAT" withCompat)
+    (mkFeatureFlag "LIVESTATUS" withLivestatus)
+    (mkFeatureFlag "NOTIFICATION" withNotification)
+    (mkFeatureFlag "PERFDATA" withPerfdata)
+    (mkFeatureFlag "ICINGADB" withIcingadb)
+    # Misc.
+    "-DICINGA2_USER=icinga2"
+    "-DICINGA2_GROUP=icinga2"
+    "-DICINGA2_GIT_VERSION_INFO=OFF"
+    "-DICINGA2_WITH_TESTS=OFF"
+    "-DUSE_SYSTEMD=ON"
+  ];
+
+  buildInputs = [ boost openssl systemd ]
+    ++ lib.optional withPostgresql postgresql;
+
+  nativeBuildInputs = [ cmake flex bison patchelf ];
+
+  postFixup = ''
+    rm -r $out/etc/logrotate.d $out/etc/sysconfig $out/lib/icinga2/prepare-dirs
+
+    # Fix hardcoded paths
+    sed -i 's:/usr/bin/::g' $out/etc/icinga2/scripts/*
+
+    # Cleanup sbin
+    sed -i 's/sbin/bin/g' $out/lib/icinga2/safe-reload
+    rm $out/sbin
+
+    ${lib.optionalString withMysql ''
+      # Add dependencies of the MySQL shim to the shared library
+      patchelf --add-needed ${zlib.out}/lib/libz.so $(readlink -f $out/lib/icinga2/libmysql_shim.so)
+
+      # Make Icinga find the MySQL shim
+      icinga2Bin=$out/lib/icinga2/sbin/icinga2
+      patchelf --set-rpath $out/lib/icinga2:$(patchelf --print-rpath $icinga2Bin) $icinga2Bin
+    ''}
+  '';
+
+  vim = stdenv.mkDerivation {
+    pname = "vim-icinga2";
+    inherit version src;
+
+    dontConfigure = true;
+    dontBuild = true;
+
+    installPhase = ''
+      mkdir -p $out/share/vim-plugins
+      cp -r tools/syntax/vim $out/share/vim-plugins/icinga2
+    '';
+  };
+
+  meta = {
+    description = "Open source monitoring system";
+    homepage = "https://www.icinga.com";
+    license = lib.licenses.gpl2Plus;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ das_j ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/icinga2/etc-icinga2.patch b/nixpkgs/pkgs/servers/monitoring/icinga2/etc-icinga2.patch
new file mode 100644
index 000000000000..a08f7ba979c5
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/icinga2/etc-icinga2.patch
@@ -0,0 +1,13 @@
+diff --git a/config.h.cmake b/config.h.cmake
+index 16fa190..152bf43 100644
+--- a/config.h.cmake
++++ b/config.h.cmake
+@@ -13,7 +13,7 @@
+ 
+ #cmakedefine ICINGA2_UNITY_BUILD
+ 
+-#define ICINGA_CONFIGDIR "${ICINGA2_FULL_CONFIGDIR}"
++#define ICINGA_CONFIGDIR "/etc/icinga2"
+ #define ICINGA_DATADIR "${ICINGA2_FULL_DATADIR}"
+ #define ICINGA_LOGDIR "${ICINGA2_FULL_LOGDIR}"
+ #define ICINGA_CACHEDIR "${ICINGA2_FULL_CACHEDIR}"
diff --git a/nixpkgs/pkgs/servers/monitoring/icinga2/no-systemd-service.patch b/nixpkgs/pkgs/servers/monitoring/icinga2/no-systemd-service.patch
new file mode 100644
index 000000000000..a032a90647d7
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/icinga2/no-systemd-service.patch
@@ -0,0 +1,15 @@
+diff --git a/etc/initsystem/CMakeLists.txt b/etc/initsystem/CMakeLists.txt
+index e702c83..c23cabb 100644
+--- a/etc/initsystem/CMakeLists.txt
++++ b/etc/initsystem/CMakeLists.txt
+@@ -50,10 +50,5 @@ if(NOT WIN32)
+ 
+   if (USE_SYSTEMD OR INSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT)
+     configure_file(icinga2.service.cmake ${CMAKE_CURRENT_BINARY_DIR}/initsystem/icinga2.service @ONLY)
+-    install(
+-      FILES ${CMAKE_CURRENT_BINARY_DIR}/initsystem/icinga2.service
+-      DESTINATION ${DESTDIR}/usr/lib/systemd/system
+-      PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-    )
+   endif()
+ endif()
diff --git a/nixpkgs/pkgs/servers/monitoring/icinga2/no-var-directories.patch b/nixpkgs/pkgs/servers/monitoring/icinga2/no-var-directories.patch
new file mode 100644
index 000000000000..3a1d48055852
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/icinga2/no-var-directories.patch
@@ -0,0 +1,66 @@
+diff --git a/icinga-app/CMakeLists.txt b/icinga-app/CMakeLists.txt
+index 87993df..819c87b 100644
+--- a/icinga-app/CMakeLists.txt
++++ b/icinga-app/CMakeLists.txt
+@@ -106,7 +106,3 @@ install(
+   TARGETS icinga-app
+   RUNTIME DESTINATION ${InstallPath}
+ )
+-
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_LOGDIR}\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_INITRUNDIR}\")")
+diff --git a/lib/base/CMakeLists.txt b/lib/base/CMakeLists.txt
+index 5dda179..22cf69f 100644
+--- a/lib/base/CMakeLists.txt
++++ b/lib/base/CMakeLists.txt
+@@ -125,7 +125,4 @@ set_target_properties (
+   FOLDER Lib
+ )
+ 
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_CACHEDIR}\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_LOGDIR}/crash\")")
+-
+ set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}" PARENT_SCOPE)
+diff --git a/lib/perfdata/CMakeLists.txt b/lib/perfdata/CMakeLists.txt
+index ab963f7..3d9d506 100644
+--- a/lib/perfdata/CMakeLists.txt
++++ b/lib/perfdata/CMakeLists.txt
+@@ -74,7 +74,4 @@ install_if_not_exists(
+   ${ICINGA2_CONFIGDIR}/features-available
+ )
+ 
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_SPOOLDIR}/perfdata\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_SPOOLDIR}/tmp\")")
+-
+ set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}" PARENT_SCOPE)
+diff --git a/lib/remote/CMakeLists.txt b/lib/remote/CMakeLists.txt
+index 65113d2..5e4398f 100644
+--- a/lib/remote/CMakeLists.txt
++++ b/lib/remote/CMakeLists.txt
+@@ -55,12 +55,3 @@ set_target_properties (
+   remote PROPERTIES
+   FOLDER Lib
+ )
+-
+-#install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}/api\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}/api/log\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}/api/zones\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}/api/zones-stage\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}/certs\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_DATADIR}/certificate-requests\")")
+-
+-
+diff --git a/lib/compat/CMakeLists.txt b/lib/compat/CMakeLists.txt
+index 1438626..d882ae2 100644
+--- a/lib/compat/CMakeLists.txt
++++ b/lib/compat/CMakeLists.txt
+@@ -55,8 +55,4 @@ install_if_not_exists(
+   ${ICINGA2_CONFIGDIR}/features-available
+ )
+ 
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_LOGDIR}/compat/archives\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_SPOOLDIR}\")")
+-install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${ICINGA2_FULL_INITRUNDIR}/cmd\")")
+-
+ set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}" PARENT_SCOPE)
diff --git a/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
index 8051602489c4..988d502e1432 100644
--- a/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "mackerel-agent";
-  version = "0.71.1";
+  version = "0.71.2";
 
   src = fetchFromGitHub {
     owner = "mackerelio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xEUIfmQX7I+I2wi53vc1JZYDweY9OAAUd2TZJ125+iw=";
+    sha256 = "sha256-O67xzL4avCOh2x6qJCScOWR2TS1hfP5S6jHHELNbZWQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
   checkInputs = lib.optionals (!stdenv.isDarwin) [ nettools ];
   buildInputs = lib.optionals (!stdenv.isDarwin) [ iproute2 ];
 
-  vendorSha256 = "sha256-yomxALecP+PycelOmwrteK/LoW7wsst7os+jcbF46Bs=";
+  vendorSha256 = "sha256-iFWQoAnB0R6XwjdPvOWJdNTmEZ961zE51vDrmZ7r4Jk=";
 
   subPackages = [ "." ];
 
@@ -37,6 +37,5 @@ buildGoModule rec {
     homepage = "https://github.com/mackerelio/mackerel-agent";
     license = licenses.asl20;
     maintainers = with maintainers; [ midchildan ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/mtail/default.nix b/nixpkgs/pkgs/servers/monitoring/mtail/default.nix
index b8a1c7bc50d6..c0a7e1129a14 100644
--- a/nixpkgs/pkgs/servers/monitoring/mtail/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/mtail/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mtail";
-  version = "3.0.0-rc43";
+  version = "3.0.0-rc46";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mtail";
     rev = "v${version}";
-    sha256 = "1lw7gz6fh3z7j4hin4q6y3wxxl4sgd4li1c0z60hmvfs671n6dg9";
+    sha256 = "sha256-/PiwrXr/oG/euWDOqcXvKKvyvQbp11Ks8LjmmJjDtdU=";
   };
 
-  vendorSha256 = "0zymch6xfnyzjzizrjljmscqf8m99580zxjwc2rb9hn0324shcwq";
+  vendorSha256 = "sha256-aBGJ+JJjm9rt7Ic90iWY7vGtZQN0u6jlBnAMy1nivQM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
index 3aa1e18a9f15..5e7d386d7e1c 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "artifactory_exporter";
-  version = "1.9.0";
+  version = "1.9.1";
   rev = "v${version}";
 
   src = fetchFromGitHub {
     owner = "peimanja";
     repo = pname;
     rev = rev;
-    sha256 = "1zmkajg48i40jm624p2h03bwg7w28682yfcgk42ig3d50p8xwqc3";
+    sha256 = "1m68isplrs3zvkg0mans9bgablsif6264x3w475bpnhf68r87v1q";
   };
 
-  vendorSha256 = "1594bpfwhbjgayf4aacs7rfjxm4cnqz8iak8kpm1xzsm1cx1il17";
+  vendorSha256 = "0acwgb0h89parkx75jp057m2hrqyd95vr2zcfqnxbnyy98gxip73";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
index af58a6ebe947..e93db302552f 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "aws-s3-exporter";
-  version = "0.3.0";
+  version = "0.4.1";
 
   goPackagePath = "github.com/ribbybibby/s3_exporter";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "ribbybibby";
     repo = "s3_exporter";
     rev = "v${version}";
-    sha256 = "062qi4rfqkxwknncwcvx4g132bxhkn2bhbxi4l90wl93v6sdp9l2";
+    sha256 = "01g4k5wrbc2ggxkn4yqd2v0amw8yl5dbcfwi4jm3kqkihrf0rbiq";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
index 5cfdf6158300..74b7c2112f99 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
@@ -1,19 +1,18 @@
-{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "bind_exporter";
-  version = "20161221-${lib.strings.substring 0 7 rev}";
-  rev = "4e1717c7cd5f31c47d0c37274464cbaabdd462ba";
-
-  goPackagePath = "github.com/digitalocean/bind_exporter";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner = "digitalocean";
+    rev = "v${version}";
+    owner = "prometheus-community";
     repo = "bind_exporter";
-    sha256 = "1nd6pc1z627w4x55vd42zfhlqxxjmfsa9lyn0g6qq19k4l85v1qm";
+    sha256 = "152xi6kf1wzb7663ixv27hsdbf1x6s51fdp85zhghg1y700ln63v";
   };
 
+  vendorSha256 = "172aqrckkhlyhpkanrcs66m13p5qp4fd2w8xv02j2kqq13klwm1a";
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) bind; };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix
index 3cb04304e26d..67ec88332b5f 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bird-exporter";
-  version = "1.3.5-git";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "czerwonk";
     repo = "bird_exporter";
-    rev = "019fc09804625658d452a8e043cc16559c3b5b84";
-    sha256 = "1iym46368k8zzy4djx511m926dg8x5mg3xi91f65sknqv26zfggb";
+    rev = version;
+    sha256 = "06rlmmvr79db3lh54938yxi0ixcfb8fni0vgcv3nafqnlr2zbs58";
   };
 
-  vendorSha256 = null;
+  vendorSha256 = "14bjdfqvxvb9gs1nm0nnlib52vd0dbvjll22x7d2cc721cbd0hj0";
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) bird; };
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
index 88ef3f02602c..da235ff96fb2 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
@@ -1,19 +1,18 @@
-{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "blackbox_exporter";
-  version = "0.18.0";
-  rev = version;
-
-  goPackagePath = "github.com/prometheus/blackbox_exporter";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "blackbox_exporter";
-    sha256 = "1h4s0ww1drh14slrj9m7mx224qx9c6hyjav8sj959r75902i9491";
+    sha256 = "1lrabbp6nsd9h3hs3y5a37yl4g8zzkv0m3vhz2vrir3wmfn07n4g";
   };
 
+  vendorSha256 = "1wi9dmbxb6i1qglnp1v0lkqpp7l29lrbsg4lvx052nkcwkgq8g1y";
+
   # dns-lookup is performed for the tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
index b3b61567d481..d089a3877cd9 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoPackage rec {
   pname = "collectd-exporter";
-  version = "0.3.1";
+  version = "0.5.0";
   rev = version;
 
   goPackagePath = "github.com/prometheus/collectd_exporter";
 
-  src= fetchFromGitHub {
-    inherit rev;
+  src = fetchFromGitHub {
+    rev = "v${version}";
     owner = "prometheus";
     repo = "collectd_exporter";
-    sha256 = "1p0kb7c8g0r0sp5a6xrx8vnwbw14hhwlqzk4n2xx2y8pvnbivajz";
+    sha256 = "0vb6vnd2j87iqxdl86j30dk65vrv4scprv200xb83203aprngqgh";
   };
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) collectd; };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix
index 2852fb2afc29..b87817af439c 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage, nixosTests
+{ stdenv, lib, go, buildGoModule, fetchFromGitHub, mkYarnPackage, nixosTests
 , fetchpatch
 }:
 
 let
-  version = "2.23.0";
+  version = "2.27.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "prometheus";
-    sha256 = "sha256-UQ1r8271EiZDU/h2zta6toMRfk2GjXol8GexYL9n+BE=";
+    sha256 = "0836ygyvld5skjycd7366i6vyf451s6cay5ng6c2fwq0skvp2gj2";
   };
 
+  goPackagePath = "github.com/prometheus/prometheus";
+
   webui = mkYarnPackage {
     src = "${src}/web/ui/react-app";
     packageJSON = ./webui-package.json;
@@ -25,19 +27,13 @@ let
     installPhase = "mv build $out";
     distPhase = "true";
   };
-in buildGoPackage rec {
+in buildGoModule rec {
   pname = "prometheus";
   inherit src version;
 
-  goPackagePath = "github.com/prometheus/prometheus";
+  vendorSha256 = "0dq3p7hga7m1aq78har5rr136hlb0kp8zhh2wzqlkxrk1f33w54p";
 
-  patches = [
-    # Fix https://github.com/prometheus/prometheus/issues/8144
-    (fetchpatch {
-      url = "https://github.com/prometheus/prometheus/commit/8b64b70fe4a5aa2877c95aa12c6798b12d3ff7ec.patch";
-      sha256 = "sha256-RuXT5pBXv8z6WoE59KNGh+OXr1KGLGWs/n0Hjf4BuH8=";
-    })
-  ];
+  excludedPackages = [ "documentation/prometheus-mixin" ];
 
   postPatch = ''
     ln -s ${webui.node_modules} web/ui/react-app/node_modules
@@ -59,8 +55,10 @@ in buildGoPackage rec {
     ''
   ];
 
+  # only run this in the real build, not during the vendor build
+  # this should probably be fixed in buildGoModule
   preBuild = ''
-    make -C go/src/${goPackagePath} assets
+    if [ -d vendor ]; then make assets; fi
   '';
 
   preInstall = ''
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
index a0bc409a7fc8..78c35d8cf16e 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "domain-exporter";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "caarlos0";
     repo = "domain_exporter";
     rev = "v${version}";
-    sha256 = "0pvz5vx9jvxdrkmzqzh7dfi09sb55j6zpx5728m5v38p8cl8vyh6";
+    sha256 = "018y0xwdn2f2shhwaa0hqm4y8xsbqwif0733qb0377wpjbj4v137";
   };
 
-  vendorSha256 = "02m2mnx93xq6cl54waazgxq6vqbswfn9aafz0h694n6rskvdn784";
+  vendorSha256 = "0s1hs8byba9y57abg386n09wfg1wcqpzs164ap0km8ap2i96bdlb";
 
   doCheck = false; # needs internet connection
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
index 18055f9b06a0..38976521c0f7 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
@@ -1,20 +1,18 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gitlab-ci-pipelines-exporter";
-  version = "0.2.5";
-
-  goPackagePath = "github.com/mvisonneau/gitlab-ci-pipelines-exporter";
-
-  goDeps = ./gitlab-ci-pipelines-exporter_deps.nix;
+  version = "0.4.9";
 
   src = fetchFromGitHub {
     owner = "mvisonneau";
     repo = pname;
-    rev = version;
-    sha256 = "0qmy6pqfhx9bphgh1zqi68kp0nscwy1x7z13lfiaaz8pgsjh95yy";
+    rev = "v${version}";
+    sha256 = "13zs8140n4z56i0xkl6jvvmwy80l07dxyb23wxzd5avbdm8knypz";
   };
 
+  vendorSha256 = "1k620r3d1swhj7cfmqjh5n08da2a6w87fwrsajl0y324iyw2chsa";
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter_deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter_deps.nix
deleted file mode 100644
index d439c9aab10c..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter_deps.nix
+++ /dev/null
@@ -1,390 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/gocloud";
-      rev = "v0.34.0";
-      sha256 = "1kclgclwar3r37zbvb9gg3qxbgzkb50zk3s9778zlh2773qikmai";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "v1.0.0";
-      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.8.0";
-      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.4.0";
-      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.3.2";
-      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.3.0";
-      sha256 = "1hyxx3434zshl2m9ja78gwlkg1rx9yl6diqa7dnjb31xz5x4gbjj";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-querystring";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-querystring";
-      rev = "v1.0.0";
-      sha256 = "0xl12bqyvmn4xcnf8p9ksj9rmnr7s40pvppsdmy8n9bzw1db0iwz";
-    };
-  }
-  {
-    goPackagePath = "github.com/heptiolabs/healthcheck";
-    fetch = {
-      type = "git";
-      url = "https://github.com/heptiolabs/healthcheck";
-      rev = "6ff867650f40";
-      sha256 = "17aqrqhx2ibv6mcxsmli6m3hmvwi06cnpaly05daimay3cys5q0l";
-    };
-  }
-  {
-    goPackagePath = "github.com/jpillora/backoff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jpillora/backoff";
-      rev = "3050d21c67d7";
-      sha256 = "1nxapdx9xg5gwiscfhq7m0w14hj4gaxb4avmgf1mx9zd3jnw9jxv";
-    };
-  }
-  {
-    goPackagePath = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev = "v1.1.6";
-      sha256 = "08caswxvdn7nvaqyj5kyny6ghpygandlbw9vxdj7l5vkp7q0s43r";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "v1.2.0";
-      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.2";
-      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/concurrent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/concurrent";
-      rev = "bacd9c7ef1dd";
-      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/reflect2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/reflect2";
-      rev = "v1.0.1";
-      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
-    };
-  }
-  {
-    goPackagePath = "github.com/mwitkow/go-conntrack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mwitkow/go-conntrack";
-      rev = "cc309e4a2223";
-      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.8.0";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v1.0.0";
-      sha256 = "1f03ndyi3jq7zdxinnvzimz3s4z2374r6dikkc8i42xzb6d1bli6";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "fd36f4220a90";
-      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "v0.6.0";
-      sha256 = "1q16br348117ffycxdwsldb0i39p34miclfa8z93k6vjwnrqbh2l";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "v0.0.3";
-      sha256 = "18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.4.2";
-      sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.3.0";
-      sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "v1.20.0";
-      sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
-    };
-  }
-  {
-    goPackagePath = "github.com/xanzy/go-gitlab";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xanzy/go-gitlab";
-      rev = "v0.19.0";
-      sha256 = "0xbn94rb9ihpw1g698xbz9vdl7393z9zbb0lck52nxs838gkr4mb";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "f99c8df09eb5";
-      sha256 = "0jwi6c6366999mnpzwx3a2kr7hzvdx97qfwiphx0r7cy0mpf28hf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "ca1201d0de80";
-      sha256 = "16j9xyby1vfl4ch6wqzafxxxnxvcp8vhzknpchwabci1f2zcsn6i";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev = "0f29369cfe45";
-      sha256 = "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "fc99dfbffb4e";
-      sha256 = "186x8bg926qb9sprs5zpd97xzvvhc2si7q1nhvyg12r5cd6v7zjd";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "d0a3d012864b";
-      sha256 = "1s2jbb94hbcb01hgkd9kzb9js13grj80a72il7467pm57b3rnggg";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.6.1";
-      sha256 = "0zxlvwzxwkwz4bs4h9zc9979dx76y4xf9ks4d22bclg47dv59yry";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "v2.2.6";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.2";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix
index 6a42297d502a..6af1dbffbc88 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix
@@ -2,16 +2,15 @@
 
 buildGoPackage rec {
   pname = "haproxy_exporter";
-  version = "0.8.0";
-  rev = "v${version}";
+  version = "0.12.0";
 
   goPackagePath = "github.com/prometheus/haproxy_exporter";
 
   src = fetchFromGitHub {
-    inherit rev;
+    rev = "v${version}";
     owner = "prometheus";
     repo = "haproxy_exporter";
-    sha256 = "0gx8pq67w71ch3g3c77xaz39msrd9graizc6d3shwabdjx35yc6q";
+    sha256 = "09aqm2zqimn6w10p1nhnpjcigm299b31xfrq8ma0d7z4v9p2y9dn";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
index e6505857bf57..2c08374ec736 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 let
-  version = "0.10";
+  version = "0.15.0";
   jarName = "jmx_prometheus_httpserver-${version}-jar-with-dependencies.jar";
   mavenUrl = "mirror://maven/io/prometheus/jmx/jmx_prometheus_httpserver/${version}/${jarName}";
 in stdenv.mkDerivation {
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = mavenUrl;
-    sha256 = "1pvqphrirq48xhmx0aa6vkxz6qy1cx2q6jxsh7rin432iap7j62f";
+    sha256 = "0fr3svn8kjp7bq1wzbkvv5awylwn8b01bngj04zvk7fpzqpgs7mz";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix
index 796eb065e63c..268cdff93485 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "prometheus-json-exporter";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "prometheus-community";
     repo = "json_exporter";
     rev = "v${version}";
-    sha256 = "1aabvd75a2223x5wnbyryigj7grw6l05jhr3g3s97b1f1hfigz6d";
+    sha256 = "0nhww7pbyqpiikcli1ysqa15d4y76h3jaij1j0sj8i3mhv1nsjz9";
   };
 
-  vendorSha256 = "03kb0gklq08krl7qnvs7267siw1pkyy346b42dsk1d9gr5302wsw";
+  vendorSha256 = "1fiy6x06mqxbv9c4rxfl4q7hvblbzhknkpcp0alz61f3fk5wxsgp";
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) json; };
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix
new file mode 100644
index 000000000000..1f5ff7c02235
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix
@@ -0,0 +1,33 @@
+{ lib, python3Packages, nixosTests }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "kea-exporter";
+  version = "0.4.2";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "0dpzicv0ksyda2lprldkj452c23qycl5c9avca6x7f7rbqry9pnd";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    click
+    prometheus_client
+  ];
+
+  checkPhase = ''
+    $out/bin/kea-exporter --help > /dev/null
+    $out/bin/kea-exporter --version | grep -q ${version}
+  '';
+
+  passthru.tests = {
+    inherit (nixosTests.prometheus-exporters) kea;
+  };
+
+  meta = with lib; {
+    description = "Export Kea Metrics in the Prometheus Exposition Format";
+    homepage = "https://github.com/mweinelt/kea-exporter";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix
index 9d99685b5691..42b6047d3d4f 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/knot-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, lib, python3, nixosTests }:
+{ stdenv, fetchFromGitHub, lib, python3, nixosTests, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "knot-exporter";
@@ -11,6 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-4au4lpaq3jcqC2JXdCcf8h+YN8Nmm4eE0kZwA+1rWlc=";
   };
 
+  patches = [
+    # Fixes a crash with all metrics enabled. See
+    # https://github.com/ghedo/knot_exporter/pull/6 for further context.
+    (fetchpatch {
+      url = "https://github.com/ghedo/knot_exporter/commit/2317476e080369450ae51a707ccd30d4b89d680f.patch";
+      sha256 = "sha256-yEPu8EE1V/draNx9DeMrPj+bMfJRxauweo33dITl4AA=";
+    })
+  ];
+
   dontBuild = true;
 
   nativeBuildInputs = [ python3.pkgs.wrapPython ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter.nix
index 0fa2bced1255..289b8f2403d8 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter.nix
@@ -2,20 +2,17 @@
 
 buildGoPackage rec {
   pname = "mesos_exporter";
-  version = "0.1.0";
-  rev = version;
+  version = "1.1.2";
 
   goPackagePath = "github.com/prometheus/mesos_exporter";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner = "prometheus";
+    rev = "v${version}";
+    owner = "mesos";
     repo = "mesos_exporter";
-    sha256 = "059az73j717gd960g4jigrxnvqrjh9jw1c324xpwaafa0bf10llm";
+    sha256 = "0nvjlpxdhh60wcdw2fdc8h0vn6fxkz0nh7zrx43hjxymvc15ixza";
   };
 
-  goDeps = ./mesos-exporter_deps.nix;
-
   meta = with lib; {
     description = "Export Mesos metrics to Prometheus";
     homepage = "https://github.com/prometheus/mesos_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter_deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter_deps.nix
deleted file mode 100644
index e8fdcc95da2f..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/mesos-exporter_deps.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "59b73b37c1e45995477aae817e4a653c89a858db";
-      sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "fa8ad6fec33561be4280a8f0514318c79d7f6cb6";
-      sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "b965b613227fddccbfffe13eae360ed3fa822f8d";
-      sha256 = "1p8zsj4r0g61q922khfxpwxhdma2dx4xad1m5qx43mfn28kxngqk";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a";
-      sha256 = "0ajg41h6402big484drvm72wvid1af2sffw0qkzbmpy04lq68ahj";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "6dbab8106ed3ed77359ac85d9cf08e30290df864";
-      sha256 = "1i3g5h2ncdb8b67742kfpid7d0a1jas1pyicglbglwngfmzhpkna";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "c91d8eefde16bd047416409eb56353ea84a186e4";
-      sha256 = "0pj3gzw9b58l72w0rkpn03ayssglmqfmyxghhfad6mh0b49dvj3r";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "fca8c8854093a154ff1eb580aae10276ad6b1b5f";
-      sha256 = "1nr2q0vas0a2f395f4shjxqpas18mjsf8yhgndsav7svngpbbpg8";
-    };
-  }
-  {
-    goPackagePath = "bitbucket.org/ww/goautoneg";
-    fetch = {
-      type = "hg";
-      url = "bitbucket.org/ww/goautoneg";
-      rev = "75cd24fc2f2c2a2088577d12123ddee5f54e0675";
-      sha256 = "19khhn5xhqv1yp7d6k987gh5w5rhrjnp4p0c6fyrd8z6lzz5h9qi";
-    };
-  }
-  {
-    goPackagePath = "github.com/antonlindstrom/mesos_stats";
-    fetch = {
-      type = "git";
-      url = "https://github.com/antonlindstrom/mesos_stats";
-      rev = "0c6ea494c19bedc67ebb85ce3d187ec21050e920";
-      sha256 = "18ggyjf4nyn77gkn16wg9krp4dsphgzdgcr3mdflv6mvbr482ar4";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
index ee5bafbc7c9f..65206256194a 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "nginx_exporter";
-  version = "0.8.0";
+  version = "0.9.0";
 
   goPackagePath = "github.com/nginxinc/nginx-prometheus-exporter";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "nginxinc";
     repo = "nginx-prometheus-exporter";
-    sha256 = "sha256-fFzwJXTwtI0NXZYwORRZomj/wADqxW+wvDH49QK0IZw=";
+    sha256 = "04y5vpj2kv2ygdzxy3crpnx4mhpkm1ns2995kxgvjlhnyck7a5rf";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
index fad49d275751..359349c14f4c 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nginxlog_exporter";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "martin-helmich";
     repo = "prometheus-nginxlog-exporter";
     rev = "v${version}";
-    sha256 = "1kqyjw5yqgjb8xa5irdhpqvwp1qhba6igpc23n2qljhbh0aybkbq";
+    sha256 = "0kcwhaf9k7c1xsz78064qz5zb4x3xgi1ifi49qkwiaqrzx2xy26p";
   };
 
-  vendorSha256 = "130hq19y890amxhjywg5blassl8br2p9d62aai8fj839p3p2a7zp";
+  vendorSha256 = "05hisrhlklbs26cgblzfjh6mhaih5asvbll54jngnmwylwjd1mmc";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
index 42ccb91017fc..ea351db83f48 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
@@ -1,23 +1,27 @@
-{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "node_exporter";
-  version = "1.0.1";
+  version = "1.1.2";
   rev = "v${version}";
 
-  goPackagePath = "github.com/prometheus/node_exporter";
-
   src = fetchFromGitHub {
     inherit rev;
     owner = "prometheus";
     repo = "node_exporter";
-    sha256 = "1r0xx81r9v019fl0iv078yl21ndhb356y7s7zx171zi02k7a4p2l";
+    sha256 = "1kz52zhsm0xx63vczzplj15hli4i22qfxl08grb7m50bqk651j1n";
   };
 
+  vendorSha256 = "05lr2ln87902bwamw4l3rrk2j9sdgv1pcvxyvzbga64rymi9dmjb";
+
   # FIXME: tests fail due to read-only nix store
   doCheck = false;
 
-  buildFlagsArray = ''
+  excludedPackages = [ "docs/node-mixin" ];
+
+  buildFlagsArray = let
+    goPackagePath = "github.com/prometheus/node_exporter";
+  in ''
     -ldflags=
         -X ${goPackagePath}/vendor/github.com/prometheus/common/version.Version=${version}
         -X ${goPackagePath}/vendor/github.com/prometheus/common/version.Revision=${rev}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter-deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter-deps.nix
deleted file mode 100644
index 93aae1b867e9..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter-deps.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9";
-      sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "748d386b5c1ea99658fd69fe9f03991ce86a90c1";
-      sha256 = "0xm0is6sj6r634vrfx85ir0gd9h1xxk25fgc5z07zrjp19f5wqp5";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "94ff84a9a6ebb5e6eb9172897c221a64df3443bc";
-      sha256 = "188xwc13ml51i29fhp8bz4a7ncmk0lvdw3nnwr56k2l36pp1swil";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "6f3806018612930941127f2a7c6c453ba2c527d2";
-      sha256 = "1413ibprinxhni51p0755dp57r9wvbw7xgj9nmdaxmhzlqhc86j4";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "3e6a7635bac6573d43f49f97b47eb9bda195dba8";
-      sha256 = "1q4nwm9lf4jd90z08s6gz8j1zzrk2jn9vpw49xdb8mwxmhv13xgm";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "e645f4e5aaa8506fc71d6edbc5c4ff02c04c46f2";
-      sha256 = "18hwygbawbqilz7h8fl25xpbciwalkslb4igqn4cr9d8sqp7d3np";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix
index 021905ba9e00..42a8187214ed 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/openvpn-exporter.nix
@@ -1,20 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "openvpn_exporter-unstable";
-  version = "2017-05-15";
-  rev = "a2a179a222144fa9a10030367045f075375a2803";
-
-  goPackagePath = "github.com/kumina/openvpn_exporter";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "kumina";
     repo = "openvpn_exporter";
-    inherit rev;
-    sha256 = "1cjx7ascf532a20wwzrsx3qqs6dr04jyf700s3jvlvhhhx43l8m4";
+    rev = "v${version}";
+    sha256 = "14m4n5918zimdnyf0yg2948jb1hp1bdf27k07j07x3yrx357i05l";
   };
 
-  goDeps = ./openvpn-exporter-deps.nix;
+  vendorSha256 = "1jgw0nnibydhcd83kp6jqkf41mhwldp8wdhqk0yjw18v9m0p7g5s";
 
   meta = with lib; {
     inherit (src.meta) homepage;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix
new file mode 100644
index 000000000000..e24d0232dfe2
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "pihole-exporter";
+  version = "0.0.11";
+
+  src = fetchFromGitHub {
+    owner = "eko";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-SojEq6pedoq08wo/3zPHex7ex1QqSVIzZpBd49tLOjI=";
+  };
+
+  vendorSha256 = "sha256-LXgI9ioJgyhUiOCqRku0Q4enZF7q6MB0hYhPJlLusdc=";
+
+  meta = with lib; {
+    description = "Prometheus exporter for PI-Hole's Raspberry PI ad blocker";
+    homepage = "https://github.com/eko/pihole-exporter";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix
index a147a3c29055..e4bfed9821b7 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix
@@ -1,24 +1,26 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "process-exporter";
-  version = "0.7.1";
-
-  goPackagePath = "github.com/ncabatoff/process-exporter";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "ncabatoff";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jkh4xzjlrlabpll3igpyhqs35f1dxifjkbfxvijjcq9yahxfj0x";
+    sha256 = "0v1q8mi8p01smzfxaf52kbqnjz9fx4rp64jqhgbcx0s45q3bph9l";
   };
 
+  vendorSha256 = "19y2w1vplf7qqkzcpi01ssawv9badhwpglh2gz69fgl6xc3mxfmp";
+
   postPatch = ''
     substituteInPlace proc/read_test.go --replace /bin/cat cat
   '';
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) process; };
+
   meta = with lib; {
     description = "Prometheus exporter that mines /proc to report on selected processes";
     homepage = "https://github.com/ncabatoff/process-exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix
index a370bf1f2488..c02943193702 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix
@@ -1,20 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "prom2json";
-  version = "0.1.0";
-  rev = version;
-
-  goPackagePath = "github.com/prometheus/prom2json";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
-    inherit rev;
+    rev = "v${version}";
     owner = "prometheus";
     repo = "prom2json";
-    sha256 = "0wwh3mz7z81fwh8n78sshvj46akcgjhxapjgfic5afc4nv926zdl";
+    sha256 = "09glf7br1a9k6j2hs94l2k4mlmlckdz5c9v6qg618c2nd4rk1mz6";
   };
 
-  goDeps = ./prom2json_deps.nix;
+  vendorSha256 = null;
 
   meta = with lib; {
     description = "Tool to scrape a Prometheus client and dump the result as JSON";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json_deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json_deps.nix
deleted file mode 100644
index 20cabe3d3857..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json_deps.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "59b73b37c1e45995477aae817e4a653c89a858db";
-      sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "fa8ad6fec33561be4280a8f0514318c79d7f6cb6";
-      sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a";
-      sha256 = "0ajg41h6402big484drvm72wvid1af2sffw0qkzbmpy04lq68ahj";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "6dbab8106ed3ed77359ac85d9cf08e30290df864";
-      sha256 = "1i3g5h2ncdb8b67742kfpid7d0a1jas1pyicglbglwngfmzhpkna";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix
index 81240072d42d..5b0b308c5ec5 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "promscale";
-  version = "0.3.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = pname;
     rev = version;
-    sha256 = "sha256-kZYFOuY6FFM35mP+o/YU5SM5H9ziOq9BQ8T1RX7rhGE=";
+    sha256 = "sha256-RdhsQtrD+I8eAgFNr1hvW83Ho22aNhWBX8crCM0b8jU=";
   };
 
-  vendorSha256 = "sha256-1VOhDOfFE4BpDR4XfhLoXJFuTDkG1nx88tVvTF3ZVxU=";
+  vendorSha256 = "sha256-82E82O0yaLbu+oSTX7AQoYXFYy3wYVdBCevV7pHZVOA=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/timescale/promscale/pkg/version.Version=${version} -X github.com/timescale/promscale/pkg/version.CommitHash=${src.rev}" ];
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix
index b7832395f626..ff89469c2ead 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix
@@ -1,19 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "rabbitmq_exporter";
-  version = "1.0.0-RC7.1";
-
-  goPackagePath = "github.com/kbudde/rabbitmq_exporter";
+  version = "1.0.0-RC8";
 
   src = fetchFromGitHub {
     owner = "kbudde";
     repo = "rabbitmq_exporter";
     rev = "v${version}";
-    sha256 = "5Agg99yHBMgpWGD6Nk+WvAorRc7j2PGD+3z7nO3N/5s=";
+    sha256 = "162rjp1j56kcq0vdi0ch09ka101zslxp684x6jvw0jq0aix4zj3r";
   };
 
-  goDeps = ./rabbitmq-exporter_deps.nix;
+  vendorSha256 = "1cvdqf5pdwczhqz6xb6w86h7gdr0l8fc3lav88xq26r4x75cm6v0";
 
   meta = with lib; {
     description = "Prometheus exporter for RabbitMQ";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter_deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter_deps.nix
deleted file mode 100644
index 901edfaf6d97..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter_deps.nix
+++ /dev/null
@@ -1,793 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/nix-community/vgo2nix)
-[
-  {
-    goPackagePath = "bazil.org/fuse";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bazil/fuse";
-      rev = "371fbbdaa898";
-      sha256 = "1x5p301py7mcxgwklfm6pqqkzssln0nfzllng49pnk60m03ilp4w";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/go-ansiterm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-ansiterm";
-      rev = "d6e3b3328b78";
-      sha256 = "010khrkhkf9cxlvvb6ncqv4c1qcdmpbz9jn38g4fxf4xsma8xx1q";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/Microsoft/go-winio";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Microsoft/go-winio";
-      rev = "v0.4.14";
-      sha256 = "0n34wi9l9ks2z3cz97j30ljfmqppwf1zxr16hwbnswyrk54fcxm3";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/Nvveen/Gotty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Nvveen/Gotty";
-      rev = "cd527374f1e5";
-      sha256 = "1ylvr1p6p036ns3g3wdz8f92f69symshkc8j54fa6gpg4hyk0k6q";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a751";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "c3de453c63f4";
-      sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "v1.0.1";
-      sha256 = "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/cenkalti/backoff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cenkalti/backoff";
-      rev = "v2.2.1";
-      sha256 = "1mf4lsl3rbb8kk42x0mrhzzy4ikqy0jf6nxpzhkr02rdgwh6rjk8";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/cenkalti/backoff/v3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cenkalti/backoff";
-      rev = "v3.2.2";
-      sha256 = "01h52k1sl6drabm3fgd4yy1iwbz06wcbbh16zd6v4wi7slabma9m";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/cespare/xxhash/v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cespare/xxhash";
-      rev = "v2.1.1";
-      sha256 = "0rl5rs8546zj1vzggv38w93wx0b5dvav7yy5hzxa8kw7iikv1cgr";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/containerd/continuity";
-    fetch = {
-      type = "git";
-      url = "https://github.com/containerd/continuity";
-      rev = "d3ef23f19fbb";
-      sha256 = "0k5838j54ymqpg0dffr8k4vh992my9zlqrplx4syms09r9z9vap9";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/docker/go-connections";
-    fetch = {
-      type = "git";
-      url = "https://github.com/docker/go-connections";
-      rev = "v0.4.0";
-      sha256 = "0mv6f6b5nljc17dmwmc28hc0y11pqglz7x0d2mjrwdmfxf64hwqq";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/docker/go-units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/docker/go-units";
-      rev = "v0.4.0";
-      sha256 = "0k8gja8ql4pqg5rzmqvka42vjfs6rzablak87whcnqba6qxpimvz";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev = "bb3d318650d4";
-      sha256 = "1lqd8ix3cb164j5iazjby2jpa6bdsflhy0h9mi4yldvvcvrc194c";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "v1.0.0";
-      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.9.0";
-      sha256 = "09038mnw705h7isbjp8dzgp2i04bp5rqkmifxvwc5xkh75s00qpw";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.4.0";
-      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-stack/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-stack/stack";
-      rev = "v1.8.0";
-      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "v1.1.1";
-      sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.4.0";
-      sha256 = "1fjvl5n77abxz5qsd4mgyvjq19x43c5bfvmq62mq3m5plx6zksc8";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.4.0";
-      sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/gofuzz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/gofuzz";
-      rev = "v1.0.0";
-      sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/gotestyourself/gotestyourself";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gotestyourself/gotestyourself";
-      rev = "v2.2.0";
-      sha256 = "0yif3gdyckmf8i54jq0xn00kflla5rhib9sarw66ngnbl7bn9kyl";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/hpcloud/tail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hpcloud/tail";
-      rev = "v1.0.0";
-      sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev = "v1.1.9";
-      sha256 = "0pkn2maymgl9v6vmq9q1si8xr5bbl88n6981y0lx09px6qxb29qx";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "v1.2.0";
-      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kbudde/gobert";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kbudde/gobert";
-      rev = "77f4c9cb2e7e";
-      sha256 = "1d2m4b0pxswqhkjpbql3kbb9fjvyys4b9cpmhb9iwkcmnq3n8x91";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.2";
-      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kylelemons/godebug";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kylelemons/godebug";
-      rev = "v1.1.0";
-      sha256 = "0dkk3friykg8p6wgqryx6745ahhb9z1j740k7px9dac6v5xjp78c";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/lib/pq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lib/pq";
-      rev = "v1.0.0";
-      sha256 = "1zqnnyczaf00xi6xh53vq758v5bdlf0iz7kf22l02cal4i6px47i";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/concurrent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/concurrent";
-      rev = "bacd9c7ef1dd";
-      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/reflect2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/reflect2";
-      rev = "v1.0.1";
-      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mwitkow/go-conntrack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mwitkow/go-conntrack";
-      rev = "cc309e4a2223";
-      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev = "v1.10.1";
-      sha256 = "033a42h1wzmji57p86igg9whvsbp6nvfdsypskw738ys903n3z4d";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev = "v1.7.0";
-      sha256 = "09j6wq425wgzzsbwm9ckhfgl2capv3yyqbrf45qyrjwkzm49i02y";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/opencontainers/go-digest";
-    fetch = {
-      type = "git";
-      url = "https://github.com/opencontainers/go-digest";
-      rev = "v1.0.0-rc1";
-      sha256 = "01gc7fpn8ax429024p2fcx3yb18axwz5bjf2hqxlii1jbsgw4bh9";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/opencontainers/image-spec";
-    fetch = {
-      type = "git";
-      url = "https://github.com/opencontainers/image-spec";
-      rev = "v1.0.1";
-      sha256 = "03dvbj3dln8c55v9gp79mgmz2yi2ws3r08iyz2fk41y3i22iaw1q";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/opencontainers/runc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/opencontainers/runc";
-      rev = "v1.0.0-rc9";
-      sha256 = "1ss5b46cbbckyqlwgj8dbd5l59c5y0kp679hcpc0ybaj53pmwxj7";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/ory/dockertest";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ory/dockertest";
-      rev = "v3.3.5";
-      sha256 = "0fgj60l82sl6chd7i4s7lxqjr9hxkzmkaxnc8h6qbvn42246sy68";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/ory/dockertest/v3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ory/dockertest";
-      rev = "v3.6.0";
-      sha256 = "1l4czdb532rl1qjjh1ad00h1686dz9h9bg1kmmpyjfm4ggckndyw";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.9.1";
-      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v1.5.1";
-      sha256 = "0nkhjpwpqr3iz2jsqrl37qkj1g4i8jvi5smgbvhxcpyinjj00067";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "v0.2.0";
-      sha256 = "0jffnz94d6ff39fr96b5w8i8yk26pwnrfggzz8jhi8k0yihg2c9d";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "v0.9.1";
-      sha256 = "12pyywb02p7d30ccm41mwn69qsgqnsgv1w9jlqrrln2f1svnbqch";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "v0.0.11";
-      sha256 = "1msc8bfywsmrgr2ryqjdqwkxiz1ll08r3qgvaka2507z1wpcpj2c";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.5.0";
-      sha256 = "02s74gxzlzr982avw7vbfjkj696hyhklx1ikmmjiqp3z1l8hkghk";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "2da4a54c5cee";
-      sha256 = "18qbrp774fx6dyibjcy9snld705gslq6z2sql1biyjahxkm1vpfy";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.3";
-      sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/streadway/amqp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/streadway/amqp";
-      rev = "1c71cc93ed71";
-      sha256 = "0k740vmzkdv9il201x4mj0md73w30jqlmn1q7m1ng3dmi635qrlr";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.4.0";
-      sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/tkanos/gonfig";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tkanos/gonfig";
-      rev = "896f3d81fadf";
-      sha256 = "1wcyq3vlfp12zsnnv1gpycqgzvq3nk8pvcabni6wxxyk3350d43m";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c2843e01d9a2";
-      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "d3edc9973b7e";
-      sha256 = "12zbjwcsh9b0lwycqlkrnbyg5a6a9dzgj8hhgq399bdda5bd97y7";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "cd5d95a43a6e";
-      sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "1957bb5e6d1f";
-      sha256 = "0imqk4l9785rw7ddvywyf8zn7k3ga6f17ky8rmf8wrri7nknr03f";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "a101b041ded4";
-      sha256 = "1pm50dybm5wixjjspvfpafjmiy81b1zp08h13gxc5cylrfgncrfl";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "9bdfabe68543";
-      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/protobuf";
-      rev = "v1.21.0";
-      sha256 = "12bwln8z1lf9105gdp6ip0rx741i4yfz1520gxnp8861lh9wcl63";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/airbrake/gobrake.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/airbrake/gobrake.v2";
-      rev = "v2.0.9";
-      sha256 = "1x06f7n7qlyzqgyz0sdfcidf3w4ldn6zs6qx2mhibggk2z4whcjw";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "v2.2.6";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "41f04d3bba15";
-      sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/gemnasium/logrus-airbrake-hook.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/gemnasium/logrus-airbrake-hook.v2";
-      rev = "v2.1.2";
-      sha256 = "0sbg0dn6cysmf8f2bi209jwl4jnpiwp4rdghnxlzirw3c32ms5y5";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/ory-am/dockertest.v3";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/ory-am/dockertest.v3";
-      rev = "v3.3.5";
-      sha256 = "0fgj60l82sl6chd7i4s7lxqjr9hxkzmkaxnc8h6qbvn42246sy68";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/tomb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/tomb.v1";
-      rev = "dd632973f1e7";
-      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.8";
-      sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gotest.tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gotestyourself/gotest.tools";
-      rev = "v2.2.0";
-      sha256 = "0yif3gdyckmf8i54jq0xn00kflla5rhib9sarw66ngnbl7bn9kyl";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gotest.tools/v3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gotestyourself/gotest.tools";
-      rev = "v3.0.2";
-      sha256 = "0cap2aq2wphnbkkzkck5zdjxb64q3jqxfwpkgqys7279rbr8cvjm";
-      moduleDir = "";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
index 34c058d5d6cd..a2636d9f7147 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
@@ -1,19 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "redis_exporter";
-  version = "1.7.0";
-
-  goPackagePath = "github.com/oliver006/redis_exporter";
+  version = "1.23.1";
 
   src = fetchFromGitHub {
     owner = "oliver006";
     repo = "redis_exporter";
     rev = "v${version}";
-    sha256 = "0rwaxpylividyxz0snfgck32kvpgjkhg20bmdnlp35cdzxcxi8m1";
+    sha256 = "0hlzxmc3jnmbym7by89bb73nlr0gw1xj8d88x10zx55kry7p0jfn";
   };
 
-  goDeps = ./redis-exporter-deps.nix;
+  vendorSha256 = "11237959ikd7l5glkhfz0g55mbld2hq985b5crwb9bnimaly5lga";
 
   buildFlagsArray = ''
     -ldflags=
@@ -22,6 +20,9 @@ buildGoPackage rec {
        -X main.BuildDate=unknown
   '';
 
+  # needs a redis server
+  doCheck = false;
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) redis; };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix
new file mode 100644
index 000000000000..d0806b6c5fa4
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "script_exporter";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "adhocteam";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "t/xgRalcHxEcT1peU1ePJUItD02rQdfz1uWpXDBo6C0=";
+  };
+
+  vendorSha256 = "Hs1SNpC+t1OCcoF3FBgpVGkhR97ulq6zYhi8BQlgfVc=";
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) script; };
+
+  meta = with lib; {
+    description = "Shell script prometheus exporter";
+    homepage = "https://github.com/adhocteam/script_exporter";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Flakebi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
index d21ddcf56472..b998e1d24c6c 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
@@ -1,8 +1,8 @@
 { lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
 let
-  baseVersion = "0.3.1";
-  commit = "9ba85274dcc21bf8132cbe3b3dccfcb4aab57d9f";
+  baseVersion = "0.4.2";
+  commit = "722200c4adbd6d1e5d847dfbbd9dec07aa4ca38d";
 in
 buildGoModule rec {
   pname = "smokeping_prober";
@@ -24,9 +24,9 @@ buildGoModule rec {
     rev = commit;
     owner = "SuperQ";
     repo = "smokeping_prober";
-    sha256 = "sha256:19596di2gzcvlcwiypsncq4zwbyb6d1r6wxsfi59wax3423i7ndg";
+    sha256 = "1lpcjip6qxhalldgm6i2kgbajfqy3vwfyv9jy0jdpii13lv6mzlz";
   };
-  vendorSha256 = "sha256:1b2v3v3kn0m7dvjxbs8q0gw6zingksdqhm5g1frx0mymqk0lg889";
+  vendorSha256 = "0p2jmlxpvpaqc445j39b4z4i3mnjrm25khv3sq6ylldcgfd31vz8";
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
index ece22e496d12..effb2ab90792 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
@@ -1,18 +1,18 @@
-{ lib, buildGoPackage, fetchFromGitHub, net-snmp, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, net-snmp, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "snmp_exporter";
-  version = "0.19.0";
-
-  goPackagePath = "github.com/prometheus/snmp_exporter";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "prometheus";
     repo = "snmp_exporter";
     rev = "v${version}";
-    sha256 = "1ppi5lmc2lryawpw1b3kpg3qxr7v62zbiwg2v1d8sq1y5b2xdza6";
+    sha256 = "0qwbnx3l25460qbah4ik9mlcyrm31rwm51451gh0jprii80cf16x";
   };
 
+  vendorSha256 = "1rivil3hwk269ikrwc4i22k2y5c9zs5ac058y7llz8ivrrjr2w4h";
+
   buildInputs = [ net-snmp ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix
index 31bd583280cc..51fb56382dfc 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix
@@ -1,19 +1,18 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "statsd_exporter";
-  version = "0.9.0";
-  rev = version;
-
-  goPackagePath = "github.com/prometheus/statsd_exporter";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "statsd_exporter";
-    sha256 = "0bgi00005j41p650rb6n1iz2w9m4p22d1w91f2hwlh5bqxf55al3";
+    sha256 = "1k98dmjn2mfwg36khpbxg7yk6rn4sk4v264i4rmqs4v8gss2h3kn";
   };
 
+  vendorSha256 = "1fihbchl5g5z9xrca68kaq26l674chcby634k8iz5h31dai8hpyh";
+
   meta = with lib; {
     description = "Receives StatsD-style metrics and exports them to Prometheus";
     homepage = "https://github.com/prometheus/statsd_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
new file mode 100644
index 000000000000..c7c8f3e5963a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, openssl, pkg-config, nixosTests, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "unbound-telemetry";
+  version = "unstable-2021-03-17";
+
+  src = fetchFromGitHub {
+    owner = "svartalf";
+    repo = pname;
+    rev = "7f1b6d4e9e4b6a3216a78c23df745bcf8fc84021";
+    sha256 = "xCelL6WGaTRhDJkkUdpdwj1zcKKAU2dyUv3mHeI4oAw=";
+  };
+
+  cargoSha256 = "sha256-P3nAtYOuwNSLMP7q1L5zKTsZ6rJA/qL1mhVHzP3szi4=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ]
+    ++ lib.optional stdenv.isDarwin Security;
+
+  passthru.tests = {
+    inherit (nixosTests.prometheus-exporters) unbound;
+  };
+
+  meta = with lib; {
+    description = "Prometheus exporter for Unbound DNS resolver";
+    homepage = "https://github.com/svartalf/unbound-telemetry";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
index c94be3490fa7..27eb3721c95d 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "prometheus_varnish_exporter";
-  version = "unstable-2020-03-26";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "jonnenauha";
     repo = "prometheus_varnish_exporter";
-    rev = "f0f90fc69723de8b716cda16cb419e8a025130ff";
-    sha256 = "1viiiyvhpr7cnf8ykaaq4fzgg9xvn4hnlhv7cagy3jkjlmz60947";
+    rev = version;
+    sha256 = "1cp7c1w237r271m8b1y8pj5jy7j2iadp4vbislxfyp4kga9i4dcc";
   };
 
-  vendorSha256 = "1h9iz3sbz02hb8827hcssqlfg2ag3ymq38siffw9wzajslzhp9sx";
+  vendorSha256 = "1cslg29l9mmyhpdz14ca9m18iaz4hhznplz8fmi3wa3l8r7ih751";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json
index 3c4c3eb8568f..d46aeaa5dca0 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json
@@ -3,27 +3,30 @@
   "version": "0.1.0",
   "private": true,
   "dependencies": {
+    "@codemirror/autocomplete": "^0.18.3",
+    "@codemirror/closebrackets": "^0.18.0",
+    "@codemirror/commands": "^0.18.0",
+    "@codemirror/comment": "^0.18.0",
+    "@codemirror/highlight": "^0.18.3",
+    "@codemirror/history": "^0.18.0",
+    "@codemirror/language": "^0.18.0",
+    "@codemirror/lint": "^0.18.1",
+    "@codemirror/matchbrackets": "^0.18.0",
+    "@codemirror/search": "^0.18.2",
+    "@codemirror/state": "^0.18.2",
+    "@codemirror/view": "^0.18.3",
+    "@forevolve/bootstrap-dark": "^1.0.0",
     "@fortawesome/fontawesome-svg-core": "^1.2.14",
     "@fortawesome/free-solid-svg-icons": "^5.7.1",
     "@fortawesome/react-fontawesome": "^0.1.4",
     "@reach/router": "^1.2.1",
-    "@testing-library/react-hooks": "^3.1.1",
-    "@types/jest": "^26.0.10",
-    "@types/jquery": "^3.5.1",
-    "@types/node": "^12.11.1",
-    "@types/reach__router": "^1.2.6",
-    "@types/react": "^16.8.2",
-    "@types/react-copy-to-clipboard": "^4.3.0",
-    "@types/react-dom": "^16.8.0",
-    "@types/react-resize-detector": "^4.2.0",
-    "@types/sanitize-html": "^1.20.2",
-    "bootstrap": "^4.2.1",
+    "bootstrap": "^4.6.0",
+    "codemirror-promql": "^0.15.0",
     "css.escape": "^1.5.1",
     "downshift": "^3.4.8",
     "enzyme-to-json": "^3.4.3",
     "fuzzy": "^0.1.3",
     "i": "^0.3.6",
-    "jest-fetch-mock": "^3.0.3",
     "jquery": "^3.5.1",
     "jquery.flot.tooltip": "^0.9.0",
     "jsdom": "^16.4.0",
@@ -34,13 +37,15 @@
     "react-copy-to-clipboard": "^5.0.1",
     "react-dom": "^16.7.0",
     "react-resize-detector": "^5.0.7",
-    "react-scripts": "3.4.3",
+    "react-scripts": "3.4.4",
     "react-test-renderer": "^16.9.0",
-    "reactstrap": "^8.0.1",
-    "sanitize-html": "^1.20.1",
+    "reactstrap": "^8.9.0",
+    "sanitize-html": "^2.3.3",
+    "sass": "1.32.10",
     "tempusdominus-bootstrap-4": "^5.1.2",
     "tempusdominus-core": "^5.0.3",
-    "typescript": "^3.3.3"
+    "typescript": "^3.3.3",
+    "use-media": "^1.4.0"
   },
   "scripts": {
     "start": "react-scripts start",
@@ -63,11 +68,21 @@
     "not op_mini all"
   ],
   "devDependencies": {
+    "@testing-library/react-hooks": "^3.1.1",
     "@types/enzyme": "^3.10.3",
     "@types/enzyme-adapter-react-16": "^1.0.5",
     "@types/flot": "0.0.31",
+    "@types/jest": "^26.0.10",
+    "@types/jquery": "^3.5.1",
     "@types/moment-timezone": "^0.5.10",
-    "@types/reactstrap": "^8.0.5",
+    "@types/node": "^12.11.1",
+    "@types/reach__router": "^1.2.6",
+    "@types/react": "^16.8.2",
+    "@types/react-copy-to-clipboard": "^5.0.0",
+    "@types/react-dom": "^16.8.0",
+    "@types/react-resize-detector": "^5.0.0",
+    "@types/reactstrap": "^8.7.2",
+    "@types/sanitize-html": "^1.20.2",
     "@types/sinon": "^9.0.4",
     "@typescript-eslint/eslint-plugin": "2.x",
     "@typescript-eslint/parser": "2.x",
@@ -83,6 +98,7 @@
     "eslint-plugin-react": "7.x",
     "eslint-plugin-react-hooks": "2.x",
     "jest-fetch-mock": "^3.0.3",
+    "mutationobserver-shim": "^0.3.7",
     "prettier": "^1.18.2",
     "sinon": "^9.0.3"
   },
@@ -90,6 +106,9 @@
   "jest": {
     "snapshotSerializers": [
       "enzyme-to-json/serializer"
+    ],
+    "transformIgnorePatterns": [
+      "/node_modules/(?!codemirror-promql).+(js|jsx)$"
     ]
   }
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
index 8475e7533b0e..496d2fff4ae1 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
@@ -10,19 +10,19 @@
       };
     }
     {
-      name = "_babel_code_frame___code_frame_7.10.4.tgz";
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
-        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
-      name = "_babel_compat_data___compat_data_7.12.5.tgz";
+      name = "_babel_compat_data___compat_data_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_compat_data___compat_data_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.5.tgz";
-        sha1 = "f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9";
+        name = "_babel_compat_data___compat_data_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz";
+        sha1 = "a901128bce2ad02565df95e6ecbf195cf9465919";
       };
     }
     {
@@ -34,187 +34,163 @@
       };
     }
     {
-      name = "_babel_core___core_7.12.3.tgz";
+      name = "_babel_core___core_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.12.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz";
-        sha1 = "1b436884e1e3bff6fb1328dc02b208759de92ad8";
+        name = "_babel_core___core_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.14.0.tgz";
+        sha1 = "47299ff3ec8d111b493f1a9d04bf88c04e728d88";
       };
     }
     {
-      name = "_babel_generator___generator_7.12.5.tgz";
+      name = "_babel_generator___generator_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz";
-        sha1 = "a2c50de5c8b6d708ab95be5e6053936c1884a4de";
+        name = "_babel_generator___generator_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.1.tgz";
+        sha1 = "1f99331babd65700183628da186f36f63d615c93";
       };
     }
     {
-      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.4.tgz";
+      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
-        sha1 = "5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3";
+        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz";
+        sha1 = "0f58e86dfc4bb3b1fcd7db806570e177d439b6ab";
       };
     }
     {
-      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.4.tgz";
+      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
-        sha1 = "bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3";
+        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz";
+        sha1 = "6bc20361c88b0a74d05137a65cac8d3cbf6f61fc";
       };
     }
     {
-      name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.12.4.tgz";
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.13.16.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.12.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz";
-        sha1 = "55fc1ead5242caa0ca2875dcb8eed6d311e50f48";
+        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.13.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz";
+        sha1 = "6e91dccf15e3f43e5556dffe32d860109887563c";
       };
     }
     {
-      name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.10.4.tgz";
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz";
-        sha1 = "8095cddbff858e6fa9c326daee54a2f2732c1d5d";
+        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz";
+        sha1 = "1fe11b376f3c41650ad9fedc665b0068722ea76c";
       };
     }
     {
-      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.12.5.tgz";
+      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.17.tgz";
       path = fetchurl {
-        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz";
-        sha1 = "cb470c76198db6a24e9dbc8987275631e5d29831";
+        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz";
+        sha1 = "a2ac87e9e319269ac655b8d4415e94d38d663cb7";
       };
     }
     {
-      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.12.1.tgz";
+      name = "_babel_helper_define_polyfill_provider___helper_define_polyfill_provider_0.2.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz";
-        sha1 = "3c45998f431edd4a9214c5f1d3ad1448a6137f6e";
+        name = "_babel_helper_define_polyfill_provider___helper_define_polyfill_provider_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz";
+        sha1 = "a640051772045fedaaecc6f0c6c69f02bdd34bf1";
       };
     }
     {
-      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.1.tgz";
+      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz";
-        sha1 = "18b1302d4677f9dc4740fe8c9ed96680e29d37e8";
+        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz";
+        sha1 = "17b5c59ff473d9f956f40ef570cf3a76ca12657f";
       };
     }
     {
-      name = "_babel_helper_define_map___helper_define_map_7.10.5.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_define_map___helper_define_map_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
-        sha1 = "b53c10db78a640800152692b13393147acb9bb30";
+        name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
       };
     }
     {
-      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.12.1.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz";
-        sha1 = "8006a466695c4ad86a2a5f2fb15b5f2c31ad5633";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.13.16.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.13.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz";
+        sha1 = "1b1651249e94b51f8f0d33439843e33e39775b30";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
-        sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz";
+        sha1 = "dfe368f26d426a07299d8d6513821768216e6d72";
       };
     }
     {
-      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.4.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
-        sha1 = "d49b001d1d5a68ca5e6604dda01a6297f7c9381e";
+        name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
+        sha1 = "c6a369a6f3621cb25da014078684da9196b61977";
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.1.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz";
-        sha1 = "fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz";
+        sha1 = "8fcf78be220156f22633ee204ea81f73f826a8ad";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.12.5.tgz";
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz";
-        sha1 = "1bfc0229f794988f76ed0a4d4e90860850b54dfb";
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz";
-        sha1 = "7954fec71f5b32c48e4b303b437c34453fd7247c";
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
+        sha1 = "806526ce125aed03373bc416a828321e3a6a33af";
       };
     }
     {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
+      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
-        sha1 = "50dc96413d594f995a77905905b05893cd779673";
+        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz";
+        sha1 = "376a760d9f7b4b2077a9dd05aa9c3927cadb2209";
       };
     }
     {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
-        sha1 = "2f75a831269d4f677de49986dff59927533cf375";
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz";
+        sha1 = "6442f4c1ad912502481a564a7386de0c77ff3804";
       };
     }
     {
-      name = "_babel_helper_regex___helper_regex_7.10.5.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
-        sha1 = "32dfbb79899073c415557053a19bd055aae50ae0";
-      };
-    }
-    {
-      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz";
-        sha1 = "8c4dbbf916314f6047dc05e6a2217074238347fd";
-      };
-    }
-    {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz";
-        sha1 = "f009a17543bbbbce16b06206ae73b63d3fca68d9";
-      };
-    }
-    {
-      name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz";
-        sha1 = "32427e5aa61547d38eb1e6eaf5fd1426fdad9136";
+        name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
+        sha1 = "dd6c538afb61819d205a012c31792a39c7a5eaf6";
       };
     }
     {
@@ -226,67 +202,75 @@
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
+      };
+    }
+    {
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
-        sha1 = "f8a491244acf6a676158ac42072911ba83ad099f";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha1 = "d26cad8a47c65286b15df1547319a5d0bcf27288";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+      name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+        name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha1 = "d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831";
       };
     }
     {
-      name = "_babel_helper_validator_option___helper_validator_option_7.12.1.tgz";
+      name = "_babel_helper_wrap_function___helper_wrap_function_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_option___helper_validator_option_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz";
-        sha1 = "175567380c3e77d60ff98a54bb015fe78f2178d9";
+        name = "_babel_helper_wrap_function___helper_wrap_function_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz";
+        sha1 = "bdb5c66fda8526ec235ab894ad53a1235c79fcc4";
       };
     }
     {
-      name = "_babel_helper_wrap_function___helper_wrap_function_7.12.3.tgz";
+      name = "_babel_helpers___helpers_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_wrap_function___helper_wrap_function_7.12.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz";
-        sha1 = "3332339fc4d1fbbf1c27d7958c27d34708e990d9";
+        name = "_babel_helpers___helpers_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz";
+        sha1 = "ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62";
       };
     }
     {
-      name = "_babel_helpers___helpers_7.12.5.tgz";
+      name = "_babel_highlight___highlight_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz";
-        sha1 = "1a1ba4a768d9b58310eda516c449913fe647116e";
+        name = "_babel_highlight___highlight_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha1 = "3197e375711ef6bf834e67d0daec88e4f46113cf";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_parser___parser_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_parser___parser_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.1.tgz";
+        sha1 = "1bd644b5db3f5797c4479d89ec1817fe02b84c47";
       };
     }
     {
-      name = "_babel_parser___parser_7.12.5.tgz";
+      name = "_babel_plugin_bugfix_v8_spread_parameters_in_optional_chaining___plugin_bugfix_v8_spread_parameters_in_optional_chaining_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz";
-        sha1 = "b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0";
+        name = "_babel_plugin_bugfix_v8_spread_parameters_in_optional_chaining___plugin_bugfix_v8_spread_parameters_in_optional_chaining_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz";
+        sha1 = "a3484d84d0b549f3fc916b99ee4783f26fabad2a";
       };
     }
     {
-      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.12.1.tgz";
+      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.13.15.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz";
-        sha1 = "dc6c1170e27d8aca99ff65f4925bd06b1c90550e";
+        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.13.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz";
+        sha1 = "80e549df273a3b3050431b148c892491df1bcc5b";
       };
     }
     {
@@ -298,11 +282,19 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.12.1.tgz";
+      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz";
-        sha1 = "a082ff541f2a29a4821065b8add9346c0c16e5de";
+        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
+        sha1 = "146376000b94efd001e57a40a88a525afaab9f37";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_class_static_block___plugin_proposal_class_static_block_7.13.11.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_class_static_block___plugin_proposal_class_static_block_7.13.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz";
+        sha1 = "6fcbba4a962702c17e5371a0c7b39afde186d703";
       };
     }
     {
@@ -314,35 +306,35 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.12.1.tgz";
+      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz";
-        sha1 = "43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc";
+        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz";
+        sha1 = "876a1f6966e1dec332e8c9451afda3bebcdf2e1d";
       };
     }
     {
-      name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.1.tgz";
+      name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz";
-        sha1 = "8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4";
+        name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz";
+        sha1 = "393be47a4acd03fa2af6e3cde9b06e33de1b446d";
       };
     }
     {
-      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.12.1.tgz";
+      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz";
-        sha1 = "d45423b517714eedd5621a9dfdc03fa9f4eb241c";
+        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz";
+        sha1 = "bf1fb362547075afda3634ed31571c5901afef7b";
       };
     }
     {
-      name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.12.1.tgz";
+      name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz";
-        sha1 = "f2c490d36e1b3c9659241034a5d2cd50263a2751";
+        name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz";
+        sha1 = "93fa78d63857c40ce3c8c3315220fd00bfbb4e1a";
       };
     }
     {
@@ -354,11 +346,11 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.12.1.tgz";
+      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz";
-        sha1 = "3ed4fff31c015e7f3f1467f190dbe545cd7b046c";
+        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz";
+        sha1 = "3730a31dafd3c10d8ccd10648ed80a2ac5472ef3";
       };
     }
     {
@@ -370,27 +362,27 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.5.tgz";
+      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz";
-        sha1 = "b1ce757156d40ed79d59d467cb2b154a5c4149ba";
+        name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz";
+        sha1 = "bd9da3188e787b5120b4f9d465a8261ce67ed1db";
       };
     }
     {
-      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.12.1.tgz";
+      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz";
-        sha1 = "def9bd03cea0f9b72283dac0ec22d289c7691069";
+        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz";
+        sha1 = "5d210a4d727d6ce3b18f9de82cc99a3964eed60a";
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.12.1.tgz";
+      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz";
-        sha1 = "ccc2421af64d3aae50b558a71cede929a5ab2942";
+        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz";
+        sha1 = "3ad6bd5901506ea996fc31bdcf3ccfa2bed71107";
       };
     }
     {
@@ -402,27 +394,35 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.12.1.tgz";
+      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz";
+        sha1 = "ba9feb601d422e0adea6760c2bd6bbb7bfec4866";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz";
-        sha1 = "cce122203fc8a32794296fc377c6dedaf4363797";
+        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz";
+        sha1 = "04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787";
       };
     }
     {
-      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.12.1.tgz";
+      name = "_babel_plugin_proposal_private_property_in_object___plugin_proposal_private_property_in_object_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz";
-        sha1 = "86814f6e7a21374c980c10d38b4493e703f4a389";
+        name = "_babel_plugin_proposal_private_property_in_object___plugin_proposal_private_property_in_object_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz";
+        sha1 = "b1a1f2030586b9d3489cc26179d2eb5883277636";
       };
     }
     {
-      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.1.tgz";
+      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz";
-        sha1 = "2a183958d417765b9eae334f47758e5d6a82e072";
+        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz";
+        sha1 = "bebde51339be829c17aaaaced18641deb62b39ba";
       };
     }
     {
@@ -434,19 +434,27 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.1.tgz";
+      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz";
-        sha1 = "bcb297c5366e79bebadef509549cd93b04f19978";
+        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz";
+        sha1 = "b5c987274c4a3a82b89714796931a6b53544ae10";
       };
     }
     {
-      name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.1.tgz";
+      name = "_babel_plugin_syntax_class_static_block___plugin_syntax_class_static_block_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz";
-        sha1 = "81a8b535b284476c41be6de06853a8802b98c5dd";
+        name = "_babel_plugin_syntax_class_static_block___plugin_syntax_class_static_block_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz";
+        sha1 = "8e3d674b0613e67975ceac2776c97b60cafc5c9c";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz";
+        sha1 = "fac829bf3c7ef4a1bc916257b403e58c6bdaf648";
       };
     }
     {
@@ -466,11 +474,11 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.12.1.tgz";
+      name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.1.tgz";
-        sha1 = "a77670d9abe6d63e8acadf4c31bb1eb5a506bbdd";
+        name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz";
+        sha1 = "5df9962503c0a9c918381c929d51d4d6949e7e86";
       };
     }
     {
@@ -482,11 +490,11 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.1.tgz";
+      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz";
-        sha1 = "9d9d357cc818aa7ae7935917c1257f67677a0926";
+        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz";
+        sha1 = "044fb81ebad6698fe62c478875575bcbb9b70f15";
       };
     }
     {
@@ -538,99 +546,107 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.1.tgz";
+      name = "_babel_plugin_syntax_private_property_in_object___plugin_syntax_private_property_in_object_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_private_property_in_object___plugin_syntax_private_property_in_object_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz";
+        sha1 = "762a4babec61176fec6c88480dec40372b140c0b";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz";
-        sha1 = "dd6c0b357ac1bb142d98537450a319625d13d2a0";
+        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz";
+        sha1 = "c5f0fa6e249f5b739727f923540cf7a806130178";
       };
     }
     {
-      name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.1.tgz";
+      name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz";
-        sha1 = "460ba9d77077653803c3dd2e673f76d66b4029e5";
+        name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz";
+        sha1 = "9dff111ca64154cef0f4dc52cf843d9f12ce4474";
       };
     }
     {
-      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.12.1.tgz";
+      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz";
-        sha1 = "8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3";
+        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz";
+        sha1 = "10a59bebad52d637a027afa692e8d5ceff5e3dae";
       };
     }
     {
-      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.12.1.tgz";
+      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz";
-        sha1 = "3849a49cc2a22e9743cbd6b52926d30337229af1";
+        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz";
+        sha1 = "8e112bf6771b82bf1e974e5e26806c5c99aa516f";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.1.tgz";
+      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz";
-        sha1 = "f2a1a365bde2b7112e0a6ded9067fdd7c07905d9";
+        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz";
+        sha1 = "a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.12.1.tgz";
+      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz";
-        sha1 = "f0ee727874b42a208a48a586b84c3d222c2bbef1";
+        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz";
+        sha1 = "ac1b3a8e3d8cbb31efc6b9be2f74eb9823b74ab2";
       };
     }
     {
-      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.12.1.tgz";
+      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz";
-        sha1 = "65e650fcaddd3d88ddce67c0f834a3d436a32db6";
+        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz";
+        sha1 = "0265155075c42918bf4d3a4053134176ad9b533b";
       };
     }
     {
-      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.12.1.tgz";
+      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz";
-        sha1 = "d68cf6c9b7f838a8a4144badbe97541ea0904852";
+        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz";
+        sha1 = "845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed";
       };
     }
     {
-      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.12.1.tgz";
+      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.13.17.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz";
-        sha1 = "b9a570fe0d0a8d460116413cb4f97e8e08b2f847";
+        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.13.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz";
+        sha1 = "678d96576638c19d5b36b332504d3fd6e06dea27";
       };
     }
     {
-      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.1.tgz";
+      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz";
-        sha1 = "a1d16c14862817b6409c0a678d6f9373ca9cd975";
+        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz";
+        sha1 = "3f1601cc29905bfcb67f53910f197aeafebb25ad";
       };
     }
     {
-      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.1.tgz";
+      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz";
-        sha1 = "745661baba295ac06e686822797a69fbaa2ca228";
+        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz";
+        sha1 = "6f06b87a8b803fd928e54b81c258f0a0033904de";
       };
     }
     {
-      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.1.tgz";
+      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz";
-        sha1 = "b0f2ed356ba1be1428ecaf128ff8a24f02830ae0";
+        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz";
+        sha1 = "4d52390b9a273e651e4aba6aee49ef40e80cd0a1";
       };
     }
     {
@@ -642,115 +658,115 @@
       };
     }
     {
-      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.12.1.tgz";
+      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz";
-        sha1 = "07640f28867ed16f9511c99c888291f560921cfa";
+        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz";
+        sha1 = "c799f881a8091ac26b54867a845c3e97d2696062";
       };
     }
     {
-      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.1.tgz";
+      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz";
-        sha1 = "2ec76258c70fe08c6d7da154003a480620eba667";
+        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz";
+        sha1 = "bb024452f9aaed861d374c8e7a24252ce3a50051";
       };
     }
     {
-      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz";
-        sha1 = "d73b803a26b37017ddf9d3bb8f4dc58bfb806f57";
+        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz";
+        sha1 = "2ca45bafe4a820197cf315794a4d26560fe4bdb9";
       };
     }
     {
-      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz";
-        sha1 = "496038602daf1514a64d43d8e17cbb2755e0c3ad";
+        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz";
+        sha1 = "5ffa66cd59b9e191314c9f1f803b938e8c081e40";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz";
-        sha1 = "3154300b026185666eebb0c0ed7f8415fefcf6f9";
+        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz";
+        sha1 = "589494b5b290ff76cf7f59c798011f6d77026553";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz";
-        sha1 = "fa403124542636c786cf9b460a0ffbb48a86e648";
+        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz";
+        sha1 = "52bc199cb581e0992edba0f0f80356467587f161";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.13.8.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz";
-        sha1 = "663fea620d593c93f214a464cd399bf6dc683086";
+        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz";
+        sha1 = "6d066ee2bff3c7b3d60bf28dec169ad993831ae3";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.12.1.tgz";
+      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz";
-        sha1 = "eb5a218d6b1c68f3d6217b8fa2cc82fec6547902";
+        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz";
+        sha1 = "2f8179d1bbc9263665ce4a65f305526b2ea8ac34";
       };
     }
     {
-      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.1.tgz";
+      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz";
-        sha1 = "b407f5c96be0d9f5f88467497fa82b30ac3e8753";
+        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz";
+        sha1 = "2213725a5f5bbbe364b50c3ba5998c9599c5c9d9";
       };
     }
     {
-      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.1.tgz";
+      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz";
-        sha1 = "80073f02ee1bb2d365c3416490e085c95759dec0";
+        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz";
+        sha1 = "e22d8c3af24b150dd528cbd6e685e799bf1c351c";
       };
     }
     {
-      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.1.tgz";
+      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz";
-        sha1 = "4ea08696b8d2e65841d0c7706482b048bed1066e";
+        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz";
+        sha1 = "b4416a2d63b8f7be314f3d349bd55a9c1b5171f7";
       };
     }
     {
-      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.12.1.tgz";
+      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz";
-        sha1 = "d2e963b038771650c922eff593799c96d853255d";
+        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz";
+        sha1 = "8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007";
       };
     }
     {
-      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz";
-        sha1 = "41bc81200d730abb4456ab8b3fbd5537b59adecd";
+        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz";
+        sha1 = "4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81";
       };
     }
     {
-      name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.12.1.tgz";
+      name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.13.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz";
-        sha1 = "4471f0851feec3231cc9aaa0dccde39947c1ac1e";
+        name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.13.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.13.tgz";
+        sha1 = "0208b1d942bf939cd4f7aa5b255d42602aa4a920";
       };
     }
     {
@@ -762,43 +778,43 @@
       };
     }
     {
-      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.1.tgz";
+      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz";
-        sha1 = "1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d";
+        name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz";
+        sha1 = "c28effd771b276f4647411c9733dbb2d2da954bd";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.5.tgz";
+      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.17.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.5.tgz";
-        sha1 = "677de5b96da310430d6cfb7fee16a1603afa3d56";
+        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz";
+        sha1 = "f510c0fa7cd7234153539f9a362ced41a5ca1447";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.12.1.tgz";
+      name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz";
-        sha1 = "ef43cbca2a14f1bd17807dbe4376ff89d714cf28";
+        name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz";
+        sha1 = "422d99d122d592acab9c35ea22a6cfd9bf189f60";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.12.1.tgz";
+      name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz";
-        sha1 = "d07de6863f468da0809edcf79a1aa8ce2a82a26b";
+        name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz";
+        sha1 = "051d76126bee5c9a6aa3ba37be2f6c1698856bcb";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.12.5.tgz";
+      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.13.12.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.5.tgz";
-        sha1 = "39ede0e30159770561b6963be143e40af3bde00c";
+        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz";
+        sha1 = "1df5dfaf0f4b784b43e96da6f28d630e775f68b3";
       };
     }
     {
@@ -810,19 +826,19 @@
       };
     }
     {
-      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.12.1.tgz";
+      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.13.15.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz";
-        sha1 = "5f0a28d842f6462281f06a964e88ba8d7ab49753";
+        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.13.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz";
+        sha1 = "e5eb28945bf8b6563e7f818945f966a8d2997f39";
       };
     }
     {
-      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.1.tgz";
+      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz";
-        sha1 = "6fdfc8cc7edcc42b36a7c12188c6787c873adcd8";
+        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz";
+        sha1 = "7d9988d4f06e0fe697ea1d9803188aa18b472695";
       };
     }
     {
@@ -834,67 +850,67 @@
       };
     }
     {
-      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.1.tgz";
+      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz";
-        sha1 = "0bf9cac5550fce0cfdf043420f661d645fdc75e3";
+        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz";
+        sha1 = "db755732b70c539d504c6390d9ce90fe64aff7ad";
       };
     }
     {
-      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.12.1.tgz";
+      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz";
-        sha1 = "527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e";
+        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz";
+        sha1 = "84887710e273c1815ace7ae459f6f42a5d31d5fd";
       };
     }
     {
-      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.1.tgz";
+      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz";
-        sha1 = "5c24cf50de396d30e99afc8d1c700e8bce0f5caf";
+        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz";
+        sha1 = "760ffd936face73f860ae646fb86ee82f3d06d1f";
       };
     }
     {
-      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.12.1.tgz";
+      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz";
-        sha1 = "b43ece6ed9a79c0c71119f576d299ef09d942843";
+        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz";
+        sha1 = "a36049127977ad94438dee7443598d1cefdf409d";
       };
     }
     {
-      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.1.tgz";
+      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz";
-        sha1 = "9ca6be343d42512fbc2e68236a82ae64bc7af78a";
+        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz";
+        sha1 = "785dd67a1f2ea579d9c2be722de8c84cb85f5a7f";
       };
     }
     {
-      name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.12.1.tgz";
+      name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.13.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz";
-        sha1 = "d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4";
+        name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz";
+        sha1 = "4a498e1f3600342d2a9e61f60131018f55774853";
       };
     }
     {
-      name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.1.tgz";
+      name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz";
-        sha1 = "5232b9f81ccb07070b7c3c36c67a1b78f1845709";
+        name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz";
+        sha1 = "840ced3b816d3b5127dd1d12dcedc5dead1a5e74";
       };
     }
     {
-      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.1.tgz";
+      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz";
-        sha1 = "cc9661f61390db5c65e3febaccefd5c6ac3faecb";
+        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz";
+        sha1 = "b52521685804e155b1202e83fc188d34bb70f5ac";
       };
     }
     {
@@ -906,11 +922,11 @@
       };
     }
     {
-      name = "_babel_preset_env___preset_env_7.12.1.tgz";
+      name = "_babel_preset_env___preset_env_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_preset_env___preset_env_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz";
-        sha1 = "9c7e5ca82a19efc865384bb4989148d2ee5d7ac2";
+        name = "_babel_preset_env___preset_env_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.1.tgz";
+        sha1 = "b55914e2e68885ea03f69600b2d3537e54574a93";
       };
     }
     {
@@ -930,11 +946,11 @@
       };
     }
     {
-      name = "_babel_preset_react___preset_react_7.12.5.tgz";
+      name = "_babel_preset_react___preset_react_7.13.13.tgz";
       path = fetchurl {
-        name = "_babel_preset_react___preset_react_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.5.tgz";
-        sha1 = "d45625f65d53612078a43867c5c6750e78772c56";
+        name = "_babel_preset_react___preset_react_7.13.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz";
+        sha1 = "fa6895a96c50763fe693f9148568458d5a839761";
       };
     }
     {
@@ -946,11 +962,11 @@
       };
     }
     {
-      name = "_babel_runtime_corejs3___runtime_corejs3_7.12.5.tgz";
+      name = "_babel_runtime_corejs3___runtime_corejs3_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_runtime_corejs3___runtime_corejs3_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz";
-        sha1 = "ffee91da0eb4c6dae080774e94ba606368e414f4";
+        name = "_babel_runtime_corejs3___runtime_corejs3_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz";
+        sha1 = "6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66";
       };
     }
     {
@@ -962,35 +978,35 @@
       };
     }
     {
-      name = "_babel_runtime___runtime_7.12.5.tgz";
+      name = "_babel_runtime___runtime_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_runtime___runtime_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz";
-        sha1 = "410e7e487441e1b360c29be715d870d9b985882e";
+        name = "_babel_runtime___runtime_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz";
+        sha1 = "46794bc20b612c5f75e62dd071e24dfd95f1cbe6";
       };
     }
     {
-      name = "_babel_template___template_7.10.4.tgz";
+      name = "_babel_template___template_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
-        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.12.5.tgz";
+      name = "_babel_traverse___traverse_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz";
-        sha1 = "78a0c68c8e8a35e4cacfd31db8bb303d5606f095";
+        name = "_babel_traverse___traverse_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz";
+        sha1 = "cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef";
       };
     }
     {
-      name = "_babel_types___types_7.12.6.tgz";
+      name = "_babel_types___types_7.14.1.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.12.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.6.tgz";
-        sha1 = "ae0e55ef1cce1fbc881cd26f8234eb3e657edc96";
+        name = "_babel_types___types_7.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.14.1.tgz";
+        sha1 = "095bd12f1c08ab63eff6e8f7745fa7c9cc15a9db";
       };
     }
     {
@@ -1002,6 +1018,134 @@
       };
     }
     {
+      name = "_codemirror_autocomplete___autocomplete_0.18.5.tgz";
+      path = fetchurl {
+        name = "_codemirror_autocomplete___autocomplete_0.18.5.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-0.18.5.tgz";
+        sha1 = "5c25ddbef858503920fa4912b48bf78be93ee462";
+      };
+    }
+    {
+      name = "_codemirror_closebrackets___closebrackets_0.18.0.tgz";
+      path = fetchurl {
+        name = "_codemirror_closebrackets___closebrackets_0.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/closebrackets/-/closebrackets-0.18.0.tgz";
+        sha1 = "4bd7e9227ed6e90e590fa6d289d34b0c065cb8cf";
+      };
+    }
+    {
+      name = "_codemirror_commands___commands_0.18.2.tgz";
+      path = fetchurl {
+        name = "_codemirror_commands___commands_0.18.2.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/commands/-/commands-0.18.2.tgz";
+        sha1 = "a90067b1e3127ffe2c1be2daa68c0f4aeda59308";
+      };
+    }
+    {
+      name = "_codemirror_comment___comment_0.18.0.tgz";
+      path = fetchurl {
+        name = "_codemirror_comment___comment_0.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/comment/-/comment-0.18.0.tgz";
+        sha1 = "f42e3baaacbeb57f22f4a3eabe5738b3d2bca1f7";
+      };
+    }
+    {
+      name = "_codemirror_highlight___highlight_0.18.3.tgz";
+      path = fetchurl {
+        name = "_codemirror_highlight___highlight_0.18.3.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/highlight/-/highlight-0.18.3.tgz";
+        sha1 = "50e268630f113c322a2dc97c9f68d71934fffcb0";
+      };
+    }
+    {
+      name = "_codemirror_history___history_0.18.1.tgz";
+      path = fetchurl {
+        name = "_codemirror_history___history_0.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/history/-/history-0.18.1.tgz";
+        sha1 = "853cde4b138b172235d58f945871f0fc08b7310a";
+      };
+    }
+    {
+      name = "_codemirror_language___language_0.18.1.tgz";
+      path = fetchurl {
+        name = "_codemirror_language___language_0.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/language/-/language-0.18.1.tgz";
+        sha1 = "23682324228606c4ae5b6a9f7cd0a4b9fdff83dd";
+      };
+    }
+    {
+      name = "_codemirror_lint___lint_0.18.2.tgz";
+      path = fetchurl {
+        name = "_codemirror_lint___lint_0.18.2.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/lint/-/lint-0.18.2.tgz";
+        sha1 = "d80adb1767b486894e921785b5e82fa435d28ecf";
+      };
+    }
+    {
+      name = "_codemirror_matchbrackets___matchbrackets_0.18.0.tgz";
+      path = fetchurl {
+        name = "_codemirror_matchbrackets___matchbrackets_0.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/matchbrackets/-/matchbrackets-0.18.0.tgz";
+        sha1 = "64a493090d942de19f15a9ed3cb0fa19ed55f18b";
+      };
+    }
+    {
+      name = "_codemirror_panel___panel_0.18.1.tgz";
+      path = fetchurl {
+        name = "_codemirror_panel___panel_0.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/panel/-/panel-0.18.1.tgz";
+        sha1 = "b2179cdfb7d7c2913ba682d61d00edff160cfad0";
+      };
+    }
+    {
+      name = "_codemirror_rangeset___rangeset_0.18.1.tgz";
+      path = fetchurl {
+        name = "_codemirror_rangeset___rangeset_0.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/rangeset/-/rangeset-0.18.1.tgz";
+        sha1 = "0e51e1117fa5aae0134073735a07c659f334a699";
+      };
+    }
+    {
+      name = "_codemirror_search___search_0.18.2.tgz";
+      path = fetchurl {
+        name = "_codemirror_search___search_0.18.2.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/search/-/search-0.18.2.tgz";
+        sha1 = "7f6311ce4d5749d92aefb41b2f8628d28d90918c";
+      };
+    }
+    {
+      name = "_codemirror_state___state_0.18.7.tgz";
+      path = fetchurl {
+        name = "_codemirror_state___state_0.18.7.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/state/-/state-0.18.7.tgz";
+        sha1 = "3339a732387bb2c034987c57ccf0649ef2f7c4c1";
+      };
+    }
+    {
+      name = "_codemirror_text___text_0.18.0.tgz";
+      path = fetchurl {
+        name = "_codemirror_text___text_0.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/text/-/text-0.18.0.tgz";
+        sha1 = "a4a98862989ccef5545e730b269136d524c6a7c7";
+      };
+    }
+    {
+      name = "_codemirror_tooltip___tooltip_0.18.4.tgz";
+      path = fetchurl {
+        name = "_codemirror_tooltip___tooltip_0.18.4.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/tooltip/-/tooltip-0.18.4.tgz";
+        sha1 = "981bc0ced792c6754148edbc1f60092f3fa54207";
+      };
+    }
+    {
+      name = "_codemirror_view___view_0.18.11.tgz";
+      path = fetchurl {
+        name = "_codemirror_view___view_0.18.11.tgz";
+        url  = "https://registry.yarnpkg.com/@codemirror/view/-/view-0.18.11.tgz";
+        sha1 = "3a9655758f0743cc57d718723b57ea49a72cdfa7";
+      };
+    }
+    {
       name = "_csstools_convert_colors___convert_colors_1.4.0.tgz";
       path = fetchurl {
         name = "_csstools_convert_colors___convert_colors_1.4.0.tgz";
@@ -1018,35 +1162,43 @@
       };
     }
     {
-      name = "_fortawesome_fontawesome_common_types___fontawesome_common_types_0.2.32.tgz";
+      name = "_forevolve_bootstrap_dark___bootstrap_dark_1.0.0.tgz";
+      path = fetchurl {
+        name = "_forevolve_bootstrap_dark___bootstrap_dark_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@forevolve/bootstrap-dark/-/bootstrap-dark-1.0.0.tgz";
+        sha1 = "05fb14e73fbf5ce159a5ba5d1aee151a57c79bca";
+      };
+    }
+    {
+      name = "_fortawesome_fontawesome_common_types___fontawesome_common_types_0.2.35.tgz";
       path = fetchurl {
-        name = "_fortawesome_fontawesome_common_types___fontawesome_common_types_0.2.32.tgz";
-        url  = "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz";
-        sha1 = "3436795d5684f22742989bfa08f46f50f516f259";
+        name = "_fortawesome_fontawesome_common_types___fontawesome_common_types_0.2.35.tgz";
+        url  = "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz";
+        sha1 = "01dd3d054da07a00b764d78748df20daf2b317e9";
       };
     }
     {
-      name = "_fortawesome_fontawesome_svg_core___fontawesome_svg_core_1.2.32.tgz";
+      name = "_fortawesome_fontawesome_svg_core___fontawesome_svg_core_1.2.35.tgz";
       path = fetchurl {
-        name = "_fortawesome_fontawesome_svg_core___fontawesome_svg_core_1.2.32.tgz";
-        url  = "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz";
-        sha1 = "da092bfc7266aa274be8604de610d7115f9ba6cf";
+        name = "_fortawesome_fontawesome_svg_core___fontawesome_svg_core_1.2.35.tgz";
+        url  = "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.35.tgz";
+        sha1 = "85aea8c25645fcec88d35f2eb1045c38d3e65cff";
       };
     }
     {
-      name = "_fortawesome_free_solid_svg_icons___free_solid_svg_icons_5.15.1.tgz";
+      name = "_fortawesome_free_solid_svg_icons___free_solid_svg_icons_5.15.3.tgz";
       path = fetchurl {
-        name = "_fortawesome_free_solid_svg_icons___free_solid_svg_icons_5.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz";
-        sha1 = "e1432676ddd43108b41197fee9f86d910ad458ef";
+        name = "_fortawesome_free_solid_svg_icons___free_solid_svg_icons_5.15.3.tgz";
+        url  = "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.3.tgz";
+        sha1 = "52eebe354f60dc77e0bde934ffc5c75ffd04f9d8";
       };
     }
     {
-      name = "_fortawesome_react_fontawesome___react_fontawesome_0.1.12.tgz";
+      name = "_fortawesome_react_fontawesome___react_fontawesome_0.1.14.tgz";
       path = fetchurl {
-        name = "_fortawesome_react_fontawesome___react_fontawesome_0.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.12.tgz";
-        sha1 = "fbdea86e8b73032895e6ded1ee1dbb1874902d1a";
+        name = "_fortawesome_react_fontawesome___react_fontawesome_0.1.14.tgz";
+        url  = "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz";
+        sha1 = "bf28875c3935b69ce2dc620e1060b217a47f64ca";
       };
     }
     {
@@ -1090,6 +1242,14 @@
       };
     }
     {
+      name = "_hypnosphi_create_react_context___create_react_context_0.3.1.tgz";
+      path = fetchurl {
+        name = "_hypnosphi_create_react_context___create_react_context_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz";
+        sha1 = "f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6";
+      };
+    }
+    {
       name = "_jest_console___console_24.9.0.tgz";
       path = fetchurl {
         name = "_jest_console___console_24.9.0.tgz";
@@ -1202,11 +1362,11 @@
       };
     }
     {
-      name = "_sinonjs_commons___commons_1.8.1.tgz";
+      name = "_sinonjs_commons___commons_1.8.3.tgz";
       path = fetchurl {
-        name = "_sinonjs_commons___commons_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz";
-        sha1 = "e7df00f98a203324f6dc7cc606cad9d4a8ab2217";
+        name = "_sinonjs_commons___commons_1.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz";
+        sha1 = "3802ddd21a50a949b6721ddd72da36e67e7f1b2d";
       };
     }
     {
@@ -1218,19 +1378,11 @@
       };
     }
     {
-      name = "_sinonjs_formatio___formatio_5.0.1.tgz";
-      path = fetchurl {
-        name = "_sinonjs_formatio___formatio_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-5.0.1.tgz";
-        sha1 = "f13e713cb3313b1ab965901b01b0828ea6b77089";
-      };
-    }
-    {
-      name = "_sinonjs_samsam___samsam_5.3.0.tgz";
+      name = "_sinonjs_samsam___samsam_5.3.1.tgz";
       path = fetchurl {
-        name = "_sinonjs_samsam___samsam_5.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.0.tgz";
-        sha1 = "1d2f0743dc54bf13fe9d508baefacdffa25d4329";
+        name = "_sinonjs_samsam___samsam_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz";
+        sha1 = "375a45fe6ed4e92fca2fb920e007c48232a6507f";
       };
     }
     {
@@ -1354,19 +1506,19 @@
       };
     }
     {
-      name = "_testing_library_react_hooks___react_hooks_3.4.2.tgz";
+      name = "_testing_library_react_hooks___react_hooks_3.7.0.tgz";
       path = fetchurl {
-        name = "_testing_library_react_hooks___react_hooks_3.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-3.4.2.tgz";
-        sha1 = "8deb94f7684e0d896edd84a4c90e5b79a0810bc2";
+        name = "_testing_library_react_hooks___react_hooks_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-3.7.0.tgz";
+        sha1 = "6d75c5255ef49bce39b6465bf6b49e2dac84919e";
       };
     }
     {
-      name = "_types_babel__core___babel__core_7.1.12.tgz";
+      name = "_types_babel__core___babel__core_7.1.14.tgz";
       path = fetchurl {
-        name = "_types_babel__core___babel__core_7.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz";
-        sha1 = "4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d";
+        name = "_types_babel__core___babel__core_7.1.14.tgz";
+        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz";
+        sha1 = "faaeefc4185ec71c389f4501ee5ec84b170cc402";
       };
     }
     {
@@ -1386,19 +1538,19 @@
       };
     }
     {
-      name = "_types_babel__traverse___babel__traverse_7.0.15.tgz";
+      name = "_types_babel__traverse___babel__traverse_7.11.1.tgz";
       path = fetchurl {
-        name = "_types_babel__traverse___babel__traverse_7.0.15.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz";
-        sha1 = "db9e4238931eb69ef8aab0ad6523d4d4caa39d03";
+        name = "_types_babel__traverse___babel__traverse_7.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz";
+        sha1 = "654f6c4f67568e24c23b367e947098c6206fa639";
       };
     }
     {
-      name = "_types_cheerio___cheerio_0.22.22.tgz";
+      name = "_types_cheerio___cheerio_0.22.28.tgz";
       path = fetchurl {
-        name = "_types_cheerio___cheerio_0.22.22.tgz";
-        url  = "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.22.tgz";
-        sha1 = "ae71cf4ca59b8bbaf34c99af7a5d6c8894988f5f";
+        name = "_types_cheerio___cheerio_0.22.28.tgz";
+        url  = "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.28.tgz";
+        sha1 = "90808aabb44fec40fa2950f4c72351e3e4eb065b";
       };
     }
     {
@@ -1442,14 +1594,6 @@
       };
     }
     {
-      name = "_types_history___history_4.7.8.tgz";
-      path = fetchurl {
-        name = "_types_history___history_4.7.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz";
-        sha1 = "49348387983075705fe8f4e02fb67f7daaec4934";
-      };
-    }
-    {
       name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
       path = fetchurl {
         name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
@@ -1482,27 +1626,27 @@
       };
     }
     {
-      name = "_types_jest___jest_26.0.15.tgz";
+      name = "_types_jest___jest_26.0.23.tgz";
       path = fetchurl {
-        name = "_types_jest___jest_26.0.15.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.15.tgz";
-        sha1 = "12e02c0372ad0548e07b9f4e19132b834cb1effe";
+        name = "_types_jest___jest_26.0.23.tgz";
+        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.23.tgz";
+        sha1 = "a1b7eab3c503b80451d019efb588ec63522ee4e7";
       };
     }
     {
-      name = "_types_jquery___jquery_3.5.4.tgz";
+      name = "_types_jquery___jquery_3.5.5.tgz";
       path = fetchurl {
-        name = "_types_jquery___jquery_3.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.4.tgz";
-        sha1 = "e923f7d05ca790530f17f80a3b89bc28853fa17f";
+        name = "_types_jquery___jquery_3.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.5.tgz";
+        sha1 = "2c63f47c9c8d96693d272f5453602afd8338c903";
       };
     }
     {
-      name = "_types_json_schema___json_schema_7.0.6.tgz";
+      name = "_types_json_schema___json_schema_7.0.7.tgz";
       path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz";
-        sha1 = "f4c7ec43e81b319a9815115031709f26987891f0";
+        name = "_types_json_schema___json_schema_7.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
       };
     }
     {
@@ -1514,11 +1658,11 @@
       };
     }
     {
-      name = "_types_minimatch___minimatch_3.0.3.tgz";
+      name = "_types_minimatch___minimatch_3.0.4.tgz";
       path = fetchurl {
-        name = "_types_minimatch___minimatch_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
+        name = "_types_minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "f0ec25dbf2f0e4b18647313ac031134ca5b24b21";
       };
     }
     {
@@ -1530,19 +1674,19 @@
       };
     }
     {
-      name = "_types_node___node_14.14.8.tgz";
+      name = "_types_node___node_15.0.2.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.14.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.8.tgz";
-        sha1 = "2127bd81949a95c8b7d3240f3254352d72563aec";
+        name = "_types_node___node_15.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz";
+        sha1 = "51e9c0920d1b45936ea04341aa3e2e58d339fb67";
       };
     }
     {
-      name = "_types_node___node_12.19.5.tgz";
+      name = "_types_node___node_12.20.12.tgz";
       path = fetchurl {
-        name = "_types_node___node_12.19.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.19.5.tgz";
-        sha1 = "9be3946136e818597c71c62d04240d0602c645d4";
+        name = "_types_node___node_12.20.12.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.20.12.tgz";
+        sha1 = "fd9c1c2cfab536a2383ed1ef70f94adea743a226";
       };
     }
     {
@@ -1570,51 +1714,59 @@
       };
     }
     {
-      name = "_types_reach__router___reach__router_1.3.6.tgz";
+      name = "_types_reach__router___reach__router_1.3.7.tgz";
+      path = fetchurl {
+        name = "_types_reach__router___reach__router_1.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.7.tgz";
+        sha1 = "de8ab374259ae7f7499fc1373b9697a5f3cd6428";
+      };
+    }
+    {
+      name = "_types_react_copy_to_clipboard___react_copy_to_clipboard_5.0.0.tgz";
       path = fetchurl {
-        name = "_types_reach__router___reach__router_1.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.6.tgz";
-        sha1 = "413417ce74caab331c70ce6a03a4c825188e4709";
+        name = "_types_react_copy_to_clipboard___react_copy_to_clipboard_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.0.tgz";
+        sha1 = "38b035ca0c28334d3e0efaf3f319b81eea9690cd";
       };
     }
     {
-      name = "_types_react_copy_to_clipboard___react_copy_to_clipboard_4.3.0.tgz";
+      name = "_types_react_dom___react_dom_16.9.12.tgz";
       path = fetchurl {
-        name = "_types_react_copy_to_clipboard___react_copy_to_clipboard_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.3.0.tgz";
-        sha1 = "8e07becb4f11cfced4bd36038cb5bdf5c2658be5";
+        name = "_types_react_dom___react_dom_16.9.12.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.12.tgz";
+        sha1 = "55cd6b17e73922edb9545e5355a0016c1734e6f4";
       };
     }
     {
-      name = "_types_react_dom___react_dom_16.9.9.tgz";
+      name = "_types_react_resize_detector___react_resize_detector_5.0.0.tgz";
       path = fetchurl {
-        name = "_types_react_dom___react_dom_16.9.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.9.tgz";
-        sha1 = "d2d0a6f720a0206369ccbefff752ba37b9583136";
+        name = "_types_react_resize_detector___react_resize_detector_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-resize-detector/-/react-resize-detector-5.0.0.tgz";
+        sha1 = "18ac4e6d518581bec6345845b7f08232f4cca8a5";
       };
     }
     {
-      name = "_types_react_resize_detector___react_resize_detector_4.2.0.tgz";
+      name = "_types_react_test_renderer___react_test_renderer_17.0.1.tgz";
       path = fetchurl {
-        name = "_types_react_resize_detector___react_resize_detector_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-resize-detector/-/react-resize-detector-4.2.0.tgz";
-        sha1 = "ee8802e25cfb34439aa7f52626932ea62dc5792e";
+        name = "_types_react_test_renderer___react_test_renderer_17.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz";
+        sha1 = "3120f7d1c157fba9df0118dae20cb0297ee0e06b";
       };
     }
     {
-      name = "_types_react_test_renderer___react_test_renderer_16.9.3.tgz";
+      name = "_types_react___react_17.0.5.tgz";
       path = fetchurl {
-        name = "_types_react_test_renderer___react_test_renderer_16.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.9.3.tgz";
-        sha1 = "96bab1860904366f4e848b739ba0e2f67bcae87e";
+        name = "_types_react___react_17.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react/-/react-17.0.5.tgz";
+        sha1 = "3d887570c4489011f75a3fc8f965bf87d09a1bea";
       };
     }
     {
-      name = "_types_react___react_16.9.56.tgz";
+      name = "_types_react___react_16.14.6.tgz";
       path = fetchurl {
-        name = "_types_react___react_16.9.56.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.56.tgz";
-        sha1 = "ea25847b53c5bec064933095fc366b1462e2adf0";
+        name = "_types_react___react_16.14.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.14.6.tgz";
+        sha1 = "d933a2a6bc1bfe320a5eea480e8f45ba8126d6ee";
       };
     }
     {
@@ -1626,19 +1778,27 @@
       };
     }
     {
-      name = "_types_sanitize_html___sanitize_html_1.27.0.tgz";
+      name = "_types_sanitize_html___sanitize_html_1.27.2.tgz";
       path = fetchurl {
-        name = "_types_sanitize_html___sanitize_html_1.27.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-1.27.0.tgz";
-        sha1 = "77702dc856f16efecc005014c1d2e45b1f2cbc56";
+        name = "_types_sanitize_html___sanitize_html_1.27.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-1.27.2.tgz";
+        sha1 = "f7bf16ca4b1408278f97ae737f0377a08a10b35c";
       };
     }
     {
-      name = "_types_sinon___sinon_9.0.8.tgz";
+      name = "_types_scheduler___scheduler_0.16.1.tgz";
       path = fetchurl {
-        name = "_types_sinon___sinon_9.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.8.tgz";
-        sha1 = "1ed0038d356784f75b086104ef83bfd4130bb81b";
+        name = "_types_scheduler___scheduler_0.16.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz";
+        sha1 = "18845205e86ff0038517aab7a18a62a6b9f71275";
+      };
+    }
+    {
+      name = "_types_sinon___sinon_9.0.11.tgz";
+      path = fetchurl {
+        name = "_types_sinon___sinon_9.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.11.tgz";
+        sha1 = "7af202dda5253a847b511c929d8b6dda170562eb";
       };
     }
     {
@@ -1650,11 +1810,11 @@
       };
     }
     {
-      name = "_types_sizzle___sizzle_2.3.2.tgz";
+      name = "_types_sizzle___sizzle_2.3.3.tgz";
       path = fetchurl {
-        name = "_types_sizzle___sizzle_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz";
-        sha1 = "a811b8c18e2babab7d542b3365887ae2e4d9de47";
+        name = "_types_sizzle___sizzle_2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz";
+        sha1 = "ff5e2f1902969d305225a047c8a0fd5c915cebef";
       };
     }
     {
@@ -1674,11 +1834,11 @@
       };
     }
     {
-      name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+      name = "_types_yargs_parser___yargs_parser_20.2.0.tgz";
       path = fetchurl {
-        name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
-        sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d";
+        name = "_types_yargs_parser___yargs_parser_20.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz";
+        sha1 = "dd3e6699ba3237f0348cd085e4698780204842f9";
       };
     }
     {
@@ -1690,11 +1850,11 @@
       };
     }
     {
-      name = "_types_yargs___yargs_15.0.10.tgz";
+      name = "_types_yargs___yargs_15.0.13.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_15.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz";
-        sha1 = "0fe3c8173a0d5c3e780b389050140c3f5ea6ea74";
+        name = "_types_yargs___yargs_15.0.13.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz";
+        sha1 = "34f7fec8b389d7f3c1fd08026a5763e072d3c6dc";
       };
     }
     {
@@ -1970,6 +2130,14 @@
       };
     }
     {
+      name = "acorn___acorn_8.2.4.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_8.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz";
+        sha1 = "caba24b08185c3b56e3168e97d15ed17f4d31fd0";
+      };
+    }
+    {
       name = "address___address_1.1.2.tgz";
       path = fetchurl {
         name = "address___address_1.1.2.tgz";
@@ -1978,11 +2146,11 @@
       };
     }
     {
-      name = "adjust_sourcemap_loader___adjust_sourcemap_loader_2.0.0.tgz";
+      name = "adjust_sourcemap_loader___adjust_sourcemap_loader_3.0.0.tgz";
       path = fetchurl {
-        name = "adjust_sourcemap_loader___adjust_sourcemap_loader_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz";
-        sha1 = "6471143af75ec02334b219f54bc7970c52fb29a4";
+        name = "adjust_sourcemap_loader___adjust_sourcemap_loader_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz";
+        sha1 = "5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e";
       };
     }
     {
@@ -2050,11 +2218,11 @@
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+      name = "ansi_escapes___ansi_escapes_4.3.2.tgz";
       path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
-        sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
+        name = "ansi_escapes___ansi_escapes_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz";
+        sha1 = "6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e";
       };
     }
     {
@@ -2130,11 +2298,11 @@
       };
     }
     {
-      name = "anymatch___anymatch_3.1.1.tgz";
+      name = "anymatch___anymatch_3.1.2.tgz";
       path = fetchurl {
-        name = "anymatch___anymatch_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
-        sha1 = "c55ecf02185e2469259399310c173ce31233b142";
+        name = "anymatch___anymatch_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
+        sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
       };
     }
     {
@@ -2234,11 +2402,11 @@
       };
     }
     {
-      name = "array_includes___array_includes_3.1.1.tgz";
+      name = "array_includes___array_includes_3.1.3.tgz";
       path = fetchurl {
-        name = "array_includes___array_includes_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
-        sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
+        name = "array_includes___array_includes_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz";
+        sha1 = "c7f619b382ad2afaf5326cddfdc0afc61af7690a";
       };
     }
     {
@@ -2330,14 +2498,6 @@
       };
     }
     {
-      name = "assert___assert_1.4.1.tgz";
-      path = fetchurl {
-        name = "assert___assert_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
-        sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
-      };
-    }
-    {
       name = "assert___assert_1.5.0.tgz";
       path = fetchurl {
         name = "assert___assert_1.5.0.tgz";
@@ -2434,11 +2594,11 @@
       };
     }
     {
-      name = "axe_core___axe_core_4.1.0.tgz";
+      name = "axe_core___axe_core_4.2.0.tgz";
       path = fetchurl {
-        name = "axe_core___axe_core_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.0.tgz";
-        sha1 = "93d395e6262ecdde5cb52a5d06533d0a0c7bb4cd";
+        name = "axe_core___axe_core_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.0.tgz";
+        sha1 = "6594db4ee62f78be79e32a7295d21b099b60668d";
       };
     }
     {
@@ -2530,6 +2690,30 @@
       };
     }
     {
+      name = "babel_plugin_polyfill_corejs2___babel_plugin_polyfill_corejs2_0.2.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_corejs2___babel_plugin_polyfill_corejs2_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz";
+        sha1 = "686775bf9a5aa757e10520903675e3889caeedc4";
+      };
+    }
+    {
+      name = "babel_plugin_polyfill_corejs3___babel_plugin_polyfill_corejs3_0.2.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_corejs3___babel_plugin_polyfill_corejs3_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz";
+        sha1 = "f4b4bb7b19329827df36ff56f6e6d367026cb7a2";
+      };
+    }
+    {
+      name = "babel_plugin_polyfill_regenerator___babel_plugin_polyfill_regenerator_0.2.0.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_regenerator___babel_plugin_polyfill_regenerator_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz";
+        sha1 = "853f5f5716f4691d98c84f8069c7636ea8da7ab8";
+      };
+    }
+    {
       name = "babel_plugin_syntax_object_rest_spread___babel_plugin_syntax_object_rest_spread_6.13.0.tgz";
       path = fetchurl {
         name = "babel_plugin_syntax_object_rest_spread___babel_plugin_syntax_object_rest_spread_6.13.0.tgz";
@@ -2586,11 +2770,11 @@
       };
     }
     {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
+      name = "balanced_match___balanced_match_1.0.2.tgz";
       path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        name = "balanced_match___balanced_match_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
       };
     }
     {
@@ -2642,11 +2826,11 @@
       };
     }
     {
-      name = "binary_extensions___binary_extensions_2.1.0.tgz";
+      name = "binary_extensions___binary_extensions_2.2.0.tgz";
       path = fetchurl {
-        name = "binary_extensions___binary_extensions_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz";
-        sha1 = "30fa40c9e7fe07dbc895678cd287024dea241dd9";
+        name = "binary_extensions___binary_extensions_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha1 = "75f502eeaf9ffde42fc98829645be4ea76bd9e2d";
       };
     }
     {
@@ -2666,19 +2850,19 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.9.tgz";
+      name = "bn.js___bn.js_4.12.0.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.9.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
-        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
+        name = "bn.js___bn.js_4.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz";
+        sha1 = "775b3f278efbb9718eec7361f483fb36fbbfea88";
       };
     }
     {
-      name = "bn.js___bn.js_5.1.3.tgz";
+      name = "bn.js___bn.js_5.2.0.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_5.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz";
-        sha1 = "beca005408f642ebebea80b042b4d18d2ac0ee6b";
+        name = "bn.js___bn.js_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz";
+        sha1 = "358860674396c6997771a9d051fcc1b57d4ae002";
       };
     }
     {
@@ -2706,11 +2890,11 @@
       };
     }
     {
-      name = "bootstrap___bootstrap_4.5.3.tgz";
+      name = "bootstrap___bootstrap_4.6.0.tgz";
       path = fetchurl {
-        name = "bootstrap___bootstrap_4.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz";
-        sha1 = "c6a72b355aaf323920be800246a6e4ef30997fe6";
+        name = "bootstrap___bootstrap_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz";
+        sha1 = "97b9f29ac98f98dfa43bf7468262d84392552fd7";
       };
     }
     {
@@ -2818,11 +3002,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.14.7.tgz";
+      name = "browserslist___browserslist_4.16.6.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.14.7.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz";
-        sha1 = "c071c1b3622c1c2e790799a37bb09473a4351cb6";
+        name = "browserslist___browserslist_4.16.6.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz";
+        sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2";
       };
     }
     {
@@ -2914,11 +3098,11 @@
       };
     }
     {
-      name = "call_bind___call_bind_1.0.0.tgz";
+      name = "call_bind___call_bind_1.0.2.tgz";
       path = fetchurl {
-        name = "call_bind___call_bind_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz";
-        sha1 = "24127054bb3f9bdcb4b1fb82418186072f77b8ce";
+        name = "call_bind___call_bind_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
+        sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
       };
     }
     {
@@ -2962,19 +3146,11 @@
       };
     }
     {
-      name = "camel_case___camel_case_4.1.1.tgz";
-      path = fetchurl {
-        name = "camel_case___camel_case_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz";
-        sha1 = "1fc41c854f00e2f7d0139dfeba1542d6896fe547";
-      };
-    }
-    {
-      name = "camelcase___camelcase_5.0.0.tgz";
+      name = "camel_case___camel_case_4.1.2.tgz";
       path = fetchurl {
-        name = "camelcase___camelcase_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz";
-        sha1 = "03295527d58bd3cd4aa75363f35b2e8d97be2f42";
+        name = "camel_case___camel_case_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz";
+        sha1 = "9728072a954f805228225a6deea6b38461e1bd5a";
       };
     }
     {
@@ -2994,11 +3170,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001159.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001223.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001159.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz";
-        sha1 = "bebde28f893fa9594dadcaa7d6b8e2aa0299df20";
+        name = "caniuse_lite___caniuse_lite_1.0.30001223.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz";
+        sha1 = "39b49ff0bfb3ee3587000d2f66c47addc6e14443";
       };
     }
     {
@@ -3042,11 +3218,11 @@
       };
     }
     {
-      name = "chalk___chalk_4.1.0.tgz";
+      name = "chalk___chalk_4.1.1.tgz";
       path = fetchurl {
-        name = "chalk___chalk_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
-        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+        name = "chalk___chalk_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
+        sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
       };
     }
     {
@@ -3058,27 +3234,35 @@
       };
     }
     {
-      name = "cheerio___cheerio_1.0.0_rc.3.tgz";
+      name = "cheerio_select___cheerio_select_1.4.0.tgz";
       path = fetchurl {
-        name = "cheerio___cheerio_1.0.0_rc.3.tgz";
-        url  = "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz";
-        sha1 = "094636d425b2e9c0f4eb91a46c05630c9a1a8bf6";
+        name = "cheerio_select___cheerio_select_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.4.0.tgz";
+        sha1 = "3a16f21e37a2ef0f211d6d1aa4eff054bb22cdc9";
       };
     }
     {
-      name = "chokidar___chokidar_2.1.8.tgz";
+      name = "cheerio___cheerio_1.0.0_rc.9.tgz";
       path = fetchurl {
-        name = "chokidar___chokidar_2.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz";
-        sha1 = "804b3a7b6a99358c3c5c61e71d8728f041cff917";
+        name = "cheerio___cheerio_1.0.0_rc.9.tgz";
+        url  = "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.9.tgz";
+        sha1 = "a3ae6b7ce7af80675302ff836f628e7cb786a67f";
       };
     }
     {
-      name = "chokidar___chokidar_3.4.3.tgz";
+      name = "chokidar___chokidar_3.5.1.tgz";
       path = fetchurl {
-        name = "chokidar___chokidar_3.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz";
-        sha1 = "c1df38231448e45ca4ac588e6c79573ba6a57d5b";
+        name = "chokidar___chokidar_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz";
+        sha1 = "ee9ce7bbebd2b79f49f304799d5468e31e14e68a";
+      };
+    }
+    {
+      name = "chokidar___chokidar_2.1.8.tgz";
+      path = fetchurl {
+        name = "chokidar___chokidar_2.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz";
+        sha1 = "804b3a7b6a99358c3c5c61e71d8728f041cff917";
       };
     }
     {
@@ -3090,11 +3274,11 @@
       };
     }
     {
-      name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
+      name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
       path = fetchurl {
-        name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
-        sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4";
+        name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz";
+        sha1 = "1015eced4741e15d06664a957dbbf50d041e26ac";
       };
     }
     {
@@ -3122,11 +3306,11 @@
       };
     }
     {
-      name = "classnames___classnames_2.2.6.tgz";
+      name = "classnames___classnames_2.3.1.tgz";
       path = fetchurl {
-        name = "classnames___classnames_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz";
-        sha1 = "43935bffdd291f326dad0a205309b38d00f650ce";
+        name = "classnames___classnames_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz";
+        sha1 = "dfcfa3891e306ec1dad105d0e88f4417b8535e8e";
       };
     }
     {
@@ -3210,6 +3394,14 @@
       };
     }
     {
+      name = "codemirror_promql___codemirror_promql_0.15.0.tgz";
+      path = fetchurl {
+        name = "codemirror_promql___codemirror_promql_0.15.0.tgz";
+        url  = "https://registry.yarnpkg.com/codemirror-promql/-/codemirror-promql-0.15.0.tgz";
+        sha1 = "dd6365ea5c2d18421d225cef12b74e64d8cab280";
+      };
+    }
+    {
       name = "collection_visit___collection_visit_1.0.0.tgz";
       path = fetchurl {
         name = "collection_visit___collection_visit_1.0.0.tgz";
@@ -3250,11 +3442,11 @@
       };
     }
     {
-      name = "color_string___color_string_1.5.4.tgz";
+      name = "color_string___color_string_1.5.5.tgz";
       path = fetchurl {
-        name = "color_string___color_string_1.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz";
-        sha1 = "dd51cd25cfee953d138fe4002372cc3d0e504cb6";
+        name = "color_string___color_string_1.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz";
+        sha1 = "65474a8f0e7439625f3d27a6a19d89fc45223014";
       };
     }
     {
@@ -3266,11 +3458,11 @@
       };
     }
     {
-      name = "colorette___colorette_1.2.1.tgz";
+      name = "colorette___colorette_1.2.2.tgz";
       path = fetchurl {
-        name = "colorette___colorette_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz";
-        sha1 = "4d0b921325c14faf92633086a536db6e89564b1b";
+        name = "colorette___colorette_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
+        sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
       };
     }
     {
@@ -3346,11 +3538,11 @@
       };
     }
     {
-      name = "compute_scroll_into_view___compute_scroll_into_view_1.0.16.tgz";
+      name = "compute_scroll_into_view___compute_scroll_into_view_1.0.17.tgz";
       path = fetchurl {
-        name = "compute_scroll_into_view___compute_scroll_into_view_1.0.16.tgz";
-        url  = "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.16.tgz";
-        sha1 = "5b7bf4f7127ea2c19b750353d7ce6776a90ee088";
+        name = "compute_scroll_into_view___compute_scroll_into_view_1.0.17.tgz";
+        url  = "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz";
+        sha1 = "6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab";
       };
     }
     {
@@ -3482,35 +3674,35 @@
       };
     }
     {
-      name = "core_js_compat___core_js_compat_3.7.0.tgz";
+      name = "core_js_compat___core_js_compat_3.12.0.tgz";
       path = fetchurl {
-        name = "core_js_compat___core_js_compat_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.7.0.tgz";
-        sha1 = "8479c5d3d672d83f1f5ab94cf353e57113e065ed";
+        name = "core_js_compat___core_js_compat_3.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.0.tgz";
+        sha1 = "a031e51fe411085e33cb629bfee2acaa53bc309a";
       };
     }
     {
-      name = "core_js_pure___core_js_pure_3.7.0.tgz";
+      name = "core_js_pure___core_js_pure_3.12.0.tgz";
       path = fetchurl {
-        name = "core_js_pure___core_js_pure_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.7.0.tgz";
-        sha1 = "28a57c861d5698e053f0ff36905f7a3301b4191e";
+        name = "core_js_pure___core_js_pure_3.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.12.0.tgz";
+        sha1 = "c59d45954a6569232f0704d085916a5e8c3b272f";
       };
     }
     {
-      name = "core_js___core_js_2.6.11.tgz";
+      name = "core_js___core_js_2.6.12.tgz";
       path = fetchurl {
-        name = "core_js___core_js_2.6.11.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz";
-        sha1 = "38831469f9922bded8ee21c9dc46985e0399308c";
+        name = "core_js___core_js_2.6.12.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz";
+        sha1 = "d9333dfa7b065e347cc5682219d6f690859cc2ec";
       };
     }
     {
-      name = "core_js___core_js_3.7.0.tgz";
+      name = "core_js___core_js_3.12.0.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz";
-        sha1 = "b0a761a02488577afbf97179e4681bf49568520f";
+        name = "core_js___core_js_3.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.12.0.tgz";
+        sha1 = "62bac86f7d7f087d40dba3e90a211c2c3c8559ea";
       };
     }
     {
@@ -3570,11 +3762,19 @@
       };
     }
     {
-      name = "cross_fetch___cross_fetch_3.0.6.tgz";
+      name = "crelt___crelt_1.0.5.tgz";
+      path = fetchurl {
+        name = "crelt___crelt_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz";
+        sha1 = "57c0d52af8c859e354bace1883eb2e1eb182bb94";
+      };
+    }
+    {
+      name = "cross_fetch___cross_fetch_3.1.4.tgz";
       path = fetchurl {
-        name = "cross_fetch___cross_fetch_3.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz";
-        sha1 = "3a4040bc8941e653e0e9cf17f29ebcd177d3365c";
+        name = "cross_fetch___cross_fetch_3.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz";
+        sha1 = "9723f3a3a247bf8b89039f3a380a9244e8fa2f39";
       };
     }
     {
@@ -3658,14 +3858,6 @@
       };
     }
     {
-      name = "css_select___css_select_1.2.0.tgz";
-      path = fetchurl {
-        name = "css_select___css_select_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz";
-        sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
-      };
-    }
-    {
       name = "css_select___css_select_2.1.0.tgz";
       path = fetchurl {
         name = "css_select___css_select_2.1.0.tgz";
@@ -3674,27 +3866,27 @@
       };
     }
     {
-      name = "css_tree___css_tree_1.0.0_alpha.37.tgz";
+      name = "css_select___css_select_4.1.2.tgz";
       path = fetchurl {
-        name = "css_tree___css_tree_1.0.0_alpha.37.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz";
-        sha1 = "98bebd62c4c1d9f960ec340cf9f7522e30709a22";
+        name = "css_select___css_select_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/css-select/-/css-select-4.1.2.tgz";
+        sha1 = "8b52b6714ed3a80d8221ec971c543f3b12653286";
       };
     }
     {
-      name = "css_tree___css_tree_1.1.1.tgz";
+      name = "css_tree___css_tree_1.0.0_alpha.37.tgz";
       path = fetchurl {
-        name = "css_tree___css_tree_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.1.tgz";
-        sha1 = "30b8c0161d9fb4e9e2141d762589b6ec2faebd2e";
+        name = "css_tree___css_tree_1.0.0_alpha.37.tgz";
+        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz";
+        sha1 = "98bebd62c4c1d9f960ec340cf9f7522e30709a22";
       };
     }
     {
-      name = "css_what___css_what_2.1.3.tgz";
+      name = "css_tree___css_tree_1.1.3.tgz";
       path = fetchurl {
-        name = "css_what___css_what_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz";
-        sha1 = "a6d7604573365fe74686c3f311c56513d88285f2";
+        name = "css_tree___css_tree_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz";
+        sha1 = "eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d";
       };
     }
     {
@@ -3706,6 +3898,14 @@
       };
     }
     {
+      name = "css_what___css_what_5.0.0.tgz";
+      path = fetchurl {
+        name = "css_what___css_what_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/css-what/-/css-what-5.0.0.tgz";
+        sha1 = "f0bf4f8bac07582722346ab243f6a35b512cfc47";
+      };
+    }
+    {
       name = "css.escape___css.escape_1.5.1.tgz";
       path = fetchurl {
         name = "css.escape___css.escape_1.5.1.tgz";
@@ -3746,11 +3946,11 @@
       };
     }
     {
-      name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
+      name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
       path = fetchurl {
-        name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha1 = "51ec662ccfca0f88b396dcd9679cdb931be17f76";
+        name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz";
+        sha1 = "920622b1fc1e95a34e8838203f1397a504f2d3ff";
       };
     }
     {
@@ -3786,19 +3986,19 @@
       };
     }
     {
-      name = "cssnano___cssnano_4.1.10.tgz";
+      name = "cssnano___cssnano_4.1.11.tgz";
       path = fetchurl {
-        name = "cssnano___cssnano_4.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz";
-        sha1 = "0ac41f0b13d13d465487e111b778d42da631b8b2";
+        name = "cssnano___cssnano_4.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz";
+        sha1 = "c7b5f5b81da269cb1fd982cb960c1200910c9a99";
       };
     }
     {
-      name = "csso___csso_4.1.1.tgz";
+      name = "csso___csso_4.2.0.tgz";
       path = fetchurl {
-        name = "csso___csso_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/csso/-/csso-4.1.1.tgz";
-        sha1 = "e0cb02d6eb3af1df719222048e4359efd662af13";
+        name = "csso___csso_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz";
+        sha1 = "ea3a561346e8dc9f546d6febedd50187cf389529";
       };
     }
     {
@@ -3834,11 +4034,11 @@
       };
     }
     {
-      name = "csstype___csstype_3.0.5.tgz";
+      name = "csstype___csstype_3.0.8.tgz";
       path = fetchurl {
-        name = "csstype___csstype_3.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz";
-        sha1 = "7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8";
+        name = "csstype___csstype_3.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz";
+        sha1 = "d2266a792729fb227cd216fb572f43728e1ad340";
       };
     }
     {
@@ -3858,11 +4058,11 @@
       };
     }
     {
-      name = "damerau_levenshtein___damerau_levenshtein_1.0.6.tgz";
+      name = "damerau_levenshtein___damerau_levenshtein_1.0.7.tgz";
       path = fetchurl {
-        name = "damerau_levenshtein___damerau_levenshtein_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz";
-        sha1 = "143c1641cb3d85c60c32329e26899adea8701791";
+        name = "damerau_levenshtein___damerau_levenshtein_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz";
+        sha1 = "64368003512a1a6992593741a09a9d31a836f55d";
       };
     }
     {
@@ -3954,6 +4154,14 @@
       };
     }
     {
+      name = "deepmerge___deepmerge_4.2.2.tgz";
+      path = fetchurl {
+        name = "deepmerge___deepmerge_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz";
+        sha1 = "44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955";
+      };
+    }
+    {
       name = "default_gateway___default_gateway_4.2.0.tgz";
       path = fetchurl {
         name = "default_gateway___default_gateway_4.2.0.tgz";
@@ -4042,11 +4250,11 @@
       };
     }
     {
-      name = "detect_node___detect_node_2.0.4.tgz";
+      name = "detect_node___detect_node_2.0.5.tgz";
       path = fetchurl {
-        name = "detect_node___detect_node_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
-        sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
+        name = "detect_node___detect_node_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz";
+        sha1 = "9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79";
       };
     }
     {
@@ -4178,19 +4386,11 @@
       };
     }
     {
-      name = "dom_serializer___dom_serializer_1.1.0.tgz";
+      name = "dom_serializer___dom_serializer_1.3.1.tgz";
       path = fetchurl {
-        name = "dom_serializer___dom_serializer_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.1.0.tgz";
-        sha1 = "5f7c828f1bfc44887dc2a315ab5c45691d544b58";
-      };
-    }
-    {
-      name = "dom_serializer___dom_serializer_0.1.1.tgz";
-      path = fetchurl {
-        name = "dom_serializer___dom_serializer_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz";
-        sha1 = "1ec4059e284babed36eec2941d4a970a189ce7c0";
+        name = "dom_serializer___dom_serializer_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz";
+        sha1 = "d845a1565d7c041a95e5dab62184ab41e3a519be";
       };
     }
     {
@@ -4210,11 +4410,11 @@
       };
     }
     {
-      name = "domelementtype___domelementtype_2.0.2.tgz";
+      name = "domelementtype___domelementtype_2.2.0.tgz";
       path = fetchurl {
-        name = "domelementtype___domelementtype_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz";
-        sha1 = "f3b6e549201e46f588b59463dd77187131fe6971";
+        name = "domelementtype___domelementtype_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz";
+        sha1 = "9a0b6c2782ed6a1c7323d42267183df9bd8b1d57";
       };
     }
     {
@@ -4250,11 +4450,11 @@
       };
     }
     {
-      name = "domutils___domutils_1.5.1.tgz";
+      name = "domhandler___domhandler_4.2.0.tgz";
       path = fetchurl {
-        name = "domutils___domutils_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz";
-        sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+        name = "domhandler___domhandler_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz";
+        sha1 = "f9768a5f034be60a89a27c2e4d0f74eba0d8b059";
       };
     }
     {
@@ -4266,19 +4466,19 @@
       };
     }
     {
-      name = "domutils___domutils_2.4.2.tgz";
+      name = "domutils___domutils_2.6.0.tgz";
       path = fetchurl {
-        name = "domutils___domutils_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-2.4.2.tgz";
-        sha1 = "7ee5be261944e1ad487d9aa0616720010123922b";
+        name = "domutils___domutils_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz";
+        sha1 = "2e15c04185d43fb16ae7057cb76433c6edb938b7";
       };
     }
     {
-      name = "dot_case___dot_case_3.0.3.tgz";
+      name = "dot_case___dot_case_3.0.4.tgz";
       path = fetchurl {
-        name = "dot_case___dot_case_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz";
-        sha1 = "21d3b52efaaba2ea5fda875bb1aa8124521cf4aa";
+        name = "dot_case___dot_case_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz";
+        sha1 = "9b2b670d00a431667a8a75ba29cd1b98809ce751";
       };
     }
     {
@@ -4346,19 +4546,19 @@
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.601.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.727.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.601.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.601.tgz";
-        sha1 = "881824eaef0b2f97c89e1abb5835fdd224997d34";
+        name = "electron_to_chromium___electron_to_chromium_1.3.727.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz";
+        sha1 = "857e310ca00f0b75da4e1db6ff0e073cc4a91ddf";
       };
     }
     {
-      name = "elliptic___elliptic_6.5.3.tgz";
+      name = "elliptic___elliptic_6.5.4.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
-        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
       };
     }
     {
@@ -4378,11 +4578,11 @@
       };
     }
     {
-      name = "emoji_regex___emoji_regex_9.2.0.tgz";
+      name = "emoji_regex___emoji_regex_9.2.2.tgz";
       path = fetchurl {
-        name = "emoji_regex___emoji_regex_9.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.0.tgz";
-        sha1 = "a26da8e832b16a9753309f25e35e3c0efb9a066a";
+        name = "emoji_regex___emoji_regex_9.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz";
+        sha1 = "840c8803b0d8047f4ff0cf963176b32d4ef3ed72";
       };
     }
     {
@@ -4418,11 +4618,11 @@
       };
     }
     {
-      name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
+      name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
       path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
-        sha1 = "3b806f3bfafc1ec7de69551ef93cca46c1704126";
+        name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz";
+        sha1 = "2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec";
       };
     }
     {
@@ -4434,27 +4634,27 @@
       };
     }
     {
-      name = "entities___entities_2.1.0.tgz";
+      name = "entities___entities_2.2.0.tgz";
       path = fetchurl {
-        name = "entities___entities_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz";
-        sha1 = "992d3129cf7df6870b96c57858c249a120f8b8b5";
+        name = "entities___entities_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz";
+        sha1 = "098dc90ebb83d8dffa089d55256b351d34c4da55";
       };
     }
     {
-      name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.15.5.tgz";
+      name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.15.6.tgz";
       path = fetchurl {
-        name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.15.5.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.5.tgz";
-        sha1 = "7a6f0093d3edd2f7025b36e7fbf290695473ee04";
+        name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.15.6.tgz";
+        url  = "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz";
+        sha1 = "fd677a658d62661ac5afd7f7f541f141f8085901";
       };
     }
     {
-      name = "enzyme_adapter_utils___enzyme_adapter_utils_1.13.1.tgz";
+      name = "enzyme_adapter_utils___enzyme_adapter_utils_1.14.0.tgz";
       path = fetchurl {
-        name = "enzyme_adapter_utils___enzyme_adapter_utils_1.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.1.tgz";
-        sha1 = "59c1b734b0927543e3d8dc477299ec957feb312d";
+        name = "enzyme_adapter_utils___enzyme_adapter_utils_1.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz";
+        sha1 = "afbb0485e8033aa50c744efb5f5711e64fbf1ad0";
       };
     }
     {
@@ -4466,11 +4666,11 @@
       };
     }
     {
-      name = "enzyme_to_json___enzyme_to_json_3.6.1.tgz";
+      name = "enzyme_to_json___enzyme_to_json_3.6.2.tgz";
       path = fetchurl {
-        name = "enzyme_to_json___enzyme_to_json_3.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.1.tgz";
-        sha1 = "d60740950bc7ca6384dfe6fe405494ec5df996bc";
+        name = "enzyme_to_json___enzyme_to_json_3.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.2.tgz";
+        sha1 = "94f85c413bcae8ab67be53b0a94b69a560e27823";
       };
     }
     {
@@ -4482,11 +4682,11 @@
       };
     }
     {
-      name = "errno___errno_0.1.7.tgz";
+      name = "errno___errno_0.1.8.tgz";
       path = fetchurl {
-        name = "errno___errno_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
-        sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+        name = "errno___errno_0.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz";
+        sha1 = "8bb3e9c7d463be4976ff888f76b4809ebc2e811f";
       };
     }
     {
@@ -4498,19 +4698,11 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.17.7.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.7.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz";
-        sha1 = "a4de61b2f66989fc7421676c1cb9787573ace54c";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.18.0_next.1.tgz";
+      name = "es_abstract___es_abstract_1.18.0.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.18.0_next.1.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz";
-        sha1 = "6e3a0a4bda717e5023ab3b8e90bec36108d22c68";
+        name = "es_abstract___es_abstract_1.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz";
+        sha1 = "ab80b359eecb7ede4c298000390bc5ac3ec7b5a4";
       };
     }
     {
@@ -4578,6 +4770,14 @@
       };
     }
     {
+      name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
+      path = fetchurl {
+        name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
+      };
+    }
+    {
       name = "escodegen___escodegen_1.14.3.tgz";
       path = fetchurl {
         name = "escodegen___escodegen_1.14.3.tgz";
@@ -4586,6 +4786,14 @@
       };
     }
     {
+      name = "escodegen___escodegen_2.0.0.tgz";
+      path = fetchurl {
+        name = "escodegen___escodegen_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz";
+        sha1 = "5e32b12833e8aa8fa35e1bf0befa89380484c7dd";
+      };
+    }
+    {
       name = "eslint_config_prettier___eslint_config_prettier_6.15.0.tgz";
       path = fetchurl {
         name = "eslint_config_prettier___eslint_config_prettier_6.15.0.tgz";
@@ -4674,11 +4882,11 @@
       };
     }
     {
-      name = "eslint_plugin_prettier___eslint_plugin_prettier_3.1.4.tgz";
+      name = "eslint_plugin_prettier___eslint_plugin_prettier_3.4.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_prettier___eslint_plugin_prettier_3.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz";
-        sha1 = "168ab43154e2ea57db992a2cd097c828171f75c2";
+        name = "eslint_plugin_prettier___eslint_plugin_prettier_3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz";
+        sha1 = "cdbad3bf1dbd2b177e9825737fe63b476a08f0c7";
       };
     }
     {
@@ -4706,11 +4914,11 @@
       };
     }
     {
-      name = "eslint_plugin_react___eslint_plugin_react_7.21.5.tgz";
+      name = "eslint_plugin_react___eslint_plugin_react_7.23.2.tgz";
       path = fetchurl {
-        name = "eslint_plugin_react___eslint_plugin_react_7.21.5.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz";
-        sha1 = "50b21a412b9574bfe05b21db176e8b7b3b15bff3";
+        name = "eslint_plugin_react___eslint_plugin_react_7.23.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz";
+        sha1 = "2d2291b0f95c03728b55869f01102290e792d494";
       };
     }
     {
@@ -4778,11 +4986,11 @@
       };
     }
     {
-      name = "esquery___esquery_1.3.1.tgz";
+      name = "esquery___esquery_1.4.0.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
-        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
       };
     }
     {
@@ -4834,19 +5042,19 @@
       };
     }
     {
-      name = "events___events_3.2.0.tgz";
+      name = "events___events_3.3.0.tgz";
       path = fetchurl {
-        name = "events___events_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz";
-        sha1 = "93b87c18f8efcd4202a461aec4dfc0556b639379";
+        name = "events___events_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz";
+        sha1 = "31a95ad0a924e2d2c419a813aeb2c4e878ea7400";
       };
     }
     {
-      name = "eventsource___eventsource_1.0.7.tgz";
+      name = "eventsource___eventsource_1.1.0.tgz";
       path = fetchurl {
-        name = "eventsource___eventsource_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz";
-        sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0";
+        name = "eventsource___eventsource_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz";
+        sha1 = "00e8ca7c92109e94b0ddf32dac677d841028cfaf";
       };
     }
     {
@@ -4858,11 +5066,11 @@
       };
     }
     {
-      name = "exec_sh___exec_sh_0.3.4.tgz";
+      name = "exec_sh___exec_sh_0.3.6.tgz";
       path = fetchurl {
-        name = "exec_sh___exec_sh_0.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz";
-        sha1 = "3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5";
+        name = "exec_sh___exec_sh_0.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz";
+        sha1 = "ff264f9e325519a60cb5e273692943483cca63bc";
       };
     }
     {
@@ -5194,11 +5402,19 @@
       };
     }
     {
-      name = "follow_redirects___follow_redirects_1.13.0.tgz";
+      name = "follow_redirects___follow_redirects_1.14.0.tgz";
       path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz";
-        sha1 = "b42e8d93a2a7eea5ed88633676d6597bc8e384db";
+        name = "follow_redirects___follow_redirects_1.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz";
+        sha1 = "f5d260f95c5f8c105894491feee5dc8993b402fe";
+      };
+    }
+    {
+      name = "for_each___for_each_0.3.3.tgz";
+      path = fetchurl {
+        name = "for_each___for_each_0.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz";
+        sha1 = "69b447e88a0a5d32c3e7084f3f1710034b21376e";
       };
     }
     {
@@ -5346,11 +5562,11 @@
       };
     }
     {
-      name = "fsevents___fsevents_2.1.3.tgz";
+      name = "fsevents___fsevents_2.3.2.tgz";
       path = fetchurl {
-        name = "fsevents___fsevents_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz";
-        sha1 = "fb738703ae8d2f9fe900c33836ddebee8b97f23e";
+        name = "fsevents___fsevents_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
+        sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
       };
     }
     {
@@ -5362,11 +5578,11 @@
       };
     }
     {
-      name = "function.prototype.name___function.prototype.name_1.1.2.tgz";
+      name = "function.prototype.name___function.prototype.name_1.1.4.tgz";
       path = fetchurl {
-        name = "function.prototype.name___function.prototype.name_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz";
-        sha1 = "5cdf79d7c05db401591dfde83e3b70c5123e9a45";
+        name = "function.prototype.name___function.prototype.name_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz";
+        sha1 = "e4ea839b9d3672ae99d0efd9f38d9191c5eaac83";
       };
     }
     {
@@ -5378,11 +5594,11 @@
       };
     }
     {
-      name = "functions_have_names___functions_have_names_1.2.1.tgz";
+      name = "functions_have_names___functions_have_names_1.2.2.tgz";
       path = fetchurl {
-        name = "functions_have_names___functions_have_names_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz";
-        sha1 = "a981ac397fa0c9964551402cdc5533d7a4d52f91";
+        name = "functions_have_names___functions_have_names_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz";
+        sha1 = "98d93991c39da9361f8e50b337c4f6e41f120e21";
       };
     }
     {
@@ -5410,11 +5626,11 @@
       };
     }
     {
-      name = "get_intrinsic___get_intrinsic_1.0.1.tgz";
+      name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
       path = fetchurl {
-        name = "get_intrinsic___get_intrinsic_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz";
-        sha1 = "94a9768fcbdd0595a1c9273aacf4c89d075631be";
+        name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
       };
     }
     {
@@ -5466,11 +5682,11 @@
       };
     }
     {
-      name = "glob_parent___glob_parent_5.1.1.tgz";
+      name = "glob_parent___glob_parent_5.1.2.tgz";
       path = fetchurl {
-        name = "glob_parent___glob_parent_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+        name = "glob_parent___glob_parent_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
       };
     }
     {
@@ -5538,11 +5754,11 @@
       };
     }
     {
-      name = "graceful_fs___graceful_fs_4.2.4.tgz";
+      name = "graceful_fs___graceful_fs_4.2.6.tgz";
       path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
+        name = "graceful_fs___graceful_fs_4.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
       };
     }
     {
@@ -5594,11 +5810,11 @@
       };
     }
     {
-      name = "harmony_reflect___harmony_reflect_1.6.1.tgz";
+      name = "harmony_reflect___harmony_reflect_1.6.2.tgz";
       path = fetchurl {
-        name = "harmony_reflect___harmony_reflect_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz";
-        sha1 = "c108d4f2bb451efef7a37861fdbdae72c9bdefa9";
+        name = "harmony_reflect___harmony_reflect_1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz";
+        sha1 = "31ecbd32e648a34d030d86adb67d4d47547fe710";
       };
     }
     {
@@ -5610,6 +5826,14 @@
       };
     }
     {
+      name = "has_bigints___has_bigints_1.0.1.tgz";
+      path = fetchurl {
+        name = "has_bigints___has_bigints_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz";
+        sha1 = "64fe6acb020673e3b78db035a5af69aa9d07b113";
+      };
+    }
+    {
       name = "has_flag___has_flag_3.0.0.tgz";
       path = fetchurl {
         name = "has_flag___has_flag_3.0.0.tgz";
@@ -5626,11 +5850,11 @@
       };
     }
     {
-      name = "has_symbols___has_symbols_1.0.1.tgz";
+      name = "has_symbols___has_symbols_1.0.2.tgz";
       path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
+        name = "has_symbols___has_symbols_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha1 = "165d3070c00309752a1236a479331e3ac56f1423";
       };
     }
     {
@@ -5714,11 +5938,11 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+      name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
+        name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
+        sha1 = "dffc0bf9a21c02209090f2aa69429e1414daf3f9";
       };
     }
     {
@@ -5746,19 +5970,11 @@
       };
     }
     {
-      name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-      path = fetchurl {
-        name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7";
-      };
-    }
-    {
-      name = "html_element_map___html_element_map_1.2.0.tgz";
+      name = "html_element_map___html_element_map_1.3.0.tgz";
       path = fetchurl {
-        name = "html_element_map___html_element_map_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz";
-        sha1 = "dfbb09efe882806af63d990cf6db37993f099f22";
+        name = "html_element_map___html_element_map_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.0.tgz";
+        sha1 = "fcf226985d7111e6c2b958169312ec750d02f0d3";
       };
     }
     {
@@ -5778,11 +5994,11 @@
       };
     }
     {
-      name = "html_entities___html_entities_1.3.1.tgz";
+      name = "html_entities___html_entities_1.4.0.tgz";
       path = fetchurl {
-        name = "html_entities___html_entities_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz";
-        sha1 = "fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44";
+        name = "html_entities___html_entities_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz";
+        sha1 = "cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc";
       };
     }
     {
@@ -5826,6 +6042,14 @@
       };
     }
     {
+      name = "htmlparser2___htmlparser2_6.1.0.tgz";
+      path = fetchurl {
+        name = "htmlparser2___htmlparser2_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz";
+        sha1 = "c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7";
+      };
+    }
+    {
       name = "http_deceiver___http_deceiver_1.2.7.tgz";
       path = fetchurl {
         name = "http_deceiver___http_deceiver_1.2.7.tgz";
@@ -5858,11 +6082,11 @@
       };
     }
     {
-      name = "http_parser_js___http_parser_js_0.5.2.tgz";
+      name = "http_parser_js___http_parser_js_0.5.3.tgz";
       path = fetchurl {
-        name = "http_parser_js___http_parser_js_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz";
-        sha1 = "da2e31d237b393aae72ace43882dd7e270a8ff77";
+        name = "http_parser_js___http_parser_js_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz";
+        sha1 = "01d2709c79d41698bb01d4decc5e9da4e4a033d9";
       };
     }
     {
@@ -5986,11 +6210,11 @@
       };
     }
     {
-      name = "import_fresh___import_fresh_3.2.2.tgz";
+      name = "import_fresh___import_fresh_3.3.0.tgz";
       path = fetchurl {
-        name = "import_fresh___import_fresh_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz";
-        sha1 = "fc129c160c5d68235507f4331a6baad186bdbc3e";
+        name = "import_fresh___import_fresh_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
       };
     }
     {
@@ -6074,11 +6298,11 @@
       };
     }
     {
-      name = "ini___ini_1.3.5.tgz";
+      name = "ini___ini_1.3.8.tgz";
       path = fetchurl {
-        name = "ini___ini_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
-        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+        name = "ini___ini_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
+        sha1 = "a29da425b48806f34767a4efce397269af28432c";
       };
     }
     {
@@ -6106,11 +6330,11 @@
       };
     }
     {
-      name = "internal_slot___internal_slot_1.0.2.tgz";
+      name = "internal_slot___internal_slot_1.0.3.tgz";
       path = fetchurl {
-        name = "internal_slot___internal_slot_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
-        sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
+        name = "internal_slot___internal_slot_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz";
+        sha1 = "7347e307deeea2faac2ac6205d4bc7d34967f59c";
       };
     }
     {
@@ -6178,11 +6402,11 @@
       };
     }
     {
-      name = "is_arguments___is_arguments_1.0.4.tgz";
+      name = "is_arguments___is_arguments_1.1.0.tgz";
       path = fetchurl {
-        name = "is_arguments___is_arguments_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz";
-        sha1 = "3faf966c7cba0ff437fb31f6250082fcf0448cf3";
+        name = "is_arguments___is_arguments_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz";
+        sha1 = "62353031dfbee07ceb34656a6bde59efecae8dd9";
       };
     }
     {
@@ -6202,6 +6426,14 @@
       };
     }
     {
+      name = "is_bigint___is_bigint_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_bigint___is_bigint_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz";
+        sha1 = "ffb381442503235ad245ea89e45b3dbff040ee5a";
+      };
+    }
+    {
       name = "is_binary_path___is_binary_path_1.0.1.tgz";
       path = fetchurl {
         name = "is_binary_path___is_binary_path_1.0.1.tgz";
@@ -6218,11 +6450,11 @@
       };
     }
     {
-      name = "is_boolean_object___is_boolean_object_1.0.1.tgz";
+      name = "is_boolean_object___is_boolean_object_1.1.0.tgz";
       path = fetchurl {
-        name = "is_boolean_object___is_boolean_object_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz";
-        sha1 = "10edc0900dd127697a92f6f9807c7617d68ac48e";
+        name = "is_boolean_object___is_boolean_object_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz";
+        sha1 = "e2aaad3a3a8fca34c28f6eee135b156ed2587ff0";
       };
     }
     {
@@ -6234,11 +6466,11 @@
       };
     }
     {
-      name = "is_callable___is_callable_1.2.2.tgz";
+      name = "is_callable___is_callable_1.2.3.tgz";
       path = fetchurl {
-        name = "is_callable___is_callable_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz";
-        sha1 = "c7c6715cd22d4ddb48d3e19970223aceabb080d9";
+        name = "is_callable___is_callable_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz";
+        sha1 = "8b1e0500b73a1d76c70487636f368e519de8db8e";
       };
     }
     {
@@ -6258,11 +6490,11 @@
       };
     }
     {
-      name = "is_core_module___is_core_module_2.1.0.tgz";
+      name = "is_core_module___is_core_module_2.3.0.tgz";
       path = fetchurl {
-        name = "is_core_module___is_core_module_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz";
-        sha1 = "a4cc031d9b1aca63eecbd18a650e13cb4eeab946";
+        name = "is_core_module___is_core_module_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz";
+        sha1 = "d341652e3408bca69c4671b79a0954a3d349f887";
       };
     }
     {
@@ -6282,11 +6514,11 @@
       };
     }
     {
-      name = "is_date_object___is_date_object_1.0.2.tgz";
+      name = "is_date_object___is_date_object_1.0.3.tgz";
       path = fetchurl {
-        name = "is_date_object___is_date_object_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha1 = "bda736f2cd8fd06d32844e7743bfa7494c3bfd7e";
+        name = "is_date_object___is_date_object_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.3.tgz";
+        sha1 = "4c0802ae9c8097939ea8001eaae3c502f3dbe72f";
       };
     }
     {
@@ -6314,11 +6546,11 @@
       };
     }
     {
-      name = "is_docker___is_docker_2.1.1.tgz";
+      name = "is_docker___is_docker_2.2.1.tgz";
       path = fetchurl {
-        name = "is_docker___is_docker_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz";
-        sha1 = "4125a88e44e450d384e09047ede71adc2d144156";
+        name = "is_docker___is_docker_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz";
+        sha1 = "33eeabe23cfe86f14bde4408a02c0cfb853acdaa";
       };
     }
     {
@@ -6386,11 +6618,11 @@
       };
     }
     {
-      name = "is_negative_zero___is_negative_zero_2.0.0.tgz";
+      name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
       path = fetchurl {
-        name = "is_negative_zero___is_negative_zero_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz";
-        sha1 = "9553b121b0fac28869da9ed459e20c7543788461";
+        name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
+        sha1 = "3de746c18dda2319241a53675908d8f766f11c24";
       };
     }
     {
@@ -6474,19 +6706,27 @@
       };
     }
     {
-      name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
+      name = "is_plain_object___is_plain_object_5.0.0.tgz";
       path = fetchurl {
-        name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz";
-        sha1 = "0c52e54bcca391bb2c494b21e8626d7336c6e397";
+        name = "is_plain_object___is_plain_object_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz";
+        sha1 = "4427f50ab3429e9025ea7d52e9043a9ef4159344";
       };
     }
     {
-      name = "is_regex___is_regex_1.1.1.tgz";
+      name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.1.tgz";
       path = fetchurl {
-        name = "is_regex___is_regex_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz";
-        sha1 = "c6f98aacc546f6cec5468a07b7b153ab564a57b9";
+        name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz";
+        sha1 = "171ed6f19e3ac554394edf78caa05784a45bebb5";
+      };
+    }
+    {
+      name = "is_regex___is_regex_1.1.2.tgz";
+      path = fetchurl {
+        name = "is_regex___is_regex_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz";
+        sha1 = "81c8ebde4db142f2cf1c53fc86d6a45788266251";
       };
     }
     {
@@ -6538,14 +6778,6 @@
       };
     }
     {
-      name = "is_svg___is_svg_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_svg___is_svg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz";
-        sha1 = "9321dbd29c212e5ca99c4fa9794c714bcafa2f75";
-      };
-    }
-    {
       name = "is_symbol___is_symbol_1.0.3.tgz";
       path = fetchurl {
         name = "is_symbol___is_symbol_1.0.3.tgz";
@@ -6954,11 +7186,11 @@
       };
     }
     {
-      name = "jquery___jquery_3.5.1.tgz";
+      name = "jquery___jquery_3.6.0.tgz";
       path = fetchurl {
-        name = "jquery___jquery_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz";
-        sha1 = "d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5";
+        name = "jquery___jquery_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz";
+        sha1 = "c72a09f15c1bdce142f49dbf1170bdf8adac2470";
       };
     }
     {
@@ -6978,11 +7210,11 @@
       };
     }
     {
-      name = "js_yaml___js_yaml_3.14.0.tgz";
+      name = "js_yaml___js_yaml_3.14.1.tgz";
       path = fetchurl {
-        name = "js_yaml___js_yaml_3.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
-        sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
+        name = "js_yaml___js_yaml_3.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
       };
     }
     {
@@ -7010,11 +7242,11 @@
       };
     }
     {
-      name = "jsdom___jsdom_16.4.0.tgz";
+      name = "jsdom___jsdom_16.5.3.tgz";
       path = fetchurl {
-        name = "jsdom___jsdom_16.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz";
-        sha1 = "36005bde2d136f73eee1a830c6d45e55408edddb";
+        name = "jsdom___jsdom_16.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.3.tgz";
+        sha1 = "13a755b3950eb938b4482c407238ddf16f0d2136";
       };
     }
     {
@@ -7106,11 +7338,11 @@
       };
     }
     {
-      name = "json5___json5_2.1.3.tgz";
+      name = "json5___json5_2.2.0.tgz";
       path = fetchurl {
-        name = "json5___json5_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
-        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
+        name = "json5___json5_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz";
+        sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3";
       };
     }
     {
@@ -7146,19 +7378,19 @@
       };
     }
     {
-      name = "jsx_ast_utils___jsx_ast_utils_3.1.0.tgz";
+      name = "jsx_ast_utils___jsx_ast_utils_3.2.0.tgz";
       path = fetchurl {
-        name = "jsx_ast_utils___jsx_ast_utils_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz";
-        sha1 = "642f1d7b88aa6d7eb9d8f2210e166478444fa891";
+        name = "jsx_ast_utils___jsx_ast_utils_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz";
+        sha1 = "41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82";
       };
     }
     {
-      name = "just_extend___just_extend_4.1.1.tgz";
+      name = "just_extend___just_extend_4.2.1.tgz";
       path = fetchurl {
-        name = "just_extend___just_extend_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.1.tgz";
-        sha1 = "158f1fdb01f128c411dc8b286a7b4837b3545282";
+        name = "just_extend___just_extend_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz";
+        sha1 = "ef5e589afb61e5d66b24eca749409a8939a8c744";
       };
     }
     {
@@ -7218,6 +7450,14 @@
       };
     }
     {
+      name = "klona___klona_2.0.4.tgz";
+      path = fetchurl {
+        name = "klona___klona_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz";
+        sha1 = "7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0";
+      };
+    }
+    {
       name = "language_subtag_registry___language_subtag_registry_0.3.21.tgz";
       path = fetchurl {
         name = "language_subtag_registry___language_subtag_registry_0.3.21.tgz";
@@ -7290,6 +7530,30 @@
       };
     }
     {
+      name = "lezer_promql___lezer_promql_0.18.0.tgz";
+      path = fetchurl {
+        name = "lezer_promql___lezer_promql_0.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/lezer-promql/-/lezer-promql-0.18.0.tgz";
+        sha1 = "7eea8cb02f8203043560415d7a436e9903176ab2";
+      };
+    }
+    {
+      name = "lezer_tree___lezer_tree_0.13.2.tgz";
+      path = fetchurl {
+        name = "lezer_tree___lezer_tree_0.13.2.tgz";
+        url  = "https://registry.yarnpkg.com/lezer-tree/-/lezer-tree-0.13.2.tgz";
+        sha1 = "00f4671309b15c27b131f637e430ce2d4d5f7065";
+      };
+    }
+    {
+      name = "lezer___lezer_0.13.4.tgz";
+      path = fetchurl {
+        name = "lezer___lezer_0.13.4.tgz";
+        url  = "https://registry.yarnpkg.com/lezer/-/lezer-0.13.4.tgz";
+        sha1 = "f0396a3447c7a8f40391623f3f47a4d95559c42f";
+      };
+    }
+    {
       name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
       path = fetchurl {
         name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
@@ -7346,6 +7610,14 @@
       };
     }
     {
+      name = "loader_utils___loader_utils_2.0.0.tgz";
+      path = fetchurl {
+        name = "loader_utils___loader_utils_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
+      };
+    }
+    {
       name = "locate_path___locate_path_2.0.0.tgz";
       path = fetchurl {
         name = "locate_path___locate_path_2.0.0.tgz";
@@ -7378,6 +7650,14 @@
       };
     }
     {
+      name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+      path = fetchurl {
+        name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+        sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+      };
+    }
+    {
       name = "lodash.escape___lodash.escape_4.0.1.tgz";
       path = fetchurl {
         name = "lodash.escape___lodash.escape_4.0.1.tgz";
@@ -7450,19 +7730,19 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.20.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.20.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
-        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
       };
     }
     {
-      name = "loglevel___loglevel_1.7.0.tgz";
+      name = "loglevel___loglevel_1.7.1.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz";
-        sha1 = "728166855a740d59d38db01cf46f042caa041bb0";
+        name = "loglevel___loglevel_1.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz";
+        sha1 = "005fde2f5e6e47068f935ff28573e125ef72f197";
       };
     }
     {
@@ -7474,11 +7754,11 @@
       };
     }
     {
-      name = "lower_case___lower_case_2.0.1.tgz";
+      name = "lower_case___lower_case_2.0.2.tgz";
       path = fetchurl {
-        name = "lower_case___lower_case_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz";
-        sha1 = "39eeb36e396115cc05e29422eaea9e692c9408c7";
+        name = "lower_case___lower_case_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz";
+        sha1 = "6fa237c63dbdc4a82ca0fd882e4722dc5e634e28";
       };
     }
     {
@@ -7490,6 +7770,14 @@
       };
     }
     {
+      name = "lru_cache___lru_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
+      };
+    }
+    {
       name = "make_dir___make_dir_2.1.0.tgz";
       path = fetchurl {
         name = "make_dir___make_dir_2.1.0.tgz";
@@ -7586,11 +7874,11 @@
       };
     }
     {
-      name = "merge_deep___merge_deep_3.0.2.tgz";
+      name = "merge_deep___merge_deep_3.0.3.tgz";
       path = fetchurl {
-        name = "merge_deep___merge_deep_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz";
-        sha1 = "f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2";
+        name = "merge_deep___merge_deep_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.3.tgz";
+        sha1 = "1a2b2ae926da8b2ae93a0ac15d90cd1922766003";
       };
     }
     {
@@ -7650,27 +7938,19 @@
       };
     }
     {
-      name = "mime_db___mime_db_1.44.0.tgz";
+      name = "mime_db___mime_db_1.47.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.44.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
-        sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
+        name = "mime_db___mime_db_1.47.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz";
+        sha1 = "8cb313e59965d3c05cfbf898915a267af46a335c";
       };
     }
     {
-      name = "mime_db___mime_db_1.45.0.tgz";
+      name = "mime_types___mime_types_2.1.30.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.45.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz";
-        sha1 = "cceeda21ccd7c3a745eba2decd55d4b73e7879ea";
-      };
-    }
-    {
-      name = "mime_types___mime_types_2.1.27.tgz";
-      path = fetchurl {
-        name = "mime_types___mime_types_2.1.27.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz";
-        sha1 = "47949f98e279ea53119f5722e0f34e529bec009f";
+        name = "mime_types___mime_types_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz";
+        sha1 = "6e7be8b4c479825f85ed6326695db73f9305d62d";
       };
     }
     {
@@ -7682,11 +7962,11 @@
       };
     }
     {
-      name = "mime___mime_2.4.6.tgz";
+      name = "mime___mime_2.5.2.tgz";
       path = fetchurl {
-        name = "mime___mime_2.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
-        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
+        name = "mime___mime_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz";
+        sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe";
       };
     }
     {
@@ -7802,19 +8082,11 @@
       };
     }
     {
-      name = "moment_timezone___moment_timezone_0.5.32.tgz";
+      name = "moment_timezone___moment_timezone_0.5.33.tgz";
       path = fetchurl {
-        name = "moment_timezone___moment_timezone_0.5.32.tgz";
-        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.32.tgz";
-        sha1 = "db7677cc3cc680fd30303ebd90b0da1ca0dfecc2";
-      };
-    }
-    {
-      name = "moment_timezone___moment_timezone_0.4.1.tgz";
-      path = fetchurl {
-        name = "moment_timezone___moment_timezone_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.4.1.tgz";
-        sha1 = "81f598c3ad5e22cdad796b67ecd8d88d0f5baa06";
+        name = "moment_timezone___moment_timezone_0.5.33.tgz";
+        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz";
+        sha1 = "b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c";
       };
     }
     {
@@ -7826,6 +8098,14 @@
       };
     }
     {
+      name = "moment___moment_2.24.0.tgz";
+      path = fetchurl {
+        name = "moment___moment_2.24.0.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
+        sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
+      };
+    }
+    {
       name = "moo___moo_0.5.1.tgz";
       path = fetchurl {
         name = "moo___moo_0.5.1.tgz";
@@ -7866,6 +8146,14 @@
       };
     }
     {
+      name = "ms___ms_2.1.3.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
+        sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
+      };
+    }
+    {
       name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
       path = fetchurl {
         name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
@@ -7882,6 +8170,14 @@
       };
     }
     {
+      name = "mutationobserver_shim___mutationobserver_shim_0.3.7.tgz";
+      path = fetchurl {
+        name = "mutationobserver_shim___mutationobserver_shim_0.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz";
+        sha1 = "8bf633b0c0b0291a1107255ed32c13088a8c5bf3";
+      };
+    }
+    {
       name = "mute_stream___mute_stream_0.0.8.tgz";
       path = fetchurl {
         name = "mute_stream___mute_stream_0.0.8.tgz";
@@ -7898,6 +8194,14 @@
       };
     }
     {
+      name = "nanoid___nanoid_3.1.22.tgz";
+      path = fetchurl {
+        name = "nanoid___nanoid_3.1.22.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz";
+        sha1 = "b35f8fb7d151990a8aebd5aa5015c03cf726f844";
+      };
+    }
+    {
       name = "nanomatch___nanomatch_1.2.13.tgz";
       path = fetchurl {
         name = "nanomatch___nanomatch_1.2.13.tgz";
@@ -7914,11 +8218,11 @@
       };
     }
     {
-      name = "nearley___nearley_2.19.7.tgz";
+      name = "nearley___nearley_2.20.1.tgz";
       path = fetchurl {
-        name = "nearley___nearley_2.19.7.tgz";
-        url  = "https://registry.yarnpkg.com/nearley/-/nearley-2.19.7.tgz";
-        sha1 = "eafbe3e2d8ccfe70adaa5c026ab1f9709c116218";
+        name = "nearley___nearley_2.20.1.tgz";
+        url  = "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz";
+        sha1 = "246cd33eff0d012faf197ff6774d7ac78acdd474";
       };
     }
     {
@@ -7954,19 +8258,19 @@
       };
     }
     {
-      name = "nise___nise_4.0.4.tgz";
+      name = "nise___nise_4.1.0.tgz";
       path = fetchurl {
-        name = "nise___nise_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/nise/-/nise-4.0.4.tgz";
-        sha1 = "d73dea3e5731e6561992b8f570be9e363c4512dd";
+        name = "nise___nise_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz";
+        sha1 = "8fb75a26e90b99202fa1e63f448f58efbcdedaf6";
       };
     }
     {
-      name = "no_case___no_case_3.0.3.tgz";
+      name = "no_case___no_case_3.0.4.tgz";
       path = fetchurl {
-        name = "no_case___no_case_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz";
-        sha1 = "c21b434c1ffe48b39087e86cfb4d2582e9df18f8";
+        name = "no_case___no_case_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz";
+        sha1 = "d361fd5c9800f558551a8369fc0dcd4662b6124d";
       };
     }
     {
@@ -8010,19 +8314,19 @@
       };
     }
     {
-      name = "node_notifier___node_notifier_5.4.3.tgz";
+      name = "node_notifier___node_notifier_5.4.5.tgz";
       path = fetchurl {
-        name = "node_notifier___node_notifier_5.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz";
-        sha1 = "cb72daf94c93904098e28b9c590fd866e464bd50";
+        name = "node_notifier___node_notifier_5.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz";
+        sha1 = "0cbc1a2b0f658493b4025775a13ad938e96091ef";
       };
     }
     {
-      name = "node_releases___node_releases_1.1.67.tgz";
+      name = "node_releases___node_releases_1.1.71.tgz";
       path = fetchurl {
-        name = "node_releases___node_releases_1.1.67.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz";
-        sha1 = "28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12";
+        name = "node_releases___node_releases_1.1.71.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz";
+        sha1 = "cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb";
       };
     }
     {
@@ -8090,6 +8394,14 @@
       };
     }
     {
+      name = "nth_check___nth_check_2.0.0.tgz";
+      path = fetchurl {
+        name = "nth_check___nth_check_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz";
+        sha1 = "1bb4f6dac70072fc313e8c9cd1417b5074c0a125";
+      };
+    }
+    {
       name = "num2fraction___num2fraction_1.2.2.tgz";
       path = fetchurl {
         name = "num2fraction___num2fraction_1.2.2.tgz";
@@ -8130,27 +8442,27 @@
       };
     }
     {
-      name = "object_hash___object_hash_2.0.3.tgz";
+      name = "object_hash___object_hash_2.1.1.tgz";
       path = fetchurl {
-        name = "object_hash___object_hash_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.3.tgz";
-        sha1 = "d12db044e03cd2ca3d77c0570d87225b02e1e6ea";
+        name = "object_hash___object_hash_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-hash/-/object-hash-2.1.1.tgz";
+        sha1 = "9447d0279b4fcf80cff3259bf66a1dc73afabe09";
       };
     }
     {
-      name = "object_inspect___object_inspect_1.8.0.tgz";
+      name = "object_inspect___object_inspect_1.10.2.tgz";
       path = fetchurl {
-        name = "object_inspect___object_inspect_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz";
-        sha1 = "df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0";
+        name = "object_inspect___object_inspect_1.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz";
+        sha1 = "b6385a3e2b7cae0b5eafcf90cddf85d128767f30";
       };
     }
     {
-      name = "object_is___object_is_1.1.3.tgz";
+      name = "object_is___object_is_1.1.5.tgz";
       path = fetchurl {
-        name = "object_is___object_is_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz";
-        sha1 = "2e3b9e65560137455ee3bd62aec4d90a2ea1cc81";
+        name = "object_is___object_is_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz";
+        sha1 = "b9deeaa5fc7f1846a0faecdceec138e5778f53ac";
       };
     }
     {
@@ -8162,14 +8474,6 @@
       };
     }
     {
-      name = "object_path___object_path_0.11.4.tgz";
-      path = fetchurl {
-        name = "object_path___object_path_0.11.4.tgz";
-        url  = "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz";
-        sha1 = "370ae752fbf37de3ea70a861c23bba8915691949";
-      };
-    }
-    {
       name = "object_visit___object_visit_1.0.1.tgz";
       path = fetchurl {
         name = "object_visit___object_visit_1.0.1.tgz";
@@ -8186,27 +8490,27 @@
       };
     }
     {
-      name = "object.entries___object.entries_1.1.2.tgz";
+      name = "object.entries___object.entries_1.1.3.tgz";
       path = fetchurl {
-        name = "object.entries___object.entries_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
-        sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
+        name = "object.entries___object.entries_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz";
+        sha1 = "c601c7f168b62374541a07ddbd3e2d5e4f7711a6";
       };
     }
     {
-      name = "object.fromentries___object.fromentries_2.0.2.tgz";
+      name = "object.fromentries___object.fromentries_2.0.4.tgz";
       path = fetchurl {
-        name = "object.fromentries___object.fromentries_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
-        sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
+        name = "object.fromentries___object.fromentries_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz";
+        sha1 = "26e1ba5c4571c5c6f0890cef4473066456a120b8";
       };
     }
     {
-      name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.0.tgz";
+      name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
       path = fetchurl {
-        name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
-        sha1 = "369bf1f9592d8ab89d712dced5cb81c7c5352649";
+        name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
+        sha1 = "1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7";
       };
     }
     {
@@ -8218,11 +8522,11 @@
       };
     }
     {
-      name = "object.values___object.values_1.1.1.tgz";
+      name = "object.values___object.values_1.1.3.tgz";
       path = fetchurl {
-        name = "object.values___object.values_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
-        sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+        name = "object.values___object.values_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz";
+        sha1 = "eaa8b1e17589f02f698db093f7c62ee1699742ee";
       };
     }
     {
@@ -8266,11 +8570,11 @@
       };
     }
     {
-      name = "open___open_7.3.0.tgz";
+      name = "open___open_7.4.2.tgz";
       path = fetchurl {
-        name = "open___open_7.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz";
-        sha1 = "45461fdee46444f3645b6e14eb3ca94b82e1be69";
+        name = "open___open_7.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz";
+        sha1 = "b8147e26dcf3e426316c730089fd71edd29c2321";
       };
     }
     {
@@ -8442,11 +8746,11 @@
       };
     }
     {
-      name = "param_case___param_case_3.0.3.tgz";
+      name = "param_case___param_case_3.0.4.tgz";
       path = fetchurl {
-        name = "param_case___param_case_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz";
-        sha1 = "4be41f8399eff621c56eebb829a5e451d9801238";
+        name = "param_case___param_case_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz";
+        sha1 = "7d17fe4aa12bde34d4a77d91acfb6219caad01c5";
       };
     }
     {
@@ -8482,11 +8786,11 @@
       };
     }
     {
-      name = "parse_json___parse_json_5.1.0.tgz";
+      name = "parse_json___parse_json_5.2.0.tgz";
       path = fetchurl {
-        name = "parse_json___parse_json_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz";
-        sha1 = "f96088cdf24a8faa9aea9a009f2d9d942c999646";
+        name = "parse_json___parse_json_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz";
+        sha1 = "c76fc66dee54231c962b22bcc8a72cf2f99753cd";
       };
     }
     {
@@ -8498,6 +8802,14 @@
       };
     }
     {
+      name = "parse5_htmlparser2_tree_adapter___parse5_htmlparser2_tree_adapter_6.0.1.tgz";
+      path = fetchurl {
+        name = "parse5_htmlparser2_tree_adapter___parse5_htmlparser2_tree_adapter_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz";
+        sha1 = "2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6";
+      };
+    }
+    {
       name = "parse5___parse5_4.0.0.tgz";
       path = fetchurl {
         name = "parse5___parse5_4.0.0.tgz";
@@ -8514,19 +8826,11 @@
       };
     }
     {
-      name = "parse5___parse5_5.1.1.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz";
-        sha1 = "f68e4e5ba1852ac2cadc00f4555fff6c2abb6178";
-      };
-    }
-    {
-      name = "parse5___parse5_3.0.3.tgz";
+      name = "parse5___parse5_6.0.1.tgz";
       path = fetchurl {
-        name = "parse5___parse5_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz";
-        sha1 = "042f792ffdd36851551cf4e9e066b3874ab45b5c";
+        name = "parse5___parse5_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz";
+        sha1 = "e1a1c085c569b3dc08321184f19a39cc27f7c30b";
       };
     }
     {
@@ -8538,11 +8842,11 @@
       };
     }
     {
-      name = "pascal_case___pascal_case_3.1.1.tgz";
+      name = "pascal_case___pascal_case_3.1.2.tgz";
       path = fetchurl {
-        name = "pascal_case___pascal_case_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz";
-        sha1 = "5ac1975133ed619281e88920973d2cd1f279de5f";
+        name = "pascal_case___pascal_case_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz";
+        sha1 = "b48e0ef2b98e205e7c1dae747d0b1508237660eb";
       };
     }
     {
@@ -8674,11 +8978,11 @@
       };
     }
     {
-      name = "pbkdf2___pbkdf2_3.1.1.tgz";
+      name = "pbkdf2___pbkdf2_3.1.2.tgz";
       path = fetchurl {
-        name = "pbkdf2___pbkdf2_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz";
-        sha1 = "cb8724b0fada984596856d1a6ebafd3584654b94";
+        name = "pbkdf2___pbkdf2_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz";
+        sha1 = "dd822aa0887580e52f1a039dc3eda108efae3075";
       };
     }
     {
@@ -8690,11 +8994,11 @@
       };
     }
     {
-      name = "picomatch___picomatch_2.2.2.tgz";
+      name = "picomatch___picomatch_2.2.3.tgz";
       path = fetchurl {
-        name = "picomatch___picomatch_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
-        sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
+        name = "picomatch___picomatch_2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz";
+        sha1 = "465547f359ccc206d3c48e46a1bcb89bf7ee619d";
       };
     }
     {
@@ -9034,11 +9338,11 @@
       };
     }
     {
-      name = "postcss_initial___postcss_initial_3.0.2.tgz";
+      name = "postcss_initial___postcss_initial_3.0.4.tgz";
       path = fetchurl {
-        name = "postcss_initial___postcss_initial_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz";
-        sha1 = "f018563694b3c16ae8eaabe3c585ac6319637b2d";
+        name = "postcss_initial___postcss_initial_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz";
+        sha1 = "9d32069a10531fe2ecafa0b6ac750ee0bc7efc53";
       };
     }
     {
@@ -9338,11 +9642,11 @@
       };
     }
     {
-      name = "postcss_selector_not___postcss_selector_not_4.0.0.tgz";
+      name = "postcss_selector_not___postcss_selector_not_4.0.1.tgz";
       path = fetchurl {
-        name = "postcss_selector_not___postcss_selector_not_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz";
-        sha1 = "c68ff7ba96527499e832724a2674d65603b645c0";
+        name = "postcss_selector_not___postcss_selector_not_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz";
+        sha1 = "263016eef1cf219e0ade9a913780fc1f48204cbf";
       };
     }
     {
@@ -9362,19 +9666,19 @@
       };
     }
     {
-      name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
+      name = "postcss_selector_parser___postcss_selector_parser_6.0.5.tgz";
       path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
-        sha1 = "56075a1380a04604c38b063ea7767a129af5c2b3";
+        name = "postcss_selector_parser___postcss_selector_parser_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz";
+        sha1 = "042d74e137db83e6f294712096cb413f5aa612c4";
       };
     }
     {
-      name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
+      name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
       path = fetchurl {
-        name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha1 = "17b997bc711b333bab143aaed3b8d3d6e3d38258";
+        name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz";
+        sha1 = "343a2cdbac9505d416243d496f724f38894c941e";
       };
     }
     {
@@ -9426,6 +9730,14 @@
       };
     }
     {
+      name = "postcss___postcss_8.2.14.tgz";
+      path = fetchurl {
+        name = "postcss___postcss_8.2.14.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-8.2.14.tgz";
+        sha1 = "dcf313eb8247b3ce8078d048c0e8262ca565ad2b";
+      };
+    }
+    {
       name = "prelude_ls___prelude_ls_1.1.2.tgz";
       path = fetchurl {
         name = "prelude_ls___prelude_ls_1.1.2.tgz";
@@ -9458,11 +9770,11 @@
       };
     }
     {
-      name = "pretty_bytes___pretty_bytes_5.4.1.tgz";
+      name = "pretty_bytes___pretty_bytes_5.6.0.tgz";
       path = fetchurl {
-        name = "pretty_bytes___pretty_bytes_5.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.4.1.tgz";
-        sha1 = "cd89f79bbcef21e3d21eb0da68ffe93f803e884b";
+        name = "pretty_bytes___pretty_bytes_5.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz";
+        sha1 = "356256f643804773c82f64723fe78c92c62beaeb";
       };
     }
     {
@@ -9538,11 +9850,11 @@
       };
     }
     {
-      name = "prompts___prompts_2.4.0.tgz";
+      name = "prompts___prompts_2.4.1.tgz";
       path = fetchurl {
-        name = "prompts___prompts_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz";
-        sha1 = "4aa5de0723a231d1ee9121c40fdf663df73f61d7";
+        name = "prompts___prompts_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz";
+        sha1 = "befd3b1195ba052f9fd2fde8a486c4e82ee77f61";
       };
     }
     {
@@ -9698,11 +10010,11 @@
       };
     }
     {
-      name = "raf_schd___raf_schd_4.0.2.tgz";
+      name = "raf_schd___raf_schd_4.0.3.tgz";
       path = fetchurl {
-        name = "raf_schd___raf_schd_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.2.tgz";
-        sha1 = "bd44c708188f2e84c810bf55fcea9231bcaed8a0";
+        name = "raf_schd___raf_schd_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz";
+        sha1 = "5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a";
       };
     }
     {
@@ -9770,11 +10082,11 @@
       };
     }
     {
-      name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.2.tgz";
+      name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.3.tgz";
       path = fetchurl {
-        name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz";
-        sha1 = "d82a437e081e68dfca3761fbd57dbf2abdda1316";
+        name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.3.tgz";
+        sha1 = "2a0623b1115a1d8c84144e9434d3342b5af41ab4";
       };
     }
     {
@@ -9794,11 +10106,11 @@
       };
     }
     {
-      name = "react_error_overlay___react_error_overlay_6.0.8.tgz";
+      name = "react_error_overlay___react_error_overlay_6.0.9.tgz";
       path = fetchurl {
-        name = "react_error_overlay___react_error_overlay_6.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.8.tgz";
-        sha1 = "474ed11d04fc6bda3af643447d85e9127ed6b5de";
+        name = "react_error_overlay___react_error_overlay_6.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz";
+        sha1 = "3c743010c9359608c375ecd6bc76f35d93995b0a";
       };
     }
     {
@@ -9810,11 +10122,11 @@
       };
     }
     {
-      name = "react_is___react_is_17.0.1.tgz";
+      name = "react_is___react_is_17.0.2.tgz";
       path = fetchurl {
-        name = "react_is___react_is_17.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz";
-        sha1 = "5b3531bd76a645a4c9fb6e693ed36419e3301339";
+        name = "react_is___react_is_17.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz";
+        sha1 = "e691d4a8e9c789365655539ab372762b0efb54f0";
       };
     }
     {
@@ -9826,11 +10138,11 @@
       };
     }
     {
-      name = "react_popper___react_popper_1.3.7.tgz";
+      name = "react_popper___react_popper_1.3.11.tgz";
       path = fetchurl {
-        name = "react_popper___react_popper_1.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.7.tgz";
-        sha1 = "f6a3471362ef1f0d10a4963673789de1baca2324";
+        name = "react_popper___react_popper_1.3.11.tgz";
+        url  = "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.11.tgz";
+        sha1 = "a2cc3f0a67b75b66cfa62d2c409f9dd1fcc71ffd";
       };
     }
     {
@@ -9842,11 +10154,11 @@
       };
     }
     {
-      name = "react_scripts___react_scripts_3.4.3.tgz";
+      name = "react_scripts___react_scripts_3.4.4.tgz";
       path = fetchurl {
-        name = "react_scripts___react_scripts_3.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.3.tgz";
-        sha1 = "21de5eb93de41ee92cd0b85b0e1298d0bb2e6c51";
+        name = "react_scripts___react_scripts_3.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.4.tgz";
+        sha1 = "eef024ed5c566374005e3f509877350ba99d08a7";
       };
     }
     {
@@ -9874,11 +10186,11 @@
       };
     }
     {
-      name = "reactstrap___reactstrap_8.7.1.tgz";
+      name = "reactstrap___reactstrap_8.9.0.tgz";
       path = fetchurl {
-        name = "reactstrap___reactstrap_8.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.7.1.tgz";
-        sha1 = "9631db8460a83a4d40fbee61abdd577b4f1a7069";
+        name = "reactstrap___reactstrap_8.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.9.0.tgz";
+        sha1 = "bca4afa3f5cd18899ef9b33d877a141886d5abae";
       };
     }
     {
@@ -10018,19 +10330,19 @@
       };
     }
     {
-      name = "regex_parser___regex_parser_2.2.10.tgz";
+      name = "regex_parser___regex_parser_2.2.11.tgz";
       path = fetchurl {
-        name = "regex_parser___regex_parser_2.2.10.tgz";
-        url  = "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz";
-        sha1 = "9e66a8f73d89a107616e63b39d4deddfee912b37";
+        name = "regex_parser___regex_parser_2.2.11.tgz";
+        url  = "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz";
+        sha1 = "3b37ec9049e19479806e878cabe7c1ca83ccfe58";
       };
     }
     {
-      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
       path = fetchurl {
-        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
-        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz";
+        sha1 = "7ef352ae8d159e758c0eadca6f8fcb4eef07be26";
       };
     }
     {
@@ -10066,11 +10378,11 @@
       };
     }
     {
-      name = "regjsparser___regjsparser_0.6.4.tgz";
+      name = "regjsparser___regjsparser_0.6.9.tgz";
       path = fetchurl {
-        name = "regjsparser___regjsparser_0.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz";
-        sha1 = "a769f8684308401a66e9b529d2436ff4d0666272";
+        name = "regjsparser___regjsparser_0.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz";
+        sha1 = "b489eef7c9a2ce43727627011429cf833a7183e6";
       };
     }
     {
@@ -10090,19 +10402,19 @@
       };
     }
     {
-      name = "renderkid___renderkid_2.0.4.tgz";
+      name = "renderkid___renderkid_2.0.5.tgz";
       path = fetchurl {
-        name = "renderkid___renderkid_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz";
-        sha1 = "d325e532afb28d3f8796ffee306be8ffd6fc864c";
+        name = "renderkid___renderkid_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz";
+        sha1 = "483b1ac59c6601ab30a7a596a5965cabccfdd0a5";
       };
     }
     {
-      name = "repeat_element___repeat_element_1.1.3.tgz";
+      name = "repeat_element___repeat_element_1.1.4.tgz";
       path = fetchurl {
-        name = "repeat_element___repeat_element_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+        name = "repeat_element___repeat_element_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz";
+        sha1 = "be681520847ab58c7568ac75fbfad28ed42d39e9";
       };
     }
     {
@@ -10194,11 +10506,11 @@
       };
     }
     {
-      name = "resolve_url_loader___resolve_url_loader_3.1.1.tgz";
+      name = "resolve_url_loader___resolve_url_loader_3.1.2.tgz";
       path = fetchurl {
-        name = "resolve_url_loader___resolve_url_loader_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz";
-        sha1 = "28931895fa1eab9be0647d3b2958c100ae3c0bf0";
+        name = "resolve_url_loader___resolve_url_loader_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz";
+        sha1 = "235e2c28e22e3e432ba7a5d4e305c59a58edfc08";
       };
     }
     {
@@ -10226,11 +10538,19 @@
       };
     }
     {
-      name = "resolve___resolve_1.19.0.tgz";
+      name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz";
-        sha1 = "1af5bf630409734a067cae29318aac7fa29a267c";
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
+      };
+    }
+    {
+      name = "resolve___resolve_2.0.0_next.3.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_2.0.0_next.3.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz";
+        sha1 = "d41016293d4a8586a39ca5d9b5f15cbea1f55e46";
       };
     }
     {
@@ -10346,11 +10666,11 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.6.3.tgz";
+      name = "rxjs___rxjs_6.6.7.tgz";
       path = fetchurl {
-        name = "rxjs___rxjs_6.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz";
-        sha1 = "8ca84635c4daa900c0d3967a6ee7ac60271ee552";
+        name = "rxjs___rxjs_6.6.7.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz";
+        sha1 = "90ac018acabf491bf65044235d5863c4dab804c9";
       };
     }
     {
@@ -10394,11 +10714,11 @@
       };
     }
     {
-      name = "sanitize_html___sanitize_html_1.27.5.tgz";
+      name = "sanitize_html___sanitize_html_2.3.3.tgz";
       path = fetchurl {
-        name = "sanitize_html___sanitize_html_1.27.5.tgz";
-        url  = "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.27.5.tgz";
-        sha1 = "6c8149462adb23e360e1bb71cc0bae7f08c823c7";
+        name = "sanitize_html___sanitize_html_2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.3.3.tgz";
+        sha1 = "3db382c9a621cce4c46d90f10c64f1e9da9e8353";
       };
     }
     {
@@ -10418,6 +10738,14 @@
       };
     }
     {
+      name = "sass___sass_1.32.10.tgz";
+      path = fetchurl {
+        name = "sass___sass_1.32.10.tgz";
+        url  = "https://registry.yarnpkg.com/sass/-/sass-1.32.10.tgz";
+        sha1 = "d40da4e20031b450359ee1c7e69bc8cc89569241";
+      };
+    }
+    {
       name = "sax___sax_1.2.4.tgz";
       path = fetchurl {
         name = "sax___sax_1.2.4.tgz";
@@ -10474,11 +10802,11 @@
       };
     }
     {
-      name = "selfsigned___selfsigned_1.10.8.tgz";
+      name = "selfsigned___selfsigned_1.10.11.tgz";
       path = fetchurl {
-        name = "selfsigned___selfsigned_1.10.8.tgz";
-        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz";
-        sha1 = "0d17208b7d12c33f8eac85c41835f27fc3d81a30";
+        name = "selfsigned___selfsigned_1.10.11.tgz";
+        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz";
+        sha1 = "24929cd906fe0f44b6d01fb23999a739537acbe9";
       };
     }
     {
@@ -10506,11 +10834,11 @@
       };
     }
     {
-      name = "semver___semver_7.3.2.tgz";
+      name = "semver___semver_7.3.5.tgz";
       path = fetchurl {
-        name = "semver___semver_7.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
-        sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
       };
     }
     {
@@ -10658,11 +10986,11 @@
       };
     }
     {
-      name = "side_channel___side_channel_1.0.3.tgz";
+      name = "side_channel___side_channel_1.0.4.tgz";
       path = fetchurl {
-        name = "side_channel___side_channel_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz";
-        sha1 = "cdc46b057550bbab63706210838df5d4c19519c3";
+        name = "side_channel___side_channel_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz";
+        sha1 = "efce5c8fdc104ee751b25c58d4290011fa5ea2cf";
       };
     }
     {
@@ -10682,11 +11010,11 @@
       };
     }
     {
-      name = "sinon___sinon_9.2.1.tgz";
+      name = "sinon___sinon_9.2.4.tgz";
       path = fetchurl {
-        name = "sinon___sinon_9.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/sinon/-/sinon-9.2.1.tgz";
-        sha1 = "64cc88beac718557055bd8caa526b34a2231be6d";
+        name = "sinon___sinon_9.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/sinon/-/sinon-9.2.4.tgz";
+        sha1 = "e55af4d3b174a4443a8762fa8421c2976683752b";
       };
     }
     {
@@ -10802,11 +11130,11 @@
       };
     }
     {
-      name = "source_map_url___source_map_url_0.4.0.tgz";
+      name = "source_map_url___source_map_url_0.4.1.tgz";
       path = fetchurl {
-        name = "source_map_url___source_map_url_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
-        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+        name = "source_map_url___source_map_url_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz";
+        sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56";
       };
     }
     {
@@ -10850,11 +11178,11 @@
       };
     }
     {
-      name = "spdx_license_ids___spdx_license_ids_3.0.6.tgz";
+      name = "spdx_license_ids___spdx_license_ids_3.0.7.tgz";
       path = fetchurl {
-        name = "spdx_license_ids___spdx_license_ids_3.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz";
-        sha1 = "c80757383c28abf7296744998cbc106ae8b854ce";
+        name = "spdx_license_ids___spdx_license_ids_3.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz";
+        sha1 = "e9c18a410e5ed7e12442a549fbd8afa767038d65";
       };
     }
     {
@@ -10898,11 +11226,11 @@
       };
     }
     {
-      name = "ssri___ssri_6.0.1.tgz";
+      name = "ssri___ssri_6.0.2.tgz";
       path = fetchurl {
-        name = "ssri___ssri_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
-        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+        name = "ssri___ssri_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz";
+        sha1 = "157939134f20464e7301ddba3e90ffa8f7728ac5";
       };
     }
     {
@@ -10922,11 +11250,11 @@
       };
     }
     {
-      name = "stack_utils___stack_utils_1.0.3.tgz";
+      name = "stack_utils___stack_utils_1.0.5.tgz";
       path = fetchurl {
-        name = "stack_utils___stack_utils_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.3.tgz";
-        sha1 = "db7a475733b5b8bf6521907b18891d29006f7751";
+        name = "stack_utils___stack_utils_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz";
+        sha1 = "a19b0b01947e0029c8e451d5d61a498f5bb1471b";
       };
     }
     {
@@ -11018,43 +11346,43 @@
       };
     }
     {
-      name = "string_width___string_width_4.2.0.tgz";
+      name = "string_width___string_width_4.2.2.tgz";
       path = fetchurl {
-        name = "string_width___string_width_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
-        sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+        name = "string_width___string_width_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
+        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
       };
     }
     {
-      name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+      name = "string.prototype.matchall___string.prototype.matchall_4.0.4.tgz";
       path = fetchurl {
-        name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
-        sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
+        name = "string.prototype.matchall___string.prototype.matchall_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz";
+        sha1 = "608f255e93e072107f5de066f81a2dfb78cf6b29";
       };
     }
     {
-      name = "string.prototype.trim___string.prototype.trim_1.2.2.tgz";
+      name = "string.prototype.trim___string.prototype.trim_1.2.4.tgz";
       path = fetchurl {
-        name = "string.prototype.trim___string.prototype.trim_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.2.tgz";
-        sha1 = "f538d0bacd98fc4297f0bef645226d5aaebf59f3";
+        name = "string.prototype.trim___string.prototype.trim_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz";
+        sha1 = "6014689baf5efaf106ad031a5fa45157666ed1bd";
       };
     }
     {
-      name = "string.prototype.trimend___string.prototype.trimend_1.0.2.tgz";
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
       path = fetchurl {
-        name = "string.prototype.trimend___string.prototype.trimend_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz";
-        sha1 = "6ddd9a8796bc714b489a3ae22246a208f37bfa46";
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
+        sha1 = "e75ae90c2942c63504686c18b287b4a0b1a45f80";
       };
     }
     {
-      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.2.tgz";
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
       path = fetchurl {
-        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz";
-        sha1 = "22d45da81015309cd0cdd79787e8919fc5c613e7";
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
+        sha1 = "b36399af4ab2999b4c9c648bd7a3fb2bb26feeed";
       };
     }
     {
@@ -11154,6 +11482,14 @@
       };
     }
     {
+      name = "style_mod___style_mod_4.0.0.tgz";
+      path = fetchurl {
+        name = "style_mod___style_mod_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/style-mod/-/style-mod-4.0.0.tgz";
+        sha1 = "97e7c2d68b592975f2ca7a63d0dd6fcacfe35a01";
+      };
+    }
+    {
       name = "stylehacks___stylehacks_4.0.3.tgz";
       path = fetchurl {
         name = "stylehacks___stylehacks_4.0.3.tgz";
@@ -11234,19 +11570,19 @@
       };
     }
     {
-      name = "tempusdominus_bootstrap_4___tempusdominus_bootstrap_4_5.1.2.tgz";
+      name = "tempusdominus_bootstrap_4___tempusdominus_bootstrap_4_5.39.0.tgz";
       path = fetchurl {
-        name = "tempusdominus_bootstrap_4___tempusdominus_bootstrap_4_5.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/tempusdominus-bootstrap-4/-/tempusdominus-bootstrap-4-5.1.2.tgz";
-        sha1 = "3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be";
+        name = "tempusdominus_bootstrap_4___tempusdominus_bootstrap_4_5.39.0.tgz";
+        url  = "https://registry.yarnpkg.com/tempusdominus-bootstrap-4/-/tempusdominus-bootstrap-4-5.39.0.tgz";
+        sha1 = "f13dcfec6c41b37c5fe509f08bd513590c64411f";
       };
     }
     {
-      name = "tempusdominus_core___tempusdominus_core_5.0.3.tgz";
+      name = "tempusdominus_core___tempusdominus_core_5.19.0.tgz";
       path = fetchurl {
-        name = "tempusdominus_core___tempusdominus_core_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/tempusdominus-core/-/tempusdominus-core-5.0.3.tgz";
-        sha1 = "808642e47a83f45d7ef18c1597fd7b1d413d69e5";
+        name = "tempusdominus_core___tempusdominus_core_5.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/tempusdominus-core/-/tempusdominus-core-5.19.0.tgz";
+        sha1 = "ccbd2c35109b0a4b96c61513e53e0175ec4896bd";
       };
     }
     {
@@ -11426,11 +11762,11 @@
       };
     }
     {
-      name = "tough_cookie___tough_cookie_3.0.1.tgz";
+      name = "tough_cookie___tough_cookie_4.0.0.tgz";
       path = fetchurl {
-        name = "tough_cookie___tough_cookie_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz";
-        sha1 = "9df4f57e739c26930a018184887f4adb7dca73b2";
+        name = "tough_cookie___tough_cookie_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz";
+        sha1 = "d822234eeca882f991f0f908824ad2622ddbece4";
       };
     }
     {
@@ -11482,11 +11818,19 @@
       };
     }
     {
-      name = "tsutils___tsutils_3.17.1.tgz";
+      name = "tslib___tslib_2.2.0.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz";
+        sha1 = "fb2c475977e35e241311ede2693cee1ec6698f5c";
+      };
+    }
+    {
+      name = "tsutils___tsutils_3.21.0.tgz";
       path = fetchurl {
-        name = "tsutils___tsutils_3.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
-        sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+        name = "tsutils___tsutils_3.21.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz";
+        sha1 = "b48717d394cea6c1e096983eed58e9d61715b623";
       };
     }
     {
@@ -11530,11 +11874,11 @@
       };
     }
     {
-      name = "type_fest___type_fest_0.11.0.tgz";
+      name = "type_fest___type_fest_0.21.3.tgz";
       path = fetchurl {
-        name = "type_fest___type_fest_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz";
-        sha1 = "97abf0872310fed88a5c466b25681576145e33f1";
+        name = "type_fest___type_fest_0.21.3.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz";
+        sha1 = "d260a24b0198436e133fa26a524a6d65fa3b2e37";
       };
     }
     {
@@ -11562,11 +11906,11 @@
       };
     }
     {
-      name = "type___type_2.1.0.tgz";
+      name = "type___type_2.5.0.tgz";
       path = fetchurl {
-        name = "type___type_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz";
-        sha1 = "9bdc22c648cf8cf86dd23d32336a41cfb6475e3f";
+        name = "type___type_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz";
+        sha1 = "0a2e78c2e77907b252abe5f298c1b01c63f0db3d";
       };
     }
     {
@@ -11586,11 +11930,19 @@
       };
     }
     {
-      name = "typescript___typescript_3.9.7.tgz";
+      name = "typescript___typescript_3.9.9.tgz";
+      path = fetchurl {
+        name = "typescript___typescript_3.9.9.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz";
+        sha1 = "e69905c54bc0681d0518bd4d587cc6f2d0b1a674";
+      };
+    }
+    {
+      name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
       path = fetchurl {
-        name = "typescript___typescript_3.9.7.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
-        sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+        name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
+        sha1 = "085e215625ec3162574dc8859abee78a59b14471";
       };
     }
     {
@@ -11706,11 +12058,11 @@
       };
     }
     {
-      name = "uri_js___uri_js_4.4.0.tgz";
+      name = "uri_js___uri_js_4.4.1.tgz";
       path = fetchurl {
-        name = "uri_js___uri_js_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz";
-        sha1 = "aa714261de793e8a82347a7bcc9ce74e86f28602";
+        name = "uri_js___uri_js_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
+        sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
       };
     }
     {
@@ -11730,11 +12082,11 @@
       };
     }
     {
-      name = "url_parse___url_parse_1.4.7.tgz";
+      name = "url_parse___url_parse_1.5.1.tgz";
       path = fetchurl {
-        name = "url_parse___url_parse_1.4.7.tgz";
-        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz";
-        sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278";
+        name = "url_parse___url_parse_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz";
+        sha1 = "d5fa9890af8a5e1f274a2c98376510f6425f6e3b";
       };
     }
     {
@@ -11746,6 +12098,14 @@
       };
     }
     {
+      name = "use_media___use_media_1.4.0.tgz";
+      path = fetchurl {
+        name = "use_media___use_media_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/use-media/-/use-media-1.4.0.tgz";
+        sha1 = "e777bf1f382a7aacabbd1f9ce3da2b62e58b2a98";
+      };
+    }
+    {
       name = "use___use_3.1.1.tgz";
       path = fetchurl {
         name = "use___use_3.1.1.tgz";
@@ -11770,6 +12130,14 @@
       };
     }
     {
+      name = "util.promisify___util.promisify_1.1.1.tgz";
+      path = fetchurl {
+        name = "util.promisify___util.promisify_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz";
+        sha1 = "77832f57ced2c9478174149cae9b96e9918cd54b";
+      };
+    }
+    {
       name = "util.promisify___util.promisify_1.0.1.tgz";
       path = fetchurl {
         name = "util.promisify___util.promisify_1.0.1.tgz";
@@ -11818,11 +12186,11 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
-        sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
+        name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
       };
     }
     {
@@ -11874,6 +12242,14 @@
       };
     }
     {
+      name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
+      path = fetchurl {
+        name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.4.tgz";
+        sha1 = "4ade6916f6290224cdbd1db8ac49eab03d0eef6b";
+      };
+    }
+    {
       name = "w3c_xmlserializer___w3c_xmlserializer_1.1.2.tgz";
       path = fetchurl {
         name = "w3c_xmlserializer___w3c_xmlserializer_1.1.2.tgz";
@@ -11954,11 +12330,11 @@
       };
     }
     {
-      name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
+      name = "webpack_dev_middleware___webpack_dev_middleware_3.7.3.tgz";
       path = fetchurl {
-        name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
-        sha1 = "0019c3db716e3fa5cecbf64f2ab88a74bab331f3";
+        name = "webpack_dev_middleware___webpack_dev_middleware_3.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz";
+        sha1 = "0639372b143262e2b84ab95d3b91a7597061c2c5";
       };
     }
     {
@@ -12034,11 +12410,11 @@
       };
     }
     {
-      name = "whatwg_fetch___whatwg_fetch_3.5.0.tgz";
+      name = "whatwg_fetch___whatwg_fetch_3.6.2.tgz";
       path = fetchurl {
-        name = "whatwg_fetch___whatwg_fetch_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz";
-        sha1 = "605a2cd0a7146e5db141e29d1c62ab84c0c4c868";
+        name = "whatwg_fetch___whatwg_fetch_3.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz";
+        sha1 = "dced24f37f2624ed0281725d51d0e2e3fe677f8c";
       };
     }
     {
@@ -12066,11 +12442,19 @@
       };
     }
     {
-      name = "whatwg_url___whatwg_url_8.4.0.tgz";
+      name = "whatwg_url___whatwg_url_8.5.0.tgz";
+      path = fetchurl {
+        name = "whatwg_url___whatwg_url_8.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz";
+        sha1 = "7752b8464fc0903fec89aa9846fc9efe07351fd3";
+      };
+    }
+    {
+      name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
       path = fetchurl {
-        name = "whatwg_url___whatwg_url_8.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz";
-        sha1 = "50fb9615b05469591d2b2bd6dfaed2942ed72837";
+        name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
+        sha1 = "13757bc89b209b049fe5d86430e21cf40a89a8e6";
       };
     }
     {
@@ -12298,11 +12682,11 @@
       };
     }
     {
-      name = "ws___ws_7.4.0.tgz";
+      name = "ws___ws_7.4.5.tgz";
       path = fetchurl {
-        name = "ws___ws_7.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz";
-        sha1 = "a5dd76a24197940d4a8bb9e0e152bb4503764da7";
+        name = "ws___ws_7.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz";
+        sha1 = "a484dd851e9beb6fdb420027e3885e8ce48986c1";
       };
     }
     {
@@ -12322,11 +12706,11 @@
       };
     }
     {
-      name = "xregexp___xregexp_4.4.0.tgz";
+      name = "xregexp___xregexp_4.4.1.tgz";
       path = fetchurl {
-        name = "xregexp___xregexp_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/xregexp/-/xregexp-4.4.0.tgz";
-        sha1 = "29660f5d6567cd2ef981dd4a50cb05d22c10719d";
+        name = "xregexp___xregexp_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/xregexp/-/xregexp-4.4.1.tgz";
+        sha1 = "c84a88fa79e9ab18ca543959712094492185fe65";
       };
     }
     {
@@ -12338,11 +12722,11 @@
       };
     }
     {
-      name = "y18n___y18n_4.0.0.tgz";
+      name = "y18n___y18n_4.0.3.tgz";
       path = fetchurl {
-        name = "y18n___y18n_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
-        sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+        name = "y18n___y18n_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz";
+        sha1 = "b5f259c82cd6e336921efd7bfd8bf560de9eeedf";
       };
     }
     {
@@ -12362,11 +12746,11 @@
       };
     }
     {
-      name = "yaml___yaml_1.10.0.tgz";
+      name = "yaml___yaml_1.10.2.tgz";
       path = fetchurl {
-        name = "yaml___yaml_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz";
-        sha1 = "3b593add944876077d4d683fee01081bd9fff31e";
+        name = "yaml___yaml_1.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz";
+        sha1 = "2301c5ffbf12b467de8da2333a459e29e7920e4b";
       };
     }
     {
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
index 0cbfc89bd5d4..1dbb31796275 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
@@ -1,19 +1,19 @@
-{ stdenv, rustPlatform, fetchFromGitHub, lib, Security, nixosTests }:
+{ stdenv, rustPlatform, fetchFromGitHub, lib, libiconv, Security, nixosTests }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wireguard-exporter";
-  version = "3.4.2";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "MindFlavor";
     repo = "prometheus_wireguard_exporter";
     rev = version;
-    sha256 = "sha256-nzY+pCkj0/m7cWPq5+xvQ1b1/PqdI6QuxNdTRT030tY=";
+    sha256 = "sha256-LHhqQ0p2qt6ZAdkpY1SEAcGXH47TPhHvlDv+eL8GC58=";
   };
 
-  cargoSha256 = "sha256-L2ohowt5+F3XJSzoihtJ2prW2bzZiNMUL9vqHIZBy1M=";
+  cargoSha256 = "sha256-lNFsO7FSmH1+DLM7ID0vn6234qTdtUoaLSnqKcbHoXE=";
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) wireguard; };
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
index 93e6f1767ada..ddffc9c55daf 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
@@ -1,17 +1,36 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib
+, fetchFromGitHub
+, python3Packages
+, prometheus-alertmanager
+}:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "prometheus-xmpp-alerts";
-  version = "0.4.2";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "jelmer";
     repo = pname;
-    rev = version;
-    sha256 = "17aq6v4ahnga82r350kx1y8i7zgikpzmwzaacj7a339kh8hxkh63";
+    rev = "v${version}";
+    sha256 = "0qmmmlcanbrhyyxi32gy3gibgvj7jdjwpa8cf5ci9czvbyxg4rld";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ slixmpp prometheus_client pyyaml ];
+  propagatedBuildInputs = [
+    prometheus-alertmanager
+  ] ++ (with python3Packages; [
+    aiohttp
+    slixmpp
+    prometheus_client
+    pyyaml
+  ]);
+
+  checkInputs = with python3Packages; [
+    pytz
+  ];
+
+  checkPhase = ''
+    ${python3Packages.python.interpreter} -m unittest discover
+  '';
 
   meta = {
     description = "XMPP Web hook for Prometheus";
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
index 1deada436374..98fafa4265d6 100644
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
@@ -46,8 +46,13 @@ import ./versions.nix ({ version, sha256 }:
     '';
 
     installPhase = ''
+      mkdir -p $out/sbin
+
       install -Dm0644 src/go/conf/zabbix_agent2.conf $out/etc/zabbix_agent2.conf
       install -Dm0755 src/go/bin/zabbix_agent2 $out/bin/zabbix_agent2
+
+      # create a symlink which is compatible with the zabbixAgent module
+      ln -s $out/bin/zabbix_agent2 $out/sbin/zabbix_agentd
     '';
 
     meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
index b9f5ad1be24a..154bc235406e 100644
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,11 +1,11 @@
 generic: {
   v50 = generic {
-    version = "5.0.10";
-    sha256 = "15kbbj1vclsys1z3ghcz9j5faz67k3z8yl81bn7bhmqaflavgicb";
+    version = "5.0.12";
+    sha256 = "1gxlsmvz3m3dm4qqgx5qg5zjs680salah17mdzm3m27w8srg13i5";
   };
 
   v40 = generic {
-    version = "4.0.30";
-    sha256 = "17h831a1rw245kz37pw5haxq09k9m76bf0bz0jgg9s0q1j7hvywh";
+    version = "4.0.31";
+    sha256 = "1jfawwwqzd9bsywsn4qc7d1j2a4i8d92xg16k0f3y34pbmfm4603";
   };
 }
diff --git a/nixpkgs/pkgs/servers/mpd/default.nix b/nixpkgs/pkgs/servers/mpd/default.nix
index 3e1f81000046..86c150991f77 100644
--- a/nixpkgs/pkgs/servers/mpd/default.nix
+++ b/nixpkgs/pkgs/servers/mpd/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib, systemd, boost, darwin
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib, systemd, boost
+# Darwin inputs
+, AudioToolbox, AudioUnit
 # Inputs
 , curl, libmms, libnfs, liburing, samba
 # Archive support
@@ -9,7 +11,7 @@
 # Filters
 , libsamplerate
 # Outputs
-, alsaLib, libjack2, libpulseaudio, libshout
+, alsa-lib, libjack2, libpulseaudio, libshout
 # Misc
 , icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
 # Services
@@ -61,7 +63,7 @@ let
     # Filter plugins
     libsamplerate = [ libsamplerate ];
     # Output plugins
-    alsa          = [ alsaLib ];
+    alsa          = [ alsa-lib ];
     jack          = [ libjack2 ];
     pulse         = [ libpulseaudio ];
     shout         = [ libshout ];
@@ -114,13 +116,13 @@ let
 
     in stdenv.mkDerivation rec {
       pname = "mpd";
-      version = "0.22.6";
+      version = "0.22.8";
 
       src = fetchFromGitHub {
         owner  = "MusicPlayerDaemon";
         repo   = "MPD";
         rev    = "v${version}";
-        sha256 = "sha256-Xu+MxMxR5u++R3lZHe6UQ+mEmRnWbN6173ZX39KS1A8=";
+        sha256 = "sha256-nlUgFmiIrheN/FsSlQ/16iqwBXDw6xuwJG/foPZD07M=";
       };
 
       buildInputs = [
@@ -133,7 +135,7 @@ let
         gtest
       ]
         ++ concatAttrVals features_ featureDependencies
-        ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AudioToolbox darwin.apple_sdk.frameworks.AudioUnit ];
+        ++ lib.optionals stdenv.isDarwin [ AudioToolbox AudioUnit ];
 
       nativeBuildInputs = [
         meson
diff --git a/nixpkgs/pkgs/servers/mumsi/default.nix b/nixpkgs/pkgs/servers/mumsi/default.nix
index b4d1fda40901..c6fd2332c90c 100644
--- a/nixpkgs/pkgs/servers/mumsi/default.nix
+++ b/nixpkgs/pkgs/servers/mumsi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkg-config, boost
-, log4cpp, pjsip, openssl, alsaLib, mumlib }:
+, log4cpp, pjsip, openssl, alsa-lib, mumlib }:
 with lib; stdenv.mkDerivation {
   pname = "mumsi";
   version = "unstable-2018-12-12";
@@ -11,7 +11,7 @@ with lib; stdenv.mkDerivation {
     sha256 = "0vrivl1fiiwjsz4v26nrn8ra3k9v0mcz7zjm2z319fw8hv6n1nrk";
   };
 
-  buildInputs = [ boost log4cpp pkg-config pjsip mumlib openssl alsaLib ];
+  buildInputs = [ boost log4cpp pkg-config pjsip mumlib openssl alsa-lib ];
   nativeBuildInputs = [ cmake pkg-config ];
   installPhase = ''
     install -Dm555 mumsi $out/bin/mumsi
diff --git a/nixpkgs/pkgs/servers/mx-puppet-discord/default.nix b/nixpkgs/pkgs/servers/mx-puppet-discord/default.nix
new file mode 100644
index 000000000000..d2606148768d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mx-puppet-discord/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, pkgs, lib, nodejs, nodePackages, pkg-config, libjpeg
+, pixman, cairo, pango }:
+
+let
+  # No official version ever released
+  src = fetchFromGitHub {
+    owner = "matrix-discord";
+    repo = "mx-puppet-discord";
+    rev = "c17384a6a12a42a528e0b1259f8073e8db89b8f4";
+    sha256 = "1yczhfpa4qzvijcpgc2pr10s009qb6jwlfwpcbb17g2wsx6zj0c2";
+  };
+
+  myNodePackages = import ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+
+in myNodePackages.package.override {
+  pname = "mx-puppet-discord";
+
+  inherit src;
+
+  nativeBuildInputs = [ nodePackages.node-pre-gyp pkg-config ];
+  buildInputs = [ libjpeg pixman cairo pango ];
+
+  postInstall = ''
+    # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems
+    patchShebangs --build "$out/lib/node_modules/mx-puppet-discord/node_modules/"
+    # compile Typescript sources
+    npm run build
+
+    # Make an executable to run the server
+    mkdir -p $out/bin
+    cat <<EOF > $out/bin/mx-puppet-discord
+    #!/bin/sh
+    exec ${nodejs}/bin/node $out/lib/node_modules/mx-puppet-discord/build/index.js "\$@"
+    EOF
+    chmod +x $out/bin/mx-puppet-discord
+  '';
+
+  meta = with lib; {
+    description = "A discord puppeting bridge for matrix";
+    license = licenses.asl20;
+    homepage = "https://github.com/matrix-discord/mx-puppet-discord";
+    maintainers = with maintainers; [ expipiplus1 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/mx-puppet-discord/generate.sh b/nixpkgs/pkgs/servers/mx-puppet-discord/generate.sh
new file mode 100755
index 000000000000..851671a147a8
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mx-puppet-discord/generate.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+
+# No official release
+rev=c17384a6a12a42a528e0b1259f8073e8db89b8f4
+u=https://raw.githubusercontent.com/matrix-discord/mx-puppet-discord/$rev
+# Download package.json and package-lock.json
+curl -O $u/package.json
+curl -O $u/package-lock.json
+
+node2nix \
+  --nodejs-12 \
+  --node-env ../../development/node-packages/node-env.nix \
+  --input package.json \
+  --lock package-lock.json \
+  --output node-packages.nix \
+  --composition node-composition.nix
+
+sed -i 's|<nixpkgs>|../../..|' node-composition.nix
+
+rm -f package.json package-lock.json
diff --git a/nixpkgs/pkgs/servers/mx-puppet-discord/node-composition.nix b/nixpkgs/pkgs/servers/mx-puppet-discord/node-composition.nix
new file mode 100644
index 000000000000..777c9db52568
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mx-puppet-discord/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{pkgs ? import ../../.. {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+  nodeEnv = import ../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile;
+    inherit pkgs nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+  inherit nodeEnv;
+}
diff --git a/nixpkgs/pkgs/servers/mx-puppet-discord/node-packages.nix b/nixpkgs/pkgs/servers/mx-puppet-discord/node-packages.nix
new file mode 100644
index 000000000000..b3dc83bb343c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mx-puppet-discord/node-packages.nix
@@ -0,0 +1,3616 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.0.0" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz";
+        sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==";
+      };
+    };
+    "@babel/highlight-7.0.0" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz";
+        sha512 = "UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==";
+      };
+    };
+    "@dabh/diagnostics-2.0.2" = {
+      name = "_at_dabh_slash_diagnostics";
+      packageName = "@dabh/diagnostics";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
+      };
+    };
+    "@discordjs/collection-0.1.6" = {
+      name = "_at_discordjs_slash_collection";
+      packageName = "@discordjs/collection";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz";
+        sha512 = "utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==";
+      };
+    };
+    "@discordjs/form-data-3.0.1" = {
+      name = "_at_discordjs_slash_form-data";
+      packageName = "@discordjs/form-data";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz";
+        sha512 = "ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==";
+      };
+    };
+    "@sindresorhus/is-3.1.2" = {
+      name = "_at_sindresorhus_slash_is";
+      packageName = "@sindresorhus/is";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz";
+        sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==";
+      };
+    };
+    "@sorunome/matrix-bot-sdk-0.5.8" = {
+      name = "_at_sorunome_slash_matrix-bot-sdk";
+      packageName = "@sorunome/matrix-bot-sdk";
+      version = "0.5.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sorunome/matrix-bot-sdk/-/matrix-bot-sdk-0.5.8.tgz";
+        sha512 = "Uifu8saeD1fPrj6F8ZdYiCeADCluySbdi/nVKJy0NQOi6cA5p68ZaeydlCyl+YuFJoCjsDWBe+Szq9CgFd/SpA==";
+      };
+    };
+    "@szmarczak/http-timer-4.0.5" = {
+      name = "_at_szmarczak_slash_http-timer";
+      packageName = "@szmarczak/http-timer";
+      version = "4.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz";
+        sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==";
+      };
+    };
+    "@types/body-parser-1.19.0" = {
+      name = "_at_types_slash_body-parser";
+      packageName = "@types/body-parser";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
+        sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
+      };
+    };
+    "@types/cacheable-request-6.0.1" = {
+      name = "_at_types_slash_cacheable-request";
+      packageName = "@types/cacheable-request";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz";
+        sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==";
+      };
+    };
+    "@types/connect-3.4.34" = {
+      name = "_at_types_slash_connect";
+      packageName = "@types/connect";
+      version = "3.4.34";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz";
+        sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
+      };
+    };
+    "@types/express-4.17.11" = {
+      name = "_at_types_slash_express";
+      packageName = "@types/express";
+      version = "4.17.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz";
+        sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==";
+      };
+    };
+    "@types/express-serve-static-core-4.17.18" = {
+      name = "_at_types_slash_express-serve-static-core";
+      packageName = "@types/express-serve-static-core";
+      version = "4.17.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz";
+        sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==";
+      };
+    };
+    "@types/http-cache-semantics-4.0.0" = {
+      name = "_at_types_slash_http-cache-semantics";
+      packageName = "@types/http-cache-semantics";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz";
+        sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
+      };
+    };
+    "@types/keyv-3.1.1" = {
+      name = "_at_types_slash_keyv";
+      packageName = "@types/keyv";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz";
+        sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
+      };
+    };
+    "@types/mime-1.3.2" = {
+      name = "_at_types_slash_mime";
+      packageName = "@types/mime";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz";
+        sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
+      };
+    };
+    "@types/node-14.6.3" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.6.3.tgz";
+        sha512 = "pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww==";
+      };
+    };
+    "@types/prop-types-15.7.3" = {
+      name = "_at_types_slash_prop-types";
+      packageName = "@types/prop-types";
+      version = "15.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz";
+        sha512 = "KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==";
+      };
+    };
+    "@types/qs-6.9.5" = {
+      name = "_at_types_slash_qs";
+      packageName = "@types/qs";
+      version = "6.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
+        sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
+      };
+    };
+    "@types/range-parser-1.2.3" = {
+      name = "_at_types_slash_range-parser";
+      packageName = "@types/range-parser";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
+        sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
+      };
+    };
+    "@types/react-17.0.0" = {
+      name = "_at_types_slash_react";
+      packageName = "@types/react";
+      version = "17.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz";
+        sha512 = "aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==";
+      };
+    };
+    "@types/responselike-1.0.0" = {
+      name = "_at_types_slash_responselike";
+      packageName = "@types/responselike";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz";
+        sha512 = "85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==";
+      };
+    };
+    "@types/serve-static-1.13.9" = {
+      name = "_at_types_slash_serve-static";
+      packageName = "@types/serve-static";
+      version = "1.13.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz";
+        sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==";
+      };
+    };
+    "abbrev-1.1.1" = {
+      name = "abbrev";
+      packageName = "abbrev";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+      };
+    };
+    "abort-controller-3.0.0" = {
+      name = "abort-controller";
+      packageName = "abort-controller";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz";
+        sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==";
+      };
+    };
+    "accepts-1.3.7" = {
+      name = "accepts";
+      packageName = "accepts";
+      version = "1.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-styles-4.3.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+      };
+    };
+    "aproba-1.2.0" = {
+      name = "aproba";
+      packageName = "aproba";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+      };
+    };
+    "are-we-there-yet-1.1.5" = {
+      name = "are-we-there-yet";
+      packageName = "are-we-there-yet";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+        sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "array-back-2.0.0" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz";
+        sha512 = "eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==";
+      };
+    };
+    "array-back-3.1.0" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz";
+        sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==";
+      };
+    };
+    "array-flatten-1.1.1" = {
+      name = "array-flatten";
+      packageName = "array-flatten";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    };
+    "assert-options-0.7.0" = {
+      name = "assert-options";
+      packageName = "assert-options";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz";
+        sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ==";
+      };
+    };
+    "async-3.2.0" = {
+      name = "async";
+      packageName = "async";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+      };
+    };
+    "asynckit-0.4.0" = {
+      name = "asynckit";
+      packageName = "asynckit";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "base64-js-1.5.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
+        sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
+      };
+    };
+    "basic-auth-2.0.1" = {
+      name = "basic-auth";
+      packageName = "basic-auth";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
+        sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
+      };
+    };
+    "better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72" = {
+      name = "better-discord.js";
+      packageName = "better-discord.js";
+      version = "12.5.1";
+      src = fetchgit {
+        url = "https://github.com/Sorunome/better-discord.js.git";
+        rev = "5e58e1e7510cf2192f3503ca146dd61a56a75c72";
+        sha256 = "ab87453cc9db05b3bc691f27e92c5a4a6a14a528c98c7d313d6dd42f1741124a";
+      };
+    };
+    "better-sqlite3-6.0.1" = {
+      name = "better-sqlite3";
+      packageName = "better-sqlite3";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-6.0.1.tgz";
+        sha512 = "4aV1zEknM9g1a6B0mVBx1oIlmYioEJ8gSS3J6EpN1b1bKYEE+N5lmpmXHKNKTi0qjHziSd7XrXwHl1kpqvEcHQ==";
+      };
+    };
+    "bindings-1.5.0" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+      };
+    };
+    "bintrees-1.0.1" = {
+      name = "bintrees";
+      packageName = "bintrees";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz";
+        sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
+      };
+    };
+    "bl-4.0.3" = {
+      name = "bl";
+      packageName = "bl";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
+        sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
+      };
+    };
+    "blurhash-1.1.3" = {
+      name = "blurhash";
+      packageName = "blurhash";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz";
+        sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==";
+      };
+    };
+    "body-parser-1.19.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "buffer-5.7.1" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
+        sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
+      };
+    };
+    "buffer-writer-2.0.0" = {
+      name = "buffer-writer";
+      packageName = "buffer-writer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
+      };
+    };
+    "builtin-modules-1.1.1" = {
+      name = "builtin-modules";
+      packageName = "builtin-modules";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz";
+        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+      };
+    };
+    "bytes-3.1.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+      };
+    };
+    "cacheable-lookup-5.0.3" = {
+      name = "cacheable-lookup";
+      packageName = "cacheable-lookup";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz";
+        sha512 = "W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==";
+      };
+    };
+    "cacheable-request-7.0.1" = {
+      name = "cacheable-request";
+      packageName = "cacheable-request";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz";
+        sha512 = "lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==";
+      };
+    };
+    "canvas-2.6.1" = {
+      name = "canvas";
+      packageName = "canvas";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz";
+        sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+      };
+    };
+    "chownr-1.1.4" = {
+      name = "chownr";
+      packageName = "chownr";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+      };
+    };
+    "clone-response-1.0.2" = {
+      name = "clone-response";
+      packageName = "clone-response";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz";
+        sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
+      };
+    };
+    "code-point-at-1.1.0" = {
+      name = "code-point-at";
+      packageName = "code-point-at";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    };
+    "color-3.0.0" = {
+      name = "color";
+      packageName = "color";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
+        sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "color-string-1.5.4" = {
+      name = "color-string";
+      packageName = "color-string";
+      version = "1.5.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz";
+        sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==";
+      };
+    };
+    "colors-1.4.0" = {
+      name = "colors";
+      packageName = "colors";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
+        sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
+      };
+    };
+    "colorspace-1.1.2" = {
+      name = "colorspace";
+      packageName = "colorspace";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
+        sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
+      };
+    };
+    "combined-stream-1.0.8" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+      };
+    };
+    "command-line-args-5.1.1" = {
+      name = "command-line-args";
+      packageName = "command-line-args";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz";
+        sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==";
+      };
+    };
+    "command-line-usage-5.0.5" = {
+      name = "command-line-usage";
+      packageName = "command-line-usage";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz";
+        sha512 = "d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==";
+      };
+    };
+    "commander-2.20.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz";
+        sha512 = "7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "console-control-strings-1.1.0" = {
+      name = "console-control-strings";
+      packageName = "console-control-strings";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+      };
+    };
+    "content-disposition-0.5.3" = {
+      name = "content-disposition";
+      packageName = "content-disposition";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+      };
+    };
+    "content-type-1.0.4" = {
+      name = "content-type";
+      packageName = "content-type";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+      };
+    };
+    "cookie-0.4.0" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+      };
+    };
+    "cookie-signature-1.0.6" = {
+      name = "cookie-signature";
+      packageName = "cookie-signature";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "csstype-3.0.5" = {
+      name = "csstype";
+      packageName = "csstype";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz";
+        sha512 = "uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==";
+      };
+    };
+    "cycle-1.0.3" = {
+      name = "cycle";
+      packageName = "cycle";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-3.2.7" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz";
+        sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
+      };
+    };
+    "decompress-response-4.2.1" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
+        sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
+      };
+    };
+    "decompress-response-6.0.0" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz";
+        sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==";
+      };
+    };
+    "deep-extend-0.6.0" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+      };
+    };
+    "defer-to-connect-2.0.0" = {
+      name = "defer-to-connect";
+      packageName = "defer-to-connect";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
+        sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==";
+      };
+    };
+    "delayed-stream-1.0.0" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    };
+    "delegates-1.0.0" = {
+      name = "delegates";
+      packageName = "delegates";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+      };
+    };
+    "depd-1.1.2" = {
+      name = "depd";
+      packageName = "depd";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    };
+    "depd-2.0.0" = {
+      name = "depd";
+      packageName = "depd";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+        sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+      };
+    };
+    "destroy-1.0.4" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    };
+    "detect-libc-1.0.3" = {
+      name = "detect-libc";
+      packageName = "detect-libc";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+      };
+    };
+    "diff-3.5.0" = {
+      name = "diff";
+      packageName = "diff";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz";
+        sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==";
+      };
+    };
+    "discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085" = {
+      name = "discord-markdown";
+      packageName = "discord-markdown";
+      version = "2.3.1";
+      src = fetchgit {
+        url = "git://github.com/Sorunome/discord-markdown.git";
+        rev = "0f38420fdd41340d6eadd38cd5b71784ca954085";
+        sha256 = "61a5ffd248b6d2784665fa710bfe4c39f241c75be07dbe53f5f48575a4df229c";
+      };
+    };
+    "dom-serializer-1.2.0" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz";
+        sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==";
+      };
+    };
+    "domelementtype-2.1.0" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz";
+        sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==";
+      };
+    };
+    "domhandler-3.3.0" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz";
+        sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
+      };
+    };
+    "domhandler-4.0.0" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz";
+        sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==";
+      };
+    };
+    "domutils-2.4.4" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "2.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz";
+        sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==";
+      };
+    };
+    "ee-first-1.1.1" = {
+      name = "ee-first";
+      packageName = "ee-first";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    };
+    "enabled-2.0.0" = {
+      name = "enabled";
+      packageName = "enabled";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+        sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
+      };
+    };
+    "encodeurl-1.0.2" = {
+      name = "encodeurl";
+      packageName = "encodeurl";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
+    "entities-1.1.2" = {
+      name = "entities";
+      packageName = "entities";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+        sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+      };
+    };
+    "entities-2.1.0" = {
+      name = "entities";
+      packageName = "entities";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz";
+        sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "esutils-2.0.2" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz";
+        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+      };
+    };
+    "etag-1.8.1" = {
+      name = "etag";
+      packageName = "etag";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    };
+    "event-target-shim-5.0.1" = {
+      name = "event-target-shim";
+      packageName = "event-target-shim";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz";
+        sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==";
+      };
+    };
+    "events-3.0.0" = {
+      name = "events";
+      packageName = "events";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events/-/events-3.0.0.tgz";
+        sha512 = "Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==";
+      };
+    };
+    "events-3.2.0" = {
+      name = "events";
+      packageName = "events";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
+        sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
+      };
+    };
+    "expand-template-2.0.3" = {
+      name = "expand-template";
+      packageName = "expand-template";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz";
+        sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
+      };
+    };
+    "expire-set-1.0.0" = {
+      name = "expire-set";
+      packageName = "expire-set";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expire-set/-/expire-set-1.0.0.tgz";
+        sha512 = "wOQlqatf2sJtOabNk3gEPbGvo/C8tIUhzT3rz08+i7X+u1NV+UNY4p3Lzq8DxrW57mBML1Fp5qNeYt70Qnndpg==";
+      };
+    };
+    "express-4.17.1" = {
+      name = "express";
+      packageName = "express";
+      version = "4.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+      };
+    };
+    "extend-shallow-2.0.1" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    };
+    "fast-safe-stringify-2.0.7" = {
+      name = "fast-safe-stringify";
+      packageName = "fast-safe-stringify";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
+        sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
+      };
+    };
+    "fecha-2.3.3" = {
+      name = "fecha";
+      packageName = "fecha";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
+        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+      };
+    };
+    "fecha-4.2.0" = {
+      name = "fecha";
+      packageName = "fecha";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+      };
+    };
+    "file-stream-rotator-0.4.1" = {
+      name = "file-stream-rotator";
+      packageName = "file-stream-rotator";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz";
+        sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==";
+      };
+    };
+    "file-type-12.4.2" = {
+      name = "file-type";
+      packageName = "file-type";
+      version = "12.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz";
+        sha512 = "UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==";
+      };
+    };
+    "file-uri-to-path-1.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+      };
+    };
+    "finalhandler-1.1.2" = {
+      name = "finalhandler";
+      packageName = "finalhandler";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+      };
+    };
+    "find-replace-3.0.0" = {
+      name = "find-replace";
+      packageName = "find-replace";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz";
+        sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==";
+      };
+    };
+    "fn.name-1.1.0" = {
+      name = "fn.name";
+      packageName = "fn.name";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+        sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
+      };
+    };
+    "forwarded-0.1.2" = {
+      name = "forwarded";
+      packageName = "forwarded";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+      };
+    };
+    "fresh-0.5.2" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    };
+    "fs-constants-1.0.0" = {
+      name = "fs-constants";
+      packageName = "fs-constants";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+      };
+    };
+    "fs-minipass-1.2.7" = {
+      name = "fs-minipass";
+      packageName = "fs-minipass";
+      version = "1.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
+        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "gauge-2.7.4" = {
+      name = "gauge";
+      packageName = "gauge";
+      version = "2.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+      };
+    };
+    "get-stream-5.2.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+      };
+    };
+    "github-from-package-0.0.0" = {
+      name = "github-from-package";
+      packageName = "github-from-package";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz";
+        sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+      };
+    };
+    "glob-7.1.4" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";
+        sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==";
+      };
+    };
+    "glob-to-regexp-0.4.1" = {
+      name = "glob-to-regexp";
+      packageName = "glob-to-regexp";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
+        sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
+      };
+    };
+    "got-11.6.0" = {
+      name = "got";
+      packageName = "got";
+      version = "11.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/got/-/got-11.6.0.tgz";
+        sha512 = "ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA==";
+      };
+    };
+    "graceful-fs-4.2.4" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "has-unicode-2.0.1" = {
+      name = "has-unicode";
+      packageName = "has-unicode";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+      };
+    };
+    "hash.js-1.1.7" = {
+      name = "hash.js";
+      packageName = "hash.js";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
+        sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
+      };
+    };
+    "hasha-5.2.2" = {
+      name = "hasha";
+      packageName = "hasha";
+      version = "5.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz";
+        sha512 = "Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==";
+      };
+    };
+    "he-1.2.0" = {
+      name = "he";
+      packageName = "he";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+      };
+    };
+    "highlight.js-10.4.1" = {
+      name = "highlight.js";
+      packageName = "highlight.js";
+      version = "10.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz";
+        sha512 = "yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==";
+      };
+    };
+    "htmlencode-0.0.4" = {
+      name = "htmlencode";
+      packageName = "htmlencode";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz";
+        sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f";
+      };
+    };
+    "htmlparser2-4.1.0" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz";
+        sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
+      };
+    };
+    "http-cache-semantics-4.1.0" = {
+      name = "http-cache-semantics";
+      packageName = "http-cache-semantics";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
+        sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==";
+      };
+    };
+    "http-errors-1.7.2" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+      };
+    };
+    "http2-wrapper-1.0.0-beta.5.2" = {
+      name = "http2-wrapper";
+      packageName = "http2-wrapper";
+      version = "1.0.0-beta.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz";
+        sha512 = "xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==";
+      };
+    };
+    "iconv-lite-0.4.24" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+      };
+    };
+    "ieee754-1.2.1" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
+        sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
+      };
+    };
+    "ignore-walk-3.0.3" = {
+      name = "ignore-walk";
+      packageName = "ignore-walk";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
+        sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.3" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "ini-1.3.8" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";
+        sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==";
+      };
+    };
+    "integer-3.0.1" = {
+      name = "integer";
+      packageName = "integer";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/integer/-/integer-3.0.1.tgz";
+        sha512 = "OqtER6W2GIJTIcnT5o2B/pWGgvurnVOYs4OZCgay40QEIbMTnNq4R0KSaIw1TZyFtPWjm5aNM+pBBMTfc3exmw==";
+      };
+    };
+    "ipaddr.js-1.9.1" = {
+      name = "ipaddr.js";
+      packageName = "ipaddr.js";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+      };
+    };
+    "is-arrayish-0.3.2" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+      };
+    };
+    "is-extendable-0.1.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    };
+    "is-fullwidth-code-point-1.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    };
+    "is-promise-2.2.2" = {
+      name = "is-promise";
+      packageName = "is-promise";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz";
+        sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==";
+      };
+    };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.13.1" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
+        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      };
+    };
+    "json-buffer-3.0.1" = {
+      name = "json-buffer";
+      packageName = "json-buffer";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz";
+        sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==";
+      };
+    };
+    "keyv-4.0.1" = {
+      name = "keyv";
+      packageName = "keyv";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz";
+        sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw==";
+      };
+    };
+    "kuler-2.0.0" = {
+      name = "kuler";
+      packageName = "kuler";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+        sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
+      };
+    };
+    "linkify-it-2.2.0" = {
+      name = "linkify-it";
+      packageName = "linkify-it";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz";
+        sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==";
+      };
+    };
+    "lodash-4.17.20" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+      };
+    };
+    "lodash.camelcase-4.3.0" = {
+      name = "lodash.camelcase";
+      packageName = "lodash.camelcase";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+      };
+    };
+    "lodash.padend-4.6.1" = {
+      name = "lodash.padend";
+      packageName = "lodash.padend";
+      version = "4.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz";
+        sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e";
+      };
+    };
+    "lodash.toarray-4.4.0" = {
+      name = "lodash.toarray";
+      packageName = "lodash.toarray";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz";
+        sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
+      };
+    };
+    "logform-1.10.0" = {
+      name = "logform";
+      packageName = "logform";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
+        sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
+      };
+    };
+    "logform-2.2.0" = {
+      name = "logform";
+      packageName = "logform";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
+      };
+    };
+    "lowdb-1.0.0" = {
+      name = "lowdb";
+      packageName = "lowdb";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz";
+        sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==";
+      };
+    };
+    "lowercase-keys-2.0.0" = {
+      name = "lowercase-keys";
+      packageName = "lowercase-keys";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
+        sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==";
+      };
+    };
+    "lru-cache-6.0.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+      };
+    };
+    "markdown-it-9.1.0" = {
+      name = "markdown-it";
+      packageName = "markdown-it";
+      version = "9.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz";
+        sha512 = "xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w==";
+      };
+    };
+    "matrix-discord-parser-0.1.7" = {
+      name = "matrix-discord-parser";
+      packageName = "matrix-discord-parser";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matrix-discord-parser/-/matrix-discord-parser-0.1.7.tgz";
+        sha512 = "zL1L52Wsc80IaVPXGVMjfumpN+PJ6zAuXJ6EKf8HTjPvPx4J03ybHHUrDPw455WxaJp00SmuDq+wZZyOZTvIeQ==";
+      };
+    };
+    "mdurl-1.0.1" = {
+      name = "mdurl";
+      packageName = "mdurl";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz";
+        sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
+      };
+    };
+    "media-typer-0.3.0" = {
+      name = "media-typer";
+      packageName = "media-typer";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    };
+    "merge-descriptors-1.0.1" = {
+      name = "merge-descriptors";
+      packageName = "merge-descriptors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    };
+    "methods-1.1.2" = {
+      name = "methods";
+      packageName = "methods";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    };
+    "mime-1.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+      };
+    };
+    "mime-2.5.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz";
+        sha512 = "ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==";
+      };
+    };
+    "mime-db-1.43.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.43.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
+        sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
+      };
+    };
+    "mime-types-2.1.26" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.26";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
+        sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
+      };
+    };
+    "mimic-response-1.0.1" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
+        sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
+      };
+    };
+    "mimic-response-2.1.0" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
+        sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
+      };
+    };
+    "mimic-response-3.1.0" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz";
+        sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==";
+      };
+    };
+    "minimalistic-assert-1.0.1" = {
+      name = "minimalistic-assert";
+      packageName = "minimalistic-assert";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "minipass-2.9.0" = {
+      name = "minipass";
+      packageName = "minipass";
+      version = "2.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
+        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
+      };
+    };
+    "minizlib-1.3.3" = {
+      name = "minizlib";
+      packageName = "minizlib";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
+        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "mkdirp-1.0.4" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+      };
+    };
+    "mkdirp-classic-0.5.3" = {
+      name = "mkdirp-classic";
+      packageName = "mkdirp-classic";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
+      };
+    };
+    "moment-2.29.1" = {
+      name = "moment";
+      packageName = "moment";
+      version = "2.29.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz";
+        sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
+      };
+    };
+    "morgan-1.10.0" = {
+      name = "morgan";
+      packageName = "morgan";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
+        sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+      };
+    };
+    "ms-2.1.3" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
+      };
+    };
+    "mx-puppet-bridge-0.1.4" = {
+      name = "mx-puppet-bridge";
+      packageName = "mx-puppet-bridge";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mx-puppet-bridge/-/mx-puppet-bridge-0.1.4.tgz";
+        sha512 = "Jg4hszVqQv1n35Mvb5HcfK4VafjB0LaCEay8ylgiu/M2oIPE0fadFNdQpkwssXmShDzSeth/xga3HgP8G6O5Fg==";
+      };
+    };
+    "nan-2.14.2" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
+        sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+      };
+    };
+    "napi-build-utils-1.0.2" = {
+      name = "napi-build-utils";
+      packageName = "napi-build-utils";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
+        sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
+      };
+    };
+    "needle-2.6.0" = {
+      name = "needle";
+      packageName = "needle";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz";
+        sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==";
+      };
+    };
+    "negotiator-0.6.2" = {
+      name = "negotiator";
+      packageName = "negotiator";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+      };
+    };
+    "node-abi-2.19.3" = {
+      name = "node-abi";
+      packageName = "node-abi";
+      version = "2.19.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz";
+        sha512 = "9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==";
+      };
+    };
+    "node-emoji-1.10.0" = {
+      name = "node-emoji";
+      packageName = "node-emoji";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz";
+        sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==";
+      };
+    };
+    "node-fetch-2.6.1" = {
+      name = "node-fetch";
+      packageName = "node-fetch";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz";
+        sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==";
+      };
+    };
+    "node-html-parser-1.4.9" = {
+      name = "node-html-parser";
+      packageName = "node-html-parser";
+      version = "1.4.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz";
+        sha512 = "UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==";
+      };
+    };
+    "node-pre-gyp-0.11.0" = {
+      name = "node-pre-gyp";
+      packageName = "node-pre-gyp";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
+        sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
+      };
+    };
+    "noop-logger-0.1.1" = {
+      name = "noop-logger";
+      packageName = "noop-logger";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz";
+        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
+      };
+    };
+    "nopt-4.0.3" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
+        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+      };
+    };
+    "normalize-url-4.5.0" = {
+      name = "normalize-url";
+      packageName = "normalize-url";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz";
+        sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==";
+      };
+    };
+    "normalize-version-1.0.5" = {
+      name = "normalize-version";
+      packageName = "normalize-version";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-version/-/normalize-version-1.0.5.tgz";
+        sha1 = "a6a2b9002dc6fa2e5f15ec2f0b2c0284fb499712";
+      };
+    };
+    "npm-bundled-1.1.1" = {
+      name = "npm-bundled";
+      packageName = "npm-bundled";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
+        sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+      };
+    };
+    "npm-normalize-package-bin-1.0.1" = {
+      name = "npm-normalize-package-bin";
+      packageName = "npm-normalize-package-bin";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
+        sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
+      };
+    };
+    "npm-packlist-1.4.8" = {
+      name = "npm-packlist";
+      packageName = "npm-packlist";
+      version = "1.4.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
+        sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
+      };
+    };
+    "npmlog-4.1.2" = {
+      name = "npmlog";
+      packageName = "npmlog";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+      };
+    };
+    "number-is-nan-1.0.1" = {
+      name = "number-is-nan";
+      packageName = "number-is-nan";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    };
+    "object-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
+    "object-hash-1.3.1" = {
+      name = "object-hash";
+      packageName = "object-hash";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
+        sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
+      };
+    };
+    "on-finished-2.3.0" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    };
+    "on-headers-1.0.2" = {
+      name = "on-headers";
+      packageName = "on-headers";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "one-time-1.0.0" = {
+      name = "one-time";
+      packageName = "one-time";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+        sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
+      };
+    };
+    "os-homedir-1.0.2" = {
+      name = "os-homedir";
+      packageName = "os-homedir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+      };
+    };
+    "os-tmpdir-1.0.2" = {
+      name = "os-tmpdir";
+      packageName = "os-tmpdir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+      };
+    };
+    "osenv-0.1.5" = {
+      name = "osenv";
+      packageName = "osenv";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
+        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+      };
+    };
+    "p-cancelable-2.0.0" = {
+      name = "p-cancelable";
+      packageName = "p-cancelable";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
+        sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
+      };
+    };
+    "packet-reader-1.0.0" = {
+      name = "packet-reader";
+      packageName = "packet-reader";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
+      };
+    };
+    "parse-srcset-1.0.2" = {
+      name = "parse-srcset";
+      packageName = "parse-srcset";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz";
+        sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1";
+      };
+    };
+    "parseurl-1.3.3" = {
+      name = "parseurl";
+      packageName = "parseurl";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+      };
+    };
+    "path-0.12.7" = {
+      name = "path";
+      packageName = "path";
+      version = "0.12.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path/-/path-0.12.7.tgz";
+        sha1 = "d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "path-to-regexp-0.1.7" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    };
+    "pg-8.5.1" = {
+      name = "pg";
+      packageName = "pg";
+      version = "8.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz";
+        sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==";
+      };
+    };
+    "pg-connection-string-2.4.0" = {
+      name = "pg-connection-string";
+      packageName = "pg-connection-string";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
+        sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+      };
+    };
+    "pg-int8-1.0.1" = {
+      name = "pg-int8";
+      packageName = "pg-int8";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+        sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
+      };
+    };
+    "pg-minify-1.6.2" = {
+      name = "pg-minify";
+      packageName = "pg-minify";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz";
+        sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==";
+      };
+    };
+    "pg-pool-3.2.2" = {
+      name = "pg-pool";
+      packageName = "pg-pool";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
+        sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+      };
+    };
+    "pg-promise-10.9.1" = {
+      name = "pg-promise";
+      packageName = "pg-promise";
+      version = "10.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.1.tgz";
+        sha512 = "Om5sYmsm2NWXP+D0Soappb4fuidER9qNLcnVo9nBPFqwPfpnBZZPzzLaVvwBXs//+kJ9L4bBTXm2iWNAp39e2A==";
+      };
+    };
+    "pg-protocol-1.4.0" = {
+      name = "pg-protocol";
+      packageName = "pg-protocol";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
+        sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+      };
+    };
+    "pg-types-2.2.0" = {
+      name = "pg-types";
+      packageName = "pg-types";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
+        sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
+      };
+    };
+    "pgpass-1.0.4" = {
+      name = "pgpass";
+      packageName = "pgpass";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz";
+        sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
+      };
+    };
+    "pify-3.0.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    };
+    "postcss-7.0.35" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "7.0.35";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz";
+        sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
+      };
+    };
+    "postgres-array-2.0.0" = {
+      name = "postgres-array";
+      packageName = "postgres-array";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
+      };
+    };
+    "postgres-bytea-1.0.0" = {
+      name = "postgres-bytea";
+      packageName = "postgres-bytea";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    };
+    "postgres-date-1.0.7" = {
+      name = "postgres-date";
+      packageName = "postgres-date";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
+      };
+    };
+    "postgres-interval-1.2.0" = {
+      name = "postgres-interval";
+      packageName = "postgres-interval";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+        sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
+      };
+    };
+    "prebuild-install-5.3.6" = {
+      name = "prebuild-install";
+      packageName = "prebuild-install";
+      version = "5.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz";
+        sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
+      };
+    };
+    "prism-media-1.2.3" = {
+      name = "prism-media";
+      packageName = "prism-media";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz";
+        sha512 = "fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A==";
+      };
+    };
+    "process-0.11.10" = {
+      name = "process";
+      packageName = "process";
+      version = "0.11.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz";
+        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "prom-client-13.0.0" = {
+      name = "prom-client";
+      packageName = "prom-client";
+      version = "13.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz";
+        sha512 = "M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A==";
+      };
+    };
+    "proxy-addr-2.0.6" = {
+      name = "proxy-addr";
+      packageName = "proxy-addr";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+      };
+    };
+    "pump-3.0.0" = {
+      name = "pump";
+      packageName = "pump";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+      };
+    };
+    "qs-6.7.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+      };
+    };
+    "quick-lru-5.1.1" = {
+      name = "quick-lru";
+      packageName = "quick-lru";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
+      };
+    };
+    "range-parser-1.2.1" = {
+      name = "range-parser";
+      packageName = "range-parser";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+      };
+    };
+    "raw-body-2.4.0" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+      };
+    };
+    "rc-1.2.8" = {
+      name = "rc";
+      packageName = "rc";
+      version = "1.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "reduce-flatten-1.0.1" = {
+      name = "reduce-flatten";
+      packageName = "reduce-flatten";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz";
+        sha1 = "258c78efd153ddf93cb561237f61184f3696e327";
+      };
+    };
+    "resolve-1.11.1" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz";
+        sha512 = "vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==";
+      };
+    };
+    "resolve-alpn-1.0.0" = {
+      name = "resolve-alpn";
+      packageName = "resolve-alpn";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz";
+        sha512 = "rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==";
+      };
+    };
+    "responselike-2.0.0" = {
+      name = "responselike";
+      packageName = "responselike";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz";
+        sha512 = "xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==";
+      };
+    };
+    "rimraf-2.7.1" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
+        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "sanitize-html-1.27.5" = {
+      name = "sanitize-html";
+      packageName = "sanitize-html";
+      version = "1.27.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz";
+        sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==";
+      };
+    };
+    "sax-1.2.4" = {
+      name = "sax";
+      packageName = "sax";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+      };
+    };
+    "semver-5.7.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz";
+        sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "semver-closest-0.1.2" = {
+      name = "semver-closest";
+      packageName = "semver-closest";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver-closest/-/semver-closest-0.1.2.tgz";
+        sha512 = "Q6qk0bPNlK5zG62mWFC8L0Qc6OJX76XRWxiPgZyrh98IZTL3HPErgUlPfCyrAPsHVpU+YP4lf5Mz+LzpId91Og==";
+      };
+    };
+    "send-0.17.1" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+      };
+    };
+    "serve-static-1.14.1" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "setimmediate-1.0.5" = {
+      name = "setimmediate";
+      packageName = "setimmediate";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz";
+        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+      };
+    };
+    "setprototypeof-1.1.1" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "simple-concat-1.0.1" = {
+      name = "simple-concat";
+      packageName = "simple-concat";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
+      };
+    };
+    "simple-get-3.1.0" = {
+      name = "simple-get";
+      packageName = "simple-get";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
+        sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
+      };
+    };
+    "simple-markdown-0.7.2" = {
+      name = "simple-markdown";
+      packageName = "simple-markdown";
+      version = "0.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.2.tgz";
+        sha512 = "XfCvqqzMyzRj4L7eIxJgGaQ2Gaxr20GhTFMB+1yuY8q3xffjzmOg4Q5tC0kcaJPV42NNUHCQDaRK6jzi3/RhrA==";
+      };
+    };
+    "simple-swizzle-0.2.2" = {
+      name = "simple-swizzle";
+      packageName = "simple-swizzle";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "spex-3.2.0" = {
+      name = "spex";
+      packageName = "spex";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz";
+        sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==";
+      };
+    };
+    "split2-3.2.2" = {
+      name = "split2";
+      packageName = "split2";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+        sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "stack-trace-0.0.10" = {
+      name = "stack-trace";
+      packageName = "stack-trace";
+      version = "0.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    };
+    "statuses-1.5.0" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    };
+    "steno-0.4.4" = {
+      name = "steno";
+      packageName = "steno";
+      version = "0.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz";
+        sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
+      };
+    };
+    "string-width-1.0.2" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-json-comments-2.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-6.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "table-layout-0.4.5" = {
+      name = "table-layout";
+      packageName = "table-layout";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz";
+        sha512 = "zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==";
+      };
+    };
+    "tar-4.4.10" = {
+      name = "tar";
+      packageName = "tar";
+      version = "4.4.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz";
+        sha512 = "g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==";
+      };
+    };
+    "tar-fs-2.1.1" = {
+      name = "tar-fs";
+      packageName = "tar-fs";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz";
+        sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==";
+      };
+    };
+    "tar-stream-2.2.0" = {
+      name = "tar-stream";
+      packageName = "tar-stream";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
+      };
+    };
+    "tdigest-0.1.1" = {
+      name = "tdigest";
+      packageName = "tdigest";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz";
+        sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
+      };
+    };
+    "text-hex-1.0.0" = {
+      name = "text-hex";
+      packageName = "text-hex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
+        sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
+      };
+    };
+    "toidentifier-1.0.0" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+      };
+    };
+    "triple-beam-1.3.0" = {
+      name = "triple-beam";
+      packageName = "triple-beam";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
+      };
+    };
+    "tslib-1.10.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz";
+        sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==";
+      };
+    };
+    "tslint-5.18.0" = {
+      name = "tslint";
+      packageName = "tslint";
+      version = "5.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz";
+        sha512 = "Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==";
+      };
+    };
+    "tsutils-2.29.0" = {
+      name = "tsutils";
+      packageName = "tsutils";
+      version = "2.29.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz";
+        sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
+      };
+    };
+    "tunnel-agent-0.6.0" = {
+      name = "tunnel-agent";
+      packageName = "tunnel-agent";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    };
+    "tweetnacl-1.0.3" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz";
+        sha512 = "6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==";
+      };
+    };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
+    "type-is-1.6.18" = {
+      name = "type-is";
+      packageName = "type-is";
+      version = "1.6.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+      };
+    };
+    "typescript-3.7.4" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "3.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz";
+        sha512 = "A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==";
+      };
+    };
+    "typical-2.6.1" = {
+      name = "typical";
+      packageName = "typical";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz";
+        sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
+      };
+    };
+    "typical-4.0.0" = {
+      name = "typical";
+      packageName = "typical";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz";
+        sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==";
+      };
+    };
+    "uc.micro-1.0.6" = {
+      name = "uc.micro";
+      packageName = "uc.micro";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz";
+        sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==";
+      };
+    };
+    "unescape-1.0.1" = {
+      name = "unescape";
+      packageName = "unescape";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz";
+        sha512 = "O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==";
+      };
+    };
+    "unescape-html-1.1.0" = {
+      name = "unescape-html";
+      packageName = "unescape-html";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unescape-html/-/unescape-html-1.1.0.tgz";
+        sha512 = "O9/yBNqIkArjS597iHez5hAaAdn7b8/230SX8IncgXAX5tWI9XlEQYaz6Qbou0Sloa9n6lx9G5s6hg5qhJyzGg==";
+      };
+    };
+    "unpipe-1.0.0" = {
+      name = "unpipe";
+      packageName = "unpipe";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    };
+    "useragent-generator-1.1.1-amkt-22079-finish.0" = {
+      name = "useragent-generator";
+      packageName = "useragent-generator";
+      version = "1.1.1-amkt-22079-finish.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/useragent-generator/-/useragent-generator-1.1.1-amkt-22079-finish.0.tgz";
+        sha512 = "jUVHvx1t3bVjx2dI9fG4iKzjO5WA6qtjWaR/PitNvd6zQMJNlFYehNwRUaAAKkhBCkw1T0U9e2oG9Sg3wSmc6Q==";
+      };
+    };
+    "util-0.10.4" = {
+      name = "util";
+      packageName = "util";
+      version = "0.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util/-/util-0.10.4.tgz";
+        sha512 = "0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "utils-merge-1.0.1" = {
+      name = "utils-merge";
+      packageName = "utils-merge";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "vary-1.1.2" = {
+      name = "vary";
+      packageName = "vary";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    };
+    "which-pm-runs-1.0.0" = {
+      name = "which-pm-runs";
+      packageName = "which-pm-runs";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
+        sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
+      };
+    };
+    "wide-align-1.1.3" = {
+      name = "wide-align";
+      packageName = "wide-align";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
+    "winston-3.3.3" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz";
+        sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
+      };
+    };
+    "winston-compat-0.1.5" = {
+      name = "winston-compat";
+      packageName = "winston-compat";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz";
+        sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==";
+      };
+    };
+    "winston-daily-rotate-file-3.10.0" = {
+      name = "winston-daily-rotate-file";
+      packageName = "winston-daily-rotate-file";
+      version = "3.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz";
+        sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==";
+      };
+    };
+    "winston-transport-4.4.0" = {
+      name = "winston-transport";
+      packageName = "winston-transport";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+      };
+    };
+    "wordwrapjs-3.0.0" = {
+      name = "wordwrapjs";
+      packageName = "wordwrapjs";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz";
+        sha512 = "mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "ws-7.4.1" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz";
+        sha512 = "pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "yallist-3.1.1" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
+        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
+      };
+    };
+    "yallist-4.0.0" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
+      };
+    };
+  };
+  args = {
+    name = "mx-puppet-discord";
+    packageName = "mx-puppet-discord";
+    version = "0.0.0";
+    src = ./.;
+    dependencies = [
+      sources."@babel/code-frame-7.0.0"
+      sources."@babel/highlight-7.0.0"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@discordjs/collection-0.1.6"
+      sources."@discordjs/form-data-3.0.1"
+      sources."@sindresorhus/is-3.1.2"
+      (sources."@sorunome/matrix-bot-sdk-0.5.8" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."mkdirp-1.0.4"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."@szmarczak/http-timer-4.0.5"
+      sources."@types/body-parser-1.19.0"
+      sources."@types/cacheable-request-6.0.1"
+      sources."@types/connect-3.4.34"
+      sources."@types/express-4.17.11"
+      sources."@types/express-serve-static-core-4.17.18"
+      sources."@types/http-cache-semantics-4.0.0"
+      sources."@types/keyv-3.1.1"
+      sources."@types/node-14.6.3"
+      sources."@types/prop-types-15.7.3"
+      sources."@types/qs-6.9.5"
+      sources."@types/range-parser-1.2.3"
+      sources."@types/react-17.0.0"
+      sources."@types/responselike-1.0.0"
+      (sources."@types/serve-static-1.13.9" // {
+        dependencies = [
+          sources."@types/mime-1.3.2"
+        ];
+      })
+      sources."abbrev-1.1.1"
+      sources."abort-controller-3.0.0"
+      sources."accepts-1.3.7"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-3.2.1"
+      sources."aproba-1.2.0"
+      sources."are-we-there-yet-1.1.5"
+      sources."argparse-1.0.10"
+      sources."array-back-3.1.0"
+      sources."array-flatten-1.1.1"
+      sources."assert-options-0.7.0"
+      sources."async-3.2.0"
+      sources."asynckit-0.4.0"
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.5.1"
+      sources."basic-auth-2.0.1"
+      sources."better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72"
+      sources."better-sqlite3-6.0.1"
+      sources."bindings-1.5.0"
+      sources."bintrees-1.0.1"
+      (sources."bl-4.0.3" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."blurhash-1.1.3"
+      sources."body-parser-1.19.0"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.7.1"
+      sources."buffer-writer-2.0.0"
+      sources."builtin-modules-1.1.1"
+      sources."bytes-3.1.0"
+      sources."cacheable-lookup-5.0.3"
+      sources."cacheable-request-7.0.1"
+      sources."canvas-2.6.1"
+      sources."chalk-2.4.2"
+      sources."chownr-1.1.4"
+      sources."clone-response-1.0.2"
+      sources."code-point-at-1.1.0"
+      sources."color-3.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.4"
+      sources."colors-1.4.0"
+      sources."colorspace-1.1.2"
+      sources."combined-stream-1.0.8"
+      sources."command-line-args-5.1.1"
+      (sources."command-line-usage-5.0.5" // {
+        dependencies = [
+          sources."array-back-2.0.0"
+          sources."typical-2.6.1"
+        ];
+      })
+      sources."commander-2.20.0"
+      sources."concat-map-0.0.1"
+      sources."console-control-strings-1.1.0"
+      sources."content-disposition-0.5.3"
+      sources."content-type-1.0.4"
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      sources."core-util-is-1.0.2"
+      sources."csstype-3.0.5"
+      sources."cycle-1.0.3"
+      sources."debug-2.6.9"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
+      sources."deep-extend-0.6.0"
+      sources."defer-to-connect-2.0.0"
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."detect-libc-1.0.3"
+      sources."diff-3.5.0"
+      sources."discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085"
+      (sources."dom-serializer-1.2.0" // {
+        dependencies = [
+          sources."domhandler-4.0.0"
+        ];
+      })
+      sources."domelementtype-2.1.0"
+      sources."domhandler-3.3.0"
+      (sources."domutils-2.4.4" // {
+        dependencies = [
+          sources."domhandler-4.0.0"
+        ];
+      })
+      sources."ee-first-1.1.1"
+      sources."enabled-2.0.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."entities-2.1.0"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."esutils-2.0.2"
+      sources."etag-1.8.1"
+      sources."event-target-shim-5.0.1"
+      sources."events-3.0.0"
+      sources."expand-template-2.0.3"
+      sources."expire-set-1.0.0"
+      sources."express-4.17.1"
+      sources."extend-shallow-2.0.1"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fecha-4.2.0"
+      sources."file-stream-rotator-0.4.1"
+      sources."file-type-12.4.2"
+      sources."file-uri-to-path-1.0.0"
+      sources."finalhandler-1.1.2"
+      sources."find-replace-3.0.0"
+      sources."fn.name-1.1.0"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."fs-constants-1.0.0"
+      sources."fs-minipass-1.2.7"
+      sources."fs.realpath-1.0.0"
+      sources."gauge-2.7.4"
+      sources."get-stream-5.2.0"
+      sources."github-from-package-0.0.0"
+      sources."glob-7.1.4"
+      sources."glob-to-regexp-0.4.1"
+      sources."got-11.6.0"
+      sources."graceful-fs-4.2.4"
+      sources."has-flag-3.0.0"
+      sources."has-unicode-2.0.1"
+      sources."hash.js-1.1.7"
+      sources."hasha-5.2.2"
+      sources."he-1.2.0"
+      sources."highlight.js-10.4.1"
+      sources."htmlencode-0.0.4"
+      sources."htmlparser2-4.1.0"
+      sources."http-cache-semantics-4.1.0"
+      sources."http-errors-1.7.2"
+      sources."http2-wrapper-1.0.0-beta.5.2"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.2.1"
+      sources."ignore-walk-3.0.3"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.3"
+      sources."ini-1.3.8"
+      sources."integer-3.0.1"
+      sources."ipaddr.js-1.9.1"
+      sources."is-arrayish-0.3.2"
+      sources."is-extendable-0.1.1"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-promise-2.2.2"
+      sources."is-stream-2.0.0"
+      sources."isarray-1.0.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.13.1"
+      sources."json-buffer-3.0.1"
+      sources."keyv-4.0.1"
+      sources."kuler-2.0.0"
+      sources."linkify-it-2.2.0"
+      sources."lodash-4.17.20"
+      sources."lodash.camelcase-4.3.0"
+      sources."lodash.padend-4.6.1"
+      sources."lodash.toarray-4.4.0"
+      (sources."logform-2.2.0" // {
+        dependencies = [
+          sources."ms-2.1.3"
+        ];
+      })
+      sources."lowdb-1.0.0"
+      sources."lowercase-keys-2.0.0"
+      sources."lru-cache-6.0.0"
+      (sources."markdown-it-9.1.0" // {
+        dependencies = [
+          sources."entities-1.1.2"
+        ];
+      })
+      sources."matrix-discord-parser-0.1.7"
+      sources."mdurl-1.0.1"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."methods-1.1.2"
+      sources."mime-2.5.0"
+      sources."mime-db-1.43.0"
+      sources."mime-types-2.1.26"
+      sources."mimic-response-1.0.1"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."minipass-2.9.0" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."minizlib-1.3.3"
+      sources."mkdirp-0.5.5"
+      sources."mkdirp-classic-0.5.3"
+      sources."moment-2.29.1"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."depd-2.0.0"
+        ];
+      })
+      sources."ms-2.0.0"
+      (sources."mx-puppet-bridge-0.1.4" // {
+        dependencies = [
+          sources."events-3.2.0"
+        ];
+      })
+      sources."nan-2.14.2"
+      sources."napi-build-utils-1.0.2"
+      (sources."needle-2.6.0" // {
+        dependencies = [
+          sources."debug-3.2.7"
+          sources."ms-2.1.3"
+        ];
+      })
+      sources."negotiator-0.6.2"
+      sources."node-abi-2.19.3"
+      sources."node-emoji-1.10.0"
+      sources."node-fetch-2.6.1"
+      sources."node-html-parser-1.4.9"
+      sources."node-pre-gyp-0.11.0"
+      sources."noop-logger-0.1.1"
+      sources."nopt-4.0.3"
+      sources."normalize-url-4.5.0"
+      sources."normalize-version-1.0.5"
+      sources."npm-bundled-1.1.1"
+      sources."npm-normalize-package-bin-1.0.1"
+      sources."npm-packlist-1.4.8"
+      sources."npmlog-4.1.2"
+      sources."number-is-nan-1.0.1"
+      sources."object-assign-4.1.1"
+      sources."object-hash-1.3.1"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."one-time-1.0.0"
+      sources."os-homedir-1.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."osenv-0.1.5"
+      sources."p-cancelable-2.0.0"
+      sources."packet-reader-1.0.0"
+      sources."parse-srcset-1.0.2"
+      sources."parseurl-1.3.3"
+      sources."path-0.12.7"
+      sources."path-is-absolute-1.0.1"
+      sources."path-parse-1.0.6"
+      sources."path-to-regexp-0.1.7"
+      sources."pg-8.5.1"
+      sources."pg-connection-string-2.4.0"
+      sources."pg-int8-1.0.1"
+      sources."pg-minify-1.6.2"
+      sources."pg-pool-3.2.2"
+      sources."pg-promise-10.9.1"
+      sources."pg-protocol-1.4.0"
+      sources."pg-types-2.2.0"
+      sources."pgpass-1.0.4"
+      sources."pify-3.0.0"
+      (sources."postcss-7.0.35" // {
+        dependencies = [
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."postgres-array-2.0.0"
+      sources."postgres-bytea-1.0.0"
+      sources."postgres-date-1.0.7"
+      sources."postgres-interval-1.2.0"
+      sources."prebuild-install-5.3.6"
+      sources."prism-media-1.2.3"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."prom-client-13.0.0"
+      sources."proxy-addr-2.0.6"
+      sources."pump-3.0.0"
+      sources."qs-6.7.0"
+      sources."quick-lru-5.1.1"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      sources."rc-1.2.8"
+      sources."readable-stream-2.3.7"
+      sources."reduce-flatten-1.0.1"
+      sources."resolve-1.11.1"
+      sources."resolve-alpn-1.0.0"
+      sources."responselike-2.0.0"
+      sources."rimraf-2.7.1"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sanitize-html-1.27.5"
+      sources."sax-1.2.4"
+      sources."semver-5.7.0"
+      sources."semver-closest-0.1.2"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          sources."mime-1.6.0"
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      sources."setimmediate-1.0.5"
+      sources."setprototypeof-1.1.1"
+      sources."signal-exit-3.0.3"
+      sources."simple-concat-1.0.1"
+      (sources."simple-get-3.1.0" // {
+        dependencies = [
+          sources."decompress-response-4.2.1"
+          sources."mimic-response-2.1.0"
+        ];
+      })
+      sources."simple-markdown-0.7.2"
+      sources."simple-swizzle-0.2.2"
+      sources."source-map-0.6.1"
+      sources."spex-3.2.0"
+      (sources."split2-3.2.2" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."sprintf-js-1.0.3"
+      sources."stack-trace-0.0.10"
+      sources."statuses-1.5.0"
+      sources."steno-0.4.4"
+      sources."string-width-1.0.2"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-3.0.1"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-5.5.0"
+      (sources."table-layout-0.4.5" // {
+        dependencies = [
+          sources."array-back-2.0.0"
+          sources."typical-2.6.1"
+        ];
+      })
+      (sources."tar-4.4.10" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."tar-fs-2.1.1"
+      (sources."tar-stream-2.2.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."tdigest-0.1.1"
+      sources."text-hex-1.0.0"
+      sources."toidentifier-1.0.0"
+      sources."triple-beam-1.3.0"
+      sources."tslib-1.10.0"
+      sources."tslint-5.18.0"
+      sources."tsutils-2.29.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-1.0.3"
+      sources."type-fest-0.8.1"
+      sources."type-is-1.6.18"
+      sources."typescript-3.7.4"
+      sources."typical-4.0.0"
+      sources."uc.micro-1.0.6"
+      sources."unescape-1.0.1"
+      sources."unescape-html-1.1.0"
+      sources."unpipe-1.0.0"
+      sources."useragent-generator-1.1.1-amkt-22079-finish.0"
+      sources."util-0.10.4"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."vary-1.1.2"
+      sources."which-pm-runs-1.0.0"
+      sources."wide-align-1.1.3"
+      (sources."winston-3.3.3" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      (sources."winston-compat-0.1.5" // {
+        dependencies = [
+          sources."fecha-2.3.3"
+          sources."logform-1.10.0"
+          sources."ms-2.1.3"
+        ];
+      })
+      (sources."winston-daily-rotate-file-3.10.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."winston-transport-4.4.0"
+      (sources."wordwrapjs-3.0.0" // {
+        dependencies = [
+          sources."typical-2.6.1"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."ws-7.4.1"
+      sources."xtend-4.0.2"
+      sources."yallist-4.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = false;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+  nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+    src = stdenv.mkDerivation {
+      name = args.name + "-package-json";
+      src = nix-gitignore.gitignoreSourcePure [
+        "*"
+        "!package.json"
+        "!package-lock.json"
+      ] args.src;
+      dontBuild = true;
+      installPhase = "mkdir -p $out; cp -r ./* $out;";
+    };
+  });
+}
diff --git a/nixpkgs/pkgs/servers/nas/default.nix b/nixpkgs/pkgs/servers/nas/default.nix
index 319bee115c28..4732368ac887 100644
--- a/nixpkgs/pkgs/servers/nas/default.nix
+++ b/nixpkgs/pkgs/servers/nas/default.nix
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
     description = "A network transparent, client/server audio transport system";
     homepage = "http://radscan.com/nas.html";
     license = licenses.mit;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/nextcloud/default.nix b/nixpkgs/pkgs/servers/nextcloud/default.nix
index 8c15ca57e15f..3f2b1798a2cb 100644
--- a/nixpkgs/pkgs/servers/nextcloud/default.nix
+++ b/nixpkgs/pkgs/servers/nextcloud/default.nix
@@ -16,8 +16,10 @@ let
     passthru.tests = nixosTests.nextcloud;
 
     installPhase = ''
+      runHook preInstall
       mkdir -p $out/
       cp -R . $out/
+      runHook postInstall
     '';
 
     meta = with lib; {
@@ -58,8 +60,8 @@ in {
   };
 
   nextcloud21 = generic {
-    version = "21.0.1";
-    sha256 = "dd7c8ccc01547914a75b44bbf86028289c8919dc39f4e2e720147b6bd596aebe";
+    version = "21.0.2";
+    sha256 = "5e5b38109a3485db5fd2d248f24478eabe6c0790ec10b030acbbee207d5511fe";
   };
   # tip: get she sha with:
   # curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'
diff --git a/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix b/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
index ca2001817a34..cab21080a043 100644
--- a/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
+++ b/nixpkgs/pkgs/servers/nosql/cassandra/generic.nix
@@ -1,22 +1,34 @@
-{ lib, stdenv, fetchurl, python, makeWrapper, gawk, bash, getopt, procps
-, which, jre, coreutils, nixosTests
-# generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11
+{ lib
+, stdenv
+, fetchurl
+, python
+, makeWrapper
+, gawk
+, bash
+, getopt
+, procps
+, which
+, jre
+, coreutils
+, nixosTests
+  # generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11
 , generation
-, version, sha256
-, extraMeta ? {}
+, version
+, sha256
+, extraMeta ? { }
 , ...
 }:
 
 let
   libPath = lib.makeLibraryPath [ stdenv.cc.cc ];
-  binPath = with lib; makeBinPath ([
+  binPath = lib.makeBinPath [
     bash
     getopt
     gawk
     which
     jre
     procps
-  ]);
+  ];
 in
 
 stdenv.mkDerivation rec {
@@ -90,13 +102,14 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/cqlsh --prefix PATH : ${python}/bin
 
     runHook postInstall
-    '';
+  '';
 
   passthru = {
     tests =
       let
         test = nixosTests."cassandra_${generation}";
-      in {
+      in
+      {
         nixos =
           assert test.testPackage.version == version;
           test;
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb/default.nix b/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
index 98bd45516e27..16449d73fdac 100644
--- a/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "influxdb";
-  version = "1.8.5";
+  version = "1.8.6";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qKkCTsSUejqJhMzAgFJYMGalAUepUaP/caocRwnKflg=";
+    sha256 = "sha256-v58druwTVeUOItbBUNr8lNsFlam9v0sxXlTeHlM0g6A=";
   };
 
   vendorSha256 = "sha256-t7uwrsrF4LYdRjOhwdsCouDJXvD9364Ma5gvKezvi5o=";
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb2/default.nix b/nixpkgs/pkgs/servers/nosql/influxdb2/default.nix
index bace331e05c8..1e65689444fe 100644
--- a/nixpkgs/pkgs/servers/nosql/influxdb2/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/influxdb2/default.nix
@@ -7,21 +7,23 @@
 , mkYarnPackage
 , pkg-config
 , rustPlatform
+, stdenv
+, libiconv
 }:
 
 # Note for maintainers: use ./update-influxdb2.sh to update the Yarn
 # dependencies nix expression.
 
 let
-  version = "2.0.2";
-  shorthash = "84496e507a"; # git rev-parse HEAD with 2.0.2 checked out
-  libflux_version = "0.95.0";
+  version = "2.0.6";
+  shorthash = "4db98b4c9a"; # git rev-parse HEAD with 2.0.6 checked out
+  libflux_version = "0.115.0";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = "influxdb";
     rev = "v${version}";
-    sha256 = "05s09crqgbyfdck33zwax5l47jpc4wh04yd8zsm658iksdgzpmnn";
+    sha256 = "1x74p87csx4m4cgijk57xs75nikv3bnh7skgnzk30ab1ar13iirw";
   };
 
   ui = mkYarnPackage {
@@ -31,7 +33,7 @@ let
     yarnNix = ./influx-ui-yarndeps.nix;
     configurePhase = ''
       cp -r $node_modules ui/node_modules
-      rsync -r $node_modules/../deps/chronograf-ui/node_modules/ ui/node_modules
+      rsync -r $node_modules/../deps/influxdb-ui/node_modules/ ui/node_modules
     '';
     INFLUXDB_SHA = shorthash;
     buildPhase = ''
@@ -52,12 +54,13 @@ let
       owner = "influxdata";
       repo = "flux";
       rev = "v${libflux_version}";
-      sha256 = "07jz2nw3zswg9f4p5sb5r4hpg3n4qibjcgs9sk9csns70h5rp9j3";
+      sha256 = "0zplwsk9xidv8l9sqbxqivy6q20ryd31fhrzspn1mjn4i45kkwz1";
     };
     sourceRoot = "source/libflux";
-    cargoSha256 = "0y5xjkqpaxp9qq1qj39zw3mnvkbbb9g4fa5cli77nhfwz288xx6h";
+    cargoSha256 = "06gh466q7qkid0vs5scic0qqlz3h81yb00nwn8nwq8ppr5z2ijyq";
     nativeBuildInputs = [ llvmPackages.libclang ];
-    LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+    buildInputs = lib.optional stdenv.isDarwin libiconv;
+    LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
     pkgcfg = ''
       Name: flux
       Version: ${libflux_version}
@@ -71,6 +74,8 @@ let
       cp -r $NIX_BUILD_TOP/source/libflux/include/influxdata $out/include
       substitute $pkgcfgPath $out/pkgconfig/flux.pc \
         --replace /out $out
+    '' + lib.optionalString stdenv.isDarwin ''
+      install_name_tool -id $out/lib/libflux.dylib $out/lib/libflux.dylib
     '';
   };
 in buildGoModule {
@@ -80,7 +85,7 @@ in buildGoModule {
 
   nativeBuildInputs = [ go-bindata pkg-config ];
 
-  vendorSha256 = "0lviz7l5zbghyfkp0lvlv8ykpak5hhkfal8d7xwvpsm8q3sghc8a";
+  vendorSha256 = "03pabm0h9q0v5dfdq9by2l2n32bz9imwalz0aw897vsrfhci0ldf";
   subPackages = [ "cmd/influxd" "cmd/influx" ];
 
   PKG_CONFIG_PATH = "${flux}/pkgconfig";
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-package.json b/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-package.json
index d57813bf2a84..1a3840f15487 100644
--- a/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-package.json
+++ b/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-package.json
@@ -1,12 +1,12 @@
 {
-  "name": "chronograf-ui",
-  "version": "2.0.2",
+  "name": "influxdb-ui",
+  "version": "2.0.5",
   "private": false,
-  "license": "AGPL-3.0",
+  "license": "MIT",
   "description": "",
   "repository": {
     "type": "git",
-    "url": "github:influxdata/chronograf"
+    "url": "github:influxdata/ui"
   },
   "engines": {
     "node": ">=10.5.0",
@@ -40,6 +40,7 @@
     "eslint:circleci": "eslint",
     "eslint:fix": "eslint --fix '{src,cypress}/**/*.{ts,tsx}'",
     "prettier": "prettier --config .prettierrc.json --check '{src,cypress}/**/*.{ts,tsx}'",
+    "prettier:circleci": "prettier --config .prettierrc.json --check",
     "prettier:fix": "prettier --config .prettierrc.json --write '{src,cypress}/**/*.{ts,tsx}'",
     "tsc": "tsc -p ./tsconfig.json --noEmit --pretty --skipLibCheck",
     "tsc:cypress": "tsc -p ./cypress/tsconfig.json --noEmit --pretty --skipLibCheck",
@@ -134,7 +135,7 @@
   "dependencies": {
     "@influxdata/clockface": "2.3.4",
     "@influxdata/flux": "^0.5.1",
-    "@influxdata/flux-lsp-browser": "^0.5.23",
+    "@influxdata/flux-lsp-browser": "^0.5.41",
     "@influxdata/giraffe": "0.29.0",
     "@influxdata/influx": "0.5.5",
     "@influxdata/influxdb-templates": "0.9.0",
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix b/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix
index 1779d270cf1e..53795e76322e 100644
--- a/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix
+++ b/nixpkgs/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix
@@ -666,11 +666,11 @@
       };
     }
     {
-      name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.23.tgz";
+      name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.41.tgz";
       path = fetchurl {
-        name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.23.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/flux-lsp-browser/-/flux-lsp-browser-0.5.23.tgz";
-        sha1 = "b3d1579e26ff21a11771003cbcaebe5fef82d73c";
+        name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.41.tgz";
+        url  = "https://registry.yarnpkg.com/@influxdata/flux-lsp-browser/-/flux-lsp-browser-0.5.41.tgz";
+        sha1 = "abf6c5ad253317f34a9217ecfd250d78fe625a83";
       };
     }
     {
diff --git a/nixpkgs/pkgs/servers/nosql/redis/default.nix b/nixpkgs/pkgs/servers/nosql/redis/default.nix
index 48dcbb8f8138..14061974a9dd 100644
--- a/nixpkgs/pkgs/servers/nosql/redis/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/redis/default.nix
@@ -5,20 +5,22 @@
 
 stdenv.mkDerivation rec {
   pname = "redis";
-  version = "6.2.1";
+  version = "6.2.4";
 
   src = fetchurl {
     url = "https://download.redis.io/releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-zSIlBQEsziCyVoL8qTHsk70hrpLLSr/nQs97dqqQdSA=";
+    sha256 = "0vp1d9mlfsppry3nsj9f7bmh9wjgsy3jggp24sac1hhgl43c8cms";
   };
 
   # Cross-compiling fixes
   configurePhase = ''
+    runHook preConfigure
     ${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
       # This fixes hiredis, which has the AR awkwardly coded.
       # Probably a good candidate for a patch upstream.
       makeFlagsArray+=('STLIB_MAKE_CMD=${stdenv.cc.targetPrefix}ar rcs $(STLIBNAME)')
     ''}
+    runHook postConfigure
   '';
 
   nativeBuildInputs = [ pkg-config ];
@@ -37,6 +39,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  hardeningEnable = [ "pie" ];
+
   NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [ "-std=c11" ];
 
   doCheck = false; # needs tcl
diff --git a/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix b/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
index a9a74f0b75f3..6cbdab1b59fe 100644
--- a/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
+++ b/nixpkgs/pkgs/servers/nosql/riak/2.2.0.nix
@@ -26,7 +26,8 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "riak-2.2.0";
+  pname = "riak";
+  version = "2.2.0";
 
   nativeBuildInputs = [ unzip ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix b/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
index d7612d30764a..12ad70375121 100644
--- a/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "VictoriaMetrics";
-  version = "1.54.1";
+  version = "1.59.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nZSNn1vLk3y6s4ie1AkSkGmKUiIrcBr3yKW5uAEtRt0=";
+    sha256 = "sha256-2i9rmk9aAnjTJY+w/NKJOaLX+tpkt3vG07iLCsSGzdU=";
   };
 
   vendorSha256 = null;
@@ -22,5 +22,7 @@ buildGoModule rec {
     description = "fast, cost-effective and scalable time series database, long-term remote storage for Prometheus";
     license = licenses.asl20;
     maintainers = [ maintainers.yorickvp ];
+    changelog = "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v${version}";
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/nzbhydra2/default.nix b/nixpkgs/pkgs/servers/nzbhydra2/default.nix
index 3aef89ecd8f1..12d2c0b7070e 100644
--- a/nixpkgs/pkgs/servers/nzbhydra2/default.nix
+++ b/nixpkgs/pkgs/servers/nzbhydra2/default.nix
@@ -2,17 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "nzbhydra2";
-  version = "3.13.2";
+  version = "3.14.1";
 
   src = fetchzip {
     url = "https://github.com/theotherp/${pname}/releases/download/v${version}/${pname}-${version}-linux.zip";
-    sha512 = "2pi91y966qnq6q9qqnhglmbj4610jxyyqxiwa8zfmb8r48mzwzy3q5ga00h9qbhi6a8ghrfh1yvj4h9m17gk7l3rc5fw0r3mrk437nj";
+    sha512 = "2mfrqqwrfjvr48vm4r0spda3vlg1h511r6hrlv7k9233ps97bjjir6hms82lgqnlirsixayxs47cldjy8amdn3vc6kxsifmbd6a924p";
     stripRoot = false;
   };
 
   nativeBuildInputs = [ jre makeWrapper unzip ];
 
   installPhase = ''
+    runHook preInstall
+
     install -d -m 755 "$out/lib/${pname}"
     cp -dpr --no-preserve=ownership "lib" "readme.md" "$out/lib/nzbhydra2"
     install -D -m 755 "nzbhydra2wrapperPy3.py" "$out/lib/nzbhydra2/nzbhydra2wrapperPy3.py"
@@ -20,6 +22,8 @@ stdenv.mkDerivation rec {
     makeWrapper ${python3}/bin/python $out/bin/nzbhydra2 \
       --add-flags "$out/lib/nzbhydra2/nzbhydra2wrapperPy3.py" \
       --prefix PATH ":" ${jre}/bin
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/oauth2-proxy/default.nix b/nixpkgs/pkgs/servers/oauth2-proxy/default.nix
index 7c2bcbe4740a..fe4335a74114 100644
--- a/nixpkgs/pkgs/servers/oauth2-proxy/default.nix
+++ b/nixpkgs/pkgs/servers/oauth2-proxy/default.nix
@@ -20,6 +20,6 @@ buildGoModule rec {
     description = "A reverse proxy that provides authentication with Google, Github, or other providers";
     homepage = "https://github.com/oauth2-proxy/oauth2-proxy/";
     license = licenses.mit;
-    maintainers = with maintainers; [ yorickvp knl ];
+    maintainers = with maintainers; teams.serokell.members ++ [ knl ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/ombi/default.nix b/nixpkgs/pkgs/servers/ombi/default.nix
index bbad311eddaf..a2ffc449d47a 100644
--- a/nixpkgs/pkgs/servers/ombi/default.nix
+++ b/nixpkgs/pkgs/servers/ombi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, patchelf, openssl, libunwind, zlib, krb5, icu, nixosTests }:
+{ lib, stdenv, fetchurl, makeWrapper, autoPatchelfHook, fixDarwinDylibNames, zlib, krb5, openssl, icu, nixosTests }:
 
 let
   os = if stdenv.isDarwin then "osx" else "linux";
@@ -10,20 +10,14 @@ let
     "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-Cuvz9Mhwpg8RIaiSXib+QW00DM66qPRQulrchRL2BSk=";
-    arm64-linux_hash = "sha256-uyVwa73moHWMZScNNSOU17lALuK3PC/cvTZPJ9qg7JQ=";
-    x64-osx_hash = "sha256-FGXLsfEuCW94D786LJ/wvA9TakOn5sG2M1rDXPQicYw=";
+    x64-linux_hash = "sha256-9m5vWobkibqOHsuIJmvEHuwsuJogvQQe8h0dvFj62tw=";
+    arm64-linux_hash = "sha256-OBm4j5Ez04XLjp4DHyOrwSOSGanuuI8g2y2wZaotH8M=";
+    x64-osx_hash = "sha256-UPf6Yl0nbhmiWq9oGyi7sRhlahB6zHL7nTj7GRlKoII=";
   }."${arch}-${os}_hash";
 
-  rpath = lib.makeLibraryPath [
-    stdenv.cc.cc openssl libunwind zlib krb5 icu
-  ];
-
-  dynamicLinker = stdenv.cc.bintools.dynamicLinker;
-
 in stdenv.mkDerivation rec {
   pname = "ombi";
-  version = "4.0.1292";
+  version = "4.0.1345";
 
   sourceRoot = ".";
 
@@ -32,25 +26,20 @@ in stdenv.mkDerivation rec {
     sha256 = hash;
   };
 
-  buildInputs = [ makeWrapper patchelf ];
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ]
+    ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+
+  propagatedBuildInputs = [ stdenv.cc.cc zlib krb5 ];
 
   installPhase = ''
     mkdir -p $out/{bin,share/${pname}-${version}}
     cp -r * $out/share/${pname}-${version}
 
     makeWrapper $out/share/${pname}-${version}/Ombi $out/bin/Ombi \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl icu ]} \
       --run "cd $out/share/${pname}-${version}"
   '';
 
-  dontPatchELF = true;
-  postFixup = ''
-    patchelf --set-interpreter "${dynamicLinker}" \
-      --set-rpath "$ORIGIN:${rpath}" $out/share/${pname}-${version}/Ombi
-
-    find $out -type f -name "*.so" -exec \
-      patchelf --set-rpath '$ORIGIN:${rpath}' {} ';'
-  '';
-
   passthru = {
     updateScript = ./update.sh;
     tests.smoke-test = nixosTests.ombi;
diff --git a/nixpkgs/pkgs/servers/openafs/1.8/module.nix b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
index 53389db39c9c..2e33e61c0e52 100644
--- a/nixpkgs/pkgs/servers/openafs/1.8/module.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
@@ -49,6 +49,16 @@ in stdenv.mkDerivation {
       url = "https://github.com/openafs/openafs/commit/ee53dd3bc087a05e22fc4111297a51ddb30013f0.patch";
       sha256 = "0dfab3zk0dmf6iksna5n09lf5dn4f8w43q4irl2yf5dgqm35shkr";
     })
+    # Linux: Create wrapper for setattr_prepare
+    (fetchpatch {
+      url = "https://github.com/openafs/openafs/commit/5a5d358b02b88d6d2c7a27a75149e35b1de7db38.patch";
+      sha256 = "07gywsg41cz5h6iafr4pb0gb9jnsb58xkwn479lw46b3y5jgz7ki";
+    })
+    # Linux 5.12: Add user_namespace param to inode ops
+    (fetchpatch {
+      url = "https://github.com/openafs/openafs/commit/c747b15dd2877e6d17e3e6b940ae78c1e1ccd3ea.patch";
+      sha256 = "0bbqmx4nkmfkapk25zrv9ivhhs91rn9dizb1lkfs7a6937q1kaqh";
+    })
   ];
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/servers/openafs/1.9/srcs.nix b/nixpkgs/pkgs/servers/openafs/1.9/srcs.nix
index 8c5f63cac111..853cd2aabad9 100644
--- a/nixpkgs/pkgs/servers/openafs/1.9/srcs.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.9/srcs.nix
@@ -1,14 +1,14 @@
 { fetchurl }:
 rec {
-  version = "1.9.0";
+  version = "1.9.1";
   src = fetchurl {
     url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "1jw99zwisq25l0smdm8f0gfwhynk532s2ch44blrvxyd7all8kcd";
+    sha256 = "sha256-7rHihVR4VobHAzt0ZALFOLJnlfd1Qwsa5ohpRFWBPbw=";
   };
 
   srcs = [ src
     (fetchurl {
       url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
-      sha256 = "03x1pv8l4bv2fdns1l4sfy200nggy0a4b1f7qd0mnggdaj12c4jp";
+      sha256 = "sha256-pvF8CdTl+5DNuymNvhb3UrGW05LcXRv8cZp2QQlXF+E=";
     })];
 }
diff --git a/nixpkgs/pkgs/servers/osrm-backend/default.nix b/nixpkgs/pkgs/servers/osrm-backend/default.nix
index c3ca8baaf7c1..187a4c4adb11 100644
--- a/nixpkgs/pkgs/servers/osrm-backend/default.nix
+++ b/nixpkgs/pkgs/servers/osrm-backend/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osrm-backend";
-  version = "5.24.0";
+  version = "5.25.0";
 
   src = fetchFromGitHub {
     owner  = "Project-OSRM";
     repo   = "osrm-backend";
     rev = "v${version}";
-    sha256 = "sha256-Srqe6XIF9Fs869Dp25+63ikgO7YlyT0IUJr0qMxunao=";
+    sha256 = "sha256-wmhm3q93HTv4+VMlF9rhms4uw4LJBozOKTtHpDgAbrU=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/servers/pies/default.nix b/nixpkgs/pkgs/servers/pies/default.nix
index 46cc9562fb15..d96835c94978 100644
--- a/nixpkgs/pkgs/servers/pies/default.nix
+++ b/nixpkgs/pkgs/servers/pies/default.nix
@@ -1,10 +1,11 @@
 { fetchurl, lib, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "pies-1.3";
+  pname = "pies";
+  version = "1.3";
 
   src = fetchurl {
-    url = "mirror://gnu/pies/${name}.tar.bz2";
+    url = "mirror://gnu/pies/${pname}-${version}.tar.bz2";
     sha256 = "12r7rjjyibjdj08dvwbp0iflfpzl4s0zhn6cr6zj3hwf9gbzgl1g";
   };
 
diff --git a/nixpkgs/pkgs/servers/pinnwand/default.nix b/nixpkgs/pkgs/servers/pinnwand/default.nix
index 507453f5507f..44dc87d1989e 100644
--- a/nixpkgs/pkgs/servers/pinnwand/default.nix
+++ b/nixpkgs/pkgs/servers/pinnwand/default.nix
@@ -7,24 +7,16 @@
 
 with python3.pkgs; buildPythonApplication rec {
   pname = "pinnwand";
-  version = "1.2.3";
+  version = "1.3.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "supakeen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p6agvp136q6km7gjfv8dpjn6x4ap770lqa40ifblyhw13bsrqlh";
+    sha256 = "046xk2y59wa0pdp7s3hp1gh8sqdw0yl4xab22r2x44iwwcyb0gy5";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/supakeen/pinnwand/issues/110
-      url = "https://github.com/supakeen/pinnwand/commit/b9e72abb7f25104f5e57248294ed9ae1dbc87240.patch";
-      sha256 = "098acif9ck165398bp7vwfr9g7sj9q3pcdc42z5y63m1nbf8naan";
-    })
-  ];
-
   nativeBuildInputs = [
     poetry-core
   ];
@@ -35,6 +27,7 @@ with python3.pkgs; buildPythonApplication rec {
     pygments
     pygments-better-html
     sqlalchemy
+    token-bucket
     toml
     tornado
   ];
diff --git a/nixpkgs/pkgs/servers/plex/raw.nix b/nixpkgs/pkgs/servers/plex/raw.nix
index 68168618c558..8b9282341b3e 100644
--- a/nixpkgs/pkgs/servers/plex/raw.nix
+++ b/nixpkgs/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.22.2.4282-a97b03fad";
+  version = "1.23.2.4625-a83d2d0f9";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
-    sha256 = "01krx6vhk24wm2hikxkfv8m53y8b4yqnkii4j9zf48f1a9hlj2zp";
+    sha256 = "17md53saxl7x45kgj9wdf7jr61ncnapa418c1lf37qbdqmid343c";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "04wzv15pnd4sn6cy62m8prvsxpxj4sg3q9ahwsrn2cj31vgayg0i";
+    sha256 = "1nisjz4g924di73zjkgwx7nk3gkbykj6bkkgzmlm84dq3rgqnisk";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/nixpkgs/pkgs/servers/pr-tracker/default.nix b/nixpkgs/pkgs/servers/pr-tracker/default.nix
new file mode 100644
index 000000000000..d7bb27b4f29b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/pr-tracker/default.nix
@@ -0,0 +1,35 @@
+{ rustPlatform
+, lib
+, fetchurl
+, openssl
+, pkg-config
+, systemd
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pr-tracker";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "https://git.qyliss.net/pr-tracker/snapshot/pr-tracker-${version}.tar.xz";
+    sha256 = "0881ckb4y762isisf9d6xk6fh9207xi1i04kays298zx2dq6gh6h";
+  };
+
+  cargoSha256 = "0r8pxg65s5jv95a0g8pzr693za7jfb4rv0wc739lkbpf0dssw8sr";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl systemd ];
+
+  meta = with lib; {
+    changelog = "https://git.qyliss.net/pr-tracker/plain/NEWS?h=${version}";
+    description = "Nixpkgs pull request channel tracker";
+    longDescription = ''
+      A web server that displays the path a Nixpkgs pull request will take
+      through the various release channels.
+    '';
+    platforms = platforms.linux;
+    homepage = "https://git.qyliss.net/pr-tracker";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ qyliss sumnerevans ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/prayer/default.nix b/nixpkgs/pkgs/servers/prayer/default.nix
index fe3cabcf9d7b..c335358b6dd1 100644
--- a/nixpkgs/pkgs/servers/prayer/default.nix
+++ b/nixpkgs/pkgs/servers/prayer/default.nix
@@ -5,10 +5,11 @@ let
     "-e 's/CCLIENT_SSL_ENABLE.*= false/CCLIENT_SSL_ENABLE=true/'";
 in
 stdenv.mkDerivation rec {
-  name = "prayer-1.3.5";
+  pname = "prayer";
+  version = "1.3.5";
 
   src = fetchurl {
-    url = "ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/${name}.tar.gz";
+    url = "ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/${pname}-${version}.tar.gz";
     sha256 = "135fjbxjn385b6cjys6qhbwfw61mdcl2akkll4jfpdzfvhbxlyda";
   };
 
diff --git a/nixpkgs/pkgs/servers/pulseaudio/default.nix b/nixpkgs/pkgs/servers/pulseaudio/default.nix
index bebe4801c65e..10b18dd1ae1d 100644
--- a/nixpkgs/pkgs/servers/pulseaudio/default.nix
+++ b/nixpkgs/pkgs/servers/pulseaudio/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, autoreconfHook
 , libsndfile, libtool, makeWrapper, perlPackages
-, xorg, libcap, alsaLib, glib, dconf
+, xorg, libcap, alsa-lib, glib, dconf
 , avahi, libjack2, libasyncns, lirc, dbus
 , sbc, bluez5, udev, openssl, fftwFloat
 , soxr, speexdsp, systemd, webrtc-audio-processing
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
       ++ lib.optional jackaudioSupport libjack2
       ++ lib.optionals x11Support [ xorg.xlibsWrapper xorg.libXtst xorg.libXi ]
       ++ lib.optional useSystemd systemd
-      ++ lib.optionals stdenv.isLinux [ alsaLib udev ]
+      ++ lib.optionals stdenv.isLinux [ alsa-lib udev ]
       ++ lib.optional airtunesSupport openssl
       ++ lib.optionals bluetoothSupport [ bluez5 sbc ]
       ++ lib.optional remoteControlSupport lirc
diff --git a/nixpkgs/pkgs/servers/pulseaudio/pali.nix b/nixpkgs/pkgs/servers/pulseaudio/pali.nix
index cc11f98a8290..b07c2fd4ac70 100644
--- a/nixpkgs/pkgs/servers/pulseaudio/pali.nix
+++ b/nixpkgs/pkgs/servers/pulseaudio/pali.nix
@@ -11,7 +11,7 @@
 , perlPackages
 , xorg
 , libcap
-, alsaLib
+, alsa-lib
 , glib
 , dconf
 , avahi
@@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
       xorg.libXtst
       xorg.xlibsWrapper
     ] ++ lib.optionals stdenv.isLinux [
-      alsaLib
+      alsa-lib
       systemd
       udev
     ] ++ lib.optional airtunesSupport openssl
diff --git a/nixpkgs/pkgs/servers/radarr/default.nix b/nixpkgs/pkgs/servers/radarr/default.nix
index 47edb29723e3..f56766d9b638 100644
--- a/nixpkgs/pkgs/servers/radarr/default.nix
+++ b/nixpkgs/pkgs/servers/radarr/default.nix
@@ -9,14 +9,14 @@ let
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-bTh+Z5w5ZkL2iPteStqVcoFDGZIbpVjuXn20TZsfgtY=";
-    arm64-linux_hash = "sha256-aIzVSIRuGNiIFJPToXCQwYsbICKuPtwKATnQhkxvJuA=";
-    x64-osx_hash = "sha256-FxRSAJvRQya2x1kei6yRceGcyQ2mCaFveyeMGw0Jqw4=";
+    x64-linux_hash = "sha256-/9W8VwA3d7R2pYH45QvGC1q9f9M9C867nKuhSlU6zsg=";
+    arm64-linux_hash = "sha256-QjIg+XY5vTmYH+wYqU3VZ5MfxSAcUcGVvapyrlMDbLI=";
+    x64-osx_hash = "sha256-K17tzGdLKpHkkLSOT3a4FXXfeGz6LJ6cxd20IuJ2zVs=";
   }."${arch}-${os}_hash";
 
 in stdenv.mkDerivation rec {
   pname = "radarr";
-  version = "3.0.2.4552";
+  version = "3.2.1.5070";
 
   src = fetchurl {
     url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.master.${version}.${os}-core-${arch}.tar.gz";
diff --git a/nixpkgs/pkgs/servers/reproxy/default.nix b/nixpkgs/pkgs/servers/reproxy/default.nix
new file mode 100644
index 000000000000..0d25b4267838
--- /dev/null
+++ b/nixpkgs/pkgs/servers/reproxy/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "reproxy";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "umputun";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-zwQZr6BbvJ2Ol5pCLkZ49j0j5KWTK0N8BybvTr8PPeg=";
+  };
+
+  postPatch = ''
+    # Requires network access
+    substituteInPlace app/main_test.go \
+      --replace "Test_Main" "Skip_Main"
+    substituteInPlace app/proxy/proxy_test.go \
+      --replace "TestHttp_matchHandler" "SkipHttp_matchHandler"
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Fails on Darwin.
+    # https://github.com/umputun/reproxy/issues/77
+    substituteInPlace app/discovery/provider/file_test.go \
+      --replace "TestFile_Events" "SkipFile_Events" \
+      --replace "TestFile_Events_BusyListener" "SkipFile_Events_BusyListener"
+  '';
+
+  vendorSha256 = null;
+
+  buildFlagsArray = [
+    "-ldflags=-s -w -X main.revision=${version}"
+  ];
+
+  installPhase = ''
+    install -Dm755 $GOPATH/bin/app $out/bin/reproxy
+  '';
+
+  meta = with lib; {
+    description = "Simple edge server / reverse proxy";
+    homepage = "https://reproxy.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/rippled/default.nix b/nixpkgs/pkgs/servers/rippled/default.nix
index 8c5f5c0e4024..0655668429a1 100644
--- a/nixpkgs/pkgs/servers/rippled/default.nix
+++ b/nixpkgs/pkgs/servers/rippled/default.nix
@@ -32,7 +32,7 @@ let
   nudb = fetchgit rec {
     url = "https://github.com/CPPAlliance/NuDB.git";
     rev = "2.0.5";
-    sha256 = "02zbd07qvdjjsm4ivvhxah5n466bncvm6m03vmq0qdbbrlnp6s37";
+    sha256 = "07dwvglhyzpqnhzd33a2vs80wrdxy55a3sirnd739xp1k5v8s2fx";
     leaveDotGit = true;
     fetchSubmodules = true;
     postFetch = "cd $out && git tag ${rev}";
@@ -41,7 +41,7 @@ let
   rocksdb = fetchgit rec {
     url = "https://github.com/facebook/rocksdb.git";
     rev = "v6.7.3";
-    sha256 = "16qb636qs2yxqmz30hmvq8mllf038s80p37b0vyc0bazwlr93d9z";
+    sha256 = "0dzn5jg3i2mnnjj24dn9lzi3aajj5ga2akjf64lybyj481lq445k";
     deepClone = true;
     fetchSubmodules = false;
     leaveDotGit = true;
diff --git a/nixpkgs/pkgs/servers/roon-server/default.nix b/nixpkgs/pkgs/servers/roon-server/default.nix
index 145a1927f2c4..c26ae1e6416c 100644
--- a/nixpkgs/pkgs/servers/roon-server/default.nix
+++ b/nixpkgs/pkgs/servers/roon-server/default.nix
@@ -1,5 +1,5 @@
-{ alsaLib
-, alsaUtils
+{ alsa-lib
+, alsa-utils
 , autoPatchelfHook
 , cifs-utils
 , fetchurl
@@ -11,20 +11,20 @@
 , zlib
 }: stdenv.mkDerivation rec {
   name = "roon-server";
-  version = "100800753";
+  version = "100800790";
 
   # N.B. The URL is unstable. I've asked for them to provide a stable URL but
   # they have ignored me. If this package fails to build for you, you may need
   # to update the version and sha256.
   # c.f. https://community.roonlabs.com/t/latest-roon-server-is-not-available-for-download-on-nixos/118129
   src = fetchurl {
-    url = "https://web.archive.org/web/20210209195555/https://download.roonlabs.com/builds/RoonServer_linuxx64.tar.bz2";
-    sha256 = "sha256-uas1vqIDWlYr7jgsrlBeJSPjMxwzVnrkCD9jJljkFZs=";
+    url = "https://web.archive.org/web/20210428204513/https://download.roonlabs.com/builds/RoonServer_linuxx64.tar.bz2";
+    sha256 = "1jhj52fmkdgr9qfang1i9qrl1z56h56x07k31n3kllknkv02lc8p";
   };
 
   buildInputs = [
-    alsaLib
-    alsaUtils
+    alsa-lib
+    alsa-utils
     cifs-utils
     ffmpeg
     freetype
@@ -48,7 +48,7 @@
         ln -sf $out/RoonMono/bin/mono-sgen $out/RoonMono/bin/${builtins.baseNameOf bin}
       '';
       wrapFix = bin: ''
-        wrapProgram ${bin} --prefix PATH : ${lib.makeBinPath [ alsaUtils cifs-utils ffmpeg ]}
+        wrapProgram ${bin} --prefix PATH : ${lib.makeBinPath [ alsa-utils cifs-utils ffmpeg ]}
       '';
     in
     ''
diff --git a/nixpkgs/pkgs/servers/routinator/default.nix b/nixpkgs/pkgs/servers/routinator/default.nix
index 4d326c0bd621..8412d0069c7d 100644
--- a/nixpkgs/pkgs/servers/routinator/default.nix
+++ b/nixpkgs/pkgs/servers/routinator/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "routinator";
-  version = "0.8.3";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "NLnetLabs";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-JwPAwhD+Pkx8Kx24m7z/RbEvDnI2YR8dnTgAV7TMsFE=";
+    rev = version;
+    sha256 = "sha256-8CBsLOAF0JnRMe7qLod6UDPGLMPwqDm0Z5BjB4KCkBc=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
-  cargoSha256 = "sha256-lhSSyJxxHc0t43xoDMtr/lSVL0xZl6poPYiyYXNvKKQ=";
+  cargoSha256 = "sha256-S/RAt3tCIlaSqIHqP5C+QK9aQq+4CO/MW2toUo9kVKk=";
 
   meta = with lib; {
     description = "An RPKI Validator written in Rust";
diff --git a/nixpkgs/pkgs/servers/rt/default.nix b/nixpkgs/pkgs/servers/rt/default.nix
index cc192a18a618..ff0bbd6b97dc 100644
--- a/nixpkgs/pkgs/servers/rt/default.nix
+++ b/nixpkgs/pkgs/servers/rt/default.nix
@@ -1,46 +1,24 @@
-{ lib, stdenv, buildEnv, fetchurl, perl, perlPackages, makeWrapper }:
+{ lib, stdenv, autoreconfHook, buildEnv, fetchFromGitHub, perl, perlPackages, makeWrapper, gnupg, openssl }:
 
-# This package isn't extremely useful as it is, but is getting close.
-# After running:
-#
-#   nix-build . -A rt
-#
-# I created a config file named myconfig.pm with:
-#
-#   use utf8;
-#   Set($rtname, '127.0.0.1');
-#   # These dirs need to be pre-created:
-#   Set($MasonSessionDir, '/home/grahamc/foo/sessiondir/');
-#   Set($MasonDataDir, '/home/grahamc/foo/localstate/');
-#   Set($WebPort, 8080);
-#
-#   Set($DatabaseType, "SQLite");
-#   Set( $DatabaseName, '/home/grahamc/projects/foo/my.db' );
-#
-#   1;
-#
-# and ran
-#
-#  RT_SITE_CONFIG=$(pwd)/myconfig.pm ./result/bin/rt-setup-database --action init
-#
-# Then:
-#
-#   RT_SITE_CONFIG=$(pwd)/myconfig.pm ./result/bin/rt-server
-#
-# Make sure to check out result/etc/RT_Config.pm
-#
-# Good luck.
 stdenv.mkDerivation rec {
   pname = "rt";
+  version = "5.0.1";
 
-  version = "4.4.4";
-
-  src = fetchurl {
-    url = "https://download.bestpractical.com/pub/rt/release/${pname}-${version}.tar.gz";
-    sha256 = "1108jhz1gvalcfnbzgpbk7fkxzxkkc7m74a3bnwyjzldlyj1dhrl";
+  src = fetchFromGitHub {
+    repo = pname;
+    rev = "${pname}-${version}";
+    owner = "bestpractical";
+    sha256 = "1qqh6w094x7dljz001va802v4s6mixs9lkhs2cs47lf5ph3vwq2q";
   };
 
-  patches = [ ./override-generated.patch ];
+  patches = [
+    ./dont-check-users_groups.patch  # needed for "make testdeps" to work in the build
+    ./override-generated.patch
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
 
   buildInputs = [
     makeWrapper
@@ -48,28 +26,102 @@ stdenv.mkDerivation rec {
     (buildEnv {
       name = "rt-perl-deps";
       paths = with perlPackages; (requiredPerlModules [
-        ApacheSession BusinessHours CGIEmulatePSGI CGIPSGI
-        CSSMinifierXS CSSSquish ConvertColor CryptEksblowfish
-        CryptSSLeay DBDSQLite DBDmysql DBIxSearchBuilder DataGUID
-        DataICal DataPagePageset DateExtract DateManip
-        DateTimeFormatNatural DevelGlobalDestruction EmailAddress
-        EmailAddressList FCGI FCGIProcManager FileShareDir FileWhich
-        GD GDGraph GnuPGInterface GraphViz HTMLFormatTextWithLinks
-        HTMLFormatTextWithLinksAndTables HTMLMason
-        HTMLMasonPSGIHandler HTMLQuoted HTMLRewriteAttributes
-        HTMLScrubber IPCRun IPCRun3 JSON JavaScriptMinifierXS LWP
-        LWPProtocolHttps LocaleMaketextFuzzy LocaleMaketextLexicon
-        LogDispatch MIMETools MIMETypes MailTools ModuleRefresh
-        ModuleVersionsReport MozillaCA NetCIDR NetIP PerlIOeol Plack
-        RegexpCommon RegexpCommonnetCIDR RegexpIPv6 RoleBasic
-        ScopeUpper Starlet SymbolGlobalName TermReadKey
-        TextPasswordPronounceable TextQuoted TextTemplate
-        TextWikiFormat TextWrapper TimeParseDate TreeSimple
-        UNIVERSALrequire XMLRSS
+        ApacheSession
+        BusinessHours
+        CGIEmulatePSGI
+        CGIPSGI
+        CSSMinifierXS
+        CSSSquish
+        ConvertColor
+        CryptEksblowfish
+        CryptSSLeay
+        CryptX509
+        DBDPg
+        DBIxSearchBuilder
+        DataGUID
+        DataICal
+        DataPage
+        DataPagePageset
+        DateExtract
+        DateManip
+        DateTimeFormatNatural
+        DevelGlobalDestruction
+        EmailAddress
+        EmailAddressList
+        EncodeDetect
+        EncodeHanExtra
+        FCGI
+        FCGIProcManager
+        FileShareDir
+        FileWhich
+        GD
+        GDGraph
+        GnuPGInterface
+        GraphViz
+        HTMLFormatExternal
+        HTMLFormatTextWithLinks
+        HTMLFormatTextWithLinksAndTables
+        HTMLGumbo
+        HTMLMason
+        HTMLMasonPSGIHandler
+        HTMLQuoted
+        HTMLRewriteAttributes
+        HTMLScrubber
+        IPCRun
+        IPCRun3
+        JSON
+        JavaScriptMinifierXS
+        LWP
+        LWPProtocolHttps
+        LocaleMaketextFuzzy
+        LocaleMaketextLexicon
+        LogDispatch
+        MIMETools
+        MIMETypes
+        MailTools
+        ModulePath
+        ModuleRefresh
+        ModuleVersionsReport
+        Moose
+        MooseXNonMoose
+        MooseXRoleParameterized
+        MozillaCA
+        NetCIDR
+        NetIP
+        PathDispatcher
+        PerlIOeol
+        Plack
+        PodParser
+        RegexpCommon
+        RegexpCommonnetCIDR
+        RegexpIPv6
+        RoleBasic
+        ScopeUpper
+        Starlet
+        Starman
+        StringShellQuote
+        SymbolGlobalName
+        TermReadKey
+        TextPasswordPronounceable
+        TextQuoted
+        TextTemplate
+        TextWikiFormat
+        TextWordDiff
+        TextWrapper
+        TimeParseDate
+        TreeSimple
+        UNIVERSALrequire
+        WebMachine
+        XMLRSS
+        perlldap
       ]);
     })
   ];
 
+  preAutoreconf = ''
+    substituteInPlace configure.ac \
+      --replace "rt-3.9.EXPORTED" "rt-${version}"
+  '';
   preConfigure = ''
     configureFlags="$configureFlags --with-web-user=$UID"
     configureFlags="$configureFlags --with-web-group=$(id -g)"
@@ -82,18 +134,27 @@ stdenv.mkDerivation rec {
     "--enable-graphviz"
     "--enable-gd"
     "--enable-gpg"
-    "--with-db-type=SQLite"
+    "--enable-smime"
+    "--with-db-type=Pg"
   ];
 
   buildPhase = ''
-    make testdeps | grep -i missing | sort
+    make testdeps
   '';
 
-  preFixup = ''
-    for i in $(find $out/bin -type f; find $out/sbin -type f); do
-      wrapProgram $i \
-          --prefix PERL5LIB ':' $PERL5LIB
+  postFixup = ''
+    for i in $(find $out/bin -type f); do
+      wrapProgram $i --prefix PERL5LIB ':' $PERL5LIB \
+        --prefix PATH ":" "${lib.makeBinPath [ openssl gnupg ]}"
     done
+
+    rm -r $out/var
+    mkdir -p $out/var/data
+    ln -s /var/log/rt $out/var/log
+    ln -s /run/rt/mason_data $out/var/mason_data
+    ln -s /var/lib/rt/shredder $out/var/data/RT-Shredder
+    ln -s /var/lib/rt/smime $out/var/data/smime
+    ln -s /var/lib/rt/gpg $out/var/data/gpg
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/rt/dont-check-users_groups.patch b/nixpkgs/pkgs/servers/rt/dont-check-users_groups.patch
new file mode 100644
index 000000000000..43e40e8f1778
--- /dev/null
+++ b/nixpkgs/pkgs/servers/rt/dont-check-users_groups.patch
@@ -0,0 +1,12 @@
+diff --git a/sbin/rt-test-dependencies.in b/sbin/rt-test-dependencies.in
+index e51feb197..d75b1bc4e 100644
+--- a/sbin/rt-test-dependencies.in
++++ b/sbin/rt-test-dependencies.in
+@@ -423,6 +423,7 @@ sub check_perl_version {
+ }
+ 
+ sub check_users_groups {
++    return 0;
+     section("users / groups");
+ 
+     my $fails = 0;
diff --git a/nixpkgs/pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch b/nixpkgs/pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch
deleted file mode 100644
index 6de704cba285..000000000000
--- a/nixpkgs/pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch
+++ /dev/null
@@ -1,569 +0,0 @@
-From 55a5b9c8254126d0acef8702526c92a31200a07c Mon Sep 17 00:00:00 2001
-From: Matthew DeVore <matvore@google.com>
-Date: Tue, 4 Aug 2020 17:49:42 -0700
-Subject: [PATCH] lib/util: Standardize use of st_[acm]time ns
-
-Commit 810397f89a10, and possibly others, broke the build for macOS and
-other environments which don't have st_[acm]tim fields on 'struct stat'.
-
-Multiple places in the codebase used the config.h values to determine
-how to access the nanosecond or microsecond values of the stat
-timestamps, so rather than add more, centralize them all into
-lib/util/time.c.
-
-Also allow pvfs_fileinfo.c to read nanosecond-granularity timestamps on
-platforms where it didn't before, since its #if branches were not
-complete.
-
-Signed-off-by: Matthew DeVore <matvore@google.com>
-Reviewed-by: Jeremy Allison <jra@samba.org>
-Reviewed-by: Volker Lendecke <vl@samba.org>
-
-Autobuild-User(master): Volker Lendecke <vl@samba.org>
-Autobuild-Date(master): Sat Aug 15 08:51:09 UTC 2020 on sn-devel-184
----
- lib/replace/wscript                         |   2 -
- lib/util/time.c                             | 230 ++++++++++++++++++++
- lib/util/time.h                             |  18 ++
- source3/lib/system.c                        | 121 +---------
- source3/libsmb/libsmb_stat.c                |  24 +-
- source4/ntvfs/posix/pvfs_fileinfo.c         |  11 +-
- source4/torture/libsmbclient/libsmbclient.c |   7 +-
- 7 files changed, 277 insertions(+), 136 deletions(-)
-
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 64f305d6df0..85bc11d2f01 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -746,8 +746,6 @@ def configure(conf):
- 
-     conf.CHECK_CODE('mkdir("foo",0777)', define='HAVE_MKDIR_MODE', headers='sys/stat.h')
- 
--    conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtim.tv_nsec', define='HAVE_STAT_TV_NSEC',
--                                headers='sys/stat.h')
-     # we need the st_rdev test under two names
-     conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_rdev',
-                                 define='HAVE_STRUCT_STAT_ST_RDEV',
-diff --git a/lib/util/time.c b/lib/util/time.c
-index 0fac5e2e397..b5c1d700b23 100644
---- a/lib/util/time.c
-+++ b/lib/util/time.c
-@@ -26,6 +26,10 @@
- #include "byteorder.h"
- #include "time_basic.h"
- #include "lib/util/time.h" /* Avoid /usr/include/time.h */
-+#include <sys/stat.h>
-+#ifndef NO_CONFIG_H
-+#include "config.h"
-+#endif
- 
- /**
-  * @file
-@@ -1232,3 +1236,229 @@ struct timespec time_t_to_full_timespec(time_t t)
- 	}
- 	return (struct timespec){.tv_sec = t};
- }
-+
-+#if !defined(HAVE_STAT_HIRES_TIMESTAMPS)
-+
-+/* Old system - no ns timestamp. */
-+time_t get_atimensec(const struct stat *st)
-+{
-+	return 0;
-+}
-+
-+time_t get_mtimensec(const struct stat *st)
-+{
-+	return 0;
-+}
-+
-+time_t get_ctimensec(const struct stat *st)
-+{
-+	return 0;
-+}
-+
-+/* Set does nothing with no ns timestamp. */
-+void set_atimensec(struct stat *st, time_t ns)
-+{
-+	return;
-+}
-+
-+void set_mtimensec(struct stat *st, time_t ns)
-+{
-+	return;
-+}
-+
-+void set_ctimensec(struct stat *st, time_t ns)
-+{
-+	return;
-+}
-+
-+#elif HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC
-+
-+time_t get_atimensec(const struct stat *st)
-+{
-+	return st->st_atimespec.tv_nsec;
-+}
-+
-+time_t get_mtimensec(const struct stat *st)
-+{
-+	return st->st_mtimespec.tv_nsec;
-+}
-+
-+time_t get_ctimensec(const struct stat *st)
-+{
-+	return st->st_ctimespec.tv_nsec;
-+}
-+
-+void set_atimensec(struct stat *st, time_t ns)
-+{
-+	st->st_atimespec.tv_nsec = ns;
-+}
-+
-+void set_mtimensec(struct stat *st, time_t ns)
-+{
-+	st->st_mtimespec.tv_nsec = ns;
-+}
-+
-+void set_ctimensec(struct stat *st, time_t ns)
-+{
-+	st->st_ctimespec.tv_nsec = ns;
-+}
-+
-+#elif HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
-+
-+time_t get_atimensec(const struct stat *st)
-+{
-+	return st->st_atim.tv_nsec;
-+}
-+
-+time_t get_mtimensec(const struct stat *st)
-+{
-+	return st->st_mtim.tv_nsec;
-+}
-+
-+time_t get_ctimensec(const struct stat *st)
-+{
-+	return st->st_ctim.tv_nsec;
-+}
-+
-+void set_atimensec(struct stat *st, time_t ns)
-+{
-+	st->st_atim.tv_nsec = ns;
-+}
-+
-+void set_mtimensec(struct stat *st, time_t ns)
-+{
-+	st->st_mtim.tv_nsec = ns;
-+}
-+void set_ctimensec(struct stat *st, time_t ns)
-+{
-+	st->st_ctim.tv_nsec = ns;
-+}
-+
-+#elif HAVE_STRUCT_STAT_ST_MTIMENSEC
-+
-+time_t get_atimensec(const struct stat *st)
-+{
-+	return st->st_atimensec;
-+}
-+
-+time_t get_mtimensec(const struct stat *st)
-+{
-+	return st->st_mtimensec;
-+}
-+
-+time_t get_ctimensec(const struct stat *st)
-+{
-+	return st->st_ctimensec;
-+}
-+
-+void set_atimensec(struct stat *st, time_t ns)
-+{
-+	st->st_atimensec = ns;
-+}
-+
-+void set_mtimensec(struct stat *st, time_t ns)
-+{
-+	st->st_mtimensec = ns;
-+}
-+
-+void set_ctimensec(struct stat *st, time_t ns)
-+{
-+	st->st_ctimensec = ns;
-+}
-+
-+#elif HAVE_STRUCT_STAT_ST_MTIME_N
-+
-+time_t get_atimensec(const struct stat *st)
-+{
-+	return st->st_atime_n;
-+}
-+
-+time_t get_mtimensec(const struct stat *st)
-+{
-+	return st->st_mtime_n;
-+}
-+
-+time_t get_ctimensec(const struct stat *st)
-+{
-+	return st->st_ctime_n;
-+}
-+
-+void set_atimensec(struct stat *st, time_t ns)
-+{
-+	st->st_atime_n = ns;
-+}
-+
-+void set_mtimensec(struct stat *st, time_t ns)
-+{
-+	st->st_mtime_n = ns;
-+}
-+
-+void set_ctimensec(struct stat *st, time_t ns)
-+{
-+	st->st_ctime_n = ns;
-+}
-+
-+#elif HAVE_STRUCT_STAT_ST_UMTIME
-+
-+/* Only usec timestamps available. Convert to/from nsec. */
-+
-+time_t get_atimensec(const struct stat *st)
-+{
-+	return st->st_uatime * 1000;
-+}
-+
-+time_t get_mtimensec(const struct stat *st)
-+{
-+	return st->st_umtime * 1000;
-+}
-+
-+time_t get_ctimensec(const struct stat *st)
-+{
-+	return st->st_uctime * 1000;
-+}
-+
-+void set_atimensec(struct stat *st, time_t ns)
-+{
-+	st->st_uatime = ns / 1000;
-+}
-+
-+void set_mtimensec(struct stat *st, time_t ns)
-+{
-+	st->st_umtime = ns / 1000;
-+}
-+
-+void set_ctimensec(struct stat *st, time_t ns)
-+{
-+	st->st_uctime = ns / 1000;
-+}
-+
-+#else
-+#error CONFIGURE_ERROR_IN_DETECTING_TIMESPEC_IN_STAT
-+#endif
-+
-+struct timespec get_atimespec(const struct stat *pst)
-+{
-+	struct timespec ret;
-+
-+	ret.tv_sec = pst->st_atime;
-+	ret.tv_nsec = get_atimensec(pst);
-+	return ret;
-+}
-+
-+struct timespec get_mtimespec(const struct stat *pst)
-+{
-+	struct timespec ret;
-+
-+	ret.tv_sec = pst->st_mtime;
-+	ret.tv_nsec = get_mtimensec(pst);
-+	return ret;
-+}
-+
-+struct timespec get_ctimespec(const struct stat *pst)
-+{
-+	struct timespec ret;
-+
-+	ret.tv_sec = pst->st_mtime;
-+	ret.tv_nsec = get_ctimensec(pst);
-+	return ret;
-+}
-diff --git a/lib/util/time.h b/lib/util/time.h
-index 4a90b40d5ce..04945b5f25f 100644
---- a/lib/util/time.h
-+++ b/lib/util/time.h
-@@ -375,4 +375,22 @@ time_t full_timespec_to_time_t(const struct timespec *ts);
- time_t nt_time_to_full_time_t(NTTIME nt);
- struct timespec time_t_to_full_timespec(time_t t);
- 
-+/*
-+ * Functions to get and set the number of nanoseconds for times in a stat field.
-+ * If the stat has timestamp granularity less than nanosecond, then the set_*
-+ * operations will be lossy.
-+ */
-+struct stat;
-+time_t get_atimensec(const struct stat *);
-+time_t get_mtimensec(const struct stat *);
-+time_t get_ctimensec(const struct stat *);
-+void set_atimensec(struct stat *, time_t);
-+void set_mtimensec(struct stat *, time_t);
-+void set_ctimensec(struct stat *, time_t);
-+
-+/* These are convenience wrappers for the above getters. */
-+struct timespec get_atimespec(const struct stat *);
-+struct timespec get_mtimespec(const struct stat *);
-+struct timespec get_ctimespec(const struct stat *);
-+
- #endif /* _SAMBA_TIME_H_ */
-diff --git a/source3/lib/system.c b/source3/lib/system.c
-index f1265e0c43f..7c8cd19d11f 100644
---- a/source3/lib/system.c
-+++ b/source3/lib/system.c
-@@ -25,7 +25,8 @@
- #include "system/capability.h"
- #include "system/passwd.h"
- #include "system/filesys.h"
--#include "../lib/util/setid.h"
-+#include "lib/util/setid.h"
-+#include "lib/util/time.h"
- 
- #ifdef HAVE_SYS_SYSCTL_H
- #include <sys/sysctl.h>
-@@ -122,124 +123,6 @@ int sys_fcntl_int(int fd, int cmd, int arg)
- 	return ret;
- }
- 
--/****************************************************************************
-- Get/Set all the possible time fields from a stat struct as a timespec.
--****************************************************************************/
--
--static struct timespec get_atimespec(const struct stat *pst)
--{
--#if !defined(HAVE_STAT_HIRES_TIMESTAMPS)
--	struct timespec ret;
--
--	/* Old system - no ns timestamp. */
--	ret.tv_sec = pst->st_atime;
--	ret.tv_nsec = 0;
--	return ret;
--#else
--#if defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
--	struct timespec ret;
--	ret.tv_sec = pst->st_atim.tv_sec;
--	ret.tv_nsec = pst->st_atim.tv_nsec;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC)
--	struct timespec ret;
--	ret.tv_sec = pst->st_atime;
--	ret.tv_nsec = pst->st_atimensec;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIME_N)
--	struct timespec ret;
--	ret.tv_sec = pst->st_atime;
--	ret.tv_nsec = pst->st_atime_n;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_UMTIME)
--	struct timespec ret;
--	ret.tv_sec = pst->st_atime;
--	ret.tv_nsec = pst->st_uatime * 1000;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC)
--	return pst->st_atimespec;
--#else
--#error	CONFIGURE_ERROR_IN_DETECTING_TIMESPEC_IN_STAT
--#endif
--#endif
--}
--
--static struct timespec get_mtimespec(const struct stat *pst)
--{
--#if !defined(HAVE_STAT_HIRES_TIMESTAMPS)
--	struct timespec ret;
--
--	/* Old system - no ns timestamp. */
--	ret.tv_sec = pst->st_mtime;
--	ret.tv_nsec = 0;
--	return ret;
--#else
--#if defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
--	struct timespec ret;
--	ret.tv_sec = pst->st_mtim.tv_sec;
--	ret.tv_nsec = pst->st_mtim.tv_nsec;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC)
--	struct timespec ret;
--	ret.tv_sec = pst->st_mtime;
--	ret.tv_nsec = pst->st_mtimensec;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIME_N)
--	struct timespec ret;
--	ret.tv_sec = pst->st_mtime;
--	ret.tv_nsec = pst->st_mtime_n;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_UMTIME)
--	struct timespec ret;
--	ret.tv_sec = pst->st_mtime;
--	ret.tv_nsec = pst->st_umtime * 1000;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC)
--	return pst->st_mtimespec;
--#else
--#error	CONFIGURE_ERROR_IN_DETECTING_TIMESPEC_IN_STAT
--#endif
--#endif
--}
--
--static struct timespec get_ctimespec(const struct stat *pst)
--{
--#if !defined(HAVE_STAT_HIRES_TIMESTAMPS)
--	struct timespec ret;
--
--	/* Old system - no ns timestamp. */
--	ret.tv_sec = pst->st_ctime;
--	ret.tv_nsec = 0;
--	return ret;
--#else
--#if defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
--	struct timespec ret;
--	ret.tv_sec = pst->st_ctim.tv_sec;
--	ret.tv_nsec = pst->st_ctim.tv_nsec;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC)
--	struct timespec ret;
--	ret.tv_sec = pst->st_ctime;
--	ret.tv_nsec = pst->st_ctimensec;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIME_N)
--	struct timespec ret;
--	ret.tv_sec = pst->st_ctime;
--	ret.tv_nsec = pst->st_ctime_n;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_UMTIME)
--	struct timespec ret;
--	ret.tv_sec = pst->st_ctime;
--	ret.tv_nsec = pst->st_uctime * 1000;
--	return ret;
--#elif defined(HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC)
--	return pst->st_ctimespec;
--#else
--#error	CONFIGURE_ERROR_IN_DETECTING_TIMESPEC_IN_STAT
--#endif
--#endif
--}
--
- /****************************************************************************
-  Return the best approximation to a 'create time' under UNIX from a stat
-  structure.
-diff --git a/source3/libsmb/libsmb_stat.c b/source3/libsmb/libsmb_stat.c
-index 790934bd565..b01aeb51ac1 100644
---- a/source3/libsmb/libsmb_stat.c
-+++ b/source3/libsmb/libsmb_stat.c
-@@ -27,6 +27,7 @@
- #include "libsmbclient.h"
- #include "libsmb_internal.h"
- #include "../libcli/smb/smbXcli_base.h"
-+#include "lib/util/time.h"
- 
- /*
-  * Generate an inode number from file name for those things that need it
-@@ -102,18 +103,29 @@ void setup_stat(struct stat *st,
- 	}
- 
- 	st->st_dev = dev;
--	st->st_atim = access_time_ts;
--	st->st_ctim = change_time_ts;
--	st->st_mtim = write_time_ts;
-+
-+	st->st_atime = access_time_ts.tv_sec;
-+	set_atimensec(st, access_time_ts.tv_nsec);
-+
-+	st->st_ctime = change_time_ts.tv_sec;
-+	set_ctimensec(st, change_time_ts.tv_nsec);
-+
-+	st->st_mtime = write_time_ts.tv_sec;
-+	set_mtimensec(st, write_time_ts.tv_nsec);
- }
- 
- void setup_stat_from_stat_ex(const struct stat_ex *stex,
- 			     const char *fname,
- 			     struct stat *st)
- {
--	st->st_atim = stex->st_ex_atime;
--	st->st_ctim = stex->st_ex_ctime;
--	st->st_mtim = stex->st_ex_mtime;
-+	st->st_atime = stex->st_ex_atime.tv_sec;
-+	set_atimensec(st, stex->st_ex_atime.tv_nsec);
-+
-+	st->st_ctime = stex->st_ex_ctime.tv_sec;
-+	set_ctimensec(st, stex->st_ex_ctime.tv_nsec);
-+
-+	st->st_mtime = stex->st_ex_mtime.tv_sec;
-+	set_mtimensec(st, stex->st_ex_mtime.tv_nsec);
- 
- 	st->st_mode = stex->st_ex_mode;
- 	st->st_size = stex->st_ex_size;
-diff --git a/source4/ntvfs/posix/pvfs_fileinfo.c b/source4/ntvfs/posix/pvfs_fileinfo.c
-index d2e2aeea265..977ea4fa3d5 100644
---- a/source4/ntvfs/posix/pvfs_fileinfo.c
-+++ b/source4/ntvfs/posix/pvfs_fileinfo.c
-@@ -21,6 +21,7 @@
- 
- #include "includes.h"
- #include "vfs_posix.h"
-+#include "lib/util/time.h"
- 
- /****************************************************************************
-  Change a unix mode to a dos mode.
-@@ -72,12 +73,10 @@ NTSTATUS pvfs_fill_dos_info(struct pvfs_state *pvfs, struct pvfs_filename *name,
- 	unix_to_nt_time(&name->dos.access_time, name->st.st_atime);
- 	unix_to_nt_time(&name->dos.write_time,  name->st.st_mtime);
- 	unix_to_nt_time(&name->dos.change_time, name->st.st_ctime);
--#ifdef HAVE_STAT_TV_NSEC
--	name->dos.create_time += name->st.st_ctim.tv_nsec / 100;
--	name->dos.access_time += name->st.st_atim.tv_nsec / 100;
--	name->dos.write_time  += name->st.st_mtim.tv_nsec / 100;
--	name->dos.change_time += name->st.st_ctim.tv_nsec / 100;
--#endif
-+	name->dos.create_time += get_ctimensec(&name->st) / 100;
-+	name->dos.access_time += get_atimensec(&name->st) / 100;
-+	name->dos.write_time  += get_mtimensec(&name->st) / 100;
-+	name->dos.change_time += get_ctimensec(&name->st) / 100;
- 	name->dos.attrib = dos_mode_from_stat(pvfs, &name->st);
- 	name->dos.alloc_size = pvfs_round_alloc_size(pvfs, name->st.st_size);
- 	name->dos.nlink = name->st.st_nlink;
-diff --git a/source4/torture/libsmbclient/libsmbclient.c b/source4/torture/libsmbclient/libsmbclient.c
-index 3f3992593f9..4fbd759487b 100644
---- a/source4/torture/libsmbclient/libsmbclient.c
-+++ b/source4/torture/libsmbclient/libsmbclient.c
-@@ -27,6 +27,7 @@
- #include "lib/param/loadparm.h"
- #include "lib/param/param_global.h"
- #include "dynconfig.h"
-+#include "lib/util/time.h"
- 
- /* test string to compare with when debug_callback is called */
- #define TEST_STRING "smbc_setLogCallback test"
-@@ -1231,8 +1232,8 @@ static bool torture_libsmbclient_utimes(struct torture_context *tctx)
- 	ret = smbc_fstat(fhandle, &st);
- 	torture_assert_int_not_equal(tctx, ret, -1, "smbc_fstat failed");
- 
--	tbuf[0] = convert_timespec_to_timeval(st.st_atim);
--	tbuf[1] = convert_timespec_to_timeval(st.st_mtim);
-+	tbuf[0] = convert_timespec_to_timeval(get_atimespec(&st));
-+	tbuf[1] = convert_timespec_to_timeval(get_mtimespec(&st));
- 
- 	tbuf[1] = timeval_add(&tbuf[1], 0, 100000); /* 100 msec */
- 
-@@ -1244,7 +1245,7 @@ static bool torture_libsmbclient_utimes(struct torture_context *tctx)
- 
- 	torture_assert_int_equal(
- 		tctx,
--		st.st_mtim.tv_nsec / 1000,
-+		get_mtimensec(&st) / 1000,
- 		tbuf[1].tv_usec,
- 		"smbc_utimes did not update msec");
- 
--- 
-2.29.2
-
diff --git a/nixpkgs/pkgs/servers/samba/4.x.nix b/nixpkgs/pkgs/servers/samba/4.x.nix
index c540fb20d448..3ae30699546d 100644
--- a/nixpkgs/pkgs/servers/samba/4.x.nix
+++ b/nixpkgs/pkgs/servers/samba/4.x.nix
@@ -26,6 +26,7 @@
 , tdb
 , cmocka
 , rpcsvc-proto
+, python3Packages
 , nixosTests
 
 , enableLDAP ? false, openldap
@@ -44,11 +45,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "samba";
-  version = "4.13.7";
+  version = "4.14.4";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
-    sha256 = "1ajvr5hzl9kmrf77hb9c71zvnm8j0xgy40nqfjz4f407cw470zaf";
+    sha256 = "1fc9ix91hb1f35j69sk7rsi9pky2p0vsmw47s973bx801cm0kbw9";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -58,8 +59,6 @@ stdenv.mkDerivation rec {
     ./patch-source3__libads__kerberos_keytab.c.patch
     ./4.x-no-persistent-install-dynconfig.patch
     ./4.x-fix-makeflags-parsing.patch
-    # Backport, should be removed for version 4.14
-    ./0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch
   ];
 
   nativeBuildInputs = [
@@ -93,10 +92,10 @@ stdenv.mkDerivation rec {
     libtasn1
     tdb
   ] ++ optionals stdenv.isLinux [ liburing systemd ]
-    ++ optional enableLDAP openldap
+    ++ optionals enableLDAP [ openldap.dev python3Packages.markdown ]
     ++ optional (enablePrinting && stdenv.isLinux) cups
     ++ optional enableMDNS avahi
-    ++ optionals enableDomainController [ gpgme lmdb ]
+    ++ optionals enableDomainController [ gpgme lmdb python3Packages.dnspython ]
     ++ optional enableRegedit ncurses
     ++ optional (enableCephFS && stdenv.isLinux) libceph
     ++ optionals (enableGlusterFS && stdenv.isLinux) [ glusterfs libuuid ]
diff --git a/nixpkgs/pkgs/servers/search/groonga/default.nix b/nixpkgs/pkgs/servers/search/groonga/default.nix
index ea6fd9394579..5973a1a190c6 100644
--- a/nixpkgs/pkgs/servers/search/groonga/default.nix
+++ b/nixpkgs/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "11.0.0";
+  version = "11.0.3";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "sha256-kgQAFa4Orvfms/trjaMrXULYy7nV+nsmLPpyZAq3cDY=";
+    sha256 = "sha256-oYlc6PSBLovNsEWDc6eGpDI85T6bTHgBvxA/PZP3aQU=";
   };
 
   buildInputs = with lib;
diff --git a/nixpkgs/pkgs/servers/search/meilisearch/default.nix b/nixpkgs/pkgs/servers/search/meilisearch/default.nix
index 6ee90aba2991..4ad1d78eb502 100644
--- a/nixpkgs/pkgs/servers/search/meilisearch/default.nix
+++ b/nixpkgs/pkgs/servers/search/meilisearch/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "00i5vsbcyrbsvhr5n1b3pxa87v0kfw6pg931i2kzyf4wh021k6sw";
   };
 
-  cargoSha256 = "0axjygk8a7cykpa5skk4a6mkm8rndkr76l10h3z3gjdc88b17qcz";
+  cargoSha256 = "1icxpragn69c95i5gyx0b07gw4h82r8fsv0nvns0v8dxqisz877k";
 
   buildInputs = lib.optionals stdenv.isDarwin [ IOKit Security ];
 
diff --git a/nixpkgs/pkgs/servers/shairport-sync/default.nix b/nixpkgs/pkgs/servers/shairport-sync/default.nix
index bae2f3aad79d..7fdb4bbc8693 100644
--- a/nixpkgs/pkgs/servers/shairport-sync/default.nix
+++ b/nixpkgs/pkgs/servers/shairport-sync/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, openssl, avahi, alsaLib
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, openssl, avahi, alsa-lib
 , libdaemon, popt, pkg-config, libconfig, libpulseaudio, soxr }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     openssl
     avahi
-    alsaLib
+    alsa-lib
     libdaemon
     popt
     libconfig
diff --git a/nixpkgs/pkgs/servers/shishi/default.nix b/nixpkgs/pkgs/servers/shishi/default.nix
index c81c7f30b31f..6737119d8812 100644
--- a/nixpkgs/pkgs/servers/shishi/default.nix
+++ b/nixpkgs/pkgs/servers/shishi/default.nix
@@ -14,7 +14,7 @@ let
   mkWith = mkFlag "with-" "without-";
   mkOther = mkFlag "" "" true;
 
-  shouldUsePkg = pkg: if pkg != null && lib.any (lib.meta.platformMatch stdenv.hostPlatform) pkg.meta.platforms then pkg else null;
+  shouldUsePkg = pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null;
 
   optPam = shouldUsePkg pam;
   optLibidn = shouldUsePkg libidn;
diff --git a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
index 85ed2808d787..f713ab39cb96 100644
--- a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
+++ b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python2.withPackages(ps: with ps; [ cheetah ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "0.23.15";
+  version = "0.23.16";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "sha256-xZ2SgYSEamh+Z64VKvIemqJLH/WjJHFji5qIameF5hM=";
+    sha256 = "sha256-Kx3vTbwYfILxn7n4upyVZo0V6S2lTStlezku9bfwGVw=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/servers/simple-http-server/default.nix b/nixpkgs/pkgs/servers/simple-http-server/default.nix
index d93b4664019e..1ecb44aed870 100644
--- a/nixpkgs/pkgs/servers/simple-http-server/default.nix
+++ b/nixpkgs/pkgs/servers/simple-http-server/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "simple-http-server";
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ];
+  buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ];
 
   # Currently no tests are implemented, so we avoid building the package twice
   doCheck = false;
diff --git a/nixpkgs/pkgs/servers/sonarr/default.nix b/nixpkgs/pkgs/servers/sonarr/default.nix
index cdaa96464e7b..2ffbbb270237 100644
--- a/nixpkgs/pkgs/servers/sonarr/default.nix
+++ b/nixpkgs/pkgs/servers/sonarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sonarr";
-  version = "3.0.5.1144";
+  version = "3.0.6.1196";
 
   src = fetchurl {
     url = "https://download.sonarr.tv/v3/main/${version}/Sonarr.main.${version}.linux.tar.gz";
-    sha256 = "1ajqh3hvjfsbs6rb2f8dnndxsycmlzamp0cwjwkh1j2dinbzdbvp";
+    sha256 = "10fm5s1ayjmj0ip5510rb0nfh08gdaxin0xf2f3qw1z5kxys88fm";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/sozu/default.nix b/nixpkgs/pkgs/servers/sozu/default.nix
index 057bce2e4b03..07f85c889c21 100644
--- a/nixpkgs/pkgs/servers/sozu/default.nix
+++ b/nixpkgs/pkgs/servers/sozu/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-/XyBzhZCsX9sGk+iTFlDnblWfDCZdI4b9yfo4Z+Wp1U=";
   };
 
-  cargoSha256 = "sha256-F5EjBWHBNaQipxCi9Kiz5UTPMU0DuRf15NIVVvhiRxY=";
+  cargoSha256 = "sha256-xnps3/i6BpzdwUAQmb8aoOPc39L2P52y/ZDAeLoEIU8=";
 
   buildInputs =
     lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix
index fb6835775fbf..477d6113b7a4 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/3_1.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./. (args // {
-  version = "3.1.8";
-  sha256 = "0yrzhsxmjiwkhchagx8dymzhvxl3k5h40wn9wpicqjvgjb9k8523";
+  version = "3.1.12";
+  sha256 = "0qzyahr8x9l1xz0l79wz3iahxz7648n1azc5yr7kx0dl113y2nig";
 })
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
index 22110f3b4f05..0767828461fe 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/connector-c/default.nix
@@ -29,8 +29,8 @@ stdenv.mkDerivation {
 
   postPatch = ''
     substituteInPlace mariadb_config/mariadb_config.c.in \
-      --replace '@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@' "$dev/include" \
-      --replace '@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@' "$out/lib/mariadb"
+      --replace '-I%s/@INSTALL_INCLUDEDIR@' "-I$dev/include" \
+      --replace '-L%s/@INSTALL_LIBDIR@' "-L$out/lib/mariadb"
   '';
 
   # The cmake setup-hook uses $out/lib by default, this is not the case here.
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/default.nix
index e70d43a1505e..db588b3abe01 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/default.nix
@@ -22,14 +22,14 @@ mariadb = server // {
 };
 
 common = rec { # attributes common to both builds
-  version = "10.5.8";
+  version = "10.5.10";
 
   src = fetchurl {
     urls = [
       "https://downloads.mariadb.org/f/mariadb-${version}/source/mariadb-${version}.tar.gz"
       "https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz"
     ];
-    sha256 = "1s3vfm73911cddjhgpcbkya6nz7ag2zygg56qqzwscn5ybv28j7b";
+    sha256 = "1fxsq2xgcb8j81z043bifpmxblj6nb3wqjm9rgsnpwmazkwk5zx5";
     name   = "mariadb-${version}.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
index 3c13388c4602..2b387db66cdc 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
@@ -1,59 +1,37 @@
 { lib, stdenv, fetchFromGitHub, buildEnv
-, asio, boost, check, openssl, scons
+, asio, boost, check, openssl, cmake
 }:
 
-let
-  galeraLibs = buildEnv {
-    name = "galera-lib-inputs-united";
-    paths = [ openssl.out boost check ];
-  };
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "mariadb-galera";
-  version = "26.4.7";
+  version = "26.4.8";
 
   src = fetchFromGitHub {
     owner = "codership";
     repo = "galera";
     rev = "release_${version}";
-    sha256 = "0h7s670pcasq8wzprhyxqfca2cghi62b8xz2kikb2a86wd453qil";
+    sha256 = "0rx710dfijiykpi41rhxx8vafk07bffv2nbl3d4ggc32rzv88369";
     fetchSubmodules = true;
   };
 
-  buildInputs = [ asio boost check openssl scons ];
-
-  postPatch = ''
-    substituteInPlace SConstruct \
-      --replace "boost_library_path = '''" "boost_library_path = '${boost}/lib'"
-  '';
+  buildInputs = [ asio boost check openssl cmake ];
 
   preConfigure = ''
-    export CPPFLAGS="-I${asio}/include -I${boost.dev}/include -I${check}/include -I${openssl.dev}/include"
-    export LIBPATH="${galeraLibs}/lib"
+    # make sure bundled asio cannot be used, but leave behind license, because it gets installed
+    rm -r asio/{asio,asio.hpp}
   '';
 
-  sconsFlags = "ssl=1 system_asio=1 strict_build_flags=0";
-
-  enableParallelBuilding = true;
-
-  installPhase = ''
-    # copied with modifications from scripts/packages/freebsd.sh
-    GALERA_LICENSE_DIR="$share/licenses/${pname}-${version}"
-    install -d $out/{bin,lib/galera,share/doc/galera,$GALERA_LICENSE_DIR}
-    install -m 555 "garb/garbd"                       "$out/bin/garbd"
-    install -m 444 "libgalera_smm.so"                 "$out/lib/galera/libgalera_smm.so"
-    install -m 444 "scripts/packages/README"          "$out/share/doc/galera/"
-    install -m 444 "scripts/packages/README-MySQL"    "$out/share/doc/galera/"
-    install -m 444 "scripts/packages/freebsd/LICENSE" "$out/$GALERA_LICENSE_DIR"
-    install -m 444 "LICENSE"                          "$out/$GALERA_LICENSE_DIR/GPLv2"
-    install -m 444 "asio/LICENSE_1_0.txt"             "$out/$GALERA_LICENSE_DIR/LICENSE.asio"
+  postInstall = ''
+    # for backwards compatibility
+    mkdir $out/lib/galera
+    ln -s $out/lib/libgalera_smm.so $out/lib/galera/libgalera_smm.so
   '';
 
   meta = with lib; {
     description = "Galera 3 wsrep provider library";
     homepage = "https://galeracluster.com/";
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ izorkin ];
+    license = licenses.lgpl2Only;
+    maintainers = with maintainers; [ ajs124 izorkin ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
index 35b46c673f83..933ff6292e83 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/default.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
@@ -8,6 +8,8 @@ let
 
       # This is important to obtain a version of `libpq` that does not depend on systemd.
       , enableSystemd ? (lib.versionAtLeast version "9.6" && !stdenv.isDarwin)
+      , gssSupport ? with stdenv.hostPlatform; !isWindows && !isStatic, libkrb5
+
 
       # for postgreql.pkgs
       , this, self, newScope, buildEnv
@@ -38,6 +40,7 @@ let
       [ zlib readline openssl libxml2 ]
       ++ lib.optionals icuEnabled [ icu ]
       ++ lib.optionals enableSystemd [ systemd ]
+      ++ lib.optionals gssSupport [ libkrb5 ]
       ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ];
 
     nativeBuildInputs = [ makeWrapper ] ++ lib.optionals icuEnabled [ pkg-config ];
@@ -62,7 +65,8 @@ let
       "--enable-debug"
       (lib.optionalString enableSystemd "--with-systemd")
       (if stdenv.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid")
-    ] ++ lib.optionals icuEnabled [ "--with-icu" ];
+    ] ++ lib.optionals icuEnabled [ "--with-icu" ]
+      ++ lib.optionals gssSupport [ "--with-gssapi" ];
 
     patches =
       [ (if atLeast "9.4" then ./patches/disable-resolve_symlinks-94.patch else ./patches/disable-resolve_symlinks.patch)
@@ -236,4 +240,13 @@ in self: {
     thisAttr = "postgresql_13";
     inherit self;
   };
+
+  postgresql_14 = self.callPackage generic {
+    version = "14beta1";
+    psqlSchema = "14";
+    sha256 = "0lih2iykychhvis3mxqyp087m1hld3lyi48n3qwd2js44prxv464";
+    this = self.postgresql_14;
+    thisAttr = "postgresql_14";
+    inherit self;
+  };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
index ad1d25a3cec3..b5438d84ba83 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, postgresql, openssl, zlib, readline }:
+{ lib, stdenv, fetchFromGitHub, postgresql, openssl, zlib, readline, libkrb5 }:
 
 stdenv.mkDerivation rec {
   pname = "pg_auto_failover";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "citusdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14bh3cqkdd1z16iy0lmv8a3f8gmmink1nzhf5jhkd0n6g7r65p6d";
+    sha256 = "1svzln0dc1vidb9qmg4m881pvmqqjq8d43ghb8yjl7shirawqkqx";
   };
 
-  buildInputs = [ postgresql openssl zlib readline ];
+  buildInputs = [ postgresql openssl zlib readline libkrb5 ];
 
   installPhase = ''
     install -D -t $out/bin src/bin/pg_autoctl/pg_autoctl
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix
index fb690e96328d..d2e7dd37be15 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_partman";
-  version = "4.4.1";
+  version = "4.5.1";
 
   buildInputs = [ postgresql ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner  = "pgpartman";
     repo   = pname;
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-jFG2Zna97FHZin2V3Cwy5JcdeFh09Yy/eoyHtcCorPA=";
+    sha256 = "182yqvgcpgw99swn7w516f6d1bid2gnmf6dfsgmldx5viz0d6vi0";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix
new file mode 100644
index 000000000000..5cfd6240990f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, postgresql
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pg_rational";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner  = "begriffs";
+    repo   = "pg_rational";
+    rev    = "v${version}";
+    sha256 = "sha256-Sp5wuX2nP3KGyWw7MFa11rI1CPIKIWBt8nvBSsASIEw=";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{lib,share/postgresql/extension}
+
+    cp *.so      $out/lib
+    cp *.sql     $out/share/postgresql/extension
+    cp *.control $out/share/postgresql/extension
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Precise fractional arithmetic for PostgreSQL";
+    homepage    = "https://github.com/begriffs/pg_rational";
+    maintainers = with maintainers; [ netcrns ];
+    platforms   = postgresql.meta.platforms;
+    license     = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index b3d0bd5e2e84..f93a15f6b4c2 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgroonga";
-  version = "2.2.8";
+  version = "2.3.0";
 
   src = fetchurl {
     url = "https://packages.groonga.org/source/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-YDDO3t6ARbQv72QotjA7DNxOlRo2O5CYzrH+/eEzj3w=";
+    sha256 = "1wdm4wwwv7n73fi330szcnyf25zhvj6dgy839aawh84ik118yg2v";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
index a5c0f558c46e..88f1b1ebad0a 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
@@ -2,26 +2,27 @@
 
 stdenv.mkDerivation rec {
   pname = "pgvector";
-  version = "0.1.0";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "ankane";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03i8rq9wp9j2zdba82q31lzbrqpnhrqc8867pxxy3z505fxsvfzb";
+    sha256 = "0zrb9r9yh05nip2gwg96fhfk766hwqwa8plcvj2b4x4hhjk6q1ps";
   };
 
   buildInputs = [ postgresql ];
 
   installPhase = ''
     install -D -t $out/lib vector.so
-    install -D -t $out/share/postgresql/extension vector-*.sql
+    install -D -t $out/share/postgresql/extension sql/vector-*.sql
     install -D -t $out/share/postgresql/extension vector.control
   '';
 
   meta = with lib; {
     description = "Open-source vector similarity search for PostgreSQL";
     homepage = "https://github.com/ankane/pgvector";
+    changelog = "https://github.com/ankane/pgvector/raw/v${version}/CHANGELOG.md";
     license = licenses.postgresql;
     platforms = postgresql.meta.platforms;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix
index d909761cb5ea..06c36a4ff6c3 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, postgresql, zeromq, openssl }:
+{ lib, stdenv, fetchFromGitHub, postgresql, zeromq, openssl, libsodium, libkrb5 }:
 
 stdenv.mkDerivation rec {
   pname = "pipelinedb";
@@ -11,10 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "1mnqpvx6g1r2n4kjrrx01vbdx7kvndfsbmm7zbzizjnjlyixz75f";
   };
 
-  buildInputs = [ postgresql openssl zeromq ];
+  buildInputs = [ postgresql openssl zeromq libsodium libkrb5 ];
 
   makeFlags = [ "USE_PGXS=1" ];
 
+  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lsodium";
+
   preConfigure = ''
     substituteInPlace Makefile \
       --replace "/usr/lib/libzmq.a" "${zeromq}/lib/libzmq.a"
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
index f3f7a4a69114..81f3f4fee254 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "postgis";
-  version = "3.1.1";
+  version = "3.1.2";
 
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
-    sha256 = "0z9a39243fv37mansbbjq5mmxpnhr7xzn8pv92fr7dkdb3psz5hf";
+    sha256 = "0ch7gry8a1i9114mlhklxryn7ja3flsz6pxj9r5p09k92xh3gp9c";
   };
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix
index fdb2f7395c83..e4196b61290c 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "smlar-unstable";
-  version = "2020-04-08";
+  version = "2020-10-07";
 
   src = fetchgit {
     url = "git://sigaev.ru/smlar.git";
-    rev = "0c345af71969d9863bb76efa833391d00705669e";
-    sha256 = "1pr3pbnjc9n209l52sgsn4xqzp92qk6wci55hcqjjrwf2gdxy0yr";
+    rev = "25a4fef344f5c2b90e6a9d32144ee12b9198487d";
+    sha256 = "14mj63mbkcphrzw6890pb5n8igh27i9g7kh4wjdhgx3g7llbjbdw";
   };
 
   buildInputs = [ postgresql ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index 3d0cbcf5ace6..4afb4c985441 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, postgresql, openssl }:
+{ lib, stdenv, fetchFromGitHub, cmake, postgresql, openssl, libkrb5 }:
 
 # # To enable on NixOS:
 # config.services.postgresql = {
@@ -8,16 +8,16 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "2.2.0";
+  version = "2.3.0";
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ postgresql openssl ];
+  buildInputs = [ postgresql openssl libkrb5 ];
 
   src = fetchFromGitHub {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "0gl2jjk9k0s5h7s4yq1qb60lvcqvhp88rh1fhlpyx1vm1hifhhik";
+    sha256 = "03k6skl3191i5jby710xr1caq85cvzbjqmqv59mfkfbvihn2zfx2";
   };
 
   cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ]
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix b/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
index e2d655bdb373..9cca7c8374bd 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
@@ -6,12 +6,7 @@ self: super: {
 
     periods = super.callPackage ./ext/periods.nix { };
 
-    postgis = super.callPackage ./ext/postgis.nix {
-        gdal = self.gdal.override {
-            postgresql = self.postgresql;
-            poppler = self.poppler_0_61;
-        };
-    };
+    postgis = super.callPackage ./ext/postgis.nix { };
 
     pg_auto_failover = super.callPackage ./ext/pg_auto_failover.nix { };
 
@@ -19,6 +14,8 @@ self: super: {
 
     pg_ed25519 = super.callPackage ./ext/pg_ed25519.nix { };
 
+    pg_rational = super.callPackage ./ext/pg_rational.nix { };
+
     pg_repack = super.callPackage ./ext/pg_repack.nix { };
 
     pg_similarity = super.callPackage ./ext/pg_similarity.nix { };
diff --git a/nixpkgs/pkgs/servers/squid/default.nix b/nixpkgs/pkgs/servers/squid/default.nix
index 5c980f7e401b..dd3405d35312 100644
--- a/nixpkgs/pkgs/servers/squid/default.nix
+++ b/nixpkgs/pkgs/servers/squid/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squid";
-  version = "4.14";
+  version = "4.15";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v4/${pname}-${version}.tar.xz";
-    sha256 = "sha256-8Ql9qmQ0iXwVm8EAl4tRNHwDOQQWEIRdCvoSgVFyn/w=";
+    sha256 = "sha256-tpOk5asoEaioVPYN4KYq+786lSux0EeVLJrgEyH4SiU=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A caching proxy for the Web supporting HTTP, HTTPS, FTP, and more";
     homepage = "http://www.squid-cache.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ fpletz raskin ];
   };
diff --git a/nixpkgs/pkgs/servers/tailscale/default.nix b/nixpkgs/pkgs/servers/tailscale/default.nix
index d051395027b3..cc80acd42265 100644
--- a/nixpkgs/pkgs/servers/tailscale/default.nix
+++ b/nixpkgs/pkgs/servers/tailscale/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.6.0";
+  version = "1.8.7";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "07dzcqd98nsrdv72wp93q6f23mn3pfmpyyi61dx6c26w0j5n4r0p";
+    sha256 = "0mw0sizy30slgyd06syd9sqx22dxd08ncqx7srcinj1g7hxylm5z";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   CGO_ENABLED = 0;
 
-  vendorSha256 = "0wbw9pc0cv05bw2gsps3099zipwjj3r23vyf87qy6g21r08xrrm8";
+  vendorSha256 = "0cppblz1mnyb3c8xcry5mnf566s6l9409vf9572n1rs1bg91dvgn";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/tarssh/default.nix b/nixpkgs/pkgs/servers/tarssh/default.nix
index ac7f26782601..446e187e467a 100644
--- a/nixpkgs/pkgs/servers/tarssh/default.nix
+++ b/nixpkgs/pkgs/servers/tarssh/default.nix
@@ -13,7 +13,7 @@ buildRustPackage rec {
     sha256 = "sha256-AoKc8VF6rqYIsijIfgvevwu+6+suOO7XQCXXgAPNgLk=";
   };
 
-  cargoSha256 = "sha256-7X9klYVZ2yE8BPuLhzWkuT7VFpmdOZGSD0D1x3kBNEs=";
+  cargoSha256 = "sha256-w1MNsMSGONsAAjyvAHjio2K88j1sqyP1Aqmw3EMya+c=";
 
   meta = with lib; {
     description = "A simple SSH tarpit inspired by endlessh";
diff --git a/nixpkgs/pkgs/servers/tautulli/default.nix b/nixpkgs/pkgs/servers/tautulli/default.nix
index 9c1bc1cc3de3..cecdce5aa960 100644
--- a/nixpkgs/pkgs/servers/tautulli/default.nix
+++ b/nixpkgs/pkgs/servers/tautulli/default.nix
@@ -1,8 +1,8 @@
-{ lib, fetchFromGitHub, python, buildPythonApplication, bash, setuptools, wrapPython, makeWrapper }:
+{ lib, fetchFromGitHub, buildPythonApplication, setuptools, wrapPython, makeWrapper }:
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.6.8";
+  version = "2.7.3";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0pkki72maxnrp3frninw2qbxyf76rvkza23k3s8fppandkr7qpvj";
+    sha256 = "1ig2vq19sb6n2x2w2zbf54izynaqay9l8xq1zds116v0z729wlkh";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/teleport/default.nix b/nixpkgs/pkgs/servers/teleport/default.nix
index c9ace581c7e1..348681799a69 100644
--- a/nixpkgs/pkgs/servers/teleport/default.nix
+++ b/nixpkgs/pkgs/servers/teleport/default.nix
@@ -11,14 +11,14 @@ in
 
 buildGoModule rec {
   pname = "teleport";
-  version = "6.1.2";
+  version = "6.1.3";
 
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "sha256-4ZaebTTgGrGRQbMfDw1PL/qtDKmHbSY6kPmWyFeIcAU=";
+    sha256 = "sha256-kb7qRPZKXDY0Qy3/72epAGaN2FCOO/XAN8lOoUYkoM0=";
   };
 
   vendorSha256 = null;
@@ -27,6 +27,9 @@ buildGoModule rec {
 
   nativeBuildInputs = [ zip makeWrapper ];
 
+  # https://github.com/NixOS/nixpkgs/issues/120738
+  patches = [ ./tsh.patch ];
+
   postBuild = ''
     pushd .
     mkdir -p build
@@ -54,8 +57,8 @@ buildGoModule rec {
 
   postInstall = ''
     install -Dm755 -t $client/bin $out/bin/tsh
-    wrapProgram $client/bin/tsh --prefix PATH : ${xdg-utils}/bin
-    wrapProgram $out/bin/tsh --prefix PATH : ${xdg-utils}/bin
+    wrapProgram $client/bin/tsh --prefix PATH : ${lib.makeBinPath [ xdg-utils ]}
+    wrapProgram $out/bin/tsh --prefix PATH : ${lib.makeBinPath [ xdg-utils ]}
   '';
 
   doInstallCheck = true;
diff --git a/nixpkgs/pkgs/servers/teleport/tsh.patch b/nixpkgs/pkgs/servers/teleport/tsh.patch
new file mode 100644
index 000000000000..0d614f063d48
--- /dev/null
+++ b/nixpkgs/pkgs/servers/teleport/tsh.patch
@@ -0,0 +1,17 @@
+diff --git a/tool/tsh/tsh.go b/tool/tsh/tsh.go
+index 57379c40f..cb4d7b84c 100644
+--- a/tool/tsh/tsh.go
++++ b/tool/tsh/tsh.go
+@@ -514,10 +514,11 @@ func Run(args []string, opts ...cliOption) error {
+ 		}
+ 	}
+ 
+-	cf.executablePath, err = os.Executable()
++	tempBinaryPath, err := os.Executable()
+ 	if err != nil {
+ 		return trace.Wrap(err)
+ 	}
++	cf.executablePath = path.Dir(tempBinaryPath) + "/tsh"
+ 
+ 	if err := client.ValidateAgentKeyOption(cf.AddKeysToAgent); err != nil {
+ 		return trace.Wrap(err)
diff --git a/nixpkgs/pkgs/servers/ttyd/default.nix b/nixpkgs/pkgs/servers/ttyd/default.nix
index 3ef571bc82a4..8ef8c7a7c043 100644
--- a/nixpkgs/pkgs/servers/ttyd/default.nix
+++ b/nixpkgs/pkgs/servers/ttyd/default.nix
@@ -7,12 +7,12 @@ with builtins;
 
 stdenv.mkDerivation rec {
   pname = "ttyd";
-  version = "1.6.1";
+  version = "1.6.3";
   src = fetchFromGitHub {
     owner = "tsl0922";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "1ifgw93g8jaaa6fgfqjnn83n5ccr6l72ynwwwa97hfwjk90r14fg";
+    sha256 = "ErWd99js2EldkRNWFdgZw/X3DIz266kM3lLlC34Deno=";
   };
 
   nativeBuildInputs = [ pkg-config cmake xxd ];
diff --git a/nixpkgs/pkgs/servers/udpt/default.nix b/nixpkgs/pkgs/servers/udpt/default.nix
index 3eb51b68b8cd..b9d18f63eeff 100644
--- a/nixpkgs/pkgs/servers/udpt/default.nix
+++ b/nixpkgs/pkgs/servers/udpt/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1g6l0y5x9pdra3i1npkm474glysicm4hf2m01700ack2rp43vldr";
   };
 
-  cargoSha256 = "1cmd80ndjxdmyfjpm1f04rwf64501nyi6wdsj7lxidgd1v92wy2c";
+  cargoSha256 = "0raym4zrapn3w0a98y9amyp2qh7swd73cjslsfgfzlr9w8vsb6zs";
 
   postInstall = ''
     install -D udpt.toml $out/share/udpt/udpt.toml
diff --git a/nixpkgs/pkgs/servers/unfs3/default.nix b/nixpkgs/pkgs/servers/unfs3/default.nix
index 257bb21b42bc..363856a58423 100644
--- a/nixpkgs/pkgs/servers/unfs3/default.nix
+++ b/nixpkgs/pkgs/servers/unfs3/default.nix
@@ -1,10 +1,11 @@
 { fetchurl, lib, stdenv, flex, bison }:
 
 stdenv.mkDerivation rec {
-  name = "unfs3-0.9.22";
+  pname = "unfs3";
+  version = "0.9.22";
 
   src = fetchurl {
-    url = "mirror://sourceforge/unfs3/${name}.tar.gz";
+    url = "mirror://sourceforge/unfs3/${pname}-${version}.tar.gz";
     sha256 = "076zkyqkn56q0a8n3h65n1a68fknk4hrrp6mbhajq5s1wp5248j8";
   };
 
@@ -29,5 +30,8 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
     maintainers = [ ];
+
+    # https://github.com/unfs3/unfs3/issues/13
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/servers/unifi/default.nix b/nixpkgs/pkgs/servers/unifi/default.nix
index aeaa4409aa75..0cca27a6be9d 100644
--- a/nixpkgs/pkgs/servers/unifi/default.nix
+++ b/nixpkgs/pkgs/servers/unifi/default.nix
@@ -52,7 +52,7 @@ in rec {
   };
 
   unifi6 = generic {
-    version = "6.1.71";
-    sha256 = "1lvsq0xpfgwpbzs25khy7bnrhv8i1jgzi8ij75bsh65hfa3rplc2";
+    version = "6.2.25";
+    sha256 = "14pfy9cxjyaczdp9lk56by8s5485sjsz2414x7wshf1x76yfjh27";
   };
 }
diff --git a/nixpkgs/pkgs/servers/unpackerr/default.nix b/nixpkgs/pkgs/servers/unpackerr/default.nix
new file mode 100644
index 000000000000..d9cde6b7ab5f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/unpackerr/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, buildGoModule, Cocoa, WebKit }:
+
+buildGoModule rec {
+  pname = "unpackerr";
+  version = "0.9.6";
+
+  src = fetchFromGitHub {
+    owner = "davidnewhall";
+    repo = "unpackerr";
+    rev = "v${version}";
+    sha256 = "1jyqrfik6fy7d4lr1y0ryp4iz8yn898ksyxwaryvrhykznqivp0y";
+  };
+
+  vendorSha256 = "0ilpg7xfll0c5lsv8zf4h3i72yabddkddih4d292hczyz9wi3j4z";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Cocoa WebKit ];
+
+  meta = with lib; {
+    description = "Extracts downloads for Radarr, Sonarr, Lidarr - Deletes extracted files after import";
+    homepage = "https://github.com/davidnewhall/unpackerr";
+    maintainers = with maintainers; [ nullx76 ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/unpfs/default.nix b/nixpkgs/pkgs/servers/unpfs/default.nix
index 07342c3edbef..f1d1e52b6c6e 100644
--- a/nixpkgs/pkgs/servers/unpfs/default.nix
+++ b/nixpkgs/pkgs/servers/unpfs/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   sourceRoot = "source/example/unpfs";
 
-  cargoSha256 = "13mk86d8ql2196039qb7z0rx4svwffw1mzpiyxp35gg5fhcphriq";
+  cargoSha256 = "1vdk99qz23lkh5z03qjjs3d6p2vdmxrmd2km9im94gzgcyb2fvjs";
 
   RUSTC_BOOTSTRAP = 1;
 
diff --git a/nixpkgs/pkgs/servers/ursadb/default.nix b/nixpkgs/pkgs/servers/ursadb/default.nix
index f86599adccbd..5c699e5dfd28 100644
--- a/nixpkgs/pkgs/servers/ursadb/default.nix
+++ b/nixpkgs/pkgs/servers/ursadb/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, cmake, zeromq, cppzmq }:
 
-stdenv.mkDerivation {
-  name = "ursadb";
+stdenv.mkDerivation rec {
+  pname = "ursadb";
   version = "1.2.0";
 
   src = fetchurl {
-    url = "https://github.com/CERT-Polska/ursadb/archive/v1.2.0.tar.gz";
+    url = "https://github.com/CERT-Polska/ursadb/archive/v${version}.tar.gz";
     sha256 = "10dax3mswq0x4cfrpi31b7ii7bxl536wz1j11b7f5c0zw9pjxzym";
   };
 
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
index 9ab47ace6ad6..139a8588eedd 100644
--- a/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
@@ -15,13 +15,13 @@ let
 
 in package.override rec {
   name = "bookstack";
-  version = "0.31.7";
+  version = "21.05";
 
   src = fetchFromGitHub {
     owner = "bookstackapp";
     repo = name;
     rev = "v${version}";
-    sha256 = "1jak6g2q4zbr0gxqj0bqhks687whmmw8ylzwm4saws7ikcxkwna4";
+    sha256 = "0vn1n2l66xsv2qjhh53dm28vwm7d9ba62syx2gviznva1lsyn78z";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
index 5edd0b68e868..aa3115ef955d 100644
--- a/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
@@ -5,20 +5,20 @@ let
     "aws/aws-sdk-php" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "aws-aws-sdk-php-3e6143f5c12986d727307d5d19d6aec21575d903";
+        name = "aws-aws-sdk-php-3b3aafdceac4cb820e2ae65a8785e4d07db471a7";
         src = fetchurl {
-          url = https://api.github.com/repos/aws/aws-sdk-php/zipball/3e6143f5c12986d727307d5d19d6aec21575d903;
-          sha256 = "16hbw8gqscbc3bcvnfdsll6x1653lq2s4dga3d5jbpczil3ws9yb";
+          url = https://api.github.com/repos/aws/aws-sdk-php/zipball/3b3aafdceac4cb820e2ae65a8785e4d07db471a7;
+          sha256 = "0pyc5n1h9c12li03wk0p04k25rg1x8qlq4ns4wr8xbxcysdm6xi1";
         };
       };
     };
     "barryvdh/laravel-dompdf" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "barryvdh-laravel-dompdf-30310e0a675462bf2aa9d448c8dcbf57fbcc517d";
+        name = "barryvdh-laravel-dompdf-5b99e1f94157d74e450f4c97e8444fcaffa2144b";
         src = fetchurl {
-          url = https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/30310e0a675462bf2aa9d448c8dcbf57fbcc517d;
-          sha256 = "1fnan9b2g4xhqqvlfsn3alb4nx5jjlrapgiad2kca13b3gizv7zr";
+          url = https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/5b99e1f94157d74e450f4c97e8444fcaffa2144b;
+          sha256 = "1r82fzrnjrjy5jgpyc071miiw1rwhwys9ccj81gs3yydq9hi4crw";
         };
       };
     };
@@ -35,20 +35,30 @@ let
     "doctrine/cache" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-cache-13e3381b25847283a91948d04640543941309727";
+        name = "doctrine-cache-3bb5588cec00a0268829cc4a518490df6741af9d";
         src = fetchurl {
-          url = https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727;
-          sha256 = "088fxbpjssp8x95qr3ip2iynxrimimrby03xlsvp2254vcyx94c5";
+          url = https://api.github.com/repos/doctrine/cache/zipball/3bb5588cec00a0268829cc4a518490df6741af9d;
+          sha256 = "0r9fhv0y79ma7a5llmj1skycflnwbxyyrblkavjj6svld46li94q";
         };
       };
     };
     "doctrine/dbal" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-dbal-47433196b6390d14409a33885ee42b6208160643";
+        name = "doctrine-dbal-c800380457948e65bbd30ba92cc17cda108bf8c9";
         src = fetchurl {
-          url = https://api.github.com/repos/doctrine/dbal/zipball/47433196b6390d14409a33885ee42b6208160643;
-          sha256 = "0bcg9494hr31902zcmq5kk7ji78yxk074d5bd9chxn9q0xz4g2h8";
+          url = https://api.github.com/repos/doctrine/dbal/zipball/c800380457948e65bbd30ba92cc17cda108bf8c9;
+          sha256 = "1x6bij89yaj0d52ffx683rlpxrgxl0vx9q6a121mkz1zplnif647";
+        };
+      };
+    };
+    "doctrine/deprecations" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "doctrine-deprecations-9504165960a1f83cc1480e2be1dd0a0478561314";
+        src = fetchurl {
+          url = https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314;
+          sha256 = "04kpbzk5iw86imspkg7dgs54xx877k9b5q0dfg2h119mlfkvxil6";
         };
       };
     };
@@ -85,10 +95,10 @@ let
     "dompdf/dompdf" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "dompdf-dompdf-db91d81866c69a42dad1d2926f61515a1e3f42c5";
+        name = "dompdf-dompdf-8768448244967a46d6e67b891d30878e0e15d25c";
         src = fetchurl {
-          url = https://api.github.com/repos/dompdf/dompdf/zipball/db91d81866c69a42dad1d2926f61515a1e3f42c5;
-          sha256 = "10nsmaiqfk6wgv0l9wjsh7h8nigdfabygkhjk7wdbxdfvlvniddd";
+          url = https://api.github.com/repos/dompdf/dompdf/zipball/8768448244967a46d6e67b891d30878e0e15d25c;
+          sha256 = "0mgsry4mq5bx6b74h3akay1bp03rnsl8ppcjxjkfjlq4svq7m5yf";
         };
       };
     };
@@ -115,30 +125,30 @@ let
     "facade/flare-client-php" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "facade-flare-client-php-ef0f5bce23b30b32d98fd9bb49c6fa37b40eb546";
+        name = "facade-flare-client-php-69742118c037f34ee1ef86dc605be4a105d9e984";
         src = fetchurl {
-          url = https://api.github.com/repos/facade/flare-client-php/zipball/ef0f5bce23b30b32d98fd9bb49c6fa37b40eb546;
-          sha256 = "1car7k8zzkgib9wpi9lzw1dj9qgjak8s9dmiimxaigvb7q4bc5vk";
+          url = https://api.github.com/repos/facade/flare-client-php/zipball/69742118c037f34ee1ef86dc605be4a105d9e984;
+          sha256 = "1if56r0g9ymwankz40l5xhw5vch1qkjjy9914lz1vgbkj7ln9pvz";
         };
       };
     };
     "facade/ignition" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "facade-ignition-b6aea4a99303d9d32afd486a285162a89af8a8a3";
+        name = "facade-ignition-dc49305538aeb77e4c89eba57cee4ceff9e42f33";
         src = fetchurl {
-          url = https://api.github.com/repos/facade/ignition/zipball/b6aea4a99303d9d32afd486a285162a89af8a8a3;
-          sha256 = "1dx6gf4qz6jf8hds3lyxs09zlr6ndl3d36212w2hr4b15ihmyszw";
+          url = https://api.github.com/repos/facade/ignition/zipball/dc49305538aeb77e4c89eba57cee4ceff9e42f33;
+          sha256 = "1nwqgxgp1dsrixf44qh4ywsvd0d35nqg23a8bc9mjvn9wmhdn2q0";
         };
       };
     };
     "facade/ignition-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "facade-ignition-contracts-aeab1ce8b68b188a43e81758e750151ad7da796b";
+        name = "facade-ignition-contracts-3c921a1cdba35b68a7f0ccffc6dffc1995b18267";
         src = fetchurl {
-          url = https://api.github.com/repos/facade/ignition-contracts/zipball/aeab1ce8b68b188a43e81758e750151ad7da796b;
-          sha256 = "0b5hv56758fh2y6fqbygwn94qgqwjan8d2s1i10m242x80h9jjiw";
+          url = https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267;
+          sha256 = "1nsjwd1k9q8qmfvh7m50rs42yxzxyq4f56r6dq205gwcmqsjb2j0";
         };
       };
     };
@@ -155,40 +165,40 @@ let
     "filp/whoops" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "filp-whoops-df7933820090489623ce0be5e85c7e693638e536";
+        name = "filp-whoops-c13c0be93cff50f88bbd70827d993026821914dd";
         src = fetchurl {
-          url = https://api.github.com/repos/filp/whoops/zipball/df7933820090489623ce0be5e85c7e693638e536;
-          sha256 = "0azpv2r8hc9s5pbk9wh2qk52qzycsbvpijr8w68l311igpcj4f78";
+          url = https://api.github.com/repos/filp/whoops/zipball/c13c0be93cff50f88bbd70827d993026821914dd;
+          sha256 = "0janbd93xvr5hy2bms05q1l31gmwbqrgjfvbzkmv3bfw4gcksq0i";
         };
       };
     };
     "guzzlehttp/guzzle" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "guzzlehttp-guzzle-0aa74dfb41ae110835923ef10a9d803a22d50e79";
+        name = "guzzlehttp-guzzle-7008573787b430c1c1f650e3722d9bba59967628";
         src = fetchurl {
-          url = https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79;
-          sha256 = "0gba1711dpi147fzi2ab2pg0k1g6zfanm5w5hf4c7w0b3h4ya5gj";
+          url = https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628;
+          sha256 = "10fiv9ifhz5vg78z4xa41dkwic5ql4m6xf8bglyvpw3x7b76l81m";
         };
       };
     };
     "guzzlehttp/promises" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "guzzlehttp-promises-60d379c243457e073cff02bc323a2a86cb355631";
+        name = "guzzlehttp-promises-8e7d04f1f6450fef59366c399cfad4b9383aa30d";
         src = fetchurl {
-          url = https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631;
-          sha256 = "0lvcr64bx9sb90qggxk7g7fsplz403gm3i8lnlcaifyjrlmdj5wb";
+          url = https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d;
+          sha256 = "158wd8nmvvl386c24lkr4jkwdhqpdj0dxdbjwh8iv6a2rgccjr2q";
         };
       };
     };
     "guzzlehttp/psr7" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "guzzlehttp-psr7-53330f47520498c0ae1f61f7e2c90f55690c06a3";
+        name = "guzzlehttp-psr7-dc960a912984efb74d0a90222870c72c87f10c91";
         src = fetchurl {
-          url = https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3;
-          sha256 = "0948mbbqn1xcz39diajhvlr9a7586vx3091kzx96m0z4ki3lhv7g";
+          url = https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91;
+          sha256 = "06nc60wf8k6kcl89kprk04khsrrik5lnis615mx4a0m0pjn8bliz";
         };
       };
     };
@@ -215,30 +225,30 @@ let
     "laravel/framework" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-framework-d0e4731e92ca88f4a78fe9e0c2c426a3e8c063c8";
+        name = "laravel-framework-92c0417e60efc39bc556ba5dfc9b20a56f7848fb";
         src = fetchurl {
-          url = https://api.github.com/repos/laravel/framework/zipball/d0e4731e92ca88f4a78fe9e0c2c426a3e8c063c8;
-          sha256 = "15zjpq6lbxs019vd0mm2nbfi91yyw40wsf5fl0jbw3s1ffvaq898";
+          url = https://api.github.com/repos/laravel/framework/zipball/92c0417e60efc39bc556ba5dfc9b20a56f7848fb;
+          sha256 = "17wpm3fk6qakq4b8qf2bvmyzm7zfamiabdgqshzcnfjm7kj4rijy";
         };
       };
     };
     "laravel/socialite" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-socialite-8d25d574b4f2005411c0b9cb527ef5e745c1b07d";
+        name = "laravel-socialite-1960802068f81e44b2ae9793932181cf1cb91b5c";
         src = fetchurl {
-          url = https://api.github.com/repos/laravel/socialite/zipball/8d25d574b4f2005411c0b9cb527ef5e745c1b07d;
-          sha256 = "0ash56za1flniq9nnk3siyb8l0m2cjwn2n25315qfhmdgbxxjz68";
+          url = https://api.github.com/repos/laravel/socialite/zipball/1960802068f81e44b2ae9793932181cf1cb91b5c;
+          sha256 = "1v68icdk7x1qbnhzsvpzv4nj0hwdw70s75g2bzbvmli6ah0kvvck";
         };
       };
     };
     "league/commonmark" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-commonmark-11df9b36fd4f1d2b727a73bf14931d81373b9a54";
+        name = "league-commonmark-7d70d2f19c84bcc16275ea47edabee24747352eb";
         src = fetchurl {
-          url = https://api.github.com/repos/thephpleague/commonmark/zipball/11df9b36fd4f1d2b727a73bf14931d81373b9a54;
-          sha256 = "15chm1sa65b58b47am00ik03s2agnx49i8yww3mhqlijvbrjvxc3";
+          url = https://api.github.com/repos/thephpleague/commonmark/zipball/7d70d2f19c84bcc16275ea47edabee24747352eb;
+          sha256 = "1clfi4k0xp15pzg8c344qj5jk54k9dm9xbg4sd6l6iv66md1xasn";
         };
       };
     };
@@ -305,10 +315,10 @@ let
     "nesbot/carbon" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nesbot-carbon-528783b188bdb853eb21239b1722831e0f000a8d";
+        name = "nesbot-carbon-8d1f50f1436fb4b05e7127360483dd9c6e73da16";
         src = fetchurl {
-          url = https://api.github.com/repos/briannesbitt/Carbon/zipball/528783b188bdb853eb21239b1722831e0f000a8d;
-          sha256 = "18pvfwjvclfj0mrgqvycgrbyx5jfcp1hks4yljc6mp66yxr787x4";
+          url = https://api.github.com/repos/briannesbitt/Carbon/zipball/8d1f50f1436fb4b05e7127360483dd9c6e73da16;
+          sha256 = "102pypd7x9l739qv2fp5lv4gw4sywr1jpgxlgpqyi1ww1dm3dch0";
         };
       };
     };
@@ -325,20 +335,20 @@ let
     "onelogin/php-saml" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "onelogin-php-saml-a7328b11887660ad248ea10952dd67a5aa73ba3b";
+        name = "onelogin-php-saml-f30f5062f3653c4d2082892d207f4dc3e577d979";
         src = fetchurl {
-          url = https://api.github.com/repos/onelogin/php-saml/zipball/a7328b11887660ad248ea10952dd67a5aa73ba3b;
-          sha256 = "0ycj3n22k5i3h8p7gn0xff6a7smjypazl2k5qvyzg86fjr7s3vfv";
+          url = https://api.github.com/repos/onelogin/php-saml/zipball/f30f5062f3653c4d2082892d207f4dc3e577d979;
+          sha256 = "0nl431rx1gngc2g92w4hjf2y26vjvscgbrwhq0m6kzm9kq043qzh";
         };
       };
     };
     "opis/closure" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "opis-closure-943b5d70cc5ae7483f6aff6ff43d7e34592ca0f5";
+        name = "opis-closure-06e2ebd25f2869e54a306dda991f7db58066f7f6";
         src = fetchurl {
-          url = https://api.github.com/repos/opis/closure/zipball/943b5d70cc5ae7483f6aff6ff43d7e34592ca0f5;
-          sha256 = "0y47ldgzzv22c5dnsdzqmbrsicq6acjyba0119d3dc6wa3n7zqi6";
+          url = https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6;
+          sha256 = "0fpa1w0rmwywj67jgaldmw563p7gycahs8gpkpjvrra9zhhj4yyc";
         };
       };
     };
@@ -405,20 +415,20 @@ let
     "predis/predis" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "predis-predis-9930e933c67446962997b05201c69c2319bf26de";
+        name = "predis-predis-b240daa106d4e02f0c5b7079b41e31ddf66fddf8";
         src = fetchurl {
-          url = https://api.github.com/repos/predis/predis/zipball/9930e933c67446962997b05201c69c2319bf26de;
-          sha256 = "0qnpiyv96gs8yzy3b1ba918yw1pv8bgzw7skcf3k40ffpxsmkxv6";
+          url = https://api.github.com/repos/predis/predis/zipball/b240daa106d4e02f0c5b7079b41e31ddf66fddf8;
+          sha256 = "0wbsmq5c449vwfvsriyjwqaq5sjf9kw2chr4f2xlh3vqc4kw720j";
         };
       };
     };
     "psr/container" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
+        name = "psr-container-8622567409010282b7aeebe4bb841fe98b58dcaf";
         src = fetchurl {
-          url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
-          sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
+          url = https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf;
+          sha256 = "0qfvyfp3mli776kb9zda5cpc8cazj3prk0bg0gm254kwxyfkfrwn";
         };
       };
     };
@@ -445,10 +455,10 @@ let
     "psr/log" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "psr-log-0f73288fd15629204f9d42b7055f72dacbe811fc";
+        name = "psr-log-d49695b909c3b7628b6289db5479a1c204601f11";
         src = fetchurl {
-          url = https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc;
-          sha256 = "1npi9ggl4qll4sdxz1xgp8779ia73gwlpjxbb1f1cpl1wn4s42r4";
+          url = https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11;
+          sha256 = "0sb0mq30dvmzdgsnqvw3xh4fb4bqjncx72kf8n622f94dd48amln";
         };
       };
     };
@@ -565,10 +575,10 @@ let
     "socialiteproviders/slack" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "socialiteproviders-slack-8efb25c71d98bedf4010a829d1e41ff9fe449bcc";
+        name = "socialiteproviders-slack-2b781c95daf06ec87a8f3deba2ab613d6bea5e8d";
         src = fetchurl {
-          url = https://api.github.com/repos/SocialiteProviders/Slack/zipball/8efb25c71d98bedf4010a829d1e41ff9fe449bcc;
-          sha256 = "0ax3n4s1djidkhgvrcgv1qipv3k0fhfd0cvs273h6wh66bjniq66";
+          url = https://api.github.com/repos/SocialiteProviders/Slack/zipball/2b781c95daf06ec87a8f3deba2ab613d6bea5e8d;
+          sha256 = "1xilg7l1wc1vgwyakhfl8dpvgkjqx90g4khvzi411j9xa2wvpprh";
         };
       };
     };
@@ -595,60 +605,60 @@ let
     "swiftmailer/swiftmailer" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "swiftmailer-swiftmailer-698a6a9f54d7eb321274de3ad19863802c879fb7";
+        name = "swiftmailer-swiftmailer-15f7faf8508e04471f666633addacf54c0ab5933";
         src = fetchurl {
-          url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/698a6a9f54d7eb321274de3ad19863802c879fb7;
-          sha256 = "1zmyr6szxvbc77rs4q1cp7f3vzw1wfx9rbbj7x9s65gh37z9fd1w";
+          url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933;
+          sha256 = "1xiisdaxlmkzi16szh7lm3ay9vr9pdz0q2ah7vqaqrm2b4mwd90g";
         };
       };
     };
     "symfony/console" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-console-24026c44fc37099fa145707fecd43672831b837a";
+        name = "symfony-console-1b15ca1b1bedda86f98064da9ff5d800560d4c6d";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/console/zipball/24026c44fc37099fa145707fecd43672831b837a;
-          sha256 = "19c5yczwxk0965pdg7ka8sa8wsr569r6l725rj4y9sabfd6mg6jf";
+          url = https://api.github.com/repos/symfony/console/zipball/1b15ca1b1bedda86f98064da9ff5d800560d4c6d;
+          sha256 = "0xpk6241vg866z56dksv384xmk0vkrz1by9vb8q2d6cbp6nw17y0";
         };
       };
     };
     "symfony/css-selector" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-css-selector-f907d3e53ecb2a5fad8609eb2f30525287a734c8";
+        name = "symfony-css-selector-947cacaf1b3a2af6f13a435392873d5ddaba5f70";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/css-selector/zipball/f907d3e53ecb2a5fad8609eb2f30525287a734c8;
-          sha256 = "19yqy81psz2wh8gy2j3phywsgrw9sbcw83l8lbnxbk5khg8hw3nm";
+          url = https://api.github.com/repos/symfony/css-selector/zipball/947cacaf1b3a2af6f13a435392873d5ddaba5f70;
+          sha256 = "1v5fl6vhbc2n9mm0y9m28i1gz12n1v0zqzc2sspymyq98921q3gp";
         };
       };
     };
     "symfony/debug" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-debug-af4987aa4a5630e9615be9d9c3ed1b0f24ca449c";
+        name = "symfony-debug-45b2136377cca5f10af858968d6079a482bca473";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/debug/zipball/af4987aa4a5630e9615be9d9c3ed1b0f24ca449c;
-          sha256 = "15y1bgdrzq3859ql37ymx4fsvd28kyck69ncm6zyg84q3fhd8i19";
+          url = https://api.github.com/repos/symfony/debug/zipball/45b2136377cca5f10af858968d6079a482bca473;
+          sha256 = "0p7g2mwrvg8x264kl9kn7a23adnqxh66jy1kjczq5c5xlpw2rxdb";
         };
       };
     };
     "symfony/deprecation-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-deprecation-contracts-5fa56b4074d1ae755beb55617ddafe6f5d78f665";
+        name = "symfony-deprecation-contracts-5f38c8804a9e97d23e0c8d63341088cd8a22d627";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665;
-          sha256 = "0ny59x0aaipqaj956wx7ak5f6d5rn90766swp5m18019v9cppg10";
+          url = https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627;
+          sha256 = "11k6a8v9b6p0j788fgykq6s55baba29lg37fwvmn4igxxkfwmbp3";
         };
       };
     };
     "symfony/error-handler" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-error-handler-d603654eaeb713503bba3e308b9e748e5a6d3f2e";
+        name = "symfony-error-handler-21d75bfbdfdd3581a7f97080deb98926987f14a7";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/error-handler/zipball/d603654eaeb713503bba3e308b9e748e5a6d3f2e;
-          sha256 = "15xdk9bbyfdm8yf19jfb3zr1yaj0lprf9pmxgj630vbpbqkgsd8f";
+          url = https://api.github.com/repos/symfony/error-handler/zipball/21d75bfbdfdd3581a7f97080deb98926987f14a7;
+          sha256 = "0hdcvmid17xcm21crj3k2gxvnhfww3yaw3liiqrjrkwmny9pr73q";
         };
       };
     };
@@ -675,190 +685,190 @@ let
     "symfony/finder" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-finder-25d79cfccfc12e84e7a63a248c3f0720fdd92db6";
+        name = "symfony-finder-a96bc19ed87c88eec78e1a4c803bdc1446952983";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/finder/zipball/25d79cfccfc12e84e7a63a248c3f0720fdd92db6;
-          sha256 = "04fwddn12sj6vzr5xr4xd25m86cn4l15079490h3q3igprzvrqk8";
+          url = https://api.github.com/repos/symfony/finder/zipball/a96bc19ed87c88eec78e1a4c803bdc1446952983;
+          sha256 = "065mk0cvby82wv799gl5n4xw75nm7q32g816kily39d70rfjwzrs";
         };
       };
     };
     "symfony/http-client-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-http-client-contracts-41db680a15018f9c1d4b23516059633ce280ca33";
+        name = "symfony-http-client-contracts-7e82f6084d7cae521a75ef2cb5c9457bbda785f4";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33;
-          sha256 = "1iia9rpbri1whp2dw4qfhh90gmkdvxhgjwxi54q7wlnlhijgga81";
+          url = https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4;
+          sha256 = "04mszmb94y0xjs0cwqxzhpf65kfqhhqznldifbxvrrlxb9nn23qc";
         };
       };
     };
     "symfony/http-foundation" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-http-foundation-8888741b633f6c3d1e572b7735ad2cae3e03f9c5";
+        name = "symfony-http-foundation-2ffb43bd6c589a274ee1e93a5fd6b7ef1577b9c5";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/http-foundation/zipball/8888741b633f6c3d1e572b7735ad2cae3e03f9c5;
-          sha256 = "0qs389nxxqc6nwx5x6b9kz8ykdlhdx7k8k6nd2apppxpqalvk6sw";
+          url = https://api.github.com/repos/symfony/http-foundation/zipball/2ffb43bd6c589a274ee1e93a5fd6b7ef1577b9c5;
+          sha256 = "02dras9h0h2g3xkibvpqfly7108qhg609cv16cgmw109m9d6rv7p";
         };
       };
     };
     "symfony/http-kernel" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-http-kernel-07ea794a327d7c8c5d76e3058fde9fec6a711cb4";
+        name = "symfony-http-kernel-59925ee79f2541b4c6e990843e1a42768e898254";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/http-kernel/zipball/07ea794a327d7c8c5d76e3058fde9fec6a711cb4;
-          sha256 = "0mnay6nn299ljjgaqqbk8kcl431wrzvzsqybvl648pf513mp9vy9";
+          url = https://api.github.com/repos/symfony/http-kernel/zipball/59925ee79f2541b4c6e990843e1a42768e898254;
+          sha256 = "1v6ah9ibz6n2kdpmji1wfqzvb4cbndnwfz4hjqhhrysc0vffpbk4";
         };
       };
     };
     "symfony/mime" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-mime-7dee6a43493f39b51ff6c5bb2bd576fe40a76c86";
+        name = "symfony-mime-64258e870f8cc75c3dae986201ea2df58c210b52";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86;
-          sha256 = "0931zsmnpx75b9b34a03l0sfp22mailaa2y5az3cgx9v0bkc0vka";
+          url = https://api.github.com/repos/symfony/mime/zipball/64258e870f8cc75c3dae986201ea2df58c210b52;
+          sha256 = "14s26zam8dxhbskizcw6mpyizg6n4i1ambq5ni6r9gv3rs6cfr9p";
         };
       };
     };
     "symfony/polyfill-ctype" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-ctype-c6c942b1ac76c82448322025e084cadc56048b4e";
+        name = "symfony-polyfill-ctype-46cd95797e9df938fdd2b03693b5fca5e64b01ce";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e;
-          sha256 = "0jpk859wx74vm03q5s9z25f4ak2138p2x5q3b587wvy8rq2m4pbd";
+          url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce;
+          sha256 = "0z4iiznxxs4r72xs4irqqb6c0wnwpwf0hklwn2imls67haq330zn";
         };
       };
     };
     "symfony/polyfill-iconv" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-iconv-06fb361659649bcfd6a208a0f1fcaf4e827ad342";
+        name = "symfony-polyfill-iconv-63b5bb7db83e5673936d6e3b8b3e022ff6474933";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342;
-          sha256 = "0glb56w5q4v2j629rkndp2c7v4mcs6xdl14nwaaxy85lr5w4ixnq";
+          url = https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933;
+          sha256 = "1jyjsjprsgb3r6cbc4x1wg1q1zqakqm8a62ah5lppxnjgq1sgjc5";
         };
       };
     };
     "symfony/polyfill-intl-idn" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-intl-idn-2d63434d922daf7da8dd863e7907e67ee3031483";
+        name = "symfony-polyfill-intl-idn-65bd267525e82759e7d8c4e8ceea44f398838e65";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483;
-          sha256 = "0sk592qrdb6dvk6v8msjva8p672qmhmnzkw1lw53gks0xrc20xjy";
+          url = https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/65bd267525e82759e7d8c4e8ceea44f398838e65;
+          sha256 = "1cx2cjx0vzni297l7avd3cb1q4c8d2hylkvdqcjlpxjqdimn4jkn";
         };
       };
     };
     "symfony/polyfill-intl-normalizer" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-intl-normalizer-43a0283138253ed1d48d352ab6d0bdb3f809f248";
+        name = "symfony-polyfill-intl-normalizer-8590a5f561694770bdcd3f9b5c69dde6945028e8";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248;
-          sha256 = "04irkl6aks8zyfy17ni164060liihfyraqm1fmpjbs5hq0b14sc9";
+          url = https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8;
+          sha256 = "1c60xin00q0d2gbyaiglxppn5hqwki616v5chzwyhlhf6aplwsh3";
         };
       };
     };
     "symfony/polyfill-mbstring" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-mbstring-5232de97ee3b75b0360528dae24e73db49566ab1";
+        name = "symfony-polyfill-mbstring-2df51500adbaebdc4c38dea4c89a2e131c45c8a1";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1;
-          sha256 = "1mm670fxj2x72a9mbkyzs3yifpp6glravq2ss438bags1xf6psz8";
+          url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1;
+          sha256 = "1fbi13p4a6nn01ix3gcj966kq6z8qx03li4vbjylsr9ac2mgnmnn";
         };
       };
     };
     "symfony/polyfill-php72" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-php72-cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9";
+        name = "symfony-polyfill-php72-9a142215a36a3888e30d0a9eeea9766764e96976";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9;
-          sha256 = "12dmz2n1b9pqqd758ja0c8h8h5dxdai5ik74iwvaxc5xn86a026b";
+          url = https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976;
+          sha256 = "06ipbcvrxjzgvraf2z9fwgy0bzvzjvs5z1j67grg1gb15x3d428b";
         };
       };
     };
     "symfony/polyfill-php73" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-php73-a678b42e92f86eca04b7fa4c0f6f19d097fb69e2";
+        name = "symfony-polyfill-php73-fba8933c384d6476ab14fb7b8526e5287ca7e010";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2;
-          sha256 = "10rq2x2q9hsdzskrz0aml5qcji27ypxam324044fi24nl60fyzg0";
+          url = https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010;
+          sha256 = "0fc1d60iw8iar2zcvkzwdvx0whkbw8p6ll0cry39nbkklzw85n1h";
         };
       };
     };
     "symfony/polyfill-php80" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-php80-dc3063ba22c2a1fd2f45ed856374d79114998f91";
+        name = "symfony-polyfill-php80-eca0bf41ed421bed1b57c4958bab16aa86b757d0";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91;
-          sha256 = "1mhfjibk7mqyzlqpz6jjpxpd93fnfw0nik140x3mq1d2blg5cbvd";
+          url = https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0;
+          sha256 = "1y5kc4vqh920wyjdlgxp23b958g5i9mw10mhbr30vf8j20vf1gra";
         };
       };
     };
     "symfony/process" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-process-7e950b6366d4da90292c2e7fa820b3c1842b965a";
+        name = "symfony-process-f5481b22729d465acb1cea3455fc04ce84b0148b";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a;
-          sha256 = "07ykgz5bjd45izf5n6jm2n27wcaa7aih2wlsiln1ffj9vqd6l1s4";
+          url = https://api.github.com/repos/symfony/process/zipball/f5481b22729d465acb1cea3455fc04ce84b0148b;
+          sha256 = "1cz0gd7lkp07dlylf8c32fjpfsm9z3d66iwx45i7b5wh5gc96ns0";
         };
       };
     };
     "symfony/routing" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-routing-87529f6e305c7acb162840d1ea57922038072425";
+        name = "symfony-routing-b42c3631fd9e3511610afb2ba081ea7e38d9fa38";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/routing/zipball/87529f6e305c7acb162840d1ea57922038072425;
-          sha256 = "0qrgacividsp7c61y03qh8lb4vj30g0mvljnm5k60h4zzdmivlgc";
+          url = https://api.github.com/repos/symfony/routing/zipball/b42c3631fd9e3511610afb2ba081ea7e38d9fa38;
+          sha256 = "167lvg9n8qvgkz7hgx8hv7a53j4shqiriir03g5qz7zhvddlk7vp";
         };
       };
     };
     "symfony/service-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-service-contracts-d15da7ba4957ffb8f1747218be9e1a121fd298a1";
+        name = "symfony-service-contracts-f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1;
-          sha256 = "168iq1lp2r5qb5h8j0s17da09iaj2h5hrrdc9rw2p73hq8rvm1w2";
+          url = https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb;
+          sha256 = "1i573rmajc33a9nrgwgc4k3svg29yp9xv17gp133rd1i705hwv1y";
         };
       };
     };
     "symfony/translation" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-translation-e1d0c67167a553556d9f974b5fa79c2448df317a";
+        name = "symfony-translation-424d29dfcc15575af05196de0100d7b52f650602";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/translation/zipball/e1d0c67167a553556d9f974b5fa79c2448df317a;
-          sha256 = "1b6fj278i1wdf4l7py9n86lmhrqmzvjy7kapjpfkz03adn2ps127";
+          url = https://api.github.com/repos/symfony/translation/zipball/424d29dfcc15575af05196de0100d7b52f650602;
+          sha256 = "0fpbhbiix0yqvbq5iv5wy7b37wsfgnsay0g1292s339dil60i6a6";
         };
       };
     };
     "symfony/translation-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-translation-contracts-e2eaa60b558f26a4b0354e1bbb25636efaaad105";
+        name = "symfony-translation-contracts-95c812666f3e91db75385749fe219c5e494c7f95";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105;
-          sha256 = "1k26yvgk84rz6ja9ml6l6iwbbi68qsqnq2cpky044g9ymvlg8d5g";
+          url = https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95;
+          sha256 = "073l1pbmwbkaviwwjq9ypb1w7dk366nn2vn1vancbal0zqk0zx7b";
         };
       };
     };
     "symfony/var-dumper" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-var-dumper-a1eab2f69906dc83c5ddba4632180260d0ab4f7f";
+        name = "symfony-var-dumper-c194bcedde6295f3ec3e9eba1f5d484ea97c41a7";
         src = fetchurl {
-          url = https://api.github.com/repos/symfony/var-dumper/zipball/a1eab2f69906dc83c5ddba4632180260d0ab4f7f;
-          sha256 = "1yw12jbx6gf5mvg7jrr1v57ah3b2s4hflz2p1m98nayi4qhdp20m";
+          url = https://api.github.com/repos/symfony/var-dumper/zipball/c194bcedde6295f3ec3e9eba1f5d484ea97c41a7;
+          sha256 = "0wccbr4l03asdar89bss3fhy486wjjqgjsk5iypmxaiga12ac01b";
         };
       };
     };
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch b/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
index 83c44a466fac..3872eb751406 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
@@ -1,5 +1,5 @@
 diff --git a/config/environments/production.rb b/config/environments/production.rb
-index 75c3a69512..7fc374cd9d 100644
+index a523888a8d..422c2c1ee8 100644
 --- a/config/environments/production.rb
 +++ b/config/environments/production.rb
 @@ -32,6 +32,7 @@ Discourse::Application.configure do
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
index 4bcbee1d4283..12ae858ea3a4 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, makeWrapper, runCommandNoCC, lib, nixosTests
-, fetchFromGitHub, bundlerEnv, ruby, replace, gzip, gnutar, git
+{ stdenv, makeWrapper, runCommandNoCC, lib, nixosTests, writeShellScript
+, fetchFromGitHub, bundlerEnv, ruby, replace, gzip, gnutar, git, cacert
 , util-linux, gawk, imagemagick, optipng, pngquant, libjpeg, jpegoptim
-, gifsicle, libpsl, redis, postgresql, which, brotli, procps
+, gifsicle, libpsl, redis, postgresql, which, brotli, procps, rsync
 , nodePackages, v8
 }:
 
 let
-  version = "2.6.5";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-JQUgHxs2Cl2LBpg/6JLhZxje4RmPREL1IPta84kXwPw=";
+    sha256 = "sha256-w26pwGDL2j7qbporUzZATgw7E//E6xwahCbXv35QNnc=";
   };
 
   runtimeDeps = [
     # For backups, themes and assets
     rubyEnv.wrappedRuby
+    rsync
     gzip
     gnutar
     git
@@ -65,24 +66,38 @@ let
         gems = import ./rubyEnv/gemset.nix;
       in
         gems // {
-          mini_racer = gems.mini_racer // {
-            buildInputs = [ v8 ];
-            dontBuild = false;
-            # The Ruby extension makefile generator assumes the source
-            # is C, when it's actually C++ ¯\_(ツ)_/¯
-            postPatch = ''
-              substituteInPlace ext/mini_racer_extension/extconf.rb \
-                --replace '" -std=c++0x"' \
-                          '" -x c++ -std=c++0x"'
-            '';
-          };
+          libv8-node =
+            let
+              noopScript = writeShellScript "noop" "exit 0";
+              linkFiles = writeShellScript "link-files" ''
+                cd ../..
+
+                mkdir -p vendor/v8/out.gn/libv8/obj/
+                ln -s "${v8}/lib/libv8.a" vendor/v8/out.gn/libv8/obj/libv8_monolith.a
+
+                ln -s ${v8}/include vendor/v8/include
+
+                mkdir -p ext/libv8-node
+                echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' >ext/libv8-node/.location.yml
+              '';
+            in gems.libv8-node // {
+              dontBuild = false;
+              postPatch = ''
+                cp ${noopScript} libexec/build-libv8
+                cp ${noopScript} libexec/build-monolith
+                cp ${noopScript} libexec/download-node
+                cp ${noopScript} libexec/extract-node
+                cp ${linkFiles} libexec/inject-libv8
+              '';
+            };
           mini_suffix = gems.mini_suffix // {
             propagatedBuildInputs = [ libpsl ];
             dontBuild = false;
             # Use our libpsl instead of the vendored one, which isn't
-            # available for aarch64
+            # available for aarch64. It has to be called
+            # libpsl.x86_64.so or it isn't found.
             postPatch = ''
-              cp $(readlink -f ${libpsl}/lib/libpsl.so) vendor/libpsl.so
+              cp $(readlink -f ${libpsl}/lib/libpsl.so) vendor/libpsl.x86_64.so
             '';
           };
         };
@@ -111,6 +126,8 @@ let
     # run. This means that Redis and PostgreSQL has to be running and
     # database migrations performed.
     preBuild = ''
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+
       redis-server >/dev/null &
 
       initdb -A trust $NIX_BUILD_TOP/postgres >/dev/null
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch b/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
index 709a1959d637..a7ee56ff1855 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
@@ -1,12 +1,12 @@
 diff --git a/lib/file_helper.rb b/lib/file_helper.rb
-index 162de9a40b..9ac8807e9d 100644
+index d87da5a85e..f5323292d7 100644
 --- a/lib/file_helper.rb
 +++ b/lib/file_helper.rb
-@@ -124,6 +124,7 @@ class FileHelper
-         jpegoptim: { strip: strip_image_metadata ? "all" : "none" },
-         jpegtran: false,
+@@ -127,6 +127,7 @@ class FileHelper
          jpegrecompress: false,
+         # Skip looking for gifsicle, svgo binaries
+         gifsicle: false,
 +        jhead: false,
+         svgo: false
        )
      end
-   end
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index cb86d7e4bacf..71ee3f910c0e 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -18,13 +18,13 @@ else
   # this allows us to include the bits of rails we use without pieces we do not.
   #
   # To issue a rails update bump the version number here
-  gem 'actionmailer', '6.0.3.3'
-  gem 'actionpack', '6.0.3.3'
-  gem 'actionview', '6.0.3.3'
-  gem 'activemodel', '6.0.3.3'
-  gem 'activerecord', '6.0.3.3'
-  gem 'activesupport', '6.0.3.3'
-  gem 'railties', '6.0.3.3'
+  gem 'actionmailer', '6.1.3.2'
+  gem 'actionpack', '6.1.3.2'
+  gem 'actionview', '6.1.3.2'
+  gem 'activemodel', '6.1.3.2'
+  gem 'activerecord', '6.1.3.2'
+  gem 'activesupport', '6.1.3.2'
+  gem 'railties', '6.1.3.2'
   gem 'sprockets-rails'
 end
 
@@ -40,7 +40,7 @@ gem 'actionview_precompiler', require: false
 
 gem 'seed-fu'
 
-gem 'mail', require: false
+gem 'mail', git: 'https://github.com/discourse/mail.git', require: false
 gem 'mini_mime'
 gem 'mini_suffix'
 
@@ -96,6 +96,7 @@ gem 'discourse_image_optim', require: 'image_optim'
 gem 'multi_json'
 gem 'mustache'
 gem 'nokogiri'
+gem 'loofah'
 gem 'css_parser', require: false
 
 gem 'omniauth'
@@ -132,6 +133,7 @@ gem 'rack-protection' # security
 gem 'cbor', require: false
 gem 'cose', require: false
 gem 'addressable'
+gem 'json_schemer'
 
 # Gems used only for assets and not required in production environments by default.
 # Allow everywhere for now cause we are allowing asset debugging in production
@@ -176,6 +178,7 @@ group :development do
   gem 'binding_of_caller'
   gem 'yaml-lint'
   gem 'annotate'
+  gem 'discourse_dev'
 end
 
 # this is an optional gem, it provides a high performance replacement
@@ -192,7 +195,6 @@ gem 'htmlentities', require: false
 #  If you want to amend mini profiler to do the monkey patches in the railties
 #  we are open to it. by deferring require to the initializer we can configure discourse installs without it
 
-gem 'flamegraph', require: false
 gem 'rack-mini-profiler', require: ['enable_rails_patches']
 
 gem 'unicorn', require: false, platform: :ruby
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index 4f0674932277..d3f999d34f47 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -1,21 +1,29 @@
+GIT
+  remote: https://github.com/discourse/mail.git
+  revision: 5b700fc95ee66378e0cf2559abc73c8bc3062a4b
+  specs:
+    mail (2.8.0.edge)
+      mini_mime (>= 0.1.1)
+
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      actionview (= 6.0.3.3)
-      activejob (= 6.0.3.3)
+    actionmailer (6.1.3.2)
+      actionpack (= 6.1.3.2)
+      actionview (= 6.1.3.2)
+      activejob (= 6.1.3.2)
+      activesupport (= 6.1.3.2)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.0.3.3)
-      actionview (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
-      rack (~> 2.0, >= 2.0.8)
+    actionpack (6.1.3.2)
+      actionview (= 6.1.3.2)
+      activesupport (= 6.1.3.2)
+      rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionview (6.1.3.2)
+      activesupport (= 6.1.3.2)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
@@ -24,44 +32,44 @@ GEM
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    activejob (6.1.3.2)
+      activesupport (= 6.1.3.2)
       globalid (>= 0.3.6)
-    activemodel (6.0.3.3)
-      activesupport (= 6.0.3.3)
-    activerecord (6.0.3.3)
-      activemodel (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
-    activesupport (6.0.3.3)
+    activemodel (6.1.3.2)
+      activesupport (= 6.1.3.2)
+    activerecord (6.1.3.2)
+      activemodel (= 6.1.3.2)
+      activesupport (= 6.1.3.2)
+    activesupport (6.1.3.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
-      i18n (>= 0.7, < 2)
-      minitest (~> 5.1)
-      tzinfo (~> 1.1)
-      zeitwerk (~> 2.2, >= 2.2.2)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+      zeitwerk (~> 2.3)
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     annotate (3.1.1)
       activerecord (>= 3.2, < 7.0)
       rake (>= 10.4, < 14.0)
-    ast (2.4.1)
-    aws-eventstream (1.1.0)
-    aws-partitions (1.390.0)
-    aws-sdk-core (3.109.2)
+    ast (2.4.2)
+    aws-eventstream (1.1.1)
+    aws-partitions (1.432.0)
+    aws-sdk-core (3.112.1)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-kms (1.39.0)
-      aws-sdk-core (~> 3, >= 3.109.0)
+    aws-sdk-kms (1.42.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.83.2)
-      aws-sdk-core (~> 3, >= 3.109.0)
+    aws-sdk-s3 (1.90.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sdk-sns (1.35.0)
-      aws-sdk-core (~> 3, >= 3.109.0)
+    aws-sdk-sns (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.2.2)
+    aws-sigv4 (1.2.3)
       aws-eventstream (~> 1, >= 1.0.2)
     barber (0.12.2)
       ember-source (>= 1.0, < 3.1)
@@ -70,31 +78,32 @@ GEM
       coderay (>= 1.0.0)
       erubi (>= 1.0.0)
       rack (>= 0.9.0)
-    binding_of_caller (0.8.0)
+    binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.5.1)
+    bootsnap (1.7.5)
       msgpack (~> 1.0)
     builder (3.2.4)
-    bullet (6.1.0)
+    bullet (6.1.4)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
     byebug (11.1.3)
     cbor (0.5.9.6)
     certified (1.0.0)
-    chunky_png (1.3.14)
+    chunky_png (1.4.0)
     coderay (1.1.3)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.7)
-    connection_pool (2.2.3)
+    concurrent-ruby (1.1.8)
+    connection_pool (2.2.5)
     cose (1.2.0)
       cbor (~> 0.5.9)
       openssl-signature_algorithm (~> 1.0)
     cppjieba_rb (0.3.3)
-    crack (0.4.4)
+    crack (0.4.5)
+      rexml
     crass (1.0.6)
-    css_parser (1.7.1)
+    css_parser (1.9.0)
       addressable
-    debug_inspector (0.0.3)
+    debug_inspector (1.1.0)
     diff-lcs (1.4.4)
     diffy (3.4.0)
     discourse-ember-rails (0.18.6)
@@ -104,15 +113,19 @@ GEM
       ember-source (>= 1.1.0)
       jquery-rails (>= 1.0.17)
       railties (>= 3.1)
-    discourse-ember-source (3.12.2.2)
-    discourse-fonts (0.0.5)
+    discourse-ember-source (3.12.2.3)
+    discourse-fonts (0.0.8)
+    discourse_dev (0.2.1)
+      faker (~> 2.16)
     discourse_image_optim (0.26.2)
       exifr (~> 1.2, >= 1.2.2)
       fspath (~> 3.0)
       image_size (~> 1.5)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    docile (1.3.2)
+    docile (1.4.0)
+    ecma-re-validator (0.3.0)
+      regexp_parser (~> 2.0)
     email_reply_trimmer (0.1.13)
     ember-data-source (3.0.2)
       ember-source (>= 2, < 3.0)
@@ -121,31 +134,39 @@ GEM
       sprockets (>= 3.3, < 4.1)
     ember-source (2.18.2)
     erubi (1.10.0)
-    excon (0.78.0)
-    execjs (2.7.0)
+    excon (0.81.0)
+    execjs (2.8.1)
     exifr (1.3.9)
-    fabrication (2.21.1)
+    fabrication (2.22.0)
+    faker (2.17.0)
+      i18n (>= 1.6, < 2)
     fakeweb (1.3.0)
-    faraday (1.1.0)
+    faraday (1.4.1)
+      faraday-excon (~> 1.1)
+      faraday-net_http (~> 1.0)
+      faraday-net_http_persistent (~> 1.1)
       multipart-post (>= 1.2, < 3)
-      ruby2_keywords
+      ruby2_keywords (>= 0.0.4)
+    faraday-excon (1.1.0)
+    faraday-net_http (1.0.1)
+    faraday-net_http_persistent (1.1.0)
     fast_blank (1.0.0)
     fast_xs (0.8.0)
-    fastimage (2.2.0)
-    ffi (1.13.1)
-    flamegraph (0.9.5)
+    fastimage (2.2.3)
+    ffi (1.15.0)
     fspath (3.1.2)
     gc_tracer (1.5.1)
     globalid (0.4.2)
       activesupport (>= 4.2.0)
     guess_html_encoding (0.0.11)
+    hana (1.3.7)
     hashdiff (1.0.1)
     hashie (4.1.0)
     highline (2.0.3)
     hkdf (0.3.0)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
-    i18n (1.8.5)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     image_size (1.5.0)
     in_threads (1.5.4)
@@ -154,13 +175,23 @@ GEM
       rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
-    json (2.3.1)
+    json (2.5.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
-    jwt (2.2.2)
+    json_schemer (0.2.18)
+      ecma-re-validator (~> 0.3)
+      hana (~> 1.3)
+      regexp_parser (~> 2.0)
+      uri_template (~> 0.7)
+    jwt (2.2.3)
     kgio (2.11.3)
-    libv8 (8.4.255.0)
-    listen (3.3.1)
+    libv8-node (15.14.0.1)
+    libv8-node (15.14.0.1-arm64-darwin-20)
+    libv8-node (15.14.0.1-x86_64-darwin-18)
+    libv8-node (15.14.0.1-x86_64-darwin-19)
+    libv8-node (15.14.0.1-x86_64-darwin-20)
+    libv8-node (15.14.0.1-x86_64-linux)
+    listen (3.5.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     lograge (0.11.2)
@@ -171,49 +202,49 @@ GEM
     logstash-event (1.2.02)
     logstash-logger (0.26.1)
       logstash-event (~> 1.2)
-    logster (2.9.4)
-    loofah (2.8.0)
+    logster (2.9.6)
+    loofah (2.9.1)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
     lz4-ruby (0.3.3)
-    mail (2.7.1)
-      mini_mime (>= 0.1.1)
     maxminddb (0.1.22)
-    memory_profiler (0.9.14)
-    message_bus (3.3.4)
+    memory_profiler (1.0.0)
+    message_bus (3.3.5)
       rack (>= 1.1.3)
     method_source (1.0.0)
-    mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
-    mini_racer (0.3.1)
-      libv8 (~> 8.4.255)
-    mini_scheduler (0.12.3)
-      sidekiq
-    mini_sql (0.3)
-    mini_suffix (0.3.0)
+    mini_mime (1.1.0)
+    mini_portile2 (2.5.1)
+    mini_racer (0.4.0)
+      libv8-node (~> 15.14.0.0)
+    mini_scheduler (0.13.0)
+      sidekiq (>= 4.2.3)
+    mini_sql (1.1.3)
+    mini_suffix (0.3.2)
       ffi (~> 1.9)
-    minitest (5.14.2)
-    mocha (1.11.2)
-    mock_redis (0.26.0)
-    msgpack (1.3.3)
+    minitest (5.14.4)
+    mocha (1.12.0)
+    mock_redis (0.28.0)
+      ruby2_keywords
+    msgpack (1.4.2)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     multipart-post (2.1.1)
     mustache (1.1.1)
-    nio4r (2.5.4)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
-    nokogumbo (2.0.2)
+    nio4r (2.5.7)
+    nokogiri (1.11.3)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    nokogumbo (2.0.5)
       nokogiri (~> 1.8, >= 1.8.4)
-    oauth (0.5.4)
-    oauth2 (1.4.4)
+    oauth (0.5.6)
+    oauth2 (1.4.7)
       faraday (>= 0.8, < 2.0)
       jwt (>= 1.0, < 3.0)
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 3)
-    oj (3.10.16)
+    oj (3.11.5)
     omniauth (1.9.1)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -222,35 +253,38 @@ GEM
     omniauth-github (1.4.0)
       omniauth (~> 1.5)
       omniauth-oauth2 (>= 1.4.0, < 2.0)
-    omniauth-google-oauth2 (0.8.0)
+    omniauth-google-oauth2 (0.8.2)
       jwt (>= 2.0)
-      omniauth (>= 1.1.1)
+      oauth2 (~> 1.1)
+      omniauth (~> 1.1)
       omniauth-oauth2 (>= 1.6)
-    omniauth-oauth (1.1.0)
+    omniauth-oauth (1.2.0)
       oauth
-      omniauth (~> 1.0)
-    omniauth-oauth2 (1.7.0)
+      omniauth (>= 1.0, < 3)
+    omniauth-oauth2 (1.7.1)
       oauth2 (~> 1.4)
-      omniauth (~> 1.9)
+      omniauth (>= 1.9, < 3)
     omniauth-twitter (1.4.0)
       omniauth-oauth (~> 1.1)
       rack
-    onebox (2.2.1)
+    onebox (2.2.15)
       addressable (~> 2.7.0)
       htmlentities (~> 4.3)
       multi_json (~> 1.11)
       mustache
       nokogiri (~> 1.7)
       sanitize
-    openssl-signature_algorithm (1.0.0)
+    openssl (2.2.0)
+    openssl-signature_algorithm (1.1.1)
+      openssl (~> 2.0)
     optimist (3.0.1)
     parallel (1.20.1)
-    parallel_tests (3.4.0)
+    parallel_tests (3.7.0)
       parallel
-    parser (2.7.2.0)
+    parser (3.0.1.1)
       ast (~> 2.4.1)
     pg (1.2.3)
-    progress (3.5.2)
+    progress (3.6.0)
     pry (0.13.1)
       coderay (~> 1.1)
       method_source (~> 1.0)
@@ -260,11 +294,12 @@ GEM
     pry-rails (0.3.9)
       pry (>= 0.10.4)
     public_suffix (4.0.6)
-    puma (5.0.4)
+    puma (5.3.1)
       nio4r (~> 2.0)
     r2 (0.2.7)
+    racc (1.5.2)
     rack (2.2.3)
-    rack-mini-profiler (2.2.0)
+    rack-mini-profiler (2.3.2)
       rack (>= 1.2.0)
     rack-protection (2.1.0)
       rack
@@ -275,23 +310,23 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.3.0)
       loofah (~> 2.3)
-    rails_failover (0.6.2)
+    rails_failover (0.7.3)
       activerecord (~> 6.0)
       concurrent-ruby
       railties (~> 6.0)
-    rails_multisite (2.5.0)
+    rails_multisite (3.0.0)
       activerecord (> 5.0, < 7)
       railties (> 5.0, < 7)
-    railties (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    railties (6.1.3.2)
+      actionpack (= 6.1.3.2)
+      activesupport (= 6.1.3.2)
       method_source
       rake (>= 0.8.7)
-      thor (>= 0.20.3, < 2.0)
+      thor (~> 1.0)
     rainbow (3.0.0)
     raindrops (0.19.1)
-    rake (13.0.1)
-    rb-fsevent (0.10.4)
+    rake (13.0.3)
+    rb-fsevent (0.11.0)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rbtrace (0.4.14)
@@ -300,72 +335,72 @@ GEM
       optimist (>= 3.0.0)
     rchardet (1.8.0)
     redis (4.2.5)
-    redis-namespace (1.8.0)
+    redis-namespace (1.8.1)
       redis (>= 3.0.4)
-    regexp_parser (2.0.0)
+    regexp_parser (2.1.1)
     request_store (1.5.0)
       rack (>= 1.4)
-    rexml (3.2.4)
+    rexml (3.2.5)
     rinku (2.0.6)
     rotp (6.2.0)
-    rqrcode (1.1.2)
+    rqrcode (2.0.0)
       chunky_png (~> 1.0)
-      rqrcode_core (~> 0.1)
-    rqrcode_core (0.1.2)
+      rqrcode_core (~> 1.0)
+    rqrcode_core (1.0.0)
     rspec (3.10.0)
       rspec-core (~> 3.10.0)
       rspec-expectations (~> 3.10.0)
       rspec-mocks (~> 3.10.0)
-    rspec-core (3.10.0)
+    rspec-core (3.10.1)
       rspec-support (~> 3.10.0)
-    rspec-expectations (3.10.0)
+    rspec-expectations (3.10.1)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.10.0)
     rspec-html-matchers (0.9.4)
       nokogiri (~> 1)
       rspec (>= 3.0.0.a, < 4)
-    rspec-mocks (3.10.0)
+    rspec-mocks (3.10.2)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.10.0)
-    rspec-rails (4.0.1)
-      actionpack (>= 4.2)
-      activesupport (>= 4.2)
-      railties (>= 4.2)
-      rspec-core (~> 3.9)
-      rspec-expectations (~> 3.9)
-      rspec-mocks (~> 3.9)
-      rspec-support (~> 3.9)
-    rspec-support (3.10.0)
-    rswag-specs (2.3.1)
+    rspec-rails (5.0.1)
+      actionpack (>= 5.2)
+      activesupport (>= 5.2)
+      railties (>= 5.2)
+      rspec-core (~> 3.10)
+      rspec-expectations (~> 3.10)
+      rspec-mocks (~> 3.10)
+      rspec-support (~> 3.10)
+    rspec-support (3.10.2)
+    rswag-specs (2.4.0)
       activesupport (>= 3.1, < 7.0)
       json-schema (~> 2.2)
       railties (>= 3.1, < 7.0)
     rtlit (0.0.5)
-    rubocop (1.4.2)
+    rubocop (1.14.0)
       parallel (~> 1.10)
-      parser (>= 2.7.1.5)
+      parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 1.8)
+      regexp_parser (>= 1.8, < 3.0)
       rexml
-      rubocop-ast (>= 1.1.1)
+      rubocop-ast (>= 1.5.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 2.0)
-    rubocop-ast (1.2.0)
-      parser (>= 2.7.1.5)
+      unicode-display_width (>= 1.4.0, < 3.0)
+    rubocop-ast (1.5.0)
+      parser (>= 3.0.1.1)
     rubocop-discourse (2.4.1)
       rubocop (>= 1.1.0)
       rubocop-rspec (>= 2.0.0)
-    rubocop-rspec (2.0.0)
+    rubocop-rspec (2.3.0)
       rubocop (~> 1.0)
       rubocop-ast (>= 1.1.0)
-    ruby-prof (1.4.2)
-    ruby-progressbar (1.10.1)
+    ruby-prof (1.4.3)
+    ruby-progressbar (1.11.0)
     ruby-readability (0.7.0)
       guess_html_encoding (>= 0.0.4)
       nokogiri (>= 1.6.0)
-    ruby2_keywords (0.0.2)
+    ruby2_keywords (0.0.4)
     rubyzip (2.3.0)
-    sanitize (5.2.1)
+    sanitize (5.2.3)
       crass (~> 1.0.2)
       nokogiri (>= 1.8.0)
       nokogumbo (~> 2.0)
@@ -381,18 +416,18 @@ GEM
     seed-fu (2.3.9)
       activerecord (>= 3.1)
       activesupport (>= 3.1)
-    shoulda-matchers (4.4.1)
+    shoulda-matchers (4.5.1)
       activesupport (>= 4.2.0)
-    sidekiq (6.1.2)
+    sidekiq (6.2.1)
       connection_pool (>= 2.2.2)
       rack (~> 2.0)
       redis (>= 4.2.0)
-    simplecov (0.20.0)
+    simplecov (0.21.2)
       docile (~> 1.1)
       simplecov-html (~> 0.11)
       simplecov_json_formatter (~> 0.1)
     simplecov-html (0.12.3)
-    simplecov_json_formatter (0.1.2)
+    simplecov_json_formatter (0.1.3)
     sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
@@ -401,24 +436,24 @@ GEM
       activesupport (>= 4.0)
       sprockets (>= 3.0.0)
     sshkey (2.0.0)
-    stackprof (0.2.16)
-    test-prof (0.12.2)
-    thor (1.0.1)
-    thread_safe (0.3.6)
+    stackprof (0.2.17)
+    test-prof (1.0.5)
+    thor (1.1.0)
     tilt (2.0.10)
-    tzinfo (1.2.8)
-      thread_safe (~> 0.1)
+    tzinfo (2.0.4)
+      concurrent-ruby (~> 1.0)
     uglifier (4.2.0)
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
     unf_ext (0.0.7.7)
-    unicode-display_width (1.7.0)
-    unicorn (5.7.0)
+    unicode-display_width (2.0.0)
+    unicorn (6.0.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
-    uniform_notifier (1.13.0)
-    webmock (3.10.0)
+    uniform_notifier (1.14.2)
+    uri_template (0.7.0)
+    webmock (3.12.2)
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -427,20 +462,25 @@ GEM
       jwt (~> 2.0)
     xorcist (1.1.2)
     yaml-lint (0.0.10)
-    zeitwerk (2.4.1)
+    zeitwerk (2.4.2)
 
 PLATFORMS
+  arm64-darwin-20
   ruby
+  x86_64-darwin-18
+  x86_64-darwin-19
+  x86_64-darwin-20
+  x86_64-linux
 
 DEPENDENCIES
-  actionmailer (= 6.0.3.3)
-  actionpack (= 6.0.3.3)
-  actionview (= 6.0.3.3)
+  actionmailer (= 6.1.3.2)
+  actionpack (= 6.1.3.2)
+  actionview (= 6.1.3.2)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 6.0.3.3)
-  activerecord (= 6.0.3.3)
-  activesupport (= 6.0.3.3)
+  activemodel (= 6.1.3.2)
+  activerecord (= 6.1.3.2)
+  activesupport (= 6.1.3.2)
   addressable
   annotate
   aws-sdk-s3
@@ -461,6 +501,7 @@ DEPENDENCIES
   discourse-ember-rails (= 0.18.6)
   discourse-ember-source (~> 3.12.2)
   discourse-fonts
+  discourse_dev
   discourse_image_optim
   email_reply_trimmer
   ember-handlebars-template (= 0.8.0)
@@ -471,20 +512,21 @@ DEPENDENCIES
   fast_blank
   fast_xs
   fastimage
-  flamegraph
   gc_tracer
   highline
   htmlentities
   http_accept_language
   json
+  json_schemer
   listen
   lograge
   logstash-event
   logstash-logger
   logster
+  loofah
   lru_redux
   lz4-ruby
-  mail
+  mail!
   maxminddb
   memory_profiler
   message_bus
@@ -518,7 +560,7 @@ DEPENDENCIES
   rack-protection
   rails_failover
   rails_multisite
-  railties (= 6.0.3.3)
+  railties (= 6.1.3.2)
   rake
   rb-fsevent
   rbtrace
@@ -558,4 +600,4 @@ DEPENDENCIES
   yaml-lint
 
 BUNDLED WITH
-   2.1.4
+   2.2.16
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index b2cf191a4444..4b3ce8ce2192 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -1,14 +1,14 @@
 {
   actionmailer = {
-    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1spq0dbfn0qkqg9sq0rsjn360b4j36zly8hawaivkrwr3rsvyz75";
+      sha256 = "1nqdaykzgib8fsldkxdkw0w44jzz4grvb028crzg0qpwvv03g2wp";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+      sha256 = "1wdgv5llgbl4nayx5j78lfvhhjssrzfmypb45mjy37mgm8z5l5m5";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+      sha256 = "1r6db2g3fsrca1hp9kbyvjx9psipsxw0g306qharkcblxl8h1ysn";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w54ckvc229iaax879hkhyc93j7z8p0v7acp6mk3h8xjfvmwy5jp";
+      sha256 = "0p80rbahcxhxlkxgf4bh580hbifn9q4gr5g9fy8fd0z5g6gr9xxq";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "166jlx6kbby01vr37srh081a9fykgsz873yg5i9gl2ar3vw9gs56";
+      sha256 = "1gpd3hh4ryyr84drj6m0b5sy6929nyf50bfgksw1hpc594542nal";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y2a4ss6ld6yrhpcbcb3kjn5gj6zk9qklp2aq5rl1awl8vbdbdb7";
+      sha256 = "0fg58qma2zgrz0gr61p61qcz8c3h88fd5lbdrkpkm96aq5shwh68";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+      sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -125,30 +125,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
   aws-eventstream = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17xranmng1mg6238zdmnfvaig82r2ymp2apra9yh5d8rhvn8hkwm";
+      sha256 = "0y0z25hgghy3i8azx0mn8pda2qvd47zkilwjps0x32zn091blzgg";
       type = "gem";
     };
-    version = "1.390.0";
+    version = "1.432.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -156,10 +156,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05dq7jfv5qf1y00ib96nqsipf08hflw8n8fwkyjw4qav84wjqaq4";
+      sha256 = "0r5f7pb9dh95f7cb4rdj1z766c88735y6y6msbgzak0v8g8j3dw9";
       type = "gem";
     };
-    version = "3.109.2";
+    version = "3.112.1";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -167,10 +167,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ly1m631qm2ciif7sysbzrgczjvz95ga3g6w6vrzvfdv31jjnl9a";
+      sha256 = "00wgf83cdy6z77b2y0ld0aqiidfyldi71hx0z8b73gxjdlbwpq1i";
       type = "gem";
     };
-    version = "1.39.0";
+    version = "1.42.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -178,10 +178,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mld0yh6q6i2nbb143g5xc6gm70sqpvpwxfknlihrd8jmw3xc0bs";
+      sha256 = "0sm1x1pm2wb8gj3p4yv45r7n8m4k3qawk3lrnd2lvk2vg5nyfh61";
       type = "gem";
     };
-    version = "1.83.2";
+    version = "1.90.0";
   };
   aws-sdk-sns = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -189,10 +189,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dw80ldqhb1mny5irgi2jh36hykcmyd07xalv21xncxqzmf8aiag";
+      sha256 = "0cqri14igfmcxlapbagg0nmy79zzg29awzybv51gl76m3mljbafb";
       type = "gem";
     };
-    version = "1.35.0";
+    version = "1.38.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -200,10 +200,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
+      sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   barber = {
     dependencies = ["ember-source" "execjs"];
@@ -237,10 +237,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      sha256 = "078n2dkpgsivcf0pr50981w95nfc2bsrp3wpf9wnxz1qsp8jbb9s";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "1.0.0";
   };
   bootsnap = {
     dependencies = ["msgpack"];
@@ -252,10 +252,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qx1f729bgh391agsqb4ngzn22wdn4cc6mkp0cipf0d5hsg9cpaq";
+      sha256 = "12n09iwpssnsfw9s140ynfxr9psd0xcfx42yqdsk0hq60zhq2nlx";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "1.7.5";
   };
   builder = {
     groups = ["default" "development" "test"];
@@ -273,10 +273,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18ifwnvn13755qkfigapyj5bflpby3phxzbb7x5336d0kzv5k7d9";
+      sha256 = "0r8d3vh1xjfx46qlv75228rkshzgqxpmf491vxzpicpqi1xad5ni";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.4";
   };
   byebug = {
     groups = ["development" "test"];
@@ -317,10 +317,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v52ndgx9r4jybq8yzr8anzfbnjk4y2hvz97nm9924wi4bad3xkf";
+      sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
       type = "gem";
     };
-    version = "1.3.14";
+    version = "1.4.0";
   };
   coderay = {
     groups = ["default" "development"];
@@ -351,20 +351,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   connection_pool = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qikl4av1z8kqnk5ba18136dpqzw8wjawc2w9b4zb5psdd5z8nwf";
+      sha256 = "0ffdxhgirgc86qb42yvmfj6v1v0x4lvi0pxn9zhghkff44wzra0k";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.2.5";
   };
   cose = {
     dependencies = ["cbor" "openssl-signature_algorithm"];
@@ -388,14 +388,15 @@
     version = "0.3.3";
   };
   crack = {
+    dependencies = ["rexml"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1awi8jy4jn0f7vxpdvz3xvn1zzjbjh33n28lfkijh77dla5zb7lc";
+      sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r";
       type = "gem";
     };
-    version = "0.4.4";
+    version = "0.4.5";
   };
   crass = {
     groups = ["default" "development" "test"];
@@ -413,20 +414,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw";
+      sha256 = "0xs4ind9xd099rb52b73pch8ha143dl8bhivqsbba4wrvxpbx751";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.9.0";
   };
   debug_inspector = {
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga";
       type = "gem";
     };
-    version = "0.0.3";
+    version = "1.1.0";
   };
   diff-lcs = {
     groups = ["default" "development" "test"];
@@ -464,20 +465,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mqkwiqb5n64lc5jdjnmpgb9apq08ywkz9yk8mj1sx2lqcsw11pc";
+      sha256 = "0q4wypjiqvjlwaif5z3pnv0z02rsiysx58d7iljrw8xx9sxwxn6x";
       type = "gem";
     };
-    version = "3.12.2.2";
+    version = "3.12.2.3";
   };
   discourse-fonts = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xhwgqclh3jncjr55m0hyq3w3iw8jw2r7ickzq1zn1282pc3n2i7";
+      sha256 = "1gr1d80wmb1jvip82jlbsz5bcpwsz9lryxxfnwiw537vx8pqkk3p";
       type = "gem";
     };
-    version = "0.0.5";
+    version = "0.0.8";
+  };
+  discourse_dev = {
+    dependencies = ["faker"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sn2lcgjhsbqnaca97a37bfk249c55b3cn1q8abnf1am9jq5hdiw";
+      type = "gem";
+    };
+    version = "0.2.1";
   };
   discourse_image_optim = {
     dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
@@ -495,10 +507,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz";
       type = "gem";
     };
-    version = "1.3.2";
+    version = "1.4.0";
+  };
+  ecma-re-validator = {
+    dependencies = ["regexp_parser"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mz0nsl2093jd94nygw8qs13rwfwl1ax76xz3ypinr5hqbc5pab6";
+      type = "gem";
+    };
+    version = "0.3.0";
   };
   email_reply_trimmer = {
     groups = ["default"];
@@ -561,20 +584,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hi89v53pm2abfv9j8lgqdd7hgkr7fr0gwrczr940iwbb3xv7rrs";
+      sha256 = "19g5nvkycnkzqq4mqn1zjznq9adrlv2jz0dr9w10cbn42hhqpiz7";
       type = "gem";
     };
-    version = "0.78.0";
+    version = "0.81.0";
   };
   execjs = {
     groups = ["assets" "default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+      sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.1";
   };
   exifr = {
     groups = ["default"];
@@ -591,10 +614,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pdrl55xf76pbc5kjzp7diawxxvgbk2cm38532in6df823431n6z";
+      sha256 = "1a1zv94hcss44n1b04w0rg0swg8npigrj3nva9h0y2f1iflj124k";
+      type = "gem";
+    };
+    version = "2.22.0";
+  };
+  faker = {
+    dependencies = ["i18n"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z3d4y6xg8prn3zdjw1qpqrnziq1d3zigqil4sxjj0pbr46gc1d6";
       type = "gem";
     };
-    version = "2.21.1";
+    version = "2.17.0";
   };
   fakeweb = {
     groups = ["test"];
@@ -607,12 +641,42 @@
     version = "1.3.0";
   };
   faraday = {
-    dependencies = ["multipart-post" "ruby2_keywords"];
+    dependencies = ["faraday-excon" "faraday-net_http" "faraday-net_http_persistent" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
+      sha256 = "0q646m07lfahakx5jdq77j004rcgfj6lkg13c0f84993gi78dhvi";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  faraday-excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday-net_http_persistent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l2c835wl7gv34xp49fhd1bl4czkpw2g3ahqsak2251iqv5589ka";
       type = "gem";
     };
     version = "1.1.0";
@@ -654,10 +718,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11ny2pj0j6pljszrf1w3iqdv2pcl2iwwghjbgcjlizy424zbh0hb";
+      sha256 = "0lgr0vs9kg5622qaf2l3f37b238dncs037fisiygvkbq8sg11i68";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.3";
   };
   ffi = {
     groups = ["default" "development" "test"];
@@ -668,20 +732,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
-      type = "gem";
-    };
-    version = "1.13.1";
-  };
-  flamegraph = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1p785nmhdzbwj0qpxn5fzrmr4kgimcds83v4f95f387z6w3050x6";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "0.9.5";
+    version = "1.15.0";
   };
   fspath = {
     groups = ["default"];
@@ -728,6 +782,16 @@
     };
     version = "0.0.11";
   };
+  hana = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03cvrv2wl25j9n4n509hjvqnmwa60k92j741b64a1zjisr1dn9al";
+      type = "gem";
+    };
+    version = "1.3.7";
+  };
   hashdiff = {
     groups = ["default" "test"];
     platforms = [];
@@ -794,10 +858,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   image_size = {
     groups = ["default"];
@@ -845,10 +909,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   json-schema = {
     dependencies = ["addressable"];
@@ -861,15 +925,26 @@
     };
     version = "2.8.1";
   };
+  json_schemer = {
+    dependencies = ["ecma-re-validator" "hana" "regexp_parser" "uri_template"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rkb7gz819g82n3xshb5g8kgv1nvgwg1lm2fk7715pggzcgc4qik";
+      type = "gem";
+    };
+    version = "0.2.18";
+  };
   jwt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
+      sha256 = "036i5fc09275ms49mw43mh4i9pwaap778ra2pmx06ipzyyjl6bfs";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   kgio = {
     groups = ["default"];
@@ -887,15 +962,15 @@
     };
     version = "2.11.3";
   };
-  libv8 = {
+  libv8-node = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0317sr3nrl51sp844bps71smkrwim3fjn47wdfpbycixnbxspivm";
+      sha256 = "1xx217hrkpcm41p41inmy05kb7g8p9w5fwabgjgmpvz0d60j2862";
       type = "gem";
     };
-    version = "8.4.255.0";
+    version = "15.14.0.1";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -903,10 +978,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0028p1fss6pvw4mlpjqdmxfzsm8ww79irsadbibrr7f23qfn8ykr";
+      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
       type = "gem";
     };
-    version = "3.3.1";
+    version = "3.5.1";
   };
   lograge = {
     dependencies = ["actionpack" "activesupport" "railties" "request_store"];
@@ -945,10 +1020,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ldikj3p0bakxg57didaw05pldjn0i5r20zawhqa34knlsqm66r6";
+      sha256 = "1a65kp9d3n34nnd0vr49s3gxxjzi4l197s3qyq4njjf81smd2764";
       type = "gem";
     };
-    version = "2.9.4";
+    version = "2.9.6";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -956,10 +1031,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.1";
   };
   lru_redux = {
     groups = ["default"];
@@ -992,11 +1067,13 @@
     groups = ["default"];
     platforms = [];
     source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
-      type = "gem";
+      fetchSubmodules = false;
+      rev = "5b700fc95ee66378e0cf2559abc73c8bc3062a4b";
+      sha256 = "0j084s1gsdwiqvm4jdayi0x4rsdrazqv8z8wkz28v7zmaymw18lz";
+      type = "git";
+      url = "https://github.com/discourse/mail.git";
     };
-    version = "2.7.1";
+    version = "2.8.0.edge";
   };
   maxminddb = {
     groups = ["default"];
@@ -1017,10 +1094,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04ivhv1bilwqm33jv28gar2vwzsichb5nipaq395d3axabv8qmfy";
+      sha256 = "0s8qaf19yr4lhvdxk3cy3ifc47cgxdz2jybg6hzxsy9gh88c1f7v";
       type = "gem";
     };
-    version = "0.9.14";
+    version = "1.0.0";
   };
   message_bus = {
     dependencies = ["rack"];
@@ -1028,10 +1105,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hckijk9aa628nx66vr7axfsk7zfdkskaxj1mdzikk019q3h54fr";
+      sha256 = "0gg8axd71vjanzis8w4h4if2qi4fx0glmc258dwa5b3z6zvzsbz8";
       type = "gem";
     };
-    version = "3.3.4";
+    version = "3.3.5";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1048,31 +1125,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "0kb7jq3wjgckmkzna799y5qmvn6vg52878bkgw35qay6lflcrwih";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.0";
   };
   mini_portile2 = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.1";
   };
   mini_racer = {
-    dependencies = ["libv8"];
+    dependencies = ["libv8-node"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r7j241mvhyyc017bqgp0pvf3jyrwbcqvz2pzm0r8zn2r85ks1jl";
+      sha256 = "0334q46gi3il9izw7k4z32fj06nm8pznqdkr9r51033lnwwy9zy3";
       type = "gem";
     };
-    version = "0.3.1";
+    version = "0.4.0";
   };
   mini_scheduler = {
     dependencies = ["sidekiq"];
@@ -1080,20 +1157,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vigv7f1q5bkcb55ab2lyhq15yqfkg5mq61p7m7mw9b3jac7qjz1";
+      sha256 = "1cy9c2wv19m4h2sv9fs66hh1an7hq3y9513678dzx43vm3kjvhz5";
       type = "gem";
     };
-    version = "0.12.3";
+    version = "0.13.0";
   };
   mini_sql = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qi4bj5jkh3673ybsxvsf7y485znyxb72vxg84gk9x65mf0y0m6h";
+      sha256 = "1yvln5wx2jfpd9q2pvjdid96vdz1ynnfk8ip913wpx28wp8ww7jn";
       type = "gem";
     };
-    version = "0.3";
+    version = "1.1.3";
   };
   mini_suffix = {
     dependencies = ["ffi"];
@@ -1101,40 +1178,41 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bxd1fgzb20gvfvhbkrxym9fr7skm5x6fzvqfg4a0jijb34ww50h";
+      sha256 = "1r6pwyv1vpyza0rn1pyxls4qdw5jd3vg4k5dp1iaqa57n6fiqrvi";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.3.2";
   };
   minitest = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   mocha = {
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4";
+      sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a";
       type = "gem";
     };
-    version = "1.11.2";
+    version = "1.12.0";
   };
   mock_redis = {
+    dependencies = ["ruby2_keywords"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06yj6j9x4zjckah4ixiwhy3hb6xzjp7yk7lmmcvcb8hpd0z0x95q";
+      sha256 = "0x6ng2p1884pjpwj169p6xyas5bvshi4q1wfcfmxvk82jwm0cz3c";
       type = "gem";
     };
-    version = "0.26.0";
+    version = "0.28.0";
   };
   msgpack = {
     groups = ["default"];
@@ -1145,10 +1223,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
+      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.2";
   };
   multi_json = {
     groups = ["default"];
@@ -1195,21 +1273,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
+      sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
       type = "gem";
     };
-    version = "2.5.4";
+    version = "2.5.7";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.3";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -1217,20 +1295,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sxjnpjvrn10gdmfw2dimhch861lz00f28hvkkz0b1gc2rb65k9s";
+      sha256 = "0ngsnr0l6r4yccdwvky18n9a81plhpviaw6g7ym45mr1q0y0aj2w";
       type = "gem";
     };
-    version = "2.0.2";
+    version = "2.0.5";
   };
   oauth = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0";
       type = "gem";
     };
-    version = "0.5.4";
+    version = "0.5.6";
   };
   oauth2 = {
     dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
@@ -1238,20 +1316,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bhakjh30vi8scqwnhd1c9qkac9r8hh2lr0dbs5ynwmrc5djxknm";
+      sha256 = "1q6q2kgpxmygk8kmxqn54zkw8cs57a34zzz5cxpsh1bj3ag06rk3";
       type = "gem";
     };
-    version = "1.4.4";
+    version = "1.4.7";
   };
   oj = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqmzqldi9a0wpilwx87yh61xd7647gg8ffammg4ava0bsx375g2";
+      sha256 = "1cnadm83qwnmbpyild9whb9bgf9r7gs046ydxypclb2l756gcnva";
       type = "gem";
     };
-    version = "3.10.16";
+    version = "3.11.5";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1287,15 +1365,15 @@
     version = "1.4.0";
   };
   omniauth-google-oauth2 = {
-    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    dependencies = ["jwt" "oauth2" "omniauth" "omniauth-oauth2"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pgqasl048irs2c6w6g57zvk0ygb5ml1krwir4qi4b6y53zyr55";
+      sha256 = "10pnxvb6wpnf58dja3yz4ja527443x3q13hzhcbays4amnnp8i4a";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "0.8.2";
   };
   omniauth-oauth = {
     dependencies = ["oauth" "omniauth"];
@@ -1303,10 +1381,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      sha256 = "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   omniauth-oauth2 = {
     dependencies = ["oauth2" "omniauth"];
@@ -1314,10 +1392,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v6rw7sd223k7qw0l13wikgfcqbvbk81r53a9i2z0k7jl5vd97w5";
+      sha256 = "10fr2b58sp7l6nfdvxpbi67374hkrvsf507cvda89jjs0jacy319";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.7.1";
   };
   omniauth-twitter = {
     dependencies = ["omniauth-oauth" "rack"];
@@ -1336,20 +1414,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b2aih0d5cva9bris36gh1mk3ym61wgxlpwvzjd6qphdrjfzqx8v";
+      sha256 = "0a76xmwikcg2lv8k2cawzhmi2hx7j145v12mbpriby6zff797z4g";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.2.15";
+  };
+  openssl = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03wbynzkhay7l1x76srjkg91q48mxl575vrxb3blfxlpqwsvvp0w";
+      type = "gem";
+    };
+    version = "2.2.0";
   };
   openssl-signature_algorithm = {
+    dependencies = ["openssl"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h1pfx49j8d9vbdbi8jyj0mr63l7rhflgvgc0nhfygm1v77d7nkn";
+      sha256 = "173p9agv45hj62fdgl9bzqr9f6xg7hi2sf5iyd3ahiwbv220x332";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.1.1";
   };
   optimist = {
     groups = ["default"];
@@ -1381,10 +1470,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mvdk8vgzqjv2pvadxwc8w2vf8dmiw145rjf47c36nn6l5hh02j6";
+      sha256 = "1vrd24lg1pqxvp63664hrndywpdyn8i38j4gfvqk8zjl1mxy9840";
       type = "gem";
     };
-    version = "3.4.0";
+    version = "3.7.0";
   };
   parser = {
     dependencies = ["ast"];
@@ -1392,10 +1481,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+      sha256 = "1pxsi1i5z506xfzhiyavlasf8777h55ab40phvp7pfv9npmd5pnj";
       type = "gem";
     };
-    version = "2.7.2.0";
+    version = "3.0.1.1";
   };
   pg = {
     groups = ["default"];
@@ -1412,10 +1501,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pm3bv5n8c8j0vfm7wghd7xf6yq4m068cksxjldmna11qi0h0s8s";
+      sha256 = "0wymdk40cwrqn32gwg1kw94s5p1n0z3n7ma7x1s62gd4vw3d63in";
       type = "gem";
     };
-    version = "3.5.2";
+    version = "3.6.0";
   };
   pry = {
     dependencies = ["coderay" "method_source"];
@@ -1466,10 +1555,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mkmfbf4qyiknwi9bb5432cpbbz06r855gknxb8grn24gmgs4d9i";
+      sha256 = "00839fhvcq73h9a4crbrk87y6bi2z4vp1zazxihn6w0mrwr51c3i";
       type = "gem";
     };
-    version = "5.0.4";
+    version = "5.3.1";
   };
   r2 = {
     groups = ["default"];
@@ -1481,6 +1570,16 @@
     };
     version = "0.2.7";
   };
+  racc = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default" "development" "test"];
     platforms = [{
@@ -1501,10 +1600,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05s7y56ayn56bn7y5ah3krm5d53vsj7apmcxlwc2qp7ik0xlypvq";
+      sha256 = "02rkbmi66pqcx8l4yxnhpiywdqhbza4m2i2b457q8imjvw950jhs";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.2";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -1556,10 +1655,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ibxn7lk6rqk7q76cd9ir3xnh19p2pqr9mzam46n3h37f12yyax5";
+      sha256 = "0g3snqmsbdl2jyf2h7q4ds333hizp0j89chca75xv10gv2lq6sa8";
       type = "gem";
     };
-    version = "0.6.2";
+    version = "0.7.3";
   };
   rails_multisite = {
     dependencies = ["activerecord" "railties"];
@@ -1567,10 +1666,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p7g9gkcmw030zfqlw3k933i40j31wf3jh4bj1niihzk7slha97y";
+      sha256 = "09lwi5pd0bisy45pv85l8w7wm5f7l5bxpva0y7bcvqdrk49ykm1g";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "3.0.0";
   };
   railties = {
     dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
@@ -1578,10 +1677,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05b79r0ms8jrs91zml1190qfxmnmks90g0sd820ks9msyr8xdp7j";
+      sha256 = "17r1pr8d467vh3zkciw4wmrcixj9zjrvd11nxn2z091bkzf66xq2";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.1.3.2";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1614,20 +1713,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rb-fsevent = {
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
+      sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is";
       type = "gem";
     };
-    version = "0.10.4";
+    version = "0.11.0";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -1681,20 +1780,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05i6s898z5w31z385cba1683pgg5nnmj4m686cbravg7j4pgbcgv";
+      sha256 = "0k65fr7f8ciq7d9nwc5ziw1d32zsxilgmqdlj3359rz5jgb0f5y8";
       type = "gem";
     };
-    version = "1.8.0";
+    version = "1.8.1";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1racz3w9s4w0ls32bvjypfifk4a7qxngm2cv1rh16jyz0c1wjd70";
+      sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.1.1";
   };
   request_store = {
     dependencies = ["rack"];
@@ -1712,10 +1811,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "3.2.4";
+    version = "3.2.5";
   };
   rinku = {
     groups = ["default"];
@@ -1743,20 +1842,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06lw8b6wfshxd61xw98xyp1a0zsz6av4nls2c9fwb7q59wb05sci";
+      sha256 = "073w0qgjydkqpsqsb9yr8qg0mhvwlzx6z53hqr2b5zifvb9wzh02";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "2.0.0";
   };
   rqrcode_core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "071jqmhk3hf0grsvi0jx5sl449pf82p40ls5b3likbq4q516zc0j";
+      sha256 = "1djrfpzdy19c336nlzxdsm9qkrgqnm1himdawflsjsmxpq4j826c";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "1.0.0";
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -1775,10 +1874,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n2rdv8f26yw8c6asymc0mgddyr5d2b5n6mfvpd3n6lnpf1jdyv2";
+      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.10.1";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -1786,10 +1885,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j37dvnvfbjwj8dqx27yfvz0frl7f2jc1abqg99h0ppriz9za6dc";
+      sha256 = "1sz9bj4ri28adsklnh257pnbq4r5ayziw02qf67wry0kvzazbb17";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.10.1";
   };
   rspec-html-matchers = {
     dependencies = ["nokogiri" "rspec"];
@@ -1808,10 +1907,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pz89y1522i6f8wzrg72ykmch3318ih87nlpl0y1ghsrs5hqymw3";
+      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.10.2";
   };
   rspec-rails = {
     dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
@@ -1819,20 +1918,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lzik01ziaskgpdpy8knffpw0fsy9151f5lfigyhb89wq4q45hfs";
+      sha256 = "1pj2a9vrkp2xzlq0810q90sdc2zcqc7k92n57hxzhri2vcspy7n6";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "5.0.1";
   };
   rspec-support = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j0n28i6zci5j7gg370bdy87dy43hlwx6dw428d9kamf5a0i2klz";
+      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.10.2";
   };
   rswag-specs = {
     dependencies = ["activesupport" "json-schema" "railties"];
@@ -1840,10 +1939,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lyp2m76p960bvgy4xcz0dilp4w5lq2cwh8md5z7cwxdg8qsbr83";
+      sha256 = "1dma3j5vfjhyclg8y0gsp44vs4wn9chf4jgfhc9r6ws018xrbxzd";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.4.0";
   };
   rtlit = {
     groups = ["assets"];
@@ -1861,10 +1960,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kvzhzhzcdd5bqwjilb0fpp51sqjniww2b0g713n0cvhnlgchn2y";
+      sha256 = "0chjr6i0g7frbp7dhi4d83ppf7akkdaw7mcgcwbxd6a9mairafpp";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.14.0";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -1872,10 +1971,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q0kdi89ad7dd1xmzrdf5ikk32bllzr68hf4x8fd7azcv5jnch2l";
+      sha256 = "0hx4im1a2qpiwipvsl3fma358ixjp4h0mhj56ichq15xrq709qlf";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.5.0";
   };
   rubocop-discourse = {
     dependencies = ["rubocop" "rubocop-rspec"];
@@ -1894,10 +1993,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gl7hdd9lq0si4gb510g33dbysmk3iydas2b0sbl5pwfkhv0k4g1";
+      sha256 = "0r69qcwm74vsbp1s2gaqaf91kkrsn2mv4gk6rvfb2pxzmgyi0r9g";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.3.0";
   };
   ruby-prof = {
     groups = ["development"];
@@ -1908,20 +2007,20 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lm3wdxc6gjldkb5pdwwipapf84lgrvxck4h5kg8jdfd8arrpyis";
+      sha256 = "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.3";
   };
   ruby-progressbar = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
   };
   ruby-readability = {
     dependencies = ["guess_html_encoding" "nokogiri"];
@@ -1935,14 +2034,14 @@
     version = "0.7.0";
   };
   ruby2_keywords = {
-    groups = ["default"];
+    groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.4";
   };
   rubyzip = {
     groups = ["default"];
@@ -1960,10 +2059,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18m3zcf207gcrmghx288w3n2kpphc22lbmbc1wdx1nzcn8g2yddh";
+      sha256 = "0xi2c9vbfjs0gk4i9y4mrlb3xx6g5lj22hlg5cx6hyc88ri7j4bc";
       type = "gem";
     };
-    version = "5.2.1";
+    version = "5.2.3";
   };
   sassc = {
     dependencies = ["ffi" "rake"];
@@ -2004,10 +2103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wd1bblxr4dfmrnh3j83kvfds6a7nak4ifq37ab0pg1kdi6iiw7l";
+      sha256 = "1qi7gzli00mqlaq9an28m6xd323k7grgq19r6dqa2amjnnxy41ld";
       type = "gem";
     };
-    version = "4.4.1";
+    version = "4.5.1";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -2015,10 +2114,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mjxrxppv08a1hwqi8gpg6n168cxqhp7c2r2jwc4rbz9j5k41vcw";
+      sha256 = "1ac57q6lnqg9h9lsj49wlwhgsfqfr83lgka1c1srk6g8vghhz662";
       type = "gem";
     };
-    version = "6.1.2";
+    version = "6.2.1";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
@@ -2026,10 +2125,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mm20dvd64w46l5k11il9z5sjgdpp0bknml76glcngvl2w03k3cb";
+      sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr";
       type = "gem";
     };
-    version = "0.20.0";
+    version = "0.21.2";
   };
   simplecov-html = {
     groups = ["default" "test"];
@@ -2046,10 +2145,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cl3j7p3b5q7sxsx1va63c8imc5x6g99xablz08qrmqhpi0d6g6j";
+      sha256 = "19r15hyvh52jx7fmsrcflb58xh8l7l0zx4sxkh3hqzhq68y81pjl";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "0.1.3";
   };
   sprockets = {
     dependencies = ["concurrent-ruby" "rack"];
@@ -2092,40 +2191,30 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "147rb66p3n062vc433afqhkd99iazvkrqnghxgh871r62yhha93f";
+      sha256 = "06lz70k8c0r7fyxk1nc3idh14x7nvsr21ydm1bsmbj00jyhmfzsn";
       type = "gem";
     };
-    version = "0.2.16";
+    version = "0.2.17";
   };
   test-prof = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jfq8ylxpxanc3f0i6qb3nchawx9hj6qcqj6ccfyixrnvzswwjvi";
+      sha256 = "15jbm45jf1i8s1g5kj6pcfp6ddq9qfyy31lx3pff8g2w2hkhpik4";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "1.0.5";
   };
   thor = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
-      type = "gem";
-    };
-    version = "1.0.1";
-  };
-  thread_safe = {
-    groups = ["default" "development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "1.1.0";
   };
   tilt = {
     groups = ["default"];
@@ -2138,15 +2227,15 @@
     version = "2.0.10";
   };
   tzinfo = {
-    dependencies = ["thread_safe"];
+    dependencies = ["concurrent-ruby"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "1.2.8";
+    version = "2.0.4";
   };
   uglifier = {
     dependencies = ["execjs"];
@@ -2185,10 +2274,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      sha256 = "1bilbnc8j6jkb59lrf177i3p1pdyxll0n8400hzqr35vl3r3kv2m";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "2.0.0";
   };
   unicorn = {
     dependencies = ["kgio" "raindrops"];
@@ -2202,20 +2291,30 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzdhbmab2w034wpdj5ippnyyvgqm8gpx9wbchb4zgs4i1mswzhv";
+      sha256 = "1jcm85d7j7njfgims712svlgml32zjim6qwabm99645aj5laayln";
       type = "gem";
     };
-    version = "5.7.0";
+    version = "6.0.0";
   };
   uniform_notifier = {
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vm4aix8jmv42s1x58m3lj3xwkbxyn9qn6lzhhig0d1j8fv6j30c";
+      sha256 = "1614dqnky0f9f1znj0lih8i184vfps86md93dw0kxrg3af9gnqb4";
       type = "gem";
     };
-    version = "1.13.0";
+    version = "1.14.2";
+  };
+  uri_template = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p8qbxlpmg3msw0ihny6a3gsn0yvydx9ksh5knn8dnq06zhqyb1i";
+      type = "gem";
+    };
+    version = "0.7.0";
   };
   webmock = {
     dependencies = ["addressable" "crack" "hashdiff"];
@@ -2223,10 +2322,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wbdjagk2qpr76k3zw2gmkfp5aqlrc1a4qrpjv7sq1q39qbn8xax";
+      sha256 = "038igpmkpmn0nw0k7s4db8x88af1nwcy7wzh9m9c9q4p74h7rii0";
       type = "gem";
     };
-    version = "3.10.0";
+    version = "3.12.2";
   };
   webpush = {
     dependencies = ["hkdf" "jwt"];
@@ -2264,9 +2363,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp";
+      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
 }
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
index 1dbfed679192..d78b511f6ad9 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
@@ -1,10 +1,10 @@
 diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb
-index 373e235b3f..57d4d7a55b 100644
+index ffcafcb618..31ba691983 100644
 --- a/config/unicorn.conf.rb
 +++ b/config/unicorn.conf.rb
 @@ -27,18 +27,10 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
  
- if ENV["RAILS_ENV"] == "development" || !ENV["RAILS_ENV"]
+ if ENV["RAILS_ENV"] != "production"
    logger Logger.new($stdout)
 -  # we want a longer timeout in dev cause first request can be really slow
 -  timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
diff --git a/nixpkgs/pkgs/servers/web-apps/galene/default.nix b/nixpkgs/pkgs/servers/web-apps/galene/default.nix
index ae56fed52bd3..c24857d9dc5f 100644
--- a/nixpkgs/pkgs/servers/web-apps/galene/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/galene/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "galene";
-  version = "0.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "jech";
     repo = "galene";
     rev = "galene-${version}";
-    sha256 = "1pl3mnkmfqykhq55q36kvvnvn9fgsk72pfa7nii3hywzad0bj0ar";
+    sha256 = "sha256-yb+gEex4WEvIAEMuSTkw25rsBTL9tlfhf9qQtISWUd0=";
   };
 
-  vendorSha256 = "0jrc6y5chkj25bnpzn6blvfb0vd09h6fdcz75g54605z8nqd397p";
+  vendorSha256 = "sha256-Vm7tTTQJyZZVbORl5ziy4GJ34kHh5dh0ojX/ZuTpshA=";
 
   outputs = [ "out" "static" ];
 
diff --git a/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix b/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix
index 1908381be00d..0e1d933ab589 100644
--- a/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix
@@ -1,19 +1,46 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper
-, which, nodejs, mkYarnPackage, python2, nixosTests }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, makeWrapper
+, which
+, nodejs
+, mkYarnPackage
+, python2
+, nixosTests
+, buildGoModule
+}:
+
+let
+  # we need a different version than the one already available in nixpkgs
+  esbuild-hedgedoc = buildGoModule rec {
+    pname = "esbuild";
+    version = "0.11.20";
+
+    src = fetchFromGitHub {
+      owner = "evanw";
+      repo = "esbuild";
+      rev = "v${version}";
+      sha256 = "009f2mfgzkzgxjh3034mzdkcvm5vz17sgy1cs604f0425i22z8qm";
+    };
+
+    vendorSha256 = "1n5538yik72x94vzfq31qaqrkpxds5xys1wlibw2gn2am0z5c06q";
+  };
+in
 
 mkYarnPackage rec {
   name = "hedgedoc";
-  version = "1.7.2";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner  = "hedgedoc";
     repo   = "hedgedoc";
     rev    = version;
-    sha256 = "1w3si1k27c8d9yka2v91883dlz57n0wasan4agi6gw17h9dzb1l6";
+    sha256 = "1h2wyhap264iqm2jh0i05w0hb2j86jsq1plyl7k3an90w7wngyg1";
   };
 
   nativeBuildInputs = [ which makeWrapper ];
-  extraBuildInputs = [ python2 ];
+  extraBuildInputs = [ python2 esbuild-hedgedoc ];
 
   yarnNix = ./yarn.nix;
   yarnLock = ./yarn.lock;
@@ -35,8 +62,15 @@ mkYarnPackage rec {
     npm run install --build-from-source --nodedir=${nodejs}/include/node
     popd
 
+    pushd node_modules/esbuild
+    rm bin/esbuild
+    ln -s ${lib.getBin esbuild-hedgedoc}/bin/esbuild bin/
+    popd
+
     npm run build
 
+    patchShebangs bin/*
+
     runHook postBuild
   '';
 
diff --git a/nixpkgs/pkgs/servers/web-apps/hedgedoc/package.json b/nixpkgs/pkgs/servers/web-apps/hedgedoc/package.json
index 6b0f0da33f86..c7fb794a1b75 100644
--- a/nixpkgs/pkgs/servers/web-apps/hedgedoc/package.json
+++ b/nixpkgs/pkgs/servers/web-apps/hedgedoc/package.json
@@ -1,6 +1,6 @@
 {
   "name": "HedgeDoc",
-  "version": "1.7.2",
+  "version": "1.8.2",
   "description": "The best platform to write and share markdown.",
   "main": "app.js",
   "license": "AGPL-3.0",
@@ -11,131 +11,100 @@
     "markdownlint": "remark .",
     "mocha-suite": "NODE_ENV=test CMD_DB_URL=\"sqlite::memory:\" mocha --exit",
     "standard": "echo 'standard is no longer being used, use `npm run eslint` instead!' && exit 1",
-    "dev": "webpack --config webpack.dev.js --progress --colors --watch",
+    "dev": "webpack --config webpack.dev.js --progress --watch",
     "heroku-prebuild": "bin/heroku",
-    "build": "webpack --config webpack.prod.js --progress --colors --bail",
-    "start": "sequelize db:migrate && node app.js"
+    "build": "webpack --config webpack.prod.js --progress",
+    "start": "node app.js"
   },
   "dependencies": {
     "@passport-next/passport-openid": "^1.0.0",
     "Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
     "archiver": "^5.0.2",
-    "async": "^2.1.4",
-    "aws-sdk": "^2.521.0",
+    "async": "^3.0.0",
+    "aws-sdk": "^2.888.0",
     "azure-storage": "^2.7.0",
     "base64url": "^3.0.0",
     "body-parser": "^1.15.2",
-    "bootstrap": "^3.4.0",
-    "bootstrap-validator": "^0.11.8",
     "chance": "^1.0.4",
     "cheerio": "^0.22.0",
-    "codemirror": "git+https://github.com/hedgedoc/CodeMirror.git",
     "compression": "^1.6.2",
     "connect-flash": "^0.1.1",
-    "connect-session-sequelize": "^6.0.0",
+    "connect-session-sequelize": "^7.0.0",
     "cookie": "^0.4.0",
     "cookie-parser": "^1.4.3",
     "deep-freeze": "^0.0.1",
     "diff-match-patch": "git+https://github.com/hackmdio/diff-match-patch.git",
-    "ejs": "^2.5.5",
-    "emojify.js": "^1.1.0",
-    "escape-html": "^1.0.3",
+    "ejs": "^3.0.0",
     "express": ">=4.14",
     "express-session": "^1.14.2",
-    "file-saver": "^1.3.3",
     "file-type": "^16.1.0",
-    "flowchart.js": "^1.6.4",
-    "fork-awesome": "^1.1.3",
     "formidable": "^1.0.17",
-    "gist-embed": "^2.6.0",
     "graceful-fs": "^4.1.11",
     "handlebars": "^4.5.2",
-    "helmet": "^3.21.1",
-    "highlight.js": "^9.12.0",
+    "helmet": "^4.5.0",
     "i18n": "^0.13.0",
-    "imgur": "git+https://github.com/hackmdio/node-imgur.git",
-    "ionicons": "^2.0.1",
-    "jquery": "^3.5.1",
-    "jquery-mousewheel": "^3.1.13",
-    "jquery-ui": "^1.12.1",
-    "js-cookie": "^2.1.3",
-    "js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
-    "js-yaml": "^3.13.1",
+    "is-svg": "^4.3.1",
     "jsdom-nogyp": "^0.8.3",
-    "keymaster": "^1.6.2",
-    "list.js": "^1.5.0",
     "lodash": "^4.17.20",
     "lutim": "^1.0.2",
     "lz-string": "git+https://github.com/hackmdio/lz-string.git",
     "mariadb": "^2.1.2",
-    "markdown-it": "^10.0.0",
+    "markdown-it": "^12.0.0",
     "markdown-it-abbr": "^1.0.4",
-    "markdown-it-container": "^2.0.0",
+    "markdown-it-container": "^3.0.0",
     "markdown-it-deflist": "^2.0.1",
-    "markdown-it-emoji": "^1.3.0",
+    "markdown-it-emoji": "^2.0.0",
     "markdown-it-footnote": "^3.0.1",
     "markdown-it-imsize": "^2.0.1",
-    "markdown-it-ins": "^2.0.0",
-    "markdown-it-mark": "^2.0.0",
+    "markdown-it-ins": "^3.0.0",
+    "markdown-it-mark": "^3.0.0",
     "markdown-it-mathjax": "^2.0.0",
     "markdown-it-regexp": "^0.4.0",
     "markdown-it-sub": "^1.0.0",
     "markdown-it-sup": "^1.0.0",
-    "mathjax": "^2.7.6",
     "mattermost": "^3.4.0",
-    "mermaid": "^8.5.1",
     "meta-marked": "git+https://github.com/hedgedoc/meta-marked",
-    "method-override": "^2.3.7",
+    "method-override": "^3.0.0",
     "minimist": "^1.2.0",
-    "minio": "^6.0.0",
+    "minio": "^7.0.0",
     "moment": "^2.17.1",
     "morgan": "^1.7.0",
     "mysql2": "^2.0.0",
+    "node-fetch": "^2.6.1",
     "passport": "^0.4.0",
     "passport-dropbox-oauth2": "^1.1.0",
-    "passport-facebook": "^2.1.1",
+    "passport-facebook": "^3.0.0",
     "passport-github": "^1.1.0",
-    "passport-gitlab2": "^4.0.0",
-    "passport-google-oauth20": "^1.0.0",
-    "passport-ldapauth": "^2.0.0",
+    "passport-gitlab2": "^5.0.0",
+    "passport-google-oauth20": "^2.0.0",
+    "passport-ldapauth": "^3.0.0",
     "passport-local": "^1.0.0",
     "passport-oauth2": "^1.4.0",
-    "passport-saml": "^1.0.0",
+    "passport-saml": "^2.0.0",
     "passport-twitter": "^1.0.4",
     "passport.socketio": "^3.7.0",
     "pdfobject": "^2.0.201604172",
     "pg": "^8.2.1",
     "pg-hstore": "^2.3.3",
-    "prismjs": "^1.21.0",
+    "prom-client": "^13.1.0",
+    "prometheus-api-metrics": "^3.2.0",
     "randomcolor": "^0.6.0",
-    "raphael": "^2.3.0",
     "readline-sync": "^1.4.7",
-    "request": "^2.88.0",
-    "reveal.js": "^3.9.2",
     "rimraf": "^3.0.2",
-    "scrypt-async": "^2.0.1",
     "scrypt-kdf": "^2.0.1",
-    "select2": "^3.5.2-browserify",
     "sequelize": "^5.21.1",
-    "sequelize-cli": "^5.5.1",
     "shortid": "2.2.16",
     "socket.io": "^2.1.1",
-    "socket.io-client": "^2.1.1",
-    "spin.js": "^2.3.2",
-    "sqlite3": "^4.1.0",
+    "sqlite3": "^5.0.0",
     "store": "^2.0.12",
     "string": "^3.3.3",
     "tedious": "^6.6.0",
     "toobusy-js": "^0.5.1",
-    "turndown": "^5.0.1",
-    "uuid": "^3.1.0",
-    "validator": "^10.4.0",
-    "velocity-animate": "^1.4.0",
-    "visibilityjs": "^1.2.4",
-    "viz.js": "^1.7.0",
+    "umzug": "^2.3.0",
+    "uuid": "^8.0.0",
+    "validator": "^13.0.0",
     "winston": "^3.1.0",
-    "ws": "^6.0.0",
-    "wurl": "^2.5.3",
+    "ws": "^7.4.4",
     "xss": "^1.0.3"
   },
   "resolutions": {
@@ -144,7 +113,7 @@
     "**/request": "^2.88.0"
   },
   "engines": {
-    "node": ">=10.13"
+    "node": ">=12"
   },
   "bugs": "https://github.com/hedgedoc/hedgedoc/issues",
   "keywords": [
@@ -162,6 +131,10 @@
       "name": "Christoph (Sheogorath) Kern",
       "email": "codimd@sheogorath.shivering-isles.com",
       "url": "https://shivering-isles.com"
+    },
+    {
+      "name":"David Mehren",
+      "email": "hedgedoc@herrmehren.de"
     }
   ],
   "repository": {
@@ -176,33 +149,66 @@
     "babel-polyfill": "6.26.0",
     "babel-preset-env": "1.7.0",
     "babel-runtime": "6.26.0",
+    "bootstrap": "3.4.1",
+    "bootstrap-validator": "0.11.9",
+    "codemirror": "git+https://github.com/hedgedoc/CodeMirror.git",
     "copy-webpack-plugin": "6.4.1",
-    "css-loader": "3.6.0",
-    "eslint": "5.16.0",
-    "eslint-config-standard": "12.0.0",
+    "css-loader": "5.2.4",
+    "emojify.js": "1.1.0",
+    "esbuild-loader": "2.13.0",
+    "escape-html": "1.0.3",
+    "eslint": "7.26.0",
+    "eslint-config-standard": "16.0.2",
     "eslint-plugin-import": "2.22.1",
-    "eslint-plugin-node": "8.0.1",
-    "eslint-plugin-promise": "4.2.1",
+    "eslint-plugin-node": "11.1.0",
+    "eslint-plugin-promise": "5.1.0",
     "eslint-plugin-standard": "4.1.0",
-    "expose-loader": "0.7.5",
-    "file-loader": "4.3.0",
-    "html-webpack-plugin": "4.5.0",
-    "imports-loader": "0.8.0",
+    "expose-loader": "1.0.3",
+    "file-loader": "6.2.0",
+    "file-saver": "2.0.5",
+    "flowchart.js": "1.15.0",
+    "fork-awesome": "1.1.7",
+    "gist-embed": "2.6.0",
+    "highlight.js": "10.7.2",
+    "html-webpack-plugin": "4.5.2",
+    "imports-loader": "1.2.0",
+    "ionicons": "2.0.1",
+    "jquery": "3.6.0",
+    "jquery-mousewheel": "3.1.13",
+    "jquery-ui": "1.12.1",
+    "js-cookie": "2.2.1",
+    "js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
+    "js-yaml": "3.14.1",
     "jsonlint": "1.6.3",
-    "less": "3.13.1",
-    "less-loader": "5.0.0",
-    "mini-css-extract-plugin": "0.12.0",
-    "mocha": "5.2.0",
+    "keymaster": "1.6.2",
+    "less": "4.1.1",
+    "less-loader": "7.3.0",
+    "list.js": "2.3.1",
+    "mathjax": "2.7.9",
+    "mermaid": "8.10.1",
+    "mini-css-extract-plugin": "1.6.0",
+    "mocha": "8.4.0",
     "mock-require": "3.0.3",
     "optimize-css-assets-webpack-plugin": "5.0.4",
-    "remark-cli": "8.0.1",
-    "remark-preset-lint-markdown-style-guide": "3.0.1",
+    "prismjs": "1.23.0",
+    "raphael": "2.3.0",
+    "remark-cli": "9.0.0",
+    "remark-preset-lint-markdown-style-guide": "4.0.0",
+    "reveal.js": "3.9.2",
     "script-loader": "0.7.2",
+    "select2": "3.5.2-browserify",
+    "socket.io-client": "2.4.0",
+    "spin.js": "4.1.0",
     "string-loader": "0.0.1",
-    "url-loader": "2.3.0",
-    "webpack": "4.44.2",
-    "webpack-cli": "3.3.12",
-    "webpack-merge": "4.2.2"
+    "turndown": "7.0.0",
+    "url-loader": "4.1.1",
+    "velocity-animate": "1.5.2",
+    "visibilityjs": "2.0.2",
+    "viz.js": "1.8.2",
+    "webpack": "4.46.0",
+    "webpack-cli": "4.7.0",
+    "webpack-merge": "5.7.3",
+    "wurl": "2.5.4"
   },
   "optionalDependencies": {
     "bufferutil": "^4.0.0",
diff --git a/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.lock b/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.lock
index 80246f63ad84..a404d95d8f44 100644
--- a/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.lock
+++ b/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.lock
@@ -2,17 +2,32 @@
 # yarn lockfile v1
 
 
+"@azure/abort-controller@^1.0.0":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.0.4.tgz#fd3c4d46c8ed67aace42498c8e2270960250eafd"
+  integrity sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw==
+  dependencies:
+    tslib "^2.0.0"
+
+"@azure/core-auth@^1.1.4":
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.0.tgz#0d55517cf0650aefe755669aca8a2f3724fcf536"
+  integrity sha512-kSDSZBL6c0CYdhb+7KuutnKGf2geeT+bCJAgccB0DD7wmNJSsQPcF7TcuoZX83B7VK4tLz/u+8sOO/CnCsYp8A==
+  dependencies:
+    "@azure/abort-controller" "^1.0.0"
+    tslib "^2.0.0"
+
 "@azure/ms-rest-azure-env@^1.1.2":
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/@azure/ms-rest-azure-env/-/ms-rest-azure-env-1.1.2.tgz#8505873afd4a1227ec040894a64fdd736b4a101f"
   integrity sha512-l7z0DPCi2Hp88w12JhDTtx5d0Y3+vhfE7JKJb9O7sEz71Cwp053N8piTtTnnk/tUor9oZHgEKi/p3tQQmLPjvA==
 
 "@azure/ms-rest-js@^1.8.7":
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.9.1.tgz#93aef111b00bfdcc470a6bcb4520a13b36f21788"
-  integrity sha512-F1crHKhmsvFLM9fsnDyCGFd2E2KR9GEZm5oBVV5D5k2EBQ7u7idtSJlSF6RDLDIrGWtc4NnFdYwsoiW8NLlBQg==
+  version "1.11.2"
+  resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.11.2.tgz#e83d512b102c302425da5ff03a6d76adf2aa4ae6"
+  integrity sha512-2AyQ1IKmLGKW7DU3/x3TsTBzZLcbC9YRI+yuDPuXAQrv3zar340K9wsxU413kHFIDjkWNCo9T0w5VtwcyWxhbQ==
   dependencies:
-    "@types/tunnel" "0.0.0"
+    "@azure/core-auth" "^1.1.4"
     axios "^0.21.1"
     form-data "^2.3.2"
     tough-cookie "^2.4.3"
@@ -30,24 +45,31 @@
     "@azure/ms-rest-js" "^1.8.7"
     adal-node "^0.1.28"
 
-"@babel/code-frame@^7.0.0":
+"@babel/code-frame@7.12.11":
   version "7.12.11"
   resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
   integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
   dependencies:
     "@babel/highlight" "^7.10.4"
 
-"@babel/helper-validator-identifier@^7.10.4":
-  version "7.12.11"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
-  integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
+"@babel/code-frame@^7.0.0":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
+  integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
+  dependencies:
+    "@babel/highlight" "^7.12.13"
+
+"@babel/helper-validator-identifier@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
+  integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
 
-"@babel/highlight@^7.10.4":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
-  integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
+  integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.10.4"
+    "@babel/helper-validator-identifier" "^7.14.0"
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
@@ -65,6 +87,26 @@
     enabled "2.0.x"
     kuler "^2.0.0"
 
+"@discoveryjs/json-ext@^0.5.0":
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752"
+  integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==
+
+"@eslint/eslintrc@^0.4.1":
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14"
+  integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.1.1"
+    espree "^7.3.0"
+    globals "^12.1.0"
+    ignore "^4.0.6"
+    import-fresh "^3.2.1"
+    js-yaml "^3.13.1"
+    minimatch "^3.0.4"
+    strip-json-comments "^3.1.1"
+
 "@nodelib/fs.scandir@2.1.4":
   version "2.1.4"
   resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
@@ -87,12 +129,12 @@
     fastq "^1.6.0"
 
 "@npmcli/move-file@^1.0.1":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8"
-  integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ==
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
+  integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
   dependencies:
     mkdirp "^1.0.4"
-    rimraf "^2.7.1"
+    rimraf "^3.0.2"
 
 "@passport-next/passport-openid@^1.0.0":
   version "1.0.0"
@@ -112,6 +154,13 @@
   resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3"
   integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==
 
+"@types/accepts@*":
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575"
+  integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==
+  dependencies:
+    "@types/node" "*"
+
 "@types/anymatch@*":
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a"
@@ -132,21 +181,36 @@
   dependencies:
     "@types/node" "*"
 
+"@types/content-disposition@*":
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96"
+  integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==
+
+"@types/cookies@*":
+  version "0.7.6"
+  resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.6.tgz#71212c5391a976d3bae57d4b09fac20fc6bda504"
+  integrity sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==
+  dependencies:
+    "@types/connect" "*"
+    "@types/express" "*"
+    "@types/keygrip" "*"
+    "@types/node" "*"
+
 "@types/debug@^4.1.5":
   version "4.1.5"
   resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"
   integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
 
-"@types/express-serve-static-core@^4.17.18":
-  version "4.17.18"
-  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz#8371e260f40e0e1ca0c116a9afcd9426fa094c40"
-  integrity sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==
+"@types/express-serve-static-core@^4.17.12", "@types/express-serve-static-core@^4.17.18":
+  version "4.17.19"
+  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d"
+  integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==
   dependencies:
     "@types/node" "*"
     "@types/qs" "*"
     "@types/range-parser" "*"
 
-"@types/express@*":
+"@types/express@*", "@types/express@^4.17.8":
   version "4.17.11"
   resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545"
   integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==
@@ -166,59 +230,100 @@
   resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50"
   integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==
 
-"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
-  version "7.0.6"
-  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0"
-  integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==
+"@types/http-assert@*":
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b"
+  integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==
+
+"@types/http-errors@*":
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69"
+  integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==
+
+"@types/json-schema@^7.0.6":
+  version "7.0.7"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
+  integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
 
 "@types/json5@^0.0.29":
   version "0.0.29"
   resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
   integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
 
-"@types/ldapjs@^1.0.0":
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.9.tgz#1224192d14cc5ab5218fcea72ebb04489c52cb95"
-  integrity sha512-3PvY7Drp1zoLbcGlothCAkoc5o6Jp9KvUPwHadlHyKp3yPvyeIh7w2zQc9UXMzgDRkoeGXUEODtbEs5XCh9ZyA==
+"@types/keygrip@*":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72"
+  integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==
+
+"@types/koa-compose@*":
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d"
+  integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==
+  dependencies:
+    "@types/koa" "*"
+
+"@types/koa@*", "@types/koa@^2.11.4":
+  version "2.13.1"
+  resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.1.tgz#e29877a6b5ad3744ab1024f6ec75b8cbf6ec45db"
+  integrity sha512-Qbno7FWom9nNqu0yHZ6A0+RWt4mrYBhw3wpBAQ3+IuzGcLlfeYkzZrnMq5wsxulN2np8M4KKeUpTodsOsSad5Q==
+  dependencies:
+    "@types/accepts" "*"
+    "@types/content-disposition" "*"
+    "@types/cookies" "*"
+    "@types/http-assert" "*"
+    "@types/http-errors" "*"
+    "@types/keygrip" "*"
+    "@types/koa-compose" "*"
+    "@types/node" "*"
+
+"@types/ldapjs@^1.0.9":
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.10.tgz#bac705c9e154b97d69496b5213cc28dbe9715a37"
+  integrity sha512-AMkMxkK/wjYtWebNH2O+rARfo7scBpW3T23g6zmGCwDgbyDbR79XWpcSqhPWdU+fChaF+I3dVyl9X2dT1CyI9w==
   dependencies:
     "@types/node" "*"
 
-"@types/mime@*":
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a"
-  integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==
+"@types/mdast@^3.0.0":
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb"
+  integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==
+  dependencies:
+    "@types/unist" "*"
 
-"@types/node@*", "@types/node@^14.14.7":
-  version "14.14.21"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.21.tgz#d934aacc22424fe9622ebf6857370c052eae464e"
-  integrity sha512-cHYfKsnwllYhjOzuC5q1VpguABBeecUp24yFluHpn/BQaVxB1CuQ1FSRZCzrPxrkIfWISXV2LbeoBthLWg0+0A==
+"@types/mime@^1":
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
+  integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==
+
+"@types/node@*":
+  version "15.0.2"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67"
+  integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==
 
 "@types/node@^12.12.17":
-  version "12.19.14"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.14.tgz#59e5029a3c2aea34f68b717955381692fd47cafb"
-  integrity sha512-2U9uLN46+7dv9PiS8VQJcHhuoOjiDPZOLAt0WuA1EanEknIMae+2QbMhayF7cgGqjvRVIfNpt+6jLPczJZFiRw==
+  version "12.20.12"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.12.tgz#fd9c1c2cfab536a2383ed1ef70f94adea743a226"
+  integrity sha512-KQZ1al2hKOONAs2MFv+yTQP1LkDWMrRJ9YCVRalXltOfXsBmH5IownLxQaiq0lnAHwAViLnh2aTYqrPcRGEbgg==
+
+"@types/node@^14.14.28":
+  version "14.14.44"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz#df7503e6002847b834371c004b372529f3f85215"
+  integrity sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==
 
 "@types/node@^8.0.47":
   version "8.10.66"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3"
   integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==
 
-"@types/passport@^1.0.0":
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.5.tgz#1ff54ec3e30fa6480c5e8b8de949c6dc40ddfa2a"
-  integrity sha512-wNL4kT/5rnZgyGkqX7V2qH/R/te+bklv+nXcvHzyX99vNggx9DGN+F8CEOW3P/gRi7Cjm991uidRgTHsYkSuMg==
-  dependencies:
-    "@types/express" "*"
-
 "@types/q@^1.5.1":
   version "1.5.4"
   resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
   integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
 
 "@types/qs@*":
-  version "6.9.5"
-  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b"
-  integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==
+  version "6.9.6"
+  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1"
+  integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==
 
 "@types/range-parser@*":
   version "1.2.3"
@@ -234,11 +339,11 @@
     safe-buffer "*"
 
 "@types/serve-static@*":
-  version "1.13.8"
-  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46"
-  integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==
+  version "1.13.9"
+  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz#aacf28a85a05ee29a11fb7c3ead935ac56f33e4e"
+  integrity sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==
   dependencies:
-    "@types/mime" "*"
+    "@types/mime" "^1"
     "@types/node" "*"
 
 "@types/source-list-map@*":
@@ -246,26 +351,19 @@
   resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
   integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
 
-"@types/tapable@*", "@types/tapable@^1.0.5":
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74"
-  integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==
-
-"@types/tunnel@0.0.0":
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/@types/tunnel/-/tunnel-0.0.0.tgz#c2a42943ee63c90652a5557b8c4e56cda77f944e"
-  integrity sha512-FGDp0iBRiBdPjOgjJmn1NH0KDLN+Z8fRmo+9J7XGBhubq1DPrGrbmG4UTlGzrpbCpesMqD0sWkzi27EYkOMHyg==
-  dependencies:
-    "@types/node" "*"
+"@types/tapable@^1", "@types/tapable@^1.0.5":
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4"
+  integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==
 
 "@types/uglify-js@*":
-  version "3.11.1"
-  resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb"
-  integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==
+  version "3.13.0"
+  resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124"
+  integrity sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==
   dependencies:
     source-map "^0.6.1"
 
-"@types/unist@^2.0.0", "@types/unist@^2.0.2":
+"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2":
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
   integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==
@@ -280,17 +378,22 @@
     source-map "^0.7.3"
 
 "@types/webpack@^4.41.8":
-  version "4.41.26"
-  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef"
-  integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==
+  version "4.41.28"
+  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.28.tgz#0069a2159b7ad4d83d0b5801942c17d54133897b"
+  integrity sha512-Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ==
   dependencies:
     "@types/anymatch" "*"
     "@types/node" "*"
-    "@types/tapable" "*"
+    "@types/tapable" "^1"
     "@types/uglify-js" "*"
     "@types/webpack-sources" "*"
     source-map "^0.6.0"
 
+"@ungap/promise-all-settled@1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
+  integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
+
 "@webassemblyjs/ast@1.9.0":
   version "1.9.0"
   resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
@@ -436,6 +539,23 @@
     "@webassemblyjs/wast-parser" "1.9.0"
     "@xtuc/long" "4.2.2"
 
+"@webpack-cli/configtest@^1.0.3":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz#204bcff87cda3ea4810881f7ea96e5f5321b87b9"
+  integrity sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==
+
+"@webpack-cli/info@^1.2.4":
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz#7381fd41c9577b2d8f6c2594fad397ef49ad5573"
+  integrity sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==
+  dependencies:
+    envinfo "^7.7.3"
+
+"@webpack-cli/serve@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz#f84fd07bcacefe56ce762925798871092f0f228e"
+  integrity sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==
+
 "@xtuc/ieee754@^1.2.0":
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@@ -448,6 +568,7 @@
 
 "Idle.Js@git+https://github.com/shawnmclean/Idle.js":
   version "0.0.1"
+  uid db9beb3483a460ad638ec947867720f0ed066a62
   resolved "git+https://github.com/shawnmclean/Idle.js#db9beb3483a460ad638ec947867720f0ed066a62"
 
 JSV@^4.0.x:
@@ -455,16 +576,16 @@ JSV@^4.0.x:
   resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57"
   integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=
 
-abab@^2.0.0:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
-  integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
-
 abbrev@1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
   integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
 
+abstract-logging@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839"
+  integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==
+
 accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -473,34 +594,21 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
     mime-types "~2.1.24"
     negotiator "0.6.2"
 
-acorn-globals@^4.1.0:
-  version "4.3.4"
-  resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
-  integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
-  dependencies:
-    acorn "^6.0.1"
-    acorn-walk "^6.0.1"
-
-acorn-jsx@^5.0.0:
+acorn-jsx@^5.3.1:
   version "5.3.1"
   resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
   integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
 
-acorn-walk@^6.0.1:
-  version "6.2.0"
-  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
-  integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
-
-acorn@^5.5.3:
-  version "5.7.4"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
-  integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
-
-acorn@^6.0.1, acorn@^6.0.7, acorn@^6.4.1:
+acorn@^6.4.1:
   version "6.4.2"
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
   integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
 
+acorn@^7.4.0:
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
 adal-node@^0.1.28:
   version "0.1.28"
   resolved "https://registry.yarnpkg.com/adal-node/-/adal-node-0.1.28.tgz#468c4bb3ebbd96b1270669f4b9cba4e0065ea485"
@@ -539,7 +647,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
   integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
 
-ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1:
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
   version "6.12.6"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -549,17 +657,27 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
+ajv@^8.0.1:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c"
+  integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
+
 alphanum-sort@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
   integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
 
-ansi-escapes@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
-  integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ansi-colors@4.1.1, ansi-colors@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
 
-ansi-regex@^2.0.0, ansi-regex@^2.1.1:
+ansi-regex@^2.0.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
   integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
@@ -569,11 +687,6 @@ ansi-regex@^3.0.0:
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
   integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
-ansi-regex@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
-  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
 ansi-regex@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
@@ -584,14 +697,14 @@ ansi-styles@^2.2.1:
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
   integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
 
-ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
   integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
   dependencies:
     color-convert "^1.9.0"
 
-ansi-styles@^4.1.0:
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
   integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
@@ -625,9 +738,9 @@ anymatch@^2.0.0:
     normalize-path "^2.1.1"
 
 anymatch@~3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
-  integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
   dependencies:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
@@ -654,17 +767,17 @@ archiver-utils@^2.1.0:
     readable-stream "^2.0.0"
 
 archiver@^5.0.2:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.2.0.tgz#25aa1b3d9febf7aec5b0f296e77e69960c26db94"
-  integrity sha512-QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba"
+  integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==
   dependencies:
     archiver-utils "^2.1.0"
     async "^3.2.0"
     buffer-crc32 "^0.2.1"
     readable-stream "^3.6.0"
     readdir-glob "^1.0.0"
-    tar-stream "^2.1.4"
-    zip-stream "^4.0.4"
+    tar-stream "^2.2.0"
+    zip-stream "^4.1.0"
 
 are-we-there-yet@~1.1.2:
   version "1.1.5"
@@ -681,6 +794,11 @@ argparse@^1.0.7:
   dependencies:
     sprintf-js "~1.0.2"
 
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
 arr-diff@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
@@ -703,10 +821,10 @@ arr-union@^3.1.0:
   resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
   integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
 
-array-equal@^1.0.0:
+array-filter@^1.0.0:
   version "1.0.0"
-  resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
-  integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
+  resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83"
+  integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=
 
 array-flatten@1.1.1:
   version "1.1.1"
@@ -714,14 +832,14 @@ array-flatten@1.1.1:
   integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
 
 array-includes@^3.1.1:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8"
-  integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"
+  integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==
   dependencies:
-    call-bind "^1.0.0"
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.18.0-next.1"
-    get-intrinsic "^1.0.1"
+    es-abstract "^1.18.0-next.2"
+    get-intrinsic "^1.1.1"
     is-string "^1.0.5"
 
 array-union@^2.1.0:
@@ -753,11 +871,6 @@ arraybuffer.slice@~0.0.7:
   resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
   integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
 
-asap@^2.0.0:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
-  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
-
 asn1.js@^5.2.0:
   version "5.4.1"
   resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
@@ -768,23 +881,13 @@ asn1.js@^5.2.0:
     minimalistic-assert "^1.0.0"
     safer-buffer "^2.1.0"
 
-asn1@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
-  integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
-
-asn1@~0.2.3:
+asn1@^0.2.4, asn1@~0.2.3:
   version "0.2.4"
   resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
   integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
   dependencies:
     safer-buffer "~2.1.0"
 
-assert-plus@0.1.5:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
-  integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=
-
 assert-plus@1.0.0, assert-plus@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
@@ -803,38 +906,31 @@ assign-symbols@^1.0.0:
   resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
   integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
 
-astral-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
-  integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
 
 async-each@^1.0.0, async-each@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
   integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
 
-async-limiter@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
-  integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+async@0.9.x:
+  version "0.9.2"
+  resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+  integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
 
-async@>=0.6.0, async@^3.1.0, async@^3.2.0:
+async@>=0.6.0, async@^3.0.0, async@^3.1.0, async@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
   integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
 
-async@^1.4.0, async@^1.5.2:
+async@^1.4.0:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
   integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
 
-async@^2.1.4:
-  version "2.6.3"
-  resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
-  integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
-  dependencies:
-    lodash "^4.17.14"
-
 asynckit@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -845,10 +941,17 @@ atob@^2.1.2:
   resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
   integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
 
-aws-sdk@^2.521.0:
-  version "2.828.0"
-  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.828.0.tgz#6aa599c3582f219568f41fb287eb65753e4a9234"
-  integrity sha512-JoDujGdncSIF9ka+XFZjop/7G+fNGucwPwYj7OHYMmFIOV5p7YmqomdbVmH/vIzd988YZz8oLOinWc4jM6vvhg==
+available-typed-arrays@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5"
+  integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==
+  dependencies:
+    array-filter "^1.0.0"
+
+aws-sdk@^2.888.0:
+  version "2.904.0"
+  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.904.0.tgz#45a53e918698e451f762e44005dfce177a50b7e6"
+  integrity sha512-BnlMgxiQ0as0LSigm/QVgdh8CoIVY29DItmnFOnL6ahJ5W/m1Xzpge2jJoj+gqwZ+QQvOO31dDYw9PtteiR/IQ==
   dependencies:
     buffer "4.9.2"
     events "1.1.1"
@@ -1470,9 +1573,9 @@ bail@^1.0.0:
   integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==
 
 balanced-match@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
 
 base64-arraybuffer@0.1.4:
   version "0.1.4"
@@ -1548,6 +1651,11 @@ bindings@^1.5.0:
   dependencies:
     file-uri-to-path "1.0.0"
 
+bintrees@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524"
+  integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=
+
 bl@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.1.tgz#1cbb439299609e419b5a74d7fce2f8b37d8e5c6f"
@@ -1556,9 +1664,9 @@ bl@^3.0.0:
     readable-stream "^3.0.1"
 
 bl@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489"
-  integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
   dependencies:
     buffer "^5.5.0"
     inherits "^2.0.4"
@@ -1569,29 +1677,34 @@ blob@0.0.5:
   resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
   integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
 
-block-stream2@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/block-stream2/-/block-stream2-1.1.0.tgz#c738e3a91ba977ebb5e1fef431e13ca11d8639e2"
-  integrity sha1-xzjjqRupd+u14f70MeE8oR2GOeI=
+block-stream2@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/block-stream2/-/block-stream2-2.1.0.tgz#ac0c5ef4298b3857796e05be8ebed72196fa054b"
+  integrity sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==
   dependencies:
-    defined "^1.0.0"
-    inherits "^2.0.1"
-    readable-stream "^2.0.4"
+    readable-stream "^3.4.0"
 
-bluebird@^3.5.0, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2:
+block-stream@*:
+  version "0.0.9"
+  resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
+  integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
+  dependencies:
+    inherits "~2.0.0"
+
+bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
   integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
 
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
-  version "4.11.9"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
-  integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
+  version "4.12.0"
+  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
+  integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
 
 bn.js@^5.0.0, bn.js@^5.1.1:
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b"
-  integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
+  integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
 
 body-parser@1.19.0, body-parser@^1.15.2:
   version "1.19.0"
@@ -1614,21 +1727,16 @@ boolbase@^1.0.0, boolbase@~1.0.0:
   resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
   integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
 
-bootstrap-validator@^0.11.8:
+bootstrap-validator@0.11.9:
   version "0.11.9"
   resolved "https://registry.yarnpkg.com/bootstrap-validator/-/bootstrap-validator-0.11.9.tgz#fb7058eef53623e78f5aa7967026f98f875a9404"
   integrity sha1-+3BY7vU2I+ePWqeWcCb5j4dalAQ=
 
-bootstrap@^3.4.0:
+bootstrap@3.4.1:
   version "3.4.1"
   resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
   integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==
 
-bowser@2.9.0:
-  version "2.9.0"
-  resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9"
-  integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==
-
 brace-expansion@^1.1.7:
   version "1.1.11"
   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1669,16 +1777,11 @@ braces@^3.0.1, braces@~3.0.2:
   dependencies:
     fill-range "^7.0.1"
 
-brorand@^1.0.1:
+brorand@^1.0.1, brorand@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
   integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
 
-browser-process-hrtime@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
-  integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
-
 browser-stdout@1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
@@ -1759,15 +1862,15 @@ browserslist@^3.2.6:
     electron-to-chromium "^1.3.47"
 
 browserslist@^4.0.0:
-  version "4.16.1"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766"
-  integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==
+  version "4.16.6"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+  integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
   dependencies:
-    caniuse-lite "^1.0.30001173"
-    colorette "^1.2.1"
-    electron-to-chromium "^1.3.634"
+    caniuse-lite "^1.0.30001219"
+    colorette "^1.2.2"
+    electron-to-chromium "^1.3.723"
     escalade "^3.1.1"
-    node-releases "^1.1.69"
+    node-releases "^1.1.71"
 
 buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:
   version "0.2.13"
@@ -1823,16 +1926,6 @@ builtin-status-codes@^3.0.0:
   resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
   integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
 
-bunyan@^1.8.3:
-  version "1.8.15"
-  resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46"
-  integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==
-  optionalDependencies:
-    dtrace-provider "~0.8"
-    moment "^2.19.3"
-    mv "~2"
-    safe-json-stringify "~1"
-
 bytes@3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
@@ -1865,9 +1958,9 @@ cacache@^12.0.2:
     y18n "^4.0.0"
 
 cacache@^15.0.5:
-  version "15.0.5"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0"
-  integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==
+  version "15.0.6"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099"
+  integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==
   dependencies:
     "@npmcli/move-file" "^1.0.1"
     chownr "^2.0.0"
@@ -1883,7 +1976,7 @@ cacache@^15.0.5:
     p-map "^4.0.0"
     promise-inflight "^1.0.1"
     rimraf "^3.0.2"
-    ssri "^8.0.0"
+    ssri "^8.0.1"
     tar "^6.0.2"
     unique-filename "^1.1.1"
 
@@ -1902,7 +1995,7 @@ cache-base@^1.0.1:
     union-value "^1.0.0"
     unset-value "^1.0.0"
 
-call-bind@^1.0.0:
+call-bind@^1.0.0, call-bind@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
   integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
@@ -1950,15 +2043,15 @@ camel-case@^4.1.1:
     pascal-case "^3.1.2"
     tslib "^2.0.3"
 
-camelcase@^5.0.0, camelcase@^5.3.1:
+camelcase@^5.0.0:
   version "5.3.1"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
-camelize@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
-  integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
+camelcase@^6.0.0, camelcase@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
+  integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
 
 caniuse-api@^3.0.0:
   version "3.0.0"
@@ -1970,21 +2063,16 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001173:
-  version "1.0.30001177"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001177.tgz#2c3b384933aafda03e29ccca7bb3d8c3389e1ece"
-  integrity sha512-6Ld7t3ifCL02jTj3MxPMM5wAYjbo4h/TAQGFTgv1inihP1tWnWp8mxxT4ut4JBEHLbpFXEXJJQ119JCJTBkYDw==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001219:
+  version "1.0.30001228"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa"
+  integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==
 
 caseless@~0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
   integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
 
-ccount@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043"
-  integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==
-
 chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -1996,7 +2084,7 @@ chalk@^1.1.3:
     strip-ansi "^3.0.0"
     supports-color "^2.0.0"
 
-chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2013,6 +2101,14 @@ chalk@^3.0.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
+chalk@^4.0.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
+  integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
 chalk@~0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
@@ -2027,11 +2123,6 @@ chance@^1.0.4:
   resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.7.tgz#e99dde5ac16681af787b5ba94c8277c090d6cfe8"
   integrity sha512-bua/2cZEfzS6qPm0vi3JEvGNbriDLcMj9lKxCQOjUcCJRcyjA7umP0zZm6bKWWlBN04vA0L99QGH/CZQawr0eg==
 
-character-entities-html4@^1.0.0:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125"
-  integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==
-
 character-entities-legacy@^1.0.0:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1"
@@ -2047,11 +2138,6 @@ character-reference-invalid@^1.0.0:
   resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560"
   integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==
 
-chardet@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
-  integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-
 cheerio@^0.22.0:
   version "0.22.0"
   resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
@@ -2074,6 +2160,21 @@ cheerio@^0.22.0:
     lodash.reject "^4.4.0"
     lodash.some "^4.4.0"
 
+chokidar@3.5.1, chokidar@^3.0.0, chokidar@^3.4.1:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
+  integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
+  dependencies:
+    anymatch "~3.1.1"
+    braces "~3.0.2"
+    glob-parent "~5.1.0"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.5.0"
+  optionalDependencies:
+    fsevents "~2.3.1"
+
 chokidar@^1.6.1:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
@@ -2109,21 +2210,6 @@ chokidar@^2.1.8:
   optionalDependencies:
     fsevents "^1.2.7"
 
-chokidar@^3.0.0, chokidar@^3.4.1:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.0.tgz#458a4816a415e9d3b3caa4faec2b96a6935a9e65"
-  integrity sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==
-  dependencies:
-    anymatch "~3.1.1"
-    braces "~3.0.2"
-    glob-parent "~5.1.0"
-    is-binary-path "~2.1.0"
-    is-glob "~4.0.1"
-    normalize-path "~3.0.0"
-    readdirp "~3.5.0"
-  optionalDependencies:
-    fsevents "~2.3.1"
-
 chownr@^1.1.1:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
@@ -2135,11 +2221,9 @@ chownr@^2.0.0:
   integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
 
 chrome-trace-event@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
-  integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==
-  dependencies:
-    tslib "^1.9.0"
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
+  integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
 
 cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
   version "1.0.4"
@@ -2171,52 +2255,32 @@ clean-stack@^2.0.0:
   resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
   integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
 
-cli-color@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f"
-  integrity sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==
-  dependencies:
-    ansi-regex "^2.1.1"
-    d "1"
-    es5-ext "^0.10.46"
-    es6-iterator "^2.0.3"
-    memoizee "^0.4.14"
-    timers-ext "^0.1.5"
-
-cli-cursor@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
-  integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
-  dependencies:
-    restore-cursor "^2.0.0"
-
-cli-width@^2.0.0:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
-  integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
-
 clipboard@^2.0.0:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
-  integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==
+  version "2.0.8"
+  resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba"
+  integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==
   dependencies:
     good-listener "^1.2.2"
     select "^1.1.2"
     tiny-emitter "^2.0.0"
 
-cliui@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
-  integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
+cliui@^7.0.2:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
   dependencies:
-    string-width "^3.1.0"
-    strip-ansi "^5.2.0"
-    wrap-ansi "^5.1.0"
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^7.0.0"
 
-clone@^2.1.1:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
-  integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+clone-deep@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+  integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+  dependencies:
+    is-plain-object "^2.0.4"
+    kind-of "^6.0.2"
+    shallow-clone "^3.0.0"
 
 cls-bluebird@^2.1.0:
   version "2.1.0"
@@ -2247,13 +2311,9 @@ code-point-at@^1.0.0:
 
 "codemirror@git+https://github.com/hedgedoc/CodeMirror.git":
   version "5.58.2"
+  uid f780b569b3717cdff4c8507538cc63101bfa02e1
   resolved "git+https://github.com/hedgedoc/CodeMirror.git#f780b569b3717cdff4c8507538cc63101bfa02e1"
 
-collapse-white-space@^1.0.2:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287"
-  integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==
-
 collection-visit@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
@@ -2287,9 +2347,9 @@ color-name@^1.0.0, color-name@~1.1.4:
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
 color-string@^1.5.2, color-string@^1.5.4:
-  version "1.5.4"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6"
-  integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==
+  version "1.5.5"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
+  integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
   dependencies:
     color-name "^1.0.0"
     simple-swizzle "^0.2.2"
@@ -2310,10 +2370,10 @@ color@^3.0.0:
     color-convert "^1.9.1"
     color-string "^1.5.4"
 
-colorette@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
-  integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
+colorette@^1.2.1, colorette@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+  integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
 
 colors@^1.2.1:
   version "1.4.0"
@@ -2335,21 +2395,21 @@ combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.6:
   dependencies:
     delayed-stream "~1.0.0"
 
-commander@2, commander@^2.11.0, commander@^2.13.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3:
+commander@2, commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@2.15.1:
-  version "2.15.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
-  integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
-
 commander@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
   integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
 
+commander@^7.0.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
 commondir@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2375,10 +2435,10 @@ component-inherit@0.0.3:
   resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
   integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=
 
-compress-commons@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.0.2.tgz#d6896be386e52f37610cef9e6fa5defc58c31bd7"
-  integrity sha512-qhd32a9xgzmpfoga1VQEiLEwdKZ6Plnpx5UCgIsf89FSolyJ7WnifY4Gtjgv5WR6hWAyRaHxC5MiEhU/38U70A==
+compress-commons@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.0.tgz#25ec7a4528852ccd1d441a7d4353cd0ece11371b"
+  integrity sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==
   dependencies:
     buffer-crc32 "^0.2.13"
     crc32-stream "^4.0.1"
@@ -2410,7 +2470,7 @@ concat-map@0.0.1:
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
   integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
 
-concat-stream@^1.4.8, concat-stream@^1.5.0:
+concat-stream@^1.5.0:
   version "1.6.2"
   resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
   integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
@@ -2430,26 +2490,18 @@ concat-stream@^2.0.0:
     readable-stream "^3.0.2"
     typedarray "^0.0.6"
 
-config-chain@^1.1.12:
-  version "1.1.12"
-  resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
-  integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
-  dependencies:
-    ini "^1.3.4"
-    proto-list "~1.2.1"
-
 connect-flash@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/connect-flash/-/connect-flash-0.1.1.tgz#d8630f26d95a7f851f9956b1e8cc6732f3b6aa30"
   integrity sha1-2GMPJtlaf4UfmVax6MxnMvO2qjA=
 
-connect-session-sequelize@^6.0.0:
-  version "6.1.1"
-  resolved "https://registry.yarnpkg.com/connect-session-sequelize/-/connect-session-sequelize-6.1.1.tgz#0155d01fbffc67352df795aa53b7ab397ab95094"
-  integrity sha512-BwD1FYgds9T+5ZxnvcCvE/0B0clj3b3WwfGLEhE3GiYUbl3fhQzlLjUGBql9Ce/X9isOQWMKGy1br4TenIG9Cg==
+connect-session-sequelize@^7.0.0:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/connect-session-sequelize/-/connect-session-sequelize-7.1.1.tgz#e96f33bb3f4560f286cc0e0aefec4f3d3c148fe5"
+  integrity sha512-sAygnRra0WrfpyHkKpw0uytuYKJO2PKHcregikkqcHaPWlaQsBB3LLBeNXdT9/BTJU20ZCPeiNschg6qW7u9Tw==
   dependencies:
-    debug "^3.1.0"
-    deep-equal "^1.0.1"
+    debug "^4.1.1"
+    deep-equal "^2.0.3"
 
 console-browserify@^1.1.0:
   version "1.2.0"
@@ -2478,11 +2530,6 @@ content-disposition@0.5.3:
   dependencies:
     safe-buffer "5.1.2"
 
-content-security-policy-builder@2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb"
-  integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==
-
 content-type@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
@@ -2524,11 +2571,11 @@ cookiejar@2.0.6:
   integrity sha1-Cr81atANHFohnYjURRgEbdAmrP4=
 
 copy-anything@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a"
-  integrity sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.3.tgz#842407ba02466b0df844819bbe3baebbe5d45d87"
+  integrity sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==
   dependencies:
-    is-what "^3.7.1"
+    is-what "^3.12.0"
 
 copy-concurrently@^1.0.0:
   version "1.0.5"
@@ -2593,9 +2640,9 @@ crc-32@^1.2.0:
     printj "~1.1.0"
 
 crc32-stream@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.1.tgz#0f047d74041737f8a55e86837a1b826bd8ab0067"
-  integrity sha512-FN5V+weeO/8JaXsamelVYO1PHyeCsuL3HcG4cqsj0ceARcocxalaShCsohZMSAF+db7UYFwBy1rARK/0oFItUw==
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007"
+  integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==
   dependencies:
     crc-32 "^1.2.0"
     readable-stream "^3.4.0"
@@ -2631,16 +2678,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
     safe-buffer "^5.0.1"
     sha.js "^2.4.8"
 
-cross-spawn@^6.0.5:
-  version "6.0.5"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
-  integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+cross-spawn@^7.0.2, cross-spawn@^7.0.3:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
   dependencies:
-    nice-try "^1.0.4"
-    path-key "^2.0.1"
-    semver "^5.5.0"
-    shebang-command "^1.2.0"
-    which "^1.2.9"
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
 
 crypto-browserify@^3.11.0:
   version "3.12.0"
@@ -2677,24 +2722,22 @@ css-declaration-sorter@^4.0.1:
     postcss "^7.0.1"
     timsort "^0.3.0"
 
-css-loader@3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645"
-  integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==
+css-loader@5.2.4:
+  version "5.2.4"
+  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz#e985dcbce339812cb6104ef3670f08f9893a1536"
+  integrity sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==
   dependencies:
-    camelcase "^5.3.1"
-    cssesc "^3.0.0"
-    icss-utils "^4.1.1"
-    loader-utils "^1.2.3"
-    normalize-path "^3.0.0"
-    postcss "^7.0.32"
-    postcss-modules-extract-imports "^2.0.0"
-    postcss-modules-local-by-default "^3.0.2"
-    postcss-modules-scope "^2.2.0"
-    postcss-modules-values "^3.0.0"
+    camelcase "^6.2.0"
+    icss-utils "^5.1.0"
+    loader-utils "^2.0.0"
+    postcss "^8.2.10"
+    postcss-modules-extract-imports "^3.0.0"
+    postcss-modules-local-by-default "^4.0.0"
+    postcss-modules-scope "^3.0.0"
+    postcss-modules-values "^4.0.0"
     postcss-value-parser "^4.1.0"
-    schema-utils "^2.7.0"
-    semver "^6.3.0"
+    schema-utils "^3.0.0"
+    semver "^7.3.5"
 
 css-select-base-adapter@^0.1.1:
   version "0.1.1"
@@ -2730,9 +2773,9 @@ css-tree@1.0.0-alpha.37:
     source-map "^0.6.1"
 
 css-tree@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5"
-  integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+  integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
   dependencies:
     mdn-data "2.0.14"
     source-map "^0.6.1"
@@ -2757,10 +2800,10 @@ cssfilter@0.0.10:
   resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
   integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=
 
-cssnano-preset-default@^4.0.7:
-  version "4.0.7"
-  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
-  integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
+cssnano-preset-default@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
+  integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
   dependencies:
     css-declaration-sorter "^4.0.1"
     cssnano-util-raw-cache "^4.0.1"
@@ -2790,7 +2833,7 @@ cssnano-preset-default@^4.0.7:
     postcss-ordered-values "^4.1.2"
     postcss-reduce-initial "^4.0.3"
     postcss-reduce-transforms "^4.0.2"
-    postcss-svgo "^4.0.2"
+    postcss-svgo "^4.0.3"
     postcss-unique-selectors "^4.0.1"
 
 cssnano-util-get-arguments@^4.0.0:
@@ -2816,12 +2859,12 @@ cssnano-util-same-parent@^4.0.0:
   integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
 
 cssnano@^4.1.10:
-  version "4.1.10"
-  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
-  integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
+  version "4.1.11"
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
+  integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
   dependencies:
     cosmiconfig "^5.0.0"
-    cssnano-preset-default "^4.0.7"
+    cssnano-preset-default "^4.0.8"
     is-resolvable "^1.0.0"
     postcss "^7.0.0"
 
@@ -2832,7 +2875,7 @@ csso@^4.0.2:
   dependencies:
     css-tree "^1.1.2"
 
-cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
+cssom@0.3.x:
   version "0.3.8"
   resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
   integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
@@ -2842,13 +2885,6 @@ cssom@~0.2.5:
   resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.2.5.tgz#2682709b5902e7212df529116ff788cd5b254894"
   integrity sha1-JoJwm1kC5yEt9SkRb/eIzVslSJQ=
 
-cssstyle@^1.0.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1"
-  integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==
-  dependencies:
-    cssom "0.3.x"
-
 cssstyle@~0.2.3:
   version "0.2.37"
   resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
@@ -3109,14 +3145,6 @@ d3@^5.14, d3@^5.7.0:
     d3-voronoi "1"
     d3-zoom "1"
 
-d@1, d@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
-  integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
-  dependencies:
-    es5-ext "^0.10.50"
-    type "^1.0.1"
-
 dagre-d3@^0.6.4:
   version "0.6.4"
   resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29"
@@ -3135,27 +3163,13 @@ dagre@^0.8.4, dagre@^0.8.5:
     graphlib "^2.1.8"
     lodash "^4.17.15"
 
-dashdash@^1.12.0, dashdash@^1.14.0:
+dashdash@^1.12.0:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
   integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
   dependencies:
     assert-plus "^1.0.0"
 
-dasherize@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz#6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308"
-  integrity sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=
-
-data-urls@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
-  integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
-  dependencies:
-    abab "^2.0.0"
-    whatwg-mimetype "^2.2.0"
-    whatwg-url "^7.0.0"
-
 date-utils@*:
   version "1.2.21"
   resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
@@ -3175,20 +3189,20 @@ debug@3.1.0, debug@~3.1.0:
   dependencies:
     ms "2.0.0"
 
-debug@^3.1.0, debug@^3.2.6:
-  version "3.2.7"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
-  integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
-  dependencies:
-    ms "^2.1.1"
-
-debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+debug@4.3.1, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
   version "4.3.1"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
   integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
   dependencies:
     ms "2.1.2"
 
+debug@^3.2.6:
+  version "3.2.7"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+  integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+  dependencies:
+    ms "^2.1.1"
+
 debug@~4.1.0:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
@@ -3196,27 +3210,36 @@ debug@~4.1.0:
   dependencies:
     ms "^2.1.1"
 
-decamelize@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+decamelize@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
+  integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
 
 decode-uri-component@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
   integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
 
-deep-equal@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
-  integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
+deep-equal@^2.0.3:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9"
+  integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==
   dependencies:
+    call-bind "^1.0.0"
+    es-get-iterator "^1.1.1"
+    get-intrinsic "^1.0.1"
     is-arguments "^1.0.4"
-    is-date-object "^1.0.1"
-    is-regex "^1.0.4"
-    object-is "^1.0.1"
+    is-date-object "^1.0.2"
+    is-regex "^1.1.1"
+    isarray "^2.0.5"
+    object-is "^1.1.4"
     object-keys "^1.1.1"
-    regexp.prototype.flags "^1.2.0"
+    object.assign "^4.1.2"
+    regexp.prototype.flags "^1.3.0"
+    side-channel "^1.0.3"
+    which-boxed-primitive "^1.0.1"
+    which-collection "^1.0.1"
+    which-typed-array "^1.1.2"
 
 deep-extend@^0.6.0:
   version "0.6.0"
@@ -3228,7 +3251,7 @@ deep-freeze@^0.0.1:
   resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84"
   integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=
 
-deep-is@~0.1.3:
+deep-is@^0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
@@ -3262,11 +3285,6 @@ define-property@^2.0.2:
     is-descriptor "^1.0.2"
     isobject "^3.0.1"
 
-defined@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
-  integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
-
 delayed-stream@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -3287,7 +3305,7 @@ denque@^1.4.1:
   resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz#773de0686ff2d8ec2ff92914316a47b73b1c73de"
   integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==
 
-depd@2.0.0, depd@^2.0.0, depd@~2.0.0:
+depd@^2.0.0, depd@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
   integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
@@ -3310,11 +3328,6 @@ destroy@~1.0.4:
   resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
   integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
 
-detect-file@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
-  integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
-
 detect-indent@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
@@ -3329,12 +3342,13 @@ detect-libc@^1.0.2:
 
 "diff-match-patch@git+https://github.com/hackmdio/diff-match-patch.git":
   version "1.1.1"
+  uid c2f8fb9d69aa9490b764850aa86ba442c93ccf78
   resolved "git+https://github.com/hackmdio/diff-match-patch.git#c2f8fb9d69aa9490b764850aa86ba442c93ccf78"
 
-diff@3.5.0:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
-  integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
+diff@5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
+  integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
 
 diffie-hellman@^5.0.0:
   version "5.0.3"
@@ -3401,16 +3415,9 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
   integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
 
 domelementtype@^2.0.1:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
-  integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
-
-domexception@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
-  integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
-  dependencies:
-    webidl-conversions "^4.0.2"
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
+  integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
 
 domhandler@^2.3.0:
   version "2.4.2"
@@ -3419,6 +3426,11 @@ domhandler@^2.3.0:
   dependencies:
     domelementtype "1"
 
+domino@^2.1.6:
+  version "2.1.6"
+  resolved "https://registry.yarnpkg.com/domino/-/domino-2.1.6.tgz#fe4ace4310526e5e7b9d12c7de01b7f485a57ffe"
+  integrity sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==
+
 domutils@1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
@@ -3435,11 +3447,6 @@ domutils@^1.5.1, domutils@^1.7.0:
     dom-serializer "0"
     domelementtype "1"
 
-dont-sniff-mimetype@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2"
-  integrity sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==
-
 dot-case@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
@@ -3460,13 +3467,6 @@ dottie@^2.0.0:
   resolved "https://registry.yarnpkg.com/dottie/-/dottie-2.0.2.tgz#cc91c0726ce3a054ebf11c55fbc92a7f266dd154"
   integrity sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==
 
-dtrace-provider@~0.8:
-  version "0.8.8"
-  resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e"
-  integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==
-  dependencies:
-    nan "^2.14.0"
-
 duplexify@^3.4.2, duplexify@^3.6.0:
   version "3.7.1"
   resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
@@ -3492,55 +3492,42 @@ ecdsa-sig-formatter@1.0.11:
   dependencies:
     safe-buffer "^5.0.1"
 
-editorconfig@^0.15.3:
-  version "0.15.3"
-  resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5"
-  integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==
-  dependencies:
-    commander "^2.19.0"
-    lru-cache "^4.1.5"
-    semver "^5.6.0"
-    sigmund "^1.0.1"
-
 ee-first@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
   integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
 
-ejs@^2.5.5:
-  version "2.7.4"
-  resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
-  integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
+ejs@^3.0.0:
+  version "3.1.6"
+  resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
+  integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
+  dependencies:
+    jake "^10.6.1"
 
-electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.634:
-  version "1.3.639"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.639.tgz#0a27e3018ae3acf438a14a1dd4e41db4b8ab764e"
-  integrity sha512-bwl6/U6xb3d3CNufQU9QeO1L32ueouFwW4bWANSwdXR7LVqyLzWjNbynoKNfuC38QFB5Qn7O0l2KLqBkcXnC3Q==
+electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.723:
+  version "1.3.727"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf"
+  integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg==
 
 elliptic@^6.5.3:
-  version "6.5.3"
-  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
-  integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
+  version "6.5.4"
+  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
+  integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
   dependencies:
-    bn.js "^4.4.0"
-    brorand "^1.0.1"
+    bn.js "^4.11.9"
+    brorand "^1.1.0"
     hash.js "^1.0.0"
-    hmac-drbg "^1.0.0"
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-    minimalistic-crypto-utils "^1.0.0"
-
-emoji-regex@^7.0.1:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
-  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+    hmac-drbg "^1.0.1"
+    inherits "^2.0.4"
+    minimalistic-assert "^1.0.1"
+    minimalistic-crypto-utils "^1.0.1"
 
 emoji-regex@^8.0.0:
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
   integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
 
-emojify.js@^1.1.0:
+emojify.js@1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/emojify.js/-/emojify.js-1.1.0.tgz#079fff223307c9007f570785e8e4935d5c398beb"
   integrity sha1-B5//IjMHyQB/VweF6OSTXVw5i+s=
@@ -3568,9 +3555,9 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
     once "^1.4.0"
 
 engine.io-client@~3.5.0:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.0.tgz#fc1b4d9616288ce4f2daf06dcf612413dec941c7"
-  integrity sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.2.tgz#0ef473621294004e9ceebe73cef0af9e36f2f5fa"
+  integrity sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==
   dependencies:
     component-emitter "~1.3.0"
     component-inherit "0.0.3"
@@ -3581,7 +3568,7 @@ engine.io-client@~3.5.0:
     parseqs "0.0.6"
     parseuri "0.0.6"
     ws "~7.4.2"
-    xmlhttprequest-ssl "~1.5.4"
+    xmlhttprequest-ssl "~1.6.2"
     yeast "0.1.2"
 
 engine.io-parser@~2.2.0:
@@ -3607,7 +3594,7 @@ engine.io@~3.5.0:
     engine.io-parser "~2.2.0"
     ws "~7.4.2"
 
-enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0:
+enhanced-resolve@^4.5.0:
   version "4.5.0"
   resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
   integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
@@ -3616,21 +3603,28 @@ enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0:
     memory-fs "^0.5.0"
     tapable "^1.0.0"
 
+enquirer@^2.3.5:
+  version "2.3.6"
+  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+  integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+  dependencies:
+    ansi-colors "^4.1.1"
+
 entities@^1.1.1, entities@~1.1.1:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
   integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
 
 entities@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+  integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
+entities@~2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
   integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
 
-entities@~2.0.0:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
-  integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==
-
 entity-decode@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/entity-decode/-/entity-decode-2.0.2.tgz#e4f807e52c3294246e9347d1f2b02b07fd5f92e7"
@@ -3638,6 +3632,11 @@ entity-decode@^2.0.2:
   dependencies:
     he "^1.1.1"
 
+envinfo@^7.7.3:
+  version "7.8.1"
+  resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
+  integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
+
 errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
@@ -3652,40 +3651,41 @@ error-ex@^1.2.0, error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.17.0-next.1, es-abstract@^1.17.2:
-  version "1.17.7"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c"
-  integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==
+es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2:
+  version "1.18.0"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4"
+  integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==
   dependencies:
+    call-bind "^1.0.2"
     es-to-primitive "^1.2.1"
     function-bind "^1.1.1"
+    get-intrinsic "^1.1.1"
     has "^1.0.3"
-    has-symbols "^1.0.1"
-    is-callable "^1.2.2"
-    is-regex "^1.1.1"
-    object-inspect "^1.8.0"
+    has-symbols "^1.0.2"
+    is-callable "^1.2.3"
+    is-negative-zero "^2.0.1"
+    is-regex "^1.1.2"
+    is-string "^1.0.5"
+    object-inspect "^1.9.0"
     object-keys "^1.1.1"
-    object.assign "^4.1.1"
-    string.prototype.trimend "^1.0.1"
-    string.prototype.trimstart "^1.0.1"
+    object.assign "^4.1.2"
+    string.prototype.trimend "^1.0.4"
+    string.prototype.trimstart "^1.0.4"
+    unbox-primitive "^1.0.0"
 
-es-abstract@^1.18.0-next.1:
-  version "1.18.0-next.1"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68"
-  integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==
+es-get-iterator@^1.1.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7"
+  integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==
   dependencies:
-    es-to-primitive "^1.2.1"
-    function-bind "^1.1.1"
-    has "^1.0.3"
+    call-bind "^1.0.2"
+    get-intrinsic "^1.1.0"
     has-symbols "^1.0.1"
-    is-callable "^1.2.2"
-    is-negative-zero "^2.0.0"
-    is-regex "^1.1.1"
-    object-inspect "^1.8.0"
-    object-keys "^1.1.1"
-    object.assign "^4.1.1"
-    string.prototype.trimend "^1.0.1"
-    string.prototype.trimstart "^1.0.1"
+    is-arguments "^1.1.0"
+    is-map "^2.0.2"
+    is-set "^2.0.2"
+    is-string "^1.0.5"
+    isarray "^2.0.5"
 
 es-to-primitive@^1.2.1:
   version "1.2.1"
@@ -3696,78 +3696,52 @@ es-to-primitive@^1.2.1:
     is-date-object "^1.0.1"
     is-symbol "^1.0.2"
 
-es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
-  version "0.10.53"
-  resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
-  integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
-  dependencies:
-    es6-iterator "~2.0.3"
-    es6-symbol "~3.1.3"
-    next-tick "~1.0.0"
-
-es6-error@^2.0.2:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-2.1.1.tgz#91384301ec5ed1c9a7247d1128247216f03547cd"
-  integrity sha1-kThDAexe0cmnJH0RKCRyFvA1R80=
-
-es6-iterator@^2.0.3, es6-iterator@~2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
-  integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
-  dependencies:
-    d "1"
-    es5-ext "^0.10.35"
-    es6-symbol "^3.1.1"
+es6-error@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
+  integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
 
-es6-symbol@^3.1.1, es6-symbol@~3.1.3:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
-  integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
+esbuild-loader@2.13.0:
+  version "2.13.0"
+  resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.13.0.tgz#f5a3602a89a3b728506ae3e1887304fffeef9270"
+  integrity sha512-gC9lML8RGkTSWG2pJVEOZRLMoIluq1Jd7OzzVkOZKMzbMDMWDhXEwXLs60n+aglnAYa9GVrD/UXjTHkM51nBsg==
   dependencies:
-    d "^1.0.1"
-    ext "^1.1.2"
+    esbuild "^0.11.19"
+    joycon "^3.0.1"
+    json5 "^2.2.0"
+    loader-utils "^2.0.0"
+    type-fest "^1.0.1"
+    webpack-sources "^2.2.0"
 
-es6-weak-map@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
-  integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
-  dependencies:
-    d "1"
-    es5-ext "^0.10.46"
-    es6-iterator "^2.0.3"
-    es6-symbol "^3.1.1"
+esbuild@^0.11.19:
+  version "0.11.20"
+  resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.11.20.tgz#7cefa1aee8b372c184e42457885f7ce5d3e62a1e"
+  integrity sha512-QOZrVpN/Yz74xfat0H6euSgn3RnwLevY1mJTEXneukz1ln9qB+ieaerRMzSeETpz/UJWsBMzRVR/andBht5WKw==
 
 escalade@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
   integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
 
-escape-html@^1.0.3, escape-html@~1.0.3:
+escape-html@1.0.3, escape-html@^1.0.3, escape-html@~1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
   integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
 
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
   integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
 
-escodegen@^1.9.1:
-  version "1.14.3"
-  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
-  integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
-  dependencies:
-    esprima "^4.0.1"
-    estraverse "^4.2.0"
-    esutils "^2.0.2"
-    optionator "^0.8.1"
-  optionalDependencies:
-    source-map "~0.6.1"
-
-eslint-config-standard@12.0.0:
-  version "12.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9"
-  integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==
+eslint-config-standard@16.0.2:
+  version "16.0.2"
+  resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz#71e91727ac7a203782d0a5ca4d1c462d14e234f6"
+  integrity sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==
 
 eslint-import-resolver-node@^0.3.4:
   version "0.3.4"
@@ -3785,13 +3759,13 @@ eslint-module-utils@^2.6.0:
     debug "^2.6.9"
     pkg-dir "^2.0.0"
 
-eslint-plugin-es@^1.3.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998"
-  integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==
+eslint-plugin-es@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893"
+  integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==
   dependencies:
-    eslint-utils "^1.4.2"
-    regexpp "^2.0.1"
+    eslint-utils "^2.0.0"
+    regexpp "^3.0.0"
 
 eslint-plugin-import@2.22.1:
   version "2.22.1"
@@ -3812,22 +3786,22 @@ eslint-plugin-import@2.22.1:
     resolve "^1.17.0"
     tsconfig-paths "^3.9.0"
 
-eslint-plugin-node@8.0.1:
-  version "8.0.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964"
-  integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==
+eslint-plugin-node@11.1.0:
+  version "11.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d"
+  integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==
   dependencies:
-    eslint-plugin-es "^1.3.1"
-    eslint-utils "^1.3.1"
-    ignore "^5.0.2"
+    eslint-plugin-es "^3.0.0"
+    eslint-utils "^2.0.0"
+    ignore "^5.1.1"
     minimatch "^3.0.4"
-    resolve "^1.8.1"
-    semver "^5.5.0"
+    resolve "^1.10.1"
+    semver "^6.1.0"
 
-eslint-plugin-promise@4.2.1:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a"
-  integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==
+eslint-plugin-promise@5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz#fb2188fb734e4557993733b41aa1a688f46c6f24"
+  integrity sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng==
 
 eslint-plugin-standard@4.1.0:
   version "4.1.0"
@@ -3842,89 +3816,103 @@ eslint-scope@^4.0.3:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
 
-eslint-utils@^1.3.1, eslint-utils@^1.4.2:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
-  integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
+eslint-scope@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^4.1.1"
+
+eslint-utils@^2.0.0, eslint-utils@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
   dependencies:
     eslint-visitor-keys "^1.1.0"
 
-eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
+eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
   integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
 
-eslint@5.16.0:
-  version "5.16.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
-  integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    ajv "^6.9.1"
-    chalk "^2.1.0"
-    cross-spawn "^6.0.5"
+eslint-visitor-keys@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+
+eslint@7.26.0:
+  version "7.26.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6"
+  integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==
+  dependencies:
+    "@babel/code-frame" "7.12.11"
+    "@eslint/eslintrc" "^0.4.1"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
     debug "^4.0.1"
     doctrine "^3.0.0"
-    eslint-scope "^4.0.3"
-    eslint-utils "^1.3.1"
-    eslint-visitor-keys "^1.0.0"
-    espree "^5.0.1"
-    esquery "^1.0.1"
+    enquirer "^2.3.5"
+    eslint-scope "^5.1.1"
+    eslint-utils "^2.1.0"
+    eslint-visitor-keys "^2.0.0"
+    espree "^7.3.1"
+    esquery "^1.4.0"
     esutils "^2.0.2"
-    file-entry-cache "^5.0.1"
+    file-entry-cache "^6.0.1"
     functional-red-black-tree "^1.0.1"
-    glob "^7.1.2"
-    globals "^11.7.0"
+    glob-parent "^5.0.0"
+    globals "^13.6.0"
     ignore "^4.0.6"
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
-    inquirer "^6.2.2"
-    js-yaml "^3.13.0"
+    is-glob "^4.0.0"
+    js-yaml "^3.13.1"
     json-stable-stringify-without-jsonify "^1.0.1"
-    levn "^0.3.0"
-    lodash "^4.17.11"
+    levn "^0.4.1"
+    lodash "^4.17.21"
     minimatch "^3.0.4"
-    mkdirp "^0.5.1"
     natural-compare "^1.4.0"
-    optionator "^0.8.2"
-    path-is-inside "^1.0.2"
+    optionator "^0.9.1"
     progress "^2.0.0"
-    regexpp "^2.0.1"
-    semver "^5.5.1"
-    strip-ansi "^4.0.0"
-    strip-json-comments "^2.0.1"
-    table "^5.2.3"
+    regexpp "^3.1.0"
+    semver "^7.2.1"
+    strip-ansi "^6.0.0"
+    strip-json-comments "^3.1.0"
+    table "^6.0.4"
     text-table "^0.2.0"
+    v8-compile-cache "^2.0.3"
 
-espree@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
-  integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
+espree@^7.3.0, espree@^7.3.1:
+  version "7.3.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
+  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
   dependencies:
-    acorn "^6.0.7"
-    acorn-jsx "^5.0.0"
-    eslint-visitor-keys "^1.0.0"
+    acorn "^7.4.0"
+    acorn-jsx "^5.3.1"
+    eslint-visitor-keys "^1.3.0"
 
-esprima@^4.0.0, esprima@^4.0.1:
+esprima@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
   integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
-esquery@^1.0.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
-  integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
+esquery@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
   dependencies:
     estraverse "^5.1.0"
 
-esrecurse@^4.1.0:
+esrecurse@^4.1.0, esrecurse@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
   integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
   dependencies:
     estraverse "^5.2.0"
 
-estraverse@^4.1.1, estraverse@^4.2.0:
+estraverse@^4.1.1:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
   integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
@@ -3954,23 +3942,15 @@ eve@~0.5.1:
   resolved "https://registry.yarnpkg.com/eve/-/eve-0.5.4.tgz#67d080b9725291d7e389e34c26860dd97f1debaa"
   integrity sha1-Z9CAuXJSkdfjieNMJoYN2X8d66o=
 
-event-emitter@^0.3.5:
-  version "0.3.5"
-  resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
-  integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-
 events@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
   integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
 
 events@^3.0.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
-  integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+  integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
 
 evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
   version "1.0.3"
@@ -3980,6 +3960,21 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
     md5.js "^1.3.4"
     safe-buffer "^5.1.1"
 
+execa@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376"
+  integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==
+  dependencies:
+    cross-spawn "^7.0.3"
+    get-stream "^6.0.0"
+    human-signals "^2.1.0"
+    is-stream "^2.0.0"
+    merge-stream "^2.0.0"
+    npm-run-path "^4.0.1"
+    onetime "^5.1.2"
+    signal-exit "^3.0.3"
+    strip-final-newline "^2.0.0"
+
 exit-on-epipe@~1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
@@ -4012,17 +4007,13 @@ expand-range@^1.8.1:
   dependencies:
     fill-range "^2.1.0"
 
-expand-tilde@^2.0.0, expand-tilde@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
-  integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=
+expose-loader@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-1.0.3.tgz#5686d3b78cac8831c4af11c3dc361563deb8a9c0"
+  integrity sha512-gP6hs3vYeWIqyoVfsApGQcgCEpbcI1xe+celwI31zeDhXz2q03ycBC1+75IlQUGaYvj6rAloFIe/NIBnEElLsQ==
   dependencies:
-    homedir-polyfill "^1.0.1"
-
-expose-loader@0.7.5:
-  version "0.7.5"
-  resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.5.tgz#e29ea2d9aeeed3254a3faa1b35f502db9f9c3f6f"
-  integrity sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
 
 express-session@^1.14.2:
   version "1.17.1"
@@ -4074,13 +4065,6 @@ express@>=4.14:
     utils-merge "1.0.1"
     vary "~1.1.2"
 
-ext@^1.1.2:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244"
-  integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==
-  dependencies:
-    type "^2.0.0"
-
 extend-shallow@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
@@ -4106,15 +4090,6 @@ extend@^3.0.0, extend@^3.0.2, extend@~3.0.2:
   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
   integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
 
-external-editor@^3.0.3:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
-  integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
-  dependencies:
-    chardet "^0.7.0"
-    iconv-lite "^0.4.24"
-    tmp "^0.0.33"
-
 extglob@^0.3.1:
   version "0.3.2"
   resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
@@ -4136,11 +4111,6 @@ extglob@^2.0.4:
     snapdragon "^0.8.1"
     to-regex "^3.0.1"
 
-extsprintf@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529"
-  integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=
-
 extsprintf@1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -4157,9 +4127,9 @@ fast-deep-equal@^3.1.1:
   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 
 fast-glob@^3.1.1, fast-glob@^3.2.4:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3"
-  integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
+  integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
   dependencies:
     "@nodelib/fs.stat" "^2.0.2"
     "@nodelib/fs.walk" "^1.2.3"
@@ -4173,7 +4143,7 @@ fast-json-stable-stringify@^2.0.0:
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
   integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
 
-fast-levenshtein@~2.0.6:
+fast-levenshtein@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -4183,10 +4153,20 @@ fast-safe-stringify@^2.0.4:
   resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
   integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
 
+fast-xml-parser@^3.17.5, fast-xml-parser@^3.19.0:
+  version "3.19.0"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01"
+  integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==
+
+fastest-levenshtein@^1.0.12:
+  version "1.0.12"
+  resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
+  integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+
 fastq@^1.6.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb"
-  integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858"
+  integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==
   dependencies:
     reusify "^1.0.4"
 
@@ -4197,28 +4177,16 @@ fault@^1.0.0, fault@^1.0.2:
   dependencies:
     format "^0.2.0"
 
-feature-policy@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.3.0.tgz#7430e8e54a40da01156ca30aaec1a381ce536069"
-  integrity sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==
-
 fecha@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41"
-  integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
+  integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==
 
 figgy-pudding@^3.5.1:
   version "3.5.2"
   resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
   integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
 
-figures@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
-  integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
-  dependencies:
-    escape-string-regexp "^1.0.5"
-
 figures@^3.0.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
@@ -4226,30 +4194,30 @@ figures@^3.0.0:
   dependencies:
     escape-string-regexp "^1.0.5"
 
-file-entry-cache@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
-  integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
   dependencies:
-    flat-cache "^2.0.1"
+    flat-cache "^3.0.4"
 
-file-loader@4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af"
-  integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==
+file-loader@6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
+  integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
   dependencies:
-    loader-utils "^1.2.3"
-    schema-utils "^2.5.0"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
 
-file-saver@^1.3.3:
-  version "1.3.8"
-  resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.8.tgz#e68a30c7cb044e2fb362b428469feb291c2e09d8"
-  integrity sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg==
+file-saver@2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38"
+  integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
 
 file-type@^16.1.0:
-  version "16.2.0"
-  resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.2.0.tgz#d4f1da71ddda758db7f15f93adfaed09ce9e2715"
-  integrity sha512-1Wwww3mmZCMmLjBfslCluwt2mxH80GsAXYrvPnfQ42G1EGWag336kB1iyCgyn7UXiKY3cJrNykXPrCwA7xb5Ag==
+  version "16.4.0"
+  resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.4.0.tgz#464197e44bd94a452d77b09085d977ae0dad2df4"
+  integrity sha512-MDAkwha3wHg11Lp++2T3Gu347eC/DB4r7nYj6iZaf1l7UhGBh2746QKxg0BWC8w2dJsxUEmH8KvLueX+GthN2w==
   dependencies:
     readable-web-to-node-stream "^3.0.0"
     strtok3 "^6.0.3"
@@ -4261,6 +4229,13 @@ file-uri-to-path@1.0.0:
   resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
   integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
 
+filelist@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b"
+  integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==
+  dependencies:
+    minimatch "^3.0.4"
+
 filename-regex@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@@ -4334,6 +4309,14 @@ find-cache-dir@^3.3.1:
     make-dir "^3.0.2"
     pkg-dir "^4.1.0"
 
+find-up@5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+  dependencies:
+    locate-path "^6.0.0"
+    path-exists "^4.0.0"
+
 find-up@^2.0.0, find-up@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
@@ -4356,31 +4339,25 @@ find-up@^4.0.0:
     locate-path "^5.0.0"
     path-exists "^4.0.0"
 
-findup-sync@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
-  integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
   dependencies:
-    detect-file "^1.0.0"
-    is-glob "^4.0.0"
-    micromatch "^3.0.4"
-    resolve-dir "^1.0.1"
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
 
-flat-cache@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
-  integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
-  dependencies:
-    flatted "^2.0.0"
-    rimraf "2.6.3"
-    write "1.0.3"
+flat@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
+  integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
 
-flatted@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
-  integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+flatted@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
+  integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
 
-flowchart.js@^1.6.4:
+flowchart.js@1.15.0:
   version "1.15.0"
   resolved "https://registry.yarnpkg.com/flowchart.js/-/flowchart.js-1.15.0.tgz#132ba2df14af0a65e67280026ef05a1ffd16569f"
   integrity sha512-IyCVUFfHPLPgKLynw3NCkZ7CvKJdc/bAu0aHm+2AxKhtSBCiUC1kcTX1KautC3HOp1A2JS1IOcYxDTmcMkx5nQ==
@@ -4401,9 +4378,9 @@ fn.name@1.x.x:
   integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
 
 follow-redirects@^1.10.0:
-  version "1.13.1"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7"
-  integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43"
+  integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==
 
 for-in@^1.0.1, for-in@^1.0.2:
   version "1.0.2"
@@ -4417,12 +4394,17 @@ for-own@^0.1.4:
   dependencies:
     for-in "^1.0.1"
 
+foreach@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
+  integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
+
 forever-agent@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
   integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
 
-fork-awesome@^1.1.3:
+fork-awesome@1.1.7:
   version "1.1.7"
   resolved "https://registry.yarnpkg.com/fork-awesome/-/fork-awesome-1.1.7.tgz#1427da1cac3d1713046ee88427e5fcecb9501d21"
   integrity sha512-IHI7XCSXrKfUIWslse8c/PaaVDT1oBaYge+ju40ihL2ooiQeBpTr4wvIXhgTd2NuhntlvX+M5jYHAPTzNlmv0g==
@@ -4499,15 +4481,6 @@ fs-constants@^1.0.0:
   resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
   integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
 
-fs-extra@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
-  integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^4.0.0"
-    universalify "^0.1.0"
-
 fs-minipass@^1.2.5:
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -4551,9 +4524,19 @@ fsevents@^1.0.0, fsevents@^1.2.7:
     nan "^2.12.1"
 
 fsevents@~2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f"
-  integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+fstream@^1.0.0, fstream@^1.0.12:
+  version "1.0.12"
+  resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
+  integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==
+  dependencies:
+    graceful-fs "^4.1.2"
+    inherits "~2.0.0"
+    mkdirp ">=0.5 0"
+    rimraf "2"
 
 function-bind@^1.1.1:
   version "1.1.1"
@@ -4591,20 +4574,25 @@ get-caller-file@^1.0.2:
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
   integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
 
-get-caller-file@^2.0.1:
+get-caller-file@^2.0.5:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
   integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
-get-intrinsic@^1.0.1, get-intrinsic@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49"
-  integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==
+get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
   dependencies:
     function-bind "^1.1.1"
     has "^1.0.3"
     has-symbols "^1.0.1"
 
+get-stream@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
 get-value@^2.0.3, get-value@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -4617,7 +4605,7 @@ getpass@^0.1.1:
   dependencies:
     assert-plus "^1.0.0"
 
-gist-embed@^2.6.0:
+gist-embed@2.6.0:
   version "2.6.0"
   resolved "https://registry.yarnpkg.com/gist-embed/-/gist-embed-2.6.0.tgz#1ea95703fa1fc2a1255419f6f06c67e9920649ab"
   integrity sha1-HqlXA/ofwqElVBn28Gxn6ZIGSas=
@@ -4645,17 +4633,17 @@ glob-parent@^3.1.0:
     is-glob "^3.1.0"
     path-dirname "^1.0.0"
 
-glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
-  integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
+glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
   dependencies:
     is-glob "^4.0.1"
 
-glob@7.1.2:
-  version "7.1.2"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
-  integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
+glob@7.1.6:
+  version "7.1.6"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -4664,21 +4652,10 @@ glob@7.1.2:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^6.0.1:
-  version "6.0.4"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
-  integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
-  dependencies:
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "2 || 3"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
 glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
-  version "7.1.6"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
-  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+  version "7.1.7"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -4687,46 +4664,19 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-global-modules@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
-  integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
-  dependencies:
-    global-prefix "^1.0.1"
-    is-windows "^1.0.1"
-    resolve-dir "^1.0.0"
-
-global-modules@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
-  integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
-  dependencies:
-    global-prefix "^3.0.0"
-
-global-prefix@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
-  integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=
+globals@^12.1.0:
+  version "12.4.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+  integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
   dependencies:
-    expand-tilde "^2.0.2"
-    homedir-polyfill "^1.0.1"
-    ini "^1.3.4"
-    is-windows "^1.0.1"
-    which "^1.2.14"
+    type-fest "^0.8.1"
 
-global-prefix@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
-  integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
+globals@^13.6.0:
+  version "13.8.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3"
+  integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==
   dependencies:
-    ini "^1.3.5"
-    kind-of "^6.0.2"
-    which "^1.3.1"
-
-globals@^11.7.0:
-  version "11.12.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
-  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+    type-fest "^0.20.2"
 
 globals@^9.18.0:
   version "9.18.0"
@@ -4734,9 +4684,9 @@ globals@^9.18.0:
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
 globby@^11.0.1:
-  version "11.0.2"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83"
-  integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==
+  version "11.0.3"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"
+  integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==
   dependencies:
     array-union "^2.1.0"
     dir-glob "^3.0.1"
@@ -4752,10 +4702,10 @@ good-listener@^1.2.2:
   dependencies:
     delegate "^3.1.2"
 
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
-  version "4.2.4"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
-  integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.2.0:
+  version "4.2.6"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+  integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
 
 graphlib@^2.1.7, graphlib@^2.1.8:
   version "2.1.8"
@@ -4770,9 +4720,9 @@ growl@1.10.5:
   integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
 
 handlebars@^4.5.2:
-  version "4.7.6"
-  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e"
-  integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==
+  version "4.7.7"
+  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
+  integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
   dependencies:
     minimist "^1.2.5"
     neo-async "^2.6.0"
@@ -4801,6 +4751,11 @@ has-ansi@^2.0.0:
   dependencies:
     ansi-regex "^2.0.0"
 
+has-bigints@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
 has-binary2@~1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
@@ -4828,10 +4783,10 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-has-symbols@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
-  integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
 
 has-unicode@^2.0.0:
   version "2.0.1"
@@ -4893,64 +4848,27 @@ hash.js@^1.0.0, hash.js@^1.0.3:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.1"
 
-he@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
-  integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
-
-he@^1.1.1, he@^1.2.0:
+he@1.2.0, he@^1.1.1, he@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
   integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
 
-helmet-crossdomain@0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e"
-  integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA==
-
-helmet-csp@2.10.0:
-  version "2.10.0"
-  resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.10.0.tgz#685dde1747bc16c5e28ad9d91e229a69f0a85e84"
-  integrity sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w==
-  dependencies:
-    bowser "2.9.0"
-    camelize "1.0.0"
-    content-security-policy-builder "2.1.0"
-    dasherize "2.0.0"
-
-helmet@^3.21.1:
-  version "3.23.3"
-  resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.23.3.tgz#5ba30209c5f73ded4ab65746a3a11bedd4579ab7"
-  integrity sha512-U3MeYdzPJQhtvqAVBPntVgAvNSOJyagwZwyKsFdyRa8TV3pOKVFljalPOCxbw5Wwf2kncGhmP0qHjyazIdNdSA==
-  dependencies:
-    depd "2.0.0"
-    dont-sniff-mimetype "1.1.0"
-    feature-policy "0.3.0"
-    helmet-crossdomain "0.4.0"
-    helmet-csp "2.10.0"
-    hide-powered-by "1.1.0"
-    hpkp "2.0.0"
-    hsts "2.2.0"
-    nocache "2.1.0"
-    referrer-policy "1.2.0"
-    x-xss-protection "1.3.0"
+helmet@^4.5.0:
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/helmet/-/helmet-4.6.0.tgz#579971196ba93c5978eb019e4e8ec0e50076b4df"
+  integrity sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==
 
 hex-color-regex@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
   integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
 
-hide-powered-by@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.1.0.tgz#be3ea9cab4bdb16f8744be873755ca663383fa7a"
-  integrity sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==
-
-highlight.js@^9.12.0:
-  version "9.18.5"
-  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
-  integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
+highlight.js@10.7.2:
+  version "10.7.2"
+  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360"
+  integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg==
 
-hmac-drbg@^1.0.0:
+hmac-drbg@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
   integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
@@ -4967,22 +4885,10 @@ home-or-tmp@^2.0.0:
     os-homedir "^1.0.0"
     os-tmpdir "^1.0.1"
 
-homedir-polyfill@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
-  integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
-  dependencies:
-    parse-passwd "^1.0.0"
-
 hosted-git-info@^2.1.4:
-  version "2.8.8"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
-  integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
-
-hpkp@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672"
-  integrity sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=
+  version "2.8.9"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+  integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
 
 hsl-regex@^1.0.0:
   version "1.0.0"
@@ -4994,25 +4900,6 @@ hsla-regex@^1.0.0:
   resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
   integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
 
-hsts@2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.2.0.tgz#09119d42f7a8587035d027dda4522366fe75d964"
-  integrity sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==
-  dependencies:
-    depd "2.0.0"
-
-html-comment-regex@^1.1.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
-  integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-
-html-encoding-sniffer@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
-  integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
-  dependencies:
-    whatwg-encoding "^1.0.1"
-
 html-minifier-terser@^5.0.1:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
@@ -5039,17 +4926,17 @@ html-minifier@^4.0.0:
     relateurl "^0.2.7"
     uglify-js "^3.5.1"
 
-html-webpack-plugin@4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c"
-  integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==
+html-webpack-plugin@4.5.2:
+  version "4.5.2"
+  resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12"
+  integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==
   dependencies:
     "@types/html-minifier-terser" "^5.0.0"
     "@types/tapable" "^1.0.5"
     "@types/webpack" "^4.41.8"
     html-minifier-terser "^5.0.1"
     loader-utils "^1.2.3"
-    lodash "^4.17.15"
+    lodash "^4.17.20"
     pretty-error "^2.1.1"
     tapable "^1.1.3"
     util.promisify "1.0.0"
@@ -5102,10 +4989,15 @@ https-browserify@^1.0.0:
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
   integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
 
+human-signals@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
 i18n@^0.13.0:
-  version "0.13.2"
-  resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz#3886678fe7cbbed45bac2ce53b8144c788a1c1b5"
-  integrity sha512-PB65bHhQESMBIl/xVNChEAzoxZ5W6FrZ1H9Ma/YcPeSfE7VS9b0sqwBPusa0CfzSKUPSl+uMhRIgyv3jkE7XNw==
+  version "0.13.3"
+  resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.3.tgz#5820f48d87a77cf14e064719bee9bc682ed550eb"
+  integrity sha512-QDmY2joBdKxj3wvk2LKyvZkjwGHta882kYHwEvx1WbwiPAet49kEU7cxzGfnrtWrfh4+7I07kBc0ZSjSlhnKyQ==
   dependencies:
     debug "^4.1.1"
     make-plural "^6.2.2"
@@ -5114,7 +5006,7 @@ i18n@^0.13.0:
     mustache "^4.0.1"
     sprintf-js "^1.1.2"
 
-iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
+iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.4:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -5135,12 +5027,10 @@ iconv-lite@^0.6.2:
   dependencies:
     safer-buffer ">= 2.1.2 < 3.0.0"
 
-icss-utils@^4.0.0, icss-utils@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
-  integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
-  dependencies:
-    postcss "^7.0.14"
+icss-utils@^5.0.0, icss-utils@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
+  integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
 
 ieee754@1.1.13:
   version "1.1.13"
@@ -5158,9 +5048,9 @@ iferr@^0.1.5:
   integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 
 ignore-walk@^3.0.1:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
-  integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335"
+  integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==
   dependencies:
     minimatch "^3.0.4"
 
@@ -5169,7 +5059,7 @@ ignore@^4.0.6:
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
 
-ignore@^5.0.0, ignore@^5.0.2, ignore@^5.1.4:
+ignore@^5.0.0, ignore@^5.1.1, ignore@^5.1.4:
   version "5.1.8"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
   integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
@@ -5179,15 +5069,6 @@ image-size@~0.5.0:
   resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
   integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
 
-"imgur@git+https://github.com/hackmdio/node-imgur.git":
-  version "0.5.0"
-  resolved "git+https://github.com/hackmdio/node-imgur.git#de0a7a1f1eb2cb6628385fedb990ad396a190573"
-  dependencies:
-    commander "^2.13.0"
-    glob "^7.1.2"
-    q "^2.0.3"
-    request "^2.83.0"
-
 import-fresh@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
@@ -5196,7 +5077,7 @@ import-fresh@^2.0.0:
     caller-path "^2.0.0"
     resolve-from "^3.0.0"
 
-import-fresh@^3.0.0:
+import-fresh@^3.0.0, import-fresh@^3.2.1:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
   integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -5204,21 +5085,23 @@ import-fresh@^3.0.0:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
 
-import-local@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
-  integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
+import-local@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
+  integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
   dependencies:
-    pkg-dir "^3.0.0"
-    resolve-cwd "^2.0.0"
+    pkg-dir "^4.2.0"
+    resolve-cwd "^3.0.0"
 
-imports-loader@0.8.0:
-  version "0.8.0"
-  resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz#030ea51b8ca05977c40a3abfd9b4088fe0be9a69"
-  integrity sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ==
+imports-loader@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-1.2.0.tgz#b06823d0bb42e6f5ff89bc893829000eda46693f"
+  integrity sha512-zPvangKEgrrPeqeUqH0Uhc59YqK07JqZBi9a9cQ3v/EKUIqrbJHY4CvUrDus2lgQa5AmPyXuGrWP8JJTqzE5RQ==
   dependencies:
-    loader-utils "^1.0.2"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
     source-map "^0.6.1"
+    strip-comments "^2.0.1"
 
 imurmurhash@^0.1.4:
   version "0.1.4"
@@ -5258,7 +5141,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy "1"
 
-inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -5273,34 +5156,15 @@ inherits@2.0.3:
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
   integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 
-ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
+ini@^1.3.5, ini@~1.3.0:
   version "1.3.8"
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
   integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
 
-inquirer@^6.2.2:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
-  integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
-  dependencies:
-    ansi-escapes "^3.2.0"
-    chalk "^2.4.2"
-    cli-cursor "^2.1.0"
-    cli-width "^2.0.0"
-    external-editor "^3.0.3"
-    figures "^2.0.0"
-    lodash "^4.17.12"
-    mute-stream "0.0.7"
-    run-async "^2.2.0"
-    rxjs "^6.4.0"
-    string-width "^2.1.0"
-    strip-ansi "^5.1.0"
-    through "^2.3.6"
-
-interpret@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
-  integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+interpret@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
+  integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
 
 invariant@^2.2.2:
   version "2.2.4"
@@ -5309,7 +5173,7 @@ invariant@^2.2.2:
   dependencies:
     loose-envify "^1.0.0"
 
-ionicons@^2.0.1:
+ionicons@2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/ionicons/-/ionicons-2.0.1.tgz#ca398113293ea870244f538f0aabbd4b5b209a3e"
   integrity sha1-yjmBEyk+qHAkT1OPCqu9S1sgmj4=
@@ -5343,11 +5207,6 @@ is-alphabetical@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d"
   integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==
 
-is-alphanumeric@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4"
-  integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=
-
 is-alphanumerical@^1.0.0:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf"
@@ -5356,7 +5215,7 @@ is-alphanumerical@^1.0.0:
     is-alphabetical "^1.0.0"
     is-decimal "^1.0.0"
 
-is-arguments@^1.0.4:
+is-arguments@^1.0.4, is-arguments@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9"
   integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==
@@ -5373,6 +5232,11 @@ is-arrayish@^0.3.1:
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
   integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
 
+is-bigint@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"
+  integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==
+
 is-binary-path@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
@@ -5392,6 +5256,13 @@ is-bluebird@^1.0.2:
   resolved "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz#096439060f4aa411abee19143a84d6a55346d6e2"
   integrity sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI=
 
+is-boolean-object@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8"
+  integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==
+  dependencies:
+    call-bind "^1.0.2"
+
 is-buffer@^1.1.5:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
@@ -5402,10 +5273,10 @@ is-buffer@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
   integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
 
-is-callable@^1.1.4, is-callable@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
-  integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
+is-callable@^1.1.4, is-callable@^1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
+  integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
 
 is-color-stop@^1.0.0:
   version "1.1.0"
@@ -5419,10 +5290,10 @@ is-color-stop@^1.0.0:
     rgb-regex "^1.0.1"
     rgba-regex "^1.0.0"
 
-is-core-module@^2.1.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
-  integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
+is-core-module@^2.2.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
+  integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
   dependencies:
     has "^1.0.3"
 
@@ -5440,10 +5311,10 @@ is-data-descriptor@^1.0.0:
   dependencies:
     kind-of "^6.0.0"
 
-is-date-object@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
-  integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
+is-date-object@^1.0.1, is-date-object@^1.0.2:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5"
+  integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==
 
 is-decimal@^1.0.0:
   version "1.0.4"
@@ -5560,11 +5431,21 @@ is-hexadecimal@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
   integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
 
-is-negative-zero@^2.0.0:
+is-map@^2.0.1, is-map@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
+  integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
+
+is-negative-zero@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
   integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
 
+is-number-object@^1.0.4:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb"
+  integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==
+
 is-number@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -5594,12 +5475,7 @@ is-obj@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
   integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
 
-is-plain-obj@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
-  integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
-
-is-plain-obj@^2.0.0:
+is-plain-obj@^2.0.0, is-plain-obj@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
   integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
@@ -5621,50 +5497,62 @@ is-primitive@^2.0.0:
   resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
   integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
 
-is-promise@^2.2.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
-  integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
-
 is-property@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
   integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=
 
-is-regex@^1.0.4, is-regex@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
-  integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
+is-regex@^1.1.1, is-regex@^1.1.2:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"
+  integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==
   dependencies:
-    has-symbols "^1.0.1"
+    call-bind "^1.0.2"
+    has-symbols "^1.0.2"
 
 is-resolvable@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
   integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
 
+is-set@^2.0.1, is-set@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
+  integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
+
 is-stream@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
   integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
 
 is-string@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
-  integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f"
+  integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==
 
-is-svg@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
-  integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
+is-svg@^4.3.1:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz#8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b"
+  integrity sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==
   dependencies:
-    html-comment-regex "^1.1.0"
+    fast-xml-parser "^3.19.0"
 
-is-symbol@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
-  integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
   dependencies:
+    has-symbols "^1.0.2"
+
+is-typed-array@^1.1.3:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e"
+  integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==
+  dependencies:
+    available-typed-arrays "^1.0.2"
+    call-bind "^1.0.2"
+    es-abstract "^1.18.0-next.2"
+    foreach "^2.0.5"
     has-symbols "^1.0.1"
 
 is-typedarray@^1.0.0, is-typedarray@~1.0.0:
@@ -5672,26 +5560,26 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0:
   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
   integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
 
-is-what@^3.7.1:
-  version "3.12.0"
-  resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz#f4405ce4bd6dd420d3ced51a026fb90e03705e55"
-  integrity sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==
+is-weakmap@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
+  integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
 
-is-whitespace-character@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7"
-  integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==
+is-weakset@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.1.tgz#e9a0af88dbd751589f5e50d80f4c98b780884f83"
+  integrity sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==
 
-is-windows@^1.0.1, is-windows@^1.0.2:
+is-what@^3.12.0:
+  version "3.14.1"
+  resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
+  integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
+
+is-windows@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
   integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
 
-is-word-character@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230"
-  integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==
-
 is-wsl@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
@@ -5712,6 +5600,11 @@ isarray@2.0.1:
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
   integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=
 
+isarray@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+  integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -5734,44 +5627,49 @@ isstream@~0.1.2:
   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
   integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
 
+jake@^10.6.1:
+  version "10.8.2"
+  resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"
+  integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==
+  dependencies:
+    async "0.9.x"
+    chalk "^2.4.2"
+    filelist "^1.0.1"
+    minimatch "^3.0.4"
+
 jmespath@0.15.0:
   version "0.15.0"
   resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217"
   integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=
 
-jquery-mousewheel@^3.1.13:
+joycon@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf"
+  integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==
+
+jquery-mousewheel@3.1.13:
   version "3.1.13"
   resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5"
   integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=
 
-jquery-ui@^1.12.1:
+jquery-ui@1.12.1:
   version "1.12.1"
   resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz#bcb4045c8dd0539c134bc1488cdd3e768a7a9e51"
   integrity sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=
 
-jquery@^3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5"
-  integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==
-
-js-beautify@^1.8.8:
-  version "1.13.4"
-  resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.4.tgz#1cad80b9e89cfc455b3a14f0eaf4dc10b6ae1206"
-  integrity sha512-M5yEWwonlEO3kPcCZ3K3KBSpFRZAEO3FAWC6wtbIGeyg7dusStxvF0WG+HRLBoMZqREXSRSxkkqClDE865x1sg==
-  dependencies:
-    config-chain "^1.1.12"
-    editorconfig "^0.15.3"
-    glob "^7.1.3"
-    mkdirp "^1.0.4"
-    nopt "^5.0.0"
+jquery@3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
+  integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
 
-js-cookie@^2.1.3:
+js-cookie@2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
   integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==
 
 "js-sequence-diagrams@git+https://github.com/hedgedoc/js-sequence-diagrams.git":
   version "2.0.1"
+  uid bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39
   resolved "git+https://github.com/hedgedoc/js-sequence-diagrams.git#bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39"
   dependencies:
     lodash "4.17.x"
@@ -5790,7 +5688,7 @@ js-tokens@^3.0.2:
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
   integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
 
-js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1, js-yaml@~3.14.0:
+js-yaml@3.14.1, js-yaml@^3.13.1, js-yaml@^3.6.1:
   version "3.14.1"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
   integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
@@ -5798,6 +5696,20 @@ js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1, js-yaml@~3.14.0:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
+js-yaml@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f"
+  integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==
+  dependencies:
+    argparse "^2.0.1"
+
+js-yaml@~4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
 jsbi@^3.1.1:
   version "3.1.4"
   resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.4.tgz#9654dd02207a66a4911b4e4bb74265bc2cbc9dd0"
@@ -5820,38 +5732,6 @@ jsdom-nogyp@^0.8.3:
     request "2.x"
     xmlhttprequest ">=1.5.0"
 
-jsdom@^11.9.0:
-  version "11.12.0"
-  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
-  integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==
-  dependencies:
-    abab "^2.0.0"
-    acorn "^5.5.3"
-    acorn-globals "^4.1.0"
-    array-equal "^1.0.0"
-    cssom ">= 0.3.2 < 0.4.0"
-    cssstyle "^1.0.0"
-    data-urls "^1.0.0"
-    domexception "^1.0.1"
-    escodegen "^1.9.1"
-    html-encoding-sniffer "^1.0.2"
-    left-pad "^1.3.0"
-    nwsapi "^2.0.7"
-    parse5 "4.0.0"
-    pn "^1.1.0"
-    request "^2.87.0"
-    request-promise-native "^1.0.5"
-    sax "^1.2.4"
-    symbol-tree "^3.2.2"
-    tough-cookie "^2.3.4"
-    w3c-hr-time "^1.0.1"
-    webidl-conversions "^4.0.2"
-    whatwg-encoding "^1.0.3"
-    whatwg-mimetype "^2.1.0"
-    whatwg-url "^6.4.1"
-    ws "^5.2.0"
-    xml-name-validator "^3.0.0"
-
 jsesc@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
@@ -5884,6 +5764,11 @@ json-schema-traverse@^0.4.1:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
 json-schema@0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@@ -5916,20 +5801,13 @@ json5@^1.0.1:
   dependencies:
     minimist "^1.2.0"
 
-json5@^2.0.0, json5@^2.1.2:
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
-  integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
+json5@^2.0.0, json5@^2.1.2, json5@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
   dependencies:
     minimist "^1.2.5"
 
-jsonfile@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
-  integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
-  optionalDependencies:
-    graceful-fs "^4.1.6"
-
 jsonlint@1.6.3:
   version "1.6.3"
   resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.3.tgz#cb5e31efc0b78291d0d862fbef05900adf212988"
@@ -5970,15 +5848,15 @@ jws@3.x.x:
     jwa "^1.4.1"
     safe-buffer "^5.0.1"
 
-keymaster@^1.6.2:
+keymaster@1.6.2:
   version "1.6.2"
   resolved "https://registry.yarnpkg.com/keymaster/-/keymaster-1.6.2.tgz#e1ae54d0ea9488f9f60b66b668f02e9a1946c6eb"
   integrity sha1-4a5U0OqUiPn2C2a2aPAumhlGxus=
 
 khroma@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.2.0.tgz#46dcc9d7533923c228b51724db108f11fec108d8"
-  integrity sha512-DlKk5y243dujy8fOH02aRnnewLfiHJV0s8aXaVrCohgBf3s7fEAn6gc6LLQ21agODlFZS8ufrn+juu70uCA9Tw==
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.4.1.tgz#ad6a5b6a972befc5112ce5129887a1a83af2c003"
+  integrity sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==
 
 kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
   version "3.2.2"
@@ -6004,6 +5882,11 @@ kind-of@^6.0.0, kind-of@^6.0.2:
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
   integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
 
+klona@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
+  integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
+
 kuler@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
@@ -6024,61 +5907,53 @@ lazystream@^1.0.0:
   dependencies:
     readable-stream "^2.0.5"
 
-ldap-filter@0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
-  integrity sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=
+ldap-filter@^0.3.3:
+  version "0.3.3"
+  resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.3.3.tgz#2b14c68a2a9d4104dbdbc910a1ca85fd189e9797"
+  integrity sha1-KxTGiiqdQQTb28kQocqF/Riel5c=
   dependencies:
-    assert-plus "0.1.5"
+    assert-plus "^1.0.0"
 
-ldapauth-fork@^4.3.2:
-  version "4.3.3"
-  resolved "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-4.3.3.tgz#d62c8f18a5035fd47a572f2ac7aa8c8227b3f4c2"
-  integrity sha512-x76VpQ5ZqkwAJmqwcD6KIwDiNEbgIGIPGwC/eA17e1dxWhlTx36w0DlLOFwjTuZ2iuaLTsZsUprlVqvSlwc/1Q==
+ldapauth-fork@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-5.0.1.tgz#18779a9c30371c5bbea02e3b6aaadb60819ad29c"
+  integrity sha512-EdELQz8zgPruqV2y88PAuAiZCgTaMjex/kEA2PIcOlPYFt75C9QFt5HGZKVQo8Sf/3Mwnr1AtiThHKcq+pRtEg==
   dependencies:
-    "@types/ldapjs" "^1.0.0"
-    "@types/node" "*"
+    "@types/ldapjs" "^1.0.9"
     bcryptjs "^2.4.0"
-    ldapjs "^1.0.2"
-    lru-cache "^5.1.1"
+    ldapjs "^2.2.1"
+    lru-cache "^6.0.0"
 
-ldapjs@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz#544ff7032b7b83c68f0701328d9297aa694340f9"
-  integrity sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=
+ldapjs@^2.2.1:
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/ldapjs/-/ldapjs-2.2.4.tgz#d4e3f4ae2277b6e760a83ebd61f7f5c4097c446b"
+  integrity sha512-OoeAXPNPPt4D6qva2/p6rkCIHknyYFd42Vp8JhSazBs9BbkEBmoajzj2F0ElD3vR+yAuzIVCjqh1W4uR8dfn0A==
   dependencies:
-    asn1 "0.2.3"
+    abstract-logging "^2.0.0"
+    asn1 "^0.2.4"
     assert-plus "^1.0.0"
     backoff "^2.5.0"
-    bunyan "^1.8.3"
-    dashdash "^1.14.0"
-    ldap-filter "0.2.2"
+    ldap-filter "^0.3.3"
     once "^1.4.0"
-    vasync "^1.6.4"
+    vasync "^2.2.0"
     verror "^1.8.1"
-  optionalDependencies:
-    dtrace-provider "~0.8"
-
-left-pad@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
-  integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
 
-less-loader@5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466"
-  integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==
+less-loader@7.3.0:
+  version "7.3.0"
+  resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-7.3.0.tgz#f9d6d36d18739d642067a05fb5bd70c8c61317e5"
+  integrity sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg==
   dependencies:
-    clone "^2.1.1"
-    loader-utils "^1.1.0"
-    pify "^4.0.1"
+    klona "^2.0.4"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
 
-less@3.13.1:
-  version "3.13.1"
-  resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909"
-  integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==
+less@4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/less/-/less-4.1.1.tgz#15bf253a9939791dc690888c3ff424f3e6c7edba"
+  integrity sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==
   dependencies:
     copy-anything "^2.0.1"
+    parse-node-version "^1.0.1"
     tslib "^1.10.0"
   optionalDependencies:
     errno "^0.1.1"
@@ -6086,16 +5961,16 @@ less@3.13.1:
     image-size "~0.5.0"
     make-dir "^2.1.0"
     mime "^1.4.1"
-    native-request "^1.0.5"
+    needle "^2.5.2"
     source-map "~0.6.0"
 
-levn@^0.3.0, levn@~0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
-  integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
   dependencies:
-    prelude-ls "~1.1.2"
-    type-check "~0.3.2"
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
 
 libnpmconfig@^1.0.0:
   version "1.2.1"
@@ -6111,17 +5986,17 @@ lines-and-columns@^1.1.6:
   resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
   integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
 
-linkify-it@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
-  integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==
+linkify-it@^3.0.1:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8"
+  integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==
   dependencies:
     uc.micro "^1.0.1"
 
-list.js@^1.5.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/list.js/-/list.js-1.5.0.tgz#a4cbfc8281ddefc02fdb2d30c8748bfae25fbcda"
-  integrity sha1-pMv8goHd78Av2y0wyHSL+uJfvNo=
+list.js@2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/list.js/-/list.js-2.3.1.tgz#48961989ffe52b0505e352f7a521f819f51df7e7"
+  integrity sha512-jnmm7DYpKtH3DxtO1E2VNCC9Gp7Wrp/FWA2JxQrZUhVJ2RCQBd57pCN6W5w6jpsfWZV0PCAbTX2NOPgyFeeZZg==
   dependencies:
     string-natural-compare "^2.0.2"
 
@@ -6148,7 +6023,7 @@ loader-runner@^2.4.0:
   resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
   integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
 
-loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+loader-utils@^1.0.2, loader-utils@^1.2.3:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
   integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -6189,6 +6064,13 @@ locate-path@^5.0.0:
   dependencies:
     p-locate "^4.1.0"
 
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+  dependencies:
+    p-locate "^5.0.0"
+
 lodash.assignin@^4.0.9:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"
@@ -6199,6 +6081,11 @@ lodash.bind@^4.1.4:
   resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
   integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=
 
+lodash.clonedeep@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
 lodash.defaults@^4.0.1, lodash.defaults@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
@@ -6224,6 +6111,11 @@ lodash.foreach@^4.3.0:
   resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
   integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
 
+lodash.get@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+  integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+
 lodash.isplainobject@^4.0.6:
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
@@ -6264,10 +6156,10 @@ lodash.some@^4.4.0:
   resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
   integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=
 
-lodash.sortby@^4.7.0:
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
-  integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+lodash.truncate@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
+  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
 
 lodash.union@^4.6.0:
   version "4.6.0"
@@ -6279,10 +6171,17 @@ lodash.uniq@^4.5.0:
   resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
   integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
 
-lodash@4.17.x, lodash@^4.14.2, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.17.5:
-  version "4.17.20"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
-  integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+lodash@4.17.x, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
+  integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
+  dependencies:
+    chalk "^4.0.0"
 
 logform@^2.2.0:
   version "2.2.0"
@@ -6300,7 +6199,7 @@ long@^4.0.0:
   resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
   integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
 
-longest-streak@^2.0.1:
+longest-streak@^2.0.0:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
   integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==
@@ -6324,7 +6223,7 @@ lower-case@^2.0.2:
   dependencies:
     tslib "^2.0.3"
 
-lru-cache@^4.1.3, lru-cache@^4.1.5:
+lru-cache@^4.1.3:
   version "4.1.5"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
   integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
@@ -6346,13 +6245,6 @@ lru-cache@^6.0.0:
   dependencies:
     yallist "^4.0.0"
 
-lru-queue@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
-  integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=
-  dependencies:
-    es5-ext "~0.10.2"
-
 lutim@^1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/lutim/-/lutim-1.0.3.tgz#3a29d0f2731eed7097f2d7367defeaa2ae45d820"
@@ -6363,6 +6255,7 @@ lutim@^1.0.2:
 
 "lz-string@git+https://github.com/hackmdio/lz-string.git":
   version "1.4.4"
+  uid efd1f64676264d6d8871b01f4f375fc6ef4f9022
   resolved "git+https://github.com/hackmdio/lz-string.git#efd1f64676264d6d8871b01f4f375fc6ef4f9022"
 
 make-dir@^1.0.0:
@@ -6412,23 +6305,18 @@ map-visit@^1.0.0:
     object-visit "^1.0.0"
 
 mariadb@^2.1.2:
-  version "2.5.2"
-  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.2.tgz#0046331541589a9c0405507d91d79bcc972b3f5e"
-  integrity sha512-SfaBl5/LiX2qJNNr7wCQvizVjtWxVm1CUWYKe+y4OMeyYMM6g0GhwX7/BbGtv/O3WthnGrM+Kj1imFnlescO0w==
+  version "2.5.3"
+  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.3.tgz#13a2267f7f1b572f9db997aaaa8c00f75d5a87e8"
+  integrity sha512-9ZbQ1zLqasLCQy6KDcPHtX7EUIMBlQ8p64gNR61+yfpCIWjPDji3aR56LvwbOz1QnQbVgYBOJ4J/pHoFN5MR+w==
   dependencies:
     "@types/geojson" "^7946.0.7"
-    "@types/node" "^14.14.7"
+    "@types/node" "^14.14.28"
     denque "^1.4.1"
     iconv-lite "^0.6.2"
     long "^4.0.0"
-    moment-timezone "^0.5.32"
+    moment-timezone "^0.5.33"
     please-upgrade-node "^3.2.0"
 
-markdown-escapes@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535"
-  integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==
-
 markdown-extensions@^1.1.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3"
@@ -6439,20 +6327,20 @@ markdown-it-abbr@^1.0.4:
   resolved "https://registry.yarnpkg.com/markdown-it-abbr/-/markdown-it-abbr-1.0.4.tgz#d66b5364521cbb3dd8aa59dadfba2fb6865c8fd8"
   integrity sha1-1mtTZFIcuz3Yqlna37ovtoZcj9g=
 
-markdown-it-container@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz#0019b43fd02eefece2f1960a2895fba81a404695"
-  integrity sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=
+markdown-it-container@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b"
+  integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==
 
 markdown-it-deflist@^2.0.1:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz#50d7a56b9544cd81252f7623bd785e28a8dcef5c"
   integrity sha512-3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==
 
-markdown-it-emoji@^1.3.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc"
-  integrity sha1-m+4OmpkKljupbfaYDE/dsF37Tcw=
+markdown-it-emoji@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz#3164ad4c009efd946e98274f7562ad611089a231"
+  integrity sha512-39j7/9vP/CPCKbEI44oV8yoPJTpvfeReTn/COgRhSpNrjWF3PfP/JUxxB0hxV6ynOY8KH8Y8aX9NMDdo6z+6YQ==
 
 markdown-it-footnote@^3.0.1:
   version "3.0.2"
@@ -6464,15 +6352,15 @@ markdown-it-imsize@^2.0.1:
   resolved "https://registry.yarnpkg.com/markdown-it-imsize/-/markdown-it-imsize-2.0.1.tgz#cca0427905d05338a247cb9ca9d968c5cddd5170"
   integrity sha1-zKBCeQXQUziiR8ucqdloxc3dUXA=
 
-markdown-it-ins@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/markdown-it-ins/-/markdown-it-ins-2.0.0.tgz#a5aa6a30f1e2f71e9497567cfdff40f1fde67483"
-  integrity sha1-papqMPHi9x6Ul1Z8/f9A8f3mdIM=
+markdown-it-ins@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/markdown-it-ins/-/markdown-it-ins-3.0.1.tgz#c09356b917cf1dbf73add0b275d67ab8c73d4b4d"
+  integrity sha512-32SSfZqSzqyAmmQ4SHvhxbFqSzPDqsZgMHDwxqPzp+v+t8RsmqsBZRG+RfRQskJko9PfKC2/oxyOs4Yg/CfiRw==
 
-markdown-it-mark@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/markdown-it-mark/-/markdown-it-mark-2.0.0.tgz#46a1aa947105aed8188978e0a016179e404f42c7"
-  integrity sha1-RqGqlHEFrtgYiXjgoBYXnkBPQsc=
+markdown-it-mark@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz#51257db58787d78aaf46dc13418d99a9f3f0ebd3"
+  integrity sha512-HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==
 
 markdown-it-mathjax@^2.0.0:
   version "2.0.0"
@@ -6494,28 +6382,21 @@ markdown-it-sup@^1.0.0:
   resolved "https://registry.yarnpkg.com/markdown-it-sup/-/markdown-it-sup-1.0.0.tgz#cb9c9ff91a5255ac08f3fd3d63286e15df0a1fc3"
   integrity sha1-y5yf+RpSVawI8/09YyhuFd8KH8M=
 
-markdown-it@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc"
-  integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==
+markdown-it@^12.0.0:
+  version "12.0.6"
+  resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.6.tgz#adcc8e5fe020af292ccbdf161fe84f1961516138"
+  integrity sha512-qv3sVLl4lMT96LLtR7xeRJX11OUFjsaD5oVat2/SNBIb21bJXwal2+SklcRbTwGwqWpWH/HRtYavOoJE+seL8w==
   dependencies:
-    argparse "^1.0.7"
-    entities "~2.0.0"
-    linkify-it "^2.0.0"
+    argparse "^2.0.1"
+    entities "~2.1.0"
+    linkify-it "^3.0.1"
     mdurl "^1.0.1"
     uc.micro "^1.0.5"
 
-markdown-table@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b"
-  integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==
-  dependencies:
-    repeat-string "^1.0.0"
-
-marked@~1.2.0:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/marked/-/marked-1.2.7.tgz#6e14b595581d2319cdcf033a24caaf41455a01fb"
-  integrity sha512-No11hFYcXr/zkBvL6qFmAp1z6BKY3zqLMHny/JN/ey+al7qwCM2+CMBL9BOgqMxZU36fz4cCWfn2poWIf7QRXA==
+marked@~2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.3.tgz#3551c4958c4da36897bda2a16812ef1399c8d6b0"
+  integrity sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA==
 
 math-interval-parser@^2.0.1:
   version "2.0.1"
@@ -6527,7 +6408,7 @@ math-random@^1.0.1:
   resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
   integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
 
-mathjax@^2.7.6:
+mathjax@2.7.9:
   version "2.7.9"
   resolved "https://registry.yarnpkg.com/mathjax/-/mathjax-2.7.9.tgz#d6b67955c173e7d719fcb2fc0288662884eb7d3d"
   integrity sha512-NOGEDTIM9+MrsqnjPEjVGNx4q0GQxqm61yQwSK+/5S59i26wId5IC5gNu9/bu8+CCVl5p9G2IHcAl/wJa+5+BQ==
@@ -6561,23 +6442,44 @@ mdast-comment-marker@^1.0.0:
   resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz#5ad2e42cfcc41b92a10c1421a98c288d7b447a6d"
   integrity sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==
 
-mdast-util-compact@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490"
-  integrity sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==
+mdast-util-from-markdown@^0.8.0:
+  version "0.8.5"
+  resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c"
+  integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==
   dependencies:
-    unist-util-visit "^2.0.0"
+    "@types/mdast" "^3.0.0"
+    mdast-util-to-string "^2.0.0"
+    micromark "~2.11.0"
+    parse-entities "^2.0.0"
+    unist-util-stringify-position "^2.0.0"
 
 mdast-util-heading-style@^1.0.2:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.6.tgz#6410418926fd5673d40f519406b35d17da10e3c5"
   integrity sha512-8ZuuegRqS0KESgjAGW8zTx4tJ3VNIiIaGFNEzFpRSAQBavVc7AvOo9I4g3crcZBfYisHs4seYh0rAVimO6HyOw==
 
+mdast-util-to-markdown@^0.6.0:
+  version "0.6.5"
+  resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe"
+  integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    longest-streak "^2.0.0"
+    mdast-util-to-string "^2.0.0"
+    parse-entities "^2.0.0"
+    repeat-string "^1.0.0"
+    zwitch "^1.0.0"
+
 mdast-util-to-string@^1.0.2:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527"
   integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==
 
+mdast-util-to-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b"
+  integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==
+
 mdn-data@2.0.14:
   version "2.0.14"
   resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
@@ -6598,20 +6500,6 @@ media-typer@0.3.0:
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
   integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
 
-memoizee@^0.4.14:
-  version "0.4.15"
-  resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72"
-  integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==
-  dependencies:
-    d "^1.0.1"
-    es5-ext "^0.10.53"
-    es6-weak-map "^2.0.3"
-    event-emitter "^0.3.5"
-    is-promise "^2.2.2"
-    lru-queue "^0.1.0"
-    next-tick "^1.1.0"
-    timers-ext "^0.1.7"
-
 memory-fs@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -6633,15 +6521,20 @@ merge-descriptors@1.0.1:
   resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
   integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
 
+merge-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
 merge2@^1.3.0:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
   integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
 
-mermaid@^8.5.1:
-  version "8.8.4"
-  resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.8.4.tgz#5ea699bcfa1ef848d78b2ce8efb1e0118f30d9f7"
-  integrity sha512-YPn35uEAIrOcsDPjCiKNXXBdO1Aoazsv2zTZjG4+oXa7+tTVUb5sI81NqaTYa47RnoH9Vl4waLlEEJfB8KM9VA==
+mermaid@8.10.1:
+  version "8.10.1"
+  resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.10.1.tgz#9573f702024e2173f4aa07d9b207d750507cf838"
+  integrity sha512-KxwKEJDKy303TQdz5TQMFb/4u+gUL21CefUMGOfuigDh9powcYaNmuJ5BkHmO0jB3Y1z2zlsuKvHZ2CusWH5+A==
   dependencies:
     "@braintree/sanitize-url" "^3.1.0"
     d3 "^5.7.0"
@@ -6676,17 +6569,18 @@ messageformat@^2.3.0:
 
 "meta-marked@git+https://github.com/hedgedoc/meta-marked":
   version "0.4.5"
-  resolved "git+https://github.com/hedgedoc/meta-marked#4fb5cb5a204969cc91e66eee92c0211188e69a2b"
+  uid "3002adae670a6de0a845f3da7a7223d458c20d76"
+  resolved "git+https://github.com/hedgedoc/meta-marked#3002adae670a6de0a845f3da7a7223d458c20d76"
   dependencies:
-    js-yaml "~3.14.0"
-    marked "~1.2.0"
+    js-yaml "~4.1.0"
+    marked "~2.0.0"
 
-method-override@^2.3.7:
-  version "2.3.10"
-  resolved "https://registry.yarnpkg.com/method-override/-/method-override-2.3.10.tgz#e3daf8d5dee10dd2dce7d4ae88d62bbee77476b4"
-  integrity sha1-49r41d7hDdLc59SuiNYrvud0drQ=
+method-override@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz#6ab0d5d574e3208f15b0c9cf45ab52000468d7a2"
+  integrity sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==
   dependencies:
-    debug "2.6.9"
+    debug "3.1.0"
     methods "~1.1.2"
     parseurl "~1.3.2"
     vary "~1.1.2"
@@ -6696,6 +6590,14 @@ methods@~1.1.1, methods@~1.1.2:
   resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
   integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
 
+micromark@~2.11.0:
+  version "2.11.4"
+  resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a"
+  integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==
+  dependencies:
+    debug "^4.0.0"
+    parse-entities "^2.0.0"
+
 micromatch@^2.1.5:
   version "2.3.11"
   resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
@@ -6715,7 +6617,7 @@ micromatch@^2.1.5:
     parse-glob "^3.0.4"
     regex-cache "^0.4.2"
 
-micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
+micromatch@^3.1.10, micromatch@^3.1.4:
   version "3.1.10"
   resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
   integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -6735,12 +6637,12 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
     to-regex "^3.0.2"
 
 micromatch@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
-  integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
   dependencies:
     braces "^3.0.1"
-    picomatch "^2.0.5"
+    picomatch "^2.2.3"
 
 miller-rabin@^4.0.0:
   version "4.0.1"
@@ -6750,17 +6652,17 @@ miller-rabin@^4.0.0:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-mime-db@1.45.0, "mime-db@>= 1.43.0 < 2":
-  version "1.45.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
-  integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
+mime-db@1.47.0, "mime-db@>= 1.43.0 < 2":
+  version "1.47.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
+  integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==
 
-mime-types@^2.1.12, mime-types@^2.1.14, mime-types@^2.1.3, mime-types@~2.1.19, mime-types@~2.1.24:
-  version "2.1.28"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
-  integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
+mime-types@^2.1.12, mime-types@^2.1.14, mime-types@^2.1.27, mime-types@^2.1.3, mime-types@~2.1.19, mime-types@~2.1.24:
+  version "2.1.30"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
+  integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==
   dependencies:
-    mime-db "1.45.0"
+    mime-db "1.47.0"
 
 mime@1.3.4:
   version "1.3.4"
@@ -6772,24 +6674,18 @@ mime@1.6.0, mime@^1.4.1:
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
-mime@^2.4.4:
-  version "2.4.7"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz#962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74"
-  integrity sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==
-
-mimic-fn@^1.0.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
-  integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+mimic-fn@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
 
-mini-css-extract-plugin@0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.12.0.tgz#ddeb74fd6304ca9f99c1db74acc7d5b507705454"
-  integrity sha512-z6PQCe9rd1XUwZ8gMaEVwwRyZlrYy8Ba1gRjFP5HcV51HkXX+XlwZ+a1iAYTjSYwgNBXoNR7mhx79mDpOn5fdw==
+mini-css-extract-plugin@1.6.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz#b4db2525af2624899ed64a23b0016e0036411893"
+  integrity sha512-nPFKI7NSy6uONUo9yn2hIfb9vyYvkFu95qki0e21DQ9uaqNKDP15DGpK0KnV6wDroWxPHtExrdEwx/yDQ8nVRw==
   dependencies:
-    loader-utils "^1.1.0"
-    normalize-url "1.9.1"
-    schema-utils "^1.0.0"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
     webpack-sources "^1.1.0"
 
 minify@^4.1.1:
@@ -6810,45 +6706,38 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
   integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
 
-minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
+minimalistic-crypto-utils@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
   integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
 
-"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4:
+minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@0.0.8:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
 minimist@^1.2.0, minimist@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
-minio@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/minio/-/minio-6.0.0.tgz#7e514d38eaacf2264556b232f1c2c063cc6ca7ba"
-  integrity sha1-flFNOOqs8iZFVrIy8cLAY8xsp7o=
+minio@^7.0.0:
+  version "7.0.18"
+  resolved "https://registry.yarnpkg.com/minio/-/minio-7.0.18.tgz#a2a6dae52a4dde9e35ed47cdf2accc21df4a512d"
+  integrity sha512-jVRjkw8A5Spf+ETY5OXQUcQckHriuUA3u2+MAcX36btLT8EytlOVivxIseXvyFf9cNn3dy5w1F1UyjMvHU+nqg==
   dependencies:
-    async "^1.5.2"
-    block-stream2 "^1.0.0"
-    concat-stream "^1.4.8"
-    es6-error "^2.0.2"
+    async "^3.1.0"
+    block-stream2 "^2.0.0"
+    es6-error "^4.1.1"
+    fast-xml-parser "^3.17.5"
     json-stream "^1.0.0"
-    lodash "^4.14.2"
+    lodash "^4.17.20"
     mime-types "^2.1.14"
     mkdirp "^0.5.1"
     querystring "0.2.0"
-    source-map-support "^0.4.12"
-    through2 "^0.6.5"
-    uuid "^3.1.0"
+    through2 "^3.0.1"
     xml "^1.0.0"
     xml2js "^0.4.15"
 
@@ -6927,14 +6816,7 @@ mixin-deep@^1.2.0:
     for-in "^1.0.2"
     is-extendable "^1.0.1"
 
-mkdirp@0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
-  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
-  dependencies:
-    minimist "0.0.8"
-
-mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
+"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
   version "0.5.5"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -6946,22 +6828,36 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
 
-mocha@5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6"
-  integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==
+mocha@8.4.0:
+  version "8.4.0"
+  resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff"
+  integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==
   dependencies:
+    "@ungap/promise-all-settled" "1.1.2"
+    ansi-colors "4.1.1"
     browser-stdout "1.3.1"
-    commander "2.15.1"
-    debug "3.1.0"
-    diff "3.5.0"
-    escape-string-regexp "1.0.5"
-    glob "7.1.2"
+    chokidar "3.5.1"
+    debug "4.3.1"
+    diff "5.0.0"
+    escape-string-regexp "4.0.0"
+    find-up "5.0.0"
+    glob "7.1.6"
     growl "1.10.5"
-    he "1.1.1"
+    he "1.2.0"
+    js-yaml "4.0.0"
+    log-symbols "4.0.0"
     minimatch "3.0.4"
-    mkdirp "0.5.1"
-    supports-color "5.4.0"
+    ms "2.1.3"
+    nanoid "3.1.20"
+    serialize-javascript "5.0.1"
+    strip-json-comments "3.1.1"
+    supports-color "8.1.1"
+    which "2.0.2"
+    wide-align "1.1.3"
+    workerpool "6.1.0"
+    yargs "16.2.0"
+    yargs-parser "20.2.4"
+    yargs-unparser "2.0.0"
 
 mock-require@3.0.3:
   version "3.0.3"
@@ -6976,14 +6872,14 @@ moment-mini@^2.22.1:
   resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.24.0.tgz#fa68d98f7fe93ae65bf1262f6abb5fb6983d8d18"
   integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==
 
-moment-timezone@^0.5.21, moment-timezone@^0.5.32:
-  version "0.5.32"
-  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.32.tgz#db7677cc3cc680fd30303ebd90b0da1ca0dfecc2"
-  integrity sha512-Z8QNyuQHQAmWucp8Knmgei8YNo28aLjJq6Ma+jy1ZSpSk5nyfRT8xgUbSQvD2+2UajISfenndwvFuH3NGS+nvA==
+moment-timezone@^0.5.21, moment-timezone@^0.5.33:
+  version "0.5.33"
+  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c"
+  integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==
   dependencies:
     moment ">= 2.9.0"
 
-"moment@>= 2.9.0", moment@^2.17.1, moment@^2.19.3, moment@^2.24.0:
+"moment@>= 2.9.0", moment@^2.17.1, moment@^2.24.0:
   version "2.29.1"
   resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
   integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
@@ -7026,29 +6922,15 @@ ms@2.1.2:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
-ms@^2.1.1:
+ms@2.1.3, ms@^2.1.1:
   version "2.1.3"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
   integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
 
 mustache@^4.0.1:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.1.0.tgz#8c1b042238a982d2eb2d30efc6c14296ae3f699d"
-  integrity sha512-0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ==
-
-mute-stream@0.0.7:
-  version "0.0.7"
-  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
-  integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
-
-mv@~2:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
-  integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=
-  dependencies:
-    mkdirp "~0.5.1"
-    ncp "~2.0.0"
-    rimraf "~2.4.0"
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
+  integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
 
 mysql2@^2.0.0:
   version "2.2.5"
@@ -7071,16 +6953,26 @@ named-placeholders@^1.1.2:
   dependencies:
     lru-cache "^4.1.3"
 
-nan@^2.12.1, nan@^2.14.0:
+nan@^2.12.1:
   version "2.14.2"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
   integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
 
+nanoid@3.1.20:
+  version "3.1.20"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
+  integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
+
 nanoid@^2.1.0:
   version "2.1.11"
   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
   integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==
 
+nanoid@^3.1.23:
+  version "3.1.23"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
+  integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
+
 nanomatch@^1.2.9:
   version "1.2.13"
   resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -7103,22 +6995,12 @@ native-duplexpair@^1.0.0:
   resolved "https://registry.yarnpkg.com/native-duplexpair/-/native-duplexpair-1.0.0.tgz#7899078e64bf3c8a3d732601b3d40ff05db58fa0"
   integrity sha1-eJkHjmS/PIo9cyYBs9QP8F21j6A=
 
-native-request@^1.0.5:
-  version "1.0.8"
-  resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb"
-  integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==
-
 natural-compare@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
 
-ncp@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
-  integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
-
-needle@^2.2.1:
+needle@^2.2.1, needle@^2.5.2:
   version "2.6.0"
   resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe"
   integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==
@@ -7137,21 +7019,6 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
 
-next-tick@1, next-tick@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
-  integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
-
-next-tick@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
-  integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
-
-nice-try@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
-  integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-
 no-case@^2.2.0:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
@@ -7167,10 +7034,15 @@ no-case@^3.0.4:
     lower-case "^2.0.2"
     tslib "^2.0.3"
 
-nocache@2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
-  integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
+node-addon-api@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239"
+  integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
+
+node-fetch@^2.6.1:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
+  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
 
 node-forge@^0.10.0:
   version "0.10.0"
@@ -7182,6 +7054,24 @@ node-gyp-build@^4.2.0:
   resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739"
   integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==
 
+node-gyp@3.x:
+  version "3.8.0"
+  resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
+  integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
+  dependencies:
+    fstream "^1.0.0"
+    glob "^7.0.3"
+    graceful-fs "^4.1.2"
+    mkdirp "^0.5.0"
+    nopt "2 || 3"
+    npmlog "0 || 1 || 2 || 3 || 4"
+    osenv "0"
+    request "^2.87.0"
+    rimraf "2"
+    semver "~5.3.0"
+    tar "^2.0.0"
+    which "1"
+
 node-libs-browser@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
@@ -7227,10 +7117,10 @@ node-pre-gyp@^0.11.0:
     semver "^5.3.0"
     tar "^4"
 
-node-releases@^1.1.69:
-  version "1.1.69"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6"
-  integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==
+node-releases@^1.1.71:
+  version "1.1.71"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
+  integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
 
 nomnom@^1.5.x:
   version "1.8.1"
@@ -7240,6 +7130,13 @@ nomnom@^1.5.x:
     chalk "~0.4.0"
     underscore "~1.6.0"
 
+"nopt@2 || 3":
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+  integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
+  dependencies:
+    abbrev "1"
+
 nopt@^4.0.1:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
@@ -7248,13 +7145,6 @@ nopt@^4.0.1:
     abbrev "1"
     osenv "^0.1.4"
 
-nopt@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88"
-  integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==
-  dependencies:
-    abbrev "1"
-
 normalize-package-data@^2.3.2:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -7277,25 +7167,15 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
 
-normalize-url@1.9.1:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
-  integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
-  dependencies:
-    object-assign "^4.0.1"
-    prepend-http "^1.0.0"
-    query-string "^4.1.0"
-    sort-keys "^1.0.0"
-
 normalize-url@^3.0.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
   integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
 
 npm-bundled@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
-  integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
+  integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
   dependencies:
     npm-normalize-package-bin "^1.0.1"
 
@@ -7313,7 +7193,14 @@ npm-packlist@^1.1.6:
     npm-bundled "^1.0.1"
     npm-normalize-package-bin "^1.0.1"
 
-npmlog@^4.0.2:
+npm-run-path@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+  dependencies:
+    path-key "^3.0.0"
+
+"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
   integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -7340,11 +7227,6 @@ nwmatcher@~1.3.1:
   resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
   integrity sha1-i6tIb/f6Pf0IZla76LFxFtNpLSo=
 
-nwsapi@^2.0.7:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
-  integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
-
 oauth-sign@~0.9.0:
   version "0.9.0"
   resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
@@ -7355,7 +7237,7 @@ oauth@0.9.x:
   resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1"
   integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE=
 
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4.1.0, object-assign@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -7369,17 +7251,17 @@ object-copy@^0.1.0:
     define-property "^0.2.5"
     kind-of "^3.0.3"
 
-object-inspect@^1.8.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
-  integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==
+object-inspect@^1.9.0:
+  version "1.10.3"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369"
+  integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==
 
-object-is@^1.0.1:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068"
-  integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==
+object-is@^1.1.4:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
+  integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
   dependencies:
-    call-bind "^1.0.0"
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
 
 object-keys@^1.0.12, object-keys@^1.1.1:
@@ -7394,7 +7276,7 @@ object-visit@^1.0.0:
   dependencies:
     isobject "^3.0.0"
 
-object.assign@^4.1.1:
+object.assign@^4.1.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
   integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
@@ -7405,13 +7287,13 @@ object.assign@^4.1.1:
     object-keys "^1.1.1"
 
 object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544"
-  integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7"
+  integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==
   dependencies:
-    call-bind "^1.0.0"
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.18.0-next.1"
+    es-abstract "^1.18.0-next.2"
 
 object.omit@^2.0.0:
   version "2.0.1"
@@ -7429,13 +7311,13 @@ object.pick@^1.3.0:
     isobject "^3.0.1"
 
 object.values@^1.1.0, object.values@^1.1.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731"
-  integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee"
+  integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==
   dependencies:
-    call-bind "^1.0.0"
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.18.0-next.1"
+    es-abstract "^1.18.0-next.2"
     has "^1.0.3"
 
 on-finished@~2.3.0:
@@ -7464,17 +7346,17 @@ one-time@^1.0.0:
   dependencies:
     fn.name "1.x.x"
 
-onetime@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
-  integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+onetime@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
   dependencies:
-    mimic-fn "^1.0.0"
+    mimic-fn "^2.1.0"
 
 openid@2.x.x:
-  version "2.0.7"
-  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.7.tgz#37bf50af2aa692623364c004de35d41fd399c6e4"
-  integrity sha512-xH6qaz/hS55rEX8xURz4HRUO96cpj821WY6UEG9rgcusZ8Jsq54jGWP1EMCjGvgngonw8vgSljM1i2OESv16Gw==
+  version "2.0.8"
+  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.8.tgz#e3a09b55641101156ad086971721a98d0723c547"
+  integrity sha512-ljI4GE6p4RYn9dLftlXw6TvlA+untAkoWBRpj4qIB4AJQWcDZ2lOVOJQ2tq346ok38mtGDBYRBvp3Q+AsuCBnQ==
   dependencies:
     request "^2.88.2"
 
@@ -7486,17 +7368,17 @@ optimize-css-assets-webpack-plugin@5.0.4:
     cssnano "^4.1.10"
     last-call-webpack-plugin "^3.0.0"
 
-optionator@^0.8.1, optionator@^0.8.2:
-  version "0.8.3"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
-  integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+optionator@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
   dependencies:
-    deep-is "~0.1.3"
-    fast-levenshtein "~2.0.6"
-    levn "~0.3.0"
-    prelude-ls "~1.1.2"
-    type-check "~0.3.2"
-    word-wrap "~1.2.3"
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+    word-wrap "^1.2.3"
 
 os-browserify@^0.3.0:
   version "0.3.0"
@@ -7508,12 +7390,12 @@ os-homedir@^1.0.0:
   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
   integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
 
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
+os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
   integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 
-osenv@^0.1.4:
+osenv@0, osenv@^0.1.4:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
   integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
@@ -7572,6 +7454,13 @@ p-locate@^4.1.0:
   dependencies:
     p-limit "^2.2.0"
 
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+  dependencies:
+    p-limit "^3.0.2"
+
 p-map@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
@@ -7679,24 +7568,19 @@ parse-json@^4.0.0:
     json-parse-better-errors "^1.0.1"
 
 parse-json@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
-  integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
   dependencies:
     "@babel/code-frame" "^7.0.0"
     error-ex "^1.3.1"
     json-parse-even-better-errors "^2.3.0"
     lines-and-columns "^1.1.6"
 
-parse-passwd@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
-  integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-
-parse5@4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
-  integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+parse-node-version@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
+  integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
 
 parseqs@0.0.6:
   version "0.0.6"
@@ -7734,10 +7618,10 @@ passport-dropbox-oauth2@^1.1.0:
     passport-oauth "^1.0.0"
     pkginfo "^0.2.3"
 
-passport-facebook@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/passport-facebook/-/passport-facebook-2.1.1.tgz#c39d0b52ae4d59163245a4e21a7b9b6321303311"
-  integrity sha1-w50LUq5NWRYyRaTiGnubYyEwMxE=
+passport-facebook@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/passport-facebook/-/passport-facebook-3.0.0.tgz#b16f7314128be55d020a2b75f574c194bd6d9805"
+  integrity sha512-K/qNzuFsFISYAyC1Nma4qgY/12V3RSLFdFVsPKXiKZt434wOvthFW1p7zKa1iQihQMRhaWorVE1o3Vi1o+ZgeQ==
   dependencies:
     passport-oauth2 "1.x.x"
 
@@ -7748,28 +7632,26 @@ passport-github@^1.1.0:
   dependencies:
     passport-oauth2 "1.x.x"
 
-passport-gitlab2@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/passport-gitlab2/-/passport-gitlab2-4.0.0.tgz#08de8b54d58cbe6f22f577f977f7874df3c26efb"
-  integrity sha512-C/8/L8piHwv57J6fY/MzsEJc8yCkgsyBSzMWxfTfEHRvCaTkD08vJ5b/txydKrWrRPl4MHuZfisFnKlZHmq4yw==
+passport-gitlab2@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/passport-gitlab2/-/passport-gitlab2-5.0.0.tgz#ea37e5285321c026a02671e87469cac28cce9b69"
+  integrity sha512-cXQMgM6JQx9wHVh7JLH30D8fplfwjsDwRz+zS0pqC8JS+4bNmc1J04NGp5g2M4yfwylH9kQRrMN98GxMw7q7cg==
   dependencies:
     passport-oauth2 "^1.4.0"
 
-passport-google-oauth20@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-1.0.0.tgz#3b960e8a1d70d1dbe794615c827c68c40392a5d0"
-  integrity sha1-O5YOih1w0dvnlGFcgnxoxAOSpdA=
+passport-google-oauth20@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef"
+  integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==
   dependencies:
     passport-oauth2 "1.x.x"
 
-passport-ldapauth@^2.0.0:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-2.1.4.tgz#2259e4e5d2d9c2b3d50a04f6640a941effda8da9"
-  integrity sha512-VeVL69ZK+cpJe0DKMSGuwcf7k+V4dr0U0Y7ZhXL785pcRb5gRA6qYZfIH+XTsAzwqTK9l0Dn3Ds4weOZ1jKkLQ==
+passport-ldapauth@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-3.0.1.tgz#1432e8469de18bd46b5b39a46a866b416c1ddded"
+  integrity sha512-TRRx3BHi8GC8MfCT9wmghjde/EGeKjll7zqHRRfGRxXbLcaDce2OftbQrFG7/AWaeFhR6zpZHtBQ/IkINdLVjQ==
   dependencies:
-    "@types/node" "*"
-    "@types/passport" "^1.0.0"
-    ldapauth-fork "^4.3.2"
+    ldapauth-fork "^5.0.1"
     passport-strategy "^1.0.0"
 
 passport-local@^1.0.0:
@@ -7807,18 +7689,18 @@ passport-oauth@^1.0.0:
     passport-oauth1 "1.x.x"
     passport-oauth2 "1.x.x"
 
-passport-saml@^1.0.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-1.5.0.tgz#4f22526b577987fb2304219c29e05d2172fca5cf"
-  integrity sha512-6f4bfnu/X2KNbuqshOryPap0g8BvhOrlt1qDtJdA44qzQXZ5QUMwaTmexAHIf96LTqPqQ91MzPvi5MGsOgTYTw==
+passport-saml@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-2.2.0.tgz#dbea6743cf06644cfb3f0d486e43d3c8812b150a"
+  integrity sha512-Qkr9WbhGY1AAAgslJ4yFn7ObQp/cLu2L1bubwXvl8vsvXQujPemKYhD3SwdilEIllZ/EPTlHgld+4wiPRYxd8Q==
   dependencies:
-    debug "^3.1.0"
+    debug "^4.3.1"
     passport-strategy "*"
-    xml-crypto "^2.0.0"
-    xml-encryption "1.2.1"
-    xml2js "0.4.x"
-    xmlbuilder "^11.0.0"
-    xmldom "0.1.x"
+    xml-crypto "^2.1.1"
+    xml-encryption "^1.2.3"
+    xml2js "^0.4.23"
+    xmlbuilder "^15.1.1"
+    xmldom "0.5.x"
 
 passport-strategy@*, passport-strategy@1.x.x, passport-strategy@^1.0.0:
   version "1.0.0"
@@ -7873,15 +7755,10 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
 
-path-is-inside@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-  integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
-
-path-key@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
-  integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+path-key@^3.0.0, path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
 
 path-parse@^1.0.6:
   version "1.0.6"
@@ -7911,9 +7788,9 @@ pause@0.0.1:
   integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
 
 pbkdf2@^3.0.3:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94"
-  integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
+  integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
   dependencies:
     create-hash "^1.1.2"
     create-hmac "^1.1.4"
@@ -7922,9 +7799,9 @@ pbkdf2@^3.0.3:
     sha.js "^2.4.8"
 
 pdfobject@^2.0.201604172:
-  version "2.2.4"
-  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.4.tgz#ccb3c191129298a471e9ccb59c88a3ee0b7c7530"
-  integrity sha512-r6Rw9CQWsrY6uqmKvlgFNoupmuRbSt9EsG0sZhSAy3cIk4WgOXyAVmebFSlLhqj6gA5NIEXL3lSEbwOOYfdUvw==
+  version "2.2.5"
+  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.5.tgz#3e79dae8925a68f60c79423f56737bfd2d7e8a0b"
+  integrity sha512-B301nc24w02BMqrJoDOUBGRfHBqGtLztsdUyyhYsZaxD3R1DyNKtkDcilo+A4FYSW82k/LXAiXVREkYoqU2G4g==
 
 peek-readable@^3.1.3:
   version "3.1.3"
@@ -7936,10 +7813,10 @@ performance-now@^2.1.0:
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
   integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
 
-pg-connection-string@^2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10"
-  integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==
+pg-connection-string@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34"
+  integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==
 
 pg-hstore@^2.3.3:
   version "2.3.3"
@@ -7953,15 +7830,15 @@ pg-int8@1.0.1:
   resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
   integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
 
-pg-pool@^3.2.2:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.2.tgz#a560e433443ed4ad946b84d774b3f22452694dff"
-  integrity sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==
+pg-pool@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.3.0.tgz#12d5c7f65ea18a6e99ca9811bd18129071e562fc"
+  integrity sha512-0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg==
 
-pg-protocol@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.4.0.tgz#43a71a92f6fe3ac559952555aa3335c8cb4908be"
-  integrity sha512-El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==
+pg-protocol@^1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0"
+  integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==
 
 pg-types@^2.1.0:
   version "2.2.0"
@@ -7975,15 +7852,15 @@ pg-types@^2.1.0:
     postgres-interval "^1.1.0"
 
 pg@^8.2.1:
-  version "8.5.1"
-  resolved "https://registry.yarnpkg.com/pg/-/pg-8.5.1.tgz#34dcb15f6db4a29c702bf5031ef2e1e25a06a120"
-  integrity sha512-9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==
+  version "8.6.0"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.6.0.tgz#e222296b0b079b280cce106ea991703335487db2"
+  integrity sha512-qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ==
   dependencies:
     buffer-writer "2.0.0"
     packet-reader "1.0.0"
-    pg-connection-string "^2.4.0"
-    pg-pool "^3.2.2"
-    pg-protocol "^1.4.0"
+    pg-connection-string "^2.5.0"
+    pg-pool "^3.3.0"
+    pg-protocol "^1.5.0"
     pg-types "^2.1.0"
     pgpass "1.x"
 
@@ -7994,10 +7871,10 @@ pgpass@1.x:
   dependencies:
     split2 "^3.1.1"
 
-picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
-  integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+  version "2.2.3"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
+  integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==
 
 pify@^2.0.0:
   version "2.3.0"
@@ -8028,7 +7905,7 @@ pkg-dir@^3.0.0:
   dependencies:
     find-up "^3.0.0"
 
-pkg-dir@^4.1.0:
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
   integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
@@ -8040,6 +7917,11 @@ pkginfo@^0.2.3:
   resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.2.3.tgz#7239c42a5ef6c30b8f328439d9b9ff71042490f8"
   integrity sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg=
 
+pkginfo@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff"
+  integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=
+
 please-upgrade-node@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
@@ -8052,16 +7934,6 @@ pluralize@^8.0.0:
   resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"
   integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
 
-pn@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
-  integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
-
-pop-iterate@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/pop-iterate/-/pop-iterate-1.0.1.tgz#ceacfdab4abf353d7a0f2aaa2c1fc7b3f9413ba3"
-  integrity sha1-zqz9q0q/NT16DyqqLB/Hs/lBO6M=
-
 posix-character-classes@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -8185,38 +8057,33 @@ postcss-minify-selectors@^4.0.2:
     postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
 
-postcss-modules-extract-imports@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
-  integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
-  dependencies:
-    postcss "^7.0.5"
+postcss-modules-extract-imports@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
+  integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
 
-postcss-modules-local-by-default@^3.0.2:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"
-  integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==
+postcss-modules-local-by-default@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
+  integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
   dependencies:
-    icss-utils "^4.1.1"
-    postcss "^7.0.32"
+    icss-utils "^5.0.0"
     postcss-selector-parser "^6.0.2"
     postcss-value-parser "^4.1.0"
 
-postcss-modules-scope@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
-  integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
+postcss-modules-scope@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
+  integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==
   dependencies:
-    postcss "^7.0.6"
-    postcss-selector-parser "^6.0.0"
+    postcss-selector-parser "^6.0.4"
 
-postcss-modules-values@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
-  integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
+postcss-modules-values@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
+  integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
   dependencies:
-    icss-utils "^4.0.0"
-    postcss "^7.0.6"
+    icss-utils "^5.0.0"
 
 postcss-normalize-charset@^4.0.1:
   version "4.0.1"
@@ -8337,22 +8204,19 @@ postcss-selector-parser@^3.0.0:
     indexes-of "^1.0.1"
     uniq "^1.0.1"
 
-postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
-  version "6.0.4"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
-  integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
+postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
+  version "6.0.6"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
+  integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
   dependencies:
     cssesc "^3.0.0"
-    indexes-of "^1.0.1"
-    uniq "^1.0.1"
     util-deprecate "^1.0.2"
 
-postcss-svgo@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
-  integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==
+postcss-svgo@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
+  integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
   dependencies:
-    is-svg "^3.0.0"
     postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
     svgo "^1.0.0"
@@ -8376,7 +8240,7 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
   resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
   integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
 
-postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27:
   version "7.0.35"
   resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
   integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
@@ -8385,6 +8249,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.3
     source-map "^0.6.1"
     supports-color "^6.1.0"
 
+postcss@^8.2.10:
+  version "8.2.15"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65"
+  integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==
+  dependencies:
+    colorette "^1.2.2"
+    nanoid "^3.1.23"
+    source-map "^0.6.1"
+
 postgres-array@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
@@ -8412,15 +8285,10 @@ precond@0.2:
   resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
   integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=
 
-prelude-ls@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-  integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-
-prepend-http@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
-  integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
 
 preserve@^0.2.0:
   version "0.2.0"
@@ -8440,7 +8308,7 @@ printj@~1.1.0:
   resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"
   integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==
 
-prismjs@^1.21.0:
+prismjs@1.23.0:
   version "1.23.0"
   resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33"
   integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==
@@ -8472,16 +8340,30 @@ progress@^2.0.0:
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
+prom-client@^13.1.0:
+  version "13.1.0"
+  resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-13.1.0.tgz#1185caffd8691e28d32e373972e662964e3dba45"
+  integrity sha512-jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==
+  dependencies:
+    tdigest "^0.1.1"
+
+prometheus-api-metrics@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/prometheus-api-metrics/-/prometheus-api-metrics-3.2.0.tgz#3af90989271abb55b7e0405bdfcb161f403a361c"
+  integrity sha512-JekPhtIBLGX8HxD2EndvBsLU6ZQ1JVVqyHWVfm5CposUOqgBHXnUVFW6x5Ux2gykpdej/5LLM3dU9V8Ma7GfkA==
+  dependencies:
+    "@types/express" "^4.17.8"
+    "@types/express-serve-static-core" "^4.17.12"
+    "@types/koa" "^2.11.4"
+    debug "^3.2.6"
+    lodash.get "^4.4.2"
+    pkginfo "^0.4.1"
+
 promise-inflight@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
   integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
 
-proto-list@~1.2.1:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
-  integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
-
 proxy-addr@~2.0.5:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
@@ -8562,15 +8444,6 @@ q@^1.1.2, q@^1.5.1:
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
   integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
 
-q@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/q/-/q-2.0.3.tgz#75b8db0255a1a5af82f58c3f3aaa1efec7d0d134"
-  integrity sha1-dbjbAlWhpa+C9Yw/Oqoe/sfQ0TQ=
-  dependencies:
-    asap "^2.0.0"
-    pop-iterate "^1.0.1"
-    weak-map "^1.0.5"
-
 qs@2.3.3:
   version "2.3.3"
   resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404"
@@ -8586,14 +8459,6 @@ qs@~6.5.2:
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
   integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
 
-query-string@^4.1.0:
-  version "4.3.4"
-  resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
-  integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
-  dependencies:
-    object-assign "^4.1.0"
-    strict-uri-encode "^1.0.0"
-
 querystring-es3@^0.2.0:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
@@ -8604,6 +8469,11 @@ querystring@0.2.0:
   resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
   integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
 
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
 random-bytes@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
@@ -8643,7 +8513,7 @@ range-parser@~1.2.1:
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
   integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
 
-raphael@2.3.0, raphael@2.3.x, raphael@^2.3.0:
+raphael@2.3.0, raphael@2.3.x:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89"
   integrity sha512-w2yIenZAQnp257XUWGni4bLMVxpUpcIl7qgxEgDIXtmSypYtlNxfXWpOBxs7LBTps5sDwhRnrToJrMUrivqNTQ==
@@ -8692,7 +8562,7 @@ read-pkg@^2.0.0:
     normalize-package-data "^2.3.2"
     path-type "^2.0.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -8715,17 +8585,7 @@ readable-stream@1.0.27-1:
     isarray "0.0.1"
     string_decoder "~0.10.x"
 
-"readable-stream@>=1.0.33-1 <1.1.0-0":
-  version "1.0.34"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
-  integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.1"
-    isarray "0.0.1"
-    string_decoder "~0.10.x"
-
-readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
   version "3.6.0"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
   integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -8782,16 +8642,18 @@ readline-sync@^1.4.7:
   resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b"
   integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==
 
+rechoir@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca"
+  integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==
+  dependencies:
+    resolve "^1.9.0"
+
 reduce-component@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da"
   integrity sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo=
 
-referrer-policy@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e"
-  integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==
-
 regenerate@^1.2.1:
   version "1.4.2"
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
@@ -8831,18 +8693,18 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
 
-regexp.prototype.flags@^1.2.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
-  integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
+regexp.prototype.flags@^1.3.0:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
+  integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==
   dependencies:
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.17.0-next.1"
 
-regexpp@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
-  integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
+regexpp@^3.0.0, regexpp@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
+  integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
 
 regexpu-core@^2.0.0:
   version "2.0.0"
@@ -8870,13 +8732,13 @@ relateurl@^0.2.7:
   resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
   integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
 
-remark-cli@8.0.1:
-  version "8.0.1"
-  resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-8.0.1.tgz#093e9f27c1d56a591f4c44c017de5749d4e79a08"
-  integrity sha512-UaYeFI5qUAzkthUd8/MLBQD5OKM6jLN8GRvF6v+KF7xO/i1jQ+X2VqUSQAxWFYxZ8R25gM56GVjeoKOZ0EIr8A==
+remark-cli@9.0.0:
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-9.0.0.tgz#6f7951e7a72217535f2e32b7a6d3f638fe182f86"
+  integrity sha512-y6kCXdwZoMoh0Wo4Och1tDW50PmMc86gW6GpF08v9d+xUCEJE2wwXdQ+TnTaUamRnfFdU+fE+eNf2PJ53cyq8g==
   dependencies:
     markdown-extensions "^1.1.0"
-    remark "^12.0.0"
+    remark "^13.0.0"
     unified-args "^8.0.0"
 
 remark-lint-blockquote-indentation@^2.0.0:
@@ -9030,10 +8892,10 @@ remark-lint-list-item-indent@^2.0.0:
     unist-util-position "^3.0.0"
     unist-util-visit "^2.0.0"
 
-remark-lint-list-item-spacing@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-2.0.1.tgz#864ddda464d5cd11f725c83f00bb240538661d50"
-  integrity sha512-T/aRHRNxiLC0v8gsb5ljFpjm/j/nHvlbCcmE5q7+LCiKLWsv7JoERrmMyx89KaBudLRPhaFHqt6u+dfWYmj6LA==
+remark-lint-list-item-spacing@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-3.0.0.tgz#14c18fe8c0f19231edb5cf94abda748bb773110b"
+  integrity sha512-SRUVonwdN3GOSFb6oIYs4IfJxIVR+rD0nynkX66qEO49/qDDT1PPvkndis6Nyew5+t+2V/Db9vqllL6SWbnEtw==
   dependencies:
     unified-lint-rule "^1.0.0"
     unist-util-generated "^1.1.0"
@@ -9071,21 +8933,21 @@ remark-lint-no-auto-link-without-protocol@^2.0.0:
     unist-util-position "^3.0.0"
     unist-util-visit "^2.0.0"
 
-remark-lint-no-blockquote-without-marker@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-3.0.1.tgz#fb1d5a87ee6f21b731bb2ee52df55632c519a5eb"
-  integrity sha512-sM953+u0zN90SGd2V5hWcFbacbpaROUslS5Q5F7/aa66/2rAwh6zVnrXc4pf7fFOpj7I9Xa8Aw+uB+3RJWwdrQ==
+remark-lint-no-blockquote-without-marker@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-4.0.0.tgz#856fb64dd038fa8fc27928163caa24a30ff4d790"
+  integrity sha512-Y59fMqdygRVFLk1gpx2Qhhaw5IKOR9T38Wf7pjR07bEFBGUNfcoNVIFMd1TCJfCPQxUyJzzSqfZz/KT7KdUuiQ==
   dependencies:
     unified-lint-rule "^1.0.0"
-    unist-util-generated "^1.1.0"
+    unist-util-generated "^1.0.0"
     unist-util-position "^3.0.0"
     unist-util-visit "^2.0.0"
     vfile-location "^3.0.0"
 
-remark-lint-no-consecutive-blank-lines@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-2.0.1.tgz#4163fa21619fe69325333f83eed8a933ed32e7ec"
-  integrity sha512-CP34b9AOaK1iD8FDplWvF9cJ318izoOaPXb2nb7smf/NdVHBI7joDzXcD4ojHOb3DTZuQcZ2bVv36vTPi/mv0Q==
+remark-lint-no-consecutive-blank-lines@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-3.0.0.tgz#c8fe11095b8f031a1406da273722bd4a9174bf41"
+  integrity sha512-kmzLlOLrapBKEngwYFTdCZDmeOaze6adFPB7G0EdymD9V1mpAlnneINuOshRLEDKK5fAhXKiZXxdGIaMPkiXrA==
   dependencies:
     pluralize "^8.0.0"
     unified-lint-rule "^1.0.0"
@@ -9159,10 +9021,10 @@ remark-lint-no-heading-punctuation@^2.0.0:
     unist-util-generated "^1.1.0"
     unist-util-visit "^2.0.0"
 
-remark-lint-no-inline-padding@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-2.0.1.tgz#630b546566d34bde87943da318a80fc7ff856f1f"
-  integrity sha512-a36UlPvRrLCgxjjG3YZA9VCDvLBcoBtGNyM04VeCPz+d9hHe+5Fs1C/jL+DRLCH7nff90jJ5C/9b8/LTwhjaWA==
+remark-lint-no-inline-padding@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-3.0.0.tgz#14c2722bcddc648297a54298107a922171faf6eb"
+  integrity sha512-3s9uW3Yux9RFC0xV81MQX3bsYs+UY7nPnRuMxeIxgcVwxQ4E/mTJd9QjXUwBhU9kdPtJ5AalngdmOW2Tgar8Cg==
   dependencies:
     mdast-util-to-string "^1.0.2"
     unified-lint-rule "^1.0.0"
@@ -9218,15 +9080,15 @@ remark-lint-no-shortcut-reference-link@^2.0.0:
     unist-util-generated "^1.1.0"
     unist-util-visit "^2.0.0"
 
-remark-lint-no-table-indentation@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-2.0.1.tgz#67ef344389fa40be9c6017835cf58ca417c417d0"
-  integrity sha512-PnqIyg5qf+QbaIfolxXpakk/MR1RxZ0EdhKgVqsaEwv8+fka1LZYu7QO+ZFmrT82gVzvjRqHJkmxTskC/VP30w==
+remark-lint-no-table-indentation@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-3.0.0.tgz#f3c3fc24375069ec8e510f43050600fb22436731"
+  integrity sha512-+l7GovI6T+3LhnTtz/SmSRyOb6Fxy6tmaObKHrwb/GAebI/4MhFS1LVo3vbiP/RpPYtyQoFbbuXI55hqBG4ibQ==
   dependencies:
     unified-lint-rule "^1.0.0"
-    unist-util-generated "^1.1.0"
     unist-util-position "^3.0.0"
     unist-util-visit "^2.0.0"
+    vfile-location "^3.0.0"
 
 remark-lint-ordered-list-marker-style@^2.0.0:
   version "2.0.1"
@@ -9268,10 +9130,10 @@ remark-lint-strong-marker@^2.0.0:
     unist-util-position "^3.0.0"
     unist-util-visit "^2.0.0"
 
-remark-lint-table-cell-padding@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-2.0.1.tgz#b1e557ec44e1a33beb45578e97bf9441149379f6"
-  integrity sha512-vytUq4O1cg9UBXyeduANqpVqlbZpEtpXe/hYdvAObWgp1Jr7l74Zcvm+pn/ouaCuAsrxDVWeTa5Mg3V4OByw4g==
+remark-lint-table-cell-padding@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-3.0.0.tgz#a769ba1999984ff5f90294fb6ccb8aead7e8a12f"
+  integrity sha512-sEKrbyFZPZpxI39R8/r+CwUrin9YtyRwVn0SQkNQEZWZcIpylK+bvoKIldvLIXQPob+ZxklL0GPVRzotQMwuWQ==
   dependencies:
     unified-lint-rule "^1.0.0"
     unist-util-generated "^1.1.0"
@@ -9288,10 +9150,10 @@ remark-lint-table-pipe-alignment@^2.0.0:
     unist-util-position "^3.0.0"
     unist-util-visit "^2.0.0"
 
-remark-lint-table-pipes@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-2.0.1.tgz#b8594394f65053a030e8a51baa8504e388139a19"
-  integrity sha512-ZdR9rj1BZYXHPXFk3Gnb4agwL+CtO/SojhHua4iRBx1WCQElCeZS3M9naRrE41+2QSNkKnytgGZJzyAlm2nFGQ==
+remark-lint-table-pipes@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-3.0.0.tgz#b30b055d594cae782667eec91c6c5b35928ab259"
+  integrity sha512-QPokSazEdl0Y8ayUV9UB0Ggn3Jos/RAQwIo0z1KDGnJlGDiF80Jc6iU9RgDNUOjlpQffSLIfSVxH5VVYF/K3uQ==
   dependencies:
     unified-lint-rule "^1.0.0"
     unist-util-generated "^1.1.0"
@@ -9308,10 +9170,10 @@ remark-lint-unordered-list-marker-style@^2.0.0:
     unist-util-position "^3.0.0"
     unist-util-visit "^2.0.0"
 
-remark-lint@^7.0.0:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-7.0.1.tgz#665a5cbea9f7c95e64593f69bb6816ee8343ffdf"
-  integrity sha512-caZXo3qhuBxzvq9JSJFVQ/ERDq/6TJVgWn0KDwKOIJCGOuLXfQhby5XttUq+Rn7kLbNMtvwfWHJlte14LpaeXQ==
+remark-lint@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-8.0.0.tgz#6e40894f4a39eaea31fc4dd45abfaba948bf9a09"
+  integrity sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==
   dependencies:
     remark-message-control "^6.0.0"
 
@@ -9323,34 +9185,19 @@ remark-message-control@^6.0.0:
     mdast-comment-marker "^1.0.0"
     unified-message-control "^3.0.0"
 
-remark-parse@^8.0.0:
-  version "8.0.3"
-  resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1"
-  integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==
+remark-parse@^9.0.0:
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640"
+  integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==
   dependencies:
-    ccount "^1.0.0"
-    collapse-white-space "^1.0.2"
-    is-alphabetical "^1.0.0"
-    is-decimal "^1.0.0"
-    is-whitespace-character "^1.0.0"
-    is-word-character "^1.0.0"
-    markdown-escapes "^1.0.0"
-    parse-entities "^2.0.0"
-    repeat-string "^1.5.4"
-    state-toggle "^1.0.0"
-    trim "0.0.1"
-    trim-trailing-lines "^1.0.0"
-    unherit "^1.0.4"
-    unist-util-remove-position "^2.0.0"
-    vfile-location "^3.0.0"
-    xtend "^4.0.1"
+    mdast-util-from-markdown "^0.8.0"
 
-remark-preset-lint-markdown-style-guide@3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-3.0.1.tgz#7f160e2ded777bfb14d544e9f72c6873bdfb6da3"
-  integrity sha512-1C4s6TtYCPueZIkxXK8aJ6qz84WqsxA7vA11i1PBIwJuL9a254X+QlbzhhEVKp0GwV4M/YTAVcfbGWVuiNEynw==
+remark-preset-lint-markdown-style-guide@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-4.0.0.tgz#976b6ffd7f37aa90868e081a69241fcde3a297d4"
+  integrity sha512-gczDlfZ28Fz0IN/oddy0AH4CiTu9S8d3pJWUsrnwFiafjhJjPGobGE1OD3bksi53md1Bp4K0fzo99YYfvB4Sjw==
   dependencies:
-    remark-lint "^7.0.0"
+    remark-lint "^8.0.0"
     remark-lint-blockquote-indentation "^2.0.0"
     remark-lint-code-block-style "^2.0.0"
     remark-lint-definition-case "^2.0.0"
@@ -9366,12 +9213,12 @@ remark-preset-lint-markdown-style-guide@3.0.1:
     remark-lint-link-title-style "^2.0.0"
     remark-lint-list-item-content-indent "^2.0.0"
     remark-lint-list-item-indent "^2.0.0"
-    remark-lint-list-item-spacing "^2.0.0"
+    remark-lint-list-item-spacing "^3.0.0"
     remark-lint-maximum-heading-length "^2.0.0"
     remark-lint-maximum-line-length "^2.0.0"
     remark-lint-no-auto-link-without-protocol "^2.0.0"
-    remark-lint-no-blockquote-without-marker "^3.0.0"
-    remark-lint-no-consecutive-blank-lines "^2.0.0"
+    remark-lint-no-blockquote-without-marker "^4.0.0"
+    remark-lint-no-consecutive-blank-lines "^3.0.0"
     remark-lint-no-duplicate-headings "^2.0.0"
     remark-lint-no-emphasis-as-heading "^2.0.0"
     remark-lint-no-file-name-articles "^1.0.0"
@@ -9380,50 +9227,37 @@ remark-preset-lint-markdown-style-guide@3.0.1:
     remark-lint-no-file-name-mixed-case "^1.0.0"
     remark-lint-no-file-name-outer-dashes "^1.0.0"
     remark-lint-no-heading-punctuation "^2.0.0"
-    remark-lint-no-inline-padding "^2.0.0"
+    remark-lint-no-inline-padding "^3.0.0"
     remark-lint-no-literal-urls "^2.0.0"
     remark-lint-no-multiple-toplevel-headings "^2.0.0"
     remark-lint-no-shell-dollars "^2.0.0"
     remark-lint-no-shortcut-reference-image "^2.0.0"
     remark-lint-no-shortcut-reference-link "^2.0.0"
-    remark-lint-no-table-indentation "^2.0.0"
+    remark-lint-no-table-indentation "^3.0.0"
     remark-lint-ordered-list-marker-style "^2.0.0"
     remark-lint-ordered-list-marker-value "^2.0.0"
     remark-lint-rule-style "^2.0.0"
     remark-lint-strong-marker "^2.0.0"
-    remark-lint-table-cell-padding "^2.0.0"
+    remark-lint-table-cell-padding "^3.0.0"
     remark-lint-table-pipe-alignment "^2.0.0"
-    remark-lint-table-pipes "^2.0.0"
+    remark-lint-table-pipes "^3.0.0"
     remark-lint-unordered-list-marker-style "^2.0.0"
 
-remark-stringify@^8.0.0:
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.1.tgz#e2a9dc7a7bf44e46a155ec78996db896780d8ce5"
-  integrity sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==
+remark-stringify@^9.0.0:
+  version "9.0.1"
+  resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894"
+  integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==
   dependencies:
-    ccount "^1.0.0"
-    is-alphanumeric "^1.0.0"
-    is-decimal "^1.0.0"
-    is-whitespace-character "^1.0.0"
-    longest-streak "^2.0.1"
-    markdown-escapes "^1.0.0"
-    markdown-table "^2.0.0"
-    mdast-util-compact "^2.0.0"
-    parse-entities "^2.0.0"
-    repeat-string "^1.5.4"
-    state-toggle "^1.0.0"
-    stringify-entities "^3.0.0"
-    unherit "^1.0.4"
-    xtend "^4.0.1"
+    mdast-util-to-markdown "^0.6.0"
 
-remark@^12.0.0:
-  version "12.0.1"
-  resolved "https://registry.yarnpkg.com/remark/-/remark-12.0.1.tgz#f1ddf68db7be71ca2bad0a33cd3678b86b9c709f"
-  integrity sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==
+remark@^13.0.0:
+  version "13.0.0"
+  resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425"
+  integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==
   dependencies:
-    remark-parse "^8.0.0"
-    remark-stringify "^8.0.0"
-    unified "^9.0.0"
+    remark-parse "^9.0.0"
+    remark-stringify "^9.0.0"
+    unified "^9.1.0"
 
 remove-trailing-separator@^1.0.1:
   version "1.1.0"
@@ -9442,11 +9276,11 @@ renderkid@^2.0.4:
     strip-ansi "^3.0.0"
 
 repeat-element@^1.1.2:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
-  integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
+  integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
 
-repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1:
+repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.6.1:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
   integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
@@ -9458,23 +9292,7 @@ repeating@^2.0.0:
   dependencies:
     is-finite "^1.0.0"
 
-request-promise-core@1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
-  integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
-  dependencies:
-    lodash "^4.17.19"
-
-request-promise-native@^1.0.5:
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
-  integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
-  dependencies:
-    request-promise-core "1.1.4"
-    stealthy-require "^1.1.1"
-    tough-cookie "^2.3.3"
-
-request@2.x, "request@>= 2.52.0", request@^2.83.0, request@^2.86.0, request@^2.87.0, request@^2.88.0, request@^2.88.2:
+request@2.x, "request@>= 2.52.0", request@^2.86.0, request@^2.87.0, request@^2.88.0, request@^2.88.2:
   version "2.88.2"
   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
   integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -9505,25 +9323,17 @@ require-directory@^2.1.1:
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
   integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
-require-main-filename@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
-  integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-
-resolve-cwd@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
-  integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
-  dependencies:
-    resolve-from "^3.0.0"
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
 
-resolve-dir@^1.0.0, resolve-dir@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
-  integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=
+resolve-cwd@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+  integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
   dependencies:
-    expand-tilde "^2.0.0"
-    global-modules "^1.0.0"
+    resolve-from "^5.0.0"
 
 resolve-from@^3.0.0:
   version "3.0.0"
@@ -9545,22 +9355,14 @@ resolve-url@^0.2.1:
   resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
   integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
 
-resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.5.0, resolve@^1.8.1:
-  version "1.19.0"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
-  integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
+resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.9.0:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
   dependencies:
-    is-core-module "^2.1.0"
+    is-core-module "^2.2.0"
     path-parse "^1.0.6"
 
-restore-cursor@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
-  integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
-  dependencies:
-    onetime "^2.0.0"
-    signal-exit "^3.0.2"
-
 ret@~0.1.10:
   version "0.1.15"
   resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
@@ -9578,7 +9380,7 @@ reusify@^1.0.4:
   resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
-reveal.js@^3.9.2:
+reveal.js@3.9.2:
   version "3.9.2"
   resolved "https://registry.yarnpkg.com/reveal.js/-/reveal.js-3.9.2.tgz#7f63d3dfec338b6c313dcabdf006e8cf80e0b358"
   integrity sha512-Dvv2oA9FrtOHE2DWj5js8pMRfwq++Wmvsn1EyAdYLC80lBjTphns+tPsB652Bnvep9AVviuVS/b4XoVY9rXHLA==
@@ -9593,14 +9395,7 @@ rgba-regex@^1.0.0:
   resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
   integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
 
-rimraf@2.6.3:
-  version "2.6.3"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
-  integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
-  dependencies:
-    glob "^7.1.3"
-
-rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1:
+rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
   integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -9614,13 +9409,6 @@ rimraf@^3.0.2:
   dependencies:
     glob "^7.1.3"
 
-rimraf@~2.4.0:
-  version "2.4.5"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
-  integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=
-  dependencies:
-    glob "^6.0.1"
-
 ripemd160@^2.0.0, ripemd160@^2.0.1:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
@@ -9629,15 +9417,12 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
     hash-base "^3.0.0"
     inherits "^2.0.1"
 
-run-async@^2.2.0:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
-  integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
-
 run-parallel@^1.1.9:
-  version "1.1.10"
-  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
-  integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
 
 run-queue@^1.0.0, run-queue@^1.0.3:
   version "1.0.3"
@@ -9651,13 +9436,6 @@ rw@1:
   resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4"
   integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
 
-rxjs@^6.4.0:
-  version "6.6.3"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552"
-  integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==
-  dependencies:
-    tslib "^1.9.0"
-
 safe-buffer@*, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
   version "5.2.1"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -9673,11 +9451,6 @@ safe-buffer@5.2.0:
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
 
-safe-json-stringify@~1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"
-  integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==
-
 safe-regex@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -9714,15 +9487,6 @@ schema-utils@^1.0.0:
     ajv-errors "^1.0.0"
     ajv-keywords "^3.1.0"
 
-schema-utils@^2.5.0, schema-utils@^2.7.0:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
-  integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
-  dependencies:
-    "@types/json-schema" "^7.0.5"
-    ajv "^6.12.4"
-    ajv-keywords "^3.5.2"
-
 schema-utils@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef"
@@ -9739,17 +9503,12 @@ script-loader@0.7.2:
   dependencies:
     raw-loader "~0.5.1"
 
-scrypt-async@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/scrypt-async/-/scrypt-async-2.0.1.tgz#4318dae48a8b7cc3b8fe05f75f4164a7d973d25d"
-  integrity sha512-wHR032jldwZNy7Tzrfu7RccOgGf8r5hyDMSP2uV6DpLiBUsR8JsDcx/in73o2UGVVrH5ivRFdNsFPcjtl3LErQ==
-
 scrypt-kdf@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/scrypt-kdf/-/scrypt-kdf-2.0.1.tgz#3355224c52d398331b2cbf2b70a7be26b52c53e6"
   integrity sha512-dMhpgBVJPDWZP5erOCwTjI6oAO9hKhFAjZsdSQ0spaWJYHuA/wFNF2weQQfsyCIk8eNKoLfEDxr3zAtM+gZo0Q==
 
-select2@^3.5.2-browserify:
+select2@3.5.2-browserify:
   version "3.5.2-browserify"
   resolved "https://registry.yarnpkg.com/select2/-/select2-3.5.2-browserify.tgz#dc4dafda38d67a734e8a97a46f0d3529ae05391d"
   integrity sha1-3E2v2jjWenNOipekbw01Ka4FOR0=
@@ -9764,16 +9523,28 @@ semver-compare@^1.0.0:
   resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
   integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
 
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.6.0:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
-semver@^6.0.0, semver@^6.3.0:
+semver@^6.0.0, semver@^6.1.0, semver@^6.3.0:
   version "6.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 
+semver@^7.2.1, semver@^7.3.5:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+  dependencies:
+    lru-cache "^6.0.0"
+
+semver@~5.3.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+  integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
+
 send@0.17.1:
   version "0.17.1"
   resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
@@ -9798,29 +9569,15 @@ seq-queue@^0.0.5:
   resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e"
   integrity sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=
 
-sequelize-cli@^5.5.1:
-  version "5.5.1"
-  resolved "https://registry.yarnpkg.com/sequelize-cli/-/sequelize-cli-5.5.1.tgz#0b9c2fc04d082cc8ae0a8fe270b96bb606152bab"
-  integrity sha512-ZM4kUZvY3y14y+Rq3cYxGH7YDJz11jWHcN2p2x7rhAIemouu4CEXr5ebw30lzTBtyXV4j2kTO+nUjZOqzG7k+Q==
-  dependencies:
-    bluebird "^3.5.3"
-    cli-color "^1.4.0"
-    fs-extra "^7.0.1"
-    js-beautify "^1.8.8"
-    lodash "^4.17.5"
-    resolve "^1.5.0"
-    umzug "^2.1.0"
-    yargs "^13.1.0"
-
 sequelize-pool@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-2.3.0.tgz#64f1fe8744228172c474f530604b6133be64993d"
   integrity sha512-Ibz08vnXvkZ8LJTiUOxRcj1Ckdn7qafNZ2t59jYHMX1VIebTAOYefWdRYFt6z6+hy52WGthAHAoLc9hvk3onqA==
 
 sequelize@^5.21.1:
-  version "5.22.3"
-  resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.3.tgz#7e7a92ddd355d883c9eb11cdb106d874d0d2636f"
-  integrity sha512-+nxf4TzdrB+PRmoWhR05TP9ukLAurK7qtKcIFv5Vhxm5Z9v+d2PcTT6Ea3YAoIQVkZ47QlT9XWAIUevMT/3l8Q==
+  version "5.22.4"
+  resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.4.tgz#4dbd8a1a735e98150880d43a95d45e9f46d151fa"
+  integrity sha512-xFQQ38HPg7EyDRDA+NdzMSRWbo9m6Z/RxpjnkBl3ggyQG+jRrup48x0jaw4Ox42h56wFnXOBC2NZOkTJfZeWCw==
   dependencies:
     bluebird "^3.5.0"
     cls-bluebird "^2.1.0"
@@ -9838,6 +9595,13 @@ sequelize@^5.21.1:
     validator "^10.11.0"
     wkx "^0.4.8"
 
+serialize-javascript@5.0.1, serialize-javascript@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
+  integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
+  dependencies:
+    randombytes "^2.1.0"
+
 serialize-javascript@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
@@ -9845,13 +9609,6 @@ serialize-javascript@^4.0.0:
   dependencies:
     randombytes "^2.1.0"
 
-serialize-javascript@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
-  integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
-  dependencies:
-    randombytes "^2.1.0"
-
 serve-static@1.14.1:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
@@ -9862,7 +9619,7 @@ serve-static@1.14.1:
     parseurl "~1.3.3"
     send "0.17.1"
 
-set-blocking@^2.0.0, set-blocking@~2.0.0:
+set-blocking@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
   integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
@@ -9895,17 +9652,24 @@ sha.js@^2.4.0, sha.js@^2.4.8:
     inherits "^2.0.1"
     safe-buffer "^5.0.1"
 
-shebang-command@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
-  integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+shallow-clone@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+  integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
   dependencies:
-    shebang-regex "^1.0.0"
+    kind-of "^6.0.2"
 
-shebang-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-  integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
 shimmer@^1.1.0:
   version "1.2.1"
@@ -9919,12 +9683,16 @@ shortid@2.2.16:
   dependencies:
     nanoid "^2.1.0"
 
-sigmund@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
-  integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
+side-channel@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+  dependencies:
+    call-bind "^1.0.0"
+    get-intrinsic "^1.0.2"
+    object-inspect "^1.9.0"
 
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.0, signal-exit@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
   integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
@@ -9946,14 +9714,14 @@ slash@^3.0.0:
   resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
   integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
 
-slice-ansi@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
-  integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
   dependencies:
-    ansi-styles "^3.2.0"
-    astral-regex "^1.0.0"
-    is-fullwidth-code-point "^2.0.0"
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
 
 sliced@^1.0.1:
   version "1.0.1"
@@ -10002,7 +9770,7 @@ socket.io-adapter@~1.1.0:
   resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9"
   integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==
 
-socket.io-client@2.4.0, socket.io-client@^2.1.1:
+socket.io-client@2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35"
   integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==
@@ -10049,14 +9817,7 @@ socket.io@^2.1.1:
     socket.io-client "2.4.0"
     socket.io-parser "~3.4.0"
 
-sort-keys@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
-  integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0=
-  dependencies:
-    is-plain-obj "^1.0.0"
-
-source-list-map@^2.0.0:
+source-list-map@^2.0.0, source-list-map@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
   integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
@@ -10072,7 +9833,7 @@ source-map-resolve@^0.5.0:
     source-map-url "^0.4.0"
     urix "^0.1.0"
 
-source-map-support@^0.4.12, source-map-support@^0.4.15:
+source-map-support@^0.4.15:
   version "0.4.18"
   resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
   integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
@@ -10088,9 +9849,9 @@ source-map-support@~0.5.12:
     source-map "^0.6.0"
 
 source-map-url@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-  integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
 
 source-map@^0.5.6, source-map@^0.5.7:
   version "0.5.7"
@@ -10133,10 +9894,10 @@ spdx-license-ids@^3.0.0:
   resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65"
   integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==
 
-spin.js@^2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/spin.js/-/spin.js-2.3.2.tgz#6caa56d520673450fd5cfbc6971e6d0772c37a1a"
-  integrity sha1-bKpW1SBnNFD9XPvGlx5tB3LDeho=
+spin.js@4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/spin.js/-/spin.js-4.1.0.tgz#afcf12738fafd5f6aa0a385a5b4cec45c86a3555"
+  integrity sha512-WI8O1OdJlKjialIhB9Z5RfFFM4pI7Hohik76bB3N4Ep3N/vTDPZiRU8QeefyLbmpI5n2bFQXgticl2g+/KiKYA==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -10162,13 +9923,15 @@ sprintf-js@~1.0.2:
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
 
-sqlite3@^4.1.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.2.0.tgz#49026d665e9fc4f922e56fb9711ba5b4c85c4901"
-  integrity sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==
+sqlite3@^5.0.0:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.0.2.tgz#00924adcc001c17686e0a6643b6cbbc2d3965083"
+  integrity sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==
   dependencies:
-    nan "^2.12.1"
+    node-addon-api "^3.0.0"
     node-pre-gyp "^0.11.0"
+  optionalDependencies:
+    node-gyp "3.x"
 
 sqlstring@^2.3.2:
   version "2.3.2"
@@ -10191,16 +9954,16 @@ sshpk@^1.7.0:
     tweetnacl "~0.14.0"
 
 ssri@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
-  integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
+  integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
   dependencies:
     figgy-pudding "^3.5.1"
 
-ssri@^8.0.0:
-  version "8.0.0"
-  resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808"
-  integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==
+ssri@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
+  integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
   dependencies:
     minipass "^3.1.1"
 
@@ -10214,11 +9977,6 @@ stack-trace@0.0.x:
   resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
   integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
 
-state-toggle@^1.0.0:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe"
-  integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==
-
 static-extend@^0.1.1:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
@@ -10232,11 +9990,6 @@ static-extend@^0.1.1:
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
   integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
 
-stealthy-require@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
-  integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
-
 store@^2.0.12:
   version "2.0.12"
   resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593"
@@ -10274,11 +10027,6 @@ stream-shift@^1.0.0:
   resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
   integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
 
-strict-uri-encode@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
-  integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
-
 string-loader@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/string-loader/-/string-loader-0.0.1.tgz#496f3cccc990213e0dd5411499f9ac6a6a6f2ff8"
@@ -10298,7 +10046,7 @@ string-width@^1.0.1:
     is-fullwidth-code-point "^1.0.0"
     strip-ansi "^3.0.0"
 
-"string-width@^1.0.2 || 2", string-width@^2.1.0:
+"string-width@^1.0.2 || 2":
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
   integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -10306,38 +10054,29 @@ string-width@^1.0.1:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
-string-width@^3.0.0, string-width@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
-  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
-  dependencies:
-    emoji-regex "^7.0.1"
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^5.1.0"
-
-string-width@^4.0.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
-  integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
   dependencies:
     emoji-regex "^8.0.0"
     is-fullwidth-code-point "^3.0.0"
     strip-ansi "^6.0.0"
 
-string.prototype.trimend@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b"
-  integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==
+string.prototype.trimend@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
   dependencies:
-    call-bind "^1.0.0"
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
 
-string.prototype.trimstart@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa"
-  integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==
+string.prototype.trimstart@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
   dependencies:
-    call-bind "^1.0.0"
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
 
 string@^3.3.3:
@@ -10364,15 +10103,6 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-stringify-entities@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.1.0.tgz#b8d3feac256d9ffcc9fa1fefdcf3ca70576ee903"
-  integrity sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==
-  dependencies:
-    character-entities-html4 "^1.0.0"
-    character-entities-legacy "^1.0.0"
-    xtend "^4.0.0"
-
 strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
@@ -10387,13 +10117,6 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
-  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
-  dependencies:
-    ansi-regex "^4.1.0"
-
 strip-ansi@^6.0.0:
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
@@ -10411,7 +10134,22 @@ strip-bom@^3.0.0:
   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
   integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
 
-strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
+strip-comments@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
+  integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
+
+strip-final-newline@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+strip-json-comments@~2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
@@ -10456,12 +10194,12 @@ superagent@1.8.3:
     readable-stream "1.0.27-1"
     reduce-component "1.0.1"
 
-supports-color@5.4.0:
-  version "5.4.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
-  integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==
+supports-color@8.1.1:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
   dependencies:
-    has-flag "^3.0.0"
+    has-flag "^4.0.0"
 
 supports-color@^2.0.0:
   version "2.0.0"
@@ -10508,27 +10246,24 @@ svgo@^1.0.0:
     unquote "~1.1.1"
     util.promisify "~1.0.0"
 
-symbol-tree@^3.2.2:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
-  integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
-
-table@^5.2.3:
-  version "5.4.6"
-  resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
-  integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
-  dependencies:
-    ajv "^6.10.2"
-    lodash "^4.17.14"
-    slice-ansi "^2.1.0"
-    string-width "^3.0.0"
+table@^6.0.4:
+  version "6.7.0"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2"
+  integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw==
+  dependencies:
+    ajv "^8.0.1"
+    lodash.clonedeep "^4.5.0"
+    lodash.truncate "^4.4.2"
+    slice-ansi "^4.0.0"
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
 
 tapable@^1.0.0, tapable@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
   integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
 
-tar-stream@^2.1.4:
+tar-stream@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
   integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
@@ -10539,6 +10274,15 @@ tar-stream@^2.1.4:
     inherits "^2.0.3"
     readable-stream "^3.1.1"
 
+tar@^2.0.0:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40"
+  integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==
+  dependencies:
+    block-stream "*"
+    fstream "^1.0.12"
+    inherits "2"
+
 tar@^4:
   version "4.4.13"
   resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
@@ -10564,6 +10308,13 @@ tar@^6.0.2:
     mkdirp "^1.0.3"
     yallist "^4.0.0"
 
+tdigest@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021"
+  integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=
+  dependencies:
+    bintrees "1.0.1"
+
 tedious@^6.6.0:
   version "6.7.0"
   resolved "https://registry.yarnpkg.com/tedious/-/tedious-6.7.0.tgz#ad02365f16f9e0416b216e13d3f83c53addd42ca"
@@ -10615,14 +10366,6 @@ text-table@^0.2.0:
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
   integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
 
-through2@^0.6.5:
-  version "0.6.5"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
-  integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=
-  dependencies:
-    readable-stream ">=1.0.33-1 <1.1.0-0"
-    xtend ">=4.0.0 <4.1.0-0"
-
 through2@^2.0.0:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
@@ -10631,10 +10374,13 @@ through2@^2.0.0:
     readable-stream "~2.3.6"
     xtend "~4.0.1"
 
-through@^2.3.6:
-  version "2.3.8"
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+through2@^3.0.1:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4"
+  integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==
+  dependencies:
+    inherits "^2.0.4"
+    readable-stream "2 || 3"
 
 timers-browserify@^2.0.4:
   version "2.0.12"
@@ -10643,14 +10389,6 @@ timers-browserify@^2.0.4:
   dependencies:
     setimmediate "^1.0.4"
 
-timers-ext@^0.1.5, timers-ext@^0.1.7:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6"
-  integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==
-  dependencies:
-    es5-ext "~0.10.46"
-    next-tick "1"
-
 timsort@^0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
@@ -10661,13 +10399,6 @@ tiny-emitter@^2.0.0:
   resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
   integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
 
-tmp@^0.0.33:
-  version "0.0.33"
-  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
-  integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
-  dependencies:
-    os-tmpdir "~1.0.2"
-
 to-array@0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
@@ -10746,7 +10477,7 @@ toposort-class@^1.0.1:
   resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
   integrity sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=
 
-tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.4.3, tough-cookie@~2.5.0:
+tough-cookie@^2.4.3, tough-cookie@~2.5.0:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
   integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
@@ -10754,28 +10485,11 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.4.3, tough-cookie@~2.5
     psl "^1.1.28"
     punycode "^2.1.1"
 
-tr46@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
-  integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
-  dependencies:
-    punycode "^2.1.0"
-
 trim-right@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
   integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
 
-trim-trailing-lines@^1.0.0:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0"
-  integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==
-
-trim@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
-  integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0=
-
 triple-beam@^1.2.0, triple-beam@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
@@ -10806,15 +10520,15 @@ tsconfig-paths@^3.9.0:
     minimist "^1.2.0"
     strip-bom "^3.0.0"
 
-tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.2:
+tslib@^1.10.0, tslib@^1.9.2:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
   integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
 
-tslib@^2.0.3:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
-  integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
+tslib@^2.0.0, tslib@^2.0.3:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
+  integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
 
 tty-browserify@0.0.0:
   version "0.0.0"
@@ -10833,24 +10547,39 @@ tunnel@0.0.6:
   resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
   integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
 
-turndown@^5.0.1:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/turndown/-/turndown-5.0.3.tgz#a1350b66155d7891f10e451432170b0f7cd7449a"
-  integrity sha512-popfGXEiedpq6F5saRIAThKxq/bbEPVFnsDnUdjaDGIre9f3/OL9Yi/yPbPcZ7RYUDpekghr666bBfZPrwNnhQ==
+turndown@7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/turndown/-/turndown-7.0.0.tgz#19b2a6a2d1d700387a1e07665414e4af4fec5225"
+  integrity sha512-G1FfxfR0mUNMeGjszLYl3kxtopC4O9DRRiMlMDDVHvU1jaBkGFg4qxIyjIk2aiKLHyDyZvZyu4qBO2guuYBy3Q==
   dependencies:
-    jsdom "^11.9.0"
+    domino "^2.1.6"
 
 tweetnacl@^0.14.3, tweetnacl@~0.14.0:
   version "0.14.5"
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
   integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
 
-type-check@~0.3.2:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
-  integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
   dependencies:
-    prelude-ls "~1.1.2"
+    prelude-ls "^1.2.1"
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type-fest@^0.8.1:
+  version "0.8.1"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+  integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+type-fest@^1.0.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.1.1.tgz#210251e7f57357a1457269e6b34837fed067ac2c"
+  integrity sha512-RPDKc5KrIyKTP7Fk75LruUagqG6b+OTgXlCR2Z0aQDJFeIvL4/mhahSEtHmmVzXu4gmA0srkF/8FCH3WOWxTWA==
 
 type-is@~1.6.17, type-is@~1.6.18:
   version "1.6.18"
@@ -10860,16 +10589,6 @@ type-is@~1.6.17, type-is@~1.6.18:
     media-typer "0.3.0"
     mime-types "~2.1.24"
 
-type@^1.0.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
-  integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
-
-type@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f"
-  integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==
-
 typedarray-to-buffer@^3.1.5:
   version "3.1.5"
   resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
@@ -10888,9 +10607,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5:
   integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
 
 uglify-js@^3.1.4, uglify-js@^3.5.1:
-  version "3.12.4"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.4.tgz#93de48bb76bb3ec0fc36563f871ba46e2ee5c7ee"
-  integrity sha512-L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A==
+  version "3.13.6"
+  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.6.tgz#6815ac7fdd155d03c83e2362bb717e5b39b74013"
+  integrity sha512-rRprLwl8RVaS+Qvx3Wh5hPfPBn9++G6xkGlUupya0s5aDmNjI7z3lnRLB3u7sN4OmbB0pWgzhM9BEJyiWAwtAA==
 
 uid-safe@~2.1.5:
   version "2.1.5"
@@ -10904,22 +10623,32 @@ uid2@0.0.x:
   resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
   integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
 
-umzug@^2.1.0:
+umzug@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/umzug/-/umzug-2.3.0.tgz#0ef42b62df54e216b05dcaf627830a6a8b84a184"
   integrity sha512-Z274K+e8goZK8QJxmbRPhl89HPO1K+ORFtm6rySPhFKfKc5GHhqdzD0SGhSWHkzoXasqJuItdhorSvY7/Cgflw==
   dependencies:
     bluebird "^3.7.2"
 
+unbox-primitive@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
+  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+  dependencies:
+    function-bind "^1.1.1"
+    has-bigints "^1.0.1"
+    has-symbols "^1.0.2"
+    which-boxed-primitive "^1.0.2"
+
 underscore@1.11.x:
   version "1.11.0"
   resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.11.0.tgz#dd7c23a195db34267186044649870ff1bab5929e"
   integrity sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==
 
 "underscore@>= 1.3.1", underscore@^1.7.0:
-  version "1.12.0"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.0.tgz#4814940551fc80587cef7840d1ebb0f16453be97"
-  integrity sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
+  integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==
 
 underscore@~1.6.0:
   version "1.6.0"
@@ -10931,14 +10660,6 @@ underscore@~1.8.3:
   resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
   integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=
 
-unherit@^1.0.4:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22"
-  integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==
-  dependencies:
-    inherits "^2.0.0"
-    xtend "^4.0.0"
-
 unified-args@^8.0.0:
   version "8.1.0"
   resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-8.1.0.tgz#a27dbe996a49fbbf3d9f5c6a98008ab9b0ee6ae5"
@@ -10954,9 +10675,9 @@ unified-args@^8.0.0:
     unified-engine "^8.0.0"
 
 unified-engine@^8.0.0:
-  version "8.0.0"
-  resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-8.0.0.tgz#e3996ff6eaecc6ca3408af92b70e25691192d17d"
-  integrity sha512-vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-8.1.0.tgz#a846e11705fb8589d1250cd27500b56021d8a3e2"
+  integrity sha512-ptXTWUf9HZ2L9xto7tre+hSdSN7M9S0rypUpMAcFhiDYjrXLrND4If+8AZOtPFySKI/Zhfxf7GVAR34BqixDUA==
   dependencies:
     concat-stream "^2.0.0"
     debug "^4.0.0"
@@ -10984,17 +10705,17 @@ unified-lint-rule@^1.0.0:
     wrapped "^1.0.1"
 
 unified-message-control@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.2.tgz#efa316c97f39f6f54bc74a4cf35807e615694033"
-  integrity sha512-lhF8fKjDo2cIPx1re5X1QinqUonl+AN6F0XfEaab8w/hjqX7FZAhzu4P8g6pmYp09ld+HSWFwdRJj+Y8xD0q7Q==
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.3.tgz#d08c4564092a507668de71451a33c0d80e734bbd"
+  integrity sha512-oY5z2n8ugjpNHXOmcgrw0pQeJzavHS0VjPBP21tOcm7rc2C+5Q+kW9j5+gqtf8vfW/8sabbsK5+P+9QPwwEHDA==
   dependencies:
     unist-util-visit "^2.0.0"
     vfile-location "^3.0.0"
 
-unified@^9.0.0:
-  version "9.2.0"
-  resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8"
-  integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==
+unified@^9.1.0:
+  version "9.2.1"
+  resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.1.tgz#ae18d5674c114021bfdbdf73865ca60f410215a3"
+  integrity sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==
   dependencies:
     bail "^1.0.0"
     extend "^3.0.0"
@@ -11037,7 +10758,7 @@ unique-slug@^2.0.0:
   dependencies:
     imurmurhash "^0.1.4"
 
-unist-util-generated@^1.1.0:
+unist-util-generated@^1.0.0, unist-util-generated@^1.1.0:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b"
   integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==
@@ -11050,22 +10771,15 @@ unist-util-inspect@^5.0.0:
     is-empty "^1.0.0"
 
 unist-util-is@^4.0.0:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50"
-  integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797"
+  integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==
 
 unist-util-position@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47"
   integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==
 
-unist-util-remove-position@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc"
-  integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==
-  dependencies:
-    unist-util-visit "^2.0.0"
-
 unist-util-stringify-position@^2.0.0:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da"
@@ -11090,11 +10804,6 @@ unist-util-visit@^2.0.0:
     unist-util-is "^4.0.0"
     unist-util-visit-parents "^3.0.0"
 
-universalify@^0.1.0:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
-  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-
 unpipe@1.0.0, unpipe@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -11135,14 +10844,14 @@ urix@^0.1.0:
   resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
   integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
 
-url-loader@2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b"
-  integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==
+url-loader@4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2"
+  integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==
   dependencies:
-    loader-utils "^1.2.3"
-    mime "^2.4.4"
-    schema-utils "^2.5.0"
+    loader-utils "^2.0.0"
+    mime-types "^2.1.27"
+    schema-utils "^3.0.0"
 
 url@0.10.3:
   version "0.10.3"
@@ -11171,9 +10880,9 @@ user-home@^1.1.1:
   integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA=
 
 utf-8-validate@^5.0.1:
-  version "5.0.4"
-  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.4.tgz#72a1735983ddf7a05a43a9c6b67c5ce1c910f9b8"
-  integrity sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==
+  version "5.0.5"
+  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1"
+  integrity sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==
   dependencies:
     node-gyp-build "^4.2.0"
 
@@ -11234,10 +10943,15 @@ uuid@^3.0.0, uuid@^3.1.0, uuid@^3.2.1, uuid@^3.3.2, uuid@^3.3.3:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
   integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
 
-v8-compile-cache@^2.1.1:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
-  integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
+uuid@^8.0.0:
+  version "8.3.2"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
 
 v8flags@^2.1.1:
   version "2.1.1"
@@ -11254,11 +10968,16 @@ validate-npm-package-license@^3.0.1:
     spdx-correct "^3.0.0"
     spdx-expression-parse "^3.0.0"
 
-validator@^10.11.0, validator@^10.4.0:
+validator@^10.11.0:
   version "10.11.0"
   resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228"
   integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==
 
+validator@^13.0.0:
+  version "13.6.0"
+  resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059"
+  integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==
+
 validator@~9.4.1:
   version "9.4.1"
   resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
@@ -11269,14 +10988,14 @@ vary@~1.1.2:
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
-vasync@^1.6.4:
-  version "1.6.4"
-  resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f"
-  integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=
+vasync@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/vasync/-/vasync-2.2.0.tgz#cfde751860a15822db3b132bc59b116a4adaf01b"
+  integrity sha1-z951GGChWCLbOxMrxZsRakra8Bs=
   dependencies:
-    verror "1.6.0"
+    verror "1.10.0"
 
-velocity-animate@^1.4.0:
+velocity-animate@1.5.2:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105"
   integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==
@@ -11295,13 +11014,6 @@ verror@1.10.0, verror@^1.8.1:
     core-util-is "1.0.2"
     extsprintf "^1.2.0"
 
-verror@1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5"
-  integrity sha1-fROyex+swuLakEBetepuW90lLqU=
-  dependencies:
-    extsprintf "1.2.0"
-
 vfile-location@^3.0.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c"
@@ -11347,12 +11059,12 @@ vfile@^4.0.0:
     unist-util-stringify-position "^2.0.0"
     vfile-message "^2.0.0"
 
-visibilityjs@^1.2.4:
-  version "1.2.8"
-  resolved "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-1.2.8.tgz#4ccdcebdaef0b34fb89219ab8e10e39c3a7cbfd8"
-  integrity sha512-Y+aL3OUX88b+/VSmkmC2ApuLbf0grzbNLpCfIDSw3BzTU6PqcPsdgIOaw8b+eZoy+DdQqnVN3y/Evow9vQq9Ig==
+visibilityjs@2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-2.0.2.tgz#d7c466e922024bb6c413d2136d5567e71f5fdc2f"
+  integrity sha512-y5sN5oGvuXXcK6s8WupOymRcqEss7kusojpScRqkT+cTCIFjul+06uSMDPMByN9DIBv/sUUnvV8BplKjqelAfw==
 
-viz.js@^1.7.0:
+viz.js@1.8.2:
   version "1.8.2"
   resolved "https://registry.yarnpkg.com/viz.js/-/viz.js-1.8.2.tgz#d9cc04cd99f98ec986bf9054db76a6cbcdc5d97a"
   integrity sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==
@@ -11362,13 +11074,6 @@ vm-browserify@^1.0.1:
   resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
   integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
 
-w3c-hr-time@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
-  integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
-  dependencies:
-    browser-process-hrtime "^1.0.0"
-
 watchpack-chokidar2@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
@@ -11387,44 +11092,37 @@ watchpack@^1.7.4:
     chokidar "^3.4.1"
     watchpack-chokidar2 "^2.0.1"
 
-weak-map@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.5.tgz#79691584d98607f5070bd3b70a40e6bb22e401eb"
-  integrity sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=
-
 webfontloader@~1.6.x:
   version "1.6.28"
   resolved "https://registry.yarnpkg.com/webfontloader/-/webfontloader-1.6.28.tgz#db786129253cb6e8eae54c2fb05f870af6675bae"
   integrity sha1-23hhKSU8tujq5UwvsF+HCvZnW64=
 
-webidl-conversions@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
-  integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
-
-webpack-cli@3.3.12:
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a"
-  integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==
-  dependencies:
-    chalk "^2.4.2"
-    cross-spawn "^6.0.5"
-    enhanced-resolve "^4.1.1"
-    findup-sync "^3.0.0"
-    global-modules "^2.0.0"
-    import-local "^2.0.0"
-    interpret "^1.4.0"
-    loader-utils "^1.4.0"
-    supports-color "^6.1.0"
-    v8-compile-cache "^2.1.1"
-    yargs "^13.3.2"
-
-webpack-merge@4.2.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
-  integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
+webpack-cli@4.7.0:
+  version "4.7.0"
+  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz#3195a777f1f802ecda732f6c95d24c0004bc5a35"
+  integrity sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==
   dependencies:
-    lodash "^4.17.15"
+    "@discoveryjs/json-ext" "^0.5.0"
+    "@webpack-cli/configtest" "^1.0.3"
+    "@webpack-cli/info" "^1.2.4"
+    "@webpack-cli/serve" "^1.4.0"
+    colorette "^1.2.1"
+    commander "^7.0.0"
+    execa "^5.0.0"
+    fastest-levenshtein "^1.0.12"
+    import-local "^3.0.2"
+    interpret "^2.2.0"
+    rechoir "^0.7.0"
+    v8-compile-cache "^2.2.0"
+    webpack-merge "^5.7.3"
+
+webpack-merge@5.7.3, webpack-merge@^5.7.3:
+  version "5.7.3"
+  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213"
+  integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==
+  dependencies:
+    clone-deep "^4.0.1"
+    wildcard "^2.0.0"
 
 webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
   version "1.4.3"
@@ -11434,10 +11132,18 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-
     source-list-map "^2.0.0"
     source-map "~0.6.1"
 
-webpack@4.44.2:
-  version "4.44.2"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72"
-  integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==
+webpack-sources@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac"
+  integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==
+  dependencies:
+    source-list-map "^2.0.1"
+    source-map "^0.6.1"
+
+webpack@4.46.0:
+  version "4.46.0"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
+  integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
   dependencies:
     "@webassemblyjs/ast" "1.9.0"
     "@webassemblyjs/helper-module-context" "1.9.0"
@@ -11447,7 +11153,7 @@ webpack@4.44.2:
     ajv "^6.10.2"
     ajv-keywords "^3.4.1"
     chrome-trace-event "^1.0.2"
-    enhanced-resolve "^4.3.0"
+    enhanced-resolve "^4.5.0"
     eslint-scope "^4.0.3"
     json-parse-better-errors "^1.0.2"
     loader-runner "^2.4.0"
@@ -11463,55 +11169,66 @@ webpack@4.44.2:
     watchpack "^1.7.4"
     webpack-sources "^1.4.1"
 
-whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
-  integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
+which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
   dependencies:
-    iconv-lite "0.4.24"
-
-whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
-  integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
+    is-bigint "^1.0.1"
+    is-boolean-object "^1.1.0"
+    is-number-object "^1.0.4"
+    is-string "^1.0.5"
+    is-symbol "^1.0.3"
 
-whatwg-url@^6.4.1:
-  version "6.5.0"
-  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
-  integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==
+which-collection@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
+  integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
   dependencies:
-    lodash.sortby "^4.7.0"
-    tr46 "^1.0.1"
-    webidl-conversions "^4.0.2"
+    is-map "^2.0.1"
+    is-set "^2.0.1"
+    is-weakmap "^2.0.1"
+    is-weakset "^2.0.1"
 
-whatwg-url@^7.0.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
-  integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+which-typed-array@^1.1.2:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff"
+  integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==
   dependencies:
-    lodash.sortby "^4.7.0"
-    tr46 "^1.0.1"
-    webidl-conversions "^4.0.2"
-
-which-module@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+    available-typed-arrays "^1.0.2"
+    call-bind "^1.0.0"
+    es-abstract "^1.18.0-next.1"
+    foreach "^2.0.5"
+    function-bind "^1.1.1"
+    has-symbols "^1.0.1"
+    is-typed-array "^1.1.3"
 
-which@^1.2.14, which@^1.2.9, which@^1.3.1:
+which@1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
   integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
   dependencies:
     isexe "^2.0.0"
 
-wide-align@^1.1.0:
+which@2.0.2, which@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
+wide-align@1.1.3, wide-align@^1.1.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
   integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
   dependencies:
     string-width "^1.0.2 || 2"
 
+wildcard@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
+  integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
+
 winston-transport@^4.4.0:
   version "4.4.0"
   resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"
@@ -11542,7 +11259,7 @@ wkx@^0.4.8:
   dependencies:
     "@types/node" "*"
 
-word-wrap@~1.2.3:
+word-wrap@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
@@ -11559,14 +11276,19 @@ worker-farm@^1.7.0:
   dependencies:
     errno "~0.1.7"
 
-wrap-ansi@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
-  integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
+workerpool@6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b"
+  integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==
+
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
   dependencies:
-    ansi-styles "^3.2.0"
-    string-width "^3.0.0"
-    strip-ansi "^5.0.0"
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
 
 wrapped@^1.0.1:
   version "1.0.1"
@@ -11581,64 +11303,33 @@ wrappy@1:
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
 
-write@1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
-  integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
-  dependencies:
-    mkdirp "^0.5.1"
-
-ws@^5.2.0:
-  version "5.2.2"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
-  integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==
-  dependencies:
-    async-limiter "~1.0.0"
+ws@^7.4.4, ws@~7.4.2:
+  version "7.4.5"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1"
+  integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==
 
-ws@^6.0.0:
-  version "6.2.1"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
-  integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
-  dependencies:
-    async-limiter "~1.0.0"
-
-ws@~7.4.2:
-  version "7.4.2"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd"
-  integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==
-
-wurl@^2.5.3:
+wurl@2.5.4:
   version "2.5.4"
   resolved "https://registry.yarnpkg.com/wurl/-/wurl-2.5.4.tgz#6af35a6c623296c4a0c607c4651d01b8f4e3fdec"
   integrity sha512-Vuo550m5YbqRcM/69zz3jVNsCUvFTWLRYQcYvnqNWQ4d0Bjg7aoaofbcsPTe4rM9A2/4xjd8uIf9viIUV9EMXQ==
 
-x-xss-protection@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.3.0.tgz#3e3a8dd638da80421b0e9fff11a2dbe168f6d52c"
-  integrity sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==
-
-xml-crypto@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.0.0.tgz#54cd268ad9d31930afcf7092cbb664258ca9e826"
-  integrity sha512-/a04qr7RpONRZHOxROZ6iIHItdsQQjN3sj8lJkYDDss8tAkEaAs0VrFjb3tlhmS5snQru5lTs9/5ISSMdPDHlg==
+xml-crypto@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.1.2.tgz#501506d42e466f6cd908c5a03182217231b4e4b8"
+  integrity sha512-DBhZXtBjENtLwJmeJhLUBwUm9YWNjCRvAx6ESP4VJyM9PDuKqZu2Fp5Y5HKqcdJT7vV7eI25Z4UBMezji6QloQ==
   dependencies:
-    xmldom "0.1.27"
-    xpath "0.0.27"
+    xmldom "^0.6.0"
+    xpath "0.0.32"
 
-xml-encryption@1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.1.tgz#e6d18817c4309fd07ca7793cca93c3fd06745baa"
-  integrity sha512-hn5w3l5p2+nGjlmM0CAhMChDzVGhW+M37jH35Z+GJIipXbn9PUlAIRZ6I5Wm7ynlqZjFrMAr83d/CIp9VZJMTA==
+xml-encryption@^1.2.3:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.4.tgz#767d13f9ff2f979ff5657b93bd72aa729d34b66c"
+  integrity sha512-+4aSBIv/lwmv5PntfYsZyelOnCcyDmCt/MNxXUukRGlcWW8DObJ26obbVX3iXYRdqkLqbv3AKk8ntNCGKIq/UQ==
   dependencies:
     escape-html "^1.0.3"
     node-forge "^0.10.0"
-    xmldom "~0.1.15"
-    xpath "0.0.27"
-
-xml-name-validator@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
-  integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+    xmldom "~0.6.0"
+    xpath "0.0.32"
 
 xml2js@0.2.8:
   version "0.2.8"
@@ -11655,7 +11346,7 @@ xml2js@0.4.19:
     sax ">=0.6.0"
     xmlbuilder "~9.0.1"
 
-xml2js@0.4.x, xml2js@^0.4.15, xml2js@^0.4.19:
+xml2js@^0.4.15, xml2js@^0.4.19, xml2js@^0.4.23:
   version "0.4.23"
   resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
   integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
@@ -11668,35 +11359,40 @@ xml@^1.0.0:
   resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
   integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
 
-xmlbuilder@^11.0.0, xmlbuilder@~11.0.0:
-  version "11.0.1"
-  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
-  integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
+xmlbuilder@^15.1.1:
+  version "15.1.1"
+  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
+  integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
 
 xmlbuilder@^9.0.7, xmlbuilder@~9.0.1:
   version "9.0.7"
   resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
   integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
 
-xmldom@0.1.27:
-  version "0.1.27"
-  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
-  integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk=
+xmlbuilder@~11.0.0:
+  version "11.0.1"
+  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
+  integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
 
-xmldom@0.1.x, xmldom@~0.1.15:
+xmldom@0.1.x:
   version "0.1.31"
   resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
   integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
 
-"xmldom@>= 0.1.x":
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.4.0.tgz#8771e482a333af44587e30ce026f0998c23f3830"
-  integrity sha512-2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA==
+xmldom@0.5.x:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e"
+  integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==
 
-xmlhttprequest-ssl@~1.5.4:
-  version "1.5.5"
-  resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
-  integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
+"xmldom@>= 0.1.x", xmldom@^0.6.0, xmldom@~0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz#43a96ecb8beece991cef382c08397d82d4d0c46f"
+  integrity sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==
+
+xmlhttprequest-ssl@~1.6.2:
+  version "1.6.2"
+  resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.2.tgz#dd6899bfbcf684b554e393c30b13b9f3b001a7ee"
+  integrity sha512-tYOaldF/0BLfKuoA39QMwD4j2m8lq4DIncqj1yuNELX4vz9+z/ieG/vwmctjJce+boFHXstqhWnHSxc4W8f4qg==
 
 xmlhttprequest@>=1.5.0:
   version "1.8.0"
@@ -11708,20 +11404,20 @@ xpath.js@~1.1.0:
   resolved "https://registry.yarnpkg.com/xpath.js/-/xpath.js-1.1.0.tgz#3816a44ed4bb352091083d002a383dd5104a5ff1"
   integrity sha512-jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ==
 
-xpath@0.0.27:
-  version "0.0.27"
-  resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.27.tgz#dd3421fbdcc5646ac32c48531b4d7e9d0c2cfa92"
-  integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==
+xpath@0.0.32:
+  version "0.0.32"
+  resolved "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz#1b73d3351af736e17ec078d6da4b8175405c48af"
+  integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==
 
 xss@^1.0.3:
-  version "1.0.8"
-  resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.8.tgz#32feb87feb74b3dcd3d404b7a68ababf10700535"
-  integrity sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.9.tgz#3ffd565571ff60d2e40db7f3b80b4677bec770d2"
+  integrity sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==
   dependencies:
     commander "^2.20.3"
     cssfilter "0.0.10"
 
-"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
+xtend@^4.0.0, xtend@~4.0.1:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
   integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
@@ -11734,9 +11430,14 @@ xtraverse@0.1.x:
     xmldom "0.1.x"
 
 y18n@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
-  integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
+  integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
+
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
 
 yallist@^2.1.2:
   version "2.1.2"
@@ -11753,29 +11454,38 @@ yallist@^4.0.0:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
   integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
 
-yargs-parser@^13.1.2:
-  version "13.1.2"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
-  integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
+yargs-parser@20.2.4:
+  version "20.2.4"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
+  integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+
+yargs-parser@^20.2.2:
+  version "20.2.7"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
+  integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
+
+yargs-unparser@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
+  integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
   dependencies:
-    camelcase "^5.0.0"
-    decamelize "^1.2.0"
+    camelcase "^6.0.0"
+    decamelize "^4.0.0"
+    flat "^5.0.2"
+    is-plain-obj "^2.1.0"
 
-yargs@^13.1.0, yargs@^13.3.2:
-  version "13.3.2"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
-  integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
+yargs@16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
   dependencies:
-    cliui "^5.0.0"
-    find-up "^3.0.0"
-    get-caller-file "^2.0.1"
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
     require-directory "^2.1.1"
-    require-main-filename "^2.0.0"
-    set-blocking "^2.0.0"
-    string-width "^3.0.0"
-    which-module "^2.0.0"
-    y18n "^4.0.0"
-    yargs-parser "^13.1.2"
+    string-width "^4.2.0"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
 
 yeast@0.1.2:
   version "0.1.2"
@@ -11787,11 +11497,16 @@ yocto-queue@^0.1.0:
   resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
   integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
 
-zip-stream@^4.0.4:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.0.4.tgz#3a8f100b73afaa7d1ae9338d910b321dec77ff3a"
-  integrity sha512-a65wQ3h5gcQ/nQGWV1mSZCEzCML6EK/vyVPcrPNynySP1j3VBbQKh3nhC8CbORb+jfl2vXvh56Ul5odP1bAHqw==
+zip-stream@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79"
+  integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==
   dependencies:
     archiver-utils "^2.1.0"
-    compress-commons "^4.0.2"
+    compress-commons "^4.1.0"
     readable-stream "^3.6.0"
+
+zwitch@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"
+  integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==
diff --git a/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.nix b/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.nix
index e5184eb04b37..d18891f619fc 100644
--- a/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.nix
+++ b/nixpkgs/pkgs/servers/web-apps/hedgedoc/yarn.nix
@@ -2,6 +2,22 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
+      name = "_azure_abort_controller___abort_controller_1.0.4.tgz";
+      path = fetchurl {
+        name = "_azure_abort_controller___abort_controller_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.0.4.tgz";
+        sha1 = "fd3c4d46c8ed67aace42498c8e2270960250eafd";
+      };
+    }
+    {
+      name = "_azure_core_auth___core_auth_1.3.0.tgz";
+      path = fetchurl {
+        name = "_azure_core_auth___core_auth_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.0.tgz";
+        sha1 = "0d55517cf0650aefe755669aca8a2f3724fcf536";
+      };
+    }
+    {
       name = "_azure_ms_rest_azure_env___ms_rest_azure_env_1.1.2.tgz";
       path = fetchurl {
         name = "_azure_ms_rest_azure_env___ms_rest_azure_env_1.1.2.tgz";
@@ -10,11 +26,11 @@
       };
     }
     {
-      name = "_azure_ms_rest_js___ms_rest_js_1.9.1.tgz";
+      name = "_azure_ms_rest_js___ms_rest_js_1.11.2.tgz";
       path = fetchurl {
-        name = "_azure_ms_rest_js___ms_rest_js_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.9.1.tgz";
-        sha1 = "93aef111b00bfdcc470a6bcb4520a13b36f21788";
+        name = "_azure_ms_rest_js___ms_rest_js_1.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.11.2.tgz";
+        sha1 = "e83d512b102c302425da5ff03a6d76adf2aa4ae6";
       };
     }
     {
@@ -34,19 +50,27 @@
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
-        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha1 = "d26cad8a47c65286b15df1547319a5d0bcf27288";
+      };
+    }
+    {
+      name = "_babel_highlight___highlight_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_highlight___highlight_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha1 = "3197e375711ef6bf834e67d0daec88e4f46113cf";
       };
     }
     {
@@ -66,6 +90,22 @@
       };
     }
     {
+      name = "_discoveryjs_json_ext___json_ext_0.5.2.tgz";
+      path = fetchurl {
+        name = "_discoveryjs_json_ext___json_ext_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz";
+        sha1 = "8f03a22a04de437254e8ce8cc84ba39689288752";
+      };
+    }
+    {
+      name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
+      path = fetchurl {
+        name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz";
+        sha1 = "442763b88cecbe3ee0ec7ca6d6dd6168550cbf14";
+      };
+    }
+    {
       name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
       path = fetchurl {
         name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
@@ -90,11 +130,11 @@
       };
     }
     {
-      name = "_npmcli_move_file___move_file_1.1.0.tgz";
+      name = "_npmcli_move_file___move_file_1.1.2.tgz";
       path = fetchurl {
-        name = "_npmcli_move_file___move_file_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz";
-        sha1 = "4ef8a53d727b9e43facf35404caf55ebf92cfec8";
+        name = "_npmcli_move_file___move_file_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz";
+        sha1 = "1a82c3e372f7cae9253eb66d72543d6b8685c674";
       };
     }
     {
@@ -122,6 +162,14 @@
       };
     }
     {
+      name = "_types_accepts___accepts_1.3.5.tgz";
+      path = fetchurl {
+        name = "_types_accepts___accepts_1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz";
+        sha1 = "c34bec115cfc746e04fe5a059df4ce7e7b391575";
+      };
+    }
+    {
       name = "_types_anymatch___anymatch_1.3.1.tgz";
       path = fetchurl {
         name = "_types_anymatch___anymatch_1.3.1.tgz";
@@ -146,6 +194,22 @@
       };
     }
     {
+      name = "_types_content_disposition___content_disposition_0.5.3.tgz";
+      path = fetchurl {
+        name = "_types_content_disposition___content_disposition_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha1 = "0aa116701955c2faa0717fc69cd1596095e49d96";
+      };
+    }
+    {
+      name = "_types_cookies___cookies_0.7.6.tgz";
+      path = fetchurl {
+        name = "_types_cookies___cookies_0.7.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.6.tgz";
+        sha1 = "71212c5391a976d3bae57d4b09fac20fc6bda504";
+      };
+    }
+    {
       name = "_types_debug___debug_4.1.5.tgz";
       path = fetchurl {
         name = "_types_debug___debug_4.1.5.tgz";
@@ -154,11 +218,11 @@
       };
     }
     {
-      name = "_types_express_serve_static_core___express_serve_static_core_4.17.18.tgz";
+      name = "_types_express_serve_static_core___express_serve_static_core_4.17.19.tgz";
       path = fetchurl {
-        name = "_types_express_serve_static_core___express_serve_static_core_4.17.18.tgz";
-        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz";
-        sha1 = "8371e260f40e0e1ca0c116a9afcd9426fa094c40";
+        name = "_types_express_serve_static_core___express_serve_static_core_4.17.19.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz";
+        sha1 = "00acfc1632e729acac4f1530e9e16f6dd1508a1d";
       };
     }
     {
@@ -186,11 +250,27 @@
       };
     }
     {
-      name = "_types_json_schema___json_schema_7.0.6.tgz";
+      name = "_types_http_assert___http_assert_1.5.1.tgz";
       path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz";
-        sha1 = "f4c7ec43e81b319a9815115031709f26987891f0";
+        name = "_types_http_assert___http_assert_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz";
+        sha1 = "d775e93630c2469c2f980fc27e3143240335db3b";
+      };
+    }
+    {
+      name = "_types_http_errors___http_errors_1.8.0.tgz";
+      path = fetchurl {
+        name = "_types_http_errors___http_errors_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz";
+        sha1 = "682477dbbbd07cd032731cb3b0e7eaee3d026b69";
+      };
+    }
+    {
+      name = "_types_json_schema___json_schema_7.0.7.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
       };
     }
     {
@@ -202,51 +282,83 @@
       };
     }
     {
-      name = "_types_ldapjs___ldapjs_1.0.9.tgz";
+      name = "_types_keygrip___keygrip_1.0.2.tgz";
       path = fetchurl {
-        name = "_types_ldapjs___ldapjs_1.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.9.tgz";
-        sha1 = "1224192d14cc5ab5218fcea72ebb04489c52cb95";
+        name = "_types_keygrip___keygrip_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz";
+        sha1 = "513abfd256d7ad0bf1ee1873606317b33b1b2a72";
       };
     }
     {
-      name = "_types_mime___mime_2.0.3.tgz";
+      name = "_types_koa_compose___koa_compose_3.2.5.tgz";
       path = fetchurl {
-        name = "_types_mime___mime_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz";
-        sha1 = "c893b73721db73699943bfc3653b1deb7faa4a3a";
+        name = "_types_koa_compose___koa_compose_3.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz";
+        sha1 = "85eb2e80ac50be95f37ccf8c407c09bbe3468e9d";
       };
     }
     {
-      name = "_types_node___node_14.14.21.tgz";
+      name = "_types_koa___koa_2.13.1.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.14.21.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.21.tgz";
-        sha1 = "d934aacc22424fe9622ebf6857370c052eae464e";
+        name = "_types_koa___koa_2.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.1.tgz";
+        sha1 = "e29877a6b5ad3744ab1024f6ec75b8cbf6ec45db";
       };
     }
     {
-      name = "_types_node___node_12.19.14.tgz";
+      name = "_types_ldapjs___ldapjs_1.0.10.tgz";
       path = fetchurl {
-        name = "_types_node___node_12.19.14.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.19.14.tgz";
-        sha1 = "59e5029a3c2aea34f68b717955381692fd47cafb";
+        name = "_types_ldapjs___ldapjs_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.10.tgz";
+        sha1 = "bac705c9e154b97d69496b5213cc28dbe9715a37";
       };
     }
     {
-      name = "_types_node___node_8.10.66.tgz";
+      name = "_types_mdast___mdast_3.0.3.tgz";
       path = fetchurl {
-        name = "_types_node___node_8.10.66.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz";
-        sha1 = "dd035d409df322acc83dff62a602f12a5783bbb3";
+        name = "_types_mdast___mdast_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz";
+        sha1 = "2d7d671b1cd1ea3deb306ea75036c2a0407d2deb";
+      };
+    }
+    {
+      name = "_types_mime___mime_1.3.2.tgz";
+      path = fetchurl {
+        name = "_types_mime___mime_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz";
+        sha1 = "93e25bf9ee75fe0fd80b594bc4feb0e862111b5a";
       };
     }
     {
-      name = "_types_passport___passport_1.0.5.tgz";
+      name = "_types_node___node_15.0.2.tgz";
       path = fetchurl {
-        name = "_types_passport___passport_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.5.tgz";
-        sha1 = "1ff54ec3e30fa6480c5e8b8de949c6dc40ddfa2a";
+        name = "_types_node___node_15.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz";
+        sha1 = "51e9c0920d1b45936ea04341aa3e2e58d339fb67";
+      };
+    }
+    {
+      name = "_types_node___node_12.20.12.tgz";
+      path = fetchurl {
+        name = "_types_node___node_12.20.12.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.20.12.tgz";
+        sha1 = "fd9c1c2cfab536a2383ed1ef70f94adea743a226";
+      };
+    }
+    {
+      name = "_types_node___node_14.14.44.tgz";
+      path = fetchurl {
+        name = "_types_node___node_14.14.44.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz";
+        sha1 = "df7503e6002847b834371c004b372529f3f85215";
+      };
+    }
+    {
+      name = "_types_node___node_8.10.66.tgz";
+      path = fetchurl {
+        name = "_types_node___node_8.10.66.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz";
+        sha1 = "dd035d409df322acc83dff62a602f12a5783bbb3";
       };
     }
     {
@@ -258,11 +370,11 @@
       };
     }
     {
-      name = "_types_qs___qs_6.9.5.tgz";
+      name = "_types_qs___qs_6.9.6.tgz";
       path = fetchurl {
-        name = "_types_qs___qs_6.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz";
-        sha1 = "434711bdd49eb5ee69d90c1d67c354a9a8ecb18b";
+        name = "_types_qs___qs_6.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz";
+        sha1 = "df9c3c8b31a247ec315e6996566be3171df4b3b1";
       };
     }
     {
@@ -282,11 +394,11 @@
       };
     }
     {
-      name = "_types_serve_static___serve_static_1.13.8.tgz";
+      name = "_types_serve_static___serve_static_1.13.9.tgz";
       path = fetchurl {
-        name = "_types_serve_static___serve_static_1.13.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz";
-        sha1 = "851129d434433c7082148574ffec263d58309c46";
+        name = "_types_serve_static___serve_static_1.13.9.tgz";
+        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.9.tgz";
+        sha1 = "aacf28a85a05ee29a11fb7c3ead935ac56f33e4e";
       };
     }
     {
@@ -298,27 +410,19 @@
       };
     }
     {
-      name = "_types_tapable___tapable_1.0.6.tgz";
-      path = fetchurl {
-        name = "_types_tapable___tapable_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz";
-        sha1 = "a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74";
-      };
-    }
-    {
-      name = "_types_tunnel___tunnel_0.0.0.tgz";
+      name = "_types_tapable___tapable_1.0.7.tgz";
       path = fetchurl {
-        name = "_types_tunnel___tunnel_0.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/tunnel/-/tunnel-0.0.0.tgz";
-        sha1 = "c2a42943ee63c90652a5557b8c4e56cda77f944e";
+        name = "_types_tapable___tapable_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz";
+        sha1 = "545158342f949e8fd3bfd813224971ecddc3fac4";
       };
     }
     {
-      name = "_types_uglify_js___uglify_js_3.11.1.tgz";
+      name = "_types_uglify_js___uglify_js_3.13.0.tgz";
       path = fetchurl {
-        name = "_types_uglify_js___uglify_js_3.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz";
-        sha1 = "97ff30e61a0aa6876c270b5f538737e2d6ab8ceb";
+        name = "_types_uglify_js___uglify_js_3.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz";
+        sha1 = "1cad8df1fb0b143c5aba08de5712ea9d1ff71124";
       };
     }
     {
@@ -338,11 +442,19 @@
       };
     }
     {
-      name = "_types_webpack___webpack_4.41.26.tgz";
+      name = "_types_webpack___webpack_4.41.28.tgz";
+      path = fetchurl {
+        name = "_types_webpack___webpack_4.41.28.tgz";
+        url  = "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.28.tgz";
+        sha1 = "0069a2159b7ad4d83d0b5801942c17d54133897b";
+      };
+    }
+    {
+      name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
       path = fetchurl {
-        name = "_types_webpack___webpack_4.41.26.tgz";
-        url  = "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz";
-        sha1 = "27a30d7d531e16489f9c7607c747be6bc1a459ef";
+        name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz";
+        sha1 = "aa58042711d6e3275dd37dc597e5d31e8c290a44";
       };
     }
     {
@@ -490,6 +602,30 @@
       };
     }
     {
+      name = "_webpack_cli_configtest___configtest_1.0.3.tgz";
+      path = fetchurl {
+        name = "_webpack_cli_configtest___configtest_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz";
+        sha1 = "204bcff87cda3ea4810881f7ea96e5f5321b87b9";
+      };
+    }
+    {
+      name = "_webpack_cli_info___info_1.2.4.tgz";
+      path = fetchurl {
+        name = "_webpack_cli_info___info_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz";
+        sha1 = "7381fd41c9577b2d8f6c2594fad397ef49ad5573";
+      };
+    }
+    {
+      name = "_webpack_cli_serve___serve_1.4.0.tgz";
+      path = fetchurl {
+        name = "_webpack_cli_serve___serve_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz";
+        sha1 = "f84fd07bcacefe56ce762925798871092f0f228e";
+      };
+    }
+    {
       name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
       path = fetchurl {
         name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
@@ -530,14 +666,6 @@
       };
     }
     {
-      name = "abab___abab_2.0.5.tgz";
-      path = fetchurl {
-        name = "abab___abab_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz";
-        sha1 = "c0b678fb32d60fc1219c784d6a826fe385aeb79a";
-      };
-    }
-    {
       name = "abbrev___abbrev_1.1.1.tgz";
       path = fetchurl {
         name = "abbrev___abbrev_1.1.1.tgz";
@@ -546,19 +674,19 @@
       };
     }
     {
-      name = "accepts___accepts_1.3.7.tgz";
+      name = "abstract_logging___abstract_logging_2.0.1.tgz";
       path = fetchurl {
-        name = "accepts___accepts_1.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
-        sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
+        name = "abstract_logging___abstract_logging_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz";
+        sha1 = "6b0c371df212db7129b57d2e7fcf282b8bf1c839";
       };
     }
     {
-      name = "acorn_globals___acorn_globals_4.3.4.tgz";
+      name = "accepts___accepts_1.3.7.tgz";
       path = fetchurl {
-        name = "acorn_globals___acorn_globals_4.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz";
-        sha1 = "9fa1926addc11c97308c4e66d7add0d40c3272e7";
+        name = "accepts___accepts_1.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
+        sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
       };
     }
     {
@@ -570,22 +698,6 @@
       };
     }
     {
-      name = "acorn_walk___acorn_walk_6.2.0.tgz";
-      path = fetchurl {
-        name = "acorn_walk___acorn_walk_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
-        sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
-      };
-    }
-    {
-      name = "acorn___acorn_5.7.4.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_5.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz";
-        sha1 = "3e8d8a9947d0599a1796d10225d7432f4a4acf5e";
-      };
-    }
-    {
       name = "acorn___acorn_6.4.2.tgz";
       path = fetchurl {
         name = "acorn___acorn_6.4.2.tgz";
@@ -594,6 +706,14 @@
       };
     }
     {
+      name = "acorn___acorn_7.4.1.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_7.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
+        sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
+      };
+    }
+    {
       name = "adal_node___adal_node_0.1.28.tgz";
       path = fetchurl {
         name = "adal_node___adal_node_0.1.28.tgz";
@@ -642,6 +762,14 @@
       };
     }
     {
+      name = "ajv___ajv_8.3.0.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_8.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz";
+        sha1 = "25ee7348e32cdc4a1dbb38256bf6bdc451dd577c";
+      };
+    }
+    {
       name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
       path = fetchurl {
         name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
@@ -650,11 +778,11 @@
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+      name = "ansi_colors___ansi_colors_4.1.1.tgz";
       path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
+        name = "ansi_colors___ansi_colors_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
       };
     }
     {
@@ -674,14 +802,6 @@
       };
     }
     {
-      name = "ansi_regex___ansi_regex_4.1.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
-      };
-    }
-    {
       name = "ansi_regex___ansi_regex_5.0.0.tgz";
       path = fetchurl {
         name = "ansi_regex___ansi_regex_5.0.0.tgz";
@@ -746,11 +866,11 @@
       };
     }
     {
-      name = "anymatch___anymatch_3.1.1.tgz";
+      name = "anymatch___anymatch_3.1.2.tgz";
       path = fetchurl {
-        name = "anymatch___anymatch_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
-        sha1 = "c55ecf02185e2469259399310c173ce31233b142";
+        name = "anymatch___anymatch_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
+        sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
       };
     }
     {
@@ -770,11 +890,11 @@
       };
     }
     {
-      name = "archiver___archiver_5.2.0.tgz";
+      name = "archiver___archiver_5.3.0.tgz";
       path = fetchurl {
-        name = "archiver___archiver_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.2.0.tgz";
-        sha1 = "25aa1b3d9febf7aec5b0f296e77e69960c26db94";
+        name = "archiver___archiver_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz";
+        sha1 = "dd3e097624481741df626267564f7dd8640a45ba";
       };
     }
     {
@@ -794,6 +914,14 @@
       };
     }
     {
+      name = "argparse___argparse_2.0.1.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
+        sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
+      };
+    }
+    {
       name = "arr_diff___arr_diff_2.0.0.tgz";
       path = fetchurl {
         name = "arr_diff___arr_diff_2.0.0.tgz";
@@ -826,11 +954,11 @@
       };
     }
     {
-      name = "array_equal___array_equal_1.0.0.tgz";
+      name = "array_filter___array_filter_1.0.0.tgz";
       path = fetchurl {
-        name = "array_equal___array_equal_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz";
-        sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
+        name = "array_filter___array_filter_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz";
+        sha1 = "baf79e62e6ef4c2a4c0b831232daffec251f9d83";
       };
     }
     {
@@ -842,11 +970,11 @@
       };
     }
     {
-      name = "array_includes___array_includes_3.1.2.tgz";
+      name = "array_includes___array_includes_3.1.3.tgz";
       path = fetchurl {
-        name = "array_includes___array_includes_3.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz";
-        sha1 = "a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8";
+        name = "array_includes___array_includes_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz";
+        sha1 = "c7f619b382ad2afaf5326cddfdc0afc61af7690a";
       };
     }
     {
@@ -890,14 +1018,6 @@
       };
     }
     {
-      name = "asap___asap_2.0.6.tgz";
-      path = fetchurl {
-        name = "asap___asap_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
-        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
-      };
-    }
-    {
       name = "asn1.js___asn1.js_5.4.1.tgz";
       path = fetchurl {
         name = "asn1.js___asn1.js_5.4.1.tgz";
@@ -906,14 +1026,6 @@
       };
     }
     {
-      name = "asn1___asn1_0.2.3.tgz";
-      path = fetchurl {
-        name = "asn1___asn1_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz";
-        sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
-      };
-    }
-    {
       name = "asn1___asn1_0.2.4.tgz";
       path = fetchurl {
         name = "asn1___asn1_0.2.4.tgz";
@@ -922,14 +1034,6 @@
       };
     }
     {
-      name = "assert_plus___assert_plus_0.1.5.tgz";
-      path = fetchurl {
-        name = "assert_plus___assert_plus_0.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz";
-        sha1 = "ee74009413002d84cec7219c6ac811812e723160";
-      };
-    }
-    {
       name = "assert_plus___assert_plus_1.0.0.tgz";
       path = fetchurl {
         name = "assert_plus___assert_plus_1.0.0.tgz";
@@ -954,11 +1058,11 @@
       };
     }
     {
-      name = "astral_regex___astral_regex_1.0.0.tgz";
+      name = "astral_regex___astral_regex_2.0.0.tgz";
       path = fetchurl {
-        name = "astral_regex___astral_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
       };
     }
     {
@@ -970,11 +1074,11 @@
       };
     }
     {
-      name = "async_limiter___async_limiter_1.0.1.tgz";
+      name = "async___async_0.9.2.tgz";
       path = fetchurl {
-        name = "async_limiter___async_limiter_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha1 = "dd379e94f0db8310b08291f9d64c3209766617fd";
+        name = "async___async_0.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
       };
     }
     {
@@ -994,14 +1098,6 @@
       };
     }
     {
-      name = "async___async_2.6.3.tgz";
-      path = fetchurl {
-        name = "async___async_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
-        sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
-      };
-    }
-    {
       name = "asynckit___asynckit_0.4.0.tgz";
       path = fetchurl {
         name = "asynckit___asynckit_0.4.0.tgz";
@@ -1018,11 +1114,19 @@
       };
     }
     {
-      name = "aws_sdk___aws_sdk_2.828.0.tgz";
+      name = "available_typed_arrays___available_typed_arrays_1.0.2.tgz";
+      path = fetchurl {
+        name = "available_typed_arrays___available_typed_arrays_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz";
+        sha1 = "6b098ca9d8039079ee3f77f7b783c4480ba513f5";
+      };
+    }
+    {
+      name = "aws_sdk___aws_sdk_2.904.0.tgz";
       path = fetchurl {
-        name = "aws_sdk___aws_sdk_2.828.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.828.0.tgz";
-        sha1 = "6aa599c3582f219568f41fb287eb65753e4a9234";
+        name = "aws_sdk___aws_sdk_2.904.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.904.0.tgz";
+        sha1 = "45a53e918698e451f762e44005dfce177a50b7e6";
       };
     }
     {
@@ -1538,11 +1642,11 @@
       };
     }
     {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
+      name = "balanced_match___balanced_match_1.0.2.tgz";
       path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        name = "balanced_match___balanced_match_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
       };
     }
     {
@@ -1642,6 +1746,14 @@
       };
     }
     {
+      name = "bintrees___bintrees_1.0.1.tgz";
+      path = fetchurl {
+        name = "bintrees___bintrees_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz";
+        sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
+      };
+    }
+    {
       name = "bl___bl_3.0.1.tgz";
       path = fetchurl {
         name = "bl___bl_3.0.1.tgz";
@@ -1650,11 +1762,11 @@
       };
     }
     {
-      name = "bl___bl_4.0.3.tgz";
+      name = "bl___bl_4.1.0.tgz";
       path = fetchurl {
-        name = "bl___bl_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
-        sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
+        name = "bl___bl_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz";
+        sha1 = "451535264182bec2fbbc83a62ab98cf11d9f7b3a";
       };
     }
     {
@@ -1666,11 +1778,19 @@
       };
     }
     {
-      name = "block_stream2___block_stream2_1.1.0.tgz";
+      name = "block_stream2___block_stream2_2.1.0.tgz";
+      path = fetchurl {
+        name = "block_stream2___block_stream2_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/block-stream2/-/block-stream2-2.1.0.tgz";
+        sha1 = "ac0c5ef4298b3857796e05be8ebed72196fa054b";
+      };
+    }
+    {
+      name = "block_stream___block_stream_0.0.9.tgz";
       path = fetchurl {
-        name = "block_stream2___block_stream2_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/block-stream2/-/block-stream2-1.1.0.tgz";
-        sha1 = "c738e3a91ba977ebb5e1fef431e13ca11d8639e2";
+        name = "block_stream___block_stream_0.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
+        sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
       };
     }
     {
@@ -1682,19 +1802,19 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.9.tgz";
+      name = "bn.js___bn.js_4.12.0.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.9.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
-        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
+        name = "bn.js___bn.js_4.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz";
+        sha1 = "775b3f278efbb9718eec7361f483fb36fbbfea88";
       };
     }
     {
-      name = "bn.js___bn.js_5.1.3.tgz";
+      name = "bn.js___bn.js_5.2.0.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_5.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz";
-        sha1 = "beca005408f642ebebea80b042b4d18d2ac0ee6b";
+        name = "bn.js___bn.js_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz";
+        sha1 = "358860674396c6997771a9d051fcc1b57d4ae002";
       };
     }
     {
@@ -1730,14 +1850,6 @@
       };
     }
     {
-      name = "bowser___bowser_2.9.0.tgz";
-      path = fetchurl {
-        name = "bowser___bowser_2.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz";
-        sha1 = "3bed854233b419b9a7422d9ee3e85504373821c9";
-      };
-    }
-    {
       name = "brace_expansion___brace_expansion_1.1.11.tgz";
       path = fetchurl {
         name = "brace_expansion___brace_expansion_1.1.11.tgz";
@@ -1778,14 +1890,6 @@
       };
     }
     {
-      name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
-      path = fetchurl {
-        name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
-        sha1 = "3c9b4b7d782c8121e56f10106d84c0d0ffc94626";
-      };
-    }
-    {
       name = "browser_stdout___browser_stdout_1.3.1.tgz";
       path = fetchurl {
         name = "browser_stdout___browser_stdout_1.3.1.tgz";
@@ -1858,11 +1962,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.16.1.tgz";
+      name = "browserslist___browserslist_4.16.6.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.16.1.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz";
-        sha1 = "bf757a2da376b3447b800a16f0f1c96358138766";
+        name = "browserslist___browserslist_4.16.6.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz";
+        sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2";
       };
     }
     {
@@ -1938,14 +2042,6 @@
       };
     }
     {
-      name = "bunyan___bunyan_1.8.15.tgz";
-      path = fetchurl {
-        name = "bunyan___bunyan_1.8.15.tgz";
-        url  = "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz";
-        sha1 = "8ce34ca908a17d0776576ca1b2f6cbd916e93b46";
-      };
-    }
-    {
       name = "bytes___bytes_3.0.0.tgz";
       path = fetchurl {
         name = "bytes___bytes_3.0.0.tgz";
@@ -1970,11 +2066,11 @@
       };
     }
     {
-      name = "cacache___cacache_15.0.5.tgz";
+      name = "cacache___cacache_15.0.6.tgz";
       path = fetchurl {
-        name = "cacache___cacache_15.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz";
-        sha1 = "69162833da29170d6732334643c60e005f5f17d0";
+        name = "cacache___cacache_15.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz";
+        sha1 = "65a8c580fda15b59150fb76bf3f3a8e45d583099";
       };
     }
     {
@@ -2050,11 +2146,11 @@
       };
     }
     {
-      name = "camelize___camelize_1.0.0.tgz";
+      name = "camelcase___camelcase_6.2.0.tgz";
       path = fetchurl {
-        name = "camelize___camelize_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz";
-        sha1 = "164a5483e630fa4321e5af07020e531831b2609b";
+        name = "camelcase___camelcase_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz";
+        sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809";
       };
     }
     {
@@ -2066,11 +2162,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001177.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001228.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001177.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001177.tgz";
-        sha1 = "2c3b384933aafda03e29ccca7bb3d8c3389e1ece";
+        name = "caniuse_lite___caniuse_lite_1.0.30001228.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz";
+        sha1 = "bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa";
       };
     }
     {
@@ -2082,14 +2178,6 @@
       };
     }
     {
-      name = "ccount___ccount_1.1.0.tgz";
-      path = fetchurl {
-        name = "ccount___ccount_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz";
-        sha1 = "246687debb6014735131be8abab2d93898f8d043";
-      };
-    }
-    {
       name = "chalk___chalk_1.1.3.tgz";
       path = fetchurl {
         name = "chalk___chalk_1.1.3.tgz";
@@ -2114,6 +2202,14 @@
       };
     }
     {
+      name = "chalk___chalk_4.1.1.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
+        sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
+      };
+    }
+    {
       name = "chalk___chalk_0.4.0.tgz";
       path = fetchurl {
         name = "chalk___chalk_0.4.0.tgz";
@@ -2130,14 +2226,6 @@
       };
     }
     {
-      name = "character_entities_html4___character_entities_html4_1.1.4.tgz";
-      path = fetchurl {
-        name = "character_entities_html4___character_entities_html4_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz";
-        sha1 = "0e64b0a3753ddbf1fdc044c5fd01d0199a02e125";
-      };
-    }
-    {
       name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
       path = fetchurl {
         name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
@@ -2162,14 +2250,6 @@
       };
     }
     {
-      name = "chardet___chardet_0.7.0.tgz";
-      path = fetchurl {
-        name = "chardet___chardet_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
-        sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
-      };
-    }
-    {
       name = "cheerio___cheerio_0.22.0.tgz";
       path = fetchurl {
         name = "cheerio___cheerio_0.22.0.tgz";
@@ -2178,6 +2258,14 @@
       };
     }
     {
+      name = "chokidar___chokidar_3.5.1.tgz";
+      path = fetchurl {
+        name = "chokidar___chokidar_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz";
+        sha1 = "ee9ce7bbebd2b79f49f304799d5468e31e14e68a";
+      };
+    }
+    {
       name = "chokidar___chokidar_1.7.0.tgz";
       path = fetchurl {
         name = "chokidar___chokidar_1.7.0.tgz";
@@ -2194,14 +2282,6 @@
       };
     }
     {
-      name = "chokidar___chokidar_3.5.0.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.0.tgz";
-        sha1 = "458a4816a415e9d3b3caa4faec2b96a6935a9e65";
-      };
-    }
-    {
       name = "chownr___chownr_1.1.4.tgz";
       path = fetchurl {
         name = "chownr___chownr_1.1.4.tgz";
@@ -2218,11 +2298,11 @@
       };
     }
     {
-      name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
+      name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
       path = fetchurl {
-        name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
-        sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4";
+        name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz";
+        sha1 = "1015eced4741e15d06664a957dbbf50d041e26ac";
       };
     }
     {
@@ -2258,51 +2338,27 @@
       };
     }
     {
-      name = "cli_color___cli_color_1.4.0.tgz";
-      path = fetchurl {
-        name = "cli_color___cli_color_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz";
-        sha1 = "7d10738f48526824f8fe7da51857cb0f572fe01f";
-      };
-    }
-    {
-      name = "cli_cursor___cli_cursor_2.1.0.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
-        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
-      };
-    }
-    {
-      name = "cli_width___cli_width_2.2.1.tgz";
-      path = fetchurl {
-        name = "cli_width___cli_width_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz";
-        sha1 = "b0433d0b4e9c847ef18868a4ef16fd5fc8271c48";
-      };
-    }
-    {
-      name = "clipboard___clipboard_2.0.6.tgz";
+      name = "clipboard___clipboard_2.0.8.tgz";
       path = fetchurl {
-        name = "clipboard___clipboard_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz";
-        sha1 = "52921296eec0fdf77ead1749421b21c968647376";
+        name = "clipboard___clipboard_2.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz";
+        sha1 = "ffc6c103dd2967a83005f3f61976aa4655a4cdba";
       };
     }
     {
-      name = "cliui___cliui_5.0.0.tgz";
+      name = "cliui___cliui_7.0.4.tgz";
       path = fetchurl {
-        name = "cliui___cliui_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
-        sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
+        name = "cliui___cliui_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz";
+        sha1 = "a0265ee655476fc807aea9df3df8df7783808b4f";
       };
     }
     {
-      name = "clone___clone_2.1.2.tgz";
+      name = "clone_deep___clone_deep_4.0.1.tgz";
       path = fetchurl {
-        name = "clone___clone_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz";
-        sha1 = "1b7f4b9f591f1e8f83670401600345a02887435f";
+        name = "clone_deep___clone_deep_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz";
+        sha1 = "c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387";
       };
     }
     {
@@ -2354,14 +2410,6 @@
         '';
   }
     {
-      name = "collapse_white_space___collapse_white_space_1.0.6.tgz";
-      path = fetchurl {
-        name = "collapse_white_space___collapse_white_space_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz";
-        sha1 = "e63629c0016665792060dbbeb79c42239d2c5287";
-      };
-    }
-    {
       name = "collection_visit___collection_visit_1.0.0.tgz";
       path = fetchurl {
         name = "collection_visit___collection_visit_1.0.0.tgz";
@@ -2402,11 +2450,11 @@
       };
     }
     {
-      name = "color_string___color_string_1.5.4.tgz";
+      name = "color_string___color_string_1.5.5.tgz";
       path = fetchurl {
-        name = "color_string___color_string_1.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz";
-        sha1 = "dd51cd25cfee953d138fe4002372cc3d0e504cb6";
+        name = "color_string___color_string_1.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz";
+        sha1 = "65474a8f0e7439625f3d27a6a19d89fc45223014";
       };
     }
     {
@@ -2426,11 +2474,11 @@
       };
     }
     {
-      name = "colorette___colorette_1.2.1.tgz";
+      name = "colorette___colorette_1.2.2.tgz";
       path = fetchurl {
-        name = "colorette___colorette_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz";
-        sha1 = "4d0b921325c14faf92633086a536db6e89564b1b";
+        name = "colorette___colorette_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
+        sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
       };
     }
     {
@@ -2466,14 +2514,6 @@
       };
     }
     {
-      name = "commander___commander_2.15.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz";
-        sha1 = "df46e867d0fc2aec66a34662b406a9ccafff5b0f";
-      };
-    }
-    {
       name = "commander___commander_4.1.1.tgz";
       path = fetchurl {
         name = "commander___commander_4.1.1.tgz";
@@ -2482,6 +2522,14 @@
       };
     }
     {
+      name = "commander___commander_7.2.0.tgz";
+      path = fetchurl {
+        name = "commander___commander_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz";
+        sha1 = "a36cb57d0b501ce108e4d20559a150a391d97ab7";
+      };
+    }
+    {
       name = "commondir___commondir_1.0.1.tgz";
       path = fetchurl {
         name = "commondir___commondir_1.0.1.tgz";
@@ -2522,11 +2570,11 @@
       };
     }
     {
-      name = "compress_commons___compress_commons_4.0.2.tgz";
+      name = "compress_commons___compress_commons_4.1.0.tgz";
       path = fetchurl {
-        name = "compress_commons___compress_commons_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.0.2.tgz";
-        sha1 = "d6896be386e52f37610cef9e6fa5defc58c31bd7";
+        name = "compress_commons___compress_commons_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.0.tgz";
+        sha1 = "25ec7a4528852ccd1d441a7d4353cd0ece11371b";
       };
     }
     {
@@ -2570,14 +2618,6 @@
       };
     }
     {
-      name = "config_chain___config_chain_1.1.12.tgz";
-      path = fetchurl {
-        name = "config_chain___config_chain_1.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
-        sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
-      };
-    }
-    {
       name = "connect_flash___connect_flash_0.1.1.tgz";
       path = fetchurl {
         name = "connect_flash___connect_flash_0.1.1.tgz";
@@ -2586,11 +2626,11 @@
       };
     }
     {
-      name = "connect_session_sequelize___connect_session_sequelize_6.1.1.tgz";
+      name = "connect_session_sequelize___connect_session_sequelize_7.1.1.tgz";
       path = fetchurl {
-        name = "connect_session_sequelize___connect_session_sequelize_6.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/connect-session-sequelize/-/connect-session-sequelize-6.1.1.tgz";
-        sha1 = "0155d01fbffc67352df795aa53b7ab397ab95094";
+        name = "connect_session_sequelize___connect_session_sequelize_7.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/connect-session-sequelize/-/connect-session-sequelize-7.1.1.tgz";
+        sha1 = "e96f33bb3f4560f286cc0e0aefec4f3d3c148fe5";
       };
     }
     {
@@ -2634,14 +2674,6 @@
       };
     }
     {
-      name = "content_security_policy_builder___content_security_policy_builder_2.1.0.tgz";
-      path = fetchurl {
-        name = "content_security_policy_builder___content_security_policy_builder_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz";
-        sha1 = "0a2364d769a3d7014eec79ff7699804deb8cfcbb";
-      };
-    }
-    {
       name = "content_type___content_type_1.0.4.tgz";
       path = fetchurl {
         name = "content_type___content_type_1.0.4.tgz";
@@ -2698,11 +2730,11 @@
       };
     }
     {
-      name = "copy_anything___copy_anything_2.0.1.tgz";
+      name = "copy_anything___copy_anything_2.0.3.tgz";
       path = fetchurl {
-        name = "copy_anything___copy_anything_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.1.tgz";
-        sha1 = "2afbce6da684bdfcbec93752fa762819cb480d9a";
+        name = "copy_anything___copy_anything_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.3.tgz";
+        sha1 = "842407ba02466b0df844819bbe3baebbe5d45d87";
       };
     }
     {
@@ -2762,11 +2794,11 @@
       };
     }
     {
-      name = "crc32_stream___crc32_stream_4.0.1.tgz";
+      name = "crc32_stream___crc32_stream_4.0.2.tgz";
       path = fetchurl {
-        name = "crc32_stream___crc32_stream_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.1.tgz";
-        sha1 = "0f047d74041737f8a55e86837a1b826bd8ab0067";
+        name = "crc32_stream___crc32_stream_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz";
+        sha1 = "c922ad22b38395abe9d3870f02fa8134ed709007";
       };
     }
     {
@@ -2794,11 +2826,11 @@
       };
     }
     {
-      name = "cross_spawn___cross_spawn_6.0.5.tgz";
+      name = "cross_spawn___cross_spawn_7.0.3.tgz";
       path = fetchurl {
-        name = "cross_spawn___cross_spawn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+        name = "cross_spawn___cross_spawn_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
       };
     }
     {
@@ -2834,11 +2866,11 @@
       };
     }
     {
-      name = "css_loader___css_loader_3.6.0.tgz";
+      name = "css_loader___css_loader_5.2.4.tgz";
       path = fetchurl {
-        name = "css_loader___css_loader_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz";
-        sha1 = "2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645";
+        name = "css_loader___css_loader_5.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.4.tgz";
+        sha1 = "e985dcbce339812cb6104ef3670f08f9893a1536";
       };
     }
     {
@@ -2874,11 +2906,11 @@
       };
     }
     {
-      name = "css_tree___css_tree_1.1.2.tgz";
+      name = "css_tree___css_tree_1.1.3.tgz";
       path = fetchurl {
-        name = "css_tree___css_tree_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz";
-        sha1 = "9ae393b5dafd7dae8a622475caec78d3d8fbd7b5";
+        name = "css_tree___css_tree_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz";
+        sha1 = "eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d";
       };
     }
     {
@@ -2914,11 +2946,11 @@
       };
     }
     {
-      name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
+      name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
       path = fetchurl {
-        name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha1 = "51ec662ccfca0f88b396dcd9679cdb931be17f76";
+        name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz";
+        sha1 = "920622b1fc1e95a34e8838203f1397a504f2d3ff";
       };
     }
     {
@@ -2954,11 +2986,11 @@
       };
     }
     {
-      name = "cssnano___cssnano_4.1.10.tgz";
+      name = "cssnano___cssnano_4.1.11.tgz";
       path = fetchurl {
-        name = "cssnano___cssnano_4.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz";
-        sha1 = "0ac41f0b13d13d465487e111b778d42da631b8b2";
+        name = "cssnano___cssnano_4.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz";
+        sha1 = "c7b5f5b81da269cb1fd982cb960c1200910c9a99";
       };
     }
     {
@@ -2986,14 +3018,6 @@
       };
     }
     {
-      name = "cssstyle___cssstyle_1.4.0.tgz";
-      path = fetchurl {
-        name = "cssstyle___cssstyle_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz";
-        sha1 = "9d31328229d3c565c61e586b02041a28fccdccf1";
-      };
-    }
-    {
       name = "cssstyle___cssstyle_0.2.37.tgz";
       path = fetchurl {
         name = "cssstyle___cssstyle_0.2.37.tgz";
@@ -3266,14 +3290,6 @@
       };
     }
     {
-      name = "d___d_1.0.1.tgz";
-      path = fetchurl {
-        name = "d___d_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz";
-        sha1 = "8698095372d58dbee346ffd0c7093f99f8f9eb5a";
-      };
-    }
-    {
       name = "dagre_d3___dagre_d3_0.6.4.tgz";
       path = fetchurl {
         name = "dagre_d3___dagre_d3_0.6.4.tgz";
@@ -3298,22 +3314,6 @@
       };
     }
     {
-      name = "dasherize___dasherize_2.0.0.tgz";
-      path = fetchurl {
-        name = "dasherize___dasherize_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz";
-        sha1 = "6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308";
-      };
-    }
-    {
-      name = "data_urls___data_urls_1.1.0.tgz";
-      path = fetchurl {
-        name = "data_urls___data_urls_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz";
-        sha1 = "15ee0582baa5e22bb59c77140da8f9c76963bbfe";
-      };
-    }
-    {
       name = "date_utils___date_utils_1.2.21.tgz";
       path = fetchurl {
         name = "date_utils___date_utils_1.2.21.tgz";
@@ -3338,14 +3338,6 @@
       };
     }
     {
-      name = "debug___debug_3.2.7.tgz";
-      path = fetchurl {
-        name = "debug___debug_3.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
-        sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
-      };
-    }
-    {
       name = "debug___debug_4.3.1.tgz";
       path = fetchurl {
         name = "debug___debug_4.3.1.tgz";
@@ -3354,6 +3346,14 @@
       };
     }
     {
+      name = "debug___debug_3.2.7.tgz";
+      path = fetchurl {
+        name = "debug___debug_3.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
+        sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
+      };
+    }
+    {
       name = "debug___debug_4.1.1.tgz";
       path = fetchurl {
         name = "debug___debug_4.1.1.tgz";
@@ -3362,11 +3362,11 @@
       };
     }
     {
-      name = "decamelize___decamelize_1.2.0.tgz";
+      name = "decamelize___decamelize_4.0.0.tgz";
       path = fetchurl {
-        name = "decamelize___decamelize_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+        name = "decamelize___decamelize_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz";
+        sha1 = "aa472d7bf660eb15f3494efd531cab7f2a709837";
       };
     }
     {
@@ -3378,11 +3378,11 @@
       };
     }
     {
-      name = "deep_equal___deep_equal_1.1.1.tgz";
+      name = "deep_equal___deep_equal_2.0.5.tgz";
       path = fetchurl {
-        name = "deep_equal___deep_equal_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz";
-        sha1 = "b5c98c942ceffaf7cb051e24e1434a25a2e6076a";
+        name = "deep_equal___deep_equal_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz";
+        sha1 = "55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9";
       };
     }
     {
@@ -3442,14 +3442,6 @@
       };
     }
     {
-      name = "defined___defined_1.0.0.tgz";
-      path = fetchurl {
-        name = "defined___defined_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
-        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
-      };
-    }
-    {
       name = "delayed_stream___delayed_stream_1.0.0.tgz";
       path = fetchurl {
         name = "delayed_stream___delayed_stream_1.0.0.tgz";
@@ -3514,14 +3506,6 @@
       };
     }
     {
-      name = "detect_file___detect_file_1.0.0.tgz";
-      path = fetchurl {
-        name = "detect_file___detect_file_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
-        sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
-      };
-    }
-    {
       name = "detect_indent___detect_indent_4.0.0.tgz";
       path = fetchurl {
         name = "detect_indent___detect_indent_4.0.0.tgz";
@@ -3554,11 +3538,11 @@
         '';
   }
     {
-      name = "diff___diff_3.5.0.tgz";
+      name = "diff___diff_5.0.0.tgz";
       path = fetchurl {
-        name = "diff___diff_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
-        sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
+        name = "diff___diff_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz";
+        sha1 = "7ed6ad76d859d030787ec35855f5b1daf31d852b";
       };
     }
     {
@@ -3634,19 +3618,11 @@
       };
     }
     {
-      name = "domelementtype___domelementtype_2.1.0.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz";
-        sha1 = "a851c080a6d1c3d94344aed151d99f669edf585e";
-      };
-    }
-    {
-      name = "domexception___domexception_1.0.1.tgz";
+      name = "domelementtype___domelementtype_2.2.0.tgz";
       path = fetchurl {
-        name = "domexception___domexception_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz";
-        sha1 = "937442644ca6a31261ef36e3ec677fe805582c90";
+        name = "domelementtype___domelementtype_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz";
+        sha1 = "9a0b6c2782ed6a1c7323d42267183df9bd8b1d57";
       };
     }
     {
@@ -3658,6 +3634,14 @@
       };
     }
     {
+      name = "domino___domino_2.1.6.tgz";
+      path = fetchurl {
+        name = "domino___domino_2.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/domino/-/domino-2.1.6.tgz";
+        sha1 = "fe4ace4310526e5e7b9d12c7de01b7f485a57ffe";
+      };
+    }
+    {
       name = "domutils___domutils_1.5.1.tgz";
       path = fetchurl {
         name = "domutils___domutils_1.5.1.tgz";
@@ -3674,14 +3658,6 @@
       };
     }
     {
-      name = "dont_sniff_mimetype___dont_sniff_mimetype_1.1.0.tgz";
-      path = fetchurl {
-        name = "dont_sniff_mimetype___dont_sniff_mimetype_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz";
-        sha1 = "c7d0427f8bcb095762751252af59d148b0a623b2";
-      };
-    }
-    {
       name = "dot_case___dot_case_3.0.4.tgz";
       path = fetchurl {
         name = "dot_case___dot_case_3.0.4.tgz";
@@ -3706,14 +3682,6 @@
       };
     }
     {
-      name = "dtrace_provider___dtrace_provider_0.8.8.tgz";
-      path = fetchurl {
-        name = "dtrace_provider___dtrace_provider_0.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz";
-        sha1 = "2996d5490c37e1347be263b423ed7b297fb0d97e";
-      };
-    }
-    {
       name = "duplexify___duplexify_3.7.1.tgz";
       path = fetchurl {
         name = "duplexify___duplexify_3.7.1.tgz";
@@ -3738,14 +3706,6 @@
       };
     }
     {
-      name = "editorconfig___editorconfig_0.15.3.tgz";
-      path = fetchurl {
-        name = "editorconfig___editorconfig_0.15.3.tgz";
-        url  = "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz";
-        sha1 = "bef84c4e75fb8dcb0ce5cee8efd51c15999befc5";
-      };
-    }
-    {
       name = "ee_first___ee_first_1.1.1.tgz";
       path = fetchurl {
         name = "ee_first___ee_first_1.1.1.tgz";
@@ -3754,35 +3714,27 @@
       };
     }
     {
-      name = "ejs___ejs_2.7.4.tgz";
+      name = "ejs___ejs_3.1.6.tgz";
       path = fetchurl {
-        name = "ejs___ejs_2.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz";
-        sha1 = "48661287573dcc53e366c7a1ae52c3a120eec9ba";
+        name = "ejs___ejs_3.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz";
+        sha1 = "5bfd0a0689743bb5268b3550cceeebbc1702822a";
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.639.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.727.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.639.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.639.tgz";
-        sha1 = "0a27e3018ae3acf438a14a1dd4e41db4b8ab764e";
+        name = "electron_to_chromium___electron_to_chromium_1.3.727.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz";
+        sha1 = "857e310ca00f0b75da4e1db6ff0e073cc4a91ddf";
       };
     }
     {
-      name = "elliptic___elliptic_6.5.3.tgz";
+      name = "elliptic___elliptic_6.5.4.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
-        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
-      };
-    }
-    {
-      name = "emoji_regex___emoji_regex_7.0.3.tgz";
-      path = fetchurl {
-        name = "emoji_regex___emoji_regex_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
       };
     }
     {
@@ -3834,11 +3786,11 @@
       };
     }
     {
-      name = "engine.io_client___engine.io_client_3.5.0.tgz";
+      name = "engine.io_client___engine.io_client_3.5.2.tgz";
       path = fetchurl {
-        name = "engine.io_client___engine.io_client_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.0.tgz";
-        sha1 = "fc1b4d9616288ce4f2daf06dcf612413dec941c7";
+        name = "engine.io_client___engine.io_client_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.2.tgz";
+        sha1 = "0ef473621294004e9ceebe73cef0af9e36f2f5fa";
       };
     }
     {
@@ -3866,6 +3818,14 @@
       };
     }
     {
+      name = "enquirer___enquirer_2.3.6.tgz";
+      path = fetchurl {
+        name = "enquirer___enquirer_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+        sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+      };
+    }
+    {
       name = "entities___entities_1.1.2.tgz";
       path = fetchurl {
         name = "entities___entities_1.1.2.tgz";
@@ -3874,19 +3834,19 @@
       };
     }
     {
-      name = "entities___entities_2.1.0.tgz";
+      name = "entities___entities_2.2.0.tgz";
       path = fetchurl {
-        name = "entities___entities_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz";
-        sha1 = "992d3129cf7df6870b96c57858c249a120f8b8b5";
+        name = "entities___entities_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz";
+        sha1 = "098dc90ebb83d8dffa089d55256b351d34c4da55";
       };
     }
     {
-      name = "entities___entities_2.0.3.tgz";
+      name = "entities___entities_2.1.0.tgz";
       path = fetchurl {
-        name = "entities___entities_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz";
-        sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f";
+        name = "entities___entities_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz";
+        sha1 = "992d3129cf7df6870b96c57858c249a120f8b8b5";
       };
     }
     {
@@ -3898,6 +3858,14 @@
       };
     }
     {
+      name = "envinfo___envinfo_7.8.1.tgz";
+      path = fetchurl {
+        name = "envinfo___envinfo_7.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz";
+        sha1 = "06377e3e5f4d379fea7ac592d5ad8927e0c4d475";
+      };
+    }
+    {
       name = "errno___errno_0.1.8.tgz";
       path = fetchurl {
         name = "errno___errno_0.1.8.tgz";
@@ -3914,19 +3882,19 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.17.7.tgz";
+      name = "es_abstract___es_abstract_1.18.0.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.7.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz";
-        sha1 = "a4de61b2f66989fc7421676c1cb9787573ace54c";
+        name = "es_abstract___es_abstract_1.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz";
+        sha1 = "ab80b359eecb7ede4c298000390bc5ac3ec7b5a4";
       };
     }
     {
-      name = "es_abstract___es_abstract_1.18.0_next.1.tgz";
+      name = "es_get_iterator___es_get_iterator_1.1.2.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.18.0_next.1.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz";
-        sha1 = "6e3a0a4bda717e5023ab3b8e90bec36108d22c68";
+        name = "es_get_iterator___es_get_iterator_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz";
+        sha1 = "9234c54aba713486d7ebde0220864af5e2b283f7";
       };
     }
     {
@@ -3938,43 +3906,27 @@
       };
     }
     {
-      name = "es5_ext___es5_ext_0.10.53.tgz";
-      path = fetchurl {
-        name = "es5_ext___es5_ext_0.10.53.tgz";
-        url  = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz";
-        sha1 = "93c5a3acfdbef275220ad72644ad02ee18368de1";
-      };
-    }
-    {
-      name = "es6_error___es6_error_2.1.1.tgz";
+      name = "es6_error___es6_error_4.1.1.tgz";
       path = fetchurl {
-        name = "es6_error___es6_error_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/es6-error/-/es6-error-2.1.1.tgz";
-        sha1 = "91384301ec5ed1c9a7247d1128247216f03547cd";
+        name = "es6_error___es6_error_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz";
+        sha1 = "9e3af407459deed47e9a91f9b885a84eb05c561d";
       };
     }
     {
-      name = "es6_iterator___es6_iterator_2.0.3.tgz";
+      name = "esbuild_loader___esbuild_loader_2.13.0.tgz";
       path = fetchurl {
-        name = "es6_iterator___es6_iterator_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz";
-        sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+        name = "esbuild_loader___esbuild_loader_2.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.13.0.tgz";
+        sha1 = "f5a3602a89a3b728506ae3e1887304fffeef9270";
       };
     }
     {
-      name = "es6_symbol___es6_symbol_3.1.3.tgz";
+      name = "esbuild___esbuild_0.11.20.tgz";
       path = fetchurl {
-        name = "es6_symbol___es6_symbol_3.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz";
-        sha1 = "bad5d3c1bcdac28269f4cb331e431c78ac705d18";
-      };
-    }
-    {
-      name = "es6_weak_map___es6_weak_map_2.0.3.tgz";
-      path = fetchurl {
-        name = "es6_weak_map___es6_weak_map_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz";
-        sha1 = "b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53";
+        name = "esbuild___esbuild_0.11.20.tgz";
+        url  = "https://registry.yarnpkg.com/esbuild/-/esbuild-0.11.20.tgz";
+        sha1 = "7cefa1aee8b372c184e42457885f7ce5d3e62a1e";
       };
     }
     {
@@ -3994,27 +3946,27 @@
       };
     }
     {
-      name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+      name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
       path = fetchurl {
-        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+        name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
       };
     }
     {
-      name = "escodegen___escodegen_1.14.3.tgz";
+      name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
       path = fetchurl {
-        name = "escodegen___escodegen_1.14.3.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
-        sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
+        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
       };
     }
     {
-      name = "eslint_config_standard___eslint_config_standard_12.0.0.tgz";
+      name = "eslint_config_standard___eslint_config_standard_16.0.2.tgz";
       path = fetchurl {
-        name = "eslint_config_standard___eslint_config_standard_12.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz";
-        sha1 = "638b4c65db0bd5a41319f96bba1f15ddad2107d9";
+        name = "eslint_config_standard___eslint_config_standard_16.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz";
+        sha1 = "71e91727ac7a203782d0a5ca4d1c462d14e234f6";
       };
     }
     {
@@ -4034,11 +3986,11 @@
       };
     }
     {
-      name = "eslint_plugin_es___eslint_plugin_es_1.4.1.tgz";
+      name = "eslint_plugin_es___eslint_plugin_es_3.0.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_es___eslint_plugin_es_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz";
-        sha1 = "12acae0f4953e76ba444bfd1b2271081ac620998";
+        name = "eslint_plugin_es___eslint_plugin_es_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz";
+        sha1 = "75a7cdfdccddc0589934aeeb384175f221c57893";
       };
     }
     {
@@ -4050,19 +4002,19 @@
       };
     }
     {
-      name = "eslint_plugin_node___eslint_plugin_node_8.0.1.tgz";
+      name = "eslint_plugin_node___eslint_plugin_node_11.1.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_node___eslint_plugin_node_8.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz";
-        sha1 = "55ae3560022863d141fa7a11799532340a685964";
+        name = "eslint_plugin_node___eslint_plugin_node_11.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz";
+        sha1 = "c95544416ee4ada26740a30474eefc5402dc671d";
       };
     }
     {
-      name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
+      name = "eslint_plugin_promise___eslint_plugin_promise_5.1.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_promise___eslint_plugin_promise_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz";
-        sha1 = "845fd8b2260ad8f82564c1222fce44ad71d9418a";
+        name = "eslint_plugin_promise___eslint_plugin_promise_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz";
+        sha1 = "fb2188fb734e4557993733b41aa1a688f46c6f24";
       };
     }
     {
@@ -4082,11 +4034,19 @@
       };
     }
     {
-      name = "eslint_utils___eslint_utils_1.4.3.tgz";
+      name = "eslint_scope___eslint_scope_5.1.1.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
+      };
+    }
+    {
+      name = "eslint_utils___eslint_utils_2.1.0.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
-        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
+        name = "eslint_utils___eslint_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
       };
     }
     {
@@ -4098,19 +4058,27 @@
       };
     }
     {
-      name = "eslint___eslint_5.16.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303";
+      };
+    }
+    {
+      name = "eslint___eslint_7.26.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_5.16.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz";
-        sha1 = "a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea";
+        name = "eslint___eslint_7.26.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz";
+        sha1 = "d416fdcdcb3236cd8f282065312813f8c13982f6";
       };
     }
     {
-      name = "espree___espree_5.0.1.tgz";
+      name = "espree___espree_7.3.1.tgz";
       path = fetchurl {
-        name = "espree___espree_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz";
-        sha1 = "5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a";
+        name = "espree___espree_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
+        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
       };
     }
     {
@@ -4122,11 +4090,11 @@
       };
     }
     {
-      name = "esquery___esquery_1.3.1.tgz";
+      name = "esquery___esquery_1.4.0.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
-        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
       };
     }
     {
@@ -4186,14 +4154,6 @@
       };
     }
     {
-      name = "event_emitter___event_emitter_0.3.5.tgz";
-      path = fetchurl {
-        name = "event_emitter___event_emitter_0.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz";
-        sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
-      };
-    }
-    {
       name = "events___events_1.1.1.tgz";
       path = fetchurl {
         name = "events___events_1.1.1.tgz";
@@ -4202,11 +4162,11 @@
       };
     }
     {
-      name = "events___events_3.2.0.tgz";
+      name = "events___events_3.3.0.tgz";
       path = fetchurl {
-        name = "events___events_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz";
-        sha1 = "93b87c18f8efcd4202a461aec4dfc0556b639379";
+        name = "events___events_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz";
+        sha1 = "31a95ad0a924e2d2c419a813aeb2c4e878ea7400";
       };
     }
     {
@@ -4218,6 +4178,14 @@
       };
     }
     {
+      name = "execa___execa_5.0.0.tgz";
+      path = fetchurl {
+        name = "execa___execa_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz";
+        sha1 = "4029b0007998a841fbd1032e5f4de86a3c1e3376";
+      };
+    }
+    {
       name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz";
       path = fetchurl {
         name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz";
@@ -4250,19 +4218,11 @@
       };
     }
     {
-      name = "expand_tilde___expand_tilde_2.0.2.tgz";
-      path = fetchurl {
-        name = "expand_tilde___expand_tilde_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
-        sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
-      };
-    }
-    {
-      name = "expose_loader___expose_loader_0.7.5.tgz";
+      name = "expose_loader___expose_loader_1.0.3.tgz";
       path = fetchurl {
-        name = "expose_loader___expose_loader_0.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.5.tgz";
-        sha1 = "e29ea2d9aeeed3254a3faa1b35f502db9f9c3f6f";
+        name = "expose_loader___expose_loader_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/expose-loader/-/expose-loader-1.0.3.tgz";
+        sha1 = "5686d3b78cac8831c4af11c3dc361563deb8a9c0";
       };
     }
     {
@@ -4282,14 +4242,6 @@
       };
     }
     {
-      name = "ext___ext_1.4.0.tgz";
-      path = fetchurl {
-        name = "ext___ext_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz";
-        sha1 = "89ae7a07158f79d35517882904324077e4379244";
-      };
-    }
-    {
       name = "extend_shallow___extend_shallow_2.0.1.tgz";
       path = fetchurl {
         name = "extend_shallow___extend_shallow_2.0.1.tgz";
@@ -4322,14 +4274,6 @@
       };
     }
     {
-      name = "external_editor___external_editor_3.1.0.tgz";
-      path = fetchurl {
-        name = "external_editor___external_editor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
-        sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
-      };
-    }
-    {
       name = "extglob___extglob_0.3.2.tgz";
       path = fetchurl {
         name = "extglob___extglob_0.3.2.tgz";
@@ -4346,14 +4290,6 @@
       };
     }
     {
-      name = "extsprintf___extsprintf_1.2.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz";
-        sha1 = "5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529";
-      };
-    }
-    {
       name = "extsprintf___extsprintf_1.3.0.tgz";
       path = fetchurl {
         name = "extsprintf___extsprintf_1.3.0.tgz";
@@ -4378,11 +4314,11 @@
       };
     }
     {
-      name = "fast_glob___fast_glob_3.2.4.tgz";
+      name = "fast_glob___fast_glob_3.2.5.tgz";
       path = fetchurl {
-        name = "fast_glob___fast_glob_3.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz";
-        sha1 = "d20aefbf99579383e7f3cc66529158c9b98554d3";
+        name = "fast_glob___fast_glob_3.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha1 = "7939af2a656de79a4f1901903ee8adcaa7cb9661";
       };
     }
     {
@@ -4410,51 +4346,51 @@
       };
     }
     {
-      name = "fastq___fastq_1.10.0.tgz";
+      name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz";
       path = fetchurl {
-        name = "fastq___fastq_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz";
-        sha1 = "74dbefccade964932cdf500473ef302719c652bb";
+        name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz";
+        sha1 = "cb637ec3f3999f51406dd8ff0e6fc4d83e520d01";
       };
     }
     {
-      name = "fault___fault_1.0.4.tgz";
+      name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
       path = fetchurl {
-        name = "fault___fault_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz";
-        sha1 = "eafcfc0a6d214fc94601e170df29954a4f842f13";
+        name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha1 = "9990f7d3a88cc5a9ffd1f1745745251700d497e2";
       };
     }
     {
-      name = "feature_policy___feature_policy_0.3.0.tgz";
+      name = "fastq___fastq_1.11.0.tgz";
       path = fetchurl {
-        name = "feature_policy___feature_policy_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.3.0.tgz";
-        sha1 = "7430e8e54a40da01156ca30aaec1a381ce536069";
+        name = "fastq___fastq_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz";
+        sha1 = "bb9fb955a07130a918eb63c1f5161cc32a5d0858";
       };
     }
     {
-      name = "fecha___fecha_4.2.0.tgz";
+      name = "fault___fault_1.0.4.tgz";
       path = fetchurl {
-        name = "fecha___fecha_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz";
-        sha1 = "3ffb6395453e3f3efff850404f0a59b6747f5f41";
+        name = "fault___fault_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz";
+        sha1 = "eafcfc0a6d214fc94601e170df29954a4f842f13";
       };
     }
     {
-      name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
+      name = "fecha___fecha_4.2.1.tgz";
       path = fetchurl {
-        name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz";
-        sha1 = "b4eee8148abb01dcf1d1ac34367d59e12fa61d6e";
+        name = "fecha___fecha_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz";
+        sha1 = "0a83ad8f86ef62a091e22bb5a039cd03d23eecce";
       };
     }
     {
-      name = "figures___figures_2.0.0.tgz";
+      name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
       path = fetchurl {
-        name = "figures___figures_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
-        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+        name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz";
+        sha1 = "b4eee8148abb01dcf1d1ac34367d59e12fa61d6e";
       };
     }
     {
@@ -4466,35 +4402,35 @@
       };
     }
     {
-      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+      name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
       path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
       };
     }
     {
-      name = "file_loader___file_loader_4.3.0.tgz";
+      name = "file_loader___file_loader_6.2.0.tgz";
       path = fetchurl {
-        name = "file_loader___file_loader_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz";
-        sha1 = "780f040f729b3d18019f20605f723e844b8a58af";
+        name = "file_loader___file_loader_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz";
+        sha1 = "baef7cf8e1840df325e4390b4484879480eebe4d";
       };
     }
     {
-      name = "file_saver___file_saver_1.3.8.tgz";
+      name = "file_saver___file_saver_2.0.5.tgz";
       path = fetchurl {
-        name = "file_saver___file_saver_1.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.8.tgz";
-        sha1 = "e68a30c7cb044e2fb362b428469feb291c2e09d8";
+        name = "file_saver___file_saver_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz";
+        sha1 = "d61cfe2ce059f414d899e9dd6d4107ee25670c38";
       };
     }
     {
-      name = "file_type___file_type_16.2.0.tgz";
+      name = "file_type___file_type_16.4.0.tgz";
       path = fetchurl {
-        name = "file_type___file_type_16.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-type/-/file-type-16.2.0.tgz";
-        sha1 = "d4f1da71ddda758db7f15f93adfaed09ce9e2715";
+        name = "file_type___file_type_16.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-type/-/file-type-16.4.0.tgz";
+        sha1 = "464197e44bd94a452d77b09085d977ae0dad2df4";
       };
     }
     {
@@ -4506,6 +4442,14 @@
       };
     }
     {
+      name = "filelist___filelist_1.0.2.tgz";
+      path = fetchurl {
+        name = "filelist___filelist_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz";
+        sha1 = "80202f21462d4d1c2e214119b1807c1bc0380e5b";
+      };
+    }
+    {
       name = "filename_regex___filename_regex_2.0.1.tgz";
       path = fetchurl {
         name = "filename_regex___filename_regex_2.0.1.tgz";
@@ -4570,6 +4514,14 @@
       };
     }
     {
+      name = "find_up___find_up_5.0.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz";
+        sha1 = "4c92819ecb7083561e4f4a240a86be5198f536fc";
+      };
+    }
+    {
       name = "find_up___find_up_2.1.0.tgz";
       path = fetchurl {
         name = "find_up___find_up_2.1.0.tgz";
@@ -4594,27 +4546,27 @@
       };
     }
     {
-      name = "findup_sync___findup_sync_3.0.0.tgz";
+      name = "flat_cache___flat_cache_3.0.4.tgz";
       path = fetchurl {
-        name = "findup_sync___findup_sync_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz";
-        sha1 = "17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1";
+        name = "flat_cache___flat_cache_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
       };
     }
     {
-      name = "flat_cache___flat_cache_2.0.1.tgz";
+      name = "flat___flat_5.0.2.tgz";
       path = fetchurl {
-        name = "flat_cache___flat_cache_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
+        name = "flat___flat_5.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz";
+        sha1 = "8ca6fe332069ffa9d324c327198c598259ceb241";
       };
     }
     {
-      name = "flatted___flatted_2.0.2.tgz";
+      name = "flatted___flatted_3.1.1.tgz";
       path = fetchurl {
-        name = "flatted___flatted_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz";
-        sha1 = "4575b21e2bcee7434aa9be662f4b7b5f9c2b5138";
+        name = "flatted___flatted_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
+        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
       };
     }
     {
@@ -4642,11 +4594,11 @@
       };
     }
     {
-      name = "follow_redirects___follow_redirects_1.13.1.tgz";
+      name = "follow_redirects___follow_redirects_1.14.1.tgz";
       path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz";
-        sha1 = "5f69b813376cee4fd0474a3aba835df04ab763b7";
+        name = "follow_redirects___follow_redirects_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz";
+        sha1 = "d9114ded0a1cfdd334e164e6662ad02bfd91ff43";
       };
     }
     {
@@ -4666,6 +4618,14 @@
       };
     }
     {
+      name = "foreach___foreach_2.0.5.tgz";
+      path = fetchurl {
+        name = "foreach___foreach_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz";
+        sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
+      };
+    }
+    {
       name = "forever_agent___forever_agent_0.6.1.tgz";
       path = fetchurl {
         name = "forever_agent___forever_agent_0.6.1.tgz";
@@ -4770,14 +4730,6 @@
       };
     }
     {
-      name = "fs_extra___fs_extra_7.0.1.tgz";
-      path = fetchurl {
-        name = "fs_extra___fs_extra_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
-        sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
-      };
-    }
-    {
       name = "fs_minipass___fs_minipass_1.2.7.tgz";
       path = fetchurl {
         name = "fs_minipass___fs_minipass_1.2.7.tgz";
@@ -4826,11 +4778,19 @@
       };
     }
     {
-      name = "fsevents___fsevents_2.3.1.tgz";
+      name = "fsevents___fsevents_2.3.2.tgz";
+      path = fetchurl {
+        name = "fsevents___fsevents_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
+        sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
+      };
+    }
+    {
+      name = "fstream___fstream_1.0.12.tgz";
       path = fetchurl {
-        name = "fsevents___fsevents_2.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz";
-        sha1 = "b209ab14c61012636c8863507edf7fb68cc54e9f";
+        name = "fstream___fstream_1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz";
+        sha1 = "4e8ba8ee2d48be4f7d0de505455548eae5932045";
       };
     }
     {
@@ -4882,11 +4842,19 @@
       };
     }
     {
-      name = "get_intrinsic___get_intrinsic_1.0.2.tgz";
+      name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+      path = fetchurl {
+        name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
+      };
+    }
+    {
+      name = "get_stream___get_stream_6.0.1.tgz";
       path = fetchurl {
-        name = "get_intrinsic___get_intrinsic_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz";
-        sha1 = "6820da226e50b24894e08859469dc68361545d49";
+        name = "get_stream___get_stream_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz";
+        sha1 = "a262d8eef67aced57c2852ad6167526a43cbf7b7";
       };
     }
     {
@@ -4938,27 +4906,11 @@
       };
     }
     {
-      name = "glob_parent___glob_parent_5.1.1.tgz";
-      path = fetchurl {
-        name = "glob_parent___glob_parent_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
-      };
-    }
-    {
-      name = "glob___glob_7.1.2.tgz";
-      path = fetchurl {
-        name = "glob___glob_7.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
-        sha1 = "c19c9df9a028702d678612384a6552404c636d15";
-      };
-    }
-    {
-      name = "glob___glob_6.0.4.tgz";
+      name = "glob_parent___glob_parent_5.1.2.tgz";
       path = fetchurl {
-        name = "glob___glob_6.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz";
-        sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
+        name = "glob_parent___glob_parent_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
       };
     }
     {
@@ -4970,43 +4922,27 @@
       };
     }
     {
-      name = "global_modules___global_modules_1.0.0.tgz";
-      path = fetchurl {
-        name = "global_modules___global_modules_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
-        sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
-      };
-    }
-    {
-      name = "global_modules___global_modules_2.0.0.tgz";
-      path = fetchurl {
-        name = "global_modules___global_modules_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
-        sha1 = "997605ad2345f27f51539bea26574421215c7780";
-      };
-    }
-    {
-      name = "global_prefix___global_prefix_1.0.2.tgz";
+      name = "glob___glob_7.1.7.tgz";
       path = fetchurl {
-        name = "global_prefix___global_prefix_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
-        sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+        name = "glob___glob_7.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
+        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
       };
     }
     {
-      name = "global_prefix___global_prefix_3.0.0.tgz";
+      name = "globals___globals_12.4.0.tgz";
       path = fetchurl {
-        name = "global_prefix___global_prefix_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz";
-        sha1 = "fc85f73064df69f50421f47f883fe5b913ba9b97";
+        name = "globals___globals_12.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
+        sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
       };
     }
     {
-      name = "globals___globals_11.12.0.tgz";
+      name = "globals___globals_13.8.0.tgz";
       path = fetchurl {
-        name = "globals___globals_11.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
-        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
+        name = "globals___globals_13.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz";
+        sha1 = "3e20f504810ce87a8d72e55aecf8435b50f4c1b3";
       };
     }
     {
@@ -5018,11 +4954,11 @@
       };
     }
     {
-      name = "globby___globby_11.0.2.tgz";
+      name = "globby___globby_11.0.3.tgz";
       path = fetchurl {
-        name = "globby___globby_11.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz";
-        sha1 = "1af538b766a3b540ebfb58a32b2e2d5897321d83";
+        name = "globby___globby_11.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz";
+        sha1 = "9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb";
       };
     }
     {
@@ -5034,11 +4970,11 @@
       };
     }
     {
-      name = "graceful_fs___graceful_fs_4.2.4.tgz";
+      name = "graceful_fs___graceful_fs_4.2.6.tgz";
       path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
+        name = "graceful_fs___graceful_fs_4.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
       };
     }
     {
@@ -5058,11 +4994,11 @@
       };
     }
     {
-      name = "handlebars___handlebars_4.7.6.tgz";
+      name = "handlebars___handlebars_4.7.7.tgz";
       path = fetchurl {
-        name = "handlebars___handlebars_4.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz";
-        sha1 = "d4c05c1baf90e9945f77aa68a7a219aa4a7df74e";
+        name = "handlebars___handlebars_4.7.7.tgz";
+        url  = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz";
+        sha1 = "9ce33416aad02dbd6c8fafa8240d5d98004945a1";
       };
     }
     {
@@ -5090,6 +5026,14 @@
       };
     }
     {
+      name = "has_bigints___has_bigints_1.0.1.tgz";
+      path = fetchurl {
+        name = "has_bigints___has_bigints_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz";
+        sha1 = "64fe6acb020673e3b78db035a5af69aa9d07b113";
+      };
+    }
+    {
       name = "has_binary2___has_binary2_1.0.3.tgz";
       path = fetchurl {
         name = "has_binary2___has_binary2_1.0.3.tgz";
@@ -5130,11 +5074,11 @@
       };
     }
     {
-      name = "has_symbols___has_symbols_1.0.1.tgz";
+      name = "has_symbols___has_symbols_1.0.2.tgz";
       path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
+        name = "has_symbols___has_symbols_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha1 = "165d3070c00309752a1236a479331e3ac56f1423";
       };
     }
     {
@@ -5202,14 +5146,6 @@
       };
     }
     {
-      name = "he___he_1.1.1.tgz";
-      path = fetchurl {
-        name = "he___he_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz";
-        sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
-      };
-    }
-    {
       name = "he___he_1.2.0.tgz";
       path = fetchurl {
         name = "he___he_1.2.0.tgz";
@@ -5218,27 +5154,11 @@
       };
     }
     {
-      name = "helmet_crossdomain___helmet_crossdomain_0.4.0.tgz";
+      name = "helmet___helmet_4.6.0.tgz";
       path = fetchurl {
-        name = "helmet_crossdomain___helmet_crossdomain_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz";
-        sha1 = "5f1fe5a836d0325f1da0a78eaa5fd8429078894e";
-      };
-    }
-    {
-      name = "helmet_csp___helmet_csp_2.10.0.tgz";
-      path = fetchurl {
-        name = "helmet_csp___helmet_csp_2.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.10.0.tgz";
-        sha1 = "685dde1747bc16c5e28ad9d91e229a69f0a85e84";
-      };
-    }
-    {
-      name = "helmet___helmet_3.23.3.tgz";
-      path = fetchurl {
-        name = "helmet___helmet_3.23.3.tgz";
-        url  = "https://registry.yarnpkg.com/helmet/-/helmet-3.23.3.tgz";
-        sha1 = "5ba30209c5f73ded4ab65746a3a11bedd4579ab7";
+        name = "helmet___helmet_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/helmet/-/helmet-4.6.0.tgz";
+        sha1 = "579971196ba93c5978eb019e4e8ec0e50076b4df";
       };
     }
     {
@@ -5250,19 +5170,11 @@
       };
     }
     {
-      name = "hide_powered_by___hide_powered_by_1.1.0.tgz";
-      path = fetchurl {
-        name = "hide_powered_by___hide_powered_by_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.1.0.tgz";
-        sha1 = "be3ea9cab4bdb16f8744be873755ca663383fa7a";
-      };
-    }
-    {
-      name = "highlight.js___highlight.js_9.18.5.tgz";
+      name = "highlight.js___highlight.js_10.7.2.tgz";
       path = fetchurl {
-        name = "highlight.js___highlight.js_9.18.5.tgz";
-        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz";
-        sha1 = "d18a359867f378c138d6819edfc2a8acd5f29825";
+        name = "highlight.js___highlight.js_10.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz";
+        sha1 = "89319b861edc66c48854ed1e6da21ea89f847360";
       };
     }
     {
@@ -5282,27 +5194,11 @@
       };
     }
     {
-      name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
-      path = fetchurl {
-        name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
-        sha1 = "743298cef4e5af3e194161fbadcc2151d3a058e8";
-      };
-    }
-    {
-      name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+      name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
-      };
-    }
-    {
-      name = "hpkp___hpkp_2.0.0.tgz";
-      path = fetchurl {
-        name = "hpkp___hpkp_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz";
-        sha1 = "10e142264e76215a5d30c44ec43de64dee6d1672";
+        name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
+        sha1 = "dffc0bf9a21c02209090f2aa69429e1414daf3f9";
       };
     }
     {
@@ -5322,30 +5218,6 @@
       };
     }
     {
-      name = "hsts___hsts_2.2.0.tgz";
-      path = fetchurl {
-        name = "hsts___hsts_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/hsts/-/hsts-2.2.0.tgz";
-        sha1 = "09119d42f7a8587035d027dda4522366fe75d964";
-      };
-    }
-    {
-      name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-      path = fetchurl {
-        name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7";
-      };
-    }
-    {
-      name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
-      path = fetchurl {
-        name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
-        sha1 = "e70d84b94da53aa375e11fe3a351be6642ca46f8";
-      };
-    }
-    {
       name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
       path = fetchurl {
         name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
@@ -5362,11 +5234,11 @@
       };
     }
     {
-      name = "html_webpack_plugin___html_webpack_plugin_4.5.0.tgz";
+      name = "html_webpack_plugin___html_webpack_plugin_4.5.2.tgz";
       path = fetchurl {
-        name = "html_webpack_plugin___html_webpack_plugin_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz";
-        sha1 = "625097650886b97ea5dae331c320e3238f6c121c";
+        name = "html_webpack_plugin___html_webpack_plugin_4.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz";
+        sha1 = "76fc83fa1a0f12dd5f7da0404a54e2699666bc12";
       };
     }
     {
@@ -5410,11 +5282,19 @@
       };
     }
     {
-      name = "i18n___i18n_0.13.2.tgz";
+      name = "human_signals___human_signals_2.1.0.tgz";
+      path = fetchurl {
+        name = "human_signals___human_signals_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz";
+        sha1 = "dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0";
+      };
+    }
+    {
+      name = "i18n___i18n_0.13.3.tgz";
       path = fetchurl {
-        name = "i18n___i18n_0.13.2.tgz";
-        url  = "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz";
-        sha1 = "3886678fe7cbbed45bac2ce53b8144c788a1c1b5";
+        name = "i18n___i18n_0.13.3.tgz";
+        url  = "https://registry.yarnpkg.com/i18n/-/i18n-0.13.3.tgz";
+        sha1 = "5820f48d87a77cf14e064719bee9bc682ed550eb";
       };
     }
     {
@@ -5442,11 +5322,11 @@
       };
     }
     {
-      name = "icss_utils___icss_utils_4.1.1.tgz";
+      name = "icss_utils___icss_utils_5.1.0.tgz";
       path = fetchurl {
-        name = "icss_utils___icss_utils_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz";
-        sha1 = "21170b53789ee27447c2f47dd683081403f9a467";
+        name = "icss_utils___icss_utils_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz";
+        sha1 = "c6be6858abd013d768e98366ae47e25d5887b1ae";
       };
     }
     {
@@ -5474,11 +5354,11 @@
       };
     }
     {
-      name = "ignore_walk___ignore_walk_3.0.3.tgz";
+      name = "ignore_walk___ignore_walk_3.0.4.tgz";
       path = fetchurl {
-        name = "ignore_walk___ignore_walk_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz";
-        sha1 = "017e2447184bfeade7c238e4aefdd1e8f95b1e37";
+        name = "ignore_walk___ignore_walk_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz";
+        sha1 = "c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335";
       };
     }
     {
@@ -5506,22 +5386,6 @@
       };
     }
     {
-    name = "node-imgur.git";
-    path =
-      let
-        repo = fetchgit {
-          url = "https://github.com/hackmdio/node-imgur.git";
-          rev = "de0a7a1f1eb2cb6628385fedb990ad396a190573";
-          sha256 = "11m1wyh6l3ngfgc3qdxa5drlagvniz82fi7c191nb27d3s0lcfmd";
-        };
-      in
-        runCommandNoCC "node-imgur.git" { buildInputs = [gnutar]; } ''
-          # Set u+w because tar-fs can't unpack archives with read-only dirs
-          # https://github.com/mafintosh/tar-fs/issues/79
-          tar cf $out --mode u+w -C ${repo} .
-        '';
-  }
-    {
       name = "import_fresh___import_fresh_2.0.0.tgz";
       path = fetchurl {
         name = "import_fresh___import_fresh_2.0.0.tgz";
@@ -5538,19 +5402,19 @@
       };
     }
     {
-      name = "import_local___import_local_2.0.0.tgz";
+      name = "import_local___import_local_3.0.2.tgz";
       path = fetchurl {
-        name = "import_local___import_local_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
-        sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
+        name = "import_local___import_local_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz";
+        sha1 = "a8cfd0431d1de4a2199703d003e3e62364fa6db6";
       };
     }
     {
-      name = "imports_loader___imports_loader_0.8.0.tgz";
+      name = "imports_loader___imports_loader_1.2.0.tgz";
       path = fetchurl {
-        name = "imports_loader___imports_loader_0.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz";
-        sha1 = "030ea51b8ca05977c40a3abfd9b4088fe0be9a69";
+        name = "imports_loader___imports_loader_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/imports-loader/-/imports-loader-1.2.0.tgz";
+        sha1 = "b06823d0bb42e6f5ff89bc893829000eda46693f";
       };
     }
     {
@@ -5642,19 +5506,11 @@
       };
     }
     {
-      name = "inquirer___inquirer_6.5.2.tgz";
-      path = fetchurl {
-        name = "inquirer___inquirer_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz";
-        sha1 = "ad50942375d036d327ff528c08bd5fab089928ca";
-      };
-    }
-    {
-      name = "interpret___interpret_1.4.0.tgz";
+      name = "interpret___interpret_2.2.0.tgz";
       path = fetchurl {
-        name = "interpret___interpret_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz";
-        sha1 = "665ab8bc4da27a774a40584e812e3e0fa45b1a1e";
+        name = "interpret___interpret_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz";
+        sha1 = "1a78a0b5965c40a5416d007ad6f50ad27c417df9";
       };
     }
     {
@@ -5714,14 +5570,6 @@
       };
     }
     {
-      name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz";
-        sha1 = "4a9cef71daf4c001c1d81d63d140cf53fd6889f4";
-      };
-    }
-    {
       name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
       path = fetchurl {
         name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
@@ -5754,6 +5602,14 @@
       };
     }
     {
+      name = "is_bigint___is_bigint_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_bigint___is_bigint_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz";
+        sha1 = "ffb381442503235ad245ea89e45b3dbff040ee5a";
+      };
+    }
+    {
       name = "is_binary_path___is_binary_path_1.0.1.tgz";
       path = fetchurl {
         name = "is_binary_path___is_binary_path_1.0.1.tgz";
@@ -5778,6 +5634,14 @@
       };
     }
     {
+      name = "is_boolean_object___is_boolean_object_1.1.1.tgz";
+      path = fetchurl {
+        name = "is_boolean_object___is_boolean_object_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz";
+        sha1 = "3c0878f035cb821228d350d2e1e36719716a3de8";
+      };
+    }
+    {
       name = "is_buffer___is_buffer_1.1.6.tgz";
       path = fetchurl {
         name = "is_buffer___is_buffer_1.1.6.tgz";
@@ -5794,11 +5658,11 @@
       };
     }
     {
-      name = "is_callable___is_callable_1.2.2.tgz";
+      name = "is_callable___is_callable_1.2.3.tgz";
       path = fetchurl {
-        name = "is_callable___is_callable_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz";
-        sha1 = "c7c6715cd22d4ddb48d3e19970223aceabb080d9";
+        name = "is_callable___is_callable_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz";
+        sha1 = "8b1e0500b73a1d76c70487636f368e519de8db8e";
       };
     }
     {
@@ -5810,11 +5674,11 @@
       };
     }
     {
-      name = "is_core_module___is_core_module_2.2.0.tgz";
+      name = "is_core_module___is_core_module_2.4.0.tgz";
       path = fetchurl {
-        name = "is_core_module___is_core_module_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz";
-        sha1 = "97037ef3d52224d85163f5597b2b63d9afed981a";
+        name = "is_core_module___is_core_module_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz";
+        sha1 = "8e9fc8e15027b011418026e98f0e6f4d86305cc1";
       };
     }
     {
@@ -5834,11 +5698,11 @@
       };
     }
     {
-      name = "is_date_object___is_date_object_1.0.2.tgz";
+      name = "is_date_object___is_date_object_1.0.4.tgz";
       path = fetchurl {
-        name = "is_date_object___is_date_object_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha1 = "bda736f2cd8fd06d32844e7743bfa7494c3bfd7e";
+        name = "is_date_object___is_date_object_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz";
+        sha1 = "550cfcc03afada05eea3dd30981c7b09551f73e5";
       };
     }
     {
@@ -5994,6 +5858,14 @@
       };
     }
     {
+      name = "is_map___is_map_2.0.2.tgz";
+      path = fetchurl {
+        name = "is_map___is_map_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz";
+        sha1 = "00922db8c9bf73e81b7a335827bc2a43f2b91127";
+      };
+    }
+    {
       name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
       path = fetchurl {
         name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
@@ -6002,6 +5874,14 @@
       };
     }
     {
+      name = "is_number_object___is_number_object_1.0.5.tgz";
+      path = fetchurl {
+        name = "is_number_object___is_number_object_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz";
+        sha1 = "6edfaeed7950cff19afedce9fbfca9ee6dd289eb";
+      };
+    }
+    {
       name = "is_number___is_number_2.1.0.tgz";
       path = fetchurl {
         name = "is_number___is_number_2.1.0.tgz";
@@ -6042,14 +5922,6 @@
       };
     }
     {
-      name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
-        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
-      };
-    }
-    {
       name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
       path = fetchurl {
         name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
@@ -6082,14 +5954,6 @@
       };
     }
     {
-      name = "is_promise___is_promise_2.2.2.tgz";
-      path = fetchurl {
-        name = "is_promise___is_promise_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz";
-        sha1 = "39ab959ccbf9a774cf079f7b40c7a26f763135f1";
-      };
-    }
-    {
       name = "is_property___is_property_1.0.2.tgz";
       path = fetchurl {
         name = "is_property___is_property_1.0.2.tgz";
@@ -6098,11 +5962,11 @@
       };
     }
     {
-      name = "is_regex___is_regex_1.1.1.tgz";
+      name = "is_regex___is_regex_1.1.3.tgz";
       path = fetchurl {
-        name = "is_regex___is_regex_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz";
-        sha1 = "c6f98aacc546f6cec5468a07b7b153ab564a57b9";
+        name = "is_regex___is_regex_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz";
+        sha1 = "d029f9aff6448b93ebbe3f33dac71511fdcbef9f";
       };
     }
     {
@@ -6114,6 +5978,14 @@
       };
     }
     {
+      name = "is_set___is_set_2.0.2.tgz";
+      path = fetchurl {
+        name = "is_set___is_set_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz";
+        sha1 = "90755fa4c2562dc1c5d4024760d6119b94ca18ec";
+      };
+    }
+    {
       name = "is_stream___is_stream_2.0.0.tgz";
       path = fetchurl {
         name = "is_stream___is_stream_2.0.0.tgz";
@@ -6122,27 +5994,35 @@
       };
     }
     {
-      name = "is_string___is_string_1.0.5.tgz";
+      name = "is_string___is_string_1.0.6.tgz";
+      path = fetchurl {
+        name = "is_string___is_string_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz";
+        sha1 = "3fe5d5992fb0d93404f32584d4b0179a71b54a5f";
+      };
+    }
+    {
+      name = "is_svg___is_svg_4.3.1.tgz";
       path = fetchurl {
-        name = "is_string___is_string_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
-        sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
+        name = "is_svg___is_svg_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz";
+        sha1 = "8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b";
       };
     }
     {
-      name = "is_svg___is_svg_3.0.0.tgz";
+      name = "is_symbol___is_symbol_1.0.4.tgz";
       path = fetchurl {
-        name = "is_svg___is_svg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz";
-        sha1 = "9321dbd29c212e5ca99c4fa9794c714bcafa2f75";
+        name = "is_symbol___is_symbol_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz";
+        sha1 = "a6dac93b635b063ca6872236de88910a57af139c";
       };
     }
     {
-      name = "is_symbol___is_symbol_1.0.3.tgz";
+      name = "is_typed_array___is_typed_array_1.1.5.tgz";
       path = fetchurl {
-        name = "is_symbol___is_symbol_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937";
+        name = "is_typed_array___is_typed_array_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz";
+        sha1 = "f32e6e096455e329eb7b423862456aa213f0eb4e";
       };
     }
     {
@@ -6154,35 +6034,35 @@
       };
     }
     {
-      name = "is_what___is_what_3.12.0.tgz";
+      name = "is_weakmap___is_weakmap_2.0.1.tgz";
       path = fetchurl {
-        name = "is_what___is_what_3.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz";
-        sha1 = "f4405ce4bd6dd420d3ced51a026fb90e03705e55";
+        name = "is_weakmap___is_weakmap_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz";
+        sha1 = "5008b59bdc43b698201d18f62b37b2ca243e8cf2";
       };
     }
     {
-      name = "is_whitespace_character___is_whitespace_character_1.0.4.tgz";
+      name = "is_weakset___is_weakset_2.0.1.tgz";
       path = fetchurl {
-        name = "is_whitespace_character___is_whitespace_character_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz";
-        sha1 = "0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7";
+        name = "is_weakset___is_weakset_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.1.tgz";
+        sha1 = "e9a0af88dbd751589f5e50d80f4c98b780884f83";
       };
     }
     {
-      name = "is_windows___is_windows_1.0.2.tgz";
+      name = "is_what___is_what_3.14.1.tgz";
       path = fetchurl {
-        name = "is_windows___is_windows_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
-        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+        name = "is_what___is_what_3.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz";
+        sha1 = "e1222f46ddda85dead0fd1c9df131760e77755c1";
       };
     }
     {
-      name = "is_word_character___is_word_character_1.0.4.tgz";
+      name = "is_windows___is_windows_1.0.2.tgz";
       path = fetchurl {
-        name = "is_word_character___is_word_character_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz";
-        sha1 = "ce0e73216f98599060592f62ff31354ddbeb0230";
+        name = "is_windows___is_windows_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
       };
     }
     {
@@ -6218,6 +6098,14 @@
       };
     }
     {
+      name = "isarray___isarray_2.0.5.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz";
+        sha1 = "8af1e4c1221244cc62459faf38940d4e644a5723";
+      };
+    }
+    {
       name = "isexe___isexe_2.0.0.tgz";
       path = fetchurl {
         name = "isexe___isexe_2.0.0.tgz";
@@ -6250,6 +6138,14 @@
       };
     }
     {
+      name = "jake___jake_10.8.2.tgz";
+      path = fetchurl {
+        name = "jake___jake_10.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
+        sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
+      };
+    }
+    {
       name = "jmespath___jmespath_0.15.0.tgz";
       path = fetchurl {
         name = "jmespath___jmespath_0.15.0.tgz";
@@ -6258,6 +6154,14 @@
       };
     }
     {
+      name = "joycon___joycon_3.0.1.tgz";
+      path = fetchurl {
+        name = "joycon___joycon_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz";
+        sha1 = "9074c9b08ccf37a6726ff74a18485f85efcaddaf";
+      };
+    }
+    {
       name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz";
       path = fetchurl {
         name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz";
@@ -6274,19 +6178,11 @@
       };
     }
     {
-      name = "jquery___jquery_3.5.1.tgz";
-      path = fetchurl {
-        name = "jquery___jquery_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz";
-        sha1 = "d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5";
-      };
-    }
-    {
-      name = "js_beautify___js_beautify_1.13.4.tgz";
+      name = "jquery___jquery_3.6.0.tgz";
       path = fetchurl {
-        name = "js_beautify___js_beautify_1.13.4.tgz";
-        url  = "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.4.tgz";
-        sha1 = "1cad80b9e89cfc455b3a14f0eaf4dc10b6ae1206";
+        name = "jquery___jquery_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz";
+        sha1 = "c72a09f15c1bdce142f49dbf1170bdf8adac2470";
       };
     }
     {
@@ -6338,6 +6234,22 @@
       };
     }
     {
+      name = "js_yaml___js_yaml_4.0.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz";
+        sha1 = "f426bc0ff4b4051926cd588c71113183409a121f";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_4.1.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha1 = "c1fb65f8f5017901cdd2c951864ba18458a10602";
+      };
+    }
+    {
       name = "jsbi___jsbi_3.1.4.tgz";
       path = fetchurl {
         name = "jsbi___jsbi_3.1.4.tgz";
@@ -6362,14 +6274,6 @@
       };
     }
     {
-      name = "jsdom___jsdom_11.12.0.tgz";
-      path = fetchurl {
-        name = "jsdom___jsdom_11.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz";
-        sha1 = "1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8";
-      };
-    }
-    {
       name = "jsesc___jsesc_1.3.0.tgz";
       path = fetchurl {
         name = "jsesc___jsesc_1.3.0.tgz";
@@ -6418,6 +6322,14 @@
       };
     }
     {
+      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+      };
+    }
+    {
       name = "json_schema___json_schema_0.2.3.tgz";
       path = fetchurl {
         name = "json_schema___json_schema_0.2.3.tgz";
@@ -6466,19 +6378,11 @@
       };
     }
     {
-      name = "json5___json5_2.1.3.tgz";
+      name = "json5___json5_2.2.0.tgz";
       path = fetchurl {
-        name = "json5___json5_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
-        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
-      };
-    }
-    {
-      name = "jsonfile___jsonfile_4.0.0.tgz";
-      path = fetchurl {
-        name = "jsonfile___jsonfile_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+        name = "json5___json5_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz";
+        sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3";
       };
     }
     {
@@ -6530,11 +6434,11 @@
       };
     }
     {
-      name = "khroma___khroma_1.2.0.tgz";
+      name = "khroma___khroma_1.4.1.tgz";
       path = fetchurl {
-        name = "khroma___khroma_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/khroma/-/khroma-1.2.0.tgz";
-        sha1 = "46dcc9d7533923c228b51724db108f11fec108d8";
+        name = "khroma___khroma_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/khroma/-/khroma-1.4.1.tgz";
+        sha1 = "ad6a5b6a972befc5112ce5129887a1a83af2c003";
       };
     }
     {
@@ -6570,6 +6474,14 @@
       };
     }
     {
+      name = "klona___klona_2.0.4.tgz";
+      path = fetchurl {
+        name = "klona___klona_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz";
+        sha1 = "7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0";
+      };
+    }
+    {
       name = "kuler___kuler_2.0.0.tgz";
       path = fetchurl {
         name = "kuler___kuler_2.0.0.tgz";
@@ -6594,59 +6506,51 @@
       };
     }
     {
-      name = "ldap_filter___ldap_filter_0.2.2.tgz";
-      path = fetchurl {
-        name = "ldap_filter___ldap_filter_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz";
-        sha1 = "f2b842be0b86da3352798505b31ebcae590d77d0";
-      };
-    }
-    {
-      name = "ldapauth_fork___ldapauth_fork_4.3.3.tgz";
+      name = "ldap_filter___ldap_filter_0.3.3.tgz";
       path = fetchurl {
-        name = "ldapauth_fork___ldapauth_fork_4.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-4.3.3.tgz";
-        sha1 = "d62c8f18a5035fd47a572f2ac7aa8c8227b3f4c2";
+        name = "ldap_filter___ldap_filter_0.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.3.3.tgz";
+        sha1 = "2b14c68a2a9d4104dbdbc910a1ca85fd189e9797";
       };
     }
     {
-      name = "ldapjs___ldapjs_1.0.2.tgz";
+      name = "ldapauth_fork___ldapauth_fork_5.0.1.tgz";
       path = fetchurl {
-        name = "ldapjs___ldapjs_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz";
-        sha1 = "544ff7032b7b83c68f0701328d9297aa694340f9";
+        name = "ldapauth_fork___ldapauth_fork_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-5.0.1.tgz";
+        sha1 = "18779a9c30371c5bbea02e3b6aaadb60819ad29c";
       };
     }
     {
-      name = "left_pad___left_pad_1.3.0.tgz";
+      name = "ldapjs___ldapjs_2.2.4.tgz";
       path = fetchurl {
-        name = "left_pad___left_pad_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz";
-        sha1 = "5b8a3a7765dfe001261dde915589e782f8c94d1e";
+        name = "ldapjs___ldapjs_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/ldapjs/-/ldapjs-2.2.4.tgz";
+        sha1 = "d4e3f4ae2277b6e760a83ebd61f7f5c4097c446b";
       };
     }
     {
-      name = "less_loader___less_loader_5.0.0.tgz";
+      name = "less_loader___less_loader_7.3.0.tgz";
       path = fetchurl {
-        name = "less_loader___less_loader_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz";
-        sha1 = "498dde3a6c6c4f887458ee9ed3f086a12ad1b466";
+        name = "less_loader___less_loader_7.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/less-loader/-/less-loader-7.3.0.tgz";
+        sha1 = "f9d6d36d18739d642067a05fb5bd70c8c61317e5";
       };
     }
     {
-      name = "less___less_3.13.1.tgz";
+      name = "less___less_4.1.1.tgz";
       path = fetchurl {
-        name = "less___less_3.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz";
-        sha1 = "0ebc91d2a0e9c0c6735b83d496b0ab0583077909";
+        name = "less___less_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/less/-/less-4.1.1.tgz";
+        sha1 = "15bf253a9939791dc690888c3ff424f3e6c7edba";
       };
     }
     {
-      name = "levn___levn_0.3.0.tgz";
+      name = "levn___levn_0.4.1.tgz";
       path = fetchurl {
-        name = "levn___levn_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
-        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+        name = "levn___levn_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+        sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
       };
     }
     {
@@ -6666,19 +6570,19 @@
       };
     }
     {
-      name = "linkify_it___linkify_it_2.2.0.tgz";
+      name = "linkify_it___linkify_it_3.0.2.tgz";
       path = fetchurl {
-        name = "linkify_it___linkify_it_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz";
-        sha1 = "e3b54697e78bf915c70a38acd78fd09e0058b1cf";
+        name = "linkify_it___linkify_it_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz";
+        sha1 = "f55eeb8bc1d3ae754049e124ab3bb56d97797fb8";
       };
     }
     {
-      name = "list.js___list.js_1.5.0.tgz";
+      name = "list.js___list.js_2.3.1.tgz";
       path = fetchurl {
-        name = "list.js___list.js_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/list.js/-/list.js-1.5.0.tgz";
-        sha1 = "a4cbfc8281ddefc02fdb2d30c8748bfae25fbcda";
+        name = "list.js___list.js_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/list.js/-/list.js-2.3.1.tgz";
+        sha1 = "48961989ffe52b0505e352f7a521f819f51df7e7";
       };
     }
     {
@@ -6746,6 +6650,14 @@
       };
     }
     {
+      name = "locate_path___locate_path_6.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz";
+        sha1 = "55321eb309febbc59c4801d931a72452a681d286";
+      };
+    }
+    {
       name = "lodash.assignin___lodash.assignin_4.2.0.tgz";
       path = fetchurl {
         name = "lodash.assignin___lodash.assignin_4.2.0.tgz";
@@ -6762,6 +6674,14 @@
       };
     }
     {
+      name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    }
+    {
       name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
       path = fetchurl {
         name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
@@ -6802,6 +6722,14 @@
       };
     }
     {
+      name = "lodash.get___lodash.get_4.4.2.tgz";
+      path = fetchurl {
+        name = "lodash.get___lodash.get_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
+        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+      };
+    }
+    {
       name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
       path = fetchurl {
         name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz";
@@ -6866,11 +6794,11 @@
       };
     }
     {
-      name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+      name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
       path = fetchurl {
-        name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
-        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+        name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
       };
     }
     {
@@ -6890,11 +6818,19 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.20.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.20.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
-        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
+      };
+    }
+    {
+      name = "log_symbols___log_symbols_4.0.0.tgz";
+      path = fetchurl {
+        name = "log_symbols___log_symbols_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha1 = "69b3cc46d20f448eccdb75ea1fa733d9e821c920";
       };
     }
     {
@@ -6970,14 +6906,6 @@
       };
     }
     {
-      name = "lru_queue___lru_queue_0.1.0.tgz";
-      path = fetchurl {
-        name = "lru_queue___lru_queue_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz";
-        sha1 = "2738bd9f0d3cf4f84490c5736c48699ac632cda3";
-      };
-    }
-    {
       name = "lutim___lutim_1.0.3.tgz";
       path = fetchurl {
         name = "lutim___lutim_1.0.3.tgz";
@@ -7058,19 +6986,11 @@
       };
     }
     {
-      name = "mariadb___mariadb_2.5.2.tgz";
+      name = "mariadb___mariadb_2.5.3.tgz";
       path = fetchurl {
-        name = "mariadb___mariadb_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.2.tgz";
-        sha1 = "0046331541589a9c0405507d91d79bcc972b3f5e";
-      };
-    }
-    {
-      name = "markdown_escapes___markdown_escapes_1.0.4.tgz";
-      path = fetchurl {
-        name = "markdown_escapes___markdown_escapes_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz";
-        sha1 = "c95415ef451499d7602b91095f3c8e8975f78535";
+        name = "mariadb___mariadb_2.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.3.tgz";
+        sha1 = "13a2267f7f1b572f9db997aaaa8c00f75d5a87e8";
       };
     }
     {
@@ -7090,11 +7010,11 @@
       };
     }
     {
-      name = "markdown_it_container___markdown_it_container_2.0.0.tgz";
+      name = "markdown_it_container___markdown_it_container_3.0.0.tgz";
       path = fetchurl {
-        name = "markdown_it_container___markdown_it_container_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz";
-        sha1 = "0019b43fd02eefece2f1960a2895fba81a404695";
+        name = "markdown_it_container___markdown_it_container_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz";
+        sha1 = "1d19b06040a020f9a827577bb7dbf67aa5de9a5b";
       };
     }
     {
@@ -7106,11 +7026,11 @@
       };
     }
     {
-      name = "markdown_it_emoji___markdown_it_emoji_1.4.0.tgz";
+      name = "markdown_it_emoji___markdown_it_emoji_2.0.0.tgz";
       path = fetchurl {
-        name = "markdown_it_emoji___markdown_it_emoji_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz";
-        sha1 = "9bee0e9a990a963ba96df6980c4fddb05dfb4dcc";
+        name = "markdown_it_emoji___markdown_it_emoji_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz";
+        sha1 = "3164ad4c009efd946e98274f7562ad611089a231";
       };
     }
     {
@@ -7130,19 +7050,19 @@
       };
     }
     {
-      name = "markdown_it_ins___markdown_it_ins_2.0.0.tgz";
+      name = "markdown_it_ins___markdown_it_ins_3.0.1.tgz";
       path = fetchurl {
-        name = "markdown_it_ins___markdown_it_ins_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it-ins/-/markdown-it-ins-2.0.0.tgz";
-        sha1 = "a5aa6a30f1e2f71e9497567cfdff40f1fde67483";
+        name = "markdown_it_ins___markdown_it_ins_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it-ins/-/markdown-it-ins-3.0.1.tgz";
+        sha1 = "c09356b917cf1dbf73add0b275d67ab8c73d4b4d";
       };
     }
     {
-      name = "markdown_it_mark___markdown_it_mark_2.0.0.tgz";
+      name = "markdown_it_mark___markdown_it_mark_3.0.1.tgz";
       path = fetchurl {
-        name = "markdown_it_mark___markdown_it_mark_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it-mark/-/markdown-it-mark-2.0.0.tgz";
-        sha1 = "46a1aa947105aed8188978e0a016179e404f42c7";
+        name = "markdown_it_mark___markdown_it_mark_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz";
+        sha1 = "51257db58787d78aaf46dc13418d99a9f3f0ebd3";
       };
     }
     {
@@ -7178,27 +7098,19 @@
       };
     }
     {
-      name = "markdown_it___markdown_it_10.0.0.tgz";
-      path = fetchurl {
-        name = "markdown_it___markdown_it_10.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz";
-        sha1 = "abfc64f141b1722d663402044e43927f1f50a8dc";
-      };
-    }
-    {
-      name = "markdown_table___markdown_table_2.0.0.tgz";
+      name = "markdown_it___markdown_it_12.0.6.tgz";
       path = fetchurl {
-        name = "markdown_table___markdown_table_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz";
-        sha1 = "194a90ced26d31fe753d8b9434430214c011865b";
+        name = "markdown_it___markdown_it_12.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.6.tgz";
+        sha1 = "adcc8e5fe020af292ccbdf161fe84f1961516138";
       };
     }
     {
-      name = "marked___marked_1.2.7.tgz";
+      name = "marked___marked_2.0.3.tgz";
       path = fetchurl {
-        name = "marked___marked_1.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/marked/-/marked-1.2.7.tgz";
-        sha1 = "6e14b595581d2319cdcf033a24caaf41455a01fb";
+        name = "marked___marked_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/marked/-/marked-2.0.3.tgz";
+        sha1 = "3551c4958c4da36897bda2a16812ef1399c8d6b0";
       };
     }
     {
@@ -7258,11 +7170,11 @@
       };
     }
     {
-      name = "mdast_util_compact___mdast_util_compact_2.0.1.tgz";
+      name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
       path = fetchurl {
-        name = "mdast_util_compact___mdast_util_compact_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz";
-        sha1 = "cabc69a2f43103628326f35b1acf735d55c99490";
+        name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz";
+        sha1 = "d1ef2ca42bc377ecb0463a987910dae89bd9a28c";
       };
     }
     {
@@ -7274,6 +7186,14 @@
       };
     }
     {
+      name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+      path = fetchurl {
+        name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz";
+        sha1 = "b33f67ca820d69e6cc527a93d4039249b504bebe";
+      };
+    }
+    {
       name = "mdast_util_to_string___mdast_util_to_string_1.1.0.tgz";
       path = fetchurl {
         name = "mdast_util_to_string___mdast_util_to_string_1.1.0.tgz";
@@ -7282,6 +7202,14 @@
       };
     }
     {
+      name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
+      path = fetchurl {
+        name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz";
+        sha1 = "b8cfe6a713e1091cb5b728fc48885a4767f8b97b";
+      };
+    }
+    {
       name = "mdn_data___mdn_data_2.0.14.tgz";
       path = fetchurl {
         name = "mdn_data___mdn_data_2.0.14.tgz";
@@ -7314,14 +7242,6 @@
       };
     }
     {
-      name = "memoizee___memoizee_0.4.15.tgz";
-      path = fetchurl {
-        name = "memoizee___memoizee_0.4.15.tgz";
-        url  = "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz";
-        sha1 = "e6f3d2da863f318d02225391829a6c5956555b72";
-      };
-    }
-    {
       name = "memory_fs___memory_fs_0.4.1.tgz";
       path = fetchurl {
         name = "memory_fs___memory_fs_0.4.1.tgz";
@@ -7346,6 +7266,14 @@
       };
     }
     {
+      name = "merge_stream___merge_stream_2.0.0.tgz";
+      path = fetchurl {
+        name = "merge_stream___merge_stream_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz";
+        sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60";
+      };
+    }
+    {
       name = "merge2___merge2_1.4.1.tgz";
       path = fetchurl {
         name = "merge2___merge2_1.4.1.tgz";
@@ -7354,11 +7282,11 @@
       };
     }
     {
-      name = "mermaid___mermaid_8.8.4.tgz";
+      name = "mermaid___mermaid_8.10.1.tgz";
       path = fetchurl {
-        name = "mermaid___mermaid_8.8.4.tgz";
-        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.8.4.tgz";
-        sha1 = "5ea699bcfa1ef848d78b2ce8efb1e0118f30d9f7";
+        name = "mermaid___mermaid_8.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.10.1.tgz";
+        sha1 = "9573f702024e2173f4aa07d9b207d750507cf838";
       };
     }
     {
@@ -7391,8 +7319,8 @@
       let
         repo = fetchgit {
           url = "https://github.com/hedgedoc/meta-marked";
-          rev = "4fb5cb5a204969cc91e66eee92c0211188e69a2b";
-          sha256 = "05fi7p37zqqbrrk929pp6945prg4qb27q0rm81ginw3aqawps33c";
+          rev = "3002adae670a6de0a845f3da7a7223d458c20d76";
+          sha256 = "1rgmap95akwf9z72msxpqcfy95h8pqz9c8vn9xvvibfb5jf46lv0";
         };
       in
         runCommandNoCC "meta-marked" { buildInputs = [gnutar]; } ''
@@ -7402,11 +7330,11 @@
         '';
   }
     {
-      name = "method_override___method_override_2.3.10.tgz";
+      name = "method_override___method_override_3.0.0.tgz";
       path = fetchurl {
-        name = "method_override___method_override_2.3.10.tgz";
-        url  = "https://registry.yarnpkg.com/method-override/-/method-override-2.3.10.tgz";
-        sha1 = "e3daf8d5dee10dd2dce7d4ae88d62bbee77476b4";
+        name = "method_override___method_override_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/method-override/-/method-override-3.0.0.tgz";
+        sha1 = "6ab0d5d574e3208f15b0c9cf45ab52000468d7a2";
       };
     }
     {
@@ -7418,6 +7346,14 @@
       };
     }
     {
+      name = "micromark___micromark_2.11.4.tgz";
+      path = fetchurl {
+        name = "micromark___micromark_2.11.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz";
+        sha1 = "d13436138eea826383e822449c9a5c50ee44665a";
+      };
+    }
+    {
       name = "micromatch___micromatch_2.3.11.tgz";
       path = fetchurl {
         name = "micromatch___micromatch_2.3.11.tgz";
@@ -7434,11 +7370,11 @@
       };
     }
     {
-      name = "micromatch___micromatch_4.0.2.tgz";
+      name = "micromatch___micromatch_4.0.4.tgz";
       path = fetchurl {
-        name = "micromatch___micromatch_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
-        sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+        name = "micromatch___micromatch_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz";
+        sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9";
       };
     }
     {
@@ -7450,19 +7386,19 @@
       };
     }
     {
-      name = "mime_db___mime_db_1.45.0.tgz";
+      name = "mime_db___mime_db_1.47.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.45.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz";
-        sha1 = "cceeda21ccd7c3a745eba2decd55d4b73e7879ea";
+        name = "mime_db___mime_db_1.47.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz";
+        sha1 = "8cb313e59965d3c05cfbf898915a267af46a335c";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.28.tgz";
+      name = "mime_types___mime_types_2.1.30.tgz";
       path = fetchurl {
-        name = "mime_types___mime_types_2.1.28.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz";
-        sha1 = "1160c4757eab2c5363888e005273ecf79d2a0ecd";
+        name = "mime_types___mime_types_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz";
+        sha1 = "6e7be8b4c479825f85ed6326695db73f9305d62d";
       };
     }
     {
@@ -7482,27 +7418,19 @@
       };
     }
     {
-      name = "mime___mime_2.4.7.tgz";
-      path = fetchurl {
-        name = "mime___mime_2.4.7.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz";
-        sha1 = "962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74";
-      };
-    }
-    {
-      name = "mimic_fn___mimic_fn_1.2.0.tgz";
+      name = "mimic_fn___mimic_fn_2.1.0.tgz";
       path = fetchurl {
-        name = "mimic_fn___mimic_fn_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
-        sha1 = "820c86a39334640e99516928bd03fca88057d022";
+        name = "mimic_fn___mimic_fn_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
+        sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
       };
     }
     {
-      name = "mini_css_extract_plugin___mini_css_extract_plugin_0.12.0.tgz";
+      name = "mini_css_extract_plugin___mini_css_extract_plugin_1.6.0.tgz";
       path = fetchurl {
-        name = "mini_css_extract_plugin___mini_css_extract_plugin_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.12.0.tgz";
-        sha1 = "ddeb74fd6304ca9f99c1db74acc7d5b507705454";
+        name = "mini_css_extract_plugin___mini_css_extract_plugin_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz";
+        sha1 = "b4db2525af2624899ed64a23b0016e0036411893";
       };
     }
     {
@@ -7538,14 +7466,6 @@
       };
     }
     {
-      name = "minimist___minimist_0.0.8.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    }
-    {
       name = "minimist___minimist_1.2.5.tgz";
       path = fetchurl {
         name = "minimist___minimist_1.2.5.tgz";
@@ -7554,11 +7474,11 @@
       };
     }
     {
-      name = "minio___minio_6.0.0.tgz";
+      name = "minio___minio_7.0.18.tgz";
       path = fetchurl {
-        name = "minio___minio_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/minio/-/minio-6.0.0.tgz";
-        sha1 = "7e514d38eaacf2264556b232f1c2c063cc6ca7ba";
+        name = "minio___minio_7.0.18.tgz";
+        url  = "https://registry.yarnpkg.com/minio/-/minio-7.0.18.tgz";
+        sha1 = "a2a6dae52a4dde9e35ed47cdf2accc21df4a512d";
       };
     }
     {
@@ -7634,14 +7554,6 @@
       };
     }
     {
-      name = "mkdirp___mkdirp_0.5.1.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
-      };
-    }
-    {
       name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
         name = "mkdirp___mkdirp_0.5.5.tgz";
@@ -7658,11 +7570,11 @@
       };
     }
     {
-      name = "mocha___mocha_5.2.0.tgz";
+      name = "mocha___mocha_8.4.0.tgz";
       path = fetchurl {
-        name = "mocha___mocha_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz";
-        sha1 = "6d8ae508f59167f940f2b5b3c4a612ae50c90ae6";
+        name = "mocha___mocha_8.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz";
+        sha1 = "677be88bf15980a3cae03a73e10a0fc3997f0cff";
       };
     }
     {
@@ -7682,11 +7594,11 @@
       };
     }
     {
-      name = "moment_timezone___moment_timezone_0.5.32.tgz";
+      name = "moment_timezone___moment_timezone_0.5.33.tgz";
       path = fetchurl {
-        name = "moment_timezone___moment_timezone_0.5.32.tgz";
-        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.32.tgz";
-        sha1 = "db7677cc3cc680fd30303ebd90b0da1ca0dfecc2";
+        name = "moment_timezone___moment_timezone_0.5.33.tgz";
+        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz";
+        sha1 = "b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c";
       };
     }
     {
@@ -7746,27 +7658,11 @@
       };
     }
     {
-      name = "mustache___mustache_4.1.0.tgz";
-      path = fetchurl {
-        name = "mustache___mustache_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mustache/-/mustache-4.1.0.tgz";
-        sha1 = "8c1b042238a982d2eb2d30efc6c14296ae3f699d";
-      };
-    }
-    {
-      name = "mute_stream___mute_stream_0.0.7.tgz";
-      path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
-        sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
-      };
-    }
-    {
-      name = "mv___mv_2.1.1.tgz";
+      name = "mustache___mustache_4.2.0.tgz";
       path = fetchurl {
-        name = "mv___mv_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz";
-        sha1 = "ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2";
+        name = "mustache___mustache_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz";
+        sha1 = "e5892324d60a12ec9c2a73359edca52972bf6f64";
       };
     }
     {
@@ -7794,6 +7690,14 @@
       };
     }
     {
+      name = "nanoid___nanoid_3.1.20.tgz";
+      path = fetchurl {
+        name = "nanoid___nanoid_3.1.20.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz";
+        sha1 = "badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788";
+      };
+    }
+    {
       name = "nanoid___nanoid_2.1.11.tgz";
       path = fetchurl {
         name = "nanoid___nanoid_2.1.11.tgz";
@@ -7802,6 +7706,14 @@
       };
     }
     {
+      name = "nanoid___nanoid_3.1.23.tgz";
+      path = fetchurl {
+        name = "nanoid___nanoid_3.1.23.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz";
+        sha1 = "f744086ce7c2bc47ee0a8472574d5c78e4183a81";
+      };
+    }
+    {
       name = "nanomatch___nanomatch_1.2.13.tgz";
       path = fetchurl {
         name = "nanomatch___nanomatch_1.2.13.tgz";
@@ -7818,14 +7730,6 @@
       };
     }
     {
-      name = "native_request___native_request_1.0.8.tgz";
-      path = fetchurl {
-        name = "native_request___native_request_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz";
-        sha1 = "8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb";
-      };
-    }
-    {
       name = "natural_compare___natural_compare_1.4.0.tgz";
       path = fetchurl {
         name = "natural_compare___natural_compare_1.4.0.tgz";
@@ -7834,14 +7738,6 @@
       };
     }
     {
-      name = "ncp___ncp_2.0.0.tgz";
-      path = fetchurl {
-        name = "ncp___ncp_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz";
-        sha1 = "195a21d6c46e361d2fb1281ba38b91e9df7bdbb3";
-      };
-    }
-    {
       name = "needle___needle_2.6.0.tgz";
       path = fetchurl {
         name = "needle___needle_2.6.0.tgz";
@@ -7866,30 +7762,6 @@
       };
     }
     {
-      name = "next_tick___next_tick_1.1.0.tgz";
-      path = fetchurl {
-        name = "next_tick___next_tick_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz";
-        sha1 = "1836ee30ad56d67ef281b22bd199f709449b35eb";
-      };
-    }
-    {
-      name = "next_tick___next_tick_1.0.0.tgz";
-      path = fetchurl {
-        name = "next_tick___next_tick_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz";
-        sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
-      };
-    }
-    {
-      name = "nice_try___nice_try_1.0.5.tgz";
-      path = fetchurl {
-        name = "nice_try___nice_try_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
-        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
-      };
-    }
-    {
       name = "no_case___no_case_2.3.2.tgz";
       path = fetchurl {
         name = "no_case___no_case_2.3.2.tgz";
@@ -7906,11 +7778,19 @@
       };
     }
     {
-      name = "nocache___nocache_2.1.0.tgz";
+      name = "node_addon_api___node_addon_api_3.1.0.tgz";
+      path = fetchurl {
+        name = "node_addon_api___node_addon_api_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz";
+        sha1 = "98b21931557466c6729e51cb77cd39c965f42239";
+      };
+    }
+    {
+      name = "node_fetch___node_fetch_2.6.1.tgz";
       path = fetchurl {
-        name = "nocache___nocache_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz";
-        sha1 = "120c9ffec43b5729b1d5de88cd71aa75a0ba491f";
+        name = "node_fetch___node_fetch_2.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
+        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
       };
     }
     {
@@ -7930,6 +7810,14 @@
       };
     }
     {
+      name = "node_gyp___node_gyp_3.8.0.tgz";
+      path = fetchurl {
+        name = "node_gyp___node_gyp_3.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz";
+        sha1 = "540304261c330e80d0d5edce253a68cb3964218c";
+      };
+    }
+    {
       name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
       path = fetchurl {
         name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
@@ -7946,11 +7834,11 @@
       };
     }
     {
-      name = "node_releases___node_releases_1.1.69.tgz";
+      name = "node_releases___node_releases_1.1.71.tgz";
       path = fetchurl {
-        name = "node_releases___node_releases_1.1.69.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.69.tgz";
-        sha1 = "3149dbde53b781610cd8b486d62d86e26c3725f6";
+        name = "node_releases___node_releases_1.1.71.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz";
+        sha1 = "cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb";
       };
     }
     {
@@ -7962,19 +7850,19 @@
       };
     }
     {
-      name = "nopt___nopt_4.0.3.tgz";
+      name = "nopt___nopt_3.0.6.tgz";
       path = fetchurl {
-        name = "nopt___nopt_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
-        sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
+        name = "nopt___nopt_3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
+        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
       };
     }
     {
-      name = "nopt___nopt_5.0.0.tgz";
+      name = "nopt___nopt_4.0.3.tgz";
       path = fetchurl {
-        name = "nopt___nopt_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz";
-        sha1 = "530942bb58a512fccafe53fe210f13a25355dc88";
+        name = "nopt___nopt_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
+        sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
       };
     }
     {
@@ -8002,14 +7890,6 @@
       };
     }
     {
-      name = "normalize_url___normalize_url_1.9.1.tgz";
-      path = fetchurl {
-        name = "normalize_url___normalize_url_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz";
-        sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
-      };
-    }
-    {
       name = "normalize_url___normalize_url_3.3.0.tgz";
       path = fetchurl {
         name = "normalize_url___normalize_url_3.3.0.tgz";
@@ -8018,11 +7898,11 @@
       };
     }
     {
-      name = "npm_bundled___npm_bundled_1.1.1.tgz";
+      name = "npm_bundled___npm_bundled_1.1.2.tgz";
       path = fetchurl {
-        name = "npm_bundled___npm_bundled_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz";
-        sha1 = "1edd570865a94cdb1bc8220775e29466c9fb234b";
+        name = "npm_bundled___npm_bundled_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz";
+        sha1 = "944c78789bd739035b70baa2ca5cc32b8d860bc1";
       };
     }
     {
@@ -8042,6 +7922,14 @@
       };
     }
     {
+      name = "npm_run_path___npm_run_path_4.0.1.tgz";
+      path = fetchurl {
+        name = "npm_run_path___npm_run_path_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz";
+        sha1 = "b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea";
+      };
+    }
+    {
       name = "npmlog___npmlog_4.1.2.tgz";
       path = fetchurl {
         name = "npmlog___npmlog_4.1.2.tgz";
@@ -8074,14 +7962,6 @@
       };
     }
     {
-      name = "nwsapi___nwsapi_2.2.0.tgz";
-      path = fetchurl {
-        name = "nwsapi___nwsapi_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz";
-        sha1 = "204879a9e3d068ff2a55139c2c772780681a38b7";
-      };
-    }
-    {
       name = "oauth_sign___oauth_sign_0.9.0.tgz";
       path = fetchurl {
         name = "oauth_sign___oauth_sign_0.9.0.tgz";
@@ -8114,19 +7994,19 @@
       };
     }
     {
-      name = "object_inspect___object_inspect_1.9.0.tgz";
+      name = "object_inspect___object_inspect_1.10.3.tgz";
       path = fetchurl {
-        name = "object_inspect___object_inspect_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz";
-        sha1 = "c90521d74e1127b67266ded3394ad6116986533a";
+        name = "object_inspect___object_inspect_1.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz";
+        sha1 = "c2aa7d2d09f50c99375704f7a0adf24c5782d369";
       };
     }
     {
-      name = "object_is___object_is_1.1.4.tgz";
+      name = "object_is___object_is_1.1.5.tgz";
       path = fetchurl {
-        name = "object_is___object_is_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz";
-        sha1 = "63d6c83c00a43f4cbc9434eb9757c8a5b8565068";
+        name = "object_is___object_is_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz";
+        sha1 = "b9deeaa5fc7f1846a0faecdceec138e5778f53ac";
       };
     }
     {
@@ -8154,11 +8034,11 @@
       };
     }
     {
-      name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.1.tgz";
+      name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
       path = fetchurl {
-        name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz";
-        sha1 = "0dfda8d108074d9c563e80490c883b6661091544";
+        name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
+        sha1 = "1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7";
       };
     }
     {
@@ -8178,11 +8058,11 @@
       };
     }
     {
-      name = "object.values___object.values_1.1.2.tgz";
+      name = "object.values___object.values_1.1.3.tgz";
       path = fetchurl {
-        name = "object.values___object.values_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz";
-        sha1 = "7a2015e06fcb0f546bd652486ce8583a4731c731";
+        name = "object.values___object.values_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz";
+        sha1 = "eaa8b1e17589f02f698db093f7c62ee1699742ee";
       };
     }
     {
@@ -8218,19 +8098,19 @@
       };
     }
     {
-      name = "onetime___onetime_2.0.1.tgz";
+      name = "onetime___onetime_5.1.2.tgz";
       path = fetchurl {
-        name = "onetime___onetime_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
-        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+        name = "onetime___onetime_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz";
+        sha1 = "d0e96ebb56b07476df1dd9c4806e5237985ca45e";
       };
     }
     {
-      name = "openid___openid_2.0.7.tgz";
+      name = "openid___openid_2.0.8.tgz";
       path = fetchurl {
-        name = "openid___openid_2.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/openid/-/openid-2.0.7.tgz";
-        sha1 = "37bf50af2aa692623364c004de35d41fd399c6e4";
+        name = "openid___openid_2.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/openid/-/openid-2.0.8.tgz";
+        sha1 = "e3a09b55641101156ad086971721a98d0723c547";
       };
     }
     {
@@ -8242,11 +8122,11 @@
       };
     }
     {
-      name = "optionator___optionator_0.8.3.tgz";
+      name = "optionator___optionator_0.9.1.tgz";
       path = fetchurl {
-        name = "optionator___optionator_0.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
-        sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
+        name = "optionator___optionator_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+        sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
       };
     }
     {
@@ -8338,6 +8218,14 @@
       };
     }
     {
+      name = "p_locate___p_locate_5.0.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz";
+        sha1 = "83c8315c6785005e3bd021839411c9e110e6d834";
+      };
+    }
+    {
       name = "p_map___p_map_4.0.0.tgz";
       path = fetchurl {
         name = "p_map___p_map_4.0.0.tgz";
@@ -8450,27 +8338,19 @@
       };
     }
     {
-      name = "parse_json___parse_json_5.1.0.tgz";
+      name = "parse_json___parse_json_5.2.0.tgz";
       path = fetchurl {
-        name = "parse_json___parse_json_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz";
-        sha1 = "f96088cdf24a8faa9aea9a009f2d9d942c999646";
+        name = "parse_json___parse_json_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz";
+        sha1 = "c76fc66dee54231c962b22bcc8a72cf2f99753cd";
       };
     }
     {
-      name = "parse_passwd___parse_passwd_1.0.0.tgz";
+      name = "parse_node_version___parse_node_version_1.0.1.tgz";
       path = fetchurl {
-        name = "parse_passwd___parse_passwd_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
-        sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
-      };
-    }
-    {
-      name = "parse5___parse5_4.0.0.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz";
-        sha1 = "6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608";
+        name = "parse_node_version___parse_node_version_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz";
+        sha1 = "e2b5dbede00e7fa9bc363607f53327e8b073189b";
       };
     }
     {
@@ -8522,11 +8402,11 @@
       };
     }
     {
-      name = "passport_facebook___passport_facebook_2.1.1.tgz";
+      name = "passport_facebook___passport_facebook_3.0.0.tgz";
       path = fetchurl {
-        name = "passport_facebook___passport_facebook_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/passport-facebook/-/passport-facebook-2.1.1.tgz";
-        sha1 = "c39d0b52ae4d59163245a4e21a7b9b6321303311";
+        name = "passport_facebook___passport_facebook_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/passport-facebook/-/passport-facebook-3.0.0.tgz";
+        sha1 = "b16f7314128be55d020a2b75f574c194bd6d9805";
       };
     }
     {
@@ -8538,27 +8418,27 @@
       };
     }
     {
-      name = "passport_gitlab2___passport_gitlab2_4.0.0.tgz";
+      name = "passport_gitlab2___passport_gitlab2_5.0.0.tgz";
       path = fetchurl {
-        name = "passport_gitlab2___passport_gitlab2_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/passport-gitlab2/-/passport-gitlab2-4.0.0.tgz";
-        sha1 = "08de8b54d58cbe6f22f577f977f7874df3c26efb";
+        name = "passport_gitlab2___passport_gitlab2_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/passport-gitlab2/-/passport-gitlab2-5.0.0.tgz";
+        sha1 = "ea37e5285321c026a02671e87469cac28cce9b69";
       };
     }
     {
-      name = "passport_google_oauth20___passport_google_oauth20_1.0.0.tgz";
+      name = "passport_google_oauth20___passport_google_oauth20_2.0.0.tgz";
       path = fetchurl {
-        name = "passport_google_oauth20___passport_google_oauth20_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-1.0.0.tgz";
-        sha1 = "3b960e8a1d70d1dbe794615c827c68c40392a5d0";
+        name = "passport_google_oauth20___passport_google_oauth20_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz";
+        sha1 = "0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef";
       };
     }
     {
-      name = "passport_ldapauth___passport_ldapauth_2.1.4.tgz";
+      name = "passport_ldapauth___passport_ldapauth_3.0.1.tgz";
       path = fetchurl {
-        name = "passport_ldapauth___passport_ldapauth_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-2.1.4.tgz";
-        sha1 = "2259e4e5d2d9c2b3d50a04f6640a941effda8da9";
+        name = "passport_ldapauth___passport_ldapauth_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-3.0.1.tgz";
+        sha1 = "1432e8469de18bd46b5b39a46a866b416c1ddded";
       };
     }
     {
@@ -8594,11 +8474,11 @@
       };
     }
     {
-      name = "passport_saml___passport_saml_1.5.0.tgz";
+      name = "passport_saml___passport_saml_2.2.0.tgz";
       path = fetchurl {
-        name = "passport_saml___passport_saml_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/passport-saml/-/passport-saml-1.5.0.tgz";
-        sha1 = "4f22526b577987fb2304219c29e05d2172fca5cf";
+        name = "passport_saml___passport_saml_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/passport-saml/-/passport-saml-2.2.0.tgz";
+        sha1 = "dbea6743cf06644cfb3f0d486e43d3c8812b150a";
       };
     }
     {
@@ -8674,19 +8554,11 @@
       };
     }
     {
-      name = "path_is_inside___path_is_inside_1.0.2.tgz";
-      path = fetchurl {
-        name = "path_is_inside___path_is_inside_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
-        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
-      };
-    }
-    {
-      name = "path_key___path_key_2.0.1.tgz";
+      name = "path_key___path_key_3.1.1.tgz";
       path = fetchurl {
-        name = "path_key___path_key_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
-        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+        name = "path_key___path_key_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+        sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
       };
     }
     {
@@ -8730,19 +8602,19 @@
       };
     }
     {
-      name = "pbkdf2___pbkdf2_3.1.1.tgz";
+      name = "pbkdf2___pbkdf2_3.1.2.tgz";
       path = fetchurl {
-        name = "pbkdf2___pbkdf2_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz";
-        sha1 = "cb8724b0fada984596856d1a6ebafd3584654b94";
+        name = "pbkdf2___pbkdf2_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz";
+        sha1 = "dd822aa0887580e52f1a039dc3eda108efae3075";
       };
     }
     {
-      name = "pdfobject___pdfobject_2.2.4.tgz";
+      name = "pdfobject___pdfobject_2.2.5.tgz";
       path = fetchurl {
-        name = "pdfobject___pdfobject_2.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.4.tgz";
-        sha1 = "ccb3c191129298a471e9ccb59c88a3ee0b7c7530";
+        name = "pdfobject___pdfobject_2.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.5.tgz";
+        sha1 = "3e79dae8925a68f60c79423f56737bfd2d7e8a0b";
       };
     }
     {
@@ -8762,11 +8634,11 @@
       };
     }
     {
-      name = "pg_connection_string___pg_connection_string_2.4.0.tgz";
+      name = "pg_connection_string___pg_connection_string_2.5.0.tgz";
       path = fetchurl {
-        name = "pg_connection_string___pg_connection_string_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
-        sha1 = "c979922eb47832999a204da5dbe1ebf2341b6a10";
+        name = "pg_connection_string___pg_connection_string_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz";
+        sha1 = "538cadd0f7e603fc09a12590f3b8a452c2c0cf34";
       };
     }
     {
@@ -8786,19 +8658,19 @@
       };
     }
     {
-      name = "pg_pool___pg_pool_3.2.2.tgz";
+      name = "pg_pool___pg_pool_3.3.0.tgz";
       path = fetchurl {
-        name = "pg_pool___pg_pool_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.2.tgz";
-        sha1 = "a560e433443ed4ad946b84d774b3f22452694dff";
+        name = "pg_pool___pg_pool_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.3.0.tgz";
+        sha1 = "12d5c7f65ea18a6e99ca9811bd18129071e562fc";
       };
     }
     {
-      name = "pg_protocol___pg_protocol_1.4.0.tgz";
+      name = "pg_protocol___pg_protocol_1.5.0.tgz";
       path = fetchurl {
-        name = "pg_protocol___pg_protocol_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.4.0.tgz";
-        sha1 = "43a71a92f6fe3ac559952555aa3335c8cb4908be";
+        name = "pg_protocol___pg_protocol_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz";
+        sha1 = "b5dd452257314565e2d54ab3c132adc46565a6a0";
       };
     }
     {
@@ -8810,11 +8682,11 @@
       };
     }
     {
-      name = "pg___pg_8.5.1.tgz";
+      name = "pg___pg_8.6.0.tgz";
       path = fetchurl {
-        name = "pg___pg_8.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/pg/-/pg-8.5.1.tgz";
-        sha1 = "34dcb15f6db4a29c702bf5031ef2e1e25a06a120";
+        name = "pg___pg_8.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg/-/pg-8.6.0.tgz";
+        sha1 = "e222296b0b079b280cce106ea991703335487db2";
       };
     }
     {
@@ -8826,11 +8698,11 @@
       };
     }
     {
-      name = "picomatch___picomatch_2.2.2.tgz";
+      name = "picomatch___picomatch_2.2.3.tgz";
       path = fetchurl {
-        name = "picomatch___picomatch_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
-        sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
+        name = "picomatch___picomatch_2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz";
+        sha1 = "465547f359ccc206d3c48e46a1bcb89bf7ee619d";
       };
     }
     {
@@ -8890,6 +8762,14 @@
       };
     }
     {
+      name = "pkginfo___pkginfo_0.4.1.tgz";
+      path = fetchurl {
+        name = "pkginfo___pkginfo_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz";
+        sha1 = "b5418ef0439de5425fc4995042dced14fb2a84ff";
+      };
+    }
+    {
       name = "please_upgrade_node___please_upgrade_node_3.2.0.tgz";
       path = fetchurl {
         name = "please_upgrade_node___please_upgrade_node_3.2.0.tgz";
@@ -8906,22 +8786,6 @@
       };
     }
     {
-      name = "pn___pn_1.1.0.tgz";
-      path = fetchurl {
-        name = "pn___pn_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz";
-        sha1 = "e2f4cef0e219f463c179ab37463e4e1ecdccbafb";
-      };
-    }
-    {
-      name = "pop_iterate___pop_iterate_1.0.1.tgz";
-      path = fetchurl {
-        name = "pop_iterate___pop_iterate_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pop-iterate/-/pop-iterate-1.0.1.tgz";
-        sha1 = "ceacfdab4abf353d7a0f2aaa2c1fc7b3f9413ba3";
-      };
-    }
-    {
       name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
       path = fetchurl {
         name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
@@ -9034,35 +8898,35 @@
       };
     }
     {
-      name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+      name = "postcss_modules_extract_imports___postcss_modules_extract_imports_3.0.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
-        sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
+        name = "postcss_modules_extract_imports___postcss_modules_extract_imports_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz";
+        sha1 = "cda1f047c0ae80c97dbe28c3e76a43b88025741d";
       };
     }
     {
-      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.3.tgz";
+      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_4.0.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz";
-        sha1 = "bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0";
+        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz";
+        sha1 = "ebbb54fae1598eecfdf691a02b3ff3b390a5a51c";
       };
     }
     {
-      name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
+      name = "postcss_modules_scope___postcss_modules_scope_3.0.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
-        sha1 = "385cae013cc7743f5a7d7602d1073a89eaae62ee";
+        name = "postcss_modules_scope___postcss_modules_scope_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz";
+        sha1 = "9ef3151456d3bbfa120ca44898dfca6f2fa01f06";
       };
     }
     {
-      name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
+      name = "postcss_modules_values___postcss_modules_values_4.0.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
-        sha1 = "5b5000d6ebae29b4255301b4a3a54574423e7f10";
+        name = "postcss_modules_values___postcss_modules_values_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz";
+        sha1 = "d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c";
       };
     }
     {
@@ -9170,19 +9034,19 @@
       };
     }
     {
-      name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
+      name = "postcss_selector_parser___postcss_selector_parser_6.0.6.tgz";
       path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
-        sha1 = "56075a1380a04604c38b063ea7767a129af5c2b3";
+        name = "postcss_selector_parser___postcss_selector_parser_6.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz";
+        sha1 = "2c5bba8174ac2f6981ab631a42ab0ee54af332ea";
       };
     }
     {
-      name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
+      name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
       path = fetchurl {
-        name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha1 = "17b997bc711b333bab143aaed3b8d3d6e3d38258";
+        name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz";
+        sha1 = "343a2cdbac9505d416243d496f724f38894c941e";
       };
     }
     {
@@ -9218,6 +9082,14 @@
       };
     }
     {
+      name = "postcss___postcss_8.2.15.tgz";
+      path = fetchurl {
+        name = "postcss___postcss_8.2.15.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz";
+        sha1 = "9e66ccf07292817d226fc315cbbf9bc148fbca65";
+      };
+    }
+    {
       name = "postgres_array___postgres_array_2.0.0.tgz";
       path = fetchurl {
         name = "postgres_array___postgres_array_2.0.0.tgz";
@@ -9258,19 +9130,11 @@
       };
     }
     {
-      name = "prelude_ls___prelude_ls_1.1.2.tgz";
-      path = fetchurl {
-        name = "prelude_ls___prelude_ls_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
-        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
-      };
-    }
-    {
-      name = "prepend_http___prepend_http_1.0.4.tgz";
+      name = "prelude_ls___prelude_ls_1.2.1.tgz";
       path = fetchurl {
-        name = "prepend_http___prepend_http_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
-        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+        name = "prelude_ls___prelude_ls_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
       };
     }
     {
@@ -9346,19 +9210,27 @@
       };
     }
     {
-      name = "promise_inflight___promise_inflight_1.0.1.tgz";
+      name = "prom_client___prom_client_13.1.0.tgz";
       path = fetchurl {
-        name = "promise_inflight___promise_inflight_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
-        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+        name = "prom_client___prom_client_13.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/prom-client/-/prom-client-13.1.0.tgz";
+        sha1 = "1185caffd8691e28d32e373972e662964e3dba45";
+      };
+    }
+    {
+      name = "prometheus_api_metrics___prometheus_api_metrics_3.2.0.tgz";
+      path = fetchurl {
+        name = "prometheus_api_metrics___prometheus_api_metrics_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/prometheus-api-metrics/-/prometheus-api-metrics-3.2.0.tgz";
+        sha1 = "3af90989271abb55b7e0405bdfcb161f403a361c";
       };
     }
     {
-      name = "proto_list___proto_list_1.2.4.tgz";
+      name = "promise_inflight___promise_inflight_1.0.1.tgz";
       path = fetchurl {
-        name = "proto_list___proto_list_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
-        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+        name = "promise_inflight___promise_inflight_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
       };
     }
     {
@@ -9458,14 +9330,6 @@
       };
     }
     {
-      name = "q___q_2.0.3.tgz";
-      path = fetchurl {
-        name = "q___q_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/q/-/q-2.0.3.tgz";
-        sha1 = "75b8db0255a1a5af82f58c3f3aaa1efec7d0d134";
-      };
-    }
-    {
       name = "qs___qs_2.3.3.tgz";
       path = fetchurl {
         name = "qs___qs_2.3.3.tgz";
@@ -9490,14 +9354,6 @@
       };
     }
     {
-      name = "query_string___query_string_4.3.4.tgz";
-      path = fetchurl {
-        name = "query_string___query_string_4.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz";
-        sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb";
-      };
-    }
-    {
       name = "querystring_es3___querystring_es3_0.2.1.tgz";
       path = fetchurl {
         name = "querystring_es3___querystring_es3_0.2.1.tgz";
@@ -9514,6 +9370,14 @@
       };
     }
     {
+      name = "queue_microtask___queue_microtask_1.2.3.tgz";
+      path = fetchurl {
+        name = "queue_microtask___queue_microtask_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha1 = "4929228bbc724dfac43e0efb058caf7b6cfb6243";
+      };
+    }
+    {
       name = "random_bytes___random_bytes_1.0.0.tgz";
       path = fetchurl {
         name = "random_bytes___random_bytes_1.0.0.tgz";
@@ -9626,14 +9490,6 @@
       };
     }
     {
-      name = "readable_stream___readable_stream_1.0.34.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_1.0.34.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
-        sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
-      };
-    }
-    {
       name = "readable_stream___readable_stream_3.6.0.tgz";
       path = fetchurl {
         name = "readable_stream___readable_stream_3.6.0.tgz";
@@ -9690,19 +9546,19 @@
       };
     }
     {
-      name = "reduce_component___reduce_component_1.0.1.tgz";
+      name = "rechoir___rechoir_0.7.0.tgz";
       path = fetchurl {
-        name = "reduce_component___reduce_component_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz";
-        sha1 = "e0c93542c574521bea13df0f9488ed82ab77c5da";
+        name = "rechoir___rechoir_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz";
+        sha1 = "32650fd52c21ab252aa5d65b19310441c7e03aca";
       };
     }
     {
-      name = "referrer_policy___referrer_policy_1.2.0.tgz";
+      name = "reduce_component___reduce_component_1.0.1.tgz";
       path = fetchurl {
-        name = "referrer_policy___referrer_policy_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.2.0.tgz";
-        sha1 = "b99cfb8b57090dc454895ef897a4cc35ef67a98e";
+        name = "reduce_component___reduce_component_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz";
+        sha1 = "e0c93542c574521bea13df0f9488ed82ab77c5da";
       };
     }
     {
@@ -9754,19 +9610,19 @@
       };
     }
     {
-      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
       path = fetchurl {
-        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
-        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz";
+        sha1 = "7ef352ae8d159e758c0eadca6f8fcb4eef07be26";
       };
     }
     {
-      name = "regexpp___regexpp_2.0.1.tgz";
+      name = "regexpp___regexpp_3.1.0.tgz";
       path = fetchurl {
-        name = "regexpp___regexpp_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
-        sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
+        name = "regexpp___regexpp_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+        sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
       };
     }
     {
@@ -9802,11 +9658,11 @@
       };
     }
     {
-      name = "remark_cli___remark_cli_8.0.1.tgz";
+      name = "remark_cli___remark_cli_9.0.0.tgz";
       path = fetchurl {
-        name = "remark_cli___remark_cli_8.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-cli/-/remark-cli-8.0.1.tgz";
-        sha1 = "093e9f27c1d56a591f4c44c017de5749d4e79a08";
+        name = "remark_cli___remark_cli_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-cli/-/remark-cli-9.0.0.tgz";
+        sha1 = "6f7951e7a72217535f2e32b7a6d3f638fe182f86";
       };
     }
     {
@@ -9930,11 +9786,11 @@
       };
     }
     {
-      name = "remark_lint_list_item_spacing___remark_lint_list_item_spacing_2.0.1.tgz";
+      name = "remark_lint_list_item_spacing___remark_lint_list_item_spacing_3.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint_list_item_spacing___remark_lint_list_item_spacing_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-2.0.1.tgz";
-        sha1 = "864ddda464d5cd11f725c83f00bb240538661d50";
+        name = "remark_lint_list_item_spacing___remark_lint_list_item_spacing_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-3.0.0.tgz";
+        sha1 = "14c18fe8c0f19231edb5cf94abda748bb773110b";
       };
     }
     {
@@ -9962,19 +9818,19 @@
       };
     }
     {
-      name = "remark_lint_no_blockquote_without_marker___remark_lint_no_blockquote_without_marker_3.0.1.tgz";
+      name = "remark_lint_no_blockquote_without_marker___remark_lint_no_blockquote_without_marker_4.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint_no_blockquote_without_marker___remark_lint_no_blockquote_without_marker_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-3.0.1.tgz";
-        sha1 = "fb1d5a87ee6f21b731bb2ee52df55632c519a5eb";
+        name = "remark_lint_no_blockquote_without_marker___remark_lint_no_blockquote_without_marker_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-4.0.0.tgz";
+        sha1 = "856fb64dd038fa8fc27928163caa24a30ff4d790";
       };
     }
     {
-      name = "remark_lint_no_consecutive_blank_lines___remark_lint_no_consecutive_blank_lines_2.0.1.tgz";
+      name = "remark_lint_no_consecutive_blank_lines___remark_lint_no_consecutive_blank_lines_3.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint_no_consecutive_blank_lines___remark_lint_no_consecutive_blank_lines_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-2.0.1.tgz";
-        sha1 = "4163fa21619fe69325333f83eed8a933ed32e7ec";
+        name = "remark_lint_no_consecutive_blank_lines___remark_lint_no_consecutive_blank_lines_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-3.0.0.tgz";
+        sha1 = "c8fe11095b8f031a1406da273722bd4a9174bf41";
       };
     }
     {
@@ -10042,11 +9898,11 @@
       };
     }
     {
-      name = "remark_lint_no_inline_padding___remark_lint_no_inline_padding_2.0.1.tgz";
+      name = "remark_lint_no_inline_padding___remark_lint_no_inline_padding_3.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint_no_inline_padding___remark_lint_no_inline_padding_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-2.0.1.tgz";
-        sha1 = "630b546566d34bde87943da318a80fc7ff856f1f";
+        name = "remark_lint_no_inline_padding___remark_lint_no_inline_padding_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-3.0.0.tgz";
+        sha1 = "14c2722bcddc648297a54298107a922171faf6eb";
       };
     }
     {
@@ -10090,11 +9946,11 @@
       };
     }
     {
-      name = "remark_lint_no_table_indentation___remark_lint_no_table_indentation_2.0.1.tgz";
+      name = "remark_lint_no_table_indentation___remark_lint_no_table_indentation_3.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint_no_table_indentation___remark_lint_no_table_indentation_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-2.0.1.tgz";
-        sha1 = "67ef344389fa40be9c6017835cf58ca417c417d0";
+        name = "remark_lint_no_table_indentation___remark_lint_no_table_indentation_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-3.0.0.tgz";
+        sha1 = "f3c3fc24375069ec8e510f43050600fb22436731";
       };
     }
     {
@@ -10130,11 +9986,11 @@
       };
     }
     {
-      name = "remark_lint_table_cell_padding___remark_lint_table_cell_padding_2.0.1.tgz";
+      name = "remark_lint_table_cell_padding___remark_lint_table_cell_padding_3.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint_table_cell_padding___remark_lint_table_cell_padding_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-2.0.1.tgz";
-        sha1 = "b1e557ec44e1a33beb45578e97bf9441149379f6";
+        name = "remark_lint_table_cell_padding___remark_lint_table_cell_padding_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-3.0.0.tgz";
+        sha1 = "a769ba1999984ff5f90294fb6ccb8aead7e8a12f";
       };
     }
     {
@@ -10146,11 +10002,11 @@
       };
     }
     {
-      name = "remark_lint_table_pipes___remark_lint_table_pipes_2.0.1.tgz";
+      name = "remark_lint_table_pipes___remark_lint_table_pipes_3.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint_table_pipes___remark_lint_table_pipes_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-2.0.1.tgz";
-        sha1 = "b8594394f65053a030e8a51baa8504e388139a19";
+        name = "remark_lint_table_pipes___remark_lint_table_pipes_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-3.0.0.tgz";
+        sha1 = "b30b055d594cae782667eec91c6c5b35928ab259";
       };
     }
     {
@@ -10162,11 +10018,11 @@
       };
     }
     {
-      name = "remark_lint___remark_lint_7.0.1.tgz";
+      name = "remark_lint___remark_lint_8.0.0.tgz";
       path = fetchurl {
-        name = "remark_lint___remark_lint_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-lint/-/remark-lint-7.0.1.tgz";
-        sha1 = "665a5cbea9f7c95e64593f69bb6816ee8343ffdf";
+        name = "remark_lint___remark_lint_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint/-/remark-lint-8.0.0.tgz";
+        sha1 = "6e40894f4a39eaea31fc4dd45abfaba948bf9a09";
       };
     }
     {
@@ -10178,35 +10034,35 @@
       };
     }
     {
-      name = "remark_parse___remark_parse_8.0.3.tgz";
+      name = "remark_parse___remark_parse_9.0.0.tgz";
       path = fetchurl {
-        name = "remark_parse___remark_parse_8.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz";
-        sha1 = "9c62aa3b35b79a486454c690472906075f40c7e1";
+        name = "remark_parse___remark_parse_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz";
+        sha1 = "4d20a299665880e4f4af5d90b7c7b8a935853640";
       };
     }
     {
-      name = "remark_preset_lint_markdown_style_guide___remark_preset_lint_markdown_style_guide_3.0.1.tgz";
+      name = "remark_preset_lint_markdown_style_guide___remark_preset_lint_markdown_style_guide_4.0.0.tgz";
       path = fetchurl {
-        name = "remark_preset_lint_markdown_style_guide___remark_preset_lint_markdown_style_guide_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-3.0.1.tgz";
-        sha1 = "7f160e2ded777bfb14d544e9f72c6873bdfb6da3";
+        name = "remark_preset_lint_markdown_style_guide___remark_preset_lint_markdown_style_guide_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-4.0.0.tgz";
+        sha1 = "976b6ffd7f37aa90868e081a69241fcde3a297d4";
       };
     }
     {
-      name = "remark_stringify___remark_stringify_8.1.1.tgz";
+      name = "remark_stringify___remark_stringify_9.0.1.tgz";
       path = fetchurl {
-        name = "remark_stringify___remark_stringify_8.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.1.tgz";
-        sha1 = "e2a9dc7a7bf44e46a155ec78996db896780d8ce5";
+        name = "remark_stringify___remark_stringify_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz";
+        sha1 = "576d06e910548b0a7191a71f27b33f1218862894";
       };
     }
     {
-      name = "remark___remark_12.0.1.tgz";
+      name = "remark___remark_13.0.0.tgz";
       path = fetchurl {
-        name = "remark___remark_12.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark/-/remark-12.0.1.tgz";
-        sha1 = "f1ddf68db7be71ca2bad0a33cd3678b86b9c709f";
+        name = "remark___remark_13.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz";
+        sha1 = "d15d9bf71a402f40287ebe36067b66d54868e425";
       };
     }
     {
@@ -10226,11 +10082,11 @@
       };
     }
     {
-      name = "repeat_element___repeat_element_1.1.3.tgz";
+      name = "repeat_element___repeat_element_1.1.4.tgz";
       path = fetchurl {
-        name = "repeat_element___repeat_element_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+        name = "repeat_element___repeat_element_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz";
+        sha1 = "be681520847ab58c7568ac75fbfad28ed42d39e9";
       };
     }
     {
@@ -10250,22 +10106,6 @@
       };
     }
     {
-      name = "request_promise_core___request_promise_core_1.1.4.tgz";
-      path = fetchurl {
-        name = "request_promise_core___request_promise_core_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz";
-        sha1 = "3eedd4223208d419867b78ce815167d10593a22f";
-      };
-    }
-    {
-      name = "request_promise_native___request_promise_native_1.0.9.tgz";
-      path = fetchurl {
-        name = "request_promise_native___request_promise_native_1.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz";
-        sha1 = "e407120526a5efdc9a39b28a5679bf47b9d9dc28";
-      };
-    }
-    {
       name = "request___request_2.88.2.tgz";
       path = fetchurl {
         name = "request___request_2.88.2.tgz";
@@ -10282,27 +10122,19 @@
       };
     }
     {
-      name = "require_main_filename___require_main_filename_2.0.0.tgz";
+      name = "require_from_string___require_from_string_2.0.2.tgz";
       path = fetchurl {
-        name = "require_main_filename___require_main_filename_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
+        name = "require_from_string___require_from_string_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
       };
     }
     {
-      name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+      name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
       path = fetchurl {
-        name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
-        sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
-      };
-    }
-    {
-      name = "resolve_dir___resolve_dir_1.0.1.tgz";
-      path = fetchurl {
-        name = "resolve_dir___resolve_dir_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
-        sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+        name = "resolve_cwd___resolve_cwd_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz";
+        sha1 = "0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d";
       };
     }
     {
@@ -10338,19 +10170,11 @@
       };
     }
     {
-      name = "resolve___resolve_1.19.0.tgz";
+      name = "resolve___resolve_1.20.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz";
-        sha1 = "1af5bf630409734a067cae29318aac7fa29a267c";
-      };
-    }
-    {
-      name = "restore_cursor___restore_cursor_2.0.0.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
-        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
       };
     }
     {
@@ -10402,14 +10226,6 @@
       };
     }
     {
-      name = "rimraf___rimraf_2.6.3.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
-        sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
-      };
-    }
-    {
       name = "rimraf___rimraf_2.7.1.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_2.7.1.tgz";
@@ -10426,14 +10242,6 @@
       };
     }
     {
-      name = "rimraf___rimraf_2.4.5.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz";
-        sha1 = "ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da";
-      };
-    }
-    {
       name = "ripemd160___ripemd160_2.0.2.tgz";
       path = fetchurl {
         name = "ripemd160___ripemd160_2.0.2.tgz";
@@ -10442,19 +10250,11 @@
       };
     }
     {
-      name = "run_async___run_async_2.4.1.tgz";
-      path = fetchurl {
-        name = "run_async___run_async_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
-        sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
-      };
-    }
-    {
-      name = "run_parallel___run_parallel_1.1.10.tgz";
+      name = "run_parallel___run_parallel_1.2.0.tgz";
       path = fetchurl {
-        name = "run_parallel___run_parallel_1.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz";
-        sha1 = "60a51b2ae836636c81377df16cb107351bcd13ef";
+        name = "run_parallel___run_parallel_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha1 = "66d1368da7bdf921eb9d95bd1a9229e7f21a43ee";
       };
     }
     {
@@ -10474,14 +10274,6 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.6.3.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz";
-        sha1 = "8ca84635c4daa900c0d3967a6ee7ac60271ee552";
-      };
-    }
-    {
       name = "safe_buffer___safe_buffer_5.2.1.tgz";
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.2.1.tgz";
@@ -10506,14 +10298,6 @@
       };
     }
     {
-      name = "safe_json_stringify___safe_json_stringify_1.2.0.tgz";
-      path = fetchurl {
-        name = "safe_json_stringify___safe_json_stringify_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz";
-        sha1 = "356e44bc98f1f93ce45df14bcd7c01cda86e0afd";
-      };
-    }
-    {
       name = "safe_regex___safe_regex_1.1.0.tgz";
       path = fetchurl {
         name = "safe_regex___safe_regex_1.1.0.tgz";
@@ -10562,14 +10346,6 @@
       };
     }
     {
-      name = "schema_utils___schema_utils_2.7.1.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz";
-        sha1 = "1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7";
-      };
-    }
-    {
       name = "schema_utils___schema_utils_3.0.0.tgz";
       path = fetchurl {
         name = "schema_utils___schema_utils_3.0.0.tgz";
@@ -10586,14 +10362,6 @@
       };
     }
     {
-      name = "scrypt_async___scrypt_async_2.0.1.tgz";
-      path = fetchurl {
-        name = "scrypt_async___scrypt_async_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/scrypt-async/-/scrypt-async-2.0.1.tgz";
-        sha1 = "4318dae48a8b7cc3b8fe05f75f4164a7d973d25d";
-      };
-    }
-    {
       name = "scrypt_kdf___scrypt_kdf_2.0.1.tgz";
       path = fetchurl {
         name = "scrypt_kdf___scrypt_kdf_2.0.1.tgz";
@@ -10642,6 +10410,22 @@
       };
     }
     {
+      name = "semver___semver_7.3.5.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
+      };
+    }
+    {
+      name = "semver___semver_5.3.0.tgz";
+      path = fetchurl {
+        name = "semver___semver_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
+        sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+      };
+    }
+    {
       name = "send___send_0.17.1.tgz";
       path = fetchurl {
         name = "send___send_0.17.1.tgz";
@@ -10658,14 +10442,6 @@
       };
     }
     {
-      name = "sequelize_cli___sequelize_cli_5.5.1.tgz";
-      path = fetchurl {
-        name = "sequelize_cli___sequelize_cli_5.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/sequelize-cli/-/sequelize-cli-5.5.1.tgz";
-        sha1 = "0b9c2fc04d082cc8ae0a8fe270b96bb606152bab";
-      };
-    }
-    {
       name = "sequelize_pool___sequelize_pool_2.3.0.tgz";
       path = fetchurl {
         name = "sequelize_pool___sequelize_pool_2.3.0.tgz";
@@ -10674,19 +10450,11 @@
       };
     }
     {
-      name = "sequelize___sequelize_5.22.3.tgz";
-      path = fetchurl {
-        name = "sequelize___sequelize_5.22.3.tgz";
-        url  = "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.3.tgz";
-        sha1 = "7e7a92ddd355d883c9eb11cdb106d874d0d2636f";
-      };
-    }
-    {
-      name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+      name = "sequelize___sequelize_5.22.4.tgz";
       path = fetchurl {
-        name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
-        sha1 = "b525e1238489a5ecfc42afacc3fe99e666f4b1aa";
+        name = "sequelize___sequelize_5.22.4.tgz";
+        url  = "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.4.tgz";
+        sha1 = "4dbd8a1a735e98150880d43a95d45e9f46d151fa";
       };
     }
     {
@@ -10698,6 +10466,14 @@
       };
     }
     {
+      name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+      path = fetchurl {
+        name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha1 = "b525e1238489a5ecfc42afacc3fe99e666f4b1aa";
+      };
+    }
+    {
       name = "serve_static___serve_static_1.14.1.tgz";
       path = fetchurl {
         name = "serve_static___serve_static_1.14.1.tgz";
@@ -10746,19 +10522,27 @@
       };
     }
     {
-      name = "shebang_command___shebang_command_1.2.0.tgz";
+      name = "shallow_clone___shallow_clone_3.0.1.tgz";
       path = fetchurl {
-        name = "shebang_command___shebang_command_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
-        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+        name = "shallow_clone___shallow_clone_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz";
+        sha1 = "8f2981ad92531f55035b01fb230769a40e02efa3";
       };
     }
     {
-      name = "shebang_regex___shebang_regex_1.0.0.tgz";
+      name = "shebang_command___shebang_command_2.0.0.tgz";
       path = fetchurl {
-        name = "shebang_regex___shebang_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
-        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+        name = "shebang_command___shebang_command_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+      };
+    }
+    {
+      name = "shebang_regex___shebang_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_regex___shebang_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
       };
     }
     {
@@ -10778,11 +10562,11 @@
       };
     }
     {
-      name = "sigmund___sigmund_1.0.1.tgz";
+      name = "side_channel___side_channel_1.0.4.tgz";
       path = fetchurl {
-        name = "sigmund___sigmund_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz";
-        sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+        name = "side_channel___side_channel_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz";
+        sha1 = "efce5c8fdc104ee751b25c58d4290011fa5ea2cf";
       };
     }
     {
@@ -10818,11 +10602,11 @@
       };
     }
     {
-      name = "slice_ansi___slice_ansi_2.1.0.tgz";
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
       path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
       };
     }
     {
@@ -10906,14 +10690,6 @@
       };
     }
     {
-      name = "sort_keys___sort_keys_1.1.2.tgz";
-      path = fetchurl {
-        name = "sort_keys___sort_keys_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz";
-        sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
-      };
-    }
-    {
       name = "source_list_map___source_list_map_2.0.1.tgz";
       path = fetchurl {
         name = "source_list_map___source_list_map_2.0.1.tgz";
@@ -10946,11 +10722,11 @@
       };
     }
     {
-      name = "source_map_url___source_map_url_0.4.0.tgz";
+      name = "source_map_url___source_map_url_0.4.1.tgz";
       path = fetchurl {
-        name = "source_map_url___source_map_url_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
-        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+        name = "source_map_url___source_map_url_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz";
+        sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56";
       };
     }
     {
@@ -11010,11 +10786,11 @@
       };
     }
     {
-      name = "spin.js___spin.js_2.3.2.tgz";
+      name = "spin.js___spin.js_4.1.0.tgz";
       path = fetchurl {
-        name = "spin.js___spin.js_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/spin.js/-/spin.js-2.3.2.tgz";
-        sha1 = "6caa56d520673450fd5cfbc6971e6d0772c37a1a";
+        name = "spin.js___spin.js_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/spin.js/-/spin.js-4.1.0.tgz";
+        sha1 = "afcf12738fafd5f6aa0a385a5b4cec45c86a3555";
       };
     }
     {
@@ -11050,11 +10826,11 @@
       };
     }
     {
-      name = "sqlite3___sqlite3_4.2.0.tgz";
+      name = "sqlite3___sqlite3_5.0.2.tgz";
       path = fetchurl {
-        name = "sqlite3___sqlite3_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.2.0.tgz";
-        sha1 = "49026d665e9fc4f922e56fb9711ba5b4c85c4901";
+        name = "sqlite3___sqlite3_5.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.0.2.tgz";
+        sha1 = "00924adcc001c17686e0a6643b6cbbc2d3965083";
       };
     }
     {
@@ -11074,19 +10850,19 @@
       };
     }
     {
-      name = "ssri___ssri_6.0.1.tgz";
+      name = "ssri___ssri_6.0.2.tgz";
       path = fetchurl {
-        name = "ssri___ssri_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
-        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+        name = "ssri___ssri_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz";
+        sha1 = "157939134f20464e7301ddba3e90ffa8f7728ac5";
       };
     }
     {
-      name = "ssri___ssri_8.0.0.tgz";
+      name = "ssri___ssri_8.0.1.tgz";
       path = fetchurl {
-        name = "ssri___ssri_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz";
-        sha1 = "79ca74e21f8ceaeddfcb4b90143c458b8d988808";
+        name = "ssri___ssri_8.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz";
+        sha1 = "638e4e439e2ffbd2cd289776d5ca457c4f51a2af";
       };
     }
     {
@@ -11106,14 +10882,6 @@
       };
     }
     {
-      name = "state_toggle___state_toggle_1.0.3.tgz";
-      path = fetchurl {
-        name = "state_toggle___state_toggle_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz";
-        sha1 = "e123b16a88e143139b09c6852221bc9815917dfe";
-      };
-    }
-    {
       name = "static_extend___static_extend_0.1.2.tgz";
       path = fetchurl {
         name = "static_extend___static_extend_0.1.2.tgz";
@@ -11130,14 +10898,6 @@
       };
     }
     {
-      name = "stealthy_require___stealthy_require_1.1.1.tgz";
-      path = fetchurl {
-        name = "stealthy_require___stealthy_require_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
-        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
-      };
-    }
-    {
       name = "store___store_2.0.12.tgz";
       path = fetchurl {
         name = "store___store_2.0.12.tgz";
@@ -11178,14 +10938,6 @@
       };
     }
     {
-      name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
-      path = fetchurl {
-        name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
-        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
-      };
-    }
-    {
       name = "string_loader___string_loader_0.0.1.tgz";
       path = fetchurl {
         name = "string_loader___string_loader_0.0.1.tgz";
@@ -11218,35 +10970,27 @@
       };
     }
     {
-      name = "string_width___string_width_3.1.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
-        sha1 = "22767be21b62af1081574306f69ac51b62203961";
-      };
-    }
-    {
-      name = "string_width___string_width_4.2.0.tgz";
+      name = "string_width___string_width_4.2.2.tgz";
       path = fetchurl {
-        name = "string_width___string_width_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
-        sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
+        name = "string_width___string_width_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
+        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
       };
     }
     {
-      name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
       path = fetchurl {
-        name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz";
-        sha1 = "a22bd53cca5c7cf44d7c9d5c732118873d6cd18b";
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
+        sha1 = "e75ae90c2942c63504686c18b287b4a0b1a45f80";
       };
     }
     {
-      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
       path = fetchurl {
-        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz";
-        sha1 = "9b4cb590e123bb36564401d59824298de50fd5aa";
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
+        sha1 = "b36399af4ab2999b4c9c648bd7a3fb2bb26feeed";
       };
     }
     {
@@ -11282,14 +11026,6 @@
       };
     }
     {
-      name = "stringify_entities___stringify_entities_3.1.0.tgz";
-      path = fetchurl {
-        name = "stringify_entities___stringify_entities_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.1.0.tgz";
-        sha1 = "b8d3feac256d9ffcc9fa1fefdcf3ca70576ee903";
-      };
-    }
-    {
       name = "strip_ansi___strip_ansi_3.0.1.tgz";
       path = fetchurl {
         name = "strip_ansi___strip_ansi_3.0.1.tgz";
@@ -11306,14 +11042,6 @@
       };
     }
     {
-      name = "strip_ansi___strip_ansi_5.2.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
-      };
-    }
-    {
       name = "strip_ansi___strip_ansi_6.0.0.tgz";
       path = fetchurl {
         name = "strip_ansi___strip_ansi_6.0.0.tgz";
@@ -11338,6 +11066,30 @@
       };
     }
     {
+      name = "strip_comments___strip_comments_2.0.1.tgz";
+      path = fetchurl {
+        name = "strip_comments___strip_comments_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz";
+        sha1 = "4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b";
+      };
+    }
+    {
+      name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
+      path = fetchurl {
+        name = "strip_final_newline___strip_final_newline_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+        sha1 = "89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad";
+      };
+    }
+    {
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+      path = fetchurl {
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+      };
+    }
+    {
       name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
       path = fetchurl {
         name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
@@ -11378,11 +11130,11 @@
       };
     }
     {
-      name = "supports_color___supports_color_5.4.0.tgz";
+      name = "supports_color___supports_color_8.1.1.tgz";
       path = fetchurl {
-        name = "supports_color___supports_color_5.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz";
-        sha1 = "1c6b337402c2137605efe19f10fec390f6faab54";
+        name = "supports_color___supports_color_8.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz";
+        sha1 = "cd6fc17e28500cff56c1b86c0a7fd4a54a73005c";
       };
     }
     {
@@ -11426,19 +11178,11 @@
       };
     }
     {
-      name = "symbol_tree___symbol_tree_3.2.4.tgz";
-      path = fetchurl {
-        name = "symbol_tree___symbol_tree_3.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz";
-        sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2";
-      };
-    }
-    {
-      name = "table___table_5.4.6.tgz";
+      name = "table___table_6.7.0.tgz";
       path = fetchurl {
-        name = "table___table_5.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
-        sha1 = "1292d19500ce3f86053b05f0e8e7e4a3bb21079e";
+        name = "table___table_6.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz";
+        sha1 = "26274751f0ee099c547f6cb91d3eff0d61d155b2";
       };
     }
     {
@@ -11458,6 +11202,14 @@
       };
     }
     {
+      name = "tar___tar_2.2.2.tgz";
+      path = fetchurl {
+        name = "tar___tar_2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz";
+        sha1 = "0ca8848562c7299b8b446ff6a4d60cdbb23edc40";
+      };
+    }
+    {
       name = "tar___tar_4.4.13.tgz";
       path = fetchurl {
         name = "tar___tar_4.4.13.tgz";
@@ -11474,6 +11226,14 @@
       };
     }
     {
+      name = "tdigest___tdigest_0.1.1.tgz";
+      path = fetchurl {
+        name = "tdigest___tdigest_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz";
+        sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
+      };
+    }
+    {
       name = "tedious___tedious_6.7.0.tgz";
       path = fetchurl {
         name = "tedious___tedious_6.7.0.tgz";
@@ -11514,14 +11274,6 @@
       };
     }
     {
-      name = "through2___through2_0.6.5.tgz";
-      path = fetchurl {
-        name = "through2___through2_0.6.5.tgz";
-        url  = "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz";
-        sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48";
-      };
-    }
-    {
       name = "through2___through2_2.0.5.tgz";
       path = fetchurl {
         name = "through2___through2_2.0.5.tgz";
@@ -11530,11 +11282,11 @@
       };
     }
     {
-      name = "through___through_2.3.8.tgz";
+      name = "through2___through2_3.0.2.tgz";
       path = fetchurl {
-        name = "through___through_2.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+        name = "through2___through2_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz";
+        sha1 = "99f88931cfc761ec7678b41d5d7336b5b6a07bf4";
       };
     }
     {
@@ -11546,14 +11298,6 @@
       };
     }
     {
-      name = "timers_ext___timers_ext_0.1.7.tgz";
-      path = fetchurl {
-        name = "timers_ext___timers_ext_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz";
-        sha1 = "6f57ad8578e07a3fb9f91d9387d65647555e25c6";
-      };
-    }
-    {
       name = "timsort___timsort_0.3.0.tgz";
       path = fetchurl {
         name = "timsort___timsort_0.3.0.tgz";
@@ -11570,14 +11314,6 @@
       };
     }
     {
-      name = "tmp___tmp_0.0.33.tgz";
-      path = fetchurl {
-        name = "tmp___tmp_0.0.33.tgz";
-        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
-        sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
-      };
-    }
-    {
       name = "to_array___to_array_0.1.4.tgz";
       path = fetchurl {
         name = "to_array___to_array_0.1.4.tgz";
@@ -11682,14 +11418,6 @@
       };
     }
     {
-      name = "tr46___tr46_1.0.1.tgz";
-      path = fetchurl {
-        name = "tr46___tr46_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz";
-        sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
-      };
-    }
-    {
       name = "trim_right___trim_right_1.0.1.tgz";
       path = fetchurl {
         name = "trim_right___trim_right_1.0.1.tgz";
@@ -11698,22 +11426,6 @@
       };
     }
     {
-      name = "trim_trailing_lines___trim_trailing_lines_1.1.4.tgz";
-      path = fetchurl {
-        name = "trim_trailing_lines___trim_trailing_lines_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz";
-        sha1 = "bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0";
-      };
-    }
-    {
-      name = "trim___trim_0.0.1.tgz";
-      path = fetchurl {
-        name = "trim___trim_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz";
-        sha1 = "5858547f6b290757ee95cccc666fb50084c460dd";
-      };
-    }
-    {
       name = "triple_beam___triple_beam_1.3.0.tgz";
       path = fetchurl {
         name = "triple_beam___triple_beam_1.3.0.tgz";
@@ -11762,11 +11474,11 @@
       };
     }
     {
-      name = "tslib___tslib_2.1.0.tgz";
+      name = "tslib___tslib_2.2.0.tgz";
       path = fetchurl {
-        name = "tslib___tslib_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz";
-        sha1 = "da60860f1c2ecaa5703ab7d39bc05b6bf988b97a";
+        name = "tslib___tslib_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz";
+        sha1 = "fb2c475977e35e241311ede2693cee1ec6698f5c";
       };
     }
     {
@@ -11794,11 +11506,11 @@
       };
     }
     {
-      name = "turndown___turndown_5.0.3.tgz";
+      name = "turndown___turndown_7.0.0.tgz";
       path = fetchurl {
-        name = "turndown___turndown_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/turndown/-/turndown-5.0.3.tgz";
-        sha1 = "a1350b66155d7891f10e451432170b0f7cd7449a";
+        name = "turndown___turndown_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/turndown/-/turndown-7.0.0.tgz";
+        sha1 = "19b2a6a2d1d700387a1e07665414e4af4fec5225";
       };
     }
     {
@@ -11810,35 +11522,43 @@
       };
     }
     {
-      name = "type_check___type_check_0.3.2.tgz";
+      name = "type_check___type_check_0.4.0.tgz";
       path = fetchurl {
-        name = "type_check___type_check_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
-        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+        name = "type_check___type_check_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+        sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
       };
     }
     {
-      name = "type_is___type_is_1.6.18.tgz";
+      name = "type_fest___type_fest_0.20.2.tgz";
       path = fetchurl {
-        name = "type_is___type_is_1.6.18.tgz";
-        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
-        sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+      };
+    }
+    {
+      name = "type_fest___type_fest_0.8.1.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
+        sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
       };
     }
     {
-      name = "type___type_1.2.0.tgz";
+      name = "type_fest___type_fest_1.1.1.tgz";
       path = fetchurl {
-        name = "type___type_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz";
-        sha1 = "848dd7698dafa3e54a6c479e759c4bc3f18847a0";
+        name = "type_fest___type_fest_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-1.1.1.tgz";
+        sha1 = "210251e7f57357a1457269e6b34837fed067ac2c";
       };
     }
     {
-      name = "type___type_2.1.0.tgz";
+      name = "type_is___type_is_1.6.18.tgz";
       path = fetchurl {
-        name = "type___type_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz";
-        sha1 = "9bdc22c648cf8cf86dd23d32336a41cfb6475e3f";
+        name = "type_is___type_is_1.6.18.tgz";
+        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
+        sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
       };
     }
     {
@@ -11866,11 +11586,11 @@
       };
     }
     {
-      name = "uglify_js___uglify_js_3.12.4.tgz";
+      name = "uglify_js___uglify_js_3.13.6.tgz";
       path = fetchurl {
-        name = "uglify_js___uglify_js_3.12.4.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.4.tgz";
-        sha1 = "93de48bb76bb3ec0fc36563f871ba46e2ee5c7ee";
+        name = "uglify_js___uglify_js_3.13.6.tgz";
+        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.6.tgz";
+        sha1 = "6815ac7fdd155d03c83e2362bb717e5b39b74013";
       };
     }
     {
@@ -11898,6 +11618,14 @@
       };
     }
     {
+      name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
+      path = fetchurl {
+        name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
+        sha1 = "085e215625ec3162574dc8859abee78a59b14471";
+      };
+    }
+    {
       name = "underscore___underscore_1.11.0.tgz";
       path = fetchurl {
         name = "underscore___underscore_1.11.0.tgz";
@@ -11906,11 +11634,11 @@
       };
     }
     {
-      name = "underscore___underscore_1.12.0.tgz";
+      name = "underscore___underscore_1.13.1.tgz";
       path = fetchurl {
-        name = "underscore___underscore_1.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.12.0.tgz";
-        sha1 = "4814940551fc80587cef7840d1ebb0f16453be97";
+        name = "underscore___underscore_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz";
+        sha1 = "0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1";
       };
     }
     {
@@ -11930,14 +11658,6 @@
       };
     }
     {
-      name = "unherit___unherit_1.1.3.tgz";
-      path = fetchurl {
-        name = "unherit___unherit_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz";
-        sha1 = "6c9b503f2b41b262330c80e91c8614abdaa69c22";
-      };
-    }
-    {
       name = "unified_args___unified_args_8.1.0.tgz";
       path = fetchurl {
         name = "unified_args___unified_args_8.1.0.tgz";
@@ -11946,11 +11666,11 @@
       };
     }
     {
-      name = "unified_engine___unified_engine_8.0.0.tgz";
+      name = "unified_engine___unified_engine_8.1.0.tgz";
       path = fetchurl {
-        name = "unified_engine___unified_engine_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/unified-engine/-/unified-engine-8.0.0.tgz";
-        sha1 = "e3996ff6eaecc6ca3408af92b70e25691192d17d";
+        name = "unified_engine___unified_engine_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unified-engine/-/unified-engine-8.1.0.tgz";
+        sha1 = "a846e11705fb8589d1250cd27500b56021d8a3e2";
       };
     }
     {
@@ -11962,19 +11682,19 @@
       };
     }
     {
-      name = "unified_message_control___unified_message_control_3.0.2.tgz";
+      name = "unified_message_control___unified_message_control_3.0.3.tgz";
       path = fetchurl {
-        name = "unified_message_control___unified_message_control_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.2.tgz";
-        sha1 = "efa316c97f39f6f54bc74a4cf35807e615694033";
+        name = "unified_message_control___unified_message_control_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.3.tgz";
+        sha1 = "d08c4564092a507668de71451a33c0d80e734bbd";
       };
     }
     {
-      name = "unified___unified_9.2.0.tgz";
+      name = "unified___unified_9.2.1.tgz";
       path = fetchurl {
-        name = "unified___unified_9.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz";
-        sha1 = "67a62c627c40589edebbf60f53edfd4d822027f8";
+        name = "unified___unified_9.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/unified/-/unified-9.2.1.tgz";
+        sha1 = "ae18d5674c114021bfdbdf73865ca60f410215a3";
       };
     }
     {
@@ -12034,11 +11754,11 @@
       };
     }
     {
-      name = "unist_util_is___unist_util_is_4.0.4.tgz";
+      name = "unist_util_is___unist_util_is_4.1.0.tgz";
       path = fetchurl {
-        name = "unist_util_is___unist_util_is_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz";
-        sha1 = "3e9e8de6af2eb0039a59f50c9b3e99698a924f50";
+        name = "unist_util_is___unist_util_is_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz";
+        sha1 = "976e5f462a7a5de73d94b706bac1b90671b57797";
       };
     }
     {
@@ -12050,14 +11770,6 @@
       };
     }
     {
-      name = "unist_util_remove_position___unist_util_remove_position_2.0.1.tgz";
-      path = fetchurl {
-        name = "unist_util_remove_position___unist_util_remove_position_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz";
-        sha1 = "5d19ca79fdba712301999b2b73553ca8f3b352cc";
-      };
-    }
-    {
       name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
       path = fetchurl {
         name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
@@ -12082,14 +11794,6 @@
       };
     }
     {
-      name = "universalify___universalify_0.1.2.tgz";
-      path = fetchurl {
-        name = "universalify___universalify_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
-        sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
-      };
-    }
-    {
       name = "unpipe___unpipe_1.0.0.tgz";
       path = fetchurl {
         name = "unpipe___unpipe_1.0.0.tgz";
@@ -12146,11 +11850,11 @@
       };
     }
     {
-      name = "url_loader___url_loader_2.3.0.tgz";
+      name = "url_loader___url_loader_4.1.1.tgz";
       path = fetchurl {
-        name = "url_loader___url_loader_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz";
-        sha1 = "e0e2ef658f003efb8ca41b0f3ffbf76bab88658b";
+        name = "url_loader___url_loader_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz";
+        sha1 = "28505e905cae158cf07c92ca622d7f237e70a4e2";
       };
     }
     {
@@ -12186,11 +11890,11 @@
       };
     }
     {
-      name = "utf_8_validate___utf_8_validate_5.0.4.tgz";
+      name = "utf_8_validate___utf_8_validate_5.0.5.tgz";
       path = fetchurl {
-        name = "utf_8_validate___utf_8_validate_5.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.4.tgz";
-        sha1 = "72a1735983ddf7a05a43a9c6b67c5ce1c910f9b8";
+        name = "utf_8_validate___utf_8_validate_5.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz";
+        sha1 = "dd32c2e82c72002dc9f02eb67ba6761f43456ca1";
       };
     }
     {
@@ -12266,11 +11970,19 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+      name = "uuid___uuid_8.3.2.tgz";
+      path = fetchurl {
+        name = "uuid___uuid_8.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz";
+        sha1 = "80d5b5ced271bb9af6c445f21a1a04c606cefbe2";
+      };
+    }
+    {
+      name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
-        sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
+        name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
       };
     }
     {
@@ -12298,6 +12010,14 @@
       };
     }
     {
+      name = "validator___validator_13.6.0.tgz";
+      path = fetchurl {
+        name = "validator___validator_13.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz";
+        sha1 = "1e71899c14cdc7b2068463cb24c1cc16f6ec7059";
+      };
+    }
+    {
       name = "validator___validator_9.4.1.tgz";
       path = fetchurl {
         name = "validator___validator_9.4.1.tgz";
@@ -12314,11 +12034,11 @@
       };
     }
     {
-      name = "vasync___vasync_1.6.4.tgz";
+      name = "vasync___vasync_2.2.0.tgz";
       path = fetchurl {
-        name = "vasync___vasync_1.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz";
-        sha1 = "dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f";
+        name = "vasync___vasync_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/vasync/-/vasync-2.2.0.tgz";
+        sha1 = "cfde751860a15822db3b132bc59b116a4adaf01b";
       };
     }
     {
@@ -12346,14 +12066,6 @@
       };
     }
     {
-      name = "verror___verror_1.6.0.tgz";
-      path = fetchurl {
-        name = "verror___verror_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz";
-        sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
-      };
-    }
-    {
       name = "vfile_location___vfile_location_3.2.0.tgz";
       path = fetchurl {
         name = "vfile_location___vfile_location_3.2.0.tgz";
@@ -12402,11 +12114,11 @@
       };
     }
     {
-      name = "visibilityjs___visibilityjs_1.2.8.tgz";
+      name = "visibilityjs___visibilityjs_2.0.2.tgz";
       path = fetchurl {
-        name = "visibilityjs___visibilityjs_1.2.8.tgz";
-        url  = "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-1.2.8.tgz";
-        sha1 = "4ccdcebdaef0b34fb89219ab8e10e39c3a7cbfd8";
+        name = "visibilityjs___visibilityjs_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-2.0.2.tgz";
+        sha1 = "d7c466e922024bb6c413d2136d5567e71f5fdc2f";
       };
     }
     {
@@ -12426,14 +12138,6 @@
       };
     }
     {
-      name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
-      path = fetchurl {
-        name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
-        sha1 = "0a89cdf5cc15822df9c360543676963e0cc308cd";
-      };
-    }
-    {
       name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
       path = fetchurl {
         name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
@@ -12450,14 +12154,6 @@
       };
     }
     {
-      name = "weak_map___weak_map_1.0.5.tgz";
-      path = fetchurl {
-        name = "weak_map___weak_map_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.5.tgz";
-        sha1 = "79691584d98607f5070bd3b70a40e6bb22e401eb";
-      };
-    }
-    {
       name = "webfontloader___webfontloader_1.6.28.tgz";
       path = fetchurl {
         name = "webfontloader___webfontloader_1.6.28.tgz";
@@ -12466,27 +12162,19 @@
       };
     }
     {
-      name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
+      name = "webpack_cli___webpack_cli_4.7.0.tgz";
       path = fetchurl {
-        name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
-        sha1 = "a855980b1f0b6b359ba1d5d9fb39ae941faa63ad";
+        name = "webpack_cli___webpack_cli_4.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz";
+        sha1 = "3195a777f1f802ecda732f6c95d24c0004bc5a35";
       };
     }
     {
-      name = "webpack_cli___webpack_cli_3.3.12.tgz";
+      name = "webpack_merge___webpack_merge_5.7.3.tgz";
       path = fetchurl {
-        name = "webpack_cli___webpack_cli_3.3.12.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz";
-        sha1 = "94e9ada081453cd0aa609c99e500012fd3ad2d4a";
-      };
-    }
-    {
-      name = "webpack_merge___webpack_merge_4.2.2.tgz";
-      path = fetchurl {
-        name = "webpack_merge___webpack_merge_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz";
-        sha1 = "a27c52ea783d1398afd2087f547d7b9d2f43634d";
+        name = "webpack_merge___webpack_merge_5.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz";
+        sha1 = "2a0754e1877a25a8bbab3d2475ca70a052708213";
       };
     }
     {
@@ -12498,51 +12186,43 @@
       };
     }
     {
-      name = "webpack___webpack_4.44.2.tgz";
+      name = "webpack_sources___webpack_sources_2.2.0.tgz";
       path = fetchurl {
-        name = "webpack___webpack_4.44.2.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz";
-        sha1 = "6bfe2b0af055c8b2d1e90ed2cd9363f841266b72";
+        name = "webpack_sources___webpack_sources_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz";
+        sha1 = "058926f39e3d443193b6c31547229806ffd02bac";
       };
     }
     {
-      name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+      name = "webpack___webpack_4.46.0.tgz";
       path = fetchurl {
-        name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
-        sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
+        name = "webpack___webpack_4.46.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz";
+        sha1 = "bf9b4404ea20a073605e0a011d188d77cb6ad542";
       };
     }
     {
-      name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+      name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
       path = fetchurl {
-        name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
-        sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
+        name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
+        sha1 = "13757bc89b209b049fe5d86430e21cf40a89a8e6";
       };
     }
     {
-      name = "whatwg_url___whatwg_url_6.5.0.tgz";
+      name = "which_collection___which_collection_1.0.1.tgz";
       path = fetchurl {
-        name = "whatwg_url___whatwg_url_6.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz";
-        sha1 = "f2df02bff176fd65070df74ad5ccbb5a199965a8";
+        name = "which_collection___which_collection_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz";
+        sha1 = "70eab71ebbbd2aefaf32f917082fc62cdcb70906";
       };
     }
     {
-      name = "whatwg_url___whatwg_url_7.1.0.tgz";
+      name = "which_typed_array___which_typed_array_1.1.4.tgz";
       path = fetchurl {
-        name = "whatwg_url___whatwg_url_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz";
-        sha1 = "c2c492f1eca612988efd3d2266be1b9fc6170d06";
-      };
-    }
-    {
-      name = "which_module___which_module_2.0.0.tgz";
-      path = fetchurl {
-        name = "which_module___which_module_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+        name = "which_typed_array___which_typed_array_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz";
+        sha1 = "8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff";
       };
     }
     {
@@ -12554,6 +12234,14 @@
       };
     }
     {
+      name = "which___which_2.0.2.tgz";
+      path = fetchurl {
+        name = "which___which_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+        sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+      };
+    }
+    {
       name = "wide_align___wide_align_1.1.3.tgz";
       path = fetchurl {
         name = "wide_align___wide_align_1.1.3.tgz";
@@ -12562,6 +12250,14 @@
       };
     }
     {
+      name = "wildcard___wildcard_2.0.0.tgz";
+      path = fetchurl {
+        name = "wildcard___wildcard_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz";
+        sha1 = "a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec";
+      };
+    }
+    {
       name = "winston_transport___winston_transport_4.4.0.tgz";
       path = fetchurl {
         name = "winston_transport___winston_transport_4.4.0.tgz";
@@ -12610,11 +12306,19 @@
       };
     }
     {
-      name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
+      name = "workerpool___workerpool_6.1.0.tgz";
+      path = fetchurl {
+        name = "workerpool___workerpool_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz";
+        sha1 = "a8e038b4c94569596852de7a8ea4228eefdeb37b";
+      };
+    }
+    {
+      name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
       path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
+        name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha1 = "67e145cff510a6a6984bdf1152911d69d2eb9e43";
       };
     }
     {
@@ -12634,35 +12338,11 @@
       };
     }
     {
-      name = "write___write_1.0.3.tgz";
+      name = "ws___ws_7.4.5.tgz";
       path = fetchurl {
-        name = "write___write_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
-        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
-      };
-    }
-    {
-      name = "ws___ws_5.2.2.tgz";
-      path = fetchurl {
-        name = "ws___ws_5.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz";
-        sha1 = "dffef14866b8e8dc9133582514d1befaf96e980f";
-      };
-    }
-    {
-      name = "ws___ws_6.2.1.tgz";
-      path = fetchurl {
-        name = "ws___ws_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz";
-        sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb";
-      };
-    }
-    {
-      name = "ws___ws_7.4.2.tgz";
-      path = fetchurl {
-        name = "ws___ws_7.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz";
-        sha1 = "782100048e54eb36fe9843363ab1c68672b261dd";
+        name = "ws___ws_7.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz";
+        sha1 = "a484dd851e9beb6fdb420027e3885e8ce48986c1";
       };
     }
     {
@@ -12674,35 +12354,19 @@
       };
     }
     {
-      name = "x_xss_protection___x_xss_protection_1.3.0.tgz";
-      path = fetchurl {
-        name = "x_xss_protection___x_xss_protection_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.3.0.tgz";
-        sha1 = "3e3a8dd638da80421b0e9fff11a2dbe168f6d52c";
-      };
-    }
-    {
-      name = "xml_crypto___xml_crypto_2.0.0.tgz";
-      path = fetchurl {
-        name = "xml_crypto___xml_crypto_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.0.0.tgz";
-        sha1 = "54cd268ad9d31930afcf7092cbb664258ca9e826";
-      };
-    }
-    {
-      name = "xml_encryption___xml_encryption_1.2.1.tgz";
+      name = "xml_crypto___xml_crypto_2.1.2.tgz";
       path = fetchurl {
-        name = "xml_encryption___xml_encryption_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.1.tgz";
-        sha1 = "e6d18817c4309fd07ca7793cca93c3fd06745baa";
+        name = "xml_crypto___xml_crypto_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-2.1.2.tgz";
+        sha1 = "501506d42e466f6cd908c5a03182217231b4e4b8";
       };
     }
     {
-      name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+      name = "xml_encryption___xml_encryption_1.2.4.tgz";
       path = fetchurl {
-        name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
-        sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
+        name = "xml_encryption___xml_encryption_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.4.tgz";
+        sha1 = "767d13f9ff2f979ff5657b93bd72aa729d34b66c";
       };
     }
     {
@@ -12738,11 +12402,11 @@
       };
     }
     {
-      name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
+      name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
       path = fetchurl {
-        name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz";
-        sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3";
+        name = "xmlbuilder___xmlbuilder_15.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz";
+        sha1 = "9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5";
       };
     }
     {
@@ -12754,11 +12418,11 @@
       };
     }
     {
-      name = "xmldom___xmldom_0.1.27.tgz";
+      name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
       path = fetchurl {
-        name = "xmldom___xmldom_0.1.27.tgz";
-        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz";
-        sha1 = "d501f97b3bdb403af8ef9ecc20573187aadac0e9";
+        name = "xmlbuilder___xmlbuilder_11.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz";
+        sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3";
       };
     }
     {
@@ -12770,19 +12434,27 @@
       };
     }
     {
-      name = "xmldom___xmldom_0.4.0.tgz";
+      name = "xmldom___xmldom_0.5.0.tgz";
+      path = fetchurl {
+        name = "xmldom___xmldom_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz";
+        sha1 = "193cb96b84aa3486127ea6272c4596354cb4962e";
+      };
+    }
+    {
+      name = "xmldom___xmldom_0.6.0.tgz";
       path = fetchurl {
-        name = "xmldom___xmldom_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.4.0.tgz";
-        sha1 = "8771e482a333af44587e30ce026f0998c23f3830";
+        name = "xmldom___xmldom_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz";
+        sha1 = "43a96ecb8beece991cef382c08397d82d4d0c46f";
       };
     }
     {
-      name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
+      name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.6.2.tgz";
       path = fetchurl {
-        name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz";
-        sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
+        name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.2.tgz";
+        sha1 = "dd6899bfbcf684b554e393c30b13b9f3b001a7ee";
       };
     }
     {
@@ -12802,19 +12474,19 @@
       };
     }
     {
-      name = "xpath___xpath_0.0.27.tgz";
+      name = "xpath___xpath_0.0.32.tgz";
       path = fetchurl {
-        name = "xpath___xpath_0.0.27.tgz";
-        url  = "https://registry.yarnpkg.com/xpath/-/xpath-0.0.27.tgz";
-        sha1 = "dd3421fbdcc5646ac32c48531b4d7e9d0c2cfa92";
+        name = "xpath___xpath_0.0.32.tgz";
+        url  = "https://registry.yarnpkg.com/xpath/-/xpath-0.0.32.tgz";
+        sha1 = "1b73d3351af736e17ec078d6da4b8175405c48af";
       };
     }
     {
-      name = "xss___xss_1.0.8.tgz";
+      name = "xss___xss_1.0.9.tgz";
       path = fetchurl {
-        name = "xss___xss_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/xss/-/xss-1.0.8.tgz";
-        sha1 = "32feb87feb74b3dcd3d404b7a68ababf10700535";
+        name = "xss___xss_1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/xss/-/xss-1.0.9.tgz";
+        sha1 = "3ffd565571ff60d2e40db7f3b80b4677bec770d2";
       };
     }
     {
@@ -12834,11 +12506,19 @@
       };
     }
     {
-      name = "y18n___y18n_4.0.1.tgz";
+      name = "y18n___y18n_4.0.3.tgz";
       path = fetchurl {
-        name = "y18n___y18n_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz";
-        sha1 = "8db2b83c31c5d75099bb890b23f3094891e247d4";
+        name = "y18n___y18n_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz";
+        sha1 = "b5f259c82cd6e336921efd7bfd8bf560de9eeedf";
+      };
+    }
+    {
+      name = "y18n___y18n_5.0.8.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_5.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz";
+        sha1 = "7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55";
       };
     }
     {
@@ -12866,19 +12546,35 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_13.1.2.tgz";
+      name = "yargs_parser___yargs_parser_20.2.4.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_20.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz";
+        sha1 = "b42890f14566796f85ae8e3a25290d205f154a54";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_20.2.7.tgz";
       path = fetchurl {
-        name = "yargs_parser___yargs_parser_13.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz";
-        sha1 = "130f09702ebaeef2650d54ce6e3e5706f7a4fb38";
+        name = "yargs_parser___yargs_parser_20.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz";
+        sha1 = "61df85c113edfb5a7a4e36eb8aa60ef423cbc90a";
       };
     }
     {
-      name = "yargs___yargs_13.3.2.tgz";
+      name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
       path = fetchurl {
-        name = "yargs___yargs_13.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz";
-        sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd";
+        name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz";
+        sha1 = "f131f9226911ae5d9ad38c432fe809366c2325eb";
+      };
+    }
+    {
+      name = "yargs___yargs_16.2.0.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_16.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz";
+        sha1 = "1c82bf0f6b6a66eafce7ef30e376f49a12477f66";
       };
     }
     {
@@ -12898,11 +12594,19 @@
       };
     }
     {
-      name = "zip_stream___zip_stream_4.0.4.tgz";
+      name = "zip_stream___zip_stream_4.1.0.tgz";
+      path = fetchurl {
+        name = "zip_stream___zip_stream_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz";
+        sha1 = "51dd326571544e36aa3f756430b313576dc8fc79";
+      };
+    }
+    {
+      name = "zwitch___zwitch_1.0.5.tgz";
       path = fetchurl {
-        name = "zip_stream___zip_stream_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.0.4.tgz";
-        sha1 = "3a8f100b73afaa7d1ae9338d910b321dec77ff3a";
+        name = "zwitch___zwitch_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz";
+        sha1 = "d11d7381ffed16b742f6af7b3f223d5cd9fe9920";
       };
     }
   ];
diff --git a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
index 4cc51baacea8..bd90e908f1c4 100644
--- a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, writeText, plugins ? [ ] }:
 
 let
-  version = "3.10.2";
+  version = "3.11";
   stableVersion = lib.concatStrings (lib.take 2 (lib.splitVersion version));
 
 in stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
-    sha256 = "sha256-s20GtwqV1BAVr2q+DxG6hqKnDqM0dVm6TbokmPC8Hrs=";
+    sha256 = "sha256-rZKY26ZPvubSr6nZ+Kguj1uKoEJbF3pEIKjjh6weyYo";
   };
 
   phpConfig = writeText "config.php" ''
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/default.nix b/nixpkgs/pkgs/servers/web-apps/plausible/default.nix
new file mode 100644
index 000000000000..bf408551a44e
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/default.nix
@@ -0,0 +1,92 @@
+{ lib
+, stdenv
+, beamPackages
+, fetchFromGitHub
+, glibcLocales
+, cacert
+, mkYarnModules
+, nodejs
+, fetchpatch
+, nixosTests
+}:
+
+let
+  pname = "plausible";
+  version = "1.3.0";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "plausible";
+    repo = "analytics";
+    rev = "v${version}";
+    sha256 = "03lm1f29gwwixnhgjish5bhi3m73qyp71ns2sczdnwnbhrw61zps";
+  };
+
+  # TODO consider using `mix2nix` as soon as it supports git dependencies.
+  mixFodDeps = beamPackages.fetchMixDeps {
+    pname = "${pname}-deps";
+    inherit src version;
+    sha256 = "18h3hs69nw06msvs3nnymf6p94qd3x1f4d2zawqriy9fr5fz7zx6";
+
+    # We need ecto 3.6 as this version checks whether the database exists before
+    # trying to create it. The creation attempt would always require super-user privileges
+    # and since 3.6 this isn't the case anymore.
+    patches = [ ./ecto_sql-fix.patch ];
+  };
+
+  yarnDeps = mkYarnModules {
+    pname = "${pname}-yarn-deps";
+    inherit version;
+    packageJSON = ./package.json;
+    yarnNix = ./yarn.nix;
+    yarnLock = ./yarn.lock;
+    preBuild = ''
+      mkdir -p tmp/deps
+      cp -r ${mixFodDeps}/phoenix tmp/deps/phoenix
+      cp -r ${mixFodDeps}/phoenix_html tmp/deps/phoenix_html
+    '';
+    postBuild = ''
+      echo 'module.exports = {}' > $out/node_modules/flatpickr/dist/postcss.config.js
+    '';
+  };
+in
+beamPackages.mixRelease {
+  inherit pname version src mixFodDeps;
+
+  nativeBuildInputs = [ nodejs ];
+
+  patches = [
+    # Allow socket-authentication against postgresql. Upstream PR is
+    # https://github.com/plausible/analytics/pull/1052
+    (fetchpatch {
+      url = "https://github.com/Ma27/analytics/commit/f2ee5892a6c3e1a861d69ed30cac43e05e9cd36f.patch";
+      sha256 = "sha256-JvJ7xlGw+tHtWje+jiQChVC4KTyqqdq2q+MIcOv/k1o=";
+    })
+
+    # Ensure that `tzdata` doesn't write into its store-path
+    # https://github.com/plausible/analytics/pull/1096, but rebased onto 1.3.0
+    ./tzdata-rebased.patch
+  ];
+
+  passthru = {
+    tests = { inherit (nixosTests) plausible; };
+    updateScript = ./update.sh;
+  };
+
+  postBuild = ''
+    ln -sf ${yarnDeps}/node_modules assets/node_modules
+    npm run deploy --prefix ./assets
+
+    # for external task you need a workaround for the no deps check flag
+    # https://github.com/phoenixframework/phoenix/issues/2690
+    mix do deps.loadpaths --no-deps-check, phx.digest
+  '';
+
+  meta = with lib; {
+    license = licenses.agpl3Plus;
+    homepage = "https://plausible.io/";
+    description = " Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.";
+    maintainers = with maintainers; [ ma27 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/ecto_sql-fix.patch b/nixpkgs/pkgs/servers/web-apps/plausible/ecto_sql-fix.patch
new file mode 100644
index 000000000000..13c3f4ffc3c0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/ecto_sql-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/mix.exs b/mix.exs
+index f6e3b9a..67687d1 100644
+--- a/mix.exs
++++ b/mix.exs
+@@ -52,7 +52,7 @@ defmodule Plausible.MixProject do
+     [
+       {:bcrypt_elixir, "~> 2.0"},
+       {:cors_plug, "~> 1.5"},
+-      {:ecto_sql, "~> 3.0"},
++      {:ecto_sql, "~> 3.6"},
+       {:elixir_uuid, "~> 1.2"},
+       {:gettext, "~> 0.11"},
+       {:jason, "~> 1.0"},
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/package.json b/nixpkgs/pkgs/servers/web-apps/plausible/package.json
new file mode 100644
index 000000000000..63c88f647dc3
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/package.json
@@ -0,0 +1,57 @@
+{
+  "repository": {},
+  "license": "MIT",
+  "scripts": {
+    "deploy": "$(npm bin)/webpack --mode production",
+    "watch": "$(npm bin)/webpack --mode development --watch"
+  },
+  "dependencies": {
+    "@babel/core": "^7.11.1",
+    "@babel/preset-env": "^7.11.0",
+    "@babel/preset-react": "^7.10.4",
+    "@tailwindcss/aspect-ratio": "^0.2.0",
+    "@tailwindcss/forms": "^0.2.1",
+    "@tailwindcss/typography": "^0.3.1",
+    "abortcontroller-polyfill": "^1.5.0",
+    "alpinejs": "^2.7.3",
+    "autoprefixer": "^9.8.6",
+    "babel-loader": "^8.1.0",
+    "chart.js": "^2.9.3",
+    "copy-webpack-plugin": "^6.0.3",
+    "css-loader": "^3.6.0",
+    "datamaps": "^0.5.9",
+    "iframe-resizer": "^4.3.1",
+    "mini-css-extract-plugin": "^0.8.2",
+    "optimize-css-assets-webpack-plugin": "^5.0.3",
+    "phoenix": "file:../../tmp/deps/phoenix",
+    "phoenix_html": "file:../../tmp/deps/phoenix_html",
+    "postcss": "^7.0.35",
+    "postcss-loader": "^4.0.4",
+    "react": "^16.13.1",
+    "react-dom": "^16.13.1",
+    "react-flatpickr": "^3.10.5",
+    "react-flip-move": "^3.0.4",
+    "react-router-dom": "^5.2.0",
+    "react-transition-group": "^4.4.1",
+    "tailwindcss": "2.0.1-compat",
+    "terser-webpack-plugin": "^4.2.3",
+    "url-search-params-polyfill": "^8.0.0",
+    "webpack": "4.39.2",
+    "webpack-cli": "^3.3.12"
+  },
+  "devDependencies": {
+    "eslint": "^7.2.0",
+    "eslint-config-airbnb": "^18.2.0",
+    "eslint-config-prettier": "^7.0.0",
+    "eslint-plugin-import": "^2.22.1",
+    "eslint-plugin-jsx-a11y": "^6.4.1",
+    "eslint-plugin-prettier": "^3.3.0",
+    "eslint-plugin-react": "^7.21.5",
+    "eslint-plugin-react-hooks": "^4.2.0",
+    "stylelint": "^13.8.0",
+    "stylelint-config-prettier": "^8.0.2",
+    "stylelint-config-standard": "^20.0.0"
+  },
+  "name": "plausible",
+  "version": "v1.3.0"
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/tzdata-rebased.patch b/nixpkgs/pkgs/servers/web-apps/plausible/tzdata-rebased.patch
new file mode 100644
index 000000000000..462ab3cb6d6e
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/tzdata-rebased.patch
@@ -0,0 +1,21 @@
+diff --git a/config/runtime.exs b/config/runtime.exs
+index 7c9cc14..8facd05 100644
+--- a/config/runtime.exs
++++ b/config/runtime.exs
+@@ -15,9 +15,7 @@ end
+ base_url = URI.parse(base_url)
+ 
+ if base_url.scheme not in ["http", "https"] do
+-  raise "BASE_URL must start with `http` or `https`. Currently configured as `#{
+-          System.get_env("BASE_URL")
+-        }`"
++  raise "BASE_URL must start with `http` or `https`. Currently configured as `#{System.get_env("BASE_URL")}`"
+ end
+ 
+ secret_key_base =
+@@ -300,3 +298,5 @@ if appsignal_api_key do
+     env: env,
+     active: true
+ end
++
++config :tzdata, :data_dir, System.get_env("TZDATA_DIR", "priv")
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/update.sh b/nixpkgs/pkgs/servers/web-apps/plausible/update.sh
new file mode 100755
index 000000000000..3abf3ee616fc
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/update.sh
@@ -0,0 +1,67 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p jq nix-prefetch-github yarn yarn2nix-moretea.yarn2nix moreutils
+
+# NOTE: please check on new releases which steps aren't necessary anymore!
+# Currently the following things are done:
+#
+# * Add correct `name`/`version` field to `package.json`, otherwise `yarn2nix` fails to
+#   find required dependencies.
+# * Keep `tailwindcss` on version 2.0.1-compat (on `yarn` it will be upgraded due to the `^`).
+#   This is needed to make sure the entire build still works with `postcss-7` (needed
+#   by plausible).
+# * Adjust `file:`-dependencies a bit for the structure inside a Nix build.
+# * Update hashes for the tarball & the fixed-output drv with all `mix`-dependencies.
+# * Generate `yarn.lock` & `yarn.nix` in a temporary directory.
+
+set -euxo pipefail
+
+dir="$(realpath $(dirname "$0"))"
+export latest="$(curl -q https://api.github.com/repos/plausible/analytics/releases/latest \
+  | jq -r '.tag_name')"
+nix_version="$(cut -c2- <<< "$latest")"
+
+if [[ "$(nix-instantiate -A plausible.version --eval --json | jq -r)" = "$nix_version" ]];
+then
+  echo "Already using version $latest, skipping"
+  exit 0
+fi
+
+SRC="https://raw.githubusercontent.com/plausible/analytics/${latest}"
+
+package_json="$(curl -qf "$SRC/assets/package.json")"
+export fixed_tailwind_version="$(jq '.dependencies.tailwindcss' -r <<< "$package_json" | sed -e 's,^^,,g')"
+
+echo "$package_json" \
+  | jq '. + {"name":"plausible","version": $ENV.latest} | .dependencies.tailwindcss = $ENV.fixed_tailwind_version' \
+  | sed -e 's,../deps/,../../tmp/deps/,g' \
+  > $dir/package.json
+
+tarball_meta="$(nix-prefetch-github plausible analytics --rev "$latest")"
+tarball_hash="$(nix to-base32 sha256-$(jq -r '.sha256' <<< "$tarball_meta"))"
+tarball_path="$(nix-build -E 'with import ./. {}; { p }: fetchFromGitHub (builtins.fromJSON p)' --argstr p "$tarball_meta")"
+fake_hash="$(nix-instantiate --eval -A lib.fakeSha256 | xargs echo)"
+
+sed -i "$dir/default.nix" \
+  -e 's,version = ".*",version = "'"$nix_version"'",' \
+  -e '/^  src = fetchFromGitHub/,+4{;s/sha256 = "\(.*\)"/sha256 = "'"$tarball_hash"'"/}' \
+  -e '/^  mixFodDeps =/,+3{;s/sha256 = "\(.*\)"/sha256 = "'"$fake_hash"'"/}'
+
+mix_hash="$(nix to-base32 $(nix-build -A plausible.mixFodDeps 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true))"
+
+sed -i "$dir/default.nix" -e '/^  mixFodDeps =/,+3{;s/sha256 = "\(.*\)"/sha256 = "'"$mix_hash"'"/}'
+
+tmp_setup_dir="$(mktemp -d)"
+trap "rm -rf $tmp_setup_dir" EXIT
+
+cp -r $tarball_path/* $tmp_setup_dir/
+cp -r "$(nix-build -A plausible.mixFodDeps)" "$tmp_setup_dir/deps"
+chmod -R u+rwx "$tmp_setup_dir"
+
+pushd $tmp_setup_dir/assets
+jq < package.json '.dependencies.tailwindcss = "'"$fixed_tailwind_version"'"' | sponge package.json
+yarn
+yarn2nix > "$dir/yarn.nix"
+cp yarn.lock "$dir/yarn.lock"
+popd
+
+nix-build -A plausible
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/yarn.lock b/nixpkgs/pkgs/servers/web-apps/plausible/yarn.lock
new file mode 100644
index 000000000000..273ff3d42180
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/yarn.lock
@@ -0,0 +1,7731 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@7.12.11":
+  version "7.12.11"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
+  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
+  dependencies:
+    "@babel/highlight" "^7.10.4"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
+  integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
+  dependencies:
+    "@babel/highlight" "^7.12.13"
+
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58"
+  integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==
+
+"@babel/core@>=7.9.0", "@babel/core@^7.11.1":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38"
+  integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/generator" "^7.14.3"
+    "@babel/helper-compilation-targets" "^7.13.16"
+    "@babel/helper-module-transforms" "^7.14.2"
+    "@babel/helpers" "^7.14.0"
+    "@babel/parser" "^7.14.3"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.2"
+    convert-source-map "^1.7.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.2"
+    json5 "^2.1.2"
+    semver "^6.3.0"
+    source-map "^0.5.0"
+
+"@babel/generator@^7.14.2", "@babel/generator@^7.14.3":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
+  integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
+  dependencies:
+    "@babel/types" "^7.14.2"
+    jsesc "^2.5.1"
+    source-map "^0.5.0"
+
+"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
+  integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc"
+  integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==
+  dependencies:
+    "@babel/helper-explode-assignable-expression" "^7.12.13"
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516"
+  integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==
+  dependencies:
+    "@babel/compat-data" "^7.14.4"
+    "@babel/helper-validator-option" "^7.12.17"
+    browserslist "^4.16.6"
+    semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42"
+  integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.12.13"
+    "@babel/helper-function-name" "^7.14.2"
+    "@babel/helper-member-expression-to-functions" "^7.13.12"
+    "@babel/helper-optimise-call-expression" "^7.12.13"
+    "@babel/helper-replace-supers" "^7.14.4"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+
+"@babel/helper-create-regexp-features-plugin@^7.12.13":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz#149aa6d78c016e318c43e2409a0ae9c136a86688"
+  integrity sha512-JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.12.13"
+    regexpu-core "^4.7.1"
+
+"@babel/helper-define-polyfill-provider@^0.2.2":
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"
+  integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.13.0"
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/traverse" "^7.13.0"
+    debug "^4.1.1"
+    lodash.debounce "^4.0.8"
+    resolve "^1.14.2"
+    semver "^6.1.2"
+
+"@babel/helper-explode-assignable-expression@^7.12.13":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f"
+  integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==
+  dependencies:
+    "@babel/types" "^7.13.0"
+
+"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
+  integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
+  dependencies:
+    "@babel/helper-get-function-arity" "^7.12.13"
+    "@babel/template" "^7.12.13"
+    "@babel/types" "^7.14.2"
+
+"@babel/helper-get-function-arity@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
+  integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-hoist-variables@^7.13.0":
+  version "7.13.16"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30"
+  integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==
+  dependencies:
+    "@babel/traverse" "^7.13.15"
+    "@babel/types" "^7.13.16"
+
+"@babel/helper-member-expression-to-functions@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
+  integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==
+  dependencies:
+    "@babel/types" "^7.13.12"
+
+"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
+  integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==
+  dependencies:
+    "@babel/types" "^7.13.12"
+
+"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
+  integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
+  dependencies:
+    "@babel/helper-module-imports" "^7.13.12"
+    "@babel/helper-replace-supers" "^7.13.12"
+    "@babel/helper-simple-access" "^7.13.12"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+    "@babel/helper-validator-identifier" "^7.14.0"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.2"
+
+"@babel/helper-optimise-call-expression@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
+  integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
+  integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
+
+"@babel/helper-remap-async-to-generator@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"
+  integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.12.13"
+    "@babel/helper-wrap-function" "^7.13.0"
+    "@babel/types" "^7.13.0"
+
+"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836"
+  integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==
+  dependencies:
+    "@babel/helper-member-expression-to-functions" "^7.13.12"
+    "@babel/helper-optimise-call-expression" "^7.12.13"
+    "@babel/traverse" "^7.14.2"
+    "@babel/types" "^7.14.4"
+
+"@babel/helper-simple-access@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
+  integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
+  dependencies:
+    "@babel/types" "^7.13.12"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
+  version "7.12.1"
+  resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
+  integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
+  dependencies:
+    "@babel/types" "^7.12.1"
+
+"@babel/helper-split-export-declaration@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
+  integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==
+  dependencies:
+    "@babel/types" "^7.12.13"
+
+"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
+  integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
+
+"@babel/helper-validator-option@^7.12.17":
+  version "7.12.17"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
+  integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
+
+"@babel/helper-wrap-function@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4"
+  integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==
+  dependencies:
+    "@babel/helper-function-name" "^7.12.13"
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.13.0"
+    "@babel/types" "^7.13.0"
+
+"@babel/helpers@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
+  integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
+  dependencies:
+    "@babel/template" "^7.12.13"
+    "@babel/traverse" "^7.14.0"
+    "@babel/types" "^7.14.0"
+
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf"
+  integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.14.0"
+    chalk "^2.0.0"
+    js-tokens "^4.0.0"
+
+"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18"
+  integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":
+  version "7.13.12"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a"
+  integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+    "@babel/plugin-proposal-optional-chaining" "^7.13.12"
+
+"@babel/plugin-proposal-async-generator-functions@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e"
+  integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-remap-async-to-generator" "^7.13.0"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+
+"@babel/plugin-proposal-class-properties@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37"
+  integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-proposal-class-static-block@^7.14.3":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360"
+  integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.14.3"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-class-static-block" "^7.12.13"
+
+"@babel/plugin-proposal-dynamic-import@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f"
+  integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-proposal-export-namespace-from@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791"
+  integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-json-strings@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c"
+  integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-proposal-logical-assignment-operators@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7"
+  integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546"
+  integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-proposal-numeric-separator@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e"
+  integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4"
+  integrity sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==
+  dependencies:
+    "@babel/compat-data" "^7.14.4"
+    "@babel/helper-compilation-targets" "^7.14.4"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-transform-parameters" "^7.14.2"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717"
+  integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e"
+  integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-proposal-private-methods@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787"
+  integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-proposal-private-property-in-object@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636"
+  integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.12.13"
+    "@babel/helper-create-class-features-plugin" "^7.14.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.0"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba"
+  integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+  version "7.8.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+  integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+  integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c"
+  integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-dynamic-import@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+  integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+  integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+  integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15"
+  integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+  integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+  integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+  integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+  integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+  integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+  integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b"
+  integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-syntax-top-level-await@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"
+  integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-arrow-functions@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae"
+  integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-async-to-generator@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f"
+  integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==
+  dependencies:
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-remap-async-to-generator" "^7.13.0"
+
+"@babel/plugin-transform-block-scoped-functions@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4"
+  integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-block-scoping@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8"
+  integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-classes@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a"
+  integrity sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.12.13"
+    "@babel/helper-function-name" "^7.14.2"
+    "@babel/helper-optimise-call-expression" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-replace-supers" "^7.14.4"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+    globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed"
+  integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-destructuring@^7.14.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed"
+  integrity sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad"
+  integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-duplicate-keys@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de"
+  integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-exponentiation-operator@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1"
+  integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==
+  dependencies:
+    "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-for-of@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062"
+  integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-function-name@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051"
+  integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==
+  dependencies:
+    "@babel/helper-function-name" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-literals@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9"
+  integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-member-expression-literals@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40"
+  integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-modules-amd@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0"
+  integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.14.2"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-commonjs@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161"
+  integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.14.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-simple-access" "^7.13.12"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-systemjs@^7.13.8":
+  version "7.13.8"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3"
+  integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==
+  dependencies:
+    "@babel/helper-hoist-variables" "^7.13.0"
+    "@babel/helper-module-transforms" "^7.13.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-validator-identifier" "^7.12.11"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-umd@^7.14.0":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34"
+  integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.14.0"
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9"
+  integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
+
+"@babel/plugin-transform-new-target@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c"
+  integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-object-super@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7"
+  integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+    "@babel/helper-replace-supers" "^7.12.13"
+
+"@babel/plugin-transform-parameters@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31"
+  integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-property-literals@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81"
+  integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-react-display-name@^7.12.13":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz#2e854544d42ab3bb9c21f84e153d62e800fbd593"
+  integrity sha512-zCubvP+jjahpnFJvPaHPiGVfuVUjXHhFvJKQdNnsmSsiU9kR/rCZ41jHc++tERD2zV+p7Hr6is+t5b6iWTCqSw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-react-jsx-development@^7.12.17":
+  version "7.12.17"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447"
+  integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==
+  dependencies:
+    "@babel/plugin-transform-react-jsx" "^7.12.17"
+
+"@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.13.12":
+  version "7.14.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz#0e26597805cf0862da735f264550933c38babb66"
+  integrity sha512-uuxuoUNVhdgYzERiHHFkE4dWoJx+UFVyuAl0aqN8P2/AKFHwqgUC5w2+4/PjpKXJsFgBlYAFXlUmDQ3k3DUkXw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.12.13"
+    "@babel/helper-module-imports" "^7.13.12"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/plugin-syntax-jsx" "^7.12.13"
+    "@babel/types" "^7.14.2"
+
+"@babel/plugin-transform-react-pure-annotations@^7.12.1":
+  version "7.12.1"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42"
+  integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.10.4"
+    "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-regenerator@^7.13.15":
+  version "7.13.15"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39"
+  integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==
+  dependencies:
+    regenerator-transform "^0.14.2"
+
+"@babel/plugin-transform-reserved-words@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695"
+  integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-shorthand-properties@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad"
+  integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-spread@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd"
+  integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+
+"@babel/plugin-transform-sticky-regex@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f"
+  integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-template-literals@^7.13.0":
+  version "7.13.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d"
+  integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+
+"@babel/plugin-transform-typeof-symbol@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f"
+  integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-unicode-escapes@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74"
+  integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-transform-unicode-regex@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac"
+  integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/preset-env@^7.11.0":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d"
+  integrity sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==
+  dependencies:
+    "@babel/compat-data" "^7.14.4"
+    "@babel/helper-compilation-targets" "^7.14.4"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-validator-option" "^7.12.17"
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12"
+    "@babel/plugin-proposal-async-generator-functions" "^7.14.2"
+    "@babel/plugin-proposal-class-properties" "^7.13.0"
+    "@babel/plugin-proposal-class-static-block" "^7.14.3"
+    "@babel/plugin-proposal-dynamic-import" "^7.14.2"
+    "@babel/plugin-proposal-export-namespace-from" "^7.14.2"
+    "@babel/plugin-proposal-json-strings" "^7.14.2"
+    "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2"
+    "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2"
+    "@babel/plugin-proposal-numeric-separator" "^7.14.2"
+    "@babel/plugin-proposal-object-rest-spread" "^7.14.4"
+    "@babel/plugin-proposal-optional-catch-binding" "^7.14.2"
+    "@babel/plugin-proposal-optional-chaining" "^7.14.2"
+    "@babel/plugin-proposal-private-methods" "^7.13.0"
+    "@babel/plugin-proposal-private-property-in-object" "^7.14.0"
+    "@babel/plugin-proposal-unicode-property-regex" "^7.12.13"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+    "@babel/plugin-syntax-class-properties" "^7.12.13"
+    "@babel/plugin-syntax-class-static-block" "^7.12.13"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.0"
+    "@babel/plugin-syntax-top-level-await" "^7.12.13"
+    "@babel/plugin-transform-arrow-functions" "^7.13.0"
+    "@babel/plugin-transform-async-to-generator" "^7.13.0"
+    "@babel/plugin-transform-block-scoped-functions" "^7.12.13"
+    "@babel/plugin-transform-block-scoping" "^7.14.4"
+    "@babel/plugin-transform-classes" "^7.14.4"
+    "@babel/plugin-transform-computed-properties" "^7.13.0"
+    "@babel/plugin-transform-destructuring" "^7.14.4"
+    "@babel/plugin-transform-dotall-regex" "^7.12.13"
+    "@babel/plugin-transform-duplicate-keys" "^7.12.13"
+    "@babel/plugin-transform-exponentiation-operator" "^7.12.13"
+    "@babel/plugin-transform-for-of" "^7.13.0"
+    "@babel/plugin-transform-function-name" "^7.12.13"
+    "@babel/plugin-transform-literals" "^7.12.13"
+    "@babel/plugin-transform-member-expression-literals" "^7.12.13"
+    "@babel/plugin-transform-modules-amd" "^7.14.2"
+    "@babel/plugin-transform-modules-commonjs" "^7.14.0"
+    "@babel/plugin-transform-modules-systemjs" "^7.13.8"
+    "@babel/plugin-transform-modules-umd" "^7.14.0"
+    "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13"
+    "@babel/plugin-transform-new-target" "^7.12.13"
+    "@babel/plugin-transform-object-super" "^7.12.13"
+    "@babel/plugin-transform-parameters" "^7.14.2"
+    "@babel/plugin-transform-property-literals" "^7.12.13"
+    "@babel/plugin-transform-regenerator" "^7.13.15"
+    "@babel/plugin-transform-reserved-words" "^7.12.13"
+    "@babel/plugin-transform-shorthand-properties" "^7.12.13"
+    "@babel/plugin-transform-spread" "^7.13.0"
+    "@babel/plugin-transform-sticky-regex" "^7.12.13"
+    "@babel/plugin-transform-template-literals" "^7.13.0"
+    "@babel/plugin-transform-typeof-symbol" "^7.12.13"
+    "@babel/plugin-transform-unicode-escapes" "^7.12.13"
+    "@babel/plugin-transform-unicode-regex" "^7.12.13"
+    "@babel/preset-modules" "^0.1.4"
+    "@babel/types" "^7.14.4"
+    babel-plugin-polyfill-corejs2 "^0.2.0"
+    babel-plugin-polyfill-corejs3 "^0.2.0"
+    babel-plugin-polyfill-regenerator "^0.2.0"
+    core-js-compat "^3.9.0"
+    semver "^6.3.0"
+
+"@babel/preset-modules@^0.1.4":
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
+  integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+    "@babel/plugin-transform-dotall-regex" "^7.4.4"
+    "@babel/types" "^7.4.4"
+    esutils "^2.0.2"
+
+"@babel/preset-react@^7.10.4":
+  version "7.13.13"
+  resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz#fa6895a96c50763fe693f9148568458d5a839761"
+  integrity sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/helper-validator-option" "^7.12.17"
+    "@babel/plugin-transform-react-display-name" "^7.12.13"
+    "@babel/plugin-transform-react-jsx" "^7.13.12"
+    "@babel/plugin-transform-react-jsx-development" "^7.12.17"
+    "@babel/plugin-transform-react-pure-annotations" "^7.12.1"
+
+"@babel/runtime-corejs3@^7.10.2":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz#6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66"
+  integrity sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==
+  dependencies:
+    core-js-pure "^3.0.0"
+    regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
+  version "7.14.0"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6"
+  integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
+  integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/parser" "^7.12.13"
+    "@babel/types" "^7.12.13"
+
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2":
+  version "7.14.2"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
+  integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
+  dependencies:
+    "@babel/code-frame" "^7.12.13"
+    "@babel/generator" "^7.14.2"
+    "@babel/helper-function-name" "^7.14.2"
+    "@babel/helper-split-export-declaration" "^7.12.13"
+    "@babel/parser" "^7.14.2"
+    "@babel/types" "^7.14.2"
+    debug "^4.1.0"
+    globals "^11.1.0"
+
+"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.14.4", "@babel/types@^7.4.4":
+  version "7.14.4"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0"
+  integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.14.0"
+    to-fast-properties "^2.0.0"
+
+"@eslint/eslintrc@^0.4.1":
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14"
+  integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.1.1"
+    espree "^7.3.0"
+    globals "^12.1.0"
+    ignore "^4.0.6"
+    import-fresh "^3.2.1"
+    js-yaml "^3.13.1"
+    minimatch "^3.0.4"
+    strip-json-comments "^3.1.1"
+
+"@fullhuman/postcss-purgecss@^3.0.0":
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz#47af7b87c9bfb3de4bc94a38f875b928fffdf339"
+  integrity sha512-kwOXw8fZ0Lt1QmeOOrd+o4Ibvp4UTEBFQbzvWldjlKv5n+G9sXfIPn1hh63IQIL8K8vbvv1oYMJiIUbuy9bGaA==
+  dependencies:
+    purgecss "^3.1.3"
+
+"@nodelib/fs.scandir@2.1.4":
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
+  integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.4"
+    run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"
+  integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==
+
+"@nodelib/fs.walk@^1.2.3":
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"
+  integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.4"
+    fastq "^1.6.0"
+
+"@npmcli/move-file@^1.0.1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
+  integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
+  dependencies:
+    mkdirp "^1.0.4"
+    rimraf "^3.0.2"
+
+"@stylelint/postcss-css-in-js@^0.37.2":
+  version "0.37.2"
+  resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2"
+  integrity sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==
+  dependencies:
+    "@babel/core" ">=7.9.0"
+
+"@stylelint/postcss-markdown@^0.36.2":
+  version "0.36.2"
+  resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz#0a540c4692f8dcdfc13c8e352c17e7bfee2bb391"
+  integrity sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==
+  dependencies:
+    remark "^13.0.0"
+    unist-util-find-all-after "^3.0.2"
+
+"@tailwindcss/aspect-ratio@^0.2.0":
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.2.1.tgz#a7ce776688b8218d9559a6918f0bccc58f0f16dd"
+  integrity sha512-aDFi80aHQ3JM3symJ5iKU70lm151ugIGFCI0yRZGpyjgQSDS+Fbe93QwypC1tCEllQE8p0S7TUu20ih1b9IKLA==
+
+"@tailwindcss/forms@^0.2.1":
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.2.1.tgz#3244b185854fae1a7cbe8d2456314d8b2d98cf43"
+  integrity sha512-czfvEdY+J2Ogfd6RUSr/ZSUmDxTujr34M++YLnp2cCPC3oJ4kFvFMaRXA6cEXKw7F1hJuapdjXRjsXIEXGgORg==
+  dependencies:
+    mini-svg-data-uri "^1.2.3"
+
+"@tailwindcss/typography@^0.3.1":
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.3.1.tgz#253ce580c8e06b6163d9a288edd24f25e1d0dfee"
+  integrity sha512-HyZ+3Eay8SGaPq7kcFoANZLr4EjeXQ19yjjb9fp6B0PHHpvZoe00jdsnpnooMEbx9J5rQ93nxPUG3MQmXVxGMQ==
+
+"@types/d3@3.5.38":
+  version "3.5.38"
+  resolved "https://registry.yarnpkg.com/@types/d3/-/d3-3.5.38.tgz#76f8f2e9159ae562965b2fa0e6fbee1aa643a1bc"
+  integrity sha1-dvjy6RWa5WKWWy+g5vvuGqZDobw=
+
+"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
+  version "7.0.7"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
+  integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
+
+"@types/json5@^0.0.29":
+  version "0.0.29"
+  resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
+  integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
+
+"@types/mdast@^3.0.0":
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb"
+  integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==
+  dependencies:
+    "@types/unist" "*"
+
+"@types/minimist@^1.2.0":
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256"
+  integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==
+
+"@types/node@*":
+  version "15.6.1"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08"
+  integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==
+
+"@types/normalize-package-data@^2.4.0":
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+  integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
+
+"@types/parse-json@^4.0.0":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+  integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/q@^1.5.1":
+  version "1.5.4"
+  resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
+  integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
+
+"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2":
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
+  integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==
+
+"@webassemblyjs/ast@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
+  integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==
+  dependencies:
+    "@webassemblyjs/helper-module-context" "1.8.5"
+    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+    "@webassemblyjs/wast-parser" "1.8.5"
+
+"@webassemblyjs/floating-point-hex-parser@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721"
+  integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==
+
+"@webassemblyjs/helper-api-error@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7"
+  integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==
+
+"@webassemblyjs/helper-buffer@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204"
+  integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==
+
+"@webassemblyjs/helper-code-frame@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e"
+  integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==
+  dependencies:
+    "@webassemblyjs/wast-printer" "1.8.5"
+
+"@webassemblyjs/helper-fsm@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452"
+  integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==
+
+"@webassemblyjs/helper-module-context@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245"
+  integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    mamacro "^0.0.3"
+
+"@webassemblyjs/helper-wasm-bytecode@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61"
+  integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==
+
+"@webassemblyjs/helper-wasm-section@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf"
+  integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/helper-buffer" "1.8.5"
+    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+    "@webassemblyjs/wasm-gen" "1.8.5"
+
+"@webassemblyjs/ieee754@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e"
+  integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==
+  dependencies:
+    "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10"
+  integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==
+  dependencies:
+    "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc"
+  integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==
+
+"@webassemblyjs/wasm-edit@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a"
+  integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/helper-buffer" "1.8.5"
+    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+    "@webassemblyjs/helper-wasm-section" "1.8.5"
+    "@webassemblyjs/wasm-gen" "1.8.5"
+    "@webassemblyjs/wasm-opt" "1.8.5"
+    "@webassemblyjs/wasm-parser" "1.8.5"
+    "@webassemblyjs/wast-printer" "1.8.5"
+
+"@webassemblyjs/wasm-gen@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc"
+  integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+    "@webassemblyjs/ieee754" "1.8.5"
+    "@webassemblyjs/leb128" "1.8.5"
+    "@webassemblyjs/utf8" "1.8.5"
+
+"@webassemblyjs/wasm-opt@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264"
+  integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/helper-buffer" "1.8.5"
+    "@webassemblyjs/wasm-gen" "1.8.5"
+    "@webassemblyjs/wasm-parser" "1.8.5"
+
+"@webassemblyjs/wasm-parser@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d"
+  integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/helper-api-error" "1.8.5"
+    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+    "@webassemblyjs/ieee754" "1.8.5"
+    "@webassemblyjs/leb128" "1.8.5"
+    "@webassemblyjs/utf8" "1.8.5"
+
+"@webassemblyjs/wast-parser@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c"
+  integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/floating-point-hex-parser" "1.8.5"
+    "@webassemblyjs/helper-api-error" "1.8.5"
+    "@webassemblyjs/helper-code-frame" "1.8.5"
+    "@webassemblyjs/helper-fsm" "1.8.5"
+    "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/wast-printer@1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc"
+  integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/wast-parser" "1.8.5"
+    "@xtuc/long" "4.2.2"
+
+"@xtuc/ieee754@^1.2.0":
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+  integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+"@xtuc/long@4.2.2":
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+  integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
+abortcontroller-polyfill@^1.5.0:
+  version "1.7.3"
+  resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5"
+  integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==
+
+acorn-jsx@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
+  integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
+
+acorn-node@^1.6.1:
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
+  integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
+  dependencies:
+    acorn "^7.0.0"
+    acorn-walk "^7.0.0"
+    xtend "^4.0.2"
+
+acorn-walk@^7.0.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+  integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn@^6.2.1:
+  version "6.4.2"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
+  integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
+
+acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.0:
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+aggregate-error@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+  dependencies:
+    clean-stack "^2.0.0"
+    indent-string "^4.0.0"
+
+ajv-errors@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+  integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
+
+ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+  integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5:
+  version "6.12.6"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
+ajv@^8.0.1:
+  version "8.5.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b"
+  integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
+
+alphanum-sort@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+  integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
+
+alpinejs@^2.7.3:
+  version "2.8.2"
+  resolved "https://registry.yarnpkg.com/alpinejs/-/alpinejs-2.8.2.tgz#b14ec21ae3cd78dcee4aed0a78ed0f01b676dac4"
+  integrity sha512-5yOUtckn4CBp0qsHpo2qgjZyZit84uXvHbB7NJ27sn4FA6UlFl2i9PGUAdTXkcbFvvxDJBM+zpOD8RuNYFvQAw==
+
+ansi-colors@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+
+ansi-regex@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+
+ansi-regex@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+  integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
+ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+  dependencies:
+    color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
+anymatch@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+  integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
+  dependencies:
+    micromatch "^3.1.4"
+    normalize-path "^2.1.1"
+
+anymatch@~3.1.1:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
+aproba@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+argparse@^1.0.7:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+  dependencies:
+    sprintf-js "~1.0.2"
+
+aria-query@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
+  integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==
+  dependencies:
+    "@babel/runtime" "^7.10.2"
+    "@babel/runtime-corejs3" "^7.10.2"
+
+arr-diff@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+  integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+  integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+  integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
+array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"
+  integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.2"
+    get-intrinsic "^1.1.1"
+    is-string "^1.0.5"
+
+array-union@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+array-unique@^0.3.2:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+  integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+
+array.prototype.flat@^1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123"
+  integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.1"
+
+array.prototype.flatmap@^1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9"
+  integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.1"
+    function-bind "^1.1.1"
+
+arrify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+  integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
+
+asn1.js@^5.2.0:
+  version "5.4.1"
+  resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
+  integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
+  dependencies:
+    bn.js "^4.0.0"
+    inherits "^2.0.1"
+    minimalistic-assert "^1.0.0"
+    safer-buffer "^2.1.0"
+
+assert@^1.1.1:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
+  integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
+  dependencies:
+    object-assign "^4.1.1"
+    util "0.10.3"
+
+assign-symbols@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+  integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
+ast-types-flow@^0.0.7:
+  version "0.0.7"
+  resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
+  integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
+
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
+async-each@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
+  integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
+
+at-least-node@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
+atob@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+autoprefixer@^9, autoprefixer@^9.8.6:
+  version "9.8.6"
+  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
+  integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
+  dependencies:
+    browserslist "^4.12.0"
+    caniuse-lite "^1.0.30001109"
+    colorette "^1.2.1"
+    normalize-range "^0.1.2"
+    num2fraction "^1.2.2"
+    postcss "^7.0.32"
+    postcss-value-parser "^4.1.0"
+
+axe-core@^4.0.2:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.1.tgz#2e50bcf10ee5b819014f6e342e41e45096239e34"
+  integrity sha512-evY7DN8qSIbsW2H/TWQ1bX3sXN1d4MNb5Vb4n7BzPuCwRHdkZ1H2eNLuSh73EoQqkGKUtju2G2HCcjCfhvZIAA==
+
+axobject-query@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
+  integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
+
+babel-loader@^8.1.0:
+  version "8.2.2"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
+  integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
+  dependencies:
+    find-cache-dir "^3.3.1"
+    loader-utils "^1.4.0"
+    make-dir "^3.1.0"
+    schema-utils "^2.6.5"
+
+babel-plugin-dynamic-import-node@^2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+  integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+  dependencies:
+    object.assign "^4.1.0"
+
+babel-plugin-polyfill-corejs2@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"
+  integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==
+  dependencies:
+    "@babel/compat-data" "^7.13.11"
+    "@babel/helper-define-polyfill-provider" "^0.2.2"
+    semver "^6.1.1"
+
+babel-plugin-polyfill-corejs3@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5"
+  integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.2.2"
+    core-js-compat "^3.9.1"
+
+babel-plugin-polyfill-regenerator@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
+  integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==
+  dependencies:
+    "@babel/helper-define-polyfill-provider" "^0.2.2"
+
+bail@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776"
+  integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==
+
+balanced-match@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+balanced-match@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9"
+  integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==
+
+base64-js@^1.0.2:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+base@^0.11.1:
+  version "0.11.2"
+  resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+  integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+  dependencies:
+    cache-base "^1.0.1"
+    class-utils "^0.3.5"
+    component-emitter "^1.2.1"
+    define-property "^1.0.0"
+    isobject "^3.0.1"
+    mixin-deep "^1.2.0"
+    pascalcase "^0.1.1"
+
+big.js@^5.2.2:
+  version "5.2.2"
+  resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+  integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+binary-extensions@^1.0.0:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+  integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+bindings@^1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+  integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+  dependencies:
+    file-uri-to-path "1.0.0"
+
+bluebird@^3.5.5:
+  version "3.7.2"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+  integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
+  version "4.12.0"
+  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
+  integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
+
+bn.js@^5.0.0, bn.js@^5.1.1:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
+  integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
+
+boolbase@^1.0.0, boolbase@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+  integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+
+brace-expansion@^1.1.7:
+  version "1.1.11"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+  dependencies:
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
+
+braces@^2.3.1, braces@^2.3.2:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+  integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+  dependencies:
+    arr-flatten "^1.1.0"
+    array-unique "^0.3.2"
+    extend-shallow "^2.0.1"
+    fill-range "^4.0.0"
+    isobject "^3.0.1"
+    repeat-element "^1.1.2"
+    snapdragon "^0.8.1"
+    snapdragon-node "^2.0.1"
+    split-string "^3.0.2"
+    to-regex "^3.0.1"
+
+braces@^3.0.1, braces@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
+brfs@^1.3.0:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3"
+  integrity sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==
+  dependencies:
+    quote-stream "^1.0.1"
+    resolve "^1.1.5"
+    static-module "^2.2.0"
+    through2 "^2.0.0"
+
+brorand@^1.0.1, brorand@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+  integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
+
+browserify-aes@^1.0.0, browserify-aes@^1.0.4:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+  integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
+  dependencies:
+    buffer-xor "^1.0.3"
+    cipher-base "^1.0.0"
+    create-hash "^1.1.0"
+    evp_bytestokey "^1.0.3"
+    inherits "^2.0.1"
+    safe-buffer "^5.0.1"
+
+browserify-cipher@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+  integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
+  dependencies:
+    browserify-aes "^1.0.4"
+    browserify-des "^1.0.0"
+    evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+  integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
+  dependencies:
+    cipher-base "^1.0.1"
+    des.js "^1.0.0"
+    inherits "^2.0.1"
+    safe-buffer "^5.1.2"
+
+browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
+  integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
+  dependencies:
+    bn.js "^5.0.0"
+    randombytes "^2.0.1"
+
+browserify-sign@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
+  integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
+  dependencies:
+    bn.js "^5.1.1"
+    browserify-rsa "^4.0.1"
+    create-hash "^1.2.0"
+    create-hmac "^1.1.7"
+    elliptic "^6.5.3"
+    inherits "^2.0.4"
+    parse-asn1 "^5.1.5"
+    readable-stream "^3.6.0"
+    safe-buffer "^5.2.0"
+
+browserify-zlib@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+  integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
+  dependencies:
+    pako "~1.0.5"
+
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6:
+  version "4.16.6"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+  integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
+  dependencies:
+    caniuse-lite "^1.0.30001219"
+    colorette "^1.2.2"
+    electron-to-chromium "^1.3.723"
+    escalade "^3.1.1"
+    node-releases "^1.1.71"
+
+buffer-equal@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
+  integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
+
+buffer-from@^1.0.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+buffer-xor@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+  integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
+
+buffer@^4.3.0:
+  version "4.9.2"
+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
+  integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
+  dependencies:
+    base64-js "^1.0.2"
+    ieee754 "^1.1.4"
+    isarray "^1.0.0"
+
+builtin-status-codes@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+  integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
+
+bytes@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+cacache@^12.0.2:
+  version "12.0.4"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
+  integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
+  dependencies:
+    bluebird "^3.5.5"
+    chownr "^1.1.1"
+    figgy-pudding "^3.5.1"
+    glob "^7.1.4"
+    graceful-fs "^4.1.15"
+    infer-owner "^1.0.3"
+    lru-cache "^5.1.1"
+    mississippi "^3.0.0"
+    mkdirp "^0.5.1"
+    move-concurrently "^1.0.1"
+    promise-inflight "^1.0.1"
+    rimraf "^2.6.3"
+    ssri "^6.0.1"
+    unique-filename "^1.1.1"
+    y18n "^4.0.0"
+
+cacache@^15.0.5:
+  version "15.2.0"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389"
+  integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==
+  dependencies:
+    "@npmcli/move-file" "^1.0.1"
+    chownr "^2.0.0"
+    fs-minipass "^2.0.0"
+    glob "^7.1.4"
+    infer-owner "^1.0.4"
+    lru-cache "^6.0.0"
+    minipass "^3.1.1"
+    minipass-collect "^1.0.2"
+    minipass-flush "^1.0.5"
+    minipass-pipeline "^1.2.2"
+    mkdirp "^1.0.3"
+    p-map "^4.0.0"
+    promise-inflight "^1.0.1"
+    rimraf "^3.0.2"
+    ssri "^8.0.1"
+    tar "^6.0.2"
+    unique-filename "^1.1.1"
+
+cache-base@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+  integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+  dependencies:
+    collection-visit "^1.0.0"
+    component-emitter "^1.2.1"
+    get-value "^2.0.6"
+    has-value "^1.0.0"
+    isobject "^3.0.1"
+    set-value "^2.0.0"
+    to-object-path "^0.3.0"
+    union-value "^1.0.0"
+    unset-value "^1.0.0"
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+  dependencies:
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.2"
+
+caller-callsite@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+  integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+  dependencies:
+    callsites "^2.0.0"
+
+caller-path@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+  integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+  dependencies:
+    caller-callsite "^2.0.0"
+
+callsites@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+  integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase-css@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+  integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+camelcase-keys@^6.2.2:
+  version "6.2.2"
+  resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0"
+  integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==
+  dependencies:
+    camelcase "^5.3.1"
+    map-obj "^4.0.0"
+    quick-lru "^4.0.1"
+
+camelcase@^5.0.0, camelcase@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+caniuse-api@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+  integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
+  dependencies:
+    browserslist "^4.0.0"
+    caniuse-lite "^1.0.0"
+    lodash.memoize "^4.1.2"
+    lodash.uniq "^4.5.0"
+
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
+  version "1.0.30001230"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71"
+  integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==
+
+chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
+
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
+  integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+character-entities-legacy@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1"
+  integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==
+
+character-entities@^1.0.0:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b"
+  integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==
+
+character-reference-invalid@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560"
+  integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==
+
+chart.js@^2.9.3:
+  version "2.9.4"
+  resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684"
+  integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==
+  dependencies:
+    chartjs-color "^2.1.0"
+    moment "^2.10.2"
+
+chartjs-color-string@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71"
+  integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==
+  dependencies:
+    color-name "^1.0.0"
+
+chartjs-color@^2.1.0:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0"
+  integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==
+  dependencies:
+    chartjs-color-string "^0.6.0"
+    color-convert "^1.9.3"
+
+chokidar@^2.1.8:
+  version "2.1.8"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
+  integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
+  dependencies:
+    anymatch "^2.0.0"
+    async-each "^1.0.1"
+    braces "^2.3.2"
+    glob-parent "^3.1.0"
+    inherits "^2.0.3"
+    is-binary-path "^1.0.0"
+    is-glob "^4.0.0"
+    normalize-path "^3.0.0"
+    path-is-absolute "^1.0.0"
+    readdirp "^2.2.1"
+    upath "^1.1.1"
+  optionalDependencies:
+    fsevents "^1.2.7"
+
+chokidar@^3.4.1:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
+  integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
+  dependencies:
+    anymatch "~3.1.1"
+    braces "~3.0.2"
+    glob-parent "~5.1.0"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.5.0"
+  optionalDependencies:
+    fsevents "~2.3.1"
+
+chownr@^1.1.1:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+  integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+chownr@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+  integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
+chrome-trace-event@^1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
+  integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+
+cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
+  integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
+  dependencies:
+    inherits "^2.0.1"
+    safe-buffer "^5.0.1"
+
+class-utils@^0.3.5:
+  version "0.3.6"
+  resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+  integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+  dependencies:
+    arr-union "^3.1.0"
+    define-property "^0.2.5"
+    isobject "^3.0.0"
+    static-extend "^0.1.1"
+
+clean-stack@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+  integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+cliui@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
+  integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
+  dependencies:
+    string-width "^3.1.0"
+    strip-ansi "^5.2.0"
+    wrap-ansi "^5.1.0"
+
+clone-regexp@^2.1.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f"
+  integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==
+  dependencies:
+    is-regexp "^2.0.0"
+
+coa@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+  integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
+  dependencies:
+    "@types/q" "^1.5.1"
+    chalk "^2.4.1"
+    q "^1.1.2"
+
+collection-visit@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+  integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+  dependencies:
+    map-visit "^1.0.0"
+    object-visit "^1.0.0"
+
+color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3:
+  version "1.9.3"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+  dependencies:
+    color-name "1.1.3"
+
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
+color-name@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@^1.0.0, color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.5.4:
+  version "1.5.5"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
+  integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
+  dependencies:
+    color-name "^1.0.0"
+    simple-swizzle "^0.2.2"
+
+color@^3.0.0, color@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
+  integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==
+  dependencies:
+    color-convert "^1.9.1"
+    color-string "^1.5.4"
+
+colorette@^1.2.1, colorette@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+  integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
+
+commander@^2.20.0:
+  version "2.20.3"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@^6.0.0:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+
+commondir@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+  integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+
+component-emitter@^1.2.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+concat-stream@^1.5.0, concat-stream@~1.6.0:
+  version "1.6.2"
+  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+  dependencies:
+    buffer-from "^1.0.0"
+    inherits "^2.0.3"
+    readable-stream "^2.2.2"
+    typedarray "^0.0.6"
+
+confusing-browser-globals@^1.0.10:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59"
+  integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==
+
+console-browserify@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
+  integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
+
+constants-browserify@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+  integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
+
+convert-source-map@^1.5.1, convert-source-map@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+  integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+  dependencies:
+    safe-buffer "~5.1.1"
+
+copy-concurrently@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+  integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
+  dependencies:
+    aproba "^1.1.1"
+    fs-write-stream-atomic "^1.0.8"
+    iferr "^0.1.5"
+    mkdirp "^0.5.1"
+    rimraf "^2.5.4"
+    run-queue "^1.0.0"
+
+copy-descriptor@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
+copy-webpack-plugin@^6.0.3:
+  version "6.4.1"
+  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e"
+  integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==
+  dependencies:
+    cacache "^15.0.5"
+    fast-glob "^3.2.4"
+    find-cache-dir "^3.3.1"
+    glob-parent "^5.1.1"
+    globby "^11.0.1"
+    loader-utils "^2.0.0"
+    normalize-path "^3.0.0"
+    p-limit "^3.0.2"
+    schema-utils "^3.0.0"
+    serialize-javascript "^5.0.1"
+    webpack-sources "^1.4.3"
+
+core-js-compat@^3.9.0, core-js-compat@^3.9.1:
+  version "3.13.1"
+  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.13.1.tgz#05444caa8f153be0c67db03cf8adb8ec0964e58e"
+  integrity sha512-mdrcxc0WznfRd8ZicEZh1qVeJ2mu6bwQFh8YVUK48friy/FOwFV5EJj9/dlh+nMQ74YusdVfBFDuomKgUspxWQ==
+  dependencies:
+    browserslist "^4.16.6"
+    semver "7.0.0"
+
+core-js-pure@^3.0.0:
+  version "3.13.1"
+  resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.13.1.tgz#5d139d346780f015f67225f45ee2362a6bed6ba1"
+  integrity sha512-wVlh0IAi2t1iOEh16y4u1TRk6ubd4KvLE8dlMi+3QUI6SfKphQUh7tAwihGGSQ8affxEXpVIPpOdf9kjR4v4Pw==
+
+core-util-is@~1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+cosmiconfig@^5.0.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+  integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
+  dependencies:
+    import-fresh "^2.0.0"
+    is-directory "^0.3.1"
+    js-yaml "^3.13.1"
+    parse-json "^4.0.0"
+
+cosmiconfig@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
+  integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
+  dependencies:
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.2.1"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.10.0"
+
+create-ecdh@^4.0.0:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
+  integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
+  dependencies:
+    bn.js "^4.1.0"
+    elliptic "^6.5.3"
+
+create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+  integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
+  dependencies:
+    cipher-base "^1.0.1"
+    inherits "^2.0.1"
+    md5.js "^1.3.4"
+    ripemd160 "^2.0.1"
+    sha.js "^2.4.0"
+
+create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
+  version "1.1.7"
+  resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+  integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
+  dependencies:
+    cipher-base "^1.0.3"
+    create-hash "^1.1.0"
+    inherits "^2.0.1"
+    ripemd160 "^2.0.0"
+    safe-buffer "^5.0.1"
+    sha.js "^2.4.8"
+
+cross-spawn@^6.0.5:
+  version "6.0.5"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+  integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+  dependencies:
+    nice-try "^1.0.4"
+    path-key "^2.0.1"
+    semver "^5.5.0"
+    shebang-command "^1.2.0"
+    which "^1.2.9"
+
+cross-spawn@^7.0.2:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
+crypto-browserify@^3.11.0:
+  version "3.12.0"
+  resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+  integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
+  dependencies:
+    browserify-cipher "^1.0.0"
+    browserify-sign "^4.0.0"
+    create-ecdh "^4.0.0"
+    create-hash "^1.1.0"
+    create-hmac "^1.1.0"
+    diffie-hellman "^5.0.0"
+    inherits "^2.0.1"
+    pbkdf2 "^3.0.3"
+    public-encrypt "^4.0.0"
+    randombytes "^2.0.0"
+    randomfill "^1.0.3"
+
+css-color-names@0.0.4, css-color-names@^0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+  integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
+
+css-declaration-sorter@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
+  integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
+  dependencies:
+    postcss "^7.0.1"
+    timsort "^0.3.0"
+
+css-loader@^3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645"
+  integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==
+  dependencies:
+    camelcase "^5.3.1"
+    cssesc "^3.0.0"
+    icss-utils "^4.1.1"
+    loader-utils "^1.2.3"
+    normalize-path "^3.0.0"
+    postcss "^7.0.32"
+    postcss-modules-extract-imports "^2.0.0"
+    postcss-modules-local-by-default "^3.0.2"
+    postcss-modules-scope "^2.2.0"
+    postcss-modules-values "^3.0.0"
+    postcss-value-parser "^4.1.0"
+    schema-utils "^2.7.0"
+    semver "^6.3.0"
+
+css-select-base-adapter@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+  integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
+
+css-select@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+  integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+  dependencies:
+    boolbase "^1.0.0"
+    css-what "^3.2.1"
+    domutils "^1.7.0"
+    nth-check "^1.0.2"
+
+css-tree@1.0.0-alpha.37:
+  version "1.0.0-alpha.37"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
+  integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
+  dependencies:
+    mdn-data "2.0.4"
+    source-map "^0.6.1"
+
+css-tree@^1.1.2:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+  integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+  dependencies:
+    mdn-data "2.0.14"
+    source-map "^0.6.1"
+
+css-unit-converter@^1.1.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
+  integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
+
+css-what@^3.2.1:
+  version "3.4.2"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
+  integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
+
+cssesc@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+  integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+cssnano-preset-default@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
+  integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
+  dependencies:
+    css-declaration-sorter "^4.0.1"
+    cssnano-util-raw-cache "^4.0.1"
+    postcss "^7.0.0"
+    postcss-calc "^7.0.1"
+    postcss-colormin "^4.0.3"
+    postcss-convert-values "^4.0.1"
+    postcss-discard-comments "^4.0.2"
+    postcss-discard-duplicates "^4.0.2"
+    postcss-discard-empty "^4.0.1"
+    postcss-discard-overridden "^4.0.1"
+    postcss-merge-longhand "^4.0.11"
+    postcss-merge-rules "^4.0.3"
+    postcss-minify-font-values "^4.0.2"
+    postcss-minify-gradients "^4.0.2"
+    postcss-minify-params "^4.0.2"
+    postcss-minify-selectors "^4.0.2"
+    postcss-normalize-charset "^4.0.1"
+    postcss-normalize-display-values "^4.0.2"
+    postcss-normalize-positions "^4.0.2"
+    postcss-normalize-repeat-style "^4.0.2"
+    postcss-normalize-string "^4.0.2"
+    postcss-normalize-timing-functions "^4.0.2"
+    postcss-normalize-unicode "^4.0.1"
+    postcss-normalize-url "^4.0.1"
+    postcss-normalize-whitespace "^4.0.2"
+    postcss-ordered-values "^4.1.2"
+    postcss-reduce-initial "^4.0.3"
+    postcss-reduce-transforms "^4.0.2"
+    postcss-svgo "^4.0.3"
+    postcss-unique-selectors "^4.0.1"
+
+cssnano-util-get-arguments@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
+  integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
+
+cssnano-util-get-match@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
+  integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
+
+cssnano-util-raw-cache@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
+  integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
+  dependencies:
+    postcss "^7.0.0"
+
+cssnano-util-same-parent@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
+  integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
+
+cssnano@^4.1.10:
+  version "4.1.11"
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
+  integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
+  dependencies:
+    cosmiconfig "^5.0.0"
+    cssnano-preset-default "^4.0.8"
+    is-resolvable "^1.0.0"
+    postcss "^7.0.0"
+
+csso@^4.0.2:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
+  integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
+  dependencies:
+    css-tree "^1.1.2"
+
+csstype@^3.0.2:
+  version "3.0.8"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340"
+  integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==
+
+cyclist@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
+  integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
+
+d3-geo-projection@0.2:
+  version "0.2.16"
+  resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-0.2.16.tgz#4994ecd1033ddb1533b6c4c5528a1c81dcc29427"
+  integrity sha1-SZTs0QM92xUztsTFUoocgdzClCc=
+  dependencies:
+    brfs "^1.3.0"
+
+d3-queue@1:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-1.2.3.tgz#143a701cfa65fe021292f321c10d14e98abd491b"
+  integrity sha1-FDpwHPpl/gISkvMhwQ0U6Yq9SRs=
+
+d3-queue@2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-2.0.3.tgz#07fbda3acae5358a9c5299aaf880adf0953ed2c2"
+  integrity sha1-B/vaOsrlNYqcUpmq+ICt8JU+0sI=
+
+d3@3, d3@^3.5.6:
+  version "3.5.17"
+  resolved "https://registry.yarnpkg.com/d3/-/d3-3.5.17.tgz#bc46748004378b21a360c9fc7cf5231790762fb8"
+  integrity sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=
+
+damerau-levenshtein@^1.0.6:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d"
+  integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==
+
+datamaps@^0.5.9:
+  version "0.5.9"
+  resolved "https://registry.yarnpkg.com/datamaps/-/datamaps-0.5.9.tgz#2a775473aaab29b55025208b2245e840ecfd4fe1"
+  integrity sha512-GUXpO713URNzaExVUgBtqA5fr2UuxUG/fVitI04zEFHVL2FHSjd672alHq8E16oQqRNzF0m1bmx8WlTnDrGSqQ==
+  dependencies:
+    "@types/d3" "3.5.38"
+    d3 "^3.5.6"
+    topojson "^1.6.19"
+
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
+  version "2.6.9"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+  dependencies:
+    ms "2.0.0"
+
+debug@^3.2.7:
+  version "3.2.7"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+  integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+  dependencies:
+    ms "^2.1.1"
+
+debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+  dependencies:
+    ms "2.1.2"
+
+decamelize-keys@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
+  integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=
+  dependencies:
+    decamelize "^1.1.0"
+    map-obj "^1.0.0"
+
+decamelize@^1.1.0, decamelize@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+decode-uri-component@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+deep-is@^0.1.3, deep-is@~0.1.3:
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+  integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+
+define-properties@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+  dependencies:
+    object-keys "^1.0.12"
+
+define-property@^0.2.5:
+  version "0.2.5"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+  integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+  dependencies:
+    is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+  integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+  dependencies:
+    is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+  dependencies:
+    is-descriptor "^1.0.2"
+    isobject "^3.0.1"
+
+defined@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
+  integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
+
+des.js@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
+  integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
+  dependencies:
+    inherits "^2.0.1"
+    minimalistic-assert "^1.0.0"
+
+detect-file@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
+  integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
+
+detective@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
+  integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
+  dependencies:
+    acorn-node "^1.6.1"
+    defined "^1.0.0"
+    minimist "^1.1.1"
+
+didyoumean@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff"
+  integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=
+
+diffie-hellman@^5.0.0:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+  integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
+  dependencies:
+    bn.js "^4.1.0"
+    miller-rabin "^4.0.0"
+    randombytes "^2.0.0"
+
+dir-glob@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+  dependencies:
+    path-type "^4.0.0"
+
+doctrine@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+  integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
+  dependencies:
+    esutils "^2.0.2"
+
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
+dom-helpers@^5.0.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
+  integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
+  dependencies:
+    "@babel/runtime" "^7.8.7"
+    csstype "^3.0.2"
+
+dom-serializer@0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+  integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+  dependencies:
+    domelementtype "^2.0.1"
+    entities "^2.0.0"
+
+domain-browser@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+  integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
+
+domelementtype@1, domelementtype@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+  integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
+
+domelementtype@^2.0.1:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
+  integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+
+domhandler@^2.3.0:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
+  integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
+  dependencies:
+    domelementtype "1"
+
+domutils@^1.5.1, domutils@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+  integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+  dependencies:
+    dom-serializer "0"
+    domelementtype "1"
+
+dot-prop@^5.2.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+  integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+  dependencies:
+    is-obj "^2.0.0"
+
+duplexer2@~0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
+  integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
+  dependencies:
+    readable-stream "^2.0.2"
+
+duplexify@^3.4.2, duplexify@^3.6.0:
+  version "3.7.1"
+  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+  integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
+  dependencies:
+    end-of-stream "^1.0.0"
+    inherits "^2.0.1"
+    readable-stream "^2.0.0"
+    stream-shift "^1.0.0"
+
+electron-to-chromium@^1.3.723:
+  version "1.3.742"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.742.tgz#7223215acbbd3a5284962ebcb6df85d88b95f200"
+  integrity sha512-ihL14knI9FikJmH2XUIDdZFWJxvr14rPSdOhJ7PpS27xbz8qmaRwCwyg/bmFwjWKmWK9QyamiCZVCvXm5CH//Q==
+
+elliptic@^6.5.3:
+  version "6.5.4"
+  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
+  integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
+  dependencies:
+    bn.js "^4.11.9"
+    brorand "^1.1.0"
+    hash.js "^1.0.0"
+    hmac-drbg "^1.0.1"
+    inherits "^2.0.4"
+    minimalistic-assert "^1.0.1"
+    minimalistic-crypto-utils "^1.0.1"
+
+emoji-regex@^7.0.1:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.0.0:
+  version "9.2.2"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+  integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
+emojis-list@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+  integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+  version "1.4.4"
+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+  dependencies:
+    once "^1.4.0"
+
+enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
+  integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
+  dependencies:
+    graceful-fs "^4.1.2"
+    memory-fs "^0.5.0"
+    tapable "^1.0.0"
+
+enquirer@^2.3.5:
+  version "2.3.6"
+  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+  integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+  dependencies:
+    ansi-colors "^4.1.1"
+
+entities@^1.1.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
+  integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
+
+entities@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+  integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
+errno@^0.1.3, errno@~0.1.7:
+  version "0.1.8"
+  resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
+  integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
+  dependencies:
+    prr "~1.0.1"
+
+error-ex@^1.3.1:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+  dependencies:
+    is-arrayish "^0.2.1"
+
+es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2:
+  version "1.18.3"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0"
+  integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==
+  dependencies:
+    call-bind "^1.0.2"
+    es-to-primitive "^1.2.1"
+    function-bind "^1.1.1"
+    get-intrinsic "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.2"
+    is-callable "^1.2.3"
+    is-negative-zero "^2.0.1"
+    is-regex "^1.1.3"
+    is-string "^1.0.6"
+    object-inspect "^1.10.3"
+    object-keys "^1.1.1"
+    object.assign "^4.1.2"
+    string.prototype.trimend "^1.0.4"
+    string.prototype.trimstart "^1.0.4"
+    unbox-primitive "^1.0.1"
+
+es-to-primitive@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+  dependencies:
+    is-callable "^1.1.4"
+    is-date-object "^1.0.1"
+    is-symbol "^1.0.2"
+
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+escodegen@^1.11.1:
+  version "1.14.3"
+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
+  integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
+  dependencies:
+    esprima "^4.0.1"
+    estraverse "^4.2.0"
+    esutils "^2.0.2"
+    optionator "^0.8.1"
+  optionalDependencies:
+    source-map "~0.6.1"
+
+escodegen@~1.9.0:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2"
+  integrity sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==
+  dependencies:
+    esprima "^3.1.3"
+    estraverse "^4.2.0"
+    esutils "^2.0.2"
+    optionator "^0.8.1"
+  optionalDependencies:
+    source-map "~0.6.1"
+
+eslint-config-airbnb-base@^14.2.1:
+  version "14.2.1"
+  resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e"
+  integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==
+  dependencies:
+    confusing-browser-globals "^1.0.10"
+    object.assign "^4.1.2"
+    object.entries "^1.1.2"
+
+eslint-config-airbnb@^18.2.0:
+  version "18.2.1"
+  resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9"
+  integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==
+  dependencies:
+    eslint-config-airbnb-base "^14.2.1"
+    object.assign "^4.1.2"
+    object.entries "^1.1.2"
+
+eslint-config-prettier@^7.0.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9"
+  integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==
+
+eslint-import-resolver-node@^0.3.4:
+  version "0.3.4"
+  resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717"
+  integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==
+  dependencies:
+    debug "^2.6.9"
+    resolve "^1.13.1"
+
+eslint-module-utils@^2.6.1:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233"
+  integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==
+  dependencies:
+    debug "^3.2.7"
+    pkg-dir "^2.0.0"
+
+eslint-plugin-import@^2.22.1:
+  version "2.23.3"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.3.tgz#8a1b073289fff03c4af0f04b6df956b7d463e191"
+  integrity sha512-wDxdYbSB55F7T5CC7ucDjY641VvKmlRwT0Vxh7PkY1mI4rclVRFWYfsrjDgZvwYYDZ5ee0ZtfFKXowWjqvEoRQ==
+  dependencies:
+    array-includes "^3.1.3"
+    array.prototype.flat "^1.2.4"
+    debug "^2.6.9"
+    doctrine "^2.1.0"
+    eslint-import-resolver-node "^0.3.4"
+    eslint-module-utils "^2.6.1"
+    find-up "^2.0.0"
+    has "^1.0.3"
+    is-core-module "^2.4.0"
+    minimatch "^3.0.4"
+    object.values "^1.1.3"
+    pkg-up "^2.0.0"
+    read-pkg-up "^3.0.0"
+    resolve "^1.20.0"
+    tsconfig-paths "^3.9.0"
+
+eslint-plugin-jsx-a11y@^6.4.1:
+  version "6.4.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd"
+  integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==
+  dependencies:
+    "@babel/runtime" "^7.11.2"
+    aria-query "^4.2.2"
+    array-includes "^3.1.1"
+    ast-types-flow "^0.0.7"
+    axe-core "^4.0.2"
+    axobject-query "^2.2.0"
+    damerau-levenshtein "^1.0.6"
+    emoji-regex "^9.0.0"
+    has "^1.0.3"
+    jsx-ast-utils "^3.1.0"
+    language-tags "^1.0.5"
+
+eslint-plugin-prettier@^3.3.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7"
+  integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==
+  dependencies:
+    prettier-linter-helpers "^1.0.0"
+
+eslint-plugin-react-hooks@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556"
+  integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==
+
+eslint-plugin-react@^7.21.5:
+  version "7.23.2"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494"
+  integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==
+  dependencies:
+    array-includes "^3.1.3"
+    array.prototype.flatmap "^1.2.4"
+    doctrine "^2.1.0"
+    has "^1.0.3"
+    jsx-ast-utils "^2.4.1 || ^3.0.0"
+    minimatch "^3.0.4"
+    object.entries "^1.1.3"
+    object.fromentries "^2.0.4"
+    object.values "^1.1.3"
+    prop-types "^15.7.2"
+    resolve "^2.0.0-next.3"
+    string.prototype.matchall "^4.0.4"
+
+eslint-scope@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
+  integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
+  dependencies:
+    esrecurse "^4.1.0"
+    estraverse "^4.1.1"
+
+eslint-scope@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^4.1.1"
+
+eslint-utils@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+  dependencies:
+    eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+
+eslint-visitor-keys@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+
+eslint@^7.2.0:
+  version "7.27.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7"
+  integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==
+  dependencies:
+    "@babel/code-frame" "7.12.11"
+    "@eslint/eslintrc" "^0.4.1"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.0.1"
+    doctrine "^3.0.0"
+    enquirer "^2.3.5"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^5.1.1"
+    eslint-utils "^2.1.0"
+    eslint-visitor-keys "^2.0.0"
+    espree "^7.3.1"
+    esquery "^1.4.0"
+    esutils "^2.0.2"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
+    functional-red-black-tree "^1.0.1"
+    glob-parent "^5.0.0"
+    globals "^13.6.0"
+    ignore "^4.0.6"
+    import-fresh "^3.0.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    js-yaml "^3.13.1"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
+    minimatch "^3.0.4"
+    natural-compare "^1.4.0"
+    optionator "^0.9.1"
+    progress "^2.0.0"
+    regexpp "^3.1.0"
+    semver "^7.2.1"
+    strip-ansi "^6.0.0"
+    strip-json-comments "^3.1.0"
+    table "^6.0.9"
+    text-table "^0.2.0"
+    v8-compile-cache "^2.0.3"
+
+espree@^7.3.0, espree@^7.3.1:
+  version "7.3.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
+  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+  dependencies:
+    acorn "^7.4.0"
+    acorn-jsx "^5.3.1"
+    eslint-visitor-keys "^1.3.0"
+
+esprima@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+  integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
+
+esprima@^4.0.0, esprima@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+esquery@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+  dependencies:
+    estraverse "^5.1.0"
+
+esrecurse@^4.1.0, esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^4.1.1, estraverse@^4.2.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+
+esutils@^2.0.2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+events@^3.0.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+  integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+  integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
+  dependencies:
+    md5.js "^1.3.4"
+    safe-buffer "^5.1.1"
+
+execall@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45"
+  integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==
+  dependencies:
+    clone-regexp "^2.1.0"
+
+expand-brackets@^2.1.4:
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+  integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+  dependencies:
+    debug "^2.3.3"
+    define-property "^0.2.5"
+    extend-shallow "^2.0.1"
+    posix-character-classes "^0.1.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
+expand-tilde@^2.0.0, expand-tilde@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
+  integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=
+  dependencies:
+    homedir-polyfill "^1.0.1"
+
+extend-shallow@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+  integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+  dependencies:
+    is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+  integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+  dependencies:
+    assign-symbols "^1.0.0"
+    is-extendable "^1.0.1"
+
+extend@^3.0.0:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
+extglob@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+  integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+  dependencies:
+    array-unique "^0.3.2"
+    define-property "^1.0.0"
+    expand-brackets "^2.1.4"
+    extend-shallow "^2.0.1"
+    fragment-cache "^0.2.1"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
+falafel@^2.1.0:
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.2.4.tgz#b5d86c060c2412a43166243cb1bce44d1abd2819"
+  integrity sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==
+  dependencies:
+    acorn "^7.1.1"
+    foreach "^2.0.5"
+    isarray "^2.0.1"
+    object-keys "^1.0.6"
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-diff@^1.1.2:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
+  integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
+
+fast-glob@^3.1.1, fast-glob@^3.2.4, fast-glob@^3.2.5:
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
+  integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.0"
+    merge2 "^1.3.0"
+    micromatch "^4.0.2"
+    picomatch "^2.2.1"
+
+fast-json-stable-stringify@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fastest-levenshtein@^1.0.12:
+  version "1.0.12"
+  resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
+  integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+
+fastq@^1.6.0:
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858"
+  integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==
+  dependencies:
+    reusify "^1.0.4"
+
+figgy-pudding@^3.5.1:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+  integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
+
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+  dependencies:
+    flat-cache "^3.0.4"
+
+file-uri-to-path@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+  integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
+fill-range@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+  integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+  dependencies:
+    extend-shallow "^2.0.1"
+    is-number "^3.0.0"
+    repeat-string "^1.6.1"
+    to-regex-range "^2.1.0"
+
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+  dependencies:
+    to-regex-range "^5.0.1"
+
+find-cache-dir@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
+  integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
+  dependencies:
+    commondir "^1.0.1"
+    make-dir "^2.0.0"
+    pkg-dir "^3.0.0"
+
+find-cache-dir@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+  integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
+  dependencies:
+    commondir "^1.0.1"
+    make-dir "^3.0.2"
+    pkg-dir "^4.1.0"
+
+find-up@^2.0.0, find-up@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+  integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+  dependencies:
+    locate-path "^2.0.0"
+
+find-up@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+  integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+  dependencies:
+    locate-path "^3.0.0"
+
+find-up@^4.0.0, find-up@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+  dependencies:
+    locate-path "^5.0.0"
+    path-exists "^4.0.0"
+
+findup-sync@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
+  integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==
+  dependencies:
+    detect-file "^1.0.0"
+    is-glob "^4.0.0"
+    micromatch "^3.0.4"
+    resolve-dir "^1.0.1"
+
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+  dependencies:
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
+
+flatpickr@^4.6.2:
+  version "4.6.9"
+  resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.9.tgz#9a13383e8a6814bda5d232eae3fcdccb97dc1499"
+  integrity sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==
+
+flatted@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
+  integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
+
+flush-write-stream@^1.0.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+  integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
+  dependencies:
+    inherits "^2.0.3"
+    readable-stream "^2.3.6"
+
+for-in@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+  integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+foreach@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
+  integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
+
+fragment-cache@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+  integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+  dependencies:
+    map-cache "^0.2.2"
+
+from2@^2.1.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+  integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
+  dependencies:
+    inherits "^2.0.1"
+    readable-stream "^2.0.0"
+
+fs-extra@^9.0.1:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+  dependencies:
+    at-least-node "^1.0.0"
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
+
+fs-minipass@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+  integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+  dependencies:
+    minipass "^3.0.0"
+
+fs-write-stream-atomic@^1.0.8:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+  integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
+  dependencies:
+    graceful-fs "^4.1.2"
+    iferr "^0.1.5"
+    imurmurhash "^0.1.4"
+    readable-stream "1 || 2"
+
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@^1.2.7:
+  version "1.2.13"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+  integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
+  dependencies:
+    bindings "^1.5.0"
+    nan "^2.12.1"
+
+fsevents@~2.3.1:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+functional-red-black-tree@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+gensync@^1.0.0-beta.2:
+  version "1.0.0-beta.2"
+  resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+  integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-caller-file@^2.0.1:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+  dependencies:
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
+
+get-stdin@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
+  integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
+
+get-value@^2.0.3, get-value@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+  integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+glob-parent@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+  integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
+  dependencies:
+    is-glob "^3.1.0"
+    path-dirname "^1.0.0"
+
+glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+  version "7.1.7"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.0.4"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
+global-modules@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
+  integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
+  dependencies:
+    global-prefix "^1.0.1"
+    is-windows "^1.0.1"
+    resolve-dir "^1.0.0"
+
+global-modules@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
+  integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
+  dependencies:
+    global-prefix "^3.0.0"
+
+global-prefix@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
+  integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=
+  dependencies:
+    expand-tilde "^2.0.2"
+    homedir-polyfill "^1.0.1"
+    ini "^1.3.4"
+    is-windows "^1.0.1"
+    which "^1.2.14"
+
+global-prefix@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
+  integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
+  dependencies:
+    ini "^1.3.5"
+    kind-of "^6.0.2"
+    which "^1.3.1"
+
+globals@^11.1.0:
+  version "11.12.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globals@^12.1.0:
+  version "12.4.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+  integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+  dependencies:
+    type-fest "^0.8.1"
+
+globals@^13.6.0:
+  version "13.9.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"
+  integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==
+  dependencies:
+    type-fest "^0.20.2"
+
+globby@^11.0.1, globby@^11.0.3:
+  version "11.0.3"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"
+  integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.1.1"
+    ignore "^5.1.4"
+    merge2 "^1.3.0"
+    slash "^3.0.0"
+
+globjoin@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43"
+  integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=
+
+gonzales-pe@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3"
+  integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==
+  dependencies:
+    minimist "^1.2.5"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+  version "4.2.6"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+  integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
+
+hard-rejection@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
+  integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
+
+has-bigints@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
+has-value@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+  integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+  dependencies:
+    get-value "^2.0.3"
+    has-values "^0.1.4"
+    isobject "^2.0.0"
+
+has-value@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+  integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+  dependencies:
+    get-value "^2.0.6"
+    has-values "^1.0.0"
+    isobject "^3.0.0"
+
+has-values@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+  integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+  integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+  dependencies:
+    is-number "^3.0.0"
+    kind-of "^4.0.0"
+
+has@^1.0.0, has@^1.0.1, has@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+  dependencies:
+    function-bind "^1.1.1"
+
+hash-base@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
+  integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
+  dependencies:
+    inherits "^2.0.4"
+    readable-stream "^3.6.0"
+    safe-buffer "^5.2.0"
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+  version "1.1.7"
+  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+  integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+  dependencies:
+    inherits "^2.0.3"
+    minimalistic-assert "^1.0.1"
+
+hex-color-regex@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
+  integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
+
+history@^4.9.0:
+  version "4.10.1"
+  resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3"
+  integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==
+  dependencies:
+    "@babel/runtime" "^7.1.2"
+    loose-envify "^1.2.0"
+    resolve-pathname "^3.0.0"
+    tiny-invariant "^1.0.2"
+    tiny-warning "^1.0.0"
+    value-equal "^1.0.1"
+
+hmac-drbg@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+  integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
+  dependencies:
+    hash.js "^1.0.3"
+    minimalistic-assert "^1.0.0"
+    minimalistic-crypto-utils "^1.0.1"
+
+hoist-non-react-statics@^3.1.0:
+  version "3.3.2"
+  resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+  integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+  dependencies:
+    react-is "^16.7.0"
+
+homedir-polyfill@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
+  integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
+  dependencies:
+    parse-passwd "^1.0.0"
+
+hosted-git-info@^2.1.4:
+  version "2.8.9"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+  integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+
+hosted-git-info@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961"
+  integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==
+  dependencies:
+    lru-cache "^6.0.0"
+
+hsl-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
+  integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
+
+hsla-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
+  integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
+
+html-tags@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
+  integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
+
+htmlparser2@^3.10.0:
+  version "3.10.1"
+  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
+  integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
+  dependencies:
+    domelementtype "^1.3.1"
+    domhandler "^2.3.0"
+    domutils "^1.5.1"
+    entities "^1.1.1"
+    inherits "^2.0.1"
+    readable-stream "^3.1.1"
+
+https-browserify@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+  integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
+
+iconv-lite@0.2:
+  version "0.2.11"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
+  integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg=
+
+icss-utils@^4.0.0, icss-utils@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
+  integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
+  dependencies:
+    postcss "^7.0.14"
+
+ieee754@^1.1.4:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+iferr@^0.1.5:
+  version "0.1.5"
+  resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+  integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
+
+iframe-resizer@^4.3.1:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/iframe-resizer/-/iframe-resizer-4.3.2.tgz#42dd88345d18b9e377b6044dddb98c664ab0ce6b"
+  integrity sha512-gOWo2hmdPjMQsQ+zTKbses08mDfDEMh4NneGQNP4qwePYujY1lguqP6gnbeJkf154gojWlBhIltlgnMfYjGHWA==
+
+ignore@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.1.4, ignore@^5.1.8:
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
+  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+
+import-fresh@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+  integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+  dependencies:
+    caller-path "^2.0.0"
+    resolve-from "^3.0.0"
+
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
+import-lazy@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153"
+  integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==
+
+import-local@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+  integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
+  dependencies:
+    pkg-dir "^3.0.0"
+    resolve-cwd "^2.0.0"
+
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+indent-string@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+  integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
+indexes-of@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+  integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
+
+infer-owner@^1.0.3, infer-owner@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+  integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+  dependencies:
+    once "^1.3.0"
+    wrappy "1"
+
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+  integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
+
+inherits@2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+ini@^1.3.4, ini@^1.3.5:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+internal-slot@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
+  integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
+  dependencies:
+    get-intrinsic "^1.1.0"
+    has "^1.0.3"
+    side-channel "^1.0.4"
+
+interpret@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+  integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+
+is-absolute-url@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+  integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
+
+is-accessor-descriptor@^0.1.6:
+  version "0.1.6"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+  integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+  dependencies:
+    kind-of "^6.0.0"
+
+is-alphabetical@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d"
+  integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==
+
+is-alphanumerical@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf"
+  integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==
+  dependencies:
+    is-alphabetical "^1.0.0"
+    is-decimal "^1.0.0"
+
+is-arrayish@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-arrayish@^0.3.1:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-bigint@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"
+  integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==
+
+is-binary-path@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+  integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
+  dependencies:
+    binary-extensions "^1.0.0"
+
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+  dependencies:
+    binary-extensions "^2.0.0"
+
+is-boolean-object@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8"
+  integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==
+  dependencies:
+    call-bind "^1.0.2"
+
+is-buffer@^1.1.5:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-buffer@^2.0.0:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
+  integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
+
+is-callable@^1.1.4, is-callable@^1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
+  integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
+
+is-color-stop@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
+  integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
+  dependencies:
+    css-color-names "^0.0.4"
+    hex-color-regex "^1.1.0"
+    hsl-regex "^1.0.0"
+    hsla-regex "^1.0.0"
+    rgb-regex "^1.0.1"
+    rgba-regex "^1.0.0"
+
+is-core-module@^2.2.0, is-core-module@^2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
+  integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
+  dependencies:
+    has "^1.0.3"
+
+is-data-descriptor@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+  integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+  dependencies:
+    kind-of "^6.0.0"
+
+is-date-object@^1.0.1:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5"
+  integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==
+
+is-decimal@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5"
+  integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==
+
+is-descriptor@^0.1.0:
+  version "0.1.6"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+  dependencies:
+    is-accessor-descriptor "^0.1.6"
+    is-data-descriptor "^0.1.4"
+    kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+  dependencies:
+    is-accessor-descriptor "^1.0.0"
+    is-data-descriptor "^1.0.0"
+    kind-of "^6.0.2"
+
+is-directory@^0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+  integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+  integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+  dependencies:
+    is-plain-object "^2.0.4"
+
+is-extglob@^2.1.0, is-extglob@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+  integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
+  dependencies:
+    is-extglob "^2.1.0"
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+  dependencies:
+    is-extglob "^2.1.1"
+
+is-hexadecimal@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
+  integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
+
+is-negative-zero@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
+  integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
+
+is-number-object@^1.0.4:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb"
+  integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==
+
+is-number@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+  integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+  dependencies:
+    kind-of "^3.0.2"
+
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-obj@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+  integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+  integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
+
+is-plain-obj@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
+  integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+  integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+  dependencies:
+    isobject "^3.0.1"
+
+is-regex@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"
+  integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==
+  dependencies:
+    call-bind "^1.0.2"
+    has-symbols "^1.0.2"
+
+is-regexp@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
+  integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==
+
+is-resolvable@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+  integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
+
+is-string@^1.0.5, is-string@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f"
+  integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==
+
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+  dependencies:
+    has-symbols "^1.0.2"
+
+is-typedarray@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-unicode-supported@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
+  integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+
+is-windows@^1.0.1, is-windows@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+  integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+is-wsl@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+  integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+
+isarray@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+  integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
+
+isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isarray@^2.0.1:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+  integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isobject@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+  integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+  dependencies:
+    isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+  integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
+jest-worker@^26.5.0:
+  version "26.6.2"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+  integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^7.0.0"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+  version "3.14.1"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+  dependencies:
+    argparse "^1.0.7"
+    esprima "^4.0.0"
+
+jsesc@^2.5.1:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+jsesc@~0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+  integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+
+json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+  integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-parse-even-better-errors@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
+json5@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+  integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+  dependencies:
+    minimist "^1.2.0"
+
+json5@^2.1.2:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+  dependencies:
+    minimist "^1.2.5"
+
+jsonfile@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+  dependencies:
+    universalify "^2.0.0"
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82"
+  integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==
+  dependencies:
+    array-includes "^3.1.2"
+    object.assign "^4.1.2"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+  dependencies:
+    is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+  integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+  dependencies:
+    is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+  integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+klona@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
+  integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
+
+known-css-properties@^0.21.0:
+  version "0.21.0"
+  resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.21.0.tgz#15fbd0bbb83447f3ce09d8af247ed47c68ede80d"
+  integrity sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==
+
+language-subtag-registry@~0.3.2:
+  version "0.3.21"
+  resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a"
+  integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==
+
+language-tags@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
+  integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=
+  dependencies:
+    language-subtag-registry "~0.3.2"
+
+last-call-webpack-plugin@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555"
+  integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==
+  dependencies:
+    lodash "^4.17.5"
+    webpack-sources "^1.1.0"
+
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
+levn@~0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+  integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+  dependencies:
+    prelude-ls "~1.1.2"
+    type-check "~0.3.2"
+
+lines-and-columns@^1.1.6:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+  integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
+load-json-file@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+  integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
+  dependencies:
+    graceful-fs "^4.1.2"
+    parse-json "^4.0.0"
+    pify "^3.0.0"
+    strip-bom "^3.0.0"
+
+loader-runner@^2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+  integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
+
+loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+  integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
+  dependencies:
+    big.js "^5.2.2"
+    emojis-list "^3.0.0"
+    json5 "^1.0.1"
+
+loader-utils@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
+  integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
+  dependencies:
+    big.js "^5.2.2"
+    emojis-list "^3.0.0"
+    json5 "^2.1.2"
+
+locate-path@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+  integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+  dependencies:
+    p-locate "^2.0.0"
+    path-exists "^3.0.0"
+
+locate-path@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+  integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+  dependencies:
+    p-locate "^3.0.0"
+    path-exists "^3.0.0"
+
+locate-path@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+  dependencies:
+    p-locate "^4.1.0"
+
+lodash.clonedeep@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
+lodash.debounce@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+  integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
+lodash.memoize@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+  integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash.toarray@^4.4.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
+  integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
+
+lodash.truncate@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
+  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
+
+lodash.uniq@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+  integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
+
+lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
+  integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
+  dependencies:
+    chalk "^4.1.0"
+    is-unicode-supported "^0.1.0"
+
+longest-streak@^2.0.0:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
+  integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==
+
+loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+  dependencies:
+    js-tokens "^3.0.0 || ^4.0.0"
+
+lru-cache@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+  integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+  dependencies:
+    yallist "^3.0.2"
+
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
+magic-string@^0.22.4:
+  version "0.22.5"
+  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e"
+  integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==
+  dependencies:
+    vlq "^0.2.2"
+
+make-dir@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+  integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+  dependencies:
+    pify "^4.0.1"
+    semver "^5.6.0"
+
+make-dir@^3.0.2, make-dir@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+  dependencies:
+    semver "^6.0.0"
+
+mamacro@^0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
+  integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
+
+map-cache@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+  integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+map-obj@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+  integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
+
+map-obj@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7"
+  integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==
+
+map-visit@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+  integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+  dependencies:
+    object-visit "^1.0.0"
+
+mathml-tag-names@^2.1.3:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
+  integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
+
+md5.js@^1.3.4:
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+  integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
+  dependencies:
+    hash-base "^3.0.0"
+    inherits "^2.0.1"
+    safe-buffer "^5.1.2"
+
+mdast-util-from-markdown@^0.8.0:
+  version "0.8.5"
+  resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c"
+  integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==
+  dependencies:
+    "@types/mdast" "^3.0.0"
+    mdast-util-to-string "^2.0.0"
+    micromark "~2.11.0"
+    parse-entities "^2.0.0"
+    unist-util-stringify-position "^2.0.0"
+
+mdast-util-to-markdown@^0.6.0:
+  version "0.6.5"
+  resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe"
+  integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    longest-streak "^2.0.0"
+    mdast-util-to-string "^2.0.0"
+    parse-entities "^2.0.0"
+    repeat-string "^1.0.0"
+    zwitch "^1.0.0"
+
+mdast-util-to-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b"
+  integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==
+
+mdn-data@2.0.14:
+  version "2.0.14"
+  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+  integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
+mdn-data@2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
+  integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
+
+memory-fs@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+  integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
+  dependencies:
+    errno "^0.1.3"
+    readable-stream "^2.0.1"
+
+memory-fs@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
+  integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
+  dependencies:
+    errno "^0.1.3"
+    readable-stream "^2.0.1"
+
+meow@^9.0.0:
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364"
+  integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==
+  dependencies:
+    "@types/minimist" "^1.2.0"
+    camelcase-keys "^6.2.2"
+    decamelize "^1.2.0"
+    decamelize-keys "^1.1.0"
+    hard-rejection "^2.1.0"
+    minimist-options "4.1.0"
+    normalize-package-data "^3.0.0"
+    read-pkg-up "^7.0.1"
+    redent "^3.0.0"
+    trim-newlines "^3.0.0"
+    type-fest "^0.18.0"
+    yargs-parser "^20.2.3"
+
+merge-source-map@1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f"
+  integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=
+  dependencies:
+    source-map "^0.5.6"
+
+merge-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromark@~2.11.0:
+  version "2.11.4"
+  resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a"
+  integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==
+  dependencies:
+    debug "^4.0.0"
+    parse-entities "^2.0.0"
+
+micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
+  version "3.1.10"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+  integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+  dependencies:
+    arr-diff "^4.0.0"
+    array-unique "^0.3.2"
+    braces "^2.3.1"
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    extglob "^2.0.4"
+    fragment-cache "^0.2.1"
+    kind-of "^6.0.2"
+    nanomatch "^1.2.9"
+    object.pick "^1.3.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.2"
+
+micromatch@^4.0.2, micromatch@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.2.3"
+
+miller-rabin@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+  integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
+  dependencies:
+    bn.js "^4.0.0"
+    brorand "^1.0.1"
+
+min-indent@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
+  integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+
+mini-create-react-context@^0.4.0:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e"
+  integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==
+  dependencies:
+    "@babel/runtime" "^7.12.1"
+    tiny-warning "^1.0.3"
+
+mini-css-extract-plugin@^0.8.2:
+  version "0.8.2"
+  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161"
+  integrity sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==
+  dependencies:
+    loader-utils "^1.1.0"
+    normalize-url "1.9.1"
+    schema-utils "^1.0.0"
+    webpack-sources "^1.1.0"
+
+mini-svg-data-uri@^1.2.3:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz#91d2c09f45e056e5e1043340b8b37ba7b50f4fac"
+  integrity sha512-+fA2oRcR1dJI/7ITmeQJDrYWks0wodlOz0pAEhKYJ2IVc1z0AnwJUsKY2fzFmPAM3Jo9J0rBx8JAA9QQSJ5PuA==
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+  integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimalistic-crypto-utils@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+  integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
+
+minimatch@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimist-options@4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
+  integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==
+  dependencies:
+    arrify "^1.0.1"
+    is-plain-obj "^1.1.0"
+    kind-of "^6.0.3"
+
+minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+minipass-collect@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+  integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass-flush@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+  integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass-pipeline@^1.2.2:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
+  integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass@^3.0.0, minipass@^3.1.1:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
+  integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==
+  dependencies:
+    yallist "^4.0.0"
+
+minizlib@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
+  integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+  dependencies:
+    minipass "^3.0.0"
+    yallist "^4.0.0"
+
+mississippi@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
+  integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
+  dependencies:
+    concat-stream "^1.5.0"
+    duplexify "^3.4.2"
+    end-of-stream "^1.1.0"
+    flush-write-stream "^1.0.0"
+    from2 "^2.1.0"
+    parallel-transform "^1.1.0"
+    pump "^3.0.0"
+    pumpify "^1.3.3"
+    stream-each "^1.1.0"
+    through2 "^2.0.0"
+
+mixin-deep@^1.2.0:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+  dependencies:
+    for-in "^1.0.2"
+    is-extendable "^1.0.1"
+
+mkdirp@^0.5.1, mkdirp@~0.5.1:
+  version "0.5.5"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+  dependencies:
+    minimist "^1.2.5"
+
+mkdirp@^1.0.3, mkdirp@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+  integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+modern-normalize@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.1.0.tgz#da8e80140d9221426bd4f725c6e11283d34f90b7"
+  integrity sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==
+
+moment@^2.10.2:
+  version "2.29.1"
+  resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
+  integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
+
+move-concurrently@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+  integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
+  dependencies:
+    aproba "^1.1.1"
+    copy-concurrently "^1.0.0"
+    fs-write-stream-atomic "^1.0.8"
+    mkdirp "^0.5.1"
+    rimraf "^2.5.4"
+    run-queue "^1.0.3"
+
+ms@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@^2.1.1:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+nan@^2.12.1:
+  version "2.14.2"
+  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
+  integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
+
+nanoid@^3.1.23:
+  version "3.1.23"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
+  integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
+
+nanomatch@^1.2.9:
+  version "1.2.13"
+  resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+  integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+  dependencies:
+    arr-diff "^4.0.0"
+    array-unique "^0.3.2"
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    fragment-cache "^0.2.1"
+    is-windows "^1.0.2"
+    kind-of "^6.0.2"
+    object.pick "^1.3.0"
+    regex-not "^1.0.0"
+    snapdragon "^0.8.1"
+    to-regex "^3.0.1"
+
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+neo-async@^2.5.0, neo-async@^2.6.1:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+  integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+nice-try@^1.0.4:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+  integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
+node-emoji@^1.8.1:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da"
+  integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==
+  dependencies:
+    lodash.toarray "^4.4.0"
+
+node-libs-browser@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
+  integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
+  dependencies:
+    assert "^1.1.1"
+    browserify-zlib "^0.2.0"
+    buffer "^4.3.0"
+    console-browserify "^1.1.0"
+    constants-browserify "^1.0.0"
+    crypto-browserify "^3.11.0"
+    domain-browser "^1.1.1"
+    events "^3.0.0"
+    https-browserify "^1.0.0"
+    os-browserify "^0.3.0"
+    path-browserify "0.0.1"
+    process "^0.11.10"
+    punycode "^1.2.4"
+    querystring-es3 "^0.2.0"
+    readable-stream "^2.3.3"
+    stream-browserify "^2.0.1"
+    stream-http "^2.7.2"
+    string_decoder "^1.0.0"
+    timers-browserify "^2.0.4"
+    tty-browserify "0.0.0"
+    url "^0.11.0"
+    util "^0.11.0"
+    vm-browserify "^1.0.1"
+
+node-releases@^1.1.71:
+  version "1.1.72"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
+  integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
+
+normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+  integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+  dependencies:
+    hosted-git-info "^2.1.4"
+    resolve "^1.10.0"
+    semver "2 || 3 || 4 || 5"
+    validate-npm-package-license "^3.0.1"
+
+normalize-package-data@^3.0.0:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz#cae5c410ae2434f9a6c1baa65d5bc3b9366c8699"
+  integrity sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==
+  dependencies:
+    hosted-git-info "^4.0.1"
+    resolve "^1.20.0"
+    semver "^7.3.4"
+    validate-npm-package-license "^3.0.1"
+
+normalize-path@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+  integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+  dependencies:
+    remove-trailing-separator "^1.0.1"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+  integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+
+normalize-selector@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03"
+  integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=
+
+normalize-url@1.9.1:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+  integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
+  dependencies:
+    object-assign "^4.0.1"
+    prepend-http "^1.0.0"
+    query-string "^4.1.0"
+    sort-keys "^1.0.0"
+
+normalize-url@^3.0.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
+  integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
+
+nth-check@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+  integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+  dependencies:
+    boolbase "~1.0.0"
+
+num2fraction@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+  integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
+
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-copy@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+  integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+  dependencies:
+    copy-descriptor "^0.1.0"
+    define-property "^0.2.5"
+    kind-of "^3.0.3"
+
+object-hash@^2.0.3:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5"
+  integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
+
+object-inspect@^1.10.3, object-inspect@^1.9.0:
+  version "1.10.3"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369"
+  integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==
+
+object-inspect@~1.4.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4"
+  integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==
+
+object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object-visit@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+  integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+  dependencies:
+    isobject "^3.0.0"
+
+object.assign@^4.1.0, object.assign@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    has-symbols "^1.0.1"
+    object-keys "^1.1.1"
+
+object.entries@^1.1.2, object.entries@^1.1.3:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd"
+  integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.2"
+
+object.fromentries@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8"
+  integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.2"
+    has "^1.0.3"
+
+object.getownpropertydescriptors@^2.1.0:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7"
+  integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.2"
+
+object.pick@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+  integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+  dependencies:
+    isobject "^3.0.1"
+
+object.values@^1.1.0, object.values@^1.1.3:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"
+  integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.2"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+  dependencies:
+    wrappy "1"
+
+optimist@0.3:
+  version "0.3.7"
+  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9"
+  integrity sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=
+  dependencies:
+    wordwrap "~0.0.2"
+
+optimize-css-assets-webpack-plugin@^5.0.3:
+  version "5.0.6"
+  resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e"
+  integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A==
+  dependencies:
+    cssnano "^4.1.10"
+    last-call-webpack-plugin "^3.0.0"
+
+optionator@^0.8.1:
+  version "0.8.3"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+  integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+  dependencies:
+    deep-is "~0.1.3"
+    fast-levenshtein "~2.0.6"
+    levn "~0.3.0"
+    prelude-ls "~1.1.2"
+    type-check "~0.3.2"
+    word-wrap "~1.2.3"
+
+optionator@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+  dependencies:
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+    word-wrap "^1.2.3"
+
+os-browserify@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+  integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
+
+p-limit@^1.1.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+  integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+  dependencies:
+    p-try "^1.0.0"
+
+p-limit@^2.0.0, p-limit@^2.2.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+  dependencies:
+    p-try "^2.0.0"
+
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
+p-locate@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+  integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+  dependencies:
+    p-limit "^1.1.0"
+
+p-locate@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+  integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+  dependencies:
+    p-limit "^2.0.0"
+
+p-locate@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+  dependencies:
+    p-limit "^2.2.0"
+
+p-map@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+  integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+  dependencies:
+    aggregate-error "^3.0.0"
+
+p-try@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+  integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
+p-try@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+pako@~1.0.5:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+  integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+parallel-transform@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
+  integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
+  dependencies:
+    cyclist "^1.0.1"
+    inherits "^2.0.3"
+    readable-stream "^2.1.5"
+
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+  dependencies:
+    callsites "^3.0.0"
+
+parse-asn1@^5.0.0, parse-asn1@^5.1.5:
+  version "5.1.6"
+  resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
+  integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
+  dependencies:
+    asn1.js "^5.2.0"
+    browserify-aes "^1.0.0"
+    evp_bytestokey "^1.0.0"
+    pbkdf2 "^3.0.3"
+    safe-buffer "^5.1.1"
+
+parse-entities@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8"
+  integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==
+  dependencies:
+    character-entities "^1.0.0"
+    character-entities-legacy "^1.0.0"
+    character-reference-invalid "^1.0.0"
+    is-alphanumerical "^1.0.0"
+    is-decimal "^1.0.0"
+    is-hexadecimal "^1.0.0"
+
+parse-json@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+  integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+  dependencies:
+    error-ex "^1.3.1"
+    json-parse-better-errors "^1.0.1"
+
+parse-json@^5.0.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    error-ex "^1.3.1"
+    json-parse-even-better-errors "^2.3.0"
+    lines-and-columns "^1.1.6"
+
+parse-passwd@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
+  integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
+
+pascalcase@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+  integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
+path-browserify@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
+  integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
+
+path-dirname@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+  integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
+
+path-exists@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-key@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+  integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+
+path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.6:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-to-regexp@^1.7.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
+  integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
+  dependencies:
+    isarray "0.0.1"
+
+path-type@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+  integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+  dependencies:
+    pify "^3.0.0"
+
+path-type@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+pbkdf2@^3.0.3:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
+  integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
+  dependencies:
+    create-hash "^1.1.2"
+    create-hmac "^1.1.4"
+    ripemd160 "^2.0.1"
+    safe-buffer "^5.0.1"
+    sha.js "^2.4.8"
+
+"phoenix@file:../deps/phoenix":
+  version "1.5.8"
+
+"phoenix_html@file:../deps/phoenix_html":
+  version "2.14.3"
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+  integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
+
+pify@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+  integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+
+pify@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+  integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pkg-dir@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+  integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
+  dependencies:
+    find-up "^2.1.0"
+
+pkg-dir@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+  integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
+  dependencies:
+    find-up "^3.0.0"
+
+pkg-dir@^4.1.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+  integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+  dependencies:
+    find-up "^4.0.0"
+
+pkg-up@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
+  integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
+  dependencies:
+    find-up "^2.1.0"
+
+posix-character-classes@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
+postcss-calc@^7.0.1:
+  version "7.0.5"
+  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e"
+  integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==
+  dependencies:
+    postcss "^7.0.27"
+    postcss-selector-parser "^6.0.2"
+    postcss-value-parser "^4.0.2"
+
+postcss-colormin@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
+  integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
+  dependencies:
+    browserslist "^4.0.0"
+    color "^3.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-convert-values@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
+  integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
+  dependencies:
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-discard-comments@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
+  integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
+  dependencies:
+    postcss "^7.0.0"
+
+postcss-discard-duplicates@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
+  integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
+  dependencies:
+    postcss "^7.0.0"
+
+postcss-discard-empty@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
+  integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
+  dependencies:
+    postcss "^7.0.0"
+
+postcss-discard-overridden@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
+  integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
+  dependencies:
+    postcss "^7.0.0"
+
+postcss-functions@^3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
+  integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=
+  dependencies:
+    glob "^7.1.2"
+    object-assign "^4.1.1"
+    postcss "^6.0.9"
+    postcss-value-parser "^3.3.0"
+
+postcss-html@^0.36.0:
+  version "0.36.0"
+  resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204"
+  integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==
+  dependencies:
+    htmlparser2 "^3.10.0"
+
+postcss-js@^2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9"
+  integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==
+  dependencies:
+    camelcase-css "^2.0.1"
+    postcss "^7.0.18"
+
+postcss-less@^3.1.4:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad"
+  integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==
+  dependencies:
+    postcss "^7.0.14"
+
+postcss-loader@^4.0.4:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc"
+  integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==
+  dependencies:
+    cosmiconfig "^7.0.0"
+    klona "^2.0.4"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
+    semver "^7.3.4"
+
+postcss-media-query-parser@^0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
+  integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
+
+postcss-merge-longhand@^4.0.11:
+  version "4.0.11"
+  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
+  integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
+  dependencies:
+    css-color-names "0.0.4"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+    stylehacks "^4.0.0"
+
+postcss-merge-rules@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
+  integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
+  dependencies:
+    browserslist "^4.0.0"
+    caniuse-api "^3.0.0"
+    cssnano-util-same-parent "^4.0.0"
+    postcss "^7.0.0"
+    postcss-selector-parser "^3.0.0"
+    vendors "^1.0.0"
+
+postcss-minify-font-values@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
+  integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+  dependencies:
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-minify-gradients@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
+  integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    is-color-stop "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-minify-params@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
+  integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
+  dependencies:
+    alphanum-sort "^1.0.0"
+    browserslist "^4.0.0"
+    cssnano-util-get-arguments "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+    uniqs "^2.0.0"
+
+postcss-minify-selectors@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
+  integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
+  dependencies:
+    alphanum-sort "^1.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-selector-parser "^3.0.0"
+
+postcss-modules-extract-imports@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
+  integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
+  dependencies:
+    postcss "^7.0.5"
+
+postcss-modules-local-by-default@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"
+  integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==
+  dependencies:
+    icss-utils "^4.1.1"
+    postcss "^7.0.32"
+    postcss-selector-parser "^6.0.2"
+    postcss-value-parser "^4.1.0"
+
+postcss-modules-scope@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
+  integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
+  dependencies:
+    postcss "^7.0.6"
+    postcss-selector-parser "^6.0.0"
+
+postcss-modules-values@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
+  integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
+  dependencies:
+    icss-utils "^4.0.0"
+    postcss "^7.0.6"
+
+postcss-nested@^4:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz#c6f255b0a720549776d220d00c4b70cd244136f6"
+  integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==
+  dependencies:
+    postcss "^7.0.32"
+    postcss-selector-parser "^6.0.2"
+
+postcss-normalize-charset@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
+  integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
+  dependencies:
+    postcss "^7.0.0"
+
+postcss-normalize-display-values@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
+  integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
+  dependencies:
+    cssnano-util-get-match "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-positions@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
+  integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-repeat-style@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
+  integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    cssnano-util-get-match "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-string@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
+  integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
+  dependencies:
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-timing-functions@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
+  integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
+  dependencies:
+    cssnano-util-get-match "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-unicode@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
+  integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+  dependencies:
+    browserslist "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-url@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
+  integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+  dependencies:
+    is-absolute-url "^2.0.0"
+    normalize-url "^3.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-whitespace@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
+  integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
+  dependencies:
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-ordered-values@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
+  integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-reduce-initial@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
+  integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
+  dependencies:
+    browserslist "^4.0.0"
+    caniuse-api "^3.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+
+postcss-reduce-transforms@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
+  integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
+  dependencies:
+    cssnano-util-get-match "^4.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-resolve-nested-selector@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e"
+  integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=
+
+postcss-safe-parser@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96"
+  integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==
+  dependencies:
+    postcss "^7.0.26"
+
+postcss-sass@^0.4.4:
+  version "0.4.4"
+  resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz#91f0f3447b45ce373227a98b61f8d8f0785285a3"
+  integrity sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==
+  dependencies:
+    gonzales-pe "^4.3.0"
+    postcss "^7.0.21"
+
+postcss-scss@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz#ec3a75fa29a55e016b90bf3269026c53c1d2b383"
+  integrity sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==
+  dependencies:
+    postcss "^7.0.6"
+
+postcss-selector-parser@^3.0.0:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
+  integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
+  dependencies:
+    dot-prop "^5.2.0"
+    indexes-of "^1.0.1"
+    uniq "^1.0.1"
+
+postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5:
+  version "6.0.6"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
+  integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
+  dependencies:
+    cssesc "^3.0.0"
+    util-deprecate "^1.0.2"
+
+postcss-svgo@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
+  integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
+  dependencies:
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+    svgo "^1.0.0"
+
+postcss-syntax@^0.36.2:
+  version "0.36.2"
+  resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c"
+  integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==
+
+postcss-unique-selectors@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
+  integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+  dependencies:
+    alphanum-sort "^1.0.0"
+    postcss "^7.0.0"
+    uniqs "^2.0.0"
+
+postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+  integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+
+postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
+  integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
+
+postcss@^6.0.9:
+  version "6.0.23"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+  integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+  dependencies:
+    chalk "^2.4.1"
+    source-map "^0.6.1"
+    supports-color "^5.4.0"
+
+postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.5, postcss@^7.0.6:
+  version "7.0.35"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
+  integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
+  dependencies:
+    chalk "^2.4.2"
+    source-map "^0.6.1"
+    supports-color "^6.1.0"
+
+postcss@^8.2.1:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f"
+  integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==
+  dependencies:
+    colorette "^1.2.2"
+    nanoid "^3.1.23"
+    source-map-js "^0.6.2"
+
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prelude-ls@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+  integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+prepend-http@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+  integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
+
+prettier-linter-helpers@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
+  integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+  dependencies:
+    fast-diff "^1.1.2"
+
+pretty-hrtime@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
+  integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
+
+process-nextick-args@~2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+process@^0.11.10:
+  version "0.11.10"
+  resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+  integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+
+progress@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+promise-inflight@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+  integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
+
+prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2:
+  version "15.7.2"
+  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
+  integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
+  dependencies:
+    loose-envify "^1.4.0"
+    object-assign "^4.1.1"
+    react-is "^16.8.1"
+
+prr@~1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+  integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
+
+public-encrypt@^4.0.0:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+  integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
+  dependencies:
+    bn.js "^4.1.0"
+    browserify-rsa "^4.0.0"
+    create-hash "^1.1.0"
+    parse-asn1 "^5.0.0"
+    randombytes "^2.0.1"
+    safe-buffer "^5.1.2"
+
+pump@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+  integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
+  dependencies:
+    end-of-stream "^1.1.0"
+    once "^1.3.1"
+
+pump@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+  dependencies:
+    end-of-stream "^1.1.0"
+    once "^1.3.1"
+
+pumpify@^1.3.3:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+  integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
+  dependencies:
+    duplexify "^3.6.0"
+    inherits "^2.0.3"
+    pump "^2.0.0"
+
+punycode@1.3.2:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
+
+punycode@^1.2.4:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+  integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
+
+punycode@^2.1.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+purgecss@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-3.1.3.tgz#26987ec09d12eeadc318e22f6e5a9eb0be094f41"
+  integrity sha512-hRSLN9mguJ2lzlIQtW4qmPS2kh6oMnA9RxdIYK8sz18QYqd6ePp4GNDl18oWHA1f2v2NEQIh51CO8s/E3YGckQ==
+  dependencies:
+    commander "^6.0.0"
+    glob "^7.0.0"
+    postcss "^8.2.1"
+    postcss-selector-parser "^6.0.2"
+
+q@^1.1.2:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+  integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
+
+query-string@^4.1.0:
+  version "4.3.4"
+  resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+  integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
+  dependencies:
+    object-assign "^4.1.0"
+    strict-uri-encode "^1.0.0"
+
+querystring-es3@^0.2.0:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+  integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
+
+querystring@0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+  integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
+
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+quick-lru@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
+  integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
+
+quote-stream@^1.0.1, quote-stream@~1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2"
+  integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=
+  dependencies:
+    buffer-equal "0.0.1"
+    minimist "^1.1.3"
+    through2 "^2.0.0"
+
+randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+  integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+  dependencies:
+    safe-buffer "^5.1.0"
+
+randomfill@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+  integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
+  dependencies:
+    randombytes "^2.0.5"
+    safe-buffer "^5.1.0"
+
+react-dom@^16.13.1:
+  version "16.14.0"
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
+  integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+    prop-types "^15.6.2"
+    scheduler "^0.19.1"
+
+react-flatpickr@^3.10.5:
+  version "3.10.7"
+  resolved "https://registry.yarnpkg.com/react-flatpickr/-/react-flatpickr-3.10.7.tgz#bca6da2a1ccf23bb884881e2a1723073f0bfb391"
+  integrity sha512-dJ7cZAayefqWJnX4Xe8Piy13oK2h4aeGCH9tz+D2iSNh+kbezUAWVMVCKdTqjsNBqTMS4v0DkfMy2CP2atNCTQ==
+  dependencies:
+    flatpickr "^4.6.2"
+    prop-types "^15.5.10"
+
+react-flip-move@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/react-flip-move/-/react-flip-move-3.0.4.tgz#261f66101fbc305f9b7b28959c5cf8236413ca74"
+  integrity sha512-HyUVv9g3t/BS7Yz9HgrtYSWyRNdR2F81nkj+C5iRY675AwlqCLB5JU9mnZWg0cdVz7IM4iquoyZx70vzZv3Z8Q==
+
+react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1:
+  version "16.13.1"
+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-router-dom@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662"
+  integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==
+  dependencies:
+    "@babel/runtime" "^7.1.2"
+    history "^4.9.0"
+    loose-envify "^1.3.1"
+    prop-types "^15.6.2"
+    react-router "5.2.0"
+    tiny-invariant "^1.0.2"
+    tiny-warning "^1.0.0"
+
+react-router@5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293"
+  integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==
+  dependencies:
+    "@babel/runtime" "^7.1.2"
+    history "^4.9.0"
+    hoist-non-react-statics "^3.1.0"
+    loose-envify "^1.3.1"
+    mini-create-react-context "^0.4.0"
+    path-to-regexp "^1.7.0"
+    prop-types "^15.6.2"
+    react-is "^16.6.0"
+    tiny-invariant "^1.0.2"
+    tiny-warning "^1.0.0"
+
+react-transition-group@^4.4.1:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470"
+  integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==
+  dependencies:
+    "@babel/runtime" "^7.5.5"
+    dom-helpers "^5.0.1"
+    loose-envify "^1.4.0"
+    prop-types "^15.6.2"
+
+react@^16.13.1:
+  version "16.14.0"
+  resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
+  integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+    prop-types "^15.6.2"
+
+read-pkg-up@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
+  integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=
+  dependencies:
+    find-up "^2.0.0"
+    read-pkg "^3.0.0"
+
+read-pkg-up@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+  integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
+  dependencies:
+    find-up "^4.1.0"
+    read-pkg "^5.2.0"
+    type-fest "^0.8.1"
+
+read-pkg@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+  integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+  dependencies:
+    load-json-file "^4.0.0"
+    normalize-package-data "^2.3.2"
+    path-type "^3.0.0"
+
+read-pkg@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+  integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+  dependencies:
+    "@types/normalize-package-data" "^2.4.0"
+    normalize-package-data "^2.5.0"
+    parse-json "^5.0.0"
+    type-fest "^0.6.0"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6:
+  version "2.3.7"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+  integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+  dependencies:
+    core-util-is "~1.0.0"
+    inherits "~2.0.3"
+    isarray "~1.0.0"
+    process-nextick-args "~2.0.0"
+    safe-buffer "~5.1.1"
+    string_decoder "~1.1.1"
+    util-deprecate "~1.0.1"
+
+readable-stream@^3.1.1, readable-stream@^3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+readdirp@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+  integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+  dependencies:
+    graceful-fs "^4.1.11"
+    micromatch "^3.1.10"
+    readable-stream "^2.0.2"
+
+readdirp@~3.5.0:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
+  integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
+  dependencies:
+    picomatch "^2.2.1"
+
+redent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+  integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
+  dependencies:
+    indent-string "^4.0.0"
+    strip-indent "^3.0.0"
+
+reduce-css-calc@^2.1.6:
+  version "2.1.8"
+  resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03"
+  integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==
+  dependencies:
+    css-unit-converter "^1.1.1"
+    postcss-value-parser "^3.3.0"
+
+regenerate-unicode-properties@^8.2.0:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
+  integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
+  dependencies:
+    regenerate "^1.4.0"
+
+regenerate@^1.4.0:
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+  integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
+regenerator-runtime@^0.13.4:
+  version "0.13.7"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
+  integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
+
+regenerator-transform@^0.14.2:
+  version "0.14.5"
+  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
+  integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+  dependencies:
+    "@babel/runtime" "^7.8.4"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+  integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+  dependencies:
+    extend-shallow "^3.0.2"
+    safe-regex "^1.1.0"
+
+regexp.prototype.flags@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
+  integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+regexpp@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
+  integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
+
+regexpu-core@^4.7.1:
+  version "4.7.1"
+  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
+  integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
+  dependencies:
+    regenerate "^1.4.0"
+    regenerate-unicode-properties "^8.2.0"
+    regjsgen "^0.5.1"
+    regjsparser "^0.6.4"
+    unicode-match-property-ecmascript "^1.0.4"
+    unicode-match-property-value-ecmascript "^1.2.0"
+
+regjsgen@^0.5.1:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
+  integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
+
+regjsparser@^0.6.4:
+  version "0.6.9"
+  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6"
+  integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==
+  dependencies:
+    jsesc "~0.5.0"
+
+remark-parse@^9.0.0:
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640"
+  integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==
+  dependencies:
+    mdast-util-from-markdown "^0.8.0"
+
+remark-stringify@^9.0.0:
+  version "9.0.1"
+  resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894"
+  integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==
+  dependencies:
+    mdast-util-to-markdown "^0.6.0"
+
+remark@^13.0.0:
+  version "13.0.0"
+  resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425"
+  integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==
+  dependencies:
+    remark-parse "^9.0.0"
+    remark-stringify "^9.0.0"
+    unified "^9.1.0"
+
+remove-trailing-separator@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+repeat-element@^1.1.2:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
+  integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
+
+repeat-string@^1.0.0, repeat-string@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
+require-main-filename@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
+  integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
+resolve-cwd@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+  integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
+  dependencies:
+    resolve-from "^3.0.0"
+
+resolve-dir@^1.0.0, resolve-dir@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
+  integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=
+  dependencies:
+    expand-tilde "^2.0.0"
+    global-modules "^1.0.0"
+
+resolve-from@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+  integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-from@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+  integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
+resolve-pathname@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd"
+  integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==
+
+resolve-url@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+
+resolve@^1.1.5, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+  dependencies:
+    is-core-module "^2.2.0"
+    path-parse "^1.0.6"
+
+resolve@^2.0.0-next.3:
+  version "2.0.0-next.3"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46"
+  integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==
+  dependencies:
+    is-core-module "^2.2.0"
+    path-parse "^1.0.6"
+
+ret@~0.1.10:
+  version "0.1.15"
+  resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rgb-regex@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
+  integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
+
+rgba-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
+  integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
+
+rimraf@^2.5.4, rimraf@^2.6.3:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+  dependencies:
+    glob "^7.1.3"
+
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
+ripemd160@^2.0.0, ripemd160@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
+  integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
+  dependencies:
+    hash-base "^3.0.0"
+    inherits "^2.0.1"
+
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
+run-queue@^1.0.0, run-queue@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+  integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
+  dependencies:
+    aproba "^1.1.1"
+
+rw@1:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4"
+  integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-regex@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+  integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+  dependencies:
+    ret "~0.1.10"
+
+safer-buffer@^2.1.0:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sax@~1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+scheduler@^0.19.1:
+  version "0.19.1"
+  resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+  integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+
+schema-utils@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+  integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
+  dependencies:
+    ajv "^6.1.0"
+    ajv-errors "^1.0.0"
+    ajv-keywords "^3.1.0"
+
+schema-utils@^2.6.5, schema-utils@^2.7.0:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
+  integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
+  dependencies:
+    "@types/json-schema" "^7.0.5"
+    ajv "^6.12.4"
+    ajv-keywords "^3.5.2"
+
+schema-utils@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef"
+  integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==
+  dependencies:
+    "@types/json-schema" "^7.0.6"
+    ajv "^6.12.5"
+    ajv-keywords "^3.5.2"
+
+"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
+  version "5.7.1"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+  integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^7.2.1, semver@^7.3.4:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+  dependencies:
+    lru-cache "^6.0.0"
+
+serialize-javascript@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
+  integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
+  dependencies:
+    randombytes "^2.1.0"
+
+serialize-javascript@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
+  integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
+  dependencies:
+    randombytes "^2.1.0"
+
+set-blocking@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+set-value@^2.0.0, set-value@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+  dependencies:
+    extend-shallow "^2.0.1"
+    is-extendable "^0.1.1"
+    is-plain-object "^2.0.3"
+    split-string "^3.0.1"
+
+setimmediate@^1.0.4:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+  integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+
+sha.js@^2.4.0, sha.js@^2.4.8:
+  version "2.4.11"
+  resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+  integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
+  dependencies:
+    inherits "^2.0.1"
+    safe-buffer "^5.0.1"
+
+shallow-copy@~0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170"
+  integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=
+
+shapefile@0.3:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/shapefile/-/shapefile-0.3.1.tgz#9bb9a429bd6086a0cfb03962d14cfdf420ffba12"
+  integrity sha1-m7mkKb1ghqDPsDli0Uz99CD/uhI=
+  dependencies:
+    d3-queue "1"
+    iconv-lite "0.2"
+    optimist "0.3"
+
+shebang-command@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+  integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+  dependencies:
+    shebang-regex "^1.0.0"
+
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+  integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+side-channel@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+  dependencies:
+    call-bind "^1.0.0"
+    get-intrinsic "^1.0.2"
+    object-inspect "^1.9.0"
+
+signal-exit@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+  integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
+simple-swizzle@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+  integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+  dependencies:
+    is-arrayish "^0.3.1"
+
+slash@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
+snapdragon-node@^2.0.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+  integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+  dependencies:
+    define-property "^1.0.0"
+    isobject "^3.0.0"
+    snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+  integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+  dependencies:
+    kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+  version "0.8.2"
+  resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+  integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+  dependencies:
+    base "^0.11.1"
+    debug "^2.2.0"
+    define-property "^0.2.5"
+    extend-shallow "^2.0.1"
+    map-cache "^0.2.2"
+    source-map "^0.5.6"
+    source-map-resolve "^0.5.0"
+    use "^3.1.0"
+
+sort-keys@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+  integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0=
+  dependencies:
+    is-plain-obj "^1.0.0"
+
+source-list-map@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+  integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
+source-map-js@^0.6.2:
+  version "0.6.2"
+  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e"
+  integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==
+
+source-map-resolve@^0.5.0:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+  integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+  dependencies:
+    atob "^2.1.2"
+    decode-uri-component "^0.2.0"
+    resolve-url "^0.2.1"
+    source-map-url "^0.4.0"
+    urix "^0.1.0"
+
+source-map-support@~0.5.12, source-map-support@~0.5.19:
+  version "0.5.19"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+  integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+  integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+
+source-map@^0.5.0, source-map@^0.5.6:
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+source-map@~0.7.2:
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+spdx-correct@^3.0.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
+  integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
+  dependencies:
+    spdx-expression-parse "^3.0.0"
+    spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+  integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
+
+spdx-expression-parse@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+  integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+  dependencies:
+    spdx-exceptions "^2.1.0"
+    spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+  version "3.0.9"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"
+  integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==
+
+specificity@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019"
+  integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==
+
+split-string@^3.0.1, split-string@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+  integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+  dependencies:
+    extend-shallow "^3.0.0"
+
+sprintf-js@~1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+ssri@^6.0.1:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
+  integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
+  dependencies:
+    figgy-pudding "^3.5.1"
+
+ssri@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
+  integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
+  dependencies:
+    minipass "^3.1.1"
+
+stable@^0.1.8:
+  version "0.1.8"
+  resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+  integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+
+static-eval@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.1.0.tgz#a16dbe54522d7fa5ef1389129d813fd47b148014"
+  integrity sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==
+  dependencies:
+    escodegen "^1.11.1"
+
+static-extend@^0.1.1:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+  integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+  dependencies:
+    define-property "^0.2.5"
+    object-copy "^0.1.0"
+
+static-module@^2.2.0:
+  version "2.2.5"
+  resolved "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf"
+  integrity sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==
+  dependencies:
+    concat-stream "~1.6.0"
+    convert-source-map "^1.5.1"
+    duplexer2 "~0.1.4"
+    escodegen "~1.9.0"
+    falafel "^2.1.0"
+    has "^1.0.1"
+    magic-string "^0.22.4"
+    merge-source-map "1.0.4"
+    object-inspect "~1.4.0"
+    quote-stream "~1.0.2"
+    readable-stream "~2.3.3"
+    shallow-copy "~0.0.1"
+    static-eval "^2.0.0"
+    through2 "~2.0.3"
+
+stream-browserify@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
+  integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
+  dependencies:
+    inherits "~2.0.1"
+    readable-stream "^2.0.2"
+
+stream-each@^1.1.0:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+  integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
+  dependencies:
+    end-of-stream "^1.1.0"
+    stream-shift "^1.0.0"
+
+stream-http@^2.7.2:
+  version "2.8.3"
+  resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+  integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
+  dependencies:
+    builtin-status-codes "^3.0.0"
+    inherits "^2.0.1"
+    readable-stream "^2.3.6"
+    to-arraybuffer "^1.0.0"
+    xtend "^4.0.0"
+
+stream-shift@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+  integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+
+strict-uri-encode@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+  integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
+
+string-width@^3.0.0, string-width@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+  dependencies:
+    emoji-regex "^7.0.1"
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^5.1.0"
+
+string-width@^4.2.0, string-width@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.0"
+
+string.prototype.matchall@^4.0.4:
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da"
+  integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.2"
+    get-intrinsic "^1.1.1"
+    has-symbols "^1.0.2"
+    internal-slot "^1.0.3"
+    regexp.prototype.flags "^1.3.1"
+    side-channel "^1.0.4"
+
+string.prototype.trimend@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
+string_decoder@^1.0.0, string_decoder@^1.1.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+  dependencies:
+    safe-buffer "~5.2.0"
+
+string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
+
+strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+  dependencies:
+    ansi-regex "^4.1.0"
+
+strip-ansi@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+  dependencies:
+    ansi-regex "^5.0.0"
+
+strip-bom@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+  integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+strip-indent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+  integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+  dependencies:
+    min-indent "^1.0.0"
+
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+style-search@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
+  integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=
+
+stylehacks@^4.0.0:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
+  integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
+  dependencies:
+    browserslist "^4.0.0"
+    postcss "^7.0.0"
+    postcss-selector-parser "^3.0.0"
+
+stylelint-config-prettier@^8.0.2:
+  version "8.0.2"
+  resolved "https://registry.yarnpkg.com/stylelint-config-prettier/-/stylelint-config-prettier-8.0.2.tgz#da9de33da4c56893cbe7e26df239a7374045e14e"
+  integrity sha512-TN1l93iVTXpF9NJstlvP7nOu9zY2k+mN0NSFQ/VEGz15ZIP9ohdDZTtCWHs5LjctAhSAzaILULGbgiM0ItId3A==
+
+stylelint-config-recommended@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz#e0e547434016c5539fe2650afd58049a2fd1d657"
+  integrity sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==
+
+stylelint-config-standard@^20.0.0:
+  version "20.0.0"
+  resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz#06135090c9e064befee3d594289f50e295b5e20d"
+  integrity sha512-IB2iFdzOTA/zS4jSVav6z+wGtin08qfj+YyExHB3LF9lnouQht//YyB0KZq9gGz5HNPkddHOzcY8HsUey6ZUlA==
+  dependencies:
+    stylelint-config-recommended "^3.0.0"
+
+stylelint@^13.8.0:
+  version "13.13.1"
+  resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.13.1.tgz#fca9c9f5de7990ab26a00f167b8978f083a18f3c"
+  integrity sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==
+  dependencies:
+    "@stylelint/postcss-css-in-js" "^0.37.2"
+    "@stylelint/postcss-markdown" "^0.36.2"
+    autoprefixer "^9.8.6"
+    balanced-match "^2.0.0"
+    chalk "^4.1.1"
+    cosmiconfig "^7.0.0"
+    debug "^4.3.1"
+    execall "^2.0.0"
+    fast-glob "^3.2.5"
+    fastest-levenshtein "^1.0.12"
+    file-entry-cache "^6.0.1"
+    get-stdin "^8.0.0"
+    global-modules "^2.0.0"
+    globby "^11.0.3"
+    globjoin "^0.1.4"
+    html-tags "^3.1.0"
+    ignore "^5.1.8"
+    import-lazy "^4.0.0"
+    imurmurhash "^0.1.4"
+    known-css-properties "^0.21.0"
+    lodash "^4.17.21"
+    log-symbols "^4.1.0"
+    mathml-tag-names "^2.1.3"
+    meow "^9.0.0"
+    micromatch "^4.0.4"
+    normalize-selector "^0.2.0"
+    postcss "^7.0.35"
+    postcss-html "^0.36.0"
+    postcss-less "^3.1.4"
+    postcss-media-query-parser "^0.2.3"
+    postcss-resolve-nested-selector "^0.1.1"
+    postcss-safe-parser "^4.0.2"
+    postcss-sass "^0.4.4"
+    postcss-scss "^2.1.1"
+    postcss-selector-parser "^6.0.5"
+    postcss-syntax "^0.36.2"
+    postcss-value-parser "^4.1.0"
+    resolve-from "^5.0.0"
+    slash "^3.0.0"
+    specificity "^0.4.1"
+    string-width "^4.2.2"
+    strip-ansi "^6.0.0"
+    style-search "^0.1.0"
+    sugarss "^2.0.0"
+    svg-tags "^1.0.0"
+    table "^6.6.0"
+    v8-compile-cache "^2.3.0"
+    write-file-atomic "^3.0.3"
+
+sugarss@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d"
+  integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==
+  dependencies:
+    postcss "^7.0.2"
+
+supports-color@^5.3.0, supports-color@^5.4.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
+
+supports-color@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
+  integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
+  dependencies:
+    has-flag "^3.0.0"
+
+supports-color@^7.0.0, supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
+
+svg-tags@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
+  integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
+
+svgo@^1.0.0:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
+  integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+  dependencies:
+    chalk "^2.4.1"
+    coa "^2.0.2"
+    css-select "^2.0.0"
+    css-select-base-adapter "^0.1.1"
+    css-tree "1.0.0-alpha.37"
+    csso "^4.0.2"
+    js-yaml "^3.13.1"
+    mkdirp "~0.5.1"
+    object.values "^1.1.0"
+    sax "~1.2.4"
+    stable "^0.1.8"
+    unquote "~1.1.1"
+    util.promisify "~1.0.0"
+
+table@^6.0.9, table@^6.6.0:
+  version "6.7.1"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
+  integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
+  dependencies:
+    ajv "^8.0.1"
+    lodash.clonedeep "^4.5.0"
+    lodash.truncate "^4.4.2"
+    slice-ansi "^4.0.0"
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+
+tailwindcss@2.0.1-compat:
+  version "2.0.1-compat"
+  resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-2.0.1-compat.tgz#2f57e9e4e848587bfc67ed92ee0de0882c3d0673"
+  integrity sha512-6lRJGPW7NlM7cemvGeuyrzb/Doj1hScnCMmAVNt8iTmMhIy4n6rUo84RC8m65+AAyOpSybS4b06lb4GI6Rw6Kw==
+  dependencies:
+    "@fullhuman/postcss-purgecss" "^3.0.0"
+    autoprefixer "^9"
+    bytes "^3.0.0"
+    chalk "^4.1.0"
+    color "^3.1.3"
+    detective "^5.2.0"
+    didyoumean "^1.2.1"
+    fs-extra "^9.0.1"
+    html-tags "^3.1.0"
+    lodash "^4.17.20"
+    modern-normalize "^1.0.0"
+    node-emoji "^1.8.1"
+    object-hash "^2.0.3"
+    postcss "^7"
+    postcss-functions "^3"
+    postcss-js "^2"
+    postcss-nested "^4"
+    postcss-selector-parser "^6.0.4"
+    postcss-value-parser "^4.1.0"
+    pretty-hrtime "^1.0.3"
+    reduce-css-calc "^2.1.6"
+    resolve "^1.19.0"
+
+tapable@^1.0.0, tapable@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
+  integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
+
+tar@^6.0.2:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83"
+  integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==
+  dependencies:
+    chownr "^2.0.0"
+    fs-minipass "^2.0.0"
+    minipass "^3.0.0"
+    minizlib "^2.1.1"
+    mkdirp "^1.0.3"
+    yallist "^4.0.0"
+
+terser-webpack-plugin@^1.4.1:
+  version "1.4.5"
+  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b"
+  integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==
+  dependencies:
+    cacache "^12.0.2"
+    find-cache-dir "^2.1.0"
+    is-wsl "^1.1.0"
+    schema-utils "^1.0.0"
+    serialize-javascript "^4.0.0"
+    source-map "^0.6.1"
+    terser "^4.1.2"
+    webpack-sources "^1.4.0"
+    worker-farm "^1.7.0"
+
+terser-webpack-plugin@^4.2.3:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a"
+  integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==
+  dependencies:
+    cacache "^15.0.5"
+    find-cache-dir "^3.3.1"
+    jest-worker "^26.5.0"
+    p-limit "^3.0.2"
+    schema-utils "^3.0.0"
+    serialize-javascript "^5.0.1"
+    source-map "^0.6.1"
+    terser "^5.3.4"
+    webpack-sources "^1.4.3"
+
+terser@^4.1.2:
+  version "4.8.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
+  integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
+  dependencies:
+    commander "^2.20.0"
+    source-map "~0.6.1"
+    source-map-support "~0.5.12"
+
+terser@^5.3.4:
+  version "5.7.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693"
+  integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==
+  dependencies:
+    commander "^2.20.0"
+    source-map "~0.7.2"
+    source-map-support "~0.5.19"
+
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+through2@^2.0.0, through2@~2.0.3:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+  integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+  dependencies:
+    readable-stream "~2.3.6"
+    xtend "~4.0.1"
+
+timers-browserify@^2.0.4:
+  version "2.0.12"
+  resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
+  integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
+  dependencies:
+    setimmediate "^1.0.4"
+
+timsort@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+  integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
+
+tiny-invariant@^1.0.2:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
+  integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
+
+tiny-warning@^1.0.0, tiny-warning@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
+  integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
+
+to-arraybuffer@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+  integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
+
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-object-path@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+  integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+  dependencies:
+    kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+  integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+  dependencies:
+    is-number "^3.0.0"
+    repeat-string "^1.6.1"
+
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+  dependencies:
+    is-number "^7.0.0"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+  integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+  dependencies:
+    define-property "^2.0.2"
+    extend-shallow "^3.0.2"
+    regex-not "^1.0.2"
+    safe-regex "^1.1.0"
+
+topojson@^1.6.19:
+  version "1.6.27"
+  resolved "https://registry.yarnpkg.com/topojson/-/topojson-1.6.27.tgz#adbe33a67e2f1673d338df12644ad20fc20b42ed"
+  integrity sha1-rb4zpn4vFnPTON8SZErSD8ILQu0=
+  dependencies:
+    d3 "3"
+    d3-geo-projection "0.2"
+    d3-queue "2"
+    optimist "0.3"
+    rw "1"
+    shapefile "0.3"
+
+trim-newlines@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
+  integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
+
+trough@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406"
+  integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==
+
+tsconfig-paths@^3.9.0:
+  version "3.9.0"
+  resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b"
+  integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==
+  dependencies:
+    "@types/json5" "^0.0.29"
+    json5 "^1.0.1"
+    minimist "^1.2.0"
+    strip-bom "^3.0.0"
+
+tty-browserify@0.0.0:
+  version "0.0.0"
+  resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+  integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
+
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+  dependencies:
+    prelude-ls "^1.2.1"
+
+type-check@~0.3.2:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+  integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+  dependencies:
+    prelude-ls "~1.1.2"
+
+type-fest@^0.18.0:
+  version "0.18.1"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
+  integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type-fest@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+  integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
+type-fest@^0.8.1:
+  version "0.8.1"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+  integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+typedarray-to-buffer@^3.1.5:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+  integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+  dependencies:
+    is-typedarray "^1.0.0"
+
+typedarray@^0.0.6:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
+unbox-primitive@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
+  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+  dependencies:
+    function-bind "^1.1.1"
+    has-bigints "^1.0.1"
+    has-symbols "^1.0.2"
+    which-boxed-primitive "^1.0.2"
+
+unicode-canonical-property-names-ecmascript@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+  integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
+
+unicode-match-property-ecmascript@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+  integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
+  dependencies:
+    unicode-canonical-property-names-ecmascript "^1.0.4"
+    unicode-property-aliases-ecmascript "^1.0.4"
+
+unicode-match-property-value-ecmascript@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
+  integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
+
+unicode-property-aliases-ecmascript@^1.0.4:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
+  integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
+
+unified@^9.1.0:
+  version "9.2.1"
+  resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.1.tgz#ae18d5674c114021bfdbdf73865ca60f410215a3"
+  integrity sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==
+  dependencies:
+    bail "^1.0.0"
+    extend "^3.0.0"
+    is-buffer "^2.0.0"
+    is-plain-obj "^2.0.0"
+    trough "^1.0.0"
+    vfile "^4.0.0"
+
+union-value@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+  dependencies:
+    arr-union "^3.1.0"
+    get-value "^2.0.6"
+    is-extendable "^0.1.1"
+    set-value "^2.0.1"
+
+uniq@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+  integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
+
+uniqs@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+  integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
+
+unique-filename@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+  integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+  dependencies:
+    unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+  integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
+  dependencies:
+    imurmurhash "^0.1.4"
+
+unist-util-find-all-after@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6"
+  integrity sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==
+  dependencies:
+    unist-util-is "^4.0.0"
+
+unist-util-is@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797"
+  integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==
+
+unist-util-stringify-position@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da"
+  integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==
+  dependencies:
+    "@types/unist" "^2.0.2"
+
+universalify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
+unquote@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+  integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
+
+unset-value@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+  integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+  dependencies:
+    has-value "^0.3.1"
+    isobject "^3.0.0"
+
+upath@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
+  integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+  dependencies:
+    punycode "^2.1.0"
+
+urix@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
+url-search-params-polyfill@^8.0.0:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/url-search-params-polyfill/-/url-search-params-polyfill-8.1.1.tgz#9e69e4dba300a71ae7ad3cead62c7717fd99329f"
+  integrity sha512-KmkCs6SjE6t4ihrfW9JelAPQIIIFbJweaaSLTh/4AO+c58JlDcb+GbdPt8yr5lRcFg4rPswRFRRhBGpWwh0K/Q==
+
+url@^0.11.0:
+  version "0.11.0"
+  resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+  integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
+  dependencies:
+    punycode "1.3.2"
+    querystring "0.2.0"
+
+use@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+  integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+util.promisify@~1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+  integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.2"
+    has-symbols "^1.0.1"
+    object.getownpropertydescriptors "^2.1.0"
+
+util@0.10.3:
+  version "0.10.3"
+  resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+  integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
+  dependencies:
+    inherits "2.0.1"
+
+util@^0.11.0:
+  version "0.11.1"
+  resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
+  integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
+  dependencies:
+    inherits "2.0.3"
+
+v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+validate-npm-package-license@^3.0.1:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+  integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+  dependencies:
+    spdx-correct "^3.0.0"
+    spdx-expression-parse "^3.0.0"
+
+value-equal@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
+  integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==
+
+vendors@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
+  integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
+
+vfile-message@^2.0.0:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a"
+  integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    unist-util-stringify-position "^2.0.0"
+
+vfile@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624"
+  integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    is-buffer "^2.0.0"
+    unist-util-stringify-position "^2.0.0"
+    vfile-message "^2.0.0"
+
+vlq@^0.2.2:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26"
+  integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==
+
+vm-browserify@^1.0.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+  integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+
+watchpack-chokidar2@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
+  integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==
+  dependencies:
+    chokidar "^2.1.8"
+
+watchpack@^1.6.0:
+  version "1.7.5"
+  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453"
+  integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==
+  dependencies:
+    graceful-fs "^4.1.2"
+    neo-async "^2.5.0"
+  optionalDependencies:
+    chokidar "^3.4.1"
+    watchpack-chokidar2 "^2.0.1"
+
+webpack-cli@^3.3.12:
+  version "3.3.12"
+  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a"
+  integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==
+  dependencies:
+    chalk "^2.4.2"
+    cross-spawn "^6.0.5"
+    enhanced-resolve "^4.1.1"
+    findup-sync "^3.0.0"
+    global-modules "^2.0.0"
+    import-local "^2.0.0"
+    interpret "^1.4.0"
+    loader-utils "^1.4.0"
+    supports-color "^6.1.0"
+    v8-compile-cache "^2.1.1"
+    yargs "^13.3.2"
+
+webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+  integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
+  dependencies:
+    source-list-map "^2.0.0"
+    source-map "~0.6.1"
+
+webpack@4.39.2:
+  version "4.39.2"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.2.tgz#c9aa5c1776d7c309d1b3911764f0288c8c2816aa"
+  integrity sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==
+  dependencies:
+    "@webassemblyjs/ast" "1.8.5"
+    "@webassemblyjs/helper-module-context" "1.8.5"
+    "@webassemblyjs/wasm-edit" "1.8.5"
+    "@webassemblyjs/wasm-parser" "1.8.5"
+    acorn "^6.2.1"
+    ajv "^6.10.2"
+    ajv-keywords "^3.4.1"
+    chrome-trace-event "^1.0.2"
+    enhanced-resolve "^4.1.0"
+    eslint-scope "^4.0.3"
+    json-parse-better-errors "^1.0.2"
+    loader-runner "^2.4.0"
+    loader-utils "^1.2.3"
+    memory-fs "^0.4.1"
+    micromatch "^3.1.10"
+    mkdirp "^0.5.1"
+    neo-async "^2.6.1"
+    node-libs-browser "^2.2.1"
+    schema-utils "^1.0.0"
+    tapable "^1.1.3"
+    terser-webpack-plugin "^1.4.1"
+    watchpack "^1.6.0"
+    webpack-sources "^1.4.1"
+
+which-boxed-primitive@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+  dependencies:
+    is-bigint "^1.0.1"
+    is-boolean-object "^1.1.0"
+    is-number-object "^1.0.4"
+    is-string "^1.0.5"
+    is-symbol "^1.0.3"
+
+which-module@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
+which@^1.2.14, which@^1.2.9, which@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+  dependencies:
+    isexe "^2.0.0"
+
+which@^2.0.1:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
+word-wrap@^1.2.3, word-wrap@~1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+wordwrap@~0.0.2:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+  integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
+
+worker-farm@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
+  integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
+  dependencies:
+    errno "~0.1.7"
+
+wrap-ansi@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
+  integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
+  dependencies:
+    ansi-styles "^3.2.0"
+    string-width "^3.0.0"
+    strip-ansi "^5.0.0"
+
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write-file-atomic@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+  integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
+  dependencies:
+    imurmurhash "^0.1.4"
+    is-typedarray "^1.0.0"
+    signal-exit "^3.0.2"
+    typedarray-to-buffer "^3.1.5"
+
+xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^4.0.0:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
+  integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
+
+yallist@^3.0.2:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+  integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml@^1.10.0:
+  version "1.10.2"
+  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^13.1.2:
+  version "13.1.2"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
+  integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
+  dependencies:
+    camelcase "^5.0.0"
+    decamelize "^1.2.0"
+
+yargs-parser@^20.2.3:
+  version "20.2.7"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
+  integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
+
+yargs@^13.3.2:
+  version "13.3.2"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
+  integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
+  dependencies:
+    cliui "^5.0.0"
+    find-up "^3.0.0"
+    get-caller-file "^2.0.1"
+    require-directory "^2.1.1"
+    require-main-filename "^2.0.0"
+    set-blocking "^2.0.0"
+    string-width "^3.0.0"
+    which-module "^2.0.0"
+    y18n "^4.0.0"
+    yargs-parser "^13.1.2"
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zwitch@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"
+  integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/yarn.nix b/nixpkgs/pkgs/servers/web-apps/plausible/yarn.nix
new file mode 100644
index 000000000000..303ccb31c551
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/yarn.nix
@@ -0,0 +1,8278 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "_babel_code_frame___code_frame_7.12.11.tgz";
+      path = fetchurl {
+        name = "_babel_code_frame___code_frame_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
+      };
+    }
+    {
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
+      };
+    }
+    {
+      name = "_babel_compat_data___compat_data_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_compat_data___compat_data_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz";
+        sha1 = "45720fe0cecf3fd42019e1d12cc3d27fadc98d58";
+      };
+    }
+    {
+      name = "_babel_core___core_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_core___core_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz";
+        sha1 = "5395e30405f0776067fbd9cf0884f15bfb770a38";
+      };
+    }
+    {
+      name = "_babel_generator___generator_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_generator___generator_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz";
+        sha1 = "0c2652d91f7bddab7cccc6ba8157e4f40dcedb91";
+      };
+    }
+    {
+      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz";
+        sha1 = "0f58e86dfc4bb3b1fcd7db806570e177d439b6ab";
+      };
+    }
+    {
+      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz";
+        sha1 = "6bc20361c88b0a74d05137a65cac8d3cbf6f61fc";
+      };
+    }
+    {
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz";
+        sha1 = "33ebd0ffc34248051ee2089350a929ab02f2a516";
+      };
+    }
+    {
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz";
+        sha1 = "abf888d836a441abee783c75229279748705dc42";
+      };
+    }
+    {
+      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz";
+        sha1 = "149aa6d78c016e318c43e2409a0ae9c136a86688";
+      };
+    }
+    {
+      name = "_babel_helper_define_polyfill_provider___helper_define_polyfill_provider_0.2.3.tgz";
+      path = fetchurl {
+        name = "_babel_helper_define_polyfill_provider___helper_define_polyfill_provider_0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz";
+        sha1 = "0525edec5094653a282688d34d846e4c75e9c0b6";
+      };
+    }
+    {
+      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz";
+        sha1 = "17b5c59ff473d9f956f40ef570cf3a76ca12657f";
+      };
+    }
+    {
+      name = "_babel_helper_function_name___helper_function_name_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_helper_function_name___helper_function_name_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz";
+        sha1 = "397688b590760b6ef7725b5f0860c82427ebaac2";
+      };
+    }
+    {
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
+      };
+    }
+    {
+      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.13.16.tgz";
+      path = fetchurl {
+        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.13.16.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz";
+        sha1 = "1b1651249e94b51f8f0d33439843e33e39775b30";
+      };
+    }
+    {
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz";
+        sha1 = "dfe368f26d426a07299d8d6513821768216e6d72";
+      };
+    }
+    {
+      name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_module_imports___helper_module_imports_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
+        sha1 = "c6a369a6f3621cb25da014078684da9196b61977";
+      };
+    }
+    {
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz";
+        sha1 = "ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5";
+      };
+    }
+    {
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
+      };
+    }
+    {
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
+        sha1 = "806526ce125aed03373bc416a828321e3a6a33af";
+      };
+    }
+    {
+      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz";
+        sha1 = "376a760d9f7b4b2077a9dd05aa9c3927cadb2209";
+      };
+    }
+    {
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz";
+        sha1 = "b2ab16875deecfff3ddfcd539bc315f72998d836";
+      };
+    }
+    {
+      name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_helper_simple_access___helper_simple_access_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
+        sha1 = "dd6c538afb61819d205a012c31792a39c7a5eaf6";
+      };
+    }
+    {
+      name = "_babel_helper_skip_transparent_expression_wrappers___helper_skip_transparent_expression_wrappers_7.12.1.tgz";
+      path = fetchurl {
+        name = "_babel_helper_skip_transparent_expression_wrappers___helper_skip_transparent_expression_wrappers_7.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz";
+        sha1 = "462dc63a7e435ade8468385c63d2b84cce4b3cbf";
+      };
+    }
+    {
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
+      };
+    }
+    {
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
+        sha1 = "d26cad8a47c65286b15df1547319a5d0bcf27288";
+      };
+    }
+    {
+      name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
+      path = fetchurl {
+        name = "_babel_helper_validator_option___helper_validator_option_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
+        sha1 = "d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831";
+      };
+    }
+    {
+      name = "_babel_helper_wrap_function___helper_wrap_function_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_helper_wrap_function___helper_wrap_function_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz";
+        sha1 = "bdb5c66fda8526ec235ab894ad53a1235c79fcc4";
+      };
+    }
+    {
+      name = "_babel_helpers___helpers_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_helpers___helpers_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz";
+        sha1 = "ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62";
+      };
+    }
+    {
+      name = "_babel_highlight___highlight_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_highlight___highlight_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz";
+        sha1 = "3197e375711ef6bf834e67d0daec88e4f46113cf";
+      };
+    }
+    {
+      name = "_babel_parser___parser_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_parser___parser_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz";
+        sha1 = "a5c560d6db6cd8e6ed342368dea8039232cbab18";
+      };
+    }
+    {
+      name = "_babel_plugin_bugfix_v8_spread_parameters_in_optional_chaining___plugin_bugfix_v8_spread_parameters_in_optional_chaining_7.13.12.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_bugfix_v8_spread_parameters_in_optional_chaining___plugin_bugfix_v8_spread_parameters_in_optional_chaining_7.13.12.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz";
+        sha1 = "a3484d84d0b549f3fc916b99ee4783f26fabad2a";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz";
+        sha1 = "3a2085abbf5d5f962d480dbc81347385ed62eb1e";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
+        sha1 = "146376000b94efd001e57a40a88a525afaab9f37";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_class_static_block___plugin_proposal_class_static_block_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_class_static_block___plugin_proposal_class_static_block_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz";
+        sha1 = "5a527e2cae4a4753119c3a3e7f64ecae8ccf1360";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz";
+        sha1 = "01ebabd7c381cff231fa43e302939a9de5be9d9f";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz";
+        sha1 = "62542f94aa9ce8f6dba79eec698af22112253791";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz";
+        sha1 = "830b4e2426a782e8b2878fbfe2cba85b70cbf98c";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz";
+        sha1 = "222348c080a1678e0e74ea63fe76f275882d1fd7";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz";
+        sha1 = "425b11dc62fc26939a2ab42cbba680bdf5734546";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz";
+        sha1 = "82b4cc06571143faf50626104b335dd71baa4f9e";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz";
+        sha1 = "0e2b4de419915dc0b409378e829412e2031777c4";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz";
+        sha1 = "150d4e58e525b16a9a1431bd5326c4eed870d717";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz";
+        sha1 = "df8171a8b9c43ebf4c1dabe6311b432d83e1b34e";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz";
+        sha1 = "04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_private_property_in_object___plugin_proposal_private_property_in_object_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_private_property_in_object___plugin_proposal_private_property_in_object_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz";
+        sha1 = "b1a1f2030586b9d3489cc26179d2eb5883277636";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz";
+        sha1 = "bebde51339be829c17aaaaced18641deb62b39ba";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+        sha1 = "a983fb1aeb2ec3f6ed042a210f640e90e786fe0d";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz";
+        sha1 = "b5c987274c4a3a82b89714796931a6b53544ae10";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_class_static_block___plugin_syntax_class_static_block_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_class_static_block___plugin_syntax_class_static_block_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz";
+        sha1 = "8e3d674b0613e67975ceac2776c97b60cafc5c9c";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+        sha1 = "62bf98b2da3cd21d626154fc96ee5b3cb68eacb3";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_export_namespace_from___plugin_syntax_export_namespace_from_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_export_namespace_from___plugin_syntax_export_namespace_from_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+        sha1 = "028964a9ba80dbc094c915c487ad7c4e7a66465a";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+        sha1 = "01ca21b668cd8218c9e640cb6dd88c5412b2c96a";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz";
+        sha1 = "044fb81ebad6698fe62c478875575bcbb9b70f15";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+        sha1 = "ca91ef46303530448b906652bac2e9fe9941f699";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+        sha1 = "167ed70368886081f74b5c36c65a88c03b66d1a9";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha1 = "b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+        sha1 = "6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+        sha1 = "4f69c2ab95167e0180cd5336613f8c5788f7d48a";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_private_property_in_object___plugin_syntax_private_property_in_object_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_private_property_in_object___plugin_syntax_private_property_in_object_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz";
+        sha1 = "762a4babec61176fec6c88480dec40372b140c0b";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz";
+        sha1 = "c5f0fa6e249f5b739727f923540cf7a806130178";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz";
+        sha1 = "10a59bebad52d637a027afa692e8d5ceff5e3dae";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz";
+        sha1 = "8e112bf6771b82bf1e974e5e26806c5c99aa516f";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz";
+        sha1 = "a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz";
+        sha1 = "caf140b0b2e2462c509553d140e6d0abefb61ed8";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz";
+        sha1 = "a83c15503fc71a0f99e876fdce7dadbc6575ec3a";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz";
+        sha1 = "845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz";
+        sha1 = "acbec502e9951f30f4441eaca1d2f29efade59ed";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz";
+        sha1 = "3f1601cc29905bfcb67f53910f197aeafebb25ad";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz";
+        sha1 = "6f06b87a8b803fd928e54b81c258f0a0033904de";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz";
+        sha1 = "4d52390b9a273e651e4aba6aee49ef40e80cd0a1";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz";
+        sha1 = "c799f881a8091ac26b54867a845c3e97d2696062";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz";
+        sha1 = "bb024452f9aaed861d374c8e7a24252ce3a50051";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz";
+        sha1 = "2ca45bafe4a820197cf315794a4d26560fe4bdb9";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz";
+        sha1 = "5ffa66cd59b9e191314c9f1f803b938e8c081e40";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz";
+        sha1 = "6622806fe1a7c07a1388444222ef9535f2ca17b0";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz";
+        sha1 = "52bc199cb581e0992edba0f0f80356467587f161";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.13.8.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.13.8.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz";
+        sha1 = "6d066ee2bff3c7b3d60bf28dec169ad993831ae3";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz";
+        sha1 = "2f8179d1bbc9263665ce4a65f305526b2ea8ac34";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz";
+        sha1 = "2213725a5f5bbbe364b50c3ba5998c9599c5c9d9";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz";
+        sha1 = "e22d8c3af24b150dd528cbd6e685e799bf1c351c";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz";
+        sha1 = "b4416a2d63b8f7be314f3d349bd55a9c1b5171f7";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz";
+        sha1 = "e4290f72e0e9e831000d066427c4667098decc31";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz";
+        sha1 = "4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz";
+        sha1 = "2e854544d42ab3bb9c21f84e153d62e800fbd593";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.17.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.17.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz";
+        sha1 = "f510c0fa7cd7234153539f9a362ced41a5ca1447";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.14.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz";
+        sha1 = "0e26597805cf0862da735f264550933c38babb66";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_react_pure_annotations___plugin_transform_react_pure_annotations_7.12.1.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_react_pure_annotations___plugin_transform_react_pure_annotations_7.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz";
+        sha1 = "05d46f0ab4d1339ac59adf20a1462c91b37a1a42";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.13.15.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.13.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz";
+        sha1 = "e5eb28945bf8b6563e7f818945f966a8d2997f39";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz";
+        sha1 = "7d9988d4f06e0fe697ea1d9803188aa18b472695";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz";
+        sha1 = "db755732b70c539d504c6390d9ce90fe64aff7ad";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz";
+        sha1 = "84887710e273c1815ace7ae459f6f42a5d31d5fd";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz";
+        sha1 = "760ffd936face73f860ae646fb86ee82f3d06d1f";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.13.0.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz";
+        sha1 = "a36049127977ad94438dee7443598d1cefdf409d";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz";
+        sha1 = "785dd67a1f2ea579d9c2be722de8c84cb85f5a7f";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz";
+        sha1 = "840ced3b816d3b5127dd1d12dcedc5dead1a5e74";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz";
+        sha1 = "b52521685804e155b1202e83fc188d34bb70f5ac";
+      };
+    }
+    {
+      name = "_babel_preset_env___preset_env_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_preset_env___preset_env_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz";
+        sha1 = "73fc3228c59727e5e974319156f304f0d6685a2d";
+      };
+    }
+    {
+      name = "_babel_preset_modules___preset_modules_0.1.4.tgz";
+      path = fetchurl {
+        name = "_babel_preset_modules___preset_modules_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha1 = "362f2b68c662842970fdb5e254ffc8fc1c2e415e";
+      };
+    }
+    {
+      name = "_babel_preset_react___preset_react_7.13.13.tgz";
+      path = fetchurl {
+        name = "_babel_preset_react___preset_react_7.13.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.13.13.tgz";
+        sha1 = "fa6895a96c50763fe693f9148568458d5a839761";
+      };
+    }
+    {
+      name = "_babel_runtime_corejs3___runtime_corejs3_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_runtime_corejs3___runtime_corejs3_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz";
+        sha1 = "6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66";
+      };
+    }
+    {
+      name = "_babel_runtime___runtime_7.14.0.tgz";
+      path = fetchurl {
+        name = "_babel_runtime___runtime_7.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz";
+        sha1 = "46794bc20b612c5f75e62dd071e24dfd95f1cbe6";
+      };
+    }
+    {
+      name = "_babel_template___template_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
+      };
+    }
+    {
+      name = "_babel_traverse___traverse_7.14.2.tgz";
+      path = fetchurl {
+        name = "_babel_traverse___traverse_7.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz";
+        sha1 = "9201a8d912723a831c2679c7ebbf2fe1416d765b";
+      };
+    }
+    {
+      name = "_babel_types___types_7.14.4.tgz";
+      path = fetchurl {
+        name = "_babel_types___types_7.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz";
+        sha1 = "bfd6980108168593b38b3eb48a24aa026b919bc0";
+      };
+    }
+    {
+      name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
+      path = fetchurl {
+        name = "_eslint_eslintrc___eslintrc_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz";
+        sha1 = "442763b88cecbe3ee0ec7ca6d6dd6168550cbf14";
+      };
+    }
+    {
+      name = "_fullhuman_postcss_purgecss___postcss_purgecss_3.1.3.tgz";
+      path = fetchurl {
+        name = "_fullhuman_postcss_purgecss___postcss_purgecss_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz";
+        sha1 = "47af7b87c9bfb3de4bc94a38f875b928fffdf339";
+      };
+    }
+    {
+      name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
+        sha1 = "d4b3549a5db5de2683e0c1071ab4f140904bbf69";
+      };
+    }
+    {
+      name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
+        sha1 = "a3f2dd61bab43b8db8fa108a121cfffe4c676655";
+      };
+    }
+    {
+      name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha1 = "cce9396b30aa5afe9e3756608f5831adcb53d063";
+      };
+    }
+    {
+      name = "_npmcli_move_file___move_file_1.1.2.tgz";
+      path = fetchurl {
+        name = "_npmcli_move_file___move_file_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz";
+        sha1 = "1a82c3e372f7cae9253eb66d72543d6b8685c674";
+      };
+    }
+    {
+      name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
+      path = fetchurl {
+        name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
+        url  = "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz";
+        sha1 = "7e5a84ad181f4234a2480803422a47b8749af3d2";
+      };
+    }
+    {
+      name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
+      path = fetchurl {
+        name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
+        url  = "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz";
+        sha1 = "0a540c4692f8dcdfc13c8e352c17e7bfee2bb391";
+      };
+    }
+    {
+      name = "_tailwindcss_aspect_ratio___aspect_ratio_0.2.1.tgz";
+      path = fetchurl {
+        name = "_tailwindcss_aspect_ratio___aspect_ratio_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.2.1.tgz";
+        sha1 = "a7ce776688b8218d9559a6918f0bccc58f0f16dd";
+      };
+    }
+    {
+      name = "_tailwindcss_forms___forms_0.2.1.tgz";
+      path = fetchurl {
+        name = "_tailwindcss_forms___forms_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.2.1.tgz";
+        sha1 = "3244b185854fae1a7cbe8d2456314d8b2d98cf43";
+      };
+    }
+    {
+      name = "_tailwindcss_typography___typography_0.3.1.tgz";
+      path = fetchurl {
+        name = "_tailwindcss_typography___typography_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.3.1.tgz";
+        sha1 = "253ce580c8e06b6163d9a288edd24f25e1d0dfee";
+      };
+    }
+    {
+      name = "_types_d3___d3_3.5.38.tgz";
+      path = fetchurl {
+        name = "_types_d3___d3_3.5.38.tgz";
+        url  = "https://registry.yarnpkg.com/@types/d3/-/d3-3.5.38.tgz";
+        sha1 = "76f8f2e9159ae562965b2fa0e6fbee1aa643a1bc";
+      };
+    }
+    {
+      name = "_types_json_schema___json_schema_7.0.7.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
+      };
+    }
+    {
+      name = "_types_json5___json5_0.0.29.tgz";
+      path = fetchurl {
+        name = "_types_json5___json5_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
+      };
+    }
+    {
+      name = "_types_mdast___mdast_3.0.3.tgz";
+      path = fetchurl {
+        name = "_types_mdast___mdast_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz";
+        sha1 = "2d7d671b1cd1ea3deb306ea75036c2a0407d2deb";
+      };
+    }
+    {
+      name = "_types_minimist___minimist_1.2.1.tgz";
+      path = fetchurl {
+        name = "_types_minimist___minimist_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz";
+        sha1 = "283f669ff76d7b8260df8ab7a4262cc83d988256";
+      };
+    }
+    {
+      name = "_types_node___node_15.6.1.tgz";
+      path = fetchurl {
+        name = "_types_node___node_15.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz";
+        sha1 = "32d43390d5c62c5b6ec486a9bc9c59544de39a08";
+      };
+    }
+    {
+      name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
+      path = fetchurl {
+        name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+        sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e";
+      };
+    }
+    {
+      name = "_types_parse_json___parse_json_4.0.0.tgz";
+      path = fetchurl {
+        name = "_types_parse_json___parse_json_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "2f8bb441434d163b35fb8ffdccd7138927ffb8c0";
+      };
+    }
+    {
+      name = "_types_q___q_1.5.4.tgz";
+      path = fetchurl {
+        name = "_types_q___q_1.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz";
+        sha1 = "15925414e0ad2cd765bfef58842f7e26a7accb24";
+      };
+    }
+    {
+      name = "_types_unist___unist_2.0.3.tgz";
+      path = fetchurl {
+        name = "_types_unist___unist_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz";
+        sha1 = "9c088679876f374eb5983f150d4787aa6fb32d7e";
+      };
+    }
+    {
+      name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz";
+        sha1 = "51b1c5fe6576a34953bf4b253df9f0d490d9e359";
+      };
+    }
+    {
+      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
+        sha1 = "1ba926a2923613edce496fd5b02e8ce8a5f49721";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
+        sha1 = "c49dad22f645227c5edb610bdb9697f1aab721f7";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
+        sha1 = "fea93e429863dd5e4338555f42292385a653f204";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
+        sha1 = "9a740ff48e3faa3022b1dff54423df9aa293c25e";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
+        sha1 = "ba0b7d3b3f7e4733da6059c9332275d860702452";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
+        sha1 = "def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
+        sha1 = "537a750eddf5c1e932f3744206551c91c1b93e61";
+      };
+    }
+    {
+      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
+        sha1 = "74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf";
+      };
+    }
+    {
+      name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
+        sha1 = "712329dbef240f36bf57bd2f7b8fb9bf4154421e";
+      };
+    }
+    {
+      name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
+        sha1 = "044edeb34ea679f3e04cd4fd9824d5e35767ae10";
+      };
+    }
+    {
+      name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
+        sha1 = "a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
+        sha1 = "962da12aa5acc1c131c81c4232991c82ce56e01a";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
+        sha1 = "54840766c2c1002eb64ed1abe720aded714f98bc";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
+        sha1 = "b24d9f6ba50394af1349f510afa8ffcb8a63d264";
+      };
+    }
+    {
+      name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
+        sha1 = "21576f0ec88b91427357b8536383668ef7c66b8d";
+      };
+    }
+    {
+      name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
+        sha1 = "e10eecd542d0e7bd394f6827c49f3df6d4eefb8c";
+      };
+    }
+    {
+      name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
+        sha1 = "114bbc481fd10ca0e23b3560fa812748b0bae5bc";
+      };
+    }
+    {
+      name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+      path = fetchurl {
+        name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+        sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
+      };
+    }
+    {
+      name = "_xtuc_long___long_4.2.2.tgz";
+      path = fetchurl {
+        name = "_xtuc_long___long_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz";
+        sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d";
+      };
+    }
+    {
+      name = "abortcontroller_polyfill___abortcontroller_polyfill_1.7.3.tgz";
+      path = fetchurl {
+        name = "abortcontroller_polyfill___abortcontroller_polyfill_1.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz";
+        sha1 = "1b5b487bd6436b5b764fd52a612509702c3144b5";
+      };
+    }
+    {
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+      path = fetchurl {
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
+      };
+    }
+    {
+      name = "acorn_node___acorn_node_1.8.2.tgz";
+      path = fetchurl {
+        name = "acorn_node___acorn_node_1.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz";
+        sha1 = "114c95d64539e53dede23de8b9d96df7c7ae2af8";
+      };
+    }
+    {
+      name = "acorn_walk___acorn_walk_7.2.0.tgz";
+      path = fetchurl {
+        name = "acorn_walk___acorn_walk_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz";
+        sha1 = "0de889a601203909b0fbe07b8938dc21d2e967bc";
+      };
+    }
+    {
+      name = "acorn___acorn_6.4.2.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_6.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz";
+        sha1 = "35866fd710528e92de10cf06016498e47e39e1e6";
+      };
+    }
+    {
+      name = "acorn___acorn_7.4.1.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_7.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
+        sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
+      };
+    }
+    {
+      name = "aggregate_error___aggregate_error_3.1.0.tgz";
+      path = fetchurl {
+        name = "aggregate_error___aggregate_error_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha1 = "92670ff50f5359bdb7a3e0d40d0ec30c5737687a";
+      };
+    }
+    {
+      name = "ajv_errors___ajv_errors_1.0.1.tgz";
+      path = fetchurl {
+        name = "ajv_errors___ajv_errors_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz";
+        sha1 = "f35986aceb91afadec4102fbd85014950cefa64d";
+      };
+    }
+    {
+      name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+      path = fetchurl {
+        name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
+      };
+    }
+    {
+      name = "ajv___ajv_6.12.6.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
+      };
+    }
+    {
+      name = "ajv___ajv_8.5.0.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_8.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz";
+        sha1 = "695528274bcb5afc865446aa275484049a18ae4b";
+      };
+    }
+    {
+      name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
+      path = fetchurl {
+        name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz";
+        sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3";
+      };
+    }
+    {
+      name = "alpinejs___alpinejs_2.8.2.tgz";
+      path = fetchurl {
+        name = "alpinejs___alpinejs_2.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/alpinejs/-/alpinejs-2.8.2.tgz";
+        sha1 = "b14ec21ae3cd78dcee4aed0a78ed0f01b676dac4";
+      };
+    }
+    {
+      name = "ansi_colors___ansi_colors_4.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_colors___ansi_colors_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_4.1.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_5.0.0.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_3.2.1.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_4.3.0.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
+      };
+    }
+    {
+      name = "anymatch___anymatch_2.0.0.tgz";
+      path = fetchurl {
+        name = "anymatch___anymatch_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+        sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+      };
+    }
+    {
+      name = "anymatch___anymatch_3.1.2.tgz";
+      path = fetchurl {
+        name = "anymatch___anymatch_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
+        sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
+      };
+    }
+    {
+      name = "aproba___aproba_1.2.0.tgz";
+      path = fetchurl {
+        name = "aproba___aproba_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+        sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+      };
+    }
+    {
+      name = "argparse___argparse_1.0.10.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+      };
+    }
+    {
+      name = "aria_query___aria_query_4.2.2.tgz";
+      path = fetchurl {
+        name = "aria_query___aria_query_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz";
+        sha1 = "0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b";
+      };
+    }
+    {
+      name = "arr_diff___arr_diff_4.0.0.tgz";
+      path = fetchurl {
+        name = "arr_diff___arr_diff_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    }
+    {
+      name = "arr_flatten___arr_flatten_1.1.0.tgz";
+      path = fetchurl {
+        name = "arr_flatten___arr_flatten_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+      };
+    }
+    {
+      name = "arr_union___arr_union_3.1.0.tgz";
+      path = fetchurl {
+        name = "arr_union___arr_union_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    }
+    {
+      name = "array_includes___array_includes_3.1.3.tgz";
+      path = fetchurl {
+        name = "array_includes___array_includes_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz";
+        sha1 = "c7f619b382ad2afaf5326cddfdc0afc61af7690a";
+      };
+    }
+    {
+      name = "array_union___array_union_2.1.0.tgz";
+      path = fetchurl {
+        name = "array_union___array_union_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
+        sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
+      };
+    }
+    {
+      name = "array_unique___array_unique_0.3.2.tgz";
+      path = fetchurl {
+        name = "array_unique___array_unique_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    }
+    {
+      name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
+      path = fetchurl {
+        name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
+        sha1 = "6ef638b43312bd401b4c6199fdec7e2dc9e9a123";
+      };
+    }
+    {
+      name = "array.prototype.flatmap___array.prototype.flatmap_1.2.4.tgz";
+      path = fetchurl {
+        name = "array.prototype.flatmap___array.prototype.flatmap_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz";
+        sha1 = "94cfd47cc1556ec0747d97f7c7738c58122004c9";
+      };
+    }
+    {
+      name = "arrify___arrify_1.0.1.tgz";
+      path = fetchurl {
+        name = "arrify___arrify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz";
+        sha1 = "898508da2226f380df904728456849c1501a4b0d";
+      };
+    }
+    {
+      name = "asn1.js___asn1.js_5.4.1.tgz";
+      path = fetchurl {
+        name = "asn1.js___asn1.js_5.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz";
+        sha1 = "11a980b84ebb91781ce35b0fdc2ee294e3783f07";
+      };
+    }
+    {
+      name = "assert___assert_1.5.0.tgz";
+      path = fetchurl {
+        name = "assert___assert_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz";
+        sha1 = "55c109aaf6e0aefdb3dc4b71240c70bf574b18eb";
+      };
+    }
+    {
+      name = "assign_symbols___assign_symbols_1.0.0.tgz";
+      path = fetchurl {
+        name = "assign_symbols___assign_symbols_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    }
+    {
+      name = "ast_types_flow___ast_types_flow_0.0.7.tgz";
+      path = fetchurl {
+        name = "ast_types_flow___ast_types_flow_0.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz";
+        sha1 = "f70b735c6bca1a5c9c22d982c3e39e7feba3bdad";
+      };
+    }
+    {
+      name = "astral_regex___astral_regex_2.0.0.tgz";
+      path = fetchurl {
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
+      };
+    }
+    {
+      name = "async_each___async_each_1.0.3.tgz";
+      path = fetchurl {
+        name = "async_each___async_each_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz";
+        sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf";
+      };
+    }
+    {
+      name = "at_least_node___at_least_node_1.0.0.tgz";
+      path = fetchurl {
+        name = "at_least_node___at_least_node_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
+      };
+    }
+    {
+      name = "atob___atob_2.1.2.tgz";
+      path = fetchurl {
+        name = "atob___atob_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+        sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+      };
+    }
+    {
+      name = "autoprefixer___autoprefixer_9.8.6.tgz";
+      path = fetchurl {
+        name = "autoprefixer___autoprefixer_9.8.6.tgz";
+        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        sha1 = "3b73594ca1bf9266320c5acf1588d74dea74210f";
+      };
+    }
+    {
+      name = "axe_core___axe_core_4.2.1.tgz";
+      path = fetchurl {
+        name = "axe_core___axe_core_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.1.tgz";
+        sha1 = "2e50bcf10ee5b819014f6e342e41e45096239e34";
+      };
+    }
+    {
+      name = "axobject_query___axobject_query_2.2.0.tgz";
+      path = fetchurl {
+        name = "axobject_query___axobject_query_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz";
+        sha1 = "943d47e10c0b704aa42275e20edf3722648989be";
+      };
+    }
+    {
+      name = "babel_loader___babel_loader_8.2.2.tgz";
+      path = fetchurl {
+        name = "babel_loader___babel_loader_8.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz";
+        sha1 = "9363ce84c10c9a40e6c753748e1441b60c8a0b81";
+      };
+    }
+    {
+      name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
+      path = fetchurl {
+        name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha1 = "84fda19c976ec5c6defef57f9427b3def66e17a3";
+      };
+    }
+    {
+      name = "babel_plugin_polyfill_corejs2___babel_plugin_polyfill_corejs2_0.2.2.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_corejs2___babel_plugin_polyfill_corejs2_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz";
+        sha1 = "e9124785e6fd94f94b618a7954e5693053bf5327";
+      };
+    }
+    {
+      name = "babel_plugin_polyfill_corejs3___babel_plugin_polyfill_corejs3_0.2.2.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_corejs3___babel_plugin_polyfill_corejs3_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz";
+        sha1 = "7424a1682ee44baec817327710b1b094e5f8f7f5";
+      };
+    }
+    {
+      name = "babel_plugin_polyfill_regenerator___babel_plugin_polyfill_regenerator_0.2.2.tgz";
+      path = fetchurl {
+        name = "babel_plugin_polyfill_regenerator___babel_plugin_polyfill_regenerator_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz";
+        sha1 = "b310c8d642acada348c1fa3b3e6ce0e851bee077";
+      };
+    }
+    {
+      name = "bail___bail_1.0.5.tgz";
+      path = fetchurl {
+        name = "bail___bail_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz";
+        sha1 = "b6fa133404a392cbc1f8c4bf63f5953351e7a776";
+      };
+    }
+    {
+      name = "balanced_match___balanced_match_1.0.2.tgz";
+      path = fetchurl {
+        name = "balanced_match___balanced_match_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
+      };
+    }
+    {
+      name = "balanced_match___balanced_match_2.0.0.tgz";
+      path = fetchurl {
+        name = "balanced_match___balanced_match_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz";
+        sha1 = "dc70f920d78db8b858535795867bf48f820633d9";
+      };
+    }
+    {
+      name = "base64_js___base64_js_1.5.1.tgz";
+      path = fetchurl {
+        name = "base64_js___base64_js_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz";
+        sha1 = "1b1b440160a5bf7ad40b650f095963481903930a";
+      };
+    }
+    {
+      name = "base___base_0.11.2.tgz";
+      path = fetchurl {
+        name = "base___base_0.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+        sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+      };
+    }
+    {
+      name = "big.js___big.js_5.2.2.tgz";
+      path = fetchurl {
+        name = "big.js___big.js_5.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
+        sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
+      };
+    }
+    {
+      name = "binary_extensions___binary_extensions_1.13.1.tgz";
+      path = fetchurl {
+        name = "binary_extensions___binary_extensions_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz";
+        sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65";
+      };
+    }
+    {
+      name = "binary_extensions___binary_extensions_2.2.0.tgz";
+      path = fetchurl {
+        name = "binary_extensions___binary_extensions_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha1 = "75f502eeaf9ffde42fc98829645be4ea76bd9e2d";
+      };
+    }
+    {
+      name = "bindings___bindings_1.5.0.tgz";
+      path = fetchurl {
+        name = "bindings___bindings_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
+        sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
+      };
+    }
+    {
+      name = "bluebird___bluebird_3.7.2.tgz";
+      path = fetchurl {
+        name = "bluebird___bluebird_3.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
+        sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
+      };
+    }
+    {
+      name = "bn.js___bn.js_4.12.0.tgz";
+      path = fetchurl {
+        name = "bn.js___bn.js_4.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz";
+        sha1 = "775b3f278efbb9718eec7361f483fb36fbbfea88";
+      };
+    }
+    {
+      name = "bn.js___bn.js_5.2.0.tgz";
+      path = fetchurl {
+        name = "bn.js___bn.js_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz";
+        sha1 = "358860674396c6997771a9d051fcc1b57d4ae002";
+      };
+    }
+    {
+      name = "boolbase___boolbase_1.0.0.tgz";
+      path = fetchurl {
+        name = "boolbase___boolbase_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz";
+        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+      };
+    }
+    {
+      name = "brace_expansion___brace_expansion_1.1.11.tgz";
+      path = fetchurl {
+        name = "brace_expansion___brace_expansion_1.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+      };
+    }
+    {
+      name = "braces___braces_2.3.2.tgz";
+      path = fetchurl {
+        name = "braces___braces_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+        sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+      };
+    }
+    {
+      name = "braces___braces_3.0.2.tgz";
+      path = fetchurl {
+        name = "braces___braces_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
+        sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
+      };
+    }
+    {
+      name = "brfs___brfs_1.6.1.tgz";
+      path = fetchurl {
+        name = "brfs___brfs_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz";
+        sha1 = "b78ce2336d818e25eea04a0947cba6d4fb8849c3";
+      };
+    }
+    {
+      name = "brorand___brorand_1.1.0.tgz";
+      path = fetchurl {
+        name = "brorand___brorand_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+      };
+    }
+    {
+      name = "browserify_aes___browserify_aes_1.2.0.tgz";
+      path = fetchurl {
+        name = "browserify_aes___browserify_aes_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz";
+        sha1 = "326734642f403dabc3003209853bb70ad428ef48";
+      };
+    }
+    {
+      name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+      path = fetchurl {
+        name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+        sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0";
+      };
+    }
+    {
+      name = "browserify_des___browserify_des_1.0.2.tgz";
+      path = fetchurl {
+        name = "browserify_des___browserify_des_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz";
+        sha1 = "3af4f1f59839403572f1c66204375f7a7f703e9c";
+      };
+    }
+    {
+      name = "browserify_rsa___browserify_rsa_4.1.0.tgz";
+      path = fetchurl {
+        name = "browserify_rsa___browserify_rsa_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz";
+        sha1 = "b2fd06b5b75ae297f7ce2dc651f918f5be158c8d";
+      };
+    }
+    {
+      name = "browserify_sign___browserify_sign_4.2.1.tgz";
+      path = fetchurl {
+        name = "browserify_sign___browserify_sign_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz";
+        sha1 = "eaf4add46dd54be3bb3b36c0cf15abbeba7956c3";
+      };
+    }
+    {
+      name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+      path = fetchurl {
+        name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+        sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
+      };
+    }
+    {
+      name = "browserslist___browserslist_4.16.6.tgz";
+      path = fetchurl {
+        name = "browserslist___browserslist_4.16.6.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz";
+        sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2";
+      };
+    }
+    {
+      name = "buffer_equal___buffer_equal_0.0.1.tgz";
+      path = fetchurl {
+        name = "buffer_equal___buffer_equal_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz";
+        sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
+      };
+    }
+    {
+      name = "buffer_from___buffer_from_1.1.1.tgz";
+      path = fetchurl {
+        name = "buffer_from___buffer_from_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+      };
+    }
+    {
+      name = "buffer_xor___buffer_xor_1.0.3.tgz";
+      path = fetchurl {
+        name = "buffer_xor___buffer_xor_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
+        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+      };
+    }
+    {
+      name = "buffer___buffer_4.9.2.tgz";
+      path = fetchurl {
+        name = "buffer___buffer_4.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz";
+        sha1 = "230ead344002988644841ab0244af8c44bbe3ef8";
+      };
+    }
+    {
+      name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+      path = fetchurl {
+        name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+        sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+      };
+    }
+    {
+      name = "bytes___bytes_3.1.0.tgz";
+      path = fetchurl {
+        name = "bytes___bytes_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
+        sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
+      };
+    }
+    {
+      name = "cacache___cacache_12.0.4.tgz";
+      path = fetchurl {
+        name = "cacache___cacache_12.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz";
+        sha1 = "668bcbd105aeb5f1d92fe25570ec9525c8faa40c";
+      };
+    }
+    {
+      name = "cacache___cacache_15.2.0.tgz";
+      path = fetchurl {
+        name = "cacache___cacache_15.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz";
+        sha1 = "73af75f77c58e72d8c630a7a2858cb18ef523389";
+      };
+    }
+    {
+      name = "cache_base___cache_base_1.0.1.tgz";
+      path = fetchurl {
+        name = "cache_base___cache_base_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+        sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+      };
+    }
+    {
+      name = "call_bind___call_bind_1.0.2.tgz";
+      path = fetchurl {
+        name = "call_bind___call_bind_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
+        sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
+      };
+    }
+    {
+      name = "caller_callsite___caller_callsite_2.0.0.tgz";
+      path = fetchurl {
+        name = "caller_callsite___caller_callsite_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
+        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+      };
+    }
+    {
+      name = "caller_path___caller_path_2.0.0.tgz";
+      path = fetchurl {
+        name = "caller_path___caller_path_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
+        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+      };
+    }
+    {
+      name = "callsites___callsites_2.0.0.tgz";
+      path = fetchurl {
+        name = "callsites___callsites_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
+        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+      };
+    }
+    {
+      name = "callsites___callsites_3.1.0.tgz";
+      path = fetchurl {
+        name = "callsites___callsites_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
+        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
+      };
+    }
+    {
+      name = "camelcase_css___camelcase_css_2.0.1.tgz";
+      path = fetchurl {
+        name = "camelcase_css___camelcase_css_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz";
+        sha1 = "ee978f6947914cc30c6b44741b6ed1df7f043fd5";
+      };
+    }
+    {
+      name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
+      path = fetchurl {
+        name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz";
+        sha1 = "5e755d6ba51aa223ec7d3d52f25778210f9dc3c0";
+      };
+    }
+    {
+      name = "camelcase___camelcase_5.3.1.tgz";
+      path = fetchurl {
+        name = "camelcase___camelcase_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
+        sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
+      };
+    }
+    {
+      name = "caniuse_api___caniuse_api_3.0.0.tgz";
+      path = fetchurl {
+        name = "caniuse_api___caniuse_api_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz";
+        sha1 = "5e4d90e2274961d46291997df599e3ed008ee4c0";
+      };
+    }
+    {
+      name = "caniuse_lite___caniuse_lite_1.0.30001230.tgz";
+      path = fetchurl {
+        name = "caniuse_lite___caniuse_lite_1.0.30001230.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz";
+        sha1 = "8135c57459854b2240b57a4a6786044bdc5a9f71";
+      };
+    }
+    {
+      name = "chalk___chalk_2.4.2.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+      };
+    }
+    {
+      name = "chalk___chalk_4.1.1.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
+        sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
+      };
+    }
+    {
+      name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
+      path = fetchurl {
+        name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz";
+        sha1 = "94bc1845dce70a5bb9d2ecc748725661293d8fc1";
+      };
+    }
+    {
+      name = "character_entities___character_entities_1.2.4.tgz";
+      path = fetchurl {
+        name = "character_entities___character_entities_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz";
+        sha1 = "e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b";
+      };
+    }
+    {
+      name = "character_reference_invalid___character_reference_invalid_1.1.4.tgz";
+      path = fetchurl {
+        name = "character_reference_invalid___character_reference_invalid_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz";
+        sha1 = "083329cda0eae272ab3dbbf37e9a382c13af1560";
+      };
+    }
+    {
+      name = "chart.js___chart.js_2.9.4.tgz";
+      path = fetchurl {
+        name = "chart.js___chart.js_2.9.4.tgz";
+        url  = "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz";
+        sha1 = "0827f9563faffb2dc5c06562f8eb10337d5b9684";
+      };
+    }
+    {
+      name = "chartjs_color_string___chartjs_color_string_0.6.0.tgz";
+      path = fetchurl {
+        name = "chartjs_color_string___chartjs_color_string_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz";
+        sha1 = "1df096621c0e70720a64f4135ea171d051402f71";
+      };
+    }
+    {
+      name = "chartjs_color___chartjs_color_2.4.1.tgz";
+      path = fetchurl {
+        name = "chartjs_color___chartjs_color_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz";
+        sha1 = "6118bba202fe1ea79dd7f7c0f9da93467296c3b0";
+      };
+    }
+    {
+      name = "chokidar___chokidar_2.1.8.tgz";
+      path = fetchurl {
+        name = "chokidar___chokidar_2.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz";
+        sha1 = "804b3a7b6a99358c3c5c61e71d8728f041cff917";
+      };
+    }
+    {
+      name = "chokidar___chokidar_3.5.1.tgz";
+      path = fetchurl {
+        name = "chokidar___chokidar_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz";
+        sha1 = "ee9ce7bbebd2b79f49f304799d5468e31e14e68a";
+      };
+    }
+    {
+      name = "chownr___chownr_1.1.4.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
+        sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
+      };
+    }
+    {
+      name = "chownr___chownr_2.0.0.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz";
+        sha1 = "15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece";
+      };
+    }
+    {
+      name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
+      path = fetchurl {
+        name = "chrome_trace_event___chrome_trace_event_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz";
+        sha1 = "1015eced4741e15d06664a957dbbf50d041e26ac";
+      };
+    }
+    {
+      name = "cipher_base___cipher_base_1.0.4.tgz";
+      path = fetchurl {
+        name = "cipher_base___cipher_base_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
+        sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
+      };
+    }
+    {
+      name = "class_utils___class_utils_0.3.6.tgz";
+      path = fetchurl {
+        name = "class_utils___class_utils_0.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+        sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+      };
+    }
+    {
+      name = "clean_stack___clean_stack_2.2.0.tgz";
+      path = fetchurl {
+        name = "clean_stack___clean_stack_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz";
+        sha1 = "ee8472dbb129e727b31e8a10a427dee9dfe4008b";
+      };
+    }
+    {
+      name = "cliui___cliui_5.0.0.tgz";
+      path = fetchurl {
+        name = "cliui___cliui_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
+        sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
+      };
+    }
+    {
+      name = "clone_regexp___clone_regexp_2.2.0.tgz";
+      path = fetchurl {
+        name = "clone_regexp___clone_regexp_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz";
+        sha1 = "7d65e00885cd8796405c35a737e7a86b7429e36f";
+      };
+    }
+    {
+      name = "coa___coa_2.0.2.tgz";
+      path = fetchurl {
+        name = "coa___coa_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz";
+        sha1 = "43f6c21151b4ef2bf57187db0d73de229e3e7ec3";
+      };
+    }
+    {
+      name = "collection_visit___collection_visit_1.0.0.tgz";
+      path = fetchurl {
+        name = "collection_visit___collection_visit_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    }
+    {
+      name = "color_convert___color_convert_1.9.3.tgz";
+      path = fetchurl {
+        name = "color_convert___color_convert_1.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+      };
+    }
+    {
+      name = "color_convert___color_convert_2.0.1.tgz";
+      path = fetchurl {
+        name = "color_convert___color_convert_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
+        sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
+      };
+    }
+    {
+      name = "color_name___color_name_1.1.3.tgz";
+      path = fetchurl {
+        name = "color_name___color_name_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    }
+    {
+      name = "color_name___color_name_1.1.4.tgz";
+      path = fetchurl {
+        name = "color_name___color_name_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+      };
+    }
+    {
+      name = "color_string___color_string_1.5.5.tgz";
+      path = fetchurl {
+        name = "color_string___color_string_1.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz";
+        sha1 = "65474a8f0e7439625f3d27a6a19d89fc45223014";
+      };
+    }
+    {
+      name = "color___color_3.1.3.tgz";
+      path = fetchurl {
+        name = "color___color_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz";
+        sha1 = "ca67fb4e7b97d611dcde39eceed422067d91596e";
+      };
+    }
+    {
+      name = "colorette___colorette_1.2.2.tgz";
+      path = fetchurl {
+        name = "colorette___colorette_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
+        sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
+      };
+    }
+    {
+      name = "commander___commander_2.20.3.tgz";
+      path = fetchurl {
+        name = "commander___commander_2.20.3.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+      };
+    }
+    {
+      name = "commander___commander_6.2.1.tgz";
+      path = fetchurl {
+        name = "commander___commander_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz";
+        sha1 = "0792eb682dfbc325999bb2b84fddddba110ac73c";
+      };
+    }
+    {
+      name = "commondir___commondir_1.0.1.tgz";
+      path = fetchurl {
+        name = "commondir___commondir_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    }
+    {
+      name = "component_emitter___component_emitter_1.3.0.tgz";
+      path = fetchurl {
+        name = "component_emitter___component_emitter_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
+      };
+    }
+    {
+      name = "concat_map___concat_map_0.0.1.tgz";
+      path = fetchurl {
+        name = "concat_map___concat_map_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    }
+    {
+      name = "concat_stream___concat_stream_1.6.2.tgz";
+      path = fetchurl {
+        name = "concat_stream___concat_stream_1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+      };
+    }
+    {
+      name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
+      path = fetchurl {
+        name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz";
+        sha1 = "30d1e7f3d1b882b25ec4933d1d1adac353d20a59";
+      };
+    }
+    {
+      name = "console_browserify___console_browserify_1.2.0.tgz";
+      path = fetchurl {
+        name = "console_browserify___console_browserify_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz";
+        sha1 = "67063cef57ceb6cf4993a2ab3a55840ae8c49336";
+      };
+    }
+    {
+      name = "constants_browserify___constants_browserify_1.0.0.tgz";
+      path = fetchurl {
+        name = "constants_browserify___constants_browserify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
+        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+      };
+    }
+    {
+      name = "convert_source_map___convert_source_map_1.7.0.tgz";
+      path = fetchurl {
+        name = "convert_source_map___convert_source_map_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
+      };
+    }
+    {
+      name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+      path = fetchurl {
+        name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+        sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+      };
+    }
+    {
+      name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+      path = fetchurl {
+        name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    }
+    {
+      name = "copy_webpack_plugin___copy_webpack_plugin_6.4.1.tgz";
+      path = fetchurl {
+        name = "copy_webpack_plugin___copy_webpack_plugin_6.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz";
+        sha1 = "138cd9b436dbca0a6d071720d5414848992ec47e";
+      };
+    }
+    {
+      name = "core_js_compat___core_js_compat_3.13.1.tgz";
+      path = fetchurl {
+        name = "core_js_compat___core_js_compat_3.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.13.1.tgz";
+        sha1 = "05444caa8f153be0c67db03cf8adb8ec0964e58e";
+      };
+    }
+    {
+      name = "core_js_pure___core_js_pure_3.13.1.tgz";
+      path = fetchurl {
+        name = "core_js_pure___core_js_pure_3.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.13.1.tgz";
+        sha1 = "5d139d346780f015f67225f45ee2362a6bed6ba1";
+      };
+    }
+    {
+      name = "core_util_is___core_util_is_1.0.2.tgz";
+      path = fetchurl {
+        name = "core_util_is___core_util_is_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    }
+    {
+      name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+      path = fetchurl {
+        name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+        sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a";
+      };
+    }
+    {
+      name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
+      path = fetchurl {
+        name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+        sha1 = "ef9b44d773959cae63ddecd122de23853b60f8d3";
+      };
+    }
+    {
+      name = "create_ecdh___create_ecdh_4.0.4.tgz";
+      path = fetchurl {
+        name = "create_ecdh___create_ecdh_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz";
+        sha1 = "d6e7f4bffa66736085a0762fd3a632684dabcc4e";
+      };
+    }
+    {
+      name = "create_hash___create_hash_1.2.0.tgz";
+      path = fetchurl {
+        name = "create_hash___create_hash_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz";
+        sha1 = "889078af11a63756bcfb59bd221996be3a9ef196";
+      };
+    }
+    {
+      name = "create_hmac___create_hmac_1.1.7.tgz";
+      path = fetchurl {
+        name = "create_hmac___create_hmac_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz";
+        sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff";
+      };
+    }
+    {
+      name = "cross_spawn___cross_spawn_6.0.5.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+      };
+    }
+    {
+      name = "cross_spawn___cross_spawn_7.0.3.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
+      };
+    }
+    {
+      name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+      path = fetchurl {
+        name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+        sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
+      };
+    }
+    {
+      name = "css_color_names___css_color_names_0.0.4.tgz";
+      path = fetchurl {
+        name = "css_color_names___css_color_names_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz";
+        sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
+      };
+    }
+    {
+      name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
+      path = fetchurl {
+        name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz";
+        sha1 = "c198940f63a76d7e36c1e71018b001721054cb22";
+      };
+    }
+    {
+      name = "css_loader___css_loader_3.6.0.tgz";
+      path = fetchurl {
+        name = "css_loader___css_loader_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz";
+        sha1 = "2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645";
+      };
+    }
+    {
+      name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
+      path = fetchurl {
+        name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz";
+        sha1 = "3b2ff4972cc362ab88561507a95408a1432135d7";
+      };
+    }
+    {
+      name = "css_select___css_select_2.1.0.tgz";
+      path = fetchurl {
+        name = "css_select___css_select_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz";
+        sha1 = "6a34653356635934a81baca68d0255432105dbef";
+      };
+    }
+    {
+      name = "css_tree___css_tree_1.0.0_alpha.37.tgz";
+      path = fetchurl {
+        name = "css_tree___css_tree_1.0.0_alpha.37.tgz";
+        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz";
+        sha1 = "98bebd62c4c1d9f960ec340cf9f7522e30709a22";
+      };
+    }
+    {
+      name = "css_tree___css_tree_1.1.3.tgz";
+      path = fetchurl {
+        name = "css_tree___css_tree_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz";
+        sha1 = "eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d";
+      };
+    }
+    {
+      name = "css_unit_converter___css_unit_converter_1.1.2.tgz";
+      path = fetchurl {
+        name = "css_unit_converter___css_unit_converter_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz";
+        sha1 = "4c77f5a1954e6dbff60695ecb214e3270436ab21";
+      };
+    }
+    {
+      name = "css_what___css_what_3.4.2.tgz";
+      path = fetchurl {
+        name = "css_what___css_what_3.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz";
+        sha1 = "ea7026fcb01777edbde52124e21f327e7ae950e4";
+      };
+    }
+    {
+      name = "cssesc___cssesc_3.0.0.tgz";
+      path = fetchurl {
+        name = "cssesc___cssesc_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz";
+        sha1 = "37741919903b868565e1c09ea747445cd18983ee";
+      };
+    }
+    {
+      name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
+      path = fetchurl {
+        name = "cssnano_preset_default___cssnano_preset_default_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz";
+        sha1 = "920622b1fc1e95a34e8838203f1397a504f2d3ff";
+      };
+    }
+    {
+      name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
+      path = fetchurl {
+        name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz";
+        sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f";
+      };
+    }
+    {
+      name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
+      path = fetchurl {
+        name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz";
+        sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d";
+      };
+    }
+    {
+      name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
+      path = fetchurl {
+        name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz";
+        sha1 = "b26d5fd5f72a11dfe7a7846fb4c67260f96bf282";
+      };
+    }
+    {
+      name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
+      path = fetchurl {
+        name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz";
+        sha1 = "574082fb2859d2db433855835d9a8456ea18bbf3";
+      };
+    }
+    {
+      name = "cssnano___cssnano_4.1.11.tgz";
+      path = fetchurl {
+        name = "cssnano___cssnano_4.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz";
+        sha1 = "c7b5f5b81da269cb1fd982cb960c1200910c9a99";
+      };
+    }
+    {
+      name = "csso___csso_4.2.0.tgz";
+      path = fetchurl {
+        name = "csso___csso_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz";
+        sha1 = "ea3a561346e8dc9f546d6febedd50187cf389529";
+      };
+    }
+    {
+      name = "csstype___csstype_3.0.8.tgz";
+      path = fetchurl {
+        name = "csstype___csstype_3.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz";
+        sha1 = "d2266a792729fb227cd216fb572f43728e1ad340";
+      };
+    }
+    {
+      name = "cyclist___cyclist_1.0.1.tgz";
+      path = fetchurl {
+        name = "cyclist___cyclist_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz";
+        sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
+      };
+    }
+    {
+      name = "d3_geo_projection___d3_geo_projection_0.2.16.tgz";
+      path = fetchurl {
+        name = "d3_geo_projection___d3_geo_projection_0.2.16.tgz";
+        url  = "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-0.2.16.tgz";
+        sha1 = "4994ecd1033ddb1533b6c4c5528a1c81dcc29427";
+      };
+    }
+    {
+      name = "d3_queue___d3_queue_1.2.3.tgz";
+      path = fetchurl {
+        name = "d3_queue___d3_queue_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/d3-queue/-/d3-queue-1.2.3.tgz";
+        sha1 = "143a701cfa65fe021292f321c10d14e98abd491b";
+      };
+    }
+    {
+      name = "d3_queue___d3_queue_2.0.3.tgz";
+      path = fetchurl {
+        name = "d3_queue___d3_queue_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/d3-queue/-/d3-queue-2.0.3.tgz";
+        sha1 = "07fbda3acae5358a9c5299aaf880adf0953ed2c2";
+      };
+    }
+    {
+      name = "d3___d3_3.5.17.tgz";
+      path = fetchurl {
+        name = "d3___d3_3.5.17.tgz";
+        url  = "https://registry.yarnpkg.com/d3/-/d3-3.5.17.tgz";
+        sha1 = "bc46748004378b21a360c9fc7cf5231790762fb8";
+      };
+    }
+    {
+      name = "damerau_levenshtein___damerau_levenshtein_1.0.7.tgz";
+      path = fetchurl {
+        name = "damerau_levenshtein___damerau_levenshtein_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz";
+        sha1 = "64368003512a1a6992593741a09a9d31a836f55d";
+      };
+    }
+    {
+      name = "datamaps___datamaps_0.5.9.tgz";
+      path = fetchurl {
+        name = "datamaps___datamaps_0.5.9.tgz";
+        url  = "https://registry.yarnpkg.com/datamaps/-/datamaps-0.5.9.tgz";
+        sha1 = "2a775473aaab29b55025208b2245e840ecfd4fe1";
+      };
+    }
+    {
+      name = "debug___debug_2.6.9.tgz";
+      path = fetchurl {
+        name = "debug___debug_2.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+      };
+    }
+    {
+      name = "debug___debug_3.2.7.tgz";
+      path = fetchurl {
+        name = "debug___debug_3.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz";
+        sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a";
+      };
+    }
+    {
+      name = "debug___debug_4.3.1.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
+        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
+      };
+    }
+    {
+      name = "decamelize_keys___decamelize_keys_1.1.0.tgz";
+      path = fetchurl {
+        name = "decamelize_keys___decamelize_keys_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz";
+        sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
+      };
+    }
+    {
+      name = "decamelize___decamelize_1.2.0.tgz";
+      path = fetchurl {
+        name = "decamelize___decamelize_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    }
+    {
+      name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+      path = fetchurl {
+        name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    }
+    {
+      name = "deep_is___deep_is_0.1.3.tgz";
+      path = fetchurl {
+        name = "deep_is___deep_is_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    }
+    {
+      name = "define_properties___define_properties_1.1.3.tgz";
+      path = fetchurl {
+        name = "define_properties___define_properties_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+      };
+    }
+    {
+      name = "define_property___define_property_0.2.5.tgz";
+      path = fetchurl {
+        name = "define_property___define_property_0.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    }
+    {
+      name = "define_property___define_property_1.0.0.tgz";
+      path = fetchurl {
+        name = "define_property___define_property_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    }
+    {
+      name = "define_property___define_property_2.0.2.tgz";
+      path = fetchurl {
+        name = "define_property___define_property_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+        sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+      };
+    }
+    {
+      name = "defined___defined_1.0.0.tgz";
+      path = fetchurl {
+        name = "defined___defined_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
+        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+      };
+    }
+    {
+      name = "des.js___des.js_1.0.1.tgz";
+      path = fetchurl {
+        name = "des.js___des.js_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz";
+        sha1 = "5382142e1bdc53f85d86d53e5f4aa7deb91e0843";
+      };
+    }
+    {
+      name = "detect_file___detect_file_1.0.0.tgz";
+      path = fetchurl {
+        name = "detect_file___detect_file_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
+        sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
+      };
+    }
+    {
+      name = "detective___detective_5.2.0.tgz";
+      path = fetchurl {
+        name = "detective___detective_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz";
+        sha1 = "feb2a77e85b904ecdea459ad897cc90a99bd2a7b";
+      };
+    }
+    {
+      name = "didyoumean___didyoumean_1.2.1.tgz";
+      path = fetchurl {
+        name = "didyoumean___didyoumean_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz";
+        sha1 = "e92edfdada6537d484d73c0172fd1eba0c4976ff";
+      };
+    }
+    {
+      name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+      path = fetchurl {
+        name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+        sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875";
+      };
+    }
+    {
+      name = "dir_glob___dir_glob_3.0.1.tgz";
+      path = fetchurl {
+        name = "dir_glob___dir_glob_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
+      };
+    }
+    {
+      name = "doctrine___doctrine_2.1.0.tgz";
+      path = fetchurl {
+        name = "doctrine___doctrine_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
+        sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
+      };
+    }
+    {
+      name = "doctrine___doctrine_3.0.0.tgz";
+      path = fetchurl {
+        name = "doctrine___doctrine_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
+        sha1 = "addebead72a6574db783639dc87a121773973961";
+      };
+    }
+    {
+      name = "dom_helpers___dom_helpers_5.2.1.tgz";
+      path = fetchurl {
+        name = "dom_helpers___dom_helpers_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz";
+        sha1 = "d9400536b2bf8225ad98fe052e029451ac40e902";
+      };
+    }
+    {
+      name = "dom_serializer___dom_serializer_0.2.2.tgz";
+      path = fetchurl {
+        name = "dom_serializer___dom_serializer_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz";
+        sha1 = "1afb81f533717175d478655debc5e332d9f9bb51";
+      };
+    }
+    {
+      name = "domain_browser___domain_browser_1.2.0.tgz";
+      path = fetchurl {
+        name = "domain_browser___domain_browser_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz";
+        sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda";
+      };
+    }
+    {
+      name = "domelementtype___domelementtype_1.3.1.tgz";
+      path = fetchurl {
+        name = "domelementtype___domelementtype_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz";
+        sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f";
+      };
+    }
+    {
+      name = "domelementtype___domelementtype_2.2.0.tgz";
+      path = fetchurl {
+        name = "domelementtype___domelementtype_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz";
+        sha1 = "9a0b6c2782ed6a1c7323d42267183df9bd8b1d57";
+      };
+    }
+    {
+      name = "domhandler___domhandler_2.4.2.tgz";
+      path = fetchurl {
+        name = "domhandler___domhandler_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz";
+        sha1 = "8805097e933d65e85546f726d60f5eb88b44f803";
+      };
+    }
+    {
+      name = "domutils___domutils_1.7.0.tgz";
+      path = fetchurl {
+        name = "domutils___domutils_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz";
+        sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a";
+      };
+    }
+    {
+      name = "dot_prop___dot_prop_5.3.0.tgz";
+      path = fetchurl {
+        name = "dot_prop___dot_prop_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz";
+        sha1 = "90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88";
+      };
+    }
+    {
+      name = "duplexer2___duplexer2_0.1.4.tgz";
+      path = fetchurl {
+        name = "duplexer2___duplexer2_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz";
+        sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+      };
+    }
+    {
+      name = "duplexify___duplexify_3.7.1.tgz";
+      path = fetchurl {
+        name = "duplexify___duplexify_3.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
+        sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
+      };
+    }
+    {
+      name = "electron_to_chromium___electron_to_chromium_1.3.742.tgz";
+      path = fetchurl {
+        name = "electron_to_chromium___electron_to_chromium_1.3.742.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.742.tgz";
+        sha1 = "7223215acbbd3a5284962ebcb6df85d88b95f200";
+      };
+    }
+    {
+      name = "elliptic___elliptic_6.5.4.tgz";
+      path = fetchurl {
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_7.0.3.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_8.0.0.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_9.2.2.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_9.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz";
+        sha1 = "840c8803b0d8047f4ff0cf963176b32d4ef3ed72";
+      };
+    }
+    {
+      name = "emojis_list___emojis_list_3.0.0.tgz";
+      path = fetchurl {
+        name = "emojis_list___emojis_list_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz";
+        sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78";
+      };
+    }
+    {
+      name = "end_of_stream___end_of_stream_1.4.4.tgz";
+      path = fetchurl {
+        name = "end_of_stream___end_of_stream_1.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
+      };
+    }
+    {
+      name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+      path = fetchurl {
+        name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz";
+        sha1 = "2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec";
+      };
+    }
+    {
+      name = "enquirer___enquirer_2.3.6.tgz";
+      path = fetchurl {
+        name = "enquirer___enquirer_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+        sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+      };
+    }
+    {
+      name = "entities___entities_1.1.2.tgz";
+      path = fetchurl {
+        name = "entities___entities_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz";
+        sha1 = "bdfa735299664dfafd34529ed4f8522a275fea56";
+      };
+    }
+    {
+      name = "entities___entities_2.2.0.tgz";
+      path = fetchurl {
+        name = "entities___entities_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz";
+        sha1 = "098dc90ebb83d8dffa089d55256b351d34c4da55";
+      };
+    }
+    {
+      name = "errno___errno_0.1.8.tgz";
+      path = fetchurl {
+        name = "errno___errno_0.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz";
+        sha1 = "8bb3e9c7d463be4976ff888f76b4809ebc2e811f";
+      };
+    }
+    {
+      name = "error_ex___error_ex_1.3.2.tgz";
+      path = fetchurl {
+        name = "error_ex___error_ex_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+      };
+    }
+    {
+      name = "es_abstract___es_abstract_1.18.3.tgz";
+      path = fetchurl {
+        name = "es_abstract___es_abstract_1.18.3.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz";
+        sha1 = "25c4c3380a27aa203c44b2b685bba94da31b63e0";
+      };
+    }
+    {
+      name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+      path = fetchurl {
+        name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
+      };
+    }
+    {
+      name = "escalade___escalade_3.1.1.tgz";
+      path = fetchurl {
+        name = "escalade___escalade_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
+        sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
+      };
+    }
+    {
+      name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+      path = fetchurl {
+        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    }
+    {
+      name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
+      path = fetchurl {
+        name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
+      };
+    }
+    {
+      name = "escodegen___escodegen_1.14.3.tgz";
+      path = fetchurl {
+        name = "escodegen___escodegen_1.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
+        sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
+      };
+    }
+    {
+      name = "escodegen___escodegen_1.9.1.tgz";
+      path = fetchurl {
+        name = "escodegen___escodegen_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz";
+        sha1 = "dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2";
+      };
+    }
+    {
+      name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
+      path = fetchurl {
+        name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz";
+        sha1 = "8a2eb38455dc5a312550193b319cdaeef042cd1e";
+      };
+    }
+    {
+      name = "eslint_config_airbnb___eslint_config_airbnb_18.2.1.tgz";
+      path = fetchurl {
+        name = "eslint_config_airbnb___eslint_config_airbnb_18.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz";
+        sha1 = "b7fe2b42f9f8173e825b73c8014b592e449c98d9";
+      };
+    }
+    {
+      name = "eslint_config_prettier___eslint_config_prettier_7.2.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_prettier___eslint_config_prettier_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz";
+        sha1 = "f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9";
+      };
+    }
+    {
+      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+      path = fetchurl {
+        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+        sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
+      };
+    }
+    {
+      name = "eslint_module_utils___eslint_module_utils_2.6.1.tgz";
+      path = fetchurl {
+        name = "eslint_module_utils___eslint_module_utils_2.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz";
+        sha1 = "b51be1e473dd0de1c5ea638e22429c2490ea8233";
+      };
+    }
+    {
+      name = "eslint_plugin_import___eslint_plugin_import_2.23.3.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_import___eslint_plugin_import_2.23.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.3.tgz";
+        sha1 = "8a1b073289fff03c4af0f04b6df956b7d463e191";
+      };
+    }
+    {
+      name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.4.1.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz";
+        sha1 = "a2d84caa49756942f42f1ffab9002436391718fd";
+      };
+    }
+    {
+      name = "eslint_plugin_prettier___eslint_plugin_prettier_3.4.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_prettier___eslint_plugin_prettier_3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz";
+        sha1 = "cdbad3bf1dbd2b177e9825737fe63b476a08f0c7";
+      };
+    }
+    {
+      name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_4.2.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz";
+        sha1 = "8c229c268d468956334c943bb45fc860280f5556";
+      };
+    }
+    {
+      name = "eslint_plugin_react___eslint_plugin_react_7.23.2.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react___eslint_plugin_react_7.23.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz";
+        sha1 = "2d2291b0f95c03728b55869f01102290e792d494";
+      };
+    }
+    {
+      name = "eslint_scope___eslint_scope_4.0.3.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
+        sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
+      };
+    }
+    {
+      name = "eslint_scope___eslint_scope_5.1.1.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
+      };
+    }
+    {
+      name = "eslint_utils___eslint_utils_2.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_utils___eslint_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
+      };
+    }
+    {
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+      path = fetchurl {
+        name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
+      };
+    }
+    {
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303";
+      };
+    }
+    {
+      name = "eslint___eslint_7.27.0.tgz";
+      path = fetchurl {
+        name = "eslint___eslint_7.27.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz";
+        sha1 = "665a1506d8f95655c9274d84bd78f7166b07e9c7";
+      };
+    }
+    {
+      name = "espree___espree_7.3.1.tgz";
+      path = fetchurl {
+        name = "espree___espree_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
+        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
+      };
+    }
+    {
+      name = "esprima___esprima_3.1.3.tgz";
+      path = fetchurl {
+        name = "esprima___esprima_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz";
+        sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633";
+      };
+    }
+    {
+      name = "esprima___esprima_4.0.1.tgz";
+      path = fetchurl {
+        name = "esprima___esprima_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+      };
+    }
+    {
+      name = "esquery___esquery_1.4.0.tgz";
+      path = fetchurl {
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
+      };
+    }
+    {
+      name = "esrecurse___esrecurse_4.3.0.tgz";
+      path = fetchurl {
+        name = "esrecurse___esrecurse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
+      };
+    }
+    {
+      name = "estraverse___estraverse_4.3.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
+        sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+      };
+    }
+    {
+      name = "estraverse___estraverse_5.2.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+      };
+    }
+    {
+      name = "esutils___esutils_2.0.3.tgz";
+      path = fetchurl {
+        name = "esutils___esutils_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
+        sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
+      };
+    }
+    {
+      name = "events___events_3.3.0.tgz";
+      path = fetchurl {
+        name = "events___events_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz";
+        sha1 = "31a95ad0a924e2d2c419a813aeb2c4e878ea7400";
+      };
+    }
+    {
+      name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+      path = fetchurl {
+        name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+        sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
+      };
+    }
+    {
+      name = "execall___execall_2.0.0.tgz";
+      path = fetchurl {
+        name = "execall___execall_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz";
+        sha1 = "16a06b5fe5099df7d00be5d9c06eecded1663b45";
+      };
+    }
+    {
+      name = "expand_brackets___expand_brackets_2.1.4.tgz";
+      path = fetchurl {
+        name = "expand_brackets___expand_brackets_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    }
+    {
+      name = "expand_tilde___expand_tilde_2.0.2.tgz";
+      path = fetchurl {
+        name = "expand_tilde___expand_tilde_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
+        sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+      };
+    }
+    {
+      name = "extend_shallow___extend_shallow_2.0.1.tgz";
+      path = fetchurl {
+        name = "extend_shallow___extend_shallow_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    }
+    {
+      name = "extend_shallow___extend_shallow_3.0.2.tgz";
+      path = fetchurl {
+        name = "extend_shallow___extend_shallow_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    }
+    {
+      name = "extend___extend_3.0.2.tgz";
+      path = fetchurl {
+        name = "extend___extend_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+      };
+    }
+    {
+      name = "extglob___extglob_2.0.4.tgz";
+      path = fetchurl {
+        name = "extglob___extglob_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+        sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+      };
+    }
+    {
+      name = "falafel___falafel_2.2.4.tgz";
+      path = fetchurl {
+        name = "falafel___falafel_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/falafel/-/falafel-2.2.4.tgz";
+        sha1 = "b5d86c060c2412a43166243cb1bce44d1abd2819";
+      };
+    }
+    {
+      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+      path = fetchurl {
+        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
+      };
+    }
+    {
+      name = "fast_diff___fast_diff_1.2.0.tgz";
+      path = fetchurl {
+        name = "fast_diff___fast_diff_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz";
+        sha1 = "73ee11982d86caaf7959828d519cfe927fac5f03";
+      };
+    }
+    {
+      name = "fast_glob___fast_glob_3.2.5.tgz";
+      path = fetchurl {
+        name = "fast_glob___fast_glob_3.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha1 = "7939af2a656de79a4f1901903ee8adcaa7cb9661";
+      };
+    }
+    {
+      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+      path = fetchurl {
+        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
+      };
+    }
+    {
+      name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+      path = fetchurl {
+        name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    }
+    {
+      name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+      path = fetchurl {
+        name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha1 = "9990f7d3a88cc5a9ffd1f1745745251700d497e2";
+      };
+    }
+    {
+      name = "fastq___fastq_1.11.0.tgz";
+      path = fetchurl {
+        name = "fastq___fastq_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz";
+        sha1 = "bb9fb955a07130a918eb63c1f5161cc32a5d0858";
+      };
+    }
+    {
+      name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
+      path = fetchurl {
+        name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz";
+        sha1 = "b4eee8148abb01dcf1d1ac34367d59e12fa61d6e";
+      };
+    }
+    {
+      name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+      path = fetchurl {
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
+      };
+    }
+    {
+      name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
+      path = fetchurl {
+        name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd";
+      };
+    }
+    {
+      name = "fill_range___fill_range_4.0.0.tgz";
+      path = fetchurl {
+        name = "fill_range___fill_range_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    }
+    {
+      name = "fill_range___fill_range_7.0.1.tgz";
+      path = fetchurl {
+        name = "fill_range___fill_range_7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
+        sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
+      };
+    }
+    {
+      name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
+      path = fetchurl {
+        name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+        sha1 = "8d0f94cd13fe43c6c7c261a0d86115ca918c05f7";
+      };
+    }
+    {
+      name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
+      path = fetchurl {
+        name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha1 = "89b33fad4a4670daa94f855f7fbe31d6d84fe880";
+      };
+    }
+    {
+      name = "find_up___find_up_2.1.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+      };
+    }
+    {
+      name = "find_up___find_up_3.0.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
+        sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
+      };
+    }
+    {
+      name = "find_up___find_up_4.1.0.tgz";
+      path = fetchurl {
+        name = "find_up___find_up_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
+        sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
+      };
+    }
+    {
+      name = "findup_sync___findup_sync_3.0.0.tgz";
+      path = fetchurl {
+        name = "findup_sync___findup_sync_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz";
+        sha1 = "17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1";
+      };
+    }
+    {
+      name = "flat_cache___flat_cache_3.0.4.tgz";
+      path = fetchurl {
+        name = "flat_cache___flat_cache_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
+      };
+    }
+    {
+      name = "flatpickr___flatpickr_4.6.9.tgz";
+      path = fetchurl {
+        name = "flatpickr___flatpickr_4.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.9.tgz";
+        sha1 = "9a13383e8a6814bda5d232eae3fcdccb97dc1499";
+      };
+    }
+    {
+      name = "flatted___flatted_3.1.1.tgz";
+      path = fetchurl {
+        name = "flatted___flatted_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
+        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
+      };
+    }
+    {
+      name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+      path = fetchurl {
+        name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
+        sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
+      };
+    }
+    {
+      name = "for_in___for_in_1.0.2.tgz";
+      path = fetchurl {
+        name = "for_in___for_in_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    }
+    {
+      name = "foreach___foreach_2.0.5.tgz";
+      path = fetchurl {
+        name = "foreach___foreach_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz";
+        sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
+      };
+    }
+    {
+      name = "fragment_cache___fragment_cache_0.2.1.tgz";
+      path = fetchurl {
+        name = "fragment_cache___fragment_cache_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    }
+    {
+      name = "from2___from2_2.3.0.tgz";
+      path = fetchurl {
+        name = "from2___from2_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+        sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+      };
+    }
+    {
+      name = "fs_extra___fs_extra_9.1.0.tgz";
+      path = fetchurl {
+        name = "fs_extra___fs_extra_9.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz";
+        sha1 = "5954460c764a8da2094ba3554bf839e6b9a7c86d";
+      };
+    }
+    {
+      name = "fs_minipass___fs_minipass_2.1.0.tgz";
+      path = fetchurl {
+        name = "fs_minipass___fs_minipass_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz";
+        sha1 = "7f5036fdbf12c63c169190cbe4199c852271f9fb";
+      };
+    }
+    {
+      name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+      path = fetchurl {
+        name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+        sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+      };
+    }
+    {
+      name = "fs.realpath___fs.realpath_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs.realpath___fs.realpath_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    }
+    {
+      name = "fsevents___fsevents_1.2.13.tgz";
+      path = fetchurl {
+        name = "fsevents___fsevents_1.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz";
+        sha1 = "f325cb0455592428bcf11b383370ef70e3bfcc38";
+      };
+    }
+    {
+      name = "fsevents___fsevents_2.3.2.tgz";
+      path = fetchurl {
+        name = "fsevents___fsevents_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
+        sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
+      };
+    }
+    {
+      name = "function_bind___function_bind_1.1.1.tgz";
+      path = fetchurl {
+        name = "function_bind___function_bind_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+      };
+    }
+    {
+      name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+      path = fetchurl {
+        name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    }
+    {
+      name = "gensync___gensync_1.0.0_beta.2.tgz";
+      path = fetchurl {
+        name = "gensync___gensync_1.0.0_beta.2.tgz";
+        url  = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz";
+        sha1 = "32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0";
+      };
+    }
+    {
+      name = "get_caller_file___get_caller_file_2.0.5.tgz";
+      path = fetchurl {
+        name = "get_caller_file___get_caller_file_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
+      };
+    }
+    {
+      name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+      path = fetchurl {
+        name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
+      };
+    }
+    {
+      name = "get_stdin___get_stdin_8.0.0.tgz";
+      path = fetchurl {
+        name = "get_stdin___get_stdin_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz";
+        sha1 = "cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53";
+      };
+    }
+    {
+      name = "get_value___get_value_2.0.6.tgz";
+      path = fetchurl {
+        name = "get_value___get_value_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    }
+    {
+      name = "glob_parent___glob_parent_3.1.0.tgz";
+      path = fetchurl {
+        name = "glob_parent___glob_parent_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    }
+    {
+      name = "glob_parent___glob_parent_5.1.2.tgz";
+      path = fetchurl {
+        name = "glob_parent___glob_parent_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
+      };
+    }
+    {
+      name = "glob___glob_7.1.7.tgz";
+      path = fetchurl {
+        name = "glob___glob_7.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
+        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
+      };
+    }
+    {
+      name = "global_modules___global_modules_1.0.0.tgz";
+      path = fetchurl {
+        name = "global_modules___global_modules_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
+        sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
+      };
+    }
+    {
+      name = "global_modules___global_modules_2.0.0.tgz";
+      path = fetchurl {
+        name = "global_modules___global_modules_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
+        sha1 = "997605ad2345f27f51539bea26574421215c7780";
+      };
+    }
+    {
+      name = "global_prefix___global_prefix_1.0.2.tgz";
+      path = fetchurl {
+        name = "global_prefix___global_prefix_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
+        sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+      };
+    }
+    {
+      name = "global_prefix___global_prefix_3.0.0.tgz";
+      path = fetchurl {
+        name = "global_prefix___global_prefix_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz";
+        sha1 = "fc85f73064df69f50421f47f883fe5b913ba9b97";
+      };
+    }
+    {
+      name = "globals___globals_11.12.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_11.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
+        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
+      };
+    }
+    {
+      name = "globals___globals_12.4.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_12.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
+        sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
+      };
+    }
+    {
+      name = "globals___globals_13.9.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_13.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz";
+        sha1 = "4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb";
+      };
+    }
+    {
+      name = "globby___globby_11.0.3.tgz";
+      path = fetchurl {
+        name = "globby___globby_11.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz";
+        sha1 = "9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb";
+      };
+    }
+    {
+      name = "globjoin___globjoin_0.1.4.tgz";
+      path = fetchurl {
+        name = "globjoin___globjoin_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz";
+        sha1 = "2f4494ac8919e3767c5cbb691e9f463324285d43";
+      };
+    }
+    {
+      name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
+      path = fetchurl {
+        name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz";
+        sha1 = "fe9dec5f3c557eead09ff868c65826be54d067b3";
+      };
+    }
+    {
+      name = "graceful_fs___graceful_fs_4.2.6.tgz";
+      path = fetchurl {
+        name = "graceful_fs___graceful_fs_4.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee";
+      };
+    }
+    {
+      name = "hard_rejection___hard_rejection_2.1.0.tgz";
+      path = fetchurl {
+        name = "hard_rejection___hard_rejection_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz";
+        sha1 = "1c6eda5c1685c63942766d79bb40ae773cecd883";
+      };
+    }
+    {
+      name = "has_bigints___has_bigints_1.0.1.tgz";
+      path = fetchurl {
+        name = "has_bigints___has_bigints_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz";
+        sha1 = "64fe6acb020673e3b78db035a5af69aa9d07b113";
+      };
+    }
+    {
+      name = "has_flag___has_flag_3.0.0.tgz";
+      path = fetchurl {
+        name = "has_flag___has_flag_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    }
+    {
+      name = "has_flag___has_flag_4.0.0.tgz";
+      path = fetchurl {
+        name = "has_flag___has_flag_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
+        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
+      };
+    }
+    {
+      name = "has_symbols___has_symbols_1.0.2.tgz";
+      path = fetchurl {
+        name = "has_symbols___has_symbols_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha1 = "165d3070c00309752a1236a479331e3ac56f1423";
+      };
+    }
+    {
+      name = "has_value___has_value_0.3.1.tgz";
+      path = fetchurl {
+        name = "has_value___has_value_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    }
+    {
+      name = "has_value___has_value_1.0.0.tgz";
+      path = fetchurl {
+        name = "has_value___has_value_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    }
+    {
+      name = "has_values___has_values_0.1.4.tgz";
+      path = fetchurl {
+        name = "has_values___has_values_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    }
+    {
+      name = "has_values___has_values_1.0.0.tgz";
+      path = fetchurl {
+        name = "has_values___has_values_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    }
+    {
+      name = "has___has_1.0.3.tgz";
+      path = fetchurl {
+        name = "has___has_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+      };
+    }
+    {
+      name = "hash_base___hash_base_3.1.0.tgz";
+      path = fetchurl {
+        name = "hash_base___hash_base_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz";
+        sha1 = "55c381d9e06e1d2997a883b4a3fddfe7f0d3af33";
+      };
+    }
+    {
+      name = "hash.js___hash.js_1.1.7.tgz";
+      path = fetchurl {
+        name = "hash.js___hash.js_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
+        sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
+      };
+    }
+    {
+      name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
+      path = fetchurl {
+        name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz";
+        sha1 = "4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e";
+      };
+    }
+    {
+      name = "history___history_4.10.1.tgz";
+      path = fetchurl {
+        name = "history___history_4.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz";
+        sha1 = "33371a65e3a83b267434e2b3f3b1b4c58aad4cf3";
+      };
+    }
+    {
+      name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+      path = fetchurl {
+        name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+      };
+    }
+    {
+      name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
+      path = fetchurl {
+        name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz";
+        sha1 = "ece0acaf71d62c2969c2ec59feff42a4b1a85b45";
+      };
+    }
+    {
+      name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
+      path = fetchurl {
+        name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
+        sha1 = "743298cef4e5af3e194161fbadcc2151d3a058e8";
+      };
+    }
+    {
+      name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_2.8.9.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
+        sha1 = "dffc0bf9a21c02209090f2aa69429e1414daf3f9";
+      };
+    }
+    {
+      name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz";
+        sha1 = "5e425507eede4fea846b7262f0838456c4209961";
+      };
+    }
+    {
+      name = "hsl_regex___hsl_regex_1.0.0.tgz";
+      path = fetchurl {
+        name = "hsl_regex___hsl_regex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz";
+        sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e";
+      };
+    }
+    {
+      name = "hsla_regex___hsla_regex_1.0.0.tgz";
+      path = fetchurl {
+        name = "hsla_regex___hsla_regex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz";
+        sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
+      };
+    }
+    {
+      name = "html_tags___html_tags_3.1.0.tgz";
+      path = fetchurl {
+        name = "html_tags___html_tags_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz";
+        sha1 = "7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140";
+      };
+    }
+    {
+      name = "htmlparser2___htmlparser2_3.10.1.tgz";
+      path = fetchurl {
+        name = "htmlparser2___htmlparser2_3.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz";
+        sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f";
+      };
+    }
+    {
+      name = "https_browserify___https_browserify_1.0.0.tgz";
+      path = fetchurl {
+        name = "https_browserify___https_browserify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
+        sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+      };
+    }
+    {
+      name = "iconv_lite___iconv_lite_0.2.11.tgz";
+      path = fetchurl {
+        name = "iconv_lite___iconv_lite_0.2.11.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz";
+        sha1 = "1ce60a3a57864a292d1321ff4609ca4bb965adc8";
+      };
+    }
+    {
+      name = "icss_utils___icss_utils_4.1.1.tgz";
+      path = fetchurl {
+        name = "icss_utils___icss_utils_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz";
+        sha1 = "21170b53789ee27447c2f47dd683081403f9a467";
+      };
+    }
+    {
+      name = "ieee754___ieee754_1.2.1.tgz";
+      path = fetchurl {
+        name = "ieee754___ieee754_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
+        sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
+      };
+    }
+    {
+      name = "iferr___iferr_0.1.5.tgz";
+      path = fetchurl {
+        name = "iferr___iferr_0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+        sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+      };
+    }
+    {
+      name = "iframe_resizer___iframe_resizer_4.3.2.tgz";
+      path = fetchurl {
+        name = "iframe_resizer___iframe_resizer_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/iframe-resizer/-/iframe-resizer-4.3.2.tgz";
+        sha1 = "42dd88345d18b9e377b6044dddb98c664ab0ce6b";
+      };
+    }
+    {
+      name = "ignore___ignore_4.0.6.tgz";
+      path = fetchurl {
+        name = "ignore___ignore_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
+        sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
+      };
+    }
+    {
+      name = "ignore___ignore_5.1.8.tgz";
+      path = fetchurl {
+        name = "ignore___ignore_5.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz";
+        sha1 = "f150a8b50a34289b33e22f5889abd4d8016f0e57";
+      };
+    }
+    {
+      name = "import_fresh___import_fresh_2.0.0.tgz";
+      path = fetchurl {
+        name = "import_fresh___import_fresh_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
+        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+      };
+    }
+    {
+      name = "import_fresh___import_fresh_3.3.0.tgz";
+      path = fetchurl {
+        name = "import_fresh___import_fresh_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
+      };
+    }
+    {
+      name = "import_lazy___import_lazy_4.0.0.tgz";
+      path = fetchurl {
+        name = "import_lazy___import_lazy_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz";
+        sha1 = "e8eb627483a0a43da3c03f3e35548be5cb0cc153";
+      };
+    }
+    {
+      name = "import_local___import_local_2.0.0.tgz";
+      path = fetchurl {
+        name = "import_local___import_local_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
+        sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
+      };
+    }
+    {
+      name = "imurmurhash___imurmurhash_0.1.4.tgz";
+      path = fetchurl {
+        name = "imurmurhash___imurmurhash_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    }
+    {
+      name = "indent_string___indent_string_4.0.0.tgz";
+      path = fetchurl {
+        name = "indent_string___indent_string_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz";
+        sha1 = "624f8f4497d619b2d9768531d58f4122854d7251";
+      };
+    }
+    {
+      name = "indexes_of___indexes_of_1.0.1.tgz";
+      path = fetchurl {
+        name = "indexes_of___indexes_of_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
+        sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+      };
+    }
+    {
+      name = "infer_owner___infer_owner_1.0.4.tgz";
+      path = fetchurl {
+        name = "infer_owner___infer_owner_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
+        sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
+      };
+    }
+    {
+      name = "inflight___inflight_1.0.6.tgz";
+      path = fetchurl {
+        name = "inflight___inflight_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.4.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.1.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.3.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    }
+    {
+      name = "ini___ini_1.3.8.tgz";
+      path = fetchurl {
+        name = "ini___ini_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
+        sha1 = "a29da425b48806f34767a4efce397269af28432c";
+      };
+    }
+    {
+      name = "internal_slot___internal_slot_1.0.3.tgz";
+      path = fetchurl {
+        name = "internal_slot___internal_slot_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz";
+        sha1 = "7347e307deeea2faac2ac6205d4bc7d34967f59c";
+      };
+    }
+    {
+      name = "interpret___interpret_1.4.0.tgz";
+      path = fetchurl {
+        name = "interpret___interpret_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz";
+        sha1 = "665ab8bc4da27a774a40584e812e3e0fa45b1a1e";
+      };
+    }
+    {
+      name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz";
+        sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6";
+      };
+    }
+    {
+      name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+      path = fetchurl {
+        name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    }
+    {
+      name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+      };
+    }
+    {
+      name = "is_alphabetical___is_alphabetical_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_alphabetical___is_alphabetical_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz";
+        sha1 = "9e7d6b94916be22153745d184c298cbf986a686d";
+      };
+    }
+    {
+      name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz";
+        sha1 = "7eb9a2431f855f6b1ef1a78e326df515696c4dbf";
+      };
+    }
+    {
+      name = "is_arrayish___is_arrayish_0.2.1.tgz";
+      path = fetchurl {
+        name = "is_arrayish___is_arrayish_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    }
+    {
+      name = "is_arrayish___is_arrayish_0.3.2.tgz";
+      path = fetchurl {
+        name = "is_arrayish___is_arrayish_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03";
+      };
+    }
+    {
+      name = "is_bigint___is_bigint_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_bigint___is_bigint_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz";
+        sha1 = "ffb381442503235ad245ea89e45b3dbff040ee5a";
+      };
+    }
+    {
+      name = "is_binary_path___is_binary_path_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_binary_path___is_binary_path_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    }
+    {
+      name = "is_binary_path___is_binary_path_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_binary_path___is_binary_path_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
+      };
+    }
+    {
+      name = "is_boolean_object___is_boolean_object_1.1.1.tgz";
+      path = fetchurl {
+        name = "is_boolean_object___is_boolean_object_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz";
+        sha1 = "3c0878f035cb821228d350d2e1e36719716a3de8";
+      };
+    }
+    {
+      name = "is_buffer___is_buffer_1.1.6.tgz";
+      path = fetchurl {
+        name = "is_buffer___is_buffer_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+      };
+    }
+    {
+      name = "is_buffer___is_buffer_2.0.5.tgz";
+      path = fetchurl {
+        name = "is_buffer___is_buffer_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz";
+        sha1 = "ebc252e400d22ff8d77fa09888821a24a658c191";
+      };
+    }
+    {
+      name = "is_callable___is_callable_1.2.3.tgz";
+      path = fetchurl {
+        name = "is_callable___is_callable_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz";
+        sha1 = "8b1e0500b73a1d76c70487636f368e519de8db8e";
+      };
+    }
+    {
+      name = "is_color_stop___is_color_stop_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_color_stop___is_color_stop_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz";
+        sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
+      };
+    }
+    {
+      name = "is_core_module___is_core_module_2.4.0.tgz";
+      path = fetchurl {
+        name = "is_core_module___is_core_module_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz";
+        sha1 = "8e9fc8e15027b011418026e98f0e6f4d86305cc1";
+      };
+    }
+    {
+      name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+      path = fetchurl {
+        name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    }
+    {
+      name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+      };
+    }
+    {
+      name = "is_date_object___is_date_object_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_date_object___is_date_object_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz";
+        sha1 = "550cfcc03afada05eea3dd30981c7b09551f73e5";
+      };
+    }
+    {
+      name = "is_decimal___is_decimal_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_decimal___is_decimal_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz";
+        sha1 = "65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5";
+      };
+    }
+    {
+      name = "is_descriptor___is_descriptor_0.1.6.tgz";
+      path = fetchurl {
+        name = "is_descriptor___is_descriptor_0.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+      };
+    }
+    {
+      name = "is_descriptor___is_descriptor_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_descriptor___is_descriptor_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+      };
+    }
+    {
+      name = "is_directory___is_directory_0.3.1.tgz";
+      path = fetchurl {
+        name = "is_directory___is_directory_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
+        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+      };
+    }
+    {
+      name = "is_extendable___is_extendable_0.1.1.tgz";
+      path = fetchurl {
+        name = "is_extendable___is_extendable_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    }
+    {
+      name = "is_extendable___is_extendable_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_extendable___is_extendable_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+      };
+    }
+    {
+      name = "is_extglob___is_extglob_2.1.1.tgz";
+      path = fetchurl {
+        name = "is_extglob___is_extglob_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+      };
+    }
+    {
+      name = "is_glob___is_glob_3.1.0.tgz";
+      path = fetchurl {
+        name = "is_glob___is_glob_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    }
+    {
+      name = "is_glob___is_glob_4.0.1.tgz";
+      path = fetchurl {
+        name = "is_glob___is_glob_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+      };
+    }
+    {
+      name = "is_hexadecimal___is_hexadecimal_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_hexadecimal___is_hexadecimal_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz";
+        sha1 = "cc35c97588da4bd49a8eedd6bc4082d44dcb23a7";
+      };
+    }
+    {
+      name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+      path = fetchurl {
+        name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
+        sha1 = "3de746c18dda2319241a53675908d8f766f11c24";
+      };
+    }
+    {
+      name = "is_number_object___is_number_object_1.0.5.tgz";
+      path = fetchurl {
+        name = "is_number_object___is_number_object_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz";
+        sha1 = "6edfaeed7950cff19afedce9fbfca9ee6dd289eb";
+      };
+    }
+    {
+      name = "is_number___is_number_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_number___is_number_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    }
+    {
+      name = "is_number___is_number_7.0.0.tgz";
+      path = fetchurl {
+        name = "is_number___is_number_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
+        sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
+      };
+    }
+    {
+      name = "is_obj___is_obj_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_obj___is_obj_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz";
+        sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982";
+      };
+    }
+    {
+      name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+      };
+    }
+    {
+      name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha1 = "45e42e37fccf1f40da8e5f76ee21515840c09287";
+      };
+    }
+    {
+      name = "is_plain_object___is_plain_object_2.0.4.tgz";
+      path = fetchurl {
+        name = "is_plain_object___is_plain_object_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+      };
+    }
+    {
+      name = "is_regex___is_regex_1.1.3.tgz";
+      path = fetchurl {
+        name = "is_regex___is_regex_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz";
+        sha1 = "d029f9aff6448b93ebbe3f33dac71511fdcbef9f";
+      };
+    }
+    {
+      name = "is_regexp___is_regexp_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_regexp___is_regexp_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz";
+        sha1 = "cd734a56864e23b956bf4e7c66c396a4c0b22c2d";
+      };
+    }
+    {
+      name = "is_resolvable___is_resolvable_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_resolvable___is_resolvable_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
+        sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
+      };
+    }
+    {
+      name = "is_string___is_string_1.0.6.tgz";
+      path = fetchurl {
+        name = "is_string___is_string_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz";
+        sha1 = "3fe5d5992fb0d93404f32584d4b0179a71b54a5f";
+      };
+    }
+    {
+      name = "is_symbol___is_symbol_1.0.4.tgz";
+      path = fetchurl {
+        name = "is_symbol___is_symbol_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz";
+        sha1 = "a6dac93b635b063ca6872236de88910a57af139c";
+      };
+    }
+    {
+      name = "is_typedarray___is_typedarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_typedarray___is_typedarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    }
+    {
+      name = "is_unicode_supported___is_unicode_supported_0.1.0.tgz";
+      path = fetchurl {
+        name = "is_unicode_supported___is_unicode_supported_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz";
+        sha1 = "3f26c76a809593b52bfa2ecb5710ed2779b522a7";
+      };
+    }
+    {
+      name = "is_windows___is_windows_1.0.2.tgz";
+      path = fetchurl {
+        name = "is_windows___is_windows_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+      };
+    }
+    {
+      name = "is_wsl___is_wsl_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_wsl___is_wsl_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
+        sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+      };
+    }
+    {
+      name = "isarray___isarray_0.0.1.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    }
+    {
+      name = "isarray___isarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    }
+    {
+      name = "isarray___isarray_2.0.5.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz";
+        sha1 = "8af1e4c1221244cc62459faf38940d4e644a5723";
+      };
+    }
+    {
+      name = "isexe___isexe_2.0.0.tgz";
+      path = fetchurl {
+        name = "isexe___isexe_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    }
+    {
+      name = "isobject___isobject_2.1.0.tgz";
+      path = fetchurl {
+        name = "isobject___isobject_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    }
+    {
+      name = "isobject___isobject_3.0.1.tgz";
+      path = fetchurl {
+        name = "isobject___isobject_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    }
+    {
+      name = "jest_worker___jest_worker_26.6.2.tgz";
+      path = fetchurl {
+        name = "jest_worker___jest_worker_26.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz";
+        sha1 = "7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed";
+      };
+    }
+    {
+      name = "js_tokens___js_tokens_4.0.0.tgz";
+      path = fetchurl {
+        name = "js_tokens___js_tokens_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_3.14.1.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_3.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
+      };
+    }
+    {
+      name = "jsesc___jsesc_2.5.2.tgz";
+      path = fetchurl {
+        name = "jsesc___jsesc_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+        sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+      };
+    }
+    {
+      name = "jsesc___jsesc_0.5.0.tgz";
+      path = fetchurl {
+        name = "jsesc___jsesc_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
+        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+      };
+    }
+    {
+      name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+      path = fetchurl {
+        name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+      };
+    }
+    {
+      name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+      path = fetchurl {
+        name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+        sha1 = "7c47805a94319928e05777405dc12e1f7a4ee02d";
+      };
+    }
+    {
+      name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+      };
+    }
+    {
+      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+      };
+    }
+    {
+      name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+      path = fetchurl {
+        name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    }
+    {
+      name = "json5___json5_1.0.1.tgz";
+      path = fetchurl {
+        name = "json5___json5_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+      };
+    }
+    {
+      name = "json5___json5_2.2.0.tgz";
+      path = fetchurl {
+        name = "json5___json5_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz";
+        sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3";
+      };
+    }
+    {
+      name = "jsonfile___jsonfile_6.1.0.tgz";
+      path = fetchurl {
+        name = "jsonfile___jsonfile_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz";
+        sha1 = "bc55b2634793c679ec6403094eb13698a6ec0aae";
+      };
+    }
+    {
+      name = "jsx_ast_utils___jsx_ast_utils_3.2.0.tgz";
+      path = fetchurl {
+        name = "jsx_ast_utils___jsx_ast_utils_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz";
+        sha1 = "41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82";
+      };
+    }
+    {
+      name = "kind_of___kind_of_3.2.2.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    }
+    {
+      name = "kind_of___kind_of_4.0.0.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    }
+    {
+      name = "kind_of___kind_of_5.1.0.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+        sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+      };
+    }
+    {
+      name = "kind_of___kind_of_6.0.3.tgz";
+      path = fetchurl {
+        name = "kind_of___kind_of_6.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
+        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
+      };
+    }
+    {
+      name = "klona___klona_2.0.4.tgz";
+      path = fetchurl {
+        name = "klona___klona_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz";
+        sha1 = "7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0";
+      };
+    }
+    {
+      name = "known_css_properties___known_css_properties_0.21.0.tgz";
+      path = fetchurl {
+        name = "known_css_properties___known_css_properties_0.21.0.tgz";
+        url  = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.21.0.tgz";
+        sha1 = "15fbd0bbb83447f3ce09d8af247ed47c68ede80d";
+      };
+    }
+    {
+      name = "language_subtag_registry___language_subtag_registry_0.3.21.tgz";
+      path = fetchurl {
+        name = "language_subtag_registry___language_subtag_registry_0.3.21.tgz";
+        url  = "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz";
+        sha1 = "04ac218bea46f04cb039084602c6da9e788dd45a";
+      };
+    }
+    {
+      name = "language_tags___language_tags_1.0.5.tgz";
+      path = fetchurl {
+        name = "language_tags___language_tags_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz";
+        sha1 = "d321dbc4da30ba8bf3024e040fa5c14661f9193a";
+      };
+    }
+    {
+      name = "last_call_webpack_plugin___last_call_webpack_plugin_3.0.0.tgz";
+      path = fetchurl {
+        name = "last_call_webpack_plugin___last_call_webpack_plugin_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz";
+        sha1 = "9742df0e10e3cf46e5c0381c2de90d3a7a2d7555";
+      };
+    }
+    {
+      name = "levn___levn_0.4.1.tgz";
+      path = fetchurl {
+        name = "levn___levn_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+        sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
+      };
+    }
+    {
+      name = "levn___levn_0.3.0.tgz";
+      path = fetchurl {
+        name = "levn___levn_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+      };
+    }
+    {
+      name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
+      path = fetchurl {
+        name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+      };
+    }
+    {
+      name = "load_json_file___load_json_file_4.0.0.tgz";
+      path = fetchurl {
+        name = "load_json_file___load_json_file_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz";
+        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+      };
+    }
+    {
+      name = "loader_runner___loader_runner_2.4.0.tgz";
+      path = fetchurl {
+        name = "loader_runner___loader_runner_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz";
+        sha1 = "ed47066bfe534d7e84c4c7b9998c2a75607d9357";
+      };
+    }
+    {
+      name = "loader_utils___loader_utils_1.4.0.tgz";
+      path = fetchurl {
+        name = "loader_utils___loader_utils_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz";
+        sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613";
+      };
+    }
+    {
+      name = "loader_utils___loader_utils_2.0.0.tgz";
+      path = fetchurl {
+        name = "loader_utils___loader_utils_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
+      };
+    }
+    {
+      name = "locate_path___locate_path_2.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+      };
+    }
+    {
+      name = "locate_path___locate_path_3.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
+        sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
+      };
+    }
+    {
+      name = "locate_path___locate_path_5.0.0.tgz";
+      path = fetchurl {
+        name = "locate_path___locate_path_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
+        sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
+      };
+    }
+    {
+      name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    }
+    {
+      name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+      path = fetchurl {
+        name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+        sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+      };
+    }
+    {
+      name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+      path = fetchurl {
+        name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+        sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+      };
+    }
+    {
+      name = "lodash.merge___lodash.merge_4.6.2.tgz";
+      path = fetchurl {
+        name = "lodash.merge___lodash.merge_4.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz";
+        sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a";
+      };
+    }
+    {
+      name = "lodash.toarray___lodash.toarray_4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.toarray___lodash.toarray_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz";
+        sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
+      };
+    }
+    {
+      name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+      path = fetchurl {
+        name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
+        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
+      };
+    }
+    {
+      name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+      };
+    }
+    {
+      name = "lodash___lodash_4.17.21.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
+      };
+    }
+    {
+      name = "log_symbols___log_symbols_4.1.0.tgz";
+      path = fetchurl {
+        name = "log_symbols___log_symbols_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz";
+        sha1 = "3fbdbb95b4683ac9fc785111e792e558d4abd503";
+      };
+    }
+    {
+      name = "longest_streak___longest_streak_2.0.4.tgz";
+      path = fetchurl {
+        name = "longest_streak___longest_streak_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz";
+        sha1 = "b8599957da5b5dab64dee3fe316fa774597d90e4";
+      };
+    }
+    {
+      name = "loose_envify___loose_envify_1.4.0.tgz";
+      path = fetchurl {
+        name = "loose_envify___loose_envify_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+      };
+    }
+    {
+      name = "lru_cache___lru_cache_5.1.1.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
+        sha1 = "1da27e6710271947695daf6848e847f01d84b920";
+      };
+    }
+    {
+      name = "lru_cache___lru_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
+      };
+    }
+    {
+      name = "magic_string___magic_string_0.22.5.tgz";
+      path = fetchurl {
+        name = "magic_string___magic_string_0.22.5.tgz";
+        url  = "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz";
+        sha1 = "8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e";
+      };
+    }
+    {
+      name = "make_dir___make_dir_2.1.0.tgz";
+      path = fetchurl {
+        name = "make_dir___make_dir_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
+        sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
+      };
+    }
+    {
+      name = "make_dir___make_dir_3.1.0.tgz";
+      path = fetchurl {
+        name = "make_dir___make_dir_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
+        sha1 = "415e967046b3a7f1d185277d84aa58203726a13f";
+      };
+    }
+    {
+      name = "mamacro___mamacro_0.0.3.tgz";
+      path = fetchurl {
+        name = "mamacro___mamacro_0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
+        sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
+      };
+    }
+    {
+      name = "map_cache___map_cache_0.2.2.tgz";
+      path = fetchurl {
+        name = "map_cache___map_cache_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    }
+    {
+      name = "map_obj___map_obj_1.0.1.tgz";
+      path = fetchurl {
+        name = "map_obj___map_obj_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz";
+        sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+      };
+    }
+    {
+      name = "map_obj___map_obj_4.2.1.tgz";
+      path = fetchurl {
+        name = "map_obj___map_obj_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz";
+        sha1 = "e4ea399dbc979ae735c83c863dd31bdf364277b7";
+      };
+    }
+    {
+      name = "map_visit___map_visit_1.0.0.tgz";
+      path = fetchurl {
+        name = "map_visit___map_visit_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    }
+    {
+      name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
+      path = fetchurl {
+        name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz";
+        sha1 = "4ddadd67308e780cf16a47685878ee27b736a0a3";
+      };
+    }
+    {
+      name = "md5.js___md5.js_1.3.5.tgz";
+      path = fetchurl {
+        name = "md5.js___md5.js_1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz";
+        sha1 = "b5d07b8e3216e3e27cd728d72f70d1e6a342005f";
+      };
+    }
+    {
+      name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
+      path = fetchurl {
+        name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz";
+        sha1 = "d1ef2ca42bc377ecb0463a987910dae89bd9a28c";
+      };
+    }
+    {
+      name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+      path = fetchurl {
+        name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz";
+        sha1 = "b33f67ca820d69e6cc527a93d4039249b504bebe";
+      };
+    }
+    {
+      name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
+      path = fetchurl {
+        name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz";
+        sha1 = "b8cfe6a713e1091cb5b728fc48885a4767f8b97b";
+      };
+    }
+    {
+      name = "mdn_data___mdn_data_2.0.14.tgz";
+      path = fetchurl {
+        name = "mdn_data___mdn_data_2.0.14.tgz";
+        url  = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz";
+        sha1 = "7113fc4281917d63ce29b43446f701e68c25ba50";
+      };
+    }
+    {
+      name = "mdn_data___mdn_data_2.0.4.tgz";
+      path = fetchurl {
+        name = "mdn_data___mdn_data_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz";
+        sha1 = "699b3c38ac6f1d728091a64650b65d388502fd5b";
+      };
+    }
+    {
+      name = "memory_fs___memory_fs_0.4.1.tgz";
+      path = fetchurl {
+        name = "memory_fs___memory_fs_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
+        sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
+      };
+    }
+    {
+      name = "memory_fs___memory_fs_0.5.0.tgz";
+      path = fetchurl {
+        name = "memory_fs___memory_fs_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz";
+        sha1 = "324c01288b88652966d161db77838720845a8e3c";
+      };
+    }
+    {
+      name = "meow___meow_9.0.0.tgz";
+      path = fetchurl {
+        name = "meow___meow_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz";
+        sha1 = "cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364";
+      };
+    }
+    {
+      name = "merge_source_map___merge_source_map_1.0.4.tgz";
+      path = fetchurl {
+        name = "merge_source_map___merge_source_map_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz";
+        sha1 = "a5de46538dae84d4114cc5ea02b4772a6346701f";
+      };
+    }
+    {
+      name = "merge_stream___merge_stream_2.0.0.tgz";
+      path = fetchurl {
+        name = "merge_stream___merge_stream_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz";
+        sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60";
+      };
+    }
+    {
+      name = "merge2___merge2_1.4.1.tgz";
+      path = fetchurl {
+        name = "merge2___merge2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
+        sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
+      };
+    }
+    {
+      name = "micromark___micromark_2.11.4.tgz";
+      path = fetchurl {
+        name = "micromark___micromark_2.11.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz";
+        sha1 = "d13436138eea826383e822449c9a5c50ee44665a";
+      };
+    }
+    {
+      name = "micromatch___micromatch_3.1.10.tgz";
+      path = fetchurl {
+        name = "micromatch___micromatch_3.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+        sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+      };
+    }
+    {
+      name = "micromatch___micromatch_4.0.4.tgz";
+      path = fetchurl {
+        name = "micromatch___micromatch_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz";
+        sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9";
+      };
+    }
+    {
+      name = "miller_rabin___miller_rabin_4.0.1.tgz";
+      path = fetchurl {
+        name = "miller_rabin___miller_rabin_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
+        sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
+      };
+    }
+    {
+      name = "min_indent___min_indent_1.0.1.tgz";
+      path = fetchurl {
+        name = "min_indent___min_indent_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz";
+        sha1 = "a63f681673b30571fbe8bc25686ae746eefa9869";
+      };
+    }
+    {
+      name = "mini_create_react_context___mini_create_react_context_0.4.1.tgz";
+      path = fetchurl {
+        name = "mini_create_react_context___mini_create_react_context_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz";
+        sha1 = "072171561bfdc922da08a60c2197a497cc2d1d5e";
+      };
+    }
+    {
+      name = "mini_css_extract_plugin___mini_css_extract_plugin_0.8.2.tgz";
+      path = fetchurl {
+        name = "mini_css_extract_plugin___mini_css_extract_plugin_0.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz";
+        sha1 = "a875e169beb27c88af77dd962771c9eedc3da161";
+      };
+    }
+    {
+      name = "mini_svg_data_uri___mini_svg_data_uri_1.3.3.tgz";
+      path = fetchurl {
+        name = "mini_svg_data_uri___mini_svg_data_uri_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz";
+        sha1 = "91d2c09f45e056e5e1043340b8b37ba7b50f4fac";
+      };
+    }
+    {
+      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+      path = fetchurl {
+        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+      };
+    }
+    {
+      name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+      path = fetchurl {
+        name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+      };
+    }
+    {
+      name = "minimatch___minimatch_3.0.4.tgz";
+      path = fetchurl {
+        name = "minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+      };
+    }
+    {
+      name = "minimist_options___minimist_options_4.1.0.tgz";
+      path = fetchurl {
+        name = "minimist_options___minimist_options_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz";
+        sha1 = "c0655713c53a8a2ebd77ffa247d342c40f010619";
+      };
+    }
+    {
+      name = "minimist___minimist_1.2.5.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_1.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+      };
+    }
+    {
+      name = "minipass_collect___minipass_collect_1.0.2.tgz";
+      path = fetchurl {
+        name = "minipass_collect___minipass_collect_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz";
+        sha1 = "22b813bf745dc6edba2576b940022ad6edc8c617";
+      };
+    }
+    {
+      name = "minipass_flush___minipass_flush_1.0.5.tgz";
+      path = fetchurl {
+        name = "minipass_flush___minipass_flush_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz";
+        sha1 = "82e7135d7e89a50ffe64610a787953c4c4cbb373";
+      };
+    }
+    {
+      name = "minipass_pipeline___minipass_pipeline_1.2.4.tgz";
+      path = fetchurl {
+        name = "minipass_pipeline___minipass_pipeline_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
+        sha1 = "68472f79711c084657c067c5c6ad93cddea8214c";
+      };
+    }
+    {
+      name = "minipass___minipass_3.1.3.tgz";
+      path = fetchurl {
+        name = "minipass___minipass_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz";
+        sha1 = "7d42ff1f39635482e15f9cdb53184deebd5815fd";
+      };
+    }
+    {
+      name = "minizlib___minizlib_2.1.2.tgz";
+      path = fetchurl {
+        name = "minizlib___minizlib_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz";
+        sha1 = "e90d3466ba209b932451508a11ce3d3632145931";
+      };
+    }
+    {
+      name = "mississippi___mississippi_3.0.0.tgz";
+      path = fetchurl {
+        name = "mississippi___mississippi_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+        sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+      };
+    }
+    {
+      name = "mixin_deep___mixin_deep_1.3.2.tgz";
+      path = fetchurl {
+        name = "mixin_deep___mixin_deep_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_0.5.5.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_0.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_1.0.4.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
+      };
+    }
+    {
+      name = "modern_normalize___modern_normalize_1.1.0.tgz";
+      path = fetchurl {
+        name = "modern_normalize___modern_normalize_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.1.0.tgz";
+        sha1 = "da8e80140d9221426bd4f725c6e11283d34f90b7";
+      };
+    }
+    {
+      name = "moment___moment_2.29.1.tgz";
+      path = fetchurl {
+        name = "moment___moment_2.29.1.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz";
+        sha1 = "b2be769fa31940be9eeea6469c075e35006fa3d3";
+      };
+    }
+    {
+      name = "move_concurrently___move_concurrently_1.0.1.tgz";
+      path = fetchurl {
+        name = "move_concurrently___move_concurrently_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+        sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+      };
+    }
+    {
+      name = "ms___ms_2.0.0.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    }
+    {
+      name = "ms___ms_2.1.2.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+      };
+    }
+    {
+      name = "ms___ms_2.1.3.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
+        sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2";
+      };
+    }
+    {
+      name = "nan___nan_2.14.2.tgz";
+      path = fetchurl {
+        name = "nan___nan_2.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz";
+        sha1 = "f5376400695168f4cc694ac9393d0c9585eeea19";
+      };
+    }
+    {
+      name = "nanoid___nanoid_3.1.23.tgz";
+      path = fetchurl {
+        name = "nanoid___nanoid_3.1.23.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz";
+        sha1 = "f744086ce7c2bc47ee0a8472574d5c78e4183a81";
+      };
+    }
+    {
+      name = "nanomatch___nanomatch_1.2.13.tgz";
+      path = fetchurl {
+        name = "nanomatch___nanomatch_1.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+      };
+    }
+    {
+      name = "natural_compare___natural_compare_1.4.0.tgz";
+      path = fetchurl {
+        name = "natural_compare___natural_compare_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    }
+    {
+      name = "neo_async___neo_async_2.6.2.tgz";
+      path = fetchurl {
+        name = "neo_async___neo_async_2.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz";
+        sha1 = "b4aafb93e3aeb2d8174ca53cf163ab7d7308305f";
+      };
+    }
+    {
+      name = "nice_try___nice_try_1.0.5.tgz";
+      path = fetchurl {
+        name = "nice_try___nice_try_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
+        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+      };
+    }
+    {
+      name = "node_emoji___node_emoji_1.10.0.tgz";
+      path = fetchurl {
+        name = "node_emoji___node_emoji_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz";
+        sha1 = "8886abd25d9c7bb61802a658523d1f8d2a89b2da";
+      };
+    }
+    {
+      name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
+      path = fetchurl {
+        name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
+        sha1 = "b64f513d18338625f90346d27b0d235e631f6425";
+      };
+    }
+    {
+      name = "node_releases___node_releases_1.1.72.tgz";
+      path = fetchurl {
+        name = "node_releases___node_releases_1.1.72.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz";
+        sha1 = "14802ab6b1039a79a0c7d662b610a5bbd76eacbe";
+      };
+    }
+    {
+      name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+      path = fetchurl {
+        name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
+      };
+    }
+    {
+      name = "normalize_package_data___normalize_package_data_3.0.2.tgz";
+      path = fetchurl {
+        name = "normalize_package_data___normalize_package_data_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz";
+        sha1 = "cae5c410ae2434f9a6c1baa65d5bc3b9366c8699";
+      };
+    }
+    {
+      name = "normalize_path___normalize_path_2.1.1.tgz";
+      path = fetchurl {
+        name = "normalize_path___normalize_path_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    }
+    {
+      name = "normalize_path___normalize_path_3.0.0.tgz";
+      path = fetchurl {
+        name = "normalize_path___normalize_path_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
+      };
+    }
+    {
+      name = "normalize_range___normalize_range_0.1.2.tgz";
+      path = fetchurl {
+        name = "normalize_range___normalize_range_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
+        sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
+      };
+    }
+    {
+      name = "normalize_selector___normalize_selector_0.2.0.tgz";
+      path = fetchurl {
+        name = "normalize_selector___normalize_selector_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz";
+        sha1 = "d0b145eb691189c63a78d201dc4fdb1293ef0c03";
+      };
+    }
+    {
+      name = "normalize_url___normalize_url_1.9.1.tgz";
+      path = fetchurl {
+        name = "normalize_url___normalize_url_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz";
+        sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
+      };
+    }
+    {
+      name = "normalize_url___normalize_url_3.3.0.tgz";
+      path = fetchurl {
+        name = "normalize_url___normalize_url_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz";
+        sha1 = "b2e1c4dc4f7c6d57743df733a4f5978d18650559";
+      };
+    }
+    {
+      name = "nth_check___nth_check_1.0.2.tgz";
+      path = fetchurl {
+        name = "nth_check___nth_check_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz";
+        sha1 = "b2bd295c37e3dd58a3bf0700376663ba4d9cf05c";
+      };
+    }
+    {
+      name = "num2fraction___num2fraction_1.2.2.tgz";
+      path = fetchurl {
+        name = "num2fraction___num2fraction_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
+        sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
+      };
+    }
+    {
+      name = "object_assign___object_assign_4.1.1.tgz";
+      path = fetchurl {
+        name = "object_assign___object_assign_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    }
+    {
+      name = "object_copy___object_copy_0.1.0.tgz";
+      path = fetchurl {
+        name = "object_copy___object_copy_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    }
+    {
+      name = "object_hash___object_hash_2.2.0.tgz";
+      path = fetchurl {
+        name = "object_hash___object_hash_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz";
+        sha1 = "5ad518581eefc443bd763472b8ff2e9c2c0d54a5";
+      };
+    }
+    {
+      name = "object_inspect___object_inspect_1.10.3.tgz";
+      path = fetchurl {
+        name = "object_inspect___object_inspect_1.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz";
+        sha1 = "c2aa7d2d09f50c99375704f7a0adf24c5782d369";
+      };
+    }
+    {
+      name = "object_inspect___object_inspect_1.4.1.tgz";
+      path = fetchurl {
+        name = "object_inspect___object_inspect_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz";
+        sha1 = "37ffb10e71adaf3748d05f713b4c9452f402cbc4";
+      };
+    }
+    {
+      name = "object_keys___object_keys_1.1.1.tgz";
+      path = fetchurl {
+        name = "object_keys___object_keys_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
+        sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+      };
+    }
+    {
+      name = "object_visit___object_visit_1.0.1.tgz";
+      path = fetchurl {
+        name = "object_visit___object_visit_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    }
+    {
+      name = "object.assign___object.assign_4.1.2.tgz";
+      path = fetchurl {
+        name = "object.assign___object.assign_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
+        sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
+      };
+    }
+    {
+      name = "object.entries___object.entries_1.1.4.tgz";
+      path = fetchurl {
+        name = "object.entries___object.entries_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz";
+        sha1 = "43ccf9a50bc5fd5b649d45ab1a579f24e088cafd";
+      };
+    }
+    {
+      name = "object.fromentries___object.fromentries_2.0.4.tgz";
+      path = fetchurl {
+        name = "object.fromentries___object.fromentries_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz";
+        sha1 = "26e1ba5c4571c5c6f0890cef4473066456a120b8";
+      };
+    }
+    {
+      name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
+      path = fetchurl {
+        name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz";
+        sha1 = "1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7";
+      };
+    }
+    {
+      name = "object.pick___object.pick_1.3.0.tgz";
+      path = fetchurl {
+        name = "object.pick___object.pick_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    }
+    {
+      name = "object.values___object.values_1.1.4.tgz";
+      path = fetchurl {
+        name = "object.values___object.values_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz";
+        sha1 = "0d273762833e816b693a637d30073e7051535b30";
+      };
+    }
+    {
+      name = "once___once_1.4.0.tgz";
+      path = fetchurl {
+        name = "once___once_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    }
+    {
+      name = "optimist___optimist_0.3.7.tgz";
+      path = fetchurl {
+        name = "optimist___optimist_0.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz";
+        sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
+      };
+    }
+    {
+      name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.6.tgz";
+      path = fetchurl {
+        name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz";
+        sha1 = "abad0c6c11a632201794f75ddba3ce13e32ae80e";
+      };
+    }
+    {
+      name = "optionator___optionator_0.8.3.tgz";
+      path = fetchurl {
+        name = "optionator___optionator_0.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
+        sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
+      };
+    }
+    {
+      name = "optionator___optionator_0.9.1.tgz";
+      path = fetchurl {
+        name = "optionator___optionator_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+        sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+      };
+    }
+    {
+      name = "os_browserify___os_browserify_0.3.0.tgz";
+      path = fetchurl {
+        name = "os_browserify___os_browserify_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
+        sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+      };
+    }
+    {
+      name = "p_limit___p_limit_1.3.0.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
+        sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
+      };
+    }
+    {
+      name = "p_limit___p_limit_2.3.0.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz";
+        sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1";
+      };
+    }
+    {
+      name = "p_limit___p_limit_3.1.0.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz";
+        sha1 = "e1daccbe78d0d1388ca18c64fea38e3e57e3706b";
+      };
+    }
+    {
+      name = "p_locate___p_locate_2.0.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+      };
+    }
+    {
+      name = "p_locate___p_locate_3.0.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
+        sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
+      };
+    }
+    {
+      name = "p_locate___p_locate_4.1.0.tgz";
+      path = fetchurl {
+        name = "p_locate___p_locate_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
+        sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
+      };
+    }
+    {
+      name = "p_map___p_map_4.0.0.tgz";
+      path = fetchurl {
+        name = "p_map___p_map_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz";
+        sha1 = "bb2f95a5eda2ec168ec9274e06a747c3e2904d2b";
+      };
+    }
+    {
+      name = "p_try___p_try_1.0.0.tgz";
+      path = fetchurl {
+        name = "p_try___p_try_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+      };
+    }
+    {
+      name = "p_try___p_try_2.2.0.tgz";
+      path = fetchurl {
+        name = "p_try___p_try_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
+        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
+      };
+    }
+    {
+      name = "pako___pako_1.0.11.tgz";
+      path = fetchurl {
+        name = "pako___pako_1.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz";
+        sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf";
+      };
+    }
+    {
+      name = "parallel_transform___parallel_transform_1.2.0.tgz";
+      path = fetchurl {
+        name = "parallel_transform___parallel_transform_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz";
+        sha1 = "9049ca37d6cb2182c3b1d2c720be94d14a5814fc";
+      };
+    }
+    {
+      name = "parent_module___parent_module_1.0.1.tgz";
+      path = fetchurl {
+        name = "parent_module___parent_module_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
+        sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+      };
+    }
+    {
+      name = "parse_asn1___parse_asn1_5.1.6.tgz";
+      path = fetchurl {
+        name = "parse_asn1___parse_asn1_5.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz";
+        sha1 = "385080a3ec13cb62a62d39409cb3e88844cdaed4";
+      };
+    }
+    {
+      name = "parse_entities___parse_entities_2.0.0.tgz";
+      path = fetchurl {
+        name = "parse_entities___parse_entities_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz";
+        sha1 = "53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8";
+      };
+    }
+    {
+      name = "parse_json___parse_json_4.0.0.tgz";
+      path = fetchurl {
+        name = "parse_json___parse_json_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+      };
+    }
+    {
+      name = "parse_json___parse_json_5.2.0.tgz";
+      path = fetchurl {
+        name = "parse_json___parse_json_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz";
+        sha1 = "c76fc66dee54231c962b22bcc8a72cf2f99753cd";
+      };
+    }
+    {
+      name = "parse_passwd___parse_passwd_1.0.0.tgz";
+      path = fetchurl {
+        name = "parse_passwd___parse_passwd_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
+        sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+      };
+    }
+    {
+      name = "pascalcase___pascalcase_0.1.1.tgz";
+      path = fetchurl {
+        name = "pascalcase___pascalcase_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    }
+    {
+      name = "path_browserify___path_browserify_0.0.1.tgz";
+      path = fetchurl {
+        name = "path_browserify___path_browserify_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz";
+        sha1 = "e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a";
+      };
+    }
+    {
+      name = "path_dirname___path_dirname_1.0.2.tgz";
+      path = fetchurl {
+        name = "path_dirname___path_dirname_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    }
+    {
+      name = "path_exists___path_exists_3.0.0.tgz";
+      path = fetchurl {
+        name = "path_exists___path_exists_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    }
+    {
+      name = "path_exists___path_exists_4.0.0.tgz";
+      path = fetchurl {
+        name = "path_exists___path_exists_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
+        sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
+      };
+    }
+    {
+      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+      path = fetchurl {
+        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    }
+    {
+      name = "path_key___path_key_2.0.1.tgz";
+      path = fetchurl {
+        name = "path_key___path_key_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+      };
+    }
+    {
+      name = "path_key___path_key_3.1.1.tgz";
+      path = fetchurl {
+        name = "path_key___path_key_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+        sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+      };
+    }
+    {
+      name = "path_parse___path_parse_1.0.7.tgz";
+      path = fetchurl {
+        name = "path_parse___path_parse_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz";
+        sha1 = "fbc114b60ca42b30d9daf5858e4bd68bbedb6735";
+      };
+    }
+    {
+      name = "path_to_regexp___path_to_regexp_1.8.0.tgz";
+      path = fetchurl {
+        name = "path_to_regexp___path_to_regexp_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
+        sha1 = "887b3ba9d84393e87a0a0b9f4cb756198b53548a";
+      };
+    }
+    {
+      name = "path_type___path_type_3.0.0.tgz";
+      path = fetchurl {
+        name = "path_type___path_type_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz";
+        sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
+      };
+    }
+    {
+      name = "path_type___path_type_4.0.0.tgz";
+      path = fetchurl {
+        name = "path_type___path_type_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
+        sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
+      };
+    }
+    {
+      name = "pbkdf2___pbkdf2_3.1.2.tgz";
+      path = fetchurl {
+        name = "pbkdf2___pbkdf2_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz";
+        sha1 = "dd822aa0887580e52f1a039dc3eda108efae3075";
+      };
+    }
+
+    {
+      name = "picomatch___picomatch_2.3.0.tgz";
+      path = fetchurl {
+        name = "picomatch___picomatch_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz";
+        sha1 = "f1f061de8f6a4bf022892e2d128234fb98302972";
+      };
+    }
+    {
+      name = "pify___pify_3.0.0.tgz";
+      path = fetchurl {
+        name = "pify___pify_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    }
+    {
+      name = "pify___pify_4.0.1.tgz";
+      path = fetchurl {
+        name = "pify___pify_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
+        sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
+      };
+    }
+    {
+      name = "pkg_dir___pkg_dir_2.0.0.tgz";
+      path = fetchurl {
+        name = "pkg_dir___pkg_dir_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+      };
+    }
+    {
+      name = "pkg_dir___pkg_dir_3.0.0.tgz";
+      path = fetchurl {
+        name = "pkg_dir___pkg_dir_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
+        sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
+      };
+    }
+    {
+      name = "pkg_dir___pkg_dir_4.2.0.tgz";
+      path = fetchurl {
+        name = "pkg_dir___pkg_dir_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
+      };
+    }
+    {
+      name = "pkg_up___pkg_up_2.0.0.tgz";
+      path = fetchurl {
+        name = "pkg_up___pkg_up_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
+        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+      };
+    }
+    {
+      name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+      path = fetchurl {
+        name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    }
+    {
+      name = "postcss_calc___postcss_calc_7.0.5.tgz";
+      path = fetchurl {
+        name = "postcss_calc___postcss_calc_7.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz";
+        sha1 = "f8a6e99f12e619c2ebc23cf6c486fdc15860933e";
+      };
+    }
+    {
+      name = "postcss_colormin___postcss_colormin_4.0.3.tgz";
+      path = fetchurl {
+        name = "postcss_colormin___postcss_colormin_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz";
+        sha1 = "ae060bce93ed794ac71264f08132d550956bd381";
+      };
+    }
+    {
+      name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
+      path = fetchurl {
+        name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz";
+        sha1 = "ca3813ed4da0f812f9d43703584e449ebe189a7f";
+      };
+    }
+    {
+      name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz";
+        sha1 = "1fbabd2c246bff6aaad7997b2b0918f4d7af4033";
+      };
+    }
+    {
+      name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz";
+        sha1 = "3fe133cd3c82282e550fc9b239176a9207b784eb";
+      };
+    }
+    {
+      name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
+      path = fetchurl {
+        name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz";
+        sha1 = "c8c951e9f73ed9428019458444a02ad90bb9f765";
+      };
+    }
+    {
+      name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
+      path = fetchurl {
+        name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz";
+        sha1 = "652aef8a96726f029f5e3e00146ee7a4e755ff57";
+      };
+    }
+    {
+      name = "postcss_functions___postcss_functions_3.0.0.tgz";
+      path = fetchurl {
+        name = "postcss_functions___postcss_functions_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz";
+        sha1 = "0e94d01444700a481de20de4d55fb2640564250e";
+      };
+    }
+    {
+      name = "postcss_html___postcss_html_0.36.0.tgz";
+      path = fetchurl {
+        name = "postcss_html___postcss_html_0.36.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz";
+        sha1 = "b40913f94eaacc2453fd30a1327ad6ee1f88b204";
+      };
+    }
+    {
+      name = "postcss_js___postcss_js_2.0.3.tgz";
+      path = fetchurl {
+        name = "postcss_js___postcss_js_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz";
+        sha1 = "a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9";
+      };
+    }
+    {
+      name = "postcss_less___postcss_less_3.1.4.tgz";
+      path = fetchurl {
+        name = "postcss_less___postcss_less_3.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz";
+        sha1 = "369f58642b5928ef898ffbc1a6e93c958304c5ad";
+      };
+    }
+    {
+      name = "postcss_loader___postcss_loader_4.3.0.tgz";
+      path = fetchurl {
+        name = "postcss_loader___postcss_loader_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz";
+        sha1 = "2c4de9657cd4f07af5ab42bd60a673004da1b8cc";
+      };
+    }
+    {
+      name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
+      path = fetchurl {
+        name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz";
+        sha1 = "27b39c6f4d94f81b1a73b8f76351c609e5cef244";
+      };
+    }
+    {
+      name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz";
+      path = fetchurl {
+        name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz";
+        sha1 = "62f49a13e4a0ee04e7b98f42bb16062ca2549e24";
+      };
+    }
+    {
+      name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz";
+      path = fetchurl {
+        name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz";
+        sha1 = "362bea4ff5a1f98e4075a713c6cb25aefef9a650";
+      };
+    }
+    {
+      name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz";
+        sha1 = "cd4c344cce474343fac5d82206ab2cbcb8afd5a6";
+      };
+    }
+    {
+      name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz";
+        sha1 = "93b29c2ff5099c535eecda56c4aa6e665a663471";
+      };
+    }
+    {
+      name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz";
+        sha1 = "6b9cef030c11e35261f95f618c90036d680db874";
+      };
+    }
+    {
+      name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz";
+        sha1 = "e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8";
+      };
+    }
+    {
+      name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+      path = fetchurl {
+        name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
+        sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
+      };
+    }
+    {
+      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.3.tgz";
+      path = fetchurl {
+        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz";
+        sha1 = "bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0";
+      };
+    }
+    {
+      name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
+      path = fetchurl {
+        name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
+        sha1 = "385cae013cc7743f5a7d7602d1073a89eaae62ee";
+      };
+    }
+    {
+      name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
+      path = fetchurl {
+        name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
+        sha1 = "5b5000d6ebae29b4255301b4a3a54574423e7f10";
+      };
+    }
+    {
+      name = "postcss_nested___postcss_nested_4.2.3.tgz";
+      path = fetchurl {
+        name = "postcss_nested___postcss_nested_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz";
+        sha1 = "c6f255b0a720549776d220d00c4b70cd244136f6";
+      };
+    }
+    {
+      name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz";
+        sha1 = "8b35add3aee83a136b0471e0d59be58a50285dd4";
+      };
+    }
+    {
+      name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz";
+        sha1 = "0dbe04a4ce9063d4667ed2be476bb830c825935a";
+      };
+    }
+    {
+      name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz";
+        sha1 = "05f757f84f260437378368a91f8932d4b102917f";
+      };
+    }
+    {
+      name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz";
+        sha1 = "c4ebbc289f3991a028d44751cbdd11918b17910c";
+      };
+    }
+    {
+      name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz";
+        sha1 = "cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c";
+      };
+    }
+    {
+      name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz";
+        sha1 = "8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9";
+      };
+    }
+    {
+      name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz";
+        sha1 = "841bd48fdcf3019ad4baa7493a3d363b52ae1cfb";
+      };
+    }
+    {
+      name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz";
+        sha1 = "10e437f86bc7c7e58f7b9652ed878daaa95faae1";
+      };
+    }
+    {
+      name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz";
+        sha1 = "bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82";
+      };
+    }
+    {
+      name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz";
+      path = fetchurl {
+        name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz";
+        sha1 = "0cf75c820ec7d5c4d280189559e0b571ebac0eee";
+      };
+    }
+    {
+      name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz";
+      path = fetchurl {
+        name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz";
+        sha1 = "7fd42ebea5e9c814609639e2c2e84ae270ba48df";
+      };
+    }
+    {
+      name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz";
+        sha1 = "17efa405eacc6e07be3414a5ca2d1074681d4e29";
+      };
+    }
+    {
+      name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
+      path = fetchurl {
+        name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz";
+        sha1 = "29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e";
+      };
+    }
+    {
+      name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
+      path = fetchurl {
+        name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz";
+        sha1 = "a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96";
+      };
+    }
+    {
+      name = "postcss_sass___postcss_sass_0.4.4.tgz";
+      path = fetchurl {
+        name = "postcss_sass___postcss_sass_0.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz";
+        sha1 = "91f0f3447b45ce373227a98b61f8d8f0785285a3";
+      };
+    }
+    {
+      name = "postcss_scss___postcss_scss_2.1.1.tgz";
+      path = fetchurl {
+        name = "postcss_scss___postcss_scss_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz";
+        sha1 = "ec3a75fa29a55e016b90bf3269026c53c1d2b383";
+      };
+    }
+    {
+      name = "postcss_selector_parser___postcss_selector_parser_3.1.2.tgz";
+      path = fetchurl {
+        name = "postcss_selector_parser___postcss_selector_parser_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz";
+        sha1 = "b310f5c4c0fdaf76f94902bbaa30db6aa84f5270";
+      };
+    }
+    {
+      name = "postcss_selector_parser___postcss_selector_parser_6.0.6.tgz";
+      path = fetchurl {
+        name = "postcss_selector_parser___postcss_selector_parser_6.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz";
+        sha1 = "2c5bba8174ac2f6981ab631a42ab0ee54af332ea";
+      };
+    }
+    {
+      name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
+      path = fetchurl {
+        name = "postcss_svgo___postcss_svgo_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz";
+        sha1 = "343a2cdbac9505d416243d496f724f38894c941e";
+      };
+    }
+    {
+      name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
+      path = fetchurl {
+        name = "postcss_syntax___postcss_syntax_0.36.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz";
+        sha1 = "f08578c7d95834574e5593a82dfbfa8afae3b51c";
+      };
+    }
+    {
+      name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
+      path = fetchurl {
+        name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz";
+        sha1 = "9446911f3289bfd64c6d680f073c03b1f9ee4bac";
+      };
+    }
+    {
+      name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+      path = fetchurl {
+        name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
+        sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281";
+      };
+    }
+    {
+      name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz";
+      path = fetchurl {
+        name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
+        sha1 = "443f6a20ced6481a2bda4fa8532a6e55d789a2cb";
+      };
+    }
+    {
+      name = "postcss___postcss_6.0.23.tgz";
+      path = fetchurl {
+        name = "postcss___postcss_6.0.23.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz";
+        sha1 = "61c82cc328ac60e677645f979054eb98bc0e3324";
+      };
+    }
+    {
+      name = "postcss___postcss_7.0.35.tgz";
+      path = fetchurl {
+        name = "postcss___postcss_7.0.35.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz";
+        sha1 = "d2be00b998f7f211d8a276974079f2e92b970e24";
+      };
+    }
+    {
+      name = "postcss___postcss_8.3.0.tgz";
+      path = fetchurl {
+        name = "postcss___postcss_8.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz";
+        sha1 = "b1a713f6172ca427e3f05ef1303de8b65683325f";
+      };
+    }
+    {
+      name = "prelude_ls___prelude_ls_1.2.1.tgz";
+      path = fetchurl {
+        name = "prelude_ls___prelude_ls_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
+      };
+    }
+    {
+      name = "prelude_ls___prelude_ls_1.1.2.tgz";
+      path = fetchurl {
+        name = "prelude_ls___prelude_ls_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+      };
+    }
+    {
+      name = "prepend_http___prepend_http_1.0.4.tgz";
+      path = fetchurl {
+        name = "prepend_http___prepend_http_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
+        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+      };
+    }
+    {
+      name = "prettier_linter_helpers___prettier_linter_helpers_1.0.0.tgz";
+      path = fetchurl {
+        name = "prettier_linter_helpers___prettier_linter_helpers_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz";
+        sha1 = "d23d41fe1375646de2d0104d3454a3008802cf7b";
+      };
+    }
+    {
+      name = "pretty_hrtime___pretty_hrtime_1.0.3.tgz";
+      path = fetchurl {
+        name = "pretty_hrtime___pretty_hrtime_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz";
+        sha1 = "b7e3ea42435a4c9b2759d99e0f201eb195802ee1";
+      };
+    }
+    {
+      name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+      path = fetchurl {
+        name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+      };
+    }
+    {
+      name = "process___process_0.11.10.tgz";
+      path = fetchurl {
+        name = "process___process_0.11.10.tgz";
+        url  = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
+        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+      };
+    }
+    {
+      name = "progress___progress_2.0.3.tgz";
+      path = fetchurl {
+        name = "progress___progress_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
+        sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
+      };
+    }
+    {
+      name = "promise_inflight___promise_inflight_1.0.1.tgz";
+      path = fetchurl {
+        name = "promise_inflight___promise_inflight_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+      };
+    }
+    {
+      name = "prop_types___prop_types_15.7.2.tgz";
+      path = fetchurl {
+        name = "prop_types___prop_types_15.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
+        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+      };
+    }
+    {
+      name = "prr___prr_1.0.1.tgz";
+      path = fetchurl {
+        name = "prr___prr_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+        sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+      };
+    }
+    {
+      name = "public_encrypt___public_encrypt_4.0.3.tgz";
+      path = fetchurl {
+        name = "public_encrypt___public_encrypt_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz";
+        sha1 = "4fcc9d77a07e48ba7527e7cbe0de33d0701331e0";
+      };
+    }
+    {
+      name = "pump___pump_2.0.1.tgz";
+      path = fetchurl {
+        name = "pump___pump_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+        sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+      };
+    }
+    {
+      name = "pump___pump_3.0.0.tgz";
+      path = fetchurl {
+        name = "pump___pump_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+        sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+      };
+    }
+    {
+      name = "pumpify___pumpify_1.5.1.tgz";
+      path = fetchurl {
+        name = "pumpify___pumpify_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+        sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+      };
+    }
+    {
+      name = "punycode___punycode_1.3.2.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
+        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+      };
+    }
+    {
+      name = "punycode___punycode_1.4.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    }
+    {
+      name = "punycode___punycode_2.1.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+      };
+    }
+    {
+      name = "purgecss___purgecss_3.1.3.tgz";
+      path = fetchurl {
+        name = "purgecss___purgecss_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/purgecss/-/purgecss-3.1.3.tgz";
+        sha1 = "26987ec09d12eeadc318e22f6e5a9eb0be094f41";
+      };
+    }
+    {
+      name = "q___q_1.5.1.tgz";
+      path = fetchurl {
+        name = "q___q_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz";
+        sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+      };
+    }
+    {
+      name = "query_string___query_string_4.3.4.tgz";
+      path = fetchurl {
+        name = "query_string___query_string_4.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz";
+        sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb";
+      };
+    }
+    {
+      name = "querystring_es3___querystring_es3_0.2.1.tgz";
+      path = fetchurl {
+        name = "querystring_es3___querystring_es3_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
+        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+      };
+    }
+    {
+      name = "querystring___querystring_0.2.0.tgz";
+      path = fetchurl {
+        name = "querystring___querystring_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
+        sha1 = "b209849203bb25df820da756e747005878521620";
+      };
+    }
+    {
+      name = "queue_microtask___queue_microtask_1.2.3.tgz";
+      path = fetchurl {
+        name = "queue_microtask___queue_microtask_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha1 = "4929228bbc724dfac43e0efb058caf7b6cfb6243";
+      };
+    }
+    {
+      name = "quick_lru___quick_lru_4.0.1.tgz";
+      path = fetchurl {
+        name = "quick_lru___quick_lru_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz";
+        sha1 = "5b8878f113a58217848c6482026c73e1ba57727f";
+      };
+    }
+    {
+      name = "quote_stream___quote_stream_1.0.2.tgz";
+      path = fetchurl {
+        name = "quote_stream___quote_stream_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz";
+        sha1 = "84963f8c9c26b942e153feeb53aae74652b7e0b2";
+      };
+    }
+    {
+      name = "randombytes___randombytes_2.1.0.tgz";
+      path = fetchurl {
+        name = "randombytes___randombytes_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
+        sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
+      };
+    }
+    {
+      name = "randomfill___randomfill_1.0.4.tgz";
+      path = fetchurl {
+        name = "randomfill___randomfill_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
+        sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
+      };
+    }
+    {
+      name = "react_dom___react_dom_16.14.0.tgz";
+      path = fetchurl {
+        name = "react_dom___react_dom_16.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz";
+        sha1 = "7ad838ec29a777fb3c75c3a190f661cf92ab8b89";
+      };
+    }
+    {
+      name = "react_flatpickr___react_flatpickr_3.10.7.tgz";
+      path = fetchurl {
+        name = "react_flatpickr___react_flatpickr_3.10.7.tgz";
+        url  = "https://registry.yarnpkg.com/react-flatpickr/-/react-flatpickr-3.10.7.tgz";
+        sha1 = "bca6da2a1ccf23bb884881e2a1723073f0bfb391";
+      };
+    }
+    {
+      name = "react_flip_move___react_flip_move_3.0.4.tgz";
+      path = fetchurl {
+        name = "react_flip_move___react_flip_move_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/react-flip-move/-/react-flip-move-3.0.4.tgz";
+        sha1 = "261f66101fbc305f9b7b28959c5cf8236413ca74";
+      };
+    }
+    {
+      name = "react_is___react_is_16.13.1.tgz";
+      path = fetchurl {
+        name = "react_is___react_is_16.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
+        sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
+      };
+    }
+    {
+      name = "react_router_dom___react_router_dom_5.2.0.tgz";
+      path = fetchurl {
+        name = "react_router_dom___react_router_dom_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz";
+        sha1 = "9e65a4d0c45e13289e66c7b17c7e175d0ea15662";
+      };
+    }
+    {
+      name = "react_router___react_router_5.2.0.tgz";
+      path = fetchurl {
+        name = "react_router___react_router_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz";
+        sha1 = "424e75641ca8747fbf76e5ecca69781aa37ea293";
+      };
+    }
+    {
+      name = "react_transition_group___react_transition_group_4.4.2.tgz";
+      path = fetchurl {
+        name = "react_transition_group___react_transition_group_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz";
+        sha1 = "8b59a56f09ced7b55cbd53c36768b922890d5470";
+      };
+    }
+    {
+      name = "react___react_16.14.0.tgz";
+      path = fetchurl {
+        name = "react___react_16.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz";
+        sha1 = "94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d";
+      };
+    }
+    {
+      name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
+      path = fetchurl {
+        name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz";
+        sha1 = "3ed496685dba0f8fe118d0691dc51f4a1ff96f07";
+      };
+    }
+    {
+      name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
+      path = fetchurl {
+        name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+        sha1 = "f3a6135758459733ae2b95638056e1854e7ef507";
+      };
+    }
+    {
+      name = "read_pkg___read_pkg_3.0.0.tgz";
+      path = fetchurl {
+        name = "read_pkg___read_pkg_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz";
+        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+      };
+    }
+    {
+      name = "read_pkg___read_pkg_5.2.0.tgz";
+      path = fetchurl {
+        name = "read_pkg___read_pkg_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz";
+        sha1 = "7bf295438ca5a33e56cd30e053b34ee7250c93cc";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_2.3.7.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_2.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_3.6.0.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
+      };
+    }
+    {
+      name = "readdirp___readdirp_2.2.1.tgz";
+      path = fetchurl {
+        name = "readdirp___readdirp_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+        sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+      };
+    }
+    {
+      name = "readdirp___readdirp_3.5.0.tgz";
+      path = fetchurl {
+        name = "readdirp___readdirp_3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz";
+        sha1 = "9ba74c019b15d365278d2e91bb8c48d7b4d42c9e";
+      };
+    }
+    {
+      name = "redent___redent_3.0.0.tgz";
+      path = fetchurl {
+        name = "redent___redent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz";
+        sha1 = "e557b7998316bb53c9f1f56fa626352c6963059f";
+      };
+    }
+    {
+      name = "reduce_css_calc___reduce_css_calc_2.1.8.tgz";
+      path = fetchurl {
+        name = "reduce_css_calc___reduce_css_calc_2.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz";
+        sha1 = "7ef8761a28d614980dc0c982f772c93f7a99de03";
+      };
+    }
+    {
+      name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz";
+      path = fetchurl {
+        name = "regenerate_unicode_properties___regenerate_unicode_properties_8.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+        sha1 = "e5de7111d655e7ba60c057dbe9ff37c87e65cdec";
+      };
+    }
+    {
+      name = "regenerate___regenerate_1.4.2.tgz";
+      path = fetchurl {
+        name = "regenerate___regenerate_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz";
+        sha1 = "b9346d8827e8f5a32f7ba29637d398b69014848a";
+      };
+    }
+    {
+      name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz";
+      path = fetchurl {
+        name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz";
+        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha1 = "cac2dacc8a1ea675feaabaeb8ae833898ae46f55";
+      };
+    }
+    {
+      name = "regenerator_transform___regenerator_transform_0.14.5.tgz";
+      path = fetchurl {
+        name = "regenerator_transform___regenerator_transform_0.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha1 = "c98da154683671c9c4dcb16ece736517e1b7feb4";
+      };
+    }
+    {
+      name = "regex_not___regex_not_1.0.2.tgz";
+      path = fetchurl {
+        name = "regex_not___regex_not_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+        sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+      };
+    }
+    {
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
+      path = fetchurl {
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz";
+        sha1 = "7ef352ae8d159e758c0eadca6f8fcb4eef07be26";
+      };
+    }
+    {
+      name = "regexpp___regexpp_3.1.0.tgz";
+      path = fetchurl {
+        name = "regexpp___regexpp_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+        sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
+      };
+    }
+    {
+      name = "regexpu_core___regexpu_core_4.7.1.tgz";
+      path = fetchurl {
+        name = "regexpu_core___regexpu_core_4.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz";
+        sha1 = "2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6";
+      };
+    }
+    {
+      name = "regjsgen___regjsgen_0.5.2.tgz";
+      path = fetchurl {
+        name = "regjsgen___regjsgen_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha1 = "92ff295fb1deecbf6ecdab2543d207e91aa33733";
+      };
+    }
+    {
+      name = "regjsparser___regjsparser_0.6.9.tgz";
+      path = fetchurl {
+        name = "regjsparser___regjsparser_0.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz";
+        sha1 = "b489eef7c9a2ce43727627011429cf833a7183e6";
+      };
+    }
+    {
+      name = "remark_parse___remark_parse_9.0.0.tgz";
+      path = fetchurl {
+        name = "remark_parse___remark_parse_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz";
+        sha1 = "4d20a299665880e4f4af5d90b7c7b8a935853640";
+      };
+    }
+    {
+      name = "remark_stringify___remark_stringify_9.0.1.tgz";
+      path = fetchurl {
+        name = "remark_stringify___remark_stringify_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz";
+        sha1 = "576d06e910548b0a7191a71f27b33f1218862894";
+      };
+    }
+    {
+      name = "remark___remark_13.0.0.tgz";
+      path = fetchurl {
+        name = "remark___remark_13.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz";
+        sha1 = "d15d9bf71a402f40287ebe36067b66d54868e425";
+      };
+    }
+    {
+      name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+      path = fetchurl {
+        name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    }
+    {
+      name = "repeat_element___repeat_element_1.1.4.tgz";
+      path = fetchurl {
+        name = "repeat_element___repeat_element_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz";
+        sha1 = "be681520847ab58c7568ac75fbfad28ed42d39e9";
+      };
+    }
+    {
+      name = "repeat_string___repeat_string_1.6.1.tgz";
+      path = fetchurl {
+        name = "repeat_string___repeat_string_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    }
+    {
+      name = "require_directory___require_directory_2.1.1.tgz";
+      path = fetchurl {
+        name = "require_directory___require_directory_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    }
+    {
+      name = "require_from_string___require_from_string_2.0.2.tgz";
+      path = fetchurl {
+        name = "require_from_string___require_from_string_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
+      };
+    }
+    {
+      name = "require_main_filename___require_main_filename_2.0.0.tgz";
+      path = fetchurl {
+        name = "require_main_filename___require_main_filename_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
+      };
+    }
+    {
+      name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
+        sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+      };
+    }
+    {
+      name = "resolve_dir___resolve_dir_1.0.1.tgz";
+      path = fetchurl {
+        name = "resolve_dir___resolve_dir_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
+        sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+      };
+    }
+    {
+      name = "resolve_from___resolve_from_3.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_from___resolve_from_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
+        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+      };
+    }
+    {
+      name = "resolve_from___resolve_from_4.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_from___resolve_from_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+      };
+    }
+    {
+      name = "resolve_from___resolve_from_5.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_from___resolve_from_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz";
+        sha1 = "c35225843df8f776df21c57557bc087e9dfdfc69";
+      };
+    }
+    {
+      name = "resolve_pathname___resolve_pathname_3.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_pathname___resolve_pathname_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz";
+        sha1 = "99d02224d3cf263689becbb393bc560313025dcd";
+      };
+    }
+    {
+      name = "resolve_url___resolve_url_0.2.1.tgz";
+      path = fetchurl {
+        name = "resolve_url___resolve_url_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    }
+    {
+      name = "resolve___resolve_1.20.0.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz";
+        sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975";
+      };
+    }
+    {
+      name = "resolve___resolve_2.0.0_next.3.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_2.0.0_next.3.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz";
+        sha1 = "d41016293d4a8586a39ca5d9b5f15cbea1f55e46";
+      };
+    }
+    {
+      name = "ret___ret_0.1.15.tgz";
+      path = fetchurl {
+        name = "ret___ret_0.1.15.tgz";
+        url  = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+        sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+      };
+    }
+    {
+      name = "reusify___reusify_1.0.4.tgz";
+      path = fetchurl {
+        name = "reusify___reusify_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
+        sha1 = "90da382b1e126efc02146e90845a88db12925d76";
+      };
+    }
+    {
+      name = "rgb_regex___rgb_regex_1.0.1.tgz";
+      path = fetchurl {
+        name = "rgb_regex___rgb_regex_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz";
+        sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1";
+      };
+    }
+    {
+      name = "rgba_regex___rgba_regex_1.0.0.tgz";
+      path = fetchurl {
+        name = "rgba_regex___rgba_regex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz";
+        sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
+      };
+    }
+    {
+      name = "rimraf___rimraf_2.7.1.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
+        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+      };
+    }
+    {
+      name = "rimraf___rimraf_3.0.2.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
+        sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
+      };
+    }
+    {
+      name = "ripemd160___ripemd160_2.0.2.tgz";
+      path = fetchurl {
+        name = "ripemd160___ripemd160_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz";
+        sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c";
+      };
+    }
+    {
+      name = "run_parallel___run_parallel_1.2.0.tgz";
+      path = fetchurl {
+        name = "run_parallel___run_parallel_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha1 = "66d1368da7bdf921eb9d95bd1a9229e7f21a43ee";
+      };
+    }
+    {
+      name = "run_queue___run_queue_1.0.3.tgz";
+      path = fetchurl {
+        name = "run_queue___run_queue_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+        sha1 = "e848396f057d223f24386924618e25694161ec47";
+      };
+    }
+    {
+      name = "rw___rw_1.3.3.tgz";
+      path = fetchurl {
+        name = "rw___rw_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz";
+        sha1 = "3f862dfa91ab766b14885ef4d01124bfda074fb4";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.2.1.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.1.2.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+      };
+    }
+    {
+      name = "safe_regex___safe_regex_1.1.0.tgz";
+      path = fetchurl {
+        name = "safe_regex___safe_regex_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    }
+    {
+      name = "safer_buffer___safer_buffer_2.1.2.tgz";
+      path = fetchurl {
+        name = "safer_buffer___safer_buffer_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+      };
+    }
+    {
+      name = "sax___sax_1.2.4.tgz";
+      path = fetchurl {
+        name = "sax___sax_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+        sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+      };
+    }
+    {
+      name = "scheduler___scheduler_0.19.1.tgz";
+      path = fetchurl {
+        name = "scheduler___scheduler_0.19.1.tgz";
+        url  = "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz";
+        sha1 = "4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196";
+      };
+    }
+    {
+      name = "schema_utils___schema_utils_1.0.0.tgz";
+      path = fetchurl {
+        name = "schema_utils___schema_utils_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz";
+        sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770";
+      };
+    }
+    {
+      name = "schema_utils___schema_utils_2.7.1.tgz";
+      path = fetchurl {
+        name = "schema_utils___schema_utils_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha1 = "1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7";
+      };
+    }
+    {
+      name = "schema_utils___schema_utils_3.0.0.tgz";
+      path = fetchurl {
+        name = "schema_utils___schema_utils_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz";
+        sha1 = "67502f6aa2b66a2d4032b4279a2944978a0913ef";
+      };
+    }
+    {
+      name = "semver___semver_5.7.1.tgz";
+      path = fetchurl {
+        name = "semver___semver_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+      };
+    }
+    {
+      name = "semver___semver_7.0.0.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz";
+        sha1 = "5f3ca35761e47e05b206c6daff2cf814f0316b8e";
+      };
+    }
+    {
+      name = "semver___semver_6.3.0.tgz";
+      path = fetchurl {
+        name = "semver___semver_6.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+        sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
+      };
+    }
+    {
+      name = "semver___semver_7.3.5.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
+      };
+    }
+    {
+      name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+      path = fetchurl {
+        name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha1 = "b525e1238489a5ecfc42afacc3fe99e666f4b1aa";
+      };
+    }
+    {
+      name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
+      path = fetchurl {
+        name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha1 = "7886ec848049a462467a97d3d918ebb2aaf934f4";
+      };
+    }
+    {
+      name = "set_blocking___set_blocking_2.0.0.tgz";
+      path = fetchurl {
+        name = "set_blocking___set_blocking_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    }
+    {
+      name = "set_value___set_value_2.0.1.tgz";
+      path = fetchurl {
+        name = "set_value___set_value_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
+        sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
+      };
+    }
+    {
+      name = "setimmediate___setimmediate_1.0.5.tgz";
+      path = fetchurl {
+        name = "setimmediate___setimmediate_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
+        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+      };
+    }
+    {
+      name = "sha.js___sha.js_2.4.11.tgz";
+      path = fetchurl {
+        name = "sha.js___sha.js_2.4.11.tgz";
+        url  = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz";
+        sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7";
+      };
+    }
+    {
+      name = "shallow_copy___shallow_copy_0.0.1.tgz";
+      path = fetchurl {
+        name = "shallow_copy___shallow_copy_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz";
+        sha1 = "415f42702d73d810330292cc5ee86eae1a11a170";
+      };
+    }
+    {
+      name = "shapefile___shapefile_0.3.1.tgz";
+      path = fetchurl {
+        name = "shapefile___shapefile_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/shapefile/-/shapefile-0.3.1.tgz";
+        sha1 = "9bb9a429bd6086a0cfb03962d14cfdf420ffba12";
+      };
+    }
+    {
+      name = "shebang_command___shebang_command_1.2.0.tgz";
+      path = fetchurl {
+        name = "shebang_command___shebang_command_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    }
+    {
+      name = "shebang_command___shebang_command_2.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_command___shebang_command_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+      };
+    }
+    {
+      name = "shebang_regex___shebang_regex_1.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_regex___shebang_regex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+      };
+    }
+    {
+      name = "shebang_regex___shebang_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_regex___shebang_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+      };
+    }
+    {
+      name = "side_channel___side_channel_1.0.4.tgz";
+      path = fetchurl {
+        name = "side_channel___side_channel_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz";
+        sha1 = "efce5c8fdc104ee751b25c58d4290011fa5ea2cf";
+      };
+    }
+    {
+      name = "signal_exit___signal_exit_3.0.3.tgz";
+      path = fetchurl {
+        name = "signal_exit___signal_exit_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
+      };
+    }
+    {
+      name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+      path = fetchurl {
+        name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    }
+    {
+      name = "slash___slash_3.0.0.tgz";
+      path = fetchurl {
+        name = "slash___slash_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz";
+        sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634";
+      };
+    }
+    {
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
+      path = fetchurl {
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
+      };
+    }
+    {
+      name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+      path = fetchurl {
+        name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+      };
+    }
+    {
+      name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+      path = fetchurl {
+        name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+      };
+    }
+    {
+      name = "snapdragon___snapdragon_0.8.2.tgz";
+      path = fetchurl {
+        name = "snapdragon___snapdragon_0.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+      };
+    }
+    {
+      name = "sort_keys___sort_keys_1.1.2.tgz";
+      path = fetchurl {
+        name = "sort_keys___sort_keys_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz";
+        sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
+      };
+    }
+    {
+      name = "source_list_map___source_list_map_2.0.1.tgz";
+      path = fetchurl {
+        name = "source_list_map___source_list_map_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz";
+        sha1 = "3993bd873bfc48479cca9ea3a547835c7c154b34";
+      };
+    }
+    {
+      name = "source_map_js___source_map_js_0.6.2.tgz";
+      path = fetchurl {
+        name = "source_map_js___source_map_js_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz";
+        sha1 = "0bb5de631b41cfbda6cfba8bd05a80efdfd2385e";
+      };
+    }
+    {
+      name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+      path = fetchurl {
+        name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
+      };
+    }
+    {
+      name = "source_map_support___source_map_support_0.5.19.tgz";
+      path = fetchurl {
+        name = "source_map_support___source_map_support_0.5.19.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+      };
+    }
+    {
+      name = "source_map_url___source_map_url_0.4.1.tgz";
+      path = fetchurl {
+        name = "source_map_url___source_map_url_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz";
+        sha1 = "0af66605a745a5a2f91cf1bbf8a7afbc283dec56";
+      };
+    }
+    {
+      name = "source_map___source_map_0.5.7.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    }
+    {
+      name = "source_map___source_map_0.6.1.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+      };
+    }
+    {
+      name = "source_map___source_map_0.7.3.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
+        sha1 = "5302f8169031735226544092e64981f751750383";
+      };
+    }
+    {
+      name = "spdx_correct___spdx_correct_3.1.1.tgz";
+      path = fetchurl {
+        name = "spdx_correct___spdx_correct_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha1 = "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9";
+      };
+    }
+    {
+      name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
+      path = fetchurl {
+        name = "spdx_exceptions___spdx_exceptions_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha1 = "3f28ce1a77a00372683eade4a433183527a2163d";
+      };
+    }
+    {
+      name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
+      path = fetchurl {
+        name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679";
+      };
+    }
+    {
+      name = "spdx_license_ids___spdx_license_ids_3.0.9.tgz";
+      path = fetchurl {
+        name = "spdx_license_ids___spdx_license_ids_3.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz";
+        sha1 = "8a595135def9592bda69709474f1cbeea7c2467f";
+      };
+    }
+    {
+      name = "specificity___specificity_0.4.1.tgz";
+      path = fetchurl {
+        name = "specificity___specificity_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz";
+        sha1 = "aab5e645012db08ba182e151165738d00887b019";
+      };
+    }
+    {
+      name = "split_string___split_string_3.1.0.tgz";
+      path = fetchurl {
+        name = "split_string___split_string_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+        sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+      };
+    }
+    {
+      name = "sprintf_js___sprintf_js_1.0.3.tgz";
+      path = fetchurl {
+        name = "sprintf_js___sprintf_js_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    }
+    {
+      name = "ssri___ssri_6.0.2.tgz";
+      path = fetchurl {
+        name = "ssri___ssri_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz";
+        sha1 = "157939134f20464e7301ddba3e90ffa8f7728ac5";
+      };
+    }
+    {
+      name = "ssri___ssri_8.0.1.tgz";
+      path = fetchurl {
+        name = "ssri___ssri_8.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz";
+        sha1 = "638e4e439e2ffbd2cd289776d5ca457c4f51a2af";
+      };
+    }
+    {
+      name = "stable___stable_0.1.8.tgz";
+      path = fetchurl {
+        name = "stable___stable_0.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz";
+        sha1 = "836eb3c8382fe2936feaf544631017ce7d47a3cf";
+      };
+    }
+    {
+      name = "static_eval___static_eval_2.1.0.tgz";
+      path = fetchurl {
+        name = "static_eval___static_eval_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/static-eval/-/static-eval-2.1.0.tgz";
+        sha1 = "a16dbe54522d7fa5ef1389129d813fd47b148014";
+      };
+    }
+    {
+      name = "static_extend___static_extend_0.1.2.tgz";
+      path = fetchurl {
+        name = "static_extend___static_extend_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    }
+    {
+      name = "static_module___static_module_2.2.5.tgz";
+      path = fetchurl {
+        name = "static_module___static_module_2.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz";
+        sha1 = "bd40abceae33da6b7afb84a0e4329ff8852bfbbf";
+      };
+    }
+    {
+      name = "stream_browserify___stream_browserify_2.0.2.tgz";
+      path = fetchurl {
+        name = "stream_browserify___stream_browserify_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz";
+        sha1 = "87521d38a44aa7ee91ce1cd2a47df0cb49dd660b";
+      };
+    }
+    {
+      name = "stream_each___stream_each_1.2.3.tgz";
+      path = fetchurl {
+        name = "stream_each___stream_each_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
+        sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
+      };
+    }
+    {
+      name = "stream_http___stream_http_2.8.3.tgz";
+      path = fetchurl {
+        name = "stream_http___stream_http_2.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz";
+        sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc";
+      };
+    }
+    {
+      name = "stream_shift___stream_shift_1.0.1.tgz";
+      path = fetchurl {
+        name = "stream_shift___stream_shift_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz";
+        sha1 = "d7088281559ab2778424279b0877da3c392d5a3d";
+      };
+    }
+    {
+      name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
+      path = fetchurl {
+        name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
+        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
+      };
+    }
+    {
+      name = "string_width___string_width_3.1.0.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+        sha1 = "22767be21b62af1081574306f69ac51b62203961";
+      };
+    }
+    {
+      name = "string_width___string_width_4.2.2.tgz";
+      path = fetchurl {
+        name = "string_width___string_width_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
+        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
+      };
+    }
+    {
+      name = "string.prototype.matchall___string.prototype.matchall_4.0.5.tgz";
+      path = fetchurl {
+        name = "string.prototype.matchall___string.prototype.matchall_4.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz";
+        sha1 = "59370644e1db7e4c0c045277690cf7b01203c4da";
+      };
+    }
+    {
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz";
+        sha1 = "e75ae90c2942c63504686c18b287b4a0b1a45f80";
+      };
+    }
+    {
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz";
+        sha1 = "b36399af4ab2999b4c9c648bd7a3fb2bb26feeed";
+      };
+    }
+    {
+      name = "string_decoder___string_decoder_1.3.0.tgz";
+      path = fetchurl {
+        name = "string_decoder___string_decoder_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
+      };
+    }
+    {
+      name = "string_decoder___string_decoder_1.1.1.tgz";
+      path = fetchurl {
+        name = "string_decoder___string_decoder_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_5.2.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_6.0.0.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+      };
+    }
+    {
+      name = "strip_bom___strip_bom_3.0.0.tgz";
+      path = fetchurl {
+        name = "strip_bom___strip_bom_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    }
+    {
+      name = "strip_indent___strip_indent_3.0.0.tgz";
+      path = fetchurl {
+        name = "strip_indent___strip_indent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz";
+        sha1 = "c32e1cee940b6b3432c771bc2c54bcce73cd3001";
+      };
+    }
+    {
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+      path = fetchurl {
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+      };
+    }
+    {
+      name = "style_search___style_search_0.1.0.tgz";
+      path = fetchurl {
+        name = "style_search___style_search_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz";
+        sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
+      };
+    }
+    {
+      name = "stylehacks___stylehacks_4.0.3.tgz";
+      path = fetchurl {
+        name = "stylehacks___stylehacks_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz";
+        sha1 = "6718fcaf4d1e07d8a1318690881e8d96726a71d5";
+      };
+    }
+    {
+      name = "stylelint_config_prettier___stylelint_config_prettier_8.0.2.tgz";
+      path = fetchurl {
+        name = "stylelint_config_prettier___stylelint_config_prettier_8.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint-config-prettier/-/stylelint-config-prettier-8.0.2.tgz";
+        sha1 = "da9de33da4c56893cbe7e26df239a7374045e14e";
+      };
+    }
+    {
+      name = "stylelint_config_recommended___stylelint_config_recommended_3.0.0.tgz";
+      path = fetchurl {
+        name = "stylelint_config_recommended___stylelint_config_recommended_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz";
+        sha1 = "e0e547434016c5539fe2650afd58049a2fd1d657";
+      };
+    }
+    {
+      name = "stylelint_config_standard___stylelint_config_standard_20.0.0.tgz";
+      path = fetchurl {
+        name = "stylelint_config_standard___stylelint_config_standard_20.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz";
+        sha1 = "06135090c9e064befee3d594289f50e295b5e20d";
+      };
+    }
+    {
+      name = "stylelint___stylelint_13.13.1.tgz";
+      path = fetchurl {
+        name = "stylelint___stylelint_13.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint/-/stylelint-13.13.1.tgz";
+        sha1 = "fca9c9f5de7990ab26a00f167b8978f083a18f3c";
+      };
+    }
+    {
+      name = "sugarss___sugarss_2.0.0.tgz";
+      path = fetchurl {
+        name = "sugarss___sugarss_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
+        sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
+      };
+    }
+    {
+      name = "supports_color___supports_color_5.5.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_5.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+      };
+    }
+    {
+      name = "supports_color___supports_color_6.1.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
+        sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
+      };
+    }
+    {
+      name = "supports_color___supports_color_7.2.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
+        sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
+      };
+    }
+    {
+      name = "svg_tags___svg_tags_1.0.0.tgz";
+      path = fetchurl {
+        name = "svg_tags___svg_tags_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz";
+        sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764";
+      };
+    }
+    {
+      name = "svgo___svgo_1.3.2.tgz";
+      path = fetchurl {
+        name = "svgo___svgo_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz";
+        sha1 = "b6dc511c063346c9e415b81e43401145b96d4167";
+      };
+    }
+    {
+      name = "table___table_6.7.1.tgz";
+      path = fetchurl {
+        name = "table___table_6.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz";
+        sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2";
+      };
+    }
+    {
+      name = "tailwindcss___tailwindcss_2.0.1_compat.tgz";
+      path = fetchurl {
+        name = "tailwindcss___tailwindcss_2.0.1_compat.tgz";
+        url  = "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-2.0.1-compat.tgz";
+        sha1 = "2f57e9e4e848587bfc67ed92ee0de0882c3d0673";
+      };
+    }
+    {
+      name = "tapable___tapable_1.1.3.tgz";
+      path = fetchurl {
+        name = "tapable___tapable_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz";
+        sha1 = "a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2";
+      };
+    }
+    {
+      name = "tar___tar_6.1.0.tgz";
+      path = fetchurl {
+        name = "tar___tar_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz";
+        sha1 = "d1724e9bcc04b977b18d5c573b333a2207229a83";
+      };
+    }
+    {
+      name = "terser_webpack_plugin___terser_webpack_plugin_1.4.5.tgz";
+      path = fetchurl {
+        name = "terser_webpack_plugin___terser_webpack_plugin_1.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz";
+        sha1 = "a217aefaea330e734ffacb6120ec1fa312d6040b";
+      };
+    }
+    {
+      name = "terser_webpack_plugin___terser_webpack_plugin_4.2.3.tgz";
+      path = fetchurl {
+        name = "terser_webpack_plugin___terser_webpack_plugin_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz";
+        sha1 = "28daef4a83bd17c1db0297070adc07fc8cfc6a9a";
+      };
+    }
+    {
+      name = "terser___terser_4.8.0.tgz";
+      path = fetchurl {
+        name = "terser___terser_4.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz";
+        sha1 = "63056343d7c70bb29f3af665865a46fe03a0df17";
+      };
+    }
+    {
+      name = "terser___terser_5.7.0.tgz";
+      path = fetchurl {
+        name = "terser___terser_5.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz";
+        sha1 = "a761eeec206bc87b605ab13029876ead938ae693";
+      };
+    }
+    {
+      name = "text_table___text_table_0.2.0.tgz";
+      path = fetchurl {
+        name = "text_table___text_table_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    }
+    {
+      name = "through2___through2_2.0.5.tgz";
+      path = fetchurl {
+        name = "through2___through2_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+        sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+      };
+    }
+    {
+      name = "timers_browserify___timers_browserify_2.0.12.tgz";
+      path = fetchurl {
+        name = "timers_browserify___timers_browserify_2.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz";
+        sha1 = "44a45c11fbf407f34f97bccd1577c652361b00ee";
+      };
+    }
+    {
+      name = "timsort___timsort_0.3.0.tgz";
+      path = fetchurl {
+        name = "timsort___timsort_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz";
+        sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4";
+      };
+    }
+    {
+      name = "tiny_invariant___tiny_invariant_1.1.0.tgz";
+      path = fetchurl {
+        name = "tiny_invariant___tiny_invariant_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz";
+        sha1 = "634c5f8efdc27714b7f386c35e6760991d230875";
+      };
+    }
+    {
+      name = "tiny_warning___tiny_warning_1.0.3.tgz";
+      path = fetchurl {
+        name = "tiny_warning___tiny_warning_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz";
+        sha1 = "94a30db453df4c643d0fd566060d60a875d84754";
+      };
+    }
+    {
+      name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+      path = fetchurl {
+        name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+      };
+    }
+    {
+      name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+      path = fetchurl {
+        name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    }
+    {
+      name = "to_object_path___to_object_path_0.3.0.tgz";
+      path = fetchurl {
+        name = "to_object_path___to_object_path_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    }
+    {
+      name = "to_regex_range___to_regex_range_2.1.1.tgz";
+      path = fetchurl {
+        name = "to_regex_range___to_regex_range_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    }
+    {
+      name = "to_regex_range___to_regex_range_5.0.1.tgz";
+      path = fetchurl {
+        name = "to_regex_range___to_regex_range_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
+      };
+    }
+    {
+      name = "to_regex___to_regex_3.0.2.tgz";
+      path = fetchurl {
+        name = "to_regex___to_regex_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+        sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+      };
+    }
+    {
+      name = "topojson___topojson_1.6.27.tgz";
+      path = fetchurl {
+        name = "topojson___topojson_1.6.27.tgz";
+        url  = "https://registry.yarnpkg.com/topojson/-/topojson-1.6.27.tgz";
+        sha1 = "adbe33a67e2f1673d338df12644ad20fc20b42ed";
+      };
+    }
+    {
+      name = "trim_newlines___trim_newlines_3.0.1.tgz";
+      path = fetchurl {
+        name = "trim_newlines___trim_newlines_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz";
+        sha1 = "260a5d962d8b752425b32f3a7db0dcacd176c144";
+      };
+    }
+    {
+      name = "trough___trough_1.0.5.tgz";
+      path = fetchurl {
+        name = "trough___trough_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz";
+        sha1 = "b8b639cefad7d0bb2abd37d433ff8293efa5f406";
+      };
+    }
+    {
+      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+      path = fetchurl {
+        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
+      };
+    }
+    {
+      name = "tty_browserify___tty_browserify_0.0.0.tgz";
+      path = fetchurl {
+        name = "tty_browserify___tty_browserify_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
+        sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+      };
+    }
+    {
+      name = "type_check___type_check_0.4.0.tgz";
+      path = fetchurl {
+        name = "type_check___type_check_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+        sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+      };
+    }
+    {
+      name = "type_check___type_check_0.3.2.tgz";
+      path = fetchurl {
+        name = "type_check___type_check_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+      };
+    }
+    {
+      name = "type_fest___type_fest_0.18.1.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz";
+        sha1 = "db4bc151a4a2cf4eebf9add5db75508db6cc841f";
+      };
+    }
+    {
+      name = "type_fest___type_fest_0.20.2.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+      };
+    }
+    {
+      name = "type_fest___type_fest_0.6.0.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz";
+        sha1 = "8d2a2370d3df886eb5c90ada1c5bf6188acf838b";
+      };
+    }
+    {
+      name = "type_fest___type_fest_0.8.1.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
+        sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
+      };
+    }
+    {
+      name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+      path = fetchurl {
+        name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
+      };
+    }
+    {
+      name = "typedarray___typedarray_0.0.6.tgz";
+      path = fetchurl {
+        name = "typedarray___typedarray_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    }
+    {
+      name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
+      path = fetchurl {
+        name = "unbox_primitive___unbox_primitive_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
+        sha1 = "085e215625ec3162574dc8859abee78a59b14471";
+      };
+    }
+    {
+      name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+      path = fetchurl {
+        name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+        sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
+      };
+    }
+    {
+      name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+      path = fetchurl {
+        name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+        sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
+      };
+    }
+    {
+      name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz";
+      path = fetchurl {
+        name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+        sha1 = "0d91f600eeeb3096aa962b1d6fc88876e64ea531";
+      };
+    }
+    {
+      name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.1.0.tgz";
+      path = fetchurl {
+        name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
+        sha1 = "dd57a99f6207bedff4628abefb94c50db941c8f4";
+      };
+    }
+    {
+      name = "unified___unified_9.2.1.tgz";
+      path = fetchurl {
+        name = "unified___unified_9.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/unified/-/unified-9.2.1.tgz";
+        sha1 = "ae18d5674c114021bfdbdf73865ca60f410215a3";
+      };
+    }
+    {
+      name = "union_value___union_value_1.0.1.tgz";
+      path = fetchurl {
+        name = "union_value___union_value_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
+        sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
+      };
+    }
+    {
+      name = "uniq___uniq_1.0.1.tgz";
+      path = fetchurl {
+        name = "uniq___uniq_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
+        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+      };
+    }
+    {
+      name = "uniqs___uniqs_2.0.0.tgz";
+      path = fetchurl {
+        name = "uniqs___uniqs_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz";
+        sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
+      };
+    }
+    {
+      name = "unique_filename___unique_filename_1.1.1.tgz";
+      path = fetchurl {
+        name = "unique_filename___unique_filename_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+        sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+      };
+    }
+    {
+      name = "unique_slug___unique_slug_2.0.2.tgz";
+      path = fetchurl {
+        name = "unique_slug___unique_slug_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz";
+        sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c";
+      };
+    }
+    {
+      name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
+      path = fetchurl {
+        name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz";
+        sha1 = "fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6";
+      };
+    }
+    {
+      name = "unist_util_is___unist_util_is_4.1.0.tgz";
+      path = fetchurl {
+        name = "unist_util_is___unist_util_is_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz";
+        sha1 = "976e5f462a7a5de73d94b706bac1b90671b57797";
+      };
+    }
+    {
+      name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
+      path = fetchurl {
+        name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz";
+        sha1 = "cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da";
+      };
+    }
+    {
+      name = "universalify___universalify_2.0.0.tgz";
+      path = fetchurl {
+        name = "universalify___universalify_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz";
+        sha1 = "75a4984efedc4b08975c5aeb73f530d02df25717";
+      };
+    }
+    {
+      name = "unquote___unquote_1.1.1.tgz";
+      path = fetchurl {
+        name = "unquote___unquote_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz";
+        sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544";
+      };
+    }
+    {
+      name = "unset_value___unset_value_1.0.0.tgz";
+      path = fetchurl {
+        name = "unset_value___unset_value_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    }
+    {
+      name = "upath___upath_1.2.0.tgz";
+      path = fetchurl {
+        name = "upath___upath_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz";
+        sha1 = "8f66dbcd55a883acdae4408af8b035a5044c1894";
+      };
+    }
+    {
+      name = "uri_js___uri_js_4.4.1.tgz";
+      path = fetchurl {
+        name = "uri_js___uri_js_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
+        sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
+      };
+    }
+    {
+      name = "urix___urix_0.1.0.tgz";
+      path = fetchurl {
+        name = "urix___urix_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    }
+    {
+      name = "url_search_params_polyfill___url_search_params_polyfill_8.1.1.tgz";
+      path = fetchurl {
+        name = "url_search_params_polyfill___url_search_params_polyfill_8.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/url-search-params-polyfill/-/url-search-params-polyfill-8.1.1.tgz";
+        sha1 = "9e69e4dba300a71ae7ad3cead62c7717fd99329f";
+      };
+    }
+    {
+      name = "url___url_0.11.0.tgz";
+      path = fetchurl {
+        name = "url___url_0.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
+        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+      };
+    }
+    {
+      name = "use___use_3.1.1.tgz";
+      path = fetchurl {
+        name = "use___use_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+        sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+      };
+    }
+    {
+      name = "util_deprecate___util_deprecate_1.0.2.tgz";
+      path = fetchurl {
+        name = "util_deprecate___util_deprecate_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    }
+    {
+      name = "util.promisify___util.promisify_1.0.1.tgz";
+      path = fetchurl {
+        name = "util.promisify___util.promisify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz";
+        sha1 = "6baf7774b80eeb0f7520d8b81d07982a59abbaee";
+      };
+    }
+    {
+      name = "util___util_0.10.3.tgz";
+      path = fetchurl {
+        name = "util___util_0.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
+        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+      };
+    }
+    {
+      name = "util___util_0.11.1.tgz";
+      path = fetchurl {
+        name = "util___util_0.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz";
+        sha1 = "3236733720ec64bb27f6e26f421aaa2e1b588d61";
+      };
+    }
+    {
+      name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+      path = fetchurl {
+        name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
+      };
+    }
+    {
+      name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+      path = fetchurl {
+        name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+      };
+    }
+    {
+      name = "value_equal___value_equal_1.0.1.tgz";
+      path = fetchurl {
+        name = "value_equal___value_equal_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz";
+        sha1 = "1e0b794c734c5c0cade179c437d356d931a34d6c";
+      };
+    }
+    {
+      name = "vendors___vendors_1.0.4.tgz";
+      path = fetchurl {
+        name = "vendors___vendors_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz";
+        sha1 = "e2b800a53e7a29b93506c3cf41100d16c4c4ad8e";
+      };
+    }
+    {
+      name = "vfile_message___vfile_message_2.0.4.tgz";
+      path = fetchurl {
+        name = "vfile_message___vfile_message_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz";
+        sha1 = "5b43b88171d409eae58477d13f23dd41d52c371a";
+      };
+    }
+    {
+      name = "vfile___vfile_4.2.1.tgz";
+      path = fetchurl {
+        name = "vfile___vfile_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz";
+        sha1 = "03f1dce28fc625c625bc6514350fbdb00fa9e624";
+      };
+    }
+    {
+      name = "vlq___vlq_0.2.3.tgz";
+      path = fetchurl {
+        name = "vlq___vlq_0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz";
+        sha1 = "8f3e4328cf63b1540c0d67e1b2778386f8975b26";
+      };
+    }
+    {
+      name = "vm_browserify___vm_browserify_1.1.2.tgz";
+      path = fetchurl {
+        name = "vm_browserify___vm_browserify_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz";
+        sha1 = "78641c488b8e6ca91a75f511e7a3b32a86e5dda0";
+      };
+    }
+    {
+      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
+      path = fetchurl {
+        name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz";
+        sha1 = "38500072ee6ece66f3769936950ea1771be1c957";
+      };
+    }
+    {
+      name = "watchpack___watchpack_1.7.5.tgz";
+      path = fetchurl {
+        name = "watchpack___watchpack_1.7.5.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz";
+        sha1 = "1267e6c55e0b9b5be44c2023aed5437a2c26c453";
+      };
+    }
+    {
+      name = "webpack_cli___webpack_cli_3.3.12.tgz";
+      path = fetchurl {
+        name = "webpack_cli___webpack_cli_3.3.12.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz";
+        sha1 = "94e9ada081453cd0aa609c99e500012fd3ad2d4a";
+      };
+    }
+    {
+      name = "webpack_sources___webpack_sources_1.4.3.tgz";
+      path = fetchurl {
+        name = "webpack_sources___webpack_sources_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz";
+        sha1 = "eedd8ec0b928fbf1cbfe994e22d2d890f330a933";
+      };
+    }
+    {
+      name = "webpack___webpack_4.39.2.tgz";
+      path = fetchurl {
+        name = "webpack___webpack_4.39.2.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.39.2.tgz";
+        sha1 = "c9aa5c1776d7c309d1b3911764f0288c8c2816aa";
+      };
+    }
+    {
+      name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
+      path = fetchurl {
+        name = "which_boxed_primitive___which_boxed_primitive_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
+        sha1 = "13757bc89b209b049fe5d86430e21cf40a89a8e6";
+      };
+    }
+    {
+      name = "which_module___which_module_2.0.0.tgz";
+      path = fetchurl {
+        name = "which_module___which_module_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    }
+    {
+      name = "which___which_1.3.1.tgz";
+      path = fetchurl {
+        name = "which___which_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+        sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+      };
+    }
+    {
+      name = "which___which_2.0.2.tgz";
+      path = fetchurl {
+        name = "which___which_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+        sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+      };
+    }
+    {
+      name = "word_wrap___word_wrap_1.2.3.tgz";
+      path = fetchurl {
+        name = "word_wrap___word_wrap_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
+      };
+    }
+    {
+      name = "wordwrap___wordwrap_0.0.3.tgz";
+      path = fetchurl {
+        name = "wordwrap___wordwrap_0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz";
+        sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
+      };
+    }
+    {
+      name = "worker_farm___worker_farm_1.7.0.tgz";
+      path = fetchurl {
+        name = "worker_farm___worker_farm_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
+        sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
+      };
+    }
+    {
+      name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+        sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
+      };
+    }
+    {
+      name = "wrappy___wrappy_1.0.2.tgz";
+      path = fetchurl {
+        name = "wrappy___wrappy_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    }
+    {
+      name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
+      path = fetchurl {
+        name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8";
+      };
+    }
+    {
+      name = "xtend___xtend_4.0.2.tgz";
+      path = fetchurl {
+        name = "xtend___xtend_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
+        sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
+      };
+    }
+    {
+      name = "y18n___y18n_4.0.3.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz";
+        sha1 = "b5f259c82cd6e336921efd7bfd8bf560de9eeedf";
+      };
+    }
+    {
+      name = "yallist___yallist_3.1.1.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz";
+        sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd";
+      };
+    }
+    {
+      name = "yallist___yallist_4.0.0.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
+      };
+    }
+    {
+      name = "yaml___yaml_1.10.2.tgz";
+      path = fetchurl {
+        name = "yaml___yaml_1.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz";
+        sha1 = "2301c5ffbf12b467de8da2333a459e29e7920e4b";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_13.1.2.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_13.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz";
+        sha1 = "130f09702ebaeef2650d54ce6e3e5706f7a4fb38";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_20.2.7.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_20.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz";
+        sha1 = "61df85c113edfb5a7a4e36eb8aa60ef423cbc90a";
+      };
+    }
+    {
+      name = "yargs___yargs_13.3.2.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_13.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz";
+        sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd";
+      };
+    }
+    {
+      name = "yocto_queue___yocto_queue_0.1.0.tgz";
+      path = fetchurl {
+        name = "yocto_queue___yocto_queue_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz";
+        sha1 = "0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b";
+      };
+    }
+    {
+      name = "zwitch___zwitch_1.0.5.tgz";
+      path = fetchurl {
+        name = "zwitch___zwitch_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz";
+        sha1 = "d11d7381ffed16b742f6af7b3f223d5cd9fe9920";
+      };
+    }
+  ];
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix b/nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix
index 13ad9d69ad6b..649b76f871c1 100644
--- a/nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix
@@ -1,17 +1,17 @@
-{ config, lib, pkgs, fetchFromGitHub, stdenv, ... }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "rss-bridge";
-  version = "2020-11-10";
+  version = "2021-04-25";
 
   src = fetchFromGitHub {
     owner = "RSS-Bridge";
     repo = "rss-bridge";
     rev = version;
-    sha256 = "00cp61lqvhi7b7j0rglsqg3l7cg8s9b8vq098bgvg5dygyi44hyv";
+    sha256 = "0dkw8xq710q0wclyr003357gk0vgb5pmpcx75k13pv56c3mrg9vm";
   };
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace lib/rssbridge.php \
       --replace "define('PATH_CACHE', PATH_ROOT . 'cache/');" "define('PATH_CACHE', getenv('RSSBRIDGE_DATA') . '/cache/');" \
       --replace "define('FILE_CONFIG', PATH_ROOT . 'config.ini.php');" "define('FILE_CONFIG', getenv('RSSBRIDGE_DATA') . '/config.ini.php');" \
diff --git a/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix b/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix
index 44f207e3b86a..c3c0eb507855 100644
--- a/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wallabag";
-  version = "2.4.1";
+  version = "2.4.2";
 
   # remember to rm -r var/cache/* after a rebuild or unexpected errors will occur
 
   src = fetchurl {
     url = "https://static.wallabag.org/releases/wallabag-release-${version}.tar.gz";
-    sha256 = "1dqf5ia66kjsnfad2xkm8w6jgs976mf9x0dcd73jybqfgs4j09kj";
+    sha256 = "1n39flqqqjih0lc86vxdzbp44x4rqj5292if2fsa8y1xxlvyqmns";
   };
 
   outputs = [ "out" ];
diff --git a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
index 8ad888e759b6..7dbf4054ef27 100644
--- a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.7.1";
+  version = "5.7.2";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "08c9g80lhs4h2psf3ykn0l4k1yyy0x21kxjqy8ckjpjvw3281nd4";
+    sha256 = "sha256-640FIIFZRp0L48szn3tqFQo59QP69nnCVQKEM/UTEhk=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/webmetro/default.nix b/nixpkgs/pkgs/servers/webmetro/default.nix
index 6bda15a93e00..2cae2887e9fb 100644
--- a/nixpkgs/pkgs/servers/webmetro/default.nix
+++ b/nixpkgs/pkgs/servers/webmetro/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1n2c7ygs8qsd5zgii6fqqcwg427bsij082bg4ijnzkq5630dx651";
   };
 
-  cargoSha256 = "0xifc3jwj0c6ynx0gzm5zlnfcq023fjpjmdg9x0vs1fh3b42pdsy";
+  cargoSha256 = "1n4498byy2m2f928hamfn959abrrn693wcc323ifqqrvnbkckdz8";
 
   meta = with lib; {
     description = "Simple relay server for broadcasting a WebM stream";
diff --git a/nixpkgs/pkgs/servers/x11/xorg/overrides.nix b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
index 6ab9f8ed8dd1..1e6b9888ba2f 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
+++ b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
@@ -833,6 +833,12 @@ self: super:
     '';
   });
 
+  xorgdocs = super.xorgdocs.overrideAttrs (attrs: {
+    # This makes the man pages discoverable by the default man,
+    # since it looks for packages in $PATH
+    postInstall = "mkdir $out/bin";
+  });
+
   xwd = super.xwd.overrideAttrs (attrs: {
     buildInputs = with self; attrs.buildInputs ++ [libXt];
   });
diff --git a/nixpkgs/pkgs/servers/x11/xorg/xwayland.nix b/nixpkgs/pkgs/servers/x11/xorg/xwayland.nix
index e3d2698e8303..e1b2597d4f45 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/xwayland.nix
+++ b/nixpkgs/pkgs/servers/x11/xorg/xwayland.nix
@@ -1,40 +1,100 @@
-{ lib, wayland, wayland-protocols, xorgserver, xkbcomp, xkeyboard_config
-, epoxy, libxslt, libunwind, makeWrapper, egl-wayland
+{ egl-wayland
+, epoxy
+, fetchurl
+, fontutil
+, lib
+, libGL
+, libGLU
+, libX11
+, libXau
+, libXaw
+, libXdmcp
+, libXext
+, libXfixes
+, libXfont2
+, libXmu
+, libXpm
+, libXrender
+, libXres
+, libXt
+, libdrm
+, libtirpc
+, libunwind
+, libxcb
+, libxkbfile
+, libxshmfence
+, mesa
+, meson
+, ninja
+, openssl
+, pkg-config
+, pixman
+, stdenv
+, wayland
+, wayland-protocols
+, xkbcomp
+, xkeyboard_config
+, xorgproto
+, xtrans
+, zlib
 , defaultFontPath ? "" }:
 
-with lib;
+stdenv.mkDerivation rec {
 
-xorgserver.overrideAttrs (oldAttrs: {
-
-  name = "xwayland-${xorgserver.version}";
-  buildInputs = oldAttrs.buildInputs ++ [ egl-wayland ];
-  propagatedBuildInputs = oldAttrs.propagatedBuildInputs
-    ++ [wayland wayland-protocols epoxy libxslt makeWrapper libunwind];
-  configureFlags = [
-    "--disable-docs"
-    "--disable-devel-docs"
-    "--enable-xwayland"
-    "--enable-xwayland-eglstream"
-    "--disable-xorg"
-    "--disable-xvfb"
-    "--disable-xnest"
-    "--disable-xquartz"
-    "--disable-xwin"
-    "--enable-glamor"
-    "--with-default-font-path=${defaultFontPath}"
-    "--with-xkb-bin-directory=${xkbcomp}/bin"
-    "--with-xkb-path=${xkeyboard_config}/etc/X11/xkb"
-    "--with-xkb-output=$(out)/share/X11/xkb/compiled"
+  pname = "xwayland";
+  version = "21.1.1";
+  src = fetchurl {
+    url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz";
+    sha256 = "sha256-MfJhzlG77namyj7AKqNn/6K176K5hBLfV8zv16GQA84=";
+  };
+  nativeBuildInputs = [ pkg-config meson ninja ];
+  buildInputs = [
+    egl-wayland
+    epoxy
+    fontutil
+    libGL
+    libGLU
+    libX11
+    libXau
+    libXaw
+    libXdmcp
+    libXext
+    libXfixes
+    libXfont2
+    libXmu
+    libXpm
+    libXrender
+    libXres
+    libXt
+    libdrm
+    libtirpc
+    libunwind
+    libxcb
+    libxkbfile
+    libxshmfence
+    mesa
+    openssl
+    pixman
+    wayland
+    wayland-protocols
+    xkbcomp
+    xorgproto
+    xtrans
+    zlib
+  ];
+  mesonFlags = [
+    "-Dxwayland-eglstream=true"
+    "-Ddefault-font-path=${defaultFontPath}"
+    "-Dxkb_bin_dir=${xkbcomp}/bin"
+    "-Dxkb_dir=${xkeyboard_config}/etc/X11/xkb"
+    "-Dxkb_output_dir=${placeholder "out"}/share/X11/xkb/compiled"
   ];
 
-  postInstall = ''
-    rm -fr $out/share/X11/xkb/compiled
-  '';
-
-  meta = {
+  meta = with lib; {
     description = "An X server for interfacing X11 apps with the Wayland protocol";
     homepage = "https://wayland.freedesktop.org/xserver.html";
     license = licenses.mit;
+    maintainers = with maintainers; [ emantor ];
     platforms = platforms.linux;
   };
-})
+}
diff --git a/nixpkgs/pkgs/servers/xmpp/prosody/default.nix b/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
index a83da568126a..190f396009a6 100644
--- a/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
@@ -15,7 +15,7 @@ with lib;
 
 
 stdenv.mkDerivation rec {
-  version = "0.11.8"; # also update communityModules
+  version = "0.11.9"; # also update communityModules
   pname = "prosody";
   # The following community modules are necessary for the nixos module
   # prosody module to comply with XEP-0423 and provide a working
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
   src = fetchurl {
     url = "https://prosody.im/downloads/source/${pname}-${version}.tar.gz";
-    sha256 = "1y38a33wab2vv9pz04blmn6m66wg4pixilh8x60jsx6mk0xih3w3";
+    sha256 = "02gzvsaq0l5lx608sfh7hfz14s6yfsr4sr4kzcsqd1cxljp35h6c";
   };
 
   # A note to all those merging automated updates: Please also update this
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
   # version.
   communityModules = fetchhg {
     url = "https://hg.prosody.im/prosody-modules";
-    rev = "f210f242cf17";
-    sha256 = "0ls45zfhhv8k1aywq3fvrh4ab7g4g1z1ma9mbcf2ch73m6aqhbyl";
+    rev = "c149edb37349";
+    sha256 = "1njw17k0nhf15hc20l28v0xzcc7jha85lqy3j97nspv9zdxmshk1";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/servers/zoneminder/default.nix b/nixpkgs/pkgs/servers/zoneminder/default.nix
index c4e9e915381b..2ea162b0d60e 100644
--- a/nixpkgs/pkgs/servers/zoneminder/default.nix
+++ b/nixpkgs/pkgs/servers/zoneminder/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, fetchurl, fetchpatch, substituteAll, cmake, makeWrapper, pkg-config
-, curl, ffmpeg_3, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mariadb, pcre, perl, perlPackages
+, curl, ffmpeg, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mariadb, pcre, perl, perlPackages
 , polkit, util-linuxMinimal, x264, zlib
 , coreutils, procps, psmisc, nixosTests }:
 
@@ -138,7 +138,7 @@ in stdenv.mkDerivation rec {
 
     for f in includes/Event.php views/image.php ; do
       substituteInPlace web/$f \
-        --replace "'ffmpeg " "'${ffmpeg_3}/bin/ffmpeg "
+        --replace "'ffmpeg " "'${ffmpeg}/bin/ffmpeg "
     done
 
     substituteInPlace web/includes/functions.php \
@@ -147,7 +147,7 @@ in stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    curl ffmpeg_3 glib libjpeg libselinux libsepol mp4v2 libmysqlclient mariadb.client pcre perl polkit x264 zlib
+    curl ffmpeg glib libjpeg libselinux libsepol mp4v2 libmysqlclient mariadb.client pcre perl polkit x264 zlib
     util-linuxMinimal # for libmount
   ] ++ (with perlPackages; [
     # build-time dependencies
diff --git a/nixpkgs/pkgs/shells/bash/5.1.nix b/nixpkgs/pkgs/shells/bash/5.1.nix
index d234b18e6c90..ddf2edfd1db6 100644
--- a/nixpkgs/pkgs/shells/bash/5.1.nix
+++ b/nixpkgs/pkgs/shells/bash/5.1.nix
@@ -7,14 +7,14 @@
 
   # patch for cygwin requires readline support
 , interactive ? stdenv.isCygwin
-, readline80 ? null
+, readline81 ? null
 , withDocs ? false
 , texinfo ? null
 }:
 
 with lib;
 
-assert interactive -> readline80 != null;
+assert interactive -> readline81 != null;
 assert withDocs -> texinfo != null;
 assert stdenv.hostPlatform.isDarwin -> binutils != null;
 let
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
     ++ optional withDocs texinfo
     ++ optional stdenv.hostPlatform.isDarwin binutils;
 
-  buildInputs = optional interactive readline80;
+  buildInputs = optional interactive readline81;
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/shells/bash/undistract-me/default.nix b/nixpkgs/pkgs/shells/bash/undistract-me/default.nix
new file mode 100644
index 000000000000..9ed5544713d7
--- /dev/null
+++ b/nixpkgs/pkgs/shells/bash/undistract-me/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, fetchpatch
+, coreutils
+, gnused
+, libnotify
+, pulseaudio
+, sound-theme-freedesktop
+, xprop
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "undistract-me";
+  version = "unstable-2020-08-09";
+
+  src = fetchFromGitHub {
+    owner = "jml";
+    repo = pname;
+    rev = "2f8ac25c6ad8efcf160d2b480825b1cbb6772aab";
+    hash = "sha256-Qw7Cu9q0ZgK/RTvyDdHM5N3eBaKjtYqYH0J+hKMUZX8=";
+  };
+
+  patches = [
+    # Don't block the terminal when notification sound is played
+    #
+    # See https://github.com/jml/undistract-me/pull/69
+    (fetchpatch {
+      url = "https://github.com/jml/undistract-me/commit/2356ebbe8bf2bcb4b95af1ae2bcdc786ce7cc6e8.patch";
+      sha256 = "sha256-Ij3OXTOnIQsYhKVmqjChhN1q4ASZ7waOkfQTTp5XfPo=";
+    })
+
+    # Fix showing notifications when using Wayland apps with XWayland
+    # running, or connection to X server fails.
+    #
+    # NOTE: Without a real X server, notifications will not be
+    # suppressed when the window running the command is focused.
+    #
+    # See https://github.com/jml/undistract-me/pull/71
+    (fetchpatch {
+      url = "https://github.com/jml/undistract-me/commit/3f4ceaf5a4eba8e3cb02236c48247f87e3d1124f.patch";
+      sha256 = "sha256-9AK9Jp3TXJ75Y+jwZXlwQ6j54FW1rOBddoktrm0VX68=";
+    })
+  ];
+
+  # Patch in dependencies. Can't use makeWrapper because the bash
+  # functions will be sourced and invoked in a different environment
+  # for each command invocation.
+  postPatch = ''
+    for script in *.bash *.sh; do
+      substituteInPlace "$script" \
+        --replace /usr/share/undistract-me "$out/share/undistract-me" \
+        --replace basename ${coreutils}/bin/basename \
+        --replace 'cut ' '${coreutils}/bin/cut ' \
+        --replace date ${coreutils}/bin/date \
+        --replace dirname ${coreutils}/bin/dirname \
+        --replace sed ${gnused}/bin/sed \
+        --replace notify-send ${libnotify}/bin/notify-send \
+        --replace paplay ${pulseaudio}/bin/paplay \
+        --replace /usr/share/sounds/freedesktop ${sound-theme-freedesktop}/share/sounds/freedesktop \
+        --replace xprop ${xprop}/bin/xprop
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/share/undistract-me" "$out/etc/profile.d" "$out/share/licenses/undistract-me"
+    cp long-running.bash "$out/share/undistract-me"
+    cp preexec.bash "$out/share/undistract-me"
+    cp undistract-me.sh "$out/etc/profile.d"
+    cp LICENSE "$out/share/licenses/undistract-me"
+  '';
+
+  meta = with lib; {
+    description = "Notifies you when long-running terminal commands complete";
+    homepage = "https://github.com/jml/undistract-me";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kira-bruneau ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix
index b2677715d514..a5754290426d 100644
--- a/nixpkgs/pkgs/shells/fish/default.nix
+++ b/nixpkgs/pkgs/shells/fish/default.nix
@@ -19,6 +19,9 @@
 , fishPlugins
 , procps
 
+# used to generate autocompletions from manpages and for configuration editing in the browser
+, usePython ? true
+
 , runCommand
 , writeText
 , nixosTests
@@ -200,12 +203,10 @@ let
     '';
 
     # Required binaries during execution
-    # Python: Autocompletion generated from manpages and config editing
     propagatedBuildInputs = [
       coreutils
       gnugrep
       gnused
-      python3
       groff
       gettext
     ] ++ lib.optional (!stdenv.isDarwin) man-db;
@@ -233,18 +234,17 @@ let
       sed -e "s|sed |${gnused}/bin/sed |"                  \
           -i "$out/share/fish/functions/alias.fish"        \
              "$out/share/fish/functions/prompt_pwd.fish"
-      sed -i "s|nroff |${groff}/bin/nroff |"               \
+      sed -i "s|nroff|${groff}/bin/nroff|"                 \
              "$out/share/fish/functions/__fish_print_help.fish"
       sed -e "s|clear;|${getBin ncurses}/bin/clear;|"      \
           -i "$out/share/fish/functions/fish_default_key_bindings.fish"
-      sed -e "s|python3|${getBin python3}/bin/python3|"    \
-          -i $out/share/fish/functions/{__fish_config_interactive.fish,fish_config.fish,fish_update_completions.fish}
       sed -i "s|/usr/local/sbin /sbin /usr/sbin||"         \
              $out/share/fish/completions/{sudo.fish,doas.fish}
       sed -e "s| awk | ${gawk}/bin/awk |"                  \
           -i $out/share/fish/functions/{__fish_print_packages.fish,__fish_print_addresses.fish,__fish_describe_command.fish,__fish_complete_man.fish,__fish_complete_convert_options.fish} \
              $out/share/fish/completions/{cwebp,adb,ezjail-admin,grunt,helm,heroku,lsusb,make,p4,psql,rmmod,vim-addons}.fish
 
+    '' + optionalString usePython ''
       cat > $out/share/fish/functions/__fish_anypython.fish <<EOF
       function __fish_anypython
           echo ${python3.interpreter}
diff --git a/nixpkgs/pkgs/shells/fish/plugins/default.nix b/nixpkgs/pkgs/shells/fish/plugins/default.nix
index 42252ccbe38c..0ce172ec489a 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/default.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/default.nix
@@ -15,7 +15,7 @@ lib.makeScope newScope (self: with self; {
 
   foreign-env = callPackage ./foreign-env { };
 
-  forgit-fish = callPackage ./forgit.nix { };
+  forgit = callPackage ./forgit.nix { };
 
   fzf-fish = callPackage ./fzf-fish.nix { };
 
diff --git a/nixpkgs/pkgs/shells/fish/plugins/forgit.nix b/nixpkgs/pkgs/shells/fish/plugins/forgit.nix
index b905b7a25895..5fc647c73ee3 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/forgit.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/forgit.nix
@@ -4,7 +4,11 @@ buildFishPlugin rec {
   pname = "forgit";
   version = "unstable-2021-04-09";
 
-  buildInputs = [ git fzf ];
+  preFixup = ''
+    substituteInPlace $out/share/fish/vendor_conf.d/forgit.plugin.fish \
+      --replace "fzf " "${fzf}/bin/fzf " \
+      --replace "git " "${git}/bin/git "
+  '';
 
   src = fetchFromGitHub {
     owner = "wfxr";
diff --git a/nixpkgs/pkgs/shells/hilbish/default.nix b/nixpkgs/pkgs/shells/hilbish/default.nix
new file mode 100644
index 000000000000..e0449ce24c22
--- /dev/null
+++ b/nixpkgs/pkgs/shells/hilbish/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub, readline }:
+
+buildGoModule rec {
+  pname = "hilbish";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "Hilbis";
+    repo = "Hilbish";
+    rev = "v${version}";
+    sha256 = "sha256-7YJkjkA6lGyO4PwJcdeUzqQvFsslDfIqAH6vlBtyYz8=";
+  };
+
+  vendorSha256 = "sha256-9FftzTn5nxjfsHStcnrn9a+sECmcHRBUEtFjsMp8/ks=";
+
+  buildInputs = [ readline ];
+
+  meta = with lib; {
+    description = "An interactive Unix-like shell written in Go";
+    changelog = "https://github.com/Hilbis/Hilbish/releases/tag/v${version}";
+    homepage = "https://github.com/Hilbis/Hilbish";
+    maintainers = with maintainers; [ fortuneteller2k ];
+    license = licenses.mit;
+    platforms = platforms.linux; # only officially supported on Linux
+  };
+}
diff --git a/nixpkgs/pkgs/shells/ion/default.nix b/nixpkgs/pkgs/shells/ion/default.nix
index 77691e99b255..f20c80810a0b 100644
--- a/nixpkgs/pkgs/shells/ion/default.nix
+++ b/nixpkgs/pkgs/shells/ion/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ion";
-  version = "unstable-2020-03-22";
+  version = "unstable-2021-05-10";
 
   src = fetchFromGitHub {
     owner = "redox-os";
     repo = "ion";
-    rev = "1fbd29a6d539faa6eb0f3186a361e208d0a0bc05";
-    sha256 = "0r5c87cs8jlc9kpb6bi2aypldw1lngf6gzjirf13gi7iy4q08ik7";
+    rev = "1170b84587bbad260a3ecac8e249a216cb1fd5e9";
+    sha256 = "sha256-lI1GwA3XerRJaC/Z8vTZc6GzRDLjv3w768C+Ui6Q+3Q=";
   };
 
-  cargoSha256 = "1ph3r3vspy700mb8pica8478v9arqz07k2nzpbrdkdkqgfcwlgcg";
+  cargoSha256 = "sha256-hURpgxc99iIMtzIlR6Kbfqcbu1uYLDHnfVLqgmMbvFA=";
 
   meta = with lib; {
     description = "Modern system shell with simple (and powerful) syntax";
@@ -22,8 +22,11 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin [
     Security
+    libiconv
   ];
 
+  doCheck = !stdenv.hostPlatform.isDarwin;
+
   passthru = {
     shellPath = "/bin/ion";
   };
diff --git a/nixpkgs/pkgs/shells/liquidprompt/default.nix b/nixpkgs/pkgs/shells/liquidprompt/default.nix
index 5fa331b85401..c4a9fa141315 100644
--- a/nixpkgs/pkgs/shells/liquidprompt/default.nix
+++ b/nixpkgs/pkgs/shells/liquidprompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "nojhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FXBClOkGRUey/FnLw3g3uiHUJeNiB4tXqP4Na6CuwIM=";
+    sha256 = "sha256-BY0/lcBxcfIgKXbXZjiEgVdugmo8vD6UWGsjEVq6j6E=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/nushell/default.nix b/nixpkgs/pkgs/shells/nushell/default.nix
index ee291ccdc03c..39048730485c 100644
--- a/nixpkgs/pkgs/shells/nushell/default.nix
+++ b/nixpkgs/pkgs/shells/nushell/default.nix
@@ -10,21 +10,23 @@
 , libiconv
 , AppKit
 , Security
+, nghttp2
+, libgit2
 , withStableFeatures ? true
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.30.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "104zrj15kmc0a698dc8dxbzhg1rjqn38v3wqcwg2xiickglpgd5f";
+    sha256 = "1wj054rzv88ys4ask4zp7crrw0dxrck8svlj3i16qqd8x5dnyhqs";
   };
 
-  cargoSha256 = "1c6yhkj1hyr82y82nff6gy9kq9z0mbq3ivlq8rir10pnqy4j5791";
+  cargoSha256 = "09ph3njll9assk85yh5pyvpsab3nk0mvxrdpqhy5rwps1478w0cq";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
@@ -32,10 +34,15 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ zlib libiconv Security ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ xorg.libX11 ]
-    ++ lib.optionals (withStableFeatures && stdenv.isDarwin) [ AppKit ];
+    ++ lib.optionals (withStableFeatures && stdenv.isDarwin) [ AppKit nghttp2 libgit2 ];
 
   cargoBuildFlags = lib.optional withStableFeatures "--features stable";
 
+  # TODO investigate why tests are broken on darwin
+  # failures show that tests try to write to paths
+  # outside of TMPDIR
+  doCheck = ! stdenv.isDarwin;
+
   checkPhase = ''
     runHook preCheck
     echo "Running cargo test"
@@ -48,7 +55,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.nushell.sh/";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne johntitor marsam ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
+    mainProgram = "nu";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/shells/oil/default.nix b/nixpkgs/pkgs/shells/oil/default.nix
index 9df88affb9f1..654476bd5ae0 100644
--- a/nixpkgs/pkgs/shells/oil/default.nix
+++ b/nixpkgs/pkgs/shells/oil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.8.8";
+  version = "0.8.11";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "sha256-J9aNuw72qufoVY6VnbdpCtpcI6GAI7ON10XGEJuqieI=";
+    sha256 = "sha256-GVV+532dPrXkQ3X2+wa4u6aCPBvQAIiypeoqzJqvk9Y=";
   };
 
   postPatch = ''
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-      shellPath = "/bin/osh";
+    shellPath = "/bin/osh";
   };
 }
diff --git a/nixpkgs/pkgs/shells/oksh/default.nix b/nixpkgs/pkgs/shells/oksh/default.nix
index 8c2998ab54cc..e0165fb3022f 100644
--- a/nixpkgs/pkgs/shells/oksh/default.nix
+++ b/nixpkgs/pkgs/shells/oksh/default.nix
@@ -18,4 +18,8 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ siraben ];
     platforms = platforms.all;
   };
+
+  passthru = {
+    shellPath = "/bin/oksh";
+  };
 }
diff --git a/nixpkgs/pkgs/shells/powershell/default.nix b/nixpkgs/pkgs/shells/powershell/default.nix
index dfc4f94e12b6..135cfb40ff0a 100644
--- a/nixpkgs/pkgs/shells/powershell/default.nix
+++ b/nixpkgs/pkgs/shells/powershell/default.nix
@@ -1,11 +1,15 @@
 { stdenv, lib, autoPatchelfHook, fetchzip, libunwind, libuuid, icu, curl
 , darwin, makeWrapper, less, openssl_1_1, pam, lttng-ust }:
 
-let platformString = if stdenv.isDarwin then "osx"
+let archString = if stdenv.isAarch64 then "arm64"
+                 else if stdenv.isx86_64 then "x64"
+                 else throw "unsupported platform";
+    platformString = if stdenv.isDarwin then "osx"
                      else if stdenv.isLinux then "linux"
                      else throw "unsupported platform";
     platformSha = if stdenv.isDarwin then "0w44ws8b6zfixf7xz93hmplqsx18279n9x8j77y4rbzs13fldvsn"
-                     else if stdenv.isLinux then "0xm7l49zhkz2fly3d751kjd5cy3ws9zji9i0061lkd06dvkch7jy"
+                     else if (stdenv.isLinux && stdenv.isx86_64) then "0xm7l49zhkz2fly3d751kjd5cy3ws9zji9i0061lkd06dvkch7jy"
+                     else if (stdenv.isLinux && stdenv.isAarch64) then "1axbi4kmb1ydys7c45jhp729w1srid3c8jgivb4bdmdp56rf6h32"
                      else throw "unsupported platform";
     platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
                      else if stdenv.isLinux then "LD_LIBRARY_PATH"
@@ -18,7 +22,7 @@ stdenv.mkDerivation rec {
   version = "7.1.3";
 
   src = fetchzip {
-    url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-x64.tar.gz";
+    url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-${archString}.tar.gz";
     sha256 = platformSha;
     stripRoot = false;
   };
@@ -38,8 +42,11 @@ stdenv.mkDerivation rec {
     rm -f $pslibs/libcrypto${ext}.1.0.0
     rm -f $pslibs/libssl${ext}.1.0.0
 
+    # At least the 7.1.3-osx package does not have the executable bit set.
+    chmod a+x $pslibs/pwsh
+
     ls $pslibs
-  '' + lib.optionalString (!stdenv.isDarwin) ''
+  '' + lib.optionalString (!stdenv.isDarwin && !stdenv.isAarch64) ''
     patchelf --replace-needed libcrypto${ext}.1.0.0 libcrypto${ext}.1.1 $pslibs/libmi.so
     patchelf --replace-needed libssl${ext}.1.0.0 libssl${ext}.1.1 $pslibs/libmi.so
   '' + ''
@@ -55,14 +62,15 @@ stdenv.mkDerivation rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/pwsh --help > /dev/null
+    # May need a writable home, seen on Darwin.
+    HOME=$TMP $out/bin/pwsh --help > /dev/null
   '';
 
   meta = with lib; {
     description = "Powerful cross-platform (Windows, Linux, and macOS) shell and scripting language based on .NET";
     homepage = "https://github.com/PowerShell/PowerShell";
     maintainers = with maintainers; [ yrashk srgom ];
-    platforms = [ "x86_64-darwin" "x86_64-linux" ];
+    platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux"];
     license = with licenses; [ mit ];
   };
 
diff --git a/nixpkgs/pkgs/shells/zsh/antibody/default.nix b/nixpkgs/pkgs/shells/zsh/antibody/default.nix
index bcf091f8e769..d5c197d5da6e 100644
--- a/nixpkgs/pkgs/shells/zsh/antibody/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/antibody/default.nix
@@ -21,6 +21,6 @@ buildGoModule rec {
     description = "The fastest shell plugin manager";
     homepage = "https://github.com/getantibody/antibody";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne worldofpeace ];
+    maintainers = with maintainers; [ Br1ght0ne ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
index 00610232e439..23c783246e91 100644
--- a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2021-04-11";
+  version = "2021-04-26";
   pname = "oh-my-zsh";
-  rev = "12669f29f0843b8b980dd137f150a74511f88842";
+  rev = "63a7422d8dd5eb93c849df0ab9e679e6f333818a";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "07vcxw60cvlh745lgy03l6vgsxkalmwh386akvrpvbg9a6p6k8rb";
+    sha256 = "1spi6y5jmha0bf1s69mycpmksxjniqmcnvkvmza4rhji8v8b120w";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
index 07e538610ba3..249826a2a25f 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-completions";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "zsh-users";
     repo = pname;
     rev = version;
-    sha256 = "12l9wrx0aysyj62kgp5limglz0nq73w8c415wcshxnxmhyk6sw6d";
+    sha256 = "0vs14n29wvkai84fvz3dz2kqznwsq2i5fzbwpv8nsfk1126ql13i";
   };
 
   installPhase= ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix
index d3e2c6534aa2..88451979cbb6 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-prezto/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-prezto";
-  version = "unstable-2021-01-19";
+  version = "unstable-2021-06-02";
 
   src = fetchFromGitHub {
     owner = "sorin-ionescu";
     repo = "prezto";
-    rev = "704fc46c3f83ca1055becce65fb513a533f48982";
-    sha256 = "0rkbx6hllf6w6x64mggbhvm1fvbq5sr5kvf06sarfkpz5l0a5wh3";
+    rev = "6833fcd2f2afbc7396ea7a5fa9eb3b49f4678242";
+    sha256 = "1a8gndj1f8sjnq7clc742lm4qyhp1a2zid6g6lmfr1axhcbn38v6";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix
new file mode 100644
index 000000000000..9623ff6648cd
--- /dev/null
+++ b/nixpkgs/pkgs/shells/zsh/zsh-z/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "zsh-z";
+  version = "unstable-2021-02-15";
+
+  src = fetchFromGitHub {
+    owner = "agkozak";
+    repo = pname;
+    rev = "595c883abec4682929ffe05eb2d088dd18e97557";
+    sha256 = "sha256-HnwUWqzwavh/Qox+siOe5lwTp7PBdiYx+9M0NMNFx00=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share/zsh-z
+    cp _zshz zsh-z.plugin.zsh $out/share/zsh-z
+  '';
+
+  meta = with lib; {
+    description = "Jump quickly to directories that you have visited frequently in the past, or recently";
+    homepage = "https://github.com/agkozak/zsh-z";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.evalexpr ];
+  };
+}
diff --git a/nixpkgs/pkgs/stdenv/cross/default.nix b/nixpkgs/pkgs/stdenv/cross/default.nix
index ed2b291ca2a1..18a6e2a47372 100644
--- a/nixpkgs/pkgs/stdenv/cross/default.nix
+++ b/nixpkgs/pkgs/stdenv/cross/default.nix
@@ -48,7 +48,9 @@ in lib.init bootStages ++ [
       # Prior overrides are surely not valid as packages built with this run on
       # a different platform, and so are disabled.
       overrides = _: _: {};
-      extraBuildInputs = [ ]; # Old ones run on wrong platform
+      extraBuildInputs = [ ] # Old ones run on wrong platform
+         ++ lib.optionals hostPlatform.isDarwin [ buildPackages.targetPackages.darwin.apple_sdk.frameworks.CoreFoundation ]
+         ;
       allowedRequisites = null;
 
       hasCC = !targetPlatform.isGhcjs;
@@ -66,7 +68,7 @@ in lib.init bootStages ++ [
            else if crossSystem.isDarwin
              then buildPackages.llvmPackages.clang
            else if crossSystem.useLLVM or false
-             then buildPackages.llvmPackages.lldClang
+             then buildPackages.llvmPackages.clangUseLLVM
            else buildPackages.gcc;
 
       extraNativeBuildInputs = old.extraNativeBuildInputs
diff --git a/nixpkgs/pkgs/stdenv/darwin/default.nix b/nixpkgs/pkgs/stdenv/darwin/default.nix
index e8b3ef6c10fd..4ff512386e82 100644
--- a/nixpkgs/pkgs/stdenv/darwin/default.nix
+++ b/nixpkgs/pkgs/stdenv/darwin/default.nix
@@ -1,18 +1,38 @@
 { lib
-, localSystem, crossSystem, config, overlays, crossOverlays ? []
-# Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
-, bootstrapFiles ? let
-  fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
-    url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/5ab5783e4f46c373c6de84deac9ad59b608bb2e6/${file}";
-    inherit (localSystem) system;
-    inherit sha256 executable;
-  }; in {
-    sh      = fetch { file = "sh";    sha256 = "sha256-nbb4XEk3go7ttiWrQyKQMLzPr+qUnwnHkWMtVCZsMCs="; };
-    bzip2   = fetch { file = "bzip2"; sha256 = "sha256-ybnA+JWrKhXSfn20+GVKXkHFTp2Zt79hat8hAVmsUOc="; };
-    mkdir   = fetch { file = "mkdir"; sha256 = "sha256-nmvMxmfcY41/60Z/E8L9u0vgePW5l30Dqw1z+Nr02Hk="; };
-    cpio    = fetch { file = "cpio";  sha256 = "sha256-cB36rN3NLj19Tk37Kc5bodMFMO+mCpEQkKKo0AEMkaU="; };
-    tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kh2vKmjCr/HvR06czZbxUxV5KDRxSF27M6nN3cyofRI="; executable = false; };
-  }
+, localSystem
+, crossSystem
+, config
+, overlays
+, crossOverlays ? [ ]
+  # Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
+, bootstrapFiles ? if localSystem.isAarch64 then
+    let
+      fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
+        url = "http://tarballs.nixos.org/stdenv-darwin/aarch64/20acd4c4f14040485f40e55c0a76c186aa8ca4f3/${file}";
+        inherit (localSystem) system;
+        inherit sha256 executable;
+      }; in
+    {
+      sh = fetch { file = "sh"; sha256 = "17m3xrlbl99j3vm7rzz3ghb47094dyddrbvs2a6jalczvmx7spnj"; };
+      bzip2 = fetch { file = "bzip2"; sha256 = "1khs8s5klf76plhlvlc1ma838r8pc1qigk9f5bdycwgbn0nx240q"; };
+      mkdir = fetch { file = "mkdir"; sha256 = "1m9nk90paazl93v43myv2ay68c1arz39pqr7lk5ddbgb177hgg8a"; };
+      cpio = fetch { file = "cpio"; sha256 = "17pxq61yjjvyd738fy9f392hc9cfzkl612sdr9rxr3v0dgvm8y09"; };
+      tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "1v2332k33akm6mrm4bj749rxnnmc2pkbgcslmd0bbkf76bz2ildy"; executable = false; };
+    }
+  else
+    let
+      fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
+        url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/5ab5783e4f46c373c6de84deac9ad59b608bb2e6/${file}";
+        inherit (localSystem) system;
+        inherit sha256 executable;
+      }; in
+    {
+      sh = fetch { file = "sh"; sha256 = "sha256-nbb4XEk3go7ttiWrQyKQMLzPr+qUnwnHkWMtVCZsMCs="; };
+      bzip2 = fetch { file = "bzip2"; sha256 = "sha256-ybnA+JWrKhXSfn20+GVKXkHFTp2Zt79hat8hAVmsUOc="; };
+      mkdir = fetch { file = "mkdir"; sha256 = "sha256-nmvMxmfcY41/60Z/E8L9u0vgePW5l30Dqw1z+Nr02Hk="; };
+      cpio = fetch { file = "cpio"; sha256 = "sha256-cB36rN3NLj19Tk37Kc5bodMFMO+mCpEQkKKo0AEMkaU="; };
+      tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kh2vKmjCr/HvR06czZbxUxV5KDRxSF27M6nN3cyofRI="; executable = false; };
+    }
 }:
 
 assert crossSystem == localSystem;
@@ -20,14 +40,24 @@ assert crossSystem == localSystem;
 let
   inherit (localSystem) system;
 
-  bootstrapClangVersion = "7.1.0";
+  # Bootstrap version needs to be known to reference headers included in the bootstrap tools
+  bootstrapLlvmVersion = if localSystem.isAarch64 then "11.1.0" else "7.1.0";
+
+  useAppleSDKLibs = localSystem.isAarch64;
+  haveKRB5 = localSystem.isx86_64;
+
+  # final toolchain is injected into llvmPackages_${finalLlvmVersion}
+  finalLlvmVersion = if localSystem.isAarch64 then "11" else "7";
+  finalLlvmPackages = "llvmPackages_${finalLlvmVersion}";
 
   commonImpureHostDeps = [
     "/bin/sh"
     "/usr/lib/libSystem.B.dylib"
     "/usr/lib/system/libunc.dylib" # This dependency is "hidden", so our scanning code doesn't pick it up
   ];
-in rec {
+
+in
+rec {
   commonPreHook = ''
     export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1}
     export NIX_ENFORCE_PURITY=''${NIX_ENFORCE_PURITY-1}
@@ -40,25 +70,30 @@ in rec {
     stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
   '';
 
-  bootstrapTools = derivation {
+  bootstrapTools = derivation ({
     inherit system;
 
-    name    = "bootstrap-tools";
+    name = "bootstrap-tools";
     builder = bootstrapFiles.sh; # Not a filename! Attribute 'sh' on bootstrapFiles
-    args    = [ ./unpack-bootstrap-tools.sh ];
+    args = if localSystem.isAarch64 then [ ./unpack-bootstrap-tools-aarch64.sh ] else [ ./unpack-bootstrap-tools.sh ];
 
     inherit (bootstrapFiles) mkdir bzip2 cpio tarball;
 
     __impureHostDeps = commonImpureHostDeps;
-  };
-
-  stageFun = step: last: {shell             ? "${bootstrapTools}/bin/bash",
-                          overrides         ? (self: super: {}),
-                          extraPreHook      ? "",
-                          extraNativeBuildInputs,
-                          extraBuildInputs,
-                          libcxx,
-                          allowedRequisites ? null}:
+  } // lib.optionalAttrs (config.contentAddressedByDefault or false) {
+    __contentAddressed = true;
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+  });
+
+  stageFun = step: last: { shell ? "${bootstrapTools}/bin/bash"
+                         , overrides ? (self: super: { })
+                         , extraPreHook ? ""
+                         , extraNativeBuildInputs
+                         , extraBuildInputs
+                         , libcxx
+                         , allowedRequisites ? null
+                         }:
     let
       name = "bootstrap-stage${toString step}";
 
@@ -66,11 +101,14 @@ in rec {
         inherit (last) stdenv;
       };
 
+      doSign = localSystem.isAarch64 && last != null;
+      doUpdateAutoTools = localSystem.isAarch64 && last != null;
+
       mkExtraBuildCommands = cc: ''
         rsrc="$out/resource-root"
         mkdir "$rsrc"
-        ln -s "${cc}/lib/clang/${cc.version}/include" "$rsrc"
-        ln -s "${last.pkgs.llvmPackages_7.compiler-rt.out}/lib" "$rsrc/lib"
+        ln -s "${cc.lib or cc}/lib/clang/${cc.version}/include" "$rsrc"
+        ln -s "${last.pkgs."${finalLlvmPackages}".compiler-rt.out}/lib" "$rsrc/lib"
         echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
       '';
 
@@ -79,32 +117,35 @@ in rec {
           inherit lib shell;
           inherit (last) stdenvNoCC;
 
-          nativeTools  = false;
-          nativeLibc   = false;
+          nativeTools = false;
+          nativeLibc = false;
           inherit buildPackages libcxx;
           inherit (last.pkgs) coreutils gnugrep;
-          bintools     = last.pkgs.darwin.binutils;
-          libc         = last.pkgs.darwin.Libsystem;
-          isClang      = true;
-          cc           = last.pkgs.llvmPackages_7.clang-unwrapped;
-        }; in args // (overrides args));
-
-      cc = if last == null then "/dev/null" else mkCC ({ cc, ... }: {
+          bintools = last.pkgs.darwin.binutils;
+          libc = last.pkgs.darwin.Libsystem;
+          isClang = true;
+          cc = last.pkgs."${finalLlvmPackages}".clang-unwrapped;
+        }; in args // (overrides args)
+      );
+
+      cc = if last == null then "/dev/null" else
+      mkCC ({ cc, ... }: {
         extraPackages = [
-          last.pkgs.llvmPackages_7.libcxxabi
-          last.pkgs.llvmPackages_7.compiler-rt
+          last.pkgs."${finalLlvmPackages}".libcxxabi
+          last.pkgs."${finalLlvmPackages}".compiler-rt
         ];
         extraBuildCommands = mkExtraBuildCommands cc;
       });
 
-      ccNoLibcxx = if last == null then "/dev/null" else mkCC ({ cc, ... }: {
+      ccNoLibcxx = if last == null then "/dev/null" else
+      mkCC ({ cc, ... }: {
         libcxx = null;
         extraPackages = [
-          last.pkgs.llvmPackages_7.compiler-rt
+          last.pkgs."${finalLlvmPackages}".compiler-rt
         ];
         extraBuildCommands = ''
           echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
-          echo "-B${last.pkgs.llvmPackages_7.compiler-rt}/lib" >> $out/nix-support/cc-cflags
+          echo "-B${last.pkgs."${finalLlvmPackages}".compiler-rt}/lib" >> $out/nix-support/cc-cflags
           echo "-nostdlib++" >> $out/nix-support/cc-cflags
         '' + mkExtraBuildCommands cc;
       });
@@ -112,9 +153,23 @@ in rec {
       thisStdenv = import ../generic {
         name = "${name}-stdenv-darwin";
 
-        inherit config shell extraNativeBuildInputs extraBuildInputs;
+        inherit config shell extraBuildInputs;
+
+        extraNativeBuildInputs = extraNativeBuildInputs ++ lib.optionals doUpdateAutoTools [
+          last.pkgs.updateAutotoolsGnuConfigScriptsHook
+          last.pkgs.gnu-config
+        ];
+
         allowedRequisites = if allowedRequisites == null then null else allowedRequisites ++ [
-          cc.expand-response-params cc.bintools
+          cc.expand-response-params
+          cc.bintools
+        ] ++ lib.optionals doUpdateAutoTools [
+          last.pkgs.updateAutotoolsGnuConfigScriptsHook
+          last.pkgs.gnu-config
+        ] ++ lib.optionals doSign [
+          last.pkgs.darwin.postLinkSignHook
+          last.pkgs.darwin.sigtool
+          last.pkgs.darwin.signingUtils
         ];
 
         buildPlatform = localSystem;
@@ -131,7 +186,7 @@ in rec {
           ${commonPreHook}
           ${extraPreHook}
         '';
-        initialPath  = [ bootstrapTools ];
+        initialPath = [ bootstrapTools ];
 
         fetchurlBoot = import ../../build-support/fetchurl {
           inherit lib;
@@ -143,13 +198,14 @@ in rec {
         __stdenvImpureHostDeps = commonImpureHostDeps;
         __extraImpureHostDeps = commonImpureHostDeps;
 
-        overrides  = self: super: (overrides self super) // {
+        overrides = self: super: (overrides self super) // {
           inherit ccNoLibcxx;
           fetchurl = thisStdenv.fetchurlBoot;
         };
       };
 
-    in {
+    in
+    {
       inherit config overlays;
       stdenv = thisStdenv;
     };
@@ -172,13 +228,103 @@ in rec {
         '';
       };
 
-      darwin = super.darwin // {
+      pbzx = stdenv.mkDerivation {
+        name = "bootstrap-stage0-pbzx";
+        phases = [ "installPhase" ];
+        installPhase = ''
+          mkdir -p $out/bin
+          ln -s ${bootstrapTools}/bin/pbzx $out/bin
+        '';
+      };
+
+      cpio = stdenv.mkDerivation {
+        name = "bootstrap-stage0-cpio";
+        phases = [ "installPhase" ];
+        installPhase = ''
+          mkdir -p $out/bin
+          ln -s ${bootstrapFiles.cpio} $out/bin/cpio
+        '';
+      };
+
+      darwin = super.darwin.overrideScope (selfDarwin: superDarwin: {
+        darwin-stubs = superDarwin.darwin-stubs.override { inherit (self) stdenvNoCC fetchurl; };
+
+        dyld = {
+          name = "bootstrap-stage0-dyld";
+          buildCommand = ''
+            mkdir -p $out
+            ln -s ${bootstrapTools}/lib     $out/lib
+            ln -s ${bootstrapTools}/include $out/include
+          '';
+        };
+
+        sigtool = stdenv.mkDerivation {
+          name = "bootstrap-stage0-sigtool";
+          phases = [ "installPhase" ];
+          installPhase = ''
+            mkdir -p $out/bin
+            ln -s ${bootstrapTools}/bin/sigtool $out/bin
+
+            # Rewrite nuked references
+            sed -e "s|[^( ]*\bsigtool\b|$out/bin/sigtool|g" \
+              ${bootstrapTools}/bin/codesign > $out/bin/codesign
+            chmod a+x $out/bin/codesign
+          '';
+        };
+
+        print-reexports = stdenv.mkDerivation {
+          name = "bootstrap-stage0-print-reexports";
+          phases = [ "installPhase" ];
+          installPhase = ''
+            mkdir -p $out/bin
+            ln -s ${bootstrapTools}/bin/print-reexports $out/bin
+          '';
+        };
+
+        rewrite-tbd = stdenv.mkDerivation {
+          name = "bootstrap-stage0-rewrite-tbd";
+          phases = [ "installPhase" ];
+          installPhase = ''
+            mkdir -p $out/bin
+            ln -s ${bootstrapTools}/bin/rewrite-tbd $out/bin
+          '';
+        };
+
+        binutils-unwrapped = { name = "bootstrap-stage0-binutils"; outPath = bootstrapTools; };
+
+        cctools = {
+          name = "bootstrap-stage0-cctools";
+          outPath = bootstrapTools;
+          targetPrefix = "";
+        };
+
+        binutils = lib.makeOverridable (import ../../build-support/bintools-wrapper) {
+          shell = "${bootstrapTools}/bin/bash";
+          inherit lib;
+          inherit (self) stdenvNoCC;
+
+          nativeTools = false;
+          nativeLibc = false;
+          inherit (self) buildPackages coreutils gnugrep;
+          libc = selfDarwin.Libsystem;
+          bintools = selfDarwin.binutils-unwrapped;
+          inherit (selfDarwin) postLinkSignHook signingUtils;
+        };
+      } // lib.optionalAttrs (! useAppleSDKLibs) {
+        CF = stdenv.mkDerivation {
+          name = "bootstrap-stage0-CF";
+          buildCommand = ''
+            mkdir -p $out/Library/Frameworks
+            ln -s ${bootstrapTools}/Library/Frameworks/CoreFoundation.framework $out/Library/Frameworks
+          '';
+        };
+
         Libsystem = stdenv.mkDerivation {
           name = "bootstrap-stage0-Libsystem";
           buildCommand = ''
             mkdir -p $out
 
-            cp -r ${self.darwin.darwin-stubs}/usr/lib $out/lib
+            cp -r ${selfDarwin.darwin-stubs}/usr/lib $out/lib
             chmod -R +w $out/lib
             substituteInPlace $out/lib/libSystem.B.tbd --replace /usr/lib/system $out/lib/system
 
@@ -196,35 +342,12 @@ in rec {
             ln -s ${bootstrapTools}/include-Libsystem $out/include
           '';
         };
+      });
 
-        darwin-stubs = super.darwin.darwin-stubs.override { inherit (self) stdenv fetchurl; };
-
-        dyld = {
-          name = "bootstrap-stage0-dyld";
-          buildCommand = ''
-            mkdir -p $out
-            ln -s ${bootstrapTools}/lib     $out/lib
-            ln -s ${bootstrapTools}/include $out/include
-          '';
-        };
-
-        binutils = lib.makeOverridable (import ../../build-support/bintools-wrapper) {
-          shell = "${bootstrapTools}/bin/bash";
-          inherit lib;
-          inherit (self) stdenvNoCC;
-
-          nativeTools  = false;
-          nativeLibc   = false;
-          inherit (self) buildPackages coreutils gnugrep;
-          libc         = self.pkgs.darwin.Libsystem;
-          bintools     = { name = "bootstrap-stage0-binutils"; outPath = bootstrapTools; };
-        };
-      };
-
-      llvmPackages_7 = {
+      "${finalLlvmPackages}" = {
         clang-unwrapped = stdenv.mkDerivation {
           name = "bootstrap-stage0-clang";
-          version = bootstrapClangVersion;
+          version = bootstrapLlvmVersion;
           buildCommand = ''
             mkdir -p $out/lib
             ln -s ${bootstrapTools}/bin $out/bin
@@ -265,284 +388,419 @@ in rec {
       };
     };
 
-    extraNativeBuildInputs = [];
-    extraBuildInputs = [];
+    extraNativeBuildInputs = [ ];
+    extraBuildInputs = [ ];
     libcxx = null;
   };
 
-  stage1 = prevStage: let
-    persistent = self: super: with prevStage; {
-      cmake = super.cmakeMinimal;
+  stage1 = prevStage:
+    let
+      persistent = self: super: with prevStage; {
+        cmake = super.cmakeMinimal;
 
-      python3 = super.python3Minimal;
+        inherit pbzx cpio;
 
-      ninja = super.ninja.override { buildDocs = false; };
+        python3 = super.python3Minimal;
 
-      llvmPackages_7 = super.llvmPackages_7 // (let
-        tools = super.llvmPackages_7.tools.extend (_: _: {
-          inherit (llvmPackages_7) clang-unwrapped;
-        });
-        libraries = super.llvmPackages_7.libraries.extend (_: _: {
-          inherit (llvmPackages_7) compiler-rt libcxx libcxxabi;
-        });
-      in { inherit tools libraries; } // tools // libraries);
-
-      darwin = super.darwin // {
-        binutils = darwin.binutils.override {
-          coreutils = self.coreutils;
-          libc = self.darwin.Libsystem;
-        };
-      };
-    };
-  in with prevStage; stageFun 1 prevStage {
-    extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
-    extraNativeBuildInputs = [];
-    extraBuildInputs = [ ];
-    libcxx = pkgs.libcxx;
+        ninja = super.ninja.override { buildDocs = false; };
 
-    allowedRequisites =
-      [ bootstrapTools ] ++
-      (with pkgs; [ coreutils gnugrep libcxx libcxxabi llvmPackages_7.clang-unwrapped llvmPackages_7.compiler-rt ]) ++
-      (with pkgs.darwin; [ darwin-stubs Libsystem ]);
+        "${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
+          let
+            tools = super."${finalLlvmPackages}".tools.extend (_: _: {
+              inherit (pkgs."${finalLlvmPackages}") clang-unwrapped;
+            });
+            libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
+              inherit (pkgs."${finalLlvmPackages}") compiler-rt libcxx libcxxabi;
+            });
+          in
+          { inherit tools libraries; } // tools // libraries
+        );
 
-    overrides = persistent;
-  };
+        darwin = super.darwin.overrideScope (selfDarwin: _: {
+          inherit (darwin) rewrite-tbd binutils-unwrapped;
 
-  stage2 = prevStage: let
-    persistent = self: super: with prevStage; {
-      inherit
-        zlib patchutils m4 scons flex perl bison unifdef unzip openssl python3
-        libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
-        openssh sqlite sed serf openldap db cyrus-sasl expat apr-util subversion xz
-        findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
-        libssh2 nghttp2 libkrb5 ninja brotli;
-
-      llvmPackages_7 = super.llvmPackages_7 // (let
-        tools = super.llvmPackages_7.tools.extend (_: _: {
-          inherit (llvmPackages_7) clang-unwrapped;
-        });
-        libraries = super.llvmPackages_7.libraries.extend (_: libSuper: {
-          inherit (llvmPackages_7) compiler-rt;
-          libcxx = libSuper.libcxx.override {
-            stdenv = overrideCC self.stdenv self.ccNoLibcxx;
+          signingUtils = darwin.signingUtils.override {
+            inherit (selfDarwin) sigtool;
           };
-          libcxxabi = libSuper.libcxxabi.override {
-            stdenv = overrideCC self.stdenv self.ccNoLibcxx;
-            standalone = true;
+
+          binutils = darwin.binutils.override {
+            coreutils = self.coreutils;
+            libc = selfDarwin.Libsystem;
+            inherit (selfDarwin) postLinkSignHook signingUtils;
           };
         });
-      in { inherit tools libraries; } // tools // libraries);
-
-      darwin = super.darwin // {
-        inherit (darwin)
-          binutils dyld Libsystem xnu configd ICU libdispatch libclosure
-          launchd CF darwin-stubs;
       };
+    in
+    with prevStage; stageFun 1 prevStage {
+      extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
+      extraNativeBuildInputs = [ ];
+      extraBuildInputs = [ pkgs.darwin.CF ];
+      libcxx = pkgs."${finalLlvmPackages}".libcxx;
+
+      allowedRequisites =
+        [ bootstrapTools ] ++
+        (with pkgs; [ coreutils gnugrep ]) ++
+        (with pkgs."${finalLlvmPackages}"; [ libcxx libcxxabi compiler-rt clang-unwrapped ]) ++
+        (with pkgs.darwin; [ Libsystem CF ] ++ lib.optional useAppleSDKLibs objc4);
+
+      overrides = persistent;
     };
-  in with prevStage; stageFun 2 prevStage {
-    extraPreHook = ''
-      export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
-    '';
-
-    extraNativeBuildInputs = [ pkgs.xz ];
-    extraBuildInputs = [ pkgs.darwin.CF ];
-    libcxx = pkgs.libcxx;
-
-    allowedRequisites =
-      [ bootstrapTools ] ++
-      (with pkgs; [
-        xz.bin xz.out libcxx libcxxabi llvmPackages_7.compiler-rt
-        llvmPackages_7.clang-unwrapped zlib libxml2.out curl.out brotli.lib openssl.out
-        libssh2.out nghttp2.lib libkrb5 coreutils gnugrep pcre.out gmp libiconv
-      ]) ++
-      (with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
-
-    overrides = persistent;
-  };
 
-  stage3 = prevStage: let
-    persistent = self: super: with prevStage; {
-      inherit
-        patchutils m4 scons flex perl bison unifdef unzip openssl python3
-        gettext sharutils libarchive pkg-config groff bash subversion
-        openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
-        findfreetype libssh curl cmake autoconf automake libtool cpio
-        libssh2 nghttp2 libkrb5 ninja;
-
-      # Avoid pulling in a full python and its extra dependencies for the llvm/clang builds.
-      libxml2 = super.libxml2.override { pythonSupport = false; };
-
-      llvmPackages_7 = super.llvmPackages_7 // (let
-        libraries = super.llvmPackages_7.libraries.extend (_: _: {
-          inherit (llvmPackages_7) libcxx libcxxabi;
+  stage2 = prevStage:
+    let
+      persistent = self: super: with prevStage; {
+        inherit
+          zlib patchutils m4 scons flex perl bison unifdef unzip openssl python3
+          libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
+          openssh sqlite sed serf openldap db cyrus-sasl expat apr-util subversion xz
+          findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
+          libssh2 nghttp2 libkrb5 ninja brotli;
+
+        "${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
+          let
+            tools = super."${finalLlvmPackages}".tools.extend (_: _: {
+              inherit (pkgs."${finalLlvmPackages}") clang-unwrapped;
+            });
+            libraries = super."${finalLlvmPackages}".libraries.extend (_: libSuper: {
+              inherit (pkgs."${finalLlvmPackages}") compiler-rt;
+              libcxx = libSuper.libcxx.override {
+                stdenv = overrideCC self.stdenv self.ccNoLibcxx;
+              };
+              libcxxabi = libSuper.libcxxabi.override ({
+                stdenv = overrideCC self.stdenv self.ccNoLibcxx;
+              } // lib.optionalAttrs (finalLlvmVersion == "7") {
+                # TODO: the bootstrapping of llvm packages isn't consistent.
+                # `standalone` may be redundant if darwin behaves like useLLVM (or
+                # has useLLVM = true).
+                standalone = true;
+              });
+            });
+          in
+          { inherit tools libraries; } // tools // libraries
+        );
+
+        darwin = super.darwin.overrideScope (_: _: {
+          inherit (darwin)
+            binutils dyld Libsystem xnu configd ICU libdispatch libclosure
+            launchd CF objc4 darwin-stubs sigtool postLinkSignHook signingUtils;
         });
-      in { inherit libraries; } // libraries);
-
-      darwin = super.darwin // {
-        inherit (darwin)
-          dyld Libsystem xnu configd libdispatch libclosure launchd libiconv
-          locale darwin-stubs;
       };
-    };
-  in with prevStage; stageFun 3 prevStage {
-    shell = "${pkgs.bash}/bin/bash";
-
-    # We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
-    # enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting
-    # and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and
-    # patches our shebangs back to point at bootstrapTools. This makes sure bash comes first.
-    extraNativeBuildInputs = with pkgs; [ xz ];
-    extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
-    libcxx = pkgs.libcxx;
-
-    extraPreHook = ''
-      export PATH=${pkgs.bash}/bin:$PATH
-      export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
-    '';
-
-    allowedRequisites =
-      [ bootstrapTools ] ++
-      (with pkgs; [
-        xz.bin xz.out bash libcxx libcxxabi llvmPackages_7.compiler-rt
-        llvmPackages_7.clang-unwrapped zlib libxml2.out curl.out brotli.lib openssl.out
-        libssh2.out nghttp2.lib libkrb5 coreutils gnugrep pcre.out gmp libiconv
-      ]) ++
-      (with pkgs.darwin; [ dyld ICU Libsystem locale ]);
-
-    overrides = persistent;
-  };
+    in
+    with prevStage; stageFun 2 prevStage {
+      extraPreHook = ''
+        export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
+      '';
 
-  stage4 = prevStage: let
-    persistent = self: super: with prevStage; {
-      inherit
-        gnumake gzip gnused bzip2 gawk ed xz patch bash python3
-        ncurses libffi zlib gmp pcre gnugrep cmake
-        coreutils findutils diffutils patchutils ninja libxml2;
-
-      # Hack to make sure we don't link ncurses in bootstrap tools. The proper
-      # solution is to avoid passing -L/nix-store/...-bootstrap-tools/lib,
-      # quite a sledgehammer just to get the C runtime.
-      gettext = super.gettext.overrideAttrs (drv: {
-        configureFlags = drv.configureFlags ++ [
-          "--disable-curses"
-        ];
-      });
+      extraNativeBuildInputs = [ pkgs.xz ];
+      extraBuildInputs = [ pkgs.darwin.CF ];
+      libcxx = pkgs."${finalLlvmPackages}".libcxx;
+
+      allowedRequisites =
+        [ bootstrapTools ] ++
+        (with pkgs; [
+          xz.bin
+          xz.out
+          zlib
+          libxml2.out
+          curl.out
+          openssl.out
+          libssh2.out
+          nghttp2.lib
+          coreutils
+          gnugrep
+          pcre.out
+          gmp
+          libiconv
+          brotli.lib
+        ] ++ lib.optional haveKRB5 libkrb5) ++
+        (with pkgs."${finalLlvmPackages}"; [
+          libcxx
+          libcxxabi
+          compiler-rt
+          clang-unwrapped
+        ]) ++
+        (with pkgs.darwin; [ dyld Libsystem CF ICU locale ] ++ lib.optional useAppleSDKLibs objc4);
+
+      overrides = persistent;
+    };
 
-      llvmPackages_7 = super.llvmPackages_7 // (let
-        tools = super.llvmPackages_7.tools.extend (llvmSelf: _: {
-          clang-unwrapped = llvmPackages_7.clang-unwrapped.override { llvm = llvmSelf.llvm; };
-          llvm = llvmPackages_7.llvm.override { inherit libxml2; };
-        });
-        libraries = super.llvmPackages_7.libraries.extend (llvmSelf: _: {
-          inherit (llvmPackages_7) libcxx libcxxabi compiler-rt;
+  stage3 = prevStage:
+    let
+      persistent = self: super: with prevStage; {
+        inherit
+          patchutils m4 scons flex perl bison unifdef unzip openssl python3
+          gettext sharutils libarchive pkg-config groff bash subversion
+          openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
+          findfreetype libssh curl cmake autoconf automake libtool cpio
+          libssh2 nghttp2 libkrb5 ninja;
+
+        # Avoid pulling in a full python and its extra dependencies for the llvm/clang builds.
+        libxml2 = super.libxml2.override { pythonSupport = false; };
+
+        "${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
+          let
+            libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
+              inherit (pkgs."${finalLlvmPackages}") libcxx libcxxabi;
+            });
+          in
+          { inherit libraries; } // libraries
+        );
+
+        darwin = super.darwin.overrideScope (_: _: {
+          inherit (darwin)
+            dyld Libsystem xnu configd libdispatch libclosure launchd libiconv
+            locale darwin-stubs sigtool;
         });
-      in { inherit tools libraries; } // tools // libraries);
-
-      darwin = super.darwin // rec {
-        inherit (darwin) dyld Libsystem libiconv locale darwin-stubs;
-
-        CF = super.darwin.CF.override {
-          inherit libxml2;
-          python3 = prevStage.python3;
-        };
       };
+    in
+    with prevStage; stageFun 3 prevStage {
+      shell = "${pkgs.bash}/bin/bash";
+
+      # We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
+      # enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting
+      # and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and
+      # patches our shebangs back to point at bootstrapTools. This makes sure bash comes first.
+      extraNativeBuildInputs = with pkgs; [ xz ];
+      extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
+      libcxx = pkgs."${finalLlvmPackages}".libcxx;
+
+      extraPreHook = ''
+        export PATH=${pkgs.bash}/bin:$PATH
+        export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
+      '';
+
+      allowedRequisites =
+        [ bootstrapTools ] ++
+        (with pkgs; [
+          xz.bin
+          xz.out
+          bash
+          zlib
+          libxml2.out
+          curl.out
+          openssl.out
+          libssh2.out
+          nghttp2.lib
+          coreutils
+          gnugrep
+          pcre.out
+          gmp
+          libiconv
+          brotli.lib
+        ] ++ lib.optional haveKRB5 libkrb5) ++
+        (with pkgs."${finalLlvmPackages}"; [
+          libcxx
+          libcxx.dev
+          libcxxabi
+          libcxxabi.dev
+          compiler-rt
+          clang-unwrapped
+        ]) ++
+        (with pkgs.darwin; [ dyld ICU Libsystem locale ] ++ lib.optional useAppleSDKLibs objc4);
+
+      overrides = persistent;
     };
-  in with prevStage; stageFun 4 prevStage {
-    shell = "${pkgs.bash}/bin/bash";
-    extraNativeBuildInputs = with pkgs; [ xz ];
-    extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
-    libcxx = pkgs.libcxx;
-
-    extraPreHook = ''
-      export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
-    '';
-    overrides = persistent;
-  };
 
-  stdenvDarwin = prevStage: let
-    pkgs = prevStage;
-    persistent = self: super: with prevStage; {
-      inherit
-        gnumake gzip gnused bzip2 gawk ed xz patch bash
-        ncurses libffi zlib llvm gmp pcre gnugrep
-        coreutils findutils diffutils patchutils;
-
-      llvmPackages_7 = super.llvmPackages_7 // (let
-        tools = super.llvmPackages_7.tools.extend (_: super: {
-          inherit (llvmPackages_7) llvm clang-unwrapped;
+  stage4 = prevStage:
+    let
+      persistent = self: super: with prevStage; {
+        inherit
+          gnumake gzip gnused bzip2 gawk ed xz patch bash python3
+          ncurses libffi zlib gmp pcre gnugrep cmake
+          coreutils findutils diffutils patchutils ninja libxml2;
+
+        # Hack to make sure we don't link ncurses in bootstrap tools. The proper
+        # solution is to avoid passing -L/nix-store/...-bootstrap-tools/lib,
+        # quite a sledgehammer just to get the C runtime.
+        gettext = super.gettext.overrideAttrs (drv: {
+          configureFlags = drv.configureFlags ++ [
+            "--disable-curses"
+          ];
         });
-        libraries = super.llvmPackages_7.libraries.extend (_: _: {
-          inherit (llvmPackages_7) compiler-rt libcxx libcxxabi;
+
+        "${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
+          let
+            tools = super."${finalLlvmPackages}".tools.extend (llvmSelf: _: {
+              clang-unwrapped-all-outputs = pkgs."${finalLlvmPackages}".clang-unwrapped-all-outputs.override { llvm = llvmSelf.llvm; };
+              libllvm = pkgs."${finalLlvmPackages}".libllvm.override { inherit libxml2; };
+            });
+            libraries = super."${finalLlvmPackages}".libraries.extend (llvmSelf: _: {
+              inherit (pkgs."${finalLlvmPackages}") libcxx libcxxabi compiler-rt;
+            });
+          in
+          { inherit tools libraries; } // tools // libraries
+        );
+
+        darwin = super.darwin.overrideScope (_: superDarwin: {
+          inherit (darwin) dyld Libsystem libiconv locale darwin-stubs;
+
+          # See useAppleSDKLibs in darwin-packages.nix
+          CF = if useAppleSDKLibs then super.darwin.CF else
+          superDarwin.CF.override {
+            inherit libxml2;
+            python3 = prevStage.python3;
+          };
         });
-      in { inherit tools libraries; } // tools // libraries);
+      };
+    in
+    with prevStage; stageFun 4 prevStage {
+      shell = "${pkgs.bash}/bin/bash";
+      extraNativeBuildInputs = with pkgs; [ xz ];
+      extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
+      libcxx = pkgs."${finalLlvmPackages}".libcxx;
+
+      extraPreHook = ''
+        export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
+      '';
+      overrides = persistent;
+    };
 
-      darwin = super.darwin // {
-        inherit (darwin) dyld ICU Libsystem libiconv;
+  stdenvDarwin = prevStage:
+    let
+      doSign = localSystem.isAarch64;
+      pkgs = prevStage;
+      persistent = self: super: with prevStage; {
+        inherit
+          gnumake gzip gnused bzip2 gawk ed xz patch bash
+          ncurses libffi zlib gmp pcre gnugrep
+          coreutils findutils diffutils patchutils pbzx;
+
+        darwin = super.darwin.overrideScope (_: _: {
+          inherit (darwin) dyld ICU Libsystem Csu libiconv rewrite-tbd;
+        } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
+          inherit (darwin) binutils binutils-unwrapped cctools;
+        });
       } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
-        inherit (darwin) binutils binutils-unwrapped cctools;
+        inherit llvm;
+
+        # Need to get rid of these when cross-compiling.
+        "${finalLlvmPackages}" = super."${finalLlvmPackages}" // (
+          let
+            tools = super."${finalLlvmPackages}".tools.extend (_: super: {
+              inherit (pkgs."${finalLlvmPackages}") llvm clang-unwrapped;
+            });
+            libraries = super."${finalLlvmPackages}".libraries.extend (_: _: {
+              inherit (pkgs."${finalLlvmPackages}") compiler-rt libcxx libcxxabi;
+            });
+          in
+          { inherit tools libraries; } // tools // libraries
+        );
+
+        inherit binutils binutils-unwrapped;
       };
-    } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
-      # Need to get rid of these when cross-compiling.
-      inherit binutils binutils-unwrapped;
-    };
-  in import ../generic rec {
-    name = "stdenv-darwin";
+    in
+    import ../generic rec {
+      name = "stdenv-darwin";
 
-    inherit config;
-    inherit (pkgs.stdenv) fetchurlBoot;
+      inherit config;
+      inherit (pkgs.stdenv) fetchurlBoot;
 
-    buildPlatform = localSystem;
-    hostPlatform = localSystem;
-    targetPlatform = localSystem;
+      buildPlatform = localSystem;
+      hostPlatform = localSystem;
+      targetPlatform = localSystem;
 
-    preHook = commonPreHook + ''
-      export NIX_COREFOUNDATION_RPATH=${pkgs.darwin.CF}/Library/Frameworks
-      export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
-    '';
+      preHook = commonPreHook + ''
+        export NIX_COREFOUNDATION_RPATH=${pkgs.darwin.CF}/Library/Frameworks
+        export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
+      '';
 
-    __stdenvImpureHostDeps = commonImpureHostDeps;
-    __extraImpureHostDeps = commonImpureHostDeps;
+      __stdenvImpureHostDeps = commonImpureHostDeps;
+      __extraImpureHostDeps = commonImpureHostDeps;
 
-    initialPath = import ../common-path.nix { inherit pkgs; };
-    shell       = "${pkgs.bash}/bin/bash";
+      initialPath = import ../common-path.nix { inherit pkgs; };
+      shell = "${pkgs.bash}/bin/bash";
 
-    cc = pkgs.llvmPackages.libcxxClang.override {
-      cc = pkgs.llvmPackages.clang-unwrapped;
-    };
+      cc = pkgs."${finalLlvmPackages}".libcxxClang;
 
-    extraNativeBuildInputs = [];
-    extraBuildInputs = [ pkgs.darwin.CF ];
+      extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [
+        pkgs.updateAutotoolsGnuConfigScriptsHook
+      ];
 
-    extraAttrs = {
-      libc = pkgs.darwin.Libsystem;
-      shellPackage = pkgs.bash;
-      inherit bootstrapTools;
-    };
+      extraBuildInputs = [ pkgs.darwin.CF ];
 
-    allowedRequisites = (with pkgs; [
-      xz.out xz.bin libcxx libcxxabi gmp.out gnumake findutils bzip2.out
-      bzip2.bin llvmPackages.llvm llvmPackages.llvm.lib llvmPackages.compiler-rt llvmPackages.compiler-rt.dev
-      zlib.out zlib.dev libffi.out coreutils ed diffutils gnutar
-      gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk
-      gnugrep llvmPackages.clang-unwrapped llvmPackages.clang-unwrapped.lib patch pcre.out gettext
-      binutils.bintools darwin.binutils darwin.binutils.bintools
-      curl.out brotli.lib openssl.out libssh2.out nghttp2.lib libkrb5
-      cc.expand-response-params libxml2.out
-    ]) ++ (with pkgs.darwin; [
-      dyld Libsystem CF cctools ICU libiconv locale libtapi
-    ]);
-
-    overrides = lib.composeExtensions persistent (self: super: {
-      clang = cc;
-      llvmPackages = super.llvmPackages // { clang = cc; };
-      inherit cc;
-
-      darwin = super.darwin // {
-        inherit (prevStage.darwin) CF darwin-stubs;
-        xnu = super.darwin.xnu.override { inherit (prevStage) python3; };
+      extraAttrs = {
+        libc = pkgs.darwin.Libsystem;
+        shellPackage = pkgs.bash;
+        inherit bootstrapTools;
       };
-    });
-  };
+
+      allowedRequisites = (with pkgs; [
+        xz.out
+        xz.bin
+        gmp.out
+        gnumake
+        findutils
+        bzip2.out
+        bzip2.bin
+        zlib.out
+        zlib.dev
+        libffi.out
+        coreutils
+        ed
+        diffutils
+        gnutar
+        gzip
+        ncurses.out
+        ncurses.dev
+        ncurses.man
+        gnused
+        bash
+        gawk
+        gnugrep
+        patch
+        pcre.out
+        gettext
+        binutils.bintools
+        darwin.binutils
+        darwin.binutils.bintools
+        curl.out
+        openssl.out
+        libssh2.out
+        nghttp2.lib
+        brotli.lib
+        cc.expand-response-params
+        libxml2.out
+      ] ++ lib.optional haveKRB5 libkrb5
+      ++ lib.optionals localSystem.isAarch64 [
+        pkgs.updateAutotoolsGnuConfigScriptsHook
+        pkgs.gnu-config
+      ])
+      ++ (with pkgs."${finalLlvmPackages}"; [
+        libcxx
+        libcxx.dev
+        libcxxabi
+        libcxxabi.dev
+        llvm
+        llvm.lib
+        compiler-rt
+        compiler-rt.dev
+        clang-unwrapped
+        libclang.dev
+        libclang.lib
+      ])
+      ++ (with pkgs.darwin; [
+        dyld
+        Libsystem
+        CF
+        cctools
+        ICU
+        libiconv
+        locale
+        libtapi
+      ] ++ lib.optional useAppleSDKLibs objc4
+      ++ lib.optionals doSign [ postLinkSignHook sigtool signingUtils ]);
+
+      overrides = lib.composeExtensions persistent (self: super: {
+        darwin = super.darwin.overrideScope (_: superDarwin: {
+          inherit (prevStage.darwin) CF darwin-stubs;
+          xnu = superDarwin.xnu.override { inherit (prevStage) python3; };
+        });
+      } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
+        clang = cc;
+        llvmPackages = super.llvmPackages // { clang = cc; };
+        inherit cc;
+      });
+    };
 
   stagesDarwin = [
     ({}: stage0)
diff --git a/nixpkgs/pkgs/stdenv/darwin/fixed-xnu-python3.patch b/nixpkgs/pkgs/stdenv/darwin/fixed-xnu-python3.patch
new file mode 100644
index 000000000000..9f29376187f4
--- /dev/null
+++ b/nixpkgs/pkgs/stdenv/darwin/fixed-xnu-python3.patch
@@ -0,0 +1,41 @@
+diff --git a/bsd/kern/makekdebugevents.py b/bsd/kern/makekdebugevents.py
+index 73b2db4..d354ba0 100755
+--- a/bsd/kern/makekdebugevents.py
++++ b/bsd/kern/makekdebugevents.py
+@@ -5,7 +5,7 @@
+ # named kd_events[] or these mappings.
+ # Required to generate a header file used by DEVELOPMENT and DEBUG kernels.
+ #
+- 
++
+ import sys
+ import re
+ 
+@@ -21,18 +21,18 @@ code_table = []
+ # scan file to generate internal table
+ with open(trace_code_file, 'rt') as codes:
+     for line in codes:
+-	m = id_name_pattern.match(line)
+-	if m:
++        m = id_name_pattern.match(line)
++        if m:
+             code_table += [(int(m.group(1),base=16), m.group(2))]
+ 
+ # emit typedef:
+-print "typedef struct {"
+-print "        uint32_t   id;"
+-print "        const char *name;"
+-print "} kd_event_t;"
++print("typedef struct {")
++print("        uint32_t   id;")
++print("        const char *name;")
++print("} kd_event_t;")
+ # emit structure declaration and sorted initialization:
+-print "kd_event_t kd_events[] = {"
++print("kd_event_t kd_events[] = {")
+ for mapping in sorted(code_table, key=lambda x: x[0]):
+-        print "        {0x%x, \"%s\"}," % mapping
+-print "};"
++        print("        {0x%x, \"%s\"}," % mapping)
++print("};")
+ 
diff --git a/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 7b68c877a6ef..08b4372a0a11 100644
--- a/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -1,9 +1,21 @@
-{ pkgspath ? ../../.., test-pkgspath ? pkgspath, system ? builtins.currentSystem }:
-
-with import pkgspath { inherit system; };
+{ pkgspath ? ../../.., test-pkgspath ? pkgspath
+, system ? builtins.currentSystem, crossSystem ? null, bootstrapFiles ? null
+}:
+
+let cross = if crossSystem != null
+      then { inherit crossSystem; }
+      else {};
+    custom-bootstrap = if bootstrapFiles != null
+      then { stdenvStages = args:
+              let args' = args // { bootstrapFiles = bootstrapFiles; };
+              in (import "${pkgspath}/pkgs/stdenv/darwin" args').stagesDarwin;
+           }
+      else {};
+in with import pkgspath ({ inherit system; } // cross // custom-bootstrap);
 
 let
-  llvmPackages = llvmPackages_7;
+  llvmPackages = llvmPackages_11;
+  storePrefixLen = builtins.stringLength builtins.storeDir;
 in rec {
   coreutils_ = coreutils.override (args: {
     # We want coreutils without ACL support.
@@ -20,26 +32,73 @@ in rec {
   # Avoid messing with libkrb5 and libnghttp2.
   curl_ = curlMinimal.override (args: { gssSupport = false; http2Support = false; });
 
+  # Avoid stdenv rebuild.
+  Libsystem_ = (darwin.Libsystem.override (args:
+    { xnu = darwin.xnu.overrideAttrs (oldAttrs:
+      { patches = [ ./fixed-xnu-python3.patch ]; });
+    })).overrideAttrs (oldAttrs:
+    { installPhase = oldAttrs.installPhase + ''
+        cat <<EOF > $out/include/TargetConditionals.h
+        #ifndef __TARGETCONDITIONALS__
+        #define __TARGETCONDITIONALS__
+        #define TARGET_OS_MAC               1
+        #define TARGET_OS_WIN32             0
+        #define TARGET_OS_UNIX              0
+        #define TARGET_OS_OSX               1
+        #define TARGET_OS_IPHONE            0
+        #define TARGET_OS_IOS               0
+        #define TARGET_OS_WATCH             0
+        #define TARGET_OS_BRIDGE            0
+        #define TARGET_OS_TV                0
+        #define TARGET_OS_SIMULATOR         0
+        #define TARGET_OS_EMBEDDED          0
+        #define TARGET_OS_EMBEDDED_OTHER    0 /* Used in configd */
+        #define TARGET_IPHONE_SIMULATOR     TARGET_OS_SIMULATOR /* deprecated */
+        #define TARGET_OS_NANO              TARGET_OS_WATCH /* deprecated */
+
+        #define TARGET_CPU_PPC          0
+        #define TARGET_CPU_PPC64        0
+        #define TARGET_CPU_68K          0
+        #define TARGET_CPU_X86          0
+        #define TARGET_CPU_X86_64       1
+        #define TARGET_CPU_ARM          0
+        #define TARGET_CPU_ARM64        0
+        #define TARGET_CPU_MIPS         0
+        #define TARGET_CPU_SPARC        0
+        #define TARGET_CPU_ALPHA        0
+        #define TARGET_RT_MAC_CFM       0
+        #define TARGET_RT_MAC_MACHO     1
+        #define TARGET_RT_LITTLE_ENDIAN 1
+        #define TARGET_RT_BIG_ENDIAN    0
+        #define TARGET_RT_64_BIT        1
+        #endif  /* __TARGETCONDITIONALS__ */
+        EOF
+      '';
+    });
+
   build = stdenv.mkDerivation {
     name = "stdenv-bootstrap-tools";
 
-    buildInputs = [nukeReferences cpio];
+    nativeBuildInputs = [ buildPackages.nukeReferences buildPackages.cpio ]
+      ++ lib.optionals targetPlatform.isAarch64 [ buildPackages.darwin.sigtool ];
 
     buildCommand = ''
-      mkdir -p $out/bin $out/lib $out/lib/system
+      mkdir -p $out/bin $out/lib $out/lib/system $out/lib/darwin
 
-      # Copy libSystem's .o files for various low-level boot stuff.
-      cp -d ${darwin.Libsystem}/lib/*.o $out/lib
+      ${lib.optionalString stdenv.targetPlatform.isx86_64 ''
+        # Copy libSystem's .o files for various low-level boot stuff.
+        cp -d ${Libsystem_}/lib/*.o $out/lib
 
-      # Resolv is actually a link to another package, so let's copy it properly
-      cp -L ${darwin.Libsystem}/lib/libresolv.9.dylib $out/lib
+        # Resolv is actually a link to another package, so let's copy it properly
+        cp -L ${Libsystem_}/lib/libresolv.9.dylib $out/lib
 
-      cp -rL ${darwin.Libsystem}/include $out
-      chmod -R u+w $out/include
-      cp -rL ${darwin.ICU}/include*             $out/include
-      cp -rL ${libiconv}/include/*       $out/include
-      cp -rL ${gnugrep.pcre.dev}/include/*   $out/include
-      mv $out/include $out/include-Libsystem
+        cp -rL ${Libsystem_}/include $out
+        chmod -R u+w $out/include
+        cp -rL ${darwin.ICU}/include*             $out/include
+        cp -rL ${libiconv}/include/*       $out/include
+        cp -rL ${gnugrep.pcre.dev}/include/*   $out/include
+        mv $out/include $out/include-Libsystem
+      ''}
 
       # Copy coreutils, bash, etc.
       cp ${coreutils_}/bin/* $out/bin
@@ -76,16 +135,32 @@ in rec {
 
       # Copy what we need of clang
       cp -d ${llvmPackages.clang-unwrapped}/bin/clang* $out/bin
-
-      cp -rL ${llvmPackages.clang-unwrapped}/lib/clang $out/lib
+      cp -rd ${llvmPackages.clang-unwrapped.lib}/lib/* $out/lib
 
       cp -d ${llvmPackages.libcxx}/lib/libc++*.dylib $out/lib
       cp -d ${llvmPackages.libcxxabi}/lib/libc++abi*.dylib $out/lib
+      cp -d ${llvmPackages.compiler-rt}/lib/darwin/libclang_rt* $out/lib/darwin
+      cp -d ${llvmPackages.compiler-rt}/lib/libclang_rt* $out/lib
       cp -d ${llvmPackages.llvm.lib}/lib/libLLVM.dylib $out/lib
       cp -d ${libffi}/lib/libffi*.dylib $out/lib
 
       mkdir $out/include
-      cp -rd ${llvmPackages.libcxx}/include/c++     $out/include
+      cp -rd ${llvmPackages.libcxx.dev}/include/c++     $out/include
+
+      ${lib.optionalString targetPlatform.isAarch64 ''
+        # copy .tbd assembly utils
+        cp -d ${pkgs.darwin.rewrite-tbd}/bin/rewrite-tbd $out/bin
+        cp -d ${pkgs.libyaml}/lib/libyaml*.dylib $out/lib
+
+        # copy package extraction tools
+        cp -d ${pkgs.pbzx}/bin/pbzx $out/bin
+        cp -d ${pkgs.xar}/lib/libxar*.dylib $out/lib
+        cp -d ${pkgs.bzip2.out}/lib/libbz2*.dylib $out/lib
+
+        # copy sigtool
+        cp -d ${pkgs.darwin.sigtool}/bin/sigtool $out/bin
+        cp -d ${pkgs.darwin.sigtool}/bin/codesign $out/bin
+      ''}
 
       cp -d ${darwin.ICU}/lib/libicu*.dylib $out/lib
       cp -d ${zlib.out}/lib/libz.*       $out/lib
@@ -93,22 +168,25 @@ in rec {
       cp -d ${xz.out}/lib/liblzma*.*     $out/lib
 
       # Copy binutils.
-      for i in as ld ar ranlib nm strip otool install_name_tool lipo; do
+      for i in as ld ar ranlib nm strip otool install_name_tool lipo codesign_allocate; do
         cp ${cctools_}/bin/$i $out/bin
       done
 
       cp -d ${darwin.libtapi}/lib/libtapi* $out/lib
 
-      cp -rd ${pkgs.darwin.CF}/Library $out
+      ${lib.optionalString targetPlatform.isx86_64 ''
+        cp -rd ${pkgs.darwin.CF}/Library $out
+      ''}
 
       chmod -R u+w $out
 
       nuke-refs $out/bin/*
 
       rpathify() {
-        local libs=$(${cctools_}/bin/otool -L "$1" | tail -n +2 | grep -o "$NIX_STORE.*-\S*") || true
+        local libs=$(${stdenv.cc.targetPrefix}otool -L "$1" | tail -n +2 | grep -o "$NIX_STORE.*-\S*") || true
+        local newlib
         for lib in $libs; do
-          ${cctools_}/bin/install_name_tool -change $lib "@rpath/$(basename $lib)" "$1"
+          ${stdenv.cc.targetPrefix}install_name_tool -change $lib "@rpath/$(basename "$lib")" "$1"
         done
       }
 
@@ -116,20 +194,27 @@ in rec {
       for i in $out/bin/*; do
         if test -x $i -a ! -L $i; then
           chmod +w $i
-          strip $i || true
+          ${stdenv.cc.targetPrefix}strip $i || true
         fi
       done
 
-      for i in $out/bin/* $out/lib/*.dylib $out/lib/clang/*/lib/darwin/*.dylib $out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation; do
+      for i in $out/bin/* $out/lib/*.dylib $out/lib/darwin/*.dylib $out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation; do
         if test -x "$i" -a ! -L "$i"; then
           echo "Adding rpath to $i"
           rpathify $i
         fi
       done
 
+      for i in $out/bin/*; do
+        if test -x "$i" -a ! -L "$i" -a "$(basename $i)" != codesign; then
+          echo "Adding @executable_path to rpath in $i"
+          ${stdenv.cc.targetPrefix}install_name_tool -add_rpath '@executable_path/../lib' $i
+        fi
+      done
+
       nuke-refs $out/lib/*
       nuke-refs $out/lib/system/*
-      nuke-refs $out/lib/clang/*/lib/darwin/*
+      nuke-refs $out/lib/darwin/*
       nuke-refs $out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
 
       mkdir $out/.pack
@@ -143,7 +228,7 @@ in rec {
       cp ${bzip2_.bin}/bin/bzip2 $out/on-server
 
       chmod u+w $out/on-server/*
-      strip $out/on-server/*
+      ${stdenv.cc.targetPrefix}strip $out/on-server/*
       nuke-refs $out/on-server/*
 
       (cd $out/pack && (find | cpio -o -H newc)) | bzip2 > $out/on-server/bootstrap-tools.cpio.bz2
@@ -318,7 +403,10 @@ in rec {
 
   # The ultimate test: bootstrap a whole stdenv from the tools specified above and get a package set out of it
   test-pkgs = import test-pkgspath {
-    inherit system;
+    # if the bootstrap tools are for another platform, we should be testing
+    # that platform.
+    system = if crossSystem != null then crossSystem else system;
+
     stdenvStages = args: let
         args' = args // { inherit bootstrapFiles; };
       in (import (test-pkgspath + "/pkgs/stdenv/darwin") args').stagesDarwin;
diff --git a/nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh b/nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh
new file mode 100644
index 000000000000..63b72972d717
--- /dev/null
+++ b/nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh
@@ -0,0 +1,52 @@
+set -euo pipefail
+
+# Unpack the bootstrap tools tarball.
+echo Unpacking the bootstrap tools...
+$mkdir $out
+$bzip2 -d < $tarball | (cd $out && $cpio -i)
+
+export PATH=$out/bin
+
+# Fix codesign wrapper paths
+sed -i \
+  -e "1c\
+#!$out/bin/bash" \
+  -e "s|[^( ]*\bsigtool\b|$out/bin/sigtool|g" \
+  $out/bin/codesign
+
+updateInstallName() {
+  local path="$1"
+
+  cp "$path" "$path.new"
+  install_name_tool -id "$path" "$path.new"
+  codesign -f -i "$(basename "$path")" -s - "$path.new"
+  mv -f "$path.new" "$path"
+}
+
+find $out
+
+ln -s bash $out/bin/sh
+ln -s bzip2 $out/bin/bunzip2
+
+find $out/lib -type f -name '*.dylib' -print0 | while IFS= read -r -d $'\0' lib; do
+  updateInstallName "$lib"
+done
+
+# Provide a gunzip script.
+cat > $out/bin/gunzip <<EOF
+#!$out/bin/sh
+exec $out/bin/gzip -d "\$@"
+EOF
+chmod +x $out/bin/gunzip
+
+# Provide fgrep/egrep.
+echo "#! $out/bin/sh" > $out/bin/egrep
+echo "exec $out/bin/grep -E \"\$@\"" >> $out/bin/egrep
+echo "#! $out/bin/sh" > $out/bin/fgrep
+echo "exec $out/bin/grep -F \"\$@\"" >> $out/bin/fgrep
+
+cat >$out/bin/dsymutil << EOF
+#!$out/bin/sh
+EOF
+
+chmod +x $out/bin/egrep $out/bin/fgrep $out/bin/dsymutil
diff --git a/nixpkgs/pkgs/stdenv/default.nix b/nixpkgs/pkgs/stdenv/default.nix
index d9eadf26804c..d6c59573f2a5 100644
--- a/nixpkgs/pkgs/stdenv/default.nix
+++ b/nixpkgs/pkgs/stdenv/default.nix
@@ -57,6 +57,7 @@ in
     powerpc64-linux = stagesLinux;
     powerpc64le-linux = stagesLinux;
     x86_64-darwin = stagesDarwin;
+    aarch64-darwin = stagesDarwin;
     x86_64-solaris = stagesNix;
     i686-cygwin = stagesNative;
     x86_64-cygwin = stagesNative;
diff --git a/nixpkgs/pkgs/stdenv/freebsd/default.nix b/nixpkgs/pkgs/stdenv/freebsd/default.nix
index 9a890532b790..ddcdc6a66e08 100644
--- a/nixpkgs/pkgs/stdenv/freebsd/default.nix
+++ b/nixpkgs/pkgs/stdenv/freebsd/default.nix
@@ -170,7 +170,7 @@ in
   ({}: {
     __raw = true;
 
-    bootstrapTools = derivation {
+    bootstrapTools = derivation ({
       inherit system;
       inherit make bash coreutils findutils
         diffutils grep patch gawk cpio sed
@@ -182,7 +182,11 @@ in
       buildInputs = [ make ];
       mkdir = "/bin/mkdir";
       ln = "/bin/ln";
-    };
+    } // lib.optionalAttrs (config.contentAddressedByDefault or false) {
+      __contentAddressed = true;
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+    });
   })
 
   ({ bootstrapTools, ... }: rec {
diff --git a/nixpkgs/pkgs/stdenv/generic/default.nix b/nixpkgs/pkgs/stdenv/generic/default.nix
index cb2b2bc51e9c..88ca1b2c7903 100644
--- a/nixpkgs/pkgs/stdenv/generic/default.nix
+++ b/nixpkgs/pkgs/stdenv/generic/default.nix
@@ -84,6 +84,11 @@ let
       allowedRequisites = allowedRequisites
         ++ defaultNativeBuildInputs ++ defaultBuildInputs;
     }
+    // lib.optionalAttrs (config.contentAddressedByDefault or false) {
+      __contentAddressed = true;
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+    }
     // {
       inherit name;
 
@@ -154,13 +159,6 @@ let
         inherit lib config stdenv;
       }) mkDerivation;
 
-      # Slated for removal in 21.11
-      lib = if config.allowAliases or true then builtins.trace
-        ( "Warning: `stdenv.lib` is deprecated and will be removed in the next release."
-         + " Please use `lib` instead."
-         + " For more information see https://github.com/NixOS/nixpkgs/issues/108938")
-        lib else throw "`stdenv.lib` is a deprecated alias for `lib`";
-
       inherit fetchurlBoot;
 
       inherit overrides;
diff --git a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
index 730c90c227c5..4536024c5118 100644
--- a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
+++ b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
@@ -108,7 +108,7 @@ in rec {
                                       ++ depsHostHost ++ depsHostHostPropagated
                                       ++ buildInputs ++ propagatedBuildInputs
                                       ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0;
-      dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || (stdenv.noCC or false);
+      dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || !stdenv.hasCC;
       supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ];
                               # Musl-based platforms will keep "pie", other platforms will not.
       defaultHardeningFlags = if stdenv.hostPlatform.isMusl &&
diff --git a/nixpkgs/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix b/nixpkgs/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix
index 6118585d545f..d690f4026721 100644
--- a/nixpkgs/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix
+++ b/nixpkgs/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix
@@ -1,6 +1,6 @@
-{ system, bootstrapFiles }:
+{ system, bootstrapFiles, extraAttrs }:
 
-derivation {
+derivation ({
   name = "bootstrap-tools";
 
   builder = bootstrapFiles.busybox;
@@ -15,4 +15,4 @@ derivation {
   langC = true;
   langCC = true;
   isGNU = true;
-}
+} // extraAttrs)
diff --git a/nixpkgs/pkgs/stdenv/linux/bootstrap-tools/default.nix b/nixpkgs/pkgs/stdenv/linux/bootstrap-tools/default.nix
index 6118585d545f..d690f4026721 100644
--- a/nixpkgs/pkgs/stdenv/linux/bootstrap-tools/default.nix
+++ b/nixpkgs/pkgs/stdenv/linux/bootstrap-tools/default.nix
@@ -1,6 +1,6 @@
-{ system, bootstrapFiles }:
+{ system, bootstrapFiles, extraAttrs }:
 
-derivation {
+derivation ({
   name = "bootstrap-tools";
 
   builder = bootstrapFiles.busybox;
@@ -15,4 +15,4 @@ derivation {
   langC = true;
   langCC = true;
   isGNU = true;
-}
+} // extraAttrs)
diff --git a/nixpkgs/pkgs/stdenv/linux/default.nix b/nixpkgs/pkgs/stdenv/linux/default.nix
index f753af499267..63a37d54547d 100644
--- a/nixpkgs/pkgs/stdenv/linux/default.nix
+++ b/nixpkgs/pkgs/stdenv/linux/default.nix
@@ -61,7 +61,16 @@ let
 
 
   # Download and unpack the bootstrap tools (coreutils, GCC, Glibc, ...).
-  bootstrapTools = import (if localSystem.libc == "musl" then ./bootstrap-tools-musl else ./bootstrap-tools) { inherit system bootstrapFiles; };
+  bootstrapTools = import (if localSystem.libc == "musl" then ./bootstrap-tools-musl else ./bootstrap-tools) {
+    inherit system bootstrapFiles;
+    extraAttrs = lib.optionalAttrs
+      (config.contentAddressedByDefault or false)
+      {
+        __contentAddressed = true;
+        outputHashAlgo = "sha256";
+        outputHashMode = "recursive";
+      };
+  };
 
   getLibc = stage: stage.${localSystem.libc};
 
@@ -150,7 +159,8 @@ in
       # create a dummy Glibc here, which will be used in the stdenv of
       # stage1.
       ${localSystem.libc} = self.stdenv.mkDerivation {
-        name = "bootstrap-stage0-${localSystem.libc}";
+        pname = "bootstrap-stage0-${localSystem.libc}";
+        version = "bootstrap";
         buildCommand = ''
           mkdir -p $out
           ln -s ${bootstrapTools}/lib $out/lib
@@ -274,6 +284,10 @@ in
       isl_0_20 = super.isl_0_20.override { stdenv = self.makeStaticLibraries self.stdenv; };
       gcc-unwrapped = super.gcc-unwrapped.override {
         isl = isl_0_20;
+        # Use a deterministically built compiler
+        # see https://github.com/NixOS/nixpkgs/issues/108475 for context
+        reproducibleBuild = true;
+        profiledCompiler = false;
       };
     };
     extraNativeBuildInputs = [ prevStage.patchelf ] ++
diff --git a/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools.nix b/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools.nix
index e4db92b7717c..4db40a2e516b 100644
--- a/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -224,15 +224,24 @@ in with pkgs; rec {
     bootstrapTools = runCommand "bootstrap-tools.tar.xz" {} "cp ${build}/on-server/bootstrap-tools.tar.xz $out";
   };
 
-  bootstrapTools = if (stdenv.hostPlatform.libc == "glibc") then
+  bootstrapTools =
+    let extraAttrs = lib.optionalAttrs
+      (config.contentAddressedByDefault or false)
+      {
+        __contentAddressed = true;
+        outputHashAlgo = "sha256";
+        outputHashMode = "recursive";
+      };
+    in
+    if (stdenv.hostPlatform.libc == "glibc") then
     import ./bootstrap-tools {
       inherit (stdenv.buildPlatform) system; # Used to determine where to build
-      inherit bootstrapFiles;
+      inherit bootstrapFiles extraAttrs;
     }
     else if (stdenv.hostPlatform.libc == "musl") then
     import ./bootstrap-tools-musl {
       inherit (stdenv.buildPlatform) system; # Used to determine where to build
-      inherit bootstrapFiles;
+      inherit bootstrapFiles extraAttrs;
     }
     else throw "unsupported libc";
 
diff --git a/nixpkgs/pkgs/stdenv/native/default.nix b/nixpkgs/pkgs/stdenv/native/default.nix
index 010b4141e876..87862b84bc1b 100644
--- a/nixpkgs/pkgs/stdenv/native/default.nix
+++ b/nixpkgs/pkgs/stdenv/native/default.nix
@@ -132,7 +132,7 @@ in
       inherit lib nativePrefix;
       bintools = import ../../build-support/bintools-wrapper {
         name = "bintools";
-        inherit stdenvNoCC nativePrefix;
+        inherit lib stdenvNoCC nativePrefix;
         nativeTools = true;
         nativeLibc = true;
       };
diff --git a/nixpkgs/pkgs/test/default.nix b/nixpkgs/pkgs/test/default.nix
index b24fc539c93d..8c9e7b6f2813 100644
--- a/nixpkgs/pkgs/test/default.nix
+++ b/nixpkgs/pkgs/test/default.nix
@@ -22,8 +22,7 @@ with pkgs;
   cc-wrapper-libcxx-9 = callPackage ./cc-wrapper { stdenv = llvmPackages_9.libcxxStdenv; };
   stdenv-inputs = callPackage ./stdenv-inputs { };
 
-  haskell-shellFor = callPackage ./haskell-shellFor { };
-  haskell-documentationTarball = callPackage ./haskell-documentationTarball { };
+  haskell = callPackage ./haskell { };
 
   cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
   cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };
@@ -40,6 +39,7 @@ with pkgs;
 
   rustCustomSysroot = callPackage ./rust-sysroot {};
   buildRustCrate = callPackage ../build-support/rust/build-rust-crate/test { };
+  importCargoLock = callPackage ../build-support/rust/test/import-cargo-lock { };
 
   vim = callPackage ./vim {};
 
@@ -51,5 +51,7 @@ with pkgs;
 
   cuda = callPackage ./cuda { };
 
+  trivial = callPackage ../build-support/trivial-builders/test.nix {};
+
   writers = callPackage ../build-support/writers/test.nix {};
 }
diff --git a/nixpkgs/pkgs/test/haskell/default.nix b/nixpkgs/pkgs/test/haskell/default.nix
new file mode 100644
index 000000000000..eb389f4051f8
--- /dev/null
+++ b/nixpkgs/pkgs/test/haskell/default.nix
@@ -0,0 +1,7 @@
+{ lib, callPackage }:
+
+lib.recurseIntoAttrs {
+  shellFor = callPackage ./shellFor { };
+  documentationTarball = callPackage ./documentationTarball { };
+  setBuildTarget = callPackage ./setBuildTarget { };
+}
diff --git a/nixpkgs/pkgs/test/haskell-documentationTarball/default.nix b/nixpkgs/pkgs/test/haskell/documentationTarball/default.nix
index aec3dc41f268..aec3dc41f268 100644
--- a/nixpkgs/pkgs/test/haskell-documentationTarball/default.nix
+++ b/nixpkgs/pkgs/test/haskell/documentationTarball/default.nix
diff --git a/nixpkgs/pkgs/test/haskell/setBuildTarget/Bar.hs b/nixpkgs/pkgs/test/haskell/setBuildTarget/Bar.hs
new file mode 100644
index 000000000000..010014082c7d
--- /dev/null
+++ b/nixpkgs/pkgs/test/haskell/setBuildTarget/Bar.hs
@@ -0,0 +1,4 @@
+module Main where
+
+main :: IO ()
+main = putStrLn "Hello, Bar!"
diff --git a/nixpkgs/pkgs/test/haskell/setBuildTarget/Foo.hs b/nixpkgs/pkgs/test/haskell/setBuildTarget/Foo.hs
new file mode 100644
index 000000000000..fec7bb11fe6c
--- /dev/null
+++ b/nixpkgs/pkgs/test/haskell/setBuildTarget/Foo.hs
@@ -0,0 +1,4 @@
+module Main where
+
+main :: IO ()
+main = putStrLn "Hello, Foo!"
diff --git a/nixpkgs/pkgs/test/haskell/setBuildTarget/Setup.hs b/nixpkgs/pkgs/test/haskell/setBuildTarget/Setup.hs
new file mode 100644
index 000000000000..9a994af677b0
--- /dev/null
+++ b/nixpkgs/pkgs/test/haskell/setBuildTarget/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/nixpkgs/pkgs/test/haskell/setBuildTarget/default.nix b/nixpkgs/pkgs/test/haskell/setBuildTarget/default.nix
new file mode 100644
index 000000000000..b1335e2a74cf
--- /dev/null
+++ b/nixpkgs/pkgs/test/haskell/setBuildTarget/default.nix
@@ -0,0 +1,38 @@
+{ pkgs, haskellPackages }:
+
+let
+  # This can be regenerated by running `cabal2nix .` in the current directory.
+  pkgDef =
+    { mkDerivation, base, lib }:
+      mkDerivation {
+        pname = "haskell-setBuildTarget";
+        version = "0.1.0.0";
+        src = ./.;
+        isLibrary = false;
+        isExecutable = true;
+        executableHaskellDepends = [ base ];
+        license = lib.licenses.bsd3;
+      };
+
+  drv = haskellPackages.callPackage pkgDef {};
+
+  test  = target: excluded:
+    let only = pkgs.haskell.lib.setBuildTarget drv target;
+    in ''
+         if [[ ! -f "${only}/bin/${target}" ]]; then
+           echo "${target} was not built"
+           exit 1
+         fi
+
+         if [[ -f "${only}/bin/${excluded}" ]]; then
+           echo "${excluded} was built, when it should not have been"
+           exit 1
+         fi
+     '';
+
+in pkgs.runCommand "test haskell.lib.setBuildTarget" {} ''
+  ${test "foo" "bar"}
+  ${test "bar" "foo"}
+  touch "$out"
+''
+
diff --git a/nixpkgs/pkgs/test/haskell/setBuildTarget/haskell-setBuildTarget.cabal b/nixpkgs/pkgs/test/haskell/setBuildTarget/haskell-setBuildTarget.cabal
new file mode 100644
index 000000000000..7395e139451c
--- /dev/null
+++ b/nixpkgs/pkgs/test/haskell/setBuildTarget/haskell-setBuildTarget.cabal
@@ -0,0 +1,16 @@
+cabal-version:       >=1.10
+name:                haskell-setBuildTarget
+version:             0.1.0.0
+author:              Isaac Shapira
+maintainer:          fresheyeball@protonmail.com
+build-type:          Simple
+
+executable foo
+  main-is:             Foo.hs
+  build-depends:       base
+  default-language:    Haskell2010
+
+executable bar
+  main-is:             Bar.hs
+  build-depends:       base
+  default-language:    Haskell2010
diff --git a/nixpkgs/pkgs/test/haskell-shellFor/default.nix b/nixpkgs/pkgs/test/haskell/shellFor/default.nix
index 9d13e1112cc1..37ad2e90d89e 100644
--- a/nixpkgs/pkgs/test/haskell-shellFor/default.nix
+++ b/nixpkgs/pkgs/test/haskell/shellFor/default.nix
@@ -1,22 +1,22 @@
-{ lib, haskellPackages, cabal-install }:
+{ lib, writeText, haskellPackages, cabal-install }:
 
 (haskellPackages.shellFor {
-  packages = p: [ p.database-id-class p.constraints ];
+  packages = p: [ p.constraints p.linear ];
   nativeBuildInputs = [ cabal-install ];
   phases = [ "unpackPhase" "buildPhase" "installPhase" ];
   unpackPhase = ''
     sourceRoot=$(pwd)/scratch
     mkdir -p "$sourceRoot"
     cd "$sourceRoot"
-    tar -xf ${haskellPackages.database-id-class.src}
     tar -xf ${haskellPackages.constraints.src}
-    cp ${builtins.toFile "cabal.project" "packages: database-id-class* constraints*"} cabal.project
+    tar -xf ${haskellPackages.linear.src}
+    cp ${writeText "cabal.project" "packages: constraints* linear*"} cabal.project
   '';
   buildPhase = ''
     export HOME=$(mktemp -d)
     mkdir -p $HOME/.cabal
     touch $HOME/.cabal/config
-    cabal v2-build --offline --verbose database-id-class constraints --ghc-options="-O0 -j$NIX_BUILD_CORES"
+    cabal v2-build --offline --verbose constraints linear --ghc-options="-O0 -j$NIX_BUILD_CORES"
   '';
   installPhase = ''
     touch $out
diff --git a/nixpkgs/pkgs/test/rust-sysroot/default.nix b/nixpkgs/pkgs/test/rust-sysroot/default.nix
index 3a786ad6f00b..a5a1596504f9 100644
--- a/nixpkgs/pkgs/test/rust-sysroot/default.nix
+++ b/nixpkgs/pkgs/test/rust-sysroot/default.nix
@@ -11,7 +11,7 @@ let
         sha256 = "0k9ipm9ddm1bad7bs7368wzzp6xwrhyfzfpckdax54l4ffqwljcg";
     };
 
-    cargoSha256 = "1cbcplgz28yxshyrp2krp1jphbrcqdw6wxx3rry91p7hiqyibd30";
+    cargoSha256 = "1x8iwgy1irgfkv2yjkxm6479nwbrk82b0c80jm7y4kw0s32r01lg";
 
     inherit target;
 
diff --git a/nixpkgs/pkgs/test/texlive/default.nix b/nixpkgs/pkgs/test/texlive/default.nix
index 7a6affd6cbe0..d8420d991369 100644
--- a/nixpkgs/pkgs/test/texlive/default.nix
+++ b/nixpkgs/pkgs/test/texlive/default.nix
@@ -1,4 +1,4 @@
-{ runCommandNoCC, fetchurl, file, texlive, writeShellScript }:
+{ lib, runCommandNoCC, fetchurl, file, texlive, writeShellScript }:
 
 {
   chktex = runCommandNoCC "texlive-test-chktex" {
@@ -16,68 +16,69 @@
     grep "One warning printed" "$out"
   '';
 
-  # https://github.com/NixOS/nixpkgs/issues/75605
-  dvipng.basic = runCommandNoCC "texlive-test-dvipng-basic" {
-    nativeBuildInputs = [ file texlive.combined.scheme-medium ];
-    input = fetchurl {
-      name = "test_dvipng.tex";
-      url = "http://git.savannah.nongnu.org/cgit/dvipng.git/plain/test_dvipng.tex?id=b872753590a18605260078f56cbd6f28d39dc035";
-      sha256 = "1pjpf1jvwj2pv5crzdgcrzvbmn7kfmgxa39pcvskl4pa0c9hl88n";
-    };
-  } ''
-    cp "$input" ./document.tex
-
-    latex document.tex
-    dvipng -T tight -strict -picky document.dvi
-    for f in document*.png; do
-      file "$f" | tee output
-      grep PNG output
-    done
+  dvipng = lib.recurseIntoAttrs {
+    # https://github.com/NixOS/nixpkgs/issues/75605
+    basic = runCommandNoCC "texlive-test-dvipng-basic" {
+      nativeBuildInputs = [ file texlive.combined.scheme-medium ];
+      input = fetchurl {
+        name = "test_dvipng.tex";
+        url = "http://git.savannah.nongnu.org/cgit/dvipng.git/plain/test_dvipng.tex?id=b872753590a18605260078f56cbd6f28d39dc035";
+        sha256 = "1pjpf1jvwj2pv5crzdgcrzvbmn7kfmgxa39pcvskl4pa0c9hl88n";
+      };
+    } ''
+      cp "$input" ./document.tex
 
-    mkdir "$out"
-    mv document*.png "$out"/
-  '';
+      latex document.tex
+      dvipng -T tight -strict -picky document.dvi
+      for f in document*.png; do
+        file "$f" | tee output
+        grep PNG output
+      done
 
-  # test dvipng's limited capability to render postscript specials via GS
-  dvipng.ghostscript = runCommandNoCC "texlive-test-ghostscript" {
-    nativeBuildInputs = [ file (with texlive; combine { inherit scheme-small dvipng; }) ];
-    input = builtins.toFile "postscript-sample.tex" ''
-      \documentclass{minimal}
-      \begin{document}
-        Ni
-        \special{ps:
-          newpath
-          0 0 moveto
-          7 7 rlineto
-          0 7 moveto
-          7 -7 rlineto
-          stroke
-          showpage
-        }
-      \end{document}
-    '';
-    gs_trap = writeShellScript "gs_trap.sh" ''
-      exit 1
+      mkdir "$out"
+      mv document*.png "$out"/
     '';
-  } ''
-    cp "$gs_trap" ./gs
-    export PATH=$PWD:$PATH
-    # check that the trap works
-    gs && exit 1
 
-    cp "$input" ./document.tex
+    # test dvipng's limited capability to render postscript specials via GS
+    ghostscript = runCommandNoCC "texlive-test-ghostscript" {
+      nativeBuildInputs = [ file (with texlive; combine { inherit scheme-small dvipng; }) ];
+      input = builtins.toFile "postscript-sample.tex" ''
+        \documentclass{minimal}
+        \begin{document}
+          Ni
+          \special{ps:
+            newpath
+            0 0 moveto
+            7 7 rlineto
+            0 7 moveto
+            7 -7 rlineto
+            stroke
+            showpage
+          }
+        \end{document}
+      '';
+      gs_trap = writeShellScript "gs_trap.sh" ''
+        exit 1
+      '';
+    } ''
+      cp "$gs_trap" ./gs
+      export PATH=$PWD:$PATH
+      # check that the trap works
+      gs && exit 1
 
-    latex document.tex
-    dvipng -T 1in,1in -strict -picky document.dvi
-    for f in document*.png; do
-      file "$f" | tee output
-      grep PNG output
-    done
+      cp "$input" ./document.tex
 
-    mkdir "$out"
-    mv document*.png "$out"/
-  '';
+      latex document.tex
+      dvipng -T 1in,1in -strict -picky document.dvi
+      for f in document*.png; do
+        file "$f" | tee output
+        grep PNG output
+      done
 
+      mkdir "$out"
+      mv document*.png "$out"/
+    '';
+  };
 
   # https://github.com/NixOS/nixpkgs/issues/75070
   dvisvgm = runCommandNoCC "texlive-test-dvisvgm" {
diff --git a/nixpkgs/pkgs/test/vim/default.nix b/nixpkgs/pkgs/test/vim/default.nix
index 4ca004a60c34..cb3953a63f52 100644
--- a/nixpkgs/pkgs/test/vim/default.nix
+++ b/nixpkgs/pkgs/test/vim/default.nix
@@ -1,14 +1,18 @@
-{ vimUtils, vim_configurable, neovim, vimPlugins
-, lib, fetchFromGitHub,
+{ vimUtils, vim_configurable, writeText, vimPlugins
+, lib, fetchFromGitHub
+, pkgs
 }:
 let
   inherit (vimUtils) buildVimPluginFrom2Nix;
 
   packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
+
 in
-{
+  pkgs.recurseIntoAttrs (rec {
   vim_empty_config = vimUtils.vimrcFile { beforePlugins = ""; customRC = ""; };
 
+  ### vim tests
+  ##################
   vim_with_vim2nix = vim_configurable.customize {
     name = "vim"; vimrcConfig.vam.pluginDictionaries = [ "vim-addon-vim2nix" ];
   };
@@ -34,11 +38,6 @@ in
     vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
   };
 
-  # only neovim makes use of `requiredPlugins`, test this here
-  test_nvim_with_vim_nix_using_pathogen = neovim.override {
-    configure.pathogen.pluginNames = [ "vim-nix" ];
-  };
-
   # regression test for https://github.com/NixOS/nixpkgs/issues/53112
   # The user may have specified their own plugins which may not be formatted
   # exactly as the generated ones. In particular, they may not have the `pname`
@@ -61,12 +60,4 @@ in
       });
     vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ];
   };
-
-  # system remote plugin manifest should be generated, deoplete should be usable
-  # without the user having to do `UpdateRemotePlugins`. To test, launch neovim
-  # and do `:call deoplete#enable()`. It will print an error if the remote
-  # plugin is not registered.
-  test_nvim_with_remote_plugin = neovim.override {
-    configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ];
-  };
-}
+})
diff --git a/nixpkgs/pkgs/tools/X11/caffeine-ng/default.nix b/nixpkgs/pkgs/tools/X11/caffeine-ng/default.nix
index 4f709ee9db08..cadfa2c99973 100644
--- a/nixpkgs/pkgs/tools/X11/caffeine-ng/default.nix
+++ b/nixpkgs/pkgs/tools/X11/caffeine-ng/default.nix
@@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   nativeBuildInputs = [ wrapGAppsHook glib ];
   buildInputs = [
     gdk-pixbuf gobject-introspection libnotify gtk3
-    python3Packages.setuptools_scm
+    python3Packages.setuptools-scm
   ];
   pythonPath = with python3Packages; [
     dbus-python docopt ewmh pygobject3 pyxdg
@@ -43,6 +43,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
+    mainProgram = "caffeine";
     maintainers = with maintainers; [ marzipankaiser ];
     description = "Status bar application to temporarily inhibit screensaver and sleep mode";
     homepage = "https://github.com/caffeine-ng/caffeine-ng";
diff --git a/nixpkgs/pkgs/tools/X11/find-cursor/default.nix b/nixpkgs/pkgs/tools/X11/find-cursor/default.nix
index 9e3b779d686b..3f330c63b0f1 100644
--- a/nixpkgs/pkgs/tools/X11/find-cursor/default.nix
+++ b/nixpkgs/pkgs/tools/X11/find-cursor/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "find-cursor";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "arp242";
     repo = "find-cursor";
     rev = "v${version}";
-    sha256 = "13lpcxklv9ayqapyk9pmwxkinhxah5hkr6n0jc2m5hm68nh220w1";
+    sha256 = "sha256-cFvhoEPDFLw6rsPYUF9gqAFzINewnszJEzxRK064NEU=";
   };
 
   nativeBuildInputs = [ installShellFiles git ];
diff --git a/nixpkgs/pkgs/tools/X11/hsetroot/default.nix b/nixpkgs/pkgs/tools/X11/hsetroot/default.nix
index 69842a7bd59c..95ccd9586d9c 100644
--- a/nixpkgs/pkgs/tools/X11/hsetroot/default.nix
+++ b/nixpkgs/pkgs/tools/X11/hsetroot/default.nix
@@ -24,6 +24,10 @@ stdenv.mkDerivation rec {
     libXinerama
   ];
 
+  postPatch = lib.optionalString (!stdenv.cc.isGNU) ''
+    sed -i -e '/--no-as-needed/d' Makefile
+  '';
+
   makeFlags = [ "PREFIX=$(out)" ];
 
   preInstall = ''
diff --git a/nixpkgs/pkgs/tools/X11/libstrangle/default.nix b/nixpkgs/pkgs/tools/X11/libstrangle/default.nix
index d8c220d0fd7f..2d7f6b456c4b 100644
--- a/nixpkgs/pkgs/tools/X11/libstrangle/default.nix
+++ b/nixpkgs/pkgs/tools/X11/libstrangle/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ aske ];
+    mainProgram = "strangle";
   };
 }
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix b/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix
index 0ab7be8374cf..2d1ce4a4e33f 100644
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix
+++ b/nixpkgs/pkgs/tools/X11/opentabletdriver/default.nix
@@ -23,18 +23,18 @@
 
 stdenv.mkDerivation rec {
   pname = "OpenTabletDriver";
-  version = "0.5.1";
+  version = "0.5.3.2";
 
   src = fetchFromGitHub {
     owner = "InfinityGhost";
     repo = "OpenTabletDriver";
     rev = "v${version}";
-    sha256 = "1if2mkj193yzf5si9pwaynrm6wkhqy7ihk4k1lklzcryk5675w36";
+    sha256 = "qRc/9Edp3x7/XVEWgBbPush76MSQz4biYSk+E9Gt68w=";
   };
 
   debPkg = fetchurl {
     url = "https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${version}/OpenTabletDriver.deb";
-    sha256 = "16a1rr0yxra1dhwysbbfgsxpigh2jhjlsl7r28dgp8qcxncck7wg";
+    sha256 = "14k06iyc642x42yadyfmmf8ky84y8rc6kgd63b4ipskkcxyl1gvl";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix b/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix
index ccb7097153bd..45ded855587a 100644
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix
+++ b/nixpkgs/pkgs/tools/X11/opentabletdriver/deps.nix
@@ -1,13 +1,13 @@
 { fetchNuGet }: [
   (fetchNuGet {
     name = "AtkSharp";
-    version = "3.22.25.74";
-    sha256 = "04zjpjrddw5clac0mjpk0q00rbmv45bh1bsqa4s3pc5pb7fm9cd9";
+    version = "3.24.24.34";
+    sha256 = "1jn1vgi9xm0jp7769k6sbdi8d273kigjrsh93i6s4c03hqxv7cqs";
   })
   (fetchNuGet {
     name = "CairoSharp";
-    version = "3.22.25.74";
-    sha256 = "0sx7vmwcrfbkg3g887v051iklcdmdhh43ndp96nk4bccjimmmwl6";
+    version = "3.24.24.34";
+    sha256 = "0pydn1k0cam1gclg9sc1sbnmbyzh28qlc5qanyxcylwghink3kgz";
   })
   (fetchNuGet {
     name = "Eto.Forms";
@@ -15,34 +15,39 @@
     sha256 = "1d71wglk4ixfqfbm6sxmj753x5iwbar8i9zzjy3bh64fy1dn8lz7";
   })
   (fetchNuGet {
+    name = "Eto.Forms";
+    version = "2.5.11";
+    sha256 = "0h86jc19wy3ssj7pb34w1h02v92mg29gdipszwjs3y15piy66z3s";
+  })
+  (fetchNuGet {
     name = "Eto.Platform.Gtk";
-    version = "2.5.10";
-    sha256 = "1pkqvlfx7bzracnw19bl50i9jg4ym376vihmy9qq7m5z5nfdqn4g";
+    version = "2.5.11";
+    sha256 = "1s9njz7l9zghrbzli7lbiav5ss3glqf17npj07f3jldd933nb95j";
   })
   (fetchNuGet {
     name = "GdkSharp";
-    version = "3.22.25.74";
-    sha256 = "07sdfvqk2jmyjj7fyd0mikhnzsk52zd3g2dhip8kz3006cczqm81";
+    version = "3.24.24.34";
+    sha256 = "0r0x0yib7chwsyrbpvicrfwldwqx5lyqq4p86zaxpmzd6zdaj0x5";
   })
   (fetchNuGet {
     name = "GioSharp";
-    version = "3.22.25.74";
-    sha256 = "01l4216bm5jxbxypkkq4d2527c6zd68kbywr3h1lr1darc9nf1d1";
+    version = "3.24.24.34";
+    sha256 = "02hxvgjd4w9jpzbkk7qf9q9bkvyp5hfzwxfqp10vg5lpl9yl3xpx";
   })
   (fetchNuGet {
     name = "GLibSharp";
-    version = "3.22.25.74";
-    sha256 = "0k2p79z4wcswi528v0ykc37rsqfqi6xd6pl0j4csdj9zf19svgx2";
+    version = "3.24.24.34";
+    sha256 = "0kvp033fgdwc8p2abfp5z9pzq66cvwbnjfvr4v4bkpy5s5h181kq";
   })
   (fetchNuGet {
     name = "GtkSharp";
-    version = "3.22.25.74";
-    sha256 = "0vazfvkjyzppcynqa1h70s1jmp4vq2j30v5x2scg8n2c5dxaj0k3";
+    version = "3.24.24.34";
+    sha256 = "0028hzmmqyfx87qqmaf9cgb5psn7gkbmqvixcid67x1d6mzxjicb";
   })
   (fetchNuGet {
     name = "HidSharpCore";
-    version = "1.2.1";
-    sha256 = "0vcw38skr9g691gxbzv3cf6y9rk11vh5pvcyjshdgii2z1z8a4g2";
+    version = "1.2.1.1";
+    sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll";
   })
   (fetchNuGet {
     name = "MessagePack.Annotations";
@@ -121,13 +126,13 @@
   })
   (fetchNuGet {
     name = "Octokit";
-    version = "0.48.0";
-    sha256 = "17ria1shx04rb6knbaswpqndmwam6v3r3lsfsd486q584798ccn8";
+    version = "0.50.0";
+    sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq";
   })
   (fetchNuGet {
     name = "PangoSharp";
-    version = "3.22.25.74";
-    sha256 = "172i1hjpz4rgqlilir8a57kgmciw9x0shz4zwbhhlr59mndvqbih";
+    version = "3.24.24.34";
+    sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw";
   })
   (fetchNuGet {
     name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix b/nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix
index 526fa4a44320..4367d22e9df7 100644
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix
+++ b/nixpkgs/pkgs/tools/X11/opentabletdriver/shell.nix
@@ -1,9 +1,9 @@
-{ pkgs ? import ../../../../. {} }:
+{ pkgs ? import ../../../../. { } }:
 
 with pkgs;
 
 mkShell {
-  buildInputs = [
+  packages = [
     common-updater-scripts
     curl
     dotnetCorePackages.sdk_5_0
diff --git a/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh b/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh
index 715857cf8f46..9944bb0b6dea 100755
--- a/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh
+++ b/nixpkgs/pkgs/tools/X11/opentabletdriver/update.sh
@@ -7,7 +7,7 @@ cd "$(dirname "${BASH_SOURCE[0]}")"
 
 deps_file="$(realpath "./deps.nix")"
 
-new_version="$(curl -s "https://api.github.com/repos/InfinityGhost/OpenTabletDriver/releases" | jq -r '.[0].tag_name' | sed 's|[^0-9.]||g')"
+new_version="$(curl -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r '.[0].tag_name' | sed 's|[^0-9.]||g')"
 old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
 if [[ "$new_version" == "$old_version" ]]; then
   echo "Up to date"
@@ -15,8 +15,8 @@ if [[ "$new_version" == "$old_version" ]]; then
 fi
 
 # Updating the hash of deb package manually since there seems to be no way to do it automatically
-oldDebPkgUrl="https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${old_version}/OpenTabletDriver.deb";
-newDebPkgUrl="https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${new_version}/OpenTabletDriver.deb";
+oldDebPkgUrl="https://github.com/OpenTabletDriver/OpenTabletDriver/releases/download/v${old_version}/OpenTabletDriver.deb";
+newDebPkgUrl="https://github.com/OpenTabletDriver/OpenTabletDriver/releases/download/v${new_version}/OpenTabletDriver.deb";
 oldDebSha256=$(nix-prefetch-url "$oldDebPkgUrl")
 newDebSha256=$(nix-prefetch-url "$newDebPkgUrl")
 echo "oldDebSha256: $oldDebSha256 newDebSha256: $newDebSha256"
diff --git a/nixpkgs/pkgs/tools/X11/wpgtk/default.nix b/nixpkgs/pkgs/tools/X11/wpgtk/default.nix
index cf9bbd9bb988..66464ae0b532 100644
--- a/nixpkgs/pkgs/tools/X11/wpgtk/default.nix
+++ b/nixpkgs/pkgs/tools/X11/wpgtk/default.nix
@@ -1,5 +1,5 @@
 { lib, python3Packages, fetchFromGitHub, libxslt,
-  gobject-introspection, gtk3, wrapGAppsHook, gnome3 }:
+  gobject-introspection, gtk3, wrapGAppsHook, gnome }:
 
 python3Packages.buildPythonApplication rec {
   pname = "wpgtk";
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication rec {
     wrapGAppsHook
     gtk3
     gobject-introspection
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     libxslt
   ];
 
diff --git a/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix b/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix
index 207c052686f8..991b9be22389 100644
--- a/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "http://freedesktop.org/wiki/Software/xdg-user-dirs";
     description = "A tool to help manage well known user directories like the desktop folder and the music folder";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ lethalman ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
index 82aee8f818b4..b7cb9c9d8ba0 100644
--- a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoBuildFlags = lib.optionals (!stdenv.isLinux) [ "--no-default-features" "--features" "pulse" ];
-  cargoSha256 = "1r2xir0x04056kq7j13cpk8984kjrgxbixlacp6vz79yq9c8pv7k";
+  cargoSha256 = "1y7m61j07gvqfqz97mda39nc602sv7a826c06m8l22i7z380xfms";
 
   buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkg-config patchelf python3 ];
diff --git a/nixpkgs/pkgs/tools/X11/xpra/default.nix b/nixpkgs/pkgs/tools/X11/xpra/default.nix
index 0dffdf7bbf79..c3cea1ed0612 100644
--- a/nixpkgs/pkgs/tools/X11/xpra/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xpra/default.nix
@@ -1,9 +1,13 @@
-{ lib, fetchurl, callPackage, substituteAll, python3, pkg-config, writeText
-, xorg, gtk3, glib, pango, cairo, gdk-pixbuf, atk
+{ lib
+, fetchurl
+, fetchpatch
+, substituteAll, python3, pkg-config, runCommand, writeText
+, xorg, gtk3, glib, pango, cairo, gdk-pixbuf, atk, pandoc
 , wrapGAppsHook, xorgserver, getopt, xauth, util-linux, which
-, ffmpeg, x264, libvpx, libwebp, x265
+, ffmpeg, x264, libvpx, libwebp, x265, librsvg
 , libfakeXinerama
 , gst_all_1, pulseaudio, gobject-introspection
+, withNvenc ? false, cudatoolkit, nv-codec-headers-10, nvidia_x11 ? null
 , pam }:
 
 with lib;
@@ -13,8 +17,11 @@ let
 
   xf86videodummy = xorg.xf86videodummy.overrideDerivation (p: {
     patches = [
+      # patch provided by Xpra upstream
       ./0002-Constant-DPI.patch
+      # https://github.com/Xpra-org/xpra/issues/349
       ./0003-fix-pointer-limits.patch
+      # patch provided by Xpra upstream
       ./0005-support-for-30-bit-depth-in-dummy-driver.patch
     ];
   });
@@ -28,35 +35,48 @@ let
     EndSection
   '';
 
+  nvencHeaders = runCommand "nvenc-headers" {
+    inherit nvidia_x11;
+  } ''
+    mkdir -p $out/include $out/lib/pkgconfig
+    cp ${nv-codec-headers-10}/include/ffnvcodec/nvEncodeAPI.h $out/include
+    substituteAll ${./nvenc.pc} $out/lib/pkgconfig/nvenc.pc
+  '';
 in buildPythonApplication rec {
   pname = "xpra";
-  version = "4.0.6";
+  version = "4.2";
 
   src = fetchurl {
-    url = "https://xpra.org/src/${pname}-${version}.tar.xz";
-    sha256 = "nGcvbZFGYd2nQ75LL4YN+xcWb7UsViA3OAqpcrTwieg=";
+    url = "https://xpra.org/src/${pname}-${version}.tar.gz";
+    hash = "sha256-KkQw4FJeH4G5jZ4GdP3aXZ3zxu4GALbiOI6POKJW6fk=";
   };
 
   patches = [
-    (substituteAll {
+    (substituteAll {  # correct hardcoded paths
       src = ./fix-paths.patch;
-      inherit (xorg) xkeyboardconfig;
       inherit libfakeXinerama;
     })
-    ./fix-41106.patch
+    ./fix-41106.patch  # https://github.com/NixOS/nixpkgs/issues/41106
+    # Xorg won't start without. Remove on next version!
+    (fetchpatch {
+      url = "https://github.com/Xpra-org/xpra/commit/f9f242abad69363dfa558e1f6f7956ae99164b67.patch";
+      sha256 = "sha256-TOP9RuXPuqxyKY/7LSSrCWnAmJstEE+D5EwjMiVmchM=";
+    })
   ];
 
   postPatch = ''
     substituteInPlace setup.py --replace '/usr/include/security' '${pam}/include/security'
   '';
 
-  nativeBuildInputs = [ pkg-config wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config wrapGAppsHook pandoc ]
+    ++ lib.optional withNvenc cudatoolkit;
   buildInputs = with xorg; [
     libX11 xorgproto libXrender libXi
     libXtst libXfixes libXcomposite libXdamage
     libXrandr libxkbfile
     ] ++ [
     cython
+    librsvg
 
     pango cairo gdk-pixbuf atk.out gtk3 glib
 
@@ -70,25 +90,26 @@ in buildPythonApplication rec {
 
     pam
     gobject-introspection
-  ];
+  ] ++ lib.optional withNvenc nvencHeaders;
   propagatedBuildInputs = with python3.pkgs; [
     pillow rencode pycrypto cryptography pycups lz4 dbus-python
     netifaces numpy pygobject3 pycairo gst-python pam
     pyopengl paramiko opencv4 python-uinput pyxdg
-    ipaddress idna
-  ];
+    ipaddress idna pyinotify
+  ] ++ lib.optionals withNvenc (with python3.pkgs; [pynvml pycuda]);
 
     # error: 'import_cairo' defined but not used
   NIX_CFLAGS_COMPILE = "-Wno-error=unused-function";
 
   setupPyBuildFlags = [
     "--with-Xdummy"
+    "--without-Xdummy_wrapper"
     "--without-strict"
     "--with-gtk3"
     # Override these, setup.py checks for headers in /usr/* paths
     "--with-pam"
     "--with-vsock"
-  ];
+  ] ++ lib.optional withNvenc "--with-nvenc";
 
   dontWrapGApps = true;
   preFixup = ''
@@ -96,8 +117,12 @@ in buildPythonApplication rec {
       "''${gappsWrapperArgs[@]}"
       --set XPRA_INSTALL_PREFIX "$out"
       --set XPRA_COMMAND "$out/bin/xpra"
+      --set XPRA_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb"
       --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib
       --prefix PATH : ${lib.makeBinPath [ getopt xorgserver xauth which util-linux pulseaudio ]}
+  '' + lib.optionalString withNvenc ''
+      --prefix LD_LIBRARY_PATH : ${nvidia_x11}/lib
+  '' + ''
     )
   '';
 
@@ -116,12 +141,12 @@ in buildPythonApplication rec {
   };
 
   meta = {
-    homepage = "http://xpra.org/";
+    homepage = "https://xpra.org/";
     downloadPage = "https://xpra.org/src/";
-    downloadURLRegexp = "xpra-.*[.]tar[.]xz$";
+    downloadURLRegexp = "xpra-.*[.]tar[.][gx]z$";
     description = "Persistent remote applications for X";
     platforms = platforms.linux;
     license = licenses.gpl2;
-    maintainers = with maintainers; [ tstrobel offline numinit ];
+    maintainers = with maintainers; [ tstrobel offline numinit mvnetbiz ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/X11/xpra/fix-paths.patch b/nixpkgs/pkgs/tools/X11/xpra/fix-paths.patch
index 70bd9027a1a8..b5a58bb03f84 100644
--- a/nixpkgs/pkgs/tools/X11/xpra/fix-paths.patch
+++ b/nixpkgs/pkgs/tools/X11/xpra/fix-paths.patch
@@ -16,19 +16,6 @@ index f962330..b02b6dd 100755
              f.write(b"DEF ENABLE_DEVICE_CAPS=%i" % ENABLE_DEVICE_CAPS)
      cython_add(Extension("xpra.codecs.v4l2.pusher",
      
-diff --git a/xpra/x11/bindings/keyboard_bindings.pyx b/xpra/x11/bindings/keyboard_bindings.pyx
-index bd7023d..064c6b5 100644
---- a/xpra/x11/bindings/keyboard_bindings.pyx
-+++ b/xpra/x11/bindings/keyboard_bindings.pyx
-@@ -21,7 +21,7 @@ from libc.stdlib cimport free, malloc
-
- DEF PATH_MAX = 1024
- DEF DFLT_XKB_RULES_FILE = b"base"
--DEF DFLT_XKB_CONFIG_ROOT = b"/usr/share/X11/xkb"
-+DEF DFLT_XKB_CONFIG_ROOT = b"@xkeyboardconfig@/share/X11/xkb"
-
- ###################################
- # Headers, python magic
 diff --git a/xpra/x11/fakeXinerama.py b/xpra/x11/fakeXinerama.py
 index c867258..617af7c 100755
 --- a/xpra/x11/fakeXinerama.py
diff --git a/nixpkgs/pkgs/tools/X11/xpra/nvenc.pc b/nixpkgs/pkgs/tools/X11/xpra/nvenc.pc
new file mode 100644
index 000000000000..6d8d916a0251
--- /dev/null
+++ b/nixpkgs/pkgs/tools/X11/xpra/nvenc.pc
@@ -0,0 +1,11 @@
+prefix=@out@
+includedir=${prefix}/include
+libdir=@nvidia_x11@/lib
+
+Name: nvenc
+Description: NVENC
+Version: 10
+Requires:
+Conflicts:
+Libs: -L${libdir} -lnvidia-encode
+Cflags: -I${includedir}
diff --git a/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix b/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix
index 234b89f94cd8..d99a6ec8dac5 100644
--- a/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , pkg-config
 , autoreconfHook
+, installShellFiles
 , pixman
 , xcbutil
 , xcbutilimage
@@ -13,20 +14,22 @@
 
 stdenv.mkDerivation rec {
   pname = "xwallpaper";
-  version = "0.6.6";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "stoeckmann";
     repo = "xwallpaper";
     rev = "v${version}";
-    sha256 = "sha256-WYtbwMFzvJ0Xr84gGoKSofSSnmb7Qn6ioGMOnQOqdII=";
+    sha256 = "1bpymspnllbscha8j9y67w9ck2l6yv66zdbknv8s13hz5qi1ishk";
   };
 
-  preConfigure = "./autogen.sh";
-
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  nativeBuildInputs = [ pkg-config autoreconfHook installShellFiles ];
   buildInputs = [ pixman xcbutilimage xcbutil libseccomp libjpeg libpng libXpm ];
 
+  postInstall = ''
+    installShellCompletion --zsh _xwallpaper
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/stoeckmann/xwallpaper";
     description = "Utility for setting wallpapers in X";
diff --git a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
index 63ca45452e65..83d4387bd359 100644
--- a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
+++ b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
@@ -1,23 +1,29 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute2, unixtools, dnsutils }:
+{ stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute2,
+  unixtools, dnsutils, coreutils, gnugrep, gnused }:
 stdenv.mkDerivation rec {
   pname = "acme.sh";
-  version = "2.8.8";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "Neilpang";
     repo = "acme.sh";
     rev = version;
-    sha256 = "1iqwzqgg26vsg7lwmgmga9y3ap9q8r5xyx799bj8kawnr8n6s4jd";
+    sha256 = "sha256-BSKqfj8idpE4OV8/EJkCFo5i1vq/aEde/moqJcwuDvk=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out $out/bin $out/libexec
     cp -R $src/* $_
     makeWrapper $out/libexec/acme.sh $out/bin/acme.sh \
       --prefix PATH : "${
         lib.makeBinPath [
+          coreutils
+          gnugrep
+          gnused
           socat
           openssl
           curl
@@ -25,12 +31,14 @@ stdenv.mkDerivation rec {
           (if stdenv.isLinux then iproute2 else unixtools.netstat)
         ]
       }"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "A pure Unix shell script implementing ACME client protocol";
     homepage = "https://acme.sh/";
     license = licenses.gpl3;
-    maintainers = [ maintainers.yorickvp ];
+    maintainers = teams.serokell.members;
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/ansible/default.nix b/nixpkgs/pkgs/tools/admin/ansible/default.nix
index 58b2852baca3..4c66bda06f73 100644
--- a/nixpkgs/pkgs/tools/admin/ansible/default.nix
+++ b/nixpkgs/pkgs/tools/admin/ansible/default.nix
@@ -1,32 +1,14 @@
 { python3Packages, fetchurl, fetchFromGitHub }:
 
 rec {
-  ansible = ansible_2_10;
+  ansible = ansible_2_11;
 
-  # The python module stays at v2.9.x until the related package set has caught up. Therefore v2.10 gets an override
-  # for now.
-  ansible_2_10 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
-    pname = "ansible";
-    version = "2.10.0";
+  ansible_2_11 = python3Packages.toPythonApplication python3Packages.ansible-core;
 
-    # TODO: migrate to fetchurl, when release becomes available on releases.ansible.com
-    src = fetchFromGitHub {
-      owner = pname;
-      repo = pname;
-      rev = "v${version}";
-      sha256 = "0k9rs5ajx0chaq0xr1cj4x7fr5n8kd4y856miss6k01iv2m7yx42";
-    };
-  }));
+  ansible_2_10 = python3Packages.toPythonApplication python3Packages.ansible-base;
 
+  # End of support 2021/10/02, End of life 2021/12/31
   ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
 
-  ansible_2_8 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
-    pname = "ansible";
-    version = "2.8.14";
-
-    src = fetchurl {
-      url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "19ga0c9qs2b216qjg5k2yknz8ksjn8qskicqspg2d4b8x2nr1294";
-    };
-  }));
+  ansible_2_8 = throw "Ansible 2.8 went end of life on 2021/01/03 and has subsequently been dropped";
 }
diff --git a/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix b/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix
index 070a9b6430ca..901f489fb46d 100644
--- a/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "aws-nuke";
-  version = "2.14.0";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = "rebuy-de";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ULHT2ysAVZHSojIdsbPTuwskwOQVrK8f14r9eq+Effs=";
+    sha256 = "sha256-FntHZi+L0Ti2QFbd8keF1sxcdXc01hs13Np23hF/pVc=";
   };
 
-  vendorSha256 = "sha256-GUCsl5VyptNvStJZgCsJDlllZasX1OhbVkahcQFuiC8=";
+  vendorSha256 = "sha256-VtsHUxI5RuKbQOSu55qPCJHsDO5+cNGT92y9dlibXlc=";
 
   preBuild = ''
     if [ "x$outputHashAlgo" != "x" ]; then
diff --git a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
index d9f20a9bc34b..c17160152817 100644
--- a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
@@ -1,4 +1,10 @@
-{ buildGoModule, lib, fetchFromGitHub, installShellFiles }:
+{ buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, lib
+, makeWrapper
+, xdg-utils
+}:
 buildGoModule rec {
   pname = "aws-vault";
   version = "6.3.1";
@@ -12,9 +18,10 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-Lb5iiuT/Fd3RMt98AafIi9I0FHJaSpJ8pH7r4yZiiiw=";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   postInstall = ''
+    wrapProgram $out/bin/aws-vault --prefix PATH : ${lib.makeBinPath [ xdg-utils ]}
     installShellCompletion --cmd aws-vault \
       --bash $src/contrib/completions/bash/aws-vault.bash \
       --fish $src/contrib/completions/fish/aws-vault.fish \
@@ -32,6 +39,12 @@ buildGoModule rec {
     -X main.Version=v${version}
   '';
 
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/aws-vault --version 2>&1 | grep ${version} > /dev/null
+  '';
+
   meta = with lib; {
     description =
       "A vault for securely storing and accessing AWS credentials in development environments";
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
index a2ea7bb35db3..0824a26855dd 100644
--- a/nixpkgs/pkgs/tools/admin/awscli2/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -3,12 +3,12 @@ let
   py = python3.override {
     packageOverrides = self: super: {
       botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
-        version = "2.0.0dev103";
+        version = "2.0.0dev112";
         src = fetchFromGitHub {
           owner = "boto";
           repo = "botocore";
-          rev = "e30d580042687a79776fdf93264e80746e08d21f";
-          sha256 = "sha256-+cTQQO6dPctvf3WZOk8Mgo1eQUdqRdGCcz7jcVhEvNo=";
+          rev = "221c0aa5dbad42f096e00fed45d2e2071561b1da";
+          sha256 = "sha256-uJCP3bUK/xACQVG4kMBDIIP+zPjre+uWbqWEC/gBTD4=";
         };
       });
       prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec {
@@ -18,19 +18,26 @@ let
           sha256 = "1nr990i4b04rnlw1ghd0xmgvvvhih698mb6lb6jylr76cs7zcnpi";
         };
       });
+      s3transfer = super.s3transfer.overridePythonAttrs (oldAttrs: rec {
+        version = "0.4.2";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "sha256-ywIvSxZVHt67sxo3fT8JYA262nNj2MXbeXbn9Hcy4bI=";
+        };
+      });
     };
   };
 
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.1.35"; # N.B: if you change this, change botocore to a matching version too
+  version = "2.2.4"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    sha256 = "sha256-YgzagbbVLlGSPIhck0YaJg3gQGEdoqXtLapN04Q6hLw=";
+    sha256 = "sha256-MctW31X012DXY16qS6AP6nLiaAt/cuA8iMwGm0oXi6M=";
   };
 
   postPatch = ''
@@ -41,10 +48,10 @@ with py.pkgs; buildPythonApplication rec {
     substituteInPlace setup.py --replace "wcwidth<0.2.0" "wcwidth"
   '';
 
-  # No tests included
-  doCheck = false;
+  checkInputs = [ jsonschema mock nose ];
 
   propagatedBuildInputs = [
+    awscrt
     bcdoc
     botocore
     colorama
@@ -62,6 +69,15 @@ with py.pkgs; buildPythonApplication rec {
     wcwidth
   ];
 
+  checkPhase = ''
+    export PATH=$PATH:$out/bin
+
+    # https://github.com/NixOS/nixpkgs/issues/16144#issuecomment-225422439
+    export HOME=$TMP
+
+    AWS_TEST_COMMAND=$out/bin/aws python scripts/ci/run-tests
+  '';
+
   postInstall = ''
     mkdir -p $out/${python3.sitePackages}/awscli/data
     ${python3.interpreter} scripts/gen-ac-index --index-location $out/${python3.sitePackages}/awscli/data/ac.index
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
index 0c41f4127c80..ea0caf020555 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.20.0";
+  version = "2.24.2";
   srcName = "azure-cli-${version}-src";
 
   src = fetchFromGitHub {
@@ -9,7 +9,7 @@ let
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "sha256-unG17oiqZZJNGg8QCg7xY0GzuMu2gaAIIgGF8TlMBQQ=";
+    sha256 = "sha256-4XmwM0/89hacA8ARs5Zq/ahzeqIc9wS18zT/ale+wQ4=";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -50,6 +50,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-datalake-store
     azure-functions-devops-build
     azure-graphrbac
+    azure-identity
     azure-keyvault
     azure-keyvault-administration
     azure-loganalytics
@@ -110,6 +111,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-security
     azure-mgmt-servicebus
     azure-mgmt-servicefabric
+    azure-mgmt-servicefabricmanagedclusters
     azure-mgmt-signalr
     azure-mgmt-sql
     azure-mgmt-sqlvirtualmachine
@@ -130,6 +132,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     mock
     paramiko
     pydocumentdb
+    PyGithub
     pygments
     pyopenssl
     pytz
@@ -152,9 +155,9 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     argcomplete
   ];
 
-  # TODO: make shell completion actually work
-  # uses argcomplete, so completion needs PYTHONPATH to work
   postInstall = ''
+    substituteInPlace az.completion.sh \
+      --replace register-python-argcomplete ${py.pkgs.argcomplete}/bin/register-python-argcomplete
     installShellCompletion --bash --name az.bash az.completion.sh
     installShellCompletion --zsh --name _az az.completion.sh
 
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
index 5c3382392921..6dc575c6b602 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -144,8 +144,8 @@ let
       azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.5.0" "zip"
         "1wxh7mgrknnhqyafdd7sbwx8plx0zga2af21vs6yhxy48lw9w8pd";
 
-      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "3.1.0rc1" "zip"
-        "0jg242pjbxvcqskgrmw0q17mhafkip1d8p40hls0w0wn77cnic65";
+      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "8.1.0b4" "zip"
+        "sha256-39msNYlZeZdn8cJ4LjZw9oxzy0YrNSPVEIN21wnkMKs=";
 
       azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "0.4.0" "zip"
         "0v0ycyjnnx09jqf958hj2q6zfpsn80bxxm98jf59y8rj09v99rz1";
@@ -153,8 +153,8 @@ let
       azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.11.0" "zip"
         "f2b85d1d7d7db2af106000910ea5f8b95639874176a5de2f7ab37a2caa67af6b";
 
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "12.0.0" "zip"
-        "sha256-h3nif64OgekSh4mjOSTbom8qDXVrIVNksbQ3LwILnx8=";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "18.0.0" "zip"
+        "551036e592f409ef477d30937ea7cc4dda5126576965d9c816fdb8401bbd774c";
 
       azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "1.0.1" "zip"
         "b58bbe82a7429ba589292024896b58d96fe9fa732c578569cac349928dc2ca5f";
@@ -162,8 +162,8 @@ let
       azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "6.3.0" "zip"
         "059lhbxqx1r1717s8xz5ahpxwphq5fgy0h7k6b63cahm818rs0hx";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "19.0.0" "zip"
-        "34815c91193640ad8ff0c4dad7f2d997548c853d2e8b10250329ed516e55879a";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "20.0.0" "zip"
+        "7920bea2e11d78fa616992813aea470a8fb50eab2e646e032e138f93d53b70e8";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
@@ -171,26 +171,29 @@ let
       azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "1.4.0" "zip"
         "1qw6228bia5pimcijr755npli2l33jyfka1s2bzgl1w4h3prsji7";
 
-      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "9.4.0" "zip"
-        "1jfs2v0bblpn8lg98zgll6f7k7247r6vwrr0p1898xvhdh8881nr";
+      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "11.2.0" "zip"
+        "sha256-x2YJt+fX0B+YMn7+yYi4t21K518DQQ3kBHn1nCrDSqo=";
 
       azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.2.0" "zip"
         "8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998";
 
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "3.0.0" "zip"
-        "sha256-/WV5vxXOg9CUT+NAnhpOG7f+QBGfUlTNVO26LTtuIoM=";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "6.3.0" "zip"
+        "4135104da5b0f3f0a7249abcd8da55936603e50aaaf2868e5f739a717cf20b3d";
+
+      azure-mgmt-databoxedge = overrideAzureMgmtPackage super.azure-mgmt-databoxedge "0.2.0" "zip"
+        "sha256-g8BtUpIGOse8Jrws48gQ/o7sgymlgX0XIxl1ThHS3XA=";
 
       azure-mgmt-deploymentmanager = overrideAzureMgmtPackage super.azure-mgmt-deploymentmanager "0.2.0" "zip"
         "0c6pyr36n9snx879vas5r6l25db6nlp2z96xn759mz4kg4i45qs6";
 
-      azure-mgmt-eventgrid = overrideAzureMgmtPackage super.azure-mgmt-eventgrid "3.0.0rc7" "zip"
-        "1m5905mn362pn03sf89zsnylkrbgs4p1lkafrw3nxa2gnwcfpyb8";
+      azure-mgmt-eventgrid = overrideAzureMgmtPackage super.azure-mgmt-eventgrid "3.0.0rc9" "zip"
+        "sha256-txWYthg9QI5OSW6yE5lY+Gpb+/E6x3jb/obfSQuaAcg=";
 
       azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.4.0" "zip"
         "0cqpjnkpid6a34ifd4vk4fn1h57pa1bg3r756wv082xl2szr34jc";
 
-      azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "0.12.0" "zip"
-        "187z0w5by7d9a2zsz3kidmzjw591akpc6dwhps4jyb4skcmyw86s";
+      azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "2.0.0" "zip"
+        "653a765f0beb6af0c9ecbd290b4101e1b5e0f6450405faf28ab8234c15d8b38b";
 
       azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "4.1.0" "zip"
         "e6d4810f454c0d63a5e816eaa7e54a073a3f70b2256162ff1c234cfe91783ae6";
@@ -201,20 +204,29 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.15.0" "zip"
-        "sha256-XpjDYGCad7RDsv5DHgM35ctwW08C0CBHkfmYX3zmiDY=";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "2.0.0" "zip"
+        "ff3b663e36c961e86fc0cdbd6f9fb9fb863d3e7db9035fe713af7299e809ee5e";
 
-      azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "2.1.0" "zip"
-        "1l55py4fzzwhxlmnwa41gpmqk9v2ncc79w7zq11sm9a5ynrv2c1p";
+      azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip"
+        "407c2dacb33513ffbe9ca4be5addb5e9d4bae0cb7efa613c3f7d531ef7bf8de8";
 
       azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "8.0.0" "zip"
         "3e7a93186594c328a6f34f0e0d9209a05021228baa85aa4c1c4ffdbf8005a45f";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "17.1.0" "zip"
-        "f47852836a5960447ab534784a9285696969f007744ba030828da2eab92621ab";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.0.0" "zip"
+        "5e39a26ae81fa58c13c02029700f8c7b22c3fd832a294c543e3156a91b9459e8";
+
+      azure-mgmt-maps = overrideAzureMgmtPackage super.azure-mgmt-maps "0.1.0" "zip"
+        "sha256-wSDiELthdo2ineJNKLgvjUKuJOUjlutlabSZcJ4i8AY=";
+
+      azure-mgmt-managedservices = overrideAzureMgmtPackage super.azure-mgmt-managedservices "1.0.0" "zip"
+        "sha256-/tg5n8Z3Oq2jfB0ElqRvWUENd8lJTQyllnxTHDN2rRk=";
 
-      azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "0.1.0" "zip"
-        "sha256-baEkJcurDMYvJG5yZrTWev9r3QMey+UMdULC8rJECtQ=";
+      azure-mgmt-managementgroups = overrideAzureMgmtPackage super.azure-mgmt-managementgroups "0.1.0" "zip"
+        "sha256-/2LZgu3aY0o2Fgyx0Vo2epVypay0GeXnrTcejIO9R8c=";
+
+      azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "1.1.0" "zip"
+        "68b381f52a4df4435dacad5a97e1c59ac4c981f667dcca8f9d04453417d60ad8";
 
       azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "3.0.0" "zip"
         "sha256-iUR3VyXFJTYU0ldXbYQe5or6NPVwsFwJJKf3Px2yiiQ=";
@@ -222,8 +234,11 @@ let
       azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "0.2.0" "zip"
         "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
 
-      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "0.48.0" "zip"
-        "1v41k9rsflbm9g06mhi6jsygv9542da53qwjpjkp532jawxrw3ys";
+      azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip"
+        "b60f16e43f7b291582c5f57bae1b083096d8303e9d9958e2c29227a55cc27c45";
+
+      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "2.0.0" "zip"
+        "0040e1c9c795f7bebe43647ff30b62cb0db7175175df5cbfa1e554a6a277b81e";
 
       azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "0.1.0" "zip"
         "1g65lbia1i1jw6qkyjz2ldyl3p90rbr78l8kfryg70sj7z3gnnjn";
@@ -261,14 +276,14 @@ let
       azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "4.1.0" "zip"
         "186g70slb259ybrr69zr2ibbmqgplnpncwxzg0nxp6rd7pml7d85";
 
-      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "8.0.0" "zip"
-        "2c974c6114d8d27152642c82a975812790a5e86ccf609bf370a476d9ea0d2e7d";
+      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "9.0.0" "zip"
+        "2890c489289b8a0bf833852014f2f494eb96873834896910ddfa58cfa97b90da";
 
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "7.0.0" "zip"
-        "sha256-6abJoZs5cbodve75bApaLDWUYzp1R6YOa/y4Azhk7jg=";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "11.0.0" "zip"
+        "28e7070001e7208cdb6c2ad253ec78851abdd73be482230d2c0874eed5bc0907";
 
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc16" "zip"
-        "eT5gH0K4q2Qr1lEpuqjxQhOUrA6bEsAktj+PKsfMXTo=";
+      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc17" "zip"
+        "sha256-M6lenj1rVEJZ+EJyBXkqokFfr1e5sqRgcAbUc0W0svo=";
 
       azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "2.0.0" "zip"
         "e7f7943fe8f0efe98b3b1996cdec47c709765257a6e09e7940f7838a0f829e82";
@@ -282,11 +297,11 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.61.0" "zip"
         "0xfvx2dvfj3fbz4ngn860ipi4v6gxqajyjc8x92r8knhmniyxk7m";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "17.0.0" "zip"
-        "c0e3fd99028d98c80dddabe1c22dfeb3d694e5c1393c6de80766eb240739e4bc";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "18.0.0" "zip"
+        "d17beb34273797fa89863632ff0e1eb9b6a55198abb8c7f05d84980762e5f71f";
 
-      azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "0.6.0" "zip"
-        "1c88pj8diijciizw4c6g1g6liz54cp3xmlm4xnmz97hizfw202gj";
+      azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "6.0.0" "zip"
+        "f6c64ed97d22d0c03c4ca5fc7594bd0f3d4147659c10110160009b93f541298e";
 
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.5.0" "zip"
         "0x6wxb9zrvcayg3yw0nm99p10vvgc0x3zwk9amzs5m682r2z4wap";
@@ -294,8 +309,8 @@ let
       azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "2.2.0" "zip"
         "sha256-Myxg3G0+OAk/bh4k5TOEGGJuyEBtYA2edNlbIXnWE4M=";
 
-      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.6.0" "tar.gz"
-        "sha256-2AWpGyle31IFf/qya3FBYJBUBr3V16Gj+T9s3D7ehBI=";
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.6.2" "tar.gz"
+        "74061f99730fa82c54d9b8ab3c7d6e219da3f30912740ecf0456b20cb3555ebc";
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
@@ -327,21 +342,21 @@ let
       });
 
       azure-synapse-artifacts = super.azure-synapse-artifacts.overrideAttrs(oldAttrs: rec {
-        version = "0.3.0";
+        version = "0.6.0";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "0p43zmw96fh3wp75phf3fcqdfb36adqvxfc945yfda6fi555nw1a";
+          sha256 = "ec113d37386b8787862baaf9da0318364a008004a377d20fdfca31cfe8d16210";
           extension = "zip";
         };
       });
 
       azure-synapse-accesscontrol = super.azure-synapse-accesscontrol.overrideAttrs(oldAttrs: rec {
-        version = "0.2.0";
+        version = "0.5.0";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "1rsdqrhrgy09kbw6c7krb4hlaxs1ldb6lilwrbxgp3zqybxxnh5b";
+          sha256 = "sha256-g14ySiByqPgkJGRH8EnIRJO9Q6H2usS5FOeMCQiUuwQ=";
           extension = "zip";
         };
       });
@@ -417,6 +432,16 @@ let
         '';
       });
 
+      adal = super.adal.overridePythonAttrs(oldAttrs: rec {
+        version = "1.2.7";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "sha256-109FuBMXRU2W6YL9HFDm+1yZrCIjcorqh2RDOjn1ZvE=";
+        };
+      });
+
       semver = super.semver.overridePythonAttrs(oldAttrs: rec {
         version = "2.13.0";
 
@@ -435,15 +460,31 @@ let
           inherit version;
           sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
         };
+
+        # new cryptography returns slightly different values than what's expected
+        # this gets tested in azure-cli-core, so not absolutely necessary to run tests here
+        doCheck = false;
+      });
+
+      PyGithub = super.PyGithub.overridePythonAttrs(oldAttrs: rec {
+        version = "1.38";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "sha256-HtCPd17FBnvIRStyveLbuVz05S/yvVDMMsackf+tknI=";
+        };
+
+        doCheck = false;
       });
 
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
-        version = "0.8.0rc2";
+        version = "0.8.2";
 
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256-4pzgVwOVcT5UsjbyGkE30xashMASUzoQe2OGHSnK5do=";
+          sha256 = "sha256-TqpQocXnnRxcjl4XBbZhchsLg6CJaV5Z4inMJsZJY7k=";
         };
       });
 
diff --git a/nixpkgs/pkgs/tools/admin/chamber/default.nix b/nixpkgs/pkgs/tools/admin/chamber/default.nix
index c2126181f36a..4a26603a1341 100644
--- a/nixpkgs/pkgs/tools/admin/chamber/default.nix
+++ b/nixpkgs/pkgs/tools/admin/chamber/default.nix
@@ -1,30 +1,21 @@
-{ buildGoModule, lib, fetchFromGitHub, fetchpatch }:
+{ buildGoModule, lib, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "chamber";
-  version = "2.9.0";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "eOMY9P/fCYvnl6KGNb6wohykLA0Sj9Ti0L18gx5dqUk=";
+    sha256 = "sha256-nIIoU+iz2uOglNaqGIhQ2kUjpFOyOx+flXXwu02UG6Y=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/segmentio/chamber/commit/3aeb416cdf4c232552b653262e37047fc13b1f02.patch";
-      sha256 = "cyxNF9ZP4oG+1sfX9yWZCyntpAvwYUh5BzTirZQGejc=";
-    })
-  ];
+  CGO_ENABLED = 0;
 
-  vendorSha256 = null;
+  vendorSha256 = "sha256-XpLLolxWu9aMp1cyG4dUQk4YtknbIRMmBUdSeyY4PNk=";
 
-  # set the version. see: chamber's Makefile
-  buildFlagsArray = ''
-    -ldflags=
-    -X main.Version=v${version}
-  '';
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=v${version}" ];
 
   meta = with lib; {
     description =
diff --git a/nixpkgs/pkgs/tools/admin/clair/default.nix b/nixpkgs/pkgs/tools/admin/clair/default.nix
index e9e039cfbd47..46989bc24fb0 100644
--- a/nixpkgs/pkgs/tools/admin/clair/default.nix
+++ b/nixpkgs/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "4.0.5";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tpk5Avx2bRQlhOnHpmpDG14X9nk3x68TST+VtIW8rL8=";
+    sha256 = "sha256-Ns02Yi0FJPOCpjr1P5c1KOkRZ8saxQzXg/Zn5vYLztU=";
   };
 
-  vendorSha256 = "sha256-O9SEVyBFnmyrQCmccXLyeOqlTwWHzICTLVKGO7rerjI=";
+  vendorSha256 = "sha256-aFaeRhg+aLOmS7VFbgdxaEtZcBKn9zCVINad6ahpDCo=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix b/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
index 55af1679d7ad..0c71850f849e 100644
--- a/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
 
 buildGoModule rec {
   pname = "credhub-cli";
@@ -11,6 +11,14 @@ buildGoModule rec {
     sha256 = "1j0i0b79ph2i52cj0qln8wvp6gwhl73akkn026h27vvmlw9sndc2";
   };
 
+  patches = [
+    # Fix test with Go 1.15
+    (fetchpatch {
+        url = "https://github.com/cloudfoundry-incubator/credhub-cli/commit/4bd1accd513dc5e163e155c4b428878ca0bcedbc.patch";
+        sha256 = "180n3q3d19aw02q7xsn7dxck18jgndz5garj2mb056cwa7mmhw0j";
+    })
+  ];
+
   # these tests require network access that we're not going to give them
   postPatch = ''
     rm commands/api_test.go
diff --git a/nixpkgs/pkgs/tools/admin/eksctl/default.nix b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
index e24f00224832..d3ebba0ab432 100644
--- a/nixpkgs/pkgs/tools/admin/eksctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.41.0";
+  version = "0.52.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-f4DkmIi4Uf4qJ3zkDWcpuN6nqXAwa91lj9Jd1MIskJ8=";
+    sha256 = "sha256-P8v8XliY8XbfdiqSUTUhI4HYBKzAk/LHVSF0OLS8Vag=";
   };
 
-  vendorSha256 = "sha256-G6rOmI1Q+bMRqOrkByff2q1AtuUN4hBfFzYaFq4TsxY=";
+  vendorSha256 = "sha256-4aZVQjcrZ6NKXr0ZFMWEcf6jMtp6TlRlinZ6ZZvLDyE=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index 3f0aca33d61d..c2671646cb6b 100644
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.28.0";
+  version = "1.31.0";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-YbWh4ZIlcxAD/8F/fsYIWjv5hKaHNNi+sNrD7Ax/xDw=";
+    sha256 = "sha256-2CK/W8h0xfReqYt4a3qQ88Ydr8u9Ky6DfttJJaGu9kM=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/nixpkgs/pkgs/tools/admin/fioctl/default.nix b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
index bd8b74f8bc88..0e0c977acd01 100644
--- a/nixpkgs/pkgs/tools/admin/fioctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fioctl";
-  version = "0.15";
+  version = "0.17";
 
   src = fetchFromGitHub {
     owner = "foundriesio";
     repo = "fioctl";
     rev = "v${version}";
-    sha256 = "0gmh32h9j6wpkdxxg7vj158lsaxq30x7hjsc9gwpip3bff278hw4";
+    sha256 = "sha256-u23BQ/sRAfUO36uqv7xY+DkseDnlVesgamsgne8N8kU=";
   };
 
-  vendorSha256 = "170z5a1iwwcpz890nficqnz7rr7yzdxr5jx9pa7s31z17lr8kbz9";
+  vendorSha256 = "sha256-6a+JMj3hh6GPuqnLknv7/uR8vsUsOgsS+pdxHoMqH5w=";
 
   runVend = true;
 
diff --git a/nixpkgs/pkgs/tools/admin/gixy/default.nix b/nixpkgs/pkgs/tools/admin/gixy/default.nix
index 06656a9e033b..1711792ab2bc 100644
--- a/nixpkgs/pkgs/tools/admin/gixy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gixy/default.nix
@@ -38,6 +38,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/yandex/gixy";
     license = licenses.mpl20;
     maintainers = [ maintainers.willibutz ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
index f89e02c8593b..b9567fcfcaaf 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -21,18 +21,18 @@ let
   sources = name: system: {
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "0fb0bw16idj810si32fxqx1nl057bdsjk3pvkgzpf7j96v2lkw71";
+      sha256 = "1f86pkjsp8lrmk8ap40wh9zbzb2ni49vc2cjsdjbj4pkkwivihpv";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "0gnnp8whcx6ada8a4xs8kxrbza97zivk57r9qzv0q5arg4xslagr";
+      sha256 = "1l47lq2wq8y0adrjij3w5ki1mm1f00503ks398flfmbzyav6bad3";
     };
   }.${system};
 
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "336.0.0";
+  version = "343.0.0";
 
   src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
 
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/gsutil-disable-updates.patch b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/gsutil-disable-updates.patch
index de44ea7e7915..1147668862b0 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/gsutil-disable-updates.patch
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/gsutil-disable-updates.patch
@@ -1,16 +1,8 @@
 diff --git a/platform/gsutil/gslib/command_runner.py b/platform/gsutil/gslib/command_runner.py
-index 06ca5e5..4a4e225 100644
+index f490bb3..dc6bbcc 100644
 --- a/platform/gsutil/gslib/command_runner.py
 +++ b/platform/gsutil/gslib/command_runner.py
-@@ -61,7 +61,6 @@ from gslib.utils.text_util import InsistAsciiHeaderValue
- from gslib.utils.text_util import print_to_fd
- from gslib.utils.unit_util import SECONDS_PER_DAY
- from gslib.utils.update_util import LookUpGsutilVersion
--from gslib.tests.util import HAS_NON_DEFAULT_GS_HOST
- 
- 
- def HandleHeaderCoding(headers):
-@@ -331,17 +330,6 @@ class CommandRunner(object):
+@@ -330,17 +330,6 @@ class CommandRunner(object):
      Returns:
        Return value(s) from Command that was run.
      """
@@ -28,7 +20,7 @@ index 06ca5e5..4a4e225 100644
      if not args:
        args = []
  
-@@ -414,18 +402,10 @@ class CommandRunner(object):
+@@ -413,18 +402,10 @@ class CommandRunner(object):
        ShutDownGsutil()
      if GetFailureCount() > 0:
        return_code = 1
diff --git a/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix b/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix
index 3d662a456aad..5e00e487e23e 100644
--- a/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gtk-vnc/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , gobject-introspection
@@ -15,30 +15,22 @@
 , vala
 , gettext
 , perl
-, gnome3
+, gnome
 , gdk-pixbuf
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "gtk-vnc";
-  version = "1.0.0";
+  version = "1.2.0";
 
   outputs = [ "out" "bin" "man" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8";
+    sha256 = "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs";
   };
 
-  patches = [
-    # Fix undeclared gio-unix-2.0 in example program.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gtk-vnc/commit/8588bc1c8321152ddc5086ca9b2c03a7f511e0d0.patch";
-      sha256 = "0i1iapsbngl1mhnz22dd73mnzk68qc4n51pqdhnm18zqc8pawvh4";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -62,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       versionPolicy = "none";
     };
diff --git a/nixpkgs/pkgs/tools/admin/intecture/agent.nix b/nixpkgs/pkgs/tools/admin/intecture/agent.nix
index c9133b2bef65..33145e0e548f 100644
--- a/nixpkgs/pkgs/tools/admin/intecture/agent.nix
+++ b/nixpkgs/pkgs/tools/admin/intecture/agent.nix
@@ -14,7 +14,7 @@ buildRustPackage rec {
     sha256 = "0j27qdgyxybaixggh7k57mpm6rifimn4z2vydk463msc8b3kgywj";
   };
 
-  cargoSha256 = "1is1cbbwxf00dc64h76h57s0wxsai0zm5vfrrss7598cim6a4yxb";
+  cargoSha256 = "0j7yv00ipaa60hpakfj60xrblcyzjwi0lp2hpzz41vq3p9bkigvm";
 
   buildInputs = [ openssl zeromq czmq zlib ];
 
diff --git a/nixpkgs/pkgs/tools/admin/intecture/auth.nix b/nixpkgs/pkgs/tools/admin/intecture/auth.nix
index 67d65f2a8212..5fe81b78c9a6 100644
--- a/nixpkgs/pkgs/tools/admin/intecture/auth.nix
+++ b/nixpkgs/pkgs/tools/admin/intecture/auth.nix
@@ -14,7 +14,7 @@ buildRustPackage rec {
     sha256 = "0c7ar3pc7n59lzfy74lwz51p09s2bglc870rfr4c0vmc91jl0pj2";
   };
 
-  cargoSha256 = "17k4a3jd7n2fkalx7vvgah62pj77n536jvm17d60sj0yz2fxx799";
+  cargoSha256 = "15f7lb0xxaxvhvj8g3kjmqy5jzy4pyzwk3zfdvykphpg18qgg6qj";
 
   buildInputs = [ openssl zeromq czmq zlib ];
 
diff --git a/nixpkgs/pkgs/tools/admin/intecture/cli.nix b/nixpkgs/pkgs/tools/admin/intecture/cli.nix
index 7aa1ec0ae449..9b543b40498e 100644
--- a/nixpkgs/pkgs/tools/admin/intecture/cli.nix
+++ b/nixpkgs/pkgs/tools/admin/intecture/cli.nix
@@ -14,7 +14,7 @@ buildRustPackage rec {
     sha256 = "16a5fkpyqkf8w20k3ircc1d0qmif7nygkzxj6mzk9609dlb0dmxq";
   };
 
-  cargoSha256 = "11r551baz3hrkyf9nv68mdf09nqyvbcfjh2rgy8babmi7jljpzav";
+  cargoSha256 = "09phc0gxz1amrk1bbl5ajg0jmgxcqm4xzbvq3nj58qps991kvgf1";
 
   buildInputs = [ openssl zeromq czmq zlib ];
 
diff --git a/nixpkgs/pkgs/tools/admin/lego/default.nix b/nixpkgs/pkgs/tools/admin/lego/default.nix
index a825908484c4..78f4b8cd2cb2 100644
--- a/nixpkgs/pkgs/tools/admin/lego/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lego/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lego";
-  version = "4.2.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "go-acme";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-S9I6b9+FngX0/W5t3EHG+H1ULsZKoQw1/S4HnSITYG0=";
+    sha256 = "sha256-+5uy6zVfC+utXfwBCEo597CRo4di73ff0eqHyDUxxII=";
   };
 
-  vendorSha256 = "sha256-dVGSMPhAvN/kWgv3XHS+lOZdcbDNL44ELkv7fHAJWlI=";
+  vendorSha256 = "sha256-JgGDP5H7zKQ8sk36JtM/FCWXl7oTScHNboQ/mE5AisU=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/lxd/default.nix b/nixpkgs/pkgs/tools/admin/lxd/default.nix
index 417e01a325d3..fde3e829cc1e 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/default.nix
@@ -1,12 +1,13 @@
 { lib, hwdata, pkg-config, lxc, buildGoPackage, fetchurl
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq
 , squashfsTools, iproute2, iptables, ebtables, iptables-nftables-compat, libcap
-, libco-canonical, dqlite, raft-canonical, sqlite-replication, udev
+, dqlite, raft-canonical, sqlite-replication, udev
 , writeShellScriptBin, apparmor-profiles, apparmor-parser
 , criu
 , bash
 , installShellFiles
 , nftablesSupport ? false
+, nixosTests
 }:
 
 let
@@ -18,13 +19,13 @@ let
 in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.13";
+  version = "4.15";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
-    url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0w2r80wf86jijgfxbkv06lgfhz4p2aaidsqd96bx3q1382nrbzcf";
+    url = "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz";
+    sha256 = "sha256-UXipGNWclBKgr0r0wav85Gnhp2SXkTvDFr9gKJWismU=";
   };
 
   postPatch = ''
@@ -38,9 +39,9 @@ buildGoPackage rec {
     rm _dist/src/github.com/lxc/lxd
     cp -r _dist/src/* ../../..
     popd
-  '';
 
-  buildFlags = [ "-tags libsqlite3" ];
+    makeFlagsArray+=("-tags libsqlite3")
+  '';
 
   postInstall = ''
     # test binaries, code generation
@@ -58,9 +59,11 @@ buildGoPackage rec {
     installShellCompletion --bash --name lxd go/src/github.com/lxc/lxd/scripts/bash/lxd-client
   '';
 
+  passthru.tests.lxd = nixosTests.lxd;
+
   nativeBuildInputs = [ installShellFiles pkg-config makeWrapper ];
-  buildInputs = [ lxc acl libcap libco-canonical.dev dqlite.dev
-                  raft-canonical.dev sqlite-replication udev.dev ];
+  buildInputs = [ lxc acl libcap dqlite.dev raft-canonical.dev
+                  sqlite-replication udev.dev ];
 
   meta = with lib; {
     description = "Daemon based on liblxc offering a REST API to manage containers";
diff --git a/nixpkgs/pkgs/tools/admin/oci-cli/default.nix b/nixpkgs/pkgs/tools/admin/oci-cli/default.nix
index 16ecff07b734..8996ef5069f3 100644
--- a/nixpkgs/pkgs/tools/admin/oci-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/oci-cli/default.nix
@@ -46,7 +46,8 @@ python3Packages.buildPythonApplication rec {
       --replace "cryptography==3.2.1" "cryptography" \
       --replace "pyOpenSSL==19.1.0" "pyOpenSSL" \
       --replace "PyYAML==5.3.1" "PyYAML" \
-      --replace "six==1.14.0" "six"
+      --replace "six==1.14.0" "six" \
+      --replace "arrow==0.17.0" "arrow"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/pebble/default.nix b/nixpkgs/pkgs/tools/admin/pebble/default.nix
index 4813f86ea641..1fb902a8c803 100644
--- a/nixpkgs/pkgs/tools/admin/pebble/default.nix
+++ b/nixpkgs/pkgs/tools/admin/pebble/default.nix
@@ -1,6 +1,7 @@
 { buildGoPackage
 , fetchFromGitHub
 , lib
+, nixosTests
 }:
 
 let
@@ -17,6 +18,10 @@ in buildGoPackage {
     sha256 = "1piwzzfqsdx6s2niczzp4mf4r3qn9nfdgpn7882g52cmmm0vzks2";
   };
 
+  passthru.tests = {
+    smoke-test = nixosTests.acme;
+  };
+
   meta = {
     homepage = "https://github.com/letsencrypt/pebble";
     description = "A miniature version of Boulder, Pebble is a small RFC 8555 ACME test server not suited for a production CA";
diff --git a/nixpkgs/pkgs/tools/admin/procs/default.nix b/nixpkgs/pkgs/tools/admin/procs/default.nix
index 1f86affa8c3b..e86bfb31101a 100644
--- a/nixpkgs/pkgs/tools/admin/procs/default.nix
+++ b/nixpkgs/pkgs/tools/admin/procs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.11.4";
+  version = "0.11.8";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jqcI0ne6fZkgr4bWJ0ysVNvB7q9ErYbsmZoXI38XUng=";
+    sha256 = "sha256-ZeCTUoi2HAMUeyze7LdxH0mi1Dd6q8Sw6+xPAVf3HTs=";
   };
 
-  cargoSha256 = "sha256-0s5MeWX+rXTyftwg6sReNMRgBzhUMIdHu5buKwg1Yi4=";
+  cargoSha256 = "sha256-8myay5y4PGb/8s0vPLeg9xt6xqAQxGFXJz/GiV0ABlA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/data.nix b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
index 5a1dcfe16ecc..2955be2d7937 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
@@ -1,178 +1,194 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "2.24.1";
+  version = "3.3.1";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.24.1-linux-x64.tar.gz";
-        sha256 = "1c3a0ibwchl0lmcb8hr4j0x9b7hfsd0pfg6ay808zg1v8ddrj3xm";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.3.1-linux-x64.tar.gz";
+        sha256 = "1mqvx5g1pfc5fi4xmdp8fva1pzfxqm062mzl972fc3yrzfl7792f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.10.0-linux-amd64.tar.gz";
-        sha256 = "1gqbs33mqqssymn48glm9h5qfkc1097ygk0mdanfigyhwv6rdmnc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-linux-amd64.tar.gz";
+        sha256 = "0d88xfi7zzmpyrnvakwxsyavdx6d5hmfrcf4jhmd53mni0m0551l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.36.0-linux-amd64.tar.gz";
-        sha256 = "0dg5szlslp863slv6lfd8g98946ljvxhvq64b3j4zk6rsn0badvh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.6.0-linux-amd64.tar.gz";
+        sha256 = "0i2bwxx49nqca3kykxbjfbbmgyr3qdlw3q4wp384ai5r9psk4iac";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.14.2-linux-amd64.tar.gz";
-        sha256 = "00ibqxb1qzwi93dsq56av0vxq80lx2rr8wll4q6d8wlph215hlqs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0s8z4h0m3ipkxrbw6h8i8ciam3cgmacw3rvc63qydy5gqv9x6h6w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.9.1-linux-amd64.tar.gz";
-        sha256 = "04sk6km29ssqkv0xw26vq3iik2kfzc3dnzacn324m7fddv3p9wx9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.2.0-linux-amd64.tar.gz";
+        sha256 = "14s6jyackhp324gdlvvqnyi8s7hj0fb92ilrpd460p05p653zb4x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.17.1-linux-amd64.tar.gz";
-        sha256 = "0b3bz952wz7fsbk51j0mlfsyyg9ymc9wnq8kgm7dvs1p5zgzv4ni";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v3.3.0-linux-amd64.tar.gz";
+        sha256 = "1ppwha1zk73w39msp6jym9in7jsrxzc530qgj4lj0961mb9rdkra";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.7.0-linux-amd64.tar.gz";
-        sha256 = "0l1y8fckx7k3lasb6rzy3v58cl1x3qzbb999wi14z16z2a63zwsw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.3.1-linux-amd64.tar.gz";
+        sha256 = "1r9cgwb0d332hrx33i40vphimhwcnqw5gkzbin7rmxlmasrkgwwy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.9.1-linux-amd64.tar.gz";
-        sha256 = "178l4h7wj9pn1283zajaqm7fwcfwzpzq7swrgr8q880qsa611gjs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "06j5k599i8giy5v6scggw8zx1pyfm6w20biwcizv81zk0zkg3fzp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.19.0-linux-amd64.tar.gz";
-        sha256 = "0iliagpyvzn63pwcdq74w8ag9vc7asqpq658b19zly4jd6z3cwkd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v2.0.0-linux-amd64.tar.gz";
+        sha256 = "0yhdcjscdkvvai95z2v6xabvvsfvaqi38ngpqrb73ahlwqhz3nys";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v3.4.0-linux-amd64.tar.gz";
-        sha256 = "0zp3rwhngj009a9s6w2vyvgyhj7nd03mwm44x62ikhnz6f414kr9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.6.0-linux-amd64.tar.gz";
+        sha256 = "1pagydam6xypb1gbk710v3qid2bn77df9lzqfxk5l2pbbs65cvyp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.8.1-linux-amd64.tar.gz";
-        sha256 = "1xhrj950lk6qdazg4flymn3dmkbivc2rd71k8sdy9zfanyxnq8vv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.1.0-linux-amd64.tar.gz";
+        sha256 = "08kxd1x8kx2zdwylhprkb6hs02z3b4jmjphail1s395gzq1271bc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.7.1-linux-amd64.tar.gz";
-        sha256 = "0n2p14iam44icms4c8qrjfy1z7p4m6igxckvqxr0gphi8ngk4ggh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.1.0-linux-amd64.tar.gz";
+        sha256 = "13rchk54wpjwci26kfa519gqagwfrp31w6a9nk1xfdxj45ha9d3x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.8.3-linux-amd64.tar.gz";
-        sha256 = "0l9r0gqhhjbkv4vn4cxm2s9zf93005w8vrb103w101h1gc5gh93l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.0.0-linux-amd64.tar.gz";
+        sha256 = "0lqnb1xrb5ma8ssvn63lh92ihja6zx4nrx40pici1ggaln4sphn0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.5.1-linux-amd64.tar.gz";
-        sha256 = "0clck5cra6bplfxd0nb6vkji50gg4ah4yfvc7202hi3w2b9hfjjg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.3.0-linux-amd64.tar.gz";
+        sha256 = "0l1pr8yfq901wr8ngan1hrwhb4lvcxa92sg38gqixzma0x6xhgwb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.5.1-linux-amd64.tar.gz";
-        sha256 = "1cd2bm030fa9spv7bx817id419lz1c54i8h84ifinkx88ig7ngyx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0q1bi1a80jwgx52m9hy0vp67hdv3nbhd0gqxj3jaf5w4dnh48dca";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.17.1-linux-amd64.tar.gz";
-        sha256 = "1q9sx2lszmkcgphp3vwx0lvs5vc67sk98rn8s6ywhz0p426wakmr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0g392a6zyycdijjn0nswf2x5h31x1hcffgwwkmbjr304n2ycbb50";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "04gaimdzh04v7f11xw1b7p95rbb142kbnix1zqas68wd6vpw9kyp";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.2.0-linux-amd64.tar.gz";
+        sha256 = "1np74bfvp4hr70izb8sarxvga3nnvyi9j7y6f0lqqgrfk2ixn48r";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-linux-amd64.tar.gz";
         sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.9.0-linux-amd64.tar.gz";
-        sha256 = "0n486h5f683yq6z53s9l9x5air1vk4nz1skiirsprz7a12cy2xkn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0s1fkj1s5qni84lz0gr1d10xyxp87877jana67lxbarskvzpys8r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.1.1-linux-amd64.tar.gz";
-        sha256 = "1zpwlvdgjvhnhlzyppqg76csma8kan33amxa1svlhcai8b168878";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-linux-amd64.tar.gz";
+        sha256 = "02g59jaifyjfcx185ir79d8lqic38dgaa9cb8dpi3xhvv32z0b0q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.5.1-linux-amd64.tar.gz";
-        sha256 = "16b1449vb6inlyjpb1iyr5j5mwg1g2d6bcd5g2kmxcsw4yhc7ai7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.1.0-linux-amd64.tar.gz";
+        sha256 = "0npszs37q6j1x5h2sp9j1c6qnhr03lxp2r2ci0d4z3x7vyk06rja";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.13.1-linux-amd64.tar.gz";
-        sha256 = "1z6v5vz0p9g3hrrgrchx2wnbparkbf5b8vn9pwnw69nkplr1qzff";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0xvkkqgfgmw3f2nbmfvn1kwc9088awaw52kx1kxnp217g5r3c0fx";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.24.1-darwin-x64.tar.gz";
-        sha256 = "1x6z0drvaxrps47nisvw513vgskaf86mz8fzlhqfkddp2k5la5j1";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.3.1-darwin-x64.tar.gz";
+        sha256 = "0ri2wq45qm8fabdfsyr1vipnf6ybshxhqr3zrjs8qq1pyf92m5ks";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-darwin-amd64.tar.gz";
+        sha256 = "12mkr0xczdnp21k0k7qn4r3swkaq3pr6v2z853p1db7ksz5kds23";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.6.0-darwin-amd64.tar.gz";
+        sha256 = "1rnb9q8w88jhp9mm3g31dnd4dis3j52pl97cd0yqg046f6jm048q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.10.0-darwin-amd64.tar.gz";
-        sha256 = "05cz7b738bcai4aiya4rkjhmkh9pg6za4xp2snb9nx0jkw2vw2ms";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "1qjz33npwc7wdq3vrvfxhd4g1pwgl3p7cz5fkwyqs4zp24dcx1ga";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.36.0-darwin-amd64.tar.gz";
-        sha256 = "0k74x9a6b9xngrp1cgdal86h23m95r5sa3q036ms4py0phq47r2w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.2.0-darwin-amd64.tar.gz";
+        sha256 = "1bb78g8k6gnhyxxvcjspnhbw2fig58flr14zi5i1cbd89xkz0m3i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.14.2-darwin-amd64.tar.gz";
-        sha256 = "05ggw10z0pp45yqq8bl32l3xjxvgwbs58czpw74whydqbd3qy8av";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v3.3.0-darwin-amd64.tar.gz";
+        sha256 = "1wwldhy6r6985rwx9vv73jb1nsna387sk6mba81lyc55ar67nsp9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.9.1-darwin-amd64.tar.gz";
-        sha256 = "022458yxscfg56s2nqdr95wp2ffm7sni4kaksj87i6c5ddc9f1gx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.3.1-darwin-amd64.tar.gz";
+        sha256 = "18qisw7m1kih27vl2099rzw44h8qyr2f3dnxby03z95f1nwyz1f1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.17.1-darwin-amd64.tar.gz";
-        sha256 = "09nd5nfvjqgpbjs82bm5ym5wdg37mg863wvdp8s3fd8id4gdqb24";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "0ffic6mqr1zyskrv60q9wg7jc0hq23l5g0pdh3clpnn2m1xnxnxm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.7.0-darwin-amd64.tar.gz";
-        sha256 = "0iflll8lkk3s3dx3xl0iqmxac9nlspjnv8gmjfqwpryzk8h1fmzy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v2.0.0-darwin-amd64.tar.gz";
+        sha256 = "1dpsbq3b0fz86355jy7rz4kcsa1lnw4azn25vzlis89ay1ncbblc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.9.1-darwin-amd64.tar.gz";
-        sha256 = "10vp75fc41yk9lg5x7wyhs4mn2f4krfnw4jn5xys7dd475blm6rh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.6.0-darwin-amd64.tar.gz";
+        sha256 = "07fdrg3wd3wlsvh37gbxli0xcxd2c7g61ynrxzi0q8dg7687gjpq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.19.0-darwin-amd64.tar.gz";
-        sha256 = "061s8snsgz044ilh2s48810bmayypdyq9aqkhgal6v3l86jl8m95";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.1.0-darwin-amd64.tar.gz";
+        sha256 = "107b6nlcc99lfysh5v3wz4vz751cdz12k0lm8jh39ikmdck5fphs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v3.4.0-darwin-amd64.tar.gz";
-        sha256 = "1p6xxhy30qzprxk3kwiwimw5m0c73fk7c9j4vrzj2z4kpgj8qx7w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.1.0-darwin-amd64.tar.gz";
+        sha256 = "0qbw4b5zm6dmwdilaz4bjdg55gc5lilwagrxwrab37vq4a8and4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.8.1-darwin-amd64.tar.gz";
-        sha256 = "14gqwz5nalbv97vl9apwda0xxl7cgkp5mixrc10xvx6a94w5758p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.0.0-darwin-amd64.tar.gz";
+        sha256 = "1lkrx2cayhhv432dvzvz8q4i1gfi659rkl59c0y0dkwbs8x425zb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.7.1-darwin-amd64.tar.gz";
-        sha256 = "0i0h1iz999pbz23gbs75bj3lxfg9a6044g4bwdwf3agxf3k9pji3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.3.0-darwin-amd64.tar.gz";
+        sha256 = "0ic8cnrv8z1qwnlqk3dc3xrczx4ncxwdsdh1shk655hcsfdrcldq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.8.3-darwin-amd64.tar.gz";
-        sha256 = "1nwwqq1nn1zr6mia2wd82lzqsa8l3rr50hl1mf6l6ffyxz1q1lzj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "13rq01ylrqp48n62cp640a4mdqbrqnibb0xaw9pcpddl3a3nnck0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.5.1-darwin-amd64.tar.gz";
-        sha256 = "0zkd3rm6z8bc7pcbwl0bbbn0zb3jrl69b84g62ma9vzskccrxxpr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "0awksrbsmvkgfszdsxfv8wfs1m16y1551jnz0rf51dq0cn9963hq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.5.1-darwin-amd64.tar.gz";
-        sha256 = "0v4qqp1x8xi0fqiczmmh2qbf3azbgf09cphia5w8r2kkrn4i0jxn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "18vrp0zzi92x4l5nkjszvd0zr7pk6nl6s3h5a3hvsz5qrj2830q3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.17.1-darwin-amd64.tar.gz";
-        sha256 = "1788ayj5zwlmvhd1qp6rzrcbman5i0hy1hw2fmgcrf66v5qc1f18";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.2.0-darwin-amd64.tar.gz";
+        sha256 = "08rmknpwrbc9h57a3ddg05s0idxbbrcf46i2gkqknjzs7dr6wzas";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-darwin-amd64.tar.gz";
         sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.9.0-darwin-amd64.tar.gz";
-        sha256 = "08af55rrzpm42vx7w1i1cmfk48czjfwln737prp5mwcvddmg5s1g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "1x5fm72v9h3lrqcyyq2xm14bc14rsqhjmc4mwa2wgbk4pvjgawyv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.1.1-darwin-amd64.tar.gz";
-        sha256 = "1j30gkz1m9ap8pd2r3lb3nl82bq5bq3h7y6jq2c0dmv3ksnp197f";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-darwin-amd64.tar.gz";
+        sha256 = "0gd3xnl31892qp8ilz9lc1zdps77nf07jgvh0k37mink8f0ppy2z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.5.1-darwin-amd64.tar.gz";
-        sha256 = "1s5kbqri9k7cpajkgnl2s5l0nznzridj5iscwd9n1nj4bsr44lap";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.1.0-darwin-amd64.tar.gz";
+        sha256 = "0nasbip85f1xjp6dfibw0nh133gf9cy5n4gdqnv5759bg92am7kg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.13.1-darwin-amd64.tar.gz";
-        sha256 = "133xspppmydjri5ba2yxc331ljzd8wj88q3hzmgvp0m50il1ks71";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "0r3zmd4q9nhwbn52vva62m5j9nsrxbfgljrvfyyh19i2hm7l0kcl";
       }
     ];
   };
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/update.sh b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
index 31ac38ab2756..ed4fbd79ed81 100755
--- a/nixpkgs/pkgs/tools/admin/pulumi/update.sh
+++ b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
@@ -3,31 +3,33 @@
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="2.24.1"
+VERSION="3.3.1"
 
 # Grab latest release ${VERSION} from
 # https://github.com/pulumi/pulumi-${NAME}/releases
 plugins=(
-    "auth0=1.10.0"
-    "aws=3.36.0"
-    "cloudflare=2.14.2"
-    "consul=2.9.1"
-    "datadog=2.17.1"
-    "digitalocean=3.7.0"
-    "docker=2.9.1"
-    "gcp=4.19.0"
-    "github=3.4.0"
-    "gitlab=3.8.1"
-    "hcloud=0.7.1"
-    "kubernetes=2.8.3"
-    "mailgun=2.5.1"
-    "mysql=2.5.1"
-    "openstack=2.17.1"
+    "auth0=2.2.0"
+    "aws=4.6.0"
+    "cloudflare=3.1.0"
+    "consul=3.2.0"
+    "datadog=3.3.0"
+    "digitalocean=4.3.1"
+    "docker=3.0.0"
+    "equinix-metal=2.0.0"
+    "gcp=5.6.0"
+    "github=4.1.0"
+    "gitlab=4.1.0"
+    "hcloud=1.0.0"
+    "kubernetes=3.3.0"
+    "linode=3.1.0"
+    "mailgun=3.1.0"
+    "mysql=3.0.0"
+    "openstack=3.2.0"
     "packet=3.2.2"
-    "postgresql=2.9.0"
-    "random=3.1.1"
-    "vault=3.5.1"
-    "vsphere=2.13.1"
+    "postgresql=3.1.0"
+    "random=4.2.0"
+    "vault=4.1.0"
+    "vsphere=3.1.0"
 )
 
 function genMainSrc() {
diff --git a/nixpkgs/pkgs/tools/admin/rset/default.nix b/nixpkgs/pkgs/tools/admin/rset/default.nix
new file mode 100644
index 000000000000..f7c00fffb1cc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/rset/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchurl, coreutils, openssh, gnutar }:
+
+stdenv.mkDerivation rec {
+  pname = "rset";
+  version = "2.1";
+
+  src = fetchurl {
+    url = "https://scriptedconfiguration.org/code/${pname}-${version}.tar.gz";
+    sha256 = "0916f96afl8kcn2hpj4qhg92g2j93ycp2sb94nsz3q44sqc6ddhb";
+  };
+
+  patches = [ ./paths.patch ];
+
+  postPatch = ''
+    substituteInPlace rset.c \
+      --replace @ssh@       ${openssh}/bin/ssh \
+      --replace @miniquark@ $out/bin/miniquark \
+      --replace @rinstall@  $out/bin/rinstall \
+      --replace @rsub@      $out/bin/rsub
+
+    substituteInPlace execute.c \
+      --replace @ssh@     ${openssh}/bin/ssh \
+      --replace @ssh-add@ ${openssh}/bin/ssh-add \
+      --replace @tar@     ${gnutar}/bin/tar
+
+    substituteInPlace rutils.c \
+      --replace @install@ ${coreutils}/bin/install
+  '';
+
+  # these are to be run on the remote host,
+  # so we want to preserve the original shebang.
+  postFixup = ''
+    sed -i "1s@.*@#!/bin/sh@" $out/bin/rinstall
+    sed -i "1s@.*@#!/bin/sh@" $out/bin/rsub
+  '';
+
+  dontAddPrefix = true;
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://scriptedconfiguration.org/";
+    description = "Configure systems using any scripting language";
+    changelog = "https://github.com/eradman/rset/raw/${version}/NEWS";
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ cstrahan ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/rset/paths.patch b/nixpkgs/pkgs/tools/admin/rset/paths.patch
new file mode 100644
index 000000000000..af09b0902ed0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/rset/paths.patch
@@ -0,0 +1,131 @@
+diff --git a/execute.c b/execute.c
+index be06068..3468fa7 100644
+--- a/execute.c
++++ b/execute.c
+@@ -242,7 +242,7 @@ verify_ssh_agent() {
+ 	char *output;
+ 	char *argv[32];
+ 
+-	append(argv, 0, "ssh-add", "-l", NULL);
++	append(argv, 0, "@ssh-add@", "-l", NULL);
+ 	output = cmd_pipe_stdout(argv, &error_code, &output_size);
+ 	free(output);
+ 
+@@ -282,7 +282,7 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha
+ 	}
+ 
+ 	argc = 0;
+-	argc = append(argv, argc, "ssh", "-fN", "-R", port_forwarding, "-S",
++	argc = append(argv, argc, "@ssh@", "-fN", "-R", port_forwarding, "-S",
+ 		socket_path, "-M", NULL);
+ 	if (ssh_config)
+ 		(void) append(argv, argc, "-F", ssh_config, host_name, NULL);
+@@ -292,12 +292,12 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha
+ 		return -1;
+ 
+ 	snprintf(tmp_path, sizeof(tmp_path), "mkdir " REMOTE_TMP_PATH, http_port);
+-	append(argv, 0, "ssh", "-S", socket_path, host_name, tmp_path, NULL);
++	append(argv, 0, "@ssh@", "-S", socket_path, host_name, tmp_path, NULL);
+ 	if (run(argv) != 0)
+ 		return -1;
+ 
+-	snprintf(cmd, PATH_MAX, "tar -cf - %s -C " REPLICATED_DIRECTORY " ./ | "
+-	   "exec ssh -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH,
++	snprintf(cmd, PATH_MAX, "@tar@ -cf - %s -C " REPLICATED_DIRECTORY " ./ | "
++	   "exec @ssh@ -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH,
+ 	    array_to_str(route_label->export_paths), socket_path, host_name,
+ 	    http_port);
+ 	if (system(cmd) != 0) {
+@@ -326,7 +326,7 @@ ssh_command_pipe(char *host_name, char *socket_path, Label *host_label, int http
+ 
+ 	/* construct ssh command */
+ 	argc = 0;
+-	argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL);
++	argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL);
+ 
+ 	(void) append(argv, argc, host_name, cmd, NULL);
+ 	return cmd_pipe_stdin(argv, host_label->content, host_label->content_size);
+@@ -344,7 +344,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_
+ 	    http_port);
+ 	/* construct ssh command */
+ 	argc = 0;
+-	argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL);
++	argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL);
+ 	(void) append(argv, argc, host_name, cmd, NULL);
+ 	cmd_pipe_stdin(argv, host_label->content, host_label->content_size);
+ 
+@@ -360,7 +360,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_
+ 
+ 	/* construct ssh command */
+ 	argc = 0;
+-	argc = append(argv, argc, "ssh", "-t", "-S", socket_path, NULL);
++	argc = append(argv, argc, "@ssh@", "-t", "-S", socket_path, NULL);
+ 
+ 	(void) append(argv, argc, host_name, cmd, NULL);
+ 	return run(argv);
+@@ -375,11 +375,11 @@ end_connection(char *socket_path, char *host_name, int http_port) {
+ 		return;
+ 
+ 	snprintf(tmp_path, sizeof(tmp_path), REMOTE_TMP_PATH, http_port);
+-	append(argv, 0, "ssh", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL);
++	append(argv, 0, "@ssh@", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL);
+ 	if (run(argv) != 0)
+ 		warn("remote tmp dir");
+ 
+-	append(argv, 0, "ssh", "-q", "-S", socket_path, "-O", "exit", host_name, NULL);
++	append(argv, 0, "@ssh@", "-q", "-S", socket_path, "-O", "exit", host_name, NULL);
+ 	if (run(argv) != 0)
+ 		warn("exec ssh -O exit");
+ }
+diff --git a/rset.c b/rset.c
+index 383fc82..9c20f65 100644
+--- a/rset.c
++++ b/rset.c
+@@ -128,10 +128,8 @@ int main(int argc, char *argv[])
+ 		hostnames[i] = argv[optind+i];
+ 	hostnames[i] = NULL;
+ 
+-	if ((rinstall_bin = findprog("rinstall")) == 0)
+-		not_found("rinstall");
+-	if ((rsub_bin = findprog("rsub")) == 0)
+-		not_found("rsub");
++  rinstall_bin = "@rinstall@";
++  rsub_bin = "@rsub@";
+ 
+ 	/* all operations must be relative to the routes file */
+ 	if (realpath(xdirname(routes_file), routes_realpath) == NULL)
+@@ -159,10 +157,9 @@ int main(int argc, char *argv[])
+ 
+ 	/* Convert http server command line into a vector */
+ 	inputstring = malloc(PATH_MAX);
+-	snprintf(inputstring, PATH_MAX, "miniquark -p %d -d " PUBLIC_DIRECTORY, http_port);
++	snprintf(inputstring, PATH_MAX, "@miniquark@ -p %d -d " PUBLIC_DIRECTORY, http_port);
+ 	str_to_array(http_srv_argv, inputstring, sizeof(http_srv_argv));
+-	if ((httpd_bin = findprog(http_srv_argv[0])) == 0)
+-		not_found(http_srv_argv[0]);
++	httpd_bin = "@miniquark@";
+ 
+ 	/* start the web server */
+ 	pipe(stdout_pipe);
+@@ -397,7 +394,7 @@ handle_exit(int sig) {
+ 		printf("caught signal %d, terminating connection to '%s'\n", sig,
+ 			hostname);
+ 		/* clean up socket and SSH connection; leaving staging dir */
+-		execlp("ssh", "ssh", "-S", socket_path, "-O", "exit", hostname, NULL);
++		execlp("@ssh@", "@ssh@", "-S", socket_path, "-O", "exit", hostname, NULL);
+ 		err(1, "ssh -O exit");
+ 	}
+ }
+diff --git a/rutils.c b/rutils.c
+index 1e182d8..9aef76d 100644
+--- a/rutils.c
++++ b/rutils.c
+@@ -77,7 +77,7 @@ install_if_new(const char *src, const char *dst) {
+ 
+ 	pid = fork();
+ 	if (pid == 0) {
+-		if (execl("/usr/bin/install", "/usr/bin/install", src, dst, NULL) != -1)
++		if (execl("@install@", "@install@", src, dst, NULL) != -1)
+ 			err(1, "%s", dst);
+ 	}
+ 	waitpid(pid, &status, 0);
diff --git a/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix b/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix
index 0c6e9dc0ab23..25d3eaa15fc8 100644
--- a/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix
+++ b/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix
@@ -11,7 +11,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "1wh6yidwdk8jvjpr5g3azhqgsk24c5rlzmw6l86dmi0mpvmxm94w";
   };
 
-  buildInputs = with python3Packages; [ setuptools setuptools_scm salt ];
+  buildInputs = with python3Packages; [ setuptools setuptools-scm salt ];
   checkInputs = with python3Packages; [
     pytest mock pyzmq pytest-rerunfailures pytestcov cherrypy tornado
   ];
diff --git a/nixpkgs/pkgs/tools/admin/simp_le/default.nix b/nixpkgs/pkgs/tools/admin/simp_le/default.nix
index 393d9d145c2e..88b0e6147736 100644
--- a/nixpkgs/pkgs/tools/admin/simp_le/default.nix
+++ b/nixpkgs/pkgs/tools/admin/simp_le/default.nix
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
     $out/bin/simp_le --test
   '';
 
-  propagatedBuildInputs = with python3Packages; [ acme setuptools_scm josepy idna ];
+  propagatedBuildInputs = with python3Packages; [ acme setuptools-scm josepy idna ];
 
   checkInputs = with python3Packages; [ mock ];
 
diff --git a/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix b/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix
index aafe91dccd24..c314c304aec8 100644
--- a/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix
+++ b/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix
@@ -1,38 +1,41 @@
-{ lib, stdenv
+{ lib
+, stdenv
+, coreutils
 , fetchFromGitHub
-, makeWrapper
-, openssl
-, which
+, findutils
+, gawk
 , gnugrep
 , gnused
-, gawk
+, makeWrapper
 , mktemp
-, coreutils
-, findutils
+, openssl
+, which
 }:
 
 stdenv.mkDerivation rec {
   pname = "ssl-cert-check";
-  version = "3.31";
+  version = "4.14";
 
   src = fetchFromGitHub {
     owner = "Matty9191";
     repo = pname;
-    rev = "698c1996d05152cfaf2a1a3df4cc70482411fac8";
-    sha256 = "0jvi9phs0ngfwrj9zixb03v9byavbwxx8xkp0h5m98qppn1kvl3n";
+    rev = "4056ceeab5abc0e39f4e0ea40cd54147253a3369";
+    sha256 = "07k2n4l68hykraxvy030djc208z8rqff3kc7wy4ib9g6qj7s4mif";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
   buildInputs = [
-    openssl
-    which
-    gnugrep
-    mktemp
-    gawk
-    gnused
     coreutils
     findutils
+    gawk
+    gnugrep
+    gnused
+    mktemp
+    openssl
+    which
   ];
 
   prePatch = ''
@@ -47,11 +50,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "a Bourne shell script that can be used to report on expiring SSL certificates";
+    description = "Bourne shell script that can be used to report on expiring SSL certificates";
     homepage = "https://github.com/Matty9191/ssl-cert-check";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.ryantm ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ryantm ];
     platforms = platforms.linux;
   };
-
 }
diff --git a/nixpkgs/pkgs/tools/admin/trivy/default.nix b/nixpkgs/pkgs/tools/admin/trivy/default.nix
index d2d2a138d65c..9507096335a9 100644
--- a/nixpkgs/pkgs/tools/admin/trivy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/trivy/default.nix
@@ -2,27 +2,34 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.16.0";
+  version = "0.18.3";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E/tPjVc+XLDCFYzloAipwWjB4I86kAe/6NVoJSCrY2M=";
+    sha256 = "sha256-YQYDDg4rgLygswGl/IYb+USSsuXQ8kXh4NhQYvnaCko=";
   };
 
-  vendorSha256 = "sha256-YoQF0Eug747LhsR3V0IplwXgm0ndDqK1pUVjguOhjOU=";
+  vendorSha256 = "sha256-f1un8jWhx7VfbbYV0/t3SLFXp496Wt5aEHkcuj/U4KQ=";
 
-  subPackages = [ "cmd/trivy" ];
+  excludedPackages = "misc";
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X main.version=v${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X main.version=v${version}")
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/trivy --help
+    $out/bin/trivy --version | grep "v${version}"
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
+    homepage = "https://github.com/aquasecurity/trivy";
+    changelog = "https://github.com/aquasecurity/trivy/releases/tag/v${version}";
     description = "A simple and comprehensive vulnerability scanner for containers, suitable for CI";
     longDescription = ''
       Trivy is a simple and comprehensive vulnerability scanner for containers
@@ -31,8 +38,6 @@ buildGoModule rec {
       vulnerabilities of OS packages (Alpine, RHEL, CentOS, etc.) and
       application dependencies (Bundler, Composer, npm, yarn, etc.).
     '';
-    homepage = src.meta.homepage;
-    changelog = "${src.meta.homepage}/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
   };
diff --git a/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix b/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix
index dcd5243d7135..edf67f2f963b 100644
--- a/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/arc_unpacker/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper, boost, libpng, libjpeg, zlib
-, openssl, libwebp, catch }:
+{ lib, stdenv, fetchFromGitHub, cmake, makeWrapper, boost, libpng, libiconv
+, libjpeg, zlib, openssl, libwebp, catch }:
 
 stdenv.mkDerivation rec {
-  pname = "arc_unpacker-unstable";
-  version = "2019-01-28";
+  pname = "arc_unpacker";
+  version = "unstable-2021-05-17";
 
   src = fetchFromGitHub {
     owner = "vn-tools";
@@ -11,37 +11,48 @@ stdenv.mkDerivation rec {
     # Since the latest release (0.11) doesn't build, we've opened an upstream
     # issue in https://github.com/vn-tools/arc_unpacker/issues/187 to ask if a
     # a new release is upcoming
-    rev = "b9843a13e2b67a618020fc12918aa8d7697ddfd5";
-    sha256 = "0wpl30569cip3im40p3n22s11x0172a3axnzwmax62aqlf8kdy14";
+    rev = "9c2781fcf3ead7641e873b65899f6abeeabb2fc8";
+    sha256 = "1xxrc9nww0rla3yh10z6glv05ax4rynwwbd0cdvkp7gyqzrv97xp";
   };
 
   nativeBuildInputs = [ cmake makeWrapper catch ];
-  buildInputs = [ boost libpng libjpeg zlib openssl libwebp ];
+  buildInputs = [ boost libpng libjpeg zlib openssl libwebp ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   postPatch = ''
     cp ${catch}/include/catch/catch.hpp tests/test_support/catch.h
   '';
 
   checkPhase = ''
+    runHook preCheck
+
     pushd ..
     ./build/run_tests
     popd
+
+    runHook postCheck
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin $out/share/doc/arc_unpacker $out/libexec/arc_unpacker
     cp arc_unpacker $out/libexec/arc_unpacker/arc_unpacker
     cp ../GAMELIST.{htm,js} $out/share/doc/arc_unpacker
     cp -r ../etc $out/libexec/arc_unpacker
     makeWrapper $out/libexec/arc_unpacker/arc_unpacker $out/bin/arc_unpacker
+
+    runHook postInstall
   '';
 
-  doCheck = true;
+  # A few tests fail on aarch64
+  doCheck = !stdenv.isAarch64;
 
   meta = with lib; {
     description = "A tool to extract files from visual novel archives";
     homepage = "https://github.com/vn-tools/arc_unpacker";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ midchildan ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/archivers/bomutils/default.nix b/nixpkgs/pkgs/tools/archivers/bomutils/default.nix
index 9ace81a5ec2c..c4ff957135ff 100644
--- a/nixpkgs/pkgs/tools/archivers/bomutils/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/bomutils/default.nix
@@ -13,7 +13,10 @@ stdenv.mkDerivation rec {
     sha256 = "1i7nhbq1fcbrjwfg64znz8p4l7662f7qz2l6xcvwd5z93dnmgmdr";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [
+    "PREFIX=$(out)"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/hogliux/bomutils";
diff --git a/nixpkgs/pkgs/tools/archivers/gnutar/default.nix b/nixpkgs/pkgs/tools/archivers/gnutar/default.nix
index 5f456f922172..fcc92e673a55 100644
--- a/nixpkgs/pkgs/tools/archivers/gnutar/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/gnutar/default.nix
@@ -30,9 +30,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "info" ];
 
-  buildInputs = [ ]
-    ++ lib.optional stdenv.isLinux acl
-    ++ lib.optional stdenv.isDarwin autoreconfHook;
+  nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook;
+  buildInputs = lib.optional stdenv.isLinux acl;
 
   # May have some issues with root compilation because the bootstrap tool
   # cannot be used as a login shell for now.
diff --git a/nixpkgs/pkgs/tools/archivers/p7zip/default.nix b/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
index 8a01353b01b9..8ba87da6b6ac 100644
--- a/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
     description = "A new p7zip fork with additional codecs and improvements (forked from https://sourceforge.net/projects/p7zip/)";
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.raskin ];
+    mainProgram = "7z";
     # RAR code is under non-free UnRAR license, but we remove it
     license = if enableUnfree then lib.licenses.unfree else lib.licenses.lgpl2Plus;
   };
diff --git a/nixpkgs/pkgs/tools/archivers/quickbms/default.nix b/nixpkgs/pkgs/tools/archivers/quickbms/default.nix
new file mode 100644
index 000000000000..7846f18a1740
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/quickbms/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchzip, bzip2, lzo, openssl, zlib }:
+
+stdenv.mkDerivation rec {
+  version = "0.11.0";
+  pname = "quickbms";
+
+  src = fetchzip {
+    url = "https://aluigi.altervista.org/papers/quickbms-src-${version}.zip";
+    hash = "sha256-uQKTE36pLO8uhrX794utqaDGUeyqRz6zLCQFA7DYkNc=";
+  };
+
+  buildInputs = [ bzip2 lzo openssl zlib ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Universal script based file extractor and reimporter";
+    homepage = "https://aluigi.altervista.org/quickbms.htm";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ samuelgrf ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/xarchiver/default.nix b/nixpkgs/pkgs/tools/archivers/xarchiver/default.nix
index 815bf823d58e..e94092210693 100644
--- a/nixpkgs/pkgs/tools/archivers/xarchiver/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/xarchiver/default.nix
@@ -2,18 +2,18 @@
   coreutils, zip, unzip, p7zip, unrar, gnutar, bzip2, gzip, lhasa, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.5.4.14";
+  version = "0.5.4.17";
   pname = "xarchiver";
 
   src = fetchFromGitHub {
     owner = "ib";
     repo = "xarchiver";
     rev = version;
-    sha256 = "1iklwgykgymrwcc5p1cdbh91v0ih1m58s3w9ndl5kyd44bwlb7px";
+    sha256 = "00adrjpxqlaccrwjf65w3vhxfswdj0as8aj263c6f9b85llypc5v";
   };
 
-  nativeBuildInputs = [ pkg-config makeWrapper wrapGAppsHook ];
-  buildInputs = [ gtk3 intltool libxslt ];
+  nativeBuildInputs = [ intltool pkg-config makeWrapper wrapGAppsHook ];
+  buildInputs = [ gtk3 libxslt ];
 
   postFixup = ''
     wrapProgram $out/bin/xarchiver \
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "GTK frontend to 7z,zip,rar,tar,bzip2, gzip,arj, lha, rpm and deb (open and extract only)";
     homepage = "https://github.com/ib/xarchiver";
     maintainers = [ lib.maintainers.domenkozar ];
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/archivers/zpaq/default.nix b/nixpkgs/pkgs/tools/archivers/zpaq/default.nix
index a7663bbd2315..08d98716f1f2 100644
--- a/nixpkgs/pkgs/tools/archivers/zpaq/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/zpaq/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, perl, unzip }:
+{ lib, stdenv, fetchFromGitHub, perl }:
 
 stdenv.mkDerivation rec {
   pname = "zpaq";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0v44rlg9gvwc4ggr2lhcqll8ppal3dk7zsg5bqwcc5lg3ynk2pz4";
   };
 
-  nativeBuildInputs = [ perl /* for pod2man */ unzip ];
+  nativeBuildInputs = [ perl /* for pod2man */ ];
 
   preBuild = let
     CPPFLAGS = with stdenv; ""
diff --git a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
index e1c2844813d4..519a6ffabc6f 100644
--- a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2021.03.30";
+  version = "2021.05.25";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "sha256-eOQbvs/mtFn7AmvSezO/jRm8+cO5tF7ggcF9DwwfqVc=";
+    sha256 = "sha256-lgKrDR+2KRl6vvZJp2nmY493agQx+FoQ+/SNNV4lA/A=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix b/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix
index 5703ca77bd01..4fc3d957e13d 100644
--- a/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix
+++ b/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix
@@ -17,10 +17,15 @@ stdenv.mkDerivation rec {
 
   patches = [
     (fetchpatch {
+      name = "fix-build-with-libav-10.patch";
+      url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/2c778334a9fc2f0ccf9b1d7635c116bce6509748/raw";
+      sha256 = "1smyp3x5n6jwxpgw60xsijq2fn6g1gl759h1lm5agaxhcyyqn0i0";
+    })
+    (fetchpatch {
+      name = "fix-build-failure-on-gcc-6.patch";
       url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/632e87969c3a5562a5d4842b03613267ba6236b2/raw";
       sha256 = "15hm9knrpqn3yqrwyjz4zh2aypwbcycd0c5svrsy1fb2h2rh05jk";
     })
-    ./ffmpeg.patch
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/ffmpeg.patch b/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/ffmpeg.patch
deleted file mode 100644
index f3eacae26f77..000000000000
--- a/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/ffmpeg.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/decoder.h b/decoder.h
-index 028f58f..4428ac1 100644
---- a/decoder.h
-+++ b/decoder.h
-@@ -39,6 +39,8 @@ extern "C" {
- #define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16
- #endif
- 
-+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
-+
- class Decoder
- {
- public:
-diff --git a/ffmpeg/audioconvert.h b/ffmpeg/audioconvert.h
-index 2b28e2e..a699986 100644
---- a/ffmpeg/audioconvert.h
-+++ b/ffmpeg/audioconvert.h
-@@ -79,7 +79,7 @@ int avcodec_channel_layout_num_channels(int64_t channel_layout);
-  * @param fmt_name Format name, or NULL if unknown
-  * @return Channel layout mask
-  */
--uint64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
-+uint64_t avcodec_guess_channel_layout(int nb_channels, enum AVCodecID codec_id, const char *fmt_name);
- 
- struct AVAudioConvert;
- typedef struct AVAudioConvert AVAudioConvert;
diff --git a/nixpkgs/pkgs/tools/audio/alsaequal/default.nix b/nixpkgs/pkgs/tools/audio/alsaequal/default.nix
index 12d590c4c762..c6c25fd39966 100644
--- a/nixpkgs/pkgs/tools/audio/alsaequal/default.nix
+++ b/nixpkgs/pkgs/tools/audio/alsaequal/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl
-, alsaLib, caps
+, alsa-lib, caps
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1w3g9q5z3nrn3mwdhaq6zsg0jila8d102dgwgrhj9vfx58apsvli";
   };
 
-  buildInputs = [ alsaLib ];
+  buildInputs = [ alsa-lib ];
 
   makeFlags = [ "DESTDIR=$(out)" ];
 
diff --git a/nixpkgs/pkgs/tools/audio/beets/default.nix b/nixpkgs/pkgs/tools/audio/beets/default.nix
index b9ed3eca9197..c218aa7e4e12 100644
--- a/nixpkgs/pkgs/tools/audio/beets/default.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/default.nix
@@ -105,13 +105,13 @@ in pythonPackages.buildPythonApplication rec {
   # unstable does not require bs1770gain[2].
   # [1]: https://discourse.beets.io/t/forming-a-beets-core-team/639
   # [2]: https://github.com/NixOS/nixpkgs/pull/90504
-  version = "unstable-2021-04-17";
+  version = "unstable-2021-05-13";
 
   src = fetchFromGitHub {
     owner = "beetbox";
     repo = "beets";
-    rev = "50163b373f527d1b1f8b2442240ca547e846744e";
-    sha256 = "sha256-l7drav4Qx2JCF+F5OA0s641idcKM3S4Yx2lM2evJQWE=";
+    rev = "1faa41f8c558d3f4415e5e48cf4513d50b466d34";
+    sha256 = "sha256-P0bV7WNqCYe9+3lqnFmAoRlb2asdsBUjzRMc24RngpU=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/default.nix b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
index 11f228ea6919..36bd13433386 100644
--- a/nixpkgs/pkgs/tools/audio/botamusique/default.nix
+++ b/nixpkgs/pkgs/tools/audio/botamusique/default.nix
@@ -5,6 +5,7 @@
 , python3Packages
 , ffmpeg
 , makeWrapper
+, nixosTests
 
 # For the update script
 , coreutils
@@ -140,6 +141,10 @@ stdenv.mkDerivation rec {
       --output ${toString ./node-packages.nix}
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) botamusique;
+  };
+
   meta = with lib; {
     description = "Bot to play youtube / soundcloud / radio / local music on Mumble";
     homepage = "https://github.com/azlux/botamusique";
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix b/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
index 3f9e2dcdfd02..c9bdb6f00971 100644
--- a/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
+++ b/nixpkgs/pkgs/tools/audio/botamusique/node-packages.nix
@@ -1624,13 +1624,13 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "colorette-1.2.1" = {
+    "colorette-1.2.2" = {
       name = "colorette";
       packageName = "colorette";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
-        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz";
+        sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==";
       };
     };
     "command-line-usage-6.1.1" = {
@@ -2497,13 +2497,13 @@ let
         sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
-    "hosted-git-info-2.8.8" = {
+    "hosted-git-info-2.8.9" = {
       name = "hosted-git-info";
       packageName = "hosted-git-info";
-      version = "2.8.8";
+      version = "2.8.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz";
+        sha512 = "mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==";
       };
     };
     "html-minifier-terser-5.1.1" = {
@@ -2992,13 +2992,13 @@ let
         sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
       };
     };
-    "lodash-4.17.20" = {
+    "lodash-4.17.21" = {
       name = "lodash";
       packageName = "lodash";
-      version = "4.17.20";
+      version = "4.17.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
-        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+        sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     };
     "lower-case-2.0.1" = {
@@ -3109,13 +3109,13 @@ let
         sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
-    "nanoid-3.1.18" = {
+    "nanoid-3.1.23" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.1.18";
+      version = "3.1.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.18.tgz";
-        sha512 = "rndlDjbbHbcV3xi+R2fpJ+PbGMdfBxz5v1fATIQFq0DP64FsicQdwnKLy47K4kZHdRpmQXtz24eGsxQqamzYTA==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz";
+        sha512 = "FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==";
       };
     };
     "natural-compare-1.4.0" = {
@@ -3523,13 +3523,13 @@ let
         sha512 = "Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==";
       };
     };
-    "postcss-8.1.10" = {
+    "postcss-8.2.15" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.1.10";
+      version = "8.2.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.1.10.tgz";
-        sha512 = "iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz";
+        sha512 = "2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==";
       };
     };
     "postcss-loader-4.1.0" = {
@@ -4414,15 +4414,6 @@ let
         sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
       };
     };
-    "vfile-location-3.2.0" = {
-      name = "vfile-location";
-      packageName = "vfile-location";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz";
-        sha512 = "aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==";
-      };
-    };
     "watchpack-2.0.1" = {
       name = "watchpack";
       packageName = "watchpack";
@@ -4536,7 +4527,7 @@ let
     name = "botamusique";
     packageName = "botamusique";
     version = "0.0.0";
-    src = ../../../../../../../../run/user/1000/tmp.ioJA7NbZmp;
+    src = ../../../../../../../../../tmp/tmp.UAoivnXH3n;
     dependencies = [
       sources."@babel/code-frame-7.10.4"
       sources."@babel/compat-data-7.12.7"
@@ -4735,7 +4726,7 @@ let
       })
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-1.2.1"
+      sources."colorette-1.2.2"
       sources."command-line-usage-6.1.1"
       sources."commander-4.1.1"
       sources."comment-parser-0.7.6"
@@ -4886,7 +4877,7 @@ let
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.1"
       sources."he-1.2.0"
-      sources."hosted-git-info-2.8.8"
+      sources."hosted-git-info-2.8.9"
       sources."html-minifier-terser-5.1.1"
       sources."html-webpack-plugin-4.5.0"
       (sources."htmlparser2-3.10.1" // {
@@ -4964,7 +4955,7 @@ let
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.20"
+      sources."lodash-4.17.21"
       sources."lower-case-2.0.1"
       sources."make-dir-2.1.0"
       sources."merge-stream-2.0.0"
@@ -4981,7 +4972,7 @@ let
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."nanoid-3.1.18"
+      sources."nanoid-3.1.23"
       sources."natural-compare-1.4.0"
       sources."neo-async-2.6.2"
       sources."no-case-3.0.3"
@@ -5024,7 +5015,7 @@ let
       sources."pify-4.0.1"
       sources."pkg-dir-2.0.0"
       sources."popper.js-1.16.1"
-      (sources."postcss-8.1.10" // {
+      (sources."postcss-8.2.15" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -5179,7 +5170,6 @@ let
       sources."utila-0.4.0"
       sources."v8-compile-cache-2.2.0"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-location-3.2.0"
       sources."watchpack-2.0.1"
       (sources."webpack-5.6.0" // {
         dependencies = [
diff --git a/nixpkgs/pkgs/tools/audio/botamusique/src.json b/nixpkgs/pkgs/tools/audio/botamusique/src.json
index 7f63d480a8e4..d1337f5ae68a 100644
--- a/nixpkgs/pkgs/tools/audio/botamusique/src.json
+++ b/nixpkgs/pkgs/tools/audio/botamusique/src.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/azlux/botamusique",
-  "rev": "df38c7dbd6d59c6790cf2364d1f344b7f6f72107",
-  "date": "2021-03-13T15:44:40+08:00",
-  "path": "/nix/store/30ds4gp7aldj9rqix1xf7j2ps5blrx8w-botamusique",
-  "sha256": "06xw1pif145zcm9z8l9kzl8ayl7vy5ywr0m3a5yswybcp2fzj087",
+  "rev": "ba02cdebf2e175dc371995361eafcb88ad2c1b52",
+  "date": "2021-06-01T23:39:44+02:00",
+  "path": "/nix/store/dp5vnj7zqv1sp1ab5xycvvqdpia9xb71-botamusique",
+  "sha256": "01d51y6h38hs4ynjgz050ryy14sp5y2c3n7f80mcv0a4ls8413qp",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/nixpkgs/pkgs/tools/audio/darkice/default.nix b/nixpkgs/pkgs/tools/audio/darkice/default.nix
index f7d74dc615c8..1ff66e83e5a4 100644
--- a/nixpkgs/pkgs/tools/audio/darkice/default.nix
+++ b/nixpkgs/pkgs/tools/audio/darkice/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config
-, libjack2, alsaLib, libpulseaudio
+, libjack2, alsa-lib, libpulseaudio
 , faac, lame, libogg, libopus, libvorbis, libsamplerate
 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    libopus libvorbis libogg libpulseaudio alsaLib libsamplerate libjack2 lame
+    libopus libvorbis libogg libpulseaudio alsa-lib libsamplerate libjack2 lame
   ];
 
   NIX_CFLAGS_COMPILE = "-fpermissive";
diff --git a/nixpkgs/pkgs/tools/audio/gvolicon/default.nix b/nixpkgs/pkgs/tools/audio/gvolicon/default.nix
index 312dc62d575e..9ef8eb43772a 100644
--- a/nixpkgs/pkgs/tools/audio/gvolicon/default.nix
+++ b/nixpkgs/pkgs/tools/audio/gvolicon/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, makeWrapper, alsaLib, pkg-config, fetchgit, gtk3, gnome3, gdk-pixbuf, librsvg, wrapGAppsHook }:
+{ lib, stdenv, makeWrapper, alsa-lib, pkg-config, fetchgit, gtk3, gnome, gdk-pixbuf, librsvg, wrapGAppsHook }:
 
 stdenv.mkDerivation {
   name = "gvolicon-2014-04-28";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    makeWrapper alsaLib gtk3 gdk-pixbuf gnome3.adwaita-icon-theme
+    makeWrapper alsa-lib gtk3 gdk-pixbuf gnome.adwaita-icon-theme
     librsvg wrapGAppsHook
   ];
 
diff --git a/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix b/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
index a4411b6e0f75..1c52e6796b7b 100644
--- a/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
+++ b/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, makeWrapper, fetchurl, which, pkg-config
 , ocamlPackages
-, libao, portaudio, alsaLib, libpulseaudio, libjack2
+, libao, portaudio, alsa-lib, libpulseaudio, libjack2
 , libsamplerate, libmad, taglib, lame, libogg
-, libvorbis, speex, libtheora, libopus
+, libvorbis, speex, libtheora, libopus, zlib
 , faad2, flac, ladspaH, ffmpeg, frei0r, dssi
 }:
 
@@ -52,14 +52,14 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ makeWrapper pkg-config ];
   buildInputs =
     [ which ocamlPackages.ocaml ocamlPackages.findlib
-      libao portaudio alsaLib libpulseaudio libjack2
+      libao portaudio alsa-lib libpulseaudio libjack2
       libsamplerate libmad taglib lame libogg
-      libvorbis speex libtheora libopus
+      libvorbis speex libtheora libopus zlib
       faad2 flac ladspaH ffmpeg frei0r dssi
       ocamlPackages.xmlm ocamlPackages.ocaml_pcre
       ocamlPackages.camomile
       ocamlPackages.fdkaac
-      ocamlPackages.srt ocamlPackages.sedlex_2 ocamlPackages.menhir
+      ocamlPackages.srt ocamlPackages.sedlex_2 ocamlPackages.menhir ocamlPackages.menhirLib
     ];
 
   hardeningDisable = [ "format" "fortify" ];
diff --git a/nixpkgs/pkgs/tools/audio/mididings/default.nix b/nixpkgs/pkgs/tools/audio/mididings/default.nix
index d5f78ada91c7..f220fed208f1 100644
--- a/nixpkgs/pkgs/tools/audio/mididings/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mididings/default.nix
@@ -1,4 +1,4 @@
-{ lib, pythonPackages, fetchFromGitHub, pkg-config, glib, alsaLib, libjack2  }:
+{ lib, pythonPackages, fetchFromGitHub, pkg-config, glib, alsa-lib, libjack2  }:
 
 pythonPackages.buildPythonApplication {
   version = "2015-11-17";
@@ -12,7 +12,7 @@ pythonPackages.buildPythonApplication {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ glib alsaLib libjack2 pythonPackages.boost ];
+  buildInputs = [ glib alsa-lib libjack2 pythonPackages.boost ];
   propagatedBuildInputs = with pythonPackages; [ decorator ]
     # for livedings
     ++ [ tkinter pyliblo ]
@@ -32,7 +32,7 @@ pythonPackages.buildPythonApplication {
     description = "A MIDI router and processor based on Python, supporting ALSA and JACK MIDI";
     homepage = "http://das.nasophon.de/mididings";
     license = licenses.gpl2;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix b/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix
index 48f553d960dc..13f8dde680dd 100644
--- a/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix
+++ b/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, cmake, qttools, alsaLib }:
+{ lib, mkDerivation, fetchFromGitHub, cmake, qttools, alsa-lib }:
 
 mkDerivation rec {
   version = "1.5.1";
@@ -13,7 +13,7 @@ mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib qttools
+    alsa-lib qttools
   ];
   nativeBuildInputs = [ cmake ];
 
@@ -22,6 +22,6 @@ mkDerivation rec {
     homepage = src.meta.homepage;
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/pasystray/default.nix b/nixpkgs/pkgs/tools/audio/pasystray/default.nix
index 4a2030d74455..2bedd2abacdd 100644
--- a/nixpkgs/pkgs/tools/audio/pasystray/default.nix
+++ b/nixpkgs/pkgs/tools/audio/pasystray/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchpatch, fetchFromGitHub, pkg-config, autoreconfHook, wrapGAppsHook
-, gnome3, avahi, gtk3, libayatana-appindicator-gtk3, libnotify, libpulseaudio
+, gnome, avahi, gtk3, libayatana-appindicator-gtk3, libnotify, libpulseaudio
 , xlibsWrapper, gsettings-desktop-schemas
 }:
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config autoreconfHook wrapGAppsHook ];
   buildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     avahi gtk3 libayatana-appindicator-gtk3 libnotify libpulseaudio xlibsWrapper
     gsettings-desktop-schemas
   ];
diff --git a/nixpkgs/pkgs/tools/audio/patray/default.nix b/nixpkgs/pkgs/tools/audio/patray/default.nix
new file mode 100644
index 000000000000..5f86f1b88557
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/patray/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, python3
+, qt5
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "patray";
+  version = "0.1.1";
+
+  src = python3.pkgs.fetchPypi {
+    inherit version pname;
+    sha256 = "0vaapn2p4257m1d5nbnwnh252b7lhl00560gr9pqh2b7xqm1bh6g";
+  };
+
+  patchPhase = ''
+    sed -i '30i entry_points = { "console_scripts": [ "patray = patray.__main__:main" ] },' setup.py
+    sed -i 's/production.txt/production.in/' setup.py
+    sed -i '/pyside2/d' requirements/production.in
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pulsectl
+    loguru
+    cock
+    pyside2
+  ];
+
+  doCheck = false;
+
+  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+  postFixup = ''
+    wrapQtApp $out/bin/patray
+  '';
+
+
+
+  meta = with lib; {
+    description = "Yet another tray pulseaudio frontend";
+    homepage = "https://github.com/pohmelie/patray";
+    license = licenses.mit;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/pnmixer/default.nix b/nixpkgs/pkgs/tools/audio/pnmixer/default.nix
index 3aca8e8f6193..da4654a3e5fc 100644
--- a/nixpkgs/pkgs/tools/audio/pnmixer/default.nix
+++ b/nixpkgs/pkgs/tools/audio/pnmixer/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gettext, alsaLib, gtk3, glib, libnotify, libX11, pcre }:
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gettext, alsa-lib, gtk3, glib, libnotify, libX11, pcre }:
 
 stdenv.mkDerivation rec {
   pname = "pnmixer";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config gettext ];
 
-  buildInputs = [ alsaLib gtk3 glib libnotify libX11 pcre ];
+  buildInputs = [ alsa-lib gtk3 glib libnotify libX11 pcre ];
 
   meta = with lib; {
     homepage = "https://github.com/nicklan/pnmixer";
diff --git a/nixpkgs/pkgs/tools/audio/qastools/default.nix b/nixpkgs/pkgs/tools/audio/qastools/default.nix
index 55dbba007f87..f8b705a8fa15 100644
--- a/nixpkgs/pkgs/tools/audio/qastools/default.nix
+++ b/nixpkgs/pkgs/tools/audio/qastools/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitLab, cmake, alsaLib, udev, qtbase, qtsvg, qttools }:
+{ mkDerivation, lib, fetchFromGitLab, cmake, alsa-lib, udev, qtbase, qtsvg, qttools }:
 
 mkDerivation rec {
   pname = "qastools";
@@ -12,7 +12,7 @@ mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ alsaLib udev qtbase qtsvg qttools ];
+  buildInputs = [ alsa-lib udev qtbase qtsvg qttools ];
 
   meta = with lib; {
     description = "Collection of desktop applications for ALSA configuration";
diff --git a/nixpkgs/pkgs/tools/audio/spotdl/default.nix b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
index 80480c91ca9a..38f69b4d2b77 100644
--- a/nixpkgs/pkgs/tools/audio/spotdl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "spotdl";
-  version = "3.5.2";
+  version = "3.6.1";
 
   src = fetchFromGitHub {
     owner = "spotDL";
     repo = "spotify-downloader";
     rev = "v${version}";
-    sha256 = "sha256-V9jIA+ULjZRj+uVy4Yh55PapPiqFy9I9ZVln1nt/bJw=";
+    sha256 = "sha256-F3bP8f1LtcFZL7qahYkCUvhtc27fcL8WBnmyLcS9lCY=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -25,6 +25,7 @@ python3.pkgs.buildPythonApplication rec {
     tqdm
     beautifulsoup4
     requests
+    unidecode
   ];
 
   checkInputs = with python3.pkgs; [
@@ -35,6 +36,9 @@ python3.pkgs.buildPythonApplication rec {
     pytest-subprocess
   ];
 
+  # requires networking
+  doCheck = false;
+
   makeWrapperArgs = [
     "--prefix" "PATH" ":" (lib.makeBinPath [ ffmpeg ])
   ];
diff --git a/nixpkgs/pkgs/tools/audio/stt/default.nix b/nixpkgs/pkgs/tools/audio/stt/default.nix
new file mode 100644
index 000000000000..7834f87a0517
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/stt/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchurl, autoPatchelfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "stt";
+  version = "0.9.3";
+
+  src = fetchurl {
+    url = "https://github.com/coqui-ai/STT/releases/download/v${version}/native_client.tf.Linux.tar.xz";
+    sha256 = "0axwys8vis4f0m7d1i2r3dfqlc8p3yj2nisvc7pdi5qs741xgy8w";
+  };
+  setSourceRoot = "sourceRoot=`pwd`";
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+  ];
+
+  installPhase = ''
+    install -D stt $out/bin/stt
+    install -D coqui-stt.h $out/include/coqui-stt.h
+    install -D libstt.so $out/lib/libstt.so
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/coqui-ai/STT;
+    description = "Deep learning toolkit for Speech-to-Text, battle-tested in research and production";
+    license = licenses.mpl20;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ rvolosatovs ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/trx/default.nix b/nixpkgs/pkgs/tools/audio/trx/default.nix
index c7445f03fd37..b3ffee6419bf 100644
--- a/nixpkgs/pkgs/tools/audio/trx/default.nix
+++ b/nixpkgs/pkgs/tools/audio/trx/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, libopus, ortp, bctoolbox }:
+{ lib, stdenv, fetchurl, alsa-lib, libopus, ortp, bctoolbox }:
 
 stdenv.mkDerivation rec {
   pname = "trx";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     ./add_bctoolbox_ldlib.patch
   ];
 
-  buildInputs = [ alsaLib libopus ortp bctoolbox ];
+  buildInputs = [ alsa-lib libopus ortp bctoolbox ];
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/tts/default.nix b/nixpkgs/pkgs/tools/audio/tts/default.nix
index 3a10881b6055..51976a2d6a11 100644
--- a/nixpkgs/pkgs/tools/audio/tts/default.nix
+++ b/nixpkgs/pkgs/tools/audio/tts/default.nix
@@ -12,62 +12,44 @@
 #
 # If you upgrade from an old version you may have to delete old models from ~/.local/share/tts
 # Also note that your tts version might not support all available models so check:
-#   https://github.com/coqui-ai/TTS/releases/tag/v0.0.12
+#   https://github.com/coqui-ai/TTS/releases/tag/v0.0.14
 #
 # For now, for deployment check the systemd unit in the pull request:
 #   https://github.com/NixOS/nixpkgs/pull/103851#issue-521121136
 
 python3Packages.buildPythonApplication rec {
   pname = "tts";
-  version = "0.0.12";
+  version = "0.0.14";
 
   src = fetchFromGitHub {
     owner = "coqui-ai";
     repo = "TTS";
     rev = "v${version}";
-    sha256 = "sha256-0M9wcdBmuTK+NvEGsXEdoYiVFjw8G2MRUwmi1PJgmzI=";
+    sha256 = "0cl0ri90mx0y19fmqww73lp5nv6qkpc45rm4157i7p6q6llajdhp";
   };
 
-  patches = [
-    # https://github.com/coqui-ai/TTS/pull/435
-    (fetchpatch {
-      url = "https://github.com/coqui-ai/TTS/commit/97f98e4c4584ef14ed2f4885aa02c162d9364a00.patch";
-      sha256 = "sha256-DAZYOOAe+6TYBF5ukFq5HRwm49askEvNEivuwb/oCWM=";
-    })
-  ];
-
-  preBuild = ''
-    # numba jit tries to write to its cache directory
-    export HOME=$TMPDIR
-    # we only support pytorch models right now
-    sed -i -e '/tensorflow/d' requirements.txt
-
-    sed -i -e 's!librosa==[^"]*!librosa!' requirements.txt setup.py
-    sed -i -e 's!unidecode==[^"]*!unidecode!' requirements.txt setup.py
-    sed -i -e 's!bokeh==[^"]*!bokeh!' requirements.txt setup.py
-    sed -i -e 's!numba==[^"]*!numba!' requirements.txt setup.py
-    sed -i -e 's!numpy==[^"]*!numpy!' requirements.txt setup.py
-    sed -i -e 's!umap-learn==[^"]*!umap-learn!' requirements.txt setup.py
-    # Not required for building/installation but for their development/ci workflow
-    sed -i -e '/black/d' requirements.txt
-    sed -i -e '/isor/d' requirements.txt
-    sed -i -e '/pylint/d' requirements.txt
-    sed -i -e '/cardboardlint/d' requirements.txt setup.py
+  postPatch = ''
+    sed -i -e 's!librosa==[^"]*!librosa!' requirements.txt
+    sed -i -e 's!unidecode==[^"]*!unidecode!' requirements.txt
+    sed -i -e 's!numba==[^"]*!numba!' requirements.txt
+    sed -i -e 's!numpy==[^"]*!numpy!' requirements.txt
+    sed -i -e 's!umap-learn==[^"]*!umap-learn!' requirements.txt
   '';
 
-  nativeBuildInputs = [ python3Packages.cython ];
+  nativeBuildInputs = with python3Packages; [
+    cython
+  ];
 
   propagatedBuildInputs = with python3Packages; [
-    attrdict
-    bokeh
+    coqpit
     flask
-    fuzzywuzzy
     gdown
     inflect
     jieba
     librosa
     matplotlib
-    phonemizer
+    numba
+    pandas
     pypinyin
     pysbd
     pytorch
@@ -88,29 +70,46 @@ python3Packages.buildPythonApplication rec {
     )
   '';
 
-  checkInputs = with python3Packages; [ pytestCheckHook ];
+  checkInputs = with python3Packages; [
+    pytest-sugar
+    pytestCheckHook
+  ];
 
   disabledTests = [
     # RuntimeError: fft: ATen not compiled with MKL support
     "test_torch_stft"
     "test_stft_loss"
     "test_multiscale_stft_loss"
-    # AssertionErrors that I feel incapable of debugging
-    "test_phoneme_to_sequence"
-    "test_text2phone"
-    "test_parametrized_gan_dataset"
+    # Requires network acccess to download models
+    "test_synthesize"
   ];
 
   preCheck = ''
     # use the installed TTS in $PYTHONPATH instead of the one from source to also have cython modules.
     mv TTS{,.old}
+    export PATH=$out/bin:$PATH
+
+    # numba tries to write to HOME directory
+    export HOME=$TMPDIR
+
+    for file in $(grep -rl 'python TTS/bin' tests); do
+      substituteInPlace "$file" \
+        --replace "python TTS/bin" "${python3.interpreter} $out/lib/${python3.libPrefix}/site-packages/TTS/bin"
+    done
   '';
 
   disabledTestPaths = [
     # requires tensorflow
     "tests/test_tacotron2_tf_model.py"
-    "tests/test_vocoder_tf_melgan_generator.py"
-    "tests/test_vocoder_tf_pqmf.py"
+    "tests/vocoder_tests/test_vocoder_tf_pqmf.py"
+    "tests/vocoder_tests/test_vocoder_tf_melgan_generator.py"
+    # RuntimeError: fft: ATen not compiled with MKL support
+    "tests/vocoder_tests/test_fullband_melgan_train.py"
+    "tests/vocoder_tests/test_hifigan_train.py"
+    "tests/vocoder_tests/test_melgan_train.py"
+    "tests/vocoder_tests/test_multiband_melgan_train.py"
+    "tests/vocoder_tests/test_parallel_wavegan_train.py"
+
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/video2midi/default.nix b/nixpkgs/pkgs/tools/audio/video2midi/default.nix
index 4eafd7f52e1f..e8f5af70c87d 100644
--- a/nixpkgs/pkgs/tools/audio/video2midi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/video2midi/default.nix
@@ -29,7 +29,7 @@ in pythonPackages.buildPythonApplication rec {
     description = "Youtube synthesia video to midi conversion tool";
     homepage = src.meta.homepage;
     license = licenses.gpl3;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/volctl/default.nix b/nixpkgs/pkgs/tools/audio/volctl/default.nix
index d05257f1d083..d764644bab1a 100644
--- a/nixpkgs/pkgs/tools/audio/volctl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/volctl/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "volctl";
-  version = "0.8.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "buzz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02scfscf4mdrphzrd7cbwbhpig9bhvaws8qk4zc81z8vvf3mcfv2";
+    sha256 = "1cx27j83pz2qffnzb85fbl1x6pp3irv1kbw7g1hri7kaw6ky4xiz";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/audio/volumeicon/default.nix b/nixpkgs/pkgs/tools/audio/volumeicon/default.nix
index 79dc5a356be9..4d726cbd2a9e 100644
--- a/nixpkgs/pkgs/tools/audio/volumeicon/default.nix
+++ b/nixpkgs/pkgs/tools/audio/volumeicon/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, fetchurl, lib, stdenv, gtk3, pkg-config, intltool, alsaLib }:
+{ pkgs, fetchurl, lib, stdenv, gtk3, pkg-config, intltool, alsa-lib }:
 
 stdenv.mkDerivation {
   pname = "volumeicon";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk3 intltool alsaLib ];
+  buildInputs = [ gtk3 intltool alsa-lib ];
 
   meta = with lib; {
     description = "A lightweight volume control that sits in your systray";
diff --git a/nixpkgs/pkgs/tools/audio/yabridge/default.nix b/nixpkgs/pkgs/tools/audio/yabridge/default.nix
index c09045bdb6e4..0013fac23a04 100644
--- a/nixpkgs/pkgs/tools/audio/yabridge/default.nix
+++ b/nixpkgs/pkgs/tools/audio/yabridge/default.nix
@@ -1,6 +1,8 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
+, substituteAll
 , meson
 , ninja
 , pkg-config
@@ -56,14 +58,14 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "yabridge";
-  version = "3.1.0";
+  version = "3.2.0";
 
   # NOTE: Also update yabridgectl's cargoHash when this is updated
   src = fetchFromGitHub {
     owner = "robbert-vdh";
     repo = pname;
     rev = version;
-    hash = "sha256-xvKjb+ql3WxnGHqcn3WnxunY5+s9f8Gt/n6EFSBrNdI=";
+    hash = "sha256-UT6st0Rc6HOaObE3N+qlPZZ8U1gl/MFLU0mjFuScdes=";
   };
 
   # Unpack subproject sources
@@ -77,6 +79,21 @@ in stdenv.mkDerivation rec {
     cp -R --no-preserve=mode,ownership ${vst3.src} vst3
   )'';
 
+  patches = [
+    # Fix for wine 6.8+ (remove patch in next release):
+    (fetchpatch {
+      url = "https://github.com/robbert-vdh/yabridge/commit/5577c4bfd842c60a8ae8ce2889bbfeb53a51c62b.patch";
+      sha256 = "sha256-bTT08iWwDBVqi2PZPa7oal7/MqVu8t2Bh1gpjFMqLvQ=";
+      excludes = [ "CHANGELOG.md" ];
+    })
+
+    # Hard code wine path so wine version is correct in logs
+    (substituteAll {
+      src = ./hardcode-wine.patch;
+      inherit wine;
+    })
+  ];
+
   postPatch = ''
     patchShebangs .
   '';
@@ -110,18 +127,28 @@ in stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p "$out/bin" "$out/lib"
     cp yabridge-group.exe{,.so} "$out/bin"
     cp yabridge-host.exe{,.so} "$out/bin"
     cp libyabridge-vst2.so "$out/lib"
     cp libyabridge-vst3.so "$out/lib"
+    runHook postInstall
+  '';
+
+  # Hard code wine path in wrapper scripts generated by winegcc
+  postFixup = ''
+    for exe in "$out"/bin/*.exe; do
+      substituteInPlace "$exe" \
+        --replace 'WINELOADER="wine"' 'WINELOADER="${wine}/bin/wine"'
+    done
   '';
 
   meta = with lib; {
     description = "Yet Another VST bridge, run Windows VST2 plugins under Linux";
     homepage = "https://github.com/robbert-vdh/yabridge";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch b/nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch
new file mode 100644
index 000000000000..2b6ce1f448fa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/yabridge/hardcode-wine.patch
@@ -0,0 +1,13 @@
+diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp
+index 1ff05bc..0723456 100644
+--- a/src/plugin/utils.cpp
++++ b/src/plugin/utils.cpp
+@@ -351,7 +351,7 @@ std::string get_wine_version() {
+         access(wineloader_path.c_str(), X_OK) == 0) {
+         wine_path = wineloader_path;
+     } else {
+-        wine_path = bp::search_path("wine").string();
++        wine_path = "@wine@/bin/wine";
+     }
+ 
+     bp::ipstream output;
diff --git a/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
index 4548b288b690..4f738310d85c 100644
--- a/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/yabridgectl/default.nix
@@ -1,4 +1,9 @@
-{ lib, rustPlatform, yabridge }:
+{ lib
+, rustPlatform
+, yabridge
+, makeWrapper
+, wine
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "yabridgectl";
@@ -6,7 +11,7 @@ rustPlatform.buildRustPackage rec {
 
   src = yabridge.src;
   sourceRoot = "source/tools/yabridgectl";
-  cargoHash = "sha256-TcjFaDo5IUs6Z3tgb+6jqyyrB2BLcif6Ycw++5FzuDY=";
+  cargoHash = "sha256-cB4Xp8pNLQRcPQ6HtVkDkLbfNSmM9yl+oRcEzcqrmkY=";
 
   patches = [
     # By default, yabridgectl locates libyabridge.so by using
@@ -17,10 +22,17 @@ rustPlatform.buildRustPackage rec {
 
   patchFlags = [ "-p3" ];
 
+  nativeBuildInputs = [ makeWrapper ];
+
+  postFixup = ''
+    wrapProgram "$out/bin/yabridgectl" \
+      --prefix PATH : ${lib.makeBinPath [ wine ]}
+  '';
+
   meta = with lib; {
     description = "A small, optional utility to help set up and update yabridge for several directories at once";
     homepage = "https://github.com/robbert-vdh/yabridge/tree/master/tools/yabridgectl";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/bacula/default.nix b/nixpkgs/pkgs/tools/backup/bacula/default.nix
index c2ed78823317..c37e78933849 100644
--- a/nixpkgs/pkgs/tools/backup/bacula/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bacula/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bacula";
-  version = "11.0.1";
+  version = "11.0.5";
 
   src = fetchurl {
     url    = "mirror://sourceforge/bacula/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Lr2c24hZU8A/Cd8xGA7rfqga67ghz0XJ/cs/z/hSlPU=";
+    sha256 = "sha256-71s7Z4EEQiAbgNwdR8zvd7XtN4/hKFQG86c0AbboERo=";
   };
 
   buildInputs = [ postgresql sqlite zlib ncurses openssl readline ]
diff --git a/nixpkgs/pkgs/tools/backup/borgmatic/default.nix b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
index 4913ca29cb84..b27ee0508e19 100644
--- a/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
+++ b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
@@ -2,23 +2,19 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "borgmatic";
-  version = "1.5.12";
+  version = "1.5.13";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-XLbBJvNRmH8W9SnOjF7zUbazRYFCMW6SEO2wKN/2VTY=";
+    sha256 = "12390ffdg30ncc5k92pvagwbvnsh42xl35a3nagbskznyfd23mw3";
   };
 
   checkInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ];
 
   # - test_borgmatic_version_matches_news_version
   # The file NEWS not available on the pypi source, and this test is useless
-  # - test_collect_configuration_run_summary_logs_outputs_merged_json_results
-  # Upstream fixed in the next version, see
-  # https://github.com/witten/borgmatic/commit/ea6cd53067435365a96786b006aec391714501c4
   disabledTests = [
     "test_borgmatic_version_matches_news_version"
-    "test_collect_configuration_run_summary_logs_outputs_merged_json_results"
   ];
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/backup/bupstash/default.nix b/nixpkgs/pkgs/tools/backup/bupstash/default.nix
index 4a8de070ced2..44d16549cdda 100644
--- a/nixpkgs/pkgs/tools/backup/bupstash/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bupstash/default.nix
@@ -1,16 +1,16 @@
 { lib, fetchFromGitHub, installShellFiles, rustPlatform, ronn, pkg-config, libsodium }:
 rustPlatform.buildRustPackage rec {
   pname = "bupstash";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "andrewchambers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uA5XEG9nvqsXg34bqw8k4Rjk5F9bPFSk1HQ4Bv6Ar+I=";
+    sha256 = "sha256-DzRGhdUxfBW6iazpCHlQ9J8IL10FVxhac8kx6yBSGNk=";
   };
 
-  cargoSha256 = "sha256-4r+Ioh6Waoy/7LVF3CPz18c2bCRYym5T4za1GSKw7WQ=";
+  cargoSha256 = "sha256-IKk4VsO/oH4nC6F1W+JA3Agl7oXXNJ7zpP2PYpPLREU=";
 
   nativeBuildInputs = [ ronn pkg-config installShellFiles ];
   buildInputs = [ libsodium ];
diff --git a/nixpkgs/pkgs/tools/backup/dar/default.nix b/nixpkgs/pkgs/tools/backup/dar/default.nix
index 172f30695d5d..067c01366077 100644
--- a/nixpkgs/pkgs/tools/backup/dar/default.nix
+++ b/nixpkgs/pkgs/tools/backup/dar/default.nix
@@ -8,12 +8,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.14";
+  version = "2.7.1";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "sha256-1uzKj+q2klIdANhLzy6TStJzeQndeUvdT0Dzwijad+U=";
+    sha256 = "sha256-dtreitvrgX/8eL9ZLIIASHq1ZQI0z1OVOanLxdNGvu8=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/tools/backup/duplicati/default.nix b/nixpkgs/pkgs/tools/backup/duplicati/default.nix
index 2d9124d6f51a..48ce604cd717 100644
--- a/nixpkgs/pkgs/tools/backup/duplicati/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duplicati/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "duplicati";
-  version = "2.0.5.1";
+  version = "2.0.6.1";
   channel = "beta";
-  build_date = "2020-01-18";
+  build_date = "2021-05-03";
 
   src = fetchzip {
     url = "https://github.com/duplicati/duplicati/releases/download/v${version}-${version}_${channel}_${build_date}/duplicati-${version}_${channel}_${build_date}.zip";
-    sha256 = "1k3gfwcw7snxkqn4lf9rx1vzradpyq5vc48pwvaa8wwqnlykiimw";
+    sha256 = "09537hswpicsx47vfdm78j3h7vvjd7nqjd2461jrln57nl7v7dac";
     stripRoot = false;
   };
 
diff --git a/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix b/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
index f236a80547c3..5512ce2b7b12 100644
--- a/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/gamerbackup/default.nix
@@ -1,24 +1,30 @@
-{ lib, buildGoModule, fetchFromGitHub, lepton }:
+{ lib, makeWrapper, buildGoModule, fetchFromGitHub, lepton }:
 
 buildGoModule {
   pname = "gb-backup";
-  version = "unstable-2021-03-06";
+  version = "unstable-2021-04-07";
 
   src = fetchFromGitHub {
     owner = "leijurv";
     repo = "gb";
-    rev = "5a94e60148628fc7796d15c53d0ed87184322053";
-    sha256 = "07skhwnxvm6yngb2665gkh5qbiyp7hb7av8dkckzypmd4k8z93cm";
+    rev = "904813bf0bbce048af5795618d58c0b1953f9ff8";
+    sha256 = "111jrcv4x38sc19xha5q3pd2297s13qh1maa7sa1k09hgypvgsxf";
   };
 
   vendorSha256 = "0m2aa6p04b4fs7zncar1mlykc94pp527phv71cdsbx58jgsm1jnx";
 
-  buildInputs = [ lepton ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  checkInputs = [ lepton ];
+
+  postFixup = ''
+    wrapProgram $out/bin/gb --prefix PATH : ${lib.makeBinPath [ lepton ]}
+  '';
 
   meta = with lib; {
     description = "Gamer Backup, a super opinionated cloud backup system";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ babbaj ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/kopia/default.nix b/nixpkgs/pkgs/tools/backup/kopia/default.nix
index bcf51372f6c5..32f051f5ad91 100644
--- a/nixpkgs/pkgs/tools/backup/kopia/default.nix
+++ b/nixpkgs/pkgs/tools/backup/kopia/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, coreutils }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "kopia";
-  version = "0.7.3";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dnk764y71c9k9nghn9q06f2zz9igsvm4z826azil2d58h5d06j6";
+    sha256 = "sha256-Or6RL6yT/X3rVIySqt5lWbXbI25f8HNLBpY3cOhMC0g=";
   };
 
-  vendorSha256 = "1mnhq6kn0pn67l55a9k6irmjlprr295218nms3klsk2720syzdwq";
+  vendorSha256 = "sha256-1FK5IIvm2iyzGqj8IPL3/qvxFj0dC37aycQQ5MO0mBI=";
 
   doCheck = false;
 
@@ -23,12 +23,6 @@ buildGoModule rec {
        -X github.com/kopia/kopia/repo.BuildInfo=${src.rev}
   '';
 
-  postConfigure = ''
-    # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
-    substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
-      --replace "/bin/stty" "${coreutils}/bin/stty"
-  '';
-
   meta = with lib; {
     homepage = "https://kopia.io";
     description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
diff --git a/nixpkgs/pkgs/tools/backup/monolith/default.nix b/nixpkgs/pkgs/tools/backup/monolith/default.nix
index 01722fa90709..8c2be78af2a1 100644
--- a/nixpkgs/pkgs/tools/backup/monolith/default.nix
+++ b/nixpkgs/pkgs/tools/backup/monolith/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , pkg-config
 , openssl
+, libiconv
 , Security
 }:
 
@@ -17,11 +18,11 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-n89rfZwR8B6SKeLtzmbeHRyw2G9NIQ1BY6JvJuZmC/w=";
   };
 
-  cargoSha256 = "sha256-RqtJLfBF9hfPh049uyc9K+uNBh+P3VMznuA2UtOwK3M=";
+  cargoSha256 = "sha256-+UGGsBU12PzkrZ8Po8fJBs1pygdOvoHp0tKmipjVMQ4=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ Security ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   checkFlagsArray = [ "--skip=tests::cli" ];
 
diff --git a/nixpkgs/pkgs/tools/backup/rdedup/default.nix b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
index 3d908dd24a11..482d1aec8da6 100644
--- a/nixpkgs/pkgs/tools/backup/rdedup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0y34a3mpghdmcb2rx4z62q0s351bfmy1287d75mm07ryfgglgsd7";
   };
 
-  cargoSha256 = "0akwb7ak4h1i1zk4wcn27zyqjz6mrchs47014xbzw22rj8h8dx92";
+  cargoSha256 = "1k0pl9i7zf1ki5ch2zxc1fqsf94bxjlvjrkh0500cycwqcdys296";
 
   cargoPatches = [
     ./v3.1.1-fix-Cargo.lock.patch
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
     ++ (lib.optional stdenv.isDarwin Security);
 
   configurePhase = ''
-    export LIBCLANG_PATH="${llvmPackages.libclang}/lib"
+    export LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/backup/s3ql/default.nix b/nixpkgs/pkgs/tools/backup/s3ql/default.nix
index 70394afb50e4..f67b5467078c 100644
--- a/nixpkgs/pkgs/tools/backup/s3ql/default.nix
+++ b/nixpkgs/pkgs/tools/backup/s3ql/default.nix
@@ -2,19 +2,19 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "s3ql";
-  version = "3.3.2";
+  version = "3.7.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "release-${version}";
-    sha256 = "1x0xj8clfs8fdczn8skc2wag5i4z47bsvlczn22iaf20hll1bb2w";
+    sha256 = "11f8k5vzfq69slzv17vddj135mzlcpmcj3cj3bigq717qb8vd6wl";
   };
 
-  checkInputs = [ which ] ++ (with python3Packages; [ cython pytest ]);
+  checkInputs = [ which ] ++ (with python3Packages; [ cython pytest pytest-trio ]);
   propagatedBuildInputs = with python3Packages; [
-    sqlite apsw pycrypto requests defusedxml dugong llfuse
-    cython pytest pytest-catchlog google-auth google-auth-oauthlib
+    sqlite apsw pycrypto requests defusedxml dugong
+    google-auth google-auth-oauthlib trio pyfuse3
   ];
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/tools/backup/sanoid/default.nix b/nixpkgs/pkgs/tools/backup/sanoid/default.nix
index a60683a27e19..3a59dcc06408 100644
--- a/nixpkgs/pkgs/tools/backup/sanoid/default.nix
+++ b/nixpkgs/pkgs/tools/backup/sanoid/default.nix
@@ -1,46 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, zfs
+{ lib, stdenv, fetchFromGitHub, makeWrapper, zfs
 , perlPackages, procps, which, openssh, mbuffer, pv, lzop, gzip, pigz }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "sanoid";
-  version = "2.0.3";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "jimsalterjrs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wmymzqg503nmhw8hrblfs67is1l3ljbk2fjvrqwyb01b7mbn80x";
+    sha256 = "12g5cjx34ys6ix6ivahsbr3bbbi1fmjwdfdk382z6q71w3pyxxzf";
   };
 
-  patches = [
-    # Make sanoid look for programs in PATH
-    (fetchpatch {
-      url = "https://github.com/jimsalterjrs/sanoid/commit/dc2371775afe08af799d3097d47b48182d1716eb.patch";
-      sha256 = "16hlwcbcb8h3ar1ywd2bzr3h3whgbcfk6walmp8z6j74wbx81aav";
-    })
-    # Make findoid look for programs in PATH
-    (fetchpatch {
-      url = "https://github.com/jimsalterjrs/sanoid/commit/44bcd21f269e17765acd1ad0d45161902a205c7b.patch";
-      sha256 = "0zqyl8q5sfscqcc07acw68ysnlnh3nb57cigjfwbccsm0zwlwham";
-    })
-    # Add --cache-dir option
-    (fetchpatch {
-      url = "https://github.com/jimsalterjrs/sanoid/commit/a1f5e4c0c006e16a5047a16fc65c9b3663adb81e.patch";
-      sha256 = "1bb4g2zxrbvf7fvcgzzxsr1cvxzrxg5dzh89sx3h7qlrd6grqhdy";
-    })
-    # Add --run-dir option
-    (fetchpatch {
-      url = "https://github.com/jimsalterjrs/sanoid/commit/59a07f92b4920952cc9137b03c1533656f48b121.patch";
-      sha256 = "11v4jhc36v839gppzvhvzp5jd22904k8xqdhhpx6ghl75yyh4f4s";
-    })
-  ];
-
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = with perlPackages; [ perl ConfigIniFiles CaptureTiny ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p "$out/bin"
     mkdir -p "$out/etc/sanoid"
     cp sanoid.defaults.conf "$out/etc/sanoid/sanoid.defaults.conf"
@@ -63,12 +42,14 @@ stdenv.mkDerivation rec {
     wrapProgram "$out/bin/findoid" \
       --prefix PERL5LIB : "$PERL5LIB" \
       --prefix PATH : "${makeBinPath [ "/run/booted-system/sw" zfs ]}"
+
+    runHook postInstall
   '';
 
   meta = {
     description = "A policy-driven snapshot management tool for ZFS filesystems";
     homepage = "https://github.com/jimsalterjrs/sanoid";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lopsided98 ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/tools/backup/wal-g/default.nix b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
index ee882de07e2d..e9be1c83005e 100644
--- a/nixpkgs/pkgs/tools/backup/wal-g/default.nix
+++ b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
@@ -1,24 +1,24 @@
-{ lib, buildGoModule, fetchFromGitHub, brotli }:
+{ lib, buildGoModule, fetchFromGitHub, brotli, libsodium }:
 
 buildGoModule rec {
   pname = "wal-g";
-  version = "0.2.21";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner = "wal-g";
     repo = "wal-g";
     rev = "v${version}";
-    sha256 = "0pinvi2b3vi6lvw3im8w6vcjm1qg2kbf6ydf1h72xjz5933yrjy4";
+    sha256 = "0al8xg57fh3zqwgmm6lkcnpnisividhqld9jry3sqk2k45856y8j";
   };
 
-  vendorSha256 = "0qzw0lr0x6kqlpa4kghrfl2271752sr7idk6n4hkhk6q0kghcsnk";
+  vendorSha256 = "0n0ymgcgkjlp0indih8h55jjj6372rdfcq717kwln6sxm4r9mb17";
 
-  buildInputs = [ brotli ];
+  buildInputs = [ brotli libsodium ];
 
   subPackages = [ "main/pg" ];
 
   buildFlagsArray = [
-    "-tags=brotli"
+    "-tags=brotli libsodium"
     "-ldflags=-s -w -X github.com/wal-g/wal-g/cmd/pg.WalgVersion=${version} -X github.com/wal-g/wal-g/cmd/pg.GitRevision=${src.rev}"
   ];
 
diff --git a/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
index 71ce9060b255..b932b8e66c6f 100644
--- a/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , bluez-tools
 , cinnamon
-, gnome3
+, gnome
 , gobject-introspection
 , intltool
 , pavucontrol
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     bluez-tools
     cinnamon.xapps
-    gnome3.gnome-bluetooth
+    gnome.gnome-bluetooth
     python3Packages.python
     util-linux
   ];
diff --git a/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix b/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
index b30a8763706b..7b3aa397fc35 100644
--- a/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/blueman/default.nix
@@ -1,6 +1,6 @@
 { config, stdenv, lib, fetchurl, intltool, pkg-config, python3Packages, bluez, gtk3
 , obex_data_server, xdg-utils, dnsmasq, dhcp, libappindicator, iproute2
-, gnome3, librsvg, wrapGAppsHook, gobject-introspection, autoreconfHook
+, gnome, librsvg, wrapGAppsHook, gobject-introspection, autoreconfHook
 , networkmanager, withPulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio, fetchpatch }:
 
 let
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [ bluez gtk3 pythonPackages.python librsvg
-                  gnome3.adwaita-icon-theme iproute2 libappindicator networkmanager ]
+                  gnome.adwaita-icon-theme iproute2 libappindicator networkmanager ]
                 ++ pythonPath
                 ++ lib.optional withPulseAudio libpulseaudio;
 
diff --git a/nixpkgs/pkgs/tools/bluetooth/bluez-alsa/default.nix b/nixpkgs/pkgs/tools/bluetooth/bluez-alsa/default.nix
index 6867d7c8ce94..175fa92bad2f 100644
--- a/nixpkgs/pkgs/tools/bluetooth/bluez-alsa/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/bluez-alsa/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
-, alsaLib, bluez, glib, sbc, dbus
+, alsa-lib, bluez, glib, sbc, dbus
 
 # optional, but useful utils
 , readline, libbsd, ncurses
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config autoreconfHook ];
 
   buildInputs = [
-    alsaLib bluez glib sbc dbus
+    alsa-lib bluez glib sbc dbus
     readline libbsd ncurses
   ]
   ++ optional aacSupport fdk_aac;
diff --git a/nixpkgs/pkgs/tools/cd-dvd/bootiso/default.nix b/nixpkgs/pkgs/tools/cd-dvd/bootiso/default.nix
new file mode 100644
index 000000000000..e6a902488599
--- /dev/null
+++ b/nixpkgs/pkgs/tools/cd-dvd/bootiso/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, bash
+, makeWrapper
+, bc
+, jq
+, wimlib
+, file
+, syslinux
+, busybox
+, gnugrep # We can't use busybox's 'grep' as it doesn't support perl '-P' expressions.
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "bootiso";
+  version = "4.2.0";
+
+  src = fetchFromGitHub {
+    owner = "jsamr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1l09d543b73r0wbpsj5m6kski8nq48lbraq1myxhidkgl3mm3d5i";
+  };
+
+  strictDeps = true;
+  buildInputs = [ bash ];
+  nativeBuildInputs = [ makeWrapper ];
+  postPatch = ''
+    patchShebangs --host bootiso
+  '';
+
+  makeFlags = [ "prefix=${placeholder "out"}" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/bootiso \
+      --prefix PATH : ${lib.makeBinPath [ bc jq wimlib file syslinux gnugrep busybox ]} \
+      --prefix BOOTISO_SYSLINUX_LIB_ROOT : ${syslinux}/share/syslinux
+  '';
+
+  meta = with lib; {
+    description = "Script for securely creating a bootable USB device from one image file";
+    homepage = "https://github.com/jsamr/bootiso";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ musfay ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/bzip2/1_1.nix b/nixpkgs/pkgs/tools/compression/bzip2/1_1.nix
index 7557c5843ccc..ca5670a2e512 100644
--- a/nixpkgs/pkgs/tools/compression/bzip2/1_1.nix
+++ b/nixpkgs/pkgs/tools/compression/bzip2/1_1.nix
@@ -34,8 +34,6 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "High-quality data compression program";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/tools/compression/flips/default.nix b/nixpkgs/pkgs/tools/compression/flips/default.nix
index e99f3fec163e..b4a79aac2127 100644
--- a/nixpkgs/pkgs/tools/compression/flips/default.nix
+++ b/nixpkgs/pkgs/tools/compression/flips/default.nix
@@ -2,20 +2,24 @@
 
 stdenv.mkDerivation {
   pname = "flips";
-  version = "unstable-2020-10-02";
+  version = "unstable-2021-05-18";
 
   src = fetchFromGitHub {
     owner = "Alcaro";
     repo = "Flips";
-    rev = "5a3d2012b8ea53ae777c24b8ac4edb9a6bdb9761";
-    sha256 = "1ksh9j1n5z8b78yd7gjxswndsqnb1azp84xk4rc0p7zq127l0fyy";
+    rev = "3476e5e46fc6f10df475f0cad1714358ba04c756";
+    sha256 = "0s13qrmqfmlb2vy0smpgw39vjkl8vzsmpzk52jnc9r7b4hisii39";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
   buildInputs = [ gtk3 libdivsufsort ];
   patches = [ ./use-system-libdivsufsort.patch ];
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
-  buildPhase = "./make.sh";
+  buildPhase = ''
+    runHook preBuild
+    ./make.sh
+    runHook postBuild
+  '';
 
   meta = with lib; {
     description = "A patcher for IPS and BPS files";
diff --git a/nixpkgs/pkgs/tools/compression/imagelol/default.nix b/nixpkgs/pkgs/tools/compression/imagelol/default.nix
new file mode 100644
index 000000000000..d54d2da2f90e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/imagelol/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "imagelol";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "MCRedstoner2004";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0978zdrfj41jsqm78afyyd1l64iki9nwjvhd8ynii1b553nn4dmd";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./ImageLOL $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/MCredstoner2004/ImageLOL";
+    description = "Simple program to store a file into a PNG image";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/pbzx/default.nix b/nixpkgs/pkgs/tools/compression/pbzx/default.nix
index 8a57d483ab28..03b984bb6435 100644
--- a/nixpkgs/pkgs/tools/compression/pbzx/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pbzx/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
   buildInputs = [ xz xar ];
   buildPhase = ''
-    cc pbzx.c -llzma -lxar -o pbzx
+    ${stdenv.cc.targetPrefix}cc pbzx.c -llzma -lxar -o pbzx
   '';
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/compression/xar/0001-Add-useless-descriptions-to-AC_DEFINE.patch b/nixpkgs/pkgs/tools/compression/xar/0001-Add-useless-descriptions-to-AC_DEFINE.patch
new file mode 100644
index 000000000000..a605d2db1708
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/xar/0001-Add-useless-descriptions-to-AC_DEFINE.patch
@@ -0,0 +1,95 @@
+From a14be07c0aae3bf6f732d1ca5f625ba375702121 Mon Sep 17 00:00:00 2001
+From: Andrew Childs <andrew.childs@bibo.com.ph>
+Date: Sun, 15 Nov 2020 19:12:33 +0900
+Subject: [PATCH 1/2] Add useless descriptions to AC_DEFINE
+
+Removes autoheader warnings.
+---
+ configure.ac | 42 +++++++++++++++++++++---------------------
+ 1 file changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 812b5ff..358ab89 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -210,48 +210,48 @@ AC_CHECK_MEMBERS([struct stat.st_flags])
+ 
+ AC_CHECK_SIZEOF(uid_t)
+ if test $ac_cv_sizeof_uid_t = "4"; then
+-AC_DEFINE(UID_STRING, RId32)
+-AC_DEFINE(UID_CAST, (uint32_t))
++AC_DEFINE([UID_STRING], RId32, [UID_STRING])
++AC_DEFINE([UID_CAST], (uint32_t), [UID_CAST])
+ elif test $ac_cv_sizeof_uid_t = "8"; then
+-AC_DEFINE(UID_STRING, PRId64)
+-AC_DEFINE(UID_CAST, (uint64_t))
++AC_DEFINE([UID_STRING], PRId64, [UID_STRING])
++AC_DEFINE([UID_CAST], (uint64_t), [UID_CAST])
+ else
+ AC_ERROR(can not detect the size of your system's uid_t type)
+ fi
+ 
+ AC_CHECK_SIZEOF(gid_t)
+ if test $ac_cv_sizeof_gid_t = "4"; then
+-AC_DEFINE(GID_STRING, PRId32)
+-AC_DEFINE(GID_CAST, (uint32_t))
++AC_DEFINE([GID_STRING], PRId32, [GID_STRING])
++AC_DEFINE([GID_CAST], (uint32_t), [GID_CAST])
+ elif test $ac_cv_sizeof_gid_t = "8"; then
+-AC_DEFINE(GID_STRING, PRId64)
+-AC_DEFINE(GID_CAST, (uint64_t))
++AC_DEFINE([GID_STRING], PRId64, [GID_STRING])
++AC_DEFINE([GID_CAST], (uint64_t), [GID_CAST])
+ else
+ AC_ERROR(can not detect the size of your system's gid_t type)
+ fi
+ 
+ AC_CHECK_SIZEOF(ino_t)
+ if test $ac_cv_sizeof_ino_t = "4"; then
+-AC_DEFINE(INO_STRING, PRId32)
+-AC_DEFINE(INO_HEXSTRING, PRIx32)
+-AC_DEFINE(INO_CAST, (uint32_t))
++AC_DEFINE([INO_STRING], PRId32, [INO_STRING])
++AC_DEFINE([INO_HEXSTRING], PRIx32, [INO_HEXSTRING])
++AC_DEFINE([INO_CAST], (uint32_t), [INO_CAST])
+ elif test $ac_cv_sizeof_ino_t = "8"; then
+-AC_DEFINE(INO_STRING, PRId64)
+-AC_DEFINE(INO_HEXSTRING, PRIx64)
+-AC_DEFINE(INO_CAST, (uint64_t))
++AC_DEFINE([INO_STRING], PRId64, [INO_STRING])
++AC_DEFINE([INO_HEXSTRING], PRIx64, [INO_HEXSTRING])
++AC_DEFINE([INO_CAST], (uint64_t), [INO_CAST])
+ else
+ AC_ERROR(can not detect the size of your system's ino_t type)
+ fi
+ 
+ AC_CHECK_SIZEOF(dev_t)
+ if test $ac_cv_sizeof_dev_t = "4"; then
+-AC_DEFINE(DEV_STRING, PRId32)
+-AC_DEFINE(DEV_HEXSTRING, PRIx32)
+-AC_DEFINE(DEV_CAST, (uint32_t))
++AC_DEFINE([DEV_STRING], PRId32, [DEV_STRING])
++AC_DEFINE([DEV_HEXSTRING], PRIx32, [DEV_HEXSTRING])
++AC_DEFINE([DEV_CAST], (uint32_t), [DEV_CAST])
+ elif test $ac_cv_sizeof_dev_t = "8"; then
+-AC_DEFINE(DEV_STRING, PRId64)
+-AC_DEFINE(DEV_HEXSTRING, PRIx64)
+-AC_DEFINE(DEV_CAST, (uint64_t))
++AC_DEFINE([DEV_STRING], PRId64, [DEV_STRING])
++AC_DEFINE([DEV_HEXSTRING], PRIx64, [DEV_HEXSTRING])
++AC_DEFINE([DEV_CAST], (uint64_t), [DEV_CAST])
+ else
+ AC_ERROR(can not detect the size of your system's dev_t type)
+ fi
+@@ -261,7 +261,7 @@ AC_CHECK_LIB(acl, acl_get_file)
+ dnl Check for paths
+ AC_PREFIX_DEFAULT(/usr/local)
+ 
+-AC_CHECK_FUNC([asprintf], AC_DEFINE([HAVE_ASPRINTF]))
++AC_CHECK_FUNC([asprintf], AC_DEFINE([HAVE_ASPRINTF], [], [HAVE_ASPRINTF]))
+ 
+ dnl 
+ dnl Configure libxml2.
+-- 
+2.28.0
+
diff --git a/nixpkgs/pkgs/tools/compression/xar/0002-Use-pkg-config-for-libxml2.patch b/nixpkgs/pkgs/tools/compression/xar/0002-Use-pkg-config-for-libxml2.patch
new file mode 100644
index 000000000000..d71ad4b753c1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/xar/0002-Use-pkg-config-for-libxml2.patch
@@ -0,0 +1,89 @@
+From 276833851657c85651c053ee16b8e1a8dc768a50 Mon Sep 17 00:00:00 2001
+From: Andrew Childs <andrew.childs@bibo.com.ph>
+Date: Sun, 15 Nov 2020 19:12:56 +0900
+Subject: [PATCH 2/2] Use pkg-config for libxml2
+
+---
+ configure.ac | 66 +++++++++-------------------------------------------
+ 1 file changed, 11 insertions(+), 55 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 358ab89..984a694 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -268,61 +268,17 @@ dnl Configure libxml2.
+ dnl 
+ LIBXML2_VERSION_MIN=2.6.11
+ 
+-have_libxml2="1"
+-
+-AC_ARG_WITH([xml2-config], [  --with-xml2-config      libxml2 config program],
+-if test "x${with_xml2_config}" = "xno" ; then
+-  XML2_CONFIG=
+-else
+-  XML2_CONFIG="${with_xml2_config}"
+-fi
+-,
+-  XML2_CONFIG=
+-)
+-if test "x${XML2_CONFIG}" != "x" ; then
+-   if test ! -x "${XML2_CONFIG}" ; then
+-     AC_MSG_ERROR([Unusable or missing xml2-config: ${XML2_CONFIG}])
+-   fi
+-else
+-  AC_PATH_PROG([XML2_CONFIG], [xml2-config], , [${PATH}])
+-  if test "x${XML2_CONFIG}" = "x" ; then
+-    AC_MSG_ERROR([Cannot configure without xml2-config])
+-  fi
+-fi
+-
+-dnl Make sure the version of libxml2 found is sufficient.
+-AC_MSG_CHECKING([for libxml >= ${LIBXML2_VERSION_MIN}])
+-LIBXML2_FOUND=`2>&1 ${XML2_CONFIG} --version`
+-LIBXML2_MAJOR=`echo ${LIBXML2_FOUND} | tr . " " | awk '{print $1}'`
+-LIBXML2_MINOR=`echo ${LIBXML2_FOUND} | tr . " " | awk '{print $2}' | tr a-z " " |awk '{print $1}'`
+-LIBXML2_BRANCH=`echo ${LIBXML2_FOUND} | tr . " " | awk '{print $3}' | tr a-z " " |awk '{print $1}'`
+-if test "x${LIBXML2_BRANCH}" = "x" ; then
+-  LIBXML2_BRANCH=0
+-fi
+-LIBXML2_MAJOR_MIN=`echo ${LIBXML2_VERSION_MIN} | tr . " " | awk '{print $1}'`
+-LIBXML2_MINOR_MIN=`echo ${LIBXML2_VERSION_MIN} | tr . " " | awk '{print $2}'`
+-LIBXML2_BRANCH_MIN=`echo ${LIBXML2_VERSION_MIN} | tr . " " | awk '{print $3}'`
+-if test ${LIBXML2_MAJOR} -gt ${LIBXML2_MAJOR_MIN} \
+-     -o ${LIBXML2_MAJOR} -eq ${LIBXML2_MAJOR_MIN} \
+-     -a ${LIBXML2_MINOR} -gt ${LIBXML2_MINOR_MIN} \
+-     -o ${LIBXML2_MAJOR} -eq ${LIBXML2_MAJOR_MIN} \
+-     -a ${LIBXML2_MINOR} -eq ${LIBXML2_MINOR_MIN} \
+-     -a ${LIBXML2_BRANCH} -ge $LIBXML2_BRANCH_MIN ; then
+-  AC_MSG_RESULT([${LIBXML2_MAJOR}.${LIBXML2_MINOR}.${LIBXML2_BRANCH}])
+-  have_libxml2="1"
+-  CPPFLAGS="${CPPFLAGS} `${XML2_CONFIG} --cflags`"
+-  LIBS="${LIBS} `${XML2_CONFIG} --libs`"
+-else
+-  AC_MSG_RESULT([no])
+-  have_libxml2="0"
+-fi
+-if test "x${have_libxml2}" = "x1" ; then
+-  dnl Final sanity check, to make sure that xmlwriter is present.
+-  AC_CHECK_HEADER([libxml/xmlwriter.h], , [have_libxml2="0"])
+-fi
+-if test "x${have_libxml2}" = "x0" ; then
+-  AC_MSG_ERROR([Cannot build without libxml2])
+-fi
++PKG_PROG_PKG_CONFIG
++
++PKG_CHECK_MODULES(LIBXML2_PKGCONFIG, [libxml-2.0 >= ${LIBXML2_VERSION_MIN}],
++  [
++    have_libxml2=1
++    CPPFLAGS="${CPPFLAGS} ${LIBXML2_PKGCONFIG_CFLAGS}"
++    LIBS="${LIBS} ${LIBXML2_PKGCONFIG_LIBS}"
++  ],
++  [
++    have_libxml2=0
++  ])
+ 
+ dnl 
+ dnl Configure libcrypto (part of OpenSSL).
+-- 
+2.28.0
+
diff --git a/nixpkgs/pkgs/tools/compression/xar/default.nix b/nixpkgs/pkgs/tools/compression/xar/default.nix
index 32b6c6d005cf..d4baab17b91f 100644
--- a/nixpkgs/pkgs/tools/compression/xar/default.nix
+++ b/nixpkgs/pkgs/tools/compression/xar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libxml2, xz, openssl, zlib, bzip2, fts, autoconf }:
+{ lib, stdenv, fetchurl, pkg-config, libxml2, xz, openssl, zlib, bzip2, fts, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   version = "1.6.1";
@@ -9,16 +9,20 @@ stdenv.mkDerivation rec {
     sha256 = "0ghmsbs6xwg1092v7pjcibmk5wkyifwxw6ygp08gfz25d2chhipf";
   };
 
-  buildInputs = [ libxml2 xz openssl zlib bzip2 fts autoconf ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ libxml2 xz openssl zlib bzip2 fts ];
 
-  prePatch = ''
+  patches = [
+    ./0001-Add-useless-descriptions-to-AC_DEFINE.patch
+    ./0002-Use-pkg-config-for-libxml2.patch
+  ];
+
+  postPatch = ''
     substituteInPlace configure.ac \
       --replace 'OpenSSL_add_all_ciphers' 'OPENSSL_init_crypto' \
       --replace 'openssl/evp.h' 'openssl/crypto.h'
   '';
 
-  preConfigure = "./autogen.sh";
-
   meta = {
     homepage    = "https://mackyle.github.io/xar/";
     description = "Extensible Archiver";
diff --git a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
index 8ab82b672265..a28499f77328 100644
--- a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, attr, libuuid, libscrypt, libsodium, keyutils
-, liburcu, zlib, libaio, udev, zstd, lz4, valgrind, python3Packages
+, liburcu, zlib, libaio, udev, zstd, lz4, valgrind, python3Packages, nixosTests
 , fuseSupport ? false, fuse3 ? null }:
 
 assert fuseSupport -> fuse3 != null;
@@ -39,6 +39,10 @@ stdenv.mkDerivation {
 
   installFlags = [ "PREFIX=${placeholder "out"}" ];
 
+  passthru.tests = {
+    smoke-test = nixosTests.bcachefs;
+  };
+
   meta = with lib; {
     description = "Tool for managing bcachefs filesystems";
     homepage = "https://bcachefs.org/";
diff --git a/nixpkgs/pkgs/tools/filesystems/bees/default.nix b/nixpkgs/pkgs/tools/filesystems/bees/default.nix
index bbad83f01768..c82ea23debd9 100644
--- a/nixpkgs/pkgs/tools/filesystems/bees/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bees/default.nix
@@ -1,25 +1,35 @@
-{ lib, stdenv, runCommand, fetchFromGitHub, bash, btrfs-progs, coreutils, python3Packages, util-linux }:
+{ lib
+, stdenv
+, runCommand
+, fetchFromGitHub
+, bash
+, btrfs-progs
+, coreutils
+, python3Packages
+, util-linux
+, nixosTests
+}:
 
 let
 
   bees = stdenv.mkDerivation rec {
     pname = "bees";
-    version = "0.6.3";
+    version = "0.6.5";
 
     src = fetchFromGitHub {
       owner = "Zygo";
       repo = "bees";
       rev = "v${version}";
-      sha256 = "sha256-brEjr7lhmKDCIDeLq+XP+ZTxv1RvwoUlszMSEYygxv8=";
+      sha256 = "11ppbf23b8ngzfy02am0skxlybzmgsp6kna21jimb01x9pp1q7l7";
     };
 
     buildInputs = [
-      btrfs-progs               # for btrfs/ioctl.h
-      util-linux                 # for uuid.h
+      btrfs-progs # for btrfs/ioctl.h
+      util-linux # for uuid.h
     ];
 
     nativeBuildInputs = [
-      python3Packages.markdown   # documentation build
+      python3Packages.markdown # documentation build
     ];
 
     preBuild = ''
@@ -55,13 +65,18 @@ let
 
 in
 
-runCommand "bees-service" {
-  inherit bash bees coreutils;
-  utillinux = util-linux; # needs to be a valid shell variable name
-  btrfsProgs = btrfs-progs; # needs to be a valid shell variable name
-} ''
+(runCommand "bees-service"
+  {
+    inherit bash bees coreutils;
+    utillinux = util-linux; # needs to be a valid shell variable name
+    btrfsProgs = btrfs-progs; # needs to be a valid shell variable name
+  } ''
   mkdir -p -- "$out/bin"
   substituteAll ${./bees-service-wrapper} "$out"/bin/bees-service-wrapper
   chmod +x "$out"/bin/bees-service-wrapper
   ln -s ${bees}/bin/beesd "$out"/bin/beesd
-''
+'').overrideAttrs (old: {
+  passthru.tests = {
+    smoke-test = nixosTests.bees;
+  };
+})
diff --git a/nixpkgs/pkgs/tools/filesystems/blobfuse/default.nix b/nixpkgs/pkgs/tools/filesystems/blobfuse/default.nix
index 651e93f42137..a620a07d4753 100644
--- a/nixpkgs/pkgs/tools/filesystems/blobfuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/blobfuse/default.nix
@@ -1,19 +1,32 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, curl, gnutls, libgcrypt, libuuid, fuse }:
-
-stdenv.mkDerivation rec {
-  pname = "blobfuse";
-  version = "1.0.2";
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, curl, gnutls, libgcrypt, libuuid, fuse, boost }:
 
+let
+  version = "1.3.7";
   src = fetchFromGitHub {
     owner  = "Azure";
     repo   = "azure-storage-fuse";
-    rev    = "v${version}";
-    sha256 = "1qh04z1fsj1l6l12sz9yl2sy9hwlrnzac54hwrr7wvsgv90n9gbp";
+    rev    = "blobfuse-${version}-Linux";
+    sha256 = "sha256-yihIuS4AG489U7eBi/p7H6S7Cg54kkQeNVCexxQZ60A=";
   };
+  cpplite = stdenv.mkDerivation rec {
+    pname = "cpplite";
+    inherit version src;
+
+    sourceRoot = "source/cpplite";
+    patches = [ ./install-adls.patch ];
+
+    cmakeFlags = [ "-DBUILD_ADLS=ON" "-DUSE_OPENSSL=OFF" ];
+
+    buildInputs = [ curl libuuid gnutls ];
+    nativeBuildInputs = [ cmake pkg-config ];
+  };
+in stdenv.mkDerivation rec {
+  pname = "blobfuse";
+  inherit version src;
 
   NIX_CFLAGS_COMPILE = "-Wno-error=catch-value";
 
-  buildInputs = [ curl gnutls libgcrypt libuuid fuse ];
+  buildInputs = [ curl gnutls libgcrypt libuuid fuse boost cpplite ];
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/filesystems/blobfuse/install-adls.patch b/nixpkgs/pkgs/tools/filesystems/blobfuse/install-adls.patch
new file mode 100644
index 000000000000..e48f4d592f68
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/blobfuse/install-adls.patch
@@ -0,0 +1,14 @@
+diff --git a/adls/CMakeLists.txt b/adls/CMakeLists.txt
+index 1fb7146..22e663a 100644
+--- a/adls/CMakeLists.txt
++++ b/adls/CMakeLists.txt
+@@ -50,3 +50,9 @@ if(BUILD_TESTS)
+   string(REGEX REPLACE "([^;]+)" "${CMAKE_CURRENT_SOURCE_DIR}/\\1" AZURE_STORAGE_ADLS_TEST_SOURCES "${AZURE_STORAGE_ADLS_TEST_SOURCES}")
+   set(AZURE_STORAGE_ADLS_TEST_SOURCES ${AZURE_STORAGE_ADLS_TEST_SOURCES} PARENT_SCOPE)
+ endif()
++
++install(TARGETS azure-storage-adls
++        ARCHIVE DESTINATION lib
++        LIBRARY DESTINATION lib
++        RUNTIME DESTINATION bin)
++
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
index 0e135d41a4be..9a05a0d67fec 100644
--- a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.11";
+  version = "5.11.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "sha256-1BlhsKkhYMgPiUrZoYgoIoicLh0ITL8+CLjCFKXPATc=";
+    sha256 = "sha256-46rMxHVuxOVQLLKp+Ftn1SiWZE9MPA+IprxZjHC96/4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index 57d5845c9961..52bce3f274df 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, runCommand, fetchurl
-, fetchpatch
 , ensureNewerSourcesHook
 , cmake, pkg-config
 , which, git
@@ -14,6 +13,15 @@
 , libnl, libcap_ng
 , rdkafka
 , nixosTests
+, cryptsetup
+, sqlite
+, lua
+, icu
+, bzip2
+, doxygen
+, graphviz
+, fmt
+, python3
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -123,10 +131,10 @@ let
   ]);
   sitePackages = ceph-python-env.python.sitePackages;
 
-  version = "15.2.10";
+  version = "16.2.4";
   src = fetchurl {
     url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-    sha256 = "1xfijynfb56gydpwh6h4q781xymwxih6nx26idnkcjqih48nsn01";
+    sha256 = "sha256-J6FVK7feNN8cGO5BSDlfRGACAzchmRUSWR+a4ZgeWy0=";
   };
 in rec {
   ceph = stdenv.mkDerivation {
@@ -142,12 +150,18 @@ in rec {
       pkg-config which git python3Packages.wrapPython makeWrapper
       python3Packages.python # for the toPythonPath function
       (ensureNewerSourcesHook { year = "1980"; })
+      python3
+      fmt
+      # for building docs/man-pages presumably
+      doxygen
+      graphviz
     ];
 
     buildInputs = cryptoLibsMap.${cryptoStr} ++ [
       boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3
       malloc zlib openldap lttng-ust babeltrace gperf gtest cunit
       snappy lz4 oathToolkit leveldb libnl libcap_ng rdkafka
+      cryptsetup sqlite lua icu bzip2
     ] ++ lib.optionals stdenv.isLinux [
       linuxHeaders util-linux libuuid udev keyutils optLibaio optLibxfs optZfs
       # ceph 14
@@ -172,7 +186,6 @@ in rec {
     '';
 
     cmakeFlags = [
-      "-DWITH_PYTHON3=ON"
       "-DWITH_SYSTEM_ROCKSDB=OFF"  # breaks Bluestore
       "-DCMAKE_INSTALL_DATADIR=${placeholder "lib"}/lib"
 
@@ -183,6 +196,8 @@ in rec {
       "-DWITH_TESTS=OFF"
       # TODO breaks with sandbox, tries to download stuff with npm
       "-DWITH_MGR_DASHBOARD_FRONTEND=OFF"
+      # WITH_XFS has been set default ON from Ceph 16, keeping it optional in nixpkgs for now
+      ''-DWITH_XFS=${if optLibxfs != null then "ON" else "OFF"}''
     ];
 
     postFixup = ''
diff --git a/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix b/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix
index 2c5d886c14df..8c8fe31624fe 100644
--- a/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix
@@ -1,11 +1,21 @@
 { lib, stdenv, fetchurl, autoreconfHook, fuse, curl, pkg-config, glib, zlib }:
 
-stdenv.mkDerivation {
-  name = "curlftpfs-0.9.2";
+stdenv.mkDerivation rec {
+  pname = "curlftpfs";
+  version = "0.9.2";
+
   src = fetchurl {
-    url = "mirror://sourceforge/curlftpfs/curlftpfs-0.9.2.tar.gz";
+    url = "mirror://sourceforge/curlftpfs/curlftpfs-${version}.tar.gz";
     sha256 = "0n397hmv21jsr1j7zx3m21i7ryscdhkdsyqpvvns12q7qwwlgd2f";
   };
+
+  patches = [
+    # This removes AC_FUNC_MALLOC and AC_FUNC_REALLOC from configure.ac because
+    # it is known to cause problems. Search online for "rpl_malloc" and
+    # "rpl_realloc" to find out more.
+    ./fix-rpl_malloc.patch
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ fuse curl glib zlib ];
 
@@ -24,7 +34,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Filesystem for accessing FTP hosts based on FUSE and libcurl";
     homepage = "http://curlftpfs.sourceforge.net";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/curlftpfs/fix-rpl_malloc.patch b/nixpkgs/pkgs/tools/filesystems/curlftpfs/fix-rpl_malloc.patch
new file mode 100644
index 000000000000..0265e1d82893
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/curlftpfs/fix-rpl_malloc.patch
@@ -0,0 +1,13 @@
+diff -Naur a/configure.ac b/configure.ac
+--- a/configure.ac	2008-04-23 20:37:42.000000000 +0900
++++ b/configure.ac	2021-05-16 01:28:24.000000000 +0900
+@@ -46,9 +46,7 @@
+ 
+ # Checks for library functions.
+ AC_FUNC_CHOWN
+-AC_FUNC_MALLOC
+ AC_FUNC_MKTIME
+-AC_FUNC_REALLOC
+ AC_FUNC_SELECT_ARGTYPES
+ AC_FUNC_STRFTIME
+ AC_FUNC_UTIME_NULL
diff --git a/nixpkgs/pkgs/tools/filesystems/dduper/default.nix b/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
new file mode 100644
index 000000000000..5d91e8d0dcc6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchpatch, fetchFromGitHub, btrfs-progs, python3 }:
+
+let
+  btrfsProgsPatched = btrfs-progs.overrideAttrs (oldAttrs: {
+    patches = [
+      (fetchpatch {
+        name = "0001-Print-csum-for-a-given-file-on-stdout.patch";
+        url = "https://raw.githubusercontent.com/Lakshmipathi/dduper/8fab08e0f1901bf54411d25f1767b48c978074cb/patch/btrfs-progs-v5.9/0001-Print-csum-for-a-given-file-on-stdout.patch";
+        sha256 = "1li9lslrap70ibad8sij3bgpxn5lqs0j10l60bmy3c36y866q3g1";
+      })
+    ];
+  });
+  py3 = python3.withPackages (ps: with ps; [
+    prettytable
+    numpy
+  ]);
+in
+stdenv.mkDerivation rec {
+  pname = "dduper";
+  version = "0.04";
+
+  src = fetchFromGitHub {
+    owner = "lakshmipathi";
+    repo = "dduper";
+    rev = "v${version}";
+    sha256 = "09ncdawxkffldadqhfblqlkdl05q2qmywxyg6p61fv3dr2f2v5wm";
+  };
+
+  buildInputs = [
+    btrfsProgsPatched
+    py3
+  ];
+
+  patchPhase = ''
+    substituteInPlace ./dduper --replace "/usr/sbin/btrfs.static" "${btrfsProgsPatched}/bin/btrfs"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -m755 ./dduper $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Fast block-level out-of-band BTRFS deduplication tool.";
+    homepage = "https://github.com/Lakshmipathi/dduper";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ thesola10 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
index b145d1802a1c..ee7f86760707 100644
--- a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.34.1";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "16ns04g4cvp6lfhkifgib5rxpbcxy8ghhavi3mv1cvxawpmdrxnq";
+    sha256 = "sha256-GJ21Cqd/W/PocmN1p4OeeUdswhH7fSmAMiNTs0X3564=";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
diff --git a/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix b/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
index 4e8a3a991f51..d7906e5cc23b 100644
--- a/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
@@ -1,6 +1,6 @@
 {lib, stdenv, fetchFromGitHub, fuse, bison, flex_2_5_35, openssl, python3, ncurses, readline,
  autoconf, automake, libtool, pkg-config, zlib, libaio, libxml2, acl, sqlite,
- liburcu, attr, makeWrapper, coreutils, gnused, gnugrep, which,
+ liburcu, liburing, attr, makeWrapper, coreutils, gnused, gnugrep, which,
  openssh, gawk, findutils, util-linux, lvm2, btrfs-progs, e2fsprogs, xfsprogs, systemd,
  rsync, glibc, rpcsvc-proto, libtirpc
 }:
@@ -17,6 +17,7 @@ let
     fuse bison flex_2_5_35 openssl ncurses readline
     autoconf automake libtool pkg-config zlib libaio libxml2
     acl sqlite liburcu attr makeWrapper util-linux libtirpc
+    liburing
     (python3.withPackages (pkgs: [
       pkgs.flask
       pkgs.prettytable
@@ -54,13 +55,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "glusterfs";
-  version = "9.0";
+  version = "9.2";
 
   src = fetchFromGitHub {
     owner = "gluster";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pjJQAFEb44yNqvNAOclZsiEDZBgcfIxliD3La1IsKPs=";
+    sha256 = "00y2xs7nj4d59x4fp6gq7qql3scykq9lppdvx7y3xbgfmkrwixx9";
   };
   inherit buildInputs propagatedBuildInputs;
 
diff --git a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
index b8b330c129a0..c2e022ca4bde 100644
--- a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
@@ -1,28 +1,42 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , openssl
 , pandoc
 , pkg-config
+, libfido2
 }:
 
+let
+  # pandoc is currently broken on aarch64-darwin
+  # because of missing ghc
+  brokenPandoc = stdenv.isDarwin && stdenv.isAarch64;
+in
+
 buildGoModule rec {
   pname = "gocryptfs";
-  version = "1.8.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1acalwrr5xqhpqca3gypj0s68w6vpckxmg5z5gfgh8wx6nqx4aw9";
+    sha256 = "0wiagmym8mwi0vpvrs5ryn3zjwha8ilh7xkavvkd1gqd5laln0kp";
   };
 
-  runVend = true;
-  vendorSha256 = "0z3y51sgr1rmr23jpc5h5d5lw14p3qzv48rc7zj7qa4rd5cfhsgi";
+  vendorSha256 = "10az8n7z4rhsk1af2x6v3pmxg4zp7c9cal35ily8bdzzcb9cpgs0";
+
+  nativeBuildInputs = [
+    pkg-config
+  ] ++ lib.optionals (!brokenPandoc) [
+    pandoc
+  ];
 
-  nativeBuildInputs = [ pandoc pkg-config ];
   buildInputs = [ openssl ];
 
+  propagatedBuildInputs = [ libfido2 ];
+
   buildFlagsArray = ''
     -ldflags=
       -X main.GitVersion=${version}
@@ -32,9 +46,10 @@ buildGoModule rec {
 
   subPackages = [ "." "gocryptfs-xray" "contrib/statfs" ];
 
-  postBuild = ''
+  postBuild = lib.optionalString (!brokenPandoc) ''
     pushd Documentation/
     mkdir -p $out/share/man/man1
+    # taken from Documentation/MANPAGE-render.bash
     pandoc MANPAGE.md -s -t man -o $out/share/man/man1/gocryptfs.1
     pandoc MANPAGE-XRAY.md -s -t man -o $out/share/man/man1/gocryptfs-xray.1
     pandoc MANPAGE-STATFS.md -s -t man -o $out/share/man/man1/statfs.1
diff --git a/nixpkgs/pkgs/tools/filesystems/irods/common.nix b/nixpkgs/pkgs/tools/filesystems/irods/common.nix
index 77c05a616662..87bb2b9051ce 100644
--- a/nixpkgs/pkgs/tools/filesystems/irods/common.nix
+++ b/nixpkgs/pkgs/tools/filesystems/irods/common.nix
@@ -19,7 +19,7 @@
     "-DIRODS_LINUX_DISTRIBUTION_NAME=nix"
     "-DIRODS_LINUX_DISTRIBUTION_VERSION_MAJOR=${builtins.nixVersion}"
     "-DCPACK_GENERATOR=TGZ"
-    "-DCMAKE_CXX_FLAGS=-I${libcxx}/include/c++/v1"
+    "-DCMAKE_CXX_FLAGS=-I${lib.getDev libcxx}/include/c++/v1"
   ];
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/filesystems/sandboxfs/default.nix b/nixpkgs/pkgs/tools/filesystems/sandboxfs/default.nix
index 32d186344dd7..7d6d61198786 100644
--- a/nixpkgs/pkgs/tools/filesystems/sandboxfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/sandboxfs/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "Ia6rq6FN4abnvLXjlQh4Q+8ra5JThKnC86UXC7s9//U=";
   };
 
-  cargoSha256 = "sha256-k303TjWG+n+/ZMmko84KJtYb7swuQ1ZJOc4Vq6aOhX0=";
+  cargoSha256 = "sha256-fAPMAVvcI3pm3zTLATO7SUdZpG469fjlBZshFhgv6gY=";
 
   # Issue to add Cargo.lock upstream: https://github.com/bazelbuild/sandboxfs/pull/115
   cargoPatches = [ ./Cargo.lock.patch ];
diff --git a/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix b/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
index 265495389b01..8661740d8074 100644
--- a/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
@@ -1,18 +1,20 @@
 { stdenv, lib, fetchurl, doxygen, graphviz, perl, pkg-config
-, lz4, lzo, xz, zlib, zstd
+, bzip2, lz4, lzo, xz, zlib, zstd
 }:
 
 stdenv.mkDerivation rec {
   pname = "squashfs-tools-ng";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchurl {
     url = "https://infraroot.at/pub/squashfs/squashfs-tools-ng-${version}.tar.xz";
-    sha256 = "1swsw5j8rrjxdxsfyd446f6g8f0k3mwg15baivi953i69c9981qi";
+    sha256 = "07c8vpzgwvqr9ycww1769ya40cf077c6igdg1b4akwszz2nw0bxq";
   };
 
   nativeBuildInputs = [ doxygen graphviz pkg-config perl ];
-  buildInputs = [ zlib xz lz4 lzo zstd ];
+  buildInputs = [ bzip2 zlib xz lz4 lzo zstd ];
+
+  enableParallelBuilding = true;
 
   meta = with lib; {
     homepage = "https://github.com/AgentD/squashfs-tools-ng";
@@ -30,6 +32,6 @@ stdenv.mkDerivation rec {
     # >   "_utimensat", referenced from:
     # >       _set_attribs in rdsquashfs-restore_fstree.o
     # > ld: symbol(s) not found for architecture x86_64
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
index e575bd3e1385..879199347bd1 100644
--- a/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -22,7 +22,7 @@ in if stdenv.isDarwin then
   }
 else
   mkSSHFS {
-    version = "3.7.1";
-    sha256 = "088mgcsqv9f2vly4xn6lvvkmqkgr9jjmjs9qp8938hl7j6rrgd17";
+    version = "3.7.2";
+    sha256 = "0i0ycgwdxja8313hlkrlwrl85a4ykkyqddgg484jkr4rnr7ylk8w";
     platforms = lib.platforms.linux;
   }
diff --git a/nixpkgs/pkgs/tools/filesystems/supertag/default.nix b/nixpkgs/pkgs/tools/filesystems/supertag/default.nix
index 3602f8e31f94..a9a16582c115 100644
--- a/nixpkgs/pkgs/tools/filesystems/supertag/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/supertag/default.nix
@@ -14,9 +14,9 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0jzm7pn38hlr96n0z8gqfsfdbw48y0nnbsgjdq7hpgwmcgvgqdam";
   };
 
-  cargoSha256 = "1mzmp1jcxgn2swp52r9y7k09fk0z67i1qafzkkzlfxxd10vfr70v";
+  cargoSha256 = "093vrpp4in8854hb0h1lxrp8v6i9vfja0l69dnnp7z15qkpbir4f";
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   nativeBuildInputs = [ clang pkg-config ];
   buildInputs = [ dbus fuse sqlite ];
diff --git a/nixpkgs/pkgs/tools/games/ajour/default.nix b/nixpkgs/pkgs/tools/games/ajour/default.nix
index 9cb79ceabe01..702ea28a6975 100644
--- a/nixpkgs/pkgs/tools/games/ajour/default.nix
+++ b/nixpkgs/pkgs/tools/games/ajour/default.nix
@@ -34,16 +34,16 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "Ajour";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "casperstorm";
     repo = "ajour";
     rev = version;
-    sha256 = "1xzsgxkdwdqcr8xs9ajr1ykfjjz95z9k7b7l644yijg31xf1lbq6";
+    sha256 = "0xmjr8brjmkk13dsn3yvcl5ss6b214hpka0idk072n46qsyhg2wh";
   };
 
-  cargoSha256 = "02g25wr0f2bjr7zmpll3iicc6i8wk1j9iavagg1vhbpynp6z013x";
+  cargoSha256 = "06d1h2c2abg56567znxh65d4ddpi6wvxip9rbzkmdnzgy3b3y2wl";
 
   nativeBuildInputs = [
     autoPatchelfHook
diff --git a/nixpkgs/pkgs/tools/games/amidst/default.nix b/nixpkgs/pkgs/tools/games/amidst/default.nix
new file mode 100644
index 000000000000..886ba3752a0b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/amidst/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, jre8 }: # TODO: Update this to the latest version of java upon the next release. This is currently not done because of https://github.com/toolbox4minecraft/amidst/issues/960
+
+stdenv.mkDerivation rec {
+  pname = "amidst";
+  version = "4.6";
+
+  src = fetchurl { # TODO: Compile from src
+    url = "https://github.com/toolbox4minecraft/amidst/releases/download/v${version}/amidst-v${lib.replaceStrings [ "." ] [ "-" ] version}.jar";
+    sha256 = "0nz6xfhshy36j8k81kqdfbbxih96l7f3s9156f9lmw0mi1qlyzqk";
+  };
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ jre8 makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib/amidst}
+    cp $src $out/lib/amidst/amidst.jar
+    makeWrapper ${jre8}/bin/java $out/bin/amidst \
+      --add-flags "-jar $out/lib/amidst/amidst.jar"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/toolbox4minecraft/amidst";
+    description = "Advanced Minecraft Interface and Data/Structure Tracking";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/games/gamemode/default.nix b/nixpkgs/pkgs/tools/games/gamemode/default.nix
new file mode 100644
index 000000000000..e9fdec592204
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/gamemode/default.nix
@@ -0,0 +1,104 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, libgamemode32
+, meson
+, ninja
+, pkg-config
+, dbus
+, inih
+, systemd
+, appstream
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gamemode";
+  version = "1.6.1";
+
+  src = fetchFromGitHub {
+    owner = "FeralInteractive";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-P00OnZiPZyxBu9zuG+3JNorXHBhJZy+cKPjX+duZrJ0=";
+  };
+
+  outputs = [ "out" "dev" "lib" "man" "static" ];
+
+  patches = [
+    # Run executables from PATH instead of /usr/bin
+    # See https://github.com/FeralInteractive/gamemode/pull/323
+    (fetchpatch {
+      url = "https://github.com/FeralInteractive/gamemode/commit/be44b7091baa33be6dda60392e4c06c2f398ee72.patch";
+      sha256 = "TlDUETs4+N3pvrVd0FQGlGmC+6ByhJ2E7gKXa7suBtE=";
+    })
+
+    # Fix loading shipped config when using a prefix other than /usr
+    # See https://github.com/FeralInteractive/gamemode/pull/324
+    (fetchpatch {
+      url = "https://github.com/FeralInteractive/gamemode/commit/b29aa903ce5acc9141cfd3960c98ccb047eca872.patch";
+      sha256 = "LwBzBJQ7dfm2mFVSOSPjJP+skgV5N6h77i66L1Sq+ZM=";
+    })
+
+    # Add @libraryPath@ template variable to fix loading the PRELOAD library
+    ./preload-nix-workaround.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace data/gamemoderun \
+      --subst-var-by libraryPath ${lib.makeLibraryPath ([
+        (placeholder "lib")
+      ] ++ lib.optionals (stdenv.hostPlatform.system == "x86_64-linux") [
+        # Support wrapping 32bit applications on a 64bit linux system
+        libgamemode32
+      ])}
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    dbus
+    inih
+    systemd
+  ];
+
+  mesonFlags = [
+    # libexec is just a way to package binaries without including them
+    # in PATH. It doesn't make sense to install them to $lib
+    # (the default behaviour in the meson hook).
+    "--libexecdir=${placeholder "out"}/libexec"
+
+    "-Dwith-systemd-user-unit-dir=lib/systemd/user"
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    appstream
+  ];
+
+  # Move static libraries to $static so $lib only contains dynamic libraries.
+  postInstall = ''
+    moveToOutput lib/*.a "$static"
+  '';
+
+  # Add $lib/lib to gamemoded & gamemode-simulate-game's rpath since
+  # they use dlopen to load libgamemode. Can't use makeWrapper since
+  # it would break the security wrapper in the NixOS module.
+  postFixup = ''
+    for bin in "$out/bin/gamemoded" "$out/bin/gamemode-simulate-game"; do
+      patchelf --set-rpath "$lib/lib:$(patchelf --print-rpath "$bin")" "$bin"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Optimise Linux system performance on demand";
+    homepage = "https://github.com/FeralInteractive/GameMode";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kira-bruneau ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch b/nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch
new file mode 100644
index 000000000000..06989ff984ab
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/gamemode/preload-nix-workaround.patch
@@ -0,0 +1,12 @@
+diff --git a/data/gamemoderun b/data/gamemoderun
+index 573b3e4..6f2799e 100755
+--- a/data/gamemoderun
++++ b/data/gamemoderun
+@@ -5,5 +5,6 @@ GAMEMODEAUTO_NAME="libgamemodeauto.so.0"
+ 
+ # ld will find the right path to load the library, including for 32-bit apps.
+ LD_PRELOAD="${GAMEMODEAUTO_NAME}${LD_PRELOAD:+:$LD_PRELOAD}"
++LD_LIBRARY_PATH="@libraryPath@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
+ 
+-exec env LD_PRELOAD="${LD_PRELOAD}" $GAMEMODERUNEXEC "$@"
++exec env LD_PRELOAD="${LD_PRELOAD}" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" $GAMEMODERUNEXEC "$@"
diff --git a/nixpkgs/pkgs/tools/graphics/agi/default.nix b/nixpkgs/pkgs/tools/graphics/agi/default.nix
index 5fb1881eff9a..57f9d7e33144 100644
--- a/nixpkgs/pkgs/tools/graphics/agi/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/agi/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "agi";
-  version = "1.1.0-dev-20210423";
+  version = "1.1.0-dev-20210521";
 
   src = fetchzip {
     url = "https://github.com/google/agi-dev-releases/releases/download/v${version}/agi-${version}-linux.zip";
-    sha256 = "sha256-49ZKqG+CiQkdoBMLdYrN5fMnJH5TtXdUknQLQB2UG04=";
+    sha256 = "sha256-otdthD5p+12JmBltFtXgVaa1fgsItluHv0S4k/GbB9Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix b/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix
index 859d6f1eee0d..8cf35b36c0c1 100644
--- a/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/astc-encoder/default.nix
@@ -31,13 +31,13 @@ with rec {
 
 gccStdenv.mkDerivation rec {
   pname = "astc-encoder";
-  version = "2.5";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "ARM-software";
     repo = "astc-encoder";
     rev = version;
-    sha256 = "0ff5jh40w942dz7hmgvznmpa9yhr1j4i9qqj5wy6icm2jb9j4pak";
+    sha256 = "sha256-+vYEO2zS144ZuVN8b4/EpvTcakC9U0uc/eV4pB7lHiY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/graphics/cfdg/default.nix b/nixpkgs/pkgs/tools/graphics/cfdg/default.nix
index 9295bbe28d56..44a1e0d1d2a1 100644
--- a/nixpkgs/pkgs/tools/graphics/cfdg/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/cfdg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libpng, bison, flex, ffmpeg_3, icu }:
+{ lib, stdenv, fetchFromGitHub, libpng, bison, flex, ffmpeg, icu }:
 
 stdenv.mkDerivation rec {
   pname = "cfdg";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "13m8npccacmgxbs4il45zw53dskjh53ngv2nxahwqw8shjrws4mh";
   };
 
-  buildInputs = [ libpng bison flex ffmpeg_3 icu ];
+  buildInputs = [ libpng bison flex ffmpeg icu ];
 
   postPatch = ''
     sed -e "/YY_NO_UNISTD/a#include <stdio.h>" -i src-common/cfdg.l
diff --git a/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix b/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix
index 4ab54593ed8d..f4cc746a24f3 100644
--- a/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/dmtx-utils/default.nix
@@ -5,6 +5,7 @@
 , pkg-config
 , libdmtx
 , imagemagick
+, Foundation
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +21,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
-  buildInputs = [ libdmtx imagemagick ];
+  buildInputs = [ libdmtx imagemagick ]
+    ++ lib.optional stdenv.isDarwin Foundation;
 
   meta = {
     description = "Data matrix command-line utilities";
diff --git a/nixpkgs/pkgs/tools/graphics/fbv/default.nix b/nixpkgs/pkgs/tools/graphics/fbv/default.nix
index 6f6e0aeca2cc..5b46d5d2268d 100644
--- a/nixpkgs/pkgs/tools/graphics/fbv/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/fbv/default.nix
@@ -1,14 +1,25 @@
-{ lib, stdenv, fetchurl, getopt, libjpeg, libpng12, libungif }:
+{ lib, stdenv, fetchurl, fetchpatch, getopt, libjpeg, libpng12, giflib }:
 
 stdenv.mkDerivation rec {
-  name = "fbv-1.0b";
+  pname = "fbv";
+  version = "1.0b";
 
   src = fetchurl {
-    url = "http://s-tech.elsat.net.pl/fbv/${name}.tar.gz";
+    url = "http://s-tech.elsat.net.pl/fbv/fbv-${version}.tar.gz";
     sha256 = "0g5b550vk11l639y8p5sx1v1i6ihgqk0x1hd0ri1bc2yzpdbjmcv";
   };
 
-  buildInputs = [ getopt libjpeg libpng12 libungif ];
+  patches = [
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/void-linux/void-packages/4a5bfe522ea5afd8203e804dc6a642d0871cd6dd/srcpkgs/fbv/patches/giflib-5.1.patch";
+      sha256 = "00q1zcn92yvvyij68bnq0m1sr3a411w914f4nyp6mpz0j5xc6dc7";
+    })
+  ];
+
+  patchFlags = [ "-p0" ];
+
+  buildInputs = [ getopt libjpeg libpng12 giflib ];
+  makeFlags = [ "LDFLAGS=-lgif" ];
 
   enableParallelBuilding = true;
 
@@ -19,7 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "View pictures on a linux framebuffer device";
     homepage = "http://s-tech.elsat.net.pl/fbv/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/feedgnuplot/default.nix b/nixpkgs/pkgs/tools/graphics/feedgnuplot/default.nix
index 02bb022dfb47..51d3e1e868da 100644
--- a/nixpkgs/pkgs/tools/graphics/feedgnuplot/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/feedgnuplot/default.nix
@@ -1,5 +1,6 @@
 { lib, fetchFromGitHub, makeWrapper, gawk
 , makeFontsConf, freefont_ttf, gnuplot, perl, perlPackages
+, stdenv, shortenPerlShebang
 }:
 
 let
@@ -10,18 +11,18 @@ in
 
 perlPackages.buildPerlPackage rec {
   pname = "feedgnuplot";
-  version = "1.51";
+  version = "1.58";
 
   src = fetchFromGitHub {
     owner = "dkogan";
     repo = "feedgnuplot";
     rev = "v${version}";
-    sha256 = "0npk2l032cnmibjj5zf3ii09mpxciqn32lx6g5bal91bkxwn7r5i";
+    sha256 = "1qix4lwwyhqibz0a6q2rrb497rmk00v1fvmdyinj0dqmgjw155zr";
   };
 
   outputs = [ "out" ];
 
-  nativeBuildInputs = [ makeWrapper gawk ];
+  nativeBuildInputs = [ makeWrapper gawk ] ++ lib.optional stdenv.isDarwin shortenPerlShebang;
 
   buildInputs = [ gnuplot perl ]
     ++ (with perlPackages; [ ListMoreUtils IPCRun StringShellQuote ]);
@@ -36,7 +37,9 @@ perlPackages.buildPerlPackage rec {
   # Tests require gnuplot 4.6.4 and are completely skipped with gnuplot 5.
   doCheck = false;
 
-  postInstall = ''
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/feedgnuplot
+  '' + ''
     wrapProgram $out/bin/feedgnuplot \
         --prefix "PATH" ":" "$PATH" \
         --prefix "PERL5LIB" ":" "$PERL5LIB"
diff --git a/nixpkgs/pkgs/tools/graphics/flam3/default.nix b/nixpkgs/pkgs/tools/graphics/flam3/default.nix
index 2015de607d25..bd959e3227e7 100644
--- a/nixpkgs/pkgs/tools/graphics/flam3/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/flam3/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Cosmic recursive fractal flames";
     homepage = "https://flam3.com/";
-    maintainers = [ maintainers.nand0p ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
   };
diff --git a/nixpkgs/pkgs/tools/graphics/gifski/default.nix b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
index 7449eedb3a7f..f79b15a9890a 100644
--- a/nixpkgs/pkgs/tools/graphics/gifski/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "1.4.0";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "sha256-Cm/w0bwDMu5REsQpkwMBgnROxpI+nMQwC16dY/VdOFU=";
+    sha256 = "034csv43vc0q2ycwjfskv1zx08c40ykf1m22fh9wvms0860k2ysn";
   };
 
-  cargoSha256 = "sha256-fy8apB1UbpBAnp8mFnL7rNj/GSSUkNz/trqsVrAfFfI=";
+  cargoSha256 = "0jgwf30gqwwpaf2g5zbsglcmsa00vixrnlizvcd41afi1wkjgiyd";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/glee/default.nix b/nixpkgs/pkgs/tools/graphics/glee/default.nix
index 136e805e7936..aeec2ffb4939 100644
--- a/nixpkgs/pkgs/tools/graphics/glee/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/glee/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GL Easy Extension Library";
     homepage = "https://sourceforge.net/p/glee/glee/";
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
     license = licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/tools/graphics/glmark2/default.nix b/nixpkgs/pkgs/tools/graphics/glmark2/default.nix
index 806b03061c74..642944812577 100644
--- a/nixpkgs/pkgs/tools/graphics/glmark2/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/glmark2/default.nix
@@ -1,23 +1,55 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, libjpeg, libpng, xorg, libX11, libGL, libdrm,
-  python27, wayland, udev, mesa, wafHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, makeWrapper
+, libjpeg
+, libpng
+, xorg
+, libX11
+, libGL
+, libdrm
+, udev
+, python3
+, wayland
+, wayland-protocols
+, mesa
+, wafHook
+}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "glmark2";
-  version = "2017-09-01";
+  version = "2021.02";
 
   src = fetchFromGitHub {
     owner = "glmark2";
     repo = "glmark2";
-    rev = "7265e8e6c77c4f60302507eca0e18560b1117a86";
-    sha256 = "076l75rfl6pnp1wgiwlaihy1vg2advg1z8bi0x84kk259kldgvwn";
+    rev = version;
+    sha256 = "1a75gg1dn03d3jq7n74wsw7kc14ildbb8azzbj4k28xik1m6khr9";
   };
 
-  nativeBuildInputs = [ pkg-config wafHook ];
+  nativeBuildInputs = [ pkg-config wafHook makeWrapper ];
   buildInputs = [
-    libjpeg libpng xorg.libxcb libX11 libGL libdrm python27 wayland udev mesa
+    libjpeg
+    libpng
+    xorg.libxcb
+    libX11
+    libdrm
+    python3
+    udev
+    wayland
+    wayland-protocols
+    mesa
   ];
 
-  wafConfigureFlags = ["--with-flavors=x11-gl,x11-glesv2,drm-gl,drm-glesv2,wayland-gl,wayland-glesv2"];
+  wafConfigureFlags = [ "--with-flavors=x11-gl,x11-glesv2,drm-gl,drm-glesv2,wayland-gl,wayland-glesv2" ];
+
+  postInstall = ''
+    for binary in $out/bin/glmark2*; do
+      wrapProgram $binary \
+        --set LD_LIBRARY_PATH ${libGL}/lib
+    done
+  '';
 
   meta = with lib; {
     description = "OpenGL (ES) 2.0 benchmark";
diff --git a/nixpkgs/pkgs/tools/graphics/gmic/default.nix b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
index b50716188e95..37b398ef1c62 100644
--- a/nixpkgs/pkgs/tools/graphics/gmic/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gmic";
-  version = "2.9.6";
+  version = "2.9.7";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "sha256-0i/oUVrxbc0FDQmgvHEn7Cn0eVznMqDGw+r4OTVrwRo=";
+    sha256 = "sha256-lCU3SH6nIhQSMFeds81DMTaEKcDjPLOP7hsXqulVfxY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix b/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
index 6291dc9d6423..84d179374ae8 100644
--- a/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/ldgallery/default.nix
@@ -1,10 +1,10 @@
-{ lib, pkgs, makeWrapper, haskellPackages, haskell, pandoc, imagemagick }:
+{ lib, pkgs, makeWrapper, haskellPackages, haskell, pandoc, imagemagick, CoreServices }:
 
 with lib;
 with haskell.lib;
 
 let
-  ldgallery-viewer = pkgs.callPackage ./viewer { };
+  ldgallery-viewer = pkgs.callPackage ./viewer { inherit CoreServices; };
   inherit (haskellPackages) ldgallery-compiler;
 
 in
diff --git a/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/default.nix b/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/default.nix
index 9559120069f7..f4cebde86070 100644
--- a/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/ldgallery/viewer/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pkgs, nodejs-12_x, pandoc }:
+{ lib, stdenv, fetchFromGitHub, pkgs, nodejs-12_x, pandoc, CoreServices }:
 
 with lib;
 
@@ -24,6 +24,7 @@ let
   nodePkg = nodePackages.package.override {
     src = "${sourcePkg}/viewer";
     postInstall = "npm run build";
+    buildInputs = optionals stdenv.isDarwin [ CoreServices ];
   };
 
 in
diff --git a/nixpkgs/pkgs/tools/graphics/mangohud/default.nix b/nixpkgs/pkgs/tools/graphics/mangohud/default.nix
new file mode 100644
index 000000000000..91022eff31db
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/mangohud/default.nix
@@ -0,0 +1,125 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, substituteAll
+, coreutils
+, curl
+, gawk
+, glxinfo
+, gnugrep
+, gnused
+, pciutils
+, xdg-utils
+, dbus
+, hwdata
+, libX11
+, mangohud32
+, vulkan-headers
+, glslang
+, makeWrapper
+, meson
+, ninja
+, pkg-config
+, python3Packages
+, vulkan-loader
+, libXNVCtrl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mangohud";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "flightlessmango";
+    repo = "MangoHud";
+    rev = "v${version}";
+    sha256 = "1bzfp37qrx9kk5zaq7sfisgkyccwnxd7i3b1l0blfcy2lrxgx0n6";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # Adds option to specify Vulkan's datadir when it's not the same as MangoHud's
+    # See https://github.com/flightlessmango/MangoHud/pull/522
+    (fetchpatch {
+      url = "https://github.com/flightlessmango/MangoHud/commit/56682985d8cec711af7ad0841888a44099249b1b.patch";
+      sha256 = "0l5vb374lfgfh54jiy4097bzsccpv4zsl1fdhn55sxggklymcad8";
+    })
+
+    # Hard code dependencies. Can't use makeWrapper since the Vulkan
+    # layer can be used without the mangohud executable by setting MANGOHUD=1.
+    (substituteAll {
+      src = ./hardcode-dependencies.patch;
+
+      path = lib.makeBinPath [
+        coreutils
+        curl
+        gawk
+        glxinfo
+        gnugrep
+        gnused
+        pciutils
+        xdg-utils
+      ];
+
+      libdbus = dbus.lib;
+      inherit hwdata libX11;
+    })
+  ] ++ lib.optional (stdenv.hostPlatform.system == "x86_64-linux") [
+    # Support 32bit OpenGL applications by appending the mangohud32
+    # lib path to LD_LIBRARY_PATH.
+    #
+    # This workaround is necessary since on Nix's build of ld.so, $LIB
+    # always expands to lib even when running an 32bit application.
+    #
+    # See https://github.com/NixOS/nixpkgs/issues/101597.
+    (substituteAll {
+      src = ./opengl32-nix-workaround.patch;
+      inherit mangohud32;
+    })
+  ];
+
+  mesonFlags = [
+    "-Duse_system_vulkan=enabled"
+    "-Dvulkan_datadir=${vulkan-headers}/share"
+  ];
+
+  nativeBuildInputs = [
+    glslang
+    makeWrapper
+    meson
+    ninja
+    pkg-config
+    python3Packages.Mako
+    python3Packages.python
+    vulkan-loader
+  ];
+
+  buildInputs = [
+    dbus
+    libX11
+    libXNVCtrl
+  ];
+
+  # Support 32bit Vulkan applications by linking in 32bit Vulkan layer
+  # This is needed for the same reason the 32bit OpenGL workaround is needed.
+  postInstall = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") ''
+    ln -s ${mangohud32}/share/vulkan/implicit_layer.d/MangoHud.json \
+      "$out/share/vulkan/implicit_layer.d/MangoHud.x86.json"
+  '';
+
+  # Support overlaying Vulkan applications without requiring mangohud to be installed
+  postFixup = ''
+    wrapProgram "$out/bin/mangohud" \
+      --prefix VK_LAYER_PATH : "$out/share/vulkan/implicit_layer.d" \
+      --prefix VK_INSTANCE_LAYERS : VK_LAYER_MANGOHUD_overlay
+  '';
+
+  meta = with lib; {
+    description = "A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more";
+    homepage = "https://github.com/flightlessmango/MangoHud";
+    platforms = platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kira-bruneau zeratax ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch b/nixpkgs/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
new file mode 100644
index 000000000000..bdebcdca9821
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
@@ -0,0 +1,57 @@
+diff --git a/src/dbus.cpp b/src/dbus.cpp
+index 0acccc3..7dd7c49 100644
+--- a/src/dbus.cpp
++++ b/src/dbus.cpp
+@@ -157,7 +157,7 @@ bool dbus_manager::init(const std::string& requested_player) {
+         m_requested_player = "org.mpris.MediaPlayer2." + requested_player;
+     }
+ 
+-    if (!m_dbus_ldr.IsLoaded() && !m_dbus_ldr.Load("libdbus-1.so.3")) {
++    if (!m_dbus_ldr.IsLoaded() && !m_dbus_ldr.Load("@libdbus@/lib/libdbus-1.so.3")) {
+         std::cerr << "MANGOHUD: Could not load libdbus-1.so.3\n";
+         return false;
+     }
+diff --git a/src/loaders/loader_x11.cpp b/src/loaders/loader_x11.cpp
+index 25c65bf..87488d5 100644
+--- a/src/loaders/loader_x11.cpp
++++ b/src/loaders/loader_x11.cpp
+@@ -88,4 +88,4 @@ void libx11_loader::CleanUp(bool unload) {
+ 
+ }
+ 
+-std::shared_ptr<libx11_loader> g_x11(new libx11_loader("libX11.so.6"));
++std::shared_ptr<libx11_loader> g_x11(new libx11_loader("@libX11@/lib/libX11.so.6"));
+diff --git a/src/logging.cpp b/src/logging.cpp
+index f2c4271..d33e793 100644
+--- a/src/logging.cpp
++++ b/src/logging.cpp
+@@ -17,7 +17,10 @@ string exec(string command) {
+    string result = "";
+ 
+    // Open pipe to file
++   char* originalPath = getenv("PATH");
++   setenv("PATH", "@path@", 1);
+    FILE* pipe = popen(command.c_str(), "r");
++   setenv("PATH", originalPath, 1);
+    if (!pipe) {
+       return "popen failed!";
+    }
+diff --git a/src/pci_ids.cpp b/src/pci_ids.cpp
+index 4e2a6d2..9490869 100644
+--- a/src/pci_ids.cpp
++++ b/src/pci_ids.cpp
+@@ -22,12 +22,9 @@ std::istream& get_uncommented_line(std::istream& is, std::string &line)
+ 
+ void parse_pciids()
+ {
+-    std::ifstream file("/usr/share/hwdata/pci.ids");
++    std::ifstream file("@hwdata@/share/hwdata/pci.ids");
+     if(file.fail()){
+-        std::ifstream file("/usr/share/misc/pci.ids");
+-        if (file.fail())
+-            printf("MANGOHUD: can't find file pci.ids\n");
+-        
++        printf("MANGOHUD: can't find file pci.ids\n");
+     }
+ 
+     std::string line;
diff --git a/nixpkgs/pkgs/tools/graphics/mangohud/opengl32-nix-workaround.patch b/nixpkgs/pkgs/tools/graphics/mangohud/opengl32-nix-workaround.patch
new file mode 100644
index 000000000000..3c0f6908617f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/mangohud/opengl32-nix-workaround.patch
@@ -0,0 +1,12 @@
+diff --git a/bin/mangohud.in b/bin/mangohud.in
+index eadce2d..e7b1aa4 100755
+--- a/bin/mangohud.in
++++ b/bin/mangohud.in
+@@ -23,6 +23,6 @@ fi
+ # figure out whether the 32 or 64 bit version should be used, and will search
+ # for it in the correct directory
+ LD_PRELOAD="${LD_PRELOAD}:${MANGOHUD_LIB_NAME}"
+-LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@ld_libdir_mangohud@"
++LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:@ld_libdir_mangohud@:@mangohud32@/lib/mangohud"
+ 
+ exec env MANGOHUD=1 LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" LD_PRELOAD="${LD_PRELOAD}" "$@"
diff --git a/nixpkgs/pkgs/tools/graphics/oxipng/default.nix b/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
index 6f91ee26007c..edffad57963e 100644
--- a/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
@@ -9,7 +9,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-lvVgoAZMIqmbS6yMul9Hf9PtneEVy+jDs3kU1jSBL2w=";
   };
 
-  cargoSha256 = "sha256-v0A8/b/OPAtnaNlMX7QNXTGGH6kg67WBo/2ChOPDZdQ=";
+  cargoSha256 = "sha256-sxvOFxSZCANBa/448SpjoLqk/HjqtaFrOhjrQro446Q=";
 
   doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
 
diff --git a/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix b/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix
index 2227ff402994..454352986edf 100644
--- a/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/perceptualdiff/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A program that compares two images using a perceptually based image metric";
     homepage = "https://github.com/myint/perceptualdiff";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ uri-canva ];
     platforms = platforms.x86;
   };
diff --git a/nixpkgs/pkgs/tools/graphics/pikchr/default.nix b/nixpkgs/pkgs/tools/graphics/pikchr/default.nix
index 9b06d0629138..432c70231d0d 100644
--- a/nixpkgs/pkgs/tools/graphics/pikchr/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pikchr/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation {
     substituteInPlace Makefile --replace open "test -f"
   '';
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
   installPhase = ''
     install -Dm755 pikchr $out/bin/pikchr
     install -Dm755 pikchr.out $out/lib/pikchr.o
diff --git a/nixpkgs/pkgs/tools/graphics/pngquant/default.nix b/nixpkgs/pkgs/tools/graphics/pngquant/default.nix
index b3b1773faf15..7463e2a45e03 100644
--- a/nixpkgs/pkgs/tools/graphics/pngquant/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pngquant/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pngquant";
-  version = "2.12.5";
+  version = "2.14.1";
 
   src = fetchFromGitHub {
-    owner = "pornel";
+    owner = "kornelski";
     repo = "pngquant";
     rev = version;
-    sha256 = "0sq398iv5cacblz6pb4j2hn16cnszsbkahikdpfq84rb9bj0ya40";
+    sha256 = "054hi33qp3jc7hv0141wi8drwdg24v5zfp8znwjmz4mcdls8vxbb";
     fetchSubmodules = true;
   };
 
@@ -17,11 +17,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libpng zlib lcms2 ];
 
+  doCheck = true;
+
   meta = with lib; {
     homepage = "https://pngquant.org/";
     description = "A tool to convert 24/32-bit RGBA PNGs to 8-bit palette with alpha channel preserved";
+    changelog = "https://github.com/kornelski/pngquant/raw/${version}/CHANGELOG";
     platforms = platforms.unix;
-    license = licenses.gpl3;
+    license = with licenses; [ gpl3Plus hpnd bsd2 ];
     maintainers = [ maintainers.volth ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/quirc/default.nix b/nixpkgs/pkgs/tools/graphics/quirc/default.nix
index 8ca8ecf2c893..dec2a1020c89 100644
--- a/nixpkgs/pkgs/tools/graphics/quirc/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/quirc/default.nix
@@ -1,36 +1,40 @@
-{lib, stdenv, fetchgit, SDL_gfx, SDL, libjpeg, libpng, pkg-config}:
-let
-  s =
-  rec {
-    date = "2016-08-16";
-    version = "git-${date}";
-    baseName = "quirc";
-    name = "${baseName}-${version}";
-    url = "https://github.com/dlbeer/quirc";
-    rev = "5b262480091d5f84a67a4a56c728fc8b39844339";
-    sha256 = "1w5qvjafn14s6jjs7kiwsqirlsqbgv0p152hrsq463pm34hp0lzy";
-  };
-in
+{ lib, stdenv, fetchFromGitHub
+, SDL_gfx, SDL, libjpeg, libpng, pkg-config
+}:
+
 stdenv.mkDerivation {
-  inherit (s) name version;
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    SDL SDL_gfx libjpeg libpng
-  ];
-  src = fetchgit {
-    inherit (s) url sha256 rev;
+  pname = "quirc";
+  version = "2020-04-16";
+
+  src = fetchFromGitHub {
+    owner = "dlbeer";
+    repo = "quirc";
+    rev = "ed455904f35270888bc902b9e8c0c9b3184a8302";
+    sha256 = "1kqqvcnxcaxdgls9sibw5pqjz3g1gys2v64i4kfqp8wfcgd9771q";
   };
-  NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ SDL SDL_gfx libjpeg libpng ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+  NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL";
+
   configurePhase = ''
+    runHook preConfigure
+
+    # don't try to change ownership
     sed -e 's/-[og] root//g' -i Makefile
+
+    runHook postConfigure
   '';
   preInstall = ''
     mkdir -p "$out"/{bin,lib,include}
-    find . -maxdepth 1 -type f -perm -0100 -exec cp '{}' "$out"/bin ';'
+
+    # install all binaries
+    find -maxdepth 1 -type f -executable ! -name '*.so.*' | xargs cp -t "$out"/bin
   '';
-  makeFlags = [ "PREFIX=$(out)" ];
+
   meta = {
-    inherit (s) version;
     description = "A small QR code decoding library";
     license = lib.licenses.isc;
     maintainers = [lib.maintainers.raskin];
diff --git a/nixpkgs/pkgs/tools/graphics/resvg/default.nix b/nixpkgs/pkgs/tools/graphics/resvg/default.nix
index e0968dd6271e..a770d208b49e 100644
--- a/nixpkgs/pkgs/tools/graphics/resvg/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/resvg/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-fd97w6yd9ZX2k8Vq+Vh6jouufGdFE02ZV8mb+BtA3tk=";
   };
 
-  cargoSha256 = "sha256-LlEYfjUINQW/YrhNp/Z+fdLQPcvrTjNFtDAk1gyAuj0=";
+  cargoSha256 = "sha256-uP+YAJYZtMCUnLZWcwnoAw8E5cJeFxXx0qd2Li4byQM=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/shotgun/default.nix b/nixpkgs/pkgs/tools/graphics/shotgun/default.nix
index 79ddd39ea792..d875b4d313d2 100644
--- a/nixpkgs/pkgs/tools/graphics/shotgun/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/shotgun/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0fpc09yvxjcvjkai7afyig4gyc7inaqxxrwzs17mh8wdgzawb6dl";
   };
 
-  cargoSha256 = "0sbhij8qh9n05nzhp47dm46hbc59awar515f9nhd3wvahwz53zam";
+  cargoSha256 = "06zplpy480965lhgav984m6wkfijv7cqa49kpramp8b6ws62pikl";
 
   meta = with lib; {
     description = "Minimal X screenshot utility";
diff --git a/nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix b/nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix
new file mode 100644
index 000000000000..02a96184812e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+, icoutils
+, mono
+, jre
+, androidenv
+, gtk-sharp-2_0
+, gtk2
+, libcxx
+, libcxxabi
+, coreutils
+, requireFile
+, archive ? requireFile {
+    name = "snapdragonprofiler_external_linux.tar.gz";
+    message = ''
+      This nix expression requires that "snapdragonprofiler_external_linux.tar.gz" is
+      already part of the store. To get this archive, you need to download it from:
+        https://developer.qualcomm.com/software/snapdragon-profiler
+      and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+    '';
+    sha256 = "c6731c417ca39fa9b0f190bd80c99b1603cf97d23becab9e47db6beafd6206b7";
+  }
+}:
+
+stdenv.mkDerivation rec {
+  pname = "snapdragon-profiler";
+  version = "v2021.2";
+
+  src = archive;
+
+  nativeBuildInputs = [
+    makeWrapper
+    icoutils
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    mono
+    gtk-sharp-2_0
+    gtk2
+    libcxx
+    libcxxabi
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,lib/snapdragon-profiler}
+    mkdir -p $out/share/icons/hicolor/{16x16,32x32,48x48}/apps
+
+    mv *.so $out/lib
+    cp -r * $out/lib/snapdragon-profiler
+    makeWrapper "${mono}/bin/mono" $out/bin/snapdragon-profiler \
+      --add-flags "$out/lib/snapdragon-profiler/SnapdragonProfiler.exe" \
+      --suffix PATH : ${lib.makeBinPath [ jre androidenv.androidPkgs_9_0.platform-tools coreutils ]} \
+      --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
+      --suffix LD_LIBRARY_PATH : $(echo $NIX_LDFLAGS | sed 's/ -L/:/g;s/ -rpath /:/g;s/-rpath //') \
+      --run "cd $out/lib/snapdragon-profiler" # Fixes themes not loading correctly
+
+    wrestool -x -t 14 SnapdragonProfiler.exe > snapdragon-profiler.ico
+    icotool -x -i 1 -o $out/share/icons/hicolor/16x16/apps/snapdragon-profiler.png snapdragon-profiler.ico
+    icotool -x -i 2 -o $out/share/icons/hicolor/32x32/apps/snapdragon-profiler.png snapdragon-profiler.ico
+    icotool -x -i 3 -o $out/share/icons/hicolor/48x48/apps/snapdragon-profiler.png snapdragon-profiler.ico
+
+    runHook postInstall
+  '';
+
+  desktopItems = [(makeDesktopItem {
+    name = pname;
+    desktopName = "Snapdragon Profiler";
+    exec = "$out/bin/snapdragon-profiler";
+    icon = "snapdragon-profiler";
+    type = "Application";
+    comment = meta.description;
+    categories = "Development;Debugger;Graphics;3DGraphics";
+    terminal = "false";
+  })];
+
+  dontStrip = true; # Always needed on Mono
+  dontPatchELF = true; # Certain libraries are to be deployed to the remote device, they should not be patched
+
+  meta = with lib; {
+    homepage = "https://developer.qualcomm.com/software/snapdragon-profiler";
+    description = "An profiler for Android devices running Snapdragon chips";
+    license = licenses.unfree;
+    maintainers = [ maintainers.ivar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/svgbob/default.nix b/nixpkgs/pkgs/tools/graphics/svgbob/default.nix
index a88506099448..b9784a85b2da 100644
--- a/nixpkgs/pkgs/tools/graphics/svgbob/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/svgbob/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
       --replace '#![deny(warnings)]' ""
   '';
 
-  cargoSha256 = "1y9jsnxmz51zychmmzp6mi29pb5ks2qww7lk5bshkhp56v51sm8d";
+  cargoSha256 = "1jyycr95gjginx6bzmay9b5dbpnbwdqbv13w1qy58znicsmh3v8a";
 
   # Test tries to build outdated examples
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix b/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
index 6c5e8569e853..4224bde72345 100644
--- a/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1jpnqsln37kkxz98vj7gly3c2170v6zamd876nc9nfl9vns41s0f";
   };
 
-  cargoSha256 = "1xhwlsq9b6cnafbapm5jf48zqdx5k2vxlr701lh5f8nqvd7nxi6g";
+  cargoSha256 = "172kdnd11xb2qkklqdkdcwi3g55k0d67p8g8qj7iq34bsnfb5bnr";
 
   meta = with lib; {
     description = "A tool for tidying and optimizing SVGs";
diff --git a/nixpkgs/pkgs/tools/graphics/timg/default.nix b/nixpkgs/pkgs/tools/graphics/timg/default.nix
index 5acbaa7ffd20..7c2d004144dc 100644
--- a/nixpkgs/pkgs/tools/graphics/timg/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/timg/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "timg";
-  version = "1.4.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "hzeller";
     repo = "timg";
     rev = "v${version}";
-    sha256 = "10qhjfkbazncmj07y0a6cpmi7ki0l10qzpvi2zh8369yycqqxr8y";
+    sha256 = "1zjcaxnik8imkn22g5kz6zly3yxpknrzd093sfxpgqnfw4sq8149";
   };
 
   buildInputs = [ graphicsmagick ffmpeg libexif libjpeg zlib ];
diff --git a/nixpkgs/pkgs/tools/graphics/twilight/default.nix b/nixpkgs/pkgs/tools/graphics/twilight/default.nix
index 2716c5e7c650..7c43063fb810 100644
--- a/nixpkgs/pkgs/tools/graphics/twilight/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/twilight/default.nix
@@ -25,6 +25,6 @@ in stdenv.mkDerivation rec {
     homepage = src.meta.homepage;
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/vips/default.nix b/nixpkgs/pkgs/tools/graphics/vips/default.nix
index 9319fa9b610e..18025f92e31c 100644
--- a/nixpkgs/pkgs/tools/graphics/vips/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vips/default.nix
@@ -15,6 +15,7 @@
 , libheif
 , librsvg
 , ApplicationServices
+, Foundation
 , python27
 , libpng
 , fetchFromGitHub
@@ -68,7 +69,7 @@ stdenv.mkDerivation rec {
     python27
     libpng
     expat
-  ] ++ lib.optional stdenv.isDarwin ApplicationServices;
+  ] ++ lib.optionals stdenv.isDarwin [ApplicationServices Foundation];
 
   # Required by .pc file
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/viu/default.nix b/nixpkgs/pkgs/tools/graphics/viu/default.nix
index 39aa8fe06e05..8a02e0fefede 100644
--- a/nixpkgs/pkgs/tools/graphics/viu/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/viu/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   # tests need an interactive terminal
   doCheck = false;
 
-  cargoSha256 = "0bdjfcyx2cwz68gcx0393h4ysccarfp02pvvp0a5xgkq11bad0r0";
+  cargoSha256 = "0s6i42n4jivzj4ad62r7nc6ailydy686ivszcd6cj5f4dinsbgq3";
 
   meta = with lib; {
     description = "A command-line application to view images from the terminal written in Rust";
diff --git a/nixpkgs/pkgs/tools/graphics/vkBasalt/default.nix b/nixpkgs/pkgs/tools/graphics/vkBasalt/default.nix
index 50cbe0481311..3695c7ec2c0d 100644
--- a/nixpkgs/pkgs/tools/graphics/vkBasalt/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vkBasalt/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     description = "A Vulkan post processing layer for Linux";
     homepage = "https://github.com/DadSchoorse/vkBasalt";
     license = licenses.zlib;
-    maintainers = with maintainers; [ metadark ];
+    maintainers = with maintainers; [ kira-bruneau ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/xcolor/default.nix b/nixpkgs/pkgs/tools/graphics/xcolor/default.nix
new file mode 100644
index 000000000000..f19a80357f35
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/xcolor/default.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, libX11, libXcursor, libxcb, python3 }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "xcolor";
+  version = "unstable-2021-02-02";
+
+  src = fetchFromGitHub {
+    owner = "Soft";
+    repo = pname;
+    rev = "0e99e67cd37000bf563aa1e89faae796ec25f163";
+    sha256 = "sha256-rHqK05dN5lrvDNbRCWGghI7KJwWzNCuRDEThEeMzmio=";
+  };
+
+  cargoSha256 = "sha256-lHOT/P1Sh1b53EkPIQM3l9Tozdqh60qlUDdjthj32jM=";
+
+  nativeBuildInputs = [ pkg-config python3 ];
+
+  buildInputs = [ libX11 libXcursor libxcb ];
+
+  meta = with lib; {
+    description = "Lightweight color picker for X11";
+    homepage = "https://github.com/Soft/xcolor";
+    maintainers = with lib.maintainers; [ fortuneteller2k ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix b/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
index 456a57a13516..b8e91a741978 100644
--- a/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1xm8297k0d8d0aq7fxgmibr4qva4d02cb6gnnlzq77jcmnknxv14";
   };
 
-  cargoSha256 = "1dcyhxfyq0nrjl05g1s9pjkg7vqw63wbdhlskrdcvxncmci3s7rp";
+  cargoSha256 = "1z0xxbjnhhzn1fnc3zhvy727l88qyyfqdayj5yvf3nh23m7sr87l";
 
   meta = with lib; {
     homepage = "https://github.com/myfreeweb/${pname}";
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix
index 3fe5a59175f2..74553dcebbbb 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-anthy/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx-anthy";
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchurl {
     url = "http://download.fcitx-im.org/fcitx-anthy/${pname}-${version}.tar.xz";
-    sha256 = "01jx7wwq0mifqrzkswfglqhwkszbfcl4jinxgdgqx9kc6mb4k6zd";
+    sha256 = "sha256-Hxhs2RXuFf/bhczcQ3+Zj+gI3+Z4BEfIzMIfUOUNX7M=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix
index 6e0c48d0610c..3d34dcbac175 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx/fcitx-configtool.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, cmake, fcitx, gtk3, isocodes, gnome3 }:
+{ lib, stdenv, fetchurl, makeWrapper, pkg-config, cmake, fcitx, gtk3, isocodes, gnome }:
 
 stdenv.mkDerivation rec {
   name = "fcitx-configtool-0.4.10";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
-  buildInputs = [ fcitx isocodes gtk3 gnome3.adwaita-icon-theme ];
+  buildInputs = [ fcitx isocodes gtk3 gnome.adwaita-icon-theme ];
 
   # Patch paths to `fcitx-remote`
   prePatch = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix
index e578fbf14432..ee801fdb24a1 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/default.nix
@@ -41,13 +41,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "fcitx5";
-  version = "5.0.4";
+  version = "5.0.8";
 
   src = fetchFromGitHub {
     owner = "fcitx";
-    repo = "fcitx5";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-2KGdR1m70Qatidzf/DZuFK3lc1t8z7sxjyhaxuc0Tqg=";
+    sha256 = "0czj2awvgk9apdh9rj3vcb04g8x2wp1d4sshvch31nwpqs10hssr";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
index 6d3952c9c225..3a4a38c6b708 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
@@ -31,13 +31,13 @@ in
 
 mkDerivation rec {
   pname = "fcitx5-chinese-addons";
-  version = "5.0.3";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-chinese-addons";
     rev = version;
-    sha256 = "sha256-kCihpRUtUXrqqf7FPQp8ZRexiygOuDVOdQwVx7tSn+c=";
+    sha256 = "sha256-+DhXFqUxECGZYHAmEw5cZJQnRHHgvT0nVVqY9DXgWBU=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
index b133d576c6cc..584a1b932f48 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
@@ -19,13 +19,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-configtool";
-  version = "5.0.2";
+  version = "5.0.5";
 
   src = fetchFromGitHub {
     owner = "fcitx";
-    repo = "fcitx5-configtool";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-kw0KIbS5SVMf6kR/9xsYiChHXQBM0enSVXyh0QfiiPY=";
+    sha256 = "0w6cgg57ldk02j3fs7mm8pn5inblcjyr20d3xl5qbyawwccjsn2m";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
index 1b76cec554d8..7b27184cde32 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
@@ -4,9 +4,11 @@
 , extra-cmake-modules
 , fcitx5
 , gobject-introspection
+, glib
 , gtk2
 , gtk3
 , gtk4
+, fmt
 , pcre
 , libuuid
 , libselinux
@@ -24,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-gtk";
-  version = "5.0.3";
+  version = "5.0.7";
 
   src = fetchFromGitHub {
     owner = "fcitx";
-    repo = "fcitx5-gtk";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-+BzXbZyzC3fvLqysufblk0zK9fAg5jslVdm/v3jz4B4=";
+    sha256 = "0vcikqrxv1xxcdaiz3axgm7rpab4w8aciw838sbpa9l20dp8cnyq";
   };
 
   cmakeFlags = [
@@ -39,8 +41,10 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional (! withGTK2) "-DENABLE_GTK2_IM_MODULE=off";
 
   buildInputs = [
+    glib
     gtk3
     gtk4
+    fmt
     gobject-introspection
     fcitx5
     pcre
@@ -57,6 +61,11 @@ stdenv.mkDerivation rec {
     libXtst
   ] ++ lib.optional withGTK2 gtk2;
 
+  NIX_CFLAGS_COMPILE = lib.concatMapStringsSep " " (s: "-isystem ${s}") [
+    "${glib.dev}/include/gio-unix-2.0"
+    "${glib.dev}/include/glib-2.0"
+  ];
+
   nativeBuildInputs = [
     cmake
     extra-cmake-modules
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
index f4df324fa058..879e6ffa78fa 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-lua";
-  version = "5.0.4";
+  version = "5.0.5";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-lua";
     rev = version;
-    sha256 = "sha256-1gKfFq+x/tCOYqESO49Qddp5z6zXO7ULjTJgDEl8BqI=";
+    sha256 = "0x7b78rz9mdyhm3y8yi7kihah7fgqzjyfgqwjyfx3i90wxflnmmc";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
index 9e367d70799a..9a90ab3ca7d7 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-m17n";
-  version = "5.0.4";
+  version = "5.0.5";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-yI6Svr1KEdHqAX3qd7t7GvD0EcWg0A2vZpuJw1U9oKQ=";
+    sha256 = "sha256-duL9FgXPCr4/rMuguw8cf3EIdK6MW/alUNeh1yduY68=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
index b24dac6886d9..40465d55e400 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-qt";
-  version = "5.0.4";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-qt";
     rev = version;
-    sha256 = "sha256-PZbnxt30Tv7i+Q6G9UpGgWDs65rn0MZVe1ybhz4vN9I=";
+    sha256 = "sha256-Y7X4pkBSf5FMpf1mdyLvr1QWhqz3yC4iOGXDvvvV9Yw=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
index f8601a64e2ac..cd362e94ef57 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, fetchurl
 , fetchFromGitHub
 , pkg-config
 , cmake
@@ -12,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-rime";
-  version = "5.0.4";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
-    repo = "fcitx5-rime";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-WB+bWvJxL2yywictNN8Zy0OYxiCRErQGL2dGH4zQPp8=";
+    sha256 = "1r36c1pl63vka9mxa8f5x0kijapjgxzz5b4db8h87ri9kcxk7i2g";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
index 355ac97d8a15..570893c2ade4 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-extra";
-  version = "5.0.2";
+  version = "5.0.4";
 
   src = fetchFromGitHub {
     owner = "fcitx";
-    repo = "fcitx5-table-extra";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-Bqxdi/rjiTKqHLvVFVcQMjz/I0xxTiBgUIRkZjLuK+M=";
+    sha256 = "1rhm9jyqxlsgjsn3f5n9jwm5qjcgg87widp0bv1xa9cc23mydrqv";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
index 5e42016ec7c4..00e13bc756fa 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-other";
-  version = "5.0.3";
+  version = "5.0.5";
 
   src = fetchFromGitHub {
     owner = "fcitx";
-    repo = "fcitx5-table-other";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-jJTFAOrBeRBoUn0mqqkX0z1zQnDOh7otMHDPmjuZbWw=";
+    sha256 = "0z34y05sbb2qavpa6banv7xvlsmpymmm828265r8bf7r995wx8lz";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/update.py b/nixpkgs/pkgs/tools/inputmethods/fcitx5/update.py
index e3513c747fcd..9f54e313fd34 100755
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/update.py
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i python3 -p nix-prefetch-github python3Packages.requests
+#!nix-shell -i python3 -p nix-update nix-prefetch-github python3Packages.requests
 
 from nix_prefetch_github import *
 import json
@@ -12,8 +12,7 @@ REPOS = [ "libime", "xcb-imdkit", "fcitx5", "fcitx5-gtk", "fcitx5-qt", "fcitx5-c
 OWNER = "fcitx"
 
 def get_latest_tag(repo, owner=OWNER):
-    r = requests.get( 'https://api.github.com/repos/{}/{}/tags'.format(owner,repo)
-                    , auth=('poscat', 'db5e6fd16d0eb8c36385d3d944e058a1178b4265'))
+    r = requests.get('https://api.github.com/repos/{}/{}/tags'.format(owner,repo))
     return r.json()[0].get("name")
 
 def main():
diff --git a/nixpkgs/pkgs/tools/inputmethods/hime/default.nix b/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
index 988f8941d14b..4c86fb04cf04 100644
--- a/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
@@ -1,27 +1,40 @@
-{
-stdenv, fetchFromGitHub, pkg-config, which, gtk2, gtk3, qt4, qt5, libXtst, lib,
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, which
+, gtk2
+, gtk3
+, qt4
+, qt5
+, libXtst
+, lib
+, libchewing
+, unixtools
+, anthy
 }:
 
-# chewing and anthy do not work well
-# so we do not enable these input method at this moment
-
-stdenv.mkDerivation {
-  name = "hime";
-  version = "unstable-2020-06-27";
+stdenv.mkDerivation rec {
+  pname = "hime";
+  version = "0.9.11";
 
   src = fetchFromGitHub {
+    repo = pname;
     owner = "hime-ime";
-    repo = "hime";
-    rev = "c89751a58836906e6916355fd037fc74fd7a7a15";
-    sha256 = "024w67q0clzxigsrvqbxpiy8firjvrqi7wbkkcapzzhzapv3nm8x";
+    rev = "v${version}";
+    sha256 = "sha256-fCqet+foQjI+LpTQ/6Egup1GzXELlL2hgbh0dCKLwPI=";
   };
 
-  nativeBuildInputs = [ which pkg-config ];
-  buildInputs = [ libXtst gtk2 gtk3 qt4 qt5.qtbase ];
+  nativeBuildInputs = [ which pkg-config unixtools.whereis ];
+  buildInputs = [ libXtst gtk2 gtk3 qt4 qt5.qtbase libchewing anthy ];
 
   preConfigure = "patchShebangs configure";
   configureFlags = [ "--disable-lib64" "--disable-qt5-immodule" ];
   dontWrapQtApps = true;
+  postFixup = ''
+    hime_rpath=$(patchelf --print-rpath $out/bin/hime)
+    patchelf --set-rpath $out/lib/hime:$hime_rpath $out/bin/hime
+  '';
+
 
   meta = with lib; {
     homepage = "http://hime-ime.github.io/";
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
index 8fbd9254486a..acb2d41e0456 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-m17n";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "ibus";
     repo = "ibus-m17n";
     rev = version;
-    sha256 = "sha256-kPTysHTC+j8BMnzsddRa4Tg54idejApTqmLrP20pu5M=";
+    sha256 = "sha256-atsfaoA0V9PPwhPTpHI7b7A5JsDiYHfA+0NlNOKYIPg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix b/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix
index 21636ea8d8eb..35b3b1e336d3 100644
--- a/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/interception-tools/default.nix
@@ -1,19 +1,18 @@
-{ lib, stdenv, fetchurl, pkg-config, cmake, libyamlcpp,
-  libevdev, udev }:
+{ lib, stdenv, fetchFromGitLab, pkg-config, cmake, libyamlcpp,
+  libevdev, udev, boost }:
 
-let
-  version = "0.2.1";
-  baseName = "interception-tools";
-in stdenv.mkDerivation {
-  name = "${baseName}-${version}";
-
-  src = fetchurl {
-    url = "https://gitlab.com/interception/linux/tools/repository/v${version}/archive.tar.gz";
-    sha256 = "0lqz89wsf9r5xdgflincysxg4l8fpgg5z8zczhhrg9s5787srfzi";
+stdenv.mkDerivation rec {
+  pname = "interception-tools";
+  version = "0.6.6";
+  src = fetchFromGitLab {
+    owner = "interception/linux";
+    repo = "tools";
+    rev = "v${version}";
+    sha256 = "0k9h14a9d65nwvv7pj0kigjgzfv453mm3r4svnxfg1h5lccmy8jj";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libevdev udev libyamlcpp ];
+  buildInputs = [ libevdev udev libyamlcpp boost ];
 
   prePatch = ''
     substituteInPlace CMakeLists.txt --replace \
@@ -21,12 +20,10 @@ in stdenv.mkDerivation {
       "\"$(pkg-config --cflags libevdev | cut -c 3-)\""
   '';
 
-  patches = [ ./fix-udevmon-configuration-job-path.patch ];
-
   meta = {
     description = "A minimal composable infrastructure on top of libudev and libevdev";
     homepage = "https://gitlab.com/interception/linux/tools";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.vyp ];
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/inputmethods/interception-tools/fix-udevmon-configuration-job-path.patch b/nixpkgs/pkgs/tools/inputmethods/interception-tools/fix-udevmon-configuration-job-path.patch
deleted file mode 100644
index 469c96647d69..000000000000
--- a/nixpkgs/pkgs/tools/inputmethods/interception-tools/fix-udevmon-configuration-job-path.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d3a5d661b80f3597368f517ebaeddfdfaafc1bf2 Mon Sep 17 00:00:00 2001
-From: xd1le <elisp.vim@gmail.com>
-Date: Mon, 28 Aug 2017 00:19:09 +1000
-Subject: [PATCH] fix udevmon configuration job path
-
-For some reason, the udevmon job $PATH seems to be empty (or otherwise
-seems to point to `/no-such-path`). This commit fixes that by setting
-its $PATH to the same $PATH that the parent udevmon process has.
----
- udevmon.cpp | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/udevmon.cpp b/udevmon.cpp
-index ebdd909..b523efd 100644
---- a/udevmon.cpp
-+++ b/udevmon.cpp
-@@ -237,8 +237,11 @@ private:
-             case 0: {
-                 char *command[] = {(char *)"sh", (char *)"-c",
-                                    (char *)job.c_str(), nullptr};
-+                std::string path = getenv("PATH");
-                 std::string variables = "DEVNODE=" + devnode;
--                char *environment[]   = {(char *)variables.c_str(), nullptr};
-+                std::string pathenv = "PATH=" + path;
-+                char *environment[] = {(char *)variables.c_str(),
-+                                       (char *)pathenv.c_str(), nullptr};
-                 execvpe(command[0], command, environment);
-                 std::fprintf(stderr,
-                              R"(exec failed for devnode %s, job "%s" )"
--- 
-2.14.1
-
diff --git a/nixpkgs/pkgs/tools/inputmethods/kime/default.nix b/nixpkgs/pkgs/tools/inputmethods/kime/default.nix
index 35ed99b5a426..8566143f6807 100644
--- a/nixpkgs/pkgs/tools/inputmethods/kime/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/kime/default.nix
@@ -16,18 +16,18 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "kime";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "Riey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10zd4yrqxzxf4nj3b5bsblcmlbqssxqq9pac0misa1g61jdbszj8";
+    sha256 = "1kjw22hy2x90dc7xfm252v1pdr9x13mpm92rcgfy8zbkiqq242bl";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
-    sha256 = "1bimi7020m7v287bh7via7zm9m7y13d13kqpd772xmpdbwrj8nrl";
+    sha256 = "05kb9vnifaw01qw5cmdh4wzcf50szb0y00085wx41m8h4f28hfbk";
   };
 
   # Replace autostart path
@@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
   ];
 
   RUST_BACKTRACE = 1;
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   meta = with lib; {
     homepage = "https://github.com/Riey/kime";
diff --git a/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix b/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
index 0bd2b09aafc1..a4dc6a1c4632 100644
--- a/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
@@ -9,19 +9,19 @@
 
 buildGoModule rec {
   pname = "remote-touchpad";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "unrud";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zmbn4s3yhcgmijc96vja7zj2sh6q0nkybhqy0fwz6sqzk8hq02x";
+    sha256 = "09a252z69msy4wd5kazpca8dcn0a2djdw0vs663062fl977p73qs";
   };
 
   buildInputs = [ libX11 libXi libXt libXtst ];
   buildFlags = [ "-tags" "portal,x11" ];
 
-  vendorSha256 = "0q1qk5g7kqpcci5fgamvxa8989jglv69kwg5rvkphbnx1bzlivrl";
+  vendorSha256 = "1pgj0m67g759mcs4s34h4pq3mc7gni643z5cp6ffq4rrn8mdi060";
 
   meta = with lib; {
     description = "Control mouse and keyboard from the webbrowser of a smartphone.";
diff --git a/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix b/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix
index c9466f54a621..8a07b2c6c9cb 100644
--- a/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix
+++ b/nixpkgs/pkgs/tools/misc/adafruit-ampy/default.nix
@@ -11,7 +11,7 @@ buildPythonApplication rec {
     sha256 = "1dz5sksalccv4c3bzk3c1jxpg3s28lwlw8hfwc9dfxhw3a1np3fd";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ click python-dotenv pyserial ];
 
   # No tests
diff --git a/nixpkgs/pkgs/tools/misc/android-tools/default.nix b/nixpkgs/pkgs/tools/misc/android-tools/default.nix
new file mode 100644
index 000000000000..69a74e465c91
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/android-tools/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchurl
+, cmake, perl, go
+, protobuf, zlib, gtest, brotli, lz4, zstd, libusb1, pcre2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "android-tools";
+  version = "31.0.0p1";
+
+  src = fetchurl {
+    url = "https://github.com/nmeum/android-tools/releases/download/${version}/android-tools-${version}.tar.xz";
+    sha256 = "1dn7v10gdx1pi0pkddznd5sdz941qz0x4jww8h2mk50nbyxc792i";
+  };
+
+  nativeBuildInputs = [ cmake perl go ];
+  buildInputs = [ protobuf zlib gtest brotli lz4 zstd libusb1 pcre2 ];
+
+  # Don't try to fetch any Go modules via the network:
+  GOFLAGS = [ "-mod=vendor" ];
+
+  preConfigure = ''
+    export GOCACHE=$TMPDIR/go-cache
+  '';
+
+  meta = with lib; {
+    description = "Android SDK platform tools";
+    longDescription = ''
+      Android SDK Platform-Tools is a component for the Android SDK. It
+      includes tools that interface with the Android platform, such as adb and
+      fastboot. These tools are required for Android app development. They're
+      also needed if you want to unlock your device bootloader and flash it
+      with a new system image.
+      Currently the following tools are supported:
+      - adb
+      - fastboot
+      - mke2fs.android (required by fastboot)
+      - simg2img, img2simg, append2simg
+    '';
+    # https://developer.android.com/studio/command-line#tools-platform
+    # https://developer.android.com/studio/releases/platform-tools
+    homepage = "https://github.com/nmeum/android-tools";
+    license = with licenses; [ asl20 unicode-dfs-2015 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/apparix/default.nix b/nixpkgs/pkgs/tools/misc/apparix/default.nix
index d446a2cf0af6..8e682aefcc39 100644
--- a/nixpkgs/pkgs/tools/misc/apparix/default.nix
+++ b/nixpkgs/pkgs/tools/misc/apparix/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://micans.org/apparix";
     description = "Add directory bookmarks, distant listing, and distant editing to the command line";
-    maintainers = with maintainers; [ lethalman ];
+    maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/tools/misc/as-tree/default.nix b/nixpkgs/pkgs/tools/misc/as-tree/default.nix
index 7cc97fd79e46..4b2ce65d3dbf 100644
--- a/nixpkgs/pkgs/tools/misc/as-tree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/as-tree/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0c0g32pkyhyvqpgvzlw9244c80npq6s8mxy3may7q4qyd7hi3dz5";
   };
 
-  cargoSha256 = "0yhd9svdxg7akv61msn7rf3rfblb7kxnyn955dfdwyxbxq48qwpr";
+  cargoSha256 = "1m334shcja7kg134b7lnq1ksy67j5b5vblkzamrw06f6r1hkn1rc";
   # the upstream 0.12.0 release didn't update the Cargo.lock file properly
   # they have updated their release script, so this patch can be removed
   # when the next version is released.
diff --git a/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix b/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix
index f69916621146..a818c6114d87 100644
--- a/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix
+++ b/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-ubiVpKFU81Ot9V9oMexWSiUXHepoJ6nXtrWVAFhgcYw=";
   };
 
-  cargoSha256 = "109ij5h31bhn44l0wywgpnnlfjgyairxr5l19s6bz47sbka0xyxk";
+  cargoSha256 = "1yf63w2findgqipvgmlkw3pqfkai7mvqp86jg40lvr0mpnvly2ny";
 
   meta = with lib; {
     description = "Create asciinema videos from a text file";
diff --git a/nixpkgs/pkgs/tools/misc/atuin/default.nix b/nixpkgs/pkgs/tools/misc/atuin/default.nix
new file mode 100644
index 000000000000..3157fc51b58a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/atuin/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, libiconv
+, Security
+, SystemConfiguration
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "atuin";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "ellie";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-jjGP8YeHnEr0f9RONwA6wZT872C0jXTvSRdt9zAu6KE=";
+  };
+
+  cargoSha256 = "0vy6q3hjp374lyg00zxim8aplh83iq3f4rrmpz5vnpwbag1fdql3";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
+
+  meta = with lib; {
+    description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
+    homepage = "https://github.com/ellie/atuin";
+    license = licenses.mit;
+    maintainers = [ maintainers.onsails ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
index 7541281eeb67..9f574da85a51 100644
--- a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bash_unit";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "pgrange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02cam5gkhnlwhb9aqcqmkl8kskgikih0bmyx09ybi3gpaf4z82f7";
+    sha256 = "sha256-+hEgag5H7PaBwZSBp3D17q3TZRO2SVBe5M1Ep/jeg1w=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/bat-extras/default.nix b/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
index 4fb09f4d8dc6..cb483567f215 100644
--- a/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bat-extras/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchFromGitHub, bash, makeWrapper, bat
 # batdiff, batgrep, and batwatch
 , coreutils
+, getconf
 , less
 # batgrep
 , ripgrep
@@ -48,6 +49,7 @@ let
 
     # Run the library tests as they don't have external dependencies
     doCheck = true;
+    checkInputs = lib.optionals stdenv.isDarwin [ getconf ];
     checkPhase = ''
       runHook preCheck
       # test list repeats suites. Unique them
@@ -104,6 +106,7 @@ let
       dontBuild = true; # we've already built
 
       doCheck = true;
+      checkInputs = lib.optionals stdenv.isDarwin [ getconf ];
       checkPhase = ''
         runHook preCheck
         bash ./test.sh --compiled --suite ${name}
diff --git a/nixpkgs/pkgs/tools/misc/bat/default.nix b/nixpkgs/pkgs/tools/misc/bat/default.nix
index d72b0fdef1fa..8bc82547eeb9 100644
--- a/nixpkgs/pkgs/tools/misc/bat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bat/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bat";
-  version = "0.18.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "113i11sgna82i4c4zk66qmbypmnmzh0lzp4kkgqnxxcdvyj00rb8";
+    sha256 = "sha256-kyl+clL/4uxVaDH/9zPDGQTir4/JVgtHo9kNQ31gXTo=";
   };
 
-  cargoSha256 = "12z7y303fmga91daf2w356qiqdqa7b8dz6nrrpnjdf0slyz0w3x4";
+  cargoSha256 = "sha256-j9HbOXiwN4CWv9wMBrNxY3jehh+KRkXlwmDqChNy1Dk=";
 
   nativeBuildInputs = [ pkg-config installShellFiles makeWrapper ];
 
diff --git a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
index 1297b61e7f8c..5e91756413eb 100644
--- a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.202";
+  version = "1.203";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "sha256-QXjORfwPxNF9iWF29YcVyT2EAwcR4UQjF4Zv7dPMC9c=";
+    sha256 = "sha256-jQJC3b+HsEeKYRKQUfI2w3xYDJHs9ajfN8lb6Upzgd8=";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/nixpkgs/pkgs/tools/misc/bepasty/default.nix b/nixpkgs/pkgs/tools/misc/bepasty/default.nix
index 460f20a5f5f9..69a784ec4cc3 100644
--- a/nixpkgs/pkgs/tools/misc/bepasty/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bepasty/default.nix
@@ -36,7 +36,7 @@ in with python.pkgs; buildPythonPackage rec {
     xstatic-pygments
   ];
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix b/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix
index e839d9ef09ce..f75f3a6f8223 100644
--- a/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/betterdiscordctl/default.nix
@@ -2,22 +2,28 @@
 
 stdenv.mkDerivation rec {
   pname = "betterdiscordctl";
-  version = "1.7.1";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "bb010g";
     repo = "betterdiscordctl";
     rev = "v${version}";
-    sha256 = "12c3phcfwl4p2jfh22ihm57vxw4nq5kwqirb7y4gzc91swfh5yj1";
+    sha256 = "1wys3wbcz5hq8275ia2887kr5fzz4b3gkcp56667j9k0p3k3zfac";
   };
 
-  preBuild = "sed -i 's/^nix=$/&yes/g;s/^DISABLE_UPGRADE=$/&yes/g' ./betterdiscordctl";
+  postPatch = ''
+    substituteInPlace betterdiscordctl \
+      --replace "DISABLE_SELF_UPGRADE=" "DISABLE_SELF_UPGRADE=yes"
+  '';
 
   installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/doc/betterdiscordctl
+    runHook preInstall
+
+    mkdir -p "$out/bin" "$out/share/doc/betterdiscordctl"
     install -Dm744 betterdiscordctl $out/bin/betterdiscordctl
     install -Dm644 README.md $out/share/doc/betterdiscordctl/README.md
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/bfetch/default.nix b/nixpkgs/pkgs/tools/misc/bfetch/default.nix
new file mode 100644
index 000000000000..107f2cd94528
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/bfetch/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub, bash }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "bfetch";
+  version = "unstable-2021-05-21";
+
+  src = fetchFromGitHub {
+    owner = "NNBnh";
+    repo = pname;
+    rev = "ef88e9d3f815e5074efc8ef4b7f32be6818130f2";
+    sha256 = "sha256-jS9zI8b+z3KbI+LeHFwIMJfEmAKSzO8HRZ2rk35hJCk=";
+  };
+
+  buildInputs = [ bash ];
+
+  postPatch = ''
+    patchShebangs --host bin/bfetch
+  '';
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A SuperB general-purpose fetch displayer written in portable sh";
+    homepage = "https://github.com/NNBnh/bfetch";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/bibutils/default.nix b/nixpkgs/pkgs/tools/misc/bibutils/default.nix
index cf42e56b5717..03b35811bc5b 100644
--- a/nixpkgs/pkgs/tools/misc/bibutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bibutils/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchurl }:
+{ lib
+, stdenv
+, fetchurl
+, static ? stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "bibutils";
@@ -9,11 +13,23 @@ stdenv.mkDerivation rec {
     sha256 = "15p4av74ihsg03j854dkdqihpspwnp58p9g1lhx48w8kz91c0ml6";
   };
 
-  configureFlags = [ "--dynamic" "--install-dir" "$(out)/bin" "--install-lib" "$(out)/lib" ];
+  preConfigure = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace lib/Makefile.dynamic \
+      --replace '-Wl,-soname,$(SONAME)' ""
+  '';
+
+  configureFlags = [
+    (if static then "--static" else "--dynamic")
+    "--install-dir" "$(out)/bin"
+    "--install-lib" "$(out)/lib"
+  ];
   dontAddPrefix = true;
 
   doCheck = true;
   checkTarget = "test";
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    export DYLD_LIBRARY_PATH=`pwd`/lib
+  '';
 
   meta = with lib; {
     description = "Bibliography format interconversion";
@@ -21,6 +37,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/p/bibutils/home/Bibutils/";
     license = licenses.gpl2;
     maintainers = [ maintainers.garrison ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/birdfont/default.nix b/nixpkgs/pkgs/tools/misc/birdfont/default.nix
index 609899bbe30f..1b1fefc0a7cf 100644
--- a/nixpkgs/pkgs/tools/misc/birdfont/default.nix
+++ b/nixpkgs/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.29.1";
+  version = "2.29.4";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0620bppcbm9pb8l0d4sc56gfwkr97gw4zjirjz5ikk5lj0m801yi";
+    sha256 = "sha256-caNY6PrsqBrYwC61MxNsf8B9E8it1Ls1d+hdbf8u+o8=";
   };
 
   nativeBuildInputs = [ python3 pkg-config vala_0_44 gobject-introspection wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/tools/misc/bkyml/default.nix b/nixpkgs/pkgs/tools/misc/bkyml/default.nix
new file mode 100644
index 000000000000..aea83e7c99ff
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/bkyml/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, python3
+}:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+  pname = "bkyml";
+  version = "1.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01kpx35572mp4xl2fjyvfk39jfgfjcyzymbifk76891kaqkjb7r9";
+  };
+
+  # The pyscaffold is not a runtime dependency but just a python project bootstrapping tool. Thus,
+  # instead of implement this package in nix we remove a dependency on it and fix up the version
+  # of the package, that has been affected by the pyscaffold package dependency removal.
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "['pyscaffold>=3.0a0,<3.1a0'] + " "" \
+      --replace "use_pyscaffold=True"  ""
+    substituteInPlace src/bkyml/skeleton.py --replace \
+        "from bkyml import __version__" \
+        "__version__ = \"${version}\""
+  '';
+
+  # Don't run tests because they are broken when run within
+  # buildPythonApplication for reasons I don't quite understand.
+  doCheck = false;
+
+  pythonImportsCheck = [ "bkyml" ];
+
+  propagatedBuildInputs = [
+    ruamel_yaml
+    setuptools
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/joscha/bkyml";
+    description = "A CLI tool to generate a pipeline.yaml file for Buildkite on the fly.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ olebedev ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/blflash/default.nix b/nixpkgs/pkgs/tools/misc/blflash/default.nix
index bf09fc8d0a7c..d8c1aec35a0c 100644
--- a/nixpkgs/pkgs/tools/misc/blflash/default.nix
+++ b/nixpkgs/pkgs/tools/misc/blflash/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "blflash";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "spacemeowx2";
     repo = "blflash";
     rev = "v${version}";
-    sha256 = "sha256-+2ncK1ibtQwlBREw4Yiqj4vFvAcZqjkoTBtBdAAUoRg=";
+    sha256 = "sha256-hPScmivtugtZm848Itzg4Tb9rppZny+rKi3IBuUxxQY=";
   };
 
-  cargoSha256 = "sha256-tt9jfcoEw/HQ0/qU4lhbqKtIw/lthDTcyf/3HYQNPEY=";
+  cargoSha256 = "sha256-/y3R8B2TOf8jeB9tcewoA9EGN6kj/EPMTjU6rfTF5Vc=";
 
   meta = with lib; {
     description = "An bl602 serial flasher written in Rust";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch b/nixpkgs/pkgs/tools/misc/bottom-rs/cargo-lock.patch
index 96f7d9ffb660..9b736f763c82 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch
+++ b/nixpkgs/pkgs/tools/misc/bottom-rs/cargo-lock.patch
@@ -1,33 +1,12 @@
---- a/Cargo.lock
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..edc9428
+--- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,777 @@
+@@ -0,0 +1,785 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
-+name = "addr2line"
-+version = "0.12.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543"
-+dependencies = [
-+ "gimli",
-+]
-+
-+[[package]]
-+name = "adler32"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
 +name = "ansi_term"
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -37,6 +16,12 @@
 +]
 +
 +[[package]]
++name = "anyhow"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
++
++[[package]]
 +name = "atty"
 +version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -49,32 +34,9 @@
 +
 +[[package]]
 +name = "autocfg"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-+
-+[[package]]
-+name = "backtrace"
-+version = "0.3.49"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c"
-+dependencies = [
-+ "addr2line",
-+ "cfg-if",
-+ "libc",
-+ "miniz_oxide",
-+ "object",
-+ "rustc-demangle",
-+]
-+
-+[[package]]
-+name = "base64"
-+version = "0.10.1"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
-+dependencies = [
-+ "byteorder",
-+]
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
 +
 +[[package]]
 +name = "bitflags"
@@ -83,75 +45,67 @@
 +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 +
 +[[package]]
-+name = "block-buffer"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
++name = "bottom-bench"
++version = "0.1.0"
 +dependencies = [
-+ "block-padding",
-+ "byte-tools",
-+ "byteorder",
-+ "generic-array",
++ "bottomify",
++ "criterion",
 +]
 +
 +[[package]]
-+name = "block-padding"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
++name = "bottomify"
++version = "1.2.0"
 +dependencies = [
-+ "byte-tools",
++ "anyhow",
++ "clap",
++ "phf",
++ "phf_codegen",
 +]
 +
 +[[package]]
 +name = "bstr"
-+version = "0.2.13"
++version = "0.2.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
++checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d"
 +dependencies = [
++ "lazy_static",
 + "memchr",
++ "regex-automata",
++ "serde",
 +]
 +
 +[[package]]
-+name = "byte-tools"
-+version = "0.3.1"
++name = "bumpalo"
++version = "3.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
++checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
 +
 +[[package]]
 +name = "byteorder"
-+version = "1.3.4"
++version = "1.4.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 +
 +[[package]]
-+name = "cargo-insta"
-+version = "0.16.0"
++name = "cast"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cc38c385bfd7e444464011bb24820f40dd1c76bcdfa1b78611cb7c2e5cafab75"
 +dependencies = [
-+ "clap",
-+ "console",
-+ "difference",
-+ "glob",
-+ "insta",
-+ "proc-macro2",
-+ "serde",
-+ "serde_json",
-+ "structopt",
-+ "syn",
-+ "walkdir",
++ "rustc_version",
 +]
 +
 +[[package]]
 +name = "cfg-if"
-+version = "0.1.10"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 +
 +[[package]]
 +name = "clap"
-+version = "2.33.1"
++version = "2.33.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
 +dependencies = [
 + "ansi_term",
 + "atty",
@@ -163,39 +117,80 @@
 +]
 +
 +[[package]]
-+name = "clicolors-control"
-+version = "1.0.1"
++name = "criterion"
++version = "0.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e"
++checksum = "ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23"
 +dependencies = [
 + "atty",
++ "cast",
++ "clap",
++ "criterion-plot",
++ "csv",
++ "itertools 0.10.0",
 + "lazy_static",
-+ "libc",
-+ "winapi",
++ "num-traits",
++ "oorandom",
++ "plotters",
++ "rayon",
++ "regex",
++ "serde",
++ "serde_cbor",
++ "serde_derive",
++ "serde_json",
++ "tinytemplate",
++ "walkdir",
++]
++
++[[package]]
++name = "criterion-plot"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d"
++dependencies = [
++ "cast",
++ "itertools 0.9.0",
++]
++
++[[package]]
++name = "crossbeam-channel"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
++dependencies = [
++ "cfg-if",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
++dependencies = [
++ "cfg-if",
++ "crossbeam-epoch",
++ "crossbeam-utils",
 +]
 +
 +[[package]]
-+name = "console"
-+version = "0.10.3"
++name = "crossbeam-epoch"
++version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2586208b33573b7f76ccfbe5adb076394c88deaf81b84d7213969805b0a952a7"
++checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
 +dependencies = [
-+ "clicolors-control",
-+ "encode_unicode",
++ "cfg-if",
++ "crossbeam-utils",
 + "lazy_static",
-+ "libc",
-+ "regex",
-+ "terminal_size",
-+ "termios",
-+ "unicode-width",
-+ "winapi",
++ "memoffset",
++ "scopeguard",
 +]
 +
 +[[package]]
 +name = "crossbeam-utils"
-+version = "0.7.2"
++version = "0.8.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
++checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
 +dependencies = [
 + "autocfg",
 + "cfg-if",
@@ -203,329 +198,351 @@
 +]
 +
 +[[package]]
-+name = "difference"
-+version = "2.0.0"
++name = "csv"
++version = "1.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
++checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
++dependencies = [
++ "bstr",
++ "csv-core",
++ "itoa",
++ "ryu",
++ "serde",
++]
 +
 +[[package]]
-+name = "digest"
-+version = "0.8.1"
++name = "csv-core"
++version = "0.1.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
 +dependencies = [
-+ "generic-array",
++ "memchr",
 +]
 +
 +[[package]]
-+name = "dtoa"
-+version = "0.4.6"
++name = "either"
++version = "1.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
 +
 +[[package]]
-+name = "encode_unicode"
-+version = "0.3.6"
++name = "getrandom"
++version = "0.1.16"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
 +
 +[[package]]
-+name = "fake-simd"
-+version = "0.1.2"
++name = "half"
++version = "1.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
++checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3"
 +
 +[[package]]
-+name = "fnv"
-+version = "1.0.7"
++name = "hermit-abi"
++version = "0.1.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
++dependencies = [
++ "libc",
++]
 +
 +[[package]]
-+name = "generic-array"
-+version = "0.12.3"
++name = "itertools"
++version = "0.9.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
 +dependencies = [
-+ "typenum",
++ "either",
 +]
 +
 +[[package]]
-+name = "gimli"
-+version = "0.21.0"
++name = "itertools"
++version = "0.10.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
++checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319"
++dependencies = [
++ "either",
++]
 +
 +[[package]]
-+name = "glob"
-+version = "0.3.0"
++name = "itoa"
++version = "0.4.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
 +
 +[[package]]
-+name = "globset"
-+version = "0.4.5"
++name = "js-sys"
++version = "0.3.50"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120"
++checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"
 +dependencies = [
-+ "aho-corasick",
-+ "bstr",
-+ "fnv",
-+ "log",
-+ "regex",
++ "wasm-bindgen",
 +]
 +
 +[[package]]
-+name = "globwalk"
-+version = "0.8.0"
++name = "lazy_static"
++version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "178270263374052c40502e9f607134947de75302c1348d1a0e31db67c1691446"
-+dependencies = [
-+ "bitflags",
-+ "ignore",
-+ "walkdir",
-+]
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "libc"
++version = "0.2.94"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
 +
 +[[package]]
-+name = "heck"
-+version = "0.3.1"
++name = "log"
++version = "0.4.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
 +dependencies = [
-+ "unicode-segmentation",
++ "cfg-if",
 +]
 +
 +[[package]]
-+name = "hermit-abi"
-+version = "0.1.14"
++name = "memchr"
++version = "2.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
++
++[[package]]
++name = "memoffset"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d"
 +dependencies = [
-+ "libc",
++ "autocfg",
 +]
 +
 +[[package]]
-+name = "ignore"
-+version = "0.4.16"
++name = "num-traits"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "22dcbf2a4a289528dbef21686354904e1c694ac642610a9bff9e7df730d9ec72"
++checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
 +dependencies = [
-+ "crossbeam-utils",
-+ "globset",
-+ "lazy_static",
-+ "log",
-+ "memchr",
-+ "regex",
-+ "same-file",
-+ "thread_local",
-+ "walkdir",
-+ "winapi-util",
++ "autocfg",
 +]
 +
 +[[package]]
-+name = "insta"
-+version = "0.16.0"
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 +dependencies = [
-+ "backtrace",
-+ "console",
-+ "difference",
-+ "globwalk",
-+ "lazy_static",
-+ "pest",
-+ "pest_derive",
-+ "ron",
-+ "serde",
-+ "serde_json",
-+ "serde_yaml",
++ "hermit-abi",
++ "libc",
 +]
 +
 +[[package]]
-+name = "itoa"
-+version = "0.4.6"
++name = "oorandom"
++version = "11.1.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
++checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
 +
 +[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
++name = "phf"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
++dependencies = [
++ "phf_shared",
++]
 +
 +[[package]]
-+name = "libc"
-+version = "0.2.71"
++name = "phf_codegen"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
++checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
++dependencies = [
++ "phf_generator",
++ "phf_shared",
++]
 +
 +[[package]]
-+name = "linked-hash-map"
-+version = "0.5.3"
++name = "phf_generator"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
++checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
++dependencies = [
++ "phf_shared",
++ "rand",
++]
 +
 +[[package]]
-+name = "log"
-+version = "0.4.8"
++name = "phf_shared"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
 +dependencies = [
-+ "cfg-if",
++ "siphasher",
 +]
 +
 +[[package]]
-+name = "maplit"
-+version = "1.0.2"
++name = "plotters"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
++checksum = "45ca0ae5f169d0917a7c7f5a9c1a3d3d9598f18f529dd2b8373ed988efea307a"
++dependencies = [
++ "num-traits",
++ "plotters-backend",
++ "plotters-svg",
++ "wasm-bindgen",
++ "web-sys",
++]
 +
 +[[package]]
-+name = "memchr"
-+version = "2.3.3"
++name = "plotters-backend"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++checksum = "b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590"
 +
 +[[package]]
-+name = "miniz_oxide"
-+version = "0.3.7"
++name = "plotters-svg"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
++checksum = "b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211"
 +dependencies = [
-+ "adler32",
++ "plotters-backend",
 +]
 +
 +[[package]]
-+name = "object"
-+version = "0.20.0"
++name = "ppv-lite86"
++version = "0.2.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
 +
 +[[package]]
-+name = "opaque-debug"
-+version = "0.2.3"
++name = "proc-macro2"
++version = "1.0.26"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
++checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
++dependencies = [
++ "unicode-xid",
++]
 +
 +[[package]]
-+name = "pest"
-+version = "2.1.3"
++name = "quote"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
 +dependencies = [
-+ "ucd-trie",
++ "proc-macro2",
 +]
 +
 +[[package]]
-+name = "pest_derive"
-+version = "2.1.0"
++name = "rand"
++version = "0.7.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 +dependencies = [
-+ "pest",
-+ "pest_generator",
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++ "rand_pcg",
 +]
 +
 +[[package]]
-+name = "pest_generator"
-+version = "2.1.3"
++name = "rand_chacha"
++version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
 +dependencies = [
-+ "pest",
-+ "pest_meta",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
++ "ppv-lite86",
++ "rand_core",
 +]
 +
 +[[package]]
-+name = "pest_meta"
-+version = "2.1.3"
++name = "rand_core"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 +dependencies = [
-+ "maplit",
-+ "pest",
-+ "sha-1",
++ "getrandom",
 +]
 +
 +[[package]]
-+name = "proc-macro-error"
-+version = "1.0.2"
++name = "rand_hc"
++version = "0.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
 +dependencies = [
-+ "proc-macro-error-attr",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "version_check",
++ "rand_core",
 +]
 +
 +[[package]]
-+name = "proc-macro-error-attr"
-+version = "1.0.2"
++name = "rand_pcg"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53"
++checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
 +dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "syn-mid",
-+ "version_check",
++ "rand_core",
 +]
 +
 +[[package]]
-+name = "proc-macro2"
-+version = "1.0.18"
++name = "rayon"
++version = "1.5.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
++checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
 +dependencies = [
-+ "unicode-xid",
++ "autocfg",
++ "crossbeam-deque",
++ "either",
++ "rayon-core",
 +]
 +
 +[[package]]
-+name = "quote"
-+version = "1.0.7"
++name = "rayon-core"
++version = "1.9.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
 +dependencies = [
-+ "proc-macro2",
++ "crossbeam-channel",
++ "crossbeam-deque",
++ "crossbeam-utils",
++ "lazy_static",
++ "num_cpus",
 +]
 +
 +[[package]]
 +name = "regex"
-+version = "1.3.9"
++version = "1.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
++checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
 +dependencies = [
-+ "aho-corasick",
-+ "memchr",
 + "regex-syntax",
-+ "thread_local",
 +]
 +
 +[[package]]
-+name = "regex-syntax"
-+version = "0.6.18"
++name = "regex-automata"
++version = "0.1.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
++checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
++dependencies = [
++ "byteorder",
++]
 +
 +[[package]]
-+name = "ron"
-+version = "0.5.1"
++name = "regex-syntax"
++version = "0.6.23"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ece421e0c4129b90e4a35b6f625e472e96c552136f5093a2f4fa2bbb75a62d5"
-+dependencies = [
-+ "base64",
-+ "bitflags",
-+ "serde",
-+]
++checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
 +
 +[[package]]
-+name = "rustc-demangle"
-+version = "0.1.16"
++name = "rustc_version"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++dependencies = [
++ "semver",
++]
 +
 +[[package]]
 +name = "ryu"
@@ -543,19 +560,47 @@
 +]
 +
 +[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++dependencies = [
++ "semver-parser",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++
++[[package]]
 +name = "serde"
-+version = "1.0.112"
++version = "1.0.125"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
++
++[[package]]
++name = "serde_cbor"
++version = "0.11.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "736aac72d1eafe8e5962d1d1c3d99b0df526015ba40915cb3c49d042e92ec243"
++checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622"
 +dependencies = [
-+ "serde_derive",
++ "half",
++ "serde",
 +]
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.112"
++version = "1.0.125"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bf0343ce212ac0d3d6afd9391ac8e9c9efe06b533c8d33f660f6390cc4093f57"
++checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -564,9 +609,9 @@
 +
 +[[package]]
 +name = "serde_json"
-+version = "1.0.55"
++version = "1.0.64"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ec2c5d7e739bc07a3e73381a39d61fdb5f671c60c1df26a130690665803d8226"
++checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
 +dependencies = [
 + "itoa",
 + "ryu",
@@ -574,28 +619,10 @@
 +]
 +
 +[[package]]
-+name = "serde_yaml"
-+version = "0.8.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5"
-+dependencies = [
-+ "dtoa",
-+ "linked-hash-map",
-+ "serde",
-+ "yaml-rust",
-+]
-+
-+[[package]]
-+name = "sha-1"
-+version = "0.8.2"
++name = "siphasher"
++version = "0.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
-+dependencies = [
-+ "block-buffer",
-+ "digest",
-+ "fake-simd",
-+ "opaque-debug",
-+]
++checksum = "cbce6d4507c7e4a3962091436e56e95290cb71fa302d0d270e32130b75fbff27"
 +
 +[[package]]
 +name = "strsim"
@@ -604,34 +631,10 @@
 +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 +
 +[[package]]
-+name = "structopt"
-+version = "0.3.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
-+dependencies = [
-+ "clap",
-+ "lazy_static",
-+ "structopt-derive",
-+]
-+
-+[[package]]
-+name = "structopt-derive"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
-+dependencies = [
-+ "heck",
-+ "proc-macro-error",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
 +name = "syn"
-+version = "1.0.31"
++version = "1.0.70"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6"
++checksum = "b9505f307c872bab8eb46f77ae357c8eba1fdacead58ee5a850116b1d7f82883"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -639,111 +642,128 @@
 +]
 +
 +[[package]]
-+name = "syn-mid"
-+version = "0.5.0"
++name = "textwrap"
++version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
 +dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
++ "unicode-width",
 +]
 +
 +[[package]]
-+name = "terminal_size"
-+version = "0.1.12"
++name = "tinytemplate"
++version = "1.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8038f95fc7a6f351163f4b964af631bd26c9e828f7db085f2a84aca56f70d13b"
++checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
 +dependencies = [
-+ "libc",
-+ "winapi",
++ "serde",
++ "serde_json",
 +]
 +
 +[[package]]
-+name = "termios"
-+version = "0.3.2"
++name = "unicode-width"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6f0fcee7b24a25675de40d5bb4de6e41b0df07bc9856295e7e2b3a3600c400c2"
-+dependencies = [
-+ "libc",
-+]
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
 +
 +[[package]]
-+name = "textwrap"
-+version = "0.11.0"
++name = "unicode-xid"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+dependencies = [
-+ "unicode-width",
-+]
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
 +
 +[[package]]
-+name = "thread_local"
-+version = "1.0.1"
++name = "vec_map"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+dependencies = [
-+ "lazy_static",
-+]
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 +
 +[[package]]
-+name = "typenum"
-+version = "1.12.0"
++name = "walkdir"
++version = "2.3.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
++checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
++dependencies = [
++ "same-file",
++ "winapi",
++ "winapi-util",
++]
 +
 +[[package]]
-+name = "ucd-trie"
-+version = "0.1.3"
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 +
 +[[package]]
-+name = "unicode-segmentation"
-+version = "1.6.0"
++name = "wasm-bindgen"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
++checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"
++dependencies = [
++ "cfg-if",
++ "wasm-bindgen-macro",
++]
 +
 +[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
++name = "wasm-bindgen-backend"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"
++dependencies = [
++ "bumpalo",
++ "lazy_static",
++ "log",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-shared",
++]
 +
 +[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
++name = "wasm-bindgen-macro"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"
++dependencies = [
++ "quote",
++ "wasm-bindgen-macro-support",
++]
 +
 +[[package]]
-+name = "vec_map"
-+version = "0.8.2"
++name = "wasm-bindgen-macro-support"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-backend",
++ "wasm-bindgen-shared",
++]
 +
 +[[package]]
-+name = "version_check"
-+version = "0.9.2"
++name = "wasm-bindgen-shared"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"
 +
 +[[package]]
-+name = "walkdir"
-+version = "2.3.1"
++name = "web-sys"
++version = "0.3.50"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be"
 +dependencies = [
-+ "same-file",
-+ "winapi",
-+ "winapi-util",
++ "js-sys",
++ "wasm-bindgen",
 +]
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.8"
++version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 +dependencies = [
 + "winapi-i686-pc-windows-gnu",
 + "winapi-x86_64-pc-windows-gnu",
@@ -769,12 +789,3 @@
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+
-+[[package]]
-+name = "yaml-rust"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
-+dependencies = [
-+ "linked-hash-map",
-+]
diff --git a/nixpkgs/pkgs/tools/misc/bottom-rs/default.nix b/nixpkgs/pkgs/tools/misc/bottom-rs/default.nix
new file mode 100644
index 000000000000..ab5763c207d1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/bottom-rs/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bottom-rs";
+  version = "unstable-2021-04-27";
+
+  src = fetchFromGitHub {
+    owner = "bottom-software-foundation";
+    repo = pname;
+    rev = "3451cdadd7c4e64fe8e7f43e986a18628a741dec";
+    sha256 = "0kr18q80021s1n9zzzff6w6yvbbjnk6zbbabi5b42b0rfv6fnfn2";
+  };
+
+  cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "0nyzg6pg69bf9vvc3r5lnhmkb9s1508c1gqcra3y43zffdlwml1y";
+
+  meta = with lib; {
+    description = "Fantastic (maybe) CLI for translating between bottom and human-readable text";
+    homepage = "https://github.com/bottom-software-foundation/bottom-rs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ winterqt ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/brltty/default.nix b/nixpkgs/pkgs/tools/misc/brltty/default.nix
index b71740c325a5..fef13a893728 100644
--- a/nixpkgs/pkgs/tools/misc/brltty/default.nix
+++ b/nixpkgs/pkgs/tools/misc/brltty/default.nix
@@ -1,21 +1,21 @@
 { lib, stdenv, fetchurl, pkg-config, python3, bluez
-, alsaSupport ? stdenv.isLinux, alsaLib ? null
-, systemdSupport ? stdenv.isLinux, systemd ? null }:
-
-assert alsaSupport -> alsaLib != null;
-assert systemdSupport -> systemd != null;
+, tcl, acl, kmod, coreutils, shadow, util-linux, udev
+, alsaSupport ? stdenv.isLinux, alsa-lib
+, systemdSupport ? stdenv.isLinux, systemd
+}:
 
 stdenv.mkDerivation rec {
-  name = "brltty-6.1";
+  pname = "brltty";
+  version = "6.3";
 
   src = fetchurl {
-    url = "http://brltty.com/archive/${name}.tar.gz";
-    sha256 = "0nk54chr7z2w579vyiak9xk2avhnvrx7x2l5sk8nyw2zplchkx9q";
+    url = "https://brltty.app/archive/${pname}-${version}.tar.gz";
+    sha256 = "14psxwlvgyi2fj1zh8rfykyjcjaya8xa7yg574bxd8y8n49n8hvb";
   };
 
-  nativeBuildInputs = [ pkg-config python3.pkgs.cython ];
+  nativeBuildInputs = [ pkg-config python3.pkgs.cython tcl ];
   buildInputs = [ bluez ]
-    ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional alsaSupport alsa-lib
     ++ lib.optional systemdSupport systemd;
 
   meta = {
@@ -26,17 +26,70 @@ stdenv.mkDerivation rec {
       It drives the braille display, and provides complete screen review functionality.
       Some speech capability has also been incorporated.
     '';
-    homepage = "http://www.brltty.com/";
-    license = lib.licenses.gpl2;
+    homepage = "https://brltty.app";
+    license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.bramd ];
     platforms = lib.platforms.all;
   };
 
-  makeFlags = [ "PYTHON_PREFIX=$(out)" ];
-
-  preConfigurePhases = [ "preConfigure" ];
+  makeFlags = [
+    "PYTHON_PREFIX=$(out)"
+    "SYSTEMD_UNITS_DIRECTORY=$(out)/lib/systemd/system"
+    "SYSTEMD_USERS_DIRECTORY=$(out)/lib/sysusers.d"
+    "SYSTEMD_FILES_DIRECTORY=$(out)/lib/tmpfiles.d"
+    "UDEV_LIBRARY_DIRECTORY=$(out)/lib/udev"
+    "UDEV_RULES_TYPE=all"
+    "POLKIT_POLICY_DIR=$(out)/share/polkit-1/actions"
+    "POLKIT_RULE_DIR=$(out)/share/polkit-1/rules.d"
+  ];
+  configureFlags = [
+    "--with-writable-directory=/run/brltty"
+    "--with-updatable-directory=/var/lib/brltty"
+    "--with-api-socket-path=/var/lib/BrlAPI"
+  ];
+  installFlags = [ "install-systemd" "install-udev" "install-polkit" ];
 
   preConfigure = ''
     substituteInPlace configure --replace /sbin/ldconfig ldconfig
+
+    # Some script needs a working tclsh shebang
+    patchShebangs .
+
+    # Skip impure operations
+    substituteInPlace Programs/Makefile.in    \
+      --replace install-writable-directory "" \
+      --replace install-apisoc-directory ""   \
+      --replace install-api-key ""
+  '';
+
+  postInstall = ''
+    # Rewrite absolute paths
+    substituteInPlace $out/bin/brltty-mkuser \
+      --replace '/sbin/nologin' '${shadow}/bin/nologin'
+    (
+      cd $out/lib
+      substituteInPlace systemd/system/brltty@.service \
+        --replace '/usr/lib' "$out/lib" \
+        --replace '/sbin/modprobe' '${kmod}/bin/modprobe'
+      # Ensure the systemd-wrapper script uses the correct path to the brltty binary
+      sed "/^Environment=\"BRLTTY_EXECUTABLE_ARGUMENTS.*/a Environment=\"BRLTTY_EXECUTABLE_PATH=$out/bin/brltty\"" -i systemd/system/brltty@.service
+      substituteInPlace systemd/system/brltty-device@.service \
+        --replace '/usr/bin/true' '${coreutils}/bin/true'
+      substituteInPlace udev/rules.d/90-brltty-uinput.rules \
+        --replace '/usr/bin/setfacl' '${acl}/bin/setfacl'
+      substituteInPlace tmpfiles.d/brltty.conf \
+        --replace "$out/etc" '/etc'
+
+      # Remove unused commands from udev rules
+      sed '/initctl/d' -i udev/rules.d/90-brltty-device.rules
+      # Remove pulse-access group from systemd unit and sysusers
+      substituteInPlace systemd/system/brltty@.service \
+        --replace 'SupplementaryGroups=pulse-access' '# SupplementaryGroups=pulse-access'
+      substituteInPlace sysusers.d/brltty.conf \
+        --replace 'm brltty pulse-access' '# m brltty pulse-access'
+     )
+     substituteInPlace $out/libexec/brltty/systemd-wrapper \
+       --replace 'logger' "${util-linux}/bin/logger" \
+       --replace 'udevadm' "${udev}/bin/udevadm"
   '';
 }
diff --git a/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index 90039d178027..0aeef02f32d1 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -4,37 +4,40 @@
 , fetchCrate
 , installShellFiles
 , makeWrapper
-, coreutils
+, pkg-config
+, libgit2
+, oniguruma
 , libiconv
-, zlib
 , Security
+, zlib
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.2.9";
+  version = "1.4.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-5tM8ywLBPPjCKEfXIfUZ5aF4t9YpYA3tzERxC1NEsso=";
+    sha256 = "sha256-6UveXa0rMWt5FbmhB0CsYRMGMXxL8FB/XivB4Ec93PY=";
   };
 
-  cargoHash = "sha256-P5ukwtRUpIJIqJjwTXIB2xRnpyLkzMeBMHmUz4Ery3s=";
+  cargoHash = "sha256-c6U1ZOaXZ7RnKD7q0WTkam9gL8SL/naSeHGbB5I82lk=";
 
   nativeBuildInputs = [
-    makeWrapper
     installShellFiles
+    makeWrapper
+    pkg-config
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
+  buildInputs = [ libgit2 oniguruma ] ++ lib.optionals stdenv.isDarwin [
     libiconv
     Security
     zlib
   ];
 
-  postPatch = ''
-    substituteInPlace src/verb/builtin.rs --replace '"/bin/' '"${coreutils}/bin/'
+  RUSTONIG_SYSTEM_LIBONIG = true;
 
+  postPatch = ''
     # Fill the version stub in the man page. We can't fill the date
     # stub reproducibly.
     substitute man/page man/broot.1 \
diff --git a/nixpkgs/pkgs/tools/misc/bsp-layout/default.nix b/nixpkgs/pkgs/tools/misc/bsp-layout/default.nix
new file mode 100644
index 000000000000..065c21e3f78e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/bsp-layout/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, lib, bspwm, makeWrapper, git, bc }:
+
+stdenv.mkDerivation rec {
+  pname = "bsp-layout";
+  version = "unstable-2021-05-10";
+
+  src = fetchFromGitHub {
+    owner = "phenax";
+    repo = pname;
+    rev = "726b850b79eabdc6f4d236cff52e434848cb55e3";
+    sha256 = "1wqlzbz7l9vz37gin2zckrnxkkabnd7x5mi9pb0x96w4yhld5mx6";
+  };
+
+  nativeBuildInputs = [ makeWrapper git bc ];
+  buildInputs = [ bspwm ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    substituteInPlace $out/bin/bsp-layout --replace 'bc ' '${bc}/bin/bc '
+  '';
+
+  meta = with lib; {
+    description = "Manage layouts in bspwm";
+    homepage = "https://github.com/phenax/bsp-layout";
+    license = licenses.mit;
+    maintainers = with maintainers; [ devins2518 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix b/nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix
new file mode 100644
index 000000000000..37e1be80e3c3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/bunnyfetch/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "bunnyfetch";
+  version = "unstable-2021-05-24";
+
+  src = fetchFromGitHub {
+    owner = "Mewyuna";
+    repo = pname;
+    rev = "7bcc45fb590b37f410e60af893e679eb0729ecb1";
+    sha256 = "1lgqrwmxdxd1d99rr0akydfwcsbcmz75fkbq9zrl842rksnp5q3r";
+  };
+
+  vendorSha256 = "1vv69y0x06kn99lw995sbkb7vgd0yb18flkr2ml8ss7q2yvz37vi";
+
+  # No upstream tests
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Tiny system info fetch utility";
+    homepage = "https://github.com/Mewyuna/bunnyfetch";
+    license = licenses.mit;
+    maintainers = with maintainers; [ devins2518 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/capture/default.nix b/nixpkgs/pkgs/tools/misc/capture/default.nix
index d858e0fbc461..d8b2fe676518 100644
--- a/nixpkgs/pkgs/tools/misc/capture/default.nix
+++ b/nixpkgs/pkgs/tools/misc/capture/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, slop, ffmpeg_3, fetchFromGitHub, makeWrapper}:
+{ lib, stdenv, slop, ffmpeg, fetchFromGitHub, makeWrapper}:
 
 stdenv.mkDerivation {
   pname = "capture-unstable";
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
     patchShebangs $out/bin/capture
     wrapProgram $out/bin/capture \
-      --prefix PATH : '${lib.makeBinPath [ slop ffmpeg_3 ]}'
+      --prefix PATH : '${lib.makeBinPath [ slop ffmpeg ]}'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/castty/default.nix b/nixpkgs/pkgs/tools/misc/castty/default.nix
index ddda737c8b5b..075c6d739b3f 100644
--- a/nixpkgs/pkgs/tools/misc/castty/default.nix
+++ b/nixpkgs/pkgs/tools/misc/castty/default.nix
@@ -13,7 +13,10 @@ stdenv.mkDerivation {
 
   buildInputs = [ libsoundio lame ];
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "PREFIX=$(out)"
+  ];
 
   meta = with lib; {
     description = "CLI tool to record audio-enabled screencasts of your terminal, for the web";
diff --git a/nixpkgs/pkgs/tools/misc/chafa/default.nix b/nixpkgs/pkgs/tools/misc/chafa/default.nix
index 51fbba8d706c..041d799307ec 100644
--- a/nixpkgs/pkgs/tools/misc/chafa/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chafa/default.nix
@@ -1,15 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, which, libxslt, libxml2, docbook_xml_dtd_412, docbook_xsl, glib, imagemagick, darwin }:
-
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, which
+, libxslt, libxml2, docbook_xml_dtd_412, docbook_xsl, glib, imagemagick
+, Foundation
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.6.0";
+  version = "1.6.1";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "sha256-GaXVMM23U3M+qNJrWYR+DLiCmILcuX5EIkQqzwN/l1Y=";
+    sha256 = "sha256-isQxeb7OQh4W8RvtKWXbKVYJ8LlfLiOkMJoPjsGFouM=";
   };
 
   nativeBuildInputs = [ autoconf
@@ -23,7 +25,8 @@ stdenv.mkDerivation rec {
                         docbook_xsl
                       ];
 
-  buildInputs = [ glib imagemagick ] ++ lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.ApplicationServices ];
+  buildInputs = [ glib imagemagick ]
+    ++ lib.optional stdenv.isDarwin Foundation;
 
   patches = [ ./xmlcatalog_patch.patch ];
 
diff --git a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
index cec900189c47..b7a717b5b2f3 100644
--- a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.0.10";
+  version = "2.0.13";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-WVG4rww9Wd1H6zw5lRBErX9VwnA21dhvith9BQFYqxw=";
+    sha256 = "sha256-ApgprU8PC5sn62D6eM1JG3s4DD2+e8SfyPpiC/6ANmQ=";
   };
 
-  vendorSha256 = "sha256-khYcNP3xAXeQR9vaghkGq8x6KB1k5hLEcE7Zx8H+CfA=";
+  vendorSha256 = "sha256-07v+JzOYtfaaL2M/z5FOWlhhaEwWwc0wui3RLynP5N8=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/cicero-tui/default.nix b/nixpkgs/pkgs/tools/misc/cicero-tui/default.nix
index dfc79e208ac1..72721020e129 100644
--- a/nixpkgs/pkgs/tools/misc/cicero-tui/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cicero-tui/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cicero-tui";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "eyeplum";
     repo = "cicero-tui";
     rev = "v${version}";
-    sha256 = "sha256-TNNPTKLO5qjSeCxWb7bB4yV1J4Seu+tBKNs0Oav/pPE=";
+    sha256 = "sha256-FwjD+BdRc8y/g5MQLmBB/qkUj33cywbH2wjTp0y0s8A=";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     freetype
   ];
 
-  cargoSha256 = "sha256-kzU+i5DLmZULdJPURz10URE5sMUG6eQg0pCoEiyfgco=";
+  cargoSha256 = "sha256-JygEE7K8swbFvJ2aDXs+INhfoLuhy+LY7T8AUr4lgJY=";
 
   meta = with lib; {
     description = "Unicode tool with a terminal user interface";
diff --git a/nixpkgs/pkgs/tools/misc/cloc/default.nix b/nixpkgs/pkgs/tools/misc/cloc/default.nix
index 3e18d3f4b54e..939c9f744f49 100644
--- a/nixpkgs/pkgs/tools/misc/cloc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cloc";
-  version = "1.88";
+  version = "1.90";
 
   src = fetchFromGitHub {
     owner = "AlDanial";
     repo = "cloc";
-    rev = version;
-    sha256 = "1ixgswzbzv63bl50gb2kgaqr0jcicjz6w610hi9fal1i7744zraw";
+    rev = "v${version}";
+    sha256 = "0ic9q6qqw5f1wafp9lpmhr0miasbdb9zr59c0jlymnzffdmnliyc";
   };
 
   setSourceRoot = ''
diff --git a/nixpkgs/pkgs/tools/misc/code-minimap/default.nix b/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
index 6a253a493fc4..560ad4604713 100644
--- a/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/code-minimap/default.nix
@@ -1,20 +1,24 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
+, libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "code-minimap";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5YNY0MRlKKX6u32Id6J7bIPSHRi44TISoKqpAS9T8ow=";
+    sha256 = "sha256-nWfvRrKkUrr2owv9sLgORVPYp68/Ibdu/P1VddMb61s=";
   };
 
-  cargoSha256 = "sha256-87aRZC4OE3UTVToHi5XDBxVqEH4oFeFR4REf69OBkIw=";
+  cargoSha256 = "sha256-OmWn6Z/r/gXMD4gp/TDo0Hokliq8Qgb354q8ZFpVG2s=";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description = "A high performance code minimap render";
diff --git a/nixpkgs/pkgs/tools/misc/cowsay/default.nix b/nixpkgs/pkgs/tools/misc/cowsay/default.nix
index d353115f24ea..095c8bab48f5 100644
--- a/nixpkgs/pkgs/tools/misc/cowsay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cowsay/default.nix
@@ -1,34 +1,46 @@
-{ lib, stdenv, fetchurl, perl }:
+{ lib, stdenv, perl, installShellFiles, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "3.03+dfsg2";
   pname = "cowsay";
+  version = "3.04";
 
-  src = fetchurl {
-    url = "http://http.debian.net/debian/pool/main/c/cowsay/cowsay_${version}.orig.tar.gz";
-    sha256 = "0ghqnkp8njc3wyqx4mlg0qv0v0pc996x2nbyhqhz66bbgmf9d29v";
+  src = fetchFromGitHub {
+    owner = "tnalpgge";
+    repo = "rank-amateur-cowsay";
+    rev = "cowsay-${version}";
+    sha256 = "sha256-9jCaQ6Um6Nl9j0/urrMCRcsGeubRN3VWD3jDM/AshRg=";
   };
 
   buildInputs = [ perl ];
 
-  postBuild = ''
+  nativeBuildInputs = [ installShellFiles ];
+
+  # overriding buildPhase because we don't want to use the install.sh script
+  buildPhase = ''
+    runHook preBuild;
     substituteInPlace cowsay --replace "%BANGPERL%" "!${perl}/bin/perl" \
       --replace "%PREFIX%" "$out"
+    runHook postBuild;
   '';
 
   installPhase = ''
-    mkdir -p $out/{bin,man/man1,share/cows}
-    install -m755 cowsay $out/bin/cowsay
-    ln -s cowsay $out/bin/cowthink
-    install -m644 cowsay.1 $out/man/man1/cowsay.1
-    ln -s cowsay.1 $out/man/man1/cowthink.1
-    install -m644 cows/* -t $out/share/cows/
+    runHook preInstall
+    install -Dm755 cowsay $out/bin/cowsay
+    ln -s $out/bin/cowsay $out/bin/cowthink
+
+    installManPage cowsay.1
+    ln -s $man/share/man/man1/cowsay.1.gz $man/share/man/man1/cowthink.1.gz
+
+    install -Dm644 cows/* -t $out/share/cows/
+    runHook postInstall
   '';
 
+  outputs = [ "out" "man" ];
+
   meta = with lib; {
     description = "A program which generates ASCII pictures of a cow with a message";
-    homepage = "https://en.wikipedia.org/wiki/Cowsay";
-    license = licenses.gpl1;
+    homepage = "https://github.com/tnalpgge/rank-amateur-cowsay";
+    license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.rob ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/cpulimit/default.nix b/nixpkgs/pkgs/tools/misc/cpulimit/default.nix
index 27e661e26970..7fdaa319619d 100644
--- a/nixpkgs/pkgs/tools/misc/cpulimit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cpulimit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cpulimit";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/limitcpu/${pname}-${version}.tar.gz";
-    sha256 = "0xf0r6zxaqan1drz61nqf95p2pkiiihpvrjhrr9dx9j3vswyx31g";
+    sha256 = "sha256-HeBApPikDf6MegJf6YB1ZzRo+8P8zMvCMbx0AvYuxKA=";
   };
 
   buildFlags = with stdenv; [ (
diff --git a/nixpkgs/pkgs/tools/misc/czkawka/default.nix b/nixpkgs/pkgs/tools/misc/czkawka/default.nix
index 29748f781be3..8bca39c2ad52 100644
--- a/nixpkgs/pkgs/tools/misc/czkawka/default.nix
+++ b/nixpkgs/pkgs/tools/misc/czkawka/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "czkawka";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "qarmin";
     repo = pname;
     rev = version;
-    sha256 = "1g5a9ns5lkiyk6hjsh08hgs41538dzj0a4lgn2c5cbad5psl0xa6";
+    sha256 = "sha256-LtGgpfToQUNKM1hmMPW7UrS/n7iyI+dz2vbSo+GOcRg=";
   };
 
-  cargoSha256 = "11ym2d7crp12w91111s3rv0gklkg2bzlq9g24cws4h7ipi0zfx5h";
+  cargoSha256 = "sha256-ZbyoCo1n4GRBkb5SClby5V51rLN1PnvCHD30TiJU2gY=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/misc/dateutils/default.nix b/nixpkgs/pkgs/tools/misc/dateutils/default.nix
index 9ef68a590c27..e6793813b2be 100644
--- a/nixpkgs/pkgs/tools/misc/dateutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dateutils/default.nix
@@ -1,21 +1,14 @@
 { lib, stdenv, fetchurl, autoreconfHook, tzdata, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.7";
+  version = "0.4.8";
   pname = "dateutils";
 
   src = fetchurl {
     url = "https://bitbucket.org/hroptatyr/dateutils/downloads/${pname}-${version}.tar.xz";
-    sha256 = "16jr9yjk8wgzfh22hr3z6mp4jm3fkacyibds4jj5xx5yymbm8wj9";
+    sha256 = "0061f36axskm7yq9cp64x5a5phil8d3zgcd668nfmqzk9ji58w1z";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://bitbucket.org/hroptatyr/dateutils/commits/6813ed94534f2311fbe9164748919e39d60b0190/raw";
-      sha256 = "1zs3iizb172ha56g03rr8kzd8zx6qypiqsc11jw758mliwxk5rgc";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ tzdata ]; # needed for datezone
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix b/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
index 41f2bede9995..b7d0f2c3aad9 100644
--- a/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddccontrol";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "ddccontrol";
     repo = "ddccontrol";
-    rev = "0.5.1";
-    sha256 = "sha256-e6Rzzz5S+Um2ZBuUkfAJQA4V+zqCqsUHB0f1t/dTU2w=";
+    rev = "0.5.2";
+    sha256 = "sha256-kul0sjbwbCwadvrccG3KwL/fKWACFUg74QGvgfWE4FQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix b/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
index b2e753342d98..858c114f68c8 100644
--- a/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, unzip, xz, dpkg
+{lib, stdenv, fetchurl, xz, dpkg
 , libxslt, docbook_xsl, makeWrapper
 , python3Packages
 , perlPackages, curl, gnupg, diffutils
@@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
     sha256 = "0xy1nvqrnifx46g8ch69pk31by0va6hn10wpi1fkrsrgncanjjh1";
   };
 
-  nativeBuildInputs = [ makeWrapper unzip ];
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ xz dpkg libxslt python setuptools curl gnupg diffutils ] ++
     (with perlPackages; [ perl CryptSSLeay LWP TimeDate DBFile FileDesktopEntry ParseDebControl LWPProtocolHttps ]);
 
diff --git a/nixpkgs/pkgs/tools/misc/debianutils/default.nix b/nixpkgs/pkgs/tools/misc/debianutils/default.nix
index d9fc2a407124..8ea8855a100e 100644
--- a/nixpkgs/pkgs/tools/misc/debianutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/debianutils/default.nix
@@ -20,6 +20,5 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2Plus publicDomain smail ];
     maintainers = [];
     platforms = platforms.all;
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/debootstrap/default.nix b/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
index ea60887ebfab..b75f31c61720 100644
--- a/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
+++ b/nixpkgs/pkgs/tools/misc/debootstrap/default.nix
@@ -15,13 +15,13 @@ let binPath = lib.makeBinPath [
   ];
 in stdenv.mkDerivation rec {
   pname = "debootstrap";
-  version = "1.0.123";
+  version = "1.0.124";
 
   src = fetchurl {
     # git clone git://git.debian.org/d-i/debootstrap.git
     # I'd like to use the source. However it's lacking the lanny script ? (still true?)
     url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.gz";
-    sha256 = "0a53dhfwa74vdhqd6kbl7zlm7iic37c6wkdclppf0syxxi3q2njy";
+    sha256 = "sha256-dwDphksp8WaybFQVPtjCdbRvS5pgRou2B+AZpkwWzY8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/depotdownloader/default.nix b/nixpkgs/pkgs/tools/misc/depotdownloader/default.nix
new file mode 100644
index 000000000000..384234f1f9c2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/depotdownloader/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, lib, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper
+,  dotnet-sdk_5, dotnetPackages
+}:
+
+let
+  fetchNuGet = {name, version, sha256}: fetchurl {
+    name = "nuget-${name}-${version}.nupkg";
+    url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+    inherit sha256;
+  };
+  deps = import ./deps.nix fetchNuGet;
+in
+stdenv.mkDerivation rec {
+  pname = "depotdownloader";
+  version = "2.4.1";
+
+  src = fetchFromGitHub {
+    owner = "SteamRE";
+    repo = "DepotDownloader";
+    rev = "DepotDownloader_${version}";
+    sha256 = "1ldwda7wyvzqvqv1wshvqvqaimlm0rcdzhy9yn5hvxyswc0jxirr";
+  };
+
+  nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget makeWrapper ];
+
+  buildPhase = ''
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_NOLOGO=1
+    export HOME=$TMP/home
+
+    nuget sources Add -Name tmpsrc -Source $TMP/nuget
+    nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
+
+    dotnet restore --source $TMP/nuget DepotDownloader/DepotDownloader.csproj
+    dotnet publish --no-restore -c Release --output $out
+  '';
+
+  installPhase = ''
+    makeWrapper ${dotnet-sdk_5}/bin/dotnet $out/bin/$pname \
+      --add-flags $out/DepotDownloader.dll
+  '';
+
+  meta = with lib; {
+    description = "Steam depot downloader utilizing the SteamKit2 library.";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.babbaj ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix b/nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix
new file mode 100644
index 000000000000..6f061186f826
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/depotdownloader/deps.nix
@@ -0,0 +1,88 @@
+fetchNuGet:
+[
+  (fetchNuGet {
+    name = "protobuf-net";
+    version = "3.0.101";
+    sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf";
+  })
+  (fetchNuGet {
+    name = "SteamKit2";
+    version = "2.4.0-Alpha.2";
+    sha256 = "1r6chqdp912pr8f8d7px2vp4y1ydx0kida7d5a1hbf6b7acnsg7d";
+  })
+  (fetchNuGet {
+    name = "protobuf-net.Core";
+    version = "3.0.101";
+    sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App";
+    version = "2.0.0";
+    sha256 = "0j8xkssrashyxrmdraci6kmj2gdrdxb0z61jwnzf1r9r2kqrd7d2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetAppHost";
+    version = "2.0.0";
+    sha256 = "0yixdk1rslbznrl50d6pyhg50xxr6jbfb1qpy2yd8xv44s4shgwd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetHostPolicy";
+    version = "2.0.0";
+    sha256 = "1zz9yfzcvcai4il78s3phjp1hryib2zk3w2r16v3fxm2yllssyaf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetHostResolver";
+    version = "2.0.0";
+    sha256 = "0xy45xqmdqz7r6v0g8m7c1rp761ghavjl8nzxiyrpbp0wccxl3xb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "5.0.0";
+    sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "5.0.0";
+    sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.0";
+    sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.7.1";
+    sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.4";
+    sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.7.0";
+    sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.7.0";
+    sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.3";
+    sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "5.0.0";
+    sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "5.0.0";
+    sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8";
+  })
+]
diff --git a/nixpkgs/pkgs/tools/misc/dgoss/default.nix b/nixpkgs/pkgs/tools/misc/dgoss/default.nix
new file mode 100644
index 000000000000..5af576b3877a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/dgoss/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, resholvePackage
+, substituteAll
+, bash
+, coreutils
+, goss
+, which
+}:
+
+resholvePackage rec {
+  pname = "dgoss";
+  version = "0.3.16";
+
+  src = fetchFromGitHub {
+    owner = "aelsabbahy";
+    repo = "goss";
+    rev = "v${version}";
+    sha256 = "1m5w5vwmc9knvaihk61848rlq7qgdyylzpcwi64z84rkw8qdnj6p";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    sed -i '2i GOSS_PATH=${goss}/bin/goss' extras/dgoss/dgoss
+    install -D extras/dgoss/dgoss $out/bin/dgoss
+  '';
+
+  solutions = {
+    default = {
+      scripts = [ "bin/dgoss" ];
+      interpreter = "${bash}/bin/bash";
+      inputs = [ coreutils which ];
+      fake = {
+        external = [ "docker" ];
+      };
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/aelsabbahy/goss/blob/v${version}/extras/dgoss/README.md";
+    description = "Convenience wrapper around goss that aims to bring the simplicity of goss to docker containers";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hyzual ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index 086c1a2b5404..e57caa8cc7f8 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -2,7 +2,7 @@
 , abootimg, acl, apktool, binutils-unwrapped, build-tools, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
 , e2fsprogs, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
 , gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, openssl, pdftk, pgpdump, poppler_utils, qemu, R
-, sng, sqlite, squashfsTools, tcpdump, odt2txt, unzip, wabt, xxd, xz, zip, zstd
+, radare2, sng, sqlite, squashfsTools, tcpdump, odt2txt, unzip, wabt, xxd, xz, zip, zstd
 , enableBloat ? false
 }:
 
@@ -16,11 +16,11 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "171";
+  version = "177";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-8PUFKwSWf84ics4w9yrCWMYgzzNF5z1kNn7LnksfCtA=";
+    sha256 = "sha256-yTOaDhAKtMhQYxolALnuc7FuXoMUOhjmsabtS1FeW/Q=";
   };
 
   outputs = [ "out" "man" ];
@@ -56,7 +56,7 @@ python3Packages.buildPythonApplication rec {
     ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit ]
     ++ lib.optionals enableBloat ([
       abootimg apksigner apktool cbfstool colord ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
-      hdf5 imagemagick llvm jdk mono odt2txt openssh pdftk poppler_utils qemu R tcpdump wabt
+      hdf5 imagemagick llvm jdk mono odt2txt openssh pdftk poppler_utils qemu R tcpdump wabt radare2
     ] ++ (with python3Packages; [ binwalk guestfs h5py ]));
 
   checkInputs = with python3Packages; [ pytestCheckHook ] ++ pythonPath;
diff --git a/nixpkgs/pkgs/tools/misc/dijo/default.nix b/nixpkgs/pkgs/tools/misc/dijo/default.nix
index 737057059938..9a6bd7999212 100644
--- a/nixpkgs/pkgs/tools/misc/dijo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dijo/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage {
     rev = "v${version}";
     sha256 = "sha256-g+A8BJxqoAvm9LTLrLnClVGtFJCQ2gT0mDGAov/6vXE=";
   };
-  cargoSha256 = "sha256-3V94bOixYMznkCQu90+E/68Sfl9GvHp9LNxwWwk4xZQ=";
+  cargoSha256 = "sha256-o3+KcE7ozu6eUgwsOSr9DOoIo+/BZ3bJZe+WYQLXHpY=";
 
   meta = with lib; {
     description = "Scriptable, curses-based, digital habit tracker";
diff --git a/nixpkgs/pkgs/tools/misc/discocss/default.nix b/nixpkgs/pkgs/tools/misc/discocss/default.nix
index 43214c866302..2e0506bf4209 100644
--- a/nixpkgs/pkgs/tools/misc/discocss/default.nix
+++ b/nixpkgs/pkgs/tools/misc/discocss/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "discocss";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitHub {
     owner = "mlvzk";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1818jca3sw2ngw1n488q82w5rakx4cxgknnkmsaa0sz4h8gldfy8";
+    sha256 = "sha256-EdkcTVDFQppBeAoyM5hMMIK0d4B87JyVlmCW7zlGfDs=";
   };
 
   dontBuild = true;
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
     description = "A tiny Discord css-injector";
     homepage = "https://github.com/mlvzk/discocss";
     license = licenses.mpl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ mlvzk ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/diskonaut/default.nix b/nixpkgs/pkgs/tools/misc/diskonaut/default.nix
index 0fb316851702..058a0d1ad6f4 100644
--- a/nixpkgs/pkgs/tools/misc/diskonaut/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diskonaut/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1pmbag3r2ka30zmy2rs9jps2qxj2zh0gy4a774v9yhf0b6qjid54";
   };
 
-  cargoSha256 = "0y86ikf235lp5j85fgzawgp4vx66rmzqd6p5n8iy3mqwn3c1ggb8";
+  cargoSha256 = "10jrcy8m9ll4136ghq3fhmnphd9g3rw863x708vm17n44kgdxyab";
 
   meta = with lib; {
     description = "Terminal disk space navigator";
diff --git a/nixpkgs/pkgs/tools/misc/diskus/default.nix b/nixpkgs/pkgs/tools/misc/diskus/default.nix
index ff5ade2e67ae..a645525da27c 100644
--- a/nixpkgs/pkgs/tools/misc/diskus/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diskus/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0bivmjn7h4lfp5azbc6q0xiqq3fk68jdd4kwrwgbxiljg4xd2qy8";
+  cargoSha256 = "1irgj8kna4mwrp91s3ccbfwv2kdkjl89865y88s8v6zd9wzj3c8q";
 
   meta = with lib; {
     description = "A minimal, fast alternative to 'du -sh'";
diff --git a/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix b/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
index d4ad2dffd82e..52038c8efa9c 100644
--- a/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dpt-rp1-py/default.nix
@@ -1,13 +1,13 @@
 { lib, python3Packages, fetchFromGitHub }:
 python3Packages.buildPythonApplication rec {
   pname = "dpt-rp1-py";
-  version = "0.1.12";
+  version = "0.1.13";
 
   src = fetchFromGitHub {
     owner = "janten";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xw853s5bx2lr57w6ldfjzi1ppc6px66zd7hzk8y2kg82q6bnasq";
+    sha256 = "1jgkfn5kfnx98xs0dmym1h9mv1mrzlglk7x0fzs2jlc56c18w9dk";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/misc/dua/default.nix b/nixpkgs/pkgs/tools/misc/dua/default.nix
index f0bb6905b43c..32c5d3b47457 100644
--- a/nixpkgs/pkgs/tools/misc/dua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dua/default.nix
@@ -1,14 +1,16 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.11.1";
+  version = "2.13.0";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "sha256-pjFApZQJqw0fJmJteO7VZWRLogV3rO5XDagZd1MliZg=";
+    sha256 = "sha256-gJOEMp2Ex9gBsvYOmIKH7WNLQejiJhY8wnw2JYxcUU4=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -16,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "sha256-xsTScRAu0SF1xtjUwBtNJUNIItoR0jjEd2CuSmmeh9c=";
+  cargoSha256 = "sha256-cN5rURv1RmesLzwm3ZXyGJXxvFeIbpTb6kWzJSKgX5o=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/duc/default.nix b/nixpkgs/pkgs/tools/misc/duc/default.nix
index 570535f80e4a..b5fe5074d7e5 100644
--- a/nixpkgs/pkgs/tools/misc/duc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/duc/default.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
 
     platforms = platforms.all;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/dust/default.nix b/nixpkgs/pkgs/tools/misc/dust/default.nix
index 781ee30debaa..b16f990cbefc 100644
--- a/nixpkgs/pkgs/tools/misc/dust/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dust/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "sha256-DVcjczH7i+R2xs9pEaek4zHYHO90G7fVF7yFUPCWLmU=";
+  cargoSha256 = "sha256-M/CGsjhErZe4sFs6D5ZW+TWOHVkFtXgidME/GYiM6qA=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/entr/default.nix b/nixpkgs/pkgs/tools/misc/entr/default.nix
index 5d8d0d942010..dd5d960085b1 100644
--- a/nixpkgs/pkgs/tools/misc/entr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "entr";
-  version = "4.8";
+  version = "4.9";
 
   src = fetchurl {
     url = "https://eradman.com/entrproject/code/${pname}-${version}.tar.gz";
-    sha256 = "1bi5fhr93n72pkap4mqsjd1pwnqjf6czg359c5xwczavfk6mamgh";
+    sha256 = "sha256-4lak0vvkb2EyRggzukR+ZdfzW6nQsmXnxBUDl8xEBaI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/esphome/default.nix b/nixpkgs/pkgs/tools/misc/esphome/default.nix
index dba1b4b44909..fe02fe0d5219 100644
--- a/nixpkgs/pkgs/tools/misc/esphome/default.nix
+++ b/nixpkgs/pkgs/tools/misc/esphome/default.nix
@@ -1,36 +1,60 @@
-{ lib, python3, platformio, esptool, git, protobuf3_12, fetchpatch }:
-
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      protobuf = super.protobuf.override {
-        protobuf = protobuf3_12;
-      };
-    };
-  };
+{ lib
+, python3
+, fetchFromGitHub
+, platformio
+, esptool
+, git
+}:
 
-in python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "1.16.0";
+  version = "1.18.0";
 
-  src = python.pkgs.fetchPypi {
-    inherit pname version;
-    sha256 = "0pvwzkdcpjqdf7lh1k3xv1la5v60lhjixzykapl7f2xh71fbm144";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1vz3d59wfqssfv1kvd4minlxibr0id06xfyg8956w9s3b22jc5vq";
   };
 
-  ESPHOME_USE_SUBPROCESS = "";
-
-  propagatedBuildInputs = with python.pkgs; [
-    voluptuous pyyaml paho-mqtt colorlog colorama
-    tornado protobuf tzlocal pyserial ifaddr
-    protobuf click
-  ];
-
-  # remove all version pinning (E.g tornado==5.1.1 -> tornado)
   postPatch = ''
+    # remove all version pinning (E.g tornado==5.1.1 -> tornado)
     sed -i -e "s/==[0-9.]*//" requirements.txt
+
+    # drop coverage testing
+    sed -i '/--cov/d' pytest.ini
+
+    # migrate use of hypothesis internals to be compatible with hypothesis>=5.32.1
+    # https://github.com/esphome/issues/issues/2021
+    substituteInPlace tests/unit_tests/strategies.py --replace \
+      "@st.defines_strategy_with_reusable_values" \
+      "@st.defines_strategy(force_reusable_values=True)"
   '';
 
+  # Remove esptool and platformio from requirements
+  ESPHOME_USE_SUBPROCESS = "";
+
+  # esphome has optional dependencies it does not declare, they are
+  # loaded when certain config blocks are used, like `font`, `image`
+  # or `animation`.
+  # They have validation functions like:
+  # - validate_cryptography_installed
+  # - validate_pillow_installed
+  propagatedBuildInputs = with python3.pkgs; [
+    click
+    colorama
+    cryptography
+    ifaddr
+    paho-mqtt
+    pillow
+    protobuf
+    pyserial
+    pyyaml
+    tornado
+    tzlocal
+    voluptuous
+  ];
+
   makeWrapperArgs = [
     # platformio is used in esphomeyaml/platformio_api.py
     # esptool is used in esphomeyaml/__main__.py
@@ -39,16 +63,25 @@ in python.pkgs.buildPythonApplication rec {
     "--set ESPHOME_USE_SUBPROCESS ''"
   ];
 
-  # Platformio will try to access the network
-  # Instead, run the executable
-  checkPhase = ''
+  checkInputs = with python3.pkgs; [
+    hypothesis
+    mock
+    pytest-mock
+    pytest-sugar
+    pytestCheckHook
+  ];
+
+  postCheck = ''
     $out/bin/esphome --help > /dev/null
   '';
 
   meta = with lib; {
     description = "Make creating custom firmwares for ESP32/ESP8266 super easy";
     homepage = "https://esphome.io/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda globin elseym ];
+    license = with licenses; [
+      mit # The C++/runtime codebase of the ESPHome project (file extensions .c, .cpp, .h, .hpp, .tcc, .ino)
+      gpl3Only # The python codebase and all other parts of this codebase
+    ];
+    maintainers = with maintainers; [ globin elseym hexa ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/etcher/default.nix b/nixpkgs/pkgs/tools/misc/etcher/default.nix
index 0f68137066ed..9bda86db9bf2 100644
--- a/nixpkgs/pkgs/tools/misc/etcher/default.nix
+++ b/nixpkgs/pkgs/tools/misc/etcher/default.nix
@@ -2,18 +2,16 @@
 , fetchurl
 , gcc-unwrapped
 , dpkg
-, polkit
 , util-linux
 , bash
-, nodePackages
 , makeWrapper
-, electron_7
+, electron_12
 }:
 
 let
   sha256 = {
-    "x86_64-linux" = "1yvqi86bw0kym401zwknhwq9041fxg047sbj3aydnfcqf11vrrmk";
-    "i686-linux" = "12lghzhsl16h3jvzm3vw4hrly32fz99z6rdmybl8viralrxy8mb8";
+    "x86_64-linux" = "sha256-nGIUOS4LzfeXamcT0uigbQsVkULH2R3bli0DDEpg3ns=";
+    "i686-linux" = "0z6y45sz086njpywg7f0jn6n02qynb1qbi889g2kcgwbfjvmcpm1";
   }."${stdenv.system}";
 
   arch = {
@@ -21,39 +19,36 @@ let
     "i686-linux" = "i386";
   }."${stdenv.system}";
 
-  electron = electron_7;
+  electron = electron_12;
 
 in
 
 stdenv.mkDerivation rec {
   pname = "etcher";
-  version = "1.5.86";
+  version = "1.5.120";
 
   src = fetchurl {
     url = "https://github.com/balena-io/etcher/releases/download/v${version}/balena-etcher-electron_${version}_${arch}.deb";
     inherit sha256;
   };
 
-  dontBuild = true;
-  dontConfigure = true;
-
   nativeBuildInputs = [ makeWrapper ];
 
+  dontConfigure = true;
+  dontBuild = true;
+
   unpackPhase = ''
     ${dpkg}/bin/dpkg-deb -x $src .
   '';
 
   # sudo-prompt has hardcoded binary paths on Linux and we patch them here
   # along with some other paths
-  patchPhase = ''
-    ${nodePackages.asar}/bin/asar extract opt/balenaEtcher/resources/app.asar tmp
+  postPatch = ''
     # use Nix(OS) paths
-    sed -i "s|/usr/bin/pkexec|/usr/bin/pkexec', '/run/wrappers/bin/pkexec|" tmp/node_modules/sudo-prompt/index.js
-    sed -i 's|/bin/bash|${bash}/bin/bash|' tmp/node_modules/sudo-prompt/index.js
-    sed -i "s|'lsblk'|'${util-linux}/bin/lsblk'|" tmp/node_modules/drivelist/js/lsblk/index.js
-    sed -i "s|process.resourcesPath|'$out/share/${pname}/resources/'|" tmp/generated/gui.js
-    ${nodePackages.asar}/bin/asar pack tmp opt/balenaEtcher/resources/app.asar
-    rm -rf tmp
+    substituteInPlace opt/balenaEtcher/resources/app/generated/gui.js \
+      --replace '/usr/bin/pkexec' '/usr/bin/pkexec", "/run/wrappers/bin/pkexec' \
+      --replace '/bin/bash' '${bash}/bin/bash' \
+      --replace '"lsblk"' '"${util-linux}/bin/lsblk"'
   '';
 
   installPhase = ''
@@ -64,15 +59,12 @@ stdenv.mkDerivation rec {
     cp -a usr/share/* $out/share
     cp -a opt/balenaEtcher/{locales,resources} $out/share/${pname}
 
-    substituteInPlace $out/share/applications/balena-etcher-electron.desktop \
-      --replace 'Exec=/opt/balenaEtcher/balena-etcher-electron' 'Exec=${pname}'
-
     runHook postInstall
   '';
 
   postFixup = ''
     makeWrapper ${electron}/bin/electron $out/bin/${pname} \
-      --add-flags $out/share/${pname}/resources/app.asar \
+      --add-flags $out/share/${pname}/resources/app \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
   '';
 
diff --git a/nixpkgs/pkgs/tools/misc/ethminer/default.nix b/nixpkgs/pkgs/tools/misc/ethminer/default.nix
index 7d2cb5c7ff2c..675147bc5d57 100644
--- a/nixpkgs/pkgs/tools/misc/ethminer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ethminer/default.nix
@@ -1,6 +1,6 @@
 {
   lib,
-  clangStdenv,
+  stdenv,
   fetchFromGitHub,
   opencl-headers,
   cmake,
@@ -8,6 +8,7 @@
   boost,
   makeWrapper,
   cudatoolkit,
+  cudaSupport,
   mesa,
   ethash,
   opencl-info,
@@ -17,20 +18,16 @@
   cli11
 }:
 
-# Note that this requires clang < 9.0 to build, and currently
-# clangStdenv provides clang 7.1 which satisfies the requirement.
-let stdenv = clangStdenv;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "ethminer";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src =
     fetchFromGitHub {
       owner = "ethereum-mining";
       repo = "ethminer";
       rev = "v${version}";
-      sha256 = "10b6s35axmx8kyzn2vid6l5nnzcaf4nkk7f5f7lg3cizv6lsj707";
+      sha256 = "1kyff3vx2r4hjpqah9qk99z6dwz7nsnbnhhl6a76mdhjmgp1q646";
       fetchSubmodules = true;
     };
 
@@ -41,7 +38,11 @@ in stdenv.mkDerivation rec {
     "-DAPICORE=ON"
     "-DETHDBUS=OFF"
     "-DCMAKE_BUILD_TYPE=Release"
-  ];
+  ] ++ (if cudaSupport then [
+    "-DCUDA_PROPAGATE_HOST_FLAGS=off"
+  ] else [
+    "-DETHASHCUDA=OFF" # on by default
+  ]);
 
   nativeBuildInputs = [
     cmake
@@ -54,12 +55,13 @@ in stdenv.mkDerivation rec {
     boost
     opencl-headers
     mesa
-    cudatoolkit
     ethash
     opencl-info
     ocl-icd
     openssl
     jsoncpp
+  ] ++ lib.optionals cudaSupport [
+    cudatoolkit
   ];
 
   preConfigure = ''
@@ -71,10 +73,10 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Ethereum miner with OpenCL, CUDA and stratum support";
+    description = "Ethereum miner with OpenCL${lib.optionalString cudaSupport ", CUDA"} and stratum support";
     homepage = "https://github.com/ethereum-mining/ethminer";
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ nand0p ];
-    license = licenses.gpl2;
+    maintainers = with maintainers; [ atemu ];
+    license = licenses.gpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/eva/default.nix b/nixpkgs/pkgs/tools/misc/eva/default.nix
index 253e815008a7..b16c046d2037 100644
--- a/nixpkgs/pkgs/tools/misc/eva/default.nix
+++ b/nixpkgs/pkgs/tools/misc/eva/default.nix
@@ -4,7 +4,7 @@ rustPlatform.buildRustPackage rec {
   pname = "eva";
   version = "0.2.7";
 
-  cargoSha256 = "1lycjw5i169xx73qw8gknbakrxikdbr65fmqx7xq2mafc0hb1zyn";
+  cargoSha256 = "08wm34rd03m5kd2zar23yhvi66kalzdqkgd6cqa1nq0ra4agnan7";
 
   src = fetchFromGitHub {
     owner = "NerdyPepper";
diff --git a/nixpkgs/pkgs/tools/misc/fd/default.nix b/nixpkgs/pkgs/tools/misc/fd/default.nix
index ec5dda52a189..9b0c44c3bf5c 100644
--- a/nixpkgs/pkgs/tools/misc/fd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fd/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "00vlifbri021z8nf7xvbaay8mqvnq58h19va9bqr5lhsqj1f82wq";
   };
 
-  cargoSha256 = "0jyqnl6rski1vv2ah21xmwai3rfb542mv14laws4kc2wh63k68i4";
+  cargoSha256 = "0n6xqd30b8aiqrvqrmy7q56nh62nx2j1a3yq2dlpc19i2mfw2qd8";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/fend/default.nix b/nixpkgs/pkgs/tools/misc/fend/default.nix
index 6028140234e4..ceaee9746af9 100644
--- a/nixpkgs/pkgs/tools/misc/fend/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fend/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fend";
-  version = "0.1.14";
+  version = "0.1.16";
 
   src = fetchFromGitHub {
     owner = "printfn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zKjYUkkm15YRF0YFJKi2A6twvmHuEyxdWcNs37r2dJg=";
+    sha256 = "sha256-ITS2wE4vwp0W/nlTyX55cY5E95VIwR46JBzF0pD/xsE=";
   };
 
-  cargoSha256 = "sha256-e95DRhD22zvizUJOM2It45Bx05iK3KtaMgFPkMbR7iI=";
+  cargoSha256 = "sha256-YqOc/B+ZP1i9xJLrOguQ6fwQr6SV0qvQ3fWwguY2S0I=";
 
   doInstallCheck = true;
 
diff --git a/nixpkgs/pkgs/tools/misc/fetchutils/default.nix b/nixpkgs/pkgs/tools/misc/fetchutils/default.nix
new file mode 100644
index 000000000000..e9ee3fba516d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fetchutils/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub, bash, scdoc }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "fetchutils";
+  version = "unstable-2021-03-16";
+
+  src = fetchFromGitHub {
+    owner = "kiedtl";
+    repo = pname;
+    rev = "882781a297e86f4ad4eaf143e0777fb3e7c69526";
+    sha256 = "sha256-ONrVZC6GBV5v3TeBekW9ybZjDHF3FNyXw1rYknqKRbk=";
+  };
+
+  buildInputs = [ bash scdoc ];
+
+  installFlags = [ "PREFIX=$(out)/" ];
+
+  postPatch = ''
+    patchShebangs --host src/*
+  '';
+
+  meta = with lib; {
+    description = "A collection of small shell utilities to fetch system information";
+    homepage = "https://github.com/lptstr/fetchutils";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/ffsend/default.nix b/nixpkgs/pkgs/tools/misc/ffsend/default.nix
index ff1c4c7b8922..aea480ac0464 100644
--- a/nixpkgs/pkgs/tools/misc/ffsend/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ffsend/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitLab, rustPlatform, cmake, pkg-config, openssl
-, darwin, installShellFiles
+, installShellFiles
+, CoreFoundation, CoreServices, Security, AppKit, libiconv
 
 , x11Support ? stdenv.isLinux || stdenv.hostPlatform.isBSD
 , xclip ? null, xsel ? null
@@ -16,20 +17,20 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "ffsend";
-  version = "0.2.71";
+  version = "0.2.72";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "ffsend";
     rev = "v${version}";
-    sha256 = "sha256-dXFnM8085XVzUwk1e3SoO+O+z9lJ40htJzHBGRQ95XY=";
+    sha256 = "sha256-YEmEaf0ob2ulmQghwDYi0RtGuTdRHCoLdPnuVjxvlxE=";
   };
 
-  cargoSha256 = "sha256-VwxIH/n1DjZsMOLAREclqanb4q7QEOZ35KWWciyrnyQ=";
+  cargoSha256 = "sha256-mcWQzfMc2cJjp0EFcfG7SAM70ItwEC/N13UDiRiI3ys=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
   buildInputs =
-    if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices Security AppKit ])
+    if stdenv.isDarwin then [ libiconv CoreFoundation CoreServices Security AppKit ]
     else [ openssl ];
 
   preBuild = lib.optionalString (x11Support && usesX11) (
diff --git a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
index 8b751237f6e7..89435e769896 100644
--- a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.7.3";
+  version = "1.7.5";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "sha256-a3AVem+VbYKUsxAzGNu/VPqDiqG99bmj9p1/iiG1ZFw=";
+    sha256 = "sha256-n7X6VlNZVsL+Tn9t3L4mTblVjPTKgTMmcRdkDGPXI8U=";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/nixpkgs/pkgs/tools/misc/foma/default.nix b/nixpkgs/pkgs/tools/misc/foma/default.nix
index 2bde606adbe6..e75aaca50f6e 100644
--- a/nixpkgs/pkgs/tools/misc/foma/default.nix
+++ b/nixpkgs/pkgs/tools/misc/foma/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, zlib, flex, bison, readline }:
+{ lib, stdenv, fetchFromGitHub, zlib, flex, bison, readline, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "foma";
@@ -13,9 +13,14 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "source/foma";
 
-  nativeBuildInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison ]
+    ++ lib.optional stdenv.isDarwin darwin.cctools;
   buildInputs = [ zlib readline ];
 
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
   patchPhase = ''
     substituteInPlace Makefile \
       --replace '-ltermcap' ' ' \
diff --git a/nixpkgs/pkgs/tools/misc/fontfor/default.nix b/nixpkgs/pkgs/tools/misc/fontfor/default.nix
index c77809ece1ed..73d1085450e8 100644
--- a/nixpkgs/pkgs/tools/misc/fontfor/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fontfor/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     freetype
   ];
 
-  cargoSha256 = "194c4knjfb3pnpvw3zl1srwx3q1jp6z78vzln0q2mk5nf0a35yy0";
+  cargoSha256 = "1drfrq32lvmi1xlshynzh66gb1cah43pqcyxv3qxp487br9w1iyj";
 
   meta = with lib; {
     description = "Find fonts which can show a specified character and preview them in browser";
diff --git a/nixpkgs/pkgs/tools/misc/fontforge/default.nix b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
index 89bd0f0491ee..5f64057c46c3 100644
--- a/nixpkgs/pkgs/tools/misc/fontforge/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchpatch, fetchFromGitHub, lib
 , cmake, perl, uthash, pkg-config, gettext
-, python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
+, python, freetype, zlib, glib, giflib, libpng, libjpeg, libtiff, libxml2, cairo, pango
 , readline, woff2, zeromq, libuninameslist
 , withSpiro ? false, libspiro
 , withGTK ? false, gtk3
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [
     readline uthash woff2 zeromq libuninameslist
-    python freetype zlib glib libungif libpng libjpeg libtiff libxml2
+    python freetype zlib glib giflib libpng libjpeg libtiff libxml2
   ]
     ++ lib.optionals withSpiro [libspiro]
     ++ lib.optionals withGUI [ gtk3 cairo pango ]
diff --git a/nixpkgs/pkgs/tools/misc/fortune/default.nix b/nixpkgs/pkgs/tools/misc/fortune/default.nix
index cbb5eae84877..350e28428d4b 100644
--- a/nixpkgs/pkgs/tools/misc/fortune/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fortune/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fortune-mod";
-  version = "3.4.1";
+  version = "3.6.1";
 
   # We use fetchurl instead of fetchFromGitHub because the release pack has some
   # special files.
   src = fetchurl {
     url = "https://github.com/shlomif/fortune-mod/releases/download/${pname}-${version}/${pname}-${version}.tar.xz";
-    sha256 = "02hjf432mq5qpbf1hywid7b356jys5n9brrrmm6z6r05jpzybbg3";
+    sha256 = "1cw7xf9xhh6d73y4h4q57g6akjhc1gq6xv37k57sx0wx77wjxqdp";
   };
 
   nativeBuildInputs = [ cmake perl ];
diff --git a/nixpkgs/pkgs/tools/misc/freshfetch/Cargo.lock b/nixpkgs/pkgs/tools/misc/freshfetch/Cargo.lock
new file mode 100644
index 000000000000..24cfb7e9de96
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/freshfetch/Cargo.lock
@@ -0,0 +1,587 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+
+[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "bstr"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+dependencies = [
+ "libc",
+ "num-integer",
+ "num-traits",
+ "time",
+ "winapi",
+]
+
+[[package]]
+name = "clap"
+version = "2.33.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "clml_rs"
+version = "0.3.0"
+source = "git+https://github.com/K4rakara/clml-rs#eecf1378f4e85a9b3dc91e8a15d497a2fd75906f"
+dependencies = [
+ "lazy_static",
+ "rand",
+ "regex",
+]
+
+[[package]]
+name = "cmd_lib"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42443b644d30f401746fb4483fba96b13076e1ef6cb5bca7d6a14d1d8f9f2bd9"
+dependencies = [
+ "cmd_lib_core",
+ "cmd_lib_macros",
+]
+
+[[package]]
+name = "cmd_lib_core"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c50c50a1536e882455aeaff22015146ea143b9106fc8e116669dd078ec7b7fc8"
+
+[[package]]
+name = "cmd_lib_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d202b0cfc28d8928ba89138c0a8248cf921b9870c6c9d60c9951092df5b62b2"
+dependencies = [
+ "cmd_lib_core",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+ "lazy_static",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "lazy_static",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "either"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+
+[[package]]
+name = "freshfetch"
+version = "0.2.0"
+dependencies = [
+ "chrono",
+ "clap",
+ "clml_rs",
+ "cmd_lib",
+ "cmd_lib_core",
+ "lazy_static",
+ "mlua",
+ "regex",
+ "sysinfo",
+ "term_size",
+ "uname",
+ "users",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41"
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "lua-src"
+version = "543.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "029180f994b9b36f47d905f92569b516acf7d073778e2e781c15ee375b1ca27d"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "luajit-src"
+version = "210.1.3+restyfe08842"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36d3de8377d8e0492b646527befb7eb826a9ecd2dc8c1f81ab0e654bc03a029b"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+
+[[package]]
+name = "memoffset"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mlua"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f2fc8e1085d53b72898c59ceee1980b5826b0c98ce99886b7518f0ead00e5cb"
+dependencies = [
+ "bstr",
+ "cc",
+ "lazy_static",
+ "lua-src",
+ "luajit-src",
+ "num-traits",
+ "pkg-config",
+]
+
+[[package]]
+name = "ntapi"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rayon"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
+dependencies = [
+ "autocfg",
+ "crossbeam-deque",
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-utils",
+ "lazy_static",
+ "num_cpus",
+]
+
+[[package]]
+name = "regex"
+version = "1.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "sysinfo"
+version = "0.15.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de94457a09609f33fec5e7fceaf907488967c6c7c75d64da6a7ce6ffdb8b5abd"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "core-foundation-sys",
+ "doc-comment",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "winapi",
+]
+
+[[package]]
+name = "term_size"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "time"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
+dependencies = [
+ "libc",
+ "wasi 0.10.0+wasi-snapshot-preview1",
+ "winapi",
+]
+
+[[package]]
+name = "uname"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+
+[[package]]
+name = "users"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa4227e95324a443c9fcb06e03d4d85e91aabe9a5a02aa818688b6918b6af486"
+dependencies = [
+ "libc",
+ "log",
+]
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.10.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/tools/misc/freshfetch/default.nix b/nixpkgs/pkgs/tools/misc/freshfetch/default.nix
new file mode 100644
index 000000000000..7ed334360358
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/freshfetch/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, fetchurl, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "freshfetch";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "k4rakara";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1l9zngr5l12g71j85iyph4jjri3crxc2pi9q0gczrrzvs03439mn";
+  };
+
+  cargoLock = {
+    # update Cargo.lock every new release of freshfetch
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "clml_rs-0.3.0" = "0hvd59zh7czk9jd1a2wwcm1acpcfbz32v9ka7ap6f74d638jcc19";
+    };
+  };
+
+  # freshfetch depends on rust nightly features
+  RUSTC_BOOTSTRAP = 1;
+
+  meta = with lib; {
+    description = "A fresh take on neofetch";
+    homepage = "https://github.com/k4rakara/freshfetch";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/fselect/default.nix b/nixpkgs/pkgs/tools/misc/fselect/default.nix
index d60e68a0e320..eaddc8790e94 100644
--- a/nixpkgs/pkgs/tools/misc/fselect/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fselect/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fselect";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "jhspetersson";
     repo = "fselect";
     rev = version;
-    sha256 = "sha256-gwFX5c5y4bL+KhPDnvCbDco1ORYyqZYFsetMrmOATZU=";
+    sha256 = "sha256-6/mcGq6qKYmcBcNndYYJB3rnHr6ZVpEcVjJBz7NEJEw=";
   };
 
-  cargoSha256 = "sha256-gWCiaAgb7hBenbp1kogCoB6vctYfDZccRW9li2yxJaU=";
+  cargoSha256 = "sha256-W6YmFsTlU3LD3tvhLuA/3k/269gR2RLLOo86BQC5x98=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optional stdenv.isDarwin libiconv;
diff --git a/nixpkgs/pkgs/tools/misc/fx_cast/default.nix b/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
index 4fcb5a655732..e3458ccfe5cf 100644
--- a/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
@@ -1,85 +1,64 @@
-{ lib, stdenv, fetchurl, dpkg }:
-
+# How to generate a new version:
+#
+# Update version and hash as usual.
+#
+# ```
+# cd fx_cast/app
+# # Add `"name": "fx_cast_bridge", "version": "...",` to package.json and package-lock.json
+# nix run nixpkgs.nodePackages.node2nix -c node2nix -l package-lock.json -d
+# cp -v node-*.nix package*.json ~/p/nixpkgs/pkgs/tools/misc/fx_cast/app
+# ```
+{ pkgs, stdenv, system }: let
+  nodeEnv = import ./node-env.nix {
+    inherit (pkgs) nodejs stdenv lib python2 runCommand writeTextFile;
+    inherit pkgs;
+    libtool = if stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+  nodePackages = import ./node-packages.nix {
+    inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+    inherit nodeEnv;
+    globalBuildInputs = [pkgs.avahi-compat];
+  };
+in
 stdenv.mkDerivation rec {
-  pname = "fx_cast_bridge";
-  version = "0.0.7";
-
-  src = fetchurl {
-     url = "https://github.com/hensm/fx_cast/releases/download/v${version}/${pname}-${version}-x64.deb";
-     sha256 = "0kd58vzsq1qzl7qsh1qv25ylxvr5y37li03gjb48x4vhd85slzz5";
+  name = "fx_cast_bridge-${version}";
+  version = "0.1.2";
+
+  src = pkgs.fetchFromGitHub {
+    owner = "hensm";
+    repo = "fx_cast";
+    rev = "v${version}";
+    hash = "sha256:1prgk9669xgwkdl39clq0l75n0gnkkpn27gp9rbgl4bafrhvmg9a";
   };
 
-  nativeBuildInputs = [ dpkg ];
+  buildInputs = with pkgs; [
+    nodejs
+  ];
 
-  unpackPhase = ''
-    runHook preUnpack
-    dpkg-deb -xv $src ./
-    runHook postUnpack
+  buildPhase = ''
+    ln -vs ${nodePackages.nodeDependencies}/lib/node_modules app/node_modules
+    npm run build:app
   '';
 
-  dontBuild = true;
-  dontPatchELF = true;
-
   installPhase = ''
-    install -DT {opt/fx_cast,$out/bin}/${pname}
-    install -DT {usr,$out}/lib/mozilla/native-messaging-hosts/${pname}.json
-
-    substituteInPlace $out/lib/mozilla/native-messaging-hosts/${pname}.json \
-      --replace {/opt/fx_cast,$out/bin}/${pname}
-  '';
-
-  # See now-cli/default.nix
-  dontStrip = true;
-  preFixup = let
-    libPath = lib.makeLibraryPath [stdenv.cc.cc stdenv.cc.libc];
-    bin = "$out/bin/${pname}";
-  in ''
-
-    orig_size=$(stat --printf=%s ${bin})
-
-    patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" ${bin}
-    patchelf --set-rpath ${libPath} ${bin}
-    chmod +x ${bin}
-
-    new_size=$(stat --printf=%s ${bin})
-
-    ###### zeit-pkg fixing starts here.
-    # we're replacing plaintext js code that looks like
-    # PAYLOAD_POSITION = '1234                  ' | 0
-    # [...]
-    # PRELUDE_POSITION = '1234                  ' | 0
-    # ^-----20-chars-----^^------22-chars------^
-    # ^-- grep points here
-    #
-    # var_* are as described above
-    # shift_by seems to be safe so long as all patchelf adjustments occur
-    # before any locations pointed to by hardcoded offsets
-
-    var_skip=20
-    var_select=22
-    shift_by=$(expr $new_size - $orig_size)
-
-    function fix_offset {
-      # $1 = name of variable to adjust
-      location=$(grep -obUam1 "$1" ${bin} | cut -d: -f1)
-      location=$(expr $location + $var_skip)
-
-      value=$(dd if=${bin} iflag=count_bytes,skip_bytes skip=$location \
-                 bs=1 count=$var_select status=none)
-      value=$(expr $shift_by + $value)
+    mkdir -p $out/bin $out/lib/mozilla/native-messaging-hosts $out/opt
 
-      echo -n $value | dd of=${bin} bs=1 seek=$location conv=notrunc
-    }
+    substituteInPlace dist/app/fx_cast_bridge.json \
+      --replace "$(realpath dist/app/fx_cast_bridge.sh)" "$out/bin/fx_cast_bridge"
+    mv dist/app/fx_cast_bridge.json $out/lib/mozilla/native-messaging-hosts
 
-    fix_offset PAYLOAD_POSITION
-    fix_offset PRELUDE_POSITION
+    echo "#! /bin/sh
+      NODE_PATH=${nodePackages.nodeDependencies}/lib/node_modules exec ${pkgs.nodejs}/bin/node $out/opt/fx_cast_bridge/src/main.js --_name fx_cast_bridge \"\$@\"
+    " >$out/bin/fx_cast_bridge
+    chmod +x $out/bin/fx_cast_bridge
 
+    mv dist/app $out/opt/fx_cast_bridge
   '';
 
-  meta = with lib; {
+  meta = with pkgs.lib; {
     description = "Implementation of the Chrome Sender API (Chromecast) within Firefox";
     homepage = "https://hensm.github.io/fx_cast/";
     license = licenses.mit;
-    maintainers = with maintainers; [ dtzWill ];
+    maintainers = with maintainers; [ dtzWill kevincox ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fx_cast/node-env.nix b/nixpkgs/pkgs/tools/misc/fx_cast/node-env.nix
new file mode 100644
index 000000000000..c2b723195b77
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fx_cast/node-env.nix
@@ -0,0 +1,567 @@
+# This file originates from node2nix
+
+{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}:
+
+let
+  # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
+  utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
+
+  python = if nodejs ? python then nodejs.python else python2;
+
+  # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+  tarWrapper = runCommand "tarWrapper" {} ''
+    mkdir -p $out/bin
+
+    cat > $out/bin/tar <<EOF
+    #! ${stdenv.shell} -e
+    $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+    EOF
+
+    chmod +x $out/bin/tar
+  '';
+
+  # Function that generates a TGZ file from a NPM project
+  buildNodeSourceDist =
+    { name, version, src, ... }:
+
+    stdenv.mkDerivation {
+      name = "node-tarball-${name}-${version}";
+      inherit src;
+      buildInputs = [ nodejs ];
+      buildPhase = ''
+        export HOME=$TMPDIR
+        tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+      '';
+      installPhase = ''
+        mkdir -p $out/tarballs
+        mv $tgzFile $out/tarballs
+        mkdir -p $out/nix-support
+        echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+      '';
+    };
+
+  includeDependencies = {dependencies}:
+    lib.optionalString (dependencies != [])
+      (lib.concatMapStrings (dependency:
+        ''
+          # Bundle the dependencies of the package
+          mkdir -p node_modules
+          cd node_modules
+
+          # Only include dependencies if they don't exist. They may also be bundled in the package.
+          if [ ! -e "${dependency.name}" ]
+          then
+              ${composePackage dependency}
+          fi
+
+          cd ..
+        ''
+      ) dependencies);
+
+  # Recursively composes the dependencies of a package
+  composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+    builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+      DIR=$(pwd)
+      cd $TMPDIR
+
+      unpackFile ${src}
+
+      # Make the base dir in which the target dependency resides first
+      mkdir -p "$(dirname "$DIR/${packageName}")"
+
+      if [ -f "${src}" ]
+      then
+          # Figure out what directory has been unpacked
+          packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+          # Restore write permissions to make building work
+          find "$packageDir" -type d -exec chmod u+x {} \;
+          chmod -R u+w "$packageDir"
+
+          # Move the extracted tarball into the output folder
+          mv "$packageDir" "$DIR/${packageName}"
+      elif [ -d "${src}" ]
+      then
+          # Get a stripped name (without hash) of the source directory.
+          # On old nixpkgs it's already set internally.
+          if [ -z "$strippedName" ]
+          then
+              strippedName="$(stripHash ${src})"
+          fi
+
+          # Restore write permissions to make building work
+          chmod -R u+w "$strippedName"
+
+          # Move the extracted directory into the output folder
+          mv "$strippedName" "$DIR/${packageName}"
+      fi
+
+      # Unset the stripped name to not confuse the next unpack step
+      unset strippedName
+
+      # Include the dependencies of the package
+      cd "$DIR/${packageName}"
+      ${includeDependencies { inherit dependencies; }}
+      cd ..
+      ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+    '';
+
+  pinpointDependencies = {dependencies, production}:
+    let
+      pinpointDependenciesFromPackageJSON = writeTextFile {
+        name = "pinpointDependencies.js";
+        text = ''
+          var fs = require('fs');
+          var path = require('path');
+
+          function resolveDependencyVersion(location, name) {
+              if(location == process.env['NIX_STORE']) {
+                  return null;
+              } else {
+                  var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+                  if(fs.existsSync(dependencyPackageJSON)) {
+                      var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+                      if(dependencyPackageObj.name == name) {
+                          return dependencyPackageObj.version;
+                      }
+                  } else {
+                      return resolveDependencyVersion(path.resolve(location, ".."), name);
+                  }
+              }
+          }
+
+          function replaceDependencies(dependencies) {
+              if(typeof dependencies == "object" && dependencies !== null) {
+                  for(var dependency in dependencies) {
+                      var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+                      if(resolvedVersion === null) {
+                          process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+                      } else {
+                          dependencies[dependency] = resolvedVersion;
+                      }
+                  }
+              }
+          }
+
+          /* Read the package.json configuration */
+          var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+          /* Pinpoint all dependencies */
+          replaceDependencies(packageObj.dependencies);
+          if(process.argv[2] == "development") {
+              replaceDependencies(packageObj.devDependencies);
+          }
+          replaceDependencies(packageObj.optionalDependencies);
+
+          /* Write the fixed package.json file */
+          fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+        '';
+      };
+    in
+    ''
+      node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+      ${lib.optionalString (dependencies != [])
+        ''
+          if [ -d node_modules ]
+          then
+              cd node_modules
+              ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+              cd ..
+          fi
+        ''}
+    '';
+
+  # Recursively traverses all dependencies of a package and pinpoints all
+  # dependencies in the package.json file to the versions that are actually
+  # being used.
+
+  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+    ''
+      if [ -d "${packageName}" ]
+      then
+          cd "${packageName}"
+          ${pinpointDependencies { inherit dependencies production; }}
+          cd ..
+          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+      fi
+    '';
+
+  # Extract the Node.js source code which is used to compile packages with
+  # native bindings
+  nodeSources = runCommand "node-sources" {} ''
+    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+    mv node-* $out
+  '';
+
+  # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+  addIntegrityFieldsScript = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      function augmentDependencies(baseDir, dependencies) {
+          for(var dependencyName in dependencies) {
+              var dependency = dependencies[dependencyName];
+
+              // Open package.json and augment metadata fields
+              var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+              var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+              if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+                  console.log("Adding metadata fields to: "+packageJSONPath);
+                  var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+                  if(dependency.integrity) {
+                      packageObj["_integrity"] = dependency.integrity;
+                  } else {
+                      packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+                  }
+
+                  if(dependency.resolved) {
+                      packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+                  } else {
+                      packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+                  }
+
+                  if(dependency.from !== undefined) { // Adopt from property if one has been provided
+                      packageObj["_from"] = dependency.from;
+                  }
+
+                  fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+              }
+
+              // Augment transitive dependencies
+              if(dependency.dependencies !== undefined) {
+                  augmentDependencies(packageJSONDir, dependency.dependencies);
+              }
+          }
+      }
+
+      if(fs.existsSync("./package-lock.json")) {
+          var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+          if(![1, 2].includes(packageLock.lockfileVersion)) {
+             process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
+             process.exit(1);
+          }
+
+          if(packageLock.dependencies !== undefined) {
+              augmentDependencies(".", packageLock.dependencies);
+          }
+      }
+    '';
+  };
+
+  # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+  reconstructPackageLock = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+      var lockObj = {
+          name: packageObj.name,
+          version: packageObj.version,
+          lockfileVersion: 1,
+          requires: true,
+          dependencies: {}
+      };
+
+      function augmentPackageJSON(filePath, dependencies) {
+          var packageJSON = path.join(filePath, "package.json");
+          if(fs.existsSync(packageJSON)) {
+              var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+              dependencies[packageObj.name] = {
+                  version: packageObj.version,
+                  integrity: "sha1-000000000000000000000000000=",
+                  dependencies: {}
+              };
+              processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+          }
+      }
+
+      function processDependencies(dir, dependencies) {
+          if(fs.existsSync(dir)) {
+              var files = fs.readdirSync(dir);
+
+              files.forEach(function(entry) {
+                  var filePath = path.join(dir, entry);
+                  var stats = fs.statSync(filePath);
+
+                  if(stats.isDirectory()) {
+                      if(entry.substr(0, 1) == "@") {
+                          // When we encounter a namespace folder, augment all packages belonging to the scope
+                          var pkgFiles = fs.readdirSync(filePath);
+
+                          pkgFiles.forEach(function(entry) {
+                              if(stats.isDirectory()) {
+                                  var pkgFilePath = path.join(filePath, entry);
+                                  augmentPackageJSON(pkgFilePath, dependencies);
+                              }
+                          });
+                      } else {
+                          augmentPackageJSON(filePath, dependencies);
+                      }
+                  }
+              });
+          }
+      }
+
+      processDependencies("node_modules", lockObj.dependencies);
+
+      fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+    '';
+  };
+
+  prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+    let
+      forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+    in
+    ''
+        # Pinpoint the versions of all dependencies to the ones that are actually being used
+        echo "pinpointing versions of dependencies..."
+        source $pinpointDependenciesScriptPath
+
+        # Patch the shebangs of the bundled modules to prevent them from
+        # calling executables outside the Nix store as much as possible
+        patchShebangs .
+
+        # Deploy the Node.js package by running npm install. Since the
+        # dependencies have been provided already by ourselves, it should not
+        # attempt to install them again, which is good, because we want to make
+        # it Nix's responsibility. If it needs to install any dependencies
+        # anyway (e.g. because the dependency parameters are
+        # incomplete/incorrect), it fails.
+        #
+        # The other responsibilities of NPM are kept -- version checks, build
+        # steps, postprocessing etc.
+
+        export HOME=$TMPDIR
+        cd "${packageName}"
+        runHook preRebuild
+
+        ${lib.optionalString bypassCache ''
+          ${lib.optionalString reconstructLock ''
+            if [ -f package-lock.json ]
+            then
+                echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+                echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+                rm package-lock.json
+            else
+                echo "No package-lock.json file found, reconstructing..."
+            fi
+
+            node ${reconstructPackageLock}
+          ''}
+
+          node ${addIntegrityFieldsScript}
+        ''}
+
+        npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
+
+        if [ "''${dontNpmInstall-}" != "1" ]
+        then
+            # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+            rm -f npm-shrinkwrap.json
+
+            npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
+        fi
+    '';
+
+  # Builds and composes an NPM package including all its dependencies
+  buildNodePackage =
+    { name
+    , packageName
+    , version
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , preRebuild ? ""
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+    in
+    stdenv.mkDerivation ({
+      name = "node_${name}-${version}";
+      buildInputs = [ tarWrapper python nodejs ]
+        ++ lib.optional (stdenv.isLinux) utillinux
+        ++ lib.optional (stdenv.isDarwin) libtool
+        ++ buildInputs;
+
+      inherit nodejs;
+
+      inherit dontStrip; # Stripping may fail a build for some package deployments
+      inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+      compositionScript = composePackage args;
+      pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+      passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+      installPhase = ''
+        # Create and enter a root node_modules/ folder
+        mkdir -p $out/lib/node_modules
+        cd $out/lib/node_modules
+
+        # Compose the package and all its dependencies
+        source $compositionScriptPath
+
+        ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+        # Create symlink to the deployed executable folder, if applicable
+        if [ -d "$out/lib/node_modules/.bin" ]
+        then
+            ln -s $out/lib/node_modules/.bin $out/bin
+        fi
+
+        # Create symlinks to the deployed manual page folders, if applicable
+        if [ -d "$out/lib/node_modules/${packageName}/man" ]
+        then
+            mkdir -p $out/share
+            for dir in "$out/lib/node_modules/${packageName}/man/"*
+            do
+                mkdir -p $out/share/man/$(basename "$dir")
+                for page in "$dir"/*
+                do
+                    ln -s $page $out/share/man/$(basename "$dir")
+                done
+            done
+        fi
+
+        # Run post install hook, if provided
+        runHook postInstall
+      '';
+    } // extraArgs);
+
+  # Builds a node environment (a node_modules folder and a set of binaries)
+  buildNodeDependencies =
+    { name
+    , packageName
+    , version
+    , src
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+    in
+      stdenv.mkDerivation ({
+        name = "node-dependencies-${name}-${version}";
+
+        buildInputs = [ tarWrapper python nodejs ]
+          ++ lib.optional (stdenv.isLinux) utillinux
+          ++ lib.optional (stdenv.isDarwin) libtool
+          ++ buildInputs;
+
+        inherit dontStrip; # Stripping may fail a build for some package deployments
+        inherit dontNpmInstall unpackPhase buildPhase;
+
+        includeScript = includeDependencies { inherit dependencies; };
+        pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+        passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+        installPhase = ''
+          mkdir -p $out/${packageName}
+          cd $out/${packageName}
+
+          source $includeScriptPath
+
+          # Create fake package.json to make the npm commands work properly
+          cp ${src}/package.json .
+          chmod 644 package.json
+          ${lib.optionalString bypassCache ''
+            if [ -f ${src}/package-lock.json ]
+            then
+                cp ${src}/package-lock.json .
+            fi
+          ''}
+
+          # Go to the parent folder to make sure that all packages are pinpointed
+          cd ..
+          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+          # Expose the executables that were installed
+          cd ..
+          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          mv ${packageName} lib
+          ln -s $out/lib/node_modules/.bin $out/bin
+        '';
+      } // extraArgs);
+
+  # Builds a development shell
+  buildNodeShell =
+    { name
+    , packageName
+    , version
+    , src
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      nodeDependencies = buildNodeDependencies args;
+    in
+    stdenv.mkDerivation {
+      name = "node-shell-${name}-${version}";
+
+      buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+      buildCommand = ''
+        mkdir -p $out/bin
+        cat > $out/bin/shell <<EOF
+        #! ${stdenv.shell} -e
+        $shellHook
+        exec ${stdenv.shell}
+        EOF
+        chmod +x $out/bin/shell
+      '';
+
+      # Provide the dependencies in a development shell through the NODE_PATH environment variable
+      inherit nodeDependencies;
+      shellHook = lib.optionalString (dependencies != []) ''
+        export NODE_PATH=${nodeDependencies}/lib/node_modules
+        export PATH="${nodeDependencies}/bin:$PATH"
+      '';
+    };
+in
+{
+  buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
+  buildNodePackage = lib.makeOverridable buildNodePackage;
+  buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
+  buildNodeShell = lib.makeOverridable buildNodeShell;
+}
diff --git a/nixpkgs/pkgs/tools/misc/fx_cast/node-packages.nix b/nixpkgs/pkgs/tools/misc/fx_cast/node-packages.nix
new file mode 100644
index 000000000000..c724f5605741
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fx_cast/node-packages.nix
@@ -0,0 +1,1706 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/parser-7.11.3" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.11.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz";
+        sha512 = "REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==";
+      };
+    };
+    "@babel/runtime-7.11.2" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
+      };
+    };
+    "@nodelib/fs.scandir-2.1.3" = {
+      name = "_at_nodelib_slash_fs.scandir";
+      packageName = "@nodelib/fs.scandir";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
+        sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+      };
+    };
+    "@nodelib/fs.stat-2.0.3" = {
+      name = "_at_nodelib_slash_fs.stat";
+      packageName = "@nodelib/fs.stat";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
+        sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+      };
+    };
+    "@nodelib/fs.walk-1.2.4" = {
+      name = "_at_nodelib_slash_fs.walk";
+      packageName = "@nodelib/fs.walk";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
+        sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+      };
+    };
+    "@protobufjs/aspromise-1.1.2" = {
+      name = "_at_protobufjs_slash_aspromise";
+      packageName = "@protobufjs/aspromise";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz";
+        sha1 = "9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf";
+      };
+    };
+    "@protobufjs/base64-1.1.2" = {
+      name = "_at_protobufjs_slash_base64";
+      packageName = "@protobufjs/base64";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz";
+        sha512 = "AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==";
+      };
+    };
+    "@protobufjs/codegen-2.0.4" = {
+      name = "_at_protobufjs_slash_codegen";
+      packageName = "@protobufjs/codegen";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz";
+        sha512 = "YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==";
+      };
+    };
+    "@protobufjs/eventemitter-1.1.0" = {
+      name = "_at_protobufjs_slash_eventemitter";
+      packageName = "@protobufjs/eventemitter";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz";
+        sha1 = "355cbc98bafad5978f9ed095f397621f1d066b70";
+      };
+    };
+    "@protobufjs/fetch-1.1.0" = {
+      name = "_at_protobufjs_slash_fetch";
+      packageName = "@protobufjs/fetch";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz";
+        sha1 = "ba99fb598614af65700c1619ff06d454b0d84c45";
+      };
+    };
+    "@protobufjs/float-1.0.2" = {
+      name = "_at_protobufjs_slash_float";
+      packageName = "@protobufjs/float";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz";
+        sha1 = "5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1";
+      };
+    };
+    "@protobufjs/inquire-1.1.0" = {
+      name = "_at_protobufjs_slash_inquire";
+      packageName = "@protobufjs/inquire";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz";
+        sha1 = "ff200e3e7cf2429e2dcafc1140828e8cc638f089";
+      };
+    };
+    "@protobufjs/path-1.1.2" = {
+      name = "_at_protobufjs_slash_path";
+      packageName = "@protobufjs/path";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz";
+        sha1 = "6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d";
+      };
+    };
+    "@protobufjs/pool-1.1.0" = {
+      name = "_at_protobufjs_slash_pool";
+      packageName = "@protobufjs/pool";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz";
+        sha1 = "09fd15f2d6d3abfa9b65bc366506d6ad7846ff54";
+      };
+    };
+    "@protobufjs/utf8-1.1.0" = {
+      name = "_at_protobufjs_slash_utf8";
+      packageName = "@protobufjs/utf8";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz";
+        sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
+      };
+    };
+    "@types/color-name-1.1.1" = {
+      name = "_at_types_slash_color-name";
+      packageName = "@types/color-name";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
+        sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
+      };
+    };
+    "@types/long-4.0.0" = {
+      name = "_at_types_slash_long";
+      packageName = "@types/long";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz";
+        sha512 = "1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==";
+      };
+    };
+    "@types/mdns-0.0.33" = {
+      name = "_at_types_slash_mdns";
+      packageName = "@types/mdns";
+      version = "0.0.33";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mdns/-/mdns-0.0.33.tgz";
+        sha512 = "Uhm8lyPXIe2hz+aiiD6PXkGc7dlFk6Kc2HJlqmWXhAJktD5Arg27EYre0wv1SmmpSGQZ30X6iCjZyIGYKxmCxw==";
+      };
+    };
+    "@types/mime-types-2.1.0" = {
+      name = "_at_types_slash_mime-types";
+      packageName = "@types/mime-types";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz";
+        sha1 = "9ca52cda363f699c69466c2a6ccdaad913ea7a73";
+      };
+    };
+    "@types/minimist-1.2.1" = {
+      name = "_at_types_slash_minimist";
+      packageName = "@types/minimist";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz";
+        sha512 = "fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==";
+      };
+    };
+    "@types/node-10.14.19" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "10.14.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-10.14.19.tgz";
+        sha512 = "j6Sqt38ssdMKutXBUuAcmWF8QtHW1Fwz/mz4Y+Wd9mzpBiVFirjpNQf363hG5itkG+yGaD+oiLyb50HxJ36l9Q==";
+      };
+    };
+    "@types/node-13.13.15" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "13.13.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.15.tgz";
+        sha512 = "kwbcs0jySLxzLsa2nWUAGOd/s21WU1jebrEdtzhsj1D4Yps1EOuyI1Qcu+FD56dL7NRNIJtDDjcqIG22NwkgLw==";
+      };
+    };
+    "@types/node-fetch-2.5.7" = {
+      name = "_at_types_slash_node-fetch";
+      packageName = "@types/node-fetch";
+      version = "2.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz";
+        sha512 = "o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==";
+      };
+    };
+    "@types/ws-7.4.2" = {
+      name = "_at_types_slash_ws";
+      packageName = "@types/ws";
+      version = "7.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.4.2.tgz";
+        sha512 = "PbeN0Eydl7LQl4OIav29YmkO2LxbVuz3nZD/kb19lOS+wLgIkRbWMNmU/QQR7ABpOJ7D7xDOU8co7iohObewrw==";
+      };
+    };
+    "ajv-6.12.3" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz";
+        sha512 = "4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==";
+      };
+    };
+    "ansi-styles-4.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
+        sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
+      };
+    };
+    "array-union-2.1.0" = {
+      name = "array-union";
+      packageName = "array-union";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+        sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+      };
+    };
+    "asn1-0.2.4" = {
+      name = "asn1";
+      packageName = "asn1";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+      };
+    };
+    "assert-plus-1.0.0" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    };
+    "asynckit-0.4.0" = {
+      name = "asynckit";
+      packageName = "asynckit";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    };
+    "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==";
+      };
+    };
+    "aws-sign2-0.7.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    };
+    "aws4-1.10.1" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz";
+        sha512 = "zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==";
+      };
+    };
+    "bcrypt-pbkdf-1.0.2" = {
+      name = "bcrypt-pbkdf";
+      packageName = "bcrypt-pbkdf";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+      };
+    };
+    "big-integer-1.6.44" = {
+      name = "big-integer";
+      packageName = "big-integer";
+      version = "1.6.44";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/big-integer/-/big-integer-1.6.44.tgz";
+        sha512 = "7MzElZPTyJ2fNvBkPxtFQ2fWIkVmuzw41+BZHSzpEq3ymB2MfeKp1+yXl/tS75xCx+WnyV+yb0kp+K1C3UNwmQ==";
+      };
+    };
+    "bindings-1.2.1" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz";
+        sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
+      };
+    };
+    "bplist-creator-0.0.8" = {
+      name = "bplist-creator";
+      packageName = "bplist-creator";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz";
+        sha512 = "Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==";
+      };
+    };
+    "bplist-parser-0.2.0" = {
+      name = "bplist-parser";
+      packageName = "bplist-parser";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz";
+        sha512 = "z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "byline-5.0.0" = {
+      name = "byline";
+      packageName = "byline";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz";
+        sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+      };
+    };
+    "caseless-0.12.0" = {
+      name = "caseless";
+      packageName = "caseless";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    };
+    "castv2-0.1.10" = {
+      name = "castv2";
+      packageName = "castv2";
+      version = "0.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/castv2/-/castv2-0.1.10.tgz";
+        sha512 = "3QWevHrjT22KdF08Y2a217IYCDQDP7vEJaY4n0lPBeC5UBYbMFMadDfVTsaQwq7wqsEgYUHElPGm3EO1ey+TNw==";
+      };
+    };
+    "chalk-3.0.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz";
+        sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "combined-stream-1.0.8" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "dashdash-1.14.1" = {
+      name = "dashdash";
+      packageName = "dashdash";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    };
+    "debug-4.1.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
+        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "delayed-stream-1.0.0" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    };
+    "dir-glob-3.0.1" = {
+      name = "dir-glob";
+      packageName = "dir-glob";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+      };
+    };
+    "ecc-jsbn-0.1.2" = {
+      name = "ecc-jsbn";
+      packageName = "ecc-jsbn";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    };
+    "escodegen-1.14.3" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "1.14.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz";
+        sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "expand-template-2.0.3" = {
+      name = "expand-template";
+      packageName = "expand-template";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz";
+        sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
+      };
+    };
+    "extend-3.0.2" = {
+      name = "extend";
+      packageName = "extend";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+      };
+    };
+    "extsprintf-1.3.0" = {
+      name = "extsprintf";
+      packageName = "extsprintf";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    };
+    "fast-deep-equal-3.1.3" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
+      };
+    };
+    "fast-glob-3.2.4" = {
+      name = "fast-glob";
+      packageName = "fast-glob";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
+      name = "fast-json-stable-stringify";
+      packageName = "fast-json-stable-stringify";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    };
+    "fast-srp-hap-2.0.2" = {
+      name = "fast-srp-hap";
+      packageName = "fast-srp-hap";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-srp-hap/-/fast-srp-hap-2.0.2.tgz";
+        sha512 = "wABhZRrFhlovqJQ1HygOUB4R6WZW2hmlpvVYh2dVCy8BPLabDrB/Tu6XI3B4QfmhtHk8s1OeiFqJHY7FBsphug==";
+      };
+    };
+    "fastq-1.8.0" = {
+      name = "fastq";
+      packageName = "fastq";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz";
+        sha512 = "SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "forever-agent-0.6.1" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    };
+    "form-data-2.3.3" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
+      };
+    };
+    "form-data-3.0.0" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz";
+        sha512 = "CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==";
+      };
+    };
+    "from2-2.3.0" = {
+      name = "from2";
+      packageName = "from2";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz";
+        sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+      };
+    };
+    "fs-extra-8.1.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
+        sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+      };
+    };
+    "fs-extra-9.1.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "9.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz";
+        sha512 = "hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==";
+      };
+    };
+    "getpass-0.1.7" = {
+      name = "getpass";
+      packageName = "getpass";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    };
+    "glob-parent-5.1.1" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+      };
+    };
+    "globby-11.0.1" = {
+      name = "globby";
+      packageName = "globby";
+      version = "11.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz";
+        sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
+      };
+    };
+    "graceful-fs-4.2.6" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
+        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
+      };
+    };
+    "har-schema-2.0.0" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    };
+    "har-validator-5.1.5" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "http-signature-1.2.0" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    };
+    "ignore-5.1.8" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "5.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "into-stream-5.1.1" = {
+      name = "into-stream";
+      packageName = "into-stream";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz";
+        sha512 = "krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isstream-0.1.2" = {
+      name = "isstream";
+      packageName = "isstream";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    };
+    "jsbn-0.1.1" = {
+      name = "jsbn";
+      packageName = "jsbn";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    };
+    "json-schema-0.2.3" = {
+      name = "json-schema";
+      packageName = "json-schema";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    };
+    "json-schema-traverse-0.4.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+      };
+    };
+    "json-stringify-safe-5.0.1" = {
+      name = "json-stringify-safe";
+      packageName = "json-stringify-safe";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    };
+    "jsonfile-4.0.0" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+      };
+    };
+    "jsonfile-6.1.0" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz";
+        sha512 = "5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==";
+      };
+    };
+    "jsprim-1.4.1" = {
+      name = "jsprim";
+      packageName = "jsprim";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    };
+    "levn-0.3.0" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+      };
+    };
+    "long-4.0.0" = {
+      name = "long";
+      packageName = "long";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/long/-/long-4.0.0.tgz";
+        sha512 = "XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==";
+      };
+    };
+    "mdns-2.5.1" = {
+      name = "mdns";
+      packageName = "mdns";
+      version = "2.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdns/-/mdns-2.5.1.tgz";
+        sha512 = "JglS7Ed3Yf0BCpyC7LXA1MUrumMV8jj4g67nT3+m886SFYllz2HWBg8ObywFXWbBSv5gW0meMOOS4vVa2jZGCw==";
+      };
+    };
+    "merge2-1.4.1" = {
+      name = "merge2";
+      packageName = "merge2";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
+      };
+    };
+    "micromatch-4.0.2" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+      };
+    };
+    "mime-db-1.44.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.44.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+      };
+    };
+    "mime-types-2.1.27" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "multistream-2.1.1" = {
+      name = "multistream";
+      packageName = "multistream";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz";
+        sha512 = "xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==";
+      };
+    };
+    "mustache-4.0.1" = {
+      name = "mustache";
+      packageName = "mustache";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz";
+        sha512 = "yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==";
+      };
+    };
+    "nan-2.14.1" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+        sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
+      };
+    };
+    "node-fetch-2.6.0" = {
+      name = "node-fetch";
+      packageName = "node-fetch";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz";
+        sha512 = "8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==";
+      };
+    };
+    "oauth-sign-0.9.0" = {
+      name = "oauth-sign";
+      packageName = "oauth-sign";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+      };
+    };
+    "optionator-0.8.3" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
+        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
+      };
+    };
+    "os-tmpdir-1.0.2" = {
+      name = "os-tmpdir";
+      packageName = "os-tmpdir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+      };
+    };
+    "p-is-promise-3.0.0" = {
+      name = "p-is-promise";
+      packageName = "p-is-promise";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz";
+        sha512 = "Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "path-type-4.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+      };
+    };
+    "performance-now-2.1.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    };
+    "picomatch-2.2.2" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+      };
+    };
+    "pkg-4.4.9" = {
+      name = "pkg";
+      packageName = "pkg";
+      version = "4.4.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg/-/pkg-4.4.9.tgz";
+        sha512 = "FK4GqHtcCY2PPPVaKViU0NyRzpo6gCS7tPKN5b7AkElqjAOCH1bsRKgohEnxThr6DWfTGByGqba2YHGR/BqbmA==";
+      };
+    };
+    "pkg-fetch-2.6.9" = {
+      name = "pkg-fetch";
+      packageName = "pkg-fetch";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-2.6.9.tgz";
+        sha512 = "EnVR8LRILXBvaNP+wJOSY02c3+qDDfyEyR+aqAHLhcc9PBnbxFT9UZ1+If49goPQzQPn26TzF//fc6KXZ0aXEg==";
+      };
+    };
+    "prelude-ls-1.1.2" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "progress-2.0.3" = {
+      name = "progress";
+      packageName = "progress";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz";
+        sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
+      };
+    };
+    "protobufjs-6.8.8" = {
+      name = "protobufjs";
+      packageName = "protobufjs";
+      version = "6.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz";
+        sha512 = "AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==";
+      };
+    };
+    "psl-1.8.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "qs-6.5.2" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+      };
+    };
+    "rage-edit-1.2.0" = {
+      name = "rage-edit";
+      packageName = "rage-edit";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rage-edit/-/rage-edit-1.2.0.tgz";
+        sha512 = "0RspBRc2s6We4g7hRCvT5mu7YPEnfjvQK8Tt354a2uUNJCMC7MKLvo/1mLvHUCQ/zbP6siQyp5VRZN7UCpMFZg==";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "regenerator-runtime-0.13.7" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+      };
+    };
+    "request-2.88.2" = {
+      name = "request";
+      packageName = "request";
+      version = "2.88.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+      };
+    };
+    "request-progress-3.0.0" = {
+      name = "request-progress";
+      packageName = "request-progress";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz";
+        sha1 = "4ca754081c7fec63f505e4faa825aa06cd669dbe";
+      };
+    };
+    "resolve-1.17.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
+      };
+    };
+    "reusify-1.0.4" = {
+      name = "reusify";
+      packageName = "reusify";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+      };
+    };
+    "run-parallel-1.1.9" = {
+      name = "run-parallel";
+      packageName = "run-parallel";
+      version = "1.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz";
+        sha512 = "DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "slash-3.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "sshpk-1.16.1" = {
+      name = "sshpk";
+      packageName = "sshpk";
+      version = "1.16.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+      };
+    };
+    "stream-buffers-2.2.0" = {
+      name = "stream-buffers";
+      packageName = "stream-buffers";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz";
+        sha1 = "91d5f5130d1cef96dcfa7f726945188741d09ee4";
+      };
+    };
+    "stream-meter-1.0.4" = {
+      name = "stream-meter";
+      packageName = "stream-meter";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz";
+        sha1 = "52af95aa5ea760a2491716704dbff90f73afdd1d";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "supports-color-7.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz";
+        sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
+      };
+    };
+    "throttleit-1.0.0" = {
+      name = "throttleit";
+      packageName = "throttleit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz";
+        sha1 = "9e785836daf46743145a5984b6268d828528ac6c";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "tough-cookie-2.5.0" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+      };
+    };
+    "tunnel-agent-0.6.0" = {
+      name = "tunnel-agent";
+      packageName = "tunnel-agent";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    };
+    "tweetnacl-0.14.5" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    };
+    "tweetnacl-1.0.3" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz";
+        sha512 = "6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==";
+      };
+    };
+    "type-check-0.3.2" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+      };
+    };
+    "typescript-4.2.4" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "4.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz";
+        sha512 = "V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==";
+      };
+    };
+    "uid2-0.0.3" = {
+      name = "uid2";
+      packageName = "uid2";
+      version = "0.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz";
+        sha1 = "483126e11774df2f71b8b639dcd799c376162b82";
+      };
+    };
+    "unique-temp-dir-1.0.0" = {
+      name = "unique-temp-dir";
+      packageName = "unique-temp-dir";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz";
+        sha1 = "6dce95b2681ca003eebfb304a415f9cbabcc5385";
+      };
+    };
+    "universalify-0.1.2" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+      };
+    };
+    "universalify-2.0.0" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz";
+        sha512 = "hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==";
+      };
+    };
+    "uri-js-4.2.2" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "verror-1.10.0" = {
+      name = "verror";
+      packageName = "verror";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "ws-7.4.5" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz";
+        sha512 = "xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==";
+      };
+    };
+  };
+  args = {
+    name = "fx_cast_bridge";
+    packageName = "fx_cast_bridge";
+    version = "0.1.2";
+    src = ./.;
+    dependencies = [
+      sources."@babel/parser-7.11.3"
+      sources."@babel/runtime-7.11.2"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      sources."@protobufjs/aspromise-1.1.2"
+      sources."@protobufjs/base64-1.1.2"
+      sources."@protobufjs/codegen-2.0.4"
+      sources."@protobufjs/eventemitter-1.1.0"
+      sources."@protobufjs/fetch-1.1.0"
+      sources."@protobufjs/float-1.0.2"
+      sources."@protobufjs/inquire-1.1.0"
+      sources."@protobufjs/path-1.1.2"
+      sources."@protobufjs/pool-1.1.0"
+      sources."@protobufjs/utf8-1.1.0"
+      sources."@types/color-name-1.1.1"
+      sources."@types/long-4.0.0"
+      sources."@types/mdns-0.0.33"
+      sources."@types/mime-types-2.1.0"
+      sources."@types/minimist-1.2.1"
+      sources."@types/node-13.13.15"
+      sources."@types/node-fetch-2.5.7"
+      sources."@types/ws-7.4.2"
+      sources."ajv-6.12.3"
+      sources."ansi-styles-4.2.1"
+      sources."array-union-2.1.0"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.10.1"
+      (sources."bcrypt-pbkdf-1.0.2" // {
+        dependencies = [
+          sources."tweetnacl-0.14.5"
+        ];
+      })
+      sources."big-integer-1.6.44"
+      sources."bindings-1.2.1"
+      sources."bplist-creator-0.0.8"
+      sources."bplist-parser-0.2.0"
+      sources."braces-3.0.2"
+      sources."byline-5.0.0"
+      sources."caseless-0.12.0"
+      (sources."castv2-0.1.10" // {
+        dependencies = [
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."chalk-3.0.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."combined-stream-1.0.8"
+      sources."core-util-is-1.0.2"
+      sources."dashdash-1.14.1"
+      sources."deep-is-0.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."dir-glob-3.0.1"
+      sources."ecc-jsbn-0.1.2"
+      sources."escodegen-1.14.3"
+      sources."esprima-4.0.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."expand-template-2.0.3"
+      sources."extend-3.0.2"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.4"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-srp-hap-2.0.2"
+      sources."fastq-1.8.0"
+      sources."fill-range-7.0.1"
+      sources."forever-agent-0.6.1"
+      sources."form-data-3.0.0"
+      sources."from2-2.3.0"
+      sources."fs-extra-9.1.0"
+      sources."getpass-0.1.7"
+      sources."glob-parent-5.1.1"
+      sources."globby-11.0.1"
+      sources."graceful-fs-4.2.6"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-flag-4.0.0"
+      sources."http-signature-1.2.0"
+      sources."ignore-5.1.8"
+      sources."inherits-2.0.4"
+      sources."into-stream-5.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."is-typedarray-1.0.0"
+      sources."isarray-1.0.0"
+      sources."isstream-0.1.2"
+      sources."jsbn-0.1.1"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonfile-6.1.0"
+      sources."jsprim-1.4.1"
+      sources."levn-0.3.0"
+      sources."long-4.0.0"
+      sources."mdns-2.5.1"
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.2"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."multistream-2.1.1"
+      sources."mustache-4.0.1"
+      sources."nan-2.14.1"
+      sources."node-fetch-2.6.0"
+      sources."oauth-sign-0.9.0"
+      sources."optionator-0.8.3"
+      sources."os-tmpdir-1.0.2"
+      sources."p-is-promise-3.0.0"
+      sources."path-parse-1.0.6"
+      sources."path-type-4.0.0"
+      sources."performance-now-2.1.0"
+      sources."picomatch-2.2.2"
+      (sources."pkg-4.4.9" // {
+        dependencies = [
+          sources."fs-extra-8.1.0"
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
+        ];
+      })
+      (sources."pkg-fetch-2.6.9" // {
+        dependencies = [
+          sources."fs-extra-8.1.0"
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
+        ];
+      })
+      sources."prelude-ls-1.1.2"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-2.0.3"
+      (sources."protobufjs-6.8.8" // {
+        dependencies = [
+          sources."@types/node-10.14.19"
+        ];
+      })
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.2"
+      sources."rage-edit-1.2.0"
+      sources."readable-stream-2.3.7"
+      sources."regenerator-runtime-0.13.7"
+      (sources."request-2.88.2" // {
+        dependencies = [
+          sources."form-data-2.3.3"
+        ];
+      })
+      sources."request-progress-3.0.0"
+      sources."resolve-1.17.0"
+      sources."reusify-1.0.4"
+      sources."run-parallel-1.1.9"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."semver-6.3.0"
+      sources."slash-3.0.0"
+      sources."source-map-0.6.1"
+      (sources."sshpk-1.16.1" // {
+        dependencies = [
+          sources."tweetnacl-0.14.5"
+        ];
+      })
+      sources."stream-buffers-2.2.0"
+      sources."stream-meter-1.0.4"
+      sources."string_decoder-1.1.1"
+      sources."supports-color-7.1.0"
+      sources."throttleit-1.0.0"
+      sources."to-regex-range-5.0.1"
+      sources."tough-cookie-2.5.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-1.0.3"
+      sources."type-check-0.3.2"
+      sources."typescript-4.2.4"
+      sources."uid2-0.0.3"
+      sources."unique-temp-dir-1.0.0"
+      sources."universalify-2.0.0"
+      sources."uri-js-4.2.2"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      sources."verror-1.10.0"
+      sources."word-wrap-1.2.3"
+      sources."ws-7.4.5"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = false;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+  nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+    src = stdenv.mkDerivation {
+      name = args.name + "-package-json";
+      src = nix-gitignore.gitignoreSourcePure [
+        "*"
+        "!package.json"
+        "!package-lock.json"
+      ] args.src;
+      dontBuild = true;
+      installPhase = "mkdir -p $out; cp -r ./* $out;";
+    };
+  });
+}
diff --git a/nixpkgs/pkgs/tools/misc/fx_cast/package-lock.json b/nixpkgs/pkgs/tools/misc/fx_cast/package-lock.json
new file mode 100644
index 000000000000..22e62c6fed85
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fx_cast/package-lock.json
@@ -0,0 +1,1327 @@
+{
+    "name": "fx_cast_bridge",
+    "version": "0.1.2",
+    "requires": true,
+    "lockfileVersion": 1,
+    "dependencies": {
+        "@babel/parser": {
+            "version": "7.11.3",
+            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz",
+            "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==",
+            "dev": true
+        },
+        "@babel/runtime": {
+            "version": "7.11.2",
+            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz",
+            "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==",
+            "dev": true,
+            "requires": {
+                "regenerator-runtime": "^0.13.4"
+            }
+        },
+        "@nodelib/fs.scandir": {
+            "version": "2.1.3",
+            "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
+            "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
+            "dev": true,
+            "requires": {
+                "@nodelib/fs.stat": "2.0.3",
+                "run-parallel": "^1.1.9"
+            }
+        },
+        "@nodelib/fs.stat": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+            "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+            "dev": true
+        },
+        "@nodelib/fs.walk": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
+            "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
+            "dev": true,
+            "requires": {
+                "@nodelib/fs.scandir": "2.1.3",
+                "fastq": "^1.6.0"
+            }
+        },
+        "@protobufjs/aspromise": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+            "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
+        },
+        "@protobufjs/base64": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+            "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
+        },
+        "@protobufjs/codegen": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+            "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
+        },
+        "@protobufjs/eventemitter": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+            "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
+        },
+        "@protobufjs/fetch": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+            "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+            "requires": {
+                "@protobufjs/aspromise": "^1.1.1",
+                "@protobufjs/inquire": "^1.1.0"
+            }
+        },
+        "@protobufjs/float": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+            "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
+        },
+        "@protobufjs/inquire": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+            "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
+        },
+        "@protobufjs/path": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+            "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
+        },
+        "@protobufjs/pool": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+            "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
+        },
+        "@protobufjs/utf8": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+            "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
+        },
+        "@types/color-name": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+            "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
+            "dev": true
+        },
+        "@types/long": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz",
+            "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q=="
+        },
+        "@types/mdns": {
+            "version": "0.0.33",
+            "resolved": "https://registry.npmjs.org/@types/mdns/-/mdns-0.0.33.tgz",
+            "integrity": "sha512-Uhm8lyPXIe2hz+aiiD6PXkGc7dlFk6Kc2HJlqmWXhAJktD5Arg27EYre0wv1SmmpSGQZ30X6iCjZyIGYKxmCxw==",
+            "dev": true,
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "@types/mime-types": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz",
+            "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=",
+            "dev": true
+        },
+        "@types/minimist": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz",
+            "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg=="
+        },
+        "@types/node": {
+            "version": "13.13.15",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.15.tgz",
+            "integrity": "sha512-kwbcs0jySLxzLsa2nWUAGOd/s21WU1jebrEdtzhsj1D4Yps1EOuyI1Qcu+FD56dL7NRNIJtDDjcqIG22NwkgLw=="
+        },
+        "@types/node-fetch": {
+            "version": "2.5.7",
+            "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz",
+            "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==",
+            "dev": true,
+            "requires": {
+                "@types/node": "*",
+                "form-data": "^3.0.0"
+            }
+        },
+        "@types/ws": {
+            "version": "7.4.2",
+            "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.2.tgz",
+            "integrity": "sha512-PbeN0Eydl7LQl4OIav29YmkO2LxbVuz3nZD/kb19lOS+wLgIkRbWMNmU/QQR7ABpOJ7D7xDOU8co7iohObewrw==",
+            "requires": {
+                "@types/node": "*"
+            }
+        },
+        "ajv": {
+            "version": "6.12.3",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+            "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+            "dev": true,
+            "requires": {
+                "fast-deep-equal": "^3.1.1",
+                "fast-json-stable-stringify": "^2.0.0",
+                "json-schema-traverse": "^0.4.1",
+                "uri-js": "^4.2.2"
+            }
+        },
+        "ansi-styles": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+            "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+            "dev": true,
+            "requires": {
+                "@types/color-name": "^1.1.1",
+                "color-convert": "^2.0.1"
+            }
+        },
+        "array-union": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+            "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+            "dev": true
+        },
+        "asn1": {
+            "version": "0.2.4",
+            "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+            "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+            "dev": true,
+            "requires": {
+                "safer-buffer": "~2.1.0"
+            }
+        },
+        "assert-plus": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+            "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+            "dev": true
+        },
+        "asynckit": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+            "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+            "dev": true
+        },
+        "at-least-node": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+            "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+            "dev": true
+        },
+        "aws-sign2": {
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+            "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+            "dev": true
+        },
+        "aws4": {
+            "version": "1.10.1",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz",
+            "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==",
+            "dev": true
+        },
+        "bcrypt-pbkdf": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+            "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+            "dev": true,
+            "requires": {
+                "tweetnacl": "^0.14.3"
+            },
+            "dependencies": {
+                "tweetnacl": {
+                    "version": "0.14.5",
+                    "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+                    "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+                    "dev": true
+                }
+            }
+        },
+        "big-integer": {
+            "version": "1.6.44",
+            "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.44.tgz",
+            "integrity": "sha512-7MzElZPTyJ2fNvBkPxtFQ2fWIkVmuzw41+BZHSzpEq3ymB2MfeKp1+yXl/tS75xCx+WnyV+yb0kp+K1C3UNwmQ=="
+        },
+        "bindings": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
+            "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE="
+        },
+        "bplist-creator": {
+            "version": "0.0.8",
+            "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
+            "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==",
+            "requires": {
+                "stream-buffers": "~2.2.0"
+            }
+        },
+        "bplist-parser": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+            "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
+            "requires": {
+                "big-integer": "^1.6.44"
+            }
+        },
+        "braces": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+            "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+            "dev": true,
+            "requires": {
+                "fill-range": "^7.0.1"
+            }
+        },
+        "byline": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
+            "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
+            "dev": true
+        },
+        "caseless": {
+            "version": "0.12.0",
+            "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+            "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+            "dev": true
+        },
+        "castv2": {
+            "version": "0.1.10",
+            "resolved": "https://registry.npmjs.org/castv2/-/castv2-0.1.10.tgz",
+            "integrity": "sha512-3QWevHrjT22KdF08Y2a217IYCDQDP7vEJaY4n0lPBeC5UBYbMFMadDfVTsaQwq7wqsEgYUHElPGm3EO1ey+TNw==",
+            "requires": {
+                "debug": "^4.1.1",
+                "protobufjs": "^6.8.8"
+            },
+            "dependencies": {
+                "debug": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+                    "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+                    "requires": {
+                        "ms": "^2.1.1"
+                    }
+                },
+                "ms": {
+                    "version": "2.1.2",
+                    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+                    "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+                }
+            }
+        },
+        "chalk": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+            "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+            "dev": true,
+            "requires": {
+                "ansi-styles": "^4.1.0",
+                "supports-color": "^7.1.0"
+            }
+        },
+        "color-convert": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+            "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+            "dev": true,
+            "requires": {
+                "color-name": "~1.1.4"
+            }
+        },
+        "color-name": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+            "dev": true
+        },
+        "combined-stream": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+            "dev": true,
+            "requires": {
+                "delayed-stream": "~1.0.0"
+            }
+        },
+        "core-util-is": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+            "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+            "dev": true
+        },
+        "dashdash": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+            "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+            "dev": true,
+            "requires": {
+                "assert-plus": "^1.0.0"
+            }
+        },
+        "deep-is": {
+            "version": "0.1.3",
+            "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+            "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+            "dev": true
+        },
+        "delayed-stream": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+            "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+            "dev": true
+        },
+        "dir-glob": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+            "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+            "dev": true,
+            "requires": {
+                "path-type": "^4.0.0"
+            }
+        },
+        "ecc-jsbn": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+            "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+            "dev": true,
+            "requires": {
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.1.0"
+            }
+        },
+        "escodegen": {
+            "version": "1.14.3",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+            "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+            "dev": true,
+            "requires": {
+                "esprima": "^4.0.1",
+                "estraverse": "^4.2.0",
+                "esutils": "^2.0.2",
+                "optionator": "^0.8.1",
+                "source-map": "~0.6.1"
+            }
+        },
+        "esprima": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+            "dev": true
+        },
+        "estraverse": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+            "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+            "dev": true
+        },
+        "esutils": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+            "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+            "dev": true
+        },
+        "expand-template": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+            "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+            "dev": true
+        },
+        "extend": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+            "dev": true
+        },
+        "extsprintf": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+            "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+            "dev": true
+        },
+        "fast-deep-equal": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+            "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+            "dev": true
+        },
+        "fast-glob": {
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
+            "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
+            "dev": true,
+            "requires": {
+                "@nodelib/fs.stat": "^2.0.2",
+                "@nodelib/fs.walk": "^1.2.3",
+                "glob-parent": "^5.1.0",
+                "merge2": "^1.3.0",
+                "micromatch": "^4.0.2",
+                "picomatch": "^2.2.1"
+            }
+        },
+        "fast-json-stable-stringify": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+            "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+            "dev": true
+        },
+        "fast-levenshtein": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+            "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+            "dev": true
+        },
+        "fast-srp-hap": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/fast-srp-hap/-/fast-srp-hap-2.0.2.tgz",
+            "integrity": "sha512-wABhZRrFhlovqJQ1HygOUB4R6WZW2hmlpvVYh2dVCy8BPLabDrB/Tu6XI3B4QfmhtHk8s1OeiFqJHY7FBsphug=="
+        },
+        "fastq": {
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
+            "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
+            "dev": true,
+            "requires": {
+                "reusify": "^1.0.4"
+            }
+        },
+        "fill-range": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+            "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+            "dev": true,
+            "requires": {
+                "to-regex-range": "^5.0.1"
+            }
+        },
+        "forever-agent": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+            "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+            "dev": true
+        },
+        "form-data": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
+            "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
+            "dev": true,
+            "requires": {
+                "asynckit": "^0.4.0",
+                "combined-stream": "^1.0.8",
+                "mime-types": "^2.1.12"
+            }
+        },
+        "from2": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+            "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+            "dev": true,
+            "requires": {
+                "inherits": "^2.0.1",
+                "readable-stream": "^2.0.0"
+            }
+        },
+        "fs-extra": {
+            "version": "9.1.0",
+            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+            "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+            "dev": true,
+            "requires": {
+                "at-least-node": "^1.0.0",
+                "graceful-fs": "^4.2.0",
+                "jsonfile": "^6.0.1",
+                "universalify": "^2.0.0"
+            }
+        },
+        "getpass": {
+            "version": "0.1.7",
+            "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+            "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+            "dev": true,
+            "requires": {
+                "assert-plus": "^1.0.0"
+            }
+        },
+        "glob-parent": {
+            "version": "5.1.1",
+            "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+            "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+            "dev": true,
+            "requires": {
+                "is-glob": "^4.0.1"
+            }
+        },
+        "globby": {
+            "version": "11.0.1",
+            "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
+            "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
+            "dev": true,
+            "requires": {
+                "array-union": "^2.1.0",
+                "dir-glob": "^3.0.1",
+                "fast-glob": "^3.1.1",
+                "ignore": "^5.1.4",
+                "merge2": "^1.3.0",
+                "slash": "^3.0.0"
+            }
+        },
+        "graceful-fs": {
+            "version": "4.2.6",
+            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+            "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
+            "dev": true
+        },
+        "har-schema": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+            "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+            "dev": true
+        },
+        "har-validator": {
+            "version": "5.1.5",
+            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+            "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+            "dev": true,
+            "requires": {
+                "ajv": "^6.12.3",
+                "har-schema": "^2.0.0"
+            }
+        },
+        "has-flag": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+            "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+            "dev": true
+        },
+        "http-signature": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+            "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+            "dev": true,
+            "requires": {
+                "assert-plus": "^1.0.0",
+                "jsprim": "^1.2.2",
+                "sshpk": "^1.7.0"
+            }
+        },
+        "ignore": {
+            "version": "5.1.8",
+            "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+            "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+            "dev": true
+        },
+        "inherits": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+            "dev": true
+        },
+        "into-stream": {
+            "version": "5.1.1",
+            "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz",
+            "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==",
+            "dev": true,
+            "requires": {
+                "from2": "^2.3.0",
+                "p-is-promise": "^3.0.0"
+            }
+        },
+        "is-extglob": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+            "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+            "dev": true
+        },
+        "is-glob": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+            "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+            "dev": true,
+            "requires": {
+                "is-extglob": "^2.1.1"
+            }
+        },
+        "is-number": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+            "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+            "dev": true
+        },
+        "is-typedarray": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+            "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+            "dev": true
+        },
+        "isarray": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+            "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+            "dev": true
+        },
+        "isstream": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+            "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+            "dev": true
+        },
+        "jsbn": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+            "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+            "dev": true
+        },
+        "json-schema": {
+            "version": "0.2.3",
+            "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+            "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+            "dev": true
+        },
+        "json-schema-traverse": {
+            "version": "0.4.1",
+            "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+            "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+            "dev": true
+        },
+        "json-stringify-safe": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+            "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+            "dev": true
+        },
+        "jsonfile": {
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+            "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+            "dev": true,
+            "requires": {
+                "graceful-fs": "^4.1.6",
+                "universalify": "^2.0.0"
+            }
+        },
+        "jsprim": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+            "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+            "dev": true,
+            "requires": {
+                "assert-plus": "1.0.0",
+                "extsprintf": "1.3.0",
+                "json-schema": "0.2.3",
+                "verror": "1.10.0"
+            }
+        },
+        "levn": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+            "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+            "dev": true,
+            "requires": {
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2"
+            }
+        },
+        "long": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+            "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+        },
+        "mdns": {
+            "version": "2.5.1",
+            "resolved": "https://registry.npmjs.org/mdns/-/mdns-2.5.1.tgz",
+            "integrity": "sha512-JglS7Ed3Yf0BCpyC7LXA1MUrumMV8jj4g67nT3+m886SFYllz2HWBg8ObywFXWbBSv5gW0meMOOS4vVa2jZGCw==",
+            "requires": {
+                "bindings": "~1.2.1",
+                "nan": "^2.14.0"
+            }
+        },
+        "merge2": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+            "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+            "dev": true
+        },
+        "micromatch": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+            "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+            "dev": true,
+            "requires": {
+                "braces": "^3.0.1",
+                "picomatch": "^2.0.5"
+            }
+        },
+        "mime-db": {
+            "version": "1.44.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+            "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
+        },
+        "mime-types": {
+            "version": "2.1.27",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+            "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+            "requires": {
+                "mime-db": "1.44.0"
+            }
+        },
+        "minimist": {
+            "version": "1.2.5",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+        },
+        "mkdirp": {
+            "version": "0.5.5",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+            "dev": true,
+            "requires": {
+                "minimist": "^1.2.5"
+            }
+        },
+        "multistream": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz",
+            "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==",
+            "dev": true,
+            "requires": {
+                "inherits": "^2.0.1",
+                "readable-stream": "^2.0.5"
+            }
+        },
+        "mustache": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz",
+            "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==",
+            "dev": true
+        },
+        "nan": {
+            "version": "2.14.1",
+            "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
+            "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw=="
+        },
+        "node-fetch": {
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+            "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+        },
+        "oauth-sign": {
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+            "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+            "dev": true
+        },
+        "optionator": {
+            "version": "0.8.3",
+            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+            "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+            "dev": true,
+            "requires": {
+                "deep-is": "~0.1.3",
+                "fast-levenshtein": "~2.0.6",
+                "levn": "~0.3.0",
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2",
+                "word-wrap": "~1.2.3"
+            }
+        },
+        "os-tmpdir": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+            "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+            "dev": true
+        },
+        "p-is-promise": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz",
+            "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==",
+            "dev": true
+        },
+        "path-parse": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+            "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+            "dev": true
+        },
+        "path-type": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+            "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+            "dev": true
+        },
+        "performance-now": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+            "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+            "dev": true
+        },
+        "picomatch": {
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+            "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+            "dev": true
+        },
+        "pkg": {
+            "version": "4.4.9",
+            "resolved": "https://registry.npmjs.org/pkg/-/pkg-4.4.9.tgz",
+            "integrity": "sha512-FK4GqHtcCY2PPPVaKViU0NyRzpo6gCS7tPKN5b7AkElqjAOCH1bsRKgohEnxThr6DWfTGByGqba2YHGR/BqbmA==",
+            "dev": true,
+            "requires": {
+                "@babel/parser": "^7.9.4",
+                "@babel/runtime": "^7.9.2",
+                "chalk": "^3.0.0",
+                "escodegen": "^1.14.1",
+                "fs-extra": "^8.1.0",
+                "globby": "^11.0.0",
+                "into-stream": "^5.1.1",
+                "minimist": "^1.2.5",
+                "multistream": "^2.1.1",
+                "pkg-fetch": "^2.6.9",
+                "progress": "^2.0.3",
+                "resolve": "^1.15.1",
+                "stream-meter": "^1.0.4"
+            },
+            "dependencies": {
+                "fs-extra": {
+                    "version": "8.1.0",
+                    "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+                    "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+                    "dev": true,
+                    "requires": {
+                        "graceful-fs": "^4.2.0",
+                        "jsonfile": "^4.0.0",
+                        "universalify": "^0.1.0"
+                    }
+                },
+                "jsonfile": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+                    "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+                    "dev": true,
+                    "requires": {
+                        "graceful-fs": "^4.1.6"
+                    }
+                },
+                "universalify": {
+                    "version": "0.1.2",
+                    "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+                    "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+                    "dev": true
+                }
+            }
+        },
+        "pkg-fetch": {
+            "version": "2.6.9",
+            "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-2.6.9.tgz",
+            "integrity": "sha512-EnVR8LRILXBvaNP+wJOSY02c3+qDDfyEyR+aqAHLhcc9PBnbxFT9UZ1+If49goPQzQPn26TzF//fc6KXZ0aXEg==",
+            "dev": true,
+            "requires": {
+                "@babel/runtime": "^7.9.2",
+                "byline": "^5.0.0",
+                "chalk": "^3.0.0",
+                "expand-template": "^2.0.3",
+                "fs-extra": "^8.1.0",
+                "minimist": "^1.2.5",
+                "progress": "^2.0.3",
+                "request": "^2.88.0",
+                "request-progress": "^3.0.0",
+                "semver": "^6.3.0",
+                "unique-temp-dir": "^1.0.0"
+            },
+            "dependencies": {
+                "fs-extra": {
+                    "version": "8.1.0",
+                    "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+                    "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+                    "dev": true,
+                    "requires": {
+                        "graceful-fs": "^4.2.0",
+                        "jsonfile": "^4.0.0",
+                        "universalify": "^0.1.0"
+                    }
+                },
+                "jsonfile": {
+                    "version": "4.0.0",
+                    "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+                    "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+                    "dev": true,
+                    "requires": {
+                        "graceful-fs": "^4.1.6"
+                    }
+                },
+                "universalify": {
+                    "version": "0.1.2",
+                    "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+                    "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+                    "dev": true
+                }
+            }
+        },
+        "prelude-ls": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+            "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+            "dev": true
+        },
+        "process-nextick-args": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+            "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+            "dev": true
+        },
+        "progress": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+            "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+            "dev": true
+        },
+        "protobufjs": {
+            "version": "6.8.8",
+            "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz",
+            "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==",
+            "requires": {
+                "@protobufjs/aspromise": "^1.1.2",
+                "@protobufjs/base64": "^1.1.2",
+                "@protobufjs/codegen": "^2.0.4",
+                "@protobufjs/eventemitter": "^1.1.0",
+                "@protobufjs/fetch": "^1.1.0",
+                "@protobufjs/float": "^1.0.2",
+                "@protobufjs/inquire": "^1.1.0",
+                "@protobufjs/path": "^1.1.2",
+                "@protobufjs/pool": "^1.1.0",
+                "@protobufjs/utf8": "^1.1.0",
+                "@types/long": "^4.0.0",
+                "@types/node": "^10.1.0",
+                "long": "^4.0.0"
+            },
+            "dependencies": {
+                "@types/node": {
+                    "version": "10.14.19",
+                    "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.19.tgz",
+                    "integrity": "sha512-j6Sqt38ssdMKutXBUuAcmWF8QtHW1Fwz/mz4Y+Wd9mzpBiVFirjpNQf363hG5itkG+yGaD+oiLyb50HxJ36l9Q=="
+                }
+            }
+        },
+        "psl": {
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+            "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
+            "dev": true
+        },
+        "punycode": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+            "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+            "dev": true
+        },
+        "qs": {
+            "version": "6.5.2",
+            "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+            "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+            "dev": true
+        },
+        "rage-edit": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/rage-edit/-/rage-edit-1.2.0.tgz",
+            "integrity": "sha512-0RspBRc2s6We4g7hRCvT5mu7YPEnfjvQK8Tt354a2uUNJCMC7MKLvo/1mLvHUCQ/zbP6siQyp5VRZN7UCpMFZg==",
+            "optional": true
+        },
+        "readable-stream": {
+            "version": "2.3.7",
+            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+            "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+            "dev": true,
+            "requires": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.3",
+                "isarray": "~1.0.0",
+                "process-nextick-args": "~2.0.0",
+                "safe-buffer": "~5.1.1",
+                "string_decoder": "~1.1.1",
+                "util-deprecate": "~1.0.1"
+            }
+        },
+        "regenerator-runtime": {
+            "version": "0.13.7",
+            "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+            "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==",
+            "dev": true
+        },
+        "request": {
+            "version": "2.88.2",
+            "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+            "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+            "dev": true,
+            "requires": {
+                "aws-sign2": "~0.7.0",
+                "aws4": "^1.8.0",
+                "caseless": "~0.12.0",
+                "combined-stream": "~1.0.6",
+                "extend": "~3.0.2",
+                "forever-agent": "~0.6.1",
+                "form-data": "~2.3.2",
+                "har-validator": "~5.1.3",
+                "http-signature": "~1.2.0",
+                "is-typedarray": "~1.0.0",
+                "isstream": "~0.1.2",
+                "json-stringify-safe": "~5.0.1",
+                "mime-types": "~2.1.19",
+                "oauth-sign": "~0.9.0",
+                "performance-now": "^2.1.0",
+                "qs": "~6.5.2",
+                "safe-buffer": "^5.1.2",
+                "tough-cookie": "~2.5.0",
+                "tunnel-agent": "^0.6.0",
+                "uuid": "^3.3.2"
+            },
+            "dependencies": {
+                "form-data": {
+                    "version": "2.3.3",
+                    "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+                    "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+                    "dev": true,
+                    "requires": {
+                        "asynckit": "^0.4.0",
+                        "combined-stream": "^1.0.6",
+                        "mime-types": "^2.1.12"
+                    }
+                }
+            }
+        },
+        "request-progress": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
+            "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
+            "dev": true,
+            "requires": {
+                "throttleit": "^1.0.0"
+            }
+        },
+        "resolve": {
+            "version": "1.17.0",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+            "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+            "dev": true,
+            "requires": {
+                "path-parse": "^1.0.6"
+            }
+        },
+        "reusify": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+            "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+            "dev": true
+        },
+        "run-parallel": {
+            "version": "1.1.9",
+            "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
+            "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==",
+            "dev": true
+        },
+        "safe-buffer": {
+            "version": "5.1.2",
+            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+            "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+            "dev": true
+        },
+        "safer-buffer": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+            "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+            "dev": true
+        },
+        "semver": {
+            "version": "6.3.0",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+            "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+            "dev": true
+        },
+        "slash": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+            "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+            "dev": true
+        },
+        "source-map": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+            "dev": true,
+            "optional": true
+        },
+        "sshpk": {
+            "version": "1.16.1",
+            "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+            "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+            "dev": true,
+            "requires": {
+                "asn1": "~0.2.3",
+                "assert-plus": "^1.0.0",
+                "bcrypt-pbkdf": "^1.0.0",
+                "dashdash": "^1.12.0",
+                "ecc-jsbn": "~0.1.1",
+                "getpass": "^0.1.1",
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.0.2",
+                "tweetnacl": "~0.14.0"
+            },
+            "dependencies": {
+                "tweetnacl": {
+                    "version": "0.14.5",
+                    "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+                    "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+                    "dev": true
+                }
+            }
+        },
+        "stream-buffers": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
+            "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ="
+        },
+        "stream-meter": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz",
+            "integrity": "sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=",
+            "dev": true,
+            "requires": {
+                "readable-stream": "^2.1.4"
+            }
+        },
+        "string_decoder": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+            "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "~5.1.0"
+            }
+        },
+        "supports-color": {
+            "version": "7.1.0",
+            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+            "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+            "dev": true,
+            "requires": {
+                "has-flag": "^4.0.0"
+            }
+        },
+        "throttleit": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+            "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+            "dev": true
+        },
+        "to-regex-range": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+            "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+            "dev": true,
+            "requires": {
+                "is-number": "^7.0.0"
+            }
+        },
+        "tough-cookie": {
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+            "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+            "dev": true,
+            "requires": {
+                "psl": "^1.1.28",
+                "punycode": "^2.1.1"
+            }
+        },
+        "tunnel-agent": {
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+            "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+            "dev": true,
+            "requires": {
+                "safe-buffer": "^5.0.1"
+            }
+        },
+        "tweetnacl": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+            "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+        },
+        "type-check": {
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+            "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+            "dev": true,
+            "requires": {
+                "prelude-ls": "~1.1.2"
+            }
+        },
+        "typescript": {
+            "version": "4.2.4",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
+            "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
+            "dev": true
+        },
+        "uid2": {
+            "version": "0.0.3",
+            "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
+            "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=",
+            "dev": true
+        },
+        "unique-temp-dir": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz",
+            "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=",
+            "dev": true,
+            "requires": {
+                "mkdirp": "^0.5.1",
+                "os-tmpdir": "^1.0.1",
+                "uid2": "0.0.3"
+            }
+        },
+        "universalify": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+            "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+            "dev": true
+        },
+        "uri-js": {
+            "version": "4.2.2",
+            "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+            "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+            "dev": true,
+            "requires": {
+                "punycode": "^2.1.0"
+            }
+        },
+        "util-deprecate": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+            "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+            "dev": true
+        },
+        "uuid": {
+            "version": "3.4.0",
+            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+            "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+            "dev": true
+        },
+        "verror": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+            "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+            "dev": true,
+            "requires": {
+                "assert-plus": "^1.0.0",
+                "core-util-is": "1.0.2",
+                "extsprintf": "^1.2.0"
+            }
+        },
+        "word-wrap": {
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+            "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+            "dev": true
+        },
+        "ws": {
+            "version": "7.4.5",
+            "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
+            "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g=="
+        }
+    }
+}
diff --git a/nixpkgs/pkgs/tools/misc/fx_cast/package.json b/nixpkgs/pkgs/tools/misc/fx_cast/package.json
new file mode 100644
index 000000000000..2c155f78632f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fx_cast/package.json
@@ -0,0 +1,41 @@
+{
+    "name": "fx_cast_bridge",
+    "version": "0.1.2",
+    "__applicationName": "fx_cast_bridge",
+    "__applicationVersion": "0.1.0",
+    "__applicationDirectoryName": "fx_cast",
+    "__applicationExecutableName": "fx_cast_bridge",
+    "scripts": {
+        "build": "node bin/build.js",
+        "package": "node bin/build.js --package",
+        "install-manifest": "node bin/install-manifest.js",
+        "remove-manifest": "node bin/install-manifest.js --remove"
+    },
+    "dependencies": {
+        "@types/minimist": "^1.2.1",
+        "@types/ws": "^7.4.0",
+        "bplist-creator": "0.0.8",
+        "bplist-parser": "^0.2.0",
+        "castv2": "^0.1.10",
+        "fast-srp-hap": "^2.0.2",
+        "mdns": "^2.5.1",
+        "mime-types": "^2.1.27",
+        "minimist": "^1.2.5",
+        "node-fetch": "^2.6.0",
+        "tweetnacl": "^1.0.3",
+        "ws": "^7.4.3"
+    },
+    "devDependencies": {
+        "@types/mdns": "0.0.33",
+        "@types/mime-types": "^2.1.0",
+        "@types/node": "^13.13.15",
+        "@types/node-fetch": "^2.5.7",
+        "fs-extra": "^9.1.0",
+        "mustache": "^4.0.1",
+        "pkg": "^4.4.9",
+        "typescript": "^4.1.5"
+    },
+    "optionalDependencies": {
+        "rage-edit": "^1.2.0"
+    }
+}
diff --git a/nixpkgs/pkgs/tools/misc/fzf/default.nix b/nixpkgs/pkgs/tools/misc/fzf/default.nix
index 0688f1d6487e..3ef5a643259c 100644
--- a/nixpkgs/pkgs/tools/misc/fzf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fzf/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.27.0";
+  version = "0.27.2";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-q0rAAD6du0WLcd46LUpkG3gBIvmtOE/foEMW5QCoIak=";
+    sha256 = "sha256-JWTyZRZrW1mFy91D+eZL6iYV0CcNxJUT4JA0hrBKZZU=";
   };
 
   vendorSha256 = "sha256-FKDCIotyra/TZ48wbpzudJZ2aI2pn+ZR4EoZ+9+19Mw=";
diff --git a/nixpkgs/pkgs/tools/misc/g933-utils/default.nix b/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
index 7fbfadfac76d..6116f15f7290 100644
--- a/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0";
   };
 
-  cargoSha256 = "16xgk4rc36d6lylh2dzv63ryq9s7fli3h2qva1m1p6f0gpasnk7w";
+  cargoSha256 = "00gzfbxr5qzb9w7xkqd9jgfagb4c7p657m21b467pygzvaabbb8d";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ udev ];
diff --git a/nixpkgs/pkgs/tools/misc/gh-ost/default.nix b/nixpkgs/pkgs/tools/misc/gh-ost/default.nix
index dd28ddfaff55..bc7d3f6db42a 100644
--- a/nixpkgs/pkgs/tools/misc/gh-ost/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gh-ost/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gh-ost";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "github";
     repo = "gh-ost";
     rev = "v${version}";
-    sha256 = "0laj5nmf10qn01mqn0flipmhankgvrcfbdl3bc76wa14qkkg722m";
+    sha256 = "sha256-srJXzY4TTHZDYKq8OPqin4zRoYlmaJKhHXDzO/GjBV8=";
   };
 
   goPackagePath = "github.com/github/gh-ost";
diff --git a/nixpkgs/pkgs/tools/misc/goaccess/default.nix b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
index 5ccf4b96d818..6f0c90517da4 100644
--- a/nixpkgs/pkgs/tools/misc/goaccess/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, ncurses, gettext, openssl, withGeolocation ? true, libmaxminddb }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.6";
+  version = "1.5";
   pname = "goaccess";
 
   src = fetchurl {
     url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "1l3j3i4vb7ni7i047qvi9a3hs43ym24r6hfcnqsbhgrb731jf3qx";
+    sha256 = "sha256-liJtXfiXAyg+NBCcF+G07v4kBKWefHaitu76EPOqwWE=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
index 77cb54ce58d3..a5c3fbad32d9 100644
--- a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.164.0";
+  version = "0.166.2";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DGiA9Ww/8sHNRgZ7nOx60YVZaxYBH5GJf6KqilwRKrE=";
+    sha256 = "sha256-+8hh4BR6sTpQyNeiaXgcp/ezPptvbZESky6VAAg1dfI=";
   };
 
-  vendorSha256 = "sha256-y7GesJU2kDtC5S6rnduDX9gcXakNIR8MdLuPW2m1QWs=";
+  vendorSha256 = "sha256-PkSvdpP9SuftxdcZMA5xG1zSb87e1Ui/oX+HdLBEW0E=";
 
   buildFlagsArray = [
     "-ldflags="
diff --git a/nixpkgs/pkgs/tools/misc/goss/default.nix b/nixpkgs/pkgs/tools/misc/goss/default.nix
new file mode 100644
index 000000000000..bbe947ecd120
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/goss/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "goss";
+  version = "0.3.16";
+
+  src = fetchFromGitHub {
+    owner = "aelsabbahy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m5w5vwmc9knvaihk61848rlq7qgdyylzpcwi64z84rkw8qdnj6p";
+  };
+
+  vendorSha256 = "1lyqjkwj8hybj5swyrv6357hs8sxmf4wim0c8yhfb9mv7fsxhrv7";
+
+  CGO_ENABLED = 0;
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X main.version=v${version}")
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/aelsabbahy/goss/";
+    changelog = "https://github.com/aelsabbahy/goss/releases/tag/v${version}";
+    description = "Quick and easy server validation";
+    longDescription = ''
+      Goss is a YAML based serverspec alternative tool for validating a server’s configuration.
+      It eases the process of writing tests by allowing the user to generate tests from the current system state.
+      Once the test suite is written they can be executed, waited-on, or served as a health endpoint.
+    '';
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hyzual jk ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/gparted/default.nix b/nixpkgs/pkgs/tools/misc/gparted/default.nix
index 3b63d7c02039..f661f2cf97d5 100644
--- a/nixpkgs/pkgs/tools/misc/gparted/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gparted/default.nix
@@ -1,14 +1,15 @@
-{ lib, stdenv, fetchurl, intltool, gettext, makeWrapper, coreutils, gnused, gnome3
+{ lib, stdenv, fetchurl, intltool, gettext, coreutils, gnused, gnome
 , gnugrep, parted, glib, libuuid, pkg-config, gtkmm3, libxml2
 , gpart, hdparm, procps, util-linux, polkit, wrapGAppsHook, substituteAll
 }:
 
 stdenv.mkDerivation rec {
-  name = "gparted-1.2.0";
+  pname = "gparted";
+  version = "1.3.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gparted/${name}.tar.gz";
-    sha256 = "sha256-bJBxXSVNen7AIIspAHtkFg3Z+330xKp/jsLJ0jEUxxk=";
+    url = "mirror://sourceforge/gparted/${pname}-${version}.tar.gz";
+    sha256 = "sha256-jcGAJF3Z6kXm4vS8aVEvGH4Ivn95nJioJaCwTBYcvSo=";
   };
 
   # Tries to run `pkexec --version` to get version.
@@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-doc" ];
 
-  buildInputs = [ parted glib libuuid gtkmm3 libxml2 polkit.bin gnome3.adwaita-icon-theme  ];
+  buildInputs = [ parted glib libuuid gtkmm3 libxml2 polkit.bin gnome.adwaita-icon-theme  ];
   nativeBuildInputs = [ intltool gettext pkg-config wrapGAppsHook ];
 
   preFixup = ''
diff --git a/nixpkgs/pkgs/tools/misc/grex/default.nix b/nixpkgs/pkgs/tools/misc/grex/default.nix
index bef1e59e65d8..4d391b099437 100644
--- a/nixpkgs/pkgs/tools/misc/grex/default.nix
+++ b/nixpkgs/pkgs/tools/misc/grex/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
   pname = "grex";
   version = "1.2.0";
 
-  cargoSha256 = "sha256-EZnuGoysTZMpk2pndOzfXyRnN696RpKze27utQWNFTY=";
+  cargoSha256 = "sha256-aEwMJ9f08SJhrL8kLaTp54yP1hYGb3Ob5KNzZ5r752s=";
 
   src = fetchFromGitHub {
     owner = "pemistahl";
diff --git a/nixpkgs/pkgs/tools/misc/gringo/default.nix b/nixpkgs/pkgs/tools/misc/gringo/default.nix
index ae161af488d6..f08bad03916a 100644
--- a/nixpkgs/pkgs/tools/misc/gringo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gringo/default.nix
@@ -32,12 +32,12 @@ stdenv.mkDerivation {
     substituteInPlace ./SConstruct \
       --replace \
         "env['CPPPATH']        = []" \
-        "env['CPPPATH']        = ['${libcxx}/include/c++/v1']"
+        "env['CPPPATH']        = ['${lib.getDev libcxx}/include/c++/v1']"
 
     substituteInPlace ./SConstruct \
       --replace \
         "env['LIBPATH']        = []" \
-        "env['LIBPATH']        = ['${libcxx}/lib']"
+        "env['LIBPATH']        = ['${lib.getLib libcxx}/lib']"
   '';
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
index 29ce5b23faaa..fcf29beb1882 100644
--- a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
+++ b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool
 , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
+, buildPackages
+, fetchpatch
 , pkgsBuildBuild
 , nixosTests
 , fuse # only needed for grub-mount
@@ -21,6 +23,7 @@ let
   efiSystemsBuild = {
     i686-linux.target = "i386";
     x86_64-linux.target = "x86_64";
+    armv7l-linux.target = "arm";
     aarch64-linux.target = "aarch64";
   };
 
@@ -29,6 +32,7 @@ let
   efiSystemsInstall = {
     i686-linux.target = "i386";
     x86_64-linux.target = "x86_64";
+    armv7l-linux.target = "arm";
     aarch64-linux.target = "arm64";
   };
 
@@ -55,6 +59,12 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./fix-bash-completion.patch
+    (fetchpatch {
+      name = "Add-hidden-menu-entries.patch";
+      # https://lists.gnu.org/archive/html/grub-devel/2016-04/msg00089.html
+      url = "https://marc.info/?l=grub-devel&m=146193404929072&q=mbox";
+      sha256 = "00wa1q5adiass6i0x7p98vynj9vsz1w0gn1g4dgz89v35mpyw2bi";
+    })
   ];
 
   postPatch = if kbdcompSupport then ''
@@ -64,7 +74,8 @@ stdenv.mkDerivation rec {
     echo 'echo "Compile grub2 with { kbdcompSupport = true; } to enable support for this command."' >> util/grub-kbdcomp.in
   '';
 
-  nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext ];
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext freetype ];
   buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
@@ -105,9 +116,18 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--enable-grub-mount" # dep of os-prober
-    "BUILD_CC=${pkgsBuildBuild.stdenv.cc}/bin/cc"
-  ]
-    ++ optional zfsSupport "--enable-libzfs"
+  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    # grub doesn't do cross-compilation as usual and tries to use unprefixed
+    # tools to target the host. Provide toolchain information explicitly for
+    # cross builds.
+    #
+    # Ref: # https://github.com/buildroot/buildroot/blob/master/boot/grub2/grub2.mk#L108
+    "TARGET_CC=${stdenv.cc.targetPrefix}cc"
+    "TARGET_NM=${stdenv.cc.targetPrefix}nm"
+    "TARGET_OBJCOPY=${stdenv.cc.targetPrefix}objcopy"
+    "TARGET_RANLIB=${stdenv.cc.targetPrefix}ranlib"
+    "TARGET_STRIP=${stdenv.cc.targetPrefix}strip"
+  ] ++ optional zfsSupport "--enable-libzfs"
     ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}" "--program-prefix=" ]
     ++ optionals xenSupport [ "--with-platform=xen" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}"];
 
diff --git a/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix b/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix
index 2dffada9fe74..e52ae44a83f9 100644
--- a/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gsmartcontrol/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, smartmontools, autoreconfHook, gettext, gtkmm3, pkg-config, wrapGAppsHook, pcre-cpp, gnome3 }:
+{ fetchurl, lib, stdenv, smartmontools, autoreconfHook, gettext, gtkmm3, pkg-config, wrapGAppsHook, pcre-cpp, gnome }:
 
 stdenv.mkDerivation rec {
   version="1.1.3";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ autoreconfHook gettext pkg-config wrapGAppsHook ];
-  buildInputs = [ gtkmm3 pcre-cpp gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtkmm3 pcre-cpp gnome.adwaita-icon-theme ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/misc/gwe/default.nix b/nixpkgs/pkgs/tools/misc/gwe/default.nix
new file mode 100644
index 000000000000..2eeb2f0d2c54
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/gwe/default.nix
@@ -0,0 +1,89 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, wrapGAppsHook
+, makeWrapper
+, pkg-config
+, meson
+, ninja
+, cmake
+, gobject-introspection
+, desktop-file-utils
+, python3
+, gtk3
+, libdazzle
+, libappindicator-gtk3
+, libnotify
+, nvidia_x11
+ }:
+
+let
+ pythonEnv = python3.withPackages (pypkgs: with pypkgs; [
+   injector
+   matplotlib
+   peewee
+   pynvml
+   pygobject3
+   xlib
+   pyxdg
+   requests
+   rx
+   gtk3
+ ]);
+in stdenv.mkDerivation rec {
+  pname = "gwe";
+  version = "0.15.3";
+
+  src = fetchFromGitLab {
+    owner = "leinardi";
+    repo = pname;
+    rev = version;
+    sha256 = "1znd2g02j0klg8w6cgwvaxc8anan6sidadknl0vh9jxmzz75xp9z";
+  };
+
+  prePatch = ''
+    patchShebangs scripts/{make_local_manifest,meson_post_install}.py
+
+    substituteInPlace gwe/repository/nvidia_repository.py \
+      --replace "from py3nvml import py3nvml" "import pynvml" \
+      --replace "py3nvml.py3nvml" "pynvml" \
+      --replace "py3nvml" "pynvml"
+  '';
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    pkg-config
+    meson
+    ninja
+    cmake
+    gobject-introspection
+    desktop-file-utils
+    pythonEnv
+  ];
+
+  buildInputs = [
+    gtk3
+    libdazzle
+    libappindicator-gtk3
+    libnotify
+  ];
+
+  postInstall = ''
+    mv $out/bin/gwe $out/lib/gwe-bin
+
+    makeWrapper ${pythonEnv}/bin/python $out/bin/gwe \
+      --add-flags "$out/lib/gwe-bin" \
+      --prefix LD_LIBRARY_PATH : "/run/opengl-driver/lib" \
+      --prefix PATH : "${builtins.concatStringsSep ":" [ (lib.makeBinPath [ nvidia_x11 nvidia_x11.settings ]) "/run/wrappers/bin" ]}" \
+      --unset "SHELL" \
+      ''${gappsWrapperArgs[@]}
+  '';
+
+  meta = with lib; {
+    description = "System utility designed to provide information, control the fans and overclock your NVIDIA card";
+    homepage = "https://gitlab.com/leinardi/gwe";
+    platforms = platforms.linux;
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/hacksaw/default.nix b/nixpkgs/pkgs/tools/misc/hacksaw/default.nix
index 419cff20087f..6eecee46a380 100644
--- a/nixpkgs/pkgs/tools/misc/hacksaw/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hacksaw/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1l6i91xb81p1li1j2jm0r2rx8dbzl2yh468cl3dw0lqpqy4i65hx";
   };
 
-  cargoSha256 = "01draql3x71h7xl2xcc69dv7vpi3smnajhrvaihs5vij81pyfrzk";
+  cargoSha256 = "1rykc06lq3bkblsrj68rbil63yqdnvxkxlppq1w74wf0d6cwjc08";
 
   meta = with lib; {
     description = "Lightweight selection tool for usage in screenshot scripts etc";
diff --git a/nixpkgs/pkgs/tools/misc/handlr/default.nix b/nixpkgs/pkgs/tools/misc/handlr/default.nix
index baa718c1b1fc..e9cd89c5f2dc 100644
--- a/nixpkgs/pkgs/tools/misc/handlr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/handlr/default.nix
@@ -1,24 +1,31 @@
-{ lib, rustPlatform, fetchFromGitHub, shared-mime-info }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, shared-mime-info, libiconv, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "handlr";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner = "chmln";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OtU6sL2Bbbec0gHxk3bl5Inn+ZmNYiHgpSF0gjDuRSg=";
+    sha256 = "sha256-UYcJtBwbUDqDiRoj5PmO+urURfd7S7fSx2XhQRBrKTE=";
   };
 
-  cargoSha256 = "sha256-bX7QWV1R+pLxvghpaV10LeROv4wBVfZhHyrPCIgqETA=";
+  cargoSha256 = "sha256-xDQV8wVlzItz0lzR1nVRPVsg7nSf/khUhevDlGgSO3g=";
 
-  nativeBuildInputs = [ shared-mime-info ];
+  nativeBuildInputs = [ installShellFiles shared-mime-info ];
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   preCheck = ''
     export HOME=$TEMPDIR
   '';
 
+  postInstall = ''
+    installShellCompletion \
+      --zsh  completions/_handlr \
+      --fish completions/handlr.fish
+  '';
+
   meta = with lib; {
     description = "Alternative to xdg-open to manage default applications with ease";
     homepage = "https://github.com/chmln/handlr";
diff --git a/nixpkgs/pkgs/tools/misc/hdf5/1.10.nix b/nixpkgs/pkgs/tools/misc/hdf5/1.10.nix
index 1a972daf6104..4e57a1c8e48a 100644
--- a/nixpkgs/pkgs/tools/misc/hdf5/1.10.nix
+++ b/nixpkgs/pkgs/tools/misc/hdf5/1.10.nix
@@ -3,25 +3,32 @@
 , removeReferencesTo
 , zlib ? null
 , enableShared ? !stdenv.hostPlatform.isStatic
+, javaSupport ? false
+, jdk
 }:
 
 let inherit (lib) optional optionals; in
 
 stdenv.mkDerivation rec {
-  version = "1.10.7";
+  # pinned to 1.10.6 for pythonPackages.tables v3.6.1. tables has test errors for hdf5 > 1.10.6. https://github.com/PyTables/PyTables/issues/845
+  version = "1.10.6";
   pname = "hdf5";
   src = fetchurl {
     url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${lib.versions.majorMinor version}/${pname}-${version}/src/${pname}-${version}.tar.bz2";
-    sha256 = "0pm5xxry55i0h7wmvc7svzdaa90rnk7h78rrjmnlkz2ygsn8y082";
+    sha256 = "1gf38x51128hn00744358w27xgzjk0ff4wra4yxh2lk804ck1mh9";
   };
 
   outputs = [ "out" "dev" ];
 
+  buildInputs = optional javaSupport jdk;
+
   nativeBuildInputs = [ removeReferencesTo ];
 
   propagatedBuildInputs = optional (zlib != null) zlib;
 
-  configureFlags = optional enableShared "--enable-shared";
+  configureFlags = []
+    ++ optional enableShared "--enable-shared"
+    ++ optional javaSupport "--enable-java";
 
   patches = [
     ./bin-mv.patch
diff --git a/nixpkgs/pkgs/tools/misc/heatseeker/default.nix b/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
index 9d50530df471..fd89775afd6b 100644
--- a/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
+++ b/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1x7mdyf1m17s55f6yjdr1j510kb7a8f3zkd7lb2kzdc7nd3vgaxg";
   };
 
-  cargoSha256 = "0jnlcm7v29m4nc318qgf7r7jvs80s7n04fw83imm506vwr9rxbx9";
+  cargoSha256 = "0qs2s1bi93sdmmmfmkcnf55fm2blj9f095k95m210fyv5fpizdfm";
 
   # https://github.com/rschmitt/heatseeker/issues/42
   # I've suggested using `/usr/bin/env stty`, but doing that isn't quite as simple
diff --git a/nixpkgs/pkgs/tools/misc/heimdall/default.nix b/nixpkgs/pkgs/tools/misc/heimdall/default.nix
index 41b6adb7bfa2..3dcefa8b2d0f 100644
--- a/nixpkgs/pkgs/tools/misc/heimdall/default.nix
+++ b/nixpkgs/pkgs/tools/misc/heimdall/default.nix
@@ -31,7 +31,11 @@ mkDerivation {
     substituteInPlace libpit/CMakeLists.txt --replace "-std=gnu++11" ""
   '';
 
-  installPhase = ''
+  installPhase = lib.optionalString (stdenv.isDarwin && enableGUI) ''
+    mkdir -p $out/Applications
+    mv bin/heimdall-frontend.app $out/Applications/heimdall-frontend.app
+    wrapQtApp $out/Applications/heimdall-frontend.app/Contents/MacOS/heimdall-frontend
+  '' + ''
     mkdir -p $out/{bin,share/doc/heimdall,lib/udev/rules.d}
     install -m755 -t $out/bin                bin/*
     install -m644 -t $out/lib/udev/rules.d   ../heimdall/60-heimdall.rules
diff --git a/nixpkgs/pkgs/tools/misc/hexyl/default.nix b/nixpkgs/pkgs/tools/misc/hexyl/default.nix
index d825368cb970..3f11490fcc4d 100644
--- a/nixpkgs/pkgs/tools/misc/hexyl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hexyl/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0aj2sysl0spf5zlcd5kfzlw97w7dzf9x93pv0d1v9blnbd1rz7lm";
   };
 
-  cargoSha256 = "1am9vs7l2wzgwqakrsl27x1y7jpn9xaqa4kr48wwqzka401h6j4m";
+  cargoSha256 = "08hn0csw12xaag95gb5rj4q7k2zyy9j9bf4iw3b0r3ndh66qqra2";
 
   meta = with lib; {
     changelog = "https://github.com/sharkdp/hexyl/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/tools/misc/hyperfine/default.nix b/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
index 39999677b11f..747c1e56a819 100644
--- a/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0dla2jzwcxkdx3n4fqkkh6wirqs2f31lvqsw2pjf1jbnnif54mzh";
   };
 
-  cargoSha256 = "12qdllhydd29xh20l5gir6qpj4a1nkzp8ics344rcwj8wsj7g5zw";
+  cargoSha256 = "13dd5x0mr1pqcba48w9v5jjpddapd7gk34d4bysbjqsriwpbrdgp";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optional stdenv.isDarwin Security;
diff --git a/nixpkgs/pkgs/tools/misc/i3nator/default.nix b/nixpkgs/pkgs/tools/misc/i3nator/default.nix
index a6d78d3c4c92..99f0edeeafd7 100644
--- a/nixpkgs/pkgs/tools/misc/i3nator/default.nix
+++ b/nixpkgs/pkgs/tools/misc/i3nator/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "10rxvxq48dhzlw5p9fsj6x0ci4pap85s9b192zakgvk4h97ifp2p";
   };
 
-  cargoSha256 = "1i58ix414klm72562scqhb0lmy4wgpiksriz5qs4ss7lzvqdsizy";
+  cargoSha256 = "04sx1dsznvh60s2yd9bzbvj6fgjvj37vv33qpww13fyph832i37g";
 
   meta = with lib; {
     description = "Tmuxinator for the i3 window manager";
diff --git a/nixpkgs/pkgs/tools/misc/inav-blackbox-tools/default.nix b/nixpkgs/pkgs/tools/misc/inav-blackbox-tools/default.nix
new file mode 100644
index 000000000000..5f2fb65f9f3d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/inav-blackbox-tools/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, cairo }:
+
+stdenv.mkDerivation rec {
+  pname = "inav-blackbox-tools";
+  version = "unstable-2021-04-22";
+
+  src = fetchFromGitHub {
+    owner = "iNavFlight";
+    repo = "blackbox-tools";
+    rev = "0109e2fb9b44d593e60bca4cef4098d83c55c373";
+    sha256 = "1rdlw74dqq0hahnka2w2pgvs172vway2x6v8byxl2s773l22k4ln";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ cairo ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+    cp obj/{blackbox_decode,blackbox_render,encoder_testbed} "$out/bin"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tools for working with blackbox flight logs";
+    homepage = "https://github.com/inavflight/blackbox-tools";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ expipiplus1 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/intermodal/default.nix b/nixpkgs/pkgs/tools/misc/intermodal/default.nix
index 2b187b657600..c1f182d69660 100644
--- a/nixpkgs/pkgs/tools/misc/intermodal/default.nix
+++ b/nixpkgs/pkgs/tools/misc/intermodal/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0mn0wm3bihn7ffqk0p79mb1hik54dbhc9diq1wh9ylpld2iqmz68";
   };
 
-  cargoSha256 = "0kf5afarfwcl47b40pwnslfvxmxllmb995vc5ls2lpz4cx0jwahn";
+  cargoSha256 = "1bvs23rb25qdwbrygzq11p8cvck5lxjp9llvs1cjdh0qzr65jwla";
 
   # include_hidden test tries to use `chflags` on darwin
   checkFlagsArray = lib.optionals stdenv.isDarwin [ "--skip=subcommand::torrent::create::tests::include_hidden" ];
diff --git a/nixpkgs/pkgs/tools/misc/ipbt/default.nix b/nixpkgs/pkgs/tools/misc/ipbt/default.nix
index 8ee6bb5addb9..25dad59c9fef 100644
--- a/nixpkgs/pkgs/tools/misc/ipbt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ipbt/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, perl, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "20190601.d1519e0";
+  version = "20210215.5a9cb02";
   pname = "ipbt";
 
   src = fetchurl {
     url = "https://www.chiark.greenend.org.uk/~sgtatham/ipbt/ipbt-${version}.tar.gz";
-    sha256 = "1aj8pajdd81vq2qw6vzfm27i0aj8vfz9m7k3sda30pnsrizm06d5";
+    sha256 = "0w6blpv22jjivzr58y440zv6djvi5iccdmj4y2md52fbpjngmsha";
   };
 
   nativeBuildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/tools/misc/jdupes/default.nix b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
index d06fc7aef69a..2589b57821b8 100644
--- a/nixpkgs/pkgs/tools/misc/jdupes/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.19.2";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "sha256-3lWrSybYp3RrUnydosgsNkGQjrk7JvxuxjMslN4cGfk=";
+    sha256 = "sha256-G6ixqSIdDoM/OVlPfv2bI4MA/k0x3Jic/kFo5XEsN/M=";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
diff --git a/nixpkgs/pkgs/tools/misc/journaldriver/default.nix b/nixpkgs/pkgs/tools/misc/journaldriver/default.nix
index 70460d86fc9b..5ce1bb5d158e 100644
--- a/nixpkgs/pkgs/tools/misc/journaldriver/default.nix
+++ b/nixpkgs/pkgs/tools/misc/journaldriver/default.nix
@@ -3,7 +3,7 @@
 rustPlatform.buildRustPackage rec {
   pname = "journaldriver";
   version     = "1.1.0";
-  cargoSha256 = "1vyc9pglppfz5idahvcj01wpmmm6jw043zk896wdksywa5zcqn28";
+  cargoSha256 = "1gzfwkcm63fn41jls16c5sqxz28b0hrfpjhwsvvbwcfv40qxjhsg";
 
   src = fetchFromGitHub {
     owner  = "tazjin";
diff --git a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
index 51134e48c041..d57a48598e02 100644
--- a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1wfv2fy5ga6kc51zka3pak0hq97csm2l11bz74w3n1hrf5q9nnf8";
   };
 
-  cargoSha256 = "0g67s6n45rxvv1q5s7x5ajh5n16p68bhlsrsjp46qamrraz63d68";
+  cargoSha256 = "1b6bcqbdkpxgxyfz89d8fhxfxvqc988pa9wxq5fsihnix8bm7jdk";
 
   buildInputs = lib.optional stdenv.isDarwin [ Security ];
 
diff --git a/nixpkgs/pkgs/tools/misc/kalker/default.nix b/nixpkgs/pkgs/tools/misc/kalker/default.nix
new file mode 100644
index 000000000000..503edb910f0c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/kalker/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, fetchFromGitHub
+, m4
+, rustPlatform
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "kalker";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "PaddiM8";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-1iZvp30/V0bw9NBxiKNiDgOMYJkDsGhTGdBsAPggdEg=";
+  };
+
+  cargoSha256 = "sha256-fBWnMlOLgwrOBPS2GIfOUDHQHcMMaU5r9JZVMbA+W58=";
+
+  nativeBuildInputs = [ m4 ];
+
+  outputs = [ "out" "lib" ];
+
+  postInstall = ''
+    moveToOutput "lib" "$lib"
+  '';
+
+  meta = with lib; {
+    homepage = "https://kalker.strct.net";
+    changelog = "https://github.com/PaddiM8/kalker/releases/tag/v${version}";
+    description = "A command line calculator";
+    longDescription = ''
+      A command line calculator that supports math-like syntax with user-defined
+      variables, functions, derivation, integration, and complex numbers
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix b/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix
index 56795e7c93f3..10b9cea73d76 100644
--- a/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kodi-cli/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, bash, jq, youtube-dl, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, bash, jq, youtube-dl, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "kodi-cli";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     cp -a kodi-cli $out/bin
     wrapProgram $out/bin/kodi-cli --prefix PATH : ${lib.makeBinPath [ curl bash ]}
     cp -a playlist_to_kodi $out/bin
-    wrapProgram $out/bin/playlist_to_kodi --prefix PATH : ${lib.makeBinPath [ curl bash gnome3.zenity jq youtube-dl ]}
+    wrapProgram $out/bin/playlist_to_kodi --prefix PATH : ${lib.makeBinPath [ curl bash gnome.zenity jq youtube-dl ]}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/krapslog/default.nix b/nixpkgs/pkgs/tools/misc/krapslog/default.nix
index 4574d6c3534a..c6f1cf8f8169 100644
--- a/nixpkgs/pkgs/tools/misc/krapslog/default.nix
+++ b/nixpkgs/pkgs/tools/misc/krapslog/default.nix
@@ -1,17 +1,19 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "krapslog";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "acj";
     repo = "krapslog-rs";
     rev = version;
-    sha256 = "1yllvy3z3115aqxhnjn9rq2z67rgf2w53naygnl6ixpjhpafcr3k";
+    sha256 = "sha256-Ab5bY5r0tYx3JxYRRq7i9O7WFvdi6cRMSuru/pK50y8=";
   };
 
-  cargoSha256 = "05gvl6yiyibcdscdf9a6k28xizdr5kfqbhynfbjny2hpqqjmnxzl";
+  cargoSha256 = "sha256-k7jsWMFU/8XogREic4GB+qYocFtiTvSzvBAcORUFe0o=";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description = "Visualize a log file with sparklines";
diff --git a/nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix b/nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix
index d2396f0086c4..09d6de6ad9d3 100644
--- a/nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/librespeed-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "librespeed-cli";
-  version = "1.0.7";
+  version = "1.0.9";
 
   src = fetchFromGitHub {
     owner = "librespeed";
     repo = "speedtest-cli";
     rev = "v${version}";
-    sha256 = "03bhxx33fy1cgp83anm51fm8v079v0az0d0p785dz98jg14vzibl";
+    sha256 = "sha256-rtZZgx5QNwYd6vXSts/ICSiXv7sMZA8ihHgxTjZ/6KQ=";
   };
 
-  vendorSha256 = "1kccxmmzbkzbrxypcrz0j1zz51c0q1d5hh25lcpfbkm3498mj02c";
+  vendorSha256 = "sha256-psZyyySpY06J+ji+9uHUtX7Ks1hzZC3zINszYP75NfQ=";
 
   # Tests have additonal requirements
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/misc/licensor/default.nix b/nixpkgs/pkgs/tools/misc/licensor/default.nix
index ef708ab9afe4..6cf31c7835c1 100644
--- a/nixpkgs/pkgs/tools/misc/licensor/default.nix
+++ b/nixpkgs/pkgs/tools/misc/licensor/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0x0lkfrj7jka0p6nx6i9syz0bnzya5z9np9cw09zm1c9njv9mm32";
   };
 
-  cargoSha256 = "1yix40351yasg7mjmz7qwvwh1dq292dv47gy2a3bwkzhcn6whyjf";
+  cargoSha256 = "1h66d1brx441bg7vzbqdish4avgmc6h7rrkw2qf1siwmplwqqhw0";
 
   meta = with lib; {
     description = "Write licenses to stdout";
diff --git a/nixpkgs/pkgs/tools/misc/logtop/default.nix b/nixpkgs/pkgs/tools/misc/logtop/default.nix
index 855a85f53aac..2113da9976fb 100644
--- a/nixpkgs/pkgs/tools/misc/logtop/default.nix
+++ b/nixpkgs/pkgs/tools/misc/logtop/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses uthash ];
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
   installFlags = [ "DESTDIR=$(out)" ];
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/tools/misc/loop/default.nix b/nixpkgs/pkgs/tools/misc/loop/default.nix
index 0c3e206a9f28..17491b645d4b 100644
--- a/nixpkgs/pkgs/tools/misc/loop/default.nix
+++ b/nixpkgs/pkgs/tools/misc/loop/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage {
     sha256 = "0v61kahwk1kdy8pb40rjnzcxby42nh02nyg9jqqpx3vgdrpxlnix";
   };
 
-  cargoSha256 = "0a3l580ca23vx8isd1qff870ci3p7wf4qrm53jl7nhfjh7rg5a4w";
+  cargoSha256 = "0pk6hwmzs58vgbkvmlpa4s4cd29izp6xq17zaix5v2didbzr5ixi";
 
   meta = with lib; {
     description = "UNIX's missing `loop` command";
diff --git a/nixpkgs/pkgs/tools/misc/lorri/default.nix b/nixpkgs/pkgs/tools/misc/lorri/default.nix
index c544bbd03a14..94720f119377 100644
--- a/nixpkgs/pkgs/tools/misc/lorri/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lorri/default.nix
@@ -12,10 +12,10 @@
 
 let
   # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
-  version = "1.4.0";
-  gitRev = "fee4ffac9ee16fc921d413789cc059b043f2db3d";
-  sha256 = "sha256:0ix0k85ywlvkxsampajkq521d290gb0n60qwhnk6j0sc55yn558h";
-  cargoSha256 = "sha256:1ngn4wnyh6cjnyg7mb48zvng0zn5fcn8s75y88nh91xq9x1bi2d9";
+  version = "1.5.0";
+  gitRev = "f4b6a135e2efb18b3a679e3946d4d070a1c45a2c";
+  sha256 = "0irgzw7vwhvm97nmylj44x2dnd8pwf47gvlgw7fj58fj67a0l8fr";
+  cargoSha256 = "18l7yxciqcvagsg9lykilfhr104a4qqdydjkjysxgd197xalxgzr";
 
 in (rustPlatform.buildRustPackage rec {
   pname = "lorri";
diff --git a/nixpkgs/pkgs/tools/misc/lsd/default.nix b/nixpkgs/pkgs/tools/misc/lsd/default.nix
index 212cc997e768..54b3b443d0a4 100644
--- a/nixpkgs/pkgs/tools/misc/lsd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lsd/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-r/Rllu+tgKqz+vkxA8BSN+3V0lUUd6dEATfickQp4+s=";
   };
 
-  cargoSha256 = "sha256-ZK4kKdW+TqT0NXzB1wtQwJA78cVRxvEoqImOIqLldvM=";
+  cargoSha256 = "sha256-O8P29eYlHgmmAADZ/DgTBmj0ZOa+4u/Oee+TMF+/4Ro=";
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/misc/ltunify/default.nix b/nixpkgs/pkgs/tools/misc/ltunify/default.nix
index b97a0e42ee00..df425162d847 100644
--- a/nixpkgs/pkgs/tools/misc/ltunify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ltunify/default.nix
@@ -1,23 +1,26 @@
 { lib, stdenv, fetchFromGitHub }:
 
-# Although we copy in the udev rules here, you probably just want to use logitech-udev-rules instead of
-# adding this to services.udev.packages on NixOS
+# Although we copy in the udev rules here, you probably just want to use
+# logitech-udev-rules instead of adding this to services.udev.packages on NixOS
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "ltunify";
-  version = "unstable-20180330";
+  version = "0.3";
 
   src = fetchFromGitHub {
-    owner  = "Lekensteyn";
-    repo   = "ltunify";
-    rev    = "f664d1d41d5c4beeac5b81e485c3498f13109db7";
-    sha256 = "07sqhih9jmm7vgiwqsjzihd307cj7l096sxjl25p7nwr1q4180wv";
+    owner = "Lekensteyn";
+    repo = "ltunify";
+    rev = "v${version}";
+    sha256 = "sha256-9avri/2H0zv65tkBsIi9yVxx3eVS9oCkVCCFdjXqSgI=";
   };
 
   makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ];
 
   meta = with lib; {
     description = "Tool for working with Logitech Unifying receivers and devices";
+    longDescription = ''
+      This tool requires either to be run with root/sudo or alternatively to have the udev rules files installed. On NixOS this can be achieved by setting `hardware.logitech.wireless.enable`.
+    '';
     homepage = "https://lekensteyn.nl/logitech-unifying.html";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ];
diff --git a/nixpkgs/pkgs/tools/misc/macchina/default.nix b/nixpkgs/pkgs/tools/misc/macchina/default.nix
index d975e02d5ac4..4558b88a2d47 100644
--- a/nixpkgs/pkgs/tools/misc/macchina/default.nix
+++ b/nixpkgs/pkgs/tools/misc/macchina/default.nix
@@ -1,19 +1,21 @@
-{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, installShellFiles
+, libiconv, Foundation }:
 
 rustPlatform.buildRustPackage rec {
   pname = "macchina";
-  version = "0.6.9";
+  version = "0.8.21";
 
   src = fetchFromGitHub {
     owner = "Macchina-CLI";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-y23gpYDnYoiTJcNyWKslVenPTXcCrOvxq+0N9PjQN3g=";
+    sha256 = "sha256-cwQCqKC/onEZ4i533NSHrnNAl8/sRivK/ItX8oqB86Q=";
   };
 
-  cargoSha256 = "sha256-jfLj8kLBG6AeeYo421JCl1bMqWwOGiwQgv7AEomtFcY=";
+  cargoSha256 = "sha256-W29k2eLcYTqVn0v1dJrvFLRcWuVMsoHD+vPDL7YkiWE=";
 
   nativeBuildInputs = [ installShellFiles ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
 
   postInstall = ''
     installShellCompletion target/completions/*.{bash,fish}
diff --git a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
index 2ab76e8dfd42..24ac8e198077 100644
--- a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
@@ -3,12 +3,12 @@
  } :
 
 stdenv.mkDerivation rec {
-  version = "20210209";
+  version = "20210328";
   pname = "mbuffer";
 
   src = fetchurl {
     url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
-    sha256 = "sha256-6B8niOJiHyD4SBge8ssZrG0SMoaRQ38wFXSyU/2Jmgw=";
+    sha256 = "sha256-UbW42EiJkaVf4d/OkBMPnke8HOKGugO09ijAS3hP3F0=";
   };
 
   buildInputs = [ openssl ];
@@ -23,9 +23,9 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    homepage = "http://www.maier-komor.de/mbuffer.html";
+    homepage = "https://www.maier-komor.de/mbuffer.html";
     description  = "A tool for buffering data streams with a large set of unique features";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ tokudan ];
     platforms = lib.platforms.linux; # Maybe other non-darwin Unix
   };
diff --git a/nixpkgs/pkgs/tools/misc/mc/default.nix b/nixpkgs/pkgs/tools/misc/mc/default.nix
index 12aa477219b6..6cbe693fb604 100644
--- a/nixpkgs/pkgs/tools/misc/mc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mc/default.nix
@@ -16,6 +16,7 @@
 , openssl
 , coreutils
 , autoreconfHook
+, autoSignDarwinBinariesHook
 }:
 
 stdenv.mkDerivation rec {
@@ -27,7 +28,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-xt6txQWV8tmiLcbCmanyizk+NYNG6/bKREqEadwWbCc=";
   };
 
-  nativeBuildInputs = [ pkg-config autoreconfHook unzip ];
+  nativeBuildInputs = [ pkg-config autoreconfHook unzip ]
+    # The preFixup hook rewrites the binary, which invaliates the code
+    # signature. Add the fixup hook to sign the output.
+    ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
+      autoSignDarwinBinariesHook
+    ];
 
   buildInputs = [
     file
diff --git a/nixpkgs/pkgs/tools/misc/mcfly/default.nix b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
index 55e2b75684ee..6412eaa1f802 100644
--- a/nixpkgs/pkgs/tools/misc/mcfly/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     install -Dm644 -t $out/share/mcfly mcfly.fish
   '';
 
-  cargoSha256 = "sha256-JCV1cj+RncY/myVJTJ5fNkVqTITqGusA71tv7zGG9Uw=";
+  cargoSha256 = "sha256-7RKewz5jBS2HhHvXHBUWaQQ/wq9nryS9E+DqzBOVjPs=";
 
   meta = with lib; {
     homepage = "https://github.com/cantino/mcfly";
diff --git a/nixpkgs/pkgs/tools/misc/mdbtools/default.nix b/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
index 1c3273659169..b25a850311e3 100644
--- a/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
@@ -1,32 +1,26 @@
 { stdenv, lib, fetchFromGitHub, glib, readline
 , bison, flex, pkg-config, autoreconfHook, libxslt, makeWrapper
 , txt2man, which
-# withUi currently doesn't work. It compiles but fails to run.
-, withUi ? false, gtk2, gnome2
 }:
 
-let
-  uiDeps = [ gtk2 ] ++ (with gnome2; [ GConf libglade libgnomeui gnome-doc-utils ]);
-
-in
 stdenv.mkDerivation rec {
   pname = "mdbtools";
-  version = "0.8.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
-    owner = "cyberemissary";
+    owner = "mdbtools";
     repo = "mdbtools";
-    rev = version;
-    sha256 = "12rhf6rgnws6br5dn1l2j7i77q9p4l6ryga10jpax01vvzhr26qc";
+    rev = "v${version}";
+    sha256 = "11cv7hh8j8akpgm1a6pp7im6iacpgx6wzcg9n9rmb41j0fgxamdf";
   };
 
   configureFlags = [ "--disable-scrollkeeper" ];
 
   nativeBuildInputs = [
     pkg-config bison flex autoreconfHook txt2man which
-  ] ++ lib.optional withUi libxslt;
+  ];
 
-  buildInputs = [ glib readline ] ++ lib.optionals withUi uiDeps;
+  buildInputs = [ glib readline ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix b/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
index 5335624467db..308b69c9d744 100644
--- a/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
+++ b/nixpkgs/pkgs/tools/misc/me_cleaner/default.nix
@@ -19,6 +19,6 @@ buildPythonPackage rec {
       with the final purpose of reducing its ability to interact with the system.
     '';
     license = licenses.gpl3;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/microplane/default.nix b/nixpkgs/pkgs/tools/misc/microplane/default.nix
index 66717912599f..89b0bc4d8b8d 100644
--- a/nixpkgs/pkgs/tools/misc/microplane/default.nix
+++ b/nixpkgs/pkgs/tools/misc/microplane/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "microplane";
-  version = "0.0.28";
+  version = "0.0.32";
 
   src = fetchFromGitHub {
     owner = "Clever";
     repo = "microplane";
     rev = "v${version}";
-    sha256 = "00ayci0a4lv67sg2bb4fw5wpdlps4pjqiiam595dar82lsjwj63j";
+    sha256 = "sha256-QYii/UmYus5hloTUsbVKsw50bSfI4bArUgGzFSK8Cas=";
   };
 
-  vendorSha256 = "0hn2gsm9bgmrm620fn2cx28l2gj1yfgvjix9ds50m7kwkx6q0dga";
+  vendorSha256 = "sha256-1XtpoGqQ//2ccJdl8E7jnSBQhYoA4/YVBbHeI+OfaR0=";
 
   buildFlagsArray = ''
-    -ldflags="-s -w -X main.version=v${version}"
+    -ldflags=-s -w -X main.version=${version}
   '';
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/misc/minipro/default.nix b/nixpkgs/pkgs/tools/misc/minipro/default.nix
new file mode 100644
index 000000000000..95385a47e59a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/minipro/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, pkg-config
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "minipro";
+  version = "0.5";
+
+  src = fetchFromGitLab {
+    owner = "DavidGriffith";
+    repo = "minipro";
+    rev = version;
+    sha256 = "sha256-Hyj2LyY7W8opjigH+QLHHbDyelC0LMgGgdN+u3nNoJc=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ libusb1 ];
+  makeFlags = [
+    "PREFIX=$(out)"
+    "UDEV_DIR=$(out)/lib/udev"
+    "COMPLETIONS_DIR=$(out)/share/bash-completion/completions"
+    "PKG_CONFIG=${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.com/DavidGriffith/minipro";
+    description = "An open source program for controlling the MiniPRO TL866xx series of chip programmers";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.bmwalters ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/mmv/default.nix b/nixpkgs/pkgs/tools/misc/mmv/default.nix
index ed45c2682039..2c58381100a4 100644
--- a/nixpkgs/pkgs/tools/misc/mmv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mmv/default.nix
@@ -1,49 +1,30 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, gengetopt, m4, gnupg
+, git, perl, autoconf, automake, help2man, boehmgc }:
 
 stdenv.mkDerivation rec {
   pname = "mmv";
-  version = "1.01b";
-
-  src = fetchurl {
-    url = "mirror://debian/pool/main/m/mmv/mmv_${version}.orig.tar.gz";
-    sha256 = "0399c027ea1e51fd607266c1e33573866d4db89f64a74be8b4a1d2d1ff1fdeef";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "rrthomas";
+    repo = "mmv";
+    rev = "v${version}";
+    sha256 = "sha256-3XWXOp30P/bOd+c7PC8duidewX8h0hk9VsEUw05dAE4=";
+    fetchSubmodules = true;
   };
 
-  hardeningDisable = [ "format" ];
-
-  patches = [
-    # Use Debian patched version, as upstream is no longer maintained and it
-    # contains a _lot_ of fixes.
-    (fetchurl {
-      url = "mirror://debian/pool/main/m/mmv/mmv_${version}-15.diff.gz";
-      sha256 = "9ad3e3d47510f816b4a18bae04ea75913588eec92248182f85dd09bc5ad2df13";
-    })
-  ];
-
-  postPatch = ''
-    sed -i \
-      -e 's/^\s*LDFLAGS\s*=\s*-s\s*-N/LDFLAGS = -s/' \
-      -e "s|/usr/bin|$out/bin|" \
-      -e "s|/usr/man|$out/share/man|" \
-      Makefile
+  preConfigure = ''
+    ./bootstrap
   '';
 
-  preInstall = ''
-    mkdir -p "$out/bin" "$out/share/man/man1"
-  '';
-
-  postInstall = ''
-    for variant in mcp mad mln
-    do
-      ln -s mmv "$out/bin/$variant"
-      ln -s mmv.1 "$out/share/man/man1/$variant.1"
-    done
-  '';
+  nativeBuildInputs = [ gengetopt m4 git gnupg perl autoconf automake help2man pkg-config ];
+  buildInputs = [ boehmgc ];
 
   meta = {
-    homepage = "http://linux.maruhn.com/sec/mmv.html";
+    homepage = "https://github.com/rrthomas/mmv";
     description = "Utility for wildcard renaming, copying, etc";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ siraben ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
index 8ede05104874..8baeb1556b14 100644
--- a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, dpkg
-, alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
+, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
 , gnome2, gdk-pixbuf, gtk3, pango, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
 
 let
   version = "1.25.0";
 
   rpath = lib.makeLibraryPath [
-    alsaLib
+    alsa-lib
     at-spi2-atk
     at-spi2-core
     atk
diff --git a/nixpkgs/pkgs/tools/misc/mutt-wizard/default.nix b/nixpkgs/pkgs/tools/misc/mutt-wizard/default.nix
new file mode 100644
index 000000000000..1a63730d31e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/mutt-wizard/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mutt-wizard";
+  version = "3.2.1";
+
+  src = fetchFromGitHub {
+    owner = "LukeSmithxyz";
+    repo = "mutt-wizard";
+    rev = "v${version}";
+    sha256 = "1m4s0vj57hh38rdgdc28p10vnsq80dh708imvdgxbj1i96nq41r8";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "System for automatically configuring mutt and isync";
+    homepage = "https://github.com/LukeSmithxyz/mutt-wizard";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/neofetch/default.nix b/nixpkgs/pkgs/tools/misc/neofetch/default.nix
index d92870030841..68cebca4bc3d 100644
--- a/nixpkgs/pkgs/tools/misc/neofetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/neofetch/default.nix
@@ -34,5 +34,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ alibabzo konimex ];
+    mainProgram = "neofetch";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
index 39fd7d3e5f0d..526efc65f6a4 100644
--- a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
@@ -1,20 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, gnugrep, nix, nixFlakes }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, gnugrep
+, nixStable
+, nixUnstable
+, enableFlakes ? false
+}:
 
+let
+  nix = if enableFlakes then nixUnstable else nixStable;
+in
 stdenv.mkDerivation rec {
   pname = "nix-direnv";
-  version = "1.2.4";
+  version = "1.2.6";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = version;
-    sha256 = "sha256-87x+MRQ1SjtN+wNCy42VJwlRwgQzHjNEK3J1bkvo7eQ=";
+    sha256 = "sha256-0dCIHgoyNgpxbrPDv26oLdU+npcIgpCQdpX4HzS0vN0=";
   };
 
   # Substitute instead of wrapping because the resulting file is
   # getting sourced, not executed:
   postPatch = ''
-    sed -i "1a NIX_BIN_PREFIX=${nixFlakes}/bin/" direnvrc
+    sed -i "1a NIX_BIN_PREFIX=${nix}/bin/" direnvrc
     substituteInPlace direnvrc --replace "grep" "${gnugrep}/bin/grep"
   '';
 
diff --git a/nixpkgs/pkgs/tools/misc/nvfancontrol/default.nix b/nixpkgs/pkgs/tools/misc/nvfancontrol/default.nix
new file mode 100644
index 000000000000..2bfdb9896e4a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/nvfancontrol/default.nix
@@ -0,0 +1,31 @@
+{ lib, rustPlatform, fetchFromGitHub, libXNVCtrl, libX11, libXext }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nvfancontrol";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "foucault";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-0WBQSnTYVc3sNmZf/KFzznMg9AVsyaBgdx/IvG1dZAw=";
+  };
+
+  cargoSha256 = "sha256-fEzdghGQSSeyeyiHjw1ggQ38gsETJFl9bq/tizGxIis=";
+
+  nativeBuildInputs = [ libXNVCtrl libX11 libXext ];
+
+  # Needed for static linking
+  preConfigure = ''
+    export LIBRARY_PATH=${libXNVCtrl}/lib:${libX11}/lib:${libXext}/lib
+  '';
+
+  meta = with lib; {
+    description = "NVidia dynamic fan control for Linux";
+    homepage = "https://github.com/foucault/nvfancontrol";
+    changelog = "https://github.com/foucault/nvfancontrol/releases/tag/${version}";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ devins2518 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/nvimpager/default.nix b/nixpkgs/pkgs/tools/misc/nvimpager/default.nix
index 61f9e7262c92..e07989198868 100644
--- a/nixpkgs/pkgs/tools/misc/nvimpager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nvimpager/default.nix
@@ -1,36 +1,43 @@
 { fetchFromGitHub
 , lib, stdenv
 , ncurses, neovim, procps
-, pandoc, lua51Packages, util-linux
+, scdoc, lua51Packages, util-linux
 }:
 
 stdenv.mkDerivation rec {
   pname = "nvimpager";
-  version = "0.9";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "lucc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1xy5387szfw0bp8dr7d4z33wd4xva7q219rvz8gc0vvv1vsy73va";
+    sha256 = "sha256-okYnPwuxU/syxcKIMUBc25r791D6Bug2w2axH4vvmAY=";
   };
 
   buildInputs = [
     ncurses # for tput
     procps # for nvim_get_proc() which uses ps(1)
   ];
-  nativeBuildInputs = [ pandoc ];
+  nativeBuildInputs = [ scdoc ];
 
   makeFlags = [ "PREFIX=$(out)" ];
-  buildFlags = [ "nvimpager.configured" ];
+  buildFlags = [ "nvimpager.configured" "nvimpager.1" ];
   preBuild = ''
     patchShebangs nvimpager
     substituteInPlace nvimpager --replace ':-nvim' ':-${neovim}/bin/nvim'
+    # remove git command from makefile as we run from a tarball
+    # replace with actual timestamp of the commit
+    substituteInPlace makefile --replace '$(shell git log -1 --no-show-signature --pretty="%ct")' 1623019602
     '';
 
   doCheck = true;
   checkInputs = [ lua51Packages.busted util-linux neovim ];
-  checkPhase = ''script -c "busted --lpath './?.lua' test"'';
+  checkPhase = ''
+    runHook preCheck
+    script -c "busted --lpath './?.lua' test"
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "Use neovim as pager";
diff --git a/nixpkgs/pkgs/tools/misc/onefetch/default.nix b/nixpkgs/pkgs/tools/misc/onefetch/default.nix
index 5dab2044973a..a80fdd568643 100644
--- a/nixpkgs/pkgs/tools/misc/onefetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/onefetch/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-owa+HmzMXpLR7H1FssW4gQiVAQGJRXhcitgJj6pxJRc=";
   };
 
-  cargoSha256 = "sha256-TqWe4eARQmmWcwnvb6BIZrzGeKMpiIObPv0cW1JvWj4=";
+  cargoSha256 = "sha256-Bn2FlRESuW83ouGPiBwvGkIB0uCDDG0hdhRfRBks/0Q=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation libiconv libresolv Security ];
 
diff --git a/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix
new file mode 100644
index 000000000000..7c730c8c4a57
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -0,0 +1,30 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+, lib
+}:
+
+buildGoModule rec {
+  pname = "opentelemetry-collector";
+  version = "0.26.0";
+
+  src = fetchFromGitHub {
+    owner = "open-telemetry";
+    repo = "opentelemetry-collector-contrib";
+    rev = "v${version}";
+    sha256 = "03713b4bkhcz61maz0r5mkd36kv3rq8rji3qcpi9zf5bkkjs1yzb";
+  };
+
+  vendorSha256 = if stdenv.isDarwin
+    then "0anw3l6pq8yys2g2607ndhklb9m1i9krgjrw4wb99igavjzp3wpj"
+    else "04h463d2d7g6wqp5mzkqlszwzdbq0pix6j7n2s9s80lwg7nh8k3h";
+
+  subPackages = [ "cmd/otelcontribcol" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/open-telemetry/opentelemetry-collector";
+    description = "OpenTelemetry Collector";
+    license = licenses.asl20;
+    maintainers = [ maintainers.uri-canva ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/otfcc/default.nix b/nixpkgs/pkgs/tools/misc/otfcc/default.nix
index a363b875895c..b233e94f4f60 100644
--- a/nixpkgs/pkgs/tools/misc/otfcc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/otfcc/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     description = "Optimized OpenType builder and inspector";
     homepage = "https://github.com/caryll/otfcc";
     license = licenses.asl20;
-    platforms = [ "aarch64-linux" "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ jfrankenau ttuegel ];
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/page/default.nix b/nixpkgs/pkgs/tools/misc/page/default.nix
index b1042d3ae550..9d1d6d5abe6d 100644
--- a/nixpkgs/pkgs/tools/misc/page/default.nix
+++ b/nixpkgs/pkgs/tools/misc/page/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion --zsh $completions_dir/_page
   '';
 
-  cargoSha256 = "0s1iwli5h6qkibi24v80izr38z84zfx1dv71fv06lzq38b6s4nd5";
+  cargoSha256 = "19ff5h8z34z15wdnd3mj8bwlqcixwbimys77gfjmzb3w1g9ivlks";
 
   meta = with lib; {
     description = "Use neovim as pager";
diff --git a/nixpkgs/pkgs/tools/misc/pastebinit/default.nix b/nixpkgs/pkgs/tools/misc/pastebinit/default.nix
index 4b28f49acaa2..c5419b27fece 100644
--- a/nixpkgs/pkgs/tools/misc/pastebinit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pastebinit/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://launchpad.net/pastebinit";
     description = "A software that lets you send anything you want directly to a pastebin from the command line";
-    maintainers = with maintainers; [ lethalman raboof ];
+    maintainers = with maintainers; [ raboof ];
     license = licenses.gpl2;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/misc/pazi/default.nix b/nixpkgs/pkgs/tools/misc/pazi/default.nix
index 81590e1dd45d..08adb3c199de 100644
--- a/nixpkgs/pkgs/tools/misc/pazi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pazi/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
 
-  cargoSha256 = "0sja0q9i0b1zb3a0a6z561yg9lqykylwr3iwin4r6cmi7j2sw5j6";
+  cargoSha256 = "1iamlp5519h8mmgd4964cvyp7mmnqdg2d3qj5v7yzilyp4nz15jc";
 
   meta = with lib; {
     description = "An autojump \"zap to directory\" helper";
diff --git a/nixpkgs/pkgs/tools/misc/peep/default.nix b/nixpkgs/pkgs/tools/misc/peep/default.nix
index 161ea3f75e63..6379f24649b3 100644
--- a/nixpkgs/pkgs/tools/misc/peep/default.nix
+++ b/nixpkgs/pkgs/tools/misc/peep/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoPatches = [ ./0001-Add-Cargo.lock-by-running-cargo-vendor.patch ];
-  cargoSha256 = "15qc9a4zpnq7lbcaji1mkik93qkx366misczbi1mipiq5w7sgn0l";
+  cargoSha256 = "12jqhvf8kdi17c442hl8sfpgxhni07x59khjwyyn54bnwc5h3zf9";
 
   meta = with lib; {
     description = "The CLI text viewer tool that works like less command on small pane within the terminal window";
diff --git a/nixpkgs/pkgs/tools/misc/pferd/default.nix b/nixpkgs/pkgs/tools/misc/pferd/default.nix
new file mode 100644
index 000000000000..38d7355e946d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pferd/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "pferd";
+  version = "3.0.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "Garmelon";
+    repo = "PFERD";
+    rev = "v${version}";
+    sha256 = "1s0z8yajy3n194pnlqb48hy2n5qvhkzwbpksrdyds79vfq0b9rdl";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    aiohttp
+    beautifulsoup4
+    rich
+    keyring
+    certifi
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Garmelon/PFERD";
+    description = "Tool for downloading course-related files from ILIAS";
+    license = licenses.mit;
+    maintainers = with maintainers; [ _0xbe7a ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/pgbadger/default.nix b/nixpkgs/pkgs/tools/misc/pgbadger/default.nix
new file mode 100644
index 000000000000..d6e3588f6bb9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pgbadger/default.nix
@@ -0,0 +1,31 @@
+{ buildPerlPackage, lib, fetchFromGitHub, which, bzip2, PodMarkdown, JSONXS
+, TextCSV }:
+buildPerlPackage rec {
+  pname = "pgbadger";
+  version = "11.5";
+  src = fetchFromGitHub {
+    owner = "darold";
+    repo = "pgbadger";
+    rev = "98b38161ba99faae77c81d5fa47bd769c1dd750b";
+    sha256 = "0r01mx1922g1m56x4958cihk491zjlaijvap0i32grjmnv4s5v88";
+  };
+
+  postPatch = ''
+    patchShebangs ./pgbadger
+  '';
+
+  outputs = [ "out" ];
+
+  PERL_MM_OPT = "INSTALL_BASE=${placeholder "out"}";
+
+  buildInputs = [ PodMarkdown JSONXS TextCSV ];
+
+  checkInputs = [ which bzip2 ];
+
+  meta = {
+    homepage = "https://github.com/darold/pgbadger";
+    description = "A fast PostgreSQL Log Analyzer";
+    license = lib.licenses.postgresql;
+    maintainers = lib.teams.determinatesystems.members;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/pistol/default.nix b/nixpkgs/pkgs/tools/misc/pistol/default.nix
index f31de57fdfe7..52c83abdf688 100644
--- a/nixpkgs/pkgs/tools/misc/pistol/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pistol/default.nix
@@ -2,20 +2,22 @@
 , buildGoModule
 , fetchFromGitHub
 , file
+, installShellFiles
+, asciidoctor
 }:
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.1.9";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Q/W+1NvbuSu+QfezJpyeI5r4VlzdAAbOlSfFIT8knJs=";
+    sha256 = "sha256-NUHk48P3kUx+e9BR9k9K/VaHnbZ6Do6RRf1S0974sO8=";
   };
 
-  vendorSha256 = "sha256-oXt2nZ9lcAiI9ZQtKuQrXOXDfqx3Ucvh/K6g7SScd2Q=";
+  vendorSha256 = "sha256-n98cjXsgg2w3shbZPnk3g7mBbzV5Tc3jd9ZtiRk1KUM=";
 
   doCheck = false;
 
@@ -24,6 +26,14 @@ buildGoModule rec {
   buildInputs = [
     file
   ];
+  nativeBuildInputs = [
+    installShellFiles
+    asciidoctor
+  ];
+  postBuild = ''
+    asciidoctor -b manpage -d manpage README.adoc
+    installManPage pistol.1
+  '';
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/piston-cli/default.nix b/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
index 73e3ca8d6893..df244063b1b8 100644
--- a/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
@@ -2,14 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "piston-cli";
-  version = "1.2.2";
+  version = "1.4.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "hhOistr5lHF6rIuMpudKwSuBQhaQDzTdelAOCjyVQZk=";
+    sha256 = "o8GPtSQ119AKB64hAH8VY6iJmhXcSFqjOanmXQl0tHo=";
   };
 
-  propagatedBuildInputs = with python3Packages; [ rich prompt_toolkit requests pygments ];
+  propagatedBuildInputs = with python3Packages; [ rich prompt_toolkit requests pygments pyyaml ];
 
   checkPhase = ''
     $out/bin/piston --help > /dev/null
diff --git a/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix b/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix
index ad0ffa810cd7..eef6cdc11d5f 100644
--- a/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plantuml-server/default.nix
@@ -1,30 +1,34 @@
-{ lib, stdenv, fetchFromGitHub, maven, jdk }:
+{ lib, stdenv, fetchFromGitHub, maven, jdk8_headless }:
 
 let
-  version = "1.2020.14";
+  version = "1.2021.7";
 
   src = fetchFromGitHub {
     owner = "plantuml";
     repo = "plantuml-server";
     rev = "v${version}";
-    sha256 = "08g6ddpkly5yhjhw7gpsanyspar1752jy9cypwxsqrdzqrv738b8";
+    sha256 = "sha256-kY7b3ocm1zudGIf72MNMZDUG2t2FFqucRr3kRaFv7mo=";
   };
 
   # perform fake build to make a fixed-output derivation out of the files downloaded from maven central
   deps = stdenv.mkDerivation {
     name = "plantuml-server-${version}-deps";
     inherit src;
-    buildInputs = [ jdk maven ];
+    nativeBuildInputs = [ jdk8_headless maven ];
     buildPhase = ''
+      runHook preBuild
+
       while mvn package -Dmaven.repo.local=$out/.m2; [ $? = 1 ]; do
         echo "timeout, restart maven to continue downloading"
       done
+
+      runHook postBuild
     '';
     # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
     installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete'';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "1wwgyjalhlj5azggs9vvsrr54pg7gl8p36pgf6pk12rsszzl7a97";
+    outputHash = "sha256-HzT5rBycrd48KskWKAGtkMKdCDQ8NPYADVWZh8K0ll4=";
   };
 in
 
@@ -33,25 +37,33 @@ stdenv.mkDerivation rec {
   inherit version;
   inherit src;
 
-  buildInputs = [ jdk maven ];
+  nativeBuildInputs = [ jdk8_headless maven ];
 
   buildPhase = ''
+    runHook preBuild
+
     # 'maven.repo.local' must be writable so copy it out of nix store
     cp -R $src repo
     chmod +w -R repo
     cd repo
     mvn package --offline -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p "$out/webapps"
     cp "target/plantuml.war" "$out/webapps/plantuml.war"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "A web application to generate UML diagrams on-the-fly.";
     homepage = "https://plantuml.com/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ truh ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/plantuml/default.nix b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
index 25f96d325325..270a9ef8641d 100644
--- a/nixpkgs/pkgs/tools/misc/plantuml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2021.3";
+  version = "1.2021.7";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "sha256-Kx2fTx71oVkAgsytl1OFBcENMnJ1ZHmg8qvYDFTSS2M=";
+    sha256 = "sha256-2hQIwUpkxLHGG+kx8AekSKJ1qO8inL8xnko0dlLC1Kg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix b/nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix
new file mode 100644
index 000000000000..3f75e8e33af0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pmbootstrap/default.nix
@@ -0,0 +1,95 @@
+{ lib, git, openssl, makeWrapper, buildPythonApplication, pytestCheckHook, ps
+, fetchPypi, fetchFromGitLab }:
+
+buildPythonApplication rec {
+  pname = "pmbootstrap";
+  version = "1.30.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-uHN3nplQOMuBeQIxAocCVqwnmJUQZL67+iXLhQ7onps=";
+  };
+
+  repo = fetchFromGitLab {
+    domain = "gitlab.com";
+    owner = "postmarketOS";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-JunI/mqq+UvmzNVt3mdJN3+tKGN4uTrxkUU2imCNCNY=";
+  };
+
+  pmb_test = "${repo}/test";
+
+  checkInputs = [ pytestCheckHook git openssl ps ];
+
+  # Add test dependency in PATH
+  checkPhase = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
+
+  # skip impure tests
+  disabledTests = [
+    "test_get_apkbuild"
+    "test_check_build_for_arch"
+    "test_get_depends"
+    "test_build_depends_no_binary_error"
+    "test_build_depends_binary_outdated"
+    "test_init_buildenv"
+    "test_run_abuild"
+    "test_finish"
+    "test_package"
+    "test_build_depends_high_level"
+    "test_build_local_source_high_level"
+    "test_chroot_interactive_shell"
+    "test_chroot_interactive_shell_user"
+    "test_chroot_arguments"
+    "test_switch_to_channel_branch"
+    "test_read_config_channel"
+    "test_cross_compile_distcc"
+    "test_build_src_invalid_path"
+    "test_can_fast_forward"
+    "test_clean_worktree"
+    "test_get_upstream_remote"
+    "test_pull"
+    "test_helpers_package_get_apkindex"
+    "test_filter_missing_packages_invalid"
+    "test_filter_missing_packages_binary_exists"
+    "test_filter_missing_packages_pmaports"
+    "test_filter_aport_packages"
+    "test_pmbootstrap_status"
+    "test_print_checks_git_repo"
+    "test_helpers_ui"
+    "test_newapkbuild"
+    "test_package_from_aports"
+    "test_recurse_invalid"
+    "test_questions_bootimg"
+    "test_questions_keymaps"
+    "test_questions_work_path"
+    "test_questions_channel"
+    "test_apk_static"
+    "test_aportgen"
+    "test_aportgen_device_wizard"
+    "test_bootimg"
+    "test_build_is_necessary"
+    "test_config_user"
+    "test_crossdirect"
+    "test_file"
+    "test_folder_size"
+    "test_helpers_lint"
+    "test_helpers_repo"
+    "test_kconfig_check"
+    "test_keys"
+    "test_pkgrel_bump"
+    "test_qemu_running_processes"
+    "test_run_core"
+    "test_shell_escape"
+    "test_version"
+  ];
+
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ git openssl ]}" ];
+
+  meta = with lib; {
+    description = "Sophisticated chroot/build/flash tool to develop and install postmarketOS";
+    homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ payas ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix b/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix
index 4e5a3476f535..a8f57bd78c44 100644
--- a/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/powerline-rs/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0rqlxxl58dpfvm2idhi0vzinraf4bgiapmawiih9wxs599fnhm3y";
   };
 
-  cargoSha256 = "0a41a6kgwgz4040c2369jldvk6xy6s6fkgayca0qy7hdwc4bcxdp";
+  cargoSha256 = "1i29wps7wz6b0qarqqg8rplq7ak1zz83k6m182sjk17cni74n21l";
 
   nativeBuildInputs = [ pkg-config file perl cmake curl ];
   buildInputs = [ openssl libssh2 libgit2 libzip ] ++ lib.optional stdenv.isDarwin Security;
diff --git a/nixpkgs/pkgs/tools/misc/psw/default.nix b/nixpkgs/pkgs/tools/misc/psw/default.nix
index 09b9010bed6f..c3d9b347ce1b 100644
--- a/nixpkgs/pkgs/tools/misc/psw/default.nix
+++ b/nixpkgs/pkgs/tools/misc/psw/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1nwmps3zw99lrz6k1j14w4rcm7yj8vhf4cs9wjfc3c1zfjibz9iz";
   };
 
-  cargoSha256 = "0a6hhangbx62nsyrfzbxjv7cg5c9d8wh83f02ay72gkf48sqy75h";
+  cargoSha256 = "1y2am1bz68q7d9bn4264al13fv2j6a87bwrd60ycx0qak9fczlmv";
 
   meta = with lib; {
     description = "A command line tool to write random bytes to stdout";
diff --git a/nixpkgs/pkgs/tools/misc/qdl/default.nix b/nixpkgs/pkgs/tools/misc/qdl/default.nix
new file mode 100644
index 000000000000..79b9cec2ed5c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/qdl/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, libxml2, systemd }:
+
+stdenv.mkDerivation {
+  pname   = "qdl";
+  version = "unstable-2021-05-06";
+
+  src = fetchFromGitHub {
+    owner  = "andersson";
+    repo   = "qdl";
+    rev    = "2021b303a81ca1bcf21b7f1f23674b5c8747646f";
+    sha256 = "0akrdca4jjdkfdya36vy1y5vzimrc4pp5jm24rmlw8hbqxvj72ri";
+  };
+
+  buildInputs = [ systemd libxml2 ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 ./qdl -t $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage    = "https://github.com/andersson/qdl";
+    description = "Tool for flashing images to Qualcomm devices";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ musfay ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/rargs/default.nix b/nixpkgs/pkgs/tools/misc/rargs/default.nix
index dc07e3dd4f40..ed15e81709d9 100644
--- a/nixpkgs/pkgs/tools/misc/rargs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rargs/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "188gj05rbivci1z4z29vwdwxlj2w01v5i4avwrxjnj1dd6mmlbxd";
   };
 
-  cargoSha256 = "0qzkhx0n28f5wy4fral3adn499q3f10q71cd544s4ghqwqn4khc9";
+  cargoSha256 = "18yd4dpzjyw6w1ms74pzxqyn5fkh8q4rsg6rqsp6bsz7300fxxvh";
 
   doCheck=false;  # `rargs`'s test depends on the deprecated `assert_cli` crate, which in turn is not in Nixpkgs
 
diff --git a/nixpkgs/pkgs/tools/misc/rename/default.nix b/nixpkgs/pkgs/tools/misc/rename/default.nix
index a9f42d1139e5..a8b5f4a54ace 100644
--- a/nixpkgs/pkgs/tools/misc/rename/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rename/default.nix
@@ -1,19 +1,19 @@
 { lib, fetchFromGitHub, perlPackages }:
 
-perlPackages.buildPerlPackage {
+perlPackages.buildPerlPackage rec {
   pname = "rename";
-  version = "1.9";
+  version = "1.11";
   outputs = [ "out" ];
   src = fetchFromGitHub {
     owner = "pstray";
     repo = "rename";
-    rev = "d46f1d0ced25dc5849acb5d5974a3e2e9d97d536";
-    sha256 = "0qahs1cqfaci2hdf1xncrz4k0z5skkfr43apnm3kybs7za33apzw";
+    rev = "v${version}";
+    sha256 = "SK6wS3IxjCftuDiiZU27TFnn9GVd137zmzvGH88cNLI=";
   };
   meta = with lib; {
     description = "Rename files according to a Perl rewrite expression";
     homepage = "https://github.com/pstray/rename";
-    maintainers = with maintainers; [ mkg ];
+    maintainers = with maintainers; [ mkg cyplo ];
     license = with licenses; [ gpl1Plus ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/rig/default.nix b/nixpkgs/pkgs/tools/misc/rig/default.nix
index 9fa28264eed9..5efa92ef1575 100644
--- a/nixpkgs/pkgs/tools/misc/rig/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rig/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
   # http://deb.debian.org/debian/pool/main/r/rig/rig_1.11-1.diff.gz
   patches = [ ./rig_1.11-1.diff ];
 
+  makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
+
   meta = {
     homepage = "http://rig.sourceforge.net/";
     description = "Random identity generator";
diff --git a/nixpkgs/pkgs/tools/misc/routino/default.nix b/nixpkgs/pkgs/tools/misc/routino/default.nix
index 0205209d4910..5f2a8852e319 100644
--- a/nixpkgs/pkgs/tools/misc/routino/default.nix
+++ b/nixpkgs/pkgs/tools/misc/routino/default.nix
@@ -21,6 +21,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile.conf \
+      --subst-var-by PREFIX $out
+  '';
+
   nativeBuildInputs = [ perl ];
 
   buildInputs = [ zlib bzip2 ];
@@ -34,7 +39,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.routino.org/";
     description = "OpenStreetMap Routing Software";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix b/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix
index 963a0832ef9f..c67dddf536fc 100644
--- a/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rpi-imager/default.nix
@@ -16,20 +16,20 @@
 
 mkDerivation rec {
   pname = "rpi-imager";
-  version = "1.6";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wX9EO5hgEM2ftOov0AERloH6GxrwptWltBYWLFXkPUw=";
+    sha256 = "sha256-ITn31ENEf2bysgJgV3u+NNPXk1pfIkUyJWIvS2DOrzY=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake util-linux ];
+
   buildInputs = [
     curl
     libarchive
-    util-linux
     qtbase
     qtdeclarative
     qtsvg
@@ -46,6 +46,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Raspberry Pi Imaging Utility";
     homepage = "https://www.raspberrypi.org/software/";
+    downloadPage = "https://github.com/raspberrypi/rpi-imager/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ymarkus ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/misc/rw/default.nix b/nixpkgs/pkgs/tools/misc/rw/default.nix
index 408723f058dc..5299d2491465 100644
--- a/nixpkgs/pkgs/tools/misc/rw/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rw/default.nix
@@ -22,7 +22,5 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.isc;
     maintainers = with maintainers; [ dtzWill ];
-
-    broken = stdenv.hostPlatform.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/sacad/default.nix b/nixpkgs/pkgs/tools/misc/sacad/default.nix
index c5c48c271db7..50599fbbabd7 100644
--- a/nixpkgs/pkgs/tools/misc/sacad/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sacad/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sacad";
-  version = "2.3.4";
+  version = "2.4.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1qv2mrz6vy2sl7zhrj9vw016pjd7hmjr2ls0w8bbv1hgrddicn9r";
+    sha256 = "sha256-KLVkyiXjpqskM67W9uPl9aPKc3pYMu0nAfwI0OpOniE=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/misc/shadowenv/default.nix b/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
index 88f4840e2f07..1f2d48b86ecb 100644
--- a/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/shadowenv/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1h8hfyxxl4bpx8azzxj0snmzccn6xjd9vc2iyp8i2ar7aiyhf5yd";
   };
 
-  cargoSha256 = "1bjkwn57vm3in8lajhm7p9fjwyqhmkrb3fyq1k7lqjvrrh9jysb2";
+  cargoSha256 = "1ixjkb82863z160spylza2a5hk82x0c4wjjnzgakbzgrwv29pai3";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/shell-hist/default.nix b/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
index c4c496b978f4..48e8667cc7e8 100644
--- a/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
+++ b/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage {
     sha256 = "0kc128xnnp1d56if70vfv0w3qnwhljhbnvzwwb7hfm3x2m0vqrqf";
   };
 
-  cargoSha256 = "0mfgax937na351qvi5n6s1ql9136djqiydzyfyax4684sp3kp613";
+  cargoSha256 = "1b2cfs03vlaz7jnr67ilgjfi7cm59izpcdi6pyvbzv8s46z2dysp";
 
   meta = with lib; {
     description = "Inspect your shell history";
diff --git a/nixpkgs/pkgs/tools/misc/silicon/default.nix b/nixpkgs/pkgs/tools/misc/silicon/default.nix
index 0c338fd91bce..40586f6be656 100644
--- a/nixpkgs/pkgs/tools/misc/silicon/default.nix
+++ b/nixpkgs/pkgs/tools/misc/silicon/default.nix
@@ -9,32 +9,34 @@
 , freetype
 , libxcb
 , python3
+, libiconv
 , AppKit
 , CoreText
 , Security
+, fira-code
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "silicon";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "silicon";
     rev = "v${version}";
-    sha256 = "sha256-ci0gq4rOQHBmFPvhXZseIlwnqAWd06/qg/i/luhV79s=";
+    sha256 = "sha256-k+p8AEEL1BBJTmPc58QoIk7EOzu8QKdG00RQ58EN3bg=";
   };
 
-  cargoSha256 = "sha256-1sekLS+jhMeFJcW7pH/X8t28//xA+L54u81uKOo1kHE=";
+  cargoSha256 = "sha256-vpegobS7lpRkt/oZePW9WggYeg0JXDte8fQP/bf7oAI=";
 
-  buildInputs = [ llvmPackages.libclang expat freetype ]
+  buildInputs = [ llvmPackages.libclang expat freetype fira-code ]
     ++ lib.optionals stdenv.isLinux [ libxcb ]
-    ++ lib.optionals stdenv.isDarwin [ AppKit CoreText Security ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv AppKit CoreText Security ];
 
   nativeBuildInputs = [ cmake pkg-config ]
     ++ lib.optionals stdenv.isLinux [ python3 ];
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   meta = with lib; {
     description = "Create beautiful image of your source code";
diff --git a/nixpkgs/pkgs/tools/misc/skim/default.nix b/nixpkgs/pkgs/tools/misc/skim/default.nix
index 7909aaa1a720..63931914e942 100644
--- a/nixpkgs/pkgs/tools/misc/skim/default.nix
+++ b/nixpkgs/pkgs/tools/misc/skim/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
 
   outputs = [ "out" "vim" ];
 
-  cargoSha256 = "0xh4f8c62kzj2fx7hyhdy13zhay13a6d2d7i9yz0n40dfgf70qx0";
+  cargoSha256 = "1jk2vcm2z6r1xd6md98jzpcy7kdwp5p2fzxvvaz9qscyfnx28x17";
 
   postPatch = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
diff --git a/nixpkgs/pkgs/tools/misc/starship/default.nix b/nixpkgs/pkgs/tools/misc/starship/default.nix
index 1e3eae787014..432eab680c83 100644
--- a/nixpkgs/pkgs/tools/misc/starship/default.nix
+++ b/nixpkgs/pkgs/tools/misc/starship/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.52.1";
+  version = "0.54.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BX+NUF7mgZyrloj3h9YcG2r6ZZWO20hXQYbBvaK34JQ=";
+    sha256 = "sha256-8vrLvP8NevVpmqxqJHsySGXRTDX45c8FrfB7W7fdQvg=";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "sha256-8xqbPkdIVfAkeG1WZFq56N0rcF+uh2FeMKzz4FgMFYs=";
+  cargoSha256 = "sha256-lIZsYhyef9LsGME01Kb5TGamGpLyZiPrdIb+jUqvbOg=";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/tools/misc/staruml/default.nix b/nixpkgs/pkgs/tools/misc/staruml/default.nix
index db3a065fdf4e..847e8bb84282 100644
--- a/nixpkgs/pkgs/tools/misc/staruml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/staruml/default.nix
@@ -1,11 +1,11 @@
 { stdenv, lib, fetchurl, makeWrapper
 , dpkg, patchelf
-, gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, systemd
+, gtk2, glib, gdk-pixbuf, alsa-lib, nss, nspr, GConf, cups, libgcrypt, dbus, systemd
 , libXdamage, expat }:
 
 let
   LD_LIBRARY_PATH = lib.makeLibraryPath
-    [ glib gtk2 gdk-pixbuf alsaLib nss nspr GConf cups libgcrypt dbus libXdamage expat ];
+    [ glib gtk2 gdk-pixbuf alsa-lib nss nspr GConf cups libgcrypt dbus libXdamage expat ];
 in
 stdenv.mkDerivation rec {
   version = "2.8.1";
diff --git a/nixpkgs/pkgs/tools/misc/sutils/default.nix b/nixpkgs/pkgs/tools/misc/sutils/default.nix
index 78172c5ef75d..f611b7adc07c 100644
--- a/nixpkgs/pkgs/tools/misc/sutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib }:
+{ lib, stdenv, fetchFromGitHub, alsa-lib }:
 
 stdenv.mkDerivation rec {
    version = "0.2";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
    hardeningDisable = [ "format" ];
 
-   buildInputs = [ alsaLib ];
+   buildInputs = [ alsa-lib ];
 
    prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
 
diff --git a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
index cad7f5e3881e..1d78759761d6 100644
--- a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
@@ -8,13 +8,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "3.3";
+  version = "3.7";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "00pz5vv39qjsw67fdlj6942371lyvv368lc82z17nnh723ck54yy";
+    sha256 = "0krskxbmlglkipqzjwgm2nmq118m8l0djgh0f8l6n2w3bjblhyfx";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
diff --git a/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix b/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
index b3f58c4cdb18..a82a71abf96c 100644
--- a/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
+++ b/nixpkgs/pkgs/tools/misc/swaglyrics/default.nix
@@ -19,7 +19,8 @@ python3.pkgs.buildPythonApplication rec {
     substituteInPlace setup.py \
       --replace 'requests>=2.24.0' 'requests~=2.23' \
       --replace 'beautifulsoup4==4.9.1' 'beautifulsoup4~=4.9' \
-      --replace 'colorama==0.4.3' 'colorama~=0.4'
+      --replace 'colorama==0.4.3' 'colorama~=0.4' \
+      --replace 'unidecode==1.1.1' 'unidecode~=1.2'
   '';
 
   preBuild = "export HOME=$NIX_BUILD_TOP";
diff --git a/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix b/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix
index 12168bd07f06..1ead06ed6e85 100644
--- a/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sweep-visualizer/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, makeWrapper, fetchurl,
-  alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib,
+  alsa-lib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib,
   gnome2, pango, gtk2-x11, nspr, nss,
   libX11, libxcb, libXcomposite, libXcursor, libXdamage, libXext, libXfixes,
   libXi, libXrandr, libXrender, libXScrnSaver, libXtst,
@@ -32,7 +32,7 @@
 
     preFixup = let
       libPath = lib.makeLibraryPath [
-        alsaLib atk cairo cups.lib dbus.lib expat fontconfig.lib freetype
+        alsa-lib atk cairo cups.lib dbus.lib expat fontconfig.lib freetype
         gdk-pixbuf glib gnome2.GConf pango gtk2-x11 nspr nss stdenv.cc.cc.lib
         libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes
         libXi libXrandr libXrender libXScrnSaver libXtst
diff --git a/nixpkgs/pkgs/tools/misc/tab-rs/default.nix b/nixpkgs/pkgs/tools/misc/tab-rs/default.nix
index affea98ea555..1782e327f8a6 100644
--- a/nixpkgs/pkgs/tools/misc/tab-rs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tab-rs/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1crj0caimin667f9kz34c0sm77892dmqaf1kxryqakqm75az5wfr";
   };
 
-  cargoSha256 = "0c2478c5gblvci0s68pv8386kxhs88dxzcpd2rq6l82bjn7yzymd";
+  cargoSha256 = "0v5vkxr2sncw4r4pwvk0jbk4as7zwwfvjk2cpj9872zp07s35a77";
 
   buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
 
diff --git a/nixpkgs/pkgs/tools/misc/tagref/default.nix b/nixpkgs/pkgs/tools/misc/tagref/default.nix
index ba63ec290d4c..f47a5808d063 100644
--- a/nixpkgs/pkgs/tools/misc/tagref/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tagref/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0y1c0v2zjpav1n72pgf3kpqdz6ixp2mjhcvvza4gzfp865c236nc";
   };
 
-  cargoSha256 = "06ljy213x9lhvqjysz9cjhrrg0ns07qkz27pxd8rih0mk6cck45g";
+  cargoSha256 = "0ca6maapn2337i78mq97199xjqk87ckw14k8kspc8kx5wnics2hl";
 
   meta = with lib; {
     description = "Tagref helps you refer to other locations in your codebase.";
diff --git a/nixpkgs/pkgs/tools/misc/tealdeer/default.nix b/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
index 358c32295638..985f2dccd682 100644
--- a/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1f37qlw4nxdhlqlqzzb4j11gsv26abk2nk2qhbzj77kp4v2b125x";
   };
 
-  cargoSha256 = "0g5fjj677qzhw3nw7f3n5gghsj2y811bdclxpy8aq2n58gbwvhvc";
+  cargoSha256 = "1rjnparpcn8rnqy43xl4gg151p1a0zj9sna600hz01r41g1hgccq";
 
   buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ];
 
diff --git a/nixpkgs/pkgs/tools/misc/tensorman/default.nix b/nixpkgs/pkgs/tools/misc/tensorman/default.nix
index 0e724059e99d..307a472c73f7 100644
--- a/nixpkgs/pkgs/tools/misc/tensorman/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tensorman/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
-  cargoSha256 = "0vckay4jhg02xg68mvh7ys0yjj0p30m6wsjriqc8k24wjsrhiw9k";
+  cargoSha256 = "1lza3kc43581a09ss82bb5p0r74dy7si2x07cj4cb8dizl60b71v";
 
   meta = with lib; {
     description = "Utility for easy management of Tensorflow containers";
diff --git a/nixpkgs/pkgs/tools/misc/termplay/default.nix b/nixpkgs/pkgs/tools/misc/termplay/default.nix
index d60a65214b74..5db3998409e6 100644
--- a/nixpkgs/pkgs/tools/misc/termplay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/termplay/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoBuildFlags = ["--features" "bin"];
-  cargoSha256 = "0nxm2k8dx6nxyghvpw44wqfd1n65947v2wqxxvy641hin4d7xzma";
+  cargoSha256 = "08ip6x4kink244majlk595yh551c2ap3ry58wly994mh8wf6ifwb";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/timidity/default.nix b/nixpkgs/pkgs/tools/misc/timidity/default.nix
index 63c4fd36ff6e..760284140b11 100644
--- a/nixpkgs/pkgs/tools/misc/timidity/default.nix
+++ b/nixpkgs/pkgs/tools/misc/timidity/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, libjack2, ncurses, pkg-config }:
+{ lib, stdenv, fetchurl, alsa-lib, libjack2, ncurses, pkg-config }:
 
 stdenv.mkDerivation {
   name = "timidity-2.15.0";
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   patches = [ ./timidity-iA-Oj.patch ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib libjack2 ncurses ];
+  buildInputs = [ alsa-lib libjack2 ncurses ];
 
   configureFlags = [ "--enable-audio=oss,alsa,jack" "--enable-alsaseq" "--with-default-output=alsa" "--enable-ncurses" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/tlp/default.nix b/nixpkgs/pkgs/tools/misc/tlp/default.nix
index b39f631f95bf..a615330a4a8f 100644
--- a/nixpkgs/pkgs/tools/misc/tlp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tlp/default.nix
@@ -88,7 +88,7 @@
         systemd
         util-linux
       ] ++ lib.optional enableRDW networkmanager
-        ++ lib.optional (lib.any (lib.meta.platformMatch stdenv.hostPlatform) x86_energy_perf_policy.meta.platforms) x86_energy_perf_policy
+        ++ lib.optional (lib.meta.availableOn stdenv.hostPlatform x86_energy_perf_policy) x86_energy_perf_policy
     );
   in
     ''
diff --git a/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix b/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
index 5ed63d799793..c3ceae7a0bd3 100644
--- a/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
@@ -8,8 +8,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "tmuxinator";
-  version = "2.0.2";
-  source.sha256 = "0wwrgx1syi3zrwn52pblh7qivyxp3cvq0rywp6n0s2bkk0xz903z";
+  version = "2.0.3";
+  source.sha256 = "0js43hl07is9nx1b17g8x2blh1q7ls8y4dshcb50r5dn7drpardh";
 
   erubis = buildRubyGem rec {
     inherit ruby;
diff --git a/nixpkgs/pkgs/tools/misc/togglesg-download/default.nix b/nixpkgs/pkgs/tools/misc/togglesg-download/default.nix
deleted file mode 100644
index 812ad7900d01..000000000000
--- a/nixpkgs/pkgs/tools/misc/togglesg-download/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, fetchFromGitHub, pythonPackages, makeWrapper, ffmpeg_3 }:
-
-pythonPackages.buildPythonApplication {
-
-  pname = "togglesg-download-git";
-  version = "2017-12-07";
-
-  src = fetchFromGitHub {
-    owner  = "0x776b7364";
-    repo   = "toggle.sg-download";
-    rev    = "e64959f99ac48920249987a644eefceee923282f";
-    sha256 = "0j317wmyzpwfcixjkybbq2vkg52vij21bs40zg3n1bs61rgmzrn8";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  doCheck = false;
-  dontBuild = true;
-  dontStrip = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/{bin,share/doc/togglesg-download}
-    substitute $src/download_toggle_video2.py $out/bin/download_toggle_video2.py \
-      --replace "ffmpeg_download_cmd = 'ffmpeg" "ffmpeg_download_cmd = '${lib.getBin ffmpeg_3}/bin/ffmpeg"
-    chmod 0755 $out/bin/download_toggle_video2.py
-
-    cp LICENSE README.md $out/share/doc/togglesg-download
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/0x776b7364/toggle.sg-download";
-    description = "Command-line tool to download videos from toggle.sg written in Python";
-    longDescription = ''
-      toggle.sg requires SilverLight in order to view videos. This tool will
-      allow you to download the video files for viewing in your media player and
-      on your OS of choice.
-    '';
-    license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
index ff0661de46ad..7677a756737e 100644
--- a/nixpkgs/pkgs/tools/misc/topgrade/default.nix
+++ b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "6.8.0";
+  version = "7.0.1";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PPOsb9bne0q/WGAL3W2RGo/0yxyz/XXU3xYXKcCIqX0=";
+    sha256 = "sha256-86lBEtwybHrcm7G0ZIbfOHSZPBzNERHGqrTR4YbpDnE=";
   };
 
-  cargoSha256 = "sha256-IirU/4hE+jo5A9pB7RnePhqcbCZXBCe0Ki6i7eEWIbk=";
+  cargoSha256 = "sha256-yZIh01A1yC1ZeDDyXeh1C3abPfbW2JuJ7TIsVO1weZk=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/nixpkgs/pkgs/tools/misc/trash-cli/default.nix b/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
index d199fd7fda3d..3a525ac94972 100644
--- a/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
@@ -2,22 +2,24 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.20.12.26";
+  version = "0.21.5.22";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    sha256 = "15iivl9xln1bw1zr2x5zvqyb6aj7mc8hfqi6dniq6xkp5m046ib7";
+    sha256 = "0c1q13fyh9gi9gbxc55n772xlgjjr1ysnlxl41vifdcd4q8fhil8";
   };
 
   propagatedBuildInputs = [ python3Packages.psutil ];
 
   checkInputs = with python3Packages; [
-    nose
     mock
+    pytestCheckHook
   ];
-  checkPhase = "nosetests";
+
+  # Skip `test_user_specified` since its result depends on the mount path.
+  disabledTests = [ "test_user_specified" ];
 
   meta = with lib; {
     homepage = "https://github.com/andreafrancia/trash-cli";
@@ -25,5 +27,6 @@ python3Packages.buildPythonApplication rec {
     maintainers = [ maintainers.rycee ];
     platforms = platforms.unix;
     license = licenses.gpl2;
+    mainProgram = "trash";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch b/nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch
deleted file mode 100644
index d7b485eec158..000000000000
--- a/nixpkgs/pkgs/tools/misc/trash-cli/nix-paths.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/trashcli/list_mount_points.py	2014-12-23 10:10:43.808470486 +0100
-+++ a/trashcli/list_mount_points.py	2014-12-23 10:19:04.954796457 +0100
-@@ -12,7 +12,7 @@ def mount_points_from_getmnt():
- 
- def mount_points_from_df():
-     import subprocess
--    df_output = subprocess.Popen(["df", "-P"], stdout=subprocess.PIPE).stdout
-+    df_output = subprocess.Popen(["@df@", "-P"], stdout=subprocess.PIPE).stdout
-     return list(_mount_points_from_df_output(df_output))
- 
- def _mount_points_from_df_output(df_output):
-@@ -46,13 +46,7 @@ def _mounted_filesystems_from_getmnt() :
-                     ("mnt_freq", c_int),       # Dump frequency (in days).
-                     ("mnt_passno", c_int)]     # Pass number for `fsck'.
- 
--    if sys.platform == "cygwin":
--        libc_name = "cygwin1.dll"
--    else:
--        libc_name = find_library("c")
--
--    if libc_name == None :
--        libc_name="/lib/libc.so.6" # fix for my Gentoo 4.0
-+    libc_name = "@libc@"
- 
-     libc = cdll.LoadLibrary(libc_name)
-     libc.getmntent.restype = POINTER(mntent_struct)
diff --git a/nixpkgs/pkgs/tools/misc/tremor-rs/default.nix b/nixpkgs/pkgs/tools/misc/tremor-rs/default.nix
index ca3f3058755f..9c0a68805a6f 100644
--- a/nixpkgs/pkgs/tools/misc/tremor-rs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tremor-rs/default.nix
@@ -1,22 +1,23 @@
 { lib, rustPlatform, pkg-config, cmake, llvmPackages, openssl, fetchFromGitHub
-, installShellFiles }:
+, installShellFiles, stdenv, Security, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "tremor";
-  version = "0.11.0";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "tremor-rs";
     repo = "tremor-runtime";
     rev = "v${version}";
-    sha256 = "19g0ijkclrza6s0qcbwwh3lhlkisy00ffcl0c0d7dfqwrcisgz57";
+    sha256 = "sha256-FedRwFVc+m25+Elj1Vp/fInbK6DVsUpniw29/dtecWo=";
   };
 
-  cargoSha256 = "1xv205czb2z6qpqi6vslyrx2n21510qqa11i2hwya3jdcc9lkrsd";
+  cargoSha256 = "sha256-jxXoFOwoBSkn7pv10ctLpD7ko8bokc1ADkB7NQFRC7c=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
 
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ Security libiconv ];
 
   # TODO export TREMOR_PATH($out/lib) variable
   postInstall = ''
@@ -29,7 +30,7 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/tremor completions zsh)
   '';
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
 
   # OPENSSL_NO_VENDOR - If set, always find OpenSSL in the system, even if the vendored feature is enabled.
   OPENSSL_NO_VENDOR = 1;
@@ -40,7 +41,7 @@ rustPlatform.buildRustPackage rec {
     description = "Early stage event processing system for unstructured data with rich support for structural pattern matching, filtering and transformation";
     homepage = "https://www.tremor.rs/";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.x86_64;
     maintainers = with maintainers; [ humancalico ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/tydra/default.nix b/nixpkgs/pkgs/tools/misc/tydra/default.nix
index 00c8aa2a2c3b..fd8e8e6ee5a8 100644
--- a/nixpkgs/pkgs/tools/misc/tydra/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tydra/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1kvyski3qy2lwlpipynq894i0g9x2j4a1iy2mgdwfibfyfkv2jnm";
   };
 
-  cargoSha256 = "11l3fvym16wrrpm9vy4asmqdh8qynwjy0w4gx2bbcnc6300ag43a";
+  cargoSha256 = "0handd5vxxvmlllzxhvwgadl4r7yc78f068r8jryprpap31azg3a";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/uwuify/default.nix b/nixpkgs/pkgs/tools/misc/uwuify/default.nix
index 849703ffd763..b276abf3e5ce 100644
--- a/nixpkgs/pkgs/tools/misc/uwuify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/uwuify/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-MzXObbxccwEG7egmQMCdhUukGqZS+NgbYwZjTaqME7I=";
   };
 
-  cargoSha256 = "sha256-iyoGLFIfHToOwqEb5lQ1nXR0W1gLOVMfvw39LX6ib+U=";
+  cargoSha256 = "sha256-1BoB7K/dWy3AbogvHIDLrdPD7K54EISvn4RVU5RLTi4=";
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/vector/default.nix b/nixpkgs/pkgs/tools/misc/vector/default.nix
index 0c4085d8296d..161c28054b0b 100644
--- a/nixpkgs/pkgs/tools/misc/vector/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vector/default.nix
@@ -18,16 +18,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vector";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "timberio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Sur5QfPIoJXkcYdyNlIHOvmV2yBedhNm7UinmaFEc2E=";
+    sha256 = "sha256-ige0138alZ0KAmPakPVmDVydz5qco6m0xK7AEzScyXc=";
   };
 
-  cargoSha256 = "sha256-1Xm1X1pfx9J0tBck2WA+zt2OxtQsqustcWPazsPyKPY=";
+  cargoSha256 = "sha256-oK4M6zTfI0QVW9kQTgpP/vSxFt2VlRABmKvQ4aAqC74=";
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl protobuf rdkafka ]
     ++ lib.optional stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
diff --git a/nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix b/nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
new file mode 100644
index 000000000000..a833846dd00f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchFromGitHub, gnumake, qmake }:
+
+mkDerivation rec {
+  name = "veikk-linux-driver-gui";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "jlam55555";
+    repo = name;
+    rev = "v${version}";
+    sha256 = "02g1q79kwjlzg95w38a1d7nxvcry8xcsvhax2js4c7xqvzhkki5j";
+  };
+
+  nativeBuildInputs = [ qmake ];
+
+  postBuild = ''
+    make all clean
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp veikk-linux-driver-gui $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Configuration tool for the VEIKK Linux driver";
+    homepage = "https://github.com/jlam55555/veikk-linux-driver-gui/";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nicbk ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/vivid/default.nix b/nixpkgs/pkgs/tools/misc/vivid/default.nix
index e131d8bd4e73..ef7bd00f0e1e 100644
--- a/nixpkgs/pkgs/tools/misc/vivid/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vivid/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0m928hy2q8byfpm55nziiz86gcnhdnw3zpj78d8wx0pp318zjbla";
   };
 
-  cargoSha256 = "10xddr5cccc5cmhn4kwi27h3krmgapd7bqcp4rhjlbhdhsw7qxkx";
+  cargoSha256 = "1sn1cq3kaswnz2z9q5h84qipp64ha7jv5kix31lm7v6nam0f5awz";
 
   meta = with lib; {
     description = "A generator for LS_COLORS with support for multiple color themes";
diff --git a/nixpkgs/pkgs/tools/misc/void/default.nix b/nixpkgs/pkgs/tools/misc/void/default.nix
index 18699e5911dc..7057fed8ca13 100644
--- a/nixpkgs/pkgs/tools/misc/void/default.nix
+++ b/nixpkgs/pkgs/tools/misc/void/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   # The tests are long-running and not that useful
   doCheck = false;
 
-  cargoSha256 = "0fnkcjxcsiw9j0ibh4z7zy0m6r5d84q5hvr2darwpckbn9ryrh3k";
+  cargoSha256 = "1wh1yb02w5afghd19i2s0v8mq4lq20djsljrr44xciq68bqfdcp0";
 
   meta = with lib; {
     description = "Terminal-based personal organizer";
diff --git a/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix b/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
index 6cc13e6f87e6..7aebfeab2cee 100644
--- a/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vorbisgain/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, unzip, libogg, libvorbis }:
+{ lib, stdenv, fetchurl, libogg, libvorbis }:
 
 stdenv.mkDerivation rec {
   name = "vorbisgain-0.37";
@@ -10,7 +10,6 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [ libogg libvorbis ];
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/wagyu/default.nix b/nixpkgs/pkgs/tools/misc/wagyu/default.nix
index 8ed952a82ceb..59748992dae0 100644
--- a/nixpkgs/pkgs/tools/misc/wagyu/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wagyu/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wagyu";
@@ -11,7 +11,9 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1646j0lgg3hhznifvbkvr672p3yqlcavswijawaxq7n33ll8vmcn";
   };
 
-  cargoSha256 = "16d1b3pamkg29nq80n6cbzc4zl9z3cgfvdxjkr2z4xrnzmkn1ysi";
+  cargoSha256 = "10al0j8ak95x4d85lzphgq8kmdnb809l6gahfp5miyvsfd4dxmpi";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
 
   meta = with lib; {
     description = "Rust library for generating cryptocurrency wallets";
diff --git a/nixpkgs/pkgs/tools/misc/websocat/default.nix b/nixpkgs/pkgs/tools/misc/websocat/default.nix
index 821c059a45f5..7ba2accc6787 100644
--- a/nixpkgs/pkgs/tools/misc/websocat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/websocat/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, openssl, rustPlatform, Security, makeWrapper, bash }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, openssl, rustPlatform, libiconv
+, Security, makeWrapper, bash }:
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
@@ -15,7 +16,8 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-+3SG1maarY4DJ4+QiYGwltGLksOoOhKtcqstRwgzi2k=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
-  buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   # Needed to get openssl-sys to use pkg-config.
   OPENSSL_NO_VENDOR=1;
diff --git a/nixpkgs/pkgs/tools/misc/wlc/default.nix b/nixpkgs/pkgs/tools/misc/wlc/default.nix
new file mode 100644
index 000000000000..874e31ca6ef1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/wlc/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, python3
+}:
+
+with python3.pkgs;
+
+buildPythonPackage rec {
+  pname = "wlc";
+  version = "1.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256:0ysx250v2qycy1m3jj0wxmyf2f5n8fxf6br69vcbyq2cnqw609nx";
+  };
+
+  propagatedBuildInputs = [
+    argcomplete
+    python-dateutil
+    requests
+    pyxdg
+    pre-commit
+    responses
+    twine
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "wlc is a Weblate commandline client using Weblate's REST API.";
+    homepage = "https://github.com/WeblateOrg/wlc";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ paperdigits ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/woeusb/default.nix b/nixpkgs/pkgs/tools/misc/woeusb/default.nix
index 8cbd1ad06977..ade752e09f66 100644
--- a/nixpkgs/pkgs/tools/misc/woeusb/default.nix
+++ b/nixpkgs/pkgs/tools/misc/woeusb/default.nix
@@ -1,45 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, makeWrapper
-, coreutils, dosfstools, findutils, gawk, gnugrep, grub2_light, ncurses, ntfs3g, parted, p7zip, util-linux, wget
-, wxGTK30 }:
+{ lib, stdenv, fetchFromGitHub, installShellFiles, makeWrapper
+, coreutils, dosfstools, findutils, gawk, gnugrep, grub2_light, ncurses, ntfs3g, parted, p7zip, util-linux, wimlib, wget }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.1";
+  version = "5.1.0";
   pname = "woeusb";
 
   src = fetchFromGitHub {
-    owner = "slacka";
+    owner = "WoeUSB";
     repo = "WoeUSB";
     rev = "v${version}";
-    sha256 = "1hbr88sr943s4yqdvbny543jvgvnsa622wq4cmwd23hjsfcrvyiv";
+    sha256 = "1qakk7lnj71m061rn72nabk4c37vw0vkx2a28xgxas8v8cwvkkam";
   };
 
-  patches = [ ./remove-workaround.patch ];
-
-  nativeBuildInputs = [ autoreconfHook makeWrapper ];
-  buildInputs = [ wxGTK30 ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   postPatch = ''
     # Emulate version smudge filter (see .gitattributes, .gitconfig).
-    for file in configure.ac debian/changelog src/woeusb src/woeusb.1 src/woeusbgui.1; do
+    for file in sbin/woeusb share/man/man1/woeusb.1; do
       substituteInPlace "$file" \
         --replace '@@WOEUSB_VERSION@@' '${version}'
     done
-
-    substituteInPlace src/MainPanel.cpp \
-      --replace "'woeusb " "'$out/bin/woeusb "
   '';
 
-  postInstall = ''
-    # don't write data into /
-    substituteInPlace "$out/bin/woeusb" \
-      --replace /media/ /run/woeusb/
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mv sbin/woeusb $out/bin
+    installManPage share/man/man1/woeusb.1
 
-    # woeusbgui launches woeusb with pkexec, which sets
-    # PATH=/usr/sbin:/usr/bin:/sbin:/bin:/root/bin.  Perhaps pkexec
-    # should be patched with a less useless default PATH, but for now
-    # we add everything we need manually.
     wrapProgram "$out/bin/woeusb" \
-      --set PATH '${lib.makeBinPath [ coreutils dosfstools findutils gawk gnugrep grub2_light ncurses ntfs3g parted util-linux wget p7zip ]}'
+      --set PATH '${lib.makeBinPath [ coreutils dosfstools findutils gawk gnugrep grub2_light ncurses ntfs3g parted p7zip util-linux wget wimlib ]}'
+
+    runHook postInstall
   '';
 
   doInstallCheck = true;
@@ -52,9 +45,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Create bootable USB disks from Windows ISO images";
-    homepage = "https://github.com/slacka/WoeUSB";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ bjornfor gnidorah ];
+    homepage = "https://github.com/WoeUSB/WoeUSB";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch b/nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch
deleted file mode 100644
index 3550002dfedd..000000000000
--- a/nixpkgs/pkgs/tools/misc/woeusb/remove-workaround.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://github.com/slacka/WoeUSB/issues/267
-
-diff --git a/src/woeusb b/src/woeusb
-index 8cb292c..c017dbf 100755
---- a/src/woeusb
-+++ b/src/woeusb
-@@ -1661,6 +1661,8 @@ workaround_support_windows_7_uefi_boot(){
- ## - System lagging while copying data · Issue #113 · slacka/WoeUSB <https://github.com/slacka/WoeUSB/issues/113>
- ## - The pernicious USB-stick stall problem [LWN.net] <https://lwn.net/Articles/572911/>
- workaround_linux_make_writeback_buffering_not_suck(){
-+	return 0
-+
- 	util_check_function_parameters_quantity 1 "${#}"
- 	local -r mode="${1}"
- 
diff --git a/nixpkgs/pkgs/tools/misc/xcd/default.nix b/nixpkgs/pkgs/tools/misc/xcd/default.nix
new file mode 100644
index 000000000000..7e3402104192
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/xcd/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "xcd";
+  version = "1.2";
+
+  src = fetchurl {
+    url = "https://www.muppetlabs.com/~breadbox/pub/software/${pname}-${version}.tar.gz";
+    sha256 = "1cgwspy08q05rhxbp7m1yrrix252i9jzfcfbzmhdvlgf5bfpl25g";
+  };
+
+  buildInputs = [ ncurses ];
+
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D $pname $out/bin/$pname
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Colorized hexdump tool";
+    homepage = "https://www.muppetlabs.com/~breadbox/software/xcd.html";
+    maintainers = [ maintainers.xfnw ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/xcp/default.nix b/nixpkgs/pkgs/tools/misc/xcp/default.nix
new file mode 100644
index 000000000000..907e39a3f27b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/xcp/default.nix
@@ -0,0 +1,25 @@
+{ rustPlatform, fetchFromGitHub, lib }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "xcp";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "tarka";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-Kwt1qLuP63bIn0VY3oFEcbKh1GGBdObfOmtPV4DMQUU=";
+  };
+
+  # no such file or directory errors
+  doCheck = false;
+
+  cargoSha256 = "sha256-wFOXRQSOfmGB6Zmkqn7KoK+vyHeFKyGNx7Zf2zzPcE4=";
+
+  meta = with lib; {
+    description = "An extended cp(1)";
+    homepage = "https://github.com/tarka/xcp";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ legendofmiracles ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/xjobs/default.nix b/nixpkgs/pkgs/tools/misc/xjobs/default.nix
new file mode 100644
index 000000000000..5edb365a3327
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/xjobs/default.nix
@@ -0,0 +1,65 @@
+{ lib, stdenv, fetchurl
+, flex, installShellFiles, ncurses, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xjobs";
+  version = "20200726";
+
+  src = fetchurl {
+    url = "mirror://sourceforge//xjobs/files/${pname}-${version}.tgz";
+    sha256 = "0ay6gn43pnm7r1jamwgpycl67bjg5n87ncl27jb01w2x6x70z0i3";
+  };
+
+  nativeBuildInputs = [
+    flex
+    installShellFiles
+    which
+  ];
+  buildInputs = [
+    ncurses
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ./${pname} -V
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,etc}
+    install -m755 ${pname} $out/bin/${pname}
+    install -m644 ${pname}.rc $out/etc/${pname}.rc
+    installManPage ${pname}.1
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A program which reads job descriptions line by line and executes them in parallel";
+    homepage = "https://www.maier-komor.de/xjobs.html";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.siriobalmelli ];
+    longDescription = ''
+      xjobs reads job descriptions line by line and executes them in parallel.
+
+      It limits the number of parallel executing jobs and starts new jobs when jobs finish.
+
+      Therefore, it combines the arguments from every input line with the utility
+      and arguments given on the command line.
+      If no utility is given as an argument to xjobs,
+      then the first argument on every job line will be used as utility.
+      To execute utility xjobs searches the directories given in the PATH environment variable
+      and uses the first file found in these directories.
+
+      xjobs is most useful on multi-processor/core machines when one needs to execute
+      several time consuming command several that could possibly be run in parallel.
+      With xjobs this can be achieved easily, and it is possible to limit the load
+      of the machine to a useful value.
+
+      It works similar to xargs, but starts several processes simultaneously
+      and gives only one line of arguments to each utility call.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix b/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix
index b130de949756..fadeec41031b 100644
--- a/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xprite-editor/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config python3 ];
 
-  cargoSha256 = "1a0zy8gfc1gdk8nnv5qr4yspqy1jsip5nql3w74rl6h46cplpf5y";
+  cargoSha256 = "0z1ip667d1qwvm9md3zg8ib9jixpg7qj5ypwib7r2928h14yg7ck";
 
   cargoBuildFlags = [ "--bin" "xprite-native" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix b/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
index 05750b962f00..2e5063768516 100644
--- a/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, makeWrapper, xorgserver, getopt
 , xauth, util-linux, which, fontsConf, gawk, coreutils }:
 let
-  xvfb_run = fetchurl {
+  xvfb-run = fetchurl {
     name = "xvfb-run";
     # https://git.archlinux.org/svntogit/packages.git/?h=packages/xorg-server
     url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/xvfb-run?h=packages/xorg-server&id=9cb733cefa92af3fca608fb051d5251160c9bbff";
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ makeWrapper ];
   buildCommand = ''
     mkdir -p $out/bin
-    cp ${xvfb_run} $out/bin/xvfb-run
+    cp ${xvfb-run} $out/bin/xvfb-run
 
     chmod a+x $out/bin/xvfb-run
     patchShebangs $out/bin/xvfb-run
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/xxv/default.nix b/nixpkgs/pkgs/tools/misc/xxv/default.nix
index b22dfc7e4cd1..99a8193c6ca7 100644
--- a/nixpkgs/pkgs/tools/misc/xxv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xxv/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0ppfsgdigza2jppbkg4qanjhlkpnq7p115c4471vc6vpikpfrlk3";
   };
 
-  cargoSha256 = "1gnyig87a0yqgkng52fpn6hv629vym6k7ydljnxrhb5phmj2qbqx";
+  cargoSha256 = "0pmpvlmy4pw252is34r9af1ysrp78xs8pz8cw4rys9s4fh2hmhjb";
 
   buildInputs = lib.optionals useNcurses [ ncurses ]
   ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security ])
diff --git a/nixpkgs/pkgs/tools/misc/yafetch/default.nix b/nixpkgs/pkgs/tools/misc/yafetch/default.nix
new file mode 100644
index 000000000000..c3bea1d9e8c5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/yafetch/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitLab }:
+
+stdenv.mkDerivation rec {
+  pname = "yafetch";
+  version = "unstable-2021-06-01";
+
+  src = fetchFromGitLab {
+    owner = "cyberkitty";
+    repo = pname;
+    rev = "d9bbc1e4abca87028f898473c9a265161af3c287";
+    sha256 = "0hyb5k7drnm9li720z1fdvz7b15xgf7n6yajnz1j98day3k88bqk";
+  };
+
+  # Use the provided NixOS logo automatically
+  prePatch = ''
+    substituteInPlace ./config.h --replace \
+      "#include \"ascii/tux.h\"" "#include \"ascii/nixos.h\""
+  '';
+
+  # Fixes installation path
+  PREFIX = placeholder "out";
+
+  meta = with lib; {
+    homepage = "https://gitlab.com/cyberkitty/yafetch";
+    description = "Yet another fetch clone written in C++";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/yle-dl/default.nix b/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
index 818ad5ec645e..cd04e2020b1c 100644
--- a/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yle-dl/default.nix
@@ -1,27 +1,28 @@
-{ lib, fetchFromGitHub, rtmpdump, php, wget, python3Packages, ffmpeg_3 }:
+{ lib, fetchFromGitHub, rtmpdump, php, wget, python3Packages, ffmpeg }:
 
 python3Packages.buildPythonApplication rec {
   pname = "yle-dl";
-  version = "20210212";
+  version = "20210502";
 
   src = fetchFromGitHub {
     owner = "aajanki";
     repo = "yle-dl";
     rev = version;
-    sha256 = "sha256-0JnigYmslQ/7KsQAFg3AaWPAU/tD1lS7lF6OCcv/ze4=";
+    sha256 = "sha256-HkhyxsiOMOfTHTj+qmY8l2z2sMtO4eMZmJUU/WvV4wY=";
   };
 
   propagatedBuildInputs = with python3Packages; [
-    attrs ConfigArgParse ffmpeg_3 future lxml requests
+    attrs ConfigArgParse ffmpeg future lxml requests
   ];
   pythonPath = [ rtmpdump php wget ];
 
   doCheck = false; # tests require network access
-  checkInputs = with python3Packages; [ ffmpeg_3 pytest pytestrunner ];
+  checkInputs = with python3Packages; [ ffmpeg pytest pytestrunner ];
 
   meta = with lib; {
     description = "Downloads videos from Yle (Finnish Broadcasting Company) servers";
     homepage = "https://aajanki.github.io/yle-dl/";
+    changelog = "https://github.com/aajanki/yle-dl/blob/${version}/ChangeLog";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg SuperSandro2000 ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
index 3baad9f939b0..7bf0c440a37a 100644
--- a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
@@ -18,11 +18,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2021.04.26";
+  version = "2021.06.06";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0jpa65jr5djn9175p6a8j9i1zgarshfwfsgmprc0vvnsl3s23ksc";
+    sha256 = "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/ytfzf/default.nix b/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
index ba1658f3d1de..302839a30387 100644
--- a/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ytfzf/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ytfzf";
-  version = "1.1.4";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "pystardust";
     repo = "ytfzf";
     rev = "v${version}";
-    sha256 = "sha256-zRzd+rZxT5IJoFJl9sutTdQC4eMDUCBld5bTGfQWtco=";
+    sha256 = "sha256-HXn/8Lrt6tNZWW1AeKMArOiW9t1v7MzlynSLryNdI5Y=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch b/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch
index db7d4b40fccb..e023914083d8 100644
--- a/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch
+++ b/nixpkgs/pkgs/tools/misc/ytfzf/no-update.patch
@@ -1,8 +1,8 @@
 diff --git a/ytfzf b/ytfzf
-index 42f41c0..f75f5cb 100755
+index d5ff8c9..96f9c8f 100755
 --- a/ytfzf
 +++ b/ytfzf
-@@ -892,23 +892,8 @@ send_notify () {
+@@ -934,23 +934,8 @@ send_notify () {
  }
  
  update_ytfzf () {
@@ -10,7 +10,7 @@ index 42f41c0..f75f5cb 100755
 -	updatefile="/tmp/ytfzf-update"
 -	curl -L "https://raw.githubusercontent.com/pystardust/ytfzf/$branch/ytfzf" -o "$updatefile"
 -
--	if sed -n '1p' < "$updatefile" | grep -q '#!/bin/sh' ; then
+-	if sed -n '1p' < "$updatefile" | grep -q '#!/bin/sh'; then
 -		chmod 755 "$updatefile"
 -		if [ "$(uname)" = "Darwin" ]; then
 -			sudo cp "$updatefile" "/usr/local/bin/ytfzf"
@@ -27,4 +27,4 @@ index 42f41c0..f75f5cb 100755
 +	exit 1
  }
  
- scrape_subscriptions () {
+ sort_video_data_date () {
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
index 02982f9cc4a3..00e3ec1fbdcd 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -1,53 +1,61 @@
 { lib
-, stdenv
+, mkDerivation
 , fetchurl
-, wrapQtAppsHook
 , pcsclite
 , pyotherside
-, pythonPackages
 , python3
 , qmake
 , qtbase
 , qtgraphicaleffects
-, qtquickcontrols
 , qtquickcontrols2
 , yubikey-manager
 , yubikey-personalization
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "yubikey-manager-qt";
-  version = "1.1.5";
+  version = "1.2.2";
 
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "1yimlaqvhq34gw6wkqgil0qq8x9zbfzh4psqihjr2d9jaa2wygwy";
+    sha256 = "1jqibv7na9h2r8nxgzp40j9qpyiwx97c65krivkcqjwdjk5lrahl";
   };
 
-  nativeBuildInputs = [ wrapQtAppsHook python3.pkgs.wrapPython qmake ];
+  nativeBuildInputs = [
+    python3.pkgs.wrapPython
+    qmake
+  ];
 
   postPatch = ''
     substituteInPlace ykman-gui/deployment.pri --replace '/usr/bin' "$out/bin"
   '';
 
-  buildInputs = [ pythonPackages.python qtbase qtgraphicaleffects qtquickcontrols qtquickcontrols2 pyotherside ];
+  buildInputs = [
+    pyotherside
+    python3
+    qtbase
+    qtgraphicaleffects
+    qtquickcontrols2
+  ];
 
-  pythonPath = [ yubikey-manager ];
+  pythonPath = [
+    (yubikey-manager.override { python3Packages = python3.pkgs; })
+  ];
 
-  dontWrapQtApps = true;
   postInstall = ''
-    buildPythonPath "$pythonPath"
+    install -Dt $out/share/applications resources/ykman-gui.desktop
+    install -Dt $out/share/ykman-gui/icons resources/icons/*.{icns,ico,png,xpm}
+    substituteInPlace $out/share/applications/ykman-gui.desktop \
+      --replace 'Exec=ykman-gui' "Exec=$out/bin/ykman-gui"
+  '';
 
-    wrapQtApp $out/bin/ykman-gui \
-      --prefix LD_LIBRARY_PATH : "${lib.getLib pcsclite}/lib:${yubikey-personalization}/lib" \
-      --prefix PYTHONPATH : "$program_PYTHONPATH"
+  qtWrapperArgs = [
+    "--prefix" "LD_LIBRARY_PATH" ":" (lib.makeLibraryPath [ pcsclite yubikey-personalization ])
+  ];
 
-    mkdir -p $out/share/applications
-    cp resources/ykman-gui.desktop $out/share/applications/ykman-gui.desktop
-    mkdir -p $out/share/ykman-gui/icons
-    cp resources/icons/*.{icns,ico,png,xpm} $out/share/ykman-gui/icons
-    substituteInPlace $out/share/applications/ykman-gui.desktop \
-      --replace 'Exec=ykman-gui' "Exec=$out/bin/ykman-gui" \
+  preFixup = ''
+    buildPythonPath "$pythonPath"
+    qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/zellij/default.nix b/nixpkgs/pkgs/tools/misc/zellij/default.nix
index 2f5f22193466..e4fb7411a4a4 100644
--- a/nixpkgs/pkgs/tools/misc/zellij/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zellij/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.5.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
     repo = pname;
     rev = "v${version}";
-    sha256 = "102zw4napzx05rpmx6scl6il55syf3lw1gzmy1y66cg1f70sij4d";
+    sha256 = "sha256-m7rAlFMhkX6+l+OceZ/RnusdhGew+Rjp7AmZ7vo2wr0=";
   };
 
-  cargoSha256 = "121fsch0an6d2hqaq0ws9cm7g5ppzfrycmmhajfacfg6wbiax1m5";
+  cargoSha256 = "sha256-iTPOlbS3gWlJ8E2VB7z/kOsOJcngPGof7R5cH3Z0xk0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -22,13 +22,16 @@ rustPlatform.buildRustPackage rec {
   '';
 
   postInstall = ''
-    installShellCompletion assets/completions/zellij.{bash,fish} --zsh assets/completions/_zellij
+    installShellCompletion --cmd $pname \
+      --bash <($out/bin/zellij setup --generate-completion bash) \
+      --fish <($out/bin/zellij setup --generate-completion fish) \
+      --zsh <($out/bin/zellij setup --generate-completion zsh)
   '';
 
   meta = with lib; {
     description = "A terminal workspace with batteries included";
     homepage = "https://zellij.dev/";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ therealansh ];
+    maintainers = with maintainers; [ therealansh _0x4A6F ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/zoxide/default.nix b/nixpkgs/pkgs/tools/misc/zoxide/default.nix
index a454a73384b5..30b9c4969005 100644
--- a/nixpkgs/pkgs/tools/misc/zoxide/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zoxide/default.nix
@@ -4,20 +4,23 @@
 , rustPlatform
 , withFzf ? true
 , fzf
+, installShellFiles
 , libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zoxide";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "ZeGFsVBpEhKi4EIhpQlCuriFzmHAgLYw3qE/zqfyqgU=";
+    sha256 = "sha256-yunKyCjJ/vWUcsodweLmxv0+QJQI2i5u5VIzp2U+VyU=";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   postPatch = lib.optionalString withFzf ''
@@ -25,11 +28,16 @@ rustPlatform.buildRustPackage rec {
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "Hzn01+OhdBrZD1woXN4Pwf/S72Deln1gyyBOWyDC6iM=";
+  cargoSha256 = "sha256-eoal6z4wX1pNdAJfdamJgOSFCvGWdbVlq1X+vD9lraE=";
+
+  postInstall = ''
+    installManPage man/*
+  '';
 
   meta = with lib; {
     description = "A fast cd command that learns your habits";
     homepage = "https://github.com/ajeetdsouza/zoxide";
+    changelog = "https://github.com/ajeetdsouza/zoxide/raw/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ysndr cole-h SuperSandro2000 ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/zthrottle/default.nix b/nixpkgs/pkgs/tools/misc/zthrottle/default.nix
new file mode 100644
index 000000000000..66209ead6fa7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/zthrottle/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, zsh }:
+
+stdenv.mkDerivation rec {
+  pname = "zthrottle";
+  version = "unstable-2017-7-24";
+
+  src = fetchFromGitHub {
+    owner = "anko";
+    repo = pname;
+    rev = "f62066661e49375baeb891fa8e43ad4527cbd0a0";
+    sha256 = "1ipvwmcsigzmxlg7j22cxpvdcgqckkmfpsnvzy18nbybd5ars9l5";
+  };
+
+  buildInputs = [ zsh ];
+
+  installPhase = ''
+    install -D zthrottle $out/bin/zthrottle
+  '';
+
+  meta = with lib; {
+    description = "A program that throttles a pipeline, only letting a line through at most every $1 seconds.";
+    homepage = "https://github.com/anko/zthrottle";
+    license = licenses.unlicense;
+    maintainers = [ maintainers.ronthecookie ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/acme-client/default.nix b/nixpkgs/pkgs/tools/networking/acme-client/default.nix
index 728fde4b1e45..f20d4eefb479 100644
--- a/nixpkgs/pkgs/tools/networking/acme-client/default.nix
+++ b/nixpkgs/pkgs/tools/networking/acme-client/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, apple_sdk ? null
 , libbsd
 , libressl
 , pkg-config
@@ -18,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libbsd libressl ] ++ optional stdenv.isDarwin apple_sdk.sdk;
+  buildInputs = [ libbsd libressl ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/anevicon/default.nix b/nixpkgs/pkgs/tools/networking/anevicon/default.nix
index 95a4bbe9fb88..cff22fa71e6e 100644
--- a/nixpkgs/pkgs/tools/networking/anevicon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/anevicon/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , fetchpatch
 , rustPlatform
+, libiconv
 , Security
 }:
 
@@ -19,7 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1g15v13ysx09fy0b8qddw5fwql2pvwzc2g2h1ndhzpxvfy7fzpr1";
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   cargoPatches = [
     # Add Cargo.lock file, https://github.com/rozgo/anevicon/pull/1
@@ -30,6 +31,9 @@ rustPlatform.buildRustPackage rec {
     })
   ];
 
+  # Tries to send large UDP packets that Darwin rejects.
+  doCheck = !stdenv.isDarwin;
+
   meta = with lib; {
     description = "UDP-based load generator";
     homepage = "https://github.com/rozgo/anevicon";
diff --git a/nixpkgs/pkgs/tools/networking/atinout/default.nix b/nixpkgs/pkgs/tools/networking/atinout/default.nix
index bc2af5c5ee29..93535531d91b 100644
--- a/nixpkgs/pkgs/tools/networking/atinout/default.nix
+++ b/nixpkgs/pkgs/tools/networking/atinout/default.nix
@@ -4,8 +4,8 @@ stdenv.mkDerivation rec {
   name = "atinout-${version}";
   version = "0.9.2-alpha";
 
-  NIX_CFLAGS_COMPILE = "-Werror=implicit-fallthrough=0";
-  LANG = "C.UTF-8";
+  NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.cc.isClang) "-Werror=implicit-fallthrough=0";
+  LANG = if stdenv.isDarwin then "en_US.UTF-8" else "C.UTF-8";
   nativeBuildInputs = [ ronn mount ];
 
   src = fetchgit {
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "0bninv2bklz7ly140cxx8iyaqjlq809jjx6xqpimn34ghwsaxbpv";
   };
 
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
   installPhase = ''
     make PREFIX=$out install
   '';
diff --git a/nixpkgs/pkgs/tools/networking/babeld/default.nix b/nixpkgs/pkgs/tools/networking/babeld/default.nix
index 5c7b26ced05d..47894c1a5329 100644
--- a/nixpkgs/pkgs/tools/networking/babeld/default.nix
+++ b/nixpkgs/pkgs/tools/networking/babeld/default.nix
@@ -1,33 +1,25 @@
-{ lib, stdenv, fetchurl, fetchpatch, nixosTests }:
+{ lib, stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "babeld";
-  version = "1.9.2";
+  version = "1.10";
 
   src = fetchurl {
-    url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${pname}-${version}.tar.gz";
-    sha256 = "01vzhrspnm4sy9ggaz9n3bfl5hy3qlynr218j3mdcddzm3h00kqm";
+    url = "https://www.irif.fr/~jch/software/files/${pname}-${version}.tar.gz";
+    sha256 = "1sld5bbig2pkcr4zrdpvfzifc6a3lc8i8kdzk5ryjh166844mxd5";
   };
 
-  patches = [
-    (fetchpatch {
-      # Skip kernel_setup_interface when `skip-kernel-setup` is enabled.
-      url = "https://github.com/jech/babeld/commit/f9698a5616842467ad08a5f9ed3d6fcfa2dd2898.patch";
-      sha256 = "00kj2jxsfq0pjk5wrkslyvkww57makxlwa4fd82g7g9hrgahpqwr";
-    })
-  ];
-
   preBuild = ''
     makeFlags="PREFIX=$out ETCDIR=$out/etc"
   '';
 
   passthru.tests.babeld = nixosTests.babeld;
 
-  meta = {
-    homepage = "http://www.pps.univ-paris-diderot.fr/~jch/software/babel/";
+  meta = with lib; {
+    homepage = "http://www.irif.fr/~jch/software/babel/";
     description = "Loop-avoiding distance-vector routing protocol";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ fpletz ];
-    platforms = with lib.platforms; linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ fpletz hexa ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
index e3ef0f62ef00..233c57bc635d 100644
--- a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "014blvrv0kk4gzga86mbk7gd5dl1szajfi972da3lrfznck1w24n";
   };
 
-  cargoSha256 = "0b5pqsdggdjq9sl54rmh2gaq31va6b2crdv7ihh3198ixwasaf02";
+  cargoSha256 = "119szaighki565w28la6qg25s3cv8wviqin9f7f9w8x2rif3ipb3";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/networking/bgpq4/default.nix b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
index 4db2d933583c..40c65b35a035 100644
--- a/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq4";
-  version = "0.0.6";
+  version = "0.0.7";
 
   src = fetchFromGitHub {
     owner = "bgp";
     repo = pname;
     rev = version;
-    sha256 = "1n6d6xq7vafx1la0fckqv0yjr245ka9dgbcqaz9m6dcdk0fdlkks";
+    sha256 = "sha256-iEm4BYlJi56Y4OBCdEDgRQ162F65PLZyvHSEQzULFww=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/boringtun/default.nix b/nixpkgs/pkgs/tools/networking/boringtun/default.nix
index 00b35dc4192c..a071b5b4a3a9 100644
--- a/nixpkgs/pkgs/tools/networking/boringtun/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boringtun/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0b57c7z87xwrirmq9aa9jswqyj5bavkifmq7a9hgfphcmwcskmdb";
   };
 
-  cargoSha256 = "0bms93xg75b23ls2hb8dv26y4al4nr67pqcm57rp9d4rbsfafg8c";
+  cargoSha256 = "1xn6scc8nrb9xk89hsp9v67jvyww23rjaq5fcagpbqdwf5dvg4ja";
 
   buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
 
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index 1eb445cfd3e0..32dcea9682a1 100644
--- a/nixpkgs/pkgs/tools/networking/boundary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boundary/default.nix
@@ -2,25 +2,26 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.2.0";
+  version = "0.2.3";
 
   src =
     let
       inherit (stdenv.hostPlatform) system;
-      suffix = {
+      selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}");
+      suffix = selectSystem {
         x86_64-linux = "linux_amd64";
         aarch64-linux = "linux_arm64";
         x86_64-darwin = "darwin_amd64";
-      }.${system} or (throw "Unsupported system: ${system}");
-      fetchsrc = version: sha256: fetchzip {
-        url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
-        sha256 = sha256.${system};
+      };
+      sha256 = selectSystem {
+        x86_64-linux = "sha256-tfTyhuQaVh0F1HvFS+ToDk/lJEHEYMQVNFpdEjABer4=";
+        aarch64-linux = "sha256-0g6nYoNgu3C/r4fgKuZBrzTjpt14lQf2rpbVMS9CEZE=";
+        x86_64-darwin = "sha256-er1bDqi+PDucwUSsWDi8z1fUZTz7epq6HE6cOLTN3SE=";
       };
     in
-    fetchsrc version {
-      x86_64-linux = "sha256-4h1Lx+Et1AfX75Cn0YUhV4MkEtzP6ICqAHVKex3PBpg=";
-      aarch64-linux = "sha256-i7gzv8GdDgikPT1tMia4xltEYiIZ/VNRbAiGF2o8oKA=";
-      x86_64-darwin = "sha256-tleIY1loPE61n59Qc9CJeropRUvTBbcIA8xmB1SaMt8=";
+    fetchzip {
+      url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
+      inherit sha256;
     };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/tools/networking/bukubrow/default.nix b/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
index 157720651f43..f9747d4e0a07 100644
--- a/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
@@ -18,7 +18,7 @@ in rustPlatform.buildRustPackage rec {
     sha256 = "1a3gqxj6d1shv3w0v9m8x2xr0bvcynchy778yqalxkc3x4vr0nbn";
   };
 
-  cargoSha256 = "1k6mffcs9g0z5lh8hpflyharx6653cs1f2rjpldab0fc5fjmjfza";
+  cargoSha256 = "0z6i9wzz5gy9rs8cxfmwg4mpfajv0xvj4nn6jfl7f1rw6k457jc9";
 
   buildInputs = [ sqlite ];
 
diff --git a/nixpkgs/pkgs/tools/networking/burpsuite/default.nix b/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
index 55bd59100545..a42746c6fa28 100644
--- a/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
+++ b/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
@@ -2,12 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "burpsuite";
-  version = "2020.12.1";
+  version = "2021.5.1";
 
   src = fetchurl {
     name = "burpsuite.jar";
-    url = "https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar";
-    sha256 = "AcoPyVXUf2YGfX2/GbtGZeQ4P7zSsYFb9L57trXive0=";
+    urls = [
+      "https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
+      "https://web.archive.org/web/https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
+    ];
+    sha256 = "sha256-nPz6IZpXCyg6cg2nuyqK2f5BI4dNb5tA2NriH3ZC198=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix b/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
new file mode 100644
index 000000000000..497b77b57ac0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "calendar-cli";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "tobixen";
+    repo = "calendar-cli";
+    rev = "v${version}";
+    sha256 = "0qjld2m7hl3dx90491pqbjcja82c1f5gwx274kss4lkb8aw0kmlv";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    icalendar
+    caldav
+    pytz
+    tzlocal
+    six
+  ];
+
+  # tests require networking
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Simple command-line CalDav client";
+    homepage = "https://github.com/tobixen/calendar-cli";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/chaos/default.nix b/nixpkgs/pkgs/tools/networking/chaos/default.nix
new file mode 100644
index 000000000000..dc46032dcde6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/chaos/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "chaos";
+  version = "0.1.9";
+
+  src = fetchFromGitHub {
+    owner = "projectdiscovery";
+    repo = "chaos-client";
+    rev = "v${version}";
+    sha256 = "13lblrckf65y7kd3lw4s12bi05rv4iv25sr5xbp63l9ly5sbzaz6";
+  };
+
+  vendorSha256 = "1mc60jkf7xmf3zsb2fihsgg3jkb2mfvsw84aby2kqcf14hdsk2gl";
+
+  subPackages = [
+    "cmd/chaos/"
+  ];
+
+  meta = with lib; {
+    description = "Tool to communicate with Chaos DNS API";
+    homepage = "https://github.com/projectdiscovery/chaos-client";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/chrony/default.nix b/nixpkgs/pkgs/tools/networking/chrony/default.nix
index 333a28dd3907..24968c64a093 100644
--- a/nixpkgs/pkgs/tools/networking/chrony/default.nix
+++ b/nixpkgs/pkgs/tools/networking/chrony/default.nix
@@ -5,11 +5,11 @@ assert stdenv.isLinux -> libcap != null;
 
 stdenv.mkDerivation rec {
   pname = "chrony";
-  version = "4.0";
+  version = "4.1";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/chrony/${pname}-${version}.tar.gz";
-    sha256 = "09f6w2x5h5kamb4rhcbaz911q1f730qdalgsn8s48yjyqlafl9xy";
+    sha256 = "sha256-7Xby0/k0esYiGpGtS9VT3QVlrBiM10kNCAHQj3FxFkw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/networking/clash/default.nix b/nixpkgs/pkgs/tools/networking/clash/default.nix
index 9cad36c68a63..61e529dc8729 100644
--- a/nixpkgs/pkgs/tools/networking/clash/default.nix
+++ b/nixpkgs/pkgs/tools/networking/clash/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clash";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "Dreamacro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-I4qpcHsN8WGt7YLNXO08BJypilhMSVmZjqECDjlEqXU=";
+    sha256 = "sha256-XG/nci8Sj0vfa/SFPpJwl1Zmt/23LfKxocejplZtS0E=";
   };
 
-  vendorSha256 = "sha256-Nfzk7p52msGxTPDbs4g9KuRPFxp4Npt0QXkdVOZvipc=";
+  vendorSha256 = "sha256-WR1CpjEMHRkpd0/iqrOm0oVXvyQO+r6GyeP0L0zx8aA=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/corerad/default.nix b/nixpkgs/pkgs/tools/networking/corerad/default.nix
index a7e5026d83af..f5b0875e6ffb 100644
--- a/nixpkgs/pkgs/tools/networking/corerad/default.nix
+++ b/nixpkgs/pkgs/tools/networking/corerad/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "corerad";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "1q4wcliifas8xvwy7kcq4fbc1iv7dha3k6j1nbwl7pjqmyggs3f4";
+    sha256 = "0ky4zfmxzgxidsizfj2lwm5z3zl666khw9cgsxfgbzn3cjgr33c3";
   };
 
-  vendorSha256 = "07khxs15z9xzcmp4gyggdwqyz361y96h6ib92qax8k83cr0l494p";
+  vendorSha256 = "0ddni8hl8fv0m9kinwfnhcj3k51fk8h61yksv7ws6agdx0bl1rwh";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/crackle/default.nix b/nixpkgs/pkgs/tools/networking/crackle/default.nix
new file mode 100644
index 000000000000..00d0acd2aa94
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/crackle/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, libpcap, coreutils }:
+
+stdenv.mkDerivation {
+  pname = "crackle";
+  version = "unstable-2020-12-13";
+
+  src = fetchFromGitHub {
+    owner = "mikeryan";
+    repo = "crackle";
+    rev = "d83b4b6f4145ca53c46c36bbd7ccad751af76b75";
+    sha256 = "sha256-Dy4s/hr9ySrogltyk2GVsuAvwNF5+b6CDjaD+2FaPHA=";
+  };
+
+  buildInputs = [ libpcap ];
+
+  installFlags = [ "DESTDIR=$(out)" "PREFIX=" "INSTALL=${coreutils}/bin/install" ];
+
+  meta = with lib; {
+    description = "Crack and decrypt BLE encryption";
+    homepage = "https://github.com/mikeryan/crackle";
+    maintainers = with maintainers; [ fortuneteller2k ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/croc/default.nix b/nixpkgs/pkgs/tools/networking/croc/default.nix
index 187c07b040b4..66c5598d0209 100644
--- a/nixpkgs/pkgs/tools/networking/croc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.1.0";
+  version = "9.1.4";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-teH4Y6PrUSE7Rxw0WV7Ka+CB44nwYXy9q09wOAhC8Bc=";
+    sha256 = "16HmRluhqCr6Gt+x8PSCU4W9pUJp89l4GO29uI+ZzkI=";
   };
 
-  vendorSha256 = "sha256-HPUvL22BrVH9/j41VFaystZWs0LO6KNIf2cNYqKxWnY=";
+  vendorSha256 = "sha256-f0KiXHspGX96k5ViCwI62Qs+rHowpqm+gLy7/iqdnE4=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/croc/test-local-relay.nix b/nixpkgs/pkgs/tools/networking/croc/test-local-relay.nix
index bde05d6deb0a..4ddad86bd009 100644
--- a/nixpkgs/pkgs/tools/networking/croc/test-local-relay.nix
+++ b/nixpkgs/pkgs/tools/networking/croc/test-local-relay.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation {
           ${croc}/bin/croc --relay localhost:11111 send --code correct-horse-battery-staple --text "$MSG" &
           # wait for things to settle
           sleep 1
-          # receive
-          MSG2=$(${croc}/bin/croc --relay localhost:11111 --yes correct-horse-battery-staple)
+          # receive, as of croc 9 --overwrite is required for noninteractive use
+          MSG2=$(${croc}/bin/croc --overwrite --relay localhost:11111 --yes correct-horse-battery-staple)
           # compare
           [ "$MSG" = "$MSG2" ] && touch $out
   '';
diff --git a/nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch b/nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch
deleted file mode 100644
index f915f298a495..000000000000
--- a/nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-Based on upstream 7214288898f5625a6cc196e22a74232eada7861c, adapted by ris to

-compensate for lack of 95cbcec8f986492766c4be3922af1e7644e1e7c5

-

----

- lib/transfer.c          | 25 ++++++++++++++--

- tests/data/Makefile.inc |  2 +-

- tests/data/test2081     | 66 +++++++++++++++++++++++++++++++++++++++++

- 3 files changed, 90 insertions(+), 3 deletions(-)

- create mode 100644 tests/data/test2081

-

-diff --git a/lib/transfer.c b/lib/transfer.c

-index 1976bc0338bc..a68c021c84d6 100644

---- a/lib/transfer.c

-+++ b/lib/transfer.c

-@@ -1581,6 +1581,9 @@ CURLcode Curl_follow(struct Curl_easy *data,

-       data->set.followlocation++; /* count location-followers */

- 

-       if(data->set.http_auto_referer) {

-+        CURLU *u;

-+        char *referer;

-+

-         /* We are asked to automatically set the previous URL as the referer

-            when we get the next URL. We pick the ->url field, which may or may

-            not be 100% correct */

-@@ -1590,9 +1593,27 @@ CURLcode Curl_follow(struct Curl_easy *data,

-           data->change.referer_alloc = FALSE;

-         }

- 

--        data->change.referer = strdup(data->change.url);

--        if(!data->change.referer)

-+        /* Make a copy of the URL without crenditals and fragment */

-+        u = curl_url();

-+        if(!u)

-+          return CURLE_OUT_OF_MEMORY;

-+

-+        uc = curl_url_set(u, CURLUPART_URL, data->change.url, 0);

-+        if(!uc)

-+          uc = curl_url_set(u, CURLUPART_FRAGMENT, NULL, 0);

-+        if(!uc)

-+          uc = curl_url_set(u, CURLUPART_USER, NULL, 0);

-+        if(!uc)

-+          uc = curl_url_set(u, CURLUPART_PASSWORD, NULL, 0);

-+        if(!uc)

-+          uc = curl_url_get(u, CURLUPART_URL, &referer, 0);

-+

-+        curl_url_cleanup(u);

-+

-+        if(uc || referer == NULL)

-           return CURLE_OUT_OF_MEMORY;

-+

-+        data->change.referer = referer;

-         data->change.referer_alloc = TRUE; /* yes, free this later */

-       }

-     }

-diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc

-index 2c7a0ca89fd8..ea52683d2254 100644

---- a/tests/data/Makefile.inc

-+++ b/tests/data/Makefile.inc

-@@ -225,7 +225,7 @@ test2064 test2065 test2066 test2067 test2068 test2069 \

- test2064 test2065 test2066 test2067 test2068 test2069 test2070 \

-          test2071 test2072 test2073 test2074 test2075 test2076 test2077 \

- test2078 \

--test2080 \

-+test2080 test2081 \

- test2100 \

- \

- test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 \

-diff --git a/tests/data/test2081 b/tests/data/test2081

-new file mode 100644

-index 000000000000..a6733e737beb

---- /dev/null

-+++ b/tests/data/test2081

-@@ -0,0 +1,66 @@

-+<testcase>

-+<info>

-+<keywords>

-+HTTP

-+HTTP GET

-+referer

-+followlocation

-+--write-out

-+</keywords>

-+</info>

-+

-+# Server-side

-+<reply>

-+<data nocheck="yes">

-+HTTP/1.1 301 This is a weirdo text message swsclose

-+Location: data/%TESTNUMBER0002.txt?coolsite=yes

-+Content-Length: 62

-+Connection: close

-+

-+This server reply is for testing a simple Location: following

-+</data>

-+</reply>

-+

-+# Client-side

-+<client>

-+<server>

-+http

-+</server>

-+ <name>

-+Automatic referrer credential and anchor stripping check

-+ </name>

-+ <command>

-+http://user:pass@%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER#anchor --location --referer ';auto' --write-out '%{referer}\n'

-+</command>

-+</client>

-+

-+# Verify data after the test has been "shot"

-+<verify>

-+<errorcode>

-+52

-+</errorcode>

-+<protocol>

-+GET /we/want/our/%TESTNUMBER HTTP/1.1

-+Host: %HOSTIP:%HTTPPORT

-+Authorization: Basic dXNlcjpwYXNz

-+User-Agent: curl/%VERSION

-+Accept: */*

-+

-+GET /we/want/our/data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.1

-+Host: %HOSTIP:%HTTPPORT

-+Authorization: Basic dXNlcjpwYXNz

-+User-Agent: curl/%VERSION

-+Accept: */*

-+Referer: http://%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER

-+

-+</protocol>

-+<stdout>

-+HTTP/1.1 301 This is a weirdo text message swsclose

-+Location: data/%TESTNUMBER0002.txt?coolsite=yes

-+Content-Length: 62

-+Connection: close

-+

-+http://%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER

-+</stdout>

-+</verify>

-+</testcase>

diff --git a/nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch b/nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch
deleted file mode 100644
index 06cc3842e32f..000000000000
--- a/nixpkgs/pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch
+++ /dev/null
@@ -1,473 +0,0 @@
-Based on upstream b09c8ee15771c614c4bf3ddac893cdb12187c844, adapted by ris mostly to
-compensate for lack of bbe3aa9f881fa27fe828e3c9a36d6831f254a3ee
-
-diff --git a/lib/vtls/bearssl.c b/lib/vtls/bearssl.c
-index 36c32d8d55be..39fc1a29209c 100644
---- a/lib/vtls/bearssl.c
-+++ b/lib/vtls/bearssl.c
-@@ -375,7 +375,8 @@ static CURLcode bearssl_connect_step1(struct Curl_easy *data,
-     void *session;
- 
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, &session, NULL, sockindex)) {
-+    if(!Curl_ssl_getsessionid(conn, SSL_IS_PROXY() ? TRUE : FALSE,
-+                              &session, NULL, sockindex)) {
-       br_ssl_engine_set_session_parameters(&backend->ctx.eng, session);
-       infof(data, "BearSSL: re-using session ID\n");
-     }
-@@ -571,9 +572,13 @@ static CURLcode bearssl_connect_step3(struct Curl_easy *data,
-     br_ssl_engine_get_session_parameters(&backend->ctx.eng, session);
-     Curl_ssl_sessionid_lock(conn);
--    incache = !(Curl_ssl_getsessionid(conn, &oldsession, NULL, sockindex));
-+    incache = !(Curl_ssl_getsessionid(conn,
-+                                      SSL_IS_PROXY() ? TRUE : FALSE,
-+                                      &oldsession, NULL, sockindex));
-     if(incache)
-       Curl_ssl_delsessionid(conn, oldsession);
--    ret = Curl_ssl_addsessionid(conn, session, 0, sockindex);
-+    ret = Curl_ssl_addsessionid(conn,
-+                                SSL_IS_PROXY() ? TRUE : FALSE,
-+                                session, 0, sockindex);
-     Curl_ssl_sessionid_unlock(conn);
-     if(ret) {
-       free(session);
-diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
-index a75937b4646c..3b0d940a60e1 100644
---- a/lib/vtls/gtls.c
-+++ b/lib/vtls/gtls.c
-@@ -727,5 +727,7 @@ gtls_connect_step1(struct Curl_easy *data,
- 
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, &ssl_idsize, sockindex)) {
-+    if(!Curl_ssl_getsessionid(conn,
-+                              SSL_IS_PROXY() ? TRUE : FALSE,
-+                              &ssl_sessionid, &ssl_idsize, sockindex)) {
-       /* we got a session id, use it! */
-       gnutls_session_set_data(session, ssl_sessionid, ssl_idsize);
-@@ -1286,8 +1287,9 @@ gtls_connect_step3(struct Curl_easy *data,
-       gnutls_session_get_data(session, connect_sessionid, &connect_idsize);
- 
-       Curl_ssl_sessionid_lock(conn);
--      incache = !(Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL,
--                                        sockindex));
-+      incache = !(Curl_ssl_getsessionid(conn,
-+                                        SSL_IS_PROXY() ? TRUE : FALSE,
-+                                        &ssl_sessionid, NULL, sockindex));
-       if(incache) {
-         /* there was one before in the cache, so instead of risking that the
-            previous one was rejected, we just kill that and store the new */
-@@ -1295,8 +1297,10 @@ gtls_connect_step3(struct Curl_easy *data,
-       }
- 
-       /* store this session id */
--      result = Curl_ssl_addsessionid(conn, connect_sessionid, connect_idsize,
--                                     sockindex);
-+      result = Curl_ssl_addsessionid(conn,
-+                                     SSL_IS_PROXY() ? TRUE : FALSE,
-+                                     connect_sessionid, connect_idsize,
-+                                     sockindex);
-       Curl_ssl_sessionid_unlock(conn);
-       if(result) {
-         free(connect_sessionid);
-diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c
-index 95cd4d99b665..93a7ac1fd87d 100644
---- a/lib/vtls/mbedtls.c
-+++ b/lib/vtls/mbedtls.c
-@@ -463,7 +463,9 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn,
-     void *old_session = NULL;
- 
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, &old_session, NULL, sockindex)) {
-+    if(!Curl_ssl_getsessionid(conn,
-+                              SSL_IS_PROXY() ? TRUE : FALSE,
-+                              &old_session, NULL, sockindex)) {
-       ret = mbedtls_ssl_set_session(&backend->ssl, old_session);
-       if(ret) {
-         Curl_ssl_sessionid_unlock(conn);
-@@ -724,6 +726,7 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
-     int ret;
-     mbedtls_ssl_session *our_ssl_sessionid;
-     void *old_ssl_sessionid = NULL;
-+    bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
- 
-     our_ssl_sessionid = malloc(sizeof(mbedtls_ssl_session));
-     if(!our_ssl_sessionid)
-@@ -742,10 +745,12 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
- 
-     /* If there's already a matching session in the cache, delete it */
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL, sockindex))
-+    if(!Curl_ssl_getsessionid(conn, isproxy, &old_ssl_sessionid, NULL,
-+                              sockindex))
-       Curl_ssl_delsessionid(conn, old_ssl_sessionid);
- 
--    retcode = Curl_ssl_addsessionid(conn, our_ssl_sessionid, 0, sockindex);
-+    retcode = Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid,
-+                                    0, sockindex);
-     Curl_ssl_sessionid_unlock(conn);
-     if(retcode) {
-       mbedtls_ssl_session_free(our_ssl_sessionid);
-diff --git a/lib/vtls/mesalink.c b/lib/vtls/mesalink.c
-index 4f1ab8627f49..5d6a1495d790 100644
---- a/lib/vtls/mesalink.c
-+++ b/lib/vtls/mesalink.c
-@@ -261,7 +261,9 @@ mesalink_connect_step1(struct Curl_easy *data,
-     void *ssl_sessionid = NULL;
- 
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
-+    if(!Curl_ssl_getsessionid(conn,
-+                              SSL_IS_PROXY() ? TRUE : FALSE,
-+                              &ssl_sessionid, NULL, sockindex)) {
-       /* we got a session id, use it! */
-       if(!SSL_set_session(BACKEND->handle, ssl_sessionid)) {
-         Curl_ssl_sessionid_unlock(conn);
-@@ -345,12 +347,14 @@ mesalink_connect_step3(struct connectdata *conn, int sockindex)
-     bool incache;
-     SSL_SESSION *our_ssl_sessionid;
-     void *old_ssl_sessionid = NULL;
-+    bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
- 
-     our_ssl_sessionid = SSL_get_session(BACKEND->handle);
- 
-     Curl_ssl_sessionid_lock(conn);
-     incache =
--      !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL, sockindex));
-+      !(Curl_ssl_getsessionid(conn, isproxy, &old_ssl_sessionid, NULL,
-+                              sockindex));
-     if(incache) {
-       if(old_ssl_sessionid != our_ssl_sessionid) {
-         infof(data, "old SSL session ID is stale, removing\n");
-@@ -361,8 +364,9 @@ mesalink_connect_step3(struct connectdata *conn, int sockindex)
-     }
- 
-     if(!incache) {
--      result = Curl_ssl_addsessionid(
--        conn, our_ssl_sessionid, 0 /* unknown size */, sockindex);
-+      result =
-+        Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid, 0,
-+                              sockindex);
-       if(result) {
-         Curl_ssl_sessionid_unlock(conn);
-         failf(data, "failed to store ssl session");
-diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
-index 498f8b9d1d08..68b98984b460 100644
---- a/lib/vtls/openssl.c
-+++ b/lib/vtls/openssl.c
-@@ -393,12 +393,23 @@ static int ossl_get_ssl_conn_index(void)
-  */
- static int ossl_get_ssl_sockindex_index(void)
- {
--  static int ssl_ex_data_sockindex_index = -1;
--  if(ssl_ex_data_sockindex_index < 0) {
--    ssl_ex_data_sockindex_index = SSL_get_ex_new_index(0, NULL, NULL, NULL,
--        NULL);
-+  static int sockindex_index = -1;
-+  if(sockindex_index < 0) {
-+    sockindex_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
-   }
--  return ssl_ex_data_sockindex_index;
-+  return sockindex_index;
-+}
-+
-+/* Return an extra data index for proxy boolean.
-+ * This index can be used with SSL_get_ex_data() and SSL_set_ex_data().
-+ */
-+static int ossl_get_proxy_index(void)
-+{
-+  static int proxy_index = -1;
-+  if(proxy_index < 0) {
-+    proxy_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
-+  }
-+  return proxy_index;
- }
- 
- static int passwd_callback(char *buf, int num, int encrypting,
-@@ -1174,6 +1185,7 @@ static int ossl_init(void)
- 
-   /* Initialize the extra data indexes */
--  if(ossl_get_ssl_conn_index() < 0 || ossl_get_ssl_sockindex_index() < 0)
-+  if(ossl_get_ssl_conn_index() < 0 ||
-+     ossl_get_ssl_sockindex_index() < 0 || ossl_get_proxy_index() < 0)
-     return 0;
- 
-   return 1;
-@@ -2432,8 +2443,10 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
-   curl_socket_t *sockindex_ptr;
-   int connectdata_idx = ossl_get_ssl_conn_index();
-   int sockindex_idx = ossl_get_ssl_sockindex_index();
-+  int proxy_idx = ossl_get_proxy_index();
-+  bool isproxy;
- 
--  if(connectdata_idx < 0 || sockindex_idx < 0)
-+  if(connectdata_idx < 0 || sockindex_idx < 0 || proxy_idx < 0)
-     return 0;
- 
-   conn = (struct connectdata*) SSL_get_ex_data(ssl, connectdata_idx);
-@@ -2446,13 +2459,18 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
-   sockindex_ptr = (curl_socket_t*) SSL_get_ex_data(ssl, sockindex_idx);
-   sockindex = (int)(sockindex_ptr - conn->sock);
- 
-+  isproxy = SSL_get_ex_data(ssl, proxy_idx) ? TRUE : FALSE;
-+
-   if(SSL_SET_OPTION(primary.sessionid)) {
-     bool incache;
-     void *old_ssl_sessionid = NULL;
- 
-     Curl_ssl_sessionid_lock(conn);
--    incache = !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL,
--                                      sockindex));
-+    if(isproxy)
-+      incache = FALSE;
-+    else
-+      incache = !(Curl_ssl_getsessionid(conn, isproxy,
-+                                        &old_ssl_sessionid, NULL, sockindex));
-     if(incache) {
-       if(old_ssl_sessionid != ssl_sessionid) {
-         infof(data, "old SSL session ID is stale, removing\n");
-@@ -2462,8 +2480,8 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
-     }
- 
-     if(!incache) {
--      if(!Curl_ssl_addsessionid(conn, ssl_sessionid,
--                                      0 /* unknown size */, sockindex)) {
-+      if(!Curl_ssl_addsessionid(conn, isproxy, ssl_sessionid,
-+                                0 /* unknown size */, sockindex)) {
-         /* the session has been put into the session cache */
-         res = 1;
-       }
-@@ -3193,16 +3211,26 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
-     void *ssl_sessionid = NULL;
-     int connectdata_idx = ossl_get_ssl_conn_index();
-     int sockindex_idx = ossl_get_ssl_sockindex_index();
-+    int proxy_idx = ossl_get_proxy_index();
- 
--    if(connectdata_idx >= 0 && sockindex_idx >= 0) {
-+    if(connectdata_idx >= 0 && sockindex_idx >= 0 &&
-+       proxy_idx >= 0) {
-       /* Store the data needed for the "new session" callback.
-        * The sockindex is stored as a pointer to an array element. */
-       SSL_set_ex_data(backend->handle, connectdata_idx, conn);
-       SSL_set_ex_data(backend->handle, sockindex_idx, conn->sock + sockindex);
-+#ifndef CURL_DISABLE_PROXY
-+      SSL_set_ex_data(backend->handle, proxy_idx, SSL_IS_PROXY() ? (void *) 1:
-+                      NULL);
-+#else
-+      SSL_set_ex_data(backend->handle, proxy_idx, NULL);
-+#endif
-+
-     }
- 
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
-+    if(!Curl_ssl_getsessionid(conn, SSL_IS_PROXY() ? TRUE : FALSE,
-+                              &ssl_sessionid, NULL, sockindex)) {
-       /* we got a session id, use it! */
-       if(!SSL_set_session(backend->handle, ssl_sessionid)) {
-         Curl_ssl_sessionid_unlock(conn);
-diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
-index d7b89d43f892..931bd853eb8e 100644
---- a/lib/vtls/schannel.c
-+++ b/lib/vtls/schannel.c
-@@ -496,5 +496,7 @@ schannel_connect_step1(struct Curl_easy *data, struct connectdata *conn,
-   if(SSL_SET_OPTION(primary.sessionid)) {
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, (void **)&old_cred, NULL, sockindex)) {
-+    if(!Curl_ssl_getsessionid(conn,
-+                              SSL_IS_PROXY() ? TRUE : FALSE,
-+                              (void **)&old_cred, NULL, sockindex)) {
-       BACKEND->cred = old_cred;
-       DEBUGF(infof(data, "schannel: re-using existing credential handle\n"));
-@@ -1337,8 +1338,9 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
-   struct ssl_connect_data *connssl = &conn->ssl[sockindex];
-   SECURITY_STATUS sspi_status = SEC_E_OK;
-   CERT_CONTEXT *ccert_context = NULL;
-+  bool isproxy = SSL_IS_PROXY();
- #ifdef DEBUGBUILD
--  const char * const hostname = SSL_IS_PROXY() ? conn->http_proxy.host.name :
-+  const char * const hostname = isproxy ? conn->http_proxy.host.name :
-     conn->host.name;
- #endif
- #ifdef HAS_ALPN
-@@ -1414,8 +1416,8 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
-     struct Curl_schannel_cred *old_cred = NULL;
- 
-     Curl_ssl_sessionid_lock(conn);
--    incache = !(Curl_ssl_getsessionid(conn, (void **)&old_cred, NULL,
--                                      sockindex));
-+    incache = !(Curl_ssl_getsessionid(conn, isproxy, (void **)&old_cred,
-+                                      NULL, sockindex));
-     if(incache) {
-       if(old_cred != BACKEND->cred) {
-         DEBUGF(infof(data,
-@@ -1426,7 +1428,7 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
-       }
-     }
-     if(!incache) {
--      result = Curl_ssl_addsessionid(conn, (void *)BACKEND->cred,
-+      result = Curl_ssl_addsessionid(conn, isproxy, BACKEND->cred,
-                                      sizeof(struct Curl_schannel_cred),
-                                      sockindex);
-       if(result) {
-diff --git a/lib/vtls/sectransp.c b/lib/vtls/sectransp.c
-index 05b57dfaad91..e69b99b72cd6 100644
---- a/lib/vtls/sectransp.c
-+++ b/lib/vtls/sectransp.c
-@@ -1400,10 +1400,12 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
-   char * const ssl_cert = SSL_SET_OPTION(primary.clientcert);
-   const struct curl_blob *ssl_cert_blob = SSL_SET_OPTION(primary.cert_blob);
- #ifndef CURL_DISABLE_PROXY
--  const char * const hostname = SSL_IS_PROXY() ? conn->http_proxy.host.name :
-+  bool isproxy = SSL_IS_PROXY();
-+  const char * const hostname = isproxy ? conn->http_proxy.host.name :
-     conn->host.name;
-   const long int port = SSL_IS_PROXY() ? conn->port : conn->remote_port;
- #else
-+  const isproxy = FALSE;
-   const char * const hostname = conn->host.name;
-   const long int port = conn->remote_port;
- #endif
-@@ -1613,7 +1615,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
- #ifdef USE_NGHTTP2
-       if(data->state.httpversion >= CURL_HTTP_VERSION_2
- #ifndef CURL_DISABLE_PROXY
--         && (!SSL_IS_PROXY() || !conn->bits.tunnel_proxy)
-+         && (!isproxy || !conn->bits.tunnel_proxy)
- #endif
-         ) {
-         CFArrayAppendValue(alpnArr, CFSTR(NGHTTP2_PROTO_VERSION_ID));
-@@ -1953,7 +1955,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
-     size_t ssl_sessionid_len;
- 
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, (void **)&ssl_sessionid,
-+    if(!Curl_ssl_getsessionid(conn, isproxy, (void **)&ssl_sessionid,
-                               &ssl_sessionid_len, sockindex)) {
-       /* we got a session id, use it! */
-       err = SSLSetPeerID(backend->ssl_ctx, ssl_sessionid, ssl_sessionid_len);
-@@ -1981,7 +1983,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
-         return CURLE_SSL_CONNECT_ERROR;
-       }
- 
--      result = Curl_ssl_addsessionid(conn, ssl_sessionid, ssl_sessionid_len,
-+      result = Curl_ssl_addsessionid(conn, isproxy, ssl_sessionid, ssl_sessionid_len,
-                                      sockindex);
-       Curl_ssl_sessionid_unlock(conn);
-       if(result) {
-diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
-index 6a0069237fdb..95fd6356285f 100644
---- a/lib/vtls/vtls.c
-+++ b/lib/vtls/vtls.c
-@@ -367,5 +367,6 @@ void Curl_ssl_sessionid_unlock(struct Curl_easy *data)
-  */
- bool Curl_ssl_getsessionid(struct connectdata *conn,
-+                           const bool isProxy,
-                            void **ssl_sessionid,
-                            size_t *idsize, /* set 0 if unknown */
-                            int sockindex)
-@@ -377,7 +378,6 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
-   bool no_match = TRUE;
- 
- #ifndef CURL_DISABLE_PROXY
--  const bool isProxy = CONNECT_PROXY_SSL();
-   struct ssl_primary_config * const ssl_config = isProxy ?
-     &conn->proxy_ssl_config :
-     &conn->ssl_config;
-@@ -389,10 +389,15 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
-   struct ssl_primary_config * const ssl_config = &conn->ssl_config;
-   const char * const name = conn->host.name;
-   int port = conn->remote_port;
--  (void)sockindex;
- #endif
-+  (void)sockindex;
-   *ssl_sessionid = NULL;
- 
-+#ifdef CURL_DISABLE_PROXY
-+  if(isProxy)
-+    return TRUE;
-+#endif
-+
-   DEBUGASSERT(SSL_SET_OPTION(primary.sessionid));
- 
-   if(!SSL_SET_OPTION(primary.sessionid))
-@@ -480,5 +485,6 @@ void Curl_ssl_delsessionid(struct Curl_easy *data, void *ssl_sessionid)
-  */
- CURLcode Curl_ssl_addsessionid(struct connectdata *conn,
-+                               bool isProxy,
-                                void *ssl_sessionid,
-                                size_t idsize,
-                                int sockindex)
-@@ -492,7 +498,6 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
-   int conn_to_port;
-   long *general_age;
- #ifndef CURL_DISABLE_PROXY
--  const bool isProxy = CONNECT_PROXY_SSL();
-   struct ssl_primary_config * const ssl_config = isProxy ?
-     &conn->proxy_ssl_config :
-     &conn->ssl_config;
-@@ -505,6 +510,7 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
-   const char *hostname = conn->host.name;
-   (void)sockindex;
- #endif
-+  (void)sockindex;
-   DEBUGASSERT(SSL_SET_OPTION(primary.sessionid));
- 
-   clone_host = strdup(hostname);
-diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
-index 273184f1894a..2b43e7744b19 100644
---- a/lib/vtls/vtls.h
-+++ b/lib/vtls/vtls.h
-@@ -235,5 +235,6 @@ void Curl_ssl_sessionid_unlock(struct Curl_easy *data);
-  */
- bool Curl_ssl_getsessionid(struct connectdata *conn,
-+                           const bool isproxy,
-                            void **ssl_sessionid,
-                            size_t *idsize, /* set 0 if unknown */
-                            int sockindex);
-@@ -245,5 +246,6 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
-  */
- CURLcode Curl_ssl_addsessionid(struct connectdata *conn,
-+                               const bool isProxy,
-                                void *ssl_sessionid,
-                                size_t idsize,
-                                int sockindex);
-diff --git a/lib/vtls/wolfssl.c b/lib/vtls/wolfssl.c
-index 7159ac9d5e64..8fb2ea7acf31 100644
---- a/lib/vtls/wolfssl.c
-+++ b/lib/vtls/wolfssl.c
-@@ -516,7 +516,9 @@ wolfssl_connect_step1(struct Curl_easy *data, struct connectdata *conn,
-     void *ssl_sessionid = NULL;
- 
-     Curl_ssl_sessionid_lock(conn);
--    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
-+    if(!Curl_ssl_getsessionid(conn,
-+                              SSL_IS_PROXY() ? TRUE : FALSE,
-+                              &ssl_sessionid, NULL, sockindex)) {
-       /* we got a session id, use it! */
-       if(!SSL_set_session(backend->handle, ssl_sessionid)) {
-         char error_buffer[WOLFSSL_MAX_ERROR_SZ];
-@@ -772,10 +774,11 @@ wolfssl_connect_step3(struct Curl_easy *data, struct connectdata *conn,
-     void *old_ssl_sessionid = NULL;
- 
-     our_ssl_sessionid = SSL_get_session(backend->handle);
-+    bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
- 
-     Curl_ssl_sessionid_lock(conn);
--    incache = !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL,
--                                      sockindex));
-+    incache = !(Curl_ssl_getsessionid(conn, isproxy,
-+                                      &old_ssl_sessionid, NULL, sockindex));
-     if(incache) {
-       if(old_ssl_sessionid != our_ssl_sessionid) {
-         infof(data, "old SSL session ID is stale, removing\n");
-@@ -786,8 +789,8 @@ wolfssl_connect_step3(struct Curl_easy *data, struct connectdata *conn,
-     }
- 
-     if(!incache) {
--      result = Curl_ssl_addsessionid(conn, our_ssl_sessionid,
--                                     0 /* unknown size */, sockindex);
-+      result = Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid,
-+                                     0, sockindex);
-       if(result) {
-         Curl_ssl_sessionid_unlock(conn);
-         failf(data, "failed to store ssl session");
diff --git a/nixpkgs/pkgs/tools/networking/curl/default.nix b/nixpkgs/pkgs/tools/networking/curl/default.nix
index 7c24be7aea75..05b91bfba055 100644
--- a/nixpkgs/pkgs/tools/networking/curl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/curl/default.nix
@@ -7,8 +7,15 @@
 , gnutlsSupport ? false, gnutls ? null
 , wolfsslSupport ? false, wolfssl ? null
 , scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
-, # a very sad story re static: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=439039
-  gssSupport ? with stdenv.hostPlatform; !isWindows && !isStatic, libkrb5 ? null
+, gssSupport ? with stdenv.hostPlatform; !(
+    !isWindows &&
+    # a very sad story re static: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=439039
+    !isStatic &&
+    # the "mig" tool does not configure its compiler correctly. This could be
+    # fixed in mig, but losing gss support on cross compilation to darwin is
+    # not worth the effort.
+    !(isDarwin && (stdenv.buildPlatform != stdenv.hostPlatform))
+  ), libkrb5 ? null
 , c-aresSupport ? false, c-ares ? null
 , brotliSupport ? false, brotli ? null
 }:
@@ -35,21 +42,16 @@ assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
   pname = "curl";
-  version = "7.74.0";
+  version = "7.76.1";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
       "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "19bp3d91xq9vqwlbzq261j23mk9lz4lyka4gr2fm6dhnd3k66k8g";
+    sha256 = "1scmfrp0c27pkd7yva9k50miprjpsyfbb33apx72qc9igm6ii3ks";
   };
 
-  patches = [
-    ./7.74.0-CVE-2021-22876.patch
-    ./7.74.0-CVE-2021-22890.patch
-  ];
-
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
   separateDebugInfo = stdenv.isLinux;
 
diff --git a/nixpkgs/pkgs/tools/networking/ddclient/default.nix b/nixpkgs/pkgs/tools/networking/ddclient/default.nix
index f62eba66f99b..72daa0608a67 100644
--- a/nixpkgs/pkgs/tools/networking/ddclient/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ddclient/default.nix
@@ -1,12 +1,14 @@
-{ lib, fetchurl, perlPackages, iproute2, perl }:
+{ lib, fetchFromGitHub, perlPackages, iproute2, perl }:
 
 perlPackages.buildPerlPackage rec {
   pname = "ddclient";
-  version = "3.9.0";
+  version = "3.9.1";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/ddclient/${pname}-${version}.tar.gz";
-    sha256 = "0fwyhab8yga2yi1kdfkbqxa83wxhwpagmj1w1mwkg2iffh1fjjlw";
+  src = fetchFromGitHub {
+    owner = "ddclient";
+    repo = "ddclient";
+    rev = "v${version}";
+    sha256 = "0hf377g4j9r9sac75xp17nk2h58mazswz4vkg4g2gl2yyhvzq91w";
   };
 
   # perl packages by default get devdoc which isn't present
@@ -38,9 +40,10 @@ perlPackages.buildPerlPackage rec {
 
   meta = with lib; {
     description = "Client for updating dynamic DNS service entries";
-    homepage    = "https://sourceforge.net/p/ddclient/wiki/Home/";
-    license     = licenses.gpl2Plus;
+    homepage = "https://ddclient.net/";
+    license = licenses.gpl2Plus;
     # Mostly since `iproute` is Linux only.
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
index a9e4b1390a15..131a645d838c 100644
--- a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "dnsmasq";
-  version = "2.84";
+  version = "2.85";
 
   src = fetchurl {
-    url = "http://www.thekelleys.org.uk/dnsmasq/${pname}-${version}.tar.xz";
-    sha256 = "sha256-YDGVxktzE3YJsH4QJK4LN/ZSsvX+Rn3OZphbPRhQBQw=";
+    url = "https://www.thekelleys.org.uk/dnsmasq/${pname}-${version}.tar.xz";
+    sha256 = "sha256-rZjTgD32h+W5OAgPPSXGKP5ByHh1LQP7xhmXh/7jEvo=";
   };
 
   postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An integrated DNS, DHCP and TFTP server for small networks";
-    homepage = "http://www.thekelleys.org.uk/dnsmasq/doc.html";
+    homepage = "https://www.thekelleys.org.uk/dnsmasq/doc.html";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ eelco fpletz globin ];
diff --git a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
index 4c784d005426..79e9e6e64172 100644
--- a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.37.1";
+  version = "0.37.5";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zenVgWVzKnq9WzJFC6vpE5Gwbv3lJC7aIe3xBQGeWr8=";
+    sha256 = "sha256-j+8PA5kYHaRWbugcBjUIeos6488rw8lCOjCyz7IAcQg=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/dogdns/default.nix b/nixpkgs/pkgs/tools/networking/dogdns/default.nix
index 4fe57eb4990f..1374e4473c07 100644
--- a/nixpkgs/pkgs/tools/networking/dogdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dogdns/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "08scc6vh703245rg3xkffhalrk5pisd0wg54fd49d7gdbyjivgi6";
+  cargoSha256 = "0zgzaq303zy8lymhldm6dpm5hwsxi2ph42zw5brvsdjmgm9ga0rb";
 
   postInstall = ''
     installShellCompletion completions/dog.{bash,fish,zsh}
diff --git a/nixpkgs/pkgs/tools/networking/drill/default.nix b/nixpkgs/pkgs/tools/networking/drill/default.nix
index 3be4707a5297..f29a7ee705f4 100644
--- a/nixpkgs/pkgs/tools/networking/drill/default.nix
+++ b/nixpkgs/pkgs/tools/networking/drill/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "07zz0dj0wjwrc1rmayz7s8kpcv03i0ygl4vfwsam72qd4nf6v538";
   };
 
-  cargoSha256 = "1nbfbmm9v1yp7380zdzz7qrc7x6krwlvgn5x5yzb8yn1rc99jzx4";
+  cargoSha256 = "04gj9gaysjcm2d81ds2raak847hr8w84jgfdwqd51wi8xm32w5jf";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = [ ]
diff --git a/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix b/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
index 78884a23cbbd..21bd75a3ebae 100644
--- a/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
@@ -3,27 +3,38 @@
 , cmake
 , gflags
 , libsodium
+, openssl
 , protobuf
+, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.0.13";
+  version = "6.1.8";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "et-v${version}";
-    sha256 = "0sb1hypg2276y8c2a5vivrkcxp70swddvhnd9h273if3kv6j879r";
+    sha256 = "sha256-VSJ6AoVBvlCdKSirSDqsemixF+kAnvPgBQlyJxjoPcs=";
   };
 
+  cmakeFlags= [
+    "-DDISABLE_VCPKG=TRUE"
+    "-DDISABLE_SENTRY=TRUE"
+    "-DDISABLE_CRASH_LOG=TRUE"
+  ];
+
+  CXXFLAGS = lib.optional stdenv.cc.isClang "-std=c++17";
+  LDFLAGS = lib.optional stdenv.cc.isClang "-lc++fs";
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ gflags libsodium protobuf ];
+  buildInputs = [ gflags openssl zlib libsodium protobuf ];
 
   meta = with lib; {
     description = "Remote shell that automatically reconnects without interrupting the session";
     license = licenses.asl20;
-    homepage = "https://mistertea.github.io/EternalTerminal/";
+    homepage = "https://eternalterminal.dev/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ dezgeg pingiun ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/fastd/default.nix b/nixpkgs/pkgs/tools/networking/fastd/default.nix
index ed7bb0b01d3f..493112b93ac0 100644
--- a/nixpkgs/pkgs/tools/networking/fastd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fastd/default.nix
@@ -1,5 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, bison, meson, ninja, pkg-config
-, libuecc, libsodium, libcap, json_c, openssl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, bison
+, meson
+, ninja
+, pkg-config
+, libuecc
+, libsodium
+, libcap
+, json_c
+, openssl
+}:
 
 stdenv.mkDerivation rec {
   pname = "fastd";
@@ -12,10 +23,27 @@ stdenv.mkDerivation rec {
     sha256 = "1p4k50dk8byrghbr0fwmgwps8df6rlkgcd603r14i71m5g27z5gw";
   };
 
-  nativeBuildInputs = [ pkg-config bison meson ninja ];
-  buildInputs = [ libuecc libsodium libcap json_c openssl ];
+  nativeBuildInputs = [
+    bison
+    meson
+    ninja
+    pkg-config
+  ];
 
-  enableParallelBuilding = true;
+  buildInputs = [
+    json_c
+    libcap
+    libsodium
+    libuecc
+    openssl
+  ];
+
+  # some options are only available on x86
+  mesonFlags = lib.optionals (!stdenv.isx86_64 && !stdenv.isi686) [
+    "-Dcipher_salsa20_xmm=disabled"
+    "-Dcipher_salsa2012_xmm=disabled"
+    "-Dmac_ghash_pclmulqdq=disabled"
+  ];
 
   meta = with lib; {
     description = "Fast and Secure Tunneling Daemon";
diff --git a/nixpkgs/pkgs/tools/networking/findomain/default.nix b/nixpkgs/pkgs/tools/networking/findomain/default.nix
index a32e98ca18ac..018a210e4aa2 100644
--- a/nixpkgs/pkgs/tools/networking/findomain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/findomain/default.nix
@@ -4,24 +4,25 @@
 , rustPlatform
 , installShellFiles
 , perl
+, libiconv
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "4.0.1";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "sha256-uv1boI9iaBeobo/58Di4oslh1eGLuK9HR5EwQQeWn+0=";
+    sha256 = "sha256-UC70XmhAVf2a2QO9bkIRE5vEsWyIA0DudZfKraNffGY=";
   };
 
-  cargoSha256 = "sha256-31OD/sv4br9cdBNqNGr4McypSGkBbKs7b7H1u7mFt3o=";
+  cargoSha256 = "sha256-Cdfh3smX6UjiG29L9hG22bOQQIjaNrv+okl153mIiso=";
 
   nativeBuildInputs = [ installShellFiles perl ];
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   postInstall = ''
     installManPage ${pname}.1
diff --git a/nixpkgs/pkgs/tools/networking/getmail6/default.nix b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
index e6f3a2f10887..673ff7f83a3f 100644
--- a/nixpkgs/pkgs/tools/networking/getmail6/default.nix
+++ b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "getmail6";
-  version = "6.15";
+  version = "6.16";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cvwvlhilrqlcvza06lsrm5l1yazzvym3s5kcjxcm9cminfaf4qb";
+    sha256 = "1y373nzbffjjjs43441cn3wrb0yq1mw2vqixhizbzdacrs45xbfa";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/networking/ghostunnel/default.nix b/nixpkgs/pkgs/tools/networking/ghostunnel/default.nix
new file mode 100644
index 000000000000..5d00b493bc37
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/ghostunnel/default.nix
@@ -0,0 +1,29 @@
+{
+  buildGoModule,
+  fetchFromGitHub,
+  lib,
+  nixosTests,
+}:
+
+buildGoModule rec {
+  pname = "ghostunnel";
+  version = "1.5.3";
+
+  src = fetchFromGitHub {
+    owner = "ghostunnel";
+    repo = "ghostunnel";
+    rev = "v${version}";
+    sha256 = "15rmd89j7sfpznzznss899smizbyshprsrvsdmrbhb617myd9fpy";
+  };
+
+  vendorSha256 = "1i95fx4a0fh6id6iy6afbva4pazr7ym6sbwi9r7la6gxzyncd023";
+
+  meta = with lib; {
+    description = "A simple TLS proxy with mutual authentication support for securing non-TLS backend applications";
+    homepage = "https://github.com/ghostunnel/ghostunnel#readme";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ roberth ];
+  };
+
+  passthru.tests.nixos = nixosTests.ghostunnel;
+}
diff --git a/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix b/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix
index 193a0b9e0fb5..123ab3d76eef 100644
--- a/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage {
       sha256 = "0wk6n082gnj9xk46n542h1012h8gyhldca23bs7vl73g0534g878";
   };
   sourceRoot = "source/relay-rust";
-  cargoSha256 = "0i7f52r697gjw30m8k60hd3y6wsn5lpz419r083a1rhpbinzd26q";
+  cargoSha256 = "03r8ivsvmhi5f32gj4yacbyzanziymszya18dani53bq9zis9z31";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/tools/networking/gobgp/default.nix b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
index d48234f8dc75..96f806aad39f 100644
--- a/nixpkgs/pkgs/tools/networking/gobgp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "2.26.0";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-sQmTIjBvCzd8ZXAayhPdRSRwBovH8BFRwazusSE52IE=";
+    sha256 = "sha256-AlAfs1wi3hS7cqAtGqfUgv5CIonu7TmXWgxL1zSBh54=";
   };
 
   vendorSha256 = "sha256-PWm7XnO6LPaU8g8ymmqRkQv2KSX9kLv9RVaa000mrTY=";
diff --git a/nixpkgs/pkgs/tools/networking/gping/default.nix b/nixpkgs/pkgs/tools/networking/gping/default.nix
index 33ea36da38a4..a6ace183df67 100644
--- a/nixpkgs/pkgs/tools/networking/gping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gping/default.nix
@@ -1,6 +1,8 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
+, libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -14,7 +16,9 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-lApm1JLXNjDKLj6zj25OaZDVp7lLW3qyrDsvJrudl8I=";
   };
 
-  cargoSha256 = "sha256-2PxhtAqROgufVGGH7VtEJJU6Sa2OrGbbMVRUWYbAD0Q=";
+  cargoSha256 = "sha256-d1NjPwT3YDp1U9JWeUejpWDbJonFlt5lYbUf7p3jVT0=";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description = "Ping, but with a graph";
diff --git a/nixpkgs/pkgs/tools/networking/grpcurl/default.nix b/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
index 3f9d31b508b0..ec181c17e9ea 100644
--- a/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "grpcurl";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "fullstorydev";
     repo = "grpcurl";
     rev = "v${version}";
-    sha256 = "sha256-ZrL23eqA56BApwUtBwL5nSAd2LZbQxthyiFBnkJ5+Zg=";
+    sha256 = "sha256-BxmoIGhuAt/uhHLNdMiSrNVWAoxAAMKPJ/NsXjf2ynk=";
   };
 
   subPackages = [ "cmd/grpcurl" ];
 
-  vendorSha256 = "sha256-Tx00zRlzxCgyYdcYjzCxnFe8HyiitaKLcXJjYWhYSic=";
+  vendorSha256 = "sha256-EnstvJk2kZ1Ft5xY1dO14wnmT//2K72OnDMZqeaOeQI=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix b/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix
index 655cf1183022..c1861e33c081 100644
--- a/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gupnp-tools/default.nix
@@ -10,7 +10,7 @@
 , gettext
 , gupnp-av
 , gtksourceview4
-, gnome3
+, gnome
 , wrapGAppsHook
 }:
 
@@ -38,12 +38,13 @@ stdenv.mkDerivation rec {
     gtk3
     gupnp-av
     gtksourceview4
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/haproxy/default.nix b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
index 41f55e19abf2..bb79ad956a67 100644
--- a/nixpkgs/pkgs/tools/networking/haproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
@@ -11,11 +11,11 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  version = "2.3.7";
+  version = "2.3.10";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Mbp6zQ14NnxxtW5Kh8nxHNI1/FYCvFuEaQd5Eg4KMFs=";
+    sha256 = "sha256-mUbgz8g/KQcrNDHjckYiHPnUqdKKFYwHVxTTRSZvTzU=";
   };
 
   buildInputs = [ openssl zlib ]
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
     "USE_PCRE_JIT=yes"
   ] ++ lib.optionals useLua [
     "USE_LUA=yes"
+    "LUA_LIB_NAME=lua"
     "LUA_LIB=${lua5_3}/lib"
     "LUA_INC=${lua5_3}/include"
   ] ++ lib.optionals stdenv.isLinux [
diff --git a/nixpkgs/pkgs/tools/networking/httperf/default.nix b/nixpkgs/pkgs/tools/networking/httperf/default.nix
index ea567f10d488..975b050de7e3 100644
--- a/nixpkgs/pkgs/tools/networking/httperf/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httperf/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "The httperf HTTP load generator";
     homepage = "https://github.com/httperf/httperf";
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/tools/networking/httplz/default.nix b/nixpkgs/pkgs/tools/networking/httplz/default.nix
index eacb598674d2..2424018d8856 100644
--- a/nixpkgs/pkgs/tools/networking/httplz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httplz/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "--bin httplz" ];
   cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "1rpwzrr9bvw375vn97y5fqhraqz35d3ani9kfflvn2758x3g8gwf";
+  cargoSha256 = "0r33vg9431jv32r03ryxb3rc4mp6h1kc00d3h1knssfvkwsh31yn";
 
   postInstall = ''
     wrapProgram $out/bin/httplz \
diff --git a/nixpkgs/pkgs/tools/networking/i2pd/default.nix b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
index 7f27efc87305..48ebf33c41bf 100644
--- a/nixpkgs/pkgs/tools/networking/i2pd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
@@ -9,13 +9,13 @@ assert upnpSupport -> miniupnpc != null;
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.37.0";
+  version = "2.38.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "sha256-//ootg0RZR2vzO702jGXuJ5qGMO49GSG0Lw6dKzGGt8=";
+    sha256 = "sha256-8wy6Zdnw0JgnHFLa1U3qlzjpDIqi2gykbkkV7lh+Zag=";
   };
 
   buildInputs = with lib; [ boost zlib openssl ]
diff --git a/nixpkgs/pkgs/tools/networking/inetutils/default.nix b/nixpkgs/pkgs/tools/networking/inetutils/default.nix
index 1290ec2bdb1d..285031aaca52 100644
--- a/nixpkgs/pkgs/tools/networking/inetutils/default.nix
+++ b/nixpkgs/pkgs/tools/networking/inetutils/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, lib, fetchurl, ncurses, perl, help2man }:
+{ stdenv, lib, fetchurl, ncurses, perl, help2man
+, apparmorRulesFromClosure
+}:
 
 stdenv.mkDerivation rec {
   name = "inetutils-1.9.4";
@@ -8,6 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy";
   };
 
+  outputs = ["out" "apparmor"];
+
   patches = [
     ./whois-Update-Canadian-TLD-server.patch
     ./service-name.patch
@@ -41,6 +45,23 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "SUIDMODE=" ];
 
+  postInstall = ''
+    mkdir $apparmor
+    cat >$apparmor/bin.ping <<EOF
+    $out/bin/ping {
+      include <abstractions/base>
+      include <abstractions/consoles>
+      include <abstractions/nameservice>
+      include "${apparmorRulesFromClosure { name = "ping"; } [stdenv.cc.libc]}"
+      include <local/bin.ping>
+      capability net_raw,
+      network inet raw,
+      network inet6 raw,
+      mr $out/bin/ping,
+    }
+    EOF
+  '';
+
   meta = with lib; {
     description = "Collection of common network programs";
 
diff --git a/nixpkgs/pkgs/tools/networking/innernet/default.nix b/nixpkgs/pkgs/tools/networking/innernet/default.nix
index abc7aca61a32..cee4956269e1 100644
--- a/nixpkgs/pkgs/tools/networking/innernet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/innernet/default.nix
@@ -1,20 +1,48 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, llvmPackages, linuxHeaders, sqlite, Security }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, llvmPackages, sqlite, installShellFiles, Security, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "innernet";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "tonarino";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Z4F5RYPVgFiiDBg6lxILjAh/a/rL7IJBqHIJ/tQyLnE=";
+    sha256 = "sha256-Tnwq86gAbi24O8/26134gJCf9+wol1zma980t9iHEKY=";
   };
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  cargoSha256 = "sha256-Wy+i1lmXpsy0Sy0GF5XUfXsLQHeV7cQo9nUxUEFnHOU=";
 
-  nativeBuildInputs = with llvmPackages; [ llvm clang ];
-  buildInputs = [ sqlite ] ++ lib.optionals stdenv.isDarwin [ Security ];
-  cargoSha256 = "sha256-WSkN5aXMgfqZJAV1b3elF7kwf2f5OpcntKSf8620YcY=";
+  nativeBuildInputs = with llvmPackages; [
+    llvm
+    clang
+    installShellFiles
+  ];
+  buildInputs = [ sqlite ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
+
+  postInstall = ''
+    installManPage doc/innernet-server.8.gz
+    installManPage doc/innernet.8.gz
+    installShellCompletion doc/innernet.completions.{bash,fish,zsh}
+    installShellCompletion doc/innernet-server.completions.{bash,fish,zsh}
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ "$("$out/bin/${pname}"-server --version)" == "${pname}-server ${version}" ]]; then
+      echo '${pname}-server smoke check passed'
+    else
+      echo '${pname}-server smoke check failed'
+      return 1
+    fi
+    if [[ "$("$out/bin/${pname}" --version)" == "${pname} ${version}" ]]; then
+      echo '${pname} smoke check passed'
+    else
+      echo '${pname} smoke check failed'
+      return 1
+    fi
+  '';
 
   meta = with lib; {
     description = "A private network system that uses WireGuard under the hood";
diff --git a/nixpkgs/pkgs/tools/networking/ipinfo/default.nix b/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
new file mode 100644
index 000000000000..32f897bbe8e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "ipinfo";
+  version = "1.1.5";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "cli";
+    rev = "${pname}-${version}";
+    sha256 = "16i5vmx39j7l5mhs28niapki9530nsbw6xik8rsky55v9i5pr72d";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "Command Line Interface for the IPinfo API";
+    homepage = "https://github.com/ipinfo/cli";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/isync/default.nix b/nixpkgs/pkgs/tools/networking/isync/default.nix
index f6263f187bf5..666e19ca81ae 100644
--- a/nixpkgs/pkgs/tools/networking/isync/default.nix
+++ b/nixpkgs/pkgs/tools/networking/isync/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "isync";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/isync/${pname}-${version}.tar.gz";
-    sha256 = "0l01880fcyqn6xq9n8236ha5n2a3wl5g8rmv22z8nv5hgfsxndhd";
+    sha256 = "0hskfpj4r4q3959k3npyqli353daj3r5d9mfia9bbmig87nyfd8r";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/nixpkgs/pkgs/tools/networking/kapp/default.nix b/nixpkgs/pkgs/tools/networking/kapp/default.nix
index 2ff2fd8daec1..181a9d9b85ef 100644
--- a/nixpkgs/pkgs/tools/networking/kapp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kapp/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "kapp";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-kapp";
     rev = "v${version}";
-    sha256 = "sha256-hYKRfAnpHw8hHT70sOQSGlDj0dgzU0wlZpXA5f2BBfg=";
+    sha256 = "sha256-SxS6KBiKc68PcRycdVDWWfXBKOJvo7GuG/0dUQGcHsg=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/kea/default.nix b/nixpkgs/pkgs/tools/networking/kea/default.nix
index ba1be39aebfe..8daa2f10d7e1 100644
--- a/nixpkgs/pkgs/tools/networking/kea/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kea/default.nix
@@ -12,18 +12,17 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "1.9.5";
+  version = "1.9.8";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-MkoG9IhkW+5YfkmkXUkbUl9TQXxWshnxyzdGH979nZE=";
+    sha256 = "sha256-EAi1Ic3YEF0or37At48saKwmAczTwf5GtbEsQNopbl0=";
   };
 
   patches = [ ./dont-create-var.patch ];
 
   postPatch = ''
     substituteInPlace ./src/bin/keactrl/Makefile.am --replace '@sysconfdir@' "$out/etc"
-    substituteInPlace ./src/bin/keactrl/Makefile.am --replace '@(sysconfdir)@' "$out/etc"
   '';
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/networking/libreswan/default.nix b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
index 1059baf13ee5..24b7176e82b5 100644
--- a/nixpkgs/pkgs/tools/networking/libreswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
@@ -1,71 +1,114 @@
-{ lib, stdenv, fetchurl, makeWrapper,
-  pkg-config, systemd, gmp, unbound, bison, flex, pam, libevent, libcap_ng, curl, nspr,
-  bash, iproute2, iptables, procps, coreutils, gnused, gawk, nss, which, python3,
-  docs ? false, xmlto, libselinux, ldns
-  }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, nixosTests
+, pkg-config
+, systemd
+, gmp
+, unbound
+, bison
+, flex
+, pam
+, libevent
+, libcap_ng
+, curl
+, nspr
+, bash
+, iproute2
+, iptables
+, procps
+, coreutils
+, gnused
+, gawk
+, nss
+, which
+, python3
+, libselinux
+, ldns
+, xmlto
+, docbook_xml_dtd_412
+, docbook_xsl
+, findXMLCatalogs
+}:
 
 let
+  # Tools needed by ipsec scripts
   binPath = lib.makeBinPath [
-    bash iproute2 iptables procps coreutils gnused gawk nss.tools which python3
+    iproute2 iptables procps
+    coreutils gnused gawk
+    nss.tools which
   ];
 in
 
-assert docs -> xmlto != null;
-assert stdenv.isLinux -> libselinux != null;
-
 stdenv.mkDerivation rec {
   pname = "libreswan";
-  version = "3.32";
+  version = "4.4";
 
   src = fetchurl {
     url = "https://download.libreswan.org/${pname}-${version}.tar.gz";
-    sha256 = "0bj3g6qwd3ir3gk6hdl9npy3k44shf56vcgjahn30qpmx3z5fsr3";
+    sha256 = "0xj974yc0y1r7235zl4jhvxqz3bpb8js2fy9ic820zq9swh0lgsz";
   };
 
   strictDeps = true;
 
-  # These flags were added to compile v3.18. Try to lift them when updating.
-  NIX_CFLAGS_COMPILE = toString [ "-Wno-error=redundant-decls" "-Wno-error=format-nonliteral"
-    # these flags were added to build with gcc7
-    "-Wno-error=implicit-fallthrough"
-    "-Wno-error=format-truncation"
-    "-Wno-error=pointer-compare"
-    "-Wno-error=stringop-truncation"
-    # The following flag allows libreswan v3.32 to work with NSS 3.22, see
-    # https://github.com/libreswan/libreswan/issues/334.
-    # This flag should not be needed for libreswan v3.33 (which is not yet released).
-    "-DNSS_PKCS11_2_0_COMPAT=1"
-  ];
-
   nativeBuildInputs = [
     bison
     flex
-    makeWrapper
     pkg-config
+    xmlto
+    docbook_xml_dtd_412
+    docbook_xsl
+    findXMLCatalogs
   ];
 
-  buildInputs = [ bash iproute2 iptables systemd coreutils gnused gawk gmp unbound pam libevent
-                  libcap_ng curl nspr nss python3 ldns ]
-                ++ lib.optional docs xmlto
-                ++ lib.optional stdenv.isLinux libselinux;
+  buildInputs = [
+    systemd coreutils
+    gnused gawk gmp unbound pam libevent
+    libcap_ng curl nspr nss ldns
+    # needed to patch shebangs
+    python3 bash
+  ] ++ lib.optional stdenv.isLinux libselinux;
+
+  patches = [
+    # Fix compilation on aarch64, remove on next update
+    (fetchpatch {
+      url = "https://github.com/libreswan/libreswan/commit/ea50d36d2886e44317ba5ba841de1d1bf91aee6c.patch";
+      sha256 = "1jp89rm9jp55zmiyimyhg7yadj0fwwxaw7i5gyclrs38w3y1aacj";
+    })
+  ];
 
   prePatch = ''
-    # Correct bash path
-    sed -i -e 's|/bin/bash|/usr/bin/env bash|' mk/config.mk
-
-    # Fix systemd unit directory, and prevent the makefile from trying to reload the
-    # systemd daemon or create tmpfiles
-    sed -i -e 's|UNITDIR=.*$|UNITDIR=$\{out}/etc/systemd/system/|g' \
-      -e 's|TMPFILESDIR=.*$|TMPFILESDIR=$\{out}/tmpfiles.d/|g' \
-      -e 's|systemctl|true|g' \
-      -e 's|systemd-tmpfiles|true|g' \
-      initsystems/systemd/Makefile
+    # Correct iproute2 path
+    sed -e 's|"/sbin/ip"|"${iproute2}/bin/ip"|' \
+        -e 's|"/sbin/iptables"|"${iptables}/bin/iptables"|' \
+        -i initsystems/systemd/ipsec.service.in \
+           programs/verify/verify.in
+
+    # Prevent the makefile from trying to
+    # reload the systemd daemon or create tmpfiles
+    sed -e 's|systemctl|true|g' \
+        -e 's|systemd-tmpfiles|true|g' \
+        -i initsystems/systemd/Makefile
 
     # Fix the ipsec program from crushing the PATH
-    sed -i -e 's|\(PATH=".*"\):.*$|\1:$PATH|' programs/ipsec/ipsec.in
+    sed -e 's|\(PATH=".*"\):.*$|\1:$PATH|' -i programs/ipsec/ipsec.in
 
     # Fix python script to use the correct python
-    sed -i -e 's|#!/usr/bin/python|#!/usr/bin/env python|' -e 's/^\(\W*\)installstartcheck()/\1sscmd = "ss"\n\0/' programs/verify/verify.in
+    sed -e 's/^\(\W*\)installstartcheck()/\1sscmd = "ss"\n\0/' \
+        -i programs/verify/verify.in
+
+    # Replace wget with curl to save a dependency
+    curlArgs='-s --remote-name-all --output-dir'
+    sed -e "s|wget -q -P|${curl}/bin/curl $curlArgs|g" \
+        -i programs/letsencrypt/letsencrypt.in
+
+    # Patch the Makefile:
+    # 1. correct the pam.d directory install path
+    # 2. do not create the /var/lib/ directory
+    sed -e 's|$(DESTDIR)/etc/pam.d|$(out)/etc/pam.d|' \
+        -e '/test ! -d $(NSSDIR)/,+3d' \
+        -i configs/Makefile
   '';
 
   # Set appropriate paths for build
@@ -73,10 +116,10 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "INITSYSTEM=systemd"
-    (if docs then "all" else "base")
+    "UNITDIR=$(out)/etc/systemd/system/"
+    "TMPFILESDIR=$(out)/lib/tmpfiles.d/"
   ];
 
-  installTargets = [ (if docs then "install" else "install-base") ];
   # Hack to make install work
   installFlags = [
     "FINALVARDIR=\${out}/var"
@@ -84,18 +127,23 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
-    for i in $out/bin/* $out/libexec/ipsec/*; do
-      wrapProgram "$i" --prefix PATH ':' "$out/bin:${binPath}"
-    done
+    # Install examples directory (needed for letsencrypt)
+    cp -r docs/examples $out/share/doc/libreswan/examples
+  '';
+
+  postFixup = ''
+    # Add a PATH to the main "ipsec" script
+    sed -e '0,/^$/{s||export PATH=${binPath}:$PATH|}' \
+        -i $out/bin/ipsec
   '';
 
-  enableParallelBuilding = true;
+  passthru.tests.libreswan = nixosTests.libreswan;
 
   meta = with lib; {
     homepage = "https://libreswan.org";
     description = "A free software implementation of the VPN protocol based on IPSec and the Internet Key Exchange";
     platforms = platforms.linux ++ platforms.freebsd;
-    license = licenses.gpl2;
-    maintainers = [ maintainers.afranchuk ];
+    license = with licenses; [ gpl2Plus mpl20 ] ;
+    maintainers = with maintainers; [ afranchuk rnhmjoj ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/lldpd/default.nix b/nixpkgs/pkgs/tools/networking/lldpd/default.nix
index f34b43f3c32b..a4e5d565756b 100644
--- a/nixpkgs/pkgs/tools/networking/lldpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/lldpd/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lldpd";
-  version = "1.0.8";
+  version = "1.0.11";
 
   src = fetchurl {
     url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz";
-    sha256 = "sha256-mNIA524w9iYsSkSTFIwYQIJ4mDKRRqV6NPjw+SjKPe8=";
+    sha256 = "sha256-tR0VcA+678t/uFw1BrSdMxc6DxXXAPkz7wRAZ7QtRuQ=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/networking/mdk4/default.nix b/nixpkgs/pkgs/tools/networking/mdk4/default.nix
new file mode 100644
index 000000000000..903504633ac8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/mdk4/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, libnl, libpcap, pkg-config }:
+
+stdenv.mkDerivation {
+  pname = "mdk4";
+  version = "unstable-2021-04-27";
+
+  src = fetchFromGitHub {
+    owner = "aircrack-ng";
+    repo = "mdk4";
+    rev = "e94422ce8e4b8dcd132d658345814df7e63bfa41";
+    sha256 = "sha256-pZS7HQBKlSZJGqoZlSyBUzXC3osswcB56cBzgm+Sbwg=";
+  };
+
+  preBuild = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man
+
+    substituteInPlace src/Makefile --replace '/usr/local/src/mdk4' '$out'
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ libnl libpcap ];
+
+  makeFlags = [ "PREFIX=$(out)" "SBINDIR=$(PREFIX)/bin" ];
+
+  meta = with lib; {
+    description = "A tool that injects data into wireless networks";
+    homepage = "https://github.com/aircrack-ng/mdk4";
+    maintainers = with maintainers; [ fortuneteller2k ];
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/minidlna/default.nix b/nixpkgs/pkgs/tools/networking/minidlna/default.nix
index df194ccaaaa9..c14b8c68479b 100644
--- a/nixpkgs/pkgs/tools/networking/minidlna/default.nix
+++ b/nixpkgs/pkgs/tools/networking/minidlna/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ffmpeg_3, flac, libvorbis, libogg, libid3tag, libexif, libjpeg, sqlite, gettext }:
+{ lib, stdenv, fetchurl, ffmpeg, flac, libvorbis, libogg, libid3tag, libexif, libjpeg, sqlite, gettext }:
 
 let version = "1.3.0"; in
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     export makeFlags="INSTALLPREFIX=$out"
   '';
 
-  buildInputs = [ ffmpeg_3 flac libvorbis libogg libid3tag libexif libjpeg sqlite gettext ];
+  buildInputs = [ ffmpeg flac libvorbis libogg libid3tag libexif libjpeg sqlite gettext ];
 
   postInstall = ''
     mkdir -p $out/share/man/man{5,8}
diff --git a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
index 05b04cf9484b..aea0faddf5d7 100644
--- a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchurl, iptables, libuuid, pkg-config
 , which, iproute2, gnused, coreutils, gawk, makeWrapper
+, nixosTests
 }:
 
 let
@@ -30,6 +31,10 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru.tests = {
+    bittorrent-integration = nixosTests.bittorrent;
+  };
+
   meta = with lib; {
     homepage = "http://miniupnp.free.fr/";
     description = "A daemon that implements the UPnP Internet Gateway Device (IGD) specification";
diff --git a/nixpkgs/pkgs/tools/networking/modem-manager/default.nix b/nixpkgs/pkgs/tools/networking/modem-manager/default.nix
index 06102ac2d903..71ea50ea1726 100644
--- a/nixpkgs/pkgs/tools/networking/modem-manager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/modem-manager/default.nix
@@ -3,12 +3,12 @@
 
 stdenv.mkDerivation rec {
   pname = "modem-manager";
-  version = "1.14.10";
+  version = "1.14.12";
 
   package = "ModemManager";
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${package}/${package}-${version}.tar.xz";
-    sha256 = "sha256-TqYLN1p2HhfnuwlbyolFee0OjjOyc9xpi1y+A5R/NX8=";
+    sha256 = "sha256-0QqXEZndwl3N8VbFasCOkWEsCVOdVlIueu1G1G5IO7E=";
   };
 
   nativeBuildInputs = [ vala gobject-introspection gettext pkg-config ];
diff --git a/nixpkgs/pkgs/tools/networking/mozwire/default.nix b/nixpkgs/pkgs/tools/networking/mozwire/default.nix
index 360c35721399..afccd8376d8f 100644
--- a/nixpkgs/pkgs/tools/networking/mozwire/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mozwire/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0yxnpnxwis46wz4j5rjzyyzrvh94hn8vzxmmrcmrdz3gkakg77hg";
+  cargoSha256 = "0q27p2hyw6c1fh5x8kwsrw8a1hk6z90z0z3w86ga8ryz53xg4vdi";
 
   meta = with lib; {
     description = "MozillaVPN configuration manager giving Linux, macOS users (among others), access to MozillaVPN";
diff --git a/nixpkgs/pkgs/tools/networking/mubeng/default.nix b/nixpkgs/pkgs/tools/networking/mubeng/default.nix
new file mode 100644
index 000000000000..11ebe338c90b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/mubeng/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "mubeng";
+  version = "0.4.5";
+
+  src = fetchFromGitHub {
+    owner = "kitabisa";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03hm4wqlvsbi06g0ijrhvbk9i2ahmd1m8l80wbcijznhbdl5msl8";
+  };
+
+  vendorSha256 = "1qcxix6724ly0klsr8bw3nv6pxn0wixqiqcgqkcp6sia4dxbbg14";
+
+  meta = with lib; {
+    description = "Proxy checker and IP rotator";
+    homepage = "https://github.com/kitabisa/mubeng";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/nebula/default.nix b/nixpkgs/pkgs/tools/networking/nebula/default.nix
index 06684016abcf..06615ae25fae 100644
--- a/nixpkgs/pkgs/tools/networking/nebula/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nebula/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nebula";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08pjzlqck9524phsmqjwg6237vj1mmwsynkxivnahv1vhwyy9awz";
+    sha256 = "lu2/rSB9cFD7VUiK+niuqCX9CI2x+k4Pi+U5yksETSU=";
   };
 
-  vendorSha256 = "1g6wk5sydxbzpx62k4bdq4qnyk98mn1pljgi5hbffj01ipd82kq8";
+  vendorSha256 = "p1inJ9+NAb2d81cn+y+ofhxFz9ObUiLgj+9cACa6Jqg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/netifd/default.nix b/nixpkgs/pkgs/tools/networking/netifd/default.nix
index efa05591f521..dc343e563a75 100644
--- a/nixpkgs/pkgs/tools/networking/netifd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netifd/default.nix
@@ -1,27 +1,22 @@
-{ runCommand, lib, stdenv, cmake, fetchgit, libnl, libubox, uci, ubus, json_c }:
+{ lib, stdenv, cmake, fetchgit, libnl, libubox, uci, ubus, json_c, pkg-config }:
 
 stdenv.mkDerivation {
   pname = "netifd";
-  version = "unstable-2020-07-11";
+  version = "unstable-2021-04-03";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/netifd.git";
-    rev = "3d9bd73e8c2d8a1f78effbe92dd2495bbd2552c4";
-    sha256 = "085sx1gsigbi1jr19l387rc5p6ja1np6q2gb84khjd4pyiqwk840";
+    rev = "327da9895327bc56b23413ee91a6e6b6e0e4329d";
+    sha256 = "0jvk2hx8kbkc6d72gh9rwap8ds6qgnmny6306vvzxy68v03xikwv";
   };
 
   buildInputs = [ libnl libubox uci ubus json_c ];
-  nativeBuildInputs = [ cmake ];
-
-  preBuild = ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE \
-      -I$(echo "${lib.getDev libnl}"/include/libnl*/)"
-  '';
+  nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
     description = "OpenWrt Network interface configuration daemon";
     homepage = "https://git.openwrt.org/?p=project/netifd.git;a=summary";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ petabyteboy ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
index f6c45fc074d4..5f83ffae055f 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/applet/default.nix
@@ -5,7 +5,7 @@
 , gettext
 , pkg-config
 , networkmanager
-, gnome3
+, gnome
 , libnotify
 , libsecret
 , polkit
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "network-manager-applet";
-  version = "1.20.0";
+  version = "1.22.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0lsjkbv66hn7acl2pg9h6hz4b700zzv4cjwrwjvy7043blw0bcla";
+    sha256 = "sha256-xw2AtI1AqcuZ7JZ8xDifZ+fwMBUopp1IFXIEEzGmRr4=";
   };
 
   mesonFlags = [
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     glib
     glib-networking
     libappindicator-gtk3
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
   ];
 
   nativeBuildInputs = [
@@ -72,9 +72,10 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanagerapplet";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
index c2de2ed8adb9..11c5462ab202 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, substituteAll, intltool, pkg-config, fetchpatch, dbus
-, gnome3, systemd, libuuid, polkit, gnutls, ppp, dhcp, iptables, python3, vala
+, gnome, systemd, libuuid, polkit, gnutls, ppp, dhcp, iptables, python3, vala
 , libgcrypt, dnsmasq, bluez5, readline, libselinux, audit
 , gobject-introspection, modemmanager, openresolv, libndp, newt, libsoup
 , ethtool, gnused, iputils, kmod, jansson, gtk-doc, libxslt
@@ -10,11 +10,11 @@ let
   pythonForDocs = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
 in stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.30.2";
+  version = "1.30.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "sha256-DI6A53h3hg5KTmq0oPfNwRhuNWtlsEKnUYlxiLiJRNI=";
+    sha256 = "sha256-YFC3JCEuo85zhhEzWb6pr6H2eaVPYNmZpZmYkuZywZA=";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -96,7 +96,7 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanager";
     };
@@ -106,7 +106,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://wiki.gnome.org/Projects/NetworkManager";
     description = "Network configuration and management tool";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom domenkozar obadz worldofpeace ];
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ phreedom domenkozar obadz ]);
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
index 20388f242ea4..f97bac13cf7f 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/fortisslvpn/default.nix
@@ -11,7 +11,7 @@
 , ppp
 , libsecret
 , withGnome ? true
-, gnome3
+, gnome
 , fetchpatch
 , libnma
 }:
@@ -69,9 +69,10 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanager-fortisslvpn";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/iodine/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/iodine/default.nix
index 87069d3c3c80..e56d9411b393 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/iodine/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/iodine/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitLab, substituteAll, autoreconfHook, iodine, intltool, pkg-config, networkmanager, libsecret, gtk3
-, withGnome ? true, gnome3, fetchpatch, libnma, glib }:
+, withGnome ? true, gnome, fetchpatch, libnma, glib }:
 
 let
   pname = "NetworkManager-iodine";
@@ -44,7 +44,7 @@ in stdenv.mkDerivation {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanager-iodine";
     };
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix
index 3d9749332255..50fc66a8d68b 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix
@@ -7,7 +7,7 @@
 , pkg-config
 , vala
 , networkmanager
-, gnome3
+, gnome
 , isocodes
 , libxml2
 , docbook_xsl
@@ -75,8 +75,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/openconnect/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/openconnect/default.nix
index 462eb3793d8f..c03a698514a8 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/openconnect/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/openconnect/default.nix
@@ -13,7 +13,7 @@
 , file
 , gtk3
 , withGnome ? true
-, gnome3
+, gnome
 , kmod
 , fetchpatch
 }:
@@ -66,9 +66,10 @@ in stdenv.mkDerivation {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanager-openconnect";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix
index 4a9e508fcdc7..06df79e47052 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, substituteAll, openvpn, intltool, libxml2, pkg-config, file, networkmanager, libsecret
-, gtk3, withGnome ? true, gnome3, kmod, libnma }:
+, gtk3, withGnome ? true, gnome, kmod, libnma }:
 
 let
   pname = "NetworkManager-openvpn";
@@ -31,9 +31,10 @@ in stdenv.mkDerivation {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanager-openvpn";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix
index d00c0e3e55f8..f48662344380 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix
@@ -4,7 +4,7 @@
 , fetchpatch
 , file
 , glib
-, gnome3
+, gnome
 , gtk3
 , intltool
 , libnma
@@ -50,7 +50,7 @@ in stdenv.mkDerivation {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanager-sstp";
     };
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/strongswan/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/strongswan/default.nix
index c4cb79b4c8c3..cebcec35a314 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/strongswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/strongswan/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, intltool, pkg-config, networkmanager, strongswanNM
-, gtk3, gnome3, libsecret, libnma }:
+, gtk3, gnome, libsecret, libnma }:
 
 stdenv.mkDerivation rec {
   pname = "NetworkManager-strongswan";
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/vpnc/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/vpnc/default.nix
index 6ac71efc2603..70e7104696ee 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/vpnc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/vpnc/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, substituteAll, vpnc, intltool, pkg-config, networkmanager, libsecret
-, gtk3, withGnome ? true, gnome3, glib, kmod, file, fetchpatch, libnma }:
+, gtk3, withGnome ? true, gnome, glib, kmod, file, fetchpatch, libnma }:
 let
   pname = "NetworkManager-vpnc";
   version = "1.2.6";
@@ -35,9 +35,10 @@ in stdenv.mkDerivation {
   ];
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
       attrPath = "networkmanager-vpnc";
+      versionPolicy = "odd-unstable";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/nfstrace/default.nix b/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
index a1bf83726d26..ca75e50fa527 100644
--- a/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
@@ -16,6 +16,12 @@ stdenv.mkDerivation rec {
       url = "https://salsa.debian.org/debian/nfstrace/raw/debian/0.4.3.1-3/debian/patches/reproducible_build.patch";
       sha256 = "0fd96r8xi142kjwibqkd46s6jwsg5kfc5v28bqsj9rdlc2aqmay5";
     })
+    # Fixes build failure with gcc-10
+    # Related PR https://github.com/epam/nfstrace/pull/42/commits/4562a895ed3ac0e811bdd489068ad3ebe4d7b501
+    (fetchpatch {
+      url = "https://github.com/epam/nfstrace/commit/4562a895ed3ac0e811bdd489068ad3ebe4d7b501.patch";
+      sha256 = "1fbicbllyykjknik7asa81x0ixxmbwqwkiz74cnznagv10jlkj3p";
+    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
index 0d9dbd19117e..fbfab8d2f05a 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
@@ -9,7 +9,8 @@ let versions = builtins.fromJSON (builtins.readFile ./versions.json);
            else if stdenv.isAarch64 then "arm64"
            else throw "Unsupported architecture";
     os = if stdenv.isLinux then "linux"
-         else if stdenv.isDarwin then "darwin"
+         else if (stdenv.isDarwin && stdenv.isx86_64) then "darwin"
+         else if stdenv.isDarwin then throw "Unsupported architecture"
          else throw "Unsupported os";
     versionInfo = versions."${os}-${arch}";
     inherit (versionInfo) version sha256 url;
@@ -38,7 +39,7 @@ stdenv.mkDerivation {
     description = "Allows you to expose a web server running on your local machine to the internet";
     homepage = "https://ngrok.com/";
     license = licenses.unfree;
-    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
     maintainers = [ maintainers.bobvanderlinden ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ngrok-2/update.sh b/nixpkgs/pkgs/tools/networking/ngrok-2/update.sh
index 7908a1524e59..4e2aaf4e5596 100755
--- a/nixpkgs/pkgs/tools/networking/ngrok-2/update.sh
+++ b/nixpkgs/pkgs/tools/networking/ngrok-2/update.sh
@@ -29,5 +29,6 @@ get_download_info() {
     get_download_info linux arm
     get_download_info linux arm64
     get_download_info darwin amd64
+    get_download_info darwin arm64
 ) | jq --slurp 'map ({ (.sys): . }) | add' \
     > pkgs/tools/networking/ngrok-2/versions.json
diff --git a/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json b/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json
index 656e6a640e53..85b0e47168a2 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json
+++ b/nixpkgs/pkgs/tools/networking/ngrok-2/versions.json
@@ -1,32 +1,38 @@
 {
   "linux-386": {
     "sys": "linux-386",
-    "url": "https://bin.equinox.io/a/bjFaKy3TSAg/ngrok-2.3.35-linux-386",
-    "sha256": "1fdd1c057c3c31044400ef6ade20ad3f10bce415ad33ccfb4bc2fd83bb36f62f",
-    "version": "2.3.35"
+    "url": "https://bin.equinox.io/a/c4ZY6f7svn7/ngrok-2.3.40-linux-386",
+    "sha256": "1b645ff0abbb28ca7c0f6a2109653be2dc281860b582b4de6927fde12c99da26",
+    "version": "2.3.40"
   },
   "linux-amd64": {
     "sys": "linux-amd64",
-    "url": "https://bin.equinox.io/a/52fZaxjGg9n/ngrok-2.3.35-linux-amd64",
-    "sha256": "b456608239cdf4b5119916c62a87640667d1cb1900c53faed89e3dacc1fe4679",
-    "version": "2.3.35"
+    "url": "https://bin.equinox.io/a/b5PAmc6L9z2/ngrok-2.3.40-linux-amd64",
+    "sha256": "218d267cd1195334718bafac14bfdf1c19dc95dcf8a24aaa6a1383c21dc86e76",
+    "version": "2.3.40"
   },
   "linux-arm": {
     "sys": "linux-arm",
-    "url": "https://bin.equinox.io/a/2cUd5mRRjoF/ngrok-2.3.35-linux-arm",
-    "sha256": "94d88311e9b2baea615d9fe7c6921ac0167040ec66aa0d0cbb856c027d617f1f",
-    "version": "2.3.35"
+    "url": "https://bin.equinox.io/a/aRh9rdUAJyf/ngrok-2.3.40-linux-arm",
+    "sha256": "538a7431df141a929a250eaf6ed7afdcce817bcd8cfe60b61f4c6d7a289b1d1c",
+    "version": "2.3.40"
   },
   "linux-arm64": {
     "sys": "linux-arm64",
-    "url": "https://bin.equinox.io/a/k2qx6ipHqpb/ngrok-2.3.35-linux-arm64",
-    "sha256": "fd07f5c449f1c1444606bbc9d06fa6b649325ddf0b3e6dac6f32d785a886f170",
-    "version": "2.3.35"
+    "url": "https://bin.equinox.io/a/2gpRjDRBpJv/ngrok-2.3.40-linux-arm64",
+    "sha256": "dc7b4465ef95f6d04d1b1996111b3a2631e5f464d7dca7f4994f59ea4edbe21f",
+    "version": "2.3.40"
   },
   "darwin-amd64": {
     "sys": "darwin-amd64",
-    "url": "https://bin.equinox.io/a/jKkD2Wcds2L/ngrok-2.3.35-darwin-amd64",
-    "sha256": "dd74a6be1a155c41ff06aadad910196cae13e06ab997bc0b144288b2da568f2a",
-    "version": "2.3.35"
+    "url": "https://bin.equinox.io/a/fcZQXtHSDgM/ngrok-2.3.40-darwin-amd64",
+    "sha256": "80c8fb121d6c93350d84351d9516674f4e20a3e003cdd7dcb4c3e7c48b9c5b07",
+    "version": "2.3.40"
+  },
+  "darwin-arm64": {
+    "sys": "darwin-arm64",
+    "url": "https://bin.equinox.io/a/3TEKdZeyAnt/ngrok-2.3.40-darwin-arm64",
+    "sha256": "c9e6dfec454f9faec92a13dfd3f3857de982007e3b85987bb875aa0d74ca8101",
+    "version": "2.3.40"
   }
 }
diff --git a/nixpkgs/pkgs/tools/networking/notemap/default.nix b/nixpkgs/pkgs/tools/networking/notemap/default.nix
new file mode 100644
index 000000000000..040f26752b51
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/notemap/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchzip
+, pkg-config
+, libressl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "notemap";
+  version = "1.3";
+
+  src = fetchzip {
+    url = "https://git.causal.agency/notemap/snapshot/notemap-${version}.tar.gz";
+    sha256 = "0s9c1xx0iggyzclqw3294bjv7qgvd5l5zgbryks4hvfibr73r6ps";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libressl
+  ];
+
+  meta = {
+    description = "Mirror notes to IMAP";
+    longDescription = ''
+      notemap(1) mirrors text files to an IMAP mailbox in a format compatible with the iOS
+      Notes app. It's intended to make notes managed in git(1) easily accessible
+      from the phone.
+    '';
+    license = lib.licenses.gpl3Plus;
+    maintainers = [ lib.maintainers.sternenseemann ];
+    homepage = "https://git.causal.agency/notemap/about/";
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/nxdomain/default.nix b/nixpkgs/pkgs/tools/networking/nxdomain/default.nix
index 073ac48b8d34..4e7a708125aa 100644
--- a/nixpkgs/pkgs/tools/networking/nxdomain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nxdomain/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "nxdomain";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z9iffggqq2kw6kpnj30shi98cg0bkvkwpglmhnkgwac6g55n2zn";
+    sha256 = "0va7nkbdjgzrf7fnbxkh1140pbc62wyj86rdrrh5wmg3phiziqkb";
   };
 
   propagatedBuildInputs = [ dnspython ];
@@ -23,7 +23,7 @@ buildPythonApplication rec {
     homepage = "https://github.com/zopieux/nxdomain";
     description = "A domain (ad) block list creator";
     platforms = platforms.all;
-    license = licenses.gpl3Plus;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ zopieux ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ofono/default.nix b/nixpkgs/pkgs/tools/networking/ofono/default.nix
index 8113f8424389..93e1415b91c4 100644
--- a/nixpkgs/pkgs/tools/networking/ofono/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ofono/default.nix
@@ -12,14 +12,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ofono";
-  version = "1.31";
+  version = "1.32";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/network/ofono/ofono.git";
     rev = version;
-    sha256 = "033y3vggjxn1c7mw75j452idp7arrdv51axs727f7l3c5lnxqdjy";
+    sha256 = "sha256-bJ7Qgau5soPiptrhcMZ8rWxfprRCTeR7OjQ5HZQ9hbc=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
index 787067881a2f..b195c655c93f 100644
--- a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper }:
+{ callPackage, lib, stdenv, fetchurl, jre, makeWrapper }:
 
-stdenv.mkDerivation rec {
-  version = "5.0.0";
+let this = stdenv.mkDerivation rec {
+  version = "5.1.0";
   pname = "openapi-generator-cli";
 
   jarfilename = "${pname}-${version}.jar";
@@ -12,16 +12,20 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/org/openapitools/${pname}/${version}/${jarfilename}";
-    sha256 = "13kgc84kyrypr0xy4xifrzqcy4qlvcxc7f0jy3n1xkjl3vhav7w3";
+    sha256 = "06dvy4pwgpyf209n0b27qwkjj7zlgadg2czwxapy94fd1wpq9yb2";
   };
 
   phases = [ "installPhase" ];
 
   installPhase = ''
+    runHook preInstall
+
     install -D "$src" "$out/share/java/${jarfilename}"
 
     makeWrapper ${jre}/bin/java $out/bin/${pname} \
       --add-flags "-jar $out/share/java/${jarfilename}"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -30,4 +34,9 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.shou ];
   };
-}
+
+  passthru.tests.example = callPackage ./example.nix {
+    openapi-generator-cli = this;
+  };
+};
+in this
diff --git a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/example.nix b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/example.nix
new file mode 100644
index 000000000000..f59173b9744a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/example.nix
@@ -0,0 +1,31 @@
+{ openapi-generator-cli, fetchurl, runCommand }:
+
+runCommand "openapi-generator-cli-test" {
+  nativeBuildInputs = [ openapi-generator-cli ];
+  petstore = fetchurl {
+    url = "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/14c0908becbccd78252be49bd92be8c53cd2b9e3/examples/v3.0/petstore.yaml";
+    sha256 = "sha256:1mgdbzv42alv0b1a18dqbabqyvyhrg3brynr5hqsrm3qljfzaq5b";
+  };
+  config = builtins.toJSON {
+    elmVersion = "0.19";
+    elmPrefixCustomTypeVariants = false;
+  };
+  passAsFile = [ "config" ];
+} ''
+  openapi-generator-cli generate \
+    --input-spec $petstore \
+    --enable-post-process-file \
+    --generator-name elm \
+    --config "$config" \
+    --additional-properties elmEnableCustomBasePaths=true \
+    --output "$out" \
+    ;
+  find $out
+  echo >&2 'Looking for some keywords'
+  set -x
+  grep 'module Api.Request.Pets' $out/src/Api/Request/Pets.elm
+  grep 'createPets' $out/src/Api/Request/Pets.elm
+  grep '"limit"' $out/src/Api/Request/Pets.elm
+  set +x
+  echo "Looks OK!"
+''
diff --git a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/unstable.nix b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/unstable.nix
index 1384f35a3f20..306654f05d99 100644
--- a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/unstable.nix
+++ b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/unstable.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper }:
+{ callPackage, lib, stdenv, fetchurl, jre, makeWrapper }:
 
-stdenv.mkDerivation rec {
+let this = stdenv.mkDerivation rec {
   version = "6.0.0-2021-01-18";  # Also update the fetchurl link
   pname = "openapi-generator-cli";
 
@@ -18,10 +18,14 @@ stdenv.mkDerivation rec {
   phases = [ "installPhase" ];
 
   installPhase = ''
+    runHook preInstall
+
     install -D "$src" "$out/share/java/${jarfilename}"
 
     makeWrapper ${jre}/bin/java $out/bin/${pname} \
       --add-flags "-jar $out/share/java/${jarfilename}"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -30,5 +34,9 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = [ maintainers.shou ];
   };
-}
 
+  passthru.tests.example = callPackage ./example.nix {
+    openapi-generator-cli = this;
+  };
+};
+in this
diff --git a/nixpkgs/pkgs/tools/networking/openconnect/default.nix b/nixpkgs/pkgs/tools/networking/openconnect/default.nix
index da4dab4980c0..8afe546c4593 100644
--- a/nixpkgs/pkgs/tools/networking/openconnect/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openconnect/default.nix
@@ -1,4 +1,19 @@
-{ lib, stdenv, fetchurl, pkg-config, openssl ? null, gnutls ? null, gmp, libxml2, stoken, zlib, fetchgit, darwin } :
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, openssl ? null
+, gnutls ? null
+, gmp
+, libxml2
+, stoken
+, zlib
+, fetchgit
+, darwin
+, head ? false
+  , fetchFromGitLab
+  , autoreconfHook
+}:
 
 assert (openssl != null) == (gnutls == null);
 
@@ -9,15 +24,20 @@ let vpnc = fetchgit {
 };
 
 in stdenv.mkDerivation rec {
-  pname = "openconnect";
-  version = "8.10";
-
-  src = fetchurl {
-    urls = [
-      "ftp://ftp.infradead.org/pub/openconnect/${pname}-${version}.tar.gz"
-    ];
-    sha256 = "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih";
-  };
+  pname = "openconnect${lib.optionalString head "-head"}";
+  version = if head then "2021-05-05" else "8.10";
+
+  src =
+    if head then fetchFromGitLab {
+      owner = "openconnect";
+      repo = "openconnect";
+      rev = "684f6db1aef78e61e01f511c728bf658c30b9114";
+      sha256 = "0waclawcymgd8sq9xbkn2q8mnqp4pd0gpyv5wrnb7i0nsv860wz8";
+    }
+    else fetchurl {
+      url = "ftp://ftp.infradead.org/pub/openconnect/${pname}-${version}.tar.gz";
+      sha256 = "1cdsx4nsrwawbsisfkldfc9i4qn60g03vxb13nzppr2br9p4rrih";
+    };
 
   outputs = [ "out" "dev" ];
 
@@ -29,12 +49,13 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [ openssl gnutls gmp libxml2 stoken zlib ]
     ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.PCSC;
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config ]
+    ++ lib.optional head autoreconfHook;
 
   meta = with lib; {
     description = "VPN Client for Cisco's AnyConnect SSL VPN";
     homepage = "http://www.infradead.org/openconnect/";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     maintainers = with maintainers; [ pradeepchhetri tricktron ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
   };
diff --git a/nixpkgs/pkgs/tools/networking/openconnect_pa/default.nix b/nixpkgs/pkgs/tools/networking/openconnect_pa/default.nix
deleted file mode 100644
index 0f7a37e8831e..000000000000
--- a/nixpkgs/pkgs/tools/networking/openconnect_pa/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, vpnc, openssl ? null, gnutls ? null, gmp, libxml2, stoken, zlib, autoreconfHook } :
-
-assert (openssl != null) == (gnutls == null);
-
-stdenv.mkDerivation {
-  version = "unstable-2018-10-08";
-  pname = "openconnect_pa";
-
-  outputs = [ "out" "dev" ];
-
-  src = fetchFromGitHub {
-    owner = "dlenski";
-    repo = "openconnect";
-    rev = "e5fe063a087385c5b157ad7a9a3fa874181f6e3b";
-    sha256 = "0ywacqs3nncr2gpjjcz2yc9c6v4ifjssh0vb07h0qff06whqhdax";
-  };
-
-  preConfigure = ''
-      export PKG_CONFIG=${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config
-      export LIBXML2_CFLAGS="-I ${libxml2.dev}/include/libxml2"
-      export LIBXML2_LIBS="-L${libxml2.out}/lib -lxml2"
-  '';
-
-  configureFlags = [
-    "--with-vpnc-script=${vpnc}/etc/vpnc/vpnc-script"
-    "--disable-nls"
-    "--without-openssl-version-check"
-  ];
-
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-  propagatedBuildInputs = [ vpnc openssl gnutls gmp libxml2 stoken zlib ];
-
-  meta = with lib; {
-    description = "OpenConnect client extended to support Palo Alto Networks' GlobalProtect VPN";
-    homepage = "https://github.com/dlenski/openconnect/";
-    license = licenses.lgpl21;
-    maintainers = with maintainers; [ chessai ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/openssh/common.nix b/nixpkgs/pkgs/tools/networking/openssh/common.nix
index 55babb4ca2dc..40011a14c893 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/common.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/common.nix
@@ -19,9 +19,10 @@
 , pkg-config
 , pam
 , etcDir ? null
-, withKerberos ? true
+, withKerberos ? !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
 , libkrb5
 , libfido2
+, nixosTests
 , withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
 , linkOpenssl ? true
 }:
@@ -111,6 +112,10 @@ stdenv.mkDerivation rec {
     "sysconfdir=\${out}/etc/ssh"
   ];
 
+  passthru.tests = {
+    borgbackup-integration = nixosTests.borgbackup;
+  };
+
   meta = {
     description = "An implementation of the SSH protocol${extraDesc}";
     homepage = "https://www.openssh.com/";
diff --git a/nixpkgs/pkgs/tools/networking/openssh/default.nix b/nixpkgs/pkgs/tools/networking/openssh/default.nix
index 3ea35daaeb3d..4cc943fc75f5 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/default.nix
@@ -5,11 +5,11 @@ in {
 
   openssh = common rec {
     pname = "openssh";
-    version = "8.5p1";
+    version = "8.6p1";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      sha256 = "09gc8rv7728chxraab85dzkdikaw4aph1wlcwcc9kai9si0kybzm";
+      sha256 = "1bnpivgk98h2f9afpp88jv6g9ps83vnpxd031n2jqxi12vdf9rn3";
     };
 
     extraPatches = [ ./ssh-keysign-8.5.patch ];
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/default.nix b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
index 6b98df215023..46375b60fe46 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
@@ -78,12 +78,12 @@ let
 in
 {
   openvpn_24 = generic {
-    version = "2.4.9";
-    sha256 = "1qpbllwlha7cffsd5dlddb8rl22g9rar5zflkz1wrcllhvfkl7v4";
+    version = "2.4.11";
+    sha256 = "06s4m0xvixjhd3azrzbsf4j86kah4xwr2jp6cmcpc7db33rfyyg5";
   };
 
   openvpn = generic {
-    version = "2.5.0";
-    sha256 = "sha256-AppCbkTWVstOEYkxnJX+b8mGQkdyT1WZ2Z35xMNHj70=";
+    version = "2.5.2";
+    sha256 = "sha256-sSdDg2kB82Xvr4KrJJOWfhshwh60POmo2hACoXycHcg=";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix b/nixpkgs/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix
index bb06479be30e..70dacddafc37 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/openvpn-auth-ldap.nix
@@ -1,65 +1,50 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch,
-  autoreconfHook, re2c, openldap, openvpn, gnustep, check
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, gnustep
+, re2c
+, openldap
+, openssl
+, openvpn
 }:
 
-let
-  srcName = "openvpn-auth-ldap";
-  srcVersion = "2.0.3";
-  debianRev = "6.1";
-
-  fetchPatchFromDebian =
-    {patch, sha256}:
-    fetchpatch {
-      inherit sha256;
-      url = "http://sources.debian.net/data/main/o/${srcName}/${srcVersion}-${debianRev}/debian/patches/${patch}";
-    };
-in
-
 stdenv.mkDerivation rec {
-  name = "${srcName}-${version}";
-  version = "${srcVersion}+deb${debianRev}";
+  pname = "openvpn-auth-ldap";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "threerings";
-    repo = srcName;
-    rev = "auth-ldap-${srcVersion}";
-    sha256 = "1v635ylzf5x3l3lirf3n6173q1w8g0ssjjkf27qqw98c3iqp63sq";
+    repo = "openvpn-auth-ldap";
+    rev = "auth-ldap-${version}";
+    sha256 = "1j30sygj8nm8wjqxzpb7pfzr3dxqxggswzxd7z5yk7y04c0yp1hb";
   };
 
-  patches = map fetchPatchFromDebian [
-    {patch = "STARTTLS_before_auth.patch";
-     sha256 = "02kky73mgx9jf16lpabppl271zyjn4a1160k8b6a0fax5ic8gbwk";}
-    {patch = "gobjc_4.7_runtime.patch";
-     sha256 = "0ljmdn70g5xp4kjcv59wg2wnqaifjdfdv1wlj356d10a7fzvxc76";}
-    {patch = "openvpn_ldap_simpler_add_handler_4";
-     sha256 = "0nha9mazp3dywbs1ywj8xi4ahzsjsasyrcic87v8c0x2nwl9kaa0";}
-    {patch = "auth-ldap-gnustep.patch";
-     sha256 = "053jni1s3pacpi2s43dkmk95j79ifh8rybjly13yy2dqffbasr31";}
-  ];
-
   nativeBuildInputs = [
     autoreconfHook
-  ];
-
-  buildInputs = [
-    check
     gnustep.base
     gnustep.libobjc
     gnustep.make
+    re2c
+  ];
+
+  buildInputs = [
     openldap
+    openssl
     openvpn
-    re2c
   ];
 
   configureFlags = [
-    "--with-objc-runtime=modern"
+    "--with-objc-runtime=GNU"
     "--with-openvpn=${openvpn}/include"
     "--libdir=$(out)/lib/openvpn"
   ];
 
+  doCheck = true;
+
   preInstall = ''
     mkdir -p $out/lib/openvpn $out/share/doc/openvpn/examples
-    cp README $out/share/doc/openvpn/
+    cp README.md $out/share/doc/openvpn/
     cp auth-ldap.conf $out/share/doc/openvpn/examples/
   '';
 
diff --git a/nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix b/nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix
new file mode 100644
index 000000000000..0fd16f4799d6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/p2p/libtorrent-jesec/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, gtest, openssl, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "libtorrent-jesec";
+  version = "0.13.8-r2";
+
+  src = fetchFromGitHub {
+    owner = "jesec";
+    repo = "libtorrent";
+    rev = "v${version}";
+    sha256 = "sha256-eIXVTbVOCRHcxSsLPvIm9F60t2upk5ORpDSOOYqTCJ4=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "test-fallback";
+      url = "https://github.com/jesec/libtorrent/commit/a38205ce06aadc9908478ec3a9c8aefd9be06344.patch";
+      sha256 = "sha256-2TyQ9zYWZw6bzAfVZzTOQSkfIZnDU8ykgpRAFXscEH0=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ openssl zlib ];
+
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
+  '';
+  checkInputs = [ gtest ];
+
+  meta = with lib; {
+    description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)";
+    homepage = "https://github.com/jesec/libtorrent";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ winterqt ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix b/nixpkgs/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix
new file mode 100644
index 000000000000..eeff6e91399d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/p2p/rtorrent-jesec/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, libtorrent-jesec
+, curl
+, ncurses
+, xmlrpc_c
+, nlohmann_json
+, xmlRpcSupport ? true
+, jsonRpcSupport ? true
+}:
+let
+  inherit (lib) optional;
+in
+stdenv.mkDerivation rec {
+  pname = "rtorrent-jesec";
+  version = "0.9.8-r14";
+
+  src = fetchFromGitHub {
+    owner = "jesec";
+    repo = "rtorrent";
+    rev = "v${version}";
+    sha256 = "sha256-AbjzNIha3MkCZi6MuyUfPx9r3zeXeTUzkbD7uHB85lo=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libtorrent-jesec curl ncurses ]
+    ++ optional xmlRpcSupport xmlrpc_c
+    ++ optional jsonRpcSupport nlohmann_json;
+
+  cmakeFlags = [ "-DUSE_RUNTIME_CA_DETECTION=NO" ]
+    ++ optional (!xmlRpcSupport) "-DUSE_XMLRPC=NO"
+    ++ optional (!jsonRpcSupport) "-DUSE_JSONRPC=NO";
+
+  doCheck = true;
+  checkInputs = [ gtest ];
+
+  prePatch = ''
+    substituteInPlace src/main.cc \
+      --replace "/etc/rtorrent/rtorrent.rc" "${placeholder "out"}/etc/rtorrent/rtorrent.rc"
+  '';
+
+  postFixup = ''
+    mkdir -p $out/etc/rtorrent
+    cp $src/doc/rtorrent.rc $out/etc/rtorrent/rtorrent.rc
+  '';
+
+  meta = with lib; {
+    description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach (jesec's fork)";
+    homepage = "https://github.com/jesec/rtorrent";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ winterqt ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/phodav/default.nix b/nixpkgs/pkgs/tools/networking/phodav/default.nix
index dfaad9c1e978..9b1c3d005b97 100644
--- a/nixpkgs/pkgs/tools/networking/phodav/default.nix
+++ b/nixpkgs/pkgs/tools/networking/phodav/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
     description = "WebDav server implementation and library using libsoup";
     homepage = "https://wiki.gnome.org/phodav";
     license = licenses.lgpl21;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/polygraph/default.nix b/nixpkgs/pkgs/tools/networking/polygraph/default.nix
index addb72359297..74347ff83957 100644
--- a/nixpkgs/pkgs/tools/networking/polygraph/default.nix
+++ b/nixpkgs/pkgs/tools/networking/polygraph/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     description = "Performance testing tool for caching proxies, origin server accelerators, L4/7 switches, content filters, and other Web intermediaries";
     platforms = platforms.linux;
     license = licenses.asl20;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/qrcp/default.nix b/nixpkgs/pkgs/tools/networking/qrcp/default.nix
index fd6b79ecb216..f417bb496f40 100644
--- a/nixpkgs/pkgs/tools/networking/qrcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/qrcp/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "qrcp";
-  version = "0.8.1";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = "claudiodangelis";
     repo = "qrcp";
     rev = version;
-    sha256 = "001w15hj5xb7p9gpvw1216lp26g5018qdi8mq6i84akb7zfd2q01";
+    sha256 = "1m1xbb3x526j2v8m5m46km9zzj3dk9fvm5wckyqb8kxm4md12y50";
   };
 
   vendorSha256 = "1hn8c72fvih6ws1y2c4963pww3ld64m0yh3pmx62hwcy83bhb0v4";
diff --git a/nixpkgs/pkgs/tools/networking/rshijack/default.nix b/nixpkgs/pkgs/tools/networking/rshijack/default.nix
index e4bb7315a450..76a674dead0d 100644
--- a/nixpkgs/pkgs/tools/networking/rshijack/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rshijack/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0y01hi3jpfawqlqs8ka0vwfhjw5j5gkhk2nz5m13ns2h27bw20v7";
   };
 
-  cargoSha256 = "0l1kavacnjvi22l6pawgkqqxnjaizi3pddqkhwjshw4pzzixzvli";
+  cargoSha256 = "1rbp94wxr8kqjfg35hf44vn3qa0f0jcq8i50a8d0g5y2qf12h04d";
 
   meta = with lib; {
     description = "TCP connection hijacker";
diff --git a/nixpkgs/pkgs/tools/networking/s3rs/default.nix b/nixpkgs/pkgs/tools/networking/s3rs/default.nix
new file mode 100644
index 000000000000..2e707ed99163
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/s3rs/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, rustPlatform, python3, perl, openssl, Security, fetchFromGitHub, pkg-config }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "s3rs";
+  version = "0.4.8";
+
+  src = fetchFromGitHub {
+    owner = "yanganto";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-lYIE5yR7UNUjpqfwT6R0C0ninNvVZdatYd/n+yyGsms=";
+  };
+
+  cargoSha256 = "sha256-vCTJ7TClvuIP9IoqXwNFH7/u9jXt/Ue/Dhefx5rCgmA=";
+
+  nativeBuildInputs = [ python3 perl pkg-config ];
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "A s3 cli client with multi configs with diffent provider";
+    homepage = "https://github.com/yanganto/s3rs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ yanganto ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/siege/default.nix b/nixpkgs/pkgs/tools/networking/siege/default.nix
index beddd11e9034..3a7e64623afd 100644
--- a/nixpkgs/pkgs/tools/networking/siege/default.nix
+++ b/nixpkgs/pkgs/tools/networking/siege/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "siege";
-  version = "4.0.8";
+  version = "4.0.9";
 
   src = fetchurl {
     url = "http://download.joedog.org/siege/${pname}-${version}.tar.gz";
-    sha256 = "01qhw52kyqwidp5bckw4xmz4ldqdwkjci7k421qm68kk0mx9l48g";
+    sha256 = "0xzjfljhv9wcf58qw2c1sbpa5nqz1pb6rjpgvz7bxrv90n31bghx";
   };
 
   NIX_LDFLAGS = lib.optionalString stdenv.isLinux "-lgcc_s";
@@ -32,8 +32,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "HTTP load tester";
+    homepage = "https://www.joedog.org/siege-home/";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
-    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
index 4a0b3c133942..c24b9a860e17 100644
--- a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
@@ -11,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "slirp4netns";
-  version = "1.1.9";
+  version = "1.1.10";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "slirp4netns";
     rev = "v${version}";
-    sha256 = "sha256-jUxAkC9nMiDiHKyKtmdtOEyb9jqOEiy5D3NqymluX28=";
+    sha256 = "sha256-Qk5a8h9IkLwYRmPL8pFlyVsQ/xMZ2/wkq8zZ7yfrLEQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
index 68b4859a5fbb..13efa6e999cf 100644
--- a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bvLkeC5Hm1enaWJtYmnnINgpSO3tlg1SsEzeMSF9OXk=";
+    sha256 = "sha256-2LyCiW1MrAahpbzyxot0INPMzo0Vl/JToMZTinCQdgs=";
   };
 
-  cargoSha256 = "sha256-BUo3Y2tLvhOrk2w2GzYeWKpXH7TAOEdBI6vVtW2/cCs=";
+  cargoSha256 = "sha256-AGwiyC7Zf8KHQIHfHByL06sdbS4vEXUyj1wGw7Q1N9I=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/networking/spiped/default.nix b/nixpkgs/pkgs/tools/networking/spiped/default.nix
index 67ee51d66102..8b9d4c9e7b89 100644
--- a/nixpkgs/pkgs/tools/networking/spiped/default.nix
+++ b/nixpkgs/pkgs/tools/networking/spiped/default.nix
@@ -2,33 +2,30 @@
 
 stdenv.mkDerivation rec {
   pname = "spiped";
-  version = "1.5.0";
+  version = "1.6.1";
 
   src = fetchurl {
     url    = "https://www.tarsnap.com/spiped/${pname}-${version}.tgz";
-    sha256 = "1mxcbxifr3bnj6ga8lz88y4bhff016i6kjdzwbb3gzb2zcs4pxxj";
+    sha256 = "8d7089979db79a531a0ecc507b113ac6f2cf5f19305571eff1d3413e0ab33713";
   };
 
   buildInputs = [ openssl ];
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace libcperciva/cpusupport/Build/cpusupport.sh \
+      --replace "dirname" "${coreutils}/bin/dirname" \
       --replace "2>/dev/null" "2>stderr.log"
 
-    substituteInPlace POSIX/posix-l.sh       \
+    substituteInPlace libcperciva/POSIX/posix-l.sh       \
       --replace "rm" "${coreutils}/bin/rm"   \
-      --replace ">/dev/stderr" ">stderr.log" \
       --replace "2>/dev/null" "2>stderr.log"
-
-    substituteInPlace POSIX/posix-cflags.sh  \
-      --replace "rm" "${coreutils}/bin/rm"   \
-      --replace ">/dev/stderr" ">stderr.log" \
-      --replace "2>/dev/null" "2>stderr.log"
-  '';
+   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin $out/share/man/man1
     make install BINDIR=$out/bin MAN1DIR=$out/share/man/man1
+    runHook postInstall
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix b/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
new file mode 100644
index 000000000000..29faa448a3d0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "3.7.8";
+in
+fetchFromGitHub {
+  name = "stevenblack-blocklist-${version}";
+
+  owner = "StevenBlack";
+  repo = "hosts";
+  rev = version;
+  sha256 = "sha256-z+AkjWmqP4ASnpIAG/OyZC4W5xU5YOeFTsmdkLvPixQ=";
+
+  meta = with lib; {
+    description = "Unified hosts file with base extensions";
+    homepage = "https://github.com/StevenBlack/hosts";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/subfinder/default.nix b/nixpkgs/pkgs/tools/networking/subfinder/default.nix
index 2844cc2dac08..ae87d02fe236 100644
--- a/nixpkgs/pkgs/tools/networking/subfinder/default.nix
+++ b/nixpkgs/pkgs/tools/networking/subfinder/default.nix
@@ -1,19 +1,26 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "subfinder";
-  version = "2.3.0";
-
-  goPackagePath = "github.com/projectdiscovery/subfinder";
+  version = "2.4.8";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vjxi2h4njakyqkfzwwaacy37kqx66j2y3k5l752z9va73gv7xv1";
+    sha256 = "1g1j3il1a595g7z8blhvyd5l03h6kccl7mzrx51c33jz74cms5kn";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "1jmik0zmfy1n3g4yjkskiqzd28dpywf0hw6adgz2jshlhka58iw0";
+
+  modRoot = "./v2";
+
+  subPackages = [
+    "cmd/subfinder/"
+  ];
 
   meta = with lib; {
     description = "Subdomain discovery tool";
diff --git a/nixpkgs/pkgs/tools/networking/subfinder/deps.nix b/nixpkgs/pkgs/tools/networking/subfinder/deps.nix
deleted file mode 100644
index 16427eddcf6d..000000000000
--- a/nixpkgs/pkgs/tools/networking/subfinder/deps.nix
+++ /dev/null
@@ -1,165 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev =  "8991bc29aa16c548c550c7ff78260e27b9ab7c73";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath  = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev =  "03217c3e97663914aec3faafde50d081f197a0a2";
-      sha256 = "1kbp9fj6fxfql0ir59zb6v68l4bpwlmk76xm8vaikw1hp6y9bcss";
-    };
-  }
-  {
-    goPackagePath  = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev =  "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e";
-      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
-    };
-  }
-  {
-    goPackagePath  = "github.com/logrusorgru/aurora";
-    fetch = {
-      type = "git";
-      url = "https://github.com/logrusorgru/aurora";
-      rev =  "21d75270181e0436fee7bd58b991c212cf309068";
-      sha256 = "0vc9qdl6jzq7vazfqgz628gcgsvir56bdi2bkhl54pi92cz9cw0p";
-    };
-  }
-  {
-    goPackagePath  = "github.com/m-mizutani/urlscan-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/m-mizutani/urlscan-go";
-      rev =  "21d37c8d3d34d514f2ef49db9b59cc94f335e9c3";
-      sha256 = "1hpymd4ncp78hgpksnw8k27rp0lh832x1pyk3bhj5dm6xmh79g4c";
-    };
-  }
-  {
-    goPackagePath  = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev =  "1e224ff5dead8366ed6fcdcb832794be42e73f0e";
-      sha256 = "1iv9jznakz8f5swiir0z4zilr9ypavnsc0g4zi1r0vad6npy7zfl";
-    };
-  }
-  {
-    goPackagePath  = "github.com/modern-go/concurrent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/concurrent";
-      rev =  "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94";
-      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/modern-go/reflect2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/reflect2";
-      rev =  "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd";
-      sha256 = "1721y3yr3dpx5dx5ashf063qczk2awy5zjir1jvp1h5hn7qz4i49";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "ba968bfe8b2f7e042a574c888954fccecfa385b4";
-      sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath  = "github.com/rs/xid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rs/xid";
-      rev =  "15d26544def341f036c5f8dca987a4cbe575032c";
-      sha256 = "1vgw1dikqw273awcci6pzifs7shkl5ah4l88j1zjbnpgbiwzlx9j";
-    };
-  }
-  {
-    goPackagePath  = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev =  "839c75faf7f98a33d445d181f3018b5c3409a45e";
-      sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x";
-    };
-  }
-  {
-    goPackagePath  = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev =  "221dbe5ed46703ee255b1da0dec05086f5035f62";
-      sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "86a70503ff7e82ffc18c7b0de83db35da4791e6a";
-      sha256 = "0w7ih86lmll9gs2j0z3nmmy148i2yism9z53yp58zwa6d5pjahfn";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "5ee1b9f4859acd2e99987ef94ec7a58427c53bef";
-      sha256 = "0jvzqv6phv64rw4pj86x3j9kp5yx9p34fd38r46rb9464h69ba29";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "ce4227a45e2eb77e5c847278dcc6a626742e2945";
-      sha256 = "1s43wvqfml6ml5ks7iv2bis9d664g77mq86v7mfmjhn56x856g35";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "1f64d6156d11335c3f22d9330b0ad14fc1e789ce";
-      sha256 = "0k5xcwkd3wmcx54isk7ck9cwp8fapfhyqdz3f13kxp77cxqizazj";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "4206685974f28e3178b35fa198a59899aa4dee3a";
-      sha256 = "1ff5fd8x45cay9100ds63hxd32s7czsrric0ql6a1jrxczsgqk1g";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix b/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
index a33bb4865687..ed83e4d45549 100644
--- a/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tcpreplay";
-  version = "4.3.3";
+  version = "4.3.4";
 
   src = fetchurl {
     url = "https://github.com/appneta/tcpreplay/releases/download/v${version}/tcpreplay-${version}.tar.gz";
-    sha256 = "1plgjm3dr9rr5q71s7paqk2wgrvkihbk2yrf9g3zaks3m750497d";
+    sha256 = "sha256-7gZTEIBsIuL9NvAU4euzMbmKfsTblY6Rw9nL2gZA2Sw=";
   };
 
   buildInputs = [ libpcap ]
@@ -27,13 +27,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A suite of utilities for editing and replaying network traffic";
-    homepage = "http://tcpreplay.appneta.com/";
-    license = with licenses; [ bsd3 gpl3 ];
+    homepage = "https://tcpreplay.appneta.com/";
+    license = with licenses; [ bsdOriginalUC gpl3Only ];
     maintainers = with maintainers; [ eleanor ];
     platforms = platforms.unix;
-    knownVulnerabilities = [
-      "CVE-2020-24265" # https://github.com/appneta/tcpreplay/issues/616
-      "CVE-2020-24266" # https://github.com/appneta/tcpreplay/issues/617
-    ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix b/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
index 9d786d60b12e..9f1ac89ce8ec 100644
--- a/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0nn036in5j1h0vxkwif0lf7fn900zy4f4kxlzy6qdx3jakgmxvwh";
   };
 
-  cargoSha256 = "0v1hx6kjsmydx6ckjqj31y2gcpvax4mshwrniicplkka3q6hx9ra";
+  cargoSha256 = "14mmfj5my8gbsdhlhz17w8wjcc085c6dkj78kwr2hhsbcxp1vjgg";
 
   meta = with lib; {
     description = "DNS tool that aims to replace dig and nsupdate";
diff --git a/nixpkgs/pkgs/tools/networking/telepresence2/default.nix b/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
new file mode 100644
index 000000000000..97c758e19b4d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "telepresence2";
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "telepresenceio";
+    repo = "telepresence";
+    rev = "v${version}";
+    sha256 = "0pr6vm68jr5ld7hy2b4dwmjziir59vg137c74rdn1wlhq3n8vr41";
+  };
+
+  vendorSha256 = "0d0p879zchhrzrf6f5zc3vdcd5zi1ind7ibvb46y6wx6lp0f1nrp";
+
+  buildFlagsArray = ''
+    -ldflags=-s -w -X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}
+  '';
+
+  subPackages = [ "cmd/telepresence" ];
+
+  meta = with lib; {
+    description = "Local development against a remote Kubernetes or OpenShift cluster";
+    homepage = "https://www.getambassador.io/docs/telepresence/2.1/quick-start/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mausch ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/tinyproxy/default.nix b/nixpkgs/pkgs/tools/networking/tinyproxy/default.nix
index 2c6315b37c98..6aa05738498b 100644
--- a/nixpkgs/pkgs/tools/networking/tinyproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tinyproxy/default.nix
@@ -1,55 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, asciidoc, libxml2,
-  libxslt, docbook_xsl }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, perl, withDebug ? false }:
 
 stdenv.mkDerivation rec {
   pname = "tinyproxy";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
-    sha256 = "0gzapnllzyc005l3rs6iarjk1p5fc8mf9ysbck1mbzbd8xg6w35s";
+    sha256 = "13fhkmmrwzl657dq04x2wagkpjwdrzhkl141qvzr7y7sli8j0w1n";
     rev = version;
     repo = "tinyproxy";
     owner = "tinyproxy";
   };
 
-  nativeBuildInputs = [ autoreconfHook asciidoc libxml2 libxslt docbook_xsl ];
+  # perl is needed for man page generation.
+  nativeBuildInputs = [ autoreconfHook perl ];
 
-  # -z flag is not supported in darwin
-  preAutoreconf = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace configure.ac --replace \
-          'LDFLAGS="-Wl,-z,defs $LDFLAGS"' \
-          'LDFLAGS="-Wl, $LDFLAGS"'
-  '';
-
-  # See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=154624
-  postConfigure = ''
-    substituteInPlace docs/man5/Makefile --replace \
-          "-f manpage" \
-          "--xsltproc-opts=--nonet \\
-           -f manpage \\
-           -L"
-    substituteInPlace docs/man8/Makefile --replace \
-          "-f manpage" \
-          "--xsltproc-opts=--nonet \\
-           -f manpage \\
-           -L"
-  '';
-
-  configureFlags = [
-    "--disable-debug"      # Turn off debugging
-    "--enable-xtinyproxy"  # Compile in support for the XTinyproxy header, which is sent to any web server in your domain.
-    "--enable-filter"      # Allows Tinyproxy to filter out certain domains and URLs.
-    "--enable-upstream"    # Enable support for proxying connections through another proxy server.
-    "--enable-transparent" # Allow Tinyproxy to be used as a transparent proxy daemon.
-    "--enable-reverse"     # Enable reverse proxying.
-  ] ++
-  # See: https://github.com/tinyproxy/tinyproxy/issues/1
-  lib.optional stdenv.isDarwin "--disable-regexcheck";
+  configureFlags = lib.optionals withDebug [ "--enable-debug" ]; # Enable debugging support code and methods.
 
   meta = with lib; {
     homepage = "https://tinyproxy.github.io/";
     description = "A light-weight HTTP/HTTPS proxy daemon for POSIX operating systems";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = [ maintainers.carlosdagos ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/tnat64/default.nix b/nixpkgs/pkgs/tools/networking/tnat64/default.nix
new file mode 100644
index 000000000000..9b1c2c3aec11
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/tnat64/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "tnat64";
+  version = "0.05";
+
+  src = fetchFromGitHub {
+    owner = "andrewshadura";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "07lmzidbrd3aahk2jvv93cic9gf36pwmgfd63gmy6hjkxf9a6fw9";
+  };
+
+  postPatch = ''
+    # Fix usage of deprecated sys_errlist
+    substituteInPlace tnat64.c --replace 'sys_errlist[errno]' 'strerror(errno)'
+  '';
+
+  configureFlags = [ "--libdir=$(out)/lib" ];
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with lib; {
+    description = "IPv4 to IPv6 interceptor";
+    homepage = "https://github.com/andrewshadura/tnat64";
+    license = licenses.gpl2Plus;
+    longDescription = ''
+      TNAT64 is an interceptor which redirects outgoing TCPv4 connections
+      through NAT64, thus enabling an application running on an IPv6-only host
+      to communicate with the IPv4 world, even if that application does not
+      support IPv6 at all.
+    '';
+    platforms = platforms.unix;
+    badPlatforms = platforms.darwin;
+    maintainers = [ maintainers.rnhmjoj ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/tools/networking/tox-node/default.nix b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
index 0b682fa97c14..5ed6aa632d33 100644
--- a/nixpkgs/pkgs/tools/networking/tox-node/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
@@ -23,7 +23,7 @@ buildRustPackage rec {
 
   doCheck = false;
 
-  cargoSha256 = "sha256-kCT2ulB+c2OlsABkyXyzrHfD/G92EPCdTO34FR5oSws=";
+  cargoSha256 = "sha256-J/0KO33vZmOvm6V7qCXInuAJTbRqyy5/qj6p6dEmoas=";
 
   meta = with lib; {
     description = "A server application to run tox node written in pure Rust";
diff --git a/nixpkgs/pkgs/tools/networking/tracebox/default.nix b/nixpkgs/pkgs/tools/networking/tracebox/default.nix
index a5486252a8af..3d50b11f8e1a 100644
--- a/nixpkgs/pkgs/tools/networking/tracebox/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tracebox/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.tracebox.org/";
     description = "A middlebox detection tool";
     license = lib.licenses.gpl2;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tunnelto/default.nix b/nixpkgs/pkgs/tools/networking/tunnelto/default.nix
index c18243347898..e750327e4bab 100644
--- a/nixpkgs/pkgs/tools/networking/tunnelto/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tunnelto/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1vvb619cq3n88y2s8lncwcyrhb5s4gpjfiyia91pilcpnfdb04y2";
   };
 
-  cargoSha256 = "0k0ig3dynj46kh8g7d6bljcaalmp40pvdbhbjmlxrmwnjq6bhzcq";
+  cargoSha256 = "1pjd62yz7pavcinc96g2x0f5giadl9aqvz1i5vhfanh6mj6mrbl1";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = [ ]
diff --git a/nixpkgs/pkgs/tools/networking/unbound/default.nix b/nixpkgs/pkgs/tools/networking/unbound/default.nix
index 3c28133a2dbf..a0c774fb7341 100644
--- a/nixpkgs/pkgs/tools/networking/unbound/default.nix
+++ b/nixpkgs/pkgs/tools/networking/unbound/default.nix
@@ -7,6 +7,7 @@
 , libevent
 , dns-root-data
 , pkg-config
+, makeWrapper
   #
   # By default unbound will not be built with systemd support. Unbound is a very
   # commmon dependency. The transitive dependency closure of systemd also
@@ -34,6 +35,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
+  nativeBuildInputs = [ makeWrapper ];
+
   buildInputs = [ openssl nettle expat libevent ]
     ++ lib.optionals withSystemd [ pkg-config systemd ]
     ++ lib.optionals withDoH [ libnghttp2 ];
@@ -60,6 +63,8 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     make unbound-event-install
+    wrapProgram $out/bin/unbound-control-setup \
+      --prefix PATH : ${lib.makeBinPath [ openssl ]}
   '';
 
   preFixup = lib.optionalString (stdenv.isLinux && !stdenv.hostPlatform.isMusl) # XXX: revisit
diff --git a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
index 1cea3989ed26..b1a374f0349d 100644
--- a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
+++ b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
@@ -1,14 +1,17 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib
+, fetchFromGitHub
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "urlwatch";
-  version = "2.21";
+  version = "2.23";
 
   src = fetchFromGitHub {
-    owner  = "thp";
-    repo   = "urlwatch";
-    rev    = version;
-    sha256 = "1s6bigkwymxdp9bkgvwg3lbf465i6k8kmak2w7czf4mhwavcfq63";
+    owner = "thp";
+    repo = "urlwatch";
+    rev = version;
+    sha256 = "1ryygy7lalmwnv9kc8q4920gkdx878izy33a5dgxb780sy2qq8pg";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -16,11 +19,14 @@ python3Packages.buildPythonApplication rec {
     cssselect
     keyring
     lxml
+    markdown2
+    matrix-client
     minidb
+    pushbullet
     pycodestyle
+    pyppeteer
     pyyaml
     requests
-    pyppeteer
   ];
 
   # no tests
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/default.nix b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
index b525f78c4247..4c4b46c25206 100644
--- a/nixpkgs/pkgs/tools/networking/v2ray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
@@ -3,22 +3,22 @@
 }:
 
 let
-  version = "4.37.3";
+  version = "4.39.2";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "0gbkjlrx4ddaxb5f21m3sxbb55ilvm5kqlrys6ckrx0xyz9hj38y";
+    sha256 = "0rgwxsix2qy5w44s2ramalsn1bqznj2yra8bakcms8yl9yh0gbvd";
   };
 
-  vendorSha256 = "sha256-hPzIAXImAEJux1VRqCgslgn8giTf9BgZBcEZyF4Ut9Y=";
+  vendorSha256 = "sha256-1LEKg9kyF4QBrzLP5TyKmFLPBprJRNqGxtkAI1mHx4Y=";
 
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202104150006";
-      geoipSha256 = "0ppm5r4bycjm7q0vnxj62q8639kp06sfkkkrkk5gibyrwisr4vrp";
+      geoipRev = "202105270041";
+      geoipSha256 = "0g67lggc41himpnbbghm4xlnbv4dl2fyidxplh3pl6ajqb4wxwd5";
     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 = "20210415054336";
-      geositeSha256 = "0vs9fjbw45ipi7minh0r8zgh3pbwxqlrhwahpwyc6s0hyxgdi40w";
+      geositeRev = "20210527065138";
+      geositeSha256 = "1335zyc5zrwws46ldv0sqn51kpkfwfksbfw6hd53fakz0whxki0g";
     in fetchurl {
       url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
diff --git a/nixpkgs/pkgs/tools/networking/vde2/default.nix b/nixpkgs/pkgs/tools/networking/vde2/default.nix
index babbd88fd166..bc3be9122652 100644
--- a/nixpkgs/pkgs/tools/networking/vde2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vde2/default.nix
@@ -22,6 +22,10 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
+    MACOSX_DEPLOYMENT_TARGET=10.16
+  '';
+
   configureFlags = lib.optional (!withPython) "--disable-python";
 
   buildInputs = [ openssl libpcap ]
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
index 8bdcd8708d9f..5972d781bd15 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wireguard-tools";
-  version = "1.0.20210315";
+  version = "1.0.20210424";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${version}.tar.xz";
-    sha256 = "sha256-aCqgjriqhBInK7C7KapoKVfgj+zreGQzacMKwbMF1Og=";
+    sha256 = "sha256-0aGaE4EBb4wb5g32Wugakt7w41sb97Hqqkac7qE641M=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/networking/xh/default.nix b/nixpkgs/pkgs/tools/networking/xh/default.nix
index 7acdc2d7e9c5..0a62fee4bd74 100644
--- a/nixpkgs/pkgs/tools/networking/xh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/xh/default.nix
@@ -1,27 +1,35 @@
 { stdenv, lib, openssl, pkg-config, rustPlatform, fetchFromGitHub, Security
-, libiconv }:
+, libiconv, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "xh";
-  version = "0.9.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "ducaale";
     repo = "xh";
     rev = "v${version}";
-    sha256 = "cOlya3ngIoaoqzh0fIbNAjwO7S7wZCQk7WVqgZona8A=";
+    sha256 = "0b9cgjgzf1vxd9j6cz44g68xbaii8gb3973pvjf0p6barnqzvqvq";
   };
 
-  cargoSha256 = "5B2fY+S9z6o+CHCIK93+Yj8dpaiQi4PSMQw1mfXg1NA=";
+  cargoSha256 = "0lwxmqp0ww9wf9p3nd42q89j0g7ichpkcm0mb1p5hhagwqgb0z15";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ installShellFiles pkg-config ];
 
   buildInputs = if stdenv.isDarwin then [ Security libiconv ] else [ openssl ];
 
   # Get openssl-sys to use pkg-config
   OPENSSL_NO_VENDOR = 1;
 
-  checkFlagsArray = [ "--skip=basic_options" ];
+  postInstall = ''
+    installShellCompletion --cmd xh \
+      --bash completions/xh.bash \
+      --fish completions/xh.fish \
+      --zsh completions/_xh
+
+    # https://github.com/ducaale/xh#xh-and-xhs
+    ln -s $out/bin/xh $out/bin/xhs
+  '';
 
   # Nix build happens in sandbox without internet connectivity
   # disable tests as some of them require internet due to nature of application
@@ -29,10 +37,11 @@ rustPlatform.buildRustPackage rec {
   doInstallCheck = true;
   postInstallCheck = ''
     $out/bin/xh --help > /dev/null
+    $out/bin/xhs --help > /dev/null
   '';
 
   meta = with lib; {
-    description = "Yet another HTTPie clone in Rust";
+    description = "Friendly and fast tool for sending HTTP requests";
     homepage = "https://github.com/ducaale/xh";
     changelog = "https://github.com/ducaale/xh/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix b/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
index 853bf87346f2..acbb0be3b9cf 100644
--- a/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
+++ b/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
@@ -19,7 +19,7 @@ in rustPlatform.buildRustPackage rec {
     sha256 = "0w6khry1ncyqy5h6996xw1f6viw4wdrfji5m8lz9gm487xlq5v0b";
   };
 
-  cargoSha256 = "0d4fz0rhqy1n30wfl2pmf76zpp21agr3h0hswp3r5bfnxqp6i54h";
+  cargoSha256 = "05lcm5fzsn3h6dl2n2yq52r2vagrgmab08kafinz2kdcvv05wpk5";
 
   # The BLAKE3 C library is intended to be built by the project depending on it
   # rather than as a standalone library.
diff --git a/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix b/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
index 46020233ff1d..a9c83305df3e 100644
--- a/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-output-monitor/default.nix
@@ -5,11 +5,11 @@
 }:
 mkDerivation rec {
   pname = "nix-output-monitor";
-  version = "1.0.3.0";
+  version = "1.0.3.1";
   src = fetchFromGitHub {
     owner = "maralorn";
     repo = "nix-output-monitor";
-    sha256 = "1gidg03cwz8ss370bgz4a2g9ldj1lap5ws7dmfg6vigpx8mxigpb";
+    sha256 = "1kkf6cqq8aba8vmfcww30ah9j44bwakanyfdb6595vmaq5hrsq92";
     rev = "v${version}";
   };
   isLibrary = true;
diff --git a/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix b/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
index 353aafa2a7e4..b0fba9d047ab 100644
--- a/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     gtk3
   ];
 
-  cargoSha256 = "1pbyi7knqmqxbpi3jhl492is9zkaxdpdnmbm11nqwc1nvvbjblzc";
+  cargoSha256 = "1i9sjs77v1c3lch93pzjgr1zl0k1mlwkdpf3zfp13hyjn6zpldnj";
 
   meta = with lib; {
     description = "GTK viewer for the output of `nix store --query --tree`";
diff --git a/nixpkgs/pkgs/tools/nix/nixdoc/default.nix b/nixpkgs/pkgs/tools/nix/nixdoc/default.nix
index d97a3d5bae3a..ef5ddc528ab8 100644
--- a/nixpkgs/pkgs/tools/nix/nixdoc/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixdoc/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs =  lib.optional stdenv.isDarwin [ darwin.Security ];
 
-  cargoSha256 = "1vamwynkbnffs8ryr2zb1a41cymjvr8zzh1bifyh9hpkx2k11rs3";
+  cargoSha256 = "1nv6g8rmjjbwqmjkrpqncypqvx5c7xp2zlx5h6rw2j9d1wlys0v5";
 
   meta = with lib; {
     description = "Generate documentation for Nix functions";
diff --git a/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix b/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix
index 871e223eb4be..004a73475221 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixos-generators/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "nixos-generators";
-  version = "1.2.0";
+  version = "1.3.0";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nixos-generators";
     rev = version;
-    sha256 = "1iwc39hzvzzyndxwbnl3fck7phxnjpnhy8zn4nyp8is1fiw0648v";
+    sha256 = "1gbj2jw7zv3mnq1lyj4q53jpfj642jy7lvg0kp060znvhws3370y";
   };
   nativeBuildInputs = [ makeWrapper ];
   installFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/tools/nix/nixos-install-tools/default.nix b/nixpkgs/pkgs/tools/nix/nixos-install-tools/default.nix
new file mode 100644
index 000000000000..a129fb345215
--- /dev/null
+++ b/nixpkgs/pkgs/tools/nix/nixos-install-tools/default.nix
@@ -0,0 +1,67 @@
+{
+  buildEnv,
+  lib,
+  man,
+  nixos,
+  # TODO: replace indirect self-reference by proper self-reference
+  #       https://github.com/NixOS/nixpkgs/pull/119942
+  nixos-install-tools,
+  runCommand,
+}:
+let
+  inherit (nixos {}) config;
+  version = config.system.nixos.version;
+in
+(buildEnv {
+  name = "nixos-install-tools-${version}";
+  paths = lib.attrValues {
+    # See nixos/modules/installer/tools/tools.nix
+    inherit (config.system.build)
+      nixos-install nixos-generate-config nixos-enter;
+
+    # Required for --help.
+    inherit (config.system.build.manual) manpages;
+  };
+
+  extraOutputsToInstall = ["man"];
+
+  meta = {
+    description = "The essential commands from the NixOS installer as a package";
+    longDescription = ''
+      With this package, you get the commands like nixos-generate-config and
+      nixos-install that you would otherwise only find on a NixOS system, such
+      as an installer image.
+
+      This way, you can install NixOS using a machine that only has Nix.
+    '';
+    license = lib.licenses.mit;
+    homepage = "https://nixos.org";
+    platforms = lib.platforms.linux;
+  };
+
+  passthru.tests = {
+    nixos-install-help = runCommand "test-nixos-install-help" {
+      nativeBuildInputs = [
+        man
+        nixos-install-tools
+      ];
+      meta.description = ''
+        Make sure that --help works. It's somewhat non-trivial because it
+        requires man.
+      '';
+    } ''
+      nixos-install --help | grep -F 'NixOS Reference Pages'
+      nixos-install --help | grep -F 'configuration.nix'
+      nixos-generate-config --help | grep -F 'NixOS Reference Pages'
+      nixos-generate-config --help | grep -F 'hardware-configuration.nix'
+
+      # FIXME: Tries to call unshare, which it must not do for --help
+      # nixos-enter --help | grep -F 'NixOS Reference Pages'
+
+      touch $out
+    '';
+  };
+}).overrideAttrs (o: {
+  inherit version;
+  pname = "nixos-install-tools";
+})
diff --git a/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix b/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
index f1ea25e3bfd8..b203d2992fbf 100644
--- a/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0dqirvn8pq6ssxjlf6rkqcsx6ndasws93lz2v9f9s01k9ny8x8mq";
   };
 
-  cargoSha256 = "138aq64rb08s96q3xqcmvl3ax78rhjkwfa6v9iz8ywl32066gahb";
+  cargoSha256 = "0mm79hfh8p1rs02pkpcv25p59b24q1rymwh11yxry4d4f12b6aw0";
 
   meta = with lib; {
     description = "Nix code formatter for nixpkgs";
diff --git a/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix b/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
index acdf230749c8..4aebb35bc935 100644
--- a/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
+++ b/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
     })
   ];
 
-  cargoSha256 = "vaG+0t+XAckV9F4iIgcTkbIUurxdQsTCfOnRnrOKoRc=";
+  cargoSha256 = "sha256-p6W9NtOKzVViyFq5SQvnIsik7S3mqUqxI/05OiC+P+Q=";
 
   meta = with lib; {
     description = "Nix Hash Converter";
diff --git a/nixpkgs/pkgs/tools/package-management/auditwheel/default.nix b/nixpkgs/pkgs/tools/package-management/auditwheel/default.nix
new file mode 100644
index 000000000000..7c633698e389
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/auditwheel/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, bzip2
+, patchelf
+, python3
+, gnutar
+, unzip
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "auditwheel";
+  version = "4.0.0";
+
+  disabled = python3.pkgs.pythonOlder "3.6";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "03a079fe273f42336acdb5953ff5ce7578f93ca6a832b16c835fe337a1e2bd4a";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    pbr
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pyelftools
+    setuptools
+  ];
+
+  # integration tests require docker and networking
+  disabledTestPaths = [ "tests/integration" ];
+
+  checkInputs = with python3.pkgs; [
+    pretend
+    pytestCheckHook
+  ];
+
+  # ensure that there are no undeclared deps
+  postCheck = ''
+    PATH= PYTHONPATH= $out/bin/auditwheel --version > /dev/null
+  '';
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ bzip2 gnutar patchelf unzip ])
+  ];
+
+  meta = with lib; {
+    description = "Auditing and relabeling cross-distribution Linux wheels";
+    homepage = "https://github.com/pypa/auditwheel";
+    license = with licenses; [
+      mit  # auditwheel and nibabel
+      bsd2  # from https://github.com/matthew-brett/delocate
+      bsd3  # from https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-projects/pax-utils/lddtree.py
+    ];
+    maintainers = with maintainers; [ davhau ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
index 3cb5340d1d7c..d2acffc2009b 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitHub, stdenv, libiconv }:
 rustPlatform.buildRustPackage rec {
   pname = "cargo-about";
   version = "0.3.0";
@@ -10,7 +10,9 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-MsXNneKj2xCci1guj1TKcIrX7XByJ5/lWUmjxAsgzPY=";
   };
 
-  cargoSha256 = "sha256-NdzgIB6uXMtGiLwOACEIeAb4iv7mYLnwRte3M/TkSMA=";
+  cargoSha256 = "sha256-ssAmY+o+/2+C9sol+PeFlpNwVuN5JNoofgkr3cUW+S4=";
+
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description = "Cargo plugin to generate list of all licenses for a crate";
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
index d5be54b71b05..6fa0dd38127c 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
@@ -1,16 +1,16 @@
 { stdenv, lib, rustPlatform, fetchFromGitHub, openssl, pkg-config, Security, libiconv }:
 rustPlatform.buildRustPackage rec {
   pname = "cargo-audit";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "RustSec";
     repo = "cargo-audit";
     rev = "v${version}";
-    sha256 = "sha256-w3wKUAAp9z4iQbx16z5chpKHYxCDLZzJesnIct2Qy4g=";
+    sha256 = "sha256-apIhTgS7xzDGq2OE1o46bEQxGwkV7bTmzSxy85wHwyo=";
   };
 
-  cargoSha256 = "sha256-ychF3qbwEjumLyqc+xDI8bbKzvdoRYF/X/idlk+JxDE=";
+  cargoSha256 = "sha256-b4x5IxoT5KZnY6Pw3VEs/DuCPen6MlgQ2lSIxRDU+5U=";
 
   buildInputs = [ openssl libiconv ] ++ lib.optionals stdenv.isDarwin [ Security ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
index f171a1500454..5a1e621d12a0 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
@@ -3,23 +3,24 @@
 , fetchFromGitHub
 , rustPlatform
 , rust
+, libiconv
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "1.29.1";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "mmstick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oWivGy2azF9zpeZ0UAi7Bxm4iXFWAjcBG0pN7qtkSU8=";
+    sha256 = "sha256-rAmG6Aj0D9dHVueh1BN1Chhit+XFhqGib1WTvMDy0LI=";
   };
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  cargoSha256 = "0j9frvcmy9hydw73v0ffr0bjvq2ykylnpmiw700z344djpaaa08y";
+  cargoSha256 = "sha256-MEpyEdjLWNZvqE7gJLvQ169tgmJRzec4vqQI9fF3xr8=";
 
   preCheck = ''
     substituteInPlace tests/command.rs \
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
index 682cfde78fab..af0424c5bec2 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1cdmgdag9chjifsp2hxr9j15hb6l6anqq38y8srj1nk047a3kbcw";
   };
 
-  cargoSha256 = "1gjbvgpicy9n311qh9a5n0gdyd2rnc0b9zypnzk2ibn1pgaikafy";
+  cargoSha256 = "15pf4x2aw8sl65g63cz4yv9y78yc2wi25h9khpqx6i7gyd7dxbsc";
 
   meta = with lib; {
     description = "Cargo subcommand for building dependency graphs of Rust projects";
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
index 78e428b5c7e9..de5abca29bec 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256:0fh1lq793k4ddpqsf2av447hcb74vcq53afkm3g4672k48mjjw1y";
   };
 
-  cargoSha256 = "1h1sy54p7zxijydnhzvkxli90d72biv1inni17licb0vb9dihmnf";
+  cargoSha256 = "0ah3zjx36ibax4gi66g13finh4m2k0aidxkg2nxx1c2aqj847mm1";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix
index 5bca56d993d9..37fd43a1bcf1 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0myg26cssmbakz53dl61lswsbaqnjqlbc30c2571pq8f7gvz2qv5";
   };
 
-  cargoSha256 = "0fzj88iy57c39yi8pf3agfmsf2dck06f0yqmlnsaxvvp4cknkw1n";
+  cargoSha256 = "0wyvly7aq4njlxnmgpfgbh08fxgqh85kw7d938pm6qxmj27zn4p2";
 
   meta = with lib; {
     description = "A cargo subcommand for creating GraphViz DOT files and dependency graphs";
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix
index 8b2dbe3e4892..c37a73063680 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0hqplgj3i8js42v2kj44khk543a93sk3n6wlfpv3c84pdqlm29br";
   };
 
-  cargoSha256 = "1dzm33cfriwgq4zvg6l6y76d5lp9hpcywdkwpl92qyjqg1hx8a1w";
+  cargoSha256 = "0m5gfyjzzwd8wkbb388vmd785dy334x0migq3ssi7dlah9zx62bj";
   doCheck = false;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix
index ba461398e66f..f5fcf37ac70b 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoPatches = [ ./add-Cargo.lock.patch ];
 
-  cargoSha256 = "0bkaj54avvib1kipk8ky7gyxfs00qm80jd415zp53hhvinphzb5v";
+  cargoSha256 = "1gda6m5g545fgx8ash96w408mxi5rb8hrv73c0xs0gx7hfyx5zcj";
 
   meta = with lib; {
     description = "Cargo subcommand to see license of dependencies";
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
index 80c69d74abf2..fe8f743c71cc 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchFromGitHub {
     owner = "kbknapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-80H0yblEcxP6TTil0dJPZhvMivDLuyvoV0Rmcrykgjs=";
+    sha256 = "sha256-Cd0QWFeAAHSkeCVQvb+Fsg5nBoutV1k1kQpMkWpci2E=";
   };
 
-  cargoSha256 = "sha256-RACdzaCWfm5rrIX0wrvKSmhLQt1a+2MQqrjTx+etpGo=";
+  cargoSha256 = "sha256-VngJMDVKIV8+ODHia2U2gKKPKskyKiuKhSnO6NJsJHI=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
index 7a900860110b..da57ae347143 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.13.10";
+  version = "0.13.11";
 
   src = fetchFromGitHub {
     owner = "sunng87";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "sha256-WWU+aNMNOOstHiGRE5nj2biWCL3uwyqJKgt0xCAfS0s=";
+    sha256 = "sha256-v0XKLwxUIxBt9hIUzprz+VsxCRifH1/SbNcI0sH2ENM=";
   };
 
-  cargoSha256 = "sha256-G3UgcFW0WxvCYRvHCTuRpSCOT3XdvdZCN53HhpWQxS4=";
+  cargoSha256 = "sha256-zbET6UsV29hAL83rw3XRgrcM5FABFNI3w3Kbd61FS7E=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
index 892de0ade273..425cef9353d9 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoPatches = [ ./0001-Generate-lockfile-for-cargo-update-v4.1.2.patch ];
-  cargoSha256 = "150fpb7wyyxi40z4wai6c94mn84g700c2228316g6y8i07c8ix0d";
+  cargoSha256 = "1viqdl8zncxyyxsd8xhx1jxqh24g03nn6fyi0iwwba5vvmif1rak";
 
   nativeBuildInputs = [ cmake installShellFiles pkg-config ronn ];
 
diff --git a/nixpkgs/pkgs/tools/package-management/createrepo_c/default.nix b/nixpkgs/pkgs/tools/package-management/createrepo_c/default.nix
index ed181d2484ea..fc0628e09088 100644
--- a/nixpkgs/pkgs/tools/package-management/createrepo_c/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/createrepo_c/default.nix
@@ -1,18 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, expat, glib, curl, libxml2, python3, rpm, openssl, sqlite, file, xz, pcre, bash-completion }:
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, expat, glib, curl, libxml2, python3, rpm
+, openssl, sqlite, file, xz, pcre, bash-completion, zstd, zchunk, libmodulemd
+}:
 
 stdenv.mkDerivation rec {
   pname = "createrepo_c";
-  version = "0.11.1";
+  version = "0.17.2";
 
   src = fetchFromGitHub {
     owner  = "rpm-software-management";
     repo   = "createrepo_c";
     rev    = version;
-    sha256 = "0cmysc7gdd2czagl4drfh9gin6aa2847vgi30a3p0cfqvczf9cm6";
+    sha256 = "sha256-rcrJjcWj+cTAE3k11Ynr7CQCOWD+rb60lcar0G2w06A=";
   };
 
   patches = [
+    # Use the output directory to install the bash completions.
     ./fix-bash-completion-path.patch
+    # Use the output directory to install the python modules.
     ./fix-python-install-path.patch
   ];
 
@@ -23,15 +27,15 @@ stdenv.mkDerivation rec {
       --replace "@PYTHON_INSTALL_DIR@" "$out/${python3.sitePackages}"
   '';
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config rpm ];
 
-  buildInputs = [ bzip2 expat glib curl libxml2 python3 rpm openssl sqlite file xz pcre bash-completion ];
+  buildInputs = [ bzip2 expat glib curl libxml2 python3 openssl sqlite file xz pcre bash-completion zstd zchunk libmodulemd ];
 
   meta = with lib; {
     description = "C implementation of createrepo";
-    homepage    = "http://rpm-software-management.github.io/createrepo_c/";
-    license     = licenses.gpl2;
-    platforms   = platforms.linux;
+    homepage    = "https://rpm-software-management.github.io/createrepo_c/";
+    license     = licenses.gpl2Plus;
+    platforms   = platforms.unix;
     maintainers = with maintainers; [ copumpkin ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-bash-completion-path.patch b/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-bash-completion-path.patch
index e184cc8facc0..2539ec5d338d 100644
--- a/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-bash-completion-path.patch
+++ b/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-bash-completion-path.patch
@@ -1,11 +1,11 @@
---- createrepo_c-0.10.0-src.orig/CMakeLists.txt	2017-03-19 11:01:02.703173617 +0100
-+++ createrepo_c-0.10.0-src/CMakeLists.txt	2017-03-19 11:02:38.617448248 +0100
-@@ -100,7 +100,7 @@
- 
- pkg_check_modules(BASHCOMP bash-completion)
- if (BASHCOMP_FOUND)
--    execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=completionsdir bash-completion OUTPUT_VARIABLE BASHCOMP_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
-+    SET(BASHCOMP_DIR "@BASHCOMP_DIR@")
-     message("Bash completion directory: ${BASHCOMP_DIR}")
-     INSTALL(FILES createrepo_c.bash DESTINATION ${BASHCOMP_DIR} RENAME createrepo_c)
-     INSTALL(CODE "
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -117,7 +117,7 @@ OPTION(ENABLE_BASHCOMP "Install Bash autocompletions?" ON)
+ IF (ENABLE_BASHCOMP)
+     pkg_check_modules(BASHCOMP bash-completion)
+     IF (BASHCOMP_FOUND)
+-        execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=completionsdir bash-completion OUTPUT_VARIABLE BASHCOMP_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
++        SET(BASHCOMP_DIR "@BASHCOMP_DIR@")
+         message("Bash completion directory: ${BASHCOMP_DIR}")
+         INSTALL(FILES createrepo_c.bash DESTINATION ${BASHCOMP_DIR} RENAME createrepo_c)
+         INSTALL(CODE "
diff --git a/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-python-install-path.patch b/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-python-install-path.patch
index a247c6d9fe47..b8739622e3c0 100644
--- a/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-python-install-path.patch
+++ b/nixpkgs/pkgs/tools/package-management/createrepo_c/fix-python-install-path.patch
@@ -1,11 +1,11 @@
---- createrepo_c-0.10.0-src.orig/src/python/CMakeLists.txt	2017-03-19 10:50:33.796342953 +0100
-+++ createrepo_c-0.10.0-src/src/python/CMakeLists.txt	2017-03-19 10:53:51.207580073 +0100
-@@ -19,7 +19,7 @@
-     FIND_PACKAGE(PythonInterp 3.0 REQUIRED)
- endif()
- 
+--- a/src/python/CMakeLists.txt
++++ b/src/python/CMakeLists.txt
+@@ -14,7 +14,7 @@ if (NOT SKBUILD)
+     FIND_PACKAGE(PythonLibs 3 REQUIRED)
+ endif (NOT SKBUILD)
+
 -EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
 +SET(PYTHON_INSTALL_DIR "@PYTHON_INSTALL_DIR@")
  INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
- 
+
  MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}")
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
index ba3c51822e90..8a4d5d44b8dd 100644
--- a/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
@@ -1,10 +1,10 @@
 {lib, stdenv, fetchurl, apacheAnt, jdk, axis2, dbus_java }:
 
 stdenv.mkDerivation {
-  name = "DisnixWebService-0.10";
+  name = "DisnixWebService-0.10.1";
   src = fetchurl {
-    url = "https://github.com/svanderburg/DisnixWebService/releases/download/DisnixWebService-0.10/DisnixWebService-0.10.tar.gz";
-    sha256 = "0m451msd127ay09yb8rbflg68szm8s4hh65j99f7s3mz375vc114";
+    url = "https://github.com/svanderburg/DisnixWebService/releases/download/DisnixWebService-0.10.1/DisnixWebService-0.10.1.tar.gz";
+    sha256 = "02jxbgn9a0c9cr6knzp78bp9wiywzczy89wav7yxhg79vff8a1gr";
   };
   buildInputs = [ apacheAnt jdk ];
   PREFIX = "\${env.out}";
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/default.nix
index 14be0924f271..c7b3b72e2ea1 100644
--- a/nixpkgs/pkgs/tools/package-management/disnix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/disnix/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, libxml2, libxslt, getopt, gettext, nixUnstable, dysnomia, libintl, libiconv, help2man, doclifter, docbook5, dblatex, doxygen, libnixxml, autoreconfHook }:
+{ lib, stdenv, fetchurl, pkg-config, glib, libxml2, libxslt, getopt, gettext, dysnomia, libintl, libiconv }:
 
 stdenv.mkDerivation {
-  name = "disnix-0.10";
+  name = "disnix-0.10.1";
 
   src = fetchurl {
-    url = "https://github.com/svanderburg/disnix/releases/download/disnix-0.10/disnix-0.10.tar.gz";
-    sha256 = "0mciqbc2h60nc0i6pd36w0m2yr96v97ybrzrqzh5f67ac1f0gqwg";
+    url = "https://github.com/svanderburg/disnix/releases/download/disnix-0.10.1/disnix-0.10.1.tar.gz";
+    sha256 = "13rjw1va7l8w7ir73xqxq4zb3ig2iwhiwxhp5dbfv0z3gnqizghq";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ glib libxml2 libxslt getopt nixUnstable libintl libiconv dysnomia ];
+  buildInputs = [ glib libxml2 libxslt getopt libintl libiconv dysnomia ];
 
   meta = {
     description = "A Nix-based distributed service deployment tool";
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix
index 1b9d2eaefcd8..f9a8221e5f01 100644
--- a/nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/disnix/disnixos/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, dysnomia, disnix, socat, pkg-config, getopt }:
 
 stdenv.mkDerivation {
-  name = "disnixos-0.9";
+  name = "disnixos-0.9.1";
 
   src = fetchurl {
-    url = "https://github.com/svanderburg/disnixos/releases/download/disnixos-0.9/disnixos-0.9.tar.gz";
-    sha256 = "0vllm5a8d9dvz5cjiq1mmkc4r4vnljabq42ng0ml85sjn0w7xvm7";
+    url = "https://github.com/svanderburg/disnixos/releases/download/disnixos-0.9.1/disnixos-0.9.1.tar.gz";
+    sha256 = "1n2psq1b8bg340i2i0yf5xy2rf78fwqd3wj342wcmq09cv2v8d1b";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
index b4c3851a50ff..924ed8252811 100644
--- a/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/disnix/dydisnix/default.nix
@@ -1,25 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool , pkg-config, glib, libxml2, libxslt, getopt, libiconv, gettext, nix, disnix, libnixxml }:
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, pkg-config, glib
+, libxml2, libxslt, getopt, libiconv, gettext, nix, disnix
+}:
 
 stdenv.mkDerivation rec {
-  version="2020-07-04";
+  version = "unstable-2020-11-02";
   name = "dydisnix-${version}";
 
   src = fetchFromGitHub {
     owner = "svanderburg";
     repo = "dydisnix";
-    rev = "e99091f1c2329d562097e35faedee80622d387f0";
-    sha256 = "sha256-XKab2hNGtWDkIEMxE1vMvqQBTP9BvHTabBVfzpH57h0=";
+    rev = "12ca1516bc1e5d161ac68f5d8252a0a2f353c8cf";
+    sha256 = "00f341274hwwil8mlgcgq331vfca9sscvpdbgkxsjvbhcqd8qa52";
   };
 
   nativeBuildInputs = [ pkg-config autoconf automake libtool ];
-  buildInputs = [ glib libxml2 libxslt getopt nix disnix libiconv gettext libnixxml ];
+  buildInputs = [ glib libxml2 libxslt getopt nix disnix libiconv gettext ];
+
   preConfigure = ''
     ./bootstrap
   '';
 
   meta = {
     description = "A toolset enabling self-adaptive redeployment on top of Disnix";
-    longDescription = "Dynamic Disnix is a (very experimental!) prototype extension framework for Disnix supporting dynamic (re)deployment of service-oriented systems.";
+    longDescription = ''
+      Dynamic Disnix is a (very experimental!) prototype extension framework for Disnix supporting dynamic (re)deployment of service-oriented systems.
+    '';
     license = lib.licenses.lgpl21Plus;
     maintainers = [ lib.maintainers.tomberek ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix
index 56ba16afb47b..d75683a87445 100644
--- a/nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/disnix/dysnomia/default.nix
@@ -1,5 +1,11 @@
 { lib, stdenv, fetchurl, netcat
-, systemd ? null, ejabberd ? null, mysql ? null, postgresql ? null, subversion ? null, mongodb ? null, mongodb-tools ? null, influxdb ? null, supervisor ? null, docker ? null
+
+# Optional packages
+, systemd ? null, ejabberd ? null, mysql ? null, postgresql ? null, subversion ? null
+, mongodb ? null, mongodb-tools ? null, influxdb ? null, supervisor ? null, docker ? null
+, nginx ? null, s6-rc ? null, xinetd ? null
+
+# Configuration flags
 , enableApacheWebApplication ? false
 , enableAxis2WebService ? false
 , enableEjabberdDump ? false
@@ -10,7 +16,10 @@
 , enableMongoDatabase ? false
 , enableInfluxDatabase ? false
 , enableSupervisordProgram ? false
-, enableDockerContainer ? true
+, enableDockerContainer ? false
+, enableNginxWebApplication ? false
+, enableXinetdService ? false
+, enableS6RCService ? false
 , enableLegacy ? false
 , catalinaBaseDir ? "/var/tomcat"
 , jobTemplate ? "systemd"
@@ -25,16 +34,17 @@ assert enableMongoDatabase -> (mongodb != null && mongodb-tools != null);
 assert enableInfluxDatabase -> influxdb != null;
 assert enableSupervisordProgram -> supervisor != null;
 assert enableDockerContainer -> docker != null;
+assert enableNginxWebApplication -> nginx != null;
+assert enableS6RCService -> s6-rc != null;
+assert enableXinetdService -> xinetd != null;
 
 stdenv.mkDerivation {
-  name = "dysnomia-0.10";
+  name = "dysnomia-0.10.1";
   src = fetchurl {
-    url = "https://github.com/svanderburg/dysnomia/releases/download/dysnomia-0.10/dysnomia-0.10.tar.gz";
-    sha256 = "19zg4nhn0f9v4i7c9hhan1i4xv3ljfpl2d0s84ph8byiscvhyrna";
+    url = "https://github.com/svanderburg/dysnomia/releases/download/dysnomia-0.10.1/dysnomia-0.10.1.tar.gz";
+    sha256 = "0w9601g8zpaxrmynx6mh8zz85ldpb8psp7cc6ls8v3srjpj1l5n3";
   };
 
-  preConfigure = if enableEjabberdDump then "export PATH=$PATH:${ejabberd}/sbin" else "";
-
   configureFlags = [
      (if enableApacheWebApplication then "--with-apache" else "--without-apache")
      (if enableAxis2WebService then "--with-axis2" else "--without-axis2")
@@ -47,6 +57,10 @@ stdenv.mkDerivation {
      (if enableInfluxDatabase then "--with-influxdb" else "--without-influxdb")
      (if enableSupervisordProgram then "--with-supervisord" else "--without-supervisord")
      (if enableDockerContainer then "--with-docker" else "--without-docker")
+     (if enableNginxWebApplication then "--with-nginx" else "--without-nginx")
+     (if enableXinetdService then "--with-xinetd" else "--without-xinetd")
+     (if enableS6RCService then "--with-s6-rc" else "--without-s6-rc")
+     (if stdenv.isDarwin then "--with-launchd" else "--without-launchd")
      "--with-job-template=${jobTemplate}"
    ] ++ lib.optional enableLegacy "--enable-legacy";
 
@@ -56,11 +70,13 @@ stdenv.mkDerivation {
     ++ lib.optional enableMySQLDatabase mysql.out
     ++ lib.optional enablePostgreSQLDatabase postgresql
     ++ lib.optional enableSubversionRepository subversion
-    ++ lib.optional enableMongoDatabase mongodb
-    ++ lib.optional enableMongoDatabase mongodb-tools
+    ++ lib.optionals enableMongoDatabase [ mongodb mongodb-tools ]
     ++ lib.optional enableInfluxDatabase influxdb
     ++ lib.optional enableSupervisordProgram supervisor
-    ++ lib.optional enableDockerContainer docker;
+    ++ lib.optional enableDockerContainer docker
+    ++ lib.optional enableNginxWebApplication nginx
+    ++ lib.optional enableS6RCService s6-rc
+    ++ lib.optional enableXinetdService xinetd;
 
   meta = {
     description = "Automated deployment of mutable components and services for Disnix";
diff --git a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
index 0026dd37ca43..a4e9ef41fc96 100644
--- a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.20.7.1";
+  version = "1.20.9";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
-    sha256 = "sha256-Cq0t5of3l++OvavHuv0W3BSX8c4jvZFG+apz85alY28=";
+    sha256 = "sha256-XOJCgw8hO1Yg8I5sQYOtse9Nydoo0xmIonyHxx/lNM4=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/package-management/emplace/default.nix b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
index 735c940f18b1..6b7f51d3ab69 100644
--- a/nixpkgs/pkgs/tools/package-management/emplace/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-lBCGSeEVxlXrn1RHqMEYSXLOehJw/DiL+33nx4+rV2Y=";
   };
 
-  cargoSha256 = "sha256-QL71pJ5RBWRRse5DXwctMvu+z818jEEQjaNBXHLy20Y=";
+  cargoSha256 = "sha256-7LpUaOeBTIpi6A3cTRQAc1QostRgJp6bOf+AXy3mjyE=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/nixpkgs/pkgs/tools/package-management/libdnf/darwin.patch b/nixpkgs/pkgs/tools/package-management/libdnf/darwin.patch
deleted file mode 100644
index 53f2c04f9ef4..000000000000
--- a/nixpkgs/pkgs/tools/package-management/libdnf/darwin.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git src/libdnf/config.h src/libdnf/config.h
-index 16121f6f..737d0bc4 100644
---- src/libdnf/config.h
-+++ src/libdnf/config.h
-@@ -18,7 +18,12 @@
-  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-  */
- 
-+
-+#ifdef __APPLE__
-+#include <stdint.h>
-+#else
- #include <bits/wordsize.h>
-+#endif
-
- 
- #if __WORDSIZE == 32
- #include "config-32.h"
-diff --git src/libdnf/hy-iutil.cpp src/libdnf/hy-iutil.cpp
-index 497c560d..5de077fa 100644
---- src/libdnf/hy-iutil.cpp
-+++ src/libdnf/hy-iutil.cpp
-@@ -22,7 +22,7 @@
- #include <errno.h>
- #include <dirent.h>
- #include <fcntl.h>
--#include <linux/limits.h>
-+#include <limits.h>
- #include <pwd.h>
- #include <unistd.h>
- #include <stdio.h>
-diff --git src/libdnf/hy-util.cpp src/libdnf/hy-util.cpp
-index 295fdc1b..9d584b8a 100644
---- src/libdnf/hy-util.cpp
-+++ src/libdnf/hy-util.cpp
-@@ -24,7 +24,20 @@
- #include <ctype.h>
- #include <sys/utsname.h>
- #include <sys/stat.h>
--#include <sys/auxv.h>
-+
-+// Darwin compatibility hacks
-+typedef int auxv_t;
-+#ifndef AT_HWCAP2
-+#define AT_HWCAP2 26
-+#endif
-+#ifndef AT_HWCAP
-+#define AT_HWCAP 16
-+#endif
-+static unsigned long getauxval(unsigned long type)
-+{
-+  unsigned long ret = 0;
-+  return ret;
-+}
- 
- // hawkey
- #include "dnf-types.h"
diff --git a/nixpkgs/pkgs/tools/package-management/libdnf/default.nix b/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
index 5d4a0716cc7a..ae9a8714b852 100644
--- a/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/libdnf/default.nix
@@ -3,17 +3,15 @@
 
 gcc9Stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.60.0";
+  version = "0.62.0";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "sha256-cZlUhzmfplj2XEpWWwPfT/fiH2cj3lIc44UVrFHcl3s=";
+    sha256 = "sha256-Se15VmBbzt/NASjrA25RdpHDVIG/GOSqn6ibpBe752g=";
   };
 
-  patches = lib.optionals stdenv.isDarwin [ ./darwin.patch ];
-
   nativeBuildInputs = [
     cmake
     gettext
diff --git a/nixpkgs/pkgs/tools/package-management/morph/default.nix b/nixpkgs/pkgs/tools/package-management/morph/default.nix
index 61e4a897f48d..56d824059f53 100644
--- a/nixpkgs/pkgs/tools/package-management/morph/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/morph/default.nix
@@ -1,18 +1,17 @@
-{ buildGoPackage, fetchFromGitHub, go-bindata, openssh, makeWrapper, lib }:
+{ buildGoModule, fetchFromGitHub, go-bindata, openssh, makeWrapper, lib }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "morph";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "dbcdk";
     repo = "morph";
     rev = "v${version}";
-    sha256 = "064ccvvq4yk17jy5jvi1nxfp5ajvnvn2k4zvh9v0n3ragcl3rd20";
+    sha256 = "0aibs4gsb9pl21nd93bf963kdzf0661qn0liaw8v8ak2xbz7nbs8";
   };
 
-  goPackagePath = "github.com/dbcdk/morph";
-  goDeps = ./deps.nix;
+  vendorSha256 = "08zzp0h4c4i5hk4whz06a3da7qjms6lr36596vxz0d8q0n7rspr9";
 
   nativeBuildInputs = [ makeWrapper go-bindata ];
 
@@ -28,7 +27,7 @@ buildGoPackage rec {
 
   postInstall = ''
     mkdir -p $lib
-    cp -v go/src/$goPackagePath/data/*.nix $lib
+    cp -v ./data/*.nix $lib
     wrapProgram $out/bin/morph --prefix PATH : ${lib.makeBinPath [ openssh ]};
   '';
 
diff --git a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
index 695cd2976d88..ae01601dde4f 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "1xz3qngs8p0s62dq4d46c01z3k1vvgg856767g56b13c38pzfh28";
+  cargoSha256 = "0xsy13yxm8vblab73gynb781ya168w66c32i1lyv0ns1lnz61dmh";
 
   meta = with lib; {
     description = "An interactive Nix documentation tool";
diff --git a/nixpkgs/pkgs/tools/package-management/nix-index/default.nix b/nixpkgs/pkgs/tools/package-management/nix-index/default.nix
index 07d0e9f3a9dd..a8a2c2242fd5 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-index/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-index/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "05fqfwz34n4ijw7ydw2n6bh4bv64rhks85cn720sy5r7bmhfmfa8";
   };
 
-  cargoSha256 = "0apdr9z18p6m4lfjv8k9zv2mqc7vssd2d536zfv1pns0pdqsfw50";
+  cargoSha256 = "161lz96a52s53rhhkxxhcg41bsmh8w6rv6nl8gwqmg3biszy7hah";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
   buildInputs = [ openssl curl ]
diff --git a/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix b/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix
index 91f9a39514b6..75f47d35ce2c 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "12g0sbgs2dfnk0agp1kagfi1yhk26ga98zygxxrjhjxrqb2n5w80";
   };
 
-  cargoSha256 = "0svnz9r0lrmz333qpbpdddjd46vh9i74qchws8aifa2qwnqy0kmn";
+  cargoSha256 = "1wp8wdv25j8ybq2j04z3nl4yc95wkj5h740lzpyps08yaxj8bncr";
 
   meta = with lib; {
     description = "Deploy software or an entire NixOS system configuration to another NixOS system";
diff --git a/nixpkgs/pkgs/tools/package-management/nix-template/default.nix b/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
index 0ef3602c5975..0345830fb9dd 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1h6xdvhzg7nb0s82b3r5bsh8bfdb1l5sm7fa24lfwd396xp9yyig";
   };
 
-  cargoSha256 = "13y3b60xnry71999kygvkr29gkyjss3ga3rzb43ajah4qp90rsqs";
+  cargoSha256 = "0hp31b5q4s6grkha2jz55945cbjkqdpvx1l8m49zv5prczhd7mz5";
 
   meta = with lib; {
     description = "Make creating nix expressions easy";
diff --git a/nixpkgs/pkgs/tools/package-management/nix-update/default.nix b/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
index 296f3be49cc9..c205550b267d 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonApplication
 , fetchFromGitHub
-, nixFlakes
+, nixUnstable
 , nix-prefetch
 , nixpkgs-fmt
 , nixpkgs-review
@@ -19,7 +19,7 @@ buildPythonApplication rec {
   };
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [ nixFlakes nix-prefetch nixpkgs-fmt nixpkgs-review ])
+    "--prefix" "PATH" ":" (lib.makeBinPath [ nixUnstable nix-prefetch nixpkgs-fmt nixpkgs-review ])
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/package-management/nix/default.nix b/nixpkgs/pkgs/tools/package-management/nix/default.nix
index 7eda5ae6f358..a7b3d12f7a5d 100644
--- a/nixpkgs/pkgs/tools/package-management/nix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix/default.nix
@@ -21,7 +21,7 @@ common =
   , storeDir
   , stateDir
   , confDir
-  , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp
+  , withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp, libseccomp
   , withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp
   , enableStatic ? stdenv.hostPlatform.isStatic
   , pname, version, suffix ? "", src
@@ -50,11 +50,10 @@ common =
            ];
 
       buildInputs =
-        [ curl openssl sqlite xz bzip2 nlohmann_json
+        [ curl libsodium openssl sqlite xz bzip2 nlohmann_json
           brotli boost editline
         ]
         ++ lib.optionals stdenv.isDarwin [ Security ]
-        ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
         ++ lib.optionals is24 [ libarchive gtest lowdown ]
         ++ lib.optional (is24 && stdenv.isx86_64) libcpuid
         ++ lib.optional withLibseccomp libseccomp
@@ -94,14 +93,12 @@ common =
             patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
           ''}
         '' +
-        # On all versions before c9f51e87057652db0013289a95deffba495b35e7,
-        # released with 2.3.8, we need to patch around an issue where the Nix
-        # configure step pulls in the build system's bash and other utilities
-        # when cross-compiling.
+        # On all versions before c9f51e87057652db0013289a95deffba495b35e7, which
+        # removes config.nix entirely and is not present in 2.3.x, we need to
+        # patch around an issue where the Nix configure step pulls in the build
+        # system's bash and other utilities when cross-compiling.
         lib.optionalString (
-          stdenv.buildPlatform != stdenv.hostPlatform &&
-          (lib.versionOlder "2.3.8" version && !is24)
-          # The additional is24 condition is required as versionOlder doesn't understand nixUnstable version strings
+          stdenv.buildPlatform != stdenv.hostPlatform && !is24
         ) ''
           mkdir tmp/
           substitute corepkgs/config.nix.in tmp/config.nix.in \
@@ -119,9 +116,12 @@ common =
         [ "--with-store-dir=${storeDir}"
           "--localstatedir=${stateDir}"
           "--sysconfdir=${confDir}"
-          "--disable-init-state"
           "--enable-gc"
         ]
+        ++ lib.optionals (!is24) [
+          # option was removed in 2.4
+          "--disable-init-state"
+        ]
         ++ lib.optionals stdenv.isLinux [
           "--with-sandbox-shell=${sh}/bin/busybox"
         ]
@@ -196,37 +196,29 @@ in rec {
 
   nixStable = callPackage common (rec {
     pname = "nix";
-    version = "2.3.10";
+    version = "2.3.12";
     src = fetchurl {
       url = "https://nixos.org/releases/nix/${pname}-${version}/${pname}-${version}.tar.xz";
-      sha256 = "a8a85e55de43d017abbf13036edfb58674ca136691582f17080c1cd12787b7ab";
+      sha256 = "sha256-ITp9ScRhB5syNh5NAI0kjX9o400syTR/Oo/5Ap+a+10=";
     };
 
-    patches = [(
-      fetchpatch {
-        url = "https://github.com/NixOS/nix/pull/4316.patch";
-        sha256 = "0bqlm4n9sac9prgr9xlfng92arisp1hiqvc9pfh4fibsppkgdfc5";
-      }
-    )];
-
     inherit storeDir stateDir confDir boehmgc;
   });
 
   nixUnstable = lib.lowPrio (callPackage common rec {
     pname = "nix";
     version = "2.4${suffix}";
-    suffix = "pre20210326_dd77f71";
+    suffix = "pre20210601_5985b8b";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "dd77f71afe6733e9790dd001125c423cb648b7ce";
-      sha256 = "rVHzrsCtdiWjyLuHnDplG2mx+7dw5VyzZ9ReXxuCvHY=";
+      rev = "5985b8b5275605ddd5e92e2f0a7a9f494ac6e35d";
+      sha256 = "sha256-2So7ZsD8QJlOXCYqdoj8naNgBw6O4Vw1MM2ORsaqlXc=";
     };
 
     inherit storeDir stateDir confDir boehmgc;
-  });
 
-  nixFlakes = nixUnstable;
+  });
 
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix b/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
index 2229e0c6a1de..3bfb89fe1050 100644
--- a/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -1,7 +1,7 @@
 { lib
 , python3
 , fetchFromGitHub
-, nixFlakes
+, nixUnstable
 , git
 }:
 
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [ nixFlakes git ])
+    "--prefix" "PATH" ":" (lib.makeBinPath [ nixUnstable git ])
   ];
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/package-management/nvd/default.nix b/nixpkgs/pkgs/tools/package-management/nvd/default.nix
new file mode 100644
index 000000000000..1218ac01f9a6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/nvd/default.nix
@@ -0,0 +1,32 @@
+{ fetchFromGitLab, installShellFiles, lib, python3, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "nvd";
+  version = "0.1.1";
+
+  src = fetchFromGitLab {
+    owner = "khumba";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0accq0cw6qsxin1fb2bp2ijgjf9akb9qlivkykpfsgnk5qjafv2n";
+  };
+
+  buildInputs = [ python3 ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    runHook preInstall
+    install -m555 -Dt $out/bin src/nvd
+    installManPage src/nvd.1
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Nix/NixOS package version diff tool";
+    homepage = "https://gitlab.com/khumba/nvd";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ khumba ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
index ec5017c54c7e..db76c9913f60 100644
--- a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
@@ -1,8 +1,9 @@
 { lib
 , buildPythonApplication
 , fetchFromGitHub
-, setuptools_scm
+, setuptools-scm
 , vdf
+, bash
 , steam-run
 , winetricks
 , zenity
@@ -11,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.4.4";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    sha256 = "0i7p0jj7avmq3b2qlcpwcflipndrnwsvwvhc5aal7rm95aa7xhja";
+    hash = "sha256-SrBPqGRIsP0+ZWDe96sqjqCpJoY3Sn3VoPpMw7ellC0=";
   };
 
   patches = [
@@ -25,15 +26,13 @@ buildPythonApplication rec {
     ./steam-run.patch
   ];
 
-  preBuild = ''
-    export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
-  '';
-
-  nativeBuildInputs = [ setuptools_scm ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ vdf ];
 
   makeWrapperArgs = [
     "--prefix PATH : ${lib.makeBinPath [
+      bash
       steam-run
       (winetricks.override {
         # Remove default build of wine to reduce closure size.
@@ -45,21 +44,13 @@ buildPythonApplication rec {
   ];
 
   checkInputs = [ pytestCheckHook ];
-  disabledTests = [
-    # Steam runtime is hard-coded with steam-run.patch and can't be configured
-    "test_run_steam_runtime_not_found"
-    "test_unknown_steam_runtime_detected"
-
-    # Steam runtime 2 currently isn't supported
-    # See https://github.com/NixOS/nixpkgs/issues/100655
-    "test_run_winetricks_steam_runtime_v2"
-  ];
+  pythonImportsCheck = [ "protontricks" ];
 
   meta = with lib; {
     description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
     homepage = "https://github.com/Matoking/protontricks";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ metadark ];
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ kira-bruneau ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch b/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
index 619d80bd8a7a..76b7b7f60369 100644
--- a/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
+++ b/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
@@ -1,17 +1,19 @@
 diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py
-index fec0563..d158b96 100755
+index cc65a03..5c3fc7a 100755
 --- a/src/protontricks/cli.py
 +++ b/src/protontricks/cli.py
-@@ -14,7 +14,7 @@ import os
- import logging
+@@ -15,8 +15,8 @@ import sys
  
  from . import __version__
--from .steam import (find_proton_app, find_steam_path, find_steam_runtime_path,
-+from .steam import (find_proton_app, find_steam_path,
-                     get_steam_apps, get_steam_lib_paths)
- from .winetricks import get_winetricks_path
  from .gui import select_steam_app_with_gui
-@@ -75,8 +75,7 @@ def main(args=None):
+-from .steam import (find_legacy_steam_runtime_path, find_proton_app,
+-                    find_steam_path, get_steam_apps, get_steam_lib_paths)
++from .steam import (find_proton_app, find_steam_path, get_steam_apps,
++                    get_steam_lib_paths)
+ from .util import run_command, is_flatpak_sandbox
+ from .winetricks import get_winetricks_path
+ 
+@@ -77,8 +77,7 @@ def main(args=None):
              "WINE: path to a custom 'wine' executable\n"
              "WINESERVER: path to a custom 'wineserver' executable\n"
              "STEAM_RUNTIME: 1 = enable Steam Runtime, 0 = disable Steam "
@@ -21,70 +23,73 @@ index fec0563..d158b96 100755
          ),
          formatter_class=argparse.RawTextHelpFormatter
      )
-@@ -133,14 +132,10 @@ def main(args=None):
+@@ -148,18 +147,9 @@ def main(args=None):
+         )
          sys.exit(-1)
  
-     # 2. Find Steam Runtime if enabled
--    steam_runtime_path = None
-+    steam_runtime = False
- 
+-    # 2. Find the pre-installed legacy Steam Runtime if enabled
+-    legacy_steam_runtime_path = None
+-    use_steam_runtime = True
+-
++    # 2. Use Steam Runtime if enabled
      if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime:
--        steam_runtime_path = find_steam_runtime_path(steam_root=steam_root)
+-        legacy_steam_runtime_path = find_legacy_steam_runtime_path(
+-            steam_root=steam_root
+-        )
 -
--        if not steam_runtime_path:
+-        if not legacy_steam_runtime_path:
 -            print("Steam Runtime was enabled but couldn't be found!")
 -            sys.exit(-1)
-+        steam_runtime = True
++        use_steam_runtime = True
      else:
+         use_steam_runtime = False
          logger.info("Steam Runtime disabled.")
- 
-@@ -201,7 +196,7 @@ def main(args=None):
-             winetricks_path=winetricks_path,
+@@ -222,7 +212,6 @@ def main(args=None):
              proton_app=proton_app,
              steam_app=steam_app,
--            steam_runtime_path=steam_runtime_path,
-+            steam_runtime=steam_runtime,
-             command=[winetricks_path, "--gui"]
+             use_steam_runtime=use_steam_runtime,
+-            legacy_steam_runtime_path=legacy_steam_runtime_path,
+             command=[winetricks_path, "--gui"],
+             use_bwrap=use_bwrap
          )
- 
-@@ -269,7 +264,7 @@ def main(args=None):
-             winetricks_path=winetricks_path,
+@@ -292,7 +281,6 @@ def main(args=None):
              proton_app=proton_app,
              steam_app=steam_app,
--            steam_runtime_path=steam_runtime_path,
-+            steam_runtime=steam_runtime,
+             use_steam_runtime=use_steam_runtime,
+-            legacy_steam_runtime_path=legacy_steam_runtime_path,
+             use_bwrap=use_bwrap,
              command=[winetricks_path] + args.winetricks_command)
      elif args.command:
-         run_command(
-@@ -277,7 +272,7 @@ def main(args=None):
-             proton_app=proton_app,
+@@ -302,7 +290,6 @@ def main(args=None):
              steam_app=steam_app,
              command=args.command,
--            steam_runtime_path=steam_runtime_path,
-+            steam_runtime=steam_runtime,
+             use_steam_runtime=use_steam_runtime,
+-            legacy_steam_runtime_path=legacy_steam_runtime_path,
+             use_bwrap=use_bwrap,
              # Pass the command directly into the shell *without*
              # escaping it
-             cwd=steam_app.install_path,
 diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py
-index fa5772d..4f30cd3 100644
+index f9fb9ec..e1e588a 100644
 --- a/src/protontricks/steam.py
 +++ b/src/protontricks/steam.py
-@@ -11,7 +11,7 @@ from .util import lower_dict
+@@ -12,8 +12,8 @@ from .util import lower_dict
  
  __all__ = (
      "COMMON_STEAM_DIRS", "SteamApp", "find_steam_path",
--    "find_steam_proton_app", "find_proton_app", "find_steam_runtime_path",
-+    "find_steam_proton_app", "find_proton_app",
-     "find_appid_proton_prefix", "get_steam_lib_paths", "get_steam_apps",
-     "get_custom_proton_installations"
- )
-@@ -254,37 +254,6 @@ def find_steam_path():
+-    "find_legacy_steam_runtime_path", "get_appinfo_sections",
+-    "get_proton_appid", "find_steam_proton_app", "find_appid_proton_prefix",
++    "get_appinfo_sections", "get_proton_appid",
++    "find_steam_proton_app", "find_appid_proton_prefix",
+     "find_proton_app", "get_steam_lib_paths", "get_compat_tool_dirs",
+     "get_proton_installations", "get_custom_proton_installations",
+     "find_current_steamid3", "get_appid_from_shortcut",
+@@ -286,37 +286,6 @@ def find_steam_path():
      return None, None
  
  
--def find_steam_runtime_path(steam_root):
+-def find_legacy_steam_runtime_path(steam_root):
 -    """
--    Find the Steam Runtime either using the STEAM_RUNTIME env or
+-    Find the legacy Steam Runtime either using the STEAM_RUNTIME env or
 -    steam_root
 -    """
 -    env_steam_runtime = os.environ.get("STEAM_RUNTIME", "")
@@ -117,162 +122,165 @@ index fa5772d..4f30cd3 100644
  APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
  
 diff --git a/src/protontricks/util.py b/src/protontricks/util.py
-index d513b46..c48e41f 100644
+index 2abda99..3a25368 100644
 --- a/src/protontricks/util.py
 +++ b/src/protontricks/util.py
-@@ -6,7 +6,7 @@ import stat
+@@ -4,15 +4,14 @@ import shlex
+ import shutil
+ import stat
  from pathlib import Path
- from subprocess import check_output, run, PIPE
+-from subprocess import check_output, run, PIPE
++from subprocess import run, PIPE
  
--__all__ = ("get_runtime_library_paths", "create_wine_bin_dir", "run_command")
-+__all__ = ("create_wine_bin_dir", "run_command")
+ __all__ = (
+     "SUPPORTED_STEAM_RUNTIMES", "is_flatpak_sandbox", "lower_dict",
+-    "get_legacy_runtime_library_paths", "get_host_library_paths",
+-    "RUNTIME_ROOT_GLOB_PATTERNS", "get_runtime_library_paths",
+-    "WINE_SCRIPT_RUNTIME_V1_TEMPLATE",
+-    "WINE_SCRIPT_RUNTIME_V2_TEMPLATE",
+-    "create_wine_bin_dir", "run_command"
++    "get_host_library_paths", "RUNTIME_ROOT_GLOB_PATTERNS",
++    "get_runtime_library_paths", "WINE_SCRIPT_RUNTIME_V1_TEMPLATE",
++    "WINE_SCRIPT_RUNTIME_V2_TEMPLATE", "create_wine_bin_dir",
++    "run_command"
+ )
  
  logger = logging.getLogger("protontricks")
- 
-@@ -25,93 +25,10 @@ def lower_dict(d):
+@@ -39,24 +38,6 @@ def lower_dict(d):
      return {k.lower(): v for k, v in d.items()}
  
  
--def get_host_library_paths():
+-def get_legacy_runtime_library_paths(legacy_steam_runtime_path, proton_app):
 -    """
--    Get host library paths to use when creating the LD_LIBRARY_PATH environment
--    variable for use with newer Steam Runtime installations
+-    Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
 -    """
--    # The traditional Steam Runtime does the following when running the
--    # `run.sh --print-steam-runtime-library-paths` command.
--    # Since that command is unavailable with newer Steam Runtime releases,
--    # do it ourselves here.
--    result = run(
--        ["/sbin/ldconfig", "-XNv"],
--        check=True, stdout=PIPE, stderr=PIPE
--    )
--    lines = result.stdout.decode("utf-8").split("\n")
--    paths = [
--        line.split(":")[0] for line in lines
--        if line.startswith("/") and ":" in line
--    ]
--
--    return ":".join(paths)
--
--
--RUNTIME_ROOT_GLOB_PATTERNS = (
--    "var/*/files/",
--    "*/files/"
--)
--
--
--def get_runtime_library_paths(steam_runtime_path, proton_app):
--    """
--    Get LD_LIBRARY_PATH value to run a command using Steam Runtime
--    """
--    def find_runtime_app_root(runtime_app):
--        """
--        Find the runtime root (the directory containing the root fileystem
--        used for the container) for separately installed Steam Runtime app
--        """
--        for pattern in RUNTIME_ROOT_GLOB_PATTERNS:
--            try:
--                return next(
--                    runtime_app.install_path.glob(pattern)
--                )
--            except StopIteration:
--                pass
--
--        raise RuntimeError(
--            "Could not find Steam Runtime runtime root for {}".format(
--                runtime_app.name
--            )
--        )
--
--    if proton_app.required_tool_appid:
--        # bwrap based Steam Runtime is used for Proton installations that
--        # use separate Steam runtimes
--        # TODO: Try to run the Wine binaries inside an user namespace somehow.
--        # Newer Steam Runtime environments may rely on a newer glibc than what
--        # is available on the host system, which may cause potential problems
--        # otherwise.
--        runtime_root = find_runtime_app_root(proton_app.required_tool_app)
--        return "".join([
--            str(proton_app.install_path / "dist" / "lib"), os.pathsep,
--            str(proton_app.install_path / "dist" / "lib64"), os.pathsep,
--            get_host_library_paths(), os.pathsep,
--            str(runtime_root / "lib" / "i386-linux-gnu"), os.pathsep,
--            str(runtime_root / "lib" / "x86_64-linux-gnu")
--        ])
--
--    # Traditional LD_LIBRARY_PATH based Steam Runtime is used otherwise
 -    steam_runtime_paths = check_output([
--        str(steam_runtime_path / "run.sh"),
+-        str(legacy_steam_runtime_path / "run.sh"),
 -        "--print-steam-runtime-library-paths"
 -    ])
 -    steam_runtime_paths = str(steam_runtime_paths, "utf-8")
 -    # Add Proton installation directory first into LD_LIBRARY_PATH
 -    # so that libwine.so.1 is picked up correctly (see issue #3)
 -    return "".join([
--        str(proton_app.install_path / "dist" / "lib"), os.pathsep,
--        str(proton_app.install_path / "dist" / "lib64"), os.pathsep,
+-        str(proton_app.proton_dist_path / "lib"), os.pathsep,
+-        str(proton_app.proton_dist_path / "lib64"), os.pathsep,
 -        steam_runtime_paths
 -    ])
 -
 -
- WINE_SCRIPT_TEMPLATE = (
--    "#!/bin/bash\n"
-+    "#!/bin/sh\n"
-     "# Helper script created by Protontricks to run Wine binaries using Steam Runtime\n"
--    "export LD_LIBRARY_PATH=\"$PROTON_LD_LIBRARY_PATH\"\n"
--    "exec \"$PROTON_PATH\"/dist/bin/{name} \"$@\""
-+    "exec steam-run \"$PROTON_PATH\"/dist/bin/{name} \"$@\""
+ def get_host_library_paths():
+     """
+     Get host library paths to use when creating the LD_LIBRARY_PATH environment
+@@ -68,7 +49,7 @@ def get_host_library_paths():
+     # Since that command is unavailable with newer Steam Runtime releases,
+     # do it ourselves here.
+     result = run(
+-        ["/sbin/ldconfig", "-XNv"],
++        ["steam-run", "ldconfig", "-XNv"],
+         check=True, stdout=PIPE, stderr=PIPE
+     )
+     lines = result.stdout.decode("utf-8").split("\n")
+@@ -86,7 +67,7 @@ RUNTIME_ROOT_GLOB_PATTERNS = (
  )
  
  
-@@ -172,7 +89,7 @@ def create_wine_bin_dir(proton_app):
+-def get_runtime_library_paths(proton_app, use_bwrap=True):
++def get_runtime_library_paths(proton_app, proton_app_only=True):
+     """
+     Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
+     """
+@@ -109,7 +90,7 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
+             )
+         )
+ 
+-    if use_bwrap:
++    if proton_app_only:
+         return "".join([
+             str(proton_app.proton_dist_path / "lib"), os.pathsep,
+             str(proton_app.proton_dist_path / "lib64"), os.pathsep
+@@ -125,14 +106,19 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
+     ])
+ 
+ 
+-WINE_SCRIPT_RUNTIME_V1_TEMPLATE = (
+-    "#!/bin/bash\n"
+-    "# Helper script created by Protontricks to run Wine binaries using Steam Runtime\n"
+-    "export LD_LIBRARY_PATH=\"$PROTON_LD_LIBRARY_PATH\"\n"
+-    "exec \"$PROTON_DIST_PATH\"/bin/{name} \"$@\""
+-)
++# Add Proton installation directory first into LD_LIBRARY_PATH
++# so that libwine.so.1 is picked up correctly (see issue #3)
++WINE_SCRIPT_RUNTIME_V1_TEMPLATE = """#!/usr/bin/env -S steam-run bash
++# Helper script created by Protontricks to run Wine binaries using Steam Runtime
++export LD_LIBRARY_PATH="$PROTON_LD_LIBRARY_PATH":"$LD_LIBRARY_PATH"
++exec "$PROTON_DIST_PATH"/bin/{name} "$@"
++"""
  
+-WINE_SCRIPT_RUNTIME_V2_TEMPLATE = """#!/bin/bash
++# The run script calls pressure-vessel-unruntime which will unset
++# LD_LIBRARY_PATH defined by steam-run. This will cause Pressure
++# Vessel to segfault, so just call pressure-vessel-wrap directly
++# instead.
++WINE_SCRIPT_RUNTIME_V2_TEMPLATE = """#!/usr/bin/env bash
+ # Helper script created by Protontricks to run Wine binaries using Steam Runtime
+ set -o errexit
+ 
+@@ -200,7 +186,10 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
+   export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PROTON_LD_LIBRARY_PATH"
+   "$PROTON_DIST_PATH"/bin/{name} "$@"
+ else
+-  exec "$STEAM_RUNTIME_PATH"/run --share-pid --batch \
++  exec steam-run "$STEAM_RUNTIME_PATH"/pressure-vessel/bin/pressure-vessel-wrap \
++  --runtime-archive=$(echo "$STEAM_RUNTIME_PATH"/*runtime.tar.gz) \
++  --variable-dir="${{PRESSURE_VESSEL_VARIABLE_DIR:-$STEAM_RUNTIME_PATH/var}}" \
++  --share-pid --batch \
+   "${{mount_params[@]}}" -- \
+   env PROTONTRICKS_INSIDE_STEAM_RUNTIME=1 \
+   "$PROTONTRICKS_PROXY_SCRIPT_PATH" "$@"
+@@ -266,7 +255,6 @@ def create_wine_bin_dir(proton_app, use_bwrap=True):
  def run_command(
          winetricks_path, proton_app, steam_app, command,
--        steam_runtime_path=None,
-+        steam_runtime=False,
+         use_steam_runtime=False,
+-        legacy_steam_runtime_path=None,
+         use_bwrap=True,
          **kwargs):
      """Run an arbitrary command with the correct environment variables
-     for the given Proton app
-@@ -180,13 +97,13 @@ def run_command(
-     The environment variables are set for the duration of the call
-     and restored afterwards
- 
--    If 'steam_runtime_path' is provided, run the command using Steam Runtime
-+    If 'steam_runtime' is provided, run the command using Steam Runtime
-     """
-     # Check for incomplete Steam Runtime installation
-     runtime_install_incomplete = \
-         proton_app.required_tool_appid and not proton_app.required_tool_app
- 
--    if steam_runtime_path and runtime_install_incomplete:
-+    if steam_runtime and runtime_install_incomplete:
-         raise RuntimeError(
-             "{} is missing the required Steam Runtime. You may need to launch "
-             "a Steam app using this Proton version to finish the "
-@@ -234,7 +151,7 @@ def run_command(
-     os.environ.pop("WINEARCH", "")
+@@ -343,7 +331,7 @@ def run_command(
+             os.environ["STEAM_RUNTIME_PATH"] = \
+                 str(proton_app.required_tool_app.install_path)
+             os.environ["PROTON_LD_LIBRARY_PATH"] = \
+-                get_runtime_library_paths(proton_app, use_bwrap=use_bwrap)
++                get_runtime_library_paths(proton_app, proton_app_only=use_bwrap)
  
-     wine_bin_dir = None
--    if steam_runtime_path:
-+    if steam_runtime:
-         if proton_app.required_tool_app:
              runtime_name = proton_app.required_tool_app.name
              logger.info(
-@@ -251,8 +168,6 @@ def run_command(
+@@ -366,11 +354,8 @@ def run_command(
+                     "Current Steam Runtime not recognized by Protontricks."
+                 )
+         else:
+-            # Legacy Steam Runtime requires a different LD_LIBRARY_PATH
+             os.environ["PROTON_LD_LIBRARY_PATH"] = \
+-                get_legacy_runtime_library_paths(
+-                    legacy_steam_runtime_path, proton_app
+-                )
++                get_runtime_library_paths(proton_app, proton_app_only=True)
+ 
+         # When Steam Runtime is enabled, create a set of helper scripts
          # that load the underlying Proton Wine executables with Steam Runtime
-         # and Proton libraries instead of system libraries
-         wine_bin_dir = create_wine_bin_dir(proton_app=proton_app)
--        os.environ["PROTON_LD_LIBRARY_PATH"] = \
--            get_runtime_library_paths(steam_runtime_path, proton_app)
+@@ -378,8 +363,6 @@ def run_command(
+         wine_bin_dir = create_wine_bin_dir(
+             proton_app=proton_app, use_bwrap=use_bwrap
+         )
+-        os.environ["LEGACY_STEAM_RUNTIME_PATH"] = \
+-            str(legacy_steam_runtime_path)
+ 
          os.environ["PATH"] = "".join([
              str(wine_bin_dir), os.pathsep, os.environ["PATH"]
-         ])
 diff --git a/tests/test_cli.py b/tests/test_cli.py
-index b612dfa..c4d1de0 100644
+index 580bb5b..3a05ad3 100644
 --- a/tests/test_cli.py
 +++ b/tests/test_cli.py
-@@ -115,9 +115,6 @@ class TestCLIRun:
+@@ -117,15 +117,10 @@ class TestCLIRun:
          assert str(command.args[0]).endswith(".local/bin/winetricks")
          assert command.args[1] == "winecfg"
          assert command.env["PATH"].startswith(str(wine_bin_dir))
@@ -282,3 +290,60 @@ index b612dfa..c4d1de0 100644
          assert command.env["WINE"] == str(wine_bin_dir / "wine")
          assert command.env["WINELOADER"] == str(wine_bin_dir / "wine")
          assert command.env["WINESERVER"] == str(wine_bin_dir / "wineserver")
+ 
+-        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
+-            str(steam_runtime_dir / "steam-runtime")
+         assert "STEAM_RUNTIME_PATH" not in command.env
+ 
+         for name in ("wine", "wineserver"):
+@@ -166,16 +161,14 @@ class TestCLIRun:
+         assert command.env["PATH"].startswith(str(wine_bin_dir))
+ 
+         # Compared to the traditional Steam Runtime, PROTON_LD_LIBRARY_PATH
+-        # will be different
++        # will be the same (it would be different without steam-run.patch)
+         proton_install_path = Path(proton_app.install_path)
+         assert command.env["PROTON_LD_LIBRARY_PATH"] == "".join([
+             str(proton_install_path / "dist" / "lib"), os.pathsep,
+             str(proton_install_path / "dist" / "lib64"), os.pathsep
+         ])
+ 
+-        # Environment variables for both legacy and new Steam Runtime exist
+-        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
+-            str(steam_runtime_dir / "steam-runtime")
++        # Environment variable for new Steam Runtime exists
+         assert command.env["STEAM_RUNTIME_PATH"] == \
+             str(steam_runtime_soldier.install_path)
+ 
+@@ -239,9 +232,7 @@ class TestCLIRun:
+             str(runtime_root / "lib" / "x86_64-linux-gnu")
+         ]))
+ 
+-        # Environment variables for both legacy and new Steam Runtime exist
+-        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
+-            str(steam_runtime_dir / "steam-runtime")
++        # Environment variable for new Steam Runtime exists
+         assert command.env["STEAM_RUNTIME_PATH"] == \
+             str(steam_runtime_soldier.install_path)
+ 
+@@ -324,20 +315,6 @@ class TestCLIRun:
+ 
+         assert "Zenity is not installed" in result
+ 
+-    def test_run_steam_runtime_not_found(
+-            self, cli, steam_dir, steam_app_factory):
+-        """
+-        Try performing a command with Steam Runtime enabled but no
+-        available Steam Runtime installation
+-        """
+-        steam_app_factory(name="Fake game 1", appid=10)
+-        result = cli(
+-            ["10", "winecfg"], env={"STEAM_RUNTIME": "invalid/path"},
+-            expect_exit=True
+-        )
+-
+-        assert "Steam Runtime was enabled but couldn't be found" in result
+-
+     def test_run_proton_not_found(self, cli, steam_dir, steam_app_factory):
+         steam_app_factory(name="Fake game 1", appid=10)
+         result = cli(["10", "winecfg"], expect_exit=True)
diff --git a/nixpkgs/pkgs/tools/package-management/reuse/default.nix b/nixpkgs/pkgs/tools/package-management/reuse/default.nix
index af072de3e144..bc6ca60a9e7b 100644
--- a/nixpkgs/pkgs/tools/package-management/reuse/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/reuse/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
     license-expression
     requests
     setuptools
-    setuptools_scm
+    setuptools-scm
   ];
 
   checkInputs = with python3Packages; [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/tools/security/afl/default.nix b/nixpkgs/pkgs/tools/security/afl/default.nix
index 056aa3b07fde..ccdbd78716d9 100644
--- a/nixpkgs/pkgs/tools/security/afl/default.nix
+++ b/nixpkgs/pkgs/tools/security/afl/default.nix
@@ -21,7 +21,7 @@ let
 
     # Note: libcgroup isn't needed for building, just for the afl-cgroup
     # script.
-    nativeBuildInputs = [ makeWrapper which ];
+    nativeBuildInputs = [ makeWrapper which llvm.dev ];
     buildInputs = [ llvm ];
 
     makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix b/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix
index f0eda76821db..d9f4f4a01735 100644
--- a/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix
+++ b/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "aws-iam-authenticator";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1xfc3a0dik4930va30sbl6687v6i5irv96fwis9lrqh5rjqnblqp";
+    sha256 = "0ga3vf5gn7533iqnxn7kchb6xg5wvk92livlqzkhi5qvqhl1sbw0";
   };
 
-  vendorSha256 = null;
+  # Upstream has inconsistent vendoring, see https://github.com/kubernetes-sigs/aws-iam-authenticator/issues/377
+  deleteVendor = true;
+  vendorSha256 = "+Z8sENIMWXP29Piwb/W6i7UdNXVq6ZnO7AZbSaUYCME=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=v${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/security/b3sum/cargo-lock.patch b/nixpkgs/pkgs/tools/security/b3sum/cargo-lock.patch
deleted file mode 100644
index 1f8494089477..000000000000
--- a/nixpkgs/pkgs/tools/security/b3sum/cargo-lock.patch
+++ /dev/null
@@ -1,513 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..1dff162
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,507 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "ansi_term"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "anyhow"
-+version = "1.0.34"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7"
-+
-+[[package]]
-+name = "arrayref"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-+
-+[[package]]
-+name = "arrayvec"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-+
-+[[package]]
-+name = "b3sum"
-+version = "0.3.7"
-+dependencies = [
-+ "anyhow",
-+ "blake3",
-+ "clap",
-+ "duct",
-+ "hex",
-+ "memmap",
-+ "rayon",
-+ "tempfile",
-+ "wild",
-+]
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+
-+[[package]]
-+name = "blake3"
-+version = "0.3.7"
-+dependencies = [
-+ "arrayref",
-+ "arrayvec",
-+ "cc",
-+ "cfg-if 0.1.10",
-+ "constant_time_eq",
-+ "crypto-mac",
-+ "digest",
-+ "rayon",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.62"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f1770ced377336a88a67c473594ccc14eca6f4559217c34f64aac8f83d641b40"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-+
-+[[package]]
-+name = "clap"
-+version = "2.33.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
-+dependencies = [
-+ "ansi_term",
-+ "atty",
-+ "bitflags",
-+ "strsim",
-+ "textwrap",
-+ "unicode-width",
-+ "vec_map",
-+]
-+
-+[[package]]
-+name = "const_fn"
-+version = "0.4.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab"
-+
-+[[package]]
-+name = "constant_time_eq"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-+
-+[[package]]
-+name = "crossbeam-channel"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
-+dependencies = [
-+ "cfg-if 1.0.0",
-+ "crossbeam-utils",
-+]
-+
-+[[package]]
-+name = "crossbeam-deque"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
-+dependencies = [
-+ "cfg-if 1.0.0",
-+ "crossbeam-epoch",
-+ "crossbeam-utils",
-+]
-+
-+[[package]]
-+name = "crossbeam-epoch"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ec0f606a85340376eef0d6d8fec399e6d4a544d648386c6645eb6d0653b27d9f"
-+dependencies = [
-+ "cfg-if 1.0.0",
-+ "const_fn",
-+ "crossbeam-utils",
-+ "lazy_static",
-+ "memoffset",
-+ "scopeguard",
-+]
-+
-+[[package]]
-+name = "crossbeam-utils"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ec91540d98355f690a86367e566ecad2e9e579f230230eb7c21398372be73ea5"
-+dependencies = [
-+ "autocfg",
-+ "cfg-if 1.0.0",
-+ "const_fn",
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "crypto-mac"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
-+dependencies = [
-+ "generic-array",
-+ "subtle",
-+]
-+
-+[[package]]
-+name = "digest"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-+dependencies = [
-+ "generic-array",
-+]
-+
-+[[package]]
-+name = "duct"
-+version = "0.13.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f90a9c3a25aafbd538c7d40a53f83c4487ee8216c12d1c8ef2c01eb2f6ea1553"
-+dependencies = [
-+ "libc",
-+ "once_cell",
-+ "os_pipe",
-+ "shared_child",
-+]
-+
-+[[package]]
-+name = "either"
-+version = "1.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-+
-+[[package]]
-+name = "generic-array"
-+version = "0.14.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
-+dependencies = [
-+ "typenum",
-+ "version_check",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
-+dependencies = [
-+ "cfg-if 0.1.10",
-+ "libc",
-+ "wasi",
-+]
-+
-+[[package]]
-+name = "glob"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "hex"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.80"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614"
-+
-+[[package]]
-+name = "memmap"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
-+dependencies = [
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "memoffset"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
-+dependencies = [
-+ "autocfg",
-+]
-+
-+[[package]]
-+name = "num_cpus"
-+version = "1.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "once_cell"
-+version = "1.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
-+
-+[[package]]
-+name = "os_pipe"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fb233f06c2307e1f5ce2ecad9f8121cffbbee2c95428f44ea85222e460d0d213"
-+dependencies = [
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
-+
-+[[package]]
-+name = "rand"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+dependencies = [
-+ "getrandom",
-+ "libc",
-+ "rand_chacha",
-+ "rand_core",
-+ "rand_hc",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-+dependencies = [
-+ "ppv-lite86",
-+ "rand_core",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+dependencies = [
-+ "getrandom",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+dependencies = [
-+ "rand_core",
-+]
-+
-+[[package]]
-+name = "rayon"
-+version = "1.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
-+dependencies = [
-+ "autocfg",
-+ "crossbeam-deque",
-+ "either",
-+ "rayon-core",
-+]
-+
-+[[package]]
-+name = "rayon-core"
-+version = "1.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
-+dependencies = [
-+ "crossbeam-channel",
-+ "crossbeam-deque",
-+ "crossbeam-utils",
-+ "lazy_static",
-+ "num_cpus",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.57"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
-+
-+[[package]]
-+name = "remove_dir_all"
-+version = "0.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "scopeguard"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-+
-+[[package]]
-+name = "shared_child"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2"
-+dependencies = [
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "strsim"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-+
-+[[package]]
-+name = "subtle"
-+version = "2.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "343f3f510c2915908f155e94f17220b19ccfacf2a64a2a5d8004f2c3e311e7fd"
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+dependencies = [
-+ "cfg-if 0.1.10",
-+ "libc",
-+ "rand",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "textwrap"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+dependencies = [
-+ "unicode-width",
-+]
-+
-+[[package]]
-+name = "typenum"
-+version = "1.12.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
-+
-+[[package]]
-+name = "vec_map"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
-+
-+[[package]]
-+name = "wasi"
-+version = "0.9.0+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+
-+[[package]]
-+name = "wild"
-+version = "2.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "035793abb854745033f01a07647a79831eba29ec0be377205f2a25b0aa830020"
-+dependencies = [
-+ "glob",
-+]
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu",
-+ "winapi-x86_64-pc-windows-gnu",
-+]
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/tools/security/b3sum/default.nix b/nixpkgs/pkgs/tools/security/b3sum/default.nix
index d36dfc8e18cb..1d9b2f66debf 100644
--- a/nixpkgs/pkgs/tools/security/b3sum/default.nix
+++ b/nixpkgs/pkgs/tools/security/b3sum/default.nix
@@ -1,21 +1,15 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ lib, fetchCrate, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "b3sum";
-  version = "0.3.7";
+  version = "0.3.8";
 
-  src = fetchFromGitHub {
-    owner = "BLAKE3-team";
-    repo = "BLAKE3";
-    rev = version;
-    sha256 = "0r3nj7jbrpb2gkkfa9h6nv6blrbv6dlrhxg131qnh340q1ysh0x7";
+  src = fetchCrate {
+    inherit version pname;
+    sha256 = "1a42kwbl886yymm3v7h6y957x5f4yi9j40jy4szg9k0iy8bsdfmh";
   };
 
-  sourceRoot = "source/b3sum";
-
-  cargoSha256 = "0n8hp83hw7g260vmf4qcicpca75faam7k0zmb0k4cdzsar96gdrr";
-
-  cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "0v7ric12agicppg5ax5q0vwbslw7kmxpinafvdjj5sc2ysinw1zm";
 
   meta = {
     description = "BLAKE3 cryptographic hash function";
diff --git a/nixpkgs/pkgs/tools/security/b3sum/update-cargo-lock.sh b/nixpkgs/pkgs/tools/security/b3sum/update-cargo-lock.sh
deleted file mode 100755
index 8c52ad5cf6c0..000000000000
--- a/nixpkgs/pkgs/tools/security/b3sum/update-cargo-lock.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-# This updates cargo-lock.patch for the b3sum version listed in default.nix.
-
-set -eu -o verbose
-
-here=$PWD
-version=$(cat default.nix | grep '^  version = "' | cut -d '"' -f 2)
-checkout=$(mktemp -d)
-git clone -b "$version" --depth=1 https://github.com/BLAKE3-team/BLAKE3 "$checkout"
-cd "$checkout"
-
-(cd b3sum && cargo generate-lockfile)
-mv b3sum/Cargo.lock ./
-git add -f Cargo.lock
-git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
-
-cd "$here"
-rm -rf "$checkout"
diff --git a/nixpkgs/pkgs/tools/security/bettercap/default.nix b/nixpkgs/pkgs/tools/security/bettercap/default.nix
index e50de9fcfcda..9d2adfd9a7d2 100644
--- a/nixpkgs/pkgs/tools/security/bettercap/default.nix
+++ b/nixpkgs/pkgs/tools/security/bettercap/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "bettercap";
-  version = "2.31.0";
+  version = "2.31.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PmS4ox1ZaHrBGJAdNByott61rEvfmR1ZJ12ut0MGtrc=";
+    sha256 = "sha256-vZajnKjuIFoNnjxSsFkkpxyCR27VWqVN4lGf9SadmPU=";
   };
 
-  vendorSha256 = "sha256-3j64Z4BQhAbUtoHJ6IT1SCsKxSeYZRxSO3K2Nx9Vv4w=";
+  vendorSha256 = "sha256-et6D+M+xJbxIiDP7JRRABZ8UqUCpt9ZVI5DP45tyTGM=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/security/bitwarden/default.nix b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
index 8f264ef942e4..daddf9a71b6a 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden/default.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
@@ -2,11 +2,11 @@
 , autoPatchelfHook
 , dpkg
 , fetchurl
+, lib
 , libsecret
 , makeDesktopItem
 , makeWrapper
 , stdenv
-, lib
 , udev
 , wrapGAppsHook
 }:
@@ -17,11 +17,11 @@ let
   pname = "bitwarden";
 
   version = {
-    x86_64-linux = "1.24.6";
+    x86_64-linux = "1.26.4";
   }.${system} or "";
 
   sha256 = {
-    x86_64-linux = "sha256-PaquU2CrtIJS1s9TKshmKxfs0L3Jhvs/sgO4ZrlJFzA=";
+    x86_64-linux = "sha256-PYqLf1Y3SwPFjq8JJMxHrKWKuCqbVpmzugi3DjRNWUg=";
   }.${system} or "";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix b/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
index 5676e4005c13..2790a6434999 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, nixosTests
 , pkg-config, openssl
-, Security, CoreServices
+, libiconv, Security, CoreServices
 , dbBackend ? "sqlite", libmysqlclient, postgresql }:
 
 let
@@ -19,13 +19,13 @@ in rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = with lib; [ openssl ]
-    ++ optionals stdenv.isDarwin [ Security CoreServices ]
+    ++ optionals stdenv.isDarwin [ libiconv Security CoreServices ]
     ++ optional (dbBackend == "mysql") libmysqlclient
     ++ optional (dbBackend == "postgresql") postgresql;
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "139by5y2ma3v52nabzr5man1qy395rchs2dlivkj9xi829kg4mcr";
+  cargoSha256 = "0vdi792bzqxj8g215r9r5anzs4qhqsm6sjzwpj1l9861bn7j4xsz";
   cargoBuildFlags = [ featuresFlag ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/security/clevis/default.nix b/nixpkgs/pkgs/tools/security/clevis/default.nix
index 7f26dcabb7db..753fd8a6395e 100644
--- a/nixpkgs/pkgs/tools/security/clevis/default.nix
+++ b/nixpkgs/pkgs/tools/security/clevis/default.nix
@@ -1,20 +1,34 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, asciidoc
-, jansson, jose, cryptsetup, curl, libpwquality, luksmeta
+, makeWrapper, jansson, jose, cryptsetup, curl, libpwquality, luksmeta
+, coreutils, tpm2-tools
 }:
 
 stdenv.mkDerivation rec {
   pname = "clevis";
-  version = "16";
+  version = "18";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DWrxk+Nb2ptF5nCaXYvRY8hAFa/n+6OGdKWO+Sq61yk=";
+    sha256 = "sha256-m1UhyjD5ydSgCTBu6sECLlxFx0rnQxFnBA7frbdUqU8=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config asciidoc ];
-  buildInputs = [ jansson jose cryptsetup curl libpwquality luksmeta ];
+  postPatch = ''
+    for f in $(find src/ -type f); do
+      grep -q "/bin/cat" "$f" && substituteInPlace "$f" \
+        --replace '/bin/cat' '${coreutils}/bin/cat' || true
+    done
+  '';
+
+  postInstall = ''
+    # We wrap the main clevis binary entrypoint but not the sub-binaries.
+    wrapProgram $out/bin/clevis \
+      --prefix PATH ':' "${tpm2-tools}/bin:${jose}/bin:${placeholder "out"}/bin"
+  '';
+
+  nativeBuildInputs = [ meson ninja pkg-config asciidoc makeWrapper ];
+  buildInputs = [ jansson jose cryptsetup curl libpwquality luksmeta tpm2-tools ];
 
   outputs = [ "out" "man" ];
 
diff --git a/nixpkgs/pkgs/tools/security/cosign/default.nix b/nixpkgs/pkgs/tools/security/cosign/default.nix
index eb33d7dbb5f1..31088e262711 100644
--- a/nixpkgs/pkgs/tools/security/cosign/default.nix
+++ b/nixpkgs/pkgs/tools/security/cosign/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cosign";
-  version = "0.3.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gfzard6bh78xxgjk14c9zmdplppkcjqxhvfazcbv8qppjl2pbbd";
+    sha256 = "0g60qwdxk6pmkzj0zz9iyc8b0bzh751fj2yyz0vilkgcjq47xjk8";
   };
 
   buildInputs =
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  vendorSha256 = "15163v484rv08rn439y38r9spyqn3lf4q4ly8xr18nnf4bs3h6y2";
+  vendorSha256 = "0agmnl5d00hm854sj1iipng36pf7hcc26iwcmpcr1rsmc7v522z4";
 
   subPackages = [ "cmd/cosign" ];
 
diff --git a/nixpkgs/pkgs/tools/security/crunch/default.nix b/nixpkgs/pkgs/tools/security/crunch/default.nix
index 0c7620124d15..df1d50c60fad 100644
--- a/nixpkgs/pkgs/tools/security/crunch/default.nix
+++ b/nixpkgs/pkgs/tools/security/crunch/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/crunch-wordlist/";
     platforms = platforms.unix;
     license = with licenses; [ gpl2Only ];
-    maintainers = with maintainers; [ lethalman lnl7 ];
+    maintainers = with maintainers; [ lnl7 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/dnsx/default.nix b/nixpkgs/pkgs/tools/security/dnsx/default.nix
index b294bb6281be..33f40ce59d48 100644
--- a/nixpkgs/pkgs/tools/security/dnsx/default.nix
+++ b/nixpkgs/pkgs/tools/security/dnsx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dnsx";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "dnsx";
     rev = "v${version}";
-    sha256 = "sha256-k71Pw6XdOFMUf7w7QAAxqQkmkCINl+3KApkIPRyAQLM=";
+    sha256 = "sha256-dfjchsmGqyWLxO2sP+TlBEeKz9Fd4bHWG2r4FJPGNMs=";
   };
 
-  vendorSha256 = "sha256-YA0XZSXmpAcNEFutrBbQE8DN7v5hcva0fscemEMLewU=";
+  vendorSha256 = "sha256-KJyWb+coWSdvZGwDw/JSLtPeynndnaevwyYIzyEH4Kc=";
 
   meta = with lib; {
     description = "Fast and multi-purpose DNS toolkit";
diff --git a/nixpkgs/pkgs/tools/security/doppler/default.nix b/nixpkgs/pkgs/tools/security/doppler/default.nix
index b5fa405e93e8..d71350e3d741 100644
--- a/nixpkgs/pkgs/tools/security/doppler/default.nix
+++ b/nixpkgs/pkgs/tools/security/doppler/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "doppler";
-  version = "3.23.2";
+  version = "3.25.0";
 
   src = fetchFromGitHub {
     owner = "dopplerhq";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-qdBq1vjvvb55gyL4XuPDrPK58YLSSH5kLp1oP84vJsU=";
+    sha256 = "sha256-9knCRS5pUFSmevpQbM0DQimGpAt2Fn1XpREg0ZWRIUQ=";
   };
 
   vendorSha256 = "sha256-UaR/xYGMI+C9aID85aPSfVzmTWXj4KcjfOJ6TTJ8KoY=";
diff --git a/nixpkgs/pkgs/tools/security/eid-mw/default.nix b/nixpkgs/pkgs/tools/security/eid-mw/default.nix
index cbe56694da14..a2a6caf2b117 100644
--- a/nixpkgs/pkgs/tools/security/eid-mw/default.nix
+++ b/nixpkgs/pkgs/tools/security/eid-mw/default.nix
@@ -1,24 +1,37 @@
-{ lib, stdenv, fetchFromGitHub
-, autoreconfHook, pkg-config
-, gtk3, nssTools, pcsclite
-, libxml2, libproxy
-, openssl, curl
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, autoconf-archive
+, pkg-config
 , makeWrapper
-, substituteAll }:
+, curl
+, gtk3
+, libassuan
+, libbsd
+, libproxy
+, libxml2
+, openssl
+, p11-kit
+, pcsclite
+, nssTools
+, substituteAll
+}:
 
 stdenv.mkDerivation rec {
   pname = "eid-mw";
-  version = "4.4.27";
+  # NOTE: Don't just blindly update to the latest version/tag. Releases are always for a specific OS.
+  version = "5.0.23";
 
   src = fetchFromGitHub {
     rev = "v${version}";
-    sha256 = "17lw8iwp7h5cs3db80sysr84ffi333cf2vrhncs9l6hy6glfl2v1";
+    sha256 = "0annkm0hqhkpjmfa6ywvzgn1n9619baqdzdbhjfhzfi4hf7mml1d";
     repo = "eid-mw";
     owner = "Fedict";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper ];
-  buildInputs = [ gtk3 pcsclite libxml2 libproxy curl openssl ];
+  nativeBuildInputs = [ autoreconfHook autoconf-archive pkg-config makeWrapper ];
+  buildInputs = [ curl gtk3 libassuan libbsd libproxy libxml2 openssl p11-kit pcsclite ];
   preConfigure = ''
     mkdir openssl
     ln -s ${openssl.out}/lib openssl
@@ -27,30 +40,30 @@ stdenv.mkDerivation rec {
     export SSL_PREFIX=$(realpath openssl)
     substituteInPlace plugins_tools/eid-viewer/Makefile.in \
       --replace "c_rehash" "openssl rehash"
-    '';
+  '';
+  # pinentry uses hardcoded `/usr/bin/pinentry`, so use the built-in (uglier) dialogs for pinentry.
+  configureFlags = [ "--disable-pinentry" ];
 
   postPatch = ''
     sed 's@m4_esyscmd_s(.*,@[${version}],@' -i configure.ac
   '';
 
-  configureFlags = [ "--enable-dialogs=yes" ];
-
   postInstall =
-  let
-    eid-nssdb-in = substituteAll {
-      inherit (stdenv) shell;
-      isExecutable = true;
-      src = ./eid-nssdb.in;
-    };
-  in
-  ''
-    install -D ${eid-nssdb-in} $out/bin/eid-nssdb
-    substituteInPlace $out/bin/eid-nssdb \
-      --replace "modutil" "${nssTools}/bin/modutil"
+    let
+      eid-nssdb-in = substituteAll {
+        inherit (stdenv) shell;
+        isExecutable = true;
+        src = ./eid-nssdb.in;
+      };
+    in
+    ''
+      install -D ${eid-nssdb-in} $out/bin/eid-nssdb
+      substituteInPlace $out/bin/eid-nssdb \
+        --replace "modutil" "${nssTools}/bin/modutil"
 
-    rm $out/bin/about-eid-mw
-    wrapProgram $out/bin/eid-viewer --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/$name"
-  '';
+      rm $out/bin/about-eid-mw
+      wrapProgram $out/bin/eid-viewer --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/$name"
+    '';
 
   enableParallelBuilding = true;
 
@@ -59,7 +72,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Belgian electronic identity card (eID) middleware";
     homepage = "https://eid.belgium.be/en/using_your_eid/installing_the_eid_software/linux/";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Only;
     longDescription = ''
       Allows user authentication and digital signatures with Belgian ID cards.
       Also requires a running pcscd service and compatible card reader.
@@ -83,6 +96,6 @@ stdenv.mkDerivation rec {
           firefox.override { pkcs11Modules = [ pkgs.eid-mw ]; }
     '';
     platforms = platforms.linux;
-    maintainers = with maintainers; [ bfortz ];
+    maintainers = with maintainers; [ bfortz chvp ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/encryptr/default.nix b/nixpkgs/pkgs/tools/security/encryptr/default.nix
index e1a5de7754e7..92d783dd5fdf 100644
--- a/nixpkgs/pkgs/tools/security/encryptr/default.nix
+++ b/nixpkgs/pkgs/tools/security/encryptr/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, glib, nss, nspr, gconf, fontconfig, freetype
 , pango , cairo, libX11 , libXi, libXcursor, libXext, libXfixes
-, libXrender, libXcomposite , alsaLib, libXdamage, libXtst, libXrandr
+, libXrender, libXcomposite , alsa-lib, libXdamage, libXtst, libXrandr
 , expat, libcap, systemd , dbus, gtk2 , gdk-pixbuf, libnotify
 }:
 
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
 
   rpath = lib.makeLibraryPath [
     glib nss nspr gconf fontconfig freetype pango cairo libX11 libXi
-    libXcursor libXext libXfixes libXrender libXcomposite alsaLib
+    libXcursor libXext libXfixes libXrender libXcomposite alsa-lib
     libXdamage libXtst libXrandr expat libcap dbus gtk2 gdk-pixbuf
     libnotify stdenv.cc.cc
   ];
diff --git a/nixpkgs/pkgs/tools/security/expliot/default.nix b/nixpkgs/pkgs/tools/security/expliot/default.nix
index c46dcb018992..02a9ea5ee74f 100644
--- a/nixpkgs/pkgs/tools/security/expliot/default.nix
+++ b/nixpkgs/pkgs/tools/security/expliot/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonApplication rec {
   pname = "expliot";
-  version = "0.9.7";
+  version = "0.9.8";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitLab {
     owner = "expliot_framework";
     repo = pname;
     rev = version;
-    sha256 = "sha256-k43PvH9BXcvxe7O5iCGzLuxv/WkB9YelH/d/1S7BpU0=";
+    sha256 = "sha256-7Cuj3YKKwDxP2KKueJR9ZO5Bduv+lw0Y87Rw4b0jbGY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/exploitdb/default.nix b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
new file mode 100644
index 000000000000..a1e43618346b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
@@ -0,0 +1,26 @@
+{stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "exploitdb";
+  version = "2021-06-05";
+
+  src = fetchFromGitHub {
+    owner = "offensive-security";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-91BJ0rgR9pP4rlLz38Tug0Cd5s7WajgdxA7Dtm4Pre0=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp --recursive ./* $out/bin
+    cp ./.searchsploit_rc $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/offensive-security/exploitdb";
+    description = "Archive of public exploits and corresponding vulnerable software";
+    license = with licenses; [ gpl2Plus gpl3Plus mit ];
+    maintainers = with maintainers; [ applePrincess ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/ffuf/default.nix b/nixpkgs/pkgs/tools/security/ffuf/default.nix
index 9c8beeab3d90..076fd78d7136 100644
--- a/nixpkgs/pkgs/tools/security/ffuf/default.nix
+++ b/nixpkgs/pkgs/tools/security/ffuf/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "ffuf";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0ckpEiXxen2E9IzrsmKoEKagoJ5maAbH1tHKgQjoCjo=";
+    sha256 = "sha256-NkRf36wFmzqFv13P0DxpzEOGyBGbSXMLjWE7URzRXGY=";
   };
 
   vendorSha256 = "sha256-szT08rIozAuliOmge5RFX4NeVrJ2pCVyfotrHuvc0UU=";
diff --git a/nixpkgs/pkgs/tools/security/fido2luks/default.nix b/nixpkgs/pkgs/tools/security/fido2luks/default.nix
index 24115ba923f4..1bc0d77878c8 100644
--- a/nixpkgs/pkgs/tools/security/fido2luks/default.nix
+++ b/nixpkgs/pkgs/tools/security/fido2luks/default.nix
@@ -22,10 +22,10 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config clang ];
 
   configurePhase = ''
-    export LIBCLANG_PATH="${llvmPackages.libclang}/lib"
+    export LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib"
   '';
 
-  cargoSha256 = "sha256-4VuM1bPkl9XCI9XsZIJvw3kHSKgT4P7x6I83F2KCFD0=";
+  cargoSha256 = "sha256-d6t/bvHpnH4lKv78tp/8DC/VrQBnaiZhnf8GrlcYhJw=";
 
   meta = with lib; {
     description = "Decrypt your LUKS partition using a FIDO2 compatible authenticator";
diff --git a/nixpkgs/pkgs/tools/security/gencfsm/default.nix b/nixpkgs/pkgs/tools/security/gencfsm/default.nix
index edec05272b9f..4cf5338ca2e4 100644
--- a/nixpkgs/pkgs/tools/security/gencfsm/default.nix
+++ b/nixpkgs/pkgs/tools/security/gencfsm/default.nix
@@ -1,21 +1,39 @@
-{ lib, stdenv, fetchurl, autoconf, automake, intltool, libtool, pkg-config, encfs
-, glib , libgee, gtk3, libgnome-keyring, vala, wrapGAppsHook, xorg, gobject-introspection
+{ lib, stdenv, fetchurl, autoconf, automake, intltool, libtool, pkg-config
+, encfs, libsecret , glib , libgee, gtk3, vala, wrapGAppsHook, xorg
+, gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.19";
+  version = "1.9";
   pname = "gnome-encfs-manager";
 
   src = fetchurl {
-    url = "https://launchpad.net/gencfsm/trunk/1.8/+download/gnome-encfs-manager_${version}.tar.xz";
-    sha256 = "1h6x8dyp1fvxvr8fwki98ppf4sa20qf7g59jc9797b2vrgm60h1i";
+    url = with lib.versions;
+      "https://launchpad.net/gencfsm/trunk/${major version}.${minor version}/+download/gnome-encfs-manager_${version}.tar.xz";
+    sha256 = "RXVwg/xhfAQv3pWp3UylOhMKDh9ZACTuKM4lPrn1dk8=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ autoconf automake intltool libtool vala glib encfs
-    gtk3 libgnome-keyring libgee xorg.libSM xorg.libICE
-    wrapGAppsHook gobject-introspection  ];
-
+  nativeBuildInputs = [
+    autoconf
+    automake
+    intltool
+    libtool
+    pkg-config
+    vala
+    wrapGAppsHook
+  ];
+  buildInputs = [
+    glib
+    encfs
+    gtk3
+    libgee
+    xorg.libSM
+    xorg.libICE
+    gobject-introspection
+    libsecret
+  ];
+
+  # Fix hardcoded paths to /bin/mkdir
   patches = [ ./makefile-mkdir.patch ];
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/security/genpass/default.nix b/nixpkgs/pkgs/tools/security/genpass/default.nix
index b358507bbae2..e726da340316 100644
--- a/nixpkgs/pkgs/tools/security/genpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/genpass/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "154kprbqc59f06ciz60il4ax299zapwa0hz8vjn25rl4gr5gzn4l";
   };
 
-  cargoSha256 = "1nc699n7f732lhzfhsfknay6z3igyiqy5jymm5x815mv9y1vwaj1";
+  cargoSha256 = "1b9jqkg11d0ih46km063inqqjwfy1nrwb2xb3dagg3hi8hahpqpb";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
 
diff --git a/nixpkgs/pkgs/tools/security/gfshare/default.nix b/nixpkgs/pkgs/tools/security/gfshare/default.nix
new file mode 100644
index 000000000000..3079c7fb57f2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/gfshare/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchgit, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "gfshare";
+  version = "2.0.0";
+
+  src = fetchgit {
+    url = "git://git.gitano.org.uk/libgfshare.git";
+    rev = version;
+    sha256 = "0s37xn9pr5p820hd40489xwra7kg3gzqrxhc2j9rnxnd489hl0pr";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  doCheck = true;
+
+  outputs = [ "bin" "lib" "dev" "out" ];
+
+  meta = with lib; {
+    # Not the most descriptive homepage but it's what Debian and Ubuntu use
+    # https://packages.debian.org/sid/libgfshare2
+    # https://launchpad.net/ubuntu/impish/+source/libgfshare/+copyright
+    homepage = "https://git.gitano.org.uk/libgfshare.git/";
+    description = "Shamir's secret-sharing method in the Galois Field GF(2**8)";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rraval ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/gitleaks/default.nix b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
index c47afcd8e0f7..3cd4ae69b9f9 100644
--- a/nixpkgs/pkgs/tools/security/gitleaks/default.nix
+++ b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "7.4.1";
+  version = "7.5.0";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GoHntsyxrMzLHlyKC3JxCkLoquIjOtidcG7hTNTYGuI=";
+    sha256 = "sha256-s7EOCoGciGT5+Fose9BffsHHE/SsSMmNoWGmeAv6Agk=";
   };
 
   vendorSha256 = "sha256-Cc4DJPpOMHxDcH22S7znYo7QHNRXv8jOJhznu09kaE4=";
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix
index be9fe521e9dd..dea65ca7164c 100644
--- a/nixpkgs/pkgs/tools/security/gopass/default.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/default.nix
@@ -13,7 +13,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.12.5";
+  version = "1.12.6";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06qc68q9px2g19iz23nbc4ay5dwqhgh99d1jj5l2dhb3mgknh19n";
+    sha256 = "17y9indpgqqx261bqvckfqq1q2zciahssaalaa5c5hb6bnw5ls52";
   };
 
-  vendorSha256 = "1jir1lb60p86fmk5sh92ywchqva59c31g1badlq9pjgd7jip5vnl";
+  vendorSha256 = "106rn0bkvzf2fw21f6wpiya88ysj8sfc2zkkm47iqr23d2202i4b";
 
   subPackages = [ "." ];
 
@@ -41,19 +41,18 @@ buildGoModule rec {
   );
 
   postInstall = ''
-    HOME=$TMPDIR
-    for shell in bash fish zsh; do
-      $out/bin/gopass completion $shell > gopass.$shell
-      installShellCompletion gopass.$shell
-    done
-    go run helpers/man/main.go > gopass.1
     installManPage gopass.1
+    installShellCompletion --zsh --name _gopass zsh.completion
+    installShellCompletion --bash --name gopass.bash bash.completion
+    installShellCompletion --fish --name gopass.fish fish.completion
   '' + lib.optionalString passAlias ''
     ln -s $out/bin/gopass $out/bin/pass
   '';
 
   postFixup = ''
-    wrapProgram $out/bin/gopass --prefix PATH : "${wrapperPath}"
+    wrapProgram $out/bin/gopass \
+      --prefix PATH : "${wrapperPath}" \
+      --set GOPASS_NO_REMINDER true
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/gosh/default.nix b/nixpkgs/pkgs/tools/security/gosh/default.nix
new file mode 100644
index 000000000000..5c5ad25e6d9e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/gosh/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gosh";
+  # https://github.com/redcode-labs/GoSH/issues/4
+  version = "2020523-${lib.strings.substring 0 7 rev}";
+  rev = "7ccb068279cded1121eacc5a962c14b2064a1859";
+
+  src = fetchFromGitHub {
+    owner = "redcode-labs";
+    repo = "GoSH";
+    inherit rev;
+    sha256 = "143ig0lqnkpnydhl8gnfzhg613x4wc38ibdbikkqwfyijlr6sgzd";
+  };
+
+  vendorSha256 = "06j6cj4m0w6n9vl7sxlxpsgk77k941npq9767rdzzgy2srfqlskq";
+
+  runVend = true;
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Reverse/bind shell generator";
+    homepage = "https://github.com/redcode-labs/GoSH";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/gpg-tui/default.nix b/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
new file mode 100644
index 000000000000..8b45a675b1fa
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, gpgme
+, libgpgerror
+, libxcb
+, python3
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gpg-tui";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "orhun";
+    repo = "gpg-tui";
+    rev = "v${version}";
+    sha256 = "sha256-5noaBfOpUck8+FQQDohKfThN3jJ9ogvZ8iMdySlwENE=";
+  };
+
+  cargoSha256 = "sha256-OMbyoAVKnnLbFSO7gqxjBXmIjJg4K2ioE0ClYu9UyW4=";
+
+  nativeBuildInputs = [
+    gpgme # for gpgme-config
+    libgpgerror # for gpg-error-config
+    python3
+  ];
+
+  buildInputs = [
+    gpgme
+    libgpgerror
+    libxcb
+  ];
+
+  meta = with lib; {
+    description = "Terminal user interface for GnuPG";
+    homepage = "https://github.com/orhun/gpg-tui";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/grype/default.nix b/nixpkgs/pkgs/tools/security/grype/default.nix
index 7323d092472f..613d93747ed1 100644
--- a/nixpkgs/pkgs/tools/security/grype/default.nix
+++ b/nixpkgs/pkgs/tools/security/grype/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.11.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E1tJ9hEJ4GaL+S4dz6aGq3nJPpdtx0/Tfb1RzgJSe8M=";
+    sha256 = "sha256-nHSnDrvz0EwDnmYch/bDJOZkf1b1Vrf1960d637ZmBs=";
   };
 
-  vendorSha256 = "sha256-LUyrX/rm01tCPT6Ua6hphhf+4ycNn4tLONRyH3iTrZ4=";
+  vendorSha256 = "sha256-+1XJTr/WJIz/gvvl9KNp68OVEkjHk+KunAd4trd2T/Y=";
 
   propagatedBuildInputs = [ docker ];
 
diff --git a/nixpkgs/pkgs/tools/security/hashcat/default.nix b/nixpkgs/pkgs/tools/security/hashcat/default.nix
index 173fdc8b18d2..f3e618354210 100644
--- a/nixpkgs/pkgs/tools/security/hashcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashcat/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname   = "hashcat";
-  version = "6.1.1";
+  version = "6.2.1";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "104z63m7lqbb0sdrxhf9yi15l4a9zwf9m6zs9dbb3gf0nfxl1h9r";
+    sha256 = "sha256-SZTp7o7wUIgdXHmGsrlaOr8hFPeeTbqiilN/jirVyTs=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -28,7 +28,9 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     for f in $out/share/hashcat/OpenCL/*.cl; do
+      # Rewrite files to be included for compilation at runtime for opencl offload
       sed "s|#include \"\(.*\)\"|#include \"$out/share/hashcat/OpenCL/\1\"|g" -i "$f"
+      sed "s|#define COMPARE_\([SM]\) \"\(.*\.cl\)\"|#define COMPARE_\1 \"$out/share/hashcat/OpenCL/\2\"|g" -i "$f"
     done
   '';
 
diff --git a/nixpkgs/pkgs/tools/security/hcxtools/default.nix b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
index 9478844055e1..d0fa57820795 100644
--- a/nixpkgs/pkgs/tools/security/hcxtools/default.nix
+++ b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxtools";
-  version = "6.1.6";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = pname;
     rev = version;
-    sha256 = "sha256-x6sVFjM2GMGqpoAW7CtCLUoEAYLgulaUKXequQ7DmGQ=";
+    sha256 = "sha256-4/kqy0oIe2FdKWtVj11PAUbdWPcKmZ1aIxLx/Zw1E2w=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/security/hologram/default.nix b/nixpkgs/pkgs/tools/security/hologram/default.nix
index 9c1c896d889d..ca4666d9f07f 100644
--- a/nixpkgs/pkgs/tools/security/hologram/default.nix
+++ b/nixpkgs/pkgs/tools/security/hologram/default.nix
@@ -20,7 +20,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://github.com/AdRoll/hologram/";
     description = "Easy, painless AWS credentials on developer laptops";
-    maintainers = with maintainers; [ nand0p ];
+    maintainers = with maintainers; [ ];
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/httpx/default.nix b/nixpkgs/pkgs/tools/security/httpx/default.nix
index e8ddf6bb0bc5..18f87f8c1e14 100644
--- a/nixpkgs/pkgs/tools/security/httpx/default.nix
+++ b/nixpkgs/pkgs/tools/security/httpx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.0.5";
+  version = "1.0.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "v${version}";
-    sha256 = "sha256-E7HGE+ZVUF6AK+4qVsO2t+/B8hRMd14/bZW2WXA6p6E=";
+    sha256 = "sha256-WUaDL1bMZ7rjlwyaqZraIKSrxj68PZiuIpgZN8l8nIo=";
   };
 
-  vendorSha256 = "sha256-VBxGapvC2QE/0slsAiCBzmwOSMeGepZU0pYVDepSrwg=";
+  vendorSha256 = "sha256-yk94jD8gwgmEroxg7vzfaISVakMv3+tUoq+Auas751w=";
 
   meta = with lib; {
     description = "Fast and multi-purpose HTTP toolkit";
diff --git a/nixpkgs/pkgs/tools/security/ipscan/default.nix b/nixpkgs/pkgs/tools/security/ipscan/default.nix
index d1c56beb0816..a2ec75cfd2e2 100644
--- a/nixpkgs/pkgs/tools/security/ipscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/ipscan/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ipscan";
-  version = "3.7.3";
+  version = "3.7.6";
 
   src = fetchurl {
     url = "https://github.com/angryip/ipscan/releases/download/${version}/ipscan_${version}_all.deb";
-    sha256 = "18vvjqsxkz9g503k983cxdzzz6sdkv6qg3nwf8af9k34ynhhh0m7";
+    sha256 = "sha256-IjbuCCwcAOlCM2XbM5qBGjaGn8xNNDjoyJmCzP5JF/Q=";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
index 0b3a94d816bb..e1cd9ec359f1 100644
--- a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-82Le0kdt/fnSQwsRRYHy4Jv9rsCPGf5dIWmoZE2cPxY=";
   };
 
-  cargoSha256 = "sha256-nk4nrsePiUirVPoOPehCOf5ZoGVj3jy7PnSZENnpcaM=";
+  cargoSha256 = "sha256-sCauVxc6JPJ4dBi5LOt+v9bdlRW+oF4cd/sfG5Xdv70=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/security/kbs2/default.nix b/nixpkgs/pkgs/tools/security/kbs2/default.nix
index 4e9b24818b47..54c9bfa1f4b1 100644
--- a/nixpkgs/pkgs/tools/security/kbs2/default.nix
+++ b/nixpkgs/pkgs/tools/security/kbs2/default.nix
@@ -1,24 +1,24 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, installShellFiles, python3, libxcb, AppKit }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, installShellFiles, python3, libxcb, AppKit, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "kbs2";
-  version = "0.2.6";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "woodruffw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PtXTC0VufUR5kle9C5KhCHHEQtQZvTTU1Q/cRMCB1g0=";
+    sha256 = "sha256-Mh56VjFHwjiZ0fvOF3fFw+1IU5HwkRdMlFrt3tZjcZY=";
   };
 
-  cargoSha256 = "sha256-S2czYglyHRkRN3Dq5reXFOaB1i/oIHXTY8Ile+Twvzo=";
+  cargoSha256 = "sha256-hjUDLA5vNCCIEFQsAhv3hDur1LIGQKYO2rR6AoEb+wA=";
 
   nativeBuildInputs = [ installShellFiles ]
     ++ lib.optionals stdenv.isLinux [ python3 ];
 
   buildInputs = [ ]
     ++ lib.optionals stdenv.isLinux [ libxcb ]
-    ++ lib.optionals stdenv.isDarwin [ AppKit ];
+    ++ lib.optionals stdenv.isDarwin [ AppKit libiconv ];
 
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/tools/security/keybase/gui.nix b/nixpkgs/pkgs/tools/security/keybase/gui.nix
index 8894a77a86a4..3032c18427ad 100644
--- a/nixpkgs/pkgs/tools/security/keybase/gui.nix
+++ b/nixpkgs/pkgs/tools/security/keybase/gui.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, alsaLib, atk, cairo, cups, udev, libdrm, mesa
+{ stdenv, lib, fetchurl, alsa-lib, atk, cairo, cups, udev, libdrm, mesa
 , dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libappindicator-gtk3
 , libnotify, nspr, nss, pango, systemd, xorg, autoPatchelfHook, wrapGAppsHook
 , runtimeShell, gsettings-desktop-schemas }:
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsaLib
+    alsa-lib
     atk
     cairo
     cups
diff --git a/nixpkgs/pkgs/tools/security/kiterunner/default.nix b/nixpkgs/pkgs/tools/security/kiterunner/default.nix
new file mode 100644
index 000000000000..a553202b6c1b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/kiterunner/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kiterunner";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "assetnote";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "084jywgqjj2hpaprdcb9a7i8hihphnfil0sx3wrlvjpa8sk0z1mw";
+  };
+
+  vendorSha256 = "1nczzzsnh38qi949ki5268y39ggkwncanc1pv7727qpwllzl62vy";
+
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/assetnote/kiterunner/cmd/kiterunner/cmd.Version=${version}")
+  '';
+
+  subPackages = [ "./cmd/kiterunner" ];
+
+  # Test data is missing in the repo
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Contextual content discovery tool";
+    longDescription = ''
+      Kiterunner is a tool that is capable of not only performing traditional
+      content discovery at lightning fast speeds, but also bruteforcing routes
+      and endpoints in modern applications.
+    '';
+    homepage = "https://github.com/assetnote/kiterunner";
+    license = with licenses; [ agpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/kubei/default.nix b/nixpkgs/pkgs/tools/security/kubei/default.nix
new file mode 100644
index 000000000000..840b4f69fc0a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/kubei/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubei";
+  version = "1.0.12";
+
+  src = fetchFromGitHub {
+    owner = "Portshift";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-QUPRw8fQ6ahBLZox6m4+feYIrcgDnCTe72nMF8iAV+Y=";
+  };
+
+  vendorSha256 = "sha256-uWDQf0zcTTPBthK60bmGJBP/m+yUu5PvYAbwyd0dcWE=";
+
+  meta = with lib; {
+    description = "Kubernetes runtime scanner";
+    longDescription = ''
+      Kubei is a vulnerabilities scanning and CIS Docker benchmark tool that
+      allows users to get an accurate and immediate risk assessment of their
+      kubernetes clusters. Kubei scans all images that are being used in a
+      Kubernetes cluster, including images of application pods and system pods.
+    '';
+    homepage = "https://github.com/Portshift/kubei";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/kubesec/default.nix b/nixpkgs/pkgs/tools/security/kubesec/default.nix
new file mode 100644
index 000000000000..31b76727cddc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/kubesec/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubesec";
+  version = "2.11.1";
+
+  src = fetchFromGitHub {
+    owner = "controlplaneio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-vT+SiSt9QoOkGbnPdKkzE8yehNJMa/3jYC+4h4QeNmw=";
+  };
+
+  vendorSha256 = "sha256-zfQu1EdwvR+LGmsbE8RA4pcOGgsukG1TMTCgPyNoVsc=";
+
+  # Tests wants to download additional files
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Security risk analysis tool for Kubernetes resources";
+    homepage = "https://github.com/controlplaneio/kubesec";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/libacr38u/default.nix b/nixpkgs/pkgs/tools/security/libacr38u/default.nix
index 314abba853df..0acb7e8bb1a8 100644
--- a/nixpkgs/pkgs/tools/security/libacr38u/default.nix
+++ b/nixpkgs/pkgs/tools/security/libacr38u/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, pcsclite , libusb-compat-0_1 }:
+{ lib, stdenv, fetchurl, pkg-config, pcsclite , libusb-compat-0_1, IOKit }:
 
 stdenv.mkDerivation {
   version = "1.7.11";
@@ -12,7 +12,8 @@ stdenv.mkDerivation {
   doCheck = true;
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ pcsclite libusb-compat-0_1 ];
+  buildInputs = [ pcsclite libusb-compat-0_1 ]
+    ++ lib.optional stdenv.isDarwin IOKit;
 
   preBuild = ''
     makeFlagsArray=(usbdropdir="$out/pcsc/drivers");
diff --git a/nixpkgs/pkgs/tools/security/libtpms/default.nix b/nixpkgs/pkgs/tools/security/libtpms/default.nix
index 85a2c1f72253..71ae5c969a0e 100644
--- a/nixpkgs/pkgs/tools/security/libtpms/default.nix
+++ b/nixpkgs/pkgs/tools/security/libtpms/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libtpms";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "libtpms";
     rev = "v${version}";
-    sha256 = "sha256-ljzxaZYC2RzasKoRvnjead8CEkbdptGD4V5QapvAQUQ=";
+    sha256 = "sha256-D6lYOVlgtBY6C07YqbG6TPnDKrUoEj82Ra6GK/HB7X8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/lynis/default.nix b/nixpkgs/pkgs/tools/security/lynis/default.nix
index 27dc6504e8bb..b2ef8d8354b4 100644
--- a/nixpkgs/pkgs/tools/security/lynis/default.nix
+++ b/nixpkgs/pkgs/tools/security/lynis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lynis";
-  version = "3.0.3";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "CISOfy";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+RkzsBcQhHrfY8gEiJK3ptDeulJzA3IuVXiYEpyAsmk=";
+    sha256 = "sha256-/pF1V8ZsylQOCW7K/O0R3HYYDdsdNDVmmUar21EzpcQ=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Security auditing tool for Linux, macOS, and UNIX-based systems";
     homepage = "https://cisofy.com/lynis/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.ryneeverett ];
   };
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
index ced514767e33..3119eeabade1 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.41"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.47"
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
index c5ccfc5a9d0a..760b9fe62c6e 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 451fe6ffdb90fffe3df6b788e6410217a511a3f4
-  ref: refs/tags/6.0.41
+  revision: 6416bc1a2867938dd39705a3daef25bc5dedfd16
+  ref: refs/tags/6.0.47
   specs:
-    metasploit-framework (6.0.41)
+    metasploit-framework (6.0.47)
       actionpack (~> 5.2.2)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
@@ -23,6 +23,7 @@ GIT
       faye-websocket
       filesize
       hrr_rb_ssh (= 0.3.0.pre2)
+      http-cookie
       irb
       jsobfu
       json
@@ -30,7 +31,7 @@ GIT
       metasploit-concern (~> 3.0.0)
       metasploit-credential (~> 4.0.0)
       metasploit-model (~> 3.1.0)
-      metasploit-payloads (= 2.0.43)
+      metasploit-payloads (= 2.0.45)
       metasploit_data_models (~> 4.1.0)
       metasploit_payloads-mettle (= 1.0.9)
       mqtt
@@ -79,6 +80,7 @@ GIT
       sinatra
       sqlite3
       sshkey
+      swagger-blocks
       thin
       tzinfo
       tzinfo-data
@@ -92,26 +94,26 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.1.0)
-    actionpack (5.2.5)
-      actionview (= 5.2.5)
-      activesupport (= 5.2.5)
+    actionpack (5.2.6)
+      actionview (= 5.2.6)
+      activesupport (= 5.2.6)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.2)
-    actionview (5.2.5)
-      activesupport (= 5.2.5)
+    actionview (5.2.6)
+      activesupport (= 5.2.6)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.3)
-    activemodel (5.2.5)
-      activesupport (= 5.2.5)
-    activerecord (5.2.5)
-      activemodel (= 5.2.5)
-      activesupport (= 5.2.5)
+    activemodel (5.2.6)
+      activesupport (= 5.2.6)
+    activerecord (5.2.6)
+      activemodel (= 5.2.6)
+      activesupport (= 5.2.6)
       arel (>= 9.0)
-    activesupport (5.2.5)
+    activesupport (5.2.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -123,22 +125,22 @@ GEM
     arel-helpers (2.12.0)
       activerecord (>= 3.1.0, < 7)
     aws-eventstream (1.1.1)
-    aws-partitions (1.446.0)
-    aws-sdk-core (3.114.0)
+    aws-partitions (1.465.0)
+    aws-sdk-core (3.114.1)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.234.0)
+    aws-sdk-ec2 (1.240.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.52.0)
+    aws-sdk-iam (1.55.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-kms (1.43.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.93.1)
+    aws-sdk-s3 (1.96.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
@@ -146,15 +148,17 @@ GEM
       aws-eventstream (~> 1, >= 1.0.2)
     bcrypt (3.1.16)
     bcrypt_pbkdf (1.1.0)
-    bindata (2.4.9)
-    bson (4.12.0)
+    bindata (2.4.10)
+    bson (4.12.1)
     builder (3.2.4)
     concurrent-ruby (1.0.5)
     cookiejar (0.3.3)
     crass (1.0.6)
-    daemons (1.3.1)
+    daemons (1.4.0)
     dnsruby (1.61.5)
       simpleidn (~> 0.1)
+    domain_name (0.5.20190701)
+      unf (>= 0.0.5, < 1.0.0)
     ed25519 (1.2.4)
     em-http-request (1.1.7)
       addressable (>= 2.3.4)
@@ -166,24 +170,30 @@ GEM
       eventmachine (>= 1.0.0.beta.4)
     erubi (1.10.0)
     eventmachine (1.2.7)
-    faker (2.17.0)
+    faker (2.18.0)
       i18n (>= 1.6, < 2)
-    faraday (1.4.1)
+    faraday (1.4.2)
+      faraday-em_http (~> 1.0)
+      faraday-em_synchrony (~> 1.0)
       faraday-excon (~> 1.1)
       faraday-net_http (~> 1.0)
       faraday-net_http_persistent (~> 1.1)
       multipart-post (>= 1.2, < 3)
       ruby2_keywords (>= 0.0.4)
+    faraday-em_http (1.0.0)
+    faraday-em_synchrony (1.0.0)
     faraday-excon (1.1.0)
     faraday-net_http (1.0.1)
     faraday-net_http_persistent (1.1.0)
-    faye-websocket (0.11.0)
+    faye-websocket (0.11.1)
       eventmachine (>= 0.12.0)
       websocket-driver (>= 0.5.1)
     filesize (0.2.0)
     hashery (2.1.2)
     hrr_rb_ssh (0.3.0.pre2)
       ed25519 (~> 1.2)
+    http-cookie (1.0.3)
+      domain_name (~> 0.5)
     http_parser.rb (0.6.0)
     i18n (1.8.10)
       concurrent-ruby (~> 1.0)
@@ -198,11 +208,11 @@ GEM
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     metasm (1.0.4)
-    metasploit-concern (3.0.1)
+    metasploit-concern (3.0.2)
       activemodel (~> 5.2.2)
       activesupport (~> 5.2.2)
       railties (~> 5.2.2)
-    metasploit-credential (4.0.3)
+    metasploit-credential (4.0.5)
       metasploit-concern
       metasploit-model
       metasploit_data_models (>= 3.0.0)
@@ -212,12 +222,12 @@ GEM
       rex-socket
       rubyntlm
       rubyzip
-    metasploit-model (3.1.3)
+    metasploit-model (3.1.4)
       activemodel (~> 5.2.2)
       activesupport (~> 5.2.2)
       railties (~> 5.2.2)
-    metasploit-payloads (2.0.43)
-    metasploit_data_models (4.1.3)
+    metasploit-payloads (2.0.45)
+    metasploit_data_models (4.1.4)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
       arel-helpers
@@ -229,7 +239,7 @@ GEM
       webrick
     metasploit_payloads-mettle (1.0.9)
     method_source (1.0.0)
-    mini_portile2 (2.5.0)
+    mini_portile2 (2.5.3)
     minitest (5.14.4)
     mqtt (0.5.0)
     msgpack (1.4.2)
@@ -242,10 +252,10 @@ GEM
     network_interface (0.0.2)
     nexpose (7.3.0)
     nio4r (2.5.7)
-    nokogiri (1.11.3)
+    nokogiri (1.11.7)
       mini_portile2 (~> 2.5.0)
       racc (~> 1.4)
-    octokit (4.20.0)
+    octokit (4.21.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
     openssl-ccm (1.2.2)
@@ -263,7 +273,7 @@ GEM
       ttfunk
     pg (1.2.3)
     public_suffix (4.0.6)
-    puma (5.2.2)
+    puma (5.3.2)
       nio4r (~> 2.0)
     racc (1.5.2)
     rack (2.2.3)
@@ -276,15 +286,15 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.3.0)
       loofah (~> 2.3)
-    railties (5.2.5)
-      actionpack (= 5.2.5)
-      activesupport (= 5.2.5)
+    railties (5.2.6)
+      actionpack (= 5.2.6)
+      activesupport (= 5.2.6)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.19.0, < 2.0)
     rake (13.0.3)
     rb-readline (0.5.5)
-    recog (2.3.19)
+    recog (2.3.20)
       nokogiri
     redcarpet (3.5.1)
     reline (0.2.5)
@@ -316,7 +326,7 @@ GEM
       rex-arch
     rex-ole (0.1.7)
       rex-text
-    rex-powershell (0.1.89)
+    rex-powershell (0.1.90)
       rex-random_identifier
       rex-text
       ruby-rc4
@@ -339,10 +349,10 @@ GEM
       rex-text
     rexml (3.2.5)
     rkelly-remix (0.0.7)
-    ruby-macho (2.5.0)
+    ruby-macho (2.5.1)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.4)
-    ruby_smb (2.0.8)
+    ruby_smb (2.0.10)
       bindata
       openssl-ccm
       openssl-cmac
@@ -362,7 +372,8 @@ GEM
       tilt (~> 2.0)
     sqlite3 (1.4.2)
     sshkey (2.0.0)
-    thin (1.8.0)
+    swagger-blocks (3.0.0)
+    thin (1.8.1)
       daemons (~> 1.0, >= 1.0.9)
       eventmachine (~> 1.0, >= 1.0.4)
       rack (>= 1, < 3)
@@ -380,7 +391,7 @@ GEM
     warden (1.2.9)
       rack (>= 2.0.9)
     webrick (1.7.0)
-    websocket-driver (0.7.3)
+    websocket-driver (0.7.4)
       websocket-extensions (>= 0.1.0)
     websocket-extensions (0.1.5)
     windows_error (0.1.2)
diff --git a/nixpkgs/pkgs/tools/security/metasploit/default.nix b/nixpkgs/pkgs/tools/security/metasploit/default.nix
index 27bbaf2b7c9c..fe435a5be452 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/default.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/default.nix
@@ -8,13 +8,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.0.41";
+  version = "6.0.47";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-6oaTc3UQayZ/ThurwFXdI1prwriz/XVS9zoeD427mj8=";
+    sha256 = "sha256-lK8FtHc4VLvp6bEYAw7cqHgbjQP2RS5+XxtjaVMiVWg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -45,5 +45,6 @@ in stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.bsd3;
     maintainers = [ maintainers.makefu ];
+    mainProgram = "msfconsole";
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
index ed2c124450c7..0f6b54632e46 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
@@ -4,50 +4,50 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m9wdcnkls8cs31gfic5hffnrz0l1iyk0dldwx2q2z58qhh3sw0m";
+      sha256 = "0b2xl458f2ygnjbvv0hacc8bk9qxbx64m2g7vw6f9y7k8q85930y";
       type = "gem";
     };
-    version = "5.2.5";
+    version = "5.2.6";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xlcfcbmwlmcp6vi9ay5xw9lqnj70bl1gn19hafygv9w65sw0n2i";
+      sha256 = "06f8212kplqhap9jpi49dvqlhwkfxxxm9nh8al6qjvl7mfh9qbzg";
       type = "gem";
     };
-    version = "5.2.5";
+    version = "5.2.6";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bb600bsxd0gf4vwqq2qiklg7wd37b0as6ll3k5hjy9v6izj006b";
+      sha256 = "1r28kcnzr8dm6idirndd8pvbmg5c678ijxk845g84ykq1l69czs6";
       type = "gem";
     };
-    version = "5.2.5";
+    version = "5.2.6";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03zijqm7xdmmylzp68hadvq5rps67lsq10hnq6kpmhq496pp7wlj";
+      sha256 = "05qqnichgxml6z3d1dpgjy2fi62dppnqxgg37hr9a35hwhn05fzc";
       type = "gem";
     };
-    version = "5.2.5";
+    version = "5.2.6";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bizrvn05d59l1qzwkhqvwmzicamq4p66z2ziap5ks9y6hqgqmzj";
+      sha256 = "1vybx4cj42hr6m8cdwbrqq2idh98zms8c11kr399xjczhl9ywjbj";
       type = "gem";
     };
-    version = "5.2.5";
+    version = "5.2.6";
   };
   addressable = {
     groups = ["default"];
@@ -114,40 +114,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n7cr44r7fvmc3rpk5kwwsz34ym2cmih76ij5xh2w1mmfyh3bgry";
+      sha256 = "0fs3fy6k4wmzh0z6c4rl313f5px81pj0viqxj1prksza4j7iymmi";
       type = "gem";
     };
-    version = "1.446.0";
+    version = "1.465.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09asbdcg96l165kq4hrks0hsk4hwr16h1qx22az4m7ld0ylvz3jc";
+      sha256 = "09ksnsj7jqb339fy4nh6v8zn9gy77vbyjpsiv33r35q82ivi32z2";
       type = "gem";
     };
-    version = "3.114.0";
+    version = "3.114.1";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rlq8vifcmz24v1aw8vj2czqj4dnf00smm5ndfpaxz5k6550lbz4";
+      sha256 = "0wqrvs49nzr2n9ilbjz61ac61d4d8wwpmzfaawhhq7l4hmwm4pdr";
       type = "gem";
     };
-    version = "1.234.0";
+    version = "1.240.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13mc05yx3f2g1543y349qysszzk811ns2dcjcidbszaasvpz3cci";
+      sha256 = "03vs5wf96qpjl309vnrnr4d8hy4l8bvnflgc806bm9n130cyvs9m";
       type = "gem";
     };
-    version = "1.52.0";
+    version = "1.55.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
@@ -164,10 +164,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x424hn32ipwxy21bhqn2wziz890w2gdr1xsli9lv2rrs1ibpnq7";
+      sha256 = "1g46v19n6pxa60x7fih2y9zc18q23kdjkb1p2qr33zmi6cz76cc4";
       type = "gem";
     };
-    version = "1.93.1";
+    version = "1.96.0";
   };
   aws-sigv4 = {
     groups = ["default"];
@@ -204,20 +204,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16z30ca74h1mr452jnj1csv6yfnmdxsz0m1xpjf3svwybrx25rng";
+      sha256 = "06lqi4svq5qls9f7nnvd2zmjdqmi2sf82sq78ci5d78fq0z5x2vr";
       type = "gem";
     };
-    version = "2.4.9";
+    version = "2.4.10";
   };
   bson = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gny4n34gwfc6x04x7vli5my6cdl90n4i0wsxm758q81hfmkqxd7";
+      sha256 = "0pnr0b7phdzhkw9xqhmqnw5673ndi13ks3dqwqmbxq6v0rsxiapc";
       type = "gem";
     };
-    version = "4.12.0";
+    version = "4.12.1";
   };
   builder = {
     groups = ["default"];
@@ -264,10 +264,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w";
+      sha256 = "1fki1aipqafqlg8xy25ykk0ql1dciy9kk6lcp5gzgkh9ccmaxzf3";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   dnsruby = {
     groups = ["default"];
@@ -279,6 +279,16 @@
     };
     version = "1.61.5";
   };
+  domain_name = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+      type = "gem";
+    };
+    version = "0.5.20190701";
+  };
   ed25519 = {
     groups = ["default"];
     platforms = [];
@@ -334,20 +344,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z3d4y6xg8prn3zdjw1qpqrnziq1d3zigqil4sxjj0pbr46gc1d6";
+      sha256 = "1hwir9b9zy0asy0vap7zfqv75lbws4a1pmh74lhqd2rndv32vfc5";
       type = "gem";
     };
-    version = "2.17.0";
+    version = "2.18.0";
   };
   faraday = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q646m07lfahakx5jdq77j004rcgfj6lkg13c0f84993gi78dhvi";
+      sha256 = "07mhk70gv453pg38md346470hknyhipdqppnplq706ll3k3lzb7v";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  faraday-em_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-em_synchrony = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.0.0";
   };
   faraday-excon = {
     groups = ["default"];
@@ -384,10 +414,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cwngdb41zh842y3nzz3cr7z2100pjsl7m3i05yjc1wlyrdk2sm3";
+      sha256 = "14lrb065xc4mny9faf91357r8s91qsbi7zfzsfqlj202b8hsgqf8";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.11.1";
   };
   filesize = {
     groups = ["default"];
@@ -419,6 +449,16 @@
     };
     version = "0.3.0.pre2";
   };
+  http-cookie = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
   "http_parser.rb" = {
     groups = ["default"];
     platforms = [];
@@ -514,62 +554,62 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19cz0g463wl35gpdy1630n88a9m7fhhlcylspvvwc0m01sipc33g";
+      sha256 = "0zbcnhji80cyj19jkdp8wpi1msg9xfm0lacpm8ggm8fca56234zv";
       type = "gem";
     };
-    version = "3.0.1";
+    version = "3.0.2";
   };
   metasploit-credential = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f6cjvk68yypciycp8vdvhc5hrwmc8qi4y06s1cd77zj4m2skkmn";
+      sha256 = "0wflb4r5mz2g29bzjpwc004h6vca9kd0z02v27wc378jgg6q0gna";
       type = "gem";
     };
-    version = "4.0.3";
+    version = "4.0.5";
   };
   metasploit-framework = {
     groups = ["default"];
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "451fe6ffdb90fffe3df6b788e6410217a511a3f4";
-      sha256 = "0gwspf6hy7isyx97bzdkp316nni3vmaw1aqv9rzjcsqhfmrr71pa";
+      rev = "6416bc1a2867938dd39705a3daef25bc5dedfd16";
+      sha256 = "0s2m499njqqvbxz2wign0f6iny58vh70665ix7lvnm1qfys0bbwl";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.0.41";
+    version = "6.0.47";
   };
   metasploit-model = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gmh23c3hc4my244m5lpd4kiysrsprag4rn6kvnnphxiflxvi4f7";
+      sha256 = "10ndgv4c30rq211f5lyngfcp87lxzgc9h8a7jx40wih43dj6faxq";
       type = "gem";
     };
-    version = "3.1.3";
+    version = "3.1.4";
   };
   metasploit-payloads = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rr6g3gqjsvdjkqfbgpc3wfzpq367dk9zn3rzm8h9kd09hy3i760";
+      sha256 = "09w5r7g19n845h9ii66h8cx9ikgv69d59ry67183h7c76mhzvm9c";
       type = "gem";
     };
-    version = "2.0.43";
+    version = "2.0.45";
   };
   metasploit_data_models = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0li8lphplsmv9x1f14c22w95gjx2lscas3x5py7x7kc05pfv33bg";
+      sha256 = "1gzfvfqs9mf50dcnirc1944a25920s1swjd9g97d1x340651xmmr";
       type = "gem";
     };
-    version = "4.1.3";
+    version = "4.1.4";
   };
   metasploit_payloads-mettle = {
     groups = ["default"];
@@ -596,10 +636,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
+      sha256 = "1ad0mli9rc0f17zw4ibp24dbj1y39zkykijsjmnzl4gwpg5s0j6k";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.5.3";
   };
   minitest = {
     groups = ["default"];
@@ -716,20 +756,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
+      sha256 = "1vrn31385ix5k9b0yalnlzv360isv6dincbcvi8psllnwz4sjxj9";
       type = "gem";
     };
-    version = "1.11.3";
+    version = "1.11.7";
   };
   octokit = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
+      sha256 = "0ak64rb48d8z98nw6q70r6i0i3ivv61iqla40ss5l79491qfnn27";
       type = "gem";
     };
-    version = "4.20.0";
+    version = "4.21.0";
   };
   openssl-ccm = {
     groups = ["default"];
@@ -826,10 +866,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k";
+      sha256 = "0lmaq05a257m9588a81wql3a5p039f221f0dmq57bm2qjwxydjmj";
       type = "gem";
     };
-    version = "5.2.2";
+    version = "5.3.2";
   };
   racc = {
     groups = ["default"];
@@ -896,10 +936,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "072spzdpc8bv35nflr43i67njlriavqkrz6cgyd42adz6bqyval9";
+      sha256 = "0rs97fxv13hgpbmyhk8ag8qzgkh25css0797h90k9w1vg9djl84k";
       type = "gem";
     };
-    version = "5.2.5";
+    version = "5.2.6";
   };
   rake = {
     groups = ["default"];
@@ -926,10 +966,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00czf392immsaff10snjxky2vpnfck1bgszpckx15y2kydag5k9i";
+      sha256 = "11hc55mdl2d4kb8vrbazydxdnzr5l7dd4v5spqrrgnmp2d7rq3az";
       type = "gem";
     };
-    version = "2.3.19";
+    version = "2.3.20";
   };
   redcarpet = {
     groups = ["default"];
@@ -1046,10 +1086,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wza4g3kkscc17kaw44hnq8qs2nmvppb9awaf27lp4v1c1kdxixs";
+      sha256 = "08a9s82y4bv2bis0szasrrqvz6imwx94ckg259f7w39ng1fbc7b1";
       type = "gem";
     };
-    version = "0.1.89";
+    version = "0.1.90";
   };
   rex-random_identifier = {
     groups = ["default"];
@@ -1156,10 +1196,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05nfdv5isk3g13qhzm6axg70bghg1z5nbsl04dwqqhaifjys0dhf";
+      sha256 = "1jgmhj4srl7cck1ipbjys6q4klcs473gq90bm59baw4j1wpfaxch";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.5.1";
   };
   ruby-rc4 = {
     groups = ["default"];
@@ -1186,10 +1226,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bg7xxw5cww4wy7vhr54i07ni82sh4qq465fir7az5z0hf36b1kg";
+      sha256 = "1h8p6ksfr9xhpj9p38b4mjj76zm4d0dg06hhp00ii9hh7vy6mryd";
       type = "gem";
     };
-    version = "2.0.8";
+    version = "2.0.10";
   };
   rubyntlm = {
     groups = ["default"];
@@ -1261,15 +1301,25 @@
     };
     version = "2.0.0";
   };
+  swagger-blocks = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bycg5si4pr69b0qqiqzhwcich90mvmn0v0gs39slvxg5nv3h28k";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
   thin = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g5p3r47qxxfmfagdf8wb68pd24938cgzdfn6pmpysrn296pg5m5";
+      sha256 = "123bh7qlv6shk8bg8cjc84ix8bhlfcilwnn3iy6zq3l57yaplm9l";
       type = "gem";
     };
-    version = "1.8.0";
+    version = "1.8.1";
   };
   thor = {
     groups = ["default"];
@@ -1376,10 +1426,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3rs4kcj0jba8idxla3s6xd1xfln3k8b4cb1dik2lda3ifnp3dh";
+      sha256 = "0l1wmvs0yf8gz64rymijx2pygwch99qdci91q8j193fwrz22bp7x";
       type = "gem";
     };
-    version = "0.7.3";
+    version = "0.7.4";
   };
   websocket-extensions = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/security/nbtscanner/default.nix b/nixpkgs/pkgs/tools/security/nbtscanner/default.nix
new file mode 100644
index 000000000000..6ad9fdd47708
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/nbtscanner/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nbtscanner";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "jonkgrimes";
+    repo = pname;
+    rev = version;
+    sha256 = "06507a8y41v42cmvjpzimyrzdp972w15fjpc6c6750n1wa2wdl6c";
+  };
+
+  cargoSha256 = "0cis54zmr2x0f4z664lmhk9dzx00hvds6jh3x417308sz7ak11gd";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "NetBIOS scanner written in Rust";
+    homepage = "https://github.com/jonkgrimes/nbtscanner";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/nuclei/default.nix b/nixpkgs/pkgs/tools/security/nuclei/default.nix
index da654e74f9bd..2e32940657bb 100644
--- a/nixpkgs/pkgs/tools/security/nuclei/default.nix
+++ b/nixpkgs/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.3.4";
+  version = "2.3.7";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qjbr3kTgIFdxyzRwSvWyh5krrlzD8i1nMeoLZYSbr6g=";
+    sha256 = "sha256-loViPW84KdAOJbL8oUJeiON1f6vrZTcYXRP2VBMNkGk=";
   };
 
-  vendorSha256 = "sha256-qmuua7HXnwuy24CSqHKALqNDmXBvSIXYTVu3kaGVoeU=";
+  vendorSha256 = "sha256-HBpKaRI7gcWp13GVxTlnZvvTyRncfLmu0NmwAUyQ4hQ=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/security/oath-toolkit/default.nix b/nixpkgs/pkgs/tools/security/oath-toolkit/default.nix
index ba49da102fb2..a925d07cb7c8 100644
--- a/nixpkgs/pkgs/tools/security/oath-toolkit/default.nix
+++ b/nixpkgs/pkgs/tools/security/oath-toolkit/default.nix
@@ -1,48 +1,27 @@
-{ lib, stdenv, fetchFromGitLab, fetchpatch, pam, xmlsec, autoreconfHook, pkg-config, libxml2, gtk-doc, perl, gengetopt, bison, help2man }:
+{ lib, stdenv, fetchurl, pam, xmlsec }:
 
 let
   securityDependency =
     if stdenv.isDarwin then xmlsec
     else pam;
 
-in stdenv.mkDerivation {
-  name = "oath-toolkit-2.6.2";
+in stdenv.mkDerivation rec {
+  pname = "oath-toolkit";
+  version = "2.6.7";
 
-  src = fetchFromGitLab {
-    owner = "oath-toolkit";
-    repo = "oath-toolkit";
-    rev = "0dffdec9c5af5c89a5af43add29d8275eefe7414";
-    sha256 = "0n2sl444723f1k0sjmc0mzdwslx51yxac39c2cx2bl3ykacgfv74";
+  src = fetchurl {
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1aa620k05lsw3l3slkp2mzma40q3p9wginspn9zk8digiz7dzv9n";
   };
 
-  patches = [
-    # fix for glibc>=2.28
-    (fetchpatch {
-      name   = "new_glibc_check.patch";
-      url    = "https://sources.debian.org/data/main/o/oath-toolkit/2.6.1-1.3/debian/patches/new-glibc-check.patch";
-      sha256 = "0h75xyy3xsl485v7w27yqkks6z9sgsjmrv6wiswy15fdj5wyciv3";
-    })
-  ];
+  buildInputs = [ securityDependency ];
 
-  buildInputs = [ securityDependency libxml2 perl gengetopt bison ];
-
-  nativeBuildInputs = [ autoreconfHook gtk-doc help2man pkg-config ];
-
-  # man file generation fails when true
-  enableParallelBuilding = false;
-
-  configureFlags = [ "--disable-pskc" ];
-
-  # Replicate the steps from cfg.mk
-  preAutoreconf = ''
-    printf "gdoc_MANS =\ngdoc_TEXINFOS =\n" > liboath/man/Makefile.gdoc
-    printf "gdoc_MANS =\ngdoc_TEXINFOS =\n" > libpskc/man/Makefile.gdoc
-    touch ChangeLog
-  '';
+  passthru.updateScript = ./update.sh;
 
   meta = with lib; {
     description = "Components for building one-time password authentication systems";
     homepage = "https://www.nongnu.org/oath-toolkit/";
+    maintainers = with maintainers; [ schnusch ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/oath-toolkit/update.sh b/nixpkgs/pkgs/tools/security/oath-toolkit/update.sh
new file mode 100755
index 000000000000..3502a541fa8c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/oath-toolkit/update.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl git gnugrep nix
+
+set -euo pipefail
+
+nixfile='default.nix'
+release_url='https://download.savannah.nongnu.org/releases/oath-toolkit/'
+attr='oathToolkit'
+command='oathtool --version'
+
+color() {
+    printf '%s: \033[%sm%s\033[39m\n' "$0" "$1" "$2" >&2 || true
+}
+
+color 32 "downloading $release_url..."
+if ! release_page=$(curl -Lf "$release_url"); then
+    color 31 "cannot download release page"
+    exit 1
+fi
+
+tarball_name=$(printf '%s\n' "$release_page" \
+    | grep -Po '(?<=href=").*?\.tar\.gz(?=")' \
+    | sort -n | tail -n1)
+tarball_version="${tarball_name%.tar.*}"
+tarball_version="${tarball_version##*-}"
+tarball_url="mirror://savannah${release_url#https://*/releases}$tarball_name"
+
+color 32 "nix-prefetch-url $tarball_url..."
+if ! tarball_sha256=$(nix-prefetch-url --type sha256 "$tarball_url"); then
+    color 31 "cannot prefetch $tarball_url"
+    exit 1
+fi
+
+old_version=$(grep -Pom1 '(?<=version = ").*?(?=";)' "$nixfile")
+
+version=$(printf 'version = "%s";\n' "$tarball_version")
+sha256=$(printf 'sha256 = "%s";\n' "$tarball_sha256")
+sed -e "s,version = .*,$version," -e "s,sha256 = .*,$sha256," -i "$nixfile"
+
+if git diff --exit-code "$nixfile" > /dev/stderr; then
+    printf '\n' >&2 || true
+    color 32 "$tarball_version is up to date"
+else
+    color 32 "running '$command' with nix-shell..."
+    nix-shell -p "callPackage ./$nixfile {}" --run "$command"
+    msg="$attr: $old_version -> $tarball_version"
+    printf '\n' >&2 || true
+    color 31 "$msg"
+    git commit -m "$msg" "$nixfile"
+fi
diff --git a/nixpkgs/pkgs/tools/security/onioncircuits/default.nix b/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
index 8c5083ee8af6..f5d9185dc986 100644
--- a/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
+++ b/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchgit, python3, intltool, gtk3, gobject-introspection, gnome3 }:
+{ lib, fetchgit, python3, intltool, gtk3, gobject-introspection, gnome }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "onioncircuits";
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
   postFixup = ''
     wrapProgram "$out/bin/onioncircuits" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix XDG_DATA_DIRS : "$out/share:${gnome3.adwaita-icon-theme}/share"
+      --prefix XDG_DATA_DIRS : "$out/share:${gnome.adwaita-icon-theme}/share"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/pass/extensions/checkup.nix b/nixpkgs/pkgs/tools/security/pass/extensions/checkup.nix
index bafaabba843b..5ae846d4a4b3 100644
--- a/nixpkgs/pkgs/tools/security/pass/extensions/checkup.nix
+++ b/nixpkgs/pkgs/tools/security/pass/extensions/checkup.nix
@@ -1,18 +1,22 @@
 { lib, stdenv, fetchFromGitHub
-, curl, findutils, gnugrep, gnused }:
+, curl, findutils, gnugrep, gnused, shellcheck }:
 
-stdenv.mkDerivation rec {
+let
   pname = "pass-checkup";
-  version = "0.2.0";
+  version = "0.2.1";
+in stdenv.mkDerivation {
+  inherit pname version;
 
   src = fetchFromGitHub {
     owner = "etu";
-    repo = "pass-checkup";
+    repo = pname;
     rev = version;
-    sha256 = "17fyf8zj535fg43yddjww1jhxfb3nbdkn622wjxaai2nf46jzh7y";
+    sha256 = "18b6rx59r7g0hvqs2affvw0g0jyifyzhanwgz2q2b8nhjgqgnar2";
   };
 
-  patchPhase = ''
+  nativeBuildInputs = [ shellcheck ];
+
+  postPatch = ''
     substituteInPlace checkup.bash \
       --replace curl ${curl}/bin/curl \
       --replace find ${findutils}/bin/find \
@@ -21,13 +25,17 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
+
     install -D -m755 checkup.bash $out/lib/password-store/extensions/checkup.bash
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "A pass extension to check against the Have I been pwned API to see if your passwords are publicly leaked or not";
     homepage = "https://github.com/etu/pass-checkup";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ etu ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/security/pass/extensions/import.nix b/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
index be2492112c3f..7fa9ce3177e5 100644
--- a/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
+++ b/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
@@ -4,6 +4,7 @@
 , python3Packages
 , gnupg
 , pass
+, makeWrapper
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -17,9 +18,14 @@ python3Packages.buildPythonApplication rec {
     sha256 = "sha256-nH2xAqWfMT+Brv3z9Aw6nbvYqArEZjpM28rKsRPihqA=";
   };
 
-  # by default, tries to install scripts/pimport, which is a bash wrapper around "python -m pass_import ..."
-  # This is a better way to do the same, and takes advantage of the existing Nix python environments
   patches = [
+    (fetchpatch {
+      name = "support-for-keepass-4.0.0.patch";
+      url = "https://github.com/roddhjav/pass-import/commit/86cfb1bb13a271fefe1e70f24be18e15a83a04d8.patch";
+      sha256 = "0mrlblqlmwl9gqs2id4rl4sivrcclsv6zyc6vjqi78kkqmnwzhxh";
+    })
+    # by default, tries to install scripts/pimport, which is a bash wrapper around "python -m pass_import ..."
+    # This is a better way to do the same, and takes advantage of the existing Nix python environments
     # from https://github.com/roddhjav/pass-import/pull/138
     (fetchpatch {
       name = "pass-import-pr-138-pimport-entrypoint.patch";
@@ -50,6 +56,16 @@ python3Packages.buildPythonApplication rec {
     $out/bin/pimport --list-exporters --list-importers
   '';
 
+  postInstall = ''
+    mkdir -p $out/lib/password-store/extensions
+    cp ${src}/scripts/import.bash $out/lib/password-store/extensions/import.bash
+    wrapProgram $out/lib/password-store/extensions/import.bash \
+      --prefix PATH : "${python3Packages.python.withPackages(_: propagatedBuildInputs)}/bin" \
+      --prefix PYTHONPATH : "$out/${python3Packages.python.sitePackages}" \
+      --run "export PREFIX"
+    cp -r ${src}/share $out/
+  '';
+
   meta = with lib; {
     description = "Pass extension for importing data from existing password managers";
     homepage = "https://github.com/roddhjav/pass-import";
diff --git a/nixpkgs/pkgs/tools/security/plasma-pass/default.nix b/nixpkgs/pkgs/tools/security/plasma-pass/default.nix
new file mode 100644
index 000000000000..20f64b725f11
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/plasma-pass/default.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, lib, fetchFromGitLab, cmake, extra-cmake-modules
+, ki18n
+, kitemmodels
+, oathToolkit
+, qgpgme
+, plasma-framework
+, qt5 }:
+
+mkDerivation rec {
+  pname = "plasma-pass";
+  version = "1.2.0";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "plasma";
+    repo = "plasma-pass";
+    rev = "v${version}";
+    sha256 = "1w2mzxyrh17x7da62b6sg1n85vnh1q77wlrfxwfb1pk77y59rlf1";
+  };
+
+  buildInputs  = [
+    ki18n
+    kitemmodels
+    oathToolkit
+    qgpgme
+    plasma-framework
+    qt5.qtbase
+    qt5.qtdeclarative
+  ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  meta = with lib; {
+    description = "A Plasma applet to access passwords from pass, the standard UNIX password manager";
+    homepage = "https://invent.kde.org/plasma/plasma-pass";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ matthiasbeyer ];
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/security/prs/default.nix b/nixpkgs/pkgs/tools/security/prs/default.nix
index 1b705241458f..6d97958ec78c 100644
--- a/nixpkgs/pkgs/tools/security/prs/default.nix
+++ b/nixpkgs/pkgs/tools/security/prs/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prs";
-  version = "0.2.9";
+  version = "0.2.11";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "prs";
     rev = "v${version}";
-    sha256 = "sha256-9qaRhTfdppU72w8jDwD1e8ABuGG+9GyrRIUVsry4Vos=";
+    sha256 = "sha256-jBHe3ZeB+GS+Ds8c6ySwoyyJfqoCWKSgIObg+z1TNmU=";
   };
 
-  cargoSha256 = "sha256-j+kyllMcYj7/Ig5ho548L1wW+TtuQOc/zkxT6SNNN6w=";
+  cargoSha256 = "sha256-dhQuzzML817cDIsYuZElHZfq55AdZ20xeXTNm1nJPqk=";
 
   postPatch = ''
     # The GPGME backend is recommended
diff --git a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
index 8ba6937c4486..86dc3dfff335 100644
--- a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
+++ b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
@@ -3,20 +3,23 @@
 
 mkDerivation rec {
   pname = "qdigidoc";
-  version = "4.2.3";
+  version = "4.2.8";
 
   src = fetchgit {
     url = "https://github.com/open-eid/DigiDoc4-Client";
     rev = "v${version}";
-    sha256 = "1hj49vvg8vrayr9kpz73fafa7k298hmiamkyd8c3ipy6s51xh6q4";
+    sha256 = "02k2s6l79ssvrksa0midm7bq856llrmq0n40yxwm3j011nvc8vsm";
     fetchSubmodules = true;
   };
 
   tsl = fetchurl {
     url = "https://ec.europa.eu/information_society/policy/esignature/trusted-list/tl-mp.xml";
-    sha256 = "0llr2fj8vd097hcr1d0xmzdy4jydv0b5j5qlksbjffs22rqgal14";
+    sha256 = "0klz9blrp0jjhlr9k1i266afp44pqmii1x0y8prk0417ia3fxpli";
   };
 
+  # Adds explicit imports for QPainterPath, fixed in upstream (https://github.com/open-eid/DigiDoc4-Client/pull/914)
+  patches = [ ./qt5.15.patch ];
+
   nativeBuildInputs = [ cmake darkhttpd gettext makeWrapper pkg-config ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch b/nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch
new file mode 100644
index 000000000000..6f390702348b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/qdigidoc/qt5.15.patch
@@ -0,0 +1,39 @@
+From 1aa314f5433b9b3e89a1c05b5c465fb477435e23 Mon Sep 17 00:00:00 2001
+From: Dmitri Smirnov <dmitri@smirnov.ee>
+Date: Mon, 8 Mar 2021 14:15:27 +0100
+Subject: [PATCH] =?UTF-8?q?Added=20explicit=20imports=20for=20QPainterPath?=
+ =?UTF-8?q?=20to=20fix=20builds=20with=20Qt=20=E2=89=A5=205.15?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Dmitri Smirnov <dmitri@smirnov.ee>
+---
+ client/widgets/CheckBox.cpp   | 1 +
+ client/widgets/MainAction.cpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/client/widgets/CheckBox.cpp b/client/widgets/CheckBox.cpp
+index a03b56e5d..725d585b7 100644
+--- a/client/widgets/CheckBox.cpp
++++ b/client/widgets/CheckBox.cpp
+@@ -22,6 +22,7 @@
+ #include <QBrush>
+ #include <QPaintEvent>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QStyleOptionButton>
+ 
+ CheckBox::CheckBox(QWidget *parent)
+diff --git a/client/widgets/MainAction.cpp b/client/widgets/MainAction.cpp
+index 4cf4bb1cf..a46c193e3 100644
+--- a/client/widgets/MainAction.cpp
++++ b/client/widgets/MainAction.cpp
+@@ -24,6 +24,7 @@
+ 
+ #include <QtCore/QSettings>
+ #include <QtGui/QPainter>
++#include <QtGui/QPainterPath>
+ #include <QtGui/QPaintEvent>
+ 
+ using namespace ria::qdigidoc4;
diff --git a/nixpkgs/pkgs/tools/security/rage/default.nix b/nixpkgs/pkgs/tools/security/rage/default.nix
index d248fb19a276..99e61dc23581 100644
--- a/nixpkgs/pkgs/tools/security/rage/default.nix
+++ b/nixpkgs/pkgs/tools/security/rage/default.nix
@@ -1,24 +1,25 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, installShellFiles
-, Foundation, Security }:
+, Foundation, Security, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rage";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "str4d";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oYCARqG5YwKO0b73aEMLr/xzXl6xBEMCvE1HMCtMq20=";
+    sha256 = "1vag448zpjyplcjpf1ir81l8ip3yxm9vkrxffqr78zslb4k6hw2w";
   };
 
-  cargoSha256 = "sha256-vadXIdqfmol4thHIwpkQCn7HsXdxo0l+6CBm3QIJmeA=";
+  cargoSha256 = "06jfhq9vnkq5g5bw1zl2sxsih63yajcyk9zaizhzkdsbhydr4955";
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Foundation
     Security
+    libiconv
   ];
 
   # cargo test has an x86-only dependency
@@ -37,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
     homepage = "https://github.com/str4d/rage";
-    changelog = "https://github.com/str4d/rage/releases/tag/v${version}";
+    changelog = "https://github.com/str4d/rage/raw/v${version}/rage/CHANGELOG.md";
     license = with licenses; [ asl20 mit ]; # either at your option
     maintainers = with maintainers; [ marsam ryantm ];
   };
diff --git a/nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch b/nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch
deleted file mode 100644
index 9074dd925b82..000000000000
--- a/nixpkgs/pkgs/tools/security/rbw/bump-security-framework-crate.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Bump security-framework from 2.1.1 to 2.1.2
-
-security-framework=2.1.1 doesn't build on Darwin 10.12.
-https://github.com/kornelski/rust-security-framework/issues/124
-
---- i/Cargo.lock
-+++ w/Cargo.lock
-@@ -1361,9 +1361,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
- 
- [[package]]
- name = "security-framework"
--version = "2.1.1"
-+version = "2.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166"
-+checksum = "d493c5f39e02dfb062cd8f33301f90f9b13b650e8c1b1d0fd75c19dd64bff69d"
- dependencies = [
-  "bitflags",
-  "core-foundation",
diff --git a/nixpkgs/pkgs/tools/security/rbw/default.nix b/nixpkgs/pkgs/tools/security/rbw/default.nix
index c1f99719d76c..96616987510d 100644
--- a/nixpkgs/pkgs/tools/security/rbw/default.nix
+++ b/nixpkgs/pkgs/tools/security/rbw/default.nix
@@ -5,6 +5,7 @@
 , openssl
 , pkg-config
 , makeWrapper
+, installShellFiles
 , Security
 , libiconv
 
@@ -20,21 +21,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchCrate {
     inherit version;
     crateName = pname;
-    sha256 = "1xihjx4f8kgyablxsy8vgn4w6i92p2xm5ncacdk39npa5g8wadlx";
+    sha256 = "14cnqc5cf6qm2g9ypv2pbqbvymawyrqn3fc778labgqg24khqcyq";
   };
 
-  cargoSha256 = "0fvs06wd05a90dggi7n46d5gl9flnciqzg9j3ijmz3z5bb6aky1b";
-
-  cargoPatches = [ ./bump-security-framework-crate.patch ];
+  cargoSha256 = "0izn5bcvk1rx69sjwyfc49nmvw7k0jysqb0bpdpwdliaa06ggl86";
 
   nativeBuildInputs = [
     pkg-config
     makeWrapper
+    installShellFiles
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
@@ -60,7 +60,12 @@ rustPlatform.buildRustPackage rec {
     export OPENSSL_LIB_DIR="${openssl.out}/lib"
   '';
 
-  postInstall = lib.optionalString withFzf ''
+  postInstall = ''
+    for shell in bash zsh fish; do
+      $out/bin/rbw gen-completions $shell > rbw.$shell
+      installShellCompletion rbw.$shell
+    done
+  '' + lib.optionalString withFzf ''
     cp bin/rbw-fzf $out/bin
   '' + lib.optionalString withRofi ''
     cp bin/rbw-rofi $out/bin
diff --git a/nixpkgs/pkgs/tools/security/ripasso/cursive.nix b/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
index 4cdc3f6d89e2..cc2765bd7075 100644
--- a/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
+++ b/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
@@ -14,7 +14,7 @@ buildRustPackage rec {
 
   patches = [ ./fix-tests.patch ];
 
-  cargoSha256 = "1wpn67v0xmxhn1dgzhh1pwz1yc3cizmfxhpb7qv9b27ynx4486ji";
+  cargoSha256 = "1sv5czhrafk15yj5xyd1x9jdqn1dz6aqpxxnyz49icx53qlg9f8g";
 
   cargoBuildFlags = [ "-p ripasso-cursive -p ripasso-man" ];
 
diff --git a/nixpkgs/pkgs/tools/security/rnp/default.nix b/nixpkgs/pkgs/tools/security/rnp/default.nix
new file mode 100644
index 000000000000..3c60190f1287
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/rnp/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, stdenv
+, asciidoctor
+, botan2
+, bzip2
+, cmake
+, fetchFromGitHub
+, gnupg
+, gtest
+, json_c
+, pkg-config
+, python3
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rnp";
+  version = "0.15.1";
+
+  src = fetchFromGitHub {
+    owner = "rnpgp";
+    repo = "rnp";
+    rev = "v${version}";
+    sha256 = "1l7y99rcss5w24lil6nqwr0dzh2jvq0qxmdvq7j5yx3fdssd5xsv";
+  };
+
+  buildInputs = [ zlib bzip2 json_c botan2 ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+    "-DBUILD_SHARED_LIBS=on"
+    "-DBUILD_TESTING=on"
+    "-DDOWNLOAD_GTEST=off"
+    "-DDOWNLOAD_RUBYRNP=off"
+  ];
+
+  nativeBuildInputs = [ asciidoctor cmake gnupg gtest pkg-config python3 ];
+
+  # NOTE: check-only inputs should ideally be moved to checkInputs, but it
+  # would fail during buildPhase.
+  # checkInputs = [ gtest python3 ];
+
+  outputs = [ "out" "lib" "dev" ];
+
+  preConfigure = ''
+    echo "v${version}" > version.txt
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rnpgp/rnp";
+    description = "High performance C++ OpenPGP library, fully compliant to RFC 4880";
+    license = licenses.bsd2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ribose-jeffreylau ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/rustscan/default.nix b/nixpkgs/pkgs/tools/security/rustscan/default.nix
index 80cc8c8cc1fb..adf514006b15 100644
--- a/nixpkgs/pkgs/tools/security/rustscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/rustscan/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0fdbsz1v7bb5dm3zqjs1qf73lb1m4qzkqyb3h3hbyrp9vklgxsgw";
   };
 
-  cargoSha256 = "039xarscwqndpyrr3sgzkhqna3c908zh06id8x2qaykm8l248zs9";
+  cargoSha256 = "0658jbx59qrsgpfczzlfrbp2qm7kh0c5561bsxzmgiri7fcz9w0n";
 
   postPatch = ''
     substituteInPlace src/main.rs \
diff --git a/nixpkgs/pkgs/tools/security/sammler/default.nix b/nixpkgs/pkgs/tools/security/sammler/default.nix
new file mode 100644
index 000000000000..f5bfab987a17
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/sammler/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "sammler";
+  version = "20210523-${lib.strings.substring 0 7 rev}";
+  rev = "259b9fc6155f40758e5fa480683467c35df746e7";
+
+  src = fetchFromGitHub {
+    owner = "redcode-labs";
+    repo = "Sammler";
+    inherit rev;
+    sha256 = "1gsv83sbqc9prkigbjvkhh547w12l3ynbajpnbqyf8sz4bd1nj5c";
+  };
+
+  vendorSha256 = "1510rhdac8v21kpp00q8yy6b13hgac8547d7f5q7nwrgnihg03w4";
+
+  subPackages = [ "." ];
+
+  runVend = true;
+
+  meta = with lib; {
+    description = "Tool to extract useful data from documents";
+    homepage = "https://github.com/redcode-labs/Sammler";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/sequoia/default.nix b/nixpkgs/pkgs/tools/security/sequoia/default.nix
index b0172ff1d501..a40e2ce33c99 100644
--- a/nixpkgs/pkgs/tools/security/sequoia/default.nix
+++ b/nixpkgs/pkgs/tools/security/sequoia/default.nix
@@ -25,23 +25,23 @@ rustPlatform.buildRustPackage rec {
   pname = "sequoia";
   # Upstream has separate version numbering for the library and the CLI frontend.
   # This derivation provides the CLI frontend, and thus uses its version number.
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
     repo = "sequoia";
     rev = "sq/v${version}";
-    sha256 = "0zavkf0grkqljyiywcprsiv8igidk8vc3yfj3fzqvbhm43vnnbdw";
+    sha256 = "13f582g10vba0cpbdmqkkfzgd5jgagb640jaz1w425wf5nbh6q50";
   };
 
-  cargoSha256 = "172f0gsy5hssrqv0l1np3c0qd1ayp6nqbpqmgwrkc4l37y5fn232";
+  cargoSha256 = "sha256-qIGP48uj2iQ6MVgy5anKI9QrX9vnuKh46Fmmcczda4w=";
 
   nativeBuildInputs = [
     pkg-config
     cargo
     rustc
     git
-    llvmPackages_10.libclang
+    llvmPackages_10.libclang.lib
     llvmPackages_10.clang
     ensureNewerSourcesForZipFilesHook
     capnproto
@@ -72,7 +72,7 @@ rustPlatform.buildRustPackage rec {
     "build-release"
   ];
 
-  LIBCLANG_PATH = "${llvmPackages_10.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages_10.libclang.lib}/lib";
 
   # Sometimes, tests fail on CI (ofborg) & hydra without this
   CARGO_TEST_ARGS = "--workspace --exclude sequoia-store";
diff --git a/nixpkgs/pkgs/tools/security/sheesy-cli/default.nix b/nixpkgs/pkgs/tools/security/sheesy-cli/default.nix
new file mode 100644
index 000000000000..3929dbc8ad19
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/sheesy-cli/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, rustPlatform, fetchCrate, installShellFiles
+, libgpgerror, gpgme, gettext, openssl, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sheesy-cli";
+  version = "4.0.11";
+
+  src = fetchCrate {
+    inherit version pname;
+    sha256 = "1l21ji9zqy8x1g2gvqwdhya505max07ibx1hh88s36k0jbvdb7xc";
+  };
+
+  cargoSha256 = "159a5ph1gxwcgahyr8885lq3c1w76nxzfrfdpyqixqrr7jzx2rd3";
+  cargoDepsName = pname;
+
+  cargoBuildFlags = [ "--bin sy" "--features" "vault,extract,completions,substitute,process" ];
+
+  nativeBuildInputs = [ libgpgerror gpgme gettext installShellFiles ];
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+
+  postInstall = ''
+    installShellCompletion --cmd sy \
+      --bash <($out/bin/sy completions bash) \
+      --fish <($out/bin/sy completions fish) \
+      --zsh <($out/bin/sy completions zsh)
+  '';
+
+  meta = with lib; {
+    description = "The 'share-secrets-safely' CLI to interact with GPG/pass-like vaults";
+    homepage = "https://share-secrets-safely.github.io/cli/";
+    changelog = "https://github.com/share-secrets-safely/cli/releases/tag/${version}";
+    license = with licenses; [ lgpl21Only ];
+    maintainers = with maintainers; [ devhell ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/sn0int/default.nix b/nixpkgs/pkgs/tools/security/sn0int/default.nix
index 1577b4764012..5d1244e86196 100644
--- a/nixpkgs/pkgs/tools/security/sn0int/default.nix
+++ b/nixpkgs/pkgs/tools/security/sn0int/default.nix
@@ -1,22 +1,34 @@
-{ lib, fetchFromGitHub, rustPlatform, libsodium, libseccomp, sqlite, pkg-config
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, libsodium
+, libseccomp
+, sqlite
+, pkg-config
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sn0int";
-  version = "0.20.1";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vnSpItch9RDUyYxERKRwYPmRLwRG9gAI7iIY+7iRs1w=";
+    sha256 = "sha256-LjNOaqYGlhF0U+YxoLLmmXgxPa8f+t9BSm+qO23waaI=";
   };
 
-  cargoSha256 = "sha256-1QqNI7rdH5wb1Zge8gkJtzg2Hgd/Vk9DAU9ULk/5wiw=";
+  cargoSha256 = "sha256-ruK+qDIqrltNcErBnrcHdPfVKmwPwiPfq42A/el206c=";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
 
-  buildInputs = [ libsodium libseccomp sqlite ];
+  buildInputs = [
+    libsodium
+    libseccomp
+    sqlite
+  ];
 
   # One of the dependencies (chrootable-https) tries to read "/etc/resolv.conf"
   # in "checkPhase", hence fails in sandbox of "nix".
diff --git a/nixpkgs/pkgs/tools/security/snowcrash/default.nix b/nixpkgs/pkgs/tools/security/snowcrash/default.nix
new file mode 100644
index 000000000000..cd85ff90bf91
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/snowcrash/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "snowcrash";
+  version = "unstable-2021-04-29";
+
+  src = fetchFromGitHub {
+    owner = "redcode-labs";
+    repo = "SNOWCRASH";
+    rev = "514cceea1ca82f44e0c8a8744280f3a16abb6745";
+    sha256 = "16p1nfi9zdlcffjyrk1phrippjqrdzf3cpc51dgdy3bfr7pds2ld";
+  };
+
+  vendorSha256 = "1xm2yjr4mqkara3yib6vgfj14ldh7r0v1vr2i0ks13l1rm54x840";
+
+  subPackages = [ "." ];
+
+  runVend = true;
+
+  postFixup = ''
+    mv $out/bin/SNOWCRASH $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    description = "Polyglot payload generator";
+    homepage = "https://github.com/redcode-labs/SNOWCRASH";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/sshuttle/default.nix b/nixpkgs/pkgs/tools/security/sshuttle/default.nix
index dbdd94a3d5c9..9fd57c82e88f 100644
--- a/nixpkgs/pkgs/tools/security/sshuttle/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshuttle/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
 
   patches = [ ./sudo.patch ];
 
-  nativeBuildInputs = [ makeWrapper python3Packages.setuptools_scm ];
+  nativeBuildInputs = [ makeWrapper python3Packages.setuptools-scm ];
 
   checkInputs = with python3Packages; [ mock pytest pytestcov pytestrunner flake8 ];
 
diff --git a/nixpkgs/pkgs/tools/security/step-ca/default.nix b/nixpkgs/pkgs/tools/security/step-ca/default.nix
index 84fe06e6c19c..f72f3c978ffe 100644
--- a/nixpkgs/pkgs/tools/security/step-ca/default.nix
+++ b/nixpkgs/pkgs/tools/security/step-ca/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "step-ca";
-  version = "0.15.11";
+  version = "0.15.15";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "certificates";
     rev = "v${version}";
-    sha256 = "wFRs3n6V0z2keNVtqFw1q5jpA6BvNK5EftsNhichfsY=";
+    sha256 = "sha256-YYYpMHEis/zoRsdwW70X8zn0FMsW+2vMYdlWxr3qqzY==";
   };
 
-  vendorSha256 = "f1NdszqYYx6X1HqwqG26jjfjXq1gDXLOrh64ccKRQ90=";
+  vendorSha256 = "sha256-mjj+70/ioqcchB3X5vZPb0Oa7lA/qKh5zEpidT0jrEs=";
 
   nativeBuildInputs = lib.optionals hsmSupport [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/security/step-cli/default.nix b/nixpkgs/pkgs/tools/security/step-cli/default.nix
index 2b6ec57bbf2b..a13eec71eb84 100644
--- a/nixpkgs/pkgs/tools/security/step-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/step-cli/default.nix
@@ -1,26 +1,24 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, fetchpatch
 }:
 
 buildGoModule rec {
   pname = "step-cli";
-  version = "0.15.3-22-g3ddc5aa";
+  version = "0.15.16";
 
-  # 0.15.3 isn't enough, because we need https://github.com/smallstep/cli/pull/394
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "cli";
-    rev = "3ddc5aaafccb23ba9a20abfa70109a2923f298e3";
-    sha256 = "1kd04hi764xa3f9p6aw6k9f6wa4y6xsmzby5jxvvkhim4w78brw0";
+    rev = "v${version}";
+    sha256 = "sha256-/HqCG3LscwogLXvZlL2CVo2Pj1hVRnOMPCmG1hxrG/I=";
   };
 
   preCheck = ''
     # Tries to connect to smallstep.com
     rm command/certificate/remote_test.go
   '';
-  vendorSha256 = "04hckq78g1p04b2q0rq4xw6d880hqhkabbx1pc3pf8r1m6jxwz10";
+  vendorSha256 = "sha256-plQgIqs6QUbzndn8C0ByKceGtz/JxZ1Rx0fXWHNJ0kM=";
 
   meta = with lib; {
     description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
diff --git a/nixpkgs/pkgs/tools/security/sudo/default.nix b/nixpkgs/pkgs/tools/security/sudo/default.nix
index d8b99c51de2c..5e308fd25ca5 100644
--- a/nixpkgs/pkgs/tools/security/sudo/default.nix
+++ b/nixpkgs/pkgs/tools/security/sudo/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sudo";
-  version = "1.9.6p1";
+  version = "1.9.7";
 
   src = fetchurl {
     url = "https://www.sudo.ws/dist/${pname}-${version}.tar.gz";
-    sha256 = "sha256-qenNwFj6/rnNPr+4ZMgXVeUk2YqgIhUnY/JbzoyjypA=";
+    sha256 = "sha256-K758LWaZuE2VDvmkPwnU2We4vCRLc7wJXEICBo3b5Uk=";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/tools/security/tboot/default.nix b/nixpkgs/pkgs/tools/security/tboot/default.nix
index bf13fe7822e8..9c5d44c6d607 100644
--- a/nixpkgs/pkgs/tools/security/tboot/default.nix
+++ b/nixpkgs/pkgs/tools/security/tboot/default.nix
@@ -1,27 +1,23 @@
-{ lib, stdenv, fetchurl, trousers, openssl, zlib }:
+{ lib, stdenv, fetchurl, openssl, perl, trousers, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "tboot";
-  version = "1.9.8";
+  version = "1.10.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/tboot/${pname}-${version}.tar.gz";
-    sha256 = "06f0ggl6vrb5ghklblvh2ixgmmjv31rkp1vfj9qm497iqwq9ac00";
+    sha256 = "18bnkwnlk16cc20nysqfcjx006idi7jmmhahk8vk09w458bhaajg";
   };
 
-  patches = [ ./tboot-add-well-known-secret-option-to-lcp_writepol.patch ];
-
-  buildInputs = [ trousers openssl zlib ];
+  buildInputs = [ openssl trousers zlib ];
 
   enableParallelBuilding = true;
 
-  hardeningDisable = [ "pic" "stackprotector" ];
-
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=address-of-packed-member" ];
+  preConfigure = ''
+    substituteInPlace tboot/Makefile --replace /usr/bin/perl ${perl}/bin/perl
 
-  configurePhase = ''
-    for a in lcptools utils tb_polgen; do
-      substituteInPlace $a/Makefile --replace /usr/sbin /sbin
+    for a in lcptools-v2 tb_polgen utils; do
+      substituteInPlace "$a/Makefile" --replace /usr/sbin /sbin
     done
     substituteInPlace docs/Makefile --replace /usr/share /share
   '';
@@ -31,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A pre-kernel/VMM module that uses Intel(R) TXT to perform a measured and verified launch of an OS kernel/VMM";
     homepage    = "https://sourceforge.net/projects/tboot/";
+    changelog   = "https://sourceforge.net/p/tboot/code/ci/v${version}/tree/CHANGELOG";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ ak ];
     platforms   = [ "x86_64-linux" "i686-linux" ];
diff --git a/nixpkgs/pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch b/nixpkgs/pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch
deleted file mode 100644
index a16ba9f4fbab..000000000000
--- a/nixpkgs/pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -urp tboot-1.8.0.orig/lcptools/writepol.c tboot-1.8.0/lcptools/writepol.c
---- tboot-1.8.0.orig/lcptools/writepol.c	2014-01-30 10:34:57.000000000 +0100
-+++ tboot-1.8.0/lcptools/writepol.c	2014-02-12 01:48:51.523581057 +0100
-@@ -40,6 +40,7 @@
- #include <getopt.h>
- #include <trousers/tss.h>
- #include <trousers/trousers.h>
-+#include <tss/tss_defines.h>
- 
- #define PRINT   printf
- #include "../include/uuid.h"
-@@ -51,14 +52,15 @@ static uint32_t index_value = 0;
- static char *file_arg=NULL;
- static uint32_t fLeng;
- static unsigned char *policy_data = NULL;
--static char *password = NULL;
-+static const char *password = NULL;
- static uint32_t passwd_length = 0;
-+static const char well_known_secret[] = TSS_WELL_KNOWN_SECRET;
- static int help_input = 0;
- static unsigned char empty_pol_data[] = {0};
- 
--static const char *short_option = "ehi:f:p:";
-+static const char *short_option = "ehi:f:p:Z";
- static const char *usage_string = "lcp_writepol -i index_value "
--                                  "[-f policy_file] [-e] [-p passwd] [-h]";
-+                                  "[-f policy_file] [-e] [-p passwd|-Z] [-h]";
- 
- static const char *option_strings[] = {
-     "-i index value: uint32/string.\n"
-@@ -67,6 +69,7 @@ static const char *option_strings[] = {
-     "\tINDEX_AUX:0x50000002 or \"aux\"\n",
-     "-f file_name: string. File name of the policy data is stored. \n",
-     "-p password: string. \n",
-+    "-Z use well known secret as password. \n",
-     "-e write 0 length data to the index.\n"
-     "\tIt will be used for some special index.\n"
-     "\tFor example, the index with permission WRITEDEFINE.\n",
-@@ -119,6 +122,11 @@ parse_cmdline(int argc, const char * arg
-                 fLeng = 0;
-                 break;
- 
-+            case 'Z':
-+                password = well_known_secret;
-+                passwd_length = sizeof(well_known_secret);
-+                break;
-+
-             case 'h':
-                 help_input = 1;
-                 break;
diff --git a/nixpkgs/pkgs/tools/security/terrascan/default.nix b/nixpkgs/pkgs/tools/security/terrascan/default.nix
index 0d7c3d2863cf..8fa8ded7b664 100644
--- a/nixpkgs/pkgs/tools/security/terrascan/default.nix
+++ b/nixpkgs/pkgs/tools/security/terrascan/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "terrascan";
-  version = "1.4.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "accurics";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YUrvdleH332fWDgq8AwUdXkFC7m9ap+OVuQhKlxZfII=";
+    sha256 = "sha256-AIHfG5Z5I91zcogHxGRP7pLauYHICX6NL0bJTp982sQ=";
   };
 
-  vendorSha256 = "sha256-CzJ83MsBetrzbBT+fmz8F8MjdrManJAd4xpykh/2938=";
+  vendorSha256 = "sha256-XzZ3RudyD6YKyc3e3HvUrkXToXs2aFSSCScQgmCfxgQ=";
 
   # tests want to download a vulnerable Terraform project
   doCheck = false;
diff --git a/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix b/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
index 73368f40476d..52964b620ddf 100644
--- a/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
+++ b/nixpkgs/pkgs/tools/security/tpm2-tools/default.nix
@@ -21,10 +21,8 @@ stdenv.mkDerivation rec {
       tpm2-tss
     ] ++ (lib.optional abrmdSupport tpm2-abrmd));
   in ''
-    for bin in $out/bin/*; do
-      wrapProgram $bin \
-        --suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
-    done
+    wrapProgram $out/bin/tpm2 --suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
+    wrapProgram $out/bin/tss2 --suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
   '';
 
 
diff --git a/nixpkgs/pkgs/tools/security/vault/default.nix b/nixpkgs/pkgs/tools/security/vault/default.nix
index e04ab9df08c8..eb5ac31d300b 100644
--- a/nixpkgs/pkgs/tools/security/vault/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "vault";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "0ncy99gw2pp5v2qbbgvri7qlirjj8qsvgjmjqyx3gddlpzpyiz3q";
+    sha256 = "0nd77lfccl71qn98cq1yz85aiafplxbr58nafbbflijs1fz1771q";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
diff --git a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
index 40ce05331f96..b283a40888bd 100644
--- a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
+++ b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
@@ -1,26 +1,26 @@
 { lib, stdenv, fetchurl, unzip }:
 
 let
-  version = "1.7.1";
+  version = "1.7.2";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "021qa8jcqwy27q83lvamvv5zqnkwk5y0jsb8al5yxpgzxqnmsyb1";
+      sha256 = "1g37pgj7hbi6vfpwq9rrh6is980lfwbq5jb4736jfp5m360vprjy";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "02hhxpa8craa91nfgvwziswisfdnqw4gbwrxyxr753v1y00y1sz8";
+      sha256 = "0777xkkfiy0s3nyygcfpw0nbfsm6yz1n5hxcvfafhzcdyr58fpb7";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "141zzfwrjdjv8ymrdc4mxs2f4cphdir4xjaa40s571ri38in33zh";
+      sha256 = "0wzmah542bhyvrm9brhrx7drjyzan8vxhqnm0gjak5wlrcnf2dvx";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "1plrmmy86zb2ij49dk2mwn364i2n83ch4gjz5pln2d4wjx21gpaq";
+      sha256 = "0cs56ircad2z2msqgb0l5h53cwmwybi5rs4y2jigz4rq4ndx9f9b";
     };
   };
 
@@ -49,6 +49,6 @@ in stdenv.mkDerivation {
     description = "A tool for managing secrets, this binary includes the UI";
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
     license = licenses.mpl20;
-    maintainers = with maintainers; [ offline psyanticy mkaito Chili-Man ];
+    maintainers = with maintainers; teams.serokell.members ++ [ offline psyanticy Chili-Man ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock b/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock
index f3ece99b3656..96857239bda0 100644
--- a/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/wpscan/Gemfile.lock
@@ -1,53 +1,57 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.0.1)
+    activesupport (6.1.3.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
-      i18n (>= 0.7, < 2)
-      minitest (~> 5.1)
-      tzinfo (~> 1.1)
-      zeitwerk (~> 2.2)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+      zeitwerk (~> 2.3)
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
-    cms_scanner (0.7.1)
+    cms_scanner (0.13.4)
+      ethon (~> 0.14.0)
       get_process_mem (~> 0.2.5)
-      nokogiri (~> 1.10.4)
-      opt_parse_validator (~> 1.8.1)
-      public_suffix (>= 3.0, < 4.1)
-      ruby-progressbar (~> 1.10.0)
+      nokogiri (~> 1.11.0)
+      opt_parse_validator (~> 1.9.4)
+      public_suffix (~> 4.0.3)
+      ruby-progressbar (>= 1.10, < 1.12)
       sys-proctable (~> 1.2.2)
-      typhoeus (~> 1.3.0)
+      typhoeus (>= 1.3, < 1.5)
       xmlrpc (~> 0.3)
       yajl-ruby (~> 1.4.1)
-    concurrent-ruby (1.1.5)
-    ethon (0.12.0)
-      ffi (>= 1.3.0)
-    ffi (1.11.3)
-    get_process_mem (0.2.5)
+    concurrent-ruby (1.1.8)
+    ethon (0.14.0)
+      ffi (>= 1.15.0)
+    ffi (1.15.1)
+    get_process_mem (0.2.7)
       ffi (~> 1.0)
-    i18n (1.7.0)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
-    mini_portile2 (2.4.0)
-    minitest (5.13.0)
-    nokogiri (1.10.7)
-      mini_portile2 (~> 2.4.0)
-    opt_parse_validator (1.8.1)
-      activesupport (> 4.2, < 6.1.0)
+    mini_portile2 (2.5.3)
+    minitest (5.14.4)
+    nokogiri (1.11.6)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    opt_parse_validator (1.9.4)
+      activesupport (>= 5.2, < 6.2.0)
       addressable (>= 2.5, < 2.8)
-    public_suffix (4.0.1)
-    ruby-progressbar (1.10.1)
-    sys-proctable (1.2.2)
+    public_suffix (4.0.6)
+    racc (1.5.2)
+    ruby-progressbar (1.11.0)
+    sys-proctable (1.2.6)
       ffi
-    thread_safe (0.3.6)
-    typhoeus (1.3.1)
+    typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.5)
-      thread_safe (~> 0.1)
-    wpscan (3.7.5)
-      cms_scanner (~> 0.7.1)
-    xmlrpc (0.3.0)
+    tzinfo (2.0.4)
+      concurrent-ruby (~> 1.0)
+    webrick (1.7.0)
+    wpscan (3.8.17)
+      cms_scanner (~> 0.13.3)
+    xmlrpc (0.3.2)
+      webrick
     yajl-ruby (1.4.1)
-    zeitwerk (2.2.2)
+    zeitwerk (2.4.2)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/tools/security/wpscan/gemset.nix b/nixpkgs/pkgs/tools/security/wpscan/gemset.nix
index 5c0691fda1bc..c3d79ea77fbc 100644
--- a/nixpkgs/pkgs/tools/security/wpscan/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/wpscan/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "190xv21yz03zz8nlfly557ir859jr5zkwi89naziy65hskdnkw1s";
+      sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
       type = "gem";
     };
-    version = "6.0.1";
+    version = "6.1.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -22,25 +22,25 @@
     version = "2.7.0";
   };
   cms_scanner = {
-    dependencies = ["get_process_mem" "nokogiri" "opt_parse_validator" "public_suffix" "ruby-progressbar" "sys-proctable" "typhoeus" "xmlrpc" "yajl-ruby"];
+    dependencies = ["ethon" "get_process_mem" "nokogiri" "opt_parse_validator" "public_suffix" "ruby-progressbar" "sys-proctable" "typhoeus" "xmlrpc" "yajl-ruby"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14xmsigczibihlziisdgabsaz9lm2v31snlkc8kmza73pv8a61r4";
+      sha256 = "1xzkbk6a93sdhshzlkx1dcpln3fcw2apccb7g6jha0g1im7yhgcj";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.13.4";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.8";
   };
   ethon = {
     dependencies = ["ffi"];
@@ -48,20 +48,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
+      sha256 = "1bby4hbq96vnzcdbbybcbddin8dxdnj1ns758kcr4akykningqhh";
       type = "gem";
     };
-    version = "0.12.0";
+    version = "0.14.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10ay35dm0lkcqprsiya6q2kwvyid884102ryipr4vrk790yfp8kd";
+      sha256 = "15nn2v70rql15vb0pm9cg0f3xsaslwjkv6xgz0k5jh48idmfw9fi";
       type = "gem";
     };
-    version = "1.11.3";
+    version = "1.15.1";
   };
   get_process_mem = {
     dependencies = ["ffi"];
@@ -69,10 +69,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7pivp9z9pdxc2ha32q7x9zgqy8m9jf87g6n5mvi5l6knxya8sh";
+      sha256 = "1fkyyyxjcx4iigm8vhraa629k2lxa1npsv4015y82snx84v3rzaa";
       type = "gem";
     };
-    version = "0.2.5";
+    version = "0.2.7";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
@@ -80,41 +80,41 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hmypvx9iyc0b4hski7aic2xzm09cg1c7q1qlpnk3k8s5acxzyhl";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.8.10";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1ad0mli9rc0f17zw4ibp24dbj1y39zkykijsjmnzl4gwpg5s0j6k";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.3";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.13.0";
+    version = "5.14.4";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln";
+      sha256 = "1z4x366icbl9w13pk50vxx5kywlksvhxqxrpv8f5xpjxfl3jl64z";
       type = "gem";
     };
-    version = "1.10.7";
+    version = "1.11.6";
   };
   opt_parse_validator = {
     dependencies = ["activesupport" "addressable"];
@@ -122,51 +122,51 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19rm44ww3zfb440kqpdprwb7y2d0gcm4znhv4kfs8dkhz8k1k5vy";
+      sha256 = "1n297vrxq7r1fsh0x8yf1nhgdawmcl0sq04l468gwrd4y754rjyx";
       type = "gem";
     };
-    version = "1.8.1";
+    version = "1.9.4";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.0.6";
   };
-  ruby-progressbar = {
+  racc = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.5.2";
   };
-  sys-proctable = {
-    dependencies = ["ffi"];
+  ruby-progressbar = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndk34ipd4v96v5cbvj0kbkhnssi4nqrzd7sifyg3bavi1jrw3w8";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.11.0";
   };
-  thread_safe = {
+  sys-proctable = {
+    dependencies = ["ffi"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      sha256 = "17zzb1slwhq0j42qh8ywnh4c5ww2wwskl9362ayxf0am86b02zsb";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "1.2.6";
   };
   typhoeus = {
     dependencies = ["ethon"];
@@ -174,21 +174,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+      sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   tzinfo = {
-    dependencies = ["thread_safe"];
+    dependencies = ["concurrent-ruby"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "1.2.5";
+    version = "2.0.4";
+  };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
+      type = "gem";
+    };
+    version = "1.7.0";
   };
   wpscan = {
     dependencies = ["cms_scanner"];
@@ -196,20 +206,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vn6i48msxhj8g769vn2s3siv98cnqchblw69ldk1mr85lw4jci6";
+      sha256 = "0jdn2v5cmxlzq9nkzh5lqnqr0mbiyn87g6bfc0074m19m38g19r9";
       type = "gem";
     };
-    version = "3.7.5";
+    version = "3.8.17";
   };
   xmlrpc = {
+    dependencies = ["webrick"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s744iwblw262gj357pky3d9fcx9hisvla7rnw29ysn5zsb6i683";
+      sha256 = "1xa79ry3976ylap38cr5g6q3m81plm611flqd3dwgnmgbkycb6jp";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.3.2";
   };
   yajl-ruby = {
     groups = ["default"];
@@ -226,9 +237,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jywi63w1m2b2w9fj9rjb9n3imf6p5bfijfmml1xzdnsrdrjz0x1";
+      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.4.2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/yara/default.nix b/nixpkgs/pkgs/tools/security/yara/default.nix
index 506bf0f719d7..3eb5495d2c96 100644
--- a/nixpkgs/pkgs/tools/security/yara/default.nix
+++ b/nixpkgs/pkgs/tools/security/yara/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, fetchpatch
 , fetchFromGitHub
 , autoreconfHook
 , pcre
@@ -11,17 +10,18 @@
 , enableDotNet ? true
 , enableMacho ? true
 , enableMagic ? true, file
+, enableStatic ? false
 }:
 
 stdenv.mkDerivation rec {
-  version = "4.0.5";
+  version = "4.1.1";
   pname = "yara";
 
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara";
     rev = "v${version}";
-    sha256 = "1gkdll2ygdlqy1f27a5b84gw2bq75ss7acsx06yhiss90qwdaalq";
+    sha256 = "185j7firn7i5506rcp0va7sxdbminwrm06jsm4c70jf98qxmv522";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -34,19 +34,6 @@ stdenv.mkDerivation rec {
 
   preConfigure = "./bootstrap.sh";
 
-  # If static builds are disabled, `make all-am` will fail to find libyara.a and
-  # cause a build failure. It appears that somewhere between yara 4.0.1 and
-  # 4.0.5, linking the yara binaries dynamically against libyara.so was broken.
-  #
-  # This was already fixed in yara master. Backport the patch to yara 4.0.5.
-  patches = [
-    (fetchpatch {
-      name = "fix-build-with-no-static.patch";
-      url = "https://github.com/VirusTotal/yara/commit/52e6866023b9aca26571c78fb8759bc3a51ba6dc.diff";
-      sha256 = "074cf99j0rqiyacp60j1hkvjqxia7qwd11xjqgcr8jmfwihb38nr";
-    })
-  ];
-
   configureFlags = [
     (lib.withFeature withCrypto "crypto")
     (lib.enableFeature enableCuckoo "cuckoo")
@@ -54,8 +41,11 @@ stdenv.mkDerivation rec {
     (lib.enableFeature enableDotNet "dotnet")
     (lib.enableFeature enableMacho "macho")
     (lib.enableFeature enableMagic "magic")
+    (lib.enableFeature enableStatic "static")
   ];
 
+  doCheck = enableStatic;
+
   meta = with lib; {
     description = "The pattern matching swiss knife for malware researchers";
     homepage = "http://Virustotal.github.io/yara/";
diff --git a/nixpkgs/pkgs/tools/system/bottom/default.nix b/nixpkgs/pkgs/tools/system/bottom/default.nix
index 29c1d6376fe0..26dc89d935fc 100644
--- a/nixpkgs/pkgs/tools/system/bottom/default.nix
+++ b/nixpkgs/pkgs/tools/system/bottom/default.nix
@@ -1,14 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin, installShellFiles }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, DiskArbitration
+, Foundation
+, IOKit
+, installShellFiles
+, libiconv
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "bottom";
-  version = "0.5.7";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "ClementTsang";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9L7FtYIaWSOwNQ8zOLvxjt51o8A5MqqfF/iIyJs2TJA=";
+    sha256 = "sha256-/O/VXBpVBgjzYuv1AghzmOBUu0MQXhuF65QswgNwa0k=";
   };
 
   prePatch = ''
@@ -17,9 +26,14 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.IOKit;
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
+    DiskArbitration
+    Foundation
+    IOKit
+    libiconv
+  ];
 
-  cargoSha256 = "sha256-4oH1A88Qn0c6hkE/1b6mTrEIph8xT98j+DkP9/5JALs=";
+  cargoSha256 = "sha256-5AZgOzRg7jEyv/4+IiQplrwt2yQO9yNi6BosdSzh5v8=";
 
   doCheck = false;
 
@@ -33,5 +47,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ berbiche ];
     platforms = platforms.unix;
+    mainProgram = "btm";
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/bpytop/default.nix b/nixpkgs/pkgs/tools/system/bpytop/default.nix
index f10c3f628b86..9820e6ac00d4 100644
--- a/nixpkgs/pkgs/tools/system/bpytop/default.nix
+++ b/nixpkgs/pkgs/tools/system/bpytop/default.nix
@@ -1,17 +1,23 @@
-{ lib, stdenv, python3Packages, fetchFromGitHub, makeWrapper, substituteAll }:
+{ lib
+, stdenv
+, python3Packages
+, fetchFromGitHub
+, makeWrapper
+}:
 
 stdenv.mkDerivation rec {
   pname = "bpytop";
-  version = "1.0.63";
+  version = "1.0.66";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5KTqiPqYBDI1KFQ+2WN7QZFL/YSb+MPPWbKzJTUa8Zw=";
+    sha256 = "sha256-gggsZHKbEt4VSMNTkKGFLcPPt2uHRFDCkqyHYx0c9Y0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
+
   propagatedBuildInputs = with python3Packages; [ python psutil ];
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/system/facter/default.nix b/nixpkgs/pkgs/tools/system/facter/default.nix
index 906ca618e468..d1d18809a5b5 100644
--- a/nixpkgs/pkgs/tools/system/facter/default.nix
+++ b/nixpkgs/pkgs/tools/system/facter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "facter";
-  version = "3.14.16";
+  version = "3.14.17";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-VZIeyLJBlh5/r0EHinSiPiQyCNUBFBYjDZ6nTVnZBbE=";
+    sha256 = "sha256-RvsUt1DyN8Xr+Xtz84mbKlDwxLewgK6qklYVdQHu6q0=";
     rev = version;
     repo = pname;
     owner = "puppetlabs";
diff --git a/nixpkgs/pkgs/tools/system/fakeroot/default.nix b/nixpkgs/pkgs/tools/system/fakeroot/default.nix
index 57a986e3da99..0e4f51c7ea6c 100644
--- a/nixpkgs/pkgs/tools/system/fakeroot/default.nix
+++ b/nixpkgs/pkgs/tools/system/fakeroot/default.nix
@@ -37,6 +37,18 @@ stdenv.mkDerivation rec {
     sed -i -e "s@getopt@$(type -p getopt)@g" -e "s@sed@$(type -p sed)@g" ${pname}-${version}/scripts/fakeroot.in
   '';
 
+  postConfigure = let
+    # additional patch from brew, but needs to be applied to a generated file
+    patch-wraptmpf = fetchpatch {
+      name = "fakeroot-patch-wraptmpf-h.patch";
+      url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=3;bug=766649;filename=fakeroot-patch-wraptmpf-h.patch;msg=20";
+      sha256 = "1jhsi4bv6nnnjb4vmmmbhndqg719ckg860hgw98bli8m05zwbx6a";
+    };
+  in lib.optional stdenv.isDarwin ''
+    make wraptmpf.h
+    patch -p1 < ${patch-wraptmpf}
+  '';
+
   meta = {
     homepage = "https://salsa.debian.org/clint/fakeroot";
     description = "Give a fake root environment through LD_PRELOAD";
diff --git a/nixpkgs/pkgs/tools/system/fancy-motd/default.nix b/nixpkgs/pkgs/tools/system/fancy-motd/default.nix
new file mode 100644
index 000000000000..982dbcd2f5b1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/fancy-motd/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, lib, fetchFromGitHub, bc, curl, figlet, fortune, gawk, iproute2, procps }:
+
+stdenv.mkDerivation rec {
+  pname = "fancy-motd";
+  version = "unstable-2021-05-15";
+
+  src = fetchFromGitHub {
+    owner = "bcyran";
+    repo = pname;
+    rev = "b25c1e7d76927d7f947a048d844dad4400de3598";
+    sha256 = "05jazmijk3im1wl4nprkwmrq6bxhb3ah8syyqym109blajy72841";
+  };
+
+  buildInputs = [ bc curl figlet fortune gawk iproute2 ];
+
+  postPatch = ''
+    substituteInPlace motd.sh \
+      --replace 'BASE_DIR="$(dirname "$(readlink -f "$0")")"' "BASE_DIR=\"$out/lib\""
+
+    substituteInPlace modules/20-uptime \
+      --replace "uptime -p" "${procps}/bin/uptime -p"
+
+    # does not work on nixos
+    rm modules/41-updates
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D motd.sh $out/bin/motd
+
+    install -D framework.sh $out/lib/framework.sh
+    install -D config.sh.example $out/lib/config.sh
+    find modules -type f -exec install -D {} $out/lib/{} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Fancy, colorful MOTD written in bash. Server status at a glance.";
+    homepage = "https://github.com/bcyran/fancy-motd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rhoriguchi ];
+    platforms = platforms.linux;
+    mainProgram = "motd";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/freeipmi/default.nix b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
index f7e041a849d4..8dbe4b5e0033 100644
--- a/nixpkgs/pkgs/tools/system/freeipmi/default.nix
+++ b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
@@ -1,12 +1,12 @@
 { fetchurl, lib, stdenv, libgcrypt, readline, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.7";
+  version = "1.6.8";
   pname = "freeipmi";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${pname}-${version}.tar.gz";
-    sha256 = "1gyyx99q02p3v2nqm3h53mkjd33l0hrapwg4alg6qr9k74qik1dv";
+    sha256 = "0w8af1i57szmxl9vfifwwyal7xh8aixz2l9487wvy6yckqk6m92a";
   };
 
   buildInputs = [ libgcrypt readline libgpgerror ];
diff --git a/nixpkgs/pkgs/tools/system/gdu/default.nix b/nixpkgs/pkgs/tools/system/gdu/default.nix
index 9e522f232039..bff605dbcdeb 100644
--- a/nixpkgs/pkgs/tools/system/gdu/default.nix
+++ b/nixpkgs/pkgs/tools/system/gdu/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
@@ -6,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gdu";
-  version = "4.11.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "dundee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E+/Ig6+J7pJ98O+YAntBGERml2ELzkji3gworBdcSVY=";
+    sha256 = "sha256-OellGxW/2I/dKBxWgEv1Ta9OJ/2HUfDIzICQwvmjTCM=";
   };
 
-  vendorSha256 = "sha256-QiO5p0x8kmIN6f0uYS0IR2MlWtRYTHeZpW6Nmupjias=";
+  vendorSha256 = "sha256-9W1K01PJ+tRLSJ0L7NGHXT5w5oHmlBkT8kwnOLOzSCc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -27,21 +28,14 @@ buildGoModule rec {
   ];
 
   postPatch = ''
-    substituteInPlace cmd/app/app_test.go --replace "development" "${version}"
+    substituteInPlace cmd/gdu/app/app_test.go --replace "development" "${version}"
   '';
 
   postInstall = ''
     installManPage gdu.1
   '';
 
-  # tests fail with:
-  #  dir_test.go:76:
-  #              Error Trace:    dir_test.go:76
-  #              Error:          Not equal:
-  #                              expected: 0
-  #                              actual  : 512
-  #              Test:           TestFlags
-  doCheck = false;
+  doCheck = !(stdenv.isAarch64 || stdenv.isDarwin);
 
   meta = with lib; {
     description = "Disk usage analyzer with console interface";
diff --git a/nixpkgs/pkgs/tools/system/gptman/default.nix b/nixpkgs/pkgs/tools/system/gptman/default.nix
index 5209856edeb0..648b68bcbc4c 100644
--- a/nixpkgs/pkgs/tools/system/gptman/default.nix
+++ b/nixpkgs/pkgs/tools/system/gptman/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gptman";
@@ -13,6 +13,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1cp8cyrd7ab8r2j28b69c2p3ysix5b9hpsqk07cmzgqwwml0qj12";
 
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
+
   meta = with lib; {
     description = "A CLI tool for Linux to copy a partition from one disk to another and more.";
     homepage = "https://github.com/cecton/gptman";
diff --git a/nixpkgs/pkgs/tools/system/hwinfo/default.nix b/nixpkgs/pkgs/tools/system/hwinfo/default.nix
index 9048aa966f78..1739d5a6314f 100644
--- a/nixpkgs/pkgs/tools/system/hwinfo/default.nix
+++ b/nixpkgs/pkgs/tools/system/hwinfo/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "hwinfo";
-  version = "21.72";
+  version = "21.74";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = version;
-    sha256 = "sha256-T/netiZqox+qa19wH+h8cbsGbiM+9VrSEIjccrPYqws=";
+    sha256 = "sha256-pPL/RYL8eVPuX71kT64p/ZkUE4uVFALMVj8mWZM3NuU=";
   };
 
-  patchPhase = ''
+  postPatch = ''
     # VERSION and changelog are usually generated using Git
     # unless HWINFO_VERSION is defined (see Makefile)
     export HWINFO_VERSION="${version}"
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Hardware detection tool from openSUSE";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     homepage = "https://github.com/openSUSE/hwinfo";
     maintainers = with maintainers; [ bobvanderlinden ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/system/kmon/default.nix b/nixpkgs/pkgs/tools/system/kmon/default.nix
index cb48a48ff49c..4253ff3e7c9d 100644
--- a/nixpkgs/pkgs/tools/system/kmon/default.nix
+++ b/nixpkgs/pkgs/tools/system/kmon/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-2cP3kZnjlMmN3nWRPh1M+hk+dyssGNpJjlluDsm702g=";
   };
 
-  cargoSha256 = "sha256-JFDtmi10iCK66/2ovg8tGAgGDW8Y4b5IYkSbDqu0PmQ=";
+  cargoSha256 = "sha256-xxYfaGhAtLESpy4gdE3IjE29W+DGnI1ed020mxjT3TI=";
 
   nativeBuildInputs = [ python3 ];
 
diff --git a/nixpkgs/pkgs/tools/system/logcheck/default.nix b/nixpkgs/pkgs/tools/system/logcheck/default.nix
index 6fd66b40e15e..dea241e11acd 100644
--- a/nixpkgs/pkgs/tools/system/logcheck/default.nix
+++ b/nixpkgs/pkgs/tools/system/logcheck/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "logcheck";
-  version = "1.3.22";
+  version = "1.3.23";
   _name    = "logcheck_${version}";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/l/logcheck/${_name}.tar.xz";
-    sha256 = "sha256-e7XeRNlFsexlVskK2OnLTmNV/ES2xWU+/+AElexV6E4=";
+    sha256 = "sha256-ohiLpUn/9EEsggdLJxiE/2bSXz/bKkGRboF85naFWyk=";
   };
 
   prePatch = ''
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
       Logcheck was part of the Abacus Project of security tools, but this version has been rewritten.
     '';
     homepage = "https://salsa.debian.org/debian/logcheck";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.bluescreen303 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/logrotate/default.nix b/nixpkgs/pkgs/tools/system/logrotate/default.nix
index b764202a58a6..3d5dac7faa8c 100644
--- a/nixpkgs/pkgs/tools/system/logrotate/default.nix
+++ b/nixpkgs/pkgs/tools/system/logrotate/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "logrotate";
-  version = "3.18.0";
+  version = "3.18.1";
 
   src = fetchFromGitHub {
     owner = "logrotate";
     repo = "logrotate";
     rev = version;
-    sha256 = "sha256-OFGXwaTabyuIgeC2ON68m83rzVxomk8QL6xwyrVV654=";
+    sha256 = "sha256-OJOV++rtN9ry+l0c0eanpu/Pwu8cOHfyEaDWp3FZjkw=";
   };
 
   # Logrotate wants to access the 'mail' program; to be done.
diff --git a/nixpkgs/pkgs/tools/system/mq-cli/default.nix b/nixpkgs/pkgs/tools/system/mq-cli/default.nix
index a29e1630116d..2c1baa24f6fa 100644
--- a/nixpkgs/pkgs/tools/system/mq-cli/default.nix
+++ b/nixpkgs/pkgs/tools/system/mq-cli/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "02z85waj5jc312biv2qhbgplsggxgjmfmyv9v8b1ky0iq1mpxjw7";
   };
 
-  cargoSha256 = "19ccylnmmlm2d8kc178cffpjwrjlia6b4v3nzvxcs81a396ymr7b";
+  cargoSha256 = "19mk0hl7cr5qb3r64zi0hcsn4yqbg8c3g2f9jywm0g2c13ak36li";
 
   meta = with lib; {
     description      = "CLI tool to manage POSIX message queues";
diff --git a/nixpkgs/pkgs/tools/system/netdata/default.nix b/nixpkgs/pkgs/tools/system/netdata/default.nix
index bd360a242610..e00c2bfafb31 100644
--- a/nixpkgs/pkgs/tools/system/netdata/default.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/default.nix
@@ -1,11 +1,12 @@
 { lib, stdenv, callPackage, fetchFromGitHub, autoreconfHook, pkg-config
 , CoreFoundation, IOKit, libossp_uuid
-, curl, libcap,  libuuid, lm_sensors, zlib
 , nixosTests
+, curl, libcap, libuuid, lm_sensors, zlib
 , withCups ? false, cups
 , withDBengine ? true, libuv, lz4, judy
 , withIpmi ? (!stdenv.isDarwin), freeipmi
 , withNetfilter ? (!stdenv.isDarwin), libmnl, libnetfilter_acct
+, withCloud ? (!stdenv.isDarwin), json_c
 , withSsl ? true, openssl
 , withDebug ? false
 }:
@@ -15,14 +16,15 @@ with lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.29.3";
+  version = "1.31.0";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "sha256-GWIQZEC5agJ+Zw7l58IIAJhXP6dxirCmWVBJulzBO5Q=";
+    sha256 = "0735cxmljrp8zlkcq7hcxizy4j4xiv7vf782zkz5chn06n38mcik";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -33,6 +35,7 @@ in stdenv.mkDerivation rec {
     ++ optionals withDBengine [ libuv lz4.dev judy ]
     ++ optionals withIpmi [ freeipmi ]
     ++ optionals withNetfilter [ libmnl libnetfilter_acct ]
+    ++ optionals withCloud [ json_c ]
     ++ optionals withSsl [ openssl.dev ];
 
   patches = [
@@ -50,6 +53,8 @@ in stdenv.mkDerivation rec {
     # rename this plugin so netdata will look for setuid wrapper
     mv $out/libexec/netdata/plugins.d/apps.plugin \
        $out/libexec/netdata/plugins.d/apps.plugin.org
+    mv $out/libexec/netdata/plugins.d/cgroup-network \
+       $out/libexec/netdata/plugins.d/cgroup-network.org
     mv $out/libexec/netdata/plugins.d/perf.plugin \
        $out/libexec/netdata/plugins.d/perf.plugin.org
     mv $out/libexec/netdata/plugins.d/slabinfo.plugin \
@@ -68,6 +73,9 @@ in stdenv.mkDerivation rec {
   configureFlags = [
     "--localstatedir=/var"
     "--sysconfdir=/etc"
+  ] ++ optionals withCloud [
+    "--enable-cloud"
+    "--with-aclk-ng"
   ];
 
   postFixup = ''
@@ -81,6 +89,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://www.netdata.cloud/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix b/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
index 3b97747f8793..be6e8f267637 100644
--- a/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "netdata-go.d.plugin";
-  version = "0.26.2";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "go.d.plugin";
     rev = "v${version}";
-    sha256 = "1jy5pc1ihyrg6sqyw0d48bsqa7kr7kqz10k3845g958vgfmfig59";
+    sha256 = "0i77nvqi3dcby0gr3b06bai170q2ibp5390qfjijrk1yqz6x6sd5";
   };
 
-  vendorSha256 = "16b6i9cpk8j7292qgjvida70rg7nixi6g94wayzikx01vmdbis5r";
+  vendorSha256 = "1q8z4smaxzqd5iwvbnkkr33c3b94rjwa3xjirwlr595g0wn93wc7";
 
   doCheck = false;
 
@@ -26,6 +26,6 @@ buildGoModule rec {
     description = "Netdata orchestrator for data collection modules written in go";
     homepage = "https://github.com/netdata/go.d.plugin";
     license = licenses.gpl3;
-    maintainers = [ maintainers.lethalman ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch b/nixpkgs/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
index 594805fdf187..1d0c5cfba582 100644
--- a/nixpkgs/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
+++ b/nixpkgs/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
@@ -1,28 +1,8 @@
-From 4ecc1475be94a384c122594b5f7d455beb64a2f0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Sat, 22 Feb 2020 06:42:14 +0000
-Subject: [PATCH] no files in etc and var
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- collectors/Makefile.am                 | 2 +-
- collectors/charts.d.plugin/Makefile.am | 2 +-
- collectors/node.d.plugin/Makefile.am   | 2 +-
- collectors/python.d.plugin/Makefile.am | 2 +-
- collectors/statsd.plugin/Makefile.am   | 2 +-
- health/Makefile.am                     | 2 +-
- system/Makefile.am                     | 3 +--
- web/Makefile.am                        | 2 +-
- 8 files changed, 8 insertions(+), 9 deletions(-)
-
 diff --git a/collectors/Makefile.am b/collectors/Makefile.am
-index 9bb52958..c9799165 100644
+index 021e2ff23..115b88277 100644
 --- a/collectors/Makefile.am
 +++ b/collectors/Makefile.am
-@@ -32,7 +32,7 @@ usercustompluginsconfigdir=$(configdir)/custom-plugins.d
+@@ -33,7 +33,7 @@ usercustompluginsconfigdir=$(configdir)/custom-plugins.d
  usergoconfigdir=$(configdir)/go.d
  
  # Explicitly install directories to avoid permission issues due to umask
@@ -32,7 +12,7 @@ index 9bb52958..c9799165 100644
  	$(INSTALL) -d $(DESTDIR)$(usergoconfigdir)
  
 diff --git a/collectors/charts.d.plugin/Makefile.am b/collectors/charts.d.plugin/Makefile.am
-index 03c7f0a9..01985db0 100644
+index 03c7f0a94..01985db01 100644
 --- a/collectors/charts.d.plugin/Makefile.am
 +++ b/collectors/charts.d.plugin/Makefile.am
 @@ -34,7 +34,7 @@ dist_userchartsconfig_DATA = \
@@ -44,8 +24,21 @@ index 03c7f0a9..01985db0 100644
  	$(INSTALL) -d $(DESTDIR)$(userchartsconfigdir)
  
  chartsconfigdir=$(libconfigdir)/charts.d
+diff --git a/collectors/ebpf.plugin/Makefile.am b/collectors/ebpf.plugin/Makefile.am
+index 18b1fc6c8..b4b0c7852 100644
+--- a/collectors/ebpf.plugin/Makefile.am
++++ b/collectors/ebpf.plugin/Makefile.am
+@@ -13,7 +13,7 @@ SUFFIXES = .in
+ userebpfconfigdir=$(configdir)/ebpf.d
+ 
+ # Explicitly install directories to avoid permission issues due to umask
+-install-exec-local:
++no-install-exec-local:
+ 	$(INSTALL) -d $(DESTDIR)$(userebpfconfigdir)
+ 
+ dist_plugins_SCRIPTS = \
 diff --git a/collectors/node.d.plugin/Makefile.am b/collectors/node.d.plugin/Makefile.am
-index c3142d43..95e32445 100644
+index c3142d433..95e324455 100644
 --- a/collectors/node.d.plugin/Makefile.am
 +++ b/collectors/node.d.plugin/Makefile.am
 @@ -26,7 +26,7 @@ dist_usernodeconfig_DATA = \
@@ -58,7 +51,7 @@ index c3142d43..95e32445 100644
  
  nodeconfigdir=$(libconfigdir)/node.d
 diff --git a/collectors/python.d.plugin/Makefile.am b/collectors/python.d.plugin/Makefile.am
-index e678f86a..29a319da 100644
+index 38eb90f79..ce7079441 100644
 --- a/collectors/python.d.plugin/Makefile.am
 +++ b/collectors/python.d.plugin/Makefile.am
 @@ -32,7 +32,7 @@ dist_userpythonconfig_DATA = \
@@ -71,10 +64,10 @@ index e678f86a..29a319da 100644
  
  pythonconfigdir=$(libconfigdir)/python.d
 diff --git a/collectors/statsd.plugin/Makefile.am b/collectors/statsd.plugin/Makefile.am
-index b01302d1..f5b77da4 100644
+index 71f2d468d..2c9ced2bf 100644
 --- a/collectors/statsd.plugin/Makefile.am
 +++ b/collectors/statsd.plugin/Makefile.am
-@@ -17,5 +17,5 @@ dist_userstatsdconfig_DATA = \
+@@ -18,5 +18,5 @@ dist_userstatsdconfig_DATA = \
      $(NULL)
  
  # Explicitly install directories to avoid permission issues due to umask
@@ -82,7 +75,7 @@ index b01302d1..f5b77da4 100644
 +no-install-exec-local:
  	$(INSTALL) -d $(DESTDIR)$(userstatsdconfigdir)
 diff --git a/health/Makefile.am b/health/Makefile.am
-index 853ed0d7..210330a6 100644
+index b963ea0cd..6979e69bf 100644
 --- a/health/Makefile.am
 +++ b/health/Makefile.am
 @@ -19,7 +19,7 @@ dist_userhealthconfig_DATA = \
@@ -95,10 +88,10 @@ index 853ed0d7..210330a6 100644
  
  healthconfigdir=$(libconfigdir)/health.d
 diff --git a/system/Makefile.am b/system/Makefile.am
-index ad68c655..74f032f9 100644
+index 5323738c9..06e1b6a73 100644
 --- a/system/Makefile.am
 +++ b/system/Makefile.am
-@@ -17,11 +17,10 @@ include $(top_srcdir)/build/subst.inc
+@@ -20,11 +20,10 @@ include $(top_srcdir)/build/subst.inc
  SUFFIXES = .in
  
  dist_config_SCRIPTS = \
@@ -112,7 +105,7 @@ index ad68c655..74f032f9 100644
  
  nodist_noinst_DATA = \
 diff --git a/web/Makefile.am b/web/Makefile.am
-index ccaccd76..16a2977e 100644
+index ccaccd764..16a2977e5 100644
 --- a/web/Makefile.am
 +++ b/web/Makefile.am
 @@ -12,7 +12,7 @@ SUBDIRS = \
@@ -124,6 +117,3 @@ index ccaccd76..16a2977e 100644
  	$(INSTALL) -d $(DESTDIR)$(usersslconfigdir)
  
  dist_noinst_DATA = \
--- 
-2.25.0
-
diff --git a/nixpkgs/pkgs/tools/system/nq/default.nix b/nixpkgs/pkgs/tools/system/nq/default.nix
index e92016f85a6f..239ac1368ad6 100644
--- a/nixpkgs/pkgs/tools/system/nq/default.nix
+++ b/nixpkgs/pkgs/tools/system/nq/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
   postPatch = ''
     sed -i tq \
-      -e 's|\bfq\b|'$out'/bin/fq|g' \
-      -e 's|\bnq\b|'$out'/bin/nq|g'
+      -e 's|\bnq\b|'$out'/bin/nq|g' \
+      -e 's|\bfq\b|'$out'/bin/fq|g'
   '';
   meta = with lib; {
     description = "Unix command line queue utility";
diff --git a/nixpkgs/pkgs/tools/system/ps_mem/default.nix b/nixpkgs/pkgs/tools/system/ps_mem/default.nix
index 152bb1150e59..1752aba240f3 100644
--- a/nixpkgs/pkgs/tools/system/ps_mem/default.nix
+++ b/nixpkgs/pkgs/tools/system/ps_mem/default.nix
@@ -17,7 +17,7 @@ in pythonPackages.buildPythonApplication {
     description = "A utility to accurately report the in core memory usage for a program";
     homepage = "https://github.com/pixelb/ps_mem";
     license = licenses.lgpl21;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/retry/default.nix b/nixpkgs/pkgs/tools/system/retry/default.nix
new file mode 100644
index 000000000000..48125d2df37e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/retry/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, which, txt2man }:
+stdenv.mkDerivation rec {
+  pname = "retry";
+  version = "1.0.4";
+
+  nativeBuildInputs = [ autoreconfHook which txt2man ];
+
+  src = fetchFromGitHub {
+    owner = "minfrin";
+    repo = "retry";
+    rev = "${pname}-${version}";
+    sha256 = "sha256:0jrx4yrwlf4fn3309kxraj7zgwk7gq6rz5ibswq3w3b3jfvxi8qb";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/minfrin/retry";
+    description = "Retry a command until the command succeeds";
+    platforms = platforms.all;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ gfrascadorio ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/system/safe-rm/default.nix b/nixpkgs/pkgs/tools/system/safe-rm/default.nix
index c81eea889023..bac9bb356024 100644
--- a/nixpkgs/pkgs/tools/system/safe-rm/default.nix
+++ b/nixpkgs/pkgs/tools/system/safe-rm/default.nix
@@ -1,37 +1,36 @@
-{ lib, stdenv, fetchgit, perl, coreutils }:
+{ lib, rustPlatform, fetchgit, coreutils, installShellFiles }:
 
-stdenv.mkDerivation rec {
+rustPlatform.buildRustPackage rec {
   pname = "safe-rm";
-  version = "0.12";
+  version = "1.1.0";
 
   src = fetchgit {
     url = "https://git.launchpad.net/safe-rm";
     rev = "refs/tags/${pname}-${version}";
-    sha256 = "0zkmwxyl1870ar6jr9h537vmqgkckqs9jd1yv6m4qqzdsmg5gdbq";
+    sha256 = "sha256-7+4XwsjzLBCQmHDYNwhlN4Yg3eL43GUEbq8ROtuP2Kw=";
   };
 
-  # pod2man
-  nativeBuildInputs = [ perl ];
+  cargoSha256 = "sha256-durb4RTzEun7HPeYfvDJpvO+6L7tNFmAxdIwINbwZrg=";
 
-  propagatedBuildInputs = [ coreutils perl ];
-
-  postFixup = ''
-    sed -e 's@/bin/rm@${coreutils}/bin/rm@' -i $out/bin/safe-rm
+  postPatch = ''
+    substituteInPlace src/main.rs \
+      --replace "/bin/rm" "${coreutils}/bin/rm"
   '';
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp safe-rm $out/bin
+  nativeBuildInputs = [ installShellFiles ];
+
+  # uses lots of absolute paths outside of the sandbox
+  doCheck = false;
 
-    mkdir -p $out/share/man/man1
-    pod2man safe-rm > $out/share/man/man1/safe-rm.1
+  postInstall = ''
+    installManPage safe-rm.1
   '';
 
   meta = with lib; {
     description = "Tool intended to prevent the accidental deletion of important files";
     homepage = "https://launchpad.net/safe-rm";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
-    maintainers = [ maintainers.koral ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/tre-command/default.nix b/nixpkgs/pkgs/tools/system/tre-command/default.nix
index 01590db0fd07..85b4f9fe2acf 100644
--- a/nixpkgs/pkgs/tools/system/tre-command/default.nix
+++ b/nixpkgs/pkgs/tools/system/tre-command/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1r84xzv3p0ml3wac2j7j5fkm7i93v2xvadb8f8al5wi57q39irj7";
   };
 
-  cargoSha256 = "1nbfgz7njc10b0abs6zwi6wzhlwllps3wah6abc1mj5yhrzwccmh";
+  cargoSha256 = "1f7yhnbgccqmz8hpc1xdv97j53far6d5p5gqvq6xxaqq9irf9bgj";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/system/wslu/default.nix b/nixpkgs/pkgs/tools/system/wslu/default.nix
new file mode 100644
index 000000000000..cab427e16578
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/wslu/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "wslu";
+  version = "3.2.3";
+
+  src = fetchFromGitHub {
+    owner = "wslutilities";
+    repo = pname;
+    rev = "v${version}";
+    sha512 = "2mkvdl65hnwflmi635ngmsm1aqsablz2gypn3a1adby1mwwdc57xym8kkg5359g3mvksac6n43ji2z48lfpvlay64z793q2v0z6by02";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A collection of utilities for Windows 10 Linux Subsystems";
+    homepage = "https://github.com/wslutilities/wslu";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jamiemagee ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/zenith/default.nix b/nixpkgs/pkgs/tools/system/zenith/default.nix
index 3a7f8a55a129..1e36614c4274 100644
--- a/nixpkgs/pkgs/tools/system/zenith/default.nix
+++ b/nixpkgs/pkgs/tools/system/zenith/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, IOKit }:
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, IOKit
+, nvidiaSupport ? false
+, makeWrapper
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "zenith";
@@ -11,12 +18,20 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1bn364rmp0q86rd7vgv4n7x09cdf9m4njcaq92jnk85ni6h147ax";
   };
 
-  cargoSha256 = "16s7swv2sp15gry1j1pcyz29cspvafczaf4v02x4fd2jbn2y3f6r";
+  cargoBuildFlags = lib.optionals nvidiaSupport [ "--features" "nvidia" ];
+  cargoSha256 = "0c2mk2bcz4qjyqmf11yqhnhy4pqxr77b3c1gvr5jfmjshx4ff7v2";
 
+  nativeBuildInputs = lib.optional nvidiaSupport makeWrapper;
   buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
 
+  postInstall = lib.optionalString nvidiaSupport ''
+    wrapProgram $out/bin/zenith \
+      --suffix LD_LIBRARY_PATH : "/run/opengl-driver/lib"
+  '';
+
   meta = with lib; {
-    description = "Sort of like top or htop but with zoom-able charts, network, and disk usage";
+    description = "Sort of like top or htop but with zoom-able charts, network, and disk usage"
+      + lib.optionalString nvidiaSupport ", and NVIDIA GPU usage";
     homepage = "https://github.com/bvaisvil/zenith";
     license = licenses.mit;
     maintainers = with maintainers; [ bbigras ];
diff --git a/nixpkgs/pkgs/tools/text/angle-grinder/default.nix b/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
index 66441d737132..f9f5736015b8 100644
--- a/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
+++ b/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-cGYhGcNalmc/Gr7mY1Fycs8cZYaIy622DFIL64LT+gE=";
   };
 
-  cargoSha256 = "sha256-NkghuZHNT3Rq2wqiyKzjP+u9ZpeHU5H6oBLS0oQ7LcU=";
+  cargoSha256 = "sha256-LJ7zudUeso28zJqLhqWGWqf+L4o75rJjtTx9BpWKRIE=";
 
   meta = with lib; {
     description = "Slice and dice logs on the command line";
diff --git a/nixpkgs/pkgs/tools/text/chars/default.nix b/nixpkgs/pkgs/tools/text/chars/default.nix
index e5a1bc9c2a07..c8d1b1064acd 100644
--- a/nixpkgs/pkgs/tools/text/chars/default.nix
+++ b/nixpkgs/pkgs/tools/text/chars/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1pyda3b6svxzc98d7ggl7v9xd0xhilmpjrnajzh77zcwzq42s17l";
   };
 
-  cargoSha256 = "1ampmw0l2wk2xp4q13aj5shxncqfh4dc3rsmpk2scaivanrsikn5";
+  cargoSha256 = "0ywywbcnc9jm0cfd6kbq8vl6r5dl16sxn7pwi2k6l0sj75pm1i6h";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/nixpkgs/pkgs/tools/text/choose/default.nix b/nixpkgs/pkgs/tools/text/choose/default.nix
index 7816f79649c3..05b325126871 100644
--- a/nixpkgs/pkgs/tools/text/choose/default.nix
+++ b/nixpkgs/pkgs/tools/text/choose/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0j3861pxqw0lnamb201c7h5w7npzyiwwb6c1xzxjv72m2ccvz76j";
   };
 
-  cargoSha256 = "1p18926pfff1yayb2i28v0nz37j52hqqv7244yfrzgidi29kyvbc";
+  cargoSha256 = "1fdcz7vnmrw92y7bx49napi7j2jjc41liz5k63kbijfwqnaaiswy";
 
   meta = with lib; {
     description = "A human-friendly and fast alternative to cut and (sometimes) awk";
diff --git a/nixpkgs/pkgs/tools/text/chroma/default.nix b/nixpkgs/pkgs/tools/text/chroma/default.nix
index 390793ffaf1c..6511d2dcdbb3 100644
--- a/nixpkgs/pkgs/tools/text/chroma/default.nix
+++ b/nixpkgs/pkgs/tools/text/chroma/default.nix
@@ -2,15 +2,14 @@
 
 buildGoModule rec {
   pname = "chroma";
-  version = "0.8.2";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner  = "alecthomas";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0vzxd0jvjaakwjvkkkjppakjb00z44k7gb5ng1i4924agh24n5ka";
+    sha256 = "sha256-+4UaQrJh3PBf68rlW1lOEyEVw3vWxfc+Casa5+H8F9A=";
     leaveDotGit = true;
-    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ git ];
@@ -27,7 +26,7 @@ buildGoModule rec {
       --replace 'date    = "?"' "date = \"$date\""
   '';
 
-  vendorSha256 = "16cnc4scgkx8jan81ymha2q1kidm6hzsnip5mmgbxpqcc2h7hv9m";
+  vendorSha256 = "0y8mp08zccn9qxrsj9j7vambz8dwzsxbbgrlppzam53rg8rpxhrg";
 
   subPackages = [ "cmd/chroma" ];
 
diff --git a/nixpkgs/pkgs/tools/text/coloursum/default.nix b/nixpkgs/pkgs/tools/text/coloursum/default.nix
index 5dcf6f3da47f..8391b75a67bc 100644
--- a/nixpkgs/pkgs/tools/text/coloursum/default.nix
+++ b/nixpkgs/pkgs/tools/text/coloursum/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1piz0l7qdcvjzfykm6rzqc8s1daxp3cj3923v9cmm41bc2v0p5q0";
   };
 
-  cargoSha256 = "1w0q5w0bf1682jvzcml8cgmr9mrgi4if0p63wzchyjav330dp6pk";
+  cargoSha256 = "08l01ivmln9gwabwa1p0gk454qyxlcpnlxx840vys476f4pw7vvf";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/text/dcs/default.nix b/nixpkgs/pkgs/tools/text/dcs/default.nix
index 610b494439c6..511931f03808 100644
--- a/nixpkgs/pkgs/tools/text/dcs/default.nix
+++ b/nixpkgs/pkgs/tools/text/dcs/default.nix
@@ -1,8 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, python3Packages
-, perl
+, yuicompressor
 , zopfli
 , stdenv
 }:
@@ -23,8 +22,7 @@ buildGoModule {
   doCheck = false;
 
   nativeBuildInputs = [
-    python3Packages.slimit
-    (perl.withPackages (p: [ p.CSSMinifier ]))
+    yuicompressor
     zopfli
   ];
 
diff --git a/nixpkgs/pkgs/tools/text/diffr/default.nix b/nixpkgs/pkgs/tools/text/diffr/default.nix
index 78baa32630b0..a77a5dc081e8 100644
--- a/nixpkgs/pkgs/tools/text/diffr/default.nix
+++ b/nixpkgs/pkgs/tools/text/diffr/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "18ks5g4bx6iz9hdjxmi6a41ncxpb1hnsscdlddp2gr40k3vgd0pa";
   };
 
-  cargoSha256 = "09yn02985yv40n9y0ipz0jmj7iqhz7l8hd3ry9ib3fyw9pyklnfa";
+  cargoSha256 = "05rfjangmyvmqm0bvl4bcvc7m4zhg66gknh85sxr3bzrlwzacwgw";
 
   buildInputs = (lib.optional stdenv.isDarwin Security);
 
diff --git a/nixpkgs/pkgs/tools/text/diffutils/default.nix b/nixpkgs/pkgs/tools/text/diffutils/default.nix
index bcb7fad58dad..d95e7ae399db 100644
--- a/nixpkgs/pkgs/tools/text/diffutils/default.nix
+++ b/nixpkgs/pkgs/tools/text/diffutils/default.nix
@@ -6,10 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "diffutils-3.7";
+  pname = "diffutils";
+  version = "3.7";
 
   src = fetchurl {
-    url = "mirror://gnu/diffutils/${name}.tar.xz";
+    url = "mirror://gnu/diffutils/diffutils-${version}.tar.xz";
     sha256 = "09isrg0isjinv8c535nxsi1s86wfdfzml80dbw41dj9x3hiad9xk";
   };
 
diff --git a/nixpkgs/pkgs/tools/text/each/default.nix b/nixpkgs/pkgs/tools/text/each/default.nix
index a1d14ed21108..0218cf5dde27 100644
--- a/nixpkgs/pkgs/tools/text/each/default.nix
+++ b/nixpkgs/pkgs/tools/text/each/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "04rx8jf871l4darfx6029dhpnbpmzwjgzazayp1qcaadsk8207z5";
   };
 
-  cargoSha256 = "1rcmymjff9sc0dv4zplklivfws14wqx6q4ky47arg6jkj3dyprp8";
+  cargoSha256 = "1r7nzfh7v2mlp0wdrcpqfj68h3zmip2m3d4z2nwxyikmw7c80car";
 
   meta = with lib; {
     description = " A better way of working with structured data on the command line";
diff --git a/nixpkgs/pkgs/tools/text/fastmod/default.nix b/nixpkgs/pkgs/tools/text/fastmod/default.nix
index e838e2931c7e..d6e2dc4dd1fc 100644
--- a/nixpkgs/pkgs/tools/text/fastmod/default.nix
+++ b/nixpkgs/pkgs/tools/text/fastmod/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , rustPlatform
+, libiconv
 , Security
 }:
 
@@ -17,7 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-L1MKoVacVKcpEG2IfS+eENxFZNiSaTDTxfFbFlvzYl8=";
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   meta = with lib; {
     description = "A utility that makes sweeping changes to large, shared code bases";
diff --git a/nixpkgs/pkgs/tools/text/fst/default.nix b/nixpkgs/pkgs/tools/text/fst/default.nix
index 738fd69dc64d..99c904005220 100644
--- a/nixpkgs/pkgs/tools/text/fst/default.nix
+++ b/nixpkgs/pkgs/tools/text/fst/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   cargoBuildFlags = [ "--workspace" ];
-  cargoSha256 = "0svn2gzipslz939396rcydqx3i1x07l7acas7fhql12n59n2yrxw";
+  cargoSha256 = "0440p0hb3nlq9wwk3zac9dldanslrddvqn4gib0vl7aikxkcvh4l";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
diff --git a/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch b/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch
deleted file mode 100644
index fd8f93834e52..000000000000
--- a/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/download_model.sh b/download_model.sh
-index 9cb401f..ad1dc62 100755
---- a/download_model.sh
-+++ b/download_model.sh
-@@ -13,5 +13,5 @@ mkdir -p models/$model
- for filename in checkpoint encoder.json hparams.json model.ckpt.data-00000-of-00001 model.ckpt.index model.ckpt.meta vocab.bpe; do
-   fetch=$model/$filename
-   echo "Fetching $fetch"
--  curl --output models/$fetch https://storage.googleapis.com/gpt-2/models/$fetch
-+  curl --output models/$fetch https://openaipublic.blob.core.windows.net/gpt-2/models/$fetch
- done
diff --git a/nixpkgs/pkgs/tools/text/gpt2tc/default.nix b/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
index eb79d9009f34..3714a4185485 100644
--- a/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
+++ b/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
@@ -2,20 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "gpt2tc";
-  version = "2020-12-30";
+  version = "2021-04-24";
 
   src = fetchurl {
-    url = "https://bellard.org/nncp/gpt2tc-${version}.tar.gz";
-    hash = "sha256-KFcl7E6iGx50JaJI1jwzKAdkrkbNngPbrEA/ZSyG+uY=";
+    url = "https://bellard.org/libnc/gpt2tc-${version}.tar.gz";
+    hash = "sha256-kHnRziSNRewifM/oKDQwG27rXRvntuUUX8M+PUNHpA4=";
   };
 
   patches = [
     # Add a shebang to the python script so that nix detects it as such and
     # wraps it properly. Otherwise, it runs in shell and freezes the system.
     ./0001-add-python-shebang.patch
-
-    # Update the source URL for the models because the old one is down.
-    ./0002-fix-download-url.patch
   ];
 
   nativeBuildInputs = [ autoPatchelfHook ];
@@ -24,11 +21,11 @@ stdenv.mkDerivation rec {
     (python3.withPackages (p: with p; [ numpy tensorflow ]))
   ];
 
-  dontBuild = true;
-
   installPhase = ''
     runHook preInstall
 
+    install -D -m755 -t $out/lib libnc${stdenv.hostPlatform.extensions.sharedLibrary}
+    addAutoPatchelfSearchPath $out/lib
     install -D -m755 -t $out/bin gpt2tc
     install -T -m755 download_model.sh $out/bin/gpt2-download-model
     install -T -m755 gpt2convert.py $out/bin/gpt2-convert
diff --git a/nixpkgs/pkgs/tools/text/groff/default.nix b/nixpkgs/pkgs/tools/text/groff/default.nix
index 892aeb463f88..5b158f2cbb0e 100644
--- a/nixpkgs/pkgs/tools/text/groff/default.nix
+++ b/nixpkgs/pkgs/tools/text/groff/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl
+{ lib, stdenv, fetchurl, fetchpatch, perl
 , ghostscript #for postscript and html output
 , psutils, netpbm #for html output
 , buildPackages
@@ -22,6 +22,13 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./0001-Fix-cross-compilation-by-looking-for-ar.patch
+  ]
+  ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "9") [
+    # https://trac.macports.org/ticket/59783
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/openembedded/openembedded-core/ce265cf467f1c3e5ba2edbfbef2170df1a727a52/meta/recipes-extended/groff/files/0001-Include-config.h.patch";
+      sha256 = "1b0mg31xkpxkzlx696nr08rcc7ndpaxdplvysy0hw5099c4n1wyf";
+    })
   ];
 
   postPatch = lib.optionalString (psutils != null) ''
diff --git a/nixpkgs/pkgs/tools/text/gtranslator/default.nix b/nixpkgs/pkgs/tools/text/gtranslator/default.nix
index bf825a55059e..5bc99724e3fa 100644
--- a/nixpkgs/pkgs/tools/text/gtranslator/default.nix
+++ b/nixpkgs/pkgs/tools/text/gtranslator/default.nix
@@ -9,6 +9,7 @@
 , wrapGAppsHook
 , libxml2
 , libgda
+, libhandy
 , libsoup
 , json-glib
 , gspell
@@ -16,17 +17,17 @@
 , libdazzle
 , gtk3
 , gtksourceview4
-, gnome3
+, gnome
 , gsettings-desktop-schemas
 }:
 
 stdenv.mkDerivation rec {
   pname = "gtranslator";
-  version = "3.38.0";
+  version = "40.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "282puBoi2SM74Y6Z/VxEj2qwV1nR6UwQWAu4McotdjU=";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0d48nc11z0m91scy21ah56ysxns82zvswx8lglvlkig1vqvblgpc";
   };
 
   nativeBuildInputs = [
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
     libdazzle
     gtksourceview4
     libgda
+    libhandy
     libsoup
     json-glib
     gettext
@@ -59,7 +61,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
diff --git a/nixpkgs/pkgs/tools/text/highlight/default.nix b/nixpkgs/pkgs/tools/text/highlight/default.nix
index 56d0a2345270..f44ddc9d0e91 100644
--- a/nixpkgs/pkgs/tools/text/highlight/default.nix
+++ b/nixpkgs/pkgs/tools/text/highlight/default.nix
@@ -5,13 +5,13 @@ with lib;
 let
   self = stdenv.mkDerivation rec {
     pname = "highlight";
-    version = "3.60";
+    version = "4.1";
 
     src = fetchFromGitLab {
       owner = "saalen";
       repo = "highlight";
       rev = "v${version}";
-      sha256 = "sha256-1EBdtORd9P5DJUmbZa9KjR3UUoHOKLbjqbxpFi5WFvQ=";
+      sha256 = "sha256-KktwbnL13Tcc2iWAjgqQSMSenUN6nYBEGbFrpB1kkr0=";
     };
 
     enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/text/hottext/default.nix b/nixpkgs/pkgs/tools/text/hottext/default.nix
new file mode 100644
index 000000000000..6d361f50f35a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/hottext/default.nix
@@ -0,0 +1,100 @@
+{ lib, stdenv, fetchurl, fetchFromGitHub, nim, gentium, SDL2, makeDesktopItem }:
+
+let
+  treeformLibs = lib.attrsets.mapAttrsToList (repo: args:
+    fetchFromGitHub ({
+      inherit repo;
+      owner = "treeform";
+    } // args)) {
+      bumpy = {
+        rev = "1.0.3";
+        sha256 = "sha256-mDmDlhOGoYYjKgF5j808oT2NqRlfcOdLSDE3WtdJFQ0=";
+      };
+      chroma = {
+        rev = "0.2.5";
+        sha256 = "sha256-6lNHpO2aMorgkaPfo6kRcOs9r5R6T/kislVmkeoulw8=";
+      };
+      flatty = {
+        rev = "0.2.1";
+        sha256 = "sha256-TqNnRh2+i6n98ktLRVQxt9CVw17FGLNYq29rJoMus/0=";
+      };
+      pixie = {
+        rev = "1.1.3";
+        sha256 = "sha256-xKIejVxOd19mblL1ZwpJH91dgKQS5g8U08EL8lGGelA=";
+      };
+      typography = {
+        rev = "0.7.9";
+        sha256 = "sha256-IYjw3PCp5XzVed2fGGCt9Hb60cxFeF0BUZ7L5PedTLU=";
+      };
+      vmath = {
+        rev = "1.0.3";
+        sha256 = "sha256-zzSKXjuTZ46HTFUs0N47mxEKTKIdS3dwr+60sQYSdn0=";
+      };
+    };
+
+  nimLibs = treeformLibs ++ [
+    (fetchFromGitHub {
+      owner = "nim-lang";
+      repo = "sdl2";
+      rev = "v2.0.2";
+      sha256 = "sha256-Ivx/gxDa2HVDjCVrJVu23i4d0pDzzv+ThmwqNjtkjsA=";
+    })
+    (fetchFromGitHub {
+      owner = "guzba";
+      repo = "nimsimd";
+      rev = "1.0.0";
+      sha256 = "sha256-kp61fylAJ6MSN9hLYLi7CU2lxVR/lbrNCvZTe0LJLGo=";
+    })
+    (fetchFromGitHub {
+      owner = "guzba";
+      repo = "zippy";
+      rev = "0.5.6";
+      sha256 = "sha256-axp4t9+8TFSpvnATlRKZyuOGLA0e/XKfvrVSwreXpC4=";
+    })
+  ];
+
+in stdenv.mkDerivation rec {
+  pname = "hottext";
+  version = "1.3";
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~ehmry/hottext/archive/v${version}.tar.gz";
+    sha256 = "sha256-iz7Z2x0/yi/E6gGFkYgq/yZDOxrZGwQmumPoO9kckLQ=";
+  };
+
+  nativeBuildInputs = [ nim ];
+  buildInputs = [ SDL2 ];
+
+  nimFlags = [ "-d:release" ] ++ map (lib: "--path:${lib}/src") nimLibs;
+
+  HOTTEXT_FONT_PATH = "${gentium}/share/fonts/truetype/GentiumPlus-R.ttf";
+
+  buildPhase = ''
+    runHook preBuild
+    HOME=$TMPDIR
+    nim $nimFlags compile src/$pname
+    runHook postBuild
+  '';
+
+  desktopItem = makeDesktopItem {
+    categories = "Utility;";
+    comment = meta.description;
+    desktopName = pname;
+    exec = pname;
+    name = pname;
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin src/$pname
+    cp -r $desktopItem/* $out
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Simple RSVP speed-reading utility";
+    license = licenses.unlicense;
+    homepage = "https://git.sr.ht/~ehmry/hottext";
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/jumanpp/default.nix b/nixpkgs/pkgs/tools/text/jumanpp/default.nix
index f002e228ac5d..5578ed417a27 100644
--- a/nixpkgs/pkgs/tools/text/jumanpp/default.nix
+++ b/nixpkgs/pkgs/tools/text/jumanpp/default.nix
@@ -1,15 +1,17 @@
-{ lib, stdenv, fetchurl, cmake, protobuf }:
+{ lib, stdenv, fetchurl, cmake, protobuf, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "jumanpp";
-  version = "2.0.0-rc2";
+  version = "2.0.0-rc3";
 
   src = fetchurl {
     url = "https://github.com/ku-nlp/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "17fzmd0f5m9ayfhsr0mg7hjp3pg1mhbgknhgyd8v87x46g8bg6qp";
+    sha256 = "sha256-ASdr6qbkSe71M7QmuuwidCa4xQhDVoXBJ2XqvSY53pQ=";
   };
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ protobuf ];
+  buildInputs = [ protobuf ]
+    ++ lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
     description = "A Japanese morphological analyser using a recurrent neural network language model (RNNLM)";
diff --git a/nixpkgs/pkgs/tools/text/link-grammar/default.nix b/nixpkgs/pkgs/tools/text/link-grammar/default.nix
index b5cfdcbfc0c9..3a6686dba5f2 100644
--- a/nixpkgs/pkgs/tools/text/link-grammar/default.nix
+++ b/nixpkgs/pkgs/tools/text/link-grammar/default.nix
@@ -1,20 +1,36 @@
-{ lib, stdenv, fetchurl, pkg-config, python3, sqlite, libedit, zlib, runCommand, dieHook }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, python3
+, sqlite
+, libedit
+, runCommand
+, dieHook
+}:
 
 let
 
 link-grammar = stdenv.mkDerivation rec {
-  version = "5.8.1";
   pname = "link-grammar";
+  version = "5.9.1";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
   src = fetchurl {
     url = "http://www.abisource.com/downloads/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-EcT/VR+lFpJX2sxXUIDGOwdceQ7awpmEqUZBoJk7UFs=";
+    sha256 = "sha256-4D/rqoIGlvR+q7Az8E1xPYSQQMJMRVeRM9HQIbjssLo=";
   };
 
-  nativeBuildInputs = [ pkg-config python3 ];
-  buildInputs = [ sqlite libedit zlib ];
+  nativeBuildInputs = [
+    pkg-config
+    python3
+  ];
+
+  buildInputs = [
+    sqlite
+    libedit
+  ];
 
   configureFlags = [
     "--disable-java-bindings"
diff --git a/nixpkgs/pkgs/tools/text/mdbook/default.nix b/nixpkgs/pkgs/tools/text/mdbook/default.nix
index 838cdf075bd9..a8c5efb0a493 100644
--- a/nixpkgs/pkgs/tools/text/mdbook/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.7";
+  version = "0.4.9";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-51S4I1YIbdgXkhuT7KnhJe71nGCQmr9JmuGtp7Bcxqo=";
+    sha256 = "sha256-wc3poiLnIHbbl0j2sWQkEbxccpohPnvjLPdNuKfsDSY=";
   };
 
-  cargoSha256 = "sha256-2kBJcImytsSd7Q0kj1bsP/NXxyy2Pr8gHb8iNf6h3/4=";
+  cargoSha256 = "sha256-2DNfacPp9IMke2j8WYxpGmMxityaFGyXrc0jOyqPl3c=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/nixpkgs/pkgs/tools/text/mdcat/default.nix b/nixpkgs/pkgs/tools/text/mdcat/default.nix
index f6752938d464..6f6750b1b02c 100644
--- a/nixpkgs/pkgs/tools/text/mdcat/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdcat/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "sha256-mnDUIJhEGNoh3eq2Vhww1T/tpZh9RP+RxbRsBNrpOzw=";
+  cargoSha256 = "sha256-y9yg4EQDL+RcD6NI7n6W/Hi6Tw4Wr1Kf6hbcIuidIf4=";
 
   checkInputs = [ ansi2html ];
   # Skip tests that use the network and that include files.
diff --git a/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix b/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix
index 99e2bf065086..0e13e4c5f35c 100644
--- a/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix
+++ b/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix
@@ -43,7 +43,7 @@ buildPythonApplication rec {
   nativeBuildInputs = with python3Packages; [
     setuptools
     setuptools-scm-git-archive
-    setuptools_scm
+    setuptools-scm
   ];
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/text/opencc/default.nix b/nixpkgs/pkgs/tools/text/opencc/default.nix
index 7893968d9eea..f99062de4131 100644
--- a/nixpkgs/pkgs/tools/text/opencc/default.nix
+++ b/nixpkgs/pkgs/tools/text/opencc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencc";
-  version = "1.0.6";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "BYVoid";
     repo = "OpenCC";
     rev = "ver.${version}";
-    sha256 = "1ygj2ygxsva72hs6cm0a6wdd2rp71k4nm0pd7cb20y2srdlzvdqk";
+    sha256 = "1a15p9idznh23b44r7rw2zjnirbxjs5pyq3k6xkz0k64cdh2zq6h";
   };
 
   nativeBuildInputs = [ cmake python ];
@@ -20,9 +20,6 @@ stdenv.mkDerivation rec {
     export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$(pwd)/src
   '';
 
-  # Parallel building occasionaly fails with: Error copying file "/tmp/nix-build-opencc-1.0.5.drv-0/OpenCC-ver.1.0.5/build/src/libopencc.so.1.0.0" to "/tmp/nix-build-opencc-1.0.5.drv-0/OpenCC-ver.1.0.5/build/src/tools".
-  enableParallelBuilding = false;
-
   meta = with lib; {
     homepage = "https://github.com/BYVoid/OpenCC";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/text/poedit/default.nix b/nixpkgs/pkgs/tools/text/poedit/default.nix
index 185b2a41c46a..9a5226d98b27 100644
--- a/nixpkgs/pkgs/tools/text/poedit/default.nix
+++ b/nixpkgs/pkgs/tools/text/poedit/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchurl, autoconf, automake, libtool, gettext, pkg-config, wxGTK30-gtk3,
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext, pkg-config, wxGTK30-gtk3,
   boost, icu, lucenepp, asciidoc, libxslt, xmlto, gtk3, gtkspell3, pugixml,
   nlohmann_json, hicolor-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "2.4.2";
+  version = "2.4.3";
 
-  src = fetchurl {
-    url = "https://github.com/vslavik/poedit/archive/v${version}-oss.tar.gz";
-    sha256 = "1kry3xphrdccx8znfm9pw5872c5w0ri7cknlad4qcps54b25nnzk";
+  src = fetchFromGitHub {
+    owner = "vslavik";
+    repo = "poedit";
+    rev = "v${version}-oss";
+    sha256 = "02xf2w3d2lnr3vqmil9vvg9pir7d21x4zrj9xwpgb7dhs0gimj0x";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
@@ -41,6 +43,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.poedit.net/";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ dasj19 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/replace/default.nix b/nixpkgs/pkgs/tools/text/replace/default.nix
index 117fb737aa06..a0873d1c8d2b 100644
--- a/nixpkgs/pkgs/tools/text/replace/default.nix
+++ b/nixpkgs/pkgs/tools/text/replace/default.nix
@@ -1,11 +1,12 @@
 { lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "replace-2.24";
+stdenv.mkDerivation rec {
+  pname = "replace";
+  version = "2.24";
 
   src = fetchurl {
-    url = "ftp://hpux.connect.org.uk/hpux/Users/replace-2.24/replace-2.24-src-11.11.tar.gz";
-    sha256 = "1c2nkxx83vmlh1v3ib6r2xqh121gdb1rharwsimcb2h0xwc558dm";
+    url = "http://hpux.connect.org.uk/ftp/hpux/Users/replace-${version}/replace-${version}-src-11.31.tar.gz";
+    sha256 = "18hkwhaz25s6209n5mpx9hmkyznlzygqj488p2l7nvp9zrlxb9sf";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix b/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix
index 5d6a74327d42..0fc39b8da280 100644
--- a/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix
+++ b/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg_3
+{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg
 , pandoc, poppler_utils, ripgrep, Security, imagemagick, tesseract
 }:
 
@@ -13,13 +13,13 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1wjpgi7m3lxybllkr3r60zaphp02ykq2syq72q9ail2760cjcir6";
   };
 
-  cargoSha256 = "0arwxqrpxdws4q1pnqzqkp1yv5aas08lkzh1vcgmf26j58sycniy";
+  cargoSha256 = "1l71xj5crfb51wfp2bdvdqp1l8kg182n5d6w23lq2wjszaqcj7cw";
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   postInstall = ''
     wrapProgram $out/bin/rga \
-      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg_3 pandoc poppler_utils ripgrep imagemagick tesseract ]}"
+      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg pandoc poppler_utils ripgrep imagemagick tesseract ]}"
   '';
 
   # Use upstream's example data to run a couple of queries to ensure the dependencies
@@ -58,5 +58,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/phiresky/ripgrep-all";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ zaninime ma27 ];
+    mainProgram = "rga";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/ripgrep/default.nix b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
index 8c9eef9cc3dd..ca337deec937 100644
--- a/nixpkgs/pkgs/tools/text/ripgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
@@ -6,7 +6,7 @@
 , pkg-config
 , Security
 , withPCRE2 ? true
-, pcre2 ? null
+, pcre2
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -20,14 +20,14 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1hqps7l5qrjh9f914r5i6kmcz6f1yb951nv4lby0cjnp5l253kps";
   };
 
-  cargoSha256 = "03wf9r2csi6jpa7v5sw5lpxkrk4wfzwmzx7k3991q3bdjzcwnnwp";
+  cargoSha256 = "1nyfxma2vwfq6r614ng8qq8vanb540a5z0ibs85wz5sjm3hp1l4f";
 
   cargoBuildFlags = lib.optional withPCRE2 "--features pcre2";
 
   nativeBuildInputs = [ asciidoctor installShellFiles ]
     ++ lib.optional withPCRE2 pkg-config;
-  buildInputs = (lib.optional withPCRE2 pcre2)
-    ++ (lib.optional stdenv.isDarwin Security);
+  buildInputs = lib.optional withPCRE2 pcre2
+    ++ lib.optional stdenv.isDarwin Security;
 
   preFixup = ''
     installManPage $releaseDir/build/ripgrep-*/out/rg.1
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/ripgrep";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ tailhook globin ma27 zowoq ];
+    mainProgram = "rg";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/ruplacer/default.nix b/nixpkgs/pkgs/tools/text/ruplacer/default.nix
index 3af039ccdaed..2f9249711ed3 100644
--- a/nixpkgs/pkgs/tools/text/ruplacer/default.nix
+++ b/nixpkgs/pkgs/tools/text/ruplacer/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0yj753d9wsnp4s5a71ph241jym5rfz3161a1v3qxfc4w23v86j1q";
   };
 
-  cargoSha256 = "0wrv4k63pc1v0apmxmmci9qaykcv9ig3nfxy6id5caqrckp73cr4";
+  cargoSha256 = "0z1i1yfj1wdzbzapnvfr9ngn9z30xwlkrfhz52npbirysy1al5xk";
 
   buildInputs = (lib.optional stdenv.isDarwin Security);
 
diff --git a/nixpkgs/pkgs/tools/text/sd/default.nix b/nixpkgs/pkgs/tools/text/sd/default.nix
index a3290aff2112..1536e72ad29e 100644
--- a/nixpkgs/pkgs/tools/text/sd/default.nix
+++ b/nixpkgs/pkgs/tools/text/sd/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0c5bsqs6c55x4j640vhzlmbiylhp5agr7lx0jrwcjazfyvxihc01";
   };
 
-  cargoSha256 = "1mksmdp1wnsjd8gw1g3l16a24fk05xa9mxygc0qklr41bqf8kw8b";
+  cargoSha256 = "1iwgy9zzdxay6hb9pz47jchy03jrsy5csxijlq4i228qhqnvq1lr";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/nixpkgs/pkgs/tools/text/shfmt/default.nix b/nixpkgs/pkgs/tools/text/shfmt/default.nix
index c6ab5ff9c734..29a5a157a678 100644
--- a/nixpkgs/pkgs/tools/text/shfmt/default.nix
+++ b/nixpkgs/pkgs/tools/text/shfmt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "shfmt";
-  version = "3.2.4";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "sha256-BkvsCIcm3qnfECNhY3DIPnBRih6D7rOHOQu9oc0YDZA=";
+    sha256 = "sha256-pD1nkbBw5NBCyuhn2DYop2AR+1T8p6/zTa6FeWiya7Q=";
   };
 
-  vendorSha256 = "1ma7nvyn6ylbi8bd7x900i94pzs877kfy9xh0nf1bbify1vcpd29";
+  vendorSha256 = "sha256-euJYStN21xFYosouWYXpHN3MWCKR4NT8z6OSonM0HW8=";
 
   subPackages = [ "cmd/shfmt" ];
 
diff --git a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
index 935f593177bb..6cd6bdda0d9d 100644
--- a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
+++ b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snippetpixie";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "bytepixie";
     repo = pname;
     rev = version;
-    sha256 = "047ghk0zfmcsnbr4h2h5ar7g1sw2mnk8r2887v81dh3vf767rqg2";
+    sha256 = "173fm9h7lnhhbg5qbjz40g0fy60dwd2l55mdcc1j8dh73vz96pfr";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/text/ugrep/default.nix b/nixpkgs/pkgs/tools/text/ugrep/default.nix
index 5806723a043e..17503829e7ae 100644
--- a/nixpkgs/pkgs/tools/text/ugrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ugrep/default.nix
@@ -1,17 +1,33 @@
-{ lib, stdenv, fetchFromGitHub, boost, bzip2, lz4, pcre2, xz, zlib }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, boost
+, bzip2
+, lz4
+, pcre2
+, xz
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.1.7";
+  version = "3.3";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nCpU4GBJ/4c/70hgVKfO1995XCyDRLVUeczsqnlkkFM=";
+    sha256 = "0qk8rzsll69pf220m6n41giyk3faqvwagml7i2xwgp7pcax607nl";
   };
 
-  buildInputs = [ boost bzip2 lz4 pcre2 xz zlib ];
+  buildInputs = [
+    boost
+    bzip2
+    lz4
+    pcre2
+    xz
+    zlib
+  ];
 
   meta = with lib; {
     description = "Ultra fast grep with interactive query UI";
diff --git a/nixpkgs/pkgs/tools/text/uwc/default.nix b/nixpkgs/pkgs/tools/text/uwc/default.nix
index cf8e5658f764..14fe74723a3b 100644
--- a/nixpkgs/pkgs/tools/text/uwc/default.nix
+++ b/nixpkgs/pkgs/tools/text/uwc/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1ywqq9hrrm3frvd2sswknxygjlxi195kcy7g7phwq63j7hkyrn50";
   };
 
-  cargoSha256 = "0ra62cf75b1c4knxxpbdg8m0sy2k02r52j606fp5l9crp0fml8l0";
+  cargoSha256 = "04pslga3ff766cpb73n6ivzmqfa0hm19gcla8iyv6p59ddsajh3q";
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/tools/text/wrap/default.nix b/nixpkgs/pkgs/tools/text/wrap/default.nix
new file mode 100644
index 000000000000..e228f946a8c8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/wrap/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch, makeWrapper, courier-prime }:
+
+buildGoModule rec {
+  pname = "wrap";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "Wraparound";
+    repo = "wrap";
+    rev = "v${version}";
+    sha256 = "0scf7v83p40r9k7k5v41rwiy9yyanfv3jm6jxs9bspxpywgjrk77";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  vendorSha256 = "03q5a5lm8zj1523gxkbc0y6a3mjj1z2h7nrr2qcz8nlghvp4cfaz";
+
+  patches = [
+    (fetchpatch {
+      name = "courier-prime-variants.patch";
+      url = "https://github.com/Wraparound/wrap/commit/b72c280b6eddba9ec7b3507c1f143eb28a85c9c1.patch";
+      sha256 = "1d9v0agfd7mgd17k4a8l6vr2kyswyfsyq3933dz56pgs5d3jric5";
+    })
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/wrap --prefix XDG_DATA_DIRS : ${courier-prime}/share/
+  '';
+
+  meta = with lib; {
+    description = "A Fountain export tool with some extras";
+    homepage = "https://github.com/Wraparound/wrap";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.austinbutler ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix b/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
index 5dab3d642a3b..96aa01abe6dd 100644
--- a/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "html-xml-utils";
-  version = "7.9";
+  version = "8.0";
 
   src = fetchurl {
     url = "https://www.w3.org/Tools/HTML-XML-utils/${pname}-${version}.tar.gz";
-    sha256 = "0gs3xvdbzhk5k12i95p5d4fgkkaldnlv45sch7pnncb0lrpcjsnq";
+    sha256 = "sha256-dJBZkGwzHCx/us7uAkZiRaI3uRvUCN/485bQc0oGCuI=";
   };
 
   buildInputs = [curl libiconv];
diff --git a/nixpkgs/pkgs/tools/text/xsv/default.nix b/nixpkgs/pkgs/tools/text/xsv/default.nix
index 026218b00e16..303b38d65c2d 100644
--- a/nixpkgs/pkgs/tools/text/xsv/default.nix
+++ b/nixpkgs/pkgs/tools/text/xsv/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "17v1nw36mrarrd5yv4xd3mpc1d7lvhd5786mqkzyyraf78pjg045";
   };
 
-  cargoSha256 = "1q59nvklh5r2mrsz656z6js3j2l6rqyhfz6l0yq28df5kyahk91b";
+  cargoSha256 = "1bh60zgflaa5n914irkr4bpq3m4h2ngcj6bp5xx1qj112dwgvmyb";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix b/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix
index 740d16c73df3..aaea9090b72e 100644
--- a/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/htmldoc/default.nix
@@ -1,20 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, zlib, libpng, SystemConfiguration, Foundation }:
+{ lib, stdenv, fetchFromGitHub, zlib, libpng, libjpeg, SystemConfiguration, Foundation, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "htmldoc";
-  version = "1.9.11";
+  version = "1.9.12";
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = "htmldoc";
     rev = "v${version}";
-    sha256 = "0660829zjfdm6vzx14z7gvsfipsb7h0z74gbkyp2ncg3g2432s4n";
+    sha256 = "1dqima0g3j301wwzjxdhzk5pvfj724rl615gf8ssxxajfnid1gl0";
   };
-  buildInputs = [ zlib libpng ]
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ zlib libpng libjpeg ]
     ++ lib.optionals stdenv.isDarwin [ Foundation SystemConfiguration ];
 
   meta = with lib; {
     description = "Converts HTML files to PostScript and PDF";
     homepage    = "https://michaelrsweet.github.io/htmldoc";
+    changelog   = "https://github.com/michaelrsweet/htmldoc/releases/tag/v${version}";
     license     = licenses.gpl2Only;
     maintainers = with maintainers; [ shanemikel ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
index b9b5e806a4ec..e45eda3326a1 100644
--- a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
@@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ which ]
     ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
 
+  preConfigure = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+    echo 'HAVE_SANDBOX_INIT=0' > configure.local
+  '';
+
   configurePhase = ''
     runHook preConfigure
     ./configure PREFIX=''${!outputDev} \
@@ -30,6 +34,14 @@ stdenv.mkDerivation rec {
 
   patches = lib.optional (!stdenv.hostPlatform.isStatic) ./shared.patch;
 
+  doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    echo '# TEST' > test.md
+    $out/bin/lowdown test.md
+    runHook postInstallCheck
+  '';
+
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
   checkTarget = "regress";
 
@@ -41,4 +53,3 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
   };
 }
-
diff --git a/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix b/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix
index 370d54adde97..47256f9f7ee6 100644
--- a/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , autoreconfHook
 , gettext
 , libtool
@@ -25,6 +26,15 @@ stdenv.mkDerivation rec {
     sha256 = "1igabfy3fd7qndihmkfk9incc15pjxpxh2cn5pfw5fxfwrpjrarn";
   };
 
+  patches = [
+    # Not included in 0.9.17.1, but will be in the next version.
+    (fetchpatch {
+      name = "no-poppler-splash.patch";
+      url = "https://github.com/jwilk/pdf2djvu/commit/2ec7eee57a47bbfd296badaa03dc20bf71b50201.patch";
+      sha256 = "03kap7k2j29r16qgl781cxpswzg3r2yn513cqycgl0vax2xj3gly";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix b/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix
index 73370eb011e4..d18c7fc270e3 100644
--- a/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix
@@ -53,7 +53,7 @@ in
     nativeBuildInputs = [ ruby dune_2 ];
 
     buildInputs = [ camlpdf otfm yojson-with-position ] ++ (with ocamlPackages; [
-      ocaml findlib menhir
+      ocaml findlib menhir menhirLib
       batteries camlimages core_kernel ppx_deriving uutf omd cppo re
     ]);
 
diff --git a/nixpkgs/pkgs/tools/typesetting/skribilo/default.nix b/nixpkgs/pkgs/tools/typesetting/skribilo/default.nix
index 755909f2b332..e80c4326651c 100644
--- a/nixpkgs/pkgs/tools/typesetting/skribilo/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/skribilo/default.nix
@@ -1,64 +1,75 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, pkg-config
 , gettext
+, ghostscript
 , guile
-, guile-reader
 , guile-lib
-, ploticus
+, guile-reader
 , imagemagick
-, ghostscript
-, transfig
-, enableEmacs ? false, emacs ? null
-, enableLout ? true, lout ? null
-, enableTex ? true, tex ? null
 , makeWrapper
+, pkg-config
+, ploticus
+, transfig
+, enableEmacs ? false, emacs
+, enableLout ? true, lout
+, enableTex ? true, tex
 }:
 
 let
+  inherit (lib) optional;
+in stdenv.mkDerivation rec{
   pname = "skribilo";
   version = "0.9.5";
-  inherit (lib) optional;
-in stdenv.mkDerivation {
-  inherit pname version;
 
   src = fetchurl {
     url = "http://download.savannah.nongnu.org/releases/skribilo/${pname}-${version}.tar.gz";
     sha256 = "sha256-AIJqIcRjT7C0EO6J60gGjERdgAglh0ZU49U9XKPwvwk=";
   };
 
-  nativeBuildInputs = [ pkg-config makeWrapper ];
-
-  buildInputs = [ gettext guile ploticus imagemagick ghostscript transfig ]
+  nativeBuildInputs = [
+    pkg-config
+    makeWrapper
+  ];
+  buildInputs = [
+    gettext
+    ghostscript
+    guile
+    guile-lib
+    guile-reader
+    imagemagick
+    ploticus
+    transfig
+  ]
   ++ optional enableEmacs emacs
   ++ optional enableLout lout
   ++ optional enableTex tex;
 
-  propagatedBuildInputs = [ guile-reader guile-lib ];
-
-  postInstall = ''
-    wrapProgram $out/bin/skribilo \
-      --prefix GUILE_LOAD_PATH : "$out/share/guile/site:${guile-lib}/share/guile/site:${guile-reader}/share/guile/site" \
-      --prefix GUILE_LOAD_COMPILED_PATH : "$out/share/guile/site:${guile-lib}/share/guile/site:${guile-reader}/share/guile/site"
-  '';
+  postInstall =
+    let
+      guileVersion = lib.versions.majorMinor guile.version;
+    in
+    ''
+      wrapProgram $out/bin/skribilo \
+        --prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \
+        --prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH"
+    '';
 
-  meta = with lib;{
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/skribilo/";
     description = "The Ultimate Document Programming Framework";
     longDescription = ''
-      Skribilo is a free document production tool that takes a
-      structured document representation as its input and renders that
-      document in a variety of output formats: HTML and Info for
-      on-line browsing, and Lout and LaTeX for high-quality hard
-      copies.
+      Skribilo is a free document production tool that takes a structured
+      document representation as its input and renders that document in a
+      variety of output formats: HTML and Info for on-line browsing, and Lout
+      and LaTeX for high-quality hard copies.
 
       The input document can use Skribilo's markup language to provide
-      information about the document's structure, which is similar to
-      HTML or LaTeX and does not require expertise. Alternatively, it
-      can use a simpler, "markup-less" format that borrows from Emacs'
-      outline mode and from other conventions used in emails, Usenet
-      and text.
+      information about the document's structure, which is similar to HTML or
+      LaTeX and does not require expertise. Alternatively, it can use a simpler,
+      "markup-less" format that borrows from Emacs' outline mode and from other
+      conventions used in emails, Usenet and text.
     '';
-    homepage = "https://www.nongnu.org/skribilo/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
index 1145fabf4860..ba722837026d 100644
--- a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-XQ3KRM12X80JPFMnQs//8ZJEv+AV1sr3BH0Nw/PH0HQ=";
   };
 
-  cargoSha256 = "sha256-YOg4W933qUBcvo2y3nmvEWqxTfqWKDi3GCoTJWLnXxk=";
+  cargoSha256 = "sha256-930tFAKMCmTFS9faIWLSVtWN/gAA9UAUMuRo61XISYA=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/typesetting/ted/default.nix b/nixpkgs/pkgs/tools/typesetting/ted/default.nix
index 07e89f9f8edd..bd21ad4c437b 100644
--- a/nixpkgs/pkgs/tools/typesetting/ted/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/ted/default.nix
@@ -58,8 +58,8 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ pkg-config zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper ];
 
   meta = with lib; {
     description = "An easy rich text processor";
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/auctex/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/auctex/default.nix
index 6a9a2cb464c6..f19ddaebdfa1 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/auctex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/auctex/default.nix
@@ -1,22 +1,24 @@
 { lib, stdenv, fetchurl, emacs, texlive, ghostscript }:
 
 let auctex = stdenv.mkDerivation ( rec {
-  version = "12.3";
-
   # Make this a valid tex(live-new) package;
   # the pkgs attribute is provided with a hack below.
   pname = "auctex";
+  version = "12.3";
   tlType = "run";
 
-
   outputs = [ "out" "tex" ];
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1pd99hbhci3l1n0lmzn803svqwl47kld6172gwkwjmwlnqqgxm1g";
+    hash = "sha256-L9T+MLaUV8knf+IE0+g8hHK89QDI/kqBDXREBhdMqd0=";
   };
 
-  buildInputs = [ emacs texlive.combined.scheme-basic ghostscript ];
+  buildInputs = [
+    emacs
+    ghostscript
+    texlive.combined.scheme-basic
+  ];
 
   preConfigure = ''
     mkdir -p "$tex"
@@ -27,11 +29,11 @@ let auctex = stdenv.mkDerivation ( rec {
     "--with-texmf-dir=\${tex}"
   ];
 
-  meta = {
-    description = "Extensible package for writing and formatting TeX files in GNU Emacs and XEmacs";
+  meta = with lib; {
     homepage = "https://www.gnu.org/software/auctex";
-    platforms = lib.platforms.unix;
-    license = lib.licenses.gpl3;
+    description = "Extensible package for writing and formatting TeX files in GNU Emacs and XEmacs";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
   };
 });
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
index 4d02e2e1acfe..65bfcd02d78c 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = [ gtk3 ];
 
-  cargoSha256 = "1sm2fd3dhs59rvmfjzrfz0qwqzyc9dllb8ph0wc2x0r3px16c71x";
+  cargoSha256 = "13ihwrckpsb4j1ai923vh151frw0yriwg9yylj9lk0ycps51y1sn";
 
   meta = with lib; {
     description = "Search through over 1000 different LaTeX symbols by sketching. A desktop version of detexify";
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
index fb9b748b5d0a..32fba9a8e1f3 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -3,7 +3,7 @@
 , zlib, libiconv, libpng, libX11
 , freetype, gd, libXaw, icu, ghostscript, libXpm, libXmu, libXext
 , perl, perlPackages, python3Packages, pkg-config
-, poppler, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr
+, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr
 , brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash
 , makeWrapper, shortenPerlShebang
 }:
@@ -14,24 +14,22 @@
 let
   withSystemLibs = map (libname: "--with-system-${libname}");
 
-  year = "2020";
+  year = "2021";
   version = year; # keep names simple for now
 
   common = {
     src = fetchurl {
       urls = [
-        "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0406-source.tar.xz"
-              "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0406-source.tar.xz"
+        "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0325-source.tar.xz"
+              "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0325-source.tar.xz"
       ];
-      sha256 = "0y4h4j2qg714srhvf1hvn165w7sanr1j2vzrsgc23kxvrc43sbz3";
+      sha256 = "0jsq1p66l46k2qq0gbqmx25flj2nprsz4wrd1ybn286p11kdkvvs";
     };
 
     prePatch = ''
       for i in texk/kpathsea/mktex*; do
         sed -i '/^mydir=/d' "$i"
       done
-      cp -pv texk/web2c/pdftexdir/pdftoepdf{-poppler0.86.0,}.cc
-      cp -pv texk/web2c/pdftexdir/pdftosrc{-poppler0.83.0,}.cc
     '';
 
     configureFlags = [
@@ -43,9 +41,8 @@ let
     ]
       ++ withSystemLibs [
       # see "from TL tree" vs. "Using installed"  in configure output
-      "zziplib" "xpdf" "poppler" "mpfr" "gmp"
+      "zziplib" "mpfr" "gmp"
       "pixman" "potrace" "gd" "freetype2" "libpng" "libpaper" "zlib"
-        # beware: xpdf means to use stuff from poppler :-/
     ];
 
     # clean broken links to stuff not built
@@ -73,7 +70,7 @@ core = stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    /*teckit*/ zziplib poppler mpfr gmp
+    /*teckit*/ zziplib mpfr gmp
     pixman gd freetype libpng libpaper zlib
     perl
   ];
@@ -82,7 +79,7 @@ core = stdenv.mkDerivation rec {
 
   preConfigure = ''
     rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \
-      libs/{lua53,luajit,mpfr,pixman,poppler,xpdf,zlib,zziplib}
+      libs/{lua53,luajit,mpfr,pixman,zlib,zziplib}
     mkdir WorkDir
     cd WorkDir
   '';
@@ -146,7 +143,7 @@ core = stdenv.mkDerivation rec {
     description = "Basic binaries for TeX Live";
     homepage    = "http://www.tug.org/texlive";
     license     = lib.licenses.gpl2;
-    maintainers = with maintainers; [ vcunat veprbl lovek323 raskin jwiegley ];
+    maintainers = with maintainers; [ veprbl lovek323 raskin jwiegley ];
     platforms   = platforms.all;
   };
 };
@@ -178,7 +175,7 @@ core-big = stdenv.mkDerivation { #TODO: upmendex
     luajit = lib.optionalString withLuaJIT ",luajit";
   in ''
     mkdir ./WorkDir && cd ./WorkDir
-    for path in libs/{teckit,lua53${luajit}} texk/web2c; do
+    for path in libs/{pplib,teckit,lua53${luajit}} texk/web2c; do
       (
         if [[ "$path" =~ "libs/lua" ]]; then
           extraConfig="--enable-static --disable-shared"
@@ -188,6 +185,12 @@ core-big = stdenv.mkDerivation { #TODO: upmendex
 
         mkdir -p "$path" && cd "$path"
         "../../../$path/configure" $configureFlags $extraConfig
+
+        if [[ "$path" =~ "libs/pplib" ]]; then
+          # TODO: revert for texlive 2022
+          # ../../../texk/web2c/luatexdir/luamd5/md5lib.c:197:10: fatal error: 'utilsha.h' file not found
+          make ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
+        fi
       )
     done
   '';
@@ -247,18 +250,17 @@ chktex = stdenv.mkDerivation {
 
 dvisvgm = stdenv.mkDerivation rec {
   pname = "texlive-dvisvgm.bin";
-  version = "2.11";
-  # TODO: dvisvgm was switched to build from upstream sources
-  # to address https://github.com/NixOS/nixpkgs/issues/104847
-  # We might want to consider reverting that change in the future.
-
-  src = fetchurl {
-    url = "https://github.com/mgieseki/dvisvgm/releases/download/${version}/dvisvgm-${version}.tar.gz";
-    sha256 = "12b6h0h8rc487yjh3sq9zsdabm9cs2vqcrb0znnfi8277f87zf3j";
-  };
+  inherit version;
+
+  inherit (common) src;
+
+  preConfigure = "cd texk/dvisvgm";
+
+  configureFlags = common.configureFlags
+    ++ [ "--with-system-kpathsea" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ core/*kpathsea*/ brotli ghostscript zlib freetype woff2 potrace xxHash ];
+  buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash ];
 
   enableParallelBuilding = true;
 };
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
index 52521a80809f..4ba42cbce570 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -3,7 +3,7 @@
   - current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive
 */
 { stdenv, lib, fetchurl, runCommand, writeText, buildEnv
-, callPackage, ghostscriptX, harfbuzz, poppler_min
+, callPackage, ghostscriptX, harfbuzz
 , makeWrapper, python3, ruby, perl
 , useFixedHashes ? true
 , recurseIntoAttrs
@@ -11,7 +11,6 @@
 let
   # various binaries (compiled)
   bin = callPackage ./bin.nix {
-    poppler = poppler_min; # otherwise depend on various X stuff
     ghostscript = ghostscriptX;
     harfbuzz = harfbuzz.override {
       withIcu = true; withGraphite2 = true;
diff --git a/nixpkgs/pkgs/tools/video/gopro/default.nix b/nixpkgs/pkgs/tools/video/gopro/default.nix
index 71b85b845ebf..a1991772bf10 100644
--- a/nixpkgs/pkgs/tools/video/gopro/default.nix
+++ b/nixpkgs/pkgs/tools/video/gopro/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub
-, ffmpeg_3
+, ffmpeg
 , imagemagick
 , makeWrapper
 , mplayer
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
     install -Dm755 gopro -t $out/bin
     wrapProgram $out/bin/gopro \
-      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg_3 imagemagick mplayer ]}"
+      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg imagemagick mplayer ]}"
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/tools/video/rav1e/default.nix b/nixpkgs/pkgs/tools/video/rav1e/default.nix
index 16699e15ba6e..17c1b39a92c7 100644
--- a/nixpkgs/pkgs/tools/video/rav1e/default.nix
+++ b/nixpkgs/pkgs/tools/video/rav1e/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "1j92prjyr86wyx58h10xq9c9z28ky86h291x65w7qrxpj658aiz1";
+  cargoSha256 = "0miq6iiywwbxm6k0alnqg6bnd14pwc8vl9d8fgg6c0vjlfy5zhlb";
   nativeBuildInputs = [ nasm cargo-c ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
@@ -49,6 +49,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/xiph/rav1e";
     changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}";
     license = licenses.bsd2;
-    maintainers = [ maintainers.primeos ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/video/swftools/default.nix b/nixpkgs/pkgs/tools/video/swftools/default.nix
index cd3af661840e..6867869a0a9d 100644
--- a/nixpkgs/pkgs/tools/video/swftools/default.nix
+++ b/nixpkgs/pkgs/tools/video/swftools/default.nix
@@ -1,6 +1,5 @@
-{ lib, stdenv, fetchurl, freetype, libjpeg, libungif, zlib }:
+{ lib, stdenv, fetchurl, freetype, libjpeg, zlib }:
 
-with lib;
 stdenv.mkDerivation rec {
   pname = "swftools";
   version = "0.9.2";
@@ -12,13 +11,30 @@ stdenv.mkDerivation rec {
 
   patches = [ ./swftools.patch ];
 
-  buildInputs = [ freetype libjpeg libungif zlib ];
+  buildInputs = [ freetype libjpeg zlib ];
 
-  meta = {
+  meta = with lib; {
     description = "Collection of SWF manipulation and creation utilities";
     homepage = "http://www.swftools.org/about.html";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.koral ];
     platforms = lib.platforms.unix;
+    broken = true;
+    knownVulnerabilities = [
+      "CVE-2017-10976"
+      "CVE-2017-11096"
+      "CVE-2017-11097"
+      "CVE-2017-11098"
+      "CVE-2017-11099"
+      "CVE-2017-11100"
+      "CVE-2017-11101"
+      "CVE-2017-16711"
+      "CVE-2017-16793"
+      "CVE-2017-16794"
+      "CVE-2017-16796"
+      "CVE-2017-16797"
+      "CVE-2017-16868"
+      "CVE-2017-16890"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix b/nixpkgs/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
index 4d34cd50b1e7..0718e437b06b 100644
--- a/nixpkgs/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "google-compute-engine-oslogin";
-  version = "20200507.00";
+  version = "20210429.00";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "guest-oslogin";
     rev = version;
-    sha256 = "1np8c96sm29pwnxykc0id8kkgalhw576g43fgi1y936sr2hfvx3v";
+    sha256 = "eHAg9K5oxcygEzqaac81jSFHF+zsW6uB7q2Kfo9hSrA=";
   };
 
   postPatch = ''
@@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ curl.dev pam ];
 
-  NIX_CFLAGS_COMPILE="-I${json_c.dev}/include/json-c";
-  NIX_CFLAGS_LINK="-L${json_c}/lib";
+  NIX_CFLAGS_COMPILE = "-I${json_c.dev}/include/json-c";
+  NIX_CFLAGS_LINK = "-L${json_c}/lib";
 
   makeFlags = [
     "VERSION=${version}"
diff --git a/nixpkgs/pkgs/tools/virtualization/ovftool/default.nix b/nixpkgs/pkgs/tools/virtualization/ovftool/default.nix
new file mode 100644
index 000000000000..cc4af17b47d0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/virtualization/ovftool/default.nix
@@ -0,0 +1,230 @@
+{ lib, stdenv, system ? builtins.currentSystem, ovftoolBundles ? {}
+, requireFile, buildFHSUserEnv, patchelf, autoPatchelfHook, makeWrapper, nix, unzip
+, glibc, c-ares, openssl_1_0_2, curl, expat, icu60, xercesc, zlib
+}:
+
+let
+  version = "4.4.1-16812187";
+
+  # FHS environment required to unpack ovftool on x86.
+  ovftoolX86Unpacker = buildFHSUserEnv rec {
+    name = "ovftool-unpacker";
+    targetPkgs = pkgs: [ pkgs.bash ];
+    multiPkgs = targetPkgs;
+    runScript = "bash";
+  };
+
+  # unpackPhase for i686 and x86_64 ovftool self-extracting bundles.
+  ovftoolX86UnpackPhase = ''
+    runHook preUnpack
+
+    # This is a self-extracting shell script and needs a FHS environment to run.
+    # In reality, it could be doing anything, which is bad for reproducibility.
+    # Our postUnpack uses nix-hash to verify the hash to prevent problems.
+    #
+    # Note that the Arch PKGBUILD at
+    # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=vmware-ovftool
+    # appears to use xvfb-run - this hasn't been proven necessary so far.
+    #
+    cp ${ovftoolSource} ./ovftool.bundle
+    chmod +x ./ovftool.bundle
+    ${ovftoolX86Unpacker}/bin/ovftool-unpacker ./ovftool.bundle -x ovftool
+    rm ovftool.bundle
+
+    local extracted=ovftool/vmware-ovftool/
+    if [ -d "$extracted" ]; then
+      # Move the directory we care about to ovftool/
+      mv "$extracted" .
+      rm -r ovftool
+      mv "$(basename -- "$extracted")" ovftool
+      echo "ovftool extracted successfully" >&2
+    else
+      echo "Could not find $extracted - are you sure this is ovftool?" >&2
+      rm -r ovftool
+      exit 1
+    fi
+
+    runHook postUnpack
+  '';
+
+  # unpackPhase for aarch64 .zip.
+  ovftoolAarch64UnpackPhase = ''
+    runHook preUnpack
+
+    unzip ${ovftoolSource}
+
+    local extracted=ovftool/
+    if [ -d "$extracted" ]; then
+      echo "ovftool extracted successfully" >&2
+    else
+      echo "Could not find $extracted - are you sure this is ovftool?" >&2
+      exit 1
+    fi
+
+    runHook postUnpack
+  '';
+
+  # When the version is bumped, postUnpackHash will change
+  # for all these supported systems. Update it from the printed error on build.
+  #
+  # This is just a sanity check, since ovftool is a self-extracting bundle
+  # that could be doing absolutely anything on 2/3 of the supported platforms.
+  ovftoolSystems = {
+    "i686-linux" = {
+      filename = "VMware-ovftool-${version}-lin.i386.bundle";
+      sha256 = "0gx78g3s77mmpir7jbiskna10i6262ihal1ywivlb6xxxxbhqzwj";
+      unpackPhase = ovftoolX86UnpackPhase;
+      postUnpackHash = "1k8rp8ywhs0cl9aad37v1p0493bdvkxrsvwg5pgv2bhvjs4hqk7n";
+    };
+    "x86_64-linux" = {
+      filename = "VMware-ovftool-${version}-lin.x86_64.bundle";
+      sha256 = "1kp2bp4d9i8y7q25yqff2bn62mh292lws7b66lyn8ka9b35kvnzc";
+      unpackPhase = ovftoolX86UnpackPhase;
+      postUnpackHash = "0zvyakwi4iishqxxisihgh91bmdsfvj5vchm2c192hia03a143py";
+    };
+    "aarch64-linux" = {
+      filename = "VMware-ovftool-${version}-lin.aarch64.zip";
+      sha256 = "0all8bwv5p5adnzqvrly6nzmxmfpywvlbfr0finr4n100yv0v1xy";
+      unpackPhase = ovftoolAarch64UnpackPhase;
+      postUnpackHash = "16vyyzrmryi8b7mrd6nxnhywvvj2pw0ban4qfiqfahw763fn6971";
+    };
+  };
+
+  ovftoolSystem = if builtins.hasAttr system ovftoolSystems then
+                    ovftoolSystems.${system}
+                  else throw "System '${system}' is unsupported by ovftool";
+
+  ovftoolSource = if builtins.hasAttr system ovftoolBundles then
+                    ovftoolBundles.${system}
+                  else
+                    requireFile {
+                      name = ovftoolSystem.filename;
+                      url = "https://my.vmware.com/group/vmware/downloads/get-download?downloadGroup=OVFTOOL441";
+                      sha256 = ovftoolSystem.sha256;
+                    };
+in
+stdenv.mkDerivation rec {
+  pname = "ovftool";
+  inherit version;
+
+  src = ovftoolSource;
+
+  buildInputs = [
+    glibc
+
+    # This is insecure, but we don't really have a way around it
+    # since ovftool depends on it. In theory we could ship their OpenSSL
+    # build... but that makes the reliance on an insecure library less obvious.
+    openssl_1_0_2
+
+    c-ares
+    (curl.override { openssl = openssl_1_0_2; })
+    expat
+    icu60
+    xercesc
+    zlib
+  ];
+
+  nativeBuildInputs = [ nix patchelf autoPatchelfHook makeWrapper unzip ];
+
+  sourceRoot = ".";
+
+  unpackPhase = ovftoolSystem.unpackPhase;
+
+  postUnpackHash = ovftoolSystem.postUnpackHash;
+
+  # Expects a directory named 'ovftool'. Validates the postUnpackHash in
+  # ovftoolSystem.
+  postUnpack = ''
+    if [ -d ovftool ]; then
+      # Ensure we're in the staging directory
+      cd ovftool
+    fi
+
+    # Verify the hash with nix-hash before proceeding to ensure reproducibility.
+    local ovftool_hash
+    ovftool_hash="$(nix-hash --type sha256 --base32 .)"
+    if [ "$ovftool_hash" != "$postUnpackHash" ]; then
+      echo "Expected hash: $postUnpackHash" >&2
+      echo "Actual hash:   $ovftool_hash" >&2
+      echo "Could not verify post-unpack hash!" >&2
+      exit 1
+    fi
+  '';
+
+  # Expects a directory named 'ovftool' containing the ovftool install.
+  # Based on https://aur.archlinux.org/packages/vmware-ovftool/
+  # with the addition of a libexec directory and a Nix-style binary wrapper.
+  installPhase = ''
+    runHook preInstall
+
+    if [ -d ovftool ]; then
+      # Ensure we're in the staging directory
+      cd ovftool
+    fi
+
+    # libraries
+    install -m 755 -d "$out/lib/$pname"
+
+    # These all appear to be VMWare proprietary except for libgoogleurl.
+    # The rest of the libraries that the installer extracts are omitted here,
+    # and provided in buildInputs.
+    #
+    # FIXME: can we replace libgoogleurl? Possibly from Chromium?
+    #
+    install -m 644 -t "$out/lib/$pname" \
+      libgoogleurl.so.59 \
+      libssoclient.so \
+      libvim-types.so libvmacore.so libvmomi.so
+
+    # ovftool specifically wants 1.0.2 but our libcrypto is named 1.0.0
+    ln -s "${openssl_1_0_2.out}/lib/libcrypto.so" \
+      "$out/lib/$pname/libcrypto.so.1.0.2"
+    ln -s "${openssl_1_0_2.out}/lib/libssl.so" \
+      "$out/lib/$pname/libssl.so.1.0.2"
+
+    # libexec
+    install -m 755 -d "$out/libexec/$pname"
+    install -m 755 -t "$out/libexec/$pname" ovftool.bin
+    install -m 644 -t "$out/libexec/$pname" icudt44l.dat
+
+    # libexec resources
+    for subdir in "certs" "env" "env/en" "schemas/DMTF" "schemas/vmware"; do
+      install -m 755 -d "$out/libexec/$pname/$subdir"
+      install -m 644 -t "$out/libexec/$pname/$subdir" "$subdir"/*.*
+    done
+
+    # EULA/OSS files
+    install -m 755 -d "$out/share/licenses/$pname"
+    install -m 644 -t "$out/share/licenses/$pname" \
+      "vmware.eula" "vmware-eula.rtf" "open_source_licenses.txt"
+
+    # documentation files
+    install -m 755 -d "$out/share/doc/$pname"
+    install -m 644 -t "$out/share/doc/$pname" "README.txt"
+
+    # binary wrapper; note that LC_CTYPE is defaulted to en_US.UTF-8 by
+    # VMWare's wrapper script. We use C.UTF-8 instead.
+    install -m 755 -d "$out/bin"
+    makeWrapper "$out/libexec/$pname/ovftool.bin" "$out/bin/ovftool" \
+      --set-default LC_CTYPE C.UTF-8 \
+      --prefix LD_LIBRARY_PATH : "$out/lib"
+
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    addAutoPatchelfSearchPath "$out/lib"
+  '';
+
+  dontBuild = true;
+  dontPatch = true;
+  dontConfigure = true;
+
+  meta = with lib; {
+    description = "VMWare tools for working with OVF, OVA, and VMX images";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ numinit ];
+    platforms = builtins.attrNames ovftoolSystems;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix b/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
index 10a270b484c4..cd8a4c36a920 100644
--- a/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "shipyard";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shipyard-run";
     repo = pname;
-    sha256 = "sha256-zN9anlm+KbSbFKphC8mLaK+w8cOuOSKrVw5YGNCjEeA=";
+    sha256 = "sha256-9eGaOSmHrJlcLOvZuLaNu8D/D/rWiyFb4ztxybUP0uM=";
   };
   vendorSha256 = "sha256-tTkPFftPDNXafIjAjNg6V6e/+2S/v5Do/YyAXPaGIqA=";
 
diff --git a/nixpkgs/pkgs/tools/wayland/wlrctl/default.nix b/nixpkgs/pkgs/tools/wayland/wlrctl/default.nix
new file mode 100644
index 000000000000..7cb54d381b0b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wlrctl/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, scdoc, ninja, libxkbcommon, wayland }:
+
+stdenv.mkDerivation rec {
+  pname = "wlrctl";
+  version = "0.2.1";
+
+  src = fetchFromSourcehut {
+    owner = "~brocellous";
+    repo = "wlrctl";
+    rev = "v${version}";
+    sha256 = "039cxc82k7x473n6d65jray90rj35qmfdmr390zy0c7ic7vn4b78";
+  };
+
+  nativeBuildInputs = [ meson pkg-config scdoc ninja ];
+  buildInputs = [ libxkbcommon wayland ];
+
+  NIX_CFLAGS_COMPILE = "-Wno-error=type-limits";
+
+  meta = with lib; {
+    description = "Command line utility for miscellaneous wlroots Wayland extensions";
+    homepage = "https://git.sr.ht/~brocellous/wlrctl";
+    license = licenses.mit;
+    maintainers = with maintainers; [ puffnfresh artturin ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix b/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix
index 931f394d6890..3572f63f57e5 100644
--- a/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland
+{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland, scdoc
 , wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
   pname = "wlsunset";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromSourcehut {
     owner = "~kennylevinsen";
     repo = pname;
     rev = version;
-    sha256 = "12snizvf49y40cirhr2brgyldhsykv4k2gnln2sdrajqzhrc98v6";
+    sha256 = "0hhsddh3rs066rbsjksr8kcwg8lvglbvs67dq0r5wx5c1xcwb51w";
   };
 
-  nativeBuildInputs = [ meson pkg-config ninja wayland ];
+  nativeBuildInputs = [ meson pkg-config ninja wayland scdoc ];
   buildInputs = [ wayland wayland-protocols ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
index a5397a78e2ef..78d854036520 100644
--- a/nixpkgs/pkgs/top-level/aliases.nix
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -40,8 +40,14 @@ mapAliases ({
   adobe_flex_sdk = apache-flex-sdk; # added 2018-06-01
   ag = silver-searcher; # added 2018-04-25
   aircrackng = aircrack-ng; # added 2016-01-14
-  alienfx = throw "alienfx has been removed."; # added 2019-12-08
   aleth = throw "aleth (previously packaged as cpp_ethereum) has been removed; abandoned upstream."; # added 2020-11-30
+  alienfx = throw "alienfx has been removed."; # added 2019-12-08
+  alsaLib = alsa-lib; # added 2021-06-09
+  alsaOss = alsa-oss; # added 2021-06-10
+  alsaPlugins = alsa-plugins; # added 2021-06-10
+  alsaPluginWrapper = alsa-plugins-wrapper; # added 2021-06-10
+  alsaTools = alsa-tools; # added 2021-06-10
+  alsaUtils = alsa-utils; # added 2021-06-10
   amazon-glacier-cmd-interface = throw "amazon-glacier-cmd-interface has been removed due to it being unmaintained."; # added 2020-10-30
   ammonite-repl = ammonite; # added 2017-05-02
   amsn = throw "amsn has been removed due to being unmaintained."; # added 2020-12-09
@@ -63,6 +69,7 @@ mapAliases ({
   at_spi2_core = at-spi2-core; # added 2018-02-25
   aucdtect = throw "aucdtect: Upstream no longer provides download urls."; # added 2020-12-26
   avldrums-lv2 = x42-avldrums; # added 2020-03-29
+  avxsynth = throw "avxsynth was removed because it was broken"; # added 2021-05-18
   bar-xft = lemonbar-xft;  # added 2015-01-16
   bashCompletion = bash-completion; # Added 2016-09-28
   batti = throw "batti has been removed from nixpkgs, as it was unmaintained"; # added 2019-12-10
@@ -70,6 +77,7 @@ mapAliases ({
   bazaarTools = throw "bazaar has been deprecated by breezy."; # added 2020-04-19
   beegfs = throw "beegfs has been removed."; # added 2019-11-24
   bluezFull = bluez; # Added 2019-12-03
+  bpftool = bpftools; # Added 2021-05-03
   brackets = throw "brackets has been removed, it was unmaintained and had open vulnerabilities"; # added 2021-01-24
   bridge_utils = bridge-utils;  # added 2015-02-20
   bro = zeek; # added 2019-09-29
@@ -113,6 +121,7 @@ mapAliases ({
   clangAnalyzer = clang-analyzer;  # added 2015-02-20
   clawsMail = claws-mail; # added 2016-04-29
   clutter_gtk = clutter-gtk; # added 2018-02-25
+  cmakeWithQt4Gui = throw "cmakeWithQt4Gui has been removed in favor of cmakeWithGui (Qt 5)"; # added 2021-05
   codimd = hedgedoc; # added 2020-11-29
   compton = picom; # added 2019-12-02
   compton-git = compton; # added 2019-05-20
@@ -120,6 +129,8 @@ mapAliases ({
   conntrack_tools = conntrack-tools; # added 2018-05
   cool-old-term = cool-retro-term; # added 2015-01-31
   coprthr = throw "coprthr has been removed."; # added 2019-12-08
+  couchdb = throw "couchdb was removed from nixpkgs, use couchdb3 instead"; # added 2021-03-03
+  couchdb2 = throw "couchdb2 was removed from nixpkgs, use couchdb3 instead"; # added 2021-03-03
   corebird = throw "corebird was deprecated 2019-10-02: See https://www.patreon.com/posts/corebirds-future-18921328. Please use Cawbird as replacement.";
   coredumper = throw "coredumper has been removed: abandoned by upstream."; # added 2019-11-16
   cpp_ethereum = throw "cpp_ethereum has been removed; abandoned upstream."; # added 2020-11-30
@@ -163,6 +174,7 @@ mapAliases ({
   deadpixi-sam = deadpixi-sam-unstable;
   debian_devscripts = debian-devscripts; # added 2016-03-23
   deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31
+  deepspeech = throw "deepspeech was removed in favor of stt. https://github.com/NixOS/nixpkgs/issues/119496"; # added 2021-05-05
   desktop_file_utils = desktop-file-utils; # added 2018-02-25
   devicemapper = lvm2; # added 2018-04-25
   digikam5 = digikam; # added 2017-02-18
@@ -194,6 +206,7 @@ mapAliases ({
   exfat-utils = exfat;                  # 2015-09-11
   facette = throw "facette has been removed."; # added 2020-01-06
   fast-neural-doodle = throw "fast-neural-doodle has been removed, as the upstream project has been abandoned"; # added 2020-03-28
+  fastnlo = fastnlo_toolkit; # added 2021-04-24
   fedora-coreos-config-transpiler = throw "fedora-coreos-config-transpiler has been renamed to 'butane'."; # added 2021-04-13
   fetchFromGithub = throw "You meant fetchFromGitHub, with a capital H.";
   ffadoFull = ffado; # added 2018-05-01
@@ -230,6 +243,7 @@ mapAliases ({
   '';
   font-droid = throw "font-droid has been deprecated by noto-fonts"; # 2019-04-12
   foomatic_filters = foomatic-filters;  # 2016-08
+  fsharp41 = throw "fsharp41 has been removed, please use dotnet-sdk_5 or later";
   fuse_exfat = exfat;                   # 2015-09-11
   fuseki = apache-jena-fuseki; # added 2018-04-25
   fusesmb = throw "fusesmb is abandoned by upstream"; # added 2019-10-15
@@ -240,6 +254,7 @@ mapAliases ({
   gdb-multitarget = gdb; # added 2017-11-13
   gdk_pixbuf = gdk-pixbuf; # added 2019-05-22
   gettextWithExpat = gettext; # 2016-02-19
+  giflib_4_1 = throw "giflib_4_1 has been removed; use giflib instead"; # 2020-02-12
   gitAndTools = self // { # added 2021-01-14
     darcsToGit = darcs-to-git;
     gitAnnex = git-annex;
@@ -296,6 +311,7 @@ mapAliases ({
   gtk_doc = gtk-doc; # added 2018-02-25
   guileCairo = guile-cairo; # added 2017-09-24
   guileGnome = guile-gnome; # added 2017-09-24
+  gnome3 = gnome; # added 2021-05-07
   guileLint = guile-lint; # added 2017-09-27
   guile_lib = guile-lib; # added 2017-09-24
   guile_ncurses = guile-ncurses; # added 2017-09-24
@@ -331,14 +347,18 @@ mapAliases ({
   jikes = throw "jikes was deprecated on 2019-10-07: abandoned by upstream";
   joseki = apache-jena-fuseki; # added 2016-02-28
   json_glib = json-glib; # added 2018-02-25
+  kalk = kalker; # added 2021-06-03
   kdecoration-viewer = throw "kdecoration-viewer has been removed from nixpkgs, as there is no upstream activity"; # 2020-06-16
   k9copy = throw "k9copy has been removed from nixpkgs, as there is no upstream activity"; # 2020-11-06
   kodiGBM = kodi-gbm;
   kodiPlain = kodi;
   kodiPlainWayland = kodi-wayland;
   jellyfin_10_5 = throw "Jellyfin 10.5 is no longer supported and contains a security vulnerability. Please upgrade to a newer version."; # added 2021-04-26
-  julia_07 = throw "julia_07 is deprecated in favor of julia_10 LTS"; # added 2020-09-15
-  julia_11 = throw "julia_11 is deprecated in favor of latest Julia version"; # added 2020-09-15
+  julia_07 = throw "julia_07 has been deprecated in favor of the latest LTS version"; # added 2020-09-15
+  julia_1 = throw "julia_1 has been deprecated in favor of julia_10 as it was ambiguous"; # added 2021-03-13
+  julia_11 = throw "julia_11 has been deprecated in favor of the latest stable version"; # added 2020-09-15
+  julia_13 = throw "julia_13 has been deprecated in favor of the latest stable version"; # added 2021-03-13
+  kbdKeymaps = throw "kbdKeymaps is not needed anymore since dvp and neo are now part of kbd"; # added 2021-04-11
   kdeconnect = plasma5Packages.kdeconnect-kde; # added 2020-10-28
   kdiff3-qt5 = kdiff3; # added 2017-02-18
   keepass-keefox = keepass-keepassrpc; # backwards compatibility alias, added 2018-02
@@ -349,6 +369,7 @@ mapAliases ({
   kinetic-cpp-client = throw "kinetic-cpp-client has been removed from nixpkgs, as it's abandoned."; # 2020-04-28
   kicad-with-packages3d = kicad; # added 2019-11-25
   kindlegen = throw "kindlegen has been removed from nixpkgs, as it's abandoned and no longer available for download."; # 2021-03-09
+  kino = throw "kino has been removed because it was broken and abandoned"; # added 2021-04-25
   krename-qt5 = krename; # added 2017-02-18
   kerberos = libkrb5; # moved from top-level 2021-03-14
   keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10
@@ -366,6 +387,7 @@ mapAliases ({
   libindicate-gtk3 = throw "libindacate-gtk2 has been removed from nixpkgs, as it's abandoned and uses deprecated libraries"; # added 2019-12-10
   libindicate-gtk2 = throw "libindacate-gtk3 has been removed from nixpkgs, as it's abandoned and uses deprecated libraries"; # added 2019-12-10
   libcap_progs = libcap.out; # added 2016-04-29
+  libco-canonical = throw "libco-canonical: Canonical deleted the repo, libco-canonical is not used anymore."; # added 2021-05-16
   libdbusmenu_qt5 = libsForQt5.libdbusmenu;  # added 2015-12-19
   libdbusmenu-glib = libdbusmenu; # added 2018-05-01
   liberation_ttf_v1_from_source = liberation_ttf_v1; # added 2018-12-12
@@ -390,6 +412,7 @@ mapAliases ({
   libtxc_dxtn = throw "libtxc_dxtn was removed 2020-03-16, now integrated in Mesa";
   libtxc_dxtn_s2tc = throw "libtxc_dxtn_s2tc was removed 2020-03-16, now integrated in Mesa";
   libudev = udev; # added 2018-04-25
+  libungif = giflib; # added 2020-02-12
   libusb = libusb1; # added 2020-04-28
   libsexy = throw "libsexy has been removed from nixpkgs, as it's abandoned and no package needed it."; # 2019-12-10
   libstdcxxHook = throw "libstdcxx hook has been removed because cc-wrapper is now directly aware of the c++ standard library intended to be used."; # 2020-06-22
@@ -429,6 +452,7 @@ mapAliases ({
   mathics = throw "mathics has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
   matrique = spectral; # added 2020-01-27
   mbedtls_1_3 = throw "mbedtls_1_3 is end of life, see https://tls.mbed.org/kb/how-to/upgrade-2.0"; # added 2019-12-08
+  meme = meme-image-generator; # added 2021-04-21
   mess = mame; # added 2019-10-30
   mcgrid = throw "mcgrid has been removed from nixpkgs, as it's not compatible with rivet 3"; # added 2020-05-23
   mcomix = throw "mcomix has been removed from nixpkgs, as it's unmaintained; try mcomix3 a Python 3 fork"; # added 2019-12-10, modified 2020-11-25
@@ -465,6 +489,7 @@ mapAliases ({
   mxisd = throw "mxisd has been removed from nixpkgs as it has reached end of life, see https://github.com/kamax-matrix/mxisd/blob/535e0a5b96ab63cb0ddef90f6f42c5866407df95/EOL.md#end-of-life-notice . ma1sd may be a suitable alternative."; # added 2021-04-15
   mysqlWorkbench = mysql-workbench; # added 2017-01-19
   nagiosPluginsOfficial = monitoring-plugins;
+  navit = throw "navit has been removed from nixpkgs, due to being unmaintained"; # added 2021-06-07
   ncat = nmap;  # added 2016-01-26
   netcat-openbsd = libressl.nc; # added 2018-04-25
   netease-cloud-music = throw "netease-cloud-music has been removed together with deepin"; # added 2020-08-31
@@ -479,14 +504,17 @@ mapAliases ({
   nginxUnstable = nginxMainline; # added 2018-04-25
   nilfs_utils = nilfs-utils; # added 2018-04-25
   nix-review = nixpkgs-review; # added 2019-12-22
+  nixFlakes = nixUnstable; # added 2021-05-21
   nmap_graphical = nmap-graphical;  # added 2017-01-19
   nologin = shadow; # added 2018-04-25
+  nordic-polar = throw "nordic-polar was removed on 2021-05-27, now integrated in nordic"; # added 2021-05-27
   nxproxy = nx-libs; # added 2019-02-15
   nylas-mail-bin = throw "nylas-mail-bin was deprecated on 2019-09-11: abandoned by upstream";
   oauth2_proxy = oauth2-proxy; # added 2021-04-18
   opencascade_oce = opencascade; # added 2018-04-25
   oblogout = throw "oblogout has been removed from nixpkgs, as it's archived upstream."; # added 2019-12-10
   opencl-icd = ocl-icd; # added 2017-01-20
+  openconnect_pa = throw "openconnect_pa fork has been discontinued, support for GlobalProtect is now available in openconnect"; # added 2021-05-21
   openexr_ctl = ctl; # added 2018-04-25
   openisns = open-isns; # added 2020-01-28
   openjpeg_1 = throw "openjpeg_1 has been removed, use openjpeg_2 instead"; # added 2021-01-24
@@ -508,6 +536,11 @@ mapAliases ({
   pgp-tools = signing-party; # added 2017-03-26
   pg_tmp = ephemeralpg; # added 2018-01-16
 
+  # Obsolete PHP version aliases
+  php73 = throw "php73 has been dropped due to the lack of maintanence from upstream for future releases."; # added 2021-06-03
+  php73Packages = php73; # added 2021-06-03
+  php73Extensions = php73; # added 2021-06-03
+
   php-embed = throw ''
     php*-embed has been dropped, you can build something similar
     with the following snippet:
@@ -521,8 +554,8 @@ mapAliases ({
     similar with the following snippet:
     (php74.override { embedSupport = true; apxs2Support = false; }).packages
   ''; # added 2020-04-01
-  php74Packages-embed = phpPackages-embed;
   php73Packages-embed = phpPackages-embed;
+  php74Packages-embed = phpPackages-embed;
 
   php-unit = throw ''
     php*-unit has been dropped, you can build something similar with
@@ -551,8 +584,8 @@ mapAliases ({
       fpmSupport = false;
     }).packages
   ''; # added 2020-04-01
-  php74Packages-unit = phpPackages-unit;
   php73Packages-unit = phpPackages-unit;
+  php74Packages-unit = phpPackages-unit;
 
   pidgin-with-plugins = pidgin; # added 2016-06
   pidginlatex = pidgin-latex; # added 2018-01-08
@@ -595,6 +628,7 @@ mapAliases ({
   postgis = postgresqlPackages.postgis;
   # end
   ppl-address-book = throw "ppl-address-book deprecated on 2019-05-02: abandoned by upstream.";
+  privateer = throw "privateer was removed because it was broken"; # added 2021-05-18
   processing3 = processing; # added 2019-08-16
   procps-ng = procps; # added 2018-06-08
   proj_5 = throw "Proj-5 has been removed from nixpkgs, use proj instead."; # added 2021-04-12
@@ -608,6 +642,7 @@ mapAliases ({
   phonon-backend-gstreamer = throw "phonon-backend-gstreamer: Please use libsForQt5.phonon-backend-gstreamer, as Qt4 support in this package has been removed."; # added 2019-11-22
   phonon-backend-vlc = throw "phonon-backend-vlc: Please use libsForQt5.phonon-backend-vlc, as Qt4 support in this package has been removed."; # added 2019-11-22
   phonon = throw "phonon: Please use libsForQt5.phonon, as Qt4 support in this package has been removed."; # added 2019-11-22
+  pybind11 = throw "pybind11 was removed because pythonPackages.pybind11 for the appropriate version of Python should be used"; # added 2021-05-14
   pynagsystemd = throw "pynagsystemd was removed as it was unmaintained and incompatible with recent systemd versions. Instead use its fork check_systemd."; # added 2020-10-24
   python2nix = throw "python2nix has been removed as it is outdated. Use e.g. nixpkgs-pytools instead."; # added 2021-03-08
   quagga = throw "quagga is no longer maintained upstream"; # added 2021-04-22
@@ -626,6 +661,7 @@ mapAliases ({
   rdf4store = throw "rdf4store has been removed from nixpkgs."; # added 2019-12-21
   rdiff_backup = rdiff-backup;  # added 2014-11-23
   rdmd = dtools;  # added 2017-08-19
+  readline80 = throw "readline-8.0 is no longer supported in nixpkgs, please use 'readline' for main supported version or 'readline81' for most recent version"; # added 2021-04-22
   rhc = throw "rhc was deprecated on 2019-04-09: abandoned by upstream.";
   rng_tools = rng-tools; # added 2018-10-24
   robomongo = robo3t; #added 2017-09-28
@@ -660,6 +696,9 @@ mapAliases ({
   rxvt_unicode-with-plugins = rxvt-unicode; # added 2020-02-02
   rxvt_unicode = rxvt-unicode-unwrapped; # added 2020-02-02
   subversion19 = throw "subversion19 has been removed as it has reached its end of life"; # added 2021-03-31
+  thunderbird-68 = throw "Thunderbird 68 reached end of life with its final release 68.12.0 on 2020-08-25 and was therefore removed from nixpkgs";
+  thunderbird-bin-68 = throw "Thunderbird 68 reached end of life with its final release 68.12.0 on 2020-08-25 and was therefore removed from nixpkgs";
+  togglesg-download = throw "togglesg-download was removed 2021-04-30 as it's unmaintained";
   urxvt_autocomplete_all_the_things = rxvt-unicode-plugins.autocomplete-all-the-things; # added 2020-02-02
   urxvt_perl = rxvt-unicode-plugins.perl; # added 2020-02-02
   urxvt_perls = rxvt-unicode-plugins.perls; # added 2020-02-02
@@ -738,6 +777,7 @@ mapAliases ({
   speedtest_cli = speedtest-cli;  # added 2015-02-17
   spice_gtk = spice-gtk; # added 2018-02-25
   spice_protocol = spice-protocol; # added 2018-02-25
+  spidermonkey_1_8_5 = throw "spidermonkey_1_8_5 has been removed, because it is based on Firefox 4.0 from 2011."; # added 2021-05-03
   spidermonkey_38 = throw "spidermonkey_38 has been removed. Please use spidermonkey_78 instead."; # added 2021-03-21
   spidermonkey_52 = throw "spidermonkey_52 has been removed. Please use spidermonkey_78 instead."; # added 2019-10-16
   spidermonkey_60 = throw "spidermonkey_60 has been removed. Please use spidermonkey_78 instead."; # added 2021-03-21
@@ -747,6 +787,7 @@ mapAliases ({
   squid4 = squid;  # added 2019-08-22
   sshfsFuse = sshfs-fuse; # added 2016-09
   stanchion = throw "Stanchion was part of riak-cs which is not maintained anymore"; # added 2020-10-14
+  stumpwm-git = throw "stumpwm-git has been broken for a long time and lispPackages.stumpwm follows Quicklisp that is close to git version"; # added 2021-05-09
   surf-webkit2 = surf; # added 2017-04-02
   sup = throw "sup was deprecated on 2019-09-10: abandoned by upstream";
   swfdec = throw "swfdec has been removed as broken and unmaintained."; # added 2020-08-23
@@ -790,7 +831,6 @@ mapAliases ({
   torch-repl = throw "torch-repl has been removed, as the upstream project has been abandoned"; # added 2020-03-28
   torchPackages = throw "torchPackages has been removed, as the upstream project has been abandoned"; # added 2020-03-28
   trang = jing-trang; # added 2018-04-25
-  transcribe = throw "transcribe has been removed after being marked a broken for over a year"; # added 2020-09-16
   transmission_gtk = transmission-gtk; # added 2018-01-06
   transmission_remote_gtk = transmission-remote-gtk; # added 2018-01-06
   transmission-remote-cli = "transmission-remote-cli has been removed, as the upstream project has been abandoned. Please use tremc instead"; # added 2020-10-14
@@ -844,6 +884,8 @@ mapAliases ({
   xbmcPlain = kodiPlain; # added 2018-04-25
   xbmcPlugins = kodiPackages; # added 2018-04-25
   kodiPlugins = kodiPackages; # added 2021-03-09;
+  xineLib = xine-lib; # added 2021-04-27
+  xineUI = xine-ui; # added 2021-04-27
   xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01
   xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only";
   pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only";
@@ -855,6 +897,7 @@ mapAliases ({
   xlibs = xorg; # added 2015-09
   xpraGtk3 = xpra; # added 2018-09-13
   xv = xxv; # added 2020-02-22
+  xvfb_run = xvfb-run; # added 2021-05-07
   yacc = bison; # moved from top-level 2021-03-14
   youtubeDL = youtube-dl;  # added 2014-10-26
   ytop = throw "ytop has been abandoned by upstream. Consider switching to bottom instead";
@@ -959,6 +1002,12 @@ mapAliases ({
 
   posix_man_pages = man-pages-posix; # Added 2021-04-15
 
+  /* Cleanup before 21.11, Added 2021-05-07 */
+  avian = throw ''
+    The package doesn't compile anymore on NixOS and both development
+    & maintenance is abandoned by upstream.
+  '';
+
   /* If these are in the scope of all-packages.nix, they cause collisions
   between mixed versions of qt. See:
   https://github.com/NixOS/nixpkgs/pull/101369 */
@@ -1033,4 +1082,11 @@ mapAliases ({
     sddm
   ;
 
+  # LLVM packages for (integration) testing that should not be used inside Nixpkgs:
+  llvmPackages_git = recurseIntoAttrs (callPackage ../development/compilers/llvm/git {
+    inherit (stdenvAdapters) overrideCC;
+    buildLlvmTools = buildPackages.llvmPackages_git.tools;
+    targetLlvmLibraries = targetPackages.llvmPackages_git.libraries;
+  });
+
 })
diff --git a/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
index b5f2c99ce3fd..251c64e2ce22 100644
--- a/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/nixpkgs/pkgs/top-level/all-packages.nix
@@ -30,7 +30,18 @@ in
   # just the plain stdenv.
   stdenv_32bit = lowPrio (if stdenv.hostPlatform.is32bit then stdenv else multiStdenv);
 
-  stdenvNoCC = stdenv.override { cc = null; extraAttrs.noCC = true; };
+  stdenvNoCC = stdenv.override (
+    { cc = null; hasCC = false; }
+
+    // lib.optionalAttrs (stdenv.hostPlatform.isDarwin && (stdenv.hostPlatform != stdenv.buildPlatform)) {
+      # TODO: This is a hack to use stdenvNoCC to produce a CF when cross
+      # compiling. It's not very sound. The cross stdenv has:
+      #   extraBuildInputs = [ targetPackages.darwin.apple_sdks.frameworks.CoreFoundation ]
+      # and uses stdenvNoCC. In order to make this not infinitely recursive, we need to exclude
+      # this extraBuildInput.
+      extraBuildInputs = [];
+    }
+  );
 
   mkStdenvNoLibs = stdenv: let
     bintools = stdenv.cc.bintools.override {
@@ -48,7 +59,22 @@ in
       lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null);
   };
 
-  stdenvNoLibs = mkStdenvNoLibs stdenv;
+  stdenvNoLibs =
+    if stdenv.hostPlatform != stdenv.buildPlatform && (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isDarwin.useLLVM or false)
+    then
+      # We cannot touch binutils or cc themselves, because that will cause
+      # infinite recursion. So instead, we just choose a libc based on the
+      # current platform. That means we won't respect whatever compiler was
+      # passed in with the stdenv stage argument.
+      #
+      # TODO It would be much better to pass the `stdenvNoCC` and *unwrapped*
+      # cc, bintools, compiler-rt equivalent, etc. and create all final stdenvs
+      # as part of the stage. Then we would never be tempted to override a
+      # later thing to to create an earlier thing (leading to infinite
+      # recursion) and we also would still respect the stage arguments choices
+      # for these things.
+      overrideCC stdenv buildPackages.llvmPackages.clangNoCompilerRt
+    else mkStdenvNoLibs stdenv;
 
   gccStdenvNoLibs = mkStdenvNoLibs gccStdenv;
   clangStdenvNoLibs = mkStdenvNoLibs clangStdenv;
@@ -150,12 +176,18 @@ in
 
   alda = callPackage ../development/interpreters/alda { };
 
+  althttpd = callPackage ../servers/althttpd { };
+
   among-sus = callPackage ../games/among-sus { };
 
   ankisyncd = callPackage ../servers/ankisyncd { };
 
   antsimulator = callPackage ../games/antsimulator { };
 
+  atuin = callPackage ../tools/misc/atuin {
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
+  };
+
   fiche = callPackage ../servers/fiche { };
 
   fishnet = callPackage ../servers/fishnet { };
@@ -197,7 +229,7 @@ in
   castget = callPackage ../applications/networking/feedreaders/castget { };
 
   castxml = callPackage ../development/tools/castxml {
-    inherit (llvmPackages) clang-unwrapped libclang llvm;
+    inherit (llvmPackages) libclang llvm;
     inherit (python3Packages) sphinx;
   };
 
@@ -211,6 +243,8 @@ in
 
   chrysalis = callPackage ../applications/misc/chrysalis { };
 
+  clifm = callPackage ../applications/misc/clifm { };
+
   clj-kondo = callPackage ../development/tools/clj-kondo { };
 
   cmark = callPackage ../development/libraries/cmark { };
@@ -239,6 +273,8 @@ in
 
   cpu-x = callPackage ../applications/misc/cpu-x { };
 
+  crackle = callPackage ../tools/networking/crackle { };
+
   crow-translate = libsForQt5.callPackage ../applications/misc/crow-translate { };
 
   dhallToNix = callPackage ../build-support/dhall-to-nix.nix {
@@ -251,13 +287,21 @@ in
 
   eclipse-mat = callPackage ../development/tools/eclipse-mat { };
 
+  evans = callPackage ../development/tools/evans { };
+
+  frugal = callPackage ../development/tools/frugal { };
+
   glade = callPackage ../development/tools/glade { };
 
   hobbes = callPackage ../development/tools/hobbes { };
 
   html5validator = python3Packages.callPackage ../applications/misc/html5validator { };
 
-  probe-run = callPackage ../development/tools/rust/probe-run {};
+  probe-run = callPackage ../development/tools/rust/probe-run {
+    inherit (darwin.apple_sdk.frameworks) AppKit IOKit;
+  };
+
+  mix2nix = callPackage ../development/tools/mix2nix/default.nix { };
 
   proto-contrib = callPackage ../development/tools/proto-contrib {};
 
@@ -275,6 +319,8 @@ in
 
   protoc-gen-twirp_typescript = callPackage ../development/tools/protoc-gen-twirp_typescript { };
 
+  proton-caller = callPackage ../misc/emulators/proton-caller { };
+
   ptags = callPackage ../development/tools/misc/ptags { };
 
   ptouch-print = callPackage ../misc/ptouch-print { };
@@ -367,8 +413,12 @@ in
 
   ebook2cw = callPackage ../applications/radio/ebook2cw { };
 
+  edwin = callPackage ../data/fonts/edwin { };
+
   etBook = callPackage ../data/fonts/et-book { };
 
+  fetchutils = callPackage ../tools/misc/fetchutils { };
+
   fet-sh = callPackage ../tools/misc/fet-sh { };
 
   fetchbower = callPackage ../build-support/fetchbower {
@@ -449,58 +499,60 @@ in
 
   # `fetchurl' downloads a file from the network.
   fetchurl = if stdenv.buildPlatform != stdenv.hostPlatform
-   then buildPackages.fetchurl # No need to do special overrides twice,
-   else makeOverridable (import ../build-support/fetchurl) {
-    inherit lib stdenvNoCC buildPackages;
-    inherit cacert;
-    curl = buildPackages.curlMinimal.override (old: rec {
-      # break dependency cycles
-      fetchurl = stdenv.fetchurlBoot;
-      zlib = buildPackages.zlib.override { fetchurl = stdenv.fetchurlBoot; };
-      pkg-config = buildPackages.pkg-config.override (old: {
-        pkg-config = old.pkg-config.override {
-          fetchurl = stdenv.fetchurlBoot;
-        };
-      });
-      perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; };
-      openssl = buildPackages.openssl.override {
+    then buildPackages.fetchurl # No need to do special overrides twice,
+    else makeOverridable (import ../build-support/fetchurl) {
+      inherit lib stdenvNoCC buildPackages;
+      inherit cacert;
+      curl = buildPackages.curlMinimal.override (old: rec {
+        # break dependency cycles
         fetchurl = stdenv.fetchurlBoot;
-        coreutils = buildPackages.coreutils.override {
+        zlib = buildPackages.zlib.override { fetchurl = stdenv.fetchurlBoot; };
+        pkg-config = buildPackages.pkg-config.override (old: {
+          pkg-config = old.pkg-config.override {
+            fetchurl = stdenv.fetchurlBoot;
+          };
+        });
+        perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; };
+        openssl = buildPackages.openssl.override {
           fetchurl = stdenv.fetchurlBoot;
+          buildPackages = {
+            coreutils = buildPackages.coreutils.override {
+              fetchurl = stdenv.fetchurlBoot;
+              inherit perl;
+              xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; };
+              gmp = null;
+              aclSupport = false;
+              attrSupport = false;
+            };
+            inherit perl;
+          };
           inherit perl;
-          xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; };
-          gmp = null;
-          aclSupport = false;
-          attrSupport = false;
         };
-        inherit perl;
-        buildPackages = { inherit perl; };
-      };
-      libssh2 = buildPackages.libssh2.override {
-        fetchurl = stdenv.fetchurlBoot;
-        inherit zlib openssl;
-      };
-      # On darwin, libkrb5 needs bootstrap_cmds which would require
-      # converting many packages to fetchurl_boot to avoid evaluation cycles.
-      # So turn gssSupport off there, and on Windows.
-      # On other platforms, keep the previous value.
-      gssSupport =
-        if stdenv.isDarwin || stdenv.hostPlatform.isWindows
-          then false
-          else old.gssSupport or true; # `? true` is the default
-      libkrb5 = buildPackages.libkrb5.override {
-        fetchurl = stdenv.fetchurlBoot;
-        inherit pkg-config perl openssl;
-        keyutils = buildPackages.keyutils.override { fetchurl = stdenv.fetchurlBoot; };
-      };
-      nghttp2 = buildPackages.nghttp2.override {
-        fetchurl = stdenv.fetchurlBoot;
-        inherit zlib pkg-config openssl;
-        c-ares = buildPackages.c-ares.override { fetchurl = stdenv.fetchurlBoot; };
-        libev = buildPackages.libev.override { fetchurl = stdenv.fetchurlBoot; };
-      };
-    });
-  };
+        libssh2 = buildPackages.libssh2.override {
+          fetchurl = stdenv.fetchurlBoot;
+          inherit zlib openssl;
+        };
+        # On darwin, libkrb5 needs bootstrap_cmds which would require
+        # converting many packages to fetchurl_boot to avoid evaluation cycles.
+        # So turn gssSupport off there, and on Windows.
+        # On other platforms, keep the previous value.
+        gssSupport =
+          if stdenv.isDarwin || stdenv.hostPlatform.isWindows
+            then false
+            else old.gssSupport or true; # `? true` is the default
+        libkrb5 = buildPackages.libkrb5.override {
+          fetchurl = stdenv.fetchurlBoot;
+          inherit pkg-config perl openssl;
+          keyutils = buildPackages.keyutils.override { fetchurl = stdenv.fetchurlBoot; };
+        };
+        nghttp2 = buildPackages.nghttp2.override {
+          fetchurl = stdenv.fetchurlBoot;
+          inherit zlib pkg-config openssl;
+          c-ares = buildPackages.c-ares.override { fetchurl = stdenv.fetchurlBoot; };
+          libev = buildPackages.libev.override { fetchurl = stdenv.fetchurlBoot; };
+        };
+      });
+    };
 
   fetchRepoProject = callPackage ../build-support/fetchrepoproject { };
 
@@ -512,6 +564,8 @@ in
 
   fetchCrate = callPackage ../build-support/rust/fetchcrate.nix { };
 
+  fetchFromGitea = callPackage ../build-support/fetchgitea { };
+
   fetchFromGitHub = callPackage ../build-support/fetchgithub {};
 
   fetchFromBitbucket = callPackage ../build-support/fetchbitbucket {};
@@ -571,6 +625,8 @@ in
 
   nix-gitignore = callPackage ../build-support/nix-gitignore { };
 
+  numworks-epsilon = callPackage ../applications/science/math/numworks-epsilon { };
+
   ociTools = callPackage ../build-support/oci-tools { };
 
   octant = callPackage ../applications/networking/cluster/octant { };
@@ -600,11 +656,15 @@ in
 
   replaceDependency = callPackage ../build-support/replace-dependency.nix { };
 
-  nukeReferences = callPackage ../build-support/nuke-references { };
+  nukeReferences = callPackage ../build-support/nuke-references {
+    inherit (darwin) signingUtils;
+  };
 
   referencesByPopularity = callPackage ../build-support/references-by-popularity { };
 
-  removeReferencesTo = callPackage ../build-support/remove-references-to { };
+  removeReferencesTo = callPackage ../build-support/remove-references-to {
+    inherit (darwin) signingUtils;
+  };
 
   vmTools = callPackage ../build-support/vm { };
 
@@ -614,7 +674,9 @@ in
 
   setJavaClassPath = makeSetupHook { } ../build-support/setup-hooks/set-java-classpath.sh;
 
-  fixDarwinDylibNames = makeSetupHook { } ../build-support/setup-hooks/fix-darwin-dylib-names.sh;
+  fixDarwinDylibNames = makeSetupHook {
+    substitutions = { inherit (binutils) targetPrefix; };
+  } ../build-support/setup-hooks/fix-darwin-dylib-names.sh;
 
   keepBuildTree = makeSetupHook { } ../build-support/setup-hooks/keep-build-tree.sh;
 
@@ -631,6 +693,8 @@ in
 
   wrapGAppsHook = callPackage ../build-support/setup-hooks/wrap-gapps-hook { };
 
+  wrapGAppsHook4 = wrapGAppsHook.override { gtk3 = gtk4; };
+
   wrapGAppsNoGuiHook = wrapGAppsHook.override { isGraphical = false; };
 
   separateDebugInfo = makeSetupHook { } ../build-support/setup-hooks/separate-debug-info.sh;
@@ -687,9 +751,7 @@ in
 
   acousticbrainz-client = callPackage ../tools/audio/acousticbrainz-client { };
 
-  acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter {
-    ffmpeg = ffmpeg_2;
-  };
+  acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter { };
 
   alsaequal = callPackage ../tools/audio/alsaequal { };
 
@@ -730,7 +792,7 @@ in
 
   aescrypt = callPackage ../tools/misc/aescrypt { };
 
-  acme-client = callPackage ../tools/networking/acme-client { inherit (darwin) apple_sdk; stdenv = gccStdenv; };
+  acme-client = callPackage ../tools/networking/acme-client { stdenv = gccStdenv; };
 
   amass = callPackage ../tools/networking/amass { };
 
@@ -788,27 +850,51 @@ in
   aj-snapshot  = callPackage ../applications/audio/aj-snapshot { };
 
   ajour = callPackage ../tools/games/ajour {
-    inherit (gnome3) zenity;
+    inherit (gnome) zenity;
     inherit (plasma5Packages) kdialog;
   };
 
   albert = libsForQt5.callPackage ../applications/misc/albert {};
 
+  auditwheel = callPackage ../tools/package-management/auditwheel { };
+
+  amidst = callPackage ../tools/games/amidst { };
+
+  gamemode = callPackage ../tools/games/gamemode {
+    libgamemode32 = pkgsi686Linux.gamemode.lib;
+  };
+
+  gfshare = callPackage ../tools/security/gfshare { };
+
   gobgp = callPackage ../tools/networking/gobgp { };
 
   metapixel = callPackage ../tools/graphics/metapixel { };
 
+  pferd = callPackage ../tools/misc/pferd {};
+
   quich = callPackage ../tools/misc/quich { } ;
 
   tfk8s = callPackage ../tools/misc/tfk8s { };
 
+  tnat64 = callPackage ../tools/networking/tnat64 { };
+
+  veikk-linux-driver-gui = libsForQt5.callPackage ../tools/misc/veikk-linux-driver-gui { };
+
+  xcd = callPackage ../tools/misc/xcd { };
+
   xtrt = callPackage ../tools/archivers/xtrt { };
 
   yabridge = callPackage ../tools/audio/yabridge {
-    wine = wineWowPackages.minimal;
+    wine = wineWowPackages.staging;
   };
 
-  yabridgectl = callPackage ../tools/audio/yabridgectl { };
+  yabridgectl = callPackage ../tools/audio/yabridgectl {
+    wine = wineWowPackages.staging;
+  };
+
+  yafetch = callPackage ../tools/misc/yafetch {
+    stdenv = clangStdenv;
+  };
 
   ### APPLICATIONS/TERMINAL-EMULATORS
 
@@ -859,7 +945,7 @@ in
   };
 
   logseq = callPackage ../applications/misc/logseq {
-    electron = electron_11;
+    electron = electron_12;
   };
 
   lxterminal = callPackage ../applications/terminal-emulators/lxterminal { };
@@ -922,6 +1008,8 @@ in
 
   tilix = callPackage ../applications/terminal-emulators/tilix { };
 
+  twine = with python3Packages; toPythonApplication twine;
+
   wayst = callPackage ../applications/terminal-emulators/wayst { };
 
   wezterm = callPackage ../applications/terminal-emulators/wezterm {
@@ -965,6 +1053,10 @@ in
 
   analog = callPackage ../tools/admin/analog {};
 
+  android-tools = lowPrio (callPackage ../tools/misc/android-tools {
+    stdenv = if stdenv.targetPlatform.isAarch64 then gcc10Stdenv else stdenv;
+  });
+
   angle-grinder = callPackage ../tools/text/angle-grinder {};
 
   ansifilter = callPackage ../tools/text/ansifilter {};
@@ -1011,7 +1103,7 @@ in
   }) arangodb_3_3 arangodb_3_4 arangodb_3_5;
   arangodb = arangodb_3_4;
 
-  arcanist = callPackage ../development/tools/misc/arcanist {};
+  arcanist = callPackage ../development/tools/misc/arcanist { php = php74; };
 
   arduino = arduino-core.override { withGui = true; };
 
@@ -1077,6 +1169,8 @@ in
 
   audiowaveform = callPackage ../tools/audio/audiowaveform { };
 
+  authenticator = callPackage ../applications/misc/authenticator { };
+
   autoflake = callPackage ../development/tools/analysis/autoflake { };
 
   autospotting = callPackage ../applications/misc/autospotting { };
@@ -1139,6 +1233,8 @@ in
 
   chamber = callPackage ../tools/admin/chamber {  };
 
+  chaos = callPackage ../tools/networking/chaos {  };
+
   charm = callPackage ../applications/misc/charm { };
 
   chars = callPackage ../tools/text/chars {
@@ -1181,6 +1277,8 @@ in
 
   barman = python3Packages.callPackage ../tools/misc/barman { };
 
+  base16-universal-manager = callPackage ../applications/misc/base16-universal-manager { };
+
   bashate = python3Packages.callPackage ../development/tools/bashate { };
 
   bash-my-aws = callPackage ../tools/admin/bash-my-aws { };
@@ -1206,6 +1304,8 @@ in
 
   bitwarden_rs-vault = callPackage ../tools/security/bitwarden_rs/vault.nix { };
 
+  bkyml = callPackage ../tools/misc/bkyml { };
+
   blockbench-electron = callPackage ../applications/graphics/blockbench-electron { };
 
   bmap-tools = callPackage ../tools/misc/bmap-tools { };
@@ -1222,6 +1322,10 @@ in
 
   btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { };
 
+  bucklespring = bucklespring-x11;
+  bucklespring-libinput = callPackage ../applications/audio/bucklespring { };
+  bucklespring-x11 = callPackage ../applications/audio/bucklespring { legacy = true; };
+
   buildbot = with python3Packages; toPythonApplication buildbot;
   buildbot-ui = with python3Packages; toPythonApplication buildbot-ui;
   buildbot-full = with python3Packages; toPythonApplication buildbot-full;
@@ -1229,6 +1333,8 @@ in
 
   bunny = callPackage ../tools/package-management/bunny { };
 
+  bunyan-rs = callPackage ../development/tools/bunyan-rs { };
+
   callaudiod = callPackage ../applications/audio/callaudiod { };
 
   calls = callPackage ../applications/networking/calls { };
@@ -1254,6 +1360,8 @@ in
 
   cloud-sql-proxy = callPackage ../tools/misc/cloud-sql-proxy { };
 
+  cloudsmith-cli = callPackage ../development/tools/cloudsmith-cli { };
+
   codeql = callPackage ../development/tools/analysis/codeql { };
 
   container-linux-config-transpiler = callPackage ../development/tools/container-linux-config-transpiler { };
@@ -1282,6 +1390,8 @@ in
 
   coolreader = libsForQt5.callPackage ../applications/misc/coolreader {};
 
+  corsair = with python3Packages; toPythonApplication corsair-scan;
+
   corsmisc = callPackage ../tools/security/corsmisc { };
 
   cosign = callPackage ../tools/security/cosign {
@@ -1310,6 +1420,8 @@ in
 
   cyclonedx-python = callPackage ../tools/misc/cyclonedx-python { };
 
+  deltachat-cursed = callPackage ../applications/networking/instant-messengers/deltachat-cursed { };
+
   deltachat-electron = callPackage
     ../applications/networking/instant-messengers/deltachat-electron { };
 
@@ -1319,6 +1431,8 @@ in
 
   dfmt = callPackage ../tools/text/dfmt { };
 
+  diopser = callPackage ../applications/audio/diopser { };
+
   diskonaut = callPackage ../tools/misc/diskonaut { };
 
   diskus = callPackage ../tools/misc/diskus {
@@ -1442,10 +1556,12 @@ in
   grc = python3Packages.callPackage ../tools/misc/grc { };
 
   green-pdfviewer = callPackage ../applications/misc/green-pdfviewer {
-   SDL = SDL_sixel;
+    SDL = SDL_sixel;
   };
 
-  gremlin-console = callPackage ../applications/misc/gremlin-console { };
+  gremlin-console = callPackage ../applications/misc/gremlin-console {
+    openjdk = openjdk11;
+  };
 
   grex = callPackage ../tools/misc/grex {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -1463,6 +1579,8 @@ in
 
   harvid = callPackage ../tools/video/harvid { };
 
+  hilbish = callPackage ../shells/hilbish { };
+
   hime = callPackage ../tools/inputmethods/hime {};
 
   hinit = haskell.lib.justStaticExecutables haskellPackages.hinit;
@@ -1479,10 +1597,14 @@ in
 
   ili2c = callPackage ../tools/misc/ili2c { };
 
+  imagelol = callPackage ../tools/compression/imagelol { };
+
   imageworsener = callPackage ../tools/graphics/imageworsener { };
 
   imgpatchtools = callPackage ../development/mobile/imgpatchtools { };
 
+  imgcrypt = callPackage ../applications/virtualization/imgcrypt { };
+
   ipgrep = callPackage ../tools/networking/ipgrep { };
 
   lastpass-cli = callPackage ../tools/security/lastpass-cli { };
@@ -1523,6 +1645,8 @@ in
 
   git-credential-gopass = callPackage ../tools/security/gopass/git-credential.nix { };
 
+  gosh = callPackage ../tools/security/gosh { };
+
   gospider = callPackage ../tools/security/gospider { };
 
   browserpass = callPackage ../tools/security/browserpass { };
@@ -1555,6 +1679,8 @@ in
 
   play-with-mpv = callPackage ../tools/video/play-with-mpv { };
 
+  plausible = callPackage ../servers/web-apps/plausible { };
+
   reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {};
 
   skhd = callPackage ../os-specific/darwin/skhd {
@@ -1790,6 +1916,8 @@ in
 
   blur-effect = callPackage ../tools/graphics/blur-effect { };
 
+  bootiso = callPackage ../tools/cd-dvd/bootiso { };
+
   butane = callPackage ../development/tools/butane { };
 
   charles = charles4;
@@ -1824,6 +1952,8 @@ in
 
   behdad-fonts = callPackage ../data/fonts/behdad-fonts { };
 
+  bfetch = callPackage ../tools/misc/bfetch { };
+
   bless = callPackage ../applications/editors/bless { };
 
   blink1-tool = callPackage ../tools/misc/blink1-tool { };
@@ -1871,6 +2001,9 @@ in
 
   boxfs = callPackage ../tools/filesystems/boxfs { };
 
+  bozohttpd = callPackage ../servers/http/bozohttpd { };
+  bozohttpd-minimal = callPackage ../servers/http/bozohttpd { minimal = true; };
+
   bpytop = callPackage ../tools/system/bpytop { };
 
   brasero-original = lowPrio (callPackage ../tools/cd-dvd/brasero { });
@@ -1910,6 +2043,10 @@ in
 
   buildpack = callPackage ../development/tools/buildpack { };
 
+  bottom-rs = callPackage ../tools/misc/bottom-rs { };
+
+  bsp-layout = callPackage ../tools/misc/bsp-layout {};
+
   buildtorrent = callPackage ../tools/misc/buildtorrent { };
 
   bustle = haskellPackages.bustle;
@@ -1978,6 +2115,8 @@ in
     boost = pkgs.boost.override { python = python3; };
   };
 
+  calendar-cli = callPackage ../tools/networking/calendar-cli { };
+
   candle = libsForQt5.callPackage ../applications/misc/candle { };
 
   capstone = callPackage ../development/libraries/capstone { };
@@ -2089,6 +2228,8 @@ in
 
   commitizen = callPackage ../applications/version-management/commitizen {};
 
+  common-licenses = callPackage ../data/misc/common-licenses {};
+
   compactor = callPackage ../applications/networking/compactor { };
 
   consul = callPackage ../servers/consul { };
@@ -2147,6 +2288,8 @@ in
 
   wlr-randr = callPackage ../tools/wayland/wlr-randr { };
 
+  wlrctl = callPackage ../tools/wayland/wlrctl { };
+
   wlsunset = callPackage ../tools/wayland/wlsunset { };
 
   wob = callPackage ../tools/wayland/wob { };
@@ -2192,9 +2335,7 @@ in
 
   cppclean = callPackage ../development/tools/cppclean {};
 
-  credhub-cli = callPackage ../tools/admin/credhub-cli {
-    buildGoModule = buildGo114Module;
-  };
+  credhub-cli = callPackage ../tools/admin/credhub-cli {};
 
   crex = callPackage ../tools/misc/crex { };
 
@@ -2212,6 +2353,8 @@ in
 
   csvkit = callPackage ../tools/text/csvkit { };
 
+  csvtool = callPackage ../development/ocaml-modules/csv/csvtool.nix { };
+
   csv2latex = callPackage ../tools/misc/csv2latex { };
 
   csvs-to-sqlite = with python3Packages; toPythonApplication csvs-to-sqlite;
@@ -2252,6 +2395,8 @@ in
 
   ddate = callPackage ../tools/misc/ddate { };
 
+  dduper = callPackage ../tools/filesystems/dduper { };
+
   dedup = callPackage ../tools/backup/dedup { };
 
   dehydrated = callPackage ../tools/admin/dehydrated { };
@@ -2274,6 +2419,8 @@ in
 
   ioport = callPackage ../os-specific/linux/ioport {};
 
+  dgoss = callPackage ../tools/misc/dgoss { };
+
   diagrams-builder = callPackage ../tools/graphics/diagrams-builder {
     inherit (haskellPackages) ghcWithPackages diagrams-builder;
   };
@@ -2305,13 +2452,9 @@ in
 
   discount = callPackage ../tools/text/discount { };
 
-  discourse = callPackage ../servers/web-apps/discourse {
-    ruby = ruby_2_7;
-  };
+  discourse = callPackage ../servers/web-apps/discourse { };
 
-  discourse-mail-receiver = callPackage ../servers/web-apps/discourse/mail_receiver {
-    ruby = ruby_2_7;
-  };
+  discourse-mail-receiver = callPackage ../servers/web-apps/discourse/mail_receiver { };
 
   discocss = callPackage ../tools/misc/discocss { };
 
@@ -2369,7 +2512,8 @@ in
 
   duf = callPackage ../tools/misc/duf { };
 
-  inherit (ocamlPackages) dune_1 dune_2 dune-release;
+  inherit (ocaml-ng.ocamlPackages_4_10) dune_1;
+  inherit (ocamlPackages) dune_2 dune-release;
 
   duperemove = callPackage ../tools/filesystems/duperemove { };
 
@@ -2388,6 +2532,8 @@ in
 
   dyndnsc = callPackage ../applications/networking/dyndns/dyndnsc { };
 
+  earthly = callPackage ../development/tools/earthly { };
+
   earlybird = callPackage ../tools/security/earlybird { };
 
   earlyoom = callPackage ../os-specific/linux/earlyoom { };
@@ -2617,6 +2763,8 @@ in
       Accelerate CoreGraphics CoreVideo;
   };
 
+  gpg-tui = callPackage ../tools/security/gpg-tui { };
+
   goa = callPackage ../development/tools/goa { };
 
   gohai = callPackage ../tools/system/gohai { };
@@ -2625,6 +2773,8 @@ in
 
   godu = callPackage ../tools/misc/godu { };
 
+  goss = callPackage ../tools/misc/goss { };
+
   gosu = callPackage ../tools/misc/gosu { };
 
   gotify-cli = callPackage ../tools/misc/gotify-cli { };
@@ -2673,6 +2823,8 @@ in
 
   hostsblock = callPackage ../tools/misc/hostsblock { };
 
+  hottext = callPackage ../tools/text/hottext { };
+
   hopper = qt5.callPackage ../development/tools/analysis/hopper {};
 
   hr = callPackage ../applications/misc/hr { };
@@ -2703,6 +2855,8 @@ in
 
   jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
 
+  jellyfin-web = callPackage ../servers/jellyfin/web.nix { };
+
   jiten = callPackage ../applications/misc/jiten { };
 
   jotta-cli = callPackage ../applications/misc/jotta-cli { };
@@ -2717,6 +2871,8 @@ in
 
   kaldi = callPackage ../tools/audio/kaldi { };
 
+  kalker = callPackage ../tools/misc/kalker { };
+
   kisslicer = callPackage ../tools/misc/kisslicer { };
 
   klaus = with python3Packages; toPythonApplication klaus;
@@ -2817,6 +2973,8 @@ in
 
   mididings = callPackage ../tools/audio/mididings { };
 
+  miniscript = callPackage ../applications/blockchains/miniscript { };
+
   miniserve = callPackage ../tools/misc/miniserve {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -2881,6 +3039,8 @@ in
 
   nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools;
 
+  notemap = callPackage ../tools/networking/notemap { };
+
   noteshrink = callPackage ../tools/misc/noteshrink { };
 
   noti = callPackage ../tools/misc/noti {
@@ -2984,6 +3144,8 @@ in
 
   remarkable-mouse = python3Packages.callPackage ../applications/misc/remarkable/remarkable-mouse { };
 
+  restream = callPackage ../applications/misc/remarkable/restream { };
+
   ryujinx = callPackage ../misc/emulators/ryujinx { };
 
   scour = with python3Packages; toPythonApplication scour;
@@ -2996,6 +3158,10 @@ in
 
   shellhub-agent = callPackage ../applications/networking/shellhub-agent { };
 
+  sheesy-cli = callPackage ../tools/security/sheesy-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   simdjson = callPackage ../development/libraries/simdjson { };
 
   shipyard = callPackage ../tools/virtualization/shipyard { };
@@ -3010,6 +3176,8 @@ in
 
   socklog = callPackage ../tools/system/socklog { };
 
+  soju = callPackage ../applications/networking/soju { };
+
   spacevim = callPackage ../applications/editors/spacevim { };
 
   ssmsh = callPackage ../tools/admin/ssmsh { };
@@ -3022,7 +3190,6 @@ in
 
   step-ca = callPackage ../tools/security/step-ca {
     inherit (darwin.apple_sdk.frameworks) PCSC;
-    buildGoModule = buildGo115Module;
   };
 
   step-cli = callPackage ../tools/security/step-cli { };
@@ -3185,6 +3352,10 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
   };
 
+  bacon = callPackage ../development/tools/bacon {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
   bareos = callPackage ../tools/backup/bareos { };
 
   bats = callPackage ../development/interpreters/bats { };
@@ -3193,7 +3364,14 @@ in
 
   bdsync = callPackage ../tools/backup/bdsync { };
 
-  beamerpresenter = libsForQt5.callPackage ../applications/office/beamerpresenter { };
+  beamerpresenter = libsForQt5.callPackage ../applications/office/beamerpresenter {
+    # developed for a compiler with C++20 support
+    stdenv =
+      if stdenv.isDarwin then
+        overrideCC stdenv clang_10
+      else
+        stdenv;
+  };
 
   beanstalkd = callPackage ../servers/beanstalkd { };
 
@@ -3357,7 +3535,8 @@ in
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    boost = boost172.override { enablePython = true; python = python38; };
+    boost = boost17x.override { enablePython = true; python = python3; };
+    lua = lua5_4;
   })
     ceph
     ceph-client;
@@ -3368,6 +3547,8 @@ in
 
   cfdg = callPackage ../tools/graphics/cfdg { };
 
+  cgreen = callPackage ../development/libraries/cgreen { };
+
   checkinstall = callPackage ../tools/package-management/checkinstall { };
 
   checkmake = callPackage ../development/tools/checkmake { };
@@ -3480,7 +3661,9 @@ in
 
   ethash = callPackage ../development/libraries/ethash { };
 
-  ethminer = callPackage ../tools/misc/ethminer { };
+  ethminer = callPackage ../tools/misc/ethminer { cudaSupport = config.cudaSupport or true; };
+  ethminer-cuda = ethminer.override { cudaSupport = true; };
+  ethminer-free = ethminer.override { cudaSupport = false; };
 
   cuetools = callPackage ../tools/cd-dvd/cuetools { };
 
@@ -3514,7 +3697,7 @@ in
   libpinyin = callPackage ../development/libraries/libpinyin { };
 
   libskk = callPackage ../development/libraries/libskk {
-    inherit (gnome3) gnome-common;
+    inherit (gnome) gnome-common;
   };
 
   m17n_db = callPackage ../tools/inputmethods/m17n-db { };
@@ -3611,7 +3794,9 @@ in
 
   cfssl = callPackage ../tools/security/cfssl { };
 
-  chafa = callPackage ../tools/misc/chafa { };
+  chafa = callPackage ../tools/misc/chafa {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   checkbashisms = callPackage ../development/tools/misc/checkbashisms { };
 
@@ -3810,7 +3995,8 @@ in
 
   deno = callPackage ../development/web/deno {
     inherit (darwin) libobjc;
-    inherit (darwin.apple_sdk.frameworks) Security CoreServices Metal Foundation;
+    inherit (darwin.apple_sdk.frameworks)
+      Security CoreServices Metal Foundation QuartzCore;
   };
 
   detox = callPackage ../tools/misc/detox { };
@@ -3895,11 +4081,15 @@ in
 
   diff-so-fancy = callPackage ../applications/version-management/git-and-tools/diff-so-fancy { };
 
-  diffoscope = callPackage ../tools/misc/diffoscope {
+  diffoscopeMinimal = callPackage ../tools/misc/diffoscope {
     inherit (androidenv.androidPkgs_9_0) build-tools;
     jdk = jdk8;
   };
 
+  diffoscope = diffoscopeMinimal.override {
+    enableBloat = true;
+  };
+
   diffr = callPackage ../tools/text/diffr {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -4135,6 +4325,8 @@ in
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
 
+  timeline = callPackage ../applications/office/timeline/default.nix { };
+
   tsm-client = callPackage ../tools/backup/tsm-client { jdk8 = null; };
   tsm-client-withGui = callPackage ../tools/backup/tsm-client { };
 
@@ -4156,6 +4348,8 @@ in
 
   uudeview = callPackage ../tools/misc/uudeview { };
 
+  uusi = haskell.lib.justStaticExecutables haskellPackages.uusi;
+
   uutils-coreutils = callPackage ../tools/misc/uutils-coreutils {
     inherit (python3Packages) sphinx;
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -4176,13 +4370,15 @@ in
   wallutils = callPackage ../tools/graphics/wallutils { };
 
   wrangler = callPackage ../development/tools/wrangler {
-   inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security;
   };
 
   wsl-open = callPackage ../tools/misc/wsl-open { };
 
   xkcdpass = with python3Packages; toPythonApplication xkcdpass;
 
+  xjobs = callPackage ../tools/misc/xjobs { };
+
   xob = callPackage ../tools/X11/xob { };
 
   z-lua = callPackage ../tools/misc/z-lua { };
@@ -4364,6 +4560,8 @@ in
 
   fakechroot = callPackage ../tools/system/fakechroot { };
 
+  fancy-motd = callPackage ../tools/system/fancy-motd { };
+
   fastpbkdf2 = callPackage ../development/libraries/fastpbkdf2 { };
 
   fanficfare = callPackage ../tools/text/fanficfare { };
@@ -4451,7 +4649,9 @@ in
 
   ferm = callPackage ../tools/networking/ferm { };
 
-  ffsend = callPackage ../tools/misc/ffsend { };
+  ffsend = callPackage ../tools/misc/ffsend {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security AppKit;
+  };
 
   fgallery = callPackage ../tools/graphics/fgallery { };
 
@@ -4561,6 +4761,8 @@ in
 
   flawfinder = callPackage ../development/tools/flawfinder { };
 
+  flip-link = callPackage ../development/tools/flip-link { };
+
   flips = callPackage ../tools/compression/flips { };
 
   flvtool2 = callPackage ../tools/video/flvtool2 {
@@ -4651,6 +4853,8 @@ in
 
   frescobaldi = python3Packages.callPackage ../misc/frescobaldi {};
 
+  freshfetch = callPackage ../tools/misc/freshfetch { };
+
   frostwire = callPackage ../applications/networking/p2p/frostwire { };
   frostwire-bin = callPackage ../applications/networking/p2p/frostwire/frostwire-bin.nix { };
 
@@ -4779,6 +4983,8 @@ in
 
   ghorg = callPackage ../applications/version-management/git-and-tools/ghorg { };
 
+  ghostunnel = callPackage ../tools/networking/ghostunnel { };
+
   ghq = callPackage ../applications/version-management/git-and-tools/ghq { };
 
   ghr = callPackage ../applications/version-management/git-and-tools/ghr { };
@@ -4948,6 +5154,8 @@ in
 
   git-vanity-hash = callPackage ../applications/version-management/git-and-tools/git-vanity-hash { };
 
+  git-vendor = callPackage ../applications/version-management/git-and-tools/git-vendor { };
+
   git-when-merged = callPackage ../applications/version-management/git-and-tools/git-when-merged { };
 
   git-workspace = callPackage ../applications/version-management/git-and-tools/git-workspace {
@@ -4974,19 +5182,14 @@ in
 
   gitkraken = callPackage ../applications/version-management/gitkraken { };
 
-  gitlab = callPackage ../applications/version-management/gitlab {
-    ruby = ruby_2_7;
-  };
+  gitlab = callPackage ../applications/version-management/gitlab { };
   gitlab-ee = callPackage ../applications/version-management/gitlab {
-    ruby = ruby_2_7;
     gitlabEnterprise = true;
   };
 
   gitlab-runner = callPackage ../development/tools/continuous-integration/gitlab-runner { };
 
-  gitlab-shell = callPackage ../applications/version-management/gitlab/gitlab-shell {
-    ruby = ruby_2_7;
-  };
+  gitlab-shell = callPackage ../applications/version-management/gitlab/gitlab-shell { };
 
   gitlab-triage = callPackage ../applications/version-management/gitlab-triage { };
 
@@ -4994,9 +5197,7 @@ in
 
   gitleaks = callPackage ../tools/security/gitleaks { };
 
-  gitaly = callPackage ../applications/version-management/gitlab/gitaly {
-    ruby = ruby_2_7;
-  };
+  gitaly = callPackage ../applications/version-management/gitlab/gitaly { };
 
   gitstats = callPackage ../applications/version-management/gitstats { };
 
@@ -5088,10 +5289,9 @@ in
 
   gnu-pw-mgr = callPackage ../tools/security/gnu-pw-mgr { };
 
-  gnused = if !stdenv.hostPlatform.isWindows then
-             callPackage ../tools/text/gnused { } # broken on Windows
-           else
-             gnused_422;
+  gnused = if !stdenv.hostPlatform.isWindows
+    then callPackage ../tools/text/gnused { } # broken on Windows
+    else gnused_422;
   # This is an easy work-around for [:space:] problems.
   gnused_422 = callPackage ../tools/text/gnused/422.nix { };
 
@@ -5306,6 +5506,8 @@ in
 
   gtkperf = callPackage ../development/tools/misc/gtkperf { };
 
+  gtk-frdp = callPackage ../development/libraries/gtk-frdp {};
+
   gtk-vnc = callPackage ../tools/admin/gtk-vnc {};
 
   gtmess = callPackage ../applications/networking/instant-messengers/gtmess {
@@ -5450,7 +5652,9 @@ in
 
   hdf5-blosc = callPackage ../development/libraries/hdf5-blosc { };
 
-  hdfview = callPackage ../tools/misc/hdfview { };
+  hdfview = callPackage ../tools/misc/hdfview {
+    hdf5 = hdf5_1_10;
+  };
 
   hecate = callPackage ../applications/editors/hecate { };
 
@@ -5460,6 +5664,8 @@ in
 
   heimdall-gui = heimdall.override { enableGUI = true; };
 
+  heisenbridge = callPackage ../servers/heisenbridge { };
+
   helio-workstation = callPackage ../applications/audio/helio-workstation { };
 
   hevea = callPackage ../tools/typesetting/hevea { };
@@ -5593,6 +5799,8 @@ in
       irods
       irods-icommands;
 
+  ignite = callPackage ../applications/virtualization/ignite { };
+
   igmpproxy = callPackage ../tools/networking/igmpproxy { };
 
   ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
@@ -5683,6 +5891,10 @@ in
 
   ipget = callPackage ../applications/networking/ipget { };
 
+  i-pi = with python3Packages; toPythonApplication i-pi;
+
+  iptsd = callPackage ../applications/misc/iptsd { };
+
   ipmitool = callPackage ../tools/system/ipmitool {};
 
   ipmiutil = callPackage ../tools/system/ipmiutil {};
@@ -5697,6 +5909,8 @@ in
 
   netifd = callPackage ../tools/networking/netifd {};
 
+  ipinfo = callPackage ../tools/networking/ipinfo {};
+
   ipscan = callPackage ../tools/security/ipscan { };
 
   ipv6calc = callPackage ../tools/networking/ipv6calc {};
@@ -5804,6 +6018,8 @@ in
 
   jq = callPackage ../development/tools/jq { };
 
+  jiq = callPackage ../development/tools/misc/jiq { };
+
   jql = callPackage ../development/tools/jql { };
 
   jo = callPackage ../development/tools/jo { };
@@ -5913,6 +6129,8 @@ in
 
   kismet = callPackage ../applications/networking/sniffers/kismet { };
 
+  kiterunner = callPackage ../tools/security/kiterunner { };
+
   klick = callPackage ../applications/audio/klick { };
 
   klystrack = callPackage ../applications/audio/klystrack { };
@@ -5929,6 +6147,8 @@ in
 
   kpcli = callPackage ../tools/security/kpcli { };
 
+  kratos = callPackage ../applications/misc/kratos { };
+
   krename = libsForQt5.callPackage ../applications/misc/krename { };
 
   krunner-pass = libsForQt5.callPackage ../tools/security/krunner-pass { };
@@ -5961,9 +6181,13 @@ in
 
   lalezar-fonts = callPackage ../data/fonts/lalezar-fonts { };
 
+  last-resort = callPackage ../data/fonts/last-resort {};
+
   ldc = callPackage ../development/compilers/ldc { };
 
-  ldgallery = callPackage ../tools/graphics/ldgallery { };
+  ldgallery = callPackage ../tools/graphics/ldgallery {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
 
   lbreakout2 = callPackage ../games/lbreakout2 { };
 
@@ -6150,6 +6374,8 @@ in
 
   minidlna = callPackage ../tools/networking/minidlna { };
 
+  minipro = callPackage ../tools/misc/minipro { };
+
   minisign = callPackage ../tools/security/minisign { };
 
   ministat = callPackage ../tools/misc/ministat { };
@@ -6168,6 +6394,8 @@ in
 
   multitail = callPackage ../tools/misc/multitail { };
 
+  mx-puppet-discord = callPackage ../servers/mx-puppet-discord { };
+
   mxt-app = callPackage ../misc/mxt-app { };
 
   naabu = callPackage ../tools/security/naabu { };
@@ -6182,6 +6410,10 @@ in
 
   nbench = callPackage ../tools/misc/nbench { };
 
+  nbtscanner = callPackage ../tools/security/nbtscanner {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   ncrack = callPackage ../tools/security/ncrack { };
 
   nerdctl = callPackage ../applications/networking/cluster/nerdctl { };
@@ -6229,10 +6461,6 @@ in
   nodejs-slim-14_x = callPackage ../development/web/nodejs/v14.nix {
     enableNpm = false;
   };
-  nodejs-15_x = callPackage ../development/web/nodejs/v15.nix { };
-  nodejs-slim-15_x = callPackage ../development/web/nodejs/v15.nix {
-    enableNpm = false;
-  };
   nodejs-16_x = callPackage ../development/web/nodejs/v16.nix { };
   nodejs-slim-16_x = callPackage ../development/web/nodejs/v16.nix {
     enableNpm = false;
@@ -6340,7 +6568,7 @@ in
   libite = callPackage ../development/libraries/libite { };
 
   liblangtag = callPackage ../development/libraries/liblangtag {
-    inherit (gnome3) gnome-common;
+    inherit (gnome) gnome-common;
   };
 
   liblouis = callPackage ../development/libraries/liblouis { };
@@ -6397,6 +6625,8 @@ in
 
   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
 
+  libtorrent-jesec = callPackage ../tools/networking/p2p/libtorrent-jesec { };
+
   libmpack = callPackage ../development/libraries/libmpack { };
 
   libiberty = callPackage ../development/libraries/libiberty { };
@@ -6500,7 +6730,9 @@ in
 
   macchanger = callPackage ../os-specific/linux/macchanger { };
 
-  macchina = callPackage ../tools/misc/macchina { };
+  macchina = callPackage ../tools/misc/macchina {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   madlang = haskell.lib.justStaticExecutables haskellPackages.madlang;
 
@@ -6550,6 +6782,11 @@ in
 
   mandoc = callPackage ../tools/misc/mandoc { };
 
+  mangohud = callPackage ../tools/graphics/mangohud {
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+    mangohud32 = pkgsi686Linux.mangohud;
+  };
+
   manix = callPackage ../tools/nix/manix {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -6590,7 +6827,9 @@ in
 
   mbutil = python3Packages.callPackage ../applications/misc/mbutil { };
 
-  mc = callPackage ../tools/misc/mc { };
+  mc = callPackage ../tools/misc/mc {
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
 
   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
 
@@ -6602,6 +6841,8 @@ in
 
   mdk = callPackage ../development/tools/mdk { };
 
+  mdk4 = callPackage ../tools/networking/mdk4 { };
+
   mdp = callPackage ../applications/misc/mdp { };
 
   mednafen = callPackage ../misc/emulators/mednafen { };
@@ -6755,6 +6996,8 @@ in
 
   mt-st = callPackage ../tools/backup/mt-st {};
 
+  mubeng = callPackage ../tools/networking/mubeng { };
+
   multitime = callPackage ../tools/misc/multitime { };
 
   sta = callPackage ../tools/misc/sta {};
@@ -6957,6 +7200,11 @@ in
     inherit (linuxPackages) nvidia_x11;
     nvidiaGpuSupport = config.cudaSupport or false;
   };
+  nomad_1_1 = callPackage ../applications/networking/cluster/nomad/1.1.nix {
+    buildGoPackage = buildGo116Package;
+    inherit (linuxPackages) nvidia_x11;
+    nvidiaGpuSupport = config.cudaSupport or false;
+  };
 
   nomad-driver-podman = callPackage ../applications/networking/cluster/nomad-driver-podman { };
 
@@ -6964,8 +7212,18 @@ in
 
   ntlmrecon = callPackage ../tools/security/ntlmrecon { };
 
+  numberstation = callPackage ../applications/misc/numberstation { };
+
   nvchecker = with python3Packages; toPythonApplication nvchecker;
 
+  nvfetcher = with haskell.lib; overrideCabal (justStaticExecutables haskellPackages.nvfetcher) (drv: {
+    executableToolDepends = [ makeWrapper ];
+    postInstall = ''
+      wrapProgram $out/bin/nvfetcher \
+        --prefix PATH ":" "${nvchecker}/bin:${nix-prefetch-git}/bin"
+    '';
+  });
+
   miller = callPackage ../tools/text/miller { };
 
   milu = callPackage ../applications/misc/milu { };
@@ -6984,8 +7242,14 @@ in
 
   pandoc-plantuml-filter = python3Packages.callPackage ../tools/misc/pandoc-plantuml-filter { };
 
+  patray = callPackage ../tools/audio/patray { };
+
   pasystray = callPackage ../tools/audio/pasystray { };
 
+  pcmsolver = callPackage ../development/libraries/pcmsolver { };
+
+  pgbadger = perlPackages.callPackage ../tools/misc/pgbadger { };
+
   phash = callPackage ../development/libraries/phash { };
 
   pnmixer = callPackage ../tools/audio/pnmixer { };
@@ -7030,6 +7294,8 @@ in
 
   nnn = callPackage ../applications/misc/nnn { };
 
+  sfm = callPackage ../applications/misc/sfm { };
+
   shfm = callPackage ../applications/misc/shfm { };
 
   noise-repellent = callPackage ../applications/audio/noise-repellent { };
@@ -7077,6 +7343,10 @@ in
 
   nssmdns = callPackage ../tools/networking/nss-mdns { };
 
+  nvfancontrol = callPackage ../tools/misc/nvfancontrol {
+    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+  };
+
   nvimpager = callPackage ../tools/misc/nvimpager { };
 
   nwdiag = with python3Packages; toPythonApplication nwdiag;
@@ -7089,11 +7359,18 @@ in
 
   nylon = callPackage ../tools/networking/nylon { };
 
-  nym = callPackage ../applications/networking/nym { };
+  nym = callPackage ../applications/networking/nym {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   nzbget = callPackage ../tools/networking/nzbget { };
 
-  nzbhydra2 = callPackage ../servers/nzbhydra2 { };
+  nzbhydra2 = callPackage ../servers/nzbhydra2 {
+    # You need Java (at least 8, at most 15)
+    # https://github.com/theotherp/nzbhydra2/issues/697
+    # https://github.com/theotherp/nzbhydra2/#how-to-run
+    jre = openjdk11;
+  };
 
   oapi-codegen = callPackage ../tools/networking/oapi-codegen { };
 
@@ -7164,8 +7441,8 @@ in
 
   onlykey-cli = callPackage ../tools/security/onlykey-cli { };
 
-  openapi-generator-cli = callPackage ../tools/networking/openapi-generator-cli { };
-  openapi-generator-cli-unstable = callPackage ../tools/networking/openapi-generator-cli/unstable.nix { };
+  openapi-generator-cli = callPackage ../tools/networking/openapi-generator-cli { jre = pkgs.jre_headless; };
+  openapi-generator-cli-unstable = callPackage ../tools/networking/openapi-generator-cli/unstable.nix { jre = pkgs.jre_headless; };
 
   openbazaar = callPackage ../applications/networking/openbazaar { };
   openbazaar-client = callPackage ../applications/networking/openbazaar/client.nix { };
@@ -7245,6 +7522,8 @@ in
 
   opensp = callPackage ../tools/text/sgml/opensp { };
 
+  opentrack = libsForQt5.callPackage ../applications/misc/opentrack { };
+
   opentracker = callPackage ../applications/networking/p2p/opentracker { };
 
   opentsdb = callPackage ../tools/misc/opentsdb {};
@@ -7277,6 +7556,8 @@ in
 
   opae = callPackage ../development/libraries/opae { };
 
+  opentelemetry-collector = callPackage ../tools/misc/opentelemetry-collector { };
+
   opentracing-cpp = callPackage ../development/libraries/opentracing-cpp { };
 
   openvswitch = callPackage ../os-specific/linux/openvswitch { };
@@ -7313,6 +7594,8 @@ in
 
   otpw = callPackage ../os-specific/linux/otpw { };
 
+  ovftool = callPackage ../tools/virtualization/ovftool { };
+
   overcommit = callPackage ../development/tools/overcommit { };
 
   overmind = callPackage ../applications/misc/overmind { };
@@ -7411,6 +7694,8 @@ in
 
   pitivi = callPackage ../applications/video/pitivi { };
 
+  prism = callPackage ../applications/video/prism { };
+
   pulumi-bin = callPackage ../tools/admin/pulumi { };
 
   p0f = callPackage ../tools/security/p0f { };
@@ -7516,10 +7801,16 @@ in
 
   philter = callPackage ../tools/networking/philter { };
 
+  phoc = callPackage ../applications/misc/phoc {
+    wlroots = wlroots_0_12;
+  };
+
   phodav = callPackage ../tools/networking/phodav { };
 
   pim6sd = callPackage ../servers/pim6sd { };
 
+  phosh = callPackage ../applications/window-managers/phosh { };
+
   pinentry = libsForQt5.callPackage ../tools/security/pinentry {
     libcap = if stdenv.isDarwin then null else libcap;
   };
@@ -7714,6 +8005,8 @@ in
 
   polygraph = callPackage ../tools/networking/polygraph { };
 
+  pr-tracker = callPackage ../servers/pr-tracker { };
+
   progress = callPackage ../tools/misc/progress { };
 
   ps3netsrv = callPackage ../servers/ps3netsrv { };
@@ -7750,6 +8043,8 @@ in
 
   pycangjie = pythonPackages.pycangjie;
 
+  pycflow2dot = with python.pkgs; toPythonApplication pycflow2dot;
+
   pydb = callPackage ../development/tools/pydb { };
 
   pydf = callPackage ../applications/misc/pydf { };
@@ -7810,6 +8105,8 @@ in
 
   qnial = callPackage ../development/interpreters/qnial { };
 
+  quickbms = pkgsi686Linux.callPackage ../tools/archivers/quickbms { };
+
   ocz-ssd-guru = callPackage ../tools/misc/ocz-ssd-guru { };
 
   q-text-as-data = callPackage ../tools/misc/q-text-as-data { };
@@ -7848,6 +8145,8 @@ in
 
   qtikz = libsForQt5.callPackage ../applications/graphics/ktikz { };
 
+  quadrafuzz = callPackage ../applications/audio/quadrafuzz { };
+
   quickfix = callPackage ../development/libraries/quickfix { };
 
   quickjs = callPackage ../development/interpreters/quickjs { };
@@ -8027,6 +8326,8 @@ in
 
   rnnoise-plugin = callPackage ../development/libraries/rnnoise-plugin {};
 
+  rnp = callPackage ../tools/security/rnp { };
+
   rnv = callPackage ../tools/text/xml/rnv { };
 
   rosie = callPackage ../tools/text/rosie { };
@@ -8055,6 +8356,8 @@ in
 
   rowhammer-test = callPackage ../tools/system/rowhammer-test { };
 
+  rpg-cli = callPackage ../games/rpg-cli { };
+
   rpPPPoE = callPackage ../tools/networking/rp-pppoe { };
 
   rpi-imager = libsForQt5.callPackage ../tools/misc/rpi-imager { };
@@ -8075,6 +8378,8 @@ in
 
   rrdtool = callPackage ../tools/misc/rrdtool { };
 
+  rset = callPackage ../tools/admin/rset { };
+
   rshijack = callPackage ../tools/networking/rshijack { };
 
   rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { };
@@ -8089,9 +8394,11 @@ in
 
   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
 
+  rtorrent-jesec = callPackage ../tools/networking/p2p/rtorrent-jesec { };
+
   rubber = callPackage ../tools/typesetting/rubber { };
 
-  rubocop = callPackage ../development/tools/rubocop { };
+  rubocop = rubyPackages.rubocop;
 
   ruffle = callPackage ../misc/emulators/ruffle { };
 
@@ -8127,6 +8434,10 @@ in
 
   s3cmd = python3Packages.callPackage ../tools/networking/s3cmd { };
 
+  s3rs = callPackage ../tools/networking/s3rs {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   s4cmd = callPackage ../tools/networking/s4cmd { };
 
   s5cmd = callPackage ../tools/networking/s5cmd { };
@@ -8169,6 +8480,8 @@ in
 
   saml2aws = callPackage ../tools/security/saml2aws {};
 
+  sammler = callPackage ../tools/security/sammler {};
+
   samplicator = callPackage ../tools/networking/samplicator { };
 
   sandboxfs = callPackage ../tools/filesystems/sandboxfs { };
@@ -8185,9 +8498,7 @@ in
 
   scmpuff = callPackage ../applications/version-management/git-and-tools/scmpuff { };
 
-  scream-receivers = callPackage ../misc/scream-receivers {
-    pulseSupport = config.pulseaudio or false;
-  };
+  scream = callPackage ../applications/audio/scream { };
 
   scimark = callPackage ../misc/scimark { };
 
@@ -8201,16 +8512,10 @@ in
 
   screen-message = callPackage ../tools/X11/screen-message { };
 
-  screencloud = callPackage ../applications/graphics/screencloud {
-    quazip = quazip_qt4;
-  };
+  screencloud = libsForQt5.callPackage ../applications/graphics/screencloud { };
 
   screenkey = callPackage ../applications/video/screenkey { };
 
-  quazip_qt4 = libsForQt5.quazip.override {
-    qtbase = qt4;
-  };
-
   scfbuild = python3.pkgs.callPackage ../tools/misc/scfbuild { };
 
   scriptaculous = callPackage ../development/libraries/scriptaculous { };
@@ -8233,6 +8538,8 @@ in
 
   sdl-jstest = callPackage ../tools/misc/sdl-jstest { };
 
+  senpai = callPackage ../applications/networking/irc/senpai { };
+
   skim = callPackage ../tools/misc/skim { };
 
   seaweedfs = callPackage ../applications/networking/seaweedfs { };
@@ -8378,6 +8685,8 @@ in
     tex = texlive.combined.scheme-small;
   };
 
+  skytemple = callPackage ../applications/misc/skytemple {};
+
   sleuthkit = callPackage ../tools/system/sleuthkit {};
 
   # Not updated upstream since 2018, doesn't support qt newer than 5.12
@@ -8420,6 +8729,8 @@ in
 
   snapcast = callPackage ../applications/audio/snapcast { };
 
+  snapdragon-profiler = callPackage ../tools/graphics/snapdragon-profiler { };
+
   sng = callPackage ../tools/graphics/sng {
     libpng = libpng12;
   };
@@ -8515,7 +8826,7 @@ in
 
   spacebar = callPackage ../os-specific/darwin/spacebar {
     inherit (darwin.apple_sdk.frameworks)
-      Carbon Cocoa ScriptingBridge;
+      Carbon Cocoa ScriptingBridge SkyLight;
   };
 
   spaceFM = callPackage ../applications/misc/spacefm { };
@@ -8613,6 +8924,8 @@ in
 
   staticjinja = with python3.pkgs; toPythonApplication staticjinja;
 
+  stevenblack-blocklist  = callPackage ../tools/networking/stevenblack-blocklist { };
+
   stress = callPackage ../tools/system/stress { };
 
   stress-ng = callPackage ../tools/system/stress-ng { };
@@ -8629,9 +8942,7 @@ in
 
   stunnel = callPackage ../tools/networking/stunnel { };
 
-  stutter = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.stutter) (drv: {
-    preCheck = "export PATH=dist/build/stutter:$PATH";
-  });
+  stutter = haskell.lib.justStaticExecutables haskellPackages.stutter;
 
   strongswan    = callPackage ../tools/networking/strongswan { };
   strongswanTNC = strongswan.override { enableTNC = true; };
@@ -8710,6 +9021,9 @@ in
     inherit (darwin.apple_sdk.frameworks) IOKit;
   };
 
+  inherit (callPackages ../applications/networking/taler { })
+    taler-exchange taler-merchant;
+
   tangram = callPackage ../applications/networking/instant-messengers/tangram { };
 
   t1utils = callPackage ../tools/misc/t1utils { };
@@ -8768,6 +9082,8 @@ in
     pythonPackages = python3Packages;
   };
 
+  telepresence2 = callPackage ../tools/networking/telepresence2 { };
+
   teler = callPackage ../tools/security/teler { };
 
   termius = callPackage ../applications/networking/termius { };
@@ -8952,10 +9268,14 @@ in
 
   trezor-suite = callPackage ../applications/blockchains/trezor-suite { };
 
-  trunk = callPackage ../development/tools/trunk { };
+  trunk = callPackage ../development/tools/trunk {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
 
   tthsum = callPackage ../applications/misc/tthsum { };
 
+  ttp = with python3.pkgs; toPythonApplication ttp;
+
   chaps = callPackage ../tools/security/chaps { };
 
   trace-cmd = callPackage ../os-specific/linux/trace-cmd { };
@@ -9042,7 +9362,7 @@ in
 
   twitterBootstrap = callPackage ../development/web/twitter-bootstrap {};
 
-  twtxt = callPackage ../applications/networking/twtxt { };
+  twtxt = python3Packages.callPackage ../applications/networking/twtxt { };
 
   txr = callPackage ../tools/misc/txr { stdenv = clangStdenv; };
 
@@ -9086,6 +9406,8 @@ in
 
   uif2iso = callPackage ../tools/cd-dvd/uif2iso { };
 
+  uivonim = callPackage ../applications/editors/uivonim { };
+
   umlet = callPackage ../tools/misc/umlet { };
 
   unetbootin = callPackage ../tools/cd-dvd/unetbootin { };
@@ -9102,6 +9424,8 @@ in
 
   untrunc-anthwlock = callPackage ../tools/video/untrunc-anthwlock { };
 
+  unvanquished = callPackage ../games/unvanquished { };
+
   up = callPackage ../tools/misc/up { };
 
   upterm = callPackage ../tools/misc/upterm { };
@@ -9128,6 +9452,8 @@ in
 
   usbmuxd = callPackage ../tools/misc/usbmuxd {};
 
+  ustreamer = callPackage ../applications/video/ustreamer { };
+
   usync = callPackage ../applications/misc/usync { };
 
   uwc = callPackage ../tools/text/uwc { };
@@ -9242,10 +9568,6 @@ in
     SDL = SDL_sixel;
   };
 
-  openconnect_pa = callPackage ../tools/networking/openconnect_pa {
-    openssl = null;
-  };
-
   openconnect = openconnect_gnutls;
 
   openconnect_openssl = callPackage ../tools/networking/openconnect {
@@ -9256,6 +9578,11 @@ in
     openssl = null;
   };
 
+  openconnect_head = callPackage ../tools/networking/openconnect {
+    head = true;
+    openssl = null;
+  };
+
   ding-libs = callPackage ../tools/misc/ding-libs { };
 
   sssd = callPackage ../os-specific/linux/sssd {
@@ -9403,7 +9730,9 @@ in
 
   tre = callPackage ../development/libraries/tre { };
 
-  tremor-rs = callPackage ../tools/misc/tremor-rs { };
+  tremor-rs = callPackage ../tools/misc/tremor-rs {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   ts = callPackage ../tools/system/ts { };
 
@@ -9553,7 +9882,9 @@ in
   waf = callPackage ../development/tools/build-managers/waf { python = python3; };
   wafHook = callPackage ../development/tools/build-managers/wafHook { };
 
-  wagyu = callPackage ../tools/misc/wagyu { };
+  wagyu = callPackage ../tools/misc/wagyu {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   wakelan = callPackage ../tools/networking/wakelan { };
 
@@ -9591,10 +9922,15 @@ in
 
   whsniff = callPackage ../applications/networking/sniffers/whsniff { };
 
-  wiiuse = callPackage ../development/libraries/wiiuse { };
+  wiiuse = callPackage ../development/libraries/wiiuse {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) Foundation IOBluetooth;
+  };
 
   woeusb = callPackage ../tools/misc/woeusb { };
 
+  wslu = callPackage ../tools/system/wslu { };
+
   chase = callPackage ../tools/system/chase { };
 
   wicd = callPackage ../tools/networking/wicd { };
@@ -9617,6 +9953,8 @@ in
 
   wpgtk = callPackage ../tools/X11/wpgtk { };
 
+  wrap = callPackage ../tools/text/wrap { };
+
   wring = nodePackages.wring;
 
   wrk = callPackage ../tools/networking/wrk { };
@@ -9722,7 +10060,7 @@ in
 
   xxv = callPackage ../tools/misc/xxv {};
 
-  xvfb_run = callPackage ../tools/misc/xvfb-run { inherit (texFunctions) fontsConf; };
+  xvfb-run = callPackage ../tools/misc/xvfb-run { inherit (texFunctions) fontsConf; };
 
   xvkbd = callPackage ../tools/X11/xvkbd {};
 
@@ -9765,6 +10103,8 @@ in
 
   yj = callPackage ../development/tools/yj { };
 
+  zprint = callPackage ../development/tools/zprint { };
+
   yle-dl = callPackage ../tools/misc/yle-dl {};
 
   you-get = python3Packages.callPackage ../tools/misc/you-get { };
@@ -9785,6 +10125,13 @@ in
     inherit (darwin.apple_sdk.frameworks) IOKit;
   };
 
+  # Nvidia support does not require any propietary libraries, so CI can build it.
+  # Note that when enabling this unconditionally, non-nvidia users will always have an empty "GPU" section.
+  zenith-nvidia = callPackage ../tools/system/zenith {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+    nvidiaSupport = true;
+  };
+
   zerotierone = callPackage ../tools/networking/zerotierone { };
 
   zerofree = callPackage ../tools/filesystems/zerofree { };
@@ -9857,6 +10204,8 @@ in
 
   zsh-you-should-use = callPackage ../shells/zsh/zsh-you-should-use { };
 
+  zsh-z = callPackage ../shells/zsh/zsh-z { };
+
   zssh = callPackage ../tools/networking/zssh { };
 
   zstd = callPackage ../tools/compression/zstd {
@@ -9877,15 +10226,21 @@ in
 
   any-nix-shell = callPackage ../shells/any-nix-shell { };
 
-  bash = lowPrio (callPackage ../shells/bash/4.4.nix { });
-  bash_5 = lowPrio (callPackage ../shells/bash/5.1.nix { });
+  bash = lowPrio (callPackage ../shells/bash/4.4.nix {
+    binutils = stdenv.cc.bintools;
+  });
+  bash_5 = lowPrio (callPackage ../shells/bash/5.1.nix {
+    binutils = stdenv.cc.bintools;
+  });
   bashInteractive_5 = lowPrio (callPackage ../shells/bash/5.1.nix {
+    binutils = stdenv.cc.bintools;
     interactive = true;
     withDocs = true;
   });
 
   # WARNING: this attribute is used by nix-shell so it shouldn't be removed/renamed
   bashInteractive = callPackage ../shells/bash/4.4.nix {
+    binutils = stdenv.cc.bintools;
     interactive = true;
     withDocs = true;
   };
@@ -9896,6 +10251,8 @@ in
 
   nix-bash-completions = callPackage ../shells/bash/nix-bash-completions { };
 
+  undistract-me = callPackage ../shells/bash/undistract-me { };
+
   dash = callPackage ../shells/dash { };
 
   dasht = callPackage ../tools/misc/dasht { };
@@ -10089,12 +10446,9 @@ in
   ats = callPackage ../development/compilers/ats { };
   ats2 = callPackage ../development/compilers/ats2 { };
 
-  avra = callPackage ../development/compilers/avra { };
+  ats-acc = callPackage ../development/tools/ats-acc { };
 
-  avian = callPackage ../development/compilers/avian {
-    inherit (darwin.apple_sdk.frameworks) CoreServices Foundation;
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  };
+  avra = callPackage ../development/compilers/avra { };
 
   bigloo = callPackage ../development/compilers/bigloo { };
 
@@ -10146,6 +10500,7 @@ in
   chez-matchable = callPackage ../development/chez-modules/chez-matchable { };
 
   clang = llvmPackages.clang;
+  libclang = llvmPackages.libclang;
   clang-manpages = llvmPackages.clang-manpages;
 
   clang-sierraHack = clang.override {
@@ -10280,21 +10635,37 @@ in
   gerbil-support = callPackage ../development/compilers/gerbil/gerbil-support.nix { };
   gerbilPackages-unstable = gerbil-support.gerbilPackages-unstable; # NB: don't recurseIntoAttrs for (unstable!) libraries
 
-  gccFun = callPackage (if (with stdenv.targetPlatform; isVc4 || libc == "relibc")
-    then ../development/compilers/gcc/6
-    else ../development/compilers/gcc/10);
-  gcc = if (with stdenv.targetPlatform; isVc4 || libc == "relibc")
-    then gcc6 else
-      if stdenv.targetPlatform.isAarch64 then gcc9 else gcc10;
+  inherit (let
+      num =
+        if (with stdenv.targetPlatform; isVc4 || libc == "relibc") then 6
+        else if (stdenv.targetPlatform.isAarch64 && stdenv.isDarwin) then 11
+        else if stdenv.targetPlatform.isAarch64 then 9
+        else 10;
+      numS = toString num;
+    in {
+      gcc = pkgs.${"gcc${numS}"};
+      gccFun = callPackage (../development/compilers/gcc + "/${numS}");
+    }) gcc gccFun;
   gcc-unwrapped = gcc.cc;
 
-  gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
-    allowedRequisites = null;
-    cc = gcc;
-    # Remove libcxx/libcxxabi, and add clang for AS if on darwin (it uses
-    # clang's internal assembler).
-    extraBuildInputs = lib.optional stdenv.hostPlatform.isDarwin clang.cc;
-  };
+  wrapNonDeterministicGcc = stdenv: ccWrapper:
+    if ccWrapper.isGNU then ccWrapper.overrideAttrs(old: {
+      cc = old.cc.override {
+        reproducibleBuild = false;
+        profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+      };
+    }) else ccWrapper;
+
+  gccStdenv =
+    if stdenv.cc.isGNU
+    then stdenv
+    else stdenv.override {
+      cc = buildPackages.gcc;
+      allowedRequisites = null;
+      # Remove libcxx/libcxxabi, and add clang for AS if on darwin (it uses
+      # clang's internal assembler).
+      extraBuildInputs = lib.optional stdenv.hostPlatform.isDarwin clang.cc;
+    };
 
   gcc49Stdenv = overrideCC gccStdenv buildPackages.gcc49;
   gcc6Stdenv = overrideCC gccStdenv buildPackages.gcc6;
@@ -10302,6 +10673,12 @@ in
   gcc8Stdenv = overrideCC gccStdenv buildPackages.gcc8;
   gcc9Stdenv = overrideCC gccStdenv buildPackages.gcc9;
   gcc10Stdenv = overrideCC gccStdenv buildPackages.gcc10;
+  gcc11Stdenv = overrideCC gccStdenv buildPackages.gcc11;
+
+  # This is not intended for use in nixpkgs but for providing a faster-running
+  # compiler to nixpkgs users by building gcc with reproducibility-breaking
+  # profile-guided optimizations
+  fastStdenv = overrideCC gccStdenv (wrapNonDeterministicGcc gccStdenv buildPackages.gcc10);
 
   wrapCCMulti = cc:
     if stdenv.targetPlatform.system == "x86_64-linux" then let
@@ -10346,39 +10723,35 @@ in
     stripped = false;
   }));
 
-  crossLibcStdenv = overrideCC stdenv
-    (if stdenv.hostPlatform.useLLVM or false
-     then buildPackages.llvmPackages_8.lldClangNoLibc
-     else buildPackages.gccCrossStageStatic);
+  gccCrossLibcStdenv = overrideCC stdenv buildPackages.gccCrossStageStatic;
+
+  crossLibcStdenv =
+    if stdenv.hostPlatform.useLLVM or false || stdenv.hostPlatform.isDarwin
+    then overrideCC stdenv buildPackages.llvmPackages.clangNoLibc
+    else gccCrossLibcStdenv;
 
   # The GCC used to build libc for the target platform. Normal gccs will be
   # built with, and use, that cross-compiled libc.
   gccCrossStageStatic = assert stdenv.targetPlatform != stdenv.hostPlatform; let
-    libcCross1 =
-      if stdenv.targetPlatform.libc == "msvcrt" then targetPackages.windows.mingw_w64_headers
-      else if stdenv.targetPlatform.libc == "libSystem" then darwin.xcode
-      else if stdenv.targetPlatform.libc == "nblibc" then netbsd.headers
-      else null;
-    binutils1 = wrapBintoolsWith {
-      bintools = binutils-unwrapped;
-      libc = libcCross1;
-    };
+    libcCross1 = binutilsNoLibc.libc;
     in wrapCCWith {
       cc = gccFun {
         # copy-pasted
         inherit noSysDirs;
-        # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-        profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+
+        reproducibleBuild = true;
+        profiledCompiler = false;
+
         isl = if !stdenv.isDarwin then isl_0_20 else null;
 
         # just for stage static
         crossStageStatic = true;
         langCC = false;
         libcCross = libcCross1;
-        targetPackages.stdenv.cc.bintools = binutils1;
+        targetPackages.stdenv.cc.bintools = binutilsNoLibc;
         enableShared = false;
       };
-      bintools = binutils1;
+      bintools = binutilsNoLibc;
       libc = libcCross1;
       extraPackages = [];
   };
@@ -10386,8 +10759,8 @@ in
   gcc48 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.8 {
     inherit noSysDirs;
 
-    # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-    profiledCompiler = with stdenv; (!isSunOS && !isDarwin && (isi686 || isx86_64));
+    reproducibleBuild = true;
+    profiledCompiler = false;
 
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
@@ -10400,8 +10773,8 @@ in
   gcc49 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.9 {
     inherit noSysDirs;
 
-    # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-    profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+    reproducibleBuild = true;
+    profiledCompiler = false;
 
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
@@ -10414,8 +10787,8 @@ in
   gcc6 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/6 {
     inherit noSysDirs;
 
-    # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-    profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+    reproducibleBuild = true;
+    profiledCompiler = false;
 
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
@@ -10433,8 +10806,8 @@ in
   gcc7 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/7 {
     inherit noSysDirs;
 
-    # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-    profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+    reproducibleBuild = true;
+    profiledCompiler = false;
 
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
@@ -10448,8 +10821,8 @@ in
   gcc8 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/8 {
     inherit noSysDirs;
 
-    # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-    profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+    reproducibleBuild = true;
+    profiledCompiler = false;
 
     libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
     threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
@@ -10463,8 +10836,8 @@ in
   gcc9 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/9 {
     inherit noSysDirs;
 
-    # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-    profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+    reproducibleBuild = true;
+    profiledCompiler = false;
 
     enableLTO = !stdenv.isi686;
 
@@ -10477,8 +10850,22 @@ in
   gcc10 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/10 {
     inherit noSysDirs;
 
-    # PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
-    profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
+    reproducibleBuild = true;
+    profiledCompiler = false;
+
+    enableLTO = !stdenv.isi686;
+
+    libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
+    threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
+
+    isl = if !stdenv.isDarwin then isl_0_20 else null;
+  }));
+
+  gcc11 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/11 {
+    inherit noSysDirs;
+
+    reproducibleBuild = true;
+    profiledCompiler = false;
 
     enableLTO = !stdenv.isi686;
 
@@ -10488,9 +10875,10 @@ in
     isl = if !stdenv.isDarwin then isl_0_20 else null;
   }));
 
-  gcc_latest = gcc10;
+  gcc_latest = gcc11;
 
-  gfortran = gfortran9;
+  # aarch64-darwin doesn't support earlier gcc
+  gfortran = if (stdenv.isDarwin && stdenv.isAarch64) then gfortran11 else gfortran9;
 
   gfortran48 = wrapCC (gcc48.cc.override {
     name = "gfortran";
@@ -10548,6 +10936,14 @@ in
     profiledCompiler = false;
   });
 
+  gfortran11 = wrapCC (gcc11.cc.override {
+    name = "gfortran";
+    langFortran = true;
+    langCC = false;
+    langC = false;
+    profiledCompiler = false;
+  });
+
   libgccjit = gcc.cc.override {
     name = "libgccjit";
     langFortran = false;
@@ -10570,7 +10966,8 @@ in
     inherit (gnome2) libart_lgpl;
   });
 
-  gnat = gnat9;
+  # aarch64-darwin doesn't support earlier gcc
+  gnat = if (stdenv.isDarwin && stdenv.isAarch64) then gnat11 else gnat9;
 
   gnat6 = wrapCC (gcc6.cc.override {
     name = "gnat";
@@ -10599,6 +10996,15 @@ in
     gnatboot = gnat6;
   });
 
+  gnat11 = wrapCC (gcc11.cc.override {
+    name = "gnat";
+    langC = true;
+    langCC = false;
+    langAda = true;
+    profiledCompiler = false;
+    gnatboot = gnat6;
+  });
+
   gnatboot = wrapCC (callPackage ../development/compilers/gnatboot { });
 
   gnu-smalltalk = callPackage ../development/compilers/gnu-smalltalk { };
@@ -10720,8 +11126,6 @@ in
 
   fsharp = callPackage ../development/compilers/fsharp { };
 
-  fsharp41 = callPackage ../development/compilers/fsharp41 { mono = mono6; };
-
   fstar = callPackage ../development/compilers/fstar {
     ocamlPackages = ocaml-ng.ocamlPackages_4_07;
   };
@@ -10770,6 +11174,10 @@ in
 
   gprolog = callPackage ../development/compilers/gprolog { };
 
+  gwe = callPackage ../tools/misc/gwe {
+    nvidia_x11 = linuxPackages.nvidia_x11;
+  };
+
   gwt240 = callPackage ../development/compilers/gwt/2.4.0.nix { };
 
   idrisPackages = dontRecurseIntoAttrs (callPackage ../development/idris-modules {
@@ -10976,21 +11384,24 @@ in
 
   julia_10 = callPackage ../development/compilers/julia/1.0.nix {
     gmp = gmp6;
-    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
     libgit2 = libgit2_0_27;
   };
 
-  julia_13 = callPackage ../development/compilers/julia/1.3.nix {
-    gmp = gmp6;
-    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
-  };
-
   julia_15 = callPackage ../development/compilers/julia/1.5.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
   };
 
-  julia_1 = julia_10;
-  julia = julia_15;
+  julia-lts = julia_10;
+  julia-stable = julia_15;
+  julia = julia-lts;
+
+  julia_10-bin = callPackage ../development/compilers/julia/1.0-bin.nix { };
+  julia_16-bin = callPackage ../development/compilers/julia/1.6-bin.nix { };
+
+  julia-lts-bin = julia_10-bin;
+  julia-stable-bin = julia_16-bin;
+  julia-bin = julia-lts-bin;
 
   jwasm =  callPackage ../development/compilers/jwasm { };
 
@@ -11058,6 +11469,7 @@ in
   lldb_12 = llvmPackages_12.lldb;
 
   llvm = llvmPackages.llvm;
+  libllvm = llvmPackages.libllvm;
   llvm-manpages = llvmPackages.llvm-manpages;
 
   llvm_12 = llvmPackages_12.llvm;
@@ -11069,17 +11481,22 @@ in
   llvm_6  = llvmPackages_6.llvm;
   llvm_5  = llvmPackages_5.llvm;
 
-  llvmPackages = with targetPlatform;
-    if isDarwin then
-      llvmPackages_7
-    else if isFreeBSD then
-      llvmPackages_7
-    else if isLinux then
-      llvmPackages_7
-    else if isWasm then
-      llvmPackages_8
-    else
-      llvmPackages_latest;
+  llvmPackages = let
+    # This returns the minimum supported version for the platform. The
+    # assumption is that or any later version is good.
+    choose = platform:
+      /**/ if platform.isDarwin then (if platform.isAarch64 then 11 else 7)
+      else if platform.isFreeBSD then 7
+      else if platform.isAndroid then 12
+      else if platform.isLinux then (if platform.isRiscV then 9 else 7)
+      else if platform.isWasm then 8
+      else 11; # latest
+    # We take the "max of the mins". Why? Since those are lower bounds of the
+    # supported version set, this is like intersecting those sets and then
+    # taking the min bound of that.
+    minSupported = toString (lib.trivial.max (choose stdenv.hostPlatform) (choose
+      stdenv.targetPlatform));
+  in pkgs.${"llvmPackages_${minSupported}"};
 
   llvmPackages_5 = recurseIntoAttrs (callPackage ../development/compilers/llvm/5 {
     inherit (stdenvAdapters) overrideCC;
@@ -11114,7 +11531,7 @@ in
   llvmPackages_10 = recurseIntoAttrs (callPackage ../development/compilers/llvm/10 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_10.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_10.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_10.libraries or llvmPackages_10.libraries;
   });
 
   llvmPackages_11 = recurseIntoAttrs (callPackage ../development/compilers/llvm/11 ({
@@ -11152,15 +11569,15 @@ in
   mint = callPackage ../development/compilers/mint { };
 
   mitscheme = callPackage ../development/compilers/mit-scheme {
-   texLive = texlive.combine { inherit (texlive) scheme-small; };
-   texinfo = texinfo5;
-   xlibsWrapper = null;
+    texLive = texlive.combine { inherit (texlive) scheme-small; };
+    texinfo = texinfo5;
+    xlibsWrapper = null;
   };
 
   mitschemeX11 = mitscheme.override {
-   texLive = texlive.combine { inherit (texlive) scheme-small; };
-   texinfo = texinfo5;
-   enableX11 = true;
+    texLive = texlive.combine { inherit (texlive) scheme-small; };
+    texinfo = texinfo5;
+    enableX11 = true;
   };
 
   miranda = callPackage ../development/compilers/miranda {};
@@ -11177,7 +11594,7 @@ in
 
   mlton = mlton20180207;
 
-  mono = mono5;
+  mono = mono6;
 
   mono4 = lowPrio (callPackage ../development/compilers/mono/4.nix {
     inherit (darwin) libobjc;
@@ -11196,9 +11613,9 @@ in
 
   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
 
-  roslyn = callPackage ../development/compilers/roslyn { mono = mono6; };
+  roslyn = callPackage ../development/compilers/roslyn { };
 
-  msbuild = callPackage ../development/tools/build-managers/msbuild { mono = mono6; };
+  msbuild = callPackage ../development/tools/build-managers/msbuild { };
 
   mosml = callPackage ../development/compilers/mosml { };
 
@@ -11248,7 +11665,7 @@ in
     ocamlformat # latest version
     ocamlformat_0_11_0 ocamlformat_0_12 ocamlformat_0_13_0 ocamlformat_0_14_0
     ocamlformat_0_14_1 ocamlformat_0_14_2 ocamlformat_0_14_3 ocamlformat_0_15_0
-    ocamlformat_0_15_1 ocamlformat_0_16_0 ocamlformat_0_17_0;
+    ocamlformat_0_15_1 ocamlformat_0_16_0 ocamlformat_0_17_0 ocamlformat_0_18_0;
 
   orc = callPackage ../development/compilers/orc { };
 
@@ -11279,13 +11696,15 @@ in
 
   open-watcom-bin = callPackage ../development/compilers/open-watcom-bin { };
 
+  passerine = callPackage ../development/compilers/passerine { };
+
   pforth = callPackage ../development/compilers/pforth {};
 
   picat = callPackage ../development/compilers/picat { };
 
   ponyc = callPackage ../development/compilers/ponyc {
     # Upstream pony has dropped support for versions compiled with gcc.
-    stdenv = clangStdenv;
+    stdenv = llvmPackages_9.stdenv;
   };
 
   pony-corral = callPackage ../development/compilers/ponyc/pony-corral.nix { };
@@ -11341,19 +11760,21 @@ in
   # So this commit doesn't remove the 1.45.2 release.
   rust_1_45 = callPackage ../development/compilers/rust/1_45.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+    llvm_10 = llvmPackages_10.libllvm;
   };
-  rust_1_51 = callPackage ../development/compilers/rust/1_51.nix {
+  rust_1_52 = callPackage ../development/compilers/rust/1_52.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+    llvm_11 = llvmPackages_11.libllvm;
   };
-  rust = rust_1_51;
+  rust = rust_1_52;
 
   mrustc = callPackage ../development/compilers/mrustc { };
   mrustc-minicargo = callPackage ../development/compilers/mrustc/minicargo.nix { };
   mrustc-bootstrap = callPackage ../development/compilers/mrustc/bootstrap.nix { };
 
   rustPackages_1_45 = rust_1_45.packages.stable;
-  rustPackages_1_51 = rust_1_51.packages.stable;
-  rustPackages = rustPackages_1_51;
+  rustPackages_1_52 = rust_1_52.packages.stable;
+  rustPackages = rustPackages_1_52;
 
   inherit (rustPackages) cargo clippy rustc rustPlatform;
 
@@ -11380,6 +11801,10 @@ in
   cargo-audit = callPackage ../tools/package-management/cargo-audit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  cargo-bisect-rustc = callPackage ../development/tools/rust/cargo-bisect-rustc {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+  cargo-bitbake = callPackage ../development/tools/rust/cargo-bitbake { };
   cargo-c = callPackage ../development/tools/rust/cargo-c {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
@@ -11399,6 +11824,7 @@ in
   cargo-release = callPackage ../tools/package-management/cargo-release {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  cargo-rr = callPackage ../development/tools/rust/cargo-rr { };
   cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin { };
   cargo-update = callPackage ../tools/package-management/cargo-update {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -11422,7 +11848,9 @@ in
   cargo-embed = callPackage ../development/tools/rust/cargo-embed { };
   cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
   cargo-feature = callPackage ../development/tools/rust/cargo-feature { };
-  cargo-flash = callPackage ../development/tools/rust/cargo-flash { };
+  cargo-flash = callPackage ../development/tools/rust/cargo-flash {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-fund = callPackage ../development/tools/rust/cargo-fund {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -11439,6 +11867,9 @@ in
   cargo-make = callPackage ../development/tools/rust/cargo-make {
     inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
+  cargo-msrv = callPackage ../development/tools/rust/cargo-msrv {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-play = callPackage ../development/tools/rust/cargo-play { };
   cargo-raze = callPackage ../development/tools/rust/cargo-raze {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -11492,6 +11923,9 @@ in
   rustup = callPackage ../development/tools/rust/rustup {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
+  rustup-toolchain-install-master = callPackage ../development/tools/rust/rustup-toolchain-install-master {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   sagittarius-scheme = callPackage ../development/compilers/sagittarius-scheme {};
 
@@ -11502,6 +11936,8 @@ in
   sbcl_2_1_2 = callPackage ../development/compilers/sbcl/2.1.2.nix {};
   sbcl = sbcl_2_1_2;
 
+  roswell = callPackage ../development/tools/roswell/default.nix { };
+
   scala_2_10 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.10"; jre = jdk8; };
   scala_2_11 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.11"; jre = jdk8; };
   scala_2_12 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.12"; jre = jdk8; };
@@ -11521,6 +11957,8 @@ in
     gputils = null;
   };
 
+  seren = callPackage ../applications/networking/instant-messengers/seren { };
+
   serialdv = callPackage ../development/libraries/serialdv {  };
 
   serpent = callPackage ../development/compilers/serpent { };
@@ -11532,9 +11970,7 @@ in
 
   smlpkg = callPackage ../tools/package-management/smlpkg { };
 
-  solc = solc_0_8;
-  solc_0_8 = callPackage ../development/compilers/solc { };
-  solc_0_7 = callPackage ../development/compilers/solc/0.7.nix { };
+  solc = callPackage ../development/compilers/solc { };
 
   souffle = callPackage ../development/compilers/souffle {
     autoreconfHook = buildPackages.autoreconfHook269;
@@ -11604,7 +12040,9 @@ in
 
   urn = callPackage ../development/compilers/urn { };
 
-  urweb = callPackage ../development/compilers/urweb { };
+  urweb = callPackage ../development/compilers/urweb {
+    icu = icu67;
+  };
 
   vlang = callPackage ../development/compilers/vlang { };
 
@@ -11617,6 +12055,7 @@ in
     vala_0_46
     vala_0_48
     vala_0_50
+    vala_0_52
     vala;
 
   vyper = with python3Packages; toPythonApplication vyper;
@@ -11669,6 +12108,7 @@ in
     noLibc = (self.libc == null);
 
     inherit bintools libc;
+    inherit (darwin) postLinkSignHook signingUtils;
   } // extraArgs; in self);
 
   yaml-language-server = nodePackages.yaml-language-server;
@@ -11746,26 +12186,24 @@ in
   duktape = callPackage ../development/interpreters/duktape { };
 
   evcxr = callPackage ../development/interpreters/evcxr {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
 
   beam = callPackage ./beam-packages.nix { };
   beam_nox = callPackage ./beam-packages.nix { wxSupport = false; };
 
   inherit (beam.interpreters)
-    erlang erlangR23 erlangR22 erlangR21 erlangR20 erlangR19 erlangR18
+    erlang erlangR24 erlangR23 erlangR22 erlangR21
     erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
-    elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7
+    elixir elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7
     elixir_ls;
 
   erlang_nox = beam_nox.interpreters.erlang;
 
   inherit (beam.packages.erlang)
-    rebar rebar3
-    fetchHex beamPackages
-    relxExe;
-
-  inherit (beam.packages.erlangR19) cuter lfe_1_2;
+    erlang-ls
+    rebar rebar3 rebar3WithPlugins
+    fetchHex beamPackages;
 
   inherit (beam.packages.erlangR21) lfe lfe_1_3;
 
@@ -11783,7 +12221,9 @@ in
 
   io = callPackage ../development/interpreters/io { };
 
-  j = callPackage ../development/interpreters/j {};
+  j = callPackage ../development/interpreters/j {
+    stdenv = clangStdenv;
+  };
 
   janet = callPackage ../development/interpreters/janet {};
 
@@ -11905,7 +12345,7 @@ in
   # PHP interpreters, packages and extensions.
   #
   # Set default PHP interpreter, extensions and packages
-  php = php74;
+  php = php80;
   phpExtensions = php.extensions;
   phpPackages = php.packages;
 
@@ -11923,13 +12363,6 @@ in
   php74Extensions = recurseIntoAttrs php74.extensions;
   php74Packages = recurseIntoAttrs php74.packages;
 
-  # Import PHP73 interpreter, extensions and packages
-  php73 = callPackage ../development/interpreters/php/7.3.nix {
-    stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
-  };
-  php73Extensions = recurseIntoAttrs php73.extensions;
-  php73Packages = recurseIntoAttrs php73.packages;
-
 
   picoc = callPackage ../development/interpreters/picoc {};
 
@@ -12022,8 +12455,12 @@ in
   pypy27Packages = pypy27.pkgs;
   pypy3Packages = pypy3.pkgs;
 
+  py3c = callPackage ../development/libraries/py3c { };
+
   pythonManylinuxPackages = callPackage ./../development/interpreters/python/manylinux { };
 
+  pythonCondaPackages = callPackage ./../development/interpreters/python/conda { };
+
   update-python-libraries = callPackage ../development/interpreters/python/update-python-libraries { };
 
   # Should eventually be moved inside Python interpreters.
@@ -12129,8 +12566,8 @@ in
     ruby_2_7
     ruby_3_0;
 
-  ruby = ruby_2_6;
-  rubyPackages = rubyPackages_2_6;
+  ruby = ruby_2_7;
+  rubyPackages = rubyPackages_2_7;
 
   rubyPackages_1_9 = recurseIntoAttrs ruby_1_9.gems;
   rubyPackages_2_0 = recurseIntoAttrs ruby_2_0.gems;
@@ -12164,7 +12601,6 @@ in
 
   sparkleshare = callPackage ../applications/version-management/sparkleshare { };
 
-  spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { };
   spidermonkey_68 = callPackage ../development/interpreters/spidermonkey/68.nix { };
   spidermonkey_78 = callPackage ../development/interpreters/spidermonkey/78.nix { };
 
@@ -12260,6 +12696,8 @@ in
     binutils-arm-embedded = pkgsCross.arm-embedded.buildPackages.binutils;
   };
 
+  inav-blackbox-tools = callPackage ../tools/misc/inav-blackbox-tools { };
+
   msp430GccSupport = callPackage ../development/misc/msp430/gcc-support.nix { };
 
   msp430Newlib      = callPackage ../development/misc/msp430/newlib.nix { };
@@ -12268,6 +12706,9 @@ in
     newlib = newlibCross;
   };
 
+  mspds = callPackage ../development/misc/msp430/mspds { };
+  mspds-bin = callPackage ../development/misc/msp430/mspds/binary.nix { };
+
   mspdebug = callPackage ../development/misc/msp430/mspdebug.nix { };
 
   vc4-newlib = callPackage ../development/misc/vc4/newlib.nix {};
@@ -12312,6 +12753,8 @@ in
     alloy5
     alloy;
 
+  altair = callPackage ../development/tools/altair-graphql-client { };
+
   ameba = callPackage ../development/tools/ameba { };
 
   augeas = callPackage ../tools/system/augeas { };
@@ -12320,7 +12763,8 @@ in
     ansible
     ansible_2_8
     ansible_2_9
-    ansible_2_10;
+    ansible_2_10
+    ansible_2_11;
 
   ansible-lint = with python3.pkgs; toPythonApplication ansible-lint;
 
@@ -12368,18 +12812,18 @@ in
   aws-adfs = with python3Packages; toPythonApplication aws-adfs;
 
   inherit (callPackages ../development/tools/electron { })
-    electron electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9 electron_10 electron_11 electron_12;
+    electron electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9 electron_10 electron_11 electron_12 electron_13;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
-  autoconf = autoconf270;
+  autoconf = autoconf271;
 
   autoconf-archive = callPackage ../development/tools/misc/autoconf-archive { };
 
   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
   autoconf264 = callPackage ../development/tools/misc/autoconf/2.64.nix { };
   autoconf269 = callPackage ../development/tools/misc/autoconf/2.69.nix { };
-  autoconf270 = callPackage ../development/tools/misc/autoconf { };
+  autoconf271 = callPackage ../development/tools/misc/autoconf { };
 
   autocutsel = callPackage ../tools/X11/autocutsel{ };
 
@@ -12492,6 +12936,41 @@ in
       gold = false;
     };
   });
+  binutilsNoLibc = wrapBintoolsWith {
+    bintools = binutils-unwrapped;
+    libc = preLibcCrossHeaders;
+  };
+
+  # Here we select the default bintools implementations to be used.  Note when
+  # cross compiling these are used not for this stage but the *next* stage.
+  # That is why we choose using this stage's target platform / next stage's
+  # host platform.
+  #
+  # Because this is the *next* stages choice, it's a bit non-modular to put
+  # here. In theory, bootstraping is supposed to not be a chain but at tree,
+  # where each stage supports many "successor" stages, like multiple possible
+  # futures. We don't have a better alternative, but with this downside in
+  # mind, please be judicious when using this attribute. E.g. for building
+  # things in *this* stage you should use probably `stdenv.cc.bintools` (from a
+  # default or alternate `stdenv`), at build time, and try not to "force" a
+  # specific bintools at runtime at all.
+  #
+  # In other words, try to only use this in wrappers, and only use those
+  # wrappers from the next stage.
+  bintools-unwrapped = let
+    inherit (stdenv.targetPlatform) linker;
+  in     if linker == "lld"     then llvmPackages.bintools-unwrapped
+    else if linker == "cctools" then darwin.binutils-unwrapped
+    else if linker == "bfd"     then binutils-unwrapped
+    else if linker == "gold"    then binutils-unwrapped
+    else null;
+  bintoolsNoLibc = wrapBintoolsWith {
+    bintools = bintools-unwrapped;
+    libc = preLibcCrossHeaders;
+  };
+  bintools = wrapBintoolsWith {
+    bintools = bintools-unwrapped;
+  };
 
   bison = callPackage ../development/tools/parsing/bison { };
 
@@ -12534,7 +13013,7 @@ in
 
   libbpf = callPackage ../os-specific/linux/libbpf { };
 
-  bpftool = callPackage ../os-specific/linux/bpftool { };
+  bpftools = callPackage ../os-specific/linux/bpftools { };
 
   bpm-tools = callPackage ../tools/audio/bpm-tools { };
 
@@ -12583,12 +13062,12 @@ in
       inherit (stdenv) cc;
     };
 
-  ccacheStdenv = lowPrio (makeOverridable ({ extraConfig, stdenv }:
-    overrideCC stdenv (buildPackages.ccacheWrapper.override {
-      inherit extraConfig;
+  ccacheStdenv = lowPrio (makeOverridable ({ stdenv, ... } @ extraArgs:
+    overrideCC stdenv (buildPackages.ccacheWrapper.override ({
       inherit (stdenv) cc;
-    })) {
-      extraConfig = "";
+    } // lib.optionalAttrs (builtins.hasAttr "extraConfig" extraArgs) {
+      extraConfig = extraArgs.extraConfig;
+    }))) {
       inherit stdenv;
     });
 
@@ -12661,7 +13140,6 @@ in
   cmakeCurses = cmake.override { useNcurses = true; };
 
   cmakeWithGui = cmakeCurses.override { withQt5 = true; };
-  cmakeWithQt4Gui = cmakeCurses.override { useQt4 = true; };
 
   cmake-format = python3Packages.callPackage ../development/tools/cmake-format { };
 
@@ -12672,9 +13150,7 @@ in
   # Does not actually depend on Qt 5
   inherit (plasma5Packages) extra-cmake-modules;
 
-  coccinelle = callPackage ../development/tools/misc/coccinelle {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_05;
-  };
+  coccinelle = callPackage ../development/tools/misc/coccinelle { };
 
   cpptest = callPackage ../development/libraries/cpptest { };
 
@@ -12697,7 +13173,7 @@ in
   credstash = with python3Packages; toPythonApplication credstash;
 
   creduce = callPackage ../development/tools/misc/creduce {
-    inherit (llvmPackages_7) llvm clang-unwrapped;
+    inherit (llvmPackages_7) llvm libclang;
   };
 
   cscope = callPackage ../development/tools/misc/cscope { };
@@ -12709,7 +13185,7 @@ in
   css-html-js-minify = with python3Packages; toPythonApplication css-html-js-minify;
 
   cvise = python3Packages.callPackage ../development/tools/misc/cvise {
-    inherit (llvmPackages_11) llvm clang-unwrapped;
+    inherit (llvmPackages_11) llvm libclang;
   };
 
   libcxx = llvmPackages.libcxx;
@@ -12787,7 +13263,7 @@ in
   #     };
   #
   distccWrapper = makeOverridable ({ extraConfig ? "" }:
-     wrapCC (distcc.links extraConfig)) {};
+    wrapCC (distcc.links extraConfig)) {};
   distccStdenv = lowPrio (overrideCC stdenv buildPackages.distccWrapper);
 
   distccMasquerade = if stdenv.isDarwin
@@ -12930,6 +13406,8 @@ in
 
   gi-docgen = callPackage ../development/tools/documentation/gi-docgen { };
 
+  git-aggregator = callPackage ../development/tools/git-aggregator { };
+
   github-release = callPackage ../development/tools/github/github-release { };
 
   global = callPackage ../development/tools/misc/global { };
@@ -12944,6 +13422,8 @@ in
 
   gnome-usage = callPackage ../applications/misc/gnome-usage {};
 
+  gnome-inform7 = callPackage ../applications/editors/gnome-inform7/default.nix { };
+
   gnome-latex = callPackage ../applications/editors/gnome-latex/default.nix { };
 
   gnome-network-displays = callPackage ../applications/networking/gnome-network-displays { };
@@ -13043,7 +13523,7 @@ in
   };
 
   include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
-    llvmPackages = llvmPackages_10;
+    llvmPackages = llvmPackages_12;
   };
 
   indent = callPackage ../development/tools/misc/indent { };
@@ -13112,8 +13592,14 @@ in
 
   kube-prompt = callPackage ../development/tools/kube-prompt { };
 
+  kubei = callPackage ../tools/security/kubei { };
+
+  kubeone = callPackage ../applications/networking/cluster/kubeone { };
+
   kubeprompt = callPackage ../development/tools/kubeprompt { };
 
+  kubesec = callPackage ../tools/security/kubesec { };
+
   kubespy = callPackage ../applications/networking/cluster/kubespy { };
 
   kubicorn = callPackage ../development/tools/kubicorn {  };
@@ -13168,7 +13654,10 @@ in
 
   lttv = callPackage ../development/tools/misc/lttv { };
 
-  luaformatter = callPackage ../development/tools/luaformatter { };
+  luaformatter = callPackage ../development/tools/luaformatter
+    (lib.optionalAttrs stdenv.isDarwin {
+      stdenv = overrideCC stdenv llvmPackages_latest.clang;
+    });
 
   massif-visualizer = libsForQt5.callPackage ../development/tools/analysis/massif-visualizer { };
 
@@ -13225,6 +13714,8 @@ in
 
   ninja = callPackage ../development/tools/build-managers/ninja { };
 
+  nimbo = with python3Packages; callPackage ../applications/misc/nimbo { };
+
   gn = callPackage ../development/tools/build-managers/gn { };
 
   nixbang = callPackage ../development/tools/misc/nixbang {
@@ -13272,7 +13763,9 @@ in
     libiberty_static = libiberty.override { staticBuild = true; };
   };
 
-  pactorio = callPackage ../development/tools/pactorio { };
+  pactorio = callPackage ../development/tools/pactorio {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   pahole = callPackage ../development/tools/misc/pahole {};
 
@@ -13301,6 +13794,8 @@ in
 
   phantomjs2 = libsForQt514.callPackage ../development/tools/phantomjs2 { };
 
+  picotool = callPackage ../development/tools/picotool { };
+
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
 
   pkgconf-unwrapped = callPackage ../development/tools/misc/pkgconf {};
@@ -13369,6 +13864,8 @@ in
     lua = lua5;
   } // (config.radare or {}));
 
+  retry = callPackage ../tools/system/retry { };
+
   rizin = pkgs.callPackage ../development/tools/analysis/rizin { };
 
   cutter = libsForQt515.callPackage ../development/tools/analysis/rizin/cutter.nix { };
@@ -13401,6 +13898,8 @@ in
 
   remake = callPackage ../development/tools/build-managers/remake { };
 
+  replace-secret = callPackage ../build-support/replace-secret/replace-secret.nix { };
+
   replacement = callPackage ../development/tools/misc/replacement { };
 
   retdec = callPackage ../development/tools/analysis/retdec {
@@ -13442,7 +13941,9 @@ in
   sconsPackages = dontRecurseIntoAttrs (callPackage ../development/tools/build-managers/scons { });
   scons = sconsPackages.scons_latest;
 
-  mill = callPackage ../development/tools/build-managers/mill { };
+  mill = callPackage ../development/tools/build-managers/mill {
+    jre = jre8;
+  };
 
   sbt = callPackage ../development/tools/build-managers/sbt { };
   sbt-with-scala-native = callPackage ../development/tools/build-managers/sbt/scala-native.nix { };
@@ -13557,6 +14058,8 @@ in
 
   swiftformat = callPackage ../development/tools/swiftformat { };
 
+  symfony-cli = callPackage ../development/tools/symfony-cli { };
+
   swiftshader = callPackage ../development/libraries/swiftshader { };
 
   systemfd = callPackage ../development/tools/systemfd { };
@@ -13604,7 +14107,7 @@ in
   texi2mdoc = callPackage ../tools/misc/texi2mdoc { };
 
   texlab = callPackage ../development/tools/misc/texlab {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
   };
 
   tflint = callPackage ../development/tools/analysis/tflint { };
@@ -13660,7 +14163,7 @@ in
 
   gdb = callPackage ../development/tools/misc/gdb {
     guile = null;
-    readline = readline80;
+    readline = readline81;
   };
 
   jhiccup = callPackage ../development/tools/java/jhiccup { };
@@ -13910,7 +14413,7 @@ in
   belr = callPackage ../development/libraries/belr { };
 
   beignet = callPackage ../development/libraries/beignet {
-    inherit (llvmPackages_6) llvm clang-unwrapped;
+    inherit (llvmPackages_6) libllvm libclang;
   };
 
   belle-sip = callPackage ../development/libraries/belle-sip { };
@@ -13928,8 +14431,10 @@ in
   bicgl = callPackage ../development/libraries/science/biology/bicgl { };
 
   # TODO(@Ericson2314): Build bionic libc from source
-  bionic = assert stdenv.hostPlatform.useAndroidPrebuilt;
-    pkgs."androidndkPkgs_${stdenv.hostPlatform.ndkVer}".libraries;
+  bionic = if stdenv.hostPlatform.useAndroidPrebuilt
+    then pkgs."androidndkPkgs_${stdenv.hostPlatform.ndkVer}".libraries
+    else callPackage ../os-specific/linux/bionic-prebuilt { };
+
 
   bobcat = callPackage ../development/libraries/bobcat { };
 
@@ -14011,6 +14516,8 @@ in
 
   cimg = callPackage  ../development/libraries/cimg { };
 
+  cjose = callPackage ../development/libraries/cjose { };
+
   scmccid = callPackage ../development/libraries/scmccid { };
 
   ccrtp = callPackage ../development/libraries/ccrtp { };
@@ -14052,7 +14559,11 @@ in
 
   chromaprint = callPackage ../development/libraries/chromaprint { };
 
-  cl = callPackage ../development/libraries/cl { };
+  cl = callPackage ../development/libraries/cl {
+    erlang = erlangR23;
+  };
+
+  clanlib = callPackage ../development/libraries/clanlib { };
 
   classads = callPackage ../development/libraries/classads { };
 
@@ -14315,6 +14826,8 @@ in
 
   fcgi = callPackage ../development/libraries/fcgi { };
 
+  fcl = callPackage ../development/libraries/fcl { };
+
   ffcast = callPackage ../tools/X11/ffcast { };
 
   fflas-ffpack = callPackage ../development/libraries/fflas-ffpack { };
@@ -14427,6 +14940,8 @@ in
       inherit fontconfig fontDirectories;
     };
 
+  f2c = callPackage ../development/tools/f2c { };
+
   freealut = callPackage ../development/libraries/freealut { };
 
   freeglut = callPackage ../development/libraries/freeglut { };
@@ -14537,10 +15052,14 @@ in
   givaro_3 = callPackage ../development/libraries/givaro/3.nix {};
   givaro_3_7 = callPackage ../development/libraries/givaro/3.7.nix {};
 
-  ghp-import = callPackage ../development/tools/ghp-import { };
+  ghc_filesystem = callPackage ../development/libraries/ghc_filesystem {};
+
+  ghp-import = with python3Packages; toPythonApplication ghp-import;
 
   ghcid = haskellPackages.ghcid.bin;
 
+  graphia = libsForQt5.callPackage ../applications/science/misc/graphia { };
+
   icon-lang = callPackage ../development/interpreters/icon-lang { };
 
   libgit2 = callPackage ../development/libraries/git2 {
@@ -14586,7 +15105,9 @@ in
     inherit (darwin.apple_sdk.frameworks) Cocoa Kernel;
   };
 
-  glibc = callPackage ../development/libraries/glibc { };
+  glibc = callPackage ../development/libraries/glibc {
+    stdenv = gccStdenv; # doesn't compile without gcc
+  };
 
   # Provided by libc on Operating Systems that use the Extensible Linker Format.
   elf-header =
@@ -14602,13 +15123,21 @@ in
 
   # Being redundant to avoid cycles on boot. TODO: find a better way
   glibcCross = callPackage ../development/libraries/glibc {
-    stdenv = crossLibcStdenv;
+    stdenv = gccCrossLibcStdenv; # doesn't compile without gcc
   };
 
   muslCross = musl.override {
     stdenv = crossLibcStdenv;
   };
 
+  # These are used when buiding compiler-rt / libgcc, prior to building libc.
+  preLibcCrossHeaders = let
+    inherit (stdenv.targetPlatform) libc;
+  in     if libc == "msvcrt" then targetPackages.windows.mingw_w64_headers or windows.mingw_w64_headers
+    else if libc == "nblibc" then targetPackages.netbsdCross.headers or netbsdCross.headers
+    else if libc == "libSystem" && stdenv.targetPlatform.isAarch64 then targetPackages.darwin.LibsystemCross or darwin.LibsystemCross
+    else null;
+
   # We can choose:
   libcCrossChooser = name:
     # libc is hackily often used from the previous stage. This `or`
@@ -14623,9 +15152,11 @@ in
     else if name == "newlib" then targetPackages.newlibCross or newlibCross
     else if name == "musl" then targetPackages.muslCross or muslCross
     else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
-    else if stdenv.targetPlatform.useiOSPrebuilt then targetPackages.darwin.iosSdkPkgs.libraries or darwin.iosSdkPkgs.libraries
-    else if name == "libSystem" then targetPackages.darwin.xcode
-    else if name == "nblibc" then targetPackages.netbsdCross.libc
+    else if name == "libSystem" then
+      if stdenv.targetPlatform.useiOSPrebuilt
+      then targetPackages.darwin.iosSdkPkgs.libraries or darwin.iosSdkPkgs.libraries
+      else targetPackages.darwin.LibsystemCross or (throw "don't yet have a `targetPackages.darwin.LibsystemCross for ${stdenv.targetPlatform.config}`")
+    else if name == "nblibc" then targetPackages.netbsdCross.libc or netbsdCross.libc
     else if name == "wasilibc" then targetPackages.wasilibc or wasilibc
     else if name == "relibc" then targetPackages.relibc or relibc
     else if stdenv.targetPlatform.isGhcjs then null
@@ -14667,7 +15198,6 @@ in
 
   glsurf = callPackage ../applications/science/math/glsurf {
     libpng = libpng12;
-    giflib = giflib_4_1;
     ocamlPackages = ocaml-ng.ocamlPackages_4_01_0;
   };
 
@@ -14802,6 +15332,10 @@ in
 
   glibmm = callPackage ../development/libraries/glibmm { };
 
+  glibmm_2_68 = callPackage ../development/libraries/glibmm/2.68.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
   glib-networking = callPackage ../development/libraries/glib-networking {};
 
   glib-testing = callPackage ../development/libraries/glib-testing { };
@@ -14822,6 +15356,10 @@ in
 
   cairomm = callPackage ../development/libraries/cairomm { };
 
+  cairomm_1_16 = callPackage ../development/libraries/cairomm/1.16.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
   pango = callPackage ../development/libraries/pango {
     harfbuzz = harfbuzz.override { withCoreText = stdenv.isDarwin; };
   };
@@ -14834,6 +15372,10 @@ in
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
   };
 
+  pangomm_2_48 = callPackage ../development/libraries/pangomm/2.48.nix {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
+
   gdata-sharp = callPackage ../development/libraries/gdata-sharp { };
 
   gdk-pixbuf = callPackage ../development/libraries/gdk-pixbuf { };
@@ -14874,6 +15416,7 @@ in
 
   gtkmm2 = callPackage ../development/libraries/gtkmm/2.x.nix { };
   gtkmm3 = callPackage ../development/libraries/gtkmm/3.x.nix { };
+  gtkmm4 = callPackage ../development/libraries/gtkmm/4.x.nix { };
 
   gtk_engines = callPackage ../development/libraries/gtk-engines { };
 
@@ -14913,6 +15456,8 @@ in
 
   gtksourceview4 = callPackage ../development/libraries/gtksourceview/4.x.nix { };
 
+  gtksourceview5 = callPackage ../development/libraries/gtksourceview/5.x.nix { };
+
   gtksourceviewmm = callPackage ../development/libraries/gtksourceviewmm { };
 
   gtksourceviewmm4 = callPackage ../development/libraries/gtksourceviewmm/4.x.nix { };
@@ -15003,6 +15548,10 @@ in
 
   hunspellWithDicts = dicts: callPackage ../development/libraries/hunspell/wrapper.nix { inherit dicts; };
 
+  hunter = callPackage ../applications/misc/hunter {
+    inherit (darwin.apple_sdk.frameworks) CoreServices IOKit Security;
+  };
+
   hwloc = callPackage ../development/libraries/hwloc {};
 
   inherit (callPackage ../development/tools/misc/hydra { })
@@ -15069,8 +15618,13 @@ in
   } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
       stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
     }));
+  icu69 = callPackage ../development/libraries/icu/69.nix ({
+    nativeBuildRoot = buildPackages.icu69.override { buildRootOnly = true; };
+  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
+      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
+    }));
 
-  icu = icu68;
+  icu = icu69;
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -15108,7 +15662,6 @@ in
   indicator-application-gtk3 = callPackage ../development/libraries/indicator-application/gtk3.nix { };
 
   indilib = callPackage ../development/libraries/science/astronomy/indilib { };
-  indi-3rdparty = callPackage ../development/libraries/science/astronomy/indilib/indi-3rdparty.nix { };
   indi-full = callPackage ../development/libraries/science/astronomy/indilib/indi-full.nix { };
 
   inih = callPackage ../development/libraries/inih { };
@@ -15252,6 +15805,8 @@ in
 
   leptonica = callPackage ../development/libraries/leptonica { };
 
+  lib2geom = callPackage ../development/libraries/lib2geom { };
+
   lib3ds = callPackage ../development/libraries/lib3ds { };
 
   lib3mf = callPackage ../development/libraries/lib3mf { };
@@ -15266,7 +15821,11 @@ in
 
   libaccounts-glib = callPackage ../development/libraries/libaccounts-glib { };
 
-  libacr38u = callPackage ../tools/security/libacr38u { };
+  libacr38u = callPackage ../tools/security/libacr38u {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
+  libadwaita = callPackage ../development/libraries/libadwaita { };
 
   libaec = callPackage ../development/libraries/libaec { };
 
@@ -15377,6 +15936,8 @@ in
 
   libcbor = callPackage ../development/libraries/libcbor { };
 
+  libccd = callPackage ../development/libraries/libccd { };
+
   libcec = callPackage ../development/libraries/libcec {
     libraspberrypi = null;
   };
@@ -15429,8 +15990,6 @@ in
 
   libclxclient = callPackage ../development/libraries/libclxclient  { };
 
-  libco-canonical = callPackage ../development/libraries/libco-canonical { };
-
   libconfuse = callPackage ../development/libraries/libconfuse { };
 
   libcangjie = callPackage ../development/libraries/libcangjie { };
@@ -15482,6 +16041,8 @@ in
 
   libdeflate = callPackage ../development/libraries/libdeflate { };
 
+  libdeltachat = callPackage ../development/libraries/libdeltachat { };
+
   libdevil = callPackage ../development/libraries/libdevil {
     inherit (darwin.apple_sdk.frameworks) OpenGL;
   };
@@ -15602,7 +16163,7 @@ in
   libgig = callPackage ../development/libraries/libgig { };
 
   libgnome-keyring = callPackage ../development/libraries/libgnome-keyring { };
-  libgnome-keyring3 = gnome3.libgnome-keyring;
+  libgnome-keyring3 = gnome.libgnome-keyring;
 
   libgnomekbd = callPackage ../development/libraries/libgnomekbd { };
 
@@ -15899,16 +16460,16 @@ in
   libiconv =
     if lib.elem stdenv.hostPlatform.libc ["glibc" "musl" "wasilibc"]
       then glibcIconv (if stdenv.hostPlatform != stdenv.buildPlatform
-                       then libcCross
-                       else stdenv.cc.libc)
+        then libcCross
+        else stdenv.cc.libc)
     else if stdenv.hostPlatform.isDarwin
       then darwin.libiconv
     else libiconvReal;
 
   glibcIconv = libc: let
-    inherit (builtins.parseDrvName libc.name) name version;
+    inherit (libc) pname version;
     libcDev = lib.getDev libc;
-  in runCommand "${name}-iconv-${version}" {} ''
+  in runCommand "${pname}-iconv-${version}" {} ''
     mkdir -p $out/include
     ln -sv ${libcDev}/include/iconv.h $out/include
   '';
@@ -16104,7 +16665,7 @@ in
   libopusenc = callPackage ../development/libraries/libopusenc { };
 
   libosinfo = callPackage ../development/libraries/libosinfo {
-    inherit (gnome3) libsoup;
+    inherit (gnome) libsoup;
   };
 
   libosip = callPackage ../development/libraries/osip {};
@@ -16168,19 +16729,24 @@ in
   libpwquality = callPackage ../development/libraries/libpwquality { };
 
   libqalculate = callPackage ../development/libraries/libqalculate {
-    readline = readline80;
+    readline = readline81;
   };
 
   libqt5pas = libsForQt5.callPackage ../development/compilers/fpc/libqt5pas.nix { };
 
   libroxml = callPackage ../development/libraries/libroxml { };
 
-  librsvg = callPackage ../development/libraries/librsvg { };
+  librsvg = callPackage ../development/libraries/librsvg {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
+  };
 
   librsync = callPackage ../development/libraries/librsync { };
 
   librsync_0_9 = callPackage ../development/libraries/librsync/0.9.nix { };
 
+  librttopo = callPackage ../development/libraries/librttopo { };
+
   libs3 = callPackage ../development/libraries/libs3 { };
 
   libschrift = callPackage ../development/libraries/libschrift { };
@@ -16193,6 +16759,8 @@ in
 
   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
 
+  libsigcxx30 = callPackage ../development/libraries/libsigcxx/3.0.nix { };
+
   libsigsegv = callPackage ../development/libraries/libsigsegv { };
 
   libslirp = callPackage ../development/libraries/libslirp { };
@@ -16313,13 +16881,10 @@ in
 
   libwhereami = callPackage ../development/libraries/libwhereami { };
 
-  giflib_4_1 = callPackage ../development/libraries/giflib/4.1.nix { };
   giflib     = callPackage ../development/libraries/giflib { };
 
   libunarr = callPackage ../development/libraries/libunarr { };
 
-  libungif = callPackage ../development/libraries/giflib/libungif.nix { };
-
   libunibreak = callPackage ../development/libraries/libunibreak { };
 
   libuninameslist = callPackage ../development/libraries/libuninameslist { };
@@ -16342,8 +16907,9 @@ in
 
   libutempter = callPackage ../development/libraries/libutempter { };
 
-  libunwind = if stdenv.isDarwin
-    then darwin.libunwind
+  libunwind =
+    if stdenv.isDarwin then darwin.libunwind
+    else if stdenv.hostPlatform.isRiscV then llvmPackages_latest.libunwind
     else callPackage ../development/libraries/libunwind { };
 
   libuv = callPackage ../development/libraries/libuv {
@@ -16382,7 +16948,9 @@ in
 
   libvmaf = callPackage ../development/libraries/libvmaf { };
 
-  libvncserver = callPackage ../development/libraries/libvncserver {};
+  libvncserver = callPackage ../development/libraries/libvncserver {
+    inherit (darwin.apple_sdk.frameworks) Carbon;
+  };
 
   libviper = callPackage ../development/libraries/libviper { };
 
@@ -16628,6 +17196,10 @@ in
 
   mono-addins = callPackage ../development/libraries/mono-addins { };
 
+  movine = callPackage ../development/tools/database/movine {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   movit = callPackage ../development/libraries/movit { };
 
   mosquitto = callPackage ../servers/mqtt/mosquitto { };
@@ -16648,7 +17220,9 @@ in
 
   libmpc = callPackage ../development/libraries/libmpc { };
 
-  mpich = callPackage ../development/libraries/mpich { };
+  mpich = callPackage ../development/libraries/mpich {
+    ch4backend = libfabric;
+  };
 
   mstpd = callPackage ../os-specific/linux/mstpd { };
 
@@ -16674,6 +17248,8 @@ in
 
   mutest = callPackage ../development/libraries/mutest { };
 
+  mvapich = callPackage ../development/libraries/mvapich { };
+
   mygpoclient = pythonPackages.mygpoclient;
 
   mygui = callPackage ../development/libraries/mygui {
@@ -16701,7 +17277,7 @@ in
   notify-sharp = callPackage ../development/libraries/notify-sharp { };
 
   notcurses = callPackage ../development/libraries/notcurses {
-    readline = readline80;
+    readline = readline81;
   };
 
   ncurses5 = ncurses.override {
@@ -16755,7 +17331,6 @@ in
   };
 
   nss = lowPrio (callPackage ../development/libraries/nss { });
-  nss_3_44 = lowPrio (callPackage ../development/libraries/nss/3.44.nix { });
   nssTools = nss.tools;
 
   # required for stable thunderbird and firefox-esr-78
@@ -16777,6 +17352,7 @@ in
   nuspellWithDicts = dicts: callPackage ../development/libraries/nuspell/wrapper.nix { inherit dicts; };
 
   nv-codec-headers = callPackage ../development/libraries/nv-codec-headers { };
+  nv-codec-headers-10 = callPackage ../development/libraries/nv-codec-headers/10_x.nix { };
 
   mkNvidiaContainerPkg = { name, containerRuntimePath, configTemplate, additionalPaths ? [] }:
     let
@@ -16914,6 +17490,8 @@ in
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Foundation;
   };
 
+  openslide = callPackage ../development/libraries/openslide { };
+
   openslp = callPackage ../development/libraries/openslp {};
 
   openvdb = callPackage ../development/libraries/openvdb {};
@@ -16930,10 +17508,7 @@ in
 
   wolfssl = callPackage ../development/libraries/wolfssl { };
 
-  openssl =
-    if stdenv.hostPlatform.isMinGW # Work around broken cross build
-    then openssl_1_0_2
-    else openssl_1_1;
+  openssl = openssl_1_1;
 
   inherit (callPackages ../development/libraries/openssl { })
     openssl_1_0_2
@@ -16989,10 +17564,14 @@ in
 
   pe-parse = callPackage ../development/libraries/pe-parse { };
 
-  inherit (callPackage ../development/libraries/physfs { })
+  inherit (callPackage ../development/libraries/physfs {
+    inherit (darwin.apple_sdk.frameworks) Foundation Carbon;
+  })
     physfs_2
     physfs;
 
+  pico-sdk = callPackage ../development/libraries/pico-sdk { };
+
   pipelight = callPackage ../tools/misc/pipelight {
     stdenv = stdenv_32bit;
     wine-staging = pkgsi686Linux.wine-staging;
@@ -17044,6 +17623,8 @@ in
 
   portmidi = callPackage ../development/libraries/portmidi {};
 
+  presage = callPackage ../development/libraries/presage { };
+
   prime-server = callPackage ../development/libraries/prime-server { };
 
   primesieve = callPackage ../development/libraries/science/math/primesieve { };
@@ -17063,8 +17644,9 @@ in
     python = python37;
   };
 
-  protobuf = protobuf3_15;
+  protobuf = protobuf3_16;
 
+  protobuf3_16 = callPackage ../development/libraries/protobuf/3.16.nix { };
   protobuf3_15 = callPackage ../development/libraries/protobuf/3.15.nix { };
   protobuf3_14 = callPackage ../development/libraries/protobuf/3.14.nix { };
   protobuf3_13 = callPackage ../development/libraries/protobuf/3.13.nix { };
@@ -17084,7 +17666,9 @@ in
 
   protozero = callPackage ../development/libraries/protozero { };
 
-  flatbuffers = callPackage ../development/libraries/flatbuffers { };
+  flatbuffers = flatbuffers_2_0;
+  flatbuffers_2_0 = callPackage ../development/libraries/flatbuffers/2.0.nix { };
+  flatbuffers_1_12 = callPackage ../development/libraries/flatbuffers/1.12.nix { };
 
   nanopb = callPackage ../development/libraries/nanopb { };
 
@@ -17097,8 +17681,6 @@ in
 
   pugixml = callPackage ../development/libraries/pugixml { };
 
-  pybind11 = pythonPackages.pybind11;
-
   pylode = callPackage ../misc/pylode {};
 
   python-qt = callPackage ../development/libraries/python-qt {
@@ -17271,7 +17853,7 @@ in
 
   readline70 = callPackage ../development/libraries/readline/7.0.nix { };
 
-  readline80 = callPackage ../development/libraries/readline/8.0.nix { };
+  readline81 = callPackage ../development/libraries/readline/8.1.nix { };
 
   readosm = callPackage ../development/libraries/readosm { };
 
@@ -17348,13 +17930,13 @@ in
 
   s2geometry = callPackage ../development/libraries/s2geometry { };
 
-  /* This package references ghc844, which we no longer have. Unfortunately, I
-     have been unable to mark it as "broken" in a way that the ofBorg bot
-     recognizes. Since I don't want to merge code into master that generates
-     evaluation errors, I have no other idea but to comment it out entirely.
+  /*  This package references ghc844, which we no longer have. Unfortunately, I
+      have been unable to mark it as "broken" in a way that the ofBorg bot
+      recognizes. Since I don't want to merge code into master that generates
+      evaluation errors, I have no other idea but to comment it out entirely.
 
   sad = callPackage ../applications/science/logic/sad { };
-   */
+  */
 
   safefile = callPackage ../development/libraries/safefile {};
 
@@ -17411,6 +17993,8 @@ in
 
   sdnotify-wrapper = skawarePackages.sdnotify-wrapper;
 
+  sdrplay = callPackage ../applications/radio/sdrplay {};
+
   sblim-sfcc = callPackage ../development/libraries/sblim-sfcc {};
 
   selinux-sandbox = callPackage ../os-specific/linux/selinux-sandbox { };
@@ -17502,6 +18086,8 @@ in
 
   snow = callPackage ../tools/security/snow { };
 
+  snowcrash = callPackage ../tools/security/snowcrash { };
+
   soapyairspy = callPackage ../applications/radio/soapyairspy { };
 
   soapyaudio = callPackage ../applications/radio/soapyaudio { };
@@ -17514,6 +18100,8 @@ in
 
   soapyremote = callPackage ../applications/radio/soapyremote { };
 
+  soapysdrplay = callPackage ../applications/radio/soapysdrplay { };
+
   soapysdr-with-plugins = callPackage ../applications/radio/soapysdr {
     extraPackages = [
       limesuite
@@ -17533,7 +18121,9 @@ in
 
   socket_wrapper = callPackage ../development/libraries/socket_wrapper { };
 
-  sofia_sip = callPackage ../development/libraries/sofia-sip { };
+  sofia_sip = callPackage ../development/libraries/sofia-sip {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
 
   soil = callPackage ../development/libraries/soil {
     inherit (darwin.apple_sdk.frameworks) Carbon;
@@ -17572,6 +18162,8 @@ in
 
   sphinx = with python3Packages; toPythonApplication sphinx;
 
+  sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild;
+
   sphinx-serve = with python3Packages; toPythonApplication sphinx-serve;
 
   sphinxbase = callPackage ../development/libraries/sphinxbase { };
@@ -17653,6 +18245,7 @@ in
   stfl = callPackage ../development/libraries/stfl { };
 
   stlink = callPackage ../development/tools/misc/stlink { };
+  stlink-gui = callPackage ../development/tools/misc/stlink { withGUI = true; };
 
   stegseek = callPackage ../tools/security/stegseek {};
 
@@ -17831,6 +18424,8 @@ in
 
   ustr = callPackage ../development/libraries/ustr { };
 
+  usrsctp = callPackage ../development/libraries/usrsctp { };
+
   usbredir = callPackage ../development/libraries/usbredir { };
 
   uthash = callPackage ../development/libraries/uthash { };
@@ -17967,6 +18562,7 @@ in
   webkitgtk = callPackage ../development/libraries/webkitgtk {
     harfbuzz = harfbuzzFull;
     inherit (gst_all_1) gst-plugins-base gst-plugins-bad;
+    inherit (darwin.apple_sdk) sdk;
   };
 
   websocketpp = callPackage ../development/libraries/websocket++ { };
@@ -18060,7 +18656,7 @@ in
 
   xed = callPackage ../development/libraries/xed { };
 
-  xineLib = callPackage ../development/libraries/xine-lib { };
+  xine-lib = callPackage ../development/libraries/xine-lib { };
 
   xautolock = callPackage ../misc/screensavers/xautolock { };
 
@@ -18090,6 +18686,12 @@ in
 
   xlslib = callPackage ../development/libraries/xlslib { };
 
+  xsimd = callPackage ../development/libraries/xsimd { };
+
+  xtensor = callPackage ../development/libraries/xtensor { };
+
+  xtl = callPackage ../development/libraries/xtl { };
+
   xvidcore = callPackage ../development/libraries/xvidcore { };
 
   xxHash = callPackage ../development/libraries/xxHash {};
@@ -18112,9 +18714,7 @@ in
 
   yubikey-manager = callPackage ../tools/misc/yubikey-manager { };
 
-  yubikey-manager-qt = libsForQt5.callPackage ../tools/misc/yubikey-manager-qt {
-    pythonPackages = python3Packages;
-  };
+  yubikey-manager-qt = libsForQt5.callPackage ../tools/misc/yubikey-manager-qt { };
 
   yubikey-personalization = callPackage ../tools/misc/yubikey-personalization { };
 
@@ -18146,7 +18746,7 @@ in
   libzra = callPackage ../development/libraries/libzra { };
 
   zig = callPackage ../development/compilers/zig {
-    llvmPackages = llvmPackages_11;
+    llvmPackages = llvmPackages_12;
   };
 
   zimlib = callPackage ../development/libraries/zimlib { };
@@ -18502,26 +19102,20 @@ in
 
   clickhouse = callPackage ../servers/clickhouse {
     # upstream requires llvm10 as of v20.11.4.13
-    inherit (llvmPackages_10) clang-unwrapped lld lldClang llvm;
+    inherit (llvmPackages_10) clang-unwrapped lld llvm;
+    llvm-bintools = llvmPackages_10.bintools;
   };
 
   clickhouse-cli = with python3Packages; toPythonApplication clickhouse-cli;
 
-  couchdb = callPackage ../servers/http/couchdb {
-    sphinx = python27Packages.sphinx;
-    erlang = erlangR19;
-  };
-
-  couchdb2 = callPackage ../servers/http/couchdb/2.0.0.nix {
-    erlang = erlangR21;
-  };
-
   couchdb3 = callPackage ../servers/http/couchdb/3.nix {
     erlang = erlangR22;
   };
 
   couchpotato = callPackage ../servers/couchpotato {};
 
+  dendrite = callPackage ../servers/dendrite { };
+
   dex-oidc = callPackage ../servers/dex { };
 
   dex2jar = callPackage ../development/tools/java/dex2jar { };
@@ -18562,9 +19156,12 @@ in
 
   dspam = callPackage ../servers/mail/dspam { };
 
-  engelsystem = callPackage ../servers/web-apps/engelsystem { };
+  engelsystem = callPackage ../servers/web-apps/engelsystem { php = php74; };
 
-  envoy = callPackage ../servers/http/envoy { };
+  envoy = callPackage ../servers/http/envoy {
+    go = go_1_15;
+    jdk = openjdk11;
+  };
 
   etcd = callPackage ../servers/etcd { };
   etcd_3_4 = callPackage ../servers/etcd/3.4.nix { };
@@ -18605,8 +19202,7 @@ in
 
   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
 
-  firebird = callPackage ../servers/firebird { icu = null; /*stdenv = gcc5Stdenv;*/ };
-  firebirdSuper = firebird.override { icu = icu58; superServer = true; /*stdenv = gcc5Stdenv;*/ };
+  inherit (callPackages ../servers/firebird { }) firebird_4 firebird_3 firebird_2_5 firebird;
 
   freeradius = callPackage ../servers/freeradius { };
 
@@ -18733,11 +19329,7 @@ in
 
   mailman-web = with python3.pkgs; toPythonApplication mailman-web;
 
-  mastodon = callPackage ../servers/mastodon {
-    # With nodejs v14 the streaming endpoint breaks. Need migrate to uWebSockets.js or similar.
-    # https://github.com/tootsuite/mastodon/issues/15184
-    nodejs-slim = nodejs-slim-12_x;
-  };
+  mastodon = callPackage ../servers/mastodon { };
 
   materialize = callPackage ../servers/sql/materialize {
     inherit (buildPackages.darwin) bootstrap_cmds;
@@ -18778,8 +19370,10 @@ in
   mod_pkcs12 = pkgs.apacheHttpdPackages.mod_pkcs12;
   mod_timestamp = pkgs.apacheHttpdPackages.mod_timestamp;
 
-  inherit (callPackages ../servers/mpd { stdenv = if stdenv.cc.isClang then llvmPackages_8.stdenv else stdenv; })
-    mpd mpd-small mpdWithFeatures;
+  inherit (callPackages ../servers/mpd {
+    stdenv = if stdenv.cc.isClang then llvmPackages_8.stdenv else stdenv;
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox AudioUnit;
+  }) mpd mpd-small mpdWithFeatures;
 
   libmpdclient = callPackage ../servers/mpd/libmpdclient.nix { };
 
@@ -18820,25 +19414,28 @@ in
   nginx = nginxStable;
 
   nginxQuic = callPackage ../servers/http/nginx/quic.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
     withPerl = false;
     # We don't use `with` statement here on purpose!
-    # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
+    # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
     modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
     # Use latest boringssl to allow http3 support
     openssl = boringssl;
   };
 
   nginxStable = callPackage ../servers/http/nginx/stable.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
     withPerl = false;
     # We don't use `with` statement here on purpose!
-    # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
+    # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
     modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
   };
 
   nginxMainline = callPackage ../servers/http/nginx/mainline.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
     withPerl = false;
     # We don't use `with` statement here on purpose!
-    # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
+    # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
     modules = [ nginxModules.dav nginxModules.moreheaders ];
   };
 
@@ -18880,6 +19477,7 @@ in
 
   opensmtpd = callPackage ../servers/mail/opensmtpd { };
   opensmtpd-extras = callPackage ../servers/mail/opensmtpd/extras.nix { };
+  opensmtpd-filter-rspamd = callPackage ../servers/mail/opensmtpd/filter-rspamd.nix { };
 
   openxpki = callPackage ../servers/openxpki { };
 
@@ -19061,10 +19659,19 @@ in
 
   miniflux = callPackage ../servers/miniflux { };
 
-  nagios = callPackage ../servers/monitoring/nagios { };
+  icinga2 = callPackage ../servers/monitoring/icinga2 { };
+
+  icinga2-agent = callPackage ../servers/monitoring/icinga2 {
+    nameSuffix = "-agent";
+    withMysql = false;
+    withNotification = false;
+    withIcingadb = false;
+  };
 
   munin = callPackage ../servers/monitoring/munin { };
 
+  nagios = callPackage ../servers/monitoring/nagios { };
+
   monitoring-plugins = callPackage ../servers/monitoring/plugins { };
 
   inherit (callPackage ../servers/monitoring/plugins/labs_consol_de.nix { })
@@ -19136,6 +19743,7 @@ in
     postgresql_11
     postgresql_12
     postgresql_13
+    postgresql_14
   ;
   postgresql = postgresql_11.override { this = postgresql; };
   postgresqlPackages = recurseIntoAttrs postgresql.pkgs;
@@ -19144,9 +19752,7 @@ in
   postgresql_jdbc = callPackage ../development/java-modules/postgresql_jdbc { };
 
   prom2json = callPackage ../servers/monitoring/prometheus/prom2json.nix { };
-  prometheus = callPackage ../servers/monitoring/prometheus {
-    buildGoPackage = buildGo115Package;
-  };
+  prometheus = callPackage ../servers/monitoring/prometheus { };
   prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
   prometheus-apcupsd-exporter = callPackage ../servers/monitoring/prometheus/apcupsd-exporter.nix { };
   prometheus-artifactory-exporter = callPackage ../servers/monitoring/prometheus/artifactory-exporter.nix { };
@@ -19165,7 +19771,9 @@ in
   prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { };
   prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
   prometheus-jitsi-exporter = callPackage ../servers/monitoring/prometheus/jitsi-exporter.nix { };
+  prometheus-jmx-httpserver = callPackage ../servers/monitoring/prometheus/jmx-httpserver.nix {  };
   prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
+  prometheus-kea-exporter = callPackage ../servers/monitoring/prometheus/kea-exporter.nix { };
   prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { };
   prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };
   prometheus-lnd-exporter = callPackage ../servers/monitoring/prometheus/lnd-exporter.nix { };
@@ -19181,6 +19789,7 @@ in
   prometheus-node-exporter = callPackage ../servers/monitoring/prometheus/node-exporter.nix { };
   prometheus-openldap-exporter = callPackage ../servers/monitoring/prometheus/openldap-exporter.nix { };
   prometheus-openvpn-exporter = callPackage ../servers/monitoring/prometheus/openvpn-exporter.nix { };
+  prometheus-pihole-exporter = callPackage ../servers/monitoring/prometheus/pihole-exporter.nix {  };
   prometheus-postfix-exporter = callPackage ../servers/monitoring/prometheus/postfix-exporter.nix { };
   prometheus-postgres-exporter = callPackage ../servers/monitoring/prometheus/postgres-exporter.nix { };
   prometheus-process-exporter = callPackage ../servers/monitoring/prometheus/process-exporter.nix { };
@@ -19188,22 +19797,23 @@ in
   prometheus-redis-exporter = callPackage ../servers/monitoring/prometheus/redis-exporter.nix { };
   prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { };
   prometheus-rtl_433-exporter = callPackage ../servers/monitoring/prometheus/rtl_433-exporter.nix { };
+  prometheus-script-exporter = callPackage ../servers/monitoring/prometheus/script-exporter.nix { };
   prometheus-smokeping-prober = callPackage ../servers/monitoring/prometheus/smokeping-prober.nix { };
   prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
+  prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
+  prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
   prometheus-sql-exporter = callPackage ../servers/monitoring/prometheus/sql-exporter.nix { };
   prometheus-systemd-exporter = callPackage ../servers/monitoring/prometheus/systemd-exporter.nix { };
   prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
-  prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
-  prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
+  prometheus-unbound-exporter = callPackage ../servers/monitoring/prometheus/unbound-exporter.nix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   prometheus-unifi-exporter = callPackage ../servers/monitoring/prometheus/unifi-exporter { };
   prometheus-varnish-exporter = callPackage ../servers/monitoring/prometheus/varnish-exporter.nix { };
-  prometheus-jmx-httpserver = callPackage ../servers/monitoring/prometheus/jmx-httpserver.nix {  };
   prometheus-wireguard-exporter = callPackage ../servers/monitoring/prometheus/wireguard-exporter.nix {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  prometheus-xmpp-alerts = callPackage ../servers/monitoring/prometheus/xmpp-alerts.nix {
-    pythonPackages = python3Packages;
-  };
+  prometheus-xmpp-alerts = callPackage ../servers/monitoring/prometheus/xmpp-alerts.nix { };
 
   prometheus-cpp = callPackage ../development/libraries/prometheus-cpp { };
 
@@ -19225,7 +19835,7 @@ in
   rabbitmq-server = callPackage ../servers/amqp/rabbitmq-server {
     inherit (darwin.apple_sdk.frameworks) AppKit Carbon Cocoa;
     elixir = beam_nox.interpreters.elixir_1_8;
-    erlang = erlang_nox;
+    erlang = beam_nox.interpreters.erlangR23;
   };
 
   radicale1 = callPackage ../servers/radicale/1.x.nix { };
@@ -19242,6 +19852,8 @@ in
 
   redstore = callPackage ../servers/http/redstore { };
 
+  reproxy = callPackage ../servers/reproxy { };
+
   restic = callPackage ../tools/backup/restic { };
 
   restic-rest-server = callPackage ../tools/backup/restic/rest-server.nix { };
@@ -19288,7 +19900,6 @@ in
     enableDomainController = true;
     enableRegedit = true;
     enableCephFS = !pkgs.stdenv.hostPlatform.isAarch64;
-    enableGlusterFS = true;
   });
 
   sambaFull = samba4Full;
@@ -19368,6 +19979,8 @@ in
 
   thanos = callPackage ../servers/monitoring/thanos { };
 
+  trafficserver = callPackage ../servers/http/trafficserver { };
+
   inherit (callPackages ../servers/http/tomcat { })
     tomcat7
     tomcat8
@@ -19407,6 +20020,10 @@ in
     unifi6;
   unifi = unifi6;
 
+  unpackerr = callPackage ../servers/unpackerr {
+    inherit (darwin.apple_sdk.frameworks) Cocoa WebKit;
+  };
+
   urserver = callPackage ../servers/urserver { };
 
   victoriametrics = callPackage ../servers/nosql/victoriametrics { };
@@ -19470,7 +20087,7 @@ in
   xwayland = callPackage ../servers/x11/xorg/xwayland.nix { };
 
   yaws = callPackage ../servers/http/yaws {
-    erlang = erlangR18;
+    erlang = erlangR21;
   };
 
   youtrack = callPackage ../servers/jetbrains/youtrack.nix { };
@@ -19518,23 +20135,17 @@ in
 
   alertmanager-irc-relay = callPackage ../servers/monitoring/alertmanager-irc-relay { };
 
-  alsa-firmware = callPackage ../os-specific/linux/alsa-firmware { };
-
-  alsaLib = callPackage ../os-specific/linux/alsa-lib { };
-
-  alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
-
-  alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
-
-  alsaUtils = callPackage ../os-specific/linux/alsa-utils {
+  alsa-firmware = callPackage ../os-specific/linux/alsa-project/alsa-firmware { };
+  alsa-lib = callPackage ../os-specific/linux/alsa-project/alsa-lib { };
+  alsa-oss = callPackage ../os-specific/linux/alsa-project/alsa-oss { };
+  alsa-plugins = callPackage ../os-specific/linux/alsa-project/alsa-plugins { };
+  alsa-plugins-wrapper = callPackage ../os-specific/linux/alsa-project/alsa-plugins/wrapper.nix { };
+  alsa-tools = callPackage ../os-specific/linux/alsa-project/alsa-tools { };
+  alsa-topology-conf = callPackage ../os-specific/linux/alsa-project/alsa-topology-conf { };
+  alsa-ucm-conf = callPackage ../os-specific/linux/alsa-project/alsa-ucm-conf { };
+  alsa-utils = callPackage ../os-specific/linux/alsa-project/alsa-utils {
     fftw = fftwFloat;
   };
-  alsaOss = callPackage ../os-specific/linux/alsa-oss { };
-  alsaTools = callPackage ../os-specific/linux/alsa-tools { };
-
-  alsa-ucm-conf = callPackage ../os-specific/linux/alsa-ucm-conf { };
-
-  alsa-topology-conf = callPackage ../os-specific/linux/alsa-topology-conf { };
 
   inherit (callPackage ../misc/arm-trusted-firmware {})
     buildArmTrustedFirmware
@@ -19554,7 +20165,7 @@ in
 
   inherit (callPackages ../os-specific/linux/apparmor { python = python3; })
     libapparmor apparmor-utils apparmor-bin-utils apparmor-parser apparmor-pam
-    apparmor-profiles apparmor-kernel-patches;
+    apparmor-profiles apparmor-kernel-patches apparmorRulesFromClosure;
 
   aseq2json = callPackage ../os-specific/linux/aseq2json {};
 
@@ -19830,8 +20441,6 @@ in
 
   kbd = callPackage ../os-specific/linux/kbd { };
 
-  kbdKeymaps = callPackage ../os-specific/linux/kbd/keymaps.nix { };
-
   kbdlight = callPackage ../os-specific/linux/kbdlight { };
 
   kmscon = callPackage ../os-specific/linux/kmscon { };
@@ -19890,7 +20499,7 @@ in
   lkl = callPackage ../applications/virtualization/lkl { };
 
   inherit (callPackages ../os-specific/linux/kernel-headers { })
-    linuxHeaders;
+    linuxHeaders makeLinuxHeaders;
 
   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
 
@@ -19995,7 +20604,7 @@ in
     ];
   };
 
-  linux_5_11 = callPackage ../os-specific/linux/kernel/linux-5.11.nix {
+  linux_5_12 = callPackage ../os-specific/linux/kernel/linux-5.12.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
@@ -20061,11 +20670,11 @@ in
     ];
   };
 
-  /* Linux kernel modules are inherently tied to a specific kernel.  So
-     rather than provide specific instances of those packages for a
-     specific kernel, we have a function that builds those packages
-     for a specific kernel.  This function can then be called for
-     whatever kernel you're using. */
+  /*  Linux kernel modules are inherently tied to a specific kernel.  So
+      rather than provide specific instances of those packages for a
+      specific kernel, we have a function that builds those packages
+      for a specific kernel.  This function can then be called for
+      whatever kernel you're using. */
 
   linuxPackagesFor = kernel_: lib.makeExtensible (self: with self; {
     callPackage = newScope self;
@@ -20100,8 +20709,6 @@ in
 
     bbswitch = callPackage ../os-specific/linux/bbswitch {};
 
-    ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
-
     chipsec = callPackage ../tools/security/chipsec {
       inherit kernel;
       withDriver = true;
@@ -20125,6 +20732,8 @@ in
 
     gcadapter-oc-kmod = callPackage ../os-specific/linux/gcadapter-oc-kmod { };
 
+    hid-nintendo = callPackage ../os-specific/linux/hid-nintendo { };
+
     hyperv-daemons = callPackage ../os-specific/linux/hyperv-daemons { };
 
     e1000e = if lib.versionOlder kernel.version "4.10" then  callPackage ../os-specific/linux/e1000e {} else null;
@@ -20153,7 +20762,6 @@ in
 
     nvidiaPackages = dontRecurseIntoAttrs (callPackage ../os-specific/linux/nvidia-x11 { });
 
-    nvidia_x11_legacy304   = nvidiaPackages.legacy_304;
     nvidia_x11_legacy340   = nvidiaPackages.legacy_340;
     nvidia_x11_legacy390   = nvidiaPackages.legacy_390;
     nvidia_x11_beta        = nvidiaPackages.beta;
@@ -20196,7 +20804,7 @@ in
 
     facetimehd = callPackage ../os-specific/linux/facetimehd { };
 
-    tuxedo-keyboard = callPackage ../os-specific/linux/tuxedo-keyboard { };
+    tuxedo-keyboard = if lib.versionAtLeast kernel.version "4.14" then callPackage ../os-specific/linux/tuxedo-keyboard { } else null;
 
     jool = callPackage ../os-specific/linux/jool { };
 
@@ -20206,9 +20814,8 @@ in
 
     mxu11x0 = callPackage ../os-specific/linux/mxu11x0 { };
 
-    /* compiles but has to be integrated into the kernel somehow
-       Let's have it uncommented and finish it..
-    */
+    # compiles but has to be integrated into the kernel somehow
+    # Let's have it uncommented and finish it..
     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
 
     netatop = callPackage ../os-specific/linux/netatop { };
@@ -20246,6 +20853,8 @@ in
 
     v86d = callPackage ../os-specific/linux/v86d { };
 
+    veikk-linux-driver = callPackage ../os-specific/linux/veikk-linux-driver { };
+
     vendor-reset = callPackage ../os-specific/linux/vendor-reset { };
 
     vhba = callPackage ../misc/emulators/cdemu/vhba.nix { };
@@ -20267,13 +20876,15 @@ in
     zenpower = callPackage ../os-specific/linux/zenpower { };
 
     inherit (callPackages ../os-specific/linux/zfs {
-      configFile = "kernel";
-      inherit kernel;
-     }) zfsStable zfsUnstable;
-
-     zfs = zfsStable;
+        configFile = "kernel";
+        inherit kernel;
+      }) zfsStable zfsUnstable;
+    zfs = zfsStable;
 
-     can-isotp = callPackage ../os-specific/linux/can-isotp { };
+    can-isotp = callPackage ../os-specific/linux/can-isotp { };
+  } // lib.optionalAttrs (config.allowAliases or false) {
+    # aliases or removed packages
+    ati_drivers_x11 = throw "ati drivers are no longer supported by any kernel >=4.1"; # added 2021-05-18
   });
 
   # The current default kernel / kernel modules.
@@ -20282,7 +20893,7 @@ in
 
   # Update this when adding the newest kernel major version!
   # And update linux_latest_for_hardened below if the patches are already available
-  linuxPackages_latest = linuxPackages_5_11;
+  linuxPackages_latest = linuxPackages_5_12;
   linux_latest = linuxPackages_latest.kernel;
 
   # Realtime kernel packages.
@@ -20306,7 +20917,7 @@ in
   linuxPackages_4_19 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_19);
   linuxPackages_5_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_4);
   linuxPackages_5_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_10);
-  linuxPackages_5_11 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_11);
+  linuxPackages_5_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_12);
 
   # When adding to the list above:
   # - Update linuxPackages_latest to the latest version
@@ -20339,7 +20950,7 @@ in
   # Hardened Linux
   hardenedLinuxPackagesFor = kernel': overrides:
     let # Note: We use this hack since the hardened patches can lag behind and we don't want to delay updates:
-      linux_latest_for_hardened = pkgs.linux_5_11;
+      linux_latest_for_hardened = pkgs.linux_5_12;
       kernel = (if kernel' == pkgs.linux_latest then linux_latest_for_hardened else kernel').override overrides;
     in linuxPackagesFor (kernel.override {
       structuredExtraConfig = import ../os-specific/linux/kernel/hardened/config.nix {
@@ -20517,8 +21128,9 @@ in
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
 
-  nettools = if stdenv.isLinux then callPackage ../os-specific/linux/net-tools { }
-             else unixtools.nettools;
+  nettools = if stdenv.isLinux
+    then callPackage ../os-specific/linux/net-tools { }
+    else unixtools.nettools;
 
   nettools_mptcp = callPackage ../os-specific/linux/net-tools/mptcp.nix { };
 
@@ -20637,6 +21249,8 @@ in
 
   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
 
+  octomap = callPackage ../development/libraries/octomap { };
+
   odp-dpdk = callPackage ../os-specific/linux/odp-dpdk { };
 
   odroid-xu3-bootloader = callPackage ../tools/misc/odroid-xu3-bootloader { };
@@ -20717,15 +21331,16 @@ in
 
   prayer = callPackage ../servers/prayer { };
 
-  procps = if stdenv.isLinux then callPackage ../os-specific/linux/procps-ng { }
-           else unixtools.procps;
+  procps = if stdenv.isLinux
+    then callPackage ../os-specific/linux/procps-ng { }
+    else unixtools.procps;
 
   procdump = callPackage ../os-specific/linux/procdump { };
 
   prototool = callPackage ../development/tools/prototool { };
 
   qemu_kvm = lowPrio (qemu.override { hostCpuOnly = true; });
-  qemu_full = lowPrio (qemu.override { smbdSupport = true; cephSupport = true; });
+  qemu_full = lowPrio (qemu.override { smbdSupport = true; cephSupport = true; glusterfsSupport = true; });
 
   # See `xenPackages` source for explanations.
   # Building with `xen` instead of `xen-slim` is possible, but makes no sense.
@@ -21014,6 +21629,10 @@ in
 
   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant { };
 
+  wpa_supplicant_ro_ssids = wpa_supplicant.override {
+    readOnlyModeSSIDs = true;
+  };
+
   wpa_supplicant_gui = libsForQt5.callPackage ../os-specific/linux/wpa_supplicant/gui.nix { };
 
   xf86_input_cmt = callPackage ../os-specific/linux/xf86-input-cmt { };
@@ -21334,6 +21953,8 @@ in
 
   helvetica-neue-lt-std = callPackage ../data/fonts/helvetica-neue-lt-std { };
 
+  helvum = callPackage ../applications/audio/helvum { };
+
   hetzner-kube = callPackage ../applications/networking/cluster/hetzner-kube { };
 
   hicolor-icon-theme = callPackage ../data/icons/hicolor-icon-theme { };
@@ -21397,7 +22018,7 @@ in
   kopia = callPackage ../tools/backup/kopia { };
 
   kora-icon-theme = callPackage ../data/icons/kora-icon-theme {
-    inherit (gnome3) adwaita-icon-theme;
+    inherit (gnome) adwaita-icon-theme;
     inherit (libsForQt5.kdeFrameworks) breeze-icons;
   };
 
@@ -21547,8 +22168,6 @@ in
 
   nordic = callPackage ../data/themes/nordic { };
 
-  nordic-polar = callPackage ../data/themes/nordic-polar { };
-
   inherit (callPackages ../data/fonts/noto-fonts {})
     noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-emoji-blob-bin noto-fonts-extra;
 
@@ -21669,6 +22288,8 @@ in
 
   qogir-theme = callPackage ../data/themes/qogir { };
 
+  quintom-cursor-theme = callPackage ../data/icons/quintom-cursor-theme { };
+
   redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
 
   route159 = callPackage ../data/fonts/route159 { };
@@ -21818,6 +22439,8 @@ in
 
   theano = callPackage ../data/fonts/theano { };
 
+  tela-icon-theme = callPackage ../data/icons/tela-icon-theme { };
+
   template-glib = callPackage ../development/libraries/template-glib { };
 
   tempora_lgc = callPackage ../data/fonts/tempora-lgc { };
@@ -21862,7 +22485,6 @@ in
   ucs-fonts = callPackage ../data/fonts/ucs-fonts
     { inherit (buildPackages.xorg) fonttosfnt mkfontscale; };
 
-
   ultimate-oldschool-pc-font-pack = callPackage ../data/fonts/ultimate-oldschool-pc-font-pack { };
 
   ultralist = callPackage ../applications/misc/ultralist { };
@@ -21870,7 +22492,7 @@ in
   undefined-medium = callPackage ../data/fonts/undefined-medium { };
 
   uni-vga = callPackage ../data/fonts/uni-vga
-     { inherit (buildPackages.xorg) fonttosfnt mkfontscale; };
+    { inherit (buildPackages.xorg) fonttosfnt mkfontscale; };
 
   unicode-character-database = callPackage ../data/misc/unicode-character-database { };
 
@@ -21879,7 +22501,7 @@ in
   unihan-database = callPackage ../data/misc/unihan-database { };
 
   unifont = callPackage ../data/fonts/unifont
-     { inherit (buildPackages.xorg) fonttosfnt mkfontscale; };
+    { inherit (buildPackages.xorg) fonttosfnt mkfontscale; };
 
   unifont_upper = callPackage ../data/fonts/unifont_upper { };
 
@@ -21933,11 +22555,13 @@ in
 
   yaru-theme = callPackage ../data/themes/yaru {};
 
+  yaru-remix-theme = callPackage ../data/themes/yaru-remix {};
+
   zafiro-icons = callPackage ../data/icons/zafiro-icons {
     inherit (plasma5Packages) breeze-icons;
   };
 
-  zeal = libsForQt514.callPackage ../data/documentation/zeal { };
+  zeal = libsForQt5.callPackage ../data/documentation/zeal { };
 
   zilla-slab = callPackage ../data/fonts/zilla-slab { };
 
@@ -22148,10 +22772,6 @@ in
 
   avrdudess = callPackage ../applications/misc/avrdudess { };
 
-  avxsynth = callPackage ../applications/video/avxsynth {
-    libjpeg = libjpeg_original; # error: 'JCOPYRIGHT_SHORT' was not declared in this scope
-  };
-
   awesome-4-0 = callPackage ../applications/window-managers/awesome {
     cairo = cairo.override { xcbSupport = true; };
     inherit (texFunctions) fontsConf;
@@ -22160,7 +22780,7 @@ in
 
   awesomebump = libsForQt5.callPackage ../applications/graphics/awesomebump { };
 
-  inherit (gnome3) baobab;
+  inherit (gnome) baobab;
 
   backintime-common = callPackage ../applications/networking/sync/backintime/common.nix { };
 
@@ -22221,7 +22841,7 @@ in
     (callPackage ../applications/science/electronics/bitscope/packages.nix { });
 
   bitwig-studio1 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio1.nix {
-    inherit (gnome3) zenity;
+    inherit (gnome) zenity;
     libxkbcommon = libxkbcommon_7;
   };
   bitwig-studio2 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio2.nix {
@@ -22305,9 +22925,9 @@ in
 
   caerbannog = callPackage ../applications/misc/caerbannog { };
 
-  cage = callPackage ../applications/window-managers/cage {
-    wlroots = wlroots_0_12;
-  };
+  cardboard = callPackage ../applications/window-managers/cardboard { };
+
+  cage = callPackage ../applications/window-managers/cage { };
 
   calf = callPackage ../applications/audio/calf {
       inherit (gnome2) libglade;
@@ -22381,6 +23001,8 @@ in
 
   bookworm = callPackage ../applications/office/bookworm { };
 
+  boops = callPackage ../applications/audio/boops { };
+
   CHOWTapeModel = callPackage ../applications/audio/CHOWTapeModel { };
 
   chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {});
@@ -22434,7 +23056,6 @@ in
   cmus = callPackage ../applications/audio/cmus {
     inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio;
     libjack = libjack2;
-    ffmpeg = ffmpeg_2;
   };
 
   cmusfm = callPackage ../applications/audio/cmusfm { };
@@ -22442,6 +23063,10 @@ in
   cni = callPackage ../applications/networking/cluster/cni {};
   cni-plugins = callPackage ../applications/networking/cluster/cni/plugins.nix {};
 
+  dnsname-cni = callPackage ../applications/networking/cluster/dnsname-cni {};
+
+  multus-cni = callPackage ../applications/networking/cluster/multus-cni {};
+
   cntr = callPackage ../applications/virtualization/cntr { };
 
   communi = libsForQt5.callPackage ../applications/networking/irc/communi { };
@@ -22602,7 +23227,8 @@ in
 
   dmrconfig = callPackage ../applications/radio/dmrconfig { };
 
-  dmtx-utils = callPackage (callPackage ../tools/graphics/dmtx-utils) {
+  dmtx-utils = callPackage ../tools/graphics/dmtx-utils {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
   };
 
   inherit (callPackage ../applications/virtualization/docker {})
@@ -22610,6 +23236,7 @@ in
 
   docker = docker_20_10;
   docker-edge = docker_20_10;
+  docker-client = docker.override { clientOnly = true; };
 
   docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
 
@@ -22678,7 +23305,11 @@ in
 
   dwl = callPackage ../applications/window-managers/dwl { };
 
-  dwm = callPackage ../applications/window-managers/dwm { };
+  dwm = callPackage ../applications/window-managers/dwm {
+    # dwm is configured entirely through source modification. Allow users to
+    # specify patches through nixpkgs.config.dwm.patches
+    patches = config.dwm.patches or [];
+  };
 
   dwmblocks = callPackage ../applications/misc/dwmblocks { };
 
@@ -22686,6 +23317,8 @@ in
 
   dynamips = callPackage ../applications/virtualization/dynamips { };
 
+  exploitdb = callPackage ../tools/security/exploitdb { };
+
   evilwm = callPackage ../applications/window-managers/evilwm {
     patches = config.evilwm.patches or [];
   };
@@ -22704,6 +23337,10 @@ in
     jdk = jdk11;
   });
 
+  ecpdap = callPackage ../development/tools/ecpdap {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
   ecs-agent = callPackage ../applications/virtualization/ecs-agent { };
 
   ed = callPackage ../applications/editors/ed { };
@@ -22740,7 +23377,7 @@ in
     libXaw = xorg.libXaw;
     Xaw3d = null;
     gconf = null;
-    alsaLib = null;
+    alsa-lib = null;
     acl = null;
     gpm = null;
     inherit (darwin.apple_sdk.frameworks) AppKit GSS ImageIO;
@@ -22766,7 +23403,7 @@ in
     pkgs' = pkgs;  # default pkgs used for bootstrapping the emacs package set
   };
 
-  inherit (gnome3) empathy;
+  inherit (gnome) empathy;
 
   enhanced-ctorrent = callPackage ../applications/networking/enhanced-ctorrent { };
 
@@ -22780,7 +23417,7 @@ in
 
   epgstation = callPackage ../applications/video/epgstation { };
 
-  inherit (gnome3) epiphany;
+  inherit (gnome) epiphany;
 
   ephemeral = callPackage ../applications/networking/browsers/ephemeral { };
 
@@ -22835,8 +23472,8 @@ in
 
   keeweb = callPackage ../applications/misc/keeweb { };
 
-  inherit (gnome3) evince;
-  evolution-data-server = gnome3.evolution-data-server;
+  inherit (gnome) evince;
+  evolution-data-server = gnome.evolution-data-server;
   evolution-ews = callPackage ../applications/networking/mailreaders/evolution/evolution-ews { };
   evolution = callPackage ../applications/networking/mailreaders/evolution/evolution { };
   evolutionWithPlugins = callPackage ../applications/networking/mailreaders/evolution/evolution/wrapper.nix { plugins = [ evolution evolution-ews ]; };
@@ -22906,7 +23543,7 @@ in
   flwrap = callPackage ../applications/radio/flwrap { };
 
   fluidsynth = callPackage ../applications/audio/fluidsynth {
-     inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio CoreMIDI CoreServices;
+    inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio CoreMIDI CoreServices;
   };
   fluidsynth_1 = fluidsynth.override { version = "1"; };
 
@@ -22980,7 +23617,7 @@ in
   # A build without gui components and other utilites not needed for end user
   # libraries
   gnuradioMinimal = gnuradio.override {
-    wrap = false;
+    doWrap = false;
     unwrapped = gnuradio.unwrapped.override {
       volk = volk.override {
         # So it will not reference python
@@ -23010,7 +23647,7 @@ in
   # A build without gui components and other utilites not needed if gnuradio is
   # used as a c++ library.
   gnuradio3_8Minimal = gnuradio3_8.override {
-    wrap = false;
+    doWrap = false;
     unwrapped = gnuradio3_8.unwrapped.override {
       volk = volk.override {
         enableModTool = false;
@@ -23039,7 +23676,7 @@ in
   # A build without gui components and other utilites not needed if gnuradio is
   # used as a c++ library.
   gnuradio3_7Minimal = gnuradio3_7.override {
-    wrap = false;
+    doWrap = false;
     unwrapped = gnuradio3_7.unwrapped.override {
       volk = volk.override {
         enableModTool = false;
@@ -23072,7 +23709,7 @@ in
 
   gomuks = callPackage ../applications/networking/instant-messengers/gomuks { };
 
-  inherit (ocamlPackages) google-drive-ocamlfuse;
+  inherit (ocaml-ng.ocamlPackages_4_10) google-drive-ocamlfuse;
 
   googler = callPackage ../applications/misc/googler {
     python = python3;
@@ -23114,7 +23751,7 @@ in
 
   gtimelog = with python3Packages; toPythonApplication gtimelog;
 
-  inherit (gnome3) gucharmap;
+  inherit (gnome) gucharmap;
 
   guitarix = callPackage ../applications/audio/guitarix {
     fftw = fftwSinglePrec;
@@ -23252,6 +23889,7 @@ in
       boost
       matplotlib
       pivy
+      ply
       pycollada
       pyside2
       pyside2-tools
@@ -23392,7 +24030,7 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  inherit (gnome3) gitg;
+  inherit (gnome) gitg;
 
   gmrun = callPackage ../applications/misc/gmrun {};
 
@@ -23477,6 +24115,8 @@ in
 
   gmu = callPackage ../applications/audio/gmu { };
 
+  gnaural = callPackage ../applications/audio/gnaural { };
+
   gnome_mplayer = callPackage ../applications/video/gnome-mplayer { };
 
   gnumeric = callPackage ../applications/office/gnumeric { };
@@ -23525,7 +24165,7 @@ in
   celluloid = callPackage ../applications/video/celluloid { };
 
   gnome-recipes = callPackage ../applications/misc/gnome-recipes {
-    inherit (gnome3) gnome-autoar;
+    inherit (gnome) gnome-autoar;
   };
 
   gollum = callPackage ../applications/misc/gollum { };
@@ -23534,7 +24174,7 @@ in
 
   googleearth = callPackage ../applications/misc/googleearth { };
 
-  googleearth-pro = callPackage ../applications/misc/googleearth-pro { };
+  googleearth-pro = libsForQt5.callPackage ../applications/misc/googleearth-pro { };
 
   google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome2.GConf; };
 
@@ -23577,7 +24217,7 @@ in
   gv = callPackage ../applications/misc/gv { };
 
   gvisor = callPackage ../applications/virtualization/gvisor {
-    go = go_1_14;
+    go = go_1_16;
   };
 
   gvisor-containerd-shim = callPackage ../applications/virtualization/gvisor/containerd-shim.nix { };
@@ -23733,17 +24373,12 @@ in
 
   pinboard = with python3Packages; toPythonApplication pinboard;
 
-  pinboard-notes-backup = haskell.lib.overrideCabal
-    (haskell.lib.generateOptparseApplicativeCompletion "pnbackup"
-      haskellPackages.pinboard-notes-backup)
-    (drv: {
-      postInstall = ''
-        install -D man/pnbackup.1 $out/share/man/man1/pnbackup.1
-      '' + (drv.postInstall or "");
-    });
+  pinboard-notes-backup = haskell.lib.justStaticExecutables haskellPackages.pinboard-notes-backup;
 
   pixelnuke = callPackage ../applications/graphics/pixelnuke { };
 
+  pmbootstrap = python3Packages.callPackage ../tools/misc/pmbootstrap/default.nix { };
+
   slack = callPackage ../applications/networking/instant-messengers/slack { };
 
   slack-cli = callPackage ../tools/networking/slack-cli { };
@@ -23762,6 +24397,8 @@ in
 
   spectrwm = callPackage ../applications/window-managers/spectrwm { };
 
+  spot = callPackage ../applications/audio/spot { };
+
   spotify-cli-linux = callPackage ../applications/audio/spotify-cli-linux { };
 
   spotifyd = callPackage ../applications/audio/spotifyd {
@@ -23798,9 +24435,7 @@ in
 
   wbg = callPackage ../applications/misc/wbg { };
 
-  hikari = callPackage ../applications/window-managers/hikari {
-    wlroots = wlroots_0_12;
-  };
+  hikari = callPackage ../applications/window-managers/hikari { };
 
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
@@ -23862,9 +24497,7 @@ in
 
   i3-wk-switch = callPackage ../applications/window-managers/i3/wk-switch.nix { };
 
-  waybox = callPackage ../applications/window-managers/waybox {
-    wlroots = wlroots_0_12;
-  };
+  waybox = callPackage ../applications/window-managers/waybox { };
 
   workstyle = callPackage ../applications/window-managers/i3/workstyle.nix { };
 
@@ -23880,7 +24513,7 @@ in
 
   id3v2 = callPackage ../applications/audio/id3v2 { };
 
-  ideamaker = callPackage ../applications/misc/ideamaker { };
+  ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { };
 
   ifenslave = callPackage ../os-specific/linux/ifenslave { };
 
@@ -23927,7 +24560,7 @@ in
   };
 
   imagemagick6 = callPackage ../applications/graphics/ImageMagick/6.x.nix {
-    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
     ghostscript = null;
   };
 
@@ -23960,7 +24593,7 @@ in
   });
 
   imagemagickBig = lowPrio (callPackage ../applications/graphics/ImageMagick/7.0.nix {
-    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
   });
 
   inherit (nodePackages) imapnotify;
@@ -24107,6 +24740,8 @@ in
 
   kbibtex = libsForQt5.callPackage ../applications/office/kbibtex { };
 
+  kdeltachat = libsForQt5.callPackage ../applications/networking/instant-messengers/kdeltachat { };
+
   kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
 
   kdevelop-unwrapped = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
@@ -24130,6 +24765,10 @@ in
 
   kexi = libsForQt514.callPackage ../applications/office/kexi { };
 
+  kgt = callPackage ../development/tools/kgt {
+    inherit (skawarePackages) cleanPackaging;
+  };
+
   khronos = callPackage ../applications/office/khronos { };
 
   keyfinder = libsForQt5.callPackage ../applications/audio/keyfinder { };
@@ -24146,11 +24785,6 @@ in
 
   kile = libsForQt5.callPackage ../applications/editors/kile { };
 
-  kino = callPackage ../applications/video/kino {
-    inherit (gnome2) libglade;
-    ffmpeg = ffmpeg_2;
-  };
-
   kitsas = libsForQt5.callPackage ../applications/office/kitsas { };
 
   kiwix = libsForQt5.callPackage ../applications/misc/kiwix { };
@@ -24231,6 +24865,8 @@ in
 
   linkerd = callPackage ../applications/networking/cluster/linkerd { };
 
+  kile-wl = callPackage ../applications/misc/kile-wl { };
+
   kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
 
   wrapHelm = callPackage ../applications/networking/cluster/helm/wrapper.nix { };
@@ -24348,9 +24984,7 @@ in
 
   liferea = callPackage ../applications/networking/newsreaders/liferea { };
 
-  lightworks = callPackage ../applications/video/lightworks {
-    portaudio = portaudio2014;
-  };
+  lightworks = callPackage ../applications/video/lightworks { };
 
   lingot = callPackage ../applications/audio/lingot { };
 
@@ -24402,7 +25036,7 @@ in
 
   lrzsz = callPackage ../tools/misc/lrzsz { };
 
-  lsp-plugins = callPackage ../applications/audio/lsp-plugins { };
+  lsp-plugins = callPackage ../applications/audio/lsp-plugins { php = php74; };
 
   luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
 
@@ -24436,7 +25070,7 @@ in
   luppp = callPackage ../applications/audio/luppp { };
 
   lutris-unwrapped = python3.pkgs.callPackage ../applications/misc/lutris {
-    inherit (gnome3) gnome-desktop;
+    inherit (gnome) gnome-desktop;
     wine = wineWowPackages.staging;
   };
   lutris = callPackage ../applications/misc/lutris/fhsenv.nix {
@@ -24509,6 +25143,8 @@ in
       canonicaljson;
   };
 
+  matrix-commander = callPackage ../applications/networking/instant-messengers/matrix-commander { };
+
   matrix-dl = callPackage ../applications/networking/instant-messengers/matrix-dl { };
 
   matrix-recorder = callPackage ../applications/networking/instant-messengers/matrix-recorder {};
@@ -24543,7 +25179,7 @@ in
 
   melonDS = libsForQt5.callPackage ../misc/emulators/melonDS { };
 
-  meme = callPackage ../applications/graphics/meme { };
+  meme-image-generator = callPackage ../applications/graphics/meme-image-generator { };
 
   meme-suite = callPackage ../applications/science/biology/meme-suite { };
 
@@ -24584,6 +25220,8 @@ in
 
   mikmod = callPackage ../applications/audio/mikmod { };
 
+  miniaudicle = callPackage ../applications/audio/miniaudicle { };
+
   minicom = callPackage ../tools/misc/minicom { };
 
   minimodem = callPackage ../applications/radio/minimodem { };
@@ -24609,7 +25247,7 @@ in
   mjpg-streamer = callPackage ../applications/video/mjpg-streamer { };
 
   mldonkey = callPackage ../applications/networking/p2p/mldonkey {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_05;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_08;
   };
 
   MMA = callPackage ../applications/audio/MMA { };
@@ -24647,7 +25285,6 @@ in
 
   monotone = callPackage ../applications/version-management/monotone {
     lua = lua5;
-    botan = botan.override (x: { openssl = null; });
   };
 
   monotoneViz = callPackage ../applications/version-management/monotone-viz {
@@ -24679,6 +25316,7 @@ in
     mopidy-mpd
     mopidy-mpris
     mopidy-musicbox-webclient
+    mopidy-podcast
     mopidy-scrobbler
     mopidy-somafm
     mopidy-soundcloud
@@ -24732,6 +25370,8 @@ in
 
   rofi-file-browser = callPackage ../applications/misc/rofi-file-browser { };
 
+  rofi-power-menu = callPackage ../applications/misc/rofi-power-menu { };
+
   ympd = callPackage ../applications/audio/ympd { };
 
   # a somewhat more maintained fork of ympd
@@ -24773,6 +25413,7 @@ in
     simple-mpv-webui = callPackage ../applications/video/mpv/scripts/simple-mpv-webui.nix {};
     sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {};
     thumbnail = callPackage ../applications/video/mpv/scripts/thumbnail.nix { };
+    youtube-quality = callPackage ../applications/video/mpv/scripts/youtube-quality.nix { };
   };
 
   mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };
@@ -24823,6 +25464,7 @@ in
   mutt-with-sidebar = mutt.override {
     withSidebar = true;
   };
+  mutt-wizard = callPackage ../tools/misc/mutt-wizard { };
 
   mwic = callPackage ../applications/misc/mwic {
     pythonPackages = python3Packages;
@@ -24836,13 +25478,13 @@ in
 
   natron = callPackage ../applications/video/natron { };
 
+  natural-docs = callPackage ../applications/misc/natural-docs { };
+
   neocomp  = callPackage ../applications/window-managers/neocomp { };
 
   newsflash = callPackage ../applications/networking/feedreaders/newsflash { };
 
-  nicotine-plus = callPackage ../applications/networking/soulseek/nicotine-plus {
-    geoip = geoipWithDatabase;
-  };
+  nicotine-plus = callPackage ../applications/networking/soulseek/nicotine-plus { };
 
   nice-dcv-client = callPackage ../applications/networking/remote/nice-dcv-client { };
 
@@ -24873,6 +25515,8 @@ in
 
   openshift = callPackage ../applications/networking/cluster/openshift { };
 
+  opsdroid = callPackage ../applications/networking/opsdroid { };
+
   oroborus = callPackage ../applications/window-managers/oroborus {};
 
   osm2pgsql = callPackage ../tools/misc/osm2pgsql { };
@@ -24907,9 +25551,8 @@ in
 
   plank = callPackage ../applications/misc/plank { };
 
-  playonlinux = callPackage ../applications/misc/playonlinux {
-     stdenv = stdenv_32bit;
-  };
+  playonlinux = callPackage ../applications/misc/playonlinux
+    { stdenv = stdenv_32bit; };
 
   pleroma-bot = python3Packages.callPackage ../development/python-modules/pleroma-bot { };
 
@@ -24940,6 +25583,8 @@ in
 
   ptex = callPackage ../development/libraries/ptex {};
 
+  pyright = nodePackages.pyright;
+
   qbec = callPackage ../applications/networking/cluster/qbec { };
 
   qemacs = callPackage ../applications/editors/qemacs { };
@@ -24969,6 +25614,8 @@ in
 
   softmaker-office = callPackage ../applications/office/softmaker/softmaker_office.nix {};
 
+  songrec = callPackage ../applications/audio/songrec {};
+
   spacegun = callPackage ../applications/networking/cluster/spacegun {};
 
   stride = callPackage ../applications/networking/instant-messengers/stride { };
@@ -25037,7 +25684,9 @@ in
   mupdf = callPackage ../applications/misc/mupdf { };
   mupdf_1_17 = callPackage ../applications/misc/mupdf/1.17.nix { };
 
-  muso = callPackage ../applications/audio/muso { };
+  muso = callPackage ../applications/audio/muso {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
 
   mystem = callPackage ../applications/misc/mystem { };
 
@@ -25067,8 +25716,6 @@ in
 
   navipowm = callPackage ../applications/misc/navipowm { };
 
-  navit = libsForQt5.callPackage ../applications/misc/navit { };
-
   netbeans = callPackage ../applications/editors/netbeans {
     jdk = jdk11;
   };
@@ -25221,7 +25868,7 @@ in
   owamp = callPackage ../applications/networking/owamp { };
 
   vieb = callPackage ../applications/networking/browsers/vieb {
-    electron = electron_11;
+    electron = electron_13;
   };
 
   vivaldi = callPackage ../applications/networking/browsers/vivaldi {};
@@ -25246,10 +25893,7 @@ in
 
   osmscout-server = libsForQt5.callPackage ../applications/misc/osmscout-server { };
 
-  palemoon = callPackage ../applications/networking/browsers/palemoon {
-    # https://developer.palemoon.org/build/linux/
-    stdenv = gcc8Stdenv;
-  };
+  palemoon = callPackage ../applications/networking/browsers/palemoon { };
 
   webbrowser = callPackage ../applications/networking/browsers/webbrowser {};
 
@@ -25318,6 +25962,8 @@ in
   pdfgrep  = callPackage ../tools/typesetting/pdfgrep { };
 
   pdfpc = callPackage ../applications/misc/pdfpc {
+    # https://github.com/pdfpc/pdfpc/issues/594
+    vala = vala_0_50;
     inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-libav;
   };
 
@@ -25433,7 +26079,7 @@ in
 
   pistol = callPackage ../tools/misc/pistol { };
 
-  piston-cli = callPackage ../tools/misc/piston-cli { };
+  piston-cli = callPackage ../tools/misc/piston-cli { python3Packages = python39Packages; };
 
   plater = libsForQt5.callPackage ../applications/misc/plater { };
 
@@ -25732,6 +26378,8 @@ in
 
   reaper = callPackage ../applications/audio/reaper { };
 
+  recapp = callPackage ../applications/video/recapp { };
+
   recode = callPackage ../tools/text/recode { };
 
   reddsaver = callPackage ../applications/misc/reddsaver {
@@ -25742,8 +26390,6 @@ in
 
   remotebox = callPackage ../applications/virtualization/remotebox { };
 
-  # This package is currently broken with libupnp
-  # But when unbroken, it should work with the stable Qt5
   retroshare = libsForQt5.callPackage ../applications/networking/p2p/retroshare { };
 
   rgp = libsForQt5.callPackage ../development/tools/rgp { };
@@ -25770,12 +26416,12 @@ in
   rofi-systemd = callPackage ../tools/system/rofi-systemd { };
 
   rofimoji = callPackage ../applications/misc/rofimoji {
-    inherit (python3Packages) buildPythonApplication ConfigArgParse pyxdg;
+    inherit (python3Packages) buildPythonApplication ConfigArgParse;
   };
 
   rootlesskit = callPackage ../tools/virtualization/rootlesskit {};
 
-  rpcs3 = libsForQt514.callPackage ../misc/emulators/rpcs3 { };
+  rpcs3 = libsForQt5.callPackage ../misc/emulators/rpcs3 { };
 
   rsclock = callPackage ../applications/misc/rsclock { };
 
@@ -25802,6 +26448,10 @@ in
 
   runc = callPackage ../applications/virtualization/runc {};
 
+  rymcast = callPackage ../applications/audio/rymcast {
+    inherit (gnome) zenity;
+  };
+
   uade123 = callPackage ../applications/audio/uade123 {};
 
   udevil = callPackage ../applications/misc/udevil {};
@@ -25824,6 +26474,8 @@ in
 
   scite = callPackage ../applications/editors/scite { };
 
+  scli = with python3Packages; callPackage ../applications/misc/scli { };
+
   scribus = callPackage ../applications/office/scribus {
     inherit (gnome2) libart_lgpl;
   };
@@ -25860,7 +26512,7 @@ in
 
   shutter = callPackage ../applications/graphics/shutter { };
 
-  simple-scan = gnome3.simple-scan;
+  simple-scan = gnome.simple-scan;
 
   siproxd = callPackage ../applications/networking/siproxd { };
 
@@ -26094,14 +26746,7 @@ in
 
   stumpish = callPackage ../applications/window-managers/stumpish {};
 
-  stumpwm = callPackage ../applications/window-managers/stumpwm {
-    version = "latest";
-  };
-
-  stumpwm-git = stumpwm.override {
-    version = "git";
-    inherit sbcl lispPackages;
-  };
+  stumpwm = lispPackages.stumpwm;
 
   sublime = callPackage ../applications/editors/sublime/2 { };
 
@@ -26111,6 +26756,10 @@ in
 
   sublime3-dev = sublime3Packages.sublime3-dev;
 
+  inherit (recurseIntoAttrs (callPackage ../applications/editors/sublime/4/packages.nix { }))
+    sublime4
+    sublime4-dev;
+
   inherit (callPackage ../applications/version-management/sublime-merge {})
     sublime-merge
     sublime-merge-dev;
@@ -26133,7 +26782,7 @@ in
   surf-display = callPackage ../desktops/surf-display { };
 
   surge = callPackage ../applications/audio/surge {
-    inherit (gnome3) zenity;
+    inherit (gnome) zenity;
     git = gitMinimal;
   };
 
@@ -26188,7 +26837,7 @@ in
   };
 
   taffybar = callPackage ../applications/window-managers/taffybar {
-    inherit (haskellPackages) ghcWithPackages;
+    inherit (haskellPackages) ghcWithPackages taffybar;
   };
 
   tagainijisho = callPackage ../applications/office/tagainijisho {};
@@ -26293,20 +26942,11 @@ in
     gtk3Support = true;
   };
 
-  thunderbird-68 = callPackage ../applications/networking/mailreaders/thunderbird/68.nix {
-    inherit (rustPackages) cargo rustc;
-    libpng = libpng_apng;
-    nss = nss_3_44;
-    gtk3Support = true;
-  };
-
   thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
 
   thunderbird-bin = thunderbird-bin-78;
   thunderbird-bin-78 = callPackage ../applications/networking/mailreaders/thunderbird-bin { };
 
-  thunderbird-bin-68 = callPackage ../applications/networking/mailreaders/thunderbird-bin/68.nix { };
-
   ticpp = callPackage ../development/libraries/ticpp { };
 
   ticker = callPackage ../applications/misc/ticker { };
@@ -26323,6 +26963,8 @@ in
 
   timewarrior = callPackage ../applications/misc/timewarrior { };
 
+  timew-sync-server = callPackage ../applications/misc/timew-sync-server { };
+
   timg = callPackage ../tools/graphics/timg { };
 
   timidity = callPackage ../tools/misc/timidity { };
@@ -26388,6 +27030,8 @@ in
 
   transcode = callPackage ../applications/audio/transcode { };
 
+  transcribe = callPackage ../applications/audio/transcribe { };
+
   transmission = callPackage ../applications/networking/p2p/transmission { };
   libtransmission = transmission.override {
     installLib = true;
@@ -26441,6 +27085,10 @@ in
 
   lavalauncher = callPackage ../applications/misc/lavalauncher { };
 
+  t-rec = callPackage ../misc/t-rec {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
   ulauncher = callPackage ../applications/misc/ulauncher { };
 
   twinkle = qt5.callPackage ../applications/networking/instant-messengers/twinkle { };
@@ -26492,7 +27140,7 @@ in
 
   utox = callPackage ../applications/networking/instant-messengers/utox { };
 
-  valentina = libsForQt514.callPackage ../applications/misc/valentina { };
+  valentina = libsForQt512.callPackage ../applications/misc/valentina { };
 
   vbindiff = callPackage ../applications/editors/vbindiff { };
 
@@ -26583,7 +27231,9 @@ in
 
   gnvim = callPackage ../applications/editors/neovim/gnvim/wrapper.nix { };
 
-  neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { pythonPackages = python3Packages; };
+  neovide = callPackage ../applications/editors/neovim/neovide { };
+
+  neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { };
 
   vis = callPackage ../applications/editors/vis {
     inherit (lua52Packages) lpeg;
@@ -26701,6 +27351,8 @@ in
   };
 
   vscode = callPackage ../applications/editors/vscode/vscode.nix { };
+  vscode-fhs = vscode.fhs;
+  vscode-fhsWithPackages = vscode.fhsWithPackages;
 
   vscode-with-extensions = callPackage ../applications/editors/vscode/with-extensions.nix {};
 
@@ -26709,6 +27361,8 @@ in
   vscode-extensions = recurseIntoAttrs (callPackage ../misc/vscode-extensions {});
 
   vscodium = callPackage ../applications/editors/vscode/vscodium.nix { };
+  vscodium-fhs = vscodium.fhs;
+  vscodium-fhsWithPackages = vscodium.fhsWithPackages;
 
   code-server = callPackage ../servers/code-server {
     inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Security;
@@ -26771,8 +27425,7 @@ in
   wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]);
   inherit (wayfireApplications) wayfire wcm;
   wayfireApplications-unwrapped = recurseIntoAttrs (
-    (callPackage ../applications/window-managers/wayfire/applications.nix { }).
-    extend (_: _: { wlroots = wlroots_0_12; })
+    callPackage ../applications/window-managers/wayfire/applications.nix { }
   );
   wayfirePlugins = recurseIntoAttrs (
     callPackage ../applications/window-managers/wayfire/plugins.nix {
@@ -26791,6 +27444,8 @@ in
 
   webmacs = libsForQt5.callPackage ../applications/networking/browsers/webmacs {};
 
+  webssh = with python3Packages; toPythonApplication webssh;
+
   webtorrent_desktop = callPackage ../applications/video/webtorrent_desktop {};
 
   wrapWeechat = callPackage ../applications/networking/irc/weechat/wrapper.nix { };
@@ -26820,9 +27475,7 @@ in
 
   weston = callPackage ../applications/window-managers/weston { pipewire = pipewire_0_2; };
 
-  wio = callPackage ../applications/window-managers/wio {
-    wlroots = wlroots_0_12;
-  };
+  wio = callPackage ../applications/window-managers/wio { };
 
   whitebox-tools = callPackage ../applications/gis/whitebox-tools {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -26841,6 +27494,8 @@ in
 
   write_stylus = libsForQt5.callPackage ../applications/graphics/write_stylus { };
 
+  wlc = callPackage  ../tools/misc/wlc { };
+
   wllvm = callPackage  ../development/tools/wllvm { };
 
   wmname = callPackage ../applications/misc/wmname { };
@@ -27064,6 +27719,8 @@ in
 
   picom = callPackage ../applications/window-managers/picom {};
 
+  xd = callPackage ../applications/networking/p2p/xd {};
+
   xdaliclock = callPackage ../tools/misc/xdaliclock {};
 
   xdg-dbus-proxy = callPackage ../development/libraries/xdg-dbus-proxy { };
@@ -27116,7 +27773,7 @@ in
 
   xfractint = callPackage ../applications/graphics/xfractint {};
 
-  xineUI = callPackage ../applications/video/xine-ui { };
+  xine-ui = callPackage ../applications/video/xine-ui { };
 
   xlsxgrep = callPackage ../applications/search/xlsxgrep { };
 
@@ -27188,6 +27845,10 @@ in
   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix { };
 
   xpra = callPackage ../tools/X11/xpra { };
+  xpraWithNvenc = callPackage ../tools/X11/xpra {
+    withNvenc = true;
+    nvidia_x11 = linuxPackages.nvidia_x11.override { libsOnly = true; };
+  };
   libfakeXinerama = callPackage ../tools/X11/xpra/libfakeXinerama.nix { };
 
 
@@ -27261,7 +27922,7 @@ in
 
   yeetgif = callPackage ../applications/graphics/yeetgif { };
 
-  inherit (gnome3) yelp;
+  inherit (gnome) yelp;
 
   yelp-tools = callPackage ../development/misc/yelp-tools { };
 
@@ -27279,6 +27940,8 @@ in
 
   ytcc = callPackage ../tools/networking/ytcc { };
 
+  ytmdesktop = callPackage ../applications/audio/ytmdesktop { };
+
   zam-plugins = callPackage ../applications/audio/zam-plugins { };
 
   zanshin = libsForQt5.callPackage ../applications/office/zanshin {
@@ -27312,10 +27975,10 @@ in
   zgrviewer = callPackage ../applications/graphics/zgrviewer { };
 
   zgv = callPackage ../applications/graphics/zgv {
-   # Enable the below line for terminal display. Note
-   # that it requires sixel graphics compatible terminals like mlterm
-   # or xterm -ti 340
-   SDL = SDL_sixel;
+    # Enable the below line for terminal display. Note
+    # that it requires sixel graphics compatible terminals like mlterm
+    # or xterm -ti 340
+    SDL = SDL_sixel;
   };
 
   zim = callPackage ../applications/office/zim { };
@@ -27367,6 +28030,8 @@ in
 
   cgminer = callPackage ../applications/blockchains/cgminer { };
 
+  chia = callPackage ../applications/blockchains/chia { };
+
   clightning = callPackage ../applications/blockchains/clightning.nix { };
 
   bitcoin-abc  = libsForQt5.callPackage ../applications/blockchains/bitcoin-abc.nix { boost = boost165; withGui = true; };
@@ -27393,6 +28058,8 @@ in
 
   btcpayserver = callPackage ../applications/blockchains/btcpayserver { };
 
+  charge-lnd = callPackage ../applications/blockchains/charge-lnd { };
+
   cryptop = python3.pkgs.callPackage ../applications/blockchains/cryptop { };
 
   dashpay = callPackage ../applications/blockchains/dashpay.nix { };
@@ -27414,6 +28081,8 @@ in
 
   exodus = callPackage ../applications/blockchains/exodus { };
 
+  faraday = callPackage ../applications/blockchains/faraday { };
+
   go-ethereum = callPackage ../applications/blockchains/go-ethereum.nix {
     inherit (darwin) libobjc;
     inherit (darwin.apple_sdk.frameworks) IOKit;
@@ -27458,7 +28127,7 @@ in
     autoreconfHook = buildPackages.autoreconfHook269;
   };
 
-  ethabi = callPackage ../applications/blockchains/ethabi.nix { };
+  ethabi = callPackage ../applications/blockchains/ethabi { };
 
   pycoin = with python3Packages; toPythonApplication pycoin;
 
@@ -27481,7 +28150,7 @@ in
 
   zcash = callPackage ../applications/blockchains/zcash { stdenv = llvmPackages_11.stdenv; };
 
-  openethereum = callPackage ../applications/blockchains/openethereum { };
+  openethereum = callPackage ../applications/blockchains/openethereum { stdenv = llvmPackages_12.stdenv; };
 
   parity-ui = callPackage ../applications/blockchains/parity-ui { };
 
@@ -27511,7 +28180,7 @@ in
 
   airstrike = callPackage ../games/airstrike { };
 
-  alephone = callPackage ../games/alephone { ffmpeg = ffmpeg_2; };
+  alephone = callPackage ../games/alephone { };
   alephone-durandal = callPackage ../games/alephone/durandal { };
   alephone-eternal = callPackage ../games/alephone/eternal { };
   alephone-evil = callPackage ../games/alephone/evil { };
@@ -27751,6 +28420,8 @@ in
 
   fava = callPackage ../applications/office/fava {};
 
+  fheroes2 = callPackage ../games/fheroes2 {};
+
   fish-fillets-ng = callPackage ../games/fish-fillets-ng {};
 
   flightgear = libsForQt5.callPackage ../games/flightgear { };
@@ -27947,6 +28618,8 @@ in
 
   megaglest = callPackage ../games/megaglest {};
 
+  methane = callPackage ../games/methane { };
+
   mindustry = callPackage ../games/mindustry { };
   mindustry-wayland = callPackage ../games/mindustry { glew = glew-egl; };
 
@@ -28082,10 +28755,7 @@ in
     boost = boost166;
   };
 
-  pinball = callPackage ../games/pinball {
-    autoreconfHook = with buildPackages;
-      autoreconfHook.override { automake = automake115x; };
-  };
+  pinball = callPackage ../games/pinball { };
 
   pingus = callPackage ../games/pingus {};
 
@@ -28103,8 +28773,6 @@ in
 
   prboom = callPackage ../games/prboom { };
 
-  privateer = callPackage ../games/privateer { };
-
   pysolfc = python3Packages.callPackage ../games/pysolfc { };
 
   qqwing = callPackage ../games/qqwing { };
@@ -28268,12 +28936,14 @@ in
     nativeOnly = true;
   }).run;
 
+  steam-tui = callPackage ../games/steam-tui { };
+
   steamcmd = steamPackages.steamcmd;
 
   protontricks = python3Packages.callPackage ../tools/package-management/protontricks {
     inherit steam-run;
     inherit winetricks;
-    inherit (gnome3) zenity;
+    inherit (gnome) zenity;
   };
 
   sdlpop = callPackage ../games/sdlpop { };
@@ -28284,6 +28954,8 @@ in
 
   streamlit = python3Packages.callPackage ../applications/science/machine-learning/streamlit { };
 
+  stt = callPackage ../tools/audio/stt { };
+
   stuntrally = callPackage ../games/stuntrally {
     ogre = ogre1_9;
     mygui = mygui.override {
@@ -28293,7 +28965,9 @@ in
 
   superTux = callPackage ../games/supertux { };
 
-  superTuxKart = callPackage ../games/super-tux-kart { };
+  superTuxKart = callPackage ../games/super-tux-kart {
+    inherit (darwin.apple_sdk.frameworks) Cocoa IOKit OpenAL;
+  };
 
   synthv1 = libsForQt5.callPackage ../applications/audio/synthv1 { };
 
@@ -28337,12 +29011,16 @@ in
 
   toppler = callPackage ../games/toppler { };
 
+  torus-trooper = callPackage ../games/torus-trooper { };
+
   trackballs = callPackage ../games/trackballs { };
 
   tremulous = callPackage ../games/tremulous { };
 
   tts = callPackage ../tools/audio/tts { };
 
+  tumiki-fighters = callPackage ../games/tumiki-fighters { };
+
   tuxpaint = callPackage ../games/tuxpaint { };
 
   tuxtype = callPackage ../games/tuxtype { };
@@ -28375,9 +29053,7 @@ in
 
   ultrastar-manager = libsForQt5.callPackage ../tools/misc/ultrastar-manager { };
 
-  ultrastardx = callPackage ../games/ultrastardx {
-    ffmpeg = ffmpeg_2;
-  };
+  ultrastardx = callPackage ../games/ultrastardx { };
 
   unciv = callPackage ../games/unciv { };
 
@@ -28547,56 +29223,16 @@ in
 
   gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { });
 
-  gnome3 = recurseIntoAttrs (callPackage ../desktops/gnome-3 { });
-
-  gnomeExtensions = recurseIntoAttrs {
-    appindicator = callPackage ../desktops/gnome-3/extensions/appindicator { };
-    arcmenu = callPackage ../desktops/gnome-3/extensions/arcmenu { };
-    caffeine = callPackage ../desktops/gnome-3/extensions/caffeine { };
-    clipboard-indicator = callPackage ../desktops/gnome-3/extensions/clipboard-indicator { };
-    clock-override = callPackage ../desktops/gnome-3/extensions/clock-override { };
-    dash-to-dock = callPackage ../desktops/gnome-3/extensions/dash-to-dock { };
-    dash-to-panel = callPackage ../desktops/gnome-3/extensions/dash-to-panel { };
-    disable-unredirect = callPackage ../desktops/gnome-3/extensions/disable-unredirect { };
-    draw-on-your-screen = callPackage ../desktops/gnome-3/extensions/draw-on-your-screen { };
-    drop-down-terminal = callPackage ../desktops/gnome-3/extensions/drop-down-terminal { };
-    dynamic-panel-transparency = callPackage ../desktops/gnome-3/extensions/dynamic-panel-transparency { };
-    easyScreenCast = callPackage ../desktops/gnome-3/extensions/EasyScreenCast { };
-    emoji-selector = callPackage ../desktops/gnome-3/extensions/emoji-selector { };
-    freon = callPackage ../desktops/gnome-3/extensions/freon { };
-    fuzzy-app-search = callPackage ../desktops/gnome-3/extensions/fuzzy-app-search { };
-    gsconnect = callPackage ../desktops/gnome-3/extensions/gsconnect { };
-    icon-hider = callPackage ../desktops/gnome-3/extensions/icon-hider { };
-    impatience = callPackage ../desktops/gnome-3/extensions/impatience { };
-    material-shell = callPackage ../desktops/gnome-3/extensions/material-shell { };
-    mpris-indicator-button = callPackage ../desktops/gnome-3/extensions/mpris-indicator-button { };
-    night-theme-switcher = callPackage ../desktops/gnome-3/extensions/night-theme-switcher { };
-    no-title-bar = callPackage ../desktops/gnome-3/extensions/no-title-bar { };
-    noannoyance = callPackage ../desktops/gnome-3/extensions/noannoyance { };
-    paperwm = callPackage ../desktops/gnome-3/extensions/paperwm { };
-    pidgin-im-integration = callPackage ../desktops/gnome-3/extensions/pidgin-im-integration { };
-    remove-dropdown-arrows = callPackage ../desktops/gnome-3/extensions/remove-dropdown-arrows { };
-    sound-output-device-chooser = callPackage ../desktops/gnome-3/extensions/sound-output-device-chooser { };
-    system-monitor = callPackage ../desktops/gnome-3/extensions/system-monitor { };
-    taskwhisperer = callPackage ../desktops/gnome-3/extensions/taskwhisperer { };
-    tilingnome = callPackage ../desktops/gnome-3/extensions/tilingnome { };
-    timepp = callPackage ../desktops/gnome-3/extensions/timepp { };
-    topicons-plus = callPackage ../desktops/gnome-3/extensions/topicons-plus { };
-    unite = callPackage ../desktops/gnome-3/extensions/unite { };
-    window-corner-preview = callPackage ../desktops/gnome-3/extensions/window-corner-preview { };
-    window-is-ready-remover = callPackage ../desktops/gnome-3/extensions/window-is-ready-remover { };
-    workspace-matrix = callPackage ../desktops/gnome-3/extensions/workspace-matrix { };
-
-    nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
-    mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
-  } // lib.optionalAttrs (config.allowAliases or false) {
-    unite-shell = gnomeExtensions.unite; # added 2021-01-19
-    arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
-  };
+  gnome = recurseIntoAttrs (callPackage ../desktops/gnome { });
 
-  gnome-connections = callPackage ../desktops/gnome-3/apps/gnome-connections { };
+  inherit (callPackage ../desktops/gnome/extensions { })
+    gnomeExtensions
+    gnome38Extensions
+    gnome40Extensions;
 
-  gnome-tour = callPackage ../desktops/gnome-3/core/gnome-tour { };
+  gnome-connections = callPackage ../desktops/gnome/apps/gnome-connections { };
+
+  gnome-tour = callPackage ../desktops/gnome/core/gnome-tour { };
 
   hhexen = callPackage ../games/hhexen { };
 
@@ -28620,6 +29256,8 @@ in
 
   plasma-applet-volumewin7mixer = libsForQt5.callPackage ../applications/misc/plasma-applet-volumewin7mixer { };
 
+  plasma-pass = libsForQt5.callPackage ../tools/security/plasma-pass { };
+
   inherit (callPackages ../applications/misc/redshift {
     inherit (python3Packages) python pygobject3 pyxdg wrapPython;
     inherit (darwin.apple_sdk.frameworks) CoreLocation ApplicationServices Foundation Cocoa;
@@ -28630,7 +29268,7 @@ in
 
   latte-dock = libsForQt5.callPackage ../applications/misc/latte-dock { };
 
-  gnome-themes-extra = gnome3.gnome-themes-extra;
+  gnome-themes-extra = gnome.gnome-themes-extra;
 
   rox-filer = callPackage ../desktops/rox/rox-filer {
     gtk = gtk2;
@@ -28739,7 +29377,9 @@ in
 
   bppsuite = callPackage ../applications/science/biology/bppsuite { };
 
-  cd-hit = callPackage ../applications/science/biology/cd-hit { };
+  cd-hit = callPackage ../applications/science/biology/cd-hit {
+    inherit (llvmPackages) openmp;
+  };
 
   cmtk = callPackage ../applications/science/biology/cmtk { };
 
@@ -29239,8 +29879,8 @@ in
   elan = callPackage ../applications/science/logic/elan {};
   mathlibtools = with python3Packages; toPythonApplication mathlibtools;
 
-  leo2 = callPackage ../applications/science/logic/leo2 {
-     ocaml = ocaml-ng.ocamlPackages_4_01_0.ocaml;};
+  leo2 = callPackage ../applications/science/logic/leo2
+    { ocaml = ocaml-ng.ocamlPackages_4_01_0.ocaml; };
 
   leo3-bin = callPackage ../applications/science/logic/leo3/binary.nix {};
 
@@ -29564,7 +30204,9 @@ in
     stdenv = if stdenv.cc.isClang then llvmPackages_5.stdenv else gcc8Stdenv;
   });
 
-  rink = callPackage ../applications/science/misc/rink { };
+  rink = callPackage ../applications/science/misc/rink {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   simgrid = callPackage ../applications/science/misc/simgrid { };
 
@@ -29603,7 +30245,7 @@ in
 
   fastjet-contrib = callPackage ../development/libraries/physics/fastjet-contrib { };
 
-  fastnlo = callPackage ../development/libraries/physics/fastnlo { };
+  fastnlo_toolkit = callPackage ../development/libraries/physics/fastnlo_toolkit { };
 
   geant4 = libsForQt5.callPackage ../development/libraries/physics/geant4 { };
 
@@ -29617,7 +30259,9 @@ in
 
   herwig = callPackage ../development/libraries/physics/herwig { };
 
-  lhapdf = callPackage ../development/libraries/physics/lhapdf { };
+  lhapdf = callPackage ../development/libraries/physics/lhapdf {
+    python = python3;
+  };
 
   mela = callPackage ../development/libraries/physics/mela { };
 
@@ -29665,6 +30309,8 @@ in
 
   atlantis = callPackage ../applications/networking/cluster/atlantis { };
 
+  fn-cli = callPackage ../applications/networking/cluster/fn-cli { };
+
   auctex = callPackage ../tools/typesetting/tex/auctex { };
 
   areca = callPackage ../applications/backup/areca {
@@ -29677,6 +30323,8 @@ in
 
   autotiling = python3Packages.callPackage ../misc/autotiling { };
 
+  avell-unofficial-control-center = python3Packages.callPackage ../applications/misc/avell-unofficial-control-center { };
+
   beep = callPackage ../misc/beep { };
 
   bees = callPackage ../tools/filesystems/bees { };
@@ -29761,6 +30409,8 @@ in
 
   darling-dmg = callPackage ../tools/filesystems/darling-dmg { };
 
+  depotdownloader = callPackage ../tools/misc/depotdownloader { };
+
   desmume = callPackage ../misc/emulators/desmume { inherit (pkgs.gnome2) gtkglext libglade; };
 
   dbacl = callPackage ../tools/misc/dbacl { };
@@ -29775,8 +30425,6 @@ in
 
   dbus-map = callPackage ../tools/misc/dbus-map { };
 
-  deepspeech = callPackage ../misc/deepspeech { };
-
   dell-530cdn = callPackage ../misc/drivers/dell-530cdn {};
 
   demjson = with python3Packages; toPythonApplication demjson;
@@ -29831,6 +30479,10 @@ in
 
   faustlive = callPackage ../applications/audio/faust/faustlive.nix { };
 
+  faustPhysicalModeling = callPackage ../applications/audio/faustPhysicalModeling  { };
+
+  faustStk = callPackage ../applications/audio/faustStk  { };
+
   fceux = callPackage ../misc/emulators/fceux { };
 
   flockit = callPackage ../tools/backup/flockit { };
@@ -29963,11 +30615,11 @@ in
   # Exceptions are versions that we need to keep to allow upgrades from older NixOS releases
   inherit (callPackage ../applications/networking/cluster/kops {})
     mkKops
-    kops_1_16
-    kops_1_17
     kops_1_18
+    kops_1_19
+    kops_1_20
     ;
-  kops = kops_1_18;
+  kops = kops_1_20;
 
   lguf-brightness = callPackage ../misc/lguf-brightness { };
 
@@ -29979,6 +30631,8 @@ in
 
   loop = callPackage ../tools/misc/loop { };
 
+  maiko = callPackage ../misc/emulators/maiko { inherit (xorg) libX11; };
+
   mailcore2 = callPackage ../development/libraries/mailcore2 {
     icu = icu58;
   };
@@ -30021,8 +30675,7 @@ in
       })
     nix
     nixStable
-    nixUnstable
-    nixFlakes;
+    nixUnstable;
 
   nixStatic = pkgsStatic.nix;
 
@@ -30032,57 +30685,58 @@ in
 
   nixops-dns = callPackage ../tools/package-management/nixops/nixops-dns.nix { };
 
-  /* Evaluate a NixOS configuration using this evaluation of Nixpkgs.
+  /*
+    Evaluate a NixOS configuration using this evaluation of Nixpkgs.
 
-     With this function you can write, for example, a package that
-     depends on a custom virtual machine image.
+    With this function you can write, for example, a package that
+    depends on a custom virtual machine image.
 
-     Parameter: A module, path or list of those that represent the
+    Parameter:  A module, path or list of those that represent the
                 configuration of the NixOS system to be constructed.
 
-     Result:    An attribute set containing packages produced by this
-                evaluation of NixOS, such as toplevel, kernel and
-                initialRamdisk.
-                The result can be extended in the modules by defining
-                extra attributes in system.build.
-                Alternatively, you may use the result's config and
-                options attributes to query any option.
-
-     Example:
-
-         let
-           myOS = pkgs.nixos ({ lib, pkgs, config, ... }: {
-
-             config.services.nginx = {
-               enable = true;
-               # ...
-             };
-
-             # Use config.system.build to exports relevant parts of a
-             # configuration. The runner attribute should not be
-             # considered a fully general replacement for systemd
-             # functionality.
-             config.system.build.run-nginx = config.systemd.services.nginx.runner;
-           });
-         in
-           myOS.run-nginx
-
-     Unlike in plain NixOS, the nixpkgs.config and
-     nixpkgs.system options will be ignored by default. Instead,
-     nixpkgs.pkgs will have the default value of pkgs as it was
-     constructed right after invoking the nixpkgs function (e.g. the
-     value of import <nixpkgs> { overlays = [./my-overlay.nix]; }
-     but not the value of (import <nixpkgs> {} // { extra = ...; }).
-
-     If you do want to use the config.nixpkgs options, you are
-     probably better off by calling nixos/lib/eval-config.nix
-     directly, even though it is possible to set config.nixpkgs.pkgs.
-
-     For more information about writing NixOS modules, see
-     https://nixos.org/nixos/manual/index.html#sec-writing-modules
-
-     Note that you will need to have called Nixpkgs with the system
-     parameter set to the right value for your deployment target.
+    Result: An attribute set containing packages produced by this
+            evaluation of NixOS, such as toplevel, kernel and
+            initialRamdisk.
+            The result can be extended in the modules by defining
+            extra attributes in system.build.
+            Alternatively, you may use the result's config and
+            options attributes to query any option.
+
+    Example:
+
+        let
+          myOS = pkgs.nixos ({ lib, pkgs, config, ... }: {
+
+            config.services.nginx = {
+              enable = true;
+              # ...
+            };
+
+            # Use config.system.build to exports relevant parts of a
+            # configuration. The runner attribute should not be
+            # considered a fully general replacement for systemd
+            # functionality.
+            config.system.build.run-nginx = config.systemd.services.nginx.runner;
+          });
+        in
+          myOS.run-nginx
+
+    Unlike in plain NixOS, the nixpkgs.config and
+    nixpkgs.system options will be ignored by default. Instead,
+    nixpkgs.pkgs will have the default value of pkgs as it was
+    constructed right after invoking the nixpkgs function (e.g. the
+    value of import <nixpkgs> { overlays = [./my-overlay.nix]; }
+    but not the value of (import <nixpkgs> {} // { extra = ...; }).
+
+    If you do want to use the config.nixpkgs options, you are
+    probably better off by calling nixos/lib/eval-config.nix
+    directly, even though it is possible to set config.nixpkgs.pkgs.
+
+    For more information about writing NixOS modules, see
+    https://nixos.org/nixos/manual/index.html#sec-writing-modules
+
+    Note that you will need to have called Nixpkgs with the system
+    parameter set to the right value for your deployment target.
   */
   nixos =
     configuration:
@@ -30150,11 +30804,11 @@ in
       test:
         let
           loadedTest = if builtins.typeOf test == "path"
-                       then import test
-                       else test;
+            then import test
+            else test;
           calledTest = if pkgs.lib.isFunction loadedTest
-                       then callPackage loadedTest {}
-                       else loadedTest;
+            then callPackage loadedTest {}
+            else loadedTest;
         in
           nixosTesting.makeTest calledTest;
 
@@ -30162,6 +30816,8 @@ in
     (import ../../nixos/lib/make-options-doc/default.nix)
     ({ inherit pkgs lib; } // attrs);
 
+  nixos-install-tools = callPackage ../tools/nix/nixos-install-tools { };
+
   nixui = callPackage ../tools/package-management/nixui { node_webkit = nwjs_0_12; };
 
   nixdoc = callPackage ../tools/nix/nixdoc {};
@@ -30254,6 +30910,8 @@ in
 
   nut = callPackage ../applications/misc/nut { };
 
+  nvd = callPackage ../tools/package-management/nvd { };
+
   solfege = python3Packages.callPackage ../misc/solfege { };
 
   disnix = callPackage ../tools/package-management/disnix { };
@@ -30347,6 +31005,8 @@ in
 
   protocol = python3Packages.callPackage ../applications/networking/protocol { };
 
+  punes = libsForQt5.callPackage ../misc/emulators/punes { };
+
   pykms = callPackage ../tools/networking/pykms { };
 
   pyupgrade = with python3Packages; toPythonApplication pyupgrade;
@@ -30367,6 +31027,8 @@ in
 
   py-wmi-client = callPackage ../tools/networking/py-wmi-client { };
 
+  qdl = callPackage ../tools/misc/qdl { };
+
   rargs = callPackage ../tools/misc/rargs { };
 
   rauc = callPackage ../tools/misc/rauc { };
@@ -30472,6 +31134,8 @@ in
 
   brscan4 = callPackage ../applications/graphics/sane/backends/brscan4 { };
 
+  brscan5 = callPackage ../applications/graphics/sane/backends/brscan5 { };
+
   dsseries = callPackage ../applications/graphics/sane/backends/dsseries { };
 
   sane-airscan = callPackage ../applications/graphics/sane/backends/airscan { };
@@ -30519,7 +31183,9 @@ in
     hasktags = haskellPackages.hasktags;
   };
 
-  spacenavd = callPackage ../misc/drivers/spacenavd { };
+  spacenavd = callPackage ../misc/drivers/spacenavd {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
 
   spacenav-cube-example = callPackage ../applications/misc/spacenav-cube-example { };
 
@@ -30556,6 +31222,7 @@ in
     terraform_0_13
     terraform_0_14
     terraform_0_15
+    terraform_1_0_0
     terraform_plugins_test
     ;
 
@@ -30654,9 +31321,7 @@ in
 
   vbam = callPackage ../misc/emulators/vbam { };
 
-  vice = callPackage ../misc/emulators/vice {
-    giflib = giflib_4_1;
-  };
+  vice = callPackage ../misc/emulators/vice { };
 
   ViennaRNA = callPackage ../applications/science/molecular-dynamics/viennarna { };
 
@@ -30672,7 +31337,7 @@ in
   vimb = wrapFirefox vimb-unwrapped { };
 
   vips = callPackage ../tools/graphics/vips {
-    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
   };
   nip2 = callPackage ../tools/graphics/nip2 { };
 
@@ -30735,7 +31400,7 @@ in
   });
 
   winetricks = callPackage ../misc/emulators/wine/winetricks.nix {
-    inherit (gnome3) zenity;
+    inherit (gnome) zenity;
   };
 
   wishbone-tool = callPackage ../development/tools/misc/wishbone-tool { };
@@ -30812,10 +31477,10 @@ in
   };
 
   xsw = callPackage ../applications/misc/xsw {
-   # Enable the next line to use this in terminal.
-   # Note that it requires sixel capable terminals such as mlterm
-   # or xterm -ti 340
-   SDL = SDL_sixel;
+    # Enable the next line to use this in terminal.
+    # Note that it requires sixel capable terminals such as mlterm
+    # or xterm -ti 340
+    SDL = SDL_sixel;
   };
 
   xteddy = callPackage ../applications/misc/xteddy { };
@@ -30881,6 +31546,8 @@ in
 
   zsnes = pkgsi686Linux.callPackage ../misc/emulators/zsnes { };
 
+  xcp = callPackage ../tools/misc/xcp { };
+
   xcpc = callPackage ../misc/emulators/xcpc { };
 
   zxcvbn-c = callPackage ../development/libraries/zxcvbn-c { };
@@ -30926,8 +31593,6 @@ in
 
   mpvc = callPackage ../applications/misc/mpvc { };
 
-  togglesg-download = callPackage ../tools/misc/togglesg-download { };
-
   discord = import ../applications/networking/instant-messengers/discord {
     branch = "stable";
     inherit pkgs;
@@ -31002,7 +31667,7 @@ in
 
   chrome-export = callPackage ../tools/misc/chrome-export {};
 
-  chrome-gnome-shell = callPackage  ../desktops/gnome-3/extensions/chrome-gnome-shell {};
+  chrome-gnome-shell = callPackage  ../desktops/gnome/extensions/chrome-gnome-shell {};
 
   chrome-token-signing = libsForQt5.callPackage ../tools/security/chrome-token-signing {};
 
@@ -31052,7 +31717,9 @@ in
 
   simplehttp2server = callPackage ../servers/simplehttp2server { };
 
-  simple-http-server = callPackage ../servers/simple-http-server { };
+  simple-http-server = callPackage ../servers/simple-http-server {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   diceware = with python3Packages; toPythonApplication diceware;
 
@@ -31076,8 +31743,12 @@ in
 
   fts = if stdenv.hostPlatform.isMusl then netbsd.fts else null;
 
-  netbsd = callPackages ../os-specific/bsd/netbsd {};
-  netbsdCross = callPackages ../os-specific/bsd/netbsd {
+  bsdSetupHook = makeSetupHook {
+    name = "bsd-setup-hook";
+  } ../os-specific/bsd/setup-hook.sh;
+
+  netbsd = callPackage ../os-specific/bsd/netbsd {};
+  netbsdCross = callPackage ../os-specific/bsd/netbsd {
     stdenv = crossLibcStdenv;
   };
 
@@ -31093,6 +31764,8 @@ in
     python = python3;
   };
 
+  tsukae = callPackage ../applications/misc/tsukae { };
+
   tsung = callPackage ../applications/networking/tsung {};
 
   bcompare = libsForQt5.callPackage ../applications/version-management/bcompare {};
@@ -31130,6 +31803,8 @@ in
 
   kodelife = callPackage ../applications/graphics/kodelife {};
 
+  bunnyfetch = callPackage ../tools/misc/bunnyfetch {};
+
   _3proxy = callPackage ../applications/networking/3proxy {};
 
   pigeon = callPackage ../development/tools/pigeon {};
@@ -31178,6 +31853,8 @@ in
 
   zenstates = callPackage ../os-specific/linux/zenstates {};
 
+  ryzenadj = callPackage ../os-specific/linux/ryzenadj {};
+
   vpsfree-client = callPackage ../tools/virtualization/vpsfree-client {};
 
   gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { };
@@ -31196,15 +31873,19 @@ in
 
   treefmt = callPackage ../development/tools/treefmt { };
 
-  bottom = callPackage ../tools/system/bottom {};
-
-  cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {
-    wlroots = wlroots_0_12;
+  bottom = callPackage ../tools/system/bottom {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation IOKit;
   };
 
+  cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix { };
+
   psftools = callPackage ../os-specific/linux/psftools {};
 
   lc3tools = callPackage ../development/tools/lc3tools {};
 
+  xcolor = callPackage ../tools/graphics/xcolor { };
+
+  zthrottle = callPackage ../tools/misc/zthrottle { };
+
   zktree = callPackage ../applications/misc/zktree {};
 }
diff --git a/nixpkgs/pkgs/top-level/beam-packages.nix b/nixpkgs/pkgs/top-level/beam-packages.nix
index ac9d4ab524e3..334aac359b37 100644
--- a/nixpkgs/pkgs/top-level/beam-packages.nix
+++ b/nixpkgs/pkgs/top-level/beam-packages.nix
@@ -1,4 +1,4 @@
-{ callPackage, wxGTK30, openssl_1_0_2, buildPackages, wxSupport ? true }:
+{ callPackage, wxGTK30, buildPackages, wxSupport ? true }:
 
 rec {
   lib = callPackage ../development/beam-modules/lib.nix { };
@@ -6,14 +6,29 @@ rec {
   # Each
   interpreters = rec {
 
-    # R23 is the default version.
-    erlang = erlangR23; # The main switch to change default Erlang version.
-    erlang_odbc = erlangR23_odbc;
-    erlang_javac = erlangR23_javac;
-    erlang_odbc_javac = erlangR23_odbc_javac;
+    # R24 is the default version.
+    erlang = erlangR24; # The main switch to change default Erlang version.
+    erlang_odbc = erlangR24_odbc;
+    erlang_javac = erlangR24_javac;
+    erlang_odbc_javac = erlangR24_odbc_javac;
 
     # Standard Erlang versions, using the generic builder.
 
+    # R24
+    erlangR24 = lib.callErlang ../development/interpreters/erlang/R24.nix {
+      wxGTK = wxGTK30;
+      # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
+      parallelBuild = true;
+      autoconf = buildPackages.autoconf269;
+      inherit wxSupport;
+    };
+    erlangR24_odbc = erlangR24.override { odbcSupport = true; };
+    erlangR24_javac = erlangR24.override { javacSupport = true; };
+    erlangR24_odbc_javac = erlangR24.override {
+      javacSupport = true;
+      odbcSupport = true;
+    };
+
     # R23
     erlangR23 = lib.callErlang ../development/interpreters/erlang/R23.nix {
       wxGTK = wxGTK30;
@@ -57,47 +72,6 @@ rec {
       odbcSupport = true;
     };
 
-    # R20
-    erlangR20 = lib.callErlang ../development/interpreters/erlang/R20.nix {
-      wxGTK = wxGTK30;
-      autoconf = buildPackages.autoconf269;
-      inherit wxSupport;
-    };
-    erlangR20_odbc = erlangR20.override { odbcSupport = true; };
-    erlangR20_javac = erlangR20.override { javacSupport = true; };
-    erlangR20_odbc_javac = erlangR20.override {
-      javacSupport = true;
-      odbcSupport = true;
-    };
-
-    # R19
-    erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
-      wxGTK = wxGTK30;
-      openssl = openssl_1_0_2;
-      autoconf = buildPackages.autoconf269;
-      inherit wxSupport;
-    };
-    erlangR19_odbc = erlangR19.override { odbcSupport = true; };
-    erlangR19_javac = erlangR19.override { javacSupport = true; };
-    erlangR19_odbc_javac = erlangR19.override {
-      javacSupport = true;
-      odbcSupport = true;
-    };
-
-    # R18
-    erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
-      wxGTK = wxGTK30;
-      openssl = openssl_1_0_2;
-      autoconf = buildPackages.autoconf269;
-      inherit wxSupport;
-    };
-    erlangR18_odbc = erlangR18.override { odbcSupport = true; };
-    erlangR18_javac = erlangR18.override { javacSupport = true; };
-    erlangR18_odbc_javac = erlangR18.override {
-      javacSupport = true;
-      odbcSupport = true;
-    };
-
     # Basho fork, using custom builder.
     erlang_basho_R16B02 =
       lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
@@ -111,9 +85,9 @@ rec {
     # access for example elixir built with different version of Erlang, use
     # `beam.packages.erlangR23.elixir`.
     inherit (packages.erlang)
-      elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_ls;
+      elixir elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_ls;
 
-    inherit (packages.erlang) lfe lfe_1_2 lfe_1_3;
+    inherit (packages.erlang) lfe lfe_1_3;
   };
 
   # Helper function to generate package set with a specific Erlang version.
@@ -126,11 +100,9 @@ rec {
     # Packages built with default Erlang version.
     erlang = packagesWith interpreters.erlang;
 
+    erlangR24 = packagesWith interpreters.erlangR24;
     erlangR23 = packagesWith interpreters.erlangR23;
     erlangR22 = packagesWith interpreters.erlangR22;
     erlangR21 = packagesWith interpreters.erlangR21;
-    erlangR20 = packagesWith interpreters.erlangR20;
-    erlangR19 = packagesWith interpreters.erlangR19;
-    erlangR18 = packagesWith interpreters.erlangR18;
   };
 }
diff --git a/nixpkgs/pkgs/top-level/coq-packages.nix b/nixpkgs/pkgs/top-level/coq-packages.nix
index e533d5aace15..1ac8c4c40057 100644
--- a/nixpkgs/pkgs/top-level/coq-packages.nix
+++ b/nixpkgs/pkgs/top-level/coq-packages.nix
@@ -13,6 +13,7 @@ let
       contribs = recurseIntoAttrs
         (callPackage ../development/coq-modules/contribs {});
 
+      aac-tactics = callPackage ../development/coq-modules/aac-tactics {};
       autosubst = callPackage ../development/coq-modules/autosubst {};
       bignums = if lib.versionAtLeast coq.coq-version "8.6"
         then callPackage ../development/coq-modules/bignums {}
@@ -36,9 +37,11 @@ let
       flocq = callPackage ../development/coq-modules/flocq {};
       fourcolor = callPackage ../development/coq-modules/fourcolor {};
       gappalib = callPackage ../development/coq-modules/gappalib {};
+      goedel = callPackage ../development/coq-modules/goedel {};
       heq = callPackage ../development/coq-modules/heq {};
       hierarchy-builder = callPackage ../development/coq-modules/hierarchy-builder {};
       HoTT = callPackage ../development/coq-modules/HoTT {};
+      hydra-battles = callPackage ../development/coq-modules/hydra-battles {};
       interval = callPackage ../development/coq-modules/interval {};
       InfSeqExt = callPackage ../development/coq-modules/InfSeqExt {};
       iris = callPackage ../development/coq-modules/iris {};
@@ -58,21 +61,29 @@ let
       mathcomp-finmap = callPackage ../development/coq-modules/mathcomp-finmap {};
       mathcomp-bigenough = callPackage ../development/coq-modules/mathcomp-bigenough {};
       mathcomp-real-closed = callPackage ../development/coq-modules/mathcomp-real-closed {};
+      mathcomp-zify = callPackage ../development/coq-modules/mathcomp-zify {};
       metalib = callPackage ../development/coq-modules/metalib { };
       multinomials = callPackage ../development/coq-modules/multinomials {};
       odd-order = callPackage ../development/coq-modules/odd-order { };
       paco = callPackage ../development/coq-modules/paco {};
       paramcoq = callPackage ../development/coq-modules/paramcoq {};
+      pocklington = callPackage ../development/coq-modules/pocklington {};
       QuickChick = callPackage ../development/coq-modules/QuickChick {};
+      reglang = callPackage ../development/coq-modules/reglang {};
+      relation-algebra = callPackage ../development/coq-modules/relation-algebra {};
       simple-io = callPackage ../development/coq-modules/simple-io { };
       stdpp = callPackage ../development/coq-modules/stdpp { };
       StructTact = callPackage ../development/coq-modules/StructTact {};
       tlc = callPackage ../development/coq-modules/tlc {};
+      topology = callPackage ../development/coq-modules/topology {};
       Velisarios = callPackage ../development/coq-modules/Velisarios {};
       Verdi = callPackage ../development/coq-modules/Verdi {};
-      VST = callPackage ../development/coq-modules/VST {
-        compcert = compcert.override { version = "3.7"; };
-      };
+      VST = callPackage ../development/coq-modules/VST (with lib.versions;
+        lib.switch coq.coq-version [
+          { case = "8.11"; out = { compcert = compcert.override { coqPackages = self; version = "3.7"; }; }; }
+          { case = range "8.12" "8.13"; out = { compcert = compcert.override { coqPackages = self; version = "3.8"; }; }; }
+        ] {});
+      zorns-lemma = callPackage ../development/coq-modules/zorns-lemma {};
       filterPackages = doesFilter: if doesFilter then filterCoqPackages self else self;
     };
 
@@ -122,9 +133,7 @@ in rec {
   coqPackages_8_11 = mkCoqPackages coq_8_11;
   coqPackages_8_12 = mkCoqPackages coq_8_12;
   coqPackages_8_13 = mkCoqPackages coq_8_13;
-  coqPackages = recurseIntoAttrs (lib.mapDerivationAttrset lib.dontDistribute
-    coqPackages_8_11
-  );
+  coqPackages = recurseIntoAttrs coqPackages_8_13;
   coq = coqPackages.coq;
 
 }
diff --git a/nixpkgs/pkgs/top-level/darwin-packages.nix b/nixpkgs/pkgs/top-level/darwin-packages.nix
index 3ece95c58451..a7f29d672611 100644
--- a/nixpkgs/pkgs/top-level/darwin-packages.nix
+++ b/nixpkgs/pkgs/top-level/darwin-packages.nix
@@ -1,29 +1,84 @@
-{ buildPackages, pkgs, targetPackages
-, darwin, stdenv, callPackage, callPackages, newScope
+{ lib
+, buildPackages, pkgs, targetPackages
+, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, pkgsHostHost, pkgsTargetTarget
+, stdenv, splicePackages, newScope
+, preLibcCrossHeaders
 }:
 
 let
-  apple-source-releases = callPackage ../os-specific/darwin/apple-source-releases { };
+  otherSplices = {
+    selfBuildBuild = pkgsBuildBuild.darwin;
+    selfBuildHost = pkgsBuildHost.darwin;
+    selfBuildTarget = pkgsBuildTarget.darwin;
+    selfHostHost = pkgsHostHost.darwin;
+    selfTargetTarget = pkgsTargetTarget.darwin or {}; # might be missing
+  };
 
-  impure-cmds = callPackage ../os-specific/darwin/impure-cmds { };
+  # Prefix for binaries. Customarily ends with a dash separator.
+  #
+  # TODO(@Ericson2314) Make unconditional, or optional but always true by
+  # default.
+  targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+                                        (stdenv.targetPlatform.config + "-");
 in
 
-(impure-cmds // apple-source-releases // {
+lib.makeScopeWithSplicing splicePackages newScope otherSplices (_: {}) (spliced: spliced.apple_sdk.frameworks) (self: let
+  inherit (self) mkDerivation callPackage;
 
-  callPackage = newScope (darwin.apple_sdk.frameworks // darwin);
+  # Must use pkgs.callPackage to avoid infinite recursion.
 
-  stdenvNoCF = stdenv.override {
-    extraBuildInputs = [];
+  # Open source packages that are built from source
+  appleSourcePackages = pkgs.callPackage ../os-specific/darwin/apple-source-releases { } self;
+
+  impure-cmds = pkgs.callPackage ../os-specific/darwin/impure-cmds { };
+
+  # macOS 10.12 SDK
+  apple_sdk_10_12 = pkgs.callPackage ../os-specific/darwin/apple-sdk {
+    inherit (buildPackages.darwin) print-reexports;
+    inherit (self) darwin-stubs;
+  };
+
+  # macOS 11.0 SDK
+  apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 { };
+
+  # Pick an SDK
+  apple_sdk = if stdenv.hostPlatform.isAarch64 then apple_sdk_11_0 else apple_sdk_10_12;
+
+  # Pick the source of libraries: either Apple's open source releases, or the
+  # SDK.
+  useAppleSDKLibs = stdenv.hostPlatform.isAarch64;
+
+  selectAttrs = attrs: names:
+    lib.listToAttrs (lib.concatMap (n: if attrs ? "${n}" then [(lib.nameValuePair n attrs."${n}")] else []) names);
+
+  chooseLibs = (
+    # There are differences in which libraries are exported. Avoid evaluation
+    # errors when a package is not provided.
+    selectAttrs (
+      if useAppleSDKLibs
+        then apple_sdk
+        else appleSourcePackages
+    ) ["Libsystem" "LibsystemCross" "libcharset" "libunwind" "objc4" "configd" "IOKit"]
+  ) // {
+    inherit (
+      if useAppleSDKLibs
+        then apple_sdk.frameworks
+        else appleSourcePackages
+    ) Security;
   };
+in
+
+impure-cmds // appleSourcePackages // chooseLibs // {
 
-  apple_sdk = callPackage ../os-specific/darwin/apple-sdk {
-    inherit (darwin) darwin-stubs print-reexports;
+  inherit apple_sdk;
+
+  stdenvNoCF = stdenv.override {
+    extraBuildInputs = [];
   };
 
   binutils-unwrapped = callPackage ../os-specific/darwin/binutils {
-    inherit (darwin) cctools;
     inherit (pkgs) binutils-unwrapped;
-    inherit (pkgs.llvmPackages_7) llvm clang-unwrapped;
+    inherit (pkgs.llvmPackages) llvm clang-unwrapped;
   };
 
   binutils = pkgs.wrapBintoolsWith {
@@ -31,52 +86,77 @@ in
       if stdenv.targetPlatform != stdenv.hostPlatform
       then pkgs.libcCross
       else pkgs.stdenv.cc.libc;
-    bintools = darwin.binutils-unwrapped;
+    bintools = self.binutils-unwrapped;
+  };
+
+  binutilsNoLibc = pkgs.wrapBintoolsWith {
+    libc = preLibcCrossHeaders;
+    bintools = self.binutils-unwrapped;
   };
 
   cctools = callPackage ../os-specific/darwin/cctools/port.nix {
-    inherit (darwin) libobjc maloader libtapi;
     stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
-    libcxxabi = pkgs.libcxxabi;
   };
 
   # TODO: remove alias.
-  cf-private = darwin.apple_sdk.frameworks.CoreFoundation;
+  cf-private = self.apple_sdk.frameworks.CoreFoundation;
 
   DarwinTools = callPackage ../os-specific/darwin/DarwinTools { };
 
   darwin-stubs = callPackage ../os-specific/darwin/darwin-stubs { };
 
-  print-reexports = callPackage ../os-specific/darwin/apple-sdk/print-reexports { };
+  print-reexports = callPackage ../os-specific/darwin/print-reexports { };
+
+  rewrite-tbd = callPackage ../os-specific/darwin/rewrite-tbd { };
+
+  checkReexportsHook = pkgs.makeSetupHook {
+    deps = [ pkgs.darwin.print-reexports ];
+  } ../os-specific/darwin/print-reexports/setup-hook.sh;
+
+  sigtool = callPackage ../os-specific/darwin/sigtool { };
+
+  postLinkSignHook = pkgs.writeTextFile {
+    name = "post-link-sign-hook";
+    executable = true;
+
+    text = ''
+      CODESIGN_ALLOCATE=${targetPrefix}codesign_allocate \
+        ${self.sigtool}/bin/codesign -f -s - "$linkerOutput"
+    '';
+  };
+
+  signingUtils = callPackage ../os-specific/darwin/signing-utils { };
+
+  autoSignDarwinBinariesHook = pkgs.makeSetupHook {
+    deps = [ self.signingUtils ];
+  } ../os-specific/darwin/signing-utils/auto-sign-hook.sh;
 
   maloader = callPackage ../os-specific/darwin/maloader {
-    inherit (darwin) opencflite;
   };
 
   insert_dylib = callPackage ../os-specific/darwin/insert_dylib { };
 
-  iosSdkPkgs = darwin.callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix {
+  iosSdkPkgs = callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix {
     buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk;
     targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs;
-    xcode = darwin.xcode;
     inherit (pkgs.llvmPackages) clang-unwrapped;
   };
 
   iproute2mac = callPackage ../os-specific/darwin/iproute2mac { };
 
-  libobjc = apple-source-releases.objc4;
+  libobjc = self.objc4;
 
   lsusb = callPackage ../os-specific/darwin/lsusb { };
 
   opencflite = callPackage ../os-specific/darwin/opencflite { };
 
-  stubs = callPackages ../os-specific/darwin/stubs { };
+  stubs = pkgs.callPackages ../os-specific/darwin/stubs { };
 
-  trash = darwin.callPackage ../os-specific/darwin/trash { };
+  trash = callPackage ../os-specific/darwin/trash { };
 
   usr-include = callPackage ../os-specific/darwin/usr-include { };
 
-  inherit (callPackages ../os-specific/darwin/xcode { })
+  inherit (pkgs.callPackages ../os-specific/darwin/xcode { })
     xcode_8_1 xcode_8_2
     xcode_9_1 xcode_9_2 xcode_9_4 xcode_9_4_1
     xcode_10_2 xcode_10_2_1 xcode_10_3
@@ -85,10 +165,29 @@ in
 
   CoreSymbolication = callPackage ../os-specific/darwin/CoreSymbolication { };
 
-  CF = callPackage ../os-specific/darwin/swift-corelibs/corefoundation.nix { inherit (darwin) objc4 ICU; };
+  # TODO: make swift-corefoundation build with apple_sdk_11_0.Libsystem
+  CF = if useAppleSDKLibs
+    then
+      # This attribute (CF) is included in extraBuildInputs in the stdenv. This
+      # is typically the open source project. When a project refers to
+      # "CoreFoundation" it has an extra setup hook to force impure system
+      # CoreFoundation into the link step.
+      #
+      # In this branch, we only have a single "CoreFoundation" to choose from.
+      # To be compatible with the existing convention, we define
+      # CoreFoundation with the setup hook, and CF as the same package but
+      # with the setup hook removed.
+      #
+      # This may seem unimportant, but without it packages (e.g., bacula) will
+      # fail with linker errors referring ___CFConstantStringClassReference.
+      # It's not clear to me why some packages need this extra setup.
+      lib.overrideDerivation apple_sdk.frameworks.CoreFoundation (drv: {
+        setupHook = null;
+      })
+    else callPackage ../os-specific/darwin/swift-corelibs/corefoundation.nix { };
 
   # As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in
-  # libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { inherit (darwin) apple_sdk_sierra xnu; };
+  # libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { };
 
   darling = callPackage ../os-specific/darwin/darling/default.nix { };
 
@@ -96,8 +195,6 @@ in
 
   ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
 
-  discrete-scroll = callPackage ../os-specific/darwin/discrete-scroll {
-    inherit (darwin.apple_sdk.frameworks) Cocoa;
-  };
+  discrete-scroll = callPackage ../os-specific/darwin/discrete-scroll { };
 
 })
diff --git a/nixpkgs/pkgs/top-level/dotnet-packages.nix b/nixpkgs/pkgs/top-level/dotnet-packages.nix
index 660ba01bcd44..f3310d90b126 100644
--- a/nixpkgs/pkgs/top-level/dotnet-packages.nix
+++ b/nixpkgs/pkgs/top-level/dotnet-packages.nix
@@ -8,15 +8,12 @@
 , glib
 , pkg-config
 , mono
-, fsharp
-, unzip
 , overrides ? {}
 }:
 
 let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
   # BINARY PACKAGES
-
   Autofac = fetchNuGet {
     baseName = "Autofac";
     version = "3.5.2";
@@ -24,141 +21,6 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     outputFiles = [ "lib/portable-net4+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/*" ];
   };
 
-  Fake = fetchNuGet {
-    baseName = "FAKE";
-    version = "3.33.0";
-    sha256 = "04gllx9d1w8zn9gq9p5k76b79ix07rilk3apdi72dmz6h3yylcdm";
-    outputFiles = [ "tools/*" ];
-    dllFiles = [ "Fake*.dll" ];
-  };
-
-  Fantomas = fetchNuGet {
-    baseName = "Fantomas";
-    version = "1.6.0";
-    sha256 = "1b9rd3i76b5xzv0j62dvfr1ksdwvb59vxw6jhzpi018axjn6757q";
-    outputFiles = [ "lib/*" ];
-    dllFiles = [ "Fantomas*.dll" ];
-  };
-
-  FSharpCompilerCodeDom = fetchNuGet {
-    baseName = "FSharp.Compiler.CodeDom";
-    version = "0.9.2";
-    sha256 = "0cy9gbvmfx2g74m7bgp6x9mr4avb6s560yjii7cyyxb7jlwabfcj";
-    outputFiles = [ "lib/net40/*" ];
-  };
-
-  FSharpCore302 = fetchNuGet {
-    baseName = "FSharp.Core";
-    version = "3.0.2";
-    sha256 = "1s4pqwbmhrsg5sw8i6dixdri3x0yjyilmkhsf4apfkp80si7d73q";
-    outputFiles = [ "*" ];
-  };
-
-  FSharpCore3125 = fetchNuGet {
-    baseName = "FSharp.Core";
-    version = "3.1.2.5";
-    sha256 = "0pfvjimrgrffb5rj612gsid044lfpk8g2cxyh9792dc1n8ck5hih";
-    outputFiles = [ "*" ];
-  };
-
-  FSharpCore4001 = fetchNuGet {
-    baseName = "FSharp.Core";
-    version = "4.0.0.1";
-    sha256 = "0v53iq12ji2d1bkdyg9dn8sz5l93sprrh835amh39dghh8v8vm8k";
-    outputFiles = [ "*" ];
-  };
-
-  FSharpCore4117 = fetchNuGet {
-    baseName = "FSharp.Core";
-    version = "4.1.17";
-    sha256 = "1yk23ir66fgqm5r6qyf66zf64l0s223l3yd7p9yvbyimyg0hgzb1";
-    outputFiles = [ "*" ];
-  };
-
-  FSharpData225 = fetchNuGet {
-    baseName = "FSharp.Data";
-    version = "2.2.5";
-    sha256 = "1c9l6bk0d2srccash2980y9phq3kmfm0m76k4wghnysnq94vm724";
-    outputFiles = [ "*" ];
-  };
-
-  FSharpDataSQLProvider = fetchNuGet {
-    baseName = "SQLProvider";
-    version = "0.0.9-alpha";
-    sha256 = "1wmgr5ca9hh6a7f0s8yc87n6arn7bq6nwc8n4crbbdil4r0bw46w";
-    outputFiles = [ "lib/net40/*" ];
-  };
-
-  FsCheck = fetchNuGet {
-    baseName = "FsCheck";
-    version = "1.0.4";
-    sha256 = "1q2wk4d4d1q94qzcccgmxb2lh0b8qkmpyz0p7lfphkw2gx6cy5ad";
-    outputFiles = [ "lib/net45/*" ];
-  };
-
-  FsCheck262 = fetchNuGet {
-    baseName = "FsCheck";
-    version = "2.6.2";
-    sha256 = "0fh9yvsc4i61z31qf00d6gjv6xxd54pv1ykf5bpv95a5crc3qfvl";
-    outputFiles = [ "*" ];
-  };
-
-  FsCheckNunit = fetchNuGet {
-    baseName = "FsCheck.Nunit";
-    version = "1.0.4";
-    sha256 = "1s62jrsa5hxqy1ginl8r29rjdc8vbkwmz7mb0hglhwccdqfyr5xy";
-    outputFiles = [ "lib/net45/*" ];
-  };
-
-  FSharpCompilerTools = fetchNuGet {
-    baseName = "FSharp.Compiler.Tools";
-    version = "4.1.27";
-    sha256 = "1m3hl8ja9gp5ajxmjf7bnq24bbkd6kx7yhxf4zb8si27h1n9l6dl";
-    outputFiles = [ "*" ];
-  };
-
-  FsLexYacc = fetchNuGet {
-    baseName = "FsLexYacc";
-    version = "6.1.0";
-    sha256 = "1v5myn62zqs431i046gscqw2v0c969fc7pdplx7z9cnpy0p2s4rv";
-    outputFiles = [ "build/*" ];
-  };
-
-  FsLexYacc706 = fetchNuGet {
-    baseName = "FsLexYacc";
-    version = "7.0.6";
-    sha256 = "0xwiq8q5q6ga6zj24w83ch5csbv405xcg6jg2hmnjic0npz0drk2";
-    outputFiles = [ "*" ];
-  };
-
-  FsLexYaccRuntime = fetchNuGet {
-    baseName = "FsLexYacc.Runtime";
-    version = "6.1.0";
-    sha256 = "18vrx4lxsn4hkfishg4abv0d4q21dsph0bm4mdq5z8afaypp5cr7";
-    outputFiles = [ "lib/net40/*" ];
-  };
-
-  FsPickler = fetchNuGet {
-    baseName = "FsPickler";
-    version = "1.2.9";
-    sha256 = "12fgcj7pvffsj1s1kaz15j22i1n98dy5mf4z84555xdf7mw7dpm4";
-    outputFiles = [ "lib/net45/*" ];
-  };
-
-  FsUnit = fetchNuGet {
-    baseName = "FsUnit";
-    version = "1.3.0.1";
-    sha256 = "1k7w8pc81aplsfn7n46617khmzingd2v7hcgdhh7vgsssibwms64";
-    outputFiles = [ "Lib/Net40/*" ];
-  };
-
-  FSharpFormatting = fetchNuGet {
-    baseName = "FSharp.Formatting";
-    version = "2.9.8";
-    sha256 = "1bswcpa68i2lqds4kkl2qxgkfrppbpxa4jkyja48azljajh0df3m";
-    outputFiles = [ "lib/net40/*" ];
-  };
-
   NUnit3 = fetchNuGet {
     baseName = "NUnit";
     version = "3.0.1";
@@ -315,15 +177,6 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     sha256 = "19fhdgd35yg52gyckhgwrphq07nv7v7r73hcg69ns94xfg1i6r7i";
     outputFiles = [ "*" ];
   };
-
-  Suave = fetchNuGet {
-    baseName = "Suave";
-    version = "0.29.0";
-    propagatedBuildInputs = [ FsPickler ];
-    sha256 = "0rgqy0afwm50gq5ca94w16s565yx5wf961683ghfld6ir0k3dhln";
-    outputFiles = [ "lib/net40/*" ];
-  };
-
   # SOURCE PACKAGES
 
   Boogie = buildDotnetPackage rec {
@@ -484,208 +337,6 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     };
   };
 
-  ExcelDnaRegistration = buildDotnetPackage rec {
-    baseName = "Excel-DNA.Registration";
-    version = "git-" + (builtins.substring 0 10 rev);
-    rev = "69abb1b3528f40dbcf425e13690aaeab5f707bb6";
-
-    src = fetchFromGitHub {
-      inherit rev;
-      owner = "Excel-DNA";
-      repo = "Registration";
-      sha256 = "094932h6r2f4x9r5mnw8rm4jzz8vkfv90d95qi3h0i89ws2dnn07";
-    };
-
-    buildInputs = [
-      fsharp
-      dotnetPackages.ExcelDna
-    ];
-
-    xBuildFiles = [ "Source/ExcelDna.Registration/ExcelDna.Registration.csproj" "Source/ExcelDna.Registration.FSharp/ExcelDna.Registration.FSharp.fsproj" ];
-    outputFiles = [ "Source/ExcelDna.Registration/bin/Release/*" "Source/ExcelDna.Registration.FSharp/bin/Release/*FSharp*" ];
-
-    meta = {
-      description = "This library implements helper functions to assist and modify the Excel-DNA function registration";
-      homepage = "https://github.com/Excel-DNA/Registration";
-      license = lib.licenses.mit;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
-    };
-  };
-
-  ExtCore = buildDotnetPackage {
-    baseName = "ExtCore";
-    version = "0.8.46";
-
-    src = fetchFromGitHub {
-      owner = "jack-pappas";
-      repo = "ExtCore";
-      rev = "0269b6d3c479f45abd7aa983aaeca08d07473943";
-      sha256 = "1kxkiszpvqisffhd6wciha8j3dhkq06w9c540bmq8zixa4xaj83p";
-    };
-
-    buildInputs = [
-      fsharp
-      dotnetPackages.NUnit
-      dotnetPackages.FsCheck
-    ];
-
-    postConfigure = ''
-      # Fix case
-      sed -i -e s,nuget.targets,NuGet.targets, ExtCore.Tests/ExtCore.Tests.fsproj
-    '';
-
-    xBuildFlags = [ "/p:Configuration=Release (net45)" ];
-    outputFiles = [ "ExtCore/bin/net45/Release/*" ];
-
-    meta = {
-      description = "ExtCore is an extended core library for F#";
-      homepage = "https://github.com/jack-pappas/ExtCore";
-      license = lib.licenses.asl20;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
-      broken = true;
-    };
-  };
-
-  FSharpAutoComplete = buildDotnetPackage rec {
-    baseName = "FSharp.AutoComplete";
-    version = "0.18.2";
-
-    src = fetchFromGitHub {
-      owner = "fsharp";
-      repo = "FSharp.AutoComplete";
-      rev = version;
-      sha256 = "1ikl72003xzqq2dc8i6h404hnq3q5g1p1q4rmzz9bdm7282q2jgs";
-    };
-
-    buildInputs = [
-      fsharp
-      glib
-      dotnetPackages.FSharpCompilerService
-      dotnetPackages.NewtonsoftJson
-      dotnetPackages.NDeskOptions
-    ];
-
-    outputFiles = [ "FSharp.AutoComplete/bin/Release/*" ];
-
-    meta = {
-      description = "An interface to the FSharp.Compiler.Service project";
-      longDescription = ''
-        This project provides a command-line interface to the
-        FSharp.Compiler.Service project. It is intended to be used as a backend
-        service for rich editing or 'intellisense' features for editors.
-        '';
-      homepage = "https://github.com/fsharp/FSharp.AutoComplete";
-      license = lib.licenses.asl20;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
-    };
-  };
-
-  FSharpCompilerService = buildDotnetPackage {
-    baseName = "FSharp.Compiler.Service";
-    version = "0.0.90";
-
-    src = fetchFromGitHub {
-      owner = "fsharp";
-      repo = "FSharp.Compiler.Service";
-      rev = "a87939ab3f3c571cad79bc3b5f298aa3e180e6b3";
-      sha256 = "0axr38q8m0h11hhbxg5myd1wwfgysadriln8c7bqsv5sf9djihvd";
-    };
-
-    buildInputs = [
-      fsharp
-      dotnetPackages.NUnit
-    ];
-
-    outputFiles = [ "bin/v4.5/*" ];
-
-    meta = {
-      description = "The F# compiler services package is a component derived from the F# compiler source code that exposes additional functionality for implementing F# language bindings";
-      homepage = "https://fsharp.github.io/FSharp.Compiler.Service/";
-      license = lib.licenses.asl20;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
-    };
-  };
-
-  FSharpData = buildDotnetPackage rec {
-    baseName = "FSharp.Data";
-    version = "2.2.3";
-
-    src = fetchFromGitHub {
-      owner = "fsharp";
-      repo = baseName;
-      rev = version;
-      sha256 = "1h3v9rc8k0khp61cv5n01larqbxd3xcx3q52sw5zf9l0661vw7qr";
-    };
-
-    buildInputs = [ fsharp ];
-
-    fileProvidedTypes = fetchurl {
-      name = "ProvidedTypes.fs";
-      url = "https://raw.githubusercontent.com/fsprojects/FSharp.TypeProviders.StarterPack/877014bfa6244ac382642e113d7cd6c9bc27bc6d/src/ProvidedTypes.fs";
-      sha256 = "1lb056v1xld1rfx6a8p8i2jz8i6qa2r2823n5izsf1qg1qgf2980";
-    };
-
-    fileDebugProvidedTypes = fetchurl {
-      name = "DebugProvidedTypes.fs";
-      url = "https://raw.githubusercontent.com/fsprojects/FSharp.TypeProviders.StarterPack/877014bfa6244ac382642e113d7cd6c9bc27bc6d/src/DebugProvidedTypes.fs";
-      sha256 = "1whyrf2jv6fs7kgysn2086v15ggjsd54g1xfs398mp46m0nxp91f";
-    };
-
-    preConfigure = ''
-       # Copy single-files-in-git-repos
-       mkdir -p "paket-files/fsprojects/FSharp.TypeProviders.StarterPack/src"
-       cp -v "${fileProvidedTypes}" "paket-files/fsprojects/FSharp.TypeProviders.StarterPack/src/ProvidedTypes.fs"
-       cp -v "${fileDebugProvidedTypes}" "paket-files/fsprojects/FSharp.TypeProviders.StarterPack/src/DebugProvidedTypes.fs"
-    '';
-
-    xBuildFiles = [ "src/FSharp.Data.fsproj" "src/FSharp.Data.DesignTime.fsproj" ];
-    outputFiles = [ "bin/*.dll" "bin/*.xml" ];
-
-    meta = {
-      description = "F# Data: Library for Data Access";
-      homepage = "https://fsharp.github.io/FSharp.Data/";
-      license = lib.licenses.asl20;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
-    };
-  };
-
-  # FSharpxExtras = buildDotnetPackage rec {
-  #   baseName = "FSharpx.Extras";
-  #   version = "1.8.41";
-  #
-  #   src = fetchurl {
-  #     name = "${baseName}-${version}.tar.gz";
-  #     url = "https://github.com/fsprojects/FSharpx.Extras/archive/${version}.tar.gz";
-  #     sha256 = "102z5bvk3ffi1crgyp51488vamv41fsf61n8x8pdiznq155zydhl";
-  #   };
-  #
-  #   buildInputs = [
-  #     fsharp
-  #     dotnetPackages.NUnit
-  #     dotnetPackages.FsCheck
-  #     dotnetPackages.FsCheckNunit
-  #     dotnetPackages.FsUnit
-  #   ];
-  #
-  #   patches = [ ./disable_excel.patch ];
-  #
-  #   xBuildFiles = [ "FSharpx.WithTypeProviders.sln" ];
-  #   outputFiles = [ "build/*" ];
-  #
-  #   meta = {
-  #     description = "FSharpx.Extras is a collection of libraries and tools for use with F#";
-  #     homepage = "https://fsprojects.github.io/FSharpx.Extras/";
-  #     license = lib.licenses.asl20;
-  #     maintainers = with lib.maintainers; [ obadz ];
-  #     platforms = with lib.platforms; linux;
-  #   };
-  # };
-
   GitVersionTree = buildDotnetPackage {
     baseName = "GitVersionTree";
     version = "2013-10-01";
@@ -734,30 +385,6 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     };
   };
 
-  MathNetNumerics = buildDotnetPackage rec {
-    baseName = "MathNet.Numerics";
-    version = "3.7.0";
-
-    src = fetchurl {
-      name = "${baseName}-${version}.tar.gz";
-      url = "https://github.com/mathnet/mathnet-numerics/archive/v${version}.tar.gz";
-      sha256 = "1yq6aqmc2gwh96z544qn83kby01lv1lsxm158hq0bimv2i9yywc7";
-    };
-
-    buildInputs = [ fsharp ];
-
-    xBuildFiles = [ "MathNet.Numerics.sln" ];
-    outputFiles = [ "out/lib/Net40/*" "src/FSharp/MathNet.Numerics.fsx" "src/FSharp/MathNet.Numerics.IfSharp.fsx" ];
-
-    meta = {
-      description = "Math.NET Numerics is an opensource numerical library for .Net, Silverlight and Mono";
-      homepage = "https://numerics.mathdotnet.com/";
-      license = lib.licenses.mit;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
-    };
-  };
-
   MonoAddins = buildDotnetPackage rec {
     baseName = "Mono.Addins";
     version = "1.2";
@@ -790,71 +417,14 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     };
   };
 
-  # MonoDevelopFSharpBinding = buildDotnetPackage rec {
-  #   baseName = "MonoDevelop.FSharpBinding";
-  #   version = "git-a09c8185eb";
-
-  #   broken = true;
-
-  #   src = fetchFromGitHub {
-  #     owner = "fsharp";
-  #     repo = "fsharpbinding";
-  #     rev = "a09c8185ebf23fe2f7d22b14b4af2e3268d4f011";
-  #     sha256 = "1zp5gig42s1h681kch0rw5ykbbj0mcsmdvpyz1319wy9s7n2ng91";
-  #   };
-
-  #   buildInputs = [
-  #     fsharp
-  #     monodevelop
-  #     pkgs.gtk-sharp
-  #     pkgs.gnome-sharp
-  #     dotnetPackages.ExtCore
-  #     dotnetPackages.FSharpCompilerService
-  #     dotnetPackages.FSharpCompilerCodeDom
-  #     dotnetPackages.FSharpAutoComplete
-  #     dotnetPackages.Fantomas
-  #   ];
-
-  #   patches = [
-  #     ../development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch
-  #     ../development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch
-  #   ];
-
-  #   preConfigure = ''
-  #     substituteInPlace monodevelop/configure.fsx --replace /usr/lib/monodevelop ${monodevelop}/lib/monodevelop
-  #     substituteInPlace monodevelop/configure.fsx --replace bin/MonoDevelop.exe ../../bin/monodevelop
-  #     (cd monodevelop; fsharpi ./configure.fsx)
-  #   '';
-
-  #   # This will not work as monodevelop probably looks in absolute nix store path rather than path
-  #   # relative to its executable. Need to ln -s /run/current-system/sw/lib/dotnet/MonoDevelop.FSharpBinding
-  #   # ~/.local/share/MonoDevelop-5.0/LocalInstall/Addins/ to install until we have a better way
-
-  #   # postInstall = ''
-  #   #   mkdir -p "$out/lib/monodevelop/AddIns"
-  #   #   ln -sv "$out/lib/dotnet/${baseName}" "$out/lib/monodevelop/AddIns"
-  #   # '';
-
-  #   xBuildFiles = [ "monodevelop/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.mac-linux.fsproj" ];
-  #   outputFiles = [ "monodevelop/bin/mac-linux/Release/*" ];
-
-  #   meta = {
-  #     description = "F# addin for MonoDevelop 5.9";
-  #     homepage = "https://github.com/fsharp/fsharpbinding/tree/5.9";
-  #     license = lib.licenses.asl20;
-  #     maintainers = with lib.maintainers; [ obadz ];
-  #     platforms = with lib.platforms; linux;
-  #   };
-  # };
 
   NDeskOptions = stdenv.mkDerivation rec {
-    baseName = "NDesk.Options";
+    pname = "NDesk.Options";
     version = "0.2.1";
-    name = "${baseName}-${version}";
 
     src = fetchurl {
-      name = "${baseName}-${version}.tar.gz";
-      url = "http://www.ndesk.org/archive/ndesk-options/ndesk-options-0.2.1.tar.gz";
+      name = "${pname}-${version}.tar.gz";
+      url = "http://www.ndesk.org/archive/ndesk-options/ndesk-options-${version}.tar.gz";
       sha256 = "1y25bfapafwmifakjzyb9c70qqpvza8g5j2jpf08j8wwzkrb6r28";
     };
 
@@ -897,8 +467,6 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
       sha256 = "07r63xam6icm17pf6amh1qkmna13nxa3ncdan7a3ql307i5isriz";
     };
 
-    nativeBuildInputs = [ unzip ];
-
     phases = [ "unpackPhase" "installPhase" ];
 
     outputFiles = [ "*" ];
@@ -913,64 +481,17 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     outputFiles = [ "*" ];
   };
 
-  Projekt = buildDotnetPackage rec {
-    baseName = "projekt";
-    version = "git-" + (builtins.substring 0 10 rev);
-    rev = "715a21e5cd3c86310387562618b04e979d0ec9c4";
-
-    src = fetchFromGitHub {
-      inherit rev;
-      owner = "kjnilsson";
-      repo = "projekt";
-      sha256 = "1ph3af07wmia6qkiq1qlywaj2xh6zn5drdx19dwb1g3237h5fnz0";
-    };
-
-    buildInputs = [
-      fsharp
-      dotnetPackages.UnionArgParser
-      dotnetPackages.FsUnit
-    ];
-
-    preConfigure = ''
-      sed -i -e "s/FSharp.Core, Version=\$(TargetFSharpCoreVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a/FSharp.Core/" src/Projekt/Projekt.fsproj
-    '';
-
-    outputFiles = [ "src/Projekt/bin/Release/*" ];
-
-    meta = {
-      description = "A command-line tool for manipulating F# project files";
-      homepage = "https://github.com/kjnilsson/projekt";
-      license = lib.licenses.mit;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
-    };
-  };
-
-  UnionArgParser = buildDotnetPackage {
-    baseName = "UnionArgParser";
-    version = "0.8.7";
-
-    src = fetchFromGitHub {
-      owner = "nessos";
-      repo = "UnionArgParser";
-      rev = "acaeb946e53cbb0bd9768977c656b3242146070a";
-      sha256 = "1yrs7ycf2hg7h8z6vm9lr7i3gr9s30k74fr2maigdydnnls93als";
-    };
-
-    buildInputs = [
-      fsharp
-      dotnetPackages.NUnit
-      dotnetPackages.FsUnit
-    ];
-
-    outputFiles = [ "bin/net40/*" ];
+  YamlDotNet = fetchNuGet {
+    baseName = "YamlDotNet";
+    version = "11.1.1";
+    sha256 = "rwZ/QyDVrN3wGrEYKY3QY5Xqo2Tp3FkR6dh4QrC+QS0=";
+    outputFiles = [ "lib/*" ];
 
-    meta = {
-      description = "A declarative CLI argument/XML configuration parser for F# applications";
-      homepage = "https://nessos.github.io/UnionArgParser/";
-      license = lib.licenses.mit;
-      maintainers = with lib.maintainers; [ obadz ];
-      platforms = with lib.platforms; linux;
+    meta = with lib; {
+      description = "YamlDotNet is a .NET library for YAML";
+      homepage = "https://github.com/aaubry/YamlDotNet";
+      license = licenses.mit;
+      maintainers = [ maintainers.ratsclub ];
     };
   };
 
diff --git a/nixpkgs/pkgs/top-level/emacs-packages.nix b/nixpkgs/pkgs/top-level/emacs-packages.nix
index 67f4d116dfde..d168d34e3738 100644
--- a/nixpkgs/pkgs/top-level/emacs-packages.nix
+++ b/nixpkgs/pkgs/top-level/emacs-packages.nix
@@ -25,21 +25,21 @@
 
 let
 
-  mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/elpa-packages.nix {
+  mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/elpa-packages.nix {
     inherit (pkgs) stdenv texinfo writeText;
     inherit lib;
   };
 
   # Contains both melpa stable & unstable
-  melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs-modes/melpa-packages.nix {
+  melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/melpa-packages.nix {
     inherit lib pkgs;
   };
 
-  mkOrgPackages = { lib }: import ../applications/editors/emacs-modes/org-packages.nix {
+  mkOrgPackages = { lib }: import ../applications/editors/emacs/elisp-packages/org-packages.nix {
     inherit lib;
   };
 
-  mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/manual-packages.nix {
+  mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/manual-packages.nix {
     inherit lib pkgs;
   };
 
diff --git a/nixpkgs/pkgs/top-level/haskell-packages.nix b/nixpkgs/pkgs/top-level/haskell-packages.nix
index da70103ad6bd..8bea40efe64d 100644
--- a/nixpkgs/pkgs/top-level/haskell-packages.nix
+++ b/nixpkgs/pkgs/top-level/haskell-packages.nix
@@ -76,13 +76,17 @@ in {
       llvmPackages = pkgs.llvmPackages_9;
     };
     ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix {
-      bootPkgs = packages.ghc8102Binary;
+      # aarch64 ghc8102Binary exceeds max output size on hydra
+      bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
+          packages.ghc8102BinaryMinimal
+        else
+          packages.ghc8102Binary;
       inherit (buildPackages.python3Packages) sphinx;
       buildLlvmPackages = buildPackages.llvmPackages_10;
       llvmPackages = pkgs.llvmPackages_10;
     };
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
-      bootPkgs = packages.ghc884; # no binary yet
+      bootPkgs = packages.ghc901; # no binary yet
       inherit (buildPackages.python3Packages) sphinx;
       buildLlvmPackages = buildPackages.llvmPackages_10;
       llvmPackages = pkgs.llvmPackages_10;
diff --git a/nixpkgs/pkgs/top-level/make-tarball.nix b/nixpkgs/pkgs/top-level/make-tarball.nix
index f65829e29cab..d0728c5d1b2c 100644
--- a/nixpkgs/pkgs/top-level/make-tarball.nix
+++ b/nixpkgs/pkgs/top-level/make-tarball.nix
@@ -4,6 +4,7 @@
 
 { nixpkgs
 , officialRelease
+, supportedSystems
 , pkgs ? import nixpkgs.outPath {}
 , nix ? pkgs.nix
 , lib-tests ? import ../../lib/tests/release.nix { inherit pkgs; }
@@ -66,7 +67,7 @@ releaseTools.sourceTarball {
     fi
 
     # Check that all-packages.nix evaluates on a number of platforms without any warnings.
-    for platform in i686-linux x86_64-linux x86_64-darwin; do
+    for platform in ${pkgs.lib.concatStringsSep " " supportedSystems}; do
         header "checking Nixpkgs on $platform"
 
         nix-env -f . \
diff --git a/nixpkgs/pkgs/top-level/ocaml-packages.nix b/nixpkgs/pkgs/top-level/ocaml-packages.nix
index bb4541535715..92894bf7a3bb 100644
--- a/nixpkgs/pkgs/top-level/ocaml-packages.nix
+++ b/nixpkgs/pkgs/top-level/ocaml-packages.nix
@@ -53,7 +53,7 @@ let
     base64 = callPackage ../development/ocaml-modules/base64 { };
 
     bap = callPackage ../development/ocaml-modules/bap {
-      llvm = pkgs.llvm_8;
+      inherit (pkgs.llvmPackages_8) llvm;
     };
 
     batteries = callPackage ../development/ocaml-modules/batteries { };
@@ -82,6 +82,8 @@ let
 
     ca-certs = callPackage ../development/ocaml-modules/ca-certs { };
 
+    ca-certs-nss = callPackage ../development/ocaml-modules/ca-certs-nss { };
+
     carton = callPackage ../development/ocaml-modules/carton { };
 
     carton-git = callPackage ../development/ocaml-modules/carton/git.nix { };
@@ -114,12 +116,11 @@ let
       then callPackage ../development/ocaml-modules/camomile { }
       else callPackage ../development/ocaml-modules/camomile/0.8.5.nix { };
 
-    camlimages_4_0 =
+    camlimages_4_1_2 =
       if lib.versionOlder "4.02" ocaml.version
       then null
-      else callPackage ../development/ocaml-modules/camlimages/4.0.nix {
+      else callPackage ../development/ocaml-modules/camlimages/4.1.2.nix {
       libpng = pkgs.libpng12;
-      giflib = pkgs.giflib_4_1;
     };
     camlimages = callPackage ../development/ocaml-modules/camlimages { };
 
@@ -190,6 +191,8 @@ let
 
     containers-data = callPackage ../development/ocaml-modules/containers/data.nix { };
 
+    cooltt = callPackage ../development/ocaml-modules/cooltt { };
+
     cow = callPackage ../development/ocaml-modules/cow { };
 
     cpdf = callPackage ../development/ocaml-modules/cpdf { };
@@ -457,7 +460,7 @@ let
 
     git-cohttp-unix = callPackage ../development/ocaml-modules/git/cohttp-unix.nix { };
 
-    git-cohttp-mirage = callPackage ../development/ocaml-modules/git/cohttp-mirage.nix { };
+    git-paf = callPackage ../development/ocaml-modules/git/paf.nix { };
 
     git-unix = callPackage ../development/ocaml-modules/git/unix.nix {
       git-binary = pkgs.git;
@@ -542,6 +545,10 @@ let
 
     jsonm = callPackage ../development/ocaml-modules/jsonm { };
 
+    junit = callPackage ../development/ocaml-modules/junit { };
+    junit_ounit = callPackage ../development/ocaml-modules/junit/ounit.nix { };
+    junit_alcotest = callPackage ../development/ocaml-modules/junit/alcotest.nix { };
+
     jwto = callPackage ../development/ocaml-modules/jwto { };
 
     kafka = callPackage ../development/ocaml-modules/kafka { };
@@ -585,7 +592,7 @@ let
     linenoise = callPackage ../development/ocaml-modules/linenoise { };
 
     llvm = callPackage ../development/ocaml-modules/llvm {
-      llvm = pkgs.llvm_8;
+      libllvm = pkgs.llvmPackages_8.libllvm;
     };
 
     logs = callPackage ../development/ocaml-modules/logs { };
@@ -638,6 +645,10 @@ let
 
     menhir = callPackage ../development/ocaml-modules/menhir { };
 
+    menhirLib = callPackage ../development/ocaml-modules/menhir/lib.nix { };
+
+    menhirSdk = callPackage ../development/ocaml-modules/menhir/sdk.nix { };
+
     merlin =
       if lib.versionAtLeast ocaml.version "4.11"
       then callPackage ../development/tools/ocaml/merlin/4.x.nix { }
@@ -1076,17 +1087,11 @@ let
 
     ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {};
 
+    ppx_deriving_cmdliner = callPackage ../development/ocaml-modules/ppx_deriving_cmdliner {};
+
     ppx_gen_rec = callPackage ../development/ocaml-modules/ppx_gen_rec {};
 
-    ppx_import = callPackage ../development/ocaml-modules/ppx_import (
-      let ppxlib_0_15 = if lib.versionAtLeast ppxlib.version "0.15"
-        then ppxlib.override { version = "0.15.0"; }
-        else ppxlib; in
-      {
-        ppx_deriving = ppx_deriving.override { ppxlib = ppxlib_0_15; };
-        ppxlib = ppxlib_0_15;
-      }
-    );
+    ppx_import = callPackage ../development/ocaml-modules/ppx_import {};
 
     ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix {
     };
@@ -1170,6 +1175,8 @@ let
 
     ssl = callPackage ../development/ocaml-modules/ssl { };
 
+    stdcompat = callPackage ../development/ocaml-modules/stdcompat { };
+
     stdlib-shims = callPackage ../development/ocaml-modules/stdlib-shims { };
 
     stog = callPackage ../applications/misc/stog { };
@@ -1284,7 +1291,7 @@ let
     if lib.versionOlder "4.08" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.14.nix {
       inherit self;
-      inherit (pkgs) openssl zstd;
+      inherit (pkgs) lib openssl zstd;
     }
     else if lib.versionOlder "4.07" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.12.nix {
@@ -1502,5 +1509,5 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_latest = ocamlPackages_4_12;
 
-  ocamlPackages = ocamlPackages_4_10;
+  ocamlPackages = ocamlPackages_4_12;
 }
diff --git a/nixpkgs/pkgs/top-level/perl-packages.nix b/nixpkgs/pkgs/top-level/perl-packages.nix
index f2f71e61e2be..3063acc5641b 100644
--- a/nixpkgs/pkgs/top-level/perl-packages.nix
+++ b/nixpkgs/pkgs/top-level/perl-packages.nix
@@ -174,6 +174,22 @@ let
     propagatedBuildInputs = [ AlgorithmDiff ];
   };
 
+  AlienBaseModuleBuild = buildPerlModule {
+    pname = "Alien-Base-ModuleBuild";
+    version = "1.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Base-ModuleBuild-1.15.tar.gz";
+      sha256 = "13c9432cf41b34cb14df2454a03e540e2bd5dc9eb9c82824b6ad0f4c67793afd";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ AlienBuild ArchiveExtract CaptureTiny Filechdir PathTiny ShellConfigGenerate ShellGuess SortVersions URI ];
+    meta = {
+      homepage = https://metacpan.org/pod/Alien::Base::ModuleBuild;
+      description = "A Module::Build subclass for building Alien:: modules and their libraries";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   AlienBuild = buildPerlPackage {
     pname = "Alien-Build";
     version = "2.37";
@@ -204,6 +220,21 @@ let
     };
   };
 
+  AlienLibGumbo = buildPerlModule {
+    pname = "Alien-LibGumbo";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RUZ/Alien-LibGumbo-0.05.tar.gz";
+      sha256 = "0fbe916ab11f680e5c28cd1ac800372323e2a0e06affc6c8b36279fc64d76517";
+    };
+    buildInputs = [ AlienBaseModuleBuild ];
+    propagatedBuildInputs = [ AlienBuild FileShareDir PathClass ];
+    meta = {
+      description = "Gumbo parser library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   AlienLibxml2 = buildPerlPackage {
     pname = "Alien-Libxml2";
     version = "0.17";
@@ -3907,6 +3938,20 @@ let
     };
   };
 
+  CryptArgon2 = perlPackages.buildPerlModule {
+    pname = "Crypt-Argon2";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.010.tar.gz";
+      sha256 = "3ea1c006f10ef66fd417e502a569df15c4cc1c776b084e35639751c41ce6671a";
+    };
+    nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
+    meta = {
+      description = "Perl interface to the Argon2 key derivation functions";
+      license = lib.licenses.cc0;
+    };
+  };
+
   CryptBlowfish = buildPerlPackage {
     pname = "Crypt-Blowfish";
     version = "2.14";
@@ -4081,6 +4126,33 @@ let
     };
   };
 
+  CryptPassphrase = buildPerlPackage {
+    pname = "Crypt-Passphrase";
+    version = "0.003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-0.003.tar.gz";
+      sha256 = "685aa090f8179a86d6896212ccf8ccfde7a79cce857199bb14e2277a10d240ad";
+    };
+    meta = {
+      description = "A module for managing passwords in a cryptographically agile manner";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  CryptPassphraseArgon2 = buildPerlPackage {
+    pname = "Crypt-Passphrase-Argon2";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Argon2-0.002.tar.gz";
+      sha256 = "3906ff81697d13804ee21bd5ab78ffb1c4408b4822ce020e92ecf4737ba1f3a8";
+    };
+    propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
+    meta = {
+      description = "An Argon2 encoder for Crypt::Passphrase";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   CryptPasswdMD5 = buildPerlModule {
     pname = "Crypt-PasswdMD5";
     version = "1.40";
@@ -4565,6 +4637,19 @@ let
     };
   };
 
+  CryptX509 = buildPerlPackage {
+    pname = "Crypt-X509";
+    version = "0.53";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-X509-0.53.tar.gz";
+      sha256 = "d2ff614f9457dc87ab277b81bced3532c3ed309b73b9a61aaefbe9488c9e660f";
+    };
+    propagatedBuildInputs = [ ConvertASN1 ];
+    meta = {
+      description = "Parse a X.509 certificate";
+    };
+  };
+
   CwdGuard = buildPerlModule {
     pname = "Cwd-Guard";
     version = "0.05";
@@ -9162,7 +9247,7 @@ let
     propagatedBuildInputs = [ Readonly Gtk3 ];
     checkInputs = [ TestDifferences PerlMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ];
     checkPhase = ''
-      ${pkgs.xvfb_run}/bin/xvfb-run -s '-screen 0 800x600x24' \
+      ${pkgs.xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' \
         make test
     '';
     meta = {
@@ -9429,6 +9514,21 @@ let
     };
   };
 
+  HTMLFormatExternal = buildPerlPackage {
+    pname = "HTML-FormatExternal";
+    version = "26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/HTML-FormatExternal-26.tar.gz";
+      sha256 = "3c59f233d0b10686a85aed0c994011cec68626da0128dea90b5c4fdc1746cfc3";
+    };
+    propagatedBuildInputs = [ IPCRun URI constant-defer ];
+    meta = {
+      homepage = http://user42.tuxfamily.org/html-formatexternal/index.html;
+      description = "HTML to text formatting using external programs";
+      license = lib.licenses.gpl3Plus;
+    };
+  };
+
   HTMLFormatTextWithLinks = buildPerlModule {
     pname = "HTML-FormatText-WithLinks";
     version = "0.15";
@@ -9504,6 +9604,20 @@ let
     };
   };
 
+  HTMLGumbo = buildPerlModule {
+    pname = "HTML-Gumbo";
+    version = "0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Gumbo-0.18.tar.gz";
+      sha256 = "bf50b61c24656cc3fc958602d80a9c7d017247af38d8dbfa0e9dec5b75425d5f";
+    };
+    propagatedBuildInputs = [ AlienLibGumbo ];
+    meta = {
+      description = "HTML5 parser based on gumbo C library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   HTMLMason = buildPerlPackage {
     pname = "HTML-Mason";
     version = "1.59";
@@ -9868,6 +9982,21 @@ let
     propagatedBuildInputs = [ XMLDOM ];
   };
 
+  HTTPHeadersActionPack = buildPerlPackage {
+    pname = "HTTP-Headers-ActionPack";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTTP-Headers-ActionPack-0.09.tar.gz";
+      sha256 = "c78111ab857e48c69824903d4b6ce8293feffc6b5d670db550a767f853acc7da";
+    };
+    buildInputs = [ TestFatal TestWarnings ];
+    propagatedBuildInputs = [ HTTPDate HTTPMessage ModuleRuntime SubExporter URI ];
+    meta = {
+      description = "HTTP Action, Adventure and Excitement";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   HTTPHeaderParserXS = buildPerlPackage {
     pname = "HTTP-HeaderParser-XS";
     version = "0.20";
@@ -10673,6 +10802,16 @@ let
       sha256 = "0skm22b3gg1bfk0amklrprpva41m6mkrhqp0gi7z1nmcf9ypjh61";
     };
 
+    patches = [
+      # Unfortunately, not every release is uploaded to CPAN so security fixes
+      # would need to be cherry-picked from releases
+      (fetchpatch {
+        name = "CVE-2021-22204.patch";
+        url = "https://salsa.debian.org/perl-team/modules/packages/libimage-exiftool-perl/-/raw/0347501fda93cb8366d6451aedcf258b34fb4a2b/debian/patches/CVE-2021-22204.patch";
+        sha256 = "1fxw32zcssillnv764wsd05lyswn8bbrc90q5cy9aknx0ncgsrxj";
+      })
+    ];
+
     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
     postInstall = lib.optionalString stdenv.isDarwin ''
       shortenPerlShebang $out/bin/exiftool
@@ -13538,10 +13677,10 @@ let
 
   Mojolicious = buildPerlPackage {
     pname = "Mojolicious";
-    version = "9.17";
+    version = "9.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.17.tar.gz";
-      sha256 = "13dxjhr03dhh1f5bbxbb3jiwdv7jby96qqb97l3arf5x043yd9hd";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.19.tar.gz";
+      sha256 = "15qs99sl3ckzqwpqk4kawhamdm6160bzxyikf3blym4fn1k6s1a5";
     };
     meta = {
       homepage = "https://mojolicious.org";
@@ -13630,6 +13769,22 @@ let
     };
   };
 
+  MojoliciousPluginSyslog = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Syslog";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.04.tar.gz";
+      sha256 = "807d06b88304675a2bb9181bab123a0e16d3cf2f6a5753a168090ed88085a492";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog";
+      description = "A plugin for enabling a Mojolicious app to log to syslog";
+      license = lib.licenses.artistic2;
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MojoliciousPluginTextExceptions = buildPerlPackage {
     pname = "Mojolicious-Plugin-TextExceptions";
     version = "0.02";
@@ -13998,6 +14153,21 @@ let
     };
   };
 
+  MooXTypeTiny = buildPerlPackage {
+    pname = "MooX-TypeTiny";
+    version = "0.002003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-TypeTiny-0.002003.tar.gz";
+      sha256 = "d81e26ff6f8db10261f0087f96dc54367dcb49a9f3de8d53238f834ece19624b";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ Moo TypeTiny ];
+    meta = {
+      description = "Optimized type checks for Moo + Type::Tiny";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   MooseAutobox = buildPerlModule {
     pname = "Moose-Autobox";
     version = "0.16";
@@ -16434,6 +16604,22 @@ let
     };
   };
 
+  PathDispatcher = buildPerlPackage {
+    pname = "Path-Dispatcher";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Path-Dispatcher-1.08.tar.gz";
+      sha256 = "79a9f61c27408b4fd1ed234dac246974ddeafa7fe635a18fe41ec7783130ae2a";
+    };
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    propagatedBuildInputs = [ Moo MooXTypeTiny TryTiny TypeTiny ];
+    meta = {
+      homepage = https://github.com/karenetheridge/Path-Dispatcher;
+      description = "Flexible and extensible dispatch";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   PathIteratorRule = buildPerlPackage {
     pname = "Path-Iterator-Rule";
     version = "1.014";
@@ -16535,10 +16721,10 @@ let
 
   PDFBuilder = buildPerlPackage {
     pname = "PDF-Builder";
-    version = "3.021";
+    version = "3.022";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.021.tar.gz";
-      sha256 = "1hc22s5gdspr5nyfmix3cwdzcw7z66pcqxy422ksmbninbzv4z93";
+      url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.022.tar.gz";
+      sha256 = "0cfafyci5xar567z82w0vcjrwa6inf1a9ydszgkz51bi1ilj8as8";
     };
     checkInputs = [ TestException TestMemoryCycle ];
     propagatedBuildInputs = [ FontTTF ];
@@ -18809,6 +18995,19 @@ let
     };
   };
 
+  StringCompareConstantTime = buildPerlPackage {
+    pname = "String-Compare-ConstantTime";
+    version = "0.321";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/F/FR/FRACTAL/String-Compare-ConstantTime-0.321.tar.gz";
+      sha256 = "0b26ba2b121d8004425d4485d1d46f59001c83763aa26624dff6220d7735d7f7";
+    };
+    meta = {
+      description = "Timing side-channel protected string compare";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   StringCRC32 = buildPerlPackage {
     pname = "String-CRC32";
     version = "2";
@@ -19000,6 +19199,36 @@ let
     };
   };
 
+  ShellConfigGenerate = buildPerlPackage {
+    pname = "Shell-Config-Generate";
+    version = "0.34";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Config-Generate-0.34.tar.gz";
+      sha256 = "84f451f22215dd68e9c18aa3f7ddb03a82007d166cfada003d0f166f571e0562";
+    };
+    buildInputs = [ Test2Suite ];
+    propagatedBuildInputs = [ ShellGuess ];
+    meta = {
+      homepage = https://metacpan.org/pod/Shell::Config::Generate;
+      description = "Portably generate config for any shell";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  ShellGuess = buildPerlPackage {
+    pname = "Shell-Guess";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Guess-0.09.tar.gz";
+      sha256 = "4069fa2637e443118ed956d710231d166823d23b2a64eb87b8a46872e865a12b";
+    };
+    meta = {
+      homepage = https://metacpan.org/pod/Shell::Guess;
+      description = "Make an educated guess about the shell in use";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   StringToIdentifierEN = buildPerlPackage {
     pname = "String-ToIdentifier-EN";
     version = "0.12";
@@ -21558,6 +21787,8 @@ let
       url = "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-0.88.tar.gz";
       sha256 = "0b7lmjvfmypps1nw6nsdikgaakm0n0g4186glaqazg5xd1p5h55h";
     };
+    # libbtparse.so: cannot open shared object file (aarch64 only)
+    patches = [ ../development/perl-modules/TextBibTeX-use-lib-on-aarch64.patch ];
     perlPreHook = "export LD=$CC";
     perlPostHook = lib.optionalString stdenv.isDarwin ''
       oldPath="$(pwd)/btparse/src/libbtparse.dylib"
@@ -22151,6 +22382,21 @@ let
     propagatedBuildInputs = [ URI ];
   };
 
+  TextWordDiff = buildPerlPackage {
+    pname = "Text-WordDiff";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TIMK/Text-WordDiff-0.09.tar.gz";
+      sha256 = "fee699ca763adca2f4e18f4a8a836fd2102bc2820af708f8eb43356d5ae0d50e";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff HTMLParser ];
+    meta = {
+      homepage = https://metacpan.org/release/Text-WordDiff;
+      description = "Track changes between documents";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TextWrapI18N = buildPerlPackage {
     pname = "Text-WrapI18N";
     version = "0.06";
@@ -23693,6 +23939,21 @@ let
     };
   };
 
+  XSParseKeyword = buildPerlModule {
+    pname = "XS-Parse-Keyword";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.06.tar.gz";
+      sha256 = "0nnr8akkxb2h2y3d5r51pr84vvxkq89ynmi9azkbnn79jmbcbgvq";
+    };
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      description = "XS functions to assist in parsing keyword syntax";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.zakame ];
+    };
+  };
+
   XSParseSublike = buildPerlModule {
     pname = "XS-Parse-Sublike";
     version = "0.10";
@@ -23787,6 +24048,22 @@ let
     };
   };
 
+  WebMachine = buildPerlPackage {
+    pname = "Web-Machine";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Web-Machine-0.17.tar.gz";
+      sha256 = "f139d2b3114c549e91847daaab8b75cb699e57daf5bbf0dbd13293f33fe5e22a";
+    };
+    buildInputs = [ NetHTTP TestFailWarnings TestFatal ];
+    propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ];
+    meta = {
+      homepage = http://metacpan.org/release/Web-Machine;
+      description = "A Perl port of Webmachine";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   WebServiceLinode = buildPerlModule {
     pname = "WebService-Linode";
     version = "0.29";
diff --git a/nixpkgs/pkgs/top-level/php-packages.nix b/nixpkgs/pkgs/top-level/php-packages.nix
index 3bbcb453a3c8..5575c1d429cf 100644
--- a/nixpkgs/pkgs/top-level/php-packages.nix
+++ b/nixpkgs/pkgs/top-level/php-packages.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, pkgs, fetchgit, phpPackage, autoconf, pkg-config, re2c
 , gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium
-, html-tidy, libzip, zlib, pcre, pcre2, libxslt, aspell, openldap, cyrus_sasl
+, html-tidy, libzip, zlib, pcre2, libxslt, aspell, openldap, cyrus_sasl
 , uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
 , freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit
 , readline, rsync, fetchpatch, valgrind
@@ -19,8 +19,6 @@ lib.makeScope pkgs.newScope (self: with self; {
     pname = "php-${pname}";
   });
 
-  pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;
-
   php = phpPackage;
 
   # This is a set of interactive tools based on PHP.
@@ -29,7 +27,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     composer = callPackage ../development/php-packages/composer { };
 
-    composer1 = callPackage ../development/php-packages/composer/1.x.nix { };
+    deployer = callPackage ../development/php-packages/deployer { };
 
     php-cs-fixer = callPackage ../development/php-packages/php-cs-fixer { };
 
@@ -90,18 +88,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     pcov = callPackage ../development/php-packages/pcov { };
 
-    pcs = buildPecl {
-      version = "1.3.3";
-      pname = "pcs";
-
-      sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p";
-
-      internalDeps = [ php.extensions.tokenizer ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = lib.versionAtLeast php.version "7.3"; # Runtime failure on 7.3, build error on 7.4
-    };
-
     pdo_oci = buildPecl rec {
       inherit (php.unwrapped) src version;
 
@@ -128,63 +114,21 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     protobuf = callPackage ../development/php-packages/protobuf { };
 
-    pthreads = callPackage ../development/php-packages/pthreads { };
-
     rdkafka = callPackage ../development/php-packages/rdkafka { };
 
     redis = callPackage ../development/php-packages/redis { };
 
     smbclient = callPackage ../development/php-packages/smbclient { };
 
+    snuffleupagus = callPackage ../development/php-packages/snuffleupagus { };
+
     sqlsrv = callPackage ../development/php-packages/sqlsrv { };
 
     swoole = callPackage ../development/php-packages/swoole { };
 
-    v8 = buildPecl {
-      version = "0.2.2";
-      pname = "v8";
-
-      sha256 = "103nys7zkpi1hifqp9miyl0m1mn07xqshw3sapyz365nb35g5q71";
-
-      buildInputs = [ pkgs.v8 ];
-      configureFlags = [ "--with-v8=${pkgs.v8}" ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = true;
-    };
-
-    v8js = buildPecl {
-      version = "2.1.0";
-      pname = "v8js";
-
-      sha256 = "0g63dyhhicngbgqg34wl91nm3556vzdgkq19gy52gvmqj47rj6rg";
-
-      buildInputs = [ pkgs.v8 ];
-      configureFlags = [ "--with-v8js=${pkgs.v8}" ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = true;
-    };
-
     xdebug = callPackage ../development/php-packages/xdebug { };
 
     yaml = callPackage ../development/php-packages/yaml { };
-
-    zmq = buildPecl {
-      version = "1.1.3";
-      pname = "zmq";
-
-      sha256 = "1kj487vllqj9720vlhfsmv32hs2dy2agp6176mav6ldx31c3g4n4";
-
-      configureFlags = [
-        "--with-zmq=${pkgs.zeromq}"
-      ];
-
-      nativeBuildInputs = [ pkgs.pkg-config ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = lib.versionAtLeast php.version "7.3";
-    };
   } // (let
     # Function to build a single php extension based on the php version.
     #
@@ -233,7 +177,7 @@ lib.makeScope pkgs.newScope (self: with self; {
           (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
           internalDeps}
       '';
-      checkPhase = "echo n | make test";
+      checkPhase = "runHook preCheck; NO_INTERACTON=yes make test; runHook postCheck";
       outputs = [ "out" "dev" ];
       installPhase = ''
         mkdir -p $out/lib/php/extensions
@@ -268,6 +212,20 @@ lib.makeScope pkgs.newScope (self: with self; {
       { name = "dba"; }
       { name = "dom";
         buildInputs = [ libxml2 ];
+        patches = [
+          # https://github.com/php/php-src/pull/7030
+          (fetchpatch {
+            url = "https://github.com/php/php-src/commit/4cc261aa6afca2190b1b74de39c3caa462ec6f0b.patch";
+            sha256 = "11qsdiwj1zmpfc2pgh6nr0sn7qa1nyjg4jwf69cgwnd57qfjcy4k";
+            excludes = [ "ext/dom/tests/bug43364.phpt" "ext/dom/tests/bug80268.phpt" ];
+          })
+        ];
+        # For some reason `patch` fails to remove these files correctly.
+        # Since `postPatch` is already used in `mkExtension`, we have to make it here.
+        preCheck = ''
+          rm tests/bug43364.phpt
+          rm tests/bug80268.phpt
+        '';
         configureFlags = [ "--enable-dom" ]
           # Required to build on darwin.
           ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
@@ -279,8 +237,8 @@ lib.makeScope pkgs.newScope (self: with self; {
         doCheck = false; }
       { name = "exif"; doCheck = false; }
       { name = "ffi"; buildInputs = [ libffi ]; enable = lib.versionAtLeast php.version "7.4"; }
-      { name = "fileinfo"; buildInputs = [ pcre' ]; }
-      { name = "filter"; buildInputs = [ pcre' ]; }
+      { name = "fileinfo"; buildInputs = [ pcre2 ]; }
+      { name = "filter"; buildInputs = [ pcre2 ]; }
       { name = "ftp"; buildInputs = [ openssl ]; }
       { name = "gd";
         buildInputs = [ zlib gd ];
@@ -320,17 +278,22 @@ lib.makeScope pkgs.newScope (self: with self; {
         configureFlags = [ "--with-gmp=${gmp.dev}" ]; }
       { name = "hash"; enable = lib.versionOlder php.version "7.4"; }
       { name = "iconv";
-        configureFlags = if stdenv.isDarwin then
-                           [ "--with-iconv=${libiconv}" ]
-                         else
-                           [ "--with-iconv" ];
+        configureFlags = [
+          "--with-iconv${lib.optionalString stdenv.isDarwin "=${libiconv}"}"
+        ];
+        patches = lib.optionals (lib.versionOlder php.version "8.0") [
+          # Header path defaults to FHS location, preventing the configure script from detecting errno support.
+          (fetchpatch {
+            url = "https://github.com/fossar/nix-phps/raw/263861a8c9bdafd7abe44db6db4ef0179643680c/pkgs/iconv-header-path.patch";
+            sha256 = "7GHnEUu+hcsQ4h3itDwk6p46ZKfib9JZ2XpWlXrdn6E=";
+          })
+        ];
         doCheck = false; }
       { name = "imap";
-        buildInputs = [ uwimap openssl pam pcre' ];
+        buildInputs = [ uwimap openssl pam pcre2 ];
         configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ];
         # uwimap doesn't build on darwin.
         enable = (!stdenv.isDarwin); }
-      # interbase (7.3, 7.2)
       { name = "intl";
         buildInputs = [ icu64 ];
         patches = lib.optionals (lib.versionOlder php.version "7.4") [
@@ -353,7 +316,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         ];
         doCheck = false; }
       { name = "mbstring"; buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [
-          pcre'
+          pcre2
         ]; doCheck = false; }
       { name = "mysqli";
         internalDeps = [ php.extensions.mysqlnd ];
@@ -401,7 +364,7 @@ lib.makeScope pkgs.newScope (self: with self; {
       # oci8 (7.4, 7.3, 7.2)
       # odbc (7.4, 7.3, 7.2)
       { name = "opcache";
-        buildInputs = [ pcre' ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
+        buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
           valgrind.dev
         ];
         patches = lib.optionals (lib.versionOlder php.version "7.4") [
@@ -456,7 +419,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
         doCheck = false; }
       { name = "pgsql";
-        buildInputs = [ pcre' ];
+        buildInputs = [ pcre2 ];
         configureFlags = [ "--with-pgsql=${postgresql}" ];
         doCheck = false; }
       { name = "posix"; doCheck = false; }
@@ -469,11 +432,10 @@ lib.makeScope pkgs.newScope (self: with self; {
         '';
         doCheck = false;
       }
-      # recode (7.3, 7.2)
       { name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); }
       { name = "shmop"; }
       { name = "simplexml";
-        buildInputs = [ libxml2 pcre' ];
+        buildInputs = [ libxml2 pcre2 ];
         configureFlags = [ "--enable-simplexml" ]
           # Required to build on darwin.
           ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
@@ -534,7 +496,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         configureFlags = [ "--with-xsl=${libxslt.dev}" ]; }
       { name = "zend_test"; }
       { name = "zip";
-        buildInputs = [ libzip pcre' ];
+        buildInputs = [ libzip pcre2 ];
         configureFlags = [ "--with-zip" ]
           ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]
           ++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ];
diff --git a/nixpkgs/pkgs/top-level/python-aliases.nix b/nixpkgs/pkgs/top-level/python-aliases.nix
new file mode 100644
index 000000000000..f11a9dc3c0b2
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/python-aliases.nix
@@ -0,0 +1,41 @@
+lib: self: super:
+
+with self;
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute
+  # set to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+      if alias.recurseForDerivations or false then
+            removeAttrs alias ["recurseForDerivations"]
+                else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from
+  # python-packages.nix.
+  checkInPkgs = n: alias: if builtins.hasAttr n super
+                          then throw "Alias ${n} is still in python-packages.nix"
+                          else alias;
+
+  mapAliases = aliases:
+    lib.mapAttrs (n: alias: removeDistribute
+                             (removeRecurseForDerivations
+                              (checkInPkgs n alias)))
+                     aliases;
+in
+
+  ### Deprecated aliases - for backward compatibility
+
+mapAliases ({
+  smart_open = smart-open; # added 2021-03-14
+  google_api_python_client = google-api-python-client; # added 2021-03-19
+  googleapis_common_protos = googleapis-common-protos; # added 2021-03-19
+  MechanicalSoup = mechanicalsoup; # added 2021-06-01
+  setuptools_scm = setuptools-scm; # added 2021-06-03
+})
diff --git a/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
index 0fa984d595b9..caec4f11fa13 100644
--- a/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -114,6 +114,8 @@ in {
   inherit buildSetupcfg;
 
   inherit (callPackage ../development/interpreters/python/hooks { })
+    condaInstallHook
+    condaUnpackHook
     eggUnpackHook
     eggBuildHook
     eggInstallHook
@@ -223,6 +225,10 @@ in {
 
   agent-py = callPackage ../development/python-modules/agent-py { };
 
+  aio-georss-client = callPackage ../development/python-modules/aio-georss-client { };
+
+  aio-georss-gdacs = callPackage ../development/python-modules/aio-georss-gdacs { };
+
   aioambient = callPackage ../development/python-modules/aioambient { };
 
   ailment = callPackage ../development/python-modules/ailment { };
@@ -249,8 +255,6 @@ in {
 
   aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
 
-  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
-
   aioextensions = callPackage ../development/python-modules/aioextensions { };
 
   aiofiles = callPackage ../development/python-modules/aiofiles { };
@@ -315,10 +319,14 @@ in {
 
   aionotion = callPackage ../development/python-modules/aionotion { };
 
+  aiopg = callPackage ../development/python-modules/aiopg { };
+
   aioprocessing = callPackage ../development/python-modules/aioprocessing { };
 
   aiopulse = callPackage ../development/python-modules/aiopulse { };
 
+  aiopvpc = callPackage ../development/python-modules/aiopvpc { };
+
   aiopylgtv = callPackage ../development/python-modules/aiopylgtv { };
 
   aiorecollect = callPackage ../development/python-modules/aiorecollect { };
@@ -333,6 +341,8 @@ in {
 
   aioshelly = callPackage ../development/python-modules/aioshelly { };
 
+  aiosignal = callPackage ../development/python-modules/aiosignal { };
+
   aiosmb = callPackage ../development/python-modules/aiosmb { };
 
   aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
@@ -351,6 +361,8 @@ in {
 
   aiowinreg = callPackage ../development/python-modules/aiowinreg { };
 
+  aioymaps = callPackage ../development/python-modules/aioymaps { };
+
   aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
 
   airly = callPackage ../development/python-modules/airly { };
@@ -387,6 +399,8 @@ in {
 
   amqplib = callPackage ../development/python-modules/amqplib { };
 
+  amqtt = callPackage ../development/python-modules/amqtt { };
+
   android-backup = callPackage ../development/python-modules/android-backup { };
 
   androidtv = callPackage ../development/python-modules/androidtv { };
@@ -407,7 +421,13 @@ in {
 
   ansi2html = callPackage ../development/python-modules/ansi2html { };
 
-  ansible = callPackage ../development/python-modules/ansible { };
+  ansible = callPackage ../development/python-modules/ansible/legacy.nix { };
+
+  ansible-base = callPackage ../development/python-modules/ansible/base.nix { };
+
+  ansible-collections = callPackage ../development/python-modules/ansible/collections.nix { };
+
+  ansible-core = callPackage ../development/python-modules/ansible/core.nix { };
 
   ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
 
@@ -493,8 +513,6 @@ in {
 
   arrow = callPackage ../development/python-modules/arrow { };
 
-  arrow_1 = callPackage ../development/python-modules/arrow/1.nix { };
-
   arviz = callPackage ../development/python-modules/arviz { };
 
   arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
@@ -559,6 +577,8 @@ in {
 
   asyncssh = callPackage ../development/python-modules/asyncssh { };
 
+  asyncstdlib = callPackage ../development/python-modules/asyncstdlib { };
+
   async_stagger = callPackage ../development/python-modules/async_stagger { };
 
   asynctest = callPackage ../development/python-modules/asynctest { };
@@ -609,6 +629,8 @@ in {
 
   auth0-python = callPackage ../development/python-modules/auth0-python { };
 
+  authcaptureproxy = callPackage ../development/python-modules/authcaptureproxy { };
+
   authheaders = callPackage ../development/python-modules/authheaders { };
 
   authlib = callPackage ../development/python-modules/authlib { };
@@ -619,6 +641,8 @@ in {
 
   autograd = callPackage ../development/python-modules/autograd { };
 
+  autoit-ripper = callPackage ../development/python-modules/autoit-ripper { };
+
   autologging = callPackage ../development/python-modules/autologging { };
 
   automat = callPackage ../development/python-modules/automat { };
@@ -657,6 +681,8 @@ in {
 
   aws-xray-sdk = callPackage ../development/python-modules/aws-xray-sdk { };
 
+  awscrt = callPackage ../development/python-modules/awscrt { };
+
   awsiotpythonsdk = callPackage ../development/python-modules/awsiotpythonsdk { };
 
   awslambdaric = callPackage ../development/python-modules/awslambdaric { };
@@ -845,6 +871,8 @@ in {
 
   azure-mgmt-servicefabric = callPackage ../development/python-modules/azure-mgmt-servicefabric { };
 
+  azure-mgmt-servicefabricmanagedclusters = callPackage ../development/python-modules/azure-mgmt-servicefabricmanagedclusters { };
+
   azure-mgmt-signalr = callPackage ../development/python-modules/azure-mgmt-signalr { };
 
   azure-mgmt-sql = callPackage ../development/python-modules/azure-mgmt-sql { };
@@ -925,6 +953,8 @@ in {
 
   backports_weakref = callPackage ../development/python-modules/backports_weakref { };
 
+  backports-zoneinfo = callPackage ../development/python-modules/backports-zoneinfo { };
+
   bacpypes = callPackage ../development/python-modules/bacpypes { };
 
   banal = callPackage ../development/python-modules/banal { };
@@ -1071,6 +1101,8 @@ in {
 
   block-io = callPackage ../development/python-modules/block-io { };
 
+  blspy = callPackage ../development/python-modules/blspy { };
+
   bluepy = callPackage ../development/python-modules/bluepy { };
 
   bluepy-devices = callPackage ../development/python-modules/bluepy-devices { };
@@ -1233,6 +1265,8 @@ in {
 
   cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
 
+  castepxbin = callPackage ../development/python-modules/castepxbin { };
+
   casttube = callPackage ../development/python-modules/casttube { };
 
   catalogue = callPackage ../development/python-modules/catalogue { };
@@ -1259,6 +1293,8 @@ in {
 
   connect-box = callPackage ../development/python-modules/connect_box { };
 
+  coqpit = callPackage ../development/python-modules/coqpit { };
+
   cerberus = callPackage ../development/python-modules/cerberus { };
 
   cert-chain-resolver = callPackage ../development/python-modules/cert-chain-resolver { };
@@ -1323,6 +1359,12 @@ in {
 
   chevron = callPackage ../development/python-modules/chevron { };
 
+  chiabip158 = callPackage ../development/python-modules/chiabip158 { };
+
+  chiapos = callPackage ../development/python-modules/chiapos { };
+
+  chiavdf = callPackage ../development/python-modules/chiavdf { };
+
   chirpstack-api = callPackage ../development/python-modules/chirpstack-api { };
 
   ci-info = callPackage ../development/python-modules/ci-info { };
@@ -1331,6 +1373,10 @@ in {
 
   cirq = callPackage ../development/python-modules/cirq { };
 
+  cirq-core = callPackage ../development/python-modules/cirq-core { };
+
+  cirq-google = callPackage ../development/python-modules/cirq-google { };
+
   ciscomobilityexpress = callPackage ../development/python-modules/ciscomobilityexpress { };
 
   ciso8601 = callPackage ../development/python-modules/ciso8601 { };
@@ -1357,12 +1403,16 @@ in {
 
   clf = callPackage ../development/python-modules/clf { };
 
+  cock = callPackage ../development/python-modules/cock { };
+
   click = callPackage ../development/python-modules/click { };
 
   clickclick = callPackage ../development/python-modules/clickclick { };
 
   click-completion = callPackage ../development/python-modules/click-completion { };
 
+  click-configfile = callPackage ../development/python-modules/click-configfile { };
+
   click-datetime = callPackage ../development/python-modules/click-datetime { };
 
   click-default-group = callPackage ../development/python-modules/click-default-group { };
@@ -1373,8 +1423,12 @@ in {
 
   click-log = callPackage ../development/python-modules/click-log { };
 
+  click-option-group = callPackage ../development/python-modules/click-option-group { };
+
   click-plugins = callPackage ../development/python-modules/click-plugins { };
 
+  click-spinner = callPackage ../development/python-modules/click-spinner { };
+
   click-repl = callPackage ../development/python-modules/click-repl { };
 
   click-threading = callPackage ../development/python-modules/click-threading { };
@@ -1409,8 +1463,16 @@ in {
 
   cloudscraper = callPackage ../development/python-modules/cloudscraper { };
 
+  cloudsmith-api = callPackage ../development/python-modules/cloudsmith-api { };
+
   clustershell = callPackage ../development/python-modules/clustershell { };
 
+  clvm = callPackage ../development/python-modules/clvm { };
+
+  clvm-rs = callPackage ../development/python-modules/clvm-rs { };
+
+  clvm-tools = callPackage ../development/python-modules/clvm-tools { };
+
   cma = callPackage ../development/python-modules/cma { };
 
   cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
@@ -1435,6 +1497,8 @@ in {
 
   cocotb = callPackage ../development/python-modules/cocotb { };
 
+  cocotb-bus = callPackage ../development/python-modules/cocotb-bus { };
+
   codecov = callPackage ../development/python-modules/codecov { };
 
   codespell = callPackage ../development/python-modules/codespell { };
@@ -1453,6 +1517,8 @@ in {
 
   colored = callPackage ../development/python-modules/colored { };
 
+  colored-traceback = callPackage ../development/python-modules/colored-traceback { };
+
   coloredlogs = callPackage ../development/python-modules/coloredlogs { };
 
   colorful = callPackage ../development/python-modules/colorful { };
@@ -1469,12 +1535,16 @@ in {
 
   commandparse = callPackage ../development/python-modules/commandparse { };
 
+  commentjson = callPackage ../development/python-modules/commentjson { };
+
   commoncode = callPackage ../development/python-modules/commoncode { };
 
   CommonMark = callPackage ../development/python-modules/commonmark { };
 
   compiledb = callPackage ../development/python-modules/compiledb { };
 
+  concurrent-log-handler = callPackage ../development/python-modules/concurrent-log-handler { };
+
   conda = callPackage ../development/python-modules/conda { };
 
   ConfigArgParse = self.configargparse; # added 2021-03-18
@@ -1522,6 +1592,8 @@ in {
 
   coronavirus = callPackage ../development/python-modules/coronavirus { };
 
+  corsair-scan = callPackage ../development/python-modules/corsair-scan { };
+
   cot = callPackage ../development/python-modules/cot { };
 
   covCore = callPackage ../development/python-modules/cov-core { };
@@ -1562,7 +1634,9 @@ in {
 
   cryptacular = callPackage ../development/python-modules/cryptacular { };
 
-  cryptography = callPackage ../development/python-modules/cryptography { };
+  cryptography = callPackage ../development/python-modules/cryptography {
+    inherit (pkgs.darwin) libiconv;
+  };
 
   cryptography_vectors = callPackage ../development/python-modules/cryptography/vectors.nix { };
 
@@ -1611,6 +1685,8 @@ in {
 
   cvxpy = callPackage ../development/python-modules/cvxpy { };
 
+  cwcwidth = callPackage ../development/python-modules/cwcwidth { };
+
   cx_Freeze = callPackage ../development/python-modules/cx_freeze { };
 
   cx_oracle = callPackage ../development/python-modules/cx_oracle { };
@@ -1697,6 +1773,8 @@ in {
 
   datrie = callPackage ../development/python-modules/datrie { };
 
+  dawg-python = callPackage ../development/python-modules/dawg-python { };
+
   dbf = callPackage ../development/python-modules/dbf { };
 
   dbfread = callPackage ../development/python-modules/dbfread { };
@@ -1723,10 +1801,10 @@ in {
 
   debugpy = callPackage ../development/python-modules/debugpy { };
 
-  debut = callPackage ../development/python-modules/debut { };
-
   decorator = callPackage ../development/python-modules/decorator { };
 
+  decopatch = callPackage ../development/python-modules/decopatch { };
+
   deep_merge = callPackage ../development/python-modules/deep_merge { };
 
   deepdiff = callPackage ../development/python-modules/deepdiff { };
@@ -1745,6 +1823,10 @@ in {
 
   delegator-py = callPackage ../development/python-modules/delegator-py { };
 
+  delorean = callPackage ../development/python-modules/delorean { };
+
+  deltachat = callPackage ../development/python-modules/deltachat { };
+
   deluge-client = callPackage ../development/python-modules/deluge-client { };
 
   demjson = callPackage ../development/python-modules/demjson { };
@@ -1902,8 +1984,6 @@ in {
 
   django-picklefield = callPackage ../development/python-modules/django-picklefield { };
 
-  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
-
   django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
 
   django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
@@ -1922,7 +2002,7 @@ in {
 
   djangorestframework = callPackage ../development/python-modules/djangorestframework { };
 
-  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
+  djangorestframework-jwt = self.drf-jwt;
 
   djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
 
@@ -2032,12 +2112,16 @@ in {
     inherit (pkgs) graphviz;
   };
 
+  dotmap = callPackage ../development/python-modules/dotmap { };
+
   dparse = callPackage ../development/python-modules/dparse { };
 
   dpath = callPackage ../development/python-modules/dpath { };
 
   dpkt = callPackage ../development/python-modules/dpkt { };
 
+  drf-jwt = callPackage ../development/python-modules/drf-jwt { };
+
   drf-nested-routers = callPackage ../development/python-modules/drf-nested-routers { };
 
   drf-yasg = callPackage ../development/python-modules/drf-yasg { };
@@ -2117,6 +2201,8 @@ in {
 
   elementpath = callPackage ../development/python-modules/elementpath { };
 
+  elevate = callPackage ../development/python-modules/elevate { };
+
   eliot = callPackage ../development/python-modules/eliot { };
 
   elmax = callPackage ../development/python-modules/elmax { };
@@ -2157,6 +2243,8 @@ in {
 
   envs = callPackage ../development/python-modules/envs { };
 
+  envoy-reader = callPackage ../development/python-modules/envoy-reader { };
+
   enzyme = callPackage ../development/python-modules/enzyme { };
 
   epc = callPackage ../development/python-modules/epc { };
@@ -2219,6 +2307,8 @@ in {
 
   expiringdict = callPackage ../development/python-modules/expiringdict { };
 
+  explorerscript = callPackage ../development/python-modules/explorerscript { };
+
   exrex = callPackage ../development/python-modules/exrex { };
 
   extractcode = callPackage ../development/python-modules/extractcode { };
@@ -2291,6 +2381,11 @@ in {
 
   fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
 
+  fastnlo_toolkit = toPythonModule (pkgs.fastnlo_toolkit.override {
+    withPython = true;
+    inherit python;
+  });
+
   fastpair = callPackage ../development/python-modules/fastpair { };
 
   fastparquet = callPackage ../development/python-modules/fastparquet { };
@@ -2321,10 +2416,13 @@ in {
 
   fenics = callPackage ../development/libraries/science/math/fenics {
     pytest = self.pytest_4;
+    hdf5 = pkgs.hdf5_1_10;
   };
 
   ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
 
+  ffmpeg-progress-yield = callPackage ../development/python-modules/ffmpeg-progress-yield { };
+
   fido2 = callPackage ../development/python-modules/fido2 { };
 
   filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
@@ -2533,6 +2631,8 @@ in {
 
   fpylll = callPackage ../development/python-modules/fpylll { };
 
+  fpyutils = callPackage ../development/python-modules/fpyutils { };
+
   freebox-api = callPackage ../development/python-modules/freebox-api { };
 
   freetype-py = callPackage ../development/python-modules/freetype-py { };
@@ -2543,6 +2643,8 @@ in {
 
   frozendict = callPackage ../development/python-modules/frozendict { };
 
+  frozenlist = callPackage ../development/python-modules/frozenlist { };
+
   fs = callPackage ../development/python-modules/fs { };
 
   fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
@@ -2586,6 +2688,8 @@ in {
 
   gast = callPackage ../development/python-modules/gast { };
 
+  garages-amsterdam = callPackage ../development/python-modules/garages-amsterdam { };
+
   gcovr = callPackage ../development/python-modules/gcovr { };
 
   gcsfs = callPackage ../development/python-modules/gcsfs { };
@@ -2644,10 +2748,28 @@ in {
 
   geopy = callPackage ../development/python-modules/geopy { };
 
+  georss-client = callPackage ../development/python-modules/georss-client { };
+
+  georss-generic-client = callPackage ../development/python-modules/georss-generic-client { };
+
+  georss-ign-sismologia-client = callPackage ../development/python-modules/georss-ign-sismologia-client { };
+
+  georss-ingv-centro-nazionale-terremoti-client = callPackage ../development/python-modules/georss-ingv-centro-nazionale-terremoti-client { };
+
+  georss-nrcan-earthquakes-client = callPackage ../development/python-modules/georss-nrcan-earthquakes-client { };
+
+  georss-qld-bushfire-alert-client = callPackage ../development/python-modules/georss-qld-bushfire-alert-client { };
+
+  georss-tfs-incidents-client = callPackage ../development/python-modules/georss-tfs-incidents-client { };
+
+  georss-wa-dfes-client = callPackage ../development/python-modules/georss-wa-dfes-client { };
+
   getmac = callPackage ../development/python-modules/getmac { };
 
   getkey = callPackage ../development/python-modules/getkey { };
 
+  get-video-properties = callPackage ../development/python-modules/get-video-properties { };
+
   gevent = callPackage ../development/python-modules/gevent { };
 
   geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
@@ -2660,6 +2782,8 @@ in {
 
   ghdiff = callPackage ../development/python-modules/ghdiff { };
 
+  ghp-import = callPackage ../development/python-modules/ghp-import { };
+
   gidgethub = callPackage ../development/python-modules/gidgethub { };
 
   gin-config = callPackage ../development/python-modules/gin-config { };
@@ -2689,6 +2813,8 @@ in {
 
   glasgow = callPackage ../development/python-modules/glasgow { };
 
+  glcontext = callPackage ../development/python-modules/glcontext { };
+
   glob2 = callPackage ../development/python-modules/glob2 { };
 
   globre = callPackage ../development/python-modules/globre { };
@@ -2969,8 +3095,12 @@ in {
 
   hachoir = callPackage ../development/python-modules/hachoir { };
 
+  hdate = callPackage ../development/python-modules/hdate { };
+
   ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
+  ha-philipsjs = callPackage ../development/python-modules/ha-philipsjs{ };
+
   halo = callPackage ../development/python-modules/halo { };
 
   handout = callPackage ../development/python-modules/handout { };
@@ -3065,6 +3195,8 @@ in {
 
   hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
 
+  hsluv = callPackage ../development/python-modules/hsluv { };
+
   hstspreload = callPackage ../development/python-modules/hstspreload { };
 
   html2text = callPackage ../development/python-modules/html2text { };
@@ -3115,6 +3247,8 @@ in {
 
   humanize = callPackage ../development/python-modules/humanize { };
 
+  humblewx = callPackage ../development/python-modules/humblewx { };
+
   hupper = callPackage ../development/python-modules/hupper { };
 
   hvac = callPackage ../development/python-modules/hvac { };
@@ -3152,6 +3286,10 @@ in {
 
   hyppo = callPackage ../development/python-modules/hyppo { };
 
+  i2c-tools = callPackage ../development/python-modules/i2c-tools {
+    inherit (pkgs) i2c-tools;
+  };
+
   i3ipc = callPackage ../development/python-modules/i3ipc { };
 
   i3-py = callPackage ../development/python-modules/i3-py { };
@@ -3164,6 +3302,10 @@ in {
 
   ibis-framework = callPackage ../development/python-modules/ibis-framework { };
 
+  ibm-cloud-sdk-core = callPackage ../development/python-modules/ibm-cloud-sdk-core { };
+
+  ibm-watson = callPackage ../development/python-modules/ibm-watson { };
+
   icalendar = callPackage ../development/python-modules/icalendar { };
 
   icecream = callPackage ../development/python-modules/icecream { };
@@ -3252,8 +3394,6 @@ in {
 
   influxgraph = callPackage ../development/python-modules/influxgraph { };
 
-  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
-
   inform = callPackage ../development/python-modules/inform { };
 
   iniconfig = callPackage ../development/python-modules/iniconfig { };
@@ -3262,6 +3402,8 @@ in {
 
   iniparse = callPackage ../development/python-modules/iniparse { };
 
+  injector = callPackage ../development/python-modules/injector { };
+
   inotify-simple = callPackage ../development/python-modules/inotify-simple { };
 
   inquirer = callPackage ../development/python-modules/inquirer { };
@@ -3294,6 +3436,8 @@ in {
 
   ipfshttpclient = callPackage ../development/python-modules/ipfshttpclient { };
 
+  i-pi = callPackage ../development/python-modules/i-pi { };
+
   iptools = callPackage ../development/python-modules/iptools { };
 
   ipy = callPackage ../development/python-modules/IPy { };
@@ -3443,6 +3587,8 @@ in {
 
   jsonlines = callPackage ../development/python-modules/jsonlines { };
 
+  json-logging = callPackage ../development/python-modules/json-logging { };
+
   jsonmerge = callPackage ../development/python-modules/jsonmerge { };
 
   json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
@@ -3535,6 +3681,8 @@ in {
 
   jwcrypto = callPackage ../development/python-modules/jwcrypto { };
 
+  jxmlease = callPackage ../development/python-modules/jxmlease { };
+
   k5test = callPackage ../development/python-modules/k5test {
     inherit (pkgs) krb5Full findutils which;
   };
@@ -3555,6 +3703,8 @@ in {
 
   karton-asciimagic = callPackage ../development/python-modules/karton-asciimagic { };
 
+  karton-autoit-ripper = callPackage ../development/python-modules/karton-autoit-ripper { };
+
   karton-classifier = callPackage ../development/python-modules/karton-classifier { };
 
   karton-config-extractor = callPackage ../development/python-modules/karton-config-extractor { };
@@ -3589,6 +3739,8 @@ in {
 
   keyring = callPackage ../development/python-modules/keyring { };
 
+  keyrings-cryptfile = callPackage ../development/python-modules/keyrings-cryptfile { };
+
   keyrings-alt = callPackage ../development/python-modules/keyrings-alt { };
 
   keystone-engine = callPackage ../development/python-modules/keystone-engine { };
@@ -3692,6 +3844,10 @@ in {
 
   lexid = callPackage ../development/python-modules/lexid { };
 
+  lhapdf = toPythonModule (pkgs.lhapdf.override {
+    inherit python;
+  });
+
   libagent = callPackage ../development/python-modules/libagent { };
 
   pa-ringbuffer = callPackage ../development/python-modules/pa-ringbuffer { };
@@ -3857,6 +4013,8 @@ in {
 
   line_profiler = callPackage ../development/python-modules/line_profiler { };
 
+  linkify-it-py = callPackage ../development/python-modules/linkify-it-py { };
+
   linode-api = callPackage ../development/python-modules/linode-api { };
 
   linode = callPackage ../development/python-modules/linode { };
@@ -3899,6 +4057,8 @@ in {
 
   localzone = callPackage ../development/python-modules/localzone { };
 
+  locationsharinglib = callPackage ../development/python-modules/locationsharinglib { };
+
   locket = callPackage ../development/python-modules/locket { };
 
   lockfile = callPackage ../development/python-modules/lockfile { };
@@ -4054,10 +4214,14 @@ in {
     inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
   };
 
+  matrix-api-async = callPackage ../development/python-modules/matrix-api-async { };
+
   matrix-client = callPackage ../development/python-modules/matrix-client { };
 
   matrix-nio = callPackage ../development/python-modules/matrix-nio { };
 
+  mattermostdriver = callPackage ../development/python-modules/mattermostdriver { };
+
   mautrix = callPackage ../development/python-modules/mautrix { };
 
   mautrix-appservice = self.mautrix; # alias 2019-12-28
@@ -4075,15 +4239,21 @@ in {
 
   mcstatus = callPackage ../development/python-modules/mcstatus { };
 
+  md-toc = callPackage ../development/python-modules/md-toc { };
+
   md2gemini = callPackage ../development/python-modules/md2gemini { };
 
+  mdformat = callPackage ../development/python-modules/mdformat { };
+
+  mdit-py-plugins = callPackage ../development/python-modules/mdit-py-plugins { };
+
   MDP = callPackage ../development/python-modules/mdp { };
 
   measurement = callPackage ../development/python-modules/measurement { };
 
   mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
 
-  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
+  mechanicalsoup = callPackage ../development/python-modules/mechanicalsoup { };
 
   mechanize = callPackage ../development/python-modules/mechanize { };
 
@@ -4097,6 +4267,8 @@ in {
 
   memory_profiler = callPackage ../development/python-modules/memory_profiler { };
 
+  mercantile = callPackage ../development/python-modules/mercantile { };
+
   mercurial = toPythonModule (pkgs.mercurial.override {
     python3Packages = self;
   });
@@ -4111,6 +4283,8 @@ in {
 
   meshlabxml = callPackage ../development/python-modules/meshlabxml { };
 
+  meshtastic = callPackage ../development/python-modules/meshtastic { };
+
   meson = toPythonModule ((pkgs.meson.override { python3 = python; }).overrideAttrs
     (oldAttrs: { # We do not want the setup hook in Python packages because the build is performed differently.
       setupHook = null;
@@ -4160,6 +4334,8 @@ in {
 
   mitmproxy = callPackage ../development/python-modules/mitmproxy { };
 
+  mitogen = callPackage ../development/python-modules/mitogen { };
+
   mixpanel = callPackage ../development/python-modules/mixpanel { };
 
   mkl-service = callPackage ../development/python-modules/mkl-service { };
@@ -4188,6 +4364,10 @@ in {
 
   mock-open = callPackage ../development/python-modules/mock-open { };
 
+  mock-services = callPackage ../development/python-modules/mock-services { };
+
+  mockupdb = callPackage ../development/python-modules/mockupdb { };
+
   modeled = callPackage ../development/python-modules/modeled { };
 
   moderngl = callPackage ../development/python-modules/moderngl { };
@@ -4221,8 +4401,12 @@ in {
 
   mortgage = callPackage ../development/python-modules/mortgage { };
 
+  motioneye-client = callPackage ../development/python-modules/motioneye-client { };
+
   moto = callPackage ../development/python-modules/moto { };
 
+  motor = callPackage ../development/python-modules/motor { };
+
   moviepy = callPackage ../development/python-modules/moviepy { };
 
   mox3 = callPackage ../development/python-modules/mox3 { };
@@ -4295,6 +4479,8 @@ in {
 
   mutatormath = callPackage ../development/python-modules/mutatormath { };
 
+  mutesync = callPackage ../development/python-modules/mutesync { };
+
   mwclient = callPackage ../development/python-modules/mwclient { };
 
   mwdblib = callPackage ../development/python-modules/mwdblib { };
@@ -4313,6 +4499,10 @@ in {
 
   mypy = callPackage ../development/python-modules/mypy { };
 
+  mypy-boto3-builder = callPackage ../development/python-modules/mypy-boto3-builder { };
+
+  mypy-boto3-s3 = callPackage ../development/python-modules/mypy-boto3-s3 { };
+
   mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
 
   mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
@@ -4377,6 +4567,8 @@ in {
 
   ndjson = callPackage ../development/python-modules/ndjson { };
 
+  ndspy = callPackage ../development/python-modules/ndspy { };
+
   ndtypes = callPackage ../development/python-modules/ndtypes { };
 
   neo = callPackage ../development/python-modules/neo { };
@@ -4596,6 +4788,8 @@ in {
 
   openant = callPackage ../development/python-modules/openant { };
 
+  openapi-schema-validator = callPackage ../development/python-modules/openapi-schema-validator { };
+
   openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
 
   openbabel-bindings = callPackage ../development/python-modules/openbabel-bindings {
@@ -4647,6 +4841,8 @@ in {
 
   opt-einsum = callPackage ../development/python-modules/opt-einsum { };
 
+  opsdroid_get_image_size = callPackage ../development/python-modules/opsdroid_get_image_size { };
+
   optuna = callPackage ../development/python-modules/optuna { };
 
   opuslib = callPackage ../development/python-modules/opuslib { };
@@ -4681,6 +4877,8 @@ in {
 
   ovh = callPackage ../development/python-modules/ovh { };
 
+  ovoenergy = callPackage ../development/python-modules/ovoenergy { };
+
   owslib = callPackage ../development/python-modules/owslib { };
 
   oyaml = callPackage ../development/python-modules/oyaml { };
@@ -4792,6 +4990,8 @@ in {
 
   pathvalidate = callPackage ../development/python-modules/pathvalidate { };
 
+  pathy = callPackage ../development/python-modules/pathy/default.nix { };
+
   patiencediff = callPackage ../development/python-modules/patiencediff { };
 
   patool = callPackage ../development/python-modules/patool { };
@@ -4964,6 +5164,8 @@ in {
 
   pynndescent = callPackage ../development/python-modules/pynndescent { };
 
+  pynobo = callPackage ../development/python-modules/pynobo { };
+
   pynuki = callPackage ../development/python-modules/pynuki { };
 
   pynws = callPackage ../development/python-modules/pynws { };
@@ -5061,7 +5263,7 @@ in {
   poolsense = callPackage ../development/python-modules/poolsense { };
 
   poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
-    inherit (pkgs.qt5) qtbase;
+    inherit (pkgs.qt5) qtbase qmake;
     inherit (pkgs.libsForQt5) poppler;
   };
 
@@ -5083,6 +5285,8 @@ in {
 
   powerline = callPackage ../development/python-modules/powerline { };
 
+  powerlineMemSegment = callPackage ../development/python-modules/powerline-mem-segment { };
+
   pox = callPackage ../development/python-modules/pox { };
 
   poyo = callPackage ../development/python-modules/poyo { };
@@ -5105,6 +5309,8 @@ in {
 
   praw = callPackage ../development/python-modules/praw { };
 
+  prayer-times-calculator = callPackage ../development/python-modules/prayer-times-calculator { };
+
   precis-i18n = callPackage ../development/python-modules/precis-i18n { };
 
   pre-commit = callPackage ../development/python-modules/pre-commit { };
@@ -5127,7 +5333,9 @@ in {
 
   prison = callPackage ../development/python-modules/prison { };
 
-  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
+  privacyidea = callPackage ../development/python-modules/privacyidea { };
+
+  pyjwt1 = callPackage ../development/python-modules/pyjwt/1.nix { };
 
   proboscis = callPackage ../development/python-modules/proboscis { };
 
@@ -5218,6 +5426,8 @@ in {
 
   pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
 
+  puremagic = callPackage ../development/python-modules/puremagic { };
+
   purl = callPackage ../development/python-modules/purl { };
 
   pushbullet = callPackage ../development/python-modules/pushbullet { };
@@ -5238,6 +5448,10 @@ in {
 
   py-air-control-exporter = callPackage ../development/python-modules/py-air-control-exporter { };
 
+  py-dmidecode = callPackage ../development/python-modules/py-dmidecode { };
+
+  py-ubjson = callPackage ../development/python-modules/py-ubjson { };
+
   py2bit = callPackage ../development/python-modules/py2bit { };
 
   py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
@@ -5348,6 +5562,10 @@ in {
 
   pycfdns = callPackage ../development/python-modules/pycfdns { };
 
+  pycflow2dot = callPackage ../development/python-modules/pycflow2dot {
+    inherit (pkgs) graphviz;
+  };
+
   pychannels = callPackage ../development/python-modules/pychannels { };
 
   pychart = callPackage ../development/python-modules/pychart { };
@@ -5384,12 +5602,16 @@ in {
 
   pycparser = callPackage ../development/python-modules/pycparser { };
 
+  py-canary = callPackage ../development/python-modules/py-canary { };
+
   py-cid = callPackage ../development/python-modules/py-cid { };
 
   py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
 
   pycrc = callPackage ../development/python-modules/pycrc { };
 
+  pycron = callPackage ../development/python-modules/pycron { };
+
   pycrypto = callPackage ../development/python-modules/pycrypto { };
 
   pycryptodome = callPackage ../development/python-modules/pycryptodome { };
@@ -5421,8 +5643,12 @@ in {
 
   pydeconz = callPackage ../development/python-modules/pydeconz { };
 
+  pydelijn = callPackage ../development/python-modules/pydelijn { };
+
   pydenticon = callPackage ../development/python-modules/pydenticon { };
 
+  py-desmume = callPackage ../development/python-modules/py-desmume { };
+
   pydexcom = callPackage ../development/python-modules/pydexcom { };
 
   pydicom = callPackage ../development/python-modules/pydicom { };
@@ -5537,6 +5763,8 @@ in {
 
   pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
 
+  pygatt = callPackage ../development/python-modules/pygatt { };
+
   pygbm = callPackage ../development/python-modules/pygbm { };
 
   pygccxml = callPackage ../development/python-modules/pygccxml { };
@@ -5581,8 +5809,12 @@ in {
 
   pygrok = callPackage ../development/python-modules/pygrok { };
 
+  pygtfs = callPackage ../development/python-modules/pygtfs { };
+
   pygtail = callPackage ../development/python-modules/pygtail { };
 
+  pygtkspellcheck = callPackage ../development/python-modules/pygtkspellcheck { };
+
   pygtrie = callPackage ../development/python-modules/pygtrie { };
 
   pyhamcrest = callPackage ../development/python-modules/pyhamcrest { };
@@ -5599,6 +5831,8 @@ in {
 
   pyi2cflash = callPackage ../development/python-modules/pyi2cflash { };
 
+  pyialarm = callPackage ../development/python-modules/pyialarm { };
+
   pyicloud = callPackage ../development/python-modules/pyicloud { };
 
   PyICU = callPackage ../development/python-modules/pyicu { };
@@ -5647,6 +5881,8 @@ in {
 
   pykodi = callPackage ../development/python-modules/pykodi { };
 
+  pykoplenti = callPackage ../development/python-modules/pykoplenti { };
+
   pykwalify = callPackage ../development/python-modules/pykwalify { };
 
   pylacrosse = callPackage ../development/python-modules/pylacrosse { };
@@ -5747,6 +5983,8 @@ in {
 
   pymetar = callPackage ../development/python-modules/pymetar { };
 
+  pymeteireann = callPackage ../development/python-modules/pymeteireann { };
+
   pymetno = callPackage ../development/python-modules/pymetno { };
 
   pymitv = callPackage ../development/python-modules/pymitv { };
@@ -5757,6 +5995,10 @@ in {
 
   pymongo = callPackage ../development/python-modules/pymongo { };
 
+  pymorphy2 = callPackage ../development/python-modules/pymorphy2 { };
+
+  pymorphy2-dicts-ru = callPackage ../development/python-modules/pymorphy2/dicts-ru.nix { };
+
   pympler = callPackage ../development/python-modules/pympler { };
 
   pymsgbox = callPackage ../development/python-modules/pymsgbox { };
@@ -5803,6 +6045,8 @@ in {
 
   pynest2d = callPackage ../development/python-modules/pynest2d { };
 
+  pynetbox = callPackage ../development/python-modules/pynetbox { };
+
   pynetdicom = callPackage ../development/python-modules/pynetdicom { };
 
   pynisher = callPackage ../development/python-modules/pynisher { };
@@ -5819,6 +6063,8 @@ in {
 
   pynzb = callPackage ../development/python-modules/pynzb { };
 
+  pyobihai = callPackage ../development/python-modules/pyobihai { };
+
   pyocr = callPackage ../development/python-modules/pyocr {
     tesseract = pkgs.tesseract4;
   };
@@ -5831,7 +6077,9 @@ in {
 
   phonemizer = callPackage ../development/python-modules/phonemizer { };
 
-  pyopencl = callPackage ../development/python-modules/pyopencl { };
+  pyopencl = callPackage ../development/python-modules/pyopencl {
+    mesa_drivers = pkgs.mesa.drivers;
+  };
 
   pyopengl = callPackage ../development/python-modules/pyopengl { };
 
@@ -5849,6 +6097,8 @@ in {
     inherit (pkgs) lz4;
   };
 
+  pyotgw = callPackage ../development/python-modules/pyotgw { };
+
   pyotp = callPackage ../development/python-modules/pyotp { };
 
   pyowm = callPackage ../development/python-modules/pyowm { };
@@ -5890,12 +6140,16 @@ in {
 
   pypinyin = callPackage ../development/python-modules/pypinyin { };
 
+  pypiserver = callPackage ../development/python-modules/pypiserver { };
+
   pyplaato  = callPackage ../development/python-modules/pyplaato { };
 
   pyplatec = callPackage ../development/python-modules/pyplatec { };
 
   pyppeteer = callPackage ../development/python-modules/pyppeteer { };
 
+  pypresence = callPackage ../development/python-modules/pypresence { };
+
   pyprind = callPackage ../development/python-modules/pyprind { };
 
   pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
@@ -6004,8 +6258,26 @@ in {
 
   pyro-ppl = callPackage ../development/python-modules/pyro-ppl { };
 
+  pyroon = callPackage ../development/python-modules/pyroon { };
+
   pyroute2 = callPackage ../development/python-modules/pyroute2 { };
 
+  pyroute2-core = callPackage ../development/python-modules/pyroute2-core { };
+
+  pyroute2-ethtool = callPackage ../development/python-modules/pyroute2-ethtool { };
+
+  pyroute2-ipdb = callPackage ../development/python-modules/pyroute2-ipdb { };
+
+  pyroute2-ipset = callPackage ../development/python-modules/pyroute2-ipset { };
+
+  pyroute2-ndb = callPackage ../development/python-modules/pyroute2-ndb { };
+
+  pyroute2-nftables = callPackage ../development/python-modules/pyroute2-nftables { };
+
+  pyroute2-nslink = callPackage ../development/python-modules/pyroute2-nslink { };
+
+  pyroute2-protocols = callPackage ../development/python-modules/pyroute2-protocols { };
+
   pyrr = callPackage ../development/python-modules/pyrr { };
 
   pyrsistent = callPackage ../development/python-modules/pyrsistent { };
@@ -6132,6 +6404,8 @@ in {
 
   pyspinel = callPackage ../development/python-modules/pyspinel { };
 
+  pyspnego = callPackage ../development/python-modules/pyspnego { };
+
   pyspotify = callPackage ../development/python-modules/pyspotify { };
 
   pysptk = callPackage ../development/python-modules/pysptk { };
@@ -6160,6 +6434,8 @@ in {
 
   py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
 
+  pysvg-py3 = callPackage ../development/python-modules/pysvg-py3 { };
+
   pysvn = callPackage ../development/python-modules/pysvn {
     inherit (pkgs) bash subversion apr aprutil expat neon openssl;
   };
@@ -6243,6 +6519,8 @@ in {
   pytest-cache = self.pytestcache; # added 2021-01-04
   pytestcache = callPackage ../development/python-modules/pytestcache { };
 
+  pytest-cases = callPackage ../development/python-modules/pytest-cases{ };
+
   pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
 
   pytest-celery = callPackage ../development/python-modules/pytest-celery { };
@@ -6253,6 +6531,8 @@ in {
 
   pytest-click = callPackage ../development/python-modules/pytest-click { };
 
+  pytest-console-scripts = callPackage ../development/python-modules/pytest-console-scripts { };
+
   pytest-cov = self.pytestcov; # self 2021-01-04
   pytestcov = callPackage ../development/python-modules/pytest-cov { };
 
@@ -6344,6 +6624,8 @@ in {
 
   pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
 
+  pytest-regressions = callPackage ../development/python-modules/pytest-regressions { };
+
   pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
 
   pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
@@ -6536,8 +6818,8 @@ in {
 
   pythonnet = callPackage
     ../development/python-modules/pythonnet {
-      # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
-      mono = pkgs.mono4;
+      # Using `mono > 5`, tests are failing..
+      mono = pkgs.mono5;
     };
 
   python-nmap = callPackage ../development/python-modules/python-nmap { };
@@ -6604,6 +6886,8 @@ in {
 
   python-socketio_4 = callPackage ../development/python-modules/python-socketio/4.nix { };
 
+  python-socks = callPackage ../development/python-modules/python-socks { };
+
   python-sql = callPackage ../development/python-modules/python-sql { };
 
   python-stdnum = callPackage ../development/python-modules/python-stdnum { };
@@ -6652,6 +6936,8 @@ in {
 
   pytoml = callPackage ../development/python-modules/pytoml { };
 
+  pytomlpp = callPackage ../development/python-modules/pytomlpp { };
+
   pytools = callPackage ../development/python-modules/pytools { };
 
   pytorch = callPackage ../development/python-modules/pytorch {
@@ -6735,6 +7021,10 @@ in {
 
   pyvicare = callPackage ../development/python-modules/pyvicare { };
 
+  pyvisa = callPackage ../development/python-modules/pyvisa { };
+
+  pyvisa-py = callPackage ../development/python-modules/pyvisa-py { };
+
   pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
 
   pyvizio = callPackage ../development/python-modules/pyvizio { };
@@ -6781,6 +7071,8 @@ in {
 
   pyx = callPackage ../development/python-modules/pyx { };
 
+  pyxb = callPackage ../development/python-modules/pyxb { };
+
   pyxbe = callPackage ../development/python-modules/pyxbe { };
 
   pyxdg = callPackage ../development/python-modules/pyxdg { };
@@ -6803,6 +7095,10 @@ in {
 
   qasm2image = throw "qasm2image is no longer maintained (since November 2018), and is not compatible with the latest pythonPackages.qiskit versions."; # added 2020-12-09
 
+  qcelemental = callPackage ../development/python-modules/qcelemental { };
+
+  qcengine = callPackage ../development/python-modules/qcengine { };
+
   qdarkstyle = callPackage ../development/python-modules/qdarkstyle { };
 
   qdldl = callPackage ../development/python-modules/qdldl { };
@@ -7000,6 +7296,8 @@ in {
 
   resampy = callPackage ../development/python-modules/resampy { };
 
+  resolvelib = callPackage ../development/python-modules/resolvelib { };
+
   responses = callPackage ../development/python-modules/responses { };
 
   respx = callPackage ../development/python-modules/respx { };
@@ -7022,6 +7320,8 @@ in {
 
   retworkx = callPackage ../development/python-modules/retworkx { };
 
+  rfc3339-validator = callPackage ../development/python-modules/rfc3339-validator { };
+
   rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
   rfc3987 = callPackage ../development/python-modules/rfc3987 { };
@@ -7124,8 +7424,12 @@ in {
 
   rsa = callPackage ../development/python-modules/rsa { };
 
+  rst2ansi = callPackage ../development/python-modules/rst2ansi { };
+
   rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
 
+  rtoml = callPackage ../development/python-modules/rtoml { };
+
   Rtree = callPackage ../development/python-modules/Rtree {
     inherit (pkgs) libspatialindex;
   };
@@ -7187,9 +7491,17 @@ in {
 
   samsungtvws = callPackage ../development/python-modules/samsungtvws { };
 
+  sanic = callPackage ../development/python-modules/sanic {
+    # Don't pass any `sanic` to avoid dependency loops.  `sanic-testing`
+    # has special logic to disable tests when this is the case.
+    sanic-testing = self.sanic-testing.override { sanic = null; };
+  };
+
   sanic-auth = callPackage ../development/python-modules/sanic-auth { };
 
-  sanic = callPackage ../development/python-modules/sanic { };
+  sanic-routing = callPackage ../development/python-modules/sanic-routing { };
+
+  sanic-testing = callPackage ../development/python-modules/sanic-testing { };
 
   sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
 
@@ -7217,12 +7529,16 @@ in {
 
   scikit-fuzzy = callPackage ../development/python-modules/scikit-fuzzy { };
 
+  scikit-hep-testdata = callPackage ../development/python-modules/scikit-hep-testdata { };
+
   scikitimage = callPackage ../development/python-modules/scikit-image { };
 
-  scikitlearn = callPackage ../development/python-modules/scikitlearn {
+  scikit-learn = callPackage ../development/python-modules/scikit-learn {
     inherit (pkgs) gfortran glibcLocales;
   };
 
+  scikitlearn = self.scikit-learn;
+
   scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
 
   scikits-odes = callPackage ../development/python-modules/scikits-odes { };
@@ -7336,14 +7652,15 @@ in {
 
   setproctitle = callPackage ../development/python-modules/setproctitle { };
 
+  setuptools-declarative-requirements = callPackage ../development/python-modules/setuptools-declarative-requirements { };
+
   setuptools-git = callPackage ../development/python-modules/setuptools-git { };
 
   setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
 
   setuptools-rust = callPackage ../development/python-modules/setuptools-rust { };
 
-  setuptools-scm = self.setuptools_scm; # added 2021-01-04
-  setuptools_scm = callPackage ../development/python-modules/setuptools_scm { };
+  setuptools-scm = callPackage ../development/python-modules/setuptools-scm { };
 
   setuptools-scm-git-archive = callPackage ../development/python-modules/setuptools-scm-git-archive { };
 
@@ -7421,9 +7738,9 @@ in {
 
   signify = callPackage ../development/python-modules/signify { };
 
-  sip = callPackage ../development/python-modules/sip { };
+  sip = callPackage ../development/python-modules/sip/default.nix { };
 
-  sip_5 = callPackage ../development/python-modules/sip/5.x.nix { };
+  sip_4 = callPackage ../development/python-modules/sip/4.x.nix { };
 
   six = callPackage ../development/python-modules/six { };
 
@@ -7439,6 +7756,18 @@ in {
 
   skybellpy = callPackage ../development/python-modules/skybellpy { };
 
+  skytemple-dtef = callPackage ../development/python-modules/skytemple-dtef { };
+
+  skytemple-eventserver = callPackage ../development/python-modules/skytemple-eventserver { };
+
+  skytemple-files = callPackage ../development/python-modules/skytemple-files { };
+
+  skytemple-icons = callPackage ../development/python-modules/skytemple-icons { };
+
+  skytemple-rust = callPackage ../development/python-modules/skytemple-rust { };
+
+  skytemple-ssb-debugger = callPackage ../development/python-modules/skytemple-ssb-debugger { };
+
   slack-sdk = callPackage ../development/python-modules/slack-sdk { };
 
   slackclient = callPackage ../development/python-modules/slackclient { };
@@ -7453,8 +7782,6 @@ in {
 
   slicerator = callPackage ../development/python-modules/slicerator { };
 
-  slimit = callPackage ../development/python-modules/slimit { };
-
   slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
 
   slixmpp = callPackage ../development/python-modules/slixmpp {
@@ -7465,10 +7792,12 @@ in {
 
   sly = callPackage ../development/python-modules/sly { };
 
-  smart_open = callPackage ../development/python-modules/smart_open { };
+  smart-open = callPackage ../development/python-modules/smart-open { };
 
   smartypants = callPackage ../development/python-modules/smartypants { };
 
+  smbprotocol = callPackage ../development/python-modules/smbprotocol { };
+
   smbus-cffi = callPackage ../development/python-modules/smbus-cffi { };
 
   smdebug-rulesconfig = callPackage ../development/python-modules/smdebug-rulesconfig { };
@@ -7551,8 +7880,16 @@ in {
 
   spacy = callPackage ../development/python-modules/spacy { };
 
+  spacy-alignments = callPackage ../development/python-modules/spacy-alignments { };
+
+  spacy-legacy = callPackage ../development/python-modules/spacy/legacy.nix { };
+
   spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
 
+  spacy-pkuseg = callPackage ../development/python-modules/spacy-pkuseg { };
+
+  spacy-transformers = callPackage ../development/python-modules/spacy-transformers { };
+
   spake2 = callPackage ../development/python-modules/spake2 { };
 
   spark_parser = callPackage ../development/python-modules/spark_parser { };
@@ -7577,6 +7914,8 @@ in {
 
   spinners = callPackage ../development/python-modules/spinners { };
 
+  sphinxcontrib-actdiag = callPackage ../development/python-modules/sphinxcontrib-actdiag { };
+
   sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { };
 
   sphinxcontrib-autoapi = callPackage ../development/python-modules/sphinxcontrib-autoapi { };
@@ -7589,6 +7928,8 @@ in {
 
   sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { };
 
+  sphinxcontrib-excel-table = callPackage ../development/python-modules/sphinxcontrib-excel-table { };
+
   sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
 
   sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp { };
@@ -7599,6 +7940,8 @@ in {
 
   sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
 
+  sphinxcontrib-nwdiag = callPackage ../development/python-modules/sphinxcontrib-nwdiag { };
+
   sphinxcontrib_newsfeed = callPackage ../development/python-modules/sphinxcontrib_newsfeed { };
 
   sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
@@ -7611,6 +7954,8 @@ in {
 
   sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml { };
 
+  sphinxcontrib-seqdiag = callPackage ../development/python-modules/sphinxcontrib-seqdiag { };
+
   sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { };
 
   sphinxcontrib-tikz = callPackage ../development/python-modules/sphinxcontrib-tikz {
@@ -7627,6 +7972,8 @@ in {
 
   sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
 
+  sphinx-markdown-parser = callPackage ../development/python-modules/sphinx-markdown-parser { };
+
   sphinx-material = callPackage ../development/python-modules/sphinx-material { };
 
   sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree { };
@@ -7765,6 +8112,8 @@ in {
 
   subdownloader = callPackage ../development/python-modules/subdownloader { };
 
+  subliminal = callPackage ../development/python-modules/subliminal { };
+
   subunit = callPackage ../development/python-modules/subunit {
     inherit (pkgs) subunit cppunit check;
   };
@@ -7815,6 +8164,8 @@ in {
 
   sympy = callPackage ../development/python-modules/sympy { };
 
+  syncer = callPackage ../development/python-modules/syncer { };
+
   systembridge = callPackage ../development/python-modules/systembridge { };
 
   systemd = callPackage ../development/python-modules/systemd {
@@ -7843,6 +8194,8 @@ in {
 
   tailer = callPackage ../development/python-modules/tailer { };
 
+  tappy = callPackage ../development/python-modules/tappy { };
+
   tasklib = callPackage ../development/python-modules/tasklib { };
 
   taskw = callPackage ../development/python-modules/taskw { };
@@ -7960,6 +8313,8 @@ in {
 
   test-tube = callPackage ../development/python-modules/test-tube { };
 
+  textdistance = callPackage ../development/python-modules/textdistance { };
+
   textacy = callPackage ../development/python-modules/textacy { };
 
   texttable = callPackage ../development/python-modules/texttable { };
@@ -8012,8 +8367,12 @@ in {
     inherit (pkgs) tiledb;
   };
 
+  tilequant = callPackage ../development/python-modules/tilequant { };
+
   tilestache = callPackage ../development/python-modules/tilestache { };
 
+  timeago = callPackage ../development/python-modules/timeago { };
+
   timelib = callPackage ../development/python-modules/timelib { };
 
   timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
@@ -8048,6 +8407,8 @@ in {
 
   toggl-cli = callPackage ../development/python-modules/toggl-cli { };
 
+  token-bucket = callPackage ../development/python-modules/token-bucket { };
+
   tokenizers = toPythonModule (callPackage ../development/python-modules/tokenizers { });
 
   tokenize-rt = toPythonModule (callPackage ../development/python-modules/tokenize-rt { });
@@ -8070,6 +8431,8 @@ in {
 
   torchvision = callPackage ../development/python-modules/torchvision { };
 
+  torchvision-bin = callPackage ../development/python-modules/torchvision/bin.nix { };
+
   tornado = callPackage ../development/python-modules/tornado { };
 
   # Used by circus and grab-site, 2020-08-29
@@ -8136,6 +8499,8 @@ in {
 
   trytond = callPackage ../development/python-modules/trytond { };
 
+  ttp = callPackage ../development/python-modules/ttp { };
+
   tunigo = callPackage ../development/python-modules/tunigo { };
 
   tubeup = callPackage ../development/python-modules/tubeup { };
@@ -8206,6 +8571,8 @@ in {
 
   typed-ast = callPackage ../development/python-modules/typed-ast { };
 
+  typed-settings = callPackage ../development/python-modules/typed-settings { };
+
   typeguard = callPackage ../development/python-modules/typeguard { };
 
   typer = callPackage ../development/python-modules/typer { };
@@ -8234,6 +8601,10 @@ in {
 
   uarray = callPackage ../development/python-modules/uarray { };
 
+  uc-micro-py = callPackage ../development/python-modules/uc-micro-py { };
+
+  udatetime = callPackage ../development/python-modules/udatetime { };
+
   ueberzug = callPackage ../development/python-modules/ueberzug {
     inherit (pkgs.xorg) libX11 libXext;
   };
@@ -8304,6 +8675,8 @@ in {
 
   upnpy = callPackage ../development/python-modules/upnpy { };
 
+  uproot = callPackage ../development/python-modules/uproot { };
+
   uproot3 = callPackage ../development/python-modules/uproot3 { };
 
   uproot3-methods = callPackage ../development/python-modules/uproot3-methods { };
@@ -8486,6 +8859,8 @@ in {
     inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
   };
 
+  watchgod = callPackage ../development/python-modules/watchgod { };
+
   waterfurnace = callPackage ../development/python-modules/waterfurnace { };
 
   WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
@@ -8526,6 +8901,8 @@ in {
 
   websockify = callPackage ../development/python-modules/websockify { };
 
+  webssh = callPackage ../development/python-modules/webssh { };
+
   webtest = callPackage ../development/python-modules/webtest { };
 
   webthing = callPackage ../development/python-modules/webthing { };
@@ -8727,6 +9104,8 @@ in {
 
   yanc = callPackage ../development/python-modules/yanc { };
 
+  yangson = callPackage ../development/python-modules/yangson { };
+
   yapf = callPackage ../development/python-modules/yapf { };
 
   yappi = callPackage ../development/python-modules/yappi { };
diff --git a/nixpkgs/pkgs/top-level/python2-packages.nix b/nixpkgs/pkgs/top-level/python2-packages.nix
index 474d3c2f9510..bc37fd28db08 100644
--- a/nixpkgs/pkgs/top-level/python2-packages.nix
+++ b/nixpkgs/pkgs/top-level/python2-packages.nix
@@ -178,6 +178,8 @@ with self; with super; {
 
   importlib-metadata = callPackage ../development/python-modules/importlib-metadata/2.nix { };
 
+  importlib-resources = callPackage ../development/python-modules/importlib-resources/2.nix { };
+
   ipaddr = callPackage ../development/python-modules/ipaddr { };
 
   ipykernel = callPackage ../development/python-modules/ipykernel/4.nix { };
@@ -381,7 +383,9 @@ with self; with super; {
 
   prettytable = callPackage ../development/python-modules/prettytable/1.nix { };
 
-  privacyidea = callPackage ../development/python-modules/privacyidea { };
+  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
+
+  ldaptor = callPackage ../development/python-modules/ldaptor/19.nix { };
 
   progressbar231 = callPackage ../development/python-modules/progressbar231 { };
 
@@ -431,6 +435,8 @@ with self; with super; {
 
   pyhamcrest = callPackage ../development/python-modules/pyhamcrest/1.nix { };
 
+  pyjwt = callPackage ../development/python-modules/pyjwt/1.nix { };
+
   pykickstart = callPackage ../development/python-modules/pykickstart { };
 
   pylibacl = callPackage ../development/python-modules/pylibacl/0.5.nix { };
@@ -518,7 +524,7 @@ with self; with super; {
 
   scandir = callPackage ../development/python-modules/scandir { };
 
-  scikitlearn = callPackage ../development/python-modules/scikitlearn/0.20.nix {
+  scikit-learn = callPackage ../development/python-modules/scikit-learn/0.20.nix {
     inherit (pkgs) gfortran glibcLocales;
   };
 
@@ -542,7 +548,7 @@ with self; with super; {
 
   setuptools = callPackage ../development/python-modules/setuptools/44.0.nix { };
 
-  setuptools_scm = callPackage ../development/python-modules/setuptools_scm/2.nix { };
+  setuptools-scm = callPackage ../development/python-modules/setuptools-scm/2.nix { };
 
   setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
 
@@ -604,8 +610,6 @@ with self; with super; {
 
   traitlets = callPackage ../development/python-modules/traitlets/4.nix { };
 
-  trollius = callPackage ../development/python-modules/trollius { };
-
   ttystatus = callPackage ../development/python-modules/ttystatus { };
 
   TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
@@ -638,7 +642,7 @@ with self; with super; {
 
   yt = callPackage ../development/python-modules/yt { };
 
-  zeek = disablede super.zeek;
+  zeek = disabled super.zeek;
 
   zbase32 = callPackage ../development/python-modules/zbase32 { };
 
diff --git a/nixpkgs/pkgs/top-level/qt5-packages.nix b/nixpkgs/pkgs/top-level/qt5-packages.nix
index bfc576e65549..60b4609479df 100644
--- a/nixpkgs/pkgs/top-level/qt5-packages.nix
+++ b/nixpkgs/pkgs/top-level/qt5-packages.nix
@@ -35,17 +35,20 @@ let
     };
   in (lib.makeOverridable mkPlasma5 attrs);
 
-  kdeApplications = let
-    mkApplications = import ../applications/kde;
+  kdeGear = let
+    mkGear = import ../applications/kde;
     attrs = {
       inherit libsForQt5;
       inherit (pkgs) lib fetchurl;
     };
-  in (lib.makeOverridable mkApplications attrs);
+  in (lib.makeOverridable mkGear attrs);
 
-in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeApplications // qt5 // {
+in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeGear // qt5 // {
 
-  inherit kdeFrameworks plasma5 kdeApplications qt5;
+  inherit kdeFrameworks plasma5 kdeGear qt5;
+
+  # Alias for backwards compatibility. Added 2021-05-07.
+  kdeApplications = kdeGear;
 
   ### LIBRARIES
 
@@ -53,6 +56,8 @@ in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeApplications // qt5 //
 
   alkimia = callPackage ../development/libraries/alkimia { };
 
+  applet-window-buttons = callPackage ../development/libraries/applet-window-buttons { };
+
   appstream-qt = callPackage ../development/libraries/appstream/qt.nix { };
 
   dxflib = callPackage ../development/libraries/dxflib {};
@@ -121,6 +126,8 @@ in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeApplications // qt5 //
 
   mauikit = callPackage ../development/libraries/mauikit { };
 
+  mauikit-filebrowsing = callPackage ../development/libraries/mauikit-filebrowsing { };
+
   mlt = callPackage ../development/libraries/mlt/qt-5.nix { };
 
   openbr = callPackage ../development/libraries/openbr { };
@@ -165,6 +172,8 @@ in (kdeFrameworks // plasma5 // plasma5.thirdParty // kdeApplications // qt5 //
     withQt5 = true;
   };
 
+  qtfeedback = callPackage ../development/libraries/qtfeedback { };
+
   qtutilities = callPackage ../development/libraries/qtutilities { };
 
   qtinstaller = callPackage ../development/libraries/qtinstaller { };
diff --git a/nixpkgs/pkgs/top-level/release-haskell.nix b/nixpkgs/pkgs/top-level/release-haskell.nix
new file mode 100644
index 000000000000..36a5835c9cd0
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/release-haskell.nix
@@ -0,0 +1,313 @@
+/*
+  This is the Hydra jobset for the `haskell-updates` branch in Nixpkgs.
+  You can see the status of this jobset at
+  https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.
+
+  To debug this expression you can use `hydra-eval-jobs` from
+  `pkgs.hydra-unstable` which prints the jobset description
+  to `stdout`:
+
+  $ hydra-eval-jobs -I . pkgs/top-level/release-haskell.nix
+*/
+{ supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ] }:
+
+let
+
+  releaseLib = import ./release-lib.nix {
+    inherit supportedSystems;
+  };
+
+  inherit (releaseLib)
+    pkgs
+    packagePlatforms
+    mapTestOn
+    aggregate
+    ;
+
+  inherit (pkgs) lib;
+
+  # helper function which traverses a (nested) set
+  # of derivations produced by mapTestOn and flattens
+  # it to a list of derivations suitable to be passed
+  # to `releaseTools.aggregate` as constituents.
+  accumulateDerivations = jobList:
+    lib.concatMap (
+      attrs:
+        if lib.isDerivation attrs
+        then [ attrs ]
+        else if lib.isAttrs attrs
+        then accumulateDerivations (lib.attrValues attrs)
+        else []
+    ) jobList;
+
+  # names of all subsets of `pkgs.haskell.packages`
+  compilerNames = lib.mapAttrs (name: _: name) pkgs.haskell.packages;
+
+  # list of all compilers to test specific packages on
+  all = with compilerNames; [
+    ghc884
+    ghc8104
+    ghc901
+  ];
+
+  # packagePlatforms applied to `haskell.packages.*`
+  compilerPlatforms = lib.mapAttrs
+    (_: v: packagePlatforms v)
+    pkgs.haskell.packages;
+
+  # This function lets you specify specific packages
+  # which are to be tested on a list of specific GHC
+  # versions and returns a job set for all specified
+  # combinations. See `jobs` below for an example.
+  versionedCompilerJobs = config: mapTestOn {
+    haskell.packages =
+      (lib.mapAttrs (
+        ghc: jobs:
+        lib.filterAttrs (
+          jobName: platforms:
+          lib.elem ghc (config."${jobName}" or [])
+        ) jobs
+      ) compilerPlatforms);
+  };
+
+  # hydra jobs for `pkgs` of which we import a subset of
+  pkgsPlatforms = packagePlatforms pkgs;
+
+  # names of packages in an attribute set that are maintained
+  maintainedPkgNames = set: builtins.attrNames
+    (lib.filterAttrs (
+      _: v: builtins.length (v.meta.maintainers or []) > 0
+    ) set);
+
+  recursiveUpdateMany = builtins.foldl' lib.recursiveUpdate {};
+
+  staticHaskellPackagesPlatforms =
+    packagePlatforms pkgs.pkgsStatic.haskellPackages;
+
+  jobs = recursiveUpdateMany [
+    (mapTestOn {
+      haskellPackages = packagePlatforms pkgs.haskellPackages;
+      haskell.compiler = packagePlatforms pkgs.haskell.compiler;
+
+      tests = let
+        testPlatforms = packagePlatforms pkgs.tests;
+      in {
+        haskell = testPlatforms.haskell;
+        writers = testPlatforms.writers;
+      };
+
+      # test some statically linked packages to catch regressions
+      # and get some cache going for static compilation with GHC
+      pkgsStatic.haskellPackages = {
+        inherit (staticHaskellPackagesPlatforms)
+          hello
+          random
+          lens
+          ;
+      };
+
+      # top-level packages that depend on haskellPackages
+      inherit (pkgsPlatforms)
+        agda
+        arion
+        bench
+        bustle
+        blucontrol
+        cabal-install
+        cabal2nix
+        cachix
+        carp
+        cedille
+        client-ip-echo
+        darcs
+        dconf2nix
+        dhall
+        dhall-bash
+        dhall-docs
+        dhall-lsp-server
+        dhall-json
+        dhall-nix
+        dhall-text
+        diagrams-builder
+        elm2nix
+        fffuu
+        futhark
+        ghcid
+        git-annex
+        git-brunch
+        gitit
+        glirc
+        hadolint
+        haskell-ci
+        haskell-language-server
+        hasura-graphql-engine
+        hci
+        hercules-ci-agent
+        hinit
+        hedgewars
+        hledger
+        hledger-iadd
+        hledger-interest
+        hledger-ui
+        hledger-web
+        hlint
+        hpack
+        hyper-haskell
+        hyper-haskell-server-with-packages
+        icepeak
+        idris
+        ihaskell
+        jl
+        koka
+        krank
+        lambdabot
+        madlang
+        matterhorn
+        mueval
+        neuron-notes
+        niv
+        nix-delegate
+        nix-deploy
+        nix-diff
+        nix-linter
+        nix-output-monitor
+        nix-script
+        nix-tree
+        nixfmt
+        nota
+        nvfetcher
+        ormolu
+        pandoc
+        pakcs
+        petrinizer
+        place-cursor-at
+        pinboard-notes-backup
+        pretty-simple
+        shake
+        shellcheck
+        sourceAndTags
+        spacecookie
+        spago
+        splot
+        stack
+        stack2nix
+        stutter
+        stylish-haskell
+        taffybar
+        tamarin-prover
+        taskell
+        termonad-with-packages
+        tldr-hs
+        tweet-hs
+        update-nix-fetchgit
+        uusi
+        uqm
+        uuagc
+        vaultenv
+        wstunnel
+        xmobar
+        xmonad-with-packages
+        yi
+        zsh-git-prompt
+        ;
+
+      elmPackages.elm = pkgsPlatforms.elmPackages.elm;
+    })
+    (versionedCompilerJobs {
+      # Packages which should be checked on more than the
+      # default GHC version. This list can be used to test
+      # the state of the package set with newer compilers
+      # and to confirm that critical packages for the
+      # package sets (like Cabal, jailbreak-cabal) are
+      # working as expected.
+      cabal-install = all;
+      Cabal_3_4_0_0 = with compilerNames; [ ghc884 ghc8104 ];
+      funcmp = all;
+      # Doesn't currently work on ghc-9.0:
+      # https://github.com/haskell/haskell-language-server/issues/297
+      haskell-language-server = with compilerNames; [ ghc884 ghc8104 ];
+      hoogle = all;
+      hsdns = all;
+      jailbreak-cabal = all;
+      language-nix = all;
+      nix-paths = all;
+      titlecase = all;
+    })
+    {
+      mergeable = pkgs.releaseTools.aggregate {
+        name = "haskell-updates-mergeable";
+        meta = {
+          description = ''
+            Critical haskell packages that should work at all times,
+            serves as minimum requirement for an update merge
+          '';
+          maintainers = lib.teams.haskell.members;
+        };
+        constituents = accumulateDerivations [
+          # haskell specific tests
+          jobs.tests.haskell
+          # writeHaskell and writeHaskellBin
+          # TODO: writeHaskell currently fails on darwin
+          jobs.tests.writers.x86_64-linux
+          jobs.tests.writers.aarch64-linux
+          # important top-level packages
+          jobs.cabal-install
+          jobs.cabal2nix
+          jobs.cachix
+          jobs.darcs
+          jobs.haskell-language-server
+          jobs.hledger
+          jobs.hledger-ui
+          jobs.hpack
+          jobs.niv
+          jobs.pandoc
+          jobs.stack
+          jobs.stylish-haskell
+          # important haskell (library) packages
+          jobs.haskellPackages.cabal-plan
+          jobs.haskellPackages.distribution-nixpkgs
+          jobs.haskellPackages.hackage-db
+          jobs.haskellPackages.policeman
+          jobs.haskellPackages.xmonad
+          jobs.haskellPackages.xmonad-contrib
+          # haskell packages maintained by @peti
+          # imported from the old hydra jobset
+          jobs.haskellPackages.hopenssl
+          jobs.haskellPackages.hsemail
+          jobs.haskellPackages.hsyslog
+        ];
+      };
+      maintained = pkgs.releaseTools.aggregate {
+        name = "maintained-haskell-packages";
+        meta = {
+          description = "Aggregate jobset of all haskell packages with a maintainer";
+          maintainers = lib.teams.haskell.members;
+        };
+        constituents = accumulateDerivations
+          (builtins.map
+            (name: jobs.haskellPackages."${name}")
+            (maintainedPkgNames pkgs.haskellPackages));
+      };
+      staticHaskellPackages = pkgs.releaseTools.aggregate {
+        name = "static-haskell-packages";
+        meta = {
+          description = "Static haskell builds using the pkgsStatic infrastructure";
+          maintainers = [
+            lib.maintainers.sternenseemann
+            lib.maintainers.rnhmjoj
+          ];
+        };
+        constituents = [
+          # TODO: reenable darwin builds if static libiconv works
+          jobs.pkgsStatic.haskellPackages.hello.x86_64-linux
+          jobs.pkgsStatic.haskellPackages.hello.aarch64-linux
+          jobs.pkgsStatic.haskellPackages.lens.x86_64-linux
+          jobs.pkgsStatic.haskellPackages.lens.aarch64-linux
+          jobs.pkgsStatic.haskellPackages.random.x86_64-linux
+          jobs.pkgsStatic.haskellPackages.random.aarch64-linux
+        ];
+      };
+    }
+  ];
+
+in jobs
diff --git a/nixpkgs/pkgs/top-level/release-lib.nix b/nixpkgs/pkgs/top-level/release-lib.nix
index 411093186a6c..ceae00baec9c 100644
--- a/nixpkgs/pkgs/top-level/release-lib.nix
+++ b/nixpkgs/pkgs/top-level/release-lib.nix
@@ -27,6 +27,7 @@ rec {
     pkgs_x86_64_linux = packageSet' { system = "x86_64-linux"; };
     pkgs_i686_linux = packageSet' { system = "i686-linux"; };
     pkgs_aarch64_linux = packageSet' { system = "aarch64-linux"; };
+    pkgs_aarch64_darwin = packageSet' { system = "aarch64-darwin"; };
     pkgs_armv6l_linux = packageSet' { system = "armv6l-linux"; };
     pkgs_armv7l_linux = packageSet' { system = "armv7l-linux"; };
     pkgs_x86_64_darwin = packageSet' { system = "x86_64-darwin"; };
@@ -39,6 +40,7 @@ rec {
       if system == "x86_64-linux" then pkgs_x86_64_linux
       else if system == "i686-linux" then pkgs_i686_linux
       else if system == "aarch64-linux" then pkgs_aarch64_linux
+      else if system == "aarch64-darwin" then pkgs_aarch64_darwin
       else if system == "armv6l-linux" then pkgs_armv6l_linux
       else if system == "armv7l-linux" then pkgs_armv7l_linux
       else if system == "x86_64-darwin" then pkgs_x86_64_darwin
diff --git a/nixpkgs/pkgs/top-level/release-small.nix b/nixpkgs/pkgs/top-level/release-small.nix
index 7f86b30aaf00..47c47e04e1cc 100644
--- a/nixpkgs/pkgs/top-level/release-small.nix
+++ b/nixpkgs/pkgs/top-level/release-small.nix
@@ -12,7 +12,7 @@ with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
 {
 
   tarball = import ./make-tarball.nix {
-    inherit nixpkgs;
+    inherit nixpkgs supportedSystems;
     officialRelease = false;
   };
 
diff --git a/nixpkgs/pkgs/top-level/release.nix b/nixpkgs/pkgs/top-level/release.nix
index 5fc6e91b3118..e62c3ecc19b9 100644
--- a/nixpkgs/pkgs/top-level/release.nix
+++ b/nixpkgs/pkgs/top-level/release.nix
@@ -28,7 +28,7 @@ let
   supportDarwin = builtins.elem "x86_64-darwin" systemsWithAnySupport;
 
   jobs =
-    { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease; };
+    { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
 
       metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
 
@@ -176,6 +176,15 @@ let
               # Test a full stdenv bootstrap from the bootstrap tools definition
               inherit (bootstrap.test-pkgs) stdenv;
             };
+
+          # Cross compiled bootstrap tools
+          aarch64-darwin =
+            let
+              bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix { system = "x86_64-darwin"; crossSystem = "aarch64-darwin"; };
+            in {
+              # Distribution only for now
+              inherit (bootstrap) dist;
+            };
           };
 
     } // (mapTestOn ((packagePlatforms pkgs) // {
diff --git a/nixpkgs/pkgs/top-level/ruby-packages.nix b/nixpkgs/pkgs/top-level/ruby-packages.nix
index 1d928ce05a93..123bc1ead18b 100644
--- a/nixpkgs/pkgs/top-level/ruby-packages.nix
+++ b/nixpkgs/pkgs/top-level/ruby-packages.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dr6w3h7i7xyqd04aw66x2ddm7xinvlw02pkk1sxczi8x21z16hf";
+      sha256 = "15r6ab17iwhhq92by4ah9z4wwvjbr07qn16x8pn2ypgqwvfy74h7";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w3cq2m1qbmxp7yv3qs82ffn9y46vq5q04vqwxak6ln0ki0v4hn4";
+      sha256 = "1q1r3x9fbq5wlgn4xhqw48la09q7f97zna7ld5fglk3jpmh973x5";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wsa6kcgjx5am9hn44q2afg174m2gda4n8bfk5na17nj48s9g1ii";
+      sha256 = "1nqdaykzgib8fsldkxdkw0w44jzz4grvb028crzg0qpwvv03g2wp";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0brr9kbmmc4fr2x8a7kj88yv8whfjfvalik3h82ypxlbg5b1c9iz";
+      sha256 = "1wdgv5llgbl4nayx5j78lfvhhjssrzfmypb45mjy37mgm8z5l5m5";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f7x7ycg73zc2v3lhvrnl072f7nl0nhp0sspfa2sqq14v4akmmb";
+      sha256 = "1zfrkcnp9wy1dm4b6iqf29858dp04a62asfmldainqmv4a7931q7";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m009iki20hhwwj713bqdw57hmz650l7drfbajw32xn2qnawf294";
+      sha256 = "1r6db2g3fsrca1hp9kbyvjx9psipsxw0g306qharkcblxl8h1ysn";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zjwcfr4qyff9ln4hhjb1csbjpvr3z4pdgvg8axvhcs86h4xpy2n";
+      sha256 = "0p80rbahcxhxlkxgf4bh580hbifn9q4gr5g9fy8fd0z5g6gr9xxq";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "118slj94hif5g1maaijlxsywrq75h7qdz20bq62303pkrzabjaxm";
+      sha256 = "1gpd3hh4ryyr84drj6m0b5sy6929nyf50bfgksw1hpc594542nal";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jva5iqnjmj76mhhxcvx6xzda071cy80bhxn3r79f76pvgwwyymg";
+      sha256 = "0fg58qma2zgrz0gr61p61qcz8c3h88fd5lbdrkpkm96aq5shwh68";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   activestorage = {
     dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1800ski0619mzyk2p2xcmy4xlym18g3lbqw8wb3ss06jhvn5dl5p";
+      sha256 = "0sbpkk3r8qi47bd0ilznq4gpfyfwm2bwvxqb5z0wc75h3zj1jhqg";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -115,10 +115,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc";
+      sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -147,10 +147,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05brc25pfvak610mdwgjsc64di29yff9i9g72m6hyc21pdjwfy3n";
+      sha256 = "03xphzq4fgva2xiwlpc7jqp0jl6k022gp7alwg0r7vyai0zx6q5n";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   atomos = {
     groups = ["default"];
@@ -219,10 +219,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "136aa800dgq6bmr0lb59mfj5q72r712wwp5wy5qxnp48adjw1k2h";
+      sha256 = "0aq55b8b33pl0yi2abib8i8d22rifji8nzfpf48vj0a0092rllcl";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   camping = {
     dependencies = ["mab" "rack"];
@@ -683,10 +683,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w";
+      sha256 = "1fki1aipqafqlg8xy25ykk0ql1dciy9kk6lcp5gzgkh9ccmaxzf3";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   data_objects = {
     dependencies = ["addressable"];
@@ -745,10 +745,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bpdrsdqwv80qqc3f4xxzpii13lx9mlx3zay4bnmmscrx8c0p63z";
+      sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz";
       type = "gem";
     };
-    version = "1.3.5";
+    version = "1.4.0";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -808,10 +808,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cql2cxl9bg8gbmmlzl4kvpq7y0gjldgarsnxq35vpd7ga3h54w2";
+      sha256 = "1bby4hbq96vnzcdbbybcbddin8dxdnj1ns758kcr4akykningqhh";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.0";
   };
   eventmachine = {
     groups = ["default"];
@@ -828,10 +828,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jn8s74nxsh0vmxv2fjrrrc3b2cgp8d267dyn206hbw5ki4pkd85";
+      sha256 = "19g5nvkycnkzqq4mqn1zjznq9adrlv2jz0dr9w10cbn42hhqpiz7";
       type = "gem";
     };
-    version = "0.80.1";
+    version = "0.81.0";
   };
   faraday = {
     dependencies = ["faraday-excon" "faraday-net_http" "faraday-net_http_persistent" "multipart-post" "ruby2_keywords"];
@@ -912,10 +912,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bwqm9n69y5y0a5iickr358z7w4hml3flqwfz8b7cnj1ldabhnjn";
+      sha256 = "0l5zk5pzyrydavyw2ai6yz97alg4qvd93mb19m6460vzrj6x00qg";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.2.4";
   };
   fog-dnsimple = {
     dependencies = ["fog-core" "fog-json"];
@@ -985,10 +985,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hslcfns2ysvjyj21hjvp4hghrafw1sdl627fm0nj0wsncs94m67";
+      sha256 = "0jjgqg1iys8k5mjb1wlg8x26d97h1yikgipxwjf9rlyl4i725gn1";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   gio2 = {
     dependencies = ["gobject-introspection"];
@@ -996,10 +996,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l30xsr1dgnzqfmln17arnqi8iga97ldf6zgbqrfby6a94v3ammd";
+      sha256 = "0m1dafspwk38jhk8kgk7v1r8pphz42mk9jkz8h3rvlxqnrnsl7sk";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -1017,10 +1017,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l46ymdf7azpd137xq4rarbaq54hxs9rgfry0r6b0ywj74rmw9ih";
+      sha256 = "1qk30k15qk93mhw2dl191akqs9m0016avc8pwzvvcm7gk99qpbxc";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -1039,10 +1039,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11gas9hzq36a2bwqi7h5c6p6jihanbhsarwhv5fw53dxap4iwj25";
+      sha256 = "0wm1s6xa2cf1n2yvcya8ah57rc0q1klmnrvvdaby3qyn8a6gdlby";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   gpgme = {
     dependencies = ["mini_portile2"];
@@ -1056,15 +1056,14 @@
     version = "2.0.20";
   };
   gtk2 = {
-    dependencies = ["atk" "gdk_pixbuf2" "pango"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v1ag6irp52asm0yaxa7s533czy7yzhanhgn1v0cndqpzqk8icfz";
+      sha256 = "09n8gz5h0d0wwrifr8c8z0b4vrd64xdi4lws8p6gpz0j0pxm5fzh";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.2.6";
   };
   hashie = {
     groups = ["default"];
@@ -1300,10 +1299,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h2sc2la6dd808pfnd7vh66fqwc7xg3nd2jqr4pdqymxspk9zcsq";
+      sha256 = "1wbz3cjfrz3ii70lmmyspkm29x2wyr44ly0m818d2w7qi3igq79p";
       type = "gem";
     };
-    version = "1.4.3";
+    version = "1.4.12";
   };
   libv8 = {
     groups = ["default"];
@@ -1476,10 +1475,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
+      sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default"];
@@ -1639,10 +1638,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
+      sha256 = "1i80ny61maqzqr1fq5wgpkijmh5j8abisrmhn16kv7mzmxqg5w0m";
       type = "gem";
     };
-    version = "1.11.3";
+    version = "1.11.5";
   };
   opus-ruby = {
     dependencies = ["ffi"];
@@ -1683,10 +1682,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05smxn2jank7wqih59lhr30ab8f4qxdsdiiag5v7a0gjgzkmbi7f";
+      sha256 = "0vz880akmcgxf30mrmkld5zyvzr79qaaprnrn10yn7915qsqjh51";
       type = "gem";
     };
-    version = "3.4.3";
+    version = "3.4.4";
   };
   parallel = {
     groups = ["default"];
@@ -1704,10 +1703,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8";
+      sha256 = "1pxsi1i5z506xfzhiyavlasf8777h55ab40phvp7pfv9npmd5pnj";
       type = "gem";
     };
-    version = "3.0.1.0";
+    version = "3.0.1.1";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -1776,10 +1775,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr";
+      sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk";
       type = "gem";
     };
-    version = "0.14.1";
+    version = "0.13.1";
   };
   pry-byebug = {
     dependencies = ["byebug" "pry"];
@@ -1787,10 +1786,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07cv2hddswb334777pjgc9avxn0x9qhrdr191g7windvnjk3scvg";
+      sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
       type = "gem";
     };
-    version = "3.8.0";
+    version = "3.9.0";
   };
   pry-doc = {
     dependencies = ["pry" "yard"];
@@ -1819,10 +1818,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k";
+      sha256 = "00839fhvcq73h9a4crbrk87y6bi2z4vp1zazxihn6w0mrwr51c3i";
       type = "gem";
     };
-    version = "5.2.2";
+    version = "5.3.1";
   };
   racc = {
     groups = ["default"];
@@ -1872,10 +1871,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yl6wy2gfvjkq0457plwadk7jwx5sbpqxl9aycbphskisis9g238";
+      sha256 = "0flnpli87b9j0zvb3c4l5addjbznbpkbmp1wzfjc1gh8qxlhcs1n";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -1905,10 +1904,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m3ckisji9n3li2700jpkyncsrh5b2z20zb0b4jl5x16cwsymr7b";
+      sha256 = "17r1pr8d467vh3zkciw4wmrcixj9zjrvd11nxn2z091bkzf66xq2";
       type = "gem";
     };
-    version = "6.1.3.1";
+    version = "6.1.3.2";
   };
   rainbow = {
     groups = ["default"];
@@ -1935,10 +1934,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
+      sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is";
       type = "gem";
     };
-    version = "0.10.4";
+    version = "0.11.0";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -1987,10 +1986,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca";
+      sha256 = "1kdjqvd9zdim2im6492lb4f3559sblrxcnza2xm7j7qr8hhyvisj";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
   redcarpet = {
     groups = ["default"];
@@ -2155,10 +2154,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cgrj670wrdw202pddiawcx2jbkcp7ja8zbc646by7nrg9ax492d";
+      sha256 = "1xhay8qn3p5f3g6x8i6zh372zk5w2wjrv9dksysxal1r5brkly1w";
       type = "gem";
     };
-    version = "1.13.0";
+    version = "1.15.0";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2166,10 +2165,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
+      sha256 = "0hx4im1a2qpiwipvsl3fma358ixjp4h0mhj56ichq15xrq709qlf";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.5.0";
   };
   rubocop-performance = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -2177,10 +2176,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07c3kymvsid9aajwmmwr3n6apxgyjcbzbl2n6r5lpzkyz28jqn15";
+      sha256 = "0sllna4r40gbw0llh8p9581mfjvi535gfby27m2b11q5x5phrhwc";
       type = "gem";
     };
-    version = "1.10.2";
+    version = "1.11.3";
   };
   ruby-graphviz = {
     dependencies = ["rexml"];
@@ -2227,11 +2226,13 @@
     groups = ["default"];
     platforms = [];
     source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0rl4ic5pzvrpgd42z0c1s2n3j39c9znksblxxvmhkzrc0ckyg2cm";
-      type = "gem";
+      url = "https://github.com/akr/ruby-terminfo";
+      rev = "8aaa20b15fcf922239c200a1cccbc8853c397bb4";
+      fetchSubmodules = false;
+      sha256 = "1ak85bmnaqwpyx07wb6wfa2cr06gb30gnmv9knijnsbv4q583xlz";
+      type = "git";
     };
-    version = "0.1.1";
+    version = "0.2";
   };
   ruby-vips = {
     dependencies = ["ffi"];
@@ -2239,10 +2240,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wy58f9qijwvkmw1j40ak2v5nsr3wcwsa1nilfw047liwyi06yad";
+      sha256 = "1zd93idvk2qs3accbfg7g77fb02k8qlrq1arqm4bbx2ylk9j66kf";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.1.2";
   };
   ruby2_keywords = {
     groups = ["default"];
@@ -2332,10 +2333,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i2zbx3zkrppvf7zmk5hpiji9kj18c0yavcr2c3i0gaqskhzvaj9";
+      sha256 = "18b89pmkfnb8q8n3q774ifn317wsxwgcqa0d9zklqsfyrg53768i";
       type = "gem";
     };
-    version = "5.43.0";
+    version = "5.44.0";
   };
   sequel_pg = {
     dependencies = ["pg" "sequel"];
@@ -2374,10 +2375,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cl3j7p3b5q7sxsx1va63c8imc5x6g99xablz08qrmqhpi0d6g6j";
+      sha256 = "19r15hyvh52jx7fmsrcflb58xh8l7l0zx4sxkh3hqzhq68y81pjl";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "0.1.3";
   };
   sinatra = {
     dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
@@ -2396,20 +2397,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0516kmcypysgf2lw8zm8n9yghv6igqgphhfgmgyzgiin388xw4gj";
+      sha256 = "07an5s5xfg8mll0h9ihdc1n23k6n9anil9ca07rm77aiq6k0n0vy";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.7.1";
   };
   slop = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05d1xv8r9cmd0mmlqpa853yzd7xhcyha063w1g8dpf84scxbxmd3";
+      sha256 = "09n6sj4p3b43qq6jmghr9zhgny6719bpca8j6rxnlbq9bsnrd8rj";
       type = "gem";
     };
-    version = "4.8.2";
+    version = "4.9.0";
   };
   snappy = {
     groups = ["default"];
@@ -2509,10 +2510,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hy3kbcb6nwydy312rhjm4b30yavmayszzzyjpfdv6p0s8d9mfvb";
+      sha256 = "06fa5xpw5zrnhg0ds246l8sq49k22hpplqa1msxylnqibbsnb2y9";
       type = "gem";
     };
-    version = "2.1.3";
+    version = "2.1.5";
   };
   treetop = {
     dependencies = ["polyglot"];
diff --git a/nixpkgs/pkgs/top-level/stage.nix b/nixpkgs/pkgs/top-level/stage.nix
index 77f3cc677f65..931ad1f01ae9 100644
--- a/nixpkgs/pkgs/top-level/stage.nix
+++ b/nixpkgs/pkgs/top-level/stage.nix
@@ -158,6 +158,20 @@ let
                               nixpkgsFun { inherit crossSystem; })
                               lib.systems.examples;
 
+    pkgsLLVM = nixpkgsFun {
+      overlays = [
+        (self': super': {
+          pkgsLLVM = super';
+        })
+      ] ++ overlays;
+      # Bootstrap a cross stdenv using the LLVM toolchain.
+      # This is currently not possible when compiling natively,
+      # so we don't need to check hostPlatform != buildPlatform.
+      crossSystem = stdenv.hostPlatform // {
+        useLLVM = true;
+      };
+    };
+
     # All packages built with the Musl libc. This will override the
     # default GNU libc on Linux systems. Non-Linux systems are not
     # supported.
diff --git a/nixpkgs/pkgs/top-level/static.nix b/nixpkgs/pkgs/top-level/static.nix
index 3cddcde603d8..32559c0e7990 100644
--- a/nixpkgs/pkgs/top-level/static.nix
+++ b/nixpkgs/pkgs/top-level/static.nix
@@ -25,7 +25,7 @@ self: super: let
   }; in stdenv // {
     mkDerivation = args: stdenv.mkDerivation (args // {
       NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "")
-                      + optionalString stdenv.cc.isGNU " -static-libgcc";
+                      + optionalString (stdenv_.cc.isGNU or false) " -static-libgcc";
       nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ (makeSetupHook {
         substitutions = {
           libsystem = "${stdenv.cc.libc}/lib/libSystem.B.dylib";
@@ -83,15 +83,29 @@ self: super: let
       });
     };
 
+  llvmStaticAdapter = llvmPackages:
+    llvmPackages // {
+      stdenv = foldl (flip id) llvmPackages.stdenv staticAdapters;
+      libcxxStdenv = foldl (flip id) llvmPackages.libcxxStdenv staticAdapters;
+    };
+
 in {
   stdenv = foldl (flip id) super.stdenv staticAdapters;
+
   gcc49Stdenv = foldl (flip id) super.gcc49Stdenv staticAdapters;
   gcc6Stdenv = foldl (flip id) super.gcc6Stdenv staticAdapters;
   gcc7Stdenv = foldl (flip id) super.gcc7Stdenv staticAdapters;
   gcc8Stdenv = foldl (flip id) super.gcc8Stdenv staticAdapters;
   gcc9Stdenv = foldl (flip id) super.gcc9Stdenv staticAdapters;
-  clangStdenv = foldl (flip id) super.clangStdenv staticAdapters;
-  libcxxStdenv = foldl (flip id) super.libcxxStdenv staticAdapters;
+
+  llvmPackages_5 = llvmStaticAdapter super.llvmPackages_5;
+  llvmPackages_6 = llvmStaticAdapter super.llvmPackages_6;
+  llvmPackages_7 = llvmStaticAdapter super.llvmPackages_7;
+  llvmPackages_8 = llvmStaticAdapter super.llvmPackages_8;
+  llvmPackages_9 = llvmStaticAdapter super.llvmPackages_9;
+  llvmPackages_10 = llvmStaticAdapter super.llvmPackages_10;
+  llvmPackages_11 = llvmStaticAdapter super.llvmPackages_11;
+  llvmPackages_12 = llvmStaticAdapter super.llvmPackages_12;
 
   boost = super.boost.override {
     # Don’t use new stdenv for boost because it doesn’t like the